ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

会带情绪的开源语音合成 Chatterbox:从零跑通你的第一个 TTS 音色

会带情绪的开源语音合成 Chatterbox:从零跑通你的第一个 TTS 音色 会带情绪的开源语音合成 Chatterbox:从零跑通你的第一个 TTS 音色【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox下午五点,你还差一段带情绪的播客旁白没交付。Chatterbox 是 Resemble AI 推出的开源语音合成(TTS)模型族:一条 pip 命令装上,贴一段参考录音,文字就能变成指定人声,还能在文本里直接写 [chuckle] 这类副语言标签。最打动人的地方是——装完就能出声。 为什么值得试副语言标签:文本里写进 [cough]、[laugh],输出就真的带咳嗽声和笑声;Turbo 版还把解码从 10 步压到 1 步,出声快得多。零样本多语言:23 种语言共用一个 500M 模型,参考音频给谁的声音,合成出来就用谁的声音。内置 PerTh 神经水印:每条生成音频都可溯源,对要公开发布内容的团队来说很关键。三个差异点,不用背参数表就够你判断要不要动手了。 三分钟跑起来先装包:pip install chatterbox-tts装完直接跑这段,6 行代码出声音,加载 Turbo 模型并合成一句英文:import torchaudio as ta from chatterbox.tts_turbo import ChatterboxTurboTTS model ChatterboxTurboTTS.from_pretrained(devicecuda) wav model.generate(Hello, this is my first Chatterbox run.) ta.save(first.wav, wav, model.sr)跑完本地会多出一个 first.wav,打开听,就是这个项目自带的默认音色。想改代码或看内部实现,clone 仓库(https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox)后执行 pip install -e . 即可,这里不展开。项目基于 Python 3.11 开发测试,依赖版本已固定在 pyproject.toml;按这个版本走,踩坑最少。装好了,然后呢?️ 按任务拆:你想完成什么,就选哪个模型让声音带情绪:副语言标签 夸张度想做情感语音合成,解决的第一个问题就是念出来的东西太平。Chatterbox-Turbo(350M,英语)就是为这个场景设计的——标签写进文本,情绪读出来:from chatterbox.tts_turbo import ChatterboxTurboTTS model ChatterboxTurboTTS.from_pretrained(devicecuda) text Hi, Sarah here from MochaFone, calling you back [chuckle]. One minute? wav model.generate(text, audio_prompt_pathref_10s.wav) ta.save(emotional.wav, wav, model.sr)跑完你会听到一段会轻笑的客服开场白,语气克隆自你给的 10 秒参考录音。坑点提醒:Turbo 的 exaggeration 和 cfg_weight 默认都是 0,不传就是素面输出,想加料要显式传参;标准版 Chatterbox(500M,英语)则以这两个参数为核心调节风格,默认各 0.5。完整用法可看 example_tts_turbo.py。用 23 种语言说同一件事:零样本多语言 TTS一条配音要翻成中文、法语等多个版本,而且音色必须保持一致时,Chatterbox-Multilingual(500M,覆盖 23 种语言)就够了,同一段代码换语言合成两句:from chatterbox.mtl_tts import ChatterboxMultilingualTTS model ChatterboxMultilingualTTS.from_pretrained(devicecuda) zh 你好,今天天气真不错,祝你周末愉快。 fr Bonjour, comment ça va ? ta.save(zh.wav, model.generate(zh, language_idzh), model.sr) ta.save(fr.wav, model.generate(fr, language_idfr), model.sr)两段音频出自同一个参考音色,只换语言。坑点:参考录音的语言要和 language_id 对齐,混着用口音会跑偏。10 秒参考音,零样本语音克隆一条声音给找语音克隆教程的人,标准版 Chatterbox 的最小可跑版本就三步:from chatterbox.tts import ChatterboxTTS model ChatterboxTTS.from_pretrained(devicecuda) wav model.generate(这段声音来自十秒参考录音。, audio_prompt_pathref.wav) ta.save(cloned.wav, wav, model.sr)跑完 cloned.wav 里就是 ref.wav 那个人的声音在读新文本。前提是参考录音约 10 秒、吐字清楚、背景干净——参考音质量直接决定克隆上限。声音出来了,但怎么调? 调参与避坑几条过来人式的提醒:参考音频的语言必须和 language_id 一致,多语言混用时按合成前换对应语言的参考来做。默认 cfg_weight0.5、exaggeration0.5 已经够用;参考语音语速偏快时,把 cfg_weight 降到 0.3 左右,节奏会慢下来。exaggeration 拉到 0.7 以上,情绪更戏剧化,但语速会加快;想要更慢更从容的语感,再配合低一点的 cfg_weight 补偿。Turbo 版两个参数默认都是 0,不传参等于放弃情绪调节。克隆不像真人,先换参考录音再谈调参——参考音的问题,参数救不回来。 质量有据可查官方把 Chatterbox Turbo 放到 Podonos 主观语音评估平台上,与三家系统做了同条件对比,结果公开可查:对比 ElevenLabs Turbo v2.5对比 Cartesia Sonic 3对比 VibeVoice 7B这里不替它下结论,数据摆在那,自己听。 内置的伦理护栏:PerTh 水印每条 Chatterbox 生成的音频都带 PerTh(Perceptual Threshold)神经水印:人耳无感,能扛住 MP3 压缩和常见编辑,检测准确率接近 100%。想验证一条音频是不是它出的,几行代码:import librosa import perth audio, sr librosa.load(out.wav, srNone) watermarker perth.PerthImplicitWatermarker() print(watermarker.get_watermark(audio, sample_ratesr))打印 1.0 表示检出水印,0.0 表示没有。 接下来去哪仓库根目录的示例代码:example_tts_turbo.py 等 example_* 文件,分别对应 Turbo、标准版、多语言和语音转换场景。模型主干源码集中在 src/chatterbox/models/,想读架构就从 s3gen 和 t3 两个子目录入手。官方 Discord 社区入口在 README 里,问题基本都有人答。装好 pip 包,丢一段 10 秒录音,今晚你就能听到第一条克隆音。【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表