Spaces:
Runtime error
Runtime error
Commit
·
352fab9
1
Parent(s):
032343b
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torchaudio
|
| 3 |
+
import gradio as gr
|
| 4 |
+
|
| 5 |
+
knn_vc = torch.hub.load('bshall/knn-vc', 'knn_vc', prematched=True, trust_repo=True, pretrained=True, device='cuda')
|
| 6 |
+
|
| 7 |
+
def voice_change(audio_in, audio_ref):
|
| 8 |
+
|
| 9 |
+
query_seq = knn_vc.get_features(audio_in)
|
| 10 |
+
matching_set = knn_vc.get_matching_set([audio_ref])
|
| 11 |
+
out_wav = knn_vc.match(query_seq, matching_set, topk=4)
|
| 12 |
+
torchaudio.save('output.wav', out_wav[None], 16000)
|
| 13 |
+
return 'output.wav'
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
app = gr.Blocks()
|
| 17 |
+
|
| 18 |
+
with app:
|
| 19 |
+
gr.Markdown("# <center>🥳🎶🎡 - KNN-VC AI变声</center>")
|
| 20 |
+
gr.Markdown("## <center>🌟 - 支持所有语言,无需训练、一键变声 </center>")
|
| 21 |
+
gr.Markdown("### <center>🌊 - 更多精彩应用,敬请关注[滔滔AI](http://www.talktalkai.com);滔滔AI,为爱滔滔!💕</center>")
|
| 22 |
+
|
| 23 |
+
with gr.Row():
|
| 24 |
+
with gr.Column():
|
| 25 |
+
inp1 = gr.Audio(type="filepath", label="请上传AI变声的原音频(决定变声后的语音内容)")
|
| 26 |
+
inp2 = gr.Audio(type="filepath", label="请上传AI变声的参照音频(决定变声后的语音音色)")
|
| 27 |
+
btn1 = gr.Button("一键开启AI变声吧", variant="primary")
|
| 28 |
+
with gr.Column():
|
| 29 |
+
out1 = gr.Audio(type="filepath", label="AI变声后的专属音频")
|
| 30 |
+
|
| 31 |
+
btn1.click(voice_change, [inp1, inp2], out1)
|
| 32 |
+
|
| 33 |
+
gr.Markdown("### <center>注意❗:请不要生成会对个人以及组织造成侵害的内容,此程序仅供科研、学习及个人娱乐使用。</center>")
|
| 34 |
+
gr.HTML('''
|
| 35 |
+
<div class="footer">
|
| 36 |
+
<p>🌊🏞️🎶 - 江水东流急,滔滔无尽声。 明·顾璘
|
| 37 |
+
</p>
|
| 38 |
+
</div>
|
| 39 |
+
''')
|
| 40 |
+
|
| 41 |
+
app.launch(show_error=True)
|
| 42 |
+
|