Web Audio MediaRecorder - 如何将Ogg重采样到16kHz?

时间:2017-08-08 17:22:56

标签: javascript web-audio ogg web-audio-api

我试图使用网络音频获得无故障的麦克风音频。根据这个答案:https://stackoverflow.com/a/40812061

唯一的方法是使用MediaRecorder API。在Chrome中,MediaRecorder API支持的唯一音频格式是Ogg。在尝试捕获麦克风输入时,我获得48kHz的ogg音频。有没有办法使用网络音频API将其重新采样到16kHz,而不会引入任何音频故障?

我试图近乎实时地传输音频,因此我无法等待全部捕获并在任何批处理作业中脱机处理。

1 个答案:

答案 0 :(得分:1)

这是一种可能的方式。我实际上没有尝试过,但可能会有效。

  • 创建长度为1的离线音频上下文c和所需的采样率。
  • MediaRecorder
  • 中抓取一大块(或一组块)
  • 将块转换为Blob
  • Blob转换为ArrayBuffer
  • 使用您拥有的c.decodeAudioData致电ArrayBuffer。输出将是所需采样率的解码音频数据。