/* automatically generated by rust-bindgen 0.65.1 */ pub const _STDINT_H: u32 = 1; pub const _FEATURES_H: u32 = 1; pub const _DEFAULT_SOURCE: u32 = 1; pub const __GLIBC_USE_ISOC2X: u32 = 0; pub const __USE_ISOC11: u32 = 1; pub const __USE_ISOC99: u32 = 1; pub const __USE_ISOC95: u32 = 1; pub const __USE_POSIX_IMPLICITLY: u32 = 1; pub const _POSIX_SOURCE: u32 = 1; pub const _POSIX_C_SOURCE: u32 = 200809; pub const __USE_POSIX: u32 = 1; pub const __USE_POSIX2: u32 = 1; pub const __USE_POSIX199309: u32 = 1; pub const __USE_POSIX199506: u32 = 1; pub const __USE_XOPEN2K: u32 = 1; pub const __USE_XOPEN2K8: u32 = 1; pub const _ATFILE_SOURCE: u32 = 1; pub const __WORDSIZE: u32 = 64; pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; pub const __SYSCALL_WORDSIZE: u32 = 64; pub const __TIMESIZE: u32 = 64; pub const __USE_MISC: u32 = 1; pub const __USE_ATFILE: u32 = 1; pub const __USE_FORTIFY_LEVEL: u32 = 0; pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; pub const _STDC_PREDEF_H: u32 = 1; pub const __STDC_IEC_559__: u32 = 1; pub const __STDC_IEC_60559_BFP__: u32 = 201404; pub const __STDC_IEC_559_COMPLEX__: u32 = 1; pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; pub const __STDC_ISO_10646__: u32 = 201706; pub const __GNU_LIBRARY__: u32 = 6; pub const __GLIBC__: u32 = 2; pub const __GLIBC_MINOR__: u32 = 37; pub const _SYS_CDEFS_H: u32 = 1; pub const __glibc_c99_flexarr_available: u32 = 1; pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; pub const __HAVE_GENERIC_SELECTION: u32 = 1; pub const __GLIBC_USE_LIB_EXT2: u32 = 0; pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; pub const _BITS_TYPES_H: u32 = 1; pub const _BITS_TYPESIZES_H: u32 = 1; pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; pub const __INO_T_MATCHES_INO64_T: u32 = 1; pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; pub const __STATFS_MATCHES_STATFS64: u32 = 1; pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; pub const __FD_SETSIZE: u32 = 1024; pub const _BITS_TIME64_H: u32 = 1; pub const _BITS_WCHAR_H: u32 = 1; pub const _BITS_STDINT_INTN_H: u32 = 1; pub const _BITS_STDINT_UINTN_H: u32 = 1; pub const INT8_MIN: i32 = -128; pub const INT16_MIN: i32 = -32768; pub const INT32_MIN: i32 = -2147483648; pub const INT8_MAX: u32 = 127; pub const INT16_MAX: u32 = 32767; pub const INT32_MAX: u32 = 2147483647; pub const UINT8_MAX: u32 = 255; pub const UINT16_MAX: u32 = 65535; pub const UINT32_MAX: u32 = 4294967295; pub const INT_LEAST8_MIN: i32 = -128; pub const INT_LEAST16_MIN: i32 = -32768; pub const INT_LEAST32_MIN: i32 = -2147483648; pub const INT_LEAST8_MAX: u32 = 127; pub const INT_LEAST16_MAX: u32 = 32767; pub const INT_LEAST32_MAX: u32 = 2147483647; pub const UINT_LEAST8_MAX: u32 = 255; pub const UINT_LEAST16_MAX: u32 = 65535; pub const UINT_LEAST32_MAX: u32 = 4294967295; pub const INT_FAST8_MIN: i32 = -128; pub const INT_FAST16_MIN: i64 = -9223372036854775808; pub const INT_FAST32_MIN: i64 = -9223372036854775808; pub const INT_FAST8_MAX: u32 = 127; pub const INT_FAST16_MAX: u64 = 9223372036854775807; pub const INT_FAST32_MAX: u64 = 9223372036854775807; pub const UINT_FAST8_MAX: u32 = 255; pub const UINT_FAST16_MAX: i32 = -1; pub const UINT_FAST32_MAX: i32 = -1; pub const INTPTR_MIN: i64 = -9223372036854775808; pub const INTPTR_MAX: u64 = 9223372036854775807; pub const UINTPTR_MAX: i32 = -1; pub const PTRDIFF_MIN: i64 = -9223372036854775808; pub const PTRDIFF_MAX: u64 = 9223372036854775807; pub const SIG_ATOMIC_MIN: i32 = -2147483648; pub const SIG_ATOMIC_MAX: u32 = 2147483647; pub const SIZE_MAX: i32 = -1; pub const WINT_MIN: u32 = 0; pub const WINT_MAX: u32 = 4294967295; pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; pub const WHISPER_SAMPLE_RATE: u32 = 16000; pub const WHISPER_N_FFT: u32 = 400; pub const WHISPER_N_MEL: u32 = 80; pub const WHISPER_HOP_LENGTH: u32 = 160; pub const WHISPER_CHUNK_SIZE: u32 = 30; pub type wchar_t = ::std::os::raw::c_int; #[repr(C)] #[repr(align(16))] #[derive(Debug, Copy, Clone)] pub struct max_align_t { pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, pub __bindgen_padding_0: u64, pub __clang_max_align_nonce2: u128, } #[test] fn bindgen_test_layout_max_align_t() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(max_align_t)) ); assert_eq!( ::std::mem::align_of::(), 16usize, concat!("Alignment of ", stringify!(max_align_t)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(max_align_t), "::", stringify!(__clang_max_align_nonce1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(max_align_t), "::", stringify!(__clang_max_align_nonce2) ) ); } pub type __u_char = ::std::os::raw::c_uchar; pub type __u_short = ::std::os::raw::c_ushort; pub type __u_int = ::std::os::raw::c_uint; pub type __u_long = ::std::os::raw::c_ulong; pub type __int8_t = ::std::os::raw::c_schar; pub type __uint8_t = ::std::os::raw::c_uchar; pub type __int16_t = ::std::os::raw::c_short; pub type __uint16_t = ::std::os::raw::c_ushort; pub type __int32_t = ::std::os::raw::c_int; pub type __uint32_t = ::std::os::raw::c_uint; pub type __int64_t = ::std::os::raw::c_long; pub type __uint64_t = ::std::os::raw::c_ulong; pub type __int_least8_t = __int8_t; pub type __uint_least8_t = __uint8_t; pub type __int_least16_t = __int16_t; pub type __uint_least16_t = __uint16_t; pub type __int_least32_t = __int32_t; pub type __uint_least32_t = __uint32_t; pub type __int_least64_t = __int64_t; pub type __uint_least64_t = __uint64_t; pub type __quad_t = ::std::os::raw::c_long; pub type __u_quad_t = ::std::os::raw::c_ulong; pub type __intmax_t = ::std::os::raw::c_long; pub type __uintmax_t = ::std::os::raw::c_ulong; pub type __dev_t = ::std::os::raw::c_ulong; pub type __uid_t = ::std::os::raw::c_uint; pub type __gid_t = ::std::os::raw::c_uint; pub type __ino_t = ::std::os::raw::c_ulong; pub type __ino64_t = ::std::os::raw::c_ulong; pub type __mode_t = ::std::os::raw::c_uint; pub type __nlink_t = ::std::os::raw::c_ulong; pub type __off_t = ::std::os::raw::c_long; pub type __off64_t = ::std::os::raw::c_long; pub type __pid_t = ::std::os::raw::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct __fsid_t { pub __val: [::std::os::raw::c_int; 2usize], } #[test] fn bindgen_test_layout___fsid_t() { const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__fsid_t>(), 8usize, concat!("Size of: ", stringify!(__fsid_t)) ); assert_eq!( ::std::mem::align_of::<__fsid_t>(), 4usize, concat!("Alignment of ", stringify!(__fsid_t)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(__fsid_t), "::", stringify!(__val) ) ); } pub type __clock_t = ::std::os::raw::c_long; pub type __rlim_t = ::std::os::raw::c_ulong; pub type __rlim64_t = ::std::os::raw::c_ulong; pub type __id_t = ::std::os::raw::c_uint; pub type __time_t = ::std::os::raw::c_long; pub type __useconds_t = ::std::os::raw::c_uint; pub type __suseconds_t = ::std::os::raw::c_long; pub type __suseconds64_t = ::std::os::raw::c_long; pub type __daddr_t = ::std::os::raw::c_int; pub type __key_t = ::std::os::raw::c_int; pub type __clockid_t = ::std::os::raw::c_int; pub type __timer_t = *mut ::std::os::raw::c_void; pub type __blksize_t = ::std::os::raw::c_long; pub type __blkcnt_t = ::std::os::raw::c_long; pub type __blkcnt64_t = ::std::os::raw::c_long; pub type __fsblkcnt_t = ::std::os::raw::c_ulong; pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; pub type __fsfilcnt_t = ::std::os::raw::c_ulong; pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; pub type __fsword_t = ::std::os::raw::c_long; pub type __ssize_t = ::std::os::raw::c_long; pub type __syscall_slong_t = ::std::os::raw::c_long; pub type __syscall_ulong_t = ::std::os::raw::c_ulong; pub type __loff_t = __off64_t; pub type __caddr_t = *mut ::std::os::raw::c_char; pub type __intptr_t = ::std::os::raw::c_long; pub type __socklen_t = ::std::os::raw::c_uint; pub type __sig_atomic_t = ::std::os::raw::c_int; pub type int_least8_t = __int_least8_t; pub type int_least16_t = __int_least16_t; pub type int_least32_t = __int_least32_t; pub type int_least64_t = __int_least64_t; pub type uint_least8_t = __uint_least8_t; pub type uint_least16_t = __uint_least16_t; pub type uint_least32_t = __uint_least32_t; pub type uint_least64_t = __uint_least64_t; pub type int_fast8_t = ::std::os::raw::c_schar; pub type int_fast16_t = ::std::os::raw::c_long; pub type int_fast32_t = ::std::os::raw::c_long; pub type int_fast64_t = ::std::os::raw::c_long; pub type uint_fast8_t = ::std::os::raw::c_uchar; pub type uint_fast16_t = ::std::os::raw::c_ulong; pub type uint_fast32_t = ::std::os::raw::c_ulong; pub type uint_fast64_t = ::std::os::raw::c_ulong; pub type intmax_t = __intmax_t; pub type uintmax_t = __uintmax_t; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_context { _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_state { _unused: [u8; 0], } pub type whisper_token = ::std::os::raw::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_token_data { pub id: whisper_token, pub tid: whisper_token, pub p: f32, pub plog: f32, pub pt: f32, pub ptsum: f32, pub t0: i64, pub t1: i64, pub vlen: f32, } #[test] fn bindgen_test_layout_whisper_token_data() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(whisper_token_data)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(whisper_token_data)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(id) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).tid) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(tid) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(p) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).plog) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(plog) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pt) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(pt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ptsum) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(ptsum) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).t0) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(t0) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).t1) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(t1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).vlen) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(whisper_token_data), "::", stringify!(vlen) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_model_loader { pub context: *mut ::std::os::raw::c_void, pub read: ::std::option::Option< unsafe extern "C" fn( ctx: *mut ::std::os::raw::c_void, output: *mut ::std::os::raw::c_void, read_size: usize, ) -> usize, >, pub eof: ::std::option::Option bool>, pub close: ::std::option::Option, } #[test] fn bindgen_test_layout_whisper_model_loader() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(whisper_model_loader)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(whisper_model_loader)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(whisper_model_loader), "::", stringify!(context) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(whisper_model_loader), "::", stringify!(read) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).eof) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(whisper_model_loader), "::", stringify!(eof) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(whisper_model_loader), "::", stringify!(close) ) ); } extern "C" { pub fn whisper_init_from_file( path_model: *const ::std::os::raw::c_char, ) -> *mut whisper_context; } extern "C" { pub fn whisper_init_from_buffer( buffer: *mut ::std::os::raw::c_void, buffer_size: usize, ) -> *mut whisper_context; } extern "C" { pub fn whisper_init(loader: *mut whisper_model_loader) -> *mut whisper_context; } extern "C" { pub fn whisper_init_from_file_no_state( path_model: *const ::std::os::raw::c_char, ) -> *mut whisper_context; } extern "C" { pub fn whisper_init_from_buffer_no_state( buffer: *mut ::std::os::raw::c_void, buffer_size: usize, ) -> *mut whisper_context; } extern "C" { pub fn whisper_init_no_state(loader: *mut whisper_model_loader) -> *mut whisper_context; } extern "C" { pub fn whisper_init_state(ctx: *mut whisper_context) -> *mut whisper_state; } extern "C" { pub fn whisper_free(ctx: *mut whisper_context); } extern "C" { pub fn whisper_free_state(state: *mut whisper_state); } extern "C" { pub fn whisper_pcm_to_mel( ctx: *mut whisper_context, samples: *const f32, n_samples: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_pcm_to_mel_with_state( ctx: *mut whisper_context, state: *mut whisper_state, samples: *const f32, n_samples: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_pcm_to_mel_phase_vocoder( ctx: *mut whisper_context, samples: *const f32, n_samples: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_pcm_to_mel_phase_vocoder_with_state( ctx: *mut whisper_context, state: *mut whisper_state, samples: *const f32, n_samples: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_set_mel( ctx: *mut whisper_context, data: *const f32, n_len: ::std::os::raw::c_int, n_mel: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_set_mel_with_state( ctx: *mut whisper_context, state: *mut whisper_state, data: *const f32, n_len: ::std::os::raw::c_int, n_mel: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_encode( ctx: *mut whisper_context, offset: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_encode_with_state( ctx: *mut whisper_context, state: *mut whisper_state, offset: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_decode( ctx: *mut whisper_context, tokens: *const whisper_token, n_tokens: ::std::os::raw::c_int, n_past: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_decode_with_state( ctx: *mut whisper_context, state: *mut whisper_state, tokens: *const whisper_token, n_tokens: ::std::os::raw::c_int, n_past: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_tokenize( ctx: *mut whisper_context, text: *const ::std::os::raw::c_char, tokens: *mut whisper_token, n_max_tokens: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_lang_max_id() -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_lang_id(lang: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_lang_str(id: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_lang_auto_detect( ctx: *mut whisper_context, offset_ms: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, lang_probs: *mut f32, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_lang_auto_detect_with_state( ctx: *mut whisper_context, state: *mut whisper_state, offset_ms: ::std::os::raw::c_int, n_threads: ::std::os::raw::c_int, lang_probs: *mut f32, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_n_len(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_n_len_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_n_vocab(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_n_text_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_n_audio_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_is_multilingual(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_vocab(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_audio_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_audio_state(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_audio_head(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_audio_layer(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_text_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_text_state(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_text_head(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_text_layer(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_n_mels(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_ftype(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_model_type(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_get_logits(ctx: *mut whisper_context) -> *mut f32; } extern "C" { pub fn whisper_get_logits_from_state(state: *mut whisper_state) -> *mut f32; } extern "C" { pub fn whisper_token_to_str( ctx: *mut whisper_context, token: whisper_token, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_model_type_readable(ctx: *mut whisper_context) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_token_eot(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_sot(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_prev(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_solm(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_not(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_beg(ctx: *mut whisper_context) -> whisper_token; } extern "C" { pub fn whisper_token_lang( ctx: *mut whisper_context, lang_id: ::std::os::raw::c_int, ) -> whisper_token; } extern "C" { pub fn whisper_token_translate() -> whisper_token; } extern "C" { pub fn whisper_token_transcribe() -> whisper_token; } extern "C" { pub fn whisper_print_timings(ctx: *mut whisper_context); } extern "C" { pub fn whisper_reset_timings(ctx: *mut whisper_context); } extern "C" { pub fn whisper_print_system_info() -> *const ::std::os::raw::c_char; } pub const whisper_sampling_strategy_WHISPER_SAMPLING_GREEDY: whisper_sampling_strategy = 0; pub const whisper_sampling_strategy_WHISPER_SAMPLING_BEAM_SEARCH: whisper_sampling_strategy = 1; pub type whisper_sampling_strategy = ::std::os::raw::c_uint; pub type whisper_new_segment_callback = ::std::option::Option< unsafe extern "C" fn( ctx: *mut whisper_context, state: *mut whisper_state, n_new: ::std::os::raw::c_int, user_data: *mut ::std::os::raw::c_void, ), >; pub type whisper_progress_callback = ::std::option::Option< unsafe extern "C" fn( ctx: *mut whisper_context, state: *mut whisper_state, progress: ::std::os::raw::c_int, user_data: *mut ::std::os::raw::c_void, ), >; pub type whisper_encoder_begin_callback = ::std::option::Option< unsafe extern "C" fn( ctx: *mut whisper_context, state: *mut whisper_state, user_data: *mut ::std::os::raw::c_void, ) -> bool, >; pub type whisper_logits_filter_callback = ::std::option::Option< unsafe extern "C" fn( ctx: *mut whisper_context, state: *mut whisper_state, tokens: *const whisper_token_data, n_tokens: ::std::os::raw::c_int, logits: *mut f32, user_data: *mut ::std::os::raw::c_void, ), >; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_full_params { pub strategy: whisper_sampling_strategy, pub n_threads: ::std::os::raw::c_int, pub n_max_text_ctx: ::std::os::raw::c_int, pub offset_ms: ::std::os::raw::c_int, pub duration_ms: ::std::os::raw::c_int, pub translate: bool, pub no_context: bool, pub single_segment: bool, pub print_special: bool, pub print_progress: bool, pub print_realtime: bool, pub print_timestamps: bool, pub token_timestamps: bool, pub thold_pt: f32, pub thold_ptsum: f32, pub max_len: ::std::os::raw::c_int, pub split_on_word: bool, pub max_tokens: ::std::os::raw::c_int, pub speed_up: bool, pub audio_ctx: ::std::os::raw::c_int, pub initial_prompt: *const ::std::os::raw::c_char, pub prompt_tokens: *const whisper_token, pub prompt_n_tokens: ::std::os::raw::c_int, pub language: *const ::std::os::raw::c_char, pub detect_language: bool, pub suppress_blank: bool, pub suppress_non_speech_tokens: bool, pub temperature: f32, pub max_initial_ts: f32, pub length_penalty: f32, pub temperature_inc: f32, pub entropy_thold: f32, pub logprob_thold: f32, pub no_speech_thold: f32, pub greedy: whisper_full_params__bindgen_ty_1, pub beam_search: whisper_full_params__bindgen_ty_2, pub new_segment_callback: whisper_new_segment_callback, pub new_segment_callback_user_data: *mut ::std::os::raw::c_void, pub progress_callback: whisper_progress_callback, pub progress_callback_user_data: *mut ::std::os::raw::c_void, pub encoder_begin_callback: whisper_encoder_begin_callback, pub encoder_begin_callback_user_data: *mut ::std::os::raw::c_void, pub logits_filter_callback: whisper_logits_filter_callback, pub logits_filter_callback_user_data: *mut ::std::os::raw::c_void, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_full_params__bindgen_ty_1 { pub best_of: ::std::os::raw::c_int, } #[test] fn bindgen_test_layout_whisper_full_params__bindgen_ty_1() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 4usize, concat!("Size of: ", stringify!(whisper_full_params__bindgen_ty_1)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!( "Alignment of ", stringify!(whisper_full_params__bindgen_ty_1) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).best_of) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(whisper_full_params__bindgen_ty_1), "::", stringify!(best_of) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct whisper_full_params__bindgen_ty_2 { pub beam_size: ::std::os::raw::c_int, pub patience: f32, } #[test] fn bindgen_test_layout_whisper_full_params__bindgen_ty_2() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(whisper_full_params__bindgen_ty_2)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!( "Alignment of ", stringify!(whisper_full_params__bindgen_ty_2) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).beam_size) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(whisper_full_params__bindgen_ty_2), "::", stringify!(beam_size) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).patience) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(whisper_full_params__bindgen_ty_2), "::", stringify!(patience) ) ); } #[test] fn bindgen_test_layout_whisper_full_params() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 200usize, concat!("Size of: ", stringify!(whisper_full_params)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(whisper_full_params)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).strategy) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(strategy) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).n_threads) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(n_threads) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).n_max_text_ctx) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(n_max_text_ctx) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).offset_ms) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(offset_ms) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).duration_ms) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(duration_ms) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(translate) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).no_context) as usize - ptr as usize }, 21usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(no_context) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).single_segment) as usize - ptr as usize }, 22usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(single_segment) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).print_special) as usize - ptr as usize }, 23usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(print_special) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).print_progress) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(print_progress) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).print_realtime) as usize - ptr as usize }, 25usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(print_realtime) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).print_timestamps) as usize - ptr as usize }, 26usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(print_timestamps) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).token_timestamps) as usize - ptr as usize }, 27usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(token_timestamps) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).thold_pt) as usize - ptr as usize }, 28usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(thold_pt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).thold_ptsum) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(thold_ptsum) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_len) as usize - ptr as usize }, 36usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(max_len) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).split_on_word) as usize - ptr as usize }, 40usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(split_on_word) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_tokens) as usize - ptr as usize }, 44usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(max_tokens) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).speed_up) as usize - ptr as usize }, 48usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(speed_up) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).audio_ctx) as usize - ptr as usize }, 52usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(audio_ctx) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).initial_prompt) as usize - ptr as usize }, 56usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(initial_prompt) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).prompt_tokens) as usize - ptr as usize }, 64usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(prompt_tokens) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).prompt_n_tokens) as usize - ptr as usize }, 72usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(prompt_n_tokens) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).language) as usize - ptr as usize }, 80usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(language) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).detect_language) as usize - ptr as usize }, 88usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(detect_language) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).suppress_blank) as usize - ptr as usize }, 89usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(suppress_blank) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).suppress_non_speech_tokens) as usize - ptr as usize }, 90usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(suppress_non_speech_tokens) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).temperature) as usize - ptr as usize }, 92usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(temperature) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).max_initial_ts) as usize - ptr as usize }, 96usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(max_initial_ts) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length_penalty) as usize - ptr as usize }, 100usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(length_penalty) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).temperature_inc) as usize - ptr as usize }, 104usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(temperature_inc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).entropy_thold) as usize - ptr as usize }, 108usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(entropy_thold) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).logprob_thold) as usize - ptr as usize }, 112usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(logprob_thold) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).no_speech_thold) as usize - ptr as usize }, 116usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(no_speech_thold) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).greedy) as usize - ptr as usize }, 120usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(greedy) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).beam_search) as usize - ptr as usize }, 124usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(beam_search) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).new_segment_callback) as usize - ptr as usize }, 136usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(new_segment_callback) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).new_segment_callback_user_data) as usize - ptr as usize }, 144usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(new_segment_callback_user_data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).progress_callback) as usize - ptr as usize }, 152usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(progress_callback) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).progress_callback_user_data) as usize - ptr as usize }, 160usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(progress_callback_user_data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).encoder_begin_callback) as usize - ptr as usize }, 168usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(encoder_begin_callback) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).encoder_begin_callback_user_data) as usize - ptr as usize }, 176usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(encoder_begin_callback_user_data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).logits_filter_callback) as usize - ptr as usize }, 184usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(logits_filter_callback) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).logits_filter_callback_user_data) as usize - ptr as usize }, 192usize, concat!( "Offset of field: ", stringify!(whisper_full_params), "::", stringify!(logits_filter_callback_user_data) ) ); } extern "C" { pub fn whisper_full_default_params(strategy: whisper_sampling_strategy) -> whisper_full_params; } extern "C" { pub fn whisper_full( ctx: *mut whisper_context, params: whisper_full_params, samples: *const f32, n_samples: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_with_state( ctx: *mut whisper_context, state: *mut whisper_state, params: whisper_full_params, samples: *const f32, n_samples: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_parallel( ctx: *mut whisper_context, params: whisper_full_params, samples: *const f32, n_samples: ::std::os::raw::c_int, n_processors: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_n_segments(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_n_segments_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_lang_id(ctx: *mut whisper_context) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_lang_id_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_get_segment_t0( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, ) -> i64; } extern "C" { pub fn whisper_full_get_segment_t0_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, ) -> i64; } extern "C" { pub fn whisper_full_get_segment_t1( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, ) -> i64; } extern "C" { pub fn whisper_full_get_segment_t1_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, ) -> i64; } extern "C" { pub fn whisper_full_get_segment_text( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_full_get_segment_text_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_full_n_tokens( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_n_tokens_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_full_get_token_text( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_full_get_token_text_from_state( ctx: *mut whisper_context, state: *mut whisper_state, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_full_get_token_id( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> whisper_token; } extern "C" { pub fn whisper_full_get_token_id_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> whisper_token; } extern "C" { pub fn whisper_full_get_token_data( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> whisper_token_data; } extern "C" { pub fn whisper_full_get_token_data_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> whisper_token_data; } extern "C" { pub fn whisper_full_get_token_p( ctx: *mut whisper_context, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> f32; } extern "C" { pub fn whisper_full_get_token_p_from_state( state: *mut whisper_state, i_segment: ::std::os::raw::c_int, i_token: ::std::os::raw::c_int, ) -> f32; } extern "C" { pub fn whisper_bench_memcpy(n_threads: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_bench_memcpy_str( n_threads: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; } extern "C" { pub fn whisper_bench_ggml_mul_mat(n_threads: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } extern "C" { pub fn whisper_bench_ggml_mul_mat_str( n_threads: ::std::os::raw::c_int, ) -> *const ::std::os::raw::c_char; }