Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Programmer le pcDuino : Voix : Lancer une application système à la voix (en mode connecté) !

Électroniquemis à jour le 23 avril 2023

Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de fonctionnalités et de possibilités. Une des fonctionnalités les plus intéressantes est la possibilité de programmer le pcDuino pour lancer des applications système à la voix. Cette fonctionnalité permet aux utilisateurs de contrôler leur système à l’aide de leur voix, ce qui est très pratique et peut faciliter leur travail. Dans cet article, nous allons vous expliquer comment programmer le pcDuino pour lancer des applications système à la voix en mode connecté.

Programmer le pcDuino : Voix : Lancer une application système à la voix (en mode connecté) !

Ce que l’on va faire ici

  • Dans ce code, je vous montre comment lancer à la voix n’importe quelle application du systeme très simplement avec la librairie Pyduino.
  • 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()

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 librairie Pyduino exécute une ligne de commande à partir de la chaîne reconnue :

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

  • aucun matériel

Instructions de montage

  • Connecter également le micro en entrée (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 :

#!/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

from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

# entete declarative
#noLoop=True

#— setup —
def setup():

ÉlectroniqueChamp électrique : les notions fondamentales expliquées simplement

        return
# — fin setup —

# — loop —
def loop():

        filepathAudio=homePath()+dataPath(AUDIO)
        filename=« test.wav »
        #print (filepathAudio+filename)

        print (« ——————————–« )
        print(« ********* Lancer une application par reconnaissance vocale ********* » )
        print (« ===> Quelle application lancer ? « )
        print (« parmi : terminal , nagivateur, fichier, webcam, programmer, python, .. »)
        print (« > Enregistrement du fichier voix (2 sec.) … »)

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

        #playSound(filepathAudio+filename)

        chaine=analyzeVoice(filepathAudio+filename) # 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

ÉlectroniqueBien chauffer son atelier d’électronique : confort, sécurité et continuité de travail

                if « terminal » in chaine:
                        executeCmdWait(« lxterminal ») # lance lxterminal
                elif « navigateur » in chaine or « internet » in chaine:
                        executeCmdWait(« midori « ) # lance midori
                elif « fichier » in chaine :
                        executeCmdWait(« pcmanfm ») # lance pcmanfm
                elif « webcam » in chaine :
                        executeCmdWait(« guvcview ») # lance guvcview
                elif « programm » in chaine :
                        executeCmdWait(« geany ») # lance geany
                elif « python » in chaine :
                        executeCmdWait(« dreampie ») # lance dreampie
                else:
                        print(« Chaine non valide »)

# — 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/AnalyzeVoiceLancerApp.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, parlez ! (vous avez 2 secondes)
    • la chaîne correspondante s’affiche ensuite
    • si la chaine est reconnue, l’application voulue est lancée.

Discussion technique

  • Noter ici l’utilisation de executeCmdWait() : l’application lancée bloque le programme tant que l’application ouverte n’est pas refermée. Ceci permet de stopper la reconnaissance vocale tant que l’application est ouverte.

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertSerie
Électronique

Webapps d’initiation : Ajax :

Les webapps sont devenues une partie intégrante de notre vie quotidienne. Elles nous permettent de rester connectés, de partager des…

Portrait de Inès DameronInès Dameron · 20 Avr 2023

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction