XÂY DỰNG TRỢ LY AO TU VAN TUYỂN SINH

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu và thiết kế hệ thống trợ lý ảo tiếng Việt offline trên nền tảng hệ thống nhúng (Trang 47 - 57)

3.1 Bài toán

Trợ lý ảo tư van tuyển sinh yêu cầu đơn giản, chủ yếu là các câu hỏi rời rac, không mang tính chất trò chuyện và các câu trả lời chỉ cần lặp đi lặp lại, không yêu cầu sinh ngữ nên chatbot mô hình Retrieval based models — mô hình truy vấn là đáp ứng đủ nhu cầu.

Khi hoạt động thi trợ lý ảo có khả năng trả lời các câu hỏi đã có trong dữ liệu về

các hệ, các ngành học, điểm chuẩn, phương thức xét tuyên, tư vấn hướng nghiệp,...

Ở đây nhóm sử dụng ngôn ngữ là Python và trình soạn thao VS Code trên hệ điều hành Ubuntu.

3.2 Xây dựng hệ thống nhận dạng giọng nói End-to-End

3.2.1 Chuẩn bị dữ liệu

Dữ liệu cho nhận dạng giọng nói là trở ngại rất lớn cho những ai muốn xây dựng

hệ thông nhận dạng giọng nói. Với tiếng Anh hoặc các quốc gia khác thì dữ liệu về giọng nói được cô bố rất nhiều, khá thuận lợi trong việc nghiên cứu. Còn ở Việt Nam dé liệu giọng nói tiếng Việt rat ít, các công ty hoặc tổ chức ít công bố rộng rãi

nên việc nghiên cứu khá khó khăn do thiêu dữ liệu.

37

Nhóm đã xin được bộ dữ liệu 500 giờ nói của tô chức VLSP nhưng bộ dữ liệu này được tạo ra từ mô hình máy học, giọng nói ngắt quảng khó nghe và không thé

áp dụng với giọng nói của người. Ngoài ra nhóm còn thu thập được bộ dữ liệu 54

giờ nói gồm 15 giờ nói từ bộ Vivos do đội ngũ trường Đại hoc Khoa Học Tự Nghiên làm và 39 giờ nói tổng hợp từ bộ dữ liệu hỗn hợp của VinBigData.

Dữ liệu âm thanh với label là tiếng Việt nhưng với Unicode thì sẽ khó khăn trong việc xử lý và tiếng Việt có quá nhiều nguyên âm nên nhóm chuyên label sang cách

gõ Telex, nhằm đưa số lượng class phải xác định xuống còn 26, bằng với số chữ cái trong tiếng Anh. Ví dụ:

TRUONG HỌC : TRUWOWENG HOJC

Phân loại dữ liệu

Dữ liệu thích hợp cho việc nhận dạng giọng nói và nhất là mô hình End-To-End phải khá sạch nên nhóm chỉ lấy giọng của người đọc trong phòng kín, thu âm bằng thiết bi thu va ít tiếng ồn.

3.2.2 Xây dựng mô hình

Mô hình của nhóm sử dụng sẽ tương tự như kiến trúc Deep Speech 2. Mô hình

này sẽ có hai mô-đun mạng nơ-ron chính: N lớp Residual Convolutional Neural

Networks (ResCNN) dé tìm hiểu các đặc trưng âm thanh có liên quan va một tập hop Bidirectional Recurrent Neural Networks (BiRNN) dé tan dụng các đặc trưng

âm thanh ResCNN đã học. Mô hình được đặt trên cùng với một lớp fully-connected

được sử dụng đề phân loại các ký tự trên mỗi bước thời gian.

Convolutional Neural Networks (CNN) rat tốt trong việc trích xuất các đặc trưng trừu tượng và nhóm sẽ áp dụng sức mạnh trích xuất đặc trưng tương tự cho các bản

ghi âm giọng nói. Thay vì chỉ sử dụng các lớp CNN, nhóm chọn sử dụng các lớp

Residual CNN. Residual connections (bỏ qua kết nối AKA) lần đầu tiên được giới

thiệu trong bài báo “Deep Residual Learning for Image Recogmition”[], nơi tác gia

38

nhận thấy rằng ta có thể xây dựng các mạng thực sự sâu với độ chính xác tốt nếu ta thêm các kết nối này vào CNN của mình. Việc thêm các Residual connections này cũng giúp mô hình học nhanh hơn và tông quát hóa tốt hơn. Bai bao “Visualizing the Loss Landscape of Neural Nets”[] cho thấy rằng các mạng có kết nối dư có bề mặt mat mát "phăng hơn", giúp các mô hình dé dàng điều hướng ham mat mát và tìm ra cực tiêu tổng quát hơn và thấp hơn.

Recurrent Neural Networks (RNN) đương nhiên là rất tốt trong các vẫn đề mô

hình hóa trình tự. RNN xử lý các tính năng âm thanh từng bước, đưa ra dự đoán cho

từng khung hình trong khi sử dụng ngữ cảnh từ các khung hình trước đó. Nhóm sử

dụng BiRNN's vì nhóm muốn bối cảnh không chi của khung trước mỗi bước mà cả các khung sau đó. Điều này có thể giúp mô hình đưa ra dự đoán tốt hơn, vì mỗi

khung hình trong âm thanh sẽ có thêm thông tin trước khi đưa ra dự đoán. Nhóm sử

dụng biến thể Gated Recurrent Unit (GRU's) của RNN vì nó cần ít tài nguyên tính toán hơn LSTM và hoạt động tốt trong một sỐ trường họp.

Optimizer và Scheduler - AdamW

Optimizer va Scheduler đóng một vai trò rất quan trong trong việc đưa mô hình hội tụ đến điểm tốt nhất. Chọn đúng trình tối ưu hóa và lập lịch cũng có thé giúp tiết kiệm thời gian tính toán và giúp mô hình khái quát tốt hơn cho các trường hợp sử dụng trong thế giới thực. Đối với mô hình của nhóm sẽ sử dụng AdamW với Bộ lập lịch tốc độ học trong một chu kỳ (One Cycle Learning Rate Scheduler). Adam là một trình tối ưu hóa được sử dụng rộng rãi giúp mô hình hội tụ nhanh hơn, do đó, tiết kiệm thời gian tính toán, nhưng là không khái quát hóa tốt như Stochastic

Gradient Descent AKA SGD.

Ham mắt mat CTC Loss

Mô hình của nhóm sẽ được đào tao dé dự đoán phân phối xác suất của tat cả các

ký tự trong bảng chữ cái tiếng Anh cho mỗi khung (tức là cửa số trượt) trong biểu

đô quang phô mà nhóm đưa vào mô hình.

39

Các mô hình nhận dạng giọng nói truyên thông sẽ yêu câu ta căn chỉnh văn bản chuyên biên với âm thanh trước khi dao tạo và mô hình sẽ được đào tao đê dự đoán

các nhãn cụ thê tại các khung cụ thê.

Sự đổi mới của chức năng mat CTC là nó cho phép chúng ta bỏ qua bước này.

Mô hình sẽ học cách căn chỉnh dữ liệu trong quá trình dao tao. Chia khóa của điều nảy là nhãn “blank” trong CTC, cho phép mô hình chỉ ra một khung âm thanh nhất

định không tạo ra ký tự. Từ đó tự căn chỉnh dữ liệu.

Trích xuất đặc trưng Mel-Spectrogram

Mel-Spectrogram là tiền thân của MFCC trong quá trình trích xuuất MECC.

Thực hiện Discrete Cosine Transform (DCT) lên Mel-Spectrogram ta thu được

MECC. MFCC mang tính nén thông tin nhiều hơn khi thông thường chi sử dung 13 hoặc 20 hệ số thay vì 32 đến 64 hệ số như Mel-Spectrogram. Khi huấn luyện mô hình thi MFCC cần giải mã nhiều hơn, điều này phù hợp với các mô hình tuyến tính như Gaussian Mixture Models. Còn với lượng lớn dữ liệu và khả năng phân lớp tốt

của CNN thì Mel-Spectrogram thích hợp hơn.

Phương pháp đánh giá mô hình

Khi Đánh giá mô hình nhận dạng giọng nói, tiêu chuẩn ngành đang sử dụng là tỉ lệ lỗi từ - WER làm thước đo. Tỉ lệ lỗi từ thực hiện chính xác những gì mà cái tên thê hiện - nó lay kết mà mô hình của mô hình xuắt ra, và nhãn dán thực sự, đo lường lỗi giữa chúng. Một số liệu hữu ích khác được gọi là tỉ lệ lỗi ký tự (CER). CER đo lường sai số của các ký tự giữa đầu ra của mô hình và các nhãn thực. Các chỉ số này rất hữu ích đề đo lường độ chính xác của mô hình nhận dạng giọng nói.

3.3 Xây Dựng chatbot tư vấn tuyén sinh.

Cấu trúc chỉ tiết của chatbot tư vấn tuyên sinh được thiết kế như sau:

40

[| Dae [Ue

ơm

Hình 3.1: Cấu trúc một Chatbot

Trong mô hình trên, chatbot được chia làm 2 giai đoạn là giai đoạn huấn luyện

mô hình và giai đoạn hoạt động với User.

Ở giai đoạn huấn luyện mô hình, ta cần chuẩn bị dữ liệu, xử ly dit liệu bằng NLP,

dữ liệu sau bước NLP có thể đưa vào training và cuối cùng cho ra model hoàn chỉnh. Chi tiết các bước như sau:

Data: Dữ liệu là hơn 100 câu hội thoại bao gồm chào hỏi và các hội thoại chính liên quan đến tư vấn tuyển sinh được chuẩn bị sẵn. Dữ liệu được định

dạng dưới dạng Json như sau:

a

Hinh 3.2: Mau data chatbot tu van tuyén sinh Hình trên thé hiện ví du về mẫu dữ liệu nhóm sử dụng trong trợ lý ảo.

41

Trong đó:

e tag: là nhãn của một bộ câu hoi — câu trả lời. Có thể có nhiều câu hỏi và

nhiều câu trả lời trong một tag nhưng các câu hỏi phải chung một nghĩa hoặc ý định. Tương tự vậy với nhiều câu trả lời.

e keyword: Chủ dé của cuộc hội thoại.

e patterns: Câu hỏi mẫu.

e responses: Câu trả lời tương ứng.

NLP: Chủ yếu là tiền xử lý text. Chi tiết các bước gồm có:

e Làm sạch text: Sử dụng công cu Regex (Regular Expression) dé loại bỏ noise

trong text, chỉ giữ lại chữ cái là khoảng trắng.

Start of the Line

3 to 15 characters long

|

^[a-z0-9_-]43,15}$

|

End of the line Letters, numbers, underscores, hypens

Hình 3.3: Làm sạch text bằng Regex

e_ Tach từ: Sử dụng thuật toán so khớp dài nhất (Longest Matching). Thuật toán

này nhóm các từ trong câu thành các cụm với số lượng 3 chữ, 2 chữ rồi so sánh với bộ từ điển tiếng Việt, nêu khớp thì tách ra đó là 1 từ.

42

{'đen lay láy', ‘pho văn phòng', 'phó tiến si', ‘dai đuồn đuỗn', 'lãnh sự

quán', 'kí túc xá', 'keo tai tượng', 'bom từ trường', 'cực chẳng đã', 'giày

bát kết', 'ngắn tun hủn', 'quốc tế ca', ‘hoa mép dé', 'tẻo tèo teo', 'óc bã

đậu', 'Tết Nguyên Đán', 'góc kề bù', ‘kim loại đen', 'tiểu đoàn trưởng",

'chữ thập đỏ', 'từ đồng nghĩa', 'báo vụ viên', 'sóng vô tuyến', 'luật dân

sự', 'thượng nghị viện', ‘da lá sách', 'phép biện chứng', ‘li tưởng hoá",

'điều kiện cần', ‘gon thon lỏn', 'sách công cụ', ‘bam ra sữa', ‘bat thinh

lình', 'cá thia thia', 'cân đồng hồ', 'thợ thủ công', 'điện khí hoá', 'kim

anh tử', 'tuyên bố chung', 'Hệ Mặt Trời', 'cổ tự học', 'gì thì gì', 'bom

bươm bướm', ‘doi địa ly', ‘quan trọng hoá', 'phản giáo dục', ‘dai nguyên

soái', 'đa phương tiện', 'điện tử học', 'vô thần luận', 'kĩ thuật số',

"tran trùi trụi', 'hiện tượng luận', ‘ban bình nguyén', ‘ho mái day', 'xốp

xồm xộp', 'tiền định luận', 'khoáng vat học', ‘cau thang máy', ‘may hút

bui', ‘cau thăng bang', 'cười sang sặc', ‘mat rười rượi', ‘dia vật ly',

'hình hoc Euclid', 'khách qua đường', 'nổi tam banh', ‘tap thé hod", ‘ca

Hình 3.4: Bộ từ điển tri-grams — từ ghép bởi 3 chữ cái

e Loại bỏ stopwords: Sử dụng từ điên các Stopword tiêng Việt. Sau quá trình

tách từ thì ta được các từ riêng lẻ trong câu, so khớp với từ điên stopwords,

nêu khớp từ nào thì bỏ từ đó.

{ 'ạ','b1', 'bởi"', a, ‘Cac "cần', ‘cang', ‘chi’, 'chiếc', 'cho', ‘chir',

"chưa", "chuyện", ‘co 'có thé’, 'cứ', ‘cla’, ‘cing’, 'cũng', 'đã', ‘dang’,

‘day’, ‘dé’, 'đến_n ‘déu', "điều', 'do', 'đó', 'được', ‘gi’, ‘khi',

'là', 'lại', 'lén', 'lúc', 'mà', 'mỗi', 'một cách', "mấy", 'này', 'nên', 'nếu', 'ngay",

"nhiều", "như', "nhưng", 'những', ‘noi’, 'nữa', "phai ‘qua’, 'ra', ‘rang’, ‘rat’, ‘roi’,

"sau', "sé", Ư", ‘tai’, ‘theo', ‘thi’, "từng",

"vol",

Hinh 3.5: Tir dién stopwords tiéng Viét

e Vector hóa từ: Sử dung túi từ - Bag of Word. Phuong pháp BoW thường được sử

dụng trong những bài toán phân loại văn bản. Trong đó: tần suất của mỗi từ/ n- gram sẽ được coi là một feature trong văn bản phân loại. Ta tạo một bộ từ điển chứa tất cả các từ (sau khi đã tach từ) của các câu hỏi trong bộ dữ liệu, sau đó ta tạo một vector có chiều đài bang bộ từ điển câu hỏi vừa tạo. Duyệt các câu hỏi, mỗi từ trong câu hỏi có xuất hiện trong từ dién thì vị trí của từ đó vector câu hỏi được bằng 1, còn lại bằng 0. Từ đó tạo được vector riêng biệt của từng câu hỏi.

43

Tuy nhiên, nhược điểm của phương pháp này là ta không thé xác định được

nghĩa thực của mỗi từ và các từ tương quan với chúng.

Trong phương pháp BoW, từ giống nhau sẽ được đánh trọng số như nhau. Phương pháp này không xét đến tần suất xuất hiện của từ hay nhữ cảnh từ. Và trong thực tế, dé cần hiểu được nghĩa của mỗi từ, ta cần xác định từ đó trong văn

cảnh hơn là xét nghĩa độc lập từ.

Raw Text Bag-of-words

vector

0 ey Tw Talo) emo

‘WHE

Hinh 3.6: M6 hinh Bag of Words

itis a puppy and it

is extremely cute

Training: Sử dụng mang Neural Network 2 lớp được built sẵn trong module

TFlearn với 2 tham số. Tham số thứ nhất là một mảng 2 chiều với số hàng ứng với tông các câu hỏi trong data, mỗi hàng chứa một vector ứng với mỗi câu hỏi

mà ta đã tạo ở bước Bag of Words. Tham số thứ hai là một mảng hai chiều có

số hàng bằng số câu hỏi trong data, mỗi hàng là một vector có độ dài băng các câu hỏi, đánh dấu tag của câu hỏi tương ứng. Có thé hiểu đơn giản là 2 tham số truyền vào cho biết ứng với câu hỏi nào là tag nào, dé máy có thé học được và

dự đoán dit liệu đầu vào. Sau khi training hoàn tat thì ta có kết quả là một model.

Tiếp theo, là quá trình tương tác với người dùng. Quá trình này đơn giản hơn. Sau

khi người dùng nhập đoạn text vào, text sẽ được đi qua khối NLP và cho ra một

vector tương ứng với đoạn text đó. Tiếp đến ta sử dụng hàm predict của model dự

đoán xem vector của đoạn text dau vào kia có tag tương ứng là gì, từ đó đôi chiêu

44

với data thì sẽ chọn được câu trả lời phù hợp. Nếu tìm ra được hai kết quả giống

nhau thì hàm predict sẽ chọn ngẫu nhiên.

3.4 Xây dựng hệ thống chuyển văn bản sang giọng nói Transformer và

MelGAN vocoder

3.4.1 Chuẩn bị dữ liệu

Dữ liệu nhóm sử dụng là bộ dữ liệu của Zalo_vlsp2019 gồm 18 giờ nói của một

người phụ nữ. Vì yêu cầu giọng đọc ra của mô hình phải cố định nên nhóm chỉ sử

dụng một giọng đọc của một người duy nhất.

3.4.2 Xây dựng mô hình

Chuyén đổi văn bản thành âm vị (phiên âm)

Tacotron2 sử dụng chuỗi ký tự làm đầu vao, trong khi mô hình được Transformer

sử dụng phiên âm đã chuẩn hóa trước. Các ranh giới từ và âm tiết, dấu câu cũng được bao gồm như các ký hiệu đặc biệt. Quy trình xử lý đề có được các chuỗi âm vị huấn luyện chứa tách câu, văn bản chuẩn hóa, phân đoạn từ và cuối cùng là thu được cách phát âm. Bằng cách chuyền đổi văn bản thành âm vị, các van đề về phát

âm sai được giảm thiểu đáng kể, đặc biệt là đối với những cách phát âm hiếm khi

xảy ra trong bộ dữ liệu.

Thiết lập WaveNet

Nhóm huấn luyện một WaveNet có điều kiện dựa trên quang phổ mel với cùng một tập dữ liệu tiếng Việt giọng nữ và sử dụng nó như bộ mã hóa cho tất cả các mô hình. Tỉ lệ lay mẫu của âm thanh là 16000Hz và tốc độ khung hình (khung hình / giây) của quang phổ là 80. Autoregressive WaveNet chứa 2 lớp QRNN và 20 lớp tích chập giãn nỡ (Dilated convolution), kích thước của tất cả các kênh dư và kênh giãn nở tất cả đều là 256. Mỗi khung của đầu ra cuối cùng của QRNN đều được sao chép 200 lần dé có cùng độ phân giải như các mẫu âm thanh va là điều kiện của 20

lớp giãn ra.

45

MelGAN

Giống như các mô hình GAN khác, MelGAN cũng có cấu trúc gồm hai mạng là Generator và Discriminator. Generator cố gắng tạo ra âm thanh giả gần giống với thật nhất, trong khi Discriminator cô gang tìm ra điểm khác biệt giữa chúng.

Phương pháp đánh giá

Hiện chưa có phương pháp nào đảm bảo đánh giá mô hình văn bản sang giọng

nói bởi vì đầu ra của mô hình là âm thanh, muốn kiểm chứng âm thanh hay hay không thì phải qua tai người nghe và đánh giá. Nhóm quyết định đánh giá theo phương pháp Mean Option Score (MOS). Nhóm sẽ tạo ra những câu nói kết quả của

mô hình và cho người khác nghe, sau đó đánh giá trong thang điểm từ 0 đến 5.

46

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu và thiết kế hệ thống trợ lý ảo tiếng Việt offline trên nền tảng hệ thống nhúng (Trang 47 - 57)

Tải bản đầy đủ (PDF)

(65 trang)