Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
add download button
Browse files
app.py
CHANGED
@@ -145,6 +145,24 @@ def create_to_symbol_fn(hps):
|
|
145 |
return to_symbol_fn
|
146 |
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
if __name__ == '__main__':
|
149 |
parser = argparse.ArgumentParser()
|
150 |
parser.add_argument('--device', type=str, default='cpu')
|
@@ -221,7 +239,10 @@ if __name__ == '__main__':
|
|
221 |
symbol_list_json = gr.Json(value=symbols, visible=False)
|
222 |
tts_submit = gr.Button("Generate", variant="primary")
|
223 |
tts_output1 = gr.Textbox(label="Output Message")
|
224 |
-
tts_output2 = gr.Audio(label="Output Audio")
|
|
|
|
|
|
|
225 |
tts_submit.click(tts_fn, [tts_input1, tts_input2, tts_input3, symbol_input],
|
226 |
[tts_output1, tts_output2])
|
227 |
symbol_input.change(to_symbol_fn,
|
@@ -262,7 +283,9 @@ if __name__ == '__main__':
|
|
262 |
vc_input3 = gr.Audio(label="Input Audio (30s limitation)")
|
263 |
vc_submit = gr.Button("Convert", variant="primary")
|
264 |
vc_output1 = gr.Textbox(label="Output Message")
|
265 |
-
vc_output2 = gr.Audio(label="Output Audio")
|
|
|
|
|
266 |
vc_submit.click(vc_fn, [vc_input1, vc_input2, vc_input3], [vc_output1, vc_output2])
|
267 |
with gr.TabItem("Soft Voice Conversion"):
|
268 |
with gr.Tabs():
|
@@ -281,7 +304,9 @@ if __name__ == '__main__':
|
|
281 |
vc_input3 = gr.Audio(label="Input Audio (30s limitation)", source="upload")
|
282 |
vc_submit = gr.Button("Convert", variant="primary")
|
283 |
vc_output1 = gr.Textbox(label="Output Message")
|
284 |
-
vc_output2 = gr.Audio(label="Output Audio")
|
|
|
|
|
285 |
# clear inputs
|
286 |
source_tabs.set_event_trigger("change", None, [], [vc_input2, vc_input3],
|
287 |
js="()=>[null,null]")
|
|
|
145 |
return to_symbol_fn
|
146 |
|
147 |
|
148 |
+
download_audio_js = """
|
149 |
+
() =>{{
|
150 |
+
let root = document.querySelector("body > gradio-app");
|
151 |
+
if (root.shadowRoot != null)
|
152 |
+
root = root.shadowRoot;
|
153 |
+
let audio = root.querySelector("#{audio_id}").querySelector("audio");
|
154 |
+
if (audio == undefined)
|
155 |
+
return;
|
156 |
+
audio = audio.src.replace("audio/wav", "audio/octet-stream");
|
157 |
+
let oA = document.createElement("a");
|
158 |
+
oA.download = Math.floor(Math.random()*100000000)+'.wav';
|
159 |
+
oA.href = audio;
|
160 |
+
document.body.appendChild(oA);
|
161 |
+
oA.click();
|
162 |
+
oA.remove();
|
163 |
+
}}
|
164 |
+
"""
|
165 |
+
|
166 |
if __name__ == '__main__':
|
167 |
parser = argparse.ArgumentParser()
|
168 |
parser.add_argument('--device', type=str, default='cpu')
|
|
|
239 |
symbol_list_json = gr.Json(value=symbols, visible=False)
|
240 |
tts_submit = gr.Button("Generate", variant="primary")
|
241 |
tts_output1 = gr.Textbox(label="Output Message")
|
242 |
+
tts_output2 = gr.Audio(label="Output Audio", elem_id=f"tts-audio{i}")
|
243 |
+
download = gr.Button("Download Audio")
|
244 |
+
download.click(None, [], [], _js=download_audio_js.format(audio_id=f"tts-audio{i}"))
|
245 |
+
|
246 |
tts_submit.click(tts_fn, [tts_input1, tts_input2, tts_input3, symbol_input],
|
247 |
[tts_output1, tts_output2])
|
248 |
symbol_input.change(to_symbol_fn,
|
|
|
283 |
vc_input3 = gr.Audio(label="Input Audio (30s limitation)")
|
284 |
vc_submit = gr.Button("Convert", variant="primary")
|
285 |
vc_output1 = gr.Textbox(label="Output Message")
|
286 |
+
vc_output2 = gr.Audio(label="Output Audio", elem_id=f"vc-audio{i}")
|
287 |
+
download = gr.Button("Download Audio")
|
288 |
+
download.click(None, [], [], _js=download_audio_js.format(audio_id=f"vc-audio{i}"))
|
289 |
vc_submit.click(vc_fn, [vc_input1, vc_input2, vc_input3], [vc_output1, vc_output2])
|
290 |
with gr.TabItem("Soft Voice Conversion"):
|
291 |
with gr.Tabs():
|
|
|
304 |
vc_input3 = gr.Audio(label="Input Audio (30s limitation)", source="upload")
|
305 |
vc_submit = gr.Button("Convert", variant="primary")
|
306 |
vc_output1 = gr.Textbox(label="Output Message")
|
307 |
+
vc_output2 = gr.Audio(label="Output Audio", elem_id=f"svc-audio{i}")
|
308 |
+
download = gr.Button("Download Audio")
|
309 |
+
download.click(None, [], [], _js=download_audio_js.format(audio_id=f"svc-audio{i}"))
|
310 |
# clear inputs
|
311 |
source_tabs.set_event_trigger("change", None, [], [vc_input2, vc_input3],
|
312 |
js="()=>[null,null]")
|