javascript - 如何在移动网络中以高于7700 Hz的频率录制声音?

标签 javascript audio audio-recording web-audio-api

我正在使用Google Chrome浏览器中的一些录音进行一些测试。我在Matlab中产生了一个白噪声信号,其中包含0-24 kHz之间的所有频率。为了测试chrome的录制功能,我将getUserMediaAudioContext与Web Audio API一起使用来录制声音,结果如下:Results of recording

在chrome om mobile中似乎进行了某种低通滤波。我已经在iOS Safari和chrome和其他android手机上尝试了此操作,并给出了结果。而且,使用来自Google Play或App Store的常规频率分析应用程序似乎可以在整个频谱范围内正常工作,因此问题不在于手机本身。

我想知道是否对此有任何解决方法,为什么会这样呢?这是某种目的吗?

最佳答案

我的猜测是您遇到了一些自动应用的噪声抑制过滤器。默认值经常优化语音,这可能会进行一些低通滤波。尝试遍历约束:

var supportedConstraints = navigator.mediaDevices.getSupportedConstraints();

并查看其中是否有您所需要的东西,例如
var constraints = 
{
  audio: {
      optional: [{ echoCancellation: false },
          { noiseSuppression: false }
      ]
  }
};
navigator.getUserMedia(constraints, gotStream, errorout );

关于javascript - 如何在移动网络中以高于7700 Hz的频率录制声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55949446/

相关文章:

c - 检测特定频率和持续时间的蜂鸣声

android - 在状态 8 中调用 MediaPlayer 暂停

android - 音频信号的卷积

无法打开/dev/dsp

javascript - 排序对象属性和 JSON.stringify

javascript - 为什么此声音会在webaudio api中不断重新触发?

javascript - 如何防止在选择元素上选择和复制

iphone - 在 iPhone 上以 IMA4 格式录制单声道

javascript - 将箭头功能更改为普通功能?

javascript - 我们怎么称呼 JS async "strands of execution"?