Silero TTS v5 — Russian Speech Synthesis

Silero TTS v5 (v5_cis_base) — Russian speech synthesis with 29 voices. RTF ~0.04 on CPU (24× faster than real time).

Features:

  • 🎯 Neural network stress prediction (silero_stress) — correct word emphasis
  • 🎭 29 Russian voices (aidar, baya, kseniya, natasha, ruslan, irina, and more)
  • ⚡ RTF 0.04 on CPU (24× faster than real time)
  • 🖥️ CLI + Python API + Tkinter GUI
  • 🔤 v3/v4 alias compatibility

Quick Start

pip install -r requirements.txt

# CLI (stress marks enabled by default)
python3 tts.py "Привет, мир!"
python3 tts.py "Молоко и корова" -s ru_eduard -o speech.wav
python3 tts.py "Текст" --no-accentor   # disable stress prediction
python3 tts.py --speakers
python3 tts.py --benchmark

# GUI
python3 tts_gui.py

Stress Accentor

Silero TTS v5 supports + stress marks (e.g. молок+о, кор+ова). The silero_stress neural network automatically predicts correct stress positions for every word before synthesis.

from tts import SileroTTS
tts = SileroTTS(use_accentor=True)  # default
# Input:  "Молоко, корова, собака, телефон"
# Stressed: "Молок+о, кор+ова, соб+ака, телеф+он"
audio = tts.speak("Молоко, корова, собака, телефон")

Disable with --no-accentor flag or SileroTTS(use_accentor=False).

Available Voices

Voice Alias (v3/v4) Description
ru_eduard aidar Male, deep
ru_aigul baya Female, soft
ru_ekaterina kseniya Female, clear
ru_albina natasha Female, warm
ru_alexandr ruslan Male, baritone
ru_ramilia irina Female, melodic
ru_kejilgan xenia Female, calm

Plus 22 more ru_* voices (29 total): bogdan, dmitriy, vika, igor, karina, marat, zara, zhadyra, zhazira, zinaida, and others.

Performance

Metric Value
Model v5_cis_base (87 MB)
Voices 29 Russian
Sample Rate 48 kHz
RTF (CPU) 0.04 (24× real time)
RTF (CUDA) 0.08 (12.7× real time)
Format WAV, float32

Python API

from tts import SileroTTS

tts = SileroTTS(use_accentor=True)

# Synthesize text -> numpy array (48kHz float32)
audio = tts.speak("Привет мир", speaker='ru_eduard')

# Save to WAV
tts.save("Привет мир", "output.wav", speaker='ru_aigul')

# Speak and play
tts.play("Привет мир", speaker='ru_eduard')

# List speakers
print(tts.speakers)

# Toggle stress
tts.set_accentor(False)

Files

File Description
tts.py CLI tool + Python API
tts_gui.py Tkinter GUI app
requirements.txt Python dependencies

Requirements

  • Python 3.10+
  • torch (PyTorch)
  • silero
  • silero-stress (for stress prediction)
  • soundfile
  • sounddevice (for GUI and playback)
  • numpy

CLI Usage

# Basic synthesis (with stress marks)
python3 tts.py "Привет, мир!"

# Specify voice and output
python3 tts.py "Текст" --speaker ru_aigul -o speech.wav

# Use v3/v4 alias
python3 tts.py "Текст" -s aidar   # -> ru_eduard
python3 tts.py "Текст" -s baya    # -> ru_aigul

# Disable stress prediction
python3 tts.py "Текст" --no-accentor

# List all voices
python3 tts.py --speakers

# Benchmark
python3 tts.py --benchmark

# List aliases
python3 tts.py --list-aliases

License

MIT. The underlying Silero v5 model is from snakers4/silero-models.

Citation

@software{silero_tts_v5,
  title = {Silero TTS v5: Russian Speech Synthesis},
  author = {Silero Team},
  year = {2024},
  url = {https://github.com/snakers4/silero-models}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support