use ort::session::builder::SessionBuilder;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum TenVadError {
#[error("Failed to run ONNX session: {0}")]
OnnxRuntimeError(#[from] ort::Error),
#[error("Empty audio data provided")]
EmptyAudioData,
#[error("Unsupported sample rate: {0}Hz. TEN VAD only supports 16kHz")]
UnsupportedSampleRate(u32),
#[error("Invalid configuration: {0}")]
InvalidConfiguration(String),
}
impl From<ort::Error<SessionBuilder>> for TenVadError {
fn from(value: ort::Error<SessionBuilder>) -> Self {
Self::OnnxRuntimeError(value.into())
}
}
pub type TenVadResult<T> = Result<T, TenVadError>;