如何计算在 Flash 中以 ByteArray 形式捕获的音频录音的平均频率?
现在保持简单,但假设我有一个充满样本数据的 ByteArray 是否可以计算整个录音的平均频率(即音调)?
这是正确的做法吗? p = 69 + 12 x log2(f/440hz) ...
请原谅我的无知
Keeping it simple for now but assuming i have a ByteArray full of sample data is it possible to calculate the average frequency (thus a pitch) from the entire recording?
Is this along the right lines? p = 69 + 12 x log2(f/440hz) ...
Excuse my ignorance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的公式
p = 69 + 12 * log2(f / 440)
用于将以 Hz 为单位的频率转换为音符(MIDI 音符编号)。为此,您需要f
,即音符的频率(以 Hz 为单位),确定起来有点棘手。对于没有噪声的纯音(正弦曲线),它相对简单,否则您需要考虑使用 FFT 或其他方法来识别感兴趣的频率。Your formula
p = 69 + 12 * log2(f / 440)
is for converting a frequency in Hz to a musical note (the MIDI note number). For this though you needf
, the frequency of the note in Hz, which is a little trickier to determine. For a pure tone (sinusoid) with no noise it's relatively straightforward, otherwise you'll need to look at using an FFT or other method to identify the frequency of interest.