OpenSmile介绍和使用

1. OpenSmile 下载安装

官网下载:openSMILE - audEERING

windows下解压就可以使用

2. OpenSmile用途

提取声音信号的各类音频特征,主要是Low-Level Descriptors (LLDs)

3. OpenSmile使用

3.1 Windows下直接使用

通过命令行形式运行提取音频特征的。
① 先切换到处理文件SMILExtract_Release.exe所在的目录下
② 再使用语句:
    SMILExtract_Release -C 配置文件 -I “要处理的音频” -O “要保存特征向量的路径及文件名”

---->控制输出数据格式  (参数)

=============================
-instname <string> 通常是输入文件的名称保存在CSV和ARFF输出的首列。默认是"unknow"
=============================
-lldcsvoutput, -D <filename>  启动LLD帧向输出到CSV格式文件
-appendcsvlld <0/1> 设为1代表添加到已有CSV文件文末,默认0覆盖
-timestampcsvlld  <0/1> 设为0禁止把时间步输出到CSV第二列,默认为1
-headercsvlld <0/1> 设为0禁止把标题输入到CSV,默认为1
=============================
-lldhtkoutput <filename> 启动LLD帧向输出到HTK格式文件
=============================
-lldarffoutput, -D <filename> 启动LLD帧向输出到ARFF格式文件
-appendarfflld <0/1> 设为1代表添加到已有ARFF文件文末,默认0覆盖
-timestamparfflld <0/1> 设为0禁止把时间步输出到ARFF第二列,默认为1
-lldarfftargetsfile <file> 指定配置包含定义目标域(类)的文,默认为: shared/arff_targets_conf.inc
=============================
-output, -O <filename> 默认输出选项. ARFF格式,存放特征汇总
-appendarff <0/1> 设为0代表不添加到已有ARFF文件文末,默认1添加 
-timestamparff <0/1> 设为1把时间步输出到ARFF第二列,默认为0
-arfftargetsfile <file>指定配置包含定义目标域(类)的文,默认为: shared/arff_targets_conf.inc
=============================
-csvoutput <filename> 默认输出选项. CSV格式,存放特征汇总
-appendcsv <0/1> 设为0代表不添加到已有CSV文件文末,默认1
-timestampcsv <0/1> 设为0禁止把时间步输出到CSV第二列,默认为1
-headercsv <0/1> 设为0禁止把标题输入到CSV,默认为1
=============================
-htkoutput <filename> 输出特征汇总(函数)到HTK格式文件

3.2 python中使用

3.2.1 单个音频文件LLD特征提取

1. 设置OpenSmile路径

2. 选择并设置使用的配置文件

3. 通过系统命令提取相关特征

import os

infilename = 'Ses01F_impro01_F002.wav'
outfilename =  'Ses01F_impro01_F002.csv'

#设置OpenSmile路径
exe_opensmile = 'D:/opensmile-2.3.0/bin/Win32/SMILExtract_Release'
#选择并设置使用的配置文件
path_config = 'D:/opensmile-2.3.0/config/ComParE_2016.conf'

#设置系统命令
opensmile_options = '-configfile ' + path_config + ' -appendcsvlld 0 -timestampcsvlld 1 -headercsvlld 1'
outputoption = '-lldcsvoutput'
opensmile_call =exe_opensmile + ' ' + opensmile_options + ' -inputfile ' + infilename + ' ' + outputoption + ' ' + outfilename
#执行
os.system(opensmile_call)

 3.2.2 批处理

import os
from multiprocessing.dummy import Pool as ThreadPool

# Set your opensmile Extracter and path here
exe_opensmile = 'D:/opensmile-2.3.0/bin/Win32/SMILExtract_Release'
path_config = 'D:/opensmile-2.3.0/config/ComParE_2016.conf'

# Set your data path and output path here
data_path = "E:/Dataset/IEMOCAP_full_release/allwave"
save_path = './audio_features_ComParE2016/'  # output folder

# Extractor set-ups
opensmile_options = '-configfile ' + path_config + ' -appendcsvlld 0 -timestampcsvlld 1 -headercsvlld 1'
outputoption = '-lldcsvoutput'

def feature_extract(fn):
  infilename = addr_files + '/'+fn
  instname = os.path.splitext(fn)[0]
  outfilename = save_path + '/' + instname + '.csv'
  
  opensmile_call = exe_opensmile + ' ' + opensmile_options + ' -inputfile ' + infilename + ' ' + outputoption \
                   + ' ' + outfilename + ' -instname ' + instname + ' -output ?'
  os.system(opensmile_call)


for root, dirs, files in os.walk(data_path):
    for dir in dirs:
      files = os.listdir(data_path+'/'+dir)
      addr_files=data_path+'/'+dir

      pool = ThreadPool()
      pool.map(feature_extract, files)
      pool.close()
      pool.join()

4. 配置文件介绍(提供的各类特征集)

4.1 用于情感分析的特征集

4.2 详细介绍

1.  IS09_emotion.conf

       出现在CSV文件中的16个低级描述符(LLDs)的名称:

  1. pcm_RMSenergy  信号帧均方根能量
  2. mfcc  梅尔频率倒谱系数1-12
  3. Pcm_zcr  时间信号的过零率(基于帧)
  4. voiceProb  从ACF计算的发声概率。
  5. F0  从倒谱计算的基频

附加到低级描述符名称的后缀_sma表示它们是通过窗口长度为3的移动平均滤波器进行平滑。

附加到sma的后缀_de表示当前特征是低级描述符平滑后的一阶delta系数(微分)。 

2.  IS10_paraling.conf

       出现在CSV文件中34个低级描述符(LLDs)的名称:

  1. pcm_loudness  归一化强度提高到0.3的幂的响度
  2. mfcc  梅尔频率倒谱系数0-14
  3. logMelFreqBand  梅尔频带的对数功率0-7(分布范围内从0到8 kHz)
  4. lspFreq  从8个LPC系数计算出的8个线谱对频率
  5. F0finEnv  平滑的基频轮廓线
  6. voicingFinalUnclipped  最终基频候选的发声概率

      四个音高相关的LLD名称:

  1. F0final  平滑的基频频率
  2. jitterLocal  本地(帧到帧)抖动(音调周期长度偏差)
  3. jitterDDP  差分帧间抖动(‘Jitter of the Jitter’)
  4. shimmerLocal  本地(帧到帧)闪烁(音调周期幅度偏差)

3. 其他配置文件相似

Ref:

(38条消息) openSMILE 简介_qq_22237367的博客-CSDN博客_opensmile 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值