生のオーディオ データ ストリームをそのWAVEFORMATEXTENSIBLE構造体と共にキャプチャしました。 WAVEFORMATEXTENSIBLEは次の図に示されています。
wavファイルの基準に従って、rawビットをwavファイルに書き込んでみました。私がすることは:
「リフ」と書きます。
DWORD を書き込みます。(ファイルサイズ - sizeof("RIFF") - sizeof(DWORD))。
=== WaveFormat チャンク ===
「WAVEfmt」と書く
DWORD を書き込みます。(WAVEFORMATEXTENSIBLE 構造体のサイズ)
WAVEFORMATEXTENSIBLE 構造体を記述します。
=== ファクトチャンク ===
「事実」を書く
DWORD を書き込みます。( 4 )
DWORD を書き込みます。(ストリーム内のサンプル数。 sizeof(rawdata)*8/wBitsPerSample である必要があります)。
=== データチャンク ===
「データ」と書く
DWORD (生データのサイズ) を書き込む
生データを書き込みます。
上記の手順で wav ファイルを取得した後、wav ファイルをメディア プレーヤーで再生しました。音はありません。Audacity で再生すると歪んだ音が聞こえます。それが正しいオーディオであることがわかりますが、音はノイズで歪む。
生データはこちら
生成したwavファイルはこちら
同じ方法を使用してIEEE-floatデータをwavファイルに変換すると、問題なく動作するため、非常に混乱します。