[Tuto] Créer un système de commande vocale avec Orange Pi
Posté sur: juil. 12, 2018
Catégories: Raspberry Pi
(Le son émis par Snips n'est pas disponible car il n'y a pas de haut-parleur)
Sur la base du système Open Source Snips, il est possible de créer un système de commande vocale hors ligne. Afin de le créer, il est nécessaire d'avoir un PC, une carte Orange Pi Zéro Plus 2 H3, son shield et une carte SD dont la capacité est d'au moins 4Go. La carte est conçue par Xunlong.


Etape 1: Faire un setup du PC
Sous Linux :
nLa plateforme Snips est basée sur Linux terminal. Il n'est pas nécessaire de faire un setup.
Sous Windows :
nIl faut quelques étapes préparatoires pour simuler l'environnement Linux afin d'utiliser Snips.
- Ouvrez Windows PowerShell en tant qu'administrateur (touche Win + x, a) et tapez la commande suivante :
n> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Choisissez la distribution de Linux depuis le Microsoft Store
Tapez « bash » dans un barre d'adresse.
-
Changez le mot de passe pour utiliser la commande sudo :
Cf. https://docs.microsoft.com/en-us/windows/wsl/user-support
(Source : https://docs.microsoft.com/en-us/windows/wsl/install-win10)
Etape 2: Faire un setup de la carte
La première tâche est d'installer un système d'exploitation dans la carte Orange Pi. Puis, formatez la carte SD.
Sous Windows 10, utilisez le logiciel SD Memory Card Formatter fourni par SD Association pour formater la carte puis Win32DiskImager pour écrire l'image fourni ci-dessous:
nOPi_Snips.img (4Go)
Sous Linux, utilisez gparted pour formater la carte en format FAT32 puis saisissez:
ndd if=/[CHEMIN]/OPi_Snips.img of= /dev/sdX
n"/dev/sdX" est votre carte SD. Identifiez-la avec la commande "sudo fdisk -l".
Actuellement, il n'y a que Armbian Stretch dans laquelle plateforme Snips fonctionne correctement.
Etape 3: Utilisation de l'assistant vocal :

Dites "Hey Snips". Après un bip sonore ou un peu de temps, dites "Allumer la lumière" ou "Eteindre la lumière" et le pin GPIO 12(PA12) sera allumé (3.3V) ou éteint.
Pour modifier l'action,
Modifiez :
/var/lib/snips/skills/Snips-ContactSec-Opi/action-contact.sec.py
Puis,
lancez :
$ sudo service snips-skill-server restart
Pour manipuler des pins multiples,
Ajoutez dans le script :
OPiGPIO.gpio_config([NUMERO_PIN])
pour allumer un pin GPIO :
OPiGPIO.gpio_on([NUMERO_PIN])
ou
pour éteindre un pin GPIO :
OPiGPIO.gpio_off([NUMERO_PIN])
OPiGPIO.gpio_unexport([NUMERO_PIN])
Example:
#Pour allumer un pin GPIO 7
OPiGPIO.gpio_config(7)
OPiGPIO.gpio_on(7)
OPiGPIO.gpio_unexport(7)

NUMERO_PIN : (la position d'une lettre - 1) * 32 + le numéro de pin.
Par exemple, le NUMERO_PIN de PA12 est calculé dans la manière suivante :
A = 1ère position
Le numéro de pin = 12
Alors, NUMERO_PIN = (1 - 1) * 32 + 12 = 12
Pour aller plus loin, vous pouvez regarder la documentation sur notre Github.
Commentaires
déc. 28, 2018
Connectez-vous pour commenter
Se connecter