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 = 86b16dd97ad1cb58
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 = "86b16dd97ad1cb58";
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}
208impl transcribe_device_type {
209    pub const TRANSCRIBE_DEVICE_TYPE_CPU: transcribe_device_type = transcribe_device_type(0);
210    pub const TRANSCRIBE_DEVICE_TYPE_GPU: transcribe_device_type = transcribe_device_type(1);
211    pub const TRANSCRIBE_DEVICE_TYPE_IGPU: transcribe_device_type = transcribe_device_type(2);
212    pub const TRANSCRIBE_DEVICE_TYPE_ACCEL: transcribe_device_type = transcribe_device_type(3);
213}
214#[repr(transparent)]
215#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
216pub struct transcribe_device_type(pub ::std::os::raw::c_uint);
217#[repr(C)]
218#[derive(Debug, Copy, Clone)]
219pub struct transcribe_backend_device {
220    pub struct_size: u64,
221    pub name: *const ::std::os::raw::c_char,
222    pub description: *const ::std::os::raw::c_char,
223    pub kind: *const ::std::os::raw::c_char,
224    pub device_id: *const ::std::os::raw::c_char,
225    pub memory_total: u64,
226    pub memory_free: u64,
227    pub device_type: transcribe_device_type,
228}
229#[allow(clippy::unnecessary_operation, clippy::identity_op)]
230const _: () = {
231    ["Size of transcribe_backend_device"]
232        [::std::mem::size_of::<transcribe_backend_device>() - 64usize];
233    ["Alignment of transcribe_backend_device"]
234        [::std::mem::align_of::<transcribe_backend_device>() - 8usize];
235    ["Offset of field: transcribe_backend_device::struct_size"]
236        [::std::mem::offset_of!(transcribe_backend_device, struct_size) - 0usize];
237    ["Offset of field: transcribe_backend_device::name"]
238        [::std::mem::offset_of!(transcribe_backend_device, name) - 8usize];
239    ["Offset of field: transcribe_backend_device::description"]
240        [::std::mem::offset_of!(transcribe_backend_device, description) - 16usize];
241    ["Offset of field: transcribe_backend_device::kind"]
242        [::std::mem::offset_of!(transcribe_backend_device, kind) - 24usize];
243    ["Offset of field: transcribe_backend_device::device_id"]
244        [::std::mem::offset_of!(transcribe_backend_device, device_id) - 32usize];
245    ["Offset of field: transcribe_backend_device::memory_total"]
246        [::std::mem::offset_of!(transcribe_backend_device, memory_total) - 40usize];
247    ["Offset of field: transcribe_backend_device::memory_free"]
248        [::std::mem::offset_of!(transcribe_backend_device, memory_free) - 48usize];
249    ["Offset of field: transcribe_backend_device::device_type"]
250        [::std::mem::offset_of!(transcribe_backend_device, device_type) - 56usize];
251};
252unsafe extern "C" {
253    pub fn transcribe_backend_device_init(p: *mut transcribe_backend_device);
254}
255unsafe extern "C" {
256    pub fn transcribe_get_backend_device(
257        index: ::std::os::raw::c_int,
258        out: *mut transcribe_backend_device,
259    ) -> transcribe_status;
260}
261unsafe extern "C" {
262    pub fn transcribe_backend_available(kind: transcribe_backend_request) -> bool;
263}
264unsafe extern "C" {
265    pub fn transcribe_model_get_device(
266        model: *const transcribe_model,
267        out: *mut transcribe_backend_device,
268    ) -> transcribe_status;
269}
270#[repr(C)]
271#[derive(Debug, Copy, Clone)]
272pub struct transcribe_model_load_params {
273    pub struct_size: u64,
274    pub backend: transcribe_backend_request,
275    pub gpu_device: ::std::os::raw::c_int,
276}
277#[allow(clippy::unnecessary_operation, clippy::identity_op)]
278const _: () = {
279    ["Size of transcribe_model_load_params"]
280        [::std::mem::size_of::<transcribe_model_load_params>() - 16usize];
281    ["Alignment of transcribe_model_load_params"]
282        [::std::mem::align_of::<transcribe_model_load_params>() - 8usize];
283    ["Offset of field: transcribe_model_load_params::struct_size"]
284        [::std::mem::offset_of!(transcribe_model_load_params, struct_size) - 0usize];
285    ["Offset of field: transcribe_model_load_params::backend"]
286        [::std::mem::offset_of!(transcribe_model_load_params, backend) - 8usize];
287    ["Offset of field: transcribe_model_load_params::gpu_device"]
288        [::std::mem::offset_of!(transcribe_model_load_params, gpu_device) - 12usize];
289};
290unsafe extern "C" {
291    pub fn transcribe_model_load_params_init(params: *mut transcribe_model_load_params);
292}
293#[repr(C)]
294#[derive(Debug, Copy, Clone)]
295pub struct transcribe_session_params {
296    pub struct_size: u64,
297    pub n_threads: ::std::os::raw::c_int,
298    pub kv_type: transcribe_kv_type,
299    pub n_ctx: i32,
300}
301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
302const _: () = {
303    ["Size of transcribe_session_params"]
304        [::std::mem::size_of::<transcribe_session_params>() - 24usize];
305    ["Alignment of transcribe_session_params"]
306        [::std::mem::align_of::<transcribe_session_params>() - 8usize];
307    ["Offset of field: transcribe_session_params::struct_size"]
308        [::std::mem::offset_of!(transcribe_session_params, struct_size) - 0usize];
309    ["Offset of field: transcribe_session_params::n_threads"]
310        [::std::mem::offset_of!(transcribe_session_params, n_threads) - 8usize];
311    ["Offset of field: transcribe_session_params::kv_type"]
312        [::std::mem::offset_of!(transcribe_session_params, kv_type) - 12usize];
313    ["Offset of field: transcribe_session_params::n_ctx"]
314        [::std::mem::offset_of!(transcribe_session_params, n_ctx) - 16usize];
315};
316unsafe extern "C" {
317    pub fn transcribe_session_params_init(params: *mut transcribe_session_params);
318}
319#[repr(C)]
320#[derive(Debug, Copy, Clone)]
321pub struct transcribe_run_params {
322    pub struct_size: u64,
323    pub task: transcribe_task,
324    pub timestamps: transcribe_timestamp_kind,
325    pub pnc: transcribe_pnc_mode,
326    pub itn: transcribe_itn_mode,
327    pub language: *const ::std::os::raw::c_char,
328    pub target_language: *const ::std::os::raw::c_char,
329    pub keep_special_tags: bool,
330    pub family: *const transcribe_ext,
331    pub spec_k_drafts: i32,
332}
333#[allow(clippy::unnecessary_operation, clippy::identity_op)]
334const _: () = {
335    ["Size of transcribe_run_params"][::std::mem::size_of::<transcribe_run_params>() - 64usize];
336    ["Alignment of transcribe_run_params"]
337        [::std::mem::align_of::<transcribe_run_params>() - 8usize];
338    ["Offset of field: transcribe_run_params::struct_size"]
339        [::std::mem::offset_of!(transcribe_run_params, struct_size) - 0usize];
340    ["Offset of field: transcribe_run_params::task"]
341        [::std::mem::offset_of!(transcribe_run_params, task) - 8usize];
342    ["Offset of field: transcribe_run_params::timestamps"]
343        [::std::mem::offset_of!(transcribe_run_params, timestamps) - 12usize];
344    ["Offset of field: transcribe_run_params::pnc"]
345        [::std::mem::offset_of!(transcribe_run_params, pnc) - 16usize];
346    ["Offset of field: transcribe_run_params::itn"]
347        [::std::mem::offset_of!(transcribe_run_params, itn) - 20usize];
348    ["Offset of field: transcribe_run_params::language"]
349        [::std::mem::offset_of!(transcribe_run_params, language) - 24usize];
350    ["Offset of field: transcribe_run_params::target_language"]
351        [::std::mem::offset_of!(transcribe_run_params, target_language) - 32usize];
352    ["Offset of field: transcribe_run_params::keep_special_tags"]
353        [::std::mem::offset_of!(transcribe_run_params, keep_special_tags) - 40usize];
354    ["Offset of field: transcribe_run_params::family"]
355        [::std::mem::offset_of!(transcribe_run_params, family) - 48usize];
356    ["Offset of field: transcribe_run_params::spec_k_drafts"]
357        [::std::mem::offset_of!(transcribe_run_params, spec_k_drafts) - 56usize];
358};
359unsafe extern "C" {
360    pub fn transcribe_run_params_init(params: *mut transcribe_run_params);
361}
362#[repr(C)]
363#[derive(Debug, Copy, Clone)]
364pub struct transcribe_capabilities {
365    pub struct_size: u64,
366    pub native_sample_rate: i32,
367    pub n_languages: ::std::os::raw::c_int,
368    pub languages: *const *const ::std::os::raw::c_char,
369    pub max_timestamp_kind: transcribe_timestamp_kind,
370    pub supports_language_detect: bool,
371    pub supports_translate: bool,
372    pub supports_streaming: bool,
373    pub supports_spec_decode: bool,
374    pub max_audio_ms: i64,
375    pub n_translate_target_languages: ::std::os::raw::c_int,
376    pub translate_target_languages: *const *const ::std::os::raw::c_char,
377}
378#[allow(clippy::unnecessary_operation, clippy::identity_op)]
379const _: () = {
380    ["Size of transcribe_capabilities"][::std::mem::size_of::<transcribe_capabilities>() - 56usize];
381    ["Alignment of transcribe_capabilities"]
382        [::std::mem::align_of::<transcribe_capabilities>() - 8usize];
383    ["Offset of field: transcribe_capabilities::struct_size"]
384        [::std::mem::offset_of!(transcribe_capabilities, struct_size) - 0usize];
385    ["Offset of field: transcribe_capabilities::native_sample_rate"]
386        [::std::mem::offset_of!(transcribe_capabilities, native_sample_rate) - 8usize];
387    ["Offset of field: transcribe_capabilities::n_languages"]
388        [::std::mem::offset_of!(transcribe_capabilities, n_languages) - 12usize];
389    ["Offset of field: transcribe_capabilities::languages"]
390        [::std::mem::offset_of!(transcribe_capabilities, languages) - 16usize];
391    ["Offset of field: transcribe_capabilities::max_timestamp_kind"]
392        [::std::mem::offset_of!(transcribe_capabilities, max_timestamp_kind) - 24usize];
393    ["Offset of field: transcribe_capabilities::supports_language_detect"]
394        [::std::mem::offset_of!(transcribe_capabilities, supports_language_detect) - 28usize];
395    ["Offset of field: transcribe_capabilities::supports_translate"]
396        [::std::mem::offset_of!(transcribe_capabilities, supports_translate) - 29usize];
397    ["Offset of field: transcribe_capabilities::supports_streaming"]
398        [::std::mem::offset_of!(transcribe_capabilities, supports_streaming) - 30usize];
399    ["Offset of field: transcribe_capabilities::supports_spec_decode"]
400        [::std::mem::offset_of!(transcribe_capabilities, supports_spec_decode) - 31usize];
401    ["Offset of field: transcribe_capabilities::max_audio_ms"]
402        [::std::mem::offset_of!(transcribe_capabilities, max_audio_ms) - 32usize];
403    ["Offset of field: transcribe_capabilities::n_translate_target_languages"]
404        [::std::mem::offset_of!(transcribe_capabilities, n_translate_target_languages) - 40usize];
405    ["Offset of field: transcribe_capabilities::translate_target_languages"]
406        [::std::mem::offset_of!(transcribe_capabilities, translate_target_languages) - 48usize];
407};
408unsafe extern "C" {
409    pub fn transcribe_capabilities_init(out: *mut transcribe_capabilities);
410}
411unsafe extern "C" {
412    pub fn transcribe_model_get_capabilities(
413        model: *const transcribe_model,
414        out_caps: *mut transcribe_capabilities,
415    ) -> transcribe_status;
416}
417impl transcribe_feature {
418    pub const TRANSCRIBE_FEATURE_INITIAL_PROMPT: transcribe_feature = transcribe_feature(0);
419    pub const TRANSCRIBE_FEATURE_TEMPERATURE_FALLBACK: transcribe_feature = transcribe_feature(1);
420    pub const TRANSCRIBE_FEATURE_LONG_FORM: transcribe_feature = transcribe_feature(2);
421    pub const TRANSCRIBE_FEATURE_CANCELLATION: transcribe_feature = transcribe_feature(3);
422    pub const TRANSCRIBE_FEATURE_PNC: transcribe_feature = transcribe_feature(4);
423    pub const TRANSCRIBE_FEATURE_ITN: transcribe_feature = transcribe_feature(5);
424}
425#[repr(transparent)]
426#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
427pub struct transcribe_feature(pub ::std::os::raw::c_uint);
428unsafe extern "C" {
429    pub fn transcribe_model_supports(
430        model: *const transcribe_model,
431        feature: transcribe_feature,
432    ) -> bool;
433}
434unsafe extern "C" {
435    pub fn transcribe_model_arch_string(
436        model: *const transcribe_model,
437    ) -> *const ::std::os::raw::c_char;
438}
439unsafe extern "C" {
440    pub fn transcribe_model_variant_string(
441        model: *const transcribe_model,
442    ) -> *const ::std::os::raw::c_char;
443}
444unsafe extern "C" {
445    pub fn transcribe_model_backend(
446        model: *const transcribe_model,
447    ) -> *const ::std::os::raw::c_char;
448}
449unsafe extern "C" {
450    pub fn transcribe_model_meta_val_str(
451        model: *const transcribe_model,
452        key: *const ::std::os::raw::c_char,
453    ) -> *const ::std::os::raw::c_char;
454}
455unsafe extern "C" {
456    pub fn transcribe_model_load_file(
457        path: *const ::std::os::raw::c_char,
458        params: *const transcribe_model_load_params,
459        out_model: *mut *mut transcribe_model,
460    ) -> transcribe_status;
461}
462unsafe extern "C" {
463    pub fn transcribe_model_free(model: *mut transcribe_model);
464}
465unsafe extern "C" {
466    pub fn transcribe_session_init(
467        model: *mut transcribe_model,
468        params: *const transcribe_session_params,
469        out_session: *mut *mut transcribe_session,
470    ) -> transcribe_status;
471}
472unsafe extern "C" {
473    pub fn transcribe_session_free(session: *mut transcribe_session);
474}
475unsafe extern "C" {
476    pub fn transcribe_open(
477        path: *const ::std::os::raw::c_char,
478        load_params: *const transcribe_model_load_params,
479        session_params: *const transcribe_session_params,
480        out_session: *mut *mut transcribe_session,
481    ) -> transcribe_status;
482}
483unsafe extern "C" {
484    pub fn transcribe_close(session: *mut transcribe_session);
485}
486unsafe extern "C" {
487    pub fn transcribe_get_model(session: *const transcribe_session) -> *const transcribe_model;
488}
489unsafe extern "C" {
490    pub fn transcribe_run(
491        session: *mut transcribe_session,
492        pcm: *const f32,
493        n_samples: ::std::os::raw::c_int,
494        params: *const transcribe_run_params,
495    ) -> transcribe_status;
496}
497unsafe extern "C" {
498    pub fn transcribe_run_batch(
499        session: *mut transcribe_session,
500        pcm: *const *const f32,
501        n_samples: *const ::std::os::raw::c_int,
502        n: ::std::os::raw::c_int,
503        params: *const transcribe_run_params,
504    ) -> transcribe_status;
505}
506pub type transcribe_abort_callback =
507    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void) -> bool>;
508unsafe extern "C" {
509    pub fn transcribe_set_abort_callback(
510        session: *mut transcribe_session,
511        cb: transcribe_abort_callback,
512        user_data: *mut ::std::os::raw::c_void,
513    );
514}
515unsafe extern "C" {
516    pub fn transcribe_was_aborted(session: *const transcribe_session) -> bool;
517}
518unsafe extern "C" {
519    pub fn transcribe_was_truncated(session: *const transcribe_session) -> bool;
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct transcribe_session_limits {
524    pub struct_size: u64,
525    pub effective_n_ctx: i32,
526    pub effective_max_audio_ms: i64,
527    pub max_kv_bytes: i64,
528}
529#[allow(clippy::unnecessary_operation, clippy::identity_op)]
530const _: () = {
531    ["Size of transcribe_session_limits"]
532        [::std::mem::size_of::<transcribe_session_limits>() - 32usize];
533    ["Alignment of transcribe_session_limits"]
534        [::std::mem::align_of::<transcribe_session_limits>() - 8usize];
535    ["Offset of field: transcribe_session_limits::struct_size"]
536        [::std::mem::offset_of!(transcribe_session_limits, struct_size) - 0usize];
537    ["Offset of field: transcribe_session_limits::effective_n_ctx"]
538        [::std::mem::offset_of!(transcribe_session_limits, effective_n_ctx) - 8usize];
539    ["Offset of field: transcribe_session_limits::effective_max_audio_ms"]
540        [::std::mem::offset_of!(transcribe_session_limits, effective_max_audio_ms) - 16usize];
541    ["Offset of field: transcribe_session_limits::max_kv_bytes"]
542        [::std::mem::offset_of!(transcribe_session_limits, max_kv_bytes) - 24usize];
543};
544unsafe extern "C" {
545    pub fn transcribe_session_limits_init(out: *mut transcribe_session_limits);
546}
547unsafe extern "C" {
548    pub fn transcribe_session_get_limits(
549        session: *const transcribe_session,
550        out: *mut transcribe_session_limits,
551    ) -> transcribe_status;
552}
553impl transcribe_stream_state {
554    pub const TRANSCRIBE_STREAM_IDLE: transcribe_stream_state = transcribe_stream_state(0);
555    pub const TRANSCRIBE_STREAM_ACTIVE: transcribe_stream_state = transcribe_stream_state(1);
556    pub const TRANSCRIBE_STREAM_FINISHED: transcribe_stream_state = transcribe_stream_state(2);
557    pub const TRANSCRIBE_STREAM_FAILED: transcribe_stream_state = transcribe_stream_state(3);
558}
559#[repr(transparent)]
560#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
561pub struct transcribe_stream_state(pub ::std::os::raw::c_uint);
562impl transcribe_stream_commit_policy {
563    pub const TRANSCRIBE_STREAM_COMMIT_AUTO: transcribe_stream_commit_policy =
564        transcribe_stream_commit_policy(0);
565    pub const TRANSCRIBE_STREAM_COMMIT_ON_FINALIZE: transcribe_stream_commit_policy =
566        transcribe_stream_commit_policy(1);
567    pub const TRANSCRIBE_STREAM_COMMIT_STABLE_PREFIX: transcribe_stream_commit_policy =
568        transcribe_stream_commit_policy(2);
569}
570#[repr(transparent)]
571#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
572pub struct transcribe_stream_commit_policy(pub ::std::os::raw::c_uint);
573#[repr(C)]
574#[derive(Debug, Copy, Clone)]
575pub struct transcribe_stream_params {
576    pub struct_size: u64,
577    pub family: *const transcribe_ext,
578    pub commit_policy: transcribe_stream_commit_policy,
579    pub stable_prefix_agreement_n: u32,
580}
581#[allow(clippy::unnecessary_operation, clippy::identity_op)]
582const _: () = {
583    ["Size of transcribe_stream_params"]
584        [::std::mem::size_of::<transcribe_stream_params>() - 24usize];
585    ["Alignment of transcribe_stream_params"]
586        [::std::mem::align_of::<transcribe_stream_params>() - 8usize];
587    ["Offset of field: transcribe_stream_params::struct_size"]
588        [::std::mem::offset_of!(transcribe_stream_params, struct_size) - 0usize];
589    ["Offset of field: transcribe_stream_params::family"]
590        [::std::mem::offset_of!(transcribe_stream_params, family) - 8usize];
591    ["Offset of field: transcribe_stream_params::commit_policy"]
592        [::std::mem::offset_of!(transcribe_stream_params, commit_policy) - 16usize];
593    ["Offset of field: transcribe_stream_params::stable_prefix_agreement_n"]
594        [::std::mem::offset_of!(transcribe_stream_params, stable_prefix_agreement_n) - 20usize];
595};
596unsafe extern "C" {
597    pub fn transcribe_stream_params_init(params: *mut transcribe_stream_params);
598}
599#[repr(C)]
600#[derive(Debug, Copy, Clone)]
601pub struct transcribe_stream_update {
602    pub struct_size: u64,
603    pub result_changed: bool,
604    pub is_final: bool,
605    pub revision: i32,
606    pub input_received_ms: i64,
607    pub audio_committed_ms: i64,
608    pub buffered_ms: i64,
609    pub committed_changed: bool,
610    pub tentative_changed: bool,
611}
612#[allow(clippy::unnecessary_operation, clippy::identity_op)]
613const _: () = {
614    ["Size of transcribe_stream_update"]
615        [::std::mem::size_of::<transcribe_stream_update>() - 48usize];
616    ["Alignment of transcribe_stream_update"]
617        [::std::mem::align_of::<transcribe_stream_update>() - 8usize];
618    ["Offset of field: transcribe_stream_update::struct_size"]
619        [::std::mem::offset_of!(transcribe_stream_update, struct_size) - 0usize];
620    ["Offset of field: transcribe_stream_update::result_changed"]
621        [::std::mem::offset_of!(transcribe_stream_update, result_changed) - 8usize];
622    ["Offset of field: transcribe_stream_update::is_final"]
623        [::std::mem::offset_of!(transcribe_stream_update, is_final) - 9usize];
624    ["Offset of field: transcribe_stream_update::revision"]
625        [::std::mem::offset_of!(transcribe_stream_update, revision) - 12usize];
626    ["Offset of field: transcribe_stream_update::input_received_ms"]
627        [::std::mem::offset_of!(transcribe_stream_update, input_received_ms) - 16usize];
628    ["Offset of field: transcribe_stream_update::audio_committed_ms"]
629        [::std::mem::offset_of!(transcribe_stream_update, audio_committed_ms) - 24usize];
630    ["Offset of field: transcribe_stream_update::buffered_ms"]
631        [::std::mem::offset_of!(transcribe_stream_update, buffered_ms) - 32usize];
632    ["Offset of field: transcribe_stream_update::committed_changed"]
633        [::std::mem::offset_of!(transcribe_stream_update, committed_changed) - 40usize];
634    ["Offset of field: transcribe_stream_update::tentative_changed"]
635        [::std::mem::offset_of!(transcribe_stream_update, tentative_changed) - 41usize];
636};
637unsafe extern "C" {
638    pub fn transcribe_stream_update_init(out: *mut transcribe_stream_update);
639}
640#[repr(C)]
641#[derive(Debug, Copy, Clone)]
642pub struct transcribe_stream_text {
643    pub struct_size: u64,
644    pub full_text: *const ::std::os::raw::c_char,
645    pub full_text_bytes: u64,
646    pub committed_text: *const ::std::os::raw::c_char,
647    pub committed_text_bytes: u64,
648    pub tentative_text: *const ::std::os::raw::c_char,
649    pub tentative_text_bytes: u64,
650    pub raw_tentative_start_bytes: u64,
651}
652#[allow(clippy::unnecessary_operation, clippy::identity_op)]
653const _: () = {
654    ["Size of transcribe_stream_text"][::std::mem::size_of::<transcribe_stream_text>() - 64usize];
655    ["Alignment of transcribe_stream_text"]
656        [::std::mem::align_of::<transcribe_stream_text>() - 8usize];
657    ["Offset of field: transcribe_stream_text::struct_size"]
658        [::std::mem::offset_of!(transcribe_stream_text, struct_size) - 0usize];
659    ["Offset of field: transcribe_stream_text::full_text"]
660        [::std::mem::offset_of!(transcribe_stream_text, full_text) - 8usize];
661    ["Offset of field: transcribe_stream_text::full_text_bytes"]
662        [::std::mem::offset_of!(transcribe_stream_text, full_text_bytes) - 16usize];
663    ["Offset of field: transcribe_stream_text::committed_text"]
664        [::std::mem::offset_of!(transcribe_stream_text, committed_text) - 24usize];
665    ["Offset of field: transcribe_stream_text::committed_text_bytes"]
666        [::std::mem::offset_of!(transcribe_stream_text, committed_text_bytes) - 32usize];
667    ["Offset of field: transcribe_stream_text::tentative_text"]
668        [::std::mem::offset_of!(transcribe_stream_text, tentative_text) - 40usize];
669    ["Offset of field: transcribe_stream_text::tentative_text_bytes"]
670        [::std::mem::offset_of!(transcribe_stream_text, tentative_text_bytes) - 48usize];
671    ["Offset of field: transcribe_stream_text::raw_tentative_start_bytes"]
672        [::std::mem::offset_of!(transcribe_stream_text, raw_tentative_start_bytes) - 56usize];
673};
674unsafe extern "C" {
675    pub fn transcribe_stream_text_init(out: *mut transcribe_stream_text);
676}
677unsafe extern "C" {
678    pub fn transcribe_stream_get_text(
679        session: *const transcribe_session,
680        out: *mut transcribe_stream_text,
681    ) -> transcribe_status;
682}
683unsafe extern "C" {
684    pub fn transcribe_stream_begin(
685        session: *mut transcribe_session,
686        run_params: *const transcribe_run_params,
687        stream_params: *const transcribe_stream_params,
688    ) -> transcribe_status;
689}
690unsafe extern "C" {
691    pub fn transcribe_stream_feed(
692        session: *mut transcribe_session,
693        pcm: *const f32,
694        n_samples: ::std::os::raw::c_int,
695        update: *mut transcribe_stream_update,
696    ) -> transcribe_status;
697}
698unsafe extern "C" {
699    pub fn transcribe_stream_finalize(
700        session: *mut transcribe_session,
701        update: *mut transcribe_stream_update,
702    ) -> transcribe_status;
703}
704unsafe extern "C" {
705    pub fn transcribe_stream_reset(session: *mut transcribe_session);
706}
707unsafe extern "C" {
708    pub fn transcribe_stream_get_state(
709        session: *const transcribe_session,
710    ) -> transcribe_stream_state;
711}
712unsafe extern "C" {
713    pub fn transcribe_stream_revision(session: *const transcribe_session) -> ::std::os::raw::c_int;
714}
715unsafe extern "C" {
716    pub fn transcribe_stream_n_committed_segments(
717        session: *const transcribe_session,
718    ) -> ::std::os::raw::c_int;
719}
720unsafe extern "C" {
721    pub fn transcribe_stream_n_committed_words(
722        session: *const transcribe_session,
723    ) -> ::std::os::raw::c_int;
724}
725unsafe extern "C" {
726    pub fn transcribe_stream_n_committed_tokens(
727        session: *const transcribe_session,
728    ) -> ::std::os::raw::c_int;
729}
730unsafe extern "C" {
731    pub fn transcribe_stream_last_status(session: *const transcribe_session) -> transcribe_status;
732}
733unsafe extern "C" {
734    pub fn transcribe_tokenize(
735        model: *const transcribe_model,
736        text: *const ::std::os::raw::c_char,
737        tokens: *mut i32,
738        n_max: usize,
739    ) -> ::std::os::raw::c_int;
740}
741#[repr(C)]
742#[derive(Debug, Copy, Clone)]
743pub struct transcribe_timings {
744    pub struct_size: u64,
745    pub load_ms: f32,
746    pub mel_ms: f32,
747    pub encode_ms: f32,
748    pub decode_ms: f32,
749}
750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
751const _: () = {
752    ["Size of transcribe_timings"][::std::mem::size_of::<transcribe_timings>() - 24usize];
753    ["Alignment of transcribe_timings"][::std::mem::align_of::<transcribe_timings>() - 8usize];
754    ["Offset of field: transcribe_timings::struct_size"]
755        [::std::mem::offset_of!(transcribe_timings, struct_size) - 0usize];
756    ["Offset of field: transcribe_timings::load_ms"]
757        [::std::mem::offset_of!(transcribe_timings, load_ms) - 8usize];
758    ["Offset of field: transcribe_timings::mel_ms"]
759        [::std::mem::offset_of!(transcribe_timings, mel_ms) - 12usize];
760    ["Offset of field: transcribe_timings::encode_ms"]
761        [::std::mem::offset_of!(transcribe_timings, encode_ms) - 16usize];
762    ["Offset of field: transcribe_timings::decode_ms"]
763        [::std::mem::offset_of!(transcribe_timings, decode_ms) - 20usize];
764};
765unsafe extern "C" {
766    pub fn transcribe_timings_init(out: *mut transcribe_timings);
767}
768unsafe extern "C" {
769    pub fn transcribe_get_timings(
770        session: *const transcribe_session,
771        out_timings: *mut transcribe_timings,
772    ) -> transcribe_status;
773}
774unsafe extern "C" {
775    pub fn transcribe_print_timings(session: *const transcribe_session);
776}
777unsafe extern "C" {
778    pub fn transcribe_reset_timings(session: *mut transcribe_session);
779}
780unsafe extern "C" {
781    pub fn transcribe_full_text(
782        session: *const transcribe_session,
783    ) -> *const ::std::os::raw::c_char;
784}
785unsafe extern "C" {
786    pub fn transcribe_returned_timestamp_kind(
787        session: *const transcribe_session,
788    ) -> transcribe_timestamp_kind;
789}
790unsafe extern "C" {
791    pub fn transcribe_n_segments(session: *const transcribe_session) -> ::std::os::raw::c_int;
792}
793unsafe extern "C" {
794    pub fn transcribe_n_words(session: *const transcribe_session) -> ::std::os::raw::c_int;
795}
796unsafe extern "C" {
797    pub fn transcribe_n_tokens(session: *const transcribe_session) -> ::std::os::raw::c_int;
798}
799unsafe extern "C" {
800    pub fn transcribe_detected_language(
801        session: *const transcribe_session,
802    ) -> *const ::std::os::raw::c_char;
803}
804#[repr(C)]
805#[derive(Debug, Copy, Clone)]
806pub struct transcribe_segment {
807    pub struct_size: u64,
808    pub t0_ms: i64,
809    pub t1_ms: i64,
810    pub first_word: ::std::os::raw::c_int,
811    pub n_words: ::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_segment"][::std::mem::size_of::<transcribe_segment>() - 48usize];
819    ["Alignment of transcribe_segment"][::std::mem::align_of::<transcribe_segment>() - 8usize];
820    ["Offset of field: transcribe_segment::struct_size"]
821        [::std::mem::offset_of!(transcribe_segment, struct_size) - 0usize];
822    ["Offset of field: transcribe_segment::t0_ms"]
823        [::std::mem::offset_of!(transcribe_segment, t0_ms) - 8usize];
824    ["Offset of field: transcribe_segment::t1_ms"]
825        [::std::mem::offset_of!(transcribe_segment, t1_ms) - 16usize];
826    ["Offset of field: transcribe_segment::first_word"]
827        [::std::mem::offset_of!(transcribe_segment, first_word) - 24usize];
828    ["Offset of field: transcribe_segment::n_words"]
829        [::std::mem::offset_of!(transcribe_segment, n_words) - 28usize];
830    ["Offset of field: transcribe_segment::first_token"]
831        [::std::mem::offset_of!(transcribe_segment, first_token) - 32usize];
832    ["Offset of field: transcribe_segment::n_tokens"]
833        [::std::mem::offset_of!(transcribe_segment, n_tokens) - 36usize];
834    ["Offset of field: transcribe_segment::text"]
835        [::std::mem::offset_of!(transcribe_segment, text) - 40usize];
836};
837unsafe extern "C" {
838    pub fn transcribe_segment_init(out: *mut transcribe_segment);
839}
840#[repr(C)]
841#[derive(Debug, Copy, Clone)]
842pub struct transcribe_word {
843    pub struct_size: u64,
844    pub t0_ms: i64,
845    pub t1_ms: i64,
846    pub seg_index: ::std::os::raw::c_int,
847    pub first_token: ::std::os::raw::c_int,
848    pub n_tokens: ::std::os::raw::c_int,
849    pub text: *const ::std::os::raw::c_char,
850}
851#[allow(clippy::unnecessary_operation, clippy::identity_op)]
852const _: () = {
853    ["Size of transcribe_word"][::std::mem::size_of::<transcribe_word>() - 48usize];
854    ["Alignment of transcribe_word"][::std::mem::align_of::<transcribe_word>() - 8usize];
855    ["Offset of field: transcribe_word::struct_size"]
856        [::std::mem::offset_of!(transcribe_word, struct_size) - 0usize];
857    ["Offset of field: transcribe_word::t0_ms"]
858        [::std::mem::offset_of!(transcribe_word, t0_ms) - 8usize];
859    ["Offset of field: transcribe_word::t1_ms"]
860        [::std::mem::offset_of!(transcribe_word, t1_ms) - 16usize];
861    ["Offset of field: transcribe_word::seg_index"]
862        [::std::mem::offset_of!(transcribe_word, seg_index) - 24usize];
863    ["Offset of field: transcribe_word::first_token"]
864        [::std::mem::offset_of!(transcribe_word, first_token) - 28usize];
865    ["Offset of field: transcribe_word::n_tokens"]
866        [::std::mem::offset_of!(transcribe_word, n_tokens) - 32usize];
867    ["Offset of field: transcribe_word::text"]
868        [::std::mem::offset_of!(transcribe_word, text) - 40usize];
869};
870unsafe extern "C" {
871    pub fn transcribe_word_init(out: *mut transcribe_word);
872}
873#[repr(C)]
874#[derive(Debug, Copy, Clone)]
875pub struct transcribe_token {
876    pub struct_size: u64,
877    pub id: ::std::os::raw::c_int,
878    pub p: f32,
879    pub t0_ms: i64,
880    pub t1_ms: i64,
881    pub seg_index: ::std::os::raw::c_int,
882    pub word_index: ::std::os::raw::c_int,
883    pub text: *const ::std::os::raw::c_char,
884}
885#[allow(clippy::unnecessary_operation, clippy::identity_op)]
886const _: () = {
887    ["Size of transcribe_token"][::std::mem::size_of::<transcribe_token>() - 48usize];
888    ["Alignment of transcribe_token"][::std::mem::align_of::<transcribe_token>() - 8usize];
889    ["Offset of field: transcribe_token::struct_size"]
890        [::std::mem::offset_of!(transcribe_token, struct_size) - 0usize];
891    ["Offset of field: transcribe_token::id"]
892        [::std::mem::offset_of!(transcribe_token, id) - 8usize];
893    ["Offset of field: transcribe_token::p"][::std::mem::offset_of!(transcribe_token, p) - 12usize];
894    ["Offset of field: transcribe_token::t0_ms"]
895        [::std::mem::offset_of!(transcribe_token, t0_ms) - 16usize];
896    ["Offset of field: transcribe_token::t1_ms"]
897        [::std::mem::offset_of!(transcribe_token, t1_ms) - 24usize];
898    ["Offset of field: transcribe_token::seg_index"]
899        [::std::mem::offset_of!(transcribe_token, seg_index) - 32usize];
900    ["Offset of field: transcribe_token::word_index"]
901        [::std::mem::offset_of!(transcribe_token, word_index) - 36usize];
902    ["Offset of field: transcribe_token::text"]
903        [::std::mem::offset_of!(transcribe_token, text) - 40usize];
904};
905unsafe extern "C" {
906    pub fn transcribe_token_init(out: *mut transcribe_token);
907}
908unsafe extern "C" {
909    pub fn transcribe_get_segment(
910        session: *const transcribe_session,
911        i: ::std::os::raw::c_int,
912        out: *mut transcribe_segment,
913    ) -> transcribe_status;
914}
915unsafe extern "C" {
916    pub fn transcribe_get_word(
917        session: *const transcribe_session,
918        i: ::std::os::raw::c_int,
919        out: *mut transcribe_word,
920    ) -> transcribe_status;
921}
922unsafe extern "C" {
923    pub fn transcribe_get_token(
924        session: *const transcribe_session,
925        i: ::std::os::raw::c_int,
926        out: *mut transcribe_token,
927    ) -> transcribe_status;
928}
929unsafe extern "C" {
930    pub fn transcribe_batch_n_results(session: *const transcribe_session) -> ::std::os::raw::c_int;
931}
932unsafe extern "C" {
933    pub fn transcribe_batch_status(
934        session: *const transcribe_session,
935        i: ::std::os::raw::c_int,
936    ) -> transcribe_status;
937}
938unsafe extern "C" {
939    pub fn transcribe_batch_full_text(
940        session: *const transcribe_session,
941        i: ::std::os::raw::c_int,
942    ) -> *const ::std::os::raw::c_char;
943}
944unsafe extern "C" {
945    pub fn transcribe_batch_returned_timestamp_kind(
946        session: *const transcribe_session,
947        i: ::std::os::raw::c_int,
948    ) -> transcribe_timestamp_kind;
949}
950unsafe extern "C" {
951    pub fn transcribe_batch_detected_language(
952        session: *const transcribe_session,
953        i: ::std::os::raw::c_int,
954    ) -> *const ::std::os::raw::c_char;
955}
956unsafe extern "C" {
957    pub fn transcribe_batch_n_segments(
958        session: *const transcribe_session,
959        i: ::std::os::raw::c_int,
960    ) -> ::std::os::raw::c_int;
961}
962unsafe extern "C" {
963    pub fn transcribe_batch_n_words(
964        session: *const transcribe_session,
965        i: ::std::os::raw::c_int,
966    ) -> ::std::os::raw::c_int;
967}
968unsafe extern "C" {
969    pub fn transcribe_batch_n_tokens(
970        session: *const transcribe_session,
971        i: ::std::os::raw::c_int,
972    ) -> ::std::os::raw::c_int;
973}
974unsafe extern "C" {
975    pub fn transcribe_batch_get_segment(
976        session: *const transcribe_session,
977        i: ::std::os::raw::c_int,
978        j: ::std::os::raw::c_int,
979        out: *mut transcribe_segment,
980    ) -> transcribe_status;
981}
982unsafe extern "C" {
983    pub fn transcribe_batch_get_word(
984        session: *const transcribe_session,
985        i: ::std::os::raw::c_int,
986        j: ::std::os::raw::c_int,
987        out: *mut transcribe_word,
988    ) -> transcribe_status;
989}
990unsafe extern "C" {
991    pub fn transcribe_batch_get_token(
992        session: *const transcribe_session,
993        i: ::std::os::raw::c_int,
994        j: ::std::os::raw::c_int,
995        out: *mut transcribe_token,
996    ) -> transcribe_status;
997}
998unsafe extern "C" {
999    pub fn transcribe_batch_get_timings(
1000        session: *const transcribe_session,
1001        i: ::std::os::raw::c_int,
1002        out: *mut transcribe_timings,
1003    ) -> transcribe_status;
1004}
1005#[repr(C)]
1006#[derive(Debug, Copy, Clone)]
1007pub struct transcribe_moonshine_streaming_stream_ext {
1008    pub ext: transcribe_ext,
1009    pub min_decode_interval_ms: i32,
1010}
1011#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1012const _: () = {
1013    ["Size of transcribe_moonshine_streaming_stream_ext"]
1014        [::std::mem::size_of::<transcribe_moonshine_streaming_stream_ext>() - 24usize];
1015    ["Alignment of transcribe_moonshine_streaming_stream_ext"]
1016        [::std::mem::align_of::<transcribe_moonshine_streaming_stream_ext>() - 8usize];
1017    ["Offset of field: transcribe_moonshine_streaming_stream_ext::ext"]
1018        [::std::mem::offset_of!(transcribe_moonshine_streaming_stream_ext, ext) - 0usize];
1019    ["Offset of field: transcribe_moonshine_streaming_stream_ext::min_decode_interval_ms"][::std::mem::offset_of!(
1020        transcribe_moonshine_streaming_stream_ext,
1021        min_decode_interval_ms
1022    )
1023        - 16usize];
1024};
1025unsafe extern "C" {
1026    pub fn transcribe_moonshine_streaming_stream_ext_init(
1027        ext: *mut transcribe_moonshine_streaming_stream_ext,
1028    );
1029}
1030#[repr(C)]
1031#[derive(Debug, Copy, Clone)]
1032pub struct transcribe_parakeet_stream_ext {
1033    pub ext: transcribe_ext,
1034    pub att_context_right: i32,
1035}
1036#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1037const _: () = {
1038    ["Size of transcribe_parakeet_stream_ext"]
1039        [::std::mem::size_of::<transcribe_parakeet_stream_ext>() - 24usize];
1040    ["Alignment of transcribe_parakeet_stream_ext"]
1041        [::std::mem::align_of::<transcribe_parakeet_stream_ext>() - 8usize];
1042    ["Offset of field: transcribe_parakeet_stream_ext::ext"]
1043        [::std::mem::offset_of!(transcribe_parakeet_stream_ext, ext) - 0usize];
1044    ["Offset of field: transcribe_parakeet_stream_ext::att_context_right"]
1045        [::std::mem::offset_of!(transcribe_parakeet_stream_ext, att_context_right) - 16usize];
1046};
1047unsafe extern "C" {
1048    pub fn transcribe_parakeet_stream_ext_init(ext: *mut transcribe_parakeet_stream_ext);
1049}
1050#[repr(C)]
1051#[derive(Debug, Copy, Clone)]
1052pub struct transcribe_parakeet_buffered_stream_ext {
1053    pub ext: transcribe_ext,
1054    pub left_ms: i32,
1055    pub chunk_ms: i32,
1056    pub right_ms: i32,
1057}
1058#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1059const _: () = {
1060    ["Size of transcribe_parakeet_buffered_stream_ext"]
1061        [::std::mem::size_of::<transcribe_parakeet_buffered_stream_ext>() - 32usize];
1062    ["Alignment of transcribe_parakeet_buffered_stream_ext"]
1063        [::std::mem::align_of::<transcribe_parakeet_buffered_stream_ext>() - 8usize];
1064    ["Offset of field: transcribe_parakeet_buffered_stream_ext::ext"]
1065        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, ext) - 0usize];
1066    ["Offset of field: transcribe_parakeet_buffered_stream_ext::left_ms"]
1067        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, left_ms) - 16usize];
1068    ["Offset of field: transcribe_parakeet_buffered_stream_ext::chunk_ms"]
1069        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, chunk_ms) - 20usize];
1070    ["Offset of field: transcribe_parakeet_buffered_stream_ext::right_ms"]
1071        [::std::mem::offset_of!(transcribe_parakeet_buffered_stream_ext, right_ms) - 24usize];
1072};
1073unsafe extern "C" {
1074    pub fn transcribe_parakeet_buffered_stream_ext_init(
1075        ext: *mut transcribe_parakeet_buffered_stream_ext,
1076    );
1077}
1078#[repr(C)]
1079#[derive(Debug, Copy, Clone)]
1080pub struct transcribe_voxtral_realtime_stream_ext {
1081    pub ext: transcribe_ext,
1082    pub num_delay_tokens: i32,
1083    pub min_decode_interval_ms: i32,
1084}
1085#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1086const _: () = {
1087    ["Size of transcribe_voxtral_realtime_stream_ext"]
1088        [::std::mem::size_of::<transcribe_voxtral_realtime_stream_ext>() - 24usize];
1089    ["Alignment of transcribe_voxtral_realtime_stream_ext"]
1090        [::std::mem::align_of::<transcribe_voxtral_realtime_stream_ext>() - 8usize];
1091    ["Offset of field: transcribe_voxtral_realtime_stream_ext::ext"]
1092        [::std::mem::offset_of!(transcribe_voxtral_realtime_stream_ext, ext) - 0usize];
1093    ["Offset of field: transcribe_voxtral_realtime_stream_ext::num_delay_tokens"][::std::mem::offset_of!(
1094        transcribe_voxtral_realtime_stream_ext,
1095        num_delay_tokens
1096    ) - 16usize];
1097    ["Offset of field: transcribe_voxtral_realtime_stream_ext::min_decode_interval_ms"][::std::mem::offset_of!(
1098        transcribe_voxtral_realtime_stream_ext,
1099        min_decode_interval_ms
1100    )
1101        - 20usize];
1102};
1103unsafe extern "C" {
1104    pub fn transcribe_voxtral_realtime_stream_ext_init(
1105        ext: *mut transcribe_voxtral_realtime_stream_ext,
1106    );
1107}
1108impl transcribe_whisper_prompt_condition {
1109    pub const TRANSCRIBE_WHISPER_PROMPT_FIRST_SEGMENT: transcribe_whisper_prompt_condition =
1110        transcribe_whisper_prompt_condition(0);
1111    pub const TRANSCRIBE_WHISPER_PROMPT_ALL_SEGMENTS: transcribe_whisper_prompt_condition =
1112        transcribe_whisper_prompt_condition(1);
1113}
1114#[repr(transparent)]
1115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1116pub struct transcribe_whisper_prompt_condition(pub ::std::os::raw::c_uint);
1117#[repr(C)]
1118#[derive(Debug, Copy, Clone)]
1119pub struct transcribe_whisper_run_ext {
1120    pub ext: transcribe_ext,
1121    pub initial_prompt: *const ::std::os::raw::c_char,
1122    pub prompt_tokens: *const i32,
1123    pub n_prompt_tokens: usize,
1124    pub prompt_condition: transcribe_whisper_prompt_condition,
1125    pub condition_on_prev_tokens: bool,
1126    pub max_prev_context_tokens: i32,
1127    pub temperature: f32,
1128    pub temperature_inc: f32,
1129    pub compression_ratio_thold: f32,
1130    pub logprob_thold: f32,
1131    pub no_speech_thold: f32,
1132    pub seed: u32,
1133    pub max_initial_timestamp: f32,
1134}
1135#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1136const _: () = {
1137    ["Size of transcribe_whisper_run_ext"]
1138        [::std::mem::size_of::<transcribe_whisper_run_ext>() - 80usize];
1139    ["Alignment of transcribe_whisper_run_ext"]
1140        [::std::mem::align_of::<transcribe_whisper_run_ext>() - 8usize];
1141    ["Offset of field: transcribe_whisper_run_ext::ext"]
1142        [::std::mem::offset_of!(transcribe_whisper_run_ext, ext) - 0usize];
1143    ["Offset of field: transcribe_whisper_run_ext::initial_prompt"]
1144        [::std::mem::offset_of!(transcribe_whisper_run_ext, initial_prompt) - 16usize];
1145    ["Offset of field: transcribe_whisper_run_ext::prompt_tokens"]
1146        [::std::mem::offset_of!(transcribe_whisper_run_ext, prompt_tokens) - 24usize];
1147    ["Offset of field: transcribe_whisper_run_ext::n_prompt_tokens"]
1148        [::std::mem::offset_of!(transcribe_whisper_run_ext, n_prompt_tokens) - 32usize];
1149    ["Offset of field: transcribe_whisper_run_ext::prompt_condition"]
1150        [::std::mem::offset_of!(transcribe_whisper_run_ext, prompt_condition) - 40usize];
1151    ["Offset of field: transcribe_whisper_run_ext::condition_on_prev_tokens"]
1152        [::std::mem::offset_of!(transcribe_whisper_run_ext, condition_on_prev_tokens) - 44usize];
1153    ["Offset of field: transcribe_whisper_run_ext::max_prev_context_tokens"]
1154        [::std::mem::offset_of!(transcribe_whisper_run_ext, max_prev_context_tokens) - 48usize];
1155    ["Offset of field: transcribe_whisper_run_ext::temperature"]
1156        [::std::mem::offset_of!(transcribe_whisper_run_ext, temperature) - 52usize];
1157    ["Offset of field: transcribe_whisper_run_ext::temperature_inc"]
1158        [::std::mem::offset_of!(transcribe_whisper_run_ext, temperature_inc) - 56usize];
1159    ["Offset of field: transcribe_whisper_run_ext::compression_ratio_thold"]
1160        [::std::mem::offset_of!(transcribe_whisper_run_ext, compression_ratio_thold) - 60usize];
1161    ["Offset of field: transcribe_whisper_run_ext::logprob_thold"]
1162        [::std::mem::offset_of!(transcribe_whisper_run_ext, logprob_thold) - 64usize];
1163    ["Offset of field: transcribe_whisper_run_ext::no_speech_thold"]
1164        [::std::mem::offset_of!(transcribe_whisper_run_ext, no_speech_thold) - 68usize];
1165    ["Offset of field: transcribe_whisper_run_ext::seed"]
1166        [::std::mem::offset_of!(transcribe_whisper_run_ext, seed) - 72usize];
1167    ["Offset of field: transcribe_whisper_run_ext::max_initial_timestamp"]
1168        [::std::mem::offset_of!(transcribe_whisper_run_ext, max_initial_timestamp) - 76usize];
1169};
1170unsafe extern "C" {
1171    pub fn transcribe_whisper_run_ext_init(ext: *mut transcribe_whisper_run_ext);
1172}
1173#[repr(C)]
1174#[derive(Debug, Copy, Clone)]
1175pub struct transcribe_whisper_chunk_trace {
1176    pub struct_size: u64,
1177    pub t0_ms: i64,
1178    pub t1_ms: i64,
1179    pub temperature_used: f32,
1180    pub compression_ratio: f32,
1181    pub avg_logprob: f32,
1182    pub no_speech_prob: f32,
1183    pub no_speech_triggered: bool,
1184    pub n_fallbacks: i32,
1185}
1186#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1187const _: () = {
1188    ["Size of transcribe_whisper_chunk_trace"]
1189        [::std::mem::size_of::<transcribe_whisper_chunk_trace>() - 48usize];
1190    ["Alignment of transcribe_whisper_chunk_trace"]
1191        [::std::mem::align_of::<transcribe_whisper_chunk_trace>() - 8usize];
1192    ["Offset of field: transcribe_whisper_chunk_trace::struct_size"]
1193        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, struct_size) - 0usize];
1194    ["Offset of field: transcribe_whisper_chunk_trace::t0_ms"]
1195        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, t0_ms) - 8usize];
1196    ["Offset of field: transcribe_whisper_chunk_trace::t1_ms"]
1197        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, t1_ms) - 16usize];
1198    ["Offset of field: transcribe_whisper_chunk_trace::temperature_used"]
1199        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, temperature_used) - 24usize];
1200    ["Offset of field: transcribe_whisper_chunk_trace::compression_ratio"]
1201        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, compression_ratio) - 28usize];
1202    ["Offset of field: transcribe_whisper_chunk_trace::avg_logprob"]
1203        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, avg_logprob) - 32usize];
1204    ["Offset of field: transcribe_whisper_chunk_trace::no_speech_prob"]
1205        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, no_speech_prob) - 36usize];
1206    ["Offset of field: transcribe_whisper_chunk_trace::no_speech_triggered"]
1207        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, no_speech_triggered) - 40usize];
1208    ["Offset of field: transcribe_whisper_chunk_trace::n_fallbacks"]
1209        [::std::mem::offset_of!(transcribe_whisper_chunk_trace, n_fallbacks) - 44usize];
1210};
1211unsafe extern "C" {
1212    pub fn transcribe_whisper_chunk_trace_init(out: *mut transcribe_whisper_chunk_trace);
1213}
1214unsafe extern "C" {
1215    pub fn transcribe_get_whisper_chunk_count(
1216        session: *const transcribe_session,
1217    ) -> ::std::os::raw::c_int;
1218}
1219unsafe extern "C" {
1220    pub fn transcribe_get_whisper_chunk_trace(
1221        session: *const transcribe_session,
1222        i: ::std::os::raw::c_int,
1223        out_trace: *mut transcribe_whisper_chunk_trace,
1224    ) -> transcribe_status;
1225}