#pragma once #include #include #include namespace engine::models::kugelaudio { // Order-two SDE-DPM-Solver++, cosine VP schedule and v-prediction. class SpeechScheduler { public: explicit SpeechScheduler(int training_steps = 1000); void reset(int inference_steps); const std::vector & timesteps() const { return timesteps_; } const std::vector & sigmas() const { return sigmas_; } void step(std::vector & sample, const std::vector & prediction, const std::vector & variance_noise); private: std::vector training_sigmas_; std::vector sigmas_; std::vector timesteps_; std::vector previous_prediction_; size_t step_ = 0; }; } // namespace engine::models::kugelaudio