#pragma once
#include "transcribe.h"
#include <cstddef>
#include <vector>
namespace transcribe::gigaam {
struct GigaamHParams;
struct GigaamWeights;
struct GigaamMelFrontend {
int n_freq; int n_mels;
int n_fft;
int win_length;
int hop_length;
std::vector<float> hann; std::vector<float> mel_fb;
void init(const GigaamHParams & hp, const GigaamWeights & w);
int n_frames_for(size_t n_samples) const;
transcribe_status compute(const float * pcm,
size_t n_samples,
std::vector<float> & out_mel,
int & out_n_frames,
int n_threads = 0) const;
};
}