【问题标题】:How to Calculate fundamental frequency of microphone input using Harmonics data如何使用谐波数据计算麦克风输入的基频
【发布时间】:2017-03-06 11:46:49
【问题描述】:

我可以通过使用 GetSpectrumData 函数找到最高峰值箱来计算从 Unity 中的麦克风输入的实时音频的基频。 但它在较低频率时失败。 我认为如果我演奏低频音符,我会得到谐波的频率。 如何使用谐波数据计算基频。

【问题讨论】:

  • 您可以使用适当的音高检测算法而不是尝试重新发明轮子,或者如果您只是想要一些“快速而肮脏”的东西,那么您可以测量连续谐波之间的距离,因为这通常与基频相同。
  • 如果输入是单声道并且不是很嘈杂,您可以使用autocorrelation
  • @Linuxios 我已经尝试了自相关,它工作正常,(pitchtracker.codeplex.com)。但我也想要前 7 个谐波的幅度。使用自相关是否可能。如果是的话,你能引导我走上正确的道路吗?
  • @TUSHARKHAVALE:在这种情况下,不,您需要查看光谱数据。
  • 是否有可能您没有使用足够长的样本?较低的频率将需要更长的时间周期(因此需要更多的样本)才能在整个波长中振荡。只有通过对整个波长进行采样,您才能确定音调的峰值。波长 = 1/频率

标签: audio unity3d signal-processing fft pitch-detection


【解决方案1】:

您可以使用 Harmonic Product Spectrum 算法进行泛音丰富的单音音高检测和估计。

倒谱或倒谱分析是另一种可能性。

【讨论】:

猜你喜欢
  • 2017-06-28
  • 2014-02-16
  • 2012-02-21
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
相关资源
最近更新 更多