语音克隆与文本转语音:GPT-SoVITS 本地部署完全指南

GPT-SoVITS 提供了实现高质量语音转换和文本转语音(TTS)的本地解决方案,可以在自己的电脑上体验先进的语音克隆功能。

本教程将引导完成 GPT-SoVITS 的本地部署,并详细介绍其核心功能的使用。

什么是 GPT-SoVITS?

GPT-SoVITS 是一款功能强大的语音生成工具,它融合了 GPT(Generative Pre-trained Transformer)和 SoVITS(SoftVC VITS)模型,能够实现:

  • 零样本文本转语音 (TTS):只需输入一个 5 秒钟的语音样本,即可即时将任意文本转换为该语音。
  • 少样本文本转语音 (TTS):投入仅 1 分钟的训练数据,即可显著改善语音相似度和真实感。
  • 跨语言支持:支持多种语言的推断和训练,包括英语、日语、韩语、粤语、中文等。
  • WebUI 工具集:集成了语音伴奏分离、自动训练集分割、中文自动语音识别(ASR)和文本标注,帮助初学者创建训练数据集和 GPT/SoVITS 模型。

本地环境配置与安装

为了获得最佳体验,建议使用配备 NVIDIA GPU 的 Windows 10 或更高版本系统。

  1. 访问项目仓库

    • 打开浏览器,访问 GitHub 网站。
    • 在搜索栏中输入 GPT-SoVITS 并进行搜索。
    • 找到 RVC-Boss/GPT-SoVITS 这个仓库并点击进入。
  2. 下载整合包

    • 在项目页面的“安装”部分,寻找针对 Windows 用户的整合包下载链接。
    • GPT-SoVITS 通常提供包含或不包含 GPU 支持的版本。如果电脑有 NVIDIA 显卡(RTX 30 系列或 40 系列),选择包含 NVIDIA GPU 支持的版本以获得更快的处理速度;否则,选择不含 GPU 的版本。
    • 下载 GPT-SoVITS-vX.X-YYYYMMDD.7z 文件(其中 vX.X 是版本号,YYYYMMDD 是日期)。文件大小通常在 6GB 左右。
  3. 解压与启动

    • 将下载的 .7z 压缩包解压到希望的目录,例如 D:\App\GPT-SoVITS-vX.X
    • 进入解压后的文件夹,找到并双击运行 go-webui.bat 批处理文件。
    • 程序启动后,会自动打开一个 Web UI 界面,通常地址为 localhost:9873

WebUI 功能概览与使用

WebUI 界面分为几个主要模块:

0- 数据集获取与预处理工具

此模块提供了处理原始音频数据的工具:

  • 人声与伴奏分离去混响去人声

    • 该工具用于将包含背景音乐或人声的音频文件进行分离。
    • 步骤
      1. 点击右侧的“开启人声分离WebUI”按钮,会弹出一个新的浏览器窗口。
      2. 在新窗口中,选择处理模型(例如,HPS_only_main_vocal 仅保留主唱人声)。
      3. 点击上传图标,选择带有伴奏的音频文件进行上传。
      4. 选择输出格式(例如 mp3)。
      5. 点击“转换”按钮。转换完成后,分离出的人声文件将保存在 output/uvr5_opt 目录下。
  • 语音切分工具

    • 用于将较长的音频文件切分为适合训练的小片段。
    • 步骤
      1. 在“输入待切分音频路径”处,输入需要切分音频文件所在的文件夹路径(例如,如果分离了人声,路径会是 output/uvr5_opt)。
      2. 输出路径通常保持默认的 output/slicer_opt
      3. 点击“开启语音切分”按钮。
  • 语音降噪工具

    • 用于去除音频中的噪音,提升语音质量。
    • 步骤
      1. 在“输入文件夹路径”处,输入经过切分后的音频文件所在的文件夹路径(例如 output/slicer_opt)。
      2. 输出路径通常保持默认的 output/denoise_opt
      3. 点击“开启语音降噪”按钮。
  • 语音识别工具

    • 将音频内容自动识别为文本。
    • 步骤
      1. 在“输入文件夹路径”处,输入降噪后的音频文件所在路径(例如 output/denoise_opt)。
      2. 选择 ASR 模型类型(例如 达摩ASR中文)。
      3. 点击“开启语音识别”按钮。
      4. 识别出的文本会生成一个 .list 文件,其中包含音频文件路径和对应的文本内容。请务必检查并修正这个 .list 文件中的文本内容,以确保其准确性,这对后续训练至关重要。

1- GPT-SoVITS-TTS 模型训练

此模块是训练专属语音模型的关键:

  • 训练模型命名

    • 在“实验模型名”处,输入语音模型名称(例如,my_voice_model)。
    • 选择模型版本(v3 为最新推荐)。
    • 在“文本标注文件”处,输入之前语音识别工具生成的 .list 文件的路径(例如 output/asr_opt/slicer_opt.list)。
  • 一键三连(推荐)

    • 对于初学者,点击“开启训练数据集格式化-一键三连”按钮是最便捷的方式。
    • 此操作会自动完成:文本切分与特征提取、语音自监督特征提取、语音 Token 提取这三个步骤,并开始模型的训练。
    • 在命令行窗口中观察训练进度,当显示“Training done”时,表示训练完成。
  • 手动微调训练

    • 如果对训练过程有更深入的理解,可以手动调整“Batch_size”、“total_epoch”等参数。
    • 训练完成后,模型文件(例如 GPT_weights/your_voice_model/G_XXXX.pthSoVITS_weights/your_voice_model/D_XXXX.pth)将保存在对应的文件夹中。

2- GPT-SoVITS-TTS 实时推断(文本转语音)

此模块允许使用训练好的模型将文本转换为语音:

  • 模型加载

    • 首先点击“刷新模型路径”按钮,确保加载最新的模型。
    • 在“GPT 模型列表”和“SoVITS 模型列表”中,选择之前训练好的模型。通常选择数字后缀最大的模型,因为它代表了最终的训练结果。
  • 参考音频与文本

    • 在“请上传参考音频,请填写参考信息!”部分,点击上传图标,选择一个 3 到 10 秒的干净语音样本作为参考(该语音样本应与训练的模型语音一致)。
    • 在“参考语音文本”处,输入该参考音频对应的文字内容。
  • 生成目标文本与语音

    • 在“请填写需要合成的目标文本和语种模式”部分,输入希望模型合成的文字内容。
    • 在“语种”下拉菜单中,选择目标文本的语言(例如,中文英文)。
    • 还可以调整一些高级参数,如:
      • 温度 (temperature):影响语音的随机性和创造性。
      • Top KTop P:用于控制采样方式,影响语音的连贯性和流畅度。
    • 注意:如果模型表现不佳,可能需要调整文本标点或尝试其他表达方式。
  • 合成语音

    • 点击“合成语音”按钮。
    • 生成的语音波形和播放按钮将出现在下方,可以点击播放试听。

总结与展望

GPT-SoVITS 提供了一个强大而灵活的本地语音处理平台,可以轻松实现语音分离、降噪、识别以及语音克隆和文本转语音功能。