← Back to list

Training Your Own Uyghur Voice

From raw recordings to a fully offline neural speaker

Waris Ruzi · 2026-01-21 07:17 · 0 claps · 3.2 min read
#uyghur #uighurs #uyghur-voice #waris-ruzi #ai
Open on Medium ↗
Wiki topics: AI · AI · General GEN · Genomics & Sequencing

uyghurTraining Your Own Uyghur Voice

From raw recordings to a fully offline neural speaker

Why Train a Uyghur Voice?

Using an existing voice is convenient. Training your own Uyghur voice is transformative.

It allows you to:

  • Preserve a specific accent or dialect
  • Create male, female, or child voices
  • Avoid legal uncertainty
  • Control pronunciation quality
  • Build culturally authentic products

For minority languages, voice training is not just technical work. It is digital archiving.

What We Are Training

We will train a VITS-style neural TTS model that can later be:

  • Exported to ONNX
  • Run by Piper
  • Deployed fully offline

The training pipeline looks like this:

Voice Recordings
      ↓
Text Normalization
      ↓
Phonemization
      ↓
VITS Training
      ↓
ONNX Export
      ↓
Piper Runtime

Dataset Requirements

Minimum Viable Dataset

ItemRecommendationSpeaker1Audio30–60 minutesSample rate22,050 HzFormatWAV (mono)TextClean Uyghur Arabic script

More data equals smoother speech, but 1 hour is enough to start.

Recording Setup (Simple but Clean)

Hardware

  • USB condenser microphone
  • Pop filter
  • Quiet room
  • No reverb

Software

  • Audacity
  • GarageBand
  • Reaper

Recording Rules

  • One sentence per file
  • Natural pace
  • No emotion acting
  • Consistent distance from mic

File Structure

Organize your dataset clearly:

dataset/
 ├─ wavs/
 │   ├─ 0001.wav
 │   ├─ 0002.wav
 │   └─ ...
 └─ metadata.csv

metadata.csv format:

0001|ياخشىمۇسىز؟|yakshimusiz?
0002|بۇ بىر سىناق.|bu bir sinaq

Keep text normalized and consistent.

Uyghur Text Normalization

Uyghur script has multiple punctuation and spelling variants.

Example normalization rules:

def normalize(text):
    text = text.replace("؟", "?")
    text = text.replace("،", ",")
    text = text.strip()
    return text

This step is critical for stable training.

Phonemization Strategy

Uyghur pronunciation is largely phonetic, which is a huge advantage.

You have two options:

Option A: Character-Based (Fast)

  • Feed Arabic script directly
  • Faster setup
  • Slight pronunciation variance

Option B: Phoneme-Based (Best Quality)

  • Convert to IPA or custom phonemes
  • More control
  • Better clarity

For long-term quality, phonemes win.

Training the VITS Model

Most Uyghur voice projects use VITS-based trainers compatible with Piper.

Popular frameworks:

  • Coqui TTS (legacy)
  • Piper training scripts
  • Custom VITS forks

Basic training command example:

python train.py \
  --dataset dataset \
  --language uy \
  --epochs 2000 \
  --batch_size 32

Training usually takes:

  • 1–2 days on GPU
  • 5–7 days on CPU (not recommended)

Monitoring Training

Watch for:

  • Loss steadily decreasing
  • No sudden spikes
  • Early intelligibility at ~20 percent

Listen to generated samples frequently.

If pronunciation drifts, fix the text, not the model.

Exporting to ONNX

Once training stabilizes:

python export_onnx.py \
  --checkpoint best.pth \
  --output uyghur.onnx

Test immediately with Piper:

echo "ياخشىمۇسىز" | piper \
  --model uyghur.onnx \
  --output_file test.wav

Hearing your own trained voice for the first time is unforgettable 🎧

Voice Quality Improvements

Common Fixes

IssueSolutionRobotic toneMore dataMispronunciationFix textBreathy soundBetter micSlow speechAdjust duration scaling

Voice training is iterative, not linear.

Ethical Considerations

  • Record with consent
  • Do not clone voices secretly
  • Label synthetic speech clearly
  • Respect cultural ownership

A Uyghur voice is not just audio. It carries identity.

What You Can Build With Custom Voices

  • Children’s story narrators
  • Dialect-specific learning apps
  • Historical voice reconstruction
  • Assistive tools for elders
  • Offline screen readers

Each voice is a library.

Final Thoughts

Training your own Uyghur voice is no longer experimental. It is practical, reproducible, and deployable today.

Once exported to ONNX and run by Piper, your voice becomes:

  • Portable
  • Offline
  • Private
  • Future-proof

In Part 3, we can cover:

  • Multi-speaker Uyghur TTS
  • Emotion and style tokens
  • Voice switching in apps
  • Kids vs adult voices

The Uyghur language deserves to speak.


메타데이터
post_id
29e982fc78f5
slug
training-your-own-uyghur-voice-29e982fc78f5
url
https://medium.com/@warisruzi/training-your-own-uyghur-voice-29e982fc78f5
canonical_url
https://medium.com/@warisruzi/training-your-own-uyghur-voice-29e982fc78f5
author_url
https://medium.com/@warisruzi
status
ok
fetched_at
2026-07-15 08:53:23