使用vs2017调试opensmile
从opensmile官网下载的包包括了vs工程,可直接用vs打开。
一、使用opensmile vs工程
- 打开工程后,vs提示升级解决方案,点击确定。或在项目-重定解决方案目标中升级
- 将调试模式debug改为release。注意,release同样可以加断点调试。
- 编译
- 若直接编译,出现错误。
解决方法是在openSimleLib项目中右键添加-现有项,在opensmile-2.3.0\src\examples目录下选择simpleMessageSender.cpp。重新编译 - 出现错误
解决方法
(1)将与opensmile包平级的msvcbuild目录下的SMILExtract_Release.exe复制到opensmile-2.3.0\ide\vs10\Release目录下。
(2)打开调试-SMILExtract属性,在链接器-常规-输出文件修改为release$(TargetName)$(TargetExt)
- 添加参数。打开调试-SMILExtract属性,在调试-命令参数中填上config文件、输入文件和输出文件路径
二、特征提取,查看变量
- e.g.命令参数为 -C {yourdir1}\opensmile-2.3.0\config\demo\demo1_energy.conf -I {yourdir2}\Fa.wav -O {yourdir3}\speech.energy.csv
- 想要查看openSimleLib项目energy.cpp的函数int cEnergy::processVectorFloat中的变量如何变化。但在该函数内添加断点时,运行并未停止。
- 原因:除SIMLExtract工程外,其他工程均生成 dll 动态链接库。SIMLExtract_release.exe 通过dll文件接入函数
- 解决方法。打开调试-附加到进程(ctrl+alt+P),添加vs正在debug的进程
- 可以安心观察函数了