Skip to content

Commit a6cc1ea

Browse files
committed
resource loading
1 parent e3f4557 commit a6cc1ea

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

mycroft/client/speech/service.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,14 +225,30 @@ def handle_enable_limited_vocab(self, message):
225225
lang = message.data.get("lang") or Configuration.get().get("lang", "en-us")
226226
fallback = message.data.get("english_fallback", False)
227227
permanent = message.data.get("permanent", False)
228-
words = ["[unk]"]
229-
for voc_file in message.data.get("vocabs", []):
230-
voc = resolve_resource_file(f"text/{lang}/{voc_file}.voc")
228+
229+
# samples defined in message.data
230+
words = ["[unk]"] + message.data.get("samples", [])
231+
232+
def read_file(voc_file, ext):
233+
voc = resolve_resource_file(f"text/{lang}/{voc_file}.{ext}") or \
234+
resolve_resource_file(f"locale/{lang}/{voc_file}.{ext}")
231235
if lang != "en-us" and not voc and fallback:
232-
voc = resolve_resource_file(f"text/en-us/{voc_file}.voc")
236+
voc = resolve_resource_file(f"text/en-us/{voc_file}.{ext}") or \
237+
resolve_resource_file(f"locale/en-us/{voc_file}.{ext}")
233238
if voc:
234-
for w in read_vocab_file(voc):
235-
words += w
239+
return [item for sublist in read_vocab_file(voc) for item in sublist]
240+
return []
241+
242+
# read voc files
243+
for voc_file in message.data.get("vocabs", []):
244+
words += read_file(voc_file, "voc")
245+
for voc_file in message.data.get("dialogs", []):
246+
words += read_file(voc_file, "dialog")
247+
for voc_file in message.data.get("intents", []):
248+
words += read_file(voc_file, "intent")
249+
for voc_file in message.data.get("entities", []):
250+
words += read_file(voc_file, "entity")
251+
236252
LOG.info(f"Enabling limited vocab: {words}")
237253
if hasattr(self.loop.stt, "enable_limited_vocabulary"):
238254
try:

0 commit comments

Comments
 (0)