ml.apps — aplikacje ML

Moduł ml.apps zawiera wysokopoziomowe klasy aplikacji ML zbudowane na bazie ml.Model.

class MicroSpeech – rozpoznawanie mowy

Obiekt MicroSpeech rozpoznaje proste wypowiadane słowa, używając modelu MicroSpeech z TensorFlow Lite for Microcontrollers. Domyślny model rozpoznaje "Yes" i "No".

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

Tworzy obiekt MicroSpeech.

preprocessor to ml.Model preprocesora audio. Jeśli None, ładowany jest /rom/audio_preprocessor.tflite.

micro_speech to ml.Model rozpoznawania mowy. Jeśli None, ładowany jest /rom/micro_speech.tflite.

labels to lista łańcuchów etykiet odpowiadających kategoriom wyjściowym modelu. Jeśli None, etykiety są pobierane z micro_speech.labels.

Wszelkie dodatkowe argumenty nazwane są przekazywane do audio.init() (urządzenie peryferyjne audio jest inicjalizowane z channels=1, frequency=16000 i samples=320).

audio_callback(buf: bytes) None

Wewnętrzne wywołanie zwrotne strumieniowania audio. Dołącza nowe próbki z buf do przesuwnego bufora audio, aktualizuje spektrogram poprzez uruchomienie modelu preprocessor na najnowszym oknie i aktualizuje historię predykcji poprzez uruchomienie modelu micro_speech na spektrogramie. Zwykle nie jest wywoływane bezpośrednio.

start_audio_streaming() None

Czyści spektrogram i historię predykcji, a następnie rozpoczyna strumieniowanie audio z MicroSpeech.audio_callback jako wywołaniem zwrotnym. Nie robi nic, jeśli strumieniowanie jest już uruchomione.

stop_audio_streaming() None

Zatrzymuje strumieniowanie audio.

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

Nasłuchuje wypowiadanego słowa i zwraca krotkę (label, average_scores), gdy zostanie wykryta etykieta, której uśredniony wynik przekracza threshold i która jest zawarta w filter. Wywołuje MicroSpeech.start_audio_streaming, jeśli strumieniowanie nie jest jeszcze aktywne.

timeout to maksymalny czas nasłuchiwania w milisekundach. Jeśli 0, nasłuchuje w nieskończoność, aż słowo zostanie rozpoznane. Jeśli -1, działa w trybie nieblokującym i natychmiast zwraca (None, average_scores), jeśli żadne słowo nie zostało rozpoznane; strumieniowanie audio pozostaje uruchomione. Dla dowolnej wartości dodatniej nasłuchuje przez tyle milisekund, a następnie zwraca (None, average_scores) po upływie czasu.

callback to opcjonalny obiekt wywoływalny wywoływany jako callback(label, average_scores) po rozpoznaniu słowa zamiast zwracania wartości. W połączeniu z timeout=0 umożliwia to ciągłe rozpoznawanie.

threshold to minimalna uśredniona pewność wymagana do zaakceptowania rozpoznania.

filter to lista łańcuchów etykiet do zaakceptowania. Rozpoznania spoza tej listy są ignorowane.

_SLICE_SIZE: int

Liczba cech na wycinek spektrogramu (40).

_SLICE_COUNT: int

Liczba przechowywanych wycinków spektrogramu (49).

_SLICE_TIME_MS: int

Rozpiętość czasowa jednego wycinka w milisekundach (30).

_AUDIO_FREQUENCY: int

Częstotliwość próbkowania audio w Hz (16000).

_SAMPLES_PER_STEP: int

Liczba próbek audio na 10 ms kroku (160).

_CATEGORY_COUNT: int

Liczba kategorii wyjściowych (4).

_AVERAGE_WINDOW_SAMPLES: int

Liczba ramek predykcji uśrednianych w oknie wygładzania (1020 // _SLICE_TIME_MS).