open-standards/aac/aac-rs/data/voices/index.json
Transaction Science d9e0f89b89
Some checks failed
standards workspaces build + test / jouleclaw-rs (push) Successful in 3m1s
standards workspaces build + test / aac-rs (push) Successful in 1m24s
standards workspaces build + test / joule-code-rs (push) Successful in 54s
standards workspaces build + test / joulecontract-rs (push) Successful in 59s
no-vanity-metrics / Scan committed Markdown for vanity metrics (push) Successful in 4s
standards workspaces build + test / map-rs (push) Successful in 1m8s
standards workspaces build + test / mesh-rs (push) Successful in 40s
standards workspaces build + test / eoc-rs (push) Successful in 1m49s
standards workspaces build + test / jcp-rs (push) Successful in 1m25s
standards workspaces build + test / openpay (push) Successful in 3m24s
standards workspaces build + test / proof-rs (push) Successful in 1m16s
standards workspaces build + test / sandbox-rs (push) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m36s
standards workspaces build + test / arl-rs (push) Has been cancelled
standards workspaces build + test / joule-ui-rs (push) Has been cancelled
standards workspaces build + test / jouledesk-rs (push) Has been cancelled
standards workspaces build + test / joulehook-rs (push) Has been cancelled
standards workspaces build + test / sense-rs (push) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (push) Has been cancelled
feat(aac voices): hear a voice before downloading it; ratings measured
A better voice is a 100 MB download, and the person could not hear
one before deciding. Making the samples showed something worse: some
voices did not say the words at all.

- Samples: each voice says a greeting and a request in its language
  (two or three seconds, MP3, about 10 KB). Settings > Better voices
  plays it with the sentence written beside it, before any download;
  checked by size and SHA-256 and played through the voices' own
  output. render_samples.mjs renders them with LAME; they are
  committed (Piper's synthesis is not repeatable), and build_voices.py
  publishes each beside the voices while it says the current text.
- Intelligibility: intelligibility.py has every voice say seven
  everyday phrases, a speech recognizer (Whisper large-v3-turbo on MLX)
  writes down what it hears, and the scores are committed. Ratings now
  come from that evidence (RATING_RULE): under 0.80 the voice is
  withheld; under 0.90, or any phrase under 0.60, experimental; 0.90
  and over clear; 0.95 and over with an upstream grade of A or B,
  natural.
- Withheld, because they say other words: German (the only German
  voice, 0.14), Dutch MLS (0.27), Ukrainian (0.18) and both Japanese
  voices (0.63-0.69: they misread 外, 好き and 疲れた). Their languages
  say so plainly under "Why". Portuguese and Hindi are experimental;
  Spanish, Chinese, Italian, Flemish and Cori are clear; Heart, Emma
  and Siwis natural. 16 voices in 8 languages, 452 MB of packs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:20:25 -04:00

1823 lines
61 KiB
JSON

{
"schema": "aac-voice-index/1",
"generated": "2026-09-29",
"base": "/app/voices/",
"runtimes": {
"[email protected]": {
"version": "0.1.5",
"licence": "MIT AND MPL-2.0 AND BSD-3-Clause AND Apache-2.0 AND BSL-1.0",
"licence_url": "https://github.com/moonshine-ai/moonshine/blob/234f60faa0eb388b01cdf7e60aca232af37aefda/LICENSE",
"attribution": "Moonshine Voice for the Web 0.1.5 by Moonshine AI (Useful Sensors, Inc.), MIT. The WebAssembly build bundles ONNX Runtime (MIT, Microsoft), Eigen (MPL-2.0), KISS FFT (BSD-3-Clause), kaldi-native-fbank (Apache-2.0), nlohmann/json (MIT), utf8proc (MIT) and utfcpp (BSL-1.0).",
"dir": "runtime/moonshine-wasm-0.1.5-944191096e41/",
"files": [
{
"name": "moonshine.mjs",
"url": "runtime/moonshine-wasm-0.1.5-944191096e41/moonshine.mjs",
"bytes": 156457,
"sha256": "a4b40a7cf7a810e3cdbe8c12f3dd47598900566117b824da690585deb79c59e2"
},
{
"name": "moonshine.wasm",
"url": "runtime/moonshine-wasm-0.1.5-944191096e41/moonshine.wasm",
"bytes": 13155937,
"sha256": "d0e783f661f8be68f7af48d859d3bbc7a6381a980b35b4128fc36344218a6682"
},
{
"name": "voice-worker.js",
"url": "runtime/moonshine-wasm-0.1.5-944191096e41/voice-worker.js",
"bytes": 5872,
"sha256": "9acfe669447d58eaeaf056083dafdb2b4df078884095469636fe9ce1c1822ddc"
}
],
"module": "runtime/moonshine-wasm-0.1.5-944191096e41/moonshine.mjs",
"wasm": "runtime/moonshine-wasm-0.1.5-944191096e41/moonshine.wasm",
"entry": "runtime/moonshine-wasm-0.1.5-944191096e41/voice-worker.js",
"requires": {
"cross_origin_isolated": true,
"wasm_simd": true,
"wasm_threads": true
},
"total_bytes": 13318266,
"licence_text": {
"name": "licence",
"url": "licences/moonshine-wasm_0.1.5.142fdb11fd44.txt",
"bytes": 88363,
"sha256": "142fdb11fd4453652b081b8d31bf1a168eea3d81b15fffdff89795ed488d43e9"
},
"sources": [
{
"url": "https://registry.npmjs.org/@moonshine-ai/moonshine-wasm/-/moonshine-wasm-0.1.5.tgz",
"integrity": "sha512-b90GVFkbuQQthW8wZFU/dvJpnnsISHSSxs/p6Xv/NMfaHotLhRp0e9Risy5/np6QSF3SFust3jGE3Uj2LdecmQ==",
"sha256": "502f257a2b2a05ff28c815d5c74ffd0e9a341b0c214c6eabb11b428c7b895552",
"retrieved": "2026-09-29"
}
]
}
},
"components": {
"kokoro-core@1": {
"kind": "kokoro-core",
"files": [
{
"name": "kokoro/prosody.model.ort",
"url": "c/kokoro/prosody.model.e4f83bf18d78.ort",
"bytes": 12376656,
"sha256": "e4f83bf18d786ab8c9cd2ad21e326021b9d7d5fe776458755e075c8574ff876a"
},
{
"name": "kokoro/prosody.weights.ort",
"url": "c/kokoro/prosody.weights.7ead0eed0498.ort",
"bytes": 16480288,
"sha256": "7ead0eed0498a6b8f7abebb7c9bc2867293c5d7cbb71d2bdf442b7ba48ae77e7"
},
{
"name": "kokoro/decoder.model.ort",
"url": "c/kokoro/decoder.model.1deaf4c42124.ort",
"bytes": 39257640,
"sha256": "1deaf4c42124a9034e325cf6057ebe58f80f429af68401c573c519a3dd7e56bd"
},
{
"name": "kokoro/decoder.weights.ort",
"url": "c/kokoro/decoder.weights.80272c16d480.ort",
"bytes": 15299512,
"sha256": "80272c16d48026641ee0971252be2a3e24ae0bea75a35ad1a822c124cb3a266e"
},
{
"name": "kokoro/config.json",
"url": "c/kokoro/config.5abb01e2403b.json",
"bytes": 2351,
"sha256": "5abb01e2403b072bf03d04fde160443e209d7a0dad49a423be15196b9b43c17f"
}
],
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M v1.0 by hexgrad (Apache-2.0), built on StyleTTS 2 by Yinghao Aaron Li et al. Packed to int8 ORT stages by Moonshine AI. Its training data includes the SIWIS French Speech Synthesis Database (University of Edinburgh, CC BY 4.0) and Koniwa tnc (CC BY 3.0). All speech from this model is synthesized.",
"total_bytes": 83416447,
"licence_text": {
"name": "licence",
"url": "licences/kokoro-core_1.da8cd789cd64.txt",
"bytes": 82122,
"sha256": "da8cd789cd64132c635bf9cb77ff6c7b58ffd679ad2154c264755f225a911e64"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/prosody.model.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/kokoro/prosody.weights.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/kokoro/decoder.model.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/kokoro/decoder.weights.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/kokoro/config.json",
"retrieved": "2026-09-29"
}
]
},
"g2p-en_us@1": {
"kind": "g2p",
"files": [
{
"name": "en_us/dict_filtered_heteronyms.tsv",
"url": "c/g2p/en_us/dict_filtered_heteronyms.8fb0fa0e3ce1.tsv",
"bytes": 2900453,
"sha256": "8fb0fa0e3ce1a74b864f03c06ace015257660fa2116c6157d11061f4e35bb6b7"
},
{
"name": "en_us/g2p-config.json",
"url": "c/g2p/en_us/g2p-config.f10e652b28c4.json",
"bytes": 60,
"sha256": "f10e652b28c49edd90a94ceb139b94d2368de5814650d81289fcb985fe1ca0f5"
},
{
"name": "en_us/oov/model.ort",
"url": "c/g2p/en_us/oov/model.ef8d07a0577a.ort",
"bytes": 22143488,
"sha256": "ef8d07a0577a07617fabf5282d80d680e4e17ad07a763e7e3748417f94554d94"
},
{
"name": "en_us/oov/onnx-config.json",
"url": "c/g2p/en_us/oov/onnx-config.60a7cf2592ae.json",
"bytes": 4641,
"sha256": "60a7cf2592ae66702f56e4368a8614e72235eef89205de96f4cf6bace96c5692"
}
],
"licence": "BSD-2-Clause AND MIT",
"licence_url": "https://github.com/cmusphinx/cmudict/blob/74790861f652b15e4ac49015a90074ad62a27690/LICENSE",
"attribution": "English pronunciations from the CMU Pronouncing Dictionary, Copyright (C) 1993-2015 Carnegie Mellon University. Out-of-vocabulary model and G2P by Moonshine AI (MIT).",
"total_bytes": 25048642,
"licence_text": {
"name": "licence",
"url": "licences/g2p-en_us_1.cdebabb7433c.txt",
"bytes": 8943,
"sha256": "cdebabb7433c6f273b4644700b9f86c3fcd9850f284edbd657156a1e9c3d68a1"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/en_us/dict_filtered_heteronyms.tsv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/en_us/g2p-config.json",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/en_us/oov/model.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/en_us/oov/onnx-config.json",
"retrieved": "2026-09-29"
}
]
},
"g2p-fr@1": {
"kind": "g2p",
"files": [
{
"name": "fr/dict.tsv",
"url": "c/g2p/fr/dict.f073dc8ff7d8.tsv",
"bytes": 5665177,
"sha256": "f073dc8ff7d8e23e61695e729b525e2912367c3535cf7cdc310f079e3cca8fb3"
},
{
"name": "fr/adj.csv",
"url": "c/g2p/fr/adj.482f870d6da6.csv",
"bytes": 1331447,
"sha256": "482f870d6da61f0426248961ba3a2660f2a536275040a8a930fb4b38c13c71a5"
},
{
"name": "fr/adv.csv",
"url": "c/g2p/fr/adv.b6521cfcae6e.csv",
"bytes": 66068,
"sha256": "b6521cfcae6ed78156987b7dabba8bf0a0900ff383257c3986b4cc0cc642b655"
},
{
"name": "fr/conj.csv",
"url": "c/g2p/fr/conj.2324407b0b2a.csv",
"bytes": 1615,
"sha256": "2324407b0b2a355386977d1a53ef0a306527cb3d23a5ad59aedcb2f0c2ecac78"
},
{
"name": "fr/det.csv",
"url": "c/g2p/fr/det.4c9e11744d44.csv",
"bytes": 1133,
"sha256": "4c9e11744d44fa516a1ba75f10db0cd5ac31b786c1f0ea0830ab8a878fff569f"
},
{
"name": "fr/noun.csv",
"url": "c/g2p/fr/noun.ef9b89416885.csv",
"bytes": 1637824,
"sha256": "ef9b89416885d5a957fae887a2094f51efba8f9ff7ae878aa700bd13729fa4db"
},
{
"name": "fr/prep.csv",
"url": "c/g2p/fr/prep.2f9af6c379be.csv",
"bytes": 3564,
"sha256": "2f9af6c379be0d468dee87caae606cb4aa088a8af7c23495775c32b5399c212c"
},
{
"name": "fr/pron.csv",
"url": "c/g2p/fr/pron.1cc55ab41b5d.csv",
"bytes": 3993,
"sha256": "1cc55ab41b5d1cf226ba8586e37ca02fd89751f4c6b12b3d9d61954f55cbdbc7"
},
{
"name": "fr/verb.csv",
"url": "c/g2p/fr/verb.a480f803adaf.csv",
"bytes": 22726815,
"sha256": "a480f803adafa99b77be469f7262e3d76a3a226058b4d25fa3bc1c8542d518e8"
}
],
"licence": "MIT",
"licence_url": "https://github.com/open-dict-data/ipa-dict/blob/43c3570eb3553bdd19fccd2bd0091534889af023/README.md#license",
"attribution": "French pronunciations from ipa-dict by open-dict-data (MIT). Liaison word lists after hbenbel/French-Dictionary (MIT).",
"total_bytes": 31437636,
"licence_text": {
"name": "licence",
"url": "licences/g2p-fr_1.a6360478dec8.txt",
"bytes": 23193,
"sha256": "a6360478dec863d269f95f82ac6f3c1322c6f44a9c00207992ef361525fc5d7b"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/fr/dict.tsv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/adj.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/adv.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/conj.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/det.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/noun.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/prep.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/pron.csv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/fr/verb.csv",
"retrieved": "2026-09-29"
}
]
},
"g2p-nl@1": {
"kind": "g2p",
"files": [
{
"name": "nl/dict.tsv",
"url": "c/g2p/nl/dict.7c0c0705cb99.tsv",
"bytes": 3789110,
"sha256": "7c0c0705cb99434aa1229220efb679acc8513d728865598183a357f661348863"
}
],
"licence": "CC-BY",
"licence_url": "https://github.com/open-dict-data/ipa-dict/blob/43c3570eb3553bdd19fccd2bd0091534889af023/README.md#credits",
"attribution": "Dutch pronunciations provided by the Instituut voor de Nederlandse Taal (INT) under a CC BY licence, via ipa-dict by open-dict-data.",
"total_bytes": 3789110,
"licence_text": {
"name": "licence",
"url": "licences/g2p-nl_1.9f0b95ca15c2.txt",
"bytes": 34596,
"sha256": "9f0b95ca15c2c8c1d5cb4da71b27a0549d76f3ccaddde747aed0dd6f532c94f3"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/nl/dict.tsv",
"retrieved": "2026-09-29"
}
],
"note": "ipa-dict states 'a CC BY license' for the INT data without a version; the CC BY 4.0 text is included as the current version for reference."
},
"g2p-hi@1": {
"kind": "g2p",
"files": [
{
"name": "hi/dict.tsv",
"url": "c/g2p/hi/dict.8fcca62387fd.tsv",
"bytes": 45002,
"sha256": "8fcca62387fd9272a4a0d45bd46cb437b7c59b5be2bc71092b856c8adedd19f7"
}
],
"licence": "CC-BY-SA-4.0",
"licence_url": "https://github.com/moonshine-ai/moonshine/blob/234f60faa0eb388b01cdf7e60aca232af37aefda/core/moonshine-tts/data/hi/README.md",
"attribution": "Hindi pronunciations from English Wiktionary (CC BY-SA); word ranking from hermitdave/FrequencyWords (content CC BY-SA 4.0, OpenSubtitles-derived).",
"total_bytes": 45002,
"licence_text": {
"name": "licence",
"url": "licences/g2p-hi_1.b2e5e7faf52e.txt",
"bytes": 23085,
"sha256": "b2e5e7faf52e67307e9189b337679c9c400fe3c637de9f5e5794318672e91180"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/hi/dict.tsv",
"retrieved": "2026-09-29"
}
]
},
"g2p-it@1": {
"kind": "g2p",
"files": [
{
"name": "it/dict.tsv",
"url": "c/g2p/it/dict.cedbc99d85e0.tsv",
"bytes": 1719067,
"sha256": "cedbc99d85e05ec1ddba995bb72b6003a7e903a357cc647cedd904087470ef37"
}
],
"licence": "CC-BY-SA-4.0",
"licence_url": "https://github.com/CUNY-CL/wikipron/blob/d282e848a211ea31cfd730f0ced8bc8cdab9e83d/README.md#license",
"attribution": "Italian pronunciations scraped from Wiktionary (CC BY-SA) with WikiPron by CUNY-CL (Apache-2.0).",
"total_bytes": 1719067,
"licence_text": {
"name": "licence",
"url": "licences/g2p-it_1.f840519da9c2.txt",
"bytes": 48705,
"sha256": "f840519da9c2a8217ca36c99fcd0e4a9e1683b17626da402253d61688fc4fdb5"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/it/dict.tsv",
"retrieved": "2026-09-29"
}
]
},
"g2p-pt_br@1": {
"kind": "g2p",
"files": [
{
"name": "pt_br/dict.tsv",
"url": "c/g2p/pt_br/dict.7cca2f46ae5d.tsv",
"bytes": 2636818,
"sha256": "7cca2f46ae5d6434baf6a6ee6169120e247fb06e5b66b42bf393bb3a7715c4f0"
}
],
"licence": "MIT",
"licence_url": "https://github.com/open-dict-data/ipa-dict/blob/43c3570eb3553bdd19fccd2bd0091534889af023/README.md#license",
"attribution": "Brazilian Portuguese pronunciations from ipa-dict by open-dict-data (MIT).",
"total_bytes": 2636818,
"licence_text": {
"name": "licence",
"url": "licences/g2p-pt_br_1.ebf2202b3358.txt",
"bytes": 19750,
"sha256": "ebf2202b33586b41bdd4f8896fafa90a71fba5cc13d117fd240c8ceebd37a974"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/pt_br/dict.tsv",
"retrieved": "2026-09-29"
}
]
},
"g2p-zh_hans@1": {
"kind": "g2p",
"files": [
{
"name": "zh_hans/dict.tsv",
"url": "c/g2p/zh_hans/dict.f48d297d0ced.tsv",
"bytes": 1295571,
"sha256": "f48d297d0ced50a261ea8220f343a59ccb4f992137be81205ecc69a6aaa939ab"
},
{
"name": "zh_hans/roberta_chinese_base_upos_onnx/meta.json",
"url": "c/g2p/zh_hans/roberta_chinese_base_upos_onnx/meta.5d1e89cb5359.json",
"bytes": 773,
"sha256": "5d1e89cb53593401a1573b8215a1a099f1686fea8d8bd0caae9e387ef72164a5"
},
{
"name": "zh_hans/roberta_chinese_base_upos_onnx/vocab.txt",
"url": "c/g2p/zh_hans/roberta_chinese_base_upos_onnx/vocab.45bbac6b341c.txt",
"bytes": 109540,
"sha256": "45bbac6b341c319adc98a532532882e91a9cefc0329aa57bac9ae761c27b291c"
},
{
"name": "zh_hans/roberta_chinese_base_upos_onnx/tokenizer_config.json",
"url": "c/g2p/zh_hans/roberta_chinese_base_upos_onnx/tokenizer_config.7b082b48a08a.json",
"bytes": 1272,
"sha256": "7b082b48a08a0b5c5939d99472e33addce3d96202155e33f7928cecd171186a0"
},
{
"name": "zh_hans/roberta_chinese_base_upos_onnx/model.model.ort",
"url": "c/g2p/zh_hans/roberta_chinese_base_upos_onnx/model.model.5cab9fabd1b0.ort",
"bytes": 733776,
"sha256": "5cab9fabd1b0b523c795c88c7ce3ea166617ce145c04f0b1e06930dcf2e456f3"
},
{
"name": "zh_hans/roberta_chinese_base_upos_onnx/model.weights.ort",
"url": "c/g2p/zh_hans/roberta_chinese_base_upos_onnx/model.weights.f3ff1dd7fe1e.ort",
"bytes": 101713624,
"sha256": "f3ff1dd7fe1ec6eec19c71ff4dbefb0a1a1f59da03f5a872f183f2b7e39283ee"
}
],
"licence": "CC-BY-3.0 AND Unicode-3.0 AND Apache-2.0 AND MIT",
"licence_url": "https://github.com/open-dict-data/ipa-dict/blob/43c3570eb3553bdd19fccd2bd0091534889af023/README.md#credits",
"attribution": "Mandarin pronunciations from ipa-dict by open-dict-data (MIT), built from Unihan (Unicode licence), KFCD Pinyin (CC BY 3.0) and 開放漢語詞典 kaifangcidian.com (CC BY 3.0). Word segmentation: chinese-roberta-base-upos by Koichi Yasuoka (Apache-2.0), converted to ORT by Moonshine AI.",
"total_bytes": 103854556,
"licence_text": {
"name": "licence",
"url": "licences/g2p-zh_hans_1.9d741fa61999.txt",
"bytes": 55485,
"sha256": "9d741fa619991dd76069ce04b666886801be4119ad716381d2ac7e361c60e5ed"
},
"sources": [
{
"url": "https://download.moonshine.ai/tts/zh_hans/dict.tsv",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/zh_hans/roberta_chinese_base_upos_onnx/meta.json",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/zh_hans/roberta_chinese_base_upos_onnx/vocab.txt",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/zh_hans/roberta_chinese_base_upos_onnx/tokenizer_config.json",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/zh_hans/roberta_chinese_base_upos_onnx/model.model.ort",
"retrieved": "2026-09-29"
},
{
"url": "https://download.moonshine.ai/tts/zh_hans/roberta_chinese_base_upos_onnx/model.weights.ort",
"retrieved": "2026-09-29"
}
]
}
},
"languages": {
"en": {
"status": "neural",
"packs": [
{
"id": "en-kokoro-af_heart",
"voice": {
"name": "Heart",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "en_us",
"options": {
"voice": "kokoro_af_heart"
},
"requires": [
"kokoro-core@1",
"g2p-en_us@1"
],
"files": [
{
"name": "kokoro/voices/af_heart.kokorovoice",
"url": "v/en/af_heart.908e14de5b47.kokorovoice",
"bytes": 522252,
"sha256": "908e14de5b4709da55562129164e618f5d135fcc34dac419e0c3de5189b72d2c"
}
],
"total_bytes": 108987341,
"total_bytes_with_runtime": 122305607,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice af_heart by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/en-kokoro-af_heart.bf94172a2e9d.txt",
"bytes": 18834,
"sha256": "bf94172a2e9dced2ec342d67844031febc11c1c194b84cc3566ed689818bc7bd"
},
"rating": "natural",
"intelligibility": {
"mean": 1.0,
"min": 1.0,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/en/en-kokoro-af_heart.b66c9087db4c.mp3",
"bytes": 10272,
"sha256": "b66c9087db4c7048abcaedda3dc33c6d05bcccc1ee529ebed02a8080b143a694"
},
"sample_text": "Hi! Could I have some more juice, please?",
"quality": "Kokoro grade A",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/af_heart.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/af_heart.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "en-kokoro-am_michael",
"voice": {
"name": "Michael",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "en_us",
"options": {
"voice": "kokoro_am_michael"
},
"requires": [
"kokoro-core@1",
"g2p-en_us@1"
],
"files": [
{
"name": "kokoro/voices/am_michael.kokorovoice",
"url": "v/en/am_michael.5656ad6770d9.kokorovoice",
"bytes": 522252,
"sha256": "5656ad6770d9cce2bddf6c0d0446569151555a7d284971fe3cd763f4f74f726f"
}
],
"total_bytes": 108987341,
"total_bytes_with_runtime": 122305607,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice am_michael by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/en-kokoro-am_michael.84d5840eee55.txt",
"bytes": 18842,
"sha256": "84d5840eee55cc4f4e512b93d46e86b098cc8bb9324cdfd098347be4fa91d9e1"
},
"rating": "clear",
"intelligibility": {
"mean": 0.988,
"min": 0.919,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/en/en-kokoro-am_michael.f9f2c8961f42.mp3",
"bytes": 12384,
"sha256": "f9f2c8961f42631842fa838ce73ee16bfd30ccc660164718bb2dc47dd2659d92"
},
"sample_text": "Hi! Could I have some more juice, please?",
"quality": "Kokoro grade C+",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/am_michael.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/am_michael.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "en-kokoro-bf_emma",
"voice": {
"name": "Emma (British)",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "en_gb",
"options": {
"voice": "kokoro_bf_emma"
},
"requires": [
"kokoro-core@1",
"g2p-en_us@1"
],
"files": [
{
"name": "kokoro/voices/bf_emma.kokorovoice",
"url": "v/en/bf_emma.f956baef58df.kokorovoice",
"bytes": 522252,
"sha256": "f956baef58dfb4ef837e805d5954bdc5074131260590220265bc3c2c9f389eea"
}
],
"total_bytes": 108987341,
"total_bytes_with_runtime": 122305607,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice bf_emma by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/en-kokoro-bf_emma.0a9e68a8e3b2.txt",
"bytes": 18830,
"sha256": "0a9e68a8e3b225d2bbc2484155ed4c016937a1a501f0d194d5d055205e835675"
},
"rating": "natural",
"intelligibility": {
"mean": 0.988,
"min": 0.917,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/en/en-kokoro-bf_emma.e687d39d8823.mp3",
"bytes": 12096,
"sha256": "e687d39d882375c184aac583e8b1b270aab12d8348aca6153b127ac93fb71317"
},
"sample_text": "Hi! Could I have some more juice, please?",
"quality": "Kokoro grade B-",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/bf_emma.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/bf_emma.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "en-piper-cori",
"voice": {
"name": "Cori (British)",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "piper",
"lang_key": "en_gb",
"options": {
"vocoder_engine": "piper",
"voice": "piper_en_GB-cori-high"
},
"requires": [
"g2p-en_us@1"
],
"files": [
{
"name": "piper/onnx",
"url": "v/en/en_GB-cori-high.3acf44b00a96.ort",
"bytes": 114907824,
"sha256": "3acf44b00a962be15348608bb425d297bbb7f72f453fcdc1944582bd186bd8aa"
},
{
"name": "piper/onnx.json",
"url": "v/en/en_GB-cori-high.onnx.9e7fb5b56716.json",
"bytes": 4963,
"sha256": "9e7fb5b5671612c22f3c81cbe46c1ae87b031a4632bcb509e499dad6f1e2adec"
}
],
"total_bytes": 139961429,
"total_bytes_with_runtime": 153279695,
"sample_rate": 24000,
"licence": "MIT",
"licence_url": "https://huggingface.co/rhasspy/piper-voices/blob/c10ece1aade47bb51c153c893d14e5bf8e5b7117/en/en_GB/cori/high/MODEL_CARD",
"attribution": "Piper voice en_GB-cori-high by Bryce Beattie (rhasspy/piper-voices, MIT), trained from scratch on LibriVox recordings (public domain). Converted to ORT format with onnxruntime 1.23.2.",
"licence_text": {
"name": "licence",
"url": "licences/en-piper-cori.5c98b20d0dd6.txt",
"bytes": 3660,
"sha256": "5c98b20d0dd6b91e60478326612ae9756f81bc09c93197806de0db6bea994dea"
},
"rating": "clear",
"intelligibility": {
"mean": 0.921,
"min": 0.667,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/en/en-piper-cori.16165db3d777.mp3",
"bytes": 8832,
"sha256": "16165db3d7776ce1914ae63355a7a46f4616f10a50d14d7197919e5912c61b40"
},
"sample_text": "Hi! Could I have some more juice, please?",
"quality": "Piper high, British English; light and fast, clean on single words in testing",
"min_ai_tier": "minimal",
"default": false,
"sources": [
{
"url": "https://huggingface.co/rhasspy/piper-voices/resolve/c10ece1aade47bb51c153c893d14e5bf8e5b7117/en/en_GB/cori/high/en_GB-cori-high.onnx",
"revision": "c10ece1aade47bb51c153c893d14e5bf8e5b7117",
"retrieved": "2026-09-29",
"converted": {
"tool": "onnxruntime==1.23.2 convert_onnx_models_to_ort --optimization_style Fixed --target_platform arm (ASLR off)",
"sha256": "3acf44b00a962be15348608bb425d297bbb7f72f453fcdc1944582bd186bd8aa"
}
},
{
"url": "https://huggingface.co/rhasspy/piper-voices/resolve/c10ece1aade47bb51c153c893d14e5bf8e5b7117/en/en_GB/cori/high/en_GB-cori-high.onnx.json",
"revision": "c10ece1aade47bb51c153c893d14e5bf8e5b7117",
"retrieved": "2026-09-29"
}
]
}
],
"withheld": [
{
"id": "en-piper-norman",
"voice": {
"name": "Norman",
"gender": "male"
},
"reason": "The single word 'more' comes out as 3-5 s of babble, also under reference inference of the upstream model. Cori is offered instead."
}
]
},
"es": {
"status": "neural",
"packs": [
{
"id": "es-kokoro-ef_dora",
"voice": {
"name": "Dora",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "es_es",
"options": {
"voice": "kokoro_ef_dora"
},
"requires": [
"kokoro-core@1"
],
"files": [
{
"name": "kokoro/voices/ef_dora.kokorovoice",
"url": "v/es/ef_dora.33daea7410c4.kokorovoice",
"bytes": 522252,
"sha256": "33daea7410c493bb4b782a7453887912f43a0ce212473f91344d47c4f558bdb7"
}
],
"total_bytes": 83938699,
"total_bytes_with_runtime": 97256965,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice ef_dora by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/es-kokoro-ef_dora.888aaac15fd4.txt",
"bytes": 18830,
"sha256": "888aaac15fd422d02801ccec76e0b6131de8cdcb31a8c57796f284a0a738f2d6"
},
"rating": "clear",
"intelligibility": {
"mean": 1.0,
"min": 1.0,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/es/es-kokoro-ef_dora.c04700d37d5f.mp3",
"bytes": 9504,
"sha256": "c04700d37d5f118c583c04982a10f9f2bed11314eed9bb158c06f7bc5f1ca0f9"
},
"sample_text": "¡Hola! Quiero más jugo, por favor.",
"quality": "Kokoro, ungraded upstream",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/ef_dora.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/ef_dora.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "es-kokoro-em_alex",
"voice": {
"name": "Alex",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "es_es",
"options": {
"voice": "kokoro_em_alex"
},
"requires": [
"kokoro-core@1"
],
"files": [
{
"name": "kokoro/voices/em_alex.kokorovoice",
"url": "v/es/em_alex.96b7452bb4ee.kokorovoice",
"bytes": 522252,
"sha256": "96b7452bb4eeecd258fefd81831f4511a2399304c48ed433287255cb9e31383a"
}
],
"total_bytes": 83938699,
"total_bytes_with_runtime": 97256965,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice em_alex by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/es-kokoro-em_alex.b4f19c0532c2.txt",
"bytes": 18830,
"sha256": "b4f19c0532c24ff5815701345a19c36aecb7fce6214ccc802a4f97ae794c6f38"
},
"rating": "clear",
"intelligibility": {
"mean": 0.992,
"min": 0.947,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/es/es-kokoro-em_alex.8bf7b811ec28.mp3",
"bytes": 9792,
"sha256": "8bf7b811ec2875a31a2ce7659ba964a7b27715fe67a5ad43d7c8f58f026ce489"
},
"sample_text": "¡Hola! Quiero más jugo, por favor.",
"quality": "Kokoro, ungraded upstream",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/em_alex.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/em_alex.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"fr": {
"status": "neural",
"packs": [
{
"id": "fr-kokoro-ff_siwis",
"voice": {
"name": "Siwis",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "fr",
"options": {
"voice": "kokoro_ff_siwis"
},
"requires": [
"kokoro-core@1",
"g2p-fr@1"
],
"files": [
{
"name": "kokoro/voices/ff_siwis.kokorovoice",
"url": "v/fr/ff_siwis.4f41b36f02df.kokorovoice",
"bytes": 522252,
"sha256": "4f41b36f02dff8d08368cece329f125c23749af0cf4ea9bac1d9b05bc09d13e1"
}
],
"total_bytes": 115376335,
"total_bytes_with_runtime": 128694601,
"sample_rate": 24000,
"licence": "Apache-2.0 AND CC-BY-4.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice ff_siwis by hexgrad (Apache-2.0). Voice trained on the SIWIS French Speech Synthesis Database (University of Edinburgh DataShare, https://datashare.ed.ac.uk/handle/10283/2353), CC BY 4.0.",
"licence_text": {
"name": "licence",
"url": "licences/fr-kokoro-ff_siwis.9c0075e52378.txt",
"bytes": 36324,
"sha256": "9c0075e523789d932fb2232ac334690cbe7af3c2a9aa8209f1f21a07925c83e1"
},
"rating": "natural",
"intelligibility": {
"mean": 0.982,
"min": 0.923,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/fr/fr-kokoro-ff_siwis.b52891911edf.mp3",
"bytes": 14880,
"sha256": "b52891911edf4e05d181ee11f40abd99d7cd00267c531078ad335ca4ab2c2372"
},
"sample_text": "Bonjour ! Je voudrais encore un peu de jus, s'il vous plaît.",
"quality": "Kokoro grade B-",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/ff_siwis.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/ff_siwis.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"de": {
"status": "web-speech-only",
"reason": "The voices with a licence this app can use (Reader) do not yet say the words reliably with this voice engine: in testing, a speech recognizer understood 14% of everyday phrases they said.",
"packs": [],
"withheld": [
{
"id": "de-piper-mls",
"voice": {
"name": "Reader",
"gender": "unknown"
},
"reason": "It says other words: in testing, a speech recognizer understood 14% of 7 everyday phrases it said."
}
]
},
"pt": {
"status": "neural",
"packs": [
{
"id": "pt-kokoro-pf_dora",
"voice": {
"name": "Dora",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "pt_br",
"options": {
"voice": "kokoro_pf_dora"
},
"requires": [
"kokoro-core@1",
"g2p-pt_br@1"
],
"files": [
{
"name": "kokoro/voices/pf_dora.kokorovoice",
"url": "v/pt/pf_dora.85ae8e13dce0.kokorovoice",
"bytes": 522252,
"sha256": "85ae8e13dce045fc20be2e1c5dedd1558998f54be204c6e1e478e674f4cd0c3c"
}
],
"total_bytes": 86575517,
"total_bytes_with_runtime": 99893783,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice pf_dora by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/pt-kokoro-pf_dora.e0dd7148c87d.txt",
"bytes": 18830,
"sha256": "e0dd7148c87d1f2dee2541ec902e905a971ca9d6ad443bcd0ee8c4577eaf5c59"
},
"rating": "experimental",
"intelligibility": {
"mean": 0.861,
"min": 0.4,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/pt/pt-kokoro-pf_dora.6506192f2790.mp3",
"bytes": 11232,
"sha256": "6506192f279006c140bad68d07c0b41a0e01692a0cb382c43aa22fae097c7e19"
},
"sample_text": "Olá! Eu queria mais suco, por favor.",
"quality": "Kokoro, ungraded upstream",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/pf_dora.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/pf_dora.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "pt-kokoro-pm_alex",
"voice": {
"name": "Alex",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "pt_br",
"options": {
"voice": "kokoro_pm_alex"
},
"requires": [
"kokoro-core@1",
"g2p-pt_br@1"
],
"files": [
{
"name": "kokoro/voices/pm_alex.kokorovoice",
"url": "v/pt/pm_alex.a4b3b3aeffe8.kokorovoice",
"bytes": 522252,
"sha256": "a4b3b3aeffe865be66244b584b2f79aeaa53bd1f6a4dacd00f648b10e76c080c"
}
],
"total_bytes": 86575517,
"total_bytes_with_runtime": 99893783,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice pm_alex by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/pt-kokoro-pm_alex.61809fd1a2a7.txt",
"bytes": 18830,
"sha256": "61809fd1a2a7fdcbafdda2364e84090ad7110c954d68d6b6afc2736934122bcd"
},
"rating": "experimental",
"intelligibility": {
"mean": 0.843,
"min": 0.545,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/pt/pt-kokoro-pm_alex.de8be0ebeb9b.mp3",
"bytes": 11040,
"sha256": "de8be0ebeb9b652c625f4cf12dd0cb3f3b8839a9bb8173578d86f10c08f4dcfe"
},
"sample_text": "Olá! Eu queria mais suco, por favor.",
"quality": "Kokoro, ungraded upstream",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/pm_alex.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/pm_alex.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"it": {
"status": "neural",
"packs": [
{
"id": "it-kokoro-if_sara",
"voice": {
"name": "Sara",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "it",
"options": {
"voice": "kokoro_if_sara"
},
"requires": [
"kokoro-core@1",
"g2p-it@1"
],
"files": [
{
"name": "kokoro/voices/if_sara.kokorovoice",
"url": "v/it/if_sara.726a8cef25b7.kokorovoice",
"bytes": 522252,
"sha256": "726a8cef25b713d114f373f2bf275128728326e4b679d3ce3f5df39c37cd0171"
}
],
"total_bytes": 85657766,
"total_bytes_with_runtime": 98976032,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice if_sara by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/it-kokoro-if_sara.4bfbcc9b16d0.txt",
"bytes": 18830,
"sha256": "4bfbcc9b16d05a8f5c960cb8fd594e79a6cfe95506ebf0acee3b1209ee0b8a24"
},
"rating": "clear",
"intelligibility": {
"mean": 0.984,
"min": 0.889,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/it/it-kokoro-if_sara.9c187a5a095c.mp3",
"bytes": 12960,
"sha256": "9c187a5a095c3bc4d4ab9e2c366a5a0e4f423ca34a56fc33a2882cadb4142f5f"
},
"sample_text": "Ciao! Vorrei ancora un po' di succo, per favore.",
"quality": "Kokoro grade C",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/if_sara.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/if_sara.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "it-kokoro-im_nicola",
"voice": {
"name": "Nicola",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "it",
"options": {
"voice": "kokoro_im_nicola"
},
"requires": [
"kokoro-core@1",
"g2p-it@1"
],
"files": [
{
"name": "kokoro/voices/im_nicola.kokorovoice",
"url": "v/it/im_nicola.21056bdb5d97.kokorovoice",
"bytes": 522252,
"sha256": "21056bdb5d972abb88df9f8761f912d53c7750866ee5671504522c1e0f80ef30"
}
],
"total_bytes": 85657766,
"total_bytes_with_runtime": 98976032,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice im_nicola by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/it-kokoro-im_nicola.7dcf87d63550.txt",
"bytes": 18838,
"sha256": "7dcf87d63550bdd19b71059adb123c8f1bfba0f25d0f6ac1edb2770576255e16"
},
"rating": "clear",
"intelligibility": {
"mean": 0.963,
"min": 0.867,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/it/it-kokoro-im_nicola.e4292e40fd83.mp3",
"bytes": 13152,
"sha256": "e4292e40fd83e1a1505c3124919d706cf89808d2c8da807943aa5a324d597f0e"
},
"sample_text": "Ciao! Vorrei ancora un po' di succo, per favore.",
"quality": "Kokoro grade C",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/im_nicola.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/im_nicola.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"nl": {
"status": "neural",
"packs": [
{
"id": "nl-piper-rdh",
"voice": {
"name": "Reader (Flemish)",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "piper",
"lang_key": "nl",
"options": {
"vocoder_engine": "piper",
"voice": "piper_nl_BE-rdh-medium"
},
"requires": [
"g2p-nl@1"
],
"files": [
{
"name": "piper/onnx",
"url": "v/nl/nl_BE-rdh-medium.1fa7eeb3f86d.ort",
"bytes": 63648608,
"sha256": "1fa7eeb3f86d217e73a9a0e09014ab69c0c707e3b98fd4ed5b8001178644a0fa"
},
{
"name": "piper/onnx.json",
"url": "v/nl/nl_BE-rdh-medium.onnx.65deb256664d.json",
"bytes": 4159,
"sha256": "65deb256664d22099b0db5bb36d96237a3e32e43885c6ce4ee6811e6c04a8d79"
}
],
"total_bytes": 67441877,
"total_bytes_with_runtime": 80760143,
"sample_rate": 24000,
"licence": "MIT AND CC0-1.0",
"licence_url": "https://huggingface.co/rhasspy/piper-voices/blob/c10ece1aade47bb51c153c893d14e5bf8e5b7117/nl/nl_BE/rdh/medium/MODEL_CARD",
"attribution": "Piper voice nl_BE-rdh-medium (rhasspy/piper-voices, MIT), trained from scratch on dutch-vl-tts by r-dh (CC0 1.0). Converted to ORT format with onnxruntime 1.23.2.",
"licence_text": {
"name": "licence",
"url": "licences/nl-piper-rdh.4283bab2866d.txt",
"bytes": 18104,
"sha256": "4283bab2866dd4406d1c750b9dee49a9a83b19c551a4811f7f03c5c338e836f8"
},
"rating": "clear",
"intelligibility": {
"mean": 0.954,
"min": 0.9,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/nl/nl-piper-rdh.0c5eca7eff94.mp3",
"bytes": 11232,
"sha256": "0c5eca7eff946c95179bdde32e11292c3de00e3044d69867e0ac74f1fd0d4036"
},
"sample_text": "Hallo! Mag ik nog wat sap, alsjeblieft?",
"quality": "Piper medium, Belgian Dutch",
"min_ai_tier": "minimal",
"default": true,
"sources": [
{
"url": "https://huggingface.co/rhasspy/piper-voices/resolve/c10ece1aade47bb51c153c893d14e5bf8e5b7117/nl/nl_BE/rdh/medium/nl_BE-rdh-medium.onnx",
"revision": "c10ece1aade47bb51c153c893d14e5bf8e5b7117",
"retrieved": "2026-09-29",
"converted": {
"tool": "onnxruntime==1.23.2 convert_onnx_models_to_ort --optimization_style Fixed --target_platform arm (ASLR off)",
"sha256": "1fa7eeb3f86d217e73a9a0e09014ab69c0c707e3b98fd4ed5b8001178644a0fa"
}
},
{
"url": "https://huggingface.co/rhasspy/piper-voices/resolve/c10ece1aade47bb51c153c893d14e5bf8e5b7117/nl/nl_BE/rdh/medium/nl_BE-rdh-medium.onnx.json",
"revision": "c10ece1aade47bb51c153c893d14e5bf8e5b7117",
"retrieved": "2026-09-29"
}
]
}
],
"withheld": [
{
"id": "nl-piper-mls",
"voice": {
"name": "Reader (Netherlands)",
"gender": "unknown"
},
"reason": "It says other words: in testing, a speech recognizer understood 27% of 7 everyday phrases it said."
}
]
},
"zh": {
"status": "neural",
"packs": [
{
"id": "zh-kokoro-zf_xiaobei",
"voice": {
"name": "Xiaobei",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "zh",
"options": {
"voice": "kokoro_zf_xiaobei"
},
"requires": [
"kokoro-core@1",
"g2p-zh_hans@1"
],
"files": [
{
"name": "kokoro/voices/zf_xiaobei.kokorovoice",
"url": "v/zh/zf_xiaobei.e482dd853163.kokorovoice",
"bytes": 522252,
"sha256": "e482dd85316300c34ed37ee3c580ed4455fd520492f9d70075af010348a30037"
}
],
"total_bytes": 187793255,
"total_bytes_with_runtime": 201111521,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice zf_xiaobei by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/zh-kokoro-zf_xiaobei.b394de311c3a.txt",
"bytes": 18842,
"sha256": "b394de311c3a17fb187d248651126ed008f5e6579680c3cf9d1dbe3c53f2761f"
},
"rating": "clear",
"intelligibility": {
"mean": 0.967,
"min": 0.769,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/zh/zh-kokoro-zf_xiaobei.e049569f81b2.mp3",
"bytes": 15936,
"sha256": "e049569f81b2746091e0505cb16f46ce42f1384a643d2e91370c701d5a2718f6"
},
"sample_text": "你好!请再给我一些果汁,谢谢。",
"quality": "Kokoro grade D",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/zf_xiaobei.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/zf_xiaobei.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "zh-kokoro-zm_yunjian",
"voice": {
"name": "Yunjian",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "zh",
"options": {
"voice": "kokoro_zm_yunjian"
},
"requires": [
"kokoro-core@1",
"g2p-zh_hans@1"
],
"files": [
{
"name": "kokoro/voices/zm_yunjian.kokorovoice",
"url": "v/zh/zm_yunjian.a3161a01c377.kokorovoice",
"bytes": 522252,
"sha256": "a3161a01c377d3f77d2398429afb806babd24d3c9155b7f45a019595e63aca81"
}
],
"total_bytes": 187793255,
"total_bytes_with_runtime": 201111521,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice zm_yunjian by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/zh-kokoro-zm_yunjian.04ee7cc75a78.txt",
"bytes": 18842,
"sha256": "04ee7cc75a7865c146f37b3382b8cafe9c2bcf54016cb916ad75eb9437299720"
},
"rating": "clear",
"intelligibility": {
"mean": 0.959,
"min": 0.714,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/zh/zh-kokoro-zm_yunjian.e90e6b133b91.mp3",
"bytes": 14496,
"sha256": "e90e6b133b9103685027e275803619a873f46912e248a0c27d76f93f79730539"
},
"sample_text": "你好!请再给我一些果汁,谢谢。",
"quality": "Kokoro grade D",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/zm_yunjian.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/zm_yunjian.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"ja": {
"status": "web-speech-only",
"reason": "The voices with a licence this app can use (Alpha, Kumo) do not yet say the words reliably with this voice engine: in testing, a speech recognizer understood 63% to 69% of everyday phrases they said.",
"packs": [],
"withheld": [
{
"id": "ja-kokoro-jf_alpha",
"voice": {
"name": "Alpha",
"gender": "female"
},
"reason": "It says other words: in testing, a speech recognizer understood 69% of 7 everyday phrases it said."
},
{
"id": "ja-kokoro-jm_kumo",
"voice": {
"name": "Kumo",
"gender": "male"
},
"reason": "It says other words: in testing, a speech recognizer understood 63% of 7 everyday phrases it said."
}
]
},
"ko": {
"status": "web-speech-only",
"reason": "No voice with a verifiable licence: Piper ko_KR-kss is CC BY-NC-SA, and Moonshine's ko_KR-melotts-medium states no base checkpoint and its training code is not public.",
"packs": []
},
"ar": {
"status": "web-speech-only",
"reason": "Piper ar_JO-kareem is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, and its dataset licence is unstated. OpenBible Arabic is a later candidate pending a rights check.",
"packs": []
},
"he": {
"status": "web-speech-only",
"reason": "Piper he_IL-saspeech has an unverified dataset licence and is built on LibriTTS-R, which Piper's own card says is fine-tuned from lessac; also there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"ur": {
"status": "web-speech-only",
"reason": "Piper ur_PK-fasih is built on hi_IN-rohan, which is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis; aegis_female states no base; and there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"fa": {
"status": "web-speech-only",
"reason": "Every Persian Piper voice is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis or chained to one (amir, reza_ibrahim, ganji, ganji_adabi); gyro's licence and base are unclear; and there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"hi": {
"status": "neural",
"packs": [
{
"id": "hi-kokoro-hf_alpha",
"voice": {
"name": "Alpha",
"gender": "female",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "hi",
"options": {
"voice": "kokoro_hf_alpha"
},
"requires": [
"kokoro-core@1",
"g2p-hi@1"
],
"files": [
{
"name": "kokoro/voices/hf_alpha.kokorovoice",
"url": "v/hi/hf_alpha.0d3dfbc4ca9c.kokorovoice",
"bytes": 522252,
"sha256": "0d3dfbc4ca9c6c4c091721df040b769ec3bd897478140c5e13bea93f058f30f8"
}
],
"total_bytes": 83983701,
"total_bytes_with_runtime": 97301967,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice hf_alpha by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/hi-kokoro-hf_alpha.a378377d7230.txt",
"bytes": 18834,
"sha256": "a378377d7230b66a93594a23c6650c09009448a0615ddfc0939e3822485bdd6b"
},
"rating": "experimental",
"intelligibility": {
"mean": 0.866,
"min": 0.621,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/hi/hi-kokoro-hf_alpha.ac4c01e098e4.mp3",
"bytes": 15168,
"sha256": "ac4c01e098e43a9b3c92cc5b6e5de4fcbe8f853aa75c1315e8bc755ad5d915d9"
},
"sample_text": "नमस्ते! कृपया मुझे और जूस दीजिए।",
"quality": "Kokoro grade C",
"min_ai_tier": "wasm-only",
"default": true,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/hf_alpha.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/hf_alpha.pt",
"retrieved": "2026-09-29"
}
]
},
{
"id": "hi-kokoro-hm_omega",
"voice": {
"name": "Omega",
"gender": "male",
"age": "adult"
},
"runtime": "[email protected]",
"engine": "kokoro",
"lang_key": "hi",
"options": {
"voice": "kokoro_hm_omega"
},
"requires": [
"kokoro-core@1",
"g2p-hi@1"
],
"files": [
{
"name": "kokoro/voices/hm_omega.kokorovoice",
"url": "v/hi/hm_omega.6b6eb752c1c4.kokorovoice",
"bytes": 522252,
"sha256": "6b6eb752c1c4f3aac563586dd102fc05b06559b233adfdf88afbf393081c05d8"
}
],
"total_bytes": 83983701,
"total_bytes_with_runtime": 97301967,
"sample_rate": 24000,
"licence": "Apache-2.0",
"licence_url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md",
"attribution": "Kokoro-82M voice hm_omega by hexgrad (Apache-2.0).",
"licence_text": {
"name": "licence",
"url": "licences/hi-kokoro-hm_omega.f425c24f2af2.txt",
"bytes": 18834,
"sha256": "f425c24f2af287534871dbfbda98fc9d2a7244db261789a3daae9b48a65b6a2f"
},
"rating": "experimental",
"intelligibility": {
"mean": 0.878,
"min": 0.69,
"model": "mlx-community/whisper-large-v3-turbo",
"measured": "2026-09-30"
},
"sample": {
"name": "sample",
"url": "samples/hi/hi-kokoro-hm_omega.9d20d970da64.mp3",
"bytes": 14784,
"sha256": "9d20d970da6454782e486ca6c0caeb907be3f547642c811a39cbce9140917007"
},
"sample_text": "नमस्ते! कृपया मुझे और जूस दीजिए।",
"quality": "Kokoro grade C",
"min_ai_tier": "wasm-only",
"default": false,
"sources": [
{
"url": "https://download.moonshine.ai/tts/kokoro/voices/hm_omega.kokorovoice",
"retrieved": "2026-09-29"
},
{
"url": "https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/voices/hm_omega.pt",
"retrieved": "2026-09-29"
}
]
}
]
},
"bn": {
"status": "web-speech-only",
"reason": "Piper bn_BD-google has CC BY-SA data but is built on LibriTTS-R, which Piper's own card says is fine-tuned from lessac; there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL). Rasa-13 and OpenBible Bengali await a rights review.",
"packs": []
},
"ta": {
"status": "web-speech-only",
"reason": "No verifiable voice: the AI4Bharat Rasa-13 card is gated, and the Open.Bible Tamil source rights could not be checked.",
"packs": []
},
"te": {
"status": "web-speech-only",
"reason": "Piper padmavathi and venkatesh (CC BY 4.0 data) state no base checkpoint, maya is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, and there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"ml": {
"status": "web-speech-only",
"reason": "Piper arjun and meera are built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis with an unstated dataset licence; Rasa-13 is gated and unverifiable.",
"packs": []
},
"mr": {
"status": "web-speech-only",
"reason": "Piper mr_IN-google is built on LibriTTS-R, which Piper's own card says is fine-tuned from lessac, and there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL). OpenBible Marathi awaits a rights review.",
"packs": []
},
"kn": {
"status": "web-speech-only",
"reason": "No verifiable voice: Rasa-13 is gated and the Open.Bible Kannada source rights are unverified.",
"packs": []
},
"gu": {
"status": "web-speech-only",
"reason": "No verifiable voice: the Open.Bible Gujarati source rights are unverified.",
"packs": []
},
"pa": {
"status": "web-speech-only",
"reason": "No verifiable voice: Rasa-13 is gated and the Open.Bible Punjabi source rights are unverified.",
"packs": []
},
"th": {
"status": "web-speech-only",
"reason": "Piper th_TH-tsync2 is CC BY-NC-SA 3.0 (non-commercial).",
"packs": []
},
"vi": {
"status": "web-speech-only",
"reason": "Piper vais1000 is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, vivos is CC BY-NC-SA, and 25hours_single is built on the Ryan voice (RyanSpeech, CC BY-NC-SA) with an unknown licence.",
"packs": []
},
"id": {
"status": "web-speech-only",
"reason": "Piper id_ID-news_tts is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, with an unstated dataset licence.",
"packs": []
},
"ms": {
"status": "web-speech-only",
"reason": "No Malay voice exists in Piper, Kokoro or Pocket TTS.",
"packs": []
},
"tl": {
"status": "web-speech-only",
"reason": "No Tagalog voice exists in Piper, Kokoro or Pocket TTS (OpenBible has Hiligaynon, not Tagalog).",
"packs": []
},
"ru": {
"status": "web-speech-only",
"reason": "Piper denis and dmitri are built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, irina's licence is unknown, and ruslan is CC BY-NC-SA.",
"packs": []
},
"pl": {
"status": "web-speech-only",
"reason": "Every Polish Piper voice is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis or built on the Ryan voice (RyanSpeech, CC BY-NC-SA).",
"packs": []
},
"uk": {
"status": "web-speech-only",
"reason": "The voices with a licence this app can use (Lada) do not yet say the words reliably with this voice engine: in testing, a speech recognizer understood 18% of everyday phrases they said.",
"packs": [],
"withheld": [
{
"id": "uk-piper-ukrainian_tts",
"voice": {
"name": "Lada",
"gender": "female"
},
"reason": "It says other words: in testing, a speech recognizer understood 18% of 7 everyday phrases it said."
}
]
},
"ro": {
"status": "web-speech-only",
"reason": "Piper ro_RO-mihai is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis.",
"packs": []
},
"cs": {
"status": "web-speech-only",
"reason": "Piper jirka is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis; kasandra (CC BY 4.0) states no base checkpoint; and there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"sv": {
"status": "web-speech-only",
"reason": "Piper sv_SE-nst-medium is clean (CC0, trained from scratch), but there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"da": {
"status": "web-speech-only",
"reason": "Piper da_DK-talesyntese is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis.",
"packs": []
},
"nb": {
"status": "web-speech-only",
"reason": "Piper no_NO-nvcc-medium is clean (CC0, trained from scratch), but there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"fi": {
"status": "web-speech-only",
"reason": "Piper harri-medium is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis and harri-low is built on the Ryan voice (RyanSpeech, CC BY-NC-SA).",
"packs": []
},
"sw": {
"status": "web-speech-only",
"reason": "Piper sw_CD-lanfrica is built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis, with an unstated dataset licence. OpenBible Swahili awaits a rights review.",
"packs": []
},
"am": {
"status": "web-speech-only",
"reason": "No voice with a licence that allows commercial use (none in Piper; MMS-TTS is CC BY-NC).",
"packs": []
},
"ha": {
"status": "planned",
"reason": "OpenBible VITS Hausa (CC BY-SA 4.0, trained from scratch on Open.Bible audio) is verified; it needs an ONNX export and the onnxruntime-web runtime, planned for v1.1.",
"packs": []
},
"yo": {
"status": "planned",
"reason": "OpenBible VITS Yoruba (CC BY-SA 4.0, trained from scratch on Open.Bible audio) is verified; it needs an ONNX export and the onnxruntime-web runtime, planned for v1.1. Yoruba text must carry full tone marks.",
"packs": []
},
"zu": {
"status": "web-speech-only",
"reason": "No voice with a licence that allows commercial use (OpenBible has Ndebele, not Zulu; MMS-TTS is CC BY-NC).",
"packs": []
},
"tr": {
"status": "web-speech-only",
"reason": "Piper tr_TR-dfki is CC BY-NC-SA and built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis; fahrettin and fettah are not in the current piper-voices catalogue, so their licences cannot be checked.",
"packs": []
},
"el": {
"status": "web-speech-only",
"reason": "Piper el_GR-rapunzelina-medium is clean (CC0, trained from scratch), but there is no non-GPL G2P for it in the runtime yet (eSpeak NG is GPL).",
"packs": []
},
"hu": {
"status": "web-speech-only",
"reason": "Piper anna, berta and imre are all built on the lessac voice, whose Blizzard-2013 licence bars commercial synthesis.",
"packs": []
}
}
}