VoxCPM2: TTS без токенизации аудио с AudioVAE и 48 кГц на выходе
OpenBMB выкатил технический отчёт VoxCPM2 в начале июня. Это второе поколение их tokenizer-free подхода, и ключевые цифры впечатляющие: полностью open-source мультиязычная и контролируемая foundation-модель синтеза речи, расширяющая иерархическую diffusion-autoregressive парадигму VoxCPM в трёх ключевых измерениях: (i) capability — унификация 30 языков, 9 китайских диалектов, voice design через natural-language описания, style-controllable voice cloning, и high-fidelity continuation cloning в одном бэкбоне; (ii) quality — асимметричный AudioVAE, кодирующий на 16 kHz и реконструирующий на 48 kHz, что даёт implicit super-resolution при высокой эффективности кодирования; (iii) scale — совместное масштабирование модели до 2B параметров и обучающих данных до более чем 2 миллионов часов мультиязычной речи.
Tokenizer-free часть требует распаковки. Современный mainstream TTS (CosyVoice, F5-TTS, MaskGCT) использует neural audio codec (EnCodec, DAC, SoundStream) для дискретизации аудио, затем LLM-стиль авторегрессивно или маскированно предсказывает токены, и в конце вокодер восстанавливает waveform. Генеративные модели для синтеза речи сталкиваются с фундаментальным компромиссом: дискретные токены обеспечивают стабильность, но жертвуют выразительностью, тогда как непрерывные сигналы сохраняют акустическое богатство, но страдают от накопления ошибок из-за переплетения задач. VoxCPM решает компромисс через иерархическое моделирование в непрерывных латентах с дифференцируемым semi-discrete bottleneck — то есть «псевдо-токенизация» происходит внутри модели, оставаясь дифференцируемой, без жёсткого квантователя.
Архитектурный конвейер: LocEnc → TSLM → RALM → LocDiT, работающий полностью в латентном пространстве AudioVAE V2, что даёт богатую выразительность и нативный 48 kHz аудио-выход. LocEnc локально кодирует текст-промпт, TSLM (text-semantic LM) планирует семантику, RALM (residual acoustic LM) расширяет акустические детали, LocDiT (Local Diffusion Transformer) генерирует непрерывные латентные patches.
Самый инженерно изящный ход — асимметричный AudioVAE. Кодирование на 16 kHz даёт компактную, обучаемо-эффективную репрезентацию (модели не приходится тратить ёмкость на сверхвысокие частоты), а декодирование на 48 kHz даёт студийное качество. Implicit super-resolution получается побочным продуктом: модель восстанавливает компоненты выше Найквиста-16kHz из обучения на 48 kHz целях. Это работает потому, что высокие частоты в речи подчиняются предсказуемой статистике (формирование шумовых компонент при глухих, обертонная структура при звонких) — модель учит эти регулярности через декодер.
Densing Law of LLMs показывает, что capacity density LLM (эффективная производительность на параметр) растёт экспоненциально, удваиваясь примерно каждые три месяца. Руководствуясь этим принципом, VoxCPM2 совместно масштабирован до 2B параметров и обучающих данных до более чем 2 миллионов часов мультиязычной речи, покрывающих 30 языков и 9 китайских диалектов, при сохранении компактного 6.25 Hz token rate. 6.25 Hz — это исключительно низкая частота кадров для аудио-LM (для сравнения: EnCodec работает на 75 Hz, DAC на 86 Hz), что даёт колоссальную экономию длины контекста LLM-части — по сути минута речи — это 375 кадров.
Производительность: RTF до ~0.3 на NVIDIA RTX 4090, и ~0.13 с ускорением через Nano-vLLM или vLLM-Omni — официальное vLLM omni-modal serving для VoxCPM2 с PagedAttention. WER 1.68% на внутреннем 30-языковом эвале — competitive с закрытыми решениями. Apache 2.0.
Стратегический контекст: tokenizer-free парадигма (VoxCPM2, dots.tts) теперь явно соревнуется с tokenizer-based мейнстримом (CosyVoice, Higgs, F5). Через 6–12 месяцев станет понятно, какая выживет.
Фишка из статьи. VoxCPM2 получает 48 kHz output без раздувания autoregressive последовательности. AudioVAE V2 кодирует 16 kHz сигнал в 25 Hz 64-мерные latent frames, а patch size 4 снижает LM-token rate до 6.25 Hz, то есть один AR step покрывает около 160 мс аудио.
| Модель | Параметры | Patch | Token rate | Max length | Input / output |
|---|---|---|---|---|---|
| VoxCPM | ~0.6B | 2 | 12.5 Hz | 4096 | 16 / 16 kHz |
| VoxCPM1.5 | ~0.8B | 4 | 6.25 Hz | 4096 | 44.1 / 44.1 kHz |
| VoxCPM2 | ~2B | 4 | 6.25 Hz | 8192 | 16 / 48 kHz |
| Seed-TTS-Eval | EN WER / SIM | ZH CER / SIM | ZH-Hard CER / SIM |
|---|---|---|---|
| VoxCPM2 2B | 1.84 / 75.3 | 0.97 / 79.5 | 8.13 / 75.3 |
| MOSS-TTS 8B | 1.85 / 73.4 | 1.20 / 78.8 | - |
| Runtime на RTX 4090 | RTF | VRAM |
|---|---|---|
| VoxCPM2 PyTorch | 0.30 | ~8 GB |
| VoxCPM2 Nano-vLLM | 0.13 | ~8 GB |
| VoxCPM1.5 PyTorch | 0.15 | ~6 GB |
Масштаб данных тоже нетривиальный: модель обучена более чем на 2M часов, покрывает 30 языков и 9 китайских диалектов. На внутреннем 30-язычном тесте средний WER/CER равен 1.68%, а на 28 языках ошибка ниже 3%.