ml.apps — Aplicaciones de ML

El módulo ml.apps contiene clases de aplicación de ML de alto nivel construidas sobre ml.Model.

class MicroSpeech – Reconocimiento de voz

El objeto MicroSpeech reconoce palabras habladas simples utilizando el modelo MicroSpeech de TensorFlow Lite for Microcontrollers. El modelo predeterminado reconoce "Yes" y "No".

class ml.apps.MicroSpeech(preprocessor: ml.Model = None, micro_speech: ml.Model = None, labels: list[str] = None, **kwargs)

Crea un objeto MicroSpeech.

preprocessor es el ml.Model preprocesador de audio. Si es None, se carga /rom/audio_preprocessor.tflite.

micro_speech es el ml.Model de reconocimiento de voz. Si es None, se carga /rom/micro_speech.tflite.

labels es una lista de cadenas de etiquetas que coinciden con las categorías de salida del modelo. Si es None, las etiquetas se toman de micro_speech.labels.

Cualquier argumento de palabra clave adicional se reenvía a audio.init() (el periférico de audio se inicializa con channels=1, frequency=16000 y samples=320).

audio_callback(buf: bytes) None

Función de retorno (callback) interna de transmisión de audio. Añade nuevas muestras de buf al búfer de audio rotativo, actualiza el espectrograma ejecutando el modelo preprocessor sobre la ventana más reciente, y actualiza el historial de predicciones ejecutando el modelo micro_speech sobre el espectrograma. Normalmente no se llama directamente.

start_audio_streaming() None

Borra el espectrograma y el historial de predicciones, y luego inicia la transmisión de audio con MicroSpeech.audio_callback como función de retorno. No hace nada si la transmisión ya está iniciada.

stop_audio_streaming() None

Detiene la transmisión de audio.

listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]

Escucha una palabra hablada y devuelve una tupla de (label, average_scores) una vez que se detecta una etiqueta cuya puntuación promediada está por encima de threshold y está contenida en filter. Llama a MicroSpeech.start_audio_streaming si aún no está transmitiendo.

timeout es el tiempo máximo en milisegundos para escuchar. Si es 0, escucha indefinidamente hasta que se reconozca una palabra. Si es -1, se ejecuta en modo no bloqueante y devuelve de inmediato (None, average_scores) si no se reconoce ninguna palabra; la transmisión de audio se deja en ejecución. Para cualquier valor positivo, escucha durante esa cantidad de milisegundos y luego devuelve (None, average_scores) al expirar el tiempo de espera.

callback es un invocable opcional que se invoca como callback(label, average_scores) cuando se reconoce una palabra en lugar de devolverla. Combinado con timeout=0, esto permite el reconocimiento continuo.

threshold es la confianza promediada mínima requerida para aceptar un reconocimiento.

filter es la lista de cadenas de etiquetas a aceptar. Los reconocimientos fuera de esta lista se ignoran.

_SLICE_SIZE: int

Número de características por porción de espectrograma (40).

_SLICE_COUNT: int

Número de porciones de espectrograma almacenadas (49).

_SLICE_TIME_MS: int

Lapso de tiempo de una porción en milisegundos (30).

_AUDIO_FREQUENCY: int

Frecuencia de muestreo de audio en Hz (16000).

_SAMPLES_PER_STEP: int

Muestras de audio por paso de 10 ms (160).

_CATEGORY_COUNT: int

Número de categorías de salida (4).

_AVERAGE_WINDOW_SAMPLES: int

Número de fotogramas de predicción promediados sobre la ventana de suavizado (1020 // _SLICE_TIME_MS).