> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cartesia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Deepgram Nova から Cartesia Ink への移行

> Deepgram の /v1/listen WebSocket を Cartesia の /stt/websocket に切り替えます。

Cartesia の [Realtime Speech-to-Text (Manual) API](/api-reference/stt/websocket) は、Deepgram の Live Audio (Nova) API と類似しています。
両 API とも WebSocket 経由で音声をストリーミングし、トランスクリプトを利用可能になり次第発行するため、既存の Nova インテグレーションの移植は、主にフィールド名の変更と接続パラメータの更新です。

Ink にユーザーターンを自動検出させたい場合は、代わりに [Realtime Speech-to-Text (Auto)](/api-reference/stt/turns/websocket) と [Deepgram Flux からの移行ガイド](/use-the-api/stt/turns/migrate-from-deepgram-flux) を参照してください。

このガイドは WebSocket の直接利用を扱います。SDK 固有の例は近日公開予定です。

## 接続

Deepgram の WebSocket URL と認証ヘッダーを Cartesia のものに置き換えます。

```diff theme={null}
- wss://api.deepgram.com/v1/listen?model=nova-3&encoding=linear16&sample_rate=16000
+ wss://api.cartesia.ai/stt/websocket?model=ink-2&encoding=pcm_s16le&sample_rate=16000
```

```diff theme={null}
- Authorization: Token <DEEPGRAM_API_KEY>
+ X-API-Key: <CARTESIA_API_KEY>
```

ブラウザでは、WebSocket はリクエストヘッダーをサポートしません。代わりに、API バージョンを `cartesia_version` クエリパラメータで渡し、API キーの代わりに短命の [アクセストークン](/get-started/authenticate-your-client-applications) を `access_token` クエリパラメータで使用してください。

## クエリパラメータ

| Deepgram Nova                                                                                                                                                                      | Cartesia Ink                  | 備考                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `model=nova-3`（必須）                                                                                                                                                                 | `model=ink-2`（必須）             | 全オプションは [モデル](/build-with-cartesia/stt-models/latest) を参照してください。                                                     |
| `encoding=linear16`（必須）                                                                                                                                                            | `encoding=pcm_s16le`（必須）      | `linear16` → `pcm_s16le`、`linear32` → `pcm_s32le`、`mulaw` → `pcm_mulaw`、`alaw` → `pcm_alaw`。                         |
| `sample_rate`（必須）                                                                                                                                                                  | `sample_rate`（必須）             | 変更なし。                                                                                                                |
| `language`                                                                                                                                                                         | `language`                    | `ink-2` は現在 `en` のみサポート。[他の言語](/build-with-cartesia/stt-models/older-models#ink-whisper) には `ink-whisper` を使用してください。 |
| —                                                                                                                                                                                  | `cartesia_version=2026-03-01` | 詳細は [API の規約](/use-the-api/api-conventions#always-send-a-cartesia-version-header) を参照してください。                         |
| `multichannel`、`channels`                                                                                                                                                          | —                             | WebSocket 接続ごとにモノラルの音声ストリームを送信してください。                                                                                |
| `diarize`                                                                                                                                                                          | —                             | 近日公開！                                                                                                                |
| `keyterm`、`keywords`                                                                                                                                                               | —                             | 近日公開！                                                                                                                |
| `endpointing`、`utterance_end_ms`、`interim_results`、`vad_events`、`punctuate`、`smart_format`、`numerals`、`dictation`、`redact`、`replace`、`search`、`detect_entities`、`profanity_filter` | —                             | 同等機能なし。                                                                                                              |

## 音声の送信

両 API とも、バイナリ WebSocket フレームとして生の音声を受け取ります。音声パイプラインの変更はなく、宣言した `encoding` と `sample_rate` にバイトが一致することを確認するだけです。

Cartesia の制御コマンドは JSON ではなく、プレーンなテキストフレームです。

モデルにバッファされた音声をフラッシュし、トランスクリプトを発行させるには:

```diff theme={null}
- { "type": "Finalize" }
+ finalize
```

セッションをクリーンにクローズするには:

```diff theme={null}
- { "type": "CloseStream" }
+ close
```

Cartesia には Deepgram の `KeepAlive` メッセージに相当するものはありません。接続には 3 分のアイドルタイムアウトがあり、音声チャンクを送信するたびにリセットされます。維持するには（無音でも）音声をストリーミングし続けてください。

## イベントマッピング

Deepgram は 4 種類のサーバーメッセージタイプを発行します。Cartesia はトランスクリプトのチャンクに加えて、`finalize` および `close` コマンドの確認応答を発行します。

| Deepgram Nova (`type`) | Cartesia (`type`) | 備考                                                                                            |
| ---------------------- | ----------------- | --------------------------------------------------------------------------------------------- |
| `Results`              | `transcript`      | メインのトランスクリプトイベント。下にあるペイロードの差分を参照してください。                                                       |
| `Metadata`             | —                 | 同等機能なし。                                                                                       |
| `UtteranceEnd`         | —                 | 同等機能なし。必要であればクライアント側 VAD を実行するか、[Realtime STT](/api-reference/stt/turns/websocket) を使用してください。 |
| `SpeechStarted`        | —                 | 同等機能なし。必要であればクライアント側 VAD を実行するか、[Realtime STT](/api-reference/stt/turns/websocket) を使用してください。 |
| —                      | `flush_done`      | `finalize` の確認応答。                                                                             |
| —                      | `done`            | `close` の確認応答。WebSocket がクローズする直前に送信されます。                                                     |
| —                      | `error`           | WebSocket 上のエラーイベント。                                                                          |

Deepgram の `Results` メッセージ:

```json theme={null}
{
  "type": "Results",
  "channel_index": [0, 1],
  "duration": 1.7,
  "start": 0.0,
  "is_final": true,
  "speech_final": true,
  "channel": {
    "alternatives": [
      {
        "transcript": "Hi I need to cancel my subscription please.",
        "confidence": 0.98,
        "words": [...]
      }
    ]
  },
  "metadata": {...}
}
```

これは Ink の `transcript` イベントになります:

```json theme={null}
{
  "type": "transcript",
  "is_final": true,
  "request_id": "2ff8af53-4d38-479d-8287-58940f01c701",
  "text": "Hi I need to cancel my subscription please.",
  "duration": 1.7,
  "language": "en",
  "words": [...]
}
```

Cartesia の `text` は、セッション全体の累積トランスクリプトではなく、前回の `is_final: true` チャンク以降の**デルタ**です。完全なトランスクリプトを組み立てるには、`is_final` が `true` のすべてのチャンクから `text` を連結してください。

トランスクリプトを正しく組み立てるため、`text` から空白を取り除いたり、チャンク間に空白を追加したりしないでください。

### 同等機能のないフィールド

Cartesia は以下を発行しません:

* `channel.alternatives` — Cartesia はトップレベルで最良のトランスクリプトを 1 つ返します
* `channel_index`、`from_finalize`
* `speech_final` — `is_final` と無音ベースのファイナライズを併用してください
* `confidence`（単語ごとおよび発話ごと）
* `entities`、`metadata`、`model_info`
* `punctuated_word`、`speaker`（単語ごと） — diarization は近日公開予定です
