- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以在Internet上找到的所有示例都只是将函数computeSpectrum
的结果数组可视化,但是我要承担其他任务。
我生成一个音符,我需要通过分析结果数组来说出正在播放的音符。我发现我需要将函数调用“FFTMode”的第二个参数设置为true,然后它返回声音频率。我认为实际上它应该只返回一个非零值,我可以用它来确定使用Math.sin函数生成的音符,但事实并非如此。
有人可以建议我如何完成任务吗?必须使用soundMixer.computeSpectrum,因为稍后我将分析更复杂的声音。
最佳答案
FFT 会将您的信号窗口转换为一组奈奎斯特正弦波,因此,除非440Hz
是其中之一,否则您将获得不止一个非零值!对于单个正弦波,由于混叠,您将获得2个频率。这里有个例子:
如您所见,对于精确的奈奎斯特频率,FFT响应是单个峰值,但对于附近的频率,会有更多的峰值。
由于信号的形状,您可以获得具有峰值而不是离散值的连续频谱。i-th
样本的频率为f(i)=i*samplerate/N
,其中i={0,1,2,3,4,...(N/2)-1}
是样本索引(第一个是 DC 偏移量,因此不是0
的频率),而N
是传递给 FFT 的样本计数。
因此,如果要检测一些谐波(单个基频的倍数),则设置samplerate
和N
,以便samplerate/N
是该基频或其分频器。这样,您将只获得谐波正弦波的一个峰值。简化计算。
关于actionscript-3 - 了解soundMixer.computeSpectrum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44218400/
我可以在Internet上找到的所有示例都只是将函数computeSpectrum的结果数组可视化,但是我要承担其他任务。 我生成一个音符,我需要通过分析结果数组来说出正在播放的音符。我发现我需要将函
Netstream仅作为声音? 我正在尝试将来自网络流的声音放入Sound变量,以便像this tutorial一样可视化它。 Adobe ActionScript 3.0 *访问原始声音数据 问题是
我正在使用 Flash Player 10.3 的 Actionscript 3.0 进行开发 我正在使用 计算频谱()在加载的 .mp3 上 运行 *Event.ENTER_FRAME* 以获取 b
我只是想了解从 computeSpectrum(bytes,true,0) 发回的值是什么意思。对于我从字节数组中读取的每个浮点数,我的值范围从 0 到 1,但每个值是否表示赫兹的范围。 最佳答案 由
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我习惯于使用 SoundMixer.computeSpectrum,但我需要从麦克风中即时获取一些数据(我不能将 SoundMixer 与麦克风一起使用)。 我在转换 FFT 数据(来自 this c
我是一名优秀的程序员,十分优秀!