CMU-MOSI、CMU-MOSEI、CH-SIMS、Ch-SIMS v2 多模态数据集 数据集包括原始数据和处理后的数据,
CMU-MOSI、CMU-MOSEI、CH-SIMS、Ch-SIMS v2 多模态数据集数据集包括原始数据和处理后的数据一、多模态情感数据集综合信息表包含CMU-MOSI、CMU-MOSEI、CH-SIMS、CH-SIMS v2四款主流音视频文本三模态情感数据集区分基础信息、模态、标注、适用场景同时说明原始数据/预处理数据差异。数据集名称发布方/年份语言数据来源样本总量数据模态标注体系原始数据预处理数据核心适用场景CMU-MOSICMU / 2016英文YouTube 个人观点独白视频2199 片段文本音频视觉TAV情感连续分-3极负面~ 3极正面支持情感回归、二分类原始视频、音频、逐句文本、原始帧图像对齐后帧序列、提取音频特征、分词文本、归一化标签、划分训练/验证/测试集入门基线模型、小样本多模态情感分类、算法对比CMU-MOSEICMU / 2018英文YouTube 评测、访谈、辩论视频23453 片段文本音频视觉精细时序对齐1. 情感分-3 ~ 32. 6大类离散情绪喜、悲、怒、惧、厌、惊原始音视频、字幕、人脸帧、原始音频波形统一尺寸帧、梅尔频谱音频特征、BERT/词向量文本、标准数据集划分、模态对齐文件大模型训练、复杂多模态融合、工业级基准测试CH-SIMS国内团队 / 2020中文影视剧、综艺片段2281 片段文本音频视觉情感连续分-1负~ 1正支持跨模态不一致分析影视原视频、字幕、音频、画面帧中文分词、音频MFCC特征、帧采样、标签归一化、数据集划分脚本中文多模态情感、跨模态矛盾研究、中文算法落地CH-SIMS v2迭代升级版中文影视剧、短视频、日常对话扩充至 6000 片段文本音频视觉补充人脸关键点保留 -1~1 情感分新增细粒度情绪标签扩充原始音视频、高清帧、原始字幕、人脸原图统一特征格式、预提取多类特征、增强标注、标准化划分、兼容主流框架中文细粒度情绪识别、端侧模型、短视频舆情分析二、数据集结构说明1. 通用目录结构原始数据dataset_root/ ├─ CMU-MOSI/ │ ├─ raw_video/ # 原始视频文件 │ ├─ raw_audio/ # 原始音频wav │ ├─ raw_text/ # 逐句字幕/文本 │ ├─ raw_frames/ # 视频原始帧图像 │ └─ label.txt # 原始标注文件片段id情感分 ├─ CMU-MOSEI/ │ ├─ raw_video/ │ ├─ raw_audio/ │ ├─ transcript/ # 时序对齐字幕 │ ├─ frames/ │ └─ annotations/ # 情感双标签标注 ├─ CH-SIMS/ │ ├─ video/ │ ├─ audio/ │ ├─ text/ │ └─ label.csv └─ CH-SIMS_v2/ ├─ raw_data/ ├─ face_keypoints/ # 新增人脸关键点 └─ labels/2. 预处理后数据目录统一格式可直接训练processed_data/ ├─ train/val/test/ # 训练/验证/测试集划分 │ ├─ text_feat/ # 文本预训练特征BERT/Word2Vec │ ├─ audio_feat/ # 音频特征MFCC/梅尔频谱 │ ├─ visual_feat/ # 视觉帧特征 │ └─ label.npy # 标签数组 └─ meta.json # 样本映射、模态维度、类别信息三、环境依赖# requirements.txt torch1.9.0 torchvision transformers librosa # 音频特征提取 opencv-python # 视频帧提取 pandas numpy scikit-learn tqdm安装命令pipinstall-rrequirements.txt四、数据预处理代码通用版适配4个数据集实现视频抽帧、音频特征提取、文本编码、数据集划分、标签归一化importosimportcv2importlibrosaimportnumpyasnpimportpandasaspdfromtqdmimporttqdmfromsklearn.model_selectionimporttrain_test_splitfromtransformersimportBertTokenizer# 配置参数 DATASET_NAMECH-SIMS# 切换CMU-MOSI / CMU-MOSEI / CH-SIMS / CH-SIMS_v2RAW_ROOTf./dataset_root/{DATASET_NAME}PROC_ROOTf./processed_data/{DATASET_NAME}FRAME_SAMPLE_RATE5# 每5帧取1帧AUDIO_SR16000# 音频采样率MAX_TEXT_LEN64IMG_SIZE224os.makedirs(PROC_ROOT,exist_okTrue)os.makedirs(f{PROC_ROOT}/text_feat,exist_okTrue)os.makedirs(f{PROC_ROOT}/audio_feat,exist_okTrue)os.makedirs(f{PROC_ROOT}/visual_feat,exist_okTrue)# 文本编码器tokenizerBertTokenizer.from_pretrained(bert-base-uncasedifCMUinDATASET_NAMEelsebert-base-chinese)# 1. 读取原始标签 defload_label():label_pathos.path.join(RAW_ROOT,label.txtifCMUinDATASET_NAMEelselabel.csv)iflabel_path.endswith(csv):dfpd.read_csv(label_path)returndict(zip(df[id],df[score]))else:label_dict{}withopen(label_path,r,encodingutf-8)asf:forlineinf:idx,scoreline.strip().split()label_dict[idx]float(score)returnlabel_dict# 2. 视频帧提取 视觉预处理 defextract_frames(video_path,save_path):capcv2.VideoCapture(video_path)frame_list[]cnt0whilecap.isOpened():ret,framecap.read()ifnotret:breakifcnt%FRAME_SAMPLE_RATE0:framecv2.resize(frame,(IMG_SIZE,IMG_SIZE))frame_list.append(frame)cnt1cap.release()frame_arraynp.array(frame_list)np.save(save_path,frame_array)returnframe_array# 3. 音频特征提取MFCC defextract_audio(audio_path,save_path):y,_librosa.load(audio_path,srAUDIO_SR)mfcclibrosa.feature.mfcc(yy,srAUDIO_SR,n_mfcc20)np.save(save_path,mfcc)returnmfcc# 4. 文本编码 defencode_text(text,save_path):tokenstokenizer(text,max_lengthMAX_TEXT_LEN,truncationTrue,paddingmax_length,return_tensorsnp)input_idstokens[input_ids][0]np.save(save_path,input_ids)returninput_ids# 主预处理流程 defpreprocess_all():label_dictload_label()sample_idslist(label_dict.keys())train_ids,test_idstrain_test_split(sample_ids,test_size0.2,random_state42)train_ids,val_idstrain_test_split(train_ids,test_size0.2,random_state42)all_labels[]forsidintqdm(sample_ids,desc数据预处理):# 路径定义video_pos.path.join(RAW_ROOT,raw_video,f{sid}.mp4)audio_pos.path.join(RAW_ROOT,raw_audio,f{sid}.wav)text_pos.path.join(RAW_ROOT,raw_text,f{sid}.txt)# 读取文本withopen(text_p,r,encodingutf-8)asf:text_contentf.read().strip()# 执行三模态提取extract_frames(video_p,f{PROC_ROOT}/visual_feat/{sid}.npy)extract_audio(audio_p,f{PROC_ROOT}/audio_feat/{sid}.npy)encode_text(text_content,f{PROC_ROOT}/text_feat/{sid}.npy)all_labels.append(label_dict[sid])# 保存标签 划分文件np.save(f{PROC_ROOT}/all_labels.npy,np.array(all_labels))np.save(f{PROC_ROOT}/train_ids.npy,np.array(train_ids))np.save(f{PROC_ROOT}/val_ids.npy,np.array(val_ids))np.save(f{PROC_ROOT}/test_ids.npy,np.array(test_ids))print(数据预处理完成)if__name____main__:preprocess_all()五、多模态情感分析训练代码PyTorch 通用版三模态融合模型支持情感回归任务适配四个数据集连续标签可直接加载预处理数据训练。importtorchimporttorch.nnasnnfromtorch.utils.dataimportDataset,DataLoaderimportnumpyasnpimportos# 全局配置 DEVICEtorch.device(cudaiftorch.cuda.is_available()elsecpu)BATCH_SIZE16EPOCHS30LEARN_RATE1e-3PROC_DATA_PATH./processed_data/CH-SIMS# 切换对应数据集路径# 1. 自定义数据集类 classMultiModalDataset(Dataset):def__init__(self,data_path,splittrain):self.data_pathdata_path self.splitsplit# 加载样本ID和标签self.idsnp.load(os.path.join(data_path,f{split}_ids.npy))self.all_labelsnp.load(os.path.join(data_path,all_labels.npy))def__len__(self):returnlen(self.ids)def__getitem__(self,idx):sidself.ids[idx]# 加载三模态特征text_featnp.load(f{self.data_path}/text_feat/{sid}.npy)audio_featnp.load(f{self.data_path}/audio_feat/{sid}.npy)visual_featnp.load(f{self.data_path}/visual_feat/{sid}.npy)labelself.all_labels[idx]# 转Tensortexttorch.from_numpy(text_feat).long()audiotorch.from_numpy(audio_feat).float()visualtorch.from_numpy(visual_feat).float()labeltorch.tensor(label,dtypetorch.float32)returntext,audio,visual,label# 2. 三模态融合模型 classMultiModalEmotionNet(nn.Module):def__init__(self):super().__init__()# 文本分支self.text_fcnn.Sequential(nn.Linear(64,128),nn.ReLU(),nn.Dropout(0.2))# 音频分支self.audio_fcnn.Sequential(nn.AdaptiveAvgPool1d(1),nn.Flatten(),nn.Linear(20,128),nn.ReLU(),nn.Dropout(0.2))# 视觉分支self.visual_fcnn.Sequential(nn.AdaptiveAvgPool2d(1),nn.Flatten(),nn.Linear(3,128),nn.ReLU(),nn.Dropout(0.2))# 融合 回归输出self.fusionnn.Sequential(nn.Linear(128*3,256),nn.ReLU(),nn.Linear(256,1))defforward(self,text,audio,visual):t_featself.text_fc(text)a_featself.audio_fc(audio)v_featself.visual_fc(visual)# 拼接三模态特征concat_feattorch.cat([t_feat,a_feat,v_feat],dim-1)outself.fusion(concat_feat)returnout.squeeze(-1)# 3. 训练 验证函数 deftrain_epoch(model,loader,optimizer,criterion):model.train()total_loss0.0fortext,audio,visual,labelinloader:text,audio,visual,labeltext.to(DEVICE),audio.to(DEVICE),visual.to(DEVICE),label.to(DEVICE)optimizer.zero_grad()predmodel(text,audio,visual)losscriterion(pred,label)loss.backward()optimizer.step()total_lossloss.item()returntotal_loss/len(loader)defval_epoch(model,loader,criterion):model.eval()total_loss0.0withtorch.no_grad():fortext,audio,visual,labelinloader:text,audio,visual,labeltext.to(DEVICE),audio.to(DEVICE),visual.to(DEVICE),label.to(DEVICE)predmodel(text,audio,visual)losscriterion(pred,label)total_lossloss.item()returntotal_loss/len(loader)# 4. 主训练入口 if__name____main__:# 加载数据集train_setMultiModalDataset(PROC_DATA_PATH,splittrain)val_setMultiModalDataset(PROC_DATA_PATH,splitval)test_setMultiModalDataset(PROC_DATA_PATH,splittest)train_loaderDataLoader(train_set,batch_sizeBATCH_SIZE,shuffleTrue,num_workers2)val_loaderDataLoader(val_set,batch_sizeBATCH_SIZE,shuffleFalse,num_workers2)test_loaderDataLoader(test_set,batch_sizeBATCH_SIZE,shuffleFalse,num_workers2)# 模型、损失、优化器modelMultiModalEmotionNet().to(DEVICE)criterionnn.MSELoss()# 情感回归任务使用MSEoptimizertorch.optim.Adam(model.parameters(),lrLEARN_RATE)best_val_lossfloat(inf)forepochinrange(EPOCHS):train_losstrain_epoch(model,train_loader,optimizer,criterion)val_lossval_epoch(model,val_loader,criterion)print(fEpoch [{epoch1}/{EPOCHS}] | Train Loss:{train_loss:.4f}| Val Loss:{val_loss:.4f})# 保存最优模型ifval_lossbest_val_loss:best_val_lossval_loss torch.save(model.state_dict(),best_emotion_model.pth)print(保存最优模型)# 测试集评估test_lossval_epoch(model,test_loader,criterion)print(fTest Loss:{test_loss:.4f})六、使用说明 适配调整1. 数据集切换修改两处即可切换数据集预处理代码DATASET_NAME xxx训练代码PROC_DATA_PATH ./processed_data/xxx2. 任务切换回归/分类原数据集为连续情感分-3~3 / -1~1使用代码中MSELoss做回归若转为二分类/多分类将标签离散化负/正、喜/怒/哀等损失函数替换为CrossEntropyLoss模型最后一层输出改为对应类别数3. CH-SIMS v2 额外适配该版本新增人脸关键点只需在数据集类中额外加载关键点特征在模型中增加一路分支融合即可。4. 原始数据 预处理数据使用建议原始数据适合自定义特征提取、算法研究、论文实验预处理数据特征已固定开箱即用适合快速训练、课程作业、毕设。七、应用场景总结学术研究多模态情感融合、跨模态不一致、情绪识别算法对比工程落地短视频舆情分析、直播情绪监控、客服对话情绪研判教学实训AI 多模态项目、毕设课题、深度学习课程实验。

相关新闻

STM32 使用LCD1602简单显示字符

STM32 使用LCD1602简单显示字符

一、概述 1. 功能说明 本驱动适配 LCD1602 8 位并行模式,完全对标原 51 单片机逻辑迁移至 STM32,实现 LCD 初始化、清屏、指定坐标字符串打印;硬件引脚固定 PB 组,底层采用标准库 GPIO 操作,不依赖 HAL 库。 2. 硬件引…

2026/8/8 14:01:42 阅读更多 →
coding-ethos 实战:把 AI 编码规则变成可回读的 policy 与 remediation

coding-ethos 实战:把 AI 编码规则变成可回读的 policy 与 remediation

AI 编码治理最容易漏掉的不是规则,而是规则执行后的证据。coding-ethos 把项目约束拆成 policy、agent、hooks 和 code-intel 四个可追踪部分:coding_ethos.yml 管机制,CODING_ETHOS.md 与 ETHOS.md 管规范,AGENTS.md 与 CLAUDE.m…

2026/8/7 0:29:13 阅读更多 →
Kimi正式发布首个开源2.8万亿大模型 K3, 与GPT-5.6和Fable 5处于同一梯队

Kimi正式发布首个开源2.8万亿大模型 K3, 与GPT-5.6和Fable 5处于同一梯队

7月16日晚上,月之暗面发布了Kimi K3,首个最大开源模型。2.8万亿参数,MoE架构,896个专家中每次激活16个,100万Token上下文,原生视觉理解。完整权重7月27日前开放。同一时间,WAIC 2026在上海布展完…

2026/8/4 23:40:16 阅读更多 →

最新新闻

HarmonyOS 7 / API 26 3DGS 重建会话卡住排查:进度、取消和后台恢复实战

HarmonyOS 7 / API 26 3DGS 重建会话卡住排查:进度、取消和后台恢复实战

HarmonyOS 7 / API 26 3DGS 重建会话卡住排查:进度、取消和后台恢复实战重建会话不是普通按钮点击 HarmonyOS 7 / API 26 的 3DGS 端侧重建属于很典型的长任务。它和普通页面请求不一样:普通请求失败了,大不了提示重试;重建任务一…

2026/8/8 14:01:22 阅读更多 →
3分钟搞定!APK Installer:Windows上安装安卓应用的终极解决方案

3分钟搞定!APK Installer:Windows上安装安卓应用的终极解决方案

3分钟搞定!APK Installer:Windows上安装安卓应用的终极解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直…

2026/8/8 14:01:22 阅读更多 →
怎样从零开始组装你的Ender-3 3D打印机:5个实用步骤指南

怎样从零开始组装你的Ender-3 3D打印机:5个实用步骤指南

怎样从零开始组装你的Ender-3 3D打印机:5个实用步骤指南 【免费下载链接】Ender-3 The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget. 项目地址: https://gitcode.com/gh_mirrors/en/Ender-3 如果你是3D打印新手&…

2026/8/8 14:01:22 阅读更多 →
校园IoT门禁电控一体化方案:破解高校安防漏洞与运维降本难题

校园IoT门禁电控一体化方案:破解高校安防漏洞与运维降本难题

一、前言 随着智慧校园数字化建设持续深耕,高校后勤管理逐步从人工粗放运维转向智能化、精细化、节能化管控。学生宿舍、教学教室、实训功能房作为校园核心高频场景,长期面临人员混杂、身份核验松散、用电隐患频发、运维成本居高不下等行业痛点。传统机械…

2026/8/8 14:01:22 阅读更多 →
3个核心技巧彻底解决G-Helper启动故障:从新手到专家的完整指南

3个核心技巧彻底解决G-Helper启动故障:从新手到专家的完整指南

3个核心技巧彻底解决G-Helper启动故障:从新手到专家的完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…

2026/8/8 14:01:22 阅读更多 →
5分钟学会小米手表表盘制作:免费可视化设计工具终极指南

5分钟学会小米手表表盘制作:免费可视化设计工具终极指南

5分钟学会小米手表表盘制作:免费可视化设计工具终极指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 厌倦了小米手表上千篇一律的默认表盘&…

2026/8/8 14:00:22 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/8 8:58:26 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →