ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

สำรวจวิธีการนำการระบุคำสำคัญและการควบคุมด้วยเสียงไปใช้กับ MCU ที่ใช้พลังงานต่ำ

ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

หลักพื้นฐานของการค้นหาคำหลัก

อุปกรณ์อัจฉริยะจะทำงานอยู่เสมอ โดยจะคอยฟังคำสั่ง "ปลุก" ที่กำหนดไว้ล่วงหน้า เช่น "Alexa", "Ok Google" เป็นต้น การกระทำนี้เรียกกันทั่วไปว่า "การตรวจจับคำสำคัญ" (Keyword Spotting: KWS) เมื่อตรวจพบคำสำคัญ อุปกรณ์จะเริ่มทำงานและระบบจดจำเสียงเต็มรูปแบบจะเปิดใช้งานบนคลาวด์หรือบนอุปกรณ์ ในบางอุปกรณ์ คำสำคัญยังถูกใช้เป็นคำสั่งเสียง เช่น 'hello, start, stop' ในหุ่นยนต์ดูดฝุ่นที่สั่งงานด้วยเสียง 

เนื่องจากระบบ KWS จะทำงานตลอดเวลา จึงต้องใช้พลังงานต่ำมาก นอกจากนี้ ระบบ KWS ควรตรวจจับคำสำคัญที่พูดออกมาด้วยความแม่นยำสูงและความหน่วงต่ำเพื่อให้ได้ประสบการณ์การใช้งานที่ดีที่สุด การใช้พลังงานต่ำเป็นสิ่งสำคัญอย่างยิ่งสำหรับอุปกรณ์พกพา เช่น สมาร์ทโฟนและอุปกรณ์สวมใส่ 

ข้อกำหนดของระบบที่เข้มงวดและขัดแย้งกันเหล่านี้ ร่วมกับจำนวนแอปพลิเคชันคำสั่งเสียงและผู้ฟังที่เพิ่มมากขึ้น ทำให้ KWS กลายเป็นพื้นที่การวิจัยที่มีความเกี่ยวข้องอย่างมาก 

จนกระทั่งเมื่อไม่นานมานี้ อุปกรณ์เดียวที่สามารถทำงาน KWS ที่ระดับพลังงานที่เข้ากันได้กับระบบ Edge ได้คือไมโครคอนโทรลเลอร์ (MCU) พลังงานต่ำและโปรเซสเซอร์สัญญาณดิจิทัล (DSP) Syntiant ผู้ออกแบบโปรเซสเซอร์ ได้เปิดตัวซีรีส์ NDP10x ของ Neural Decision Processors (NDP) ซึ่งเป็นชุดชิปประสิทธิภาพสูงที่สร้างขึ้นสำหรับ KWS โดยเฉพาะ โดยใช้เครือข่ายประสาทเทียมเชิงลึก ซึ่งเพิ่มตัวเลือกให้กับนักออกแบบระบบ

บทนำเกี่ยวกับไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์ หรือที่บางครั้งเรียกว่าตัวควบคุมแบบฝังตัว มักพบในแอปพลิเคชันทั้งแบบมีและไม่มีคำสั่งเสียง เช่น ยานพาหนะ หุ่นยนต์ เครื่องจักรสำนักงาน อุปกรณ์การแพทย์ เครื่องจำหน่ายสินค้าอัตโนมัติ และเครื่องใช้ไฟฟ้าภายในบ้าน ไมโครคอนโทรลเลอร์เหล่านี้ได้รับการพัฒนาครั้งแรกโดย Intel ในช่วงต้นทศวรรษ 1970 และปัจจุบันผลิตโดยผู้ผลิตอื่นๆ อีกมากมาย รวมถึง Microchip (ไมโครคอนโทรลเลอร์ PIC), Atmel (ไมโครคอนโทรลเลอร์ AVR), Hitachi, Phillips, Maxim, NXP, Intel และอื่นๆ

ความต้องการใช้พลังงานต่ำสำหรับระบบค้นหาคำสำคัญทำให้ไมโครคอนโทรลเลอร์เป็นตัวเลือกที่เหมาะสมที่สุดสำหรับการติดตั้ง KWS ในระบบที่เปิดใช้งานตลอดเวลา อย่างไรก็ตาม การติดตั้ง KWS บนไมโครคอนโทรลเลอร์ที่ใช้เครือข่ายประสาทเทียมนั้นมาพร้อมกับความท้าทายด้านขนาดหน่วยความจำและทรัพยากรคอมพิวเตอร์ที่จำกัด 

บทนำเกี่ยวกับโปรเซสเซอร์การตัดสินใจทางประสาท

Syntiant R NDP100 ™ หน่วยประมวลผลการตัดสินใจ แบบไมโครวัตต์ (Neural Decision Processor ™) เป็นอุปกรณ์ซิลิคอนเชิงพาณิชย์ตัวแรกและตัวเดียวในปัจจุบันที่ออกแบบมาเพื่อนำการประมวลผลการเรียนรู้ของเครื่องไปใช้กับอุปกรณ์สำหรับผู้บริโภคแทบทุกชนิด ชิปที่สร้างขึ้นเองนี้ได้รับการออกแบบมาโดยเฉพาะเพื่อรันเครือข่ายประสาทเทียม TensorFlow TensorFlow คือไลบรารีซอฟต์แวร์โอเพนซอร์สที่พัฒนาโดย Google และเปิดให้ใช้งานฟรีสำหรับการไหลของข้อมูลและการเขียนโปรแกรมแบบแยกความแตกต่างในงานที่หลากหลาย 

Syntiant NDP ได้รับการออกแบบมาโดยเฉพาะสำหรับอุปกรณ์ที่ใช้คำสั่งเสียงและมีความต้องการพลังงานต่ำเป็นพิเศษ ทำให้เหมาะอย่างยิ่งสำหรับอุปกรณ์ที่มีระบบ KWS

ชิป Syntiant NDP100 และ NDP101 ได้รับการรับรองจาก Amazon ซึ่งทำให้สามารถใช้โปรเซสเซอร์ประสาทของบริษัทในอุปกรณ์ที่รองรับ Alexa ได้ อย่างไรก็ตาม Syntiant NDP ไม่ได้จำกัดอยู่แค่เฉพาะอุปกรณ์ Alexa เท่านั้น

โปรเซสเซอร์การตัดสินใจทางประสาท Syntiant NDP100 กำลังไฟไมโครวัตต์ 

มันเปรียบเทียบกันยังไงและฉันต้องการอะไรสำหรับอุปกรณ์ของฉัน?

นักออกแบบระบบต้องเผชิญกับตัวเลือกคุณภาพสูงที่เพิ่มขึ้นเรื่อยๆ สำหรับการเพิ่มอัลกอริทึม KWS ให้กับอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อินเทอร์เฟซคำสั่งเสียงมักกำหนดให้อุปกรณ์ต้อง "เปิดอยู่เสมอ" และคอยฟังคำปลุก (wake word) ดังนั้นการใช้พลังงานต่ำจึงเป็นสิ่งสำคัญ อย่างไรก็ตาม การเปรียบเทียบการใช้พลังงานของอุปกรณ์ต่างๆ จากผู้ผลิตที่แตกต่างกันอาจเป็นเรื่องยาก เอกสารข้อมูลอาจอธิบายการใช้พลังงานปัจจุบันเป็นหน่วย uA/MHz แต่โดยทั่วไปแล้วไม่สามารถแปลงค่าดังกล่าวเป็นพลังงานที่จำเป็นสำหรับงานที่กำหนดได้ นอกจากนี้ โทโพโลยีเครือข่ายที่แตกต่างกัน ขั้นตอนการฝึกอบรม ฯลฯ อาจส่งผลต่อความแม่นยำของระบบและการใช้พลังงาน

คำถามสำคัญที่นักออกแบบระบบต้องถามก็คือ โซลูชันที่รันอัลกอริทึม KWS ด้วยความแม่นยำเพียงพอที่จะตอบสนองกรณีการใช้งานจะเพิ่มการใช้พลังงานเท่าใด

การจัดรายการ

การทดสอบได้เปรียบเทียบตัวเลือกพลังงานต่ำสุดหลายตัวสำหรับ KWS ที่มีอยู่ รวมถึง NDP10x ของพวกเขาเอง และเปรียบเทียบความเร็ว ความแม่นยำ และพลังงานในงานทั่วไป:  ชุดข้อมูล คีย์เวิร์ด Google ที่รวบรวมโดย Pete Warden จาก Google 

การทดสอบนี้ประกอบด้วย บอร์ด STM32F746 Discovery , STM32L476G และ บอร์ดประเมินผลรวมถึง Ambiq Apollo 3 Blue ที่ใช้ SparkFun Edge Boardซึ่งเป็นความพยายามร่วมกันของ Google, Ambiq และ SparkFun และโซลูชัน NDP100 ของ Syntiant ที่ใช้บอร์ดพัฒนาภายในของตนเอง

การทดสอบ

นักวิจัยได้ปรับปรุงโค้ดเพื่อรันชุดข้อมูลจำนวน 20 รอบการอนุมานบนแพลตฟอร์มแต่ละแพลตฟอร์ม สำหรับเป้าหมายของ MCU เสียงอินพุตจะถูกนำมาจากรูปคลื่นที่บันทึกไว้ล่วงหน้าซึ่งเก็บไว้ในหน่วยความจำ เพื่อหลีกเลี่ยงการปนเปื้อนของพลังงานไมโครโฟนในการวัด พลังงานที่วัดได้ประกอบด้วยการคำนวณคุณสมบัติพลังงานของ MFCC หรือฟิลเตอร์แบงค์ แต่ไม่รวม ADC หรือพลังงานไมโครโฟน การวัด NDP ประกอบด้วยการลดทอน สัญญาณเอาต์พุต PDMจากไมโครโฟนดิจิทัล รวมถึงการสกัดคุณสมบัติและพลังงานอนุมานประสาท 

MCU มักจะมีอุปกรณ์ต่อพ่วงทั้งแบบออนและออฟชิปหลายตัวที่รับพลังงานจากแหล่งจ่ายเดียวกัน ดังนั้นทีม Syntiant จึงลบค่าที่วัดได้ของกระแสพื้นฐานที่วัดได้ในขณะที่ MCU เปิดเครื่องอยู่แต่ไม่ได้ใช้งาน ผลการทดสอบ NDP เป็นการวัดโดยตรงโดยไม่มีการหักค่าใดๆ การทดลอง MCU ดำเนินการโดยใช้การตั้งค่าฮาร์ดแวร์ตามที่กำหนดไว้ในซอฟต์แวร์โอเพนซอร์สที่ลิงก์ด้านบน

ผลลัพธ์

ตารางด้านล่างนี้สรุปผลการวัด การเปรียบเทียบแบบ "เคียงข้างกัน" ง่ายๆ เป็นเรื่องยากเนื่องจากต้องแลกมาด้วยความซับซ้อนของแบบจำลอง ความแม่นยำ เวลาในการประมวลผล และพลังงาน เพื่อให้การอ่านผลชัดเจนยิ่งขึ้น นักวิจัยจึงเปรียบเทียบผลลัพธ์ทั้งสามแกน ดังนี้

- พลังงานต่อการอนุมานคือพลังงานที่จำเป็นในการประมวลผลเฟรมหนึ่งของตัวอย่างเสียงและสร้างป้ายกำกับ (เช่น "ใช่" "ไม่" "สวัสดี") รวมถึงการสกัดคุณลักษณะและการอนุมานที่กำลังทำงาน

- เวลาในการอนุมานคือเวลาที่จำเป็นในการประมวลผลเฟรมเสียงหนึ่งเฟรม และอัตราเฟรมจะเป็นค่าผกผัน ซึ่งระบุถึงจำนวนเฟรมเสียงสูงสุดต่อวินาทีที่โปรเซสเซอร์สามารถประมวลผลได้ด้วยเครือข่ายที่กำหนด 

- ความแม่นยำ G10 คือผลลัพธ์ความแม่นยำของงานคีย์เวิร์ด Google-10

ค่าประมาณสำหรับการดำเนินการและจำนวนพารามิเตอร์สำหรับเครือข่าย Small FC และ Small DS-CNN นำมาจากเอกสาร “Hello Edge” สำหรับเครือข่าย TinyConv ที่ใช้บนชิป Ambiq ตัวเลขเหล่านี้ได้มาจากโค้ดในตัวอย่าง TensorFlow “Speech Commands”

นี่หมายถึงอะไร?

เห็นได้ชัดว่าเส้นทางการประมวลผลที่สร้างขึ้นโดยเฉพาะใน NDP100 ช่วยประหยัดพลังงานได้อย่างมากเมื่อเทียบกับสถาปัตยกรรมโปรแกรมที่เก็บไว้ของโซลูชัน MCU ผลลัพธ์ด้านพลังงานที่ใกล้เคียงที่สุดจาก Ambiq Apollo 3 Blue สูงกว่าพลังงานของ NDP ถึง 27 เท่า โดยทำงานบนเครือข่ายที่มีขนาดเล็กกว่าและมีความแม่นยำน้อยกว่ามาก 

STM32L4786 ที่รันเครือข่าย DS-CNN ขนาดเล็กมีความแม่นยำเทียบเท่ากับ NDP แต่ต้องใช้พลังงานมากกว่า 193 เท่า

อัตราเฟรมก็เป็นสิ่งสำคัญที่ต้องพิจารณาเช่นกัน โดยทั่วไประบบ KWS ที่ใช้งานจริงต้องการอย่างน้อย 20 และบ่อยครั้งถึง 100 เฟรมต่อวินาที เพื่อหลีกเลี่ยงการ "ก้าวข้าม" ความถี่เสียงเป้าหมาย นอกจากนี้ NDP ยังมีข้อได้เปรียบด้านความเร็วเหนือ MCU ที่ใช้พลังงานต่ำ ด้วยการทำงานแบบขนานและเส้นทางข้อมูลเฉพาะ

ข้อได้เปรียบด้านพลังงานของ Apollo มาพร้อมกับค่าปรับความเร็ว ส่งผลให้เฟรมเรตสูงสุดอยู่ที่ 3.7fps ซึ่งโดยทั่วไปแล้วจะทำให้ความแม่นยำในโลกแห่งความเป็นจริงต่ำกว่าความแม่นยำของซอฟต์แวร์ที่คาดการณ์ไว้ที่ 66 เปอร์เซ็นต์ (ใน TensorFlow บนข้อมูลที่จัดตำแหน่งไว้ล่วงหน้า) 

ในบรรดา MCU ที่ได้รับการทดสอบ มีเพียง STM32F746 จากสายผลิตภัณฑ์ประสิทธิภาพสูง F7xx ของ ST เท่านั้นที่สามารถทำความเร็วได้เกิน 20 fps และทำได้โดยมีต้นทุนด้านพลังงานสูงกว่า NDP ประมาณ 700 เท่า ส่งผลให้ต้นทุนด้านพลังงานอยู่ที่ประมาณ 50 mW (มิลลิวัตต์) นอกเหนือจากพลังงานพื้นฐานที่จำเป็นในการจ่ายพลังงานให้กับ MCU ในช่วงแรก

บทสรุป

การทดสอบนี้แสดงให้เห็นอย่างชัดเจนว่าเอนจินประมวลผลที่สร้างขึ้นโดยเฉพาะสำหรับการอนุมานทางประสาทสามารถให้ข้อได้เปรียบด้านพลังงานและความเร็วเหนือสถาปัตยกรรมโปรแกรมที่จัดเก็บไว้ การพัฒนาอย่างต่อเนื่องของ MCU ที่ใช้พลังงานต่ำเป็นพิเศษและชิปประสิทธิภาพสูงที่สร้างขึ้นโดยเฉพาะจะนำพาเสียงไปสู่ขอบข่ายการใช้งานที่หลากหลาย ซึ่งอาจพลิกโฉมวิธีที่เราโต้ตอบกับเทคโนโลยี 

ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

สำรวจวิธีการนำการระบุคำสำคัญและการควบคุมด้วยเสียงไปใช้กับ MCU ที่ใช้พลังงานต่ำ

นักเขียนบทความ
by 
นักเขียนบทความ
ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

สำรวจวิธีการนำการระบุคำสำคัญและการควบคุมด้วยเสียงไปใช้กับ MCU ที่ใช้พลังงานต่ำ

หลักพื้นฐานของการค้นหาคำหลัก

อุปกรณ์อัจฉริยะจะทำงานอยู่เสมอ โดยจะคอยฟังคำสั่ง "ปลุก" ที่กำหนดไว้ล่วงหน้า เช่น "Alexa", "Ok Google" เป็นต้น การกระทำนี้เรียกกันทั่วไปว่า "การตรวจจับคำสำคัญ" (Keyword Spotting: KWS) เมื่อตรวจพบคำสำคัญ อุปกรณ์จะเริ่มทำงานและระบบจดจำเสียงเต็มรูปแบบจะเปิดใช้งานบนคลาวด์หรือบนอุปกรณ์ ในบางอุปกรณ์ คำสำคัญยังถูกใช้เป็นคำสั่งเสียง เช่น 'hello, start, stop' ในหุ่นยนต์ดูดฝุ่นที่สั่งงานด้วยเสียง 

เนื่องจากระบบ KWS จะทำงานตลอดเวลา จึงต้องใช้พลังงานต่ำมาก นอกจากนี้ ระบบ KWS ควรตรวจจับคำสำคัญที่พูดออกมาด้วยความแม่นยำสูงและความหน่วงต่ำเพื่อให้ได้ประสบการณ์การใช้งานที่ดีที่สุด การใช้พลังงานต่ำเป็นสิ่งสำคัญอย่างยิ่งสำหรับอุปกรณ์พกพา เช่น สมาร์ทโฟนและอุปกรณ์สวมใส่ 

ข้อกำหนดของระบบที่เข้มงวดและขัดแย้งกันเหล่านี้ ร่วมกับจำนวนแอปพลิเคชันคำสั่งเสียงและผู้ฟังที่เพิ่มมากขึ้น ทำให้ KWS กลายเป็นพื้นที่การวิจัยที่มีความเกี่ยวข้องอย่างมาก 

จนกระทั่งเมื่อไม่นานมานี้ อุปกรณ์เดียวที่สามารถทำงาน KWS ที่ระดับพลังงานที่เข้ากันได้กับระบบ Edge ได้คือไมโครคอนโทรลเลอร์ (MCU) พลังงานต่ำและโปรเซสเซอร์สัญญาณดิจิทัล (DSP) Syntiant ผู้ออกแบบโปรเซสเซอร์ ได้เปิดตัวซีรีส์ NDP10x ของ Neural Decision Processors (NDP) ซึ่งเป็นชุดชิปประสิทธิภาพสูงที่สร้างขึ้นสำหรับ KWS โดยเฉพาะ โดยใช้เครือข่ายประสาทเทียมเชิงลึก ซึ่งเพิ่มตัวเลือกให้กับนักออกแบบระบบ

บทนำเกี่ยวกับไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์ หรือที่บางครั้งเรียกว่าตัวควบคุมแบบฝังตัว มักพบในแอปพลิเคชันทั้งแบบมีและไม่มีคำสั่งเสียง เช่น ยานพาหนะ หุ่นยนต์ เครื่องจักรสำนักงาน อุปกรณ์การแพทย์ เครื่องจำหน่ายสินค้าอัตโนมัติ และเครื่องใช้ไฟฟ้าภายในบ้าน ไมโครคอนโทรลเลอร์เหล่านี้ได้รับการพัฒนาครั้งแรกโดย Intel ในช่วงต้นทศวรรษ 1970 และปัจจุบันผลิตโดยผู้ผลิตอื่นๆ อีกมากมาย รวมถึง Microchip (ไมโครคอนโทรลเลอร์ PIC), Atmel (ไมโครคอนโทรลเลอร์ AVR), Hitachi, Phillips, Maxim, NXP, Intel และอื่นๆ

ความต้องการใช้พลังงานต่ำสำหรับระบบค้นหาคำสำคัญทำให้ไมโครคอนโทรลเลอร์เป็นตัวเลือกที่เหมาะสมที่สุดสำหรับการติดตั้ง KWS ในระบบที่เปิดใช้งานตลอดเวลา อย่างไรก็ตาม การติดตั้ง KWS บนไมโครคอนโทรลเลอร์ที่ใช้เครือข่ายประสาทเทียมนั้นมาพร้อมกับความท้าทายด้านขนาดหน่วยความจำและทรัพยากรคอมพิวเตอร์ที่จำกัด 

บทนำเกี่ยวกับโปรเซสเซอร์การตัดสินใจทางประสาท

Syntiant R NDP100 ™ หน่วยประมวลผลการตัดสินใจ แบบไมโครวัตต์ (Neural Decision Processor ™) เป็นอุปกรณ์ซิลิคอนเชิงพาณิชย์ตัวแรกและตัวเดียวในปัจจุบันที่ออกแบบมาเพื่อนำการประมวลผลการเรียนรู้ของเครื่องไปใช้กับอุปกรณ์สำหรับผู้บริโภคแทบทุกชนิด ชิปที่สร้างขึ้นเองนี้ได้รับการออกแบบมาโดยเฉพาะเพื่อรันเครือข่ายประสาทเทียม TensorFlow TensorFlow คือไลบรารีซอฟต์แวร์โอเพนซอร์สที่พัฒนาโดย Google และเปิดให้ใช้งานฟรีสำหรับการไหลของข้อมูลและการเขียนโปรแกรมแบบแยกความแตกต่างในงานที่หลากหลาย 

Syntiant NDP ได้รับการออกแบบมาโดยเฉพาะสำหรับอุปกรณ์ที่ใช้คำสั่งเสียงและมีความต้องการพลังงานต่ำเป็นพิเศษ ทำให้เหมาะอย่างยิ่งสำหรับอุปกรณ์ที่มีระบบ KWS

ชิป Syntiant NDP100 และ NDP101 ได้รับการรับรองจาก Amazon ซึ่งทำให้สามารถใช้โปรเซสเซอร์ประสาทของบริษัทในอุปกรณ์ที่รองรับ Alexa ได้ อย่างไรก็ตาม Syntiant NDP ไม่ได้จำกัดอยู่แค่เฉพาะอุปกรณ์ Alexa เท่านั้น

โปรเซสเซอร์การตัดสินใจทางประสาท Syntiant NDP100 กำลังไฟไมโครวัตต์ 

มันเปรียบเทียบกันยังไงและฉันต้องการอะไรสำหรับอุปกรณ์ของฉัน?

นักออกแบบระบบต้องเผชิญกับตัวเลือกคุณภาพสูงที่เพิ่มขึ้นเรื่อยๆ สำหรับการเพิ่มอัลกอริทึม KWS ให้กับอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อินเทอร์เฟซคำสั่งเสียงมักกำหนดให้อุปกรณ์ต้อง "เปิดอยู่เสมอ" และคอยฟังคำปลุก (wake word) ดังนั้นการใช้พลังงานต่ำจึงเป็นสิ่งสำคัญ อย่างไรก็ตาม การเปรียบเทียบการใช้พลังงานของอุปกรณ์ต่างๆ จากผู้ผลิตที่แตกต่างกันอาจเป็นเรื่องยาก เอกสารข้อมูลอาจอธิบายการใช้พลังงานปัจจุบันเป็นหน่วย uA/MHz แต่โดยทั่วไปแล้วไม่สามารถแปลงค่าดังกล่าวเป็นพลังงานที่จำเป็นสำหรับงานที่กำหนดได้ นอกจากนี้ โทโพโลยีเครือข่ายที่แตกต่างกัน ขั้นตอนการฝึกอบรม ฯลฯ อาจส่งผลต่อความแม่นยำของระบบและการใช้พลังงาน

คำถามสำคัญที่นักออกแบบระบบต้องถามก็คือ โซลูชันที่รันอัลกอริทึม KWS ด้วยความแม่นยำเพียงพอที่จะตอบสนองกรณีการใช้งานจะเพิ่มการใช้พลังงานเท่าใด

การจัดรายการ

การทดสอบได้เปรียบเทียบตัวเลือกพลังงานต่ำสุดหลายตัวสำหรับ KWS ที่มีอยู่ รวมถึง NDP10x ของพวกเขาเอง และเปรียบเทียบความเร็ว ความแม่นยำ และพลังงานในงานทั่วไป:  ชุดข้อมูล คีย์เวิร์ด Google ที่รวบรวมโดย Pete Warden จาก Google 

การทดสอบนี้ประกอบด้วย บอร์ด STM32F746 Discovery , STM32L476G และ บอร์ดประเมินผลรวมถึง Ambiq Apollo 3 Blue ที่ใช้ SparkFun Edge Boardซึ่งเป็นความพยายามร่วมกันของ Google, Ambiq และ SparkFun และโซลูชัน NDP100 ของ Syntiant ที่ใช้บอร์ดพัฒนาภายในของตนเอง

การทดสอบ

นักวิจัยได้ปรับปรุงโค้ดเพื่อรันชุดข้อมูลจำนวน 20 รอบการอนุมานบนแพลตฟอร์มแต่ละแพลตฟอร์ม สำหรับเป้าหมายของ MCU เสียงอินพุตจะถูกนำมาจากรูปคลื่นที่บันทึกไว้ล่วงหน้าซึ่งเก็บไว้ในหน่วยความจำ เพื่อหลีกเลี่ยงการปนเปื้อนของพลังงานไมโครโฟนในการวัด พลังงานที่วัดได้ประกอบด้วยการคำนวณคุณสมบัติพลังงานของ MFCC หรือฟิลเตอร์แบงค์ แต่ไม่รวม ADC หรือพลังงานไมโครโฟน การวัด NDP ประกอบด้วยการลดทอน สัญญาณเอาต์พุต PDMจากไมโครโฟนดิจิทัล รวมถึงการสกัดคุณสมบัติและพลังงานอนุมานประสาท 

MCU มักจะมีอุปกรณ์ต่อพ่วงทั้งแบบออนและออฟชิปหลายตัวที่รับพลังงานจากแหล่งจ่ายเดียวกัน ดังนั้นทีม Syntiant จึงลบค่าที่วัดได้ของกระแสพื้นฐานที่วัดได้ในขณะที่ MCU เปิดเครื่องอยู่แต่ไม่ได้ใช้งาน ผลการทดสอบ NDP เป็นการวัดโดยตรงโดยไม่มีการหักค่าใดๆ การทดลอง MCU ดำเนินการโดยใช้การตั้งค่าฮาร์ดแวร์ตามที่กำหนดไว้ในซอฟต์แวร์โอเพนซอร์สที่ลิงก์ด้านบน

ผลลัพธ์

ตารางด้านล่างนี้สรุปผลการวัด การเปรียบเทียบแบบ "เคียงข้างกัน" ง่ายๆ เป็นเรื่องยากเนื่องจากต้องแลกมาด้วยความซับซ้อนของแบบจำลอง ความแม่นยำ เวลาในการประมวลผล และพลังงาน เพื่อให้การอ่านผลชัดเจนยิ่งขึ้น นักวิจัยจึงเปรียบเทียบผลลัพธ์ทั้งสามแกน ดังนี้

- พลังงานต่อการอนุมานคือพลังงานที่จำเป็นในการประมวลผลเฟรมหนึ่งของตัวอย่างเสียงและสร้างป้ายกำกับ (เช่น "ใช่" "ไม่" "สวัสดี") รวมถึงการสกัดคุณลักษณะและการอนุมานที่กำลังทำงาน

- เวลาในการอนุมานคือเวลาที่จำเป็นในการประมวลผลเฟรมเสียงหนึ่งเฟรม และอัตราเฟรมจะเป็นค่าผกผัน ซึ่งระบุถึงจำนวนเฟรมเสียงสูงสุดต่อวินาทีที่โปรเซสเซอร์สามารถประมวลผลได้ด้วยเครือข่ายที่กำหนด 

- ความแม่นยำ G10 คือผลลัพธ์ความแม่นยำของงานคีย์เวิร์ด Google-10

ค่าประมาณสำหรับการดำเนินการและจำนวนพารามิเตอร์สำหรับเครือข่าย Small FC และ Small DS-CNN นำมาจากเอกสาร “Hello Edge” สำหรับเครือข่าย TinyConv ที่ใช้บนชิป Ambiq ตัวเลขเหล่านี้ได้มาจากโค้ดในตัวอย่าง TensorFlow “Speech Commands”

นี่หมายถึงอะไร?

เห็นได้ชัดว่าเส้นทางการประมวลผลที่สร้างขึ้นโดยเฉพาะใน NDP100 ช่วยประหยัดพลังงานได้อย่างมากเมื่อเทียบกับสถาปัตยกรรมโปรแกรมที่เก็บไว้ของโซลูชัน MCU ผลลัพธ์ด้านพลังงานที่ใกล้เคียงที่สุดจาก Ambiq Apollo 3 Blue สูงกว่าพลังงานของ NDP ถึง 27 เท่า โดยทำงานบนเครือข่ายที่มีขนาดเล็กกว่าและมีความแม่นยำน้อยกว่ามาก 

STM32L4786 ที่รันเครือข่าย DS-CNN ขนาดเล็กมีความแม่นยำเทียบเท่ากับ NDP แต่ต้องใช้พลังงานมากกว่า 193 เท่า

อัตราเฟรมก็เป็นสิ่งสำคัญที่ต้องพิจารณาเช่นกัน โดยทั่วไประบบ KWS ที่ใช้งานจริงต้องการอย่างน้อย 20 และบ่อยครั้งถึง 100 เฟรมต่อวินาที เพื่อหลีกเลี่ยงการ "ก้าวข้าม" ความถี่เสียงเป้าหมาย นอกจากนี้ NDP ยังมีข้อได้เปรียบด้านความเร็วเหนือ MCU ที่ใช้พลังงานต่ำ ด้วยการทำงานแบบขนานและเส้นทางข้อมูลเฉพาะ

ข้อได้เปรียบด้านพลังงานของ Apollo มาพร้อมกับค่าปรับความเร็ว ส่งผลให้เฟรมเรตสูงสุดอยู่ที่ 3.7fps ซึ่งโดยทั่วไปแล้วจะทำให้ความแม่นยำในโลกแห่งความเป็นจริงต่ำกว่าความแม่นยำของซอฟต์แวร์ที่คาดการณ์ไว้ที่ 66 เปอร์เซ็นต์ (ใน TensorFlow บนข้อมูลที่จัดตำแหน่งไว้ล่วงหน้า) 

ในบรรดา MCU ที่ได้รับการทดสอบ มีเพียง STM32F746 จากสายผลิตภัณฑ์ประสิทธิภาพสูง F7xx ของ ST เท่านั้นที่สามารถทำความเร็วได้เกิน 20 fps และทำได้โดยมีต้นทุนด้านพลังงานสูงกว่า NDP ประมาณ 700 เท่า ส่งผลให้ต้นทุนด้านพลังงานอยู่ที่ประมาณ 50 mW (มิลลิวัตต์) นอกเหนือจากพลังงานพื้นฐานที่จำเป็นในการจ่ายพลังงานให้กับ MCU ในช่วงแรก

บทสรุป

การทดสอบนี้แสดงให้เห็นอย่างชัดเจนว่าเอนจินประมวลผลที่สร้างขึ้นโดยเฉพาะสำหรับการอนุมานทางประสาทสามารถให้ข้อได้เปรียบด้านพลังงานและความเร็วเหนือสถาปัตยกรรมโปรแกรมที่จัดเก็บไว้ การพัฒนาอย่างต่อเนื่องของ MCU ที่ใช้พลังงานต่ำเป็นพิเศษและชิปประสิทธิภาพสูงที่สร้างขึ้นโดยเฉพาะจะนำพาเสียงไปสู่ขอบข่ายการใช้งานที่หลากหลาย ซึ่งอาจพลิกโฉมวิธีที่เราโต้ตอบกับเทคโนโลยี 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

ระบบการจดจำเสียงพูดแบบฝังตัว: การใช้งานการระบุคำสำคัญและการควบคุมด้วยเสียงบน MCU ที่ใช้พลังงานต่ำ

สำรวจวิธีการนำการระบุคำสำคัญและการควบคุมด้วยเสียงไปใช้กับ MCU ที่ใช้พลังงานต่ำ

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

หลักพื้นฐานของการค้นหาคำหลัก

อุปกรณ์อัจฉริยะจะทำงานอยู่เสมอ โดยจะคอยฟังคำสั่ง "ปลุก" ที่กำหนดไว้ล่วงหน้า เช่น "Alexa", "Ok Google" เป็นต้น การกระทำนี้เรียกกันทั่วไปว่า "การตรวจจับคำสำคัญ" (Keyword Spotting: KWS) เมื่อตรวจพบคำสำคัญ อุปกรณ์จะเริ่มทำงานและระบบจดจำเสียงเต็มรูปแบบจะเปิดใช้งานบนคลาวด์หรือบนอุปกรณ์ ในบางอุปกรณ์ คำสำคัญยังถูกใช้เป็นคำสั่งเสียง เช่น 'hello, start, stop' ในหุ่นยนต์ดูดฝุ่นที่สั่งงานด้วยเสียง 

เนื่องจากระบบ KWS จะทำงานตลอดเวลา จึงต้องใช้พลังงานต่ำมาก นอกจากนี้ ระบบ KWS ควรตรวจจับคำสำคัญที่พูดออกมาด้วยความแม่นยำสูงและความหน่วงต่ำเพื่อให้ได้ประสบการณ์การใช้งานที่ดีที่สุด การใช้พลังงานต่ำเป็นสิ่งสำคัญอย่างยิ่งสำหรับอุปกรณ์พกพา เช่น สมาร์ทโฟนและอุปกรณ์สวมใส่ 

ข้อกำหนดของระบบที่เข้มงวดและขัดแย้งกันเหล่านี้ ร่วมกับจำนวนแอปพลิเคชันคำสั่งเสียงและผู้ฟังที่เพิ่มมากขึ้น ทำให้ KWS กลายเป็นพื้นที่การวิจัยที่มีความเกี่ยวข้องอย่างมาก 

จนกระทั่งเมื่อไม่นานมานี้ อุปกรณ์เดียวที่สามารถทำงาน KWS ที่ระดับพลังงานที่เข้ากันได้กับระบบ Edge ได้คือไมโครคอนโทรลเลอร์ (MCU) พลังงานต่ำและโปรเซสเซอร์สัญญาณดิจิทัล (DSP) Syntiant ผู้ออกแบบโปรเซสเซอร์ ได้เปิดตัวซีรีส์ NDP10x ของ Neural Decision Processors (NDP) ซึ่งเป็นชุดชิปประสิทธิภาพสูงที่สร้างขึ้นสำหรับ KWS โดยเฉพาะ โดยใช้เครือข่ายประสาทเทียมเชิงลึก ซึ่งเพิ่มตัวเลือกให้กับนักออกแบบระบบ

บทนำเกี่ยวกับไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์ หรือที่บางครั้งเรียกว่าตัวควบคุมแบบฝังตัว มักพบในแอปพลิเคชันทั้งแบบมีและไม่มีคำสั่งเสียง เช่น ยานพาหนะ หุ่นยนต์ เครื่องจักรสำนักงาน อุปกรณ์การแพทย์ เครื่องจำหน่ายสินค้าอัตโนมัติ และเครื่องใช้ไฟฟ้าภายในบ้าน ไมโครคอนโทรลเลอร์เหล่านี้ได้รับการพัฒนาครั้งแรกโดย Intel ในช่วงต้นทศวรรษ 1970 และปัจจุบันผลิตโดยผู้ผลิตอื่นๆ อีกมากมาย รวมถึง Microchip (ไมโครคอนโทรลเลอร์ PIC), Atmel (ไมโครคอนโทรลเลอร์ AVR), Hitachi, Phillips, Maxim, NXP, Intel และอื่นๆ

ความต้องการใช้พลังงานต่ำสำหรับระบบค้นหาคำสำคัญทำให้ไมโครคอนโทรลเลอร์เป็นตัวเลือกที่เหมาะสมที่สุดสำหรับการติดตั้ง KWS ในระบบที่เปิดใช้งานตลอดเวลา อย่างไรก็ตาม การติดตั้ง KWS บนไมโครคอนโทรลเลอร์ที่ใช้เครือข่ายประสาทเทียมนั้นมาพร้อมกับความท้าทายด้านขนาดหน่วยความจำและทรัพยากรคอมพิวเตอร์ที่จำกัด 

บทนำเกี่ยวกับโปรเซสเซอร์การตัดสินใจทางประสาท

Syntiant R NDP100 ™ หน่วยประมวลผลการตัดสินใจ แบบไมโครวัตต์ (Neural Decision Processor ™) เป็นอุปกรณ์ซิลิคอนเชิงพาณิชย์ตัวแรกและตัวเดียวในปัจจุบันที่ออกแบบมาเพื่อนำการประมวลผลการเรียนรู้ของเครื่องไปใช้กับอุปกรณ์สำหรับผู้บริโภคแทบทุกชนิด ชิปที่สร้างขึ้นเองนี้ได้รับการออกแบบมาโดยเฉพาะเพื่อรันเครือข่ายประสาทเทียม TensorFlow TensorFlow คือไลบรารีซอฟต์แวร์โอเพนซอร์สที่พัฒนาโดย Google และเปิดให้ใช้งานฟรีสำหรับการไหลของข้อมูลและการเขียนโปรแกรมแบบแยกความแตกต่างในงานที่หลากหลาย 

Syntiant NDP ได้รับการออกแบบมาโดยเฉพาะสำหรับอุปกรณ์ที่ใช้คำสั่งเสียงและมีความต้องการพลังงานต่ำเป็นพิเศษ ทำให้เหมาะอย่างยิ่งสำหรับอุปกรณ์ที่มีระบบ KWS

ชิป Syntiant NDP100 และ NDP101 ได้รับการรับรองจาก Amazon ซึ่งทำให้สามารถใช้โปรเซสเซอร์ประสาทของบริษัทในอุปกรณ์ที่รองรับ Alexa ได้ อย่างไรก็ตาม Syntiant NDP ไม่ได้จำกัดอยู่แค่เฉพาะอุปกรณ์ Alexa เท่านั้น

โปรเซสเซอร์การตัดสินใจทางประสาท Syntiant NDP100 กำลังไฟไมโครวัตต์ 

มันเปรียบเทียบกันยังไงและฉันต้องการอะไรสำหรับอุปกรณ์ของฉัน?

นักออกแบบระบบต้องเผชิญกับตัวเลือกคุณภาพสูงที่เพิ่มขึ้นเรื่อยๆ สำหรับการเพิ่มอัลกอริทึม KWS ให้กับอุปกรณ์ ดังที่ได้กล่าวไปแล้ว อินเทอร์เฟซคำสั่งเสียงมักกำหนดให้อุปกรณ์ต้อง "เปิดอยู่เสมอ" และคอยฟังคำปลุก (wake word) ดังนั้นการใช้พลังงานต่ำจึงเป็นสิ่งสำคัญ อย่างไรก็ตาม การเปรียบเทียบการใช้พลังงานของอุปกรณ์ต่างๆ จากผู้ผลิตที่แตกต่างกันอาจเป็นเรื่องยาก เอกสารข้อมูลอาจอธิบายการใช้พลังงานปัจจุบันเป็นหน่วย uA/MHz แต่โดยทั่วไปแล้วไม่สามารถแปลงค่าดังกล่าวเป็นพลังงานที่จำเป็นสำหรับงานที่กำหนดได้ นอกจากนี้ โทโพโลยีเครือข่ายที่แตกต่างกัน ขั้นตอนการฝึกอบรม ฯลฯ อาจส่งผลต่อความแม่นยำของระบบและการใช้พลังงาน

คำถามสำคัญที่นักออกแบบระบบต้องถามก็คือ โซลูชันที่รันอัลกอริทึม KWS ด้วยความแม่นยำเพียงพอที่จะตอบสนองกรณีการใช้งานจะเพิ่มการใช้พลังงานเท่าใด

การจัดรายการ

การทดสอบได้เปรียบเทียบตัวเลือกพลังงานต่ำสุดหลายตัวสำหรับ KWS ที่มีอยู่ รวมถึง NDP10x ของพวกเขาเอง และเปรียบเทียบความเร็ว ความแม่นยำ และพลังงานในงานทั่วไป:  ชุดข้อมูล คีย์เวิร์ด Google ที่รวบรวมโดย Pete Warden จาก Google 

การทดสอบนี้ประกอบด้วย บอร์ด STM32F746 Discovery , STM32L476G และ บอร์ดประเมินผลรวมถึง Ambiq Apollo 3 Blue ที่ใช้ SparkFun Edge Boardซึ่งเป็นความพยายามร่วมกันของ Google, Ambiq และ SparkFun และโซลูชัน NDP100 ของ Syntiant ที่ใช้บอร์ดพัฒนาภายในของตนเอง

การทดสอบ

นักวิจัยได้ปรับปรุงโค้ดเพื่อรันชุดข้อมูลจำนวน 20 รอบการอนุมานบนแพลตฟอร์มแต่ละแพลตฟอร์ม สำหรับเป้าหมายของ MCU เสียงอินพุตจะถูกนำมาจากรูปคลื่นที่บันทึกไว้ล่วงหน้าซึ่งเก็บไว้ในหน่วยความจำ เพื่อหลีกเลี่ยงการปนเปื้อนของพลังงานไมโครโฟนในการวัด พลังงานที่วัดได้ประกอบด้วยการคำนวณคุณสมบัติพลังงานของ MFCC หรือฟิลเตอร์แบงค์ แต่ไม่รวม ADC หรือพลังงานไมโครโฟน การวัด NDP ประกอบด้วยการลดทอน สัญญาณเอาต์พุต PDMจากไมโครโฟนดิจิทัล รวมถึงการสกัดคุณสมบัติและพลังงานอนุมานประสาท 

MCU มักจะมีอุปกรณ์ต่อพ่วงทั้งแบบออนและออฟชิปหลายตัวที่รับพลังงานจากแหล่งจ่ายเดียวกัน ดังนั้นทีม Syntiant จึงลบค่าที่วัดได้ของกระแสพื้นฐานที่วัดได้ในขณะที่ MCU เปิดเครื่องอยู่แต่ไม่ได้ใช้งาน ผลการทดสอบ NDP เป็นการวัดโดยตรงโดยไม่มีการหักค่าใดๆ การทดลอง MCU ดำเนินการโดยใช้การตั้งค่าฮาร์ดแวร์ตามที่กำหนดไว้ในซอฟต์แวร์โอเพนซอร์สที่ลิงก์ด้านบน

ผลลัพธ์

ตารางด้านล่างนี้สรุปผลการวัด การเปรียบเทียบแบบ "เคียงข้างกัน" ง่ายๆ เป็นเรื่องยากเนื่องจากต้องแลกมาด้วยความซับซ้อนของแบบจำลอง ความแม่นยำ เวลาในการประมวลผล และพลังงาน เพื่อให้การอ่านผลชัดเจนยิ่งขึ้น นักวิจัยจึงเปรียบเทียบผลลัพธ์ทั้งสามแกน ดังนี้

- พลังงานต่อการอนุมานคือพลังงานที่จำเป็นในการประมวลผลเฟรมหนึ่งของตัวอย่างเสียงและสร้างป้ายกำกับ (เช่น "ใช่" "ไม่" "สวัสดี") รวมถึงการสกัดคุณลักษณะและการอนุมานที่กำลังทำงาน

- เวลาในการอนุมานคือเวลาที่จำเป็นในการประมวลผลเฟรมเสียงหนึ่งเฟรม และอัตราเฟรมจะเป็นค่าผกผัน ซึ่งระบุถึงจำนวนเฟรมเสียงสูงสุดต่อวินาทีที่โปรเซสเซอร์สามารถประมวลผลได้ด้วยเครือข่ายที่กำหนด 

- ความแม่นยำ G10 คือผลลัพธ์ความแม่นยำของงานคีย์เวิร์ด Google-10

ค่าประมาณสำหรับการดำเนินการและจำนวนพารามิเตอร์สำหรับเครือข่าย Small FC และ Small DS-CNN นำมาจากเอกสาร “Hello Edge” สำหรับเครือข่าย TinyConv ที่ใช้บนชิป Ambiq ตัวเลขเหล่านี้ได้มาจากโค้ดในตัวอย่าง TensorFlow “Speech Commands”

นี่หมายถึงอะไร?

เห็นได้ชัดว่าเส้นทางการประมวลผลที่สร้างขึ้นโดยเฉพาะใน NDP100 ช่วยประหยัดพลังงานได้อย่างมากเมื่อเทียบกับสถาปัตยกรรมโปรแกรมที่เก็บไว้ของโซลูชัน MCU ผลลัพธ์ด้านพลังงานที่ใกล้เคียงที่สุดจาก Ambiq Apollo 3 Blue สูงกว่าพลังงานของ NDP ถึง 27 เท่า โดยทำงานบนเครือข่ายที่มีขนาดเล็กกว่าและมีความแม่นยำน้อยกว่ามาก 

STM32L4786 ที่รันเครือข่าย DS-CNN ขนาดเล็กมีความแม่นยำเทียบเท่ากับ NDP แต่ต้องใช้พลังงานมากกว่า 193 เท่า

อัตราเฟรมก็เป็นสิ่งสำคัญที่ต้องพิจารณาเช่นกัน โดยทั่วไประบบ KWS ที่ใช้งานจริงต้องการอย่างน้อย 20 และบ่อยครั้งถึง 100 เฟรมต่อวินาที เพื่อหลีกเลี่ยงการ "ก้าวข้าม" ความถี่เสียงเป้าหมาย นอกจากนี้ NDP ยังมีข้อได้เปรียบด้านความเร็วเหนือ MCU ที่ใช้พลังงานต่ำ ด้วยการทำงานแบบขนานและเส้นทางข้อมูลเฉพาะ

ข้อได้เปรียบด้านพลังงานของ Apollo มาพร้อมกับค่าปรับความเร็ว ส่งผลให้เฟรมเรตสูงสุดอยู่ที่ 3.7fps ซึ่งโดยทั่วไปแล้วจะทำให้ความแม่นยำในโลกแห่งความเป็นจริงต่ำกว่าความแม่นยำของซอฟต์แวร์ที่คาดการณ์ไว้ที่ 66 เปอร์เซ็นต์ (ใน TensorFlow บนข้อมูลที่จัดตำแหน่งไว้ล่วงหน้า) 

ในบรรดา MCU ที่ได้รับการทดสอบ มีเพียง STM32F746 จากสายผลิตภัณฑ์ประสิทธิภาพสูง F7xx ของ ST เท่านั้นที่สามารถทำความเร็วได้เกิน 20 fps และทำได้โดยมีต้นทุนด้านพลังงานสูงกว่า NDP ประมาณ 700 เท่า ส่งผลให้ต้นทุนด้านพลังงานอยู่ที่ประมาณ 50 mW (มิลลิวัตต์) นอกเหนือจากพลังงานพื้นฐานที่จำเป็นในการจ่ายพลังงานให้กับ MCU ในช่วงแรก

บทสรุป

การทดสอบนี้แสดงให้เห็นอย่างชัดเจนว่าเอนจินประมวลผลที่สร้างขึ้นโดยเฉพาะสำหรับการอนุมานทางประสาทสามารถให้ข้อได้เปรียบด้านพลังงานและความเร็วเหนือสถาปัตยกรรมโปรแกรมที่จัดเก็บไว้ การพัฒนาอย่างต่อเนื่องของ MCU ที่ใช้พลังงานต่ำเป็นพิเศษและชิปประสิทธิภาพสูงที่สร้างขึ้นโดยเฉพาะจะนำพาเสียงไปสู่ขอบข่ายการใช้งานที่หลากหลาย ซึ่งอาจพลิกโฉมวิธีที่เราโต้ตอบกับเทคโนโลยี