Một giải pháp ứng dụng trí tuệ nhân tạo cho nhà thông minh

Trong những năm gần đây, cùng với sự phát triển của khoa học và công nghệ, đặc biệt là

lĩnh vực trí tuệ nhân tạo đã len lỏi vào trong mọi lĩnh vực của cuộc sống mà ngôi nhà chúng

ta đang ở cũng không phải là một ngoại lệ. Các căn nhà mà ở đó các thiết bị được điều khiển

bằng giọng nói đã và đang là xu hướng phát triển của nhà thông minh. Trong bài báo này,

chúng tôi có ứng dụng thêm các mô hình máy học vào các căn nhà điều khiển thiết bị bằng

giọng nói nhằm tăng cường tính chính xác cũng như tính linh hoạt của hệ thống (ví dụ như

khi người điều khiển có thể nói những “ý định điều khiển” gần giống với những gì đã được

lập trình thì hệ thống điều khiển vẫn hiểu và thực hiện). Với việc ứng dụng các mô hình máy

học như mạng nơ ron nhiều lớp, véc-tơ hỗ trợ một lớp thì chúng tôi đã xây dựng một bộ xử lý

trung tâm làm nhiệm vụ phân loại dữ liệu và đưa ra quyết định điều khiển thiết bị cho nhà

thông minh.

pdf 12 trang kimcuc 21860
Bạn đang xem tài liệu "Một giải pháp ứng dụng trí tuệ nhân tạo cho nhà thông minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Một giải pháp ứng dụng trí tuệ nhân tạo cho nhà thông minh

Một giải pháp ứng dụng trí tuệ nhân tạo cho nhà thông minh
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
35 
MỘT GIẢI PHÁP ỨNG DỤNG TRÍ TUỆ NHÂN TẠO 
CHO NHÀ THÔNG MINH 
AN APPROACH FOR APPLYING ARTIFICIAL INTELLIGENCE 
TO SMART-HOME 
Nguyễn Tất Bảo Thiện1, Trương Tiến Sỹ2 
1Trường Đại học Thủy lợi, Việt Nam 
2Học viện Công nghệ Bưu chính Viễn thông, Cơ sở tại TP. Hồ Chí Minh, Việt Nam 
Ngày toà soạn nhận bài 20/3/2019, ngày phản biện đánh giá 9/04/2019, ngày chấp nhận đăng 20/5/2019 
TÓM TẮT 
Trong những năm gần đây, cùng với sự phát triển của khoa học và công nghệ, đặc biệt là 
lĩnh vực trí tuệ nhân tạo đã len lỏi vào trong mọi lĩnh vực của cuộc sống mà ngôi nhà chúng 
ta đang ở cũng không phải là một ngoại lệ. Các căn nhà mà ở đó các thiết bị được điều khiển 
bằng giọng nói đã và đang là xu hướng phát triển của nhà thông minh. Trong bài báo này, 
chúng tôi có ứng dụng thêm các mô hình máy học vào các căn nhà điều khiển thiết bị bằng 
giọng nói nhằm tăng cường tính chính xác cũng như tính linh hoạt của hệ thống (ví dụ như 
khi người điều khiển có thể nói những “ý định điều khiển” gần giống với những gì đã được 
lập trình thì hệ thống điều khiển vẫn hiểu và thực hiện). Với việc ứng dụng các mô hình máy 
học như mạng nơ ron nhiều lớp, véc-tơ hỗ trợ một lớp thì chúng tôi đã xây dựng một bộ xử lý 
trung tâm làm nhiệm vụ phân loại dữ liệu và đưa ra quyết định điều khiển thiết bị cho nhà 
thông minh. 
Từ khóa: máy học; mạng nơron nhiều lớp; nhà thông minh; nhận diện giọng nói; véc-tơ hỗ 
trợ một lớp. 
ABSTRACT 
In recent years, along with the development of science and technology, especially the 
techniques of artificial intelligence has appeared in many areas of life in that smart-home is 
not an exception. The houses of which devices were controlled through the voice recognition 
has been the trend of smart-home development. In this article, we applied machine learning 
models to a smart-home with voice-controlled devices to enhance the accuracy and flexibility 
of the system (for example, when the operator says "control intents" which are similar to the 
programmed keywords, the control system still understands and executes). With the 
applications of machine learning models such as multi-layer neural networks and one-class 
support vector machine, we have already built a processing centre to classify data and make 
control decisions for smart-homes. 
Keywords: machine learning; multi-layer perceptron; one-class support vector; smart-home; 
speech recognition. 
1. ĐẶT VẤN ĐỀ 
Nhà thông minh là một căn nhà được 
tích hợp các phương pháp, hệ thống nhằm 
vận hành và kiểm soát các thiết bị điện tử để 
giảm thiểu hoạt động của con người ở mức 
tối thiểu. Nhà thông minh được thiết kế và 
phát triển để điều khiển và giám sát các thiết 
bị khác nhau như đèn, cảm biến nhiệt độ, độ 
ẩm, thiết bị phát hiện khói và cháy cũng như 
hệ thống an ninh [1]. Một trong những ưu 
điểm nổi bật nhất của nhà thông minh là các 
thiết bị trong nhà có thể được điều khiển và 
quản lý dễ dàng bằng điện thoại thông minh, 
máy tính bảng hay máy tính xách tay [2]. 
36 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
Hiện nay, các công ty công nghệ lớn của 
thế giới đã và đang phát triển các ứng dụng 
phục vụ cho nhà thông minh như Google 
Assistant của Google, HomeKit của Apple 
v.v. Tại Việt Nam, các công ty công nghệ 
cũng đã phát triển các sản phẩm như Bkav 
Smarthome, nhà thông minh của Lumi. Các 
sản phẩm này thường tập trung vào việc điều 
khiển các thiết bị từ xa thông qua thiết bị di 
động, công tắc cảm biến hay qua các ứng 
dụng trên nền tảng di động. 
Đã có những nghiên cứu về việc ứng 
dụng trí tuệ vào nhà thông minh mà điển hình 
là việc sử dụng giọng nói để điều khiển các 
thiết bị trong nhà [3] [4]. Aml A. Arriany và 
Mohamed S. Musbah đã đề xuất giải pháp 
điều khiển các thiết bị trong nhà bằng giọng 
nói thông qua bộ tự động nhận diện giọng 
nói, bộ xử lý trung tâm và bộ điều khiển 
trung tâm để điều khiển các thiết bị như đèn, 
quạt. Noriyuki Kawarazaki và Tadashi 
Yoshidome đã xây dựng hệ thống điều khiển 
thiết bị bằng giọng nói thông qua bộ PMRC 
(Programmable multi remote controller). Khi 
người điều khiển gửi lệnh bằng giọng nói đến 
hệ thống, PMRC gửi tín hiệu đến các thiết bị 
điện dân dụng để điều khiển chúng. Điểm 
chung của các nghiên cứu này là việc tập 
trung xây dựng mô hình điều khiển các thiết 
bị từ xa bằng giọng nói. Tức là khi con người 
điều khiển thiết bị trong nhà bằng giọng nói 
thì chúng sẽ được chuyển về dạng văn bản để 
so sánh với các từ khóa đã được lập trình sẵn 
từ trước (như tắt đèn, mở đèn, ). 
Trong bài báo này, chúng tôi tập trung 
xây dựng các mô hình máy học để xử lý dữ 
liệu văn bản thu được từ bộ nhận dạng giọng 
nói nhằm tăng cường sự chính xác cũng như 
sự linh hoạt của hệ thống điều khiển thiết bị 
thông qua giọng nói. (ví dụ khi chuỗi điều 
khiển nhận được là “bật điện lên” thì đối với 
các hệ thống trên, chuỗi thu được này không 
trùng với bất kỳ “từ khóa” nào hết. Vì thế hệ 
thống sẽ không điều khiển thiết bị, việc này 
sẽ gây khó khăn cho người sử dụng khi họ 
phải nhớ các từ khóa để điều khiển thiết bị). 
Với việc áp dụng các mô hình máy học vào 
việc phân tích dữ liệu văn bản thu được, 
chúng tôi có thể giúp hệ thống điều khiển 
“hiểu” được ý muốn của con người nhằm 
tăng tính chính xác và sự linh hoạt cho hệ 
thống. 
2. MÔ HÌNH ĐIỀU KHIỂN THIẾT BỊ 
BẰNG GIỌNG NÓI 
Mô hình điều khiển các thiết bị trong 
nhà bằng giọng nói bao gồm 3 bộ xử lý dữ 
liệu được mô tả trong Hình 1: 
 Bộ chuyển đổi giọng nói thành văn bản 
với nhiệm vụ chính là biến đổi giọng nói 
thành văn bản. 
 Bộ xử lý trung tâm gồm các mô hình 
máy học có chức năng phân loại các văn bản 
thu được từ bộ nhận dạng giọng nói. 
 Bộ điều khiển trung tâm là nơi kết nối 
với các thiết bị đèn, quạt, cửa và nhận lệnh 
điều khiển từ bộ xử lý trung tâm. 
Hình 1. Mô hình điều khiển thiết bị trong 
nhà bằng giọng nói 
2.1. Bộ chuyển đổi văn bản thành giọng nói 
Hệ thống nhận diện giọng nói là hệ 
thống có khả năng nhận và dịch các lệnh thu 
được từ giọng nói con người. Nhận dạng 
giọng nói gồm 2 thuật ngữ chính: 
 Voice Recognition liên quan đến việc 
xác định giọng nói chính xác của một cá 
nhân nào đó, tương tự một phương pháp sinh 
trắc học. 
 Speech Recognition là việc xác định 
những từ ngữ trong câu rồi dịch chúng sang 
ngôn ngữ máy tính. 
Với bài báo này, chúng tôi xây dựng một 
bộ chuyển đổi giọng nói thành văn bản dựa 
trên nền tảng của Google Cloud Speech API 
(Google Speech API là một dịch vụ cho phép 
chuyển đổi giọng nói thành văn bản và hiện 
tại đã hỗ trợ ngôn ngữ Tiếng Việt). Nhiệm vụ 
chính của của bộ nhận diện giọng nói này 
chuyển đổi giọng nói đầu vào thành văn bản 
và gửi chúng lên bộ xử lý trung tâm bằng 
phương thức GET. 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
37 
Hình 2. Google Speech API 
2.2. Bộ xử lý trung tâm 
Chúng tôi sử dụng server có cài hệ điều 
hành Linux để xử lý thông tin nhận được từ 
bộ chuyển đổi giọng nói thành văn bản. Các 
văn bản nhận được này sẽ được phân loại 
theo các tiêu chí như sau: 
 Các văn bản thu được có phải là các câu 
lệnh điều khiển thiết bị hay chỉ là một câu 
nói thông thường. 
 Nếu chúng là câu lệnh điều khiển thiết bị 
thì chúng điều khiển thiết bị nào? 
Để giải quyết các câu hỏi trên, chúng tôi 
lựa chọn hai mô hình máy học là Oneclass-
SVM và Multi-layer Perceptron. Việc tại sao 
lại lựa chọn hai mô hình này sẽ được chúng 
tôi trình bày chi tiết ở mục 3.2 và 3.3. 
Sau khi dữ liệu văn bản đầu vào được 
tiền xử lý và trích rút đặc trưng thì sẽ được 
đưa vào hai mô hình máy học là Oneclass- 
SVM và Multi-layer Perceptron để phân loại 
dữ liệu theo mô hình giải thuật Hình 3. 
Hình 3. Mô hình lưu đồ thuật toán trong bộ 
xử lý trung tâm. 
2.3. Bộ điều khiển trung tâm 
Máy tính nhúng là một thiết bị, hệ thống 
được thiết kế để phục vụ cho một yêu cầu, 
ứng dụng hoặc một chức năng nhất định nào 
đó và được ứng dụng nhiều trong lĩnh vực 
công nghiệp, tự động hóa điều khiển hay 
truyền tin . Một số ưu điểm của máy tính 
nhúng như chi phí thấp, kích thước nhỏ gọn, 
dể sử dụng. Chính vì thế chúng tôi đã sử 
dụng Raspberry Pi để làm bộ điều khiển 
trung tâm vì nó đủ mạnh để có thể chạy như 
một máy chủ hoạt động đa nhiệm, có hỗ trợ 
kết nối internet và có thể cài hệ điều hành để 
chạy một số ứng dụng phần mềm phù hợp 
cho việc thiết kế và nghiên cứu. Ngoài ra, 
chúng tôi còn sử dụng các đèn LED để mô 
hình hóa các thiết bị điện trong nhà như đèn, 
quạt, cửa. 
Hình 4. Raspberry Pi. 
Raspberry Pi là một bo mạch máy tính 
đơn giản được phát triển tại Anh bởi 
Raspberry Pi Foundation với mục đích giảng 
dạy khoa học máy tính tại trường [5].Trên bo 
mạch của Raspnerry Pi có các thành phần: 
CPU, GPU, RAM, khe cắm, thẻ microSD, 
Wifi, Bluetooth và 4 cổng USB. Sau khi cài 
đặt hệ điều hành vào thẻ SD và gắn vào SD 
card, chúng tôi thực hiện kết nối với mạng 
thông qua cổng LAN của Raspberry Pi và đặt 
IP tĩnh dễ dàng kết nối và quản lý về sau. 
3. XÂY DỰNG MÔ HÌNH MÁY HỌC 
CHO VIỆC PHÂN LOẠI DỮ LIỆU 
ĐẦU VÀO 
Để xây dựng các mô hình máy học thì 
chúng ta cần có những phép biến đổi để có 
thể có những véc-tơ đặc trưng phù hợp từ dữ 
liệu thô ban đầu (các dữ liệu thô này có thể là 
văn bản, hình ảnh v.v). Quá trình này được 
gọi là Feature Engineering (trích chọn đặc 
trưng) bởi vì khi thực hiện những bài toán 
38 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
máy học thực tế thì hầu hết dữ liệu đầu vào 
chỉ là những dữ liệu thô chưa qua xử lý và 
chọn lọc. Chúng ta cần phải tìm một phép 
biến đổi để loại ra nhiễu (noise) và đưa dữ 
liệu thô với số chiều khác nhau về cùng một 
dạng chuẩn (cùng là các vector hoặc ma 
trận). Dữ liệu chuẩn mới này phải đảm bảo 
giữ được những thông tin đặc trưng 
(features) của dữ liệu thô ban đầu. Ngoài ra, 
tùy thuộc vào từng bài toán khác nhau thì 
chúng ta cần thiết kế những phép biến đổi để 
có thể có những đặc trưng phù hợp. 
Chúng tôi có một tập dữ liệu thô với 
khoảng hơn 200 câu văn bản tiếng Việt dùng 
để điều khiển tắt/mở ba thiết bị đèn, quạt và 
cửa. Tập dữ liệu thô này được mô tả trong 
Bảng 1. 
Bảng 1. Bảng tổng quát tập dữ liệu huấn 
luyện và dữ liệu kiểm thử 
Tập dữ 
liệu 
File chứa dữ liệu 
Tập dữ 
liệu huấn 
luyện 
batden.txt 
(chứa các câu có “ý nghĩa” bật đèn) 
Ví dụ: Bật đèn, mở đèn đi, tắt điện 
chi vậy 
tatden.txt 
(chứa các câu có “ý nghĩa” tắt đèn) 
Ví dụ: tắt đèn, sáng rồi tắt đèn đi. 
batquat.txt 
(chứa các câu có “ý nghĩa” bật 
quạt) 
Ví dụ: bật quạt, mở quạt  
tatquat.txt 
(chứa các câu có “ý nghĩa” tắt quạt) 
Ví dụ: tắt quạt đi, tắt cái quạt đi. 
mocua.txt 
(chứa các câu có “ý nghĩa” mở cửa) 
Ví dụ: mở cửa, sao không mở cửa 
đi, mở cửa giúp tôi  
dongcua.txt 
(chứa các câu có “ý nghĩa” đóng 
cửa) 
Ví dụ: đóng cửa, đóng cửa đi, khép 
cửa lại đi  
Tập dữ 
liệu 
File chứa dữ liệu 
Tập dữ 
liệu kiểm 
thử 
test_accept.txt 
(chứa các tập dữ liệu thuộc loại câu 
lệnh điều khiển thiết bị) 
Ví dụ: tắt cái bóng đèn kia giúp tôi, 
sao không tắt điện  
test_fail.txt 
(chứa tập dữ liệu không phải là câu 
lệnh điều khiển) 
Ví dụ: cậu có khỏe không, trời lạnh 
quá, xin chào  
Ở giai đoạn huấn luyện, chúng tôi thực 
hiện một số bước sau: 
 Tập dữ liệu huấn luyện (data training) 
lấy ngẫu nhiên ¾ từ tập dữ liệu thô ban đầu. 
 Tiền xử lý văn bản tiếng Việt. 
 Trích chọn đặc trưng: tùy thuộc vào 
từng mô hình sử dụng mà chúng ta có thể lựa 
chọn ra những đặc trưng phù hợp. Đối với 
bài báo này, chúng tôi sử dụng hai mô hình 
máy học là OCSVM và Multi-layer 
Perceptron. Quá trình trích chọn đặc trưng 
của từng mô hình sẽ được chúng tôi trình bày 
tại mục 3.2 và 3.3. 
 Mô hình OCSVM: đây là mô hình 
máy học có giám sát. Tuy nhiên do đặc trưng 
của OCSVM nên dữ liệu đầu vào chỉ là các 
véc-tơ đặc trưng (features vector). 
 Mô hình Multi-layer Perceptron: đây 
là mô hình máy học có giám sát vì vậy dữ 
liệu đầu vào sẽ là một cặp (feature vector, 
label) với quy định như sau: 
Bảng 2. Ý nghĩa nhãn của mô hình MLP 
Nhãn Nhóm 
1 Bật đèn 
2 Tắt đèn 
3 Bật quạt 
4 Tắt quạt 
5 Mở cửa 
6 Đóng cửa 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
39 
Trong giai đoạn kiểm thử (testing), tập 
dữ liệu kiểm thử (data testing) lấy ngẫu nhiên 
¼ dữ liệu thô ban đầu và thêm vào một số 
câu văn bản tiếng Việt không liên quan đến 
việc điều khiển các thiết bị đèn, quạt và cửa. 
Tập dữ liệu kiểm thử này sẽ được đưa qua 
các bước tiền xử lý, trích chọn đặc trưng và 
sau đó đưa qua các mô hình máy học đã được 
thiết kế ở giai đoạn huấn luyện. Kết quả là 
các văn bản tiếng Việt sẽ được phân loại theo 
yêu cầu của bài toán. Mô hình OCSVM: 
nhãn đầu ra sẽ là 1 nếu dữ liệu kiểm thử 
thuộc loại là câu lệnh điều khiển thiết bị và 
các dữ liệu này sẽ đi tiếp vào mô hình Multi-
layer Perceptron. Nếu nhãn đầu ra là -1 thì 
dữ liệu kiểm thử là dữ liệu không liên quan 
đến việc điều khiển thiết bị. Mô hình 
Multilayer-Perceptron: nhãn đầu ra sẽ tương 
ứng với các lệnh điều khiển được giới thiệu 
trong bảng 2. 
3.1. Tiền xử lý và véc-tơ hóa dữ liệu Tiếng 
Việt 
Tiền xử lý dữ liệu là bước đầu tiên trong 
việc xử lý ngôn ngữ tự nhiên bao gồm một số 
bước cơ bản như sau: 
- Làm sạch: loại bỏ nhiễu trong dữ liệu 
đầu vào (nhiễu này có thể là các ký tự đặc 
biệt, các thẻ html, v.v). 
- Tách từ trong câu: đối với tiếng Việt thì 
có một số từ là từ đơn thì không có nghĩa 
hoặc mang một ý nghĩa khác nhưng nếu 
chúng được ghép với một từ khác thì nó sẽ 
có nghĩa mới. 
- Chuẩn hóa từ: chuẩn hóa dạng ký tự như 
viết hoa, viết thường, kiểu chữ v.v. 
- Loại bỏ stop words: loại bỏ các từ không 
cần thiết, quan trọng. Trong Tiếng Việt, nếu 
chỉ xét đến các câu lệnh điều khiển thiết bị 
thì chúng ta có thể loại bỏ một số từ “tôi”, 
“làm ơn”, “với”, v.v. 
Trong bài báo này, chúng tôi thực hiện 
tiền xử lý các văn bản tiếng Việt ở tập dữ liệu 
huấn luyện dựa trên các thư viện có sẵn của 
ngôn ngữ lập trình Python. Từ đó xây dựng 
mô hình tiền xử lý cho các dữ liệu đầu vào 
của hệ thống điều khiển thiết bị. 
Ví dụ: tập văn bản cần tiền xử lý gồm 
các câu thuộc tập dữ liệu data_input: 
data_input= ['Tắt đèn', 'trời sáng rồi, sao 
không tắt điện đi!', 'tắt đèn giúp tôi với',]. 
Chúng tôi sẽ tiến hành loại bỏ nhiễu và 
chuẩn hóa từ thuộc tập dữ liệu này dựa vào 
thư viện gensim có sẵn trong Python. Thư 
viện này sẽ bỏ các dấu câu như (,.#! ) và 
chuẩn hóa các từ trong câu. Do tập dữ liệu 
data_input thuộc dạng danh sách nên chúng 
tôi sử dụng hàm for để xử lý từng phần tử 
của danh sách này. Kết quả được chúng tôi 
lưu lại trong biến temp. Sau đó, chúng tôi 
tiếp tục sử dụng thư viện pyvi. ViTokenizer 
để nối các từ ghép có nghĩa trong tiếng Việt. 
Các từ nối có nghĩa sẽ có dấu gạch nối giữa 
các từ (ví dụ: tắt_đèn,). 
data_train = []; 
for i in range(0,len(data_input)): 
temp=gensim.utils.simple_preprocess(data_i
npu ... ệu văn 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
43 
bản thành các véc-tơ. Phương pháp Bag-of-
word sẽ tạo ra một từ điển gồm tất cả các từ 
xuất hiện trong tập data_train. 
{'bóng': 0,'bật': 1,'chi': 2,'chói': 3,'coi': 
4,'cái': 5,,'đang': 43,'đi': 44,'điện': 
45,'đèn': 46,'đóng': 47,'ơn': 48} 
Trong đó, chúng tôi quan sát thấy có một 
số đặc trưng không cần thiết cho việc phân 
loại dữ liệu điều khiển thiết bị như “tối”, 
“rồi” v.v, và một số đặc trưng rất quan trọng 
trong việc phân loại là “tắt”, “mở”, “đèn”, 
v.v. Dựa vào việc tính toán tần suất xuất hiện 
của các từ trong từ điển thì chúng tôi đã loại 
bỏ bớt đi các đặc trưng không cần thiết để tạo 
ra một từ điển mới gồm các đặc trưng quan 
trọng cho việc phân loại dữ liệu điều khiển. 
vectorlizer_svm.vocabulary_ = {'bật': 
6,'cửa': 7,'khép': 9,'khóa': 8,'mở': 1,'quạt': 
4,'tắt': 0,'điện': 3,'đèn': 2,'đóng': 5} 
Sau khi đã có những đặc trưng tốt nhất 
cho việc phân loại dữ liệu, chúng tôi tiến 
hành chuyển đổi các dữ liệu văn bản thành 
các véc-tơ với hàm: 
X_train=vectorizer_svm.transform(data_trai
n).todense() 
Kết quả của hàm này sẽ trả về một ma 
trận X_train chứa các véc-tơ đặc trưng tương 
ứng với các dữ liệu huấn luyện đầu vào. 
X_train = [[0, 0, 1, ..., 0, 0, 0],[0, 0, 0, ..., 0, 
0, 0],[0, 0, 1, ..., 0, 0, 0],...,[0, 0, 0, ..., 1, 0, 
0],[0, 0, 0, ..., 1, 1, 0],[0, 0, 0, ..., 1, 1, 0]]) 
Mô hình One-class SVM là một loại mô 
hình máy học có giám sát và dữ liệu đầu vào 
của mô hình sẽ là các véc-tơ đặc trưng còn 
dữ liệu đầu ra là các nhãn 1 hoặc -1 đã được 
giải thích ở phần 3. Với các cơ sở toán học 
của mô hình đã được trình bày ở mục 3.2. 
Chúng tôi sử dụng thư viện Scikit Learning 
của ngôn ngữ lập trình Python để xây dựng 
mô hình One-class SVM. Trong quá trình 
huấn luyện, chúng tôi đã điều chỉnh các 
thông số của mô hình One-class SVM để đáp 
ứng được việc phân loại dữ liệu mới có phải 
là dữ liệu điều khiển thiết bị hay không với 
các kernel và thông số khác nhau để chọn ra 
mô hình giúp cho tập dữ liệu của chúng tôi 
đạt kết quả tốt. Kết quả đối với từng kernel 
được trình bày trong bảng 3. 
Bảng 3. Kết quả huấn luyện mô hình One-
class SVM với các kernel khác nhau 
 Rbf Poly Sigmod Linear 
Tol 0.001 0.001 0.001 0.001 
Nu 0.002 0.216 0.052 0.026 
Degree(d) X 3 X X 
gamma(γ) 0.01 0.01 0.01 X 
coef0 (r) X 0.0 0.0 X 
Kết quả 64% 88% 98% 96.7% 
Trong đó, các thông số tol, degree, 
gamma, coef0 là được giữ nguyên ở các mô 
hình. Chúng tôi thực hiện vòng lặp for để tìm 
ra giá trị nu giúp cho mô hình đạt kết quả tốt 
nhất khi đưa ma trận véc-tơ đặc trưng vào 
huấn luyện với hàm clf.fit (X_train). Sử dụng 
tập nhãn đã được tạo từ trước của tập dữ liệu 
và so sánh với kết quả đầu ra của mô hình. 
Chúng tôi đã tìm được các thông số giúp cho 
mô hình có kết quả phân loại tốt nhất. 
clf = svm.OneClassSVM(nu=0.052, 
kernel="sigmoid", tol =0.001, gamma=0.01) 
Với nu là giới hạn trên của training 
errors và giới hạn dưới của support vectors, 
tol là dung sai cho quá trình dừng, gamma là 
hệ hố kernel. 
Chạy thử tập dữ liệu kiểm thử với mô 
hình OCSVM vừa được xây dựng. Tập dữ 
liệu này bao gồm một số câu lệnh thuộc loại 
câu lệnh điều khiển và một số câu không 
thuộc loại này lưu ở 2 file test_fail và 
test_accept. Sau quá trình tiền xử lý và trích 
chọn đặc trưng giống với tập dữ liệu huấn 
luyện thì kết quả sẽ là một ma trận X_test 
chứa các véc-tơ đặc trưng. Để kiểm tra sự 
chính xác của mô hình thì chúng tôi tạo một 
ma trận chứa các nhãn phân loại của tập dữ 
liệu kiểm thử bằng bằng cách dán nhãn 1 nếu 
dữ liệu đó thuộc file test_accept và -1 nếu dữ 
liệu đó thuộc file_fail với hàm 
np.concatenate: 
label=np.concatenate((1*np.ones(len(test_fa
il)),np.ones(len(test_accept)))) 
Sau khi đưa tập dữ liệu kiểm thử qua mô 
hình OCSVM với hàm clf.predict(X_test) thì 
44 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
kết quả trả về sẽ là một ma trận y_pred chứa 
các nhãn 1 hoặc -1 do mô hình dự đoán và số 
phần tử bằng với số lượng các câu lệnh thuộc 
tập dữ liệu kiểm thử. Từ ma trận này, chúng tôi 
tiến hành so sánh với ma trận nhãn label bằng 
hàm accuracy_score (label, y_pred)*100. Kết 
quả ở bảng 3 cho thấy mô hình OCSVM có sự 
phân loại chính xác gần như 100% đối với bài 
toán phân loại dữ liệu này. 
4.2.2. Mô hình Multi-layer Perceptron 
Tập dữ liệu huấn luyện hơn 200 câu lệnh 
điều khiển thiết bị được chia theo 6 file 
tương ứng như bảng 1. Với các bước tiền xử 
lý đã được trình bày từ mục 3.1. 
Trích chọn đặc trưng: sự trích chọn đặc 
trưng đối với từng loại mô hình máy học là 
khác nhau. Với dữ liệu đầu vào của mô hình 
MLP đã là các câu lệnh điều khiển thì các từ 
trong câu lệnh đó sẽ có một ý nghĩa nào đó 
giúp cho việc phân nhóm dữ liệu dễ dàng 
hơn. Tương tự như mô hình OCSVM, chúng 
tôi sử dụng phương pháp Bag-of-words để 
véc-tơ hóa dữ liệu đầu vào, việc lựa chọn các 
đặc trưng của mô hình này cũng khác một ít 
so với mô hình OCSVM, các từ “tối”, 
“sáng”, “lạnh”  thì không có nhiều ý nghĩa 
đối với mô hình OCSVM nhưng nó lại giúp 
mô hình MLP phân loại chính xác hơn ở một 
số trường hợp. Chính vì thế, véc-tơ đặc trưng 
của mô hình MLP có số chiều lớn hơn véc-tơ 
đặc trưng của mô hình OCSVM. 
X_train = [[0, 1, 0, ..., 1, 0, 0],[0, 1, 0, ..., 0, 0, 
0],[1, 1, 0, ..., 1, 0, 0],...,[0, 0, 0, ..., 0, 1, 0]] 
Mô hình MLP là một mô hình máy học 
có giám sát, tức là dữ liệu đi vào sẽ là một 
cặp (feature vector, label). Ma trận labels 
được tạo ra bằng cách nhân một ma trận 
np.one (ma trận 1) có số chiều bằng số dữ 
liệu trong từng tập dữ liệu với giá trị tương 
ứng từ 1 đến 6 được trình bày trong bảng 2: 
np.concatenate((np.ones(len(batden)),2*np.o
nes(len(tatden)),3*np.ones(len(batquat)),4*n
p.ones(len(tatquat)),5*np.ones(len(mocua)),6
*np.ones(len(dongcua)))) 
Với các cơ sở toán học của mô hình đã 
được trình bày ở mục 3.3. Chúng tôi xây 
dựng mô hình MLP này với thư viện Scikit-
learning được hỗ trợ sẵn trong ngôn ngữ 
Python. Trong quá trình huấn luyện mô hình 
với ma trận véc-tơ đặc trưng X_train và ma 
trận labels tương ứng bằng hàm 
mlp.fit(X_train,lables) thì chúng tôi đã điều 
chỉnh các thông số để giúp cho mô hình phân 
loại chính xác các câu lệnh thuộc nhóm lệnh 
nào cũng như đáp ứng được hiệu suất xử lý 
của hệ thống. 
MLPClassifier(hidden_layer_sizes=20,tol=0.
001,activation='logistic',max_iter=100) 
Với hidden_layer_sizes là đại diện cho 
số lượng tế bào nơ-ron trong một lớp ẩn 
(hidden layer), tol là dung sai cho việc tối ưu 
hóa, activation là hàm hoạt động của lớp ẩn, 
max_iter là số lần lặp tối đa. 
Khi dữ liệu mới đi vào mô hình sẽ được 
dán nhãn đầu ra theo các nhóm mà chúng 
được phân loại dựa trên bảng 2. Các nhãn 
đầu ra này sẽ được gửi xuống bộ điều khiển 
trung tâm để thực hiện lệnh điều khiển. 
Chạy thử tập dữ liệu kiểm thử với mô 
hình MLP vừa được xây dựng. Chúng tôi lấy 
tập dữ liệu kiểm thử từ file test_accept để tiền 
xử lý và trích chọn đặc trưng tương tự như tập 
dữ liệu huấn luyện thì kết quả sẽ là một ma 
trận X_test chứa các véc-tơ đặc trưng. Sau đó 
chúng tôi tạo ra một ma trận label nhãn 
“chuẩn” để so sánh với ma trận y_pred (là ma 
trận chứa các nhãn điều khiển thiết bị tương 
ứng) thu được khi đưa dữ liệu kiểm thử qua 
mô hình MLP. Kết quả cho thấy mô hình MLP 
có sự phân loại chính xác gần như 100%. 
4.3. Kết quả thực nghiệm 
Chuẩn bị 
Chúng tôi xây dựng 2 mô hình điều 
khiển thiết bị bằng giọng nói. 
- Mô hình thứ nhất sử dụng phương pháp 
từ khóa: xây dựng dựa trên nguyên lý của bài 
báo [2] và các mô hình thực tế. Mô hình này 
bao gồm một bộ chuyển đổi giọng nói thành 
văn bản và một bộ điều khiển trung tâm. Bộ 
điều khiển trung tâm này sẽ nhận dữ liệu từ 
bộ chuyển đổi giọng nói thành văn bản và so 
sánh với các “từ khóa” đã được lập trình sẵn 
để có thể điều khiển thiết bị. 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
45 
- Mô hình thứ hai sử dụng các thuật toán 
máy học: mô hình này bao gồm bộ chuyển 
đổi giọng nói thành văn bản, bộ xử lý trung 
tâm và bộ điều khiển trung tâm. Chức năng 
và nhiệm vụ các các bộ xử lý này đã được 
trình bày ở phần 2. 
Thực nghiệm 
Chúng tôi thực hiện chạy song song hai 
mô hình này với đầu vào là bộ chuyển đổi 
giọng nói thành văn bản (Google Speed to 
Text) được sử dụng chung cho hai mô hình 
nhằm tăng tính khách quan trong việc đánh 
giá kết quả. 
Thực hiện lần lượt 50 câu lệnh điều 
khiển thiết bị đã được chuẩn bị từ trước trong 
môi trường yên tĩnh (trong phòng kín, không 
có người xung quanh) và môi trường có tiếng 
ồn (môi trường làm việc hàng ngày). Sau khi 
qua bộ chuyển đổi giọng nói thành văn bản 
thì các văn bản điều khiển này cùng lúc được 
đưa vào hai mô hình để điều khiển thiết bị. 
Kết quả thực nghiệm được chúng tôi trình 
bày tại bảng 4. 
Bảng 4. Kết quả thực nghiệm 
Mô hình Môi 
trường 
Nhận dạng 
giọng nói 
đúng 
Điều 
khiển 
đúng 
Tỷ lệ 
(50 
mẫu) 
Sử dụng so 
sánh từ khóa 
Yên 
tĩnh 
48 
37 74% 
Sử dụng các 
thuật toán 
máy học 
47 94% 
Sử dụng so 
sánh từ khóa Có 
tiếng 
ồn 
40 
29 58% 
Sử dụng các 
thuật toán 
máy học 
38 76% 
Từ kết quả ở bảng 4, đối với cùng một 
bộ chuyển đổi văn bản thành giọng nói cho ra 
các dữ liệu đầu vào giống nhau thì với mô 
hình sử dụng phương pháp so sánh từ khóa sẽ 
cho ra các kết quả sai ở những câu điều khiển 
không trùng với từ khóa được lập trình từ 
trước. Ví dụ: văn bản nhận được là “tắt cái 
đèn đi” hay “sáng rồi sao không tắt điện đi” 
trong khi từ khóa là “tắt đèn”. Cả hai văn bản 
nhận được đều có ý nghĩa là “tắt đèn” nhưng 
không trùng khớp với từ khóa dẫn tới việc hệ 
thống không điều khiển thiết bị theo ý muốn 
của người điều khiển. Trong khi đó, với mô 
hình áp dụng các thuật toán máy học thì cho 
ra kết quả điều khiển chính xác. Điều này 
giúp cho việc giao tiếp giữa người điều khiển 
và thiết bị trở nên bớt nhàm chán khi người 
sử dụng có thể điều khiển thiết bị bằng 
những câu nói khác nhau mà không cần quan 
tâm câu nói đó đã đúng từ khóa chưa. 
Ngoài ra, kết quả điều khiển thiết bị 
bằng giọng nói cũng bị ảnh hưởng rất lớn khi 
bộ chuyển đổi giọng nói thành văn bản nhận 
dạng sai nhất là đối với phương pháp sử dụng 
từ khóa vì chỉ cần nhận diện sai một từ khóa 
thôi thì kết quả điều khiển thiết bị sẽ không 
chính xác. 
5. KẾT LUẬN VÀ HƯỚNG NGHIÊN 
CỨU TIẾP THEO 
Trong nghiên cứu này, chúng tôi xây 
dựng một hệ thống điều khiển thông minh cho 
ngôi nhà dựa trên công nghệ nhận dạng giọng 
nói và máy học. Các mô hình máy học được 
vận dụng hiệu quả để xử lý các câu lệnh điều 
khiển, giúp cho hệ thống hoạt động thông 
minh và linh hoạt hơn so với các giải pháp tự 
động hóa cứng. Ngoài ra, giải pháp chúng tôi 
đề xuất cho thấy chính xác cao trong việc điều 
khiển thiết bị bằng giọng nói cũng như giúp 
cho con người có thể dễ dàng tiếp cận và sử 
dụng hệ thống (nhất là đối với những người 
già, người khuyết tật). Tuy nhiên, nghiên cứu 
này cũng còn một số hạn chế như bộ dữ liệu 
huấn luyện chưa đủ lớn nhất là đối với các dữ 
liệu tiếng Việt vì thế hệ thống vẫn có thể bị 
“đánh lừa” với các câu điều khiển thiết bị 
“lạ”. Với việc xây dựng thành công bộ xử lý 
trung tâm, hệ thống có thể kiểm soát các 
thông số của căn nhà thông qua các kết quả 
được thu thập từ các cảm biến, camera. Từ đó, 
hệ thống sẽ đưa ra các cảnh báo, lệnh điều 
khiển để giúp cho các thiết bị trong nhà hoạt 
động một cách ổn định. Ngoài ra, chúng tôi có 
thể xây dựng các ứng dụng khác như ứng 
dụng trả lời tự động bằng Google text to 
Speech (tương tự như hệ thống chatbox nhưng 
trả lời lại bằng giọng nói), nhận diện khuôn 
mặt khách khi khách ở trước cửa để thông báo 
cho chủ nhà v.v. Để làm được những ứng 
46 
Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 57 (04/2020) 
Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
dụng này chúng ta cần có tập dữ liệu đủ lớn 
cho việc huấn luyện mô hình. 
LỜI CẢM ƠN 
Công trình này được hỗ trợ bởi Học 
Viện Công nghệ Bưu chính Viễn thông và 
Trường Đại học Thủy Lợi. 
TÀI LIỆU THAM KHẢO 
[1] Felix, C. and Raglend, I.J., Home automation using GSM, International Conference on 
Signal Processing, Communication, Computing and Networking Technology, 21-22 
July 2011, Thuckafay, India. 
[2] Ramlee, R.A., Othman, M.A., Leong, M.H., Ismail, M.M. and Ranjit, S.S.S., Smart 
home system using android application, International Conference of Information and 
Communication Technology (ICoICT), 20-22 March 2013, Bandung, Indonesia. 
[3] Arriany, A.A. and Musbah, M.S., Applying voice recognition technology for smart 
home networks, International Conference on Engineering & MIS (ICEMIS), 22-24 Sept 
2016, Agadir, Marocco. 
[4] Kawarazaki, N. and Yoshidome, T., Remote control system of home electrical 
appliances using speech recognition, IEEE International Conference on Automation 
Science and Engineering (CASE), 20-24 Aug 2012, Seoul, South Korea. 
[5] Jain, S., Vaibhav, A. and Goyal, L., Raspberry Pi based interactive home automation 
system through E-mail, International Conference on Reliability Optimization and 
Information Technology (ICROIT), 6-8 Feb 2014, Faridabad, India. 
[6] D. V. Opdenbosch, M. Oelsch, A. Garcea, and E. Steinbach, A joint compression 
scheme for local binary feature descriptors and their corresponding bag-of-words 
representation, IEEE Visual Communications and Image Processing (VCIP), St. 
Petersburg, FL, USA, 2017. 
[7] Scholkopf, B., Platt, J., Shawe-Taylor, J., Smola, A., and Williamson, R., Estimating the 
support of a high-dimensional distribution, Neural Computation, 13(7):1443-1472, 2001. 
[8] Bounsiar, A. and Madden, M.G., Kernels for One-class Support Vector Machine, 
International Conference on Information Science & Applications (ICISA), 6-9 May 2014. 
[9] Gomez-Verdejo, V., Arenas-Garcia, J., Lazaro-Gredilla, M. and Navia-Vazquez, A., 
Adaptive One-Class Support Vector Machine, IEEE Transaction on Signal Processing, 
pp.2975-2981, June 2011. 
[10] Manevitz, L.M. and Yousef, M., One-class SVMs for Document Classification, Journal 
of Machine Learning Research 2.(1):139-154, 2002. 
[11] Wilson, E. and Tufts, D.W., Multilayer perceptron design algorithm, Proceedings of IEEE 
Workshop on Neural Networks for Signal Processing, 6-8 Sept 1994, Ermioni, Greece. 
[12] Alsmadi, M.K., Omar, K.B., Noah, S.A. and Almarsashdah, I., Performance 
Comparison of Multi-layer Perceptron (Back Propagation, Delta Rule and Perceptron) 
algorithms in Neural Networks, IEEE International Advance Computing Conference, 6-
7 March 2009, Patiala, India. 
[13] S. D. Patil and P. S. Sanjekar, Musical Instrument Identification Using SVM , MLP& 
AdaBoost with Formal Concept Analysis, 1st International Conference on Intelligent 
Systems and Information Management (ICISIM), 2017, Aurangabad, India. 
[14] Haykin, Neural Networks: A Comprehensive Foundation. New York, 1994. 
Tác giả chịu trách nhiệm bài viết: 
TS. Nguyễn Tất Bảo Thiện 
Trường Đại học Thủy lợi. 
Email: baothien@tlu.edu.vn 

File đính kèm:

  • pdfmot_giai_phap_ung_dung_tri_tue_nhan_tao_cho_nha_thong_minh.pdf