GitHub 3.6K星!语音克隆杀疯了,零样本复制任何声音,23种语言随意切换

作者:红鱼AI 发布时间: 2026-01-07 阅读量:6 评论数:0

老规矩,先上项目链接:https://github.com/resemble-ai/chatterbox

最近AI界又卷起来了,这次是语音克隆赛道。Resemble AI开源了一个叫Chatterbox的项目,直接把语音克隆的门槛降到了地板上。三个模型,23种语言,零样本克隆,关键是——完全免费,还能本地跑。

咱今天就来扒一扒这个项目,看看它到底有多香。

先说结论:这东西能干嘛?

简单来说,Chatterbox就是一个文本转语音(TTS)和语音克隆工具包。你给它一段文字,它能生成语音;你给它一段参考音频,它能用任何人的声音念这段文字。而且不是那种机械的电子音,是那种听起来跟真人差不多的自然语音。

更绝的是,它还有语音转换功能。你录一段自己的声音,然后指定一个目标声音(比如某个明星),它就能把你的声音转换成那个明星的音色,但说的还是你原本的话。

三个模型怎么选?

项目里一共有三个模型版本,咱们逐个说。

Chatterbox-Turbo:速度王

350M参数的小钢炮,主打一个快。专门为低延迟语音助手设计的,延迟可以压到200ms以内。这个模型还支持副语言标签,什么意思呢?就是你在文本里加个 [laugh]、[chuckle]、[cough],生成的语音里真的会有笑声、轻笑、咳嗽的声音。这细节,绝了。

适合场景:实时语音助手、需要快速生成的应用、对延迟敏感的项目。

Chatterbox-Multilingual:语言通

500M参数的大哥,支持23种语言。中文、英语、法语、德语、日语、韩语……你想得到的它基本都有。而且它是零样本语音克隆,随便给个参考音频就能克隆那个人的声音。

适合场景:多语言应用、国际化项目、需要克隆多种语言声音的需求。

Chatterbox:创意大师

同样是500M参数,但这个版本支持更多高级参数调节。比如CFG(Classifier-Free Guidance)权重、夸张度调节这些。虽然功能多,但用起来稍微复杂点,适合想要精细控制生成效果的朋友。

适合场景:创意配音、有声书制作、需要精细调整语音风格的项目。

怎么安装?两步搞定

首先你得有个Python环境,Python 3.10以上就行。

第一种方法,直接用pip:

pip install chatterbox-tts

第二种方法,从源码安装:

git clone https://github.com/resemble-ai/chatterbox.git
cd chatterbox
pip install -e .

建议用第二种,虽然麻烦点,但你可以修改代码,而且所有依赖版本都锁定了,不容易出问题。

注意一下,项目在Debian 11、Python 3.11环境下测试的,用其他环境可能会有兼容性问题。

基础用法:从零到生成

咱们先看最基础的文本转语音。

英文TTS

import torchaudio as ta
from chatterbox.tts import ChatterboxTTS

model = ChatterboxTTS.from_pretrained(device="cuda")
text = "Ezreal and Jinx teamed up with Ahri, Yasuo, and Teemo to take down the enemy's Nexus in an epic late-game pentakill."
wav = model.generate(text)
ta.save("test-english.wav", wav, model.sr)

就这么简单,加载模型,生成,保存。注意device参数,有GPU就用cuda,Mac用mps,没有就用cpu。

多语言TTS

from chatterbox.mtl_tts import ChatterboxMultilingualTTS

multilingual_model = ChatterboxMultilingualTTS.from_pretrained(device="cuda")

法语:
french_text = "Bonjour, comment ça va? Ceci est le modèle de synthèse vocale multilingue Chatterbox."
wav_french = multilingual_model.generate(french_text, language_id="fr")
ta.save("test-french.wav", wav_french, multilingual_model.sr)

中文:
chinese_text = "你好,今天天气真不错,希望你有一个愉快的周末。"
wav_chinese = multilingual_model.generate(chinese_text, language_id="zh")
ta.save("test-chinese.wav", wav_chinese, multilingual_model.sr)

中文支持怎么样?这么说吧,能听懂,但还是有口音。毕竟是国外团队做的模型,中文训练数据可能没那么多。不过日常用用问题不大。

Turbo版本:加上副语言标签

from chatterbox.tts_turbo import ChatterboxTurboTTS

model = ChatterboxTurboTTS.from_pretrained(device="cuda")
text = "Oh, that's hilarious! [chuckle] Um anyway, we do have a new model in store. It's the SkyNet T-800 series and it's got basically everything."
wav = model.generate(text)
ta.save("test-turbo.wav", wav, model.sr)

试试把[laugh]、[cough]这些标签加到文本里,效果很有趣。

零样本语音克隆:这才是真·黑科技

这是最有趣的部分。你只需要给模型一个10秒左右的参考音频,它就能学习那个人的声音特征,然后用这个声音说任何你想说的话。

基础语音克隆

AUDIO_PROMPT_PATH = "your_10s_ref_clip.wav"
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH)
ta.save("test-clone.wav", wav, model.sr)

就这么简单。参考音频最好是清晰、干净、没有背景噪音的,时长5-15秒最合适。太短学不到特征,太长容易影响生成速度。

多语言语音克隆

注意一个小坑:参考音频的语言要和你要生成的语言一致。不然可能会有口音问题。比如你用中文参考音频去生成法语,那个法语可能会带中文口音。

怎么解决?把cfg_weight参数调为0:

wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH, cfg_weight=0)

语音转换:变成别人的声音

除了TTS,Chatterbox还支持语音转换。就是你说话,但出来的声音是别人的。

from chatterbox.vc import ChatterboxVC

AUDIO_PATH = "your_recording.wav" # 你的录音
TARGET_VOICE_PATH = "target_voice.wav" # 目标声音

model = ChatterboxVC.from_pretrained(device)
wav = model.generate(
audio=AUDIO_PATH,
target_voice_path=TARGET_VOICE_PATH,
)
ta.save("testvc.wav", wav, model.sr)

这个功能有啥用?想象一下,你可以把任何人的声音转换成你喜欢的声音。比如把新闻主播的声音转换成某个动漫角色的声音,是不是很有趣?

高级参数:玩出花样

如果你想更精细地控制生成效果,有几个参数可以调。

Exaggeration:夸张度

默认是0.5,范围大概在0到2之间。

数值越大,语音越有表现力,语速也会加快。

夸张的演讲可以试试:
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH, exaggeration=1.5)

CFG Weight:分类器自由引导权重

默认0.5,范围0到1。

数值越小,生成的语音越贴近参考音频的声音风格;数值越大,生成的语音越接近模型本身的"平均"声音。

想保留更多参考音频的特征,就把cfg_weight调小点:
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH, cfg_weight=0.3)

组合使用

戏剧性的旁白:
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH, exaggeration=0.8, cfg_weight=0.3)

新闻主播风格:
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH, exaggeration=0.3, cfg_weight=0.7)

Web界面:不用写代码也能用

不想写代码?没问题,项目里还有Gradio界面。

gradio_tts_app.py:基础TTS界面
gradio_tts_turbo_app.py:Turbo版本界面
gradio_vc_app.py:语音转换界面
multilingual_app.py:多语言TTS界面

运行方式:

python gradio_tts_app.py

然后浏览器打开它给的地址(一般是 http://127.0.0.1:7860),就能用界面操作了。上传音频、输入文本、点生成,完事。

硬件需求:你跑得动吗?

这是个实际问题,咱们得说实话。

Chatterbox-Turbo(350M参数):至少需要6GB显存(GPU),CPU也行但会慢点。
Chatterbox和Chatterbox-Multilingual(500M参数):至少需要8GB显存。

没有GPU?Mac M1/M2/M3/M4的芯片也能跑,用mps加速:

device = "mps" if torch.backends.mps.is_available() else "cpu"

纯CPU也能跑,但会很慢。而且Python得3.10以上。

安全水印:负责任的AI

这个细节挺有意思的。所有Chatterbox生成的音频都内置了PerTh水印(Perceptual Threshold Watermark),这个水印是人耳听不到的,但能被程序检测到。即使音频被压缩、编辑、修改,水印还能检测到,准确率接近100%。

这个是Resemble AI的PerTh Watermarker技术,算是负责任的AI实践。不用担心被滥用做坏事,因为每个生成的音频都能溯源。

提取水印的代码:

import perth
import librosa

AUDIO_PATH = "YOUR_FILE.wav"
watermarked_audio, sr = librosa.load(AUDIO_PATH, sr=None)
watermarker = perth.PerthImplicitWatermarker()
watermark = watermarker.get_watermark(watermarked_audio, sample_rate=sr)
print(f"Extracted watermark: {watermark}")

返回1.0表示有水印,0.0表示没有。

实际应用场景:能干嘛?

说了这么多,这东西到底有什么用?给几个思路。

1. 智能客服

零样本语音克隆,可以让客服声音保持一致。不同客服说的都是同一个人的声音,用户体验更好。Turbo版本延迟低,还能实时生成,完美匹配智能对话场景。

2. 有声内容制作

小说、新闻、教程,这些文字内容可以用Chatterbox转成语音。夸张度调高,情感调好,生成的语音比机械的TTS自然多了。多语言版本还能轻松做多语言内容。

3. 语音助手/语音交互

Turbo版本就是为这个生的。200ms延迟,几乎感觉不到延迟。加上副语言标签,生成的语音会更有亲和力。比如:

text = "好的,我明白了 [chuckle],让我来帮你查一下。"

4. 内容创作辅助

做视频、做播客,不想自己录音?找一段喜欢的声音当参考,让Chatterbox帮你配音。省时省力,效果还不赖。

5. 语言学习

多语言版本可以生成23种语言的语音。学日语?让Chatterbox用日语念课文,还能调节语速和情感。比单纯看文字有效多了。

6. 无障碍应用

视障人士可以用语音访问更多内容。零样本克隆可以让APP用用户熟悉的声音说话,体验更亲切。

还有一些小技巧

参考音频选择:清晰、无噪音、说话人语速适中的音频效果最好。语速过快或过慢会影响生成质量。

文本预处理:Chatterbox会自动处理一些标点符号,但中文的标点还是要注意一下,用半角逗号、句号比较好。

批量生成:模型加载后可以重复使用,不要每次generate都重新加载模型。批量生成的话,把所有文本准备好,循环调用generate就行。

Mac用户:记得设置device为"mps",能利用苹果芯片的加速。example_for_mac.py里有完整的示例。

写在最后

Chatterbox不是第一个开源的语音克隆项目,但肯定是最好用的之一。三个模型版本满足不同需求,23种语言支持国际化,零样本克隆降低了使用门槛,内置水印保证了安全性。

最关键的是,它真的好用。几行代码就能跑起来,效果还不错。如果你对语音克隆感兴趣,或者想在项目里集成TTS功能,这个项目值得看看。

技术这东西,说白了就是工具。好不好用,适不适合自己,试过才知道。

GitHub:https://github.com/resemble-ai/chatterbox
官方Demo:https://huggingface.co/spaces/ResembleAI/chatterbox-turbo-demo
多语言Demo:https://huggingface.co/spaces/ResembleAI/Chatterbox-Multilingual

有兴趣自己试试吧,玩出花样了别忘分享一下。

评论