MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ 5 TÊN ĐỀ TÀI TRỢ LÍ ẢO Sinh viên thực hiện BÙI ĐÌNH NHÃ HOÀNG VĂN TÚ LÂM Lớ[.]
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ TÊN ĐỀ TÀI: TRỢ LÍ ẢO Sinh viên thực hiện: BÙI ĐÌNH NHÃ HỒNG VĂN TÚ LÂM Lớp: 18IT3 Giảng viên hướng dẫn: ThS DƯƠNG THỊ MAI NGA Đà Nẵng, tháng 05 năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ TÊN ĐỀ TÀI: TRỢ LÍ ẢO Sinh viên thực hiện: BÙI ĐÌNH NHÃ Mã: 18IT160 HOÀNG VĂN TÚ LÂM Mã: 18IT160 Lớp: 18IT3 Giảng viên hướng dẫn ThS DƯƠNG THỊ MAI NGA Đà Nẵng, tháng 05 năm 2021 ii NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… iii LỜI CẢM ƠN Với hướng dẫn tận tình ThS.Dương Thị Mai Nga, chúng em hồn thành báo cáo đồ án Tuy cố gắng tìm hiểu, phân tích thiết kế cài đặt hệ thống không tránh khỏi thiếu sót Em mong nhận thơng cảm góp ý q thầy q Em xin trân trọng cảm ơn Sinh viên, BÙI ĐÌNH NHÃ, HOÀNG VĂN TÚ LÂM iv MỤC LỤC Trang MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Cấu trúc đồ án Chương 1: TỔNG QUAN 2 Khái niệm .2 1.1 Trợ lý ảo 1.2 Google Assistant 1.3 Ưu điểm, nhược điểm Ngôn ngữ sử dụng 2.1 Python .5 2.2 Lịch sử đời Chương 2: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG Sơ đồ Use Case tổng thể Lưu đồ thuật toán .8 Xác định tác nhân Xác định trường hợp sử dụng UserCase 4.1 Người dùng .9 Đặc tả trường hợp sử dụng 5.1 Ca sử dụng hiển thị thời gian .9 5.2 Ca sử dụng xem thời tiết 10 5.3 Ca sử dụng nghe nhạc Youtube 11 5.4 Chức tìm kiếm 12 5.5 Xem định nghĩa từ Wikipedia 13 5.6 Đọc báo 14 Chương 3: TRIỂN KHAI XÂY DỰNG .16 Thiết Lập Môi Trường 16 1.1 Import Các Thư Viện .16 1.2 Khai Báo Biến Mặc Định 17 v Phân Tích Thuật Toán 17 KẾT LUẬN 21 Kết đạt 21 Kết chưa đạt 21 Hướng nghiên cứu 21 TÀI LIỆU THAM KHẢO .22 vi DANH MỤC HÌNH Trang Hình 1-1: Các trợ lý ảo Smartphone .2 Hình 1-2: Sử dụng Google Assistant điện thoại .4 Hình 1-1: Sơ đồ User Case Hình 2-1: Lưu đồ thuật tốn xử lí Hình 5-1: Sơ đồ Use Case chi tiết hiển thị thời gian 10 Hình 5-2: Sơ đồ Use Case chi tiết xem thời tiết 11 Hình 5-3: Sơ đồ Use Case chi tiết nghe nhạc 12 Hình 5-4: Sơ đồ Use Case chi tiết tìm kiếm 13 Hình 5-5: Sơ đồ Use Case chi tiết xem định nghĩa 14 Hình 5-6: Sơ đồ Use Case chi tiết đọc báo 15 Hình 2-1: Cơ chế hoạt động thuật tốn nhận diện giọng nói 18 Hình 2-2: Chuyển âm thành số 18 Hình 2-3: Tái tạo sóng âm gốc từ mẫu tách biệt .19 Hình 2-4: Tiền xử lý âm 19 Hình 2-5: Kết tiền xử lý âm 19 Hình 2-6: Minh họa nhận diện ký tự VD 20 vii MỞ ĐẦU Đặt vấn đề Nhu cầu kiểm soát hệ thống thiết bị điện điều khiển thiết bị thông minh ngày phổ biến kiểm tra trạng thái đèn, quạt, máy lạnh, thiết bị khác, mở hay tắt thiết bi ̣điện nhà từ xa thiết bị điện thoại di động, thiết bị máy tính thơng qua mạng internet Hiện với khoa học phát triển với trợ lý ảo thông minh hỗ trợ AI như: Google Assistant (Google), Alexa (Amazon), Siri (Apple), Cortana (Microsoft), … Các thiết bị ngơi nhà thơng minh ngồi điều khiển qua app điện thoại, web, … điều khiển qua trợ lý ảo dần phát triển Vì vậy, em tìm hiểu, nghiên cứu, chọn đề tài: “Trợ lí ảo” để làm đồ án sở cho mơn học Mục tiêu đề tài Kết nghiên cứu từ đề tài giúp nhóm em có nhiều kinh nghiệm để sau kết thúc môn học chúng em có đủ khả nghiên cứu chế tạo hồn chỉnh để tạo trợ lý ảo giúp cho học sinh sinh viên người có nhu cầu sử dụng Cấu trúc đồ án - Chương 1: Tổng quan Chương 2: Phân tích, thiết kế hệ thống Chương 3: Triển khai xây dựng Chương 1: TỔNG QUAN Khái niệm Trợ lý ảo Trợ lý ảo khái niệm lĩnh vực công nghệ, phần mềm, lần đầu biết tới giới vào năm 1961 Hội chợ Thế giới Seattle, dạng thiết bị có tên IBM Shoebox, với khả nhận diện giọng nói Đến năm 1970, Bộ Quốc phòng Hoa Kỳ quan DARPA Bộ phát triển cơng cụ "Harpy" nhận dạng khoảng 1000 từ, tương đương vốn từ vựng đứa bé tuổi Phải tới năm 1990, trợ lý ảo nhà sản xuất hàng đầu Microsoft, IBM, Philips Lernout & Hauspie thức nghiên cứu áp dụng máy tính cá nhân Trong đó, kiện mắt điện thoại thông minh IBM Simon vào năm 1994 đặt móng cho trợ lý ảo thơng minh mà ta biết tới ngày Năm 2011, trợ lý ảo số đại cài đặt điện thoại thông minh Siri, giới thiệu tính iPhone 4S Apple Từ năm 2017 đến nay, trợ lý ảo bắt đầu người dùng ý nhờ ứng dụng thực tiễn, đặc biệt đầu tư mạnh tay từ tập đoàn lớn Amazon với Alexa, Google với Google Assistant hay Apple với Siri Hình Khái niệm bản-1: Các trợ lý ảo Smartphone Từ hiểu đơn giản trợ lý ảo phần mềm, công cụ xây dựng dựa tảng trí thơng minh nhân tạo (AI) nhà phát triển hệ điều hành, hay hãng cơng nghệ tích hợp sâu vào hệ điều hành với mục đích hỗ trợ người dùng thiết bị dễ dàng thói quen mà người dùng thường làm thiết bị Google Assistant Google Assistant trợ lý cá nhân ảo phát triển Google giới thiệu hội nghị nhà phát triển hãng vào tháng năm 2016 Khơng giống Google Now, Google Assistant tham gia trò chuyện hai chiều Assistant ban đầu đưa vào ứng dụng nhắn tin Google Allo, loa thông minh Google Home Sau thời gian có mặt hai điện thoại thơng minh Pixel Pixel XL hãng, Google bắt đầu triển khai Assistant thiết bị Android khác vào tháng năm 2017, bao gồm điện thoại thông minh bên thứ ba thiết bị Android Wear, phát hành dạng ứng dụng riêng biệt IOS vào tháng Cùng với mắt phát triển phần mềm (SDK) vào tháng năm 2017 cho phép nhà phát triển bên thứ ba tự xây dựng phần cứng tương thích với Google Assistant, Assistant tiếp tục mở rộng hỗ trợ cho lượng lớn thiết bị, bao gồm xe thiết bị nhà thơng minh Các chức Assistant bổ sung nhà phát triển bên thứ ba Người dùng chủ yếu tương tác với Google Assistant qua giọng nói tự nhiên, nhập qua bàn phím Các chức tương tự Google Now, tìm kiếm Internet, đặt kiện lịch báo thức, điều chỉnh cài đặt phần cứng thiết bị người dùng hiển thị thông tin từ tài khoản Google người dùng Google bổ sung tính khác cho Assistant bao gồm khả nhận diện vật thể thu thập thông tin vật thể thông qua máy ảnh thiết bị, với việc hỗ trợ mua sản phẩm chuyển tiền Chương 2: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG Sơ đồ Use Case tổng thể Hình Sơ đồ Use Case tổng thể-3: Sơ đồ User Case Lưu đồ thuật tốn Hình Lưu đồ thuật tốn-4: Lưu đồ thuật tốn xử lí Xác định tác nhân Người dùng: người dùng sử dụng trợ lý ảo với chức chảo hỏi, nghe nhạc, xem thời tiết, tìm kiếm, … Xác định trường hợp sử dụng UserCase Người dùng Hiển thị thời gian Chức xem dự báo thời tiết Chức phát nhạc youtube Chức tìm kiếm google Chức định nghĩa từ điển Wikipedia Chức đọc báo Đặc tả trường hợp sử dụng Ca sử dụng hiển thị thời gian Tác nhân: Người dùng Điều kiện trước: Người dùng sử dụng trợ lí ảo Điều kiện sau: Hiển thị thời gian Mô tả: Người dùng yêu cầu hiển thị thời gian Các kiện chính: Hành động tác nhân Yêu cầu hiển thị thời gian Hành động hệ thống Hiển thị đọc thời gian Bảng Đặc tả trường hợp sử dụng-1: Xử lí kiện hiển thị thời gian Ca sử dụng hiển thị thời gian biểu diễn biểu đồ sau: Hình Đặc tả trường hợp sử dụng-5: Sơ đồ Use Case chi tiết hiển thị thời gian Ca sử dụng xem thời tiết - Các tác nhân: Người dùng Điều kiện trước: Người dùng sử dụng hệ thống Điều kiện sau: Thông tin thời tiết địa điểm Mô tả: Người dùng yều xem thời tiết địa điểm định Các kiện chính: Hành động tác nhân Hành động hệ thống Người dùng yêu cầu xem 2.thời Hệ thống yêu cầu địa điểm tiết 4 Hệ thống kiểm tra tên địa điểm t Người dùng đọc địa điểm H Hệ thống hiển thị đọc thời tiết Bảng Đặc tả trường hợp sử dụng-2: Xử lí kiện xem thời tiết - Ca sử dụng xem thời tiết biểu diễn biểu đồ sau: 10 Hình Đặc tả trường hợp sử dụng-6: Sơ đồ Use Case chi tiết xem thời tiết Ca sử dụng nghe nhạc Youtube - Các tác nhân: Người dùng Điều kiện trước: Người dùng sủ dụng trợ lý Điều kiện sau: Người dùng muốn nghe hát Mô tả: Người dùng u cầu hệ thống để tìm kiếm thơng tin hát - muốn nghe mở hát Các kiện chính: Hành động tác nhân Hành động hệ thống Người dùng yêu cầu hệ thống phát Hệ thống bật trình duyệt tìm kiếm nhạc phát hát Hệ thống hiển thị kết tìm kiếm Bảng Đặc tả trường hợp sử dụng-3: Xử lí kiện nghe nhạc - Ca sử dụng Tìm kiếm nhạc biểu diễn biểu đồ sau: Hình Đặc tả trường hợp sử dụng-7: Sơ đồ Use Case chi tiết nghe nhạc Chức tìm kiếm - Các tác nhân: Người dùng Điều kiện trước: Người dung sử dụng hệ thống Điều kiện sau: Người dùng yêu cầu tìm kiếm Mơ tả: Người muốn tìm kiếm thơng tin google Các kiện chính: 11 Hành động tác nhân Hành động hệ thống Người dùng muốn tìm kiếm thơng Hệ thống hiển thị form tìm kiếm thông tin tin mạng browser Bảng Đặc tả trường hợp sử dụng-4: Xử lí kiện tìm kiếm - Ca sử dụng xem thơng tin sản phẩm biểu đồ sau: Hình Đặc tả trường hợp sử dụng-8: Sơ đồ Use Case chi tiết tìm kiếm Xem định nghĩa từ Wikipedia - Các tác nhân: Người dùng Điều kiện trước: Người dùng sử dụng trợ lý Điều kiện sau: Người dùng có yêu cầu xem thông tin định nghĩa nhân vật - địa danh Mô tả: Người dùng yêu cầu định nghĩa địa danh cá nhân Các kiện Hành động tác nhân Người dùng muốn nghe định nghĩa Hành động hệ thống Hệ thống tìm kiếm hiển thị thơng tin đọc định nghĩa địa danh danh nhân Bảng Đặc tả trường hợp sử dụng-5: Xử lí kiện định nghĩa - Ca sử dụng định nghĩa biểu diễn biểu đồ sau: 12 Hình Đặc tả trường hợp sử dụng-9: Sơ đồ Use Case chi tiết xem định nghĩa Đọc báo - Các tác nhân: Người dùng Điều kiện trước: Người dùng sử dụng trợ lý ảo Điều kiện sau: Người dùng viên có nhu cầu đọc báo để xem thông tin tin - tức Mô tả: Người dùng yêu cầu hệ thống mở báo để xem thông tin tin tức Các kiện chính: Hành động tác nhân Hành động hệ thống Người dùng yêu cầu hệ thông mở Hệ thống mở browser trang báo trình duyệt đọc báo Bảng Đặc tả trường hợp sử dụng-6: Xử lí kiện đọc báo 13 - Ca sử dụng Đọc báo biểu diễn biểu đồ sau: Hình Đặc tả trường hợp sử dụng-10: Sơ đồ Use Case chi tiết đọc báo 14 Chương 3: TRIỂN KHAI XÂY DỰNG Thiết Lập Môi Trường System requirements: Python 3.7.6, Jupyter notebook, Anaconda Libraries: speech_recognition: Nhận dạng giọng nói time, datetime: Xử lý thời gian wikipedia: Tìm kiếm từ điển Wikipedia webbrowser, selenium, webdriver_manager, urllib: Truy cập web, trình duyệt (Chrome) gTTS: Chuyển văn thành âm Google (Chị Google) requests: Crawl thông tin từ web smtplib: Gửi Email giao thức SMTP re: Biểu thức quy (Regular Expression) os, sys, ctypes: Truy cập, xử lý file hệ thống playsound: Phát âm từ file mp3 json: Xử lý kiểu liệu JSON youtube_search: Tìm kiếm video Youtube Import Các Thư Viện import os import playsound import speech_recognition as sr import time import sys import ctypes import wikipedia import datetime import json import re import webbrowser import smtplib 15 import requests import urllib import urllib.request as urllib2 from selenium import webdriver from selenium.webdriver.common.keys import Keys from webdriver_manager.chrome import ChromeDriverManager from time import strftime from gtts import gTTS from youtube_search import YoutubeSearch Khai Báo Biến Mặc Định wikipedia.set_lang('vi') language = 'vi' path = ChromeDriverManager().install() Phân Tích Thuật Tốn def get_audio(): r = sr.Recognizer() with sr.Microphone() as source: print("Tôi: ", end='') audio = r.listen(source, phrase_time_limit=5) try: text = r.recognize_google(audio, language="vi-VN") print(text) return text except: print(" ") return 16 Cách dịch thuật hoạt động: Vấn đề lớn tốc độ nói biến thiên Một người nói "Hello" nhanh người khác nói "heeeellllllloooooo!" cực chậm, tạo âm dài với nhiều liệu Hình Phân Tích Thuật Tốn-11: Cơ chế hoạt động thuật tốn nhận diện giọng nói - Chuyển âm thành số: Để chuyển sóng âm thành số, cần ghi lại độ cao sóng khoảng Phương pháp gọi sampling - lấy mẫu, tốc độ lấy mẫu 16khz (16,000 mẫu giây) Hình Phân Tích Thuật Tốn-12: Chuyển âm thành số - Dựa vào lý thuyết Nyquist, sử dụng tốn học để tái tạo xác sóng âm gốc từ mẫu tách biệt - miễn lấy mẫu với tần số gấp đôi tần số âm muốn ghi lại Hình Phân Tích Thuật Tốn-13: Tái tạo sóng âm gốc từ mẫu tách biệt 17 - Tiền xử lý âm thanh: Sau sử dụng lý thuyết Nyquist trên, sóng âm trở thành dải liên tục Và sử dụng Fourier transform, lại tách dải liên tục thành notes riêng biệt (được tính tốn thuật tốn Fourier) để tìm tổng lượng note Hình Phân Tích Thuật Tốn-14: Tiền xử lý âm Kết bảng số thể độ lượng khoảng tần số, từ âm thấp tới âm cao Hình Phân Tích Thuật Tốn-15: Kết tiền xử lý âm - Nhận diện ký tự từ đoạn âm ngắn: Mạng nơron dự đoán từ nói “HHHEE_LL_LLLOOO”, nghĩ “HHHUU_LL_LLLOOO”, “AAAUU_LL_LLLOOO” Bỏ ký tự bị lặp, bỏ khoảng trống: VD: HHHEE_LL_LLLOOO => HE_L_LO => HELLO Có khả phân âm "Hello", "Hullo" "Aullo" Nếu nói chúng thật to, nghe giống với "Hello" Bởi dự đốn ký tự một, mạng nơron tìm cách đọc âm cách viết 18