M4Singer 搭建教程

737 阅读2分钟

M4Singer 是一个基于训练好的音色,输出指定音色歌曲的开源产品。但是官方没有详细的安装教程,通过几天的尝试,输出一份搭建教程,帮助大家搭建使用。

产品功能演示

image.png

搭建教程

环境:Ubuntu 20.04 server 64bit 8C32G/GPU:1 * NVIDIA T4 16G/Python3.8.10/CUDA 12.2

windwos(windows版本未搭建成功:win系统需要修改代码内的编码格式,文件路径,但是启动时报大模型参数缺失,无力解决了。) image.png

Ubuntu image.png

1、环境准备按官方说明,建立data/raw文件夹,clone官方代码,下载官方的模型和数据文件

数据文件文件--解压至data/raw

Vocoder/ PitchExtractor / DiffSinger 的预训练模型/ FFT-Singer 的预训练模型--解压到data/raw/checkpoints(需要手动创建checkpoints文件夹)

2、安装python3.8虚拟环境

add-apt-repository ppa:deadsnakes/ppa   #添加PPA
apt install python3.8      # 安装Python3.8
apt install python3.8-venv # 安装3.8建立虚拟环境virtualenv
apt install python3.8-dev  # 安装Python3.8-dev(开发版)
python3.8 -m venv venv38   # 建立虚拟环境
source venv38/bin/activate  # 激活虚拟环境

3、安装依赖(因官方未说明使用的python版本,依赖中的组件版本需要根据报错自行修改调整,文末会上传我使用的依赖版本)

pip install -v -r requirements_2080.txt -i https://pypi.tuna.tsinghua.edu.cn/simple   #安装依赖

4、修改监听

vi ./inference/m4singer/gradio/infer.py  
---
    iface.launch(server_name='0.0.0.0')   #修改89行内容--使其可以外部访问
---

5、安装gradio

pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple   #安装gradio

6、启动服务

export PYTHONPATH=.     #加载环境变量
CUDA_VISIBLE_DEVICES=0 python inference/m4singer/gradio/infer.py    #前台启动服务
CUDA_VISIBLE_DEVICES=0 nohup python inference/m4singer/gradio/infer.py > logs.log 2>&1 &    #后台启动服务

最后是我使用的requirements_2080.txt(仅作参考,因环境差异,需要自行根据报错调整版本)

absl-py==0.11.0
alignment==1.0.10
altgraph==0.17
appdirs==1.4.4
async-timeout==3.0.1
audioread==2.1.9
backcall==0.2.0
blinker==1.4
brotlipy==0.7.0
cachetools==4.2.0
certifi==2020.12.5
cffi==1.14.4
chardet==4.0.0
click==7.1.2
cycler==0.10.0
Cython==0.29.21
cytoolz==0.11.0
decorator==4.4.2
Distance==0.1.3
einops==0.3.0
et-xmlfile==1.0.1
fsspec==0.8.4
future==0.18.2
g2p-en==2.1.0
g2pM==0.1.2.5
google-auth==1.24.0
google-auth-oauthlib==0.4.2
grpcio==1.34.0
h5py==3.1.0
horology==1.1.0
httplib2==0.18.1
idna==2.10
imageio==2.9.0
inflect==5.0.2
ipdb==0.13.4
ipython==7.19.0
ipython-genutils==0.2.0
jdcal==1.4.1
jedi==0.17.2
jieba==0.42.1
jiwer==2.2.0
joblib==1.0.0
kiwisolver==1.3.1
librosa==0.8.0
llvmlite==0.31.0
Markdown==3.3.3
matplotlib==3.3.3
miditoolkit==0.1.7
mido==1.2.9
music21==5.7.2
networkx==2.5
nltk==3.5
numba==0.48.0
numpy==1.24.4
oauth2client==4.1.3
oauthlib==3.1.0
olefile==0.46
packaging==20.7
pandas==1.2.0
parso==0.7.1
patsy==0.5.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==8.0.1
pooch==1.3.0
praat-parselmouth==0.3.3
prompt-toolkit==3.0.8
protobuf==3.13.0
ptyprocess==0.6.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
pycwt==0.3.0a22
Pygments==2.7.3
PyInstaller==3.6
PyJWT==1.7.1
pyloudnorm==0.1.0
pyparsing==2.4.7
pypinyin==0.39.0
PySocks==1.7.1
python-dateutil==2.8.1
python-Levenshtein==0.12.0
pytorch-lightning==0.7.1
pytz==2020.5
PyWavelets==1.1.1
pyworld==0.2.12
PyYAML==5.3.1
regex==2020.11.13
requests==2.25.1
requests-oauthlib==1.3.0
resampy==0.2.2
Resemblyzer==0.1.1.dev0
rsa==4.6
scikit-image==0.16.2
scikit-learn==0.22.2.post1
scipy==1.5.4
six==1.15.0
SoundFile==0.10.3.post1
stopit==1.1.1
tensorboard==2.4.0
tensorboard-plugin-wit==1.7.0
tensorboardX==2.1
TextGrid==1.5
threadpoolctl==2.1.0
toolz==0.11.1
torch==1.8.1
torchaudio==0.8.1
torchvision==0.9.1
tqdm==4.54.1
traitlets==5.0.5
typing==3.7.4.3
urllib3==1.26.2
uuid==1.30
wcwidth==0.2.5
webencodings==0.5.1
webrtcvad==2.0.10
Werkzeug==1.0.1
pretty-midi==0.2.9