/ tech

TTS sous Home Assistant

Depuis la dernière mise à jour HA prend en charge le composant TTS, pour la synthèse vocale... un fantôme dans la machine...

Le composant est basé sur le moteur de Google, ceux qui viennent d'Android ne seront pas perdus.

Pour la mise en place il suffit déclarer la plateforme :

 tts:
  - platform: google
    language: 'fr'
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300

plusieurs langues au programme, le cache permet de conserver le mp3 après lecture durant le temps du time_memory.
cache_dir est le répertoire qui contiendra les mp3 générés.

il suffit ensuite d'utiliser le service tts.google_say avec un des player_media configurés dans home assistant.
Personnellement j'ai opté pour une paire d'enceinte branché sur mon Pine64, VLC ayant fait son apparition sur la dernière mise à jour.

Dés lors, on peut faire ce type de chose :

   trafic:
    alias: Annonce le trafic
    sequence:
     - alias: Annonce trafic
       service: tts.google_say
       entity_id: media_player.vlcpine
       data_template:
         message: "Bonjour, il vous faudra {{ states.sensor.google_travel_time__driving.state }} minutes pour aller au travail"
         cache: false

ça annonce le temps pour se rendre au travail (avec le composant googlemaps).

On peut même faire :

   - alias: "Annonce voix"
    trigger:
      - platform: event
        event_type: button_pressed
        event_data: {"entity_id": "switch.mvtescalier"}
    condition:
      - condition: time
        after: '05:00'
        before: '10:00'
      - condition: state
        entity_id: input_boolean.bonjour
        state: 'on'
    action:
      - service: tts.google_say
        entity_id: media_player.vlcpine
        data_template:
          message: "Bonjour, bienvenu, la température à l'étage est de {{ states.sensor.tempetage_temperature.state }} degrés, la température du salon est de {{ states.sensor.tempsalon_temperature.state }} degrés et la température exterieure est de {{ states.sensor.tempext_temperature.state }} degrés {%- if states.sensor.google_travel_time__driving.state | int < 14 -%}
 il n'y a pas de monde sur la route
{%- else -%}
 attention la route est chargée il vous faudra {{ states.sensor.google_travel_time__driving.state }} minutes pour aller au travail{%- endif %}"
          cache: false
      - service: input_boolean.turn_off
        entity_id: input_boolean.bonjour

Si je passe devant le détecteur d'escalier entre 5h00 et 10h00 (donc quand je me lève), mon Pine64 m'annonce les différentes températures de la maison, et vérifie si la route est chargée.

Y a aussi moyen de parser des sites web (à coup de wget et de sed) et d'en extraire les données pertinentes.
Par exemple :

  • les conditions de surf : taille des vagues, période, vent.
  • la position des radars sur le trajet (c'est pas bien:))
  • le programme télé
  • les news au format RSS

Y a surement pleins d'autres domaines à explorer.

TTS sous Home Assistant
Share this