🧠NAS как ИИ-сервер
🗣️
Фаза 3 · TTSГодится

Синтез речи

Чтобы ассистент отвечал голосом, а не текстом. Проверили 12 вариантов, от крошечного Piper до тяжёлых моделей с клонированием голоса. Слушали, правильно ли они ставят ударения, где «ё», и не спотыкаются ли о «1 250,50 ₽».

Берём Silero на CPU для ответов ассистента (с нормализацией текста), Qwen3-TTS 1.7B для озвучки своим голосом
Сухие цифры и методика →

Синтезом речи сейчас мало кого удивишь. Но русский — коварный язык: «зАмок» и «замОк», «мукА» и «мУка», «все» вместо «всё». Модель, которая звучит гладко, запросто может ставить ударения как попало. Поэтому кроме автоматических проверок все варианты прослушали ушами, вслепую: записи перемешаны, подписи скрыты, слушал живой человек.

0.1 сSilero синтезирует ответ на CPU
0 из 8ошибок в ударениях и «ё» у Silero
5 из 8у Piper на тех же фразах
8 сэталона хватает Qwen3-TTS для клона

Послушай сам

Звёздочки — оценка в слепом прослушивании, «ошибка» — неверное ударение, «е» вместо «ё» или не та интонация. Модели с пометкой «клон» говорят голосом с эталонной записи (она ниже).

«Старинный замок стоит на холме.»

слушаем: зАмок

Silero aidar ★★★★★
Silero xenia ★★★★☆
Qwen3-TTS 1.7B · клон ★★★★★
CosyVoice3 · клон ★★★☆☆ошибка
OmniVoice · клон ★★☆☆☆ошибка
Supertonic 3 ★☆☆☆☆ошибка
Qwen3-TTS 0.6B · клон ★★☆☆☆ошибка
Piper ruslan ★☆☆☆☆ошибка
Piper irina ★★☆☆☆ошибка
MOSS-Nano · клон ★☆☆☆☆ошибка

«Ключ не подходит к этому замку.»

слушаем: замкУ

Silero aidar ★★★★☆
Silero xenia ★★★★☆
Qwen3-TTS 1.7B · клон ★★★★☆ошибка
CosyVoice3 · клон ★★★★☆
OmniVoice · клон ★★★★☆ошибка
Supertonic 3 ★★★☆☆ошибка
Qwen3-TTS 0.6B · клон ★★☆☆☆ошибка
Piper ruslan ★★☆☆☆ошибка
Piper irina ★☆☆☆☆ошибка
MOSS-Nano · клон ★☆☆☆☆ошибка

«Для пирога понадобится мука высшего сорта.»

слушаем: мукА

Silero aidar ★★★★★
Silero xenia ★★★★★
Qwen3-TTS 1.7B · клон ★★★★☆ошибка
CosyVoice3 · клон ★★★★☆
OmniVoice · клон ★★★★☆
Supertonic 3 ★★★☆☆ошибка
Qwen3-TTS 0.6B · клон ★★★★☆ошибка
Piper ruslan ★★★☆☆ошибка
Piper irina ★★☆☆☆ошибка
MOSS-Nano · клон ★☆☆☆☆ошибка

Главный сюрприз: робот не слышит ударений

Сначала мы проверяли синтез автоматически: синтезировали фразу, распознали её whisper'ом и посчитали ошибки. По такой метрике Piper irina был почти лучшим. А на слух оказался почти худшим: 5 ошибок в ударениях из 8 фраз. Whisper слышит «замОк» и честно пишет «замок», и придраться ему не к чему.

Серые полоски — что видит автоматическая проверка через распознавание речи: почти у всех ноль. Оранжевые — что слышит человек. Ударение «зАмок»/«замОк» STT не различает.

Без ошибок в ударениях и «ё» кириллицу прочитал только Silero. У него есть отдельные модули, которые расставляют ударения, «ё» и различают омографы. Все остальные полагаются на то, что нейросеть «сама поймёт», и иногда не понимает.

Быстро и хорошо — это Silero

Выше и левее — лучше. Оценка — слепое прослушивание 8 фраз на ударения, «ё» и интонацию.

Silero синтезирует ответ за 0.1 секунды на CPU — в 25 раз быстрее реального времени — и занимает 0.7 ГБ памяти. Тяжёлые модели звучат тоже хорошо, но на нашем iGPU они медленнее реального времени в 2.5–25 раз. Для живого диалога это не годится: представь, что ассистент думает 13 секунд, прежде чем сказать «Свет на кухне включён».

Но Silero не умеет в цифры

Без подготовки текста Silero молча выбрасывает цифры и латиницу. Из «У меня новый iPhone 15 Pro» остаётся «У меня новый» — и всё. Поэтому перед ним нужен нормализатор, который перепишет всё словами. Или можно сразу попросить LLM отвечать словами (мы так и сделали в голосовом ассистенте).

«У меня новый iPhone 15 Pro.»

как естьSTT услышал: «У меня новый.»
после нормализацииSTT услышал: «У меня новый iPhone 15 Pro.»

«Счёт за электричество: 1 250,50 ₽.»

как естьSTT услышал: «Счет за электричество.»
после нормализацииSTT услышал: «Счет за электричество – 1250 рублей 50 копеек.»

«На улице −12 °C.»

как естьSTT услышал: «на улице.»
после нормализацииSTT услышал: «На улице минус 12 градусов.»
100 фраз с числами, датами, единицами и латиницей.

Клонирование голоса

Модели с клонированием получают пример голоса и его текст, а дальше говорят этим голосом. Эталоном у нас была 8-секундная запись диктора из FLEURS:

эталон для клонирования · FLEURS · 8 секунд

«Этот осадок требовался для формирования пляжей и песчаных отмелей, являвшихся местом обитания диких животных.»

Про лицензии

У Silero лицензия CC BY-NC-SA: дома пользоваться можно, в коммерческом продукте — нет. У Qwen3-TTS и CosyVoice3 — Apache 2.0.

Не взлетело