VibeVoice все еще лучшая модель в опенсорсе для синтеза речи?
Наконец-то добрался пощупать VibeVoice от Microsoft, флагман в open-source по размеру, а может и по качеству.
Релиз модели был еще в конце августа 2025, а уже 4 сентября 2025 репозитории с моделью удалили.
Причина:
VibeVoice is an open-source research framework intended to advance collaboration in the speech synthesis community. After release, we discovered instances where the tool was used in ways inconsistent with the stated intent. Since responsible use of AI is one of Microsoft's guiding principles, we have disabled the repo until we are confident that out-of-scope use is no longer possible.
Получилось слишком хорошо и без watermark-ов или иных вариантов защиты от deepfake.
Позже репозитории восстановили, но только с 1.5B моделью и пачкой ограничений. Но, что попало в интернет, там и остается, поэтому есть комьюнити форк и веса 7B модели, которая нас и интересует.
В декабре 2025 еще релизнули 0.5B модель для реалтайм синтеза, с заявленным TTFB 300ms, но не дали encoder от acoustic tokenizer, только 1 голос и создать клон голоса не получится.
В итоге имеем 1.5B и 7B модели для оффлайн синтеза.
Запускаем, по классике, на RTX 3090:
Model: vibevoice/VibeVoice-1.5B
RTF: 1.224
Audio duration: 41.867 sec
Total time: 51.249 sec
Model: vibevoice/VibeVoice-7B
RTF: 1.247
Audio duration: 38.533 sec
Total time: 48.039 sec
Из коробки получаем одинаковую скорость, перепроверил, ошибок не нашел. По качеству 1.5B явно хуже 7B, дальше гонял только 7B модель.
Заметил, что по дефолту включен flash attention, но его не было в зависимостях, падало на sdpa, поставил, немного лучше - RTF: 1.0504. Попробовал torch.compile, ничего не дало, убрал.
Идем искать и пробовать кванты:
Results (Full precision bfloat16):
Generation time: 11.20s
Audio duration: 10.67s
RTF: 1.0504
Peak VRAM allocated: 17.50 GB
Results (8-bit INT8 quantization - fabio):
Model: FabioSarracino/VibeVoice-Large-Q8
Generation time: 70.05s
Audio duration: 17.60s
RTF: 3.9802
Peak VRAM allocated: 11.01 GB
Results (8-bit INT8 quantization):
Model: marksverdhai/vibevoice-7b-bnb-8bit
Model load time: 125.74s
Generation time: 42.81s
Audio duration: 13.33s
RTF: 3.2105
Peak VRAM allocated: 11.44 GB
Results (4-bit NF4 quantization):
Model: marksverdhai/vibevoice-7b-bnb-4bit
Model load time: 6.28s
Generation time: 28.47s
Audio duration: 15.20s
RTF: 1.8731
Peak VRAM allocated: 8.70 GB
Кванты динамические, да они съедают меньше VRAM, но слои восстанавливают точности при генерации, это накладные расходы, получаем замедление. Если у вас мало VRAM, 12-16 gb - это вариант, но 4-bit квант уже заметно сказывается на качестве, не советую.
Посмотрел еще раз примеры и README, есть возможность генерировать сразу до 4-х разных спикеров, значит у нас есть некий батчинг из коробки и нам ничего не мешает заменить 4 спикера на 4 одинаковых спикера.
Идем тестить:
BATCHING SUMMARY (Full precision bfloat16)
Number of samples: 4
Sequential time: 19.08s
Batched time: 8.63s
Speedup: 2.21x
Throughput improvement: +140.4%
VRAM increase: +1.6%
Sequential throughput: 0.80x realtime
Batched throughput: 1.91x realtime
Получается для оффлайн синтеза больших текстов нет смысла синтезировать весь текст или чанки одним спикером. Просто бьем текст на 4 чанка, подаем на вход 4 раза один и тот же голос и получаем результат гораздо быстрее. Останется только склеить 4 сэмпла. Кванты в батчинге посыпались, у меня почему то именно во втором сэмпле на выходе артефакты в виде музыки или каких-то посторонних шумов.
Еще что интересно, даже если подавать в батчинг тексты разной длинны, он все равно хорошо отрабатывает, как по скорости, так и по качеству - лог с подробностями будет в комментах в телеграмме.
Качество синтеза достойное, можете сами послушать. Примеры, как всегда, в комментариях под постом в тг.
Ударения пока не проверял.
Минус лишь в размере, не в каждую видеокарту влезет.
Есть еще реалтайм реализация от Tensor Banana, подробности в посте: https://t.me/tensorbanana/1236
Ее не щупал, так как не рассматриваю VibeVoice для реалтайм задач.
Оригинальный github:
https://github.com/microsoft/VibeVoice
Github комьюнити форка (вам нужен именно это репозиторий): https://github.com/vibevoice-community/VibeVoice
HF от комьюнити со всеми весами:
https://huggingface.co/vibevoice
HF кванты:
https://huggingface.co/marksverdhai/vibevoice-7b-bnb-8bit https://huggingface.co/FabioSarracino/VibeVoice-Large-Q8
Подписывайтесь на Telegram – xVibeNot