micro_speech.py
# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2024 لشركة OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# صُممت وحدة MicroSpeech لمعالجة الصوت والتعرف على الكلام في الوقت الفعلي
# على منصات المتحكمات الدقيقة. تستفيد من نماذج مدرَّبة مسبقًا للمعالجة الأولية للصوت و
# التعرف على الكلام، مُحسَّنة خصيصًا لاكتشاف كلمات مفتاحية مثل "Yes" و"No".
import time
from ml.apps import MicroSpeech
def callback(label, scores):
print(f'\nHeard: "{label}" @{time.ticks_ms()}ms Scores: {scores}')
# بشكل افتراضي، يستخدم كائن MicroSpeech المعالج الأولي المدمج للصوت (float) و
# وحدة micro speech للمعالجة الأولية للصوت والتعرف على الكلام، على التوالي.
# يمكن للمستخدم تجاوز كليهما عن طريق تمرير نموذجين:
# MicroSpeech(preprocessor=ml.Model(...), micro_speech=ml.Model(...), labels=["label",...])
speech = MicroSpeech()
# يبدأ بث الصوت ويعالج الصوت الوارد للتعرف على أوامر الكلام.
# إذا تم تمرير دالة رد نداء (callback)، ستستمر listen() في حلقة إلى الأبد وتستدعي الدالة عند اكتشاف
# كلمة مفتاحية. بدلاً من ذلك، يمكن استدعاء `listen()` بمهلة زمنية (بالميلي ثانية)، وستقوم
# بالعودة إذا انتهت المهلة الزمنية قبل اكتشاف كلمة مفتاحية.
speech.listen(callback=callback, threshold=0.70)