Spaces:
Running
Running
csukuangfj
commited on
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
|