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
| Sprache | Code | Beispielstimmen |
|---|---|---|
| Englisch (US) | en | af_heart, am_adam, af_sky |
| Englisch (UK) | en | bf_emma, bm_george |
| Spanisch | es | ef_dora |
| Französisch | fr | ff_siwis |
| Hindi | hi | hf_alpha, hm_omega |
| Italienisch | it | if_sara |
| Japanisch | ja | jf_alpha, jm_omega |
| Portugiesisch | pt | pf_dora |
| Chinesisch | zh | zf_xiaobei, zm_yunjian |
| Deutsch | de | dm_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.
| Paket | Stimme | Download |
|---|---|---|
KokoroPack.GERMAN_MARTIN | dm_martin (männlich) | soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB) |
KokoroPack.GERMAN_VICTORIA | df_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
| Datei | Größe |
|---|---|
kokoro-e2e.onnx + .onnx.data | ~330 MB |
voices.bin | Stimm-Embeddings |
| Phonem-Wörterbücher | Sprachspezifische Aussprachedaten |
HuggingFace: soniqo/Kokoro-82M-ONNX
Leistung
| Metrik | Wert |
|---|---|
| Parameter | 82M |
| Inferenz-Backend | ONNX Runtime |
| Ausgabe-Abtastrate | 24 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