Strojový překlad · Anglický originál
Kokoro TTS hlasy a vzorky
Kokoro-82M je lehký, non-autoregresivní text- to- speak model založený na StyletTS 2 s ISTFTNet vokodérem. To běží zcela na Neural Engine přes CoreML, produkující přírodní 24 kHz řeči z textového vstupu v jediném předvstupním průsmyku.
Kokoro-82M je určen pro nasazení na zařízení iOS. Na parametrech 82M (~ 80 MB se 1 kbelíkem, INT8) se pohodlně hodí na iPhone a iPad. CoreML běží na Neural Engine, takže GPU zdarma pro jiné úkoly.
Podporované jazyky
| Jazyk | Kód | Příklad Hlasů |
|---|---|---|
| Anglicky (US) | n | af _ heart, am _ adam, af _ sky |
| Anglicky (UK) | n | bf _ emma, bm _ george |
| Španělština | e | ef _ dora |
| Francouzština | fr | ff _ siwis |
| Hindština | Ahoj. | hf _ alfa, hm _ omega |
| Italština | To | if _ sara |
| japonsky | ja | jf _ alfa, jm _ kumo |
| Portugalština | pt | pf _ dora |
| Čínština | zh | zf _ xiaobei, zm _ yunjian |
| Němčina | de | dm _ martin, df _ victoria (hlasové balíčky) |
54 přednastavené hlasy celkem. [language_prefix][gender]_[name] - např., af_heart = Americká žena "Srdce", if_sara = Italská žena "Sara".
Německé hlasy
Němec je obsluhován dvěma oddělenými jednohlasovými svazky, kikiri- tts fine- tunes Kokoro-82M s jedním 313 MB CoreML model na hlas, spíše než hlasy z mnohojazyčného svazku. Načíst jeden model ID a syntetizovat s language: "de". Čísla, data, časy, měna a zkratky jsou uvedeny na zařízení, a slova řešení prostřednictvím sdružené 50k- slovo německý slovník.
| Vzor ID | Hlas |
|---|---|
| aufklarer / Kokoro-82M-German-Martin-CoreML | dm_martin (samec) |
| aufklarer / Kokoro-82M-German-Victoria-CoreML | df_victoria (samice) |
let tts = try await KokoroTTSModel.fromPretrained(modelId: KokoroTTSModel.germanMartinModelId)
let audio = try tts.synthesize(text: "Am 3. Oktober um 18:30 Uhr kostet es 12,80 €.",
voice: "dm_martin", language: "de")speech kokoro --model aufklarer/Kokoro-82M-German-Martin-CoreML --language de "Guten Tag, wie geht es Ihnen?" --output guten-tag.wavNejlepší hlasové vzorky
Krátké klipy MP3 generované lokálním speech-swift CLI. Úplná tabulka hlasových kódů zůstává níže pro copy- pasta použití.
af_heartam_puckbf_alicebm_georgeef_doraem_alexff_siwishf_alphahm_omegaif_saraim_nicolajf_alphajm_kumopf_dorapm_alexzf_xiaobeizm_yunjianOdkaz na hlasové kódy
Každý hlasový průkaz Kokoro sleduje stejný vzor: jedno písmeno jazyková prefix, jeden-dopis genderový kód, pak podtržení a hlasové jméno. Použijte tabulku níže pro mapu cílového jazyka na správné prefix.
Tabulka předpokladů jazyka
| Prefix | Jazyk | Locale | Poslanci |
|---|---|---|---|
a | English | Americký (en- US) | af_, am_ |
b | English | Britské (en- GB) | bf_, bm_ |
d | Němčina | (de- DE) | dm_, df_ |
e | Španělština | (es) | ef_, em_ |
f | Francouzština | (fr- FR) | ff_ |
h | Hindština | (hi) | hf_, hm_ |
i | Italština | (to) | if_, im_ |
j | japonsky | ja) | jf_, jm_ |
p | Portugalština | Brazilské (pt-BR) | pf_, pm_ |
z | Čínština | Mandarinky (zh) | zf_, zm_ |
Všechny hlasy podle jazyka
Anglicko - americké (af_*, am_*)
Žena: af_alloy, af_aoede, af_bella, af_heart (přednastaveno), af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky
Muž: am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa
Angličtina - britština (bf_*, bm_*)
Žena: bf_alice, bf_emma, bf_isabella, bf_lily
Muž: bm_daniel, bm_fable, bm_george, bm_lewis
Španělština (ef_*, em_*)
Žena: ef_dora
Muž: em_alex, em_santa
Francouzština (ff_*)
Žena: ff_siwis
Hindština (hf_*, hm_*)
Žena: hf_alpha, hf_beta
Muž: hm_omega, hm_psi
Italština (if_*, im_*)
Žena: if_sara
Muž: im_nicola
Japonské (jf_*, jm_*)
Žena: jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro
Muž: jm_kumo
Portugalština - Brazilština (pf_*, pm_*)
Žena: pf_dora
Muž: pm_alex, pm_santa
Čínština - mandarínština (zf_*, zm_*)
Žena: zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi
Muž: zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang
Běž. speech kokoro --list-voices k tisku každého hlasu, který je nyní s modelem spojen. Hlasové ID jsou stabilní přes všechny verze - použijte přesný řetězec (např., if_sara) při volání --voice z CLI nebo průjezdu voice: na Swift API.
Architektura
Kokoro používá potrubí 3- stage CoreML. Žádná odběrná smyčka - všechny fáze jsou non-autoregresivní posuvné průsmyky s Swift- side settingem mezi etapami 1 a 2
3- Stavební potrubí
| Fáze | Vzor | Vstup | Výstup |
|---|---|---|---|
| 1. Doba trvání | duration.mlmodelc | Phoneme tokeny + hlasové vkládání + rychlost | Trvání, prosodické funkce, kódování textu |
| — | Nastavení Swift | Trvání + funkce fáze 1 | Sjednocené prosody & amp; textové vlastnosti |
| 2. Prosody | prosody.mlmodelc | Zařízené prosody funkce + styl | F0 (rozteč) + předpovědi hluku |
| 3. Dekodér | decoder_*.mlmodelc | Uspořádaný text + F0 + šum + styl | audio waveform 24 kHz |
Telefonní žetony (Trvání modelu)
Model doby trvání používá číselné vstupní tvary. Vstup je polstrován do nejmenšího kbelíku, který vyhovuje:
| Kýbl | Max. telefony | Použít pouzdro |
|---|---|---|
| p16 | 16 | Krátké fráze |
| p32 | 32 | Krátké věty |
| p64 | 64 | Střední věty |
| p128 | 128 | Dlouhé věty |
Dekodérové knoflíky
Fixed- tvarové dekodéry pro různé maximální délky zvuku (každý rám = 600 vzorků při 24 kHz):
| Kýbl | Maximální rámy | Max. zvuk |
|---|---|---|
decoder_5s | 200 | 5.0s |
decoder_10s | 400 | 10.0s |
decoder_15s | 600 | 15.0s |
Požadavky iOS 18+ / macOS 15+.
Fonemizér
Text je převeden na foneme tokens přes třístupňový ropovod - všechny Apache-2.0 licencované, bez GPL závislostí:
- Vyhledávání slovníku - Americký anglický a britský slovník výslovnosti s heteronymní podporou
- Příznak vyplývající - morfologické rozklad známých sufixů (např. "-ing", "-tion")
- BART G2P - Neurální grafeme- to- phoneme fallback pomocí samostatného modelu enkoder- dekodéru CoreML pro out- of-slovní slova
Vlastní výslovnost
Řádné názvy mimo dodávané slovníky propadají do úrovně 3, kde BART odhaduje od English Pravidla hláskování - takže ne-Anglo jména vyjde špatně (Tatiana se stává tˈitiəniənə). addPronunciations injekce word -> IPA záznamy před úrovní 1:
let tts = try await KokoroTTSModel.fromPretrained()
tts.addPronunciations(["tatiana": "tɑtiˈɑnə"])
Klíče jsou srovnávány s nízkým a musí být jednoduchá slova - text je rozdělen na Whitespace a interpunkce před rozlišením, takže klíč obsahující prostor, pomlčka, nebo apostrof se nikdy podíval nahoru. NPP musí používat symboly z modelu slovní zásoby, vše ostatní je tiše klesl na tokenization. Záznamy platí pouze pro anglickou cestu - zh, ja, it, fr, es, pt, a hi vyberte vyhrazené fonemitéry, které nikdy konzultovat slovníky. Hledání je odemčeno, takže registrujte položky před syntézou začne běžet souběžně na stejném modelu.
Vzorové váhy
| Součást | Velikost | Formát |
|---|---|---|
| Model doby trvání | ~ 39 MB | .mlmodelc |
| Prosody model | ~ 17 MB | .mlmodelc |
| Dekodérové modely (3 kbelíky) | ~ 107 MB každý | .mlmodelc |
| Hlasové vložení (54 hlasů) | ~ 0.3 MB | JSON (256- dim Float32) |
| G2P enkodér + dekodér | - 1,5 MB | .mlmodelc |
| Slovníky + vocab | ~ 6 MB | JSON |
| Celkem (dekodér 1) | ~ 170 MB |
Výkonnost
| Metrické | Hodnota |
|---|---|
| Parametry | 82M |
| Výstupní backend | CoreML (Neural Engine) |
| RTFx | ~ 0.7 (rychlejší než reálný čas) |
| Výstupní vzorkovací rychlost | 24 kHz |
| Váhové paměti | ~ 170 MB (1 dekodér kbelík) |
Na rozdíl od Qwen3-TTS a CosyVoice3, které generují tokens step- by- step, Kokoro používá potrubí 3- etapa bez výběrového smyčky. Všechny fáze jsou určující průchody vpřed.
Použití CLI
speech kokoro "Hello, world!" --voice af_heart --output hello.wav
Možnosti
| Možnost | Výchozí | Popis |
|---|---|---|
<text> | Text pro syntetizaci | |
--voice | af_heart | Hlasové přednastavené jméno |
--language | en | Jazykový kód: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Výstupní cesta k souboru WAV |
--list-voices | Seznam všech dostupných hlasů a výstupů | |
--model, -m | Model HuggingFace ID |
Příklady
# English with default voice
speech kokoro "Hello, how are you today?" --output hello.wav
# French
speech kokoro "Bonjour le monde" --voice ff_siwis --language fr --output bonjour.wav
# Japanese
speech kokoro "こんにちは世界" --voice jf_alpha --language ja --output konnichiwa.wav
# List all 54 voices
speech kokoro --list-voices
Swift API
import KokoroTTS
import AudioCommon
let tts = try await KokoroTTSModel.fromPretrained()
// Downloads ~170 MB on first run
let audio = try tts.synthesize(text: "Hello world", voice: "af_heart")
// audio: [Float] — 24 kHz mono PCM
try WAVWriter.write(samples: audio, sampleRate: 24000, to: outputURL)
Vypočítejte přejetí jednotky
fromPretrained(computeUnits:) vybere, který hardware běží hlavním modelem CoreML. Výchozí (.all) umožňuje Core ML preferovat Neural Engine, což je nejrychlejší cesta na každém podporovaném zařízení. .cpuAndGPU obejít ANE jako nouzový bod na platformách, kde ANE kompilátor produkuje nesprávný výstup pro tento model.
import CoreML
import KokoroTTS
// Default: ANE preferred
let tts = try await KokoroTTSModel.fromPretrained()
// Fallback: bypass the Neural Engine
let tts = try await KokoroTTSModel.fromPretrained(computeUnits: .cpuAndGPU)
Kdy použít Kokoro
| Použít pouzdro | Doporučené TTS |
|---|---|
| iOS aplikace, lehká, beray- efektivní | Kokoro (CoreML, 82M params, ~ 170 MB) |
| Nejvyšší kvalita, streaming, klonování hlasu | Qwen3-TTS (MLX, 600M params, ~ 1.7 GB) |
| Vícejazyčné streaming, 9 jazyků | CosyVoice3 (MLX, 500M params, ~ 1.2 GB) |
| Full- duplex hovořil dialog | PersonaPlex (MLX, 7B params, ~ 5.5 GB) |
Licence
- Vzorové závaží: Apache-2.0 (hexgrad / Kokoro-82M)
- Konverze CoreML: Apache-2.0 (aufklarer / Kokoro-82M-CoreML)
- Slovníky a G2P: Apache-2.0
Qwen3-ASR speech-to-text · Parakeet TDT speech-to-text · CosyVoice3 hlasové klonování