Skip to content

morphishk/aivmate-webui

Repository files navigation

枫云AI虚拟伙伴Linux版 改 webui

GitHub license GitHub stars GitHub forks

枫云AI虚拟伙伴Linux版v3.0(Aivmate LX3)是一款由MewCo-AI团队开源的支持迷你小盒子/四轮机器人/四足机器人三形态的AI伙伴,旨在为Linux用户打造一个功能丰富、高度可定制的虚拟伙伴。通过整合多种人工智能技术,实现声纹识别语音交互、多模态图像识别、多Agent智能体、Live2D/MMD 3D/VRM 3D角色展示、主动感知对话、机器人控制等功能。

webui去除了机器人控制,专注PC浏览器体验,可以直接创建docker容器提供web服务。

屏幕截图 2026-05-05 111218

功能特性

  • 广泛的开源AI生态:对接多种云端/局域网/本地大语言模型、多模态模型、语音合成大模型,兼容OpenAI标准API。
  • 声纹识别语音交互:通过SenseVoice本地ASR引擎实现实时语音识别,还支持3D-Speaker声纹识别和Audio Tagging音频事件检测。
  • 多模态图像识别:支持摄像头内容的多模态图像理解问答、人脸识别、手势识别和物体检测。
  • 本地知识库:对接局域网AnythingLLM、局域网/本地Dify聊天助手提升虚拟伙伴的理解与回应精度。
  • 多设备全平台访问:在Linux主机上运行后,局域网内的设备(如电脑、手机、平板)可通过浏览器展示虚拟伙伴。
  • 多Agent智能体:支持联网搜索、新闻查询、天气查询、Home Assistant智能家居控制等智能体,可自定义扩展function.py实现更多功能。
  • 主动感知引擎:虚拟伙伴可主动发起对话,基于时间、天气、新闻、摄像头画面等内容选择话题。
  • 丰富的虚拟形象:支持Live2D、MMD 3D、VRM 3D三种类型的虚拟角色展示,具有口型同步和肢体动画。
  • 智能记忆管理:支持对话历史记忆,可自动优化存储,避免内存溢出。

webui功能

  • 角色形象与聊天框同屏:直接在主页就能看到虚拟角色
  • 历史会话列表:左侧可以存储历史会话
  • 会话导航:会话导航可以查找会话内的历史对话
  • 附件上传:文档、图片、摄像头拍照
  • Qwen3-TTS:支持Qwen3-TTS语音模型生成语音

大语言模型角色扮演

  1. 智谱云
    • 支持GLM-4.7-Flash等模型。
  2. OpenAI兼容(以下仅列举免费模型,可自由寻找其他模型)
    • 支持配置在NEWAPI中的所有LLM。
  3. 本地/局域网
    • Ollama:在本地部署和使用模型,无网环境畅玩。
    • Dify:支持本地知识库,实现更优角色扮演聊天。
    • RKLLM:对接RKLLM整合包服务器,支持调用RK3588/3576的NPU加速推理。
  4. 局域网
    • LM Studio:对接局域网内本地部署的模型。
    • AnythingLLM:支持本地知识库,实现更优角色扮演聊天。(没测试过,改完UI就上传了)

感知输入模块

  1. 文字输入:通过命令行输入文字与虚拟伙伴进行交互。
  2. 语音感知:浏览器麦克风输入,支持VAD自动断句和按键语音录制。
  3. 图像感知:浏览器摄像头拍照。
  4. 系统状态:没啥用,webui隐藏了。

反馈输出模块

  1. 文字输出:在命令行中显示虚拟伙伴的回答和相关信息。
  2. 语音合成
    • 云端:对接云端edge-tts、自定义TTS语音合成。
    • 局域网:支持GPT-SoVITS、CosyVoice、Qwen-TTS、Index-TTS、VoxCPM整合包大模型引擎。
    • 本地内置:内置VITS-ONNX引擎(sherpa-onnx库)。
    • 原版写死了edge-tts,我开放出来全部自定义模型
  3. 虚拟形象展示
    • Live2D:基于PixiJS的2D角色展示,支持口型同步。
    • MMD 3D:基于Three.js的3D角色展示,支持模型和动作播放。
    • VRM 3D:基于Three.js和VRM标准的3D角色展示,支持丰富的互动动画。

处理识别模块

  1. 文字处理:对用户输入的文字进行解析和处理,提取关键信息,调用相应的功能模块。
  2. 语音识别
    • 引擎:使用SenseVoice模型(sherpa_onnx库)作为语音识别引擎,支持高准确率多语言语音转文字功能。
    • 模式:支持实时语音模式和自定义唤醒词模式,用户可根据使用场景选择合适的模式。
  3. 声纹识别:利用campplus模型(sherpa_onnx库)实现用户声纹识别功能,用户可将自己的声纹放入指定文件夹,虚拟伙伴仅回复用户语音。
  4. 音频事件检测:识别环境中的特定声音事件,如口哨声、敲门声、动物叫声、交通环境音等。
  5. 图像识别:整合多种图像识别引擎,如智谱云的GLM-4.6V-Flash、局域网的Ollama VLM、LM Studio、本地的集成YOLO-OCR-LLM以及OpenAI兼容的相关模型,实现对图像中物体、场景、文字等内容的识别和分析。
  6. 人脸识别:利用face_recognition库实现人脸识别功能,用户可录入人脸信息,虚拟伙伴能够识别用户身份。(可能被我删了)

Web界面

  1. 主机状态网页:并集成AI聊天功能。
  2. Live2D角色网页:采用Flask+PixiJS+Live2D技术,提供Live2D角色展示界面。
  3. MMD 3D角色网页:采用Flask+ThreeJS+MMD技术,实现MMD角色展示和动作播放界面。
  4. VRM 3D角色网页:采用Flask+ThreeJS+VRM技术,实现VRM角色展示和互动界面。
  5. 系统设置网页:可对AI引擎、大模型、语音、图像、知识库、机器人接口等参数进行配置。

智能体

  1. 网络API类:提供热搜新闻查询、天气查询、联网搜索等功能。
  2. 智能家居控制:对接Home Assistant API,实现对灯类智能家居设备的控制。
  3. 主动感知对话:基于时间、天气、新闻等内容主动发起对话。

安装指南

环境要求

  • 操作系统:随意,直接docker 容器部署
  • Python版本:3.12,写进dockerfile了,自己改
  • 处理器:无,只要你能跑docker就行
  • 内存:随便
  • 存储空间:随便
  • 网络:随便
  • 麦克风:浏览器麦克风输入
  • 摄像头:浏览器摄像头输入

下载和安装

版本说明

  • **main:无agent简洁版本。
  • **v1.00.1:强制调用原版机器人控制自带的agent,不稳定版。

安装方法

  1. 下载项目:
git clone https://github.com/morphishk/aivmate-webui.git
cd aivmate-webui
  1. 安装docker容器:
docker compose build --no-cache
docker compose up -d

使用方法

  • 端口:3000:open-code-webui,需要什么功能自己接入AI改造
  • 端口:5260:nginx 反代,不会暴露容器IP,详情看docker-compose.yml
  1. 下载必备AI模型包: 从网盘下载必备AI模型包model.zip,解压后放入data/model文件夹

测试硬件接口

系统设置页面中,可以对浏览器设备(麦克风、摄像头、声音)进行测试。

后续在系统设置网页中配置相应参数。

运行项目

  1. 项目启动后,在命令行中会显示相关提示信息,包括:

    • 主机状态网址
    • 2D、3D角色网址
    • 系统设置网址
  2. 用户可通过浏览器先访问主机状态网址,然后在右上角的功能菜单访问其他功能界面,同时可通过语音或文字与虚拟伙伴进行交互。

项目结构

ai_virtual_mate_linux/
├── data/                    # 数据文件
│   ├── audio/               # 音效文件
│   ├── cache/               # 缓存文件
│   ├── db/                  # 数据库文件
│       ├── config.json      # 用户配置文件
│       ├── config_default.json  # 默认配置模板
│   ├── docs/                # 文档资源
│   ├── image/               # 图片资源
│   ├── model/               # AI模型资源
│   ├── music/               # 本地音乐目录
│   └── voiceprint/          # 用户录制声纹目录
├── dist/                    # 静态资源
│   └── assets/              # Web资源文件
│       ├── image/           # 图片资源
│       ├── live2d_core/     # Live2D核心组件
│       ├── live2d_model/    # Live2D模型
│       ├── mmd_action/      # MMD动作
│       ├── mmd_core/        # MMD核心组件
│       ├── mmd_model/       # MMD模型
│       ├── vrm_core/        # VRM核心组件
│       └── vrm_model/       # VRM模型
├── test/                    # 测试程序文件夹
├── asr.py                   # 语音识别和声纹识别模块
├── function.py              # 功能函数模块
├── gesture.py               # 手势操控模块
├── live2d.py                # Live2D服务模块
├── llm.py                   # 语言模型模块
├── main.py                  # 主程序入口
├── mmd.py                   # MMD 3D服务模块
├── sport_quad.py            # 四足机器人运动控制
├── sport_ugv.py             # 四轮机器人运动控制
├── tts.py                   # 语音合成模块
├── vlm.py                   # 图像识别模块
├── vrm.py                   # VRM 3D服务模块
├── web_control_quad.py      # 四足机器人控制网页
├── web_control_ugv.py       # 四轮机器人控制网页
├── web_settings.py          # 系统设置网页模块
├── web_state.py             # 主机状态网页模块
├── websearch.py             # 联网搜索模块
└── requirements.txt         # Python第三方依赖列表
  • 改了很多,上面使原版的

使用说明

语音交互

  1. 实时语音模式

    • 确保麦克风正常连接且配置正确(在系统设置网页的语音识别中正确设置麦克风编号)。
    • 启动项目后,直接对着麦克风说话,虚拟伙伴会自动识别语音内容。当语音输入结束后,等待一段时间(默认为2秒,可在系统设置网页的语音识别中调整识别结束等待秒数),虚拟伙伴会对语音内容进行处理并做出回答。
  2. 自定义唤醒词模式

    • 在设置网页的AI引擎选择语音识别模式为自定义唤醒词,并在语音识别中设置为自定义的唤醒词(如"你好")。
    • 启动项目后,说出包含唤醒词的语音内容,虚拟伙伴会识别唤醒词后的语音内容,并进行处理和回答。

文字交互

在命令行中,根据提示输入文字信息,然后按回车键发送。虚拟伙伴会对输入的文字进行处理,并在命令行中显示回答内容,同时通过语音合成引擎进行语音播报。

功能指令

功能分类 指令关键词 具体指令示例 功能描述
基础交互
查询时间 "几点""时间""日期""几号" "现在几点了" 返回当前时间信息
播放音乐 "唱歌""放歌""跳舞" "唱一首歌" 播放本地音乐,可结合机器人跳舞
切换模式 "切换语音""切换主动" "切换语音模式" 切换语音识别或主动对话模式
感知查询
图像识别 "看到""画面""看看""看见" "你看到了什么" 使用摄像头分析画面内容
查询天气 "天气" "今天天气怎么样" 查询指定城市天气信息
查询新闻 "新闻" "今天有什么新闻" 获取并分析新闻热点
联网搜索 "搜索""查询""联网""查找" "搜索人工智能" 进行网络搜索并总结
系统状态 "状态""温度" "系统状态怎么样" 返回CPU、内存、温度等信息
网络信息 "网络""信号" "网络情况如何" 返回网络延迟和信号强度
智能家居
灯光控制 "开灯""关灯" "打开灯光" 控制Home Assistant智能灯具
人脸识别
录入人脸 "录入人脸" "录入人脸我是xxx" 拍摄并保存人脸信息
删除人脸 "删除人脸" "删除人脸" 删除最新录入的人脸
身份识别 "我是谁" "我是谁" 识别当前用户身份
机器人控制
基础移动 "前进""后退""左转""右转" "向前走" 控制机器人移动
急停 "停止""停下" "停止移动" 紧急停止机器人
自动避障 "避障" "开始避障" 启动自动避障模式(四轮)
自由活动 "自由活动" "自由活动" 启动自主探索模式(四轮)
物体寻找 "寻找"+物体名 "寻找手机" 自动寻找指定物体
人物跟随 "跟着""跟随""紧跟" "跟着我" 启动人物跟随模式
手势控制 "打开手势""关闭手势" "打开手势控制" 开启/关闭手势识别控制
肢体动作 "蹲""手""跳" "蹲下""握手""跳跃" 触发肢体动作(四足)
系统管理
查询设置 "设置""配置""模式" "当前设置是什么" 查询当前软件的设置
删除记忆 "确认删除记忆" "确认删除记忆" 清空对话历史记忆
退出程序 "确认退出" "确认退出" 安全退出应用程序
重启系统 "确认重新启动" "确认重新启动" 重启系统(需要权限)
关闭系统 "确认关机" "确认关机" 关闭系统(需要权限)
  • 以上大部分功能都没有

故障排除

常见问题

  1. 麦克风无法识别

    • 检查语音识别中的麦克风编号配置是否正确
    • 运行python test/mic_test.py测试麦克风
    • 确保没有其他程序占用麦克风设备
  2. 摄像头无法打开

    • 检查图像识别中的摄像头编号配置是否正确
    • 运行python test/cam_test.py测试摄像头
    • 确保摄像头驱动正常安装
  3. AI服务连接失败

    • 检查网络连接
    • 验证API密钥是否正确
    • 确认服务端状态和配额

日志查看

程序运行日志会显示在控制台,重要错误信息会有明确提示。

开发与扩展

添加新功能

  1. 对话框全屏
  2. AI伙伴直接主页展示
  3. 改了很多东西

自定义AI引擎

支持通过实现标准接口来集成新的AI引擎:

  • 新的LLM引擎需可在chat_llm函数中实现
  • 新的TTS引擎需要集成到play_tts函数中
  • 新的VLM引擎需要在vlm.py中添加实现

开源协议

本项目采用 GPL-3.0 开源协议,详情请参阅 LICENSE 文件。

致谢

联系开发者团队

如有任何问题或建议,请联系开发者团队:

About

modify by MewCo-AI/ai_virtual_mate_linux

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages