Comments 17
Если кому то нужны русские голоса без генерации на своем оборудовании то есть 2 варианта, гугл и микрософт. У гугла для русского языка 1 женский голос, у микрософта мужской+женский+4 пары мультиязычных (они звучат натуральнее но хуже разворачивают сокращения и цифры и чаще путают ударения в русских текстах).
https://github.com/rany2/edge-tts
https://github.com/pndurette/gTTS
Неплохо было бы найти подобное для голоса из яндекс браузера.
Забыли про rh-voice: https://rhvoice.ru
Прослушал все 19 примеров/голосов на сайте.
Наверное у меня высокие запросы, но ни один не зацепил как рабочий.
RHVoice не вошел в обзор, потому что в его основе лежит статистический параметрический синтез. Но тоже имеет место быть, да и языки интересные поддерживает.
Есть еще такое решение https://github.com/festvox/flite
Достоинство в том, что это решение работает примерно в 10 раз быстрее моделей на нейросетях и требует ресурсов примерно в 100 раз меньше. Я его уместил в ESP8266.
Добрый день! Эту модельку забыли добавить для сравнения. https://huggingface.co/utrobinmv/tts_ru_free_hf_vits_low_multispeaker Модель тоже на базе VITS, имеет свой словарь состоящий из букв русского алфавита, работает на Transformers без дополнительного кода, имеет ONNX версию, и двухголосый режим работы. Должна без особых проблем заводится на Triton Inference Server. Так же есть расширенная версия, которая училась сама расставлять ударения https://huggingface.co/utrobinmv/tts_ru_free_hf_vits_high_multispeaker
Русскоязычный проект (кстати, у них есть еще блог на «Хабре», в котором можно еще более подробно ознакомиться с решением) активно развивается и поддерживается разработчиками. Проект открытый и бесплатный, но код для обучения и архитектуры моделей не представлены. В общем доступе расположен репозиторий с предобученными моделями. Список моделей крайне обширный, поражают наличие и качество моделей для языков, использующих специфическую кириллицу, например, узбекского или калмыцкого языков. Вот пример генерации калмыцкой речи:
Большое спасибо за упоминание и добрые слова. На заказ недавно делали, например, синтез на якутском языке, статья собрала много плюсов, мы аж удивились.
Сейчас делаем несколько интересных проектов, о них публика узнает из релизов на Хабре, надеюсь, если заказчики не будут против публикаций.
возможно, семейство Tacotron
А откуда такая информация? Ну как минимум такую скорость такотрон выдать не может в принципе …
На мой наполовину калмыцкий взгляд, звучит отлично. Слышно специфику калмыцкой речи, да и голос сам калмыцкий, что бы это ни значило.
Кириллические модели тут сделаны не на очень качественных данных, это скорее некоторая демка возможного, тут есть некоторые идеи и планы, но пока не случилось, рано говорить.
У Silero поддерживается генерация на 3 частотах дискретизации (8000, 24 000, 48 000). Для сравнения:
Для 4-й версии модели представлены 5 голосов (aidar, baya, kseniya, xenia, eugene) и рандомный голос, который можно сохранить и использовать для дальнейшей генерации. Кроме того, Silero предоставляет также модель SSML для расстановки ударений и просодий.
Публично доступны модели где-то 2 годичной давности, и в v4
чуть скрутили качество. Логика тут такая, что публичные модели это по сути такая демка.
Мы давно думаем про v5
релиз, и там есть ряд вещей, которые бы хотелось покрыть, допустим обновить расстановку ударений, докинуть расстановку омографов, поднять качество и повысить скорость (там где-то на 40% более медленные модели сейчас).
Вообще у нас есть бот, где можно послушать более актуальные голоса (вкладка "Голоса Силеро"). Вот ещё актуальные примеры звучания и примеры интонации на конкретные слова, которые мы делали для ЦБ РФ. Не помню, залили ли в бота актуальные модели, кажется забыли прокинуть некоторые голоса в бота.
Из важных моментов, что тут не отражены от слова совсем:
Важно всегда говорить про продуктовость и скорость моделей. Грубо говоря вы приводите решения, которые по скорости работы и продуктовости могут отличаться на многие порядки. К примеру, большие рекуррентные модели медленно работают даже на GPU и не подходят для продакшена.
Наши актуальные модели (не те, которые в репозитории) имеют вот такую скорость работы (в секундах сгенерированного аудио в секунду), что по сути делает стриминг ненужным (актуальные модели - new):
Скрытый текст

Также немаловажно отметить, что:
Наше ПО находится в реестре отечественного ПО;
Наша компания находится в реестре МинЦифры;
Наши модели упакованы в сервис, который у заказчиков поднимается одной командой и работает как на 1-2 ядрах процессора, так и на GPU с очень высокой скоростью (!);
Есть SSML и у приватных моделей есть выделение слов интонаций (мы всё никак не можем докатить ряд мелочей);
Мы также делаем кастомные голоса и чуть более сложные системы для наших клиентов на заказ (яркий пример - якутский язык);
PS
И да, когда запинаем новое, узнать можно будет тут и тут. Так-то по идее ускорение, ударение, омографы, повышение качества и интонации готовы, но времени собраться на публичный релиз всё не хватает.
Да, вы правы, действительно сравнить модели по скорости было бы очень полезно, но на текущем этапе решили составить просто обзор на то, что есть и в каком формате оно доступно. Мне кажется, если уже и начинать проводить какие-то более сложные тестирования, то делать это совсем ответственно и более расширено, что может потянуть на еще одну статью.
Спасибо за подробный разбор и дополнительные комментарии, прошу не судить строго за неточности - это моя первая статья.
Огромное Вам спасибо за Ваш продукт. Я только начал делать свои первые шаги в программировании, но уже удалось его оценить по достоинству.
Я вот что думаю, раз Ваша модель понимает спец. символы для управление интонацией и паузами, то было бы здорово обучить относительно лёгкую нейронку, которая бы могла работать в роли препроцессинга получая текстовые данные в т.ч. цифры и приводя их к соответствующему для работы программы виду. Я не занимался этим вопросом, может уже что-то подобное есть, но немного погуглив не нашёл (может неправильно искал).
Ещё раз благодарю за Вашу работу и отличный продукт!
Что можно посоветовать для логопедов для автоматического контроля за произношением? Есть несколько контрольных фраз и упражнений на проговаривание. Нужно контролировать качество произношения. Такой себе voice-to-control :-)
Сейчас использую ultimate rvc, есть разные модели (в том числе русская женская, русская мужская, а так их очень много, поэтому каждый раз приходится искать, где он там, русский язык... Кстати, может быть, кто-нибудь знает, как проредить список Edge TTS voice, оставив в нём только нужные языки? никак не могу найти, в каком файле или папке он хранится).
По качеству озвучки... Артефакты есть и в urvc, и в silero (её тоже пробовал, там с русским дела обстоят получше, и он не безгрешен). Активно пользуюсь urvc, поскольку у silero озвучивается не более 1000 символов, а это - как отечественный редактор "Лексикон" под DOS, который умел многое, но ограничение в 255 символов на строку делало его непригодным для мало-мальски серьёзного использования. Но у меня специфика: озвучиваю курс, где идут объёмные фрагменты текста. Если бы озвучивал диалоги, то, возможно, выбрал бы силеро...
Обе модели могут быть установлены локально (я работаю с линукс, в интернете для некоторых других моделей есть только батники под винду, что не есть хорошо), причём более-менее без танцев с бубнами (хотя нюансы, конечно же, всегда возможны). силеро умеет работать без видеокарты (пробовал на ноутбуке, в целом понравилось) и имеет больше возможностей по управлению голосом, urvc эффективно использует видеокарту (правда, при объёме текста больше чем примерно 12 тысяч символов 12 ГБ видеопамяти не хватает, скрипт вылетает с ошибкой).
Статью сохранил себе, спасибо, на досуге попробую поставить и другие модели, посмотрим, что из них лучше.
Я тут для себя ChatGPT открыл, в итоге при посредственных знаниях программирования, что-то да получается делать.
Если Вы извлекли текст, то его относительно легко разбить на фрагменты и скармливать куда угодно для обработки, частями. После чего объединить фрагменты.
Спасибо Вам за инфу! К сожалению плюсануть не могу т.к. кармы не хватает ))) Но благодарен за инфу 100%
Внезапно обнаружилась проблема с urvc: если у вас нет интернета, то не будет и озвучки текста - в приложении пропадает возможность выбрать параметр Edge TTS voice (в поле пропадают все значения), а без этого параметра нейросеть превращается в тыкву. Эх... Кто бы ещё подсказал, почему так и как научить / заставить эту нейросеть генерировать аудио без подключения к интернетам, а то кто её знает, что она там делает...
Text-to-speech. Анализ открытых решений синтеза речи