ARTICLE DETAIL

资讯详情

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

Chatterbox 开源文本转语音上手:从选对模型到验证水印的 4 步

Chatterbox 开源文本转语音上手:从选对模型到验证水印的 4 步 Chatterbox 开源文本转语音上手从选对模型到验证水印的 4 步【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox给应用加语音时先卡住人的往往不是合成质量而是一串实际问题到底该用哪个模型中文说得地道吗显存不够怎么办生成的声音能不能像某个特定的人Chatterbox 是 Resemble AI 开源的一套完整文本转语音TTS方案它把几个不同定位的模型放在同一个代码库里面向低延迟的 Chatterbox-Turbo、能跑在纯 CPU 上的 Chatterbox-Nano、覆盖 23 种语言的多语言版 Multilingual V3外加零样本声音克隆、语音转换Voice Conversion和内置音频水印装完即用。第 1 步先选对模型再谈跑起来Chatterbox 不是一个模型而是一个模型家族选错方向后面全白搭。官方在 README 里维护了一张 Model Zoo对照你的场景看模型参数量语言适合谁Chatterbox-Turbo350M英文语音代理、生产环境计算量和显存占用更低Chatterbox-Nano110M英文端侧、纯 CPU 推理8 核 CPU 上 3 倍实时速度Chatterbox-Multilingual V3500M23 种全球多语言应用、跨语言声音克隆Single Language Pack500M × 66 个专项微调对特定语言/方言质量要求高的场景几个选型的直白判断只做英文、追求延迟用 Turbo显存或内存更紧张就换 Nano两者架构相同Nano 通过nanoTrue加载要合成中文、法语等非英文文本必须用 Multilingual V3通过t3_modelv3加载不传则默认 V2 旧版它支持 ar、de、en、fr、ja、ko、ru、zh 等 23 种语言完整清单写死在 src/chatterbox/mtl_tts.py 的SUPPORTED_LANGUAGES里只要中文且在意方言和稳定性Single Language Pack 里有专门微调的 zh-cmn 版本另外 5 个是拉美/西班牙西语、巴西/葡萄牙葡语、印地语想调情感、做创意控制exaggeration、cfg_weight参数只有原版 Chatterbox 和 Multilingual 支持Turbo 不支持下文会提到第 2 步本地安装与第一次合成选好了模型剩下的是最普通的安装步骤。用 pip 装最省事pip install chatterbox-tts或者从源码装方便改代码官方在 Python 3.11 Debian 11 上开发测试依赖版本锁定在 pyproject.toml要求 Python ≥ 3.10git clone https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox cd chatterbox pip install -e .跑第一段语音。下面这段代码直接加载多语言 V3 并合成一句中文language_id传语言码import torchaudio as ta from chatterbox.mtl_tts import ChatterboxMultilingualTTS device cuda # 没有 GPU 就写 cpu 或 mps model ChatterboxMultilingualTTS.from_pretrained(devicedevice, t3_modelv3) text 你好今天天气真不错希望你有一个愉快的周末。 wav model.generate(text, language_idzh) ta.save(test-chinese.wav, wav, model.sr)from_pretrained会自动从 Hugging Face 拉取权重首次运行需要点时间。想换声音只要在generate里多传一个audio_prompt_pathYOUR_FILE.wav传入一段参考音频就能做零样本声音克隆——原版英文模型ChatterboxTTS自带内置音色不传参考音频也能出声。仓库里的 example_tts.py 就是完整可跑的版本。到这里你可能会想这几个模型代码入口不同内部是不是各搞一套其实不是。所有模型共用同一条管线文本先过 T3 语言模型转成语音 tokensrc/chatterbox/models/t3/再由 S3Gen 解码回音频波形src/chatterbox/models/s3gen/。Turbo/Nano 的区别主要是 T3 换了更小的 GPT2 主干S3Gen 换成了单步 meanflow 解码器——这也正是下一节低延迟的来源。第 3 步低延迟场景用 Turbo设备受限用 Nano如果你的场景是语音代理这种每句话都要快的应用Turbo 是官方的主推选择。相比之前的模型它把语音 token 到梅尔频谱的解码从 10 步压缩到 1 步显存和算力占用都更低而且支持副语言标签——直接在文本里写[chuckle]、[laugh]、[cough]合成结果就会带出对应的笑声、咳嗽声这是做拟人化对话很省事的一个功能。from chatterbox.tts_turbo import ChatterboxTurboTTS # Nano 只是多传一个 nanoTrue其余完全一样devicecpu 也能跑 model ChatterboxTurboTTS.from_pretrained(devicecuda, nanoTrue) text Hi there, Sarah here from MochaFone calling you back [chuckle], have you got one minute? wav model.generate(text, audio_prompt_pathyour_ref_clip.wav)用 Turbo/Nano 有两个和前面模型不同的地方第一次用很容易踩参考音频必须超过 5 秒代码里有硬性断言prepare_conditionals里会检查时长给一段 10 秒左右的干净人声最稳妥传cfg_weight、exaggeration、min_p会触发警告并被忽略——这些旋钮只对原版 Chatterbox 和 Multilingual 生效顺路看看语音转换不写文本只换声音除了文字变声音Chatterbox 还内置了 Voice Conversion把一段现成录音的音色换成目标说话人内容、语调原样保留。入口在 src/chatterbox/vc.py用法只有两个参数——源音频和目标声音from chatterbox.vc import ChatterboxVC model ChatterboxVC.from_pretrained(device) wav model.generate(audioinput.wav, target_voice_pathtarget_voice.wav)想试完整效果可以看 example_vc.py它和 TTS 示例共享同一套设备探测写法cuda → mps → cpu。调参避坑3 个直接改变听感的设置参数调不好的典型表现是声音像参考人的语言、语速偏快、或者听着平淡。官方 README 的 Tips 一节给了三组针对性建议适用于原版 Chatterbox 和 Multilingual默认值先跑起来exaggeration0.5、cfg_weight0.5对大多数提示词就够用别一上来就猛调参考音频语言要匹配language_id比如你标了language_idfr却传了段英文参考音频输出可能带着英文口音如果无法避免语言不匹配把cfg_weight设为0可以缓解口音迁移语速和情感是联动的参考说话人语速快时把cfg_weight降到0.3左右能让节奏更从容想要戏剧化表达用低cfg_weight约 0.3配高exaggeration0.7——注意高exaggeration本身会让语速变快低cfg_weight是用来对冲这个加速的生成的音频怎么验证带水印一个容易被忽略的细节Chatterbox 输出的每一段音频都自动嵌入了 PerThPerceptual Threshold神经水印。它不可感知MP3 压缩、剪辑之后仍能保持接近 100% 的检测准确率。水印是在generate内部由perth.PerthImplicitWatermarker强制打上的看 src/chatterbox/tts.py 结尾的apply_watermark调用你无法跳过。验证也很简单用下面这段脚本判断一段音频是否有水印输出1.0代表有、0.0代表没有import perth import librosa audio, sr librosa.load(YOUR_FILE.wav, srNone) watermark perth.PerthImplicitWatermarker().get_watermark(audio, sample_ratesr) print(fExtracted watermark: {watermark})想先听效果再动手内置 Gradio 演示页不想写代码的话仓库根目录带了四个开箱即用的 Web 界面gradio_tts_app.py原版 多语言、gradio_tts_turbo_app.pyTurbo、gradio_vc_app.py语音转换和 multilingual_app.py多语言专题。装好依赖后直接python gradio_tts_app.py即可在浏览器里试参数界面里暴露的滑块和上面讲的exaggeration、cfg_weight、temperature是一一对应的可以先在这里摸熟手感再回代码里用。下一步Chatterbox 这套方案的核心价值在于英文低延迟、多语言、端侧三种部署场景各自有现成模型克隆和转换能力开箱即用音频还自带可验证的水印。建议你现在就 clone 仓库先跑通 example_tts_turbo.py 听一次副语言标签的效果再换一段自己 10 秒左右的参考音频试试声音克隆——这两步跑通后面对接你自己的应用就不会有陌生感了。【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表