ViiTorVoice-NAR实测 - 开源免费的语音克隆工具
今天发点适合做音色复刻的东西。 说实话,现在做 AI 语音最烦的地方,是生成的音频里只想改几个词,却不得不重新录、重新配、重新剪。
今天发点适合做音色复刻的东西。
说实话,现在做 AI 语音最烦的地方,是生成的音频里只想改几个词,却不得不重新录、重新配、重新剪。
今天这个 GitHub 的 ViiTorVoice-NAR 项目就很适合这种场景:给一段原始音频和对应文案,直接把里面的局部内容改掉,声线、语气、节奏还能保留原来的感觉。
ViiTorVoice-NAR 是 viitor-ai 开源的非自回归语音生成系统,主要面向语音克隆、局部语音编辑、情感控制和副语言控制。
项目地址:https://github.com/viitor-ai/viitor-voice-nar
ViiTorVoice-NAR 的核心思路是把语音生成从逐 token 接龙改成离散音频 token 填空。
传统自回归 TTS 往往按顺序生成音频 token,前面生成完才能继续后面;ViiTorVoice-NAR 使用 masked language model 方式,在离散 codebook 空间里补全被 mask 的音频片段。
这个结构很适合语音局部编辑,比如把一句话里的 Friday 改成 Monday,只需要定位并重合成被修改的局部区域,不必整段音频重新生成。
ViiTorVoice-NAR 的核心能力:
- 语音克隆:输入一段提示音频,模型生成目标文本对应的语音,并尽量保留提示音频中的说话人音色。
- 局部语音编辑:输入原始音频、原始文本和编辑后的完整文本,系统会先对文本做 diff,再结合强制对齐结果找到需要替换的音频区域,最后只重合成那一小段音频。
- 情感和副语言控制:文本条件里可以插入情感标签或副语言标签,比如情绪、笑声、停顿、语气等。
- 低延迟推理:项目支持 first block 推理模式。模型可以先生成第一块音频 token,用来缩短首帧等待时间。
项目需要安装 git 、uv 和英伟达的显卡,只需要 8G 显存就够了,12G 使用起来会更流畅一点。
环境装好直接克隆项目到一个英文路径:
1 cd D:\
2 git clone https://github.com/viitor-ai/viitor-voice-nar.git viitor-voice-nar
3 cd D:\viitor-voice-nar
然后创建创建 Python 3.12 虚拟环境,并安装依赖:
1 uv venv --python 3.12
2 uv pip install --python .venv\Scripts\python.exe -r requirements-grpc.txt
3 uv pip install --python .venv\Scripts\python.exe -r requirements-alone.txt
4 uv pip install --python .venv\Scripts\python.exe protobuf==4.25.3
下载模型,模型有 10 多个 G,大家留好空间:
1 New-Item -ItemType Directory -Force local_models
2 $env:PYTHONIOENCODING="utf-8"
3 .venv\Scripts\hf.exe download ZzWater/ViiTorVoice-NAR --local-dir local_models
最后启动就可以开始用了:
1 cd D:\viitor-voice-nar
2 .\run_grpc_v2.ps1 start all -- --no-warmup
case 1 语音克隆
1 Copy-Item "被克隆的语音位置" "D:\viitor-voice-nar\input_voice_clone.mp3" -Force
2
3 curl.exe -X POST http://127.0.0.1:7861/v1/voice-clone `
4 -F "ref_audio=@D:\viitor-voice-nar\input_voice_clone.mp3" `
5 -F "text=你好,这是一次语音克隆测试。" `
6 -F "language=zh" `
7 -F "allow_missing_ref_text=true" `
8 -F "output_format=wav" `
9 -F "num_steps=32" `
10 --output "语音克隆输出位置" `
11 --write-out "HTTP %{http_code} size %{size_download}`n"
原版:
可以看出克隆版不仅音色比较像,还带了一点说唱的味道。
case 2 局部改词
1 Copy-Item "被克隆的语音位置""D:\viitor-voice-nar\input_liziming.mp3" -Force
2
3 curl.exe -X POST http://127.0.0.1:7861/v1/text-local-edit `
4 -F "source_audio=@D:\viitor-voice-nar\input_liziming.mp3" `
5 -F "original_text=请注意三年六班李子明,李子明同学,你妈妈拿了两罐旺仔牛奶要给你。" `
6 -F "edited_text=请注意三年六班克劳德,克劳德同学,你妈妈拿了两份迪普斯科要给你。" `
7 -F "language=zh" `
8 -F "input_format=wav" `
9 -F "output_format=wav" `
10 -F "align_granularity=word" `
11 -F "expand_mask_ratio=1.5" `
12 -F "num_steps=32" `
13 --output "语音克隆输出的位置" `
14 --write-out "HTTP %{http_code} size %{size_download}`n"
原版:
除了需要改动的地方,其他地方基本没有什么变动。
case 3 情绪控制
1 Copy-Item "被克隆的语音位置""D:\viitor-voice-nar\input_sad_ref.wav" -Force
2
3 $Text = "你好,这是一次悲伤情绪的语音生成测试。"
4
5 curl.exe -X POST http://127.0.0.1:7861/v1/voice-clone `
6 -F "ref_audio=@D:\viitor-voice-nar\input_sad_ref.wav" `
7 --form-string"text=<|emotion-sad|>$Text" `
8 -F "language=zh" `
9 -F "allow_missing_ref_text=true" `
10 -F "emotion_guidance_scale=6.0" `
11 -F "nvv_guidance_scale=2.0" `
12 -F "output_format=wav" `
13 -F "num_steps=32" `
14 --output "语音克隆输出的位置" `
15 --write-out "HTTP %{http_code} size %{size_download}`n"
原版:
情绪很到位了,音色也没有随着情绪的变动而被改变。
AI 语音正在进入内容生产里最费时、也最费钱的部分:改稿。
Monotype 2025 年调研了 1008 名创意专业人士,57% 的创意团队每周超过四分之一时间花在非创意工作上,包括素材管理、合规检查和流程瓶颈。
短视频口播、广告素材、课程旁白、游戏语音、客服播报,经常只改一个人名、日期、品牌词或价格,传统流程却要重新录音、重新剪辑、重新审一遍。
ViiTorVoice-NAR 的语音克隆负责生成新内容,局部语音编辑负责改掉旧音频里的几个词,情绪控制负责补上语气变化,改版更轻松。
省下来的不只是配音费,还有来回沟通、等待排期和反复剪辑的时间。
个人创作者可以拿来做音频整活和口播改稿,公司可以做内部配音工具,还可以围绕授权声音资产搭一套更低成本的生产流程。
AI 语音真正进入生产,不靠一次生成多惊艳,靠的是每次改稿都少折腾一点。