开始使用
- 有关GPT-SoVITS详细使用指导请参考官方视频及GPT-SoVITS指南
- 涉及到GPT-SoVITS的业务端口如下:
- 9874:GPT-SoVITS WebUI主页面访问端口
- 9873:UVR5 音频处理WebUI页面访问端口
- 9872:TTS推理WebUI页面访问端口
- 9871:语音文本校对页面访问端口
- 22:用于登录Linux弹性云服务器,默认只对VPC 子网网段开放,用户需要修改该白名单用户IP
- 后续文档将展开GPT-SoVITS的基础使用说明
安全组规则修改(可选)
安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。
如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。
GPT-SoVITS WebUI应用使用
该程序的使用主要分为以下几个步骤,用户可以根据实际需要选择执行。
- UVR5人声伴奏分离&去混响(可选)
该步骤主要是提取音频文件中的纯人声,以便于后续使用。如果音频文件中没有背景音乐或者其他伴奏,则可以跳过该步骤。分离好的语音文件默认在/home/project/GPT-SoVITS/output/uvr5_opt这个文件夹下,处理完的音频文件带vocal字样的是人声。
- 语音切分(必选)
对纯人声音频文件进行语音切割。切分完后文件默认在/home/project/GPT-SoVITS/output/slicer_opt这个文件夹下。
- 中文批量离线ASR工具(必选)
该步骤用于语音识别。达摩ASR只能用于识别中文,fast whisper可以标注99种语言。输出文件默认在/home/project/GPT-SoVITS/output/asr_opt这个路径下,会有一个.list文件,需要对该文件进行改名。
- 语音文本校对标注(可选)
对list文件进行文字校对,修改每一句话的停顿,让AI学习到每个字该怎么读。对于后续的模型训练会很有帮助。
- 训练集格式化(必选)
设置一个模型名,对该模型进行训练。
- 微调训练(必选)
对模型进行微调,得到SoVITS和GPT两个模型,模型分别在/home/project/GPT-SoVITS/SoVITS_weights和/home/project/GPT-SoVITS/GPT_weights目录下。
- 推理(必选)
即文本转语音。输入文本,用上述步骤训练出来的模型,生成新的语音。
- 进入华为云找到弹性云服务器 ECS控制台,找到本方案创建的云服务器。
图1 GPT-SoVITS WebUI服务器
- (可选)用户可以通过查看环境部署脚本日志,判断当前环境是否准备好。登录服务器,输入tail -f /tmp/install_gptsovits.log,查看回显如下图所示,则代表服务器环境搭建成功。退出查看日志,在键盘同时按下“Ctrl+C”。
图2 环境部署脚本日志
- 查看快速部署 步骤3.2-9访问说明,即在浏览器中输入http://EIP:9874,其中EIP为服务器公网IP,访问GPT-SoVITS WebUI页面。
图3 GPT-SoVITS WebUI应用界面
- GPT-SoVITS应用运行日志路径为:/home/project/GPT-SoVITS/webui.log。登录服务器,输入tail -f /home/project/GPT-SoVITS/webui.log,可以查看该服务区运行过程中的动态日志。
图4 应用系统日志
- 查看当前服务运行的进程ID。在服务器输入ps -ef | grep webui.py命令,查看当前服务运行的进程ID。
图5 进程ID
- 关闭服务。在服务器输入kill -9 +进程ID,即可关闭服当前运行的服务。
- 重新启动服务。在服务器中输入以下命令,重新在后台运行服务。
conda activate GPTSoVits cd /home/project/GPT-SoVITS/ python3 webui.py > /home/project/GPT-SoVITS/webui.log 2>&1 &
图6 启动服务
- 勾选Open UVR5-WebUI(处理完成后可去勾选节省内存),待右侧框中出现“UVR5 opened”后,打开新的窗口输入http://EIP:9873。
图7 打开UVR5-WebUI
图8 UVR5-WebUI
- 上传需要处理的音频文件(时长1分钟到30分钟)到服务器并记录文件夹路径,或者直接拖拽文件到浏览器页面指定位置。根据页面提示说明选择合适的模型处理音频,选择需要的文件格式,单击“Covert”进行音频处理。
图9 音频处理
- 待页面出现“Success”后,代表音频文件处理成功。登录服务器,进入“/home/project/GPT-SoVITS/output/uvr5_opt/”目录,即可找到伴奏分离的音频文件。删掉不需要的伴奏文件,保留带vocal字样的人声文件。
图10 音频处理完成
图11 分离后的音频文件
语音切分(必选)
- 上传纯人声音频文件到服务器,在GPT-SoVITS WebUI页面,输入纯人声音频文件或处理后的纯人声音频文件所在目录,单击“Start audio slicer”,进行音频切割。
图12 语音切割
- 页面出现“切割结束”,即代表语音文件切割完成。默认文件路径/home/project/GPT-SoVITS/output/slicer_opt/。
图13 语音切割完成
- 登录服务器,查看切分后的音频文件。
图14 语音片段文件
中文批量离线ASR工具(必选)
- 以中文音频为例,在GPT-SoVITS WebUI页面,输入切割好的音频文件所在目录,单击“Start bach ASR”,进行语音转文字。
图15 中文音频ASR处理
- 页面出现“ASR任务完成,查看终端进行下一步”,即代表语音转文字文本文件生成成功。默认文件路径/home/project/GPT-SoVITS/output/asr_opt。
图16 ASR处理完成
- 登录服务器,查看文本文件.list,给文件重新修改一个名字(支持字母、数字、下划线),并保存。
图17 list文件
语音文本校对标注(可选)
- 在GPT-SoVITS WebUI页面,输入ASR工具处理好的list文件的路径(注意不是文件夹路径,需要带上文件名),勾选“Open labelling WebUI”,待页面出现“proofreading tool webui is opened”,打开新的窗口输入http://EIP:9871。
图18 开启Gradio WebUI
- 在新打开的页面,对照语音和文本。根据需要,调整文本,例如标点符号和停顿位置一致和错别字。修改完成后单击“Submit Text”提交修改。
图19 文本校对
训练集格式化(必选)
- 在GPT-SoVITS WebUI页面,单击“1-GPT-SOVITS-TTS”,对模型进行训练。
图20 GPT-SOVITS-TTS界面
- 输入模型名字(model name)、list文件所在路径(Text labelling file)以及切割后的音频文件所在目录(Audio dataset folder)。
图21 模型参数填写
- 向下滚动页面,单击一键三连“Start one-click formatting”,开始对模型进行初步训练。
图22 一键三连
- 训练完成后,页面显示如下。
图23 一键三连完成
微调训练(必选)
- 在“1-GPT-SOVITS-TTS”页面,单击“1B-Fine-tuned training”,对模型进行微调。
图24 微调训练
- 保持默认参数,单击“Start SoVITS training”,进行SoVITS模型训练(如果有报错,减小Batch size per GPU数值)。
图25 SoVITS模型训练
- SoVITS模型训练完成后,页面显示如下。
图26 SoVITS模型训练完成
- 向下滚动页面,保持默认参数,单击“Start GPT training”,进行GPT模型训练(如果有报错,减小Batch size per GPU数值)。
图27 GPT模型训练
- GPT模型训练完成后,页面显示如下。
图28 GPT模型训练完成
推理(必选)
- 在“1-GPT-SOVITS-TTS”页面,单击“1C-inference”,准备开始推理。
图29 推理
- 单击“refreshing model paths”,刷新模型路径,即可选择上面训练好的模型。
图30 刷新模型路径
- 选择任一模型,勾选“Open TTS inference WEBUI”,待页面出现“TTS inference process is opened”则开启成功。
图31 开启TTS推理页面WebUI
- 打开新的窗口输入http://EIP:9872,其中IP为服务器公网IP,进入TTS推理页面WebUI。
图32 推理页面
- 上传一段3-10秒长的同一目人物参考音频文件。建议是数据集中的音频,推荐5秒时长,填写参考音频的文本。输入需要转语音的文本,单击“Start inference”开始进行语音合成。
图33 语音合成参数配置
- 语音生成完成后,如下所示。
图34 文本生成语音