AI个人学习
和实操指南
TRAE

OpenAvatarChat:模块化设计的数字人对话工具

综合介绍

OpenAvatarChat 是由 HumanAIGC-Engineering 团队开发的一个开源项目,托管在 GitHub 上。它是一个模块化的数字人对话工具,用户可以在单台 PC 上运行完整功能。项目结合实时视频、语音识别和数字人技术,核心特点是灵活的模块化设计和低延迟互动。音频部分使用了 SenseVoice、qwen-plus 和 CosyVoice 等技术,视频部分依赖 LiteAvatar 算法。代码完全开放,适合开发者研究和改进。

OpenAvatarChat:模块化设计的数字人对话工具-1


 

功能列表

  • 模块化数字人对话:支持语音和视频的实时互动,模块可自由组合。
  • 实时音视频传输:通过 gradio-webrtc 实现低延迟的音视频交流。
  • 语音识别与生成:集成 SenseVoice 和 CosyVoice,处理语音输入和输出。
  • 数字人动画:利用 LiteAvatar 生成流畅的数字人表情和动作。
  • 开源支持:提供完整代码,用户可根据需求修改或优化。

 

使用帮助

OpenAvatarChat 是一个开源项目,需要用户自行下载代码并配置环境。以下是详细的安装和使用步骤,帮助你快速上手。

安装流程

  1. 检查系统需求
    在开始之前,确保你的设备满足以下条件:

    • Python 3.10 或更高版本。
    • 支持 CUDA 的 GPU,显存至少 10GB(未量化模型需 20GB 以上)。
    • CPU 性能较强(测试用 i9-13980HX 可达 30FPS)。
      你可以用以下命令检查 Python 版本:
python --version
  1. 安装 Git LFS
    项目使用 Git LFS 管理大文件,先安装它:
sudo apt install git-lfs
git lfs install
  1. 下载代码
    在终端输入以下命令,克隆项目到本地:
git clone https://github.com/HumanAIGC-Engineering/OpenAvatarChat.git
cd OpenAvatarChat
  1. 更新子模块
    项目依赖多个子模块,运行以下命令更新:
git submodule update --init --recursive
  1. 下载模型
    多模态语言模型 MiniCPM-o-2.6 需要手动下载。你可以从 Huggingface 或 Modelscope 获取。将模型放入 models/ 文件夹,或运行脚本自动下载:
scripts/download_MiniCPM-o_2.6.sh

如果显存不足,可下载 int4 量化版本:

scripts/download_MiniCPM-o_2.6-int4.sh
  1. 安装依赖
    在项目根目录运行:
pip install -r requirements.txt
  1. 生成 SSL 证书
    如果需要远程访问,生成自签名证书:
scripts/create_ssl_certs.sh

证书默认存放在 ssl_certs/ 文件夹。

  1. 运行程序
    有两种启动方式:
  • 直接运行
    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。
    保存后重启程序,配置生效。

操作流程

  1. 启动程序,等待界面加载完成。
  2. 检查摄像头和麦克风是否正常工作。
  3. 开始对话,系统自动处理语音和视频。
  4. 若需停止,按 Ctrl+C 关闭终端或退出界面。

云端替代方案

如果本地配置不足,可以用云端 LLM 替换 MiniCPM-o:

  1. 修改 src/demo.py,启用 ASR、LLM 和 TTS 处理器,注释 MiniCPM 部分。
  2. 在 configs/sample.yaml 配置 LLM_Bailian,填入 API 地址和密钥,例如:
LLM_Bailian:
model_name: "qwen-plus"
api_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "yourapikey"
  1. 重启程序即可使用。

注意事项

  • GPU 显存不足可能导致程序崩溃,建议用 int4 模型或云端 API。
  • 网络不稳定会影响实时传输,建议用有线连接。
  • 配置路径支持相对路径(基于项目根目录)或绝对路径。

 

应用场景

  1. 技术研究
    开发者可以用它研究数字人对话技术,分析模块化设计的实现。
  2. 个人测试
    用户可以搭建本地服务,体验语音驱动的数字人互动。
  3. 教育培训
    学生可通过代码学习语音识别、语言模型和数字人动画的原理。

 

QA

  1. 显存不够怎么办?
    下载 int4 量化模型,或使用云端 LLM API 替代本地模型。
  2. 支持多人对话吗?
    当前版本适合单人对话,多人功能需自行开发。
  3. 运行卡顿怎么办?
    检查 CPU/GPU 性能,降低帧率或关闭快速模式。
未经允许不得转载:首席AI分享圈 » OpenAvatarChat:模块化设计的数字人对话工具
zh_CN简体中文