1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận diện từ khóa sử dụng vi điều khiển

88 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NHẬN DIỆN TỪ KHÓA SỬ DỤNG VI ĐIỀU KHIỂN NGÀNH: KỸ THUẬT MÁY TÍNH HỘI ĐỒNG : KỸ THUẬT MÁY TÍNH GVHD : NGUYỄN TRẦN HỮU NGUYÊN GVPB : PHẠM HOÀNG ANH SVTH : ĐỖ XUÂN THƠ (1713365) NGUYỄN PHƯỚC SANG (1712938) TP HỒ CHÍ MINH, THÁNG 02 NĂM 2022 ĐẠI HỌC QUỐC GIA TP.HCM -TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA:KH & KT Máy tính BỘ MƠN: KTMT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP Chú ý: Sinh viên phải dán tờ vào trang thuyết trình HỌ VÀ TÊN: Nguyễn Phước Sang MSSV: 1712938 HỌ VÀ TÊN: Đỗ Xuân Thơ MSSV: 1713365 NGÀNH: KỸ THUẬT MÁY TÍNH LỚP: Đầu đề luận án: Nhận diện từ khóa sử dụng vi điều khiển (Keyword spotting on Microcontrollers) _ Nhiệm vụ (yêu cầu nội dung số liệu ban đầu): Hiện thực hệ thống nhận diện từ khóa sử dụng vi điều khiển bao gồm: - Lấy dữ liệu từ cảm biến âm - Lọc nhiễu từ dữ liệu nhận được - Tìm hiểu giải thuật neural network để hiện thực vi điều khiển - Huấn luyện mộ hình _ Ngày giao nhiệm vụ luận án: Ngày hoàn thành nhiệm vụ: Họ tên giảng viên hướng dẫn: Phần hướng dẫn: 1) TS Nguyễn Trần Hữu Nguyên 2) 3) Nội dung yêu cầu LVTN được thông qua Bộ môn Ngày tháng năm CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN HƯỚNG DẪN CHÍNH (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ): Đơn vị: Ngày bảo vệ: Điểm tổng kết: Nơi lưu trữ luận án: _ TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc -Ngày 25 tháng năm 2022 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn/phản biện) Họ tên SV: Nguyễn Phước Sang MSSV: 1712938 Đỗ Xuân Thơ MSSV: 1713365 Ngành (chuyên ngành): Kỹ Thuật Máy Tính Ngành (chuyên ngành): Kỹ Thuật Máy Tính Đề tài: Nhận diện từ khóa sử dụng vi điều khiển (Keyword spotting on Microcontrollers) Họ tên người hướng dẫn/phản biện: Nguyễn Trần Hữu Nguyên Tổng quát thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính tốn: Hiện vật (sản phẩm) Tổng qt vẽ: - Số vẽ: Bản A1: Bản A2: Khổ khác: - Số vẽ vẽ tay Số vẽ máy tính: Những ưu điểm LVTN: Nhóm sinh viên đã thực được hệ thống nhận diện được từ khóa sử dụng vi điều khiển bao gồm: - Tìm hiểu sử dụng MEMS microphone để lấy được tín hiệu âm thanh, và sử dụng chip để lọc nhiễu âm - Tìm hiểu các giải thuật neuron network để thực việc nhận diện từ khóa bao gồm thu thập dữ liệu, huấn luyện mô hình và chuyển đổi mô hình sang định dạng vi điều khiển có thể đọc được - Hiện thực chương trình vi điều khiển để đọc dữ liệu từ microphone và suy luận từ khóa được đọc Nhóm sinh viên cũng đã thiết kế thí nghiệm và tạo kết là hệ thống có thể nhận dạng được từ khóa đơn Những thiếu sót LVTN: - Đề tài chưa tập trung nhiều vào việc lọc nhiễu Chưa thử nghiệm được với việc nói từ khóa ở khoảng cách khác nhau, cũng như từ khóa là từ kép thì độ chính xác không cao Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ  câu hỏi SV phải trả lời trước Hội đồng: a Cách làm cứ giây lấy mẫu lần, dễ nhận diện bị sót Nhóm sinh viên có thể đề xuất cách nào để cải thiện việc nhận diện từ khóa hay không? b Hầu hết các hệ thống sử dụng neuron network cần phải cải tiến liên tục để tăng độ chính xác, nhóm sinh viên có thể đề xuất cách nào để hỗ trợ việc cải tiến liên tục được dễ dàng không? 10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Khá giỏi Điểm : 8.5/10 Ký tên (ghi rõ họ tên) Nguyễn Trần Hữu Nguyên Lời cam đoan Nhóm cam đoan điều ghi báo cáo, mã nguồn nhóm tự thực - trừ kiến thức tham khảo có trích dẫn mã nguồn mẫu nhà sản xuất cung cấp, hồn tồn không chép từ nguồn khác Nếu lời cam đoan trái với thật, nhóm xin chịu trách nhiệm trước Khoa Nhà trường Đỗ Xuân Thơ & Nguyễn Phước Sang Ngày 14 tháng 02 năm 2022 i Lời cảm ơn Sau khoảng thời gian theo học trường Đại học Bách khoa TP Hồ Chí Minh, khoa Khoa học Kĩ thuật Máy tính, đến lúc chúng em áp dụng tất kiến thức học để thực luận văn tốt nghiệp, đề tài cuối mang tính định kết học tập q trình tốt nghiệp Để hồn thiện luận văn này, thật dựa vào khả chúng em, mà phải nhờ đến hỗ trợ, giúp đỡ nhiều người khác Vậy nên, luận văn này, chúng em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Trần Hữu Nguyên Trước hết, thầy đồng ý nhận lời hướng dẫn luận văn cho chúng em Trong khoảng thời gian năm vừa qua, thầy bỏ nhiều thời gian cơng sức, tận tình hướng dẫn bước để chúng em thực demo luận văn Bên cạnh đó, lời khuyên răn, nhắc nhở, động viên thầy giúp cho trình thực luận văn chúng em suôn sẻ thuận lợi nhiều Những câu chuyện, kinh nghiệm sống mà thầy chia sẻ kiến thức bổ ích cho qng đường chơng gai phía trước chúng em Sau hết, chúng em xin chân thành cảm ơn thầy chúng em xin kính chúc thầy gia đình dồi sức khoẻ, niềm vui thành cơng Chúng xin hết lịng cảm ơn ba mẹ, người ln đứng phía sau hỗ trợ hết mình, vật chất lẫn tinh thần, để chúng có kết ngày hơm Trong suốt khoảng thời gian vừa qua, chúng gặp nhiều khó khăn, trắc trở Tuy nhiên, ba mẹ bên động viên giúp đỡ chúng vượt qua khó khăn Chúng xin cảm ơn người thân yêu gia đình, ln quan tâm đến chúng giai đoạn mà chúng chập chững bước vào đời Bên cạnh đó, chúng em xin chân thành cảm ơn quý anh chị em, bạn bè đồng hành giúp đỡ chúng em suốt khoảng thời gian vừa qua Chúng em xin cảm ơn quý nhà trường tạo điều kiện thuận lợi cho chúng em học tập rèn luyện suốt thời gian theo học trường Đồng thời, chúng em cũng xin cảm ơn quý thầy cô truyền đạt lại kiến thức cần thiết bổ ích cho chúng em Trong trình thực đề tài, chúng em cố gắng để tránh sai sót, có phát mong q thầy góp ý để em hoàn thiện đề tài Cuối cùng, chúng em xin gửi lời chúc sức khỏe cảm ơn chân thành tới tất người ii Tóm tắt Trong năm gần đây, khái niệm Cách mạng Công nghiệp 4.0 nhắc đến nhiều truyền thơng mạng xã hội Cùng với hứa hẹn đổi đời doanh nghiệp Việt Nam đón sóng Cách mạng công nghiệp 4.0 diễn lĩnh vực gồm: Cơng nghệ sinh học, Kỹ thuật số Vật lý Những yếu tố cốt lõi Kỹ thuật số là: Trí tuệ nhân tạo (AI), Vạn vật kết nối - Internet of Things (IoT) Trong IoT đảm nhiệm việc kết nối, thu nhập thông tin từ thiết bị vật dụng AI đảm nhiệm việc xử lý chúng Hiện có nhiều doanh nghiệp tham gia vào phát triển hệ thống IoT kết hợp với AI , dự án bám sát với ứng dụng thực tế: Nhận diện khn mặt , nhận diện giọng nói , chữ kí điện tử , Đã có nhiều doanh nghiệp lớn giới có thành công lĩnh vực nghiên cứu Google, Apple, Microsoft, Trong đề tài này, nhóm thảo luận, nghiên cứu thực chủ đề Nhận diện từ khóa sử dụng Vi điều khiển Vi điều khiển xuất từ lâu, ứng dụng hầu hết thiết bị điện tử mà ta dùng ngày Việc ứng dụng AI chạy thiết bị Vi điều khiển chủ đề bàn luận qua nhiều năm, với ưu điểm mình, thiết bị vi điều khiển mong đợi giải vấn đề Hiện có nhiều thiêt bị vi điều khiển từ nhiều nhà cung cấp khác đáp ứng nhu cầu Một số chúng phải kể đến STM32F746NG Discovery kit đến từ nhà sản xuất STMicroelectronic, với nhiều tính board hệ sinh thái mà STM cung cấp, ta dễ dàng xây dựng ứng dụng giải vấn đề iii Mục lục Lời cam đoan i Lời cảm ơn ii Tóm tắt iii Danh mục hình ảnh vii Danh mục từ viết tắt x Giới thiệu 1.1 Tại lại "Nhận diện từ khoá"? 1.2 Mục tiêu giới hạn đề tài 1.3 Ý nghĩa đề tài 1.3.1 Ý nghĩa thực tiễn 1.3.2 Ý nghĩa khoa học Cấu trúc luận văn tốt nghiệp 1.4 Cơ sở lý thuyết tảng công nghệ 2.1 2.2 2.3 Âm đặc trưng âm 2.1.1 Âm 2.1.2 Các đặc trưng vật lý âm [31] 2.1.3 Cách tạo âm thu nhận âm người [29] 2.1.4 Các đặc trưng tiếng nói [29] Thiết bị thu nhận âm 2.2.1 Tổng quan thu âm - Microphone 2.2.2 Một số loại Microphone STM32F746NG Discovery Board 2.3.1 Tổng quan [25] 10 2.3.2 Các thành phần [25] 10 iv 2.4 2.5 2.3.3 Một số ứng dụng vi điều khiển STM32F746 [25] 10 2.3.4 Trình điều khiển HAL (HAL driver)[23] 11 Nhận dạng giọng nói tự động - Automatic Speech Recognition (ASR) 11 2.4.1 Giới thiệu 11 2.4.2 Vì cần thiết kế hệ thống nhận diện giọng nói? 11 2.4.3 Phương pháp 12 Về mã nguồn 12 2.5.1 C++ & Standard Library 12 2.5.2 Thư viện hỗ trợ lập trình 2.5.3 2.6 2.5.2.1 Board Support Package (BSP) [4][33] 13 2.5.2.2 Common Microcontroller Software Interface Standard (CMSIS) [17] 13 TensorFlow & TensorFlow Lite [26][27] 14 Các kiến thức liên quan 14 2.6.1 Analog, Digital ADC 14 2.6.2 Các chuẩn kết nối 16 2.6.3 2.6.4 2.7 13 2.6.2.1 Serial Audio Interface (SAI) [16] 16 2.6.2.2 Universal Asynchronous Receiver/Transmitter (UART) 16 Fourier Transform [36] 18 2.6.3.1 Fast Fourier Transform [35] 18 2.6.3.2 Inverse Fast Fourier Transform [12] 19 Tín hiệu PDM PCM [24] 19 2.6.4.1 PDM 19 2.6.4.2 PCM 2.6.4.3 Chuyển từ PDM sang PCM [1] 20 20 Neural Network 20 2.7.1 Tổng quan Neural Network 20 2.7.2 Các mơ hình Neural Network thường dùng Nhận Diện Từ Khóa 23 Thiết kế hệ thống 3.1 28 Hệ thống phần cứng 29 3.1.1 Thiết kế tổng quan 29 3.1.2 Thiết bị huấn luyện mơ hình - Laptop 29 3.1.3 Thiết bị thu âm - Microphone [24] 30 3.1.4 3.1.3.1 Cảm biến digital MEMS microphone 30 3.1.3.2 Kết nối module 31 Bộ giải mã âm - Audio codec 33 v 3.2 3.1.5 Thiết bị xử lý - MCU 34 3.1.6 Thiết bị xuất liệu 35 Lưu đồ hoạt động 36 3.2.1 Thiết kế tổng quan 36 3.2.2 Trích xuất đặc trưng sử dụng MFCC [28] 37 3.2.3 3.2.2.1 A/D Conversion 37 3.2.2.2 Pre-emphasis 38 3.2.2.3 Spectrogram [37] [14] 38 Xây dựng mơ hình DS-CNN [21] Hiện thực hệ thống 44 48 4.1 Git 49 4.2 Tập liệu 50 4.3 Huấn luyện mô hình 51 4.4 4.3.1 Mã nguồn 51 4.3.2 Luồng hoạt động 52 Vi điều khiển STM32F746NG 53 4.4.1 4.4.2 Mã nguồn 53 4.4.1.1 Mbed Platform 53 4.4.1.2 BSP - DISCOF746NG 53 4.4.1.3 CMSIS_5 54 Luồng hoạt động 54 Triển khai hệ thống 5.1 5.2 5.3 56 Môi trường triển khai 56 5.1.1 Ubuntu - Linux 56 5.1.2 GNU Arm Embedded Toolchain 56 Thực thí nghiệm 57 5.2.1 Các thông số đánh giá 57 5.2.2 Thu thập liệu 57 5.2.3 Thí nghiệm kiểm thử mơ hình máy tính 58 5.2.4 Thí nghiệm kiểm thử mơ hình vi điều khiển 58 Các bước triển khai hệ thống 59 5.3.1 Huấn luyện mơ hình 59 5.3.1.1 Thu thập liệu mẫu 59 5.3.1.2 Huấn luyện mơ hình 59 5.3.1.3 Chuyển đổi tệp tflite sang tệp C-array 60 vi • Các số liệu nhận dựa việc sử dụng từ "Go" để nhận diện, với 02 yếu tố đầu vào khoảng cách nhận diện, gồm 05 mức khoảng cách khác (0.5m, 1m, 1.5m, 2m, 3m) môi trường nhận diện (môi trường n tĩnh mơi trường có tiếng ồn quạt điện) Như ta có 10 trường hợp cần thực thí nghiệm Kết thí nghiệm trình bày phần kết thực nghiệm (chương 6) 5.3 5.3.1 5.3.1.1 Các bước triển khai hệ thống Huấn luyện mơ hình Thu thập liệu mẫu Việc thu thập liệu thực cách sử dụng thiết bị thu âm sẵn có máy tính cá nhân, điện thoại di động, Tuy nhiên, giới hạn khả nhóm, sử dụng tập liệu Google để tiết kiệm thời gian tăng độ tin cậy cho tập liệu sử dụng việc huấn luyện mô hình Link: http://download.tensorflow.org/data/speech_commands_v0.02.tar.gz 5.3.1.2 Huấn luyện mơ hình Trong đề tài, sử dụng từ để nhận diện "Go" "Up" Nếu muốn sử dụng từ khác, bạn thay cho từ Sau tải xuống liệu Google Speech Dataset, chúng tơi bắt đầu huấn luyện mơ hình với thơng số xác định hình 3.23 cd Training python3 train.py model_architecture ds_cnn model_size_info 64 10 2 64 3 1 64 3 1 64 3 1 64 3 1 dct_coefficient_count 10 window_size_ms 40 window_stride_ms 20 learning_rate 0.0005,0.0001,0.00002 how_many_training_steps 10000,10000,10000 summaries_dir work/DS_CNN/DS_CNN1/retrain_logs train_dir work/DS_CNN/DS_CNN1/training wanted_words "go,up" Sau huấn luyện mơ hình xong, terminal kết tương tự sau: 400/400 [==============================] - 63s 153ms/step - loss: 0.3783 accuracy: 0.8814 - val_loss: 1.1189 - val_accuracy: 0.3714 Epoch 75/75 400/400 [==============================] - 70s 174ms/step - loss: 0.0114 accuracy: 0.9963 - val_loss: 0.1705 - val_accuracy: 0.9624 8/8 [==============================] - 1s 146ms/step - loss: 0.1901 accuracy: 0.9634 Final test accuracy: 96.34% Kết cho biết, mô hình huấn luyện xong độ xác đạt khoảng 96,34% 59 5.3.1.3 Chuyển đổi tệp tflite sang tệp C-array Bước thực cách sử dụng mã nguồn Python để chuyển đổi tệp tflite sang tệp hex-C-array Chuyển đổi sang Tflite python3 convert.py model_architecture ds_cnn model_size_info 64 10 2 64 3 1 64 3 1 64 3 1 64 3 1 dct_coefficient_count 10 window_size_ms 40 window_stride_ms 20 learning_rate 0.0005,0.0001,0.00002 how_many_training_steps 10000,10000,10000 summaries_dir work/DS_CNN/DS_CNN1/retrain_logs train_dir work/DS_CNN/DS_CNN1/training wanted_words "go,up" checkpoint work/DS_CNN/DS_CNN1/training/best/ds_cnn_0.965_ckpt Trong đó: work/DS_CNN/DS_CNN1/training/best/ds_cnn_0.965_ckpt checkpoint path, đường dẫn kết huấn luyện mục 5.2.1.2 Sau chuyển đổi sang Tflite, kết hiển thị tương tự sau: Quantized model saved to ds_cnn_quantized.tflite Running testing on test set [[ 83 0 0] [ 53 18 12] [ 398 2] [ 10 409]] Test accuracy = 94.96%(N=993) Chuyển đổi sang C-Array cd kws_cortex_m python3 tflite_to_tflu.py tflite_path /Training/ds_cnn_quantized.tflite output_path ds_cnn_s_tflu.cc Sau chuyển đổi sang C-Array, file ds_cnn_s_tflu.cc nằm thư mục kws_cortex_m 5.3.2 Build chương trình Cài đặt phần mềm cần thiết: • mbed-cli: $ python3 -m pip install mbed-cli • arm-none-eabi-toolchain: $ apt install gcc-arm-none-eabi Biên dịch chương trình • Sao chép file C-Array chuyển đổi mục 5.2.1.3 vào mã nguồn Vi điều khiển cp ds_cnn_s_tflu.cc /mbed/tensorflow/lite/micro/examples/kws_cortex_m/Source/Generated/DS_CNN/d 60 • Thay đổi từ muốn nhận diện "Go" "Up" mã nguồn file main.cc std::vector outputClass = { "Silence", "Unknown", "go", "up" }; • Biên dịch chương trình Vi điều khiển cd mbed mbed compile -m DISCO_F746NG -t GCC_ARM source source /CMSIS_5/CMSIS/DSP/Include source /CMSIS_5/CMSIS/Core/Include source /CMSIS_5/CMSIS/DSP/PrivateInclude/ Sau biên dịch xong, terminal xuất kết tương tự sau: Building project mbed (DISCO_F746NG, GCC_ARM) Scan: mbed Scan: Include Scan: Include Scan: PrivateInclude Link: mbed Elf2Bin: mbed | Module | text | data | bss | | | | | | | BSP_DISCO_F746NG/Drivers | 6376(+0) | 50(+0) | 1208(+0) | | BSP_DISCO_F746NG/Utilities | 0(+0) | 8(+0) | 0(+0) | | [fill] | 210(+0) | 15(+0) | 31(+0) | | [lib]/c.a | 62536(+0) | 2574(+0) | 97(+0) | | [lib]/gcc.a | 7256(+0) | 0(+0) | 0(+0) | | [lib]/m.a | 11460(+0) | 0(+0) | 0(+0) | | [lib]/misc | 188(+0) | 4(+0) | 28(+0) | | [lib]/nosys.a | 32(+0) | 0(+0) | 0(+0) | | [lib]/stdc++.a | 169740(+0) | 144(+0) | 4332(+0) | | mbed-os/drivers | 60(+0) | 0(+0) | 0(+0) | | mbed-os/hal | 1266(+0) | 4(+0) | 66(+0) | | mbed-os/platform | 4058(+0) | 260(+0) | 226(+0) | | mbed-os/targets | 15200(+0) | 5(+0) | 1184(+0) | | tensorflow/lite | 42198(+0) | 0(+0) | 131076(+0) | | Subtotals | 320580(+0) | 3064(+0) | 138248(+0) | Total Static RAM memory (data + bss): 141312(+0) bytes Total Flash memory (text + data): 323644(+0) bytes Object file kernel_util.o is not unique! It could be made from: tensorflow/lite/kernels/kernel_util.cc tensorflow/lite/micro/kernels/kernel_util.cc Image: /BUILD/DISCO_F746NG/GCC_ARM/mbed.bin 61 5.3.3 Nạp chương trình vào board • Kết nối board vào máy tính thơng qua cổng USB Board hiển thị thiết bị "USB mass storage" • Tệp binary sau build có tên mbed.bin nằm thư mục /BUILD/DISCO_F746NG/GCC_ARM/, sau chép tệp vào USB mass storage device đèn LED board nhấp nháy, biểu thị board nạp lại chương trình • Khi đèn LED hết nháy, ta cần đặt lại board cách nhấn nút reset board • Để xem kết quả, có hai cách sau: – Cách 1: Sử dụng Serial Output MBED Studio: Mở MBED Studio, sau chọn tab View → Serial Output – Cách 2: Sử dụng Minicom Ubuntu: Cài đặt chạy chương trình Minicom terminal lệnh sau: $ apt-get install minicom $ minicom -b 9600 -D /dev/ttyACM0 Kết hiển thị hình terminal 62 Chương Kết thực nghiệm Trong chương này, nhóm trình bày kết thực nghiệm chương trình Thứ kết thí nghiệm yếu tố đầu vào khác trình bày phần 5.2 Thứ hai kết hình terminal sau chạy huấn luyện mơ hình máy tính Cuối cùng, phần kết nhận diện từ khoá vi điều khiển mơ hình huấn luyện 6.1 6.1.1 Thí nghiệm So sánh 02 mơ hình DNN DS-CNN Mơ hình DNN DS-CNN Kích thước mơ hình 200Kbytes 47kBytes Độ xác huấn luyện 92,22% 95,98% Độ xác thực tế 79,67% 88,78% Tỉ lệ sai số 17,2% 8,26% Bảng 6.1: Bảng so sánh kết mơ hình DNN & DS-CNN Từ bảng 6.1, ta có nhận xét sau: • Kích thước mơ hình huấn luyện giải thuật DS-CNN gần 1/4, nhỏ nhiều so với mơ hình giải thuật DNN • Về độ xác huấn luyện độ xác thực tế chạy mơ hình với tập liệu tự thu thập máy tính, giải thuật DS-CNN cho kết tốt tương đối • Tỉ lệ sai số nhận diện từ khoá giải thuật DS-CNN xấp xỉ nửa so với giải thuật DNN Từ nhận xét kết trên, ta dễ dàng thấy mô hình dựa giải thuật DS-CNN có kết tốt tổng thể tiêu chí Do đó, ta chọn giải thuật để huấn luyện mơ hình dùng cho thí nghiệm cịn lại 63 6.1.2 Theo số lượng từ khoá nhận diện Sau chọn giải thuật phù hợp, ta áp dụng giải thuật để huấn luyện mơ hình với số lượng từ khố nhận diện khác có bảng kết sau đây: Trường hợp 1/35 Từ 2/35 Từ 5/35 Từ Độ xác huấn luyện 96.49% 96.98% 94.76% Độ xác thực tế 85.42% 91.94% 88.98% Tỉ lệ sai số 11.6% 6.66% 6.66% Bảng 6.2: Bảng kết dựa số lượng từ khóa mơ hình DS-CNN Từ bảng kết trên, ta dễ dàng thấy trường hợp nhận diện tổng số 35 từ khoá huấn luyện cho kết tốt tiêu chí độ xác huấn luyện, độ xác thực tế chạy với tập liệu tự thu thập máy tính tỉ lệ sai số Do vậy, ta chọn mơ hình sử dụng giải thuật DS-CNN với trường hợp nhận diện 2/35 từ khoá để áp dụng chạy suy luận vi điều khiển 6.1.3 Nhận diện từ khoá thực tế vi điều khiển Thí nghiệm thực vi điều khiển, với chương trình nhận diện từ khố sử dụng mơ hình giải thuật DS-CNN Bảng kết giá trị trung bình cộng giá trị độ xác đo dựa việc nhận diện từ "Go" trường hợp thực 60 lần, lần nhận diện sai, độ xác tính 0% Mơi trường thực thí nghiệm phịng kín có diện tích khoảng 15m2 Trường hợp 0.5m 1m 1.5m 2m 3m Môi trường yên tĩnh 77,4% 72,2% 75.5% 75,6% 65,6% Có tiếng quạt 72,1% 65,6% 65% 48,8% 72,3% Bảng 6.3: Bảng kết dựa khoảng cách nhận diện tiếng ồn Độ xác nhận diện từ "Go" môi trường yên tĩnh không thay đổi nhiều trường hợp có khoảng cách khác Không giống trường hợp môi trường yên tĩnh, mơi trường có tiếng ồn từ quạt điện, độ xác trường hợp thay đổi rõ rệt, có xu hướng giảm dần tăng khoảng cách người nói thiết bị thu âm (mems microphone) Ta hiểu xu hướng giảm dần với lý phịng kín với khoảng cách xa âm bị vọng, với âm nhiễu đến từ quạt điện làm cho âm thu bị sai lệch nhiều hơn, từ việc nhận diện từ khố khó khăn Tuy nhiên, trường hợp xa 3m mơi trường có tiếng ồn, độ xác nhận diện lại cao tương đương với trường hợp khoảng cách 0.5m Vấn đề số lần thực thí nghiệm chưa đủ lớn, từ gây nhiễu cho kết thu 64 6.2 Huấn luyện mơ hình Trong phần này, chúng tơi huấn luyện 18 từ khóa cho phép nhận biết từ "go" "up" Dưới kết q trình huấn luyện mơ hình 400/400 [==============================] - 63s 153ms/step - loss: 0.3783 accuracy: 0.8814 - val_loss: 1.1189 - val_accuracy: 0.3714 Epoch 2/75 400/400 [==============================] - 59s 147ms/step - loss: 0.1468 accuracy: 0.9529 - val_loss: 0.1556 - val_accuracy: 0.9509 Epoch 3/75 400/400 [==============================] - 60s 149ms/step - loss: 0.1057 accuracy: 0.9648 - val_loss: 0.1384 - val_accuracy: 0.9566 400/400 [==============================] - 71s 177ms/step - loss: 0.0111 accuracy: 0.9966 - val_loss: 0.1672 - val_accuracy: 0.9624 Epoch 71/75 400/400 [==============================] - 60s 149ms/step - loss: 0.0118 accuracy: 0.9964 - val_loss: 0.1665 - val_accuracy: 0.9624 Epoch 72/75 400/400 [==============================] - 60s 151ms/step - loss: 0.0117 accuracy: 0.9963 - val_loss: 0.1688 - val_accuracy: 0.9624 Epoch 73/75 400/400 [==============================] - 68s 169ms/step - loss: 0.0119 accuracy: 0.9958 - val_loss: 0.1750 - val_accuracy: 0.9624 Epoch 74/75 400/400 [==============================] - 76s 190ms/step - loss: 0.0109 accuracy: 0.9963 - val_loss: 0.1730 - val_accuracy: 0.9639 Epoch 75/75 400/400 [==============================] - 70s 174ms/step - loss: 0.0114 accuracy: 0.9963 - val_loss: 0.1705 - val_accuracy: 0.9624 8/8 [==============================] - 1s 146ms/step - loss: 0.1901 accuracy: 0.9634 Final test accuracy: 96.34% - - - - - - - - - Mơ hình sau huấn luyện đạt độ xác 96.34% 6.3 Nhận diện từ khóa mơ hình huấn luyện Trong phần chúng tơi mơ tả kết sử dụng mơ hình huấn luyện Vi điều khiển Kết hiển thị Console (Máy tính) LCD (Vi điều khiển) 6.3.1 Khi khơng có âm xung quanh Khi khơng có âm xung quanh âm nhỏ (được xem tín hiệu nhiễu) Vi điều khiển cho kết tốt 96% 65 Hình 6.1: Slience Console 6.3.2 Phát âm từ "Go" Hình 6.2: Kết từ "Go" Console Khi người dùng nói từ "Go", sau khoảng 1s Vi điều khiển trả kết "Go" với độ xác 89% Ngay sau đó, khơng có từ khóa Vi điều khiển lại trả "Silence" 6.3.3 Phát âm từ "Up" Tương tự từ "Go", phát từ "Up" Vi điều khiển trả kết Terminal Ở hình trên, độ xác 99% 66 Hình 6.3: Kết từ "Up" Console Trong đề tài này, demo với từ "Go" "Up" Nếu muốn sử dụng từ khóa khác, thực công việc tương tự 67 Chương Kết luận khuyến nghị 7.1 7.1.1 Đánh giá kết đạt Đối với tìm hiểu vấn đề liên quan đến lĩnh vực nhận diện từ khóa Chúng tơi tìm hiểu vấn đề liên quan đến lĩnh vực nhận diện từ khóa, giải pháp có sẵn hạn chế 7.1.2 Đối với sở lý thuyết tảng công nghệ Để thực hệ thống, chúng tơi tìm hiểu nhiều lý thuyết liên quan lĩnh vực nhận diện từ khóa: Cơ sở lý thuyết: • Khái niệm âm thanh, đặc trưng tham số âm • Cách người tạo âm - từ khóa Nền tảng cơng nghệ: • Mơ hình Neural Network dùng phổ biến nhận diện từ khóa • Các thiết bị thu âm lọc nhiễu • Các kỹ thuật xử lý tín hiệu: DFT, IFT, Ngồi ra, chúng tơi tìm hiểu sử dụng số công cụ mạnh mẽ như: Mbed, tensorflow, 7.1.3 Đối với việc phân tích thiết kế hệ thống Về phần cứng, phân tích kỹ kỹ thuật kết nối IC Component hệ thống: Microphone sử dụng SAI Chúng tơi phân tích kỹ mơ hình mơ hình Neural Network, đặc biệt mơ hình DS-CNN Bằng cách sử dụng thơng số phù hợp, từ mang lại kết tốt 68 7.1.4 Đối với việc thực hệ thống Đối với việc thực hệ thống, gặp nhiều khó khăn nhiều thời gian để tìm hiểu lý thuyết Neural Network số API tensorflow Vì chúng tơi thực chức là: Nhận diện từ khóa thời điểm 7.2 7.2.1 Đánh giá công việc chưa thực Đối với chế nhận diện từ khóa Hiện việc nhận diện từ khóa cịn nhiều thời gian gần 0.5s để nhận diện Và khoảng thời gian liệu bị tượng bottle neck 7.2.2 Đối với việc ứng dụng nhận diện từ khóa vào ứng dụng IoT Ban đầu, chúng tơi dự định phát triển thêm số tính để ứng dụng hệ thống nhận diện từ khóa Nhưng thật thử thách lớn với chúng tơi Vì chúng tơi phải tạm dừng chức nhận diện từ khóa 7.2.3 Đối với hiệu suất hệ thống nhận diện từ khóa Hiện chúng tối đánh giá hệ thống thông qua số metric như: Tốc độ nhận diện, độ xác, tỉ lệ sai Các metric thực chưa tốt: • Tốc độ nhận diện: giây • Độ xác: 90% • Tỉ lệ sai: 30% 7.3 Những thuận lợi khó khăn Trong thời gian thực luận văn này, nhóm có điều kiện thuận lợi gặp khó khăn định sau: 7.3.1 Thuận lợi • Được giảng viên hướng dẫn giúp đỡ tận tình động viên suốt q trình thực luận văn • Số lượng viết đề tài nhận diện từ khoá phong phú, giúp nhóm dễ dàng tiếp cận với kiến thức đề tài • Mã nguồn mở, thư viện hỗ trợ lập trình tập liệu mẫu cung cấp ARM-Software, Google, TensorFlow mang đến độ tin cậy cao 69 7.3.2 Khó khăn • Vì ảnh hưởng dịch COvid-19 nên nhóm làm việc online, với có thiết bị (board STM32) • Đề tài Nhận diện từ khóa bao hàm nhiều kiến thức khó chuyên sâu thuộc nhiều chuyên ngành khác khoa học máy tính, âm học 7.4 Hướng phát triển tương lai Từ làm đề tài luận văn này, xác định số hướng đề tài sau: 7.4.1 Cải thiện tốc độ nhận diện độ xác Như nói trên, hiệu suất hệ thống chưa tốt Để ứng dụng vào thực tế, cần phải cải thiện hiệu nhiều 7.4.2 Ứng dụng hệ thống nhận diện từ khóa vào IoT Chúng ta biết, hệ thống nhận diện từ khóa hoạt động độc lập khơng có ý nghĩa ứng dụng Vì ta cần phải ứng dụng chúng vào dự án thực tế Sau dự án mà đề xuất, mong muốn thực hiện: • Smart Assistant: Trợ lý thơng minh Đã có nhiều dự án Smart Assistant Siri, Alexa, hay gần Maika Ứng dụng thực tiễn ngày phổ biến • Speech To Text: Là công việc biến đổi thông tin dạng âm thành dạng văn Một số ứng dụng có như: Google Translate, FPT AI, 70 Tài liệu tham khảo [1] ap.com More about PDM url: https://www.ap.com/technical-library/moreabout-pdm/#:~:text=PDM%5C%20to%5C%20PCM,is%5C%20called%5C%20the%5C% 20oversampling%5C%20ratio (Truy cập lần cuối: 12.02.2022) [2] ARM-MBED Debugging using printf() statements - Debugging and testing | Mbed OS Documentation url: https : / / os mbed com / docs / mbed - os / v6 15 / debug- test/debugging- using- printf- statements.html (Truy cập lần cuối: 12.02.2022) [3] ARM-Software ML-KWS-for-MCU url: https://github.com/ARM-software/ ML-KWS-for-MCU (Truy cập lần cuối : 27.12.2020) [4] Bootlin Linux Board Support Package development url: https://www.microcontrollertips com/board-support-package/ (Truy cập lần cuối: 12.02.2022) [5] BOTHNERS Dynamic vs Condenser Mics: A Basic Introduction url: https : //bothners.co.za/dynamic- vs- condenser- mics- a- basic- introduction/ (Truy cập lần cuối: 28/11/2021) [6] CIRRUS WM8994ECS/R.pdf url: https://d3uzseaevmutz1.cloudfront.net/ pubs/proDatasheet/WM8994_v4.5.pdf (Truy cập lần cuối: 28/11/2021) [7] COVENTOR An Explanation of New MEMS Microphone Technology and Design - Coventor url: https://www.coventor.com/blog/explanation- new- memsmicrophone-technology-design/ (Truy cập lần cuối: 28/11/2021) [8] Olga Davydova 10 Application of Neural Network url: https://medium.com/ @datamonsters/artificial-neural-networks-in-natural-language-processingbcf62aa9151a (Truy cập lần cuối : 15.11.2021) [9] digilab.libs.uga.edu Early History of the Microphone url: https : / / digilab libs.uga.edu/scl/exhibits/show/steel_vintage_mics/mic_early_history (Truy cập lần cuối: 28/11/2021) [10] electronics-tutorials.ws Analogue to Digital Converter url: https://www.electronicstutorials.ws/combination/analogue-to-digital-converter.html (Truy cập lần cuối : 12.02.2022) [11] EMAC.inc Getting Started With Minicom url: https : / / wiki emacinc com / wiki/Getting_Started_With_Minicom (Truy cập lần cuối: 12.02.2022) [12] GeeksforGeeks Inverse Fast Fourier Transform url: https://www.geeksforgeeks org / python - inverse - fast - fourier - transformation / # : ~ : text = Inverse % 5C % 20Fast % 5C % 20Fourier % 5C % 20transform % 5C % 20(IDFT , sequences % 5C % 20to%5C%20different%5C%20frequency%5C%20components (Truy cập lần cuối: 12.02.2022) [13] hyperphysics.phy-astr.gsu.edu Microphones url: http : / / hyperphysics phy astr.gsu.edu/hbase/Audio/mic.html (Truy cập lần cuối: 28/11/2021) 71 [14] IEEE An ASR system using MFCC and VQ/GMM with emphasis on environmental dependency url: https://ieeexplore.ieee.org/document/8280756 (Truy cập lần cuối : 27.12.2020) [15] Siddharth Kalla Neural Network url: https://medium.com/nerd- for- tech/ neural-networks-68531432fb5 (Truy cập lần cuối : 15.11.2021) [16] Keil SAI Interface url: https : / / www keil com / pack / doc / CMSIS / Driver / html / group _ _sai _ _interface _ _gr html# : ~ : text = The % 5C % 20Serial % 5C % 20Audio%5C%20Interface%5C%20(SAI,MSB%5C%20Justified (Truy cập lần cuối : 12.02.2022) [17] keil.com CMSIS Introduction url: https://www.keil.com/pack/doc/CMSIS/ General/html/index.html (Truy cập lần cuối: 29/11/2021) [18] Công Thức Vật Lý Phương trình q i mạch LC - vật lý 12 url: https: //congthucvatly.com/cong-thuc-moi-quan-he-giua-dien-tich-va-cuongdo- dong- dien- trong- mach- dao- dong- lc- li- tuong- 228 (Truy cập lần cuối: 12.02.2022) [19] mathworld.wolfram.com/ Fast Fourier Transform url: https : / / mathworld wolfram.com/FastFourierTransform.html (Truy cập lần cuối: 12.02.2022) [20] Tutorials point Artificial Neural Network - Basic Concept url: https://www tutorialspoint.com/artificial_neural_network/artificial_neural_network_ basic_concepts.htm (Truy cập lần cuối : 15.11.2021) [21] Arjun Sarkar Understanding Depthwise Seperable Convolution Neural Network url: https://towardsdatascience.com/understanding-depthwise-separableconvolutions-and-the-efficiency-of-mobilenets-6de3d6b62503 (Truy cập lần cuối: 28/11/2021) [22] STMicroelectronics 32F746GDISCOVERY - Discovery kit with STM32F746NG MCU - STMicroelectronics url: https://www.st.com/en/evaluation-tools/ 32f746gdiscovery.html (Truy cập lần cuối : 12.02.2022) [23] STMicroelectronics Description of STM32F4 HAL and low-layer drivers - User manual url: https://www.st.com/resource/en/user_manual/dm00105879description - of - stm32f4 - hal - and - ll - drivers - stmicroelectronics pdf (Truy cập lần cuối: 12/2/2022) [24] STMicroelectronics Interfacing PDM digital microphones using STM32 MCUs and MPUs url: https://www.st.com/resource/en/application_note/dm00380469interfacing - pdm - digital - microphones - using - stm32 - mcus - and - mpus stmicroelectronics.pdf (Truy cập lần cuối : 27.12.2020) [25] STMicroelectronics STM32F746NG - High-performance and DSP with FPU, Arm Cortex-M7 MCU with Mbyte of Flash memory, 216 MHz CPU, Art Accelerator, L1 cache, SDRAM, TFT - STMicroelectronics url: https://www.st.com/en/ microcontrollers- microprocessors/stm32f746ng.html#overview (Truy cập lần cuối : 12.02.2022) [26] TensorFlow TensorFlow Core | Machine Learning for Beginners and Experts url: https://www.tensorflow.org/overview (Truy cập lần cuối: 12.02.2022) [27] TensorFlow TensorFlow Lite | ML for Mobile and Edge Devices url: https : //www.tensorflow.org/lite (Truy cập lần cuối: 12.02.2022) 72 [28] Nguyễn Trung Thành Feature Extraction - MFCC cho xử lý tiếng nói url: https: / / viblo asia / p / feature - extraction - mfcc - cho - xu - ly - tieng - noi 4dbZN2xmZYM (Truy cập lần cuối : 27.12.2020) [29] Nguyễn Trung Thành Kiến thức tảng xử lý tiếng nói - Speech Processing url: https://viblo.asia/p/kien- thuc- nen- tang- xu- ly- tieng- noi- speechprocessing-jvElaAL6lkw (Truy cập lần cuối : 27.12.2020) [30] Electronics Tutorials Capacitance and Charge on a Capacitors Plates url: https: //www.electronics-tutorials.ws/capacitor/cap_4.html (Truy cập lần cuối: 12.02.2022) [31] Vietjack Lý thuyết Sóng âm hay, chi tiết - Vật Lí lớp 12 url: https : / / vietjack.com/vat- ly- lop- 12/ly- thuyet- song- am.jsp (Truy cập lần cuối: 12.02.2022) [32] w3schools.com C++ Introduction url: https://www.w3schools.com/cpp/cpp_ intro.asp (Truy cập lần cuối: 29/11/2021) [33] Wikipedia Board support package - Wikipedia url: https://en.wikipedia.org/ wiki/Board_support_package (Truy cập lần cuối: 12.02.2022) [34] Wikipedia C++ – Wikipedia tiếng Việt url: https://vi.wikipedia.org/wiki/ C%5C%2B%5C%2B (Truy cập lần cuối: 12.02.2022) [35] Wikipedia Fast Fourier transform url: https://en.wikipedia.org/wiki/Fast_ Fourier_transform (Truy cập lần cuối: 12.02.2022) [36] Wikipedia Fourier Transform url: https://en.wikipedia.org/wiki/Fourier_ transform (Truy cập lần cuối : 12.02.2022) [37] Wikipedia Mel-frequency cepstrum url: https://en.wikipedia.org/wiki/Melfrequency_cepstrum (Truy cập lần cuối : 27.12.2020) [38] Wikipedia Microphone - Wikipedia url: https : / / en wikipedia org / wiki / Microphone (Truy cập lần cuối: 28/11/2021) [39] Wikipedia Sound - Wikipedia url: https://en.wikipedia.org/wiki/Sound (Truy cập lần cuối: 12.02.2022) [40] Science World Sound - Science World url: https : / / www scienceworld ca / resource/sound/ (Truy cập lần cuối: 20.11.2021) 73

Ngày đăng: 13/07/2023, 22:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w