ViiTorVoice-NAR:面向语音克隆与局部语音编辑的开源语音模型
ViiTorVoice 是一个面向语音克隆、语音局部编辑和低延迟生成的开源语音模型。旧版仓库 viitor-ai/viitor-voice 已迁移到 ViiTorVoice-NAR,当前官方文档、部署脚本和 HTTP API 主要以新仓库为准。
从公开时间线看,旧仓库的 v1 标签发布于 2024 年 12 月 25 日;新版 NAR 仓库的首次公开导入提交时间为 2026 年 6 月 9 日。官网 viitorvoice.com 提供了功能说明和在线 Demo 入口,模型权重位于 Hugging Face 的 ZzWater/ViiTorVoice-NAR。

图:官网展示的局部语音编辑工作区。实际评估时,应同时准备原始音频、原始文本和修改后的完整文本。
一、模型解决什么问题
传统 TTS 更适合“输入一段新文本,重新生成一整段语音”。但在广告、课程、播客、游戏对白和企业宣传片中,经常只有一个名字、日期、数字或短语发生变化。如果整段重新录制,容易导致音色、语气、环境声和节奏不一致。
ViiTorVoice-NAR 的重点是:在保留原始表演的前提下,只替换发生变化的局部语音片段。局部编辑接口接收原始音频、原始文本和完整的新文本,系统会计算文本差异、对齐文本和音频位置,再只重生成被修改的区域。
二、核心能力与技术特点
1. 语音克隆
提供一段提示音频和目标文本即可合成目标语音。模型支持 no-reference-text 模式,提示音频可以不提供对应的参考文本,适合已有录音但没有可靠转写稿的场景。
2. 局部语音编辑
局部编辑适合修改短词、短语、数字、人名、产品名、日期、免责声明和口播中的少量句子。它不是简单的音频剪切,而是结合原始音频前后文和文本条件,对遮罩区域进行补全,因此目标是让替换片段和上下文保持连续。
3. 情绪与副语言控制
文本条件中可以加入情绪、说话风格、笑声、停顿等标签,并通过 emotion_guidance_scale 和 nvv_guidance_scale 调整控制强度。需要注意:如果文本中没有对应标签,相关 CFG 参数不会产生实际作用;标签越强也不一定越自然,应通过听感测试确定参数。
4. 低延迟首帧生成
模型支持 first-block inference,只先生成音频的首个区块,用于降低首帧等待时间。官方技术说明称,在合适的部署条件下端到端首帧延迟可达到约 60 ms。实际延迟仍取决于 GPU、音频长度、并发量、上传时间和服务编排方式。
5. 非自回归离散掩码建模
ViiTorVoice 使用非自回归的离散掩码语言模型,不是逐 token 自回归生成,而是在离散音频 token 空间中补全被遮罩的 codebook。官方技术文档描述其使用 DualCodec 的 25 Hz、12 层 codebook,兼顾语义、说话人信息、声学细节和推理效率。
三、适用场景
- 广告与营销:替换折扣、产品名、活动日期、合规免责声明,不必重新录制整条广告。
- 课程和培训:软件版本、功能名称和操作步骤发生变化时,修补旧课程中的一句或几句旁白。
- 播客与有声书:修正嘉宾姓名、数字、赞助商口播和事实错误,保持原有节目氛围。
- 短视频与社交媒体:快速生成不同平台、不同市场或不同 CTA 的语音版本。
- 游戏与短剧本地化:在角色音色保持稳定的情况下修正本地化台词、专有名词和情绪表达。
- 企业内部语音内容:更新制度宣导、产品培训、客服话术或演示视频中的少量内容。
不适合使用局部编辑的情况包括:整段表演方向改变、大部分句子都发生变化、情绪和节奏需要完全重做,或者参考声音没有获得合法授权。这些场景更适合完整重生成或人工补录。
四、部署方式
官方仓库当前给出的部署路径以 Linux、Python 3.12、PyTorch 和 vLLM 为主。仓库提供 init_env.sh、模型下载说明、run_grpc_v2.sh 服务脚本和 HTTP API。
1. 获取代码并创建环境
git clone https://github.com/viitor-ai/viitor-voice-nar.git
cd viitor-voice-nar
bash init_env.sh
source .venv/bin/activate
如果使用 vLLM,官方脚本面向 CUDA 12.8;应根据本机 CUDA 驱动和显卡环境调整 PyTorch/vLLM 安装方式。显存不足时,可以先使用 transformers 后端验证功能。
2. 下载模型文件
模型文件应放在仓库根目录的 local_models/ 下,并确保是真实文件而不是失效软链接:
mkdir -p local_models
huggingface-cli download ZzWater/ViiTorVoice-NAR \
--local-dir local_models \
--local-dir-use-symlinks False
生产部署前应核对模型许可、磁盘空间、GPU 显存和模型文件完整性。公开 Demo 适合快速试用,不建议上传客户录音、未发布广告、内部会议或其他敏感音频。
3. 启动服务
官方推荐使用 run_grpc_v2.sh 管理 encoder、LLM、decoder、orchestrator 和 HTTP 服务:

图:部署前可以先通过官网在线 Demo 熟悉“上传音频—填写原文—填写改文—生成结果”的交互流程;正式环境再切换到本地 HTTP 服务。
./run_grpc_v2.sh start all
./run_grpc_v2.sh status all
./run_grpc_v2.sh logs orchestrator
./run_grpc_v2.sh stop all
默认 HTTP 服务监听 <PRIVATE_IP>:7861。如果需要对外提供服务,应在反向代理、访问控制、日志脱敏和音频存储策略上做额外配置,不要直接把开发端口暴露到公网。
五、常用调用示例
语音克隆
不提供参考文本的克隆请求示例:
curl -X POST "http://<PRIVATE_IP>:7861/v1/voice-clone" \
-F "ref_audio=@prompt.wav" \
-F "text=今天天气不错,我们下午一起去公园散步吧。" \
-F "language=zh" \
-F "allow_missing_ref_text=true" \
--output clone.wav
局部语音编辑
将周五改成周一,只提交原始音频、原始文本和完整的新文本:
curl -X POST "http://<PRIVATE_IP>:7861/v1/text-local-edit" \
-F "source_audio=@source.wav" \
-F "original_text=Please send the meeting notes before Friday." \
-F "edited_text=Please send the meeting notes before Monday." \
-F "language=en" \
-F "align_granularity=word" \
-F "expand_mask_ratio=1.5" \
-F "output_format=wav" \
--output edited.wav
中文、日文和韩文默认更适合使用字符级对齐,英文通常使用词级对齐。API 可以通过 align_granularity 覆盖自动选择。编辑范围越短、原始转写越准确,越容易得到稳定结果。
命令行推理
仓库同时提供 CLI,可使用 transformers 或 vLLM 后端:
python cli.py \
--prompt /path/to/prompt.wav \
--text "Hello ViiTorVoice!" \
--output outputs/out.wav
单条文本可以额外提供时长提示:
python cli.py \
--prompt /path/to/prompt.wav \
--text "Keep this around three seconds." \
--duration 3.0 \
--output outputs/with_duration.wav
六、上线前的评估清单
- 用真实业务句子测试,而不是只测试干净的示例句。
- 分别检查音色相似度、发音、节奏、情绪和编辑边界。
- 重点听替换片段的前后辅音、噪声底、呼吸声和房间声是否突变。
- 同时测量首帧延迟、完整生成时间、队列时间和人工审核时间。
- 将输出分为“通过、需修改、拒绝”,记录具体失败原因。
- 只使用获得授权的参考声音,并在对外发布时按平台和地区规则进行 AI 语音披露。
- 对客户音频、未发布内容和内部资料使用受控环境,避免上传到公共 Demo。
七、如何判断是否值得采用
如果团队经常因为一个词、一串数字或一条合规文案变化而重新录音,ViiTorVoice-NAR 的局部编辑能力很有价值。它最适合“原始表演已经通过审核,只需要精准修补”的工作流。
如果整段语气、情绪、语言或表演方向都发生变化,则不应强行使用局部编辑。实际选型时,建议用一组固定的企业样本,对比 ViiTorVoice-NAR、完整 TTS 重生成和人工补录的总审核成本,而不只比较模型生成速度。