我想通过使用具有低通/高通滤波器的音频上下文来可视化两个值之间的频率。
我真的不知道为什么过滤器到目前为止还没有使用
我写的代码:
navigator.getMedia = navigator.getUserMedia || navigator.msGetUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
let ctx = new AudioContext();
let analyser = ctx.createAnalyser();
analyser.fftSize = 2048;
let gotData = (data) => {
// visualize data
}
navigator.getMedia({
audio: true
}, (d) => {
let microphone = ctx.createMediaStreamSource(data);
var biquadFilterHigh = ctx.createBiquadFilter();
biquadFilterHigh.type = "highpass";
biquadFilterHigh.frequency.value = 2000;
biquadFilterHigh.gain.value = 25;
var biquadFilterLow = ctx.createBiquadFilter();
biquadFilterLow.type = "lowpass";
biquadFilterLow.frequency.value = 5000;
biquadFilterLow.gain.value = 25;
microphone.connect(analyser);
analyser.connect(biquadFilterLow)
biquadFilterLow.connect(biquadFilterHigh)
let scriptProcessor = ctx.createScriptProcessor();
biquadFilterHigh.connect(scriptProcessor);
scriptProcessor.connect(ctx.destination);
scriptProcessor.onaudioprocess = gotData
}, () => {})
我目前无法过滤两个特定值之间的频率,如2kHz和5kHz之间。我究竟做错了什么?
发布于 2019-01-04 16:10:59
也许尝试一些不同的频率,仅低通,只是为了调试这个。
10 kHz至15 kHz是非常高的频率。许多老人不会听到任何一个。
如果你正在使用Speech,那么大多数有趣的东西都会发生在10 kHz以下。
语音主要在150到600 Hz的范围内,有些共振峰直到2 kHz,还有一些不和谐。但是在你过滤的范围内,你可能会发现主要是嘶嘶声,T和S的一些较高部分。
https://stackoverflow.com/questions/-100006359
复制相似问题