Conformer Chú ý: Mọi người nên tìm hiểu kỹ về Transformer và Multi-head Self Attention trước khi đọc bài này. Câu hỏi cho người đọc: Có cần thiết áp dụng Macron-style và Relative Position Encoding cho Conformer trong các bài toán xử lý tiếng nói hay không? ASR Conformer Trước khi đi vào phần chính, chúng ta sẽ lướt qua xem hướng tiếp cận đang cho hiệu quả cao nhất trong nhận dạng tiếng nói, RNN-Transducer và những biến thể cải tiến của nó. Mô hình chung của một Neural RNN-Transducer được biểu diễn trong hình 1. Hình 1: Neural Transducer [1] Trong đó, Predictor và Encoder có thể được xây dựng bởi nhiều kiến trúc khác nhau như RNNs, LSTM hay Transformer để đưa ra các biểu diễn trung gian của các chuỗi đầu vào. Với Predictor là biểu diễn của chuỗi văn bản (label), và Encoder là biểu diễn của chuỗi audio-frame. Cùng với Predictor và Encoder, RNN-T loss được sử dụng để cực đại hóa tổng xác suất của mọi alignment giữa audio đầu vào và văn bản đầu ra, từ đó giúp cho mô hình học được alignme...
Trong bài viết về Cepstral Analysis tôi đã trình bày về các phép phân tích tín hiệu tiếng nói như biến đổi Fourier hay biến đổi sang miền cepstral. Và cũng lý giải tại sao việc biến đổi sang miền cepstral lại giúp ích cho việc trích chọn các đặc trưng của tín hiệu tiếng nói. Tuy nhiên, như vậy là chưa đủ. Để có thể thực sự áp dụng vào các bài toán thực tế như nhận dạng tiếng nói hay tổng hợp tiếng nói, ta cần phải tham số hóa các đặc trưng của tín hiệu tiếng nói. Và MFCC (Mel-frequency cepstral coefficients) là phương pháp được sử dụng phổ biến nhất, cũng như cho kết quả tốt nhất trong hầu hết các trường hợp. Bài viết này tôi sẽ đi sâu về việc làm sao để trích chọn ra đặc trưng của tín hiệu tiếng nói dựa trên phương pháp MFCC.
Vậy Mel là gì? Tại sao lại chọn Mel?
Thông thường khi phân tích một tín hiệu bất kỳ, người ta hay sử dụng biến đổi Fourier để biểu diễn tín hiệu trong miền phổ. Tuy nhiên, tai nghe con người lại không có sự nhạy cảm như nhau với mọi dải tần số, nó cảm nhận kém hơn ở những tần số cao hơn 1000hz. Do đó việc mô hình hóa tính chất này của tai người làm tăng khả năng nhận dạng của hệ thống. Một trong những cách phổ biến nhất là sử dụng thang đo mel, đây cũng là thang đo nhận thức về cao độ (pitch). Mỗi mel là một đơn vị của cao độ được xác định sao cho với các đoạn tín hiệu tiếng nói tương đương về mặt cao độ (những đường biểu diễn pitch của chúng giống nhau), thì cũng được phân tách bằng số lượng đơn vị mel như nhau [1]. Tần số mel có thể được tính từ tần số thông thường bởi công thức sau:
Mối quan hệ giữa tần số mel và tần số bình thường là tuyến tính khi f<=1000hz và logarithmic khi f>1000hz. Trong quá trình trích chọn đặc trưng MFCC, các hệ số mel-cepstral được tính toán bằng cách sử dụng các bộ lọc tam giác để thu thập các thông tin ở các dải tần số khác nhau.
![]() |
Công thức 1 |
Phương pháp trích chọn đặc trưng MFCC
Phương pháp trích chọn đặc trưng MFCC dựa trên việc chuyển đổi dữ liệu âm thanh đầu vào từ miền phổ sang thang đo tần số mel, từ đó trích chọn ra các hệ số cepstral tương ứng. Quá trình trích chọn đặc trưng MFCC gồm bẩy bước được mô tả trong hình 1:
![]() |
Hình 1: Quá trình trích chọn đặc trưng MFCC |
Pre-emphasis
Do cấu trúc đặc biệt của môi trường thanh quản nên mức năng lượng của các âm hữu thanh ở tần số cao suy giảm hơn so với tần số thấp, mà ở tần số cao vẫn có nhiều thông tin về formant có giá trị cho mô hình âm học (Acoustic model). Do đó, cần thiết phải nâng mức năng lượng của tín hiệu ở tần số cao để khai thác thêm thông tin. Để làm điều này, ta cho tín hiệu tiếng nói đầu vào qua một bộ lọc có đáp ứng như sau:
![]() |
Công thức 2 |
Trong đó 0.9 < α < 1. Hình 2 là một ví dụ thể hiện mức năng lượng của nguyên âm [aa] trước và sau khi được cho qua bộ lọc, rõ ràng rằng mức năng lượng ở các tần số cao được nâng lên đáng kể sau khi cho qua bộ lọc.
![]() |
Hình 2: Nâng mức năng lượng của âm [aa], (a) là trước và (b) là sau khi nâng. |
Windowing
Các tín hiệu tiếng nói thay đổi liên tục theo thời gian, thông tin theo đó cũng biến đổi nhiều và nếu trích chọn các thông tin trên toàn bộ tín hiệu thì nó sẽ thiếu ổn định, dẫn tới sự không chính xác. Do đó, để có được các đặc trưng thống kê coi như không đổi ta trích tín hiệu trong khoảng thời gian đủ ngắn bằng cách sử dụng một cửa sổ nhỏ. Thông thường cửa sổ được chọn là cửa sổ hamming, dùng cửa sổ này trượt trên toàn bộ tín hiệu để trích ra một loạt các frame, trong mỗi frame các thông tin đặc trưng được coi là tĩnh.
![]() |
Cửa sổ hamming. |
Ví dụ trên hình 3, ta sử dụng một cửa sổ với độ rộng 25ms (Window size) và trượt cách nhau 10ms (Frame shift) trên tín hiệu, đầu ra cuối cùng sẽ được một loạt các frame tín hiệu có độ rộng <= 25ms.
![]() |
Hình 3: Trích các frame tín hiệu bằng hàm cửa sổ. |
Biến đổi DFT
Với mỗi frame tín hiệu thu được, ta chuyển sang miền tần số bằng phép biến đổi DFT (Xem bài Cepstral Analysis ). Công thức biến đổi DFT như sau:
![]() |
Công thức 3 |
Bộ lọc Mel
Bước tiếp theo là chuyển đổi đoạn tín hiệu trong miền tần số sang thang đo mel bằng cách sử dụng công thức (1). Khi đã có biểu diễn tín hiệu trên thang đo mel, ta xem xét tới một đặc điểm quan trọng khác là tai nghe con người thu nhận âm thanh như những bộ lọc và chỉ tập trung vào những tần số nhất định. Dựa vào đặc điểm này ta sử dụng một loạt các bộ lọc tam giác tập trung nhiều vào tần số trung tâm để tính toán các hệ số mel. Thông thường có từ 20 đến 40 bộ lọc tam giác được sử dụng, trong đó tần số trung tâm của bộ lọc này tuyến tính cách đều (Cũng cách đều pitch) trên thang đo mel, và độ rộng của mỗi bộ lọc được xác định từ tần số trung tâm của bộ lọc phía trước đến tần số trung tâm của bộ lọc phía sau (Xem biểu diễn trên hình 4). Cuối cùng cho đoạn tín hiệu đi qua các bộ lọc và tính tổng các giá trị đầu ra tương ứng, ta sẽ được một chuỗi giá trị M=(m1, m2, ..., mk), với mỗi giá trị m lấy log(|m|²) ta sẽ được các hệ số mel.
![]() |
Hình 4: Các bộ lọc mel |
Biến đổi DFT ngược
Trong bài Cepstral Analysis, cho thấy rằng việc biến đổi tín hiệu tiếng nói sang miền cepstral giúp giải nhân chập và qua đó có thể phân tách rõ ràng các thành phần về nguồn âm cũng như bộ lọc đại diện cho cơ quan phát âm, chính các thông tin về bộ lọc này mới là những thông tin quan trọng nhất trong việc phân tách các âm vị [1]. Vì lý do này, bước tiếp theo của quá trình trích chọn đặc trưng là biến đổi DFT ngược để tính các hệ số cepstral. Công thức tính các hệ số cepstral này như sau:
Vì mục đích cuối cùng là phân loại các âm vị trong bài toán nhận dạng tiếng nói, nên ta chỉ lấy 12 hệ số cepstral đầu tiên chứa thông tin về bộ lọc đại diện cho cơ quan phát âm, và độc lập với thông tin về nguồn âm [1].
Năng lượng và các đặc trưng động
Ngoài 12 hệ số cepstral nói trên, hệ số thứ 13 chính là năng lượng trong mỗi frame. Năng lượng tương quan với sự xác định của mỗi âm vị (ví dụ như nguyên âm thường có nhiều năng lượng hơn phụ âm tắc), do đó nó rất hữu ích trong việc nhận dạng âm vị. Năng lượng trong mỗi frame là tổng tất cả năng lượng của từng mẫu trong frame đó. Công thức tính năng lượng của tín hiệu x[n] trong một frame từ t1 đến t2 như sau:
Thêm một điều quan trọng nữa là trong mỗi đoạn tín hiệu biểu diễn một âm vị thì thông tin không phải là tĩnh khi chuyển từ frame này sang frame khác. Chẳng hạn như trong một phụ âm tắc (stop consonant) khi chuyển từ trạng thái đóng sang bật âm chứa nhiều thông tin hữu ích cho việc định danh âm vị. Vì lý do này, ta thêm các đặc trưng động từ các hệ số cepstral để biểu diễn thông tin về sự thay đổi.
Từ 13 đặc trưng ban đầu, ta tính delta để biểu diễn tốc độ thay đổi của âm giữa các frame theo công thức:
Thông thường N được chọn là 2, chính là số frame trước và sau frame 't' hiện tại. Ct là véc tơ đặc trưng của frame hiện tại (bao gồm cả năng lượng). Tiếp theo tính thêm ΔΔC thể hiện gia tốc thay đổi của âm giữa các frame tín hiệu, công thức tính giống như trên chỉ có thay Ct bằng ΔCt.
Cuối cùng ta được một véc tơ đặc trưng MFCC có 39 đặc trưng bao gồm: 12 hệ số cepstral, 12 delta của hệ số cepstral, 12 delta-delta của hệ số cepstral, 1 năng lượng của khung tín hiệu, 1 delta năng lượng và 1 delta-delta năng lượng.
Tài liệu tham khảo
[1] Jurafsky D. and Martin J.H. (2014), Speech and language processing, Pearson.
Nhận xét
Đăng nhận xét