From 7b075030590560f0157608ae0576376da44562e3 Mon Sep 17 00:00:00 2001 From: pnmfazke8 <2712887573@qq.com> Date: Tue, 20 May 2025 22:30:10 +0800 Subject: [PATCH] Update README.md --- README.md | 263 ++++++++++++++++++++++++++---------------------------- 1 file changed, 127 insertions(+), 136 deletions(-) diff --git a/README.md b/README.md index 98550ea..68d0c75 100644 --- a/README.md +++ b/README.md @@ -1,136 +1,127 @@ -# 基于深度学习的语音情感识别系统 - -## 1 项目概述 -本项目是一个基于深度学习的语音情感识别系统,使用 **PyTorch** 实现。该系统能够从音频中识别 **6种不同的情感状态**:愤怒、恐惧、开心、中性、悲伤和惊讶。项目实现了完整的数据处理、模型训练和评估流程,并提供了友好的图形用户界面(GUI)进行实时预测。 - -### 1.1 数据集 -本项目使用的数据集来自 [百度AI Studio 的情感语音数据集](https://aistudio.baidu.com/datasetdetail/221024)。数据集包含以下信息: -- **类别**:生气、恐惧、开心、正常、伤心、惊讶,共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` 创建虚拟环境以避免依赖冲突: -```shell -conda create -n audio_classification python=3.10 -conda activate audio_classification -``` - - -### 2.2 安装 `PyTorch` 及相关库 -请根据 PyTorch 官方[安装指南](https://pytorch.org/get-started/locally/) 安装适合自己硬件版本的 `torch`、`torchvision` 和 `torchaudio`。 - -### 2.3 安装依赖库 -运行以下命令安装项目所需的其他依赖库: - - -```shell -pip install -r requirements.txt -``` - -## 3 运行说明 -### 3.1 数据集划分 -将原始数据集划分为训练集和验证集。运行以下命令: -```shell -python process_data.py -``` -您可以通过命令行参数控制数据集根目录、验证集比例等。更多参数说明请参考文档 [process_data.md](doc/process_data.md)。 -### 3.2 训练模型 - -运行以下命令开始训练模型。您可以通过命令行参数灵活调整超参数。 - -#### 基本运行(使用默认参数) -```python -python train.py -``` - -#### 调整模型和超参数 -例如,使用 MFCC 频谱图作为输入特征,选择 ResNet34 模型,并启用预训练权重: -```python -python train.py --use_mfcc --model spec_resnet34 --pretrained --batch_size 32 --epochs 50 --lr 0.0005 --scheduler -``` -完整的参数说明请参考文档 [train.md](doc/train.md)。 -### 3.3 交互界面 -运行以下命令启动图形用户界面,进行实时预测: - - -```shell -python ui.py -``` -## 4 功能特点 -1. **完整的训练流程** - - 包含数据加载、模型训练、验证和测试的全流程,方便用户快速上手。 - -2. **多种模型选择** - - 支持不同规模的 ResNet 模型(如 ResNet18、ResNet34),并支持原始音频和 MFCC 频谱图作为输入特征。 -3. **超参数控制** - - 用户可通过命令行参数灵活调整学习率、批量大小、训练轮数等超参数。 - -4. **丰富的评估指标** - - 提供准确率、精确度、召回率、F1分数、混淆矩阵等评价指标,帮助用户全面评估模型性能。 -5. 自动绘图: - - 训练和验证损失曲线 - - 准确率曲线 - - 精确度曲线 - - 召回率曲线 - - F1分数曲线 - - 混淆矩阵 - - PR曲线 - -## 5 结果展示 - -![软件界面](doc/images/ui.png) -![混淆矩阵](doc/images/confusion_matrix.png) -![损失曲线](doc/images/loss_plot.png) -![准确率曲线](doc/images/accuracy_plot.png) -![精确度曲线](doc/images/precision_plot.png) -![召回率曲线](doc/images/recall_plot.png) -![F1分数曲线](doc/images/f1_plot.png) -![PR曲线](doc/images/pr_curve.png) - - +# 基于深度学习的语音情感识别系统 + +## 1 项目概述 +本项目是一个基于深度学习的语音情感识别系统,使用 **PyTorch** 实现。该系统能够从音频中识别 **6种不同的情感状态**:愤怒、恐惧、开心、中性、悲伤和惊讶。项目实现了完整的数据处理、模型训练和评估流程,并提供了友好的图形用户界面(GUI)进行实时预测。 + +### 1.1 数据集 +本项目使用的数据集来自 [百度AI Studio 的情感语音数据集](https://aistudio.baidu.com/datasetdetail/221024)。数据集包含以下信息: +- **类别**:生气、恐惧、开心、正常、伤心、惊讶,共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` 创建虚拟环境以避免依赖冲突: +```shell +conda create -n audio_classification python=3.10 +conda activate audio_classification +``` + + +### 2.2 安装 `PyTorch` 及相关库 +请根据 PyTorch 官方[安装指南](https://pytorch.org/get-started/locally/) 安装适合自己硬件版本的 `torch`、`torchvision` 和 `torchaudio`。 + +### 2.3 安装依赖库 +运行以下命令安装项目所需的其他依赖库: + + +```shell +pip install -r requirements.txt +``` + +## 3 运行说明 +### 3.1 数据集划分 +将原始数据集划分为训练集和验证集。运行以下命令: +```shell +python process_data.py +``` +您可以通过命令行参数控制数据集根目录、验证集比例等。更多参数说明请参考文档 [process_data.md](doc/process_data.md)。 +### 3.2 训练模型 + +运行以下命令开始训练模型。您可以通过命令行参数灵活调整超参数。 + +#### 基本运行(使用默认参数) +```python +python train.py +``` + +#### 调整模型和超参数 +例如,使用 MFCC 频谱图作为输入特征,选择 ResNet34 模型,并启用预训练权重: +```python +python train.py --use_mfcc --model spec_resnet34 --pretrained --batch_size 32 --epochs 50 --lr 0.0005 --scheduler +``` +完整的参数说明请参考文档 [train.md](doc/train.md)。 +### 3.3 交互界面 +运行以下命令启动图形用户界面,进行实时预测: + + +```shell +python ui.py +``` +## 4 功能特点 +1. **完整的训练流程** + + 包含数据加载、模型训练、验证和测试的全流程,方便用户快速上手。 + +2. **多种模型选择** + + 支持不同规模的 ResNet 模型(如 ResNet18、ResNet34),并支持原始音频和 MFCC 频谱图作为输入特征。 +3. **超参数控制** + + 用户可通过命令行参数灵活调整学习率、批量大小、训练轮数等超参数。 + +4. **丰富的评估指标** + + 提供准确率、精确度、召回率、F1分数、混淆矩阵等评价指标,帮助用户全面评估模型性能。 +5. 自动绘图: + - 训练和验证损失曲线 + - 准确率曲线 + - 精确度曲线 + - 召回率曲线 + - F1分数曲线 + - 混淆矩阵 + - PR曲线 + + + +