Files
yuyinfenxi/doc/数据读取与特征方法.txt
2025-07-02 13:58:33 +08:00

63 lines
3.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

数据读取
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模型进行优化。