Spaces:
Running
A newer version of the Gradio SDK is available:
5.4.0
title: Ukrainian TTS
emoji: π
colorFrom: blue
colorTo: yellow
sdk: gradio
sdk_version: 3.40.1
python_version: 3.10.3
app_file: app.py
pinned: false
Ukrainian TTS π’π€
Ukrainian TTS (text-to-speech) using ESPNET.
Link to online demo -> https://huggingface.co/spaces/robinhad/ukrainian-tts
Note: online demo saves user input to improve user experience; by using it, you consent to analyze this data.
Link to source code and models -> https://github.com/robinhad/ukrainian-tts
Telegram bot -> https://t.me/uk_tts_bot
Features βοΈ
- Completely offline
- Multiple voices
- Automatic stress with priority queue:
acute
->user-defined
>dictionary
>model
- Control speech speed
- Python package works on Windows, Mac (x86/M1), Linux(x86/ARM)
- Inference on mobile devices (inference models through
espnet_onnx
without cleaners)
Support β€οΈ
If you like my work, please support β€οΈ -> https://send.monobank.ua/jar/48iHq4xAXm
You're welcome to join UA Speech Recognition and Synthesis community: Telegram https://t.me/speech_recognition_uk
Examples π€
Oleksa (male)
:
https://github.com/robinhad/ukrainian-tts/assets/5759207/ace842ef-06d0-4b1f-ad49-5fda92999dbb
More voices π’π€
Tetiana (female)
:
https://github.com/robinhad/ukrainian-tts/assets/5759207/a6ecacf6-62ae-4fc5-b6d5-41e6cdd3d992
Dmytro (male)
:
https://github.com/robinhad/ukrainian-tts/assets/5759207/67d3dac9-6626-40ef-98e5-ec194096bbe0
Lada (female)
:
https://github.com/robinhad/ukrainian-tts/assets/5759207/fcf558b2-3ff9-4539-ad9e-8455b52223a4
Mykyta (male)
:
https://github.com/robinhad/ukrainian-tts/assets/5759207/033f5215-3f09-4021-ba19-1f55158445ca
How to use: π’
Quickstart
Install using:
!pip install git+https://github.com/robinhad/ukrainian-tts.git
Code example:
from ukrainian_tts.tts import TTS, Voices, Stress
import IPython.display as ipd
tts = TTS(device="cpu") # can try gpu, mps
with open("test.wav", mode="wb") as file:
_, output_text = tts.tts("ΠΡΠΈΠ²ΡΡ, ΡΠΊ Ρ ΡΠ΅Π±Π΅ ΡΠΏΡΠ°Π²ΠΈ?", Voices.Dmytro.value, Stress.Dictionary.value, file)
print("Accented text:", output_text)
ipd.Audio(filename="test.wav")
See example notebook: tts_example.ipynb
How to contribute: π
Look into this list with current problems: https://github.com/robinhad/ukrainian-tts/issues/35
How to train: ποΈ
Link to guide: training/STEPS.md
Attribution π€
- Model training - Yurii Paniv @robinhad
- Open Source Ukrainian Text-to-Speech dataset - Yehor Smoliakov @egorsmkv
- Dmytro voice - Dmytro Chaplynskyi @dchaplinsky
- Silence cutting using HMM-GMM - Volodymyr Kyrylov @proger
- Autostress (with dictionary) using ukrainian-word-stress - Oleksiy Syvokon @asivokon
- Autostress (with model) using ukrainian-accentor - Bohdan Mykhailenko @NeonBohdan + Yehor Smoliakov @egorsmkv