使用哪种API或框架为音乐音符分配值?就像Shazzam这样的应用程序如何从麦克风中取出一个音符并知道如何处理它? 对我来说,它是一款令人惊叹的手机麦克风和一些漂亮的逻辑可以与音乐商店的调音器竞争!
编辑1.
有关该主题的有趣论文。 Shazzam音乐识别应用程序的软件 依赖于 Acoustic fingerprinting和Fast Fourier Transform
的原则以下是practice
中类似代码的示例答案 0 :(得分:2)
声学指纹识别算法不会尝试分析音乐。也就是说,它们不会将麦克风中的音频转换为音符。他们从音频中提取一些任意特征,从音乐理论的角度来看,这些特征没有多大意义,但它们仍然可用于识别音乐。
通常,您从谱图开始。频谱图是频率随时间变化的分析。对于几乎所有声学指纹识别算法而言,这是常见的。它们与光谱图的作用有何不同,它们从中提取了哪些特征。一些算法正在寻找频谱图中的峰值,一些算法将其分成规则的间隔。最终目标通常是生成一堆哈希,您可以索引并快速搜索。
Avery Li-Chun Wang的原始Shazam算法已公开发布。您可以找到详细信息here。
答案 1 :(得分:0)
简短而简单的解释。
步骤1.使用FFT
分析所有歌曲文件的原始频率步骤2.使用先前的FFT分析结果制作正确的树数据结构,这样我们就可以按频率搜索歌曲。
步骤3.使用麦克风录制来自外部环境的歌曲。并用FFT进行分析。搜索先前频率树的匹配频率。