跳到主要内容

前言

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

语音智能体架构

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

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

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

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

语音识别
语音识别
语音输入
语音输入
语音生成
语音生成
文本请求
文本请求
AI SDK
AI SDK
语音输出
语音输出
文本响应
文本响应
大语言模型
大语言模型
链式架构
链式架构
Text is not SVG - cannot display

如何使用 SDK

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

RustPBX
RustPBX
UserAgent
UserAgent
语音
语音
电话
电话
SDK
SDK
媒体引擎
媒体引擎
TTS 命令
TTS 命令
ASR 事件

ASR 事件
LLM
LLM
Agent
Agent
Text is not SVG - cannot display

通话控制

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

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

事件通知

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

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

更多内容