CHƯƠNG 1. NHẬN DẠNG GIỌNG NÓI (SPEECH TO TEXT) 1. Giới thiệu Nhận dạng giọng nói là một bài toán phức tạp và đã thu hút sự quan tâm và nghiên cứu sâu rộng từ cộng đồng khoa học và công nghệ. Tuy nhiên, thực tế là các nhà nghiên cứu đã tiến hành nghiên cứu về bài toán này từ rất lâu về trước, ngay vào những năm đầu của 1950.
Phát triển của bài toán nhận dạng giọng nói đã từ những vấn đề đơn giản như nhận dạng từng chữ số, phát triển qua việc nhận dạng 26 ký tự trong bảng từ điển Tiếng Anh, và hiện nay đã có thể nhận dạng được theo từng từ và câu hoàn chỉnh. Các phương pháp nhận dạng giọng nói đã phát triển từ các phương pháp đơn giản ban đầu dựa trên việc phân loại các đặc điểm âm thanh của các ký tự hoặc chữ số tương ứng. Đến những năm 1980, với sự xuất hiện của Hidden Markov Models (HMM), một mô hình học máy dựa trên thống kê có khả năng xử lý dữ liệu chuỗi thời gian, các hệ thống nhận dạng giọng nói trở nên phổ biến và được nghiên cứu rộng rãi, đồng thời độ chính xác của chúng tăng lên đáng kể. Sau đó, với sự tiến triển của mạng nơ-ron học sâu và phần cứng GPU, các model nhận dạng giọng nói đã chuyển sang các model kết hợp (hybrid) giữa HMM và mạng nơ-ron học sâu vào các năm đầu 2010.
Từ năm 2013 đến nay, các mô hình học sâu đầu cuối đã bắt đầu thay đổi các phương pháp kết hợp vì tính tiện ích và thuận tiện trong việc chuẩn bị dữ liệu, đào tạo mô hình và triển khai trong hiện thực. Từ năm 2013 trở lại đây, độ chính xác của các mô hình nhận dạng giọng nói đã tăng đáng kể. Ví dụ, Google đã có sự tăng từ khoảng 78% vào năm 2013 lên đến mức 95% hiện nay, gần bằng với độ chính xác của con người. Các mô hình nhận dạng giọng nói cũng đã được nhiều tập đoàn lớn như FPT, Vinrgroup, Viettel, Facebook.
bắt đầu tìm hiểu và nghiên cứu vào năm 2014 và 2015. Tuy nhiên, 4 việc thực hiện mô hình nhận dạng giọng nói cho Tiếng Việt gặp nhiều vấn đề hơn so với Tiếng Anh do các nguyên nhân sau: Ngữ pháp của Tiếng Việt quá đa dạng: Tiếng Việt có một hệ thống ngữ pháp phức tạp và đa dạng, bao gồm các quy tắc về cách sắp xếp từ và cụm từ, điều này tạo ra thách thức trong việc xây dựng các mô hình nhận dạng. Ngôn ngữ từ ghép: Tiếng Việt thường sử dụng các từ ghép để biểu đạt ý nghĩa, điều này làm cho việc phân tích và nhận dạng các từ trở nên phức tạp hơn. Nhiều phát âm vùng miền: Tiếng Việt có sự biến đổi về phát âm theo vùng miền, điều này làm cho việc xây dựng các mô hình nhận dạng cần phải có sự đa dạng và linh hoạt để có thể nhận diện được các biến thể phát âm này.
Tổng thể, việc thực hiện mô hình nhận dạng giọng nói cho Tiếng Việt đòi hỏi sự nghiên cứu và phát triển kỹ thuật đặc biệt để có thể vượt qua các thách thức đặc trưng của ngôn ngữ này. Kiến trúc mô hình nhận dạng tiếng nói Kiến trúc của một mô hình nhận dạng giọng nói gồm có các thành phần chính: Acoustic Front-end Acoustic Model Search Algorithm (Decoder) 5 Language Model Hình 1. Kiến trúc mô hình nhận dạng giọng nói Vai trò của Acoustic Front-end là chuyển đổi tín hiệu giọng nói thành các tính năng đầu vào để đào tạo các mô hình học máy. Tín hiệu âm thanh từ micro (microphone - thiết bị ghi âm) được chuyển đổi thành vectơ âm thanh có kích thước cố định.
Các tham số mô hình được ước tính từ các vectơ âm thanh của tập dữ liệu huấn luyện. Chức năng của hệ thống nhận dạng giọng nói tự động có thể được mô tả là trích xuất các tham số giọng nói của từng từ từ tín hiệu giọng nói âm thanh. Các tham số ngữ âm mô tả một từ thay đổi theo thời gian và chúng cùng nhau tạo ra khuôn mẫu đặc trưng cho từ đó. Trong giai đoạn huấn luyện mô hình, các mẫu từ đặc trưng sẽ được học và lưu trữ.
Đặc trưng âm học (Acoustic Front-end) Acoustic front-end liên quan đến việc xử lý tín hiệu và trích xuất tính năng. Trong nhận dạng giọng nói, mục tiêu chính của bước trích xuất đặc trưng là tính toán một chuỗi các vectơ đặc trưng để biểu diễn bằng số của tín hiệu đầu vào nhất định. Việc trích chọn đặc trưng thường bao gồm 3 giai đoạn. Giai đoạn đầu tiên được gọi là phân tích giọng nói.
Nó thực hiện phân tích quang phổ trên tín hiệu âm thanh và tạo ra chữ ký thô mô tả phổ của các quãng giọng nói trong một thời gian ngắn. 6 Giai đoạn thứ hai tổng hợp và mở rộng các đặc điểm vectơ, bao gồm việc kết hợp các đặc điểm hoặc thêm thông tin tĩnh và động. Giai đoạn cuối cùng là chuyển đổi các vectơ đặc trưng thành các vectơ nén, chẳng hạn như nén và phân tích thành phần chính, sau đó được đưa vào quá trình huấn luyện mô hình nhận dạng. Có nhiều cách để mô tả tín hiệu giọng nói ở dạng số.
Một số phương pháp trích chọn đặc trưng như: Phân tích thành phần chính (PCA), Phân tích phân biệt tuyến tính (LDA), Phân tích thành phần độc lập (ICA), Mã hóa dự đoán tuyến tính (LPC), Phân tích Cepstral, Phân tích thang tần số Mel, Phân tích ngân hàng bộ lọc, Tần số Mel hệ số epstral (MFCC), trích xuất tính năng dựa trên kernel, trích xuất tính năng động, tính năng dựa trên wavelet, phép trừ quang phổ và phép trừ trung bình cestral (CMS). Có nhiều loại biểu diễn đặc trưng được sử dụng nhưng phổ biến nhất trong nhận dạng giọng nói là phương pháp trích xuất đặc trưng MFCC. Phương pháp MFCC bao gồm các bước sau: Pre-emphasis: Tăng mức năng lượng của âm thanh tần số cao. Frame blocking và Windowing: Chia tín hiệu đầu vào thành các đoạn có khoảng thời gian đủ nhỏ.
Discrete Fourier Transform (FFT - Fast Fourier Transform): Chuyển đổi âm thanh từ miền thời gian và biên độ sang miền tần số bằng Biến đổi Fourier nhanh (FFT) cho từng đoạn tín hiệu. Mel Filter Bank: Tai người cảm nhận rất tốt âm thanh tần số thấp nhưng kém nhạy cảm với âm thanh tần số cao. Log: Lấy logarit thập phân của tín hiệu phổ mel để giảm độ lệch tần số. DCT: sử dụng phép biến đổi cosine rời rạc dựa trên các đặc trưng mới thu được.
Đầu ra của DCT là vectơ 13 chiều MFCC: Thêm kích thước tính năng biểu thị sự thay đổi tín hiệu thông qua đạo hàm bậc một và bậc hai trên các tính năng mới thu được 7 Hình 2. Các bước trích rút đặc trưng MFCC 1. Mô hình âm học (Acoustic Model) Mô hình âm học (Acoustic Model) là một trong những thành phần quan trọng nhất trong hệ thống nhận dạng giọng nói tự động, thể hiện các đặc điểm âm thanh hình thành nên các đơn vị giọng nói có thể nhận dạng được. Khi xây dựng một mô hình âm thanh, một vấn đề cơ bản và quan trọng là lựa chọn các bộ phận cơ bản của mô hình.
Tùy thuộc vào ngôn ngữ, âm thanh có thể được mô hình hóa bằng cách sử dụng một số loại đơn vị từ phụ. Các đơn vị cơ bản này có thể là từ, ký tự hoặc ở mức độ thấp hơn là âm vị… Việc chọn các đơn vị cơ bản khác nhau để huấn luyện mô hình có thể có tác động đáng kể đến độ chính xác của hệ thống nhận dạng giọng nói. Mô hình Markov ẩn (HMM) là một trong những mô hình thống kê được sử dụng phổ biến nhất để xây dựng mô hình âm thanh trong các bài toán nhận dạng giọng nói. Các mô hình âm thanh khác bao gồm mô hình phân đoạn, mô hình siêu phân đoạn (bao gồm cả mô hình động ẩn), mạng lưới thần kinh, mô hình entropy tối đa và trường ngẫu nhiên có điều kiện (ẩn), cùng với các mô hình khác.
Mô hình âm thanh là mô hình học cách biểu diễn thống kê các tín hiệu âm thanh riêng lẻ tạo nên một từ. Mỗi cách biểu diễn thống kê này được gán một nhãn gọi là mô hình âm vị. Mô hình ngôn ngữ (Language Model) 8 Mô hình ngôn ngữ là một tập hợp các ràng buộc đối với các chuỗi từ có thể chấp nhận được trong một ngôn ngữ nhất định. Những ràng buộc này có thể được thể hiện, ví dụ, bằng các quy tắc ngữ pháp chung hoặc đơn giản bằng số liệu thống kê về từng cặp từ được ước tính trên kho ngữ liệu huấn luyện.
Mặc dù một số từ phát âm giống như điện thoại nhưng con người thường không khó để nhận ra từ đó. Điều này chủ yếu là do họ hiểu ngữ cảnh và những từ hoặc cụm từ nào có thể xuất hiện trong ngữ cảnh đó. Các mô hình ngôn ngữ thường được huấn luyện dựa trên xác suất của n-gram (một chuỗi n từ liên tiếp trong một câu, gọi là n-gram của một câu), được tính bằng cách đếm chuỗi các từ liên tiếp trong một câu. Các mô hình ngôn ngữ phổ biến bao gồm mô hình nhị phân và mô hình ba ngôi.
Một mô hình ngôn ngữ có thể xác định xác suất của một từ mà người nói có thể sẽ nói tiếp theo dựa trên lịch sử của những từ được nói trước đó. Hiện nay, ngoài các mô hình ngôn ngữ n-gram, các mô hình phức tạp hơn sử dụng deep learning cũng có thể cho kết quả tốt hơn vì có thể học được mối quan hệ ngữ nghĩa giữa các từ, chẳng hạn như RNNLM, TransformerXL. Bộ giải mã (Decoder) Nhiệm vụ của giai đoạn giải mã là tìm ra chuỗi từ W có khả năng xảy ra nhất với chuỗi quan sát O và mô hình ngôn ngữ âm thanh. Vấn đề giải mã có thể được giải quyết bằng thuật toán quy hoạch động.
Vấn đề không phải là đánh giá khả năng tất cả các đường dẫn mô hình có thể tạo ra chuỗi quan sát O mà là tìm ra đường dẫn duy nhất qua mạng phù hợp nhất với O. Ước lượng một chuỗi trạng thái Đối với một chuỗi các quan sát trạng thái tốt nhất cho trước, chúng ta thường sử dụng thuật toán Viterbi. Trong các nhiệm vụ nhận dạng có vốn từ vựng lớn, sẽ khó áp dụng phương pháp đệ quy sử dụng thuật toán Viterbi để xem xét tất cả các từ có thể.