#pragma once
#include "ggml.h"
#include <vector>
struct ggml_context;
struct ggml_tensor;
struct ggml_cgraph;
namespace transcribe::voxtral {
struct VoxtralHParams;
struct VoxtralWeights;
struct EncoderDumps {
ggml_tensor * enc_out = nullptr; ggml_tensor * proj_out = nullptr; std::vector<ggml_tensor *> block_outs; };
struct EncoderBuild {
ggml_tensor * mel_in = nullptr; ggml_tensor * out = nullptr; EncoderDumps dumps {};
ggml_cgraph * graph = nullptr;
};
EncoderBuild build_encoder_graph(ggml_context * ctx,
const VoxtralWeights & weights,
const VoxtralHParams & hp,
int n_mel_frames,
bool use_flash);
EncoderBuild build_encoder_graph_batched(ggml_context * ctx,
const VoxtralWeights & weights,
const VoxtralHParams & hp,
int n_mel_frames,
int n_chunks,
bool use_flash);
}