52phm简介


专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。 网站正在不断建设和完善过程中,欢迎大家给予建议和参与社区建设

联系我们


投稿说明


52phm,专注于预测性维护知识学习和交流,欢迎广大从事预测性维护行业人员投稿,投稿请联系管理员(wx: www52phmcn),投稿内容可以是:

  • 学习笔记
  • 技术理论
  • 工程案例
  • 行业资讯

加入我们


官方公众号:52phm,专注预测性维护的学习平台

2022-03-23 22:57:45    互联网    648    当前专栏:语音信号预处理    分类:算法开发    本站官网:www.52phm.cn   

公众号 ...

语音信号的数据分析

数据集和代码均已上传到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文件中。

代码运行结果:

  1. ESC-10数据集统计结果:

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    分类:算法开发    专栏:数字信号处理   


基于Python的频谱泄露分析

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    分类:算法开发    专栏:振动信号预处理   


提升预测精度:时间序列探索性数据分析-EDA

提升预测精度:探索性数据分析-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    分类:算法开发    专栏:数字信号处理   


  • 52phm公告

  • 在这里,可以学习接触到工业互联网技术知识以及落地案例,其中涵盖工业数据集、工业标准库、机理模型、设备知识、机器学习、 深度学习、特征工程、振动分析、工业视觉、边缘硬件及传感器等技术知识!


语音信号预处理   
  • 关于站长


  •         从事设备故障预测与健康管理行业多年的PHM算法工程师(机器医生)、国际振动分析师, 实践、研发和交付的项目涉及“化工、工业机器人、风电机组、钢铁、核电、机床、机器视觉”等领域。专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。


当前文章目录


52phm社区

52phm社区,专注预测性维护的学习平台!

Saas体验

+ 工业demo学习系统

技术博客

+ 博客首页    + 算法开发    + 边缘感知   

+ 设备机理    + 开发环境

+ 论文速递   

友情链接

+ 在码圈

联系我

Copyright© 2021 52phm社区

京ICP备2021029973号-1