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>

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

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

TRAE编程

TRAE编程

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

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多