Нейросеть для озвучки на русском: анализ точности и параметров синтеза в цифрах
Нейросеть для озвучки на русском обычно сравнивают по одному короткому демо. Это нерепрезентативный тест. В нём редко есть омографы, даты, сокращения, фамилии, англицизмы, реплики с перебивками и жёсткие тайминги.

Именно на этих элементах разваливается пайплайн дубляжа, озвучки курса или видеоролика.
Универсальной цифры «точности русской TTS» нет. Нет и независимого свежего теста, в котором все коммерческие голосовые движки для видеоконтента проходят одинаковый набор фраз, а эксперты отдельно оценивают ударения, имена, перевод, просодию и липсинк. Доступны локальные замеры, документация API и собственные прогоны. Этого достаточно, если не подменять измерение маркетинговой шкалой.
MOS измеряет восприятие, а не процент правильных слов
Главная публичная метрика синтеза речи — MOS, Mean Opinion Score. Слушатели ставят оценку по шкале от 1 до 5. Обычно отдельно оцениваются естественность и разборчивость. Метрика полезна для первичного сравнения вокодера, акустической модели или датасета. Для продакшн-озвучки её недостаточно.
MOS не отвечает на несколько прикладных вопросов:
- верно ли поставлено ударение в слове с несколькими нормативными вариантами;
- корректно ли прочитано имя, бренд, медицинский термин или код модели;
- не изменилась ли семантика после нормализации числа, даты или валюты;
- совпадает ли длина реплики с таймкодом видеоряда;
- сохраняет ли голос один тембр между сегментами;
- не срывается ли интонационный контур на длинной фразе;
- может ли модель произнести заимствование без акцента, не превращая русскую реплику в набор фонетических компромиссов.
MOS — субъективная оценка результата на заданном наборе аудио. Это не WER для ASR и не доля безошибочного произношения. Тем более не рейтинг рынка.
Для русской нейроозвучки воспроизводимой точкой отсчёта остаётся эксперимент с корпусом RUSLAN. Синтезированная речь там получила средний MOS 3,78 за естественность и 4,05 за разборчивость. В слепом тесте участвовали 50 носителей русского языка. Реальные записи того же корпуса получили 4,83 и 4,87 соответственно.
Разрыв почти в один балл по естественности важнее самого значения 3,78. Он показывает предел интерпретации. Слушатель в целом понимает синтез. Но не принимает его за живую запись.
MOS 4,05 по разборчивости означает, что фразу обычно можно понять. Он не означает, что её можно без правки ставить в дубляж.
Для генерации голоса на русском языке полезнее разделить тестирование на два контура. Первый — перцептивный: естественность, тембр, отсутствие цифровых артефактов. Второй — лингвистический и производственный: ударения, нормализация, сегментация, длительность, стабильность между батчами.
Второй контур почти всегда даёт больше дефектов. В особенности на контенте, который прошёл машинный перевод и уже содержит неестественный порядок слов, кальки и англоязычные сущности.
Что именно показывает RUSLAN и чего он не показывает
Корпус RUSLAN содержит 22 200 пар «текст—аудио». Общая длительность — 31 час 32 минуты. Все записи сделаны одним русскоязычным диктором. В тесте использовались 20 фрагментов: 11 синтезированных и 9 записанных.
Это аккуратная академическая база для оценки конкретной модели на конкретном датасете. Не база для вывода о качестве любого русского синтеза речи онлайн.
Ограничение одного диктора влияет на весь стек. Акустическая модель получает стабильную артикуляцию, единый тембр, ограниченную манеру чтения. В коммерческом сценарии требуется другое:
- несколько голосов с разным возрастным и тембральным профилем;
- переключение между нейтральной, рекламной, разговорной и драматической подачей;
- длинные сессии без дрейфа идентичности голоса;
- произношение имён из нескольких языков;
- адаптация под перевод, где длина исходной и целевой реплики не совпадает;
- обработка шумных сценариев: таблиц, субтитров, OCR-текста, реплик из игровых ресурсов.
Модель может получить хороший MOS на чистом датасете и создать проблемы на реальном тексте. Это не противоречие. MOS оценивает аудиовыход. Продакшн оценивает цепочку от исходного сценария до финального микса.
| Параметр | Академический тест синтеза | Озвучка видеоконтента |
|---|---|---|
| Входной текст | Обычно очищенный корпус | Субтитры, перевод, OCR, теги, сокращения |
| Голоса | Один или ограниченный набор | Несколько ролей, диктор, персонажи |
| Основная метрика | MOS, разборчивость | Ошибки чтения, тайминг, стабильность, стоимость правок |
| Просодия | Усреднённая по тесту | Привязана к монтажу и смысловым акцентам |
| Языки | Как правило, один язык | Смешанный текст, имена, кросс-язычные вставки |
| Критический сбой | Слышный артефакт | Семантическая ошибка или выход за таймкод |
Отдельная ошибка — переносить результаты старой модели на современные сервисы. Архитектуры меняются. Меняются датасеты, способы speaker conditioning, zero-shot клонирование, диффузионные декодеры, нейровокодеры и постобработка. Даже один поставщик может заменить веса за API-идентификатором без изменения привычного пользовательского интерфейса.
Поэтому бенчмарк 2019 года следует читать как методологический ориентир. Не как каталог актуальных голосов.
Темп и высота: доступные параметры не равны управляемой просодии
Управление синтезом начинается с темпа. В Yandex SpeechKit Playground диапазон скорости задан от 0,1 до 3,0. Значение 1,0 соответствует средней скорости человеческой речи. В API v3 высота регулируется параметром pitch_shift: от −1000 до +1000 Гц относительно базового тембра.
Диапазоны широкие. Практическая область уже.
Сильное замедление растягивает гласные и паузы. Ритм становится неестественным. Ускорение сжимает согласные, ломает границы слов и снижает разборчивость на числах. Сдвиг pitch не создаёт новый голос. Он трансформирует базовый спектральный профиль. При больших значениях могут проявиться артефакты формант, неестественная атака и деградация тембра.
Для короткой закадровой фразы достаточно выбрать голос и скорость. Для локализации нужен расчёт длины.
Рабочий порядок выглядит так:
1. Сначала фиксируется целевая длительность реплики. Не «сделать быстрее», а уложиться, например, в конкретный слот между монтажными склейками.
2. Затем редактируется перевод. Удаляются семантически пустые связки. Перестраивается порядок слов. Русский текст не должен быть буквальной копией английского синтаксиса.
3. После этого выбирается темп. Изменение скорости должно быть умеренным. Темп компенсирует остаток, а не исправляет плохой перевод.
4. Потом задаются паузы и ударения. Это работа с информационной структурой фразы, а не декоративная настройка.
5. Pitch меняется последним. Только если это требуется для различения ролей или коррекции регистра. Он не заменяет отдельную голосовую модель.
6. Итоговый WAV проверяется в видеомонтаже. Волновая форма и длительность в интерфейсе TTS не покажут конфликт с артикуляцией на экране.
Ни темп, ни сдвиг высоты не решают задачу lip-sync. Синхронизация губ ИИ требует отдельного видеомодуля либо ручной правки текста под видимую артикуляцию. В русском особенно чувствительны губные согласные, открытые гласные и финальные слоги. Реплика может идеально попадать в длительность и всё равно выглядеть чужой во рту актёра.
Скорость синтеза — параметр длительности. Просодия — параметр смысла. Смешивать их в одном регуляторе нельзя.
Для аудиокниг ограничение другое. Там допустима более свободная длительность, но критичны стабильность тембра и усталость слушателя. Агрессивная настройка темпа или высоты, приемлемая для 15-секундного ролика, на главе длиной в час создаёт заметный синтетический паттерн.
Разметка текста: где начинается реальное управление
В русской TTS качество часто определяется не выбором модели, а состоянием текста до инференса. Нормализатор должен решить, как читать «2026», «12/04», «3,5», «GPU», «мл», «ст.» и десятки других конструкций. На этом этапе возникают ошибки, которые голосовой движок уже не исправит.
В разметке Yandex SpeechKit доступны три базовых инструмента:
- знак
+перед ударной гласной для явного ударения; - блок
[[...]]для фонетического произношения; - конструкция
sil<[t]>для паузы заданной длительности.
Максимальная длительность явно заданной паузы — 7000 мс. Этого достаточно для монтажной паузы, смены смыслового блока или имитации реакции. Но пауза не создаёт актёрскую интерпретацию. Она только резервирует время в аудиопотоке.
Разметка также не является безусловной командой для модели. Это подсказка. Конечный результат зависит от нормализатора, фронтенда, акустических весов и вокодера. Поэтому сложные слова надо слушать в финальном голосе, а не считать решёнными после добавления символа ударения.
SSML в SpeechKit поддерживается только в запросах API v1. TTS-разметка работает в API v1 и v3. Это архитектурная деталь, но она влияет на интеграцию. Пайплайн, завязанный на SSML-шаблоны, нельзя механически переносить на v3. Нужен слой преобразования сценария или разделение маршрутов синтеза.
Нормальная подготовка сценария для нейроозвучки содержит отдельный словарь. В него попадают:
- имена персонажей и топонимы;
- бренды и названия продуктов;
- сокращения, которые нельзя доверять автоматической нормализации;
- термины с нормативным, но неочевидным ударением;
- англоязычные вставки;
- числа, единицы измерения и версии;
- слова, для которых задана специфическая дикторская подача.
Такой словарь — не временный костыль. Это часть production pipeline. Особенно в играх, где одна сущность повторяется в тысячах строк, и в сериальном контенте, где ошибка произношения закрепляется на весь сезон.
Для контроля полезен регрессионный набор. Не десять красивых демо-фраз, а 100–300 проблемных строк с эталонным прочтением. После обновления API, смены голоса или новой версии собственного сервиса этот набор прогоняется автоматически. Сравниваются длительность, наличие тишины, спектральные аномалии и результаты выборочной человеческой проверки. Полностью автоматизировать оценку русской просодии нельзя, но автоматизация быстро ловит грубые регрессии.
Что именно должен ловить регрессионный прогон:
- появление неестественных пауз внутри коротких фраз;
- дрейф тембра между соседними сегментами одной сцены;
- изменение ударения у терминов из словаря после обновления весов;
- новые ошибки нормализации чисел и сокращений;
- сдвиг средней длительности реплики, ломающий тайминг монтажа;
- появление шипящих артефактов после перехода на новый нейровокодер.
Методика регрессионного контроля универсальна для любых прикладных систем с агрегированными метриками: один итоговый балл почти всегда скрывает критичные локальные ошибки. Общее среднее без разложения по сценарию применения и без описания ограничений измерения — это иллюзия прозрачности, а не отчёт. Для русской TTS это правило работает жёстче, чем для большинства других метрик: одна неверно произнесённая фамилия, команда или доза в инструкции способна сделать высокий средний MOS нерелевантным для конкретного проекта.
Почему кросс-язычный голос не решает задачу дубляжа
Голос, обученный для одного языка, иногда может произнести текст на другом. Это не означает, что он пригоден для локализации. Документация SpeechKit прямо фиксирует риск акцента и ошибок в словах при таком сценарии.
Проблема не только в фонемах. Меняются:
- инвентарь звуков;
- правила редукции гласных;
- распределение ударений;
- допустимые сочетания согласных;
- интонационная структура;
- длительность слогов;
- статистика пауз и фразовых границ.
Zero-shot клонирование добавляет ещё один слой неопределённости. Система получает референсный голос и извлекает speaker embedding. Затем акустическая модель должна удержать идентичность спикера в другом тексте, а иногда и в другом языке. Чем дальше целевой материал от обучающего распределения, тем выше риск: тембр формально похож, но артикуляция, ритм и акцент выдают генерацию.
В ИИ-дубляже нельзя оценивать голосовой клон отдельно от перевода. Сильный переводчик может подготовить компактную русскую реплику с правильными акцентами. Слабый перевод создаст перегруженную конструкцию, которую TTS вынуждена ускорять. После этого команда может ошибочно обвинить модель в «плохом голосе».
Для диалогов нужен ещё и контекст. Одна реплика, отправленная в API, не знает, кто говорит, кому адресована фраза, является ли это вопросом, возражением или перебивкой. Часть движков пытается восстановить просодию по пунктуации. Этого мало. Сценарий лучше сегментировать по смысловым блокам, а не по произвольному лимиту символов.
Ограничения конкретных голосов важнее числа доступных вариантов
В таблице Google Cloud Text-to-Speech для ru-RU перечислены 18 голосов: 8 Chirp 3: HD, 5 Standard и 5 WaveNet. Число выглядит достаточным для базовой локализации. Но тип голоса определяет доступный контроль.
Для Chirp 3: HD не поддерживаются входной SSML, параметры speaking rate и pitch-audio. Это не дефект модели. Это ограничение интерфейса управления. Оно критично, если проект требует точного темпа, воспроизводимых пауз или адаптации реплик под монтаж.
| Задача | Голос с SSML и управлением темпом | Голос без этих параметров |
|---|---|---|
| Укладка в таймкод | Возможна через текст и скорость | В основном через переписывание текста |
| Явная пауза | Управляема разметкой | Зависит от пунктуации и модели |
| Коррекция регистра | Доступна при наличии pitch-параметра | Только выбором другого голоса |
| Единый шаблон для батча | Реалистичен | Ограничен фиксированной манерой модели |
| Быстрый A/B-тест дубляжа | Можно изолировать параметры | Меняется весь результат сразу |
Вывод не в пользу «старых» или «новых» архитектур. Вывод про соответствие интерфейса задаче. Высококачественный голос без контроля может быть эффективнее для новостной начитки. Для синхронного дубляжа он создаст дополнительные расходы на редактуру текста, повторные генерации и ручную сборку.
Нужно отделять качество модели от управляемости сервиса. Это разные оси. Первая отвечает за чистоту и естественность аудио. Вторая — за возможность встроить инференс в производственный пайплайн.
Практический протокол вместо рейтинга сервисов
Сравнивать русские нейросети для озвучки стоит на своём материале. Необходим минимальный тестовый пакет из реальных строк проекта. Для видеоконтента достаточно начать с 30–50 реплик, если они покрывают проблемные классы.
В пакет должны войти:
1. Короткие и длинные фразы с разной пунктуацией.
2. Имена, топонимы, бренды и англицизмы.
3. Даты, интервалы, версии, номера моделей, денежные суммы.
4. Реплики с эмоциональным сдвигом без явных маркеров вроде восклицательного знака.
5. Фразы, которые обязаны попасть в точный таймкод.
6. Диалоги нескольких персонажей.
7. Текст с заранее заданными ударениями.
8. Сегменты, требующие пауз внутри предложения.
9. Длинный фрагмент для оценки дрейфа тембра и утомляющей монотонности.
10. Кросс-язычные элементы, если они остаются в локализованном сценарии.
Результаты стоит фиксировать не одной общей оценкой, а журналом дефектов. Минимальные поля: идентификатор строки, версия голоса, настройки, длительность, ошибка нормализации, ошибка ударения, просодический дефект, проблема тембра, необходимость ручной правки. Через несколько итераций появляется не абстрактный рейтинг, а профиль пригодности.
Для закадрового перевода приоритетом обычно будет разборчивость и скорость генерации. Для аудиокниги — стабильность тембра на длинной дистанции и словарь произношений. Для игрового проекта — батч-инференс, контроль имён и согласованность голосов между патчами. Для синхронного дубляжа — длительность, паузы, липсинк и возможность быстро перегенерировать одну реплику без смены характера персонажа.
Экономика внедрения тоже зависит от управляемости. Сервис с дорогой минутой, но точным контролем темпа и пауз часто обходится дешевле «дешёвого» решения, в котором каждая реплика требует ручной правки текста и повторной генерации. Здесь работает простое правило: стоимость минуты синтеза имеет смысл считать только вместе со стоимостью одного часа редактуры. Если правки удваивают трудозатраты, разница в тарифе перестаёт иметь значение.
Нейросеть для озвучки на русском следует выбирать не по числу голосов и не по единичному MOS. Нужны три слоя проверки: качество аудио, управляемость API и поведение на собственном сценарии. RUSLAN даёт ориентир для понимания MOS. API-параметры дают границы контроля. Решение о внедрении даёт только регрессионный набор с реальными текстами и таймкодами.
Остальное — демонстрационный инференс.