综合介绍
OpenAvatarChat 是由 HumanAIGC-Engineering 团队开发的一个开源项目,托管在 GitHub 上。它是一个模块化的数字人对话工具,用户可以在单台 PC 上运行完整功能。项目结合实时视频、语音识别和数字人技术,核心特点是灵活的模块化设计和低延迟互动。音频部分使用了 SenseVoice、qwen-plus 和 CosyVoice 等技术,视频部分依赖 LiteAvatar 算法。代码完全开放,适合开发者研究和改进。
功能列表
- 模块化数字人对话:支持语音和视频的实时互动,模块可自由组合。
- 实时音视频传输:通过 gradio-webrtc 实现低延迟的音视频交流。
- 语音识别与生成:集成 SenseVoice 和 CosyVoice,处理语音输入和输出。
- 数字人动画:利用 LiteAvatar 生成流畅的数字人表情和动作。
- 开源支持:提供完整代码,用户可根据需求修改或优化。
使用帮助
OpenAvatarChat 是一个开源项目,需要用户自行下载代码并配置环境。以下是详细的安装和使用步骤,帮助你快速上手。
安装流程
- 检查系统需求
在开始之前,确保你的设备满足以下条件:- Python 3.10 或更高版本。
- 支持 CUDA 的 GPU,显存至少 10GB(未量化模型需 20GB 以上)。
- CPU 性能较强(测试用 i9-13980HX 可达 30FPS)。
你可以用以下命令检查 Python 版本:
python --version
- 安装 Git LFS
项目使用 Git LFS 管理大文件,先安装它:
sudo apt install git-lfs
git lfs install
- 下载代码
在终端输入以下命令,克隆项目到本地:
git clone https://github.com/HumanAIGC-Engineering/OpenAvatarChat.git
cd OpenAvatarChat
- 更新子模块
项目依赖多个子模块,运行以下命令更新:
git submodule update --init --recursive
- 下载模型
多模态语言模型 MiniCPM-o-2.6 需要手动下载。你可以从 Huggingface 或 Modelscope 获取。将模型放入models/
文件夹,或运行脚本自动下载:
scripts/download_MiniCPM-o_2.6.sh
如果显存不足,可下载 int4 量化版本:
scripts/download_MiniCPM-o_2.6-int4.sh
- 安装依赖
在项目根目录运行:
pip install -r requirements.txt
- 生成 SSL 证书
如果需要远程访问,生成自签名证书:
scripts/create_ssl_certs.sh
证书默认存放在 ssl_certs/
文件夹。
- 运行程序
有两种启动方式:
- 直接运行:
python src/demo.py
- 容器化运行(需 Nvidia Docker):
build_and_run.sh
主要功能操作
- 启动数字人对话
运行程序后,打开浏览器访问https://localhost:8282
(端口可在configs/sample.yaml
修改)。界面会显示数字人,点击“开始”后,程序调用摄像头和麦克风,进入对话模式。 - 语音互动
对着麦克风说话,系统会通过 SenseVoice 识别语音,MiniCPM-o 生成回答,CosyVoice 转为语音输出。数字人会同步显示表情和口型。测试显示,回答延迟约 2.2 秒(基于 i9-13900KF 和 RTX 4090)。 - 调整配置
编辑configs/sample.yaml
文件。例如: - 修改端口:将
service.port
改为其他值。 - 调整帧率:将
Tts2Face.fps
设为 30。
保存后重启程序,配置生效。
操作流程
- 启动程序,等待界面加载完成。
- 检查摄像头和麦克风是否正常工作。
- 开始对话,系统自动处理语音和视频。
- 若需停止,按 Ctrl+C 关闭终端或退出界面。
云端替代方案
如果本地配置不足,可以用云端 LLM 替换 MiniCPM-o:
- 修改
src/demo.py
,启用 ASR、LLM 和 TTS 处理器,注释 MiniCPM 部分。 - 在
configs/sample.yaml
配置LLM_Bailian
,填入 API 地址和密钥,例如:
LLM_Bailian:
model_name: "qwen-plus"
api_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "yourapikey"
- 重启程序即可使用。
注意事项
- GPU 显存不足可能导致程序崩溃,建议用 int4 模型或云端 API。
- 网络不稳定会影响实时传输,建议用有线连接。
- 配置路径支持相对路径(基于项目根目录)或绝对路径。
应用场景
- 技术研究
开发者可以用它研究数字人对话技术,分析模块化设计的实现。 - 个人测试
用户可以搭建本地服务,体验语音驱动的数字人互动。 - 教育培训
学生可通过代码学习语音识别、语言模型和数字人动画的原理。
QA
- 显存不够怎么办?
下载 int4 量化模型,或使用云端 LLM API 替代本地模型。 - 支持多人对话吗?
当前版本适合单人对话,多人功能需自行开发。 - 运行卡顿怎么办?
检查 CPU/GPU 性能,降低帧率或关闭快速模式。