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

LangueCodeExemples de voix
Anglais (États-Unis)enaf_heart, am_adam, af_sky
Anglais (Royaume-Uni)enbf_emma, bm_george
Espagnolesef_dora
Françaisfrff_siwis
Hindihihf_alpha, hm_omega
Italienitif_sara
Japonaisjajf_alpha, jm_omega
Portugaisptpf_dora
Chinoiszhzf_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

FichierTaille
kokoro-model-int8.onnx~89 Mo
voices.binEmbeddings des voix
Dictionnaires de phonèmesDonnées de prononciation spécifiques à chaque langue

HuggingFace : aufklarer/Kokoro-82M-ONNX

Performance

MétriqueValeur
Paramètres82M
Backend d'inférenceONNX Runtime
Taux d'échantillonnage en sortie24 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