Support extra languages in multi-lang kokoro tts (#2303)

This commit is contained in:
Fangjun Kuang
2025-06-20 11:22:52 +08:00
committed by GitHub
parent a6095f5f64
commit 6982b86c66
28 changed files with 187 additions and 49 deletions

View File

@@ -220,8 +220,9 @@ class OfflineTtsKokoroImpl : public OfflineTtsImpl {
}
}
std::vector<TokenIDs> token_ids =
frontend_->ConvertTextToTokenIds(text, meta_data.voice);
std::vector<TokenIDs> token_ids = frontend_->ConvertTextToTokenIds(
text, config_.model.kokoro.lang.empty() ? meta_data.voice
: config_.model.kokoro.lang);
if (token_ids.empty() ||
(token_ids.size() == 1 && token_ids[0].tokens.empty())) {
@@ -335,12 +336,14 @@ class OfflineTtsKokoroImpl : public OfflineTtsImpl {
if (meta_data.version >= 2) {
// this is a multi-lingual model, we require that you pass lexicon
// and dict_dir
if (config_.model.kokoro.lexicon.empty() ||
if ((config_.model.kokoro.lexicon.empty() &&
config_.model.kokoro.lang.empty()) ||
config_.model.kokoro.dict_dir.empty()) {
SHERPA_ONNX_LOGE("Current model version: '%d'", meta_data.version);
SHERPA_ONNX_LOGE(
"You are using a multi-lingual Kokoro model (e.g., Kokoro >= "
"v1.0). please pass --kokoro-lexicon and --kokoro-dict-dir");
"v1.0). Please pass --kokoro-lexicon and --kokoro-dict-dir or "
"provide --kokoro-lang and --kokoro-dict-dir");
SHERPA_ONNX_EXIT(-1);
}
@@ -362,7 +365,8 @@ class OfflineTtsKokoroImpl : public OfflineTtsImpl {
if (meta_data.version >= 2) {
// this is a multi-lingual model, we require that you pass lexicon
// and dict_dir
if (config_.model.kokoro.lexicon.empty() ||
if ((config_.model.kokoro.lexicon.empty() &&
config_.model.kokoro.lang.empty()) ||
config_.model.kokoro.dict_dir.empty()) {
SHERPA_ONNX_LOGE("Current model version: '%d'", meta_data.version);
SHERPA_ONNX_LOGE(