Ok for consistancy I will add the process I went through here.
The process I used is
1 Train word/s in edge.
2 Tune them in edge. This takes quite a bit of tweaking to clean up your samples and the training parameters.
3 Download the sdk.
4 Export your edge results as per the instructions and include them into the sdk.
5 Compile and Test the results on the command line.
6 Modify the code so at when your wakeword is triggered over a particular percentage confidence it simply exits.
I then used the script above to run forever and start it the same way and at the same time as I start rhasspy.
Voila
some gotchas
Doing satellite stuff will be completely different. Not something I’m chasing sorry.
But the edge code will run on many SOC systems.
TRAINING
The more variation and the more repetitions you add in the word training will make your model more robust and avoid over fitting. So be patient.
MQTT
the mosquitto clients are available in a separate deb
You probably need to have mqtt set as external on localhost in your rhasspy config
the relevant section of my profile.json is
"mqtt": {
"enabled": "true",
"site_id": "Simone"
},
SOUND
As you are sharing the microphone with rhasspy you will need to have pulse enabled. Or a fancy alsa loop back device that I couldn’t be bothered solving.
But if you test it while rhasspy is running you can work out how to get it going at the command line test stage. If you have the alsa pulse plugin then an arecord/aplay -L will list the devices that the c++ code uses at least.
default works fine for me here even though the radio is also going out the sound device as well.
You may also have trouble getting the rhasspy sound config right.
I got mine working with gstreamer and the deb release which starts after I login to X. ie after the pulse server has started.
It works but I’m sure it’s not ideal.
"microphone": {
"command": {
"record_arguments": "alsasrc ! audioconvert ! audioresample ! audio/x-raw, rate=16000, channels=1, format=S16LE ! filesink location=/dev/stdout",
"record_program": "/usr/bin/gst-launch-1.0",
"siteId": "localhost",
"udp_audio_port": "12345"
},
"system": "command"
},
The bogus UDP section tells rhasspy not to send the microphone stuff over mqtt while it’s alseep. Saves the mqtt traffic that’s not doing anything anyway.
and
"sounds": {
"command": {
"play_arguments": "--no-interactive -q /dev/stdin",
"play_program": "/usr/bin/gst-play-1.0"
},
"system": "command",
},