使用 Web Audio API 或其他任何东西在前端修剪静音

IT技术 javascript reactjs web-audio-api
2022-07-15 23:43:20

我正在尝试从浏览器中记录的音频文件中修剪前导和尾随静音,然后再将其发送到服务器存储。

我一直在寻找示例以更好地理解 WebAudioApi,但是示例分散并涵盖了诸如“ScriptProcessorNode”之类的贬义方法,当我找到这个示例时我认为我已经接近了

HTML 录音直到静音?

我渴望看到至少沉默被处理,我想我可以用它来随后修剪。但是,在沙箱中加载示例后,它似乎并没有以我可以理解的方式检测到静音。

如果有人有任何帮助或建议,将不胜感激!

1个回答

虽然ScriptProcessorNode已弃用,但它不会很快消失。如果可以,您应该使用AudioWorkletNode(但并非所有浏览器都支持)。

但是由于您将录制的音频保存在一个文件中,因此我将使用它对其进行解码decodeAudioData以获取AudioBuffer. 然后用于getChannelData(n)获取Float32Arrayn'th 频道。分析这个数组,但是您想确定开头的静音在哪里结束,结尾的静音从哪里开始。对每个n.

现在你知道非静音部分在哪里了。WebAudio 无法对此音频进行编码,因此您要么必须进行自己的编码,要么对其进行编码,MediaRecorder以便将其发送到您的服务器。