Skip to main content

transcribe_cpp_sys/
transcribe_sys.rs

1// @generated by `cargo xtask bindgen` from include/transcribe/extensions.h
2// DO NOT EDIT BY HAND. Regenerate: `cargo xtask bindgen`.
3// Pinned to include/transcribe.abihash = fe9ed398c408e5d9
4
5/// The public-ABI digest these bindings were generated against
6/// (sha256/16 over the normalized FFI surface). The load-time version
7/// gate and the CI drift check both anchor on this value.
8pub const PUBLIC_HEADER_HASH: &str = "fe9ed398c408e5d9";
9
10/* automatically generated by rust-bindgen 0.72.1 */
11
12pub const TRANSCRIBE_VERSION_MAJOR: u32 = 0;
13pub const TRANSCRIBE_VERSION_MINOR: u32 = 0;
14pub const TRANSCRIBE_VERSION_PATCH: u32 = 1;
15pub const TRANSCRIBE_VERSION_NUMBER: u32 = 1;
16pub const TRANSCRIBE_EXT_KIND_MOONSHINE_STREAMING_STREAM: u32 = 1414746957;
17pub const TRANSCRIBE_EXT_KIND_PARAKEET_STREAM: u32 = 1414744912;
18pub const TRANSCRIBE_EXT_KIND_PARAKEET_BUFFERED_STREAM: u32 = 1396853584;
19pub const TRANSCRIBE_EXT_KIND_VOXTRAL_REALTIME_STREAM: u32 = 1414746710;
20pub const TRANSCRIBE_EXT_KIND_WHISPER_RUN: u32 = 1314015319;
21impl transcribe_status {
22    pub const TRANSCRIBE_OK: transcribe_status = transcribe_status(0);
23    pub const TRANSCRIBE_ERR_INVALID_ARG: transcribe_status = transcribe_status(1);
24    pub const TRANSCRIBE_ERR_NOT_IMPLEMENTED: transcribe_status = transcribe_status(2);
25    pub const TRANSCRIBE_ERR_FILE_NOT_FOUND: transcribe_status = transcribe_status(3);
26    pub const TRANSCRIBE_ERR_GGUF: transcribe_status = transcribe_status(4);
27    pub const TRANSCRIBE_ERR_UNSUPPORTED_ARCH: transcribe_status = transcribe_status(5);
28    pub const TRANSCRIBE_ERR_UNSUPPORTED_VARIANT: transcribe_status = transcribe_status(6);
29    pub const TRANSCRIBE_ERR_OOM: transcribe_status = transcribe_status(7);
30    pub const TRANSCRIBE_ERR_BACKEND: transcribe_status = transcribe_status(8);
31    pub const TRANSCRIBE_ERR_SAMPLE_RATE: transcribe_status = transcribe_status(9);
32    pub const TRANSCRIBE_ERR_UNSUPPORTED_LANGUAGE: transcribe_status = transcribe_status(10);
33    pub const TRANSCRIBE_ERR_UNSUPPORTED_TASK: transcribe_status = transcribe_status(11);
34    pub const TRANSCRIBE_ERR_UNSUPPORTED_TIMESTAMPS: transcribe_status = transcribe_status(12);
35    pub const TRANSCRIBE_ERR_ABORTED: transcribe_status = transcribe_status(13);
36    pub const TRANSCRIBE_ERR_BAD_STRUCT_SIZE: transcribe_status = transcribe_status(14);
37    pub const TRANSCRIBE_ERR_UNSUPPORTED_PNC: transcribe_status = transcribe_status(15);
38    pub const TRANSCRIBE_ERR_UNSUPPORTED_ITN: transcribe_status = transcribe_status(16);
39    pub const TRANSCRIBE_ERR_INPUT_TOO_LONG: transcribe_status = transcribe_status(17);
40    pub const TRANSCRIBE_ERR_OUTPUT_TRUNCATED: transcribe_status = transcribe_status(18);
41}
42#[repr(transparent)]
43#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
44pub struct transcribe_status(pub ::std::os::raw::c_uint);
45unsafe extern "C" {
46    pub fn transcribe_status_string(status: ::std::os::raw::c_int)
47        -> *const ::std::os::raw::c_char;
48}
49unsafe extern "C" {
50    pub fn transcribe_version() -> *const ::std::os::raw::c_char;
51}
52unsafe extern "C" {
53    pub fn transcribe_version_commit() -> *const ::std::os::raw::c_char;
54}
55impl transcribe_abi_struct {
56    pub const TRANSCRIBE_ABI_MODEL_LOAD_PARAMS: transcribe_abi_struct = transcribe_abi_struct(0);
57    pub const TRANSCRIBE_ABI_SESSION_PARAMS: transcribe_abi_struct = transcribe_abi_struct(1);
58    pub const TRANSCRIBE_ABI_RUN_PARAMS: transcribe_abi_struct = transcribe_abi_struct(2);
59    pub const TRANSCRIBE_ABI_STREAM_PARAMS: transcribe_abi_struct = transcribe_abi_struct(3);
60    pub const TRANSCRIBE_ABI_CAPABILITIES: transcribe_abi_struct = transcribe_abi_struct(4);
61    pub const TRANSCRIBE_ABI_TIMINGS: transcribe_abi_struct = transcribe_abi_struct(5);
62    pub const TRANSCRIBE_ABI_SEGMENT: transcribe_abi_struct = transcribe_abi_struct(6);
63    pub const TRANSCRIBE_ABI_WORD: transcribe_abi_struct = transcribe_abi_struct(7);
64    pub const TRANSCRIBE_ABI_TOKEN: transcribe_abi_struct = transcribe_abi_struct(8);
65    pub const TRANSCRIBE_ABI_STREAM_UPDATE: transcribe_abi_struct = transcribe_abi_struct(9);
66    pub const TRANSCRIBE_ABI_STREAM_TEXT: transcribe_abi_struct = transcribe_abi_struct(10);
67    pub const TRANSCRIBE_ABI_SESSION_LIMITS: transcribe_abi_struct = transcribe_abi_struct(11);
68    pub const TRANSCRIBE_ABI_EXT: transcribe_abi_struct = transcribe_abi_struct(12);
69    pub const TRANSCRIBE_ABI_BACKEND_DEVICE: transcribe_abi_struct = transcribe_abi_struct(13);
70}
71#[repr(transparent)]
72#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
73pub struct transcribe_abi_struct(pub ::std::os::raw::c_uint);
74unsafe extern "C" {
75    pub fn transcribe_abi_struct_size(which: transcribe_abi_struct) -> usize;
76}
77unsafe extern "C" {
78    pub fn transcribe_abi_struct_align(which: transcribe_abi_struct) -> usize;
79}
80impl transcribe_log_level {
81    pub const TRANSCRIBE_LOG_LEVEL_NONE: transcribe_log_level = transcribe_log_level(0);
82    pub const TRANSCRIBE_LOG_LEVEL_INFO: transcribe_log_level = transcribe_log_level(1);
83    pub const TRANSCRIBE_LOG_LEVEL_WARN: transcribe_log_level = transcribe_log_level(2);
84    pub const TRANSCRIBE_LOG_LEVEL_ERROR: transcribe_log_level = transcribe_log_level(3);
85    pub const TRANSCRIBE_LOG_LEVEL_DEBUG: transcribe_log_level = transcribe_log_level(4);
86    pub const TRANSCRIBE_LOG_LEVEL_CONT: transcribe_log_level = transcribe_log_level(5);
87}
88#[repr(transparent)]
89#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
90pub struct transcribe_log_level(pub ::std::os::raw::c_uint);
91pub type transcribe_log_callback = ::std::option::Option<
92    unsafe extern "C" fn(
93        level: transcribe_log_level,
94        msg: *const ::std::os::raw::c_char,
95        userdata: *mut ::std::os::raw::c_void,
96    ),
97>;
98unsafe extern "C" {
99    pub fn transcribe_log_set(cb: transcribe_log_callback, userdata: *mut ::std::os::raw::c_void);
100}
101impl transcribe_task {
102    pub const TRANSCRIBE_TASK_TRANSCRIBE: transcribe_task = transcribe_task(0);
103    pub const TRANSCRIBE_TASK_TRANSLATE: transcribe_task = transcribe_task(1);
104}
105#[repr(transparent)]
106#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
107pub struct transcribe_task(pub ::std::os::raw::c_uint);
108impl transcribe_timestamp_kind {
109    pub const TRANSCRIBE_TIMESTAMPS_NONE: transcribe_timestamp_kind = transcribe_timestamp_kind(0);
110    pub const TRANSCRIBE_TIMESTAMPS_AUTO: transcribe_timestamp_kind = transcribe_timestamp_kind(1);
111    pub const TRANSCRIBE_TIMESTAMPS_SEGMENT: transcribe_timestamp_kind =
112        transcribe_timestamp_kind(2);
113    pub const TRANSCRIBE_TIMESTAMPS_WORD: transcribe_timestamp_kind = transcribe_timestamp_kind(3);
114    pub const TRANSCRIBE_TIMESTAMPS_TOKEN: transcribe_timestamp_kind = transcribe_timestamp_kind(4);
115}
116#[repr(transparent)]
117#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
118pub struct transcribe_timestamp_kind(pub ::std::os::raw::c_uint);
119impl transcribe_kv_type {
120    pub const TRANSCRIBE_KV_TYPE_AUTO: transcribe_kv_type = transcribe_kv_type(0);
121    pub const TRANSCRIBE_KV_TYPE_F32: transcribe_kv_type = transcribe_kv_type(1);
122    pub const TRANSCRIBE_KV_TYPE_F16: transcribe_kv_type = transcribe_kv_type(2);
123}
124#[repr(transparent)]
125#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
126pub struct transcribe_kv_type(pub ::std::os::raw::c_uint);
127impl transcribe_pnc_mode {
128    pub const TRANSCRIBE_PNC_MODE_DEFAULT: transcribe_pnc_mode = transcribe_pnc_mode(0);
129    pub const TRANSCRIBE_PNC_MODE_OFF: transcribe_pnc_mode = transcribe_pnc_mode(1);
130    pub const TRANSCRIBE_PNC_MODE_ON: transcribe_pnc_mode = transcribe_pnc_mode(2);
131}
132#[repr(transparent)]
133#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
134pub struct transcribe_pnc_mode(pub ::std::os::raw::c_uint);
135impl transcribe_itn_mode {
136    pub const TRANSCRIBE_ITN_MODE_DEFAULT: transcribe_itn_mode = transcribe_itn_mode(0);
137    pub const TRANSCRIBE_ITN_MODE_OFF: transcribe_itn_mode = transcribe_itn_mode(1);
138    pub const TRANSCRIBE_ITN_MODE_ON: transcribe_itn_mode = transcribe_itn_mode(2);
139}
140#[repr(transparent)]
141#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
142pub struct transcribe_itn_mode(pub ::std::os::raw::c_uint);
143#[repr(C)]
144#[derive(Debug, Copy, Clone)]
145pub struct transcribe_model {
146    _unused: [u8; 0],
147}
148#[repr(C)]
149#[derive(Debug, Copy, Clone)]
150pub struct transcribe_session {
151    _unused: [u8; 0],
152}
153#[repr(C)]
154#[derive(Debug, Copy, Clone)]
155pub struct transcribe_ext {
156    pub size: u64,
157    pub kind: u32,
158}
159#[allow(clippy::unnecessary_operation, clippy::identity_op)]
160const _: () = {
161    ["Size of transcribe_ext"][::std::mem::size_of::<transcribe_ext>() - 16usize];
162    ["Alignment of transcribe_ext"][::std::mem::align_of::<transcribe_ext>() - 8usize];
163    ["Offset of field: transcribe_ext::size"]
164        [::std::mem::offset_of!(transcribe_ext, size) - 0usize];
165    ["Offset of field: transcribe_ext::kind"]
166        [::std::mem::offset_of!(transcribe_ext, kind) - 8usize];
167};
168unsafe extern "C" {
169    pub fn transcribe_ext_check(
170        ext: *const transcribe_ext,
171        expected_kind: u32,
172        min_size: u64,
173    ) -> transcribe_status;
174}
175impl transcribe_ext_slot {
176    pub const TRANSCRIBE_EXT_SLOT_RUN: transcribe_ext_slot = transcribe_ext_slot(0);
177    pub const TRANSCRIBE_EXT_SLOT_STREAM: transcribe_ext_slot = transcribe_ext_slot(1);
178}
179#[repr(transparent)]
180#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
181pub struct transcribe_ext_slot(pub ::std::os::raw::c_uint);
182unsafe extern "C" {
183    pub fn transcribe_model_accepts_ext_kind(
184        model: *const transcribe_model,
185        slot: transcribe_ext_slot,
186        kind: u32,
187    ) -> bool;
188}
189impl transcribe_backend_request {
190    pub const TRANSCRIBE_BACKEND_AUTO: transcribe_backend_request = transcribe_backend_request(0);
191    pub const TRANSCRIBE_BACKEND_CPU: transcribe_backend_request = transcribe_backend_request(1);
192    pub const TRANSCRIBE_BACKEND_METAL: transcribe_backend_request = transcribe_backend_request(2);
193    pub const TRANSCRIBE_BACKEND_VULKAN: transcribe_backend_request = transcribe_backend_request(3);
194    pub const TRANSCRIBE_BACKEND_CPU_ACCEL: transcribe_backend_request =
195        transcribe_backend_request(4);
196    pub const TRANSCRIBE_BACKEND_CUDA: transcribe_backend_request = transcribe_backend_request(5);
197}
198#[repr(transparent)]
199#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
200pub struct transcribe_backend_request(pub ::std::os::raw::c_uint);
201unsafe extern "C" {
202    pub fn transcribe_init_backends(
203        artifact_dir: *const ::std::os::raw::c_char,
204    ) -> transcribe_status;
205}
206unsafe extern "C" {
207    pub fn transcribe_init_backends_default() -> transcribe_status;
208}
209unsafe extern "C" {
210    pub fn transcribe_backend_device_count() -> ::std::os::raw::c_int;
211}
212#[repr(C)]
213#[derive(Debug, Copy, Clone)]
214pub struct transcribe_backend_device {
215    pub struct_size: u64,
216    pub name: *const ::std::os::raw::c_char,
217    pub description: *const ::std::os::raw::c_char,
218    pub kind: *const ::std::os::raw::c_char,
219}
220#[allow(clippy::unnecessary_operation, clippy::identity_op)]
221const _: () = {
222    ["Size of transcribe_backend_device"]
223        [::std::mem::size_of::<transcribe_backend_device>() - 32usize];
224    ["Alignment of transcribe_backend_device"]
225        [::std::mem::align_of::<transcribe_backend_device>() - 8usize];
226    ["Offset of field: transcribe_backend_device::struct_size"]
227        [::std::mem::offset_of!(transcribe_backend_device, struct_size) - 0usize];
228    ["Offset of field: transcribe_backend_device::name"]
229        [::std::mem::offset_of!(transcribe_backend_device, name) - 8usize];
230    ["Offset of field: transcribe_backend_device::description"]
231        [::std::mem::offset_of!(transcribe_backend_device, description) - 16usize];
232    ["Offset of field: transcribe_backend_device::kind"]
233        [::std::mem::offset_of!(transcribe_backend_device, kind) - 24usize];
234};
235unsafe extern "C" {
236    pub fn transcribe_backend_device_init(p: *mut transcribe_backend_device);
237}
238unsafe extern "C" {
239    pub fn transcribe_get_backend_device(
240        index: ::std::os::raw::c_int,
241        out: *mut transcribe_backend_device,
242    ) -> transcribe_status;
243}
244unsafe extern "C" {
245    pub fn transcribe_backend_available(kind: transcribe_backend_request) -> bool;
246}
247#[repr(C)]
248#[derive(Debug, Copy, Clone)]
249pub struct transcribe_model_load_params {
250    pub struct_size: u64,
251    pub backend: transcribe_backend_request,
252    pub gpu_device: ::std::os::raw::c_int,
253}
254#[allow(clippy::unnecessary_operation, clippy::identity_op)]
255const _: () = {
256    ["Size of transcribe_model_load_params"]
257        [::std::mem::size_of::<transcribe_model_load_params>() - 16usize];
258    ["Alignment of transcribe_model_load_params"]
259        [::std::mem::align_of::<transcribe_model_load_params>() - 8usize];
260    ["Offset of field: transcribe_model_load_params::struct_size"]
261        [::std::mem::offset_of!(transcribe_model_load_params, struct_size) - 0usize];
262    ["Offset of field: transcribe_model_load_params::backend"]
263        [::std::mem::offset_of!(transcribe_model_load_params, backend) - 8usize];
264    ["Offset of field: transcribe_model_load_params::gpu_device"]
265        [::std::mem::offset_of!(transcribe_model_load_params, gpu_device) - 12usize];
266};
267unsafe extern "C" {
268    pub fn transcribe_model_load_params_init(params: *mut transcribe_model_load_params);
269}
270#[repr(C)]
271#[derive(Debug, Copy, Clone)]
272pub struct transcribe_session_params {
273    pub struct_size: u64,
274    pub n_threads: ::std::os::raw::c_int,
275    pub kv_type: transcribe_kv_type,
276    pub n_ctx: i32,
277}
278#[allow(clippy::unnecessary_operation, clippy::identity_op)]
279const _: () = {
280    ["Size of transcribe_session_params"]
281        [::std::mem::size_of::<transcribe_session_params>() - 24usize];
282    ["Alignment of transcribe_session_params"]
283        [::std::mem::align_of::<transcribe_session_params>() - 8usize];
284    ["Offset of field: transcribe_session_params::struct_size"]
285        [::std::mem::offset_of!(transcribe_session_params, struct_size) - 0usize];
286    ["Offset of field: transcribe_session_params::n_threads"]
287        [::std::mem::offset_of!(transcribe_session_params, n_threads) - 8usize];
288    ["Offset of field: transcribe_session_params::kv_type"]
289        [::std::mem::offset_of!(transcribe_session_params, kv_type) - 12usize];
290    ["Offset of field: transcribe_session_params::n_ctx"]
291        [::std::mem::offset_of!(transcribe_session_params, n_ctx) - 16usize];
292};
293unsafe extern "C" {
294    pub fn transcribe_session_params_init(params: *mut transcribe_session_params);
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct transcribe_run_params {
299    pub struct_size: u64,
300    pub task: transcribe_task,
301    pub timestamps: transcribe_timestamp_kind,
302    pub pnc: transcribe_pnc_mode,
303    pub itn: transcribe_itn_mode,
304    pub language: *const ::std::os::raw::c_char,
305    pub target_language: *const ::std::os::raw::c_char,
306    pub keep_special_tags: bool,
307    pub family: *const transcribe_ext,
308    pub spec_k_drafts: i32,
309}
310#[allow(clippy::unnecessary_operation, clippy::identity_op)]
311const _: () = {
312    ["Size of transcribe_run_params"][::std::mem::size_of::<transcribe_run_params>() - 64usize];
313    ["Alignment of transcribe_run_params"]
314        [::std::mem::align_of::<transcribe_run_params>() - 8usize];
315    ["Offset of field: transcribe_run_params::struct_size"]
316        [::std::mem::offset_of!(transcribe_run_params, struct_size) - 0usize];
317    ["Offset of field: transcribe_run_params::task"]
318        [::std::mem::offset_of!(transcribe_run_params, task) - 8usize];
319    ["Offset of field: transcribe_run_params::timestamps"]
320        [::std::mem::offset_of!(transcribe_run_params, timestamps) - 12usize];
321    ["Offset of field: transcribe_run_params::pnc"]
322        [::std::mem::offset_of!(transcribe_run_params, pnc) - 16usize];
323    ["Offset of field: transcribe_run_params::itn"]
324        [::std::mem::offset_of!(transcribe_run_params, itn) - 20usize];
325    ["Offset of field: transcribe_run_params::language"]
326        [::std::mem::offset_of!(transcribe_run_params, language) - 24usize];
327    ["Offset of field: transcribe_run_params::target_language"]
328        [::std::mem::offset_of!(transcribe_run_params, target_language) - 32usize];
329    ["Offset of field: transcribe_run_params::keep_special_tags"]
330        [::std::mem::offset_of!(transcribe_run_params, keep_special_tags) - 40usize];
331    ["Offset of field: transcribe_run_params::family"]
332        [::std::mem::offset_of!(transcribe_run_params, family) - 48usize];
333    ["Offset of field: transcribe_run_params::spec_k_drafts"]
334        [::std::mem::offset_of!(transcribe_run_params, spec_k_drafts) - 56usize];
335};
336unsafe extern "C" {
337    pub fn transcribe_run_params_init(params: *mut transcribe_run_params);
338}
339#[repr(C)]
340#[derive(Debug, Copy, Clone)]
341pub struct transcribe_capabilities {
342    pub struct_size: u64,
343    pub native_sample_rate: i32,
344    pub n_languages: ::std::os::raw::c_int,
345    pub languages: *const *const ::std::os::raw::c_char,
346    pub max_timestamp_kind: transcribe_timestamp_kind,
347    pub supports_language_detect: bool,
348    pub supports_translate: bool,
349    pub supports_streaming: bool,
350    pub supports_spec_decode: bool,
351    pub max_audio_ms: i64,
352}
353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
354const _: () = {
355    ["Size of transcribe_capabilities"][::std::mem::size_of::<transcribe_capabilities>() - 40usize];
356    ["Alignment of transcribe_capabilities"]
357        [::std::mem::align_of::<transcribe_capabilities>() - 8usize];
358    ["Offset of field: transcribe_capabilities::struct_size"]
359        [::std::mem::offset_of!(transcribe_capabilities, struct_size) - 0usize];
360    ["Offset of field: transcribe_capabilities::native_sample_rate"]
361        [::std::mem::offset_of!(transcribe_capabilities, native_sample_rate) - 8usize];
362    ["Offset of field: transcribe_capabilities::n_languages"]
363        [::std::mem::offset_of!(transcribe_capabilities, n_languages) - 12usize];
364    ["Offset of field: transcribe_capabilities::languages"]
365        [::std::mem::offset_of!(transcribe_capabilities, languages) - 16usize];
366    ["Offset of field: transcribe_capabilities::max_timestamp_kind"]
367        [::std::mem::offset_of!(transcribe_capabilities, max_timestamp_kind) - 24usize];
368    ["Offset of field: transcribe_capabilities::supports_language_detect"]
369        [::std::mem::offset_of!(transcribe_capabilities, supports_language_detect) - 28usize];
370    ["Offset of field: transcribe_capabilities::supports_translate"]
371        [::std::mem::offset_of!(transcribe_capabilities, supports_translate) - 29usize];
372    ["Offset of field: transcribe_capabilities::supports_streaming"]
373        [::std::mem::offset_of!(transcribe_capabilities, supports_streaming) - 30usize];
374    ["Offset of field: transcribe_capabilities::supports_spec_decode"]
375        [::std::mem::offset_of!(transcribe_capabilities, supports_spec_decode) - 31usize];
376    ["Offset of field: transcribe_capabilities::max_audio_ms"]
377        [::std::mem::offset_of!(transcribe_capabilities, max_audio_ms) - 32usize];
378};
379unsafe extern "C" {
380    pub fn transcribe_capabilities_init(out: *mut transcribe_capabilities);
381}
382unsafe extern "C" {
383    pub fn transcribe_model_get_capabilities(
384        model: *const transcribe_model,
385        out_caps: *mut transcribe_capabilities,
386    ) -> transcribe_status;
387}
388impl transcribe_feature {
389    pub const TRANSCRIBE_FEATURE_INITIAL_PROMPT: transcribe_feature = transcribe_feature(0);
390    pub const TRANSCRIBE_FEATURE_TEMPERATURE_FALLBACK: transcribe_feature = transcribe_feature(1);
391    pub const TRANSCRIBE_FEATURE_LONG_FORM: transcribe_feature = transcribe_feature(2);
392    pub const TRANSCRIBE_FEATURE_CANCELLATION: transcribe_feature = transcribe_feature(3);
393    pub const TRANSCRIBE_FEATURE_PNC: transcribe_feature = transcribe_feature(4);
394    pub const TRANSCRIBE_FEATURE_ITN: transcribe_feature = transcribe_feature(5);
395}
396#[repr(transparent)]
397#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
398pub struct transcribe_feature(pub ::std::os::raw::c_uint);
399unsafe extern "C" {
400    pub fn transcribe_model_supports(
401        model: *const transcribe_model,
402        feature: transcribe_feature,
403    ) -> bool;
404}
405unsafe extern "C" {
406    pub fn transcribe_model_arch_string(
407        model: *const transcribe_model,
408    ) -> *const ::std::os::raw::c_char;
409}
410unsafe extern "C" {
411    pub fn transcribe_model_variant_string(
412        model: *const transcribe_model,
413    ) -> *const ::std::os::raw::c_char;
414}
415unsafe extern "C" {
416    pub fn transcribe_model_backend(
417        model: *const transcribe_model,
418    ) -> *const ::std::os::raw::c_char;
419}
420unsafe extern "C" {
421    pub fn transcribe_model_load_file(
422        path: *const ::std::os::raw::c_char,
423        params: *const transcribe_model_load_params,
424        out_model: *mut *mut transcribe_model,
425    ) -> transcribe_status;
426}
427unsafe extern "C" {
428    pub fn transcribe_model_free(model: *mut transcribe_model);
429}
430unsafe extern "C" {
431    pub fn transcribe_session_init(
432        model: *mut transcribe_model,
433        params: *const transcribe_session_params,
434        out_session: *mut *mut transcribe_session,
435    ) -> transcribe_status;
436}
437unsafe extern "C" {
438    pub fn transcribe_session_free(session: *mut transcribe_session);
439}
440unsafe extern "C" {
441    pub fn transcribe_open(
442        path: *const ::std::os::raw::c_char,
443        load_params: *const transcribe_model_load_params,
444        session_params: *const transcribe_session_params,
445        out_session: *mut *mut transcribe_session,
446    ) -> transcribe_status;
447}
448unsafe extern "C" {
449    pub fn transcribe_close(session: *mut transcribe_session);
450}
451unsafe extern "C" {
452    pub fn transcribe_get_model(session: *const transcribe_session) -> *const transcribe_model;
453}
454unsafe extern "C" {
455    pub fn transcribe_run(
456        session: *mut transcribe_session,
457        pcm: *const f32,
458        n_samples: ::std::os::raw::c_int,
459        params: *const transcribe_run_params,
460    ) -> transcribe_status;
461}
462unsafe extern "C" {
463    pub fn transcribe_run_batch(
464        session: *mut transcribe_session,
465        pcm: *const *const f32,
466        n_samples: *const ::std::os::raw::c_int,
467        n: ::std::os::raw::c_int,
468        params: *const transcribe_run_params,
469    ) -> transcribe_status;
470}
471pub type transcribe_abort_callback =
472    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void) -> bool>;
473unsafe extern "C" {
474    pub fn transcribe_set_abort_callback(
475        session: *mut transcribe_session,
476        cb: transcribe_abort_callback,
477        user_data: *mut ::std::os::raw::c_void,
478    );
479}
480unsafe extern "C" {
481    pub fn transcribe_was_aborted(session: *const transcribe_session) -> bool;
482}
483unsafe extern "C" {
484    pub fn transcribe_was_truncated(session: *const transcribe_session) -> bool;
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct transcribe_session_limits {
489    pub struct_size: u64,
490    pub effective_n_ctx: i32,
491    pub effective_max_audio_ms: i64,
492    pub max_kv_bytes: i64,
493}
494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
495const _: () = {
496    ["Size of transcribe_session_limits"]
497        [::std::mem::size_of::<transcribe_session_limits>() - 32usize];
498    ["Alignment of transcribe_session_limits"]
499        [::std::mem::align_of::<transcribe_session_limits>() - 8usize];
500    ["Offset of field: transcribe_session_limits::struct_size"]
501        [::std::mem::offset_of!(transcribe_session_limits, struct_size) - 0usize];
502    ["Offset of field: transcribe_session_limits::effective_n_ctx"]
503        [::std::mem::offset_of!(transcribe_session_limits, effective_n_ctx) - 8usize];
504    ["Offset of field: transcribe_session_limits::effective_max_audio_ms"]
505        [::std::mem::offset_of!(transcribe_session_limits, effective_max_audio_ms) - 16usize];
506    ["Offset of field: transcribe_session_limits::max_kv_bytes"]
507        [::std::mem::offset_of!(transcribe_session_limits, max_kv_bytes) - 24usize];
508};
509unsafe extern "C" {
510    pub fn transcribe_session_limits_init(out: *mut transcribe_session_limits);
511}
512unsafe extern "C" {
513    pub fn transcribe_session_get_limits(
514        session: *const transcribe_session,
515        out: *mut transcribe_session_limits,
516    ) -> transcribe_status;
517}
518impl transcribe_stream_state {
519    pub const TRANSCRIBE_STREAM_IDLE: transcribe_stream_state = transcribe_stream_state(0);
520    pub const TRANSCRIBE_STREAM_ACTIVE: transcribe_stream_state = transcribe_stream_state(1);
521    pub const TRANSCRIBE_STREAM_FINISHED: transcribe_stream_state = transcribe_stream_state(2);
522    pub const TRANSCRIBE_STREAM_FAILED: transcribe_stream_state = transcribe_stream_state(3);
523}
524#[repr(transparent)]
525#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
526pub struct transcribe_stream_state(pub ::std::os::raw::c_uint);
527impl transcribe_stream_commit_policy {
528    pub const TRANSCRIBE_STREAM_COMMIT_AUTO: transcribe_stream_commit_policy =
529        transcribe_stream_commit_policy(0);
530    pub const TRANSCRIBE_STREAM_COMMIT_ON_FINALIZE: transcribe_stream_commit_policy =
531        transcribe_stream_commit_policy(1);
532    pub const TRANSCRIBE_STREAM_COMMIT_STABLE_PREFIX: transcribe_stream_commit_policy =
533        transcribe_stream_commit_policy(2);
534}
535#[repr(transparent)]
536#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
537pub struct transcribe_stream_commit_policy(pub ::std::os::raw::c_uint);
538#[repr(C)]
539#[derive(Debug, Copy, Clone)]
540pub struct transcribe_stream_params {
541    pub struct_size: u64,
542    pub family: *const transcribe_ext,
543    pub commit_policy: transcribe_stream_commit_policy,
544    pub stable_prefix_agreement_n: u32,
545}
546#[allow(clippy::unnecessary_operation, clippy::identity_op)]
547const _: () = {
548    ["Size of transcribe_stream_params"]
549        [::std::mem::size_of::<transcribe_stream_params>() - 24usize];
550    ["Alignment of transcribe_stream_params"]
551        [::std::mem::align_of::<transcribe_stream_params>() - 8usize];
552    ["Offset of field: transcribe_stream_params::struct_size"]
553        [::std::mem::offset_of!(transcribe_stream_params, struct_size) - 0usize];
554    ["Offset of field: transcribe_stream_params::family"]
555        [::std::mem::offset_of!(transcribe_stream_params, family) - 8usize];
556    ["Offset of field: transcribe_stream_params::commit_policy"]
557        [::std::mem::offset_of!(transcribe_stream_params, commit_policy) - 16usize];
558    ["Offset of field: transcribe_stream_params::stable_prefix_agreement_n"]
559        [::std::mem::offset_of!(transcribe_stream_params, stable_prefix_agreement_n) - 20usize];
560};
561unsafe extern "C" {
562    pub fn transcribe_stream_params_init(params: *mut transcribe_stream_params);
563}
564#[repr(C)]
565#[derive(Debug, Copy, Clone)]
566pub struct transcribe_stream_update {
567    pub struct_size: u64,
568    pub result_changed: bool,
569    pub is_final: bool,
570    pub revision: i32,
571    pub input_received_ms: i64,
572    pub audio_committed_ms: i64,
573    pub buffered_ms: i64,
574    pub committed_changed: bool,
575    pub tentative_changed: bool,
576}
577#[allow(clippy::unnecessary_operation, clippy::identity_op)]
578const _: () = {
579    ["Size of transcribe_stream_update"]
580        [::std::mem::size_of::<transcribe_stream_update>() - 48usize];
581    ["Alignment of transcribe_stream_update"]
582        [::std::mem::align_of::<transcribe_stream_update>() - 8usize];
583    ["Offset of field: transcribe_stream_update::struct_size"]
584        [::std::mem::offset_of!(transcribe_stream_update, struct_size) - 0usize];
585    ["Offset of field: transcribe_stream_update::result_changed"]
586        [::std::mem::offset_of!(transcribe_stream_update, result_changed) - 8usize];
587    ["Offset of field: transcribe_stream_update::is_final"]
588        [::std::mem::offset_of!(transcribe_stream_update, is_final) - 9usize];
589    ["Offset of field: transcribe_stream_update::revision"]
590        [::std::mem::offset_of!(transcribe_stream_update, revision) - 12usize];
591    ["Offset of field: transcribe_stream_update::input_received_ms"]
592        [::std::mem::offset_of!(transcribe_stream_update, input_received_ms) - 16usize];
593    ["Offset of field: transcribe_stream_update::audio_committed_ms"]
594        [::std::mem::offset_of!(transcribe_stream_update, audio_committed_ms) - 24usize];
595    ["Offset of field: transcribe_stream_update::buffered_ms"]
596        [::std::mem::offset_of!(transcribe_stream_update, buffered_ms) - 32usize];
597    ["Offset of field: transcribe_stream_update::committed_changed"]
598        [::std::mem::offset_of!(transcribe_stream_update, committed_changed) - 40usize];
599    ["Offset of field: transcribe_stream_update::tentative_changed"]
600        [::std::mem::offset_of!(transcribe_stream_update, tentative_changed) - 41usize];
601};
602unsafe extern "C" {
603    pub fn transcribe_stream_update_init(out: *mut transcribe_stream_update);
604}
605#[repr(C)]
606#[derive(Debug, Copy, Clone)]
607pub struct transcribe_stream_text {
608    pub struct_size: u64,
609    pub full_text: *const ::std::os::raw::c_char,
610    pub full_text_bytes: u64,
611    pub committed_text: *const ::std::os::raw::c_char,
612    pub committed_text_bytes: u64,
613    pub tentative_text: *const ::std::os::raw::c_char,
614    pub tentative_text_bytes: u64,
615    pub raw_tentative_start_bytes: u64,
616}
617#[allow(clippy::unnecessary_operation, clippy::identity_op)]
618const _: () = {
619    ["Size of transcribe_stream_text"][::std::mem::size_of::<transcribe_stream_text>() - 64usize];
620    ["Alignment of transcribe_stream_text"]
621        [::std::mem::align_of::<transcribe_stream_text>() - 8usize];
622    ["Offset of field: transcribe_stream_text::struct_size"]
623        [::std::mem::offset_of!(transcribe_stream_text, struct_size) - 0usize];
624    ["Offset of field: transcribe_stream_text::full_text"]
625        [::std::mem::offset_of!(transcribe_stream_text, full_text) - 8usize];
626    ["Offset of field: transcribe_stream_text::full_text_bytes"]
627        [::std::mem::offset_of!(transcribe_stream_text, full_text_bytes) - 16usize];
628    ["Offset of field: transcribe_stream_text::committed_text"]
629        [::std::mem::offset_of!(transcribe_stream_text, committed_text) - 24usize];
630    ["Offset of field: transcribe_stream_text::committed_text_bytes"]
631        [::std::mem::offset_of!(transcribe_stream_text, committed_text_bytes) - 32usize];
632    ["Offset of field: transcribe_stream_text::tentative_text"]
633        [::std::mem::offset_of!(transcribe_stream_text, tentative_text) - 40usize];
634    ["Offset of field: transcribe_stream_text::tentative_text_bytes"]
635        [::std::mem::offset_of!(transcribe_stream_text, tentative_text_bytes) - 48usize];
636    ["Offset of field: transcribe_stream_text::raw_tentative_start_bytes"]
637        [::std::mem::offset_of!(transcribe_stream_text, raw_tentative_start_bytes) - 56usize];
638};
639unsafe extern "C" {
640    pub fn transcribe_stream_text_init(out: *mut transcribe_stream_text);
641}
642unsafe extern "C" {
643    pub fn transcribe_stream_get_text(
644        session: *const transcribe_session,
645        out: *mut transcribe_stream_text,
646    ) -> transcribe_status;
647}
648unsafe extern "C" {
649    pub fn transcribe_stream_begin(
650        session: *mut transcribe_session,
651        run_params: *const transcribe_run_params,
652        stream_params: *const transcribe_stream_params,
653    ) -> transcribe_status;
654}
655unsafe extern "C" {
656    pub fn transcribe_stream_feed(
657        session: *mut transcribe_session,
658        pcm: *const f32,
659        n_samples: ::std::os::raw::c_int,
660        update: *mut transcribe_stream_update,
661    ) -> transcribe_status;
662}
663unsafe extern "C" {
664    pub fn transcribe_stream_finalize(
665        session: *mut transcribe_session,
666        update: *mut transcribe_stream_update,
667    ) -> transcribe_status;
668}
669unsafe extern "C" {
670    pub fn transcribe_stream_reset(session: *mut transcribe_session);
671}
672unsafe extern "C" {
673    pub fn transcribe_stream_get_state(
674        session: *const transcribe_session,
675    ) -> transcribe_stream_state;
676}
677unsafe extern "C" {
678    pub fn transcribe_stream_revision(session: *const transcribe_session) -> ::std::os::raw::c_int;
679}
680unsafe extern "C" {
681    pub fn transcribe_stream_n_committed_segments(
682        session: *const transcribe_session,
683    ) -> ::std::os::raw::c_int;
684}
685unsafe extern "C" {
686    pub fn transcribe_stream_n_committed_words(
687        session: *const transcribe_session,
688    ) -> ::std::os::raw::c_int;
689}
690unsafe extern "C" {
691    pub fn transcribe_stream_n_committed_tokens(
692        session: *const transcribe_session,
693    ) -> ::std::os::raw::c_int;
694}
695unsafe extern "C" {
696    pub fn transcribe_stream_last_status(session: *const transcribe_session) -> transcribe_status;
697}
698unsafe extern "C" {
699    pub fn transcribe_tokenize(
700        model: *const transcribe_model,
701        text: *const ::std::os::raw::c_char,
702        tokens: *mut i32,
703        n_max: usize,
704    ) -> ::std::os::raw::c_int;
705}
706#[repr(C)]
707#[derive(Debug, Copy, Clone)]
708pub struct transcribe_timings {
709    pub struct_size: u64,
710    pub load_ms: f32,
711    pub mel_ms: f32,
712    pub encode_ms: f32,
713    pub decode_ms: f32,
714}
715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
716const _: () = {
717    ["Size of transcribe_timings"][::std::mem::size_of::<transcribe_timings>() - 24usize];
718    ["Alignment of transcribe_timings"][::std::mem::align_of::<transcribe_timings>() - 8usize];
719    ["Offset of field: transcribe_timings::struct_size"]
720        [::std::mem::offset_of!(transcribe_timings, struct_size) - 0usize];
721    ["Offset of field: transcribe_timings::load_ms"]
722        [::std::mem::offset_of!(transcribe_timings, load_ms) - 8usize];
723    ["Offset of field: transcribe_timings::mel_ms"]
724        [::std::mem::offset_of!(transcribe_timings, mel_ms) - 12usize];
725    ["Offset of field: transcribe_timings::encode_ms"]
726        [::std::mem::offset_of!(transcribe_timings, encode_ms) - 16usize];
727    ["Offset of field: transcribe_timings::decode_ms"]
728        [::std::mem::offset_of!(transcribe_timings, decode_ms) - 20usize];
729};
730unsafe extern "C" {
731    pub fn transcribe_timings_init(out: *mut transcribe_timings);
732}
733unsafe extern "C" {
734    pub fn transcribe_get_timings(
735        session: *const transcribe_session,
736        out_timings: *mut transcribe_timings,
737    ) -> transcribe_status;
738}
739unsafe extern "C" {
740    pub fn transcribe_print_timings(session: *const transcribe_session);
741}
742unsafe extern "C" {
743    pub fn transcribe_reset_timings(session: *mut transcribe_session);
744}
745unsafe extern "C" {
746    pub fn transcribe_full_text(
747        session: *const transcribe_session,
748    ) -> *const ::std::os::raw::c_char;
749}
750unsafe extern "C" {
751    pub fn transcribe_returned_timestamp_kind(
752        session: *const transcribe_session,
753    ) -> transcribe_timestamp_kind;
754}
755unsafe extern "C" {
756    pub fn transcribe_n_segments(session: *const transcribe_session) -> ::std::os::raw::c_int;
757}
758unsafe extern "C" {
759    pub fn transcribe_n_words(session: *const transcribe_session) -> ::std::os::raw::c_int;
760}
761unsafe extern "C" {
762    pub fn transcribe_n_tokens(session: *const transcribe_session) -> ::std::os::raw::c_int;
763}
764unsafe extern "C" {
765    pub fn transcribe_detected_language(
766        session: *const transcribe_session,
767    ) -> *const ::std::os::raw::c_char;
768}
769#[repr(C)]
770#[derive(Debug, Copy, Clone)]
771pub struct transcribe_segment {
772    pub struct_size: u64,
773    pub t0_ms: i64,
774    pub t1_ms: i64,
775    pub first_word: ::std::os::raw::c_int,
776    pub n_words: ::std::os::raw::c_int,
777    pub first_token: ::std::os::raw::c_int,
778    pub n_tokens: ::std::os::raw::c_int,
779    pub text: *const ::std::os::raw::c_char,
780}
781#[allow(clippy::unnecessary_operation, clippy::identity_op)]
782const _: () = {
783    ["Size of transcribe_segment"][::std::mem::size_of::<transcribe_segment>() - 48usize];
784    ["Alignment of transcribe_segment"][::std::mem::align_of::<transcribe_segment>() - 8usize];
785    ["Offset of field: transcribe_segment::struct_size"]
786        [::std::mem::offset_of!(transcribe_segment, struct_size) - 0usize];
787    ["Offset of field: transcribe_segment::t0_ms"]
788        [::std::mem::offset_of!(transcribe_segment, t0_ms) - 8usize];
789    ["Offset of field: transcribe_segment::t1_ms"]
790        [::std::mem::offset_of!(transcribe_segment, t1_ms) - 16usize];
791    ["Offset of field: transcribe_segment::first_word"]
792        [::std::mem::offset_of!(transcribe_segment, first_word) - 24usize];
793    ["Offset of field: transcribe_segment::n_words"]
794        [::std::mem::offset_of!(transcribe_segment, n_words) - 28usize];
795    ["Offset of field: transcribe_segment::first_token"]
796        [::std::mem::offset_of!(transcribe_segment, first_token) - 32usize];
797    ["Offset of field: transcribe_segment::n_tokens"]
798        [::std::mem::offset_of!(transcribe_segment, n_tokens) - 36usize];
799    ["Offset of field: transcribe_segment::text"]
800        [::std::mem::offset_of!(transcribe_segment, text) - 40usize];
801};
802unsafe extern "C" {
803    pub fn transcribe_segment_init(out: *mut transcribe_segment);
804}
805#[repr(C)]
806#[derive(Debug, Copy, Clone)]
807pub struct transcribe_word {
808    pub struct_size: u64,
809    pub t0_ms: i64,
810    pub t1_ms: i64,
811    pub seg_index: ::std::os::raw::c_int,
812    pub first_token: ::std::os::raw::c_int,
813    pub n_tokens: ::std::os::raw::c_int,
814    pub text: *const ::std::os::raw::c_char,
815}
816#[allow(clippy::unnecessary_operation, clippy::identity_op)]
817const _: () = {
818    ["Size of transcribe_word"][::std::mem::size_of::<transcribe_word>() - 48usize];
819    ["Alignment of transcribe_word"][::std::mem::align_of::<transcribe_word>() - 8usize];
820    ["Offset of field: transcribe_word::struct_size"]
821        [::std::mem::offset_of!(transcribe_word, struct_size) - 0usize];
822    ["Offset of field: transcribe_word::t0_ms"]
823        [::std::mem::offset_of!(transcribe_word, t0_ms) - 8usize];
824    ["Offset of field: transcribe_word::t1_ms"]
825        [::std::mem::offset_of!(transcribe_word, t1_ms) - 16usize];
826    ["Offset of field: transcribe_word::seg_index"]
827        [::std::mem::offset_of!(transcribe_word, seg_index) - 24usize];
828    ["Offset of field: transcribe_word::first_token"]
829        [::std::mem::offset_of!(transcribe_word, first_token) - 28usize];
830    ["Offset of field: transcribe_word::n_tokens"]
831        [::std::mem::offset_of!(transcribe_word, n_tokens) - 32usize];
832    ["Offset of field: transcribe_word::text"]
833        [::std::mem::offset_of!(transcribe_word, text) - 40usize];
834};
835unsafe extern "C" {
836    pub fn transcribe_word_init(out: *mut transcribe_word);
837}
838#[repr(C)]
839#[derive(Debug, Copy, Clone)]
840pub struct transcribe_token {
841    pub struct_size: u64,
842    pub id: ::std::os::raw::c_int,
843    pub p: f32,
844    pub t0_ms: i64,
845    pub t1_ms: i64,
846    pub seg_index: ::std::os::raw::c_int,
847    pub word_index: ::std::os::raw::c_int,
848    pub text: *const ::std::os::raw::c_char,
849}
850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
851const _: () = {
852    ["Size of transcribe_token"][::std::mem::size_of::<transcribe_token>() - 48usize];
853    ["Alignment of transcribe_token"][::std::mem::align_of::<transcribe_token>() - 8usize];
854    ["Offset of field: transcribe_token::struct_size"]
855        [::std::mem::offset_of!(transcribe_token, struct_size) - 0usize];
856    ["Offset of field: transcribe_token::id"]
857        [::std::mem::offset_of!(transcribe_token, id) - 8usize];
858    ["Offset of field: transcribe_token::p"][::std::mem::offset_of!(transcribe_token, p) - 12usize];
859    ["Offset of field: transcribe_token::t0_ms"]
860        [::std::mem::offset_of!(transcribe_token, t0_ms) - 16usize];
861    ["Offset of field: transcribe_token::t1_ms"]
862        [::std::mem::offset_of!(transcribe_token, t1_ms) - 24usize];
863    ["Offset of field: transcribe_token::seg_index"]
864        [::std::mem::offset_of!(transcribe_token, seg_index) - 32usize];
865    ["Offset of field: transcribe_token::word_index"]
866        [::std::mem::offset_of!(transcribe_token, word_index) - 36usize];
867    ["Offset of field: transcribe_token::text"]
868        [::std::mem::offset_of!(transcribe_token, text) - 40usize];
869};
870unsafe extern "C" {
871    pub fn transcribe_token_init(out: *mut transcribe_token);
872}
873unsafe extern "C" {
874    pub fn transcribe_get_segment(
875        session: *const transcribe_session,
876        i: ::std::os::raw::c_int,
877        out: *mut transcribe_segment,
878    ) -> transcribe_status;
879}
880unsafe extern "C" {
881    pub fn transcribe_get_word(
882        session: *const transcribe_session,
883        i: ::std::os::raw::c_int,
884        out: *mut transcribe_word,
885    ) -> transcribe_status;
886}
887unsafe extern "C" {
888    pub fn transcribe_get_token(
889        session: *const transcribe_session,
890        i: ::std::os::raw::c_int,
891        out: *mut transcribe_token,
892    ) -> transcribe_status;
893}
894unsafe extern "C" {
895    pub fn transcribe_batch_n_results(session: *const transcribe_session) -> ::std::os::raw::c_int;
896}
897unsafe extern "C" {
898    pub fn transcribe_batch_status(
899        session: *const transcribe_session,
900        i: ::std::os::raw::c_int,
901    ) -> transcribe_status;
902}
903unsafe extern "C" {
904    pub fn transcribe_batch_full_text(
905        session: *const transcribe_session,
906        i: ::std::os::raw::c_int,
907    ) -> *const ::std::os::raw::c_char;
908}
909unsafe extern "C" {
910    pub fn transcribe_batch_returned_timestamp_kind(
911        session: *const transcribe_session,
912        i: ::std::os::raw::c_int,
913    ) -> transcribe_timestamp_kind;
914}
915unsafe extern "C" {
916    pub fn transcribe_batch_detected_language(
917        session: *const transcribe_session,
918        i: ::std::os::raw::c_int,
919    ) -> *const ::std::os::raw::c_char;
920}
921unsafe extern "C" {
922    pub fn transcribe_batch_n_segments(
923        session: *const transcribe_session,
924        i: ::std::os::raw::c_int,
925    ) -> ::std::os::raw::c_int;
926}
927unsafe extern "C" {
928    pub fn transcribe_batch_n_words(
929        session: *const transcribe_session,
930        i: ::std::os::raw::c_int,
931    ) -> ::std::os::raw::c_int;
932}
933unsafe extern "C" {
934    pub fn transcribe_batch_n_tokens(
935        session: *const transcribe_session,
936        i: ::std::os::raw::c_int,
937    ) -> ::std::os::raw::c_int;
938}
939unsafe extern "C" {
940    pub fn transcribe_batch_get_segment(
941        session: *const transcribe_session,
942        i: ::std::os::raw::c_int,
943        j: ::std::os::raw::c_int,
944        out: *mut transcribe_segment,
945    ) -> transcribe_status;
946}
947unsafe extern "C" {
948    pub fn transcribe_batch_get_word(
949        session: *const transcribe_session,
950        i: ::std::os::raw::c_int,
951        j: ::std::os::raw::c_int,
952        out: *mut transcribe_word,
953    ) -> transcribe_status;
954}
955unsafe extern "C" {
956    pub fn transcribe_batch_get_token(
957        session: *const transcribe_session,
958        i: ::std::os::raw::c_int,
959        j: ::std::os::raw::c_int,
960        out: *mut transcribe_token,
961    ) -> transcribe_status;
962}
963unsafe extern "C" {
964    pub fn transcribe_batch_get_timings(
965        session: *const transcribe_session,
966        i: ::std::os::raw::c_int,
967        out: *mut transcribe_timings,
968    ) -> transcribe_status;
969}
970#[repr(C)]
971#[derive(Debug, Copy, Clone)]
972pub struct transcribe_moonshine_streaming_stream_ext {
973    pub ext: transcribe_ext,
974    pub min_decode_interval_ms: i32,
975}
976#[allow(clippy::unnecessary_operation, clippy::identity_op)]
977const _: () = {
978    ["Size of transcribe_moonshine_streaming_stream_ext"]
979        [::std::mem::size_of::<transcribe_moonshine_streaming_stream_ext>() - 24usize];
980    ["Alignment of transcribe_moonshine_streaming_stream_ext"]
981        [::std::mem::align_of::<transcribe_moonshine_streaming_stream_ext>() - 8usize];
982    ["Offset of field: transcribe_moonshine_streaming_stream_ext::ext"]
983        [::std::mem::offset_of!(transcribe_moonshine_streaming_stream_ext, ext) - 0usize];
984    ["Offset of field: transcribe_moonshine_streaming_stream_ext::min_decode_interval_ms"][::std::mem::offset_of!(
985        transcribe_moonshine_streaming_stream_ext,
986        min_decode_interval_ms
987    )
988        - 16usize];
989};
990unsafe extern "C" {
991    pub fn transcribe_moonshine_streaming_stream_ext_init(
992        ext: *mut transcribe_moonshine_streaming_stream_ext,
993    );
994}
995#[repr(C)]
996#[derive(Debug, Copy, Clone)]
997pub struct transcribe_parakeet_stream_ext {
998    pub ext: transcribe_ext,
999    pub att_context_right: i32,
1000}
1001#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1002const _: () = {
1003    ["Size of transcribe_parakeet_stream_ext"]
1004        [::std::mem::size_of::<transcribe_parakeet_stream_ext>() - 24usize];
1005    ["Alignment of transcribe_parakeet_stream_ext"]
1006        [::std::mem::align_of::<transcribe_parakeet_stream_ext>() - 8usize];
1007    ["Offset of field: transcribe_parakeet_stream_ext::ext"]
1008        [::std::mem::offset_of!(transcribe_parakeet_stream_ext, ext) - 0usize];
1009    ["Offset of field: transcribe_parakeet_stream_ext::att_context_right"]
1010        [::std::mem::offset_of!(transcribe_parakeet_stream_ext, att_context_right) - 16usize];
1011};
1012unsafe extern "C" {
1013    pub fn transcribe_parakeet_stream_ext_init(ext: *mut transcribe_parakeet_stream_ext);
1014}
1015#[repr(C)]
1016#[derive(Debug, Copy, Clone)]
1017pub struct transcribe_parakeet_buffered_stream_ext {
1018    pub ext: transcribe_ext,
1019    pub left_ms: i32,
1020    pub chunk_ms: i32,
1021    pub right_ms: i32,
1022}
1023#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1024const _: () = {
1025    ["Size of transcribe_parakeet_buffered_stream_ext"]
1026        [::std::mem::size_of::<transcribe_parakeet_buffered_stream_ext>() - 32usize];
1027    ["Alignment of transcribe_parakeet_buffered_stream_ext"]
1028        [::std::mem::align_of::<transcribe_parakeet_buffered_stream_ext>() - 8usize];
1029    ["Offset of field: transcribe_parakeet_buffered_stream_ext::ext"]
1030        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, ext) - 0usize];
1031    ["Offset of field: transcribe_parakeet_buffered_stream_ext::left_ms"]
1032        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, left_ms) - 16usize];
1033    ["Offset of field: transcribe_parakeet_buffered_stream_ext::chunk_ms"]
1034        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, chunk_ms) - 20usize];
1035    ["Offset of field: transcribe_parakeet_buffered_stream_ext::right_ms"]
1036        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, right_ms) - 24usize];
1037};
1038unsafe extern "C" {
1039    pub fn transcribe_parakeet_buffered_stream_ext_init(
1040        ext: *mut transcribe_parakeet_buffered_stream_ext,
1041    );
1042}
1043#[repr(C)]
1044#[derive(Debug, Copy, Clone)]
1045pub struct transcribe_voxtral_realtime_stream_ext {
1046    pub ext: transcribe_ext,
1047    pub num_delay_tokens: i32,
1048    pub min_decode_interval_ms: i32,
1049}
1050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1051const _: () = {
1052    ["Size of transcribe_voxtral_realtime_stream_ext"]
1053        [::std::mem::size_of::<transcribe_voxtral_realtime_stream_ext>() - 24usize];
1054    ["Alignment of transcribe_voxtral_realtime_stream_ext"]
1055        [::std::mem::align_of::<transcribe_voxtral_realtime_stream_ext>() - 8usize];
1056    ["Offset of field: transcribe_voxtral_realtime_stream_ext::ext"]
1057        [::std::mem::offset_of!(transcribe_voxtral_realtime_stream_ext, ext) - 0usize];
1058    ["Offset of field: transcribe_voxtral_realtime_stream_ext::num_delay_tokens"][::std::mem::offset_of!(
1059        transcribe_voxtral_realtime_stream_ext,
1060        num_delay_tokens
1061    ) - 16usize];
1062    ["Offset of field: transcribe_voxtral_realtime_stream_ext::min_decode_interval_ms"][::std::mem::offset_of!(
1063        transcribe_voxtral_realtime_stream_ext,
1064        min_decode_interval_ms
1065    )
1066        - 20usize];
1067};
1068unsafe extern "C" {
1069    pub fn transcribe_voxtral_realtime_stream_ext_init(
1070        ext: *mut transcribe_voxtral_realtime_stream_ext,
1071    );
1072}
1073impl transcribe_whisper_prompt_condition {
1074    pub const TRANSCRIBE_WHISPER_PROMPT_FIRST_SEGMENT: transcribe_whisper_prompt_condition =
1075        transcribe_whisper_prompt_condition(0);
1076    pub const TRANSCRIBE_WHISPER_PROMPT_ALL_SEGMENTS: transcribe_whisper_prompt_condition =
1077        transcribe_whisper_prompt_condition(1);
1078}
1079#[repr(transparent)]
1080#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1081pub struct transcribe_whisper_prompt_condition(pub ::std::os::raw::c_uint);
1082#[repr(C)]
1083#[derive(Debug, Copy, Clone)]
1084pub struct transcribe_whisper_run_ext {
1085    pub ext: transcribe_ext,
1086    pub initial_prompt: *const ::std::os::raw::c_char,
1087    pub prompt_tokens: *const i32,
1088    pub n_prompt_tokens: usize,
1089    pub prompt_condition: transcribe_whisper_prompt_condition,
1090    pub condition_on_prev_tokens: bool,
1091    pub max_prev_context_tokens: i32,
1092    pub temperature: f32,
1093    pub temperature_inc: f32,
1094    pub compression_ratio_thold: f32,
1095    pub logprob_thold: f32,
1096    pub no_speech_thold: f32,
1097    pub seed: u32,
1098    pub max_initial_timestamp: f32,
1099}
1100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1101const _: () = {
1102    ["Size of transcribe_whisper_run_ext"]
1103        [::std::mem::size_of::<transcribe_whisper_run_ext>() - 80usize];
1104    ["Alignment of transcribe_whisper_run_ext"]
1105        [::std::mem::align_of::<transcribe_whisper_run_ext>() - 8usize];
1106    ["Offset of field: transcribe_whisper_run_ext::ext"]
1107        [::std::mem::offset_of!(transcribe_whisper_run_ext, ext) - 0usize];
1108    ["Offset of field: transcribe_whisper_run_ext::initial_prompt"]
1109        [::std::mem::offset_of!(transcribe_whisper_run_ext, initial_prompt) - 16usize];
1110    ["Offset of field: transcribe_whisper_run_ext::prompt_tokens"]
1111        [::std::mem::offset_of!(transcribe_whisper_run_ext, prompt_tokens) - 24usize];
1112    ["Offset of field: transcribe_whisper_run_ext::n_prompt_tokens"]
1113        [::std::mem::offset_of!(transcribe_whisper_run_ext, n_prompt_tokens) - 32usize];
1114    ["Offset of field: transcribe_whisper_run_ext::prompt_condition"]
1115        [::std::mem::offset_of!(transcribe_whisper_run_ext, prompt_condition) - 40usize];
1116    ["Offset of field: transcribe_whisper_run_ext::condition_on_prev_tokens"]
1117        [::std::mem::offset_of!(transcribe_whisper_run_ext, condition_on_prev_tokens) - 44usize];
1118    ["Offset of field: transcribe_whisper_run_ext::max_prev_context_tokens"]
1119        [::std::mem::offset_of!(transcribe_whisper_run_ext, max_prev_context_tokens) - 48usize];
1120    ["Offset of field: transcribe_whisper_run_ext::temperature"]
1121        [::std::mem::offset_of!(transcribe_whisper_run_ext, temperature) - 52usize];
1122    ["Offset of field: transcribe_whisper_run_ext::temperature_inc"]
1123        [::std::mem::offset_of!(transcribe_whisper_run_ext, temperature_inc) - 56usize];
1124    ["Offset of field: transcribe_whisper_run_ext::compression_ratio_thold"]
1125        [::std::mem::offset_of!(transcribe_whisper_run_ext, compression_ratio_thold) - 60usize];
1126    ["Offset of field: transcribe_whisper_run_ext::logprob_thold"]
1127        [::std::mem::offset_of!(transcribe_whisper_run_ext, logprob_thold) - 64usize];
1128    ["Offset of field: transcribe_whisper_run_ext::no_speech_thold"]
1129        [::std::mem::offset_of!(transcribe_whisper_run_ext, no_speech_thold) - 68usize];
1130    ["Offset of field: transcribe_whisper_run_ext::seed"]
1131        [::std::mem::offset_of!(transcribe_whisper_run_ext, seed) - 72usize];
1132    ["Offset of field: transcribe_whisper_run_ext::max_initial_timestamp"]
1133        [::std::mem::offset_of!(transcribe_whisper_run_ext, max_initial_timestamp) - 76usize];
1134};
1135unsafe extern "C" {
1136    pub fn transcribe_whisper_run_ext_init(ext: *mut transcribe_whisper_run_ext);
1137}
1138#[repr(C)]
1139#[derive(Debug, Copy, Clone)]
1140pub struct transcribe_whisper_chunk_trace {
1141    pub struct_size: u64,
1142    pub t0_ms: i64,
1143    pub t1_ms: i64,
1144    pub temperature_used: f32,
1145    pub compression_ratio: f32,
1146    pub avg_logprob: f32,
1147    pub no_speech_prob: f32,
1148    pub no_speech_triggered: bool,
1149    pub n_fallbacks: i32,
1150}
1151#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1152const _: () = {
1153    ["Size of transcribe_whisper_chunk_trace"]
1154        [::std::mem::size_of::<transcribe_whisper_chunk_trace>() - 48usize];
1155    ["Alignment of transcribe_whisper_chunk_trace"]
1156        [::std::mem::align_of::<transcribe_whisper_chunk_trace>() - 8usize];
1157    ["Offset of field: transcribe_whisper_chunk_trace::struct_size"]
1158        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, struct_size) - 0usize];
1159    ["Offset of field: transcribe_whisper_chunk_trace::t0_ms"]
1160        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, t0_ms) - 8usize];
1161    ["Offset of field: transcribe_whisper_chunk_trace::t1_ms"]
1162        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, t1_ms) - 16usize];
1163    ["Offset of field: transcribe_whisper_chunk_trace::temperature_used"]
1164        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, temperature_used) - 24usize];
1165    ["Offset of field: transcribe_whisper_chunk_trace::compression_ratio"]
1166        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, compression_ratio) - 28usize];
1167    ["Offset of field: transcribe_whisper_chunk_trace::avg_logprob"]
1168        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, avg_logprob) - 32usize];
1169    ["Offset of field: transcribe_whisper_chunk_trace::no_speech_prob"]
1170        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, no_speech_prob) - 36usize];
1171    ["Offset of field: transcribe_whisper_chunk_trace::no_speech_triggered"]
1172        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, no_speech_triggered) - 40usize];
1173    ["Offset of field: transcribe_whisper_chunk_trace::n_fallbacks"]
1174        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, n_fallbacks) - 44usize];
1175};
1176unsafe extern "C" {
1177    pub fn transcribe_whisper_chunk_trace_init(out: *mut transcribe_whisper_chunk_trace);
1178}
1179unsafe extern "C" {
1180    pub fn transcribe_get_whisper_chunk_count(
1181        session: *const transcribe_session,
1182    ) -> ::std::os::raw::c_int;
1183}
1184unsafe extern "C" {
1185    pub fn transcribe_get_whisper_chunk_trace(
1186        session: *const transcribe_session,
1187        i: ::std::os::raw::c_int,
1188        out_trace: *mut transcribe_whisper_chunk_trace,
1189    ) -> transcribe_status;
1190}