View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Pyduino : Reconnaissance vocale : Test de la reconnaissance vocale (mode connecté) avec LED de visualisation.

Par X. HINAULT - Juillet 2013

Ce que l'on va faire ici

  • Dans ce code, je vous montre comment tester la reconnaissance vocale en mode connecté en utilisant ma librairie PyduinoMultimedia.
  • L'opération se fait en plusieurs étape :
    • tout d'abord l'enregistrement de la voix
    • ensuite l'analyse vocale du fichier obtenu
  • Ici une LED sera utilisée pour indiquer le moment pendant lequel vous pouvez parler (c'est à dire le moment où le code enregistre le son).
  • La chaîne reconnue est affichée et un message en synthèse vocale indique la chaîne reconnue.
  • On suppose que le pcDuino est connecté au réseau local avec accès internet disponible.
  • Pour plus de détails sur la reconnaissance vocale avec PyduinoMultimedia, voir la fonction analyzeVoice

Pré-requis

Schéma fonctionnel

  • On utilise ici la reconnaissance vocale, la synthèse vocale et une broche E/S en sortie numérique :

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 sortie audio opérationnelle : le plus simple étant un écran HDMI connecté.

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
  • 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.
  • Connecter également le micro en entrée (le plus simple étant une webcam)
  • Connecter une sortie audio opérationnelle, le plus simple étant un écran HDMI
  • 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 :


#!/usr/bin/python
# -*- 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

# test analyzeVoice avec LED de visualisation enregistrement

from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

# entete declarative
#noLoop=True

ledTemoin=0  # LED témoin ok pour parler

#--- setup ---
def setup():

        pinMode(ledTemoin, OUTPUT) # broche en sortie
        digitalWrite(ledTemoin, LOW) # eteint LED

# -- fin setup --

# -- loop --
def loop():

        filepathAudio=homePath()+dataPath(AUDIO)
        filename="test.wav"
        print (filepathAudio+filename)

        #speak("Test de reconnaissance vocale. Dites quelque chose")

        digitalWrite(ledTemoin,HIGH) # OK parler

        recordSound(filepathAudio+filename,3) # enregistre son fichier voulu et duree voulue en secondes

        digitalWrite(ledTemoin,LOW) # Stop parler

        #playSound(filepathAudio+filename)

        chaine=analyzeVoice(filepathAudio+filename) # reconnaissance vocale

        if chaine=="":
                #speak("Vous n'avez rien dit.")
                pass
        else:
                speak("Vous avez dit " + chaine)


# -- 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/AnalyzeVoiceLed.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

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.