1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum TtsError {
8 #[error("Unsupported model: {0}")]
10 UnsupportedModel(String),
11
12 #[error("Failed to load model weights: {0}")]
14 WeightLoadError(String),
15
16 #[error("Configuration error: {0}")]
18 ConfigError(String),
19
20 #[error("Compute error: {0}")]
22 ComputeError(#[from] candle_core::Error),
23
24 #[error("Tokenizer error: {0}")]
26 TokenizerError(String),
27
28 #[error("Unknown voice: {0}")]
30 UnknownVoice(String),
31
32 #[error("Unsupported language: {0}")]
34 UnsupportedLanguage(String),
35
36 #[error("I/O error: {0}")]
38 IoError(#[from] std::io::Error),
39
40 #[error("JSON error: {0}")]
42 JsonError(#[from] serde_json::Error),
43
44 #[error("Model path not specified and download feature is not enabled")]
46 ModelPathMissing,
47
48 #[error("Required file missing: {0}")]
50 FileMissing(String),
51
52 #[error("Model error: {0}")]
54 ModelError(String),
55
56 #[error("Runtime error: {0}")]
58 RuntimeError(String),
59
60 #[error("Audio encoding error: {0}")]
62 AudioError(String),
63}
64
65pub type TtsResult<T> = Result<T, TtsError>;