用途:Speech Engine 让你保留现有智能体(任意产出文本的 LLM/工作流),在其前面加装实时语音界面。ElevenLabs 云端负责麦克风到 LLM 调用之间的全部环节,你的服务器只处理“转写文本进、回复文本出”。
主要能力:提供 WebSocket 服务端(TypeScript 的 speechEngine.attach()、SpeechEngine.Server;Python 的 engine.serve()、engine.create_session()),以及客户端库 @elevenlabs/react、@elevenlabs/client、@elevenlabs/react-native。支持 STT、VAD、轮次检测、TTS、打断(barge-in)与全双工对话。
使用方式:四部分——服务端 WebSocket 端点接收转写并流式返回文本;仪表盘创建 Speech Engine 并记录 seng_* ID、设置服务器 URL、选择语音与 TTS 模型;客户端通过 WebRTC 连接 ElevenLabs;服务端生成短期签名 URL 作为鉴权桥。示例:elevenlabs.speechEngine.attach("seng_123", httpServer, "/api/speech-engine/ws", {...}),客户端用 ConversationProvider 与 startSession({ signedUrl })。
适用场景:为已有聊天智能体、LangGraph 工作流等添加语音交互;浏览器或 React Native 移动端。
限制与注意:transcript[i].role 为 'user' | 'agent',转发给 OpenAI/Anthropic/Gemini 时需映射 agent→assistant;TypeScript 必须向 LLM 调用传 { signal },Python 需让 asyncio.CancelledError 传播;切勿把 ELEVENLABS_API_KEY 放入客户端,令牌有效期 15 分钟;VAD 阈值、打断灵敏度等在仪表盘配置而非代码;React Native 需 Expo dev build;本地开发需 ngrok 等隧道;语音/模型选择影响延迟。Engine ID 为 seng_,Agent ID 为 agent_,两者不可互换。