librosa怎么安装_librosa保存音频

librosa怎么安装_librosa保存音频目录序言一、libsora安装pypicondasource二、librosa常用功能核心音频处理函数音频处理频谱表示幅度转换时频转换特征提取绘图显示三、常用功能代码实现读取音频提取特征提取Log-MelSpectrogram特征提取MFCC特征绘图显示绘制声音波形绘制频谱图序言Librosa是一个用于…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定


目录

序言

一、libsora安装

pypi

conda

source

二、librosa常用功能

核心音频处理函数

音频处理

频谱表示

幅度转换

时频转换

特征提取

绘图显示

三、常用功能代码实现

读取音频

提取特征

提取Log-Mel Spectrogram 特征

提取MFCC特征

绘图显示

绘制声音波形

绘制频谱图


序言

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


一、libsora安装

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

pypi

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

pip install librosa

Jetbrains全家桶1年46,售后保障稳定

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

音频处理

librosa怎么安装_librosa保存音频

频谱表示

librosa怎么安装_librosa保存音频

幅度转换

librosa怎么安装_librosa保存音频

时频转换

librosa怎么安装_librosa保存音频

特征提取

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

librosa怎么安装_librosa保存音频

绘图显示

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

librosa怎么安装_librosa保存音频


三、常用功能代码实现

读取音频

>>> 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怎么安装_librosa保存音频

绘制频谱图

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()

输出结果为:

librosa怎么安装_librosa保存音频

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

>>> 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远不止这些功能,关于librosa更多的使用方法还请大家参考librosa官网http://librosa.github.io/librosa/index.html

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200699.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月23日 上午11:15
下一篇 2025年8月23日 上午11:43


相关推荐

  • usb uvc协议 1

    usb uvc协议 1USB 描述符设备描述符 PIDVID 子类协议 usb 协议版本配置的数量配置描述符供电模式电流值接口数量接口描述符接口类型接口子类型接口协议字符串的索引值端点描述符端点地址传输属性轮询间隔数据包大小 USB 传输方式 usb 的传输模式 USB 令牌包 数据包 握手包的传输机制 在令牌包中指定数据包去向或者来源的设备地址和端点 从而保证了只有一个设备对数据包 令牌包作出响应 握手包表示了传输的成功与否 等时传输没有握手包令牌包总是由主机发送

    2026年3月18日
    2
  • Pytest(1)安装与入门「建议收藏」

    Pytest(1)安装与入门「建议收藏」pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月31日
    7
  • 冷门的信息收集工具-genlist、nbtscan、xprobe2学习笔记

    冷门的信息收集工具-genlist、nbtscan、xprobe2学习笔记简介 最近在准备 中职技能大赛的 网络空间安全 所以没有学习什么新的知识 发这个是因为 最近看到湖南市 21 年的市赛的样题 发现好多没有学到的扫描工具 所以边学边记 加上很久没有发了 随便来 CSDN 做个笔记 本文使用 作为注释 一 genlist 简介 genlist 主要用于主机发现 很老了应该来说 不会考到不过了解一下也行 kali 好像没有 genlist 是在 BT5 做的 命令格式 genlist 参数 IP 用到的参数 s 网段扫描测试 ge

    2026年3月26日
    3
  • Linux 的解压缩文件命令「建议收藏」

    Linux 的解压缩文件命令「建议收藏」博客园首页新随笔联系管理随笔-122 文章-0 评论-14 压缩文件 tar -zcvf my.tarabcabc.txtar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。常用格式:单个文件压缩打包tarczvfmy.tarfile1多个文件压缩打包tarczvfmy.tarfile1file2,…单个目录压缩打包tarczvfmy.tar…

    2022年5月16日
    50
  • 2020年度学习规划

    0x00前言之前一直没有发表或者正式的记录过这些规划,想从这段时候开始制作个规划,来记录这段时间的成长,写在博客上面,到时候来看看完成的进展。在年底也会写出一些年度总结预计今年学习的心得、感想、感

    2021年12月11日
    43
  • WPS接入DeepSeek完整教程与操作指南

    WPS接入DeepSeek完整教程与操作指南

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号