0

我正在尝试使用 aquila DSP LIb 计算波的 mfcc 和 dtw。但是当我执行以下代码时

 void main()
 {

     int frame_size =1024;

     Aquila::WaveFile waveIn0("a_converted.wav"); 
     Aquila::FramesCollection frameCollection0(waveIn0, frame_size);
     vector<vector<double>> dtwdt0;
     Aquila::Mfcc mfcc0(frame_size);

     for (int i=0; i<frameCollection0.count(); i++)
     {
         Aquila::Frame frame = frameCollection0.frame(i);
         vector<double> mfccValues = mfcc0.calculate(frame);
         dtwdt0.push_back(mfccValues);
     }

     Aquila::WaveFile waveIn1("a_converted.wav");
     Aquila::FramesCollection frameCollection1(waveIn1, frame_size);
     vector<vector<double>> dtwdt1;
     Aquila::Mfcc mfcc1(frame_size);

     for (int i = 0; i < frameCollection1.count(); i++)
     {
         Aquila::Frame frame = frameCollection1.frame(i);
         vector<double> mfccValues = mfcc1.calculate(frame);
         dtwdt1.push_back(mfccValues);
     }

     Aquila::Dtw dtw(Aquila::euclideanDistance,          Aquila::Dtw::PassType::Diagonals);
   double distance_1 = dtw.getDistance(dtwdt0, dtwdt1);
         cout << "Distance : " << distance_1 << endl;
  }

发生了这个异常。向量下标超出范围文件:c:\program files\microsoft visual studio 8\vc\include\vector 行:1124

可能是什么问题?

4

0 回答 0