Kokoro Core ML components
Twelve downloadable Core ML packages: FP32 and FP16 duration heads, plus conditioning and generator pairs for 115, 127, 142, 153, and 190 frames.
Model identity and compatibility
- Upstream model: hexgrad/Kokoro-82M. The study checkpoint is pinned to
f3ff3571791e39611d31c381e3a41a3af07b4987. - Derivation: Core ML conversion of selected duration and decoder components, with precision and graph-layout alternatives.
- Language scope: English is the retained study scope; this release does not establish multilingual compatibility.
- Interface: The duration heads take predictor states with shape [1,128,512]. Each conditioning/generator pair has one fixed alignment: 115, 127, 142, 153, or 190 frames; the generator returns magnitude and phase arrays. Host-side alignment, pitch/noise construction and waveform reconstruction remain outside these packages.
- Validation scope: Duration comparisons cover 24 selected requests. The historical saved-feature waveform composition covers one fixed input with separate hardware replay. The live E3 study covers five development requests, one voice, and five shapes: four meet the frozen Mac CPU criteria and ordinary_006 fails the log-magnitude MAE limit. This is not a general text-to-audio quality evaluation.
- Data role: Conversion and replay use retained upstream-model inputs and outputs; no new speech-model pretraining is claimed.
The base-model link records component lineage. Conversion, graph adjustment and fitting are described separately above. Core ML input/output dtypes do not by themselves specify internal compute precision.
The documented Python Core ML loading path requires a compatible macOS Core ML runtime. Recorded Core ML Tools versions: 9.0. Exact specification versions, conversion dates, source-framework versions and I/O dtypes are preserved in coreml_specs.json; current cross-version runtime compatibility has not been retested.
release_metadata.json preserves this scope as machine-readable data. The private evidence dataset is linked for experiment records and is not labeled as a training dataset.
File and tensor details
This release uses Core ML packages. It contains no Safetensors weights, so the Hub's automatic Safetensors panel does not apply.
Hugging Face's Safetensors metadata parser reads tensor headers from Safetensors files; README metadata alone cannot supply that panel.
| Format | Packages or files | Stored size |
|---|---|---|
| Core ML package | 12 | 509.79 MiB |
Browse the per-file details, or inspect tensor names, shapes and storage dtypes. These sizes include separate alternatives; they are not a combined model parameter count.
| Package | Stored size | Input β output dtypes | Specification |
|---|---|---|---|
| models/conditioning-115frames.mlpackage | 64.15 MiB | FLOAT32 β FLOAT32 | parseable |
| models/conditioning-127frames.mlpackage | 64.15 MiB | FLOAT32 β FLOAT32 | parseable |
| models/conditioning-142frames.mlpackage | 64.15 MiB | FLOAT32 β FLOAT32 | parseable |
| models/conditioning-153frames.mlpackage | 64.15 MiB | FLOAT32 β FLOAT32 | parseable |
| models/conditioning-190frames.mlpackage | 64.15 MiB | FLOAT32 β FLOAT32 | parseable |
| models/duration-fp16.mlpackage | 54,382 B | FLOAT32 β FLOAT32 | parseable |
| models/duration-fp32.mlpackage | 105,017 B | FLOAT32 β FLOAT32 | parseable |
| models/generator-115frames.mlpackage | 37.78 MiB | FLOAT32 β FLOAT32 | parseable |
| models/generator-127frames.mlpackage | 37.78 MiB | FLOAT32 β FLOAT32 | parseable |
| models/generator-142frames.mlpackage | 37.78 MiB | FLOAT32 β FLOAT32 | parseable |
| models/generator-153frames.mlpackage | 37.78 MiB | FLOAT32 β FLOAT32 | parseable |
| models/generator-190frames.mlpackage | 37.78 MiB | FLOAT32 β FLOAT32 | parseable |
Core ML input/output dtypes describe the interface, not internal compute or weight precision.
Model files
| Model / configuration | Files | Role |
|---|---|---|
| duration-fp32 | models/duration-fp32.mlpackage | Retained CPU FP32 duration head |
| duration-fp16 | models/duration-fp16.mlpackage | FP16 duration comparison |
| conditioning-115frames | models/conditioning-115frames.mlpackage | Conditioning suffix, fixed 115 frames |
| generator-115frames | models/generator-115frames.mlpackage | Converted 4-D generator, fixed 115 frames |
| conditioning-127frames | models/conditioning-127frames.mlpackage | E3 static 127-frame conditioning |
| generator-127frames | models/generator-127frames.mlpackage | E3 static 127-frame generator |
| conditioning-142frames | models/conditioning-142frames.mlpackage | E3 static 142-frame conditioning |
| generator-142frames | models/generator-142frames.mlpackage | E3 static 142-frame generator |
| conditioning-153frames | models/conditioning-153frames.mlpackage | E3 static 153-frame conditioning |
| generator-153frames | models/generator-153frames.mlpackage | E3 static 153-frame generator |
| conditioning-190frames | models/conditioning-190frames.mlpackage | E3 static 190-frame conditioning |
| generator-190frames | models/generator-190frames.mlpackage | E3 static 190-frame generator |
Download and load
from huggingface_hub import snapshot_download
from pathlib import Path
import coremltools as ct
root = Path(snapshot_download("robbiemu/paper2-kokoro-coreml-components"))
package = root / "models/duration-fp32.mlpackage"
spec = ct.utils.load_spec(str(package))
print(spec.description.input)
model = ct.models.MLModel(str(package), compute_units=ct.ComputeUnit.CPU_ONLY)
# Supply the named arrays and shapes listed in coreml_specs.json:
# output = model.predict(inputs)
The example selects CPU execution explicitly. Use the studyβs declared compute policy when reproducing a comparison. coreml_specs.json lists exact input/output names, shapes and conversion metadata. manifest.json records file sizes, SHA-256 hashes and provenance paths. python restore.py --verify checks all model files.
Scope and result
The retained composition uses the CPU FP32 duration policy and preserves source pitch, noise and harmonic construction around the converted suffix. The historical saved-feature waveform acceptance covers one fixed input with separate hardware replay. The later live study retains a numerical failure on one of five requests. These components require the host orchestration and remaining upstream Kokoro operations; they are not a complete text-to-audio checkpoint.
These model files were published from retained study artifacts. Their integrity and Core ML interfaces were checked; publication does not constitute a new inference or deployment validation. Experimental evidence, diagnostic probes, transfer intermediates and optimization history are held in separate private repositories.
Provenance and license
Upstream notices/model cards are retained under licenses/; the applicable model license is in LICENSE. The private evidence dataset records historical source revisions, execution policies and results.
Study evidence
The additional conditioning/generator pairs cover 127, 142, 153 and 190 frames. Package interfaces, sizes and hashes are listed in the model metadata above. The study report and study records are retained in the private evidence dataset. The complete E3 archive also contains the source-equivalence records, captured arrays, code and runtime receipts. Access to these records requires dataset permission. Public model files do not provide anonymous access to the complete scientific evidence.
This repository follows the other component releases: model packages, interfaces, manifests, licenses and model-card documentation. The study's scientific records are maintained in the evidence dataset. No model bytes or scientific results changed.
- Downloads last month
- 169