歌曲识别-dejavu-python

Dejavu 是音频指纹和识别的算法的一个 Python实现。Dejavu可以通过听一次,就记住音频然后指纹识别它。通过播放歌曲和录音麦克风输入,dejavu会尝试匹配保存在数据库中的指纹音频,识别歌曲。

本文并不涉及技术细节,工作原理请参考(非常详细):

我使用的系统是Ubuntu 16.04。

安装软件包

ffmpeg用来把.mp3转换为.wav格式

pydubffmpeg的Python封装

portaudio是一个免费、跨平台、开源的音频I/O库。PortAudio操作的I/O不是文件,而是音频设备。pyaudio需要用到这个库

pyaudio用来从麦克风捕获音频

numpy负责对音频信号执行快速傅氏变换

scipy用在执行寻峰算法(peak finding)

matplotlib用来绘图

MySQLdb操作MySQL数据库

在安装MySQL-server时需要设置MySQL root用户密码。

安装PyDejavu


配置数据库

创建一个数据库用来存储音频指纹:

从一堆mp3文件中生成对应的指纹,然后保存到数据库:

genFinger.py:

搭建歌曲识别系统-dejavu-python

识别歌曲:pgetSongName.py

搭建歌曲识别系统-dejavu-python

搭建歌曲识别系统-dejavu-python

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注