Skip to content

Support extra languages in multi-lang kokoro tts #2303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 20, 2025

Conversation

csukuangfj
Copy link
Collaborator

With this PR, kokoro-multi-lang-v1_0.tar.bz2 can support multiple languages now.

Example 1: French

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=fr \
  --sid=30 \
  --output-filename="./30.wav" \
  "Ce n'est pas à un vieux singe qu'on apprend à faire des grimaces. Qui court deux lièvres à la fois, n’en prend aucun"
30.mov

Example 2: American English

(Refer to https://k2-fsa.github.io/sherpa/onnx/tts/all/Chinese-English/kokoro-multi-lang-v1_0.html for speaker IDs corresponding to American accents)

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=en \
  --sid=0 \
  --output-filename="./0.wav" \
  "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be, a statesman, a businessman, an official, or a scholar."
0.mov

Example 3: British English

(Refer to https://k2-fsa.github.io/sherpa/onnx/tts/all/Chinese-English/kokoro-multi-lang-v1_0.html for speaker IDs corresponding to British accents)

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=en \
  --sid=22 \
  --output-filename="./22.wav" \
  "Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be, a statesman, a businessman, an official, or a scholar."
22.mov

Example 4: Spanish

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=es \
  --sid=28 \
  --output-filename="./28.wav" \
  "Hoy, como siempre, los hombres se dividen en dos grupos: esclavos y libres. Quien no dispone de dos tercios de su día para sí mismo, es esclavo, sea quien sea: estadista, empresario, funcionario o erudito."
28.mov

Example 5: Chinese + English

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-lexicon=./kokoro-multi-lang-v1_0/lexicon-zh.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=en \
  --sid=48 \
  --output-filename="./48.wav" \
  "This model supports both Chinese and English. 小米的核心价值观是什么? 答案是真诚热爱. I am learning 机器学习. 我在研究 machine learning. What do you think 中英文说的如何呢?"
48.mov

Example 6: Chinese + English

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-lexicon=./kokoro-multi-lang-v1_0/lexicon-zh.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=en \
  --sid=2 \
  --output-filename="./2.wav" \
  "This model supports both Chinese and English. 小米的核心价值观是什么? 答案是真诚热爱. I am learning 机器学习. 我在研究 machine learning. What do you think 中英文说的如何呢?"
2.mov

(You can combine Chinese with French, or Chinese with Spanish, or Chinese with Italian, or Chinese with Hindi, etc.)

Example 7: Italian

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=it \
  --sid=35 \
  --output-filename="./35.wav" \
  "Oggi come sempre, gli uomini si dividono in due gruppi: schiavi e uomini liberi. Chi non ha due terzi della giornata per sé è uno schiavo, qualunque cosa sia, uno statista, un uomo d'affari, un funzionario o uno studioso."
35.mov

Example 8: Hindi

build/bin/sherpa-onnx-offline-tts \
  --kokoro-model=./kokoro-multi-lang-v1_0/model.onnx \
  --kokoro-voices=./kokoro-multi-lang-v1_0/voices.bin \
  --kokoro-tokens=./kokoro-multi-lang-v1_0/tokens.txt \
  --kokoro-data-dir=./kokoro-multi-lang-v1_0/espeak-ng-data \
  --kokoro-dict-dir=./kokoro-multi-lang-v1_0/dict \
  --kokoro-lang=hi \
  --sid=32 \
  --output-filename="./32.wav" \
  "आज भी हमेशा की तरह लोग दो समूहों में बंटे हुए हैं: गुलाम और आज़ाद आदमी। जो कोई भी अपने दिन का दो-तिहाई हिस्सा खुद के लिए नहीं निकालता, वह गुलाम है, चाहे वह कोई भी हो, राजनेता, व्यापारी, अधिकारी या विद्वान।"
32.mov

@csukuangfj csukuangfj merged commit 6982b86 into k2-fsa:master Jun 20, 2025
14 of 220 checks passed
@csukuangfj csukuangfj deleted the kokoro-multi-lang branch June 20, 2025 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant