十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Chatterbox 多语言语音合成上手:模型选型、零样本克隆与参数调优

Chatterbox 多语言语音合成上手:模型选型、零样本克隆与参数调优 Chatterbox 多语言语音合成上手模型选型、零样本克隆与参数调优【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox做产品多语言本地化时你通常希望同一个声音贯穿所有语种的配音而不是为每种语言各请一位配音员。Chatterbox 是 Resemble AI 开源的 TTS 模型家族覆盖 23 种语言和零样本语音克隆给一段几秒的参考音频模型就能用这个声音合成目标语言的语音。️ 能力拆解四条调用路径文本合成英语模型与 23 种语言调用Chatterbox 的文本合成入口分两类英语模型 ChatterboxTTS 和多语言模型 ChatterboxMultilingualTTS。多语言模型通过language_id参数切换语言取值来自mtl_tts.py中的SUPPORTED_LANGUAGES表共 23 个代码ar、da、de、el、en、es、fi、fr、he、hi、it、ja、ko、ms、nl、no、pl、pt、ru、sv、sw、tr、zh。加载时传t3_modelv3使用最新的 V3 多语言检查点不传则默认 V2import torchaudio as ta from chatterbox.tts import ChatterboxTTS from chatterbox.mtl_tts import ChatterboxMultilingualTTS device cuda # 可选 mps / cpu model ChatterboxTTS.from_pretrained(devicedevice) wav_en model.generate(Good morning, this is a Chatterbox demo.) ta.save(out-en.wav, wav_en, model.sr) # 多语言 V3language_id 决定分词与发音行为 mtl ChatterboxMultilingualTTS.from_pretrained(devicedevice, t3_modelv3) wav_zh mtl.generate(你好这是一个多语言语音合成测试。, language_idzh) ta.save(out-zh.wav, wav_zh, mtl.sr)零样本声音克隆一段参考音频驱动任意合成克隆不依赖训练靠的是audio_prompt_path参数。模型从参考音频提取说话人嵌入和语音 token 条件说话人特征由 voice_encoder 模块 计算之后generate每次调用都以该声音输出。建议参考音频取目标语言下 5~10 秒的清晰人声Turbo 版本对参考时长有硬性断言超过 5 秒才会通过英语与多语言模型会取前 10 秒作为条件wav mtl.generate( 请用这个声音朗读本段内容。, language_idzh, audio_prompt_pathref_5s.wav, # 5~10 秒、无背景音的干净人声 ) ta.save(cloned.wav, wav, mtl.sr)语音转换把已有录音换成另一个声音ChatterboxVC走的是另一条链路输入音频先被 S3 分词器转成语音 token再由 s3gen 解码器按目标声音条件重新解码不做文本生成。适合让已有录音换声重录比如虚拟角色重配、访谈音频换主播音色import torchaudio as ta from chatterbox.vc import ChatterboxVC vc ChatterboxVC.from_pretrained(cuda) wav vc.generate( audiosource.wav, # 要被转换的原始音频 target_voice_pathtarget.wav, # 目标声音参考 ) ta.save(vc-out.wav, wav, vc.sr)内置水印生成内容可被机器识别所有 Chatterbox 输出的音频都带 PerTh 隐式神经水印可抗 MP3 压缩与常规剪辑。若你的发布流程需要校验 AI 生成内容用 Perth 检测器可直接读出 0.0无水印或 1.0有水印import perth, librosa audio, sr librosa.load(cloned.wav, srNone) wm perth.PerthImplicitWatermarker().get_watermark(audio, sample_ratesr) print(wm) # 0.0 无水印 / 1.0 有水印 起步实操从环境到第一个音频文件官方在 Python 3.11 上开发与测试pyproject.toml 要求 3.10依赖版本全部锁定。推荐用 conda 建独立环境然后二选一安装conda create -yn chatterbox python3.11 conda activate chatterbox # 方式一PyPI 安装 pip install chatterbox-tts # 方式二源码安装可改代码或依赖 git clone https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox cd chatterbox pip install -e .第一个可运行示例覆盖设备自动检测与英文、中文各生成一条import torch import torchaudio as ta from chatterbox.tts import ChatterboxTTS from chatterbox.mtl_tts import ChatterboxMultilingualTTS # 自动选择 cuda / mps / cpu if torch.cuda.is_available(): device cuda elif torch.backends.mps.is_available(): device mps else: device cpu model ChatterboxTTS.from_pretrained(devicedevice) wav model.generate(Ezreal and Jinx teamed up with Ahri to take down the Nexus.) ta.save(test-1.wav, wav, model.sr) # 输出验证播放或检查波形 mtl ChatterboxMultilingualTTS.from_pretrained(devicedevice, t3_modelv3) wav mtl.generate(你好希望你有一个愉快的周末。, language_idzh) ta.save(test-2.wav, wav, mtl.sr)注意from_pretrained会触发模型检查点下载数百 MB 量级首次运行慢属正常之后走本地缓存。设备差异一张表收束设备device 参数说明NVIDIA GPUcuda500M 模型首选速度最快Apple Siliconmpsfrom_pretrained在 MPS 不可用时会自动回退 cpu加载细节可参考 example_for_mac.pyCPUcpu500M 模型偏慢适合验证流程实时需求建议换 Nano仓库自带 Gradio 界面适合不写代码直接试听python gradio_tts_app.py英语、python gradio_tts_turbo_app.pyTurbo、python gradio_vc_app.py声音转换、python multilingual_app.py多语言启动后浏览器自动打开页面。⚖️ 模型选型五个版本按场景对号入座模型参数量语言核心特性适用场景Chatterbox原版500M英语exaggeration/cfg_weight情感与 CFG 调节英语创意配音、需要表现力控制Chatterbox-Turbo350M英语[laugh][chuckle]等副语言标签单步解码计算与显存更低实时语音代理、生产环境Chatterbox-Nano110M英语与 Turbo 同架构8 核 CPU 上 3 倍实时速度端侧、CPU、极限内存预算Chatterbox-Multilingual V3500M23跨语言说话人相似度更好幻觉更少全球化应用、跨语言克隆Single Language Pack500M × 6zh-cmn、es-mx-latam、es-es、pt-br、pt-pt、hi单语言专项微调方言感知更强单一语言且质量敏感的发行场景决策路径很直接需要多种语言且共用一个克隆声音选 Multilingual V3主语言落在 6 个专项模型内且对音质要求高如普通话、拉美西语选 Single Language Pack在意首包延迟选 Turbo跑在 CPU 上选 Nano只做英语且要调情感曲线用原版 Chatterbox。与闭源方案的差异点官方 README 挂了 Turbo 对比 ElevenLabs Turbo v2.5、Cartesia Sonic 3、VibeVoice 7B 的公开主观评测主要可比的维度是自然度与部署成本Chatterbox 一方是 23 语言覆盖与本地可部署。️ 落地参考应用模式与常见卡点场景一多语言配音批处理一个进程里把from_pretrained只调一次之后按语言循环生成。加载检查点是整个流程中最贵的一步循环内重复加载会浪费大量时间。若参考音频是英语而目标语言是中文输出可能继承参考的口音官方建议此时把cfg_weight设为 0mtl ChatterboxMultilingualTTS.from_pretrained(devicecuda, t3_modelv3) for lang, text in [(zh, ……), (ja, ……), (fr, ……)]: wav mtl.generate(text, language_idlang, audio_prompt_pathref_5s.wav) ta.save(fout-{lang}.wav, wav, mtl.sr)场景二带副语言标签的语音代理Turbo 原生支持在文本里插入[chuckle]、[laugh]、[cough]等标签生成带呼吸感与笑声的对话语音适合外呼与陪伴类代理。两点约束参考音频必须超过 5 秒否则断言报错exaggeration、cfg_weight在 Turbo 上不生效传入只会打警告日志不必再调from chatterbox.tts_turbo import ChatterboxTurboTTS turbo ChatterboxTurboTTS.from_pretrained(devicecuda) wav turbo.generate( Hi, this is the booking assistant [chuckle], do you have a minute?, audio_prompt_pathagent_ref.wav, # 需 5 秒 )场景三存量录音换声ChatterboxVC支持把目标声音条件提取一次后复用到多条源音频上适合给整个目录的录音批量换声vc.set_target_voice(target.wav) # 提取一次多次复用 for src in sources: ta.save(fnew-{src}, vc.generate(audiosrc).squeeze(0), vc.sr)常见卡点现象大概率原因处理建议音色不像参考或带外语口音参考语言与目标语言不一致或样本太短换目标语言的 5~10 秒干净人声跨语言时设cfg_weight0Turbo 报 Audio prompt must be longer than 5 seconds参考音频不足 5 秒加长参考音频CPU 上推理很慢500M 模型在 CPU 上本就吃力改用nanoTrue加载 Nano或换 GPU输出多话、重复、跑题幻觉多语言版本偏旧或 CFG 权重偏高升级到t3_modelv3调低cfg_weightMac 上提示 MPS 不可用PyTorch 未带 MPS 构建from_pretrained会自动回退 cpu参考 example_for_mac.py 的torch.load补丁参数调节的总体基调来自官方 Tips默认exaggeration0.5、cfg_weight0.5在多数语言下够用参考说话人语速偏快时把cfg_weight降到 0.3 左右改善节奏要戏剧化表达则cfg_weight约 0.3、exaggeration升到 0.7 以上。三个工程细节用短片段带过# 显存管理流程结束及时释放 del model import torch; torch.cuda.empty_cache()# 错误降级参数组合失败时退回默认参数重试 try: wav mtl.generate(text, language_idzh, cfg_weight0.3) except Exception: wav mtl.generate(text, language_idzh)# 批量串行单 GPU 上顺序生成即可避免并发显存争抢 wavs [mtl.generate(t, language_idzh) for t in texts]下一步Chatterbox 覆盖英语 TTS、23 语言合成与声音转换三条链路仓库内example_tts.py、example_tts_turbo.py、example_vc.py与 Gradio 应用是最贴近生产接法的入口建议从这里开始验证自己的场景。【免费下载链接】chatterboxSoTA open-source TTS项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表