🎙️ 语音代理实时MCP SIP
   
生产准备就绪 实时语音AI代理 通过WebRTC流媒体、Azure OpenAI集成和电话功能。
✨ 特性
- 🎙️ 实时语音对话 使用AI(1-2s延迟)
- 🌐 基于浏览器的WebRTC -无需安装应用程序
- 🔧 函数调用系统 -AI可以执行工具和动作
- 📞 SIP电话就绪 -可扩展用于电话系统
- 🔒 基于安全令牌的身份验证 -API密钥从未向客户端公开
- 🎛️ 未来主义平视显示器界面 具有实时音频可视化功能
- 🌍 10个人工智能语音个性 -合金、灰烬、民谣、珊瑚、回声、鼠尾草、微光、诗句、马林、雪松
🚀 快速开始
先决条件
- Python 3.11+
- Azure OpenAI资源 实时API访问
- 带麦克风的现代网络浏览器
设置(2分钟)
Windows PowerShell:
# 1. Clone and navigate
git clone
cd voice-agent-realtime-mcp-sip
# 2. Create virtual environment with uv
uv venv
# 3. Activate virtual environment
.venv\Scripts\Activate.ps1
# 4. Install dependencies
uv pip install -r server/requirements.txt
# 5. Configure Azure OpenAI
cp .env.example .env
# Edit .env with your Azure OpenAI credentials
# 6. Start the server (keep venv activated)
uvicorn server.app:app --reload --port 8000
# 7. Open browser → http://localhost:8000
# Click "Connect" and start talking!Linux/macOS:
# 1. Clone and navigate
git clone
cd voice-agent-realtime-mcp-sip
# 2. Create virtual environment with uv
uv venv
# 3. Activate virtual environment
source .venv/bin/activate
# 4. Install dependencies
uv pip install -r server/requirements.txt
# 5. Configure Azure OpenAI
cp .env.example .env
# Edit .env with your Azure OpenAI credentials
# 6. Start the server (keep venv activated)
uvicorn server.app:app --reload --port 8000
# 7. Open browser → http://localhost:8000
# Click "Connect" and start talking!环境配置
# Required: Your Azure OpenAI settings
OPENAI_API_KEY=your_azure_openai_key
OPENAI_BASE_URL=https://your-resource.cognitiveservices.azure.com
MODEL=gpt-realtime
# Development settings
CORS_ORIGINS=http://localhost:8000,http://127.0.0.1:8000🏗️ 建筑
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ Web Browser │◄──►│ FastAPI Server │◄──►│ Azure OpenAI │
│ │ │ │ │ Realtime API │
│ • WebRTC Client │ │ • Token Minting │ │ │
│ • Audio UI │ │ • Tool Execution │ │ • Voice Processing │
│ • Visualizations│ │ • Static Hosting │ │ • AI Responses │
└─────────────────┘ └──────────────────┘ └─────────────────────┘关键创新:音频流 直接 浏览器↔ 通过WebRTC实现Azure OpenAI。服务器只提供身份验证令牌并执行工具,从不处理音频数据以获得最佳性能和安全性。
🎛️ 所得
未来派语音界面
- 实时音频可视化 带有动画戒指和EQ条
- 实时转录 显示用户和AI语音
- 10种声音个性 从中选择
- 赛博朋克风格的用户界面 带有扫描线和霓虹灯效果
函数调用系统
AI可以执行的内置工具:
create_ticket-生成支持票lookup_order-检查订单状态- 易于扩展 -添加自己的业务逻辑
电话就绪
- SIP webhook存根 用于Twilio/CPaaS集成
- 媒体流桥接 建筑
- DTMF和呼叫转移 准备
🛠️ 技术栈
| 组件 | 技术 | 目的 |
|---|---|---|
| 前端 | 香草JS+WebRTC | 实时音频流 |
| 后端 | FastAPI+Python | 令牌认证和工具执行 |
| 人工智能/语音 | Azure OpenAI实时API | 语音处理和响应 |
| 音频 | WebRTC+Web Audio API | 低频率流 |
| 包管理 | uv | 快速Python依赖管理 |
📁 项目结构
voice-agent-realtime-mcp-sip/
├── 📄 PROJECT_DOCUMENTATION.md # Comprehensive technical guide
├── 📄 README.md # This file
├── 📄 .env.example # Environment template
├──
├── 📁 client/ # Frontend application
│ ├── 📄 index.html # Voice interface
│ ├── 📁 scripts/
│ │ └── 📄 app.js # WebRTC client logic
│ └── 📁 styles/
│ └── 📄 main.css # Futuristic UI styling
├──
├── 📁 server/ # Backend application
│ ├── 📄 app.py # Main FastAPI server
│ ├── 📄 tools.py # Function calling endpoints
│ ├── 📄 sip_webhooks.py # Telephony integration
│ └── 📁 twilio/ # SIP provider examples
└──
└── 📁 .github/
└── 📄 copilot-instructions.md # AI coding guidelines🔧 定制
添加您自己的工具
# In server/app.py
@tool("your_tool_name")
def your_custom_tool(param: str) -> dict:
# Your business logic here
return {"result": "success"}修改用户界面
- 样式:编辑
client/styles/main.css - 语音选项:更新
client/index.html - 可视化:自定义
client/scripts/app.js
SIP集成
在中实现webhook处理程序 server/sip_webhooks.py 用于:
- 呼入呼叫路由
- 媒体流桥接
- DTMF处理
🔐 安全
- ✅ API密钥从未公开 到浏览器
- ✅ 短命代币 (60秒寿命)
- ✅ CORS保护 具有可配置的来源
- ✅ 直接音频流 (无服务器端音频处理)
🐛 故障排除
常见问题
| 问题 | 解决方案 |
|---|---|
| 连接失败 | 检查Azure OpenAI API密钥和型号名称 |
| 无音频 | 授予麦克风权限,确保生产中的HTTPS |
| 404错误 | 验证Azure资源区域(eastus2与swedencentral) |
| 语音错误 | 使用支持的语音:合金、灰烬、民谣、珊瑚、回声、鼠尾草、微光、诗歌、马林、雪松 |
调试模式
# Add to .env for detailed logging
DEBUG=true
LOG_LEVEL=DEBUG🚀 部署
地方发展
# Windows: Activate venv first, then run
.venv\Scripts\Activate.ps1
uvicorn server.app:app --reload --port 8000# Linux/macOS: Activate venv first, then run
source .venv/bin/activate
uvicorn server.app:app --reload --port 8000生产
- 需要HTTPS (WebRTC要求)
- 更新CORS_ORIGINS 对于您的域名
- 考虑限速 监测
- 水平扩展 带负载平衡器
🎯 用例
- 客户支持:24/7人工智能语音代理
- 语音助理:自定义业务应用程序
- 电话技术:PBX和呼叫中心集成
- 无障碍:语音优先接口
- 教育:语言学习和教程
📚 文档
🤝 贡献
- 遵循以下模式
.github/copilot-instructions.md - 使用
uv用于依赖关系管理 - 提交前测试语音连接
- 记录新工具和端点
📄 许可证
MIT许可证-请参阅 许可证 了解详情。
🙏 致谢
- Azure OpenAI 实时API
- 网页实时通信 实时通信社区
- 快速API 优秀的Python框架
______________________________________________________________________
🎙️ 准备好构建语音AI的未来了吗?
*内置❤️ 以及尖端的人工智能技术*
