Comment construire la commande vocale Raspberry Pi (domotique)

Comment construire la commande vocale Raspberry Pi domotique
Comment construire la commande vocale Raspberry Pi domotique

Siri, Amazon Echo et «S Voice» sont tous des programmes de reconnaissance vocale conçus pour vous faciliter la vie. Même une commande vocale Raspberry Pi peut être facilement construite par vous-même. Car une telle reconnaissance vocale est bien sûr très bénéfique pour la domotique.

Dans ce didacticiel, je vais vous montrer comment numériser la parole via un microphone, la convertir en texte, puis y répondre.

La fonction de reconnaissance vocale peut déjà être testée ici (dans Chrome).

Matériel pour la commande vocale Raspberry Pi

Alternativement, vous pouvez également prendre un microphone USB, mais je ne l’ai pas testé. Pourtant, cela devrait fonctionner.

Si vous souhaitez contrôler les GPIO par entrée vocale, par exemple, un planche à pain et câble de raccordement est utile pour se connecter au Raspberry Pi.

Préparation

Google est le service de reconnaissance linguistique. Pour utiliser l’API, vous devez vous inscrire ce groupe avec votre compte Google.

Ensuite, ouvrez le Console développeur et appuyez sur «Créer un projet». Une fois créé, cliquez sur «APIs et authentification» -> «APIs» à gauche et recherchez «Speech API». Vous l’activez pour votre projet et cliquez sur «Accéder aux données» à gauche. Ici, vous devez créer une nouvelle clé publique (clé de navigateur).

Vous devez insérer la clé API maintenant créée dans le script.

Il faut dire que chaque jour 50 demandes sont gratuites. Si vous en avez besoin de plus, vous pouvez soit l’acheter sur Google, soit créer un deuxième projet et obtenir une autre clé ?

Commande vocale Raspberry Pi – logiciel

Le principe est le suivant. Un fichier audio sera créé, envoyé à Google et renvoyé sous forme de texte. Commençons donc:

sudo apt-get update
sudo apt-get install flac

Nous vérifions maintenant si la carte USB a été détectée correctement:

lsusb

Ce devrait être une telle entrée:

Bus 001 Device 004: ID 1130:f211 Tenx Technology, Inc. TP6911 Audio Headset

Nous avons maintenant la sortie des appareils d’enregistrement:

arecord -l

Pour moi, la sortie ressemble à ceci. Le nombre est important:

**** List of CAPTURE Hardware Devices ****
card 1: AUDIO [USB  AUDIO], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

À ce stade, je recommande de tester le microphone. Pour moi, le microphone a été mis en sourdine (qui peut être inversé avec amixer -c 1). Nous enregistrons donc un court fichier de test et le laissons jouer:

arecord -d 10 -f cd -t wav -D plughw:1,0 test.wav
aplay -f dat test.wav

Si vous entendez quelque chose, tout a fonctionné et cela peut continuer.

Nous créons un fichier qui envoie et évalue la demande.

sudo nano speech2text.sh

Le fichier a le contenu suivant. Ci-dessus, vous devez entrer votre clé API.

Par la suite, le script doit encore se voir attribuer les droits nécessaires.

chmod +x speech2text.sh

Maintenant, il peut être commencé et parlé.

./speech2text.sh

J’ai inclus deux exemples de requêtes dans la partie inférieure du script qui peuvent être utilisés pour répondre à la saisie vocale. Par exemple. un autre script ou commande pourrait être exécuté. Ce que vous utilisez pour cela dépend de vous.

Pour être complet, voici mon test:

pi@raspberrypi ~ $ ./speech.sh
Recording... To stop, press CTRL + C and wait.
^C
Execute...
Google answer: "turn on the light"

Light will switch on

S’il devait y avoir un intérêt, je pourrais également créer et publier à l’aide d’un smartphone.