Hệ thống nhận dạng giọng nói nhúng: Triển khai phát hiện từ khóa và điều khiển bằng giọng nói trên MCU công suất thấp.
Khám phá cách triển khai phát hiện từ khóa và điều khiển bằng giọng nói trên MCU công suất thấp.
Kiến thức cơ bản về tìm kiếm từ khóa
Các thiết bị thông minh luôn hoạt động, lắng nghe các lệnh "đánh thức" được xác định trước, chẳng hạn như "Alexa", "Ok Google", v.v. Hành động này thường được gọi là "Phát hiện từ khóa" (KWS). Khi một từ khóa được phát hiện, thiết bị sẽ khởi động và hệ thống nhận dạng giọng nói đầy đủ được kích hoạt trên đám mây hoặc trên thiết bị. Trên một số thiết bị Từ khóa cũng được sử dụng làm lệnh thoại, chẳng hạn như 'xin chào, bắt đầu, dừng' trong robot hút bụi kích hoạt bằng giọng nói.
Vì hệ thống KWS sẽ chạy mọi lúc nên nó yêu cầu điện năng rất thấp. Ngoài ra, hệ thống KWS nên phát hiện các từ khóa được nói với độ chính xác cao và độ trễ thấp để đạt được trải nghiệm người dùng tốt nhất. Tiêu thụ điện năng thấp đặc biệt quan trọng đối với các thiết bị di động như điện thoại thông minh và thiết bị đeo.
Những yêu cầu hệ thống nghiêm ngặt và mâu thuẫn này, kết hợp với số lượng ngày càng tăng của các ứng dụng ra lệnh bằng giọng nói và người nghe, không phải là những yêu cầu duy nhất có thể được sử dụng để tạo ra sự khác biệt. Điều này làm cho KWS trở thành một lĩnh vực nghiên cứu rất phù hợp.
Cho đến gần đây, Các thiết bị duy nhất có khả năng chạy KWS ở mức công suất tương thích với các hệ thống biên là bộ vi điều khiển công suất thấp (MCU) và bộ xử lý tín hiệu kỹ thuật số (DSP).
Giới thiệu về vi điều khiển
Bộ vi điều khiển, đôi khi được gọi là bộ điều khiển nhúng, thường được tìm thấy trong các ứng dụng có và không có lệnh thoại, chẳng hạn như xe cộ, rô bốt, v.v. Những bộ vi điều khiển này lần đầu tiên được Intel phát triển vào đầu những năm 1970 và hiện được sản xuất bởi nhiều nhà sản xuất khác, bao gồm Microchip (vi điều khiển PIC), Atmel (vi điều khiển AVR), Hitachi, Phillips, Maxim, NXP, Intel và các nhà sản xuất khác.
Yêu cầu năng lượng thấp đối với hệ thống tìm kiếm từ khóa làm cho bộ vi điều khiển trở thành lựa chọn lý tưởng để cài đặt KWS trong các hệ thống luôn bật. Tuy nhiên, việc cài đặt KWS trên bộ vi điều khiển dựa trên mạng nơ-ron đi kèm với kích thước bộ nhớ hạn chế và những thách thức về tài nguyên tính toán.
Giới thiệu về bộ xử lý quyết định thần kinh
Bộ xử lý ™ quyết định thần kinh Syntiant R NDP100 ™ Microwatt là thiết bị silicon thương mại đầu tiên và duy nhất được thiết kế để triển khai điện toán học máy trong hầu hết mọi thiết bị tiêu dùng. Con chip được xây dựng tùy chỉnh này được thiết kế đặc biệt để chạy mạng thần kinh. TensorFlow là một thư viện phần mềm mã nguồn mở do Google phát triển và có sẵn miễn phí cho luồng dữ liệu và lập trình khác biệt trên nhiều tác vụ.
Tổng hợp NDP Nó được thiết kế đặc biệt cho các thiết bị sử dụng lệnh thoại và có yêu cầu năng lượng đặc biệt thấp. Điều này làm cho nó trở nên lý tưởng cho các thiết bị có hệ thống KWS.
Chip Syntiant NDP100 và NDP101 được chứng nhận bởi Amazon, giúp bạn có thể sử dụng bộ xử lý thần kinh của công ty trong các thiết bị hỗ trợ Alexa.

Chúng so sánh như thế nào và tôi cần gì cho thiết bị của mình?
Các nhà thiết kế hệ thống phải đối mặt với số lượng ngày càng tăng các tùy chọn chất lượng cao để thêm thuật toán KWS vào thiết bị của họ. Giao diện ra lệnh bằng giọng nói thường yêu cầu thiết bị phải "luôn bật" và lắng nghe từ đánh thức, vì vậy mức tiêu thụ điện năng thấp là rất quan trọng. Tuy nhiên, có thể khó so sánh mức tiêu thụ điện năng của các thiết bị khác nhau từ các nhà sản xuất khác nhau. Bảng dữ liệu có thể mô tả mức tiêu thụ điện năng hiện tại theo đơn vị uA / MHz, nhưng thường không thể chuyển đổi giá trị đó thành công suất cần thiết cho một nhiệm vụ nhất định. Ngoài ra, cấu trúc liên kết mạng khác nhau có thể ảnh hưởng đến độ chính xác của hệ thống và mức tiêu thụ điện năng.
Các câu hỏi chính mà các nhà thiết kế hệ thống cần hỏi là: Một giải pháp chạy thuật toán KWS với độ chính xác đủ để đáp ứng trường hợp sử dụng làm tăng mức tiêu thụ năng lượng là bao nhiêu?
Lập trình
Thử nghiệm đã so sánh một số tùy chọn công suất tối thiểu cho KWS có sẵn, bao gồm cả NDP10x của riêng chúng và so sánh tốc độ, độ chính xác và công suất trong các ứng dụng điển hình: Tập dữ liệu Từ khóa Google được Pete Warden thu thập từ Google
Thử nghiệm này bao gồm bảng STM32F746 Discovery, STM32L476G và bảng đánh giá, cũng như Ambiq Apollo 3 Blue sử dụng SparkFun Edge Board, một nỗ lực chung của Google, Ambiq và SparkFun, và giải pháp NDP100 của Syntiant sử dụng bảng phát triển nội bộ của riêng mình.

Thử nghiệm
Đối với mục tiêu của MCU, âm thanh đầu vào được lấy từ dạng sóng được ghi sẵn được lưu trữ trong bộ nhớ. Điều này là để tránh nhiễm bẩn công suất micrô trong các phép đo. Công suất đo được bao gồm tính toán các thuộc tính công suất của MFCC hoặc ngân hàng bộ lọc, nhưng không bao gồm công suất ADC hoặc micrô. Tín hiệu đầu ra PDM từ micrô kỹ thuật số, bao gồm trích xuất tính năng và năng lượng suy luận thần kinh.
MCU Thường có nhiều thiết bị ngoại vi trên và ngoài chip nhận điện từ cùng một nguồn. Do đó, nhóm Syntiant trừ đi giá trị đo được của dòng điện cơ sở đo được trong khi MCU được bật nguồn nhưng không được sử dụng. Kết quả kiểm tra NDP là các phép đo trực tiếp mà không có bất kỳ khoản khấu trừ nào. Các thử nghiệm MCU được thực hiện bằng cách sử dụng cài đặt phần cứng như được xác định trong phần mềm mã nguồn mở được liên kết ở trên.
Kết quả
Bảng dưới đây tóm tắt kết quả đo. Thời gian và công suất xử lý để đọc rõ ràng hơn. Các nhà nghiên cứu sau đó so sánh kết quả trên cả ba trục. Cụ thể như sau:
- Công suất cho mỗi suy luận là năng lượng cần thiết để xử lý một khung hình của mẫu âm thanh và tạo nhãn (ví dụ: "có", "không", "xin chào"), cũng như trích xuất các tính năng và suy luận đang chạy.
- Thời gian suy luận là thời gian cần thiết để xử lý một khung âm thanh và tốc độ khung hình là nghịch đảo, cho biết số khung hình âm thanh tối đa mỗi giây mà bộ xử lý có thể xử lý với một mạng nhất định.
- Độ chính xác G10 là kết quả độ chính xác của từ khóa Google-10.
Ước tính về việc thực hiện và số lượng tham số cho mạng Small FC và Small DS-CNN được lấy từ tài liệu "Hello Edge" cho mạng TinyConv được sử dụng trên chip Ambiq.

Điều này có nghĩa là gì?
Công suất đầu ra gần nhất từ Ambiq Apollo 3 Blue cao hơn 27 lần so với NDP, chạy trên mạng nhỏ hơn và kém chính xác hơn nhiều.
STM32L4786 chạy một mạng DS-CNN nhỏ chính xác như NDP, nhưng đòi hỏi năng lượng gấp 193 lần.
Tốc độ khung hình cũng rất quan trọng cần xem xét. Nói chung, một hệ thống KWS sản xuất yêu cầu ít nhất 20 và thường lên đến 100 khung hình mỗi giây. Điều này là để tránh "vượt quá" tần số âm thanh mục tiêu. Ngoài ra, NDP mang lại lợi thế về tốc độ so với MCU công suất thấp.
Lợi thế sức mạnh của Apollo đi kèm với các điều chỉnh tốc độ. Điều này dẫn đến tốc độ khung hình tối đa là 3,7 khung hình / giây, thường đặt độ chính xác trong thế giới thực thấp hơn độ chính xác của phần mềm dự đoán là 66% (trong TensorFlow, trên dữ liệu được căn chỉnh trước).
Trong số các MCU được thử nghiệm, chỉ có STM32F746 từ dòng sản phẩm hiệu suất cao F7xx của ST có thể vượt quá 20 khung hình / giây và làm như vậy với chi phí điện năng cao hơn khoảng 700 lần so với NDP, dẫn đến chi phí điện năng khoảng 50 mW (miliwatt). Ngoài sức mạnh cơ bản cần thiết để cung cấp năng lượng cho MCU trong giai đoạn đầu.
Kết luận
Thử nghiệm này cho thấy rõ ràng rằng một công cụ tính toán được xây dựng đặc biệt cho suy luận thần kinh có thể cung cấp lợi thế về sức mạnh và tốc độ so với kiến trúc chương trình được lưu trữ. Sự phát triển liên tục của MCU công suất cực thấp và chip hiệu suất cao được chế tạo có mục đích sẽ đưa âm thanh đến nhiều ứng dụng, có khả năng thay đổi cách chúng ta tương tác với công nghệ.

