Aymkdn / assistant-notifier

Plugin pour faire lire du texte au Google Home
https://aymkdn.github.io/assistant-plugins/?plugin=notifier
MIT License
8 stars 3 forks source link

Notifier #14

Closed rick443 closed 3 years ago

rick443 commented 3 years ago

J'ai installé l'API pour utiliser IBM Voice.... Ca fonctionne bien....mais IBM limite à 10 000 caractères. J'utilise beaucoup le NOTIFIER.... je risque donc de rencontrer la limitation.

Oui, j'aimerai que vous m'expliquiez comment mettre à jour le package du google-tts.api en version 0.0.5.

Je vous remercie pour votre aide.

Aymkdn commented 3 years ago

Ok. Je vous répond demain quand je serai sur mon ordinateur !

Aymkdn commented 3 years ago

Si tu refais un npm update cela devrait mettre à jour assistant-notifier vers la version 2.1.10, et avec lui la version de google-tts-api.

Par contre dans l'issue de google-tts-api il est indiqué que Google pourrait bloquer les IPs qui abusent de son service… Car le programme utilise une API non officielle (en gros ça utilise Google Translate), et donc c'est un "hack" du service de Google sur lequel google-tts-api joue, d'où le fait que des fois ça ne fonctionne plus, ou que ton IP pourrait être bloquée.

IBM limite à 10 000 caractères par mois (en gratuit), mais Google text-to-speech (la seconde option de voix) propose 4 millions de caractères gratuits par mois (https://cloud.google.com/text-to-speech/pricing?hl=fr)… et 4$ pour 1 million supplémentaire. Donc à voir combien de caractères par mois tu utilises ?

rick443 commented 3 years ago

Merci pour votre retour. le Google text-to-speech permet un plus grand nombre de caractères, mais pour utiliser ce service, il faut activer la facturation du compte google et donc donner ses coordonnées bancaires..... Ce que je refuse. Toutefois, j'ai trouvé une autre alternative que je souhaite partager: J'ai téléchargé cette petite appli (sans installation) depuis http://balabolka.site/fr/bconsole.htm Elle me permet en ligne de commande de traduire le contenu d'un fichier ou un texte directement en mp3. J'utilise ensuite assistant-notifier pour le brodcast vers la google home. Ca fonctionne très bien... la qualité de la voix est certes en dessous de celle de Google, mais très correcte. L'avantage : Elle fait de la traduction off-line, donc la traduction est quasi immédiate... pas de temps de latence et donc l'assistant-notifier est plus réactif.... Et voilà comment je me suis débarrassé de l'API de Google. Prochaine étape... ne plus être tributaire de l'IFTTT..... si vous avez une idée ? je suis preneur.

Merci

Aymkdn commented 3 years ago

Toutefois, j'ai trouvé une autre alternative

OK, cool ! Par contre. une fois que tu as généré le fichier audio, tu le mets sur un serveur pour que le Google Home puisse ensuite le lire ? Si tu veux bien en dire plus, alors je pourrai l'ajouter dans la doc.

Prochaine étape... ne plus être tributaire de l'IFTTT...

Quand tu lances assistant-cli ça ne passe pas par IFTTT, tout se fait en local. À moins que tu n'utilises IFTTT pour d'autres plugins ? Si oui, pour faire quoi exactement ?

rick443 commented 3 years ago

Je résume vite fait mon installation. Toute ma domotique est gérée par mon serveur via une appli que j'ai écrite en VB. Toute demande est formulée de la façon suivante : "OK Google, domotique" suivi de l'ordre. Exemple: "OK Google, domotique passe l'aspirateur"

J'ai créé sur mon compte IFTTT un applet "Domotique $"( ou $ est l'ordre) qui génère un fichier sur Dropbox. Ce fichier contiendra l'ordre (la phrase d'origine) qui a été interprété par la Google Home. Une façon efficace de contourner la limitation à 3 Applet !

Mon serveur récupère aussitôt le fichier dans le dossier Dropbox...(c'est rapide, en 3 secondes maxi) Mon appli VB décortique la phrase (par un petit développement IA) est comprend l'ordre demandé. (L'avantage par rapport à l'IFTTT c'est que je ne suis pas limité à trois formulation de phrase maxi pour un ordre donné ! Non, maintenant c'est illimité)

C'est à ce moment précis où j'ai besoin de faire parler la Google home pour savoir si elle a bien compris l'ordre demandé (Ex:"J'ai compris, je passe l'aspirateur" ou "Désolé, je n'ai pas compris votre demande")

J'utilise donc maintenant le programme balboka (http://www.cross-plus-a.com/fr/balabolka.htm) qui ne nécessite aucune installation et qui se manipule en ligne de commande et donc via mon appli VB. L'appli VB récupère donc le texte à dire (via le fichier déposé sur Dropbox) et lance la commande de conversion en fichier .mp3 (instantané ! avantage à cette méthode et bye bye l'API de Google... en plus elle est Off-line). L'appli VB lance ensuite "assistant-notifier" qui se charge de streamer vers la google Home. Puis elle exécute enfin l'ordre par une requête http (par exemple).... et le robot aspirateur se met au boulot.

Note : il est possible de choisir une voix dans l'application balabolka... suivre le tuto... j'ai choisi celle de Julie, la voix et très nette et chaleureuse.. (l'appli proposes de nombreuses options).

il n'y a pas de serveur nodeJs qui tourne sur mon serveur (pas besoin car je n'utilise pas PushBullet). Mais NodeJs est bien sur installé sur mon serveur pour pouvoir lancer les commandes suivantes:

Voilà en espérant être assez clair...

Cdlt

Aymkdn commented 3 years ago

Une vraie usine à gaz dis donc !! Mais si ça marche, tant mieux :-)

assistant-notifier a besoin d'une URL (http) pour lire un fichier MP3 : une fois votre texte converti avec balabolka, que faites-vous avec le MP3 produit ? Comment faites-vous pour que le plugin l'envoie au Google Home ?

Aymkdn commented 3 years ago

Pour Freebox, j'améliore sans cesse la version dans le cloud (https://assistant.kodono.info/freebox). Désormais c'est géré nativement par l'application Google Home (au lieu de passer par IFTTT), et bientôt j'y ajoute les "fonctionnalités avancées" qui se baseront sur les API du Player (pour savoir quand la box est allumée/éteinte, pouvoir lancer une chaine/app directement et à tous les coups, régler au plus juste le volume, etc). Si jamais ça vous intéresse… plutôt que d'utiliser le vieux plugin assistant-freebox que je n'ai plus mis à jour depuis bien longtemps ^^ Après, si ça vous suffit… À vous de voir.

rick443 commented 3 years ago

Pour envoyer le mp3 au google home, je fais simplement node ./node_modules/assistant-plugins/assistant-cli.js "notifier_http:/xxxxxxxxxx/audio.mp

Mon serveur gère un site web...donc url fonctionne bien

Aymkdn commented 3 years ago

Ok

Aymkdn commented 3 years ago

Je ferme cette issue. Si jamais tu as d'autres questions, tu peux les poser ici même (pas besoin d'ouvrir une autre issue).