alexylem / jarvis

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

Jarvis sans haut-parleur #678

Open megastorage opened 6 years ago

megastorage commented 6 years ago

Description

J'install jarvis sur une debian sans Haut Parleur. L'installation et la configuration se passe sans problème.

Jarvis est bien configuré sans HP La configuration avec le micro est ok. Mais quand je lance jarvis:

Logs

/home/jarvis# ./jarvis.sh -v
Notice: you can use 'jarvis' instead of './jarvis.sh'

------------ Config ------------
jv_branch            master
jv_version
jv_arch              x86_64
jv_os_name           debian
jv_os_version        8
language             fr_FR
play_hw
rec_hw               false
speaker              Default
microphone           Default
recorder             sox
trigger_stt          bing
command_stt          bing
tts_engine           svox_pico
--------------------------------

No speaker configured, forcing mute mode
DEBUG: program_startup hook
DEBUG: start_speaking hook
jarvis: Hello
DEBUG: stop_speaking hook
User defined commands:
*AIDE*                  *BONJOUR*|*SALUT*       *COMMENT*APPELLE*
*MERCI*                 *AU REVOIR*|*BYE*       ANNULE*|TERMINE*
ENCORE*                 *TEST*                  *VERSION*
*REPETE (*) ET (*)      *CA VA*                 >*OUI*
>*NON*|*PAS*
jarvis: Waiting to hear 'jarvis'
maitre: (listening...)
./jarvis.sh: ligne 467: bing_STT : commande introuvable
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory
ERROR: play command failed
HELP: Verify your speaker in Settings > Audio > Speaker

DEBUG: program_exit hook

Stéphane.

D-Kalck commented 6 years ago

Visiblement, il y a un problème avec la configuration du micro : rec_hw false De plus, il ne trouve pas bing_STT, faut vérifier la présence du fichier stt_engines/bing/main.sh

megastorage commented 6 years ago

Bonjour,

Bizarrement la config se termine bien. C'est une cam: PS Eye

Le fichier est bien présent. Le problème est peut-être lié au system. Je fais tourner dans un chroot (debian) sur un synology.

Stéphane.

D-Kalck commented 6 years ago

Faudrait refaire la config du micro dans Configuration > Audio > Mic

megastorage commented 6 years ago

J'ai essayé plusiseurs fois.

Quand je parle les traits bougent; il me demande si j'ai entendu, je dis oui. Mais sur l’écran, il me remet Mic (false) dans Configuration > Audio

Fichier .asoundrc
pcm.!default {
  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
   capture.pcm {
     type plug
     slave.pcm ""
   }
}

Stéphane.

Oliv4945 commented 6 years ago

Que donne le résultat de arecord -l ? Est-ce que tu as tenté de refaire l'apprentissage du micro ou un wizard complet ?

megastorage commented 6 years ago

Pour le retour de la commande, je pourrais pas le faire avant vendredi.

Oui, j'ai essayé a plusieurs reprises. A chaque fois ca se termine correctement ( quand je parles, les traits bougent...) mais après ca plus rien.

Stéphane.

wikijm commented 6 years ago

Bonjour @megastorage,

As-tu eu le temps de lancer la commande demandée par @Oliv4945 ?

megastorage commented 6 years ago

Bonjour,

**** Liste des Périphériques Matériels CAPTURE ****
carte 0: CameraB409241 [USB Camera-B4.09.24.1], périphérique 0: USB Audio [USB Audio]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0

Stéphane.

wikijm commented 6 years ago

Merci @megastorage, j'espère que cela aidera @Oliv4945 😉

megastorage commented 6 years ago

Pour info: si le fichier asoundrc existe lorsque je reconfigure le micro j'ai cette erreur:

Reloading Alsa...
[....] Shutting down ALSA...warning: 'alsactl store' failed with error message '                                                                                                                                                             alsactl: get_control:256: Cannot read control '2,0,0,Mic Capture Volume,0': Inva                                                                                                                                                             [FAILrgument'...failed.
[....] Setting up ALSA...amixer: Mixer hw:0 load error: Invalid argument
amixer: Mixer hw:0 load error: Invalid argument

Si je supprime le fichier et que je configure le micro, la config se fini bien mais le micro est toujour a false.

Stéphane.

megastorage commented 6 years ago

En regardant sur différents forums:

Avec cette config de asoundrc:

pcm.array {
  type hw
  card CameraB409241
}

pcm.array_gain {
  type softvol
  slave {
    pcm "array"
  }
  control {
    name "Mic Gain"
    count 2
  }
  min_dB -10.0
  max_dB 5.0
}

pcm.cap {
  type plug
  slave {
    pcm "array_gain"
    channels 4
  }
  route_policy sum
}

pcm.!default {
    type asym

    playback.pcm {
     type plug
      slave.pcm {
    @func getenv
    vars [ ALSAPCM ]
    default "hw:PCH"
      }
    }
    capture.pcm {
        type plug
        slave.pcm "cap"
    }
}

Je n'ai plus de messages d'erreurs lors de la config du micro. Mais il reste à false.

Stéphane.

megastorage commented 6 years ago

J'ai refait une install depuis le debut avec le fichier asoundrc ci dessus.

Quand je lance maintenant ./jarvis.sh -v:

Logs

Notice: you can use 'jarvis' instead of './jarvis.sh'
libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Function not implemented

------------ Config ------------
jv_branch            master
jv_version
jv_arch              x86_64
jv_os_name           debian
jv_os_version        8
language             fr_FR
play_hw
rec_hw               hw:0,0
speaker              Default
microphone           Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
recorder             snowboy
trigger_stt          bing
command_stt          bing
tts_engine           svox_pico
--------------------------------

No speaker configured, forcing mute mode
DEBUG: program_startup hook
DEBUG: start_speaking hook
jarvis: Hello
DEBUG: stop_speaking hook
User defined commands:
*AIDE*                  *BONJOUR*|*SALUT*       *COMMENT*APPELLE*
*MERCI*                 *AU REVOIR*|*BYE*       ANNULE*|TERMINE*
ENCORE*                 *TEST*                  *VERSION*
*REPETE (*) ET (*)      *CA VA*                 >*OUI*
>*NON*|*PAS*
jarvis: Waiting to hear 'jarvis'
jarvis: (listening...)
./jarvis.sh: ligne 467: bing_STT : commande introuvable
ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card
play FAIL formats: can't open output file `default': snd_pcm_open error: No such device
ERROR: play command failed
HELP: Verify your speaker in Settings > Audio > Speaker

DEBUG: program_exit hook.

Le fichier a été modifié comme suite par l'installateur:

Logs

pcm.!default {
  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
   capture.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
}

Stéphane

Oliv4945 commented 6 years ago

Oui , le wizard efface le fichier .asoundrc. Qu'est-ce que tu utilises comme micro ?

Sinon en utilisant tout .asoundrc, rec test.wav, et en t'envoyant le fichier sur un PC avec des hauts parleurs, est-ce que ça fonctionne ?

megastorage commented 6 years ago

Bonjour,

Le micro: Webcam PS3 eye.

J'ai déjà essayé d'enregistrer le son avec une autre commande et ça fonctionne. arecord -d 10 -D plughw:0,0 test.wav

Sur le PC, j'entends bien l'enregistrement.

Stéphane.

Oliv4945 commented 6 years ago

@megastorage : Peux-tu essayer arec sans utiliser -D plughw:0,0 ? Ce qui est surprenant c'est qu'avec l'option -D tu forces la même config que le fichier .asoundrc de Jarvis, sans utiliser le plus compliqué que tu as posté. Dans tous les cas tu peux essayer d'écrire true dans le fichier configuration/rec_hw pour voir.

@GuillaumeSX, est-ce que tu peux ouvrir une nouvelle issue s'il te plait ? ça évite de mélanger les problèmes. Dedans peux-tu afficher le résultat de ls -la tts_engines et jarvis -nv?

megastorage commented 6 years ago

Bonjour,

Commande: arecord -d 10 est.wav

Avec fichier .asoundrc de jarvis:

  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
   capture.pcm {
     type plug
     slave.pcm ""
   }
}

ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM arecord: main:722: erreur à l'ouverture audio: Aucun fichier ou dossier de ce type Si je remplace par:

  type asym
   playback.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
   capture.pcm {
     type plug
     slave.pcm "hw:0,0"
   }
}

La commande fonctionne.

Dans le fichier rec_hw j'ai: hw:0,0

Stéphane.

megastorage commented 6 years ago

En modifiant les fichier rec_hw (true) et play_hw(false), j'ai pu avancer.

Mais maintenant:

cat: /proc/asound/carde/usbid: Aucun fichier ou dossier de ce type
lsusb: option requires an argument -- 'd'
Usage: lsusb [options]...
List USB devices
  -v, --verbose
      Increase verbosity (show descriptors)
  -s [[bus]:][devnum]
      Show only devices with specified device and/or
      bus numbers (in decimal)
  -d vendor:[product]
      Show only devices with the specified vendor and
      product ID numbers (in hexadecimal)
  -D device
      Selects which device lsusb will examine
  -t, --tree
      Dump the physical USB device hierarchy as a tree
  -V, --version
      Show version of program
  -h, --help
      Show usage and help

------------ Config ------------
jv_branch            master
jv_version
jv_arch              x86_64
jv_os_name           debian
jv_os_version        8
language             fr_FR
play_hw              false
rec_hw               true
speaker              Default
microphone
recorder             snowboy
trigger_stt          snowboy
command_stt          bing
tts_engine           svox_pico
--------------------------------

DEBUG: program_startup hook
DEBUG: start_speaking hook
jarvis: Hello
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory
ERROR: play command failed
HELP: Verify your speaker in Settings > Audio > Speaker

DEBUG: program_exit hook

lsusb

Bus 004 Device 002: ID 2109:0812
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 007: ID 0658:0200 Sigma Designs, Inc.
Bus 003 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 004: ID 0463:ffff MGE UPS Systems UPS
Bus 003 Device 003: ID 2109:2812
Bus 003 Device 002: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID f400:f400
Bus 001 Device 002: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Stéphane.

megastorage commented 6 years ago

Je penses que dans le fichier rec_hw faut bien laisser que hw:0,0:

libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Function not implemented

------------ Config ------------
jv_branch            master
jv_version
jv_arch              x86_64
jv_os_name           debian
jv_os_version        8
language             fr_FR
play_hw              false
rec_hw               hw:0,0
speaker              Default
microphone           Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
recorder             snowboy
trigger_stt          snowboy
command_stt          bing
tts_engine           svox_pico
--------------------------------

DEBUG: program_startup hook
DEBUG: start_speaking hook
jarvis: Hello
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory
ERROR: play command failed
HELP: Verify your speaker in Settings > Audio > Speaker
Oliv4945 commented 6 years ago

Effectivement, il faut mettre hw:0,0 et non true, désolé. Par contre je ne vois pas pourquoi ça ne fonctionne pas, il va falloir attendre Alexendre

alexylem commented 6 years ago

Je crois que c'est ni hw:0,0 ni true pour désactiver le speaker, mais simplement vide (d'après le code). Il suffit normalement dans le wizard (ou configuration du micro) de répondre No à la question:

Checking audio output, make sure your speakers are on and press [Yes].
Press [No] if you don't have speakers.
megastorage commented 6 years ago

Quand je mets "non" à l'utilisation de haut parleur, j'arrive à la configuration du micro. A la fin, il me demande si j'ai entendu le son! Mais si j'ai pas de haut parleur, cette question est inutile. Perso je repond "oui". Car si je repond "non", j'arrive sur l’écran de sélection du micro et ca plante.

J'arrive a finir l'install en mode sans haut parleur et avec le micro de la web cam, mais Jarvis plante au lancement:

libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Function not implemented

------------ Config ------------
jv_branch            master
jv_version
jv_arch              x86_64
jv_os_name           debian
jv_os_version        8
language             fr_FR
play_hw              false
rec_hw               hw:0,0
speaker              Default
microphone           Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
recorder             snowboy
trigger_stt          snowboy
command_stt          bing
tts_engine           svox_pico
--------------------------------

DEBUG: program_startup hook
DEBUG: start_speaking hook
jarvis: Hello
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory
ERROR: play command failed
HELP: Verify your speaker in Settings > Audio > Speaker

stéphane.