Phương pháp giải quyết bao gồmviệc sử dụng công nghệ xử lý ngôn ngữ tự nhiên NLP và nhận diện giọng nói tựđộngASR nhằm giúp cho trợ lý ảo có thể hiểu và thực hiện các lệnh từ người dùng.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
PBL5 – DỰ ÁN KỸ THUẬT MÁY TÍNH
TÊN ĐỀ TÀI: Trợ lý ảo thông minh
Giảng viên hướng dẫn: TS Huỳnh Hữu Hưng
NHÓM SINH VIÊN THỰC HIỆN LỚP HỌC PHẦNDương Bích Hòa An - 102210144 21Nh14
Phạm Minh Quân - 102210074 21Nh14
ĐÀ NẴNG, 06/2024
Trang 2TÓM TẮT ĐỒ ÁN
Các trợ lý ảo như Siri của Apple, Google Assistant của Google, Alexa của Amazon vàCortana của Microsoft đã tích hợp sâu vào đời sống hàng ngày, hỗ trợ người dùngthực hiện các tác vụ từ tìm kiếm thông tin, quản lý lịch trình, đến điều khiển các thiết
bị nhà thông minh Do đó nhóm muốn thử sức với việc tạo ra 1 trợ lý ảo có thể hệthống có khả năng hiểu và phản hồi tự nhiên các yêu cầu của người dùng, giúp cảithiện hiệu quả làm việc và trải nghiệm người dùng Phương pháp giải quyết bao gồmviệc sử dụng công nghệ xử lý ngôn ngữ tự nhiên (NLP) và nhận diện giọng nói tựđộng(ASR) nhằm giúp cho trợ lý ảo có thể hiểu và thực hiện các lệnh từ người dùng.Kết quả đạt được là một hệ thống trợ lý ảo thông minh có khả năng thực hiện cácchức năng cơ bản như điều khiển các thiết bị IoT, bật tắt ứng dụng và trả lời câu hỏi.Tuy nhiên, hệ thống vẫn còn nhiều thiếu sót và sẽ cần phải khắc phục thêm
2
Trang 3BẢNG PHÂN CÔNG NHIỆM VỤ
Dương Bích Hòa An Thu thập dữ liệu về nhận
biết câu lệnh và giọng nói Đã hoàn thànhHuấn luyện mô hình nhận
diện giọng nói tự động Đã hoàn thànhHuấn luyện mô hình nhận
biết ý định trên câu lệnh
Đã hoàn thành
Thiết kế hệ thống và lậptrình ứng dụng phía máytính
Đã hoàn thành
Thiết kế và triển khai phần
Lập trình các thiết bị trên viđiều khiển ESP8266
Đã hoàn thànhViết báo cáo Đã hoàn thànhPhạm Minh Quân Thu thập dữ liệu về giọng
Đã hoàn thành
Lập trình các thiết bị trên viđiều khiển ESP8266 Đã hoàn thànhViết báo cáo Đã hoàn thành
Trang 4MỤC LỤC
TÓM TẮT ĐỒ ÁN 2
BẢNG PHÂN CÔNG NHIỆM VỤ 3
MỤC LỤC 4
DANH SÁCH HÌNH ẢNH 5
1 GIỚI THIỆU 6
2 GIẢI PHÁP 12
2.1 Giải pháp phần cứng và truyền thông 12
2.1.1 Giải pháp phần cứng 12
2.1.2 Giải pháp truyền thông(HTTP) 14
2.2 Giải pháp Phần mềm 15
2.2.1 Ứng dụng trợ lý ảo trên máy tính 15
2.2.2 Chương trình trên module IoT 19
2.3 Giải pháp AI 20
2.3.1 Mô hình nhận diện giọng nói tự động(ASR) 20
2.3.2 Nhận diện ý định người dùng bằng cách Fine Tuning mô hình BERT để đánh nhãn ý định cho từng từ trong câu 29
3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 36
3.1 Kết quả mô hình 36
3.1.1 Mô hình nhận diện giọng nói tự động(ASR) 36
3.1.2 Mô hình nhận diện ý định người dùng 36
3.2 Triển khai phần cứng 37
3.3 Ứng dụng trợ lý ảo 38
4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38
4.1 Kết luận đạt được 38
4.2 Kiến nghị và hướng phát triển 39
5 TÀI LIỆU THAM KHẢO 40
DANH SÁCH HÌNH ẢNH
Hình 1 Phân tích quy trình hoạt động của hệ thống 13
Hình 5 Cửa sổ quản lý thiết bị IoT Và ứng dụng 18
4
Trang 5Hình 7 Sử dụng trợ lý ảo để trả lời câu hỏi 19
Hình 9 Sử dụng trợ lý ảo để điều khiển các module IoT 20Hình 10 Sử dụng trợ lý ảo để mở các trang web mạng xã hội 20
Hình 16 Các từ có tần số xuất hiện nhiều nhất 28
Hình 23 Fine Tuning mô hình BERT để nhận diện hành động và ý định trên từng
Hình 24 Phân bố dữ liệu theo loại đối tượng 34
Trang 6thống điều khiển bằng giọng nói không chỉ giới hạn trong các thiết bị thông minhgia đình như loa thông minh, đèn, và điều hòa không khí, mà còn mở rộng đến cáclĩnh vực khác như ô tô tự lái, chăm sóc sức khỏe và giáo dục Điều này không chỉgiúp giảm bớt công việc tay chân cho người dùng mà còn tăng cường khả năngtương tác và tự động hóa trong nhiều hoạt động hàng ngày.
Phạm vi đề tài của nhóm tập trung vào việc điều khiển các thiết bị Internet ofThings (IoT) cũng như các ứng dụng trên máy tính hay trả lời câu hỏi thông quacác hệ thống điều khiển bằng giọng nói và văn bản Trong bối cảnh công nghệ IoTngày càng phổ biến, việc tích hợp các thiết bị này với các hệ thống điều khiểnbằng giọng nói mang lại sự tiện lợi vượt trội, cho phép người dùng quản lý cácthiết bị gia đình thông minh như đèn chiếu sáng, quạt, loa, cảm biến và cửa từ xamột cách dễ dàng và hiệu quả Bên cạnh đó, hệ thống cũng giúp người dùng thựchiện các tác vụ hàng ngày như khởi động phần mềm, mở các ứng dụng và tìmkiếm thông tin thông qua các câu lệnh Mục tiêu của đề tài là nghiên cứu và pháttriển các giải pháp tích hợp, tối ưu hóa trải nghiệm người dùng, và nâng cao mức
độ tự động hóa trong cuộc sống hiện đại
1.2 Hiện trạng và vấn đề cần giải quyết
1.2.1 Hiện trạng
Hiện nay, Trợ lý ảo đang dần phổ biến và có đa dạng ứng dụng trong thực tế:
● Trợ lý ảo đã trở nên phổ biến với nhiều ứng dụng trong các lĩnh vực như chămsóc khách hàng, hỗ trợ kỹ thuật, quản lý công việc cá nhân, và tương tác xãhội
● Các trợ lý ảo nổi tiếng hiện nay bao gồm Siri của Apple, Alexa của Amazon,Google Assistant, và Cortana của Microsoft
Các công nghệ và kỹ thuật hiện nay đã có thể đáp ứng cho việc xây dựng 1 trợ lýảo:
● Sử dụng các kỹ thuật học máy (machine learning) và xử lý ngôn ngữ tự nhiên(NLP) để hiểu và phản hồi người dùng
● Kết hợp các công nghệ khác như nhận diện giọng nói, nhận diện khuôn mặt, vàhọc sâu (deep learning)
Tính năng và dịch vụ:
6
Trang 7● Trợ lý ảo có thể thực hiện nhiều nhiệm vụ khác nhau như lên lịch hẹn, gửi tinnhắn, tìm kiếm thông tin trên internet, điều khiển các thiết bị thông minh trongnhà, và thậm chí tham gia vào các cuộc trò chuyện phức tạp,
1.2.2 Các vấn đề cần giải quyết
1 Nhận biết ý định của người dùng thông qua câu lệnh
Bài toán nhận biết ý định của người dùng thông qua câu lệnh (IntentRecognition) là một bài toán quan trọng trong lĩnh vực xử lý ngôn ngữ tựnhiên (Natural Language Processing - NLP) và trí tuệ nhân tạo (ArtificialIntelligence - AI) Mục tiêu của bài toán này là xác định mục đích hoặc yêucầu của người dùng từ câu lệnh họ nhập vào, nhằm thực hiện các hành độngphù hợp trong các ứng dụng như trợ lý ảo, chatbot, hệ thống hỏi đáp, và nhiềuứng dụng khác
Mô tả bài toán
● Đầu vào: Một câu lệnh hoặc câu hỏi từ người dùng, dưới dạng văn bản
● Đầu ra: Ý định của người dùng (Intent), thường được biểu diễn dướidạng một nhãn (label) hoặc danh mục (category) Ví dụ, trong một hệ thốngtrợ lý ảo, các ý định có thể bao gồm: hỏi thời tiết, tìm kiếm thông tin, v.v
Yêu cầu:
● Hệ thống cần đạt độ chính xác cao trong việc phân loại các ý định củangười dùng Việc đo độ chính xác của mô hình sẽ được thực hiện trên các tiêuchí như độ chính xác(accuracy), độ nhạy(recall), độ đặc hiệu(precision),
● Hệ thống cần phản hồi nhanh chóng, đặc biệt là trong các ứng dụngthời gian thực như trợ lý ảo hay chatbot Hệ thống cũng cần dễ dàng mở rộng
để thêm vào các ý định mới khi yêu cầu ứng dụng thay đổi hoặc mở rộng
2 Nhận diện giọng nói tự động
Bài toán nhận diện giọng nói tự động (Automatic Speech Recognition ASR) là một bài toán thuộc lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và trí tuệnhân tạo (AI) Mục tiêu của bài toán này là chuyển đổi ngôn ngữ nói của conngười thành văn bản, để từ đó có thể xử lý và hiểu được các yêu cầu hoặcmệnh lệnh của người dùng
-Mô tả bài toán
● Đầu vào: Một đoạn âm thanh chứa giọng nói của người dùng
● Đầu ra: Văn bản chuyển đổi từ đoạn âm thanh đầu vào
Trang 8● Xử lý nhiễu và tiếng ồn: Hệ thống cần hoạt động tốt trong cácmôi trường có tiếng ồn và nhiễu âm thanh.
1.3 Đề xuất giải pháp tổng quan
Việc phát triển một hệ thống trợ lý ảo điều khiển các thiết bị IoT (Internet of Things)đòi hỏi sự kết hợp giữa nhiều công nghệ tiên tiến và một kiến trúc hệ thốnglinh hoạt Dưới đây là giải pháp tổng quan cho hệ thống trợ lý ảo của nhóm:
Kiến trúc tổng quan của hệ thống
Hệ thống trợ lý ảo điều khiển các thiết bị IoT có thể được chia thành các thànhphần chính sau:
1 Ứng dụng người dùng
Chương trình trên máy tính: Cung cấp giao diện để người dùng tương tác
với trợ lý ảo thông qua ứng dụng máy tính, bao gồm điều khiển và giám sátcác thiết bị IoT cũng như thực hiện hiện các hành động khác trên máy tínhnhư bật tắt các ứng dụng, tăng giảm âm lượng
Giao diện giọng nói và văn bản: Cho phép người dùng điều khiển thiết bị
bằng giọng nói thông qua các thiết bị thu âm hay nhập từ bàn phím
Lưu trữ và xử lý dữ liệu: Lưu trữ các thông tin cần thiết như thông tin các
loại thiết bị IoT và các ứng dụng trong máy tính
2 Các Mô hình Trí tuệ nhân tạo:
Hệ thống sử dụng các mô hình có kích thước vừa phải, có khả năng hoạt độngngay trên máy tính của người dùng phục vụ cho các hoạt động của trợ lý ảo
Xử lý ngôn ngữ tự nhiên: Sử dụng mô hình BERT để nhận biết yêu cầu của
người dùng
8
Trang 9Nhận diện giọng nói tự động: Sử dụng một mô hình nhận diện giọng nói tự
động có kích thước nhỏ để chuyển đổi giọng nói thành văn bản
3 Nền tảng IoT (IoT Platform)
Sử dụng các module IoT và các thiết bị giá rẻ để mô phỏng lại các thiết bị IoT: Để xây dựng hệ thống với chi phí rẻ nhất, nhóm sử dụng và các module
IoT giá rẻ như ESP8266, để điều khiển các thiết bị giá rẻ như đèn led RGB,động cơ DC, động cơ servo,v.v Ưu điểm của việc sử dụng các thiết bị này làchi phí bỏ ra ít và dễ dàng trong việc lập trình cũng như triển khai Tuy nhiêncác thiết bị này chỉ mang tính chất mô phỏng các thiết bị IoT thực tế
Giao thức giao tiếp (Communication Protocols): Các module IoT giá rẻ như
ESP8266 có khả năng kết nối tới Wifi và sử dụng giao thức HTTP để nhậnlệnh điều khiển Ngoài ra, ESP8266 có thể điều khiển các thiết bị khác thôngqua các chân GPIO
4 Các chức năng
Hệ thống trợ lý ảo sẽ phục vụ các chức năng sau:
Điều khiển các thiết bị IoT đơn giản: Hệ thống sẽ điều khiển các thiết bị IoT
đơn giản thông qua giao thức HTTP như đèn, quạt, cửa, cảm biến,
Thực hiện các hành động trên máy tính: Hệ thống cũng sẽ thực hiện một số
chức năng trên máy tính như bật tắt các trang web hay ứng dụng
Trả lời câu hỏi: Hệ thống sử dụng dịch vụ Chat GPT cũng như dữ liệu thu
thập được trên internet để trả lời 1 số câu hỏi cơ bản
5 Các thư viện và công nghệ được sử dụng
Trang 10Mô hình Trí tuệ nhân tạo: Các mô hình Trí tuệ nhân tạo kể trên được phát trên framework PyTorch, một thư viện mã nguồn mở dành cho việc học sâu
nổi bật với khả năng cung cấp một giao diện dễ sử dụng, linh hoạt và hiệuquả cho việc xây dựng và huấn luyện các mô hình học sâu Bên cạnh đónhóm còn sử dụng nền tảng Hugging Face để lưu trữ và tham khảo các môhình
Nền tảng IoT: Các module IoT được phát triển trên Arduino IDE, 1 một môi
trường phát triển tích hợp mã nguồn mở, được thiết kế để giúp lập trình, nạp
mã và thử nghiệm các chương trình trên các dòng vi điều khiển một cách dễdàng Như đã đề cập ở trên, các module IoT như ESP8266 có thể được điềukhiển thông qua giao thức HTTP và sử dụng các chân GPIO để điều khiểncác thiết bị phái sinh
10
Trang 11Quy trình hoạt động của hệ thống:
1 Nhận lệnh từ người dùng: Người dùng tương tác với trợ lý ảo thông qua
giọng nói hoặc văn bản
5 Phản hồi cho người dùng: Trợ lý ảo cung cấp phản hồi cho người dùng về
trạng thái của thiết bị hoặc xác nhận rằng lệnh đã được thực hiện
Hình 1 Phân tích quy trình hoạt động của hệ thống
Trang 12Micro cho máy
tính Thu âm giọng nói Sử dụng micro cánhân Đã muaESP8266 Đóng vai trò như 1
module IoT, nhậnyêu cầu từ máytính và trả phản
12
Trang 13hồi về máy tínhĐèn LED RGB Đóng vai trò như 1
Adapter 9V Cấp điện cho động
Dưới đây là danh sách các chân mà module IoT ESP8266 sử dụng:
● Vin: Cấp nguồn 5V cho module
● GND: Chân đất của module
● D0: Chân điều khiển động cơ Servo
● D1: Điều khiển chân in1 của mạch cầu L298N
● D2: Điều khiển chân in2 của mạch cầu L298N
● D3: Điều khiển chân enA của mạch cầu L298N
● D4: Điều khiển chân R(Red) của LED RGB
● D5: Điều khiển chân G(Green) của LED RGB
● D6: Điều khiển chân B(Blue) của LED RGB
● D7: Đọc giá trị cảm biến nhiệt độ ẩm
Trang 14Hình 3 Sơ đồ lắp mạch ESP8266
2.1.2 Giải pháp truyền thông(HTTP)
Giao thức HTTP được sử dụng để trợ lý ảo gửi lệnh điều khiển tới ESP8266.Giao thức HTTP có ưu điểm là hoạt động theo mô hình client server cũng chiacác request gửi đi theo các URI và có thể kèm theo tham số
HTTP và RESTful API
● Định nghĩa: HTTP (Hypertext Transfer Protocol) là giao thức nền tảng của
web, được sử dụng để truyền dữ liệu giữa máy khách (client) và máy chủ(server) RESTful API (Representational State Transfer) là một phong cáchkiến trúc sử dụng HTTP để tạo, đọc, cập nhật và xóa tài nguyên
● Phương thức HTTP: Các phương thức chính của HTTP như GET, POST,
PUT, DELETE được sử dụng để thực hiện các hành động khác nhau trên tàinguyên
b Cấu trúc URI
● Endpoint: URI (Uniform Resource Identifier) xác định các endpoint mà trợ lý
ảo có thể truy cập để thực hiện các hành động cụ thể
14
Trang 15● Tham số và Headers: Sử dụng tham số URL và headers để truyền dữ liệu và
thông tin cấu hình giữa client và server
2.2 Giải pháp Phần mềm
2.2.1 Ứng dụng trợ lý ảo trên máy tính
Trợ lý ảo là một phần mềm hoặc ứng dụng có khả năng hiểu và phản hồi các lệnhcủa người dùng bằng ngôn ngữ tự nhiên, thông qua giọng nói hoặc văn bản, cũngnhư phải thực hiện hiện các công việc do người dùng đưa ra
Việc xây dựng ứng dụng trợ lý ảo là một quá trình quá trình quan trọng, đòi hỏi sựkết hợp giữa công nghệ và thiết kế tập trung vào người dùng Dưới đây là các khíacạnh được xem xét trong ứng dụng trợ lý ảo thông minh:
1 Giao diện người dùng
Giao diện người dùng là nơi mà người dùng thực hiện tương tác lên trợ lý ảo.Giao diện người dùng phải đảm bảo các yếu tố sau:
● Thiết kế trực quan và thân thiện:Giao diện cần phải đơn giản, không
quá phức tạp hoặc rối rắm, giúp người dùng dễ dàng tương tác màkhông cảm thấy quá tải
● Đáp ứng nhanh chóng: Ứng dụng cần phản hồi ngay lập tức các thao
tác của người dùng để tạo cảm giác mượt mà Đảm bảo rằng giao diệnhoạt động mượt mà ngay cả khi xử lý các tác vụ phức tạp
● Hỗ trợ đa ngôn ngữ : Hệ thống nên có khả năng hoạt động trên các
ngôn ngữ khác nhau Trong đồ án lần này, nhóm quyết định huấn luyện
mô hình để trợ lý ảo có thể hoạt động trên tiếng Anh và tiếng Việt
● Tương tác giọng nói: Cần có các nút hoặc biểu tượng để người dùng
kích hoạt và tắt micrô dễ dàng Chỉ báo rõ ràng khi ứng dụng đang lắngnghe hoặc xử lý giọng nói
Dưới đây là các giao diện của hệ thống:
Trang 16Hình 4 Cửa sổ giao tiếp với trợ lý ảo
Hình 5 Cửa sổ quản lý thiết bị IoT Và ứng dụng
Hình 6 Cửa sổ theo dõi thiết bị IoT
2 Các Mô hình Trí tuệ nhân tạo được sử dụng:
Trong các hệ thống trợ lý ảo, việc sử dụng các mô hình trí tuệ nhân tạo (AI) làcốt lõi để xử lý ngôn ngữ tự nhiên, hiểu ngữ cảnh và đưa ra hành động phù hợp
16
Trang 17● Nhận diện ý định người dùng: Mô hình BERT để đánh nhãn hành
động và thực thể cho từng từ trong câu
● Chuyển đổi giọng nói thành văn bản: Mô hình nhận diện giọng nói tự
động
● Ngoài ra, trợ lý ảo còn sử dụng dịch vụ của ChatGPT để trả lời câu hỏi
3 Các chức năng chính
Trợ lý ảo có thể thực hiện các chức năng sau đây:
● Điều khiển các thiết bị IoT
○ Đèn RGB(light): bật/tắt đèn, điều chỉnh độ sáng và màu sắc
○ Quạt(fan): bật tắt quạt và điều chỉnh tốc độ
○ Loa: kết nối tới loa và thay đổi âm lượng
○ Cửa: kiểm tra tình trạng cửa, đóng mở cửa
○ Cảm biến: Kiểm tra cảm biến
● Mở các ứng dụng, trang web
● Điều chỉnh độ sáng và âm lượng máy tính
● Trả lời câu hỏi bằng ChatGPT
Hình 7 Sử dụng trợ lý ảo để trả lời câu hỏi
Trang 18Hình 8 Sử dụng trợ lý ảo để mở ứng dụng
Hình 9 Sử dụng trợ lý ảo để điều khiển các module IoT
Hình 10 Sử dụng trợ lý ảo để mở các trang web mạng xã hội
18
Trang 192.2.2 Chương trình trên module IoT
Chương trình được nạp module IoT cho phép module có thể điều khiển cácthiết đã được kết nối với module IoT cũng như nhận các request từ trợ lý ảothông qua việc vận hành 1 Web server
1 Danh sách API
‘/light’:
● Method: GET
● Parameter: r, g, b, brightness
● Response: Thông tin về r, g, b và độ sáng của đèn
● Mục đích: Chỉnh màu và độ sáng cho đèn, cũng như cho biếtthông tin của đèn
‘/fan’:
● Method: GET
● Parameter: speed
● Response: Thông tin về tốc độ quạt
● Mục đích: Chỉnh tốc độ quạt, cũng như thông tin của quạt
● Response: Thông tin về nhiệt độ độ ẩm đo được từ cảm biến
● Mục đích: Cho biết các chỉ số đo đạt được từ cảm biến
2 Giao diện Web
Giao diện Web cho phép điều khiển module IoT trong trường hợp trợ lý
ảo không hoạt động Giao diện này sẽ nằm ở trang chủ trang web
Trang 20Hình 11 Giao diện Web của module IoT
Để xây dựng Mô hình nhận diện giọng nói tự động cho trợ lý ảo, nhóm quyết
LearnedVector/A-Hackers-AI-Voice-Assistant[1]tuy nhiên nhóm tiến hành mởrộng bộ kí tự và huấn luyện mô hình trên tập dữ liệu tiếng Việt để mô hìnhhoạt động trên tiếng Việt
Mô hình Nhận diện giọng nói tự động nhóm sử dụng có cấu trúc như sau:
20