Instructions to use Shubhangi7/pocket-tts-checkpoints with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Pocket-TTS
How to use Shubhangi7/pocket-tts-checkpoints with Pocket-TTS:
from pocket_tts import TTSModel import scipy.io.wavfile tts_model = TTSModel.load_model("Shubhangi7/pocket-tts-checkpoints") voice_state = tts_model.get_state_for_audio_prompt( "hf://kyutai/tts-voices/alba-mackenna/casual.wav" ) audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.") # Audio is a 1D torch tensor containing PCM data. scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy()) - Notebooks
- Google Colab
- Kaggle
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.yamlfrom 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'sdepth_distill.yamlrecipe withepoch-10as 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_24lrelease; their terms apply.
- Downloads last month
- -