Add Koltin and Java API for Kokoro TTS models (#1728)

This commit is contained in:
Fangjun Kuang
2025-01-17 17:36:13 +08:00
committed by GitHub
parent 3a1de0bfc1
commit 99cef4198b
18 changed files with 548 additions and 39 deletions

View File

@@ -39,6 +39,7 @@ model_dir={{ tts_model.model_dir }}
model_name={{ tts_model.model_name }}
acoustic_model_name={{ tts_model.acoustic_model_name }}
vocoder={{ tts_model.vocoder }}
voices={{ tts_model.voices }}
lang={{ tts_model.lang }}
lang_iso_639_3={{ tts_model.lang_iso_639_3 }}
@@ -70,6 +71,10 @@ sed -i.bak s/"lang = null"/"lang = \"$lang_iso_639_3\""/ ./TtsEngine.kt
sed -i.bak s/"vocoder = null"/"vocoder = \"$vocoder\""/ ./TtsEngine.kt
{% endif %}
{% if tts_model.voices %}
sed -i.bak s/"voices = null"/"voices = \"$voices\""/ ./TtsEngine.kt
{% endif %}
{% if tts_model.rule_fsts %}
rule_fsts={{ tts_model.rule_fsts }}
sed -i.bak s%"ruleFsts = null"%"ruleFsts = \"$rule_fsts\""% ./TtsEngine.kt

View File

@@ -39,6 +39,7 @@ model_dir={{ tts_model.model_dir }}
model_name={{ tts_model.model_name }}
acoustic_model_name={{ tts_model.acoustic_model_name }}
vocoder={{ tts_model.vocoder }}
voices={{ tts_model.voices }}
lang={{ tts_model.lang }}
wget -qq https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/$model_dir.tar.bz2
@@ -69,6 +70,9 @@ sed -i.bak s/"modelDir = null"/"modelDir = \"$model_dir\""/ ./MainActivity.kt
sed -i.bak s/"vocoder = null"/"vocoder = \"$vocoder\""/ ./MainActivity.kt
{% endif %}
{% if tts_model.voices %}
sed -i.bak s/"voices = null"/"voices = \"$voices\""/ ./MainActivity.kt
{% endif %}
{% if tts_model.rule_fsts %}
rule_fsts={{ tts_model.rule_fsts }}

View File

@@ -33,6 +33,7 @@ class TtsModel:
model_name: str = "" # for vits
acoustic_model_name: str = "" # for matcha
vocoder: str = "" # for matcha
voices: str = "" # for kokoro
lang: str = "" # en, zh, fr, de, etc.
rule_fsts: Optional[List[str]] = None
rule_fars: Optional[List[str]] = None
@@ -409,6 +410,21 @@ def get_matcha_models() -> List[TtsModel]:
return chinese_models + english_models
def get_kokoro_models() -> List[TtsModel]:
english_models = [
TtsModel(
model_dir="kokoro-en-v0_19",
model_name="model.onnx",
lang="en",
)
]
for m in english_models:
m.data_dir = f"{m.model_dir}/espeak-ng-data"
m.voices = "voices.bin"
return english_models
def main():
args = get_args()
index = args.index
@@ -421,6 +437,7 @@ def main():
all_model_list += get_mimic3_models()
all_model_list += get_coqui_models()
all_model_list += get_matcha_models()
all_model_list += get_kokoro_models()
convert_lang_to_iso_639_3(all_model_list)
print(all_model_list)