27 июля вышла статья Alibaba по генерации речи Qwen-Audio-3.0-TTS. В таблице результатов на бенчмарке SEED-TTS-Eval есть строка Human — это настоящая человеческая речь, прогнанная через тот же тест, что и все системы в сравнении. У человека ошибка 1,26, у модели — 0,84. На этой строчке стоит задержаться, потому что за ней скрывается проблема поинтереснее самой модели.

Чтобы понять, о чём речь, нужно разобраться, как вообще делают TTS. Сейчас можно выделить четыре основных подхода. Первый — авторегрессия на дискретных токенах (VALL-E, Spark-TTS, Qwen3-TTS): языковая модель предсказывает токены речи по тексту, это хорошо стыкуется с LLM-стеком и даёт низкую задержку при стриминге, но квантование отбрасывает часть акустики, а стоимость декодирования растёт вместе с числом токенов в секунду. Второй — неавторегрессионные подходы на непрерывных представлениях (Voicebox, E2 TTS, F5-TTS): акустика синтезируется параллельно, диффузией или flow matching, итеративный сэмплинг даёт высокую точность, но плохо дружит со стримингом на уровне целого высказывания. Третий — гибриды (Seed-TTS, CosyVoice): авторегрессионная модель генерирует дискретные семантические токены, а отдельный непрерывный блок дорисовывает по ним акустику; разделение удобно, но между двумя блоками остаётся дискретный стык, и всё, что в него не пролезло, до акустики не доедет. Четвёртый — непрерывно-авторегрессионные (DiTAR, Dots.TTS, VoxCPM2): авторегрессия идёт не по дискретным токенам, а сразу по непрерывным латентам, патч за патчем, дискретного стыка нигде нет и речевой квантователь не нужен, но генерация в высокой размерности и накопление ошибки бьют по устойчивости на длинных фрагментах. Универсального рецепта здесь нет — есть четыре компромисса.

ПодходПримерыПлюсыМинусы
Авторегрессия на дискретных токенахVALL-E, Spark-TTS, Qwen3-TTSСтыкуется с LLM-стеком, низкая задержка при стримингеКвантование отбрасывает часть акустики, стоимость декодирования растёт с числом токенов
Неавторегрессионные на непрерывных представленияхVoicebox, E2 TTS, F5-TTSВысокая точность за счёт итеративного сэмплингаПлохо дружит со стримингом на уровне целого высказывания
ГибридыSeed-TTS, CosyVoiceРазделение семантики и акустики удобноДискретный стык между блоками — узкое место
Непрерывно-авторегрессионныеDiTAR, Dots.TTS, VoxCPM2Нет потерь на квантованииГенерация в высокой размерности и накопление ошибки бьют по устойчивости на длинных фрагментах

Qwen-Audio-3.0-TTS растёт из третьей, гибридной ветки: это прямой наследник CosyVoice, у которого попытались заклеить главную дыру гибридного подхода. При этом Qwen3-TTS произрастает из первой ветки, то есть у Alibaba в работе сразу два соседних подхода: чистая авторегрессия на дискретных токенах и гибрид. Прямого родства авторы нигде не проговаривают, Qwen3-TTS фигурирует в таблицах на правах бейзлайна, однако частота токенов у обоих в районе 12 Гц. Qwen-Audio-3.0-TTS вышел спустя полгода и в каком-то смысле может считаться преемником. Для тех, кто учил TTS по классике (Tacotron, FastSpeech, HiFi-GAN), это предыдущий слой той же идеологии: знать классику по-прежнему необходимо, просто раньше на ней обучение заканчивалось, а теперь с неё всё только начинается.

Модель выпущена в двух вариантах: Flash — под real-time, первый пакет за ~300 мс, и Plus — под качество. Веса закрыты, доступ только через API.

Самое приземлённое — токенизатор. Эту часть обычно опускают, а зря: именно токенизатор задаёт потолок качества генераций. Чтобы языковая модель могла работать с речью, нужен конечный алфавит: тяжёлый непрерывный сигнал надо сжать и квантовать. Камень преткновения — число токенов в секунду, ведь авторегрессионный декодер делает один шаг на токен. Хотите вдвое меньшую задержку — делайте последовательность вдвое короче. Предыдущее поколение (CosyVoice3) работало на 25 Гц, здесь — 12,5 Гц, в два раза меньше. Получается один токен на 80 миллисекунд. Для грубого сравнения: средний слог в русском языке может длиться около 200 мс, то есть на слог приходится примерно два с половиной токена. На этом бюджете надо уместить и то, что сказано, и то, как. Звучит как челлендж, и это так.

В отчёте есть ablation, где сравниваются варианты токенизаторов на SEED-TTS-Eval. CER — ошибка по символам на китайском, SIM — похожесть на голос-референс. CosyVoice3 с кодовой книгой 6561 и частотой 25 Гц даёт CER 1,45 и SIM 80,60 на китайском, WER 2,57 и SIM 73,60 на английском. Qwen-Audio-3.0-TTS с кодовой книгой 6561 и частотой 12,5 Гц — CER 2,59 и SIM 72,44 на китайском, WER 3,21 и SIM 61,64 на английском. Вариант с кодовой книгой 9683 и той же частотой 12,5 Гц — CER 1,48, SIM 83,25 на китайском, WER 2,56, SIM 77,58 на английском. То есть при снижении частоты вдвое качество удаётся удержать только за счёт увеличения кодовой книги, и то не полностью: по SIM на английском разрыв заметен.

Возвращаясь к строке Human. Ошибка 1,26 у живой речи против 0,84 у модели — это не столько про то, что синтез стал лучше человека, сколько про то, что бенчмарк измеряет не совсем то, что мы интуитивно вкладываем в «разборчивость». Живая речь содержит оговорки, паузы, неидеальную артикуляцию, и метрика наказывает её за это. Модель же генерирует «идеальный» сигнал, оптимизированный под тот же тест. Это вечная проблема метрик: они измеряют соответствие эталону, а не воспринимаемое качество. И пока в таблицах рядом стоят Human и модель, стоит помнить, что сравниваются не человек и машина, а два разных способа соответствовать одному и тому же формату.