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).