aihot  2017-04-27 08:03:28  OpenCV |   查看评论   
  
  •   
  •     /************* 读取并显示输入波部分启动 ***************/  
  •     int sampleRate;  
  •     int dataLength = wav2allsample(wavFile, data, sampleRate);  
  •     if (!dataLength)  
  •     {  
  •         cout <<"Reading wav file error!"<<endl;  
  •         return -1;  
  •     }  
  •     Mat originalWave;  
  •     wav2image(originalWave, data, 0, dataLength, 400);  
  •     line(originalWave, Point(0, originalWave.rows * 0.5), Point(originalWave.cols, originalWave.rows * 0.5), Scalar(0, 0, 255), 2);  
  •     imshow("originalWave", originalWave);  
  •   
  •     // 写入数据
  •     writeFile<<"Filename: "<<wavFile<<endl<<"SampleRate: "<<sampleRate<<"Hz"<<endl<<"dataLength: "<<dataLength<<endl;  
  •   
  •     cout<<"Press space key to continue"<<endl;  
  •     while (waitKey(30) != ' ');  
  •     /************* 读取并显示输入波段结束 ***************/  
  •   
  •   
  •     /******** 计算能量来分离声音和声音部分开始*********/  
  •     int nodeCount = 0;  
  •   
  •     // 总和必须是双重类型
  •     vector<double> energyTmp;  
  •     double maxEnergy(0);  
  •     while(nodeCount < (dataLength - nodesPerFrame))  
  •     {  
  •         double sum(0);  
  •         for (int i = nodeCount; i < (nodeCount + nodesPerFrame); i++)  
  •         {  
  •             sum += (double)data[i] * data[i];  
  •         }  
  •         if (sum > maxEnergy)  
  •         {  
  •             maxEnergy = sum;  
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自语音信号处理之(二)基音周期估计(Pitch Detection)

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]