由开源学习组织Datawhale提供
https://github.com/datawhalechina/team-learning
音频特征
提示:在Task2打卡的中,主要是对声音有个初步认识。运动的库主要是librosa
,在.py
文件中可以用playsound
对声音进行播放,在jupyter notebook
选择IPython.display.ipd
去播放声音。音频信号是模拟量,输入到计算机中需要将模拟量转化为数字量,涉及到A/D转换。通过librosa
库中的librosa.load()
函数对.wav
的音频文件进行读取。该函数的默认采样率为22050。也可以认为的指定采样率,采样率设置越高,采样点越多。librosa.load()
函数会返回两个参数。第一个返回值是音频信号,它是一个一维向量,元素值为音频信号震动幅值。第二个返回值是采样率,是一个标量。通常将这两个返回值利用librosa
库中其他API进行处理,获得特征。
读取音频数据: x, sr = librosa.load('test.wav', sr = 22050)
包络图
所谓包络图,其实是对提取的采样点x
的可视化展示。
查看方法1:librosa
自带的包络图展示接口:
plt.figure(figsize=(14, 5))
librosa.display.waveplot(x1,sr=sr1)
查看方法2:用matplotlib
查看:
plt.figure(figsize=(14, 5))
plt.plot(x1)
结果(以查看方法2为例):
声谱图
声谱图展示的是获得的音频的频率变化信息。
查看方式:
plt.figure(figsize=(20, 10))
D = librosa.amplitude_to_db(np.abs(librosa.stft(data1)), ref=np.max)
plt.subplot(4, 2, 1)
librosa.display.specshow(D, y_axis='linear')
plt.colorbar(format='%+2.0f dB')
plt.title('Linear-frequency power spectrogram of aloe')