RVC Next

配置与环境变量

rvc-next 的设置保存在数据目录的 settings.toml 里,Web UI 的 设置 页、rvc-next config 命令和环境变量改的是同一份设置。本页列出全部设置项、环境变量和数据目录的结构。

设置的来源与优先级

生效的设置由四层合并而成,后面的覆盖前面的:

  1. 内置默认值;
  2. settings.toml(默认在数据目录中;RVC_NEXT_CONFIG_DIR、webui --config-dir 或嵌入方可以把它放到别的文件夹);
  3. 环境变量 RVC_NEXT_<GROUP>__<FIELD>;
  4. 嵌入方传入的覆盖值(rvc-next 被其他程序以库的方式使用时才有,见 嵌入到其他程序)。

环境变量和覆盖值只在内存中生效,不会写回 settings.toml。Web UI 里被环境变量覆盖的文件夹设置会标注 由环境变量设置,被嵌入方固定的标注 由嵌入 rvc-next 的应用设置;rvc-next config set 修改一个被环境变量覆盖的设置时,会提示 "An environment variable overrides this setting."。

环境变量

rvc-next env 列出 rvc-next 读取的环境变量,以及当前已设置的 RVC_NEXT_* 变量:

变量含义
RVC_NEXT_DATA_DIR数据目录,存放 settings.toml、数据库、模型、实验和结果
RVC_NEXT_CONFIG_DIR存放 settings.toml 的文件夹,不想放在数据目录时使用
RVC_NEXT_LOG_LEVEL日志级别:DEBUG、INFO、WARNING 或 ERROR(默认 INFO)
RVC_NEXT_<GROUP>__<FIELD>覆盖一个设置,例如 RVC_NEXT_SERVER__PORT=8000 或 RVC_NEXT_COMPUTE__DEVICE=cpu

另外,引擎读取 RVC_NEXT_CUDA_GRAPH_MAX_CACHE:每个调用点最多缓存多少个 CUDA Graph(默认 8),一般不需要修改。

覆盖设置的规则:

  • 去掉前缀 RVC_NEXT_ 后转成小写,__(两个下划线)表示下一级,例如 RVC_NEXT_COMPUTE__GPU_JOBS 对应 compute.gpu_jobs,RVC_NEXT_LIVE__STREAM__BLOCK_MS 对应 live.stream.block_ms。
  • 值能按 JSON 解析就按 JSON 解析(数字、true/false、列表、对象),否则作为字符串;null 或 none 表示空值。
export RVC_NEXT_DATA_DIR=/data/rvc-next
export RVC_NEXT_COMPUTE__DEVICE=cuda:1
RVC_NEXT_SERVER__PORT=8000 rvc-next webui

用命令行查看和修改

rvc-next config path                        # settings.toml 的路径
rvc-next config show                        # 生效的全部设置(JSON)
rvc-next config get compute.device
rvc-next config set compute.device cpu
rvc-next config set compute.gpu_jobs 2
rvc-next config set paths.browse_roots '["D:/music", "E:/datasets"]'
rvc-next config set server.access_token "一个足够长的随机字符串"
rvc-next config set server.access_token null # 清除令牌
  • 键用点分隔,值按 JSON 解析;写入前整体校验,取值超出范围或类型不对时报错(退出码 4),文件不变。
  • config show 不显示访问令牌,只显示 access_token_configured 是否已设置;它还会列出 resolved_paths(文件夹设置为空时实际使用的路径)、env_overrides(生效的环境变量)和 pinned。
  • null 只能清除可以为空的设置(如 server.access_token、training.batch_size);想恢复某项的默认值,用 config set 写回下表中的默认值即可。

服务器运行时也可以用命令行改

正在运行的服务器每次读取设置时,最多每秒检查一次 settings.toml 是否被其他进程(rvc-next config set、文本编辑器)改过,改过就重新读取,并通知打开的 Web UI。Web UI 保存设置时也会先读一遍文件,在其当前内容上合并后再写回,不会冲掉别处的改动。手工编辑出错(无法解析或校验失败)时,服务器记录一条警告并继续使用原来的设置。

全部设置项

下表中"类型"一栏的 str?、int? 表示可以为空(null)。文件夹类设置留空表示"使用数据目录下的默认文件夹"。

server:服务器

设置类型默认值说明
server.hoststr127.0.0.1绑定的地址。非本机地址需要先设置访问令牌
server.portint7868第一个尝试的端口,[1, 65535]
server.strict_portboolfalse端口被占用时直接失败,不尝试后续端口
server.open_browserbooltrue启动后打开浏览器
server.access_tokenstr?空访问令牌;设置后所有 API 和 WebSocket 请求都要携带
server.allowed_originslist[str][]允许发起修改请求的其他来源(Origin),并为它们开启 CORS
server.ssl_certfilestr | nullnullPEM 证书:以 HTTPS 提供服务。其他电脑上的浏览器只在 HTTPS 下允许使用麦克风(实时变声的 本浏览器)
server.ssl_keyfilestr | nullnull证书的私钥(证书文件不包含私钥时)

paths:文件夹

设置类型默认值说明
paths.models_dirstr空(<数据目录>/models)模型库
paths.experiments_dirstr空(<数据目录>/experiments)训练实验
paths.outputs_dirstr空(<数据目录>/outputs)转换和分离的结果
paths.assets_dirstr空(<数据目录>/assets)HuBERT、RMVPE、底模、分离模型权重;可以指向原版 RVC 的 assets 文件夹
paths.legacy_rootslist[]原版 RVC 安装,元素为 {id, path, name};其中的音色直接读取,不复制
paths.browse_rootslist[str][]Web UI 可以浏览的服务器文件夹。为空时为:用户主目录、各个原版 RVC 安装、数据目录,以及所有驱动器(Windows)或已挂载的卷(macOS 的 /Volumes/*,Linux 的 /media/<用户>/*、/run/media/<用户>/*、/mnt/*)

compute:计算

设置类型默认值说明
compute.devicestrautoauto、cpu、cuda:N、dml,或 mps(实验性)
compute.precisionauto/fp32/fp16auto精度;auto 按 GPU 规则选择
compute.cuda_graph_offlineboolfalse转换时使用 CUDA Graph
compute.cuda_graph_livebooltrue实时变声使用 CUDA Graph
compute.unload_after_minutesint10模型空闲多少分钟后卸载,0 为从不
compute.gpu_jobsint1同时运行的 GPU 任务数,[1, 16]

设备和精度的具体规则见 硬件与性能。

downloads:下载

设置类型默认值说明
downloads.repositoryrvc-model/officialrvc-model模型仓库:licyk/rvc-model(按类别收录,含示例音色)或官方 lj1995/VoiceConversionWebUI。所选仓库缺少的文件从另一个仓库下载
downloads.sourcehuggingface/hf-mirror/customhuggingface访问仓库的端点:https://huggingface.co、https://hf-mirror.com 或自定义
downloads.endpointstr空source 为 custom 时使用的地址
downloads.verify_checksumsbooltrue下载后校验 SHA-256

convert:转换

设置类型默认值说明
convert.output_formatwav/flac/mp3/m4a/oggwav结果格式
convert.output_dirstr空结果文件夹;非空时优先于 paths.outputs_dir
convert.keep_outputs_daysint0结果保留天数,0 为一直保留;服务器启动时清理过期结果
convert.default_params对象见下导入音色时复制到该音色默认预设的参数

convert.default_params(音色参数,含义见 音色参数):

字段默认值范围
speaker_id0[0, 109]
pitch0.0[-24, 24] 半音
formant0.0[-2, 2] 半音
f0_methodrmvpepm、rmvpe、fcpe、crepe、crepe-tiny、swift
index_rate0.75[0, 1]
protect0.33[0, 0.5]
rms_mix_rate0.25[0, 1]

separation:分离

设置类型默认值说明
separation.default_presetstrvocals默认分离预设
separation.output_formatwav/flac/mp3/m4a/oggflac分轨格式

training:训练默认值

新建实验时使用的默认值;已有实验的设置保存在它自己的 experiment.json 里。

设置类型默认值说明
training.sample_rate32k/40k/48k40k采样率
training.versionv1/v2v2模型版本
training.pitch_guidancebooltrue音高引导
training.f0_methodauto/pm/rmvpe/fcpe/crepe/crepe-tiny/swiftautoauto:有 GPU 用 rmvpe,否则用 pm
training.epochsint20轮数,[1, 10000]
training.save_everyint5每 N 轮保存
training.batch_sizeint?空批大小 [1, 256];空为自动(最小显卡的显存 GiB 数除以 2,与原版相同)
training.cache_in_gpuboolfalse将数据集缓存到显存
training.save_small_everyboolfalse每个保存点都保存音色(小模型)
training.cpu_workersint?空CPU 进程数;空为 CPU 核数除以 1.5
training.authorstr空与轮数、步数和日期一起写入你训练的音色
training.gpusstrauto新实验的 GPU:auto、cpu,或用 - 连接的 GPU 编号(如 0-1),与原版相同;训练按实验自己的设置选卡

live:实时变声

设置类型默认值说明
live.devices.input设备选择系统默认输入设备
live.devices.output设备选择系统默认输出设备
live.devices.monitor设备选择?空(不监听)监听设备
live.devices.monitor_sourceconverted/input/bothconverted监听内容
live.devices.monitor_gain_dbfloat0.0监听音量,[-60, 12] dB
live.devices.output_gain_dbfloat0.0输出音量,[-60, 12] dB
live.stream.block_msint250块长,[20, 1500] 毫秒
live.stream.crossfade_msint50交叉淡化,[10, 150] 毫秒
live.stream.context_msint2500上下文,[50, 5000] 毫秒
live.stream.threshold_dbfloat-60.0输入门限,[-60, 0] dB;-60 为关闭
live.stream.input_denoiseboolfalse输入降噪
live.stream.output_denoiseboolfalse输出降噪
live.last_voicestr?空上次使用的音色
live.last_params对象同 convert.default_params,但 index_rate 和 rms_mix_rate 为 0上次使用的音色参数(原版实时 GUI 的初始值)
live.auto_reconnectbooltrue自动重新连接丢失的设备
live.show_metersbooltrue停止时显示输入电平
live.show_all_devicesboolfalse输入菜单同时列出输出设备,作为内录输入:输出设备播放的声音成为输入(Windows 用 WASAPI 环回,Linux 用 PulseAudio/PipeWire 监视器;macOS 不支持)
live.enable_asioboolfalse启用 ASIO 驱动(Windows)

"设备选择"是一个对象:device_id(空为跟随系统默认)、physical_key、name、host_api、channels(输入为要混合成单声道的声道,从 1 开始;输出为写入的声道;空为输入第一个、输出前两个)、sample_rate、exclusive(WASAPI 独占模式)。这些通常在 Web UI 的设备面板里选择,或由 rvc-next live run --input/--output 写入,不需要手动编辑。

哪些修改需要重启

设置何时生效
server.host、server.port、server.strict_port、server.open_browser、server.ssl_certfile、server.ssl_keyfile下次启动服务器(Web UI 中标注 下次启动服务器时生效。)
server.access_token立即
server.allowed_originsOrigin 检查立即生效;CORS 响应头在启动时配置,需要重启
paths.*立即;Web UI 修改后会重新扫描音色库
compute.device、compute.precision、compute.cuda_graph_offline、paths.assets_dir服务器内的模型会被卸载,下次转换或分离时按新设置加载
compute.gpu_jobs、compute.unload_after_minutes立即
compute.device、compute.precision、compute.cuda_graph_live、live.enable_asio 对实时变声的影响实时变声的工作进程第一次启动后会一直保留到服务器退出,这些设置在它启动时读取;修改后需要重启服务器
live.devices.*、live.stream.*下次开始实时变声;运行中修改块长、交叉淡化、上下文时会重新缓冲,不需要重新加载模型
其余设置下次使用时

数据目录

数据目录的位置:

系统默认位置
Windows%APPDATA%\rvc-next
macOS~/Library/Application Support/rvc-next
Linux$XDG_DATA_HOME/rvc-next,未设置时为 ~/.local/share/rvc-next

用环境变量 RVC_NEXT_DATA_DIR 或 rvc-next webui --data-dir 可以换到其他位置。rvc-next config show 的 data_dir 显示当前使用的目录,Web UI 中在 设置 › 关于 的 数据文件夹。

<数据目录>/
├── settings.toml            设置(另行指定配置目录时不在这里)
├── rvc-next.db              数据库:音色缓存、预设、任务、结果、界面状态
├── server.json              服务器运行时写入(地址和端口),退出时删除
├── assets-verified.json     已通过校验的资源记录
├── legacy-voices.json       原版 RVC 安装中音色的索引配对(含你的修改)
├── assets/                  资源(paths.assets_dir),与原版 RVC 的 assets 结构相同
│   ├── hubert_base/
│   ├── rmvpe/               rmvpe.pt、rmvpe.onnx
│   ├── fcpe/
│   ├── pretrained/          v1 底模
│   ├── pretrained_v2/       v2 底模
│   └── pymss_weights/       分离模型权重
├── models/                  模型库(paths.models_dir)
│   ├── voices/<名称>/        model.pth、model.index 或 spk<N>.index、voice.json
│   ├── indexes/             未分配的索引
│   ├── base/                导入的底模(G 和 D)
│   ├── separation/          导入的分离模型(检查点和 YAML)
│   └── attached-indexes/    为原版 RVC 安装中的音色附加的索引副本
├── experiments/<实验>/       训练实验(paths.experiments_dir),含 experiment.json 和原版的各阶段文件夹
├── outputs/<日期>/<任务 id>/  转换和分离的结果(paths.outputs_dir)
├── jobs/<任务 id>.log         任务日志
├── uploads/                 上传和导入的暂存文件(导入会话保留 24 小时)
├── cache/peaks/             波形缓存
└── trash/                   系统回收站不可用时,删除的文件移到这里

音色库以文件夹为准:数据库里的音色列表只是缓存,可以从 models/ 和原版 RVC 安装重建。实验是文件夹,不在数据库里。

重置设置

想把全部设置恢复为默认值,先停止服务器,再删除或改名 settings.toml(rvc-next config path 显示它的位置)。音色库、实验和结果不受影响。环境变量设置的值仍然生效。

本页目录