3.2.1. Chuẩn hoá (Normalization):
Chuẩn hoá dữ liệu cho mỗi tính năng (feature) sẽ giúp giữ lại sự đóng góp của mọi tính năng trong trường hợp giá trị của một số feature cao nhiều so với các feature khác. Bên cạnh đó, việc chuẩn hoá sẽ giúp giảm ICS (Internal Covariate Shift), ICS được hiểu là sự thay đổi phân phối của các hàm kích hoạt trong mô hình do sự thay đổi các tham số mô hình (weight) trong quá trình huấn luyện. Chuẩn hoá giúp tránh bùng nổ đạo hàm. Hiện nay, có các loại chuẩn hoá như Batch Normalization, Layer Normalization, …
Layer Normalization là sự cải tiến tốc độ huấn luyện mạng, tính trực tiếp số liệu thống kê chuẩn hoá từ các đầu vào và tổng hợp đến các nơ-ron trong lớp ẩn. Layer Norm sẽ chuẩn hoá đầu vào trên các features.
3.2.2.Trình tối ưu và hệ số tốc độ học
Sự lựa chọn trình tối ưu (Optimizer) và hệ số tốc độ học (Learning Rate) sẽ đưa mô hình hội tụ đến điểm tốt nhất. Nếu chọn được trình tối ưu tối cho bài toán giúp tiết kiệm thời gian huấn luyện, và sự tổng quát hoá của mô hình tốt hơn. Trong nghiên cứu này, em đã tham khảo và lựa chọn trình tối ưu AdamW kết hợp với OneCycleLR (One Cycly Learning Rate Scheduler) cho mô hình. Trình tối ưu Adam được dùng rộng rãi trong máy học và học sâu, giúp mô hình hội tụ nhanh hơn, tiết kiệm thời gian và tài nguyên, tuy nhiên không khái quát hoá tốt như SGD (Stochastic Gradient Descent). AdamW là cải tiến của Adam giúp giải quyết vấn đề tổng quát hoá của Adam. OneCycleLR được giới thiệu năm 2019 trong bài báo có tên “Super- convergence: very fast training of neural networks using large learning rates” [11] nhóm tác giá đã cho thấy là giúp việc huấn luyện mạng nơ-ron nhanh bởi sử dụng Learning Rate lớn. Ý tưởng của OneCycleLR là bắt đầu với Learning Rate từ thấp, sau đó tăng tối đa và giảm tuyến tính về điểm ban đầu.
3.3.3.Đánh giá lỗi với CTC Loss
Mô hình được huấn luyện để nhận dạng các ký tự, hay dự đoán xác suất xuất hiện của các ký tự trong bảng ký tự, tức là dự đoán kí tự nào tương ứng với mỗi khung (frame) trên phổ ở đầu vào của mô hình.
CTC (Connectionist Temporal Classification) là thuật toán sử dụng nhiều trong mạng học sâu liên quan đến nhận dạng tiếng nói, chữ viết tay và một số vấn đến liên quan đến chuỗi. Các mô hình truyền thống sẽ yêu cầu về việc dán nhãn từng kí tự tương ứng chính xác vào từng đoạn âm thanh nào trên toàn bộ tập tin âm thanh, mô hình được tạo ra sẽ dự đoán nhãn tại khung cụ thể. Với CTC, mô hình sẽ tự động cân chỉnh khung và nhãn tương ứng trong quá trình huấn luyện, những nơi không có sẽ được dán nhãn “NULL”. Đầu ra của khối mạng RNN sẽ nhận dạng được một dãy các ký tự theo các bước thời gian, với hàm CTC loss sẽ đánh giá được lỗi trong quá trình đầu ra huấn luyện và kết quả dự đoán này, từ đó tính toán cập nhật trọng số. Ví dụ: Tại mỗi bước thời gian, mạng RNN sẽ dự đoán được một kí tự, và ngõ ra cuối cùng sẽ là “HHHHHeeeeeelllllllloooooo”, vậy làm sao chúng ta so sánh được với nhãn huấn luyện là “Hello” ? Giải pháp loại bỏ các giá trị trùng lặp? sẽ tạo ra từ “Helo” và rõ ràng là sai với nhãn so sánh là “Hello”. Với CTC loss sẽ giúp chúng ta làm việc này.
3.3.4. Đánh giá độ chính xác mô hình bởi WER
Như trình bày ở trên, mô hình sử dụng bộ giải mã tham lam – Greedy Search Decoder để giải mã sang văn bản cần nhận dạng và dựa vào hệ số WER (Word Error Rate) để đánh giá sự chính xác của mô hình. WER đánh giá độ khác nhau giữa hai chuỗi ở cấp độ từ.
WER được tính bởi công thức sau:
𝑊𝐸𝑅 = 𝑆 + 𝐼 + 𝐷𝑁
Với: S: là số từ bị thay thế; I là số từ được chèn vào; D là số từ bị xoá; N là số lượng từ so sánh.Với hai câu có độ khác nhau nhiều thì hệ số WER sẽ lớn.
3.3. Thu thập và xử lý dữ liệu
3.3.1. Thu thập bộ dữ liệu huấn luyện và thử nghiệm
Độ chính xác mô hình nhận dạng tiếng nói phụ thuộc nhiều yếu tố, trong đó dữ liệu lớn và dữ liệu đủ tốt là một yếu tố hết sức quan trọng. Quá trình thu thập dữ liệu từ các nguồn khác nhau sẽ xảy ra bất đồng bộ giữa các bộ dataset. Để thuận lợi cho quá trình huấn luyện, tất cả các dữ liệu âm thanh thu thập được đều được chuẩn hoá về cùng một loại:
Ø Tập tin định dạng .wav, tần số lấy mẫu 16Khz, và những mẫu tập tin âm thanh dữ liệu huấn luyện đều có độ dài 1.3 giây đến 15 giây và các tập tin chứa từ 5 từ đến 20 từ.
Ø Tập tin chứa dữ liệu gán nhãn theo định dạng: [TEN_AUDIO] [LABEL] Ø Các nhãn (LABEL) của câu viết in hoa, và mỗi dòng là thông tin của một
mẫu dữ liệu, bên dưới là minh hoa cho định dạng lưu trữ tập gán nhãn: Ở nghiên cứu này, em lựa chọn 3 bộ dữ liệu hỗ trợ cho việc huấn luyện mô hình nhận dạng tiếng Việt:
- Bộ dữ liệu VIVOS Corpus [7] gồm 12.420 tệp dữ liệu âm thanh với định dạng .wav (trong đó 11.660 tập cho huấn luyện (train), và 760 cho tập kiểm thử (test)), với số lượng câu được gán nhãn tương ứng, số lượng từ mỗi câu khác nhau từ 2 từ đến 35 từ. Sau quá trình lọc các tập tin rỗng, chuẩn hoá dữ liệu thì bộ data VIVOS mới gồm: tập dữ liệu train gồm 9.263 audio, và tập dữ liệu test gồm: 726 audio.
- Bộ dữ liệu VIN Data [8] gồm 112.854 audio, sau quá trình loại bỏ các tập tin quá dài, tập tin quá ngắn, dữ liệu rỗng, chuẩn hoá dữ liệu thì thu được bộ dữ liệu train gồm 20.000 audio, tập dữ liệu test gồm: 6.426 audio.
- Bộ dữ liệu FPT [9] gồm 109.218 audio với định dạng .mp3 và tần số lấy mẫu là 48Khz, tiến hành chuẩn hoá dữ liệu chuyển đổi các từ file .mp3 về định dạng .wav, chuyển đổi tần số lấy mẫu từ 48Khz về 16Khz, loại bỏ các tập tin quá dài, quá ngắn, rỗng nội dung, kết quả thu được tập dữ liệu train gồm: 15.700 audio, và tập dữ liệu test gồm 7.213 audio.
3.3.2. Chuẩn bị bản đồ số ký tự cần nhận dạng tiếng Việt
Hướng nghiên cứu được thực hiện dựa trên mô hình nhận dạng chuỗi ký tự tiếng Việt, sau đó ghép nối để tạo thành các từ tương ứng. Vì vậy, bộ dữ liệu dạng kí tự tiếng Việt cần nhận dạng sử dụng gồm 95 kí tự bao gồm kí tự không dấu và có dấu, dấu cách, mỗi kí tự được đánh số thứ tự để tiện cho việc mã hoá nhãn tín hiệu các bước tiếp; các kí tự bao gồm: a, b, c, d, …, á, ả, à, ạ, ă, ắ, ằ, ẳ, ặ, â, ấ, ầ, e, ê, ế, ể, o, ô, ố, ổ, ơ, … bộ dữ liệu này được xem là bản đồ số kí tự - mã hoá và lưu trữ ánh xạ giữa kí tự và số.
v Xây dựng bộ mã hoá và giải mã ký tự
Xây dựng công cụ để mã hoá (encode) nhãn kí tự sang số để tính toán, và giải mã (decode) từ số sang ký tự để hiển thị dạng văn bản. Hàm tính toán mã hoá mỗi từ sẽ gán mỗi kí tự trong danh sách kí tự cần nhận dạng một con số không trùng lăp. Và việc giải mã là tìm ký tự tương ứng với một con số. Bản đồ số kí tự này được sử dụng trong quá trình huấn luyện và dự đoán của mô hình.
3.3.3. Rút trích đặt trưng MFCC của tín hiệu và chuẩn hoá độ dài
Dữ liệu đầu vào của mô hình là các bộ vectơ là những đặc trưng của tín hiệu âm thanh, áp dụng phương pháp rút trích đặc trưng MFCC để rút trích những thành phần đặc trưng quan trọng của tập tin âm thanh ngõ vào.
Mô tả về hình dạng tín hiệu số của một tập tin âm thanh gồm 5 từ chiều dài 1.9 giây như hình 3.4.
Sau khi áp dụng phương pháp rút trích đặc trưng MFCC, trong phần đầu của luận văn, ở nghiên cứu này em lựa chọn số lượng bộ lọc là 128, tương ứng sẽ tạo ra 128 đặc trưng của tín hiệu, quan sát phổ mô tả các hệ số MFCC ở hình 3.5.
Hình 3.5: Minh hoạ dạng phổ các hệ số MFCC [14]
Vì tập tin audio đầu vào có độ dài khác nhau dẫn đến sẽ tạo ra các bộ vectơ đặc trưng cho độ dài khác nhau, để huấn luyện trong mô hình, cần chuẩn hoá để đồng bộ độ dài tín hiệu. Ở đây, giải pháp trong hướng nghiên cứu này đưa ra là chiều dài của tín hiệu dài nhất là chuẩn, bổ sung các dãy zero gọi là padding vào các tín hiệu có độ dài ngắn hơn. Khi thực hiện sẽ chuẩn hoá độ dài của bộ vector spectrogram chuẩn bị cho quá trình huấn luyện mô hình.
3.3.4. Số hoá các nhãn văn bản
Bởi vì máy tính không thể xử lý dưới định dạng văn bản, vì thế cần mã hoá các nhãn sang vec-tơ số. Mỗi từ sẽ gồm các kí tự, mỗi kí tự sẽ được mã hoá sang một số tương ứng bản đồ số kí tự ở mục 3.2.2, ghép nối lại để thành bộ số cho từng nhãn dữ liệu.
Các nhãn sau khi mã hoá sẽ có độ dài khác nhau tuỳ theo số lượng từ, vì thế lấy chiều dài bộ nhãn dài nhất là chuẩn, chuẩn hoá bởi thêm padding zero vào những bộ nhãn có độ dài ngắn hơn.
3.3.5. Tăng cường đa dạng dữ liệu
Trong quá trình huấn luyện mô hình, sự tăng cường dữ liệu là điều cần thiết làm tăng kích thước, sự đa dạng của tín hiệu. Việc áp dụng kỹ thuật này rất quan trọng trong khi có dữ liệu huấn luyện không đủ lớn, hoặc tránh mô hình xây dựng overfitting hay quá phù hợp, ở nghiên cứu luận văn này chỉ sử dụng 3 bộ dữ liệu không đầy đủ nên việc áp dụng kỹ thuật tăng sự đa dạng dữ liệu là cần thiết, giúp giảm bớt tạp âm. Việc gia tăng này, có thể áp dụng cách tiếp cận tăng cường phổ (Spectrogram Augmention – SpecAugment) đơn giản và mang lại hiệu quả. Trong một bài báo có tên “SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition” [5] nói về vấn đề này, nhóm tác giả nhận thấy chỉ cần cắt bỏ bớt các phần hay khối ngẫu nhiên từ phổ tín hiệu sẽ giúp dữ liệu đa dạng và tổng quát hoá mô hình hơn – hình 3.6 biểu diễn việc phổ bị cắt ngẫu nhiên.
3.4. Xây dựng các lớp mạng nơ-ron
Mô hình được thực hiện bởi sự kết hợp nhiều lớp mạng CNN, các lớp mạng hồi quy (GRU, LSTM), và cuối cùng là lớp Fully Connected, xen kẻ các lớp gắn thêm lớp chuẩn hoá LayerNorm, và gắn thêm Dropout, sơ đồ mô tả các lớp mạng được cài đặt trong quá trình xây dựng mô hình ở luận văn này trình bày ở hình 3.7.
Hình 3.7 Sơ đồ tổng quát các lớp mạng nơ-ron mô hình nhận dạng v Chi tiết thông số các lớp mạng:
Ở nghiên cứu này em đã lựa chọn cấu trúc mô hình như sau: ü Số lượng Features ngõ vào mô hình là 128,
ü Số lớp ngõ ra là 96 (95 kí tự cần nhận dạng + kí tự rỗng NULL). ü Hệ số learning rate = 0.0005
ü Batch size được lựa chọn từ 3, 5, 20, 32 tuỳ theo số lượng dữ liệu và cấu hình máy tính lúc làm thí nghiệm.
Mô hình các lớp mạng nơ-ron theo thứ tự:
Ø Một lớp CNN thuần (ngõ vào: 1; ngõ ra:32, kernel: 3x3, stride=2) Ø Tiếp theo là 3 lớp Residual Networks, mỗi lớp ResNet gồm:
• Hai lớp CNN (ngõ vào là: 32, ngõ ra: 32, kernel: 3x3, stride=1) • Gắn thêm 2 Dropout với p=0.1 tương ứng với hai lớp CNN. • Hai lớp chuẩn hoá LayerNorm tương ứng với hai lớp CNN.
Ø Tiếp đến là một lớp Full Connected (với ngõ ra 512 hoặc 1024 tuỳ vào lúc thử nghiệm trong lúc xây dựng mô hình, phù hợp vối số kênh ngõ vào của lớp RNN tiếp theo)
Ø Tới 5 lớp mạng Bidirectional GRU hoặc LSTM, với mỗi lớp là: • Một lớp Bidirectional GRU hoặc Bidirectional LSTM • LayerNorm
• Dropout (p=0.1) Ø Cuối cùng là lớp phân loại gồm:
• 1 lớp Full Connected
• GELU (Gaussian Error Linear Units function); • Dropout(p=0.1);
• và một Full Connected cuối cùng (ngõ ra là 96 – tương ứng 95 kí tự cần nhận dạng và một kí tự rỗng “NULL”).
v Hoạt động của mô hình
Mô hình gồm 2 khối chính đó là khối mạng CNN và khối mạng RNN, mạng nơ-ron CNN rất thích hợp để phân tách trích xuất các dữ liệu trừu tượng như hình ảnh, âm thanh. Thay vì sử dụng lớp mạng CNN cơ bản (CNN Vanila), chúng ta sử dụng các lớp Residual CNN, được mô tả ở bài báo “Deep Residual Learning for Image Recognition” [10] được xuất bản 2016 của nhóm tác giả Kaiming He,.. , nhóm
tác giả cho thấy có kết nối Residual bên trọng các mạng CNN sẽ tăng tính chính xác của mô hình.
Sau khối CNN sẽ cho ra bộ vec tơ là các feature của tín hiệu âm thanh, dữ liệu này là ngõ vào của khối RNN tiếp theo.
Khối RNN được thực hiện sử dụng mạng hồi quy hai chiều (Bidirectional RNN – BiRNN) việc này sẽ hữu ích khi thông tin tại thời điểm t không những phụ thuộc vào các thời điểm trước đó, mà cả phụ thuộc vào các thời điểm sau đó, khi đó mô hình Bi-RNN sẽ có hai mạng RNN chồng ngược hướng lên nhau, và việc tính toán sẽ dựa vào hai trạng thái ẩn của cả hai mạng RNN này. Nghiên cứu trong luận văn sử dụng thử nghiệm 2 kiến trúc mạng mở rộng của RNN là GRU và LSTM. Mạng GRU thực thi nhanh hơn, ít tốn tài nguyên; và mạng LSTM tính toán phức tạp hơn, cần nhiều tài nguyên vào thời gian tính toán và cho ra độ chính xác mô hình tốt hơn mạng GRU.
Xen kẻ các lớp mạng CNN là các lớp chuẩn hoá các feature LayerNorm và áp dụng kỹ thuật Dropout với p=0.1. Gắn Dropout nhằm loại bỏ ngẫu nhiên số nơ-ron trong lớp ẩn, loại bỏ chúng khỏi quá trình forward và backward, giúp giảm vấn đề quá phù hợp (overfitting). Đồng nghĩa với việc tăng số lượng epoch để hội tụ và giảm số lượng tính toán trên mỗi epoch.
3.5. Hiệu chỉnh văn bản đầu ra
Sơ đồ khối của toàn mô hình được trình bày ở hình 6.2, sau khi mô hình dự đoán được chuỗi từ sẽ được chuyển qua mô-đun hiệu chỉnh nhằm khắc phục sự thiếu chính xác của mô hình.
Beam Search được áp dụng trong quá trình huấn luyện và kiểm thử mô hình nhận dạng. Lựa chọn giới hạn tìm kiếm cho thuật toán Beam Search là 10, tại mỗi thời điểm nhận dạng, thuật toán sẽ đưa ra tối đa 10 câu có tỉ lệ xác suất xuất hiện các từ lớn nhất và ghép nối chúng với nhau, số lượng câu cuối cùng sẽ được loại bỏ các câu trùng nhau.
Tương ứng với 10 câu được đưa ra này, sẽ lần lượt tạo ra các bộ 2-gram, bởi vì trong tiếng Việt từ ghép có ý nghĩa hơn là từ đơn.
Quá trình tạo 2-gram tổ hợp tất cả các cặp từ có thể kết hợp được từ 10 câu này theo từng cụm riêng, mỗi cụm là tổ hợp các 2-gram. Khi đó, nếu câu có độ dài L
thì sẽ có (L-1) số cụm, được tạo ra bởi từ ở vị trí thứ n kết hợp với từ ở vị trí thứ n+1, (n bắt đầu bằng 0).Bên trong mỗi cụm là tổ hợp các 2-gram tạo ra từ các câu, loại bỏ những 2-gram trùng nhau.
Gọi X là số câu, Y là số từ trên mỗi câu thì số cụm là (Y-1). Mỗi cụm, sẽ có số tổ hợp 2-gram là (X^2), và lúc này tổng số 2-gram là: (Y-1) * (X^2).
Ví dụ: Có 3 câu được Beam Search đưa ra, mỗi câu gồm 6 từ như sau: Câu 1: “húng ta làm việc hăm chỉ”.
Câu 2: “chúng ca làm diệc chăm chi”. Câu 3: “chúng ta lam viêc hăm hỉ”.
Khi đó, sẽ có các tổ hợp 2-gram như sau: “húng ta”, “húng ca”, “chúng ta”, “chúng ca”, “ta làm”, “ta lam”, “làm việc”, “làm diệc”, “làm viêc”, “lam viêc” ,…
v Chuẩn bị bộ từ điển 2-gram: Dữ liệu được lấy ra từ các trang báo