资源简介

语音特征识别是模式识别的一个重要研究内容,对本案例,提取了民歌,古筝、摇滚和流行四类不同音乐的24维特征向量各500组,希望用BP网络实现对着四类音乐的有效分类。1) 比较采用2-3种不同的隐含层神经元个数对分类精度的影响;2) 采用不同训练算法,比较traingd,traingdm,traingdx以及trainlm的效果(精度和收敛速度)。包括源程序和神经网络结构示意图,计算结果及分析。

资源截图

代码片段和文件信息

% 2018年11月22日 by zhangyaokun
% BP identification
clear all;
close all;
%% 语音数据预处理方法:先随机打乱数据,再对数据进行归一化,然后可以直接顺序选取训练数据和测试数据
% load data1.mat; load data2.mat; load data3.mat; load data4.mat; %加载原数据
% Ori_Data1=[c1;c2;c3;c4];  %全部的原始数据 2000*25
% rowrank = randperm(size(Ori_Data1 1)); % 随机打乱的数字,从1~行数打乱
% Ori_Data = Ori_Data1(rowrank :);%%按照rowrank打乱矩阵的行数 2000*25

% %输入数据处理:归一化
% Ori_Data_X = Ori_Data(:2:25);  %取出原始数据中的特征向量 2000*24
% FlattenedData = Ori_Data_X(:)‘; % 展开矩阵为一列,然后转置为一行。
% MappedFlattened = mapminmax(FlattenedData); % 对整个矩阵的数据进行归一化,到[-11]之间
% MappedData = reshape(MappedFlattened size(Ori_Data_X)); % 还原为原始矩阵形式。此处不需转置回去,因为reshape恰好是按列重新排序  2000*24
% X=MappedData(1:1500:)‘; Xc=MappedData(1501:2000:)‘; %前1500个数据全部作为训练数据,后500个数据作为测试数据

% %输出数据处理:%定义输出向量 分别为[1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]
% To= Ori_Data(:1)‘;%取出第一列元素为输出
% Tt=[1 0 0 0];                                                          
% for i=1:1:2000
%     switch To(i)
%         case 1
%             Tt(i:)=[1 0 0 0];
%         case 2
%             Tt(i:)=[0 1 0 0];  
%         case 3
%             Tt(i:)=[0 0 1 0];
%         case 4
%             Tt(i:)=[0 0 0 1];    
%     end
% end
% T=Tt(1:1500:)‘;   Tc=Tt(1501:2000:)‘;
% save(‘traindata_X‘‘X‘); save(‘traindata_Xc‘‘Xc‘); %保存训练数据
% save(‘traindata_To‘‘To‘);save(‘traindata_T‘‘T‘); save(‘traindata_Tc‘‘Tc‘);  %保存测试数据  

% clearvars -except X T Xc Tc To;  %清除其余变量,仅保留训练数据和测试数据
%上面的程序只需要运行一遍
 load traindata_X; load traindata_T; load traindata_Xc; load traindata_Tc; load traindata_To;%加载训练数据和测试数据
 %% BP网络结构及参数初始化
 % BP网络结构为 24-10-4
 Hid_num = 10;
 Func=0;
 
[RQ]= size(X);
[S~]= size(T);
[ScQc]= size(Tc);
%% 使用不同的隐含层数目训练网络  
% for k=5:5:40 %不同的隐含层数目
%     Hid_num = k;
%     
%     net=newff(XTHid_num);  %建立BP神经网络 {‘logsig‘‘purelin‘}‘trainlm‘
%     switch Func  %选择训练函数
%         case 1
%              net. trainFcn=‘traingd‘;
%         case 2
%              net. trainFcn=‘traingdm‘;
%         case 3
%              net. trainFcn=‘traingdx‘;
%         otherwise
%              net. trainFcn=‘trainlm‘;
%     end 

%     net.trainParam.epochs=2000;  %设置训练次数
%     net.trainParam.max_fail = 50;
%     net.trainParam.goal=0.005;  %设置mean square error, 均方误差
%     net.trainParam.lr=0.03; %设置学习速率

%     net.iw{11}=rands(Hid_numR);  %隐含层神经元的初始权值
%     net.lw{21}=rands(SHid_num);  %输出层神经元的初始权值
%     net.b{1}=rands(Hid_num1);  %隐含层神经元的初始偏置
%     net.b{2}=rands(S1);  %输出层神经元的初始偏置
%     [nettr_gd]=train(netXT);  %训练网络

%     A=sim(netX);  %测试网络
%     E=T-A;  %测试误差
%     error = sumsqr(E)/(S*Q)  %测试结果的的MSE
%     A1=sim(netXc);  %测试网络
%     E1=Tc-A1;  %测试误差
%     error_c1 = sumsqr(E1)/(Sc*Qc)  %测试结果的的MSE
%     for i=1:500      
%         Res(i)=find(A1(:i)==max(A1(:i))); %以能够识别出最大值的趋势,作为正确识别的标准
%     end
%     E2=To(:1501:2000)-Res;
%     I=find(E2(:)~=0);  %识别错误的数据
%     length(I)     %识别错误的个数
%     
%     pause
% en

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-25 02:29  BP_Music_recog\
     文件       22690  2018-11-28 12:08  BP_Music_recog\20_elm.JPG
     文件       20147  2018-11-28 12:10  BP_Music_recog\20_gd.JPG
     文件       20128  2018-11-28 12:11  BP_Music_recog\20_gdm.JPG
     文件       19530  2018-11-28 12:12  BP_Music_recog\20_gdx.JPG
     文件        4994  2018-11-28 12:33  BP_Music_recog\BP_Music_recog.m
     文件       93015  2009-08-29 16:54  BP_Music_recog\data1.mat
     文件       92845  2009-08-29 16:54  BP_Music_recog\data2.mat
     文件       92937  2009-08-29 16:54  BP_Music_recog\data3.mat
     文件       93438  2009-08-29 16:54  BP_Music_recog\data4.mat
     文件       22569  2018-11-28 11:48  BP_Music_recog\elm_10.JPG
     文件       22082  2018-11-28 11:49  BP_Music_recog\elm_15.JPG
     文件       22581  2018-11-28 11:51  BP_Music_recog\elm_20.JPG
     文件       22720  2018-11-28 11:52  BP_Music_recog\elm_25.JPG
     文件       22978  2018-11-28 12:01  BP_Music_recog\elm_30.JPG
     文件       22507  2018-11-28 11:55  BP_Music_recog\elm_35.JPG
     文件       22085  2018-11-27 16:59  BP_Music_recog\elm_40.JPG
     文件       22867  2018-11-28 11:47  BP_Music_recog\elm_5.JPG
     文件       25454  2018-11-27 17:02  BP_Music_recog\error.jpg
     文件         912  2018-11-28 11:31  BP_Music_recog\traindata_T.mat
     文件         435  2018-11-28 11:31  BP_Music_recog\traindata_Tc.mat
     文件         854  2018-11-28 11:31  BP_Music_recog\traindata_To.mat
     文件      273878  2018-11-28 11:31  BP_Music_recog\traindata_X.mat
     文件       91390  2018-11-28 11:31  BP_Music_recog\traindata_Xc.mat
     文件        2458  2018-11-28 10:10  BP_Music_recog\work3.m
     文件      191558  2019-04-25 02:28  语音特征识别-神经网络应用.docx

评论

共有 条评论