语音情感识别中的MFCC (Mel频率系数平均值对性能的影响)



我正在做一个项目(从语音或语音语气中检测情感),我正在使用MFCC的功能,我在某种程度上理解,并且知道它们在语音方面是非常重要的功能。

这是我从librosa使用的代码,从我的音频文件中提取特征,然后我在神经网络中用于训练:

dat, sample_rate = librosa.load(audio_path,res_type='kaiser_fast')
mfccs = np.mean(librosa.feature.mfcc(y=dat, sr=sample_rate,n_mfcc=13).T, axis=0)

我想知道的是,取转置后Mel频率系数的平均值如何影响性能?我是否丢失了音频文件中的重要信息?或者我应该使用整个Mel频率系数进行训练,并做一些填充技术,以确保训练特征的大小在所有训练音频文件中保持相同,因为它们的长度不同。
我还研究了其他技术,例如将mfccs的衍生物结合在一起,但我仍然不确定哪种技术可以提供更好的特征集并最终提供更好的分类结果。
如果这两种技术不是那么有用,那么也许我应该坚持我目前的方法,如代码所示,即取平均值,并可能将我的Mel频率系数从13增加到更高的数字。

我认为在这种情况下平均是一个坏主意。因为,是的,你丢失了宝贵的时间信息。但在情绪识别的背景下,更重要的是通过对背景进行平均来抑制信号中有价值的部分。众所周知,情绪是一种微妙的现象,只会在很短的时间内出现,其余时间都隐藏起来。

既然你的动机是准备用ML方法处理音频信号,我应该说有很多方法可以正确地做到这一点。简而言之,您可以独立处理每个MFCC帧(例如使用DNN),然后以某种方式表示整个序列。有关更多细节和链接,请参阅此回答:如何对连续音频进行分类

为了将静态DNN包含到动态环境中,DNN与隐马尔可夫模型的组合非常流行。描述这种方法的经典论文可以追溯到2013年:https://www.researchgate.net/publication/261500879_Hybrid_Deep_Neural_Network_-_Hidden_Markov_Model_DNN-HMM_based_speech_emotion_recognition

现在,新的方法被开发出来,例如:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/IS140441.pdf

给定足够的训练数据(和技能),你可以使用某种递归神经网络,通过设计来解决序列分类任务。

最新更新