So-vits-svc-fork:实时语音转换的开源解决方案
在人工智能和深度学习技术的快速发展下,语音合成和转换技术取得了长足的进步。So-vits-svc-fork作为一个基于so-vits-svc的开源项目,为语音转换爱好者和研究者提供了一个功能强大且易于使用的工具。本文将详细介绍So-vits-svc-fork的特点、安装使用方法以及训练推理过程,帮助读者快速上手这一实用的语音转换解决方案。
项目概述
So-vits-svc-fork是对原始so-vits-svc项目的一个分支改进。它基于4.0分支(v1版本),保持了与原始模型的兼容性,同时增加了许多新的特性和改进。该项目的主要目标是提供一个更加易用、功能更加丰富的语音转换工具,让更多人能够轻松地进行语音转换实验和应用开发。
主要特性
So-vits-svc-fork相比原始项目增加了以下主要特性:
-
实时语音转换支持: 这是该项目最引人注目的特性之一,允许用户进行实时的语音转换,大大提升了交互性和应用场景。
-
改进的用户界面: 项目提供了图形用户界面(GUI)和统一的命令行界面(CLI),使得操作更加直观和便捷。
-
更快的训练速度: 训练速度提升了约2倍,极大地缩短了模型训练时间。
-
自动下载预训练模型: 无需手动安装fairseq,系统会自动下载所需的预训练模型。
-
更准确的音高估计: 使用CREPE算法提高了音高估计的准确性。
-
代码格式化: 使用black、isort、autoflake等工具对代码进行了全面的格式化,提高了代码的可读性和一致性。
-
简化的安装过程: 通过pip安装即可使用,大大降低了入门门槛。
安装方法
So-vits-svc-fork提供了多种安装方式,以适应不同用户的需求:
1. 一键安装(Windows)
对于Windows用户,项目提供了一键安装脚本。用户只需下载并运行install.bat文件,即可自动完成安装过程。这是最简单快捷的安装方式,特别适合不熟悉命令行操作的用户。
2. 使用pipx安装(实验性)
对于希望将So-vits-svc-fork安装到隔离环境的用户,可以尝试使用pipx进行安装:
# 安装pipx
python -m pip install --user pipx
python -m pipx ensurepath
# 安装so-vits-svc-fork
pipx install so-vits-svc-fork --python=3.11
pipx inject so-vits-svc-fork torch torchaudio --pip-args="--upgrade" --index-url=https://download.pytorch.org/whl/cu121
3. 手动安装
对于希望更灵活控制安装过程的用户,可以选择手动安装:
- 创建虚拟环境(推荐):
python3.11 -m venv venv
source venv/bin/activate # Linux/MacOS
venv\Scripts\activate # Windows
- 安装依赖:
python -m pip install -U pip setuptools wheel
pip install -U torch torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -U so-vits-svc-fork
使用方法
推理
So-vits-svc-fork提供了图形界面和命令行两种使用方式:
-
图形界面: 运行
svc vc
命令即可启动GUI界面。 -
命令行:
- 实时转换(从麦克风输入):
svc vc
- 文件转换:
svc infer source.wav -m model.pth -c config.json
- 实时转换(从麦克风输入):
值得注意的是,预训练模型可以从Hugging Face或CIVITAI下载。
训练
在开始训练之前,建议先对数据集进行预处理:
-
如果数据集中包含背景音乐,可以使用Ultimate Vocal Remover等软件去除背景音乐。
-
对于单一说话人的长音频文件,可以使用
svc pre-split
命令将其分割成多个文件。 -
对于多说话人的长音频文件,可以使用
svc pre-sd
命令进行说话人分离。 -
使用
svc pre-classify
命令可以手动分类音频文件。
训练过程的主要步骤如下:
svc pre-resample
svc pre-config
svc pre-hubert
svc train -t
高级功能与技巧
-
自动批量大小调整: 在
config.json
中将batch_size
设置为auto-{init_batch_size}-{max_n_trials}
(或简单地设置为auto
),系统将自动增加批量大小直到出现OOM错误。 -
使用CREPE进行音高估计: 将
svc pre-hubert
命令替换为svc pre-hubert -fm crepe
。 -
使用ContentVec: 将
svc pre-config
命令替换为-t so-vits-svc-4.0v1
。 -
使用MS-iSTFT解码器: 将
svc pre-config
命令替换为svc pre-config -t quickvc
。 -
自动静音移除和音量归一化: 这些操作会自动执行,无需手动处理。
注意事项
-
在实时推理中,如果输入存在噪音,HuBERT模型可能会对噪音产生反应。考虑使用实时降噪应用程序,如RTX Voice。
-
GPU推理至少需要4GB的显存。如果无法正常工作,可以尝试使用CPU推理,因为它也足够快。
-
训练时,建议将数据集中的音频文件长度控制在10秒以内。
-
训练至少需要4GB的显存。建议根据显存容量尽可能增加
config.json
中的batch_size
。
结语
So-vits-svc-fork为语音转换爱好者和研究者提供了一个功能强大、易于使用的开源解决方案。通过实时语音转换、改进的用户界面和更快的训练速度,该项目大大降低了语音转换技术的使用门槛。无论您是想进行个人实验还是开发相关应用,So-vits-svc-fork都是一个值得尝试的工具。
随着人工智能技术的不断发展,我们可以期待So-vits-svc-fork在未来会有更多的改进和新功能。如果您对语音转换感兴趣,不妨亲自尝试一下这个项目,探索语音转换的无限可能性。