// sherpa-onnx/csrc/offline-recognizer-impl.h // // Copyright (c) 2023 Xiaomi Corporation #ifndef SHERPA_ONNX_CSRC_OFFLINE_RECOGNIZER_IMPL_H_ #define SHERPA_ONNX_CSRC_OFFLINE_RECOGNIZER_IMPL_H_ #include #include #include "sherpa-onnx/csrc/macros.h" #include "sherpa-onnx/csrc/offline-recognizer.h" #include "sherpa-onnx/csrc/offline-stream.h" namespace sherpa_onnx { class OfflineRecognizerImpl { public: static std::unique_ptr Create( const OfflineRecognizerConfig &config); virtual ~OfflineRecognizerImpl() = default; virtual std::unique_ptr CreateStream( const std::vector> &context_list) const { SHERPA_ONNX_LOGE("Only transducer models support contextual biasing."); exit(-1); } virtual std::unique_ptr CreateStream() const = 0; virtual void DecodeStreams(OfflineStream **ss, int32_t n) const = 0; }; } // namespace sherpa_onnx #endif // SHERPA_ONNX_CSRC_OFFLINE_RECOGNIZER_IMPL_H_