| { |
| "$schema": "schema/kokoro-catalog.schema.json", |
| "schemaVersion": 2, |
| "catalogVersion": "2.1.1", |
| "distribution": { |
| "provider": "huggingface", |
| "repository": "Shusek00/kokoro-kmp-models", |
| "artifactResolution": "relative-to-catalog", |
| "recommendedRevision": "v2.1.1", |
| "downloadStrategy": "selected-voice-only" |
| }, |
| "license": "Apache-2.0", |
| "modelFamily": "kokoro-82m", |
| "provenance": { |
| "$artifact": { |
| "path": "sources/upstream-assets.json", |
| "mediaType": "application/json" |
| } |
| }, |
| "audio": { |
| "sampleRateHz": 24000, |
| "channels": 1, |
| "sampleType": "float32" |
| }, |
| "runtime": { |
| "engine": "onnxruntime", |
| "opset": 17, |
| "batchSize": 1, |
| "maxPhonemeCodePoints": 510, |
| "durationToSamplesFactor": 600, |
| "inputs": [ |
| { "name": "input_ids", "type": "int64", "shape": [1, "sequence_length"] }, |
| { "name": "style", "type": "float32", "shape": [1, 256] }, |
| { "name": "speed", "type": "float32", "shape": [1] } |
| ], |
| "outputs": [ |
| { "name": "waveform", "type": "float32", "shape": ["num_samples"] }, |
| { "name": "duration", "type": "int64", "shape": ["sequence_length"] } |
| ], |
| "tokenEncoding": { |
| "bosTokenId": 0, |
| "eosTokenId": 0, |
| "vocabularyField": "vocab" |
| }, |
| "voiceStyle": { |
| "format": "raw-float32-le", |
| "shape": [510, 256], |
| "rowSelection": "phoneme_code_point_count_minus_one" |
| } |
| }, |
| "tokenizers": [ |
| { |
| "id": "kokoro-v1.0", |
| "artifact": { |
| "$artifact": { |
| "path": "runtime/kokoro-v1.0-config.json", |
| "mediaType": "application/json" |
| } |
| } |
| }, |
| { |
| "id": "kokoro-v1.1-zh", |
| "artifact": { |
| "$artifact": { |
| "path": "runtime/kokoro-v1.1-zh-config.json", |
| "mediaType": "application/json" |
| } |
| } |
| } |
| ], |
| "models": [ |
| { |
| "id": "kokoro-v1.0-fp32", |
| "format": "onnx", |
| "precision": "fp32", |
| "tokenizerId": "kokoro-v1.0", |
| "source": { |
| "repository": "hexgrad/Kokoro-82M", |
| "revision": "f3ff3571791e39611d31c381e3a41a3af07b4987", |
| "checkpoint": "kokoro-v1_0.pth", |
| "license": "Apache-2.0" |
| }, |
| "artifact": { |
| "$artifact": { |
| "path": "models/standard/kokoro-v1.0-fp32.onnx", |
| "mediaType": "application/onnx" |
| } |
| }, |
| "validation": { |
| "$artifact": { |
| "path": "models/standard/kokoro-v1.0-fp32.validation.json", |
| "mediaType": "application/json" |
| } |
| } |
| }, |
| { |
| "id": "kokoro-v1.1-zh-fp32", |
| "format": "onnx", |
| "precision": "fp32", |
| "tokenizerId": "kokoro-v1.1-zh", |
| "source": { |
| "repository": "hexgrad/Kokoro-82M-v1.1-zh", |
| "revision": "01e7505bd6a7a2ac4975463114c3a7650a9f7218", |
| "checkpoint": "kokoro-v1_1-zh.pth", |
| "license": "Apache-2.0" |
| }, |
| "artifact": { |
| "$artifact": { |
| "path": "models/zh/kokoro-v1.1-zh-fp32.onnx", |
| "mediaType": "application/onnx" |
| } |
| }, |
| "validation": { |
| "$artifact": { |
| "path": "models/zh/kokoro-v1.1-zh-fp32.validation.json", |
| "mediaType": "application/json" |
| } |
| } |
| }, |
| { |
| "id": "kokoro-pl-fp32", |
| "format": "onnx", |
| "precision": "fp32", |
| "tokenizerId": "kokoro-v1.0", |
| "source": { |
| "repository": "software-mansion/react-native-executorch-kokoro", |
| "revision": "3744b57964eab7df6e8c48f0b84badb29e14df07", |
| "checkpoint": "finetunes/kokoro_polish_converted.pth", |
| "license": "Apache-2.0" |
| }, |
| "artifact": { |
| "$artifact": { |
| "path": "models/pl/kokoro-pl-fp32.onnx", |
| "mediaType": "application/onnx" |
| } |
| }, |
| "validation": { |
| "$artifact": { |
| "path": "models/pl/kokoro-pl-fp32.validation.json", |
| "mediaType": "application/json" |
| } |
| } |
| }, |
| { |
| "id": "kokoro-de-fp32", |
| "format": "onnx", |
| "precision": "fp32", |
| "tokenizerId": "kokoro-v1.0", |
| "source": { |
| "repository": "software-mansion/react-native-executorch-kokoro", |
| "revision": "3744b57964eab7df6e8c48f0b84badb29e14df07", |
| "checkpoint": "finetunes/kokoro_german_converted.pth", |
| "license": "Apache-2.0" |
| }, |
| "artifact": { |
| "$artifact": { |
| "path": "models/de/kokoro-de-fp32.onnx", |
| "mediaType": "application/onnx" |
| } |
| }, |
| "validation": { |
| "$artifact": { |
| "path": "models/de/kokoro-de-fp32.validation.json", |
| "mediaType": "application/json" |
| } |
| } |
| } |
| ], |
| "languages": [ |
| { |
| "id": "en-us", |
| "locale": "en-US", |
| "displayName": "English (United States)", |
| "nativeName": "English (United States)", |
| "defaultVoiceId": "af_heart", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "en-us", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/en-us/phonemizer_en_us.onnx", "mediaType": "application/onnx" } } |
| }, |
| { |
| "role": "lexicon", |
| "artifact": { "$artifact": { "path": "phonemizers/en-us/lexicon_full.json", "mediaType": "application/json" } } |
| }, |
| { |
| "role": "tagger", |
| "artifact": { "$artifact": { "path": "phonemizers/en-us/tagger.json", "mediaType": "application/json" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "en-gb", |
| "locale": "en-GB", |
| "displayName": "English (United Kingdom)", |
| "nativeName": "English (United Kingdom)", |
| "defaultVoiceId": "bf_emma", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "en-gb", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/en-gb/phonemizer_en_gb.onnx", "mediaType": "application/onnx" } } |
| }, |
| { |
| "role": "lexicon", |
| "artifact": { "$artifact": { "path": "phonemizers/en-gb/lexicon_full.json", "mediaType": "application/json" } } |
| }, |
| { |
| "role": "tagger", |
| "artifact": { "$artifact": { "path": "phonemizers/en-gb/tagger.json", "mediaType": "application/json" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "es", |
| "locale": "es-ES", |
| "displayName": "Spanish", |
| "nativeName": "español", |
| "defaultVoiceId": "ef_dora", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "es", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/es/phonemizer_es.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "fr", |
| "locale": "fr-FR", |
| "displayName": "French", |
| "nativeName": "français", |
| "defaultVoiceId": "ff_siwis", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "fr", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/fr/phonemizer_fr.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "hi", |
| "locale": "hi-IN", |
| "displayName": "Hindi", |
| "nativeName": "हिन्दी", |
| "defaultVoiceId": "hf_alpha", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "hi", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/hi/phonemizer_hi.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "it", |
| "locale": "it-IT", |
| "displayName": "Italian", |
| "nativeName": "italiano", |
| "defaultVoiceId": "if_sara", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "it", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/it/phonemizer_it.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "ja", |
| "locale": "ja-JP", |
| "displayName": "Japanese", |
| "nativeName": "日本語", |
| "defaultVoiceId": "jf_alpha", |
| "textFrontend": { |
| "status": "external-required", |
| "recommendedEngine": "misaki[ja]", |
| "language": "ja", |
| "phonemeInputSupported": true, |
| "note": "The model and voices are bundled; a portable Japanese text frontend is not yet bundled for Kotlin Multiplatform." |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "pt-br", |
| "locale": "pt-BR", |
| "displayName": "Portuguese (Brazil)", |
| "nativeName": "português (Brasil)", |
| "defaultVoiceId": "pf_dora", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "pt", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/pt-br/phonemizer_pt.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "zh", |
| "locale": "zh-CN", |
| "displayName": "Mandarin Chinese", |
| "nativeName": "普通话", |
| "defaultVoiceId": "zf_001", |
| "textFrontend": { |
| "status": "external-required", |
| "recommendedEngine": "misaki[zh]", |
| "language": "zh", |
| "phonemeInputSupported": true, |
| "note": "Both Kokoro model variants and all Mandarin voices are bundled; a portable Mandarin text frontend is not yet bundled for Kotlin Multiplatform." |
| }, |
| "$includeUpstreamVoices": true, |
| "voices": [] |
| }, |
| { |
| "id": "pl", |
| "locale": "pl-PL", |
| "displayName": "Polish", |
| "nativeName": "polski", |
| "defaultVoiceId": "pm_mateusz", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "pl", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/pl/phonemizer_pl.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "voices": [ |
| { |
| "id": "pm_mateusz", |
| "displayName": "Mateusz", |
| "gender": "male", |
| "modelId": "kokoro-pl-fp32", |
| "artifact": { |
| "$artifact": { |
| "path": "voices/pl/pm_mateusz.bin", |
| "mediaType": "application/octet-stream" |
| } |
| } |
| } |
| ] |
| }, |
| { |
| "id": "de", |
| "locale": "de-DE", |
| "displayName": "German", |
| "nativeName": "Deutsch", |
| "defaultVoiceId": "df_anna", |
| "textFrontend": { |
| "status": "bundled", |
| "engine": "phonemis-protophone", |
| "language": "de", |
| "license": "MIT", |
| "sourceRevision": "71eb1ce33bd586d38cbac037843b8539d7829c3b", |
| "phonemeInputSupported": true, |
| "artifacts": [ |
| { |
| "role": "neural-model", |
| "artifact": { "$artifact": { "path": "phonemizers/de/phonemizer_de.onnx", "mediaType": "application/onnx" } } |
| } |
| ] |
| }, |
| "voices": [ |
| { |
| "id": "df_anna", |
| "displayName": "Anna", |
| "gender": "female", |
| "modelId": "kokoro-de-fp32", |
| "artifact": { |
| "$artifact": { |
| "path": "voices/de/df_anna.bin", |
| "mediaType": "application/octet-stream" |
| } |
| } |
| } |
| ] |
| } |
| ] |
| } |
|
|