Python 音频信号处理库 librosa–入门
1,音频处理
filename = librosa.example('nutcracker')
- 获取librosa随附的音频示例文件的路径。在此步骤之后, filename将是一个字符串变量,其中包含示例音频文件的路径。
y, sr = librosa.load(filename)
- librosa.load()
- 以时间序列的 y形式加载和解码音频,以一维NumPy浮点数组表示y。
- 可变SR包含采样速率的 y,即,每秒音频的样本的数目。默认情况下,所有音频在加载时混合为单声道并重新采样为22050 Hz。可以通过向提供其他参数来覆盖此行为,
- 从文件加载音频数据,貌似没有格式限制,而且可以通过参数设置是否保留双声道,采样率,重采样类型。
import matplotlib.pyplot as plt
import librosa.display
plt.figure(figsize=(14, 5))
librosa.display.waveplot(y,sr=sr)
- 查看波形幅度包络图
import numpy as np
plt.figure(figsize=(20, 10))
D = librosa.amplitude_to_db(np.abs(librosa.stft(y)), ref=np.max)
plt.subplot(4, 2, 1)
librosa.display.specshow(D, y_axis='linear')
plt.colorbar(format='%+2.0f dB')
-
查看声谱图
- 声谱图(spectrogram)是声音或其他信号的频率随时间变化时的频谱(spectrum)的一种直观表示。声谱图有时也称sonographs,voiceprints,或者voicegrams。当数据以三维图形表示时,可称其为瀑布图(waterfalls)。在二维数组中,第一个轴是频率,第二个轴是时间。我们使用librosa.display.specshow来显示声谱图。
参考资料:
librosa教程https://librosa.org/doc/latest/tutorial.html