如何魔改AI伴侣?ChatGLM2-Voice-Cloning替换LLM与TTS引擎的开发者进阶指南

📅 2026/8/27 16:03:58
如何魔改AI伴侣?ChatGLM2-Voice-Cloning替换LLM与TTS引擎的开发者进阶指南
如何魔改AI伴侣ChatGLM2-Voice-Cloning替换LLM与TTS引擎的开发者进阶指南【免费下载链接】ChatGLM2-Voice-CloningChat with any character you like: ChatGLM2SadTalkerVoice Cloning | 和喜欢的角色沉浸式对话吧ChatGLM2声音克隆视频对话项目地址: https://gitcode.com/gh_mirrors/ch/ChatGLM2-Voice-CloningChatGLM2-Voice-Cloning 是一个将ChatGLM2-6B 大语言模型 FreeVC 声音克隆 SadTalker 视频对话整合在一起的开源 AI 伴侣项目输入文字它生成回复再合成为你指定角色的音色最后让一张静态照片开口说话。整个系统由多个可独立替换的模块组成因此非常适合动手魔改。本指南带你完成两件最核心的改造替换 LLM 引擎和替换 TTS 引擎并附声音克隆与视频合成的进阶玩法 ️一、动手前看懂 AI 伴侣的四段式流水线魔改的第一步是理解架构。项目把一次沉浸式对话拆成了 4 个串行模块每个模块都有清晰的输入/输出边界模块默认实现输入 → 输出核心位置 大语言模型ChatGLM2-6B-int4文字问题 → 回复文本app.py 语音合成 (TTS)edge-tts免费在线服务回复文本 → mp3 音频app.py️ 声音克隆FreeVC 说话人编码器TTS 音频 参考音频 → 角色音色音频app.py 视频合成SadTalker图片 克隆音频 → 说话视频app.py 关键认知模块之间只靠文本和音频文件路径传递数据互不依赖。这意味着你可以只换其中一个模块其余部分完全不用动。项目提供两个入口版本app_new.py是 v1 版聊天 TTS 声音克隆app.py是 v2 版额外增加 SadTalker 视频聊天区。以下改造均以 app.py 为例。二、替换 LLM 引擎给 AI 伴侣换个大脑默认情况下程序通过 Hugging Face 的AutoModel.from_pretrained加载THUDM/chatglm2-6b-int4int4 量化版显存占用约 3.9GB。整个 LLM 加载逻辑集中在 app.py 的十几行代码里model_name THUDM/chatglm2-6b-int4 # ① 改这里即可换模型 tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model_glm AutoModel.from_pretrained(model_name, trust_remote_codeTrue).cuda().half()替换 LLM 只需关注两个点改模型名称把model_name换成你喜欢的对话模型如其他 ChatGLM 版本、量化版本tokenizer 会自动跟随。接口兼容性对话主循环predict()调用了model_glm.stream_chat(tokenizer, ...)流式生成见 app.py。如果你换成没有stream_chat的模型需要把该函数改为调用对应模型的 chat/stream 接口并保留yield输出结构网页界面才能逐字显示回复。⚠️ 小贴士显存紧张时优先选择 int4/int8 量化版本GPU 不可用时程序会自动退回 CPU 的 float 模式速度会明显变慢。三、替换 TTS 引擎从 edge-tts 换成本地语音合成默认的语音合成走的是免费的 edge-tts 在线服务全部逻辑就一个异步函数text_to_speech_edge接收文本保存为临时 mp3 并返回文件路径app.py。界面上的生成对应的音频吧按钮通过tts_btn.click(...)绑定到它app.py。想换成 CosyVoice、GPT-SoVITS、VITS 等本地 TTS 引擎只要做到两点即可无缝接入函数签名不变输入文本字符串输出音频文件路径重绑定按钮把tts_btn.click的第一个参数换成你的新函数。def my_local_tts(text, language_code): wav_path my_tts_model.synthesize(text) # 你的本地 TTS 引擎 return wav_path tts_btn.click(my_local_tts, inputs[test1, language], outputs[output_audio])另外界面下拉框中的 290 种语言音色来自 tts_voice.py 里的tts_order_voice字典如普通话 (中国大陆)-Xiaoxiao-女。换成本地 TTS 后这个字典可以换成你自定义的音色列表让 AI 伴侣拥有全新的声库 四、进阶玩法声音克隆与视频引擎的魔改路线4.1 声音克隆FreeVC三件套克隆环节的核心是convert()函数app.py它做了三件事用说话人编码器SpeakerEncoder权重在 speaker_encoder/ckpt/从你上传的 5~10 秒参考音频中提取音色向量用 WavLMmicrosoft/wavlm-large提取 TTS 音频的内容特征交给 FreeVC 主干网络SynthesizerTrn推理出克隆音频。三个可替换的零件分别是checkpoint/freevc-24.pth主干模型、configs/freevc-24.json超参数配置和说话人编码器权重。想换采样率或实验不同模型改动都围绕这三处展开编码器训练代码在 speaker_encoder/train.py。4.2 视频合成SadTalkerv2 版在 app.py 启动时自动下载 SadTalker 模型并用SadTalker(lazy_loadTrue)懒加载实例视频聊天区的开始视频聊天吧按钮最终调用sad_talker.test(...)app.py传入图片、克隆音频及一系列表情/姿态参数。由于 SadTalker 源码通过src/gradio_demo引入替换视频引擎时只需保持图片 音频 → 视频文件的接口即可比如换成 Hallo、EchoMimic 等新的数字人方案。五、部署环境与常见坑位一键克隆仓库并安装依赖依赖清单见 requirements.txt含 torch、transformers、gradio、edge_tts 等git clone https://gitcode.com/gh_mirrors/ch/ChatGLM2-Voice-Cloning cd ChatGLM2-Voice-Cloning pip install -r requirements.txt sudo apt install ffmpeg随后把freevc-24.pth放入checkpoint/、pretrained_bak_5805000.pt放入speaker_encoder/ckpt/再运行python app.pyv2或python app_new.pyv1即可打开 Gradio 网页 常见排错清单显存不足把model_name换成 int4 量化版或调低界面里的Maximum lengthffmpeg 报错视频/音频处理强依赖 ffmpeg务必先安装换 TTS 后界面没声音检查新函数是否返回了可访问的音频文件路径Gradiotypefilepath要求克隆音色不像参考音频质量直接决定效果选 5~10 秒清晰无背景音的录音。六、总结ChatGLM2-Voice-Cloning 的模块化设计让魔改 AI 伴侣变得异常友好 换 LLM 只需改一行model_name并适配流式接口 换 TTS 只需写一个文本进、音频路径出的函数️ 声音克隆与视频引擎则沿着内容—音色—渲染三条线分别替换。动手顺序建议是先跑通原版 → 换 TTS 练手 → 再换 LLM → 最后挑战声音克隆与数字人。祝你的 AI 伴侣早日拥有独一无二的大脑与声音 【免费下载链接】ChatGLM2-Voice-CloningChat with any character you like: ChatGLM2SadTalkerVoice Cloning | 和喜欢的角色沉浸式对话吧ChatGLM2声音克隆视频对话项目地址: https://gitcode.com/gh_mirrors/ch/ChatGLM2-Voice-Cloning创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考