ms-vite-plugin 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/build.js +6 -0
  2. package/dist/cli.js +98 -8
  3. package/dist/mcp/device-config.d.ts +55 -0
  4. package/dist/mcp/device-config.js +183 -0
  5. package/dist/mcp/docs-service.d.ts +65 -0
  6. package/dist/mcp/docs-service.js +168 -0
  7. package/dist/mcp/project.d.ts +16 -0
  8. package/dist/mcp/project.js +74 -0
  9. package/dist/mcp/tools.d.ts +18 -0
  10. package/dist/mcp/tools.js +825 -0
  11. package/dist/mcp/types.d.ts +32 -0
  12. package/dist/mcp/types.js +11 -0
  13. package/dist/mcp-server.d.ts +2 -0
  14. package/dist/mcp-server.js +86 -0
  15. package/dist/project.d.ts +89 -0
  16. package/dist/project.js +306 -0
  17. package/dist/version.d.ts +12 -0
  18. package/dist/version.js +63 -0
  19. package/docs/api/action.md +922 -0
  20. package/docs/api/appleocr.md +229 -0
  21. package/docs/api/config.md +122 -0
  22. package/docs/api/cryptoUtils.md +232 -0
  23. package/docs/api/device.md +374 -0
  24. package/docs/api/file.md +516 -0
  25. package/docs/api/global.md +617 -0
  26. package/docs/api/hid.md +1032 -0
  27. package/docs/api/hotUpdate.md +166 -0
  28. package/docs/api/http.md +548 -0
  29. package/docs/api/image.md +907 -0
  30. package/docs/api/ime.md +290 -0
  31. package/docs/api/logger.md +324 -0
  32. package/docs/api/media.md +248 -0
  33. package/docs/api/mysql.md +441 -0
  34. package/docs/api/netCard.md +200 -0
  35. package/docs/api/node.md +353 -0
  36. package/docs/api/paddleocr.md +246 -0
  37. package/docs/api/pip.md +242 -0
  38. package/docs/api/system.md +572 -0
  39. package/docs/api/thread.md +269 -0
  40. package/docs/api/tomatoocr.md +425 -0
  41. package/docs/api/tts.md +334 -0
  42. package/docs/api/ui.md +947 -0
  43. package/docs/api/utils.md +265 -0
  44. package/docs/api/yolo.md +310 -0
  45. package/docs/apicn/action.md +919 -0
  46. package/docs/apicn/appleocr.md +233 -0
  47. package/docs/apicn/config.md +120 -0
  48. package/docs/apicn/device.md +385 -0
  49. package/docs/apicn/file.md +511 -0
  50. package/docs/apicn/global.md +613 -0
  51. package/docs/apicn/hid.md +1033 -0
  52. package/docs/apicn/hotUpdate.md +170 -0
  53. package/docs/apicn/http.md +672 -0
  54. package/docs/apicn/image.md +924 -0
  55. package/docs/apicn/ime.md +290 -0
  56. package/docs/apicn/logger.md +332 -0
  57. package/docs/apicn/media.md +252 -0
  58. package/docs/apicn/mysql.md +445 -0
  59. package/docs/apicn/netCard.md +200 -0
  60. package/docs/apicn/node.md +362 -0
  61. package/docs/apicn/paddleocr.md +255 -0
  62. package/docs/apicn/pip.md +242 -0
  63. package/docs/apicn/system.md +575 -0
  64. package/docs/apicn/thread.md +269 -0
  65. package/docs/apicn/tts.md +338 -0
  66. package/docs/apicn/ui.md +933 -0
  67. package/docs/apicn/utils.md +265 -0
  68. package/docs/apicn/yolo.md +314 -0
  69. package/docs/apipython/action.md +901 -0
  70. package/docs/apipython/appleocr.md +226 -0
  71. package/docs/apipython/config.md +126 -0
  72. package/docs/apipython/cryptoUtils.md +246 -0
  73. package/docs/apipython/device.md +365 -0
  74. package/docs/apipython/file.md +476 -0
  75. package/docs/apipython/g.md +154 -0
  76. package/docs/apipython/hid.md +1059 -0
  77. package/docs/apipython/hotUpdate.md +154 -0
  78. package/docs/apipython/image.md +938 -0
  79. package/docs/apipython/ime.md +306 -0
  80. package/docs/apipython/logger.md +330 -0
  81. package/docs/apipython/media.md +221 -0
  82. package/docs/apipython/mysql.md +432 -0
  83. package/docs/apipython/netCard.md +219 -0
  84. package/docs/apipython/node.md +331 -0
  85. package/docs/apipython/overview.md +66 -0
  86. package/docs/apipython/paddleocr.md +211 -0
  87. package/docs/apipython/pip.md +231 -0
  88. package/docs/apipython/system.md +458 -0
  89. package/docs/apipython/tomatoocr.md +444 -0
  90. package/docs/apipython/tts.md +331 -0
  91. package/docs/apipython/ui.md +949 -0
  92. package/docs/apipython/utils.md +284 -0
  93. package/docs/apipython/yolo.md +281 -0
  94. package/package.json +8 -4
@@ -0,0 +1,334 @@
1
+ # TTS 模块 (Text-to-Speech)
2
+
3
+ TTS(文本转语音)模块提供了语音合成、播放控制等功能,支持多种语言和语音设置。
4
+
5
+ ## 接口定义
6
+
7
+ ### VoiceInfo - 语音信息接口
8
+
9
+ ```typescript
10
+ interface VoiceInfo {
11
+ /** 语音标识符 */
12
+ identifier: string;
13
+ /** 语音名称 */
14
+ name: string;
15
+ /** 语言代码 */
16
+ language: string;
17
+ /** 语音质量等级 */
18
+ quality: number;
19
+ }
20
+ ```
21
+
22
+ **属性说明:**
23
+
24
+ | 属性名 | 类型 | 描述 |
25
+ | ------------ | ------ | ----------------------------------------- |
26
+ | `identifier` | string | 语音的唯一标识符,用于设置特定语音 |
27
+ | `name` | string | 语音的显示名称 |
28
+ | `language` | string | 语音支持的语言代码(如 "zh-CN", "en-US") |
29
+ | `quality` | number | 语音质量等级,数值越高质量越好 |
30
+
31
+ ## 语音播放
32
+
33
+ ### speak - 播放文本转语音
34
+
35
+ #### 完整参数版本
36
+
37
+ ```typescript
38
+ function speak(
39
+ text: string,
40
+ rate?: number,
41
+ pitch?: number,
42
+ volume?: number,
43
+ language?: string
44
+ ): boolean;
45
+ ```
46
+
47
+ **参数说明:**
48
+
49
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
50
+ | ---------- | ------ | -------- | ------- | ---------------------------- |
51
+ | `text` | string | 是 | | 要转换为语音的文本内容 |
52
+ | `rate` | number | 否 | 0.5 | 语速,范围 0.0-1.0,默认 0.5 |
53
+ | `pitch` | number | 否 | 1.0 | 音调,范围 0.5-2.0,默认 1.0 |
54
+ | `volume` | number | 否 | 1.0 | 音量,范围 0.0-1.0,默认 1.0 |
55
+ | `language` | string | 否 | "zh-CN" | 语言代码,默认 "zh-CN" |
56
+
57
+ **返回值:**
58
+
59
+ | 类型 | 描述 |
60
+ | --------- | ---------------- |
61
+ | `boolean` | 是否成功开始播放 |
62
+
63
+ **示例:**
64
+
65
+ ```javascript
66
+ // 使用简化参数播放中文文本
67
+ tts.speak("欢迎使用 TTS 功能");
68
+
69
+ // 使用完整参数播放中文语音
70
+ const success = tts.speak("你好世界", 0.5, 1.0, 1.0, "zh-CN");
71
+ if (success) {
72
+ logi("语音播放成功");
73
+ }
74
+
75
+ // 播放英文语音,调整语速和音调
76
+ tts.speak("Hello World", 0.7, 1.2, 0.8, "en-US");
77
+
78
+ // 慢速播放,低音调
79
+ tts.speak("这是一段慢速语音", 0.3, 0.8, 1.0, "zh-CN");
80
+
81
+ // 快速播放,高音调
82
+ tts.speak("这是一段快速语音", 0.9, 1.5, 1.0, "zh-CN");
83
+ ```
84
+
85
+ ## 播放控制
86
+
87
+ ### waitEnd - 等待播放完成
88
+
89
+ ```typescript
90
+ function waitEnd(): void;
91
+ ```
92
+
93
+ **说明:**
94
+
95
+ - 调用 `waitEnd()` 会阻塞当前线程,直到当前播放的语音完成。
96
+ - 通常在需要确保语音播放完成后再执行后续操作时使用。
97
+
98
+ **示例:**
99
+
100
+ ```javascript
101
+ // 播放一段文本
102
+ tts.speak("这是一段需要等待播放完成的文本");
103
+
104
+ // 等待播放完成
105
+ tts.waitEnd();
106
+
107
+ logi("语音播放完成");
108
+ ```
109
+
110
+ ### stop - 停止播放
111
+
112
+ ```typescript
113
+ function stop(): void;
114
+ ```
115
+
116
+ 停止当前正在播放的语音。
117
+
118
+ **示例:**
119
+
120
+ ```javascript
121
+ // 开始播放
122
+ tts.speak("这是一段很长的文本内容...");
123
+
124
+ // 在某个条件下停止播放
125
+ if (shouldStop) {
126
+ tts.stop();
127
+ logi("语音播放已停止");
128
+ }
129
+ ```
130
+
131
+ ### isSpeaking - 检查播放状态
132
+
133
+ ```typescript
134
+ function isSpeaking(): boolean;
135
+ ```
136
+
137
+ 检查当前是否正在播放语音。
138
+
139
+ **返回值:**
140
+
141
+ | 类型 | 描述 |
142
+ | --------- | ------------ |
143
+ | `boolean` | 是否正在播放 |
144
+
145
+ **示例:**
146
+
147
+ ```javascript
148
+ // 检查播放状态
149
+ if (tts.isSpeaking()) {
150
+ logi("正在播放语音");
151
+ } else {
152
+ logi("当前没有播放语音");
153
+ }
154
+
155
+ // 等待播放完成
156
+ while (tts.isSpeaking()) {
157
+ sleep(100); // 等待 100ms
158
+ }
159
+ logi("语音播放完成");
160
+ ```
161
+
162
+ ## 语音设置
163
+
164
+ ### getAvailableVoices - 获取可用语音列表
165
+
166
+ ```typescript
167
+ function getAvailableVoices(): VoiceInfo[];
168
+ ```
169
+
170
+ 获取系统中所有可用的语音信息。
171
+
172
+ **返回值:**
173
+
174
+ | 类型 | 描述 |
175
+ | ------------- | ------------ |
176
+ | `VoiceInfo[]` | 语音信息数组 |
177
+
178
+ **示例:**
179
+
180
+ ```javascript
181
+ // 获取并显示所有可用语音
182
+ const voices = tts.getAvailableVoices();
183
+ logi(`找到 ${voices.length} 个可用语音:`);
184
+
185
+ voices.forEach((voice, index) => {
186
+ logi(`${index + 1}. 名称: ${voice.name}`);
187
+ logi(` 语言: ${voice.language}`);
188
+ logi(` 标识符: ${voice.identifier}`);
189
+ logi(` 质量: ${voice.quality}`);
190
+ logi("---");
191
+ });
192
+
193
+ // 筛选中文语音
194
+ const chineseVoices = voices.filter((voice) => voice.language.startsWith("zh"));
195
+ logi(`找到 ${chineseVoices.length} 个中文语音`);
196
+
197
+ // 筛选英文语音
198
+ const englishVoices = voices.filter((voice) => voice.language.startsWith("en"));
199
+ logi(`找到 ${englishVoices.length} 个英文语音`);
200
+ ```
201
+
202
+ ### setVoice - 设置语音
203
+
204
+ ```typescript
205
+ function setVoice(voiceIdentifier: string): boolean;
206
+ ```
207
+
208
+ 设置要使用的语音。
209
+
210
+ **参数说明:**
211
+
212
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
213
+ | ----------------- | ------ | -------- | ------ | -------------------------------------------- |
214
+ | `voiceIdentifier` | string | 是 | | 语音标识符,可从 `getAvailableVoices()` 获取 |
215
+
216
+ **返回值:**
217
+
218
+ | 类型 | 描述 |
219
+ | --------- | ------------ |
220
+ | `boolean` | 是否设置成功 |
221
+
222
+ **示例:**
223
+
224
+ ```javascript
225
+ // 获取可用语音并设置第一个中文语音
226
+ const voices = tts.getAvailableVoices();
227
+ const chineseVoice = voices.find((voice) => voice.language.startsWith("zh"));
228
+
229
+ if (chineseVoice) {
230
+ const success = tts.setVoice(chineseVoice.identifier);
231
+ if (success) {
232
+ logi(`成功设置语音: ${chineseVoice.name}`);
233
+ tts.speak("语音设置成功");
234
+ } else {
235
+ loge("语音设置失败");
236
+ }
237
+ }
238
+
239
+ // 设置特定的系统语音
240
+ const success = tts.setVoice("com.apple.ttsbundle.Samantha-compact");
241
+ if (success) {
242
+ logi("成功设置为 Samantha 语音");
243
+ tts.speak("Hello, I am Samantha");
244
+ }
245
+ ```
246
+
247
+ ## 资源管理
248
+
249
+ ### free - 释放 TTS 资源
250
+
251
+ ```typescript
252
+ function free(): void;
253
+ ```
254
+
255
+ `speak`方法调用时,会自动初始化 TTS 模块并在内存缓存,大概增加 20-30MB 的内存占用。
256
+
257
+ 默认缓存的情况下,`speak`方法调用会更快,因为不需要重复初始化 TTS 模块。
258
+
259
+ 一般情况下,不需要手动调用`free`方法,除非内存资源有限。
260
+
261
+ 调用`free`时,会立即停止当前播放并释放 TTS 资源。
262
+
263
+ **示例:**
264
+
265
+ ```javascript
266
+ tts.free();
267
+ ```
268
+
269
+ ## 实用示例
270
+
271
+ ### 语音提醒功能
272
+
273
+ ```javascript
274
+ function voiceAlert(message, urgent) {
275
+ if (urgent) {
276
+ // 紧急提醒:快速、高音调
277
+ tts.speak(message, 0.8, 1.5, 1.0, "zh-CN");
278
+ } else {
279
+ // 普通提醒:正常语速
280
+ tts.speak(message, 0.5, 1.0, 0.8, "zh-CN");
281
+ }
282
+ }
283
+
284
+ // 使用示例
285
+ voiceAlert("任务完成", false);
286
+ voiceAlert("发现错误,请立即处理", true);
287
+ ```
288
+
289
+ ### 多语言播报
290
+
291
+ ```javascript
292
+ function speakInLanguage(text, language) {
293
+ // 根据语言选择合适的语音
294
+ const voices = tts.getAvailableVoices();
295
+ const targetVoice = voices.find((voice) =>
296
+ voice.language.startsWith(language)
297
+ );
298
+
299
+ if (targetVoice) {
300
+ tts.setVoice(targetVoice.identifier);
301
+ tts.speak(text, 0.5, 1.0, 1.0, language);
302
+ } else {
303
+ logw(`未找到 ${language} 语音,使用默认语音`);
304
+ tts.speak(text);
305
+ }
306
+ }
307
+
308
+ // 使用示例
309
+ speakInLanguage("Hello World", "en");
310
+ speakInLanguage("你好世界", "zh");
311
+ speakInLanguage("こんにちは", "ja");
312
+ ```
313
+
314
+ ## 注意事项
315
+
316
+ 1. **语音资源**:不同设备可用的语音可能不同,建议在使用前检查可用语音列表
317
+ 2. **播放状态**:在开始新的语音播放前,建议检查当前播放状态
318
+ 3. **语言匹配**:设置语音时要确保语音支持要播放的语言
319
+ 4. **性能考虑**:频繁的语音播放可能影响性能,建议合理控制播放频率
320
+ 5. **错误处理**:语音播放可能失败,建议检查返回值并进行适当的错误处理
321
+
322
+ ## 常见问题
323
+
324
+ **Q: 为什么语音播放失败?**
325
+
326
+ A: 可能的原因包括:文本为空、语音资源不可用、系统音频设置问题等。建议检查参数和系统设置。
327
+
328
+ **Q: 如何实现更自然的语音效果?**
329
+
330
+ A: 可以通过调整语速(rate)、音调(pitch)参数,选择高质量的语音,以及在文本中添加适当的标点符号来改善语音效果。
331
+
332
+ **Q: 支持哪些语言?**
333
+
334
+ A: 支持的语言取决于系统安装的语音包,可以通过 `getAvailableVoices()` 查看所有可用的语言和语音。