ml.apps — ML aplikacije

Modul ml.apps sadrži visokorazinske klase ML aplikacija izgrađene na temelju ml.Model.

class MicroSpeech – Prepoznavanje govora

MicroSpeech objekt prepoznaje jednostavne izgovorene riječi koristeći MicroSpeech model iz TensorFlow Lite for Microcontrollers. Zadani model prepoznaje "Yes" i "No".

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

Stvara MicroSpeech objekt.

preprocessor je ml.Model za predobradu zvuka. Ako je None, učitava se /rom/audio_preprocessor.tflite.

micro_speech je ml.Model za prepoznavanje govora. Ako je None, učitava se /rom/micro_speech.tflite.

labels je popis nizova oznaka koji odgovaraju izlaznim kategorijama modela. Ako je None, oznake se uzimaju iz micro_speech.labels.

Svi dodatni imenovani argumenti prosljeđuju se na audio.init() (audio periferija se inicijalizira s channels=1, frequency=16000 i samples=320).

audio_callback(buf: bytes) None

Interni povratni poziv za prijenos zvuka. Dodaje nove uzorke iz buf u kotrljajući audio međuspremnik, ažurira spektrogram pokretanjem modela preprocessor na najnovijem prozoru te ažurira povijest predviđanja pokretanjem modela micro_speech na spektrogramu. Obično se ne poziva izravno.

start_audio_streaming() None

Briše spektrogram i povijest predviđanja, zatim pokreće prijenos zvuka s MicroSpeech.audio_callback kao povratnim pozivom. Nema učinka ako je prijenos već pokrenut.

stop_audio_streaming() None

Zaustavlja prijenos zvuka.

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

Sluša izgovorenu riječ i vraća n-torku (label, average_scores) kada se otkrije oznaka čiji je prosječni rezultat iznad threshold i koja je sadržana u filter. Poziva MicroSpeech.start_audio_streaming ako prijenos još nije pokrenut.

timeout je najveće vrijeme u milisekundama tijekom kojeg se sluša. Ako je 0, sluša se neograničeno dok se riječ ne prepozna. Ako je -1, radi u neblokirajućem načinu i odmah vraća (None, average_scores) ako nijedna riječ nije prepoznata; prijenos zvuka ostaje pokrenut. Za bilo koju pozitivnu vrijednost, sluša se toliko milisekundi i zatim vraća (None, average_scores) po isteku vremena.

callback je opcionalna pozivljiva funkcija koja se poziva kao callback(label, average_scores) kada se riječ prepozna umjesto vraćanja. U kombinaciji s timeout=0 ovo omogućuje neprekidno prepoznavanje.

threshold je minimalna prosječna pouzdanost potrebna za prihvaćanje prepoznavanja.

filter je popis nizova oznaka koje se prihvaćaju. Prepoznavanja izvan ovog popisa se ignoriraju.

_SLICE_SIZE: int

Broj značajki po isječku spektrograma (40).

_SLICE_COUNT: int

Broj pohranjenih isječaka spektrograma (49).

_SLICE_TIME_MS: int

Vremenski raspon jednog isječka u milisekundama (30).

_AUDIO_FREQUENCY: int

Frekvencija uzorkovanja zvuka u Hz (16000).

_SAMPLES_PER_STEP: int

Audio uzorci po koraku od 10 ms (160).

_CATEGORY_COUNT: int

Broj izlaznih kategorija (4).

_AVERAGE_WINDOW_SAMPLES: int

Broj sličica predviđanja prosječenih preko prozora za izglađivanje (1020 // _SLICE_TIME_MS).