Download app.py from FACED/Suno: direct link, hf CLI and curl.
- Browser
- Download file 1.63 kB
-
https://huggingface.co/spaces/FACED/Suno/resolve/main/app.py
- Command line
-
hf download hf://spaces/FACED/Suno/app.py
-
curl -L -o app.py https://huggingface.co/spaces/FACED/Suno/resolve/main/app.py
1.63 kB
| import os | |
| import gradio as gr | |
| from scipy.io.wavfile import write | |
| import tempfile | |
| import shutil | |
| def inference(audio_file): | |
| """处理上传的音频文件并分离人声和伴奏""" | |
| # 创建输出目录 | |
| os.makedirs("out", exist_ok=True) | |
| # 使用demucs分离音频 | |
| output_dir = "out" | |
| os.system(f"python -m demucs.separate -n htdemucs --two-stems=vocals '{audio_file}' -o {output_dir}") | |
| # 获取分离后的文件路径 | |
| base_name = os.path.basename(audio_file) | |
| name_without_ext = os.path.splitext(base_name)[0] | |
| vocals_path = os.path.join(output_dir, "htdemucs", name_without_ext, "vocals.wav") | |
| no_vocals_path = os.path.join(output_dir, "htdemucs", name_without_ext, "no_vocals.wav") | |
| return vocals_path, no_vocals_path | |
| # 创建API接口 | |
| title = "Suno 音乐分离工具" | |
| description = """ | |
| ### 使用说明 | |
| 1. 上传音频文件(支持mp3、wav等格式) | |
| 2. 点击"Submit"按钮 | |
| 3. 等待处理完成后下载分离后的人声和伴奏 | |
| ### 技术说明 | |
| - 本工具使用使用独家AI模型进行音频分离 | |
| - 分离质量取决于原始音频的质量和特性 | |
| """ | |
| # 创建应用界面 | |
| demo = gr.Interface( | |
| fn=inference, | |
| inputs=gr.Audio(type="filepath", label="上传音频文件"), | |
| outputs=[ | |
| gr.Audio(type="filepath", label="人声"), | |
| gr.Audio(type="filepath", label="伴奏") | |
| ], | |
| title=title, | |
| description=description, | |
| theme="huggingface", | |
| examples=[["test.mp3"]] | |
| ) | |
| if __name__ == "__main__": | |
| # 启动服务器,API 在新版 Gradio 中自动启用 | |
| demo.launch(share=True, server_name="0.0.0.0") |