Forum dédié aux karot:z, nabaztag:tag, mir:ror, dal:dal...


 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partager | 
 

 NaBBoT : Transformez votre lapin en ChatBot ...

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3, 4  Suivant
AuteurMessage
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 10:39

Après plusieurs semaines de travail, je me décide enfin à poster une petite «surprise». Enfin plutôt 2 surprises …

Le chemin est un peu long mais vaut la peine d’être suivi.

Alors commençons.


Remarques préliminaires :

a/ Cette «surprise» n’est pas multi-plateforme. Il vous faut une machine tournant avec un OS signé Bill.

b/ Il faut de la puissance pour faire de la reconnaissance vocale. Pour une fois votre CPU va sortir de sa sieste.

c/ Il est nécessaire de posséder un serveur local (1 PC qui tourne 24h/24 7J/7)


I/ OpenNab

En premier lieu, il faut pouvoir faire tourner OpenNab sur un serveur http hébergé sur une machine en local (cela ne fonctionne pas si OpenNab est installé chez un hébergeur)

Il faut donc installer un serveur http sur une machine locale. Pour cela, vous pouvez installer Wamp (qui encapsule un serveur apache et une base MySql) par exemple.

Ensuite, il vous faut installer OpenNab dans le répertoire www de ce serveur. Je vous renvoie aux instructions d’installation d’OpenNab.

Dans le fichier opennab.ini d’OpenNab, vérifier que les plugins «record_audio» et «simple_play» sont activés.


ATTENTION: Il est inutile d’aller plus loin tant qu’OpenNab ne «tourne» pas correctement en local sur votre machine avec votre lapin.



II/ SAPI

Vous aurez aussi besoin de SAPI sur votre machine avec une voix française (comme la voix gratuite virginie_dri40 de scansoft).
http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4French.zip

Installez donc cette voix et SAPI.

Nota : SAPI est présent en standard sur les OS de Bill depuis w2k je crois.
Nota 2 : Sous Vista je crois qu'ils ont tout changé et je ne peux pas garantir que cela fonctionnera (mais je pense que oui because compatibilité descendante).



III/ NaBBoT et Sphinx4nabs

Téléchargez le fichier zip situé à l’adresse suivante: http://human.enemy.free.fr (attention le zip est très gros)

Extraire cette archive dans le répertoire «vl\plugins» d’opennab. Vous devriez avoir ensuite qq chose du genre:

Vl\plugins\Sphinx4nabs\+ des fichiers
Vl\plugins\Sphinx4nabs\lib etc
Vl\plugins\Sphinx4nabs\bin etc
Etc …

Editez maintenant le fichier «message_recu.bat»

Code:
runurl.exe http://127.0.0.1:80/vl/api.php?sn=votreserialnumber&play=1


Remplacez votreserialnumber par votreserialnumber (lol)

Pour que cela puisse fonctionner il vous faut encore un runtime java comme Java 2 SDK, Standard Edition 5.0 ou plus. Cf la page de Sphinx pour + d'info http://cmusphinx.sourceforge.net/sphinx4/

Voilà, on y est …

Si vous avez survécu à tout ce bric à brac vous allez pouvoir utiliser 2 programmes avec votre Lapin : Sphinx4nabs et NaBBoT.

Surprise n°1 : Principe et présentation de Sphinx4nabs

Sphinx4nabs «surveille» en permanence le répertoire «\vl\plugins\files_recordaudio». Dès qu’un nouveau fichier audio arrive du lapin (à chaque fois que l’on appui sur sa tête et qu’on lui parle) on commence la séquence suivante :

Conversion du format audio natif du lapin vers du PCM 8kHz 16bits et copie du résultat sous le nom message8k.wav dans le répertoire «\vl\plugins\Sphinx4Nabs\bin»

Conversion du format audio natif du lapin vers du PCM 16kHz 16bits et copie du résultat sous le nom message.wav dans le répertoire «\vl\plugins\Sphinx4Nabs\bin»

Remarque : Je fais les 2 conversions car je ne sais pas encore avec certitude quel est la format qui donne les meilleurs résulats ensuite.

Une fois la conversion effectuée, Sphinx4nabs lance le fichier .bat «sphinx4nabs.bat»

Ce fichier .bat lance une reconnaissance vocale sur le fichier audio message8k.wav et place le résultat dans le fichier resultat.txt

Et pour finir dès qu’un nouveau fichier résultat arrive, il lance un dernier .bat (\vl\plugins\Sphinx4Nabs\message_recu.bat) qui via le plugin simple_play demande au lapin de jouer votre fichier audio numéro 1.

Cà c’est le «standard», tous ceux qui ont compris le principe sauront apporter les modifications qu’ils désirent.


Conclusion : Ce programme vous permet de construire de nouvelles commandes vocales pour votre lapin.

Remarque : Il y a encore beaucoup d’améliorations possibles mais j’en parlerai dans un autre post .


Surprise n°2: Principe et présentation de NaBBoT

NaBBoT reprend les mêmes principes de base que Sphinx4nabs mais rajoute 2 nouvelles fonctionnalités : Un bot et du TTS (Text To Speech)


On reprend le même fonctionnement que Sphinx4nabs jusqu’à l’arrivée du fichier resultat.txt.

Ensuite, NaBBoT lit le fichier résultat. Le bot construit une réponse (ne pas oublier de sélectionner la voix française) en fonction de cette entrée et sauvegarde sa réponse dans le fichier : «vl\plugins\files_simpleplay\0\0\0\0\1.mp3».

Nota : En fait je triche, le fichier 1.mp3 c'est du PCM 1.wav que je renomme en 1.mp3. J'ai découvert par hasard que notre lapin savait lire du PCM (c'est à dire non compressé) et pas seulement du mp3.


Pour finir, NaBBoT lance message_recu.bat et le lapin vous lit la réponse.

D’autres explications suivront mais les «débrouillards» devraient pouvoir commencer à s’amuser.



Complément d'info 1:

Le fichier Zip est très gros (221 Mo) car il inclut les modèles acoustiques de LIUM.

Je ne suis pas sur que l'hébergement actuel (un site perso chez free créer rapidement) soit très adapté pour les downloads.

Quelqu'un aurait-il une idée où je pourrai le mettre ?


Complément d'info 2:

Le langage aiml implémenté dans NaBBoT est fondé sur le "moteur" aiml de PASCALice. J'ai seulement commencé à rajouter les formats dates/heures de l'api de pandorabot et un tag <exécute> qui permet de lancer des applications.

J'envisage également de créer quelques tag supplémentaires pour gérer les oreilles et les Leds de nos lapins.

Mes templates aiml ne sont pas terribles (c'est du vite fait pour obtenir un résultat) mais libre à vous de les perfectionner...

Complément d'info 3 :

Avec un lapin qui ping Opennab toutes les secondes et un C2D6600 aidé de 2Go de RAM pour le décodage Sphinx, j'obtiens des réponses de mon lapin environ 20 à 30 secondes après le relachement du bouton sur sa tête.

(C'est aussi fonction du dictionnaire et de la grammaire)

Complément d'info 4 :

En terme de qualité de reconnaissance, il faut trouver la "bonne façon de parler" : assez fort et prêt du micro et paradoxalement assez vite.

Le ton toi être assez monocorde et avec peu d'espaces entre les mots.

Nota : dans une future version de NaBBoT, j'augmenterai le volume sonore du message lors de la conversion en PCM.

Nota 2 : Avec ma voix j'ai environ 2/3 des messages "simples" correctement reconnus.


Complément d'info 5 :

Comme pour le moment je n'ai pas fait de plugin "tampon" entre OpenNab et le serveur de violet. Celui-ci continue de recevoir les messages et envoie (après NaBBot) des messages nous informant de son incompréhension.



Complément d'info 6 :

avec la grammaire et le dictionnaire actuels (vous pouvez y apporter des modifications), le lapin peut répondre aux commandes suivantes :

qui es-tu ?
quel age as-tu ?
que sais-tu faire ?
donne moi l'heure
donne moi la date
donne moi la météo
bonjour
salut
coucou
a bientôt
au revoir


Pour finir ce post, je remercie les créateurs des softs suivants :

* Opennab
* Sphinx 4
* PASCALice

Et l’Université du Mans (LIUM) pour les modèles acoustiques en Français.

BR,
Human Enemy


Dernière édition par le Ven 5 Oct 2007 - 21:39, édité 23 fois
Revenir en haut Aller en bas
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 10:47

ToDo liste

a/ Créer un vrai plugin OpenNab qui en parallèle de record_audio et de simple_play s'occuperait de récupérer les messages audio du lapin et diffuserait les réponses du bot. Il neutraliserait également l'envoi du message audio chez violet en cas de reconnaissance correcte du bot.(fait). Il faudrait également neutraliser les mouvements d'oreilles après chaque réponse (si possible ?) car cela ralentit "la discussion".


b/ Créer des balises aiml spéciales Nabs <rightear>, <rightear>, <noze >et <serviceid>. On placerait la valeur souhaitée dans la variable "value" avant d'exécuter la balise. Ou alors plus simple, créer une balise <url> qui exécuterait l'url préalablement sauvegardée dans la variable "value". Cette dernière solution à l'avantage de la flexibilité et permettrait de contrôler toutes les api d'OpenNab via le bot.


c/ La reconnaissance souffrira toujours du fait que les modèles acoustiques utilisables (french_f0 ou french_f2 de LIUM) sont fondés sur des sources audio enregistrées à des fréquences différentes de nos lapins. Les petits défauts liés à la compression adpcm des enregistrements audio sont également sources d'erreurs avec ces modèles. Une piste d'amélioration possible serait donc de créer un corpus de phrases (une liste de phrases), de les enregistrer avec nos lapins et de construire un modèle acoustique spécial Nabs. Mais pour cela, il faudrait au moins 20 volontaires masculins et féminins. Voxforge propose l'hébergement de tels corpus. Mais cela représente un gros gros travail !!!


d/ Ajouter une amplification du volume sonore pendant la conversion en PCM (création de message.wav) du message original. Cela permettra peut-être d'améliorer la reconnaissance.


e/ Aller plus loin avec sphinx et en particulier faire des essais avec le LexTreeLinguist.


Dernière édition par le Mar 25 Sep 2007 - 17:57, édité 9 fois
Revenir en haut Aller en bas
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:12

Historique des versions :

version 1.0beta du 24 septembre 2007 test sur 2 machines avec 2 os.

Si j'ai des retours de bug, je m'engage à sortir une version alpha.



Problèmes connus :

a/ Sphinx 4 ne gère pas les accents dans les dictionnaires. Il faut donc supprimer les à, è, é, î et autres ù. C'est dommage pour notre belle langue Française mais c'est comme çà. Pardon, comme ca.

b/ J'ai des erreurs de mémoire avec la machine virtuelle java dès que j'utilise des grammaires complexes. Je ne sais pas si c'est une limitation de Sphinx ou une erreur de ma part ?

c/ A force d'utilisation intensive du bouton il semble qu'il montre des signes de faiblesses. J'ai pas de chance ou qq'un à les mêmes symptômes ?


Dernière édition par le Mer 26 Sep 2007 - 7:36, édité 8 fois
Revenir en haut Aller en bas
Phabbrrysse
Nabazteur Voyageur
Nabazteur Voyageur


Age: 25
Localisation: Sassenage
Nom du Nabaztag: PhormiBBrrysse et Pharramyneu (V2)
Nbr de messages: 14499
Points: 7852

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:20

Bon boulot!! tout ca est a essayer !! merci

_____________________________




Connexion du lapin difficile : ICI -- PAS D'AIDE PAR MP NI PAR MAIL
Revenir en haut Aller en bas
http://phabbrrysse.fr/
aerosmiss
Yellow Subadmin


Age: 44
Localisation: Paris
Nom du Nabaztag: Zvi (V1) et Zeev (V2)
Nbr de messages: 10086
Points: 2351

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:31

Je ne suis pas certaine d'avoir tout compris, mais je suis toujours sidérés et très admirative devant le travail accompli par nos nabaznautes... Bravo!!!!!!!

Pour Free, on peut avoir des hébergements d'1 Go maintenant par adresse Pop il me semble. Pas de raison pour qu'il y ait un problème quelconque non?
Revenir en haut Aller en bas
http://aerosmiss.free.fr
Phabbrrysse
Nabazteur Voyageur
Nabazteur Voyageur


Age: 25
Localisation: Sassenage
Nom du Nabaztag: PhormiBBrrysse et Pharramyneu (V2)
Nbr de messages: 14499
Points: 7852

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:35

J'ai tout relu (oui du premier coup pas tout compris winknabz)

Si j'ai bien compris il faut que le pc tourne en permanence non ? sinon opennab ne tourne pas et pas de liaison pour le lapin non ?

_____________________________




Connexion du lapin difficile : ICI -- PAS D'AIDE PAR MP NI PAR MAIL
Revenir en haut Aller en bas
http://phabbrrysse.fr/
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:45

Citation:
Si j'ai bien compris il faut que le pc tourne en permanence non ? sinon opennab ne tourne pas et pas de liaison pour le lapin non ?


Tu as bien compris, si le PC est éteint pas d'OpenNab et pas de NaBBoT.

Les 2 doivent être lancés en tâche de fond sur 1 PC.

OpenNab peut être installé sur un serveur distant (= chez un hébergeur de site perso) puisque la seule condition est que ce serveur gère le php (avec CURL cf installation d'OpenNab).

Par contre NaBBoT est un exécutable windows. Donc, incompatible avec un hébergement distant.

La seule solution serait de garder le même principe de fonctionnement mais de convertir NaBBoT en java pour en faire un "Servelet" qui pourrait être lui utilisé chez "certains" hébergeurs.

Il y a une analogie technologique entre NaBBoT et les freeplayer pour ceux qui connaissent.
Revenir en haut Aller en bas
jbx028
Gold Nabz
Gold Nabz


Localisation: Dans le sept huit
Nom du Nabaztag: Rosie (v1) et NoFutur Tag/tag (v2)
Nbr de messages: 676
Points: 2449

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 11:55

ou bien utiliser une dedibox (http://www.dedibox.fr)
Revenir en haut Aller en bas
http://twitter.com/jbx028
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 12:07

Citation:
ou bien utiliser une dedibox (http://www.dedibox.fr)


Oui, car on peut je crois demander "windows server" sur les dedibox mais c'est payant.

J'ai crée NaBBoT parce que j'ai un "serveur domotique" à la maison qui tourne 24h/24 7J/7.

J'ai d'ailleurs acheté Noobie dans le seul but de le faire tourner en local lorsque j'ai eu connaissance de l'existence d'OpenNab.

A terme, Noobie, sera ma principale interface domotique et me lira les mails, me donnera les températures des chambres, fera des calculs, ira chercher sur internet des informations etc ...

Les Tag Tag sont pour moi une interface dans un projet domotique.

Avec un peu de PHP, il pourra allez chercher la météo Yahoo ou nous lister les sorties ciné.

Encore des projets et du pain sur la planche...


Dernière édition par le Ven 28 Sep 2007 - 19:48, édité 3 fois
Revenir en haut Aller en bas
jbx028
Gold Nabz
Gold Nabz


Localisation: Dans le sept huit
Nom du Nabaztag: Rosie (v1) et NoFutur Tag/tag (v2)
Nbr de messages: 676
Points: 2449

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 12:15

Citation:
Les Tag Tag ne sont pour moi qu'une interface dans un projet domotique.
(il sera d'ailleurs certainement remplacé un jour par des micros et des enceintes sans fils)


Là tu me choques...comparer Nabaztag à une vulgaire paire d'enceintes me parait inconcevable.

Je pense que l'apparence du Nabz est pour beaucoup dans son succès.
Revenir en haut Aller en bas
http://twitter.com/jbx028
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 12:25

Citation:
Je pense que l'apparence du Nabz est pour beaucoup dans son succès.


Une jolie paire d'enceintes si tu veux

Mais chacun trouve dans les Nabs ce qu'il cherche ...

De l'esthétique, de la fantaisie, du fun ou de la technologie.

Moi j'y touve de la technologie (haut parleur et micro sur IP en wifi)





... esthétique et ludique.

Mais comme j'ai peur de te choquer je tiens à préciser que je l'aimmmmme mon lapin.

nabzheart

PS : J'ai éditer des posts pour ne pas les multiplier inutilement.


Dernière édition par le Lun 24 Sep 2007 - 16:18, édité 1 fois
Revenir en haut Aller en bas
jbx028
Gold Nabz
Gold Nabz


Localisation: Dans le sept huit
Nom du Nabaztag: Rosie (v1) et NoFutur Tag/tag (v2)
Nbr de messages: 676
Points: 2449

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 13:11

J'ai qq questions avant de me lancer:

A quoi peut bien servir : «http://127.0.0.1:80/vl/api.php?sn= votreserialnumber &pinginterval=1»
alors que tu as fait la modif dans le code en dur.

La reco vocale est-elle satifaisante avec des phrases courtes, ou bien faut il seulement employer des mots ?
Revenir en haut Aller en bas
http://twitter.com/jbx028
oaz
Silver Nabz
Silver Nabz


Localisation: Haute-Garonne
Nom du Nabaztag: oaz (v2)
Nbr de messages: 352
Points: 1920

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 13:24

jbx028 a écrit:
A quoi peut bien servir : «http://127.0.0.1:80/vl/api.php?sn= votreserialnumber &pinginterval=1»
alors que tu as fait la modif dans le code en dur.


Ca je peux répondre.

L'API du plugin 'pinginterval' protège opennab d'un ping trop court qui pourrait lui être néfaste (on n'est jamais trop prudent...)
En modifiant le plugin, human enemy a "débridé" cette fonctionnalité pour autoriser la saisie de délais de ping inférieur à 10 secondes (il autorise jusqu'à 1 seconde en l'occurrence)

L'appel à «http://127.0.0.1:80/vl/api.php?sn= votreserialnumber &pinginterval=1» permet de stocker effectivement le délai de ping utilisé pour le lapin identifié par le serial number. La valeur "1" passée ici en paramètre est stockée dans le terrier (burrow) du lapin correspondant.


Je profite de ce message pour saluer le travail réalisé et me réjouir publiquement de l'utilité trouvée à OpenNab !
Revenir en haut Aller en bas
http://barrejadis.azeau.com/
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 13:39

ce qui est en dur dans un fichier bat c'est
runurl.exe http://127.0.0.1:80/vl/api.php?sn=votreserialnumber&play=1

Qui sert à envoyer la réponse du bot vers le lapin en utilisant le plugin simple_play

http://127.0.0.1:80/vl/api.php?sn= votreserialnumber &pinginterval=1
sert à accélérer l'exécution de la commande précédente.

Question reconnaissance, on peut utiliser sphinx de plusieurs manières. Celle qui est livrée dans le zip utilise une grammaire et un dictionnaire.

Avec ce qui est dans le zip j'obtiens des résultats très satisfaisants avec :

qui es-tu ?
quel age as-tu ?
que sais-tu faire ?
donne moi l'heure
donne moi la date
donne moi la météo
bonjour
salut
coucou
a bientôt
au revoir

Le nom du bot, son age le nom de son "créateur" (botmaster en Anglais) sont à changer dans le startup.xml

Par contre avec un mot simple comme reset (qui reset le bot) le résultat n'est pas bon du tout (et je ne sais pas pourquoi).

Les voix sont toutes différentes, les résulats seront donc différents pour chacun même si sphinx est un système multi-locuteurs.

Ce que vous pouvez changer c'est :

la grammaire
le dictionnaire
les fichiers aiml
le fichier startup.xml
le fichier de configuration de sphinx (qqchose.xml)

cela fait donc beaucoup de configurations possibles. Pour l'instant je suis en phase de recherche sur cet aspect de reconnaissance.


Dernière édition par le Lun 24 Sep 2007 - 17:49, édité 5 fois
Revenir en haut Aller en bas
human enemy
Lapin nain
Lapin nain


Localisation: strasbourg
Nom du Nabaztag: noobie
Nbr de messages: 38
Points: 1639

MessageSujet: Re: NaBBoT : Transformez votre lapin en ChatBot ...   Lun 24 Sep 2007 - 13:40

Citation:
Je profite de ce message pour saluer le travail réalisé et me réjouir publiquement de l'utilité trouvée à OpenNab !


Puisque l'heure est aux remerciements.

Un GRAND MERCI à toi oaz pour OpenNab SmileNabz


Dernière édition par le Lun 24 Sep 2007 - 21:27, édité 3 fois
Revenir en haut Aller en bas
 

NaBBoT : Transformez votre lapin en ChatBot ...

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 4Aller à la page : 1, 2, 3, 4  Suivant

 Sujets similaires

-
» Gros lapin
» Votre 1er sujet
» Votre 1er sujet
» Votre 1er sujet
» Faite ici une présentation de votre personnage IG

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum dédié aux karot:z, nabaztag:tag, mir:ror, dal:dal... :: nabaztag - nabaztag:tag - karotz :: L'univers de Nabaztag :: Archives :: API-