devendradhakad commited on
Commit
1dd6a82
·
verified ·
1 Parent(s): 92e782d

Mirror AutoDroid pins from coreai-community/Kokoro-82M-CoreAI@412414ca12d7

Browse files
AUTODROID_MIRROR.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # AutoDroid artifact mirror
2
+
3
+ This repository preserves selected, unmodified files from `coreai-community/Kokoro-82M-CoreAI` at commit `412414ca12d72aa68d3cef0fee70147e87c32f28`.
4
+
5
+ Original authorship, licenses, and notices remain applicable. This is an independent availability mirror and does not imply upstream endorsement.
6
+
7
+ See `AUTODROID_SOURCE.json` for original paths, byte sizes, and SHA-256 digests. Only files required by AutoDroid and upstream documentation are included; this is not a complete training or Transformers checkpoint.
AUTODROID_SOURCE.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "sourceRepository": "coreai-community/Kokoro-82M-CoreAI",
3
+ "sourceRevision": "412414ca12d72aa68d3cef0fee70147e87c32f28",
4
+ "purpose": "Unmodified pinned artifacts used by AutoDroid",
5
+ "licenseReview": {
6
+ "sourceRevision": "412414ca12d72aa68d3cef0fee70147e87c32f28",
7
+ "declaredLicense": "apache-2.0",
8
+ "evidence": "https://huggingface.co/coreai-community/Kokoro-82M-CoreAI/blob/412414ca12d72aa68d3cef0fee70147e87c32f28/README.md",
9
+ "status": "approved",
10
+ "reason": "Pinned upstream card permits redistribution. Preserve upstream cards and notices, original authorship, and the applicable license texts; artifact bytes are unmodified.",
11
+ "additionalFiles": [
12
+ {
13
+ "localPath": "tools/hf_mirror/licenses/Apache-2.0.txt",
14
+ "pathInRepo": "licenses/Apache-2.0.txt",
15
+ "source": "https://www.apache.org/licenses/LICENSE-2.0.txt",
16
+ "sha256": "c98068a3b6a564e4c70ab7c2ee2c980725987908909e99915759efa28ac7b533"
17
+ }
18
+ ]
19
+ },
20
+ "artifacts": [
21
+ {
22
+ "repo": "coreai-community/Kokoro-82M-CoreAI",
23
+ "revision": "412414ca12d72aa68d3cef0fee70147e87c32f28",
24
+ "filename": "kokoro_host_glue/l_linear.bin",
25
+ "sizeBytes": 40,
26
+ "sha256": "4d0be6c9712b1627889fdf7bdcd342d61c1f8a4b6c3ee356709ef3748f33d425",
27
+ "source": "app/src/main/java/com/example/autodroid/data/voice/model/VoiceModelCatalog.kt:375"
28
+ },
29
+ {
30
+ "repo": "coreai-community/Kokoro-82M-CoreAI",
31
+ "revision": "412414ca12d72aa68d3cef0fee70147e87c32f28",
32
+ "filename": "kokoro_host_glue/voices/af_heart.bin",
33
+ "sizeBytes": 522240,
34
+ "sha256": "d583ccff3cdca2f7fae535cb998ac07e9fcb90f09737b9a41fa2734ec44a8f0b",
35
+ "source": "app/src/main/java/com/example/autodroid/data/voice/model/VoiceModelCatalog.kt:383"
36
+ }
37
+ ],
38
+ "preservedDocuments": [
39
+ "README.md"
40
+ ]
41
+ }
README.md ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ <!-- gen-cards:use-it begin id=kokoro-82m (managed by scripts/gen-cards — edit cards.json / QuickStart.swift, not this block) -->
32
+ ## Use it
33
+
34
+ ▶️ **Run it (source)** — the [Speak runner](https://github.com/john-rocky/coreai-kit/tree/main/Examples/Speak)
35
+ (GUI + CLI, one app for every text-to-speech model in the catalog):
36
+
37
+ ```bash
38
+ git clone https://github.com/john-rocky/coreai-kit
39
+ open coreai-kit/Examples/Speak/Speak.xcodeproj
40
+ # → Run, then pick "Kokoro 82M" in the model picker
41
+
42
+ # agents / headless (macOS):
43
+ cd coreai-kit/Examples/Speak
44
+ swift run speak-cli --model kokoro-82m --text "Hello from Core AI." --output hello.wav
45
+ ```
46
+
47
+ 💻 **Build with it** — complete; the glue is kit API, copy-paste runs:
48
+
49
+ ```swift
50
+ import CoreAIKit
51
+
52
+ let speaker = try await KitSpeaker(catalog: "kokoro-82m")
53
+ let audio = try await speaker.synthesize(text)
54
+ // audio.samples: 24 kHz mono PCM in [-1, 1] — play it or write a WAV
55
+ ```
56
+
57
+ The take-home is [`Examples/Speak/Sources/QuickStart.swift`](https://github.com/john-rocky/coreai-kit/blob/main/Examples/Speak/Sources/QuickStart.swift)
58
+ — this exact code as one typed function, no UI; the CLI is an argument shell over it, and
59
+ the GUI drives the same `KitSpeaker(catalog:)` and plays the samples.
60
+ English-first: G2P is a dictionary over the bundled misaki lexicons (~180k words);
61
+ out-of-dictionary words are letter-spelled (no neural fallback). 28 voices ride the
62
+ download — `af_heart` is the default; the underlying `KokoroTTS` takes a `voice:`
63
+ label. Streaming? `synthesizeStreaming(_:onChunk:)` hands you a chunk per sentence.
64
+
65
+ **Integration checklist**
66
+
67
+ - SPM: `https://github.com/john-rocky/coreai-kit` → product **CoreAIKit**
68
+ - Info.plist: none needed
69
+ - Entitlements: none needed
70
+ - First run downloads the model — 0.3 GB (Mac) — then it loads from the
71
+ local cache (Application Support; progress via the `downloadProgress` callback)
72
+ - Measure in Release — Debug is ~3× slower on per-token host work
73
+ <!-- gen-cards:use-it end -->
74
+
75
+ ## Bundles
76
+
77
+ The acoustic graph has one data-dependent length (the duration→alignment expansion),
78
+ so it is cut into **three voice-independent `.aimodel` bundles** with two cheap host
79
+ steps between them:
80
+
81
+ | file | in → out |
82
+ |---|---|
83
+ | `kokoro_predictor.aimodel` | `input_ids[1,128]` i32, `ref_s[1,256]`, `attn_mask[1,128]` → `duration`, `d`, `t_en` |
84
+ | `kokoro_prosody.aimodel` | `d`, `t_en`, `aln[1,128,512]`, `ref_s`, `frame_mask[1,512]` → `asr`, `F0`, `N` |
85
+ | `kokoro_vocoder.aimodel` | `asr`, `F0`, `N`, `har`, `ref_s`, `frame_mask` → `audio[1, L·600]` |
86
+
87
+ `voices/*.pt` — the **28 English voice packs** (Apache-2.0). The voice is the `ref_s`
88
+ input: `ref_s = pack[len(ids)−1]`. Quality leaders: `af_heart`, `af_bella`,
89
+ `af_nicole`, `bf_emma`.
90
+
91
+ Token length **T** and frame length **L** are fixed **buckets** (128 / 512); the host
92
+ left-pads to the bucket and trims the output. Longer text is split into sentences
93
+ host-side. Run on the Core AI **CPU** compute unit. ~0.75 s / utterance on M4 Max,
94
+ ~335 MB total (fp32).
95
+
96
+ ## Host steps
97
+
98
+ ```
99
+ text ──(misaki G2P)──▶ ids ──▶ predictor ──▶ [build alignment] ──▶ prosody
100
+ ──▶ [har = STFT(SineGen(f0_upsamp(F0)))] ──▶ vocoder ──▶ [trim] ──▶ 24 kHz audio
101
+ ```
102
+
103
+ G2P is [misaki](https://github.com/hexgrad/misaki) (`misaki[en]`, no espeak for
104
+ English); on-device [MisakiSwift](https://github.com/mlalma/MisakiSwift) gives the same
105
+ English phonemes. `har` (the hn-nsf source's STFT) is a windowed FFT computed on the
106
+ host — the one piece that must stay off the engine (its `atan2` phase flips 2π at the
107
+ F0→0 pad boundary under fp32).
108
+
109
+ ## Quality
110
+
111
+ The hn-nsf source phase is arbitrary (stock Kokoro randomizes it), so the gate is
112
+ spectral: **magnitude-spectrogram correlation 0.999** vs the PyTorch reference
113
+ (`af_heart`, multiple sentences). Raw waveform correlation ~0.98 — the bounded,
114
+ inaudible effect of the bucket pad boundary.
115
+
116
+ ## Convert / re-bucket
117
+
118
+ [`conversion/export_kokoro.py`](https://github.com/john-rocky/coreai-model-zoo/blob/main/conversion/export_kokoro.py)
119
+ (`python export_kokoro.py --out-dir out`; `--verify` runs the engine-vs-torch spectral
120
+ gate; `--token-bucket` / `--frame-bucket` to re-size). Card + the full port write-up:
121
+ [`zoo/kokoro-82m.md`](https://github.com/john-rocky/coreai-model-zoo/blob/main/zoo/kokoro-82m.md).
122
+
123
+ ## License
124
+
125
+ Apache-2.0 (model weights and the 28 English voices). The Core AI export code derives
126
+ from Apple's BSD-3-Clause `coreai_models`.
kokoro_host_glue/l_linear.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d0be6c9712b1627889fdf7bdcd342d61c1f8a4b6c3ee356709ef3748f33d425
3
+ size 40
kokoro_host_glue/voices/af_heart.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d583ccff3cdca2f7fae535cb998ac07e9fcb90f09737b9a41fa2734ec44a8f0b
3
+ size 522240
licenses/Apache-2.0.txt ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and
10
+ distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by the
13
+ copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all other
16
+ entities that control, are controlled by, or are under common control with
17
+ that entity. For the purposes of this definition, "control" means (i) the
18
+ power, direct or indirect, to cause the direction or management of such
19
+ entity, whether by contract or otherwise, or (ii) ownership of fifty percent
20
+ (50%) or more of the outstanding shares, or (iii) beneficial ownership of
21
+ such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity exercising
24
+ permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation source, and
28
+ configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical transformation
31
+ or translation of a Source form, including but not limited to compiled object
32
+ code, generated documentation, and conversions to other media types.
33
+
34
+ "Work" shall mean the work of authorship, whether in Source or Object form,
35
+ made available under the License, as indicated by a copyright notice that is
36
+ included in or attached to the work.
37
+
38
+ "Derivative Works" shall mean any work, whether in Source or Object form,
39
+ that is based on (or derived from) the Work and for which the editorial
40
+ revisions, annotations, elaborations, or other modifications represent, as a
41
+ whole, an original work of authorship. Derivative Works shall not include
42
+ works that remain separable from, or merely link (or bind by name) to the
43
+ interfaces of, the Work and Derivative Works thereof.
44
+
45
+ "Contribution" shall mean any work of authorship, including the original
46
+ version of the Work and any modifications or additions to that Work or
47
+ Derivative Works thereof, that is intentionally submitted to Licensor for
48
+ inclusion in the Work by the copyright owner or by an individual or Legal
49
+ Entity authorized to submit on behalf of the copyright owner. "Submitted"
50
+ means any form of electronic, verbal, or written communication sent to the
51
+ Licensor or its representatives, excluding communication conspicuously marked
52
+ or otherwise designated in writing by the copyright owner as "Not a
53
+ Contribution."
54
+
55
+ "Contributor" shall mean Licensor and any individual or Legal Entity on
56
+ behalf of whom a Contribution has been received by Licensor and subsequently
57
+ incorporated within the Work.
58
+
59
+ 2. Grant of Copyright License. Subject to the terms and conditions of this
60
+ License, each Contributor hereby grants to You a perpetual, worldwide,
61
+ non-exclusive, no-charge, royalty-free, irrevocable copyright license to
62
+ reproduce, prepare Derivative Works of, publicly display, publicly perform,
63
+ sublicense, and distribute the Work and such Derivative Works in Source or
64
+ Object form.
65
+
66
+ 3. Grant of Patent License. Subject to the terms and conditions of this
67
+ License, each Contributor hereby grants to You a perpetual, worldwide,
68
+ non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this
69
+ section) patent license to make, have made, use, offer to sell, sell, import,
70
+ and otherwise transfer the Work, where such license applies only to those
71
+ patent claims licensable by such Contributor that are necessarily infringed
72
+ by their Contribution(s) alone or by combination of their Contribution(s)
73
+ with the Work to which such Contribution(s) was submitted. If You institute
74
+ patent litigation against any entity alleging that the Work or a Contribution
75
+ incorporated within the Work constitutes direct or contributory patent
76
+ infringement, then any patent licenses granted to You under this License for
77
+ that Work shall terminate as of the date such litigation is filed.
78
+
79
+ 4. Redistribution. You may reproduce and distribute copies of the Work or
80
+ Derivative Works thereof in any medium, with or without modifications, and in
81
+ Source or Object form, provided that You meet the following conditions:
82
+
83
+ (a) You must give any other recipients of the Work or Derivative Works a copy
84
+ of this License; and
85
+
86
+ (b) You must cause any modified files to carry prominent notices stating that
87
+ You changed the files; and
88
+
89
+ (c) You must retain, in the Source form of any Derivative Works that You
90
+ distribute, all copyright, patent, trademark, and attribution notices from the
91
+ Source form of the Work, excluding those notices that do not pertain to any
92
+ part of the Derivative Works; and
93
+
94
+ (d) If the Work includes a "NOTICE" text file as part of its distribution,
95
+ then any Derivative Works that You distribute must include a readable copy of
96
+ the attribution notices contained within such NOTICE file, excluding those
97
+ notices that do not pertain to any part of the Derivative Works, in at least
98
+ one of the following places: within a NOTICE text file distributed as part of
99
+ the Derivative Works; within the Source form or documentation, if provided;
100
+ or, within a display generated by the Derivative Works, if and wherever such
101
+ third-party notices normally appear. The contents of the NOTICE file are for
102
+ informational purposes only and do not modify the License.
103
+
104
+ You may add Your own copyright statement to Your modifications and may
105
+ provide additional or different license terms and conditions for use,
106
+ reproduction, or distribution of Your modifications, provided that Your use,
107
+ reproduction, and distribution of the Work otherwise complies with the
108
+ conditions stated in this License.
109
+
110
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any
111
+ Contribution intentionally submitted for inclusion in the Work by You to the
112
+ Licensor shall be under the terms and conditions of this License, without any
113
+ additional terms or conditions.
114
+
115
+ 6. Trademarks. This License does not grant permission to use the trade names,
116
+ trademarks, service marks, or product names of the Licensor, except as
117
+ required for reasonable and customary use in describing the origin of the
118
+ Work and reproducing the content of the NOTICE file.
119
+
120
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
121
+ writing, Licensor provides the Work (and each Contributor provides its
122
+ Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
123
+ KIND, either express or implied, including, without limitation, any warranties
124
+ or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
125
+ PARTICULAR PURPOSE. You are solely responsible for determining the
126
+ appropriateness of using or redistributing the Work and assume any risks
127
+ associated with Your exercise of permissions under this License.
128
+
129
+ 8. Limitation of Liability. In no event and under no legal theory, whether in
130
+ tort (including negligence), contract, or otherwise, unless required by
131
+ applicable law (such as deliberate and grossly negligent acts) or agreed to in
132
+ writing, shall any Contributor be liable to You for damages, including any
133
+ direct, indirect, special, incidental, or consequential damages arising as a
134
+ result of this License or out of the use or inability to use the Work, even if
135
+ such Contributor has been advised of the possibility of such damages.
136
+
137
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work
138
+ or Derivative Works thereof, You may choose to offer, and charge a fee for,
139
+ acceptance of support, warranty, indemnity, or other liability obligations
140
+ and/or rights consistent with this License. However, in accepting such
141
+ obligations, You may act only on Your own behalf and on Your sole
142
+ responsibility, not on behalf of any other Contributor, and only if You agree
143
+ to indemnify, defend, and hold each Contributor harmless for any liability
144
+ incurred by, or claims asserted against, such Contributor by reason of your
145
+ accepting any such warranty or additional liability.
146
+
147
+ END OF TERMS AND CONDITIONS
148
+
149
+ APPENDIX: How to apply the Apache License to your work.
150
+
151
+ To apply the Apache License to your work, attach the following boilerplate
152
+ notice, with the fields enclosed by brackets "[]" replaced with your own
153
+ identifying information. (Don't include the brackets!) The text should be
154
+ enclosed in the appropriate comment syntax for the file format. We also
155
+ recommend that a file or class name and description of purpose be included on
156
+ the same "printed page" as the copyright notice for easier identification
157
+ within third-party archives.
158
+
159
+ Copyright [yyyy] [name of copyright owner]
160
+
161
+ Licensed under the Apache License, Version 2.0 (the "License");
162
+ you may not use this file except in compliance with the License.
163
+ You may obtain a copy of the License at
164
+
165
+ http://www.apache.org/licenses/LICENSE-2.0
166
+
167
+ Unless required by applicable law or agreed to in writing, software
168
+ distributed under the License is distributed on an "AS IS" BASIS,
169
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
170
+ See the License for the specific language governing permissions and
171
+ limitations under the License.