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.

iOS- připraven

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

JazykKódPříklad Hlasů
Anglicky (US)naf _ heart, am _ adam, af _ sky
Anglicky (UK)nbf _ emma, bm _ george
Španělštinaeef _ dora
Francouzštinafrff _ siwis
HindštinaAhoj.hf _ alfa, hm _ omega
ItalštinaToif _ sara
japonskyjajf _ alfa, jm _ kumo
Portugalštinaptpf _ dora
Čínštinazhzf _ xiaobei, zm _ yunjian
Němčinadedm _ 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.

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.wav

Nejlepší 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_heartAmerická fena
am_puckAmerický muž
bf_aliceBritská žena
bm_georgeBritský muž
ef_doraŠpanělská žena
em_alexŠpanělský muž
ff_siwisFrancouzská fena
hf_alphaHindština
hm_omegaHindština
if_saraItalská fena
im_nicolaItalský samec
jf_alphaJaponská fena
jm_kumojaponský samec
pf_doraPortugalská fena
pm_alexPortugalský samec
zf_xiaobeiMandarínská samice
zm_yunjianmandarínština

Odkaz 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

PrefixJazykLocalePoslanci
aEnglishAmerický (en- US)af_, am_
bEnglishBritské (en- GB)bf_, bm_
dNěmčina(de- DE)dm_, df_
eŠpanělština(es)ef_, em_
fFrancouzština(fr- FR)ff_
hHindština(hi)hf_, hm_
iItalština(to)if_, im_
jjaponskyja)jf_, jm_
pPortugalštinaBrazilské (pt-BR)pf_, pm_
zČínštinaMandarinky (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

Seznam hlasů v běhu

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ázeVzorVstupVýstup
1. Doba trváníduration.mlmodelcPhoneme tokeny + hlasové vkládání + rychlostTrvání, prosodické funkce, kódování textu
—Nastavení SwiftTrvání + funkce fáze 1Sjednocené prosody & amp; textové vlastnosti
2. Prosodyprosody.mlmodelcZařízené prosody funkce + stylF0 (rozteč) + předpovědi hluku
3. Dekodérdecoder_*.mlmodelcUspořádaný text + F0 + šum + stylaudio 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ýblMax. telefonyPoužít pouzdro
p1616Krátké fráze
p3232Krátké věty
p6464Střední věty
p128128Dlouhé 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ýblMaximální rámyMax. zvuk
decoder_5s2005.0s
decoder_10s40010.0s
decoder_15s60015.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í:

  1. Vyhledávání slovníku - Americký anglický a britský slovník výslovnosti s heteronymní podporou
  2. Příznak vyplývající - morfologické rozklad známých sufixů (např. "-ing", "-tion")
  3. 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částVelikostFormá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 MBJSON (256- dim Float32)
G2P enkodér + dekodér- 1,5 MB.mlmodelc
Slovníky + vocab~ 6 MBJSON
Celkem (dekodér 1)~ 170 MB

Výkonnost

MetrickéHodnota
Parametry82M
Výstupní backendCoreML (Neural Engine)
RTFx~ 0.7 (rychlejší než reálný čas)
Výstupní vzorkovací rychlost24 kHz
Váhové paměti~ 170 MB (1 dekodér kbelík)
Non- Autoregresivní

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žnostVýchozíPopis
<text>Text pro syntetizaci
--voiceaf_heartHlasové přednastavené jméno
--languageenJazykový kód: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavVýstupní cesta k souboru WAV
--list-voicesSeznam všech dostupných hlasů a výstupů
--model, -mModel 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 pouzdroDoporučené TTS
iOS aplikace, lehká, beray- efektivníKokoro (CoreML, 82M params, ~ 170 MB)
Nejvyšší kvalita, streaming, klonování hlasuQwen3-TTS (MLX, 600M params, ~ 1.7 GB)
Vícejazyčné streaming, 9 jazykůCosyVoice3 (MLX, 500M params, ~ 1.2 GB)
Full- duplex hovořil dialogPersonaPlex (MLX, 7B params, ~ 5.5 GB)

Licence