Spaces:
Running
Running
Commit
·
26ed9de
1
Parent(s):
d6d04e6
add matcha
Browse files- app.py +7 -0
- model.py +78 -0
- requirements.txt +2 -2
app.py
CHANGED
|
@@ -71,6 +71,13 @@ css = """
|
|
| 71 |
"""
|
| 72 |
|
| 73 |
examples = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
[
|
| 75 |
"Chinese (Mandarin, 普通话)",
|
| 76 |
"csukuangfj/vits-zh-hf-fanchen-wnj|1",
|
|
|
|
| 71 |
"""
|
| 72 |
|
| 73 |
examples = [
|
| 74 |
+
[
|
| 75 |
+
"Chinese (Mandarin, 普通话)",
|
| 76 |
+
"csukuangfj/matcha-icefall-zh-baker|1",
|
| 77 |
+
"某某银行的副行长和一些行政领导表示,他们去过长江和长白山; 经济不断增长。2024年12月31号,拨打110或者18920240511。123456块钱。",
|
| 78 |
+
0,
|
| 79 |
+
1.0,
|
| 80 |
+
],
|
| 81 |
[
|
| 82 |
"Chinese (Mandarin, 普通话)",
|
| 83 |
"csukuangfj/vits-zh-hf-fanchen-wnj|1",
|
model.py
CHANGED
|
@@ -234,6 +234,83 @@ def _get_vits_zh_aishell3(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
|
|
| 234 |
return tts
|
| 235 |
|
| 236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
@lru_cache(maxsize=10)
|
| 238 |
def _get_vits_hf(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
|
| 239 |
repo_id = repo_id.split("|")[0]
|
|
@@ -444,6 +521,7 @@ persian_english_models = {
|
|
| 444 |
}
|
| 445 |
|
| 446 |
chinese_models = {
|
|
|
|
| 447 |
"csukuangfj/vits-zh-hf-fanchen-wnj|1": _get_vits_hf, # 1
|
| 448 |
"csukuangfj/vits-zh-hf-fanchen-C|187": _get_vits_hf, # 187
|
| 449 |
"csukuangfj/sherpa-onnx-vits-zh-ll|5": _get_vits_hf, # 804
|
|
|
|
| 234 |
return tts
|
| 235 |
|
| 236 |
|
| 237 |
+
@lru_cache(maxsize=10)
|
| 238 |
+
def _get_matcha_hf(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
|
| 239 |
+
repo_id = repo_id.split("|")[0]
|
| 240 |
+
assert repo_id in ("csukuangfj/matcha-icefall-zh-baker",)
|
| 241 |
+
|
| 242 |
+
if repo_id == "csukuangfj/matcha-icefall-zh-baker":
|
| 243 |
+
acoustic_model = "model-steps-3.onnx"
|
| 244 |
+
|
| 245 |
+
if not Path("/tmp/dict").is_dir():
|
| 246 |
+
os.system(
|
| 247 |
+
"cd /tmp; curl -SL -O https://github.com/csukuangfj/cppjieba/releases/download/sherpa-onnx-2024-04-19/dict.tar.bz2; tar xvf dict.tar.bz2"
|
| 248 |
+
)
|
| 249 |
+
os.system("ls -lh /tmp/dict")
|
| 250 |
+
|
| 251 |
+
acoustic_model = get_file(
|
| 252 |
+
repo_id=repo_id,
|
| 253 |
+
filename=acoustic_model,
|
| 254 |
+
subfolder=".",
|
| 255 |
+
)
|
| 256 |
+
|
| 257 |
+
vocoder = get_file(
|
| 258 |
+
repo_id="csukuangfj/sherpa-onnx-hifigan",
|
| 259 |
+
filename="hifigan_v2.onnx",
|
| 260 |
+
subfolder=".",
|
| 261 |
+
)
|
| 262 |
+
|
| 263 |
+
lexicon = get_file(
|
| 264 |
+
repo_id=repo_id,
|
| 265 |
+
filename="lexicon.txt",
|
| 266 |
+
subfolder=".",
|
| 267 |
+
)
|
| 268 |
+
|
| 269 |
+
tokens = get_file(
|
| 270 |
+
repo_id=repo_id,
|
| 271 |
+
filename="tokens.txt",
|
| 272 |
+
subfolder=".",
|
| 273 |
+
)
|
| 274 |
+
|
| 275 |
+
rule_fars = ""
|
| 276 |
+
|
| 277 |
+
rule_fsts = ["phone.fst", "date.fst", "number.fst"]
|
| 278 |
+
|
| 279 |
+
rule_fsts = [
|
| 280 |
+
get_file(
|
| 281 |
+
repo_id=repo_id,
|
| 282 |
+
filename=f,
|
| 283 |
+
subfolder=".",
|
| 284 |
+
)
|
| 285 |
+
for f in rule_fsts
|
| 286 |
+
]
|
| 287 |
+
rule_fsts = ",".join(rule_fsts)
|
| 288 |
+
|
| 289 |
+
vits_dict_dir = "/tmp/dict"
|
| 290 |
+
|
| 291 |
+
tts_config = sherpa_onnx.OfflineTtsConfig(
|
| 292 |
+
model=sherpa_onnx.OfflineTtsModelConfig(
|
| 293 |
+
vits=sherpa_onnx.OfflineTtsMatchaModelConfig(
|
| 294 |
+
acoustic_model=acoustic_model,
|
| 295 |
+
vocoder=vocoder,
|
| 296 |
+
lexicon=lexicon,
|
| 297 |
+
tokens=tokens,
|
| 298 |
+
dict_dir=dict_dir,
|
| 299 |
+
length_scale=1.0 / speed,
|
| 300 |
+
),
|
| 301 |
+
provider="cpu",
|
| 302 |
+
debug=True,
|
| 303 |
+
num_threads=2,
|
| 304 |
+
),
|
| 305 |
+
rule_fsts=rule_fsts,
|
| 306 |
+
rule_fars=rule_fars,
|
| 307 |
+
max_num_sentences=1,
|
| 308 |
+
)
|
| 309 |
+
tts = sherpa_onnx.OfflineTts(tts_config)
|
| 310 |
+
|
| 311 |
+
return tts
|
| 312 |
+
|
| 313 |
+
|
| 314 |
@lru_cache(maxsize=10)
|
| 315 |
def _get_vits_hf(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
|
| 316 |
repo_id = repo_id.split("|")[0]
|
|
|
|
| 521 |
}
|
| 522 |
|
| 523 |
chinese_models = {
|
| 524 |
+
"csukuangfj/matcha-icefall-zh-baker|1": _get_matcha_hf, # 1
|
| 525 |
"csukuangfj/vits-zh-hf-fanchen-wnj|1": _get_vits_hf, # 1
|
| 526 |
"csukuangfj/vits-zh-hf-fanchen-C|187": _get_vits_hf, # 187
|
| 527 |
"csukuangfj/sherpa-onnx-vits-zh-ll|5": _get_vits_hf, # 804
|
requirements.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
https://huggingface.co/csukuangfj/sherpa-onnx-wheels/resolve/main/cpu/1.10.29/sherpa_onnx-1.10.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
| 2 |
-
|
| 3 |
|
| 4 |
soundfile
|
|
|
|
| 1 |
+
#https://huggingface.co/csukuangfj/sherpa-onnx-wheels/resolve/main/cpu/1.10.29/sherpa_onnx-1.10.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
| 2 |
+
sherpa-onnx>=1.10.37
|
| 3 |
|
| 4 |
soundfile
|