声音以波的形式产生,我们从波的视角来理解声音,仅凭频率,幅度,相位,便构成了波及其叠加的所有,声音的不同音高、音量、音色也由这些基本“粒子”组合而来。
世界上所有的声波都可以“降解”到基本波以上,这也是傅里叶变换的基本思想。
声音分类在很多场景中都有大模型的应用,例如对于音乐的分类可以应用与音乐的检索和推荐中,本赛题的背景是食物的声音的分类。
本次比赛的数据集来自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 np
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCV
from 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 = 0
single_label = {}
for ind, label_name in enumerate(os.listdir(voice_path)):
file_path = voice_path + '/' + label_name
single_num = len(os.listdir(file_path))
single_label[label_name] = single_num
voice_total += single_num
print(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')
本文实例讲述了jsp中page指令用法。分享给大家供大家参考。具体如下: 一、JSP ...
一、简介 本设计为硬币图像识别统计装置通过数码相机获取平铺无重叠堆积的硬币的...
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: u 红桃按照从...
我们知道微软将会在今年给Windows10更换全新设计的UI,让Windows10的界面更加整...
git工作区,暂存区,版本库之间的关系: 我们建立的项目文件夹就是工作区,在初...
前言 关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。 如果你遇到这...
从功能测试、性能测试、界面测试、安全性测试、易用性、兼容性测试、震动测试七...
一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控...
大家好,今天我们来简单的聊一聊缓存问题。什么是缓存呢?它在系统设计中是在一个...
今日国内领先的智能数据服务运营商觉非科技完成近亿元A轮融资。本轮融资由和高资...