rhasspy / rhasspy Goto Github PK
View Code? Open in Web Editor NEWOffline private voice assistant for many human languages
Home Page: https://community.rhasspy.org/
License: MIT License
Offline private voice assistant for many human languages
Home Page: https://community.rhasspy.org/
License: MIT License
In 2.4 the words tab had the option to (sometimes) have the pronunciation read aloud, that is something that I think is really missing in 2.5. I personally can't actually imagine how it would pronounce a word with just what is written there, hearing it aloud would really help.
For example right now i am struggling because every time I say a sentence ending in "es" like "Wie spät ist es" it recognizes it as "Wie spät wird das Wetter" because it sees me pronouncing "es" as "das". I tried adding an entry for "es" with how I would think it should be pronounced by the system "s" but it did not help and I have no idea how it wants me to pronounce it now.
Also missing in my opinion is a button to have a guessed word added to the dictionary. I can't copy the output of the pronunciation so in addition of having to guess if it is the right one I would have to type it in manually.
M idea would be something like this:
(ignore the terribly drawn speaker icon in that)
That would allow each word already in there to be read out and changed if it doesn't sound right as well as a way to add new words after listening to them to pick the correct one.
When you use Home Assistant as intent handler and set it to send intents to Home Assistant it doesn't process possible text response.
The response is processed with:
tts_text = response_dict.get("speech", {}).get("text", "")
But an example response form Home Assistant looks like this:
{'card': {}, 'speech': {'plain': {'extra_data': None, 'speech': 'text to speak'}}}
So it will never get the text from the response.
Also see: https://developers.home-assistant.io/docs/intent_firing
When publishing to hermes/dialogueManager/endSession
it looks like the text field defined in the spec isn't respected (i.e., doesn't lead to a TTS message).
Looks like the dataclass that's sinkholing this is here.
If no-one else wants to I can open a PR for this at some point, seems like a good way to get more familiar with the codebase.
I installed Rhasspy-voltron using the docker-installation method and would like to use DeepSpeech as Speech-to-Text-system. However, when restarting, I keep getting:
28.980237596Z ModuleNotFoundError: No module named 'rhasspyasr_deepspeech'
29.009963254Z 2020-05-20 09:57:29,009 INFO exited: speech_to_text (exit status 1; not expected)
32.017108415Z 2020-05-20 09:57:32,016 INFO spawned: 'speech_to_text' with pid 1099
32.434818235Z Traceback (most recent call last):
32.434863893Z File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
32.434878762Z mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
32.434886849Z File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
32.434894134Z return _get_module_details(pkg_main_name, error)
32.434901244Z File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
32.434908452Z __import__(pkg_name)
32.434930232Z File "/usr/lib/rhasspy-voltron/rhasspy-asr-deepspeech-hermes/rhasspyasr_deepspeech_hermes/__init__.py", line 9, in <module>
32.434939170Z import rhasspyasr_deepspeech
32.434947218Z ModuleNotFoundError: No module named 'rhasspyasr_deepspeech'
And I guess this is because I am not running it inside a virtualenvironment. What would the correct procedure be?
hey there
on the latest docker image snowboy isn t working anymore
31/05/2020
Digest: sha256:ea229eccab38d6d7a112a4feaef47b903664971a5d8fa4750ed6b767728e8ed3
Status: Image is up to date for rhasspy/rhasspy:2.5.0-pre
here's the relevant docker log:
2020-05-30 11:01:37,077 WARN received SIGHUP indicating restart request
2020-05-30 11:01:37,078 INFO waiting for microphone, speakers to die
2020-05-30 11:01:38,096 INFO stopped: speakers (terminated by SIGTERM)
2020-05-30 11:01:38,110 INFO stopped: microphone (terminated by SIGTERM)
2020-05-30 11:01:38,157 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2020-05-30 11:01:38,159 INFO supervisord started with pid 144
2020-05-30 11:01:39,173 INFO spawned: 'microphone' with pid 625
2020-05-30 11:01:39,188 INFO spawned: 'speakers' with pid 626
2020-05-30 11:01:39,204 INFO spawned: 'wake_word' with pid 627
[DEBUG:2020-05-30 11:01:40,110] rhasspyspeakers_cli_hermes: Namespace(debug=True, host='192.168.1.100', list_command='aplay -L', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', password='EDITED', play_command='aplay -q -t wav', port=1883, site_id=['salon'], tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, username='EDITED')
[DEBUG:2020-05-30 11:01:40,115] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:40,117] rhasspyspeakers_cli_hermes: Connecting to 192.168.1.100:1883
[DEBUG:2020-05-30 11:01:40,132] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:40,135] rhasspyspeakers_cli_hermes: Connected to MQTT broker
[DEBUG:2020-05-30 11:01:40,137] rhasspyspeakers_cli_hermes: Subscribed to hermes/audioServer/salon/playBytes/#
[DEBUG:2020-05-30 11:01:40,139] rhasspyspeakers_cli_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2020-05-30 11:01:40,141] rhasspyspeakers_cli_hermes: Subscribed to hermes/audioServer/toggleOn
[DEBUG:2020-05-30 11:01:40,143] rhasspyspeakers_cli_hermes: Subscribed to hermes/audioServer/toggleOff
[DEBUG:2020-05-30 11:01:40,185] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
2020-05-30 11:01:40,186 INFO success: microphone entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-05-30 11:01:40,187 INFO success: speakers entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[DEBUG:2020-05-30 11:01:40,186] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:40,196] asyncio: Using selector: EpollSelector
2020-05-30 11:01:40,198 INFO success: wake_word entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[DEBUG:2020-05-30 11:01:40,202] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:40,375 INFO exited: wake_word (exit status 1; not expected)
[DEBUG:2020-05-30 11:01:40,656] rhasspymicrophone_cli_hermes: Namespace(channels=1, debug=True, host='192.168.1.100', list_command='arecord -L', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', output_site_id=None, password='EDITED', port=1883, record_command='arecord -q -r 16000 -f S16_LE -c 1 -t raw -D sysdefault:CARD=CameraB409241', sample_rate=16000, sample_width=2, site_id=['salon'], test_command='arecord -q -D {} -r 16000 -f S16_LE -c 1 -t raw', tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio_host='127.0.0.1', udp_audio_port=12202, username='EDITED')
2020-05-30 11:01:40,664 INFO spawned: 'wake_word' with pid 637
[DEBUG:2020-05-30 11:01:40,660] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:40,662] rhasspymicrophone_cli_hermes: Audio will also be sent to UDP 127.0.0.1:12202
[DEBUG:2020-05-30 11:01:40,667] rhasspymicrophone_cli_hermes: ['arecord', '-q', '-r', '16000', '-f', 'S16_LE', '-c', '1', '-t', 'raw', '-D', 'sysdefault:CARD=CameraB409241']
[DEBUG:2020-05-30 11:01:40,669] rhasspymicrophone_cli_hermes: Connecting to 192.168.1.100:1883
[DEBUG:2020-05-30 11:01:40,690] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:40,692] rhasspymicrophone_cli_hermes: Connected to MQTT broker
[DEBUG:2020-05-30 11:01:40,693] rhasspymicrophone_cli_hermes: Recording audio
[DEBUG:2020-05-30 11:01:40,696] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOn
[DEBUG:2020-05-30 11:01:40,698] rhasspymicrophone_cli_hermes: Subscribed to hermes/asr/startListening
[DEBUG:2020-05-30 11:01:40,701] rhasspymicrophone_cli_hermes: Subscribed to hermes/asr/stopListening
[DEBUG:2020-05-30 11:01:40,703] rhasspymicrophone_cli_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2020-05-30 11:01:40,705] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOff
[DEBUG:2020-05-30 11:01:41,472] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:41,474] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:41,478] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:41,483] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
[ERROR:2020-05-30 11:01:41,512] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:41,638 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:42,646 INFO spawned: 'wake_word' with pid 646
[DEBUG:2020-05-30 11:01:43,646] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
2020-05-30 11:01:43,648 INFO success: wake_word entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[DEBUG:2020-05-30 11:01:43,649] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:43,653] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:43,657] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
[ERROR:2020-05-30 11:01:43,687] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:43,812 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:44,819 INFO spawned: 'wake_word' with pid 651
[DEBUG:2020-05-30 11:01:45,671] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:45,673] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:45,678] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:45,684] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
[ERROR:2020-05-30 11:01:45,715] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:45,844 INFO success: wake_word entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-05-30 11:01:45,844 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:46,851 INFO spawned: 'wake_word' with pid 656
[DEBUG:2020-05-30 11:01:47,610] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:47,611] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:47,616] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:47,622] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
[ERROR:2020-05-30 11:01:47,652] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:47,777 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:48,784 INFO spawned: 'wake_word' with pid 661
[DEBUG:2020-05-30 11:01:49,596] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:49,597] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:49,601] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:49,622] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
[ERROR:2020-05-30 11:01:49,636] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:49,758 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:51,767 INFO spawned: 'wake_word' with pid 666
[DEBUG:2020-05-30 11:01:52,522] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:52,523] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:52,527] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:52,532] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
[ERROR:2020-05-30 11:01:52,562] rhasspywake_snowboy_hermes: detection_thread_proc
Traceback (most recent call last):
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 221, in detection_thread_proc
self.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:52,685 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:55,695 INFO spawned: 'wake_word' with pid 671
[DEBUG:2020-05-30 11:01:56,515] rhasspywake_snowboy_hermes: Namespace(debug=True, host='192.168.1.100', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', model=[['jarvis.umdl', '0.5,0.5', '1.0', 'True']], model_dir=['/profiles/fr/snowboy'], password='EDITED', port=1883, site_id=['salon'], stdin_audio=False, tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio=[['localhost', '12202', 'salon']], username='EDITED', wakeword_id=None)
[DEBUG:2020-05-30 11:01:56,518] rhasspywake_snowboy_hermes: Loading model from jarvis.umdl
[DEBUG:2020-05-30 11:01:56,522] asyncio: Using selector: EpollSelector
[DEBUG:2020-05-30 11:01:56,545] rhasspywake_snowboy_hermes: Listening for audio on UDP localhost:12202
Traceback (most recent call last):
File "/usr/lib/rhasspy/bin/rhasspy-wake-snowboy-hermes", line 8, in
sys.exit(main())
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/main.py", line 138, in main
hermes.load_detectors()
File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspywake_snowboy_hermes/init.py", line 126, in load_detectors
assert model.model_path.is_file(), f"Missing {model.model_path}"
AssertionError: Missing jarvis.umdl
2020-05-30 11:01:56,679 INFO exited: wake_word (exit status 1; not expected)
2020-05-30 11:01:57,681 INFO gave up: wake_word entered FATAL state, too many start retries too quickly
I am trying out Rhasspy 2.5 on my manjaro desktop - there is no support for libngram for Arch and Manjaro (https://aur.archlinux.org/packages/opengrm-ngram/ is pretty broken since 2016).
I copied manually with ./install-opengrm.sh ../download/opengrm-1.3.4-amd64.tar.gz ../.venv/tools/
the relevant files from that archive into the tools directory, and added tools and tools/kaldi to the path.
Now, it works - before openfst was always crashing when training.
Shouldn't it be possible to install that automatically? It's downloaded by default - or is there a trick to trigger its installation?
I'm testing the new 2.5-pre
version. I set up a master and satellite according to the Getting Started Guide using an external MQTT server, and the wake/recorded sounds were working well until your recent commit (1047c57) to move the feedback sounds to the dialogue system.
The Getting Started Guide says that I should enable Dialogue Management and set it to "Rhasspy" on the master and leave it disabled on the satellite when using MQTT. However, the guide reverses that if using the remote HTTP server method.
I found that if I used the remote HTTP server method, sounds worked. But it seemed like the external MQTT method was performing slightly faster for me.
Is this a bug or do I just need to reconfigure something now that you've moved the sounds to be handled by the dialogue system?
Hi,
I tried the docker install of 2.5.0-pre.
Before attempting to install I have a 32GB partition with 24GB free and the installation gets partway through installation before filling the disk and giving the error
docker: failed to register layer: no space left on device.
How much space is required for this install?
Hello,
Is it possible to add tzdata in the rhasspy-voltron Docker image?
That would help to pass -e TZ=xxxxx in order to have Rhasspy logs showing the right timezone.
With the script get-rhasspy.sh I have found a problem when executing it:
get-rhasspy.sh: 112: get-rhasspy.sh: Syntax error: "}" unexpected (expecting "then")
the documentation reads :
sudo apt-get install \
python3 python3-dev python3-setuptools python3-pip python3-venv \
git build-essential libatlas-base-dev swig portaudio19-dev
supervisor mosquitto sox alsa-utils libgfortran4 \
espeak flite libttspico-utils \
perl curl patchelf ca-certificates
A backslash is missing on the third line ie:
git build-essential libatlas-base-dev swig portaudio19-dev <<<<<< HERE
The command becomes
sudo apt-get install \
python3 python3-dev python3-setuptools python3-pip python3-venv \
git build-essential libatlas-base-dev swig portaudio19-dev \
supervisor mosquitto sox alsa-utils libgfortran4 \
espeak flite libttspico-utils \
perl curl patchelf ca-certificates
In 2.4 it would always ask me if I want to train now or later when I saved words, sentences. This is now gone and it trains directly instead. I really liked that feature because I could make changes in multiple places and then train only once, now I have to wait for training to finish for every change I make.
Restarting rhasspy is the same thing, once I click save in the settings tab it restarts. Most of the time that is useful but I actually managed to freeze my whole system by accidentally saving (and therefore restarting) while training was still running. Also I might want to just make a change, look at the advanced settings to see what it does and then undo the change again, or edit it further in the advanced settings, so having to restart two or more times in between is kinda annoying.
On a sidenote, some settings display a small red icon next to them after I change them (I am guessing to restart) but it restarts anyway once i click save, either the icon is not necessary or it wasn't intended to restart with every save.
Daenara
As soon as I add websocket connection from NodeRed I get this:
[ERROR:2020-03-27 23:58:34,434] rhasspyserver_hermes: BadRequest(400)
Traceback (most recent call last):
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py", line 1940, in full_dispatch_websocket
result = await self.preprocess_websocket(websocket_context)
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py", line 1968, in preprocess_websocket
result = await function()
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart_cors/init.py", line 297, in _apply_websocket_cors
abort(400)
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/exceptions.py", line 199, in abort
raise error
quart.exceptions.BadRequest: BadRequest(400)
[ERROR:2020-03-27 23:58:31,429] rhasspyserver_hermes: BadRequest(400)
Traceback (most recent call last):
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py", line 1940, in full_dispatch_websocket
result = await self.preprocess_websocket(websocket_context)
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py", line 1968, in preprocess_websocket
result = await function()
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart_cors/init.py", line 297, in _apply_websocket_cors
abort(400)
I had this problem with a pretty recent pre release and it is still happening in the release. I get a docker without pip installed.
I use a raspberry pi 4 with raspbian buster on it. In the dockerfile pip is installed in various places but my guess is that I fall into the balenalib/raspberry-pi-debian-python:3.7-buster-build as build-armv6
category and that for some reason does not include pip (anymore).
I looked up their dockerfiles and in the one just called raspberry-pi there is no mention of pip whereas it is explicitly installed in the raspberry-pi3 dockerfile they have.
Could you please add pip into that docker image so I don't have to install it manually each time?
Also I am not sure if that image contains the python setup tools but I did not test for that because so far I am not using them.
Daenara
Just as the title says, if I select fuzzywuzzy it does not recognize intents. I do not get any error, just IntentNotRecognized. The same intents work fine if I change to fsticuffs instead.
System is a pi4 2gb with raspbian buster and rhasspy in a docker.
I thought about trying to train with fuzzywuzzy selected but for some strange reason I always get a timeout when I try.
[ERROR:2020-06-06 14:58:58,219] rhasspyserver_hermes: Traceback (most recent call last): File "/usr/lib/rhasspy/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request result = await self.dispatch_request(request_context) File "/usr/lib/rhasspy/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request return await handler(**request_.view_args) File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyserver_hermes/__main__.py", line 1215, in api_train result = await core.train() File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyserver_hermes/__init__.py", line 395, in train timeout_seconds=self.training_timeout_seconds, File "/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyserver_hermes/__init__.py", line 898, in publish_wait result_awaitable, timeout=timeout_seconds File "/usr/lib/python3.7/asyncio/tasks.py", line 449, in wait_for raise futures.TimeoutError() concurrent.futures._base.TimeoutError [DEBUG:2020-06-06 14:49:51,563] rhasspyserver_hermes: Handling AsrTrainSuccess (topic=rhasspy/asr/pi-hime/trainSuccess, id=1fdf51f3-05b6-4d35-a44c-ed5622d3a3ca) [DEBUG:2020-06-06 14:48:58,216] rhasspyserver_hermes: Publishing 5221 bytes(s) to rhasspy/nlu/pi-hime/train [DEBUG:2020-06-06 14:48:58,216] rhasspyserver_hermes: -> NluTrain [DEBUG:2020-06-06 14:48:58,209] rhasspyserver_hermes: Publishing 5221 bytes(s) to rhasspy/asr/pi-hime/train [DEBUG:2020-06-06 14:48:58,209] rhasspyserver_hermes: -> AsrTrain [DEBUG:2020-06-06 14:48:58,201] rhasspyserver_hermes: Subscribed to hermes/error/nlu [DEBUG:2020-06-06 14:48:58,200] rhasspyserver_hermes: Subscribed to rhasspy/nlu/pi-hime/trainSuccess [DEBUG:2020-06-06 14:48:58,199] rhasspyserver_hermes: Subscribed to hermes/error/asr [DEBUG:2020-06-06 14:48:58,198] rhasspyserver_hermes: Subscribed to rhasspy/asr/pi-hime/trainSuccess [DEBUG:2020-06-06 14:48:58,197] rhasspyserver_hermes: Finished writing /profiles/de/intent_graph.pickle.gz [DEBUG:2020-06-06 14:48:57,455] rhasspyserver_hermes: Writing /profiles/de/intent_graph.pickle.gz [DEBUG:2020-06-06 14:48:56,550] rhasspynlu.slots: Running program for slot rhasspy_weather_slots/named_times: ['/profiles/de/slot_programs/rhasspy_weather_slots/named_times'] [DEBUG:2020-06-06 14:48:56,437] rhasspynlu.slots: Running program for slot rhasspy/number,2,100,1: ['/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slot_programs/rhasspy/number', '2', '100', '1'] [DEBUG:2020-06-06 14:48:55,911] rhasspynlu.slots: Running program for slot rhasspy_weather_slots/temperatures: ['/profiles/de/slot_programs/rhasspy_weather_slots/temperatures'] [DEBUG:2020-06-06 14:48:55,814] rhasspynlu.slots: Running program for slot rhasspy/number,0,59,1: ['/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slot_programs/rhasspy/number', '0', '59', '1'] [DEBUG:2020-06-06 14:48:55,285] rhasspynlu.slots: Running program for slot rhasspy_weather_slots/items: ['/profiles/de/slot_programs/rhasspy_weather_slots/items'] [DEBUG:2020-06-06 14:48:55,171] rhasspynlu.slots: Running program for slot rhasspy/number,0,31,1: ['/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slot_programs/rhasspy/number', '0', '31', '1'] [DEBUG:2020-06-06 14:48:55,169] rhasspynlu.slots: Loading slot rhasspy/days from /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slots/rhasspy/days [DEBUG:2020-06-06 14:48:55,068] rhasspynlu.slots: Running program for slot rhasspy/number,0,24,1: ['/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slot_programs/rhasspy/number', '0', '24', '1'] [DEBUG:2020-06-06 14:48:54,964] rhasspynlu.slots: Running program for slot rhasspy/number,0,7,1: ['/usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slot_programs/rhasspy/number', '0', '7', '1'] [DEBUG:2020-06-06 14:48:54,354] rhasspynlu.slots: Running program for slot rhasspy_weather_slots/named_days: ['/profiles/de/slot_programs/rhasspy_weather_slots/named_days'] [DEBUG:2020-06-06 14:48:54,352] rhasspynlu.slots: Loading slot state_on_off from /profiles/de/slots/state_on_off [DEBUG:2020-06-06 14:48:53,794] rhasspynlu.slots: Running program for slot rhasspy_weather_slots/conditions: ['/profiles/de/slot_programs/rhasspy_weather_slots/conditions'] [DEBUG:2020-06-06 14:48:53,793] rhasspynlu.slots: Loading slot rhasspy/months from /usr/lib/rhasspy/lib/python3.7/site-packages/rhasspyprofile/profiles/de/slots/rhasspy/months [DEBUG:2020-06-06 14:48:53,792] rhasspynlu.slots: Loading slot lights from /profiles/de/slots/lights [DEBUG:2020-06-06 14:48:53,773] rhasspynlu.ini_jsgf: Loaded ini file [DEBUG:2020-06-06 14:48:53,770] rhasspyserver_hermes: Generating intent graph [DEBUG:2020-06-06 14:48:53,768] rhasspyserver_hermes: Loading sentences from [PosixPath('/profiles/de/sentences.ini')] [INFO:2020-06-06 14:48:53,766] rhasspyserver_hermes: Starting training
As soon as I switch back to fsticuffs training works again.
Daenara
My setup:
Raspberry Pi 4 running Raspbian Buster
Rhasspy: pre-pre Version of Rhasppy 2.5
profile: german (de)
My problem:
I would like to use pocketsphinx for Speech to Text. But when I hit the Train-button after adding my intents and sentences to sentences.ini, no language_model.txt-file is written to my profile.
Instead I get the error-message: "name 'language_model' is not defined"
Therefore, Rhasspy does not translate my speech commands to text.
make install
failed with the following error message:
cp: cannot stat '/home/pi/rhasspy-voltron/rhasspy-server-hermes/web/docs': No such file or directory
make: *** [Makefile:153: install-rhasspy] Error 1
# Heads up: The following commands will DELETE ALL UNCOMMITTED CHANGES!
git clean -fdx && git reset --hard
git submodule foreach git clean -fdx
git submodule foreach git reset --hard
./configure --enable-in-place RHASSPY_LANGUAGE=de
make
make install
Device: Raspberry Pi 3B+
OS: Raspbian 10 (buster)
Kernel: Linux 4.19.118-v7+
HEAD at: 8e9943c
# Makefile.in
#
# Copyright © 2012, 2013 Brandon Invergo <[email protected]>
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
# List whatever files you want to include in your source distribution here.
# You can include whole directories but note that *everything* under that
# directory will be included
DISTFILES = PKG-INFO Makefile.in configure setup.py install-sh
DESTDIR =
PACKAGE_BUGREPORT = [email protected]
PACKAGE_NAME = rhasspy
PACKAGE_STRING = rhasspy 2.5.0
PACKAGE_TARNAME = rhasspy
PACKAGE_DISTNAME = ${PACKAGE_NAME}-${PACKAGE_VERSION}
PACKAGE_URL =
PACKAGE_VERSION = 2.5.0
PATH_SEPARATOR = :
PYTHON = /usr/bin/python3
VIRTUALENV = yes
SHELL = /bin/bash
MKDIR_P = /bin/mkdir -p
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_SCRIPT = ${INSTALL}
exec_prefix = ${prefix}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
prefix = /home/pi/rhasspy-voltron/.venv
srcdir = /home/pi/rhasspy-voltron
datadir = ${datarootdir}
datarootdir = ${prefix}/share
pkgdatadir = $(datadir)/rhasspy
pkgincludedir = $(includedir)/rhasspy
# -----------------------------------------------------------------------------
# Dependencies
# -----------------------------------------------------------------------------
BUILD_DIR ?= $(srcdir)/build
DOWNLOAD_DIR ?= $(srcdir)/download
DO_DOWNLOAD ?= curl -sSfL -o
DOCKER_ARCH = armv7
ENABLE_OPENGRM = yes
OPENGRM_ARCH = @OPENGRM_ARCH@
OPENGRM_FROM = prebuilt
OPENGRM_PRE_FILE = $(DOWNLOAD_DIR)/opengrm-1.3.4_$(DOCKER_ARCH).tar.gz
OPENGRM_SRC_FILE = $(DOWNLOAD_DIR)/opengrm-ngram-1.3.4.tar.gz
OPENFST_SRC_FILE = $(DOWNLOAD_DIR)/openfst-1.6.9.tar.gz
ENABLE_PHONETISAURUS = yes
PHONETISAURUS_FROM = prebuilt
PHONETISAURUS_PRE_FILE = $(DOWNLOAD_DIR)/phonetisaurus-2019_$(DOCKER_ARCH).tar.gz
PHONETISAURUS_SRC_FILE = $(DOWNLOAD_DIR)/phonetisaurus-2019.tar.gz
ENABLE_PRECISE = yes
PRECISE_ARCH = armv7l
PRECISE_FROM = prebuilt
PRECISE_FILE = $(DOWNLOAD_DIR)/precise-engine_0.3.0_$(DOCKER_ARCH).tar.gz
ENABLE_POCKETSPHINX = yes
POCKETSPHINX_FILE = $(DOWNLOAD_DIR)/pocketsphinx-python.tar.gz
ENABLE_KALDI = yes
KALDI_FROM = prebuilt
KALDI_PRE_FILE = $(DOWNLOAD_DIR)/kaldi-2020_$(DOCKER_ARCH).tar.gz
KALDI_SRC_FILE = $(DOWNLOAD_DIR)/kaldi-2020.tar.gz
ENABLE_JULIUS = no
JULIUS_FROM = prebuilt
JULIUS_PRE_FILE = $(DOWNLOAD_DIR)/julius-4.5_$(DOCKER_ARCH).tar.gz
JULIUS_SRC_FILE = $(DOWNLOAD_DIR)/julius-2019.tar.gz
ENABLE_DEEPSPEECH = no
DEEPSPEECH_ARCH = rpi3
DEEPSPEECH_FROM = prebuilt
DEEPSPEECH_FILE = $(DOWNLOAD_DIR)/native_client.$(DOCKER_ARCH).cpu.linux.0.6.1.tar.xz
ENABLE_KENLM = no
KENLM_FROM = prebuilt
KENLM_PRE_FILE = $(DOWNLOAD_DIR)/kenlm-20200308_$(DOCKER_ARCH).tar.gz
EIGEN_SRC_FILE = $(DOWNLOAD_DIR)/eigen-3.2.8.tar.bz2
KENLM_SRC_FILE = $(DOWNLOAD_DIR)/kenlm-20200308.tar.gz
ENABLE_NANOTTS = yes
NANOTTS_FROM = prebuilt
NANOTTS_PRE_FILE = $(DOWNLOAD_DIR)/nanotts-20200520_$(DOCKER_ARCH).tar.gz
NANOTTS_SRC_FILE = $(DOWNLOAD_DIR)/nanotts-20200520.tar.gz
ENABLE_SNOWBOY = yes
SNOWBOY_FILE = $(DOWNLOAD_DIR)/snowboy-1.3.0.tar.gz
# -----------------------------------------------------------------------------
VENV_DIR = $(DESTDIR)$(prefix)
VENV_PYTHON = $(VENV_DIR)/bin/python
VIRTUALENV_FLAGS ?= --clear
ifeq ($(VIRTUALENV),yes)
INSTALL_PYTHON=$(VENV_PYTHON)
else # VIRTUALENV == yes
INSTALL_PYTHON=$(PYTHON)
endif # VIRTUALENV == yes
.PHONY: all install uninstall distclean clean dist check installdirs
all: download-init build-init opengrm phonetisaurus precise pocketsphinx kaldi julius snowboy deepspeech kenlm
.PHONY: install-init install-dependencies install-rhasspy
install: installdirs \
install-init \
install-dependencies \
install-rhasspy
install-init:
ifeq ($(VIRTUALENV),yes)
"$(PYTHON)" -m venv $(VIRTUALENV_FLAGS) "$(VENV_DIR)" || "$(PYTHON)" -m venv "$(VENV_DIR)"
"$(VENV_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) --upgrade pip
"$(VENV_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) wheel || true
"$(VENV_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) setuptools
endif # VIRTUALENV == yes
.PHONY: install-opengrm install-phonetisaurus install-precise install-pocketsphinx install-kaldi install-julius install-snowboy install-deepspeech install-kenlm
install-dependencies: install-opengrm \
install-phonetisaurus \
install-precise \
install-pocketsphinx \
install-kaldi \
install-julius \
install-snowboy \
install-deepspeech \
install-kenlm \
install-nanotts
install-rhasspy:
"$(INSTALL_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) "$(srcdir)"
chmod +x "${srcdir}/rhasspy.sh"
install -D "${srcdir}/rhasspy.sh" "$(DESTDIR)$(prefix)/bin/rhasspy"
install -D "--target-directory=$(DESTDIR)$(prefix)/bin" "${srcdir}/bin/rhasspy-voltron" "${srcdir}/bin/voltron-run"
install -D "--target-directory=$(DESTDIR)$(prefix)/share/rhasspy/etc" "${srcdir}/etc/shflags"
install -D "--target-directory=$(DESTDIR)$(prefix)/share/rhasspy/wav" "${srcdir}/etc/wav"/*.wav
install -D "--target-directory=$(DESTDIR)$(prefix)/share/rhasspy" VERSION README.md LICENSE
cp -fR "${srcdir}/rhasspy-server-hermes/web" "$(DESTDIR)$(prefix)/share/rhasspy/"
cp -fR "${srcdir}/rhasspy-server-hermes/templates" "$(DESTDIR)$(prefix)/share/rhasspy/"
cp -fR "${srcdir}/rhasspy-server-hermes/web/docs" "$(DESTDIR)$(prefix)/share/rhasspy/"
# -----------------------------------------------------------------------------
.PHONY: download-init
download-init:
$(MKDIR_P) "$(DOWNLOAD_DIR)"
.PHONY: build-init
build-init:
$(MKDIR_P) "$(BUILD_DIR)"
# -----------------------------------------------------------------------------
# Opengrm: languge modeling toolkit
# http://www.opengrm.org/twiki/bin/view/GRM/NGramLibrary
# -----------------------------------------------------------------------------
.PHONY: opengrm
ifeq ($(ENABLE_OPENGRM),yes)
opengrm: $(OPENGRM_PRE_FILE)
install-opengrm: $(OPENGRM_PRE_FILE)
"$(srcdir)/scripts/install/install-opengrm.sh" "$(OPENGRM_PRE_FILE)" "$(DESTDIR)$(prefix)"
ifeq ($(OPENGRM_FROM),prebuilt)
$(OPENGRM_PRE_FILE):
$(DO_DOWNLOAD) "$(OPENGRM_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/opengrm-1.3.4_$(DOCKER_ARCH).tar.gz"
else # OPENGRM_FROM
$(OPENGRM_PRE_FILE): $(OPENFST_SRC_FILE) $(OPENGRM_SRC_FILE)
"$(srcdir)/scripts/build/build-opengrm.sh" "$(OPENGRM_SRC_FILE)" "$(OPENFST_SRC_FILE)" "$(BUILD_DIR)" "$(OPENGRM_PRE_FILE)"
endif # OPENGRM_FROM
else # ENABLE_OPENGRM
opengrm:
install-opengrm:
endif # ENABLE_OPENGRM
$(OPENFST_SRC_FILE):
$(DO_DOWNLOAD) "$(OPENFST_SRC_FILE)" 'http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.9.tar.gz'
$(OPENGRM_SRC_FILE):
$(DO_DOWNLOAD) "$(OPENGRM_SRC_FILE)" 'http://www.opengrm.org/twiki/pub/GRM/NGramDownload/opengrm-ngram-1.3.4.tar.gz'
# -----------------------------------------------------------------------------
# Phonetisaurus: grapheme to phoneme
# https://github.com/AdolfVonKleist/Phonetisaurus
# -----------------------------------------------------------------------------
.PHONY: phonetisaurus
ifeq ($(ENABLE_PHONETISAURUS),yes)
phonetisaurus: $(PHONETISAURUS_PRE_FILE)
install-phonetisaurus: $(PHONETISAURUS_PRE_FILE)
"$(srcdir)/scripts/install/install-phonetisaurus.sh" "$(PHONETISAURUS_PRE_FILE)" "$(DESTDIR)$(prefix)"
ifeq ($(PHONETISAURUS_FROM),prebuilt)
$(PHONETISAURUS_PRE_FILE):
$(DO_DOWNLOAD) "$(PHONETISAURUS_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/phonetisaurus-2019_$(DOCKER_ARCH).tar.gz"
else # PHONETISAURUS_FROM
$(PHONETISAURUS_PRE_FILE): $(OPENFST_SRC_FILE) $(PHONETISAURUS_SRC_FILE)
"$(srcdir)/scripts/build/build-phonetisaurus.sh" "$(PHONETISAURUS_SRC_FILE)" "$(OPENFST_SRC_FILE)" "$(BUILD_DIR)" "$(PHONETISAURUS_PRE_FILE)"
endif # PHONETISAURUS_FROM
else # ENABLE_PHONETISAURUS
phonetisaurus:
install-phonetisaurus:
endif # ENABLE_PHONETISAURUS
$(PHONETISAURUS_SRC_FILE):
$(DO_DOWNLOAD) "$(PHONETISAURUS_SRC_FILE)" 'https://github.com/synesthesiam/prebuilt-apps/raw/master/download/phonetisaurus-2019.tar.gz'
# -----------------------------------------------------------------------------
# Mycroft Precise: wake word detection
# https://github.com/MycroftAI/mycroft-precise
# -----------------------------------------------------------------------------
.PHONY: precise install-precise
ifeq ($(ENABLE_PRECISE),yes)
precise: $(PRECISE_FILE)
install-precise: $(PRECISE_FILE)
"$(srcdir)/scripts/install/install-precise.sh" "$(PRECISE_FILE)" "$(DESTDIR)$(prefix)"
else # ENABLE_PRECISE
precise:
install-precise:
endif # ENABLE_PRECISE
$(PRECISE_FILE):
$(DO_DOWNLOAD) "$(PRECISE_FILE)" "https://github.com/MycroftAI/mycroft-precise/releases/download/v0.3.0/precise-engine_0.3.0_$(PRECISE_ARCH).tar.gz"
# -----------------------------------------------------------------------------
# Snowboy: wake word detection
# https://snowboy.kitt.ai
# -----------------------------------------------------------------------------
.PHONY: snowboy install-snowboy
ifeq ($(ENABLE_SNOWBOY),yes)
snowboy: $(SNOWBOY_FILE)
install-snowboy: $(SNOWBOY_FILE)
"$(INSTALL_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) "$(SNOWBOY_FILE)"
else # ENABLE_SNOWBOY
snowboy:
install-snowboy:
endif # ENABLE_SNOWBOY
$(SNOWBOY_FILE):
$(DO_DOWNLOAD) "$(SNOWBOY_FILE)" 'https://github.com/Kitt-AI/snowboy/archive/v1.3.0.tar.gz'
# -----------------------------------------------------------------------------
# CMU Pocketsphinx: speech to text
# https://github.com/cmusphinx/pocketsphinx
# -----------------------------------------------------------------------------
.PHONY: pocketsphinx install-pocketsphinx
ifeq ($(ENABLE_POCKETSPHINX),yes)
pocketsphinx: $(POCKETSPHINX_FILE)
install-pocketsphinx: $(POCKETSPHINX_FILE)
"$(INSTALL_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) "$(POCKETSPHINX_FILE)"
else # ENABLE_POCKETSPHINX
pocketsphinx:
install-pocketsphinx:
endif # ENABLE_POCKETSPHINX
$(POCKETSPHINX_FILE):
$(DO_DOWNLOAD) "$(POCKETSPHINX_FILE)" 'https://github.com/synesthesiam/pocketsphinx-python/releases/download/v1.0/pocketsphinx-python.tar.gz'
# -----------------------------------------------------------------------------
# Kaldi: speech to text
# https://kaldi-asr.org
# -----------------------------------------------------------------------------
.PHONY: kaldi
ifeq ($(ENABLE_KALDI),yes)
kaldi: $(KALDI_PRE_FILE)
install-kaldi: $(KALDI_PRE_FILE)
"$(srcdir)/scripts/install/install-kaldi.sh" "$(KALDI_PRE_FILE)" "$(DESTDIR)$(prefix)"
ifeq ($(KALDI_FROM),prebuilt)
$(KALDI_PRE_FILE):
$(DO_DOWNLOAD) "$(KALDI_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/kaldi-2020_$(DOCKER_ARCH).tar.gz"
else # KALDI_FROM
$(KALDI_PRE_FILE): $(KALDI_SRC_FILE)
"$(srcdir)/scripts/build/build-kaldi.sh" "$(KALDI_SRC_FILE)" "$(BUILD_DIR)" "$(KALDI_PRE_FILE)"
endif # KALDI_FROM
else # ENABLE_KALDI
kaldi:
install-kaldi:
endif # ENABLE_KALDI
$(KALDI_SRC_FILE):
$(DO_DOWNLOAD) "$(KALDI_SRC_FILE)" 'https://github.com/synesthesiam/docker-kaldi/raw/master/download/kaldi-2020.tar.gz'
# -----------------------------------------------------------------------------
# Julius: speech to text
# https://github.com/julius-speech/julius
# -----------------------------------------------------------------------------
.PHONY: julius
ifeq ($(ENABLE_JULIUS),yes)
julius: $(JULIUS_PRE_FILE)
install-julius: $(JULIUS_PRE_FILE)
"$(srcdir)/scripts/install/install-julius.sh" "$(JULIUS_PRE_FILE)" "$(DESTDIR)$(prefix)"
ifeq ($(JULIUS_FROM),prebuilt)
$(JULIUS_PRE_FILE):
$(DO_DOWNLOAD) "$(JULIUS_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/julius-4.5_$(DOCKER_ARCH).tar.gz"
else # JULIUS_FROM
$(JULIUS_PRE_FILE): $(JULIUS_SRC_FILE)
"$(srcdir)/scripts/build/build-julius.sh" "$(JULIUS_SRC_FILE)" "$(BUILD_DIR)" "$(JULIUS_PRE_FILE)"
endif # JULIUS_FROM
else # ENABLE_JULIUS
julius:
install-julius:
endif # ENABLE_JULIUS
$(JULIUS_SRC_FILE):
$(DO_DOWNLOAD) "$(JULIUS_SRC_FILE)" 'https://github.com/synesthesiam/prebuilt-apps/raw/master/download/julius-2019.tar.gz'
# -----------------------------------------------------------------------------
# Mozilla DeepSpeech: speech to text
# https://github.com/mozilla/DeepSpeech
# -----------------------------------------------------------------------------
.PHONY: deepspeech install-deepspeech
ifeq ($(ENABLE_DEEPSPEECH),yes)
deepspeech: $(DEEPSPEECH_FILE)
install-deepspeech: $(DEEPSPEECH_FILE)
"$(srcdir)/scripts/install/install-deepspeech.sh" "$(DEEPSPEECH_FILE)" "$(DESTDIR)$(prefix)"
else # ENABLE_DEEPSPEECH
deepspeech:
install-deepspeech:
endif # ENABLE_DEEPSPEECH
$(DEEPSPEECH_FILE):
$(DO_DOWNLOAD) "$(DEEPSPEECH_FILE)" "https://github.com/mozilla/DeepSpeech/releases/download/v0.6.1/native_client.$(DEEPSPEECH_ARCH).cpu.linux.tar.xz"
# -----------------------------------------------------------------------------
# KenLM: language modeling toolkit
# https://kheafield.com/code/kenlm/
# -----------------------------------------------------------------------------
.PHONY: kenlm install-kenlm
ifeq ($(ENABLE_KENLM),yes)
kenlm: $(KENLM_PRE_FILE)
ifeq ($(KENLM_FROM),prebuilt)
$(KENLM_PRE_FILE):
$(DO_DOWNLOAD) "$(KENLM_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/kenlm-20200308_$(DOCKER_ARCH).tar.gz"
else # KENLM_FROM
$(KENLM_PRE_FILE): $(EIGEN_SRC_FILE) $(KENLM_SRC_FILE)
"$(srcdir)/scripts/build/build-kenlm.sh" "$(KENLM_SRC_FILE)" "$(EIGEN_SRC_FILE)" "$(BUILD_DIR)" "$(KENLM_PRE_FILE)"
endif # KENLM_FROM
install-kenlm: $(KENLM_PRE_FILE)
"$(srcdir)/scripts/install/install-kenlm.sh" "$(KENLM_PRE_FILE)" "$(DESTDIR)$(prefix)"
else # ENABLE_KENLM
kenlm:
install-kenlm:
endif # ENABLE_KENLM
$(KENLM_SRC_FILE):
$(DO_DOWNLOAD) "$(KENLM_SRC_FILE)" 'https://github.com/synesthesiam/prebuilt-apps/raw/master/download/kenlm-20200308.tar.gz'
$(EIGEN_SRC_FILE):
$(DO_DOWNLOAD) "$(EIGEN_SRC_FILE)" 'https://github.com/synesthesiam/prebuilt-apps/raw/master/download/eigen-3.2.8.tar.bz2'
# -----------------------------------------------------------------------------
# nanoTTS: text to speech
# https://github.com/gmn/nanotts
# -----------------------------------------------------------------------------
.PHONY: nanotts
ifeq ($(ENABLE_NANOTTS),yes)
nanotts: $(NANOTTS_PRE_FILE)
install-nanotts: $(NANOTTS_PRE_FILE)
"$(srcdir)/scripts/install/install-nanotts.sh" "$(NANOTTS_PRE_FILE)" "$(DESTDIR)$(prefix)"
ifeq ($(NANOTTS_FROM),prebuilt)
$(NANOTTS_PRE_FILE):
$(DO_DOWNLOAD) "$(NANOTTS_PRE_FILE)" "https://github.com/synesthesiam/prebuilt-apps/releases/download/v1.0/nanotts-20200520_$(DOCKER_ARCH).tar.gz"
else # NANOTTS_FROM
$(NANOTTS_PRE_FILE): $(NANOTTS_SRC_FILE)
"$(srcdir)/scripts/build/build-nanotts.sh" "$(NANOTTS_SRC_FILE)" "$(BUILD_DIR)" "$(NANOTTS_PRE_FILE)"
endif # NANOTTS_FROM
else # ENABLE_NANOTTS
nanotts:
install-nanotts:
endif # ENABLE_NANOTTS
$(NANOTTS_SRC_FILE):
$(DO_DOWNLOAD) "$(NANOTTS_SRC_FILE)" 'https://github.com/synesthesiam/prebuilt-apps/raw/master/download/nanotts-20200520.tar.gz'
# -----------------------------------------------------------------------------
uninstall:
ifeq ($(VIRTUALENV),yes)
rm -rvf "$(VENV_DIR)"
endif
# Delete downloaded binaries and build artifacts
clean:
"$(PYTHON)" setup.py clean
rm -rvf "$(BUILD_DIR)"
# Clean up the output of configure
distclean:
rm -v "$(srcdir)/config.log"
rm -v "$(srcdir)/config.status"
rm -rvf "$(srcdir)/autom4te.cache"
rm -v "$(srcdir)/Makefile"
# You can either use the setup.py sdist command or you can roll your own here
dist:
"$(PYTHON)" setup.py sdist
# Use the setup.py check command
check:
"$(PYTHON)" setup.py check
# setup.py might complain if a directory doesn't exist so just in case, make the directory
# here
installdirs:
$(MKDIR_P) "$(DESTDIR)$(prefix)"
I'm running the 2.5 prerelease Docker container and I noticed that some of the files in my profile directory have no permissions for group and other, while most files have read permissions for group and other:
pi@rhasspy:~ $ ls -lah .config/rhasspy/profiles/en/
total 44M
drwxr-xr-x 3 root root 4.0K Mar 8 10:23 .
drwxr-xr-x 3 root root 4.0K Mar 7 14:48 ..
drwxr-xr-x 2 root root 4.0K Mar 7 19:16 acoustic_model
-rw-r--r-- 1 root root 3.1M Mar 7 19:16 base_dictionary.txt
-rw------- 1 root root 516 Mar 7 19:18 dictionary.txt
-rw-r--r-- 1 root root 2.1K Mar 8 10:23 docker-compose.yml
-rw-r--r-- 1 root root 40M Mar 7 19:16 g2p.fst
-rw-r--r-- 1 root root 14K Mar 7 19:18 intent.json
-rw------- 1 root root 5.2K Mar 7 19:18 language_model.txt
-rw-r--r-- 1 root root 473 Mar 8 10:23 profile.json
-rw-r--r-- 1 root root 2.2K Mar 8 10:23 supervisord.conf
-rw-r--r-- 1 root root 558K Mar 8 10:34 supervisord.log
-rw-r--r-- 1 root root 4 Mar 8 10:23 supervisord.pid
-rw-r--r-- 1 root root 0 Mar 7 19:18 unknown_words.txt
I don't know if this will result in a problem, but is this difference intentional?
I see that MQTT over TLS support has been added in Rhasspy 2.4 in synesthesiam/rhasspy#201. Is it much work to add this support in Rhasspy 2.5? I suppose that every Hermes-enabled service should be adapted?
I posted this a while ago in the pre release forum topic but I thought actually creating an issue might be better. After migrating to 2.5 (both pre and release) my custom command script is not called anymore. I have it set up the same way as I did in 2.4 in my profile folder, the script is executable and I can run it from within the docker (after manually installing pip). I do not get any error in the rhasspy log but I can tell that my script does not run because I have my own log that should get a new entry in my log as soon as the script is called (directly after the imports).
Here are my settings:
I also tried without the curly brackets around the profile dir.
Here is what the log says when I recognize the intent with handle checked:
I also did tests in "productive" mode, meaning using a wakeword and then asking the question in case the checkbox is broken but the result was the same.
I do know that I can use mqtt directly but I try to be as modular as possible so I want to support every option available and also, since i just came from 2.4 I do not have a mqtt script written yet.
Daenara
Log is almost never displayed under Chrome and not under Firefox, the window "Rhasspy Log" remains empty. Only rarely a log is displayed, I did not fully understand the system. I think, if you have Rhasspy open in your browser and restart it via docker you will see a stream. But I was not able to repeat this in a reproducible way.
If you try to stream the log over a websocket (ws://IP:PORT/api/events/log), it stops at the status "Opening". This is the case for the following 2 extensions under Chrome: Simple Websocket Client, Browser Websocket Client
I also had problems with audio recording and playback - I couldn't get either of them to work. Unfortunately I cannot say more without log.
I've just pulled the latest docker image (04/01/2020) and asserted that after nearly all positive intent recogitions the ok-beep will be interrupted and the next wake-up can't be done before 30 seconds.
log001.log
It looks like the aplay invocation drops the device that's specified (for the USB speakers I'm using).
In my profile I have:
"sounds": {
"aplay": {
"device": "plughw:3,0"
},
"system": "aplay"
}
However this results in no sound being emitted, unlike 2.4 where these settings worked. Looking at the logs we see: rhasspyspeakers_cli_hermes: ['aplay', '-q', '-t', 'wav']
, device isn't getting added.
It's due to a typo here (aplay vs arecord config parsing). I set my settings for ouput in the arecord
section and it worked.
I'm using Kaldi as text to speech and every train leeds to an error.
train error.log
On a Pi Zero with latest rhasspy-satellite installation and hermesLedControl_v2.0.6 the listen led indication will be turned off after the beep if audio playing is enabled. If the audio is disabled the listen leds will be on during the sentence recording.
log with audio enabled.log
log without audio.log
Hello, It's not possible to clone the project because the folder : /rhasspy-voltron/rhasspy-snips-nlu-hermes is not accessible and if I try to open it in github.com, i have an error 404.
Best regards
I created a fairly simple sentence. The intents are properly detected. However, the generated JSON now generates a dict for the slot instead of a direct value. meaning has an extra key/value pair Kind:Unknown. This key "Kind" is being sent out along with the proper slot values - state in this case. However, since HA is not expecting this "kind" value, the automation in HA fails. Is this something introduce in past couple of days? I remember this was not the case few days earlier.
This is currently deviated from the 2.4.19. If this is a the new standard, please let us know so that we could change at the HA side
[ControlFan]
turn the fan (on|off|swing) {state}
{
"entities": [
{
"end": 15,
"entity": "state",
"kind": "Unknown",
"raw_end": 15,
"raw_start": 13,
"raw_value": "on",
"source": "state",
"start": 13,
"unit": "",
"value": "on"
}
],
"intent": {
"confidence": 0.9,
"name": "ControlFan"
},
"raw_text": "fan on",
"raw_tokens": [
"fan",
"on"
],
"recognize_seconds": 0.048003378000203156,
"slots": {
"state": "on"
},
"speech_confidence": 1,
"text": "turn the fan on",
"tokens": [
"turn",
"the",
"fan",
"on"
],
"wakewordId": ""
}
Here the error :
[ERROR:2020-03-23 23:27:36,879] rhasspyserver_hermes: NluError(error='Cannot connect to host localhost:5005 ssl:<ssl.SSLContext object at 0x7f8b99fb43a8> [Cannot assign requested address]', context='23d1c8f7-08c0-4e62-ad1a-1ff322173f66', siteId='default', sessionId='23d1c8f7-08c0-4e62-ad1a-1ff322173f66')
[ERROR:2020-03-23 23:27:36,879] rhasspyserver_hermes: Cannot connect to host localhost:5005 ssl:<ssl.SSLContext object at 0x7f8b99fb43a8> [Cannot assign requested address]
Traceback (most recent call last):
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.6/site-packages/quart/app.py", line 1471, in full_dispatch_request
result = await self.dispatch_request(request_context)
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.6/site-packages/quart/app.py", line 1519, in dispatch_request
return await handler(**request_.view_args)
File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 1145, in api_train
result = await core.train()
File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 391, in train
raise TrainingFailedException(reason=nlu_response.error)
rhasspyserver_hermes.TrainingFailedException: Cannot connect to host localhost:5005 ssl:<ssl.SSLContext object at 0x7f8b99fb43a8> [Cannot assign requested address]
Hello,
even without a currently working log i can at least test if the wake words are recognized. After detecting the wake words the wake wav is played.
A stop wav or error wav is not heard systematically. Sometimes (rarely) several stop wavs follow follow in a row - a strange bug.
Anyway, porcupine works great - the wake word reacts and a wake sound is played. But with Snowboy and Precise I had no success - here I don't get any feedback from the wake word.
Actually, if we want to announce something in the house with all Rhasspy devices, we can send multiple requests to /api/text-to-speech?siteId=site1 then to site2 etc.
Problem is that each request wait for each device to have finished saying, so we have several seconds between each devices, the more devices /long sentence the more gap.
Would it be possible to use /api/text-to-speech?siteId=site1,site2,site3 to have all devices saying the sentence at same time ?
Thks
Just tried to make a demonstration video for rhasspy 2.5 in venv and got stuck.
The latest version doesn't emit a site id in the json on the websocket /api/events/intent anymore - I though see the id in the console log.
This breaks a lot of setups. Any possibility to get this back?
Hello,
When Rhasspy is configured to start as systemd service like 2.4, the supervisor failed.
It failed to start because in his configuration file ( /.config/rhasspy/profiles/fr/supervisord.conf ) , there is this line for each module :
stdout_logfile = /dev/stdout
When we change this line by :
stdout_logfile=/home/cedcox/rhasspy.log
Rhasspy starts well.
I did not test with docker, i don't use it.
More informations here :
https://community.rhasspy.org/t/making-rhasspy-2-5-venv-run-as-a-service-on-pi-zero/858
Thanks for help,
Regards,
Hi trivial I know...
Trying to use the en-GB voice in picoTTS but get a female American voice. Settings look correct.
Pi 3B+, Buster, Rhasspy installed using Docker.
"text_to_speech": {
"disable_wake": true,
"picotts": {
"language": "en_GB"
},
"system": "picotts",
"wavenet": {
"samplerate": 22050
}
},
Keep up the good work!
Hello,
I have a problem creating slots.
I installed the docker version 2.5.0-pre. everything works normally. Profil : fr
When I want to create a slot nothing happens when I save. when I come back to the slots page it's empty. nothing is saved
Thanks for your help.
Have a good day
Best regards
For a test I've tried to disable the 'Audio Playing' first with the WEB interface and then by removing the 'sounds' entry within profile.json. Nothing of this worked so that I will still get always the beeps. Installation was a rhasspy-satellite venv.
Error log:
[ERROR:2020-03-21 18:21:58,957] rhasspyserver_hermes:
Traceback (most recent call last):
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.6/site-packages/quart/app.py", line 1471, in full_dispatch_request
result = await self.dispatch_request(request_context)
File "/usr/lib/rhasspy-voltron/.venv/lib/python3.6/site-packages/quart/app.py", line 1519, in dispatch_request
return await handler(**request_.view_args)
File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/main.py", line 1137, in api_train
result = await core.train()
File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/init.py", line 367, in train
timeout_seconds=self.training_timeout_seconds,
File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/init.py", line 832, in publish_wait
_, result = await asyncio.wait_for(result_awaitable, timeout_seconds)
File "/usr/lib/python3.6/asyncio/tasks.py", line 362, in wait_for
raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
I have this Node-RED flow gettime-flow.json to handle the GetTime intent.
Last time I tried this flow, this was with a basic setup of one Rhasspy machine and this worked: it could recognize the GetTime intent and reply.
Now I'm testing the same flow on a base/satellite MQTT setup:
If I enter the master's WebSocket URL in the websocket in node and I talk to the satellite, the websocket in node doesn't get the recognized intents. Only if I use the satellite's WebSocket URL and talk to the satellite, the recognized intents are coming in.
Of course for this to work I also need the siteID, which is missing (see #30), but this flow doesn't even get the recognized intent.
Trying to use a python script as intent handler with the 2.5.0-pre docker image fails; the same used to work in 2.4.19:
"handle": {
"command": {
"program": "/profiles/handler.py"
},
"system": "command"
The log:
rhasspy | [DEBUG:2020-04-28 20:06:00,670] rhasspyremote_http_hermes: /profiles/handler.py
rhasspy | [ERROR:2020-04-28 20:06:00,674] rhasspyremote_http_hermes: handle_intent
rhasspy | Traceback (most recent call last):
rhasspy | File "/usr/lib/rhasspy-voltron/rhasspy-remote-http-hermes/rhasspyremote_http_hermes/__init__.py", line 795, in handle_intent
rhasspy | stderr=asyncio.subprocess.PIPE,
rhasspy | File "/usr/lib/python3.7/asyncio/subprocess.py", line 217, in create_subprocess_exec
rhasspy | stderr=stderr, **kwds)
rhasspy | File "/usr/lib/python3.7/asyncio/base_events.py", line 1529, in subprocess_exec
rhasspy | bufsize, **kwargs)
rhasspy | File "/usr/lib/python3.7/asyncio/unix_events.py", line 190, in _make_subprocess_transport
rhasspy | **kwargs)
rhasspy | File "/usr/lib/python3.7/asyncio/base_subprocess.py", line 37, in __init__
rhasspy | stderr=stderr, bufsize=bufsize, **kwargs)
rhasspy | File "/usr/lib/python3.7/asyncio/unix_events.py", line 775, in _start
rhasspy | universal_newlines=False, bufsize=bufsize, **kwargs)
rhasspy | File "/usr/lib/python3.7/subprocess.py", line 800, in __init__
rhasspy | restore_signals, start_new_session)
rhasspy | File "/usr/lib/python3.7/subprocess.py", line 1551, in _execute_child
rhasspy | raise child_exception_type(errno_num, err_msg, err_filename)
rhasspy | PermissionError: [Errno 13] Permission denied: '/'
Is this a problem in rhasspy-remote-http-hermes/rhasspyremote_http_hermes/__init__.py
or is my configuration not correct ... ?
PS: Thanks for that great project.
Installed latest version:
Ideas ?
[ERROR:2020-04-02 16:25:57,676] rhasspyserver_hermes: on_message Traceback (most recent call last): File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 910, in on_message topic, payload, self.subscribed_types File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/client.py", line 259, in parse_mqtt_message message = message_type.from_dict(json_payload) File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/nlu.py", line 92, in from_dict message.slots = [Slot.from_dict(s) for s in slot_dicts] File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/nlu.py", line 92, in <listcomp> message.slots = [Slot.from_dict(s) for s in slot_dicts] File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/intent.py", line 82, in from_dict slot = Slot(**object_dict) TypeError: __init__() missing 2 required positional arguments: 'confidence' and 'raw_value' [ERROR:2020-04-02 16:25:57,606] rhasspyserver_hermes: on_message Traceback (most recent call last): File "/usr/lib/rhasspy-voltron/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 910, in on_message topic, payload, self.subscribed_types File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/client.py", line 259, in parse_mqtt_message message = message_type.from_dict(json_payload) File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/nlu.py", line 92, in from_dict message.slots = [Slot.from_dict(s) for s in slot_dicts] File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/nlu.py", line 92, in <listcomp> message.slots = [Slot.from_dict(s) for s in slot_dicts] File "/usr/lib/rhasspy-voltron/rhasspy-hermes/rhasspyhermes/intent.py", line 82, in from_dict slot = Slot(**object_dict) TypeError: __init__() missing 2 required positional arguments: 'confidence' and 'raw_value'
I installed rhasspy-voltron in a virtual environment, following the installation instructions, then I entered the virtual environment and ran rhasspy-voltron
:
source .venv/bin/activate
./bin/rhasspy-voltron --profile en
This fails with:
Starting up...
DEBUG:__main__:Namespace(debug=True, docker_compose='', local_mqtt_port=12183, profile='en', supervisord_conf='supervisord.conf', system_profiles=PosixPath('profiles'), user_profiles=PosixPath('/home/pi/.config/rhasspy/profiles'))
DEBUG:__main__:Loading profile en
Traceback (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/pi/rhasspy-voltron/rhasspy-supervisor/rhasspysupervisor/__main__.py", line 91, in <module>
main()
File "/home/pi/rhasspy-voltron/rhasspy-supervisor/rhasspysupervisor/__main__.py", line 69, in main
profile = Profile(args.profile, args.system_profiles, args.user_profiles)
File "/home/pi/rhasspy-voltron/rhasspy-profile/rhasspyprofile/__init__.py", line 46, in __init__
self.load_profile()
File "/home/pi/rhasspy-voltron/rhasspy-profile/rhasspyprofile/__init__.py", line 82, in load_profile
with open(defaults_path, "r") as defaults_file:
FileNotFoundError: [Errno 2] No such file or directory: 'profiles/defaults.json'
Also reported on the forum.
When using default as siteId, I got webhook/awake posted to
"webhooks": {
"awake": [
"http://..."
]
}
If I rename siteId to anything other than default, no webhook received.
error : rhasspyserver_hermes: TtsError(error='file does not start with RIFF id', site_id='default', context='ce2f620e-db31-4d21-9af4-89e6ff81d7c9', session_id='')
2 issues:
Command 'fstcompile --keep_isymbols --keep_osymbols --isymbols=/tmp/tmpynenbyw9/isymbols.txt --osymbols=/tmp/tmpynenbyw9/osymbols.txt /tmp/tmpynenbyw9/graph.fst.txt "/tmp/tmpynenbyw9/graph.fst.fst"' returned non-zero exit status 127.
Also, here are the screenshots of 2.5 Pre version where there is no option to directly add the words like it is possible in 2.4.19. Even though the words can be "pronounced", they need to be manually added
I'm still trying to figure out why my sound output isn't working.
It is a pity that the user does not get any feedback in case of an error during the sound output.
I only see the error in the logging of the Docker container. A small toast would be awesome.
I have a setup with Node-RED and Rhasspy on the same Raspberry Pi, each in their own Docker container. I'd like to let Node-RED and Rhasspy communicate over unencrypted HTTP (WebSockets) because they're on the same machine anyway, while I use Rhasspy's web interface over HTTPS from my laptop.
Currently if I configure Rhasspy to use HTTPS, Node-RED can't communicate with Rhasspy over HTTP on Docker's internal network.
A solution would be that I could configure Rhasspy to:
And then I only expose port Y in the Docker container to outside, while I still can connect to port X from other containers on the same machine.
Hi,
I have installed the docker container under a VM in proxmox.
If I run it with port 12101 I can connect to the web interface but if I specify something else, in this case 13101, it can't connect. If I then stop it and specify 12101 again it is OK.
Netstat shows the following when I change to 13101
sudo netstat -aop | grep 13101
tcp6 0 0 [::]:13101 [::]:* LISTEN 14561/docker-proxy off (0.00/0/0)
and this for port 12101
sudo netstat -aop | grep 12101
tcp6 0 0 [::]:12101 [::]:* LISTEN 14032/docker-proxy off (0.00/0/0)
Speaker on matrix voice and rhasspy is good configured when i work on wake word i have sound beep_... . wav, but when i want to use tts with picotts or espeak i have an error:
AudioServerException: Command '['aplay', '-q', '-t', 'wav', '-D', 'hw:CARD=MATRIXIOSOUND,DEV=1']' returned non-zero exit status 1.
Pi 3B+, Buster, Rhasspy installed using Docker.
Here some explanation : https://community.rhasspy.org/t/change-raspberry-volume/791
Setting volume seems something really important for vocal assistant.
Actually we have to ssh on the Pi and send command.
Could Rhasspy handle such volume command ?
Why not having a command access to send other such commands like we do over ssh ?
Hi,
I have a situation where the the intents from Rhasspy are not reliably sent to HA.
Scenario 1: HA is running, Rhasspy is running - when all the certs are setup - the intent sending works and all the relevant automation triggers are activated.
Scenario 2: When HA is restarted, Rhasspy was still running, the Rhasspy connects to HA MQTT just fine, I could even see messages in hermes/intent/intentName. But HA never registers the input. Only after repeadely adding and removing the certs in Rhasspyt does this work. I am unable to replicate a consistent scenario
Scneario 3: When HA is running, Rhasspy is restarted. It works most of the time, but sometimes, it just fails. The MQTT connection is all fine and I would see all the message been sent over.
The above scenarios occur randomly and hence frustrating. The only error I see is below, it temporarily gets resolved when the path to certs are given. and later removed :-)
Sometimes even when I get the below error, the intents are sent to HA properly. thatswhy I stated in the subject very unreliable
[DEBUG:2020-04-04 13:41:30,906] rhasspyhomeassistant_hermes: https://localhost:8123/api/events/rhasspy_FanControl
[ERROR:2020-04-04 13:41:31,099] asyncio: SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0xb5266150>
transport: <_SelectorSocketTransport fd=13 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "/usr/lib/python3.7/asyncio/sslproto.py", line 207, in feed_ssldata
self._sslobj.unwrap()
File "/usr/lib/python3.7/ssl.py", line 767, in unwrap
return self._sslobj.shutdown()
ssl.SSLError: [SSL: KRB5_S_INIT] application data after close notify (_ssl.c:2609)
Settings:
MQTT: Internal
Intent Handling: Disabled
Wake Word: Snowboy
Record Audio: PyAudio with Seeed-2mic-voicecard: - (hw:0,0)
Speech To Text: PocketSphinx
Intent Recognition: Fsticuffs
Text To Speech: PicoTTS
Audio Playing: aplay
Dialogue Management: Rhasspy
When MQTT is configured for External the wake word stops functioning and the Record Device list only shows Default Device (instead of Seeed-2mic-voicecard: - (hw:0,0) ).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.