基本操作
使用librosa读取音频、可视化音频、绘制音频的声谱图
代码如下
import librosa
import matplotlib.pyplot as plt
import librosa.display
# 1.加载音频文件
audio_path = '/audio1.wav'
x, sr = librosa.load(audio_path)
print('数据x类型和采样率sr类型', type(x), type(sr))
print('数据x尺寸和采样率', x.shape, sr)
# 2.可视化音频
plt.figure(figsize=(14,5))
librosa.display.waveplot(x, sr=sr)
plt.savefig('波形.jpg')
# 3.声谱图
X = librosa.stft(x)
Xdb = librosa.amplitude_to_db(abs(X))
plt.figure(figsize=(14,5))
librosa.display.specshow(Xdb,sr=sr,x_axis='time',y_axis='hz')
plt.colorbar()
plt.savefig('声谱图.jpg')
# 4.频率轴转换为对数轴
X = librosa.stft(x)
Xdb = librosa.amplitude_to_db(abs(X))
plt.figure(figsize=(14,5))
librosa.display.specshow(Xdb, sr=sr, x_axis='time', y_axis='log')
plt.colorbar()
plt.savefig('声谱图-对数轴.jpg')
# 5.音频保存
# librosa.output.write_wav('/source/d3/ContentGeneration/result/example.wav', x, sr)
结果如下
波形
声谱图
声谱图-对数轴