Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de possibilités de programmation. Avec le pcDuino, vous pouvez programmer votre ordinateur pour effectuer des tâches variées, notamment la capture d’images à partir d’une webcam à la voix et la visualisation des images capturées à l’aide d’une LED. Dans cet article, nous allons vous montrer comment programmer le pcDuino pour capturer une image à la voix et la visualiser à l’aide d’une LED.
Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) avec LED de visualisation !
Utilisant plusieurs des fonctions multimédia, système et E/S simultanément, ce code est une belle synthèse des possibilités de la librairie Pyduino.
Ce que l’on va faire ici
- Dans ce code, je vous montre comment déclencher à la voix la capture d’une image webcam avec la librairie Pyduino, une Led de visualisation du moment d’enregistrement étant également utilisée.
- Une reconnaissance vocale avec Pyduino se fait en 2 étapes :
- tout d’abord enregistrement d’un fichier audio avec le fonction recordSound() pendant la durée voulue : 3 secondes suffisent.
- puis analyse vocale du fichier par envoi du fichier son vers le serveur de reconnaissance vocale avec la fonction analyzeVoice() : la fonction renvoie la chaîne reconnue !
- Le serveur « Google Voice » utilisé a un taux de reconnaissance très bon de l’ordre de 90% avec des voix différentes et sans paramétrages préalable ! La réponse du serveur est également rapide.
- Pour plus de détails sur la reconnaissance vocale, voir l’instruction Pyduino analyzeVoice()
- Pour plus de détails sur la capture d’image, voir l’instruction Pyduino captureImage()
Pré-requis
- un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
- Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
- ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
- les dépendances de la librairie pyDuino Multimédia installées : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
Schéma fonctionnel
- Ici, l’entrée audio permet la capture du son et son analyse vocale par connexion au serveur distant. D’autre part, la webcam est utilisée pour capturer une image et l’enregistrer dans un fichier. une LED de visualisation est également utilisée :
Matériel nécessaire
Système
- Le pcDuino
- Une entrée audio opérationnelle :
- le micro intégré d’une webcam (le plus simple)
- une carte audio USB avec entrée audio et un micro
- Une webcam compatible ( Logitech C170, C270, etc…)
Une simple webcam avec micro suffit pour disposer à la fois de la capture son et de la capture image.
E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- 1 x LED verte 5mm,

- 1 x résistance 1/4w de 270 Ohms environ,

Instructions de montage
- Connecter sur la broche 0 (configurée en sortie) une LED et sa résistance (270 Ohms) en série connectée au 0V
- Connecter la webcam sur un port USB
- Connecter également le micro en entrée si besoin (le plus simple étant une webcam avec micro)
- On suppose également que le pcDuino est connecté au réseau local avec accès internet disponible.
Le montage à réaliser
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juillet 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# Capturer une image par commande vocale avec LED visualisation
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python
# entete declarative
noLoop=True
ledTemoin=0 # LED témoin ok pour parler
filepathVoice=« »
filenamVoice=« »
filepathAudio=« »
filepathImage=« »
compt=0
#— setup —
def setup():
pinMode(ledTemoin, OUTPUT) # broche en sortie
digitalWrite(ledTemoin, LOW) # eteint LED
global filepathImage, filepathAudio, filepathVoice, filenameVoice
# exemples de sons : wget -4 http://www.mon-club-elec.fr/mes_downloads/pyduino_sons.tar.gz
filepathAudio=homePath()+sourcesPath(AUDIO)+« photo/ »
print filepathAudio
filepathImage=homePath()+dataPath(IMAGE)
print filepathImage
filepathVoice=homePath()+dataPath(AUDIO)
filenameVoice=« test.wav »
print (filepathVoice+filenameVoice)
# initialisation webcam
initWebcam(0,640,480) # la resolution doit etre supportee par la webcam !
loop() # premier appel loop()
# — fin setup —
# — loop —
def loop():
global filepathVoice, filenameVoice, filepathAudio, filepathImage, compt
print (« ——————————–« )
print(« ********* Capturer une image par commande vocale ********* » )
print (« ===> Dites \ »photo\ » quand vous etes pret ! « )
print (« > Enregistrement du fichier voix (2 sec.) … »)
digitalWrite(ledTemoin,HIGH) # OK parler
recordSound(filepathVoice+filenameVoice,2) # enregistre son fichier voulu et duree voulue en secondes
digitalWrite(ledTemoin,LOW) # Stop parler
#playSound(filepathAudio+filename)
chaine=analyzeVoice(filepathVoice+filenameVoice) # reconnaissance vocale
if chaine==« »:
#speak(« Vous n’avez rien dit. »)
print(« Vous n’avez rien dit. »)
else:
#speak(« Vous avez dit » + chaine)
print(« Vous avez dit « + chaine)
# analyse chaine
chaine=chaine.lower() # met en minuscule
if « photo » in chaine:
playSound(filepathAudio+« camera-click-1.wav ») # joue le son
closeImage() # ferme visionneur image precedente
# capture image
filename=« photo »+str(compt)+« .jpg »
print filepathImage+filename
captureImage(filepathImage+filename) # charge une image dans le buffer a partir webcam
compt=compt+1
#addTextOnImage(today(« / »)+ »@ »+nowtime(« : »), 10,height()-30, green) # ajoute texte sur image
#addTextOnImage(nowdatetime(), 10,height()-20, yellow,0.75) # ajoute texte sur image
saveImage(filepathImage+filename) # enregistre l’image
delay(500)
showImage(filepathImage+filename) # affiche l’image
exit(0) # sort de l’exécution
else:
print(« Chaine non valide »)
timer(2000, loop) # relance timer – la fonction loop s’auto-appelle
# — fin loop —
#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
setup() # appelle la fonction main
while not noLoop: loop() # appelle fonction loop sans fin
Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Voice/AnalyzeVoiceCaptureImageLed.py
Utilisation
- Réaliser le montage et connecter le micro (le plus simple = une webcam avec micro-intégré)
- Vérifier les niveaux de son au préalable avec Audacity
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal doit apparaître :
- Juste après le message vous y invitant et dès que la LED s’allume, parlez ! (vous avez 2 secondes)
- la chaîne correspondante s’affiche ensuite
- si la chaine est reconnue, une image est capturée et s’affiche.

Discussion technique
- Important de bien régler le niveau sonore en entrée et de bien parler au moment de l’enregistrement..
Articles similaires:
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) !
- Programmer le pcDuino : Voix : Tester la reconnaissance vocale (en mode connecté) !
- Programmer le pcDuino : Voix : Lancer une application système à la voix (en mode connecté) !
- Programmer le pcDuino : Image : L’appui sur un BP déclenche la capture d’une image webcam avec bruitage (« appareil photo numérique »).
- Programmer le pcDuino : Pyduino : Reconnaissance vocale : Test de la reconnaissance vocale (mode connecté) avec LED de visualisation.
Articles Liés
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…
- Javascript : Afficher 6 widgets graphiques fournis par une librairie graphique externe.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Graphique Dygraphs : afficher date à partir unixtime
Le langage de programmation Javascript est très populaire et est utilisé pour créer des applications…