Awtomatikong salin · Orihinal sa Ingles

Kokoro TTS mga tinig at sampol

Ang Kokoro-82M ay isang magaang, non-autoregressive text-to-speech model batay sa StyleTTS 2 na may isang ISTTNet na vocoder. Ito ay buong tumatakbo sa Neural Engine sa pamamagitan ng CoreML, na gumagawa ng natural na 24 kHz speech mula sa text input sa isang solong pasulong.

IOS-Ready

Kokoro-82M ay dinisenyo para sa on-device iOS Paglalagay. 82 Mga M parameter (imperyo: אייייליייוייי)80 MB kasama ang 1 timba, INT8), ito ay nakaakma nang maginhawa sa iPhone at iPad. CoreML ang tanong Neural Engine, umaalis GPU libre para sa ibang atas.

Suportadong mga Wika

Wika Kodigo Halimbawa ng mga Tinig
Tagalog (US)sa enaf_heart, am_adam, af_sky
Tagalog (UK)sa enbf_emma, bm_george
Kastilaesef_dora
Pranses bart mga ff_siwi
HindiHihf_alpha, hm_omega
Italyano ang tanong kung_sara
Haponesjajf_alpha, jm_kumo
Portugesptpf_dora
Tsinozhzf_xiaobei, zm_yunjian
Alemandedm_martin, df_victoria (mga pakete ng resibo)

54 preset voices overall.[Talaksan: [language_prefix][gender]_[name] — e.g., af_heart = Amerikanong Babaeng "Heart", if_sara = Italian Female "Sara".

Mga tinig ng Aleman

Ang Aleman ay pinagsisilbihan ng dalawang magkahiwalay na solong-voice na bungkos, mga kiikiri-tt Mapinong-tunes ng Kokoro-82M na may isang 313 MB CoreML modelo kada boses, sa halip na sa pamamagitan ng mga tinig ng multilingwal na bungkos. sunungan ang isa sa pamamagitan ng modelong ID at synthestic na may model ID language: "de". Mga numero, petsa, panahon, salapi at mga daglat ay binabaybay sa aparato, at ang mga salita ay nailalapat sa pamamagitan ng nakabigkis na 50k-word na diksyunaryong Aleman.

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

Mga halimbawa ng boses na may kulay

Maikling MP3 clips na ginawa sa lokal na speech-swift CLI. Ang buong voice-code table ay nananatili sa ibaba para sa copy-passe na gamit.

af_heart Amerikanong babae
am_puck Amerikanong lalaki
bf_alice Babaing Britano
bm_george Britanong lalaki
ef_dora Kastilang babae
em_alex Kastilang lalaki
ff_siwis Babaing Pranses
hf_alphaHindi babae
hm_omegaHindi lalaki
if_sara Babaing Italyano
im_nicola Babaing Italyano
jf_alpha Babaing Hapones
jm_kumo Hapones na lalaki
pf_dora Babaing Portuges
pm_alex Lalaking Portuges
zf_xiaobei Babaing Mandarin
zm_yunjian Taong Mandarin

Binabanggit ng mga Kodigo ng Tinig

Ang bawat Kokoro voice ID ay sumusunod sa parehong pattern: isang one-letter panlapi sa wika, isang one-letter kodigo ng kasarian, pagkatapos ay isang diin at ang pangalan ng boses. Gamitin ang mesa sa ibaba upang i-reserba ang isang puntiryang wika sa tamang unlapi.

Banlapi sa wika

Panlapi WikaLocale Mga Tagapag - alaga ng Hayop
aTagalog Amerikano (en-US)af_, am_
bTagalog British (en-GB)bf_, bm_
d Aleman(de-DE)dm_, df_
e Kastila( Mga)ef_, em_
f Pranses(fr-FR)ff_
hHindi(hi)hf_, hm_
i Italyano(ito)if_, im_
j Hapones(ja)jf_, jm_
p PortugesBrazilian (pt-BR)pf_, pm_
z TsinoMandarin (zh)zf_, zm_

Lahat ng tinig ay sa pamamagitan ng wika

Ingles — American (af_*, am_*

Babae: af_alloy, af_aoede, af_bella, af_heart (Paninirahan), af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky
Lalaki: am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa

Ingles — British (bf_*, bm_*

Babae: bf_alice, bf_emma, bf_isabella, bf_lily
Lalaki: bm_daniel, bm_fable, bm_george, bm_lewis

Espanyol (ef_*, em_*

Babae: ef_dora
Lalaki: em_alex, em_santa

Pranses (ff_*)

Babae: ff_siwis

Hindi (hf_*, hm_*

Babae: hf_alpha, hf_beta
Lalaki: hm_omega, hm_psi

Italyano (if_*, im_*

Babae: if_sara
Lalaki: im_nicola

Hapones (jf_*, jm_*

Babae: jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro
Lalaki: jm_kumo

Portuges — Brazilian (pf_*, pm_*

Babae: pf_dora
Lalaki: pm_alex, pm_santa

Tsino — Mandarin (zf_*, zm_*

Babae: zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi
Lalaki: zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang

Itala ang mga boses sa oras ng pagtakbo

Takbo speech kokoro --list-voices Para maimprenta ang bawat boses na kasalukuyang may kasamang modelo. Ang mga Voice ID ay matatag sa ibayo ng mga release — gamitin ang eksaktong kuwerdas (hal., bre. if_sara) kapag tumatawag --voice mula sa CLI o paglipas voice: sa Swift API.

Arkitektura

Kokoro ay gumagamit ng 3-stage CoreML pipeline. Walang mga sampol na loop – lahat ng mga yugto ay non-autoregressive forward passes na may swift-side na hakbang ng pag-aayos sa pagitan ng mga yugto 1 at 2.

3-Stage Pipeline

Bagsag HuwaranIlagayIlabas
1.duration.mlmodelcPhoneme tokens + voice embending + bilis Mga Duration, prosody features, text composition
—Swift kahilera Mga periodion + stage 1 tampokAligned prosody & mga tampok ng teksto
2.prosody.mlmodelc Ang aligned prosody ay nagtatampok ng + estiloF0 (pitch) + mga prediksiyong ingay
3. Decoderdecoder_*.mlmodelcAligned text + F0 + gahol + estilo24 kHz audio waveform

Phoneme Buckets (Pangalawang Modelo)

Ang modelong ito ay gumagamit ng de - listahang mga input na hugis, at ang mga ito ay may sapin hanggang sa pinakamaliit na timba na angkop:

BucketMax Phonemes Gamitin ang Kaso
p1616 Maikling mga parirala
p3232 Maikling mga pangungusap
p6464 Mga pangungusap na pangmedium
p128128 Mahabang sentensiya

Decoder Buckets

Nakatakdang-shape decoder na mga modelo para sa iba't ibang sukdulang mga haba ng audio (bawat balangkas = 600 sampol sa 24 kHz):

BucketMax FramesMax Audio
decoder_5s2005.0s
decoder_10s40010.0s
decoder_15s60015.0s

Hinihiling ng iOS 18+ / macOS 15+.

" Phonemizer "

Ang teksto ay ginagawang phoneme tokens sa pamamagitan ng isang tatlong-tier pipeline — lahat ng Apache-2.0 lisensiyado, walang GPL dependencies:

  1. Pagtingin sa Dictionary — Mga diksyunaryong pagbigkas sa Ingles at Britanya na may suporta ng heteroniyam
  2. Paglitaw ng Suffix — Morphological deficit para sa mga kilalang hulapi (hal.g., "-ing", "-ition")
  3. ART G2P — Neural grapheme-to-phoneme fallback gamit ang hiwalay na CoreML regulator-decoder model para sa mga out-of-vocabulary na salita

Mga Pagtuligsa sa Kaugalian

Ang angkop na mga pangngalan sa labas ng ipinadalang mga diksyunaryo ay pumapatak sa mga andana 3, kung saan ang mga hula ng ART mula sa Tagalog Mga tuntunin sa pagbaybay — kaya ang mga pangalan na hindi-Anglo ay lumalabas na mali (Tatiana ay nagiging tˈitiəniənə). addPronunciations Mga turo word -> IPA Mga entries sa unahan ng andana 1:

let tts = try await KokoroTTSModel.fromPretrained()
tts.addPronunciations(["tatiana": "tɑtiˈɑnə"])

Ang mga susi ay pinagtutugmang mas mababang sukat at dapat na isahang mga salita — ang teksto ay nahahati sa puwang at bantas bago ang resolusyon, kaya ang isang susi na naglalaman ng isang espasyo, hyphen, o apotrophe ay hindi kailanman tinitingnan. Ang IPA ay dapat gumamit ng mga simbolo mula sa modelong talasalitaan; anumang bagay ay tahimik na ibinababa sa pamamagitan ng tokenisasyon. zh, ja, it, fr, es, pt, at hi Pumili ng dedikadong mga phonemizer na hindi kailanman kumokonsulta sa mga diksyunaryo, kaya irehistro muna ang mga entry bago magsimulang tumakbo nang sabay - sabay ang synthesis sa iisang modelo.

Modelong mga Timbang

Nakikipagtulungan LakiPahiwatig
Ang modelo ng panahon°39 MB.mlmodelc
Prosody model°17 MB.mlmodelc
Decoder models (3 timba) Ang bawat isa ay °107 MB.mlmodelc
Nag - iimbita ang boses (54 na tinig)°0.3 MBJSON (256-dim Float32)
G2P EXPOr + decoder°1.5 MB.mlmodelc
Mga Diksiyonaryo + vocab°6 MBHIMALA
Kabuuan (1 decoder)EX170 MB

Pag - aasikaso

Masalimuot Halaga
Mga Parameter82M
Nasusuportahan ang kawalang - galangCoreML (Neural Engine)
Kawalang - Katarungan RTFx°0.7 (mas mabilis kaysa sa tunay-panahon)
Bilis ng sampol sa output24 kHz
Mabigat na memorya°170 MB (1 decoder balde)
Hindi-Autoregresibo

Hindi tulad ng Qwen3-TTS at CosyVoice3 na lumilikha ng mga tokens step-by-steep, ang Kokoro ay gumagamit ng isang 3-stage pipeline na walang mga spectick loop. Ang lahat ng mga yugto ay deterministic advances.

Paggamit ng CLI

speech kokoro "Hello, world!" --voice af_heart --output hello.wav

Mga Mapagpipilian

Mapagpipilian Pagkawasak Paglalarawan
<text> Tekstong Pang - ebolusyon
--voiceaf_heart Pangalan ng Tinig na patiunang itinakda
--languageen kodigo ng wika: en, es, fr, hi, ito, ja, pt, zh, ko, de
--output, -okokoro_output.wavIlabas na WAV file path
--list-voicesIlista ang lahat ng magagamit na tinig at labasan
--model, -mHuggingFace model ID

Mga Halimbawa

# 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)

Kompletong Paglaganap ng Unit

fromPretrained(computeUnits:) Mga pagpipilian kung aling hardware ang nagpapatakbo ng pangunahing modelong CoreML. Ang default (.all) mga hinahayaan Core ML mas gusto ang Neural Engine, na siyang pinakamabilis na daanan sa bawat suportadong aparato. .cpuAndGPU upang maiwasan ang ANE bilang isang fallback sa mga plataporma kung saan ang ANET Treatler ay gumagawa ng maling output para sa modelong ito.

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)

Kung Kailan Gagamitin ang Kokoro

Gamitin ang Kaso Inirerekomendang TTS
iOS app, lightive, battle-fictKokoro (CoreML, 82M params, °170 MB)
Ang pinakamataas na kalidad, dumadaloy, voice cloningQwen3-TTS (MLX, 600M params, °1.7 GB)
Pagdagsa ng mga wika, 9 na wikaCosyVoice3 (MLX, 500M params, °1.2 GB)
Buong-duplex na pag-uusapPersonaPlex (MLX, 7B params, °5.5 GB)

Lisensiya