用几秒参考音频做语音编辑与零样本TTS:VoiceCraft上手
【免费下载链接】VoiceCraftZero-Shot Speech Editing and Text-to-Speech in the Wild项目地址: https://gitcode.com/GitHub_Trending/vo/VoiceCraft
VoiceCraft 是一个零样本语音编辑与文本转语音(TTS)模型。它不需要针对某个特定说话人重新训练,凭几秒钟的参考音频就能克隆或修改一段没听过的声音。训练数据覆盖有声书、网络视频、播客等真实场景,所以它的输出更接近日常听感,而不是录音室风格。
修一句录音里的错别字,为什么这么难
常规录音流程里,录错一个词最简单的办法是改稿后整段重录。当录音很长,或者这个声音无法复刻时,成本就不划算了。
VoiceCraft 的做法是:把完整参考音频交给模型,再给出"原文案"和"修改后文案"两份文本,它只重新生成两份文本不一致的那一小段,其余音频原样保留。
编辑支持删除、插入、替换三种类型。edit_utils.py 逐词比对新旧文案,定位出差异区间,再把对应位置的音频 token 标成"待生成"。
三种跑起来的方式:Colab、Docker、本地安装
零经验的情况下,最轻量的方式是 Google Colab:README 里提供了语音编辑和 TTS 两个 notebook,逐格运行即可。
Docker 方式适合有本地 GPU 的机器。先克隆仓库(git clone https://gitcode.com/GitHub_Trending/vo/VoiceCraft),然后在仓库目录下构建镜像并启动容器:
docker build --tag "voicecraft" . ./start-jupyter.sh # Windows 用 start-jupyter.bat启动后在浏览器打开 inference_tts.ipynb,逐格跑通第一次合成。
本地安装需要按 environment.yml 装齐依赖:Python 3.9、PyTorch 2.0.1(对应 CUDA 11.7)、ffmpeg、espeak-ng、phonemizer,以及做强制对齐的 Montreal Forced Aligner。条目比较多,README 里有完整命令。
如何跑出第一次零样本语音合成
环境就绪后可以直接跑独立脚本:
python3 tts_demo.py不带任何参数时,它会用 demo/ 里的示例音频和脚本内置的英文句子作为提示音与目标文本,用那个声音合成新句子。-m可选 giga330M 到 giga830M(含 TTS Enhanced 版),-oa指定参考音频路径,-co指定截取前几秒做提示,默认 3.6 秒。
想要图形界面,运行python gradio_app.py启动 gradio_app.py,在 http://127.0.0.1:7860 使用。流程是:选模型、加载、转写(Whisper 自动出文本)、改文案、运行。长文本用 Long TTS 模式逐句合成;Smart Transcript 功能则让你只填想生成的那部分文本。
Token 填充:在音频上"填空"
VoiceCraft 的核心机制叫 token infilling,本质是一道填空题。
输入先经过两个 tokenizer(见 data/tokenizer.py):文本被 phonemizer 转成音素序列;音频被 Encodec 编解码器压成离散 token——4 个码本、每个码本 2048 个 token,16kHz 音频每秒约 50 个 token。
然后,目标区间的音频 token 全部换成 mask 占位,模型以"保留的音频 token + 完整目标音素序列"为上下文,自回归地把被遮的位置逐个补出来。在 models/voicecraft.py 中,每个时间步按 delayed pattern 依次输出 4 个码本的 token,保证同一帧内各码本对齐。音色信息全在参考音频的 token 里,模型只需顺着上下文"填空",所以编辑段和原声在音色、语速上能衔接自然。
采样参数与 16 秒上限
两个参数对结果影响最大。官方 2025 年 3 月把推理默认采样从 top-p 改为 top-k=40,编辑和 TTS 效果都有明显提升;如果生成结果怪异,先检查-k 40。
开启 kv cache 可以把生成加速 4~8 倍,见 inference_speech_editing_scale.py 里的--kvcache说明。
注意长度:TTS Enhanced 模型只用了不超过 16 秒的语料训练,提示音加生成长度不要超过 16 秒;更长的文本交给 Long TTS 模式逐句处理。
许可方面,代码为 CC BY-NC-SA 4.0,模型权重为 Coqui Public Model License 1.0.0,均为非商用;README 也明确提示,未经本人同意不得生成或编辑他人语音。
【免费下载链接】VoiceCraftZero-Shot Speech Editing and Text-to-Speech in the Wild项目地址: https://gitcode.com/GitHub_Trending/vo/VoiceCraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考