micro_speech.py
# Ce travail est publié sous licence MIT.
# Copyright (c) 2024 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Le module MicroSpeech est conçu pour le traitement audio en temps réel et la reconnaissance vocale
# sur des plateformes à microcontrôleur. Il exploite des modèles pré-entraînés pour le prétraitement audio et
# la reconnaissance vocale, spécifiquement optimisés pour détecter des mots-clés tels que "Yes" et "No".
import time
from ml.apps import MicroSpeech
def callback(label, scores):
print(f'\nHeard: "{label}" @{time.ticks_ms()}ms Scores: {scores}')
# Par défaut, l'objet MicroSpeech utilise le préprocesseur audio intégré (float) et le
# module micro speech pour le prétraitement audio et la reconnaissance vocale, respectivement. L'
# utilisateur peut remplacer les deux en passant deux modèles :
# MicroSpeech(preprocessor=ml.Model(...), micro_speech=ml.Model(...), labels=["label",...])
speech = MicroSpeech()
# Démarre le streaming audio et traite l'audio entrant pour reconnaître les commandes vocales.
# Si un callback est passé, listen() bouclera indéfiniment et appellera le callback lorsqu'un mot-clé
# est détecté. Autrement, `listen()` peut être appelée avec un délai d'expiration (timeout, en ms), et elle
# retourne si le délai expire avant la détection d'un mot-clé.
speech.listen(callback=callback, threshold=0.70)