音声ファイルフォーマット
音声ファイルフォーマット(おんせいファイルフォーマット、Audio file format)は、音データをコンピュータシステム上で格納する際のファイル形式(コンテナフォーマット)の総称である。
音声の符号化には、大別してパルス符号変調(PCM)方式に基づくものと、パルス密度変調(PDM)方式に基づくものとがある。CD-DAやDVD-Audioに使用される方式は前者であり、Super Audio CDに使用される方式は後者である。リニアPCMは音声信号の強度を特定の量子化ビット数(ビット深度)の数値として表現し、一定の時間間隔(サンプリング周波数)で標本化する。音声信号の強さの代わりに、音声信号の強さの(時間)差分を符号化する方式として差分パルス符号変調(DPCM)や適応的差分パルス符号変調(ADPCM)がある。一方でPDMは音声の波の疎密を1bitで表現して一定の間隔で標本化する。
これらのデータは圧縮されずに格納されるか、ファイルサイズを削減するために圧縮して格納される。その際に、どのような構造で格納されるかを規定するものがファイルフォーマットである。例えば、生のPCMデータは 量子化ビット数[bit/sample]×サンプリング周波数[sample/sec]×時間[sec] で定まる長さのビット列として表されるが、これを音声データとして解釈する場合、それがPCMで符号化された音声であること、量子化ビット数、サンプリングレートなどの情報(メタデータ)が必要である。ファイルフォーマットはこれらデータの配置の仕方・形式(フォーマット)を規定する。リニアPCMを格納したWAVフォーマットは、RIFF識別子、この項目以降のサイズ、フォーマット情報、fmt識別子、fmtチャンクのサイズ、リニアPCMであることを表す情報、チャンネル数(モノラルなら 1、ステレオなら 2)、サンプリングレート、バイトレート、ブロックサイズ、データ識別子、PCMデータのバイト数、PCMデータ、という形式になっている。ただし数値はリトルエンディアンで表現される。より複雑なファイルフォーマットでは、曲名、アーティスト名、アルバムアート(画像データ)、歌詞など、他の付加的情報を格納することもでき、その為のフォーマットが規定される。
とコーデックを区別することは重要である。コーデックは生の音声データを符号化(とくに圧縮)/復号する方式であり、ファイルフォーマットは音声をファイルに格納する際の特定の形式を指す。ただし、音声ファイルフォーマットには1つのコーデックが対応する(あるいはひとつの標準的なコーデックが存在する)こともある。複数のコーデックが対応する音声ファイルフォーマットとしては、Matroska AudioやMP4などがある。
音声ファイルフォーマットには、主に非圧縮音声の格納に用いられるもの、可逆圧縮音声の格納に用いられるもの、非可逆圧縮音声の格納に用いられるものとがある。
PCM形式の非圧縮音声については、WindowsではWAV、Mac OS ではAIFFに格納されることが標準的である。WAVは柔軟なファイルフォーマットであり、非圧縮/圧縮を問わず、任意のサンプリング周波数とビットレートの音声を格納できる。一方でPDM形式の非圧縮音声はDSDIFFやDSFなどの形式で格納される。詳細はDSDを参照。
WAV - 主にMicrosoft Windowsで使われている標準音声ファイルフォーマット。基本的にはリニアPCMが格納される。ただし他コーデックを格納することも可能である。ファイル内の構造は RIFFを踏襲している。これはIFFフォーマットに似ている。
AIFF - アップルの標準音声ファイルフォーマット。言うなればMacintoshにとってのWAVである。
BWF (Broadcast Wave Format) - 欧州放送連合がWAVの後継として策定した標準音声フォーマットである。BWFではファイルにメタデータを含めることができる。詳しくは、European Broadcasting Union: Specification of the Broadcast Wave Format - A format for audio data files in broadcasting. EBU Technical document 3285, July 1997 を参照。このフォーマットは録音時のフォーマットとして、テレビや映画業界で使われる多くのオーディオワークステーションで採用されている。SMPTEタイムコードをファイルに含めることができるため、別に録画された画像と同期をとるのが容易である。
可逆圧縮を伴うフォーマットでは、録音や再生の際に余分な処理が必要となるが、大量の録音をする場合にはストレージ容量の節約という点で効率的と言える。WAV(正確にはリニアPCM)などの非圧縮形式は、録音対象が複雑な音楽でも全くの静寂であっても、単位時間当たりに同じ量のビットを記録する。例えば、オーケストラの演奏のような複数の音が混じる場合でも、全く音がしない状況でも、非圧縮の場合、単位時間当たりのファイルサイズは同じである。同じものを可逆圧縮方式であるTTAで符号化した場合、前者のファイルはある程度小さくなり、後者のファイルはほとんどゼロに近いサイズになるだろう。しかし、音声データをTTAで符号化するには、非圧縮(何も処理をしない)よりも処理時間がかかる。
非可逆圧縮方式は、一般には元データを復元することができない。音響心理学等様々な技法を使用し、可聴域にない音や、ある音(例えばヴォーカルの声)でマスクされて聴き取り難い音を省いて圧縮するため、同じ音源のPCMファイルよりも(音源の性質、コーデック、ビットレート設定にも依存するが)数分の一のサイズになるが、体感的な音質はそれなりに保たれる。コーデックそれぞれの工夫により圧縮率、再生時の音質・特性の差違がみられる。
AAC - Advanced Audio Coding。MP3と並ぶ代表的な非可逆圧縮コーデックのひとつで、MP3よりも音質(圧縮効率)が良い。MPEG-2 と MPEG-4 に基づいている。AAC ファイルにはコンテナ形式として ADTS と ADIF がある。
ATRAC - ソニーが開発した非可逆圧縮コーデック。SonicStage、x-アプリ等に使われている
mp3 - 音楽ダウンロード配信で最も一般的な音声非可逆圧縮コーデックのひとつであり、ファイルフォーマットでもある。MP3は音楽の圧縮には適しているが、話し声には適していないとされている。
mp4/m4a - MPEG-4 音声フォーマット(コンテナ)。中身は AAC であることが多いが、MP2/MP3 が格納されることもある。MP4には音声に限らず動画ストリームや字幕なども格納できる。拡張子 *.m4a はとくに音声ストリーム(とメタデータ等)を格納したMP4ファイルに用いられる。
Opus - Vorbis よりもさらに高音質な音声非可逆圧縮コーデック。低遅延ながら低ビットレートから高ビットレートまで高い音質であり、音声通信や音楽の圧縮に利用できる。
Vorbis - 音声非可逆圧縮コーデックのひとつ。主にOggコンテナに格納される。MP3よりも(体感の音質に対する)圧縮効率がよい。
Windows Media Audio(WMA) - マイクロソフトが権利を保有する非可逆圧縮コーデック・ファイルフォーマット。デジタル著作権管理機能が含まれている。
可逆圧縮の為、元データと同一のデータを保持したままサイズを削減することができる。全てのフォーマットの音質は同一の為、圧縮率、エンコード・デコードの計算リソース、付加機能、再生環境等を比較する事により有用性を判断することができる。
TAK - 圧縮率、エンコード・デコード速度、機能面共にバランスの取れた総合的に高い性能を誇る。フリーウェアだがオープンソースではない。
FLAC - エンコード・デコード速度、機能面に高い性能を誇る。圧縮率は低いが最もメジャーなコーデックのひとつ。ファイルフォーマットも兼ねている。
Monkey's Audio(ape) -  可逆圧縮コーデックでありフォーマット。OSSで圧縮率、エンコード速度に高い性能を誇るが、Windows以外のOSに公式非対応という欠点がある。デコード速度は遅い。
TTA - 平均的にバランスの取れた性能。
WavPack - 平均的にバランスの取れた性能。非可逆ファイルと差分ファイルを生成することで、非可逆音声と可逆音声の両方として扱うことのできる、ハイブリッドモードがある。PDM方式の音声データの圧縮にも対応する。
LA - 圧縮率に高い性能を誇る。エンコード・デコード速度、機能面共に低い性能。
mp3HD - MP3 可逆圧縮コーデックでありフォーマット。MP3によって非可逆圧縮されたデータに、可逆圧縮されたデータを添加したもの(ハイブリッド)。MP3のみの再生機でも(非可逆圧縮部分を参照することで)再生可能だが、非可逆圧縮相当の音質となる。
MPEG-4 ALS - MPEG-4 可逆圧縮コーデック、圧縮率、エンコード速度に高い性能を誇り、柔軟性が高い。
MPEG-4 SLS - MPEG-4 可逆圧縮コーデック、AAC 再生機でも再生可能(ただし AAC 音質)
Apple Lossless(ALAC) - Appleの開発した可逆圧縮コーデック。後にオープンソース化された。
ATRAC Advanced Lossless(AAL) - ソニーの開発した可逆圧縮コーデック
WMA Lossless - マイクロソフトの開発した可逆圧縮コーデック