This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed last year.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
和弦识别仍然是一个研究课题。一个好的解决方案可能需要一些相当复杂的人工智能模式匹配技术。国际音乐信息检索协会似乎每年都会举办一场关于自动转录类型问题的竞赛。您可以查找会议和研究论文,了解已经尝试过的内容以及效果如何。
另请注意,基本音调不一定是具有最高 FFT 幅度结果的频率。对于吉他来说,通常情况并非如此。
Chord recognition is still a research topic. A good solution might require some fairly sophisticated AI pattern matching techniques. The International Society for Music Information Retrieval seems to run an annual contest on automatic transcription type problems. You can look up the conference and research papers on what has been tried, and how well it works.
Also note that the fundamental pitch is not necessarily the frequency with the highest FFT amplitude result. With a guitar, it very often is not.
您需要从我们听到声音的方式来考虑。寻找前 5 个频率不会给你带来任何好处。
您需要查找(最大频率幅度)/sqrt(2) 内的所有频率以确定信号的和弦/非和弦方面。
You need to think about it in terms of the way we hear sound. Looking for the top 5 frequencies isn't going to do you any good.
You need to look for all frequencies within (Max Frequency Amplitude)/sqrt(2) to determine the chord/not chord aspect of the signal.