MycroftAI / mycroft-core

Mycroft Core, the Mycroft Artificial Intelligence platform.
https://mycroft.ai
Apache License 2.0
6.48k stars 1.27k forks source link

Garbled message between STT and Padatious after installing Mimic3 #3121

Open mikejgray opened 1 year ago

mikejgray commented 1 year ago

Describe the bug I tried (unsuccessfully) to install Mimic3 on my Picroft and now I can't get Mycroft to properly parse via Padatious.

To Reproduce Steps to reproduce the behavior:

Incorrectly install Mimic3 on a Picroft Raspberry Pi 4 machine Try to use Mycroft for anything at all (I tested with "what time is it" and "tell me a joke")

Expected behavior The STT should get passed cleanly to Padatious, not turn into gibberish ('\\~?(?)

Log files If possible, add log files from /var/log/mycroft/ to help explain your problem.

Splicing together voice.log and skills.log gets you:

2022-07-10 03:21:06.928 | INFO     | 13979 | __main__:handle_wakeword:71 | Wakeword Detected: hey mycroft
Playing WAVE '/home/pi/mycroft-core/mycroft/res/snd/start_listening.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
2022-07-10 03:21:07.388 | INFO     | 13979 | __main__:handle_record_begin:41 | Begin Recording...
2022-07-10 03:21:10.412 | INFO     | 13979 | __main__:handle_record_end:49 | End Recording...
2022-07-10 03:21:11.306 | INFO     | 13979 | __main__:handle_utterance:76 | Utterance: ["what's time is it"]
2022-07-10 03:21:11.324 | ERROR    | 13912 | mycroft.skills.intent_service:handle_utterance:326 | '\\~?(?'
Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/skills/intent_service.py", line 302, in handle_utterance
    match = match_func(combined, lang, message)
  File "/home/pi/mycroft-core/mycroft/skills/intent_services/padatious_service.py", line 78, in match_high
    return self._match_level(utterances, 0.95)
  File "/home/pi/mycroft-core/mycroft/skills/intent_services/padatious_service.py", line 50, in _match_level
    intent = self.service.calc_intent(variant)
  File "/home/pi/mycroft-core/mycroft/skills/intent_services/padatious_service.py", line 253, in calc_intent
    return self.container.calc_intent(utt)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padatious/intent_container.py", line 303, in calc_intent
    matches = self.calc_intents(query)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padatious/intent_container.py", line 282, in calc_intents
    self.train()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padatious/intent_container.py", line 226, in train
    self.padaos.compile()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 124, in compile
    self._compile()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 135, in _compile
    for intent_name, lines in self.intent_lines.items()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 135, in <dictcomp>
    for intent_name, lines in self.intent_lines.items()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 117, in create_regexes
    for line in sorted(lines, key=len, reverse=True)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 118, in <listcomp>
    if line.strip()]
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 108, in _create_regex
    return re.compile(self._create_intent_pattern(line, intent_name),
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/padaos.py", line 101, in _create_intent_pattern
    line = line.replace('{' + key + '}', value.format(self.i), 1)
KeyError: '\\~?(?'

You may also include screenshots, however screenshots of log files are often difficult to read and parse.

If you are running Mycroft, the Support Skill helps to automate gathering this information. Simply say "Create a support ticket" and the Skill will put together a support package and email it to you.

Environment (please complete the following information):

Additional context Add any other context about the problem here.

Please think carefully about whether you have modified anything in Mycroft's code or configuration files. If so, can you reproduce this on a clean installation of Mycroft? Many "bugs" turn out to be non-standard configuration errors.

mikejgray commented 1 year ago

Looks like version mismatches. I'm doing a lot of reinstalling to make things work.

pfefferle commented 1 year ago

I have exactly the same issue!

mikejgray commented 1 year ago

I tried nuking the .venv folder and starting fresh, but no luck. I'm wondering if there's a lack of version pinning somewhere in either the skills, this repo, or one of the other core dependencies. Not quite sure where to start unraveling that, though.

pfefferle commented 1 year ago

The weird thing is, that it worked for quite some time on my DevKit. I made the setup for mimic3 and it seemed to work until one of the reboots afterwards.

mikejgray commented 1 year ago

Still having this same issue. I thought it might have been a problem with fann2 or padaos, but after scping the wheels for both from a working Picroft it still failed.

mikejgray commented 1 year ago

Found it - quantulum3, which is required by homeassistant, causes this problem. pip uninstall quantulum3 will get the system back to working order. Now, as to why...that's still unknown. :)

FWIW, quantulum3 is optional for the homeassistant skill, so uninstalling it has no significant negative impact.