From 79b2864afe0c0d5af0df8ae462d8dfd95e6330de Mon Sep 17 00:00:00 2001 From: lzc Date: Wed, 2 Jul 2025 13:58:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=9C=80=E6=B1=82=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/数据介绍.txt | 11 +++++++ doc/数据读取与特征方法.txt | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 doc/数据介绍.txt create mode 100644 doc/数据读取与特征方法.txt diff --git a/doc/数据介绍.txt b/doc/数据介绍.txt new file mode 100644 index 0000000..dba050a --- /dev/null +++ b/doc/数据介绍.txt @@ -0,0 +1,11 @@ +CASIA文件夹 +汉语,4个人(2名男性,2名女性)的大约 1200个音频。 +表达了6种不同的情绪:neutral,happy,sad,angry,fearfil,surprised。 +SAVEE文件夹 +英文,4个人(男性)的大约 500 个音频: +表达了6种不同的情绪(第一个字母表示情绪类别):a=anger,f=fear,h=happiness,n=neutral, +sa=sadness,su=surprise。 +RAVDESS文件夹 +英文,24 个人(12 名男性,12名女性)的大约1500个音频。 +表达了6种不同的情绪(第三位数字表示情绪类别):01=neutral,03=happy,04=sad,05=angly. +06=fearful,08=surprised. \ No newline at end of file diff --git a/doc/数据读取与特征方法.txt b/doc/数据读取与特征方法.txt new file mode 100644 index 0000000..b5d2591 --- /dev/null +++ b/doc/数据读取与特征方法.txt @@ -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模型进行优化。 \ No newline at end of file