| 波形オーディオファイル形式(WAVE/WAV) | |
|---|---|
| ファイル名拡張子 | .wav .wave |
| インターネットメディアの種類 | |
| タイプコード | 波 |
| 統一型識別子(UTI) | com.microsoft.waveform-audio |
| 開発者 | IBMとマイクロソフト |
| 初回リリース | 1991年8月[ 3 ] (1991-08年) |
| 最新リリース | |
| フォーマットの種類 | オーディオファイル形式、コンテナ形式 |
| 延長から | リフ |
| 延長 | BWF、RF64 |
波形音声ファイル形式(WAVE、またはファイル名拡張子からWAV ; [ 3 ] [ 6 ] [ 7 ]発音は/ w æ v /または/ w eɪ v / [ 8 ])は、パーソナルコンピュータで音声ビットストリームを保存するための音声ファイル形式規格である。この形式は1991年にIBMとMicrosoftによって初めて開発・公開された。Microsoft Windowsシステムでは非圧縮音声の主要形式として使用されている。通常のビットストリーム符号化は線形パルス符号変調(LPCM)形式である。
WAV は、データをチャンクで保存するためのリソース交換ファイル形式(RIFF)ビットストリーム形式方式のアプリケーションであり、AmigaおよびMacintoshコンピューターで使用される8SVXおよびオーディオ交換ファイル形式(AIFF) 形式に似ています。

WAVファイルはIBMとMicrosoftによって定義されたリソース交換ファイル形式(RIFF)のインスタンスです。[ 3 ] RIFF形式は、さまざまなオーディオコーディング形式のラッパーとして機能します。
WAVファイルには圧縮された音声を保存できますが、最も一般的なWAV音声形式は、線形パルス符号変調(LPCM)形式の非圧縮音声です。LPCMは、オーディオCDの標準音声符号化形式でもあり、 44.1kHzでサンプリングされた2チャンネルLPCM音声を1サンプルあたり16ビットで保存します。LPCMは非圧縮で、オーディオトラックのすべてのサンプルを保持するため、プロのユーザーやオーディオの専門家は、最高の音質を得るためにLPCM音声でWAV形式を使用できます。[ 9 ] WAVファイルは、ソフトウェアを使用して比較的簡単に編集および操作することもできます。
Microsoft Windowsでは、WAV形式はオーディオ圧縮マネージャ(ACM)を使用した圧縮オーディオをサポートしています。WAVファイルの圧縮には、任意のACMコーデックを使用できます。ACMのユーザーインターフェイス(UI)には、Windowsの一部バージョンではサウンドレコーダーなど、ACMを使用する様々なプログラムからアクセスできます。
Windows 2000以降では、スピーカーの位置とともに複数のオーディオチャンネルデータWAVE_FORMAT_EXTENSIBLEを指定するヘッダーが定義され、標準WAV形式のサンプルタイプとコンテナサイズに関する曖昧さが排除され、形式のカスタム拡張の定義がサポートされるようになりました。[ 4 ] [ 5 ] [ 10 ]
RIFF ファイルはタグ付きファイル形式です。RIFF ファイルは特定のコンテナ形式 (チャンク) を持ち、ヘッダーには 4 文字のタグ ( FourCC ) とチャンクのサイズ (バイト数) が含まれます。タグはチャンク内のデータの解釈方法を指定するもので、いくつかの標準 FourCC タグがあります。すべて大文字のタグは予約済みタグです。RIFF ファイルの最も外側のチャンクにはRIFFタグがあり、チャンク データの最初の 4 バイトはフォームの種類を指定する追加の FourCC タグで、その後にサブチャンクのシーケンスが続きます。WAV ファイルの場合、追加のタグは ですWAVE。RIFF データの残りの部分は、オーディオ情報を記述するチャンクのシーケンスです。
タグ付きファイル形式の利点は、下位互換性を維持しながら、後から形式を拡張できることです。[ 11 ] RIFF(またはWAV)リーダーのルールでは、認識できないタグ付きチャンクは無視されます。[ 12 ]リーダーは新しい情報を使用できなくなりますが、混乱することはありません。
RIFFファイルの仕様には、チャンクの定義が含まれていますINFO。チャンクには、作品のタイトル、著者、作成日、著作権情報などの情報を含めることができます。RIFFINFOバージョン1.0ではチャンクが定義されていましたが、WAVファイルの正式仕様ではチャンクは参照されていませんでした。そのため、多くの読者がこれを理解するのに苦労しました。そのため、交換の観点から最も安全な方法は、チャンクやその他の拡張子を省略し、最小公分母のファイルを送信することでした。INFOチャンクの配置に関する問題はINFO他にもあります。
RIFFファイルは国際的な環境で使用されることが想定されているため、RIFFファイル内の文字列のCSET国コード、言語、方言、コードページを指定するためのチャンクが用意されています。 [ 13 ]たとえば、適切なCSETチャンクを指定することで、チャンク内の文字列INFO(およびRIFFファイル全体の他のチャンク)をキリル文字または日本語の文字として解釈できるようになります。
RIFFは、JUNK内容が重要でないチャンクも定義しています。[ 14 ] このチャンクは、FourCCを変更するだけでチャンクを削除できます。また、将来の編集のためにスペースを確保しておくためにも使用できます。これにより、ファイルのサイズを変更せずにファイルを変更できるようになります。RIFFの後の定義でも同様のPADチャンクが導入されました。[ 15 ]
WAVファイルの最上位定義は以下の通りである: [ 16 ]
<WAVE形式> → RIFF('WAVE' <fmt-ck> // ファイルのフォーマット [<fact-ck>] // ファクトチャンク [<cue-ck>] // キューポイント [<playlist-ck>] // プレイリスト [<assoc-data-list>] // 関連データリスト <wave-data> ) // 波形データ 最上位のRIFF形式ではWAVEタグが使用されます。タグの後には、サンプルデータの形式を記述する必須のチャンクが続きます<fmt-ck>。このチャンクには、サンプルのエンコーディング、チャネルあたりのビット数、チャネル数、サンプルレートなどの情報が含まれます。
WAV仕様には、いくつかのオプション機能が含まれています。オプションの<fact-ck>チャンクは、一部の圧縮符号化方式のサンプル数を報告します。チャンク<cue-ck>は、Waveファイル内の重要なサンプル番号を識別します。チャンクを<playlist-ck>使用すると、サンプルを最初から最後まで再生するのではなく、順序を変えて再生したり、繰り返し再生したりできます。関連するデータリスト(<assoc-data-list>)を使用すると、キューポイントにラベルやメモを添付できます。また、サンプルのグループにテキスト注釈(キャプション情報など)を付与することもできます。
最後に、必須<wave-data>チャンクには、以前に指定した形式で実際のサンプルが含まれます。
WAVファイルの定義では、INFOチャンクを配置する場所が指定されていないことに注意してください。また、チャンクの配置CSET(使用される文字セットを指定する)についても何も言及されていません。
RIFF仕様は正式な仕様を目指していますが、その形式論は他のタグ付き形式に見られるような正確さを欠いています。例えば、RIFF仕様では、サブチャンクのセットとサブチャンクの順序付けられたシーケンスを明確に区別していません。RIFF形式のチャンクは、シーケンスコンテナであるべきであることを示唆しています。WAVファイルのRIFF形式では、シーケンス情報は形式論と整合して指定されています。「ただし、 は<fmt-ck>常に の前に出現する必要があり<wave-data>、これらのチャンクは両方ともWAVEファイルでは必須です。」[ 17 ]仕様では、LISTチャンクもシーケンスであると示唆されています。「LISTチャンクには、サブチャンクのリスト、つまり順序付けられたシーケンスが含まれます。」[ 18 ]しかし、仕様ではINFOチャンクの正式な仕様は示されていません。あるチャンクの例では、説明INFOLISTで暗示されているチャンクシーケンスが無視されていますINFO。[ 19 ]のチャンクLIST定義では、チャンクを適切な形式セマンティクスを持つシーケンスコンテナとして <wave-data>使用しています。LIST
WAV仕様は、連続した単一のオーディオサンプル配列をサポートしており、ほとんどのWAVファイルで使用されています。また、サンプルと無音の離散ブロックもサポートしており、これらは順番に再生されます。サンプルデータの仕様には明らかな誤りがあります。[ 20 ]
<wave-data> には波形データが含まれます。これは以下のように定義されます。 <波形データ> → { <データck> | <データリスト> } <データ-ck> → データ( <波形データ> ) <wave-list> → LIST( 'wavl' { <data-ck> | // 波形サンプル <silence-ck> }... ) // 無音 <silence-ck> → slnt( <dwSamples:DWORD> ) // 無音サンプルの数 明らかに、<data-list>(undefined) と<wave-list>(defined but not referenced) は同一であるはずです。この問題を解決したとしても、生成規則は a に再帰的な要素<data-ck>を含めることを許してしまいます(これはデータ解釈上の問題を意味します)。再帰を回避するために、仕様は次のように解釈できます。 <wave-data>
<波形データ> → { <データック> | <波形リスト> } <データ-ck> → データ( <bSampleData:BYTE> ... ) <wave-list> → LIST( 'wavl' { <data-ck> | // 波形サンプル <silence-ck> }... ) // 無音 <silence-ck> → slnt( <dwSamples:DWORD> ) // 無音サンプルの数 WAVファイルには埋め込まれたIFFリストが含まれており、その中には複数のサブチャンクが含まれている場合があります。[ 21 ] [ 22 ] [ 23 ]
これはWAVファイルのヘッダー(44バイト)の例です。データはリトルエンディアンバイトオーダーで保存されます。
[マスターRIFFチャンク] FileTypeBlocID (4バイト): 識別子「RIFF」(0x52, 0x49, 0x46, 0x46) FileSize (4 バイト): 全体のファイルサイズから 8 バイトを引いた値 FileFormatID (4バイト): フォーマット = « WAVE » (0x57, 0x41, 0x56, 0x45) [データ形式を記述するチャンク] FormatBlocID (4バイト): 識別子「fmt␣」 (0x66, 0x6D, 0x74, 0x20) BlocSize (4 バイト): チャンクサイズから 8 バイトを引いた値、つまり 16 バイト (0x10) AudioFormat(2バイト):オーディオフォーマット(1:PCM整数、3:IEEE 754浮動小数点) NbrChannels (2バイト) : チャネル数 周波数(4バイト): サンプルレート(ヘルツ) BytePerSec (4 バイト): 1 秒あたりに読み取るバイト数 (Frequency * BytePerBloc)。 BytePerBloc (2 バイト): ブロックあたりのバイト数 (NbrChannels * BitsPerSample / 8)。 BitsPerSample (2 バイト): サンプルあたりのビット数 [サンプリングされたデータを含むチャンク] DataBlocID (4バイト): 識別子「データ」(0x64, 0x61, 0x74, 0x61) DataSize (4バイト) : サンプルデータのサイズ サンプルデータ
RIFFの派生形式であるWAVファイルは、 INFOチャンクにメタデータをタグ付けすることができます。さらに、WAVファイルは、 XMP( Extensible Metadata Platform)データ[ 24 ]やID3タグ[ 25 ]など、あらゆる種類のメタデータを追加チャンクに埋め込むことができます。RIFF仕様では、アプリケーションは認識できないチャンクを無視することが規定されており、アプリケーションは必ずしもこの追加情報を使用する必要はありません。
非圧縮WAVファイルはサイズが大きいため、インターネット上でのWAVファイルの共有は、ビデオ、音楽、オーディオのプロフェッショナル以外では一般的ではありません。この形式は高解像度であるため、ディスク容量やネットワーク帯域幅に制約のないシステムで使用し、高品質の第一世代アーカイブファイルを保存するのに適しています。
非圧縮の WAV ファイルはサイズが大きいにもかかわらず、ほとんどのラジオ放送局、特にテープレス システムを採用しているラジオ放送局で使用されています。
WAV形式は、以下のファイルサイズに制限されています。4 GiB は、ファイルサイズをヘッダーに記録するために32 ビットの符号なし整数を使用するためです。これは、44.1 kHz、16 ビットステレオで CD 品質のオーディオを約 6.8 時間録音するのに相当しますが、特により高いサンプリングレート、ビット解像度、またはチャンネル数が必要な場合は、この制限を超える必要がある場合があります。そのため、 Sound Forgeで使用するために W64 形式が作成されました。ヘッダーの64 ビットファイルサイズフィールドにより、はるかに長い録音時間が可能になります。欧州放送連合によって指定されたRF64形式も、この問題を解決するために作成されました。
WAVファイルのサンプリングレートは1 Hzから4.3GHz で動作し、チャンネル数は最大65535に及ぶため、WAVファイルはオーディオ以外のデータにも使用されています。 例えば、LTspiceは複数の回路トレース波形を別々のチャンネルに、適切なサンプリングレートで保存することができ、フルスケール範囲は 音圧ではなく± 1VまたはAを表します。 [ 27 ]
オーディオCD(コンパクトディスク)はWAVファイル形式ではなく、Red Bookオーディオ形式を使用します。共通点は、オーディオCDはWAVがサポートする形式の1つである非圧縮16ビット44.1kHzステレオLPCMとしてエンコードされていることです。
WAVファイルの音声は、 GSMやMP3など、様々なオーディオコーディング形式でエンコードすることでファイルサイズを縮小できます。MP3圧縮を使用しているファイルも含め、すべてのWAVファイルは拡張子を使用します.wav。
これは、 WAVファイルで利用可能なオーディオコーディング形式(LPCM、 ADPCM、Microsoft GSM 06.10、CELP、SBC、Truespeech、MPEG Layer-3)のモノラル(ステレオではない)音質と圧縮ビットレートを比較するための参考資料です。これらはWindowsに付属するデフォルトのACMコーデックです。
| 形式 | ビットレート(kbit/s) | 1分 ( KiB ) |
|---|---|---|
| 11,025 Hz 16ビット LPCM | 176.4 | 1292 |
| 08,000 Hz 16ビット LPCM | 128 | 0938 |
| 11,025 Hz 8ビット LPCM | 088.2 | 0646 |
| 11,025 Hz μ-Law | 088.2 | 0646 |
| 08,000 Hz 8ビット LPCM | 064 | 0469 |
| 08,000 Hz μ-Law | 064 | 0469 |
| 11,025 Hz 4ビット ADPCM | 044.1 | 0323 |
| 08,000 Hz 4ビット ADPCM | 032 | 0234 |
| 11,025 Hz GSM 06.10 | 018 | 0132 |
| 08,000 Hz MP3 16 kbit/s | 016 | 0117 |
| 08,000 Hz GSM 06.10 | 013 | 0103 |
| 08,000 Hzレルノウト&ハウスピーSBC 12 kbit/s | 012 | 0088 |
| 08,000 Hz DSPグループTruespeech | 009 | 0066 |
| 08,000 Hz MP3 8 kbit/s | 008 | 0060 |
| 08,000 Hz ラーナウト & ハウスピーCELP | 004.8 | 0035 |
INAM前掲ICOP