TỔNG QUAN
Tổng quan về nghiên cứu trong và ngoài nước
Ứng dụng mạng học sâu, đặc biệt là kiến trúc mạng nơ-ron hồi quy, trong nhận dạng tiếng nói đã có những bước tiến đáng kể nhờ vào sự phát triển của công nghệ tính toán hiệu năng cao và khả năng xử lý mạnh mẽ của card đồ hoạ (GPU) Các trung tâm nghiên cứu và phát triển hàng đầu thế giới liên tục đưa ra các kiến trúc tối ưu nhằm nâng cao độ chính xác của mô hình dự đoán Bài viết này tổng hợp những kiến trúc được đề xuất gần đây trong lĩnh vực nhận dạng tiếng nói, trong đó nổi bật là mô hình DeepSpeech 1, một giải pháp mở rộng cho nhận dạng tiếng nói đầu cuối.
(End-to-End Speech Recognition) Kiến trúc DeepSpeech 1 được đề xuất vào tháng
DeepSpeech 1, được phát triển bởi nhóm tác giả từ phòng thí nghiệm AI của Baidu Research vào năm 2014, là một kiến trúc nhận dạng tiếng nói hiệu quả trong môi trường ồn ào, không cần bộ từ điển về âm vị Mô hình này sử dụng mạng hồi quy RNN, tối ưu hóa trên nhiều GPU, đạt tỉ lệ lỗi 16.0% trên tập dữ liệu thử nghiệm 2000 Hub5 DeepSpeech 1 được huấn luyện trên dữ liệu tiếng Anh, chuyển đổi chuỗi đầu vào thành chuỗi ký tự và dự đoán xác suất xuất hiện của chúng Kiến trúc gồm 5 lớp nơ-ron ẩn, sử dụng phương pháp phân loại theo thời gian kết nối (CTC) và thuật toán tối ưu Nesterov’s Accelerated Gradient DeepSpeech 2, được giới thiệu vào tháng 12 năm 2015, là phiên bản cải tiến từ DeepSpeech 1, hỗ trợ nhận dạng tiếng Anh và tiếng Quan Thoại, có khả năng xử lý nhiều ngôn ngữ và trọng âm khác nhau, đồng thời hoạt động hiệu quả trong môi trường nhiễu Mô hình này cũng dựa trên mạng hồi quy RNN và mạng tích chập.
Kiến trúc CNN mới được đề xuất có đến 11 lớp với nhiều lớp lặp lại hai chiều và các lớp tích chập, mang lại khả năng tính toán cao gấp 8 lần so với kiến trúc DeepSpeech 1 Nó sử dụng Layer Normalization để tối ưu hóa, hàm kích hoạt ReLu, và CTC ở ngõ ra để dự đoán xác suất các ký tự Mô hình nhận dạng tiếng nói liên tục First-Pass Large Vocabulary, được phát triển bởi nhóm tác giả từ đại học Stanford, sử dụng mạng hồi quy lặp hai hướng và đạt tỉ lệ lỗi ký tự (CER) dưới 10% trên tập CSR-II (WSJ1), đồng thời tích hợp mô hình ngôn ngữ n-gram Wav2Letter++, nghiên cứu và phát triển bởi Facebook AI, cũng là một phần trong xu hướng cải tiến công nghệ nhận dạng tiếng nói hiện nay.
Vào tháng 12 năm 2018, một framework mã nguồn mở sử dụng mạng học sâu cho nhận dạng tiếng nói đã được nghiên cứu và phát triển, đạt tỉ lệ lỗi WER 4.91% trên tập dữ liệu LibriSpeech, nhờ vào ngôn ngữ C++ và thư viện ArrayFire tensor tối ưu cho GPU CUDA Tiếp theo, vào tháng 7 năm 2019, nhóm tác giả từ Google Brain đã đề xuất phương pháp tăng cường dữ liệu SpecAugment để huấn luyện mạng nhận dạng tiếng nói đầu cuối LAS (Listen, Attend and Spell), với tỉ lệ lỗi WER đạt 6.8% khi không có mô hình ngôn ngữ và 5.8% khi có mô hình ngôn ngữ Trong mạng LAS, các phổ Mel được đưa vào mạng CNN 2 lớp với bước trượt là 2, và đầu ra được chuyển qua mạng LSTM hai chiều Cuối cùng, Wav2vec là một nghiên cứu và phát triển quan trọng trong lĩnh vực này được thực hiện bởi Facebook AI.
Nghiên cứu đề xuất vào tháng 9 năm 2019 đã áp dụng học không giám sát trong nhận dạng tiếng nói, sử dụng âm thanh thô Mô hình huấn luyện đạt được kết quả ấn tượng với tỷ lệ lỗi WER chỉ 2.43% trên tập dữ liệu nov92, nhờ vào việc sử dụng tập dữ liệu âm thanh khổng lồ không được dán nhãn Tại Việt Nam, trong những năm gần đây, các trường và học viện đã tích cực nghiên cứu về ứng dụng mạng nơ-ron trong lĩnh vực nhận dạng tiếng nói.
Nhóm nghiên cứu của PGS.TS Lương Chi Mai tại Viện Công Nghệ Thông Tin ứng dụng mạng nơ-ron nhân tạo và thuật toán Viterbi cùng công cụ CSLU trong nhận dạng tiếng nói Các đề tài nghiên cứu bao gồm phát triển kết quả tổng hợp và nhận dạng câu lệnh, chuỗi số tiếng Việt liên tục trên điện thoại di động, cũng như nâng cao độ chính xác của hệ thống mạng nơ-ron trong nhận dạng tiếng Việt.
Nhóm nghiên cứu của PGS TS Vũ Hải Quân, thuộc trường Đại học Khoa học
Nhóm nghiên cứu AILab thuộc Trường Đại học Khoa học Tự nhiên – Đại học Quốc Gia Thành phố Hồ Chí Minh chuyên sâu vào các lĩnh vực như truy vấn thông tin tiếng Việt, nhận dạng tiếng nói và tìm kiếm giọng nói.
Các công ty lớn như Vingroup, VNG, FPT và Viettel đang tích cực nghiên cứu và phát triển hệ thống nhận diện tiếng nói (ASR), đồng thời thương mại hóa các sản phẩm chuyển đổi giữa tiếng nói và văn bản (Speech to Text) cũng như văn bản và tiếng nói (Text to Speech) Cụ thể, FPT cung cấp dịch vụ chuyển đổi tại [fpt.ai](https://fpt.ai/) và Viettel phát triển giải pháp đọc báo tiếng Việt trên trang Dân Trí Ngoài ra, VinAI Research cũng đang nghiên cứu các mô hình ngôn ngữ và đã công bố các mô hình huấn luyện sẵn như PhoBert.
Giới thiệu luận văn
Giao tiếp đóng vai trò quan trọng trong đời sống con người, trong đó tiếng nói được xem là hình thức giao tiếp tự nhiên và phổ biến nhất, bên cạnh ánh mắt, nét mặt và ngôn ngữ cơ thể.
Nhận dạng tiếng nói đang được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là tại các trung tâm liên lạc, nơi cung cấp dịch vụ tự động giúp người dùng hoàn tất giao dịch hiệu quả và giảm chi phí cho đại lý và nhân viên hỗ trợ Công nghệ này cũng hỗ trợ các trợ lý ảo trong việc tìm kiếm, quản lý và điều khiển hệ thống nhà thông minh Ngoài ra, nó còn phục vụ cho người khuyết tật thông qua các ứng dụng điều khiển bằng giọng nói, tạo ra các công cụ chuyển đổi lời nói thành văn bản, giúp tiết kiệm thời gian đánh máy Hơn nữa, các robot ngày càng trở nên thông minh hơn khi có khả năng hiểu và thực hiện nhiệm vụ dựa trên tiếng nói của người dùng.
Trên thế giới, nhiều hệ thống nhận dạng tiếng nói lớn sử dụng mạng nơ-ron nhân tạo có độ chính xác cao, chủ yếu phát triển trên công nghệ hiện đại và máy tính lớn, tập trung vào tiếng Anh Tại Việt Nam, nghiên cứu và phát triển các hệ thống nhận dạng tiếng nói còn mới mẻ, gặp nhiều thách thức như sự phụ thuộc vào tiếng địa phương, sự đa dạng trong giọng nói các vùng miền, và hạn chế về kích thước bộ dữ liệu huấn luyện, cùng với dữ liệu thu thập không rõ ràng và bị nhiễu.
Để phát triển các mô hình nhận dạng tiếng Việt với độ chính xác cao, cần có sự đầu tư lớn về hạ tầng máy tính, thời gian và công sức từ đội ngũ nghiên cứu giàu kinh nghiệm Các hệ thống đạt được kết quả tốt trên thị trường hiện nay thường được các công ty thương mại hóa với mức giá khá cao.
Đề tài luận văn của tôi là “Nghiên cứu ứng dụng mạng nơ-ron hồi quy trong nhận dạng tiếng nói”, nhằm mục đích áp dụng kiến trúc mô hình nhận dạng tiếng nói với mạng nơ-ron hồi quy Nghiên cứu này hướng đến việc đạt được kết quả chính xác trong bài toán nhận dạng tiếng nói tiếng Việt, dựa trên các phương pháp đã được đề xuất và thành công trên thế giới.
Mục tiêu, phạm vi nghiên cứu
Mục tiêu nghiên cứu là khám phá kiến trúc và hoạt động của mạng nơ-ron hồi quy (RNN) và LSTM, đồng thời áp dụng kiến trúc DeepSpeech 2 vào việc nhận dạng tiếng nói tiếng Việt Nghiên cứu sẽ tạo tập mẫu, huấn luyện và kiểm thử hệ thống nhận dạng tiếng nói, cùng với việc xây dựng một mô-đun hiệu chỉnh nhằm cải thiện độ chính xác của mô hình nhận dạng Phạm vi nghiên cứu bao gồm việc tìm hiểu cách thức liên kết và hoạt động của các lớp mạng nơ-ron trong kiến trúc DeepSpeech 2, cũng như xây dựng bộ dữ liệu chất lượng từ ba bộ dữ liệu mở: VIVOS, FPT và VIN Data, với mục tiêu đạt được gần 75% độ chính xác trong nhận dạng tiếng nói tiếng Việt.
Nhiệm vụ nghiên cứu và giới hạn đề tài
Nghiên cứu gần đây về nhận dạng tiếng nói trên thế giới và tại Việt Nam đã tập trung vào việc sử dụng MFCC để xử lý và trích xuất đặc trưng tiếng nói Một trong những ứng dụng đáng chú ý là việc áp dụng kiến trúc mô hình DeepSpeech 2 vào nhận dạng tiếng nói tiếng Việt Để đạt được kết quả tốt, việc chuẩn bị bộ dữ liệu chất lượng cho huấn luyện mô hình là rất quan trọng Quá trình huấn luyện và xây dựng chương trình nhận dạng tiếng nói tiếng Việt đã được thực hiện, kèm theo mô-đun hiệu chỉnh nhằm cải thiện độ chính xác của mô hình Đề tài nghiên cứu này giới hạn trong việc xây dựng mô hình nhận dạng tiếng nói tiếng Việt dựa trên kiến trúc DeepSpeech 2 Mặc dù dữ liệu huấn luyện và kiểm thử được xây dựng từ các bộ dữ liệu âm thanh mở, dẫn đến dữ liệu không đủ lớn, nhưng việc tích hợp mô-đun hiệu chỉnh đã giúp nâng cao độ chính xác lên 75% Mô hình nhận dạng hoạt động hiệu quả trong môi trường ồn ào, với tiếng nói rõ ràng, đặc biệt là giọng nam cao, giọng miền Nam và tốc độ nói không quá nhanh.
Phương pháp nghiên cứu
Nghiên cứu các kỹ thuật, kiến trúc mô hình đang được được ứng dụng rộng trên thế giới về vấn đề nhận dạng tiếng nói
Nghiên cứu áp dụng kiến trúc mô hình phù hợp cho nhận dạng tiếng nói tiếng Việt.
Kế hoạch thực hiện
Xây dựng chương trình xử lý tiếng nói và rút trích đặc trưng MFCC là bước đầu tiên trong việc phát triển bộ dữ liệu sạch cho huấn luyện nhận dạng tiếng nói tiếng Việt Tiếp theo, việc áp dụng kiến trúc DeepSpeech2 giúp xây dựng mô hình nhận dạng hiệu quả Cuối cùng, đề xuất mô-đun hiệu chỉnh nâng cao độ chính xác của mô hình dự đoán là yếu tố quan trọng để cải thiện hiệu suất nhận dạng.
Cấu trúc luận văn
Luận văn được phân thành 5 chương, trong đó:
Chương 1: Tổng quan – giới thiệu về sự phát triển của công nghệ nhận dạng tiếng nói, tình hình nghiên cứu của thế giới và trong nước
Chương 2: Cơ sở lý thuyết – giới thiệu về nhận dạng tiếng nói, mạng nơ-ron tích chập, mạng nơ-ron hồi quy
Chương 3: Thiết kế mô hình nhận dạng – trình bày kiến trúc mô hình, thu thập, xử lý dữ liệu, huấn luyện mạng, hiệu chỉnh văn bản đầu ra
Chương 4: Huấn luyện mô hình và kết quả đạt được
CƠ SỞ LÝ THUYẾT
Giới thiệu nhận dạng tiếng nói
2.1.1 Tổng quan về nhận dạng tiếng nói Âm thanh phát sinh từ nhiều nguồn ví dụ như tiếng nói, tiếng động vật kêu, tiếng trống, tiếng đàn từ các nhạc cụ, Âm thanh cần vật chất để lan truyền, do đó âm thanh không tồn tại trong môi trường chân không Âm thanh được biểu diễn trong miền thời gian và miền tần số Giả sử gọi t là thời gian, x là biên độ (độ biến thiên), thì ta có thể biểu diễn sự biến thiên biên độ theo thời gian của hàm sóng dạng Sin, với 𝑥(𝑡) = 𝐴𝑠𝑖𝑛(𝜔𝑡 + 𝜃) với A là biên độ, 𝜔 là tần số góc, 𝜃 là pha ban đầu, được minh họa ở Hình 2.1(a) bên dưới Và hình 2.1(b) là biểu diễn tín hiệu trong theo tần số Tương ứng với biên độ A trong miền thời gian là F0 trong miền tần số Trong thực tế, các tín hiệu có các dạng khác nhau, và để phân tích tính toán, người ta dùng phân tích Fourier
Hình 2.1: Biểu diễn tín hiệu theo thời gian và tần số
Tiếng nói là âm thanh phát ra từ miệng con người và được truyền qua không khí đến tai người nghe Nghiên cứu cho thấy âm thanh mà con người có thể nghe được nằm trong dải tần số từ 20Hz đến 20KHz Âm thanh có tần số cao hơn 20KHz được gọi là siêu âm, trong khi âm thanh dưới 20Hz được gọi là hạ âm.
Lĩnh vực xử lý tiếng nói ngày càng được chú trọng nhờ sự gia tăng đáng kể về tốc độ xử lý của máy tính Kết quả của sự phát triển này đã được ứng dụng rộng rãi trong thực tế, bao gồm tổng hợp âm thanh và nén âm thanh.
(compression), nhận dạng tiếng nói, nhận dạng người nói, xác định giới tính người đang nói, … (Hình 2.2)
Hình 2.2: Ứng dụng xử lý tiếng nói trong thực tế
Quá trình nhận dạng tiếng nói tự động trên máy tính bao gồm nhiều bước khác nhau để xử lý và phân biệt các tín hiệu âm thanh Qua đó, hệ thống sẽ đưa ra kết quả và tiếp tục với việc xử lý ngôn ngữ ở mức độ cao hơn.
Quá trình nhận dạng tiếng nói bao gồm ba bước chính: đầu tiên là tiền xử lý và rút trích đặc trưng, trong đó tín hiệu tiếng nói được thu thập, khử nhiễu, điều chỉnh biến dạng và rút trích các vec-tơ đặc trưng Tiếp theo, quá trình học mẫu và phân lớp diễn ra, sử dụng các vec-tơ đặc trưng để huấn luyện các mô hình nhằm phân loại tín hiệu thông qua các thuật toán như Heuristic, K-means, hoặc mạng nơ-ron nhân tạo Cuối cùng, quá trình nhận dạng so khớp mẫu được thực hiện, trong đó các vec-tơ đặc trưng được so sánh với các lớp đã phân loại trong mô hình huấn luyện để dự đoán tỷ lệ tín hiệu mới thuộc lớp nào, từ đó đưa ra kết quả nhận dạng.
Hiện nay, có ba phương pháp phổ biến trong nhận dạng tiếng nói: phương pháp âm học, phương pháp nhận dạng mẫu, và phương pháp ứng dụng trí tuệ nhân tạo.
2.1.2 Rút trích đặc trưng tín hiệu tiếng nói MFCC
Rút trích đặc trưng của tiếng nói là bước quan trọng trong nhận dạng tiếng nói Dữ liệu âm thanh lưu trữ trên máy tính thường khó xử lý và huấn luyện, do đó, việc rút trích đặc trưng tiếng nói trở nên cần thiết để cải thiện hiệu quả nhận diện.
Mục tiêu của công việc này là phân tích phổ spectral để xác định các thông tin quan trọng và đặc trưng của tiếng nói Quá trình rút trích đặc trưng sẽ tạo ra một hoặc nhiều vector đặc trưng, chứa các tham số có giá trị quan trọng của tín hiệu tiếng nói.
Có nhiều phương pháp rút trích đặc trưng, trong đó MFCC và LPC là hai phương pháp phổ biến Quá trình rút trích đặc trưng tín hiệu tiếng nói được mô tả trong Hình 2.4, trong đó tín hiệu âm thanh lưu trữ trên máy tính được biểu diễn dưới dạng số Mô hình hóa tín hiệu âm thanh trong máy tính được thực hiện thông qua một hàm s(n), với n đại diện cho thời gian (thường tính bằng mili giây) và s(n) là biên độ âm.
Bộ lọc tiền khuếch đại (pre-emphasis) được áp dụng vào tín hiệu nhằm khuếch đại tần số cao, giúp làm rõ tín hiệu Việc sử dụng bộ lọc này rất quan trọng để cân bằng tần số phổ, vì tần số cao thường có cường độ thấp hơn so với tần số thấp Ngoài ra, nó còn giúp tránh một số vấn đề trong quá trình biến đổi Fourier và cải thiện khả năng giảm thiểu tiếng ồn.
𝒚(𝒕) = 𝒙(𝒕) − 𝜶𝒙(𝒕 − 𝟏) 𝒗ớ𝒊: 𝟎 𝟗 ≤ 𝜶 ≤ 𝟏 Trong đó 𝛼 là hệ số khuếch đại, thường được lựa chọn 𝛼 = 0.97
Hình 2.5 và Hình 2.6 minh họa tín hiệu trước và sau khi khuếch đại
Hình 2.5: Tín hiệu trước khi khuếch đại [14]
Hình 2.6: Tín hiệu sau khi khuếch đại [14] v Phân đoạn tín hiệu thành các khung
Tín hiệu tiếng nói là đại lượng biến thiên theo thời gian, do đó không thể xử lý trực tiếp Để xử lý hiệu quả, tín hiệu được chia thành các khung nhỏ với kích thước 20-30 ms, giúp lấy được các đoạn tín hiệu ổn định Để tránh mất mát và gián đoạn tín hiệu, các khung thường được chồng lấp lên nhau khoảng 10-15 ms.
Trong quá trình xử lý rút trích đặc trưng, việc sử dụng cửa sổ tín hiệu giúp giảm thiểu gián đoạn ở đầu và cuối khung Cụ thể, một đoạn tín hiệu con xN(n) được lấy từ tín hiệu dài x(n) trong khoảng n0 đến n0 + N – 1, tương đương với việc nhân x(n) với hàm cửa sổ Phương pháp này làm cho khung tín hiệu trở nên mượt mà hơn, từ đó giúp các thành phần tần số cao xuất hiện rõ ràng trong phổ.
Trong xử lý tín hiệu số, các cửa sổ thường dùng được biểu diễn thông qua cửa sổ Hamming tổng quát:
Tùy theo các giá trị của 𝛼 mà ta có các cửa sổ khác nhau:
Với 𝛼 = 0.54, là cửa sổ Hamming (Hamming Window), dạng cửa sổ thường dùng nhất
Với 𝛼 = 0.5, ta có cửa sổ Hanning:
Ngoài ra, còn có các cửa sổ khác: Hình chữ nhật, Cosine, Blackman, Kaiser, tam giác, …
Sau khi lấy cửa sổ tín hiệu, quá trình rút trích đặc trưng tín hiệu diễn ra Luận văn này sẽ trình bày phương pháp rút trích đặc trưng MFCC, một kỹ thuật quan trọng trong mô hình nhận dạng tiếng nói tiếng Việt Rút trích đặc trưng tiếng nói MFCC giúp cải thiện độ chính xác trong việc nhận diện giọng nói.
Mel-Frequency Cepstral Coefficients (MFCC) are derived from the Mel frequency scale, a nonlinear frequency scale based on human auditory perception introduced in 1980.
Tóm tắt phương pháp rút trích đặc trưng MFCC qua sơ đồ khối Hình 2.7
Hình 2.7: Thuật toán rút trích MFCC [15] ỉ Biến đổi FFT (Fast Fourier Transform)
Biến đổi FFT là một phương pháp cải tiến của DFT (Biến đổi Fourier rời) sử dụng thuật toán nhanh, phục vụ cho việc xử lý âm thanh và hình ảnh FFT có tính chất thuận nghịch, bảo toàn tính tuyến tính, bất biến, tuần hoàn và tính trễ, với các công thức đặc trưng.
+ Biến đổi thuận (dùng khi phân tích tín hiệu):
(với k = 0, 1, 2, …N-1) + Biến đổi nghịch (dùng khi tổng hợp tính hiệu):
(với n = 0, 1, 2, …, N-1) Kết quả của sau khi thực hiện FFT, sẽ được đưa vào bộ lọc Mel ỉ Bộ lọc Mel
Mạng nơ-ron nhân tạo
2.2.1 Mạng nơ-ron sinh học
Hệ thống thần kinh sinh học của con người có thể được chia thành ba giai đoạn, biểu diễn bởi sơ đồ khối hình 2.12 bên dưới
Nơ-ron, hay tế bào thần kinh, là đơn vị cấu tạo cơ bản của hệ thần kinh và là phần quan trọng nhất của bộ não Chức năng chính của nơ-ron là cảm ứng và dẫn truyền xung thần kinh thông qua các tín hiệu hóa học Bộ não người chứa khoảng 10^11 nơ-ron, với mỗi nơ-ron liên kết với hàng nghìn nơ-ron khác Mức năng lượng tiêu thụ của mỗi nơ-ron ước tính khoảng 10^-16 J cho mỗi thao tác mỗi giây.
Hình 2.12: Sơ đồ khối hệ thống thần kinh sinh học
Cấu tạo nơ-ron thần kinh sinh học gồm 3 thành phần chính: Dendrite; Soma (Cell Body); Axon
Hình 2.13: Các thành phần một Nơ-ron sinh học [17]
Dendrite là những sợi mỏng, phân nhánh rộng, có khả năng vươn ra theo nhiều hướng khác nhau để tạo ra nhiều kết nối với các nơ-ron trong cụm Chúng đóng vai trò quan trọng trong việc nhận các kích hoạt từ các nơ-ron mà chúng liên kết.
Axon là một sợi dài, có nhiệm vụ truyền tín hiệu đầu ra của nơ-ron dưới dạng xung điện đến nơ-ron khác Quá trình giao tiếp giữa axon và dendrite diễn ra thông qua các synapses (khớp thần kinh).
(2) Soma (Cell Body): Xử lý các kích hoạt (activation) đầu vào (input), và chuyển chúng thành các kích hoạt đầu ra (output)
2.2.2 Mạng nơ-ron nhân tạo
Mạng thần kinh nhân tạo hay mạng nơ-ron nhân tạo (Artificial Neural Network
Mô hình mạng nơ-ron nhân tạo (ANN) được phát triển dựa trên cơ chế hoạt động của hệ thống thần kinh sinh học, bao gồm một số lượng lớn các nơ-ron kết nối với nhau để xử lý thông tin ANN học hỏi từ kinh nghiệm qua quá trình huấn luyện, cho phép nó lưu giữ tri thức và áp dụng những kiến thức này để dự đoán các dữ liệu chưa biết.
Nơ-rôn nhân tạo là đơn vị tính toán cơ bản nhất trong mạng nơ-ron, được mô phỏng theo đặc tính của nơ-ron sinh học Quá trình hoạt động của nó diễn ra qua hai giai đoạn: đầu tiên, tổng hợp trọng số với giá trị ngõ vào, sau đó áp dụng hàm phi tuyến Nơ-rôn nhận một tập hợp các ngõ vào, tính toán dựa trên các giá trị và trọng số tương ứng, và cuối cùng chuyển kết quả đến hàm phi tuyến để tạo ra đầu ra.
Khác với các hệ thống tính toán truyền thống, mạng thần kinh nhân tạo cần được huấn luyện để hoạt động chính xác Ưu điểm nổi bật của hệ thống này là khả năng học hỏi các mẫu input-output mới và điều chỉnh các tham số Việc học này giúp loại bỏ nhu cầu về các chỉ thị cố định cho các phép tính Người dùng chỉ cần cung cấp các mẫu input-output phù hợp cho mạng thần kinh nhân tạo Mô hình của mạng thần kinh được xác định bởi cấu trúc liên kết, loại mô hình và các quy tắc học, với mô hình nơ-ron McCulloch-Pitts là một ví dụ tiêu biểu.
Mô hình toán học đầu tiên của nơ-ron, được đề xuất bởi Warren McCulloch và Walter Pitts vào năm 1943, là nơ-ron nhân tạo mang tên Threshold Logic Unit (TLU) hay Linear Threshold Unit Nơ-ron này có tập các ngõ vào I1, I2, …, In với giá trị 0 hoặc 1 và một ngõ ra y, trong đó y có dạng nhị phân Nơ-ron TLU có thể được mô tả toán học thông qua một phương trình hàm.
Trong đó: W 1 , W 2 , …, W n là giá trị trọng số chuẩn hóa trong khoảng (0, 1) hoặc (-1, 1) và được liên kết với các input Sum là tổng trọng số (weighted sum) và
T là hằng số ngưỡng (Threshold Constant) Hàm f là hàm bước tuyến tính tại ngưỡng
T được mô tả ở hình 2.13 Biểu diễn tượng trưng về Linear Threshold Gate được trình bày ở hình 2.14
Hình 2.15: Mô hình của Linear Threshold Gate [17] v Perceptron
Mô hình nơ-ron perceptron của Rosenblatt là sự kết hợp giữa mô hình nơ-ron nhân tạo McCulloch-Pitts và quy luật học Hebbian, cho phép điều chỉnh các trọng số Bên cạnh việc thay đổi trọng số, perceptron còn bổ sung thêm một đầu vào gọi là bias, dẫn đến việc phương trình (2.13) được điều chỉnh để bao gồm giá trị bias (b).
Mô hình perceptron tổng quát được chia thành hai giai đoạn chính Giai đoạn đầu tiên là quá trình tính tổng (Sum-of-Product) giữa sự kết hợp tuyến tính của các giá trị đầu vào và trọng số tương ứng, cùng với giá trị bias Kết quả của giai đoạn này sẽ được truyền đến giai đoạn thứ hai, nơi thực hiện chức năng kích hoạt thông qua các hàm kích hoạt, từ đó tạo ra đầu ra cho mô hình.
Hình 2.16: Mô hình Perceptron [17] v Các hàm kích hoạt
Hàm kích hoạt (Activation Function) là các hàm chức năng quyết định đầu ra của mạng nơ-ron Một số hàm kích hoạt phổ biến bao gồm hàm bước (Step Function), trong đó ngõ ra 𝑦 có giá trị 1 khi 𝑥 ≥ 0 và 0 khi 𝑥 < 0; hàm tuyến tính (Linear Function); hàm Sigmoid; hàm Tanh; và hàm Relu Các hàm này đóng vai trò quan trọng trong quá trình huấn luyện mạng nơ-ron một lớp (Single layer).
Mạng nơ-ron đơn giản bao gồm các ngõ vào X i và ngõ ra Y i, với tất cả các ngõ vào được kết nối trực tiếp đến ngõ ra và mỗi kết nối mang một trọng số Để nâng cao khả năng tính toán, mạng nơ-ron cần có cấu trúc phức tạp hơn, được gọi là mạng nhiều lớp Mạng nhiều lớp khác với mạng đơn lớp ở chỗ có một hoặc nhiều lớp ẩn nằm giữa lớp ngõ vào và lớp ngõ ra Hình 2.17 minh họa sự kết nối của các nơ-ron trong mạng nhiều lớp.
Hình 2.17:Mô hình mạng nhiều lớp [17]
Mạng nơ-ron tích chập
Mạng nơ-ron tích chập (CNN) là một loại mạng nơ-ron nhiều lớp, trong đó ít nhất một lớp thực hiện phép toán tích chập thay vì phép toán nhân thông thường CNN được thiết kế đặc biệt để xử lý dữ liệu trong không gian 2 chiều, với ứng dụng nổi bật trong lĩnh vực thị giác máy tính Kiến trúc của mạng CNN cho phép xử lý một lượng lớn nơ-ron đầu vào mà không làm giảm độ chính xác của mô hình khi loại bỏ một số nơ-ron ở lớp ngõ vào.
Mạng CNN bao gồm các thành phần chính như lớp tích chập đầu tiên kết nối với ngõ vào và các bộ lọc, tiếp theo là lớp Pooling, sau đó là các lớp kết nối đầy đủ (Full Connected Layer - FC), và cuối cùng là hàm Softmax để phân loại các ngõ ra dựa trên giá trị xác suất trong khoảng (0, 1) Kiến trúc cơ bản của mạng nơ-ron CNN được thể hiện trong hình 2.18 dưới đây.
Hình 2.18: Mô tả kiến trức cơ bản của mạng CNN
Mạng CNN bao gồm các lớp cơ bản như lớp ngõ vào (Input Layer) để lưu trữ thông tin dữ liệu đầu vào, và lớp tích chập (Convolution Layer) thực hiện phép tính tích chập giữa các bộ lọc và lớp ngõ vào.
Bộ lọc (kernel) trong mạng nơ-ron tích chập được xác định bởi kích thước, thường là 3x3 hoặc 5x5, và độ sâu tương ứng với độ sâu của đầu vào; ví dụ, với ảnh màu GRB, độ sâu của bộ lọc là 3 Stride, hay bước trượt, quyết định số lượng điểm ảnh sẽ thay đổi, trong khi thông số padding là việc gán các giá trị 0 dọc theo biên của ảnh để duy trì kích thước đầu ra.
Stride = 1 thì sau khi gán padding, ma trận tạo ra lúc kernel kết thúc trược có kích thước bằng với ma trận đầu vào
Bằng cách trượt bộ lọc qua ma trận đầu vào theo cả chiều ngang và chiều dọc, ta thu được một bản đồ đặc trưng (Feature Map) của dữ liệu Mỗi bộ lọc tạo ra một ma trận riêng, do đó số lượng bộ lọc cần thiết phụ thuộc vào số lượng đầu ra mong muốn Sau khi có danh sách các ma trận từ các bộ lọc, chúng sẽ được đưa qua hàm kích hoạt, trong đó hàm kích hoạt ReLU là phổ biến nhất.
Lớp Pooling nằm giữa các lớp tích chập, giúp giảm kích thước dữ liệu mà vẫn giữ lại các thuộc tính quan trọng Trong lớp Pooling, padding và bước trượt Stride được áp dụng tương tự như trên lớp tích chập Các hàm phổ biến trong lớp Pooling bao gồm Max Pooling, Average Pooling và Sum Pooling Max Pooling, thường được sử dụng trong xử lý phân loại ảnh, tạo ra ma trận mới bằng cách lấy giá trị lớn nhất trong không gian cửa sổ Ví dụ, với kích thước cửa sổ 2x2 và Stride = 2, ma trận mới được hình thành từ 4 lần trượt để lấy giá trị lớn nhất.
Hình 2.19: Minh hoạ hàm Max Pooling
Lớp kết nối đầy đủ (Fully Connected Layer) là lớp cuối cùng trong mạng tích chập, nơi mô hình đã học được nhiều đặc điểm từ dữ liệu đầu vào thông qua các lớp tích chập và lớp Pooling Tại đây, ma trận ngõ ra của lớp Pooling được làm phẳng thành vector 1 chiều (1-D) và đưa vào lớp kết nối giống như mạng nơ-ron thông thường Hàm kích hoạt Softmax thường được áp dụng để phân loại ngõ ra.
Mạng nơ-ron hồi quy
Mạng nơ-ron hồi quy (RNN) là một loại mô hình mạng nơ-ron có cấu trúc tương tự như nơ-ron nhiều lớp, nhưng khác biệt ở chỗ cho phép kết nối giữa các đơn vị ẩn có độ trễ thời gian Nhờ vào các kết nối này, RNN có khả năng lưu trữ thông tin từ các đầu vào trong quá khứ, giúp khám phá mối tương quan theo thời gian giữa các sự kiện, ngay cả khi chúng cách xa nhau trong dữ liệu.
RNN (Mạng nơ-ron hồi quy) đang thu hút sự chú ý lớn trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) nhờ vào hiệu quả ấn tượng của nó Mạng này được ứng dụng rộng rãi trong mô hình ngôn ngữ, giúp đánh giá độ chính xác của câu dựa trên mức độ tương tự thực tế, từ đó hỗ trợ cho các công cụ dịch máy và tự động sinh văn bản Điểm nổi bật của RNN là khả năng xử lý chuỗi thông tin, khác với các mạng nơ-ron truyền thống, nơi mà các đầu vào và đầu ra hoạt động độc lập, điều này có thể gây khó khăn trong các bài toán ngôn ngữ cần sự liên kết thông tin giữa các yếu tố trước và sau.
Mạng nơ-ron hồi quy, mặc dù lý thuyết đơn giản và hiệu quả, gặp nhiều thách thức trong thực tế liên quan đến kích thước và chất lượng dữ liệu huấn luyện, thời gian huấn luyện, cùng với các vấn đề như mất đạo hàm và bùng nổ đạo hàm, dẫn đến độ chính xác của mô hình bị giảm sút.
2.4.1 Kiến trúc mạng nơ-ron hồi quy
Một mạng RNN có thể được xem là sự lặp lại của một tế bào (Cell) Cấu trúc của RNN được mô tả ở hình 2.20
Hình 2.20:Minh họa về sơ đồ của mạng RNN [18]
Các kết nối bên trong lớp ẩn cho phép lưu trữ thông tin để sử dụng trong các bước tiếp theo Như quan sát trong hình 2.20, đầu ra tại thời điểm t được xác định bởi dữ liệu đầu vào x t, và giá trị đầu ra 𝑜 ! được tính toán dựa trên giá trị ngõ vào này.
, trọng số W và dữ liệu đã được tính toán của bước t-1 trước đó là S t-1
Hình 2.21: Các dạng của mô hình mạng nơ-ron hồi quy [18]
Mạng RNN cơ bản có 5 dạng được mô tả như hình 2.21:
- Dạng 1: Ngõ vào một, ngõ ra một (khối 1): Chế độ Vanilla xử lý với ngõ vào và ngõ ra cố định, ứng dụng trong phân loại ảnh
Dạng 2 trong khối 2 là mô hình ngõ vào một và ngõ ra nhiều, trong đó ngõ ra được thể hiện dưới dạng chuỗi Mô hình này có ứng dụng quan trọng trong việc nhận dạng tiêu đề và mô tả cho một bức ảnh, với ngõ vào là một bức ảnh có kích cỡ cố định.
- Dạng 3: Ngõ vào nhiều, ngõ ra một (khối 3): Đầu vào là một chuỗi, phân tích và dự đoán một giá trị ngõ ra tương ứng;
- Dạng 4: Ngõ vào nhiều, ngõ ra nhiều (khối 4): Ngõ vào và ra dạng chuỗi, ứng dụng trong dịch máy
- Dạng 5: Ngõ ra nhiều, ngõ ra nhiều (khối 5): Đồng bộ giữa chuỗi ngõ vào và ngõ ra
2.4.2 Tính toán bên trong mạng nơ-ron hồi quy
Mỗi tế bào nơ-ron thực hiện các tính toán phức tạp dựa trên trọng số W, giá trị ngõ vào hiện tại x_t và giá trị đầu ra của tế bào trước đó a_{t-1} Bài viết dưới đây sẽ mô tả các thông số liên quan đến quá trình tính toán bên trong của tế bào RNN.
Hình 2.22: Mô tả tính toán bên trong 1 tế bào RNN [18]
Tại thời điểm t, giá trị dự đoán 𝒚s 𝒕 được tính toán dựa trên giá trị ngõ ra a t-1 từ nơ-ron trước đó và giá trị tính toán a t cho nơ-ron tiếp theo Các trọng số tương ứng với giá trị ngõ vào trước đó là W aa a (t-1), trong khi giá trị ngõ vào hiện tại là x t với trọng số W aa x (t) Giá trị bias tại thời điểm t cũng được tính đến Giá trị a t tại tế bào thời điểm t sẽ được sử dụng để tính toán cho tế bào ở thời điểm x t+1 tiếp theo, với hàm kích hoạt là hàm tanh.
(2.16) (2.17) dụng tính toán trong mạng RNN Mỗi đầu ra a t (sử dụng hàm tanh) và giá trị dự đoán y t (sử dụng hàm softmax) được xác định bởi công thức (2.16) và (2.17)
Huấn luyện mạng RNN gồm lan truyền tiến (forward) và lan truyền ngược (backward) để cập nhật các trọng số của mô hình v Lan truyền tiến trong mạng RNN
Với một tế bào RNN tính toán lan truyền tiến (rnn_cell_forward) được thực hiện như sau:
Bước 1: Tính các trạng thái ẩn bởi hàm kích hoạt tanh
𝑎 7 = tanh (𝑊 88 𝑎 7!) + 𝑊 89 𝑎 7 + 𝑏 8 ) Bước 2: Sử dụng trạng thái ẩn mới, tính giá trị dự đoán 𝒚s(𝒕) bởi hàm kích hoạt softmax:
𝑦y 7 = softmax(𝑊 :8 𝑎 7 + 𝑏 : ) Bước 3: Lưu trữ trạng thái tạm thời
Bước 4: Trả ra bộ giá trị gồm: 𝑎 7 , 𝑦y 7 , 𝑣à cache
Kiến trúc mạng RNN bao gồm các tế bào lặp lại, được kết nối với nhau để tạo thành một mạng lưới RNN Tổng quan về mạng RNN cho thấy cấu trúc của nó là một chuỗi các tế bào tương tác lẫn nhau.
Hình 2.23: Mô tả tính toán liên kết giữa các tế bào RNN [18]
Khi đó, việc tính toán lan truyền tiến toàn bộ mạng RNN được thực hiện bởi các bước sau:
Bước 1: Khởi tại vec-tơ zero cho ngõ ra a t , vec-tơ này được sử dụng lưu trữ các trạng thái được tính toán của mạng RNN
Bước 2: Khởi tạo trạng thái ẩn phía trước nơ-ron đầu tiên là a 0
Bước 3: Tiếp tục lặp lại các bước với thời điểm t tăng dần bằng cách cập nhật trạng thái ẩn tiếp theo và cache thông qua hàm tính toán trên một tế bào (rnn_cell_forward) Lưu trữ trạng thái ẩn tại thời điểm t vào biến a, đồng thời lưu lại giá trị dự đoán 𝒚s và thêm cache vào danh sách caches đã có trước đó.
Bước 4: Trả ra 𝒂, 𝒚s, 𝑣à 𝑑𝑎𝑛ℎ 𝑠á𝑐ℎ 𝒄𝒂𝒄𝒉𝒆 v Lan truyền ngược liên hồi
Huấn luyện mạng nơ-ron hồi quy (RNN) sử dụng thuật toán lan truyền ngược liên hồi (BPTT) do đạo hàm tại mỗi đầu ra phụ thuộc vào các tính toán ở cả bước hiện tại và các bước trước đó Điều này cho thấy rằng các tham số trong mạng RNN được sử dụng chung cho tất cả các bước trong quá trình tính toán.
Xem xét công thức tính ngõ ra tại mỗi tế bào RNN:
𝑦s = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠 7 7 ) Với 𝑦 7 là giá trị đích (target) ở bước t, và 𝑦s 7 là giá trị dự đoán Định nghĩa hàm mất mát (hay hàm lỗi) dạng cross entropy như sau:
Mỗi chuỗi đầy đủ (một câu) là một mẫu Khi đó, tổng số lỗi chính là tổng của tất cả các lỗi ở mỗi bước (mỗi từ) – hình 2.24
Hình 2.24: Mô tả lỗi của toàn mạng RNN [18]
Mục tiêu của bài viết là tính đạo hàm của hàm lỗi theo các tham số U, V, W bằng cách áp dụng phương pháp SGD (Gradient descent ngẫu nhiên) Tương tự như việc tính tổng các lỗi, chúng ta cũng cần cộng tổng các đạo hàm tại mỗi bước cho từng mẫu huấn luyện.
7𝜕𝑊 Áp dụng quy tắt vi phân (Chain Rule) để tính lan truyền ngược lỗi:
Trong đó, ⨂ là phép nhân 2 vectơ, 𝑧 ; = 𝑉 < ! Qua công thức này, 12 13 ! chỉ còn phụ thuộc vào 𝐲• , 𝑦 𝟑 ; và 𝑠 ; Nhưng với W và U thì được tính như sau:
𝜕𝑊 Với, 𝑠 ; = tanh (𝑈𝑥 7 + 𝑊𝑠 # ) phụ thuộc vào 𝑠 # và 𝑠 # lại phụ thuộc vào W, 𝑠 # không thể được xem là hằng số để tính toán với V được Vì thế biến đổi tiếp như sau:
Như vậy, với W, phải lan truyền từ t 3 về t 0 bằng cách phải cộng tất cả các đầu ra ở các bước trước
Hình 2.25: Mô tả tính lỗi lan truyền trong mạng RNN [18] Điểm khác với lan truyền ngược truyền thống là cộng tổng các đạo hàm của
W tại mỗi bước thời gian Tương tự lan truyền ngược dạng truyền thống, vec-tơ 𝜹 khi lan truyền ngược như sau
𝜕𝑧 # Với, 𝑧 # = 𝑈𝑥 # + 𝑊𝑠 # Các bước tiếp theo có thể tính toán tương tự như lan truyền ngược dạng truyền thống
2.4.3 Vấn đề bùng nổ đạo hàm và mất đạo hàm
Mạng RNN gặp khó khăn trong việc liên kết các từ khi chúng cách xa nhau, điều này xuất phát từ cách tính đạo hàm trong mô hình kiến trúc và hoạt động của mạng.
Kết quả thu được từ công thức này là một ma trận Jacobi :
Hàm kích hoạt, như hàm tanh và sigmoid, có đầu ra nằm trong khoảng [-1, 1], dẫn đến đạo hàm của hàm tanh bị giới hạn trong khoảng [0, 1] và đạo hàm của hàm sigmoid trong khoảng [0, 0.25] Hình 2.26 và 2.27 minh họa rõ ràng cho các đặc điểm của hàm tanh và hàm sigmoid.
Hình 2.26: Biểu diễn hàm tanh và đạo hàm [19]
Hình 2.27:Biểu diễn hàm sigmoid và đạo hàm [19]
Bùng nổ đạo hàm có thể tạo ra các giá trị rất lớn (NaN) khiến chương trình dừng hoạt động, nhưng chúng ta có thể thiết lập một ngưỡng giá trị tối đa cho đạo hàm để ngăn chặn tình trạng này.
Mất mát đạo hàm (vanishing) là một vấn đề khó xử lý trong học sâu Để khắc phục, có thể áp dụng một số giải pháp như khởi tạo hợp lý các tham số W, sử dụng hàm kích hoạt ReLU thay vì hàm tanh hay sigmoid Nhờ vào giá trị đạo hàm của hàm ReLU là 0 hoặc 1, chúng ta có thể kiểm soát phần nào vấn đề mất mát đạo hàm này.
THIẾT KẾ MÔ HÌNH NHẬN DẠNG
Giới thiệu về kiến trúc mô hình nhận dạng
The end-to-end model in deep learning significantly impacts speech recognition by directly converting audio to text Two popular models in this domain are Baidu Research's Deep Speech and Google's Listen, Attend and Spell (LAS) Both models utilize recurrent neural network (RNN) architectures but apply different approaches to speech recognition Deep Speech employs Connectionist Temporal Classification (CTC) loss for predictions, whereas LAS utilizes a Sequence-To-Sequence network architecture for text prediction.
Luận văn này xây dựng mô hình nhận dạng tiếng Việt dựa trên ý tưởng của mô hình được trình bày trong bài báo “Deep Speech 2: End-to-End Speech
Recognition in English and Mandarin” [2] – mô hình cải tiến từ Deep Speech 1 của
Baidu Research, được công bố 2015, công trình nghiên cứu này trình thực hiện trên tiếng Anh và tiếng Trung - Quan Thoại ( Mandarin)
Kiến trúc mô hình DeepSpeech2 được Baidu Research đề xuất mô tả hình 3.1
Hình 3.1: Mô hình kiến trúc Deep Speech 2 [2]
Kiến trúc Deep Speech 2 do Baidu Research đề xuất sử dụng dữ liệu đầu vào là spectrogram của tín hiệu âm thanh Kiến trúc này bao gồm từ 1 đến 3 lớp mạng nơ-rôn tích chập (CNN) 1D hoặc 2D, tiếp theo là từ 1 đến 7 lớp mạng hồi quy (RNN hoặc GRU Bidirectional), và kết thúc với lớp Fully Connected Đặc biệt, kiến trúc này áp dụng hàm mất mát CTC để dự đoán đầu ra.
Đề tài nghiên cứu tập trung vào việc tạo ra bộ dữ liệu chất lượng cho huấn luyện nhận dạng tiếng nói tiếng Việt, xây dựng mô hình dựa trên mạng nơ-ron hồi quy theo kiến trúc Deep Speech 2 Quá trình thực hiện bao gồm thử nghiệm và điều chỉnh các thông số mô hình hợp lý, nhằm tạo ra mô hình nhận dạng tiếng Việt với độ chính xác cao khi tiếp nhận tín hiệu âm thanh trong môi trường tự nhiên Hướng nghiên cứu được chia thành ba giai đoạn chính: tạo tập dữ liệu mẫu, huấn luyện mô hình nhận dạng tiếng nói, và cuối cùng là nhận dạng tiếng nói cùng với việc hiệu chỉnh độ chính xác.
Sơ đồ khối của mô hình nhận dạng tiếng Việt được áp dụng trong đề tài minh hoạ ở hình 3.2, gồm 3 công đoạn chính:
• Công đoạn (1): Rút trích đặc trưng của tín hiệu tiếng nói sử dụng phương pháp MFCC, đầu ra là một bộ vec-tơ đặc trưng của tín hiệu
Công đoạn huấn luyện trong quá trình xây dựng mô hình nhận dạng tiếng nói sử dụng đầu vào là bộ vectơ MFCC từ công đoạn trước và tập nhãn dữ liệu Quá trình này bao gồm việc truyền dữ liệu qua các lớp mạng CNN, lớp LayerNorm để chuẩn hóa, và mạng nơ-ron RNN, tiếp theo là lớp Fully Connected để tìm kiếm bộ trọng số tối ưu Kết quả đầu ra của công đoạn này là một mô hình có khả năng nhận vào vectơ MFCC và xuất ra vectơ xác suất cho các ký tự được nhận dạng.
Công đoạn thứ ba là dự đoán kết quả, trong đó sử dụng bộ vec-tơ đặc trưng kết hợp với mô hình đã được huấn luyện ở công đoạn trước Quá trình này bao gồm việc ghép nối các ký tự đã được nhận dạng để tạo thành văn bản hoàn chỉnh với các từ.
Trong công đoạn hiệu chỉnh, quá trình nhận dạng có thể gặp sai sót do độ chính xác của mô hình Do đó, các từ được nhận dạng sẽ được điều chỉnh để đảm bảo văn bản cuối cùng đạt chất lượng tốt nhất.
Hình 3.2: Sơ đồ khối hệ thống nhận dạng tiếng nói
Kiến trúc mô hình được mô tả trong hình 3.3 dựa trên DeepSpeech 2, trong đó đầu vào là tín hiệu âm thanh thô Quá trình tiền xử lý bao gồm giảm nhiễu, khuếch đại tín hiệu và rút trích đặc trưng, chuyển đổi thành biểu đồ phổ với kích thước (N_timesteps, N_frequency_features) Kích thước N_timesteps phụ thuộc vào độ dài tín hiệu âm thanh, trong khi N_frequency_features được xác định bởi số lượng đặc trưng được chọn Mạng học sâu (Deep Neural Network - DNN) bao gồm nhiều lớp mạng nơ-ron CNN và RNN, với đầu ra là xác suất P t (c) cho các ký tự tương ứng tại mỗi bước thời gian từ bộ ký tự cần nhận dạng.
Mô hình nhận dạng được huấn luyện với hàm mất mát CTC-Loss để nhận diện các ký tự từ tín hiệu âm thanh Do nghiên cứu tập trung vào nhận dạng tiếng Việt, phương pháp đánh giá tỉ lệ lỗi từ (Word Error Rate - WER) đã được chọn làm tiêu chí đánh giá độ chính xác của mô hình trong quá trình huấn luyện.
Hình 3.3: Mô tả về kiến trúc mô hình nhận dạng [20]
Trong mạng nơ-ron, thông tin tính toán chủ yếu là dạng số Giai đoạn cuối cùng là sử dụng bộ giải mã (Decoder) để chuyển đổi xác suất từ các ký tự số sang ký tự và từ tương ứng Hai bộ giải mã phổ biến cho mô hình áp dụng CTC-loss là Greedy Search và Beam Search.
Bộ giải mã Greedy Search chọn ký tự có xác suất cao nhất tại mỗi bước thời gian và kết hợp chúng thành một path có xác suất lớn nhất Quá trình này loại bỏ các ký tự trùng nhau và khoảng trắng, tạo ra chuỗi từ dự đoán cuối cùng Thuật toán này có ưu điểm là nhanh, đơn giản và dễ áp dụng, nhưng nhược điểm là chưa tối ưu, vì nếu một ký tự trong từ bị nhận dạng sai, toàn bộ từ đó sẽ bị coi là sai.
Bộ giải mã Beam Search thực hiện tìm kiếm toàn bộ không gian tại mỗi bước và chọn ra k kết quả có điểm số cao nhất, thay vì chỉ chọn 1 kết quả như Greedy Search Thông thường, k được chọn từ 5 đến 10, nhưng giá trị k càng lớn thì thời gian tìm kiếm càng tăng Với k = 1, Beam Search tương đương với Greedy Search Mặc dù Beam Search có nhược điểm về thời gian tìm kiếm, nhưng nó sẽ được cải thiện qua công đoạn hiệu chỉnh sau quá trình nhận dạng, do đó, trong luận văn này, tôi đã lựa chọn Beam Search để tăng độ chính xác.
Các kỹ thuật áp dụng trong mô hình
Chuẩn hoá dữ liệu cho từng tính năng giúp duy trì sự đóng góp của tất cả các tính năng, đặc biệt khi giá trị của một số tính năng vượt trội hơn so với các tính năng khác Việc này cũng giảm thiểu hiện tượng ICS (Internal Covariate Shift), tức 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ố trong quá trình huấn luyện Chuẩn hoá còn giúp ngăn chặn bùng nổ đạo hàm Hiện nay, có nhiều phương pháp chuẩn hoá, bao gồm Batch Normalization và Layer Normalization.
Layer Normalization là một phương pháp cải thiện tốc độ huấn luyện mạng bằng cách tính toán các số liệu thống kê chuẩn hóa từ đầu vào và tổng hợp chúng cho các nơ-ron trong lớp ẩn Phương pháp này chuẩn hóa đầu vào dựa trên các đặc trưng (features), giúp tối ưu hóa hiệu suất của mô hình học sâu.
3.2.2 Trình tối ưu và hệ số tốc độ học
Lựa chọn trình tối ưu (Optimizer) và hệ số tốc độ học (Learning Rate) là yếu tố quan trọng giúp mô hình hội tụ đến điểm tốt nhất Việc lựa chọn trình tối ưu phù hợp không chỉ tiết kiệm thời gian huấn luyện mà còn cải thiện khả năng tổng quát của mô hình Trong nghiên cứu này, tôi đã chọn trình tối ưu AdamW kết hợp với OneCycleLR (One Cycle Learning Rate Scheduler) Adam là trình tối ưu phổ biến trong máy học và học sâu, giúp mô hình hội tụ nhanh hơn nhưng không đạt được khả năng tổng quát tốt như SGD (Stochastic Gradient Descent) AdamW là phiên bản cải tiến của Adam, khắc phục vấn đề tổng quát hóa OneCycleLR, được giới thiệu trong bài báo "Super-convergence: very fast training of neural networks using large learning rates" năm 2019, cho thấy việc huấn luyện mạng nơ-ron nhanh chóng bằng cách sử dụng Learning Rate lớn, với ý tưởng bắt đầu từ tốc độ thấp, tăng tối đa và sau đó giảm dần về điểm ban đầu.
3.3.3 Đánh giá lỗi với CTC Loss
Mô hình được phát triển nhằm nhận diện các ký tự và dự đoán xác suất xuất hiện của chúng trong bảng ký tự, cụ thể là xác định ký tự 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à một thuật toán quan trọng trong mạng học sâu, đặc biệt trong nhận dạng tiếng nói và chữ viết tay Khác với các mô hình truyền thống yêu cầu dán nhãn chính xác từng ký tự vào các đoạn âm thanh, CTC cho phép tự động cân chỉnh khung và nhãn trong quá trình huấn luyện, với những vị trí không có ký tự được gán nhãn là “NULL” Đầu ra của mạng RNN sẽ nhận diện một chuỗi ký tự theo thời gian, và hàm CTC loss sẽ đánh giá độ chính xác của dự đoán so với nhãn huấn luyện Ví dụ, nếu mạng RNN dự đoán ra chuỗi “HHHHHeeeeeelllllllloooooo” thì cần loại bỏ các giá trị trùng lặp để so sánh với nhãn huấn luyện “Hello”.
“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
Mô hình sử dụng bộ giải mã tham lam (Greedy Search Decoder) để chuyển đổi dữ liệu thành văn bản cần nhận dạng, đồng thời đánh giá độ chính xác của mô hình thông qua hệ số WER (Word Error Rate) WER đo lường sự khác biệt giữa hai chuỗi văn bản ở cấp độ từ, từ đó phản ánh hiệu quả của quá trình giải mã.
WER được tính bởi công thức sau:
Hệ số WER (Word Error Rate) được tính bằng cách sử dụng các thông số: S (số từ bị thay thế), I (số từ được chèn vào), D (số từ bị xoá) và N (số lượng từ so sánh) Khi hai câu có sự khác biệt lớn, hệ số WER sẽ có giá trị cao.
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 bao gồm 12.420 tệp âm thanh định dạng wav, trong đó có 11.660 tệp dành cho huấn luyện và 760 tệp cho kiểm thử Số lượng câu được gán nhãn dao động từ 2 đến 35 từ Sau khi lọc các tệp rỗng và chuẩn hóa dữ liệu, bộ dữ liệu VIVOS hiện có 9.263 tệp âm thanh cho tập huấn luyện và 726 tệp cho tập kiểm thử.
Bộ dữ liệu VIN Data bao gồm 112.854 audio ban đầu Sau khi loại bỏ các tập tin quá dài, quá ngắn và dữ liệu rỗng, cũng như tiến hành chuẩn hóa, bộ dữ liệu huấn luyện còn lại có 20.000 audio, trong khi bộ dữ liệu kiểm tra gồm 6.426 audio.
Bộ dữ liệu FPT bao gồm 109.218 file audio định dạng mp3 với tần số lấy mẫu 48Khz Qua quá trình chuẩn hoá, các file được chuyển đổi sang định dạng wav và giảm tần số lấy mẫu xuống 16Khz Đồng thời, các tập tin quá dài, quá ngắn và rỗng nội dung đã được loại bỏ Kết quả thu được là tập dữ liệu train với 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
Nghiên cứu này tập trung vào mô hình nhận dạng chuỗi ký tự tiếng Việt, nhằm ghép nối các ký tự thành từ tương ứng Bộ dữ liệu cần thiết cho quá trình nhận dạng bao gồm 95 ký tự, bao gồm cả ký tự không dấu và có dấu, cùng với dấu cách Mỗi ký tự được đánh số thứ tự để thuận tiện cho việc mã hóa nhãn tín hiệu trong các bước tiếp theo Các ký tự này bao gồm: a, b, c, d, …, á, ả, à, ạ, ă, ắ, ằ, ẳ, ặ, â, ấ, ầ, e, ê, ế, ể, o, ô, ố, ổ, ơ, và nhiều ký tự khác Bộ dữ liệu này được coi là bản đồ số ký tự - mã hóa, giúp lưu trữ ánh xạ giữa ký tự và số, đồng thời hỗ trợ trong việc xây dựng bộ mã hóa và giải mã ký tự.
Xây dựng công cụ mã hóa nhãn ký tự sang số giúp tính toán và giải mã từ số sang ký tự để hiển thị văn bản Hàm mã hóa gán mỗi ký tự trong danh sách nhận dạng một số duy nhất, trong khi giải mã tìm ký tự tương ứng với số đó Bản đồ số ký tự này là yếu tố quan trọ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
Mô hình sử dụng dữ liệu đầu vào là các bộ vectơ chứa các đặc trưng của tín hiệu âm thanh Phương pháp rút trích đặc trưng MFCC được áp dụng để lấy ra những thành phần quan trọng từ tập tin âm thanh đầu 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
Hình 3.4: Minh hoạ tín hiệu số [14]
Sau khi áp dụng phương pháp rút trích đặc trưng MFCC, luận văn này lựa chọn sử dụng 128 bộ lọc, nhằm tạo ra các đặc trưng âm thanh chính xác và hiệu quả cho nghiên cứu.
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]
Để xử lý các tệp âm thanh có độ dài khác nhau, cần chuẩn hóa độ dài tín hiệu để tạo ra các bộ vectơ đặc trưng đồng nhất Giải pháp được đề xuất trong nghiên cứu này là sử dụng chiều dài của tín hiệu dài nhất làm chuẩn, bổ sung các dãy số không (padding) vào các tín hiệu ngắn hơn Qua đó, quá trình chuẩn hóa độ dài của bộ vector spectrogram được thực hiện, giúp chuẩn bị cho việc huấn luyện mô hình hiệu quả hơn.
3.3.4 Số hoá các nhãn văn bản
Máy tính không thể xử lý dữ liệu dưới định dạng văn bản, do đó cần mã hóa các nhãn thành vec-tơ số Mỗi từ được tạo thành từ các ký tự, và mỗi ký tự sẽ được mã hóa thành một số tương ứng theo bản đồ số ký tự đã đề cập ở mục 3.2.2, từ đó kết hợp lại để tạo thành bộ số cho từng nhãn dữ liệu.
Các nhãn sau khi được mã hóa sẽ có độ dài khác nhau tùy thuộc vào số lượng từ Do đó, chiều dài của bộ nhãn dài nhất được coi là chuẩn, và các bộ nhãn có độ dài ngắn hơn sẽ được chuẩn hóa bằng cách thêm padding zero.
3.3.5 Tăng cường đa dạng dữ liệu
Trong quá trình huấn luyện mô hình, tăng cường dữ liệu là cần thiết để mở rộng kích thước và đa dạng hóa tín hiệu, đặc biệt khi dữ liệu huấn luyện không đủ lớn Kỹ thuật này giúp tránh tình trạng overfitting, và trong nghiên cứu luận văn này, chỉ sử dụng 3 bộ dữ liệu không đầy đủ, do đó việc áp dụng tăng cường dữ liệu là rất quan trọng để giảm bớt tạp âm Một phương pháp đơn giản và hiệu quả để gia tăng dữ liệu là kỹ thuật tăng cường phổ (SpecAugment), đã được đề cập trong bài báo “SpecAugment: A Simple Data Augmentation Method for”.
Bài viết về "Nhận diện giọng nói tự động" chỉ ra rằng việc cắt bỏ các phần hoặc khối ngẫu nhiên từ phổ tín hiệu có thể làm tăng sự đa dạng và tổng quát của dữ liệu, từ đó cải thiện mô hình Hình 3.6 minh họa quá trình cắt phổ ngẫu nhiên này.
Hình 3.6: Mô tả ảnh phổ bị cắt ngẫu nhiên để tăng cường dữ liệu [14]
Xây dựng các lớp mạng nơ-ron
Mô hình được xây dựng dựa trên sự kết hợp của nhiều lớp mạng CNN, GRU, LSTM và lớp Fully Connected, đồng thời tích hợp các lớp chuẩn hóa LayerNorm và Dropout Sơ đồ mô tả cấu trúc các lớp mạng trong quá trình phát triển mô hình được trình bày trong hình 3.7.
Trong nghiên cứu này, cấu trúc mô hình mạng nơ-ron được thiết lập với các thông số cụ thể như sau: số lượng đặc trưng đầu vào là 128, số lớp đầu ra là 96 (bao gồm 95 ký tự cần nhận dạng và ký tự rỗng NULL) Hệ số learning rate được chọn là 0.0005, và kích thước batch size được điều chỉnh từ 3, 5, 20 đến 32 tùy thuộc vào số lượng dữ liệu và cấu hình máy tính trong quá trình thí nghiệm.
The neural network architecture consists of a pure CNN layer with an input of 1, an output of 32, a kernel size of 3x3, and a stride of 2, followed by three Residual Network (ResNet) layers Each ResNet layer is designed to enhance the model's ability to learn complex patterns through skip connections, improving overall performance and efficiency.
• 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
Bài viết mô tả cấu trúc của một mô hình mạng nơ-ron bao gồm hai lớp chuẩn hóa LayerNorm tương ứng với hai lớp CNN, tiếp theo là một lớp Fully Connected với đầu ra 512 hoặc 1024 tùy thuộc vào quá trình thử nghiệm Cuối cùng, mô hình sử dụng năm lớp mạng Bidirectional GRU hoặc LSTM, mỗi lớp đóng vai trò quan trọng trong việc xử lý dữ liệu đầu vào từ lớp trước đó.
• Một lớp Bidirectional GRU hoặc Bidirectional LSTM
• Dropout (p=0.1) ỉ Cuối cựng là lớp phõn loại gồm:
• GELU (Gaussian Error Linear Units function);
• 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 bao gồm hai khối chính: khối mạng CNN và khối mạng RNN Mạng nơ-ron CNN rất hiệu quả trong việc trích xuất các dữ liệu trừu tượng như hình ảnh và âm thanh Thay vì sử dụng lớp mạng CNN cơ bản (CNN Vanila), chúng ta áp dụng các lớp Residual CNN, được trình bày trong bài báo “Deep Residual Learning for ”.
Bài báo "Nhận diện hình ảnh" được xuất bản vào năm 2016 bởi nhóm tác giả Kaiming He đã chỉ ra rằng việc sử dụng kết nối Residual trong các mạng CNN có thể nâng cao độ 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 sử dụng mạng hồi quy hai chiều (BiRNN) giúp khai thác thông tin từ cả các thời điểm trước và sau thời điểm t, với hai mạng RNN chồng ngược hướng lên nhau Nghiên cứu trong luận văn thử nghiệm hai kiến trúc mạng mở rộng của RNN là GRU và LSTM, trong đó mạng GRU thực thi nhanh hơn và tiết kiệm tài nguyên, còn mạng LSTM mặc dù tính toán phức tạp hơn nhưng cho độ chính xác cao hơn.
Các lớp mạng CNN bao gồm các lớp chuẩn hoá như LayerNorm và áp dụng kỹ thuật Dropout với tỷ lệ p=0.1 Kỹ thuật Dropout giúp loại bỏ ngẫu nhiên một số nơ-ron trong lớp ẩn, từ đó giảm thiểu vấn đề quá phù hợp (overfitting) bằng cách loại bỏ chúng khỏi quá trình forward và backward Điều này đồng nghĩa với việc cần tăng số lượng epoch để hội tụ, đồng thời giảm khối 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 toàn bộ mô hình được thể hiện trong hình 6.2 Sau khi mô hình dự đoán chuỗi từ, kết quả sẽ được chuyển đến mô-đun hiệu chỉnh để khắc phục những thiếu sót về độ chính xác của mô hình.
Beam Search là một thuật toán quan trọng trong huấn luyện và kiểm thử mô hình nhận dạng, với giới hạn tìm kiếm được đặt ở mức 10 Tại mỗi bước nhận dạng, thuật toán sẽ tạo ra tối đa 10 câu có xác suất từ cao nhất và kết hợp chúng lại Cuối cùng, những câu trùng lặp sẽ được loại bỏ để đảm bảo tính độc đáo cho kết quả.
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 bao gồm việc tổ hợp tất cả các cặp từ có thể kết hợp từ 10 câu, với mỗi cụm đại diện cho các 2-gram riêng biệt Đối với một câu có độ dài L, sẽ có (L-1) cụm được tạo ra từ việc kết hợp từ ở vị trí thứ n với từ ở vị trí thứ n+1, bắt đầu từ n = 0 Trong mỗi cụm, các 2-gram được tạo ra từ các câu sẽ được liệt kê, đồng thời loại bỏ các 2-gram trùng lặp để đảm bảo tính duy nhất.
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”,
Bộ từ điển 2-gram được chuẩn bị từ dữ liệu thu thập từ các trang báo mạng và wiki tiếng Việt, với tổng số 2,514 tỷ từ thuộc các chủ đề kinh tế, văn hóa, xã hội, đời sống và giải trí Qua quá trình phân rã bằng công cụ mã nguồn mở Word Tokenize, bộ từ điển này bao gồm 20.217 cụm từ ghép có nghĩa, đi kèm với xác suất xuất hiện của từng cụm từ trong bộ dữ liệu Điều này giúp đánh giá mức độ phổ biến của các cụm từ, như “chúng ca”, “ta làm”, “làm việc”, và nhiều cụm từ khác.
“đoàn thể,0.0001000418” => xác suất xuất hiện, phổ biến là: “0.0001000418”;
“nguyên tắc,0.00010016” => xác suất xuất hiện, phổ biến là: “0.00010016”;
“phụ huynh,0.00001404” => xác suất xuất hiện, phổ biến là: “0.00001404”;
Mô-đun hiệu chỉnh sẽ phân tích từng cụm và so sánh các tổ hợp 2-gram với bộ từ điển cùng các thuật toán khác nhau Mục tiêu là tìm ra những 2-gram mới phù hợp nhất để thực hiện hiệu chỉnh Quá trình này được thực hiện qua ba công đoạn chính.
Trong công đoạn đầu tiên, chúng ta sẽ lấy từng 2-gram từ các cụm và so sánh với bộ từ điển Sử dụng thuật toán Levenshtein, chúng ta sẽ tính khoảng cách giữa các 2-gram này Những 2-gram có khoảng cách nhỏ nhất, tức là có độ tương đồng lớn nhất, sẽ được chọn để xem xét thay thế cho 2-gram cần hiệu chỉnh Số lượng tối đa được chọn ra là 10 bộ 2-gram.