Kokoro-82M text-to-speech (ONNX, 55 voices)

models.skillsafe.ai/[email protected]/

Vetted New WebGPU

Text to speech model for onnxruntime-web (q8). Runs on WebGPU or WASM — 115 MB downloaded once from models.skillsafe.ai, then cached for every SkillSafe app that uses it. Inference happens on your device; nothing you enter is uploaded to load it, and it never costs a credit. Weights from Hugging Face · skillsafe-ai/kokoro-82m, pinned at b4bcae29bf0c — also loadable straight from Hugging Face outside SkillSafe (how).

Share

Details

Catalogue id[email protected]
Runtimeonnxruntime-web ≥ 1.17.0
DeviceWebGPU, WASM
Variantq8
Download115 MB · 56 files
LicenceApache-2.0 · notice
Pinned atb4bcae29bf0cf97162719a4b9154bbc159d427eb
ApprovedSep 22, 2026
Statusactive — every file is a live vetted hash

Files

Each file is served at an immutable URL; the canonical form is the SHA-256 itself. Tokenizer and config JSON are not here by design — they ship in your app bundle.

PathFormatSizeSHA-256
onnx/model_quantized.onnx onnx 88.1 MB fbae9257e1e0…8a1478
voices/af.bin bin 512 KB a4f11d9d055a…f9e41a
voices/af_alloy.bin bin 510 KB c4a6b876047f…308c45
voices/af_aoede.bin bin 510 KB 4a004c334307…8d8361
voices/af_bella.bin bin 510 KB f69d836209b7…f55c8b
voices/af_heart.bin bin 510 KB d583ccff3cdc…4a8f0b
voices/af_jessica.bin bin 510 KB a240a5e3c15b…f23bd8
voices/af_kore.bin bin 510 KB 9be5221b6a94…91819e
voices/af_nicole.bin bin 510 KB cd2191ab31b9…64f59a
voices/af_nova.bin bin 510 KB 18778272caa0…28414f
voices/af_river.bin bin 510 KB 00a2bcf82b1d…3c9c30
voices/af_sarah.bin bin 510 KB 4409fbc125af…7a2f0a
voices/af_sky.bin bin 510 KB 4435255c9744…14f0b9
voices/am_adam.bin bin 510 KB 162b035ed91c…b15716
voices/am_echo.bin bin 510 KB 3968b92c3c4c…8cf3c3
voices/am_eric.bin bin 510 KB e8b5be17edd1…7e2832
voices/am_fenrir.bin bin 510 KB c27989f741f7…16df43
voices/am_liam.bin bin 510 KB 52403be32fd0…921ade
voices/am_michael.bin bin 510 KB 1d1f21dd8da3…b95ba1
voices/am_onyx.bin bin 510 KB da5d135b4241…6145e6
voices/am_puck.bin bin 510 KB fcf73c989033…2274a0
voices/am_santa.bin bin 510 KB 61150cf726ab…19227a
voices/bf_alice.bin bin 510 KB 08afa6ba24da…da5573
voices/bf_emma.bin bin 510 KB 669fe0647f9d…a63b73
voices/bf_isabella.bin bin 510 KB 3754352c4aaa…c4e94f
voices/bf_lily.bin bin 510 KB 5e0ee32ebe64…fea335
voices/bm_daniel.bin bin 510 KB 6b3194bbceff…95a1e8
voices/bm_fable.bin bin 510 KB f88908319680…d798f1
voices/bm_george.bin bin 510 KB c4b235a4c1f2…d6c9bc
voices/bm_lewis.bin bin 510 KB b8f671cef828…cedb97
voices/ef_dora.bin bin 510 KB f66ec66bd295…c9a532
voices/em_alex.bin bin 510 KB 27809e9eafdc…b83e95
voices/em_santa.bin bin 510 KB ad43b774e1ca…543683
voices/ff_siwis.bin bin 510 KB a35f5675ad08…c54861
voices/hf_alpha.bin bin 510 KB 040be6a44254…2ffb56
voices/hf_beta.bin bin 510 KB cd83ae0bb9b2…917cc7
voices/hm_omega.bin bin 510 KB b02d9222d9ed…f34137
voices/hm_psi.bin bin 510 KB 644daf88ba8a…e03f37
voices/if_sara.bin bin 510 KB 409b69248798…71265c
voices/im_nicola.bin bin 510 KB bc578e510d52…6e1ab0
voices/jf_alpha.bin bin 510 KB 56b479360aad…978bb6
voices/jf_gongitsune.bin bin 510 KB 0f1181f3772d…2af396
voices/jf_nezumi.bin bin 510 KB 13cb71eebb0b…93026b
voices/jf_tebukuro.bin bin 510 KB 29c6c0561b42…ea6696
voices/jm_kumo.bin bin 510 KB 09e959d23972…e9e64f
voices/pf_dora.bin bin 510 KB 3da7b5b2d918…cfe9ee
voices/pm_alex.bin bin 510 KB 0175c753f59c…cbeb2a
voices/pm_santa.bin bin 510 KB 8b012db31857…82eede
voices/zf_xiaobei.bin bin 510 KB 5dde6e1c9c4f…66e640
voices/zf_xiaoni.bin bin 510 KB 08892b62a39a…7d9cba
voices/zf_xiaoxiao.bin bin 510 KB 03adb5d5e3dd…be1169
voices/zf_xiaoyi.bin bin 510 KB bc1555c5c486…bc36b3
voices/zm_yunjian.bin bin 510 KB de48a00bdbf3…3ad6fa
voices/zm_yunxi.bin bin 510 KB 7243892fb4e5…e27c8b
voices/zm_yunxia.bin bin 510 KB 6b2b8fc15b3d…f8936d
voices/zm_yunyang.bin bin 510 KB 261e2c894705…ba3f42

Signature

Graph inputs and outputs read from the ONNX bytes at vetting — the tensor names your session.run() call feeds and reads. Symbolic dimensions are shown by name.

Inputs

  • input_ids int64 [1, sequence_length]
  • style float32 [1, 256]
  • speed float32 [1]

Outputs

  • waveform float32 [1, num_samples]
Use it in an app declaration · SDK loader · onnxruntime-web · URLs · Hugging Face — generated from this entry

Add to the body of POST /v1/apps/{slug}/releases (or a release session). An unknown or withdrawn model is refused with a 400 naming it; the app page then shows "downloads 115 MB · runs on your device" and /models.txt carries the attribution.

{
  "models": [
    {
      "id": "kokoro-82m-q8",
      "revision": "v1.0-1939ad2a"
    }
  ]
}

Evaluation

onnx.checker + onnxruntime CPU smoke run with zero-filled inputs at the declared shapes; per-file SHA-256 pinned to the source — imported as published upstream, then checked. Evaluated Sep 22, 2026.

Runs under onnxruntime

Zero-filled inputs at the declared shapes, CPU execution provider on the converter host; the check is that the graph loads, runs, and emits the declared output shapes.

  • onnx/model_fp16.onnx: input_ids[1,16], style[1,256], speed[1] → waveform[1,16800] 103 ms
  • onnx/model_quantized.onnx: input_ids[1,16], style[1,256], speed[1] → waveform[1,17400] 275.9 ms

Toolchain: python 3.12.13 · platform Darwin 25.6.0 arm64 · torch 2.10.0 · onnx 1.23.0 · onnxruntime 1.30.0. Recipe models/recipes/kokoro-82m.yaml (aa9bf0249c2c). Full manifest.json

Licence & attribution

Apache-2.0 · licence text · notice

Kokoro-82M: hexgrad, Apache License 2.0 (https://huggingface.co/hexgrad/Kokoro-82M); ONNX export and voice packs published by onnx-community (https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX).

Apps that declare this model get this text in their generated /models.txt, so a licence that requires a notice always carries one.

Every file here was approved by exact SHA-256 after a structural audit of the graph, fetched from a content-pinned source, and is served credential-free at an immutable URL. The SDK re-verifies the hash on your device before it caches or returns anything. Missing a variant? Request it — or read how the registry works.