Instructions to use soniqo/Indic-Mio-LiteRT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT
How to use soniqo/Indic-Mio-LiteRT with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Indic-Mio-LiteRT
LiteRT (.tflite) graph bundle of SPRINGLab/Indic-Mio
(Qwen3-0.6B speech-token LM, Apache-2.0) with its
Aratako/MioCodec-25Hz-24kHz
codec (MIT), for CPU inference on Windows/Linux x86_64 through
speech-core. Emotion is controlled with
end-of-utterance suffix tags; voice cloning conditions on a 128-dim global
speaker embedding extracted from reference audio.
LiteRT cannot express the autoregressive loop, so the bundle ships static graphs and the host owns the loop.
Graphs
| File | Inputs | Outputs |
|---|---|---|
indicmio-text-prefill.tflite (fp16) |
ids[1,64] i64 (right-pad with 151643), last_index scalar i64 |
logits[1,164480] f32, k/v[28,1,8,512,128] f32 |
indicmio-token-step.tflite (fp16) |
id[1,1], pos[1,1], write_index scalar, k/v in |
logits[1,164480], k/v out |
indicmio-audio-decoder.tflite (fp32) |
codes[1,384] i64 (zero-pad), global[1,128] f32, valid_tokens scalar i64 |
STFT real[1,961,768], imag[1,961,768] f32 |
indicmio-ref-encoder.tflite (fp32) |
audio24k[1,240000] f32 (10 s bucket) |
global[1,128] f32 |
config.json carries the manifest (token offsets, stop ids, prompt template,
bucket sizes); fidelity.json the parity results; the HF tokenizer files are
included for host-side tokenization.
Host contract
- Prompt:
<|im_start|>user\n{text}<|im_end|>\n<|im_start|>assistant\n, right-padded to 64 tokens with151643; pass the real last position aslast_index. Emotion tags go at the end of the sentence:<happy> <sad> <angry> <disgust> <fear> <surprise>. - AR loop: sample from
logits(upstream reference: temperature 0.9, top-p 0.9; suppress EOS until the first speech token), feed the sampled id back throughtoken-stepwithpos = write_index = current length. Stop on151645or151643. Speech codes areid - 151669(12800 codes, 25 Hz, 960 samples/token at 24 kHz). - Decode: zero-pad the codes to 384, set
valid_tokensto the real count (the graph masks attention and normalization statistics so padding cannot contaminate the result), then reconstruct audio from the spectrum frames: complex spec =real + i·imag, inverse rFFT per frame (n_fft 1920), Hann window, overlap-add at hop 480, divide by the (constant, precomputable) window envelope, trim(win-hop)/2at both ends and keepvalid_tokens*960samples, guarding the final ~8 hops of the tail. - Cloning: crop/pad the reference to 10 s at 24 kHz and run the ref
encoder (prefer cropping — zero-padding slightly dilutes the embedding);
pass the result as
global. Without a reference, pass zeros.
Parity (vs the upstream PyTorch stack)
| Check | Result |
|---|---|
| Prefill logits corr | ~1.000000 |
| Token-step logits corr (non-zero write index) | ~1.000000 |
| Decoder PCM corr vs exact-length upstream decode | 0.998 |
| Reference-encoder cosine | 0.999 |
| Hindi ASR roundtrip (keyword recovery, 4 cases) | pass; emotion tags styled, never spoken |
Licensing
The language model derives from SPRINGLab/Indic-Mio (Apache-2.0); the codec weights derive from Aratako/MioCodec-25Hz-24kHz (MIT) and its WavLM-base+ speaker path. This bundle preserves upstream weights (fp16/fp32) with no fine-tuning.
Links
- Speech Studio - local speech generation and voice cloning app
- speech-core - C++ runtime
- Docs - install and CLI docs
- soniqo.audio - website
- Downloads last month
- 51