52phm简介


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


联系我们



投稿说明


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

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


加入我们



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

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

公众号 ...

音频处理库—librosa的安装与使用

目录

序言

一、libsora安装

pypi

conda

source

二、librosa常用功能

核心音频处理函数

音频处理

频谱表示

幅度转换

时频转换

特征提取

绘图显示

三、常用功能代码实现

读取音频

提取特征

提取Log-Mel Spectrogram 特征

提取MFCC特征

绘图显示

绘制声音波形

绘制频谱图

序言

Librosa是一个用于音频、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。本文主要介绍librosa的安装与使用方法。

一、libsora安装

Librosa官网提供了多种安装方法,详细如下:

pypi

最简单的方法就是进行pip安装,可以满足所有的依赖关系,命令如下:

pip install librosa

conda

如果安装了Anaconda,可以通过conda命令安装:

conda install -c conda-forge librosa

source

直接使用源码安装,需要提前下载源码(https://github.com/librosa/librosa/releases/),通过下面命令安装:

tar xzf librosa-VERSION.tar.gz
cd librosa-VERSION/
python setup.py install

二、librosa常用功能

核心音频处理函数

这部分介绍了最常用的音频处理函数,包括音频读取函数load( ),重采样函数resample( ),短时傅里叶变换stft( ),幅度转换函数amplitude_to_db( )以及频率转换函数hz_to_mel( )等。这部分函数很多,详细可参考librosa官网 http://librosa.github.io/ librosa/core.html

音频处理

频谱表示

幅度转换

时频转换

特征提取

本部分列举了一些常用的频谱特征的提取方法,包括常见的Mel Spectrogram、MFCC、CQT等。函数详细信息可参考http:// librosa.github.io/librosa/feature.html

绘图显示

包含了常用的频谱显示函数specshow( ), 波形显示函数waveplot( ),详细信息请参考http://librosa.github.io/librosa/display. html

三、常用功能代码实现

读取音频

import librosa
# Load a wav file
y, sr = librosa.load('./beat.wav')
y
array([  0.00000000e00,   0.00000000e00,   0.00000000e00, ...,
         8.12290182e-06,   1.34394732e-05,   0.00000000e00], dtype=float32)
sr
22050

Librosa默认的采样率是22050,如果需要读取原始采样率,需要设定参数sr=None:

import librosa
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
sr
44100

可见,'beat.wav'的原始采样率为44100。如果需要重采样,只需要将采样率参数sr设定为你需要的值:

import librosa
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=16000)
sr
16000

提取特征

提取Log-Mel Spectrogram 特征

Log-Mel Spectrogram特征是目前在语音识别和环境声音识别中很常用的一个特征,由于CNN在处理图像上展现了强大的能力,使得音频信号的频谱图特征的使用愈加广泛,甚至比MFCC使用的更多。在librosa中,Log-Mel Spectrogram特征的提取只需几行代码:

import librosa
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
# extract mel spectrogram feature
melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128)
# convert to log scale
logmelspec = librosa.power_to_db(melspec)
logmelspec.shape
(128, 194)

可见,Log-Mel Spectrogram特征是二维数组的形式,128表示Mel频率的维度(频域),194为时间帧长度(时域),所以Log-Mel Spectrogram特征是音频信号的时频表示特征。其中,n_fft指的是窗的大小,这里为1024;hop_length表示相邻窗之间的距离,这里为512,也就是相邻窗之间有50%的overlap;n_mels为mel bands的数量,这里设为128。

提取MFCC特征

MFCC特征是一种在自动语音识别和说话人识别中广泛使用的特征。关于MFCC特征的详细信息,有兴趣的可以参考博客http:// blog.csdn.net/zzc15806/article/details/79246716。在librosa中,提取MFCC特征只需要一个函数:

import librosa
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
# extract mfcc feature
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40)
mfccs.shape
(40, 194)

关于mfcc,这里就不在赘述。

Librosa还有很多其他音频特征的提取方法,比如CQT特征、chroma特征等,在第二部分“librosa常用功能”给了详细的介绍。

绘图显示

绘制声音波形

Librosa有显示声音波形函数waveplot( ):

import librosa
import librosa.display
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
# plot a wavform
plt.figure()
librosa.display.waveplot(y, sr)
plt.title('Beat wavform')
plt.show()

输出图形为:

绘制频谱图

Librosa有显示频谱图波形函数specshow( ):

import librosa
import librosa.display
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
# extract mel spectrogram feature
melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128)
# convert to log scale
logmelspec = librosa.power_to_db(melspec)
# plot mel spectrogram
plt.figure()
librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel')
plt.title('Beat wavform')
plt.show()

输出结果为:

将声音波形和频谱图绘制在一张图表中:

import librosa
import librosa.display
# Load a wav file
y, sr = librosa.load('./beat.wav', sr=None)
# extract mel spectrogram feature
melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128)
# convert to log scale
logmelspec = librosa.power_to_db(melspec)
plt.figure()
# plot a wavform
plt.subplot(2, 1, 1)
librosa.display.waveplot(y, sr)
plt.title('Beat wavform')
# plot mel spectrogram
plt.subplot(2, 1, 2)
librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel')
plt.title('Mel spectrogram')
plt.tight_layout() #保证图不重叠
plt.show()

输出结果为:

到这里,librosa的安装和简单使用就介绍完了。事实上,librosa远不止这些功能,关于librosa更多的使用方法还请大家参考librosa官网http://librosa.github.io/librosa/index.html

参考:http://librosa.github.io/librosa/index.html



原文链接:https://blog.csdn.net/zzc15806/article/details/79603994

免责声明


[推荐] linux 系统下Anaconda的安装

2021-12-16 18:13:12    互联网    716    分类:开发环境    专栏:下载安装   


[推荐] Windows系统下安装Workbench安装教程

2021-12-17 14:28:16    互联网    768    分类:开发环境    专栏:下载安装   


[推荐] python使用窗函数处理频谱泄露

2022-02-11 13:19:32    博客笔记    766    分类:算法开发    专栏:振动信号预处理   



转发此文章到社区


关注公众号进群

让志同道合读者学习交流



史上最全最详细的window Anaconda安装教程

目录1. Anaconda简介2. Anaconda安装情况的选择2.1 情况一2.1.1 Anaconda的下载2.1.2 测试安装2.1.3更改源2.1.4更新包2.1.5 创建和管理虚拟环境2.2情况二2.2.1 方法一:通过更改python.exe文件名2.2.2方法二:通过切换虚拟环境3. 结束语1. Anaconda简介...

2021-12-15 18:30:31    互联网    869    分类:开发环境    专栏:下载安装   


window Pycharm及python安装详细教程

首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。2、下载完成后如下图所示3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customize install

2021-12-15 20:40:08    互联网    764    分类:开发环境    专栏:下载安装   


window MySQL下载与安装

MySQL下载与安装一、下载地址:https://dev.mysql.com/downloads/mysql/当前最新是8.0版本,我选择上一个最新的mysql-5.7.24-winx64.zip二、安装MySQL安装文件分两种 .msi和.zip ,.msi需要安装zip格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行环境变量配置zip格式是自己解压我...

2021-12-15 22:58:54    互联网    958    分类:开发环境    专栏:下载安装   


Linux下安装mysql完整教程

最新写了一个小项目需要部署到远程服务器,就在阿里云买了一台centos7.x的服务器,想找个完整的教程,却发现都是坑,要不执行到一半执行不下去,要不就是命令错误,经过多次踩坑总结如下:下载安装包wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm未安装wget的同学执行以下命令安装su...

2021-12-16 16:41:27    互联网    674    分类:开发环境    专栏:下载安装   


linux-ubuntu下pycharm下载安装教程(社区版)

首先,配置JDK环境。 配置语句:sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8-installer可以用命令java -version或者javac -version来看你的环境有没有配置完成 官网下载地址:https://ww...

2021-12-16 17:49:15    互联网    728    分类:开发环境    专栏:下载安装   


Linux安装MySQL可视化工具Workbench

安装sudo pacman -S mysql-workbenchWorkbench截图如果系统启动了MySQL就会有一个Connection,如果没有的话看看自己的MySQL是否已经启动。Workbench可以配置你MySQL数据库的一些信息添加Connnection如果没有store你的密码,那么你点击连接的时候就会提示你输入密码,当然,为了方便你可以保存密码到你的...

2021-12-17 18:09:55    互联网    781    分类:开发环境    专栏:下载安装   


异常检测——ABOD(angle-based outlier detection)

论文:Angle-Based Outlier Detection in High-dimensional Data,kdd2008问题高维度情况下,距离同质化。基础:1、在高维空间中角度比距离更稳定[1]2、如果其他大部分的点都在相似的方向上,那么点O是个离群点3、如果许多其他的点在不同的方向上,那么点O不是离群点。方法对于一个给定的点P,它与任意其他点x,y之间的角度构成一个...

2021-12-19 14:55:27    互联网    827    分类:论文速递    专栏:工业异常检测   


TensorFlow实现时间序列预测

常常会碰到各种各样时间序列预测问题,如商场人流量的预测、商品价格的预测、股价的预测,等等。TensorFlow新引入了一个TensorFlow Time Series库(以下简称为TFTS),它可以帮助在TensorFlow中快速搭建高性能的时间序列预测系统,并提供包括AR、LSTM在内的多个模型。
时间序列问题
  一般而言,时间序列数据抽象为两部分:观察的时间...

2021-12-25 19:50:04    互联网    680    分类:算法开发    专栏:时间序列预测   


语音信号的预处理

概述语音信号是一种非平稳的时变信号,它携带着大量信息。在语音编码、语音合成、语音识别和语音增强等语音处理中,都需要提取语音中包含的各种信息语音处理的目的对语音信号进行分析,提取特征参数,用于后续处理加工语音信息,如语音增强和语音合成中的应用根据所分析的参数类型,语音信号可以分成:时域分析最简单、最直观直接对语音信号的时域波形进行分析特征参数:语音的短时能力、平均幅度、短时...

2022-01-13 16:53:53    互联网    709    分类:算法开发    专栏:语音信号预处理   


tensorflow系列-深度学习中的激活函数

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图1,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增 加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。

2022-03-31 22:05:32    博客笔记    536    分类:算法开发    专栏:未分组   


  • 52phm公告

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


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


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


当前文章目录