Bối cảnh và vấn đề nghiên cứu
1. Lý do chọn đề tài và bối cảnh thực tiễn
Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, các ứng dụng thông minh dựa trên Trí tuệ nhân tạo (AI) và Vạn vật kết nối (IoT) ngày càng được triển khai rộng rãi từ quy mô công nghiệp đến các hộ gia đình. Hệ thống nhà thông minh (Smarthome) giúp tự động hóa hoạt động của các thiết bị điện và nâng cao chất lượng cuộc sống.
Tuy nhiên, qua khảo sát thực tế, các giải pháp nhà thông minh hiện nay bộc lộ một số rào cản:
- Các hệ thống ngoại nhập (tiêu biểu như Smarthome.com) có chi phí thiết bị và dịch vụ cao (khởi điểm từ 49,99 USD/thiết bị), quy trình bảo hành và thay thế phức tạp đối với người dùng trong nước.
- Các giải pháp nội địa lớn (như Bkav SmartHome) chủ yếu cung cấp theo các gói dịch vụ hoàn chỉnh (gói SX, MX, LX, GX) với chi phí trọn gói cao, chưa tối ưu cho phân khúc khách hàng có nhu cầu sử dụng thiết bị đơn lẻ. Các giải pháp như Gen SmartHome cung cấp thiết bị đóng ngắt rời nhưng đòi hỏi người dùng phải tự cấu hình và tích hợp phức tạp.
- Hầu hết các ứng dụng điều khiển trên thị trường hiện nay chỉ dừng lại ở thao tác thủ công trên giao diện phần mềm hoặc phụ thuộc vào việc tích hợp API trợ lý ảo ngoại ngữ như Google Home, thiếu vắng cơ chế nhận dạng trực tiếp khẩu lệnh bằng tiếng Việt độc lập.
Xuất phát từ thực trạng trên, nhóm tác giả đã thực hiện đề tài nhằm xây dựng một hệ thống hoàn chỉnh kết hợp giữa phần cứng IoT, ứng dụng điều khiển đa nền tảng và mô hình nhận dạng lệnh thoại tiếng Việt phục vụ điều khiển thiết bị gia dụng.
2. Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu tổng quát của đề tài là xây dựng hệ thống nhận dạng lệnh bằng giọng nói tiếng Việt để điều khiển thiết bị nhà thông minh trên nền tảng ứng dụng đa nền tảng kết hợp phần cứng IoT tự phát triển.
Nhiệm vụ nghiên cứu cụ thể được phân định theo 6 nội dung:
- Tìm hiểu và xây dựng hệ thống nhận dạng giọng nói tiếng Việt.
- Tìm hiểu nguyên lý hoạt động của hệ thống IoT.
- Thiết kế cấu trúc dữ liệu và luồng xử lý dữ liệu hệ thống.
- Thiết kế ứng dụng điều khiển và quản lý đa nền tảng (Web và Mobile).
- Phát triển mạch thiết bị phần cứng IoT và mô hình nhà thông minh vật lý.
- Kiểm thử và triển khai (deploy) toàn bộ hệ thống.
Sản phẩm bàn giao dự kiến bao gồm:
- Hệ thống nhận dạng giọng nói tiếng Việt.
- Ứng dụng điều khiển trên nền tảng Web và Mobile (iOS và Android).
- Mô hình nhà thông minh tích hợp thiết bị IoT.
- Báo cáo đồ án tốt nghiệp.
3. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Cơ chế xử lý tín hiệu âm thanh và mô hình học sâu nhận dạng lệnh thoại tiếng Việt; kiến trúc mạng truyền thông hai chiều giữa máy chủ, thiết bị di động, ứng dụng web và vi điều khiển IoT; mô hình quản trị dữ liệu NoSQL.
- Phạm vi không gian và công nghệ: Nghiên cứu và triển khai mô hình thử nghiệm tại Khoa Công nghệ Thông tin và Khoa Đào tạo Chất lượng cao – Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh; tập trung vào tập lệnh điều khiển cơ bản cho các thiết bị gia dụng (đèn chiếu sáng, quạt điện, phân khu phòng) trên nguồn điện dân dụng 220V.
- Phạm vi thời gian: Đề tài được giao ngày 27/02/2020, nộp ngày 20/06/2020 và hoàn thành bảo vệ vào tháng 07/2020.
Cơ sở lý thuyết và phương pháp nghiên cứu
1. Cơ sở lý thuyết và công nghệ sử dụng
- Mô hình học sâu nhận dạng âm thanh: Thông thường, dữ liệu âm thanh dạng chuỗi (sequence) được xử lý bằng Mạng nơ-ron hồi quy (RNN) như Long Short-Term Memory (LSTM). Tuy nhiên, đề tài chuyển đổi bài toán nhận dạng âm thanh sang bài toán nhận dạng hình ảnh bằng cách biến đổi tín hiệu file âm thanh (
.wav) thành ảnh quang phổ (spectrogram dạng .png), sau đó áp dụng Mạng nơ-ron tích chập (CNN - Convolutional Neural Network) 2 chiều với kiến trúc tuần tự:
$$\text{INPUT} \rightarrow [[\text{CONV} \rightarrow \text{RELU}]^{*N} \rightarrow \text{POOL?}]^{*M} \rightarrow [\text{FC} \rightarrow \text{RELU}]^{*K} \rightarrow \text{FC}$$
- Kiến trúc dịch vụ truyền thông:
- Giao thức RESTful API trên nền tảng HTTP/HTTPS với 4 phương thức cơ bản (GET, POST, PUT, DELETE) phục vụ các nghiệp vụ tương tác dữ liệu, bảo mật bằng chuẩn JSON Web Token (JWT) thông qua thuật toán mã hóa RSA (cặp Public/Private Key) hoặc HMAC SHA256.
- Giao tiếp thời gian thực qua Socket.io hoạt động tại tầng giao vận (Transport Layer) trên giao thức TCP/UDP. Socket duy trì cơ chế Keep-alive với các tham số: thời gian không tín hiệu (
tcp_keepalive_time = 7200s), thời gian chờ phản hồi (tcp_keepalive_intvl = 75s) và số lần thử lại tối đa khi xảy ra lỗi (tcp_keepalive_probes = 9).
- Hệ thống phần mềm và cơ sở dữ liệu:
- Máy chủ ứng dụng: Node.js xây dựng trên V8 JavaScript Engine với kiến trúc hướng sự kiện (Event-Driven) và cơ chế xử lý I/O không chặn (Non-blocking I/O) thông qua Event Loop và hàng đợi thông điệp (Queue).
- Máy chủ nhận dạng giọng nói: Viết bằng ngôn ngữ Python để thực thi mô hình CNN.
- Giao diện người dùng: ReactJS cho nền tảng Web và React Native cho ứng dụng di động đa nền tảng (iOS và Android).
- Hệ quản trị cơ sở dữ liệu: MongoDB (NoSQL) lưu trữ dữ liệu dạng Document JSON/BSON, hỗ trợ mở rộng theo chiều ngang (Horizontal Scalability) dạng Cluster. Cơ chế đệm ghi của MongoDB thực hiện ghi dữ liệu thay đổi từ RAM xuống ổ đĩa định kỳ mỗi 60 giây.
- Phần cứng IoT: Vi điều khiển tích hợp chip WiFi ESP8266 v12 (bộ nhớ Flash 8MB), kết nối với mạch điều khiển relay đóng ngắt nguồn điện 220V với cấu hình từ 1 đến 5 đầu ra thiết bị.
2. Phương pháp nghiên cứu và thu thập dữ liệu
- Phương pháp điều tra, khảo sát hiện trạng: Thu thập, phân tích thông tin về các hệ thống Smarthome trên thị trường (Smarthome.com, Bkav SmartHome, Gen SmartHome) nhằm xác định các khoảng trống tính năng và bài toán chi phí.
- Phương pháp chuyên gia: Tham khảo ý kiến định hướng từ giảng viên hướng dẫn (TS. Huỳnh Xuân Phụng), các giảng viên chuyên môn và chuyên gia trong lĩnh vực IoT/AI để lựa chọn kiến trúc phần mềm và giải pháp chuyển đổi quang phổ.
- Phương pháp mô hình hóa và thực nghiệm: Thiết kế mô hình dữ liệu NoSQL, xây dựng sơ đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram), thiết kế mạch phần cứng và tạo lập tập dữ liệu âm thanh thực nghiệm.
3. Nguồn dữ liệu huấn luyện và kiểm thử
Nhóm tác giả tự ghi âm và xây dựng tập dữ liệu gồm 3.840 file âm thanh định dạng .wav, phân loại thành 24 nhãn (label) lệnh điều khiển. Tập dữ liệu sau đó được trích xuất thành các ảnh quang phổ spectrogram và phân chia theo cấu trúc:
| Thông số dữ liệu |
Giá trị thực tế |
| Tổng số file âm thanh thu âm |
3.840 file (.wav) |
| Số lượng nhãn lệnh (Labels) |
24 nhãn lệnh |
| Định dạng ảnh quang phổ chuyển đổi |
File hình ảnh .png (Spectrogram) |
| Số lượng mẫu tập huấn luyện (Train set) |
3.072 file |
| Số lượng mẫu tập kiểm thử (Test set) |
768 file |
Danh mục 24 nhãn lệnh bao gồm: "Bật đèn 1", "Tắt đèn 1", "Bật đèn 2", "Tắt đèn 2", "Bật đèn 3", "Tắt đèn 3", "Bật đèn 4", "Tắt đèn 4", "Bật đèn 5", "Tắt đèn 5", "Bật đèn 6", "Tắt đèn 6", "Tăng đèn 6", "Giảm đèn 6", "Bật đèn 7", "Tắt đèn 7", "Bật quạt 1", "Tắt quạt 1", "Tăng quạt 1", "Giảm quạt 1", "Tắt phòng khách", "Tắt phòng ngủ", "Tắt phòng bếp", "Tắt ban công".
Thiết kế và triển khai hệ thống
1. Kiến trúc hệ thống và luồng dữ liệu
Hệ thống được thiết kế theo kiến trúc phân tầng đa dịch vụ:
- Tầng người dùng (Client Tier): Gồm ứng dụng Mobile (React Native) và Web User/Web Admin (ReactJS). Khi người dùng ra lệnh bằng giọng nói trên ứng dụng di động, đoạn âm thanh được ghi lại và gửi qua HTTP request tới Máy chủ nhận dạng Python.
- Tầng xử lý nhận dạng (Recognition Server): Máy chủ Python chuyển file âm thanh thành ảnh quang phổ, nạp qua mô hình CNN để dự đoán nhãn lệnh. Kết quả dự đoán được gửi bằng HTTP request đến Máy chủ trung tâm Node.js.
- Tầng ứng dụng và điều phối (Application Server): Node.js Server xử lý logic nghiệp vụ, ghi nhận trạng thái vào cơ sở dữ liệu MongoDB và phát tín hiệu sự kiện thời gian thực (như
UPDATE_DEVICE, LOCK_DEVICE, UPDATE_SENSOR) qua kênh kết nối Socket.io.
- Tầng thiết bị (IoT Hardware Tier): Mạch phần cứng ESP8266 v12 duy trì kết nối Socket tới Node.js Server. Khi nhận được tín hiệu điều khiển, ESP8266 kích hoạt relay tương ứng để đóng/ngắt thiết bị điện và gửi phản hồi cập nhật trạng thái ngược lại hệ thống.
[Người dùng / Mobile App] --(Gửi file âm thanh .wav)--> [Server Python (Model CNN)]
|
(Trả nhãn lệnh dự đoán)
v
[Thiết bị IoT: ESP8266] <-- (Sự kiện qua Socket.io) --- [Server Node.js & MongoDB]
2. Thiết kế cơ sở dữ liệu MongoDB
Hệ thống triển khai 6 cấu trúc Document (Collection) chính trên MongoDB:
Bảng 1: Cấu trúc User Model
| STT |
Tên thuộc tính |
Mô tả |
Kiểu dữ liệu |
Ghi chú |
| 1 |
_id |
Khóa định danh người dùng |
ObjectId |
Khóa chính |
| 2 |
Username |
Tên đăng nhập |
String |
Not null |
| 3 |
Password |
Mật khẩu tài khoản |
String |
Not null |
| 4 |
Address |
Địa chỉ cư trú |
String |
|
| 5 |
City |
Thành phố |
String |
|
| 6 |
Email |
Địa chỉ thư điện tử |
String |
|
| 7 |
Firstname |
Họ đệm |
String |
Not null |
| 8 |
Lastnam |
Tên người dùng |
String |
Not null |
| 9 |
Phone |
Số điện thoại |
String |
|
| 10 |
State |
Trạng thái vùng/tỉnh |
String |
|
| 11 |
Token |
Chuỗi mã xác thực người dùng |
String |
|
| 12 |
CreatedTime |
Thời gian khởi tạo |
Time |
|
| 13 |
UpdatedTime |
Thời gian cập nhật |
Time |
|
| 14 |
IsVerify |
Trạng thái xác thực email |
Boolean |
|
| 15 |
Gender |
Giới tính |
String |
|
| 16 |
Role |
Quyền hạn trong hệ thống |
String |
|
| 17 |
Image |
Đường dẫn ảnh đại diện |
String |
|
| 18 |
isActive |
Trạng thái kích hoạt |
Boolean |
|
| 19 |
CreatedAt |
Ngày tạo bản ghi |
Date |
|
| 20 |
UpdatedAt |
Ngày sửa bản ghi |
Date |
|
Bảng 2: Cấu trúc Devices Model
| STT |
Tên thuộc tính |
Mô tả |
Kiểu dữ liệu |
Ghi chú |
| 1 |
_id |
Khóa định danh thiết bị |
ObjectId |
Khóa chính |
| 2 |
areaControl |
Danh sách khu vực gán thiết bị |
Array |
|
| 3 |
shareID |
Danh sách UserId được chia sẻ |
Array |
|
| 4 |
Code |
Mã thiết bị |
String |
Not null |
| 5 |
password |
Mật khẩu kết nối thiết bị |
String |
Not null |
| 6 |
Type |
Chủng loại thiết bị |
String |
|
| 7 |
Data |
Thông số kỹ thuật/dữ liệu |
Object |
Not null |
| 8 |
Connect |
Trạng thái kết nối trực tuyến |
Boolean |
Not null |
| 9 |
manaUser |
Người dùng sở hữu thiết bị |
String |
|
| 10 |
Name |
Tên hiển thị của thiết bị |
String |
Not null |
| 11 |
Token |
Mã Token thiết bị |
String |
|
| 12 |
createdUser |
Tài khoản tạo thiết bị |
String |
|
| 13 |
Status |
Trạng thái hoạt động (bật/tắt) |
Boolean |
|
Bảng 3: Cấu trúc Areas Model
| STT |
Tên thuộc tính |
Mô tả |
Kiểu dữ liệu |
Ghi chú |
| 1 |
_id |
Khóa định danh khu vực |
ObjectId |
Khóa chính |
| 2 |
AreaId |
Mã khu vực |
String |
Not null |
| 3 |
AreaName |
Tên phân khu/phòng |
String |
Not null |
| 4 |
DeviceControl |
Danh sách thiết bị thuộc khu vực |
Array |
|
| 5 |
CreatedUser |
Tài khoản chủ sở hữu |
String |
|
| 6 |
ShareUser |
Tài khoản được phân quyền |
String |
|
| 7 |
CreatedTime |
Thời gian tạo khu vực |
Time |
|
| 8 |
UpdatedTime |
Thời gian sửa đổi khu vực |
Time |
|
| 9 |
Status |
Trạng thái hoạt động của khu vực |
String |
|
Bảng 4: Cấu trúc History, Time và System Device Models
| Model |
Thuộc tính |
Kiểu dữ liệu |
Mô tả |
| History Model |
_id |
ObjectId |
Khóa chính |
|
SignalTypeId |
String |
Loại tín hiệu/thiết bị (Not null) |
|
deviceId |
String |
Mã định danh thiết bị (Not null) |
|
deviceName |
Array |
Tên thiết bị tương tác |
|
Status |
String |
Trạng thái ghi nhận |
|
Value |
String |
Giá trị tương tác |
|
StartTime |
Time |
Thời gian bắt đầu |
|
EndTime |
Time |
Thời gian kết thúc |
| Time Model |
_id |
ObjectId |
Khóa chính |
|
action |
String |
Hành động thực thi hẹn giờ (Not null) |
|
timeExpression |
String |
Biểu thức/thời gian chạy (Not null) |
|
type |
Array |
Loại thiết bị áp dụng |
|
Status |
String |
Trạng thái của lịch trình |
|
Value |
String |
Giá trị thiết lập |
| System Device Model |
_id |
ObjectId |
Khóa chính |
|
image |
String |
Hình ảnh mẫu thiết bị (Not null) |
|
key |
String |
Khóa định danh hệ thống (Not null) |
|
keyId |
Array |
Danh sách mã thiết bị |
|
type |
String |
Chủng loại thiết bị |
|
status |
String |
Trạng thái đăng ký |
|
isActive |
Boolean/String |
Tình trạng đã được kích hoạt sử dụng |
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 trình bày cơ sở lý thuyết về công nghệ nhận dạng giọng nói, công nghệ phần mềm và hệ thống IoT:
- Trình bày giải pháp chuyển đổi bài toán nhận dạng chuỗi âm thanh sang nhận dạng hình ảnh spectrogram sử dụng CNN 2D.
- Thuyết minh cấu trúc mạng CNN, quá trình trích xuất đặc trưng biên và biến thiên của ảnh quang phổ từ 3.840 file ghi âm thực tế.
- Giới thiệu cơ chế truyền nhận dữ liệu qua RESTful API, chuẩn phân quyền JSON Web Token và cơ chế kết nối thời gian thực bằng Socket.io kèm cấu hình Keep-alive.
- Phân tích nguyên lý phần cứng IoT dựa trên vi điều khiển ESP8266 v12 kết nối relay đóng ngắt nguồn điện 220V.
- Đánh giá nền tảng Node.js (Event Loop, Non-blocking I/O) và hệ cơ sở dữ liệu MongoDB (lưu trữ document JSON, ưu thế truy vấn nhanh gấp 100 lần MySQL khi lượng dữ liệu lớn, nhược điểm về thời gian ghi trễ 60 giây xuống đĩa).
Chương 2: Khảo sát và phân tích
Chương 2 tập trung khảo sát hiện trạng thị trường và phân tích yêu cầu phần mềm:
- Đánh giá ưu nhược điểm của 3 giải pháp thực tế: Smarthome.com (chi phí cao), Bkav SmartHome (chỉ cung cấp gói trọn gói, thiếu bán lẻ) và Gen SmartHome (phức tạp trong khâu tích hợp).
- Định vị hệ thống phục vụ 2 nhóm tác nhân: Nhà phát triển thiết bị (Admin) và Người dùng cuối (User).
- Xây dựng mô hình ca sử dụng (Use Case) và đặc tả chi tiết cho 5 ca sử dụng chính:
UC_1 - Control device: Điều khiển bật/tắt thiết bị.
UC_2 - Add new device: Thêm mới thiết bị vào hệ thống qua mã hoặc quét mã.
UC_3 - Add new area: Tạo lập và phân chia khu vực/phòng mới.
UC_4 - Timer device: Thiết lập lịch trình hẹn giờ tự động cho thiết bị.
UC_5 - Share device: Chia sẻ quyền kiểm soát thiết bị cho tài khoản khác.
Chương 3: Thiết kế hệ thống
Chương 3 chi tiết hóa giải pháp kỹ thuật và kiến trúc dữ liệu:
- Xây dựng sơ đồ xử lý luồng dữ liệu tổng thể và biểu đồ tuần tự (Sequence Diagram) cho tác vụ điều khiển thiết bị qua Socket.io và RESTful API.
- Thiết lập chi tiết lược đồ dữ liệu NoSQL cho 6 Collection trong MongoDB: User, Devices, Areas, History, Time, System Device.
- Thiết kế trải nghiệm và luồng giao diện người dùng (UI/UX): Phân tách rõ ràng giữa ứng dụng di động (ưu tiên thao tác điều khiển nhanh, hỗ trợ nhận diện giọng nói và quét mã QR) và ứng dụng Web (tập trung quản lý lịch sử, thiết lập tham số, phân quyền và quản trị hệ thống thiết bị cho Admin).
Chương 4: Cài đặt, thực nghiệm và tổng hợp
Chương 4 mô tả quá trình hiện thực hóa giao diện, phần cứng và kiểm thử hệ thống:
- Cài đặt ứng dụng Mobile (React Native): Hiện thực hóa các màn hình đăng nhập, dashboard điều khiển, danh sách khu vực, cài đặt thiết bị, hẹn giờ, chia sẻ thiết bị, tra cứu lịch sử, giao diện ra lệnh bằng giọng nói tiếng Việt và quét mã thêm thiết bị mới.
- Cài đặt trang Web Admin (ReactJS): Triển khai các màn hình quản trị tài khoản người dùng và quản lý danh mục thiết bị hệ thống.
- Cài đặt trang Web User (ReactJS): Triển khai các giao diện đăng nhập/đăng ký, bảng điều khiển trang chủ, quản lý khu vực và cấu hình thiết bị.
- Triển khai mô hình nhà thông minh vật lý: Lắp ráp mạch vi điều khiển ESP8266 v12 kết nối hệ thống đèn, quạt và kiểm thử đóng ngắt nguồn điện 220V theo lệnh điều khiển thực tế.
Kết quả và đóng góp
1. Kết quả chính đạt được
- Về mô hình nhận dạng giọng nói: Xây dựng thành công quy trình xử lý tín hiệu âm thanh chuyển đổi sang ảnh quang phổ spectrogram và huấn luyện mô hình CNN phân loại chính xác 24 khẩu lệnh tiếng Việt điều khiển thiết bị gia dụng trên tập dữ liệu thực nghiệm 3.840 mẫu.
- Về kiến trúc phần mềm đa nền tảng: Triển khai hoàn chỉnh hệ thống quản lý và điều khiển gồm:
- Máy chủ trung tâm Node.js tích hợp Socket.io và cơ sở dữ liệu MongoDB.
- Máy chủ nhận dạng giọng nói Python.
- Ứng dụng di động trên cả hai hệ điều hành iOS và Android (React Native).
- Trang web quản trị cho Admin và trang web điều khiển cho User (ReactJS).
- Về phần cứng IoT: Tự thiết kế và chế tạo thành công mạch điều khiển dựa trên chip WiFi ESP8266 v12 có khả năng đóng ngắt từ 1 đến 5 thiết bị điện 220V, giao tiếp thời gian thực với máy chủ qua kênh truyền Socket.
2. Giải pháp và đề xuất từ tác giả
- Đề xuất mô hình nền tảng mở: Cho phép nhà sản xuất/nhà phát triển thiết bị phần cứng độc lập có thể đăng ký mẫu thiết bị mới vào hệ thống (thông qua Web Admin), từ đó người dùng cuối có thể mua thiết bị rời về tự cấu hình kết nối WiFi và tích hợp trực tiếp vào ứng dụng nhà thông minh mà không cần mua trọn gói.
- Ứng dụng công nghệ Socket.io để loại bỏ hoàn toàn cơ chế Polling liên tục của giao thức HTTP truyền thống, giúp giảm tải băng thông và tối ưu hóa thời gian đáp ứng khi điều khiển thiết bị.
3. Đóng góp tự nêu của đề tài
- Hiện thực hóa thành công giải pháp điều khiển nhà thông minh bằng khẩu lệnh tiếng Việt trực tiếp không cần phụ thuộc vào dịch vụ bên thứ ba (như Google Assistant hay Amazon Alexa).
- Kết hợp giải quyết đồng thời bài toán tối ưu hóa việc sử dụng thiết bị điện trong gia đình, hỗ trợ quản lý tiêu thụ năng lượng và nâng cao tuổi thọ thiết bị thông qua các chức năng hẹn giờ và kiểm soát trạng thái tự động.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế của đề tài
- Khả năng nhận dạng giọng nói mới chỉ hỗ trợ 24 câu lệnh cơ bản, cố định dạng đơn lẻ (bật, tắt, tăng, giảm) trên từng thiết bị riêng biệt; chưa xử lý được ngôn ngữ tự nhiên phức tạp hoặc câu lệnh ghép nhiều hành động.
- Dữ liệu âm thanh phục vụ huấn luyện mô hình CNN còn ở quy mô nhỏ (3.840 mẫu thu âm), chưa bao phủ đầy đủ các biến thể ngữ điệu theo vùng miền và môi trường có độ nhiễu cao.
- Kiến trúc cơ sở dữ liệu MongoDB có nguy cơ thất thoát dữ liệu vừa thay đổi nếu xảy ra sự cố mất điện đột ngột do cơ chế ghi trễ định kỳ (60 giây) từ RAM xuống ổ đĩa vật lý.
- Nền tảng Node.js vận hành đơn luồng nên không thể tích hợp trực tiếp tác vụ xử lý mô hình học sâu (vốn yêu cầu tính toán ma trận và GPU), buộc hệ thống phải phân tách thành hai máy chủ dịch vụ riêng biệt (Node.js và Python).
2. Hướng nghiên cứu tiếp
- Mở rộng tập dữ liệu giọng nói tiếng Việt với số lượng mẫu lớn hơn, đa dạng ngữ điệu và phát triển mô hình xử lý ngôn ngữ tự nhiên để nhận dạng các khẩu lệnh ngữ cảnh phức tạp.
- Tối ưu hóa phần cứng IoT, thu nhỏ kích thước mạch điều khiển và tích hợp thêm nhiều loại cảm biến môi trường (nhiệt độ, độ ẩm, chuyển động, báo cháy).
- Hoàn thiện các tính năng phân tích dữ liệu lịch sử sử dụng để đưa ra các gợi ý tự động hóa tiết kiệm năng lượng thông minh hơn cho hộ gia đình.
Giá trị tham khảo
Báo cáo đồ án tốt nghiệp cung cấp giá trị tham khảo chuyên môn rõ ràng cho các nhóm đối tượng:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Nhúng/IoT: Tài liệu là nguồn tham khảo trực quan về quy trình phát triển một hệ thống công nghệ toàn diện từ thiết kế phần cứng vi điều khiển (ESP8266), lập trình máy chủ thời gian thực (Node.js, Socket.io), thiết kế cơ sở dữ liệu NoSQL (MongoDB) đến xây dựng ứng dụng di động đa nền tảng (React Native).
- Người nghiên cứu xử lý tín hiệu âm thanh và học sâu: Phần thuyết minh về phương pháp chuyển đổi tín hiệu âm thanh dạng sóng (
.wav) sang biểu đồ quang phổ tần số (Spectrogram .png) để huấn luyện mạng CNN 2D là giải pháp tham khảo hữu ích nhằm giải quyết bài toán nhận dạng giọng nói cục bộ (offline/on-premise) thay cho các mạng hồi quy RNN/LSTM truyền thống.
- Nhà phát triển thiết bị phần cứng thông minh: Cung cấp mô hình kiến trúc phân quyền và luồng dữ liệu mở giữa nhà phát triển thiết bị (Admin) và người sử dụng cuối (User), giúp định hình quy trình thương mại hóa thiết bị IoT đơn lẻ.
Câu hỏi thường gặp
1. Hệ thống xử lý bài toán nhận dạng giọng nói tiếng Việt bằng mô hình gì và theo cơ chế nào?
Hệ thống không sử dụng các mạng hồi quy chuỗi như RNN hay LSTM mà chuyển đổi file âm thanh ghi âm (.wav) thành hình ảnh quang phổ spectrogram (.png), sau đó sử dụng Mạng nơ-ron tích chập (CNN 2D) để phân loại và dự đoán nhãn lệnh điều khiển tương ứng.
2. Tập dữ liệu huấn luyện của mô hình nhận dạng giọng nói có quy mô như thế nào?
Nhóm tác giả đã thu âm tổng cộng 3.840 file âm thanh với 24 nhãn lệnh điều khiển thiết bị và khu vực khác nhau. Dữ liệu này được chuyển đổi thành các file ảnh quang phổ và phân chia thành 3.072 file dùng cho tập huấn luyện (Train set) và 768 file dùng cho tập kiểm thử (Test set).
3. Phần cứng IoT trong hệ thống sử dụng vi điều khiển nào và điều khiển được tải điện thế bao nhiêu?
Phần cứng trong hệ thống được xây dựng trên chip WiFi ESP8266 v12 (bộ nhớ Flash 8MB), kết hợp với mạch relay có từ 1 đến 5 đầu ra để đóng ngắt trực tiếp các thiết bị điện dân dụng hoạt động trên điện áp 220V.
4. Cơ sở dữ liệu MongoDB trong đồ án được thiết kế gồm những bảng (collection) nào?
Hệ thống thiết kế 6 collection chính bao gồm: User (quản trị thông tin người dùng), Devices (quản lý thông số và trạng thái thiết bị), Areas (quản lý các phân khu/phòng), History (lưu trữ nhật ký tương tác), Time (cấu hình lịch trình hẹn giờ) và System Device (danh mục thiết bị mẫu của nhà sản xuất).
5. Tại sao hệ thống phải tách riêng máy chủ Node.js và máy chủ Python?
Node.js sử dụng kiến trúc đơn luồng (Single-Threaded) và cơ chế hướng sự kiện Non-blocking, rất tối ưu cho các tác vụ I/O mạng và xử lý kết nối thời gian thực (Socket.io) nhưng không phù hợp cho các phép toán ma trận nặng đòi hỏi tài nguyên GPU. Do đó, mô hình nhận dạng CNN được đặt trên máy chủ Python riêng biệt và giao tiếp với Node.js qua HTTP REST API.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống nhận dạng lệnh tiếng Việt điều khiển nhà thông minh" của sinh viên Nguyễn Việt Anh và Lê Công Nghĩa (Khoa CNTT - Trường ĐH Sư phạm Kỹ thuật TP.HCM) đã giải quyết trọn vẹn quy trình xây dựng một hệ thống IoT hoàn chỉnh từ tầng phần cứng đến tầng ứng dụng. Nghiên cứu ứng dụng thành công phương pháp biến đổi quang phổ âm thanh kết hợp mạng nơ-ron tích chập CNN để nhận dạng chính xác 24 khẩu lệnh tiếng Việt điều khiển thiết bị điện 220V qua vi điều khiển ESP8266 v12. Hệ thống kết hợp hài hòa giữa máy chủ thời gian thực Node.js, cơ sở dữ liệu MongoDB, kênh truyền Socket.io và ứng dụng di động React Native, mang lại giải pháp công nghệ có tính thực tiễn cao cho lĩnh vực nhà thông minh tại Việt Nam.