为我的音频文件添加混响效果

时间:2014-07-24 06:37:09

标签: javascript html5

我正在寻找一个导致音频文件混响的javascript代码。音频文件是使用html5录制的音频文件。我希望能够将混响效果添加到该文件中。我试图在Google上搜索anycode。但如果有人可以请求帮助,却找不到或有时会发现难以理解的事情

2 个答案:

答案 0 :(得分:4)

github上有几个库可以实现这个目的:

https://github.com/web-audio-components/simple-reverb

https://github.com/Dinahmoe/tuna

他们最终做的是使用AudioContext api创建一个卷积器(如果你不想使用这个库,这也是一个选项)。

原则是:

1.)通过Ajax加载文件,获取响应,并使用保存到变量的AudioContext.decodeAudioData。

2.)创建一个音频上下文,然后将其直接连接到.destination,使用.createConvolver()

添加一个卷积器

audioContext api文档可以为您提供很多帮助:

https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createConvolver

答案 1 :(得分:2)

2015年12月更新:< audio> HTML5中的标记不会为您提供任何更改源音频文件声音的直接方法。因此,您需要更深层次地使用更高级的Web Audio API。

由于不仅有一种方法可以进行混响(有许多房间类型,算法等),因此Web Audio API支持卷积节点,这是对混响,滤波和延迟的推广。 - 类型效果。 Convolution允许您通过脉冲响应精确地再现几乎任何空间(通常是打击声的录音)。使用卷积节点要正确起来有点棘手,它仍然无法解决选择您要重现的特定房间的问题。

为了简化这一过程,我在Web Audio API的卷积节点周围编写了一个混响包装器库,名为 Reverb.js http://reverbjs.org)。该项目还拥有越来越多的Creative Commons许可的脉冲响应,您可以自由使用,或者您可以使用自己的。它还可以从Base64字符串加载音频,因此您可以在HTML文档中完全嵌入脉冲响应和/或声音。最后,每个脉冲响应都附带一个集成示例,这使得选择和使用特定混响变得更加方便。