Стриминг TTS: почему PCM 24 кГц быстрее MP3 в ассистентах | mirabel.tech

Стриминг TTS: почему PCM 24 кГц быстрее MP3

23 сентября 2026 · техно-разбор · 5 минут чтения

Две реализации голосового ассистента могут использовать одну TTS-модель — и одна из них будет звучать на секунду-полторы позже. Разница не в модели, а в формате доставки и способе воспроизведения. Разберём, почему Амалия принимает сырой PCM стримом и не смотрит в сторону MP3.

Путь MP3: три лишних ожидания

Типовой сценарий «попроще»: TTS-сервис вернул MP3 → приложение скачало файл целиком → отдало медиаплееру → плеер декодировал → заиграл. Каждая ступень — очередь:

Каждая ступень добавляет сотни миллисекунд — на фоне жалких 150 мс у LLM это доминирующая часть задержки.

Путь PCM: звук едет конвейером

Сырой PCM — это уже готовые сэмплы, никакой распаковки. Fish Audio drama-3 отдаёт их стримом, 24 кГц, и конвейер выглядит так:

Ключевая настройка — USAGE_ASSISTANT у AudioTrack: Android понимает, что звук — голос ассистента, и маршрутизирует его правильно (не приглушает, не путает с медиа, корректно взаимодействует с громкостью ассистентного канала).

Перекрытие — главный приём

СтримингPCM самоценен в паре с потоковым запуском: синтез стартует на первых токенах LLM, а не после финальной точки ответа. В итоге TTS-этап почти полностью прячется под генерацией текста. Полная арифметика задержек — в разборе 0,87 секунды, а то, откуда берётся «начало фразы» — в разборе VAD.

Когда MP3 всё-таки уместен

Если TTS у тебя играет заранее подготовленный контент (подкасты, уведомления) — сжатие оправдано: трафик дешевле декодирования, а задержка старта некритична. Ассистент — противоположный случай: там каждая сотня миллисекунд видна невооружённым ухом.

Всё это уже собрано и работает: Амалия открыта под MIT — забирай исходники или скачай APK и послушай, как звучит 0,87 секунды.