| | |
| | | /** |
| | | * Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights Reserved. |
| | | * MIT License (https://opensource.org/licenses/MIT) |
| | | * Contributed by zhuzizyf(China Telecom). |
| | | */ |
| | | |
| | | #pragma once |
| | | |
| | | #include <utility> |
| | | #include <vector> |
| | |
| | | #include <numeric> |
| | | #include <cassert> |
| | | |
| | | |
| | | namespace funasr { |
| | | enum class VadStateMachine { |
| | | kVadInStateStartPointNotDetected = 1, |
| | | kVadInStateInSpeechSegment = 2, |
| | |
| | | max_end_sil_frame_cnt_thresh = max_end_sil - vad_opts.speech_to_sil_time_thres; |
| | | this->waveform = waveform; |
| | | this->vad_opts.max_single_segment_time = max_single_segment_time; |
| | | this->vad_opts.speech_noise_thres = speech_noise_thres; |
| | | this->speech_noise_thres = speech_noise_thres; |
| | | this->vad_opts.sample_rate = sample_rate; |
| | | |
| | | ComputeDecibel(); |
| | |
| | | } else { |
| | | data_buf_all_size += waveform.size(); |
| | | } |
| | | for (int offset = 0; offset < waveform.size() - frame_sample_length + 1; offset += frame_shift_length) { |
| | | for (int offset = 0; offset + frame_sample_length -1 < waveform.size(); offset += frame_shift_length) { |
| | | float sum = 0.0; |
| | | for (int i = 0; i < frame_sample_length; i++) { |
| | | sum += waveform[offset + i] * waveform[offset + i]; |
| | |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | } // namespace funasr |