同学接了个项目,对音乐进行分类。他用了一个matlab的toolbox,叫啥我忘了,反正是芬兰某高校写的free software,光说明文档就好几百页,成功率在0.8大幅浮动。然后,他写不下去了,换了个项目。他跟我说有个叫essentia的玩意貌似不错,但是他玩不转。
essentia,不是build-essential,也不是而《Essential C++》,而是一个开源c++库,用来分析音频文件,官网http://essentia.upf.edu/。upf是个英国的大学,好像不太知名啊,不过没关系,人家的essentia可是非常好用的哟!安装过程官网上有详解,一步一步来就没问题,需要指出的是……
前段时间无意中发现我的笨笨是i5-430m,64位处理器有木有!!!长期以来我一直认为他是32位中的末代皇帝——在我之后买本的童鞋无一例外预装64位win7或8!心中一阵狂喜,再加上赶上五一,于是乐(shou)呵(jian)的装了个64位ubuntu14.04lts。直到今天,才发现,我还是太年轻了。
essentia只能通过编译源码的方式安装,中间需要一个叫librwsampler.a的库文件。ubuntu12.04以后将这玩意移出了源,取而代之的是libavsamper.a文件。首次编译的时候提示找不到-lrwsampler,于是我机智地去ffmpeg(这玩意也被移除了源)官网上下最新版的源文件,然后又是一通编译。安装好ffmpeg,essentia能够完成所有源文件的编译,但是在最后生成库文件的时候出现问题,大意是说64位与32位不兼容。马丹,所有用到的组件中只有l