
音声コーデックの進化 ― PCMからMP3、Opus、そしてAIコーデックへ
CDのステレオPCMは1,411.2 kbps、初代Lyraの通話音声は3 kbps。この数値だけなら約470倍の差がありますが、CD音楽を同じ品質のまま470分の1にできるという意味ではありません。対象の音、帯域、チャンネル数、評価方法が違うからです。本記事では、コーデックが何を保存し、何を近似するのかを整理し、PCMから知覚符号化、可逆圧縮、ニューラル圧縮へと進みます。
PCM ― サンプル数・ビット深度・チャンネル数
PCM(Pulse Code Modulation)は、時間ごとに測った振幅を数値で表す方式です。CDの線形PCMは44,100サンプル/秒、16ビット/サンプル、2チャンネルなので、44,100 × 16 × 2 = 1,411,200 bit/sになります。量子化済みのデジタルデータであり、元のアナログ波形を無限の精度で保存するわけではありません。
1分の音声データは1,411,200 × 60 ÷ 8 = 10,584,000バイト、十進表記で10.584 MBです。ヘッダーなどは含みません。オーディオCDとデータCDではセクターの用途が異なるため、「650 MBのデータCD容量」をそのままこの式に当てはめて収録時間を説明するのは不適切です。
電話のG.711では8,000サンプル/秒を8ビットの符号語にするので64 kbpsです。A-law/μ-lawの非線形量子化を用いるため、CDの16ビット線形PCMとは量子化特性も音声帯域も異なります。PCMという語だけで品質やデータ量は決まりません。
MP3 ― 聴覚の特性を利用する非可逆圧縮
MP3はMPEG-1 Audio Layer IIIに由来します。ISO/IEC 11172-3は1993年に発行され、Fraunhofer IISでは1995年7月14日に内部投票で「.mp3」の拡張子が選ばれました。Karlheinz Brandenburgらの研究や、難しい音源であるSuzanne Vegaのアカペラ版「Tom’s Diner」を使った試聴は、その開発史を語る例です。ひとりだけで作られた技術ではありません。
エンコーダーはフィルターバンクとMDCTなどで音を分析し、マスキングを考慮して量子化誤差とビット配分を調整します。単に「聞こえない音を削除」するだけでなく、限られたビット数の中で誤差を目立ちにくくする設計です。
128 kbpsは1,411.2 kbpsの約11分の1ですが、これはビットレート比です。音質はエンコーダー、設定、音源、聴取条件で変わり、常にCDと区別できないという保証ではありません。
AAC ― プロファイルごとの違いを見る
AAC(Advanced Audio Coding)はMPEGで標準化された音声符号化の系統です。MP3との比較で「AAC 128 kbps = MP3 192 kbps」のような固定換算はできません。規格名だけでなく、プロファイル、エンコーダー、設定、音源を揃えて評価します。
表が収まらない場合は、左右にスクロールできます。
| 名称 | 主な考え方 |
|---|---|
| AAC-LC | Low Complexity。AACの広く用いられる構成 |
| HE-AAC | AACにSBR(Spectral Band Replication)を組み合わせる |
| HE-AAC v2 | さらにパラメトリックステレオを用いる |
| xHE-AAC | USACを基盤とし、音声と音楽を低ビットレートでも扱う設計 |
表の出典: Via Licensing Alliance: Advanced Audio Coding (AAC)。機能差の要約であり、音質順位ではありません。
高域やステレオ情報を効率的に表現する仕組みも、低いビットレートで無条件に原音と一致させる技術ではありません。対応しているデコーダーや配信先も確認します。特許とソフトウェアの許諾は末尾で分けて扱います。
Vorbis ― コーデックとコンテナを区別する
Xiph.OrgのVorbisは、公開仕様を持つ汎用の非可逆音声コーデックです。変換符号化と聴覚特性の利用という点では、MP3と同じく限られたデータ量で聴感上の品質を保つ側の技術です。
Vorbisはコーデック、Oggはコンテナです。「OggだからVorbis」とは限らず、OggにはOpusなども格納できます。同様にWebMやMP4という名前だけでは、内部の音声コーデックを特定できません。
VorbisがいつでもMP3より上、AACより下という一列の順位はつけません。公式ページは自由に実装できる形式として説明していますが、実際に配布するソフトウェアのライセンス条件は別途確認します。
Opus ― 音声・音楽・低遅延を扱う設計
2012年9月のRFC 6716で定義されたOpusは、予測符号化を用いるSILK系と、MDCTを用いるCELT系を組み合わせます。SILK単独、ハイブリッド、CELT単独のモードがあり、設定や帯域に応じて使われます。すべてのパケットで両方式が同時に使われるわけではありません。
表が収まらない場合は、左右にスクロールできます。
| 項目 | 読み方 |
|---|---|
| ビットレート | RFCの対象範囲は6〜510 kbps。音質の保証値ではない |
| フレーム | 2.5、5、10、20、40、60 ms。使える長さはモードによる |
| 遅延 | フレーム長に先読み、処理、ネットワーク、再生バッファ等が加わる |
| 損失対策 | 対応モードのin-band FEC等は損失への対策であり、完全復元の保証ではない |
表の出典: IETF Datatracker: RFC 6716 - Definition of the Opus Audio Codec。端末間遅延は通信・再生条件にも依存します。
最小のフレーム長やアルゴリズム遅延を、通話の端から端までの遅延と混同しないことが重要です。RFC 7874はWebRTC端末にOpusとG.711のPCMA/PCMUの実装を要求します。「Opusだけが必須」ではありません。
公式の比較資料には試聴試験の結果に加え、データのない部分を経験的な情報で補った概略図も含まれます。図から特定ビットレートの正確な値を読み取ることは推奨されていません。「Opus 64 kbps = MP3 128 kbps」のような普遍的な換算や、あらゆる用途で最強という結論にはできません。
FLAC ― デジタル音声サンプルを可逆に保存する
FLAC(Free Lossless Audio Codec)は、入力されたPCMサンプルを復号時に正確に復元する可逆圧縮です。予測したサンプルとの差分を効率的に符号化するなど、音声の規則性を利用します。現在の形式はRFC 9639でも定義されています。
「1ビットも失わない」とは音声サンプルについての性質です。元のWAVファイルの全メタデータ、チャンク順序、ファイル全体のバイト列まで一致するという意味ではありません。すでにMP3で失われた情報も、FLACに変換すれば戻るわけではありません。
圧縮後のサイズは音源や設定に依存します。無音と雑音では予測しやすさが異なり、常に元の50〜70%になる保証はありません。原本保存や再編集用には、容量だけでなく可逆性が判断材料になります。
ニューラルコーデック ― Lyra・SoundStream・EnCodec
ニューラルコーデックでは、学習したエンコーダーが波形をコンパクトな表現へ写し、量子化された情報からデコーダーが波形を再構成します。SoundStreamの残差ベクトル量子化(RVQ)は、前段の誤差を後段で表す複数の符号帳を使います。元のPCMと完全一致する可逆圧縮ではありません。
LyraとSoundStreamを混同しない
Googleが2021年に紹介した初代Lyraは通話音声向けの3 kbpsの方式です。後のSoundStreamと同じモデルではありません。2022年のLyra V2はSoundStreamを基盤とし、3.2、6、9.2 kbpsをサポートします。V2を3 kbpsとする表は不正確です。
SoundStreamの発表には3 kbpsでOpus 12 kbpsを上回った評価がありますが、これは発表時のモデル・データ・試験条件での結果です。CDのステレオ音楽を同品質で3 kbpsにする証明ではありません。学習時と推論時の計算量も区別し、「ニューラル方式は必ずGPUが必要」とはしません。
EnCodecのモデル条件
2022年のEnCodec論文は、24 kHzのモノラル系と48 kHzのステレオ系を扱っています。低ビットレートの選択肢を一つの範囲にまとめ、どのモデルでも同じ条件で使えると解釈しないでください。言語モデルによる追加の圧縮も、学習済み表現をさらに符号化する段階です。論文の最大40%という結果を常時の削減率とはしません。
入力の情報を近似するため、声質や背景音に歪みが出る場合があります。帯域を削減する利点と、聞き取りやすさ・音楽の再現性・実行時間を、目的に合った音源で評価します。
1分の容量を計算する ― 品質比較ではない
以下は一定または平均ビットレートを仮定した音声ペイロードだけの計算です。1 kbps = 1,000 bit/s、1 kB = 1,000バイト、1 MB = 1,000,000バイトとし、容量 = ビットレート × 60秒 ÷ 8で求めます。コンテナ、メタデータ、パケットヘッダー、再送、モデル配布の容量は含みません。
表が収まらない場合は、左右にスクロールできます。
| 方式・設定例 | kbps | 60秒の容量 |
|---|---|---|
| CDの線形PCM・ステレオ | 1,411.2 | 10.584 MB |
| G.711・モノラル | 64 | 0.480 MB |
| MP3の設定例 | 320 | 2.400 MB |
| AACの設定例 | 256 | 1.920 MB |
| MP3の設定例 | 128 | 0.960 MB |
| Opusの設定例 | 96 | 0.720 MB |
| Opusの設定例 | 32 | 0.240 MB |
| Lyra V1・通話音声 | 3 | 22.5 kB |
| Lyra V2・通話音声 | 3.2 | 24.0 kB |
表の算出: NanToo編集部。本文の60秒・十進単位・ヘッダー除外の式を使用。Lyraの設定値は Google Research: Lyra: A New Very Low-Bitrate Codec for Speech Compression と Google Open Source Blog: Lyra V2 - a better, faster, and more versatile speech codec に基づきます。
同じ60秒でも帯域・チャンネル数・対象音が違います。この表は音質の順位表ではありません。FLACは固定の平均ビットレートが決まらないため、実際の符号化結果で容量を測ります。VBRでは設定値と実測平均の違いにも注意します。
MediaRecorder ― ブラウザ名で録音形式を決めつけない
MediaRecorderはMediaStreamを録音するAPIです。WebM/MP4などのコンテナと、Opus/AACなどのコーデックは別々の要素です。対応はOS、ブラウザ、バージョンにより変わります。
SafariもAAC限定ではありません。WebKitはSafari 18.4で、MediaRecorderによるWebMとOpusの作成を追加したと説明しています。古い対応表を現在のすべての環境へ適用してはいけません。
- MediaRecorder自体の存在を確認する。
MediaRecorder.isTypeSupported("audio/webm;codecs=opus")などで候補を確認する。- 対応判定がtrueでも、リソース不足等で録音が失敗する可能性を扱う。
- 録音後は
recorder.mimeTypeや出力を確認し、形式に合う拡張子と再生環境を選ぶ。
NanTooのボイスレコーダー(日本語)も対応候補を選び、録音結果のMIMEタイプから判定した形式名を録音一覧へ表示します。
ライセンスと選定 ― 仕様・コード・モデルを分ける
コーデックの仕様が公開されていること、実装コードの利用許諾、特許ライセンス、学習済みモデルの利用条件は同じではありません。
表が収まらない場合は、左右にスクロールできます。
| 対象 | 確認する事項 |
|---|---|
| MP3 | Fraunhofer/Technicolorのライセンスプログラムは2017年4月23日に終了。あらゆる実装の著作権が消えたわけではない |
| AAC | Via LAの対象特許・地域・契約条件。2028年/2031年に一律失効するとは断定しない |
| Vorbis/FLAC | 公開仕様と、採用する実装コードのライセンスを確認 |
| Opus | 参照実装のBSD条件と別途の特許ライセンス声明を区別 |
| Lyra | 公式リポジトリのApache 2.0条件を確認 |
| EnCodec | 公式リポジトリはコードをMITと記載。モデル等の配布物の条件も個別確認 |
表の出典: Fraunhofer IIS: mp3 / Via Licensing Alliance: Advanced Audio Coding (AAC) / Opus Codec: License – Opus Codec / GitHub / google: A Very Low-Bitrate Codec for Speech Compression / GitHub / facebookresearch: EnCodec: High Fidelity Neural Audio Compression。各配布物の条件を区別した確認項目の要約です。
ブラウザには既にWebCodecsのAudioEncoder/AudioDecoderという低レベルAPIもあります。ただしAPIの存在だけで特定コーデックが使えるとは限らず、コンテナへの格納も別の処理です。MediaRecorderの代わりに何でも簡単に保存できるものではありません。
保存用なら可逆性、通話なら遅延と損失耐性、配布なら再生互換性と容量を先に決めます。その上で同じ入力・評価条件で比較することが、ビットレートの小ささだけで選ばないための基本です。
参考文献・ソース
- IETF Datatracker: RFC 6716 - Definition of the Opus Audio Codec ↗
- ISO: ISO/IEC 11172-3:1993 — Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio ↗
- www.iis.fraunhofer.de: 30 Years of .mp3: Three Letters That Changed the World ↗
- Google Research: SoundStream: An End-to-End Neural Audio Codec ↗
- arXiv: [2210.13438] High Fidelity Neural Audio Compression ↗
- www.opus-codec.org: Comparison – Opus Codec ↗
- MDN Web Docs: MediaRecorder - Web API ↗
- ITU: G.711 : Pulse code modulation (PCM) of voice frequencies ↗
- RFC Editor: RFC 7874 — WebRTC Audio Codec and Processing Requirements ↗
- RFC Editor: RFC 9639 — Free Lossless Audio Codec (FLAC) ↗
- Xiph.Org Foundation: Vorbis I specification ↗
- Opus Codec: License – Opus Codec ↗
- Fraunhofer IIS: mp3 ↗
- Via Licensing Alliance: Advanced Audio Coding (AAC) ↗
- Google Research: Lyra: A New Very Low-Bitrate Codec for Speech Compression ↗
- Google Open Source Blog: Lyra V2 - a better, faster, and more versatile speech codec ↗
- GitHub / google: A Very Low-Bitrate Codec for Speech Compression ↗
- GitHub / facebookresearch: EnCodec: High Fidelity Neural Audio Compression ↗
- WebKit: WebKit Features in Safari 18.4 ↗
- MDN Web Docs: MediaRecorder: isTypeSupported() static method - Web APIs ↗
- W3C: WebCodecs ↗
- Sony: Volume 2 Chapter 7 Digitizing Music ↗
記事作成に関する注記
本記事は AI(大規模言語モデル)を編集補助として活用して作成しています。 公開前に編集者が内容を確認していますが、事実誤認・仕様の解釈ミス・最新情報との齟齬が含まれる可能性があります。 重要な判断を行う際は、本文中の一次ソースや公式ドキュメントを必ずご自身でご確認ください。 誤りにお気づきの場合は、お問い合わせフォームよりご連絡いただけると助かります。




