【问题标题】:Recognising an individual guitar chord from an audio sample从音频样本中识别单个吉他和弦
【发布时间】:2012-03-15 06:58:39
【问题描述】:

我意识到这里已经有一些关于和弦检测算法的问题;然而,其中大部分似乎更多地与将歌曲解释成和弦集或和弦转录有关。我的问题应该简单得多,因为我只对录制吉他和弦的单个弹奏感兴趣,然后对其进行分析以返回播放的和弦。而且,如果这被证明太难了,那么仅仅能够判断一个特定的和弦是否被正确演奏就足够了,例如。向用户展示一个尝试弹奏的和弦,在弹奏之后,应用程序会告诉他们他们弹奏的和弦是否正确(类似于记忆游戏)。我认为第二个选项会更容易,因为应用程序已经知道预期的和弦。

我已经将 FFT 和谐波乘积频谱用于吉他调音器,作为同一应用程序的一部分,并且非常想获得一些关于如何分析 FFT 输出的频谱以识别吉他和弦的建议。我也愿意接受有关此问题的任何其他建议,并且非常感谢我能获得的任何帮助。

谢谢

【问题讨论】:

标签: fft detection spectrum guitar music-notation


【解决方案1】:

您可以尝试对最常见的和弦进行指纹识别,然后在您的指纹集中寻找最匹配的归一化频谱。例如将其视为频域中的模式匹配问题。

【讨论】:

  • 感谢您的回答。您能否详细说明如何使用指纹识别方法?识别不同和弦的峰值然后使用某种最大似然算法是一件相当简单的事情吗?
  • 指纹无法工作,因为不同的吉他有不同的音色。
  • 没有什么可以阻止人们对种类繁多的吉他进行指纹识别。在测试我的吉他调音器时,我参观了十几家吉他商店,调了几百把不同的吉他,从便宜的学生玩具到相当昂贵的。不知道为什么,但店员从不打扰我或问我在做什么。
【解决方案2】:

对于想知道如何做这种事情的任何人,请查看谐波产品频谱和音高类配置文件/色度向量。这些的组合是关键。此外,使用搜索词“多重 F0 估计”而不是“和弦检测”将保证更好的结果:)

【讨论】:

    【解决方案3】:

    虽然来不及回复,但希望对你有所帮助..

    如果您正在为电子或 MIDI 吉他或任何其他 MIDI 乐器编程,那么有一个非常有效的 Java 包 JFugue 用于这些东西,例如检测和弦音符等。对于任何乐器,还有更多的功能包裹。 我建议你看看它Jfugue.org

    【讨论】:

      【解决方案4】:

      我自己一开始发现很难使用 FFT 识别整个和弦。但就我的实验而言,我能够使用 FFT 作为获取单个声音数据频率的基本算法来制作吉他和弦标识符。 FFT 调谐器的问题在于它们只能检测声音的根音。虽然我的实验证明您可以记录正在演奏的弦乐的所有音符,并使用已识别的音符来判断正在演奏的和弦。就目前而言,我的研究还仅限于检测吉他的大和弦以及一些小和弦,如 Em 和 Am,以供进一步研究。

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 1970-01-01
        • 2011-06-29
        • 2011-07-24
        • 2011-05-28
        • 2011-10-26
        • 1970-01-01
        • 2010-11-05
        相关资源
        最近更新 更多