基于GPT+Langchain Agent实现的智能语音管家
2024/7/13...大约 2 分钟
基于GPT+Langchain Agent实现的智能语音管家
我用GPT+Langchain Agent制作了一个智能管家,结合微软的语音服务,实现了语音唤醒,语音对话,语音控制智能家居的功能。本文来详细介绍下实现原理,代码已经放在Github上开源,供学习交流。
GitHub链接:mawwalker/moss, 如果觉得有帮助,欢迎给个star。
项目概述
Moss 是一个智能语音助手,结合了现代 AI 技术,支持离线关键词唤醒、实时语音识别、智能对话和语音合成。项目采用模块化设计,集成了多种先进的 AI 服务,包括 Home Assistant MCP 模块,为用户提供自然流畅的语音交互体验。
主要功能
🎯 离线关键词唤醒
- 完全离线的关键词检测
- 可定制的唤醒词(支持中英文)
- 高效的 sherpa-onnx 模型
- 低功耗持续监听
🗣️ 实时语音识别
- 基于 WebSocket 的实时语音转文字服务
- 高精度语音识别
- 流式识别,快速响应
🤖 智能对话 Agent
- 基于 Langchain Agents 的可扩展架构
- 支持多种工具和技能
- 天气查询、智能家居控制等
- 易于添加自定义工具
🏠 Home Assistant 集成
- 基于 MCP(Model Context Protocol)的智能家居控制
- 与 Home Assistant 系统无缝集成
- 设备状态查询和控制
- 语音控制智能家居设备
🎵 高质量语音合成
- 基于 IndexTTS 的先进 TTS 技术
- 自然流畅的语音输出
系统架构
┌──────────────────┐ ┌───────────────────┐ ┌─────────────────┐
│ Keyword Detection│───▶│ Speech Recognition│───▶│ LLM Processing │
│ (Offline KWS) │ │ (Realtime STT) │ │ (Langchain) │
└──────────────────┘ └───────────────────┘ └─────────────────┘
│
┌─────────────────┐ ┌──────────────────┐ │
│ Audio Playback │◀───│ Speech Synthesis │◀─────────────┘
│ (Audio Player) │ │ (IndexTTS) │
└─────────────────┘ └──────────────────┘
┌─────────────────┐
│ Home Assistant │
│ MCP Module │
└─────────────────┘
快速开始
环境要求
- Python 3.12+
- Linux/macOS/Windows
- 音频设备(麦克风和扬声器)
- Home Assistant(可选,用于智能家居控制)
安装步骤
- 克隆仓库及子模块
git clone https://github.com/mawwalker/moss.git
cd moss
git submodule update --init --recursive
- 安装系统依赖(以 Ubuntu 为例)
sudo apt install portaudio19-dev python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg
- 安装 Python 依赖
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
配置
- 复制配置模板
cp .env.example .env
- 编辑配置文件,填写必要的 API 密钥和服务地址。
运行应用
python app.py
支持的命令行参数:
python app.py --help # 查看所有可用参数
python app.py --verbose # 启用详细日志
python app.py --keywords-file assets/keywords_en.txt # 使用英文关键词
总结
Moss 是一个功能强大的智能语音助手,支持多种语音交互功能,并且可以通过 Home Assistant 实现智能家居控制。如果你对这个项目感兴趣,欢迎访问 GitHub 仓库 查看更多信息。