#ifndef TRANSCRIBE_DIARIZE_H
#define TRANSCRIBE_DIARIZE_H
#include "transcribe.h"
#ifdef __cplusplus
extern "C" {
#endif
struct transcribe_diarize_session;
struct transcribe_diarize_info {
uint64_t struct_size;
int32_t sample_rate;
int32_t max_speakers;
};
struct transcribe_diarize_session_params {
uint64_t struct_size;
int32_t n_threads;
};
struct transcribe_diarize_params {
uint64_t struct_size;
const struct transcribe_ext * family;
};
TRANSCRIBE_API void transcribe_diarize_info_init(struct transcribe_diarize_info * out);
TRANSCRIBE_API void transcribe_diarize_session_params_init(struct transcribe_diarize_session_params * params);
TRANSCRIBE_API void transcribe_diarize_params_init(struct transcribe_diarize_params * params);
TRANSCRIBE_API transcribe_status transcribe_diarize_get_info(const struct transcribe_model * model,
struct transcribe_diarize_info * out);
TRANSCRIBE_API transcribe_status
transcribe_diarize_session_init(struct transcribe_model * model,
const struct transcribe_diarize_session_params * params,
struct transcribe_diarize_session ** out_session);
TRANSCRIBE_API void transcribe_diarize_session_free(struct transcribe_diarize_session * session);
TRANSCRIBE_API void transcribe_diarize_set_abort_callback(struct transcribe_diarize_session * session,
transcribe_abort_callback cb,
void * user_data);
TRANSCRIBE_API transcribe_status transcribe_diarize_run(struct transcribe_diarize_session * session,
const float * pcm,
int n_samples,
const struct transcribe_diarize_params * params);
TRANSCRIBE_API int transcribe_diarize_n_segments(const struct transcribe_diarize_session * session);
TRANSCRIBE_API transcribe_status transcribe_diarize_get_segment(const struct transcribe_diarize_session * session,
int i,
struct transcribe_speaker_segment * out);
TRANSCRIBE_API transcribe_status transcribe_diarize_get_timings(const struct transcribe_diarize_session * session,
struct transcribe_timings * out);
#ifdef __cplusplus
}
#endif
#endif