/** * Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights Reserved. * MIT License (https://opensource.org/licenses/MIT) */ #pragma once namespace funasr { class CTTransformerOnline : public PuncModel { /** * Author: Speech Lab of DAMO Academy, Alibaba Group * CT-Transformer: Controllable time-delay transformer for real-time punctuation prediction and disfluency detection * https://arxiv.org/pdf/2003.01309.pdf */ private: CTokenizer m_tokenizer; vector m_strInputNames, m_strOutputNames; vector m_szInputNames; vector m_szOutputNames; std::shared_ptr m_session; Ort::Env env_; Ort::SessionOptions session_options; public: CTTransformerOnline(); void InitPunc(const std::string &punc_model, const std::string &punc_config, int thread_num); ~CTTransformerOnline(); vector Infer(vector input_data, int nCacheSize); string AddPunc(const char* sz_input, vector &arr_cache, std::string language="zh-cn"); void Transport(vector& In, int nRows, int nCols); void VadMask(int size, int vad_pos,vector& Result); void Triangle(int text_length, vector& Result); }; } // namespace funasr