Skip to main content

natural_tts/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum TtsError {
5    #[error("Not Supported")]
6    NotSupported,
7    #[error("Operation failed")]
8    OperationFailed,
9    #[error("Model Not Loaded")]
10    NotLoaded,
11    #[error("Didn't Save")]
12    NotSaved,
13    #[error("Default model not set")]
14    NoDefaultModel,
15    #[error("Tensor Error")]
16    Tensor,
17    #[error("No Tokenizer Key")]
18    NoTokenizerKey,
19    #[error("Hound Error : {0}")]
20    Hound(#[from] hound::Error),
21    #[error("Rodio Play Error : {0}")]
22    RodioPlay(#[from] rodio::PlayError),
23    #[error("Rodio Stream Error : {0}")]
24    RodioStream(#[from] rodio::StreamError),
25    #[error("Rodio Devices Error : {0}")]
26    RodioDevices(#[from] rodio::DevicesError),
27    #[error("IO Error : {0}")]
28    IO(#[from] std::io::Error),
29    #[error("TTS Error : {0}")]
30    #[cfg(feature = "tts-rs")]
31    Tts(#[from] tts::Error),
32    #[error("MSEdge Error : {0}")]
33    #[cfg(feature = "msedge")]
34    MSEdge(#[from] msedge_tts::error::Error),
35    #[error("Pyo3 Error : {0}")]
36    #[cfg(feature = "coqui")]
37    Py(#[from] pyo3::PyErr),
38    #[error("Candle Error : {0}")]
39    #[cfg(feature = "meta")]
40    Candle(#[from] candle_core::Error),
41    #[error("Rand Error : {0}")]
42    #[cfg(feature = "meta")]
43    RandWeights(#[from] rand::seq::WeightError),
44    #[error("HF Hub Error : {0}")]
45    #[cfg(feature = "meta")]
46    HFHub(#[from] hf_hub::api::sync::ApiError),
47    #[error("Serder Error : {0}")]
48    #[cfg(feature = "meta")]
49    Serde(#[from] serde_json::Error),
50    #[error("Json Error")]
51    Json,
52    #[error("Error {0}")]
53    Text(String),
54}
55
56impl From<String> for TtsError {
57    fn from(value: String) -> Self {
58        Self::Text(value)
59    }
60}