ml.apps — ML-застосунки#

Модуль ml.apps містить високорівневі класи ML-застосунків, побудовані на основі ml.Model.

class MicroSpeech – Розпізнавання мовлення#

Об’єкт MicroSpeech розпізнає прості вимовлені слова за допомогою моделі (МН) MicroSpeech з TensorFlow Lite for Microcontrollers. Модель за замовчуванням розпізнає "Yes" та "No".

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

Створює об’єкт MicroSpeech.

preprocessorml.Model аудіопрепроцесора. Якщо None, завантажується /rom/audio_preprocessor.tflite.

micro_speechml.Model розпізнавання мовлення. Якщо None, завантажується /rom/micro_speech.tflite.

labels — список рядків міток, що відповідають вихідним категоріям моделі (МН). Якщо None, мітки беруться з micro_speech.labels.

Будь-які додаткові аргументи-ключові слова передаються до audio.init() (аудіо периферійний пристрій ініціалізується з channels=1, frequency=16000 та samples=320).

audio_callback(buf: bytes) None#

Внутрішній зворотний виклик потокового передавання аудіо. Додає нові зразки з buf до ковзного аудіобуфера, оновлює спектрограму, запускаючи модель (МН) preprocessor на останньому вікні, та оновлює історію передбачень, запускаючи модель (МН) micro_speech на спектрограмі. Зазвичай не викликається безпосередньо.

start_audio_streaming() None#

Очищає спектрограму та історію передбачень, а потім запускає потокове передавання аудіо з MicroSpeech.audio_callback як зворотним викликом. Не робить нічого, якщо потокове передавання вже запущено.

stop_audio_streaming() None#

Зупиняє потокове передавання аудіо.

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

Слухає вимовлене слово та повертає кортеж (label, average_scores), як тільки мітка, усереднений показник якої перевищує threshold та яка міститься у filter, виявлена. Викликає MicroSpeech.start_audio_streaming, якщо потокове передавання ще не запущено.

timeout — максимальний час прослуховування в мілісекундах. Якщо 0, слухає необмежено до розпізнавання слова. Якщо -1, працює в неблокуючому режимі та негайно повертає (None, average_scores), якщо слово не розпізнано; потокове передавання аудіо залишається активним. Для будь-якого позитивного значення слухає стільки мілісекунд, а потім повертає (None, average_scores) після таймауту.

callback — необов’язковий виклик, що викликається як callback(label, average_scores) при розпізнаванні слова замість повернення. У поєднанні з timeout=0 дозволяє безперервне розпізнавання.

threshold — мінімальна усереднена впевненість, необхідна для прийняття розпізнавання.

filter — список рядків міток для прийняття. Розпізнавання, що не входять до цього списку, ігноруються.

_SLICE_SIZE: int#

Кількість ознак на зріз спектрограми (40).

_SLICE_COUNT: int#

Кількість збережених зрізів спектрограми (49).

_SLICE_TIME_MS: int#

Часовий проміжок одного зрізу в мілісекундах (30).

_AUDIO_FREQUENCY: int#

Частота дискретизації аудіо в Гц (16000).

_SAMPLES_PER_STEP: int#

Кількість аудіозразків за крок 10 мс (160).

_CATEGORY_COUNT: int#

Кількість вихідних категорій (4).

_AVERAGE_WINDOW_SAMPLES: int#

Кількість кадрів передбачень, усереднених у вікні згладжування (1020 // _SLICE_TIME_MS).