Python SDK 参考
Python SDK 参考
Speech Engine Python SDK 的类、方法和事件。
本页介绍 Speech Engine Python SDK(elevenlabs)的公开 API。
获取 Speech Engine 资源
通过引擎 ID 获取 SpeechEngineResource。返回的对象可用于启动服务器、验证请求或创建单个会话。
SpeechEngineResource
属性
serve
启动独立的 WebSocket 服务器,直到停止前会一直阻塞。
禁用身份验证
默认情况下,serve() 会验证每个传入连接的 X-Elevenlabs-Speech-Engine-Authorization 标头。如果服务器位于已将传入流量限制为 ElevenLabs 的基础设施层之后(通常是限定为 ElevenLabs 出站 IP 范围的 IP 允许列表),可通过传入 disable_auth=True 跳过 JWT 验证:
禁用身份验证后,服务器会接受任何能够访问它的客户端,并在启动时发出 UserWarning。
仅当服务器前方设有 IP 允许列表、自定义标头值或等效的网络级访问限制时,才使用 disable_auth=True。
否则,任何互联网用户都能打开会话,并消耗计算资源和下游 LLM 配额。
verify_request
验证传入请求是否来自 ElevenLabs Speech Engine API。检查 X-Elevenlabs-Speech-Engine-Authorization 标头中是否包含使用 API 密钥 SHA-256 哈希签名的有效 JWT。
仅当自行管理 WebSocket 升级时才需要使用。使用 serve() 时,系统会自动进行验证(除非设置了 disable_auth=True)。
返回: bool — 请求有效时为 True。
create_session
将已接受的 WebSocket 包装为 SpeechEngineSession。用于自定义服务器集成(例如 FastAPI、Starlette 或手动处理 WebSocket)。
返回: SpeechEngineSession
SpeechEngineSession
包装单个 WebSocket 连接。每个连接代表一段对话。会话会为转录文本和生命周期变更触发事件,并提供将 LLM 响应发送回去的方法。
收到新的转录文本时,之前的转录处理程序会自动取消,从而中断正在进行的 LLM 调用。
属性
on
为事件注册处理程序。返回会话以便链式调用。
off
移除之前注册的处理程序。
once
注册一个仅触发一次后便自行移除的处理程序。
send_response
将 LLM 响应发送回 Speech Engine API 进行文本转语音合成。必须在 on_transcript 处理程序内调用。在处理程序外调用会发出警告并直接返回,不会发送响应。
SDK 会自动检测并从以下 LLM 流格式中提取文本:
run
运行接收循环,直至 WebSocket 关闭。通过 create_session() 手动创建会话后,这是主要入口点。
close
关闭会话及底层 WebSocket 连接。
回调
传递给 serve() 的关键字参数。所有回调都是可选的。处理程序可以是同步或异步(协程)函数。
事件
直接使用 session.on() 而非回调时,以下为事件名称及其处理程序签名。
提供事件名称常量,支持类型安全的使用方式:
ConversationMessage
对话历史中的单条消息。每轮都会将完整转录文本传递给 on_transcript。
线协议
以下是通过 WebSocket 连接交换的 JSON 消息,供参考。SDK 会自动处理序列化和反序列化。