BQ-Wang0511/TalkLikeYou-Streaming-RealTime-Demo
Real-time browser demo for Talk Like You
TalkLikeYou – 实时对话头像演示
功能说明 – 一个基于浏览器的演示,可将静态肖像(或视频)转换为与上传音频、实时麦克风输入或聊天LLM生成语音同步的说话头像。它还能对现有视频进行配音,在保持原始姿态和时间轴的同时替换口部动作,也可作为聊天代理,将LLM回复、TTS音频和头像动画同步流式传输。
主要功能
- 音频模式 – 上传图像头像,然后输入音频文件或实时麦克风输入;系统实时生成口部动作。
- 视频配音模式 – 提供源视频和新音频轨道;演示保持原始头部姿态,仅替换与语音相关的口部动作。
- 聊天代理 – 可连接任意OpenAI兼容的聊天、STT和TTS服务。用户输入(文本或语音)发送至LLM,回复以文本、合成语音和同步头像动画形式流式返回。
- 预设说话风格 – “习惯ID”(如192、166、202)可让您在无需参考视频的情况下切换不同口部生成风格。
- 实时性能 – 在NVIDIA RTX 3090上,系统运行速度超过30 FPS,GPU内存使用量低于4 GB,可呈现高清晰度面部细节。
工作原理(概览)
- 头像注册 – 上传的图像/视频经过处理,检测人脸、裁剪并缓存头像特征(包括中性口部动作模板)。此步骤每头像仅执行一次。
- 流式渲染器 – 音频按块(默认1秒)分割并输入至习惯条件口部动作生成器;流匹配姿态分支(或Ditto音频驱动姿态)提供头部动作。生成的帧与原始源图像合成后,流式传输至浏览器。
- 聊天集成 – 服务器将用户文本或录制语音转发至配置的LLM和TTS端点。每接收一个token/片段,即生成对应语音和头像帧并显示。
安装
# 创建conda环境(Python 3.10,CUDA 12.1,cuDNN 9)
conda env create -f environment.yaml
conda activate talklikeyou-demo
# 或手动安装PyTorch后:
pip install -r requirements.txt
要求:Linux,NVIDIA GPU,FFmpeg。
运行演示
cd TalkLikeYou-Streaming-RealTime-Demo
CUDA_VISIBLE_DEVICES=0 python app.py --host 0.0.0.0 --port 5070
# 在浏览器中打开 http://127.0.0.1:5070
- 使用UI选择 音频、视频配音 或 聊天代理。
- 上传图像(音频/聊天)或视频(视频配音),并注册头像。
- 音频模式下,选择音频文件或启用 实时麦克风 并点击 开始流式传输。
- 视频配音模式下,上传源视频和音频文件,开始流式传输。
- 聊天代理模式下,通过环境变量(或
.env文件)配置LLM/STT/TTS端点,并通过聊天框进行交互。
配置亮点
- 习惯ID(
Lip person ID)控制说话风格;推荐值为192、166、202。 - 引导强度(
Lip guidance、Pose guidance)调整模型对所选习惯的遵循程度。 - 采样步数 – 实时设置为1步;步数越多,延迟越高。
- 块大小 –
Motion chunk (frames)和Audio chunk (seconds)在延迟与吞吐量之间权衡。 - Ditto姿态 – 启用后,图像头像使用Ditto的音频驱动姿态生成器;禁用后可选择姿态习惯。
- 聊天代理 – 设置
TALKLIKEYOU_LLM_BASE_URL、TALKLIKEYOU_LLM_API_KEY等指向任意OpenAI兼容服务;STT和TTS同理配置。
模型检查点
- 从Hugging Face仓库
doubi-killer/TalkLikeYou下载所需检查点,并按README说明放置在本地checkpoints/目录中(音频编码器、lip_motion.pt、pose_motion.pt和运行时资源)。 - 演示附带
runtime_config.pkl,指向这些本地路径。
许可证
- 演示代码:MIT许可证。
- 第三方组件(Ditto、LivePortrait)保留其原始许可证(详见
THIRD_PARTY_NOTICES.md)。
适用人群
- 探索实时口型同步和头像动画的研究人员。
- 构建交互式虚拟代理、流式头像或视频配音工具的开发者。
- 希望使用轻量级、本地运行的说话头像演示而无需云推理的创作者。
联系 – 问题可发送至 wangbaiqin0511@gmail.com。
相关
- 项目
- 项目
- 项目