Kokoro TTS — Android

Kokoro-82M ist ein leichtgewichtiges, nicht-autoregressives Text-zu-Sprache-Modell, das auf Android über ONNX Runtime läuft. Es erzeugt natürliche 24-kHz-Sprache mit 50 voreingestellten Stimmen in 8 Sprachen.

Unterstützte Sprachen

SpracheCodeBeispielstimmen
Englisch (US)enaf_heart, am_adam, af_sky
Englisch (UK)enbf_emma, bm_george
Spanischesef_dora
Französischfrff_siwis
Hindihihf_alpha, hm_omega
Italienischitif_sara
Japanischjajf_alpha, jm_omega
Portugiesischptpf_dora
Chinesischzhzf_xiaobei, zm_yunjian
Deutschdedm_martin, df_victoria (Stimmpakete)

50 voreingestellte Stimmen insgesamt. Benennungskonvention für Stimmen: [language][gender]_[name] — z. B. af_heart = American Female "Heart".

Deutsche Stimmpakete

Deutsch ist keine Stimme des obigen mehrsprachigen Bundles: Die beiden deutschen Stimmen sind Feinabstimmungen von Kokoro-82M durch kikiri-tts, jeweils ein eigener 162-MB-Gewichtssatz, der nur mit deutschen Phonemen trainiert wurde. Wählen Sie beim Download eines per KokoroPack und synthetisieren Sie mit language = "de". Jedes Paket hat seinen eigenen Cache, sodass Englisch und Deutsch nebeneinander installiert bleiben.

PaketStimmeDownload
KokoroPack.GERMAN_MARTINdm_martin (männlich)soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB)
KokoroPack.GERMAN_VICTORIAdf_victoria (weiblich)soniqo/Kokoro-82M-German-Victoria-ONNX (~170 MB)
val modelDir = ModelManager.ensureTtsModels(
    context,
    ttsModel = TtsModel.KOKORO_SHORT_TURN,
    kokoroPack = KokoroPack.GERMAN_MARTIN, // or GERMAN_VICTORIA
)
val tts = SpeechSynthesizer(SpeechSynthesizerConfig(modelDir = modelDir))
val audio = tts.synthesize("Am 3. Oktober um 18:30 Uhr kostet es 12,80 €.", "de")

Zahlen, Ordinalzahlen, Daten, Uhrzeiten, Geldbeträge, Einheiten und gängige Abkürzungen werden auf dem Gerät ausgeschrieben; Wörter stammen aus einem deutschen Wörterbuch mit 50k Einträgen, ergänzt um Flexion, Komposita und Regeln. Die System-TTS-Engine (SpeechTextToSpeechService) bietet die Stimme Martin als de-DE neben en-US an.

Modell-Dateien

DateiGröße
kokoro-e2e.onnx + .onnx.data~330 MB
voices.binStimm-Embeddings
Phonem-WörterbücherSprachspezifische Aussprachedaten

HuggingFace: soniqo/Kokoro-82M-ONNX

Leistung

MetrikWert
Parameter82M
Inferenz-BackendONNX Runtime
Ausgabe-Abtastrate24 kHz

Phonemizer

Text wird über einen wörterbuchbasierten Phonemizer mit sprachspezifischer Unterstützung in Phonem-Tokens umgewandelt. Die Android-Implementierung enthält Phonemizer für Englisch, Französisch, Spanisch, Italienisch, Portugiesisch, Hindi, Japanisch und Chinesisch.

Pipeline-Integration

Auf Android ist Kokoro TTS Teil der SpeechPipeline. Nachdem STT Sprache transkribiert hat, wird der Text phonemisiert und wieder zu Audio synthetisiert. Die Pipeline steuert den vollständigen VAD → STT → TTS-Ablauf automatisch.

val modelDir = ModelManager.ensureModels(context)
val pipeline = SpeechPipeline(SpeechConfig(modelDir = modelDir))
pipeline.events.collect { event ->
    when (event) {
        is SpeechEvent.TranscriptionCompleted -> println(event.text)
        else -> {}
    }
}
pipeline.start()
pipeline.pushAudio(samples) // 16 kHz Mono float32

Quellcode: github.com/soniqo/speech-android