#pragma once
#include "transcribe-backend.h"
#include "transcribe-langid.h"
#include "transcribe-load-common.h"
#include "transcribe-mel.h"
#include "transcribe-model.h"
#include "weights.h"
#include <cstdint>
#include <memory>
#include <vector>
struct ggml_context;
struct ggml_backend_buffer;
typedef struct ggml_backend_buffer * ggml_backend_buffer_t;
namespace transcribe {
struct Arch;
}
namespace transcribe::ecapa_tdnn {
struct Model final : public transcribe_model {
HParams hparams;
Weights weights;
ggml_context * ctx_meta = nullptr;
load_common::WeightStorage weight_storage;
BackendPlan plan;
ggml_context * ctx_derived = nullptr;
ggml_backend_buffer_t derived_buffer = nullptr;
LangidLabels labels;
std::unique_ptr<MelFrontend> mel;
Model() = default;
~Model() override;
};
struct Session final : public transcribe_langid_session {
std::vector<float> mel_raw; std::vector<float> mel_buf; std::vector<float> im2col_buf; std::vector<int32_t> idx_buf[kNumSeBlocks]; };
extern const Arch arch;
}