妈妈都分不清的配音 | VoiceStudio + VoxCPM 2 本地配音保姆级教程

一句话:VoxCPM 2 是 OpenBMB 开源的语音模型,代码和权重都是 Apache-2.0,可以商用。VoiceStudio 是一个开源的本地配音桌面应用,可以把 VoxCPM 2 装成它的一个引擎,提供声音库、转写和本地 API。两者配合,在自己电脑上就能做出接近真人的中文旁白,不按字数付费,稿子和录音也不用上传。

本文要点

  • 先科普:配音为什么难;"预设音色、声音设计、声音克隆"三种玩法各适合什么;两个项目截至 2026 年 10 月 30 日的状态。
  • 再实战 :两条路线。
    • 路线 A:VoiceStudio 图形界面加 VoxCPM 2 引擎,零代码。
    • 路线 B:Mac 上直接用 mlx-audio 跑 VoxCPM 2,适合批量生产,也是我们一直在用的方式。
  • 最值钱的部分:参考音频怎么洗、长稿怎么分段、多音字和英文词怎么处理、怎么质检。
  • 弯路清单:一个月里踩过的 15 个坑,每个都有症状、原因和解法。
  • 实测数据:Apple M3 Max 上的速度和内存、参考音频清理前后的对比、多音字的小样本实验。

为什么写这篇

做视频的朋友,几乎都在配音上吃过苦头:

  • 自己录:要安静的房间,要好麦克风,录完还得剪口误。改一个字,整段重录。
  • 用免费的在线 TTS:一听就是机器,语调平,停顿怪,观众三秒就划走。
  • 花钱买会员、按字数付费:贵,好听的音色还撞衫。你的稿子还要上传到平台,音色也不属于你。
  • 找人配:更贵,周期更长,改稿还得再等。

我们在做开源项目 sweety-handdraw-video(AI 手绘口播视频)的过程中,几乎把这些坑全踩了一遍。后来定型的方案就是 VoiceStudio + VoxCPM 2。

手绘项目 2.0 发布时,我们提了一句"高度拟人化的配音靠的是这个组合",之后很多人来问怎么做。

准确地说,这两个在我们这里一直是分开跑的:

  • 先用 VoiceStudio:当时配的是 Qwen3-TTS 引擎,手绘项目 1.0 的配音和语音转写都靠它。
  • VoxCPM 2 后来加入:在 Mac 上用 mlx-audio 单独跑,成了主力旁白,造就了独一无二的逼真配音。

现在 VoiceStudio 已经能把 VoxCPM 2 装成自己的一个引擎,下面我会把这两条线都讲一遍。


第一部分:科普------先把概念理清,少走一半弯路

1. AI 配音的三种玩法

玩法 怎么用 优点 缺点 适合
预设音色 从列表里挑一个现成的声音 最简单 撞衫;音色不归你;情绪难调 偶尔用、对音色没要求
声音设计(Voice Design) 用一句话描述你想要的声音,例如"中年男声,低沉有磁性,适合知识解说" 不需要任何录音,凭空造出新声音 每次生成都像换了一个人 找方向、给虚构角色定声线
声音克隆(Voice Cloning) 给一段参考录音,让模型用这个音色读新稿 音色稳定、可复用 参考录音质量决定一切;必须有使用授权 长期栏目、系列视频

我们最后的做法是两种组合起来:先用"声音设计"找到喜欢的声音,挑一条最好的作参考,以后全部用"克隆"。这样既不用找真人授权,音色又稳定。后面会细讲。

2. VoxCPM 2:现在最值得用的开源中文语音模型之一

VoxCPM 是 OpenBMB 开源的语音生成模型。VoxCPM 2 在 2026 年 4 月 6 日发布 2.0.0。截至本文,最新的 Python 包是 2.0.3 ,2026 年 5 月 11 日发布,加了 --device 参数,流式解码也更快了。

项目 内容
规模 约 20 亿参数,基于 MiniCPM-4,训练语音超过 200 万小时
输出 48 kHz,录音棚级采样率
语言 30 种语言,不用指定语言标签
中文方言 9 种:四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话、闽南话
许可 代码和权重都是 Apache-2.0,官方写明可免费商用
硬件 官方参考显存约 8 GB;RTX 4090 上实时率约 0.30,即生成 10 秒音频约 3 秒
Mac 支持 Apple Silicon(MPS);社区的 MLX 移植更省内存,8-bit 权重约 3.2 GB

来源:GitHub、模型卡、FAQ。

它最让我们惊喜的是三种生成模式,也是后面所有操作的基础:

模式 需要什么 效果 什么时候用
声音设计 一句声音描述,不要录音 每次是不同的人 找声线
可控克隆(Controllable Cloning) 参考录音,不用逐字稿;可以加括号指令,例如"(语速稍慢,语气温和)" 保留音色,能调语气 需要情绪变化
高保真克隆(官方 README 叫 Ultimate Cloning,文档叫 Hi-Fi Cloning) 参考录音 + 一字不差的逐字稿 音色最像,连说话习惯都延续 长期主力旁白

新手注意 :高保真克隆模式下,括号里的语气指令会被忽略。想要"同一个声音,换种语气",应该用可控克隆,而不是在高保真模式里拼命写指令。

在 Seed-TTS-eval 上的成绩如下(这是 OpenBMB 自己发布的表,未经第三方核验):

模型 中文 CER(越低越好) 中文相似度 SIM(越高越好)
VoxCPM 2 0.97 79.5
IndexTTS2 1.03 76.5
Qwen3-TTS 1.22 77.0
CosyVoice2 1.38 75.7
F5-TTS 1.53 76.0

来源:VoxCPM README · Performance。

3. VoiceStudio

VoiceStudio 是开源的本地配音桌面应用,自称"开源、全本地的 ElevenLabs 替代品",有中文 README。

它的定位是工作台加引擎管理器,自己不绑定某一个模型:

  • 多引擎:默认引擎是 OmniVoice,还可以装 VoxCPM 2、CosyVoice 3、IndexTTS、MOSS-TTS、GPT-SoVITS、MLX-Audio 等。
  • 声音库:参考录音、逐字稿、种子都存成"声音档案",下次直接选。
  • 配套工具 :语音转写(Whisper)、人声分离、视频配音、有声书和长文(支持 [pause 0.5s] 停顿标记)、发音词典。
  • 本地 API :默认端口 3900 ,有 OpenAI 兼容的 /v1/audio/speech 和 /v1/audio/transcriptions,还有 MCP 接口,可以接 Claude Code、Codex 这类 Agent。

最新版本是 0.5.7,2026 年 10 月 26 日发布,有几处要注意:

  • 许可确认 :没有明确商用许可的模型,包括默认引擎 OmniVoice,要先在应用里接受一次许可,否则 API 和 MCP 调用会失败。
  • 新安装包和界面:新增纯 CPU 版本,界面重新设计。
  • 付费功能:远程和 GPU 共享这类功能移到了付费的 Pro 版。

4. 为什么是 VoiceStudio + VoxCPM 2的组合?

一个很多人没注意到的事实:VoiceStudio 应用本身是 AGPL-3.0,但它的默认引擎 OmniVoice 的模型权重是 CC-BY-NC(非商业) (模型卡)。

如果你做的是带货、接广告、知识付费这类商业内容,默认引擎在许可上就不合适。VoxCPM 2 的权重是 Apache-2.0,商用没有这个顾虑,中文和方言能力也强。

所以分工是:

  • VoiceStudio 负责好用:界面、声音库、转写、配音工作台、本地 API。
  • VoxCPM 2 负责好听和能商用。

提醒:模型许可允许商用,不等于你可以克隆任何人的声音。声音授权是另一回事,见文末"合规"部分。


第二部分:我们的心路历程

在讲操作之前,先讲我们怎么一步步走到现在的方案。

阶段一:工具大杂烩

最早每个项目各用各的:Edge TTS、Piper、Kokoro、Qwen3-TTS 的两个版本、Whisper.cpp、单独装的 MLX Audio......每个都能用,没有一个好用:

  • 有的中文生硬;
  • 有的只有几个预设音色;
  • 有的能克隆,但需要单独的环境。

2026 年 10 月初我们下决心清理,卸掉这些独立工具和重复模型,腾出了约 13 GB 磁盘,配音统一收口到 VoiceStudio。

教训:先选一个统一入口。 工具越多,环境越乱,你会把时间花在这次用的是哪个上。

阶段二:情绪调不出来

收口后,我们先用 VoiceStudio 加 Qwen3-TTS 的克隆模式给绘本配音:妈妈和孩子两个角色,各自先用"声音设计"生成参考,再克隆。

问题来了:妈妈的台词需要温柔、着急、开心几种情绪,可不管指令写得多细,出来都一个调。

我们翻了源码才发现:当时 VoiceStudio 里跑的 Qwen3-TTS 克隆分支是 mlx-audio 的实现,它接收了情绪指令,却根本没有把指令传给模型。

教训:情绪不出来时,先确认你用的模式和引擎到底支不支持情绪指令。别急着改提示词。 这也是我们后来转向 VoxCPM 2 的原因之一:它的"可控克隆"明确支持用指令调语气。

阶段三:VoxCPM 2 上手,音色惊艳

我们在 Mac 上用 mlx-audio 跑 VoxCPM 2 的 8-bit 版本。我们没有把它装进 VoiceStudio,而是单独建了一个 Python 环境直接跑。第一次克隆出来的男声,音色质感比之前所有方案都好。我们当时偷懒,把整篇稿子一次性生成,47 秒一口气读完。

成片听下来,背景里一直有若有若无的嗡声。我们一开始以为是模型的问题,还试着调参数。

阶段四:调优

做了频谱分析才找到根因:我们那段 7 秒的参考录音,是从一段带背景音乐的旁白里直接截的。

  • 配乐残留:频谱上有 106、593、891 Hz 三条持续的"线"。
  • 停顿不安静:停顿处的音量只比说话低 17.8 dB,正常的干声应该低 25 dB 以上。
  • 轻微削波:录音有轻微的破音。

模型把配乐当成了"这个人声音的一部分",一起克隆了进来,而且越长的段落放得越大。

修法:回到原始录音,挑一段 14.9 秒、在句末结束的完整段落,先用 HTDemucs 做人声分离,再用 DeepFilterNet3 降噪。结果持续线谱消失,停顿比语音低 33.5 dB,语音识别的字错误率(CER)0.035。

上图左边是清理前,能看到几条贯穿全程的横线,那就是配乐,停顿处也一直"不安静"。右边是清理后,横线没了,停顿深深地沉下去。

另一款女声也经历了同样的清理。重新生成后,我们的反馈原话是:"音色接近,杂音也消失了 ",全篇试听后"全篇也通过,作为主力女声"。

参考音频的质量,决定了克隆的上限。

阶段五:长稿的玄学

接下来做的片子越来越长,从一两分钟到十一分钟。新问题一个接一个,后面会逐条列,这里先挑几个印象深的:

  • 整篇一次生成:越读越快,偶尔出现嗡声,甚至停不下来。官方也承认长文本不稳定,建议分段。
  • 句尾被吃字:有一句"多试几遍",成片里"遍"没了。原因是我们裁句尾静音的算法,把"遍"字开口前那几十毫秒的闭塞(发 b 音前嘴唇闭住的那一下)当成了句子结束。
  • 英文单词听不懂:bug、Thorsten 这类词,同一句话换了 8 个种子,一次都没读对。
  • 机器质检误报:男声念一长串列举时,音高会在 120 Hz 附近稳住好几秒,被我们的嗡声检测当成了"杂音"。同一句话 8 个种子,7 个被误判。

每个问题我们都把规则写进了流程里,后面几节就是这些规则。

阶段六:克隆自己的声音

我们也试过克隆自己。从一段会议录音里截出本人主讲的 9 秒,降噪后门禁通过,识别字错误率为 0,技术上无可挑剔。

但放进正式的知识解说片,自己听着就是不对味:日常说话的声音,不等于适合做旁白的声音。最后我们的分工是:

  • 个人口播、自媒体:用自己的声音。
  • 正式解说片:用一款更有"播音感"的男声。

教训:技术合格不等于适合。 选声音时,用你要发布的那类内容试听,别只用一句"你好,欢迎来到我的频道"。

阶段七:多音字

最近一次给一段家庭羽毛球视频配解说,21 句旁白里,ASR 质检揪出了这些读错的:

应读 实际读成(ASR 听写)
夜场 夜长
小将(jiàng) 小江(jiāng)
一气呵成 仪器合成
一拍 一排
十几拍 实际拍

我们的处理:

  • 换种子重生成;
  • 实在不行就改写说法,比如把"夜场羽毛球"开场改成别的说法;
  • 最后只剩"十几拍"一句:ASR 仍听写成"实际拍"。两者只差声调,ASR 判声调本身就不可靠,所以留给人耳确认,其余全部过关。

后面"多音字"一节,有我们专门做的小实验。


第三部分:实战路线 A ------ VoiceStudio + VoxCPM 2(零代码)

适合绝大多数人:不想碰命令行,想要一个"打开就能用"的配音软件。

第 0 步:先确认你的电脑够不够

你的电脑 能不能跑 建议
Apple Silicon Mac(M1 及以后),16 GB 内存起 可以 内存越大越从容;我们的 M3 Max 36 GB 很宽裕
Intel Mac VoxCPM 2 引擎不支持一键安装 用在线体验,或换设备
Windows / Linux + NVIDIA 显卡(8 GB 显存起) 可以,速度最快 官方首推 CUDA
只有 CPU 能跑,但很慢 0.5.7 起提供纯 CPU 版,适合偶尔用

磁盘:VoxCPM 2 引擎有自己独立的 Python 环境。0.5.6 安装时会先检查是否有约 10 GB 可用空间,首次生成还会下载约 5 GB 模型。建议至少留出 20 GB 空间。

第 1 步:安装 VoiceStudio

macOS 或 Linux,打开"终端",粘贴:

bash 复制代码
curl -fsSL https://voicestudio.sh/install | sh

Windows,打开 PowerShell:

powershell 复制代码
irm https://voicestudio.sh/install.ps1 | iex

也可以去 Releases 页面下载安装包:Mac 用 DMG,Windows 用 .exe。Windows 安装包没有签名,SmartScreen 会弹警告,确认来源是官方 GitHub 再继续。

不会用终端?VoiceStudio 官方提供了"让 Agent 帮你装"的提示词。把下面这段贴给 Claude Code 或 Codex:

text 复制代码
Install the VoiceStudio Electron app on this device and verify it works, following
https://github.com/debpalash/VoiceStudio/blob/main/docs/install/agent.md

第 2 步:国内网络先配镜像

首次使用要从 Hugging Face 下载模型,国内网络常常很慢或连不上。VoiceStudio 的设置里有 Hugging Face 镜像 选项,可以切到 hf-mirror.com,它自带连通性测试。先把这个配好,再装引擎,能省掉一大半"下载卡住"的问题。

第 3 步:安装 VoxCPM 2 引擎

按官方文档:模型目录(Model Catalogue)→ VoxCPM2 → 安装(Install)。它会装进一个独立的 Python 环境,不影响其他引擎。

  • 安装好后,第一次生成时才会下载模型权重,第一次会慢一些,耐心等。
  • 0.5.7 起,默认引擎 OmniVoice 等非商用模型要先接受许可才能调用。VoxCPM 2 是 Apache-2.0,不受这个限制。

Mac 用户注意 :VoiceStudio 里还有一个"MLX-Audio"引擎,也列出了 VoxCPM 2。但按 VoiceStudio 自己的文档,经这个引擎调用时参考音频会被忽略,输出也降到 24 kHz 。要做克隆,请选上面那个专门的 VoxCPM2 引擎。来源:VoiceStudio mlx-audio 文档。

第 4 步:准备参考音频(最重要,单独成节)

请先跳到下面的"第五部分:参考音频------决定成败的一小时"把参考录音准备好,再回来继续。

第 5 步:建一个"声音档案"

在"声音克隆"页面添加参考录音,填写逐字稿,也就是参考录音里说的每一个字,一字不差,标点照录。保存成一个声音档案,起个好记的名字,比如"栏目男声-v1"。

VoiceStudio 处理 VoxCPM 2 参考音频的规则,弄清楚能少踩坑:

  • 它会自动裁掉参考首尾的静音,然后最多保留前 30 秒;
  • 如果因为超过 30 秒被截断,它会丢掉逐字稿,退回普通克隆,因为截断后的音频和逐字稿对不上了。

所以:参考音频控制在 8--15 秒,不要超过 30 秒。

来源:VoiceStudio VoxCPM2 引擎文档,以及 0.5.6 源码。

第 6 步:三种模式在 VoiceStudio 里怎么"触发"

VoiceStudio 不让你直接选模式,而是根据你填了什么自动决定(我们读了 0.5.6 的源码确认):

你填了什么 实际用的模式
选了声音档案(有参考 + 逐字稿),风格(Style)留空 高保真克隆:音色最像
选了声音档案,填了风格,比如"语速稍慢,语气温和" 可控克隆:保留音色、调语气,逐字稿不用
不选声音档案,只写声音描述 声音设计:每次是新的人

参数建议,都是官方默认,先别动:

  • 引导强度(guidance)2.0:调低更自然但可能跑稿,调高更贴稿但难句容易出杂音。
  • 步数(steps)10:官方推荐 4--30,越大细节越好、越慢。我们的主力男声用 16。

第 7 步:生成、试听、对稿

生成后,用 VoiceStudio 自带的转写功能把音频转回文字,和稿子对一遍:

  • 有没有漏字、多字?
  • 结尾的最后一个字在不在?
  • 人名、数字、多音字对不对?

不对就换个种子重新生成这一段。注意,转写只能发现明显问题,最终一定要用耳朵听一遍。

第 8 步:长稿不要一次贴整篇

不管哪个模型,长文本都容易越读越快、出杂音。正确做法是分段生成,规则见第六部分。

VoiceStudio 的"有声书 / 长文"功能支持 [pause 0.5s] 这样的停顿标记,还有发音词典,可以统一纠正某个词的读法,见第七部分。

第 9 步(进阶):用本地 API 批量生成

VoiceStudio 开着时,本机 3900 端口提供 OpenAI 兼容接口。参数名以 0.5.6 的接口说明为准:

bash 复制代码
# 列出你的声音档案,拿到 voice 的 ID
curl -s http://127.0.0.1:3900/v1/audio/voices

# 用 VoxCPM 2 引擎、指定声音档案生成一段旁白
curl -s http://127.0.0.1:3900/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "voxcpm2",
    "voice": "<你的声音档案ID>",
    "input": "今天我们用十分钟,讲清楚一个问题。",
    "response_format": "wav",
    "seed": 2026,
    "num_step": 10,
    "guidance_scale": 2.0
  }' \
  -o part-001.wav
  • seed 很重要:同一个种子、同样的参数,结果可以复现。哪段不满意就只换那段的种子。
  • 格式 :response_format 默认是 mp3,做视频建议用 wav。
  • 接入 Agent :VoiceStudio 也提供 MCP(http://127.0.0.1:3900/mcp),可以让 Claude Code、Codex 直接调用它配音。

第四部分:实战路线 B ------ Mac 上直接跑 VoxCPM 2

适合想批量生产、想把配音接进自己流程的人。我们的手绘视频项目就是这么做的:每段旁白自动生成、自动质检、不过关自动换种子重来,最后拼成完整的旁白母带。

1. 安装

bash 复制代码
python3 -m venv ~/voxcpm2-mlx
source ~/voxcpm2-mlx/bin/activate
pip install -U mlx-audio soundfile mlx-whisper

# 国内网络可先设镜像
export HF_ENDPOINT=https://hf-mirror.com

mlx-audio(MIT 许可)从 0.4.4 开始支持 VoxCPM 2,截至本文最新是 0.6.3。我们的生产环境是 0.5.8,下面的代码在 0.5.8 上验证过;新版参数名如有变化,以官方说明为准。

权重有三档:

权重 大小 说明
bf16 约 5.0 GB
8-bit 约 3.2 GB 我们用的 ;mlx-community/VoxCPM2-8bit
4-bit 约 2.3 GB

2. 高保真克隆一段旁白

python 复制代码
import mlx.core as mx
import numpy as np
import soundfile as sf
from mlx_audio.tts.utils import load

model = load("mlx-community/VoxCPM2-8bit")          # 首次会下载约 3.2 GB
ref = "reference.wav"                                # 洗干净的参考,8--15 秒
ref_text = open("reference.txt", encoding="utf-8").read().strip()   # 一字不差的逐字稿

text = "今天我们用十分钟,把这个问题从头讲清楚。"
mx.random.seed(2026)                                 # 固定种子,结果可复现
chunks = list(model.generate(
    text=text,
    ref_audio=ref, prompt_audio=ref, prompt_text=ref_text,   # 三项都给 = 高保真克隆
    inference_timesteps=10, cfg_value=2.0,
    max_tokens=len(text) * 6 + 10,                   # 官方"文本长度×6+10"的上限,防止停不下来
))
audio = np.concatenate([np.asarray(c.audio) for c in chunks])
sf.write("part-001.wav", audio, chunks[0].sample_rate)   # 48 kHz

另外两种模式的写法:

  • 可控克隆 :只给 ref_audio,再加 instruct="语速稍慢,语气温和"。
  • 声音设计 :不给参考,只给 instruct="中年男声,低沉有磁性,沉稳,适合知识解说"。

3. 生成完立刻"对稿"

python 复制代码
import mlx_whisper
r = mlx_whisper.transcribe("part-001.wav",
                           path_or_hf_repo="mlx-community/whisper-large-v3-turbo",
                           language="zh")
print(r["text"])

把识别结果和原稿逐字比对,算字错误率:

  • 超过 0.15 ,或结尾少了字:这一段作废,换种子重来。
  • 自动重试最多 3 次,还不行就改写这句。

4. 实测速度和内存

条件:Apple M3 Max、36 GB 内存,VoxCPM2-8bit,步数 10。

模式 生成 7 秒左右的音频耗时 实时率 内存峰值
高保真克隆 7.0 秒(音频 6.9 秒) ≈1.0 ≈6.3 GB
可控克隆 11.3 秒(音频 7.2 秒) ≈1.6 ≈6.2 GB

首次加载模型约 19 秒。

换算一下:我们的主力男声语速约 6.6 字/秒 ,一部 4581 字的稿子,成片旁白约 708 秒(11 分 48 秒)。

别开两个进程并行:我们试过两个生成进程同时跑,总耗时反而更长,还有一次因为内存吃紧被系统杀掉。单进程按顺序跑最稳。


第五部分:参考音频

这是全文最值钱的一节。克隆的质量 80% 由参考决定。

1. 参考音频的标准

要求 我们的标准 为什么
时长 8--15 秒(官方说 5--30 秒都行) 太短抓不准音色;超过 30 秒在 VoiceStudio 里会被截断
内容 一个人、连续、自然地说话 有人插话、有笑声,都会被学进去
结尾 在句末结束,后面留 0.5--1 秒静音 句中截断,模型会延续那半句的状态,开头容易冒杂音
背景 没有音乐、没有空调和风扇声 底噪和配乐会被克隆,长段里还会放大
音量 峰值在 −3 dBFS 左右,不能破音 削波会变成"沙沙"的质感
逐字稿 一字不差,标点照录 不一致是"开头有杂音、漏读、读出参考里残字"的头号原因

2. 声音从哪来?三个合规来源

  1. 自己录:手机放在安静的衣柜边,离嘴 20 厘米,用平时讲解的语气读一段 15 秒的话。
  2. 获得授权的他人录音:一定要有明确授权,最好是书面的。
  3. 用"声音设计"造一个 :这是我们最推荐的做法,既不涉及任何真人,又能得到稳定音色:
    • 写声音描述,官方建议的写法是"身份 + 质感 + 场景"三段,例如:"中年男声,低沉浑厚、有磁性,沉稳有力,适合知识与故事解说"。
    • 同一个描述生成 4 次,换不同种子。
    • 挑一条最干净、最像你想要的,作为参考。
    • 以后全部用克隆模式,音色就固定下来了。

声音描述里只写声音特征,不要写"像某某主播""某平台某音色",也不要用别家 TTS 的输出当参考。

3. 参考脏了怎么洗

如果你的录音带了配乐或底噪:

图形界面:VoiceStudio 自带人声分离和音频清理功能,把录音先过一遍。

命令行:我们的做法是两步,先分离人声,再降噪。

bash 复制代码
# 1) 截出 8--15 秒、句末结束的一段(单声道、48 kHz)
ffmpeg -ss 31.6 -to 46.0 -i source.wav -ac 1 -ar 48000 cut.wav

# 2) 人声分离(Demucs,MIT 许可),只保留人声
pip install demucs
demucs --two-stems=vocals cut.wav        # 结果在 separated/htdemucs/cut/vocals.wav

# 3) 降噪(DeepFilterNet)
pip install deepfilternet
deepFilter separated/htdemucs/cut/vocals.wav -o cleaned/

洗完怎么判断干不干净?

  • 最简单 :用 Audacity 之类的软件打开,切到频谱图。如果看到贯穿全程的横线,就是还有配乐或电流声。
  • 再戴耳机听停顿处:停顿应该是"死寂"的,而不是"有一层东西"。
  • 我们的量化门禁 :
    • 停顿要比说话低 25 dB 以上,干净的参考能到 −30 dB 以下;
    • 不能有持续的单频线;
    • 不能削波。

VoxCPM 2 本身也有 denoise 参数,但它只处理参考音频,而且走 16 kHz 管线,官方说会"轻微改变音色"。参考本来就干净的话,保持关闭。


第六部分:长稿生产------分段、停顿、句尾

1. 分段规则

规则 说明
每段 不超过约 100 字 太长会越读越快、出嗡声、停不下来
只在句末切(。!?...) 句中切开,语调会断
太短的句子并入下一段 少于 8 个字的单句声音偏弱;官方训练时最短约 1 秒
每段单独质检、单独重做 只返工出问题的那一段
每段记录文字、种子、参数 以后改稿时,没改的段直接复用

2. 段与段之间留多长停顿

拼接时插入纯静音。下面这组是我们在已验收的成片、以及真人长篇解说上实测的:

衔接位置 停顿(秒)
逗号处拆开的长句 0.20
同一段落内的句子 0.30
段落之间 0.40
换页 / 换章节 0.60(真人解说句末停顿的中位数)

3. 句尾怎么处理

模型说完一句后,偶尔会"多出一点声音",比如一口气、半个杂音。我们的处理:

  1. 从最后一个字的末尾往后找,第一段持续 30 毫秒、低于 −40 dB 的静音,就是句子真正的结尾。
  2. 别从字的开头找:b、t、g 这类声母开口前,嘴唇或舌头会闭住几十毫秒,那段静音不是句尾。我们的"多试几遍"丢了"遍"字,就是这个原因。
  3. 结尾后保留 0.12 秒余音,再用至少 50 毫秒的淡出收尾。
  4. 裁完再识别一次:确认最后一个字还在。

4. 混音

  • 旁白整体响度做到 −15 LUFS 左右(短视频平台常用的范围)。
  • 背景音乐在说话时压低。
  • 整体峰值不超过 −1.5 dBTP。

第七部分:多音字、英文和数字------中文配音的三块硬骨头

1. 多音字:我们做了个小实验

官方给的方法是在文本里写带声调数字的拼音 ,比如 {ni3}{hao3},同时把 normalize 关掉(用法指南)。

社区里还有一个土办法:同音字替换。口播稿里把容易读错的字,换成读音唯一的同音字,字幕仍然用原文。VoiceStudio 的发音词典支持按词替换写法,可以把这件事自动化。

我们在自己的环境里各试了 5 个种子。环境是 mlx-audio 0.5.8、8-bit、高保真克隆,结果用 Whisper 判读:

写法 "小将"读对 "一气呵成"读对
原文照写 1/5 4/5
拼音标注 小{jiang4}、一气{he1}成 0/5 3/5
同音字替换 小匠、一气喝成 3/5 5/5

几点说明:

  • 样本很小,只是 5 个种子,结论仅供参考。
  • MLX 移植版不一定完整支持官方的拼音标注。用官方 PyTorch 版本的朋友,可以优先试拼音标注。
  • ASR 判声调本身不可靠。"夜场 / 夜长"这种只差声调的词,Whisper 在两种写法下都给出过两种结果,我们没法据此判断,所以没列进表里。最后一定要人耳确认。

我们现在的实际做法:

  1. 写稿时就避开:容易读错的词,能换说法就换。
  2. 换不掉的,用同音字替换,并在字幕里保留原文。
  3. 逐段 ASR 对稿,读错就换种子,最多 3 次。
  4. 仍不行,改写这句。
  5. 最后人耳通听一遍。

2. 英文词:尽量少用

中文语音模型读中文里夹的英文,经常"中文识别能过,英文耳朵听不懂"。我们实测了主力男声(VoxCPM2-8bit 克隆):

  • bug、Thorsten:同一句话 8 个种子,一次都没听出原词。
  • git、Amp:部分种子能听出。
  • AI、Agent、token:大多能听出。

所以我们定了规矩:

  • 常用词有中文说法就用中文,比如 bug 写成"问题"。
  • 人名用通行的中文译名,画面上可以保留英文。
  • 必须保留的英文,生成后单独切出来,用英文识别再听一遍,听不出就换种子,最多 6 次。

3. 数字、日期、单位:写成汉字

官方的 normalize 参数可以处理数字读法,但 MLX 移植版没有。最稳的办法是在口播稿里直接写成你想读的样子:

  • "2026 年"写成"二零二六年";
  • "1024"先决定读"一零二四"还是"一千零二十四";
  • "2.0.3"写成"二点零点三"。

第八部分:我们踩过的 15 个坑(速查表)

# 坑 症状 根因 解法
1 工具装了一堆 环境乱、磁盘满、不知道这次用的哪个 没有统一入口 收口到 VoiceStudio,其他卸掉(我们腾出约 13 GB)
2 克隆后情绪调不出 指令写得再细也一个调 当时用的克隆分支根本没把指令传给模型 确认引擎和模式支持指令;VoxCPM 2 用可控克隆
3 高保真模式写了语气指令 写了也没反应 高保真克隆会忽略括号指令 要调语气,用可控克隆
4 逐字稿不准 开头有杂音、漏读、冒出参考里的字 参考音频和逐字稿对不上 用 ASR 转写后人工逐字核对,标点照录
5 参考带配乐 成片一直有嗡声 配乐被当成音色的一部分克隆 人声分离 + 降噪 + 频谱检查
6 参考太短、句中截断 音色不稳,开头怪 7 秒且没在句末结束 8--15 秒,句末结束,尾部留静音
7 整篇一次生成 越读越快、嗡声、停不下来 长文本本身不稳定 每段 ≤100 字,只在句末切
8 声音设计每次换人 第二段和第一段不像同一个人 设计模式本就有随机性 设计后挑一条锁成参考,之后全用克隆
9 句尾被吃字 "多试几遍"丢了"遍" 把声母前的闭塞静音当成句尾 从字尾往后找静音,裁完再识别一次
10 机器质检误报 正常男声被判"嗡声" 列举时音高稳定,看起来像一条线 看停顿里线还在不在:嗡声在,音高不在
11 英文读不清 中文识别能过,英文耳朵听不懂 中文模型对英文发音有限 少用英文,用中文说法或译名
12 多音字、声调读错 小将→小江,一气呵成→仪器合成 模型对上下文读音判断不稳 避开、同音字替换、换种子、人耳终审
13 数字乱读 版本号、年份读法奇怪 MLX 版没有数字规范化 稿子里写成汉字
14 并行反而更慢 两个进程比一个还慢,还被系统杀 显存和内存争用 单进程按顺序跑
15 只看许可证"开源"就商用 默认引擎其实不能商用 OmniVoice 权重是 CC-BY-NC 商用选 VoxCPM 2(Apache-2.0),并核对每个模型的许可

还有一条不算坑,算心得:克隆自己的声音,技术上满分,不一定适合正式内容。 选声音要用真实内容试听。


第九部分:最终效果

  • 音色:两款主力声音(一男一女)参考清理后,嗡声、底噪消失。女声重新生成后的试听反馈是"音色接近,杂音也消失了",整篇通过。
  • 稳定:同一个参考加固定种子,结果可复现。11 分钟长片全程是同一个"人"。
  • 质检 :
    • 每段都过"嗡声 / 停顿 / 削波 / 语速"的信号门禁和 ASR 对稿,结尾一个字都不能少;
    • 不过关自动换种子;
    • 最近一部片子 21 句旁白,经过换种子和一处改写,20 句通过机器对稿,剩下 1 句只差声调,留给人耳确认。
  • 速度:M3 Max 上高保真克隆(步数 10)接近实时,生成 1 分钟旁白约 1 分钟。
  • 成本 :除了电脑和电费,没有按字数、按月的费用;稿子和录音不离开本机。
  • 成片:我们用这套流程交付了多部手绘口播视频,比如《用一天,重启你的人生》《错话,该不该翻译?》,最长一部约 11 分钟。

机器质检只能发现明显故障,不能代替听感。每部片子最后一定要完整听一遍。


第十部分:合规------这条比技术更重要

  1. 只克隆本人或获得授权的声音。 VoxCPM 2 官方明确禁止冒充、诈骗和虚假信息。不要克隆明星、主播、平台音色,也不要用别家 TTS 的输出当参考。
  2. 发布时标注 AI 生成。 按《人工智能生成合成内容标识办法》,在平台上发布 AI 合成的语音内容,应当主动声明。各平台一般都有"AI 生成"标签,勾上即可。
  3. 分清三种许可:应用的许可(VoiceStudio 是 AGPL-3.0)、模型的许可(VoxCPM 2 是 Apache-2.0,OmniVoice 是 CC-BY-NC)、声音本身的授权。三者各管各的。
  4. 我们自己的做法:两款"逼真"声音的原始参考只放在本机个人声音库,不随开源包分发。开源包里附带的是 4 款纯靠文字描述设计出来的合成声音,不涉及任何真人。

常见问题

Q:没有好显卡、也没有 Apple Silicon Mac,能用吗?

能用,但慢:VoiceStudio 0.5.7 有纯 CPU 版本。偶尔做几十秒配音,也可以先用 VoxCPM 官方的在线体验页。注意,在线体验时稿子和录音会上传到远端。

Q:参考音频用 MP3 可以吗?

官方支持 WAV、FLAC、MP3。但要洗参考的话,建议转成 WAV 处理,别只改文件后缀。

Q:我想要四川话、粤语怎么办?

VoxCPM 2 支持 9 种中文方言,但正文要写成方言用词 ,用普通话的写法效果会差。例如粤语:(广东话,中年男性)伙計,唔該一個A餐...。

Q:同一个声音,能不能让它开心一点、严肃一点?

用可控克隆:在 VoiceStudio 里填风格,或在代码里加 instruct。高保真克隆不吃指令。

Q:长期用,怎么让音色更稳?

两条:

  • 永远用同一份洗干净的参考,加固定种子;
  • 需要更高一致性,可以用官方的 LoRA 微调。官方说 5--10 分钟的录音就够起步,我们还没用到这一步。

Q:官方说长文本出杂音可以把 cfg 调到 1.5,为什么我调了没效果?

如果你用的是 MLX 移植版,它强制 cfg 不低于 2.0,调低不会生效。我们的解法是分段。


写在最后

回头看,我们花时间最多的地方不是"选哪个模型",而是三件朴素的事:

  1. 把参考音频洗干净;
  2. 把长稿切成短段,一段一段地检查;
  3. 在写稿时就避开多音字、英文和数字的坑。

模型会越来越强,这三件事却一直有用。希望这篇能帮你少走我们走过的弯路。

如果你在实践中遇到新的坑,欢迎留言交流。也欢迎试试我们的开源项目 sweety-handdraw-video,它已经把本文的整条配音流水线内置了。


参考资料(核对日期 2026-10-30)

相关推荐
不老刘5 小时前
Antigravity 的 New Worktree 模式:给 AI 代理一个安全的“平行工位”
人工智能·git·ai编程·antigravity
全栈探索者5 小时前
从素材到成片:ffmpeg 拼接、转码与字幕,一条流水线交付
macos·ffmpeg·aigc·comfyui·视频剪辑
xn71335 小时前
本地 AI 知识库跨设备同步:SQLite FTS5、Embedding、Tombstone 和引用校验
人工智能·sqlite·ai编程
偷偷摸鱼的少年5 小时前
QQ「大肥鱼」AI 机器人
ai编程
FPGA小迷弟5 小时前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
陆映质6 小时前
千种姿势生图节点教程:把 1,439 张人体线稿做成 ComfyUI 节点,一张参考图锁定动作生成完整人物照
openai
莪_幻尘6 小时前
Codex 周活涨 6 倍背后:AI Agent 的四条战线
llm·openai
終不似少年遊*6 小时前
【AI Coding实战方法论】从计划协作到架构护栏,一套能长期复用的工程流程
人工智能·python·团队开发·ai编程·ai coding·skills·上下文管理
产品经理爱开发6 小时前
AxureShow(艾可秀)国内通用的html托管
前端·人工智能·html·ai编程