#26 Le 31/01/2012, à 22:37
- n3o51
Re : [Script] reconnaissance vocale avec google
Quel majuscule j'ai pas ce probleme je ne crois pas dit moi ou ?
Je parle du chevron moi avec le echo "CMD=$TEXTE" > il faut un seul > pas deux >>
Ensuite pour la meteo faudrait arriver a integrer http://forum.ubuntu-fr.org/viewtopic.ph … 1#p7952561 cela , comme ça en francais ou créer une traduction et recuperer la température
Dernière modification par n3o51 (Le 31/01/2012, à 22:40)
Welcome to the real world
________________________________
Hors ligne
#27 Le 31/01/2012, à 22:49
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
le problème de majuscule avait lieu (peut-être que sur mon pc) en gros GoogleV2T dans touts les scripts introduisait au moment ou le script système.sh cherchait les autres un espace ; il exécutait :
$HOME/.gnome2/nautilus-scripts/GoogleV2T /racine.sh
au leu de
$HOME/.gnome2/nautilus-scripts/GoogleV2T/racine.sh
Pour la température, je sais l'intégré via :
curl --silent "http://weather.yahooapis.com/forecastrss?p=FRXX0076&u=c" | grep -E '(Current Conditions:|C<BR)' | tail -n1 | sed -e 's/<BR \/>//' -e 's/ C$/˚C/' | cut -f2 -d"," | cut -f1 -dC`
J'irai voir ton lien demain, sinon l'école d'ingé va me ...
Tu me feras part de tes idées stp histoire que je vois ce que les autres font ^^
EDIT: pas mal le script conky météo
Dernière modification par benoitfra (Le 31/01/2012, à 22:50)
#28 Le 31/01/2012, à 22:58
- n3o51
Re : [Script] reconnaissance vocale avec google
OK pas de soucis , internet | "éditeur de texte " | office | vidéo ) $HOME/.gnome2/nautilus-scripts/GoogleV2T/application.sh & exit ;; le exit pas nécessaire sa coupe le script .
Peut être après chaque lancement mettre en pause quand pense tu ?
Pour les espaces j'ai reussi j'avais un espace qui c'etait glissé a la fin donc j'ai modifié deux trois trucs
case $CMD in
éteindre ) zenity --info --timeout 60 --text="Validez pour éteindre" ;stop=`dbus-send --system --type=method_call --print-reply --reply-timeout=60000 --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Shutdown` $stop;;
redémarrer ) zenity --info --timeout 60 --text="Validez pour redémarrer " && restart=`dbus-send --system --type=method_call --print-reply --reply-timeout=60000 --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart` $restart ;;
esac;
exit
J'ai mis sa dans power.sh comme ça pas de mot de passe et possibilité d’annuler si on clique sur la crois de zenity, et si on valide pas ça arrette pas l'ordinateur , je connais pas yad si y a la même chose.
Après pour le contrôle par exemple je lance le lecteur video vlc avec une vidéo ensuite je dit augmenter vidéo et automatiquement il augmente la vidéo.Ma façon de faire et bien car pas obliger d'avoir le focus sur la fenêtre.Dans ton sciript a l'heure actuel si on as pas le focus ça ne fonctionne pas exemple si je suis sur le bureau, est que je dit minimiser gedit,si je suis pas sur la fenêtre alors ça ne fonctionne pas.
donc un exemple qui va faire avancer les choses
"augmenter vidéo" ) wmctrl -a "Lecteur multimédia VLC" && xdotool key "Ctrl+Up" ;;
Ensuite pour gnome j'ai mis la possibilité avec xdotool d'ouvrir le menu , par défaut sous gnome c'est Alt+F1
Voila la pour l'instant.
Dernière modification par n3o51 (Le 01/02/2012, à 11:17)
Welcome to the real world
________________________________
Hors ligne
#29 Le 01/02/2012, à 22:04
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Bon j'ai modifié système.sh :
j'ai un peu tout réorganisé (c'est un bien grand mot) maintenant il est plus propre.
j'ai aussi réduit le temps d'attente (sleep 6 => sleep 2).
j'ai ajouté un script météo qui utilise notify-send ( je crois qu'il est déjà installé sur ubuntu, à voir ? sinon je réutilise pico-svox), mais je n'ai pas encore ajouté de beaux icônes pour aller avec ( Faenza ?).
j'ai aussi rajouté l'accès au menu (mais on ne peut pas naviguer dedans dommage)
tes commandes pour quitte et redémarrer sont maintenant intégrées.
Merci, pour exit => pause après le lancement d'une apps.
Dernière modification par benoitfra (Le 01/02/2012, à 22:18)
#30 Le 02/02/2012, à 19:59
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Bon j'ai tenté de rajouté un moyen pour gérer les fenêtres, mais pas de succès
CHANGER_WINDOW (){
LISTE_W=`wmctrl -l | cut -f2 -d"H"`
yad --form --text="à quelle fenêtre donner le focus \n $LISTE_W" --title="choix de la fenêtre" --timeout=4 --undecorated --no-buttons;
rm $COMMANDE;
$RACINE ;
[ -r $COMMANDE ] && source $COMMANDE ;
for window in $LISTE_W; do
{
case $CMD in
$window ) wmctrl -a $window ;;
esac;
}
done;
}
Cette fonction déterminie le nom de la liste des fenetres gérée, puis les notifie à l'utilisateur.
Enfin, elle acquière le nom de la fenêtrre à laquelle vous voulez donner le focus.
EDIT: Mise à jour
J'ai modifié l'ensemble des scripts. Tout d'abord, j'ai enlevé yad qui n'était pas dans les dépôts officiel et qui en plus entrenait une perte de focus à chaque fois qu'une fenêtre yad apparaissait.
Je l'ai remplacé pas xosd-bin & zenity qui me parait bien mieux. J'ai modifié le script météo, mais je suis en manque d'image et de "type" de temps. J'ai tenté d'intégrer wmctrl pour pouvoir changer de fenêtre, mais ça ne marche pas encore. Je dois aussi le rajouter au moment où on lance une application. Ajout égélement de la recherche sur Internet via google-chrome ( à modifier selon votre navigateur)
Dernière modification par benoitfra (Le 02/02/2012, à 21:45)
#31 Le 03/02/2012, à 13:14
- hells_dark
Re : [Script] reconnaissance vocale avec google
Merci pour ce script !
Je vais m'empresser de bidouiller avec !
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#32 Le 03/02/2012, à 18:50
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Si tu as le temps partage tes modifs avec nous autres (celle qui ne sont pas spécifiques à ton système) je suis sûr que l'on en tirera tous un avantage
Nouvelle version:
Possibilité de changer de fenêtre enfin fonctionnelle
suppression définitive de yad.
J'ai peut-être trouvé une amélioration pour l'enregistrement avec sox:
sox -t alsa default ./recording.flac silence 1 0.1 5% 1 1.0 5%
Ce qui permet de lancer et couper l'enregistrement entre deux période 0.1 s de silence. Ce qui devrait amléliorer je pense la reconnaissance par google et qui ouvre la voie (^_^) à la possibilité de ne plus lancer en boucle l'enregistrement. Le principe serait le suivant on lance la commande d'acquisistion qui ne fait rien si on ne parle pas. En parallèle on lance un script qui se charge de répartir les commandes.
Comment détecter le moment ou l'on peut charger l’information ?
Cela ne me semble pas très difficile il suffit de tester si le fichier voix.flac existe ie tester si vous avez arrêter de parler. Ensuite GOOGLE se chargera du reste et lancera la commande. Une fois achevé on supprime le fichier audio. J’espère que l'explication est claire.
Voilà, ce que devient le script racine.sh:
#!/bin/bash
AFFICHAGE (){
echo "$1" | osd_cat --font='-b&h-lucida-medium-r-normal-*-24-*-*-*-p-*-iso10646-1' --color=green --pos=top --align=right --offset=50 --indent=50
}
sox -t alsa default tmp.flac silence 1 0.1 5% 1 1.0 5% & AFFICHAGE "Acquisition...";
sox tmp.flac -r 16000 fichier.flac ;
TEXTE=`wget -q -U "Mozilla/5.0" --post-file fichier.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium" | sed 's/^.*\[{.*:"\(.*\)",".*$/\1/'` ;
AFFICHAGE "Vous avez dit: $TEXTE" "1" & echo "CMD=$TEXTE" > $HOME/Bureau/commande.txt
# rm fichier.flac
rm tmp.flac
exit
Ça marche et comme ça le script se met en "pause" (il n'enregistre pas) tant que vous ne parlez pas. Dès que vous arrêtez de parler le script se lance comme avant. Et voilà, cela à été plus facile que je ne le pensais. Le script ne se lance plus toutes les 2 secondes pour enregistrer du vide.
Edit: Après quelques tests sur mon pc, cette méthode s'avère trop sensible à la config matérielle, en effet après avoir modifié l'amplification de mon micro google ne parvient plus à comprendre ce que je dis. Ah c'est dommage
Dernière modification par benoitfra (Le 03/02/2012, à 20:52)
#33 Le 03/02/2012, à 20:53
- n3o51
Re : [Script] reconnaissance vocale avec google
salut benoit bon je pense que celui-ci faut l’intégrer dans le système.sh pour gagner un petit peu de temps de traitement comme je l'es fait dans mon fichier , ensuite tu devrait enlever osd_cat qui fait ajouter encore une dépendances xosd-bin.Sympa pour le silence je connaissais pas.
Le mieux je pense serait de ce concentrer sur zenity ou yad et pourquoi pas faire une interface
Dernière modification par n3o51 (Le 03/02/2012, à 20:58)
Welcome to the real world
________________________________
Hors ligne
#34 Le 03/02/2012, à 21:09
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Si j'enlève osd_cat, je n'ai plus rien pour notifier à l'utilisateur qu'il peut parler (notify-osd ne supporte pas le timeout :=bug) ensuite l'ouverture d'une fenêtre yad ou zenity au moment de l'acquisition de la voix comme avant fait perdre le focus à la fenêtre en cours et bloque temporairement l’utilisation du clavier. Comment notifier à l'utilisateur qu'il peut parler ?
Je vais intégrer racine.sh à système.sh mais envois-tu encore CMD dans commande.txt pour les autres scripts ?
Pour l'interface graphique, je ne sais pas du tout comment faire, désolé.
Dernière modification par benoitfra (Le 03/02/2012, à 21:11)
#35 Le 03/02/2012, à 23:38
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Y aurait-il quelqu'un pour prendre mon relais car je n'ai pas les compétences nécéssaires pour faire avancer la chose.
#36 Le 04/02/2012, à 11:36
- hells_dark
Re : [Script] reconnaissance vocale avec google
Malheureusement, je n'ai pas de micro à ma disposition en ce moment, il faut que je m'en procure un.
Je voulais faire des tests en créant mes flac à partir d'espeak, mais google ne reconnait rien au résultat ^^'
Pour ceux qui peuvent tester, vous trouvez la reconnaissance de google bonne ?
Dernière modification par hells_dark (Le 04/02/2012, à 11:39)
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#37 Le 04/02/2012, à 12:23
- hells_dark
Re : [Script] reconnaissance vocale avec google
J'ai peut-être trouvé une amélioration pour l'enregistrement avec sox:
sox -t alsa default ./recording.flac silence 1 0.1 5% 1 1.0 5%
Ce qui permet de lancer et couper l'enregistrement entre deux période 0.1 s de silence.
C'est pas un peu court ?
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#38 Le 04/02/2012, à 13:44
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Bon je suis de retour, avec une nouvelle version plus compacte (11 scripts => 3 scripts), plus rapide et sans doute plus éfficace. J'y ai intégré un système de mise en pause qui redémarre le programme quand vous parler.
En parlant de la mise en pause, celle ci fait justement appel à la ligne que tu as mentionné hells_dark. En effet, la ligne que tu as mentionné permet de lancer un enregistrement (mal reconnu par google chez moi) qui ne prend pas en compte le bruit grâce à "silence".
Il y a sans doute la possibilité d'y ajouter une petite interface, via un icône de notification sur lequel on clique et qui permet de régler certains paramètre. ( je sais que c'est possible avec yad) mais y'a t-il un moyen pas trop compliqué qui permet de faire une interface graphique?
Edit: Je trouve que la reconnaissance vocale de Google marche pas trop mal chez moi avec le micro intégré de mon pc.
Dernière modification par benoitfra (Le 04/02/2012, à 14:56)
#39 Le 04/02/2012, à 14:18
- n3o51
Re : [Script] reconnaissance vocale avec google
Moi je pense qu'une interface avec yad ou glade2script dois se réaliser facilement , j'essaie de regarder ce qu'on peut faire , je sais que hizoka est très bon pour ça je vais essayer de le contacter.
Welcome to the real world
________________________________
Hors ligne
#40 Le 04/02/2012, à 14:19
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Ok merci à toi
J'ai ouvert une page de présentation :
page de présentation de GoogleV2t
Y'aurat-il un moyen d'avoir un beau script météo?
J'ai beau faire des recherches, je ne trouve pas grand chose hormis avec conky. J'aimerai ne pas me servir de conky
Dernière modification par benoitfra (Le 04/02/2012, à 18:15)
#41 Le 04/02/2012, à 19:55
- hells_dark
Re : [Script] reconnaissance vocale avec google
Chez moi, l'envoi du flac à google est assez long… n'y a t-il pas un moyen de réduire sa qualité ?
Cette lenteur réduit pour moi l’intérêt…
Dernière modification par hells_dark (Le 04/02/2012, à 20:14)
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#42 Le 04/02/2012, à 20:11
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
wget -q -U "Mozilla/5.0" --post-file fichier.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium" | sed 's/^.*\[{.*:"\(.*\)",".*$/\1/'`
Je ne sais pas si cela est possible, car Google attend à priori un fichier en .flac en 16KHz. Je vais voir si l'on peut modifier.
EDIT: on peut modifier l’échantillonnage, j'ai testé en 8000Hz et ça marche par contre j'ai pas constaté de différence de vitesse. Je vais voir si l'on peut faire de même avec le format, lequel permettrai d'accélérer le chargement ?
EDit: après quelques tests, il ne semble pas possible de changer le format audio, j'ai testé en wav, ogg et mp3 et il n'y a pas de résultat.
Dernière modification par benoitfra (Le 04/02/2012, à 20:27)
#43 Le 04/02/2012, à 20:23
- hells_dark
Re : [Script] reconnaissance vocale avec google
J'oubliais que j'avais des torrents en cours, c'est pas si long que ça au final
(même si ce serait bien d'améliorer encore)
Dernière modification par hells_dark (Le 04/02/2012, à 20:23)
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#44 Le 04/02/2012, à 20:28
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Tu utilise quelle version ? la dernière
#45 Le 04/02/2012, à 20:50
- n3o51
Re : [Script] reconnaissance vocale avec google
La derniere version semble plus rapide , par contre tu n'as pas mis le système de pause s'il on parle pas ? c'est bien ça ?
ligne 153 googlevoice y a un } en trop erreur de syntaxe.Ensuite parler pour relancer il ne se relance pas , l'icone ne se met plus donc ça va je le lance dans un terminal et je fait ctrl +c et il se relance.
Dernière modification par n3o51 (Le 04/02/2012, à 20:56)
Welcome to the real world
________________________________
Hors ligne
#46 Le 04/02/2012, à 20:55
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
Je vais essayer de l'intégrer. Il faut déjà que je sache ce que $TEXTE retourne quand on ne parle pas. Je regarde ça...
C'est bon, c'est intégré.
Dernière modification par benoitfra (Le 04/02/2012, à 20:57)
#47 Le 04/02/2012, à 20:58
- n3o51
Re : [Script] reconnaissance vocale avec google
J'ai editez mon premier message je cite :
ligne 153 googlevoice y a un } en trop erreur de syntaxe.Ensuite parler pour relancer il ne se relance pas , l’icône ne se met plus donc ça va je le lance dans un terminal et je fait ctrl +c et il se relance.
ensuite dans la version que j'utilise j'ai modifier "CMD=\"$TEXTE\"" comme cela car sinon pas possible de donner en commande des mots séparer donc chez moi ça retourne CMD="ma commande séparé"
Dans cette nouvelle version tu ne passe plus par un fichier commande ?
aussi
WRITE (){
rec -d tmp.flac & zenity --info --text="Stop" ;
killall rec;
sox tmp.flac -r 16000 fichier.flac;
Text=`wget -q -U "Mozilla/5.0" --post-file fichier.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium" | sed 's/^.*\[{.*:"\(.*\)",".*$/\1/'`
sleep 5 ;
echo "$Text" >> votre_texte.txt
rm fichier.flac
rm tmp.flac
}
cette fonction pour ce qui ne connaisse pas ne peut pas fonctionner ou alors il faut créer le fichier lors de l'install ou dire au gens de le créer
Dernière modification par n3o51 (Le 04/02/2012, à 21:05)
Welcome to the real world
________________________________
Hors ligne
#48 Le 04/02/2012, à 21:45
- Compte supprimé
Re : [Script] reconnaissance vocale avec google
J'ai ajouté la mise en pause, si on ne parle pas pendant un tour.
J'ai ajouté la possibilité de lire le presse papier
il y a aussi la possibilité de taper un texte dans une barre de recherche (il faut quand même mettre le curseur dedans)
L'erreur de syntaxe à été corrigée. Néanmoins, je n'ai pas encore intégré ton astuce \"$CMD\" car quand je l'ai mis ça ma fait tourner le script en boucle et je ne pouvais plus l’arrêter. (à cause des guillements, le script ne reconnaissait plus aucune commande).
De plus , je peux rentrer des commandes contenant plusieurs mots ex=éditeur de texte.
Ça marche nikel chez moi.
http://dl.dropbox.com/u/25779406/GoogleV2t.tar.gz
Chez moi WRITE fonctionne et créée le fichier votre_texte.txt dans le dossier contenant le script pour peu que ce dossier ne soit pas ouvert
Exact, afin de gagner du temps, il n'y a plus besoin de fichier de commande. Tout est géré par un seul script google2voice.sh, un deuxième est nécessaire pour créer la boucle de lancement. Un petit réglage permet de quitter la boucle.
Dernière modification par benoitfra (Le 04/02/2012, à 21:57)
#49 Le 04/02/2012, à 22:02
- hells_dark
Re : [Script] reconnaissance vocale avec google
Ce qui serait top, c'est que l'enregistrement s’arrête quand on ne dit rien pendant 2s par exemple.
Je ne sais pas si c'est possible.
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#50 Le 04/02/2012, à 22:33
- n3o51
Re : [Script] reconnaissance vocale avec google
Tiens benoit fonction recherche sur firefox je dit recherche firefox sans lance cette fonction qui dit que voulez vous recherchez je dit recette pate a crepe c'etait la chandeleur et il fait tout seul bon ca verfie pas encore que firefox est lancé mais pas compliqué a faire donc pour en revenir il fait ctrl +t pour un nouvelle onglets ensuite ctrl+k pour allez dans le champs recherche et il met le texte que j'ai donner donc rectte pate a crepe et entrer et voila j'ai plus qu'as regarder ce que l'ami google propose
search (){
rec -d tmp.flac & yad --form --text="Que voulez-vous rechercher ?" --timeout=5 --undecorated --no-buttons --geometry="60x10+990+12" --text-align=left
killall rec
sox tmp.flac -r 16000 fichier.flac
TEXTE=`wget -q -U "Mozilla/5.0" --post-file fichier.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium" | sed 's/^.*\[{.*:"\(.*\)",".*$/\1/'`
yad --form --text="Vous souhaitez rechercher : $TEXTE" --timeout=2 --undecorated --no-buttons --geometry="60x10+990+12" --text-align=left
echo "CMD=\"$TEXTE\"" > $HOME/.gnome2/nautilus-scripts/GoogleV2T/search.txt
wmctrl -a "Mozilla Firefox"
WID=`xdotool search --title "Mozilla Firefox" | head -1`&&
xdotool windowfocus $WID && xdotool key ctrl+t
xdotool key ctrl+k &&
xdotool type "$TEXTE" &&
xdotool key "Return" &&
rm fichier.flac
rm tmp.flac
}
Pour la commande c'est dans ta premiere version pour remplacer le echo "CMD=$texte" > cheminvers/commande.txt moi je fait "CMD=\"$TEXTE\"" > cheminvers/comande.txt
pour cela il le créer pas je ne pense pas enleve le tu verras normalement les >> envoie le echo a la fin donc
echo "moi" > fichier
echo "moi" >> fichier
cat fichier
moi
moi
ensuite fait echo "rien" > fichier
ensuite cat fichier
il contiendra plus que rien
Dernière modification par n3o51 (Le 04/02/2012, à 22:39)
Welcome to the real world
________________________________
Hors ligne