#pragma once #include "engine/framework/assets/tensor_source.h" #include "engine/framework/core/backend.h" #include #include #include namespace engine::models::seed_vc { class SeedVcRmvpeF0Extractor { public: SeedVcRmvpeF0Extractor() = default; SeedVcRmvpeF0Extractor( std::shared_ptr source, engine::core::BackendConfig backend, engine::assets::TensorStorageType storage_type); ~SeedVcRmvpeF0Extractor(); SeedVcRmvpeF0Extractor(SeedVcRmvpeF0Extractor &&) noexcept; SeedVcRmvpeF0Extractor & operator=(SeedVcRmvpeF0Extractor &&) noexcept; SeedVcRmvpeF0Extractor(const SeedVcRmvpeF0Extractor &) = delete; SeedVcRmvpeF0Extractor & operator=(const SeedVcRmvpeF0Extractor &) = delete; std::vector infer_16k_mono( const std::vector & waveform_16k, float threshold, size_t threads) const; private: struct State; std::shared_ptr state_; }; } // namespace engine::models::seed_vc