1

什么样的 API 或框架用于为音乐的音符分配值?就像 Shazzam 这样的应用程序如何从麦克风中获取笔记并知道如何处理它?对我来说,手机麦克风和一些漂亮的逻辑可以与音乐商店的调谐器竞争!

编辑 1。

关于这个主题的有趣论文。音乐识别应用程序 Shazzam 的软件基于声学指纹快速傅立叶变换的原理

这是一个示例,一些类似的代码在实践中

4

2 回答 2

3

声学指纹算法不会尝试分析音乐。也就是说,它们不会将麦克风中的音频转换为音符。他们正在从音频中提取一些任意特征,从音乐理论的角度来看这些特征没有多大意义,但它们对于识别音乐仍然很有用。

通常,您从频谱图开始。频谱图是对频率随时间变化的分析。这对于几乎所有声学指纹算法都很常见。他们对频谱图的处理方式以及从频谱图中提取的特征有所不同。一些算法正在寻找频谱图中的峰值,一些算法将其分成规则的间隔。最终目标通常是生成一堆可以索引和快速搜索的哈希值。

Avery Li-Chun Wang 的原始 Shazam 算法是公开的。您可以在此处找到详细信息。

于 2016-07-21T09:03:15.597 回答
0

简短而简单的解释。

step 1. 使用FFT分析所有歌曲文件的原始频率

step 2. 用之前的 FFT 分析结果制作合适的树形数据结构,这样我们就可以按频率搜索歌曲了。

步骤 3. 使用麦克风从外部环境录制歌曲。并使用 FFT 对其进行分析。从之前的频率树中搜索匹配频率。

于 2016-07-21T08:14:51.520 回答