声音的产生

声音以波的形式产生,我们从波的视角来理解声音,仅凭频率,幅度,相位,便构成了波及其叠加的所有,声音的不同音高、音量、音色也由这些基本“粒子”组合而来。
世界上所有的声波都可以“降解”到基本波以上,这也是傅里叶变换的基本思想。

赛题数据集介绍

声音分类在很多场景中都有大模型的应用,例如对于音乐的分类可以应用与音乐的检索和推荐中,本赛题的背景是食物的声音的分类。
本次比赛的数据集来自Kaggle的“Eating Sound Collection”(可商用), 数据集中包含20种不同食物的咀嚼声音,赛题任务是给这些声音数据建模,准确分类。

下载天池数据集并解压

!wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/train_sample.zip
!unzip -qq train_sample.zip
!\rm train_sample.zip!wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/test_a.zip
!unzip -qq test_a.zip
!\rm test_a.zip

上述代码需要在linux系统下运行

数据探索

加载库

import pandas as pd
import numpy as nppd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as snsfrom sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCVfrom sklearn.preprocessing import MinMaxScaler

加载音频处理库

import os
import matplotlib.pyplot as plt
import librosa
import librosa.display
import glob
import IPython.display as ipd
我们将主要使用两个库进行音频采集和回放: 1)Librosa:它通常用于分析音频信号,但更倾向于音乐,它包括用于构建MIR(音乐信息检索)系统的nuts 和 bolts。示例和教程可以参考:(https://librosa.github.io/librosa/) 2)IPython.display.Audio: 该模块能使得音频直接在jupyter笔记本中播放。这两个库我们下面都会用到,可用以下命令进行安装:pip install 【包名,如“librosa”】 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

查看音频数据

voice_path = './train_sample'def look_data():# 音频类别文件夹个数print(f'音频文件夹的个数: {len(os.listdir(voice_path))}')voice_total = 0single_label = {}for ind, label_name in enumerate(os.listdir(voice_path)):file_path = voice_path + '/' + label_namesingle_num = len(os.listdir(file_path))single_label[label_name] = single_numvoice_total += single_numprint(f'音频文件总量: {voice_total}')print(f'{"序号":<5}{"类别":<15}{"数量":<10}{"占比"}')for ind, (key, value) in enumerate(single_label.items()):print(f'{ind:<5}{key:<20}{value:<10}{value / voice_total:.2%}')

查看音频特征

ipd.Audio('音频文件的路径') #播放文件
librosa.load('路径')#返回数据和采样率
plt.figure(figsize = (14,5))
librosa.display.waveplot(data,sr = sample_rate)#绘制音频文件的波形幅度包络

声谱图是声音或其他信号的频率随时间变化时的频谱(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')

零基础入门语音识别之赛题介绍相关推荐

  1. 【组队学习】【24期】零基础入门语音识别(食物声音识别)

    零基础入门语音识别(食物声音识别) 开源内容: https://github.com/datawhalechina/team-learning-nlp/tree/master/FoodVoiceRec ...

  2. 阿里云天池 学习赛汇总(教学赛,零基础入门,长期赛)

    [教学赛]数据分析达人赛1:用户情感可视化分析 [教学赛]数据分析达人赛2:产品关联分析 [教学赛]数据分析达人赛3:汽车产品聚类分析 零基础入门语音识别-食物声音识别 零基础入门数据挖掘-心跳信号分 ...

  3. 零基础入门语音识别-食物声音识别[Task 1]

    Task1 食物声音识别之Baseline学习 作为零基础入门语音识别的新人赛,本次任务不涉及复杂的声音模型.语言模型,希望大家通过两种baseline的学习能体验到语音识别的乐趣. 任务说明:我们提 ...

  4. 零基础入门语音识别-食物声音识别[Task 3]

    Task3 食物声音识别之音频数据特征提取 Task1 食物声音识别之Baseline学习 Task2 食物声音识别之赛题数据介绍与分析 1 特征提取背景 在Task2中,我们已经了解了我们需要识别的 ...

  5. 天池学习赛 -【零基础入门语音识别-食物声音识别】Task1 食物声音识别-Baseline【代码详细手写解释】

    文章目录 一.Task1 食物声音识别-Baseline 二.对应解析 三.参考链接 一.Task1 食物声音识别-Baseline 天池对应代码链接 二.对应解析 三.参考链接 tqdm的解释 深度 ...

  6. python 小甲鱼 好不好_小甲鱼零基础入门学习python课后题及答案

    [实例简介] 这是小甲鱼python教学视频的课后习题以及答案的整理文档,大家可以学到什么: 0.Python3的所有常用语法 1.面向对象编程思维 2.运用模块进行编程 3.游戏编程 4.计算机仿真 ...

  7. Python零基础入门学习教程_001.python介绍_特性_版本问题_应用问题

    目录 ·简介 ·特点 1.可读性强 2.简洁,简单 3.面向对象 4.免费和开源 5.可移植性和跨平台 6.丰富的库(丰富的标准库,多种多样的扩展库) 7.可扩展性 ·应用范围 1.科学计算 2.人工 ...

  8. 记录零基础入门python学习做题的第一天(自己做的哈答案对不对我就不晓得了)

    1.Python 是什么类型的语言?     面向对象语言 2.IDLE 是什么?     集成开发环境 3.print() 的作用是什么?     打印 4.Python 中表示乘法的符号是什么? ...

  9. 零基础数据挖掘入门系列(一) - 赛题理解

    思维导图:零基础入门数据挖掘的学习路径 1. 写在前面 零基础入门数据挖掘系列是记录自己在Datawhale举办的数据挖掘专题学习中的所学和所想, 该系列笔记使用理论结合实践的方式,整理数据挖掘相关知 ...

最新文章

  1. mybatis 使用resultMap实现数据库的操作
  2. PHP学习笔记-PHP语言基础3
  3. 洛谷 - P2764 最小路径覆盖问题(最大流+二分图最小路径覆盖+路径打印)
  4. 不一样的图片加载方式
  5. java多线程详细讲解_Java多线程例子讲解
  6. Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园
  7. 查看mysql数据库的死锁日志_【MySQL】mysql死锁以及死锁日志分析
  8. python基础之五大标准数据类型
  9. GitHub网页版开始教程
  10. 【主动轮廓模型(二)】《GVF Snake》算法原理与OpenCV实现
  11. go语言字符串换行_Go语言字符串
  12. 如何下载城通网盘的东西?
  13. 三个等于符号 和两个等于符号的区别
  14. 这是一个基于Threejs的商品VR展示系统的 VR模型展示Demo
  15. 诊断公司的CRO业务简述
  16. ZStack Cube:超融合3.0,场景化的一体机
  17. RAM和ROM和Flash ROM的区别
  18. matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(二)演示外观参数、返回值
  19. 2022-2028全球及中国信号装置行业研究及十四五规划分析报告
  20. 2020-2021 ACM-ICPC, Asia Nanjing Regional Contes F-Fireworks

热门文章

  1. 选择SRM供应商管理系统,切实企业数字化转型落地
  2. Laravel项目IP黑名单,IP白名单,IP访问频率控制中间件
  3. “C语言的核心是指针,灵魂是算法“那么指针为什么被誉为C语言灵魂呢?
  4. PB如何新增PBL(转)
  5. 查看电脑最近运行过的程序记录
  6. RPG游戏攻防公式设计探讨
  7. 关于VC++6.0 绿色版不能用的修改意见
  8. 摄像头连接nas_【有图】教大家如何使用巴法络NAS TS5000系列与海康摄像头连接-蜂鸟网...
  9. [转]mailto用法
  10. 双十一注册电子信箱、163电子邮箱会员攻略