Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F4845556
readme.txt
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
readme.txt
View Options
自动翻唱工具
简介: 输入原唱音频,自动进行人声伴奏分离,将人声进行音色转换,然后和伴奏合并,输出翻唱后的音频
目前有两种方案:
1. 变调(线上方案):
优点: 效果好,高质量率达到100%
缺点: 很容易被变换会原唱的音色
2. so-vits-svc方案
优点: 将原唱可以合成成任意特定人的音色,不容易被变换回原唱的音色
缺点: 针对于分离出的人声来做时效果较差,主要体现在多人和声部分、混响较大部分、乐器部分
变调方案(线上):
1. 环境部署
从sg-prod-ipaint-gpu-1机器上将 /opt/soft/bin/tone_shift_exe、/opt/soft/bin/simple_mixer 拷贝到要部署的机器
安装python环境:
环境安装:
conda create -n auto_song_cover python=3.9
# 安装demucs环境[进入到ref.music_remover 执行pip install -r requirements.txt]
pip install librosa
pip install scikit-maad
pip install praat-parselmouth
pip install matplotlib
pip install torchvision
pip install madmom
pip install torchstat
环境设置:
export PATH=$PATH:/data/gpu_env_common/env/bin/ffmpeg/bin
export PYTHONPATH=$PWD:$PWD/ref/music_remover/demucs
export LD_LIBRARY_PATH=/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/lib:$LD_LIBRARY_PATH
2. 快速使用
本方案的操作是从曲库的数据库获取到任务信息,然后进行消音、变调、合并处理后,再交付任务到数据库(详细逻辑见代码)
/data/gpu_env_common/env/anaconda3/envs/auto_song_cover/bin/python online/tone_shift_one.py
# 音视频部署方案:
目前已经将模型和环境全部放到共享盘上:
挂载: sudo mount -t nfs -o vers=4 172.17.1.64:/ /data
模型以及二进制文件地址: /data/gpu_env_common/res/av_svc
在当前目录下,执行操作:
conda activate music_remover_env
export PYTHONPATH=$PWD:$PWD/ref/music_remover/demucs
python3 online/tone_shift_one.py
合成方案:
1. 环境部署
在变调方案的基础上:
# 安装so_vits_svc环境[进入到ref.so_vits_svc 执行pip install -r requirements.txt]
export PYTHONPATH=$PWD:$PWD/ref/music_remover/demucs:$PWD/ref/so_vits_svc:$PWD/ref/split_dirty_frame
2. 快速使用(单独处理一个)
/data/gpu_env_common/env/anaconda3/envs/auto_song_cover/bin/python online/inference_one.py
其训练方案详情见script/train.sh
3. 注意: 预训练模型地址:
https://av-audit-sync-sg-1256122840.cos.ap-singapore.myqcloud.com/hub/models/so_vits_svc/G_0.pth
https://av-audit-sync-sg-1256122840.cos.ap-singapore.myqcloud.com/hub/models/so_vits_svc/D_0.pth
-----------------------------------------------------------------------------------------------------------------------
历史介绍:
自动翻唱工具
1. 训练音色
2. 给定音频,将音频按照特定音色进行转换
----data // 所有数据的位置
----ref // 依赖的代码的位置
----music_remover // 消音工具
----so-vits-svc // 训练音色和变声的工具
----script // 脚本位置
3. data结构介绍:
---train_users // 训练时使用的数据集
---zjl // 每个音色
---src // 源数据(文件夹)
---vocals // 消音之后的数据(文件夹)
---speaker0 // 切片之后的数据(文件夹)
---slice_resample // 重采样规整之后的数据(文件夹)
---speaker0 // 重采样规整之后的数据(文件夹)
---filelists // 训练时需要使用的文件夹
---train.txt
---val.txt
---test.txt
---config // 配置文件
---config.json // 配置文件
---inf_users // 推理时要用的数据
---song1 // 每个测试时输入的歌曲
---src // 源数据(文件)
---vocals // 分离出的人声文件
---acc // 分离出的伴奏文件
---song2
...
---out_data // 推理出的数据
---song1 // 每个歌曲
---song1_zjl_vocals // 歌曲和音色组成的结果人声
---song2
....
---final_data // 最终结果
---song1 // 每个歌曲
---song1_zjl_mix // 歌曲和音色组成的结果人声混音之后的结果
---------------------------------------------------------------------->>>>
快速使用之训练:
将数据放到data/train_users/xxx/src目录下,以ogg作为结尾
然后执行script/train.sh xxx 即可,输出的模型在data/train_users/xxx/logs/32k目录下
---------------------------------------------------------------------->>>>
训练过程:
环境变量:
export LD_LIBRARY_PATH=/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/lib:$LD_LIBRARY_PATH
export PATH=$PATH:/data/gpu_env_common/env/bin/ffmpeg/bin
export PYTHONPATH=$PWD:$PWD/ref/music_remover/demucs
# 训练过程
1. 收集数据放到data/train_users/zjl/src
2. 提取人声 & 分片 & 取音量响度大的Top80
/data/gpu_env_common/env/anaconda3/envs/demucs/bin/python script/get_vocals_for_train.py zjl
3. 重采样
/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/bin/python ref/so-vits-svc/resample.py --in_dir=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl --out_dir2=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/slice_resample
4. 生成配置文件
/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/bin/python ref/so-vits-svc/preprocess_flist_config.py --source_dir=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/slice_resample --train_list=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/filelists/train.txt --val_list=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/filelists/val.txt --test_list=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/filelists/test.txt --config_path=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/config/config.json
5. 预处理提取特征
/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/bin/python ref/so-vits-svc/preprocess_hubert_f0.py --in_dir=/data/rsync/jianli.yang/AutoCoverTool/data/train_users/zjl/slice_resample
6. 拷贝数据到logs文件夹
mkdir -p data/train_users/zjl/logs/32k
cp -r data/models/G_0.pth data/train_users/zjl/logs/32k
cp -r data/models/D_0.pth data/train_users/zjl/logs/32k
7. 训练
/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/bin/python ref/so-vits-svc/train.py -c data/train_users/zjl/config/config.json -m 32k -l data/train_users/zjl/logs
# 推理过程
1. 将输出放入data/inf_users/pfdyt/src.mp3
2. 提取人声、伴奏
/data/gpu_env_common/env/anaconda3/envs/demucs/bin/python script/get_vocals_for_inference.py data/inf_users/test_2/src.mp3 data/inf_users/test_2
3. 推理
/data/gpu_env_common/env/anaconda3/envs/so_vits_svc/bin/python ref/so-vits-svc/inference_main.py data/train_users/zjl/logs/32k/G_2000.pth data/train_users/zjl/config/config.json data/inf_users/pfdyt/vocal_32.wav data/out_data/pfdyt/pfdyt_zjl.wav
4. 获取占比信息,剔除占比过高的音频
/data/gpu_env_common/env/anaconda3/envs/th1_9_3_9/bin/python script/process_one.py
5. 对符合要求的音频进行降噪和拉伸
/opt/soft/bin/denoise_exe in_wav out_wav
/opt/soft/bin/draw_volume in_wav ref_wav out_wav
6. 手动制作, 使用 accentize/Chameleon 插件,复制原始wav的混响,以及调整响度大小
7. 用手动制作好的数据进行再次替换
/data/gpu_env_common/env/anaconda3/envs/th1_9_3_9/bin/python script/process_one.py
8. 将替换好的成品和伴奏混合,得到结果
/opt/soft/bin/simple_mixer in_wav acc_path mix_path
4. 将干声重采样
ffmpeg -i data/out_data/pfdyt/pfdyt_zjl.wav -ar 44100 -ac 2 data/out_data/pfdyt/pfdyt_zjl_44_2.wav
5. 合成
/data/rsync/jianli.yang/AutoCoverTool/data/bin/mixer data/models/impluse_im_plus_wet2.wav data/out_data/pfdyt/pfdyt_zjl_44_2.wav data/inf_users/pfdyt/acc.wav data/final_data/pfdyt_zjl_44_2_mix.wav
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 24, 19:39 (22 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1326491
Default Alt Text
readme.txt (8 KB)
Attached To
R350 av_svc
Event Timeline
Log In to Comment