Python 音频处理以及可视化 Amplitude,MFCC,Mel Spectrogram, librosa 库

news/2024/10/30 9:27:30/

利用python库 librosa库对于音频文件进行预处理,以及可视化操作。

1. Load Audio Data 导入音频

将音频文件(这里使用苹果录音文件 .m4a 格式)导入librosa,音频格式可以为其它(甚至视频文件mp4也是可以的)

import librosaaudio_data = 'Audio/1.m4a'
y, sr = librosa.load(audio_data)print('y:', y, '\n')
print('y shape:', np.shape(y), '\n')
print('Sample Rate (Hz):', sr, '\n')
print('Check Len of Audio:', np.shape(y)[0]/sr)

返回值有两个 y 和 sr。
y 是音频时间序列并支持多声道,
sr 是采样率 (注意:librosa默认load使用的是22050hz的采样率)
如果想要用固定采样率,则可以使用y, sr = librosa.load(audio_data,sr=None)表示保持原音频的采样率。或者可以规定采样率sr:y, sr = librosa.load(audio_data,sr=44100)

想要获取音频的基本信息可以输入:

print('y:', y, '\n')
print('y shape:', np.shape(y), '\n')
print('Sample Rate (Hz):', sr, '\n')
print('Check Len of Audio:', np.shape(y)[0]/sr)

2. Audio Visualization 音频可视化

a) Amplitude

音频可视化,y轴 为 Amplitude (振幅)随时间变化曲线。
import matplotlib.pyplot as plt
import librosa.displayplt.figure(figsize=(20, 5))
librosa.display.waveplot(y, sr=sr)
plt.xlabel('Time (samples)')
plt.ylabel('Amplitude')
plt.show()

在这里插入图片描述

b) Amplitude to DB

X = librosa.stft(y)
Xdb = librosa.amplitude_to_db(abs(X))
plt.figure(figsize=(20, 5))
librosa.display.specshow(Xdb, sr=sr, x_axis='time', y_axis='hz')
plt.colorbar()
plt.show()

在这里插入图片描述

c) MFCC 梅尔频率倒谱系数

mfccs = librosa.feature.mfcc(y=y, sr=sr)
librosa.display.specshow(mfccs, sr=sr, x_axis='time')

在这里插入图片描述

d) Mel Spectrogram 梅尔频谱图

mel = librosa.feature.melspectrogram(y=y, sr=sr)
librosa.display.specshow(mel, sr=sr, x_axis='time')

在这里插入图片描述
以上。


http://www.ppmy.cn/news/1146.html

相关文章

第5次作业练习题(第五章:总线与接口、中断、DMA)

1. 下列选项中的英文缩写均为总线标准的是( ) D. ISA、EISA、PCI、PCI-Express P330:总线标准主要有:ISA、EISA、AGP、PCI 和 PCI-Express 2. 在系统总线的数据线上,不可能传输的是( ) C. 应答信号 P328 控制总线用于传输控制信号和时序信号…

Spring学习:二、Bean的管理

4. Bean的管理 ​ Spring的基本Bean管理包括Bean配置,Bean实例化和Bean的依赖注入。这些管理可以通过手工编码的方式把每个Bean注册到容器中,也可以通过properties文件和xml文件配置Bean和Bean之间的依赖关系。通常我们的配置方式是XML作为配置文件。 …

10年的老测试告诉你八大测试用例设计方法

一:等价类划分法 1:有效等价类: 2:无效等价类: 案例:比如一个登陆输入框,规定只能输入中文,同时长度为6-10。 通过等价类设计测试用例: 测试用例中重要的三步: 输入 操作 预计结果 如果与预期结果不符合就是bug。 有效等价类: 输入:输入长度为6的中文,输入的为…

Mysql的时间类型选定:Datetime,Timestamp,Bigint

1. 基本区别: 2. 其他特性: 1. TIMESTAMP是以utc格式存储,会自动检索当前时区对时间进行转换,而DATETIME不会。 2. 存入null时,TIMESTAMP会自动存储当前时间,而DATETIME存储null值。 3. 时间计算: DATETIME翻译为汉语即"时间戳",它是当前时间到 Unix元年(1…

速度+价格,拼多多Temu正在革新跨境电商玩法

出品 | 何玺 排版 | 叶媛 11月28日,拼多多公布的Q3财报显示,公司各业务板块均呈现出迅猛增长势头。其中,跨境电商的发展尤为引人注目。 01 利润超百亿,拼多多Q3财报亮点多 财报数据显示,拼多多第三季度在营收、成本…

LeetCode-1796. 字符串中第二大的数字【哈希表,排序,双指针】

LeetCode-1796. 字符串中第二大的数字【哈希表,排序,双指针】题目描述:解题思路一:数组排序。思路简单,但是空间复杂度高。解题思路二:优化!集合自动排序且去重。解题思路三:直接遍历…

python中利用随机数绘制曲线

使用python绘制数学函数图像很方便,在构造函数自变量取值时可以利用随机数生成模块,因本人工作需要,现将python中随机数的使用,以及二次函数图像绘制进行梳理总结 目录 1. python中的随机数产生 1.1 random模块 1.1 numpy.ran…

简单认识一下HotSpot 垃圾收集器

前言 HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 新生代垃圾收集器 Serial 垃圾收集器(单线…