ml.apps — ML-приложения¶
Модуль ml.apps содержит высокоуровневые классы ML-приложений, построенные поверх ml.Model.
класс 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.
preprocessor— это аудиопредобработчикml.Model. ЕслиNone, загружается/rom/audio_preprocessor.tflite.micro_speech— это модель распознавания речиml.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в качестве функции обратного вызова. Ничего не делает, если потоковая передача уже запущена.
- 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— это список строк меток, которые принимаются. Распознавания вне этого списка игнорируются.