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.
preprocessortoml.Modelpreprocesora audio. JeśliNone, ładowany jest/rom/audio_preprocessor.tflite.micro_speechtoml.Modelrozpoznawania mowy. JeśliNone, ładowany jest/rom/micro_speech.tflite.labelsto lista łańcuchów etykiet odpowiadających kategoriom wyjściowym modelu. JeśliNone, etykiety są pobierane zmicro_speech.labels.Wszelkie dodatkowe argumenty nazwane są przekazywane do
audio.init()(urządzenie peryferyjne audio jest inicjalizowane zchannels=1,frequency=16000isamples=320).- audio_callback(buf: bytes) None¶
Wewnętrzne wywołanie zwrotne strumieniowania audio. Dołącza nowe próbki z
bufdo przesuwnego bufora audio, aktualizuje spektrogram poprzez uruchomienie modelupreprocessorna najnowszym oknie i aktualizuje historię predykcji poprzez uruchomienie modelumicro_speechna 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_callbackjako wywołaniem zwrotnym. Nie robi nic, jeśli strumieniowanie jest już uruchomione.
- 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 przekraczathresholdi która jest zawarta wfilter. WywołujeMicroSpeech.start_audio_streaming, jeśli strumieniowanie nie jest jeszcze aktywne.timeoutto maksymalny czas nasłuchiwania w milisekundach. Jeśli0, 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.callbackto opcjonalny obiekt wywoływalny wywoływany jakocallback(label, average_scores)po rozpoznaniu słowa zamiast zwracania wartości. W połączeniu ztimeout=0umożliwia to ciągłe rozpoznawanie.thresholdto minimalna uśredniona pewność wymagana do zaakceptowania rozpoznania.filterto lista łańcuchów etykiet do zaakceptowania. Rozpoznania spoza tej listy są ignorowane.