shazam听歌识曲算法的解析+python实现-1 读取歌曲
Aynakeya
2019年01月21日 16:14
收录于文集
共3篇

开新坑,歌曲识别计划。 使用的算法是《An Industrial-Strength Audio Search Algorithm》,部分算法借鉴了Github的dejavu(https://github.com/worldveil/dejavu)项目。 关于读取歌曲,首先需要安装一个python库. 。你可以使用来安装。

代码片段1

可以读取大部分音频,wav除外。在项目中,我们需要直接对音频信息进行操作,我们可以使用raw_data 来获取最原始的数据。另外我们需要知道音频的采样速率,用frame_rate 来获取。 由于现在大部分音频都是立体声的(有多个通道),所以,对于每一个通道我们都需要分开处理。raw_data 返回的格式是这样子的[sample_1_L, sample_1_R, sample_2_L, sample_2_R, …] (在这里有左声道和右声道),分开不同的通道通道可以用切片来做 这样子,读取音频的工作就完成了。 另外,读取音频的时候可以计算一下文件的sha256值来作为这一首歌的唯一识别码。

代码片段2

其中,sha256可以替换为其他,如md5,sha1,sha128之类的,效果都一样。