Le pcDuino est une plateforme de développement open source qui permet aux développeurs de créer des applications et des systèmes embarqués. Avec Pyduino, un framework de programmation Python pour le pcDuino, il est possible de créer des applications qui utilisent la reconnaissance vocale pour allumer et éteindre des sorties numériques. Dans ce tutoriel, nous allons vous montrer comment utiliser Pyduino pour créer une application de reconnaissance vocale qui permet d’allumer et d’éteindre des sorties numériques en mode connecté.
Programmer le pcDuino : Pyduino : Reconnaissance vocale : Allumer/éteindre des sorties numériques à l’aide de la reconnaissance vocale (mode connecté).
Ce que l’on va faire ici
- Dans ce code, je montre comment contrôler les broches E/S du miniPC grâce à la reconnaissance vocale en mode connecté en utilisant ma librairie PyduinoMultimedia.
- La chaîne reconnue est analysée pour mettre les broches dans l’état voulu :
- une chaine contenant « allum » et un nombre entre 1 et 7 allumera la broche correspondante (mise au niveau HIGH)
- une chaine contenant « éteindre » et un nombre compris entre 1 et 7 allumera la broche correspondante (mise au niveau LOW)
- une chaîne contenant « allum » ou « éteindre » et « tout » mettre toutes les broches dans l’état voulu.
- Il sera facile d’adapter à loisir ce code à ses propres besoins… notamment en utilisant un mot-clé au lieu du numéro de la broche.
- Pour plus de détails sur la reconnaissance vocale avec PyduinoMultimedia, voir la fonction analyzeVoice
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
- La reconnaissance vocale contrôle les broches E/S :
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
E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- 8 x LED rouge 5mm,








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








Instructions de montage
- Connecter sur les broches 0 à 7 (configurée en sortie) une LED et sa résistance (270 Ohms) en série connectée au 0V
- Note technique : chaque broche va fournir (3.3-1.5)/270 = 6,66 mA soit au total 8 x 6,66mA… soit 53mA au plus, ce qui semble tout à fait acceptable pour ne pas risquer d’endommager le mini-PC.
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
# broches E/S controlees par la voix
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python
# entete declarative
#noLoop=True
ledTemoin=0 # LED témoin ok pour parler
#— setup —
def setup():
# broche de led temoin
pinMode(ledTemoin, OUTPUT) # broche en sortie
digitalWrite(ledTemoin, LOW) # eteint LED
# broches ES utilisees
for pin in range (1,8): # defile broche 1-7
pinMode(pin, OUTPUT) # broche sortie
digitalWrite(pin, LOW) # eteint LED
# — fin setup —
# — loop —
def loop():
# fichier d’enregistrement a utiliser
filepathAudio=homePath()+dataPath(AUDIO)
filename=« test.wav »
print (filepathAudio+filename)
#speak(« Test de reconnaissance vocale. Dites quelque chose »)
digitalWrite(ledTemoin,HIGH) # LED pour OK parler
recordSound(filepathAudio+filename,3) # enregistre son fichier voulu et duree voulue en secondes
digitalWrite(ledTemoin,LOW) # LED Stop parler
#playSound(filepathAudio+filename)
chaine=analyzeVoice(filepathAudio+filename) # reconnaissance vocale
if chaine==« »: # si rien dit
#speak(« Vous n’avez rien dit. »)
pass
else: # si dit quelque chose
speak(« Vous avez dit « + chaine)
# analyse de la chaine recue
chaine=chaine.lower() # met en minuscule
print chaine # affiche chaine reconnue
# analyse chaine reconnue et met LED dans etat voulu
if « allum » in chaine:
if « 1 » in chaine or « un » in chaine : digitalWrite(1,HIGH)
if « 2 » in chaine or « deux » in chaine : digitalWrite(2,HIGH)
if « 3 » in chaine or « trois » in chaine : digitalWrite(3,HIGH)
if « 4 » in chaine or « quatre » in chaine : digitalWrite(4,HIGH)
if « 5 » in chaine or « cinq » in chaine : digitalWrite(5,HIGH)
if « 6 » in chaine or « six » in chaine : digitalWrite(6,HIGH)
if « 7 » in chaine or « sept » in chaine : digitalWrite(7,HIGH)
if « tou » in chaine :
for i in range(1,8):digitalWrite(i,HIGH)
elif « éteindre » in chaine:
if « 1 » in chaine or « un » in chaine : digitalWrite(1,LOW)
if « 2 » in chaine or « deux » in chaine : digitalWrite(2,LOW)
if « 3 » in chaine or « trois » in chaine : digitalWrite(3,LOW)
if « 4 » in chaine or « quatre » in chaine : digitalWrite(4,LOW)
if « 5 » in chaine or « cinq » in chaine : digitalWrite(5,LOW)
if « 6 » in chaine or « six » in chaine : digitalWrite(6,LOW)
if « 7 » in chaine or « sept » in chaine : digitalWrite(7,LOW)
if « tou » in chaine :
for i in range(1,8):digitalWrite(i,LOW)
# — 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/AnalyzeVoiceLedControleES.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 :
- lorsque la LED connectée sur la broche 0 s’allume, parler !
- la reconnaissance vocale se fait automatiquement et une annonce vocale se fait selon message reconnu
- les LEDs sont mises dans l’état voulu !

- Simple et efficace.
Discussion technique
- Ce code peut encore être amélioré en évitant une analyse du fichier son si celui-ci est vide… Ceci évitera une connexion intempestive inutile au serveur Google Voice.
Articles similaires:
- Programmer le pcDuino : Pyduino : Reconnaissance vocale : Test de la reconnaissance vocale (mode connecté) avec LED de visualisation.
- 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 : Voix : Capturer une image webcam à la voix (en mode connecté) avec LED de visualisation !
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) !
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…