1.获取Yaafe
yaafe源码可以从一下获得:
或者
2.获取依赖
Yaafe部署在linux和Max Os X平台上,需要CMake作为编译工具。
Yaafe需要第三方的lib包才能够使用特定的特征。你的电脑需要安装可用的lib包。
是一定需要的。
你可能会用到一些可选的特征,其他的lib包你可能需要用到:
-
>=1.8
为了使用yaafe.py你需要Python>=2.5,还有numpy包。
3.在Debian/Ubuntu下
需要一下的debian/ubuntu包:
-
cmake: cmake cmake-curses-gui
argtable2: libargtable2-0 libargtable2-dev
libsndfile: libsndfile1 libsndfile1-dev
libmpg123: libmpg123-0 libmpg123-dev
lapack: liblapack-dev
hdf5: libhdf5-serial-dev libhdf5-serial-1.8.4
fftw3: libfftw3-3 libfftw3-dev
可以用一下的命令来获得:
> sudo apt-get install cmake cmake-curses-gui libargtable2-0 libargtable2-dev libsndfile1 libsndfile1-dev libmpg123-0 libmpg123-dev libfftw3-3 libfftw3-dev liblapack-dev libhdf5-serial-dev libhdf5-serial-1.8.4
最后的 libhdf5-serial-1.8.4被libhdf5-7:i386 和 libhdf5-7 取代,所以可以用一下代码:
> sudo apt-get install cmake cmake-curses-gui libargtable2-0 libargtable2-dev libsndfile1 libsndfile1-dev libmpg123-0 libmpg123-dev libfftw3-3 libfftw3-dev liblapack-dev libhdf5-serial-dev libhdf5-7:i386 libhdf5-7
4.新建build
在yaafe文件夹下,新建build文件夹,可用命令:
> mkdir build> cd build
开启CMake设置
> ccmake -DCMAKE_PREFIX_PATH=-DCMAKE_INSTALL_PREFIX= ..
也可以直接使用一下代码:
> ccmake ..
或者调用cmake的图形界面,调用命令
> cmake-gui
之后设置选择yaafe文件位置
选择yaafe里面的build文件夹
之后点击configure按钮
之后按照下面图片打勾,如果要用到matlab 那么就全部打勾
最后在点击generate按钮
5.安装
在build文件夹里执行:
> make> make install
如果权限不够,自行添加sudo
6.设置环境
在你安装的路径下你可以找到一下目录:
-
INSTALL_DIR/bin/
INSTALL_DIR/include/
INSTALL_DIR/lib/
INSTALL_DIR/matlab/
INSTALL_DIR/python_packages/
INSTALL_DIR/yaafe_extensions/
你必须把yaafe_extensions目录设置到YAAFE_PATH环境里,这样yaafe才能找到可用的特征:
export YAAFE_PATH=$INSTALL_DIR/yaafe_extensions
为了更方便的使用Yaafe,你可能要设置环境变量:
export PATH=$PATH:$INSTALL_DIR/bin# on MacOsX replace LD_LIBRARY_PATH => DYLD_LIBRARY_PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTALL_DIR/libexport PYTHONPATH=$PYTHONPATH:$INSTALL_DIR/python_packages
如果要用Matlab,你可以设置MATLABPATH变量:
export MATLABPATH=$MATLABPATH:$INSTALL_DIR/matlab
7.测试
测试一下你的yaafe是否安装成功了
新建一个test.py,代码如下:
from yaafelib import *import sysdef getFeature(path): fp = FeaturePlan(sample_rate=44100, resample=True, time_start=20,time_limit=40) # 20s fp.addFeature("energy: Energy")#能量 df = fp.getDataFlow() engine = Engine() engine.load(df) afp = AudioFileProcessor() afp.processFile(engine, path) features = engine.readAllOutputs() energy = features.get('energy') energyMean=energy.mean(axis=0) #均值 energyVar =energy.var(axis=0) #方差 print energyMean[0] print energyVar[0] return if __name__ == '__main__': #print sys.path path='/home/jason/gra/music/test/rock/nono.mp3' getFeature(path)
最后的path换成自己歌曲的路径,如果运行正常则表示成功安装.如果出现问题,可以看看自己的动态路径是否已经设置完毕,
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTALL_DIR/lib
等号后面的路径一般是/usr/local/lib.
这样yaafe就算是安装成功了
总结:对于yaafe的安装过程,出现很多问题,本人在这里也是新手。在最后一步是官方文档中的描述,我只是进行了翻译,因为本人也没有找到这几个文件夹,如果有人能给予回答那么是再好不过了。做到第五步的时候,用python从yaafelib导入已经不会报错了
如果还有问题可以一起讨论,谢谢。