תרגום מכונה · המקור באנגלית

Kokoro TTS קולות ודגימות

Kokoro-82M הוא קל משקל, לא-אוטומטי של טקסט-to-speech מבוסס על StyleTTS 2 עם vor ISTFTNet. הוא פועל לחלוטין על דגם Neural Engine באמצעות CoreML, ומייצר דיבור טבעי 24 מטקסט במעבר יחיד קדימה.

iOS-Ready

Kokoro-82M מיועד ל- On-device iOS פריסה. 82Mפרמטרים (-)80 MB עם 1 דלי, INT8זה מתאים בנוחות על iPhone ו- iPad. CoreML רץ על Neural Engineלעזוב את GPU חינם למשימות אחרות.

שפות תמיכה

שפהקוד קודקודדוגמה: Voices
אנגלית (US)en enAf_heart, am_adam, af_sky
אנגלית (בריטניה)en enbf_emma, bm_george
ספרדיתesef_dora
צרפתית צרפתית צרפתיתפרוג'ff_siwis
הינדהיי הייhf_alpha, hm_omega
איטלקי איטלקי איטלקי איטלקיזהאם_sara
יפן יפניתג'Jf_alpha, Jm_kumo
פורטוגל פורטוגל פורטוגלptpf_dora
סין הסיניתז'אןZf_xiaobei, zm_yunjian
גרמניה גרמניתדה דה דהdm_martin, df_victoria (חבילות חשבוניות)

54 קולות מוקדמים בסך הכל. Voice Name Convention: [language_prefix][gender]_[name] – למשל, af_heart=נקבה אמריקאית "Heart", if_sara= Italianנקבה "Sara".

קולות גרמניים

גרמניה שירתה על ידי שתי חבילות קול יחיד נפרדות. kikiri-ts קנסות של Kokoro-82M עם אחד 313 MB CoreML מודל לקול, ולא קולות של החבילה הרב לשונית. language: "de"מספרים, תאריכים, פעמים, מטבע וקיצורים מוטבעים במכשיר, ומילים פותרות באמצעות מילון 50k-word German Dictionary.

מודל זיהויקול קול קול
aufklarer/Kokoro-82M-German-Martin-CoreMLdm_martin (נקבה)
aufklarer/Kokoro-82M-German-Victoria-CoreMLdf_victoria (נקבה)
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

דגימות קוליות

קצר MP3 קליפים שנוצרו עם קליפים מקומיים speech-swift CLI.שולחן קוד הקול המלא נשאר מתחת לשימוש copy-paste.

af_heart נשים
am_puck American Male
bf_alice נשים בריטיות
bm_george זכר בריטי
ef_dora נשים ספרדיות
em_alex ספרדית זכר
ff_siwis נשים צרפתיות
hf_alpha Hindiנקבה
hm_omega Hindi זכר
if_sara נשים איטלקיות
im_nicola איטלקית זכר
jf_alpha נשים יפניות
jm_kumo הזכר היפני
pf_dora פורטוגזית נקבה
pm_alex פורטוגזה זכר
zf_xiaobei Mandarin נקבה
zm_yunjian מנדין זכר

קודים

כל מזהה קולי Kokoro עוקב אחר אותו דפוס: אחד-על שפה prefixOne-letter קוד מגדרילאחר מכן, הדגש והשם הקולי, השתמשו בטבלה למטה כדי למפות שפת יעד לקידומת הנכונה.

טבלה טרום תיקון שפה

תיקוןשפהמקומיהמינים
aאנגלית אנגליתארה"ב (en-US)af_, am_
bאנגלית אנגליתבריטניה (en-GB)bf_, bm_
dגרמניה גרמנית(de-DE)dm_, df_
eספרדית(es)ef_, em_
fצרפתית צרפתית צרפתית(fr-FR)ff_
hהינד(ג)hf_, hm_
iאיטלקי איטלקי איטלקי איטלקי(it)if_, im_
jיפן יפנית(ג')jf_, jm_
pפורטוגל פורטוגל פורטוגלברזיל (pt-BR)pf_, pm_
zסין הסיניתמנדרינה (ז')zf_, zm_

כל הקולות באמצעות שפה

אנגלית - American (af_*, am_*)

נשים: af_alloy, af_aoede, af_bella, af_heart (הופנה מהדף) af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky
זכר: am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa

אנגלית: British (bf_*, bm_*)

נשים: bf_alice, bf_emma, bf_isabella, bf_lily
זכר: bm_daniel, bm_fable, bm_george, bm_lewis

ספרדית (ef_*, em_*)

Feel: ef_dora
Male:em_alex em_santa

צרפתית (צרפתית)ff_*)

Feel: ff_siwis

Hindi (hf_*, hm_*

נשים: hf_alpha, hf_beta
זכר: hm_omega, hm_psi

איטלקית (if_*, im_*

נשים: if_sara
זכר: im_nicola

יפני (jf_*, jm_*)

נשים: jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro
זכר: jm_kumo

פורטוגזית - ברזיל (pf_*, pm_*)

נשים: pf_dora
זכר: pm_alex, pm_santa

סינית - מנדרינה (zf_*, zm_*)

נשים: zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi
זכר: zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang

קולות בזמן ריצה

Run Run speech kokoro --list-voices כדי להדפיס את כל קול שנארז כעת עם המודל.זהות קוליות יציבות על פני מהדורות - השתמש במחרוזת המדויקת (למשל, if_sara(כאשר קוראים) --voice מתוך CLI או עובר voice: Swift API.

ארכיטקטורה

Kokoro משתמשת 3 שלבים CoreMLצנרת ללא לולאה דגימה - כל השלבים הם מעברים לא-אוטומטיים עם צעד יישור של Swift-side בין שלבים 1 ל 2.

3 Stage Pipeline

שלב השלבמודל מודלInputOutput
1. Duration 1.duration.mlmodelcאוזניות טלפון + קול הטמיע + מהירות +משך, תכונות פרוזודיות, טקסט קידוד
—Swift היערכותמשך + שלב 1 תכונותAligned Prosody & תכונות טקסט
2. Prosodyprosody.mlmodelcתכונות פרוזודיות אלגנטיות + סגנוןF0 (pitch) + תחזיות רעש
3.Dcoderdecoder_*.mlmodelcטקסט מופץ + F0 + רעש + סגנון +24 kHz אודיו גלפור

Phoneme Buckets (Duration Model)

מודל משך הזמן משתמש בצורות קלט מוטבעות. Input מוצמד לדלי הקטן ביותר המתאים:

BucketMax Phonemesשימוש במקרה
p1616ביטויים קצרים
p3232משפטים קצרים
p6464משפטים בינוניים
p128128משפטים ארוכים

Decoder Buckets

מודלים קבועים-shape decoder עבור אורך אודיו מקסימלי שונה (כל מסגרת = 600 דגימות ב 24 kHz):

Bucketמקס מסגרותמקס אודיו
decoder_5s2005.0
decoder_10s40010.0
decoder_15s60015.0s

דרישות iOS 18+ / macOS 15+.

טלפון

טקסט מומרת אסימוני טלפון באמצעות צינור משולש - כל Apache-2.0

  1. Dictionary Lookup - ארה"ב אנגלית ובריטי אנגלית דיגוריות עם תמיכה heteronym
  2. Suffix נובעת מ- - decomposition Morphological for known suffixes (למשל, "שינג", "tion")
  3. BART G2P - Neural גרפיeme-to-phoneme Fallback באמצעות CoreML מודל קודר עבור מילים מחוץ ל-vocabulary.

המונחים: Custom Pronunciations

נקודות זכות מחוץ לדיגוריות המשלוחים הנפלטים אל השכבה 3, שם BART מנחשת אנגלית אנגלית חוקי כישוף – כל כך לא-אנגלוב שמות טועיםTatiana הופכת tˈitiəniənə). addPronunciations Injects word -> IPA תגיות: tier 1:

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

המפתחות תואמים את עצמם וחייבים להיות מילים בודדות - טקסט מחולק על המרחב הלבן והטיהור לפני ההחלטה, כך מפתח המכיל חלל, הפנו, או apostrophe הוא מעולם לא מסתכל למעלה. IPA חייב להשתמש סמלים של אוצר המילים מודל; כל דבר אחר נפל בשקט על אסימוניזציה. zh, ja, it, fr, es, ptו hi בחר טלפונים ייעודיים שמעולם לא להתייעץ עם הדיפטרונים.המראה הוא נעול, כך לרשום ערכים לפני סינתזה מתחיל לרוץ במקביל על אותו מודל.

משקל מודל

המונחיםגודלפורמט Format
מודל-39 MBML Modelc
מודל Prosody17 MBML Modelc
דגמי Decoder (3 דליים)107 MB כל אחדML Modelc
קול הטמיעו את קולם של 54 קולות)-0.3 MBJSON (256-dim Float32)
G2P encoder + decoder1.5 MBML Modelc
דיסלקציה + vocab6 MBג'ייסון
Total (1coder)170 MB

ביצועי ביצועים

מסובךערך
המונחים:82M
המונחים: backendCoreML (Neural Engine)
המונחים: RTFx0.7 (זמן מהיר יותר מאשר בזמן אמת)
המונחים: rate24 kHz
זיכרון משקל170 MB (1 דלי קודר)
לא אוטומטי

שלא כמו Qwen3-TTS ו CosyVoice3 שיוצרים אסימונים בשלב, Kokoro משתמשת צינור 3-שלב ללא לולאה דגימה.כל השלבים הם מעברים מכריעים קדימה.

CLI Usage

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

אפשרויות אפשרויות

אפשרותDefaultתיאור תיאור
<text>טקסט לסנתז
--voiceaf_heartשם מקורי Voice preset
--languageenקוד שפה: en, es, fr, Hi, It, Ja, pt, zh, ko, de, de
--output, -okokoro_output.wavOutput WAV נתיב קובץ
--list-voicesרשימה של כל הקולות הזמינים ויציאה
--model, -mHuggingFace מודל מזהה

דוגמאות

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

יחידת ההסגרה Override

fromPretrained(computeUnits:) בחירת החומרה מפעילה את מודל CoreML הראשי..allמאפשר Core ML להעדיף את Neural Engine, המהווה את הנתיב המהיר ביותר בכל מכשיר נתמך. .cpuAndGPU כדי לעקוף את ANE כנפילה על פלטפורמות שבו ה- ANE יוצר פלט לא נכון עבור מודל זה.

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)

מתי להשתמש Kokoro

שימוש במקרהTTS
iOS אפליקציה, משקל, יעילות סוללהKokoro CoreML 82M params, 170 MB)
האיכות הגבוהה ביותר, הזרמת קול, שיבוט קולQwen3-TTS MLX, 600M params, -1.7 GB)
סטרימינג רב לשוני, 9 שפותCosyVoice3 (MLX, 500M params - 1.2 GB)
דיאלוג דיבור מלא-דופלקסPersonaPlex (MLX, 7B params -5.5 GB)

רישיון רישיון רישיון