声音分类在很多场景中都有大模型的应用,例如对音乐的分类可以应用于音乐检索和音乐推荐中; 对人声的分类可以应用在身份识别、智能家居中。本比赛的背景是食物的声音的分类,是一个充满趣味性的任务。
本次比赛的数据集来自Kaggle的“Eating Sound Collection”(可商用), 数据集中包含20种不同食物的咀嚼声音,赛题任务是给这些声音数据建模,准确分类。
Python有一些很棒的音频处理库,比如Librosa和PyAudio,还有一些内置的模块用于处理音频的基本处理。
我们将主要使用两个库进行音频采集和回放:
1)Librosa:它通常用于分析音频信号,但更倾向于音乐,它包括用于构建MIR(音乐信息检索)系统的nuts 和 bolts。示例和教程可以参考:https://librosa.github.io/librosa/
2)IPython.display.Audio: 该模块能使得音频直接在jupyter笔记本中播放。
芦荟的波形幅度包络
plt.figure(figsize=(14, 5))
librosa.display.waveplot(data1,sr=sampling_rate1)
声谱图(spectrogram)是声音或其他信号的频率随时间变化时的频谱(spectrum)的一种直观表示。声谱图有时也称sonographs,voiceprints,或者voicegrams。当数据以三维图形表示时,可称其为瀑布图(waterfalls)。在二维数组中,第一个轴是频率,第二个轴是时间。我们使用librosa.display.specshow来显示声谱图
芦荟的声谱图
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’)