ukrainian-tts / README.md
Yurii Paniv
#12 Fix incorrect example
c00658c unverified
---
title: "Ukrainian TTS"
emoji: 🐌
colorFrom: blue
colorTo: yellow
sdk: gradio
sdk_version : 3.3
python_version: 3.9
app_file: app.py
pinned: false
---
# Ukrainian TTS πŸ“’πŸ€–
Ukrainian TTS (text-to-speech) using Coqui TTS.
Link to online demo -> [https://huggingface.co/spaces/robinhad/ukrainian-tts](https://huggingface.co/spaces/robinhad/ukrainian-tts)
Link to source code and models -> [https://github.com/robinhad/ukrainian-tts](https://github.com/robinhad/ukrainian-tts)
Telegram bot -> [https://t.me/uk_tts_bot](https://t.me/uk_tts_bot)
Code is licensed under `MIT License`, models are under `GNU GPL v3 License`.
# Support ❀️
If you like my work, please support ❀️ -> [https://send.monobank.ua/jar/48iHq4xAXm](https://send.monobank.ua/jar/48iHq4xAXm)
For collaboration and question please contact me here:
[Telegram https://t.me/robinhad](https://t.me/robinhad)
[Twitter https://twitter.com/robinhad](https://twitter.com/robinhad)
You're welcome to join UA Speech Recognition and Synthesis community: [Telegram https://t.me/speech_recognition_uk](https://t.me/speech_recognition_uk)
# Examples πŸ€–
`Mykyta (male)`:
https://user-images.githubusercontent.com/5759207/190852232-34956a1d-77a9-42b9-b96d-39d0091e3e34.mp4
`Olena (female)`:
https://user-images.githubusercontent.com/5759207/190852238-366782c1-9472-45fc-8fea-31346242f927.mp4
`Dmytro (male)`:
https://user-images.githubusercontent.com/5759207/190852251-db105567-52ba-47b5-8ec6-5053c3baac8c.mp4
`Olha (female)`:
https://user-images.githubusercontent.com/5759207/190852259-c6746172-05c4-4918-8286-a459c654eef1.mp4
`Lada (female)`:
https://user-images.githubusercontent.com/5759207/190852270-7aed2db9-dc08-4a9f-8775-07b745657ca1.mp4
# How to use: πŸ“’
## As a package:
1. Install using command:
```
pip install git+https://github.com/robinhad/ukrainian-tts.git
```
2. Run a code snippet:
```python
from ukrainian_tts.tts import TTS, Voices, Stress
tts = TTS(use_cuda=False)
with open("test.wav", mode="wb") as file:
_, text = tts.tts("ΠŸΡ€ΠΈΠ²Ρ–Ρ‚", Voices.Dmytro.value, Stress.Model.value, file)
print("Accented text:", text)
```
## Run manually:
`Caution: this won't use normalizer and autostress like a web demo. `
1. `pip install -r requirements.txt`.
2. Download `model.pth` and `speakers.pth` from "Releases" tab.
3. Launch as one-time command:
```
tts --text "Text for TTS" \
--model_path path/to/model.pth \
--config_path path/to/config.json \
--speaker_idx dmytro \
--out_path folder/to/save/output.wav
```
or alternatively launch web server using:
```
tts-server --model_path path/to/model.pth \
--config_path path/to/config.json
```
# How to train: πŸ‹οΈ
1. Refer to ["Nervous beginner guide"](https://tts.readthedocs.io/en/latest/tutorial_for_nervous_beginners.html) in Coqui TTS docs.
2. Instead of provided `config.json` use one from this repo.
# Attribution 🀝
- Model training - [Yurii Paniv @robinhad](https://github.com/robinhad)
- Mykyta, Olena, Lada, Dmytro, Olha dataset - [Yehor Smoliakov @egorsmkv](https://github.com/egorsmkv)
- Dmytro voice - [Dmytro Chaplynskyi @dchaplinsky](https://github.com/dchaplinsky)
- Silence cutting using [HMM-GMM](https://github.com/proger/uk) - [Volodymyr Kyrylov @proger](https://github.com/proger)
- Autostress (with dictionary) using [ukrainian-word-stress](https://github.com/lang-uk/ukrainian-word-stress) - [Oleksiy Syvokon @asivokon](https://github.com/asivokon)
- Autostress (with model) using [ukrainian-accentor](https://github.com/egorsmkv/ukrainian-accentor) - [Bohdan Mykhailenko @NeonBohdan](https://github.com/NeonBohdan) + [Yehor Smoliakov @egorsmkv](https://github.com/egorsmkv)