| import os | |
| import gradio as gr | |
| from scipy.io.wavfile import write | |
| def inference(audio): | |
| os.makedirs("out", exist_ok=True) | |
| write('test.wav', audio[0], audio[1]) | |
| os.system("python3 -m demucs.separate -n mdx_extra_q test.wav -o out") | |
| return "./out/mdx_extra_q/test/vocals.wav","./out/mdx_extra_q/test/bass.wav",\ | |
| "./out/mdx_extra_q/test/drums.wav","./out/mdx_extra_q/test/other.wav" | |
| title = "Demucs" | |
| description = "<p style='text-align: center'>基于波形域的音乐源分离模型,使用它非常简单,只需上传您的音频文件,或者点击其中一个示例以加载它们。</p>" | |
| article = "<p style='text-align: center'><a href='https://arxiv.org/abs/1911.13254' target='_blank'>Music Source Separation in the Waveform Domain</a> | <a href='https://github.com/facebookresearch/demucs' target='_blank'>Github Repo</a></p>" | |
| examples=[['test.mp3']] | |
| gr.Interface( | |
| inference, | |
| gr.inputs.Audio(type="numpy", label="上传"), | |
| [gr.outputs.Audio(type="filepath", label="人声"),gr.outputs.Audio(type="filepath", label="低音部分"),gr.outputs.Audio(type="filepath", label="打击乐器"),gr.outputs.Audio(type="filepath", label="其他")], | |
| title=title, | |
| description=description, | |
| article=article, | |
| examples=examples | |
| ).launch(enable_queue=True) |