#pragma once #include "engine/models/sherpa_kws/assets.h" #include "engine/framework/core/execution_context.h" #include #include namespace engine::models::sherpa_kws { struct SherpaEncoderChunk { std::vector values; int64_t frames = 0; int64_t channels = 0; }; class SherpaZipformerRuntime { public: SherpaZipformerRuntime( std::shared_ptr assets, core::ExecutionContext & execution_context); ~SherpaZipformerRuntime(); SherpaZipformerRuntime(const SherpaZipformerRuntime &) = delete; SherpaZipformerRuntime & operator=(const SherpaZipformerRuntime &) = delete; SherpaEncoderChunk encode_chunk( const std::vector & subsampled_features) const; void reset() const; private: struct Impl; std::unique_ptr impl_; }; } // namespace engine::models::sherpa_kws