我正在寻找一个导致音频文件混响的javascript代码。音频文件是使用html5录制的音频文件。我希望能够将混响效果添加到该文件中。我试图在Google上搜索anycode。但如果有人可以请求帮助,却找不到或有时会发现难以理解的事情
答案 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文档中完全嵌入脉冲响应和/或声音。最后,每个脉冲响应都附带一个集成示例,这使得选择和使用特定混响变得更加方便。