#pragma once #include "engine/framework/audio/nemo_mel_frontend.h" #include #include namespace engine::community_models::whistle_asr { struct MelFeatures { std::vector values; size_t frames = 0; }; // Whistle log-mel features: the shared NemoMelFrontend STFT/mel/normalization // path with Whistle's percentile gain normalization applied locally first. class WhistleFrontend { public: explicit WhistleFrontend(std::vector filterbank); // The caller supplies mono 16 kHz float PCM, with at most 30 seconds per pass. [[nodiscard]] MelFeatures extract(const std::vector & samples) const; private: audio::NemoMelFrontend frontend_; }; } // namespace engine::community_models::whistle_asr