Mô-đun có chức năng chính là chuyển yêu cầu của người dùng từ giọng nói sang văn bản đề có thé xử lý yêu cầu đó, nếunhận dạng không tốt sẽ ảnh hưởng tới kết quả của các mô-đun phía sau,
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
PHAM TAN KHOA NGUYEN TRUNG NGHIA
KHOA LUAN TOT NGHIEP
NGHIEN CUU VA THIET KE HE THONG
Research and Implement Offline Vietnamese Virtual Voice
Assistant on Embedded Board
KY SU NGANH KY THUAT MAY TINH
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
PHAM TAN KHOA - 16520602 NGUYEN TRUNG NGHIA - 16520812
KHOA LUAN TOT NGHIEP
NGHIEN CUU VA THIET KE HE THONG
TRO LY AO TIENG VIET OFFLINE TREN NEN TANG
HE THONG NHUNG
Research and Implement Offline Vietnamese Virtual Voice
Assistant on Embedded Board
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN ThS PHAM MINH QUAN
TP HO CHi MINH, 2021
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
70/QD-DHCNTT ngày 27 tháng 01 năm 2021 của Hiệu trưởng Trường Dai học
Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Được sự phân công của quý thầy cô khoa Kỹ thuật máy tính, Trường Đại học
Công nghệ thông tin, sau hơn ba tháng học tập và làm việc, chúng em đã hoàn thành
Khóa luận tốt nghiệp “ Nghiên Cứu Và Thiết Kế Hệ Thống Trợ Lý Ảo Tiếng Việt
Offline Trên Nền Tang Hệ Thống Nhúng” Đề hoàn thành nhiệm vụ được giao,
ngoài sự nỗ lực học hỏi của bản thân còn có sự quan tâm, giúp đỡ tận tình của thầy
cô, gia đình và bạn bè.
Chúng em xin gửi lời cảm ơn quý báu đến quý thầy cô ở Khoa Kỹ thuật máy tính
- Trường Đại học Công nghệ thông tin đã nhiệt tình trong việc truyền đạt vốn kiếnthức quý báu giúp đỡ chúng em rất nhiều trong thời gian học tập tại trường Chúng
em xin chân thành cảm ơn thầy giáo — ThS Phạm Minh Quân, người đã tận tâm
hướng dẫn, chi bảo chúng em qua từng buổi học trên lớp cũng như những buổi nói
chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu khoa học Một lần nữa,chúng em xin chân thành cảm ơn thầy
Mặc dù bài khoá luận không tránh khỏi những thiếu sót, rất mong nhận đượcnhững ý kiến đóng góp quý báu của quý thầy cô giúp bài khoá luận của chúng emhoàn thiện hơn Lời sau cùng, chúng em xin kính chúc quý thay cô trong khoa Kỹthuật máy tính, cô Hiệu trưởng PGS TS Nguyễn Hoàng Tú Anh sức khoẻ, niềmtin, vững bước diu dắt chúng em trưởng thành
Trân trọng!
TP HCM, 05 tháng 03 năm 2021
Trang 5TOM TAT KHOA LUAN 001157 1(91005 3
Lý do chọn đề tài ¿- 2-52 2S SE EEEEEE12112112112171711111111 11111111111 cv 3
Chương 1 | TONG QUAN HE THONG TRỢ LY ẢO -2- 2 s52 5
1.1 Tổng quan hệ thống trợ lý 0 ecceecessesseessessessesssessessessesssessessessessssssessessesseesseeses 5Chương2 CO SỞ LÝ THUYÉT 2- 22 ++22++2E++Ex++ExtzE+erx+zrxrsrxee 8
2.1 Cấu trúc của một hệ thống phan hồi yêu cầu (chatbot) - 2 2-55: 8
2.1.1 Hiểu ngôn ngữ tự nhiên cssesseseessesssessessesseseessessestesesssssesneaee 11
2.1.2 Cơ sở dữ liệu Chabot - ccc 22 2222111111112 11 1111855111111 xe 15
2.2 Tổng quan hệ thong nhận dạng giọng nói 2-2 2 2+s+x+£++£++£+2 s22 16
2.2.1 Phân loại hệ thong nhận dang ZION nÓI - «+5 ««++s<++v+ssx+ 16
2.2.2 Phân tích giọng nói CUA IBƯỜII - - +1 13+ 1E **EEEEEESEsrersereseeereere 16
2.2.3 Các giải pháp cho nhận dạng giọng nói phổ biến . -:- 19
2.3 Tổng quan hệ thong chuyền văn bản sang giọng nói - 5-5-5: 16
2.3.2 Mô hình Transformer Trong Text To ŠSpeech - - «+ << <c<<++<++ 34
Chương 3 XÂY DỰNG TRỢ LÝ AO TƯ VAN TUYEN SINH 37
3.1 Bai todd oe 37
3.2 Xây dựng hệ thống nhận dang giọng nói End-to-End . - 37
3.2.1 Chuẩn bị dữ liệu - -+-+2++t2E tt tre 37
3.2.2 May ái 00) 0 38
3.3 Xây Dựng chatbot tư van tuyến sinh - 2-2-2 +52+E2+E+EEe£EzErrxerxerreee 40
Trang 63.4 Xây dựng hệ thống chuyền văn bản sang giọng nói Transformer và MelGAN
9290 aH((|:LL::-1A 45
3.4.1 Chuẩn bị dit liệu - 2: £ £+SE+EE£EE2EEEEEEEE211211271711211211 11212 re 45
3.4.2 Kay dung m6 hinh 0 45
Chuong 4 Kết Qua - Đánh Giá Thực Nghiệm -2¿©-2 2+cx+cxzzze 41
4.1 Kết quả thực nghiệm ¿- ¿ c©S9SE+SE9EE£EE2EEEEEEEE1EE12212112112171 2111 xe 47
4.1.1 Kết quả thực nghiệm từng mô-đun -2- 2 252+£2+E+zEe£xerxerxsreee 47
4.1.2 Kết quả thực nghiệm tổng thé trên board nhúng TXI - 51
4.2 Đánh giá - s25: 21221 2x21 21122127121121121111211211211112112112111111121 E1 51
6c 0 .rr ccaiiiảảỶÝÝẢ 524.4 Dinh hướng nghiên cứu tiếp theo -2- + +¿+++2x++£x++£x+2zxvzx+srxezrxere 52TÀI LIEU THAM KHẢO - - - St 3 EE2E9E9EEEE2EEE1EE5EEEEEE2EEE1111E1111EE 1xx 53
Trang 7DANH MỤC HINH VE
Hình 1.1: Cau trúc trợ lý ảo cơ bản - 2 s+2x+2E2EE2EE£EEEEEEEEEEEEEEEEEEEErrrkerreeg 5Hình 2.1: Cấu trúc của một chatbot co bản [ I Ï] << =++++<s++zeezeeeeeess 9
Hình 2.2: Thành phần chính của các chatbot cao cấp hơn [12] - s+ 10
Hình 2.3: Làm sạch text [24] - -< E11 E13 2211111131951 1111111983111 11116821111 ky 12
Hình 2.5: Chuan hóa từ [4] cceccescccccsscsscsssessessesssessessessessssssessessessusssessesssssesessessecsnsees 13
Hình 2.6: Loại bỏ stopwords [4] s11 TH HH 14 I0) :0/201/-uio0i 6017077 — + 14
Hình 2.8: Dữ liệu chatbot dưới dang json [3] .- 555555 *++k++eesseeeeeeeseeers 15
Hình 2.9: Cấu tạo thanh quản [3|] - - 5 5113231131113 1 911191111 11 1n kg 17
Hình 2.10: Mô phỏng các tần số kết hợp tạo ra tần số mới [25] - 19Hình 2.11: Biến đổi Fourier [ ] -: -c¿55++++2£xxttrxttttrrttrrrtrrrrrrtrrrrrrrrr 20Hình 2.12: Đặc trưng một nguyên âm trong miễn tần số [9] - 21Hình 2.13: Phân tích F1, F2, F3 cua một nguyên âm trong miễn tần số [9] 22Hình 2.14: Cửa số trượt trên tín hiệu âm thanh dé trích xuất đặc trưng [7] 23Hình 2.15: Sơ đồ trích xuất đặc trưng MFCC [7] -. ¿-¿©++++2cx+2z++zs+er++ 24Hình 2.16: Biểu đồ liên hệ Mel và tần số tai người nghe [7] -: -: 25Hình 2.17: Tach tần số FO ra khỏi tần số muốn lấy [7] -. : ¿z5+2=5+ 26Hình 2.18: Nhận dạng giọng nói bang s0 0/010 ằằ 27
Hình 2.19: Mô hình Tacotron Speech to Text [25 ] 5-cc + ++ssexssesesers 31
Hình 2.20: Cấu trúc mô-đun CBHG [23] - 2-2 2 SE+EE+E£EE+E£EE+EeEEeEerxererrrrs 32
Hình 2.21: Mang transformer trong text to speech [27] - -cs«c<<<+sxssexses 36
Hình 3.1: Cấu trúc một Chatbot 2552: 22vcctEEEtrrttEktrrtttterrrrirrrrirrree 41
Hình 3.2: Mau data chatbot tư van tuyên Sink ccccceccsscessessesssssessessessessessesseesseees 41Hình 3.3: Lam sạch text bang Regex c.ccccsscssesssesssesssesssssscssecssessusssecssecseessesssecsneess 42Hình 3.4: Bộ từ điển tri-grams — từ ghép bởi 3 chữ cái - 2: se +scczce¿ 43Hình 3.5: Từ điển stopwords tiếng VIiỆP - ¿55c tt E2 2112112121211 11 xe 43
Trang 8Test một số câu hội thoại - ¿2S t+E+E£EEEE+EEEEEEEEEEEEErEeEererkerereree 48
Đánh giá độ chính xác của mô hình - 55 + + *stsesereerseeeeeeree 48
Giá tri loss bộ dữ liệu 54h nói - <2 <1 + 22311 1E kereesssss 49
thé hiện biểu đồ giá trị train d_loss qua thời gian train . 50Biểu đồ đánh giá điểm MOS -2- 2-52 St E2 2112112121 50
Trang 9DANH MỤC TỪ VIET TAT
Từ viết Từ chuẩn Diễn giải
tắt
ASR Auto Speech Recognition Nhận dạng giọng nói tự động
CER Character Error Rate Tỉ lệ ký tự lỗi
CNN Convolution Neural Network Mang no-ron tich chap
MFCC | Mel Frequency Cepstral Coefficient | Đặc trưng hệ sô tân số quang phố
NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
NLU Natural Language Understanding Hiéu ngôn ngữ tự nhiên
PLP Perceptual Linear Prediction Dự đoán tuyên tính
RNN Recurrent Neural Network Mang no-ron
STT Speech to text Giong noi sang van ban
TTS Text to speech Van bản sang giọng nói
WER Word Error Rate Tỉ lệ từ lỗi
TF-IDE Term Frequency — Inverse Tần suất từ - Tan suất tài liệu
Document Frequency nghich
BOW Bag Of Word Túi từ
SVM Vector Support Machine Véc-tơ hỗ trợ máy
DSP Digital Signal Processing Xử lý tin hiệu số
HMM Hidden Markov Model Mô hình Markov ân
DNN Deep Neural Network Mạng nơ-ron sâu
ML Machine Learning Máy học
Trang 10AI Artificial Intelligence Tri tué nhan tao
Trang 11TOM TAT KHÓA LUẬN
Trợ lý ảo được sinh ra nhằm hướng tới sự tiện nghỉ của con người, giúp con người
xử lý các tác vụ hằng ngày một cách tự động như: Công thức nấu món ăn, hướngdẫn làm một việc gì đó, chỉ đường, đặt xe, bật tắt các thiết bị thông minh trong nhà,báo thức, cho đến việc hướng dẫn, tra khảo thông tin tại một số địa điểm cụ thê ví
dụ như địa điểm tham quan du lịch, sân ga, và trường học cũng nằm trong số đó.Các tân sinh viên, học sinh tham quan trong khuôn viên trường có câu hỏi về
chương trình đào tạo, chỉ tiêu, điểm chuẩn hoặc vị trí phòng ốc trong trường có thé
hoi truc tiép với một trợ lý ảo được dat đâu đó trong khuôn viên trường Đó là một
ví dụ cho ta thay sự tiện nghi cua trợ ly ảo Ở khóa luận, nhóm thực hiện thiết kếmột trợ ly ảo offline có thé trả lời một số câu hỏi liên quan đến Trường Đại học
Công nghệ thông tin.
Đề có thê thiết kế một trợ ly ảo, trước tiên ta phải phân tích cau tao trợ ly aothành các phan khác nhau Có rất nhiều mô-đun liên quan nhưng với mức độ cơ bảnthì trợ lý ảo thường có ba mô-đun chính: Nhận dạng giọng nói (chuyển văn bản
sang giọng nói), phản hôi yêu câu và chuyên văn bản sang giọng nói.
Đầu tiên là mô-đun nhận dạng giọng nói Mô-đun có chức năng chính là chuyển
yêu cầu của người dùng từ giọng nói sang văn bản đề có thé xử lý yêu cầu đó, nếunhận dạng không tốt sẽ ảnh hưởng tới kết quả của các mô-đun phía sau, từ đó ảnhhưởng tới độ chính xác của toàn bộ hệ thống Có rất nhiều phương pháp mô hìnhhóa đã được sử dụng dé đào tạo như mô hình no-ron và mô hình Markov, tần số cơ
bản FO và mô hình Markov, MFCC (Mel Frequency Cepstral Coefficient) và PLP
(Perceptual Linear Prediction), Ở day nhóm sử dụng một mô hình dễ triển khai đó
là End-to-End với Residual Convolutional Neural Networks (ResCNN) và
Bidirectional Recurrent Neural Networks (BiRNN) dé dao tạo Độ lớn của bộ dữliệu đào tạo anh hưởng rat lớn đến độ chính xác của mô hình Dé có độ chính xáctốt thì vài trăm giờ cho đến vài nghìn giờ nói là cần thiết Nhóm đã thực nghiệm bộ
dữ liệu Vivos 15 giờ nói đạt WER khoảng 45%; bộ đữ liệu 54 giờ nhóm tự tổng hợp
Trang 12gồm bộ Vivos 15 giờ nói và 39 giờ nói từ bộ đữ liệu của VinBigdata, kết quả WER
đạt 34%, CER đạt 12%.
Sau khi chuyên yêu cầu của người dùng sang văn bản thì ta xử lý và đưa ra hành
động phản hồi cho văn bản yêu cầu đó Mô-đun có thé hiểu là một “chat bot” tathường thấy, nhận văn bản và phản hồi văn bản Nhiệm vụ của nó là tìm ra câu trả
lời hoặc hành động phù hợp nhất với yêu cầu của người dùng Ta có thể dùng một
số kỹ thuật như: Naive Bayes, Decision Tree (Random Forest), Vector Support
Machine (SVM), Convolution Neural Network (CNN), Recurrent Neural Network
(RNN), Long Short-Term Memory (LSTM, Bi-LSTM) Ở mức độ cơ bản ở miềnđóng thì mô-đun là bài toán hồi quy (regression) hoặc cũng có thê là bài toán phân
loại (classification) vì đầu ra là những số nguyên có định tương ứng với câu tra lời
Ở đây nhóm sử dụng bài toán regression được xây dựng trong framework Tflearn.Với dữ liệu đào tạo là bộ 100 câu hỏi và trả lời liên quan đến Trường Đại học Công
Nghệ thông tin thì nhóm đạt độ chính xác 97%.
Mô-đun đầu ra cuối cùng là chuyển văn bản sang giọng nói, chuyên câu trả lời
tới người dùng qua giọng nói Các mô hình đã được áp dụng như Hidden Markov
model (HMM), Tacotron, Tacotron2 đã mang lai một số thành công nhất định Một
mô hình mới xuất hiện gần đây và nhóm quyết định sử dụng mô hình này, đó làTransformer kết hợp vocoder MelGAN Sau 20 ngày train liên tục nhóm đạt MOS
(Mean Opinion Score) ở mức 2.5.
Trang 13MỞ DAU
Trợ lý ảo là một cụm từ không còn xa lạ đối với nền công nghệ phát triển hiện
nay trên thế ĐIỚI Về cơ bản, trợ lý ảo là một dạng phần mềm, công cụ được xây
dựng dựa trên nền tảng của trí tuệ nhân tạo (AI) Phần mềm này sẽ được tích hợp
sâu vào các thiết bị điện tử như tivi, loa thông minh, máy tính dé hỗ trợ ngườidùng sử dụng thiết bi dé dàng và tiện lợi hơn
Một trợ lý ảo thông minh sẽ giúp bạn làm rất nhiều việc thông qua các câulệnh điều khiển mà không cần động tay, động chân như: Công thức nấu món ăn,hướng dẫn làm một việc gì đó, chỉ đường, đặt xe, bật tắt các thiết bị thông minhtrong nhà, bao thức Đặc biệt hơn, trợ lý ảo có thé phân tích hành động cua conngười dé đưa ra những câu lệnh chuan xác hơn trong tương lai Phan lớn các hãngcông nghệ đều tự tay tạo ra cho mình một trợ lý ảo riêng như: Google Assistant của
Google, Siri trên Iphone cua Apple, Alexa cua Amazon,
Ly do chon dé tai
Voi su bung nô cách mạng 4.0 thì nhu cầu đơn giản hóa mọi việc và tối ưu thờigian thao tác dang dan trở nên phô biến Thử đặt một câu hỏi: Với con người thitrong 3 công việc viết, đánh máy và nói thì chúng ta làm việc gì để tiết kiệm công
sức nhất Tất nhiên là Nói Vì sao? Một người bình thường trong một phút có théviết 30 từ, gõ 60 từ, nhưng có thé nói tới 150 từ [5] Vậy nên dé tối ưu công việc thi
chúng ta sẽ tối ưu việc nói Sự phát triển nhanh chóng của AI và học máy đã giúpphát triển công nghệ nhận dạng giọng nói, công nghệ này ngày càng đi sâu vào mọilĩnh vực trong cuộc sống Từ những điều trên, ta đã thấy rằng tại sao công nghệ điềukhiển giọng nói nên được coi là xu thế công nghệ hiện tại không chỉ bới những ông
lớn về công nghệ hay những người có niềm đam mê với AI mà các doanh nghiệpcũng đang ráo riết nâng cấp, tối ưu hệ thống bằng công nghệ giọng nói hay còn gọi
là trợ lý ảo.
Trang 14Trợ lý ảo có thê được đặt ở nhiều nơi, nhiều nhiệm vụ khác nhau như ghi nhận
dữ liệu và điều khiển hoạt động của nhà thông minh; ghi chú công việc, lên lịch làm
việc; Ngoài ra trợ lý ảo giúp tìm kiếm thông tin hoặc giải đáp thắc mắc tại các cơ
sở, điểm tham quan hoặc làm việc cũng là một ứng dụng rất có ích Trường Đại học
cũng có thể ứng dụng trợ lý ảo cho mình, phục vụ các bạn tân sinh viên về vấn đềtuyên sinh hoặc các đoàn tham quan giải đáp thắc mắc, tìm kiếm thông tin liên quanđến trường Trường Đại học Công nghệ thông tin là một nơi thích hợp dé triển khaimột hệ thống trợ lý ảo như vậy
Mục đích
Tìm hiểu về cấu trúc và các phần chính trong trợ lý ảo: Nhận dạng giọng nói; Xử
lý ngôn ngữ tự nhiên (NLP,NLU); Chuyển văn ban sang giọng nói; Các mạng
no-ron, mô hình huấn luyện trong học máy,
Nhóm tập trung nghiên cứu các bài toán trong trợ lý ảo ứng dụng trong miềnđóng (close domain) và theo mô hình truy vấn thông tin (Retrieval basedmodels) Mô hình truy xuất thông tin là mô hình trong đó: chatbot đưa ra những
phản hồi được chuẩn bị trước hoặc tuân theo những mô thức nhất định Các hệ
thống chatbot được triển khai trong thực tế phần lớn tuân theo mô hình truy xuấtthông tin và được áp dụng trong những miền ứng dụng nhất định
Sau cùng là phát triển một trợ lý ảo phục vụ cho việc tư vấn tuyên sinh Trường
Đại học.
Trang 15Chương 1 TONG QUAN HỆ THONG TRỢ LÝ AO
Chương này sé giới thiệu tổng quan về hệ thống tro lý ảo, cấu trúc các thànhphần và những vấn đề khi xây dựng hệ thống trợ lý ảo
1.1 Tổng quan hệ thống trợ lý ảo
Trợ lý ảo được cấu tạo từ rất nhiều mô-đun khác nhau, trong đó nhóm phân ra ba
mô-đun quan trọng nhất của trợ lý ảo, đó là: Nhận dạng giọng nói; Phản hồi yêu
câu; Văn bản sang giọng nói.
Các hệ thống nay đã được các tổ chức và cộng đồng xử lý ngôn ngữ tự nhiên ở
Việt Nam cố gang xây dựng trong nhiều năm qua, trong đó thi Vietnamese
Language and Speech Processing (VLSP) được xem là câu lạc bộ lớn nhất Cácnghiên cứu còn gặp rất nhiều khó khăn vì cấu trúc tiếng Việt rất khác và ít được chútrọng nghiên cứu như các ngôn ngữ phổ biến khác Vì vậy nên rất ít các công trìnhnghiên cứu hoặc tài liệu được công bố Da số các sản pham cũng chỉ dừng ở mức
online chứ chưa có nên tảng offline.
Người dùng có thể tùy chọn tương tác với trợ lý ảo bằng tin nhắn văn bản hoặc
giọng nói Lúc này sơ đô trợ lý ảo sẽ như sau:
iii Giọng nói Văn bản sang > u
F
Hình 1.1 Cấu trúc trợ lý ảo cơ bản
Hình 1.1 miêu tả luông dữ liệu trong trợ lý ảo Trong đó mô-đun quan trọng nhât là
mô-đun có chức năng phản hôi yêu câu người dùng Đâu vào và đâu ra của mô-đun
này đều là văn bản nên nếu không có hai mô-đun còn lại thì ta vẫn có thể tương tác
với trợ lý ảo Trợ lý ảo có thông minh hoặc phức tạp hay không phụ thuộc vào
Trang 16mô-đun nay Vì mô-mô-đun này nhóm xây dựng chỉ có chức năng phản hồi đoạn hội thoại
nên nó là một chatbot thông thường Nhóm xin phép gọi mô-đun này là mô-đun
Chatbot.
Hệ thống trải qua các bước cơ bản sau: tiền xử lý dataset như làm sạch text
(Regex, ), tách từ (longest matching, maximum matching, ) [14], loại bỏ
stopwords (ttr điển, TF-IDF), vector hóa từ (BOW, one-hot, TF-IDF, ) [21] [20][2] Mục dich là dé tạo dit liệu đầu vào tương ứng với dataset cho bước huấn luyện
mô hình Bước huấn luyện mô hình dùng dé tạo ra mô hình có thé dự đoán câu trả
lời cho các câu hỏi hoặc văn bản từ người dùng, ta có thé dùng một số kỹ thuật như:
Naive Bayes, Decision Tree (Random Forest), Vector Support Machine (SVM),
Convolution Neural Network (CNN), Recurrent Neural Network (RNN) [16], Long
Short-Term Memory (LSTM, Bi-LSTM) [2] Với dataset thi có thé là một tập các
câu hỏi — câu trả lời liên quan đên vân đê tuyên sinh được soạn sẵn.
Nhận dạng giọng nói
Từ trước đến nay, dé giao tiếp với máy tính ta phải sử dụng các thiết bi vật lý
như chuột, bàn phím, màn hình cảm ứng Trong khi đó, giọng nói là phương thức
giao tiếp được con người sử dụng hàng ngày, một phương thức vô cùng đơn giản vàtiện lợi Do là lý do các hệ thống nhận dạng giọng nói (Auto Speech Recognition -ASR) ra đời nhằm tăng sự tiện lợi trong việc giao tiếp người - máy Nhận dạng
giọng nói ghi nhận âm thanh giọng nói và cho ra chuỗi từ tương ứng với câu nói đó.
Xa hơn là khả năng hiểu giọng nói đó và thu thập yêu cầu người dùng
Hệ thống nhận dạng giọng nói giúp việc giao tiếp với người dùng linh động hơn
chứ không chỉ phụ thuộc vào việc nhập văn bản Phương pháp cơ bản cũng giống
như hệ thống trả lời tự động nhưng thay vì mô hình hóa văn bản thì ta mô hình hóa
âm thanh, sử dụng các phương pháp mô hình hóa như mô hình nơ-ron và mô hình
Markov, tần số co bản FO và mô hình Markov, MFCC (Mel Frequency CepstralCoefficient) va PLP (Perceptual Linear Prediction)[7], Trén thế giới có rat nhiều
bộ công cụ hỗ trợ những vấn đề trên trong việc nhận dạng giọng nói như HTK,
Trang 17Sphinx, Alize, Kaldi [13] Nhưng các mô hình trên thường yêu cầu bước xử lý và
phân tích dữ liệu khá phức tạp, đòi hỏi phải hiểu rõ bản chất ngôn ngữ mình đang
làm việc Hiện nay, một mô hình mới là End-to-end đang được chú ý đến vì sự đơngiản nhưng hiệu suất cũng khá cao Để hệ thống có độ chính xác cao cần yêu cầulượng cực lớn dit liệu âm thanh Thường là vài trăm giờ nói cho đến hàng nghìn giờ
nói.
Văn bản sang giọng nói
Hệ thống chuyển văn bản thành giọng nói (Text to speech - TTS) là một ứngdụng chuyển đôi văn bản thành lời nói, bang cách phân tích và xử lý văn bản sử
dụng Xử lý ngôn ngữ tự nhiên (NLP) và sau đó sử dụng Công nghệ xử lý tín hiệu
kỹ thuật số (DSP) dé chuyên đổi văn bản đã xử lý thành giọng nói tổng hop [6]
Hệ thống chuyển văn bản sang giọng nói giúp phản hồi của trợ lý ảo trở nên thân
thiện hơn chứ không chỉ là văn bản nhàm chán và bắt tiện trong một số tình huống.
Các mô hình được áp dụng như Hidden Markov model , Deep Neural Network
nhưng vẫn còn một vài giới hạn Gần đây, việc sử dụng mô hình sequence kết hợp với neural vocoders như WaveGlow, mô hình TransformerTTSkết hop MelGAN mang lại chất lượng cao hơn [22] Ngoài ra Tacotron cũng làmột mô hình vượt trội được phát triển bởi Google Dataset của hệ thống cũng tương
sequence-to-tự như nhận dạng giọng nói nhưng quy mô nhỏ hơn và đơn giản hơn.
Trang 18Chuong 2 CƠ SỞ LÝ THUYET
2.1 Cau trúc của một hệ thống phản hồi yêu cầu (chatbot)
Có rất nhiều yếu tố khác nhau để phân loại chatbot nhưng có hai yếu tố quan trọng
đó là loại chatbot và miền chatbot (domain)
Phân loại chatbot
Lĩnh vực trợ lý ảo phụ thuộc vào lõi chatbot của trợ lý ảo Có nhiều cách để phânloại chatbot như phân loại dựa trên dịch vụ, dựa trên nên tảng xây dựng chatbot,
dựa trên chất lượng trải nghiệm người dùng, Ở đây nhóm phân loại dựa trên chất
lượng trải nghiệm người dùng Theo đó, chatbot có thể chia làm 3 loại:
Rule-Based Approach (Scripts Chatbot): Loại cơ bản nhất, trong hầu hết cáctrường hợp, các chatbots này là các hệ thống phân cấp cây quyết định được trình
bày cho người dùng dưới dang các nút (buttons).[11]
Retrieval based models: Loại Truy van, sử dụng một kho được định nghĩatrước các câu trả lời và một vài thuật toán tìm kiếm đề chọn ra câu trả lời thích hợp
từ đầu vào (câu thoại trước hay câu hỏi) và ngữ cảnh (đang tán tỉnh hay hỏi về sảnphẩm điện thoại, ) Thuật toán tìm kiếm có thể đơn giản như là sử dụng các luật,hoặc phức tạp như là kết hợp một vài thuật toán phân lớp machine learning Những
hệ thống này không thê tạo ra bất kỳ từ mới, chúng chỉ lấy một số câu phản hồi (câu
trả lời response) từ một tập có san [11]
Generative models: Loại tự sinh ngữ, những chatbots sử dung Machine
Learnng (ML) và Trí tuệ nhân tạo (AI) dé ghi nhớ các cuộc hội thoại với ngườidùng cụ thé Sử dụng những dữ liệu thu thập được để tìm hiểu va phát triển theothời gian Không giống như các chatbot nhận dạng từ khóa, các chatbot trò chuyện
theo ngữ cảnh đủ thông minh để tự cải thiện dựa trên những gì người dùng yêu cầu
và cách họ yêu cầu [11]
Miền chatbot (Domain): Tức là phạm vi chủ dé các cuộc hội thoại mà chatbot cóthê xử lý, được chia làm hai loại:
Trang 19Open domain (khó hơn), người dùng có thể tạo cuộc hội thoại bất kỳ lĩnh vực
nào Không cần thiết phải định nghĩa trước mục tiêu hay ý định Các cuộc tròchuyện trên các trang mạng xã hội như Twitter và Reddit là các ví dụ điển hình cho
open domain Chúng có thé đi qua các chủ đề khác nhau Có vô hạn các chủ đề với
nhiều hiểu biết được yêu cầu để tạo ra câu trả lời hợp lý, đây là một vấn đề khó
chắn rồi, người dùng vẫn có thể tạo các cuộc hội thoại ở bất kỳ đâu họ muốn, nhưng
hệ thống sẽ không cần phải xử lý tất cả các trường hợp và người dùng cũng khôngmong mỏi điều đó [11]
Nhóm tập trung nghiên cứu các bài toán trong chatbot ứng dụng trong miền đóng(close domain) và theo mô hình truy vấn thông tin (Retrieval based models)
DATA STORE
Interaction history,
monitoring and analytics (helps make
responses more
effective)
KNOWLEDGE STORE
Your domain specific
source content which the bot accesses and then
determines the correct
knowledge to serve to
the end user.
ACTIONS.
The ability to send
emails, restart crashed
servers, order new parts
and more.
Natural Language Processing
receives message and fetches
appropriate response.
Hình 2.1: Cấu trúc của một chatbot co ban [11]
Hình 2.1 thể hiện cấu trúc của một chatbot, với trung tâm là hệ thống xử lý ngôn
ngữ tự nhiên.
Trang 20các dạng mà |máy tinh ag thê hiéu được, tffiậitiện Cho
state request food() | 0.01
La các ứng dụng mà người dùng tương tác với
Tở rộng chatbot với các bên khác,
Ngoài ra, trong các chatbot cao cấp hơn còn có nhiều thành phần khác như hiểungôn ngữ tự nhiên (NLU), quản lý hội thoại (DM), thành phan sinh ngôn ngữ(NLG) giúp chatbot thông minh hon và trông có phan tự nhiên hơn [12]
Hình 2.2: Thành phần chính của các chatbot cao cấp hơn [12]
10
Trang 21NLU: bao gồm việc xử lý ngôn ngữ tự nhiên (NLP) có nhiệm vụ xác định
được ý định câu hoi(intent classification) và trích chọn thông tin (slots filter)
[12]
DM: Quản lý hội thoại có nhiệm vụ xác định được hành động (action) tiếp theo
dựa vào trạng thái hành động trước đó hay ngữ cảnh hội thoại Các ngữ cảnh này
phải được đối chiếu trong các kịch bản dựng sẵn (history) đã đào tạo cho bot.Thanh phan này cũng đảm nhiệm việc lay dữ liệu từ hệ thống khác qua các API
goi trong action
NLG: là thành phan sinh ngôn ngữ dựa vào chính sách (policy) và hành độngđược xác định trong DM thông qua các tập hội thoai.NLG có thể được sinh ra
câu trả lời dựa vào tập mau câu trả lời (pre-defined template) đã đào tạo cho bot.
2.1.1 Hiểu ngôn ngữ tự nhiên
Đây có thé nói là thành phan quan trọng nhất của chatbot Chatbot có thông minhhay không thì đây là thành phần quyết định Mục tiêu của thành phần này là tríchxuất ra 3 thành phần thông tin từ câu nói của người dùng: Đầu tiên là phân loại lĩnh
vực (domain classification); Tiép dén 1a phan loai y dinh (intent classification);Cuối cùng là bước trích xuất thông tin (slot fillter hay entity extraction)
Hiểu ngôn ngữ tự nhiên có 2 thành phần quan trọng là xử lý ngôn ngữ tự nhiên
(NLP) và học máy (Machine learning).
2.1.1.1 Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên trong chatbot là các thao tác với từ ngữ như làm sạch text,
tách từ (Tokenization hay word segmentation), loại bỏ stop word, vector hóa từ,
giúp biến đổi từ ngữ thành các dạng mà máy tính có thé hiểu được, thuận tiện cho
việc hậu xử lý.
Mặc dù đây là lĩnh vực được nghiên cứu rộng rãi và có rất nhiều mã nguồn mởnhưng đa số là áp dụng cho Tiếng Anh hoặc các tiếng phổ biến khác nên khi ápdụng cho tiếng Việt còn gặp nhiều khó khăn
lệ!
Trang 22Xử lý ngôn ngữ tự nhiên trong tiếng Việt cơ bản gồm các bước:
Làm sạch text: Mục đích bước này là loại bỏ noise trong data Da phan noise là
các thẻ HTML, JavaScript, và đương nhiên nếu cứ dé noise dé tiến hành xử lý sẽ
dẫn đến kết quả xử lý không tốt
Hình 2.3: Lam sạch text [4]
Hình 2.3 ví dụ về quá trình làm sạch text, loại bỏ các ký tự đặc biệt, chỉ dé lại nội
dung cần thiết
Tách từ: Đối với tiếng Anh thì việc này khá dễ dàng vì mỗi từ trong tiếng Anh đều
có ý nghĩa và đa số các trường hợp thì chỉ cần sử dụng khoảng trắng (space) là cóthể tách từ được Tuy nhiên, các ngôn ngữ khác như tiếng Việt thì điều này khôngchính xác vì khoảng trắng không được sử dụng như 1 kí hiệu phân tách từ, nó chỉ có
Z
M nghĩ
Tiền xử lý trong <b> NLP</b> Tiền xử lý trong NLP a
pha
n
tách các âm tiết với nhau Vì thế, dé xử ly tiếng Việt, công đoạn tách từ (wordsegmentation) là 1 trong những bai toán cơ bản va quan trọng bậc nhất Có 2
phương án thường được sử dụng là:
Sử dụng bộ từ điển Vi dụ: Thuật toán so khớp từ dài nhất (longest matching), so
khớp cực đại (Maximum Matching),
Sử dụng học máy, các thuật toán phân lớp Ví dụ: Thuật toán Conditional Random Field (CRF).
lộ
VigtNam vôđịch |
Trang 23Hình 2.4: Tách từ
Hình 2.4 ví dụ về việc tách từ, tách sao cho từ được tách vẫn giữ ý nghĩa của mình
Chuẩn hóa từ: Mục đích là đưa văn bản từ các dạng không đồng nhất về cùng mộtdạng, ví dụ như viết hoa, viết thường, không đồng nhất về font, Dưới góc độ tối
ưu bộ nhớ lưu trữ và tính chính xác cũng rất quan trọng
——>
Hình 2.5: Chuan hóa từ [4]
Hình 2.5 thể hiện ví dụ về chuẩn hóa từ, chuyền từ bị lỗi font về cùng font
Loại bỏ stopwords: Stopwords là những từ xuất hiện nhiều trong ngôn ngữ tựnhiên, tuy nhiên lại không mang nhiều ý nghĩa Ở tiếng việt Stopwords là những từnhư: để, này, kia Tiếng anh là những từ như: is, that, this Các cách loại bỏstopwords cơ bản như:Sử dụng bộ từ điển, dựa theo tần suất xuất hiện của từ (Tf —Idf, ) Khoa học đã chứng minh những từ xuất hiện nhiều nhất thường là những từkhông mang nhiều ý nghĩa
13
Trang 24Filter Stopwords
Hình 2.6: Loại bỏ stopwords [4]
Hình 2.6 thé hiện ví dụ về loại bỏ những từ không có ý nghĩa nhiều trong xử lý
ngôn ngữ tự nhiên
Vector hoá từ: Đây là bước quan trọng khi tạo ra một vector tương ứng với mỗi
câu text Từ các vector đó ta mới có thé sử dụng các thuật toán học máy để huấnluyện mô hình chứ không thé sử dụng trực tiếp các câu text được Có nhiều cách
vector hóa từ như one-hot, biểu thi sự phân tán, bag of word, TF — IDF.,
nlp word | one- -hot ah ruby
Hình 2.7: Vector hóa từ [4]
Hình 2.7: thé hiện ví dụ về cách chuyển chuỗi văn bản về vector
14
Trang 252.1.1.2 Học máy trong chatbot
Học máy trong chatbot có vai trò quan trọng, nó giúp ta huân luyện và tạo ra các
mô hình, phục vụ cho việc phân loại câu hỏi người dùng, lựa chọn các câu trả lời
liên quan và chọn ra câu trả lời gan đúng nhât có thê.
Sau khi vector hóa từ bộ dir liệu ban đâu, ta có được input của bước huan luyện
(training) dé tạo ra một mô hình (model)
Ở bước này ta có thé dùng một sỐ kỹ thuật như: Naive Bayes, Decision Tree
(Random Forest), SVM , CNN, RNN, LSTM.
2.1.2 Co sé dit liéu chabot
Dữ liệu chuẩn bi cho chatbot chủ yêu là các đoạn hội thoại dựng sẵn với mô hìnhcâu hỏi — câu trả lời Một bộ dữ liệu training đủ nhiều và chuẩn chỉnh có thể nâng
cao độ chính xác lên rất nhiều Thường thì dữ liệu được định nghĩa dưới dạng Json
{"intents": [
{"tag": "greeting",
“patterns”: ["Hi", “How are you", "Is anyone there?", “Hello”,
“responses”: ["Hello, thanks for visiting", “Good to see you ag
“context_set":
}›
{"tag": “goodbye”,
“patterns”: ["Bye", “See you later", "Goodbye"],
“responses”: ["See you later, thanks for visiting", "Have a nic
}›
{"tag": “thanks”,
“patterns”: ["Thanks", "Thank you”, "That's helpful"],
"responses": ["Happy to help!", “Any time!", "My pleasure" ]
he
{"tag": “hours”,
“patterns”: ["“What hours are you open?", “What are your hours?"
Hình 2 8 Dữ liệu chatbot dưới dang json [3]
Hình 2.8: Ví dụ về dé liệu huấn luyện chatbot dưới dạng json[4]
15
Trang 262.2 Tổng quan hệ thống nhận dạng giọng nói
2.2.1 Phân loại hệ thống nhận dạng giọng nói
Nhận dạng giọng nói có thé được phân loại thành các loại khác nhau, phụ thuộc
vào giọng nói dau vào của quá trình huân luyện:
Đa dạng người nói: Một hệ thống được coi là đa dạng người nói nếu có thể nhậndạng giọng nói của bất kỳ người nào Hệ thống phải học được đặc trưng giọng nóicủa một lượng lớn người nói Điều đó đòi hỏi phải thu thập một lượng cực kỳ lớn
dữ liệu giọng nói cho quá trình huấn luyện - một bài toán khó cho nhận dạng giọng
nói Ngược lại, có hệ thống chỉ nhận dạng được người nói nếu người đó cung cấp
giọng nói của anh/cô ay cho quá trình huấn luyện [15]
Giọng nói rời rac hoặc liên tục: Hệ thong nhận dạng các từ rời rac là hệ thong màkhi sử dụng yêu cầu người nói phải nói chậm rãi, rõ ràng, ngắt quãng giữa các từ
Hệ thống nhận dạng từ liên tục là hệ thống tương tự như nhận dạng lời nói rời rạcnhưng không yêu cầu ngắt nghỉ giữa các từ, nhưng tốc độ vẫn phải chậm rãi và lời
nói yêu cầu rõ ràng Cuối cùng là nhận dạng giọng nói liên tục, nhận dạng các câu
nói liên tục, tốc độ thông thường như giao tiếp hàng ngày [15]
Kích thước bộ từ vựng: Một hệ thống nhận dạng giọng nói chỉ có thé nhận dạngmột lượng nhỏ các từ, chủ yêu dùng cho các trợ lý ảo kiểu ra lệnh, nhận dạng sỐđiện thoại, học tập và thực nghiệm Hệ thống ở mức trung bình có từ vải trăm từ Hệ
thống lớn được dao tạo với bộ dữ liệu vài nghìn cho tới vài chục nghìn từ vựng
dành cho các ứng dụng lớn như giao tiếp, trò chuyện [15]
2.2.2 Phân tích giọng nói của người
Như đã biết, giọng nói của chúng ta được tao ra từ thanh quản, cụ thé là khôngkhí đi từ phối lên làm đóng mở dây thanh đới theo các tần số khác nhau tạo ra giọng
nói, tần số này trung bình khoảng 125Hz đối với nam và 210Hz đối với nữ.
Giọng nói có thé được phân loại thành hữu thanh và vô thanh Âm hữu thanh là khi
ta nói và dây thanh đới đóng mở, tạo ra độ rung ở cô họng khi ta chạm vào Còn âm
16
Trang 27vô thanh là khi phát âm dây thanh đới ở trong trạng thái mở và không tạo ra rung động.
Một thành phần quan trọng nữa trong việc nói là thanh quản, bao gồm cả phầnmiệng và phần mũi, hoạt động như một bộ cộng hưởng hoặc bộ lọc Tùy vào cách
hoạt động và vi trí của mũi, môi, lưỡi mà thanh quan biến đổi âm thanh gốc phát ra
từ thanh đới, tạo ra sự khác biệt giữa các từ với nhau Cả âm thanh hữu thanh và vô
thanh đều được điều chỉnh thêm bằng cách ghép nối và tạo ra các âm vang khác
nhau bởi thanh quản.
Đường mũi
Mũi hầu
Miệng hầu
>
Cơ cảm món ' > * Nắp thanh quan
Cầm i a ———— | seg Hau thanh quan
Khoang thanh quan
Thanh môn với thanh
Sone thất và dây thanhSụn giáp
Cơ giáp nhẫn
Sụn nhẫn hoang hạ thanh môn
Khí quản —=s— Thực quan
Hinh 2.9: Cau tao thanh quan [3]
Hình 2.9 mô tả cau tao của thanh quan
17
Trang 28Phụ âm là âm phát từ thanh quản qua miệng, khi phát âm ra thì luồng khí đi từ
thanh quản lên môi bị cản trở, chăng hạn như bị cản trở bởi răng, lưỡi, môi chạmnhau trong quá trình phát âm Phụ âm chỉ phát ra tiếng trong lúc nói chỉ khi đi với
nguyên âm.
Nguyên âm
Nguyên âm là những dao động của dây thanh đới, luồng khí đi ra ngoài miệng
mà không bị cản trở như phụ âm Nguyên âm có thể đứng riêng biệt hoặc đứng vớiphụ âm dé tạo ra một tiếng [24]
Am vi
Am vi la phan doan nho nhất của âm thanh dùng dé cấu tạo nên sự phân biệt giữa
các cách phát âm Do đó, âm vi là một nhóm các âm thanh với sự khác biệt tương
đối nhỏ cùng đảm nhận một chức năng ý nghĩa tùy theo người nói và phương ngữ.Trong tiếng Anh, có những chữ cái có nhiều cách đọc khác nhau khi nằm trongnhững từ khác nhau Có 44 âm vị trong tiếng Anh, trong đó có 24 phụ âm và 20
nguyên âm Đó là các âm vị riêng biệt trong tiếng Anh nói dé phân biệt từ này với
từ khác Ví dụ: khi chúng ta chuyển đổi / k / trong ‘cat’ với / b /, chúng ta tái tạomột từ khác, ‘bat’ Các âm vị được viết giữa hai dấu gạch chéo Ví dụ từ “she” sẽ
được phân tích thành /fi:/ [24]
18
Trang 292.2.3 Các giải pháp cho nhận dạng giọng nói phố biến
là 349.23 Thông qua biểu đồ dạng sóng chúng ta có thé nhận ra được cường độ âm
thanh tại một thời điểm và suy đoán lúc đó có cường độ âm thanh lớn hay nhỏ chứkhông thê biết đặc trưng của âm thanh đó như âm thanh đó là của vật gì, của người
thì là nam hay nữ.
Hình trên cho ta thấy song “A” là sóng cuối cùng ta nghe được, được tập hợp bởisóng “B” và “C” Nếu chỉ dựa vào mỗi dạng sóng của “A” ta không thê biết đượcnhững gì đã tạo nên tín hiệu này Nếu ta có thể phân tích sóng “A” thành các sóngcau thành nên nó thì có thé phân tích được các đặc trưng Vậy nên trong học máy
19
Trang 30thường sử dụng biểu diễn trong miền tần số hơn là miền thời gian bởi vì âm thanh
được đặc trưng bởi tần số
Phép biến đổi Fourier (Fourier Transform - FT) cho phép ta biến một dạng sóng
từ miền thời gian sang miền tần số và tách sóng hỗn hợp ban đầu thành các sóng
con tạo nên nó.
oA À A
Miền tan so
Hình 2.11: Biến đổi Fourier [1]
Hình trên cho thay dạng sóng ban dau ở miền thời gian đã được phân tách thành
hai tín hiệu có tân sô khác nhau ở miên tân sô.
20
Trang 31Đặc trưng giọng nói biểu diễn trong miền tần số
Hình 2.12: Đặc trưng một nguyên âm trong miễn tần số [9]
Mỗi nguyên âm sau khi chuyển qua miễn tần số thì ta có thé thấy chúng phânthành ba vùng tần số khác nhau, chúng được gọi là Fl, F2, F3, mang đặc trưng của
nguyên âm đó Sỡ dĩ có các vùng tần số trong cùng một nguyên âm là do thanh
quản của người hoạt động như một bộ lọc hoặc khuếch đại tần số Giống như việc ta
thôi hơi vào một cái chai, tùy vào hình dáng của thân chai và cấu tạo bên trong mà
âm thanh phát ra có sự khác nhau Tan số gốc đi từ dây thanh đới sau khi ra khỏi
thanh quản bi thay đổi di [9]
21
Trang 32Hình 2.13: Phân tích Fl, F2, F3 của một nguyên âm trong miền tan số [9]
Hình trên cho ta thấy sự biến đổi từ tần số gốc qua thanh quản Đồ thì output có
ba đỉnh tần số tương ứng với Fl, F2, F3 Ngoài ra còn có tan số FO, đây là tan sốgốc và không mang giá trị về đặc trưng âm thanh [9]
22