Skip to main content
このガイドでは、Deepgram の Turn-based Audio (Flux) API からの移行を説明します。 Cartesia と Deepgram Flux はどちらも WebSocket 経由でターンベースのイベントを発行するため、Ink への移行は主にフィールド名の変更といくつかの接続パラメーターの更新だけで済みます。

すべての移行ガイド

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

接続

Deepgram の WebSocket URL と認証ヘッダーを Cartesia のものに置き換えます。
ブラウザでは、WebSocket はリクエストヘッダーをサポートしません。代わりに、API バージョンを cartesia_version クエリパラメーターで渡し、API キーの代わりに短命のアクセストークンaccess_token クエリパラメーターで使用してください。 Cartesia SDK でターン検出 WebSocket に接続します:

クエリパラメーター

ターン検出

turn_end_timeout_mseot_timeout_ms に直接相当します。 turn_eager_end_thresholdturn_end_thresholdeager_eot_threshold および eot_threshold と同様の機能を提供しますが、方向性が逆になっています。Deepgram では値が高いほど発火前により高い確信度を要求しますが、Cartesia では値が低いほど発火前により高い確信度を要求します。Deepgram の値をそのまま再利用しないでください。各しきい値の挙動、範囲、デフォルト値についてはターン検出の設定を参照してください。

音声の送信

どちらの API も、生の PCM 音声をバイナリ WebSocket フレームとして同じ方法で受け取ります。
Cartesia は次のエンコーディングをサポートしていません: opusogg-opus
セッションを閉じるには、JSON エンコードされた WebSocket テキストフレームを送信します:
Cartesia には、Deepgram の Configure 制御メッセージに相当するものはありません。ターンの終了を設定する必要がないためです。

イベントマッピング

Deepgram はすべてのターンイベントを単一の TurnInfo メッセージに event 判別子付きでラップします。Cartesia はイベントごとに 1 つのメッセージタイプを発行し、その型はトップレベルの type フィールドに含まれます。 Deepgram の TurnInfo メッセージ:
これは Cartesia の turn.* イベントになります:
Deepgram と同様に、transcript はターン内で累積的です。

イベントハンドラー

ハンドラーの分岐構造は変わりません。変わるのはメッセージの形状だけです。

サーバーメッセージの例

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

参照資料

API リファレンス

Cartesia Realtime STT (Auto)

完全なコード例

Cartesia SDK を使用