CoolFace
Modelpublic

MukhammedTogmanov/Til-TTS

sourceHugging Faceapache-2.0updated 11d agoView on Hugging Face
1likes73downloads
Model Card

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:

  1. 1.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.
  2. 2.Audio quality filtering - SNR and clipping-based filtering applied across all real-speech sources.
  3. 3.Deduplication - exact and near-duplicate transcripts capped to prevent overrepresentation of repeated phrases.
  4. 4.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.
  5. 5.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.
  6. 6.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.
  7. 7.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

SourceSamples
ISSAI KSC2 - crowdsourced264,114
ISSAI KSC2 - TV news77,346
ISSAI KazakhTTS269,885
ISSAI KSC2 - talk shows30,922
ISSAI KSC2 - podcasts28,891
ISSAI KSC2 - parliament22,232
Synthetic voice-control data18,000
ISSAI KSC2 - radio17,330
Expressive speech data14,421
FLEURS1,863
Common Voice1,484

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.

MetricValue
WER0.0703
CER0.0474
UTMOS (naturalness, 1-5 scale)3.02

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

bash
pip install omnivoice soundfile torch
python
from 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