Traduzione automatica · Originale inglese
Kokoro TTS — Android
Kokoro-82M è un modello di testo-to-speech leggero e non autoregressivo che esegue su Android via ONNX Runtime. Produce un discorso naturale 24 kHz con 50 voci preimpostate in 8 lingue.
Lingue supportate
| Lingua | Codice | Esempio Voci |
|---|---|---|
| Inglese (USA) | E' una cosa da fare. | af_heart, am_adam, af_sky |
| Inglese (Regno Unito) | E' una cosa da fare. | bf_emma, bm_george |
| Spagnolo | e) | Ef_dora |
| Francese | fr. | ff_siwis |
| Hindi | Ciao. | hf_alpha, hm_omega |
| Italiano | E' vero. | # Se # |
| Giapponese | - Ciao. | jf_alpha, jm_omega |
| Portoghese | P | pf_dora |
| Cinese | zh | zf_xiaobei, zm_yunjian |
| Germania | de la de la de de de de la de | dm_martin, df_victoria (voice pack) |
Voci preset 50 totali. Convegno di denominazione vocale: [language][gender]_[name] — ad esempio, af_heart = American Female "Heart".
Doppio vocale tedesco
Il tedesco non è una voce del fascio multilingue sopra: le due voci tedesche sono kikiri-tts fine-tunes di Kokoro-82M, ciascuno un separato 162 MB peso impostato solo su fonemi tedeschi. KokoroPack quando si scarica, quindi sintetizzare con language = "de". Ogni pacchetto vive nella propria cache, quindi l'inglese e il tedesco rimangono installati fianco a fianco.
| Confezione | Voce | Scarica |
|---|---|---|
KokoroPack.GERMAN_MARTIN | dm_martin (maschio) | soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB) |
KokoroPack.GERMAN_VICTORIA | df_victoria (femmina) | 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")Numeri, ordinali, date, orari, importi di valuta, unità e abbreviazioni comuni sono specificati sul dispositivo; le parole provengono da un 50k-parola dizionario tedesco con inflezione, composti e ricadute a base di regola. TTS motore (SpeechTextToSpeechService) offre la voce di Martin come de-DE vicino a en-US.
File di modello
| File | Dimensione |
|---|---|
kokoro-e2e.onnx + .onnx.data | ~ 330 MB |
voices.bin | Incorporazioni vocali |
| Dizionario di Phoneme | Dati di pronuncia specifici per la lingua |
HuggingFace: soniqo/Kokoro-82M-ONNX
Prestazioni
| Metrico | Valore |
|---|---|
| Parametri | 82M |
| Inferenza backend | ONNX Runtime |
| Tasso di campionamento in uscita | 24 kHz |
Telefono
Il testo viene convertito in token fonemi utilizzando un fonemizzatore basato sul dizionario con supporto specifico per la lingua. L'implementazione Android include fonemiti per l'inglese, il francese, lo spagnolo, l'italiano, il portoghese, l'hindi, il giapponese e il cinese.
Integrazione della pipelina
Su Android, Kokoro TTS fa parte del SpeechPipeline. Dopo che STT trascrive il discorso, il testo è fonemizzato e sintetizzato nuovamente in audio. Il pipeline gestisce il flusso VAD completo → STT → TTS automaticamente.
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) // 16kHz mono float32
Codice sorgente: github.com / soniqo / speech-android