Asterisk AI语音代理 v3.0 这是一个开源的AI语音代理,通过Asterisk REST接口(ARI)与Asterisk/FreePBX集成。它采用生产就绪的双容器架构,具有混合ARI呼叫控制、SessionStore状态管理、ExternalMedia RTP集成,用于可靠的实时音频捕获,以及基于文件的TTS回放,确保稳健的对话处理。
🌟 为什么选择Asterisk AI语音代理?
这个项目旨在成为Asterisk最强大、最灵活、最易用的开源AI语音代理。以下是其特点:
Asterisk原生:无需外部电话供应商。直接与您现有的Asterisk/FreePBX安装配合工作。
真正开源:整个项目都是开源的(MIT许可),为您提供完全的透明度和控制权。
混合AI:在云端和本地AI提供商之间无缝切换,让您体验两者的最佳优势。
生产就绪:这不仅是个演示,而是经过实战检验的生产就绪解决方案。 成本效益高:使用本地AI,您可以拥有可预测的成本,无需按分钟付费。
✨ 功能
模块化AI提供商:轻松在云端和本地AI提供商之间切换
✅ Deepgram语音代理:完全实现,提供强大的基于云的解决方案。
✅ OpenAI实时功能:开箱即用——只需在.env文件中设置OPENAI_API_KEY并选择OpenAI模板/提供商。
✅ 本地AI服务器:专用容器运行本地模型(Vosk用于STT,Llama用于LLM,Piper用于TTS),确保完全控制和隐私。
高性能架构:精简的ai-engine用于呼叫控制,独立的local-ai-server用于繁重的AI处理,确保稳定性和可扩展性。
混合ARI架构:使用ARI进行呼叫控制,采用"接听来电→创建混合桥→添加来电者→创建ExternalMedia并添加到桥"流程。
SessionStore状态管理:集中化、类型化的存储,用于所有呼叫会话状态,替代传统基于字典的状态管理。
实时通信:通过ARI指令的基于文件的回放,从Asterisk捕获ExternalMedia RTP上游;engine↔AI服务器使用WebSocket通信。
基于Docker的部署:使用Docker Compose进行简单的两服务编排。
可定制:在简单的YAML文件中配置问候语、AI角色和语音个性。
🚀 快速入门 按照这3个步骤获取工作正常的代理。
git clone https://github.com/hkjarral/Asterisk-AI-Voice-Agent.git
cd Asterisk-AI-Voice-Agent
./install.sh
在提示时选择配置模板。安装程序将设置媒体路径符号链接,并可选择启动服务。
验证健康状况 curl http://127.0.0.1:15000/health 预期看到"audiosocket_listening": true。
FreePBX拨号计划(AudioSocket优先):添加docs/FreePBX-Integration-Guide.md中的上下文(from-ai-agent等),然后将测试呼叫路由到该上下文。 Hello World测试(可选,本地AI):
python3 tests/test_local_ai_server_protocol.py # 在local-ai-server运行的情况下 应报告3/3测试通过。
OpenAI实时快速入门(仅云端) 如果您希望开箱即用OpenAI实时功能:
在./install.sh期间,在提示时选择OpenAI模板(它会将config/ai-agent.openai-agent.yaml写入config/ai-agent.yaml)。
在.env中添加您的API密钥:
echo "OPENAI_API_KEY=sk-..." >> .env
仅启动引擎(无需本地模型):
docker-compose up -d ai-engine
按FreePBX指南中的说明路由测试呼叫。
Asterisk 18+或FreePBX 15+,启用ARI。
已安装Docker和Docker Compose。
Git用于克隆存储库。
先决条件检查 验证必需的Asterisk模块已加载:
asterisk -rx "module show like res_ari_applications"
asterisk -rx "module show like app_audiosocket"
预期两者都显示Status: Running。如果Asterisk < 18,请升级或在FreePBX Distro上运行:asterisk-switch-version(又名asterisk-version-switch)以选择18+。
示例输出:
Module Description Use Count Status Support Level res_ari_applications.so RESTful API module - Stasis application 0 Running core 1 modules loaded
Module Description Use Count Status Support Level app_audiosocket.so AudioSocket Application 20 Running extended 1 modules loaded
合作伙伴:
友情链接:
立即咨询