ml.apps — ML-apps

De ml.apps-module bevat hoogniveau ML-applicatieklassen die bovenop ml.Model zijn gebouwd.

class MicroSpeech – Spraakherkenning

Het MicroSpeech-object herkent eenvoudige gesproken woorden met behulp van het MicroSpeech-model van TensorFlow Lite for Microcontrollers. Het standaardmodel herkent "Yes" en "No".

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

Maakt een MicroSpeech-object aan.

preprocessor is het audio-preprocessor-ml.Model. Als None, wordt /rom/audio_preprocessor.tflite geladen.

micro_speech is het spraakherkennings-ml.Model. Als None, wordt /rom/micro_speech.tflite geladen.

labels is een lijst van labelstrings die overeenkomen met de uitvoercategorieën van het model. Als None, worden de labels overgenomen uit micro_speech.labels.

Eventuele aanvullende sleutelwoordargumenten worden doorgegeven aan audio.init() (het audiorandapparaat wordt geïnitialiseerd met channels=1, frequency=16000 en samples=320).

audio_callback(buf: bytes) None

Interne audiostreaming-callback. Voegt nieuwe samples uit buf toe aan de rollende audiobuffer, werkt het spectrogram bij door het preprocessor-model uit te voeren op het laatste venster, en werkt de voorspellingsgeschiedenis bij door het micro_speech-model uit te voeren op het spectrogram. Wordt normaal niet rechtstreeks aangeroepen.

start_audio_streaming() None

Wist het spectrogram en de voorspellingsgeschiedenis, en start vervolgens audiostreaming met MicroSpeech.audio_callback als callback. Doet niets als streaming al is gestart.

stop_audio_streaming() None

Stopt audiostreaming.

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

Luistert naar een gesproken woord en geeft een tuple (label, average_scores) terug zodra een label wordt gedetecteerd waarvan de gemiddelde score boven threshold ligt en dat in filter is opgenomen. Roept MicroSpeech.start_audio_streaming aan als er nog niet wordt gestreamd.

timeout is de maximale tijd in milliseconden om te luisteren. Als 0, luistert het oneindig totdat een woord wordt herkend. Als -1, draait het in niet-blokkerende modus en geeft het onmiddellijk (None, average_scores) terug als er geen woord wordt herkend; audiostreaming blijft draaien. Voor elke positieve waarde luistert het dat aantal milliseconden en geeft het vervolgens (None, average_scores) terug bij een timeout.

callback is een optionele callable die wordt aangeroepen als callback(label, average_scores) wanneer een woord wordt herkend, in plaats van terug te geven. Gecombineerd met timeout=0 maakt dit continue herkenning mogelijk.

threshold is de minimale gemiddelde betrouwbaarheid die vereist is om een herkenning te accepteren.

filter is de lijst van labelstrings die worden geaccepteerd. Herkenningen buiten deze lijst worden genegeerd.

_SLICE_SIZE: int

Aantal kenmerken per spectrogramsegment (40).

_SLICE_COUNT: int

Aantal opgeslagen spectrogramsegmenten (49).

_SLICE_TIME_MS: int

Tijdspanne van één segment in milliseconden (30).

_AUDIO_FREQUENCY: int

Audiosamplefrequentie in Hz (16000).

_SAMPLES_PER_STEP: int

Audiosamples per stap van 10 ms (160).

_CATEGORY_COUNT: int

Aantal uitvoercategorieën (4).

_AVERAGE_WINDOW_SAMPLES: int

Aantal voorspellingsframes dat over het smoothing-venster wordt gemiddeld (1020 // _SLICE_TIME_MS).