commit_strategy=vad で使用している ElevenLabs Realtime Speech to Text からの移行について説明します。
すべての移行ガイド
すでに Cartesia SDK を使用している場合は、バージョン
>=3.2.0 にアップグレードしてくださいInk 2 は現時点で英語のみをサポートしています。
今後数ヶ月のうちに他言語の追加を予定しています。
今後数ヶ月のうちに他言語の追加を予定しています。
接続
ElevenLabs の WebSocket URL と認証ヘッダーを、Cartesia の/stt/turns/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 は音声チャンクをバイナリフレームとして受け取ります。生の音声バイトをそのまま送信します。
- 以前のテキストを渡す必要はありません
- サンプルレートは接続時に
sample_rateクエリパラメーターによって決まります
SDK による音声の送信
送信前に base64 エンコードされた音声をデコードする
コミットとクローズ
イベントのマッピング
Scribe はpartial_transcript を発行し、その VAD がセグメントをコミットすると committed_transcript を発行します。
Cartesia は同じ情報をターンのライフサイクル(turn.start、turn.update、turn.eager_end、turn.resume、turn.end)にまとめています。完全なステートマシンについてはターン検出を参照してください。
部分トランスクリプト
ElevenLabs のpartial_transcript:
turn.update になります。
コミット済みトランスクリプト
ElevenLabs のcommitted_transcript:
turn.end になります。
サーバーメッセージの例
Scribe のトランスクリプトはスペースで結合されます。Ink のものは結合されません。
リファレンス
API リファレンス
Cartesia Realtime STT (Auto)
完全なコード例
Cartesia SDK を使用する