Page MenuHomePhabricator

No OneTemporary

diff --git a/AutoCoverTool/readme.txt b/AutoCoverTool/readme.txt
index 6ce7935..53db6fb 100644
--- a/AutoCoverTool/readme.txt
+++ b/AutoCoverTool/readme.txt
@@ -1,224 +1,149 @@
自动翻唱工具
+简介: 输入原唱音频,自动进行人声伴奏分离,将人声进行音色转换,然后和伴奏合并,输出翻唱后的音频
+目前有两种方案:
+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
+
+合成方案:
+ 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
-/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
-
-
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/0.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/1.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/2.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/3.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/4.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/5.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/6.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step1/7.zip
-
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step2/0.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step2/1.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step3/2.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step4/3.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step5/4.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step6/5.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step7/6.zip
-https://av-audit-sync-bj-1256122840.cos.ap-beijing.myqcloud.com/tmp/fanchang/step8/7.zip
-
-
-// 从编辑库获取原唱数据:
-select task_url,starmaker_songid from starmaker_musicbook.silence where starmaker_songid in
-
-611752105026189342
-611752105030433779
-611752105029689090
-611752105021285282
-611752105030419624
-611752105030419633
-611752105030104548
-611752105029990849
-611752105029993297
-611752105030047424
-611752105030419688
-611752105023434557
-611752105024429936
-611752105027557408
-611752105024250202
-611752105027302268
-611752105026707760
-611752105022345104
-611752105024678976
-611752105024679221
-611752105020378620
-611752105022667231
-611752105023811083
-611752105023623965
-611752105022745595
-611752105020290695
-611752105028683824
-611752105020411654
-611752105020286501
-611752105020387015
-611752105020382559
-611752105030077711
-611752105019423720
-611752105020256284
-611752105020357112
-611752105024628047
-611752105020282612
-611752105020351134
-611752105020336950
-611752105022736204
-611752105020290639
-611752105021442406
-611752105020286443
-611752105024953316
-611752105020282613
-611752105024714646
-611752105022647082
-611752105027188746
-611752105022770952
-611752105020417488
-611752105025104181
-611752105022735101
-611752105023532439
-611752105022842477
-611752105028650636
-611752105022842004
-611752105029954168
-611752105020417688
-611752105020336946
-611752105020394297
-611752105026946178
-611752105020343687
-611752105024676794
-611752105020390950
-611752105020286433
-611752105026771723
-611752105022446809
-611752105020350988
-611752105025510149
-611752105020394121
-611752105021442417
-611752105020256227
-611752105025231610
-611752105021453011
-611752105020325137
-611752105027047993
-611752105021330812
-611752105021375100
-611752105021273980
-611752105021453011
-611752105020325137
-611752105027047993
-611752105021330812
-611752105021273980
-611752105024786030
-611752105027189453
-611752105020548211
-611752105020286446
-611752105020376320
-611752105020563523
-611752105027588072
-611752105022389596
-611752105020315368
-611752105020343699
-611752105029954089
-611752105026523547
-611752105029955214
-611752105020315328
-611752105020350990
-611752105021332759

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jan 12, 08:30 (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1347161
Default Alt Text
(11 KB)

Event Timeline