ml.apps --- تطبيقات تعلّم الآلة

تحتوي الوحدة ml.apps على فئات تطبيقات تعلّم الآلة عالية المستوى المبنية فوق 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.

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 كدالة رد النداء. لا تفعل شيئاً إن كان التدفق قد بدأ بالفعل.

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