tjbot-ce 3.0.1

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 (224) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +382 -0
  3. package/dist/camera/camera.d.ts +62 -0
  4. package/dist/camera/camera.d.ts.map +1 -0
  5. package/dist/camera/camera.js +155 -0
  6. package/dist/camera/camera.js.map +1 -0
  7. package/dist/camera/index.d.ts +18 -0
  8. package/dist/camera/index.d.ts.map +1 -0
  9. package/dist/camera/index.js +18 -0
  10. package/dist/camera/index.js.map +1 -0
  11. package/dist/config/config-types.d.ts +75 -0
  12. package/dist/config/config-types.d.ts.map +1 -0
  13. package/dist/config/config-types.generated.d.ts +495 -0
  14. package/dist/config/config-types.generated.d.ts.map +1 -0
  15. package/dist/config/config-types.generated.js +2 -0
  16. package/dist/config/config-types.generated.js.map +1 -0
  17. package/dist/config/config-types.js +175 -0
  18. package/dist/config/config-types.js.map +1 -0
  19. package/dist/config/index.d.ts +20 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +19 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/tjbot-config.d.ts +98 -0
  24. package/dist/config/tjbot-config.d.ts.map +1 -0
  25. package/dist/config/tjbot-config.js +309 -0
  26. package/dist/config/tjbot-config.js.map +1 -0
  27. package/dist/config/vendor/colors.yaml +61 -0
  28. package/dist/config/vendor/model-registry.yaml +275 -0
  29. package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
  30. package/dist/config/vendor/tjbot.default.toml +452 -0
  31. package/dist/led/index.d.ts +20 -0
  32. package/dist/led/index.d.ts.map +1 -0
  33. package/dist/led/index.js +20 -0
  34. package/dist/led/index.js.map +1 -0
  35. package/dist/led/led-common-anode.d.ts +38 -0
  36. package/dist/led/led-common-anode.d.ts.map +1 -0
  37. package/dist/led/led-common-anode.js +79 -0
  38. package/dist/led/led-common-anode.js.map +1 -0
  39. package/dist/led/led-neopixel-spi.d.ts +60 -0
  40. package/dist/led/led-neopixel-spi.d.ts.map +1 -0
  41. package/dist/led/led-neopixel-spi.js +216 -0
  42. package/dist/led/led-neopixel-spi.js.map +1 -0
  43. package/dist/led/led-neopixel-ws281x.js +186 -0
  44. package/dist/led/led-neopixel.d.ts +57 -0
  45. package/dist/led/led-neopixel.d.ts.map +1 -0
  46. package/dist/led/led-neopixel.js +235 -0
  47. package/dist/led/led-neopixel.js.map +1 -0
  48. package/dist/microphone/index.d.ts +18 -0
  49. package/dist/microphone/index.d.ts.map +1 -0
  50. package/dist/microphone/index.js +18 -0
  51. package/dist/microphone/index.js.map +1 -0
  52. package/dist/microphone/microphone.d.ts +65 -0
  53. package/dist/microphone/microphone.d.ts.map +1 -0
  54. package/dist/microphone/microphone.js +179 -0
  55. package/dist/microphone/microphone.js.map +1 -0
  56. package/dist/rpi-drivers/index.d.ts +22 -0
  57. package/dist/rpi-drivers/index.d.ts.map +1 -0
  58. package/dist/rpi-drivers/index.js +22 -0
  59. package/dist/rpi-drivers/index.js.map +1 -0
  60. package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
  61. package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
  62. package/dist/rpi-drivers/rpi-detect.js +49 -0
  63. package/dist/rpi-drivers/rpi-detect.js.map +1 -0
  64. package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
  65. package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
  66. package/dist/rpi-drivers/rpi-driver.js +261 -0
  67. package/dist/rpi-drivers/rpi-driver.js.map +1 -0
  68. package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
  69. package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
  70. package/dist/rpi-drivers/rpi3-driver.js +145 -0
  71. package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
  72. package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
  73. package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
  74. package/dist/rpi-drivers/rpi4-driver.js +101 -0
  75. package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
  76. package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
  77. package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
  78. package/dist/rpi-drivers/rpi5-driver.js +78 -0
  79. package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
  80. package/dist/servo/index.d.ts +19 -0
  81. package/dist/servo/index.d.ts.map +1 -0
  82. package/dist/servo/index.js +19 -0
  83. package/dist/servo/index.js.map +1 -0
  84. package/dist/servo/servo-constants.d.ts +33 -0
  85. package/dist/servo/servo-constants.d.ts.map +1 -0
  86. package/dist/servo/servo-constants.js +34 -0
  87. package/dist/servo/servo-constants.js.map +1 -0
  88. package/dist/servo/servo-lgpio.d.ts +82 -0
  89. package/dist/servo/servo-lgpio.d.ts.map +1 -0
  90. package/dist/servo/servo-lgpio.js +178 -0
  91. package/dist/servo/servo-lgpio.js.map +1 -0
  92. package/dist/speaker/audio-player.d.ts +30 -0
  93. package/dist/speaker/audio-player.d.ts.map +1 -0
  94. package/dist/speaker/audio-player.js +68 -0
  95. package/dist/speaker/audio-player.js.map +1 -0
  96. package/dist/speaker/index.d.ts +18 -0
  97. package/dist/speaker/index.d.ts.map +1 -0
  98. package/dist/speaker/index.js +18 -0
  99. package/dist/speaker/index.js.map +1 -0
  100. package/dist/speaker/speaker.d.ts +53 -0
  101. package/dist/speaker/speaker.d.ts.map +1 -0
  102. package/dist/speaker/speaker.js +125 -0
  103. package/dist/speaker/speaker.js.map +1 -0
  104. package/dist/stt/backends/azure-stt.d.ts +32 -0
  105. package/dist/stt/backends/azure-stt.d.ts.map +1 -0
  106. package/dist/stt/backends/azure-stt.js +227 -0
  107. package/dist/stt/backends/azure-stt.js.map +1 -0
  108. package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
  109. package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
  110. package/dist/stt/backends/google-cloud-stt.js +371 -0
  111. package/dist/stt/backends/google-cloud-stt.js.map +1 -0
  112. package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
  113. package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
  114. package/dist/stt/backends/ibm-watson-stt.js +190 -0
  115. package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
  116. package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
  117. package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
  118. package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
  119. package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
  120. package/dist/stt/index.d.ts +20 -0
  121. package/dist/stt/index.d.ts.map +1 -0
  122. package/dist/stt/index.js +21 -0
  123. package/dist/stt/index.js.map +1 -0
  124. package/dist/stt/stt-engine.d.ts +68 -0
  125. package/dist/stt/stt-engine.d.ts.map +1 -0
  126. package/dist/stt/stt-engine.js +99 -0
  127. package/dist/stt/stt-engine.js.map +1 -0
  128. package/dist/stt/stt-utils.d.ts +36 -0
  129. package/dist/stt/stt-utils.d.ts.map +1 -0
  130. package/dist/stt/stt-utils.js +112 -0
  131. package/dist/stt/stt-utils.js.map +1 -0
  132. package/dist/stt/stt.d.ts +52 -0
  133. package/dist/stt/stt.d.ts.map +1 -0
  134. package/dist/stt/stt.js +100 -0
  135. package/dist/stt/stt.js.map +1 -0
  136. package/dist/tjbot.d.ts +317 -0
  137. package/dist/tjbot.d.ts.map +1 -0
  138. package/dist/tjbot.js +736 -0
  139. package/dist/tjbot.js.map +1 -0
  140. package/dist/tts/backends/azure-tts.d.ts +30 -0
  141. package/dist/tts/backends/azure-tts.d.ts.map +1 -0
  142. package/dist/tts/backends/azure-tts.js +92 -0
  143. package/dist/tts/backends/azure-tts.js.map +1 -0
  144. package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
  145. package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
  146. package/dist/tts/backends/google-cloud-tts.js +116 -0
  147. package/dist/tts/backends/google-cloud-tts.js.map +1 -0
  148. package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
  149. package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
  150. package/dist/tts/backends/ibm-watson-tts.js +99 -0
  151. package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
  152. package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
  153. package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
  154. package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
  155. package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
  156. package/dist/tts/index.d.ts +19 -0
  157. package/dist/tts/index.d.ts.map +1 -0
  158. package/dist/tts/index.js +20 -0
  159. package/dist/tts/index.js.map +1 -0
  160. package/dist/tts/tts-engine.d.ts +67 -0
  161. package/dist/tts/tts-engine.d.ts.map +1 -0
  162. package/dist/tts/tts-engine.js +109 -0
  163. package/dist/tts/tts-engine.js.map +1 -0
  164. package/dist/tts/tts.d.ts +47 -0
  165. package/dist/tts/tts.d.ts.map +1 -0
  166. package/dist/tts/tts.js +101 -0
  167. package/dist/tts/tts.js.map +1 -0
  168. package/dist/utils/colors.d.ts +39 -0
  169. package/dist/utils/colors.d.ts.map +1 -0
  170. package/dist/utils/colors.js +155 -0
  171. package/dist/utils/colors.js.map +1 -0
  172. package/dist/utils/constants.d.ts +41 -0
  173. package/dist/utils/constants.d.ts.map +1 -0
  174. package/dist/utils/constants.js +43 -0
  175. package/dist/utils/constants.js.map +1 -0
  176. package/dist/utils/credentials.d.ts +43 -0
  177. package/dist/utils/credentials.d.ts.map +1 -0
  178. package/dist/utils/credentials.js +121 -0
  179. package/dist/utils/credentials.js.map +1 -0
  180. package/dist/utils/errors.d.ts +26 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +32 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/index.d.ts +25 -0
  185. package/dist/utils/index.d.ts.map +1 -0
  186. package/dist/utils/index.js +23 -0
  187. package/dist/utils/index.js.map +1 -0
  188. package/dist/utils/logging.d.ts +44 -0
  189. package/dist/utils/logging.d.ts.map +1 -0
  190. package/dist/utils/logging.js +113 -0
  191. package/dist/utils/logging.js.map +1 -0
  192. package/dist/utils/model-registry.d.ts +142 -0
  193. package/dist/utils/model-registry.d.ts.map +1 -0
  194. package/dist/utils/model-registry.js +391 -0
  195. package/dist/utils/model-registry.js.map +1 -0
  196. package/dist/utils/utils.d.ts +33 -0
  197. package/dist/utils/utils.d.ts.map +1 -0
  198. package/dist/utils/utils.js +50 -0
  199. package/dist/utils/utils.js.map +1 -0
  200. package/dist/vision/backends/azure-vision.d.ts +33 -0
  201. package/dist/vision/backends/azure-vision.d.ts.map +1 -0
  202. package/dist/vision/backends/azure-vision.js +151 -0
  203. package/dist/vision/backends/azure-vision.js.map +1 -0
  204. package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
  205. package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
  206. package/dist/vision/backends/google-cloud-vision.js +193 -0
  207. package/dist/vision/backends/google-cloud-vision.js.map +1 -0
  208. package/dist/vision/backends/onnx.d.ts +116 -0
  209. package/dist/vision/backends/onnx.d.ts.map +1 -0
  210. package/dist/vision/backends/onnx.js +781 -0
  211. package/dist/vision/backends/onnx.js.map +1 -0
  212. package/dist/vision/index.d.ts +19 -0
  213. package/dist/vision/index.d.ts.map +1 -0
  214. package/dist/vision/index.js +20 -0
  215. package/dist/vision/index.js.map +1 -0
  216. package/dist/vision/vision-engine.d.ts +131 -0
  217. package/dist/vision/vision-engine.d.ts.map +1 -0
  218. package/dist/vision/vision-engine.js +97 -0
  219. package/dist/vision/vision-engine.js.map +1 -0
  220. package/dist/vision/vision.d.ts +48 -0
  221. package/dist/vision/vision.d.ts.map +1 -0
  222. package/dist/vision/vision.js +83 -0
  223. package/dist/vision/vision.js.map +1 -0
  224. package/package.json +124 -0
@@ -0,0 +1,792 @@
1
+ # Copyright 2026-present TJBot Contributors. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ $schema: http://json-schema.org/draft-07/schema#
16
+ title: TJBotConfigSchema
17
+ description: Canonical schema for TJBot runtime configuration.
18
+ type: object
19
+ additionalProperties: true
20
+ properties:
21
+ log:
22
+ $ref: '#/definitions/LogConfig'
23
+ hardware:
24
+ $ref: '#/definitions/HardwareConfig'
25
+ listen:
26
+ $ref: '#/definitions/ListenConfig'
27
+ see:
28
+ $ref: '#/definitions/SeeConfig'
29
+ shine:
30
+ $ref: '#/definitions/ShineConfig'
31
+ speak:
32
+ $ref: '#/definitions/SpeakConfig'
33
+ wave:
34
+ $ref: '#/definitions/WaveConfig'
35
+ models:
36
+ $ref: '#/definitions/ModelsConfig'
37
+ recipe:
38
+ type: object
39
+ description: Free-form recipe-level configuration merged after TJBot defaults and user config.
40
+ additionalProperties: true
41
+ default: {}
42
+ definitions:
43
+ LogLevel:
44
+ type: string
45
+ description: Verbosity level for TJBot logging.
46
+ enum:
47
+ - error
48
+ - warning
49
+ - warn
50
+ - info
51
+ - verbose
52
+ - debug
53
+ - silly
54
+ default: info
55
+ LogConfig:
56
+ type: object
57
+ description: Console logging configuration.
58
+ additionalProperties: true
59
+ properties:
60
+ level:
61
+ $ref: '#/definitions/LogLevel'
62
+ default:
63
+ level: info
64
+ HardwareConfig:
65
+ type: object
66
+ description: Hardware physically attached to the Raspberry Pi.
67
+ additionalProperties: true
68
+ properties:
69
+ speaker:
70
+ type: boolean
71
+ description: Set to true when a speaker is connected and should be initialized.
72
+ default: false
73
+ microphone:
74
+ type: boolean
75
+ description: Set to true when a microphone is connected and should be initialized.
76
+ default: false
77
+ led:
78
+ type: boolean
79
+ description: Set to true when TJBot should initialize an LED output.
80
+ default: false
81
+ servo:
82
+ type: boolean
83
+ description: Set to true when TJBot should initialize the arm servo.
84
+ default: false
85
+ camera:
86
+ type: boolean
87
+ description: Set to true when a camera is attached and vision features should initialize.
88
+ default: false
89
+ default:
90
+ speaker: false
91
+ microphone: false
92
+ led: false
93
+ servo: false
94
+ camera: false
95
+ VADConfig:
96
+ type: object
97
+ description: Voice activity detection settings for local speech recognition.
98
+ additionalProperties: true
99
+ properties:
100
+ enabled:
101
+ type: boolean
102
+ description: Enables the VAD model before local transcription.
103
+ default: true
104
+ model:
105
+ type: string
106
+ description: Registry key of the VAD model to load.
107
+ default: silero-vad
108
+ default:
109
+ enabled: true
110
+ model: silero-vad
111
+ STTBackendType:
112
+ type: string
113
+ description: Speech-to-text backend implementation.
114
+ enum:
115
+ - none
116
+ - local
117
+ - ibm-watson-stt
118
+ - google-cloud-stt
119
+ - azure-stt
120
+ default: local
121
+ STTBackendLocalConfig:
122
+ type: object
123
+ description: Local speech-to-text backend configuration.
124
+ additionalProperties: true
125
+ properties:
126
+ model:
127
+ type: string
128
+ description: Registry key of the local speech model.
129
+ default: whisper-base
130
+ vad:
131
+ $ref: '#/definitions/VADConfig'
132
+ default:
133
+ model: whisper-base
134
+ vad:
135
+ enabled: true
136
+ model: silero-vad
137
+ STTBackendIBMWatsonConfig:
138
+ type: object
139
+ description: IBM Watson speech-to-text backend configuration.
140
+ additionalProperties: true
141
+ properties:
142
+ model:
143
+ type: string
144
+ description: IBM Watson STT model identifier.
145
+ default: en-US_Multimedia
146
+ inactivityTimeout:
147
+ type: number
148
+ description: Seconds of silence before Watson closes the stream. Use -1 to disable.
149
+ default: -1
150
+ backgroundAudioSuppression:
151
+ type: number
152
+ description: Background audio suppression factor.
153
+ minimum: 0
154
+ maximum: 1
155
+ default: 0.4
156
+ interimResults:
157
+ type: boolean
158
+ description: Whether partial transcriptions should be emitted.
159
+ default: false
160
+ credentialsPath:
161
+ type: string
162
+ description: Path to the IBM credentials file.
163
+ default: ''
164
+ default:
165
+ model: en-US_Multimedia
166
+ inactivityTimeout: -1
167
+ backgroundAudioSuppression: 0.4
168
+ interimResults: false
169
+ credentialsPath: ''
170
+ STTBackendGoogleCloudConfig:
171
+ type: object
172
+ description: Google Cloud speech-to-text backend configuration.
173
+ additionalProperties: true
174
+ properties:
175
+ credentialsPath:
176
+ type: string
177
+ description: Path to the Google Cloud credentials file.
178
+ default: ''
179
+ model:
180
+ type: string
181
+ description: Google Cloud STT model identifier.
182
+ default: chirp_3
183
+ languageCode:
184
+ type: string
185
+ description: BCP-47 language code for transcription.
186
+ default: en-US
187
+ region:
188
+ type: string
189
+ description: Google Cloud region to target.
190
+ default: us
191
+ enableAutomaticPunctuation:
192
+ type: boolean
193
+ description: Enables automatic punctuation in transcripts.
194
+ default: true
195
+ profanityFilter:
196
+ type: boolean
197
+ description: Masks profane words in transcripts.
198
+ default: true
199
+ interimResults:
200
+ type: boolean
201
+ description: Whether partial transcriptions should be emitted.
202
+ default: false
203
+ default:
204
+ credentialsPath: ''
205
+ model: chirp_3
206
+ languageCode: en-US
207
+ region: us
208
+ enableAutomaticPunctuation: true
209
+ profanityFilter: true
210
+ interimResults: false
211
+ STTBackendAzureConfig:
212
+ type: object
213
+ description: Azure speech-to-text backend configuration.
214
+ additionalProperties: true
215
+ properties:
216
+ language:
217
+ type: string
218
+ description: Azure speech recognition language. Empty uses the service default.
219
+ default: ''
220
+ credentialsPath:
221
+ type: string
222
+ description: Path to the Azure credentials file.
223
+ default: ''
224
+ interimResults:
225
+ type: boolean
226
+ description: Whether partial transcriptions should be emitted.
227
+ default: false
228
+ default:
229
+ language: ''
230
+ credentialsPath: ''
231
+ interimResults: false
232
+ STTBackendConfig:
233
+ type: object
234
+ description: Speech-to-text backend selection and backend-specific settings.
235
+ additionalProperties: false
236
+ properties:
237
+ type:
238
+ $ref: '#/definitions/STTBackendType'
239
+ local:
240
+ $ref: '#/definitions/STTBackendLocalConfig'
241
+ ibm-watson-stt:
242
+ $ref: '#/definitions/STTBackendIBMWatsonConfig'
243
+ google-cloud-stt:
244
+ $ref: '#/definitions/STTBackendGoogleCloudConfig'
245
+ azure-stt:
246
+ $ref: '#/definitions/STTBackendAzureConfig'
247
+ required:
248
+ - type
249
+ default:
250
+ type: local
251
+ local:
252
+ model: whisper-base
253
+ vad:
254
+ enabled: true
255
+ model: silero-vad
256
+ ibm-watson-stt:
257
+ model: en-US_Multimedia
258
+ inactivityTimeout: -1
259
+ backgroundAudioSuppression: 0.4
260
+ interimResults: false
261
+ credentialsPath: ''
262
+ google-cloud-stt:
263
+ credentialsPath: ''
264
+ model: chirp_3
265
+ languageCode: en-US
266
+ region: us
267
+ enableAutomaticPunctuation: true
268
+ profanityFilter: true
269
+ interimResults: false
270
+ azure-stt:
271
+ language: ''
272
+ credentialsPath: ''
273
+ interimResults: false
274
+ ListenConfig:
275
+ type: object
276
+ description: Settings for audio capture and speech recognition.
277
+ additionalProperties: true
278
+ properties:
279
+ device:
280
+ type: string
281
+ description: ALSA capture device name. Empty uses the system default device.
282
+ default: ''
283
+ microphoneRate:
284
+ type: number
285
+ description: Capture sample rate in hertz.
286
+ minimum: 1
287
+ default: 44100
288
+ microphoneChannels:
289
+ type: number
290
+ description: Number of microphone input channels.
291
+ minimum: 1
292
+ default: 2
293
+ backend:
294
+ $ref: '#/definitions/STTBackendConfig'
295
+ default:
296
+ device: ''
297
+ microphoneRate: 44100
298
+ microphoneChannels: 2
299
+ backend:
300
+ type: local
301
+ local:
302
+ model: whisper-base
303
+ vad:
304
+ enabled: true
305
+ model: silero-vad
306
+ ibm-watson-stt:
307
+ model: en-US_Multimedia
308
+ inactivityTimeout: -1
309
+ backgroundAudioSuppression: 0.4
310
+ interimResults: false
311
+ credentialsPath: ''
312
+ google-cloud-stt:
313
+ credentialsPath: ''
314
+ model: chirp_3
315
+ languageCode: en-US
316
+ region: us
317
+ enableAutomaticPunctuation: true
318
+ profanityFilter: true
319
+ interimResults: false
320
+ azure-stt:
321
+ language: ''
322
+ credentialsPath: ''
323
+ interimResults: false
324
+ SeeBackendType:
325
+ type: string
326
+ description: Vision backend implementation.
327
+ enum:
328
+ - none
329
+ - local
330
+ - google-cloud-vision
331
+ - azure-vision
332
+ default: local
333
+ SeeBackendLocalConfig:
334
+ type: object
335
+ description: Local ONNX-based vision backend configuration.
336
+ additionalProperties: true
337
+ properties:
338
+ objectDetectionModel:
339
+ type: string
340
+ description: Registry key of the local object detection model.
341
+ default: ssd-mobilenet-v2
342
+ imageClassificationModel:
343
+ type: string
344
+ description: Registry key of the local image classification model.
345
+ default: mobilenetv3
346
+ faceDetectionModel:
347
+ type: string
348
+ description: Registry key of the local face detection model.
349
+ default: scrfd-2.5g
350
+ objectDetectionConfidence:
351
+ type: number
352
+ description: Minimum confidence for object detection results.
353
+ minimum: 0
354
+ maximum: 1
355
+ default: 0.8
356
+ imageClassificationConfidence:
357
+ type: number
358
+ description: Minimum confidence for image classification results.
359
+ minimum: 0
360
+ maximum: 1
361
+ default: 0.8
362
+ faceDetectionConfidence:
363
+ type: number
364
+ description: Minimum confidence for face detection results.
365
+ minimum: 0
366
+ maximum: 1
367
+ default: 0.5
368
+ default:
369
+ objectDetectionModel: ssd-mobilenet-v2
370
+ imageClassificationModel: mobilenetv3
371
+ faceDetectionModel: scrfd-2.5g
372
+ objectDetectionConfidence: 0.8
373
+ imageClassificationConfidence: 0.8
374
+ faceDetectionConfidence: 0.5
375
+ SeeBackendGoogleCloudConfig:
376
+ type: object
377
+ description: Google Cloud Vision backend configuration.
378
+ additionalProperties: true
379
+ properties:
380
+ credentialsPath:
381
+ type: string
382
+ description: Path to the Google Cloud credentials file.
383
+ default: ''
384
+ objectDetectionConfidence:
385
+ type: number
386
+ description: Minimum confidence for object localization results.
387
+ minimum: 0
388
+ maximum: 1
389
+ default: 0.8
390
+ imageClassificationConfidence:
391
+ type: number
392
+ description: Minimum confidence for label detection results.
393
+ minimum: 0
394
+ maximum: 1
395
+ default: 0.8
396
+ faceDetectionConfidence:
397
+ type: number
398
+ description: Minimum confidence for face detection results.
399
+ minimum: 0
400
+ maximum: 1
401
+ default: 0.5
402
+ default:
403
+ credentialsPath: ''
404
+ objectDetectionConfidence: 0.8
405
+ imageClassificationConfidence: 0.8
406
+ faceDetectionConfidence: 0.5
407
+ SeeBackendAzureConfig:
408
+ type: object
409
+ description: Azure Vision backend configuration.
410
+ additionalProperties: true
411
+ properties:
412
+ credentialsPath:
413
+ type: string
414
+ description: Path to the Azure credentials file.
415
+ default: ''
416
+ objectDetectionConfidence:
417
+ type: number
418
+ description: Minimum confidence for object detection results.
419
+ minimum: 0
420
+ maximum: 1
421
+ default: 0.8
422
+ imageClassificationConfidence:
423
+ type: number
424
+ description: Minimum confidence for image classification results.
425
+ minimum: 0
426
+ maximum: 1
427
+ default: 0.8
428
+ default:
429
+ credentialsPath: ''
430
+ objectDetectionConfidence: 0.8
431
+ imageClassificationConfidence: 0.8
432
+ SeeBackendConfig:
433
+ type: object
434
+ description: Vision backend selection and backend-specific settings.
435
+ additionalProperties: false
436
+ properties:
437
+ type:
438
+ $ref: '#/definitions/SeeBackendType'
439
+ local:
440
+ $ref: '#/definitions/SeeBackendLocalConfig'
441
+ google-cloud-vision:
442
+ $ref: '#/definitions/SeeBackendGoogleCloudConfig'
443
+ azure-vision:
444
+ $ref: '#/definitions/SeeBackendAzureConfig'
445
+ required:
446
+ - type
447
+ default:
448
+ type: local
449
+ local:
450
+ objectDetectionModel: ssd-mobilenet-v2
451
+ imageClassificationModel: mobilenetv3
452
+ faceDetectionModel: scrfd-2.5g
453
+ objectDetectionConfidence: 0.8
454
+ imageClassificationConfidence: 0.8
455
+ faceDetectionConfidence: 0.5
456
+ google-cloud-vision:
457
+ credentialsPath: ''
458
+ objectDetectionConfidence: 0.8
459
+ imageClassificationConfidence: 0.8
460
+ faceDetectionConfidence: 0.5
461
+ azure-vision:
462
+ credentialsPath: ''
463
+ objectDetectionConfidence: 0.8
464
+ imageClassificationConfidence: 0.8
465
+ SeeConfig:
466
+ type: object
467
+ description: Settings for the camera and computer vision.
468
+ additionalProperties: true
469
+ properties:
470
+ cameraResolution:
471
+ type: array
472
+ description: Requested capture resolution as [width, height].
473
+ items:
474
+ - type: number
475
+ - type: number
476
+ minItems: 2
477
+ maxItems: 2
478
+ default: [1920, 1080]
479
+ verticalFlip:
480
+ type: boolean
481
+ description: Flips captured frames vertically.
482
+ default: false
483
+ horizontalFlip:
484
+ type: boolean
485
+ description: Flips captured frames horizontally.
486
+ default: false
487
+ captureTimeout:
488
+ type: number
489
+ description: Camera capture timeout in milliseconds.
490
+ minimum: 0
491
+ default: 500
492
+ zeroShutterLag:
493
+ type: boolean
494
+ description: Enables zero-shutter-lag capture when supported.
495
+ default: false
496
+ backend:
497
+ $ref: '#/definitions/SeeBackendConfig'
498
+ default:
499
+ cameraResolution:
500
+ - 1920
501
+ - 1080
502
+ verticalFlip: false
503
+ horizontalFlip: false
504
+ captureTimeout: 500
505
+ zeroShutterLag: false
506
+ backend:
507
+ type: local
508
+ local:
509
+ objectDetectionModel: ssd-mobilenet-v2
510
+ imageClassificationModel: mobilenetv3
511
+ faceDetectionModel: scrfd-2.5g
512
+ objectDetectionConfidence: 0.8
513
+ imageClassificationConfidence: 0.8
514
+ faceDetectionConfidence: 0.5
515
+ google-cloud-vision:
516
+ credentialsPath: ''
517
+ objectDetectionConfidence: 0.8
518
+ imageClassificationConfidence: 0.8
519
+ faceDetectionConfidence: 0.5
520
+ azure-vision:
521
+ credentialsPath: ''
522
+ objectDetectionConfidence: 0.8
523
+ imageClassificationConfidence: 0.8
524
+ LEDNeopixelConfig:
525
+ type: object
526
+ description: WS281x / NeoPixel LED configuration.
527
+ additionalProperties: true
528
+ properties:
529
+ gpioPin:
530
+ type: number
531
+ description: GPIO pin number used for the LED data signal.
532
+ default: 21
533
+ spiInterface:
534
+ type: string
535
+ description: SPI interface path used when driving LEDs over SPI.
536
+ default: /dev/spidev0.0
537
+ useGRBFormat:
538
+ type: boolean
539
+ description: Whether the LED expects GRB byte ordering.
540
+ default: true
541
+ default:
542
+ gpioPin: 21
543
+ spiInterface: /dev/spidev0.0
544
+ useGRBFormat: true
545
+ LEDCommonAnodeConfig:
546
+ type: object
547
+ description: Common-anode RGB LED configuration.
548
+ additionalProperties: true
549
+ properties:
550
+ redPin:
551
+ type: number
552
+ description: GPIO pin for the red channel.
553
+ default: 19
554
+ greenPin:
555
+ type: number
556
+ description: GPIO pin for the green channel.
557
+ default: 13
558
+ bluePin:
559
+ type: number
560
+ description: GPIO pin for the blue channel.
561
+ default: 12
562
+ default:
563
+ redPin: 19
564
+ greenPin: 13
565
+ bluePin: 12
566
+ ShineConfig:
567
+ type: object
568
+ description: Settings for LED hardware.
569
+ additionalProperties: true
570
+ properties:
571
+ hasNeopixelLED:
572
+ type: boolean
573
+ description: Enables NeoPixel / WS281x LED support.
574
+ default: false
575
+ hasCommonAnodeLED:
576
+ type: boolean
577
+ description: Enables common-anode RGB LED support.
578
+ default: false
579
+ neopixel:
580
+ $ref: '#/definitions/LEDNeopixelConfig'
581
+ commonanode:
582
+ $ref: '#/definitions/LEDCommonAnodeConfig'
583
+ default:
584
+ hasNeopixelLED: false
585
+ hasCommonAnodeLED: false
586
+ neopixel:
587
+ gpioPin: 21
588
+ spiInterface: /dev/spidev0.0
589
+ useGRBFormat: true
590
+ commonanode:
591
+ redPin: 19
592
+ greenPin: 13
593
+ bluePin: 12
594
+ TTSBackendType:
595
+ type: string
596
+ description: Text-to-speech backend implementation.
597
+ enum:
598
+ - none
599
+ - local
600
+ - ibm-watson-tts
601
+ - google-cloud-tts
602
+ - azure-tts
603
+ default: local
604
+ TTSBackendLocalConfig:
605
+ type: object
606
+ description: Local text-to-speech backend configuration.
607
+ additionalProperties: true
608
+ properties:
609
+ model:
610
+ type: string
611
+ description: Registry key of the local voice model.
612
+ default: vits-piper-en_US-ryan-medium
613
+ default:
614
+ model: vits-piper-en_US-ryan-medium
615
+ TTSBackendIBMWatsonConfig:
616
+ type: object
617
+ description: IBM Watson text-to-speech backend configuration.
618
+ additionalProperties: true
619
+ properties:
620
+ credentialsPath:
621
+ type: string
622
+ description: Path to the IBM credentials file.
623
+ default: ''
624
+ voice:
625
+ type: string
626
+ description: IBM Watson voice identifier.
627
+ default: en-US_MichaelV3Voice
628
+ default:
629
+ credentialsPath: ''
630
+ voice: en-US_MichaelV3Voice
631
+ TTSBackendGoogleCloudConfig:
632
+ type: object
633
+ description: Google Cloud text-to-speech backend configuration.
634
+ additionalProperties: true
635
+ properties:
636
+ credentialsPath:
637
+ type: string
638
+ description: Path to the Google Cloud credentials file.
639
+ default: ''
640
+ languageCode:
641
+ type: string
642
+ description: BCP-47 language code for synthesis.
643
+ default: en-US
644
+ voice:
645
+ type: string
646
+ description: Google Cloud voice identifier.
647
+ default: en-US-Neural2-C
648
+ default:
649
+ credentialsPath: ''
650
+ languageCode: en-US
651
+ voice: en-US-Neural2-C
652
+ TTSBackendAzureConfig:
653
+ type: object
654
+ description: Azure text-to-speech backend configuration.
655
+ additionalProperties: true
656
+ properties:
657
+ credentialsPath:
658
+ type: string
659
+ description: Path to the Azure credentials file.
660
+ default: ''
661
+ voice:
662
+ type: string
663
+ description: Azure voice identifier.
664
+ default: en-US-EmmaNeural
665
+ default:
666
+ credentialsPath: ''
667
+ voice: en-US-EmmaNeural
668
+ TTSBackendConfig:
669
+ type: object
670
+ description: Text-to-speech backend selection and backend-specific settings.
671
+ additionalProperties: false
672
+ properties:
673
+ type:
674
+ $ref: '#/definitions/TTSBackendType'
675
+ local:
676
+ $ref: '#/definitions/TTSBackendLocalConfig'
677
+ ibm-watson-tts:
678
+ $ref: '#/definitions/TTSBackendIBMWatsonConfig'
679
+ google-cloud-tts:
680
+ $ref: '#/definitions/TTSBackendGoogleCloudConfig'
681
+ azure-tts:
682
+ $ref: '#/definitions/TTSBackendAzureConfig'
683
+ required:
684
+ - type
685
+ default:
686
+ type: local
687
+ local:
688
+ model: vits-piper-en_US-ryan-medium
689
+ ibm-watson-tts:
690
+ credentialsPath: ''
691
+ voice: en-US_MichaelV3Voice
692
+ google-cloud-tts:
693
+ credentialsPath: ''
694
+ languageCode: en-US
695
+ voice: en-US-Neural2-C
696
+ azure-tts:
697
+ credentialsPath: ''
698
+ voice: en-US-EmmaNeural
699
+ SpeakConfig:
700
+ type: object
701
+ description: Settings for audio playback and text-to-speech.
702
+ additionalProperties: true
703
+ properties:
704
+ device:
705
+ type: string
706
+ description: ALSA playback device name. Empty uses the system default device.
707
+ default: ''
708
+ backend:
709
+ $ref: '#/definitions/TTSBackendConfig'
710
+ default:
711
+ device: ''
712
+ backend:
713
+ type: local
714
+ local:
715
+ model: vits-piper-en_US-ryan-medium
716
+ ibm-watson-tts:
717
+ credentialsPath: ''
718
+ voice: en-US_MichaelV3Voice
719
+ google-cloud-tts:
720
+ credentialsPath: ''
721
+ languageCode: en-US
722
+ voice: en-US-Neural2-C
723
+ azure-tts:
724
+ credentialsPath: ''
725
+ voice: en-US-EmmaNeural
726
+ WaveConfig:
727
+ type: object
728
+ description: Settings for servo hardware.
729
+ additionalProperties: true
730
+ properties:
731
+ servoPin:
732
+ type: number
733
+ description: GPIO pin number connected to the servo PWM input.
734
+ default: 18
735
+ default:
736
+ servoPin: 18
737
+ ModelEntryType:
738
+ type: string
739
+ description: Kind of model entry being registered.
740
+ enum:
741
+ - stt
742
+ - tts
743
+ - vad
744
+ - vision.object-recognition
745
+ - vision.classification
746
+ - vision.face-detection
747
+ - vision.image-description
748
+ ModelEntry:
749
+ type: object
750
+ description: Custom model registry entry.
751
+ additionalProperties: false
752
+ properties:
753
+ type:
754
+ $ref: '#/definitions/ModelEntryType'
755
+ key:
756
+ type: string
757
+ description: Unique key used to reference the model in config.
758
+ label:
759
+ type: string
760
+ description: Human-readable model name.
761
+ url:
762
+ type: string
763
+ description: URL or file URI where the model archive can be retrieved.
764
+ folder:
765
+ type: string
766
+ description: Folder name to use after extracting the model.
767
+ kind:
768
+ type: string
769
+ description: Model subtype used by the vision runtime.
770
+ inputShape:
771
+ type: array
772
+ description: Optional tensor input shape for ONNX vision models.
773
+ items:
774
+ type: number
775
+ labelUrl:
776
+ type: string
777
+ description: URL or file URI for a companion labels file.
778
+ required:
779
+ type: array
780
+ description: Files that must exist after the model is installed.
781
+ items:
782
+ type: string
783
+ required:
784
+ - type
785
+ - key
786
+ - label
787
+ - url
788
+ ModelsConfig:
789
+ type: array
790
+ description: Settings for custom, on-device ML models.
791
+ items:
792
+ $ref: '#/definitions/ModelEntry'