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