New Rhasspy Mobile App - Beta

Convert the text to WAV data and use “hermes/audioServer/< siteId>/playBytes/< requestId>” or you use the http endpoint “/api/say” where you post the text or send the text to “Hermes/tts/say” on your rhasspy server with the correct satellite site id.

Edit:
The app doesn’t handle “hermes/tts/say” for the following reason:

When receiving “hermes/tts/say” in app and using mqtt for text-to-speech then the app has to call “hermes/tts/say” by itself to enable the base to do the text-to-speech operation. But this would result in a loop because the app itself would also receive the command.

Therefore you have to send “hermes/tts/say” with the siteId from the app, this will be consumed by the rhasspy base, it will do the text-to-speech operation and call “hermes/audioServer/< siteId>/playBytes/< requestId>” with the given siteId, this then results in the app playing the sound.

Ok, thanks I will wait until next version (I don’t know how compilate Kotling code).
I have commit the translation to catalan.

Thanks a lot for your work.

I updated my answer to clarify that the app won’t recognize “Hermes/tts/say” (also not in the future) and why. Hope it’s now clearer.

OK, thanks for clearing it up

I decided to support “Hermes/tts/say” with the newest Release because it simplifies app usage. It uses a specific sessionId so there won’t be a loop when also using mqtt as text-to-speech service.

Note that this endpoint expects a JSON string as input as described here Reference - Rhasspy

Nice app.
Is there a possibility to make this app for android TV?
Thanks a lot for your work.

Jeah it’s already planned.
Mostly I would need to do testing as well as thinking about how I make file selection.
Most AndroidTVs don’t have a File App therefore I think about a download dialog in order to eg use custom porcupine wakewords.
Also I would need to do some testing just to make sure everything works as expected.

Thank you for this. I had been looking for this for ages.

Is it possible to change the voices?

Do you mean for Text-To-Speech playback?

Right, is it possible to change voices for TTS playback?

Also, How to manage multiple satellites that we may be hearing the same command? So e.g. with Google speakers, only one of them responds at one point in time even though they all heard the wake word.

Also, Also, Any way of integrating with local AI for conversation? may be via Home Assistant?

For tts the selected System (http or mqtt) is used, you need to change the voice there. Another possibility is to process the command in Home assistant eg via nodered and the use some tts service and send only the audio to the app.

In order to have only one satellite react to a wakeword I think Mqtt dialog might be the way to go. You would need to listen to the wake word message and then tell only one satellite to react.

Maybe they found/will found a solution for this with rhasspy3/Wyoming protocol and I currently work on supporting it in the app.

1 Like

Hi there! I am quite new to Rhasspy and Mobile app seems to be very promising. However I can not get it to work. I am not sure where problem is but I suspect that I can not record the speech for some reason. I can activate microphone by pressing or by wake word but the listening time expires and no record is made. At least if I press Play Recording nothing happens. In Dialog section I am getting RecordingIntentState > SendAudioCaptured: false, asrtext Null, AsrTeimeoutError. I have allowed microphone recording to this app. Besides wake word works fine so the mic is accesible to the app. Installed it on other Android device - it is the same.

Hi VilnisRadio,
I know that Nailik will probably respond soon, if you look at my thread on Wall Panel, HA App, etc. Nailik has been incredibly gracious in offering support. Just as an FYI, I’m in the same boat, however, I’ve been able to get things to work by using the old Rhasspy Mobile App from Razzo04 (GitHub - Nailik/rhasspy_mobile: Rhasspy is a voice assistant software. This repository implements the functionality of a Rhasspy satellite, with local wake word recognition.) and a docker container running the OpenWakeWord (GitHub - dalehumby/openWakeWord-rhasspy: openWakeWord for Rhasspy). However, as Nailik pointed out, the platform to update the old Rhasspy android app is a tough one, and it hasn’t been updated in a long time. So, there’s some quirks with the old app, like requiring a user name / pw for the mosquitto broker, even if you don’t have that set up, and it doesn’t have the ability to be brought to the foreground on activation. Anyway, hope this helps; as I said working for me for now, I don’t have the $ to buy hardware that support the new voice platform for HA now, so this is good enough for now (can turn on/off lights, respond to specific queries built in HA automations.
Jeff

Hi!
Actually I have to apologize, especially to Nailik. I carefully studied on Tutorials page how the satelites architecture is built and the difference between mqqt and http solution. My problem was that I did not properly set up master and satellites mixing between mqqt and http and master and sattelites. Once I put all settings to mqqt it worked just perfectly. I just did not had enough patience to study how the voice recognition works as it was my first experience for the Speech to text.

Hi VilnisRadio,
Would you mind posting your main Rhasspy config & your satellite config? I’d really like to use Nailik’s app, but I can’t get the wake word to work.
Thank you,
Jeff

Hi guys,

please make sure you are using the same version :slight_smile:

I am glad you already found the issue!
When using the nightly build you should use the “Dialog” Screen to see the reason why stt was canceled/ended.

But maybe it’s also because of the bug that the Speech-to-text setting is not saved correctly.
I found the big it’s a weird race condition. I think the latest stable version saves just fine but the nightly doesn’t.
I’ll fix it in the upcoming days, not sure if I got enough time today.

And also thank you for using it. Currently my focus was on supporting Rhasspy3 and with it there are also some more changes, simplifying the code and hopefully also the usage. I just had a break but seeing some more users definitely is nice :smile: .

Hi Nailik,
Thank you so very much for continuing work on the app!! I’ve been doing a lot of reading about the new HA Assist & Voice, which is exciting, but it seems it really requires a lot of hardware to work well. I’m very happy with my Rhasspy 2.5 running on a raspberry pi, and my HA running as a docker in a very old unraid NAS using Kaldi as the TTS engine. My goal is to use an android satellite (check out this thread for the hardware, very nice looking, and inexpensive: Is this the perfect standalone tablet for HA? - Share your Projects! - Home Assistant Community ) in a part of my house where the current raspberry pi microphone coverage isn’t good. And yes, I understand about version checking :grinning: I’ve actually tried different versions of your app, as well as the old one and, I’d really, really like to use yours, much more elegant of an implementation, but I just can’t get it configured correctly. I’ll be patient, I promise…
Jeffrey

Please excuse my ignorance, but even after a lot of reading, I still don’t understand what this app does.
Is it a mean to command my Android mobile to do things, by using voice commands?
Or is it a replacement for Whisper & Piper so that I don’t need those to use voice commands in Home Assistant?

Hi, the idea is to use your already existing smartphone/tablet as microphone and speaker.

When I started implementing it the home assistant app didn’t have such features, now it has.

I already added local wake word detection with porcupine, so that the Android device doesn’t need to stream audio continuously.

1 Like

Well, thank you. So why use your app then, when the HA Companion App now has mic&speaker support? Are there still any obvious differences/benefits?