4 posts were split to a new topic: Training issue with Rhasspy 2.5 : Missing online.conf
Just a heads up: the next Docker image will fix the NLU messages to align correctly again with Snips.
-
raw_value
in slots will now berawValue
- Same thing for
raw_start
andraw_end
-
value
will be a JSON object withkind
andvalue
properties
Rhasspy traditionally hasn’t differentiated between Snips’ entity
and slotName
fields. In the Rhasspy sentence (some text){tag}
, I’d normally set both fields to tag
and the value to some text
. I’m trying something slightly different with slots now, and looking for feedback.
If you have the sentence ($mySlot){myTag}
now, I’m setting the Snips entity
to “mySlot” and the slotName
to “myTag”. This works really well with numbers, because those are generated with a slot program. So (1..10){myNum}
will have rhasspy/number
as the entity
and myNum
as the slotName
. Additionally, kind
is automatically set to “Number”.
Unfortunately, Rhasspy’s intent JSON format has only ever had entity
, so I’d be breaking backward compatibility there. My first attempt has been to leave entity
alone, and add two new fields to each entity: source
and kind
. In the above example, the entity
, source
, and kind
fields will contain “myNumber”, “rhasspy/number”, and “Number” respectively. I don’t like that Snips’ entity
and Rhasspy’s entity
fields have different values, but that may just be the price to pay.
Thoughts?
I think that entities should be placed in slots so I liked the way Snips did it.
The user defines entities
(cities
for instance that are not related to any specific intent or context) and place them in different slots
with custom names depending on Intent context (from
, to
) that give meaning to the entities.
I think « entities in slots » is clearer than « sources in entities » (which is kind of confusing).
Regarding breaking changes, I think it might be acceptable for 2.5 if it improves clarity in the long term. it might be now or never
Maybe Discourse have a survey plugin to ask the whole community what they prefer?
Hello, congratulation from rhasspy 2.5!
I pulled latest docker rhasspy-2.5 image.
Actually home-assistant intent handling doens’t work anymore.
Configuration:
"home_assistant": { "access_token": "...", "handle_type": "intent", "url": "http://192.168.0.100:8123" }
My sentences:
[LightOn]
accendi ($light){light}
My light slot:
(luce salone):luce_salone
On example “LightOn” intent triggering I have this error home-assistant side:
File “/usr/src/homeassistant/homeassistant/helpers/intent.py”, line 74, in async_handle
raise InvalidSlotInfo(f"Received invalid slot info for {intent_type}") from err
homeassistant.helpers.intent.InvalidSlotInfo: Received invalid slot info for LightOn
I think the value should just contain the value. Not the kind and the value. I think it was the same with snips earlier. Hence, it used to work directly with HA conversation intent components. Now I have to define separate intents just for Rhasspy. see the issue I raised in the git
OK so actually we need to do {{ slot.value }} on home-assistant intent configuration?
correct. Thatswhy I am kind of not in favor of this change as all my intents are defined in HA and I was reusing them until now. With this, I have to do a workaround to define similar intent with slot.value and call the same intent again. Kind of defeats the purpose.
I should be able to fix this for HA without disrupting other Snips-compatible services.
thanks @synesthesiam will be looking forward for it.
It’s a wonderful project and a god send for the snips veterans
I am trying to install docker rhasspy image on Raspberry Pi First version.
But It doesn’t start with some “parallels” errors.
Is rhasspy definitivility incompatible with rpi 1?
Thanks you
The Raspberry Pi 1 has the same ARMv6 architecture as the Raspberry Pi Zero, it probably has something to do with it, because the images with 2.5.0-pre and latest tags on Docker Hub are only built for ARMv7, ARM64 and AMD64.
Have you tried the 2.5.0-pre-arm32v6 image?
@koan is correct. I had tried to bundle the ARMv6 image in with the others, but my Pi Zero kept downloading the ARMv7 image and failing to start it. I’ll revisit this at some point, but you can at least manually specify the image for now
I tried 2.5.0-pre-arm32v6 and it works perfectly. Thanks you!
AFAIK, porcupine and mycroft-precise don’t work on ARMv6?
Or have you seen something else?
@synesthesiam, what is the best way to update an 2.5 pre-release version to the latest github version. I did a git pull and a make, and after that all seemed to work untill I tried to access the api. I get the following error:
[ERROR:2020-04-13 22:08:56,774] rhasspyserver_hermes: ‘servers’
Traceback (most recent call last):
File “/home/vandaag/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py”, line 1821, in full_dispatch_request
result = await self.dispatch_request(request_context)
File “/home/vandaag/rhasspy-voltron/.venv/lib/python3.7/site-packages/quart/app.py”, line 1869, in dispatch_request
return await handler(**request_.view_args)
File “/home/vandaag/rhasspy-voltron/.venv/lib/python3.7/site-packages/swagger_ui/core.py”, line 202, in swagger_blueprint_config_handler
return jsonify(self.get_config(request.host))
File “/home/vandaag/rhasspy-voltron/.venv/lib/python3.7/site-packages/swagger_ui/core.py”, line 79, in get_config
for server in config[‘servers’]:
KeyError: ‘servers’
I did do a remove of the rhasspy directory in .config aswell.
Regards,
Richard
That’s the question I’m trying to answer now… Does anyone know?
I’m using the same config, but the timeout is about 30 sec, not 4 sec
"command": {
"webrtcvad": {
"min_sec": 3,
"speech_buffers": 7,
"throwaway_buffers": 9,
"timeout_sec": 4,
"vad_mode": 2
}
},
I really like 2.5 version… Now it can recognize my voice
Porcupine should with the latest update, but Precise won’t.