ml.apps — ML Uygulamaları

ml.apps modülü, ml.Model üzerine inşa edilmiş üst düzey ML uygulama sınıflarını içerir.

class MicroSpeech – Konuşma Tanıma

MicroSpeech nesnesi, TensorFlow Lite for Microcontrollers’ın MicroSpeech modelini kullanarak basit konuşulan sözcükleri tanır. Varsayılan model "Yes" ve "No" sözcüklerini tanır.

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

Bir MicroSpeech nesnesi oluşturur.

preprocessor, ses ön işlemcisi ml.Model öğesidir. None ise /rom/audio_preprocessor.tflite yüklenir.

micro_speech, konuşma tanıma ml.Model öğesidir. None ise /rom/micro_speech.tflite yüklenir.

labels, model çıkış kategorileriyle eşleşen etiket dizelerinin listesidir. None ise etiketler micro_speech.labels öğesinden alınır.

Ek anahtar sözcük argümanları audio.init() öğesine iletilir (ses çevre birimi channels=1, frequency=16000 ve samples=320 ile başlatılır).

audio_callback(buf: bytes) None

Dahili ses akışı geri çağırması (callback). buf öğesinden yeni örnekleri kayan ses arabelleğine ekler, en son pencerede preprocessor modelini çalıştırarak spektrogramı günceller ve spektrogram üzerinde micro_speech modelini çalıştırarak tahmin geçmişini günceller. Normalde doğrudan çağrılmaz.

start_audio_streaming() None

Spektrogramı ve tahmin geçmişini temizler, ardından geri çağırma (callback) olarak MicroSpeech.audio_callback ile ses akışını başlatır. Akış zaten başlatılmışsa bir işlem yapmaz.

stop_audio_streaming() None

Ses akışını durdurur.

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

Konuşulan bir sözcüğü dinler ve ortalama puanı threshold değerinin üzerinde olup filter içinde yer alan bir etiket tespit edildiğinde (label, average_scores) demetini döndürür. Henüz akış yapmıyorsa MicroSpeech.start_audio_streaming öğesini çağırır.

timeout, dinlenecek milisaniye cinsinden maksimum süredir. 0 ise bir sözcük tanınana kadar süresiz dinler. -1 ise engellemeyen modda çalışır ve bir sözcük tanınmazsa hemen (None, average_scores) ile döner; ses akışı çalışmaya devam eder. Herhangi bir pozitif değer için, o kadar milisaniye dinler ve ardından zaman aşımında (None, average_scores) döndürür.

callback, bir sözcük tanındığında döndürmek yerine callback(label, average_scores) olarak çağrılan isteğe bağlı bir çağrılabilirdir. timeout=0 ile birleştirildiğinde bu, sürekli tanımaya olanak tanır.

threshold, bir tanımayı kabul etmek için gereken minimum ortalama güven değeridir.

filter, kabul edilecek etiket dizelerinin listesidir. Bu listenin dışındaki tanımalar yok sayılır.

_SLICE_SIZE: int

Spektrogram dilimi başına öznitelik sayısı (40).

_SLICE_COUNT: int

Saklanan spektrogram dilimi sayısı (49).

_SLICE_TIME_MS: int

Bir dilimin milisaniye cinsinden zaman aralığı (30).

_AUDIO_FREQUENCY: int

Hz cinsinden ses örnekleme hızı (16000).

_SAMPLES_PER_STEP: int

10 ms adım başına ses örneği sayısı (160).

_CATEGORY_COUNT: int

Çıkış kategorisi sayısı (4).

_AVERAGE_WINDOW_SAMPLES: int

Yumuşatma penceresi üzerinde ortalaması alınan tahmin çerçevesi sayısı (1020 // _SLICE_TIME_MS).