ml.apps --- Aplikasi ML

Modul ml.apps berisi kelas aplikasi ML tingkat tinggi yang dibangun di atas ml.Model.

class MicroSpeech -- Pengenalan Ucapan

Objek MicroSpeech mengenali kata-kata lisan sederhana menggunakan model MicroSpeech dari TensorFlow Lite untuk Mikrokontroler. Model default mengenali "Yes" dan "No".

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

Membuat objek MicroSpeech.

preprocessor adalah ml.Model praprosesor audio. Jika None, /rom/audio_preprocessor.tflite dimuat.

micro_speech adalah ml.Model pengenalan ucapan. Jika None, /rom/micro_speech.tflite dimuat.

labels adalah daftar string label yang sesuai dengan kategori keluaran model. Jika None, label diambil dari micro_speech.labels.

Argumen kata kunci tambahan apa pun diteruskan ke audio.init() (periferal audio diinisialisasi dengan channels=1, frequency=16000, dan samples=320).

audio_callback(buf: bytes) None

Callback streaming audio internal. Menambahkan sampel baru dari buf ke dalam buffer audio bergilir, memperbarui spektrogram dengan menjalankan model preprocessor pada jendela terbaru, dan memperbarui riwayat prediksi dengan menjalankan model micro_speech pada spektrogram. Biasanya tidak dipanggil langsung.

start_audio_streaming() None

Membersihkan spektrogram dan riwayat prediksi, lalu memulai streaming audio dengan MicroSpeech.audio_callback sebagai callback. Tidak beroperasi jika streaming sudah dimulai.

stop_audio_streaming() None

Menghentikan streaming audio.

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

Mendengarkan kata yang diucapkan dan mengembalikan tuple (label, average_scores) setelah label yang skor rata-ratanya di atas threshold dan terdapat dalam filter terdeteksi. Memanggil MicroSpeech.start_audio_streaming jika belum streaming.

timeout adalah waktu maksimum dalam milidetik untuk mendengarkan. Jika 0, mendengarkan tanpa batas waktu hingga kata dikenali. Jika -1, berjalan dalam mode non-blocking dan segera mengembalikan (None, average_scores) jika tidak ada kata yang dikenali; streaming audio dibiarkan berjalan. Untuk nilai positif apa pun, mendengarkan selama milidetik tersebut lalu mengembalikan (None, average_scores) saat habis waktu.

callback adalah callable opsional yang dipanggil sebagai callback(label, average_scores) ketika kata dikenali alih-alih dikembalikan. Dikombinasikan dengan timeout=0, ini memungkinkan pengenalan berkelanjutan.

threshold adalah kepercayaan rata-rata minimum yang diperlukan untuk menerima pengenalan.

filter adalah daftar string label yang diterima. Pengenalan di luar daftar ini diabaikan.

_SLICE_SIZE: int

Jumlah fitur per irisan spektrogram (40).

_SLICE_COUNT: int

Jumlah irisan spektrogram yang tersimpan (49).

_SLICE_TIME_MS: int

Rentang waktu satu irisan dalam milidetik (30).

_AUDIO_FREQUENCY: int

Laju sampel audio dalam Hz (16000).

_SAMPLES_PER_STEP: int

Sampel audio per langkah 10 ms (160).

_CATEGORY_COUNT: int

Jumlah kategori keluaran (4).

_AVERAGE_WINDOW_SAMPLES: int

Jumlah bingkai prediksi yang dirata-ratakan selama jendela pemulusan (1020 // _SLICE_TIME_MS).