Kokoro TTS — Android
Kokoro-82M est un modèle de synthèse vocale léger et non-autorégressif s'exécutant sur Android via ONNX Runtime. Il produit une parole naturelle à 24 kHz avec 50 voix préréglées dans 7 langues.
Langues prises en charge
| Langue | Code | Exemples de voix |
|---|---|---|
| Anglais (États-Unis) | en | af_heart, am_adam, af_sky |
| Anglais (Royaume-Uni) | en | bf_emma, bm_george |
| Espagnol | es | ef_dora |
| Français | fr | ff_siwis |
| Hindi | hi | hf_alpha, hm_omega |
| Italien | it | if_sara |
| Japonais | ja | jf_alpha, jm_omega |
| Portugais | pt | pf_dora |
| Chinois | zh | zf_xiaobei, zm_yunjian |
50 voix préréglées au total. Convention de nommage des voix : [language][gender]_[name] — par exemple, af_heart = American Female « Heart ».
Fichiers du modèle
| Fichier | Taille |
|---|---|
kokoro-model-int8.onnx | ~89 Mo |
voices.bin | Embeddings des voix |
| Dictionnaires de phonèmes | Données de prononciation spécifiques à chaque langue |
HuggingFace : aufklarer/Kokoro-82M-ONNX
Performance
| Métrique | Valeur |
|---|---|
| Paramètres | 82M |
| Backend d'inférence | ONNX Runtime |
| Taux d'échantillonnage en sortie | 24 kHz |
Phonémiseur
Le texte est converti en tokens de phonèmes à l'aide d'un phonémiseur basé dictionnaire avec support par langue. L'implémentation Android inclut des phonémiseurs pour l'anglais, le français, l'espagnol, l'italien, le portugais, l'hindi, le japonais et le chinois.
Intégration au pipeline
Sur Android, Kokoro TTS fait partie du SpeechPipeline. Après que STT transcrit la parole, le texte est phonémisé et synthétisé à nouveau en audio. Le pipeline gère automatiquement le flux complet VAD → STT → TTS.
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) // float32 mono 16 kHz
Code source : github.com/soniqo/speech-android