Bài viết trình bày ứ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).
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 Trường Đại học Thủy lợi, Việt Nam Học viện Cơng nghệ Bưu Viễn thơng, Cơ sở TP Hồ Chí Minh, Việt Nam Ngày tồ soạn nhận 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 năm gần đây, với phát triển khoa học cơng nghệ, đặc biệt lĩnh vực trí tuệ nhân tạo len lỏi vào lĩnh vực sống mà nhà ngoại lệ Các nhà mà thiết bị điều khiển giọng nói xu hướng phát triển nhà thơng minh Trong báo này, chúng tơi có ứng dụng thêm mơ hình máy học vào nhà điều khiển thiết bị giọng nói nhằm tăng cường tính xác tính linh hoạt hệ thống (ví dụ người điều khiển nói “ý định điều khiển” gần giống với lập trình hệ thống điều khiển hiểu thực hiện) Với việc ứng dụng mơ hình máy học mạng nơ ron nhiều lớp, véc-tơ hỗ trợ lớp chúng tơi xây dựng xử lý trung tâm làm nhiệm vụ phân loại liệu đưa đị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ợ 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 ĐẶT VẤN ĐỀ Nhà thông minh nhà tích hợp phương pháp, hệ thống nhằm vận hành kiểm soát thiết bị điện tử để giảm thiểu hoạt động người mức tối thiểu Nhà thông minh thiết kế phát triển để điều khiển giám sát thiết bị khác đèn, cảm biến nhiệt độ, độ ẩm, thiết bị phát khói cháy hệ thống an ninh [1] Một ưu điểm bật nhà thông minh thiết bị nhà điều khiển quản lý dễ dà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ông ty công nghệ lớn giới phát triển ứng dụng phục vụ cho nhà thông minh Google Assistant Google, HomeKit Apple v.v Tại Việt Nam, công ty công nghệ phát triển sản phẩm Bkav Smarthome, nhà thông minh Lumi Các sản phẩm thường tập trung vào việc điều khiển thiết bị từ xa thông qua thiết bị di động, công tắc cảm biến hay qua ứng dụng tảng di động Đã có nghiên cứu việc ứng dụng trí tuệ vào nhà thơng minh mà điển hình việc sử dụng giọng nói để điều khiển thiết bị nhà [3] [4] Aml A Arriany Mohamed S Musbah đề xuất giải pháp điều khiển thiết bị nhà giọng nói thơng qua tự động nhận diện giọng nói, xử lý trung tâm điều khiển trung tâm để điều khiển thiết bị đèn, quạt Noriyuki Kawarazaki Tadashi Yoshidome xây dựng hệ thống điều khiển thiết bị giọng nói thơng qua PMRC (Programmable multi remote controller) Khi người điều khiển gửi lệnh giọng nói đến hệ thống, PMRC gửi tín hiệu đến thiết bị điện dân dụng để điều khiển chúng Điểm chung nghiên cứu việc tập trung xây dựng mơ hình điều khiển thiết bị từ xa giọng nói Tức người điều khiển thiết bị nhà giọng nói chúng chuyển dạng văn để so sánh với từ khóa lập trình sẵn từ trước (như tắt đèn, mở đèn, …) Trong báo này, chúng tơi tập trung xây dựng mơ hình máy học để xử lý liệu văn thu từ nhận dạng giọng nói nhằm tăng cường xác linh hoạt hệ thống điều khiển thiết bị thơng qua giọng nói (ví dụ chuỗi điều khiển nhận “bật điện lên” hệ thống trên, chuỗi thu khơng trùng với “từ khóa” hết Vì hệ thống không điều khiển thiết bị, việc gây khó khăn cho người sử dụng họ phải nhớ từ khóa để điều khiển thiết bị) Với việc áp dụng mơ hình máy học vào việc phân tích liệu văn thu được, chúng tơi giúp hệ thống điều khiển “hiểu” ý muốn người nhằm tăng tính xác linh hoạt cho hệ thống MÔ HÌNH ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NĨI Mơ hình điều khiển thiết bị nhà giọng nói bao gồm xử lý liệu mô tả Hình 1: Bộ chuyển đổi giọng nói thành văn với nhiệm vụ biến đổi giọng nói thành văn Bộ xử lý trung tâm gồm mơ hình máy học có chức phân loại văn thu từ nhận dạng giọng nói Bộ điều khiển trung tâm nơi kết nối với thiết bị đèn, quạt, cửa nhận lệnh điều khiển từ xử lý trung tâm Hình Mơ hình điều khiển thiết bị nhà giọng nói 2.1 Bộ chuyển đổi văn thành giọng nói Hệ thống nhận diện giọng nói hệ thống có khả nhận dịch lệnh thu từ giọng nói người Nhận dạng giọng nói gồm thuật ngữ chính: Voice Recognition liên quan đến việc xác định giọng nói xác cá nhân đó, tương tự phương pháp sinh trắc học Speech Recognition việc xác định từ ngữ câu dịch chúng sang ngôn ngữ máy tính Với báo này, chúng tơi xây dựng chuyển đổi giọng nói thành văn dựa tảng Google Cloud Speech API (Google Speech API dịch vụ cho phép chuyển đổi giọng nói thành văn hỗ trợ ngơn ngữ Tiếng Việt) Nhiệm vụ của nhận diện giọng nói chuyển đổi giọng nói đầu vào thành văn gửi chúng lên xử lý trung tâm 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 2.3 Bộ điều khiển trung tâm Hình Google Speech API 2.2 Bộ xử lý trung tâm Chúng sử dụng server có cài hệ điều hành Linux để xử lý thông tin nhận từ chuyển đổi giọng nói thành văn Các văn nhận phân loại theo tiêu chí sau: Máy tính nhúng thiết bị, hệ thống thiết kế để phục vụ cho yêu cầu, ứng dụng chức định ứng dụng nhiều 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 máy tính nhúng chi phí thấp, kích thước nhỏ gọn, dể sử dụng Chính sử dụng Raspberry Pi để làm điều khiển trung tâm đủ mạnh để chạy máy chủ hoạt động đa nhiệm, có hỗ trợ kết nối internet cài hệ điều hành để chạy số ứng dụng phần mềm phù hợp cho việc thiết kế nghiên cứu Ngồi ra, chúng tơi cịn sử dụng đèn LED để mơ hình hóa thiết bị điện nhà đèn, quạt, cửa Các văn thu có phải câu lệnh điều khiển thiết bị câu nói thơng thường Nếu chúng câu lệnh điều khiển thiết bị chúng điều khiển thiết bị nào? Để giải câu hỏi trên, chúng tơi lựa chọn hai mơ hình máy học OneclassSVM Multi-layer Perceptron Việc lại lựa chọn hai mơ hình chúng tơi trình bày chi tiết mục 3.2 3.3 Sau liệu văn đầu vào tiền xử lý trích rút đặc trưng đưa vào hai mơ hình máy học OneclassSVM Multi-layer Perceptron để phân loại liệu theo mơ hình giải thuật Hình Hình Raspberry Pi Raspberry Pi bo mạch máy tính đơn giản phát triển Anh Raspberry Pi Foundation với mục đích giảng dạy khoa học máy tính trường [5].Trên bo mạch Raspnerry Pi có thành phần: CPU, GPU, RAM, khe cắm, thẻ microSD, Wifi, Bluetooth cổng USB Sau cài đặt hệ điều hành vào thẻ SD gắn vào SD card, thực kết nối với mạng thông qua cổng LAN Raspberry Pi đặt IP tĩnh dễ dàng kết nối quản lý sau Hình Mơ hình lưu đồ thuật toán xử lý trung tâm 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 mơ hình máy học cần có phép biến đổi để có véc-tơ đặc trưng phù hợp từ liệu thô ban đầu (các liệu thô văn bản, hình ảnh v.v) Q trình gọi Feature Engineering (trích chọn đặc trưng) thực tố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ế hầu hết liệu đầu vào liệu thô chưa qua xử lý chọn lọc Chúng ta cần phải tìm phép biến đổi để loại nhiễu (noise) đưa liệu thô với số chiều khác dạng chuẩn (cùng vector ma trận) Dữ liệu chuẩn phải đảm bảo giữ thông tin đặc trưng (features) liệu thơ ban đầu Ngồi ra, tùy thuộc vào tốn khác cần thiết kế phép biến đổi để có đặc trưng phù hợp Chúng tơi có tập liệu thô với khoảng 200 câu văn tiếng Việt dùng để điều khiển tắt/mở ba thiết bị đèn, quạt cửa Tập liệu thô mô tả Bảng Bảng Bảng tổng quát tập liệu huấn luyện liệu kiểm thử Tập liệu File chứa liệu batden.txt (chứa 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âu có “ý nghĩa” tắt đèn) Ví dụ: tắt đèn, sáng tắt đèn batquat.txt (chứa câu có “ý nghĩa” bật quạt) Ví dụ: bật quạt, mở quạt … Tập liệu huấn tatquat.txt luyện (chứa câu có “ý nghĩa” tắt quạt) Ví dụ: tắt quạt đi, tắt quạt Tập liệu File chứa liệu test_accept.txt (chứa tập liệu thuộc loại câu lệnh điều khiển thiết bị) Ví dụ: tắt bóng đèn giúp tôi, không tắt điện … Tập liệu kiểm test_fail.txt thử (chứa tập liệu 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, thực số bước sau: Tập liệu huấn luyện (data training) lấy ngẫu nhiên ¾ từ tập liệu thô ban đầu Tiền xử lý văn tiếng Việt Trích chọn đặc trưng: tùy thuộc vào mơ hình sử dụng mà lựa chọn đặc trưng phù hợp Đối với báo này, sử dụng hai mơ hình máy học OCSVM Multi-layer Perceptron Q trình trích chọn đặc trưng mơ hình chúng tơi trình bày mục 3.2 3.3 Mơ hình OCSVM: mơ hình máy học có giám sát Tuy nhiên đặc trưng OCSVM nên liệu đầu vào véc-tơ đặc trưng (features vector) Mơ hình Multi-layer Perceptron: mơ hình máy học có giám sát liệu đầu vào cặp (feature vector, label) với quy định sau: Bảng Ý nghĩa nhãn mơ hình MLP mocua.txt (chứa câu có “ý nghĩa” mở cửa) Ví dụ: mở cửa, không mở cửa đi, mở cửa giúp … Nhãn Nhóm Bật đèn Tắt đèn dongcua.txt (chứa câu có “ý nghĩa” đóng cửa) Ví dụ: đóng cửa, đóng cửa đi, khép cửa lại … Bật quạt Tắt quạt Mở cửa Đó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 Trong giai đoạn kiểm thử (testing), tập liệu kiểm thử (data testing) lấy ngẫu nhiên ¼ liệu thô ban đầu thêm vào số câu văn tiếng Việt không liên quan đến việc điều khiển thiết bị đèn, quạt cửa Tập liệu kiểm thử đưa qua bước tiền xử lý, trích chọn đặc trưng sau đưa qua mơ hình máy học thiết kế giai đoạn huấn luyện Kết văn tiếng Việt phân loại theo yêu cầu tốn Mơ hình OCSVM: nhãn đầu liệu kiểm thử thuộc loại câu lệnh điều khiển thiết bị liệu tiếp vào mơ hình Multilayer Perceptron Nếu nhãn đầu -1 liệu kiểm thử 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 tương ứng với lệnh điều khiển giới thiệu bảng 3.1 Tiền xử lý véc-tơ hóa liệu Tiếng Việt Tiền xử lý liệu bước việc xử lý ngôn ngữ tự nhiên bao gồm số bước sau: - Làm sạch: loại bỏ nhiễu liệu đầu vào (nhiễu ký tự đặc biệt, thẻ html, v.v) - Tách từ câu: tiếng Việt có số từ từ đơn khơng có nghĩa mang ý nghĩa khác chúng ghép với từ khác có nghĩa - Chuẩn hóa từ: chuẩn hóa dạng ký tự viết hoa, viết thường, kiểu chữ v.v - Loại bỏ stop words: loại bỏ từ không cần thiết, quan trọng Trong Tiếng Việt, xét đến câu lệnh điều khiển thiết bị loại bỏ số từ “tôi”, “làm ơn”, “với”, v.v Trong báo này, thực tiền xử lý văn tiếng Việt tập liệu huấn luyện dựa thư viện có sẵn ngơn ngữ lập trình Python Từ xây dựng mơ hình tiền xử lý cho liệu đầu vào hệ thống điều khiển thiết bị 39 Ví dụ: tập văn cần tiền xử lý gồm câu thuộc tập liệu data_input: data_input= ['Tắt đèn', 'trời sáng rồi, không tắt điện đi!', 'tắt đèn giúp với',…] Chúng tiến hành loại bỏ nhiễu chuẩn hóa từ thuộc tập liệu dựa vào thư viện gensim có sẵn Python Thư viện bỏ dấu câu (,.#! …) chuẩn hóa từ câu Do tập liệu data_input thuộc dạng danh sách nên sử dụng hàm for để xử lý phần tử danh sách Kết chúng tơi lưu lại biến temp Sau đó, tiếp tục sử dụng thư viện pyvi ViTokenizer để nối từ ghép có nghĩa tiếng Việt Các từ nối có nghĩa có dấu gạch nối từ (ví dụ: tắt_đèn,…) data_train = []; for i in range(0,len(data_input)): temp=gensim.utils.simple_preprocess(data_i nput[i]); data_train.append(ViTokenizer.tokenize(' '.join(temp))); Kết q trình loại bỏ nhiễu, chuẩn hóa tách từ câu tập liệu data_train data_train = ['tắt_đèn', 'trời sáng không tắt điện đi', 'tắt_đèn giúp tơi với',…]; Do câu có nhiều từ không liên quan đến việc phân loại điều khiển nên bỏ bớt từ Chúng có tập tin chứa stopword tiếng Việt (tôi, tớ, cậu, ….) Dựa vào tập tin stopword này, bỏ bớt từ không cần thiết cho trình phân loại liệu stopword = ['tôi','rồi','với','giúp',…]; for i in range(0,len(data_train)): words_segment = data_train[i]; for j in stopword: words_segment=words_segment.replace(j," "); words_segment=''.join(words_segment.split()); data_train[i] = words_segment; 40 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 cuối tập liệu chuẩn hóa làm đầu vào cho việc véc-tơ hóa liệu data_train= ['tắt_đèn', 'trời sáng khơng tắt điện đi', 'tắt_đèn',…] - Véc-tơ hóa liệu: chuyển câu, từ thành dạng véc-tơ Đây bước quan trọng viêc tiền xử lý ngôn ngữ tự nhiên, kết trình điểm liệu biểu diễn véc-tơ, véc-tơ gọi feature vector (véc-tơ đặc trưng) có độ dài Để chuyển đổi văn tiếng Việt thành véc-tơ chúng tơi sử dụng phương pháp Bag of Words để đưa liệu dạng véc-tơ có độ dài [6] Phương pháp Bag-of-words phương pháp tạo từ điển gồm tất từ xuất tập câu liệu đầu vào Các từ kèm với số index Dựa vào từ điển này, mơ hình tiến hành tạo véc-tơ lưu trữ số lần xuất từ từ điển tương ứng với câu Số chiều vec-tơ tương ứng với số lượng từ từ điển Ví dụ: data_train = ['tắt_đèn', 'trời sáng không tắt điện đi', 'tắt_đèn giúp với',…]; Chúng sử dụng thư viện sklearn Python để thực vec-tơ hóa Đây thư viện có module hỗ trợ cho việc véc-tơ hóa liệu văn vectorizer= CountVectorizer() vectorizer.fit(data_train) Module tạo từ điển bao gồm tất từ xuất liệu đầu vào data_train vectorizer.vocabulary_ {'không': 0,'sao': 1,'sáng': 2,'trời': 3,'tắt': 4,'tắt_đèn': 5,'đi': 6,'điện': 7, …} Véc-tơ hóa câu tập data_train, ma trận véc-tơ đặc trưng tương ứng Các véc-tơ có số chiều với số phần tử có từ điển vector=vectorizer.transform(data_train).tode nse() matrix([[0, 0, 0, 0, 0, 1, 0, 0],[1, 1, 1, 1, 1, 0, 1, 1],[0, 0, 0, 0, 0, 1, 0, 0],…] Tùy thuộc vào loại mơ hình máy học mà lựa chọn đặc trưng cho phù hợp với nhu cầu mô hình Cách lựa chọn véc-tơ đặc trưng cho mơ hình máy học One-class SVM Neural Network chúng tơi trình bày phần xây dựng mơ hình máy học phần 4.2 Như vậy, từ liệu văn thô ban đầu, chuyển đổi liệu kích thước để làm liệu đầu vào cho thuật toán máy học 3.2 Mơ hình One-class SVM Phát biểu tốn Phân loại câu lệnh đầu vào có phải câu lệnh điều khiển thiết bị hay không? Giải toán Yêu cầu toán phân loại liệu đầu vào có phải liệu điều khiển thiết bị hay khơng Đây tốn phân loại lớp, phải tìm thuật toán mà liệu đưa vào, so sánh với liệu huấn luyện (ở câu lệnh điều khiển thiết bị) Nếu loại, mơ hình máy học trả lời “1”, cịn khơng “-1” Chính chúng tơi đề xuất lựa chọn mơ hình máy học One-class Support Vector Machine (OCSVM) Đây mơ hình máy học theo phương thức học có giám sát Scholkopf cộng đề xuất phù hợp cho toán phân loại lớp [7] Chúng tơi sử dụng mơ hình với mục đích loại liệu đầu vào không liên quan đến việc điều khiển thiết bị nhà “hôm trời nắng nhỉ” hay “tắt xe máy kìa” v.v Tập liệu huấn luyện mơ hình số câu lệnh điều khiển thiết bị “tắt điện đi”, “bật quạt lên nào” v.v Sau trình huấn luyện kết thúc mơ hình tạo “đường bao” bao quanh điểm liệu huấn luyệ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 Hình Phân loại One-class SVM [7] Như vậy, liệu vào mơ hình OCSVM này, liệu nằm đường bao tạo lúc huấn luyện (khu vực mang nhãn +1) có nghĩa liệu thuộc loại liệu điều khiển thiết bị, cịn liệu nằm ngồi đường bao liệu khơng quan trọng hệ thống điều khiển thiết bị (sẽ mang nhãn -1) bỏ qua Cơ sở toán học thuật tốn trình bày [8][9][10] Giả sử ta có tập huấn luyện với n điểm x1,…, xn không gian Rn Sử dụng hạt nhân kernel để ánh xạ điểm tới không gian mà khơng gian liệu tách siêu phẳng (hyperplane) Hình Ánh xạ điểm liệu lên khơng gian Sau đó, thực phân chia điểm liệu không gian từ điểm gốc (origin) tối đa hóa khoảng cách từ siêu phẳng (hyperplane) đến điểm gốc (origin) hàm tối thiểu hóa bậc hai: ,i , 2 n i i 1 (1) Trong (.( xi )) i , i 1, , n , i , i 1, , n ω vector siêu mặt phẳng (hyperplane), id1i2 với d 41 số chiều không gian mới, i biến slack, ρ bias khoảng cách từ gốc (origin) đến siêu phẳng (hyperplane), v∈ (0,1] Hàm (1) trả không gian chứa điểm thuộc tập huấn luyện Sau xác định siêu mặt phẳng (hyperplane) sử dụng hàm định (2) để xác định điểm liệu có thuộc tập huấn luyện hay không Nếu kết hàm định liệu loại với nhóm tập liệu huấn luyện, cịn -1 điểm liệu khơng loại với liệu huấn luyện f ( x) sgn((.( xi )) ) (2) 3.3 Mơ hình Multi-layer Perceptron Phát biểu toán Với liệu đầu vào câu lệnh điều khiển thiết bị làm để phân loại liệu điều khiển thiết bị nào? Giải toán Đây toán phân loại liệu vào lớp (trong báo lớp bao gồm: tắt đèn, bật đèn, tắt quạt, bật quạt, đóng cửa mở cửa) Đầu vào toán câu lệnh điều khiển, phải tìm mơ hình để phân loại liệu điều khiển thiết bị (đèn, quạt hay cửa) hành động (tắt hay mở) Có nhiều mơ hình đáp ứng u cầu mà số mơ hình Multi-layer Perceptron Đây mơ hình mạng Neural nhân tạo truyền thẳng nhiều lớp Mạng Neural nhân tạo (Artificial Neural Network - ANN) xuất phát từ việc mô mạng nơ-ron sinh học não người [11] [12] Mạng nơ-ron nhân tạo áp dụng cho nhiều lĩnh vực khác trường đại học, học viện hay ngành công nghiệp [13] [14] Đặc trưng mơ hình ANN nơ-ron (hay gọi perceptron) Một mạng nơ-ron nhân tạo thường có lớp: Input layer, Hidden layer Output layer Ở tầng, số lượng nơ-ron khác tùy thuộc vào cách giải tốn Nhưng thường tầng ẩn có số lượng nơ-ron Ngoài ra, nơ-ron 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 42 tầng thường liên kết đôi với để tạo thành mạng kết nối đầy đủ (fullconnected network) Các liên kết kèm theo trọng số (weight) đặc trưng cho tính kích hoạt nơ-ron HỆ THỐNG THỰC NGHIỆM 4.1 Chuẩn bị phần cứng Để xây dựng nhà thông minh điều khiển giọng nói cần chuẩn bị sau: server Linux: xử lý trung tâm webserver cho ứng dụng chuyển đổi văn thành giọng nói Raspberry Pi: điều khiển trung tâm kết nối với thiết bị Hình Mơ hình mạng Nơ-ron nhân tạo Hình Mơ hình Perceptron Mỗi nơ-ron tính tốn tổng input vào cách nhân giá trị input với trọng số (weight) tương ứng cộng thêm giá trị bias (b) công thức: i xi b đèn LED: đại diện cho thiết bị đèn, quạt, cửa Trong mơ hình này, thiết bị nhà thông minh mô tả đơn giản LED Việc đấu nối thiết bị (LED) vào Raspberry Pi theo thứ tự cho hình 9: Đèn đấu nối với chân GPIO 17, quạt đấu nối với chân GPIO 26 cửa đấu nối với chân GPIO 16 (3) i Cho x0 1, 0 b cơng thức (3) viết lại sau: T x (4) Nếu giá trị o vượt qua ngưỡng nơ-ron phát output ngược lại khơng Để định ngưỡng mơ hình máy học sử dụng hàm số gọi chung hàm kích hoạt (activation function), hàm kích hoạt hàm sigmoid, tanh, ReLU [14] Trong báo này, sử dụng hàm sigmoid để làm hàm định, hàm sigmoid có cơng thức sau: ( z) e z (5) Như vậy, giá trị output perceptron biểu diễn qua hàm kích hoạt f(z) sau: f ( z ) f ( T x) 1 exp( T x) (6) Hình Sơ đồ đấu nối thiết bị 4.2 Xây dựng mơ hình xử lý liệu 4.2.1 Mơ hình One-class SVM Tập liệu huấn luyện: tập liệu gồm 200 câu lệnh điều khiển tắt/mở thiết bị đèn, quạt, cửa lưu trữ dạng văn vào file tương trình bày Bảng Chúng xây dựng hàm readfile để đọc file chứa liệu huấn luyện lưu chúng vào biến data_train data_train = ['bật điện','bật bóng đèn','bật bóng điện', 'trời tối bật điện đi', 'trời tối bật đèn đi','trời tối không bật điện','tối bật điện lên đi', 'bật điện lên đi',….] Từ tập liệu này, tiến hành tiền xử lý theo bước trình bày mục 3.1 Trích chọn đặc trưng: sử dụng phương pháp Bag-of-word để chuyển đổi liệ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 thành véc-tơ Phương pháp Bag-ofword tạo từ điển gồm tất từ xuất 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ó số đặc trưng khơng cần thiết cho việc phân loại liệu điều khiển thiết bị “tối”, “rồi” v.v, số đặc trưng quan trọng việc phân loại “tắt”, “mở”, “đèn”, v.v Dựa vào việc tính tốn tần suất xuất từ từ điển chúng tơi loại bỏ bớt đặc trưng không cần thiết để tạo từ điển gồm đặc trưng quan trọng cho việc phân loại 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 có đặc trưng tốt cho việc phân loại liệu, tiến hành chuyển đổi liệu văn thành véc-tơ với hàm: X_train=vectorizer_svm.transform(data_trai n).todense() Kết hàm trả ma trận X_train chứa véc-tơ đặc trưng tương ứng với 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 loại mơ hình máy học có giám sát liệu đầu vào mơ hình véc-tơ đặc trưng liệu đầu nhãn -1 giải thích phần Với sở tốn học mơ hình trình bày mục 3.2 Chúng sử dụng thư viện Scikit Learning ngơn ngữ lập trình Python để xây dựng mơ hình One-class SVM Trong q trình huấn luyện, điều chỉnh thông số mô hình One-class SVM để đáp ứng việc phân loại liệu có phải liệu điều khiển thiết bị hay không với kernel thông số khác để chọn mơ hình giúp cho tập liệu 43 đạt kết tốt Kết kernel trình bày bảng Bảng Kết huấn luyện mơ hình Oneclass SVM với kernel khác Rbf 0.001 Tol 0.002 Nu X Degree(d) gamma(γ) 0.01 X coef0 (r) 64% Kết Poly 0.001 0.216 0.01 0.0 88% Sigmod 0.001 0.052 X 0.01 0.0 98% Linear 0.001 0.026 X X X 96.7% Trong đó, thơng số tol, degree, gamma, coef0 giữ ngun mơ hình Chúng tơi thực vịng lặp for để tìm giá trị nu giúp cho mơ hình đạt kết tốt đư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 tạo từ trước tập liệu so sánh với kết đầu mơ hình Chúng tơi tìm thơng số giúp cho mơ hình có kết phân loại tốt clf = svm.OneClassSVM(nu=0.052, kernel="sigmoid", tol =0.001, gamma=0.01) Với nu giới hạn training errors giới hạn support vectors, tol dung sai cho trình dừng, gamma hệ hố kernel Chạy thử tập liệu kiểm thử với mơ hình OCSVM vừa xây dựng Tập liệu bao gồm số câu lệnh thuộc loại câu lệnh điều khiển số câu không thuộc loại lưu file test_fail test_accept Sau q trình tiền xử lý trích chọn đặc trưng giống với tập liệu huấn luyện kết ma trận X_test chứa véc-tơ đặc trưng Để kiểm tra xác mơ hình chúng tơi tạo ma trận chứa nhãn phân loại tập liệu kiểm thử bằng cách dán nhãn liệu thuộc file test_accept -1 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 đưa tập liệu kiểm thử qua mơ hình OCSVM với hàm clf.predict(X_test) 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 trả ma trận y_pred chứa nhãn -1 mơ hình dự đốn số phần tử với số lượng câu lệnh thuộc tập liệu kiểm thử Từ ma trận này, tiến hành so sánh với ma trận nhãn label hàm accuracy_score (label, y_pred)*100 Kết bảng cho thấy mơ hình OCSVM có phân loại xác gần 100% toán phân loại liệu learning hỗ trợ sẵn ngôn ngữ Python Trong q trình huấn luyện mơ hình với ma trận véc-tơ đặc trưng X_train ma trận labels tương ứng hàm mlp.fit(X_train,lables) chúng tơi điều chỉnh thơng số để giúp cho mơ hình phân loại xác câu lệnh thuộc nhóm lệnh đáp ứng hiệu suất xử lý hệ thống 4.2.2 Mơ hình Multi-layer Perceptron MLPClassifier(hidden_layer_sizes=20,tol=0 001,activation='logistic',max_iter=100) Tập liệu huấn luyện 200 câu lệnh điều khiển thiết bị chia theo file tương ứng bảng Với bước tiền xử lý trình bày từ mục 3.1 Trích chọn đặc trưng: trích chọn đặc trưng loại mơ hình máy học khác Với liệu đầu vào mô hình MLP câu lệnh điều khiển từ câu lệnh có ý nghĩa giúp cho việc phân nhóm liệu dễ dàng Tương tự mơ hình OCSVM, chúng tơi sử dụng phương pháp Bag-of-words để véc-tơ hóa liệu đầu vào, việc lựa chọn đặc trưng mơ hình khác so với mơ hình OCSVM, từ “tối”, “sáng”, “lạnh” … khơng có nhiều ý nghĩa mơ hình OCSVM lại giúp mơ hình MLP phân loại xác số trường hợp Chính thế, véc-tơ đặc trưng mơ hình MLP có số chiều lớn véc-tơ đặc trưng 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 mơ hình máy học có giám sát, tức liệu vào cặp (feature vector, label) Ma trận labels tạo cách nhân ma trận np.one (ma trận 1) có số chiều số liệu tập liệu với giá trị tương ứng từ đến trình bày 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 sở tốn học mơ hình trình bày mục 3.3 Chúng tơi xây dựng mơ hình MLP với thư viện Scikit- Với hidden_layer_sizes đại diện cho số lượng tế bào nơ-ron lớp ẩn (hidden layer), tol dung sai cho việc tối ưu hóa, activation hàm hoạt động lớp ẩn, max_iter số lần lặp tối đa Khi liệu vào mơ hình dán nhãn đầu theo nhóm mà chúng phân loại dựa bảng Các nhãn đầu gửi xuống điều khiển trung tâm để thực lệnh điều khiển Chạy thử tập liệu kiểm thử với mơ hình MLP vừa xây dựng Chúng tơi lấy tập liệu kiểm thử từ file test_accept để tiền xử lý trích chọn đặc trưng tương tự tập liệu huấn luyện kết ma trận X_test chứa véc-tơ đặc trưng Sau chúng tơi tạo ma trận label nhãn “chuẩn” để so sánh với ma trận y_pred (là ma trận chứa nhãn điều khiển thiết bị tương ứng) thu đưa liệu kiểm thử qua mơ hình MLP Kết cho thấy mơ hình MLP có phân loại xác gần 100% 4.3 Kết thực nghiệm Chuẩn bị Chúng xây dựng mơ hình điều khiển thiết bị giọng nói - Mơ hình thứ sử dụng phương pháp từ khóa: xây dựng dựa nguyên lý báo [2] mơ hình thực tế Mơ hình bao gồm chuyển đổi giọng nói thành văn điều khiển trung tâm Bộ điều khiển trung tâm nhận liệu từ chuyển đổi giọng nói thành văn so sánh với “từ khóa” lập trình sẵn để đ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 - Mơ hình thứ hai sử dụng thuật tốn máy học: mơ hình bao gồm chuyển đổi giọng nói thành văn bản, xử lý trung tâm điều khiển trung tâm Chức nhiệm vụ các xử lý trình bày phần Thực nghiệm Chúng thực chạy song song hai mơ hình với đầu vào chuyển đổi giọng nói thành văn (Google Speed to Text) sử dụng chung cho hai mơ hình nhằm tăng tính khách quan việc đánh giá kết Thực 50 câu lệnh điều khiển thiết bị chuẩn bị từ trước môi trường n tĩnh (trong phịng kín, khơng có người xung quanh) mơi trường có tiếng ồn (mơi trường làm việc hàng ngày) Sau qua chuyển đổi giọng nói thành văn văn điều khiển lúc đưa vào hai mơ hình để điều khiển thiết bị Kết thực nghiệm trình bày bảng Bảng Kết thực nghiệm Mơ hình Mơi Nhận dạng Điều Tỷ lệ trường giọng nói khiển (50 đúng mẫu) Sử dụng so sánh từ khóa n Sử dụng tĩnh thuật tốn máy học Sử dụng so sánh từ khóa Có Sử dụng tiếng ồn thuật toán máy học 37 74% 47 94% 29 58% 38 76% 48 40 Từ kết bảng 4, chuyển đổi văn thành giọng nói cho liệu đầu vào giống với mơ hình sử dụng phương pháp so sánh từ khóa cho kết sai câu điều khiển không trùng với từ khóa lập trình từ trước Ví dụ: văn nhận “tắt đèn đi” hay “sáng không tắt điện đi” từ khóa “tắt đèn” Cả hai văn nhận có ý nghĩa “tắt đèn” khơng trùng khớp với từ khóa dẫn tới việc hệ 45 thống không điều khiển thiết bị theo ý muốn người điều khiển Trong đó, với mơ hình áp dụng thuật tốn máy học cho kết điều khiển xác Điều giúp cho việc giao tiếp người điều khiển thiết bị trở nên bớt nhàm chán người sử dụng điều khiển thiết bị câu nói khác mà khơng cần quan tâm câu nói từ khóa chưa Ngồi ra, kết điều khiển thiết bị giọng nói bị ảnh hưởng lớn chuyển đổi giọng nói thành văn nhận dạng sai phương pháp sử dụng từ khóa cần nhận diện sai từ khóa thơi kết điều khiển thiết bị khơng xác KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO Trong nghiên cứu này, xây dựng hệ thống điều khiển thông minh cho nhà dựa cơng nghệ nhận dạng giọng nói máy học Các mơ hình máy học vận dụng hiệu để xử lý câu lệnh điều khiển, giúp cho hệ thống hoạt động thông minh linh hoạt so với giải pháp tự động hóa cứng Ngồi ra, giải pháp chúng tơi đề xuất cho thấy xác cao việc điều khiển thiết bị giọng nói giúp cho người dễ dàng tiếp cận sử dụng hệ thống (nhất người già, người khuyết tật) Tuy nhiên, nghiên cứu số hạn chế liệu huấn luyện chưa đủ lớn liệu tiếng Việt hệ thống bị “đánh lừa” với câu điều khiển thiết bị “lạ” Với việc xây dựng thành cơng xử lý trung tâm, hệ thống kiểm sốt thơng số nhà thơng qua kết thu thập từ cảm biến, camera Từ đó, hệ thống đưa cảnh báo, lệnh điều khiển để giúp cho thiết bị nhà hoạt động cách ổn định Ngoài ra, chúng tơi xây dựng ứng dụng khác ứng dụng trả lời tự động Google text to Speech (tương tự hệ thống chatbox trả lời lại giọng nói), nhận diện khn mặt khách khách trước cửa để thông báo cho chủ nhà v.v Để làm ứ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 cần có tập liệu đủ lớn cho việc huấn luyện mơ hình LỜI CẢM ƠN Cơng trình hỗ trợ Học Viện Cơng nghệ Bưu Viễn thơng Trường Đại học Thủy Lợi TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 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 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 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 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 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 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 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 Bounsiar, A and Madden, M.G., Kernels for One-class Support Vector Machine, International Conference on Information Science & Applications (ICISA), 6-9 May 2014 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 Manevitz, L.M and Yousef, M., One-class SVMs for Document Classification, Journal of Machine Learning Research 2.(1):139-154, 2002 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 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, 67 March 2009, Patiala, India 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 Haykin, Neural Networks: A Comprehensive Foundation New York, 1994 Tác giả chịu trách nhiệm 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 ... việc ứng dụng trí tuệ vào nhà thơng minh mà điển hình việc sử dụng giọng nói để điều khiển thiết bị nhà [3] [4] Aml A Arriany Mohamed S Musbah đề xuất giải pháp điều khiển thiết bị nhà giọng nói... Smarthome, nhà thông minh Lumi Các sản phẩm thường tập trung vào việc điều khiển thiết bị từ xa thông qua thiết bị di động, công tắc cảm biến hay qua ứng dụng tảng di động Đã có nghiên cứu việc ứng dụng. .. cho nhà dựa công nghệ nhận dạng giọng nói máy học Các mơ hình máy học vận dụng hiệu để xử lý câu lệnh điều khiển, giúp cho hệ thống hoạt động thông minh linh hoạt so với giải pháp tự động hóa cứng