You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Pocket TTS: English + Hindi + Hinglish checkpoints

One Pocket TTS model that speaks English, Hindi (Devanagari) and Hinglish (Devanagari with English words in Latin script), finetuned from Kyutai's english_2026-04_24l 24-layer model.

Folders

Folder Training step Contents
epoch-5 … epoch-15 epoch × 10,569 model.safetensors (inference weights: EMA FlowLM + Mimi, float32, ~1.3 GB) and config.yaml
epoch-10-distilled epoch 10, distilled 200,000 steps 6-layer model distilled from epoch-10 (guidance baked in): model.safetensors (~0.44 GB, EMA) and config.yaml. ~3.5× faster than the 24-layer models on CPU
final 250,000 (~23.7 epochs, end of training) the full training checkpoint as-is: checkpoint_00250000.pt (weights + EMA), optim_00250000.pt (optimizer state, to resume training), model.safetensors, args.yaml (training config), config.yaml
tokenizer.json – SentencePiece unigram tokenizer (4,000 pieces) shared by all folders

Usage

pip install pocket-tts
pocket-tts generate --config hf://Shubhangi7/pocket-tts-checkpoints/epoch-10/config.yaml \
    --voice your_voice.wav --text "आपका order ship हो गया है, आप इसे app में track कर सकते हैं।"
from pocket_tts import TTSModel

model = TTSModel.load_model(config="hf://Shubhangi7/pocket-tts-checkpoints/epoch-10/config.yaml")
voice = model.get_state_for_audio_prompt("your_voice.wav")  # 5–10 s of clean speech
audio = model.generate_audio(voice, "Rahul loves cricket और वो हर Sunday match देखता है।")

Streaming works as in Pocket TTS (model.generate_audio_stream(...)). Released pocket-tts splits long text only at ., ! and ?, and appends a . after a final "।"; treating "।" and "॥" as sentence ends needs the small text_chunking.py change from the training repo.

Training

  • Data: ~1,429 h: English ~698 h (16 kHz, conversational Indian English), Hindi ~697 h (16 kHz), Hinglish ~36 h (44.1 kHz). Transcripts used verbatim; word timings from the MMS forced aligner (MahmoudAshraf/mms-300m-1130-forced-aligner) with uroman romanisation.
  • Recipe: training/configs/finetune_language.yaml from the Pocket TTS repo: start from the English 24-layer teacher, fresh text embedding for the new tokenizer, LSD flow objective, lr 2e-4 constant, batch 64, 250k steps, EMA 0.999. One AMD MI300X, ~18 h.
  • Model size: 316M FlowLM parameters (24 layers, d_model 1024) + 20M Mimi codec.
  • epoch-10-distilled: the repo's depth_distill.yaml recipe with epoch-10 as the frozen teacher: a 6-layer student (89M FlowLM parameters) seeded from teacher layers 0, 1, 2, 21, 22, 23, regressing the teacher's CFG-2.0 backbone output on the same data; lr 4e-4 cosine, batch 64, 200k steps, EMA 0.9999.

Notes

  • Apart from epoch-10-distilled, these are 24-layer models, heavier than the released 6-layer Pocket TTS: on a 24-core CPU, ~4 concurrent real-time streams without buffering. The distilled model runs ~4.7× real time on one CPU thread (24-layer: ~1.3×).
  • Much of the English and Hindi audio is 16 kHz, so output tends to follow the bandwidth of the voice prompt; a clean, full-band prompt gives the best quality.
  • The Mimi codec weights come from Kyutai's english_2026-04_24l release; their terms apply.
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support