ADR-003: 音声コーデック選択(複数対応)
Context
音声伝送に使用するコーデックの選択が必要。
選択肢:
- 非圧縮PCM: 遅延最小、帯域大
- Opus: 低遅延コーデック標準、高品質、可変ビットレート
- FLAC: ロスレス圧縮、遅延中程度
- AAC: 一般的、ライセンス問題あり
- MP3: 遅延大、非推奨
要件:
- 遅延最小化
- 音楽品質(楽器演奏に耐える)
- 帯域効率(インターネット越し)
Decision
複数コーデックを選択可能とする:
- 非圧縮PCM: LAN内、超低遅延重視
- Opus: インターネット越し、標準使用
- FLAC: 録音用、ロスレス重視
ユーザーはプリセットまたは手動で選択できる。
Consequences
非圧縮PCM
| 項目 | 値 |
|---|---|
| 遅延 | 0ms(コーデック起因) |
| 帯域 | 約1.5 Mbps/ch (48kHz/16bit) |
| 用途 | LAN内ジャムセッション |
Opus
| 項目 | 値 |
|---|---|
| 遅延 | 2.5ms〜(フレームサイズ依存) |
| 帯域 | 64-256 kbps |
| 用途 | インターネット越しセッション |
Opusは2.5ms、5ms、10ms、20msのフレームサイズに対応。jamjamでは2.5ms〜5msを推奨する。
FLAC
| 項目 | 値 |
|---|---|
| 遅延 | フレームサイズ依存 |
| 帯域 | 約800 kbps/ch(可変) |
| 用途 | ロスレス録音 |
実装方針
- デフォルト: Opus 128kbps
- プリセット「ultra-low-latency」: 非圧縮PCM
- プリセット「high-quality」: Opus 256kbps
- 録音時: FLAC(オプション)