Kokoro TTS — Android

Kokoro-82M은 ONNX Runtime을 통해 Android에서 실행되는 경량 비자기회귀 텍스트-음성 변환 모델입니다. 7개 언어에 걸쳐 50개 프리셋 음색으로 자연스러운 24 kHz 음성을 생성합니다.

지원 언어

언어코드예시 음색
영어 (미국)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개 프리셋 음색. 음색 이름 규칙: [언어][성별]_[이름] — 예: af_heart = 미국 여성 "Heart".

모델 파일

파일크기
kokoro-model-int8.onnx약 89 MB
voices.bin음색 임베딩
음소 사전언어별 발음 데이터

HuggingFace: aufklarer/Kokoro-82M-ONNX

성능

지표
파라미터82M
추론 백엔드ONNX Runtime
출력 샘플레이트24 kHz

Phonemizer

언어별 지원이 있는 사전 기반 phonemizer를 사용해 텍스트가 음소 토큰으로 변환됩니다. Android 구현은 영어, 프랑스어, 스페인어, 이탈리아어, 포르투갈어, 힌디어, 일본어, 중국어용 phonemizer를 포함합니다.

파이프라인 통합

Android에서 Kokoro TTS는 SpeechPipeline의 일부입니다. STT가 음성을 전사한 후, 텍스트가 phonemize되어 다시 오디오로 합성됩니다. 파이프라인은 전체 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 모노 float32

소스 코드: github.com/soniqo/speech-android