#pragma once #include "engine/community_models/nemotron_transcribe/ctc.h" #include "engine/community_models/nemotron_transcribe/decoder.h" #include "engine/community_models/nemotron_transcribe/encoder.h" #include "engine/framework/assets/resource_bundle.h" namespace engine::models::nemotron_transcribe { struct TranscribeAssets { assets::ResourceBundle resources; std::shared_ptr decoder_weights; std::shared_ptr encoder_weights; FrontendConfig frontend; EncoderConfig encoder; DecoderConfig decoder; CtcConfig ctc; std::vector mel_filterbank; std::vector frontend_window; std::string alignment_tokenizer; int64_t maximum_context = 262144; // Zero selects the native duration-based recognition budget. int64_t max_new_tokens = 0; }; std::shared_ptr load_transcribe_assets(const std::filesystem::path & path); assets::TensorStorageType transcribe_weight_type(std::string_view value); // Conservative weight residency before uploads, including mandatory F32 // parameters and the framework's F32 fallback for unaligned quantized rows. size_t estimate_transcribe_weight_bytes(const std::vector & tensors, assets::TensorStorageType storage, int64_t expert_cache_size = 0); } // namespace engine::models::nemotron_transcribe