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

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

1. Load Audio Data 导入音频

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

import librosa

audio_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.display
 
plt.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')

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值