OpenVoiceOS / ovos-skill-easter-eggs

fun easter eggs for mycroft
Apache License 2.0
2 stars 4 forks source link

feat: singing #40

Closed mikejgray closed 2 months ago

mikejgray commented 3 months ago

When the voice is set to Alan Pope, whether via a Mimic plugin or Piper with alan-low or the default ovos-tts-plugin-server config, a request to sing will play the original Mimic voice songs from old Mycroft. If not, the assistant will say it's too shy to sing.

Also adds OCP/ovos-media compatibility for containerized environments. An internet connection to GitHub is required in that case, as the skill will send the GitHub raw file URL instead of the local file URL.

Closes #27 Closes #36

goldyfruit commented 2 months ago

The skill doesn't always ask for confirmation and when it asked for confirmation, the yes can't be heard and generates the trace below.

alize:35 - ERROR - Error in STT plugin: ChromiumSTT
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: Traceback (most recent call last):
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_dinkum_listener/plugins.py", line 30, in finalize
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     transcript = self.engine.execute(audio, self.language)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_stt_plugin_chromium/__init__.py", line 248, in execute
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     data = json.loads(result)["result"]
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/__init__.py", line 346, in loads
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     return _default_decoder.decode(s)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 337, in decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 355, in raw_decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     raise JSONDecodeError("Expecting value", s, err.value) from None
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
JarbasAl commented 2 months ago

The skill doesn't always ask for confirmation when and when it asked for confirmation, the yes can't be heard and generates the trace below.

alize:35 - ERROR - Error in STT plugin: ChromiumSTT
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: Traceback (most recent call last):
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_dinkum_listener/plugins.py", line 30, in finalize
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     transcript = self.engine.execute(audio, self.language)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_stt_plugin_chromium/__init__.py", line 248, in execute
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     data = json.loads(result)["result"]
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/__init__.py", line 346, in loads
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     return _default_decoder.decode(s)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 337, in decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 355, in raw_decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     raise JSONDecodeError("Expecting value", s, err.value) from None
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

this was an issue with STT, are you on latest dinkum that solves that issue with short words? and on latest ovos-config? (to see if instant_listen and remove_silence is on)

goldyfruit commented 2 months ago

The skill doesn't always ask for confirmation when and when it asked for confirmation, the yes can't be heard and generates the trace below.

alize:35 - ERROR - Error in STT plugin: ChromiumSTT
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: Traceback (most recent call last):
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_dinkum_listener/plugins.py", line 30, in finalize
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     transcript = self.engine.execute(audio, self.language)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_stt_plugin_chromium/__init__.py", line 248, in execute
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     data = json.loads(result)["result"]
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/__init__.py", line 346, in loads
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     return _default_decoder.decode(s)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 337, in decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 355, in raw_decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     raise JSONDecodeError("Expecting value", s, err.value) from None
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

this was an issue with STT, are you on latest dinkum that solves that issue with short words? and on latest ovos-config? (to see if instant_listen and remove_silence is on)

I was running version 0.0.3a42...

mikejgray commented 2 months ago

The skill doesn't always ask for confirmation when and when it asked for confirmation, the yes can't be heard and generates the trace below.

alize:35 - ERROR - Error in STT plugin: ChromiumSTT
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: Traceback (most recent call last):
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_dinkum_listener/plugins.py", line 30, in finalize
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     transcript = self.engine.execute(audio, self.language)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/home/goldyfruit/.venvs/ovos/lib/python3.12/site-packages/ovos_stt_plugin_chromium/__init__.py", line 248, in execute
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     data = json.loads(result)["result"]
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/__init__.py", line 346, in loads
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     return _default_decoder.decode(s)
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 337, in decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:   File "/usr/lib/python3.12/json/decoder.py", line 355, in raw_decode
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]:     raise JSONDecodeError("Expecting value", s, err.value) from None
Jun 14 17:41:25 mark2 ovos-dinkum-listener[7277]: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

this was an issue with STT, are you on latest dinkum that solves that issue with short words? and on latest ovos-config? (to see if instant_listen and remove_silence is on)

I was running version 0.0.3a42...

0.3a43 is where it's fixed! But what do you mean it doesn't always ask for confirmation?

mikejgray commented 2 months ago

@goldyfruit I can't replicate the issue you mentioned. If you have details on that please open up an issue and I'll put in a bugfix