#ifndef TRANSCRIBE_LANGID_H
#define TRANSCRIBE_LANGID_H
#include "transcribe.h"
#ifdef __cplusplus
extern "C" {
#endif
struct transcribe_langid_session;
struct transcribe_langid_info {
uint64_t struct_size;
int32_t sample_rate;
int32_t n_labels;
int32_t min_audio_ms;
int32_t max_audio_ms;
};
struct transcribe_langid_session_params {
uint64_t struct_size;
int32_t n_threads;
};
struct transcribe_langid_params {
uint64_t struct_size;
const char * const * allowed;
int32_t n_allowed;
};
struct transcribe_langid_result {
uint64_t struct_size;
int32_t n_candidates;
float allowed_mass;
};
struct transcribe_langid_candidate {
uint64_t struct_size;
int32_t index;
const char * code;
const char * name;
float p;
float logit;
};
TRANSCRIBE_API void transcribe_langid_info_init(struct transcribe_langid_info * out);
TRANSCRIBE_API void transcribe_langid_session_params_init(struct transcribe_langid_session_params * params);
TRANSCRIBE_API void transcribe_langid_params_init(struct transcribe_langid_params * params);
TRANSCRIBE_API void transcribe_langid_result_init(struct transcribe_langid_result * out);
TRANSCRIBE_API void transcribe_langid_candidate_init(struct transcribe_langid_candidate * out);
TRANSCRIBE_API transcribe_status transcribe_langid_get_info(const struct transcribe_model * model,
struct transcribe_langid_info * out);
TRANSCRIBE_API const char * transcribe_langid_label_code(const struct transcribe_model * model, int32_t i);
TRANSCRIBE_API const char * transcribe_langid_label_name(const struct transcribe_model * model, int32_t i);
TRANSCRIBE_API int32_t transcribe_langid_label_index(const struct transcribe_model * model, const char * code_or_alias);
TRANSCRIBE_API transcribe_status transcribe_langid_session_init(struct transcribe_model * model,
const struct transcribe_langid_session_params * params,
struct transcribe_langid_session ** out_session);
TRANSCRIBE_API void transcribe_langid_session_free(struct transcribe_langid_session * session);
TRANSCRIBE_API void transcribe_langid_set_abort_callback(struct transcribe_langid_session * session,
transcribe_abort_callback cb,
void * user_data);
TRANSCRIBE_API transcribe_status transcribe_langid_run(struct transcribe_langid_session * session,
const float * pcm,
int n_samples,
const struct transcribe_langid_params * params);
TRANSCRIBE_API transcribe_status transcribe_langid_get_result(const struct transcribe_langid_session * session,
struct transcribe_langid_result * out);
TRANSCRIBE_API transcribe_status transcribe_langid_get_candidate(const struct transcribe_langid_session * session,
int i,
struct transcribe_langid_candidate * out);
TRANSCRIBE_API transcribe_status transcribe_langid_get_timings(const struct transcribe_langid_session * session,
struct transcribe_timings * out);
#ifdef __cplusplus
}
#endif
#endif