移动网站开发技术有哪些,网站网页?问?,百度站长工具seo综合查询,做软件的平台有哪些人工智能音频处理库—librosa(安装与使用)序言一、libsora安装pypicondasource二、librosa常用功能核心音频处理函数音频处理频谱表示幅度转换时频转换特征提取绘图显示三、常用功能代码实现读取音频提取特征提取Log-Mel Spectrogram 特征提取MFCC特征绘图显示绘制声音波形绘制…人工智能音频处理库—librosa(安装与使用)序言一、libsora安装pypicondasource二、librosa常用功能核心音频处理函数音频处理频谱表示幅度转换时频转换特征提取绘图显示三、常用功能代码实现读取音频提取特征提取Log-Mel Spectrogram 特征提取MFCC特征绘图显示绘制声音波形绘制频谱图序言Librosa是一个用于音频、音乐分析、处理的python工具包一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有功能十分强大。本文主要介绍librosa的安装与使用方法。一、libsora安装Librosa官网提供了多种安装方法详细如下pypi最简单的方法就是进行pip安装可以满足所有的依赖关系命令如下pip install librosaconda如果安装了Anaconda可以通过conda命令安装conda install -c conda-forge librosasource直接使用源码安装需要提前下载源码(https://github.com/librosa/librosa/releases/)通过下面命令安装tar xzf librosa-VERSION.tar.gzcd 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三、常用功能代码实现1.读取音频# # 2020-11-9# # 李运辰#导入库import librosa# # 读取音频# Load a wav filey, sr librosa.load(./sample.wav)print(y)#Librosa默认的采样率是22050如果需要读取原始采样率需要设定参数srNone:print(sr)y, sr librosa.load(./sample.wav,srNone)#可见beat.wav的原始采样率为16000。如果需要重采样只需要将采样率参数sr设定为你需要的值print(sr)y, sr librosa.load(./sample.wav,sr18000)print(sr)2.提取特征提取Log-Mel Spectrogram 特征Log-Mel Spectrogram特征是目前在语音识别和环境声音识别中很常用的一个特征由于CNN在处理图像上展现了强大的能力使得音频信号的频谱图特征的使用愈加广泛甚至比MFCC使用的更多。在librosa中Log-Mel Spectrogram特征的提取只需几行代码# # 提取特征# Load a wav filey, sr librosa.load(./sample.wav, srNone)# extract mel spectrogram featuremelspec librosa.feature.melspectrogram(y, sr, n_fft1024, hop_length512, n_mels128)# convert to log scalelogmelspec librosa.power_to_db(melspec)print(logmelspec.shape)可见Log-Mel Spectrogram特征是二维数组的形式128表示Mel频率的维度(频域)100为时间帧长度(时域)所以Log-Mel Spectrogram特征是音频信号的时频表示特征。其中n_fft指的是窗的大小这里为1024hop_length表示相邻窗之间的距离这里为512也就是相邻窗之间有50%的overlapn_mels为mel bands的数量这里设为128。3.提取MFCC特征MFCC特征是一种在自动语音识别和说话人识别中广泛使用的特征。关于MFCC特征的详细信息有兴趣的可以参考博客http:// blog.csdn.net/zzc15806/article/details/79246716。在librosa中提取MFCC特征只需要一个函数# # 提取MFCC特征# extract mfcc featuremfccs librosa.feature.mfcc(yy, srsr, n_mfcc40)print(mfccs)print(mfccs.shape)关于mfcc这里就不在赘述。Librosa还有很多其他音频特征的提取方法比如CQT特征、chroma特征等在第二部分“librosa常用功能”给了详细的介绍。4.绘图显示4.1绘制声音波形Librosa有显示声音波形函数waveplot( )# # 绘图显示import librosa.displayimport matplotlib.pyplot as pltget_ipython().run_line_magic(matplotlib, inline)plt.figure()librosa.display.waveplot(y, sr)plt.title(sample wavform)plt.show()4.2绘制频谱图Librosa有显示频谱图波形函数specshow( ):# # 绘制频谱图melspec librosa.feature.melspectrogram(y, sr, n_fft1024, hop_length512, n_mels128)logmelspec librosa.power_to_db(melspec)plt.figure()librosa.display.specshow(logmelspec, srsr, x_axistime, y_axismel)plt.title(sample wavform)plt.show()将声音波形和频谱图绘制在一张图表中# # 将声音波形和频谱图绘制在一张图表中# extract mel spectrogram featuremelspec librosa.feature.melspectrogram(y, sr, n_fft1024, hop_length512, n_mels128)# convert to log scalelogmelspec librosa.power_to_db(melspec)plt.figure()# plot a wavformplt.subplot(2, 1, 1)librosa.display.waveplot(y, sr)plt.title(sample wavform)# plot mel spectrogramplt.subplot(2, 1, 2)librosa.display.specshow(logmelspec, srsr, x_axistime, y_axismel)plt.title(Mel spectrogram)plt.tight_layout() #保证图不重叠plt.show()到这里librosa的安装和简单使用就介绍完了。事实上librosa远不止这些功能关于librosa更多的使用方法还请大家参考librosa官网http://librosa.github.io/librosa/index.html正文结束欢迎关注公众号Python爬虫数据分析挖掘方便及时阅读最新文章记录学习python的点点滴滴回复【开源源码】免费获取更多开源项目源码公众号每日更新python知识和【免费】工具本文已同步到【开源中国】、【腾讯云社区】、【CSDN】