mlboydaisuke commited on
Commit
e02c92e
·
verified ·
1 Parent(s): 19545bd

Mirror of mlboydaisuke/Kokoro-82M-CoreAI

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ kokoro_predictor.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
37
+ kokoro_prosody.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
38
+ kokoro_vocoder.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: coreai
6
+ pipeline_tag: text-to-speech
7
+ tags:
8
+ - text-to-speech
9
+ - tts
10
+ - core-ai
11
+ - coreml
12
+ - on-device
13
+ - styletts2
14
+ - kokoro
15
+ base_model: hexgrad/Kokoro-82M
16
+ ---
17
+
18
+ > **Mirror** of [`mlboydaisuke/Kokoro-82M-CoreAI`](https://huggingface.co/mlboydaisuke/Kokoro-82M-CoreAI) — the canonical repo ([CoreAI Model Zoo](https://github.com/john-rocky/coreai-model-zoo)). Updates land there first.
19
+
20
+
21
+ # Kokoro-82M — Core AI
22
+
23
+ [`hexgrad/Kokoro-82M`](https://huggingface.co/hexgrad/Kokoro-82M) (Apache-2.0), a tiny
24
+ high-quality **StyleTTS2 + iSTFTNet** text-to-speech model (82M params, 24 kHz),
25
+ converted to Apple **Core AI** (`.aimodel`, iOS 27 / macOS 27) — the
26
+ [CoreAI-Model-Zoo](https://github.com/john-rocky/coreai-model-zoo)'s first TTS.
27
+
28
+ Non-autoregressive: phonemes + a voice/style vector → a waveform in one pass.
29
+ Runs fully on-device, English-first, with grapheme→phoneme on the host.
30
+
31
+ ## Bundles
32
+
33
+ The acoustic graph has one data-dependent length (the duration→alignment expansion),
34
+ so it is cut into **three voice-independent `.aimodel` bundles** with two cheap host
35
+ steps between them:
36
+
37
+ | file | in → out |
38
+ |---|---|
39
+ | `kokoro_predictor.aimodel` | `input_ids[1,128]` i32, `ref_s[1,256]`, `attn_mask[1,128]` → `duration`, `d`, `t_en` |
40
+ | `kokoro_prosody.aimodel` | `d`, `t_en`, `aln[1,128,512]`, `ref_s`, `frame_mask[1,512]` → `asr`, `F0`, `N` |
41
+ | `kokoro_vocoder.aimodel` | `asr`, `F0`, `N`, `har`, `ref_s`, `frame_mask` → `audio[1, L·600]` |
42
+
43
+ `voices/*.pt` — the **28 English voice packs** (Apache-2.0). The voice is the `ref_s`
44
+ input: `ref_s = pack[len(ids)−1]`. Quality leaders: `af_heart`, `af_bella`,
45
+ `af_nicole`, `bf_emma`.
46
+
47
+ Token length **T** and frame length **L** are fixed **buckets** (128 / 512); the host
48
+ left-pads to the bucket and trims the output. Longer text is split into sentences
49
+ host-side. Run on the Core AI **CPU** compute unit. ~0.75 s / utterance on M4 Max,
50
+ ~335 MB total (fp32).
51
+
52
+ ## Host steps
53
+
54
+ ```
55
+ text ──(misaki G2P)──▶ ids ──▶ predictor ──▶ [build alignment] ──▶ prosody
56
+ ──▶ [har = STFT(SineGen(f0_upsamp(F0)))] ──▶ vocoder ──▶ [trim] ──▶ 24 kHz audio
57
+ ```
58
+
59
+ G2P is [misaki](https://github.com/hexgrad/misaki) (`misaki[en]`, no espeak for
60
+ English); on-device [MisakiSwift](https://github.com/mlalma/MisakiSwift) gives the same
61
+ English phonemes. `har` (the hn-nsf source's STFT) is a windowed FFT computed on the
62
+ host — the one piece that must stay off the engine (its `atan2` phase flips 2π at the
63
+ F0→0 pad boundary under fp32).
64
+
65
+ ## Quality
66
+
67
+ The hn-nsf source phase is arbitrary (stock Kokoro randomizes it), so the gate is
68
+ spectral: **magnitude-spectrogram correlation 0.999** vs the PyTorch reference
69
+ (`af_heart`, multiple sentences). Raw waveform correlation ~0.98 — the bounded,
70
+ inaudible effect of the bucket pad boundary.
71
+
72
+ ## Convert / re-bucket
73
+
74
+ [`conversion/export_kokoro.py`](https://github.com/john-rocky/coreai-model-zoo/blob/main/conversion/export_kokoro.py)
75
+ (`python export_kokoro.py --out-dir out`; `--verify` runs the engine-vs-torch spectral
76
+ gate; `--token-bucket` / `--frame-bucket` to re-size). Card + the full port write-up:
77
+ [`zoo/kokoro-82m.md`](https://github.com/john-rocky/coreai-model-zoo/blob/main/zoo/kokoro-82m.md).
78
+
79
+ ## License
80
+
81
+ Apache-2.0 (model weights and the 28 English voices). The Core AI export code derives
82
+ from Apple's BSD-3-Clause `coreai_models`.
kokoro_predictor.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ ��3�U��|e��1B�j�V�<��cju�6�
kokoro_predictor.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a1ec8433cc125519cc051bc17c65adfb3142b36add56fa3c85ab636a759f36fc
3
+ size 83283367
kokoro_predictor.aimodel/metadata.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "description" : "Kokoro-82M TTS (StyleTTS2 + iSTFTNet). https:\/\/huggingface.co\/hexgrad\/Kokoro-82M",
3
+ "assetVersion" : "2.0",
4
+ "author" : "hexgrad (Kokoro-82M); Core AI export: coreai-model-zoo",
5
+ "license" : "Apache-2.0"
6
+ }
kokoro_prosody.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ ��f�;����~���m{lA�LjH%�|}Lc#��V�
kokoro_prosody.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82d466933bd4fe87cc7e80f8a56d7b6c41adc7884825ed7c7d4c6323cdc756f0
3
+ size 38183716
kokoro_prosody.aimodel/metadata.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "description" : "Kokoro-82M TTS (StyleTTS2 + iSTFTNet). https:\/\/huggingface.co\/hexgrad\/Kokoro-82M",
3
+ "assetVersion" : "2.0",
4
+ "author" : "hexgrad (Kokoro-82M); Core AI export: coreai-model-zoo",
5
+ "license" : "Apache-2.0"
6
+ }
kokoro_vocoder.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ ��Bq+���v�^�K�D��[m�j�Z�h�
kokoro_vocoder.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a92154211712b93efdf7608b25e1cf14b9c4483e85b6d7fd76ac0185aff68c8
3
+ size 213885093
kokoro_vocoder.aimodel/metadata.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "description" : "Kokoro-82M TTS (StyleTTS2 + iSTFTNet). https:\/\/huggingface.co\/hexgrad\/Kokoro-82M",
3
+ "assetVersion" : "2.0",
4
+ "author" : "hexgrad (Kokoro-82M); Core AI export: coreai-model-zoo",
5
+ "license" : "Apache-2.0"
6
+ }
voices/af_alloy.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d877149dd8b348fbad12e5845b7e43d975390e9f3b68a811d1d86168bef5aa3
3
+ size 523425
voices/af_aoede.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c03bd1a4c3716c2d8eaa3d50022f62d5c31cfbd6e15933a00b17fefe13841cc4
3
+ size 523425
voices/af_bella.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8cb64e02fcc8de0327a8e13817e49c76c945ecf0052ceac97d3081480e8e48d6
3
+ size 523425
voices/af_heart.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ab5709b8ffab19bfd849cd11d98f75b60af7733253ad0d67b12382a102cb4ff
3
+ size 523425
voices/af_jessica.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cdfdccb8cc975aa34ee6b89642963b0064237675de0e41a30ae64cc958dd4e87
3
+ size 523435
voices/af_kore.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8bfbc512321c3db49dff984ac675fa5ac7eaed5a96cc31104d3a9080e179d69d
3
+ size 523420
voices/af_nicole.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c5561808bcf5250fe8c5f5de32caf2d94f27e57e95befdb098c5c85991d4c5da
3
+ size 523430
voices/af_nova.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0233676ddc21908c37a1f102f6b88a59e4e5c1bd764983616eb9eda629dbcd2
3
+ size 523420
voices/af_river.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e149459bd9c084416b74756b9bd3418256a8b839088abb07d463730c369dab8f
3
+ size 523425
voices/af_sarah.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49bd364ea3be9eb3e9685e8f9a15448c4883112a7c0ff7ab139fa4088b08cef9
3
+ size 523425
voices/af_sky.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c799548aed06e0cb0d655a85a01b48e7f10484d71663f9a3045a5b9362e8512c
3
+ size 523351
voices/am_adam.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ced7e284aba12472891be1da3ab34db84cc05cc02b5889535796dbf2d8b0cb34
3
+ size 523420
voices/am_echo.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8bcfdc852bc985fb45c396c561e571ffb9183930071f962f1b50df5c97b161e8
3
+ size 523420
voices/am_eric.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ada66f0eefff34ec921b1d7474d7ac8bec00cd863c170f1c534916e9b8212aae
3
+ size 523420
voices/am_fenrir.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98e507eca1db08230ae3b6232d59c10aec9630022d19accac4f5d12fcec3c37a
3
+ size 523430
voices/am_liam.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c82550757ddb31308b97f30040dda8c2d609a9e2de6135848d0a948368138518
3
+ size 523420
voices/am_michael.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a443b79a4b22489a5b0ab7c651a0bcd1a30bef675c28333f06971abbd47bd37
3
+ size 523435
voices/am_onyx.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8452be16cd0f6da7b4579eaf7b1e4506e92524882053d86d72b96b9a7fed584
3
+ size 523420
voices/am_puck.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd1d8973f4ce4b7d8ae407c77a435f485dabc052081b80ea75c4f30b84f36223
3
+ size 523420
voices/am_santa.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f2f7582fa2b1f160e90aafe6d0b442a685e773608b6667e545d743b073e97a7
3
+ size 523425
voices/bf_alice.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d292651b6af6c0d81705c2580dcb4463fccc0ff7b8d618a471dbb4e45655b3f3
3
+ size 523425
voices/bf_emma.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d0a423deabf4a52b4f49318c51742c54e21bb89bbbe9a12141e7758ddb5da701
3
+ size 523420
voices/bf_isabella.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cdd4c37003805104d1d08fb1e05855c8fb2c68de24ca6e71f264a30aaa59eefd
3
+ size 523440
voices/bf_lily.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e09c2e481e2d53004d7e5ae7d3a325369e130a6f45c35a6002de75084be9285
3
+ size 523420
voices/bm_daniel.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fc3fce4e9c12ed4dbc8fa9680cfe51ee190a96444ce7c3ad647549a30823fc5d
3
+ size 523430
voices/bm_fable.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d44935f3135257a9064df99f007fc1342ff1aa767552b4a4fa4c3b2e6e59079c
3
+ size 523425
voices/bm_george.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1bc812213dc59774769e5c80004b13eeb79bd78130b11b2d7f934542dab811b
3
+ size 523430
voices/bm_lewis.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b5204750dcba01029d2ac9cec17aec3b20a6d64073c579d694a23cb40effbd0e
3
+ size 523425