我的系统环境:Ubuntu 20.04.4
参考:
Step1:下载安装包
直接 clone 该项目:https://github.com/audeering/opensmile
Step2:
进入项目目录,执行如下命令,成功之后会生成 build 目录:
sh build.sh

Step3:

将 ./build/progsrc/smilextract 加入系统目录:
vim /etc/profile
在文档末尾添加:
export PATH="/data/opensmile-master/build/progsrc/smilextract:$PATH"
保存退出,然后执行:
source /etc/profile
Step4:
测试安装是否成功:
SMILExtract -h
成功则会显示版本等相关信息,类似如下:

使用语法示例如下,提供:-C 配置文件路径( config 文件夹下有,也可以自己修改定义),-I 音频文件路径,-O 输出结果文件路径(默认ARFF格式)
SMILExtract -C ./path/to/xx.conf -I ./path/to/input_audio/xx.wav -O ./path/to/output_file/xx.csv
代码示例:在项目目录下执行
SMILExtract -noconsoleoutput -C ./config/is09-13/IS13_ComParE.conf -I ./example-audio/media-interpretation.wav -O ./feature.csv
打开生成的结果文件 feature.csv 可以看到,前面为特征列的名称和数据类型:

最后一行为具体的特征数据:

可以通过如下Python代码进行特征解析:
def feature_file_reader(feature_fp):
"""
读取生成的ARFF格式csv特征文件中特征值
:param feature_fp: csv特征文件路径
:return: np.array
"""
with open(feature_fp) as f:
last_line = f.readlines()[-1] # ARFF格式csv文件最后一行包含特征数据
features = last_line.split(",")
features = np.array(features[1:-1], dtype="float64") # 第2~倒数第二个为特征数据
return features
更多使用参考:
发现了一个更加方便使用的 Python 库:opensmile
pip install opensmile