👏 Hi! 我是 Yumuing,一个技术的敲钟人👨💻 每天分享技术文章,永远做技术的朝拜者
最近,视频网站音乐区up主掀了“AI孙燕姿”的风潮。这种使用AI技术提取某位歌手的音色,再用其替换另一位歌手音色的方式,可以实现接近歌手本人翻唱的逼真效果。除孙燕姿外,面对周杰伦、陶喆、陈奕迅、王菲等众多具有独特嗓音的歌手,歌迷纷纷奔向“AI点唱机”——这个可以生成任何希望被翻唱歌曲的“神器”,让众多粉丝一偿“直接点歌偶像”的心愿。当然,以此为基础,也诞生了很多有意思的开源应用方案,如:无需学习其他伪音技巧,即可实现实时男女声音互换等等。作者将使用 RVC 模型和入梦工具,带大家实现以下几个功能:
- 音乐干声分离:背景音(BGM)与人声(干声)的分离
- 训练个人音色模型:作为模仿其他干声素材的音色数据
- 男女换声(伪音):基于异性干声素材,进行实时转化声音为异性声音
- AI 唱歌:仅作基础的模拟演唱,仍需进行调音等等操作,才可以达到完美
- 音色融合:不同音色的特征融合出一个全新的音色
现实案例说明
在进行教学前,我们先假设这样一个场景:现有素材,男声音色A,女声音色B,女声音色C的朗读素材C,男唱歌状态下的音色D,女声音色C的唱歌素材E,我们根据以上介绍的功能进行整合,可以做到以下案例:
- 案例一:将女声C的朗读素材进行干声分离,再用男声音色A朗读女声音色C的朗读素材C。
- 案例二:可以用女声B的音色去朗读女声C的朗读素材。
- 案例三:甚至能够进行小延迟(0.1s)的实时音色转换,比如将使用男声音色A的声音去讲,可以实时转化为女声音色B的声音,实现无技巧完成男女伪声转换。
- 案例四:利用音色D的声音去演唱音色C的唱歌素材,实现类似AI孙燕姿的功能。
- 案例五:拿女音色B和C的素材进行融合出一个新的音色F
- 案例六:音色A从来没有说过外语(英语、日语等等),但需要现在马上说一段外语音频
效果可参考出处:【rvc教程】AI变声/AI音色训练-哔哩哔哩,极为逼真,值得尝试。当然,我也只是作为分享。
在此感谢三位UP主:花儿不哭/唯有如梦/干易/掉脑袋切切\_bling 的视频
文件目录如下:
注意事项
- 性能要求:建议20系N卡以上,显存在 8g 以上,性能越高越好
- 模型文件目录要求:全英文、无中文、待处理音频、单音色素材独立一个文件夹
- 启动模型时,命令行界面不能关闭,否则,模型停止运行,下文中提到的所有命令行都使用时不能关闭
- 注意音色版权问题,不做违法勾当,技术无罪,请勿滥用
- 音色、音频素材质量好坏不仅仅体现在音源质量,音色训练干声素材更在意有无噪声(气泡音、混响者等不佳),是否贴合模仿场景(唱歌音色对应唱歌音频转换等等),是否音频变调范围较少等等
音色推理流程
什么是音色推理呢?其实就是实现案例一二的过程,也就是推理音色A到音色B,再应用到声音素材上的过程。我们将使用 RVC 模型的一建训练包,步骤如下:
- 启动 RVC web 界面:双击打开 RVC-beta\_5\RVC-beta\go-web.bat
- 等待启动,启动成功命令行效果如下:
命令行:
web界面: 界面参数说明:
- 推理音色:推理结果成品的实际音色
- 待处理音频:推理结果成品的实际音频内容,支持绝大部分音频格式
- index 路径:推理音色相符合的特征文件 index 结尾
- 变调(整数, 半音数量, 升八度12降八度-12):男女音调差距较大,男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域.
- 刷新音色列表和索引路径:加载新的推理音色和 index 文件,训练出新音色就需要重新加载
- 卸载音色:去除加载进的音色,以节省显存
- 音高提取算法:输入歌声可用pm提速,harvest低音好但巨慢无比
- 选定对应参数数据:按照界面参数,选择推理音色、待处理音频、index 路径、变调等等最基本的参数(也就是说其他参数保持默认的参数也能使用,有能力、有需求的再自行微调),点击转换即可进行音色推理了。
转换结果效果如下:
点击播放按钮即可在线播放转换后的音频,右键点击即可下载结果音频或者改变播放速度。最好是先听听效果,再下载,毕竟不一定效果合适,可能需要调整参数。
这就是音色推理的全流程,也是整个模型训练性能要求最低的一个部分之一,如果,你连默认的音色都无法正常推理成功的话,音色训练部分建议在性能更强的电脑上进行。
素材干声分离
素材干声分离也就是分离人声和背景音,这一部分不一定需要本模型一键训练包来完成,只是为了获得更好的干声素材而做的预处理操作,有其他现成更简单的工具也可以使用。话扯远了,接下来就说说怎么进行素材的干声分离,步骤如下:
- 启动 RVC 模型的一建训练包,和推理模型的启动方法一致,切换到干声分离界面,如下:
界面参数说明:
- 待处理音频路径:待处理音频的文件夹路径,注意不是文件路径,这也是为什么每个待处理音频都要独立放置到一个文件夹的原因,因为太多文件,训练时间过长。
- 按需选择分离模型:HP2 人声(只有背景音和人声类型)、HP5人声(带有背景音和人声叠加等等效果类型)
- 指定人声输出目录:默认 RVC-beta\opt
- 指定乐器文件夹:背景音文件夹,默认 RVC-beta\opt
- 填写好对应参数信息之后,点击转换即可完成素材干声分离。最终效果如下:
输出信息为 success 即为干声分离成功,如果报错,就需要检查音频和电脑的硬件问题了。
音色训练
音色训练其实就是利用经过预处理或者本身音源素质良好的干声素材进行训练,提取对应的音色特征,进而模拟其音色特征,再生成对应的音色包,这个过程中当然可以尝试通过微调参数实现更好的音色特征提取,但篇幅有限,本文只介绍最简单,最直接的音色训练教程。步骤如下:
- 准备好 3 分钟以上、50 分钟以内的优质干声素材,建议在3到7分钟之间,效果就很不错了,做好训练时长等待的准备
- 启动训练模型,切换到训练模块,如下:
界面参数说明:
- 实验名:即将训练出来的音色包名称
- 目标采样率:干声素材采集样本占比,按性能需求更改,默认 40k 就有不错的效果了
- 模型是否带音高指导:如果是唱歌类型的干声素材,必须选择 true ,反之,选或不选都可以
- 版本:建议使用 V1,V2 仍存在部分 Bug
- 提取音高和处理数据所使用的 CPU 进程数,默认为 16 ,可根据性能瓶颈自行更改,最少为 2
- 训练文件夹路径:所要训练的干声素材文件夹路径,注意是文件夹路径,同一个文件夹里面只能包含一个人的音色干声素材
- 显卡信息:启动后会自动读取本机显卡信息,多张显卡可输入卡号,指定训练用显卡
- 音高提取算法:输入歌声可用pm提速,高质量语音但CPU差可用dio提速,harvest质量更好但慢
- 保存频率:每训练 n 轮,保存一次音色特征数据,建议以 20 为保存频率,可根据性能瓶颈自行更改
- 总训练轮数:不得小于保存频率数,总训练轮数按性能瓶颈来,建议 200 轮即可,干声素材优秀可选择 50 轮即可,普通人听不出来的,最高可达 1000 轮,轮数越高,性能要求越大,时间越长,过高也会过拟合,不建议太高。
- 每张显卡的 back\_size:按默认即可,会在读取显卡信息后自动选择,如果自行指定训练显卡,可根据性能瓶颈自行选择
- 是否仅保存最新的ckpt文件以节省硬盘空间:选择是的话,只有最后一轮的训练特征数据,反之,按保存频率保存音色文件
- 是否缓存所有训练集至显存.:10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速度
- 是否在每次保存时间点将最终小模型保存至weights文件夹:选择是即可
- 填好以上界面参数数据,点击一键训练即可,慢慢等待结果出现,建议只运行该模型
ckpt 处显示 success,结尾有个 2333333 即为成功
训练结果(音色)文件夹:weights 文件夹
训练音色特征结果:logs 文件夹
如果,没有迁移训练和微调参数需求的话,可仅保存 index 和 npy 文件,连同前文的 pth 文件就可以构成一个完整的音色包文件。可分享音色包文件示例如下:
利用这个音色包文件就可以进行前文的音色推理了,也就能够实现案例一、二、四、七,包含唱歌类型的模拟,以及说一段自己不会的外语音频也是可以实现的,同时,实现唱歌素材的模拟不就可以得到 AI 孙燕姿的干声素材,再利用之前干声分离出的背景音进行调整,就可以基本实现AI孙燕姿啦,只要我们拥有(训练所得、分享获得)孙燕姿的唱歌音色包,以及对应优质的唱歌干声素材,当然,还需要进一步的调音、编曲等待操作,让它更像更完美。
音色融合
音色融合就是基于前文提到的音色训练出来的音色包进行融合音色,当然,同一性别的音色融合效果会好一点,通过音色融合,我们就可以创造出一个全新的音色包,当然,也可以利用此操作减少音色爆音的几率,比如,A音色音色好但容易爆音,B音色不太好,但胜在稳定,就可以用高权重的A模型融合低权重的B模型,融合出来的音色就能拥有两个的优点,但权重比例得自行调整,达到一个比较好的平衡,基于融合后的音色就可以做出不一样的音源素材。步骤如下:
- 启动模型,切换到 ckpt 部分
界面参数说明:
- A、B模型路径:A、B模型文件路径就是需要进行融合的两个音色模型的 pth 文件路径
- A 模型权重:融合哪个音源特征更多的数值化表达,也就是融合结果音色更像哪个音色
- 保存的模型名称:此次融合结果音色的名称
其他参数自行调整,简单地调整以上数据就能实现音色融合
- 点击融合,输出结果为 success 即可。音色包会在 weight 出现,并且,不会有对应的 index 和 npy 文件生成,但可用高权重的音色模型训练出来的结果文件。
这我们就能实现案例五的效果了,你可以使用融合后的音色继续“炼丹”,直到满意为止。
入梦工具实现男女伪音实时无技巧转化
男女伪音,也就是男女声音实时互换的操作,实现类似于变声器的效果,部分游戏、陪玩也有在使用。步骤如下:
- 启动模型和入梦工具:双击 RVC-beta\_5\RVC-beta\go-realtime-gui.bat 和 RVC\RVC入梦小工具\RVC入梦小工具.exe
GUI 界面如下:模型运行命令行界面如下:
入梦工具界面如下: - 安装入梦工具驱动:点击入梦工具虚拟 MME,一直下一步即可安装驱动
点击系统音频,配置扬声器和麦克风
- 录制设备配置成入梦工具为默认使用设备
- 播放设备不用修改,使用电脑默认设置就行,需要修改入梦扬声器的属性配置中的采样频率和位深度与电脑默认设置的设备对应属性一致,再更改入梦麦克风的侦听属性为侦听此设备即可。不过建议为耳机类型的扬声器,公放类型会被录制设备读取,产生回音,出现杂音。
- 录制设备配置成入梦工具为默认使用设备
- 配置模型音频输入输出设备:输入设备设置为电脑默认麦克风即可,输出设备设置为入梦扬声器,实际播放声音为电脑默认音频输出设备,如下:
模型 GUI 界面加载模型参数说明:
- 载入 Hubert 模型:不会默认读取模型,需要自行载入,双击按钮打开文件夹,选中 RVC-beta\_5\RVC-beta\hubert\_base.pt 即可。
- 选择 pth 文件:双击按钮打开文件夹,自行选中音色包内的 pth 文件即可
- 选择 index 文件:双击按钮打开文件夹,自行选中对应音色包内的 index 文件即可
- 选择 npy 文件:双击按钮打开文件夹,自行选中对应音色包内的 npy 文件即可
模型 GUI 界面常规设置及其性能设置参数说明:
- 响应阈值:麦克风读取响应速度,自行调整不爆音即可,数据越低,实时延迟越小
- 音调设置:男女音调差距较大,男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域。
- index rate:0.3 到 0.5即可,特征提取相关参数
- 采样长度:推理时间,采样长度自行调整,不含过多电子音即可,数值越低,延迟越低,建议为 1 即可
- 淡入淡入长度:保持默认即可,除非有一些奇怪的尾音
- 额外推理长度:推理长度高一点,声音可能会好一些,但延迟高,自行调整
- 输入输出降噪:如果录音环境存在一定噪声可勾选
- 选择完其他设置,点击开始转化即可实现实时转换音色的效果,注意推理时间正常变化才是正常运行。
- 如果需要切换音色的话,就必须停止音频转换再重新修改加载模型部分的参数。
- 如果是游戏使用、录制时使用,就必须把对应软件的麦克风设置为入梦麦克风,注意检查一下
本章节解决了案例三的男女伪音转换效果,这也将引起我们的警觉。
总结一下
AI 语音技术的进步已经带来了许多令人兴奋的结果,而 RVC 则是其中的一个重要发展方向。RVC 可以让使用者将一个人的声音样本複制并转移到另一个人身上,并可实现即时语音转换。以下是 RVC 可能带来的一些结果:
- 更自然的语音转换:RVC 技术可以让语音转换更加自然、逼真。这种技术可以学习一个人的语音特徵,包括音调、节奏和语速等,并将这些特徵应用到其他人的语音中,使其听起来更加自然。
- 音频和影片后期制作:RVC 技术还可以用于音频和影片后期制作。例如,在电影和电视剧中,演员的声音可能需要进行修剪或处理,RVC 技术可以帮助制作人员快速、高效地完成这些任务。
- 音乐创作:RVC 技术可以用于音乐创作,例如合成电子音乐或增强现有音乐。使用这种技术,音乐家可以从其他艺术家的声音中获得灵感,并将其应用到自己的创作中。
虽然这技术对于娱乐、语音合成等方面有著极大的应用价值。然而,这种技术也引发了许多道德等问题,例如滥用、欺骗、侵犯隐私等问题,需要你我共同关注,使用该技术时也要特别注意这些问题,请小心别踩线。