| | |
| | | //#include "glog/logging.h" |
| | | |
| | | |
| | | void FsmnVad::init_vad(const std::string &vad_model, const std::string &vad_cmvn, int vad_sample_rate, int vad_silence_duration, int vad_max_len, |
| | | void FsmnVad::InitVad(const std::string &vad_model, const std::string &vad_cmvn, int vad_sample_rate, int vad_silence_duration, int vad_max_len, |
| | | float vad_speech_noise_thres) { |
| | | session_options_.SetIntraOpNumThreads(1); |
| | | session_options_.SetGraphOptimizationLevel(ORT_ENABLE_ALL); |
| | |
| | | this->vad_max_len_=vad_max_len; |
| | | this->vad_speech_noise_thres_=vad_speech_noise_thres; |
| | | |
| | | read_model(vad_model); |
| | | load_cmvn(vad_cmvn.c_str()); |
| | | init_cache(); |
| | | ReadModel(vad_model); |
| | | LoadCmvn(vad_cmvn.c_str()); |
| | | InitCache(); |
| | | |
| | | fbank_opts.frame_opts.dither = 0; |
| | | fbank_opts.mel_opts.num_bins = 80; |
| | |
| | | |
| | | } |
| | | |
| | | void FsmnVad::read_model(const std::string &vad_model) { |
| | | void FsmnVad::ReadModel(const std::string &vad_model) { |
| | | try { |
| | | vad_session_ = std::make_shared<Ort::Session>( |
| | | env_, vad_model.c_str(), session_options_); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | void FsmnVad::FbankKaldi(float sample_rate, std::vector<std::vector<float>> &vad_feats, |
| | | const std::vector<float> &waves) { |
| | | knf::OnlineFbank fbank(fbank_opts); |
| | |
| | | } |
| | | } |
| | | |
| | | void FsmnVad::load_cmvn(const char *filename) |
| | | void FsmnVad::LoadCmvn(const char *filename) |
| | | { |
| | | using namespace std; |
| | | ifstream cmvn_stream(filename); |
| | |
| | | } |
| | | |
| | | std::vector<std::vector<int>> |
| | | FsmnVad::infer(const std::vector<float> &waves) { |
| | | FsmnVad::Infer(const std::vector<float> &waves) { |
| | | std::vector<std::vector<float>> vad_feats; |
| | | std::vector<std::vector<float>> vad_probs; |
| | | FbankKaldi(vad_sample_rate_, vad_feats, waves); |
| | |
| | | |
| | | } |
| | | |
| | | void FsmnVad::init_cache(){ |
| | | void FsmnVad::InitCache(){ |
| | | std::vector<float> cache_feats(128 * 19 * 1, 0); |
| | | for (int i=0;i<4;i++){ |
| | | in_cache_.emplace_back(cache_feats); |
| | |
| | | |
| | | void FsmnVad::Reset(){ |
| | | in_cache_.clear(); |
| | | init_cache(); |
| | | InitCache(); |
| | | }; |
| | | |
| | | void FsmnVad::test() { |
| | | |
| | | void FsmnVad::Test() { |
| | | } |
| | | |
| | | FsmnVad::FsmnVad():env_(ORT_LOGGING_LEVEL_ERROR, ""),session_options_{} { |
| | | |
| | | } |