提取IEMOCAP情感语料库标签

IEMOCAP语料库介绍

该语料库包含的情感包括 anger, happiness, excitement, sadness, frustration, fear, surprise, other and neutral state
分别用ang、hap、exc、sad、fru、fea、sur、oth、neu来表示

如何查看标签数据

进入文件夹 IEMOCAP\Session1\dialog\EmoEvaluation ,可以看到文件:
在这里插入图片描述
这里以打开Ses01F_impro01.txt文件为例:
在这里插入图片描述
该 txt 表示 在 dialog/wav 文件夹下的对话文件 Ses01F_impro01.wav 被切割成 以上被标注成的语音文件及对应情感标签。例如 Ses01F_impro01_F000 表示,该文件在 sentences\wav\Ses01F_impro01 里边的 Ses01F_impro01_F000.wav

如何获取IEMOCAP?

百度网盘:,提取码:n0c0
官网申请:具体网址忘了,大家自行搜索一下吧,哈哈。

python提取IEMOCAP情感语料库标签

def get_txt_files(file_dir):
    L = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
            if os.path.splitext(file)[1] == '.txt':
                filename=os.path.join(root, file)
                # print(get_label(filename))
                L.append(filename)
        return L


def get_IEMOCAP_filename(IEMOCAP_dir):
    all_data = []
    Sessions = ['Session1', 'Session2', 'Session3', 'Session4', 'Session5']
    target_dir = "/dialog/EmoEvaluation/"
    wav_dir = "/sentences/wav/"

    for Session in Sessions:
        file_dir = IEMOCAP_dir + Session + target_dir
        # 读取该Session下的所有txt文件
        txt_files = get_txt_files(file_dir)
        # 读取单个txt文件,获取情感标签
        for txt_file in txt_files:
            last_folder = (txt_file.split("/")[-1]).split(".")[0]
            # 转换到pandas,方便操作

            data = pd.read_csv(txt_file, delimiter="\n",skiprows=1, names='a')
            data['a'] = data['a'].astype(str)
            # 取第一列,其中包含切片后的语音文件+情感分类标签
            filter_data=[x for x in data['a'] if '[' in x]

            # 是否包含某字符串
            print(txt_file,len(filter_data))

            for file in filter_data:
                values = file.split("\t")
                filename = values[1] + ".wav"
                filename = IEMOCAP_dir + Session + wav_dir + last_folder + "/" + filename
                target = values[2]
                #将target进行编码
                target=get_IEMOCAP_4target(target)

                #剔除不达标的数据,主要包含oth(3个),dis(2个)
                if(target==None):
                    print(target)
                    continue

                result=(filename,target)
                all_data.append(result)
    return all_data
    
def get_IEMOCAP_9target(target):
    # 'ang': 0, anger 愤怒
    # 'hap': 1, happiness 快乐,幸福
    # 'exc': 1, excitement 激动,兴奋
    # 'sad': 3, sadness 悲伤,悲痛
    # 'fru': 4, frustration 懊恼,沮丧
    # 'fea': 5, fear 害怕,畏惧
    # 'sur': 6, surprise 惊奇,惊讶
    # 'neu': 7, neutral state 中性
    # 'xxx': 8, other 其它

    if (target == "ang"):
        target = 0
    elif (target == "hap"):
        target = 1
    elif (target == "exc"):
        target = 2
    elif (target == "sad"):
        target = 3
    elif (target == "fru"):
        target = 4
    elif (target == "fea"):
        target = 5
    elif (target == "sur"):
        target = 6
    elif (target == "neu"):
        target = 7
    elif (target == "xxx"):
        target = 8
    else:
        print(target)
        target=None
        print("关键词提取错误,经检查程序,已默认跳过该条数据")

    return target

def get_IEMOCAP_4target(target):
    # 'ang': 0, anger 愤怒
    # 'hap': 1, happiness 快乐,幸福
    # 'sad': 2, sadness 悲伤,悲痛
    # 'neu': 3, neutral state 中性
    #

    if (target == "ang"):
        target = 0
    elif (target == "hap"):
        target = 1
    elif (target == "sad"):
        target = 2
    elif (target == "neu"):
        target = 3
    else:
        print(target)
        target=None
        print("关键词提取错误,经检查程序,已默认跳过该条数据")

    return target

取到语音文件路径及其对用的标签

wav_path="./data/IEMOCAP/"
spec_path="./features/ICMOCAP_Spec(4kinds)/"
filenames=get_IEMOCAP_filename(wav_path)
#将文件路径和对应的标签进行拆解
filenames,targets=zip(*filenames)
for i,filename in enumerate(filenames):
	label=targets[i]	#label为标签,filename为文件名字

								***Continue your work...***
	
								接下来就可以自己的操作了哦~~~

这是取到的filenames的文件结构
在这里插入图片描述

总结

总共包含十一种感情标签,但论文中一般都比较四种情绪的分辨,也就是写出的get_IEMOCAP_4target函数,如果拓展情绪类别的话,可以使用get_IEMOCAP_9target获取数据中包含的九种情感标签,但在实际的标签提取过程中,还会发现有以下两种另外的情感标签:

异常情感标签数量
oth3
dis2

参考

以下是一篇使用IEMOCAP进行情感识别的识别结果:
在这里插入图片描述

2022年4月28更新(pandas版本导致程序运行报错)

在后续的测试中 pandas 版本过高也会导致解析文件名字报错,博主所使用的 pandas 版本为0.20.3,如果已经安装了其他版本的pandas,则可以执行以下命令进行更换

pip install pandas==0.20.3
  • 19
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 38
    评论
### 回答1: iemocap数据集是一种用于情感识别研究的公开数据集,其目的是为研究者提供一个用于识别和分析人类情感状态的基准数据。 iemocap数据集使用了认知情感模型,通过记录人际交流中的语音、文本和肢体动作等多种情感表达形式,提供了一个多模态的研究平台。 该数据集包含了不同情感状态下的语音和面部表情数据,以及对话参与者的情感标注。数据集中的情感状态包括愤怒、悲伤、开心、中性等。 iemocap数据集的基本构成是对话音频文件,每个音频文件包含了多个对话段落。其中,每一个对话段落对应一个情感标签。此外,数据集还包含了使用OpenFace工具进行面部表情分析的结果。 研究者可以利用iemocap数据集开展各种情感识别算法的开发和评估。比如,可以利用该数据集训练机器学习模型,通过对语音和面部表情进行特征提取分类,实现情感状态的识别。 除了情感识别iemocap数据集还可用于其他相关领域的研究,例如语言研究、社交交互研究等。 总的来说,iemocap数据集是一个有助于情感识别研究的公开数据集,为研究人员提供了一个研究情感识别算法和模型的基准平台。 ### 回答2: IEMOCAP数据集是一个包含真实情绪表达的多模态数据库,在情绪声音处理领域非常有名。该数据集收集了10位演员在会议场景下进行表演的音频、视频和文本等多种模态的数据。 IEMOCAP数据集的目的是为情感识别情绪分析提供一个标准的测试平台。该数据集包含了丰富的情绪表达,其中包括六种基本情绪标签:愤怒、开心、中性、伤心、惊讶和厌恶。这些多模态数据可以用于情感识别语音情感识别情感合成和情感计算等多个领域的研究。 IEMOCAP数据集包含了大量的情感声音数据,每个演员都有大约40分钟的语音数据,总共有超过12小时的语音数据。这些数据中包含了不同音频特征(如语速、音调、能量等)以及用于情感识别的音频标签。此外,数据集还包含了演员的面部表情、手势和动作等视频数据,以及他们的语言交互和文本注释。 IEMOCAP数据集的使用非常广泛,被用于情感识别情绪分析的研究中。在情感识别方面,可以通过深度学习模型来提取音频和视频特征,训练分类器以实现情感分类。在情绪分析方面,可以通过分析不同模态数据之间的关联性,来研究情绪的生成和表达方式。 总之,IEMOCAP数据集是一个非常有价值的情感识别情绪分析研究资源。它提供了丰富的真实情感数据,被广泛应用于语音情感识别情感合成和情感计算等领域的研究中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王延凯的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值