Kokoro TTS — Android

Kokoro-82M نموذج خفيف وغير انحداري لتحويل النص إلى كلام، يعمل على Android عبر ONNX Runtime. يُنتج كلاماً طبيعياً بمعدل 24 kHz مع 50 صوتاً جاهزاً عبر 7 لغات.

اللغات المدعومة

اللغةالرمزأمثلة على الأصوات
الإنجليزية (الولايات المتحدة)enaf_heart, am_adam, af_sky
الإنجليزية (المملكة المتحدة)enbf_emma, bm_george
الإسبانيةesef_dora
الفرنسيةfrff_siwis
الهنديةhihf_alpha, hm_omega
الإيطاليةitif_sara
اليابانيةjajf_alpha, jm_omega
البرتغاليةptpf_dora
الصينيةzhzf_xiaobei, zm_yunjian

50 صوتاً جاهزاً بالمجمل. اصطلاح تسمية الأصوات: [language][gender]_[name] — مثلاً af_heart = أنثى أمريكية "Heart".

ملفات النموذج

الملفالحجم
kokoro-model-int8.onnx~89 MB
voices.binتضمينات الأصوات
قواميس الفونيماتبيانات نطق خاصّة بكل لغة

HuggingFace: aufklarer/Kokoro-82M-ONNX

الأداء

المقياسالقيمة
المعاملات82M
خلفية الاستنتاجONNX Runtime
معدل أخذ عيّنات الخرج24 kHz

مُفَوْنِم النص

يُحوَّل النص إلى رموز فونيمات باستخدام مُفَوْنِم قائم على القواميس مع دعم خاصّ بكل لغة. تتضمّن نسخة Android مُفَوْنِمات للإنجليزية والفرنسية والإسبانية والإيطالية والبرتغالية والهندية واليابانية والصينية.

التكامل مع خط الأنابيب

على Android، يُعدّ Kokoro TTS جزءاً من SpeechPipeline. بعد أن يفرّغ STT الكلام، يُفَوْنَم النص ويُركَّب صوتاً من جديد. ويُدير خط الأنابيب تدفّق VAD → STT → TTS كاملاً بصورة تلقائية.

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