前言

RustPBX 是一个高性能的媒体处理引擎,为构建语音智能体而设计。

语音智能体架构

一般 Agent 直接以文本和大模型交互,而语音智能体输入输出都是语音。主要有两种做法:

  • 端到端架构:直接以语音作为输入输出。延迟低,且具备多模态理解能力。
  • 链式架构:将语音转换为文本,交给大模型处理,再将文本转换为语音播放。

其中端到端大模型价格昂贵(文本模型的至少 10 倍以上),且工具调用复杂。

链式架构由于是纯文本交互,输出更加可控,可以灵活选择音色,工具调用更为简单。

Agent

如何使用 SDK

客户端使用 WebSocket 连接到服务端,使用 命令/事件 模式交互:

Event

通话控制

客户端发送 命令 到 RustPBX,控制通话行为。例如:

  • 通过 Invite 命令发起呼叫
  • 通过 Hangup 命令挂断呼叫
  • 通过 TTS 命令播放文字

事件通知

RustPBX 通过 WebSocket 连接发送 事件 到客户端,通知通话状态变化和请求处理结果。例如:

  • 通过 AsrFinal 事件通知语音识别结果
  • 通过 Speaking 事件通知是否在说话
  • 通过 Hangup 事件通知对方挂断

更多内容