Katock commited on
Commit
2027697
·
1 Parent(s): 8e7c8ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -22
app.py CHANGED
@@ -21,12 +21,6 @@ sampling_rate = 44100
21
 
22
 
23
  def create_fn(model, spk):
24
- def select_mode(svc_input, tts_input, gender, tts_rate, vc_transform, auto_f0, f0_predictor):
25
- if svc_input is None:
26
- return tts_fn(tts_input, gender, tts_rate, vc_transform, auto_f0, f0_predictor)
27
- else:
28
- return svc_fn(svc_input, vc_transform, auto_f0, f0_predictor)
29
-
30
  def svc_fn(input_audio, vc_transform, auto_f0, f0p):
31
  if input_audio is None:
32
  return 0, None
@@ -72,7 +66,7 @@ def create_fn(model, spk):
72
  input_audio = (sr, audio)
73
  return svc_fn(input_audio, vc_transform, auto_f0, f0p)
74
 
75
- return select_mode
76
 
77
 
78
  if __name__ == '__main__':
@@ -94,7 +88,7 @@ if __name__ == '__main__':
94
  "<center> 使用此处资源创作的作品,请显著标明出处,CJ有两个模型,carl1更清晰,carl2音域广\n"
95
  )
96
  with gr.Tabs():
97
- for (name, cover, select_mode) in models:
98
  with gr.TabItem(name):
99
  with gr.Row():
100
  with gr.Column():
@@ -102,7 +96,6 @@ if __name__ == '__main__':
102
  with gr.TabItem('语音转语音'):
103
  svc_input = gr.Audio(
104
  label="上传干声 (已支持无限长音频,处理时间约为原音频时间的5倍)")
105
-
106
  with gr.TabItem('文本转语音'):
107
  tts_input = gr.Textbox(label='说话内容', value='',
108
  placeholder='已支持无限长内容,处理时间约为说完原内容时间的5倍')
@@ -110,15 +103,20 @@ if __name__ == '__main__':
110
  gender = gr.Radio(label='说话人性别 (男音调低,女音调高)', value='男',
111
  choices=['男', '女'])
112
  tts_rate = gr.Number(label='语速 (正负, 单位百分比)', value=0)
113
- with gr.Row():
114
- vc_transform = gr.Number(label="音高调整 (正负半音,12为1个八度)", value=0)
115
- f0_predictor = gr.Radio(label="f0预测器 (对电音有影响)",
116
- choices=['crepe', 'harvest', 'dio', 'pm'], value='crepe')
117
- with gr.Row():
118
- auto_f0 = gr.Checkbox(
119
- label="自动音高预测 (文本转语音或正常说话可选)",
120
- value=False)
121
- submit = gr.Button("生成", variant="primary")
 
 
 
 
 
122
 
123
  with gr.Column():
124
  gr.Markdown(
@@ -127,8 +125,7 @@ if __name__ == '__main__':
127
  '</div>'
128
  )
129
  vc_output = gr.Audio(label="输出音频")
130
-
131
- submit.click(select_mode,
132
- [svc_input, tts_input, gender, tts_rate, vc_transform, auto_f0, f0_predictor],
133
- vc_output)
134
  app.queue(concurrency_count=1, api_open=args.api).launch(share=args.share)
 
21
 
22
 
23
  def create_fn(model, spk):
 
 
 
 
 
 
24
  def svc_fn(input_audio, vc_transform, auto_f0, f0p):
25
  if input_audio is None:
26
  return 0, None
 
66
  input_audio = (sr, audio)
67
  return svc_fn(input_audio, vc_transform, auto_f0, f0p)
68
 
69
+ return svc_fn, tts_fn
70
 
71
 
72
  if __name__ == '__main__':
 
88
  "<center> 使用此处资源创作的作品,请显著标明出处,CJ有两个模型,carl1更清晰,carl2音域广\n"
89
  )
90
  with gr.Tabs():
91
+ for (name, cover, (svc_fn, tts_fn)) in models:
92
  with gr.TabItem(name):
93
  with gr.Row():
94
  with gr.Column():
 
96
  with gr.TabItem('语音转语音'):
97
  svc_input = gr.Audio(
98
  label="上传干声 (已支持无限长音频,处理时间约为原音频时间的5倍)")
 
99
  with gr.TabItem('文本转语音'):
100
  tts_input = gr.Textbox(label='说话内容', value='',
101
  placeholder='已支持无限长内容,处理时间约为说完原内容时间的5倍')
 
103
  gender = gr.Radio(label='说话人性别 (男音调低,女音调高)', value='男',
104
  choices=['男', '女'])
105
  tts_rate = gr.Number(label='语速 (正负, 单位百分比)', value=0)
106
+
107
+ with gr.Row():
108
+ vc_transform = gr.Number(label="音高调整 (正负半音,12为1个八度)", value=0)
109
+ f0_predictor = gr.Radio(label="f0预测器 (对电音有影响)",
110
+ choices=['crepe', 'harvest', 'dio', 'pm'], value='crepe')
111
+ with gr.Row():
112
+ auto_f0 = gr.Checkbox(
113
+ label="自动音高预测 (文本转语音或正常说话可选)",
114
+ value=False)
115
+ with gr.TabItem('语音转语音'):
116
+ svc_submit = gr.Button("生成", variant="primary")
117
+
118
+ with gr.TabItem('文本转语音'):
119
+ tts_submit = gr.Button("生成", variant="primary")
120
 
121
  with gr.Column():
122
  gr.Markdown(
 
125
  '</div>'
126
  )
127
  vc_output = gr.Audio(label="输出音频")
128
+ svc_submit.click(svc_fn, [svc_input, vc_transform, auto_f0, f0_predictor], vc_output)
129
+ tts_submit.click(tts_fn, [tts_input, gender, tts_rate, vc_transform, auto_f0, f0_predictor],
130
+ vc_output)
 
131
  app.queue(concurrency_count=1, api_open=args.api).launch(share=args.share)