Мы недавно писали про обновление нашего публичного синтеза, silero-tts. В прошлый раз мы существенно увеличили скорость, качество и добавили поддержку омографов.В этот раз мы хотим вас порадовать особенной фичей, которая в большинстве случаев стабильно не работает даже в моделях синтеза, которые требуют для своей работы на 3-4 порядка больше вычислительных ресурсов и современные серверные видеокарты (наш синтез запускается даже на слабых процессорах).Как вы догадались, эта фича — это постановка вопросов.

Созрел вопрос
Мы недавно писали про обновление нашего публичного синтеза, silero-tts. В прошлый раз мы существенно увеличили скорость, качество и добавили поддержку омографов.
В этот раз мы хотим вас порадовать особенной фичей, которая в большинстве случаев стабильно не работает даже в гигантских моделях синтеза, которые требуют для своей работы на 3-4 порядка больше вычислительных ресурсов и современные серверные видеокарты (наш синтез запускается даже на слабых процессорах).
Как вы догадались, эта фича — это постановка вопросов. Если просуммировать основные текущие фичи:
Высокая скорость;
Поддержка SSML;
Автоматическая простановка ударений и омографов;
Установка через torch.hub, pip и просто локально через торч;
Доступны голоса aidar, baya, kseniya, xenia (eugeneв модель с вопросами доедет чуть позже);
Теперь есть поддержка 4 типов вопросов: специальные (с вопросительным словом), общие (с выделением какого-либо слова), альтернативные ("ты любишь рыбу или мясо?") и вопросы-хвостики ("не так ли?").
Для максимальной выразительности в общих вопросах настоятельно рекомендуется выделять интонационный центр звёздочками.
Послушаем примерыИлья, общие вопросы:
Ксения, вопросы-хвостики:
Ксения, общие вопросы:
Например, вот эти аудио сгенерированы вот таким кодом:
Скрытый текстimport IPython.display as ipd
texts = [
'*Организаторы* прислали нам электронные билеты?',
'Организаторы *прислали* нам электронные билеты?',
'Организаторы прислали *нам* электронные билеты?',
'Организаторы прислали нам *электронные* билеты?',
'Организаторы прислали нам электронные *билеты*?'
]
for i, text in enumerate(texts):
audio = model.apply_tts(text=text, speaker='xenia')
ipd.display(ipd.Audio(audio, rate=48000))Ксения, частные вопросы:
Про вопросы в русском языке
Интонация в общем вопросе на примере
В русском языке существует три основные стратегии маркировки вопросов: грамматическая (порядок слов), лексическая (вопросительные слова, частицы) и просодическая (интонация).
Грамматическая стратегия в русской разговорной речи используется очень редко: обязательной инверсии для вопросов нет, и по порядку слов в предложении невозможно достоверно определить, вопрос это или нет.
Лексическая стратегия (через вопросительное слово и конструкции вроде "не так ли?" или "или") — самая простая для синтеза, поскольку вопрос однозначно определяется на уровне текста, а просодический контур в целом не слишком отличается от повествовательного.
Однако эта стратегия не используется в общих вопросах ("Ты дома?"), которые в корпусах составляют примерно половину от всей массы вопросов. Просодическая стратегия является самой главной в русском языке и самой сложной для TTS: интонационный акцент может ставиться практически на любое слово, вне зависимости от его позиции или части речи, и от позиции акцента зависит смысл высказывания:
Он ПРИШЁЛ? (да, явился наконец-то);
ОН пришёл? (нет, пришла его кошка).
В итоге, для реализации русской вопросительной интонации в TTS оказывается недостаточно подать корпус вопросительных предложений. Для обучения модели необходима разметка на типы вопросов в зависимости от стратегии реализации, а также выделение слова, на которое падает просодический акцент.
Как использовать новую фичу?Просто скачайте новую модель и пишите вопросы как обычно. Если вопрос общий, то для максимальной выразительности следует выделить интонационный центр звёздочками.
Для альтернативных, специальных или вопросов-хвостиков можно не указывать интонационный центр (если указать, будет лучше звучать).
Также добавился параметр intensity=3, отвечающий за "силу" интонации. Но мы рекомендуем его оставить по-умолчанию, то есть всегда 3. В будущем значение по-умолчанию может поменяться, как и сила выразительности. Сейчас 3 соответствует скорее нормальной интонации.
На практике, самые "сложные" общие вопросы (с интонационным центром) выглядят вот так:
texts = [
'*Организаторы* прислали нам электронные билеты?',
'Организаторы *прислали* нам электронные билеты?',
'Организаторы прислали *нам* электронные билеты?',
'Организаторы прислали нам *электронные* билеты?',
'Организаторы прислали нам электронные *билеты*?'
]
for i, text in enumerate(texts):
audio = model.apply_tts(text=text, speaker='xenia')Пакет pip и примеры запускаМы уже писали про pip-пакет, pip install silero. Если использовать его, то минимальный код запуска выглядит уже совсем лаконично:
!pip install silero
from silero import silero_tts
model, example_text = silero_tts(language='ru',
speaker='v5_4_ru')
audio = model.apply_tts(text=example_text)Полный код запуска, например с использованием torch.hub со всеми флагами уже выглядит вот так (подробнее можно потыкать в интерактивном ноутбучке):
import torch
language = 'ru'
model_id = 'v5_4_ru'
device = torch.device('cpu')
model, example_text = torch.hub.load(repo_or_dir='snakers4/silero-models',
model='silero_tts',
language=language,
speaker=model_id)
model.to(device) # gpu or cpu
sample_rate = 48000
speaker = 'xenia'
put_accent=True
put_yo=True
put_stress_homo=True
put_yo_homo=True
example_text = 'Меня зовут Лева Королев. Я из готов. И я уже готов открыть все ваши замки любой сложности!'
audio = model.apply_tts(text=example_text,
speaker=speaker,
sample_rate=sample_rate,
put_accent=put_accent,
put_yo=put_yo,
put_stress_homo=put_stress_homo,
put_yo_homo=put_yo_homo)
ssml_sample = """
<speak>
<p>
Когда я просыпаюсь, <prosody rate="x-slow">я говорю довольно медленно</prosody>.
Потом я начинаю говорить своим обычным голосом,
<prosody pitch="x-high"> а могу говорить тоном выше </prosody>,
или <prosody pitch="x-low">наоборот, ниже</prosody>.
Потом, если повезет – <prosody rate="fast">я могу говорить и довольно быстро.</prosody>
А еще я умею делать паузы любой длины, например, две секунды <break time="2000ms"/>.
<p>
Также я умею делать паузы между параграфами.
</p>
<p>
<s>И также я умею делать паузы между предложениями</s>
<s>Вот например как сейчас</s>
</p>
</p>
</speak>
"""
audio = model.apply_tts(ssml_text=ssml_sample,
speaker=speaker,
sample_rate=sample_rate)Про омографы, скорость и размер модели можно подробнее прочитать в прошлой статье.
Вместо выводаУ нас недавно получилось добиться нетривиального прогресса по сбору данных для модели расстановки омографов, плюс в дополнение к вопросам мы также планируем добавить эмфазы (яркое выделение какого-то конкретного слова в повествовательном предложении).
Если у вас есть какие-то прикольные или оригинальные идеи насчёт улучшения открытого синтеза речи - будем рады обсудить в комментариях или в тикетах в репозитории. Вы также можете прислать свои данные для ударений и омографов - мы сделаем базовую библиотеку лучше.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Можно ли заменить диктора open‑source TTS‑моделью: тестируем OmniVoice на русском языке | 0 | 9.09 | 08-05-2026 |
| 2 | Обзор Open Source моделей для задачи TTS | 0 | 7.62 | 05-02-2026 |
| 3 | Сравнение TTS-моделей на реальных задачах бизнеса: голосовой бот и аудиоподкасты | 0 | 13.84 | 20-04-2026 |
| 4 | LLM как декодер в ASR: опыт адаптации SOTA архитектуры для спонтанной русскоязычной речи | 0 | 9.94 | 22-04-2026 |
| 5 | audiogear: как разметить миллионы аудиозаписей для TTS | 0 | 7.86 | 05-07-2026 |
| 6 | От сигнала к действию: когда ИИ можно разрешить работать самостоятельно | 0 | 10 | 28-07-2026 |
| 7 | Большое обновление «Алисы AI»: теперь она доводит задачу до результата, подстраивается под стиль общения собеседника и запоминает важное из диалога | 7 | 8 | 26-06-2026 |
| 8 | Голосовой помощник Маруся от "ВКонтакте" включит "Русское Радио" | 0 | 0 | 03-11-2021 |
| 9 | BSS перевела «Речевую аналитику» на рельсы автономных ИИ-агентов | 0 | 18.14 | 10-08-2026 |
| 10 | BSS перевела «Речевую аналитику» на рельсы автономных ИИ-агентов | 0 | 18.14 | 10-08-2026 |