ml.apps — ML-Apps¶
Das Modul ml.apps enthält High-Level-ML-Anwendungsklassen, die auf ml.Model aufbauen.
class MicroSpeech – Spracherkennung¶
Das MicroSpeech-Objekt erkennt einfache gesprochene Wörter mithilfe des MicroSpeech-Modells von TensorFlow Lite for Microcontrollers. Das Standardmodell erkennt "Yes" und "No".
- class ml.apps.MicroSpeech(preprocessor: ml.Model = None, micro_speech: ml.Model = None, labels: list[str] = None, **kwargs)¶
Erstellt ein MicroSpeech-Objekt.
preprocessorist das Audio-Vorverarbeitungs-ml.Model. WennNone, wird/rom/audio_preprocessor.tflitegeladen.micro_speechist das Spracherkennungs-ml.Model. WennNone, wird/rom/micro_speech.tflitegeladen.labelsist eine Liste von Label-Strings, die den Ausgabekategorien des Modells entsprechen. WennNone, werden die Labels ausmicro_speech.labelsübernommen.Alle zusätzlichen Schlüsselwortargumente werden an
audio.init()weitergereicht (das Audio-Peripheriegerät wird mitchannels=1,frequency=16000undsamples=320initialisiert).- audio_callback(buf: bytes) None¶
Interner Audio-Streaming-Callback. Hängt neue Samples aus
bufan den rollierenden Audio-Puffer an, aktualisiert das Spektrogramm, indem daspreprocessor-Modell auf dem neuesten Fenster ausgeführt wird, und aktualisiert die Vorhersagehistorie, indem dasmicro_speech-Modell auf dem Spektrogramm ausgeführt wird. Wird normalerweise nicht direkt aufgerufen.
- start_audio_streaming() None¶
Löscht das Spektrogramm und die Vorhersagehistorie und startet dann das Audio-Streaming mit
MicroSpeech.audio_callbackals Callback. Tut nichts, wenn das Streaming bereits gestartet ist.
- listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]¶
Lauscht auf ein gesprochenes Wort und gibt ein Tupel
(label, average_scores)zurück, sobald ein Label erkannt wird, dessen gemittelter Score überthresholdliegt und das infilterenthalten ist. RuftMicroSpeech.start_audio_streamingauf, falls noch nicht gestreamt wird.timeoutist die maximale Zeit in Millisekunden, für die gelauscht wird. Bei0wird unbegrenzt gelauscht, bis ein Wort erkannt wird. Bei-1läuft die Methode im nicht-blockierenden Modus und kehrt sofort mit(None, average_scores)zurück, wenn kein Wort erkannt wird; das Audio-Streaming bleibt aktiv. Bei jedem positiven Wert wird für diese Anzahl an Millisekunden gelauscht und bei einem Timeout(None, average_scores)zurückgegeben.callbackist ein optionales aufrufbares Objekt, das alscallback(label, average_scores)aufgerufen wird, wenn ein Wort erkannt wird, anstatt zurückzukehren. In Kombination mittimeout=0ermöglicht dies eine kontinuierliche Erkennung.thresholdist die minimale gemittelte Konfidenz, die erforderlich ist, um eine Erkennung zu akzeptieren.filterist die Liste der zu akzeptierenden Label-Strings. Erkennungen außerhalb dieser Liste werden ignoriert.