fread を使用してファイルから pcm サンプルを読み取り、サンプルの信号強度を測定したいのですが、どうすればよいですか?
読み取りの場合、1 pcm サンプルは何バイトで構成されますか? 一度に 1 pcm 以上のサンプルを読み取ることはできますか? これは WAV および AAC ファイル用です。
WAV ファイル (さらには AAC ファイル) はすべて同じではないことを理解する必要があります。ここでは WAV ファイルについてのみ説明しますが、AAC ファイルの場合については理解していただければ幸いです。ご指摘のとおり、WAV ファイルには PCM エンコードされたデータが含まれています。ただし、8 ビット、16 ビット、32 ビット、...Mono、Stereo、5.1、...、8kHz、16kHz、44.1kHz などがあります。これらの値に応じて、データを解釈する必要があります (たとえば、fread()-function) を別の方法で読み取る場合。したがって、WAV ファイルにはヘッダーがあります。最初に、標準的な方法でそのヘッダーを読む必要があります (詳細はわかりません)。次に、実際のデータを読み取る方法を理解します。それほど簡単ではないので、WAV ファイルを読み取るライブラリを使用することをお勧めします。たとえばhttp://www.mega-nerd.com/libsndfile/. もちろん、Google または SO を使用して他のユーザーを見つけることもできます。または、難しい方法で WAV ファイルのヘッダーがどのように見えるかを調べ、そのデータを最初にデコードしてから、実際の PCM エンコード データに移ります。