New Rhasspy Mobile App - Beta

I decided to try turning of Intent Recognition and Intent Handling both. Having done so, the server does correctly process the request and only once. But my second question still remains: will the app be kept up to date when changes are made on the server to the sentences and slots?

The app just sends the speech data to the server and it get’s processed there, so no worries about your sentences and slots

It should work when your server has added the client Side Id in the wakeword site Ids list.
It works by sending small packages to your server all the time (this floods mqtt a little bit), so i would advice you to either create multiple porcupine accounts or use udp instead.

For udp you add the server address in the app and then in your server u add the docker container ip address as udp audio input. Like 172.17.0.2:20000, you can use multiple devices as udp input by naming them like so: 172.17.0.2:20000:mobile1 … (i haven’t tried that yet)

Ok thanks. But this confuses me more. You previously said that both the app and the server will handle the intent.

Remote handling of the intent has been turned off and Node Red shows that it’s being handled ONCE.

And if we’re NOT running in a Docker container?

I’m on a Raspberry Pi 4B running Home Assistant OS with the Rhasspy server (NOT Lite).

When you are using the homeassistant addon for rhasspy it’s a docker container . You can read more about how to use udp in this thread for the other app UDP Wakeword detection with Rhasspy mobile app - #3 by Syntox

Thanks! I’ll check it out when I get home tonight. I always thought that if docker is involved in this, HA would be running in docker too.

A question related to the Porcupine (Local) implementation. If my Internet connection is down for some reason, will that cause the wake word functionality to fail because it couldn’t verify the license?

And a question about having text read to me on the satellite. I was able to get that working last night. But it sounds very robotic. Is it possible to change to a different speaking voice?

Porcupine only requires Internet access when verifying the license.

The robotic voice has nothing to do with the app, the app just plays sound and uses the server to generate the audio. There are various other options like certain homeassistant addons to generate better audio from text.

And when does that check happen? What happens if that check fails (internet is down)?

When it doesn’t work the wake word service shows an error.
It’s done after saving the configuration, when microphone permission is enabled. Else the wake word configuration shows and enable microphone permission button - after you click that it will verify the key. When you don’t click it it will be verified the first time it’s listening for a wake word + microphone permission is given.

When the phone or does it run as a service is restarted, do I need to start the app again manually? Will Porcupine need to do this verification again then?

If I don’t have to worry about the wake word not working just because the internet is down, I would be fine with their licensing scheme.

Once wake word is working correctly I’m just about ready to deploy this (get more satellites).

Related to that: is there a way to export and import my settings? That would be very helpful – I wouldn’t have to enter these settings on every phone I’m using as a satellite.

I have to check if porcupine needs to run the verification again, as far as i know it’s only done once.

You can go into Settings-> Save and Restore Settings → Save to create a full backup.

When I set it to MQTT, the red outline around the speaker button goes away, like it’s not listening for the wake word. I have wakeword setup on the base station and the site id added to it.

Setting it to UDP, it still shows the red outline, but it doesn’t work. Is there anything extra I need to do for this setup?

Why is a license required if it doesn’t use the internet to recognize the wake word? It’s not needed when using porupine in a normal rhasspy setup.

About MQTT not showing a red line: I will look into it.
UDP definitely works, depending what your server runs on you might need port forwarding, for example on a Synology Nas.

Rhasspy server uses an old version of porcupine that doesn’t require an authkey. I could try to add the latest version that doesn’t require an auth key as secondary option if it is still available.

1 Like

I have to correct how the MQTT wake word service works:

It waits for an incoming mqtt message to wake up just like rhasspy does normally Wake Word - Rhasspy

When it works, it works well. But I’m having reliability issues.

It sometimes gets into a funk where it acknowledges that I want to make a request then stops listening before I can actually make the request.

Please take a look at this short video (20 seconds) to see what I mean.

Is there a way to fix this?

https://youtu.be/e7P5DhYO7w0

What kind of silence detection do you use? Via MQTT or via the app (in the app settings)?
And please tell me what device you are using and on which android API level

In the app. I’m still figuring this out and didn’t even know mqtt was an option there. Which is better?

It’s a TCL 30 running Android 12.