ViiTorVoice-NAR β†’ Qualcomm Hexagon NPU (SM8750)

QNN context binaries (.bin) for running the ViiTorVoice-NAR text-to-speech / voice-cloning chain entirely on a Snapdragon 8 Elite (SM8750) Hexagon NPU: w2v-BERT semantic encoder β†’ dualcodec encode-core β†’ 32-step masked-diffusion NAR β†’ dualcodec decoder.

Compiled with QAIRT 2.50 / qai-hub (onnx β†’ dlc β†’ qairt-dlc-prepare β†’ .bin), tested on Android 16 with a com.viitorvoice.demo app that loads these through QnnContext_createFromBinary.

Files

group files notes
semantic frontend enc_fe.bin (1.50 GB), fe_mel.bin w2v-BERT, fp16 single context, chunked 32Γ—6k frames at inference
encode-core enc_e1..e3, enc_front, enc_e4b, enc_e5, enc_e6 (104 MB total) 7 linked segments; enc_front runs 32Γ— per encode
NAR backbone llm.bin (894 MB), head.bin (57 MB) Qwen3-0.6B, multi-shape shared weight link (weights stored once)
embeddings text_emb.bin, sem_emb.bin, aco_emb.bin (165 MB) text embedding table + 12 codebook embeddings, gathered on CPU
decoder dec_p1..p5.bin (138 MB) 5-graph chain; p1 must stay fp16, p2–p4 w8a16, p5 uses chunk=48
config nar_steps NAR diffusion steps, 32

Hub: https://huggingface.co/mistmlm/viitorvoice-nar-sm8750 (private) β€” push_hf.sh syncs this dir.

See MANIFEST.md for sizes + sha256, install.sh to copy the set into an Android app's private dir (/data/data/<pkg>/files/models) with correct owner/SELinux label.

Precision policy

  • No fp32 anywhere in a compiled graph β€” QNN rejects it.
  • Weights w8a16 (int8 weight / int16 activation) except the two places where it degrades quality audibly: the w2v frontend and decoder segment 1, both fp16.
  • Post-training quantization is done offline (QDQ export + folding weight-side Q with numpy), not via compile-time PTQ β€” the latter trips a PostLayout::addTensor bug on these graphs.

Usage

Everything runs offline on device; no HF access needed at runtime:

./install.sh com.viitorvoice.demo      # copies into the app's private dir (needs root)

The app calls QnnContext_createFromBinary once per file and chains them with its own vv_encode / vv_nar / vv_pipeline C++ code.

Provenance

  • Source models: ViiTorVoice (Apache-2.0), Qwen3-0.6B backbone (Apache-2.0), dualcodec.
  • Pipeline scripts: ~/projects/viitorvoice/pipeline (qai-hub submit + link + download).
  • Derived artifacts only; upstream weights are not redistributed here beyond what the QNN contexts embed.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for mistmlm/viitorvoice-nar-sm8750

Finetuned
Qwen/Qwen3-0.6B
Finetuned
(1,485)
this model