1. 程式人生 > >使用vs2017除錯opensmile

使用vs2017除錯opensmile

從opensmile官網下載的包包括了vs工程,可直接用vs開啟。

一、使用opensmile vs工程

  1. 開啟工程後,vs提示升級解決方案,點選確定。或在專案-重定解決方案目標中升級 在這裡插入圖片描述
  2. 將除錯模式debug改為release。注意,release同樣可以加斷點除錯。 在這裡插入圖片描述
  3. 編譯
  • 若直接編譯,出現錯誤。 在這裡插入圖片描述 解決方法是在openSimleLib專案中右鍵新增-現有項,在opensmile-2.3.0\src\examples目錄下選擇simpleMessageSender.cpp。重新編譯
  • 出現錯誤 在這裡插入圖片描述 解決方法是將與opensmile包平級的msvcbuild目錄下的SMILExtract_Release.exe
    複製到opensmile-2.3.0\ide\vs10\Release目錄下。我也不知道有沒有更好的解決方法。
  1. 新增引數。開啟除錯-SMILExtract屬性,在除錯-命令引數中填上config檔案、輸入檔案和輸出檔案路徑 在這裡插入圖片描述

二、特徵提取,檢視變數

  1. e.g.命令引數為 -C {yourdir1}\opensmile-2.3.0\config\demo\demo1_energy.conf -I {yourdir2}\Fa.wav -O {yourdir3}\speech.energy.csv
  2. 想要檢視openSimleLib專案energy.cpp的函式int cEnergy::processVectorFloat
    中的變數如何變化。但在該函式內新增斷點時,執行並未停止。
  • 原因:除SIMLExtract工程外,其他工程均生成 dll 動態連結庫。SIMLExtract_release.exe 通過dll檔案接入函式
  • 解決方法。開啟除錯-附加到程序(ctrl+alt+P),新增vs正在debug的程序 在這裡插入圖片描述
  1. 可以安心觀察函數了