Moonshot AI выпустила Kimi K2.6 — open-source модель с рекордным long-horizon кодингом, Agent Swarm на 300 агентов и поддержкой OpenClaw и Hermes. Разбираюсь, почему это важно.
База знаний
Silero Models — open-source модели речи на русском (TTS, STT, VAD)
Open-source библиотека готовых моделей речи от Silero Team: синтез (TTS), распознавание (STT) и детекция голоса (VAD). Особенно сильна на русском: 5 живых голосов, автоматические ударения, омографы, SSML и три частоты дискретизации. Подключается одной строкой через pip или torch.hub.
Что такое Silero
Silero — библиотека готовых end-to-end моделей речи от российской команды Silero Team. Внутри три семейства:
- TTS — синтез речи (главный интерес для большинства задач)
- STT — распознавание речи
- VAD — детектор голоса (Silero VAD v6 уже стал индустриальным стандартом)
Ключевая идея проекта — «embarrassingly simple»: модели подключаются одной строкой, работают на обычном CPU, не требуют облака и API-ключей.
Лицензии:
- основной репозиторий — CC-BY-NC 4.0 (только некоммерческое использование);
- модели
v5_cis_baseиv5_cis_base_nostressопубликованы под MIT, их можно использовать коммерчески.
Что умеет на русском
Русский — флагманский язык проекта, и у него есть фишки, которых нет в других языках:
- 5 живых голосов в актуальной версии
v5_5_ru:aidar,baya,kseniya,xenia,eugene - Три частоты дискретизации: 8000, 24000, 48000 Гц (48 кГц звучит почти студийно)
- Автоматическая расстановка ударений — модель сама понимает, где ставить ударение
- Разрешение омографов — «зАмок» против «замОк» определяются по контексту
- Вопросительная интонация (с версии
v5_4_ru) — корректное интонирование вопросов - Поддержка SSML — управление паузами, скоростью, тоном
- Алфавит: стандартный русский (
абвгдеёжзийклмнопрстуфхцчшщъыьэюя)
Версии русских моделей
| Модель | Голоса | Ударения / Омографы / Вопросы |
v5_5_ru (последняя) | aidar, baya, kseniya, xenia, eugene | ✅ / ✅ / ✅ |
v5_4_ru | aidar, baya, kseniya, xenia | ✅ / ✅ / ✅ |
v5_3_ru | 5 голосов | ✅ / ✅ / ❌ |
v5_ru | 5 голосов | ✅ / ✅ / ❌ |
v4_ru | 5 голосов + random | ✅ / ❌ / ❌ |
Для коммерческого использования смотрите модели v5_cis_base и v5_cis_base_nostress — там есть русский с префиксом ru_ под лицензией MIT.
Установка
Минимум: Python 3.8+, процессор с инструкциями AVX2 (любой современный x86/64 CPU), PyTorch 2.0+ для v5-моделей.
Через pip (рекомендуется)
pip install silero torch torchaudio omegaconfЧерез PyTorch Hub
Ничего отдельно ставить не нужно, кроме самого PyTorch:
pip install torch torchaudio omegaconfМодель скачается автоматически при первом вызове torch.hub.load() и закешируется в ~/.cache/torch/hub.
Standalone (без интернета на проде)
Скачайте .pt файл один раз и используйте офлайн — нужны только PyTorch и стандартная библиотека Python.
curl -L -o v5_ru.pt https://models.silero.ai/models/tts/ru/v5_ru.ptБазовое использование
Через pip-пакет
from silero import silero_tts
model, example_text = silero_tts(language='ru', speaker='v5_ru')
audio = model.apply_tts(text=example_text)Через PyTorch Hub
import torch
language = 'ru'
model_id = 'v5_ru'
sample_rate = 48000
speaker = 'xenia'
device = torch.device('cpu')
model, _ = torch.hub.load(
repo_or_dir='snakers4/silero-models',
model='silero_tts',
language=language,
speaker=model_id,
)
model.to(device)
text = 'Привет! Это первый тест синтеза речи на русском языке.'
audio_path = model.save_wav(
text=text,
speaker=speaker,
sample_rate=sample_rate,
)
print(f'Файл сохранён: {audio_path}')Standalone (офлайн-вариант)
import os
import torch
device = torch.device('cpu')
torch.set_num_threads(4)
local_file = 'v5_ru.pt'
if not os.path.isfile(local_file):
torch.hub.download_url_to_file(
'https://models.silero.ai/models/tts/ru/v5_ru.pt',
local_file,
)
model = torch.package.PackageImporter(local_file).load_pickle('tts_models', 'model')
model.to(device)
text = 'Меня зовут Лёва Королёв, и я открою все ваши замки.'
model.save_wav(text=text, speaker='baya', sample_rate=48000)Управление озвучкой через SSML
SSML позволяет управлять паузами, скоростью, тоном и логическими ударениями. Подробности — на Wiki проекта.
ssml_text = '''
<speak>
Сегодня <prosody rate="slow">очень важная</prosody> новость.
<break time="500ms"/>
Мы запускаем новый продукт!
</speak>
'''
model.save_wav(text=ssml_text, speaker='kseniya', sample_rate=48000)Полезные теги:
<break time="500ms"/>— пауза<prosody rate="slow|fast">…</prosody>— скорость<prosody pitch="high|low">…</prosody>— тон<p>и<s>— параграфы и предложения с естественными паузами
Ручная расстановка ударений
Если автоматика ошиблась с омографом, поставьте ударение знаком + перед гласной:
text = 'Стальной з+амок и навесной зам+ок — это разные вещи.'
model.save_wav(text=text, speaker='xenia', sample_rate=48000)То же самое работает в моделях v5_cis_base (там ручные ударения обязательны для всех слов на не-славянских языках).
Использование в OpenAI Codex
Codex (CLI или агент в подписке ChatGPT) умеет ставить пакеты и запускать скрипты. Silero идеально вписывается в его workflow: одна команда установки плюс один Python-скрипт.
Шаблон промпта для Codex
- Создай venv в папке
.venvи активируй его. - Установи зависимости:
pip install silero torch torchaudio omegaconf soundfile. - Создай скрипт
tts.py, который принимает текст из аргумента--textи имя голоса--speaker(по умолчаниюxenia), генерирует WAV в папкеout/через модельv5_ruна 48 кГц. - Покажи пример запуска и проверь, что файл создаётся.
Codex развернёт окружение, напишет скрипт примерно такого вида и сам его проверит:
# tts.py
import argparse
import os
from pathlib import Path
import torch
MODEL_URL = 'https://models.silero.ai/models/tts/ru/v5_ru.pt'
MODEL_FILE = Path('models/v5_ru.pt')
def load_model():
MODEL_FILE.parent.mkdir(parents=True, exist_ok=True)
if not MODEL_FILE.exists():
torch.hub.download_url_to_file(MODEL_URL, str(MODEL_FILE))
model = torch.package.PackageImporter(str(MODEL_FILE)).load_pickle('tts_models', 'model')
model.to(torch.device('cpu'))
return model
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--text', required=True)
parser.add_argument('--speaker', default='xenia',
choices=['aidar', 'baya', 'kseniya', 'xenia', 'eugene'])
parser.add_argument('--out', default='out/result.wav')
args = parser.parse_args()
Path(args.out).parent.mkdir(parents=True, exist_ok=True)
model = load_model()
path = model.save_wav(text=args.text, speaker=args.speaker, sample_rate=48000, audio_path=args.out)
print(f'OK → {path}')
if __name__ == '__main__':
main()Запуск:
python tts.py --text "Codex теперь умеет говорить." --speaker bayaЧто попросить у Codex дальше
- Сборка пайплайна: «прочитай тексты постов из
posts.md, разбей на абзацы и озвучь каждый отдельным WAV» - Telegram-бот: «оберни
tts.pyвaiogram-бота, который принимает сообщение и возвращает голосовое» - FastAPI-сервис: «сделай HTTP-эндпоинт
/ttsна FastAPI, который принимает JSON{text, speaker}и отдаёт audio/wav» - Озвучка YouTube-сценария: «возьми сценарий, расставь паузы SSML между абзацами и склей итоговый WAV через
pydub» - Пакетная обработка: «обработай папку
texts/*.txtпараллельно, используйtorch.set_num_threads(4)»
Подсказки для надёжной работы
- В Codex-сессии всегда уточняйте: версию модели (
v5_5_ru), голос, частоту дискретизации - Просите кешировать
.ptлокально — иначе Codex будет качать модель при каждом запуске - На Mac с Apple Silicon дайте команду «используй device
mpsесли доступно, иначеcpu» - Для длинных текстов попросите автоматически бить на чанки по ~1000 символов и склеивать WAV
STT и VAD
Если в задаче нужна не только озвучка:
- Silero STT — распознавание русской речи, сравнимо по качеству с Google, Yandex и SberSpeech, работает офлайн на CPU.
- Silero VAD v6 — детектор речи, отделяет тишину от голоса. Нужен в любом голосовом пайплайне: запись звонков, транскрипция, голосовые ассистенты.
Оба подключаются той же одной строкой torch.hub.load. Для пайплайнов «голос → текст → ответ → голос» в Codex это идеальный набор: VAD → STT → ваша логика → Silero TTS.
Полезные ссылки
- Репозиторий: github.com/snakers4/silero-models
- Полный список моделей: models.yml
- Colab с примерами TTS: examples_tts.ipynb
- SSML Wiki: github.com/snakers4/silero-models/wiki/SSML
- Telegram-чат проекта: t.me/silero_speech
- Статья про омографы и ударения: habr.com/ru/articles/955130
- Статья про v5 и качество синтеза: habr.com/ru/post/660565
По теме
- Статья: Plaud × Notion: как мы построили устойчивый конвейер транскриптов через «серый» API
- Блог: Google запустил Gemini 3.1 Flash Live — и это первый серьёзный шаг к голосовым ИИ-агентам в реальном времени
- База знаний: Suno API — генерация музыки через AI
Если вы хотите встроить голосовой контур в свои продукты или агентские пайплайны, я помогаю собрать рабочую связку «голос → текст → ответ → голос» под конкретные задачи и инфраструктуру.