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.00000000e+00, 0.00000000e+00, 0.00000000e+00, …,
8.12290182e-06, 1.34394732e-05, 0.00000000e+00], 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

z小白
关注

103

39

553

专栏目录
Python音频处理包——Librosa的安装与使用
赵至柔的博客
2万+
Python音频处理库—librosa的安装与使用 1、librosa简介    Librosa是一个用于音频、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。本文主要介绍librosa的安装与使用方法。    librosa的安装与使用文档 https://librosa.github.io/librosa/ins…
librosa库安装
西檬饭
1078
如果直接使用pip成功安装,关掉本文节省时间。这里介绍的是使用pip安装失败后如何使用source安装。 当前版本0.7.2,官方网站下载,没梯子在这里下载。 1.安装指定版本的numba包: python pip install numba==0.48.0 2.解压librosa安装包并切换到目录安装 tar xzf librosa-0.7.2.tar.gz cd librosa-0.7.2 python setup.py install https://librosa.org/librosa/inst
评论 39

鬍富強
2022.06.22

提取logmei的代码中是否直接包含了包含预加重处理在内的预处理操作
查看其他 39 条评论
写评论
librosa语音信号处理_David-Chow的博客_librosa
7-5
librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能。学会librosa后再也不用用python去实现那些复杂的算法了,只需要一句语句就能轻松实现。参考:《librosa…
librosa的安装与使用_luojiaao的博客
6-21
Librosa是一个用于音频、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。本文主要介绍librosa的安装与使用方法。 一、libsora安装 Librosa官网提供了多种安装方法,详细如下: …
librosa安装常见错误
martin1243的博客
1469
librosa安装过程中最常见的问题就是: numba llvmlite已经存在,无法更新,解决办法: conda install --channel=numba llvmlite 然后安装librosa pip install librosa
Python之librosa库语音信号处理
影子
1569
librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能。 学会librosa后再也不用用python去实现那些复杂的算法了,只需要一句语句就能轻松实现。 官网:https://librosa.org/doc/latest/core.html 核心 IO 和 DSP 音频加载 负载(路径=,sr,单声道,偏移,持续时间,…]) 加载音频文件作为浮点时间系
librosa | 系统实战(一 ~ 四)
qq_44250700的博客
3914
librosa是python中用于提取音乐特征的库 一、安装 参考 https://blog.csdn.net/qq_39516859/article/details/80333431 二、
librosa入门学习
feng1gb的博客
6956
2018-12-12 今天开始学习librosa这个库,这个库主要用于音频处理,对于机器学习音频分类的初步处理工作很有用 第一步肯定需要学习怎样读取音频文件 1.librosa中对音频文件的基本处理模块如下 1)load模块用于读取音频文件,将其转化为一个音频时间序列的np数组 sr-采样频率:sr=None表示使用音频原始采样,如果不给sr赋值则采用默认值22050 …
音频特征提取——librosa工具包使用
weixin_34021089的博客
4573
作者:桂。 时间:2017-05-06 11:20:47 链接:http://www.cnblogs.com/xingshansi/p/6816308.html 前言 本文主要记录librosa工具包的使用,librosa在音频、乐音信号的分析中经常用到,是python的一个工具包,这里主要记录它的相关内容以及安装步骤,用的是python3.5以及win8.1环境。 …
librosa语音信号处理
David’s Tweet
1868
librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能。学会librosa后再也不用用python去实现那些复杂的算法了,只需要一句语句就能轻松实现。 参考: 《librosa语音信号处理》 代码《Added function for mel band frequencies in utils.py》 《论文笔记:语音情感识别(四)语音特征之声谱图,log梅尔谱,MFCC,deltas》 先总结一下.
Python音频信号处理库函数librosa介绍
热门推荐
qq7835144的博客
1万+
文章目录Python音频信号处理库函数librosa介绍(部分内容将陆续添加)介绍安装综述(库函数结构)Core IO and DSP(核心输入输出功能和数字信号处理)Audio processingSpectral representationsMagnitude scalingTime and frequency conversionPitch and tuningDeprecated(mov…
音频处理 windows10下python三方库librosa安装教程
09-16
主要介绍了音频处理 windows10下python三方库librosa安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
librosa 语音库(二)STFT 的实现
最新发布
chumingqian的博客
772
librosa是一个应用广泛的音频处理python库。在librosa中有一个方法叫做stft,功能是求音频的短时傅里叶变换。 音频短时傅里叶变换后,在对音频取幅值,可以得到音频的线性谱。对线性谱进行mel刻度的加权求和,可以得到语音识别和语音合成中常用的mel谱。 短时傅里叶变换的过程是先对音频分帧,再分别对每一帧傅里叶变换。 在应用stft方法求解短时傅里叶变换时,发现求出的特征帧的数目有点反常。比如我有一个长度是400个点的音频,如果帧长是100,那么我自然而然的想到,最后应当得到4帧。但实际不是这个
Python librosa模块介绍
Galen_xia的博客
950
librosa语音信号处理模块 参考链接:https://www.cnblogs.com/LXP-Never/p/11561355.html
librosa | 系统实战(五~十七)
qq_44250700的博客
2298
文章目录十、librasa.core…Spectral representations(1)librosa.core.stft 输出帧数说明:(2)librosa.core.istft(3)librosa.core.ifgram(4)librosa.core.cqt十一、Audio processing(1)librosa.effects.split(2)librosa.core.load(3)librosa.core.to_mono(4)librosa.core.resample(5)librosa.
利用python-librosa库进行音频处理
lyapple2008的专栏
9525
librosa安装conda只需要下面一条命令就可以完成安装conda install -c conda-forge librosa音频输入与输出特征计算
librosa音频处理教程
yanqianglifei的专栏
1243
librosa音频处理教程
[AI,Deep Learning, Tensorflow] Anaconda 安装 librosa
H_O_W_E的专栏
4013
先要提醒你在Anaconda下要注意激活环境啊啊:source activate 环境名 – Anaconda 安装 librosa只需这句: conda install -c conda-forge librosa
————————————————
版权声明:本文为CSDN博主「z小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzc15806/article/details/79603994/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值