GPT-SoVITS - few shot 声音克隆

文章目录


一、关于 GPT-SoVITS


功能:

  1. 零样本文本到语音(TTS):输入5秒人声样本,体验即时语音合成转换。
  2. 少样本 TTS:仅用1分钟的训练数据微调模型,以提高语音相似性和真实感。
  3. 跨语言支持:不同于训练集的语言推理,目前支持英语、日语和中文。
  4. WebUI 工具:集成工具包括语音伴奏分离、自动训练集分割、中文ASR和文本标注,帮助初学者创建训练数据集和GPT/SoVITS模型。

演示视频 :https://www.bilibili.com/video/BV12g4y1m7Uw

未见过的说话者 few-shot 微调演示:


二、安装

中国地区的用户可以点击这里 使用AutoDL Cloud Docker在线体验全部功能。


测试通过的环境

  • Python 3.9,PyTorch2.0.1,CUDA 11
  • Python3.10.13,PyTorch2.1.2,CUDA 12.3
  • Python 3.9, Pytorch2.2.2,macOS14.4.1(苹果芯片)
  • Python 3.9,PyTorch 2.2.2,CPU 设备

注: numba==0.56.4 需要 python<3.11


1、Windows

如果您是Windows用户(使用win>=10测试),您可以下载集成的包并双击go-webui. bat以启动GPT-SoVITS-WebUI。

中国地区的用户可以通过单击链接下载该软件包,然后选择"下载副本"(如果下载时遇到错误,请退出。)


2、Linux

shell 复制代码
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
bash install.sh

3、macOS

注:在 Mac 上使用 GPU 训练的模型效果显著低于其他设备训练的模型,所以我们暂时使用 CPU 进行训练。

  1. xcode-select --install
  2. brew install ffmpeg
  3. 完成上述步骤后,运行以下的命令来安装本项目:
shell 复制代码
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits

pip install -r requirements.txt

4、手动安装


4.1 安装依赖
shell 复制代码
pip install -r requirements.txt

4.2 安装 FFmpeg

Conda 用户
shell 复制代码
conda install ffmpeg

Ubuntu/Debian 用户
shell 复制代码
sudo apt install ffmpeg
sudo apt install libsox-dev
conda install -c conda-forge 'ffmpeg<7'

Windows 用户

下载并将ffmpeg. exeffprobe.exe放在GPT-SoVITS根目录中。


MacOS 用户
shell 复制代码
brew install ffmpeg

5、在 Docker 中使用


5.1 docker-compose.yaml 设置
  1. 关于镜像标签:由于代码库中的快速更新以及打包和测试镜像的缓慢过程,请查看Docker Hub以获取当前打包的最新镜像,并根据您的情况选择,或者根据您自己的需要使用Dockerfile在本地构建。
  2. 环境变量:
  • is_half:控制半精度/双精度。如果在"SSL提取"步骤中没有正确生成 4-cnhubert/5-wav32k 目录下的内容,这通常是原因。根据您的实际情况调整为True或False。
  1. 卷配置,容器内的应用程序根目录设置为 /workspace. 默认 docker-comp.yaml列出了一些上传/下载内容的实际示例。
  2. shm_size :Windows上Docker Desktop 的默认可用内存太小,会导致操作异常。根据自己的情况进行调整。
  3. 在部署部分,GPU相关设置应根据您的系统和实际情况谨慎调整。

5.2 通过 docker compose 运行
shell 复制代码
docker compose -f "docker-compose.yaml" up -d

5.3 通过 docker 命令运行

同上,根据您自己的实际情况修改对应的参数,然后运行如下命令:

shell 复制代码
docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9880:9880 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx

三、预训练模型

GPT-SoVITS模型下载预训练模型并将其放入GPT_SoVITS/pretrained_models

对于UVR5(人声/伴奏分离和混响消除,另外),从 UVR5权重下载模型,并将它们放在tools/uvr5/uvr5_weights


中国地区的用户可以通过进入下面的链接并单击"下载副本"来下载这两种型号(如果在下载时遇到错误,请退出。)


对于中文ASR(另外),从Damo ASR模型Damo VAD模型Damo Punc模型下载模型,并将它们放置在tools/asr/models中。

对于英语或日语ASR(另外),从 Faster Whisper Large V3 下载模型并将它们放置在tools/asr/models。此外,其他模型可能具有类似的效果,磁盘占用空间较小。

中国地区的用户可以通过输入以下链接下载此模型


四、数据集格式

文本到语音(TTS)注释 .list 文件格式:

shell 复制代码
vocal_path|speaker_name|language|text

语言字典:

  • 'zh':中文
  • 'ja':日语
  • 'en':英语
  • 'ko': 韩语

示例:

shell 复制代码
D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.

五、(附加)命令行运行方式

使用命令行打开 UVR5 的 WebUI

shell 复制代码
python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5>

如果打不开浏览器,请按照下面的格式进行UVR处理,这是使用 mdxnet 进行音频处理的方式

shell 复制代码
python mdxnet.py --model --input_root --output_vocal --output_ins --agg_level --format --device --is_half_precision 

这是使用命令行完成数据集的音频切分的方式

shell 复制代码
python audio_slicer.py \
    --input_path "<path_to_original_audio_file_or_directory>" \
    --output_root "<directory_where_subdivided_audio_clips_will_be_saved>" \
    --threshold <volume_threshold> \
    --min_length <minimum_duration_of_each_subclip> \
    --min_interval <shortest_time_gap_between_adjacent_subclips> 
    --hop_size <step_size_for_computing_volume_curve>

这是使用命令行完成数据集ASR处理的方式(仅限中文)

shell 复制代码
python tools/asr/funasr_asr.py -i <input> -o <output>

通过 Faster_Whisper 进行 ASR处理(除中文之外的ASR标记)

(没有进度条,GPU性能可能会导致时间延迟)

shell 复制代码
python ./tools/asr/fasterwhisper_asr.py -i <input> -o <output> -l <language> -p <precision>

启用自定义列表保存路径


六、致谢

特别感谢以下项目和贡献者:


理论研究


预训练模型


推理用文本前端


WebUI 工具


2024-08-03(六)

相关推荐
知来者逆11 小时前
使用 GPT-4V 全面评估泛化情绪识别 (GER)
人工智能·gpt·语言模型·自然语言处理·gpt-4v
github_czy11 小时前
使用GPT-SoVITS训练语音模型
人工智能·gpt
Yeats_Liao16 小时前
昇思大模型平台打卡体验活动:基于MindSpore实现GPT1影评分类
gpt·分类·数据挖掘
龙的爹233318 小时前
论文 | Evaluating the Robustness of Discrete Prompts
人工智能·gpt·自然语言处理·nlp·prompt·agi
大数据面试宝典1 天前
【Ai测评】GPT Search偷偷上线,向Google和微软发起挑战!
人工智能·gpt·ai测评·ai之家
灰哥数据智能1 天前
DB-GPT系列(二):DB-GPT部署(镜像一键部署、源码部署)
python·gpt·语言模型·数据分析
开发者每周简报1 天前
ChatGPT o1与GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro的比较
人工智能·gpt·chatgpt
Topstip2 天前
在 Google Chrome 上查找并安装 SearchGPT 扩展
前端·人工智能·chrome·gpt·ai·chatgpt
AIBox3652 天前
斯坦福医学部发布GPT润色本子教程
gpt·chatgpt·aigc
F5 AI社区2 天前
【AI语音克隆整合包及教程】声临其境,让想象成为现实——第二代GPT-SoVITS引领语音克隆新时代!
声音克隆·语音克隆·gpt-sovits·ai配音·ai免费配音