上传需求文档

This commit is contained in:
lzc
2025-07-02 13:58:33 +08:00
parent 4b3870440c
commit 79b2864afe
2 changed files with 74 additions and 0 deletions

11
doc/数据介绍.txt Normal file
View File

@@ -0,0 +1,11 @@
CASIA文件夹
汉语4个人(2名男性2名女性)的大约 1200个音频。
表达了6种不同的情绪:neutralhappysadangryfearfilsurprised。
SAVEE文件夹
英文4个人(男性)的大约 500 个音频:
表达了6种不同的情绪(第一个字母表示情绪类别):a=angerf=fearh=happinessn=neutral,
sa=sadness,su=surprise。
RAVDESS文件夹
英文24 个人(12 名男性12名女性)的大约1500个音频。
表达了6种不同的情绪(第三位数字表示情绪类别):01=neutral03=happy04=sad05=angly.
06=fearful,08=surprised.

View File

@@ -0,0 +1,63 @@
数据读取
Librosa是一个用于音频、音乐分析、处理的python第三方库。
使用glob函数批量获取音频文件的路径。
通过load函数可以对语音数据进行读取load函数会返回两个数据:音频时间序列和采样率
获取并保存语音的标签。
使用matplotlib库和librosa库对读取的数据进行简单的可视化。
特征工程
librosa库的feature模块适用于语音数据的特征提取和操作
音高、估计调谐偏差
通过短时傅里叶变换获取数据频率的振幅
设置最小最大基本频率,获取音高、幅度
根据返回的音高计算估计调谐偏差(音高调谐)
最后计算音高的均值、全局标准差、最大值和最小值
频谱质心:幅度频谱图的每一帧都经过归一化并被视为频率箱上的分布,其平均值(质心)为 按帧提取。
使用feature模块中的spectral centroid函数计算频谱质心。
对返回的频谱质心做简单的标准化。
计算频谱质心的均值、全局标准差和最大值。
光谱平坦度;光谱平坦度(或色调系数)是衡量量化声音有多少类似噪音,而不是 类似音调1.高光谱平
坦度(接近1.0)表示频谱类似于白噪声。 它通常转换为分贝。
使用feature模块中的spectral flatness函数计算光谱平坦度
计算光谱平坦度的均值。
MFCC特征(梅尔频率倒谱系数):使用系数为50的MFCC特征
使用feature模块中的chroma_stft函数计算梅尔频率倒谱系数。
计算梅尔频率倒谱系数的均值,
梅尔频率:提供时间序列输入,首先计算其幅度频谱图,然后通过 映射到 mel刻度上。
使用feature模块中的melspectrogram函数计算梅尔频率:
计算梅尔频率的均值。
光谱对比度:频谱图的每一帧都分为子带。 对于每个子带,通过比较来估计能量对比度最高分位数(峰
值能量)中的平均能量与底部分位数(谷能量)。通常对比度值较高对应于清晰的窄带信号,而低对比度
值对应于宽带噪声。
使用feature模块中的spectral contrast函数计算光谱对比度
计算光谱对比度的均值。
过零率:计算音频时间序列的过零率。
使用feature模块中的zero crossing rate函数计算过零率
计算过零率的均值。
磁相:使用librosa库中的magphase函数计算磁相。
根据返回的量级,计算其均值、全局标准差和最大值。
均方根能量:计算每个帧的均方根(RMS)值从音频样本或来自频谱图。从音频样本计算RMS值更快,
因为它不需要一个STFT计算。
使用feature模块中的rms函数计算均方根
计算均方根的均值、全局标准差和最大值。
色谱图:根据功率谱图计算色谱图
使用librosa库中的chroma stft函数计算色谱图
计算其均值。
特征工程
特征数据的标准化
二维数据转为三维数据
标对签进行数值型编码
划分训练集和验证集
基于tensorflow框架调用其keras接口构建LSTM模型
为抑制过拟合的现象往LSTM网络结构中添加L2正则化
模型编译:
优化器:adam
损失函数:交叉熵损失函数
评估指标:准确率
添加回调函数
模型训练。
可视化模型训练效果(使用系统字体)
小结
使用glob库批量获取语音数据的路径再调用Iibrosa库中的load函数进行数据读取。
使用Iibrosa库对语音数据进行特征提取。
构建LSTM模型对语音数据进行情绪分析为抑制过拟合现象的发生添加L2正则化。
可对数据集、特征工程和LSTM模型进行优化。