VoxCPM2-NPU 续写模式与终极克隆模式详解:提示音频、文本与参考人声如何无缝衔接
- 人工智能
- 大模型
- 语音
- 音频
- Ascend
【免费下载链接】VoxCPM2-NPU
VoxCPM2-NPU 是 OpenBMB 开源的 VoxCPM2 免分词扩散自回归 TTS 模型在昇腾 NPU 上的推理适配项目。本文详解 VoxCPM2 的续写模式与终极克隆模式:如何仅用"提示音频 + 提示文本"让语音自然续写,以及如何叠加"参考人声"实现最高相似度的声音克隆,并给出完整命令与实测数据,适合新手快速上手。
一、项目速览:一条命令跑出 48 kHz 语音
VoxCPM2 是约 2.38B 参数的多语种 TTS 模型,支持 30 种语言,输出 48 kHz 高保真语音。本项目已在单卡 Ascend 910B 上跑通端到端推理,核心就是一条 inference.py:
推理链路为:文本/提示音频 → TSLM 自回归预测声学 token → LocDiT 扩散采样 → AudioVAE 解码为 48 kHz 波形。克隆与续写能力都建立在这条流水线之上。
二、先跑环境:确认 NPU 就绪
运行任何合成命令前,先用npu-smi info确认逻辑卡Health=OK且显存空闲(见 README.md):
三、三种音色参考模式对比
| 模式 | 关键参数 | 模型学到的东西 | 典型场景 |
|---|---|---|---|
| 🎙️ 参考人声克隆 | --ref-wav | 参考说话人的音色 | 用某个人的声音朗读任意文本 |
| 📡 续写模式 | --prompt-wav+--prompt-text | 提示音频的上下文与韵律 | 接续一段已有音频,语气自然衔接 |
| 🔥 终极克隆 | 三者全给 | 参考音色 + 提示上下文 | 相似度最高、衔接最自然的克隆 |
在源码中,这三类输入分别映射为generate()的reference_wav_path、prompt_wav_path与prompt_text三个参数,参数组装逻辑见 inference.py。
四、续写模式详解:提示音频与提示文本如何衔接
4.1 需要准备什么
- 提示音频(
--prompt-wav):一段已有语音,作为"上文"; - 提示文本(
--prompt-text):提示音频的逐字转写,用于对齐语义; - 待合成文本(
--text):需要续写出来的新内容。
⚠️ 注意:
--prompt-wav与--prompt-text必须成对出现才会生效,只给音频不给文本时提示音频会被忽略(见 inference.py)。
4.2 续写模式命令示例
./venv/bin/python inference.py \ --text "现在开始续写这一段音频内容。" \ --prompt-wav /path/to/prompt.wav \ --prompt-text "提示音频对应的转写文本"4.3 无缝衔接的原理
提示音频先经 AudioVAE 编码为声学特征,与提示文本一起构成生成上下文;模型从这段上下文的结尾处继续自回归生成新文本的声学 token。因此续写出的语音在音色、语速、语调上会自然延续提示音频,而不是"另起炉灶"。这正是 TTS 续写模式区别于普通克隆的关键:它继承的不只是音色,还有整段上下文。
五、终极克隆模式详解:参考人声 + 续写双管齐下
终极克隆模式把前两种能力叠加:
--ref-wav(参考人声):提供说话人的音色先验,决定"像谁";--prompt-wav+--prompt-text(提示音频 + 提示文本):提供即时上下文,决定"从哪个状态接着说"。
./venv/bin/python inference.py \ --text "这是终极克隆模式的测试。" \ --ref-wav /path/to/speaker.wav \ --prompt-wav /path/to/prompt.wav \ --prompt-text "提示音频对应的转写文本"类比:参考人声相当于"照镜子学腔调",提示音频相当于"接上同一句话"。两者结合后,模型既锁定目标音色,又保持上下文连贯,克隆效果最接近真人对话。
六、参考音频准备要点 📌
- 格式要求:参考人声与提示音频都应为16 kHz 单声道
.wav(见 README.md); - 转写要对得上:
--prompt-text必须是提示音频真实内容的转写,否则语义错位会影响衔接; - 参考人声要干净:单人、少噪音的录音克隆相似度更高;
- 项目内置套件会把 case01 的合成输出重采样为 16 kHz 作为参考人声 output/suite/ref_16k.wav,可直接参考其生成方式(inference.py)。
七、实测结果:克隆 / 续写 / 终极克隆全部通过 ✅
内置测试套件中,三个模式各有一组用例,在单卡 Ascend 910B、bf16 精度下全部通过,数据取自 output/suite/suite.json:
| 用例 | 模式 | 输出时长 | 推理耗时 | 峰值显存 | 状态 |
|---|---|---|---|---|---|
| case24_clone | 参考人声克隆 | 3.36 s | 3.09 s | 6329 MB | ✅ PASS |
| case25_continue | 续写模式 | 3.68 s | 3.35 s | 6329 MB | ✅ PASS |
| case26_ultimate | 终极克隆(参考+续写) | 2.08 s | 1.85 s | 6329 MB | ✅ PASS |
可见加入参考音频后推理耗时与纯文本用例基本持平(2~6 s 量级),显存占用稳定在约 6.3 GB,单卡 64 GB HBM 绰绰有余。
八、常见问题
Q1:续写模式只给--prompt-wav可以吗?不建议。只有--prompt-wav而没有--prompt-text时,提示音频不会被使用,等价于普通文本合成。
Q2:终极克隆的三个参数可以随意组合吗?--ref-wav可单独使用(纯克隆);--prompt-wav必须搭配--prompt-text;三者同时给出即为终极克隆模式。
Q3:输出的采样率是多少?固定 48 kHz。AudioVAE V2 会将 16 kHz 输入超分到 48 kHz 输出,所以参考音频用 16 kHz 即可,输出仍为高清语音。
Q4:如何复现同一次结果?加--seed固定随机种子后,同输入可复现(见 README.md)。
九、文件资料索引
- 推理脚本(含全部参数定义与 NPU 补丁):inference.py
- 克隆 / 续写命令官方示例:README.md
- 30 用例测试结果与指标:output/suite/suite.json
- 套件用例定义(含 case24/25/26):inference.py
- 依赖清单(国内镜像安装说明):requirements.txt
💡 想快速体验?先跑通
./venv/bin/python inference.py --help查看参数,再用本文 4.2 节命令试一次续写,即可感受提示音频"无缝衔接"的效果。
- 人工智能
- 大模型
- 语音
- 音频
- Ascend
【免费下载链接】VoxCPM2-NPU
相关推荐
如何用VoxCPM2-NPU三步克隆他人声音:基于16kHz参考人声的语音克隆详解
如何用VoxCPM2 NPU三步克隆他人声音:基于16kHz参考人声的语音克隆详解 VoxCPM2 NPU 是 OpenBMB 开源 VoxCPM2 语音合成模
人工智能大模型语音音频AscendVoxCPM2-NPU命令行参数全清单:从文本转语音、声音克隆到流式合成的19个推理参数详解
VoxCPM2 NPU命令行参数全清单:从文本转语音、声音克隆到流式合成的19个推理参数详解 VoxCPM2 NPU 是 OpenBMB VoxCPM2(免分词
人工智能大模型语音音频Ascend如何用TADA做零样本声音克隆?参考音频选择、提示词技巧与Prompt缓存实战指南
如何用TADA做零样本声音克隆?参考音频选择、提示词技巧与Prompt缓存实战指南 TADA 是 Hume AI 开源的语音语言模型(Speech Langua
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考