こんにちは、44.1kHzから8kHzまでのwavオーディオファイルのサンプルレートをダウンサンプリングする必要があります。バイト配列ですべての作業を手動で行う必要があります...これは学術的な目的のためです。Javaダウンサンプリングのwavオーディオファイル
現在、2つのクラスSinkとSourceを使用して、バイト配列をポップしてプッシュしています。線形補間を使用してデータチャンクをダウンサンプリングする必要がある部分に到達するまでは、すべてうまく行きます。
私は44100から8000 Hzにダウンサンプリングしているので、128 000 000バイトのようなものを含むバイト配列をどのように補間しますか?今、私は5%、6%、7%のバイトをポップしています。%2 == 0、%2 == 1、%80 == 0、これらの5,6,7バイトの平均を新しいファイルにプッシュします。 。
結果は実際にはオリジナルのオーディオファイルよりも小さいですが、Windows Media Playerで再生できません(ファイルを読み込んでいる間にエラーが発生しています)、正しいトラックが聞こえるものの、雑音。
これをまとめるには、線形補間の部分について助けが必要です。前もって感謝します。
現在使用しているコードを投稿すると、バグを見つけやすくなります。 –