专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。 网站正在不断建设和完善过程中,欢迎大家给予建议和参与社区建设
52phm,专注于预测性维护知识学习和交流,欢迎广大从事预测性维护行业人员投稿,投稿请联系管理员(wx: www52phmcn),投稿内容可以是:
目录
Librosa是一个用于音频、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。本文主要介绍librosa的安装与使用方法。
Librosa官网提供了多种安装方法,详细如下:
最简单的方法就是进行pip安装,可以满足所有的依赖关系,命令如下:
pip install librosa
如果安装了Anaconda,可以通过conda命令安装:
conda install -c conda-forge librosa
直接使用源码安装,需要提前下载源码(https://github.com/librosa/librosa/releases/),通过下面命令安装:
tar xzf librosa-VERSION.tar.gz
cd librosa-VERSION/
python setup.py install
这部分介绍了最常用的音频处理函数,包括音频读取函数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特征是目前在语音识别和环境声音识别中很常用的一个特征,由于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特征的详细信息,有兴趣的可以参考博客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
2021-12-16 18:13:12
互联网
764
分类:开发环境
专栏:下载安装
2021-12-17 14:28:16
互联网
815
分类:开发环境
专栏:下载安装
2022-02-11 13:19:32
博客笔记
905
分类:算法开发
专栏:振动信号预处理
关注公众号进群
让志同道合读者学习交流
目录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
互联网
921
分类:开发环境
专栏:下载安装
首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。2、下载完成后如下图所示3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customize install
2021-12-15 20:40:08
互联网
808
分类:开发环境
专栏:下载安装
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
互联网
1005
分类:开发环境
专栏:下载安装
最新写了一个小项目需要部署到远程服务器,就在阿里云买了一台centos7.x的服务器,想找个完整的教程,却发现都是坑,要不执行到一半执行不下去,要不就是命令错误,经过多次踩坑总结如下:下载安装包wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm未安装wget的同学执行以下命令安装su...
2021-12-16 16:41:27
互联网
730
分类:开发环境
专栏:下载安装
首先,配置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
互联网
789
分类:开发环境
专栏:下载安装
安装sudo pacman -S mysql-workbenchWorkbench截图如果系统启动了MySQL就会有一个Connection,如果没有的话看看自己的MySQL是否已经启动。Workbench可以配置你MySQL数据库的一些信息添加Connnection如果没有store你的密码,那么你点击连接的时候就会提示你输入密码,当然,为了方便你可以保存密码到你的...
2021-12-17 18:09:55
互联网
831
分类:开发环境
专栏:下载安装
论文:Angle-Based Outlier Detection in High-dimensional Data,kdd2008问题高维度情况下,距离同质化。基础:1、在高维空间中角度比距离更稳定[1]2、如果其他大部分的点都在相似的方向上,那么点O是个离群点3、如果许多其他的点在不同的方向上,那么点O不是离群点。方法对于一个给定的点P,它与任意其他点x,y之间的角度构成一个...
2021-12-19 14:55:27
互联网
954
分类:论文速递
专栏:工业异常检测
常常会碰到各种各样时间序列预测问题,如商场人流量的预测、商品价格的预测、股价的预测,等等。TensorFlow新引入了一个TensorFlow Time Series库(以下简称为TFTS),它可以帮助在TensorFlow中快速搭建高性能的时间序列预测系统,并提供包括AR、LSTM在内的多个模型。 时间序列问题 一般而言,时间序列数据抽象为两部分:观察的时间...
2021-12-25 19:50:04
互联网
756
分类:算法开发
专栏:时间序列预测
概述语音信号是一种非平稳的时变信号,它携带着大量信息。在语音编码、语音合成、语音识别和语音增强等语音处理中,都需要提取语音中包含的各种信息语音处理的目的对语音信号进行分析,提取特征参数,用于后续处理加工语音信息,如语音增强和语音合成中的应用根据所分析的参数类型,语音信号可以分成:时域分析最简单、最直观直接对语音信号的时域波形进行分析特征参数:语音的短时能力、平均幅度、短时...
2022-01-13 16:53:53
互联网
790
分类:算法开发
专栏:语音信号预处理
所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图1,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增 加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
2022-03-31 22:05:32
博客笔记
602
分类:算法开发
专栏:未分组
从事设备故障预测与健康管理行业多年的PHM算法工程师(机器医生)、国际振动分析师, 实践、研发和交付的项目涉及“化工、工业机器人、风电机组、钢铁、核电、机床、机器视觉”等领域。专注于工业智能预警系统研发, 通过机理算法和数据驱动算法分析振动信号、音频、DCS、PLC信号、SCADA信号等设备运行状态数据对机器设备进行看病预诊,为机器设备健康运行保驾护航。