ml.apps --- ML Apps¶
โมดูล ml.apps มีคลาสแอปพลิเคชัน ML ระดับสูงที่สร้างบนพื้นฐานของ ml.Model
คลาส 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คือ audio preprocessorml.ModelหากNoneจะโหลด/rom/audio_preprocessor.tflitemicro_speechคือ speech recognitionml.ModelหากNoneจะโหลด/rom/micro_speech.tflitelabelsคือรายการสตริงป้ายกำกับที่ตรงกับหมวดหมู่เอาต์พุตของโมเดล หากNoneป้ายกำกับจะถูกนำมาจากmicro_speech.labelsอาร์กิวเมนต์คีย์เวิร์ดเพิ่มเติมจะถูกส่งต่อไปยัง
audio.init()(โดยอุปกรณ์ต่อพ่วงเสียงจะเริ่มต้นด้วยchannels=1,frequency=16000, และsamples=320)- audio_callback(buf: bytes) None¶
คอลแบ็กการสตรีมเสียงภายใน เพิ่มตัวอย่างใหม่จาก
bufเข้าสู่บัฟเฟอร์เสียงแบบ rolling อัปเดต spectrogram โดยรันโมเดลpreprocessorบนหน้าต่างล่าสุด และอัปเดตประวัติการทำนายโดยรันโมเดลmicro_speechบน spectrogram โดยปกติไม่ควรเรียกโดยตรง
- start_audio_streaming() None¶
ล้าง spectrogram และประวัติการทำนาย จากนั้นเริ่มการสตรีมเสียงโดยใช้
MicroSpeech.audio_callbackเป็น callback ไม่ทำอะไรหากกำลังสตรีมอยู่แล้ว
- listen(timeout: int = 0, callback: callable = None, threshold: float = 0.65, filter: list[str] = ['Yes', 'No']) tuple[str, numpy.ndarray]¶
ฟังคำพูดและคืนค่า tuple ของ
(label, average_scores)เมื่อตรวจพบป้ายกำกับที่มีคะแนนเฉลี่ยสูงกว่าthresholdและอยู่ในfilterเรียกMicroSpeech.start_audio_streamingหากยังไม่ได้สตรีมtimeoutคือเวลาสูงสุดในการฟัง เป็นมิลลิวินาที หาก0จะฟังไม่หยุดจนกว่าจะรู้จำคำได้ หาก-1จะทำงานในโหมด non-blocking และคืน(None, average_scores)ทันทีหากไม่รู้จำคำใด โดยยังคงสตรีมเสียงต่อไป สำหรับค่าบวก จะฟังตามเวลาที่กำหนดแล้วคืน(None, average_scores)เมื่อหมดเวลาcallbackคือ callable ที่ไม่บังคับ เรียกเป็นcallback(label, average_scores)เมื่อรู้จำคำได้แทนที่จะคืนค่า เมื่อใช้ร่วมกับtimeout=0ช่วยให้รู้จำเสียงต่อเนื่องได้thresholdคือความเชื่อมั่นเฉลี่ยขั้นต่ำที่ต้องการเพื่อยอมรับการรู้จำfilterคือรายการสตริงป้ายกำกับที่ยอมรับ การรู้จำที่อยู่นอกรายการนี้จะถูกละเว้น