Add Android demo for Kokoro TTS 1.0 (#1799)

This commit is contained in:
Fangjun Kuang
2025-02-07 13:07:30 +08:00
committed by GitHub
parent 4372a7a7b0
commit a52b819fb5
8 changed files with 80 additions and 6 deletions

View File

@@ -97,6 +97,11 @@ sed -i.bak s/"lang = null"/"lang = \"$lang_iso_639_3\""/ ./TtsEngine.kt
sed -i.bak s/"lexicon = null"/"lexicon = \"lexicon.txt\""/ ./TtsEngine.kt
{% endif %}
{% if tts_model.lexicon %}
lexicon={{ tts_model.lexicon }}
sed -i.bak s%"lexicon = null"%"lexicon = \"$lexicon\""% ./TtsEngine.kt
{% endif %}
git diff
popd
@@ -104,6 +109,10 @@ if [[ $model_dir == vits-melo-tts-zh_en ]]; then
lang=zh_en
fi
if [[ $model_dir == kokoro-multi-lang-v1_0 ]]; then
lang=zh_en
fi
for arch in arm64-v8a armeabi-v7a x86_64 x86; do
log "------------------------------------------------------------"
log "build tts apk for $arch"

View File

@@ -96,6 +96,11 @@ sed -i.bak s/"modelDir = null"/"modelDir = \"$model_dir\""/ ./MainActivity.kt
sed -i.bak s/"lexicon = null"/"lexicon = \"lexicon.txt\""/ ./MainActivity.kt
{% endif %}
{% if tts_model.lexicon %}
lexicon={{ tts_model.lexicon }}
sed -i.bak s%"lexicon = null"%"lexicon = \"$lexicon\""% ./MainActivity.kt
{% endif %}
git diff
popd
@@ -103,6 +108,10 @@ if [[ $model_dir == vits-melo-tts-zh_en ]]; then
lang=zh_en
fi
if [[ $model_dir == kokoro-multi-lang-v1_0 ]]; then
lang=zh_en
fi
for arch in arm64-v8a armeabi-v7a x86_64 x86; do
log "------------------------------------------------------------"
log "build tts apk for $arch"

View File

@@ -41,6 +41,7 @@ class TtsModel:
dict_dir: Optional[str] = None
is_char: bool = False
lang_iso_639_3: str = ""
lexicon: str = ""
def convert_lang_to_iso_639_3(models: List[TtsModel]):
@@ -422,7 +423,21 @@ def get_kokoro_models() -> List[TtsModel]:
m.data_dir = f"{m.model_dir}/espeak-ng-data"
m.voices = "voices.bin"
return english_models
multi_lingual_models = [
TtsModel(
model_dir="kokoro-multi-lang-v1_0",
model_name="model.onnx",
lang="en",
)
]
for m in multi_lingual_models:
m.data_dir = f"{m.model_dir}/espeak-ng-data"
m.dict_dir = f"{m.model_dir}/dict"
m.voices = "voices.bin"
m.lexicon = f"{m.model_dir}/lexicon-us-en.txt,{m.model_dir}/lexicon-zh.txt"
m.rule_fsts = f"{m.model_dir}/phone-zh.fst,{m.model_dir}/date-zh.fst,{m.model_dir}/number-zh.fst"
return english_models + multi_lingual_models
def main():