- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想捕捉一个小时间窗口(即 ~1 秒)的傅里叶变换。
let audioCtx = new AudioContext();
let analyser = audioCtx.createAnalyser()
let buffer = new Uint8Array(analyser.frequencyBinCount);
//given an audio stream 'stream'
let source = audioCtx.createMediaStreamSource(stream);
setInterval(()=>{
analyser.getByteFrequencyData(buffer);
//Do some analysis with buffer...
},1000)
使用 WebAPI 的 AnalyserNode,我可以获得宽度为 44100/analyser.fftSize = 22050/analyser.frequencyBinCount
的 bin 中的傅立叶数据,允许通过设置 analyser.fftSize
指定分辨率>。我从文档中不清楚的是时间窗口是如何设置的。
来自API :
Rendering an audio graph is done in blocks of 128 samples-frames. A block of 128 samples-frames is called a render quantum, and the render quantum size is 128.
这是否意味着 128/44100Hz=2.9ms
的时间窗口?
最佳答案
Rendering an audio graph is done in blocks of 128 samples-frames. A block of 128 samples-frames is called a render quantum, and the render quantum size is 128.
这是否意味着 128/44100Hz=2.9ms 的时间窗口?
不完全是。渲染量程大小是渲染循环一次处理的样本帧数,但它不会阻止节点在缓冲区中累积额外的样本。在 AnalyserNode
的特定情况下,保留最后的 fftSize
样本用于 FFT 计算。所以时间窗口实际上是 analyser.fftSize/sampleRate
,其中 sampleRate
是您的 configured sample rate (可能是 44100,但可能因输出设备而异)。要捕获约 1 秒的音频,假设采样率为 44100Hz,您需要 fftSize = 32768
(这将导致约 0.74 秒的时间窗口)。
关于javascript - AnalyserNode.getByteFrequencyData中的数据对应的是什么时间窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809131/
我想捕捉一个小时间窗口(即 ~1 秒)的傅里叶变换。 let audioCtx = new AudioContext(); let analyser = audioCtx.createAnalyser
WebAudio的AnalyserNode有一个FFT来获取声音信号的频域数据。我不明白 FFT 的窗口函数是如何定义的。是否可以更改窗口大小甚至窗口函数(即 Hanning 或 Blackman)?
我正在尝试使用 Web Audio API 编写自相关算法。自相关仅依赖于时域中的数据,而不依赖于频域中的数据,因此我仅使用 getByteTimeDomainData()。我很难找到有关 Analy
我正在使用 Web Audio API 来显示正在播放的音频的可视化效果。我有一个 控制播放的元素,然后我通过创建 MediaElementSource 将它连接到 Web Audio API来自
代码应该流式传输任何 url 并提供音频的可视化。不幸的是,可视化工具无法正常工作。可视化依赖于来自 AnalyzerNode 的数据,它总是返回空数据。为什么这段代码中的 AnalyserNode
我想我可能对使用 AnalyserNode 有点困惑。我目前将我的 userAudio 流“输入”连接到 AnalyserNode。然后我使用 getByteFrequencyData() 填充一个
在Web Audio API中,AnalyserNode的getFloatFrequencyData()和 getByteFrequencyData()方法为我们提供FFT分析数据,其域是频率,余域是
我正在使用 Web Audio API,但有些行为我无法理解。 var audio = document.querySelector('audio'); var context = new Audio
我无法在移动设备中使用 AudioContext.createMediaElementSource 使 AnalayserNode 工作。它不适用于 iOS 上的 Safari,也不适用于 Andro
背景 我的目标是创建一个基于 JavaScript 的网络应用程序来分析和显示音频源中的频率信息,包括页面内源( 标记)和从客户端麦克风流出的信号。我正在路上:) 作为一名敏锐的萨克斯管演奏者,我的目
所以我想我明白 getFloatFrequencyData很不错。如 getFloatFrequencyData返回一个包含 1024 个值的数组,每个值代表一个频率区间/范围的音量。在采样率为 44
实现 Peak Meter 的正确方法是什么?就像 Logic Pro 中的那些使用网络音频 API AnalyserNode ? 我知道AnalyserNode.getFloatFrequencyD
我正在尝试使用 Web-Audio 的分析器节点并不断从中得到奇怪的结果。 代码: var self = this; var bufferSize = 512; var spectrum = new
这似乎是一个常见问题 - Javascript Web Audio API AnalyserNode Not Working - 但我不确定我是否在我的实现中找到了边缘案例。 我使用 createMe
我一整天都被这个问题困扰了。尝试从 getUserMedia 中分离源并分别可视化左 channel 和右 channel 。无论我做什么,每个可视化工具都停留在单声道状态。我使用的源是立体声(如果我
网络浏览器中的音频分析可以通过 AnalyserNode of Web Audio API 轻松执行。 Node.js 有类似的东西吗? 最佳答案 您可能对 https://www.npmjs.com
我是一名优秀的程序员,十分优秀!