Orpheus-3B Tajik TTS (Saidzoda Lab)
How to get access: please fill in the short form at saidzoda.com/access. We approve requests after we receive the form.
Full fine-tune of canopylabs/orpheus-3b-0.1-pretrained
(Apache-2.0) for Tajik speech synthesis, using SNAC-tokenised Tajik speech (speaker 8,
premium diarized bank). This is the run-8 (tg-e8) checkpoint, the best of a chained
epoch-by-epoch fine-tune sweep (e1→e8, each epoch resuming from the previous epoch's
final checkpoint).
Result
- Round-trip WER: 15.91% (CER 6.99%), measured by synthesizing 20 held-out Tajik utterances and transcribing them back with a Tajik-fine-tuned Whisper-large-v3 ASR model, beam=1, lowercase/strip-punctuation normalization (ё→е fold).
- This is the "spk8 epoch-8" champion referenced in
ALL_TEST_RESULTS.md §7— the best round-trip WER across the Orpheus Tajik bake-off sweep.
Training
- Method: full fine-tune (not LoRA), 1 epoch per stage, chained across 8 stages
(
tg-e1…tg-e8), batch_size=1, lr=5e-5, pad_token=128263. - Data:
Tohirju/orpheus-tg-tokenised(SNAC-tokenised Tajik speech, speaker 8, faithful notebook port of the premium diarized bank). - Base repo/commit:
canopyai/Orpheus-TTS@e64661fe6d02c414fc77c53578c9d64082614861. - Hardware: 1x H100 (Nvidia Brev).
How to use
This checkpoint is a standard Orpheus/Llama-architecture causal-LM checkpoint that emits SNAC audio codes, not raw waveform. To synthesize audio you need:
- This model (text + reference-speaker prompt → SNAC token sequence).
- The SNAC codec to decode those tokens to a 24kHz waveform:
hubertsiuzdak/snac_24khz(MIT license). - The Orpheus-TTS inference code (or an equivalent SNAC-detokenizing wrapper) to drive generation and decode.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Tohirju/orpheus-tajik-tts")
tokenizer = AutoTokenizer.from_pretrained("Tohirju/orpheus-tajik-tts")
# then follow the Orpheus-TTS repo's inference path (prompt formatting + SNAC decode)
Files
config.json,generation_config.json— model configmodel.safetensors— fp32 weights (~13.2 GB)tokenizer.json,tokenizer_config.json,special_tokens_map.json— tokenizer
Training-only artifacts (optimizer.pt, scheduler.pt, rng_state.pth,
training_args.bin) are intentionally not included — they are not needed to serve
the model and add ~26 GB of dead weight.
License
Apache-2.0 (inherited from the Orpheus-3B base model).
Caveats
- Round-trip WER is measured on 20 utterances synthesized from the training text pool (may overlap train) — a small, indicative eval, not a held-out generalization test.
spk8refers to the single reference speaker (speaker id 8 in the premium diarized bank) used for the SNAC-tokenised training data / eval prompts, not to a training epoch.
This repo is public but gated (manual approval), per Saidzoda Lab policy.