VoiceChat-TTS: A Low-Latency Continuous Speech Synthesis Model for Interactive Agents
VoiceChat-TTS рассматривает синтез речи как непрерывный процесс: модуль не выключается между репликами, умеет выдавать тишину, пока говорит пользователь, и прерывает собственную фразу без сброса кэша внимания. Это важный инженерный сдвиг для дуплексных голосовых агентов, где хорошая одиночная реплика ещё не означает естественного диалога.
Метод. Причинный кодек сжимает звук 22 кГц в кадры по 80 мс, каждый из 31 остаточного кодового словаря; речевой модуль на Gemma 3 имеет 778 млн параметров, кодек - ещё 199 млн. Символьный кодировщик помогает произносить редкие части слов, трёхсекундный звуковой образец задаёт голос, а специальные токены отмечают начало реплики и перебивание. Голова смеси гауссиан восстанавливает 31 токен не за 31 авторегрессионный шаг, а за восемь уточнений. Обучение сочетает обычную речь, 2,5 тысячи часов синтетических диалогов, Fisher и внутренние разговоры; половина синтетики содержит наложения и перебивания.
Результаты. По сравнению с потоковым декодером Audio Flamingo 3-Chat WER одной реплики падает с 4,51% до 2,00%, а предсказанная Squim-MOS растёт с 3,60 до 4,38. Qwen3-TTS остаётся лучше по WER, 1,01%, и Squim-MOS, 4,45%, но не решает ту же непрерывную задачу. На четырёх репликах WER незнакомых голосов остаётся 2,20%, однако косинусное сходство голоса снижается с 0,757 до 0,685. На RTX A6000 полный расчёт следующего 80-мс кадра занимает 9,62 мс при одной сессии и 15,24 мс при четырёх, против 20,34 и 22,08 мс у Qwen3-TTS-12Hz.
Ограничения. Модель не слушает звук пользователя и потому не подстраивает просодию под его интонацию. Вместо субъективного MOS используется предсказатель Squim-MOS, а для непрерывного синтеза пока нет стандартного испытания. Авторы не дают поэлементного разбора архитектурных изменений, поэтому вклад символьного кодировщика, подсказки голосом и слияния признаков не разделён. Обучение дорогое, а ухудшение сходства незнакомого голоса по ходу диалога уже заметно.
Фишка из статьи. Жёсткое направление декодера в заранее выбранный кадр тишины оказывается полезнее одной выученной команды «остановись». При этом следующая реплика генерируется тем же кэшем и не теряет разборчивость.
| Режим остановки | Успех до 320 мс | Средняя задержка | Речь в первую секунду | CER следующей реплики |
|---|---|---|---|---|
| Только выученный токен | 96,8% | 228,3 мс | 169,1 мс | 0,255% |
| Принудительный кадр тишины | 100,0% | 89,9 мс | 55,8 мс | 0,095% |
Как это читать: детерминированная тишина сокращает остановку примерно в 2,5 раза и втрое уменьшает остаточную речь. CER считается только на следующей реплике, поэтому его снижение показывает, что быстрый обрыв не портит восстановление, хотя опыт проведён на 200 управляемых примерах, а не на живом диалоге.