Синтез речи On-device RVQ
Синтез речи

Siri Expressive Voices: синтез речи на устройстве с 21 МБ runtime memory

RTF 0.06

Эта работа интересна как редкий подробный разбор производственного синтеза речи на устройстве, где качество, длинный контекст и память должны уживаться в одном контуре. Авторы описывают детокенизатор Siri Expressive Voices для AFM 3 Core Advanced: вместо того чтобы держать отдельные декодеры для уровней RVQ, они разделяют модель на потоковый кодировщик, временной декодер и один переиспользуемый depth-декодер. Главный ход - сделать генерацию длинной речи почти постоянной по памяти, не отдавая задачу полностью серверу.

Метод. Обычный путь для таких систем - авторегрессионно предсказывать многоуровневые аудиотокены, где каждый уровень квантования получает свой набор слоев или проекций. Здесь depth-декодер общий для уровней RVQ и получает номер уровня через DiT-style conditioning; временная часть работает с причинным скользящим окном и фиксированным KV-cache. За счет этого модель не накапливает память пропорционально длине высказывания и может генерировать фразы от 20 до 320 секунд в одном режиме.

Результаты. На Apple AMX один шаг генерации занимает около 10 мс и выпускает 160 мс звука, то есть работает примерно в 16 раз быстрее реального времени, с RTF около 0.06. Пиковая память выполнения - примерно 21 МБ, размер on-device assets - 329 МБ. В сравнении с прежней производственной системой средняя MOS выросла с 3.87 до 4.15, а на разговорном стиле - с 3.82 до 4.24; по объективным метрикам исследовательская версия также дает UTMOS 3.97 и SI-SNR 9.47 дБ при 1.5 кбит/с.

Ограничения. Это сильная инженерная работа, но воспроизводимость ограничена: обучающие данные и часть производственной конфигурации закрыты, а измерения скорости завязаны на конкретный аппаратный контур. MOS и анализ артефактов приведены агрегированно, поэтому трудно отделить вклад архитектуры от данных, отбора примеров и производственных эвристик.

Фишка из статьи. Самое полезное место - не средний MOS, а таблица масштабирования по длине. Она показывает, что скользящее окно и общий depth-декодер дают почти постоянную память, тогда как обычный Transformer decoder разваливается на длинной речи.

ДлинаМодельВремя генерацииПамятьRTF
20 сПредложенная2.40 с1.13 ГБ0.12
80 сПредложенная9.64 с1.13 ГБ0.12
320 сПредложенная38.59 с1.13 ГБ0.12
320 сTransformer decoder800 с33.44 ГБ2.50
320 сAutoregressive GAN136.2 с1.66 ГБ0.43

Как это читать: при 320 секундах предложенная модель остается быстрее реального времени и не увеличивает память, а Transformer decoder уже требует десятки гигабайт и становится медленнее реального времени. Для синтеза речи на устройстве это важнее, чем небольшая разница в кратких тестовых фразах.

Оригинальная статья на arXiv