RIFF Waveform Audio Format (WAV) とは
WAV、またはRIFF Waveform Audio Formatは、
マイクロソフトと
IBMが共同開発した
音声ファイルフォーマットです。元々の名称はRIFF(Resource Interchange File Format)に基づき、音声データをコンテナとして格納する目的があります。特に、音声の波形を扱うため、「waveform」という言葉が使われています。日本では、音声業界においてWAVという言葉が「ワブ」と発音されることもありますが、これは「ウェブ」との混同を避けるための工夫です。WAVファイルの拡張子は「.wav」です。
WAVフォーマットの特徴
WAVは一般的に非圧縮なリニアPCM形式で音声を保存しますが、他にもμ-law、ADPCM、
MP3、WMAなど、さまざまな音声コーデックを内部に格納することができる柔軟性を持つフォーマットです。このため、音声制作や編集
ソフトウェアでは多くの場合、WAVフォーマットが標準で利用されます。また、WAVはあくまでコンテナ規格であるため、音声データのコーディング方式が異なっても同じ拡張子を使用することができます。
一方で、WAVフォーマットにはファイルサイズの制限があります。具体的には、データ長が32ビット符号なし整数型で記述されているため、最大で約4GBのファイルサイズまでしかサポートされていません。この制限を克服するために、Wave64(拡張子.w64)というフォーマットも存在します。Wave64は、データ長を64ビット符号なし整数型で表すことにより、さらに大きなファイルを扱えるように設計されています。
RIFF構造
WAVはRIFF形式に基づいており、これによりファイルは「チャンク」と呼ばれるデータの集合で構成されます。各チャンクは4文字のタグ(FourCC)とそのサイズを持ち、タグによってチャンクの種類が識別されます。一般的に、WAVファイルでは最初のチャンクはRIFFタグで始まり、続けてサブチャンクが配置されます。
具体的には、WAVファイルの外側のチャンクはRIFFタグを持ち、中に「WAVE」と記載されています。データの並びはリトルエンディアンであり、特にチャンクの順序には一般的な規定が存在しないため、格式に応じて自由に配置されますが、fmtチャンクは通常dataチャンクの直前に置かれることが多いです。この仕様により、リーダは未認識のタグをスキップし、必要なデータのみを抽出することができます。
fmtチャンクおよびdataチャンク
WAVファイルの核心部分であるfmtチャンクには、音声データの形式情報が含まれています。具体的には、チャンネル数、サンプルレート、ビット数、平均バイト速度等の情報を含むWAVEFORMATEX構造体によって定義されます。例えば、リニアPCMの場合、wFormatTagが1と指定されることで、このフォーマットが用いられます。
また、dataチャンクには実際の音声データが格納されており、fmtチャンクの情報に基づいてデータが保存されます。リニアPCMの場合、左右のチャンネルは符号付き整数で格納され、
浮動小数点数で保存する際には指定の範囲が-1.0から+1.0となるように制限されています。
音声圧縮と使用例
Windows環境においては、ACM(Audio Compression Manager)を使用することで、WAVファイルの圧縮が可能です。この機能は、例えば「サウンドレコーダー」といったアプリケーションで利用されています。
まとめ
WAVフォーマットは、音声データを保存するための非常に重要な標準形式であり、リニアPCMを中心とした多様な音声コーデックをサポートします。一方で、左記の制限や互換性の問題が生じる場合もあるため、利用形態に応じたフォーマット選定が求められます。また、他の音声コンテナフォーマットには、MP4や
Oggなども存在し、それぞれが異なった利点を有しています。