Kokoro TTS — Android

Kokoro-82M — это лёгкая неавторегрессивная модель синтеза речи, работающая на Android через ONNX Runtime. Она производит естественную речь 24 кГц с 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 = American Female «Heart».

Файлы модели

ФайлРазмер
kokoro-model-int8.onnx~89 МБ
voices.binЭмбеддинги голосов
Словари фонемЯзыкозависимые данные произношения

HuggingFace: aufklarer/Kokoro-82M-ONNX

Производительность

МетрикаЗначение
Параметры82M
Бэкенд инференсаONNX Runtime
Частота дискретизации на выходе24 кГц

Фонемизатор

Текст преобразуется в фонемные токены через фонемизатор на основе словарей с поддержкой конкретных языков. 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) // 16 кГц моно float32

Исходный код: github.com/soniqo/speech-android