智能手机上音符的音高识别,pt。 2

Posted

技术标签:

【中文标题】智能手机上音符的音高识别,pt。 2【英文标题】:Pitch recognition of musical notes on a smart phone, pt. 2 【发布时间】:2009-09-29 06:04:02 【问题描述】:

作为我之前question的后续,如果我想让我的智能手机应用程序检测到某个音符,我只需要知道传入的声音是否是那个音符,并带有一定数量的模糊性,让音符偏离 x 美分。

鉴于此,在速度和准确性方面是否有比其他方法更好的方法?也就是说,通过知道您要查找的音符是#C3,如何最好地判断该音符是否存在?我假设寻找单个音符比分离所有波形,然后查看基频的结果更容易。

在对我最初的问题的回答中,一位受访者表示,如果您知道注释在某个范围内,自相关可能会很好地发挥作用。我想知道如果您只需要检查某个音符是否存在(+/- x 美分),那么自相关是否会更好。

这些方法是:

亲吻 FFT FFTW 离散小波变换 自相关 过零分析 倍频程过滤器 载重吨

任何想法都将不胜感激。

【问题讨论】:

你能更详细地描述这个问题吗?您要使用麦克风聆听并在听到特定音调时激活某些东西吗?或者你想写一个吉他调音器?或者你想写一个音乐转录器?音调是否会由您也控制的人声、乐器或发射器产生?它是否需要特定的波形(正弦波、方波)或任何具有正确频率的波形?等等等等 我想用(任何我希望的)乐器演奏的音符来控制我的软件,甚至可能是嗡嗡声。 啊。识别特定音高(而不是其谐波或次谐波之一)并非易事。例如,小号的谐波比基音强。 cnx.org/content/m15456/latest/sub_concept-trumpet-spectrum.png 但是已经为你做了很多工作。我猜只是搜索“音高估计”。 【参考方案1】:

正如您所描述的,您只需要确定是否存在特定音高。一个非常简单(快速)的检测器将只记录波形的一个周期,然后记录另一个周期并将它们关联起来,就像一个过度简化的(单滞后)自相关。如果匹配度高,您就知道正在记录的波形在大约相同的周期重复,或者是它的谐波。

例如,要检测 1 kHz,记录 1 ms 的音频(48 kHz 的 48 个样本),然后再记录 1 ms,并比较它们(相关 = 将所有样本相乘并求和)。如果它们对齐(相关性高于某个阈值),那么您正在收听 1 kHz、2 kHz、3 kHz 或其他一些倍频。做几个时期会让你对比赛更有信心。

真正的自相关会告诉你哪个谐波,特别是,如果它对你很重要。

【讨论】:

这听起来像是一种快速的方法,但我想测试超过 3 或 4 个八度音阶的 50 个左右的音符中的​​任何一个。实际上,我希望用户设置某种程度的“模糊性”,以便音符可以偏离一些美分。这是否意味着最好只进行 FFT 并查看结果频率,而不是使用自相关。 自相关会更好,我认为,因为它匹配整个波形。使用 FFT,您需要确定哪个最大值对应于波的基频。对于较大的自相关(匹配低频),您实际上可以通过 FFT 来加速自相关。 :) 但我认为对于少量样本,“幼稚”的实现可能很快。 而且“模糊性”是内置的。如果您正在寻找 100 Hz 且波形为 98 Hz,它仍然会匹配,只是不太匹配。

以上是关于智能手机上音符的音高识别,pt。 2的主要内容,如果未能解决你的问题,请参考以下文章

内置传感器---智能手机(资料)

移动端车牌识别——可以嵌入智能手机系统里的新OCR识别技术

安卓手机如何设置短信拦截

型号pt924g路由器怎么更快

overture怎么打出这个音符

ES 智能科技AI图像识别