在实现VAD算法之前,先给出在这里VAD算法的实现流程和算法框架。
调用关系依次是 detect_wav -> detect_frame->process_vad->energy_detect,energy_detect比较复杂,所以暂时不在这里,这只是表示出基本的计算流程和框架
int frame_size = 256 ;
int sample_rate = 8000 ;// 采样频率
int frame_step = 80;
int msec_per_frame = (int) 1000 * frame_size/sample_rate; // 一帧占据多少毫秒
int silence_filter_len = 30 ; //由语音进入静音之前的过渡区域,这是一个灰度区域
int speech_filter_len = 30 ; // 由静音进入语音前的过渡区域
int number_of_silence = 0; // 当前处理的静音长度。
int number_of_speech = 0; // 当前处理的语音长度。
int total_of_silence = 0; //状态切换之前的静音长度
int total_of_speech = 0; //状态切换之前的语音长度
int silence_count = 0; //在当前处理时,合法的数据被接受,可以正式计数
int speech_count = 0;
int frame_count = 0;
上面是申明的一些全局变量。