bolna-ai/bolna
Conversational voice AI agents
它解决的问题
从头开始构建语音助手需要拼接许多部分:接听电话、转录语音、运行 LLM 决定说什么、合成语音并实时流式传输。Bolna 为您处理这种编排,因此您可以使用简单的 JSON 配置或几行 Python 定义完整的语音代理,并接入您已经在使用的语音、语言和电话提供商。
工作原理
Bolna 将对话管道作为数据流通过 WebSocket 运行。音频从电话提供商(Twilio、Plivo 等)传入,由 ASR 提供商(Deepgram、Azure 或自托管服务)转录,转录文本发送给 LLM(OpenAI、DeepSeek、Llama、Mistral 等,通过 LiteLLM),模型的响应由 TTS 提供商(ElevenLabs、AWS Polly、OpenAI 等)转换为语音并流式传回给呼叫者。您通过为每个阶段选择提供商和模型来定义代理,Bolna 将它们连接起来。README 展示了一个最小的 Python 示例,该示例创建了一个 Assistant,添加了一个包含转录器、LLM 代理和合成器的对话任务,然后将其作为异步块流执行。对于电话呼叫,本地 Docker 设置提供了电话服务器、Bolna 服务器、用于隧道的 ngrok 和用于持久化代理数据的 Redis。
适用人群
适用于希望快速构建基于语音的对话助手(电话支持机器人、语音界面或任何通过电话与人交谈的自动化)的开发者和团队。它适合那些想要一个开源编排层,可以自己运行、扩展新提供商,或将其用作自己的托管或企业解决方案骨干的人。
亮点
- 提供商无关:混合搭配 ASR、LLM 和 TTS 提供商,无需更改代理逻辑。
- 流式优先:音频和文本异步流动,实现实时交互。
- 简单 API:用几行 Python 定义代理,或通过 JSON 配置。
- 本地 Docker 设置,提供完整的电话测试环境。
- 可扩展:通过扩展基类添加新的电话或语音提供商。
- 活跃社区:MIT 许可,欢迎 PR,并有 Discord 频道。
相关
- 项目
- 项目
- 项目
- 项目
- 项目