Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web Audio MediaRecorder-如何将Ogg重采样为16kHz?_Javascript_Web Audio Api_Ogg - Fatal编程技术网

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

Javascript Web Audio MediaRecorder-如何将Ogg重采样为16kHz?,javascript,web-audio-api,ogg,Javascript,Web Audio Api,Ogg,我正在尝试使用网络音频获得无故障的麦克风音频。根据这一回答: 唯一的方法是使用MediaRecorder API。在Chrome中,MediaRecorder API中唯一支持的音频格式是Ogg。当试图捕捉麦克风输入时,我得到的是48kHz的ogg音频。有没有办法使用web音频API将其重新采样到16kHz,而不引入任何音频故障 我正在尝试以近乎实时的方式传输音频,因此我迫不及待地捕获所有音频并在任何类型的批处理作业中脱机处理它。这里有一种可能的方法。我还没有试过,但可能会有用 创建长度为1且

我正在尝试使用网络音频获得无故障的麦克风音频。根据这一回答:

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


我正在尝试以近乎实时的方式传输音频,因此我迫不及待地捕获所有音频并在任何类型的批处理作业中脱机处理它。

这里有一种可能的方法。我还没有试过,但可能会有用

  • 创建长度为1且采样率为所需的脱机音频上下文
    c
  • MediaRecorder
  • 将区块转换为
    Blob
  • Blob
    转换为
    ArrayBuffer
  • 使用您拥有的
    ArrayBuffer
    调用
    c.decodeAudioData
    。输出将是以所需采样率解码的音频数据

感谢您的建议-我终于开始尝试,我发现MediaRecorder的第一个Ogg数据包将重新采样到16kHz,但随后的数据包不会。原因似乎是decodeAudioData需要完整的音频文件,这意味着它不能用于我的流媒体用例。