alexylem / jarvis

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

Voxygen muet: 20 redirections exceeded. #446

Closed nicolas92g closed 7 years ago

nicolas92g commented 7 years ago

nicolas: .jarvis: Waiting to hear 'jarvis' nicolas: jarvis jarvis: oui ? /c'est dit par voxygen nicolas: ?ça va jarvis: Très bien et vous? /c'est dit par voxygen OUI NON nicolas: oui jarvis: tant mieux /c'est dit par voxygen nicolas: quelle heure est-il jarvis: il est 2 heures 59 /ce n'est pas dit nicolas: quel jour sommes-nous jarvis: nous sommes le mercredi 22 février 2017 /idem

et sa ma fait ca plusieurs fois je ne comprend pas pour quoi

alexylem commented 7 years ago

Merci de coller le résultat complet de la console après avoir lancé Jarvis en mode Troubleshooting, ou partage une session de ton terminal en utilisant http://asciinema.org.

nicolas92g commented 7 years ago

oui oui je suis en train de le faire

nicolas92g commented 7 years ago
------------ Config ------------
jv_version           17.02.20 
jv_arch              x86_64 
jv_os_name           ubuntu 
jv_os_version        12.04 
language             fr_FR 
play_hw              hw:1,9 
rec_hw               hw:2,0 
speaker              NVidia 
microphone           Logitech, Inc.  
trigger_stt          pocketsphinx 
command_stt          bing 
tts_engine           voxygen 
--------------------------------

DEBUG: program_startup hook
jarvis: bonjour
DEBUG: start_speaking hook
DEBUG: stop_speaking hook

 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 05 (10 = 1 sec)
(listening...)
 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 00 (10 = 1 sec)
DEBUG: too short for a trigger (min 0.2 max 1.5 sec), ignoring...
 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 07 (10 = 1 sec)
?(listening...)
 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 05 (10 = 1 sec)
jarvis
DEBUG: entering_cmd hook
jarvis: oui ?
DEBUG: start_speaking hook
DEBUG: stop_speaking hook
nicolas: (listening...)
DEBUG: start_listening hook
utils/timeout.sh 10 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 02 (10 = 1 sec)
DEBUG: stop_listening hook
DEBUG: token missing or expired
DEBUG: json=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6Imh0dHBzOi8vc3BlZWNoLnBsYXRmb3JtLmJpbmcuY29tIiwic3Vic2NyaXB0aW9uLWlkIjoiNzdiODBkZjdlYjQwNDRlOWJhMzhhMzdkMTE4OGNmMjIiLCJwcm9kdWN0LWlkIjoiQmluZy5TcGVlY2guUHJldmlldyIsImNvZ25pdGl2ZS1zZXJ2aWNlcy1lbmRwb2ludCI6Imh0dHBzOi8vYXBpLmNvZ25pdGl2ZS5taWNyb3NvZnQuY29tL2ludGVybmFsL3YxLjAvIiwiYXp1cmUtcmVzb3VyY2UtaWQiOiIiLCJpc3MiOiJ1cm46bXMuY29nbml0aXZlc2VydmljZXMiLCJhdWQiOiJ1cm46bXMuc3BlZWNoIiwiZXhwIjoxNDg3NzczMzQ0fQ.C8mHo2_h54_5w99m-9b_J6Y8lXBW4ubFYHA6s1pne_4
DEBUG: token will expire in 590 seconds
DEBUG: curl https://speech.platform.bing.com/recognize/query?version=3.0&requestid=4ce0222f-b1f7-4fb5-a753-35ff06022eb8&appid=D4D52672-91D7-4C74-8AD8-42B1D98141A5&format=json&locale=fr-FR&device.os=linux&scenarios=ulm&instanceid=E043E4FE-51EF-4B74-8133-B728C4FEA8AA&result.profanitymarkup=0
DEBUG: json={"version":"3.0","header":{"status":"success","scenario":"ulm","name":"quel jour sommes-nous","lexical":"quel jour sommes-nous","properties":{"requestid":"ba98e857-4041-44eb-ba08-4b9d8ae692c9","HIGHCONF":"1"}},"results":[{"scenario":"ulm","name":"quel jour sommes-nous","lexical":"quel jour sommes-nous","confidence":"0.9562168","properties":{"HIGHCONF":"1"}}]}
quel jour sommes-nous
$> say "nous sommes le $(LC_TIME="$language.UTF-8" date +"%A %d %B %Y")"
jarvis: nous sommes le mercredi 22 février 2017
DEBUG: start_speaking hook
DEBUG: stop_speaking hook
nicolas: (listening...)
DEBUG: start_listening hook
utils/timeout.sh 10 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 1% 1 0.5 1% trim 0 10
DEBUG: speech duration was 08 (10 = 1 sec)
DEBUG: stop_listening hook
DEBUG: curl https://speech.platform.bing.com/recognize/query?version=3.0&requestid=1835db55-1628-496d-bea8-c677338c3003&appid=D4D52672-91D7-4C74-8AD8-42B1D98141A5&format=json&locale=fr-FR&device.os=linux&scenarios=ulm&instanceid=E043E4FE-51EF-4B74-8133-B728C4FEA8AA&result.profanitymarkup=0
DEBUG: json={"version":"3.0","header":{"status":"error","properties":{"requestid":"2d1fb22a-6dee-4c41-af53-25ef8fc49263","NOSPEECH":"1"}}}
?(listening...)
DEBUG: start_listening hook
utils/timeout.sh 10 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 1% 1 0.5 1% trim 0 10
^CDEBUG: program_exit hook
alexylem commented 7 years ago

jarvis: nous sommes le mercredi 22 février 2017

Alors il l'a dit?

alexylem commented 7 years ago

Mmmmh tu dois avoir des fichiers son corrompus en cache, essaye de les virer puis de réessayer:

$> rm -f /dev/shm/*.mp3
$> ./jarvis.sh -vx "quel jour"
nicolas92g commented 7 years ago

non

alexylem commented 7 years ago

Tu es essayé de supprimer les fichiers son en cache comme je te l'ai conseillé ci-dessus?

nicolas92g commented 7 years ago

j'ai l'impresion qu'il ne dit pas les mots qu'il ne comprens pas

nicolas92g commented 7 years ago

oui j'ai fait les commandes que tu m'a dit de faire

alexylem commented 7 years ago

@themask38 il dit les mots que tu lui dis de dire. La synthèse vocale et la reconnaissance vocale sont 2 choses différentes... Tu peux essayer les commandes suivantes et me dire si ca marche:

$> ./jarvis.sh -vs "test"
$> ./jarvis.sh -vx "quel jour"
nicolas92g commented 7 years ago

bonjour c'est bon j'ai pu testé et ca marche pour test ca ne marche toujours pas pour

nicolas@nicolas-ubuntu-12:~$ cd jarvis
nicolas@nicolas-ubuntu-12:~/jarvis$ ./jarvis.sh -vx "quel jour"
$> say "nous sommes le $(LC_TIME="$language.UTF-8" date +"%A %d %B %Y")"
jarvis: nous sommes le jeudi 23 février 2017

j'ai essayé aussi ./jarvis.sh -vs "nous sommes le jeudi 23 février 2017" et ca ne marche pas non plus

alexylem commented 7 years ago

Très bien on va se focaliser sur quel jour. Dans ton extrait je ne vois pas l'appel à voxygen, alors ca doit prendre les fichiers dans le cache. Peux-tu à nouveau:

$> ls /dev/shm/nous*.mp3
$> rm -f /dev/shm/nous*.mp3
$> ./jarvis.sh -vx "quel jour"

Et me coller bien tous les résultats. On va y arriver, tiens bon!

AlienFX commented 7 years ago

Bonjour @alexylem

Je me permets de faire un message dans ce topic pour ne pas en ouvrir un autre, car j'ai sensiblement le même problème au niveau de la synthèse vocale. Mon jarvis est muet.... Enfin à 98% car il me balance de temps en temps quelques mots, style mon username (flo) ou autre mot très cours. J'ai configuré le speech engine à svox_pico car si je mets les autre ça plante au moment où il doit théoriquement parlé, mais avec lui il n'est pas très bavard. Je ne sais pas comment le faire parler ? Est-il censé avoir un catalogue de texte en local ? Faut-il une clé api ? Dois je lui apprendre tout ce qu'il peut dire ? J'avoue que je ne trouve pas et difficile d'aller plus loin. Ah oui, dernier détail, je suis en fr_FR.

Merci d'avance à toi Flo

alexylem commented 7 years ago

@AlienFX c'est vraiment bizarre. Essaye déjà avec un moteur de synthèse vocal en ligne, genre Google, puis lance immédiatement (pour éviter le cache) Jarvis en mode troubleshooting (pour voir la génération du mp3), et colle le résultat ici (ou utilise asciinema).

$> asciinema rec #optionnel pour enregistrer ta session
$> ./jarvis.sh
Settings > Speech Synthesis > Engine: Google
Start Jarvis > Troubleshooting mode
Ctrl+C # pour quitter Jarvis
Ctrl+D # pour arrêter l'enregistrement
y # pour uploader l'enregistrement

Ensuite explique la ou ca parle et la ou ca ne parle pas. Tu peux tester les fichiers mp3 générés sur un autre ordi (au cas ou ca vient des enceintes). Ils sont dans:

$> ls /dev/shm/*mp3
AlienFX commented 7 years ago

J'ai tenté de faire un screen, dis moi ce que tu en penses ? @alexylem capture d ecran 2017-02-26 a 23 44 22

Quand j'utilise en ligne de commande svox_pico, il marche sans problème. Via Jarvis, non... De plus, j'ai l'impression qu'il ne dis pas tout. Par exemple j'ai la commande : REPETE () Et lui il me sort, "je ne comprends pas: repete" Par écrit bien sur !! Il ne me dit pas ça à l'oral.

Autre question hors sujet, afin de bien avoir compris. Sur une commande de type : *COMMENT*APPELLE* Lors ce que je fais le trainning snowboy, que dois je dire ? La j'ai créé un training pour le terme "comment appelle" et je lui ai dis : "comment t'appelles tu", 3 fois, mais je suis pas sur que ma démarche est la bonne ?

Merci !

alexylem commented 7 years ago

Je ne vois pas la génération des fichiers mp3. Tu dois avoir des fichiers corrompus en cache. Fais-ceci:

$> ls /dev/shm/*.mp3 # vérifie que c'est bien la
$> rm -f /dev/shm/*.mp3 # supprime les

Puis relance Jarvis en mode troubleshooting, et copie colle le contenu du terminal (mieux qu'une image).

AlienFX commented 7 years ago

Hello @alexylem, désolé pour le délai. Mon dossier /dev/shm ne comprends aucun mp3... c'est d'autant plus étrange.

pi@PI020:/dev/shm$ ll total 76 drwxrwxrwt 2 root root 120 févr. 26 23:43 . drwxr-xr-x 15 root root 3380 févr. 26 20:13 .. -rw-r--r-- 1 pi pi 5 févr. 26 23:42 jarvis.lock -rw-r--r-- 1 pi pi 0 févr. 26 23:43 jarvis-order prw-r--r-- 1 pi pi 0 févr. 26 23:31 jarvis-say -rw-r--r-- 1 pi pi 69676 févr. 26 23:43 tts.wav

alexylem commented 7 years ago

Excuse moi c'est normal de ne pas avoir de mp3 avec svox_pico il n'y a pas d'appel web donc pas besoin de mettre en cache. Juste pour revenir à ton exemple, il ne t'as pas prononcé "Oui?" ni "Au revoir" ? Tu peux justement récupérer le dernier fichier son généré on le voit dans /dev/shm/tts.wav et le lire sur un autre ordinateur. Mais si tu dis que ca marche hors Jarvis alors ca devrait marcher dans Jarvis, voici le bout de code en question:

/usr/bin/pico2wave -l fr-FR -w "/dev/shm/tts.wav" "phrase à prononcer"
play "/dev/shm/tts.wav"

Essaye d'exécuter ce code pour voir si ca vient de ton installation de pico2wave.

AlienFX commented 7 years ago

Non, il n'a pas prononcé "Oui", ni "Au revoir" effectivement. Alors que lorsque je fais l'exemple que tu m'as montré, que j'avais déjà essayé, ça marche...

De plus, et c'est la que c'est vraiment étrange, j'entends vraiment que ce qui l'arrange quoi... Ceci étant, j'ai vu quelqu'un se plaindre du même problème lors d'une connexion HDMI, cela est peut être mon cas, il faut que je test via un autre speaker, ça permettrai d'avoir une info de plus.

alexylem commented 7 years ago

Si tu testes au même moment manuellement et avec Jarvis avec le même speaker ca donne des résultats différents alors ce n'est pas normal. Si tu peux j'aimerais bien que tu filmes une séquence avec les 2 tests (manuel et avec jarvis) à la suite histoire qu'on entende ce qu'il se passe:

/usr/bin/pico2wave -l fr-FR -w "/dev/shm/tts.wav" "phrase à prononcer"
play "/dev/shm/tts.wav"
./jarvis.sh -vs "phrase à prononcer"
Dens26 commented 7 years ago

Bonjour,

Je post ici car il y a déjà un sujet sur Voxygen.

La synthése vocal Voxygen ne fonctionne plus chez moi. JARVIS reste muet.

Ext ce du à une mise à jour ou il n'y a que moi?

StudioFlow commented 7 years ago

Bonjour,

Je constate également des PB sur la synthese vocale Voxygen qui semble HS chez moi. En mode troubleshooting, les logs bouclent sur

--2017-03-01 20:13:19-- https://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=|TEXT-MASQUE|=&ts=|TEXT-MASQUE| Connecting to www.voxygen.fr (www.voxygen.fr)|37.59.11.12|:443... connected. HTTP request sent, awaiting response... 302 Found Location: [following] --2017-03-01 20:13:19-- https://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=|TEXT-MASQUE|=&ts=|TEXT-MASQUE| Connecting to www.voxygen.fr (www.voxygen.fr)|37.59.11.12|:443... connected. HTTP request sent, awaiting response... 302 Found Location: [following]

En attendant un retour à la normale, je suis passé sur svox_pico mais du coup l'option -s (qui permet de faire parler jarvis sans qu'il soit lancé) me retourne également une erreur

ERROR : Jarvis is not running

Je reste dispo, si je peux aider... En tout cas merci pour ce projet passionnant ! :)

alexylem commented 7 years ago

Je confirme, aie aie aie!!

alexylem commented 7 years ago
[...]
--2017-03-02 20:44:35--  https://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=Oui?&voice=Loic&ts=1480362849466
Connecting to www.voxygen.fr (www.voxygen.fr)|37.59.11.12|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location:  [following]
--2017-03-02 20:44:35--  https://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=Oui?&voice=Loic&ts=1480362849466
Connecting to www.voxygen.fr (www.voxygen.fr)|37.59.11.12|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location:  [following]
--2017-03-02 20:44:35--  https://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=Oui?&voice=Loic&ts=1480362849466
Connecting to www.voxygen.fr (www.voxygen.fr)|37.59.11.12|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location:  [following]
20 redirections exceeded.

Note: on utilisait une version non officielle de voxygen (web)...

alexylem commented 7 years ago

Voxygen a rajouté un captcha sur leur site, pas bon signe... image

alexylem commented 7 years ago

En attendant de trouver une solution de contournement (mais c'est très peu probable car c'était un "exploit" de leur interface web de démo), je vais enlever voxygen de la liste des TTS engines.

RobyBioloid commented 7 years ago

C'est dommage, j'aimais bien les voix de Voxygen :(