基于检索的语音转换(RVC)
本指南将带你了解如何使用 RVC。这是一种可将一个音频片段中的语音特征迁移到另一个音频片段的技术,能让语音以不同的音色和风格说话。
你看过那些著名的“总统玩 X(Presidents Play X)”视频吗?它们就是用 RVC 制作的。借助 RVC 扩展,你可以让 SillyTavern 角色用任何你想要的音色说话——无论是动漫、电影,还是你自己独一无二的声音。
RVC 并不是 TTS:它更接近语音转语音。它以音频片段作为输入。在后台,RVC 会与 SillyTavern 的 TTS 扩展协同工作:它先等待 TTS 生成音频文件(无论你是否使用 RVC,TTS 都会执行这一步),随后 RVC 会进行第二轮处理,将该 TTS 音频文件转换为你在 RVC 配置中设定的克隆音色。
RVC 设置
SillyTavern 的 RVC 支持多种执行音频转换的 API 来源:
通用前提条件
开始之前,请确认你已满足以下前提条件。
ffmpeg
请确保你的 PATH 环境变量中有 ffmpeg 可执行文件。该工具用于转换输入的音频。
Windows:
- 使用 SillyTavern Launcher 脚本中的 Toolbox 自动安装 ffmpeg:https://github.com/SillyTavern/SillyTavern-Launcher
- 或在此处下载构建版本:https://www.gyan.dev/ffmpeg/builds/
- 修改 PATH 变量的方法:https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/
- 要验证操作是否正确,请打开命令提示符并运行
ffmpeg。它应输出 ffmpeg 的版本与相关信息。
Linux:
使用你的包管理器安装 ffmpeg。
# Debian/Ubuntu
sudo apt install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
# Fedora
sudo dnf install ffmpeg
macOS:
使用 Homebrew 安装 ffmpeg:
brew install ffmpeg
确保 TTS 已启用且工作正常
RVC 依赖 TTS,你需要启用一个 TTS 扩展。在尝试加入 RVC 之前,你的 TTS 必须已经能正常工作并朗读你的聊天内容!
请注意:
- 系统 TTS 引擎完全不支持语音转换。
- 流式 TTS 会等待音频流结束后才进行转换。
安装扩展
在扩展面板(堆叠方块图标)的“下载扩展与素材(Download Extensions & Assets)”菜单中安装“RVC”扩展。
在 SillyTavern 中启用 RVC*
在 SillyTavern 中,进入 Extensions > RVC 并启用它。
选择来源
在扩展设置中,选择要使用的 RVC 来源。随后按照对应来源的安装说明继续操作。
rvc-python 设置
1. 安装该包
按照 GitHub 页面上的安装说明操作:rvc-python Installation。如果你有 Nvidia GPU,建议按照 CUDA 安装说明操作。
如果你在 Windows 上安装时遇到问题(例如构建 fairseq 步骤失败),请确保电脑上已安装以下软件:
2. 准备模型
创建一个用于存放 RVC 模型的目录。默认目录名为 rvc_models,在启动服务器时会从当前目录中读取。每个模型都是一个子文件夹(其名称会显示在 UI 中),其中应包含 .pth(必需)和 .index(可选)文件。
了解更多:rvc-python Model Management
3. 启动 API 服务器
运行以下命令启动 API 服务器:
python -m rvc_python api -p 5050 -l -md models_path
参数:
5050- 设置服务器的监听端口。如需在其他端口上托管,请修改此值。models_path- 设置模型路径。若要使用默认的rvc_models目录,请移除此参数。-l- 将服务器设置为监听所有网络接口。移除则仅监听 localhost。
4. 连接到服务器
- 在 RVC 扩展设置中,设置合适的 rvc-python API URL。默认为
http://localhost:5050。 - 如果你安装的 rvc-python 支持 CUDA 加速,请勾选 Use CUDA 复选框。
- 点击“Refresh”加载可用语音列表。
5. 配置语音映射
语音映射用于为每个角色或用户人格定义语音转换设置。
- 要设置语音映射,请从“Character”下拉菜单中选择你的角色或人格名称,再选择一个 RVC“Voice”,然后点击 Apply。
- 你还可以选择配置其他相关设置,例如音高校正或过滤。
- 如果一切设置正确,Voice Map 调试区域将显示类似 'Betty:MyVoice(rmvpe)' 的内容。
SillyTavern Extras 设置
1. 准备 RVC 模型文件
- 在文件资源管理器中,导航到:
\SillyTavern-extras\data\models\rvc。 - 创建一个如 'Betty' 的子文件夹,并将
.pth和.index文件放入其中。(提示:你可以从 https://voice-models.com 下载语音文件,请确保语音名称标注为 RMVPE。)
2. 安装依赖
使用以下命令安装必要的依赖:
pip install -r requirements-rvc.txt`
3. 启动启用了 RVC 的 SillyTavern-extras
启用 RVC 模块来启动 SillyTavern-extras。以下示例命令假设你使用的是 SillyTavern-extras 预装的 Edge TTS:
python server.py --enable-modules=rvc,edge-tts
如果你有性能足够的 GPU,可以选择让 RVC 在 GPU 上运行,方法是在启动命令中添加 --cuda。根据一次简单测试,朗读 50 个 token(约 36 个词)时 VRAM 占用为 3.4GB,朗读 200 个 token(约 150 个词)时为 7.6GB。
4. 设置语音映射
为 RVC 创建一个 Voice map。将 Character 设置为你想要的 SillyTavern 角色名,将 Voice 设置为你在第 1 步中创建的 RVC 文件夹,然后点击 Apply。如果设置正确,Voice Map 将显示类似 'Betty:MyVoice(rmvpe)' 的内容。
5. 选择音高提取方法
- 选择“rmvpe”作为音高提取方法。
- 如果“rmvpe”有问题,可尝试其他方法(例如“harvest”或“torchcrepe”)。
6.(可选)配置 RVC 将生成结果保存到文件
如果出于测试或排障目的,你希望保存生成的 RVC 音频,请在启动命令中添加 --rvc-save-file。这会将最近一次的生成结果保存到 SillyTavern-extras/data/tmp/rvc_output.wav:
python server.py --enable-modules=rvc,edge-tts --rvc-save-file
基于表情的动态语音
1. 配置 RVC 模型
在你的 RVC 模型文件夹中,为每个已分类的表情(例如 anger、fear、joy、love、sadness、surprise)分别准备 .pth 和 .index 文件。
2. 启用模块
同时启用 RVC 和 classify 模块:
python server.py --enable-modules=rvc,classify
3. 使用 RVC 模块
其余设置与单独使用 RVC 模块类似(如上文所述)。
训练你自己的 RVC 模型
使用 Deffcolony 的 RVC Easy Menu(仅限 Windows)
自动安装并启动 Mangio-RVC:https://github.com/deffcolony/rvc-easy-menu
1. 克隆仓库
将仓库克隆到你想要的位置:
git clone https://github.com/deffcolony/rvc-easy-menu.git
2. 启动 RVC-Launcher.bat
- 打开
RVC-Launcher.bat文件。 - 选择选项 1 以安装 RVC。
3. 完成安装
根据提示安装所需的包和依赖。
4. 打开 WebUI 进行语音训练
安装完成后,选择选项 2 以打开用于语音训练的 WebUI。
Mangio-RVC:训练语音模型
数据集准备:
1. 准备音频:
- 将你要训练的音频放入
datasets文件夹。 - 确保音频没有背景噪声——只需要纯净的人声。
- 较长的音频能带来更好的输出质量。
WebUI 训练:
1. 进入训练标签页:
- 点击 WebUI 中的训练(training)标签页。
2. 配置实验:
- 输入实验名称(例如
my-epic-voice-model)。 - 将版本设置为 v2。
3. 处理数据并提取特征:
- 点击“Process data”和“Feature extraction”。
- 将“Save frequency”设置为 50。
4. 训练参数:
- 将“Total training epochs”设置为 300。
- 点击“Train feature index”和“Train model”。