简单4步,训练自己的声音克隆TTS模型,clone-voice微调训练

之前一篇文章谈过"声音克隆工具clone-voice",一个简单的声音克隆工具,一直没有时间整理个配套的模型微调自训练工具,这些天抽空搞了下,已更新进新版本0.902,可以使用自己的声音素材自行训练微调,效果要比通用模型更好。本文就简单介绍下如何使用这个训练工具训练自己的模型。

如果还没有部署clone-voice,去看下上篇文章 看完你也会AI配音,一个简单的声音克隆、文字转声音工具

建议在有英伟达显卡并配置了CUDA环境的设备上训练。 参考windows操作系统安装配置CUDA12.3和cuDNN

本文是讲解 clone-voice 项目的自定义模型训练,clone-voice项目开源地址 github.com/jianchang51...

确保已经按照上篇文字的方法下载软件包和模型包并已正确解压了。正确处理后的目录如下图,如果不存在train.exe请更新到 0.902版

一:首先下载训练需要的文件

如果你已有代理,并且代理速度很快,这一步可以忽略,启动时会自动在线从墙外下载,如果没有代理或者代理速度很慢,请手动下载,训练文件约3G。

训练文件下载地址 https://github.com/jianchang512/clone-voice/releases/tag/v0.0.1

下载后,将压缩包内的2个文件夹fastertts都解压到软件目录下的 models 文件夹内。正确的解压后效果图:

二:启动 train.exe 打开训练页面

双击软件目录下的 train.exe

双击后会弹出黑窗口,请耐心等待浏览器自动打开 http://127.0.0.1:5003 页面,可能耗时较久,请耐心等待。

打开后的 http://127.0.0.1:5003 页面如下

训练过程共分为四步,依次点击按钮,就完成了训练。实际上三步即可完成,最后一步是复制到 clone-voice 下使用。

开始四步训练过程

准备训练声音素材

在训练开始前,首先需要准备训练所需的声音,你希望克隆谁的声音,就去搜集该声音素材,比如要克隆自己的,就使用录音设备录制2分钟-10分钟的音频,确保无背景噪声、发音清晰,可以多个音频文件,总时长大于2分钟即可,当然时长多长,训练效果越好。

如果想克隆某个影视人物的声音,可以从相关音视频中截取该人说话的声音片段,但要注意,需要去掉背景噪声,否则训练效果较差。

简单概括下作为训练素材的声音样本要求:

  • 总时长大于2分钟,最好大于5分钟或更长,时长越长,训练效果越好。
  • 无背景噪声,如果有背景音,请提前分离,推荐本人开发的 简单本地的人声背景音分离工具,使用简单
  • 确保音频文件内只有一个人在说话
  • 可以多个音频文件,每个音频文件时长可以小于2分钟,但总时长应大于2分钟

1. 训练第一步:自动整理数据+切分音频并识别文字

在准备好训练声音素材后,点击上传区域,选中准备好的声音。

然写模型名称:模型名称就是在使用界面所显示的角色名,由英文、数字、下划线组成

选择音频发声语言:如果是中文,选择"zh"

一切准备并填写好之后,点击按钮"第一步:上传音频文件后点击开始整理数据",将开始切分音频、识别文字,识别出的结果将在按钮下方文本区域显示。

2. 训练第二步:修改识别出的文字

第一步完成后,识别出的文字会自动显示在下方的左右文本区域内

第一行是元信息 audio_file|text|speaker_name ,不要删除也不要修改。

从第一行之后的是训练数据,每行由符号 | 分成3个部分

第一部分是切分后的音频片段名称,无需改动。

第三部分暂未用到,无需修改,但也不要删除。

唯一需要修改的是第二部分,在这部分,可以修改识别不正确的文字或添加标点符号,比如"星系"被识别成了"星期",那么就可以手动修改正确。如果缺少标点,可以添加上标点符号。

左侧是训练用的数据,比较多,右侧是训练后用于验证结果的数据,相对较少,不用担心,这不是错误。你只需修改错别字即可。

如果你认为某行内容不好,不想要了,直接删除这一整行内容即可,但切记第一行的元信息不可删除。也不可删到只剩下第一行。这样数据不完整,将无法训练。

当然也可以不修改,直接点击下方"第二步"按钮启动训练。

修改完成点击底部按钮"第二步:修改错别字后(或不修改),点击启动训练",将开始正式的训练过程,这个过程根据计算机性能不同,耗时也不同,可能比较久,如果你有英伟达显卡,请先配置好CUDA环境,将能极大提升速度。参考windows操作系统安装配置CUDA12.3和cuDNN

训练第三步:测试训练好的模型效果

第二步完成后会自动填充下方的"参考音频"文本框

当然你可以手动修改"参考音频",在自动填充后,根据参考音频的路径,去找到参考音频所在文件夹,该文件夹里是所有已切分好的wav音频片段,你可以在此找到一个效果更好的音频文件,复制它的名称,替换自动填充的音频名称。

比如我第二步训练完成后,自动填充的参数音频是F:/clone/tts/run/dataset1223/001.wav, 然后我可以去 F:/clone/tts/run/dataset1223/ 这个文件夹下,在一堆wav文件中找到一个声音效果更好的音频文件,这个文件是 007.wav, 那么我将参考音频里的 001.wav 改为007.wav,最终修改后的参考音频文本框里就是F:/clone/tts/run/dataset1223/007.wav,要特别注意文本框内最后是 .wav,千万别填成无后缀的007或者007.wav.wav

输入要合成的文字,比如默认输入的是"你好啊,我亲爱的朋友",你也可以改成其他的,但要注意一行不要太长,最长不要超过80个字符,并要正确使用标点符号。

准备好后,点击按钮"第三步:自动填充参考音频后,点击测试模型效果",等待右侧生成并显示音频文件。

显示后,点击播放按钮,就可以听到合成声音了。感觉效果怎么样,如果不满意,可以再重新训练。

如果感到满意想在"clone-voice"中使用,点击底部按钮。

训练第四步:复制到 clone-voice 中使用

对效果如果满意,想在clone-voice中使用,就点击最底部的按钮 "第四步:效果如果满意,点击复制到clone-voice中使用它",提示成后,就可以在 clone-voice中使用了,和使用其他角色名称一样。

复制成后,再到 软件目录下 tts/mymodels/ 下看一看,是否存在这个模型名称的文件夹,文件夹内是否存在 model.pth config.json vocab.json base.wav 这4个文件,如果都存在, 说明一切OK。

启动该模型,然后选择使用,试试效果吧。

如何调整训练参数

为简化训练流程,利于新手操作,特意隐藏了绝大部分训练参数的调整,有一定技术能力的用户,建议拉取源码,自行修改训练,效果可能更好。

其他用户如果想简单调整下训练轮次(默认15轮),可打开软件目录下的 params.json文件,

"num_epochs":15即代表训练15轮,你可以调整为其他轮次,比如30,效果能有一定提升。

"batch_size":4代表一次批量训练4行数据,如果你的显卡性能较好,显存较大,可以适当调大该数字,如果你没有配置好cuda,那么该数字可以降低为2

"port":5003这个代表训练页面打开的端口,如果该端口已被占用,可以修改为其他大于1024的数字。

修改保存后,记得关闭黑窗口再重新打开哦。

相关推荐
985小水博一枚呀8 分钟前
【深度学习|可视化】如何以图形化的方式展示神经网络的结构、训练过程、模型的中间状态或模型决策的结果??
人工智能·python·深度学习·神经网络·机器学习·计算机视觉·cnn
CyreneSimon39 分钟前
使用 LoRA 进行模型微调的步骤
python·transformer
ymchuangke42 分钟前
数据清洗-缺失值处理-缺失值可视化图(竖线)
python·算法·数学建模
计算机学姐1 小时前
基于python+django+vue的旅游网站系统
开发语言·vue.js·python·mysql·django·旅游·web3.py
程序员小羊!1 小时前
Python语言基础教程(下)4.0
开发语言·python
LluckyYH2 小时前
代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列
数据结构·人工智能·算法·leetcode·动态规划
huanxiangcoco2 小时前
73. 矩阵置零
python·leetcode·矩阵
古猫先生2 小时前
YMTC Xtacking 4.0(Gen5)技术深度分析
服务器·人工智能·科技·云计算
一晌小贪欢2 小时前
Python基础知识——字典排序(不断补充)
python·json·python基础·字典·字典排序·python学习
YOLO数据集工作室2 小时前
Python介绍
开发语言·python