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許可リスト)がある場合は、disable_auth=Trueを渡してJWT検証をスキップできます。
認証を無効にすると、サーバーは到達可能なすべてのクライアントを受け入れ、起動時にUserWarningを出力します。
disable_auth=Trueは、サーバーの前段にIP許可リスト、カスタムヘッダー値、または同等の
ネットワークレベルの制限がある場合にのみ使用してください。これらがないと、インターネット上の誰でも
セッションを開き、コンピューティングリソースや下流のLLMクォータを消費できます。
verify_request
受信リクエストがElevenLabs Speech Engine APIから送信されたものであることを検証します。APIキーのSHA-256ハッシュで署名された有効なJWTが、X-Elevenlabs-Speech-Engine-Authorizationヘッダーに含まれているか確認します。
WebSocketのアップグレードを自分で管理する場合にのみ必要です。serve()を使用する場合、検証は自動的に処理されます(disable_auth=Trueが設定されている場合を除く)。
戻り値:bool — リクエストが有効な場合はTrue。
create_session
受け入れたWebSocketをSpeechEngineSessionでラップします。カスタムサーバーとのインテグレーション(例:FastAPI、Starlette、またはWebSocketの手動処理)に使用します。
戻り値:SpeechEngineSession
SpeechEngineSession
単一のWebSocket接続をラップします。各接続は1つの会話を表します。セッションは文字起こしとライフサイクル変更のイベントを発行し、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はシリアライズとデシリアライズを自動的に処理します。