02 食物赛题数据分析介绍

1、数据集

训练集:http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/train_sample.zip

包含19种类别食物咀嚼数据,详细信息如下

测试集:http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/test_a.zip

2、原理

声音是由不同的声波叠加形成,不同的声音携带有一定的特征,就像通过人的眼耳口鼻来识别一个人。不同类别的声音也具有相同的特征,下图中是芦荟和汉堡的咀嚼声音波形图,直观可以看到明显的差异,原始wav音频信号只存在时域上的信息,没有频域信息,同一个人不同的咀嚼速度下wav语音信号都会产生峰值偏移。对计算机而言,通过直接原始wav音频信号作为对比是不合适。声谱图是能代表声音在频域和时域上的一种特征,通过对一段长语音信号,分帧、加窗,再对每一帧做傅里叶变换,之后把每一帧的结果沿另一维度堆叠,得到的图(类似于二维信号)就是声谱图。

3、代码库

本次音频信号处理使用librosa和sklearn库,两个库使用参考上一篇文章  https://www.jianshu.com/p/3d18640b3ae0

加载数据

data1, sampling_rate1 = librosa.load('./train_sample/aloe/24EJ22XBZ5.wav') data2, sampling_rate2 = librosa.load('./train_sample/burger/0WF1KDZVPZ.wav')

绘制时域包络图

plt.figure(figsize=(14, 5)) librosa.display.waveplot(data1,sr=sampling_rate1)

提取声谱图

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')

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容