#pragma once #include "engine/framework/assets/tensor_source.h" #include "engine/framework/assets/resource_bundle.h" #include #include #include #include #include #include namespace engine::community_models::whistle_asr { struct WhistleToken { std::string text; float score = 0.0f; uint8_t type = 0; }; struct WhistleAssets { assets::ResourceBundle resources; std::shared_ptr weights; std::vector mel_filterbank; std::array, 2> hadamard_permutations; std::vector tokenizer_pieces; }; [[nodiscard]] std::string decode_whistle_tokens( const std::vector & pieces, const std::vector & ids); [[nodiscard]] std::shared_ptr load_whistle_assets( const std::filesystem::path & model_path); } // namespace engine::community_models::whistle_asr