bsd
我正在尝试实现音高检测,而且在学习一些基本的音频物理的过程中,我实际上是非常新的,只是试图了解这整个事情是如何工作的…
我的问题是,究竟什么是audioBuffer,以及来自getChannelData的数据是如何与频率相关的。如何从audioBuffer中提取频率数据.
另外,如果有人能解释一下样本价格等等,那就太好了。
谢谢!
发布于 2017-07-31 15:36:11
AudioBuffer只是表示音频资源,即音频示例和有关音频的附加信息。
例如,您可以访问sampleRate对象的AudioBuffer属性,以了解包含在AudioBuffer中的音频的采样频率。
使用getChannelData将返回一个音频示例数组。在采样率给出的每个间隔,您有一个数字( IEEE 32浮动音频样本包含在-1.0和+1.0之间)对应于样本的音频幅度。因此,这个样本数组包含时域音频信息.
要做基音检测,需要在频域工作,从时域到频域,需要使用傅里叶变换。如果您想了解基本的DSP (数字信号处理)原理,可以使用纯FFT库(例如,节点-fft)。如果您只想实现基音检测,那么使用像pitch.js这样的统包解决方案就更容易了。
https://stackoverflow.com/questions/45397325
复制相似问题