Project Icon

Mangio-RVC-Fork

开源语音转换框架 支持多种F0算法和快速训练

Mangio-RVC-Fork是一个基于VITS的开源语音转换框架,具有top1检索功能。它提供CLI和Web界面,支持多种F0估计方法,包括混合F0算法。该工具可快速训练,使用少量数据也能获得良好效果。支持模型融合改变音色,以及UVR5模型分离人声和伴奏。项目持续开发中,计划添加更多功能优化用户体验。

7月28日更新日志:

  • 为了稳定性,撤销了SQL更改,现在使用csv
  • 修复了合并检查点的错误

7月26日更新日志:

  • 修复了命令行推理的回溯问题
  • 实施了用于格式化训练停止的SQL数据库
  • Gradio浏览器标签重命名为"Mangio-RVC-Web 💻"
  • 移除了"infer-web.py"中的基础功能
  • 格式化现在接受任何FFmpeg支持的音频格式

7月25日更新日志:

  • 改进了MacOS安装脚本。对于推理,只需从解压缩的文件夹中运行"run.sh",它将自动为您安装Python 3.8、Homebrew和其他依赖项。M1 Mac原生支持GPU加速,如果选择下载预训练模型,训练也应该可以正常工作。

7月23日更新日志:

  • Fp16检测现在与上一个RVC测试版之前的工作方式相同;与之前相比,不再出现训练速度减慢的情况
  • TensorBoard上的日志记录现在按每个epoch进行。它在一个epoch中每X步记录一次;因此图表上的每个点现在代表每个epoch
  • 更新了UI,包括占位符
  • 某些滑块现在只在需要时出现
  • 如果禁用音高引导,步骤2b(特征提取)将被隐藏
  • 不必要的单选按钮已替换为复选框

7月22日更新日志:

  • 使用StftPitchShift实现了实验性的共振峰移位(尝试使用praat和praatio但未成功)
  • 训练时添加了"停止训练"按钮,不再需要每次想停止模型训练时都重启RVC!
  • 自动检测所选模型的索引路径 + 自动检测路径,不再有默认值如"E:\codes\py39\vits_vc_gpu_train\logs\mi-test-1key\total_fea.npy",我们使用以下代码获取根目录和子文件夹:
os.path.abspath(os.getcwd())
  • 通过自动检测"/audios/"文件夹中的文件来显示音频文件下拉列表
  • 更稳定的Gradio版本(3.34.0),支持主题
  • 移除了"训练"标签中的"一键训练"按钮,因为它存在故障并使许多用户感到困惑
  • 更改了默认训练设置,使其对新用户更加优化
  • 执行"tensor-launch.py"时自动打开TensorBoard本地主机URL
  • 在推理和训练中实施了RMVPE

支持v2的Mangio-RVC-Fork!💻

这是一个基于VITS的易用SVC框架的分支,具有top1检索功能💯。总的来说,这个分支还提供了CLI界面。它还为您提供了更多的f0方法,以及使用nanmedian的个性化"混合"f0估计方法。

!! 功能实现已推迟 -- 正在进行其他相关改进 !!

我正在独自开发。通过捐赠来支持我快速开发开源A.I深度神经网络音频工具和框架。捐赠意味着您对改进音频A.I整体做出承诺。您应该捐赠是因为您只想"支持"我,而不是因为您期望得到一个成品。没有任何保证。谢谢

💓 请支持原始RVC仓库。显然,没有它,这个分支就不可能存在。Mangio-RVC-Fork旨在以我自己的方式基本上增强原始RVC仓库的功能。请注意,这个分支不稳定,分叉的目的是为了实验。不要认为这个分支是原始仓库的"更好"版本。把它看作是原始仓库的另一个"版本"。请注意,这没有Google Colab。如果您想使用Google Colab,请前往原始仓库。目前,这个分支旨在与Paperspace和本地机器一起使用。

现在支持版本2预训练模型!

在Discord上添加我:Funky Town#2048

我能够在这里与您进行交流。

madewithlove

Licence

Huggingface

Discord

特别感谢Discord用户@kalomaze#2983为这个分支创建了一个临时的Colab笔记本。最终,一个官方的、更稳定的笔记本将包含在这个分支中。如果可能的话,请使用Paperspace,因为它更加稳定。

Open In Colab



原始RVC演示视频在这里!

使用RVC的实时语音转换软件:w-okada/voice-changer

预训练模型的数据集使用了近50小时的高质量VCTK开源数据集。 高质量的授权歌曲数据集将陆续添加到训练集中供您使用,无需担心版权侵权问题。

摘要 📘

本分支(Mangio-RVC-Fork)相比原始仓库的特性 ☑️

  • f0推理算法全面改进: 🌟
    • 新增pyworld dio f0方法。
    • 新增另一种计算crepe f0的方法(mangio-crepe)。
    • 新增torchcrepe crepe-tiny模型(推理速度更快,但质量可能低于普通的完整crepe)。
    • 可通过web界面和命令行修改crepe算法的crepe_hop_length参数。
  • 训练时使用f0 Crepe音高提取。🌟 (实验性功能)在Paperspace机器上可用,但在本地Mac/Windows机器上不可用。可能存在内存泄漏风险,请注意。
  • Paperspace集成 🌟
    • infer-web.py增加Paperspace参数(--paperspace),用于共享gradio链接
    • 为Paperspace用户提供Makefile
  • 通过Makefile访问Tensorboard(make tensorboard)
  • 训练的总轮数滑块上限从1000增加到10,000。
  • 新增命令行功能
    • 在infer-web.py中添加--is_cli标志以使用命令行系统。
  • f0混合(中位数)估计方法,通过计算指定f0方法数组的nanmedian,获得所有指定f0方法的最佳效果。目前仅适用于命令行,soon将实现到图形界面 🌟
  • f0特征提取(训练)时的f0混合(中位数)估计方法。(非常实验性,可能存在严重bug)。使用混合方法进行特征提取将花费更长时间。

本仓库还具有以下特性:

  • 通过将源特征替换为训练集特征(使用top1检索)来减少音色泄漏;
  • 训练简单快速,即使在相对较差的显卡上也能实现;
  • 即使使用少量数据也能获得相对较好的结果(建议使用>=10分钟的低噪音语音);
  • 支持模型融合以改变音色(使用ckpt处理选项卡->ckpt合并);
  • 易于使用的Webui界面;
  • 使用UVR5模型快速分离人声和乐器。

计划在分支开发过程中添加的功能 ▶️

  • 推理批处理脚本。改进建议:
    • 据多位GitHub用户反馈,每次推理30秒的样本既可以提高质量,又可以防止harvest内存错误。
  • 改进GUI(更加便利)。
  • 自动删除旧的生成结果以节省空间。
  • 在Paperspace机器上进行更优化的训练

关于本分支在推理时的f0混合特性

目前,混合f0方法仅在命令行中可用,尚未在GUI中实现。但基本上在推理过程中,我们可以指定一个f0方法数组,例如["pm", "harvest", "crepe"],获取所有方法的f0计算结果,然后用nanmedian"组合"它们,得到一个混合f0信号,以获得所有提供的f0方法的"最佳效果"。

以下是如何在命令行中使用混合f0方法进行推理:

MyModel.pth saudio/Source.wav Output.wav logs/mi-test/added.index 0 -2 hybrid[pm+crepe] 128 3 0 1 0.95 0.33

注意,方法是"hybrid[pm+crepe]"而不是单一方法如"harvest"。

hybrid[pm+harvest+crepe]
# crepe计算将在计算堆栈的"末端"。
# parselmouth计算将在计算堆栈的"开始"。
# "hybrid"方法将计算pm、harvest和crepe的nanmedian

可以使用多种f0方法。但需要用'+'字符分隔。请注意,由于我们需要计算X倍的f0,推理时间会大大延长。

关于原始仓库的crepe方法与本分支的crepe方法(mangio-crepe)的比较

原始仓库的crepe f0计算方法与我的略有不同。可以说在某些方面,我的crepe实现在某些部分听起来更稳定。然而,原始仓库的crepe实现在消除噪音和伪音方面效果更好。在这个分支中,我自己的crepe实现(mangio-crepe)在GUI和CLI上都使用了可自定义的crepe_hop_length功能,而原始crepe没有这个功能。请注意,每种实现的声音略有不同,没有明确的"更好"或"更差"之分。这完全取决于具体情况!

如果必须选择一个,我强烈建议使用原始的crepe实现(而不是这个分支的),因为RVC的开发者对修复问题有更多的控制权。

关于本分支的f0训练附加功能

Crepe f0特征提取

Crepe训练仍然非常不稳定,有报告称存在内存泄漏。这将在未来修复,但在Paperspace机器上运行得相当好。请注意,crepe训练与harvest训练的模型相比会有一些差异。Crepe在某些部分听起来更清晰,但在某些部分也更像机器人。我认为两者都同样适合训练,但我仍然认为在推理时使用crepe不仅更快,而且音高更稳定(尤其是对于多层人声)。目前,使用harvest模型训练并用crepe进行推理是相当稳定的。但是,如果您使用crepe进行训练(f0特征提取),请确保您的数据集尽可能干净,以减少伪音和不需要的谐波,因为我认为crepe音高估计更容易受到混响的影响。

混合f0特征提取

仅适用于命令行(尚未在GUI中实现)。基本上与本自述文件中描述的推理时f0混合使用方法相同。在f0特征提取页面的参数中,您可以使用"hybrid[harvest+dio+pm+crepe]"代替"harvest"。这种f0 nanmedian混合方法在特征提取过程中会花费很长时间。如果您愿意使用混合f0,请耐心等待。

如果在使用crepe训练或pm和harvest等方法时遇到CUDA问题

这是由于进程数(n_p)过高造成的。请确保减少线程数。请在特征提取GUI上降低"使用的CPU线程数"滑块的值。

版本说明

欢迎使用RVC版本2!

请注意,版本2的预训练模型仅支持40k模型采样率。如果您想使用32k或48k,请使用版本1的预训练模型。

安装依赖 🖥️

使用pip(python3.9.8与此分支稳定兼容)

Paperspace用户:

cd Mangio-RVC-Fork
make install # 每次启动Paperspace机器时都需要执行此操作

Windows/MacOS

注意faiss 1.7.2MacOS下会引发Segmentation Fault: 11错误,如果您使用pip手动安装,请使用pip install faiss-cpu==1.7.0。在MacOS下可以通过brew安装Swig

brew install swig

安装依赖:

pip install -r requirements.txt

如果遇到httpx无效端口错误,请安装httpx==0.23.0

准备其他预训练模型 ⬇️

Paperspace用户:

cd Mangio-RVC-Fork
# 克隆此分支后只需执行一次(除非hugging face上的预训练模型发生变化,否则无需再次执行)
make basev1 
# 或者如果使用版本2的预训练模型
make basev2

本地用户

RVC需要其他预训练模型来进行推理和训练。 您需要从我们的Huggingface空间下载它们。

以下是RVC需要的预训练模型和其他文件列表:

hubert_base.pt

./pretrained 

./uvr5_weights


如果您想测试v2版本模型(v2版本模型将特征从9层hubert+final_proj的256维输入更改为12层hubert的768维输入,并添加了3个循环判别器),需要额外下载

./pretrained_v2 

#如果您使用Windows,可能需要此文件,如果已安装ffmpeg和ffprobe则可以跳过;ubuntu/debian用户可以通过apt install ffmpeg安装这两个库
./ffmpeg

./ffprobe

运行Web GUI进行推理和训练 💪

Paperspace用户:

cd Mangio-RVC-Fork
make run-ui

然后点击它提供的gradio链接。

或手动运行

# 在云端系统上使用 --paperspace 或 --colab 参数
python infer-web.py --pycmd python --port 3000

使用命令行界面进行推理和训练 💪 🔠

Paperspace 用户

cd Mangio-RVC-Fork
make run-cli

或手动执行

python infer-web.py --pycmd python --is_cli

使用方法

Mangio-RVC-Fork v2 命令行应用!

欢迎使用 RVC 的命令行版本。请阅读 https://github.com/Mangio621/Mangio-RVC-Fork (README.MD) 上的文档以了解如何使用此应用。

您当前在"首页":
    go home            : 返回带有导航列表的首页。
    go infer           : 进入推理命令执行页面。

    go pre-process     : 进入训练步骤1)预处理命令执行页面。
    go extract-feature : 进入训练步骤2)特征提取命令执行页面。
    go train           : 进入训练步骤3)开始或继续训练命令执行页面。
    go train-feature   : 进入训练特征索引命令执行页面。

    go extract-model   : 进入提取小模型命令执行页面。

首页:

例如,输入"go infer"将带您进入推理页面,您可以在那里输入您希望用于该特定页面的参数。例如,输入"go infer"将带您到这里:

首页: go infer
您当前在"推理":
    参数 1) ./weights 中带 .pth 的模型名称: mi-test.pth
    参数 2) 源音频路径: myFolder\MySource.wav
    参数 3) 要放置在 './audio-outputs' 中的输出文件名: MyTest.wav
    参数 4) 特征索引文件路径: logs/mi-test/added_IVF3042_Flat_nprobe_1.index
    参数 5) 说话人 ID: 0
    参数 6) 转调: 0
    参数 7) f0 方法: harvest (pm, harvest, crepe, crepe-tiny)
    参数 8) crepe 跳跃长度: 160
    参数 9) harvest 中值滤波半径: 3 (0-7)
    参数 10) 后重采样率: 0
    参数 11) 混音音量包络: 1
    参数 12) 特征索引比率: 0.78 (0-1)
    参数 13) 无声辅音保护 (减少伪音): 0.33 (数字越小 = 保护越多。0.50 表示不使用。)

示例: mi-test.pth saudio/Sidney.wav myTest.wav logs/mi-test/added_index.index 0 -2 harvest 160 3 0 1 0.95 0.33

推理: <在此处插入参数或复制粘贴示例>

运行 Tensorboard 📉

cd Mangio-RVC-Fork
make tensorboard

然后点击它提供的 tensorboard 链接并刷新数据。

更改 Gradio 主题:

  • [可选] 更改 Gradio 的主题:

    1. 用任何代码/文本编辑软件(如 notepad++notepadvscode 等)打开 infer-web.py

    2a. 按 Ctrl+F 搜索 with gr.Blocks(,选择未被完全注释的那个

    2b. 转到第 1842 行,你会看到 with gr.Blocks(theme='HaleyCH/HaleyCH_Theme') as app:

    1. 访问 Gradio 主题库:

    3.1 选择你喜欢的任何主题(例如这个)

    3.2 查看页面顶部

    图片

    3.3 复制主题变量(在这个例子中,是 theme='freddyaboulton/dracula_revamped')

    1. infer-web.py 中用 Gradio 主题库 中任何主题的值替换 theme='HaleyCH/HaleyCH_Theme'

共振峰移位说明

图片

  • 每次更改推理值时都要点击"应用"按钮。

  • 顾名思义,目前你只能使用 wav 文件,而且处理速度很慢,请耐心等待。

  • 如果你在 \formantshiftcfg\ 文件夹中添加了新的 preset.txt,请点击带有刷新表情的按钮

  • 如果你选择的预设被编辑过,点击刷新表情按钮将从文件中获取更新的值

其他

如果你使用 Windows,你可以下载并解压 RVC-beta.7z 以直接使用 RVC,并使用 go-web.bat 启动网页界面。

还有一个中文版的 RVC 教程,如有需要可以查看。

致谢

感谢所有贡献者的努力

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号