micro_speech.py
# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2024 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# El módulo MicroSpeech está diseñado para el procesamiento de audio en tiempo real y el reconocimiento de voz
# en plataformas de microcontroladores. Aprovecha modelos preentrenados para el preprocesamiento de audio y
# el reconocimiento de voz, optimizado específicamente para detectar palabras clave como "Yes" y "No".
import time
from ml.apps import MicroSpeech
def callback(label, scores):
print(f'\nHeard: "{label}" @{time.ticks_ms()}ms Scores: {scores}')
# Por defecto, el objeto MicroSpeech usa el preprocesador de audio integrado (float) y el
# módulo micro speech para el preprocesamiento de audio y el reconocimiento de voz, respectivamente. El
# usuario puede sobrescribir ambos pasando dos modelos:
# MicroSpeech(preprocessor=ml.Model(...), micro_speech=ml.Model(...), labels=["label",...])
speech = MicroSpeech()
# Inicia la transmisión de audio y procesa el audio entrante para reconocer comandos de voz.
# Si se pasa un callback, listen() se ejecutará en bucle indefinidamente y llamará al callback cuando se
# detecte una palabra clave. Alternativamente, se puede llamar a `listen()` con un tiempo de espera (en ms), y
# este retorna si el tiempo de espera expira antes de detectar una palabra clave.
speech.listen(callback=callback, threshold=0.70)