New Rhasspy Mobile App - Beta

Just released the Beta version of a new Rhasspy mobile app!
I know there is already the project from @razzo04 (Rhasspy mobile app) but it didn’t fit my needs and i was not able to update the project in it’s current status. Therefore i created a new project.

Github Project

Supported devices

  • Android mobile phone and tablet (minVersion Android 6.0)

  • iOS will maybe come later, some groundwork was already done

  • Smart Watches - no plans yet

  • TV (Android/iOS) - no plans yet

  • Desktop (windows/macos/linux) - no plans yet, docker container is simpler

Main Features:

  • Local Wake Word detection with Porcupine
    This was my most important feature, it also supports custom wake words and multiple wake words.

  • Background Service
    To run the app in the background continuously, this was one of the reasons why it was not possible to update the old app - i had very big issues implementing this together with Porcupine in Flutter

  • Indication when Wake Word is detected
    It’s possible to wake up the display, show an overlay animation and play a sound indication like rhasspy.

  • Microphone Overlay and Widget
    This was requested by other users, it allows to start recording with one click from everywhere and without wake word detection

  • Local Webserver
    Pretty much acts like the default rhasspy web server. Start listening for commands, turn on/off wake word, play sounds etc.

  • Intent and Broadcast to start listening
    This was also requested by other users. It allows to start recording via Broadcast. For example when using home assistant in kiosk mode you can send a Broadcast to the app without leaving the kiosk mode.

  • MQTT
    The Mqtt protocol is also mostly supported, just ignoring some params.

Whats next

I still have some ideas that can be found on the Project Board.
There is no iOS implementation yet, but because the App uses Kotlin Multiplatform Mobile the groundwork is already done but it will still require some work. Therefore i just want to start on it when there is enough need.

What do you think?

Please test my app, it’s currently open beta in the playstore or you can simply download it from the github releases.

12 Likes

Hello,

Thanks to this application without google etc.
I am unable to set up the application configuration with rhasspy. My master has no microphone and speaker. Here is the configuration of each:

Master :

Satellite mobile :


Can you guide me?

Hi, i think you should change your “WakeWord” option in the app.

As in the Rhasspy documents (Wake Word - Rhasspy) when setting WakeWord to MQTT the app waits for a MQTT Topic hermes/hotword/<wakewordId>/detected so you should either use udp or porcupine.
In the current version udp is broken (will be fixed soon) so porcupine should be the way to go.

When you want to use MQTT for the other services (SpeechToText, TextToSpeech) etc you have to connect your Rhasspy base also with the same MQTT Broker. The reason is that the mobile app will send the audio data via MQTT Messages and the base has to receive them.

If you are going to split the processing over 2 or more devices, they ALL need to access the same MQTT broker. The Rhasspy “Internal MQTT” is a bit of a short-cut if all the modules will run on the same machine.

In other words, your “Master” needs to be set to External MQTT, pointing to the same MQTT broker as your mobile app.

1 Like

@donburch : Thank you for the precision on the configuration of the master, by going external it works perfectly.

@Nailik : Thanks for your feedback. I have the wakeword that works in MQTT on my side following the change recommended by donburch.

However, one thing persists. In host, I register my domain name which is attached to my personal ip. It works outside my home (the connection is established without worry) but not at home (I then have to put the local ip of the master). Is there a reason/trick?

Regarding the vocal feedback, I have none at all. Did I make the right configuration? The wish is that it be managed by the master and the feedback is done by voice on the phone.

About the domain issue i am not sure why this happens. Do you use a local dns? Then you could map your domain name to your local ip.

How do you trigger your vocal feedback?

No, I use my internet provider’s DNS.

I use Jeedom to my vocal feedback.

And how do you send the data to the app?

Your domain name is linked to point to your routers public IP address so that anyone on the internet can find your router. Your router’s job is (in part) to redirect any incoming IP packets received on the WAN (internet) port to the appropriate LAN private IP address - on your router the setting are probably under NAT > Port Redirection or similar

However when you are at home, you are connected to a designated private IP address range (probably 192.168.x.x) and the router’s job is to pass DNS requests to the WAN port, translating your LAN IP address to its WAN IP address as it goes. And when the reply comes back it tends to go pear-shaped :frowning:

Some routers have the ability to map a public IP address to a LAN IP address - though there is no standardisation as what it’s called.

I send the data with this configuration :

OK with :
out : mydomain.end
in : 192.168.1.X

It would be nice to add a config for the local and another for the external. If wifi connection activated, verification of the local, if ko, use the external method

I could add a “Backup” field for another Domain/Ip but i would recommend you to “fix” your local network to directly resolve your external address. An option would be pihole or check if your router supports that. Also i think you should not use MQTT from an external network without SSL enabled (how to setup ssl will be documented soon).

About playing sound through the app you could check “Audio Playing” there you can setup if the audio is played as sound/media or as notification. To play the audio data you can use:

  • Mqtt by publishing a Message on the topic hermes/audioServer/<siteId>/playBytes/<requestId>
  • Or you can play audio by enabling the server and calling /api/play-wav and adding the wav data as payload but this is probably not working when your outside your network

So you have to check if jeedom does post on the correct topic, for you that would be hermes/audioServer/mobileflorian/playBytes/<requestId>

1 Like

Adding this internal and external distinction would indeed be great. Would it also be possible to be able to put a different external and internal port? I use a Synology NAS to easily have a secure configuration so the port is different (locally I stay without ssl).
Regarding the ssl for the exterior, it is actually in the works, I will put it in place when I can use it with the local on the app.

I’ll take a look at the sound.

Hello,

I’m currently testing this app and not having any success at all. I have the same config as the person above. No mic/audio on the actual machine.

I have Mosquitto running and the app connects to it perfectly (all local). I have tried disabling the Handle Intent and also configure it for Home Assistant with the same result.

What happens is, when I go to the Home part, to get the microphone, it shows with a red outline. If I push the button, if plays the acknowledgment sound twice, as if I was pushing the button twice, and then just gets stuck, never stops or continues, I have to kill the app.
The wake word does the same, it wakes the phone, but two sounds, then just gets stuck.

Any ideas?

Hi,

the reason for a double indication sound could be that you have enabled “Indication - Sound” inside the App Settings and it is also played via your base.

For the “stuck” part. Make sure that you have added your mobile site id to your base configuration, below every service there is a “Satellite siteIds:” field. Also test different Dialog Management settings inside the app. You can also test each service separately by using the play button and the log may help you to find an issue in your setup.

Thanks, adding the satellite siteids and putting Dialog management to local seemed to have helped, and I could see stuff happen in the Rhasspy logs, but that didn’t last long and now it’s not working again and the logs show nothing happening and it’s back making two sounds. Frustrating to say the least.

One thing also, more often than not, the listening stops before I can even open my mouth to say anything. As in, it turns on and off a second after. When I had the logs still working, I could even see that it had passed a command even though i didn’t say anything.

Edit: this is what i see in the logs now when pushing the mic button
[DEBUG:2023-02-12 15:30:22,047] rhasspyserver_hermes: Sent 277 char(s) to websocket

That’s all, whereas before i could see more happen

Could you please share your settings? You can export them in the setting without sensitive data, also the log file would help.

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.15.option" value="15" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.16.option" value="16" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.17.option" value="17" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.17.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.13.option" value="13" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.14.option" value="14" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.19.option" value="19" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.11.option" value="11" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.12.option" value="12" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.18.option" value="18" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.15.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.14.sensitivity" value="0.5" />
    <string name="TextToSpeechOption">RemoteMQTT</string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.10.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.13.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.39.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.10.option" value="10" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.24.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.8.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.12.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.7.sensitivity" value="0.5" />
    <int name="WakeWordUDPOutputPort" value="***" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.32.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.5.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.11.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.6.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.10.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.40.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.4.option" value="4" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.16.isEnabled" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.41.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.8.option" value="8" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.8.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.9.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.1.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.2.option" value="2" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.6.option" value="6" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.0.option" value="0" />
    <boolean name="CustomTextToSpeechOptionHttpEndpoint" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.25.isEnabled" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.31.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.16.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.27.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.17.sensitivity" value="0.5" />
    <boolean name="CustomSpeechToTextEndpoint" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.28.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.19.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.38.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.18.sensitivity" value="0.5" />
    <string name="TextToSpeechHttpEndpoint"></string>
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.29.sensitivity" value="0.5" />
    <long name="DialogManagementLocalIntentRecognitionTimeout" value="10000" />
    <string name="MQTTHost">***</string>
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.41.option" value="41" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.42.option" value="42" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.34.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.20.option" value="20" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.42.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.26.sensitivity" value="0.5" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.23.option" value="23" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.24.option" value="24" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.25.sensitivity" value="0.5" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.27.option" value="27" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.28.option" value="28" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.24.sensitivity" value="0.5" />
    <string name="IntentRecognitionHttpEndpoint"></string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.11.isEnabled" value="false" />
    <long name="MQTTRetryInterval" value="10" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.3.isEnabled" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.0.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.23.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.37.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.20.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.41.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.42.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.22.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.43.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.21.sensitivity" value="0.5" />
    <int name="MQTTConnectionTimeout" value="5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.3.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.6.isEnabled" value="false" />
    <string name="DialogManagementOption">Local</string>
    <string name="MQTTPassword">***</string>
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.0.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.4.sensitivity" value="0.5" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.7.option" value="7" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.40.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.1.sensitivity" value="0.5" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.3.option" value="3" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.2.sensitivity" value="0.5" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.39.option" value="39" />
    <string name="MQTTUserName">***</string>
    <int name="MQTTPort" value="***" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.27.isEnabled" value="false" />

    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.14.isEnabled" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.9.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.32.option" value="32" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.21.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.31.option" value="31" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.33.option" value="33" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.5.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.34.option" value="34" />
    <string name="WakeWordOption">Porcupine</string>
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.36.option" value="36" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.35.option" value="35" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.36.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.30.option" value="30" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.37.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.28.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.36.sensitivity" value="0.5" />
    <string name="SpeechToTextHttpEndpoint"></string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.43.isEnabled" value="false" />
    <string name="WakeWordPorcupineAccessToken">***</string>
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.33.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.35.sensitivity" value="0.5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.34.sensitivity" value="0.5" />
    <boolean name="ShowLog" value="true" />
    <long name="DialogManagementLocalRecordingTimeout" value="10000" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.31.sensitivity" value="0.5" />
    <boolean name="HotWordEnabled" value="true" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.13.isEnabled" value="false" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.32.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.29.isEnabled" value="false" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.35.isEnabled" value="false" />
    <boolean name="CustomIntentRecognitionHttpEndpoint" value="false" />
    <string name="SpeechToTextOption">RemoteMQTT</string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.22.isEnabled" value="false" />
    <boolean name="Crashlytics" value="false" />
    <string name="IntentRecognitionOption">RemoteMQTT</string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.12.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.38.option" value="38" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.38.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.4.isEnabled" value="true" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.39.sensitivity" value="0.5" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.19.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.40.option" value="40" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.15.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.43.option" value="43" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.23.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.22.option" value="22" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.29.option" value="29" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.21.option" value="21" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.7.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.25.option" value="25" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.26.option" value="26" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.30.isEnabled" value="false" />
    <boolean name="MQTTEnabled" value="true" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.18.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordCustomOptions.size" value="0" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.26.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.5.option" value="5" />
    <float name="WakeWordPorcupineKeywordDefaultSelectedOptions.30.sensitivity" value="0.5" />
    <boolean name="SpeechToTextMqttSilenceDetection" value="true" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.1.option" value="1" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.9.option" value="9" />
    <string name="WakeWordPorcupineLanguage">EN</string>
    <string name="MQTTKeyStoreFile">***</string>
    <string name="WakeWordUDPOutputHost">***</string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.2.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.37.option" value="37" />
    <int name="MQTTKeepAliveInterval" value="30" />
    <long name="DialogManagementLocalAsrTimeout" value="10000" />
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.33.isEnabled" value="false" />
    <int name="WakeWordPorcupineKeywordDefaultSelectedOptions.size" value="44" />
    <string name="LanguageOption">English</string>
    <boolean name="WakeWordPorcupineKeywordDefaultSelectedOptions.20.isEnabled" value="false" />
</map>

Those are my app settings. Also I went check the Rhasspy docker logs and here is what it shows when pushing the button (still hearing two sounds and it seems to stop listening almost right away)

[DEBUG:2023-02-12 15:48:28,536] rhasspydialogue_hermes: <- HotwordDetected(model_id='manual', model_version='', model_type='personal', current_sensitivity=1.0, site_id='mobile', session_id=None, send_audio_captured=None, lang=None, custom_entities=None)

[DEBUG:2023-02-12 15:48:28,537] rhasspydialogue_hermes: Playing sound /usr/lib/rhasspy/etc/wav/beep_hi.wav

[DEBUG:2023-02-12 15:48:28,538] rhasspydialogue_hermes: -> HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,538] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/hotword/toggleOff

[DEBUG:2023-02-12 15:48:28,539] rhasspydialogue_hermes: -> AsrToggleOff(site_id='mobile', reason=<AsrToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,539] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/asr/toggleOff

[DEBUG:2023-02-12 15:48:28,540] rhasspydialogue_hermes: -> AudioPlayBytes(83948 byte(s)) to hermes/audioServer/mobile/playBytes/0e675b1a-a513-4d50-befd-aa2ab72e6dab

[DEBUG:2023-02-12 15:48:28,540] rhasspydialogue_hermes: Waiting for playFinished (id=0e675b1a-a513-4d50-befd-aa2ab72e6dab, timeout=1.2012925170068027)

[DEBUG:2023-02-12 15:48:28,540] rhasspywake_porcupine_hermes: <- HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,541] rhasspywake_porcupine_hermes: Disabled

[ERROR:2023-02-12 15:48:29,323] rhasspydialogue_hermes: parse_mqtt_message (topic=hermes/audioServer/mobile/playFinished)

Traceback (most recent call last):

  File "/usr/lib/rhasspy/rhasspy-hermes/rhasspyhermes/client.py", line 303, in parse_mqtt_message

    json_payload = json.loads(payload)

  File "/usr/lib/python3.7/json/__init__.py", line 348, in loads

    return _default_decoder.decode(s)

  File "/usr/lib/python3.7/json/decoder.py", line 337, in decode

    obj, end = self.raw_decode(s, idx=_w(s, 0).end())

  File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode

    raise JSONDecodeError("Expecting value", s, err.value) from None

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

[WARNING:2023-02-12 15:48:29,743] rhasspydialogue_hermes: Did not receive sayFinished before timeout

[DEBUG:2023-02-12 15:48:29,744] rhasspydialogue_hermes: -> HotwordToggleOn(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,744] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/hotword/toggleOn

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: -> AsrToggleOn(site_id='mobile', reason=<AsrToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/asr/toggleOn

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: Starting new session (id=mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3)

[DEBUG:2023-02-12 15:48:29,746] rhasspydialogue_hermes: -> DialogueSessionStarted(session_id='mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3', site_id='mobile', custom_data='manual', lang=None)

[DEBUG:2023-02-12 15:48:29,747] rhasspydialogue_hermes: Publishing 125 bytes(s) to hermes/dialogueManager/sessionStarted

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: -> HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.DIALOGUE_SESSION: 'dialogueSession'>)

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: Publishing 49 bytes(s) to hermes/hotword/toggleOff

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: Listening for session mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3

[DEBUG:2023-02-12 15:48:29,749] rhasspydialogue_hermes: -> AsrStartListening(site_id='mobile', session_id='mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3', lang=None, stop_on_silence=True, send_audio_captured=True, wakeword_id='manual', intent_filter=None)

[DEBUG:2023-02-12 15:48:29,749] rhasspydialogue_hermes: Publishing 197 bytes(s) to hermes/asr/startListening

[DEBUG:2023-02-12 15:48:29,752] rhasspywake_porcupine_hermes: <- HotwordToggleOn(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,753] rhasspywake_porcupine_hermes: Enabled

[DEBUG:2023-02-12 15:48:29,796] rhasspywake_porcupine_hermes: <- HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.DIALOGUE_SESSION: 'dialogueSession'>)

[DEBUG:2023-02-12 15:48:29,796] rhasspywake_porcupine_hermes: Disabled

Sorry, forgot the app’s logs

[DEBUG:2023-02-12 15:48:28,536] rhasspydialogue_hermes: <- HotwordDetected(model_id='manual', model_version='', model_type='personal', current_sensitivity=1.0, site_id='mobile', session_id=None, send_audio_captured=None, lang=None, custom_entities=None)

[DEBUG:2023-02-12 15:48:28,537] rhasspydialogue_hermes: Playing sound /usr/lib/rhasspy/etc/wav/beep_hi.wav

[DEBUG:2023-02-12 15:48:28,538] rhasspydialogue_hermes: -> HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,538] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/hotword/toggleOff

[DEBUG:2023-02-12 15:48:28,539] rhasspydialogue_hermes: -> AsrToggleOff(site_id='mobile', reason=<AsrToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,539] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/asr/toggleOff

[DEBUG:2023-02-12 15:48:28,540] rhasspydialogue_hermes: -> AudioPlayBytes(83948 byte(s)) to hermes/audioServer/mobile/playBytes/0e675b1a-a513-4d50-befd-aa2ab72e6dab

[DEBUG:2023-02-12 15:48:28,540] rhasspydialogue_hermes: Waiting for playFinished (id=0e675b1a-a513-4d50-befd-aa2ab72e6dab, timeout=1.2012925170068027)

[DEBUG:2023-02-12 15:48:28,540] rhasspywake_porcupine_hermes: <- HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:28,541] rhasspywake_porcupine_hermes: Disabled

[ERROR:2023-02-12 15:48:29,323] rhasspydialogue_hermes: parse_mqtt_message (topic=hermes/audioServer/mobile/playFinished)

Traceback (most recent call last):

 File "/usr/lib/rhasspy/rhasspy-hermes/rhasspyhermes/client.py", line 303, in parse_mqtt_message

   json_payload = json.loads(payload)

 File "/usr/lib/python3.7/json/__init__.py", line 348, in loads

   return _default_decoder.decode(s)

 File "/usr/lib/python3.7/json/decoder.py", line 337, in decode

   obj, end = self.raw_decode(s, idx=_w(s, 0).end())

 File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode

   raise JSONDecodeError("Expecting value", s, err.value) from None

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

[WARNING:2023-02-12 15:48:29,743] rhasspydialogue_hermes: Did not receive sayFinished before timeout

[DEBUG:2023-02-12 15:48:29,744] rhasspydialogue_hermes: -> HotwordToggleOn(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,744] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/hotword/toggleOn

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: -> AsrToggleOn(site_id='mobile', reason=<AsrToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: Publishing 43 bytes(s) to hermes/asr/toggleOn

[DEBUG:2023-02-12 15:48:29,745] rhasspydialogue_hermes: Starting new session (id=mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3)

[DEBUG:2023-02-12 15:48:29,746] rhasspydialogue_hermes: -> DialogueSessionStarted(session_id='mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3', site_id='mobile', custom_data='manual', lang=None)

[DEBUG:2023-02-12 15:48:29,747] rhasspydialogue_hermes: Publishing 125 bytes(s) to hermes/dialogueManager/sessionStarted

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: -> HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.DIALOGUE_SESSION: 'dialogueSession'>)

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: Publishing 49 bytes(s) to hermes/hotword/toggleOff

[DEBUG:2023-02-12 15:48:29,748] rhasspydialogue_hermes: Listening for session mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3

[DEBUG:2023-02-12 15:48:29,749] rhasspydialogue_hermes: -> AsrStartListening(site_id='mobile', session_id='mobile-manual-9f74b3d9-3ae0-4103-a045-9164cae842b3', lang=None, stop_on_silence=True, send_audio_captured=True, wakeword_id='manual', intent_filter=None)

[DEBUG:2023-02-12 15:48:29,749] rhasspydialogue_hermes: Publishing 197 bytes(s) to hermes/asr/startListening

[DEBUG:2023-02-12 15:48:29,752] rhasspywake_porcupine_hermes: <- HotwordToggleOn(site_id='mobile', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)

[DEBUG:2023-02-12 15:48:29,753] rhasspywake_porcupine_hermes: Enabled

[DEBUG:2023-02-12 15:48:29,796] rhasspywake_porcupine_hermes: <- HotwordToggleOff(site_id='mobile', reason=<HotwordToggleReason.DIALOGUE_SESSION: 'dialogueSession'>)

[DEBUG:2023-02-12 15:48:29,796] rhasspywake_porcupine_hermes: Disabled

That’s not the apps log and please also add the app version.

Oops, I copied the same thing twice… I actually got it mostly working, the only thing left is the short listening time. If I hesitate a split second, it stops listening, is there any way to extend that?


,{"time":"2023-02-13T14:52:46.711","severity":"Debug","tag":"DialogManagerService","message":"onAction WakeWordDetected from Local wakeWord: COMPUTER","throwable":null}
,{"time":"2023-02-13T14:52:46.714","severity":"Debug","tag":"IndicationService","message":"onWakeWordDetected","throwable":null}
,{"time":"2023-02-13T14:52:46.711","severity":"Debug","tag":"DialogManagerService","message":"WakeWordDetected from Local wakeWord: COMPUTER","throwable":null}
,{"time":"2023-02-13T14:52:46.716","severity":"Debug","tag":"DialogManagerService","message":"onAction StartSession from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.717","severity":"Debug","tag":"DialogManagerService","message":"StartSession from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.717","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:46.707","severity":"Debug","tag":"NativeLocalWakeWordService","message":"invoke - keyword detected","throwable":null}
,{"time":"2023-02-13T14:52:46.708","severity":"Debug","tag":"WakeWordService","message":"onKeywordDetected COMPUTER","throwable":null}
,{"time":"2023-02-13T14:52:46.734","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/COMPUTER/detected","throwable":null}
,{"time":"2023-02-13T14:52:46.735","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/COMPUTER/detected","throwable":null}
,{"time":"2023-02-13T14:52:46.735","severity":"Debug","tag":"DialogManagerService","message":"onAction WakeWordDetected from Mqtt wakeWord: COMPUTER","throwable":null}
,{"time":"2023-02-13T14:52:46.735","severity":"Debug","tag":"DialogManagerService","message":"WakeWordDetected from Mqtt wakeWord: COMPUTER","throwable":null}
,{"time":"2023-02-13T14:52:46.735","severity":"Debug","tag":"IndicationService","message":"onWakeWordDetected","throwable":null}
,{"time":"2023-02-13T14:52:46.736","severity":"Debug","tag":"DialogManagerService","message":"onAction StartSession from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.736","severity":"Debug","tag":"DialogManagerService","message":"StartSession from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.736","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:46.739","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:46.740","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:46.740","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:46.740","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: false","throwable":null}
,{"time":"2023-02-13T14:52:46.757","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playBytes/b4db9dd6-7f96-402b-9695-4b2d93699b0a","throwable":null}
,{"time":"2023-02-13T14:52:46.757","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playBytes/b4db9dd6-7f96-402b-9695-4b2d93699b0a","throwable":null}
,{"time":"2023-02-13T14:52:46.758","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayAudio from Mqtt size: 83948","throwable":null}
,{"time":"2023-02-13T14:52:46.758","severity":"Debug","tag":"IndicationService","message":"onPlayAudio","throwable":null}
,{"time":"2023-02-13T14:52:46.758","severity":"Debug","tag":"LocalAudioService","message":"stop","throwable":null}
,{"time":"2023-02-13T14:52:46.758","severity":"Debug","tag":"AudioPlayingService","message":"playAudio dataSize: 83948","throwable":null}
,{"time":"2023-02-13T14:52:46.759","severity":"Debug","tag":"LocalAudioService","message":"playAudio 83948","throwable":null}
,{"time":"2023-02-13T14:52:46.806","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionStarted from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.807","severity":"Debug","tag":"DialogManagerService","message":"SessionStarted from Local","throwable":null}
,{"time":"2023-02-13T14:52:46.808","severity":"Debug","tag":"DialogManagerService","message":"StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.808","severity":"Debug","tag":"DialogManagerService","message":"onAction StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.809","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:46.809","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:46.809","severity":"Debug","tag":"SpeechToTextService","message":"startSpeechToText sessionId: f16625c3-0b3c-441e-b4b6-75da54c5590e fromMqtt false","throwable":null}
,{"time":"2023-02-13T14:52:46.810","severity":"Debug","tag":"RecordingService","message":"startRecording","throwable":null}
,{"time":"2023-02-13T14:52:46.822","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:46.823","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:46.824","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:46.825","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionStarted from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:46.825","severity":"Debug","tag":"SpeechToTextService","message":"startSpeechToText sessionId: f16625c3-0b3c-441e-b4b6-75da54c5590e fromMqtt false","throwable":null}
,{"time":"2023-02-13T14:52:46.825","severity":"Debug","tag":"DialogManagerService","message":"onAction StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.825","severity":"Debug","tag":"DialogManagerService","message":"SessionStarted from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"DialogManagerService","message":"StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:46.826","severity":"Debug","tag":"DialogManagerService","message":"onAction StartListening from Mqtt sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.827","severity":"Debug","tag":"DialogManagerService","message":"StartListening from Mqtt sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:46.827","severity":"Debug","tag":"SpeechToTextService","message":"startSpeechToText sessionId: f16625c3-0b3c-441e-b4b6-75da54c5590e fromMqtt true","throwable":null}
,{"time":"2023-02-13T14:52:46.827","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:46.827","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:47.624","severity":"Debug","tag":"LocalAudioService","message":"onFinished","throwable":null}
,{"time":"2023-02-13T14:52:47.625","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Local","throwable":null}
,{"time":"2023-02-13T14:52:47.625","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:47.641","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:47.642","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:47.643","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:47.644","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:47.644","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:47.948","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:47.949","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:47.950","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: true","throwable":null}
,{"time":"2023-02-13T14:52:47.948","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:47.959","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: false","throwable":null}
,{"time":"2023-02-13T14:52:47.959","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:47.960","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:47.960","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/dialogueManager/sessionStarted","throwable":null}
,{"time":"2023-02-13T14:52:47.960","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionStarted from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:47.960","severity":"Debug","tag":"DialogManagerService","message":"SessionStarted from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:47.960","severity":"Debug","tag":"DialogManagerService","message":"onAction StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:47.961","severity":"Debug","tag":"DialogManagerService","message":"StartListening from Local sendAudioCaptured: false","throwable":null}
,{"time":"2023-02-13T14:52:47.961","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:47.961","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:47.961","severity":"Debug","tag":"SpeechToTextService","message":"startSpeechToText sessionId: mobile-COMPUTER-b6bd6e42-3a29-4847-aa7d-db2bff0434b2 fromMqtt false","throwable":null}
,{"time":"2023-02-13T14:52:47.961","severity":"Debug","tag":"SpeechToTextService","message":"startSpeechToText sessionId: mobile-COMPUTER-b6bd6e42-3a29-4847-aa7d-db2bff0434b2 fromMqtt true","throwable":null}
,{"time":"2023-02-13T14:52:47.962","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:47.962","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:47.962","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:47.962","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:47.962","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:47.963","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/startListening","throwable":null}
,{"time":"2023-02-13T14:52:47.963","severity":"Debug","tag":"DialogManagerService","message":"onAction StartListening from Mqtt sendAudioCaptured: true","throwable":null}
,{"time":"2023-02-13T14:52:47.963","severity":"Debug","tag":"DialogManagerService","message":"StartListening from Mqtt sendAudioCaptured: true","throwable":null}
,{"time":"2023-02-13T14:52:47.963","severity":"Debug","tag":"WakeWordService","message":"stopDetection","throwable":null}
,{"time":"2023-02-13T14:52:47.963","severity":"Debug","tag":"IndicationService","message":"onListening","throwable":null}
,{"time":"2023-02-13T14:52:49.025","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.026","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.027","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.030","severity":"Debug","tag":"DialogManagerService","message":"AsrTextCaptured from Mqtt text: ","throwable":null}
,{"time":"2023-02-13T14:52:49.031","severity":"Debug","tag":"IndicationService","message":"onRecognizingIntent","throwable":null}
,{"time":"2023-02-13T14:52:49.031","severity":"Debug","tag":"SpeechToTextService","message":"endSpeechToText sessionId: mobile-COMPUTER-b6bd6e42-3a29-4847-aa7d-db2bff0434b2 fromMqtt true","throwable":null}
,{"time":"2023-02-13T14:52:49.031","severity":"Debug","tag":"RecordingService","message":"stopRecording","throwable":null}
,{"time":"2023-02-13T14:52:49.030","severity":"Debug","tag":"DialogManagerService","message":"onAction AsrTextCaptured from Mqtt text: ","throwable":null}
,{"time":"2023-02-13T14:52:49.040","severity":"Debug","tag":"IndicationService","message":"onRecognizingIntent","throwable":null}
,{"time":"2023-02-13T14:52:49.040","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.041","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.041","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/textCaptured","throwable":null}
,{"time":"2023-02-13T14:52:49.041","severity":"Debug","tag":"DialogManagerService","message":"onAction AsrTextCaptured from Mqtt text: ","throwable":null}
,{"time":"2023-02-13T14:52:49.042","severity":"Debug","tag":"DialogManagerService","message":"AsrTextCaptured from Mqtt text: ","throwable":null}
,{"time":"2023-02-13T14:52:49.043","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:49.044","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:49.044","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: false","throwable":null}
,{"time":"2023-02-13T14:52:49.044","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:49.093","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playBytes/92c55f22-2a45-4724-b985-1c96d7c5f3c3","throwable":null}
,{"time":"2023-02-13T14:52:49.094","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playBytes/92c55f22-2a45-4724-b985-1c96d7c5f3c3","throwable":null}
,{"time":"2023-02-13T14:52:49.094","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayAudio from Mqtt size: 119908","throwable":null}
,{"time":"2023-02-13T14:52:49.095","severity":"Debug","tag":"IndicationService","message":"onPlayAudio","throwable":null}
,{"time":"2023-02-13T14:52:49.095","severity":"Debug","tag":"LocalAudioService","message":"stop","throwable":null}
,{"time":"2023-02-13T14:52:49.095","severity":"Debug","tag":"AudioPlayingService","message":"playAudio dataSize: 119908","throwable":null}
,{"time":"2023-02-13T14:52:49.095","severity":"Debug","tag":"LocalAudioService","message":"playAudio 119908","throwable":null}
,{"time":"2023-02-13T14:52:50.087","severity":"Debug","tag":"LocalAudioService","message":"onFinished","throwable":null}
,{"time":"2023-02-13T14:52:50.090","severity":"Debug","tag":"IndicationService","message":"onRecognizingIntent","throwable":null}
,{"time":"2023-02-13T14:52:50.089","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Local","throwable":null}
,{"time":"2023-02-13T14:52:50.100","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:50.101","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:50.101","severity":"Debug","tag":"IndicationService","message":"onRecognizingIntent","throwable":null}
,{"time":"2023-02-13T14:52:50.101","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:50.102","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.718","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.720","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: true","throwable":null}
,{"time":"2023-02-13T14:52:50.721","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.721","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.724","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: false","throwable":null}
,{"time":"2023-02-13T14:52:50.725","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.725","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: true","throwable":null}
,{"time":"2023-02-13T14:52:50.725","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:50.726","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:50.726","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOff","throwable":null}
,{"time":"2023-02-13T14:52:50.726","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:50.726","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:50.727","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:50.727","severity":"Debug","tag":"DialogManagerService","message":"onAction StopListening from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.727","severity":"Debug","tag":"DialogManagerService","message":"StopListening from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.728","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.728","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/nlu/intentNotRecognized","throwable":null}
,{"time":"2023-02-13T14:52:50.728","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/nlu/intentNotRecognized","throwable":null}
,{"time":"2023-02-13T14:52:50.728","severity":"Debug","tag":"IndicationService","message":"onRecognizingIntent","throwable":null}
,{"time":"2023-02-13T14:52:50.729","severity":"Debug","tag":"SpeechToTextService","message":"endSpeechToText sessionId: mobile-COMPUTER-b6bd6e42-3a29-4847-aa7d-db2bff0434b2 fromMqtt true","throwable":null}
,{"time":"2023-02-13T14:52:50.719","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:50.731","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/nlu/intentNotRecognized","throwable":null}
,{"time":"2023-02-13T14:52:50.732","severity":"Debug","tag":"DialogManagerService","message":"onAction IntentRecognitionError from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.733","severity":"Debug","tag":"DialogManagerService","message":"IntentRecognitionError from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.734","severity":"Debug","tag":"IndicationService","message":"onError","throwable":null}
,{"time":"2023-02-13T14:52:50.734","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionEnded from Local","throwable":null}
,{"time":"2023-02-13T14:52:50.735","severity":"Debug","tag":"DialogManagerService","message":"SessionEnded from Local","throwable":null}
,{"time":"2023-02-13T14:52:50.735","severity":"Debug","tag":"IndicationService","message":"onIdle","throwable":null}
,{"time":"2023-02-13T14:52:50.749","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playBytes/65bb1aaf-6696-41ee-86e1-cd5f2367ba59","throwable":null}
,{"time":"2023-02-13T14:52:50.749","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playBytes/65bb1aaf-6696-41ee-86e1-cd5f2367ba59","throwable":null}
,{"time":"2023-02-13T14:52:50.750","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayAudio from Mqtt size: 155492","throwable":null}
,{"time":"2023-02-13T14:52:50.750","severity":"Debug","tag":"IndicationService","message":"onPlayAudio","throwable":null}
,{"time":"2023-02-13T14:52:50.750","severity":"Debug","tag":"AudioPlayingService","message":"playAudio dataSize: 155492","throwable":null}
,{"time":"2023-02-13T14:52:50.750","severity":"Debug","tag":"LocalAudioService","message":"stop","throwable":null}
,{"time":"2023-02-13T14:52:50.750","severity":"Debug","tag":"LocalAudioService","message":"playAudio 155492","throwable":null}
,{"time":"2023-02-13T14:52:50.751","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:50.751","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:50.752","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:50.752","severity":"Debug","tag":"IndicationService","message":"onIdle","throwable":null}
,{"time":"2023-02-13T14:52:50.752","severity":"Debug","tag":"DialogManagerService","message":"SessionEnded from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:50.752","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionEnded from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:51.974","severity":"Debug","tag":"IndicationService","message":"onIdle","throwable":null}
,{"time":"2023-02-13T14:52:51.971","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Local","throwable":null}
,{"time":"2023-02-13T14:52:51.969","severity":"Debug","tag":"LocalAudioService","message":"onFinished","throwable":null}
,{"time":"2023-02-13T14:52:51.983","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:51.984","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:51.984","severity":"Debug","tag":"IndicationService","message":"onIdle","throwable":null}
,{"time":"2023-02-13T14:52:51.984","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/audioServer/mobile/playFinished","throwable":null}
,{"time":"2023-02-13T14:52:51.984","severity":"Debug","tag":"DialogManagerService","message":"onAction PlayFinished from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:52.764","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.765","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.766","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.768","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: true","throwable":null}
,{"time":"2023-02-13T14:52:52.773","severity":"Debug","tag":"AppSettingsService","message":"hotWordToggle value: true","throwable":null}
,{"time":"2023-02-13T14:52:52.773","severity":"Debug","tag":"DialogManagerService","message":"stopListening parameter issue sessionId: null","throwable":null}
,{"time":"2023-02-13T14:52:52.773","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.773","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/hotword/toggleOn","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"onMessageReceived id 0 hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"regexTopic hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/dialogueManager/sessionEnded","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"MqttService","message":"compareTopic hermes/asr/stopListening","throwable":null}
,{"time":"2023-02-13T14:52:52.774","severity":"Debug","tag":"DialogManagerService","message":"onAction StopListening from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:52.775","severity":"Debug","tag":"DialogManagerService","message":"StopListening from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:52.776","severity":"Debug","tag":"DialogManagerService","message":"onAction SessionEnded from Mqtt","throwable":null}
,{"time":"2023-02-13T14:52:52.776","severity":"Debug","tag":"IndicationService","message":"onIdle","throwable":null}
,{"time":"2023-02-13T14:52:52.776","severity":"Debug","tag":"DialogManagerService","message":"SessionEnded from Mqtt","throwable":null}

I also noted that the MQTT Text to speech doesn’t seem to work, I get no answer on the phone when I test it out. But besides that, it seems to work!

Edit 2: the listening is pretty spotty, sometimes it closes fine, if I say “turn off the kitchen lights” but other times it’ll cut short even though I’m still talking, like “turn on the kitchen light full bright” so it only gets the beginning.
I tried without the MQTT slience detection, but then it closes after like a second or two