csukuangfj commited on
Commit
26ed9de
·
1 Parent(s): d6d04e6

add matcha

Browse files
Files changed (3) hide show
  1. app.py +7 -0
  2. model.py +78 -0
  3. 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
- #sherpa-onnx>=1.10.16
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