EnergyDetector
为了进行语音活动检测,我一直在使用MISTRAL(曾用名LIA_RAL)说话人识别工具包中基于ALIZE库的EnergyDetector程序。
它使用特征文件而不是音频文件,因此您需要提取信号的能量。我通常使用倒谱特征(MFCC)提取对数能量参数,并将此参数用于VAD。您可以使用SPro信号处理工具包中的实用程序sfbcep以以下方式进行:
sfbcep -F PCM16 -p 19 -e -D -A input.wav output.prm
它将提取19个MFCC + log-energy系数+一阶和二阶delta系数。能量系数是第19个,您需要在EnergyDetector配置文件中指定。
然后,您将以以下方式运行EnergyDetector:
EnergyDetector --config cfg/EnergyDetector.cfg --inputFeatureFilename output
如果您使用答案末尾找到的配置文件,则需要将
output.prm
放在
prm/
中,并且您会在
lbl/
中找到分割结果。
作为参考,我附上我的EnergyDetector配置文件:
*** EnergyDetector Config File
***
loadFeatureFileExtension .prm
minLLK -200
maxLLK 1000
bigEndian false
loadFeatureFileFormat SPRO4
saveFeatureFileFormat SPRO4
saveFeatureFileSPro3DataKind FBCEPSTRA
featureServerBufferSize ALL_FEATURES
featureServerMemAlloc 50000000
featureFilesPath prm/
mixtureFilesPath gmm/
lstPath lst/
labelOutputFrames speech
labelSelectedFrames all
addDefaultLabel true
defaultLabel all
saveLabelFileExtension .lbl
labelFilesPath lbl/
frameLength 0.01
segmentalMode file
nbTrainIt 8
varianceFlooring 0.0001
varianceCeiling 1.5
alpha 0.25
mixtureDistribCount 3
featureServerMask 19
vectSize 1
baggedFrameProbabilityInit 0.1
thresholdMode weight
CMU Sphinx
CMU Sphinx语音识别软件包含内置的VAD。它用C语言编写,您可能可以对其进行修改以生成标签文件。
最近新增了GStreamer支持。这意味着您可以在GStreamer媒体流中使用其VAD。请参见使用PocketSphinx与GStreamer和Python-> 'vader'元素
其他VADs
我还使用过修改后的AMR1编解码器版本,该版本输出具有语音/非语音分类的文件,但我找不到其在线源代码,抱歉。