1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
//! 统一错误处理模块
//!
//! 该模块为整个语音工具库提供统一的错误处理机制。通过将各个子模块的错误类型
//! 统一封装,使得调用者可以使用单一的错误类型来处理所有可能的错误情况。
//!
//! ## 设计理念
//!
//! - **统一接口**: 所有子模块的错误都转换为统一的 `Error` 枚举
//! - **类型安全**: 使用 `thiserror` 宏确保类型安全的错误处理
//! - **可扩展性**: 支持动态添加新的错误类型
//! - **错误上下文**: 保持原始错误信息,便于调试和错误追踪
//!
//! ## 使用示例
//!
//! ```rust
//! use voice_toolkit::{Error, Result};
//!
//! fn process_audio() -> Result<()> {
//! // 你的处理逻辑
//! Ok(())
//! }
//!
//! fn main() {
//! match process_audio() {
//! Ok(_) => println!("处理成功"),
//! Err(Error::Audio(e)) => println!("音频处理错误: {}", e),
//! Err(Error::Stt(e)) => println!("语音识别错误: {}", e),
//! Err(Error::Io(e)) => println!("IO错误: {}", e),
//! Err(Error::Other(e)) => println!("其他错误: {}", e),
//! }
//! }
//! ```
//!
//! ## 错误类型
//!
//! - `Audio`: 音频处理相关的错误(格式转换、重采样等)
//! - `Stt`: 语音转文本相关的错误(模型加载、转录等)
//! - `Tts`: 文本转语音相关的错误(合成、引擎等)
//! - `Io`: 文件操作相关的错误
//! - `Other`: 其他未分类的错误
//!
//! ## 错误转换
//!
//! 该模块提供了自动的错误转换实现,使得子模块的错误可以自动转换为
//! 统一的错误类型,简化了错误处理代码。
use Error;
/// 统一错误类型
///
/// 这是整个语音工具库的主要错误类型,封装了所有可能的错误情况。
/// 使用特性标志来控制不同错误类型的可用性。
/// 统一结果类型别名
///
/// 这是整个语音工具库的标准结果类型。所有公共函数都返回这个类型,
/// 确保错误处理的一致性。
///
/// # 示例
///
/// ```rust
/// use voice_toolkit::Result;
///
/// fn process_data() -> Result<String> {
/// // 处理逻辑
/// Ok("处理完成".to_string())
/// }
///
/// fn main() {
/// match process_data() {
/// Ok(result) => println!("{}", result),
/// Err(e) => println!("错误: {}", e),
/// }
/// }
/// ```
pub type Result<T> = Result;
/// 错误辅助函数
/// 从字符串转换
/// 从&str转换
/// 从STT错误转换
/// 从音频错误转换
/// 从TTS错误转换