本案例给出语音分离模型uvr-mdx-infer系列的UVR-MDX-NET-Inst_HQ_3在NPU环境部署,并基于torch_npu执行推理任务的迁移实践。
使用约束
| 依赖软件 | 版本 |
|---|---|
| 昇腾NPU驱动 | >=25.0.RC1.1商发版本 |
| 昇腾NPU固件 | >=25.0.RC1.1商发版本 |
| CANN Toolkit | >=8.2.RC1商发版本 |
| CANN Kernel | >=8.2.RC1商发版本 |
| CANN NNAL | >=8.2.RC1商发版本 |
硬件设备
| 设备型号 | NPU配置 |
|---|---|
| Atlas 800I A2 910B | 1卡 |
安装依赖包: pip install -r requirements.txt
git clone https://github.com/seanghay/uvr-mdx-infer
https://huggingface.co/seanghay/uvr_models/blob/main/UVR-MDX-NET-Inst_HQ_3.onnx
在官方代码的seperate.py中,使用GPU或CPU对ONNX模型进行推理。使用昇腾推理,需要修改为CANNExecutionProvider,在第83行,具体改进如下:
#if torch.cuda.is_available():
# self.model = ort.InferenceSession(args['model_path'], providers=['CUDAExecutionProvider'])
#else:
# self.model = ort.InferenceSession(args['model_path'], providers=['CPUExecutionProvider'])
self.model = ort.InferenceSession(args['model_path'], providers=['CANNExecutionProvider'])或直接使用代码仓中的seperate.py
在推理启动脚本run.sh中,修改speech1.mp3为用户自己要分离的音频路径。
python run.sh