Spaces:
Running
Running
Katock
commited on
Commit
·
2027697
1
Parent(s):
8e7c8ac
Update app.py
Browse files
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
|
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,
|
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 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
132 |
-
|
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)
|