Maskinöversättning · Engelskt original

Kokoro TTS — Android

Kokoro-82M är en lätt, icke-autoregressiv text-till-tal-modell som körs på Android via ONNX Runtime. Den producerar naturligt 24 kHz-tal med 50 förinställda röster på 8 språk.

Stödda språk

SpråkspråkKodkodExempelröster
Engelska (USA)Enaf_heart, am_adam, af_sky
Engelska (Storbritannien)Enbf_emma, bm_george
Spanska spanskaessef_dora
Franska franskaFR FRÅN FRÅFff_siwis
HindiHej Hej Hehejhf_alpha, hm_omega
Italienska ItalienDet ärif_sara
Japansk Japansk Japan JapanskJa ja ja ja jajf_alpha, jm_omega
PortugisiskaPtPf_dora
Kinesiska kinesiskazhzf_xiaobei, zm_yunjian
Tyska tyskaDedm_martin, df_victoria (röstpaket)

50 förinställda röster totalt. Voice naming convention: [language][gender]_[name] — t.ex. af_heart = American Female "Heart".

Tyska röstpaket

Tyska är inte en röst av den flerspråkiga bunten ovan: de två tyska rösterna är kikiri-tts finjusteringar av Kokoro-82M, var och en separat 162 MB-vikt som endast är utbildad på tyska telefoner. Välj en med KokoroPack när du laddar ner, syntetisera med language = "de". paket bor i sin egen cache, så engelska och installerad sida av tyska.

Förpackning PackRöstLadda ner
KokoroPack.GERMAN_MARTINdm_martin (manlig)soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB)
KokoroPack.GERMAN_VICTORIAdf_victoria (kvinnlig)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")

Numbers, ordinals, datum, tider, valutabelopp, enheter och gemensamma förkortningar stavas på enheten; ord kommer från en 50k-ord tysk ordbok med böjning, förening och regelbaserade nedgångar. Systemet TTS motor (SpeechTextToSpeechService) erbjuder Martin rösten som de-DE bredvid en-US

Modellfiler

FilStorlek
kokoro-e2e.onnx + .onnx.data~330 MB
voices.binVoice inbäddningar
Phoneme ordböckerSpråkspecifika uttalsdata

HuggingFace: soniqo/Kokoro-82M-ONNX

Prestanda

MetricVärde
Parametrar82M
Inference backendONNX Runtime
Output sample rate24 kHz

Phonemizer

Text konverteras till telefonme tokens med hjälp av en ordboksbaserad telefonmizer med språkspecifikt stöd. Android implementering inkluderar telefonmizers för engelska, franska, spanska, italienska, portugisiska, hindi, japanska och kinesiska.

Pipeline Integration

På Android är Kokoro TTS en del av SpeechPipelineEfter STT transkriberar tal, är texten telefonmiserad och syntetiseras tillbaka till ljud. Rörledningen hanterar hela VAD → STT → TTS-flödet automatiskt.

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

Källa: github.com/soniqo/speech-android