0

48kHzのオーディオ ファイルのインパルス応答を 44.1kHz のオーディオ ファイルに適用する必要があります。たとえば、誰かが話している可能性があります。正しい用語を使用している場合、誰かが大聖堂の中で話しているように聞こえるように、2 つのオーディオ ファイルを一緒に畳み込む必要があります。

私が知らないのは、私がこれを行う方法です。私が使用したことを覚えている唯一のオーディオ ライブラリであり、ローパス フィルターのインパルス応答をオーディオ ファイルに適用する例を見つけたので、minim ライブラリを調べました。2 つのオーディオ ファイルを畳み込んで新しいサウンドを出力する方法はありますか? オーディオ処理は私の得意分野ではないので、私の無知を気にしないでください。ありがとう、私は途中でこれを理解しようとしています。

4

1 に答える 1

0

はい、畳み込みが必要ですが、最初にソースが同じサンプルレートである必要があります。ソースが同じサンプル レートになったら、S/R 変換を実行するための 2 つのオプションがあります。はるかに複雑ですが、より高速なフーリエ変換を使用してそれを行うことができます。オーバーラップ追加アルゴリズムも実装する必要があります。Minimのドキュメントを見ると、インパルス応答による畳み込みではなく、標準のIIRフィルターを使用しているように見えるので、役に立たないと思います。Minim が FFT を使用して提供するものの上に畳み込みを行うには、多くの作業を行う必要があります。「直接」ルートに行きたい場合は、次のようになります。

for( i in 0...input.length )
    for( j in 0...conv.length )
        output[i] += i-j < 0 ? 0 : input[i-j] * conv[j] ;

詳細はこちら: http://www-rohan.sdsu.edu/~jiracek/DAGSAW/4.3.htmlまたは google "discrete convolution"

更新: Minim は畳み込みを行います: http://code.compartmental.net/minim/javadoc/ddf/minim/effects/Convolver.html

于 2012-08-20T23:44:18.893 に答える