2020CCFBDCI通用音频分类CNN方案(0.90+方案)

本文介绍了通用音频分类的深度学习方法,特别是使用CNN进行音频特征提取和多分类。通过librosa库处理音频数据,构建简单的CNN模型,并探讨了可能的改进方向,包括特征增强和网络结构调整。
摘要由CSDN通过智能技术生成


博主继续入门了音频分类问题,根据上一个baseline中的改进方向,写了一个基于CNN的baseline,线上分数0.90左右,随便调一下能到0.93

赛题介绍

赛题名:通用音频分类

赛道:训练赛道

背景:随着移动终端的广泛应用以及数据量的不断积累,海量多媒体信息的处理需求日益凸显。作为多媒体信息的重要载体,音频信息处理应用广泛且多样,如自动语音识别、音乐风格识别等。有些声音是独特的,可以立即识别,例如婴儿的笑声或吉他的弹拨声。有些音频背景噪声复杂,很难区分。如果闭上眼睛,您能说出电锯和搅拌机是下面哪种声音?音频分类是音频信息处理领域的一个基本问题,从本质上说,音频分类的性能依赖于音频中的特征提取。传统特征提取算法使用音频特征的统计信息作为分类的依据,使用到的音频特征包括线性预测编码、短时平均能量等。近年来,基于深度学习的音频分类取得了较大进展。基于端到端的特征提取方式,深度学习可以避免繁琐的人工特征设计。音频的多样化给“机器听觉”带来了巨大挑战。如何对音频信息进行有效的分类,从繁芜丛杂的数据集中将具有某种特定形态的音频归属到同一个集合,对于学术研究及工业应用具有重要意义。

任务:基于上述实际需求以及深度学习的进展,本次训练赛旨在构建通用的基于深度学习的自动音频分类系统。通过本赛题建立准确的音频分类模型,希望大家探索更为鲁棒的音频表述方法,以及转移学习、自监督学习等方法在音频分类中的应用。

比赛链接https://www.datafountain.cn/competitions/486

数据简介

数据整理自网上公开数据集(已脱敏),数据集涵盖5类不同音频,该类数据集广泛应用于音频分类的业务场景。

文件类别 文件名 文件内容
训练集音频文件夹 train 训练数据集音频文件
测试集音频文件夹 test 测试数据集音频文件
字段说明 字段说明.xlsx 训练集/测试集字段的具体说明
提交样例 submission.csv 仅有两个字段file_name\label

对数据的进一步说明:train.zip中包含三十个文件夹,每个文件夹的名称是里面所有音频文件的标签,音频文件的格式是wav格式,时间长度都小于等于1s。test.zip中包含所有测试集的音频文件,一共有6835个。

import的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
from tqdm import tqdm
from sklearn.preprocessing import LabelEncoder
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.preprocessing import MinMaxScaler
import lightgbm as lgb
import warnings
from sklearn.model_selection import StratifiedKFold, KFold
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score, log_loss
import time
import os
warnings.filterwarnings('ignore')
import wavio
import librosa
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten,LSTM,TimeDistributed,Bidirectional
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import to_categorical
from keras.callbacks import LearningRateScheduler
import sklearn

音频文件读取

和之前的baseline一样,音频文件的读取我使用的是os库和librosa库,按顺序读取三十个文件夹,对于每一个文件夹,先读取里面所有的文件名,然后依次用librosa库读取每一个wav文件,具体代码见特征构造章节。

特征构造

baseline选取的特征及其维数如下表所示:

特征名称 特征说明 特征维数
过零率 该特征在语音识别和音乐信息检索中都被大量的使用,对于高冲击声,它通常具有更高的值 (1,44)
光谱质心 它指示声音的“质心”位于何处,并计算为声音中存在的频率的加权平均值 (1,44)
梅尔频率倒谱系数 它是一小组特征(通常10-40),其简明地描述了频谱包络的整体形状 (40,44)
色度频谱 它是音乐音频的一种强大表示,其中整个频谱被投影到12个区间,代表音乐八度音的12个不同的半音(或色度) (12,44)
谱对比度 详细内容参考文献1 (7,44)
频谱带宽 详细内容参考文献 2 (1,44)
tonnetz 详细内容参考文献3 (6,44)

和之前的baseline不同,我们没有对特征取平均值,因为我们这次使用的是CNN,可以通过卷积提取特征。
所有的特征均可以用librosa自带的函数来计算,具体的音频文件读取和特征提取代码如下,注意路径要根据自己的情况进行修改
三十个文件夹名称

filename_list = ['bed', 'bird', 'cat', 'dog', 'down', 'eight', 'five', 'four', 'go', 'happy', 'house', 'left', 'marvin', 'nine', 'no', 'off', 'on', 'one', 'right', 'seven', 'sheila', 'six', 'stop', 'three', 'tree', 'two', 'up', 'wow', 'yes', 'zero']

训练集

features,labels = np.empty((0,40,44)),np.empty(0)
for i in range(30):
    filePath = "D:\\ccf2020\\%s" % filename_list
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值