Open Source против проприетарщины: обзор TTS-моделей для русского языка |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2026-02-09 12:23 План статьи
Введение Задача Text-to-Speech (TTS) она же задача синтеза речи — заключается в том, чтобы озвучить заранее подготовленный текст голосом спикера. Данная задача является одной из важных в системах взаимодействия человека и компьютера. Конечно, такая задача генерации речи встречается гораздо реже, чем, например, задача генерации или обработки текста, тем не менее, сферы ее применения со временем только увеличиваются в своих масштабах и становится все более востребованной. Задача синтеза речи лежит в основе всех голосовых ассистентов, например, умная колонка Алиса, навигатор или служба технической поддержки. Кроме таких глобальных внедрений, существуют системы, которые напрямую оказывают поддержку людям, которым это действительно важно, например, помогают слепым людям получать информацию об окружающей среде. Такими технологиями озвучивают аудиокниги, персонажей в видеоиграх и еще много всего интересного. Как и в других сферах больших данных — направление TTS развивается. Появляются новые открытые модели и репозитории, которые позволяют решать эту задачу с максимальным приближением человеческого голоса. Улучшается произношение, интонация, паузы между знаками препинания, эмоции и синтезированная речь воспринимается как настоящая. Привет, Хабр, меня зовут Музафаров Данил, я работаю DS инженером в компании Raft и сегодня мы рассмотрим существующие Open Source модели и репозитории, которые решают задачи TTS для русского языка. Возможно, не все модели попадут в мой список, поэтому буду рад, если вы в комментариях посоветуете еще какие-нибудь интересные модели, на которые стоит обратить внимание и в таком случае можно будет сделать вторую часть. Метрики успеха Прежде, чем начать анализ и сравнение моделей, необходимо обозначить метрики, по которым мы сможем проводить оценку. В данной задаче синтеза речи сложно объективно оценивать качество речи, но точно можно замерить скорость генерации. Будем замерять скорость на GPU и CPU в секундах.
Также будет моя субъективная оценка результата генерации по следующим параметрам в диапазоне от 1 до 5:
Основная часть Итак, сегодня мы рассмотрим 7 Open Source решений, а именно:
HiggsAudio BosonAI — Компания, специализирующаяся на TTS задачах. У них есть Open Source репозиторий, который предоставляет доступ к их открытым моделям для TTS, также примеры использования. Ссылка на Boson AI: https://www.boson.ai/blog/higgs-audio-v2Ссылка на GitHub HiggsAudio: https://github.com/boson-ai/higgs-audio При тестировании сразу же замечаю предупреждение, что желательно иметь не менее 24 ГБ видеопамяти. К сожалению у меня только 12 ГБ, поэтому пришлось проделать некоторые операции в коде по уменьшению объема используемого кэша, который используется по умолчанию, чтобы модель влезала на мою видеокарту. Тестирование Системным промптом прописывается инструкция-описание того, как должен звучать голос, внешние звуки, чистота записи и прочие характеристики. Также прописывается User Prompt. Он отвечает за само аудио наполнение, которое будет синтезировано. Итоговый Message для модели выглядит так: Далее генерация около пары минут, что само по себе достаточно долго, для английского языка мне потребовалась 1 минута. На выходе получаем такое аудио: Вывод Синтезированный голос получился с сильным акцентом. Явно указать русский язык в параметрах генерации нельзя, поэтому имеем такой результат. С английским языком проблем не было, синтезированная речь была чистой и качественной. Chatterbox Китайская мультиязычная модель для генерации голоса GitHub: https://github.com/resemble-ai/chatterbox Данный репозиторий у меня не получилось запустить на GPU из-за конфликтов с зависимостями для нового типа архитектур видеокарт. Но ничего, попробуем на CPU. Тестирование Текст, который планирую озвучить: Синтез речи со стандартным тембром (голосом) Синтез речи с клонированным голосом спикера Вывод С русским языком умеет работать, но не совсем хорошо. Если использовать GPU, то будет получаться довольно быстро. Для генерации каждой синтезированной аудиодорожки с текстом, который я хотел озвучить на моей CPU ушло примерно 38 секунд. ESpeech Русскоязычная команда разработчиков выкатили модели под TTS с gradio интерфейсом/ Ссылка на HF: https://huggingface.co/ESpeechСсылка на HF на последнюю модель: https://huggingface.co/ESpeech/ESpeech-TTS-1_RL-V2 Тут нет подробной документации, есть только скрипт, который позволяет поднять gradio веб-интерфейс и протестировать модели в нем. То есть придется самостоятельно разбирать весь код, доставая необходимые функции. Тестирование Запуск был очень простой. Предоставлен код, предоставлены зависимости, которые нужно установить. Создал окружение, установил зависимости, создал python скрипт и запустил gradio web-приложение. Загружается референсное аудио, прописывается его транскрипция. Далее просто нажать на кнопку «Generate Speech». Референсное аудио Результат генерации Вывод С русской интонацией всё в порядке, если ставить знаки препинания. F5-TTS Оригинальный репозиторий: https://github.com/SWivid/F5-TTS В оригинальном репозитории F5-TTS отсутствует русский язык. Но на просторах HF найдена дообученная F5-TTS на русских и английских семплах: https://huggingface.co/Misha24-10/F5-TTS_RUSSIAN Буду тестировать дообученную модель. Тестирование Взял дообученную русскоязычную модель с HF: https://huggingface.co/Misha24-10/F5-TTS_RUSSIAN. Использую последнюю версию — F5TTS_v1_Base_v4_winter. Чтобы использовать модель необходимо иметь референсное аудио, желательно с расшифровкой, если не иметь расшифровку, то будут задействованы дополнительные ресурсы на расшифровку. В итоге для генерации необходимо прописать следующие cli-аргументы:
Референсное аудио Результат генерации Вывод Отличная генерация: порядок с произношением, порядок с интонацией. QwenTTS Свежий китайский OpenSource от Qwen для синтеза речи. Здесь предоставлено 3 основные модели:
Тестирование Модель Qwen3-TTS-12Hz-1.7B-CustomVoice Модель имеет поддержку нескольких языков: ['auto', 'chinese', 'english', 'french', 'german', 'italian', 'japanese', 'korean', 'portuguese', 'russian', 'spanish'] ['aiden', 'dylan', 'eric', 'ono_anna', 'ryan', 'serena', 'sohee', 'uncle_fu', 'vivian'] Перейдем к синтезу речи. В методе model.generate_custom_voice() есть параметры:
Результат генерации Вывод Хоть модель и ставит ударения правильно, но чувствуется, что есть небольшой акцент и проблемы с интонацией. Это связано с тем, что голоса спикеров имеют изначально в качестве родного языка не русский, а китайский или английский. Модель Qwen3-TTS-12Hz-1.7B-VoiceDesign Для генерации в методе model.generate_voice_design() необходимо прописать следующие параметры:
Результат генерации Вывод Промпт необходимо описывать на английском языке, на русском не работает. Результат неплохой, инструкция по описанию голоса соблюдается. Модель Qwen3-TTS-12Hz-1.7B-Base Для генерации в методе model.generate_voice_clone() необходимо прописать следующие параметры:
Аудио референс голоса спикера Результат генерации Вывод Хороший репозиторий, всё очень удобно прописано, интуитивно понятно. Silero Русскоязычная разработка для синтеза речи. GitHub: https://github.com/snakers4/silero-modelsСсылка на свежую статью Хабр: https://habr.com/ru/articles/961930/ Тестирование Можно использовать только стандартные тембры голосов спикеров. Нет возможности использовать кастомный голос. Сами модели весят немного и помещаются на CPU Далее можно посмотреть доступные голоса спикеров через метод sorted(model.speakers) Далее идет блок кода с синтезом речи Можно заметить, что текст, который я тут прописал выглядит нестандартно, присутствуют символы «+». Это является знаком ударения для модели. Конечно, это всё делается не вручную, а через отдельную библиотеку, которую Silero также предоставляет. Пример использования ниже. И мы получаем такой результат: Результат генерации Вывод У Silero есть лицензия на использование, поэтому бесплатно его можно использовать только в образовательных целях. Система показала себя очень даже качественной, с удобной библиотекой, которая способна расставлять ударения в тексте, который необходимо озвучить. Генерация даже на CPU очень быстрая. XTTS-v2 GitHub: https://github.com/Jaden-J/Coqui-TTS-XTTS-v2-HuggingFace: https://huggingface.co/coqui/XTTS-v2 Тестирование Посмотреть доступные модели можно через Русские модели отсутствуют, поэтому придется пользоваться мультиязычными. Клонирование голоса и синтез нового аудио на его основе Субъективная оценка — действительно неплохо, тембр голоса сохранился. В начале немного не верная интонация, но в остальном нормально. Аудио длительностью 11 секунд — генерировалось 19 секунд на CPU. Результат генерации Есть фича, для клонирования тембра голоса спикера и воспроизведения текста на иностранных языках. Но не будем на ней подробно останавливаться. Преобразование голоса Есть возможность переложить тембр голоса с одного аудиофайла на второй аудиофайл. Тем самым произнести второй аудиофайл голосом из первого. К сожалению на мультиязычной модели с русским языком это работает очень плохо, но пример как это сделать прикладываю. Вывод Очень удобный репозиторий, всё интуитивно понятно. Есть возможность генерации на CPU с приемлемой скоростью. Более менее хорошо решает задачу клонирования голоса спикера и озвучивания текста. Но большой минус в том, что нет модели конкретно под русский язык. Есть возможность для дообучения своих моделей. Клонирование и генерация речи на русском языке есть, работает нормально, но есть куда расти. Было бы хорошо, если бы была русская модель, так как вся работа идет на мультиязычной и явно режет потенциальное качество. Хороший репозиторий, но нужно ждать русскую модель, либо дообучать самостоятельно. Заключение и подведение итогов Теперь нужно свести все результаты в таблицу, чтобы можно было наглядно оценить наши модели, которые мы рассмотрели. Ранее мы просто посмотрели как работают модели, как они звучат и некоторые моменты их реализации. В самом начале мы обговорили метрики, по которым мы будем оценивать модели и для честности замеров метрик мы будем использовать одни и те же условия. А именно будем генерировать одно и то же аудиосообщение и по нему уже проставлять оценку в таблицу. GPU — RTX 5070 Процессор — Ryzen 7500F Будем озвучивать: «Коллеги, добрый день, меня зовут Музафаров Данил. Я пишу статью на Хабр и сейчас я считаю метрики аудиогенерации по скорости.» Это аудио длительностью примерно 10–15 секунд.
Явный аутсайдер в таблице это HiggsAudio. Хоть он и показывает хорошие результаты на английском языке, к сожалению, на русском он совсем плох. По другим моделям не хочется останавливаться подробно, так как у них есть потенциал, есть свои плюсы и минусы, для каждого он сможет выбрать то, что ему больше нравится и решает его задачу. Я надеюсь, эта статья даст первичное понимание о каждой модели и позволит быстрее прийти к конкретному выбору, который сможет решать вашу конкретную задачу. Буду рад комментариям и конструктивной критике, которая поможет мне в следующих статьях сделать их лучше! Источник: habr.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||