跳到正文
EN

配置与部署 ​

1. 运行入口与配置来源 ​

从仓库根目录运行,先按快速开始安装依赖与初始化子模块。

配置优先级为 CLI --config / -c → 环境变量 CONFIG_PATH → Python 配置类默认值。.env.example 指定 configs/prod.yaml。配置文件读取或解析失败时,当前实现记录日志后回退类默认值;请检查启动日志的加载路径与有效参数。

bash
uv run fast-vc serve -c configs/prod.yaml
uv run fast-vc status -p 8042
uv run fast-vc version

类默认值不等同于 prod.yaml,例如音高开关、扩散步数、RMS 比例和参考音频路径存在差异。字段定义见 config.py,示例部署值见 prod.yaml。

2. 常用配置 ​

以下值来自 prod.yaml,不是所有模型的通用推荐值。

配置示例值含义
app.host / port / workers0.0.0.0 / 8042 / 2监听和 Uvicorn 进程数
app.receive_timeout120初始化后逐次收包超时,秒
buffer.prefill_time375首个推理块预填充的静音时长,毫秒
buffer.opus_frame_duration20请求未指定时的 Opus 帧长,毫秒
realtime_vc.device[cuda:0]Worker 设备列表
realtime_vc.reference_wav_pathresources/refs/ref-24k.wavWorker 启动时加载的参考音频
realtime_vc.block_time0.5推理块时长,秒
realtime_vc.SAMPLERATE_IN / SAMPLERATE_OUT16000 / 22050模型前端与模型后处理的采样率
realtime_vc.extra_time_ce / extra_time_dit4.5 / 1.5编码器与 DiT 上文,秒
realtime_vc.sola_buffer_time / extra_time_right0.04 / 0.02拼接区和右侧上下文,秒
realtime_vc.is_f0false自适应音高开关
realtime_vc.diffusion_steps / inference_cfg_rate5 / 0.7扩散步数与引导率
realtime_vc.max_prompt_length5.0参考音频最大使用时长,秒
realtime_vc.rms_mix_rate / is_sola0.9 / true音量包络混合与拼接
realtime_vc.save_input / save_output / save_dirtrue / true / outputs/音频保存开关与目录
models.is_retrieval / index_ratefalse / 1.0语义检索开关与混合比例
models.t_span_schedulecosineCFM 时间步安排
models.speech_noise_thres / decibel_thres0.8 / -50VAD 参数
models.defalut_original_modeltiny未提供完整自定义模型路径时的选择

models.dit_checkpoint_path 和 models.dit_config_path 需成对提供;models.index_path 在启用检索时必须指向实际存在的匹配索引。仓库不附带 prod.yaml 所示的检索索引。

输出给客户端的采样率用请求中的 sample_rate_out 控制,详见 API,不要为调整网络输出而直接改模型采样率。

3. 环境、模型与参考音色 ​

.env.example 提供 CONFIG_PATH、HF_HUB_CACHE、MODELSCOPE_CACHE。缓存相对路径在模型工厂中按仓库根目录解析;其他音频、输出和日志相对路径通常按进程工作目录解析,统一从仓库根启动可减少歧义。

Python 版本约束见 pyproject.toml,快速开始选用 3.10。默认配置为 NVIDIA CUDA,历史报告记录了 NVIDIA GPU 测试结果,但未保存完整的软件环境。代码包含 CPU 回退选择,但不是已验证的实时 CPU 运行承诺;Windows 原生路径还受 fcntl 等 Unix 依赖限制。

参考音色按服务配置固定,修改文件或配置后重启实例。首次启动会下载模型,请先确认下载完成,再进行请求与性能测试。

4. 多 Worker、多设备与多实例 ​

Worker 按设备列表循环分配,每个进程加载模型。先以小并发测量,再增加 Worker;显存和吞吐需实测。

新增实例可复制配置,修改端口、设备、参考音色、日志和输出目录:

bash
cp configs/prod.yaml configs/voice-b.yaml
# Edit voice-b.yaml: use port 8043 and separate log/output paths.
uv run fast-vc serve -c configs/voice-b.yaml

当前连接统计使用同工作目录的公共文件。需要运行文件独立时采用分别克隆的仓库目录,并为实例配置不同端口;不能把不同端口表述为所有数据完全隔离。

5. 服务管理与访问边界 ​

按目标端口停止服务:

bash
uv run fast-vc stop -p 8042

不带端口或配置的 stop 会尝试停止 CLI 已记录的所有实例。clean 要求明确指定 --logs 或 --outputs,显示文件后交互确认;当前没有 -y 选项,且清理的是仓库固定目录,并非任意配置中的自定义输出路径。

内置 api_key 校验是占位逻辑,HTTP 会话接口未鉴权。公开访问需由部署层提供认证、TLS 和访问控制;否则使用受控网络或仅监听回环地址。默认配置会保存音频与时间线,应按实际用途设置保存开关与保留策略。

仓库 Dockerfile 仍使用 Poetry,本轮未构建验证;当前指南以 uv 源码启动为准。容器流程的验证与更新需独立处理。

Fast-VC · 实时流式语音转换