snakers4/silero-models
Silero Models: pre-trained text-to-speech models made embarrassingly simple
README
- Silero Models
- Installation and Basics
- Text-To-Speech
- Models and Speakers
- V5 Turkic
- V5 Caucasian
- V5
- V5 CIS Base Models
- V5 CIS Ext Models
- V4
- V3
- Dependencies
- PyTorch
- Standalone Use
- SSML
- Cyrillic languages v4
- Indic languages v4
- Example
- Supported languages
- Contact
- Licence
- Citations
- Further reading
- English
- Chinese
- Russian
Silero Models
Our TTS models satisfy the following criteria:
- Fully end-to-end;
- Large library of voices;
- Natural-sounding speech;
- One-line usage, minimal, portable;
- Impressively fast on CPU and GPU;
- For the Russian language - automated stress and homographs;
Installation and Basics
You can basically use our models in 3 flavours:
- Via PyTorch Hub:
torch.hub.load(); - Via pip:
pip install sileroand thenfrom silero import silero_tts; - Via caching the required models and utils manually and modifying if necessary;
PyTorch Hub and pip package are based on the same code. All of the torch.hub.load examples can be used with the pip package via this basic change:
from silero import silero_tts
model, example_text = silero_tts(language='ru',
speaker='v5_ru')
audio = model.apply_tts(text=example_text)
Text-To-Speech
Models and Speakers
All of the provided models are listed in the models.yml file. Any metadata and newer versions will be added there.
V5 Turkic
- This model does not support stress at all;
- This model supports SSML;
- This model supports
8000,24000,48000sampling rates;
v5_turkic | chv_0,chv_1 | chv (Chuvash) | v5_turkic | crh_0, crh_1, crh_2 | crh (Crimean Tatar) | v5_turkic | gag_0, gag_1, gag_2 | gag (Gagauz) | v5_turkic | kaa_0, kaa_1 | kaa (Karakalpak) | v5_turkic | kir_0 | kir (Kyrgyz) | v5_turkic | kjh_0 | kjh (Khakas) | v5_turkic | sah_0, sah_1, sah_2 | sah (Yakut ) | v5_turkic | sty_0 | sty (Siberian Tatar) | v5_turkic | tat_0 | tat (Tatar) | v5_turkic | tgk_0 | tgk (Tajik) | v5_turkic | tuk_0, tuk_1, tuk_2 | tuk (Turkmen) | v5_turkic | tyv_0 | tyv (Tuvan) | v5_turkic | uzb_0 | uzb (Uzbek) | v5_turkic | xal_0, xal_1, xal_2 | xal (Kalmyk) | V5 Caucasian
- This model does not support stress at all;
- This model supports SSML;
- This model supports
8000,24000,48000sampling rates;
v5_caucasian | abq_0, abq_1, abq_2 | abq (Abaza) | v5_caucasian | ady_0, ady_1, ady_2, ady_3 | ady (Adygean) | v5_caucasian | agx_0 | agx (Aghul) | v5_caucasian | ava_0 | ava (Avar) | v5_caucasian | che_0, che_1, che_2, che_3, che_4 | che (Chechen) | v5_caucasian | darg_0, darg_1 | darg (Dargin) | v5_caucasian | inh_0, inh_1 | inh (Ingush) | v5_caucasian | kbd_0, kbd_1, kbd_2 | kbd (K.-Ciscassian) | v5_caucasian | krc_0, krc_1, krc_2 | krc (K.-Balkar) | v5_caucasian | kum_0, kum_1, kum_2 | kum (Kumyk) | v5_caucasian | lbe_0 | lbe (Lak) | v5_caucasian | lez_0 | lez (Lezgin) | v5_caucasian | oss_0 | oss (Ossetian) | v5_caucasian | tab_0, tab_1 | tab (Tabasaran) | v5_caucasian | tkr_0 | tkr (Tsakhur) | examples_tts_turkic_caucasian.ipynb
V5
V5 models support SSML. Also see Colab examples for main SSML tag usage.
Russian-only models support automated stress and homographs. v5_2_ru cointains minor fixes and removes numpy and scipy dependencies.
v5_3_ru cointains minor fixes. v5_4_ru also supports questions.
| ID | Speakers | Auto-stress / Homographs / Questions | Language | SR | Colab |
| ------- | --------------------------------------------- | ----------- | -------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| v5_5_ru | aidar, baya, kseniya, xenia, eugene | ✅ / ✅ / ✅ | ru (Russian) | 8000, 24000, 48000 | |
|
v5_4_ru | aidar, baya, kseniya, xenia | ✅ / ✅ / ✅ | ru (Russian) | 8000, 24000, 48000 | |
|
v5_3_ru | aidar, baya, kseniya, xenia, eugene | ✅ / ✅ / ❌ | ru (Russian) | 8000, 24000, 48000 | |
|
v5_2_ru | aidar, baya, kseniya, xenia, eugene | ✅ / ✅ / ❌ | ru (Russian) | 8000, 24000, 48000 | |
|
v5_ru | aidar, baya, kseniya, xenia, eugene | ✅ / ✅ / ❌ | ru (Russian) | 8000, 24000, 48000 | |
V5 CIS Base Models
- All of the below models support
8000,24000,48000sampling rates and contain no auto-stress or homographs; v5_cis_basemodels assume that proper stress should be added for each word for all languages, i.e.к+ошка;v5_cis_base_nostressmodels assume that proper stress should be added for each word ONLY for slavic languages (i.e.ru,bel,ukr);- All of the below models are published under
MITlicence; - V5 UTMOS and throughput metrics;
- V5 models support SSML. Also see Colab examples for main SSML tag usage;
- Use cases for the model;
- Minimal system requirements: a PyTorch-compatible system, a modern processor with AVX2 instruction set for x86/64 platform.
v5_cis_base, v5_cis_base_nostress | aze_gamat | aze (Azerbaijani) | v5_cis_base, v5_cis_base_nostress | hye_zara | hye (Armenian) | v5_cis_base, v5_cis_base_nostress | bak_aigul, bak_alfia, bak_alfia2 | bak (Bashkir) | v5_cis_base, v5_cis_base_nostress | bak_miyau, bak_ramilia | bak (Bashkir) | v5_cis_base, v5_cis_base_nostress | bel_anatoliy, bel_dmitriy, bel_larisa | bel (Belarus) | v5_cis_base, v5_cis_base_nostress | kat_vika | kat (Georgian) | v5_cis_base, v5_cis_base_nostress | kbd_eduard | kbd (Kab.-Cherkes) | v5_cis_base, v5_cis_base_nostress | kaz_zhadyra, kaz_zhazira | kaz (Kazakh) | v5_cis_base, v5_cis_base_nostress | xal_kejilgan, xal_kermen | xal (Kalmyk) | v5_cis_base, v5_cis_base_nostress | kir_nurgul | kir (Kyrgyz) | v5_cis_base, v5_cis_base_nostress | mdf_oksana | mdf (Moksha) | v5_cis_base, v5_cis_base_nostress | all of these speakers, but with ru_ prefix | ru (Russian) | v5_cis_base, v5_cis_base_nostress | tgk_onaoy, tgk_safarhuja | tgk (Tajik) | v5_cis_base, v5_cis_base_nostress | tat_albina, tat_marat | tat (Tatar) | v5_cis_base, v5_cis_base_nostress | udm_bogdan | udm (Udmurt) | v5_cis_base, v5_cis_base_nostress | uzb_saida | uzb (Uzbek) | v5_cis_base, v5_cis_base_nostress | ukr_igor, ukr_roman | ukr (Ukrainian) | v5_cis_base, v5_cis_base_nostress | kjh_karina, kjh_sibday | kjh (Khakas) | v5_cis_base, v5_cis_base_nostress | chv_ekaterina | chv (Chuvash) | v5_cis_base, v5_cis_base_nostress | erz_alexandr | erz (Erzya) | v5_cis_base, v5_cis_base_nostress | sah_zinaida | sah (Yakut) | Supported alphabets
Please note that Georgian and Armenian are in fact internally supported via direct translation into cyrillic script inside of the package. Azerbaijani and Uzbek support both alphabets (Cyrillic and Latin).
| ID | Название | Алфавит(ы) |
|-----|---------------|--------------------------------------------|
| aze | aze (Azerbaijani) | abcçdeәfgğhxıijkqlmnoöprsştuüvyz |
| aze | aze (Azerbaijani) | абвгғдеәжзиыјкҝлмноөпрстуүфхһчҹш |
| hye | hye (Armenian) | աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև |
| bak | bak (Bashkir) | абвгдежзийклмнопрстуфхцчшщъыьэюяёғҙҡңҫүһәө |
| bel | bel (Belarus) | абвгдежзйклмнопрстуфхцчшыьэюяёіў |
| kat | kat (Georgian) | აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ |
| kbd | kbd (Kab.-Cherkes) | абвгдежзийклмнопрстуфхцчшщъыьэюяёӏ |
| kaz | kaz (Kazakh) | абвгдежзийклмнопрстуфхцчшщыьэюяіғқңүұһәө |
| xal | xal (Kalmyk) | абвгдежзийклмнопрстуфхцчшщъыьэюяҗңүһәө |
| kir | kir (Kyrgyz) | абвгдежзийклмнопрстуфхцчшыьэюяёңүө |
| mdf | mdf (Moksha) | абвгдежзийклмнопрстуфхцчшщъыьэюяё |
| ru | ru (Russian) | абвгдеёжзийклмнопрстуфхцчшщъыьэюя |
| tgk | tgk (Tajik) | абвгдежзийклмнопрстуфхчшъэюяёғқҳҷӣӯ |
| tat | tat (Tatar) | абвгдежзийклмнопрстуфхцчшъыьэюяҗңүһәө |
| udm | udm (Udmurt) | абвгдежзийклмнопрстуфхцчшщъыьэюяёӝӟӥӧӵ |
| uzb | uzb (Uzbek) | абвгдежзийклмнопрстуфхцчшъьэюяёўғқҳ |
| uzb | uzb (Uzbek)