Skip to content

Commit 6be6dda

Browse files
authored
Add more Piper TTS models (k2-fsa#3547)
1 parent d49e8f4 commit 6be6dda

5 files changed

Lines changed: 105 additions & 6 deletions

File tree

.github/workflows/export-piper.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ jobs:
162162
vits-piper-it_IT-dii-high
163163
vits-piper-nl_NL-miro-high
164164
vits-piper-nl_NL-dii-high
165+
vits-piper-nl_NL-alex-medium
165166
vits-piper-de_DE-miro-high
166167
vits-piper-de_DE-dii-high
167168
vits-piper-fr_FR-miro-high
@@ -170,6 +171,7 @@ jobs:
170171
vits-piper-pl_PL-justyna_wg_glos-medium
171172
vits-piper-pl_PL-meski_wg_glos-medium
172173
vits-piper-pl_PL-zenski_wg_glos-medium
174+
vits-piper-pl_PL-bass-high
173175
vits-piper-id_ID-news_tts-medium
174176
vits-piper-hi_IN-rohan-medium
175177
vits-piper-ar_JO-SA_miro-high-int8
@@ -188,6 +190,11 @@ jobs:
188190
vits-piper-zh_CN-chaowen-medium
189191
vits-piper-zh_CN-chaowen-medium-int8
190192
vits-piper-zh_CN-chaowen-medium-fp16
193+
vits-piper-sv_SE-alma-medium
194+
vits-piper-ku_TR-berfin_renas-medium
195+
vits-piper-eu_ES-maider-medium
196+
vits-piper-eu_ES-antton-medium
197+
vits-piper-ur_PK-fasih-medium
191198
)
192199
for d in ${dirs[@]}; do
193200
src=scripts/piper/release/$d

android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/GetSampleText.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ fun getSampleText(lang: String): String {
1616
text = "এটি একটি টেক্সট-টু-স্পীচ ইঞ্জিন যা পরবর্তী প্রজন্মের কালডি ব্যবহার করে"
1717
}
1818

19+
"eus" -> {
20+
text = "Aberats izatea baino, izen ona hobe."
21+
}
22+
1923
"bul" -> {
2024
text =
2125
"Това е машина за преобразуване на текст в реч, използваща Kaldi от следващо поколение"
@@ -91,6 +95,10 @@ fun getSampleText(lang: String): String {
9195
text = "Бұл келесі буын kaldi көмегімен мәтіннен сөйлеуге арналған қозғалтқыш"
9296
}
9397

98+
"kur" -> {
99+
text = "Ev motorê nivîsandinê bi dengî ye ku Kaldiya serî de bi kar tîne"
100+
}
101+
94102
"mlt" -> {
95103
text = "Din hija magna text-to-speech li tuża Kaldi tal-ġenerazzjoni li jmiss"
96104
}
@@ -173,6 +181,10 @@ fun getSampleText(lang: String): String {
173181
"Це механізм перетворення тексту на мовлення, який використовує kaldi нового покоління"
174182
}
175183

184+
"urd" -> {
185+
text = "قوس قزح، جسے قوس قزح یا رنگوں کی قوس قزح بھی کہا جاتا ہے، ایک قدرتی طبعی رجحان ہے جو بارش کے قطرے کے ذریعے سورج کی روشنی کے اضطراب اور پھیلاؤ کے نتیجے میں ہوتا ہے۔"
186+
}
187+
176188
"vie" -> {
177189
text = "Đây là công cụ chuyển văn bản thành giọng nói sử dụng kaldi thế hệ tiếp theo"
178190
}

scripts/apk/generate-tts-apk-script.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ def get_piper_models() -> List[TtsModel]:
188188
TtsModel(model_dir="vits-piper-es_ES-sharvard-medium"),
189189
TtsModel(model_dir="vits-piper-es_MX-ald-medium"),
190190
TtsModel(model_dir="vits-piper-es_MX-claude-high"),
191+
TtsModel(model_dir="vits-piper-eu_ES-antton-medium"),
192+
TtsModel(model_dir="vits-piper-eu_ES-maider-medium"),
191193
TtsModel(model_dir="vits-piper-fa_IR-amir-medium"),
192194
TtsModel(model_dir="vits-piper-fa_IR-ganji-medium"),
193195
TtsModel(model_dir="vits-piper-fa_IR-ganji_adabi-medium"),
@@ -236,11 +238,13 @@ def get_piper_models() -> List[TtsModel]:
236238
TtsModel(model_dir="vits-piper-nl_BE-rdh-x_low"),
237239
TtsModel(model_dir="vits-piper-nl_NL-miro-high"),
238240
TtsModel(model_dir="vits-piper-nl_NL-dii-high"),
241+
TtsModel(model_dir="vits-piper-nl_NL-alex-medium"),
239242
# TtsModel(model_dir="vits-piper-nl_NL-mls-medium"),
240243
# TtsModel(model_dir="vits-piper-nl_NL-mls_5809-low"),
241244
# TtsModel(model_dir="vits-piper-nl_NL-mls_7432-low"),
242245
TtsModel(model_dir="vits-piper-no_NO-talesyntese-medium"),
243246
TtsModel(model_dir="vits-piper-pl_PL-darkman-medium"),
247+
TtsModel(model_dir="vits-piper-pl_PL-bass-high"),
244248
TtsModel(model_dir="vits-piper-pl_PL-gosia-medium"),
245249
TtsModel(model_dir="vits-piper-pl_PL-jarvis_wg_glos-medium"),
246250
TtsModel(model_dir="vits-piper-pl_PL-justyna_wg_glos-medium"),
@@ -267,12 +271,15 @@ def get_piper_models() -> List[TtsModel]:
267271
TtsModel(model_dir="vits-piper-sr_RS-serbski_institut-medium"),
268272
TtsModel(model_dir="vits-piper-sv_SE-lisa-medium"),
269273
TtsModel(model_dir="vits-piper-sv_SE-nst-medium"),
274+
TtsModel(model_dir="vits-piper-sv_SE-alma-medium"),
270275
TtsModel(model_dir="vits-piper-sw_CD-lanfrica-medium"),
271276
TtsModel(model_dir="vits-piper-tr_TR-dfki-medium"),
272277
TtsModel(model_dir="vits-piper-tr_TR-fahrettin-medium"),
273278
TtsModel(model_dir="vits-piper-tr_TR-fettah-medium"),
279+
TtsModel(model_dir="vits-piper-ku_TR-berfin_renas-medium"),
274280
TtsModel(model_dir="vits-piper-uk_UA-lada-x_low"),
275281
TtsModel(model_dir="vits-piper-uk_UA-ukrainian_tts-medium"),
282+
TtsModel(model_dir="vits-piper-ur_PK-fasih-medium"),
276283
TtsModel(model_dir="vits-piper-vi_VN-25hours_single-low"),
277284
TtsModel(model_dir="vits-piper-vi_VN-vais1000-medium"),
278285
TtsModel(model_dir="vits-piper-vi_VN-vivos-x_low"),

scripts/piper/add_meta_data.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,11 @@ def main():
118118
has_g2pw = 0
119119
has_espeak = 1
120120

121-
if config["phoneme_type"] == "pinyin" and voice == "zh":
121+
if (
122+
"phoneme_type" in config
123+
and config["phoneme_type"] == "pinyin"
124+
and voice == "zh"
125+
):
122126
has_espeak = 0
123127
has_g2pw = 1
124128

scripts/piper/generate.py

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,63 @@ def get_fa_models():
440440
return ans
441441

442442

443+
# Basque
444+
def get_eu_models():
445+
eu_ES = [
446+
PiperModel(name="antton", kind="medium", sr=22050, ns=1),
447+
PiperModel(name="maider", kind="medium", sr=22050, ns=1),
448+
]
449+
450+
for m in eu_ES:
451+
m.lang = "eu_ES"
452+
if m.model_name == "":
453+
m.model_name = f"{m.lang}-{m.name}-{m.kind}.onnx"
454+
455+
ans = eu_ES
456+
457+
for m in ans:
458+
m.text = "Aberats izatea baino, izen ona hobe."
459+
code = m.lang[:2]
460+
if m.cmd == "":
461+
m.cmd = f"""
462+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/{m.model_name}
463+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/{m.model_name}.json
464+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/MODEL_CARD
465+
"""
466+
if m.url == "":
467+
m.url = f"https://huggingface.co/rhasspy/piper-voices/tree/main/{code}/{m.lang}/{m.name}/{m.kind}"
468+
469+
return ans
470+
471+
472+
# Urdu
473+
def get_ur_models():
474+
ur_PK = [
475+
PiperModel(name="fasih", kind="medium", sr=22050, ns=1),
476+
]
477+
478+
for m in ur_PK:
479+
m.lang = "ur_PK"
480+
if m.model_name == "":
481+
m.model_name = f"{m.lang}-{m.name}-{m.kind}.onnx"
482+
483+
ans = ur_PK
484+
485+
for m in ans:
486+
m.text = "قوس قزح، جسے قوس قزح یا رنگوں کی قوس قزح بھی کہا جاتا ہے، ایک قدرتی طبعی رجحان ہے جو بارش کے قطرے کے ذریعے سورج کی روشنی کے اضطراب اور پھیلاؤ کے نتیجے میں ہوتا ہے۔"
487+
code = m.lang[:2]
488+
if m.cmd == "":
489+
m.cmd = f"""
490+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/{m.model_name}
491+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/{m.model_name}.json
492+
wget -qq https://huggingface.co/rhasspy/piper-voices/resolve/main/{code}/{m.lang}/{m.name}/{m.kind}/MODEL_CARD
493+
"""
494+
if m.url == "":
495+
m.url = f"https://huggingface.co/rhasspy/piper-voices/tree/main/{code}/{m.lang}/{m.name}/{m.kind}"
496+
497+
return ans
498+
499+
443500
# finnish
444501
def get_fi_models():
445502
fi_FI = [
@@ -921,6 +978,7 @@ def get_nl_models():
921978
nl_NL = [
922979
PiperModel(name="pim", kind="medium", sr=22050, ns=1),
923980
PiperModel(name="ronnie", kind="medium", sr=22050, ns=1),
981+
PiperModel(name="alex", kind="medium", sr=22050, ns=1),
924982
]
925983

926984
nl_NL += [
@@ -1049,6 +1107,7 @@ def get_pl_models():
10491107
PiperModel(name="darkman", kind="medium", sr=22050, ns=1),
10501108
PiperModel(name="gosia", kind="medium", sr=22050, ns=1),
10511109
PiperModel(name="mc_speech", kind="medium", sr=22050, ns=1),
1110+
PiperModel(name="bass", kind="high", sr=22050, ns=1),
10521111
]
10531112

10541113
pl_PL.extend(
@@ -1496,6 +1555,7 @@ def get_sv_models():
14961555
sv_SE = [
14971556
PiperModel(name="lisa", kind="medium", sr=22050, ns=1),
14981557
PiperModel(name="nst", kind="medium", sr=22050, ns=1),
1558+
PiperModel(name="alma", kind="medium", sr=22050, ns=1),
14991559
]
15001560

15011561
for m in sv_SE:
@@ -1556,18 +1616,25 @@ def get_sw_models():
15561616
def get_tr_models():
15571617
tr_TR = [
15581618
PiperModel(name="dfki", kind="medium", sr=22050, ns=1),
1559-
PiperModel(name="fahrettin", kind="medium", sr=22050, ns=1),
1560-
PiperModel(name="fettah", kind="medium", sr=22050, ns=1),
1619+
# PiperModel(name="fahrettin", kind="medium", sr=22050, ns=1), # removed
1620+
# PiperModel(name="fettah", kind="medium", sr=22050, ns=1), # removed
1621+
]
1622+
1623+
ku_TR = [
1624+
PiperModel(name="berfin_renas", kind="medium", sr=22050, ns=1),
15611625
]
15621626

15631627
for m in tr_TR:
15641628
m.lang = "tr_TR"
1629+
m.text = "Bir evin duvarları, bir adamın sözü, bir kadının gülü kırılmaz"
15651630

1566-
ans = tr_TR
1631+
for m in ku_TR:
1632+
m.lang = "ku_TR"
1633+
m.text = "Ev motorê nivîsandinê bi dengî ye ku Kaldiya serî de bi kar tîne"
15671634

1568-
for m in ans:
1569-
m.text = "Bir evin duvarları, bir adamın sözü, bir kadının gülü kırılmaz"
1635+
ans = tr_TR + ku_TR
15701636

1637+
for m in ans:
15711638
if m.model_name == "":
15721639
m.model_name = f"{m.lang}-{m.name}-{m.kind}.onnx"
15731640

@@ -2116,6 +2183,7 @@ def get_all_models():
21162183
ans += get_el_models()
21172184
ans += get_en_models()
21182185
ans += get_es_models()
2186+
ans += get_eu_models()
21192187
ans += get_fa_models()
21202188
ans += get_fi_models()
21212189
ans += get_fr_models()
@@ -2144,6 +2212,7 @@ def get_all_models():
21442212
ans += get_sw_models()
21452213
ans += get_tr_models()
21462214
ans += get_uk_models()
2215+
ans += get_ur_models()
21472216
ans += get_vi_models()
21482217
ans += get_zh_models()
21492218

0 commit comments

Comments
 (0)