菜码编程

  • 首页
  • 隐私政策
Caima Coding
专注于AI项目实战分享
  1. 首页
  2. 人工智能
  3. 正文

[项目实战] 基于MFCC和CNN的语音情感识别系统

2025年 3月 6日 2662点热度 0人点赞 0条评论
内容目录

基于深度学习的语音情感识别系统

我们的网站是菜码编程。
如果你对我们的项目感兴趣可以扫码关注我们的公众号,我们会持续更新深度学习相关项目。

1 项目概述

本项目是一个基于深度学习的语音情感识别系统,使用 PyTorch 实现。该系统能够从音频中识别 6种不同的情感状态:愤怒、恐惧、开心、中性、悲伤和惊讶。项目实现了完整的数据处理、模型训练和评估流程,并提供了友好的图形用户界面(GUI)进行实时预测。

无论是研究者还是开发者,都可以通过本项目快速上手语音情感识别任务,并根据自己的需求调整模型和参数。

1.1 数据集

本项目使用的数据集来自 百度AI Studio 的情感语音数据集。数据集包含以下信息:

  • 类别:生气、恐惧、开心、正常、伤心、惊讶,共6种类别。
  • 样本数量:每类50个样本,总计300条数据。
  • 格式:音频文件为 .wav 格式。

1.2 模型性能概述

模型 特征类型 准确率 F1得分 备注
ResNet18 MFCC频谱图 73.3% 74.4% 使用预训练权重
ResNet18 原始波形 80.0% 78.0% 不使用预训练权重

1.3 目录说明

|
|-- checkpoints/  # 保存训练好的模型
|   |-- _
|   |   |-- plots/  # 保存训练过程中的图像
|   |   |-- results.txt  # 保存评价指标
|   |   |-- _best.pth  # 保存最佳模型
|   |-- ...
|
|-- dataset/  # 划分后的数据集根目录
|   |-- train/ # 训练集
|   |   |-- /
|   |   |   |-- .wav
|   |   |-- ...
|   |-- val/ # 验证集
|       |-- /
|       |   |-- .wav
|       |-- ...
|
|-- wav # 原始音频数据集
|   |-- /
|   |   |-- .wav
|   |-- ...
|
|-- dataset.py  # 数据集类
|-- models.py  # 模型定义
|-- process_data.py  # 数划分数据集
|-- README.md # 项目说明
|-- requirements.txt  # 依赖库
|-- SIMSUN.TTC  # 字体文件
|-- train.py  # 训练脚本
|-- ui.py  # 交互界面

2 环境配置

2.1 创建虚拟环境

建议使用 conda 创建虚拟环境以避免依赖冲突:

conda create -n audio_classification python=3.10
conda activate audio_classification

2.2 安装 PyTorch 及相关库

请根据 PyTorch 官方安装指南 安装适合自己硬件版本的 torch、torchvision 和 torchaudio。

2.3 安装依赖库

运行以下命令安装项目所需的其他依赖库:

pip install -r requirements.txt

3 运行说明

3.1 数据集划分

将原始数据集划分为训练集和验证集。运行以下命令:

python process_data.py

您可以通过命令行参数控制数据集根目录、验证集比例等。更多参数说明请参考文档 process_data.md。

3.2 训练模型

运行以下命令开始训练模型。您可以通过命令行参数灵活调整超参数。

基本运行(使用默认参数)

python train.py

调整模型和超参数

例如,使用 MFCC 频谱图作为输入特征,选择 ResNet34 模型,并启用预训练权重:

python train.py --use_mfcc --model spec_resnet34 --pretrained --batch_size 32 --epochs 50 --lr 0.0005 --scheduler

完整的参数说明请参考文档 train.md。

3.3 交互界面

运行以下命令启动图形用户界面,进行实时预测:

python ui.py

4 功能特点

  1. 完整的训练流程

    包含数据加载、模型训练、验证和测试的全流程,方便用户快速上手。

  2. 多种模型选择

    支持不同规模的 ResNet 模型(如 ResNet18、ResNet34),并支持原始音频和 MFCC 频谱图作为输入特征。

  3. 超参数控制

    用户可通过命令行参数灵活调整学习率、批量大小、训练轮数等超参数。

  4. 丰富的评估指标

    提供准确率、精确度、召回率、F1分数、混淆矩阵等评价指标,帮助用户全面评估模型性能。

  5. 自动绘图:

    • 训练和验证损失曲线
    • 准确率曲线
    • 精确度曲线
    • 召回率曲线
    • F1分数曲线
    • 混淆矩阵
    • PR曲线

5 结果展示

软件界面
混淆矩阵
损失曲线
准确率曲线
精确度曲线
召回率曲线
F1分数曲线
PR曲线

我们的网站是菜码编程。
如果你对我们的项目感兴趣可以扫码关注我们的公众号,我们会持续更新深度学习相关项目。

fotter

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2025年 3月 6日

Caima Coding

分享人工智能编程经验 | 实战项目

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 基于深度学习的语音情感识别系统
    • 1 项目概述
      • 1.1 数据集
      • 1.2 模型性能概述
      • 1.3 目录说明
    • 2 环境配置
      • 2.1 创建虚拟环境
      • 2.2 安装 PyTorch 及相关库
      • 2.3 安装依赖库
    • 3 运行说明
      • 3.1 数据集划分
      • 3.2 训练模型
      • 3.3 交互界面
    • 4 功能特点
    • 5 结果展示

COPYRIGHT © 2024 菜码编程. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2024080801号