语音助手

EcoCare是一款专为视障人士设计的AI语音助手,结合跌倒检测和多种语音驱动功能,提供独立生活支持。

  • by jermiah
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jermiah/yosoup

使用说明

EcoCare-面向视障人士的人工智能语音助手

5小时内建成。专为独立而设计。由语音驱动。

AI应该对所有人开放。EcoCare是一种边缘设备,将跌倒检测与语音驱动的人工智能代理相结合,为盲人和视障用户提供我们每天都能享受的独立性。


🌟 视觉

世界上有80多亿人,每个人都有不同的信息交互方式。 人工智能应该适应所有这些,而不是相反。

我们的责任是构建涵盖所有人的技术。这个项目是朝着让人工智能成为日常生活中负责任的存在迈出的一步,尤其是对残疾人来说。


✨ 特性

🎤 语音驱动的人工智能代理

除了声音,用户可以:

  • 📱 WhatsApp消息 -免提发送和接收信息
  • 📧 Gmail管理 -阅读电子邮件、撰写和发送
  • 🤖 生成式人工智能 -向Mistral LLM提问
  • 🔍 网络搜索 -由Brave Search提供技术支持
  • 📹 YouTube摘要 -获取视频记录和摘要
  • 📍 定位服务 -通过谷歌地图查看当前位置
  • 🗺️ 附近的地方 -探索餐厅、商店和服务
  • 🏠 Airbnb预订 -仅通过语音预订住宿

🛡️ 安全与独立

  • ⚠️ 跌倒检测 -基于加速度计的自动检测
  • 🚨 紧急通告 -通过WhatsApp和电子邮件自动向紧急联系人发送SOS
  • 📄 法律文件助理 -强调合同中的关键点以防止剥削
  • 🌐 完全独立 -在没有帮助的情况下旅行、交流和学习

🏗️ 技术栈

前端

  • 反应18.3 -现代、易用的用户界面
  • 快6.0 -闪电般的快速发展
  • LiveKit客户端 -实时语音通信
  • 设备运动API -加速计用于跌倒检测

人工智能和语音

  • 米斯特拉尔法学硕士 (mistral-large-latest)-自然语言理解
  • ElevenLabs -高质量的文本转语音
  • 网络语音API -语音识别

MCP服务器(共8台)

  1. WhatsApp MCP -Python+Go与WhatsApp Web集成
  2. Gmail MCP -带有IMAP/SMTP的TypeScript
  3. 勇敢搜索MCP -TypeScript网络搜索
  4. 困惑MCP -人工智能驱动的研究
  5. 谷歌地图MCP -地点和地点API
  6. Firecrawl MCP -网络抓取和内容提取
  7. YouTube转录MCP -视频转录检索
  8. Airbnb MCP -住宿预订

基础设施

  • 谷歌云运行 -无服务器MCP服务器托管
  • 吸烟 -WhatsApp网桥的安全隧道
  • 码头工人 -集装箱化部署
  • 快速API -用于MCP服务器的REST API

🎯 运作原理

┌─────────────────────────────────────────────────────────────┐
│                        iPhone Device                         │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  Accelerometer (Fall Detection)                      │   │
│  │  • Monitors motion continuously                      │   │
│  │  • Detects free-fall + impact patterns              │   │
│  │  • Triggers 10-second emergency countdown           │   │
│  └──────────────────────────────────────────────────────┘   │
│                           ↓                                  │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  Voice Interface (LiveKit + Speech Recognition)      │   │
│  │  • User speaks commands                              │   │
│  │  • Mistral LLM processes intent                      │   │
│  │  • Routes to appropriate MCP server                  │   │
│  │  • ElevenLabs speaks response                        │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                   Cloud Run MCP Servers                      │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐            │
│  │ WhatsApp   │  │   Gmail    │  │   Brave    │  ...       │
│  │    MCP     │  │    MCP     │  │  Search    │            │
│  └────────────┘  └────────────┘  └────────────┘            │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│              ngrok → WhatsApp Bridge (Local)                 │
│  • Maintains WhatsApp Web connection                         │
│  • Stores session data securely                              │
│  • Exposes API via ngrok tunnel                              │
└─────────────────────────────────────────────────────────────┘

🚀 快速开始

先决条件

  • Node.js 18+ (前端)
  • Docker&Docker编写 (适用于MCP服务器)
  • 转到1.25+ (适用于WhatsApp桥接器)
  • gcc/TDM-gcc (Windows)用于构建WhatsApp桥
  • 苹果手机 (用于加速计和语音输入)
  • 谷歌云帐户 (用于云运行部署)

1.克隆存储库

git clone https://github.com/jermiah/yosoup.git
cd yosoup

2.设置WhatsApp网桥

cd whatsapp-mcp/whatsapp-bridge
go run main.go

使用WhatsApp移动应用程序扫描二维码。

3.设置ngrok

ngrok http 8082
# Copy the forwarding URL (e.g., https://abc123.ngrok-free.app)

4.将MCP服务器部署到云端运行

gcloud run deploy whatsapp-mcp \
  --source ./whatsapp-mcp/whatsapp-mcp-server \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars WHATSAPP_BRIDGE_URL=https://your-ngrok-url.ngrok-free.app

对其他MCP服务器(Gmail、Brave Search等)重复此操作。

5.配置前端

创建 .env:

VITE_MISTRAL_API_KEY=your_mistral_api_key
VITE_ELEVENLABS_API_KEY=your_elevenlabs_api_key
VITE_EMERGENCY_PHONE=+1234567890
VITE_EMERGENCY_EMAIL=emergency@example.com

# Cloud Run MCP URLs
VITE_WHATSAPP_MCP_URL=https://whatsapp-mcp-xxxxx-uc.a.run.app
VITE_GMAIL_MCP_URL=https://gmail-mcp-xxxxx-uc.a.run.app
# ... other MCP URLs

6.运行前端

npm install
npm run dev

7.在iPhone上测试

  1. 将iPhone连接到相同的Wi-Fi
  2. 获取计算机的IP: ipconfig (Windows)或 ifconfig (Mac/Linux)
  3. 在iPhone上打开Safari浏览器: http://YOUR_IP:3000
  4. 授予权限(运动、麦克风、位置)
  5. 添加到主屏幕以获得全屏体验

📱 用法示例

语音命令

WhatsApp

"Send a WhatsApp message to John saying I'll be there in 10 minutes"

Gmail:

"Read my latest emails"
"Send an email to boss@company.com about the meeting"

网络搜索:

"Search for Italian restaurants near me"
"What's the weather today?"

油管

"Summarize the latest video from TechCrunch"

地点:

"Where am I right now?"
"Find coffee shops nearby"

Airbnb

"Find Airbnb listings in San Francisco for next weekend"

跌倒检测

  1. 设备持续监测加速计
  2. 检测自由落体模式(<0.6g)和冲击(>3.2g)
  3. 显示带有取消选项的10秒倒计时
  4. 如果未取消,则发送紧急警报:
    • WhatsApp消息发送给紧急联系人
    • 发送电子邮件至紧急联系人
    • 包括位置和时间戳

🏗️ 建筑

前端(React+Vite)

src/
├── hooks/
│   └── useFallDetection.js       # Accelerometer monitoring
├── services/
│   ├── livekitService.js         # Voice communication
│   └── mcpService.js             # MCP server client
├── components/
│   ├── EmergencyAlert.jsx        # Fall detection UI
│   ├── VoiceInterface.jsx        # Voice assistant UI
│   └── PermissionsHandler.jsx    # iOS permissions
└── App.jsx

MCP服务器(云运行)

whatsapp-mcp/           # WhatsApp messaging
Gmail-MCP/              # Email management
brave-search-mcp/       # Web search
modelcontextprotocol/   # Perplexity AI
google-maps-mcp/        # Location services
firecrawl-mcp/          # Web scraping
mcp-youtube-transcript/ # YouTube summaries
mcp-server-airbnb/      # Accommodation booking

WhatsApp桥(本地+韩国)

whatsapp-mcp/whatsapp-bridge/
├── main.go              # WhatsApp Web client
├── store/               # Session persistence
└── Dockerfile           # Container config

🎬 演示流程

  1. 用户佩戴设备 -iPhone放在口袋或包里
  2. 用户发言: “发送WhatsApp给妈妈,说我安全抵达”
  3. 设备进程:
    • 语音识别捕获命令
    • Mistral LLM提取意图: send_whatsapp(to="Mom", message="I arrived safely")
    • 云端运行WhatsApp MCP服务器的路由
    • MCP通过ngrok呼叫网桥
    • Bridge发送WhatsApp消息
  4. 设备响应: “发送给妈妈的消息” (通过ElevenLabs TTS)

跌倒检测:

  1. 用户绊倒
  2. 加速计检测自由落体+冲击
  3. 10秒倒计时开始: “检测到坠落!如果您没事,请按取消”
  4. 如果没有响应,则自动发送紧急警报
  5. WhatsApp和电子邮件发送位置: "🚨 紧急情况:在[GPS坐标]处检测到坠落

📚 文档


🗺️ 路线图

第一阶段:核心功能✅

  • [x] 使用加速计进行跌倒检测
  • [x] 带有LiveKit的语音接口
  • [x] WhatsApp集成
  • [x] Gmail集成
  • [x] 网络搜索功能
  • [x] 紧急警报系统

第二阶段:增强安全性🚧

  • []多触点应急级联
  • []位置跟踪历史记录
  • []医疗信息快速访问
  • []坠落模式分析
  • []假阳性减少

第三阶段:扩展服务📋

  • []优步/Lyft乘车预订
  • []食品配送订购
  • []日历管理
  • []用药提醒
  • []新闻简报

第四阶段:社区与学习🌱

  • []对等协助网络
  • []教育内容库
  • []技能培养教程
  • []社区论坛整合
  • []志愿者联系系统

第五阶段:先进的人工智能🤖

  • []上下文感知响应
  • []主动建议
  • []习惯学习
  • []个性化语音配置文件
  • []多语言支持

🔒 安全与隐私

  • 本地处理:设备上运行跌倒检测
  • 加密会话:WhatsApp使用端到端加密
  • 无数据存储:未记录语音命令
  • 用户控件:紧急警报需要确认
  • 会话保持:WhatsApp会话仅存储在本地

⚠️ 重要免责声明

仅用于开发/演示

此应用程序用于演示目的。在真正的紧急情况下:

  • ✅ 直接拨打紧急服务电话(911、112等)
  • ✅ 不要仅仅依赖自动化系统
  • ✅ 实际使用前彻底测试
  • ✅ 通知紧急联系人有关该系统的信息

WhatsApp服务条款

此实现使用WhatsApp Web协议供个人使用。对于生产/商业用途,请考虑:

无障碍合规性

虽然该项目是为无障碍而设计的,但它:

  • 设备运动API需要iOS 13+
  • 需要稳定的互联网连接
  • 需要API密钥(一些付费服务)
  • 最好用作辅助工具,而不是主要安全装置

🤝 贡献

我们欢迎捐款!该项目旨在让每个人都能使用人工智能。

优先领域:

  • 提高跌倒检测精度
  • 添加更多语言支持
  • 增强语音识别
  • 扩展MCP服务器集成
  • 文档改进

如何做出贡献:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

单个MCP服务器可能有自己的许可证。检查各自的目录。


🙏 致谢

内置:

  • 米斯特拉尔AI -自然语言理解法学硕士
  • ElevenLabs -文本到语音合成
  • LiveKit 的 -实时语音通信
  • 怎么回事 -WhatsApp Web客户端库
  • MCP社区 -模型上下文协议服务器

📞 支持

  • 问题: https://github.com/jermiah/yosoup/issues
  • 讨论: https://github.com/jermiah/yosoup/discussions
  • 文档:有关详细指南,请参阅文档文件夹

💡 更大的画面

这个项目不仅仅是关于代码。这是关于 责任.

技术应当:

  • ✅ 包括所有人,而不仅仅是大多数
  • ✅ 适应用户,而不是强制适应
  • ✅ 赋予独立性,不创建依赖关系
  • ✅ 尊重尊严,不利用漏洞

当我们构建人工智能时,我们不仅仅是在编写算法。我们正在塑造数十亿人如何与信息互动、与亲人沟通以及在他们的世界中导航。

AI应该对所有人开放。这是我们迈向未来的一步。


在黑客马拉松期间用5个小时建造。 设计寿命长。


仓库: https://github.com/jermiah/yosoup 版本: 1.0.0 最后更新: 2025-11-15

由以下材料制成❤️ 为了可访问性和独立性。