2021-02-26 18:18:52 +01:00
# Rhasspy visual conversation helper
This application is supposed to work as a visual helper for Rhasspy conversations on setups that have a screen or even a touchscreen.
2021-02-27 22:58:52 +01:00
See more information and detailed instructions on https://server47.de/rhasspy/
## Setup instructions
### Download jar file
Download the jar file of the program and put it in a folder, e.g. under _/home/pi/RhasspyVisualConversationTool_
### Make sure java is installed
_which java_ should return something. If it doesn't install a java runtime environment, e.g. with _apt install openjdk-11-jre_
### Configuration file
Create _RhasspyVisualConversationTool-settings.ini_ with the following content:
```
language=de-DE
sslDebug=false
keystoreFilename=
keystorePassword=changeme
logFolderPath=/var/log/rhasspyVisualConversationTool
logLevel=5
mqttClientServerHostname=mqtt.yourServer.com
mqttClientServerPort=1883
mqttClientUseSsl=false
mqttClientUseAuthentication=false
mqttClientUsername=
mqttClientPassword=
siteId=
```
If you have set _mqttClientUseSsl=true_ it's at least likely you have your own PKI. In that case create a java keystore and put your root certificate in it. Then save the keystore in the folder of the jar and config file and put its filename for _keystoreFilename_ .
### Create start script
I suggest to use this path: _/home/pi/Desktop/startConversationTool.sh_
Put this content into the file (adapt the folder if you changed it above):
```
#!/bin/bash
while(true)
do
cd /home/pi/RhasspyVisualConversationTool/
/usr/bin/java -jar /home/pi/RhasspyVisualConversationTool/RhasspyVisualConversationTool.jar
sleep 5
done
```
Make it runnable: _chmod 775 /home/pi/Desktop/startConversationTool.sh_
### Make the script autostart with the graphical user interface
Create this file: _/home/pi/.config/autostart/conversationTool.desktop_
with the following content:
```
[Desktop Entry]
Type=Application
Exec=/home/pi/Desktop/startConversationTool.sh
```
### Test run
When double-clicking your start script the app should come up and connect successfully.
2021-02-28 19:52:20 +01:00
Restart your Raspberry Pi to make sure the script comes up automatically.
### Power settings for normal operation
In my own use-case the screen is usually off and turns on only when a command is spoken. In case you want that, too:
* The turning on is done by this application by briefly simulating mouse action.
* After the dialogue has finished I want the screen to turn off again soon.
* The default power off setting is 10 min.
* To decrease that the easiest way will be to install xscreensaver:
* _sudo apt install xscreensaver_
* Then open the configuration from the "Preferences" menu in the start menu and set the blank value to what is to your liking.
### How exactly does the application respond to events?
#### Hotword detected
It will wakeup when a message with a topic of this kind is published: _hermes/hotword/+/detected_
However it will only wake up if the message is targeted to the siteId specified in this instance's configuration file.
#### Intent recognized
If an intent is successfully recognized the text recognized will be displayed, so this topic is being watched for: _hermes/intent/#_
#### When text is asked to be spoken
...then it's also printed: _hermes/tts/say_
#### Session ends
Session is ended when the appropriate event is recognized: _hermes/dialogueManager/sessionEnded_
#### Bonus material
Up until here those are events built into Rhasspy. But I've come up with these additional events/commands:
##### Simply display text
Your application just wants some text to be displayed, publish it under topic _hermes/tts/displayText_ using the same syntax as for the speak command.
##### Display selectable options
CONSTRUCTION SITE, NOT FINISHED, YET
If you'd like to publish a list of selectable options for the user send it for topic _hermes/tts/displayOptions_
Syntax