Синтез речи Flow matching Long-form
Синтез речи

ZipL-Dialog: длинный диалоговый синтез речи в 25 Hz латенте

11.22x memory

ZipL-Dialog решает инженерную проблему длинного диалогового синтеза речи: non-autoregressive flow matching быстро генерирует кадры параллельно, но на minute-scale mel-spectrogram память растет слишком резко. Авторы переносят генерацию из плотной mel-области в 4x сжатый непрерывный латент 25 Hz. Главная ценность статьи в честном компромиссе: память и время сильно падают, но WER и speaker similarity немного уступают несжатому baseline.

Метод. Сначала обучается deterministic mel autoencoder: 100 Hz mel-spectrogram сжимается в 25 Hz latent sequence с размерностью 100, затем decoder восстанавливает mel перед vocoder. Поверх латента работает masked latent conditional flow matching: target region инициализируется шумом, ZipFormer предсказывает velocity, а auxiliary mel-domain loss удерживает локальные акустические детали. Авторы специально меняют downsampling schedule ZipFormer на [1,1,2,1,1], потому что дефолтная иерархия для плотного 100 Hz входа оказывается слишком агрессивной после 4x сжатия.

Результаты. На CoVoMix2 test set ZipL-Dialog генерирует в среднем за 1.075 s против 2.396 s у ZipVoice-Dialog и 50.160 s у VibeVoice 1.5B; RTF равен 0.056. Максимальная peak memory падает с 36.21 GB у ZipVoice-Dialog до 3.23 GB, то есть примерно в 11.22 раза. На OpenDialog средняя peak memory 0.97 GB против 2.03 GB, а inference time 1.045 s против 1.477 s. По качеству ZipL-Dialog не везде лучший: на CoVoMix2 WER 5.203% против 4.229% у ZipVoice-Dialog, но UTMOS 3.523 совпадает с VibeVoice и выше ZipVoice-Dialog 3.477.

Ограничения. Все основные эксперименты англоязычные, а качество оценивается объективными метриками без полноценной субъективной проверки длинных диалогов. Сжатие ухудшает локальную фонетику и сходство говорящего: cpSIM ниже, чем у baseline. Модель не является streaming-системой в строгом смысле, так как работает с target region целиком и 16-step Euler solver. Кроме того, autoencoder и backbone обучаются отдельно, поэтому ошибки латентного восстановления могут ограничивать генератор.

Фишка из статьи. Абляция downsampling schedule показывает, что после сжатия нельзя просто перенести архитектуру из frame-level TTS. Слишком слабая или слишком сильная иерархия ломает разборчивость.

НастройкаWERSIM-oUTMOS
VAE latent6.535%0.5183.877
Deterministic AE3.634%0.4893.982
AE без auxiliary mel loss4.024%0.4853.896
Downsampling [1,1,1,1,1]51.964%0.4183.676
Downsampling [1,1,2,1,1]3.634%0.4893.982
Default [1,2,4,2,1]27.432%0.3573.671

Как это читать: deterministic AE лучше сохраняет фонетику, чем VAE, хотя немного уступает по speaker similarity. Но главный риск в schedule: при 25 Hz латенте дефолтная глубокая компрессия ZipFormer фактически теряет короткие фонетические события.

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