ml.apps — ML-sovellukset

ml.apps-moduuli sisältää korkean tason ML-sovellusluokat, jotka on rakennettu ml.Model-luokan päälle.

class MicroSpeech – Puheentunnistus

MicroSpeech-objekti tunnistaa yksinkertaisia puhuttuja sanoja käyttäen TensorFlow Lite for Microcontrollers -kirjaston MicroSpeech-mallia. Oletusmalli tunnistaa sanat "Yes" ja "No".

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

Luo MicroSpeech-objektin.

preprocessor on äänen esikäsittelijä ml.Model. Jos None, ladataan /rom/audio_preprocessor.tflite.

micro_speech on puheentunnistuksen ml.Model. Jos None, ladataan /rom/micro_speech.tflite.

labels on lista luokkanimimerkkijonoja, jotka vastaavat mallin tulostekategorioita. Jos None, luokkanimet otetaan kohteesta micro_speech.labels.

Kaikki ylimääräiset avainsana-argumentit välitetään edelleen audio.init()-funktiolle (ääni-oheislaite alustetaan asetuksilla channels=1, frequency=16000 ja samples=320).

audio_callback(buf: bytes) None

Sisäinen äänivirran takaisinkutsu. Lisää uudet näytteet buf-puskurista vierivään äänipuskuriin, päivittää spektrogrammin ajamalla preprocessor-mallin uusimmalle ikkunalle ja päivittää ennustehistorian ajamalla micro_speech-mallin spektrogrammille. Ei normaalisti kutsuta suoraan.

start_audio_streaming() None

Tyhjentää spektrogrammin ja ennustehistorian ja käynnistää sitten äänivirran takaisinkutsulla MicroSpeech.audio_callback. Ei tee mitään, jos virtaus on jo käynnistetty.

stop_audio_streaming() None

Pysäyttää äänivirran.

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

Kuuntelee puhuttua sanaa ja palauttaa monikon (label, average_scores) heti, kun havaitaan luokkanimi, jonka keskiarvotettu pistemäärä on yli threshold-arvon ja joka sisältyy filter-joukkoon. Kutsuu MicroSpeech.start_audio_streaming-metodia, jos virtaus ei ole jo käynnissä.

timeout on enimmäisaika millisekunteina kuunteluun. Jos 0, kuuntelee loputtomiin, kunnes sana tunnistetaan. Jos -1, toimii ei-estävässä tilassa ja palaa välittömästi arvolla (None, average_scores), jos sanaa ei tunnistettu; äänivirta jätetään käyntiin. Minkä tahansa positiivisen arvon kohdalla kuuntelee kyseisen määrän millisekunteja ja palauttaa sitten aikakatkaisun yhteydessä (None, average_scores).

callback on valinnainen kutsuttava, joka kutsutaan muodossa callback(label, average_scores), kun sana tunnistetaan, palauttamisen sijaan. Yhdistettynä timeout=0-asetukseen tämä mahdollistaa jatkuvan tunnistuksen.

threshold on vähimmäiskeskiarvotettu luottamus, joka vaaditaan tunnistuksen hyväksymiseen.

filter on lista hyväksyttäviä luokkanimimerkkijonoja. Tämän listan ulkopuoliset tunnistukset jätetään huomiotta.

_SLICE_SIZE: int

Piirteiden määrä spektrogrammin viipaletta kohti (40).

_SLICE_COUNT: int

Tallennettujen spektrogrammiviipaleiden määrä (49).

_SLICE_TIME_MS: int

Yhden viipaleen aikajänne millisekunteina (30).

_AUDIO_FREQUENCY: int

Äänen näytteenottotaajuus hertseinä (16000).

_SAMPLES_PER_STEP: int

Äänen näytteiden määrä 10 ms:n askelta kohti (160).

_CATEGORY_COUNT: int

Tulostekategorioiden määrä (4).

_AVERAGE_WINDOW_SAMPLES: int

Tasoitusikkunan yli keskiarvoistettujen ennustekehysten määrä (1020 // _SLICE_TIME_MS).