配置与环境变量
rvc-next 的设置保存在数据目录的 settings.toml 里,Web UI 的 设置 页、rvc-next config 命令和环境变量改的是同一份设置。本页列出全部设置项、环境变量和数据目录的结构。
设置的来源与优先级
生效的设置由四层合并而成,后面的覆盖前面的:
- 内置默认值;
settings.toml(默认在数据目录中;RVC_NEXT_CONFIG_DIR、webui --config-dir或嵌入方可以把它放到别的文件夹);- 环境变量
RVC_NEXT_<GROUP>__<FIELD>; - 嵌入方传入的覆盖值(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.host | str | 127.0.0.1 | 绑定的地址。非本机地址需要先设置访问令牌 |
server.port | int | 7868 | 第一个尝试的端口,[1, 65535] |
server.strict_port | bool | false | 端口被占用时直接失败,不尝试后续端口 |
server.open_browser | bool | true | 启动后打开浏览器 |
server.access_token | str? | 空 | 访问令牌;设置后所有 API 和 WebSocket 请求都要携带 |
server.allowed_origins | list[str] | [] | 允许发起修改请求的其他来源(Origin),并为它们开启 CORS |
server.ssl_certfile | str | null | null | PEM 证书:以 HTTPS 提供服务。其他电脑上的浏览器只在 HTTPS 下允许使用麦克风(实时变声的 本浏览器) |
server.ssl_keyfile | str | null | null | 证书的私钥(证书文件不包含私钥时) |
paths:文件夹
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
paths.models_dir | str | 空(<数据目录>/models) | 模型库 |
paths.experiments_dir | str | 空(<数据目录>/experiments) | 训练实验 |
paths.outputs_dir | str | 空(<数据目录>/outputs) | 转换和分离的结果 |
paths.assets_dir | str | 空(<数据目录>/assets) | HuBERT、RMVPE、底模、分离模型权重;可以指向原版 RVC 的 assets 文件夹 |
paths.legacy_roots | list | [] | 原版 RVC 安装,元素为 {id, path, name};其中的音色直接读取,不复制 |
paths.browse_roots | list[str] | [] | Web UI 可以浏览的服务器文件夹。为空时为:用户主目录、各个原版 RVC 安装、数据目录,以及所有驱动器(Windows)或已挂载的卷(macOS 的 /Volumes/*,Linux 的 /media/<用户>/*、/run/media/<用户>/*、/mnt/*) |
compute:计算
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compute.device | str | auto | auto、cpu、cuda:N、dml,或 mps(实验性) |
compute.precision | auto/fp32/fp16 | auto | 精度;auto 按 GPU 规则选择 |
compute.cuda_graph_offline | bool | false | 转换时使用 CUDA Graph |
compute.cuda_graph_live | bool | true | 实时变声使用 CUDA Graph |
compute.unload_after_minutes | int | 10 | 模型空闲多少分钟后卸载,0 为从不 |
compute.gpu_jobs | int | 1 | 同时运行的 GPU 任务数,[1, 16] |
设备和精度的具体规则见 硬件与性能。
downloads:下载
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
downloads.repository | rvc-model/official | rvc-model | 模型仓库:licyk/rvc-model(按类别收录,含示例音色)或官方 lj1995/VoiceConversionWebUI。所选仓库缺少的文件从另一个仓库下载 |
downloads.source | huggingface/hf-mirror/custom | huggingface | 访问仓库的端点:https://huggingface.co、https://hf-mirror.com 或自定义 |
downloads.endpoint | str | 空 | source 为 custom 时使用的地址 |
downloads.verify_checksums | bool | true | 下载后校验 SHA-256 |
convert:转换
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
convert.output_format | wav/flac/mp3/m4a/ogg | wav | 结果格式 |
convert.output_dir | str | 空 | 结果文件夹;非空时优先于 paths.outputs_dir |
convert.keep_outputs_days | int | 0 | 结果保留天数,0 为一直保留;服务器启动时清理过期结果 |
convert.default_params | 对象 | 见下 | 导入音色时复制到该音色默认预设的参数 |
convert.default_params(音色参数,含义见 音色参数):
| 字段 | 默认值 | 范围 |
|---|---|---|
speaker_id | 0 | [0, 109] |
pitch | 0.0 | [-24, 24] 半音 |
formant | 0.0 | [-2, 2] 半音 |
f0_method | rmvpe | pm、rmvpe、fcpe、crepe、crepe-tiny、swift |
index_rate | 0.75 | [0, 1] |
protect | 0.33 | [0, 0.5] |
rms_mix_rate | 0.25 | [0, 1] |
separation:分离
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
separation.default_preset | str | vocals | 默认分离预设 |
separation.output_format | wav/flac/mp3/m4a/ogg | flac | 分轨格式 |
training:训练默认值
新建实验时使用的默认值;已有实验的设置保存在它自己的 experiment.json 里。
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
training.sample_rate | 32k/40k/48k | 40k | 采样率 |
training.version | v1/v2 | v2 | 模型版本 |
training.pitch_guidance | bool | true | 音高引导 |
training.f0_method | auto/pm/rmvpe/fcpe/crepe/crepe-tiny/swift | auto | auto:有 GPU 用 rmvpe,否则用 pm |
training.epochs | int | 20 | 轮数,[1, 10000] |
training.save_every | int | 5 | 每 N 轮保存 |
training.batch_size | int? | 空 | 批大小 [1, 256];空为自动(最小显卡的显存 GiB 数除以 2,与原版相同) |
training.cache_in_gpu | bool | false | 将数据集缓存到显存 |
training.save_small_every | bool | false | 每个保存点都保存音色(小模型) |
training.cpu_workers | int? | 空 | CPU 进程数;空为 CPU 核数除以 1.5 |
training.author | str | 空 | 与轮数、步数和日期一起写入你训练的音色 |
training.gpus | str | auto | 新实验的 GPU:auto、cpu,或用 - 连接的 GPU 编号(如 0-1),与原版相同;训练按实验自己的设置选卡 |
live:实时变声
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
live.devices.input | 设备选择 | 系统默认 | 输入设备 |
live.devices.output | 设备选择 | 系统默认 | 输出设备 |
live.devices.monitor | 设备选择? | 空(不监听) | 监听设备 |
live.devices.monitor_source | converted/input/both | converted | 监听内容 |
live.devices.monitor_gain_db | float | 0.0 | 监听音量,[-60, 12] dB |
live.devices.output_gain_db | float | 0.0 | 输出音量,[-60, 12] dB |
live.stream.block_ms | int | 250 | 块长,[20, 1500] 毫秒 |
live.stream.crossfade_ms | int | 50 | 交叉淡化,[10, 150] 毫秒 |
live.stream.context_ms | int | 2500 | 上下文,[50, 5000] 毫秒 |
live.stream.threshold_db | float | -60.0 | 输入门限,[-60, 0] dB;-60 为关闭 |
live.stream.input_denoise | bool | false | 输入降噪 |
live.stream.output_denoise | bool | false | 输出降噪 |
live.last_voice | str? | 空 | 上次使用的音色 |
live.last_params | 对象 | 同 convert.default_params,但 index_rate 和 rms_mix_rate 为 0 | 上次使用的音色参数(原版实时 GUI 的初始值) |
live.auto_reconnect | bool | true | 自动重新连接丢失的设备 |
live.show_meters | bool | true | 停止时显示输入电平 |
live.show_all_devices | bool | false | 输入菜单同时列出输出设备,作为内录输入:输出设备播放的声音成为输入(Windows 用 WASAPI 环回,Linux 用 PulseAudio/PipeWire 监视器;macOS 不支持) |
live.enable_asio | bool | false | 启用 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_origins | Origin 检查立即生效;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 显示它的位置)。音色库、实验和结果不受影响。环境变量设置的值仍然生效。