Linux上能方便用上UVR5的方案

A convenient way to use UVR5 on Linux.

Posted by Tee on July 25,2024

如果你不知道UVR5,UVR(ultimatevocalremovergui)是一个分离乐器与人声的AI项目。可是它目前并没有提供Linux下直接安装使用的打包,需要自己去搭建环境。

而RVC这个变声项目刚好整合了UVR5,下面介绍的是如何用docker运行RVC项目,从而使用UVR5。

以下默认docker与docker compose已经在你计算机正常安装并运行

以下默认使用Nvidia显卡

克隆并修改dockerfile文件

在RVC项目本来的dockerfile里,我并不能用python 3.9安装requirements的库,需要修改。

git clone https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI

克隆之后修改dockerfile文件,我修改成使用最新版本的nvidia cuda镜像,删除安装python 3.9的内容,安装ubuntu 22.04源的python,增加去除混响与delay的模型。


FROM nvidia/cuda:12.5.1-cudnn-runtime-ubuntu22.04

EXPOSE 7865

WORKDIR /app

COPY . .

# Install dependenceis to add PPAs
RUN apt-get update && \
    apt-get install -y -qq ffmpeg aria2 && apt clean && \
    apt-get install -y software-properties-common && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get -y dist-upgrade
RUN apt install python3-pip -y

RUN python3 -m pip install --no-cache-dir -r requirements.txt

RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/D40k.pth -d assets/pretrained_v2/ -o D40k.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/G40k.pth -d assets/pretrained_v2/ -o G40k.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0D40k.pth -d assets/pretrained_v2/ -o f0D40k.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0G40k.pth -d assets/pretrained_v2/ -o f0G40k.pth

RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-人声vocals+非人声instrumentals.pth -d assets/uvr5_weights/ -o HP2-人声vocals+非人声instrumentals.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-主旋律人声vocals+其他instrumentals.pth -d assets/uvr5_weights/ -o HP5-主旋律人声vocals+其他instrumentals.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/VR-DeEchoDeReverb.pth -d assets/uvr5_weights/ -o VR-DeEchoDeReverb.pth
RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/onnx_dereverb_By_FoxJoy/vocals.onnx -d assets/uvr5_weights/onnx_dereverb_By_FoxJoy -o vocals.onnx

RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d assets/hubert -o hubert_base.pt

RUN aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt -d assets/rmvpe -o rmvpe.pt

VOLUME [ "/app/weights", "/app/opt" ]

CMD ["python3", "infer-web.py"]

以下是diff:

修改diff

运行与使用

运行:docker compose up

浏览器访问:http://127.0.0.1:7865/

处理过程图示,结果文件存储在如图中定义的opt目录结果


本作品采用知识共享署名 4.0 国际许可协议进行许可。