ml.apps — ML alkalmazások

Az ml.apps modul magas szintű ML alkalmazásosztályokat tartalmaz, amelyek az ml.Model-re épülnek.

class MicroSpeech – Beszédfelismerés

A MicroSpeech objektum egyszerű kimondott szavakat ismer fel a TensorFlow Lite for Microcontrollers MicroSpeech modelljével. Az alapértelmezett modell a "Yes" és "No" szavakat ismeri fel.

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

Létrehoz egy MicroSpeech objektumot.

A preprocessor a hang-előfeldolgozó ml.Model. Ha None, a /rom/audio_preprocessor.tflite töltődik be.

A micro_speech a beszédfelismerő ml.Model. Ha None, a /rom/micro_speech.tflite töltődik be.

A labels a modell kimeneti kategóriáihoz illeszkedő címkeszövegek listája. Ha None, a címkék a micro_speech.labels-ből származnak.

Minden további kulcsszavas argumentum az audio.init() felé továbbítódik (a hangperiféria channels=1, frequency=16000 és samples=320 értékekkel inicializálódik).

audio_callback(buf: bytes) None

Belső hang-streamelési visszahívás. A buf-ból új mintákat fűz hozzá a gördülő hangpufferhez, frissíti a spektrogramot a preprocessor modell legutóbbi ablakon való futtatásával, és frissíti az előrejelzési előzményeket a micro_speech modell spektrogramon való futtatásával. Normál esetben nem hívják közvetlenül.

start_audio_streaming() None

Törli a spektrogramot és az előrejelzési előzményeket, majd elindítja a hang-streamelést a MicroSpeech.audio_callback visszahívással. Nem tesz semmit, ha a streamelés már elindult.

stop_audio_streaming() None

Leállítja a hang-streamelést.

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

Egy kimondott szóra figyel, és visszaad egy (label, average_scores) tuple-t, amint egy olyan címkét észlel, amelynek átlagolt pontszáma a threshold felett van, és a filter-ben szerepel. Meghívja a MicroSpeech.start_audio_streaming-et, ha még nem streamel.

A timeout a hallgatás maximális ideje milliszekundumban. Ha 0, határozatlan ideig hallgat, amíg egy szó fel nem ismerhető. Ha -1, nem blokkoló módban fut, és azonnal visszatér (None, average_scores) értékkel, ha nem ismer fel szót; a hang-streamelés futva marad. Bármely pozitív érték esetén annyi milliszekundumig hallgat, majd időtúllépéskor (None, average_scores) értéket ad vissza.

A callback egy opcionális hívható objektum, amelyet callback(label, average_scores) formában hív meg szó felismerésekor a visszatérés helyett. A timeout=0 értékkel kombinálva ez folyamatos felismerést tesz lehetővé.

A threshold a felismerés elfogadásához szükséges minimális átlagolt megbízhatóság.

A filter az elfogadandó címkeszövegek listája. Az ezen a listán kívüli felismeréseket figyelmen kívül hagyja.

_SLICE_SIZE: int

Jellemzők száma spektrogram-szeletenként (40).

_SLICE_COUNT: int

A tárolt spektrogram-szeletek száma (49).

_SLICE_TIME_MS: int

Egy szelet időtartama milliszekundumban (30).

_AUDIO_FREQUENCY: int

Hangmintavételezési sebesség Hz-ben (16000).

_SAMPLES_PER_STEP: int

Hangminták 10 ms-os lépésenként (160).

_CATEGORY_COUNT: int

Kimeneti kategóriák száma (4).

_AVERAGE_WINDOW_SAMPLES: int

A simítási ablakon átlagolt előrejelzési képkockák száma (1020 // _SLICE_TIME_MS).