Виды TTS моделей

Разберем text-to-speech модели, чтобы хоть немного представлять, как они устроены и их отличие.

И так, можно грубо разделить модели на:
- Авторегрессивные - предсказывают каждый следующий аудио фрагмент (спектрограмму или аудио-токен) на основе предыдущих, например: XTTS
- Неавторегрессивные - генерируют всю последовательность сразу или крупными батчами, без связи с предыдущим токеном/шагом, что существенно ускоряет инференс, например: F5, VITS
- Гибридные/Особые дизайны - встречаются архитектуры, использующие одновременно элементы авторегрессии и неавторегрессии (DualAR), например: Fish-Speech

Сама модель состоит из разных модулей, обычно их можно запустить и использовать отдельно.
Рассмотрим на примере той же XTTS.

Архитектура XTTS
Архитектура XTTS

Основные модули:
- VQ-VAE - эта штука кодирует мел-спектрограмму в аудио токены.
- Perciever conditioner - делает нечто похожее, но отдает фиксированное кол-во ембеддингов, содержащих особенности референсного голоса, добавлен для улучшения клонирования голоса.
- BPE tokenizer - токенайзер, превращает текст в ембеддинги.
- GPT-2 - главный гость программы, получает все прошлое на вход и последовательно предсказывает аудио токены. Эта часть и есть трансформер, принцип работы такой же как у ChatGPT и прочих штук, которые вы вероятно использовали, только вместо текста работает с аудио-токенами.
- HiFi-GAN - так называемый вокодер, берет результаты от GPT-2 и ембеддинги спикера и превращает это в аудио.

Итоговый путь такой: аудио + референс + нужный текст -> мел-спектрограммы -> аудио токены -> предсказываем продолжение в аудио токенах -> декодируем аудио токены в звук.

Модели часто выходят с paper, в котором описаны подходы и решения, по классике, вот XTTS paper:
https://arxiv.org/abs/2406.04904
https://quickarxiv.org/abs/2406.04904 - если добавить quick перед доменом, то попадете в интерфейс с LLM, где можно задавать вопросы по тексту.

Схема примерно общая, но с разными деталями внутри. Некоторые модели не используют мел-спектрограммы, а используют нейро-кодеки для кодирования сырого аудио и декодирования после предсказания.

Подписывайтесь на Telegram – xVibeNot

Начать дискуссию