DhVaani-0.5 β MNN (Android / on-device)
DhVaani-0.5 ka INT8 ONNX version source repo Bbkblo/DhVaani-0.5-ONNX se MNN (.mnn) format mein convert kiya gaya. Target runtime: Android / on-device (MNN).
Files
| File | Role | Size |
|---|---|---|
text_encoder_int8.mnn |
text β text_condition | 6.3 MB |
fm_decoder_int8.mnn |
flow-matching decoder (t, x, cond) β v | 126.8 MB |
vocoder_backbone.mnn |
mels β hidden (vocoder backbone) | 52.1 MB |
mel_fb.npz |
mel filterbank | 0.2 MB |
vocos_head.npz |
vocos head weights | 2.1 MB |
tokens.txt |
vocabulary | ~8 KB |
model.json |
config | ~0.7 KB |
Conversion
Converted with MNNConvert (built from MNN master), from ONNX opset 18 / IR v8:
MNNConvert -f ONNX --modelFile X.onnx --MNNModel out/X.mnn --bizCode X
Full log: convert.log. Helper script: convert_dhvani.sh (requires MNNConvert binary).
Inputs / Outputs (printed by converter)
- text_encoder_int8.mnn β inputs:
tokens, prompt_tokens, prompt_features_len, speedβ output:text_condition - fm_decoder_int8.mnn β inputs:
t, x, text_condition, speech_condition, guidance_scaleβ output:v - vocoder_backbone.mnn β input:
melsβ output:hidden
Note: converter printed "The model has subgraphs, please use MNN::Express::Module to run it" β so at runtime use MNN Express (
MNN::Express::Module) for these graphs.
Android usage (short)
- Add
libMNN.so(arm64-v8a) toapp/libs/jniLibs. - Load each
.mnnfile as an Express module and wire the pipeline: text encoder β flow-matching decoder β vocoder backbone (+mel_fb.npz+vocos_head.npz). - Run the whole TTS graph to produce waveform.
π± Complete Android Setup Guide
π ANDROID_SETUP.md (repo mein) β full guide:
- Gradle/Maven mein MNN lib add karna
.mnn+ assetsapp/src/main/assetsmein daalnaMNNNetInstanceKotlin code (load models, run text_encoder, fm_decoder loop, vocoder)- Speed-up tips (numThread, FP16/Precision_Low, num_step audio, session reuse, warmup, etc.)
(Ye app to app integration ke liye ready hai.)