Kokoro TTS — Android
Kokoro-82M एक हल्का, non-autoregressive टेक्स्ट-टू-स्पीच मॉडल है जो ONNX Runtime के माध्यम से Android पर चलता है। यह 8 भाषाओं में 50 preset voices के साथ natural 24 kHz speech उत्पन्न करता है।
समर्थित भाषाएँ
| भाषा | कोड | उदाहरण Voices |
|---|---|---|
| अंग्रेज़ी (US) | en | af_heart, am_adam, af_sky |
| अंग्रेज़ी (UK) | en | bf_emma, bm_george |
| स्पेनिश | es | ef_dora |
| फ़्रेंच | fr | ff_siwis |
| हिन्दी | hi | hf_alpha, hm_omega |
| इटालियन | it | if_sara |
| जापानी | ja | jf_alpha, jm_omega |
| पुर्तगाली | pt | pf_dora |
| चीनी | zh | zf_xiaobei, zm_yunjian |
| जर्मन | de | dm_martin, df_victoria (वॉइस पैक) |
कुल 50 preset voices। Voice नामकरण convention: [language][gender]_[name] — जैसे, af_heart = American Female "Heart"।
जर्मन वॉइस पैक
जर्मन ऊपर के बहुभाषी बंडल की आवाज़ नहीं है: दोनों जर्मन आवाज़ें kikiri-tts द्वारा Kokoro-82M के फाइन-ट्यून हैं, हर एक केवल जर्मन स्वनिमों पर प्रशिक्षित 162 MB का अलग वेट सेट। डाउनलोड करते समय KokoroPack से एक चुनें, फिर language = "de" के साथ सिंथेसाइज़ करें। हर पैक की अपनी कैश है, इसलिए अंग्रेज़ी और जर्मन साथ-साथ इंस्टॉल रह सकते हैं।
| पैक | आवाज़ | डाउनलोड |
|---|---|---|
KokoroPack.GERMAN_MARTIN | dm_martin (पुरुष) | soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB) |
KokoroPack.GERMAN_VICTORIA | df_victoria (महिला) | 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")संख्याएँ, क्रमसूचक, तिथियाँ, समय, मुद्रा राशियाँ, इकाइयाँ और सामान्य संक्षेपाक्षर डिवाइस पर शब्दों में लिखे जाते हैं; शब्द 50k शब्दों के जर्मन शब्दकोश से आते हैं, जिसमें रूप-परिवर्तन, समास और नियम-आधारित फ़ॉलबैक हैं। सिस्टम TTS इंजन (SpeechTextToSpeechService) en-US के साथ Martin की आवाज़ de-DE के रूप में देता है।
मॉडल फ़ाइलें
| फ़ाइल | आकार |
|---|---|
kokoro-e2e.onnx + .onnx.data | ~330 MB |
voices.bin | Voice embeddings |
| Phoneme शब्दकोश | भाषा-विशिष्ट उच्चारण डेटा |
HuggingFace: soniqo/Kokoro-82M-ONNX
परफ़ॉर्मेंस
| मेट्रिक | मान |
|---|---|
| पैरामीटर | 82M |
| इन्फ़रेंस बैकएंड | ONNX Runtime |
| आउटपुट sample rate | 24 kHz |
Phonemizer
Text को भाषा-विशिष्ट समर्थन के साथ dictionary-आधारित phonemizer का उपयोग करके phoneme tokens में कन्वर्ट किया जाता है। Android कार्यान्वयन में अंग्रेज़ी, फ़्रेंच, स्पेनिश, इटालियन, पुर्तगाली, हिन्दी, जापानी, और चीनी के लिए phonemizers शामिल हैं।
पाइपलाइन इंटीग्रेशन
Android पर, Kokoro TTS SpeechPipeline का हिस्सा है। STT द्वारा speech ट्रांसक्राइब करने के बाद, text को phonemize किया जाता है और वापस ऑडियो में synthesize किया जाता है। पाइपलाइन पूरे VAD → STT → TTS flow को स्वचालित रूप से मैनेज करती है।
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
सोर्स कोड: github.com/soniqo/speech-android