美文网首页
人工智能下的音频还能这样玩!!!!

人工智能下的音频还能这样玩!!!!

作者: Python研究者 | 来源:发表于2021-08-21 09:46 被阅读0次

人工智能音频处理库—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

音频处理

image

频谱表示

image

幅度转换

image

时频转换

image

特征提取

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

image

绘图显示

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

image

三、常用功能代码实现

1.读取音频

#导入库
import librosa
# # 读取音频
# Load a wav file
y, sr = librosa.load('./sample.wav')
print(y)
#Librosa默认的采样率是22050,如果需要读取原始采样率,需要设定参数sr=None:
print(sr)
y, sr = librosa.load('./sample.wav',sr=None)
#可见,'beat.wav'的原始采样率为16000。如果需要重采样,只需要将采样率参数sr设定为你需要的值:
print(sr)
 
 
y, sr = librosa.load('./sample.wav',sr=18000)
print(sr)
image

2.提取特征

提取Log-Mel Spectrogram 特征

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

# # 提取特征
# Load a wav file
y, sr = librosa.load('./sample.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)
print(logmelspec.shape)
image

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


3.提取MFCC特征

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

# # 提取MFCC特征
# extract mfcc feature
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40)
print(mfccs)
print(mfccs.shape)
image

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

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


4.绘图显示

4.1绘制声音波形

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

# # 绘图显示
import librosa.display
import matplotlib.pyplot as plt
get_ipython().run_line_magic('matplotlib', 'inline')
plt.figure()
librosa.display.waveplot(y, sr)
plt.title('sample wavform')
plt.show()
image

4.2绘制频谱图

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

# # 绘制频谱图
melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128)
logmelspec = librosa.power_to_db(melspec)
plt.figure()
librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel')
plt.title('sample wavform')
plt.show()
image

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

# # 将声音波形和频谱图绘制在一张图表中:
# 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('sample 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()
image image

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

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

正文结束!!!

相关文章

  • 人工智能下的音频还能这样玩!!!!

    人工智能音频处理库—librosa(安装与使用) 序言 一、libsora安装 pypi conda source...

  • 淘宝,还能这样玩~

    你手机上有哪些APP是每天都要逛的呢? 以上4个,都是我常逛的。如果你们仅觉得它们是休闲娱乐类型的,那你就太小看有...

  • APP路由还能这样玩

    本文主要讲述一种设计思路,组件化架构市面上已经有很多大厂成熟的方案,但是在组件化过程中,偶尔会遇到2个独立业务子模...

  • 兼职还能这样玩? YES!

    处在大学的我们, 像是一只脚还留在学校, 而另一只却已踏入社会。 看到标题,就知道我要讲什么了。 跟大家分享下我的...

  • 骗术 原来还能这样玩

    小伟给我倾诉,在收费站上班。虽说那地方,女人很多,男人吃香。可是他,连个对象也没捞到。 无奈之下,在各大婚恋网站注...

  • 食物还能这样玩!(图文)

    当看到 一条鱼尾 你直接会认为就只是鱼尾 但看到下面的这张图片 你还会这么认为吗! (没错...我还是这么认为.....

  • 原来租房还能这样玩

    差不多一星期没有更新文章了,什么原因呢?那就是我公司搬家了,所以我的住处也要跟着搬了,中间乱七八糟的事太多,住的地...

  • 回纹针竟然还能这样玩!

    还记得前阵子很夯的黄色小鸭吗?原本应该在浴缸悠游的小鸭,被放大了好几百倍,引起了一阵风潮。等比例放大一般尺寸事物的...

  • 原来,面试还能这样玩!

    工作,干的不爽,辞职啊! 这是当代年轻人的职场状态!毕竟,干的不爽,还留下来,等着受气吗? 但是,辞职的时候很得瑟...

  • 什么?购物还能这样玩

    口红,可谓是各位仙女小姐姐的挚爱,没有什么是一支心爱的口红解决不了的,如果有,那就两支!可是买过口红的小姐姐都知道...

网友评论

      本文标题:人工智能下的音频还能这样玩!!!!

      本文链接:https://www.haomeiwen.com/subject/atkfiltx.html