Plugin TTS Cast (Jeedom)

:warning: IMPORTANT

S’il n’y a pas d’information sur la mise à jour, c’est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte.


Présentation du Plugin TTS Cast

TTSCast - Market

Ce plugin pour Jeedom permet de gérer ses équipements Google Home (type Nest, Nest Mini, Nest Hub, Nest Hub Max, Chromecast TV, SmartClock, etc…). Il permet de générer des notifications via synthèse vocale (TTS : Text To Speech) et de les diffuser sur les équipements Google. Différents moteurs de TTS sont disponibles parmi lesquels : JeedomTTS (incluant PicoTTS et eSpeak), Google Translate API, Google Cloud TTS et Voice RSS. Le tout avec différentes voix et différentes langues.

Le plugin permet également de diffuser des sons personnalisés (au format .mp3), des vidéos YouTube, une page Web (Dashcast), ou encore une radio en streaming, ou tout autre média (vidéo ou mp3) à partir de votre NAS (DLNA) par exemple.

L’ensemble est accessible via le dashboard de Jeedom, et/ou peut être programmé à travers des scénarios.

Exemples de scénarios :

Installation des dépendances et lancement du Démon

Versions supportées pour l’installation :

L’installation des dépendances a été testée sur différents systèmes, dans différentes versions d’OS et de Jeedom. Voici un retour (non exhaustif) de configurations testées :

:warning: ATTENTION

Debian 10 étant en fin de vie (obsolète) depuis juin 2024 : L’installation n’est plus garantie sur cet OS. Dis autrement : Si le système est à jour et accède encore à ses dépôts Linux, alors cela devrait fonctionner, dans le cas contraire, il faudra migrer votre OS vers une version à jour (Debian 11 64bits, Debian 12, Raspbian 11 64bits, Raspbian 12)

:warning: ATTENTION

L’installation ne fonctionnera pas sur un OS 32 bits, par exemple sur un Raspberry 3B+ avec Raspbian 10 ou 11 (32 bits)

Pour vérifier si votre Jeedom (pour un Raspberry par ex.) tourne sur un OS 32 bits ou 64 bits, vous pouvez vous connecter en SSH dessus et lancer la commande uname -m, si le résultat est armv7l votre OS est 32 bits, si le résultat est aarch64 alors votre OS est en 64 bits

Vous pouvez également trouver cette information via le plugin “Monitoring”, c’est indiqué sur le Dashboard de l’équipement local

Installation des dépendances :

L’installation des dépendances peut prendre du temps, voici à titre d’exemples les temps d’installation sur différents systèmes :

TTSCast - Dépendances

:warning: IMPORTANT

L’installation des dépendances peut prendre du temps (de 2 minutes jusqu’à 40 minutes suivant votre Jeedom) et des ressources (jusqu’à 100% de CPU dans la phase de compilation et 340Mo d’espace disque). Soyez patient (Vous pouvez suivre les phases d’installation des dépendances dans les logs ‘ttscast_update’ du plugin)

PS : L’usage élevé des ressources de votre Jeedom (CPU notamment) ne concerne QUE la phase d’installation des dépendances !

Réparation des dépendances :

Si l’installation des dépendances échoue, ou bien si celles-ci semblent s’être bien déroulées mais que le démon refuse de démarrer, vous pouvez utiliser les options avancées de la page de configuration du plugin pour procéder à la “réparation” de ces dépendances.

Si votre système (OS) sur lequel est installé votre Jeedom n’est pas à jour, il va manquer des librairies systèmes nécessaires au bon fonctionnement de Python et donc du plugin TTSCast.

3 options sont à votre disposition dans la page de configuration du plugin pour réparer les dépendances et mettre à jour votre système (OS) :

TTSCast - Réparation des Dépendances

Le principe pour utiliser ces options est le suivant :

:warning: IMPORTANT

Après avoir lancé l’installation des dépendances, ces options que vous avez coché juste avant se désactiveront automatiquement !

C’est tout à fait normal. Cela permet de s’assurer que ces options ne sont utilisées qu’une seule fois lors de l’installation des dépendances

(1) “Force les mises à jour Système” :

:warning: IMPORTANT

Le système de “mises à jour systèmes” (OS) est là pour “simplifier” les actions de l’utilisateur et lui éviter d’avoir à se connecter sur son système (OS) en SSH pour le mettre à jour.

Cette action de mises à jour automatiques, si elle ne se déroule pas comme attendu, peut corrompre votre système et rendre votre Jeedom totalement inutilisable.

Je ne saurais être tenu responsable si votre Jeedom n’est plus opérationnel après le lancement de ces options !

Il est déconseillé d’utiliser cette option sur une Box Jeedom officielle.

(2) “Force la réinitialisation de PyEnv” :

(3) “Force la réinitialisation de Venv” :

Il est conseillé de procéder en deux temps et ne pas cocher les 3 options simultanément :

N’hésitez pas à demander conseil sur le forum Community de Jeedom en cas de doute sur la procédure à suivre.

Lancement du Démon :

TTSCast - Lancement du Démon

Options de configuration

TTSCast - Configuration (Google Cloud TTS)

Plugin :

Démon :

TTS (Text To Speech) :

Tests :

Pour plus d’informations sur la syntaxe SSML, allez voir la FAQ

Options :

:information_source: ASTUCE

Concernant la durée maximale (timeout) pour l’option wait : Faites en sorte que cette valeur soit supérieure à la durée du plus long de vos messages / sons à diffuser !

Par exemple, si vous avez une notification TTS qui dure 4 minutes, mettez une valeur du timeout de l’option wait à au moins 4 min 30 (soit 270 sec), sinon cette notification sera coupée avant la fin si vous utilisez l’option wait pendant sa diffusion !

Listes :

:warning: IMPORTANT

Toute option suivie d’un “triangle orange (warning)” nécessite le redémarrage du démon après modification

Définir le plugin comme moteur TTS par défaut de Jeedom

Pour définir le plugin comme moteur TTS par défaut de Jeedom, rendez-vous sur la page de configuration (Menu : Réglages / Système / Configuration, onglet Général).

A la ligne Moteur TTS, choisissez dans la liste Plugin TTS Cast. Cela le définira comme moteur par défaut pour tout plugin qui y ferait appel.

TTSCast - Conf - CoreTTS

Génération du fichier JSON (clé API) pour “Google Cloud Text-To-Speech”

Pour pouvoir utiliser le moteur TTS de Google Cloud, il faut être inscrit chez eux, activer l’API Google Text-To-Speech et générer une clé (qui servira au plugin pour s’authentifier chez Google au moment de générer le fichier TTS)

A partir de la page de configuration du plugin, cliquez sur le bouton “SITE”, après avoir sélectionné le moteur TTS “Google Cloud TTS”, ou bien cliquez sur le lien : Console Google Cloud

:information_source: ASTUCE : Si vous aviez déjà un projet avec l’API TTS de Google et comme méthode d’authentification une “clé API”, vous pouvez passer directement à l’étape “CREER DES IDENTIFIANTS” un peu plus loin dans la documentation

Dans la barre de recherche, tapez “Cloud Text-To-Speech API”

:warning: ATTENTION : Google va vous sortir 3 résultats, et il est facile de se tromper entre “Cloud Text-to-Speech API” et “Cloud Speech-to-Text API” ;)

Choisissez bien “Cloud Text-to-Speech API”

Activez cette API.

TTSCast - GCloudTTS - CptSvc0

Donnez un nom à ce compte de service (par exemple TTSCast), l’id du compte est automatiquement créé à partir du nom que vous allez donner. Cliquez ensuite sur “CREER et CONTINUER”

TTSCast - GCloudTTS - CptSvc1

Concernant la partie “(2) Autoriser ce compte de service à accéder au projet (facultatif)”, cliquez simplement sur “CONTINUER” (aucune information n’est à rentrer pour cette partie)

TTSCast - GCloudTTS - CptSvc2

Concernant la partie “(3) Autoriser les utilisateurs à accéder à ce compte de service”, pareil : ne rien mettre comme informations et cliquez sur “OK”

TTSCast - GCloudTTS - CptSvc3

Ensuite, on revient sur la page des comptes de service, et le compte nouvellement créé doit apparaître dans la liste (avec comme indication “Aucune clé”, jusque là c’est normal !) :

TTSCast - GCloudTTS - CptSvc4

A droite du compte qui se trouve dans la liste, cliquez sur les 3 points verticaux, et choisissez dans le menu “Gérer les clés” :

TTSCast - GCloudTTS - CptSvc5

Sur la nouvelle page qui apparaît, cliquez sur le bouton “AJOUTER UNE CLE” et dans le menu choisissez : “Créer une clé” :

TTSCast - GCloudTTS - CptSvc6

Dans la fenêtre qui apparaît, dans “type de clé”, choisissez “JSON”, et cliquez sur le bouton “CREER” :

TTSCast - GCloudTTS - CptSvc7

Là la clé va être créée et AUTOMATIQUEMENT téléchargée sur votre ordinateur (par défaut dans le répertoire “Téléchargements”), le site vous affiche alors l’information :

TTSCast - GCloudTTS - CptSvc8

:warning: IMPORTANT :

Une clé ne peut être téléchargée qu’UNE SEULE FOIS, au moment de sa création. Il n’est plus possible ensuite de venir sur cette console pour la récupérer à nouveau ! Ne la perdez pas, et stockez là en lieu sûr.

Si vous perdez cette clé (pensez alors à l’effacer de votre console), vous pourrez à tout moment en recréer une nouvelle en suivant la même méthode décrite ci-dessus.

La clé JSON nécessaire pour se connecter à Google Cloud Text-to-Speech est maintenant sur votre ordinateur. C’est ce fichier qu’il faut charger dans le plugin, via la page de configuration (un bouton dédié est là pour cela).

TTSCast - GCloudTTS - CptSvc9

Activez la partie “facturation” (“billing” en anglais) pour ce service : Il est nécessaire d’activer la partie facturation (même si au final, dans un usage raisonnable, vous ne serez pas facturé !). Pour cela, sur la console Google, rendez-vous sur la partie facturation, soit via le menu en haut à gauche, soit directement dans la barre de recherche située en haut du site, tapez “facturation”, et choisissez dans la liste “Compte de facturation” (ou bien “Créer un compte de facturation si vous n’en avez pas)

TTSCast - GCloudTTS - Billing

Il vous faut alors activer la facturation en ajoutant notamment un mode de paiement, et en vous assurant que la facturation est bien active pour le projet sur lequel vous avez activé le Text-to-Speech (il doit apparaître dans la page du menu “Gestion des comptes”)

TTSCast - GCloudTTS - Billing2

:warning: IMPORTANT : L’activation du service “billing” est nécessaire pour utiliser cette API, même si rien ne sera facturé à l’usage (sauf si vous dépassez les quotas).

Les quotas dépendent de la voix utilisée (Une voix “Standard” utilisera moins de “crédits” qu’une voix “Studio” par ex.). Ces quotas sont malgré tout très élevés (usage par nombre de caractères envoyés et par mois), donc pour un usage “normal” de la synthèse vocale, vous devriez rester bien en dessous de la limite des quotas.

Il est possible, à tout moment, de suivre sa consommation (sur la console Google) pour ce service TTS.

Génération de la clé API pour “RSS Voice”

Pour générer une clé API pour le moteur RSS Voice, vous avez besoin d’un compte chez eux (gratuit) : Voice RSS : Page ‘Profile’

Après avoir créé votre compte, une clé API est générée automatiquement (dans le champ API Key, sur votre page de profil). Copiez cette clé, et rentrez la sur la page de configuration du plugin, dans le champ prévu à cet effet.

Mise à jour des listes et ajout d’un fichier son personnalisé

:warning: ATTENTION

Le rafraîchissement des listes va avoir des impacts sur vos scénarios existants (ceux utilisant ces commandes), notamment en supprimant (dans le scénario) la valeur sélectionnée de la liste en question (même si cette valeur existait et existe toujours après la mise à jour)

N’utilisez ces boutons de mise à jour qu’en cas de besoin et en connaissance de cause !

:information_source: ASTUCE

Pour éviter la modification automatique (suppression de la valeur) de vos scénarios suite à la mise à jour d’une des listes, utilisez la commande Custom Cmd à la place de la commande liste directement.

Mise à jour de la liste des “Radios”

TTSCast - Configuration (MàJ Radios)

Ce bouton permet de rafraîchir la liste des radios de chaque équipement

Mise à jour de la liste des “Custom Radios”

TTSCast - Configuration (MàJ Custom Radios)

Ce bouton permet de rafraîchir la liste des ‘custom radios’ de chaque équipement

Mise à jour de la liste des “Sounds”

TTSCast - Configuration (MàJ Sounds)

Ce bouton permet de rafraîchir la liste des sons de chaque équipement

Mise à jour de la liste des “Custom Sounds”

TTSCast - Configuration (MàJ Custom Sounds)

Ce bouton permet de rafraîchir la liste des sons personnalisés de chaque équipement

Ajouter un son personnalisé (Custom Sound)

TTSCast - Configuration (Upload Custom Sounds)

Pour ajouter un son personnalisé au plugin, cliquez sur ce bouton, dans la page de configuration du plugin.

Sélectionnez un fichier “.mp3” dans la fenêtre qui s’ouvre, et cliquez sur le bouton “Ouvrir”.

Un message s’affiche indiquant si le fichier a bien été envoyé.

:warning: IMPORTANT

Vous devrez rafraîchir la liste des sons personnalisés (Custom Sounds) via le bouton “MàJ Custom Sounds” à chaque fois que vous aurez ajouté un ou plusieurs fichiers .mp3 !

Ajouter un fichier personnalisé de radios (Custom Radios)

Avant d’ajouter le fichier JSON contenant vos radios personnalisées, vous devez générer ce fichier. Pour cela, vous pouvez utiliser le fichier exemple fourni dans la FAQ : ICI

TTSCast - Configuration (Upload Custom Radios)

Une fois le fichier personnalisé, retournez sur la page de configuration du plugin, et cliquez sur le bouton dédié pour charger votre fichier dans le plugin.

:warning: IMPORTANT

Vous devrez rafraîchir la liste des ‘Custom Radios’ via le bouton “MàJ Custom Radios” à chaque fois que vous ajouterez un fichier de radios !

Scan des équipements Google

Rendez-vous sur la page du plugin et cliquez sur le bouton “Scan” pour détecter automatiquement les équipements Google présents sur votre réseau. Le plugin va alors les ajouter dans Jeedom.

Re-cliquez sur le bouton “Stop Scan” ou attendez 60 secondes pour arrêter automatiquement le Scan et rafraîchir la page.

Vos équipements détectés apparaissent alors sur la page.

Commandes des équipements

Une fois l’équipement ajouté à Jeedom, plusieurs commandes sont disponibles.

IDLE et BUSY : tester l’état dans lequel se trouve votre équipement

Ces deux paramètres Idle et Busy sont disponibles pour chaque équipement. Ils vous permettent de tester l’état dans lequel se trouve votre équipement (occupé ou non).

Vous pouvez par exemple utiliser le paramètre Busy dans un scénario pour savoir si votre équipement est déjà utilisé pour écouter de la musique ou bien une radio :

TTSCast - Scénario Busy

Ces deux paramètres (qui peuvent au premier abord sembler l’exact contraire l’un de l’autre) ne sont pas basés sur la même logique, ils peuvent ainsi se comporter différemment suivant les cas d’usage :

:information_source: ASTUCE

Si vous vous demandez lequel de ces deux paramètres il vaut mieux utiliser dans vos scénarios, alors préférez le paramètre Busy qui répondra à la plupart des cas d’usages.

TTS : Diffuser une notification vocale sur un équipement Google

Valeurs possibles des différents champs de la commande TTS :

Le champ Options Peut contenir différentes variables, qu’il est possible de combiner :

Les options ssml et before sont disponibles pour les moteurs TTS : Google Cloud TTS et VoiceRSS (pour VoiceRSS, cela implique d’avoir une licence payante, au minimum le niveau “Business”)

Les options ssml et before ne peuvent être utilisées dans la même commande !

Pour plus d’informations sur la syntaxe SSML, voir la FAQ.

Exemples :

Il est possible, pour cette option wait de mélanger des notifications TTS et CustomCmd dans le même scénario (il suffit alors de mettre le bon numéro pour l’option wait en fonction de l’ordre souhaité de diffusion)

Voici un exemple de scénario utilisant la commande TTS :

TTSCast - Scénario TTS

Voici un exemple de scénario utilisant l’option wait :

TTSCast - Scénario Wait

Voici un exemple de scénario utilisant l’option before :

TTSCast - Scénario Before (TTS)

Voici un exemple de scénario utilisant l’option ssml :

TTSCast - Scénario SSML (TTS)

Voici un exemple de scénario utilisant l’option force :

TTSCast - Scénario TTS Force

YouTube : Diffuser une vidéo et/ou une playlist sur un équipement Google (de type Nest Hub)

Lorsque vous regardez une vidéo YouTube, il y a une URL associée (visible dans la barre d’adresse de votre navigateur), cette adresse est de la forme :

Pour une simple Vidéo : https://www.youtube.com/watch?v=ID_VIDEO

Pour une PlayList : https://www.youtube.com/watch?v=ID_VIDEO&list=ID_PLAYLIST

Notez bien les deux paramètres ID_VIDEO et ID_PLAYLIST (seulement pour jouer une playlist, sinon ce 2ème paramètre n’est pas utile)

Valeurs possibles des différents champs de la commande YouTube :

Le champ Options peut contenir différentes variables, comme "volume", ou "playlist" ou encore "enqueue", ou "force": true.

Pour ceux qui connaissent, la syntaxe est celle du JSON (sans les { }), et pour ceux qui ne savent pas ce qu’est le format JSON, pas de panique, il y a des exemples de paramétrage qui suivent :-)

Exemples :

L’ordre des paramètres dans la ligne n’a pas d’importance (vous pouvez rentrer le paramètre volume en premier, en dernier, au milieu, comme vous voulez), et certains paramètres sont optionnels.

Par contre, le fait de mettre en majuscule ou minuscule une variable (la casse) a une incidence, les " la , et les : pour séparer ou indiquer la valeur d’une variable sont très importants, et il faut également entrer true ou false tout en minuscule pour les paramètres ayant besoin de ces valeurs.

Voici un exemple de scénario utilisant les commandes YouTube (simple vidéo, et playlist) :

TTSCast - Scénario Media

Web (DashCast) : Afficher une page web sur un équipement Google Nest Hub

Cette commande permet d’afficher une page Web sur un équipement Google muni d’un écran. Pour cela, plusieurs paramètres sont disponibles.

Valeurs possibles des différents champs :

Paramètres du champ Options :

Exemples :

A l’usage, DashCast est assez “capricieux” et lent à afficher des pages, mais il reste néanmoins pratique !

Voici un exemple de scénario utilisant la commande Web :

TTSCast - Scénario Web

Radios / Custom Radios

Il y a deux commandes dédiées : Radios et Custom Radios :

Vous avez trois manières de diffuser une radio :

TTSCast - Dashboard - Radios

Sounds (Sons inclus)

Vous avez trois manières de diffuser un son (fichiers .mp3 inclus dans le plugin) :

TTSCast - Dashboard - Sounds

Voici un exemple de Sons diffusés les uns après les autres dans un scénario (avec l’option "wait") :

TTSCast - Scénario - Wait

Custom Sounds (Sons personnalisés)

Avant de pouvoir utiliser un “Custom Sound”, vous devez les ajouter au plugin, à partir de la page de configuration, comme indiqué dans cette section de la documention. Vous avez ensuite trois manières de diffuser un son personnalisé :

TTSCast - Dashboard - CustomSounds

Media : Diffuser n’importe quel média (URL)

La commande Media permet de diffuser des vidéos ou des mp3 (musique) stockés en dehors de Jeedom (sur votre NAS par exemple) et accessible via une URL (via le protocole DLNA par exemple). Plusieurs paramètres sont disponibles.

Valeurs possibles des différents champs :

Paramètres du champ Options :

Exemples d’usage de la commande Media :

Vous pouvez utiliser cette commande de différentes manières : Soit à partir du dashboard directement, soit via un scénario (voir l’exemple ci-dessous) :

TTSCast - Scenario - Media

Vous avez également la possibilité d’utiliser la commande Custom Cmd pour lancer un média (cf. exemple ci-dessous) :

TTSCast - Scenario - Media2

Custom Cmd (Commande personnalisée)

Cette commande personnalisée vous permet d’utiliser toutes les commandes en mode “texte”. Elle est essentiellement utilisée dans les scénarios et permet une personnalisation et un contrôle plus fin sur les commandes. Dans un scénario, ajoutez une commande Action et allez chercher la command “Custom Cmd” de votre équipement. Dans le champ texte à droite, entrez votre commande, en utilisant la syntaxe suivante :

Variables / Valeurs disponibles :

La variable “action” peut aussi prendre toutes les valeurs permettant de contrôler un équipement Google :

La variable “value” :

Autres variables :

Voici des exemples d’usage de la commande “Custom Cmd” :

TTSCast - Scénario CustomCmd

Exemple de scénario utilisant l’option wait :

TTSCast - Scénario Wait

Exemple de scénario utilisant l’option ssml :

TTSCast - Scénario SSML

FAQ

Définir la largeur max de l’image ‘Cast Media Image’

Une option est disponible dans les paramètres d’affichage de la commande Cast Media Image pour définir la largeur maximale de l’image affichée sur le Dashboard :

TTSCast - Dashboard Image Size

Liste des Radios disponibles

Voici la liste des radios disponibles via la commande Radios :

Pour diffuser une radio avec la commande Custom Cmd : "action": "radios", "value": "voltage_2000", "volume": 20

Exemple de fichier ‘Custom Radios

Voici un exemple de fichier JSON pour ajouter sa liste personnalisée de radios au plugin : Fichier Exemple - Custom Radios (.json)

Ce fichier est à compléter, puis à charger dans le plugin à l’aide du bouton prévu à cet effet sur la page de configuration.

:information_source: ASTUCE

L’avantage d’utiliser cette méthode pour ajouter des radios personnalisées est que vous êtes assurés de ne pas perdre ces personnalisations à chaque mise à jour du plugin !

Liste des Sons disponibles

Voici la liste des sons disponibles via la commande Sounds :

Pour diffuser un son avec la commande Custom Cmd : "action": "sounds", "value": "bigben1.mp3", "volume": 40

Syntaxe SSML pour les commandes TTS

La syntaxe SSML pour les commandes TTS est supportée pour les 2 moteurs : Google Cloud TTS et VoiceRSS (pour VoiceRSS, cela implique d’avoir une licence payante : Au minimum le niveau “Business”)

Pour plus d’informations concernant la syntaxe SSML, visitez le site : Langage de balisage de synthèse vocale (SSML)

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.