Thiết kế robot trợ lý giảng dạy giao tiếp bằng giọng nói
Nghiên cứu này trình bày thiết kế và kiểm nghiệm thử một Robot trợ lý giảng dạy hoạt
động như một trợ lý ảo nhưng có khả năng giao tiếp bằng giọng nói, không cần kết nối mạng
như các trợ lý ảo hiện tại và sử dụng mã nguồn mở Pocketsphinx để nhận dạng giọng nói.
Nghiên cứu cũng sử dụng khối hiệu chỉnh đặt sau Pocketsphinx để nâng cao độ chính xác cho
khối nhận dạng giọng nói. Phần lõi xử lý ngôn ngữ tự nhiên được sử dụng là mạng LSTM cho
phép đưa ra câu trả lời phù hợp mà mạng đã được huấn luyện. Chương trình được cài đặt
trên phần cứng nhúng Raspberry Pi Zero có mức tiêu tốn năng lượng thấp. Kết quả kiểm thử
và đánh giá cho thấy, nếu không sử dụng khối hiệu chỉnh robot có khả năng nhận dạng và trả
lời câu hỏi với tỷ lệ chính xác là 62.5%. Tỷ lệ nhận dạng được tăng lên đáng kể (87.2%) khi
sử dụng khối hiệu chỉnh.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Tóm tắt nội dung tài liệu: Thiết kế robot trợ lý giảng dạy giao tiếp bằng giọng nói
ật toán khoảng cách Levenshtein. một môn học. Robot có khả năng trả lời câu Thuật toán khoảng cách Levenshtein cho phép tính độ giống như giữa 2 chuỗi [14]. Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 61 (12/2020) 50 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh Kết quả nhận dạng được từ Pocketsphinx là ứng dụng nhiều trong kỹ thuật xử lý ngôn một câu hỏi dạng chuỗi, câu hỏi này được ngữ tự nhiên [15], [16] . Nhược điểm của đưa sang khối hiệu chỉnh. Tại khối hiệu mạng hồi quy là các giá trị lỗi có xu hướng chỉnh, độ giống nhau của câu hỏi và các câu nhỏ dần khi lan truyền qua nhiều lớp mạng hỏi mẫu trong tập huấn luyện sẽ được tính làm cho quá trình cập nhật trọng số không dựa trên thuật toán khoảng cách Levenshtein hiệu quả trong quá trình huấn luyện. Mạng để tìm xem câu hỏi nào trong tập câu hỏi LSTM là một cải tiến để khắc phục nhược mẫu có độ giống nhau với câu hỏi nhận được điểm này của mạng hồi quy [15]. Một lớp lớn nhất. Khi xác định được độ giống nhau của mạng LSTM được thể hiện ở hình 2. lớn nhất, câu hỏi có độ giống nhau lớn nhất với câu hỏi nhận được từ Pocketsphinx sẽ được lựa chọn và đưa sang khối tiếp theo. Khối hiệu chỉnh giúp nâng cao độ chính xác của khối nhận dạng tiếng nói đáng kể. Bảng 1 trình bày ví dụ hoạt động của khối hiệu chỉnh khi khối pocketsphinx nhận được câu hỏi và chuyển sang văn bản. Hoạt động của khối hiệu chỉnh được ví dụ minh họa trong bảng 1. Khi khối Pocketsphinx nhận dạng được giọng nói, kết quả nhận dạng được chuyển sang văn bản (text) và chuyển sang khối hiệu chỉnh. Tại đây khối hiệu chỉnh sẽ tính độ giống nhau giữa câu hỏi và bộ câu hỏi mẫu lưu trong cơ Hình 2. 1 lớp của mạng LSTM [15] sở dữ liệu sử dụng thuật toán Levenshtein và chọn ra câu hỏi giống nhất từ trong cơ sở dữ Mạng LSTM có khả năng giữ lại hoặc liệu. lọc bỏ các thông tin không cần thiết thông qua các cổng Gate, đó là sự kết hợp giữa một Bảng 1. Hoạt động của khối hiệu chỉnh với phép nhân và tầng Sigmoid để sàng lọc thông câu nhận được từ Pocketsphinx tin. Hàm sigmoid cho ra kết quả nằm trong Pocketsphinx What the function be khoảng [0,1], nếu đầu ra bằng 0 thì sẽ loại bỏ since thông tin đó, nếu bằng 1 thì cho tất cả thông tin đi qua. Đầu tiên các thông tin sẽ được đi Câu hỏi mẫu 1 What is a function in C qua tầng 1 hay còn được gọi là tầng forget Độ giống nhau 0.593 gate layer, tại đây thông tin sẽ giữ lại hoặc với câu hỏi mẫu 1 loại bỏ đi tùy thuộc vào kết quả của tầng Câu hỏi mẫu 2 What is a variable in C sigmoid. [ ] Độ giống nhau 0.407 푡 = 휎(푊 ℎ푡−1, 푡 + ) (1) với câu hỏi mẫu 2 Tiếp đó là bước kiểm tra thông tin mới, Lựa chọn ngõ ra What is a function in C xem thông tin nào sẽ được lưu vào trạng thái tế bào Ct-1. Ở bước này ta sử dụng một tầng Khối xử lý ngôn ngữ tự nhiên sử dụng sigmoid được gọi là input layer gate kết hợp mạng Long Short-Term Memory, một dạng với tầng hàm tanh để cập nhật trạng thái mới. cải tiến của mạng hồi quy (Recurrent Neural 𝑖 = 휎(푊 [ℎ , ] + ) (2) Network). LSTM cho phép nhận dạng các 푡 푖 푡−1 푡 푖 đối tượng theo thứ tự thời gian, phù hợp với ̃푡 = 푡 푛ℎ(푊 [ℎ푡−1, 푡] + ) (3) các ứng dụng mà trong đó ngõ vào có ràng Bước kế tiếp là cập nhật tế bào mới Ct, buộc về mặt thứ tự như chuỗi. LSTM được dựa vào sơ đồ hình 2 ta suy ra được: Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 61 (12/2020) Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 51 푡 = 푡 ∗ 푡−1 + 𝑖푡 ∗ ̃푡 (4) mỗi ô nhớ LSTM yêu cầu đầu vào là mảng 3 chiều, khi một LSTM xử lý một chuỗi đầu Bước cuối cùng là bước quyết định xem đầu vào của các bước thời gian mỗi ô nhớ sẽ xuất ra là gì, kết quả đó sẽ là đầu vào cho các một giá trị duy nhất cho toàn bộ chuỗi dưới hidden layer tiếp theo nên sẽ được sàn lọc dạng một mảng 2 chiều. thông tin lần cuối cùng dựa vào hàm sigmoid và sau đó nhân với hàm tanh để đưa ra giá trị Mô hình LSTM được huấn luyện trên đầu ra mong muốn máy chủ sử dụng bộ tăng tốc đồ họa (Graphic Procesisng Unit) GTX1080 để rút ngắn thời 표 = 휎(푊 [ℎ , ] + ) (5) 푡 0 푡−1 푡 0 gian huấn luyện. Tập dữ liệu huấn luyện cho ℎ푡 = 표푡 ∗ 푡 푛ℎ ( 푡) (6) Robot được tác giả tự tạo, bao gồm các câu hỏi Các tập dữ liệu được thu thập bao gồm kèm theo câu trả lời được lưu dưới dạng các tập câu hỏi mẫu phục vụ cho quá trình hiệu tập tin văn bản (.txt). Cấu trúc tập dữ liệu bao chỉnh và tập dữ liệu cho quá trình huấn luyện gồm một câu hỏi cho ngõ vào quá trình mạng LSTM. Cấu trúc dữ liệu huấn luyện Encoder và một câu trả lời cho quá trình mạng bao gồm một câu hỏi làm đầu vào cho Decoder của mạng LSTM. Các câu hỏi và câu quá trình mã hóa (Encoder) của mạng LSTM trả lời được biên soạn bám theo nội dung một và câu trả lời cho quá trình giải mã (Decoder) môn học kỹ thuật, cụ thể là môn Ngôn ngữ lập [8]. Mạng LSTM được thiết kế sử dụng thư trình C. Mô hình sau khi huấn luyện và viện Keras. Kiến trúc mạng LSTM được tóm chương trình xử lý được cài đặt xuống cho tắt trong hình 3. phần cứng nhúng Raspberry Pi. Để Robot có thể trả lời các câu hỏi từ người dùng bằng giọng nói, tác giả thiết kế khối chuyển đổi từ văn bản sang giọng nói. Dữ liệu giọng nói được ghi âm cho từng từ riêng lẻ và được lưu dưới dạng các tệp âm thanh (.wav) trong thẻ nhớ. Kết quả đưa ra từ mô hình LSTM sẽ được ánh xạ sang các tệp âm thanh. Chương trình sẽ gọi thực thi các tệp âm thanh tương ứng để tạo Hình 3. Kiến trúc mô hình LSTM sử dụng ra câu trả lời. Chương trình được triển khai thư viện Keras trên phần cứng Raspberry Pi Zero và được lắp đặt vào mô hình Robot như hình 4. Cấu trúc mạng trong hình 3 gồm: 2 input layer, 2 embedding và 2 LSTM với số nơ-ron lớp ẩn là 200. Số lượng nơ-ron trong lớp ẩn được lựa chọn tối ưu sao cho mạng được triển khai hiệu quả trên cấu hình phần cứng tương đối thấp của Raspberry Pi Zero. Với tập dữ liệu cụ thể cho một môn học kỹ thuật, (a) Khối điều (c) Mô hình Robot khiển số lượng nơ-ron lớp ẩn là 200 đảm bảo độ Màn hình LCD Mạch khuếch Loa chính xác và tốc độ đáp ứng khi được triển đại Hệ thống nhúng Bộ chuyển đổi Raspberry Pi khai trên phần cứng Raspberry Pi Zero. Dựa USB Âm thanh Zero vào tập dữ liệu, có khoảng 840 từ khác nhau, Mi-crô do đó, lựa chọn lớp đầu vào (Input layer) của Nguồn cung cấp (5V) encoder_input và decoder_input với số mẫu (b ) Sơ đồ khối bộ điều khiển (num_sample) là 840. Embedding layer là lớp chuyển đổi không gian vector của Hình 4. (a) Kết nối bộ điều khiển, (b) sơ đồ encoder_embedding và decoder_embedding khối bộ điều khiển,(c)thiết kế phần thân Robot với kích thước 840x200=168000. LSTM Hình 4 mô tả kết nối của khối điều layer nhận đầu vào từ các embedding layer, khiển, sơ đồ khối bộ điều khiển và phần thân Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 61 (12/2020) 52 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh của robot. Khối điều khiển được sử dụng là bình trong 5 lần thực nghiệm với 2 mô hình; hệ thống nhúng Raspberry Pi Zero có kích không sử dụng khối hiệu chỉnh và sử dụng thước nhỏ và giá thành thấp, phù hợp với các khối hiệu chỉnh. Khi không sử dụng khối hiệu thiết kế robot di động. Hệ thống sử dụng một chỉnh, tỷ lệ nhận dạng và trả lời câu hỏi đúng Microphone có tích hợp bộ khuếch đại với hệ là 62.5%. Trong trường hợp sử dụng khối hiệu số tín hiệu trên nhiễu (SNR) là 62 dBA để chỉnh, độ chính xác được nâng lên 87.2%. tăng khoảng cách thu và loại bỏ nhiễu. Tín Sử dụng khối hiệu chỉnh cho phép tăng hiệu âm thanh được khuếch đại và đưa đến độ chính xác của robot khi robot hoạt động ngõ ra loa. Hệ thống sử dụng pin với dung ngoại tuyến (offline). Các mô đun được cài lượng 4200 mAh cho phép Robot có thể hoạt đặt trên phần cứng có cấu hình thấp, động liên tục trong thời gian hơn 2 giờ. Phần Raspberry Pi Zero, giúp tiết kiệm năng lượng thân robot được chế tạo bằng nhựa như hình khi hoạt động. Robot có khả năng giao tiếp 4(c). Phần mặt robot được gắn thêm một màn với người thông qua giọng nói và trả lời một hình cho phép hiển thị một số thông tin, hình số câu hỏi liên quan đến môn học Ngôn ngữ ảnh trong quá trình giao tiếp. lập trình. Thời gian hoạt động liên tục của 3. KẾT QUẢ VÀ THẢO LUẬN Robot khoảng 2 giờ vì hệ thống nhúng Sau khi hoàn thiện, Robot được vận Raspberry Pi Zero tiêu tốn ít năng lượng. hành và kiểm tra khả năng nhận dạng câu hỏi Thời gian đáp ứng của Robot được đo và khả năng trả lời. Qua thực nghiệm cho trong quá trình kiểm thử 100 câu hỏi và câu thấy, Robot trả lời các câu hỏi sai khi nhận trả lời. Các câu hỏi và câu trả lời có độ dài từ dạng sai. Trong trường hợp nhận dạng giọng 3 đến 15 từ. Trung bình thời gian cho quá nói đúng, Robot trả lời đúng với kịch bản trình chuyển đổi từ giọng nói sang văn bản là trong tập huấn luyện. Tác giả tiến hành thực 2.7s. Thời gian trung bình cho quá trình trả lời nghiệm bằng cách giao tiếp với robot qua từ mạng LSTM là 1.2s. Như vậy, tổng thời 100 câu hỏi trong điều kiện phòng thí gian cho quá trình trả lời câu hỏi là 3.9s. Thời nghiệm, không có tiếng ồn từ môi trường. Để gian đáp ứng của hệ thống đã được tối ưu nhờ đánh giá hiệu quả của khối hiệu chỉnh được tắt các dịch vụ không cần thiết của hệ điều đề xuất, tác giả đo độ chính xác trong trường hành cho hệ thống nhúng Raspberry Pi Zero. hợp có khối hiệu chỉnh và không có khối 4. KẾT LUẬN hiệu chỉnh. Khoảng cách từ người nói đến vị trí robot là 1m. Kết quả được thể hiện trong Robot trợ lý giảng dạy được thiết kế có bảng 2. khả năng giao tiếp với con người bằng giọng nói và có thể trả lời các câu hỏi liên quan đến Bảng 2. Kiểm tra độ chính xác hoạt động các nội dung của môn học được cài đặt trước. của Robot. Robot đã được thiết kế hoàn thiện về phần Mô hình Độ chính xác cứng và phần mềm. Trong đó, bộ điều khiển (%) robot sử dụng hệ thống nhúng Raspbery Pi Zero thực thi 3 khối chức năng chính bao Không sử dụng khối hiệu 62.5 gồm khối nhận dạng giọng nói, khối xử lý chỉnh ngôn ngữ tự nhiên và khối chuyển đổi từ văn Sử dụng khối hiệu chỉnh 87.2 bản sang giọng nói. Kết quả thực nghiệm, robot có khả năng nhận dạng giọng nói và trả Kết quả thực nghiệm được đo trong điều lời các câu hỏi liên quan đến nội dung môn kiện phòng, không có tiếng ồn. Kết quả được học Ngôn ngữ lập trình C. Hơn nữa, việc sử thực nghiệm 5 lần và lấy giá trị trung bình. dụng khối hiệu chỉnh đặt sau khối Trong mỗi lần thực nghiệm sử dụng một Pocketsphinx đã cải thiện tỷ lệ nhận dạng và giọng nói khác nhau và giao tiếp với Robot trả lời chính xác câu hỏi từ 62.5% lên 87.2%. qua 100 câu hỏi liên quan đến môn học Ngôn ngữ lập trình. Bảng 2 liệt kê kết quả trung LỜI CẢM ƠN Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 61 (12/2020) Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 53 Kết quả nghiên cứu và ứng dụng là sản Bộ Giáo dục và Đào tạo và chủ trì bởi phẩm của Đề tài Nghiên cứu Khoa học Cấp Trường Đại học Sư phạm Kỹ thuật TP.HCM. Bộ, mã số B2019-SPK-05, được hỗ trợ bởi TÀI LIỆU THAM KHẢO [1] B. Setiaji and F. W. Wibowo, “Chatbot Using a Knowledge in Database: Human-to- Machine Conversation Modeling,” 2016 7th International Conference on Intelligent Systems, Modelling and Simulation (ISMS), Bangkok, 2016, pp. 72-77. [2] G. M. D'silva, S. Thakare, S. More and J. Kuriakose, “Real world smart chatbot for customer care using a software as a service (SaaS) architecture,” 2017 International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC), Palladam, 2017, pp. 658-664. [3] M. Bates, “Health Care Chatbots Are Here to Help”, IEEE Pulse, vol. 10, no. 3, pp. 12– 14, May 2019. [4] D. Madhu, C. J. N. Jain, E. Sebastain, S. Shaji and A. Ajayakumar, “A novel approach for medical assistance using trained chatbot,” 2017 International Conference on Inventive Communication and Computational Technologies (ICICCT), Coimbatore, 2017, pp. 243-246. [5] A. Mondal, M. Dey, D. Das, S. Nagpal and K. Garda, “Chatbot: An automated conversation system for the educational domain,” 2018 International Joint Symposium on Artificial Intelligence and Natural Language Processing (iSAI-NLP), Pattaya, Thailand, 2018, pp. 1-5 [6] B. R. Ranoliya, N. Raghuwanshi and S. Singh, “Chatbot for university related FAQs,” 2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI), Udupi, 2017, pp. 1525-1530 [7] S. J. du Preez, M. Lall and S. Sinha, “An intelligent web-based voice chat bot,” IEEE EUROCON 2009, St.-Petersburg, 2009, pp. 386-391. [8] J. Liu and B. Zhu, “An intelligent personal assistant robot: BoBi secretary,” 2017 2nd International Conference on Advanced Robotics and Mechatronics (ICARM), Hefei, 2017, pp. 402-407. [9] J. Han et al., “A trial English class with a teaching assistant robot in elementary school,” 2010 5th ACM/IEEE International Conference on Human-Robot Interaction (HRI), Osaka, 2010, pp. 335-335. [10] J. Han, S. Ji and S. Lee, “Development of collective assistant teaching for r-learning in a kindergarten”, 9th International Conference on Ubiquitous Robots and Ambient Intelligence (URAI), Daejeon, 2012, pp. 136-139. [11] G. Boza-Quispe, J. Montalvan-Figueroa, J. Rosales-Huamaní and F. Puente-Mansilla, “A friendly speech user interface based on Google cloud platform to access a tourism semantic website”, 2017 CHILEAN Conference on Electrical, Electronics Engineering, Information and Communication Technologies (CHILECON), Pucon, 2017, pp. 1-4. [12] D. Huggins-Daines, M. Kumar, A. Chan, A. W. Black, M. Ravishankar and A. I. Rudnicky, “Pocketsphinx: A Free, Real-Time Continuous Speech Recognition System for Hand-Held Devices”, 2006 IEEE International Conference on Acoustics Speech and Signal Processing Proceedings, Toulouse, 2006, pp. I-I. [13] C. Patel and S. Kopparapu, “Reusing automatic speech recognition platform for resource deficient languages,” 2014 8th International Conference on Signal Processing and Communication Systems (ICSPCS), Gold Coast, QLD, 2014, pp. 1-5. Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 61 (12/2020) 54 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh [14] A. Ene and A. Ene, “An application of Levenshtein algorithm in vocabulary learning”, 2017 9th International Conference on Electronics, Computers and Artificial Intelligence (ECAI), Targoviste, 2017, pp. 1-4. [15] S. Zhang, S. Liu and M. Liu, “Natural language inference using LSTM model with sentence fusion”, 2017 36th Chinese Control Conference (CCC), Dalian, 2017, pp. 11081-11085. [16] Q. Zhan, L. Zhang, H. Deng and X. Xie, “An Improved LSTM For Language Identification”, 2018 14th IEEE International Conference on Signal Processing (ICSP), Beijing, China, 2018, pp. 609-612. Tác giả chịu trách nhiệm bài viết: TS. Trương Ngọc Sơn Trường Đại học Sư phạm Kỹ thuật TP.HCM Email: sontn@hcmute.edu.vn
File đính kèm:
- thiet_ke_robot_tro_ly_giang_day_giao_tiep_bang_giong_noi.pdf