MukhammedTogmanov/Til-TTS
Til-TTS
Til-TTS is a Kazakh text-to-speech model fine-tuned directly from k2-fsa/OmniVoice. The model synthesizes natural Kazakh speech and supports controllable voice attributes (gender, age, pitch) as well as expressive, contextual non-verbal speech reactions.
Overview
Til-TTS was trained on a large, quality-verified Kazakh speech corpus, combining professionally recorded studio data, large-scale broadcast and crowdsourced speech, and purpose-built synthetic data for voice control and expressive speech.
Data Pipeline
Final training corpus: 546,488 samples, assembled and verified through the following pipeline:
- Source aggregation - combined five licensed Kazakh speech corpora: ISSAI KazakhTTS2, ISSAI KSC2 (six domains: crowdsourced, radio, parliament, podcasts, talkshow, and TV news), Google FLEURS, and Mozilla Common Voice.
- Audio quality filtering - SNR and clipping-based filtering applied across all real-speech sources.
- Deduplication - exact and near-duplicate transcripts capped to prevent overrepresentation of repeated phrases.
- Automated ASR verification - every audio-text pair in the corpus was independently transcribed using GigaAM-Multilingual and compared against its reference transcript; pairs with high word error rate were excluded from training.
- Text normalization and punctuation restoration - transcripts for the broadcast/crowdsourced portion of the corpus were upgraded from unpunctuated text to properly capitalized, punctuated text, improving the model's prosody and pacing.
- Synthetic voice-control data - 18,000 samples spanning 30 controllable voice categories (2 genders x 5 age styles x 3 pitch levels), generated using the base model's voice-design interface.
- Expressive speech data - a curated dataset of natural Kazakh speech containing contextual non-verbal reactions (laughter, sighs, dissatisfaction) was incorporated to teach the model to produce these reactions appropriately within continuous speech.
Training Data Breakdown
Training Configuration
- Base model: k2-fsa/OmniVoice
- Method: full fine-tuning (all parameters updated)
- Steps: 20,000
- Learning rate: 3e-5, cosine schedule
- Precision: bf16
Evaluation
Evaluated on a 50-sentence Kazakh test set spanning everyday speech, technical terminology, numbers, place names, and questions, using an independent ASR system for objective scoring.
Voice-design control (gender, age, pitch) and expressive speech reactions were verified through direct listening evaluation.
Controllable Voice Attributes
Supported via the instruct parameter:
- Gender: male, female
- Age style: child, teenager, young adult, middle-aged, elderly
- Pitch style: low pitch, moderate pitch, high pitch
Expressive Speech
Til-TTS can produce contextual non-verbal reactions inline within generated speech, using bracketed tags in the input text:
[laughter], [sigh], [confirmation-en], [question-en], [surprise-ah], [surprise-oh], [dissatisfaction-hnn], and related tags.
Usage
pip install omnivoice soundfile torchfrom omnivoice import OmniVoice
import soundfile as sf
import torch
model = OmniVoice.from_pretrained(
"MukhammedTogmanov/Til-TTS",
device_map="cuda:0",
dtype=torch.float16,
)
audio = model.generate(
text="Бүгін біз жаңа қазақша дауыс моделін тексеріп жатырмыз.",
language="Kazakh",
)
sf.write("output.wav", audio[0], 24000)
audio = model.generate(
text="Бұл қазақша мәтінді дыбыстау мысалы.",
language="Kazakh",
instruct="female, teenager, high pitch",
)
sf.write("voice_design.wav", audio[0], 24000)
audio = model.generate(
text="Керемет, [laughter] біз келісімге келдік ақыры.",
language="Kazakh",
)
sf.write("expressive.wav", audio[0], 24000)Limitations
- Very short utterances (one to two words) may synthesize with reduced reliability.
- Whole-utterance discrete emotion control (e.g., a single "happy" or "sad" mode) is not supported; expressiveness is achieved through contextual inline reactions rather than a global emotion parameter.
- As with any model trained on broadcast and crowdsourced audio alongside studio recordings, output acoustic character may vary somewhat depending on the style of the input text.
Audio Examples
Female teenager
Text: Мен қазақша дауыс моделін тексеріп жатырмын.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/female_teenager.wav"></audio>
Female middle-aged
Text: Отбасыммен бірге демалыс күндерін өткіземіз.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/femalemiddleaged.wav"></audio>
Male teenager
Text: Бүгін достарыммен кездесуге барамын.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/male_teenager.wav"></audio>
Male child (high pitch)
Text: Мен ойыншықтармен ойнағанды жақсы көремін.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/malechildhigh.wav"></audio>
Male elderly (low pitch)
Text: Өмірде көп нәрсені көрдім, көп тәжірибе жинадым.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/maleelderlylow.wav"></audio>
Male, high pitch
Text: Бұл қазақша мәтінді дыбыстау мысалы.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/malehighpitch.wav"></audio>
Male, low pitch
Text: Бұл қазақша мәтінді дыбыстау мысалы.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/malelowpitch.wav"></audio>
Expressive - Laughter
Text: Керемет, біз келісімге келдік ақыры.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/laughter_example.wav"></audio>
Expressive - Sigh
Text: Ет жүрегім езілді қан жылады
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/sigh_example.wav"></audio>
Expressive - Surprise
Text: Апырау, мұны күтпеген едім!
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/surprise_example.wav"></audio>
Expressive - Question tone
Text: Сіз бұл туралы не ойлайсыз?
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/question_example.wav"></audio>
Expressive - Confirmation
Text: Иә, түсінікті, солай жасаймыз.
<audio controls src="https://huggingface.co/MukhammedTogmanov/Til-TTS/resolve/main/examples/confirmation_example.wav"></audio>
Contact
it.technologier@gmail.com
