Path: blob/master/examples/rust-example/src/utils.rs
1171 views
#[derive(Debug, Clone, Copy)]1pub enum SampleRate {2EightkHz,3SixteenkHz,4}56impl From<SampleRate> for i64 {7fn from(value: SampleRate) -> Self {8match value {9SampleRate::EightkHz => 8000,10SampleRate::SixteenkHz => 16000,11}12}13}1415impl From<SampleRate> for usize {16fn from(value: SampleRate) -> Self {17match value {18SampleRate::EightkHz => 8000,19SampleRate::SixteenkHz => 16000,20}21}22}2324#[derive(Debug)]25pub struct VadParams {26pub frame_size: usize,27pub threshold: f32,28pub min_silence_duration_ms: usize,29pub speech_pad_ms: usize,30pub min_speech_duration_ms: usize,31pub max_speech_duration_s: f32,32pub sample_rate: usize,33}3435impl Default for VadParams {36fn default() -> Self {37Self {38frame_size: 64,39threshold: 0.5,40min_silence_duration_ms: 0,41speech_pad_ms: 64,42min_speech_duration_ms: 64,43max_speech_duration_s: f32::INFINITY,44sample_rate: 16000,45}46}47}4849#[derive(Debug, Default)]50pub struct TimeStamp {51pub start: i64,52pub end: i64,53}5455impl std::fmt::Display for TimeStamp {56fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {57write!(f, "[start:{:08}, end:{:08}]", self.start, self.end)58}59}606162