我正在尝试使用Web Audio获得无干扰的麦克风音频。根据此答案:https://stackoverflow.com/a/40812061
唯一的方法是使用MediaRecorder API。在Chrome中,MediaRecorder API支持的唯一音频格式是Ogg。尝试捕获麦克风输入时,我收到了48kHz的ogg音频。有什么方法可以使用Web音频API将其重采样到16kHz,而不会引入任何音频毛刺?
我正在尝试近乎实时地传输音频,因此我无法等待捕获所有音频并以任何批处理作业的方式离线处理它。
最佳答案
这是一种可能的方式。我实际上还没有尝试过,但它可能有效。
创建长度为1和所需采样率的脱机音频上下文c
。
从MediaRecorder
抓取一块(或一组块)
将块转换为Blob
。
将Blob
转换为ArrayBuffer
。
用您拥有的c.decodeAudioData
呼叫ArrayBuffer
。输出将是所需采样率的解码音频数据。
关于javascript - Web Audio MediaRecorder-如何将Ogg重新采样到16kHz?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45574482/