专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。 网站正在不断建设和完善过程中,欢迎大家给予建议和参与社区建设
52phm,专注于预测性维护知识学习和交流,欢迎广大从事预测性维护行业人员投稿,投稿请联系管理员(wx: www52phmcn),投稿内容可以是:
数据集和代码均已上传到Github中,欢迎大家下载使用。
Github地址:https://github.com/JasonZhang156/Sound-Recognition-Tutorial
如果这个教程对您有所帮助,请不吝贡献您的小星星Q^Q.
本节针对ESC-10数据集进行基本的数据分析,包括数据样本数,数据类别数,每类声音样本数等信息。并且对每类样本的声音波形,功率谱进行绘制,比较不同类样本之间的声音特性差异。代码如下:
# -*- coding: utf-8 -*-
"""
@author: Jason Zhang
@github: https://github.com/JasonZhang156/Sound-Recognition-Tutorial
"""
import os
import numpy as np
import librosa
import librosa.display
import matplotlib.pyplot as plt
from glob import glob
def data_stat():
"""data statistic"""
audio_path = './data/esc10/audio/'
class_list = [os.path.basename(i) for i in glob(audio_path '*')]
nums_each_class = [len(glob(audio_path cl '/*.ogg')) for cl in class_list]
rects = plt.bar(range(len(nums_each_class)), nums_each_class)
index = list(range(len(nums_each_class)))
plt.title('Numbers of each class for ESC-10 dataset')
plt.ylim(ymax=60, ymin=0)
plt.xticks(index, class_list, rotation=45)
plt.ylabel("numbers")
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() rect.get_width() / 2, height, str(height), ha='center', va='bottom')
plt.tight_layout()
plt.show()
def plot_wave(sound_files, sound_names):
"""plot wave"""
i = 1
fig = plt.figure(figsize=(20, 64))
for f, n in zip(sound_files, sound_names):
y, sr = librosa.load(os.path.join('./data/esc10/audio/', f))
plt.subplot(10, 1, i)
librosa.display.waveplot(y, sr, x_axis=None)
plt.title(n ' - ' 'Wave')
i = 1
plt.tight_layout(pad=10)
plt.show()
def plot_spectrum(sound_files, sound_names):
"""plot log power spectrum"""
i = 1
fig = plt.figure(figsize=(20, 64))
for f, n in zip(sound_files, sound_names):
y, sr = librosa.load(os.path.join('./data/esc10/audio/', f))
plt.subplot(10, 1, i)
D = librosa.logamplitude(np.abs(librosa.stft(y)) ** 2, ref_power=np.max)
librosa.display.specshow(D, sr=sr, y_axis='log')
plt.title(n ' - ' 'Spectrum')
i = 1
plt.tight_layout(pad=10)
plt.show()
if __name__ == '__main__':
# 每类样本选取一个demo文件
sound_files = ['Dog/1-30226-A.ogg', 'Rooster/1-26806-A.ogg', 'Rain/1-17367-A.ogg', 'Sea waves/1-28135-A.ogg',
'Crackling fire/1-4211-A.ogg', 'Crying baby/1-22694-A.ogg', 'Sneezing/1-26143-A.ogg',
'Clock tick/1-21934-A.ogg', 'Helicopter/1-172649-A.ogg', 'Chainsaw/1-19898-A.ogg']
# 各类的标签
sound_names = ['Dog', 'Rooster', 'Rain', 'Sea waves', 'Crackling fire', 'Crying baby', 'Sneezing',
'Clock tick', 'Helicopter', 'Chainsaw']
# 统计数据集中类别数,各类样本的数量,总样本数量等信息
data_stat()
# 画出每类样本的波形图,比较各类样本波形之间的差异
plot_wave(sound_files, sound_names)
# 画出每类样本的能量谱图,比较各类样本能量谱之间的差异
plot_spectrum(sound_files, sound_names)
上述代码包含在Github中的data_analysis.py文件中。
代码运行结果:
2. ESC-10数据集每类样本的声音波形图
3. ESC-10数据集每类样本的功率谱图
对上图进行说明:
1)第一张图统计了ESC-10各类样本分布情况,和我们在上一节“数据集介绍”中对该数据集的描述是一致的:10类样本,每类40个样本,共400个样本;
2)第二张图展示了每类样本(选取了一个样本作为demo样本)的声音波形图。从图中我们可以看出,每类样本的波形变化还是千差万别的。当然也存在波形看起来比较相近的,比如“Rain”和"Sea waves",这也是模型比较难区分的类别;
3)第三张图展示了每类样本声音的功率谱图。对比第二张图,我们发现声音的功率谱和波形的变化趋势是相近的,只不过是以频谱的形式展示出来。
原文链接:https://blog.csdn.net/zzc15806/article/details/84973370
2022-01-13 16:53:53
互联网
790
分类:算法开发
专栏:语音信号预处理
2022-01-13 17:36:49
互联网
416
分类:算法开发
专栏:数字信号处理
2022-05-31 11:08:40
互联网
1569
分类:算法开发
专栏:振动信号预处理
关注公众号进群
让志同道合读者学习交流
该数据集是疲劳实验用于监测轴承在过载情况下的损坏过程数据,具体实验简介可在下载文件中获取。
2021-12-05 18:17:42
博客笔记
4381
分类:边缘感知
专栏:轴承
本文章介绍江南大学轴承数据集,提供数据集下载学习,江南大学轴承数据文件及实验简介可通过下载文件进行了解和学习~
2021-12-04 22:43:30
博客笔记
4576
分类:边缘感知
专栏:轴承
该轴承数据集是某大数据竞赛的训练数据集,本文提供了数据下载和数据描述文件下载入口,欢迎阅读~
2021-12-04 23:42:04
博客笔记
3182
分类:边缘感知
专栏:轴承
国外工业数据集平台
2021-12-05 18:44:41
博客笔记
4222
分类:边缘感知
专栏:轴承
刀具数据及其数据说明文档详情请看本文章介绍
2021-12-04 23:12:45
博客笔记
1536
分类:边缘感知
专栏:刀具
DSP期末总复习基于教材:《数字信号处理——原理、实现及应用(第3版)》 高西全等 编著一、基本概念1.1 信号1.2 系统1.3 卷积1.4 差分方程二、傅里叶变换2.1 连续信号:CTFT和CTFS2.2 时域离散信号:DTFT和DTFS2.3 周期信号的傅里叶变换2.4 离散傅里叶变换(DFT)2.5 快速傅里叶变换(FFT)三、Z变换3.1 Z变换3.2 Z变换的性质3.3 逆Z变换3.4 Z变换的应用四、模拟信号数字处理五、滤波器5.1 一些散落的实例5.
2021-12-14 10:44:43
互联网
795
分类:算法开发
专栏:数字信号处理
1、频谱泄露 对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱时,对时域做了截断,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄漏”出去的,这种现象称 为频谱“泄漏”。2、代码分析如果我们波形不能在fft_size个取样中形成整数个周期的话会怎样呢?将上篇博客中的采样对象...
2021-12-14 14:06:09
互联网
783
分类:算法开发
专栏:数字信号处理
随机振动信号分析方法总结信号处理(信号滤波、时频域分析、神经网络、寿命预测)一、时域分析时域分析特征包括均值、方差、峭度、峰峰值等;振动信号降噪结果分析:对于去噪效果好坏的评价,常用信号的信噪比(SNR)、估计信号同原信号的均方根误差(RMSE)来判断。SNR 越高则说明混在信号里的噪声越小,否则相反。RMSE的计算值越小则表示去噪效果越好。信噪比定义:均方根误差定义:二、频域分析三、 时频联合域分析(Joint Time-Frequency Analysis,JTFA)即时频分析,
2021-12-14 18:49:46
互联网
1376
分类:算法开发
专栏:振动信号预处理
提升预测精度:探索性数据分析-EDAsales_train_validation.csv参考:Python版本EDA+传统时间序列方法:<li>整体聚合销量时间序列。 <ul>- 销售额普遍上升,这对沃尔玛来说是个好消息。我们可以找出一些每年的季节性,在圣诞节下降,这是一年中唯一的商店关闭的日子
2021-12-21 14:15:31
互联网
477
分类:算法开发
专栏:时间序列预测
文章目录一、信号的时域分析1.1信号波形参数识别1.2检测方法 过零检测法1.3数字信号微分与数字信号积分二、信号的频域分析2.1周期信号的频谱分析2.2 信号的频谱分析2.3数字信号的频谱计算方法三、信号的时差域相关分析3.1信号的相关系数3.2 相关应用3.3 数字滤波器和模拟滤波器的区别四、信号的幅值域分析4.1概率密度曲线与概率分布曲线的应用五、信号的数字滤波5.1滤波器概念5.2频率域滤波:5.3时域滤波5.4 时域FIR滤波器5.5 IIR滤波器5.6 其他滤波器5.7 数字音乐均衡器的设计六、
2022-01-13 17:40:13
互联网
343
分类:算法开发
专栏:数字信号处理
从事设备故障预测与健康管理行业多年的PHM算法工程师(机器医生)、国际振动分析师, 实践、研发和交付的项目涉及“化工、工业机器人、风电机组、钢铁、核电、机床、机器视觉”等领域。专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。