Search code examples
matlabspeech-recognitionspeechaudeering-opensmile

How can I execute OpenSMILE toolkit from Matlab environment?


I want to use the OpenSMILE toolkit as a voice feature extractor. But I developed my project scripts in the Matlab environment. So, I am searching for a way to calling OpenSMILE from Matlab and handle the features obtained. I would be pleased if anybody guides me on this matter.

OpenSMILE script sample that can be executed in windows CMD environment:

SMILExtract_Release.exe -C config/MFCC.conf -I a.wav -O a.HTK

Solution

  • I found a very simple way to do this. After installing the OpenSMILE, this program can be accessed through the CMD environment. That's why I wrote the following function in MATLAB and ran OpenSMILE through it.

    function featureSet = OpenSmileFE_MFCC(filePath,fileName)
    
    % make result file name
    resultName  = [fileName,'_MFCC.HTK'];
    
    % make OpenSmile Command
    comD =['SMILExtract_Release.exe -C config/MFCC12_E_D_A_Z.conf -I ',filePath,... 
    '-O ', resultName , '  -noconsoleoutput'];
    
    
    % excute command
    system(comD);
    [ features, sampPeriod, parmKind ] = readhtk_lite( resultName );
    

    you can also find the readhtk_lite function script in this link. you can also remove -noconsoleoutput option from the command as below to see the execution detail.

    comD =['SMILExtract_Release.exe -C config/MFCC12_E_D_A_Z.conf -I ',filePath,... 
    '-O ', resultName ];