Kokoro TTS — Android
Kokoro-82M, ONNX Runtime aracılığıyla Android üzerinde çalışan hafif ve otoregresif olmayan bir metinden konuşma modelidir. 8 dilde 50 hazır sesle doğal 24 kHz konuşma üretir.
Desteklenen diller
| Dil | Kod | Örnek sesler |
|---|---|---|
| İngilizce (ABD) | en | af_heart, am_adam, af_sky |
| İngilizce (Birleşik Krallık) | en | bf_emma, bm_george |
| İspanyolca | es | ef_dora |
| Fransızca | fr | ff_siwis |
| Hintçe | hi | hf_alpha, hm_omega |
| İtalyanca | it | if_sara |
| Japonca | ja | jf_alpha, jm_omega |
| Portekizce | pt | pf_dora |
| Çince | zh | zf_xiaobei, zm_yunjian |
| Almanca | de | dm_martin, df_victoria (ses paketleri) |
Toplam 50 hazır ses. Ses adlandırma kuralı: [language][gender]_[name] — örneğin, af_heart = Amerikan Kadın "Heart".
Almanca ses paketleri
Almanca, yukarıdaki çok dilli paketin bir sesi değildir: iki Almanca ses, kikiri-tts tarafından Kokoro-82M'in ince ayarlanmış sürümleridir; her biri yalnızca Almanca fonemlerle eğitilmiş 162 MB'lık ayrı bir ağırlık kümesidir. İndirirken KokoroPack ile birini seçin, ardından language = "de" ile sentezleyin. Her paketin kendi önbelleği vardır, bu yüzden İngilizce ve Almanca yan yana kurulu kalabilir.
| Paket | Ses | İndirme |
|---|---|---|
KokoroPack.GERMAN_MARTIN | dm_martin (erkek) | soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB) |
KokoroPack.GERMAN_VICTORIA | df_victoria (kadın) | 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")Sayılar, sıra sayıları, tarihler, saatler, para tutarları, birimler ve yaygın kısaltmalar cihazda yazıyla okunur; sözcükler çekim, bileşik sözcük ve kural tabanlı yedeklerle 50k sözcüklük bir Almanca sözlükten gelir. Sistem TTS motoru (SpeechTextToSpeechService) Martin sesini en-US'in yanında de-DE olarak sunar.
Model dosyaları
| Dosya | Boyut |
|---|---|
kokoro-e2e.onnx + .onnx.data | ~330 MB |
voices.bin | Ses embedding'leri |
| Fonem sözlükleri | Dile özgü telaffuz verileri |
HuggingFace: soniqo/Kokoro-82M-ONNX
Performans
| Metrik | Değer |
|---|---|
| Parametreler | 82M |
| Çıkarım arka ucu | ONNX Runtime |
| Çıkış örnekleme frekansı | 24 kHz |
Phonemizer
Metin, dile özgü desteğe sahip sözlük tabanlı bir phonemizer ile fonem token'larına dönüştürülür. Android uygulaması İngilizce, Fransızca, İspanyolca, İtalyanca, Portekizce, Hintçe, Japonca ve Çince için phonemizer içerir.
Pipeline entegrasyonu
Android'de Kokoro TTS, SpeechPipeline'ın bir parçasıdır. STT konuşmayı yazıya döktükten sonra, metin fonemize edilir ve tekrar sese sentezlenir. Pipeline, VAD → STT → TTS akışının tamamını otomatik olarak yönetir.
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
Kaynak kodu: github.com/soniqo/speech-android