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

LinguaCodiceEsempio 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
Spagnoloe)Ef_dora
Francesefr.ff_siwis
HindiCiao.hf_alpha, hm_omega
ItalianoE' vero.# Se #
Giapponese- Ciao.jf_alpha, jm_omega
PortoghesePpf_dora
Cinesezhzf_xiaobei, zm_yunjian
Germaniade la de la de de de de la dedm_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.

ConfezioneVoceScarica
KokoroPack.GERMAN_MARTINdm_martin (maschio)soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB)
KokoroPack.GERMAN_VICTORIAdf_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

FileDimensione
kokoro-e2e.onnx + .onnx.data~ 330 MB
voices.binIncorporazioni vocali
Dizionario di PhonemeDati di pronuncia specifici per la lingua

HuggingFace: soniqo/Kokoro-82M-ONNX

Prestazioni

MetricoValore
Parametri82M
Inferenza backendONNX Runtime
Tasso di campionamento in uscita24 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