Skip to main content
このガイドでは、セッション中に Finalize コマンドを送信する場合の Deepgram Live Audio (Nova) からの移行について説明します。

すべての移行ガイド

このガイドには、素の API の説明と SDK コードの両方が含まれています。SDK をインストールするには次のようにします。
すでに Cartesia SDK を使用している場合は、バージョン >=3.2.0 にアップグレードしてください

接続

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

クエリパラメーター

音声の送信

どちらの API も、raw PCM 音声を同じ方法でバイナリ WebSocket フレームとして受け取ります。
Cartesia は次のエンコーディングをサポートしていません: flacamr-nbamr-wbopusogg-opusspeexg729
Cartesia の制御コマンドは JSON ではなく、プレーンなテキストフレームです。 バッファリングされた音声をすべてフラッシュし、トランスクリプトを出力するようモデルに強制するには:
ファイナライズは Deepgram Nova では任意ですが、Cartesia Realtime STT (Manual) では必須です。Deepgram Nova でセッション中に Finalize コマンドを送信していない場合は、代わりに自動ファイナライズを使用する Cartesia Ink の利用を検討してください。詳細は移行ガイドのページを参照してください。
セッションを正常に閉じるには:
Cartesia には Deepgram の KeepAlive メッセージに相当するものはありません。接続には 3 分間のアイドルタイムアウトがあり、音声チャンクを送信するたびにリセットされます。接続を開いたままにするには、(無音であってもなくても)音声のストリーミングを継続してください。

イベントのマッピング

Deepgram は 4 種類のサーバーメッセージを発行します。Cartesia はトランスクリプトチャンクに加えて、finalize および close コマンドへの確認応答を発行します。 Deepgram の Results メッセージ:
これは 1 つ以上の Cartesia transcript イベントになります:
  • Ink 2 はまだ durationwords を返しません
  • Ink 2 と Whisper は現在、確定トランスクリプト(is_final: true)のみを発行します
Cartesia の確定トランスクリプトはデルタです

サーバーメッセージの例

Ink may break words. Nova’s transcripts are joined with spaces. Ink’s are not.

参考資料

API リファレンス

Cartesia Realtime STT (Manual)

完全なコード例

Cartesia SDK を使用