我需要将48 {48}的audio file的脉冲响应应用到44.1kHz的音频文件。例如,可能是某人说话。如果我使用的是正确的术语,我需要将两个音频文件合并在一起,这听起来好像有人在大教堂里说话。
我不知道我是怎么做的。我查看了minim库,因为它是我记得使用的唯一音频库,我找到了一个将低通滤波器的脉冲响应应用于音频文件的示例。有没有办法将两个音频文件合并在一起输出新声音?音频处理不是我的强项,所以请不要介意我的无知。谢谢,我正试图解决这个问题。
答案 0 :(得分:0)
是的,卷积是你想要的,但首先你的来源需要是相同的采样率。一旦您的来源具有相同的采样率,您就有两个选项来执行S / R转换:1。您可以“直接”执行此操作,这是最直接的方式,但需要M * N时间,或者您。可以使用傅里叶变换来实现,傅立叶变换要复杂得多,但要快得多。您还需要实现重叠添加算法。看看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或谷歌“离散卷积”
更新:Minim会给你卷积:http://code.compartmental.net/minim/javadoc/ddf/minim/effects/Convolver.html