声音克隆实战:参考音频怎么录、参数怎么调、坑在哪
第一次做音色克隆,我拿手机随手录了十秒,结果出来的声音又闷又飘,说话像含着东西。后来才发现,问题九成出在参考音频上,跟模型关系不大。
一、参考音频怎么录
时长
- 零样本克隆:5 到 10 秒就够,再长收益很小,超过 30 秒反而容易把杂音一起学进去。
- 微调训练:准备 10 到 30 分钟干净语料,切成 5 到 15 秒的小段。
环境
这是最容易被低估的一项。要求就一个:干、近、静。
- 别在空旷的大房间录,混响一进去,克隆出来的声音会带一层"浴室感",后期去不掉。
- 我的土办法是在衣柜前面、或者拿被子围一下录,吸音效果比任何后期处理都好。
- 关掉空调、风扇、电脑风扇,这些低频噪音模型会当成音色的一部分学走。
- 手机自带麦克风其实够用,关键是嘴离麦克风 15 到 20 厘米,太近会爆音和喷麦。
录什么内容
- 念中性情绪的陈述句,别念诗、别念广告语,语气太平和太平翘都不好。
- 避免大笑、哭泣、耳语。情绪越浓,克隆出来的声音越难控制。
- 内容最好覆盖常见声母韵母,“今天天气不错,我们出去走走"就比"好的好的"信息量大。
- 别带背景音乐,哪怕很轻也不行。
格式
- 单声道 WAV,采样率 16k 或 32k,按项目要求来。
- 响度控制在 -16 到 -20 LUFS 之间,太小会显得虚,太大削顶会失真。
- 用 ffmpeg 转一下最省事:
ffmpeg -i input.m4a -ac 1 -ar 32000 -c:a pcm_s16le ref.wav
二、参考文本必须和录音逐字一致
这条是新手翻车第一名,值得单独说。
大部分克隆引擎的工作方式是:拿参考音频做语音识别对齐,算出每个字在音频里的位置和时间长度。你给的参考文本如果对不上,时间戳就全错位了,模型学到的字音对应关系是乱的。
表现通常是:
- 声音发糊,像嘴里含了东西
- 音色不像本人,或者说几句之后就跑调
- 语速忽快忽慢,尾音拖长
所以要做的就一件事:把录音里说的每一个字原样打出来,包括"嗯"“啊"这类语气词,标点也尽量对上。多字少字都不行。
我的流程是:先写一段文本照着念,念完把这段文本直接粘进去,不凭记忆重打。这样出错概率最低。
三、参数怎么调
老实说,多数时候默认值就是最优解。真需要动的是这几个:
- 温度 / temperature:控制随机性。想要稳定复现,调到 0.3 到 0.6;想要情绪起伏和变化,可以到 0.8 以上,但会有吐字不清的风险。
- top_p:一般 0.7 到 0.9,和温度一起调,别两个都拉满。
- 重复惩罚:长句末尾有吞字或重复词的时候,稍微调高一点。
- 语速:多数在 0.9 到 1.1 之间微调,超过 1.2 会明显发飘,低于 0.8 会拖沓。
调参的原则是每次只动一个,改完听同一段文本,不然你不知道是哪个参数起了作用。
四、踩过的坑
- 参考音频带背景音乐。模型会把伴奏当成音色的一部分,克隆出来的声音自带一层伴奏的"尾巴”,无解,只能重录。
- 切分时切到呼吸声。段落开头有吸气声,生成出来的每句前面都会带一下。切分时在句子前后留 0.2 到 0.3 秒静音,别贴着波形切。
- 数字和英文混读。“第 3 章"“iPhone 15"经常被读错。写文本时直接改成"第三章"“苹果手机十五”。
- 情绪不一致。参考音频念得很活泼,拿去配旁白,出来的调子会很奇怪。录参考音频时,就想清楚你要用它配什么,情绪对齐。
- 多段音频质量参差不齐。想提升相似度,可以用 3 到 5 段不同的参考音频取平均,但如果其中有一段质量差,会把整体拉下去。宁可只用一段好的。
- 以为相似度能到百分之百。实际零样本大概七八成,微调之后九成左右。别拿原声和克隆声反复对比,越比越难受,听众其实听不出来。
五、怎么验收
我的做法是固定一段 100 字左右的测试文本,里面有平翘舌、数字、儿化音、长句短句,每次调完都用它测。听三遍:一遍听音色像不像,一遍听有没有错读,一遍听句尾有没有崩。这段测试文本留着,以后换模型、换参数都能拿来横向比较。