WAVEファイルの構造
無圧縮の音声ファイルにWAVEファイルというものがあります。
この形式で保存されているファイルの構造を説明します。
音声ファイルを編集しようと考えている方の参考になればとおもいます。
ヘッダ情報の構成
開始byte 終了byte byteデータ内容 1 4 4'RIFF'の4文字 5 8 4総ファイルサイズ-8(byte) 9 12 4'WAVE'の4文字 13 16 4'fmt 'の4文字 フォーマットチャンク 17 20 4フォーマットサイズ デフォルト値16 21 22 2フォーマットコード 非圧縮のPCMフォーマットは1 23 24 2チャンネル数 モノラルは1、ステレオは2 25 28 4サンプリングレート 44.1kHzの場合なら44100 29 32 4バイト/秒 1秒間の録音に必要なバイト数 33 34 2ブロック境界 ステレオ16bitなら、16bit*2 = 32bit = 4byte 35 36 2ビット/サンプル 1サンプルに必要なビット数 37 40 4'data'の4文字 フォーマットチャンク 41 44 4総ファイルサイズ-126 この先は音声データが続くこのほかに、LISTヘッダというものがありますが、必須情報ではないので説明しません。
サンプリングレート44.1kHzの音声1秒間データの例
1ブロックの音声データ構成
フォーマット 1バイト目 2バイト目 3バイト目 4バイト目 8ビット モノラル 右チャンネル16ビット モノラル 右チャンネル8ビット ステレオ 右チャンネル 左チャンネル16ビット ステレオ 右チャンネル 左チャンネル
ヘッダ情報
フォーマット 8ビット
モノラル 16ビット
モノラル 8ビット
ステレオ 16ビット
ステレオRIFFヘッダ 52 49 46 46 52 49 46 46 52 49 46 46 52 49 46 46総ファイルサイズ-8 68 AC 00 00 AC 58 01 00 AC 58 01 00 10 B1 02 00WAVEヘッダ 57 41 56 45 57 41 56 45 57 41 56 45 57 41 56 45フォーマットチャンク 66 6D 74 20 66 6D 74 20 66 6D 74 20 66 6D 74 20フォーマットサイズ 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00フォーマットコード 01 00 01 00 01 00 01 00チャンネル数 01 00 01 00 02 00 02 00サンプリングレート 44 AC 00 00 44 AC 00 00 44 AC 00 00 44 AC 00 00バイト/秒 44 AC 00 00 88 58 01 00 88 58 01 00 10 B1 02 00ブロック境界 01 00 02 00 02 00 04 00ビット/サンプル 08 00 10 00 08 00 10 00dataチャンク 64 61 74 61 64 61 74 61 64 61 74 61 64 61 74 61総ファイルサイズ-126 F2 AB 00 00 36 58 01 00 36 58 01 00 BE B0 02 00