#pragma once
#include "ggml.h"
struct ggml_context;
struct ggml_tensor;
struct ggml_cgraph;
namespace transcribe::funasr_nano {
struct FunAsrNanoHParams;
struct FunAsrNanoWeights;
struct AdaptorDumps {
ggml_tensor * linear1_out = nullptr; ggml_tensor * linear2_out = nullptr;
ggml_tensor * block0_out = nullptr;
ggml_tensor * adaptor_out = nullptr;
};
struct AdaptorBuild {
ggml_tensor * enc_in = nullptr; ggml_tensor * out = nullptr; AdaptorDumps dumps{};
ggml_cgraph * graph = nullptr;
};
AdaptorBuild build_adaptor_graph(ggml_context * compute_ctx,
const FunAsrNanoWeights & weights,
const FunAsrNanoHParams & hp,
int T_in);
int compute_fake_token_len(int T_lfr, bool use_low_frame_rate);
}