Обновить

Комментарии 37

Добрый день!

Спасибо за интересный обзор с примерами речи - сам хотел посмотреть некоторые модели, но руки не доходили.

Крайне рекомендую ознакомиться с VOSK-TTS, например версии 0.7 (более поздние более тяжелые, но тоже можно. Голос рекомендую номер 2)

Плюсы: очень быстрый синтез речи, включая CPU (работает на onnx), и хорошее качество. Вроде Apache лицензия.

Минусы: клона голоса нет, базовой обработки английского нет, нужно делать предобработку в коде

Если что, я его рекомендую в качестве базового оффлайн варианта для своего опенсорс голосового помощника Ирина - компактный и хорошо работает на разных системах.

Добрый день, спасибо большое за такой развернутый комментарий и за рекомендацию, обязательно рассмотрю ее!

VOSK я использую для противоположной задачи, STT, т.е. произносимую речь преобразовывать в текст. С английским работает на 4-ку с плюсом, русский на 3-ку, не понимает многих сложных слов (например слово "переустройство" разбивает на 2 слова не похожих по смыслу), и не не понимает пунктуацию, падежи слов путает, в общем пока пользы от него мало.

Очень интересная статья!

Подскажи, с какой модели лучше начать знакомство с темой TTS? Возможно есть супер легкие не из этой подборки?

Спасибо!
Если нет возможности локально позапускать модели, то попробуй поработать с Silero, у них есть примеры в google colab, там сможешь попробовать различные модели от них

Silero в Google Colab и правда самая легкая - ничего не надо ставить, все работает в браузере, и сразу можно пощупать результат

Если хочется именно локально, то смотрите в сторону моделей, которые весят меньше гигабайта и не требуют GPU. Тот же VOSK, который посоветовали выше. Супер качества не даст, но для понимания процесса самое то

Рекомендую попробовать CosyVoice 3 - если судить по семплам, то была бы в топе данного обзора (хотя на мой взгляд, до ESpeech, которая лично мне больше всего понравилась из данного обзора, не дотягивает).

Понял, спасибо, записал себе

Статья огонь! За картинки отдельный лайк)

Стараюсь держать планку)

Очень интересная статья, спасибо:)

P.S. Для тех, у кого нет подходящего "железа" для генераций, неплохие варианты это TTS и STT через сервисы Сбера и Яндекса (у Сбера есть даже бесплатные лимиты, но с его сертификатом у меня были проблемы).

Тоже столкнулся с проблемой зависимостей PyTorch&pyannote&torchaudio и новой версии cuda sm_120 на RTX 50X0. Насколько я понял, некоторые библиотеки распознавания и генерации голоса еще не обновлены под новую архитектуру видеокарт.

Интересно было бы найти обходное решение без генерации на cpu.


Да, есть такая проблема, но решение тоже есть.
Если столкнешься с такой проблемой, то попробуй ее загуглить. Я встречал репозиторий, где описано как в окружение установить конкретные зависимости для torch и torchaudio, чтобы на этом поколении видеокарт можно было избавиться от такой ошибки.

Спасибо. Интересная статья. Прочитал с удовольствием.картинки зачётные.

Silero хорош за счет своей предобработки (расстановки ударений), но из-за этого теряется естественность интонации. А модели которые пытаются в end-to-end синтез (как XTTS), часто спотыкаются на омографах. Золотой середины пока нет

Может быть недостаточно данных для обучения русских моделей? Просто при генерации английского текста моделями TTS синтезированная речь на слух ложится очень хорошо, при чем я пробовал генерировать через QwenTTS аудио более трех минут и как будто бы качество речи не проседает.

Не open source, просто метод получения интересных голосов с вашим текстом: в генераторе музыки SunoAI запрос на создание песни сделать с текстом внутри тэга [spoken audio], а в негативную часть внести [song, singing, music, instrumental, guitar, piano, violing etc.].

как своевременно и актуально )
я на НГ каникулах решил сделать программку по озвучке книг, остановился на Azure speech TTS - там всё хорошо, но ударения в тексте обозначить невозможно. Есть вариант представить текст в ssml разметке и использовать phoneme таг. Например чтоб в "берегу" ударение было на первое "е" слово меняется на

<phoneme alphabet="ipa" ph="ˈbʲerʲeɡu">берегу</phoneme> 

плюс не все книжки ё-фицированны, что добавляет еще и ё-омографы (берёт/берет например).
с двух-этапной обработкой (поиск омографов по словарю, послать предложение в LLM агента для определения правильной формы на основе контекста, трансформация исходного текста, посылка на озвучание) в принципе работает, но бесплатный лимит быстро выбирается, а платить 15-20 долларов за книжку получается накладно.

В итоге решил поставить TTS локально, на выходных буду пробывать, может мои танцы с омографами уже и не так актуальны...

Вот это полезные ссылки, спасибо!

Плюсую CosyVoice 3. Из локальных моделей - самый огонь.

На пьедестал встал бы Qwen3-TTS, если бы не две проблемы: 1. если ошибается в ударении, то это неисправимо (разрабы обещают пофиксить) и 2. на отрывках более пары минут сходит с ума. Думаю, это неисправимая фича модели, решается только разбиваниям текста на чанки.

Это правда, я тоже проверял QwenTTS для русского языка, при генерации более 300 слов уже начинает проседать качество. Поэтому выход, как ты и говоришь - делить на более мелкие куски.

Спасибо за упоминание нашего синтеза в вашей статье!

Тут есть одна нестыковочка только:

Это аудио длительностью примерно 10–15 секунд.

Silero (v5_ru)

Latency (CPU), сек

2.62

То есть если я верно понял, 10-15 секунд аудио у вас синтезируется около 2+ секунд на CPU. Скорее всего это первый запуск модели. В реальности синтез такой фразы должен занимать где-то 100ms после прогрева модели. Обратите внимание, что также нужно выставить оптимальное количество потоков CPU - 4 штуки.

Также обращаю внимание на пару вещей ещё:

Спасибо!

Большое спасибо за важную статью. Я давно хотел сравнить разные локальные TTS нейронки. Чтобы учебники и всякие познавательные книжки озвучивать. Очень уж мало такой литературы в аудио-версии есть. Там не должно быть таких высоких требований к артистичности начитки, как в развлекательной литературе. И вот такого обзора лучших моделей очень не хватало. Большое вам спасибо!

Надеюсь, будет подобный обзор, раз в пару лет. Чтобы люди знали о лучших моделях.

Спасибо, попробывал tts ESpeech, в общем если посидеть и подобрать seed, то выходит натурально. Но у меня карта AMD из за этого обаботка переключается на cpu и занимает чуть меньше 2х минут за 5 секунд.

Коротко — практичный список TTS-моделей (от open-source):

🔥 Silero TTS — быстро на CPU, звучит нормально.
🚀 ESpeech-TTS — классный баланс качества и скорости.
💥 F5-TTS (дообученный) — самый выразительный голос (GPU-оптимизация).
🌐 QwenTTS — много языков, но русская интонация так-сяк.
😬 HiggsAudio — слабее на русском.

Суть:
Silero/ESpeech — твой базовый выбор.
F5-TTS — если нужен крутой голос.
Остальное — допопции.

какое то всё, жирное. Ну или я не заметил легкие быстрые модели

https://youtu.be/l5ggH-YhuAw

которые можно было бы на малине развернуть.

Попробуй Silero посмотреть, они быстрые и работают на CPU

А для Английского какая модель лучше ?

Для английского практически все модели работают с хорошим качеством генерации. Тут лучше уточнить моменты для какой задачи хочешь использовать модель, какие ресурсы есть для этого

Mac M4 24G. Локально запустил qwen-tts, chatterbox, chatterbox-turbo. Qwen похоже самая продвинутая.

Есть не новая штука: TTS через Microsoft Edge. Есть несколько реализаций. Например: https://github.com/hinaichigo-fox/rus-edge-tts-webui
Выглядит так, как будто работает локально, но места занимает всего 450МБ и при работе создает сетевой трафик, а не грузит процессор. Похоже, что у microsoft торчит наружу api, которым научились пользоваться. Аккаунтов вводить не нужно, лимитов не видно, Русским владеет прекрасно.

Спасибо за обзор! Пара моментов.

1. Насчет ESpeech-TTS-1_RL-V2.

https://huggingface.co/ESpeech/ESpeech-TTS-1_RL-V2

Там:

pip install f5-tts gradio ruaccent transformers torch torchaudio huggingface_hub

По-видимому база у них f5-tts, который также есть в обзоре. И звучат они похоже (и оба довольно качественно).

2. Насчет XTTS-v2.

Без малого пару лет назад тестировал эту библиотеку. Ниже список встроенных голосов, которые более-менее нормально работали с русским (остальные совсем плохо были, акцентили):

ZOFIJA_KENDRICK, TANJA_ADELINA, TAMMIE_EMA, SZOFI_GRANGER, NOVA_HOGARTH, NARELLE_MOON, MAJA_RUOHO, LIDIYA_SZEKERES, GRACIE_WISE, GITTA_NIKOLINA, CHANDRA_MACFARLAND, BRENDA_STERN, BARBORA_MACLEAN, SUAD_QASIM = (
    "zofija_kendrick", "tanja_adelina", "tammie_ema", "szofi_granger", "nova_hogarth", "narelle_moon", "maja_ruoho",
    "lidiya_szekeres", "gracie_wise", "gitta_nikolina", "chandra_macfarland", "brenda_stern", "barbora_maclean",
    "suad_qasim"
)

ADDE_MICHAL, DAMJAN_CHAPMAN, DIONISIO_SCHUYLER, ABRAHAN_MACK, VIKTOR_MENELAOS, ROYSTON_MIN, LUIS_MORAY, FERRAN_SIMEN, EUGENIO_MATARACI = (
    "adde_michal", "damjan_chapman", "dionisio_schuyler", "abrahan_mack", "viktor_menelaos", "royston_min",
    "luis_moray", "ferran_simen", "eugenio_mataraci"
)

Не все эти голоса хорошо произносят русский, часто уходят в акцент, но слушать в целом можно.

И надо заметить - XTTS-v2 сильно прожорливый, очень тяжелый. Большие тексты надо пилить на чанки, иначе будет проглатывать часть текста, либо вообще уходить в астрал, но это особенность архитектуры. В целом получалось озвучивать тексты размером с небольшую статью (2000-2500 символов, но точно не помню уже), хоть сама библиотека и ругалась и просила меньшие чанки.

П.С. отдельное спасибо за примеры синтеза, но к сожалению какая-то часть читателей из РФ не сможет их прослушать, т.к. soundcloud.com заблокирован в России.

Спасибо за комментарий, грамотно и все по делу
Я согласен с вами по каждому пункту, спасибо за уточнение по XTTS-v2

Интересный обзор, спасибо. Но не ожидал увидеть такие тайминги. Мне кажется с такими задержками общаться с такой говорилкой будет некомфортно. Причем это относится ко всем моделям кроме одной.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
raftds.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
Евгений Кокуйкин