AudioRecord и AudioTrack: тонкости голосового звука на Android
23 сентября 2026 · гайд разработчика · 6 минут чтения
Модели умеют слушать и говорить — а Android умеет записывать и проигрывать. Склейка этих миров — самая недооценённая часть голосового ассистента: тут рождаются и пропадают целые секунды задержки. Опыт Амалии — по пунктам.
Запись: AudioRecord
- Частота — важнее, чем кажется. Микрофон по умолчанию может жить на 48 кГц — а Whisper-эндпоинты принимают 16/44,1 кГц (иначе 400). Либо конфигурируй AudioRecord на 16 кГц сразу, либо пересемплируй — второй путь теряет качество;
- Моно — достаточно. Стереозапись удваивает буфер без пользы для речи;
- ENCODING_PCM_16BIT — стандарт для речи, совместим со всем;
- Буфер — минимальный х2. Огромный буфер = скрытая задержка: звук лежит в памяти, пока не накопится. Мелкие чит-буферы дают живой поток для VAD — детектору нужен ритм, а не запасы.
Воспроизведение: AudioTrack
- USAGE_ASSISTANT — обязателен. Это не косметика: Android маршрутизирует звук по назначению. Ассистентный канал не глушится медиа-громкостью и корректно взаимодействует с заблокированным экраном;
- Стриминг чанками. PCM-куски пишутся в трек по мере прибытия сети — первый звук стартует до полной загрузки ответа (сравнение с MP3-путём);
- 24 кГц — достаточно. Голосовые модели отдают PCM 24 кГц — конвертация вверх ничего не добавит, вниз — съест верхние частоты речи;
- Независимый lifecycle. Воспроизведение не должно умирать, когда начинается новый цикл разговора: TTS-задача в Амалии отдельная — ответ дозвучит всегда (почему это часть скорости).
Классические грабли
- Эхо-самовозбуждение: громкий ответ ловится микрофоном — ассистент беседует сам с собой. Громкость отката и/или пауза приёма на время ответа;
- Конкуренция за микрофон: другой сервис забрал AudioRecord — твой получает тишину без ошибок: проверяй
stateи уровень сигнала; - Забытый RELEASE. Незакрытый AudioTrack держит аудио-ресурс — следующие сессии молчат.
Рабочий код всего этого — в Амалии: VoiceRecorder.kt и AudioPlayer.kt — открытый репозиторий. Готовое приложение: APK.