ELECINF344/381

Partie interactive du site pédagogique ELECINF344/ELECINF381 de Télécom ParisTech (occurrence 2011).

Catégories

[CASPER] Today’s news

We progressed in different fields today.

Alain designed a small extension PCB for the beagleboard. This board will include the necessary elements for audio amplification in and out, and for level shifting between the beagleboard’s output and the motors’ input.

At the same time, we worked with Thomas to build a first tracking system demo, by placing the webcam on top of casper’s body, connecting it to the beagleboard and then connecting the serial link to drive the motors. This demo gave some first results tonight, and will be kept under improvement.

Finally, we managed to create a custom language model and dictionary, which combined with the pocketsphinx engine’s data now allow the beagleboard to understand french vocal commands.

[Casper] Audio in/out on the beagleboard, and drivers

Audio in/out

As I said in a previous post, we are now able to synthesize speech from a text input, and play the result directly on the audio output jack using a home-made interface between the synthesis engine and alsa.

We had also to port our speech recognition hello-world on the beagleboard. We first compiled the CMU Pocketsphinx library for the board, that is to say for an arm target, and then the hello-world program.

The program successfully recognized commands we recorded and played on the laptop, while having the beagleboard’s audio input connected to the laptop’s headset output by an appropriate cable.

We now have to interface electronically our microphones to the beagleboard’s audio input.

 

Drivers

Apart from the progress in the audio, we also managed to compile a linux kernel module hello world on the board, despite the current custom kernel’s lack of certain header files.
The helloworld ran properly, and we were able to write a string to it, and read it back.

The next step will be to start developing our custom linux device driver, responsible for casper’s mechanical control.

[CASPER] Reconnaissance vocale et synthèse

Bonjour à tous.

Comme vous le savez déjà pour la plupart, nous avons montré Mercredi que nous étions désormais capables d’effectuer une reconnaissance vocale performante en Anglais, en utilisant la librairie CMU Pocketsphinx.

Cette librairie permet la reconnaissance de phrases complètes, ce qui permet de bénéficier d’une bonne qualité de détection en prenant mieux en compte la nature du langage. Afin d’améliorer la détection des commandes, nous avons généré à partir des outils fournis avec pocketsphinx un dictionnaire et un modèle de langage qui ne contiennent que les mots dont nous avons besoin.

Nous souhaiterions générer ce type de dictionnaire/modèle de langage pour le Français, ce qui s’avère plus compliqué étant donné qu’il n’existe pas encore d’outils réalisant ce travail.

 

En ce qui concerne la synthèse vocale, notre choix s’est porté sur l’excellente librairie SVOX Pico, qui fait déjà ses preuves sur les téléphones Android (avis aux amateurs voulant l’essayer).

La voix est, en comparaison avec d’autres solutions libres, naturelle et fluide. Cette bibliothèque supporte l’anglais (US et GB), l’allemand, le français, l’espagnol et l’italien. Nous avons à présent un Hello world fonctionnel qui synthétise la voix correspondant à un texte (stocké en dur dans le code pour le moment) et qui envoie les échantillons directement à pulseaudio pour une lecture sur haut parleur.

Cette bibliothèque nous laisse entrevoir la possibilité de lire des messages dans les 5 langues précédemment citées, ce qui pourrait donner une valeur ajoutée intéressante au projet.

 

Il nous reste à porter tous ces programmes sur la beagleboard et mesurer leurs performances respectives, en terme d’occupation mémoire et de temps de calcul.

[CASPER] Premiers contacts avec PocketSphinx et OpenCV

Aujourd’hui nous avons poursuivi l’exploration des bibliothèques de traitement vidéo et audio.

Partie Audio : La bibliothèque que nous utilisons s’appelle PocketSphinx. Nous sommes aujourd’hui capable de reconnaître des mots ou des phrases en anglais et de les associer à des commandes (appui sur une touche clavier ou ouverture d’un fichier par exemple). La prochaine étape est de faire fonctionner un synthétiseur vocal.

Partie Vidéo : La bibliothèque que nous utilisons s’appelle OpenCV. Nous avons écrit un programme qui récupère un flux vidéo de la webcam et détecte dans chaque frame la présence d’un visage ou non. Si il en trouve un, il l’encadre. On peut observer la détection dans une fenêtre qui affiche les frames au fur et à mesure de leur traitement. La prochaine étape est d’implémenter l’apprentissage et la reconnaissance de visages.

Enfin, nous avons préparé la soutenance intermédiaire de demain.