ml.apps — ML aplikace¶
Modul ml.apps obsahuje vysokoúrovňové třídy ML aplikací postavené nad ml.Model.
class MicroSpeech – rozpoznávání řeči¶
Objekt MicroSpeech rozpoznává jednoduchá mluvená slova pomocí modelu MicroSpeech z TensorFlow Lite for Microcontrollers. Výchozí model rozpoznává "Yes" a "No".
- class ml.apps.MicroSpeech(preprocessor: ml.Model = None, micro_speech: ml.Model = None, labels: list[str] = None, **kwargs)¶
Vytvoří objekt MicroSpeech.
preprocessorje audio preprocesorml.Model. Pokud jeNone, načte se/rom/audio_preprocessor.tflite.micro_speechjeml.Modelpro rozpoznávání řeči. Pokud jeNone, načte se/rom/micro_speech.tflite.labelsje seznam řetězců se štítky odpovídajícími výstupním kategoriím modelu. Pokud jeNone, štítky se převezmou zmicro_speech.labels.Veškeré další klíčové argumenty jsou předány funkci
audio.init()(audio periferie je inicializována schannels=1,frequency=16000asamples=320).- audio_callback(buf: bytes) None¶
Interní callback pro audio streaming. Připojuje nové vzorky z
bufdo klouzavého audio bufferu, aktualizuje spektrogram spuštěním modelupreprocessorna nejnovějším okně a aktualizuje historii predikcí spuštěním modelumicro_speechna spektrogramu. Běžně se nevolá přímo.
- start_audio_streaming() None¶
Vymaže spektrogram a historii predikcí a poté spustí audio streaming s
MicroSpeech.audio_callbackjako callbackem. Pokud již streaming běží, neudělá nic.
- listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]¶
Naslouchá mluvenému slovu a vrátí n-tici
(label, average_scores), jakmile je detekován štítek, jehož průměrné skóre je nadthresholda je obsažen vefilter. VoláMicroSpeech.start_audio_streaming, pokud streaming ještě neběží.timeoutje maximální čas v milisekundách, po který se naslouchá. Pokud je0, naslouchá donekonečna, dokud není rozpoznáno slovo. Pokud je-1, běží v neblokujícím režimu a okamžitě vrátí(None, average_scores), pokud není rozpoznáno žádné slovo; audio streaming zůstane spuštěný. U jakékoli kladné hodnoty naslouchá tolik milisekund a poté při vypršení limitu vrátí(None, average_scores).callbackje volitelný objekt volaný jakocallback(label, average_scores), když je rozpoznáno slovo, namísto vracení hodnoty. V kombinaci stimeout=0to umožňuje nepřetržité rozpoznávání.thresholdje minimální průměrná spolehlivost vyžadovaná pro přijetí rozpoznání.filterje seznam řetězců se štítky, které se mají přijmout. Rozpoznání mimo tento seznam jsou ignorována.