Shazam或Sound Hound如何工作?

我正在开发iOS SDK 5.0的应用程序和XCode 4.2

我想开发一个识别声音的应用程序。 我看到有一个称为声音猎犬的应用程序,可以识别音乐,并告诉艺术家和标题。

我怎样才能做类似的事情? 我想比较一个声音与现有的声音数据库。 我怎样才能做到这一点?

也许我可以使用傅立叶变换 。 我不知道如何处理声音。 或者它可能类似于语音识别,不是吗?

我遇到了一篇文章,解释了audiosearchalgorithm的工作原理。 这是链接 。 它是由SoundHound的一个竞争对手Shazam的开发者之一编写的。

维基百科页面上的好链接包括: http : //www.soyoucode.com/2011/how-does-shazam-recognize-song和论文http://www.ee.columbia.edu/~dpwe/papers/Wang03 -shazam.pdf前面提到的Sub_stantial

Shazam应用程序是链接打开数据中最好的应用程序示例之一,它从最终用户获取短样本音乐,并从数据集中识别歌曲,并链接购买相册。

用户将歌曲标记10秒,应用程序基于简化光谱图的一些锚点和它们之间的目标区域来创buildaudio指纹。

对于目标区域的每个点,他们创build一个散列值,该值是锚点所在的频率,目标区域中的点所在的频率以及目标区域中的点之间的时间差的组合目标区域以及何时锚点位于歌曲中。

一旦audio的指纹被创build,Shazam开始search数据库中的匹配。 如果匹配,则将信息返回给用户; 否则返回“未知歌曲”对话框。