/assistant-notifier

Plugin pour faire lire du texte au Google Home

Primary LanguageJavaScriptMIT LicenseMIT

assistant-notifier

Ce plugin de assistant-plugins permet de faire parler son Google Home.

Ne pas l'installer si vous ne possédez pas de Google Home !

Installation

Si vous n'avez pas installé assistant-plugins, alors il faut le faire, et sélectionner notifier comme plugin.

Si vous avez déjà installé assistant-plugins, et que vous souhaitez ajouter ce plugin, alors :

  • Pour Windows, télécharger install_notifier.bat dans le répertoire assistant-plugins, puis l'exécuter en double-cliquant dessus.
  • Pour Linux/MacOS, ouvrir une console dans le répertoire assistant-plugins et taper :
    npm install assistant-notifier@latest --save --loglevel error && npm run-script postinstall

Configuration

Paramètre host (obligatoire)

Éditer le fichier configuration.json du répertoire assistant-plugins et y indiquer l'adresse IP de votre Google Home.

L'adresse IP du Google Home se trouve sur l'application Google Home de votre téléphone :

  1. Ouvrir l'application Home de Google
  2. Cliquer sur l'icône du Google Home souhaité
  3. Cliquer sur l'icône "roue dentée" en haut à droite pour accéder aux Paramètres
  4. Descendre tout en bas jusqu'à la section Informations
  5. Utiliser l'adresse IP qui est donnée (tout en bas)

La section du fichier configuration.json qui nous intéresse devrait ressembler à la partie ci-dessous (ici on va dire que l'IP est 192.168.0.13) :

  "plugins": {
    "notifier": {
      "host":"192.168.0.13"
    }
  }

Si vous avez plusieurs Google Home, il est possible de les configurer puis de les cibler. Pour ce faire, le fichier de configuration doit ressembler à ça (indiquer un nom et l'IP associée pour chaque device) :

  "plugins": {
    "notifier": {
      "host": {
        "salon":"192.168.0.13",
        "cuisine":"192.168.0.14",
        "chambre d'alexandre":"192.168.0.10",
        "chambre des parents":"192.168.0.11"
      }
    }
  }

Paramètre volume (optionnel)

Il est possible de définir le volume du message qui sera lu par le Google Home. Il doit s'agir d'un nombre entre 0 et 100 (représentant le pourcentage du volume). Si ce paramètre n'est pas spécifié, alors le message est lu avec le volume courant du Google Home.

Par exemple, pour que le message soit lu à 80% du volume :

"plugins": {
  "notifier": {
    "host": "192.168.0.13",
    "volume": 80
  }
}

Paramètre voice (optionnel)

Par défaut, notifier utilise la voix produite par le site https://translate.google.fr. Il est aussi possible d'utiliser d'autres voix.

IBM

On peut utiliser la voix d'IBM que l'on peut tester/écouter ici.

Pour utiliser cette voix, il faut s'inscrire et obtenir une clé :

  1. Se rendre sur https://www.ibm.com/watson/services/text-to-speech/
  2. Cliquer sur "Get Started for Free"
  3. S'inscrire puis valider son email
  4. On utilisera le plan gratuit qui permet la synthèse de 10 000 lettres par mois
  5. Une fois connecté au site, choisir Francfort pour "Sélectionnez une région/un emplacement où effectuer le déploiement" (ATTENTION si le mauvais serveur est sélectionné, votre clé ne fonctionnera pas)
  6. Une fois Francfort choisi pour le serveur, il faut cliquer sur le bouton "Créer" en bas à droite
  7. Vous devriez tomber sur une page qui indique "Clé API" et qu'il est possible de copier en cliquant sur l'icone à droite
  8. Dans votre fichier configuration.json on va alors inscrire la source (à savoir "IBM@fr-FR_ReneeVoice") et la key :
"plugins": {
  "notifier": {
    "host": "192.168.0.13",
    "voice":{
      "source":"IBM@fr-FR_ReneeVoice",
      "key":"la clé API récupérée sur le site IBM"
    }
  }
}

Google text-to-speech

Google fournit plusieurs voix différentes. Elles sont listées sur cette page.

Pour utiliser une des voix de Google, il faut :

  1. Aller sur https://console.cloud.google.com/projectselector2/home/dashboard?hl=fr et créer un projet
  2. S'assurer que votre compte Google Cloud a la facturation activée via https://cloud.google.com/billing/docs/how-to/modify-project?hl=fr
  3. Activer l'API Cloud Text-to-Speech via https://console.cloud.google.com/flows/enableapi?apiid=texttospeech.googleapis.com&hl=fr
  4. Créer une clé API via https://console.developers.google.com/apis/credentials
  5. Dans votre fichier configuration.json on va alors inscrire la source (à savoir "google-cloud/text-to-speech@nom-de-la-voix") et la key créée à l'étape 4 :

Par exemple, si on veut utiliser la voix fr-FR-Wavenet-B listée sur la page des voix :

"plugins": {
  "notifier": {
    "host": "192.168.0.13",
    "voice":{
      "source":"google-cloud/text-to-speech@fr-FR-Wavenet-B",
      "key":"la clé API"
    }
  }
}

Utilisation

Son intérêt est surtout d'être appelé par les autres plugins (par exemple dans le plugin assistant-freebox) grâce à : this.plugins.notifier("message à faire dire")

Sinon, depuis IFTTT, voici un exemple de comment procéder :

  1. Suivre la procédure principale pour vérifier que assistant-plugins est bien lancé
  2. Créer une nouvelle applet dans IFTTT : https://ifttt.com/create
  3. Cliquer sur this puis choisir Google Assistant
  4. Choisir la carte Say a phrase with a text ingredient
  5. Dans « What do you want to say? » mettre une phrase, par exemple : répète la phrase $
    Le symbôle $ sera remplacé par Google
  6. Remplir les autres champs de la carte
  7. Maintenant, cliquer sur that puis choisir Pushbullet
  8. Choisir la carte Push a Note
  9. Dans le champs « Title », mettre Assistant
  10. Dans le champs « Message », mettre notifier_\{\{TextField\}\} (si plusieurs Google Home sont configurés, ils diffuseront tous le message)
    Si plusieurs Google Home configués, pour en cibler un ou plusieurs il faudra utiliser la notation suivante : notifier_{NOM_GH1,NOM_GH2} message à lire...
    Par exemple : notifier_{salon,chambre d'alexandre} il est l'heure du dîner... à table !
  11. Enregistrer puis cliquer sur Finish
  12. Dites : « OK Google, répète la phrase voilà une belle journée »
  13. Google Home va dire : « voilà une belle journée »