alexylem / jarvis

Jarvis.sh is a simple configurable multi-lang assistant.
http://openjarvis.com
MIT License
805 stars 197 forks source link

Ajout Google en reconnaissance #691

Closed Grams49 closed 6 years ago

Grams49 commented 7 years ago

Bonjour,

Nouvel arrivant sur Jarvis, ou j'en profite pour remercier vivement l'auteur pour ce superbe travail ! J'ai eu l'occasion de tester Jarvis il y a quelques temps sans approfondir réellement jusqu’à aujourd'hui, et à l'époque il était possible de choisir l'api google pour la reconnaissance vocal. J'ai lu que suite au choix de google de facturer cette api, vous aviez fait le choix de retirer celle-ci de Jarvis.

J'aurai voulu savoir si il était possible d'ajouter manuellement celle-ci malgré tout, quitte à faire le choix d'un abonnement payant, car pour ma part, pour avoir essayer tout les modules de reconnaissances, seul google apporte une réel reconnaissance, pour les autres beaucoup de commande ne passe pas, et passe sans problème via l'appli Jarvis pour Android, qui utilise l'api google.

Vous en remerciant grandement par avance.

Oliv4945 commented 7 years ago

Salut. Visiblement l'API n'a pas changé donc ça devrait fonctionner en renommant le dossier google_old qui est dans stt_engines en google. Ensuite éditer cette ligne pour ajouter 'google' et tu devrais pouvoir le sélectionner dans les menus. Attention à bien renseigner google_speech_api_key.

Est-ce que tu sais si la gratuité de 60 min est mensuelle ou une fois par compte ?

Dans le même ordre je pensais tester la reconnaissance Amazon aussi

Grams49 commented 7 years ago

Merci pour cette réponse précise et rapide.

Concernant la gratuité des 60min je te confirme que celle-ci est mensuelle. Au delà google facture $0.006 / 15 seconds. + d'infos - Il propose même un simulateur de coût/utilisation.

De plus lors de la souscription google offre 300$ de crédit. (Vous disposez d'un crédit de 252,56 € et de 365 jours restants en essai gratuit.) La facturation intervient au besoin, une fois le quota atteint et la totalité du crédit utilisé.

De plus, lors de l'ouverture le compte est ouvert en mode gratuit, il faut valider une migration pour activer le compte payant. (Afin de permettre de continuer d'utiliser le service lorsque les crédits offerts sont épuisés).

tfontoura commented 7 years ago

Hi and sorry for not speaking french (such a beautiful language!). Anyway, my 2 cents: the python module "speech recognition" utilizes a default chromium api key that allows testing and developing without a private key. I've been using it for days now without any issues. I agree with @Grams49 that google has the best recognition, so I'm wondering if we could use it with Jarvis. We don't have many options for Portuguese language, just Bing and Google. There is no sphinx for Portuguese and wit informed they will stop recognition soon for all languages.

wikijm commented 7 years ago

Hi @tfontoura,

Let me answer you by translating @Oliv4945 solution:

On stt_engines folder, rename google_old to google. Then, edit this line to add google (this way you'll be able te select it on menus). Be aware to fill google_speech_api_key.

Grams49 commented 7 years ago

Désolé de ne pas avoir fait de retour plus tôt (vacance oblige!). J'ai testé votre solution mais je pense que l'API a changé car bien que le système m'entend (via le mode debug), il ne réagit pas, mes paroles ne sont pas retranscrites. De plus, lorsque je regarde l'historique des mots prononcés via l'espace Google celui-ci est vide.

Oliv4945 commented 7 years ago

Que donne jarvis -nv ?

Grams49 commented 7 years ago

Merci pour ton retour.

Voici le résultat en utilisant la reconnaissance du magic word avec google / voice reco google : Dans ce test je m'entends mais j'ai pour retour ce point d'interrogation

 rec -V1 -q -r 16000 -c 1 -b 16 -e signed-integer --endian little /dev/shm/jarvis-record.wav gain 0 silence 1 0.1 2.4% 1 0.5 3.5% pad 0.5 0.5 trim 0 5
DEBUG: speech duration was 15 (10 = 1 sec)
DEBUG:
?(listening...)

Et en utilisant la reconnaissance du magic word avec snowboy (mot clé snowboy) / voice reco google : Dans ce second test, il ne se passe rien.

Jarvis: Waiting to hear 'snowboy'
Jarvis: (listening...)
DEBUG: models=snowboy
INFO:snowboy:Ticks: [2, 20, 5, -1]

Je suis tombé sur ce site, qui fait référence au API google (assistant google), toutefois j’avoue ne pas y comprendre grand chose ne codant pas, si jamais des pistes peuvent y être trouver voici le lien.

Oliv4945 commented 7 years ago

@Grams49, @tfontoura : I might try this week, did you had any success ?

@Grams49 : Pourle reconnaissance de mot clef je te conseille d'utiliser Snowboy dans tous les cas. Vu ton message du deuxième essai je pense que Snowboy n'a pas reconnu ton mot clef

Oliv4945 commented 7 years ago

Ok, so the Google Speech API changed... After spending lot of time understanding how to use gcloud tool to generate an auth bearer I discover an easier way using the API key.

Anyway the procedure for the auth bearer:

  1. Register to Google Speech API as described here, add download json to stt_engines/google
  2. Install Gcloud scripts from here
  3. gcloud auth activate-service-account --key-file=google-service-account-key-file.json
  4. Execute step 1 and 2 from here

Then I had lot of trouble with the base64 encoding, where the 'standard' base64 tool from Linux is not supported just before giving up and switching to Amazon products I discovered this script that works.
I am still working on Jarvis integration

Oliv4945 commented 7 years ago

Hi,

I just pushed some code in beta branch (Settings > General > Branch > Beta), please give it a try and give me some feedback.

For your information I find it a bit slow to recognize text :/ There is another option to stream voice, but it is a bit more complicated to implement.

Oliv4945 commented 6 years ago

@Grams49 @tfontoura Did you test the beta branch ? What are you thinking of recognition speed ?

wikijm commented 6 years ago

Clôture du ticket jusqu'à obtention d'une réponse de la part de l'auteur de l'issue. Closing of the ticket until a valid answer from the applicant is obtained.