Mangio-RVC-Fork

Mangio-RVC-Fork

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

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

RVC语音转换AI深度学习音频处理Github开源项目

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
<div align="center"> <h1>支持v2的Mangio-RVC-Fork!💻</h1> 这是一个基于VITS的易用SVC框架的分支,具有top1检索功能💯。总的来说,这个分支还提供了CLI界面。它还为您提供了更多的f0方法,以及使用nanmedian的个性化"混合"f0估计方法。<br><br> <b> <h1>!! 功能实现已推迟 -- 正在进行其他相关改进 !!</h1>

<b>我正在独自开发。通过捐赠来支持我快速开发开源A.I深度神经网络音频工具和框架。捐赠意味着您对改进音频A.I整体做出承诺。您应该捐赠是因为您只想"支持"我,而不是因为您期望得到一个成品。没有任何保证。谢谢</b> <br> <a href="https://www.paypal.com/donate/?business=HEW6P8R79NFFN&no_recurring=0&item_name=I+have+an+altruistic+drive+to+develop+open-source+A.I+frameworks+and+tools.+Support+me+in+improving+A.I+audio+entirely.&currency_code=AUD"><img src="https://yellow-cdn.veclightyear.com/835a84d5/a56fc058-e1d5-4c00-8df1-f5632e2e5cbc.png" height="42"></a>

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

</b>

<b>现在支持版本2预训练模型!</b>

在Discord上添加我:Funky Town#2048

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

madewithlove

Licence

Huggingface

Discord

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

Open In Colab

<img src="https://yellow-cdn.veclightyear.com/835a84d5/7c269570-41c9-4998-8649-458a71c43945.gif" /><br>

</div>

原始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 教程,如有需要可以查看。

致谢

感谢所有贡献者的努力

<a href="https://github.com/liujing04/Retrieval-based-Voice-Conversion-WebUI/graphs/contributors" target="_blank"> <img src="https://contrib.rocks/image?repo=liujing04/Retrieval-based-Voice-Conversion-WebUI" /> </a>

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

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

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多