OpenSmile 之前也一直用,但是都是用现成的改好的配置文件,如今想自己根据需求抽取里面的部分特征,比如现在以抽取 IS13_ComParE_core.lld.conf.inc 中的特征为例子。
另外提供 IS09_emotion.conf 自定义抽取 frame=0.4s, shift=0.05s 为例子。(Pending)
这里没有提供基本的格式说明,可以参考:
https://blog.csdn.net/lccever/article/details/78728312
由于 IS13_ComParE_core.lld.conf.inc 没有输入输出的定义,所以不能直接使用, 主要是对输入和输出部分继续添加。 注意很多自带的输出都是 htk 格式,所以大家想转成 CSV 的也可以参考下面的配置。
注意:下面前面加 Self 字样中文注释的是 自己添加的。
///
/ > openSMILE configuration file for ComParE < //
/ //
/ (c) 2014 by audEERING //
/ All rights reserved. See file COPYING for details. //
///
;;; Self: add wave file-read componentInstance
;;; 下面的实验 waveIn 的实现,可以从其他配置文件直接拷贝过来
[componentInstances:cComponentManager]
instance[dataMemory].type=cDataMemory
instance[waveIn].type=cWaveSource
;;; Self: Implementation of waveIn instance
[waveIn:cWaveSource]
; this sets the level this component writes to the level will be created by this component no other components may write to a level having the same name
writer.dmLevel=wave
; this defines a new commandline option "-I" or "-inputfile", which can be used to specify
filename=\cm[inputfile(I){
test.wav}:name of input file]
; mix stereo files down to mono for analysis
monoMixdown=1
[componentInstances:cComponentManager]
instance[is13_frame60].type=cFramer
instance[is13_win60].type=cWindower
instance[is13_fft60].type=cTransformFFT
instance[is13_fftmp60].type=cFFTmagphase
[is13_frame60:cFramer]
reader.dmLevel=wave
writer.dmLevel=is13_frame60
\{
\cm[bufferModeRbConf{
../shared/BufferModeRb.conf.inc}:path to included config to set the buffer mode for the standard ringbuffer levels]}
frameSize = 0.060
frameStep = 0.010
frameCenterSpecial = left
[is13_win60:cWindower]
reader.dmLevel=is13_frame60
writer.dmLevel=is13_winG60
winFunc=gauss
gain=1.0
sigma=0.4
[is13_fft60:cTransformFFT]
reader.dmLevel=is13_winG60
writer.dmLevel=is13_fftcG60
; for compatibility with 2.2.0 and older versions
zeroPadSymmetric = 0
[is13_fftmp60:cFFTmagphase]
reader.dmLevel=is13_fftcG60
writer.dmLevel=is13_fftmagG60
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[componentInstances:cComponentManager]
instance[is13_frame25].type=cFramer
instance[is13_win25].type=cWindower
instance[is13_fft25].type=cTransformFFT
instance[is13_fftmp25].type=cFFTmagphase
[is13_frame25:cFramer]
reader.dmLevel=wave
writer.dmLevel=is13_frame25
\{
\cm[bufferModeRbConf]}
frameSize = 0.020
frameStep = 0.010
frameCenterS