That is just a good start for me! I was using Snips Addon as TTS but I want to move away from Snips.
I tested out the TTS, which works good. Now I need to make it speak via Google Wavenet.
Other TTS engine are just not good enough for Dutch
Here is a small demo with my Matrix Voice as microphone, all in Dutch, sorry guys.
I created a rest_command in the configuration.yaml:
rest_command:
rhasspy_speak:
url: ‘http://’< HA-IP>:12101/api/text-to-speech’
method: ‘POST’
payload: ‘{{ payload }}’
content_type: text/plain
Then added an automation:
id: ‘1556640424575’
alias: Rolluiken
trigger:
- event_data: {}
event_type: rhasspy_Covers
platform: event
condition:
action:
- data_template:
payload: ‘Dat is goed, ik {{ trigger.event.data.actionType }} het {{ trigger.event.data.whichCover }} rolluik’
service: rest_command.rhasspy_speak
My sentences look like this:
[Covers]
acties = (sluit | open) {actionType}
plaatsen = (voorste | achterste) {whichCover}
rolluik
When I give the command, rhasspy sends and event Covers to HA.
That triggers the automation, handling the TTS.
In my Hassio, I have the Rhasspy Addon and Snowboy Addon. All is set to hermes as protocol.
Here is a small video, I have noticed that you need to be quite precise in the way snowboy is pronounced, but it works for now. I am mainly focussing in getting audio-out correctly on the Voice.
The main issues are that only 44100 16 bit stereo is played well (others are playing to fast as you can see in the video) and the fact the the audio data is distorted. This is an issue of my software trying to process the wav data coming in over MQTT and has nothing to do with Rhasspy.
For a personal note, I would really like the Google Wavenet was implemted, with caching.
This guy has done a lot of great work, I have used it as well
https://forum.snips.ai/t/snipssupertts-one-script-to-rule-them-all/747
This scripts is for Snips, but if you checkout how he has integrated Google Wavenet amongst others it is really a great script.