> ## 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.

# エンコーディングとサンプルレート

> リアルタイム入力音声に適切なパラメータを見つける方法

リアルタイム音声認識 (STT) 用に生 (PCM) 音声を送信する場合、エンコーディングとサンプルレートはオーディオデータからは検出できないため、クエリパラメータとして指定してください。

一般的には、エンコーディングとサンプルレートを、上流のパイプライン (マイクキャプチャ、テレフォニーストリーム、ML モデル出力など) がすでに生成しているものに合わせる必要があります。

## API リファレンス

<ParamField query="encoding" type="string">
  入力音声のエンコーディング。利用可能なオプション: `pcm_s16le`、`pcm_s32le`、`pcm_f16le`、`pcm_f32le`、`pcm_mulaw`、`pcm_alaw`。
</ParamField>

<ParamField query="sample_rate" type="number">
  入力音声のサンプルレート (Hz)。送信する音声の実際のサンプルレートと一致している必要があります。
</ParamField>

<Info>
  リアルタイムエンドポイントとは異なり、バッチ STT はコンテナ化された音声 (例: `wav`、`mp3`) も受け付けます。

  `encoding` と `sample_rate` のクエリパラメータは、生 PCM 音声を使用するときにのみ指定してください。
</Info>

## チートシート

生の音声を送信する場合、エンコーディングとサンプルレートは上流ソースが生成するものと一致している必要があります。
まずは次の経験則を参考にしてください。

| エンコーディング    | ビット深度            | 一般的なソース                                           | 推奨サンプルレート   |
| ----------- | ---------------- | ------------------------------------------------- | ----------- |
| `pcm_s16le` | 16-bit int       | ボイスエージェントプラットフォーム、WAV ファイル、ほとんどの音声キャプチャライブラリ      | 8000–48000  |
| `pcm_s32le` | 32-bit int       | プロフェッショナルオーディオインターフェース、DAW                        | 44100–48000 |
| `pcm_f16le` | 16-bit float     | 一般的でない。一部の半精度 ML パイプライン                           | 16000–48000 |
| `pcm_f32le` | 32-bit float     | ブラウザ (Web Audio API)、ML モデル (PyTorch、NumPy/SciPy) | 16000–48000 |
| `pcm_mulaw` | 8-bit compressed | 北米／日本のテレフォニー (G.711μ)、Twilio                      | 8000        |
| `pcm_alaw`  | 8-bit compressed | 欧州／国際テレフォニー (G.711A)                              | 8000        |

### テレフォニー

#### 北米と日本

多くのお客様は Twilio 経由で音声出力を送信します。Twilio で送信されるすべての音声は、サンプルレート 8 kHz の µ-law エンコーディングにトランスコードされます。

```
?encoding=pcm_mulaw&sample_rate=8000
```

#### ヨーロッパ、インド、その他

ヨーロッパおよび国際的な電話ネットワークの標準 (G.711A) は、サンプルレート 8 kHz の 8 ビット A-law 圧縮 PCM です。

```
?encoding=pcm_alaw&sample_rate=8000
```

### ボイスエージェントプラットフォーム

多くのボイスエージェントプラットフォームは、パイプラインで 16 kHz サンプルレートの `pcm_s16le` を使用します。特定のプラットフォームでの仕様は必ず確認してください。

```
?encoding=pcm_s16le&sample_rate=16000
```

### Web ブラウザ

[Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) を通じてマイク音声をキャプチャする場合、サンプルは `pcm_f32le` です。`AudioContext` (およびそこからフレームを読み取る `AudioWorklet` ノード) は常に 32-bit float を生成します。

キャプチャ時のサンプルレートは、ユーザーの入力ハードウェアが報告する値がデフォルトとなり、一般的には 48 kHz、ときには 44.1 kHz になります。`AudioContext.sampleRate` から読み取り、同じ値を送信してください。

```ts theme={null}
const audioContext = new AudioContext();
console.log(audioContext.sampleRate); // e.g. 48000
```

```
?encoding=pcm_f32le&sample_rate=48000
```

音声認識は 16 kHz を超えるレートからほとんど恩恵を受けないため、送信前に 16 kHz の `pcm_s16le` にダウンサンプリングすると、精度への影響をほぼ受けずに帯域を削減できます。

## パラメータを再確認する

モデルは、接続時に宣言した `encoding` と `sample_rate` を使ってバイト列をデコードします。これらのパラメーターが正しくなくても、Cartesia のサーバーは **エラーを返さない場合があります**。

パラメーターを検証するには、音声データを保存し、[ffplay](https://ffmpeg.org/ffplay.html) で再生してみてください:

```bash theme={null}
# encoding=pcm_s16le
# sample_rate=16000
# 1 channel (the API expects mono)
ffplay -f s16le -ar 16000 -ac 1 audio.raw

# general format
ffplay -f <encoding_without_pcm_prefix> -ar <sample_rate> -ac <num_channels_must_be_one> <file_path>
```

再生がおかしく聞こえる場合 (かなり明らかにわかるはずです)、`encoding` か `sample_rate` がデータと一致していません。音声がきれいに再生されるように修正し、その同じ値を API に送ってください。
