Table des matières:

Reconnaissance vocale : 12 étapes
Reconnaissance vocale : 12 étapes

Vidéo: Reconnaissance vocale : 12 étapes

Vidéo: Reconnaissance vocale : 12 étapes
Vidéo: TUTO Activer Gratuitement Le Logiciel Dictée Vocale Et Gérer Windows 10 Par Reconnaissance Vocale 2024, Novembre
Anonim
Reconnaissance vocale
Reconnaissance vocale

Salut à tous………

C'est mon deuxième instructable que je poste

Alors bienvenue à tous…

Dans ce Instructable, je vais vous apprendre comment créer une reconnaissance vocale à l'aide d'une carte arduino.

Je pense donc que vous avez déjà une expérience avec les cartes arduino. Sinon, ce n'est pas du tout un gros problème ici. Mais je vous recommande de vous y habituer car il est très intéressant de jouer avec et de créer des projets sympas en fonction de votre créativité et de vos connaissances.

Donc pour les personnes qui n'ont pas d'expérience préalable avec arduino:

Arduino est un matériel informatique open source qui est fabriqué par une entreprise qui possède une grande communauté de concepteurs et de fabricants. Il peut être considéré comme un petit ordinateur pouvant être utilisé pour contrôler d'autres circuits électroniques

Arduino est programmé dans un environnement développé par eux-mêmes qui peut être facilement téléchargé à partir de leur site Web

Étape 1: Comment configurer l'environnement ?

Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?
Comment configurer l'environnement ?

Il suffit de rechercher dans google "télécharger arduino"

Cliquez sur "Arduino - Logiciel"

Vous pourrez voir "Télécharger l'IDE Arduino"

Choisissez en fonction de votre système d'exploitation

Téléchargez-le et installez-le

Vous avez donc installé le logiciel avec succès et vous pouvez écrire votre code pour arduino et à l'aide d'un câble, vous pouvez connecter la carte arduino à l'ordinateur et insérer le code.

Étape 2: Pourquoi la demande d'Arduino augmente-t-elle ?

Peu coûteux

Les cartes Arduino sont peu coûteuses par rapport aux autres plates-formes de microcontrôleurs. Cela coûtera environ 50 $.

Multiplateforme

Le logiciel pour Arduino fonctionne sur les systèmes d'exploitation Windows, Macintosh OS et Linux. Si nous pensons à d'autres systèmes de microcontrôleurs, cela ne fonctionnera que sous Windows ou en d'autres termes limité uniquement à Windows.

Logiciel open source et extensible

Le logiciel est open source, de sorte que les gens ont commencé à l'étudier en profondeur et à inclure des bibliothèques (qui incluent un ensemble de fonctions pour son fonctionnement) d'autres langages de programmation.

Environnement de programmation simple et facile

Il est facile d'utiliser l'IDE Arduino (logiciel dont nous avons déjà parlé….) à propos de ça.

Matériel open source et extensible

Les plans des cartes Arduino sont publiés sous une licence Creative Commons, donc les personnes qui ont une expérience dans la conception de circuits peuvent créer leur propre version du module, elles ont également le droit d'étendre la technologie et peuvent l'améliorer en y ajoutant des fonctionnalités.

Étape 3: Commençons !!!!

J'ai donc déjà dit que ce projet est principalement axé sur la reconnaissance vocale à l'aide de l'Arduino et pour lui permettre de réaliser certaines tâches.

Parler plus clairement ……

Il capte les signaux sonores fournis par l'utilisateur, qui peuvent être détectés par le clignotement de la LED après qu'il soit converti en parole synthétisée.

Étape 4: Composants requis

Composants requis
Composants requis
Composants requis
Composants requis
Composants requis
Composants requis

Les principaux composants requis pour ce projet sont:

Arduino Due x 1

Spark Fun Électret Microphone Breakout x 1

Amplificateur audio mono Spark Fun Breakout x 1

Haut-parleur: 0,25 W, 8 ohms x 1

Planche à pain x 1

LED 5 mm: Rouge x 3

Résistance 330 ohm x 3

Fils de cavalier x 1

Fer à souder x 1

Serveur BitVoicer

Il s'agit d'un serveur de reconnaissance et de synthèse vocale pour l'automatisation de la parole.

Étape 5: Comment ça marche réellement ?

1. Les ondes audio sont détectées, puis elles capturent ces ondes et sont amplifiées par la carte Sparkfun Electret Breakout.

2. Le signal amplifié obtenu à partir du processus ci-dessus sera numérisé et mis en mémoire tampon/stocké dans la carte Arduino à l'aide de son convertisseur analogique-numérique (ADC) présent.

3. Les échantillons audio seront fournis au serveur BitVoicer en utilisant le port série Arduino présent.

4. BitVoicer Server traitera le flux audio, puis reconnaîtra la parole qu'il contient.

5. La parole reconnue sera mappée sur les commandes qui ont déjà été définies par elle-même auparavant, puis elle sera renvoyée à l'Arduino. Si l'une des commandes consiste à synthétiser la parole, BitVoicer Server préparera le flux audio et l'enverra à l'Arduino.

6. L'Arduino identifiera les commandes fournies et effectuera certaines actions appropriées. Si un flux audio est reçu, il sera mis en file d'attente dans la classe BVS Speaker et lu à l'aide du DUE DAC et DMA.

7. L'amplificateur audio mono SparkFun amplifiera le signal DAC afin qu'il puisse piloter un haut-parleur de 8 ohms et puisse être entendu à travers celui-ci.

Étape 6: Câblage des composants

Câblage des composants
Câblage des composants
Câblage des composants
Câblage des composants

La toute première étape consiste à câbler différents composants dans la maquette et également avec la carte arduino, comme indiqué sur l'image

N'oubliez pas que la carte Arduino utilisée ici est DUE, il existe différents autres modèles fabriqués par Arduino, chacun fonctionnant à différents niveaux de tension

La plupart des cartes Arduino fonctionnent à 5 V, mais le DUE fonctionne à 3,3 V

Le DUE utilise déjà une référence analogique de 3,3 V, vous n'avez donc pas besoin de cavalier vers la broche AREF

Oh désolé, j'ai oublié de dire qu'une broche AREF est un "PIN DE RÉFÉRENCE ANALOGIQUE" qui est présent dans une carte arduino comme le montre la figure suivante (c'est un arduino UNO mais c'est similaire dans le site similaire dans le cas de DUE)

La broche AREF du DUE est connectée au microcontrôleur via un pont de résistance

Pour utiliser la broche AREF, la résistance R1 doit être dessoudée du PCB [Printed Circuit Board]

Étape 7: fournir du code à la carte Arduino

Fournir du code à la carte Arduino
Fournir du code à la carte Arduino

Nous devons donc télécharger le code sur la carte Arduino, afin qu'il puisse fonctionner en fonction des instructions fournies dans le code.

C'est très facile à faire. Je vais expliquer chacun d'eux en détail, ce qu'ils font et comment ils fonctionnent.

Comment installer une bibliothèque ?

Donc, avant cela, nous devons savoir comment installer les bibliothèques BitVoicer Server dans l'IDE Arduino,.cela sur le logiciel arduino.

Alors pour cela ouvrez l'IDE Arduino

Sur le panneau supérieur, cliquez sur "Sketch"

Cliquez ensuite sur "Inclure la bibliothèque"

Sur ce, cliquez sur "Gérer la bibliothèque"

Ensuite, le gestionnaire de bibliothèque s'ouvrira et nous pourrons voir une liste des bibliothèques prêtes à être installées ou celles qui ont déjà été installées

Recherchez la bibliothèque à installer, puis sélectionnez le numéro de version

Ici, nous installons les bibliothèques BitVoicer Server, ce qui est nécessaire pour ce projet

Comment importer une bibliothèque.zip ?

Les bibliothèques peuvent également être distribuées sous forme de fichier ou de dossier ZIP

Le nom du dossier est le nom de la bibliothèque

À l'intérieur du dossier se trouvent un fichier.cpp, un fichier.h et souvent un fichier keywords.txt, un dossier d'exemples et d'autres fichiers requis par la bibliothèque

À partir de la version 1.0.5 d'Arduino IDE, vous pouvez y installer des bibliothèques tierces

Ne décompressez pas la bibliothèque téléchargée, laissez-la telle quelle

Pour cela, allez dans sketch> Inclure la bibliothèque> Ajouter une bibliothèque.zip

Sélectionnez l'emplacement du fichier.zip et ouvrez-le.

Revenez au menu Esquisse > Importer la bibliothèque.

Si elle est correctement importée, cette bibliothèque doit être vue en bas du menu déroulant lorsque vous naviguez.

Étape 8: programme/esquisse

C'est le programme qui doit être téléchargé dans l'Arduino.

Cela peut être fait simplement en connectant la carte Arduino à l'ordinateur et en la téléchargeant sur la carte.

Étape 9: Qu'en est-il des codes écrits ?

Voyons maintenant ce que font réellement chacune des fonctions écrites dans le code ………..

Références de bibliothèque et déclaration de variable

Avant de parler de cela, nous devons connaître et comprendre certaines terminologies de base. Celles-ci incluent:

  • BVSP

    C'est une bibliothèque qui nous donne presque toutes les ressources nécessaires pour échanger des informations avec le serveur BitVoicer

    Il existe un protocole connu sous le nom de BitVoicer Server Protocol qui est implémenté via la classe de BVSP. Ceci est nécessaire pour interagir avec le serveur

  • BVSMic

    C'est une bibliothèque qui implémente tout ce qui est nécessaire pour enregistrer l'audio à l'aide du convertisseur analogique-numérique (ADC) de l'Arduino

    Cet audio est stocké dans la mémoire tampon interne de la classe et peut être récupéré, puis envoyé aux moteurs de reconnaissance vocale disponibles sur BitVoicer Server

  • Haut-parleur BVSS

    C'est une bibliothèque qui contient toutes les ressources essentielles nécessaires à la reproduction des flux audio envoyés depuis le serveur BitVoicer

    Pour cela, la carte Arduino doit avoir un convertisseur numérique-analogique (DAC) intégré

    Arduino DUE est la seule carte Arduino à avoir un DAC intégré

Bibliothèques BVSP, BVSMic, BVSSpeaker et DAC, la référence à celles-ci est inscrite sur les quatre premières lignes qui constituent le démarrage du programme

Lorsque vous installez BitVoicer Server, vous pouvez trouver BitSophia qui fournit ces quatre bibliothèques

Lorsque l'utilisateur ajoute une référence à la bibliothèque BVSSpeaker, la bibliothèque DAC précédemment mentionnée sera automatiquement invoquée

La classe BVSP est utilisée pour communiquer avec BitVoicer Server

La classe BVSMic est utilisée pour capturer et stocker l'audio

La classe BVSSpeaker est utilisée pour reproduire l'audio à l'aide du DAC Arduino DUE

2. fonction de configuration

La fonction setup permet d'effectuer certaines actions comme:

Pour définir les modes de broche et leurs états initiaux

Pour initialiser la communication série

Pour initialiser la classe BVSP

Pour initialiser la classe BVSMic

Pour initialiser la classe BVSSpeaker

Il définit également des « gestionnaires d'événements » (pointeurs de fonction) pour les événements frameReceived, modeChanged et streamReceived de la classe BVSP

Étape 10: Fonction de boucle

Elle réalise cinq opérations majeures:

1. fonction keepAlive()

Cette fonction consiste à demander au serveur les informations d'état.

2. fonction recevoir ()

Cette fonction permet de vérifier si le serveur a envoyé des données ou non. Si le serveur a envoyé des données, il les traitera.

3. fonctions isSREAvailable(), startRecording(), stopRecording() et sendStream()

Ces fonctions sont utilisées pour contrôler les différents paramètres d'enregistrement de l'audio et après avoir atteint l'audio, il enverra cet audio au serveur BitVoicer.

4. fonction play()

Cette fonction est utilisée pour lire l'audio qui est mis en file d'attente à la classe BVSSpeaker.

5. playNextLEDNote()

Cette fonction est utilisée pour contrôler la façon dont la Led doit clignoter.

6. Fonction BVSP_frameReceived

Cette fonction est appelée à chaque fois que la fonction receive() commence à identifier qu'une trame complète a été reçue. Ici, nous exécutons les commandes obtenues à partir de BitVoicer Server. Les commandes qui contrôlent le clignotement des LED sont de 2 octets. Dans ce premier octet indique la broche et le deuxième octet indique la valeur de la broche. Ici, nous utilisons la fonction analogWrite() pour définir la valeur appropriée pour la broche. À ce moment-là, nous devons également vérifier si la commande playLEDNotes, qui est de type Byte, a été reçue. S'il a été reçu, je mets playLEDNotes sur true et il surveillera et marquera l'heure actuelle. Ce temps sera utilisé par la fonction playNextLEDNote pour synchroniser les LED avec le morceau.

7. Fonction BVSP_modeChanged

Cette fonction est appelée à chaque fois que la fonction receive() identifie un changement de mode dans le sens sortant (Serveur Arduino). BitVoicer Server peut envoyer des données encadrées ou de l'audio à l'Arduino. Avant que la communication ne passe d'un mode à un autre, BitVoicer Server envoie un signal. La classe BVSP identifie ce signal et déclenche ou signale l'événement modeChanged. Dans la fonction BVSP_modeChanged, si l'utilisateur détecte que la communication passe du mode flux au mode encadré, il saura que l'audio est terminé afin que l'utilisateur puisse dire à la classe BVSSpeaker d'arrêter la lecture audio.

8. Fonction BVSP_streamReceived

Cette fonction est appelée à chaque fois que la fonction receive() identifie que des échantillons audio ont été reçus. Il récupère simplement l'audio et les met en file d'attente dans la classe BVSSpeaker afin que la fonction play() puisse les reproduire.

9. fonction playNextLEDNote

Cette fonction ne s'exécute que si la fonction BVSP_frameReceived identifie la commande playLEDNotes. Il contrôle et synchronise les LED avec l'audio envoyé depuis BitVoicer Server. Pour synchroniser les LED avec l'audio et connaître le timing correct, un logiciel gratuit Sonic Visualizer peut être utilisé. Cela nous permet de regarder les ondes audio afin que la personne puisse savoir quand une touche de piano a été enfoncée.

Étape 11: Comment importer des objets BitVoicer Server Solution ?

Nous avons maintenant configuré BitVoicer Server pour qu'il fonctionne avec l'Arduino.

Il existe quatre objets de solution principaux pour un serveur BitVoicer: Emplacements, Appareils, Données binaires et Schémas vocaux.

Regardons-les en détail:

Emplacements

Il représente l'emplacement physique où l'appareil est installé.

Nous pouvons créer un emplacement appelé Home.

Dispositifs

Ils sont considérés comme les clients de BitVoicer Server.

Comme pour créer un emplacement, nous pouvons créer un appareil mixte, pour plus de facilité, appelons-le ArduinoDUE.

Parfois, des débordements de tampon peuvent se produire, donc pour l'éliminer, j'ai dû limiter le débit de données dans les paramètres de communication à 8000 échantillons par seconde.

BinaryData est un type de commande que BitVoicer Server peut envoyer aux appareils clients. Ce sont en fait des tableaux d'octets que vous pouvez lier à des commandes.

Lorsque BitVoicer Server reconnaît la parole liée à cette commande, il envoie le tableau d'octets à l'appareil cible.

Donc, pour cette raison, j'ai créé un objet BinaryData pour chaque valeur de broche et je les ai nommés ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff et ainsi de suite.

J'ai donc dû créer 18 objets BinaryData, je vous propose donc de télécharger et d'importer les objets depuis le fichier VoiceSchema.sof qui est fourni ci-dessous.

Alors, qu'est-ce qu'un schéma vocal ?

Les schémas vocaux sont l'endroit où tout se réunit. leur rôle principal est de définir comment les phrases doivent être reconnues et quelles commandes doivent être exécutées.

Pour chaque phrase, vous pouvez définir autant de commandes que vous le souhaitez et l'ordre dans lequel elles seront exécutées.

Vous pouvez également définir des délais entre chacune des commandes fournies.

BitVoicer Server ne prend en charge que l'audio PCM mono 8 bits (8000 échantillons par seconde), il sera donc nécessaire de convertir le fichier audio dans ce format, il y a tellement de péages de conversion en ligne présents aujourd'hui et je recommande https://audio.online -convert.com/convertir-en-wav.

Vous pouvez importer (Importer des objets de solution) tous les objets de solution que j'ai utilisés dans ce projet à partir des fichiers ci-dessous.

L'un d'eux contient le périphérique DUE et l'autre contient le schéma vocal et ses commandes.

Étape 12: Conclusion

Voilà !!!

Vous avez fait un projet génial et vous pouvez en parler

Alors commencez à parler………………

Vous pouvez faire clignoter les LED et en même temps vous pouvez lui dire de chanter une chanson s'il en a besoin, son code a déjà été fourni

J'ai donc terminé mon deuxième Instructable !!!!!!!!

Oui……

Je pense que tout le monde l'a compris…

Si quelqu'un a des questions s'il vous plaît n'hésitez pas à me demander

Je proposerai un excellent Instructable la prochaine fois…

Au revoir…

À bientôt……………

Conseillé: