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

すべての移行ガイド

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

接続

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

クエリパラメーター

音声の送信

どちらの API も、同じ方法でバイナリ WebSocket フレームとして生の PCM 音声を受け付けます。
Cartesia は次のエンコーディングをサポートしていません: flacamr-nbamr-wbopusogg-opusspeexg729
Deepgram の Finalize コマンドに相当するものはありません。Ink はターン境界を自動的に検出し、ユーザーが話し終えると turn.end を発行するため、フラッシュする必要はありません。
現在 Deepgram Nova でセッション中に Finalize コマンドを送信している場合は、代わりに手動ファイナライズを使った Cartesia Ink の利用を検討してください。詳細は移行ガイドのページを参照してください。
セッションをクリーンに閉じるには、JSON テキストフレームを送信します。
Cartesia には Deepgram の KeepAlive メッセージに相当するものはありません。接続には 3 分のアイドルタイムアウトがあり、音声チャンクを送信するたびにリセットされます。接続を維持するには、音声(無音かどうかを問わず)をストリーミングし続けてください。

イベントのマッピング

Deepgram は 4 種類のサーバーメッセージを発行し、トランスクリプト結果と個別の音声区間シグナルを混在させています。 Cartesia は同じ情報をターンのライフサイクルにまとめます: turn.startturn.updateturn.eager_endturn.resumeturn.end。完全なステートマシンについてはターン検出を参照してください。

Deepgram の Results メッセージ

Deepgram の Results には多くの情報が含まれています。同様の情報は Cartesia の turn.update および turn.end イベントから取得できます。
Deepgram は UtteranceEndspeech_final: true を別々に送信しますが、これらは「ユーザーが話し終えた」という同じ意味を持ちます。Cartesia はこれを単一の高精度シグナル turn.end に簡素化しています。
Deepgram の Results メッセージ:
は、Cartesia の turn.update / turn.end イベントになります:
turn.startturn.resume イベントはトランスクリプトを含みません。

サーバーメッセージの例

Hello! Nova’s transcripts are joined with spaces. Ink’s are not.

参考資料

API リファレンス

Cartesia Realtime STT (Auto)

完全なコード例

Cartesia SDK を使用