GPT-SoVITS-WebUI可以中文声音克隆开源AI工具简介

愚梦者 2024-06-16 14:31:02 阅读 82

引言:

        近年来,随着人工智能技术的不断发展,语音技术已经成为了热门领域。尽管已有不少技术实现了一定程度的成功,但传统语音合成技术的问题依然存在。传统方法对于训练数据的需求量大、效果受到声音质量和口音差异的影响。因此,在语音技术领域中,一种受到广泛关注的新技术GPT-SoVITS-WebUI应运而生。GPT-SoVITS是花儿不哭大佬研发的低成本AI音色克隆软件,作为一种新兴的网络界面工具,具有自主学习、高效合成、支持多语言等特点,在语音领域中受到极高的关注和重视。它不仅能够迅速训练高质量的文本到语音模型,更能够克服声音质量和口音差异的影响,在语音合成中发挥既有的功效。同时,GPT-SoVITS-WebUI具有零次学习和少量次学习的TTS功能,可以实现自然语言转换,进一步提高了语音合成的性能。这一特性可为语音技术的开发者和爱好者带来更多的机会,实现多样化的语音应用,创造更加便捷的用户体验。综上所述,GPT-SoVITS-WebUI是一种非常先进的语音技术,具有广泛的应用前景和潜力。创作不易,要是对您有用请加个关注或点个赞,非常感谢了!

开源地址:

https://github.com/RVC-Boss/GPT-SoVITS

以下依据官方文档整理而得:

特点:

零样本 TTS:输入 5 秒的人声样本,体验即时文本到语音转换。

小镜头 TTS:只需 1 分钟的训练数据即可微调模型,以提高语音相似度和真实感。

跨语言支持:使用与训练数据集不同的语言进行推理,目前支持英语、日语和中文。

WebUI工具:集成工具包括语音伴奏分离、自动训练集分割、中文ASR和文本标注,帮助初学者创建训练数据集和GPT/SoVITS模型。

详细说明:教程中文版 User guide (EN)

安装

对于中国地区的用户,您可以点击此处使用AutoDL Cloud Docker在线体验全部功能。

经测试的环境

Python 3.9、PyTorch 2.0.1、CUDA 11Python 3.10.13、PyTorch 2.1.2、CUDA 12.3Python 3.9、PyTorch 2.3.0.dev20240122、macOS 14.3(Apple 芯片)

注意:numba==0.56.4 需要 py<3.11

window系统

如果你是 Windows 用户(使用 win>=10 测试),你可以直接下载预打包的发行版,双击 go-webui.bat 启动 GPT-SoVITS-WebUI。

Linux操作系统

conda create -n GPTSoVits python=3.9conda activate GPTSoVitsbash install.sh

macOS操作系统

只有满足以下条件的 Mac 才能训练模型:

搭载 Apple 芯片的 Mac 电脑macOS 12.3 或更高版本通过运行xcode-select --install

所有 Mac 都可以使用 CPU 进行推理,这已被证明优于 GPU 推理。

首先,通过运行 或 确保已安装 FFmpeg,然后使用以下命令进行安装:brew install ffmpegconda install ffmpeg

conda create -n GPTSoVits python=3.9conda activate GPTSoVitspip3 install --pre torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cpupip install -r requirements.txt

注意:仅当安装了 PyTorch Nightly 时,训练模型才有效。

手动安装

安装依赖项

pip install -r requirements.txt

安装 FFmpeg
Conda 用户

conda install ffmpeg

Ubuntu/Debian 用户

sudo apt install ffmpegsudo apt install libsox-devconda install -c conda-forge 'ffmpeg<7'

Windows 用户

下载并放置ffmpeg.exe和ffprobe.exe GPT-SoVITS 根目录。

使用 Docker

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

docker compose -f "docker-compose.yaml" up -d

使用 docker 命令运行

如上所述,根据您的实际情况修改相应的参数,然后运行以下命令:

docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --v

预训练模型

从 GPT-SoVITS 模型下载预训练模型并将它们放在 中。GPT_SoVITS/pretrained_models

对于UVR5(人声/伴奏分离和混响去除),请从UVR5 Weights下载模型并将其放置在 .tools/uvr5/uvr5_weights

中国地区的用户可以通过输入下面的链接并点击“下载副本”来下载这两个模型

GPT-SoVITS 模型

UVR5砝码

对于中文 ASR(另外),请从 Damo ASR 模型、Damo VAD 模型和 Damo Punc 模型下载模型,并将其放在 中。tools/damo_asr/models

数据集格式

TTS 注解 .list 文件格式:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>vocal_path|speaker_name|language|text</code></span></span></span></span>

语言词典:

'zh': 中文'ja': 日语'en': English

例:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.</code></span></span></span></span>

待办事项列表

 高优先级:

日语和英语本地化。用户指南。日语和英语数据集微调训练。

 特征:

零样本语音转换(5s)/小样本语音转换(1min)。TTS语速控制。增强的 TTS 情绪控制。尝试将 SoVITS 令牌输入更改为词汇的概率分布。改进英文和日文文本前端。开发小型和大型 TTS 模型。Colab 脚本。尝试扩展训练数据集(2k 小时 -> 10k 小时)。更好的 Sovits基本型号(增强的音频质量)模型组合

(可选)如果需要,这里将提供命令行操作模式

使用命令行打开 UVR5 的 WebUI

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5></code></span></span></span></span>

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

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python mdxnet.py --model --input_root --output_vocal --output_ins --agg_level --format --device --is_half_precision </code></span></span></span></span>

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

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>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></code></span></span></span></span>

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

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python tools/damo_asr/cmd-asr.py "<Path to the directory containing input audio files>"</code></span></span></span></span>

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

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

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python ./tools/damo_asr/WhisperASR.py -i <input> -o <output> -f <file_name.list> -l <language></code></span></span></span></span>

已启用自定义列表保存路径



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。