下面是MSA任务的基础-数据集。在本篇文章,我们首先介绍mmsdk中包含的例如CMU-MOSI等数据集的获取和解析。

CMU-MOSI

数据集获取

data_folder = data_folder
dataset_repository = "http://immortal.multicomp.cs.cmu.edu/raw_datasets/processed_data/"
mosi_highlevel = md.cmu_mosi.highlevel  # 高层特征
mosi_raw = md.cmu_mosi.raw # 原始数据
mosi_labels = md.cmu_mosi.labels  # 标签

这里是保存数据的位置和获得高层特征、原始数据和标签的一些定义

md.mmdataset(mosi_highlevel, data_folder)
md.mmdataset(mosi_raw, data_folder)
md.mmdataset(mosi_labels, data_folder)

上面的三条是从网站上下载数据,保存到自己定义的位置。

数据文件介绍

首先我们先看文件夹下面的文件:

CMU_MOSI_COVAREP.csd 是音频文件组

CMU_MOSI_TimestampedWords.csd 是文本文件组

CMU_MOSI_TimestampedWordVectors.csd 是文本的向量的文件组

CMU_MOSI_Visual_Facet_41.csd 和CMU_MOSI_Visual_Facet_42.csd 是视频文件组

CMU_MOSI_Visual_OpenFace_1.csd和CMU_MOSI_Visual_OpenFace_2.csd 是使用 OpenFace 工具从 CMU_MOSI_Visual_Facet_41.csd 和CMU_MOSI_Visual_Facet_42.csd中提取的面部表情和行为数据的文件组。

CMU_MOSI_Opinion_Labels.csd 是标签文件组

CMU_MOSI_openSMILE_IS09.csd 是openSMILE工具从CMU_MOSI_COVAREP.csd提取的INTERSPEECH 2009 Emotion Challenge 特征集的文件组

CMU_MOSI_OpenSmile_EB10.csd 是openSMILE工具从CMU_MOSI_COVAREP.csd提取的EB10特征集的文件组

我们主要使用下面四个文件:

visual_field = 'CMU_MOSI_Visual_Facet_42'
audio_field = 'CMU_MOSI_COVAREP'
text_field = 'CMU_MOSI_TimestampedWordVectors'
label_field = 'CMU_MOSI_Opinion_Labels'

模态对齐

features = [
    text_field,
    visual_field,
    audio_field
]
recipe = {feat: os.path.join(self.data_folder, feat) + '.csd' for feat in features}
self.dataset = md.mmdataset(recipe)

def avg(intervals: np.array, features: np.array) -> np.array:
    try:
        return np.average(features, axis=0)
    except:
        return features

dataset.align(text_field, collapse_functions=[avg])

label_recipe = {label_field: os.path.join(data_folder, label_field)}
dataset.add_computational_sequences(label_recipe, destination=None)
dataset.align(self.label_field)

上面的代码是将文本,视频,音频和标签进行对齐。

CMU-MOSEI

IEMOCAP

POM

CH-SIMS

SEMAINE

UR-FUNNY

MSP-IMPROV

ICT-MMMO

Multimodal Dataset for Detecting Depression