ml.apps --- Ứng dụng ML

Mô-đun ml.apps chứa các lớp ứng dụng ML cấp cao được xây dựng trên nền tảng ml.Model.

class MicroSpeech -- Nhận dạng giọng nói

Đối tượng MicroSpeech nhận dạng các từ nói đơn giản bằng cách sử dụng mô hình (ML) MicroSpeech từ TensorFlow Lite for Microcontrollers. Mô hình mặc định nhận dạng "Yes""No".

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

Tạo một đối tượng MicroSpeech.

preprocessorml.Model tiền xử lý âm thanh. Nếu là None, /rom/audio_preprocessor.tflite sẽ được tải.

micro_speechml.Model nhận dạng giọng nói. Nếu là None, /rom/micro_speech.tflite sẽ được tải.

labels là danh sách các chuỗi nhãn khớp với các danh mục đầu ra của mô hình (ML). Nếu là None, các nhãn được lấy từ micro_speech.labels.

Bất kỳ đối số từ khóa bổ sung nào đều được chuyển tiếp đến audio.init() (ngoại vi âm thanh được khởi tạo với channels=1, frequency=16000, và samples=320).

audio_callback(buf: bytes) None

Hàm gọi lại phát trực tuyến âm thanh nội bộ. Thêm các mẫu mới từ buf vào bộ đệm âm thanh cuộn, cập nhật phổ tần bằng cách chạy mô hình (ML) preprocessor trên cửa sổ mới nhất, và cập nhật lịch sử dự đoán bằng cách chạy mô hình (ML) micro_speech trên phổ tần. Thường không được gọi trực tiếp.

start_audio_streaming() None

Xóa phổ tần và lịch sử dự đoán, sau đó bắt đầu phát trực tuyến âm thanh với MicroSpeech.audio_callback làm hàm gọi lại. Không làm gì nếu phát trực tuyến đã được bắt đầu.

stop_audio_streaming() None

Dừng phát trực tuyến âm thanh.

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

Lắng nghe một từ được nói và trả về một tuple (label, average_scores) khi phát hiện nhãn có điểm trung bình vượt ngưỡng threshold và có trong filter. Gọi MicroSpeech.start_audio_streaming nếu chưa phát trực tuyến.

timeout là thời gian lắng nghe tối đa tính bằng mili giây. Nếu là 0, lắng nghe vô thời hạn cho đến khi nhận ra một từ. Nếu là -1, chạy ở chế độ không chặn và trả về ngay lập tức với (None, average_scores) nếu không có từ nào được nhận ra; phát trực tuyến âm thanh vẫn tiếp tục chạy. Đối với bất kỳ giá trị dương nào, lắng nghe trong số mili giây đó rồi trả về (None, average_scores) khi hết thời gian.

callback là một hàm gọi được tùy chọn, được gọi là callback(label, average_scores) khi nhận ra một từ thay vì trả về. Kết hợp với timeout=0, điều này cho phép nhận dạng liên tục.

threshold là mức độ tin cậy trung bình tối thiểu cần thiết để chấp nhận một kết quả nhận dạng.

filter là danh sách các chuỗi nhãn cần chấp nhận. Các kết quả nhận dạng ngoài danh sách này sẽ bị bỏ qua.

_SLICE_SIZE: int

Số đặc trưng trên mỗi lát phổ tần (40).

_SLICE_COUNT: int

Số lát phổ tần được lưu trữ (49).

_SLICE_TIME_MS: int

Khoảng thời gian của một lát tính bằng mili giây (30).

_AUDIO_FREQUENCY: int

Tần số lấy mẫu âm thanh tính bằng Hz (16000).

_SAMPLES_PER_STEP: int

Số mẫu âm thanh trên mỗi bước 10 ms (160).

_CATEGORY_COUNT: int

Số danh mục đầu ra (4).

_AVERAGE_WINDOW_SAMPLES: int

Số khung hình dự đoán được tính trung bình trong cửa sổ làm mịn (1020 // _SLICE_TIME_MS).