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}