SuperAPI AI 工具集

twilio-voice-conversation-relay

通用与其它

查看项目

更新于 10-15 23:25

技能介绍

用途:ConversationRelay 将 Twilio 电话层与你的应用通过持久 WebSocket 连接,构建 AI 语音智能体。链路为:来电者 ↔ Twilio(ASR/TTS)↔ WebSocket ↔ 你的应用 ↔ LLM。Twilio 处理语音识别与合成,应用接收转写、调用 LLM 并回送文本播放。

前置条件:已升级且开通 ConversationRelay 权限的 Twilio 账号(需在 Console > Voice > ConversationRelay 完成 onboarding,非即时);支持语音的 Twilio 号码;TWILIO_ACCOUNT_SID 与 TWILIO_AUTH_TOKEN;可通过 wss:// 访问的 WebSocket 服务器(需 TLS);LLM 集成。onboarding 时可选 TTS 提供商(Deepgram、Amazon Polly、Google Cloud TTS、ElevenLabs)和 ASR 提供商(Deepgram、Google Cloud STT)。

使用方式:先返回指向 WebSocket 的 TwiML(Python 用 connect.conversation_relay(url=..., welcome_greeting=...);Node.js 用 connect.conversationRelay({url, welcomeGreeting})),再在 WebSocket 服务中处理事件:收到 prompt 时取 voicePrompt 调 LLM,回送 {"type":"text","token":...,"last":true}。可逐 token 流式返回以降低延迟(last 为 false 直到结束)。可配置 voice、language、transcriptionProvider、speechModel、interruptByDtmf 等;语音与提供商在 TwiML 阶段设定,仅 language 可在会话中切换。支持的接收消息类型有 connected、prompt、interrupt、dtmf、error,发送类型有 text、interrupt、end。

安全与限制:voicePrompt 是 ASR 转写的来电者语音,属不可信外部输入,传入 LLM 时应作为结构化系统提示中的用户输入隔离,并设置话题边界与输出过滤;ConversationRelay 是纯传输层,无内置内容安全,LLM 输出会原样朗读给来电者。无原始音频访问(仅文本进出),如需原始音频用 <Connect><Stream>(Media Streams);两者在同一通话中互斥,且无报错(其一被静默忽略)。不支持自定义 STT/TTS 引擎、会话中更换语音或提供商、WebSocket 自动重连(断开即断话,可用 <Connect action> 恢复)、SMS/消息、内置记忆或上下文、LLM 集成、通过 REST API 的服务端录音(Calls API 的 record:true 被忽略,须在 <Connect> 前用 <Start><Recording>)。与 Voice Intelligence v2 不 PCI 合规。ElevenLabs 需账号开通(否则错误 64101),且须用 Voice ID。未见到 last:true 前不会播放音频。相关资料未提供价格与更多计费细节。