diff --git a/src/model.rs b/src/model.rs index 41dec87..0efd0a6 100644 --- a/src/model.rs +++ b/src/model.rs @@ -42,7 +42,7 @@ impl VoskModel { } #[inline] - pub fn get_final_result(&self, sess: &mut VoskSession) -> crate::TranscriptionResult { + pub fn get_final_result(&self, sess: VoskSession) -> crate::TranscriptionResult { let cstr = unsafe { CStr::from_ptr(ffi::vosk_recognizer_final_result(sess.inner)) }; serde_json::from_str(cstr.to_str().unwrap()).unwrap() diff --git a/src/session.rs b/src/session.rs index 5ba0857..81cf3d1 100644 --- a/src/session.rs +++ b/src/session.rs @@ -101,3 +101,9 @@ impl VoskSession { } } } + +impl Drop for VoskSession { + fn drop(&mut self) { + unsafe { ffi::vosk_recognizer_free(self.inner) } + } +}