Webaudio:在响亮的同步声音后录制音频

时间:2021-02-23 11:28:58

标签: javascript audio web-audio-api mediarecorder audio-worklet

我正在构建一个网络应用程序,它会在麦克风听到响亮的同步噪音(如拍手声)后直接记录来自麦克风的音频。我正在寻找一种适用于桌面和 android 上的 chrome 的解决方案。

我尝试了以下方法

  1. 使用一个脚本处理器节点,它会监听麦克风并检测到一个响亮的节点,然后直接保存原始数据。

这种方法确实有效。但是由于节点运行在主线程中并且掉帧,录制的音频是垃圾和毛刺的。

  1. 使用 audioWorklet 将音频处理放在不同的线程中,并使用端口将记录的数据发送回主线程。

这种方法效果更好。它适用于 chrome 桌面。但是录制的音频在 android 上听起来很垃圾。我在 chrome 上提出了一个问题,请参阅票证 here

有没有人有他们建议的其他方法?也许通过以某种方式使用 MediaRecorder ?但是,我们无法访问原始音频,因此无法判断是否播放了响亮的同步声音,除非有一些巧妙的方法。

请注意,我对同步后期录制的方法不感兴趣。

更新

使用脚本处理器节点监听响亮的掌声并触发 MediaRecorder 启动是一个很好的解决方案!

1 个答案:

答案 0 :(得分:0)

@AKX 建议让 scriptprocessnode 监听响亮的声音然后触发 MediaRecorder 似乎是迄今为止最好的。诀窍是将脚本处理器节点的缓冲区大小设置得尽可能低!

相关问题