Kokoro TTS — Android
Kokoro-82M là mô hình tổng hợp giọng nói nhẹ, không tự hồi quy chạy trên Android qua ONNX Runtime. Nó tạo ra giọng nói tự nhiên 24 kHz với 50 giọng dựng sẵn trên 8 ngôn ngữ.
Ngôn ngữ được hỗ trợ
| Ngôn ngữ | Mã | Giọng ví dụ |
|---|---|---|
| Tiếng Anh (Mỹ) | en | af_heart, am_adam, af_sky |
| Tiếng Anh (Anh) | en | bf_emma, bm_george |
| Tiếng Tây Ban Nha | es | ef_dora |
| Tiếng Pháp | fr | ff_siwis |
| Tiếng Hindi | hi | hf_alpha, hm_omega |
| Tiếng Ý | it | if_sara |
| Tiếng Nhật | ja | jf_alpha, jm_omega |
| Tiếng Bồ Đào Nha | pt | pf_dora |
| Tiếng Trung | zh | zf_xiaobei, zm_yunjian |
| Tiếng Đức | de | dm_martin, df_victoria (gói giọng) |
Tổng cộng 50 giọng dựng sẵn. Quy ước đặt tên giọng: [language][gender]_[name] — ví dụ, af_heart = nữ Mỹ "Heart".
Gói giọng tiếng Đức
Tiếng Đức không phải là một giọng của gói đa ngôn ngữ ở trên: hai giọng tiếng Đức là bản tinh chỉnh Kokoro-82M của kikiri-tts, mỗi giọng là một bộ trọng số riêng 162 MB chỉ được huấn luyện trên âm vị tiếng Đức. Chọn một gói bằng KokoroPack khi tải về, rồi tổng hợp với language = "de". Mỗi gói có bộ nhớ đệm riêng, nên tiếng Anh và tiếng Đức có thể cùng được cài đặt.
| Gói | Giọng | Tải về |
|---|---|---|
KokoroPack.GERMAN_MARTIN | dm_martin (nam) | soniqo/Kokoro-82M-German-Martin-ONNX (~170 MB) |
KokoroPack.GERMAN_VICTORIA | df_victoria (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")Số, số thứ tự, ngày, giờ, số tiền, đơn vị và các từ viết tắt thông dụng được đọc thành chữ ngay trên thiết bị; từ vựng lấy từ từ điển tiếng Đức 50k từ với các phương án dự phòng về biến tố, từ ghép và quy tắc. Bộ máy TTS hệ thống (SpeechTextToSpeechService) cung cấp giọng Martin dưới dạng de-DE bên cạnh en-US.
File mô hình
| File | Kích thước |
|---|---|
kokoro-e2e.onnx + .onnx.data | ~330 MB |
voices.bin | Embedding giọng |
| Từ điển âm vị | Dữ liệu phát âm theo từng ngôn ngữ |
HuggingFace: soniqo/Kokoro-82M-ONNX
Hiệu năng
| Chỉ số | Giá trị |
|---|---|
| Tham số | 82M |
| Backend suy luận | ONNX Runtime |
| Tần số lấy mẫu đầu ra | 24 kHz |
Phonemizer
Văn bản được chuyển thành token âm vị bằng một phonemizer dựa trên từ điển với hỗ trợ theo từng ngôn ngữ. Bản triển khai Android bao gồm phonemizer cho tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Hindi, tiếng Nhật và tiếng Trung.
Tích hợp pipeline
Trên Android, Kokoro TTS là một phần của SpeechPipeline. Sau khi STT chuyển giọng nói thành văn bản, văn bản được chuyển sang âm vị rồi tổng hợp trở lại thành âm thanh. Pipeline tự động quản lý toàn bộ luồng 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
Mã nguồn: github.com/soniqo/speech-android