Skip to content

一个具备声纹身份感知、动态长期记忆和端云混合推理能力的智能语音助手框架。

Notifications You must be signed in to change notification settings

CHM00/Agent_ASR

Repository files navigation

🎙️ Identity-Aware Multimodal Voice Agent (M-RAG-Voice)

一个具备声纹身份感知动态长期记忆端云混合推理能力的智能语音助手框架。

Python Milvus ASR LLM

📖 项目简介

这是一个探索性的多模态语音交互系统。不同于传统的语音助手,该项目集成了声纹识别 (Speaker Verification)RAG (检索增强生成) 技术。它不仅能听懂“你在说什么”,还能识别“你是谁”,并根据不同用户的身份调用专属的长期记忆库(如饮食习惯、历史偏好),提供高度个性化的回答。

✨ 核心特性

  • 👥 多用户声纹识别: 集成 CAM++ 模型,支持 1:N 声纹匹配。自动区分“主人”与“访客”,支持语音指令注册新用户。
  • 🧠 动态进化记忆: 基于 Milvus 向量数据库构建用户画像。具备“冲突裁决”机制,自动利用 LLM 分析新旧记忆冲突,实现记忆的自我更新与修正。
  • ⚡ 端云混合架构:
    • 端侧 (Local): 运行高频、低延迟任务(VAD, ASR-SenseVoice, SV-CAM++, TTS)。
    • 云侧/端侧灵活性: LLM (DeepSeek/Qwen) 支持本地部署或 API 调用,平衡隐私与性能。
  • 🛠️ 智能意图路由: 能够区分闲聊、点餐(查询本地知识库)、联网搜索(Tavily)和系统指令。

🏗️ 系统架构

系统采用 Audio-Text-Audio 闭环架构,并嵌入了身份(Identity)层: Gemini_Generated_Image_vvj5vovvj5vovvj5(1)

📂 项目结构

.
├── Local_Model.py             # 模型加载器:单例模式管理 LLM, ASR, CAM++ 模型的加载
├── SpeakerManager.py          # 身份管理:处理声纹注册、加载与 1:N 匹配逻辑
├── SenseVoice_Agent_Brain.py  # 核心大脑:负责意图路由、RAG 检索、记忆提取与冲突更新
├── SenseVoice_Agent_Main.py   # 主程序:处理音频 I/O, VAD, 多线程调度与全流程控制
├── Milvus.py                  # 数据层:封装 Milvus 向量库的增删改查与 Embedding 操作
└── requirements.txt           # 项目依赖

🚀 快速开始

  1. 环境准备 确保你已安装 Python 3.10+,并拥有一个运行中的 Milvus 实例(Docker 或 Cloud)。
# 克隆仓库
git clone https://github.com/CHM00/Agent_ASR.git
cd Agent_ASR

# 安装依赖
pip install -r requirements.txt

推荐依赖: funasr, modelscope, pymilvus, openai, webrtcvad, pyaudio, pygame, edge-tts, tavily-python, transformers, torch

  1. 模型下载与配置 请修改 Local_Model.py 中的模型路径,指向你本地下载的模型权重:
# Local_Model.py
self.llm_model_path = r"path/to/your/Qwen"  # LLM 模型路径
self.funasr_model_path = r"path/to/SenseVoice" # ASR 模型路径
self.CAM_model_path = r"path/to/CAM++"      # 声纹模型路径
  1. 环境变量设置 在项目根目录创建 .env 文件,填入必要的 API Key 和数据库配置:
# LLM API (如使用 DeepSeek/Volcengine)
ARK_API_KEY=your_api_key
ARK_BASE_URL=[https://ark.cn-beijing.volces.com/api/v3](https://ark.cn-beijing.volces.com/api/v3)

# Milvus 向量数据库
URL=your_milvus_uri
Token=your_milvus_token

# 联网搜索工具
trivily_key=your_tavily_key
  1. 运行 启动主程序:
python SenseVoice_Agent_Main.py

💡 使用指南

  • 初次运行: 如果声纹库为空,系统会提示你进行注册。请根据语音提示录入“主人”的声音。
  • 唤醒: 对着麦克风说 “小明同学” (Xiao Ming Tong Xue) 即可唤醒助手。
  • 功能示例:
    • 记忆存储: "我以后不吃辣了,记住哦。" -> (系统更新数据库,删除旧的喜辣记忆)
    • 个性化问答: "我今天中午吃什么好?" -> (系统检索你的历史口味推荐)
    • 声纹注册: "我是张三,把我的声音录进去。" -> (触发注册流程)

⚠️ 注意事项

  • 硬件要求: 推荐使用 NVIDIA GPU 运行 ASR声纹模型以获得最佳延迟体验。Local_Model.py 会自动检测 CUDA。
  • 路径配置: 请务必检查 Local_Model.pySpeakerManager.py 中的绝对路径,确保其在你的机器上有效。

🤝 贡献

欢迎提交 Issue 和 PR!如果你有更好的记忆管理策略或更轻量的模型实现,请随时分享。

🙏 Acknowledgments

ASR-LLM-TTS (https://github.com/ABexit/ASR-LLM-TTS)

About

一个具备声纹身份感知、动态长期记忆和端云混合推理能力的智能语音助手框架。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages