Skip to main content
このガイドでは、commit_strategy=vad で使用している ElevenLabs Realtime Speech to Text からの移行について説明します。

すべての移行ガイド

このガイドには、素の API の説明と SDK コードの両方が含まれています。SDK をインストールするには次のようにします。
すでに Cartesia SDK を使用している場合は、バージョン >=3.2.0 にアップグレードしてください
Ink 2 は現時点で英語のみをサポートしています。
今後数ヶ月のうちに他言語の追加を予定しています。

接続

ElevenLabs の WebSocket URL と認証ヘッダーを、Cartesia の /stt/turns/websocket に置き換えます。
ブラウザでは、WebSocket はリクエストヘッダーをサポートしていません。代わりに、API バージョンを cartesia_version クエリパラメーターで渡し、API キーの代わりに短命のアクセストークンaccess_token クエリパラメーターで使用します。 Cartesia SDK を使って自動ファイナライズ WebSocket に接続します。

クエリパラメーター

ElevenLabs はサンプル形式とレートを 1 つの audio_format トークンにまとめています。Cartesia はこれらを encodingsample_rate に分けています。Cartesia は pcm_s32lepcm_f16lepcm_f32lepcm_alaw も受け付けます。
Cartesia のすべてのエンコーディングは、すべてのサンプルレートに対応しています。

音声の送信

ElevenLabs は各音声チャンクを JSON 形式のテキストフレームでラップし、音声バイトを base64 エンコードします。
Cartesia は音声チャンクをバイナリフレームとして受け取ります。生の音声バイトをそのまま送信します。
  • 以前のテキストを渡す必要はありません
  • サンプルレートは接続時に sample_rate クエリパラメーターによって決まります
現在 ElevenLabs でセッションの途中で音声をコミットしている場合は、代わりに Cartesia の手動ファイナライズの使用を検討してください。詳細については移行ガイドのページを参照してください。
すべての音声をコミットしてセッションを閉じるには、JSON 形式のテキストフレームを送信します。
Cartesia はバッファリングされたすべての音声を文字起こしした後、ソケットを閉じます。

SDK による音声の送信

送信前に base64 エンコードされた音声をデコードする

コミットとクローズ

イベントのマッピング

Scribe は partial_transcript を発行し、その VAD がセグメントをコミットすると committed_transcript を発行します。 Cartesia は同じ情報をターンのライフサイクル(turn.startturn.updateturn.eager_endturn.resumeturn.end)にまとめています。完全なステートマシンについてはターン検出を参照してください。

部分トランスクリプト

ElevenLabs の partial_transcript:
は Cartesia の turn.update になります。

コミット済みトランスクリプト

ElevenLabs の committed_transcript:
は Cartesia の turn.end になります。

サーバーメッセージの例

Scribe のトランスクリプトはスペースで結合されます。Ink のものは結合されません。

リファレンス

API リファレンス

Cartesia Realtime STT (Auto)

完全なコード例

Cartesia SDK を使用する