《openSMILE用户手册》第2章 (1) openSMILE安装

语音情感计算经常会用到openSMILE进行语音特征的提取,openSMILE作为一款已经被很多研究者使用的提取情感特征的工具箱,却没有一个完整的中文版手册,也是为了自己查阅方便吧,慢慢翻译一下,算是记录自己的工作,如能给有需要的同行觉得有点用处当然好,即便不能方便什么人,也算是自己的一点积累吧。水平有限,难免错漏,请不吝赐教。先放上来,边写边修正和排版吧。

使用openSMILE

现在我们说明如何开始使用openSMILE。首先,我们将解释如何获取并安装openSMILE。如果你已经有安装好openSMILE可以直接跳到2.3节,在这里我们解释如何使用openSMILE来实现你的第一个特性提取任务。接下来我们将在2.4节给出一个关于openSMILE架构的概述。这个将帮助您了解openSMILE内部发生了什么,以及为什么某些事情是容易,而其他可能会需要很多小技巧。接下来,为了充分利用openSMILE的功能,学习编写openSMILE配置文件是非常重要的。第4.2节将解释所有必要的方面(参数)。最后,让你的生活更简单一点,并研究社区的各种任务使用共同的特征集提供了一些示例配置文件。这些在第2.5节详述。包括INTERSPEECH2009 - 2013情感和旁系语言学竞赛的基线特征集。在第2.6节中,我们将教你如何使用PortAudio接口组件来设置一个简单的录音机和播放器以及一个全面的实时特征提取系统。 2.7节将帮助您开始使用视频功能提取和同步视听特征提取。2.8节中解释将指导你如何使用开源工具gnuplot绘制提取的特征。

2.1获取并安装openSMILE

效率提醒:如果你已经下载了openSMILE,并且是Windows和/或Linux上的软件的编译专家,你可以跳到2.2.1节,其中包含了快速编制指令。

openSMILE的最新稳定版本可以在 http://opensmile.audeering.com/ 找到。
主要版本包括Windows(32位)和Linux(64位)以及Android的二进制文件ARM(自2.1以来,android-10)。所有版本都包含可以编译的源代码Linux,Max OS,Windows和Android。如果您需要通过portAudio进行实时音频录制/播放功能,则Linux/Unix和Mac OS系统是必须的。Linux系统发行包包含静态链接的主要可执行文件SMILExtract,Windows发行包包含SMILExtract Release.exe和openSmileLib Release.dll 在bin/文件夹中,示例配置文件在config/文件夹中,可视化脚本 以及其他比如建模任务在scrrpts/文件夹,其他资源在src/文件夹。

SMILExtract -h

如果你看到使用信息,一切正常。对于具有PortAudio支持(PA后缀)的Windows二进制文件和没有portaudio支持的二进制文件。还提供了一个编译的portaudio DLL,它与Windows Media Extensions API链接。所有这些可执行文件都可以在bin子目录中找到,并且您的选择版本必须复制到openSMILE发行版的顶级目录SMILExtract.ext中,以便能够在正确执行本教程中的示例命令,确保您也将相应的.dll复制到顶层目录,而无需重命名!)。
对于Linux,发行版中包含的Linux二进制文件是静态链接的二进制文件,即共享API libopensmile被链接到二进制文件中。二进制文件只依赖于libc6和pthreads。这种方法的缺点是你不能使用这些二进制文件的二进制插件!为了使用插件,您必须编译源代码以获取动态链接到libopensmile的二进制文件(请参阅第2.2.2节)。由于没有为Linux提供支持PortAudio的二进制版本,所以如果需要使用PortAudio音频录音/回放,您必须从源代码进行编译(请参阅第2.2.2和2.2.3节)。
ARM/Android平台的二进制文件在bin/android-*/.libs文件夹中,仅在2.1及以上版本提供。您可以直接在Android eclipse项目中链接到.libs文件夹以使用它。更多Android应用程序开发文档请看后文。
没有提供支持openCV的openSMILE二进制文件 。要使用视频功能,您必须在安装了openCV的机器上从源代码进行编译,Windows和Linux均可支持。见2.2.4和2.2.7节。如果您已经获得了源代码文件,请阅读下一节如何编译和安装它。

2.2编译openSMILE源代码

除了Unix系统上的pthread之外,openSMILE的核心部分编译时没有任何第三方依赖。核心版本只是一个命令行功能提取器。此版本不能进行实时录音/播放。实时音频支持编译需要PortAudio库,它可增加对Linux,Windows和Mac OS上的录音和播放的支持。有关如何在Linux上获得PortAudio支持请参阅第2.2.3节,在Windows上则参阅第2.2.6部分的说明。有关openCV支持,请参阅第2.2.4和2.2.7节。但是,请务必首先阅读第2.2.2节和第2.2.5节中的独立版本的编译指令,以下各节假定您具备基本编译知识。

2.2.1无忧编译说明
本节为熟悉在Unix和Windows上从源代码编译应用程序的人员提供快速入门的编译指引。如果这些指引不奏效,或者产生错误,或者你需要更多的细节信息,那么请参考后续的章节,尤其是Unix编译环境的。
我们将始终将把无任何第三方的独立编译版本与联合编译版本进行区分说明,与PortAudio联合编译支持实时音频播放和录制,与penCV联合编译支持视频功能。没有PortAudio和openCV的编译更容易,那样您将得到一个静态链接的可执行文件,它也足以实现所有离线命令行特征提取任务。

Unix简短版本:提供了编译脚本,直接使用sh buildStandalone.shsh buildWithPortAudio.sh(都采用-h选项来显示使用情况)。主二进制文件安装在解压文件所在的inst/bin/中,命名为SMILExtract。执行inst/bin/SMILExtract -h以查看在线帮助。库安装在inst/lib中。对于openCV支持,请使用-o选项将openCV安装的路径传递给buildWithPortAudio.sh脚本。
简短版本指令的稍长版本:通过输入以下内容解压openSMILE压缩包:

tar -zxvf openSMILE-2.x.x.tar.gz

这将创建一个名为openSMILE-2.x.x的文件夹。输入以下命令,切换到此目录:

cd openSMILE-2.x.x

然后(假设你已经安装了一个正在运行的编译系统(autotools,libtool,make,gcc和g ++编译器,并且有一个兼容bash的shell),你只需要输入:

bash buildStandalone.sh

或者,如果上述命令不起作用:

sh buildStandalone.sh

这将配置,编译并安装openSMILE二进制SMILExtract到inst/bin目录下。将此目录添加到您的路径中,或将inst/bin/SMILExtract复制到系统搜索路径中的目录。或者,您可以在安装时把安装路径作为参数传递给脚本:

sh buildStandalone.sh -p /my/path/to/install/to

要编译支持PortAudio的openSMILE,如果PortAudio没有安装在你的系统中(可选定为portaudio和openSMILE指定一个安装前缀作为第一个参数):

sh buildWithPortAudio.sh [-p install-prefix-path]

PortAudio快照包放在在thirdparty子目录中。它会被解压缩,配置并安装到与opensmile主目录相同级别的第三方目录中。然后将openSMILE配置并使用此安装。编译的可执行文件名为SMILExtract,位于inst/bin子目录中。请注意,在这种情况下,它是一个包装脚本,它设置了库路径并调用实际的二进制SMILExtract.bin。因此,如果您有本地安装的(不同的)PortAudio,也可以使用此方法。需要确保通过包装脚本运行openSMILE,而不是直接运行二进制文件(这将使用系统默认的,可能不兼容版本的PortAudio库)。## 标题 ##
另请注意,使用PortAudio构建openSMILE的推荐方法是使用openSMILE发行版附带的portaudio.tgz。其他版本的portaudio可能与openSMILE不兼容,可能无法正常工作(有时PortAudio开发快照版也包含错误)。这里也提供了唯一一个过时的方法,builWithInstalledPortaudio.sh,(当前不支持的)编译本地安装portaudio库。由于此脚本已过时,我们建议使用buildWithPortAudio.sh并删除链接器并包含引用自定义portaudio构建的路径。配置脚本将自动检测系统内的portaudio安装。

WINDOWS
在Windows上编译的重要注意事项:某些版本的Visual Studio总是选择默认的“Debug”配置,而不是“Release”配置。除非你是一个openSMILE开发者,否则请选择“Release”配置。因此,点击“Build Solution”之前,你应从下拉菜单中选择“Release”配置!

在2.0版本中,我们开始提供Visual Studio 2010编译文件,而不是Visual Studio 2005.我们不再支持2010以下的任何版本的visual studio。
编译指令的简短版本:打开ide/vs10/openSmile.sln。选择你想要编译的配置。Release和Debug指的是独立版本。输出的二进制文件位于顶层的msvcbuild文件夹中。为了编译对PortAudio支持,需要更多的步骤来附加PortAudio编译文件。这些步骤在2.2.6节中描述。
简短版本指令的稍长版本:
假设您已经正确设置了Visual Studio 2010(或更高版本)的环境,可以打开文件ide/vs10/openSmile.sln,选择“Release”配置,然后选择“Build solution”来编译Windows下独立版本的openSMILE。这将在软件包的顶层目录的msvcbuild目录中创建命令行实用工具SMILExtract.exe,您可以将其复制到您最喜欢的路径或直接调用它。为了编译对PortAudio支持,需要更多的步骤来附加PortAudio编译文件。这些步骤在2.2.6节中描述。

2.2.2在Linux/Mac上编译
由于这一节是介绍以手动编译的方式编译openSMILE,官方已经明确建议才上2.2.1节的方式进行编译,因此暂时不进行翻译了。
2.2.3在Linux/Mac上支持PortAudio
由于这一节是介绍以手动编译的方式编译openSMILE,官方已经明确建议才上2.2.1节的方式进行编译,因此暂时不进行翻译了。

2.2.4在Linux上编译openCV和portaudio支持
本节简单介绍了如何安装OpenCV,以及编译基于openCV进行视频特征提取的 openSMILE。
安装OpenCV
您需要OpenCV 2.2或更高版本(同时需要openSMILE 2.0或更高版本)。如果你使用的是Ubuntu 12.04或更高版本,你很幸运,因为Ubuntu通过标准仓库提供OpenCV 2.2或更高版本。要安装,只需在shell中执行

sudo apt-get install libopencv*

它会同时将依赖库同时安装。在这种情况下,OpenCV的安装路径(PATH_TO_OPENCV)将是/usr/。
那么,此时默认情况下,安装完整的方式是

sh buildWithPortAudio.sh -o /usr/ [-p install-prefix-path]

如果你正在使用不同的发行版本或其他旧的Ubuntu版本,你可能需要自己编译OpenCV。有关此主题的详细说明可以在这里找到:
http://opencv.willowgarage.com/wiki/InstallGuide
不要忘记在安装结束时执行sudo make install已将OpenCV安装到预定路径。稍后的编译过程中将需要此路径(PATH_TO_OPENCV)。如果您没有指定其他安装路径,则很可能是/usr/local/。安装完成后,你可能需要在/etc/ld.so.conf中更新你的库路径,即添加/ usr/local/lib这行(如果还没有的话)。
在Linux上编译使openSMILE支持openCV
成功安装OpenCV之后,可以通过OpenCV支持视频输入来编译openSMILE。您将使用标准的openSMILE unix编译脚本buildStandalone.sh和buildWithPortaudio.sh来实现此目的,具体取决于您是要使用openCV支持的独立编译版本,还是同时需要PortAudio支持。首先,请按照第2.2.1节中的描述,在没有openCV支持的情况下进行编译。如果成功,您可以重新运行编译脚本并附加-o选项来指定openCV安装的路径。
编译完成后,您可以使用./SMILExtract -L检查cOpenCVSource是否出现在组件列表中。如果没有出现,请尝试再次通过使用openCV选项运行编译脚本,如果还不行请向作者发送错误报告。
如果在运行SMILExtract时遇到类如libopencv * .so库错误消息,请在运行SMILExtract之前在shell中键入以下命令:

export LD LIBRARY PATH =“/ usr/local/lib”

2.2.5在Windows上编译
要在Microsoft Windows上编译openSMILE(支持Vista和Windows 7),有两种方法:

  • 使用Mingw32和MSYS或Cygwin(已弃用,不支持)
  • 使用Visual Studio 2010或更高版本(首选)

首选的方式(也是官方唯一支持的方式)是用Visual Studio 2010进行编译。如果你想使用Mingw32,请参考http://www.mingw.org/wiki/msys正确为你的Mingw32和MSYS系统配置所有必要的开发工具(包含在MSYS DTK的autoconf,automake,libtool和m4)。然后您应该可以轻松地遵循2.2.2和2.2.3节中的Unix安装说明。
文件ide/vs10/openSmile.sln提供的是一个Microsoft Visual Studio下的编译方案。您可以从这个解决方案中选择几个配置,它们代表独立版本(简单的Release和Debug配置)的各种组合,以及支持OpenCV和PortAudio(相应地命名)。具体步骤如下:
1.在你的系统上的某处创建一个opensmile文件夹。
2.将openSMILE release发行包复制到该文件夹中,并解压缩。
3.此时应该在opensmile文件夹会生成一个文件夹opensmile-2.x。
4.在opensmile文件夹中创建一个名为msvcbuild的文件夹。
5.用Visual Studio打开opensmile/opensmile-2.x/ide/vs10/openSmile.sln。
6.选择“Release”配置。
7.从编译菜单中选择“Build Solution”。
8.如果您遇到关于缺少库的错误,请重复几次编译过程(请参阅下面的说明)。
9. openSMILE二进制文件现在已经在msvcbuild文件夹中创建。主二进制文件是SMILExtract Release.exe,它依赖openSmileLib Release.dll。因此,如果您需要移动文件,必须两个同时移动。

由于Visual Studio的某些问题在某些配置中没有正确识别项目构建顺序,因此如果您只选择“编译解决方案”选项,则构建过程可能会失败。要解决这个问题,你必须手动编译项目。首先构建openSmileLib*,然后是openSmileLib,然后是SMILExtract,或者尝试多次编译整个解决方案,直到错误消息的数量已经收敛(编译失败,尝试手动编译项目)或者已经达到零(编译成功!)。
成功编译解决方案后,您应该有一个openSmileLib * .dll和一个SMILExtract * .exe位于解压缩源代码包的顶层目录的msvcbuild目录中(而不是ide/vs10/Release 或Debug 文件夹)。 *代表一个前缀,依据配置(PortAudio,OpenCV)进行附加。编译完成后,可以将openSmile dll(以及portaudio dll)和可执行文件复制到路径中的某一个目录中,例如C:\Windows\system32,或者将所有内容放在一个任意目录中,然后从该目录运行可执行文件。

2.2.6在Windows上编译支持PortAudio
在第三方子目录中提供了已知可与openSMILE一起使用的PortAudio快照。或者,您可以从http://www.portaudio.com/下载最新的PortAudio SVN快照。在编译openSMILE之前,阅读PortAudio编译指令是一个好主意(但实际上并不是必需的)。
现在,将Windows PortAudio源码树解压缩到第三方子目录openSMILE发行版(解压缩文件中的顶层),它应该在那里创建一个名为portaudio的目录。如果您没有将PortAudio解压到这个位置,那么您需要修改下一段中提到的Visual Studio项目,并修改PortAudio的Include和Linker路径。默认情况下,PortAudio会编译支持Windows系统上所有可能的媒体API。但是,在大多数情况下,只有默认的Windows媒体扩展(WME)可用且绝对有效的。因此,我们在ide/vs10目录下的为PortAudio提供修改版本。要使用它们(应在PortAudio解包到第三方/ portaudio子目录之后),将以下文件从ide/vs10复制到thirdparty/portaudio/build/msvc,
portaudio.vcxproj和portaudio.def。
修改版本基本上禁用了DirectX,ASIO和wasapi API。里面同时添加了预处理器定义(C/C ++设置选项卡,预处理器)PA_NO_DS和PA_ NO_ ASIO,并禁用了与hostapi项目相关的文件夹中的所有.cpp文件。此外,输出路径被调整到顶级目录中的msvcbuild目录,并且输出dll的名称被设置为portaudio_x86.dll。
现在,要编译支持PortAudio的openSMILE,请从解决方案ide/vs10/openSmile.sln中选择ReleasePortAudio配置并编译它。有关详细步骤,请参考不包括PortAudio的编译说明进行操作(上一节)。
由于Visual Studio的某些原因会在在某些配置中没法正确识别项目构建顺序,因此如果您只选择“编译方案(Build solution)”选项,则编译过程可能会失败。要解决这个问题,你必须手动编译项目。首先编译portaudio,然后是openSmileLib *,然后是openSmileLib,最后是SMILExtract,或者尝试多次编译整个解决方案,直到错误消息的数量已经收敛(编译失败,尝试手动编译项目)或已达到零(编译成功!)。
请注意:OpenSMILE Visual Studio项目的PortAudio版本假定了dll文件portaudio x86.dll和导入库portaudio x86.lib都位于顶级的msvcbuild目录中。但是,这个名称可能会有所不同,具体取决于您的架构。因此,您应该检查并在链接器高级设置选项卡中更改导入库的名称。

2.2.7在Windows上编译openCV支持
你首先需要下载一个Windows二进制版本的openCV版本2.4.5
http://opencv.org/downloads.html
如果您有其他版本(> 2.2),则需要手动在解决方案配置中修改.lib文件的名称(在ide/vs10中的opencv.props中)。以下指引假定您有版本2.4.5。
通过运行self-extracting.exe将openCV分发包解压到您选择的目录。从该目录复制build//vc10/lib和build/include /到thirdparty/compiled/include和thirdparty/compiled/lib。确保使用正确的平台(x64或x86)替换,以便与编译的openSMILE平台(在Visual Studio解决方案配置的下拉菜单中)匹配。请注意,目前在发布候选版本的构建只适用于Win32(x86)平台。 x64平台的正确配置将很快推出。如果您需要有一个x64版本,您将不得不从Win32平台复制配置。
然后构建ReleaseOpenCV配置。如果您还需要PortAudio支持,请选择相应的配置(ReleasePortaudioOpenCV),并按照第2.2.6节中的说明操作。由于Visual Studio的某些原因会在在某些配置中没法正确识别项目构建顺序,因此如果您只选择“编译方案(Build solution)”选项,则编译过程可能会失败。要解决这个问题,你必须手动编译项目。首先编译portaudio,然后是openSmileLib *,然后是openSmileLib,最后是SMILExtract,或者尝试多次编译整个解决方案,直到错误消息的数量已经收敛(编译失败,尝试手动编译项目)或已达到零(编译成功!)。
编译的可执行文件将位于msvcbuild /中。你应该在那里找到openSmileLib .dll和SMILExtract .exe,两者不可缺一。 .dll应该与要运行的.exe路径相同,或者复制到了系统路径(如Windows/system32)。您还需要将opencv dlls复制到系统路径或包含SMILExtract二进制文件的相同路径中。 opencv可执行文件包含在之前您从其中复制lib文件的解压的openCV发行版文件夹中。在lib /文件夹同级别的bin /文件夹中。


to be continue

猜你喜欢

转载自blog.csdn.net/lccever/article/details/78649538