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

简介: 人工智能音频处理库—librosa(安装与使用)

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


三、常用功能代码实现

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)


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)

可见,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)

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


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


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

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

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

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

正文结束!!!

相关文章
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】Python之人工智能应用篇——音频生成技术
音频生成是指根据所输入的数据合成对应的声音波形的过程,主要包括根据文本合成语音(text-to-speech)、进行不同语言之间的语音转换、根据视觉内容(图像或视频)进行语音描述,以及生成旋律、音乐等。它涵盖了声音结构中的音素、音节、音位、语素等基本单位的预测和组合,通过频谱逼近或波形逼近的合成策略来实现音频的生成。 音频生成技术的发展主要依赖于深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer等。这些模型通过学习大量的音频数据,能够自动生成与人类发音相似甚至超越人类水平的音频内容。近年来,随着大规模预训练模型的流行,如GPT系列模型、BERT、T5等,
74 7
【深度学习】Python之人工智能应用篇——音频生成技术
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)
【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)
47 1
【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)
|
3月前
|
人工智能 算法 PyTorch
【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)
【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)
53 0
|
3月前
|
机器学习/深度学习 人工智能 数据挖掘
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
61 0
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的无限可能:技术前沿与应用实践
【10月更文挑战第23天】探索人工智能的无限可能:技术前沿与应用实践
|
4天前
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用及其挑战
【10月更文挑战第22天】人工智能技术正逐渐渗透到我们生活的方方面面,尤其是在医疗领域,它展现出了巨大的潜力。从辅助医生进行疾病诊断到预测患者病情的发展,AI的应用正在改变着传统的医疗模式。然而,随之而来的是一系列挑战,包括数据隐私、算法偏见以及医患关系的重新定位等问题。本文将探讨AI在医疗诊断中的应用实例,并分析面临的主要挑战,以期对未来的医疗AI应用提供深入的见解和建议。
|
4天前
|
传感器 人工智能 自动驾驶
人工智能在自动驾驶汽车中的应用
【10月更文挑战第31天】人工智能在自动驾驶汽车中的应用是科技进步与汽车产业转型的产物。通过计算机视觉、雷达、LiDAR和超声波传感器等技术,自动驾驶汽车实现了精准感知;借助复杂AI算法,实现决策与控制、路径规划与导航。尽管面临技术成熟度、法规与伦理、公众接受度等挑战,但未来自动驾驶汽车有望在全球范围内实现商业化普及,彻底改变出行方式,提高道路安全,减少交通拥堵,促进绿色出行。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能技术在金融领域的应用有哪些?
【10月更文挑战第16天】人工智能技术在金融领域的应用有哪些?
239 1
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用与发展
【10月更文挑战第13天】 随着科技的不断进步,人工智能(AI)在医疗领域展现出巨大潜力。本文将探讨AI在医疗诊断中的应用现状、面临的挑战以及未来发展的趋势。通过深入分析AI技术如何辅助医生提高诊断精度和效率,我们期望能为相关领域的研究和实践提供有价值的参考。
43 1
|
15天前
|
机器学习/深度学习 人工智能 算法
探究人工智能在医疗诊断中的应用与挑战
本文深入探讨了人工智能(AI)技术在现代医疗诊断中的多样化应用,包括影像识别、临床决策支持系统和个性化治疗方案的制定等。同时,文章也剖析了AI在数据隐私保护、算法透明度以及跨学科合作等方面所面临的挑战,并提出了相应的解决策略。通过综合分析,旨在为读者提供关于AI在医疗领域未来发展的洞见与思考。

热门文章

最新文章