问题描述
我想使用OpenSMILE工具包作为语音功能提取器。但是我在Matlab环境中开发了项目脚本。因此,我正在寻找一种从Matlab调用OpenSMILE并处理获得的功能的方法。如果有人在这个问题上指导我,我会很高兴。
可以在Windows CMD环境中执行的OpenSMILE脚本示例:
SMILExtract_Release.exe -C config/MFCC.conf -I a.wav -O a.HTK
解决方法
我发现了一种非常简单的方法。安装OpenSMILE之后,可以通过CMD环境访问该程序。这就是为什么我在MATLAB中编写以下函数并通过它运行OpenSMILE的原因。
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 );
您还可以在this链接中找到 readhtk_lite 功能脚本。您还可以从以下命令中删除-noconsoleoutput选项,以查看执行细节。
comD =['SMILExtract_Release.exe -C config/MFCC12_E_D_A_Z.conf -I ',resultName ];