ml.apps — ML-appar

Modulen ml.apps innehåller högnivå-ML-applikationsklasser byggda ovanpå ml.Model.

class MicroSpeech – Taligenkänning

MicroSpeech-objektet känner igen enkla talade ord med hjälp av MicroSpeech-modellen från TensorFlow Lite for Microcontrollers. Standardmodellen känner igen "Yes" och "No".

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

Skapar ett MicroSpeech-objekt.

preprocessor är ljudförbehandlaren ml.Model. Om None laddas /rom/audio_preprocessor.tflite.

micro_speech är taligenkännings-ml.Model. Om None laddas /rom/micro_speech.tflite.

labels är en lista med etikettsträngar som matchar modellens utdatakategorier. Om None hämtas etiketterna från micro_speech.labels.

Eventuella ytterligare nyckelordsargument vidarebefordras till audio.init() (ljudkringutrustningen initieras med channels=1, frequency=16000 och samples=320).

audio_callback(buf: bytes) None

Internt återanrop för ljudströmning. Lägger till nya sampel från buf i den rullande ljudbufferten, uppdaterar spektrogrammet genom att köra preprocessor-modellen på det senaste fönstret, och uppdaterar prediktionshistoriken genom att köra micro_speech-modellen på spektrogrammet. Anropas normalt inte direkt.

start_audio_streaming() None

Rensar spektrogrammet och prediktionshistoriken, och startar sedan ljudströmning med MicroSpeech.audio_callback som återanrop. Gör ingenting om strömning redan har startats.

stop_audio_streaming() None

Stoppar ljudströmning.

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

Lyssnar efter ett talat ord och returnerar en tupel (label, average_scores) när en etikett vars medelvärdesberäknade poäng är över threshold och som ingår i filter detekteras. Anropar MicroSpeech.start_audio_streaming om strömning inte redan pågår.

timeout är den maximala tiden i millisekunder att lyssna. Om 0 lyssnar den på obestämd tid tills ett ord känns igen. Om -1 körs den i icke-blockerande läge och returnerar omedelbart med (None, average_scores) om inget ord känns igen; ljudströmningen lämnas igång. För alla positiva värden lyssnar den i så många millisekunder och returnerar sedan (None, average_scores) vid tidsgräns.

callback är ett valfritt anropsbart objekt som anropas som callback(label, average_scores) när ett ord känns igen i stället för att returnera. Kombinerat med timeout=0 möjliggör detta kontinuerlig igenkänning.

threshold är den minsta medelvärdesberäknade konfidens som krävs för att acceptera en igenkänning.

filter är listan med etikettsträngar att acceptera. Igenkänningar utanför denna lista ignoreras.

_SLICE_SIZE: int

Antal särdrag per spektrogramskiva (40).

_SLICE_COUNT: int

Antal lagrade spektrogramskivor (49).

_SLICE_TIME_MS: int

Tidsspann för en skiva i millisekunder (30).

_AUDIO_FREQUENCY: int

Ljudsamplingsfrekvens i Hz (16000).

_SAMPLES_PER_STEP: int

Ljudsampel per 10 ms-steg (160).

_CATEGORY_COUNT: int

Antal utdatakategorier (4).

_AVERAGE_WINDOW_SAMPLES: int

Antal prediktionsbildrutor som medelvärdesberäknas över utjämningsfönstret (1020 // _SLICE_TIME_MS).