Siri Expressive Voices: синтез речи на устройстве с 21 МБ runtime memory
Эта работа интересна как редкий подробный разбор производственного синтеза речи на устройстве, где качество, длинный контекст и память должны уживаться в одном контуре. Авторы описывают детокенизатор 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 decoder | 800 с | 33.44 ГБ | 2.50 |
| 320 с | Autoregressive GAN | 136.2 с | 1.66 ГБ | 0.43 |
Как это читать: при 320 секундах предложенная модель остается быстрее реального времени и не увеличивает память, а Transformer decoder уже требует десятки гигабайт и становится медленнее реального времени. Для синтеза речи на устройстве это важнее, чем небольшая разница в кратких тестовых фразах.