commit_strategy=manual で使用している ElevenLabs Realtime Speech to Text からの移行について説明します。
すべての移行ガイド
すでに Cartesia SDK を使用している場合は、バージョン
>=3.2.0 にアップグレードしてください接続
ElevenLabs の WebSocket URL と認証ヘッダーを Cartesia の/stt/websocket に置き換えます。
cartesia_version クエリパラメーターとして渡し、API キーの代わりに access_token クエリパラメーターで短命のアクセストークンを使用してください。
Cartesia SDK で手動ファイナライズ用の WebSocket に接続します。
クエリパラメーター
encoding
encoding
ElevenLabs はサンプル形式とレートを 1 つの
Cartesia のすべてのエンコーディングは、すべてのサンプルレートに対応しています。
audio_format トークンにまとめています。Cartesia はこれらを encoding と sample_rate に分けています。Cartesia は
pcm_s32le、pcm_f16le、pcm_f32le、pcm_alaw も受け付けます。Cartesia のすべてのエンコーディングは、すべてのサンプルレートに対応しています。
音声の送信
ElevenLabs は各音声チャンクを JSON 形式のテキストフレームでラップし、音声バイトを base64 エンコードします。Cartesia は音声チャンクをバイナリフレームとして受け取ります。生の音声バイトを直接送信してください。
Cartesia の制御コマンドは JSON ではなく、プレーンなテキストフレームです。 バッファ済みの音声をコミットし、セッションを終了せずにトランスクリプトを出力するには、
- 以前のテキストを渡す必要はありません
- サンプルレートは接続時に
sample_rateクエリパラメーターによって決定されます
finalize フレームを送信します。
残りのすべての音声をコミットしてセッションを閉じるには、
close フレームを送信します。
SDK での音声の送信
送信前に base64 エンコードされた音声をデコードする
コミットとクローズ
イベントのマッピング
Scribe は中間のpartial_transcript イベントを送信し、コミットすると committed_transcript を送信します。Cartesia は
transcript デルタに加えて、finalize および close コマンドの確認応答を送信します。
確定トランスクリプト
Scribe のcommitted_transcript は、直前のコミット以降のセグメントの完全なテキストを保持します。
transcript イベントになります。
続いて Cartesia の
- Ink 2 はまだ
durationやwordsを返しません- Ink 2 と Whisper は現在、確定トランスクリプト(
is_final: true)のみを送信します
flush_done イベントが送信されます。
flush_doneおよびdoneイベントのis_finalプロパティは無視してください
サーバーメッセージの例
Scribe は完全なトランスクリプトを送信します。Ink はデルタを送信し、単語の途中で区切ることがあります。
リファレンス
API リファレンス
Cartesia Realtime STT (Manual)
完全なコード例
Cartesia SDK を使用