ft=['babystar1.wav';'corn1.wav';'babeq1.wav'];%学習する音声ファイル名を並べておく
fnt=size(ft)(1,1);%ファイルの数
d=32;%次元数
c = 1000;%学習データに使用する音声ファイルの長さ
nt=1000;%学習データの数
Yt=zeros(d,1);%教師データ用の行列
X=zeros(fnt,1);%学習データ用の行列
for i=1:fnt%学習する音声ファイルの数だけ繰り返す
  for j=10:nt+10%各音声ファイルを切り出して変換
    Y=log10(abs(fft(wavread(ft(i,:),[j*c+1 (j+1)*c]),d*2)));
    Yt=[Yt,Y([1:d],1)];
    X=[X eye(fnt)(:,i)];
   end
end
Yt = Yt(:,[2:nt*fnt+1]);
X = X(:,[2:nt*fnt+1]);

Rx2 = min_max(Yt);%学習データの最大値と最小値
S   = [d fnt];%学習パラメータの設定
NNet = newff( Rx2, S );
NNet.trainParam.epochs = 500;
VV.P = Yt;
VV.T = X;
net = train( NNet, Yt, X, [], [], VV );%学習
res = sim( net, Yt);%学習結果の検証
a=0;
for i=1:fnt
  for j=1+nt*(i-1):nt*i;
    [x,ix] = max(res(:,j));
    if(i==ix)%教師データと同じ出力ニューロンの値が最も大きくなっているか
      a++;
    end
  end
end
a/(nt*fnt)%正答率の表示
