// sherpa-onnx/csrc/speaker-embedding-extractor-impl.h // // Copyright (c) 2024 Xiaomi Corporation #ifndef SHERPA_ONNX_CSRC_SPEAKER_EMBEDDING_EXTRACTOR_IMPL_H_ #define SHERPA_ONNX_CSRC_SPEAKER_EMBEDDING_EXTRACTOR_IMPL_H_ #include #include #include #include "sherpa-onnx/csrc/speaker-embedding-extractor.h" namespace sherpa_onnx { class SpeakerEmbeddingExtractorImpl { public: virtual ~SpeakerEmbeddingExtractorImpl() = default; static std::unique_ptr Create( const SpeakerEmbeddingExtractorConfig &config); template static std::unique_ptr Create( Manager *mgr, const SpeakerEmbeddingExtractorConfig &config); virtual int32_t Dim() const = 0; virtual std::unique_ptr CreateStream() const = 0; virtual bool IsReady(OnlineStream *s) const = 0; virtual std::vector Compute(OnlineStream *s) const = 0; }; } // namespace sherpa_onnx #endif // SHERPA_ONNX_CSRC_SPEAKER_EMBEDDING_EXTRACTOR_IMPL_H_