Javaでのオーディオの最速かつ最も効率的なアップサンプリングルーチン
-
02-10-2019 - |
質問
オーディオサンプルを11025および22050から44100に変換する必要があります。私は最速で最高のサウンドの変換ルーチンを探しています。外部のルーチンやライブラリを必要とせずに、純粋なJavaで答えを与える必要があります。ソースは、左右のチャネルを表す短い値の配列であり、lrlrlrrのようにインターリーブしています
ガウスの変容が最高だと聞いたことがありますが、CPUキラーです。
アップデート
詳細を追加するには、最高と最速のミックスが必要です。答えは、リアルタイムに近いコミュニケーションに適した素晴らしいサウンドオーディオを提供します。
更新2
私はこれのいくつかの短いコードの例を探しています、あなたのためのEZポイントであるべきですオーディオの第一人者
解決
他のすべてのサンプルに0を記入した後、(最終的に)FIRを使用することができます - あなたは2または4でアップサンプリングします。これはリアルタイムで十分に高速になります。オーディオの品質は、ほとんどのアプリケーションでは問題ありません。
他のヒント
まあ、リアルタイムではないように十分に遅くリサンプするのは困難です:-)最良かつまだ高速なソリューションの1つは、FFTを前方に行い、必要なサンプルレートでFFTを逆にすることです。
これを独自に実装するか、FFT実装をコピーして貼り付けることができます。
これは100倍のリアルタイムまたは高速のように機能する可能性がありますが、1000xがより速い必要があるかどうかはわかりません(この場合、線形または二等層補間に行くことができます):-)
所属していません StackOverflow