美文网首页
DNN深度神经网络完成音乐分类

DNN深度神经网络完成音乐分类

作者: 刘小白DOER | 来源:发表于2022-02-16 21:33 被阅读0次

        前几天是实现wav文件的特征提取,今天来使用kaggle上上案例测试一番,实践基于GTZAN数据集,是用于评估音乐流派识别的机器聆听研究中最常用的公共数据集。经过实践,发现这个案例基本攘括了前段时间神经网络学习的所有知识,可以很很好的复习学习的内容,可以作为以后简单网络的开局案例。

        语音特征提取时,笔者以前只知道帧数放在一起算平均来提取一段语音的特征(均值np.mena),还可以增加特征的方差(np.var)来丰富特征,在以后笔者oneclass语音识别是值得借鉴。

    1、数据读取dateset

        基于GTZAN数据集,使用pd.read_csv读取csv文件,数据文件共1000行,60个列。特征列包含音频文件中提取的多个要素的均值和方差。包含10种类型的集合,每个流派有100个音频文件,所有文件的长度均为30秒,所有数据的数据点数在30 * 22050 = 661500附近。

    2、特征处理Feature Extraction

        使用sklearn.preprocessing的LabelEncoder() 函数完成目标类别数字编码。

    3、特征标准化Scaling the features

        使用sklearn.preprocessing的StandardScaler函数使数据形成标准正态分布。

    5、训练测试分离Dividing Training and Testing Dataset

        使用train_test_split完成测试集和训练集分离,test_size=0.1。

    6、创建DNN模型Building the model

        DNN模型包含四个隐藏层,激活函数使用relu,同时使用dropout防止过拟合。

        输出层有十个神经元,因为输出的是互斥的多分类,激活函数使用softmax。

        使用Adam优化器来训练模型,训练轮次为600,Adam优化器是一种自适应学习率算法。

        model.summary()显示模型的所有层以及参数等信息,Total params: 203,338。

    7、模型验证Model Evaluation   

        model.evaluate在测试集上验证可以得到78%的准确率。

        查看学习曲线,训练模型过拟合。

        使用分割的3秒音乐数据再次训练

        features_3_sec.csv这个文件具有相同的结构,但歌曲之前被拆分为3秒的音频文件,这样可以增加10倍于我们进入分类模型的数据量,是解决过拟合的一个方法,数据越多越好。

        再次训练发现,模型在测试集上可以达到93.99的准确率。

        

    相关文章

      网友评论

          本文标题:DNN深度神经网络完成音乐分类

          本文链接:https://www.haomeiwen.com/subject/utidlrtx.html