AcoustID是一个开源的音频识别项目。官网链接:https://acoustid.org/ bitbucket链接:https://bitbucket.org/account/user/acoustid/projects/AC
该项目的组件包括:
1. Server: 一个Python编写的Web应用。配置完成后,可以通过Url访问Web服务,并根据api参数从后台PostgreSQL数据库中查询或提交音频指纹。
2. Chromaprint:可提供一个客户端的公共库,能够通过特定算法计算音频文件的指纹,是AcoustID项目的核心。
3. Fingerprinter:一个跨平台的Gui应用,用户在使用时可选取本地音频文件,并添加meta信息,Fingerprinter可以将该音频文件的指纹提交到AcoustID的后台数据库。
以上三个组件中,Chromaprint和Server是本地测试应用时必须配置的,源码也具有很大的参考价值。Fingerprinter相对来说用处不大,更多的是用户对AcoustID数据库的一种反馈。
本篇文章将记录AcoustID-Chromaprint的环境配置过程。参考:https://bitbucket.org/acoustid/chromaprint
###获取源代码###
git clone https://bitbucket.org/acoustid/chromaprint.git wget http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.bz2
###安装FFmpeg###
tar jxvf ffmpeg-3.1.1.tar.bz2 cd ffmpeg-3.1.1 sudo apt-get install pkg-config ./configure --enable-shared make && make install
#这里需要注意,一定要设置--enable-shared选项,否则安装Chromaprint时会报错:/usr/local/lib/libavcodec.a:could not read symbols:Bad value
#也可以根据需要使用./configure --help设置其他选项
###安装Chromaprint###
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON . make sudo make install
###测试用例fpcalc###
cd examples ./fpcalc test.mp3 -length 301
安装成功后,可以用fpcalc计算音频文件的指纹。length参数为歌曲时间(秒数)。