Coder Social home page Coder Social logo

alexylem / jarvis Goto Github PK

View Code? Open in Web Editor NEW
794.0 68.0 199.0 4.19 MB

Jarvis.sh is a simple configurable multi-lang assistant.

Home Page: http://openjarvis.com

License: MIT License

Shell 80.95% Python 18.06% Perl 0.99%
jarvis raspberry-pi assistant jasper home-automation voice-recognition voice-control voice-commands personal-assistant sarah

jarvis's People

Contributors

agustinscaz avatar alexylem avatar apointeau avatar benfosse avatar blackhole15 avatar cqoicebordel avatar erim32 avatar francoismartin avatar guillaumef avatar jbellue avatar jzacharie avatar kevincaradant avatar lasconic avatar oliv4945 avatar rbillon59 avatar taostaos avatar wikijm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jarvis's Issues

Demander plusieurs ordres à la fois

voila je voulais savoir si c'était possible d'executer plusieurs commande en une seul phrase par exemple :

MOI: "allume la lampe et allume la ventlation"
JARVIS: "ok"
(et il fait les deux commandes)

en structure ça pourrait donner :

(*) ET (*)==

mais cette structure et aussi utilisé pour les envoie de message ou la répétition d'un mot donc du coup est-ce possible ?

Affichage incorrect en mode clavier

Description

En mode keyboard, des lignes vide s'affichent à la console

Résultat

Alex: quelle heure
jarvis: il est 21:41

jarvis:
Alex: merci
jarvis: De rien

jarvis:
Alex: 

IOError: [Errno Unanticipated host error] -9999

Si en mode troubleshooting vous rencontrez cette erreur en utilisant snowboy c'est que votre micro est en erreur. Même problème que #12 et #6 donc mêmes solutions:

  • Solution 1)

Rébrancher et rebrancher le micro, puis relancer Jarvis.

  • Solution 2)
pkill jarvis.sh # exit jarvis
lsusb # identify Bus XXX Device YYY of your mic
sudo ./usbreset /dev/bus/usb/XXX/YYY # with XXX and YYY from above

New TTS pico2wave

Bonjour Alex ,

Déjà bravo pour ton projet et le développement qui est derrière.
Je pense pour la fonction de synthèse du pourrais implanté SVOX Pico TTS qui est aussi gratuit et plein plus approfondie que Google API Key niveau commande vocal

apt-get install libttspico-utils

En effet il sort le son en fichier wav , mais avec un fichier script pour le lire en mémoire tampon qui se supprime après la lecture.

pico2wave -l fr-FR -w jarvis.wav "Hello Wordl"

création d'un fichier

exemple vocal.sh

!/bin/bash

pico2wave -l fr-FR -w /tmp/test.wav "$1"
aplay -q /tmp/test.wav
rm /tmp/test.wav
Le fichier .wav est créé de façon temporaire, lu, puis supprimé. $1 représente la phrase que vous passerez en paramètre sur la ligne de commande.

Rendez le programme exécutable.
sudo chmod 755 vocal.sh

voilà en gros j'espère que sa peux donner une indication dans la fonction vocal . pour la reconnaissance effectivement il y pas grand chose à part PocketSphinx ou GOOGLE API KEY , affaire à suivre.

Dante

Utilisation de la reconnaissance vocal [POST EXISTANT] sorry

Bonsoir,

Je me posais la question est ce que ce serai possible de mettre le dictionnaire de pocket shpinx ailleurs que sur la raspberry pi on pourrait ainsi mettre plus de vocabulaire et ne plus utiliser google qui limite le nombre de requête.
Sinon super taff bravo 👍

Cordialement

Micro plante à cause du timeout. Obligé de dire annuler à chaque fois.

concernant le problème de MIC que je t'ai reporté, en fait si tu sors du mode conversation par toi même par annulé , tout va bien,

mais si après la dernière commande tu ne dis rien , on obtient toujours l'erreur : rec FAIL formats: can't open input `hw:1,0': snd_pcm_open error: Device or resource busy

ERROR: rec command failed

Patrick

pkilling jarvis (in background) doesn't stop python used by snowboy

$> ./jarvis.sh -b
$> pgrep -af jarvis.sh
6193 /bin/bash ./jarvis.sh -n
$> top
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
 6263 pi        20   0   31328  12280   8524 S   5.6  1.4   0:04.51 python     
$> pkill -f jarvis
$> pgrep -af jarvis.sh
(no process)
$> top
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
 6263 pi        20   0   31328  12280   8524 S   6.0  1.4   0:08.05 python     

Problème: relancer Jarvis va accumuler des process python (pour snowboy), solliciter de plus en plus le CPU et mettre en échec le micro.

Commandes imbriquées pour conversation avancée

CA VA==say "et et toi?"
    *OUI*==say "ravi de l'entendre"
    *NON*==say "j'en suis navré"

Ce qui peut être drôlement utile pour les demandes complexes

AJOUTE A LA LISTE DE COURSE*==say "que dois-je ajouter à la liste de courses?"
    (*)==./add_to_list "(1)" && say "Ok"

Fail to open input file "stt_engines/snowboy/resources/snowboy.pmdl

Bonjour,

je suis respi 3.

Je n'arrive pas a declancher Jarvis en mode vocale.
En mode text pas de souci

avec snowboy ou pocketsphinx c idem.
mon micro fonction la fonction rec enregistre sans souci
L'install est a été faite a plusieur reprise ainsi que les update des differents modules

Merci

Voici l'erreur :

------- Config (verbose) -------
platform              linux 
language              fr_FR 
play_hw               hw:0,0 
rec_hw                hw:1,0 
trigger_stt           snowboy 
command_stt           google 
tts_engine            svox_pico 
google_speech_api_key AIzaSyCLZwgDEKrHBU77Qes0Ufcs4CC******** 
--------------------------------

snowboy: Bonjour fredde
snowboy: Waiting to hear 'snowboy'
fredde: (listening...)
ERROR (Input():snowboy-io.cc:266) Fail to open input file "stt_engines/snowboy/resources/snowboy.pmdl"
terminate called after throwing an instance of 'std::runtime_error'
  what():  ERROR (Input():snowboy-io.cc:266) Fail to open input file "stt_engines/snowboy/resources/snowboy.pmdl"

[stack trace: ]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy13GetStackTraceEv+0x34) [0x76760b6c]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy13SnowboyLogMsgD1Ev+0x4b8) [0x767611ac]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy5InputC1ERKSs+0x264) [0x76755d08]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy14PipelineDetect14ClassifyModelsERKSsPSsS3_+0x1ec) [0x76745d54]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy14PipelineDetect8SetModelERKSs+0x48) [0x76746154]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(_ZN7snowboy13SnowboyDetectC1ERKSsS2_+0x94) [0x7673c8e0]
/home/pi/jarvis/stt_engines/snowboy/_snowboydetect.so(+0x180a8) [0x7673b0a8]

stt_engines/snowboy/main.sh : ligne 40 :  5079 Abandon                 python stt_engines/snowboy/main.py stt_engines/snowboy/resources/snowboy.pmdl
ERROR: snowboy recognition failed

Snowboy ALSA lib Unknown PCM cards

Je ne sais pas ce qui se passe, mais depuis les 2 dernières updates j'ai ce problème avec le micro. J'arrive à configurer le micro comme avant et tout fonctionne jusqu'à temps que je lance Jarvis.
capture d ecran - 2016-06-29 - 16 04 53

lecture d'une page web

voila : puisque que j'utilise pas jarvis en mode "écran", j'aimerais que jarvis me lise une page internet (pas des truc compliqué genre jarvis n'aura que quelque fonctions comme définition "..." et jarvis fera la recherche et lira la def... ce genre de trucs), moi en mode "écran" (parceque j'ai 2 raspi) je fais cette commende :
RECHERCHER()==say "ok" && firefox (1)
et ça me fait la recherche de la page... mais ça n'est pas vraiment ça que je veux.... ce serait juste une définitions ou un résumé d'une petite recherche...

est-ce possible ?
merci

utils/utils.sh: line 21: wait: -n: invalid option (Mac OSX)

Nouveau bug du à la correction de #6
C'est lié au de l'utilisation de l'option -n de wait qui n'est disponible à partir de la version 4 de bash. Sur Mac bash est en version 3, vérifier avec:

$> bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

Utilisation d'une instance de PocketSphinx sur serveur distant

Proposé par Physicien:
Pour finir, en jouant un peu dans les settings de Jarvis sur ma RP3, je me suis demandé s'il est envisageable d'ajouter une 4e option au choix de STT engine, soit l'option de faire appel à un serveur pocketsphinx sur un PC de l'utilisateur. Je lance l'idée, car ça revient à utiliser un serveur comme celui de Google ou de Wit(Facebook), mais sans les problèmes de respect de la vie privée.

Executer commandes avec délai

voila c'est asser compliqué... en fait j'ai récemment crée un script qui me permet de lancer une seul et unique commande après un certain temps :

*DANS (*) EXTINCTION*== ./extinction.sh (1)

le script :

#!/bin/bash
./jarvis.sh -s "d'accord"
echo "1 : $1"
delai=$1
echo "delai : $delai"
compte=$[delai*60]
echo "compte : $compte"
sleep $compte
./jarvis.sh -s "ok" && cd /home/pi && sudo ./src/chacon-rpi/emit -d 0136CA46 -b A1 -x && sudo ./src/chacon-rpi/emit -d 0136CA46 -b A2 -x && sudo ./src/chacon-rpi/emit -d 0136CA46 -b A3 -x &&  cd /home/pi/jarvis

mais voila je voudrais faire plusieurs scipt dans ce gnere et je me vois pas créer 10scipts (même en copier coller) pour executer une commande chacune donc c'est pour savoir si il était ps possible de rajouter une option -... a jarvis ou je ne sais quoi qui permettent de lancer une commande stocké dans une variable....

je sais pas si je suis très clair...

/dev/shm/jarvis-order: Permission non accordée

voila tout est dit dans le titre : chaque fois que je lance ./jarvis.sh dès que la reco vocale est censé commancer jarvis me dis :

pi@raspberrypi ~/jarvis $ ./jarvis.sh
Checking for updates...[Up-to-date]
LEIA: Bonsoir rèmjou
LEIA: Waiting to hear 'LEIA'
rèmjou: stt_engines/google/main.sh: ligne5: /dev/shm/jarvis-order: Permission non accordée

et la partie

rèmjou: stt_engines/google/main.sh: ligne5: /dev/shm/jarvis-order: Permission non accordée

se répète plusieurs fois d'affilé
du coup je dois le lancer en sudo... que faire ?

Use custom voice from pre-generated audio files on specific phrases

Après avoir collecté plusieurs phrases (toujours en cours, il y a beaucoup à faire) du maître d’hôtel d'une sitcom (une nounou d'enfer), j'ai pensé qu'il pouvait être intéressant d’intégrer ces voix au concept de domotique ou du moins de reconnaissance vocal.

Quelques-unes de ses phrases possèdent des intonations légèrement différentes mais signifient quasiment la même choses (liste non exhaustive de la banque) :

  • Oui monsieur
  • Bien sûr
  • Mission accomplie
  • C'est parti monsieur

Et encore il bien d'autre phrase assez intéressante dans le contexte. Je pense qu'il y a de quoi reconstituer des mots avec un minimum de traficotage de la bande sonore (ce dont je suis capable) mais les intonations du personnage sont vraiment intéressantes et diverses, je pense qu'il serait intéressant de garder les phrase "telle quelles sont"

Pour bien faire, comme vous l'avez supposez, un choix aléatoire de ces documents pourrait-être envisageable :

  • Si l'on attend une affirmation
  • Piocher dans le document associé
  • Et selectionner, aléatoirement entre "Oui monsieur001.wav" "Bien sur001.wav" "Mission accomplie001.wav" "C'est pari monsieur001.wav"
  • lancer le son

Ce genre de chose peut-être envisageable. (Même si on peut customiser et donner un sens précis à chacune de ces phrases).

Avantage quant à la sélection aléatoire :

  • Si la liste est assez grande, nous ne somme pas gavé par la lassitude du programme, avec un large choix on a déjà un peu plus la sensation de communiquer.
  • On ne peut que être surpris par sa réponse, ce qui est similaire au "piquant" des réflexions de Jarvis, dans le sens où on ne sait jamais ce qu'il va dire

Désavantage ;

  • On perds plusieurs phrases pour 1 seule utilité, alors que ce n'est pas forcément/strictement les "même" signification (stricto sensu)
  • Il faut implémenter une fonction d'aléatoire, je sais pas si c'est toujours évident, on se débrouille bien avec les fonctions qui joue avec la date et l'heure...

/// C'est la première fois que je publie sur GitHub, j'ai fais en quelque sorte une présentation du projet, je ne sais pas si c'est ce qu'il faut faire, j'imagine ça comme un cahier des charges ? ///

Reconnaissance Vocale en Francais avec PocketSphinx

Aujourd'hui Jarvis supporte PocketSphinx pour la reconnaissance du mot clé "Jarvis" (uniquement).
Le dictionnaire utilisé est très limité (100 mots) car il est limité par la puissance du Raspberry Pi 1, et il ne fonctionne qu'avec le modèle de lange anglophone (d'ou le fait que la reconnaissance de "Jarvis" fonctionne mal).
J'ouvre ce ticket pour tester le dictionnaire Français et son modèle de langue et voir s'il peut fonctionner sur Raspberry Pi 3 (bien plus puissant que Raspberry Pi 1).

Voici les pages que j'utilise:
https://doc.ubuntu-fr.org/pocketsphinx
https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French/

Si vous arrivez à faire fonctionne PocketSphinx en standalone en Français sur Raspberry Pi, merci de partager votre démarche!
Alex.

mot entre les (*) des commandes "repeat"

voila en fait j'ai une api qui me permet de m'envoyer des notifications pas sms... je l'utilise en events mais je voudrais éventuellement envoyer un sms vocalement (parce que c'est cool :) ) mais apparement il faut mettre un mot entre deux variable.... c'est embetant je me vois pas dire :

"dis et a et ma et femme et que et je et vais et rentrer"

bref t'as compris c'est embetant... une solution ?

/timeout.sh: 54: ./timeout.sh: -V1: not found

Depuis la dernière mise à jour

LEIA: Waiting to hear 'LEIA'
rèmjou: ./timeout.sh: 54: ./timeout.sh: -V1: not found

et

jarvis: Bonjour Monsieur
jarvis: Waiting to hear 'jarvis'
Monsieur: (listening...)
./timeout.sh: 54: ./timeout.sh: -V1: not found
ERROR: rec command failed
HELP: Verify your mic in Settings > Audio > Mic

line 359: kill: -: arguments must be process or job IDs

Quitter Jarvis après une longue période en mode service:

pi@jarvis:~/jarvis $ ./jarvis.sh 
Checking for updates...[Up-to-date]
./jarvis.sh: line 359: kill: -: arguments must be process or job IDs
./jarvis.sh: line 359: kill: (6794) - No such process

Pourtant 6794 est bien le bon group id.

Random answer from list of possible replies for a given command

Salut,

D'abord bravo à toi jarvis est vraiment génial. mon idée d'amélioration et de lui faire dire quelque chose ou bien autre chose en alternant parfois exemple :
Question : "Quelle est la couleur du cheval blanc d'henry IV ?"
réponse 1 : "Blanc"
réponse 2 : "c'es blanc évidement"
...

Bonne continuation
Thomas

PocketSphinx doesn't seem to be installed

Failed ininstallation with the folowintn error
The program is looking for "Translation-en" but in the repo we only have Translation-en.gz and Translation-en.xz in
http://ports.ubuntu.com/dists/xenial-backports/restricted/i18n/

E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/restricted/source/Sources Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/universe/source/Sources Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/multiverse/source/Sources Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/restricted/binary-armhf/Packages Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/restricted/i18n/Translation-en Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/universe/binary-armhf/Packages Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/universe/i18n/Translation-en Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/multiverse/binary-armhf/Packages Empty files can't be valid archives
E: Failed to fetch http://ports.ubuntu.com/dists/xenial-backports/multiverse/i18n/Translation-en Empty files can't be valid archives
E: Some index files failed to download. They have been ignored, or old ones used instead.
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/ports.ubuntu.com_dists_xenial-backports_main_binary-armhf_Packages
E: The package lists or status file could not be parsed or opened.

line 192: update_alsa: command not found

Bonjour,
Tout d'abord merci pour tout ce bon boulot sur ce Jarvis. Très intéressant !!!
J'ai essayé de réinstaller tout sur une nouvelle image de Raspbian Jessie. J'ai update et upgrade puis re-installer Jarvis (utilisation de snowboy). Quand je déroule l'install, je suis bloqué au niveau du micro (qui est une webcam C170).
J'ai ce message d'erreur

**** List of CAPTURE Hardware Devices ****
card 1: C170 [Webcam C170], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Indicate the card # to use [0-9]: 1
Indicate the device # to use [0-9]: 0
./jarvis.sh: line 192: update_alsa: command not found
rec FAIL formats: can't open input `default': snd_pcm_open error: No such file or directory
play FAIL formats: can't open input file `jarvis-reco rd.wav': No such file or directory
true

Pourtant j'ai bien choisi la bonne card et device...
La cam fonctionne bien sur un PC.
Merci pour ton aide
Nico

STT à distance avec Kaldi

Surprise surprise, après une bonne grosse journée de travail j'ai réussi (à une petite erreur de path près) à configurer Kaldi en ASR qui accepte de recevoir des fichiers en .wav pour les décoder.

Pour ce qui est de l'installation, très facile si on suit les instructions.
Pour ce qui est du online decoding, il y a un exemple fonctionnel ici (à retravailler et adapter à un meilleur model)
ATTENTION: utilisateurs avancés seulement (et avec pas mal de CPU/GPU)
Pour ce qui est de la génération ou l'amélioration d'un décodeur, voici une excellent petit guide. Ça permet également de comprendre comment utiliser le modèle anglo librispeech. kaldi_for_dummies.pdf

Je compte également m'inspirer de ce petit guide et de l'article suivant afin de générer un décodeur francophone, à suivre...
2015_icassp_librispeech.pdf

possibilité de zapper la reco du mot magique

alors voila pour des test j'aurai besoin d'une option (en -quelque-chose ou dans le menu de lancement) qui permettrai de zapper la reco du mot magique... un peu comme l'option -l pour le bouton mais ça permettrais de voir ce qu'il ce passe sur l'écran

rec WARN alsa: can't encode 0-bit Unknown or not applicable

Cette erreur (non bloquante) s'affiche même en mode normal

pi@raspberrypi ~/jarvis $ ./jarvis.sh
Checking for updates...[Up-to-date]
JARVIS: Bonsoir rèmjou
JARVIS: Waiting to hear 'JARVIS'
rèmjou: rec WARN alsa: can't encode 0-bit Unknown or not applicable
#rec WARN alsa: can't encode 0-bit Unknown or not applicable
#rec WARN alsa: can't encode 0-bit Unknown or not applicable
Jarvis
JARVIS: Oui?
rèmjou: rec WARN alsa: can't encode 0-bit Unknown or not applicable

En mode troubleshooting:

pi@raspberrypi ~/jarvis $ ./jarvis.sh
.Checking for updates...[Up-to-date]

------- Config (verbose) -------
platform              linux 
language              fr_FR 
play_hw               hw:0,0 
rec_hw                hw:1,0 
trigger_stt           google 
command_stt           google 
tts_engine            google 
google_speech_api_key AIzaSyCkm-GdMfQhH6m0P5B4-YL2Y6kZvHx2o2M 
--------------------------------

JARVIS: Bonsoir rèmjou
JARVIS: Waiting to hear 'JARVIS'
rèmjou: (listening...)
rec WARN alsa: can't encode 0-bit Unknown or not applicable
DEBUG: speech duration was 25 (10 = 1 sec)
DEBUG: too long for a trigger (min 0.5 max 1.5 sec), ignoring...
rec WARN alsa: can't encode 0-bit Unknown or not applicable
DEBUG: speech duration was 25 (10 = 1 sec)
DEBUG: too long for a trigger (min 0.5 max 1.5 sec), ignoring...
rec WARN alsa: can't encode 0-bit Unknown or not applicable
DEBUG: speech duration was 22 (10 = 1 sec)
DEBUG: too long for a trigger (min 0.5 max 1.5 sec), ignoring...
rec WARN alsa: can't encode 0-bit Unknown or not applicable
DEBUG: speech duration was 22 (10 = 1 sec)
DEBUG: too long for a trigger (min 0.5 max 1.5 sec), ignoring...
rec WARN alsa: can't encode 0-bit Unknown or not applicable
DEBUG: speech duration was 15 (10 = 1 sec)
DEBUG: {"result":[]}
{"result":[{"alternative":[{"transcript":"Jarvis","confidence":0.79562902},{"transcript":"jarvis"},{"transcript":"service"},{"transcript":"Service"},{"transcript":"Services"}],"final":true}],"result_index":0}
Jarvis
$> bypass=true; say "Oui?"
JARVIS: Oui?
rèmjou: (listening...)
rec WARN alsa: can't encode 0-bit Unknown or not applicable

enregistrer une phrase dans une seul variable

voila mon idée est toute simple : enregistrer une phrase complète dans un variable...
Bien sûr il y a la solution :

*ENVOIE A (*) QUE (*) ET (*)==...

mais ce n'est pas ce que je veux car je voudrais dire une phrase sans avoir une structure pariculière...
Je me demandais si il était possible de faire
MOI:"envoie un mail"
(une fenêtre d'enregistrement s'ouvre et je peu dire mon texte jusqu'a ce que je ne dise plus rien un peu a la manière de la vérification de micro...)

Blue Yeti: rec FAIL formats: can't open input `hw:1,0': snd_pcm_hw_params error: Input/output error

Cette erreur se produit de temps en temps lorsque rec est relancé à chaque fois que le mot clé n'est pas reconnu. rec tourne ainsi "en boucle" et il arrive qu'il se bloque:

Alex: ##-HEYGOOD##HEY EYE#-#GOODGOOD?SEE?###GOOD#rec FAIL formats: can't open input  `hw:1,0': snd_pcm_hw_params error: Input/output error
ERROR: rec command failed

Le symptôme est similaire à #6 mais l'erreur est légèrement différente. Alors que dans #6 cela semble être lié au kill utilisé pour interrompre rec, dans le cas présent, ce sont les plugins silence et trim de sox qui sont utilisés pour interrompre automatiquement l'enregistrement.

J'utilise le Blue Yeti.

2 possibilités pour débloquer le problème:

  • Débrancher / Rebrancher le micro (si accessible)
  • Réinitialiser le port USB:
pkill jarvis.sh # exit jarvis
lsusb # identify Bus XXX Device YYY of your mic
sudo ./usbreset /dev/bus/usb/XXX/YYY # with XXX and YYY from above

Commandes rapides avec snowboy

Il serait intéressant d'avoir un certain nombre de commandes de base dans le cas où la connection à un serveur distant serait coupée.
Pour certaines fonctions de très bas niveau, je ne pense pas qu'il soit nécessaire de passer par un serveur distant. Exemple: si je dis « Bye » dans le but de quitter Jarvis, ou encore si j'ai un thermomètre de branché à ma Pi et que je veux savoir la température qu'il fait dans la pièce.
Un hotword pour rediriger vers le STT distant (Google, Wit ou PocketSphinx sur PC) et certaines commandes de base.

  • JARVIS => Trigger pour passe en mode écoute commandes avec google ou wit
  • ALLUME BAR => Commande rapide (écoute permanente, action directe)
  • TEMPERATURE PIECE => Commande rapide (écoute permanente, action directe)

Crash lorsqu'il y a trop de bruit de fond

Depuis quelques jours, je suis confronté au problème suivant: lorsqu'il y a trop de bruit de fond, Jarvis crash tout simplement. Afin d'isoler le problème, j'ai expérimenté plusieurs situations (détecteur de mot clé, STT engine, avec ou sans bruit de fond et différentes intensités de bruit de fond) et bonne nouvelle, Snowboy fonctionne peu importe le bruit, il faut simplement augmenter le delta dB s'il ne comprend pas (donc parler plus fort).
Le problème vient donc après la reconnaissance du hotword. Les messages d'erreurs semblent aussi confirmer que c'est à l'enregistrement du fichier .wav que survient le bug.

Pistes de solutions:

capture d ecran - 2016-07-05 - 14 06 58

P.S.: La dernière solution est faisable, mais ça me prendrait un peu de temps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.