gz412 commited on
Commit
d0e12a4
·
1 Parent(s): 4070657

fix requirments

Browse files
Files changed (1) hide show
  1. app.py +28 -21
app.py CHANGED
@@ -1,37 +1,45 @@
1
  import spaces
2
  import sys
3
- import torch
4
  import gradio as gr
5
  import opencc
 
6
 
7
  # 添加第三方库路径
8
  sys.path.append('third_party/Matcha-TTS')
9
 
10
- from cosyvoice.cli.cosyvoice import CosyVoice2
11
- from cosyvoice.utils.file_utils import load_wav
12
 
13
- from huggingface_hub import hf_hub_download
 
 
 
14
 
15
 
16
- # 繁简转换
17
- converter = opencc.OpenCC('s2t.json')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
- # 加载模型
20
- cosyvoice_base = CosyVoice2(
21
- 'ASLP-lab/WSYue-TTS-Cosyvoice2',
22
- load_jit=False, load_trt=False, load_vllm=False, fp16=False
23
- )
24
- cosyvoice_zjg = CosyVoice2(
25
- 'ASLP-lab/WSYue-TTS-Cosyvoice2-zjg',
26
- load_jit=False, load_trt=False, load_vllm=False, fp16=False
27
- )
28
- # cosyvoice_biaobei = CosyVoice2(
29
- # 'pretrained_models/CosyVoice2-yue-biaobei',
30
- # load_jit=False, load_trt=False, load_vllm=False, fp16=False
31
- # )
32
 
33
- @spaces.GPU
34
  def tts_inference(model_choice, text, prompt_audio):
 
 
 
35
  # 选择模型和默认音频
36
  if model_choice == "CosyVoice2-张悦楷粤语评书":
37
  model = cosyvoice_zjg
@@ -75,7 +83,6 @@ demo = gr.Interface(
75
  label="选择模型", value="CosyVoice2-base"
76
  ),
77
  gr.Textbox(lines=2, label="输入文本"),
78
- # gr.Audio(source="upload", type="filepath", label="上传参考音频(仅 CosyVoice2-base 必需)")
79
  gr.Audio(sources=["upload"], type="filepath", label="上传参考音频(仅 CosyVoice2-base 必需)")
80
  ],
81
  outputs=[
 
1
  import spaces
2
  import sys
 
3
  import gradio as gr
4
  import opencc
5
+ from huggingface_hub import hf_hub_download
6
 
7
  # 添加第三方库路径
8
  sys.path.append('third_party/Matcha-TTS')
9
 
10
+ # 繁简转换
11
+ converter = opencc.OpenCC('s2t.json')
12
 
13
+ # ---- Lazy Import + 模型缓存 ----
14
+ cosyvoice_base = None
15
+ cosyvoice_zjg = None
16
+ load_wav = None
17
 
18
 
19
+ def load_models():
20
+ global cosyvoice_base, cosyvoice_zjg, load_wav
21
+ if cosyvoice_base is None or cosyvoice_zjg is None:
22
+ import torch
23
+ from cosyvoice.cli.cosyvoice import CosyVoice2
24
+ from cosyvoice.utils.file_utils import load_wav as _load_wav
25
+ load_wav = _load_wav
26
+
27
+ cosyvoice_base = CosyVoice2(
28
+ 'ASLP-lab/WSYue-TTS-Cosyvoice2',
29
+ load_jit=False, load_trt=False, load_vllm=False, fp16=False
30
+ )
31
+ cosyvoice_zjg = CosyVoice2(
32
+ 'ASLP-lab/WSYue-TTS-Cosyvoice2-zjg',
33
+ load_jit=False, load_trt=False, load_vllm=False, fp16=False
34
+ )
35
+ return cosyvoice_base, cosyvoice_zjg, load_wav
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
+ @spaces.GPU
39
  def tts_inference(model_choice, text, prompt_audio):
40
+ import torch
41
+ cosyvoice_base, cosyvoice_zjg, load_wav = load_models()
42
+
43
  # 选择模型和默认音频
44
  if model_choice == "CosyVoice2-张悦楷粤语评书":
45
  model = cosyvoice_zjg
 
83
  label="选择模型", value="CosyVoice2-base"
84
  ),
85
  gr.Textbox(lines=2, label="输入文本"),
 
86
  gr.Audio(sources=["upload"], type="filepath", label="上传参考音频(仅 CosyVoice2-base 必需)")
87
  ],
88
  outputs=[