From 19ffe2c03ca99b348a1a65560a4fd7757ab1bdde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 5 Jun 2024 16:05:40 +0900 Subject: [PATCH] doc(cn): tidy format of Changelog --- docs/cn/Changelog_CN.md | 50 ++++++++------ docs/cn/faq.md | 147 ++++++++++++++++++++++++++-------------- 2 files changed, 127 insertions(+), 70 deletions(-) diff --git a/docs/cn/Changelog_CN.md b/docs/cn/Changelog_CN.md index c3753ec..676ffb7 100644 --- a/docs/cn/Changelog_CN.md +++ b/docs/cn/Changelog_CN.md @@ -1,30 +1,40 @@ ### 20231006更新 -我们制作了一个用于实时变声的界面go-realtime-gui.bat/gui_v1.py(事实上早就存在了),本次更新重点也优化了实时变声的性能。对比0813版: - - 1、优优化界面操作:参数热更新(调整参数不需要中止再启动),懒加载模型(已加载过的模型不需要重新加载),增加响度因子参数(响度向输入音频靠近) - - 2、优化自带降噪效果与速度 - - 3、大幅优化推理速度 +我们制作了一个用于实时变声的界面go-realtime-gui.bat/gui_v1.py(事实上早就存在了),本次更新重点也优化了实时变声的性能。 + +对比0813版: + +1. 优化界面操作 + - 参数热更新(调整参数不需要中止再启动) + - 懒加载模型(已加载过的模型不需要重新加载) + - 增加响度因子参数(响度向输入音频靠近) +2. 优化自带降噪效果与速度 +3. 大幅优化推理速度 注意输入输出设备应该选择同种类型,例如都选MME类型。 1006版本整体的更新为: - - 1、继续提升rmvpe音高提取算法效果,对于男低音有更大的提升 - - 2、优化推理界面布局 +1. 继续提升rmvpe音高提取算法效果,对于男低音有更大的提升 +2. 优化推理界面布局 ### 20230813更新 -1-常规bug修复 - - 保存频率总轮数最低改为1 总轮数最低改为2 - - 修复无pretrain模型训练报错 - - 增加伴奏人声分离完毕清理显存 - - faiss保存路径绝对路径改为相对路径 - - 支持路径包含空格(训练集路径+实验名称均支持,不再会报错) - - filelist取消强制utf8编码 - - 解决实时变声中开启索引导致的CPU极大占用问题 +1. 常规bug修复 + - 保存频率总轮数最低改为1 总轮数最低改为2 + - 修复无pretrain模型训练报错 + - 增加伴奏人声分离完毕清理显存 + - faiss保存路径绝对路径改为相对路径 + - 支持路径包含空格(训练集路径+实验名称均支持,不再会报错) + - filelist取消强制utf8编码 + - 解决实时变声中开启索引导致的CPU极大占用问题 -2-重点更新 - - 训练出当前最强开源人声音高提取模型RMVPE,并用于RVC的训练、离线/实时推理,支持pytorch/onnx/DirectML - - 通过pytorch-dml支持A卡和I卡的 -(1)实时变声(2)推理(3)人声伴奏分离(4)训练暂未支持,会切换至CPU训练;通过onnx_dml支持rmvpe_gpu的推理 +2. 重点更新 + - 训练出当前最强开源人声音高提取模型RMVPE,并用于RVC的训练、离线/实时推理,支持pytorch/onnx/DirectML + - 通过pytorch-dml支持A卡和I卡的 + 1. 实时变声 + 2. 推理 + 3. 人声伴奏分离 + 4. 训练(暂未支持,会切换至CPU训练) + 5. 通过onnx_dml支持rmvpe_gpu的推理 ### 20230618更新 - v2增加32k和48k两个新预训练模型 @@ -46,8 +56,7 @@ todolist: - ~~多进程harvest推理:已经被RMVPE取代,不需要~~ - ~~crepe的精度支持和RVC-config同步:已经被RMVPE取代,不需要。支持这个还要同步torchcrepe的库,麻烦~~ - 对接F0编辑器 - - + ### 20230528更新 - 增加v2的jupyter notebook,韩文changelog,增加一些环境依赖 - 增加呼吸、清辅音、齿音保护模式 @@ -106,4 +115,3 @@ todolist: 底模: - 收集呼吸wav加入训练集修正呼吸变声电音的问题 - 我们正在训练增加了歌声训练集的底模,未来会公开 - diff --git a/docs/cn/faq.md b/docs/cn/faq.md index 4358723..07e612e 100644 --- a/docs/cn/faq.md +++ b/docs/cn/faq.md @@ -1,95 +1,144 @@ ## Q1:ffmpeg error/utf8 error. -大概率不是ffmpeg问题,而是音频路径问题;
-ffmpeg读取路径带空格、()等特殊符号,可能出现ffmpeg error;训练集音频带中文路径,在写入filelist.txt的时候可能出现utf8 error;
+大概率不是ffmpeg问题,而是音频路径问题; + +ffmpeg读取路径带空格、()等特殊符号,可能出现ffmpeg error;训练集音频带中文路径,在写入filelist.txt的时候可能出现utf8 error; + ## Q2:一键训练结束没有索引 -显示"Training is done. The program is closed."则模型训练成功,后续紧邻的报错是假的;
+显示"Training is done. The program is closed."则模型训练成功,后续紧邻的报错是假的; + + +一键训练结束完成没有added开头的索引文件,可能是因为训练集太大卡住了添加索引的步骤;已通过批处理add索引解决内存add索引对内存需求过大的问题。临时可尝试再次点击"训练索引"按钮。 -一键训练结束完成没有added开头的索引文件,可能是因为训练集太大卡住了添加索引的步骤;已通过批处理add索引解决内存add索引对内存需求过大的问题。临时可尝试再次点击"训练索引"按钮。
## Q3:训练结束推理没看到训练集的音色 -点刷新音色再看看,如果还没有看看训练有没有报错,控制台和webui的截图,logs/实验名下的log,都可以发给开发者看看。
+点刷新音色再看看,如果还没有看看训练有没有报错,控制台和webui的截图,logs/实验名下的log,都可以发给开发者看看。 + ## Q4:如何分享模型 -  rvc_root/logs/实验名 下面存储的pth不是用来分享模型用来推理的,而是为了存储实验状态供复现,以及继续训练用的。用来分享的模型应该是weights文件夹下大小为60+MB的pth文件;
-  后续将把weights/exp_name.pth和logs/exp_name/added_xxx.index合并打包成weights/exp_name.zip省去填写index的步骤,那么zip文件用来分享,不要分享pth文件,除非是想换机器继续训练;
-  如果你把logs文件夹下的几百MB的pth文件复制/分享到weights文件夹下强行用于推理,可能会出现f0,tgt_sr等各种key不存在的报错。你需要用ckpt选项卡最下面,手工或自动(本地logs下如果能找到相关信息则会自动)选择是否携带音高、目标音频采样率的选项后进行ckpt小模型提取(输入路径填G开头的那个),提取完在weights文件夹下会出现60+MB的pth文件,刷新音色后可以选择使用。
+  rvc_root/logs/实验名 下面存储的pth不是用来分享模型用来推理的,而是为了存储实验状态供复现,以及继续训练用的。用来分享的模型应该是weights文件夹下大小为60+MB的pth文件; + +  后续将把weights/exp_name.pth和logs/exp_name/added_xxx.index合并打包成weights/exp_name.zip省去填写index的步骤,那么zip文件用来分享,不要分享pth文件,除非是想换机器继续训练; + +  如果你把logs文件夹下的几百MB的pth文件复制/分享到weights文件夹下强行用于推理,可能会出现f0,tgt_sr等各种key不存在的报错。你需要用ckpt选项卡最下面,手工或自动(本地logs下如果能找到相关信息则会自动)选择是否携带音高、目标音频采样率的选项后进行ckpt小模型提取(输入路径填G开头的那个),提取完在weights文件夹下会出现60+MB的pth文件,刷新音色后可以选择使用。 + ## Q5:Connection Error. -也许你关闭了控制台(黑色窗口)。
+也许你关闭了控制台(黑色窗口)。 + ## Q6:WebUI弹出Expecting value: line 1 column 1 (char 0). -请关闭系统局域网代理/全局代理。
+请关闭系统局域网代理/全局代理。 + + +这个不仅是客户端的代理,也包括服务端的代理(例如你使用autodl设置了http_proxy和https_proxy学术加速,使用时也需要unset关掉) -这个不仅是客户端的代理,也包括服务端的代理(例如你使用autodl设置了http_proxy和https_proxy学术加速,使用时也需要unset关掉)
## Q7:不用WebUI如何通过命令训练推理 -训练脚本:
-可先跑通WebUI,消息窗内会显示数据集处理和训练用命令行;
+训练脚本: -推理脚本:
-https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py
+可先跑通WebUI,消息窗内会显示数据集处理和训练用命令行; -例子:
-runtime\python.exe myinfer.py 0 "E:\codes\py39\RVC-beta\todo-songs\1111.wav" "E:\codes\py39\logs\mi-test\added_IVF677_Flat_nprobe_7.index" harvest "test.wav" "weights/mi-test.pth" 0.6 cuda:0 True
+推理脚本: + +https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py + + +例子: + + +runtime\python.exe myinfer.py 0 "E:\codes\py39\RVC-beta\todo-songs\1111.wav" "E:\codes\py39\logs\mi-test\added_IVF677_Flat_nprobe_7.index" harvest "test.wav" "weights/mi-test.pth" 0.6 cuda:0 True + + +f0up_key=sys.argv[1] + +input_path=sys.argv[2] + +index_path=sys.argv[3] + +f0method=sys.argv[4]#harvest or pm + +opt_path=sys.argv[5] + +model_path=sys.argv[6] + +index_rate=float(sys.argv[7]) + +device=sys.argv[8] + +is_half=bool(sys.argv[9]) -f0up_key=sys.argv[1]
-input_path=sys.argv[2]
-index_path=sys.argv[3]
-f0method=sys.argv[4]#harvest or pm
-opt_path=sys.argv[5]
-model_path=sys.argv[6]
-index_rate=float(sys.argv[7])
-device=sys.argv[8]
-is_half=bool(sys.argv[9])
## Q8:Cuda error/Cuda out of memory. -小概率是cuda配置问题、设备不支持;大概率是显存不够(out of memory);
+小概率是cuda配置问题、设备不支持;大概率是显存不够(out of memory); + + +训练的话缩小batch size(如果缩小到1还不够只能更换显卡训练),推理的话酌情缩小config.py结尾的x_pad,x_query,x_center,x_max。4G以下显存(例如1060(3G)和各种2G显卡)可以直接放弃,4G显存显卡还有救。 -训练的话缩小batch size(如果缩小到1还不够只能更换显卡训练),推理的话酌情缩小config.py结尾的x_pad,x_query,x_center,x_max。4G以下显存(例如1060(3G)和各种2G显卡)可以直接放弃,4G显存显卡还有救。
## Q9:total_epoch调多少比较好 -如果训练集音质差底噪大,20~30足够了,调太高,底模音质无法带高你的低音质训练集
-如果训练集音质高底噪低时长多,可以调高,200是ok的(训练速度很快,既然你有条件准备高音质训练集,显卡想必条件也不错,肯定不在乎多一些训练时间)
+如果训练集音质差底噪大,20~30足够了,调太高,底模音质无法带高你的低音质训练集 + +如果训练集音质高底噪低时长多,可以调高,200是ok的(训练速度很快,既然你有条件准备高音质训练集,显卡想必条件也不错,肯定不在乎多一些训练时间) + ## Q10:需要多少训练集时长 -  推荐10min至50min
-  保证音质高底噪低的情况下,如果有个人特色的音色统一,则多多益善
-  高水平的训练集(精简+音色有特色),5min至10min也是ok的,仓库作者本人就经常这么玩
-  也有人拿1min至2min的数据来训练并且训练成功的,但是成功经验是其他人不可复现的,不太具备参考价值。这要求训练集音色特色非常明显(比如说高频气声较明显的萝莉少女音),且音质高;
-  1min以下时长数据目前没见有人尝试(成功)过。不建议进行这种鬼畜行为。
+  推荐10min至50min + +  保证音质高底噪低的情况下,如果有个人特色的音色统一,则多多益善 + +  高水平的训练集(精简+音色有特色),5min至10min也是ok的,仓库作者本人就经常这么玩 + +  也有人拿1min至2min的数据来训练并且训练成功的,但是成功经验是其他人不可复现的,不太具备参考价值。这要求训练集音色特色非常明显(比如说高频气声较明显的萝莉少女音),且音质高; + +  1min以下时长数据目前没见有人尝试(成功)过。不建议进行这种鬼畜行为。 + ## Q11:index rate干嘛用的,怎么调(科普) -  如果底模和推理源的音质高于训练集的音质,他们可以带高推理结果的音质,但代价可能是音色往底模/推理源的音色靠,这种现象叫做"音色泄露";
-  index rate用来削减/解决音色泄露问题。调到1,则理论上不存在推理源的音色泄露问题,但音质更倾向于训练集。如果训练集音质比推理源低,则index rate调高可能降低音质。调到0,则不具备利用检索混合来保护训练集音色的效果;
-  如果训练集优质时长多,可调高total_epoch,此时模型本身不太会引用推理源和底模的音色,很少存在"音色泄露"问题,此时index_rate不重要,你甚至可以不建立/分享index索引文件。
+  如果底模和推理源的音质高于训练集的音质,他们可以带高推理结果的音质,但代价可能是音色往底模/推理源的音色靠,这种现象叫做"音色泄露"; + +  index rate用来削减/解决音色泄露问题。调到1,则理论上不存在推理源的音色泄露问题,但音质更倾向于训练集。如果训练集音质比推理源低,则index rate调高可能降低音质。调到0,则不具备利用检索混合来保护训练集音色的效果; + +  如果训练集优质时长多,可调高total_epoch,此时模型本身不太会引用推理源和底模的音色,很少存在"音色泄露"问题,此时index_rate不重要,你甚至可以不建立/分享index索引文件。 + ## Q11:推理怎么选gpu -config.py文件里device cuda:后面选择卡号;
-卡号和显卡的映射关系,在训练选项卡的显卡信息栏里能看到。
+config.py文件里device cuda:后面选择卡号; + +卡号和显卡的映射关系,在训练选项卡的显卡信息栏里能看到。 + ## Q12:如何推理训练中间保存的pth -通过ckpt选项卡最下面提取小模型。
+通过ckpt选项卡最下面提取小模型。 + ## Q13:如何中断和继续训练 -现阶段只能关闭WebUI控制台双击go-web.bat重启程序。网页参数也要刷新重新填写;
-继续训练:相同网页参数点训练模型,就会接着上次的checkpoint继续训练。
+现阶段只能关闭WebUI控制台双击go-web.bat重启程序。网页参数也要刷新重新填写; + +继续训练:相同网页参数点训练模型,就会接着上次的checkpoint继续训练。 + ## Q14:训练时出现文件页面/内存error -进程开太多了,内存炸了。你可能可以通过如下方式解决
-1、"提取音高和处理数据使用的CPU进程数" 酌情拉低;
-2、训练集音频手工切一下,不要太长。
+进程开太多了,内存炸了。你可能可以通过如下方式解决 + +1、"提取音高和处理数据使用的CPU进程数" 酌情拉低; + +2、训练集音频手工切一下,不要太长。 + ## Q15:如何中途加数据训练 -1、所有数据新建一个实验名;
-2、拷贝上一次的最新的那个G和D文件(或者你想基于哪个中间ckpt训练,也可以拷贝中间的)到新实验名;下
-3、一键训练新实验名,他会继续上一次的最新进度训练。
+1、所有数据新建一个实验名; + +2、拷贝上一次的最新的那个G和D文件(或者你想基于哪个中间ckpt训练,也可以拷贝中间的)到新实验名;下 + +3、一键训练新实验名,他会继续上一次的最新进度训练。 + ## Q16: error about llvmlite.dll