aihot  2017-04-27 08:03:28  OpenCV |   查看评论   


       语音中浊音段的短时平均能量远远大于清音段的短时平均能量。因此,短时平均能量的计算给出了区分清音段与浊音段的依据,即En(浊)>En(清)。

语音信号处理之(二)基音周期估计(Pitch Detection)

      计算每一帧的过程中,会显示在原来波形中的位置,并且实时显示该帧得到的基音周期。另外还会在另一个窗口实时显示该帧的原始波形。

语音信号处理之(二)基音周期估计(Pitch Detection)

      该帧的原始波形图(以下为不同时间的两帧,会动态变化):

语音信号处理之(二)基音周期估计(Pitch Detection)

       下面左边的图是计算该语音的所有帧对应的基音周期的点,由图可以看出存在不少的野点。因为,需要对此进行进一步的处理,即去除野点。这里通过中值滤波来除去野点,滤波结果见右图。

语音信号处理之(二)基音周期估计(Pitch Detection)

C++如下:(每按一次空格进入下一个步骤)

  1. // Description : Pitch detection 
  2.   
  3. #include <iostream>  
  4. #include <fstream>  
  5. #include "opencv2/opencv.hpp"  
  6. #include "ReadWriteWav.h"  
  7. #include <string>  
  8.   
  9. using namespace std;  
  10. using namespace cv;  
  11.   
  12. #define MAXLENGTH 1000  
  13.   
  14. void wav2image(Mat &img, vector<short> wavData, int wav_start, int width, int max_amplitude)  
  15. {  
  16.      short max(0), min(0);  
  17.      for (int i = 0; i < wavData.size(); i++)  
  18.      {  
  19.           if (wavData[i] > max)  
  20.                 max = wavData[i];  
  21.           if (wavData[i] < min)  
  22.                 min = wavData[i];  
  23.      }  
 

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

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