Chuyển đến nội dung chính

Convolution Augmented Transformer (Conformer) trong ASR và TTS

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

Cepstral Analysis

Cách tạo thành tiếng nói

Tiếng nói là một tín hiệu sóng âm lan truyền trong một môi trường nhất định để mang thông tin mà con người muốn truyền đạt. Sơ đồ của bộ máy phát âm của con người được biểu diễn trên Hình 1, trong đó không khí lần lượt từ Phổi (Lungs) đi qua thanh quản đến cổ họng (Pharyngeal cavity), sau đó sẽ đi vào khoang miệng (Oral cavity) hoặc khoang mũi (Nasal cavity). Trong quá trình này, đầu tiên các cơ bắp như cơ hoành đẩy không khí từ phổi đến thanh quản, tại đây nếu luồng khí này tương tác với dây thanh quản tạo ra dao động, thì tín hiệu tiếng nói cuối cùng sẽ là âm hữu thanh, còn nếu dây thanh quản không dao động hoặc ít dao động thì sau này sẽ tạo thành âm vô thanh. Sau đó luồng không khí sẽ đi qua cổ họng đến phần bướu lưỡi và đi vào khoang miệng hoặc khoang mũi. Với tín hiệu đi qua khoang miệng tín hiệu tiếng nói sẽ chứa các tần số formant, còn nếu đi qua khoang mũi, khoang này như một hộp cộng hưởng và kết hợp với khoang miệng nó sẽ tạo ra các tần số antiformant.
Hình 1: Bộ máy tạo tiếng nói

Mô hình tạo tiếng nói Fant

Hình 2: Mô hình Fant
Dựa trên quá trình tạo tiếng nói của con người, mô hình Fant được đề xuất như trong Hình 2, với G(z) đại diện cho bộ phần nguồn tạo tiếng nói (kết hợp của thanh quản, cổ họng,...), V(z) đại diện cho truyền âm và R(z) là tán xạ môi trường truyền. Ba thành phần này cấu thành lên một mô hình toàn điểm cực của toàn bộ cấu trúc các cơ quan đóng góp trong việc tạo ra tín hiệu tiếng nói: T(z) = G(z)V(z)R(z).

Trên đây tôi đã giới thiệu cho các bạn về quá trình tạo ra tín hiệu tiếng nói. Phần tiếp theo chúng ta sẽ cùng xem xét đến các phương pháp để phân tích một tín hiệu tiếng nói và ứng dụng của các phương pháp này.

Phân tích tín hiệu tiếng nói

Phân tích Fourier

Với một hệ thống thông thường ( bao gồm cả hệ thống tạo tín hiệu tiếng nói ), thường có hai vấn đề cần xử lý là: Phân tích hệ thống để tìm ra tín hiệu đầu ra của một hệ thống cho trước, và tổng hợp hệ thống là tìm cấu trúc ( hàm truyền đạt ) của một hệ thống khi đã biết các tín hiệu vào và ra. Trong những hệ thống liên tục, chúng ta có thể giải quyết các vấn đề trên dựa trên cơ sở các phương trình vi phân giữa các biến vào ra ( coi thời gian là một biến độc lập ). Tuy nhiên, việc giải các phương trình vi phân bậc cao này không hề đơn giản, nhất là với bậc càng cao [1].
Phương trình vi phân (1)
Một giải pháp đơn giản hơn rất nhiều đó là chuyển đổi tín hiệu sang miền tần số, và tần số được coi như một biến độc lập. Khi đó phương trình vi phân theo biến thời gian t có thể được chuyển thành phương trình đại số theo tần số w. Nghiệm của phương trình đại số này là một hàm theo biến tần số, sau khi thực hiện biến đổi Fourier ngược sẽ nhận được một hàm thời gian tương ứng [1].
Phương trình đại số trên miền tần số (2)
Trong thực tế, các tín hiệu tiếng nói mà ta cần xử lý trong các bài toán liên quan đến học máy đều là tín hiệu số rời rạc đã được lấy mẫu. Do đó tiếp theo đây ta sẽ xem xét việc chuyển đổi sang miền tần số của một tín hiệu rời rạc.
Xét một tín hiệu vào x[n] là tín hiệu rời rạc vô hạn, biểu diễn Fourier X(w) của x[n] được tính dựa theo công thức thứ nhất trong Hình 3, và công thức thứ hai trong Hình 3 chính là công thức của biến đổi Fourier ngược.
Hình 3: Biến đổi Fourier của tín hiệu rời rạc
Mặc dù x[n] là tín nhiệu rời rạc nhưng X(w) là liên tục và tuần hoàn trên miền phổ. Nếu ta tính biển đổi Fourier không phải của tín hiệu x[n] mà là của tín hiệu đầu ra y[n] khi cho x[n] đi qua một hệ thống có đáp ứng h[n] hoặc cửa sổ w[n], khi đó phép nhân chập sẽ được chuyển thành phép nhân thường và việc tính toán trên miền phổ có thể trở nên đơn giản hơn (Xem Hình 4 và Hình 5).
Hình 4: Nhân chập với đáp ứng của hệ thống
Hình 5: Nhân chập với hàm cửa sổ
Phép biến đổi Fourier cho phép chúng ta phân tích và tìm ra cấu trúc của các hệ thống phức tạp một cách đơn giản, tuy nhiên tín hiệu đầu vào không phải lúc nào cũng là vô hạn, trong các bài toán xử lý tín hiệu áp dụng trong học máy, tín hiệu mà ta cần xử lý thường là những tín hiệu rời rạc và hữu hạn. Do đó phần tiếp theo đây ta sẽ xem xét việc xử lý các tín hiệu rời rạc hữu hạn.

Discrete Fourier Transform

Thông thường trong thực tế các tín hiệu cần xử lý thường là những đoạn tín hiệu hữu hạn, và có thể áp dụng biến đổi Fourier cho một tín hiệu rời rạc hữu hạn (DFT) với giả thiết x[n] = 0 với 0<=n<N. Để làm điều này ta xếp chồng các đoạn tín hiệu có độ dài M>=N với x[n] = 0 trong khoảng N<=n<M.  Khi đó hiện tượng trùm tín hiệu sẽ không xảy ra và ta có được một tín hiệu tuần hoàn xp[n] với chu kỳ M, và tất nhiên là có thể biến đổi Fourier rời rạc trên tín hiệu có chu kỳ này cũng như tìm lại được tín hiệu gốc x[n] bằng cách lấy xp[n] trong khoảng từ 0 đến N và coi x[n] = 0 nếu n nằm ngoài khoảng trên. Biểu thức biến đổi DFT và DFT ngược được biểu diễn trên Hình 6.
Hình 6: Biến đổi DFT

Phân tích Cepstral

Theo mô hình Fant, tín hiệu tiếng nói đầu ra là kết quả của việc nhân chập tín hiệu kích thích đầu vào với đáp ứng xung t(n) (T(z) trong miền thời gian) của hệ thống phát âm. Nếu chúng ta quan tâm đến việc mô hình hóa các tham số đặc trưng của tín hiệu tiếng nói thì cần phải xem xét giải tích chập của đáp ứng T(z), và phân tích Cepstral là một cách phổ biến để giải phép tích chập như vậy.
Phân tích Cepstral của một phép nhân chập dựa trên quan sát sau:
Lấy Logarithm của X(z) ta được :

Nếu giá trị của Logarith(X(z)) là duy nhất và X̂(z) là biến đổi Z (khi z=e^jw thì đây trở thành biến đổi Fourier). Khi đó phép nhân chập trong miền Cepstral sẽ trở thành:
Phép nhân chập hai tín hiệu trong miền thời gian nay đã trở thành phép cộng trong miền cepstral. Chuyển từ biến đổi Z thành biến đổi Fourier với z = e^jw :
Biến đổi Fourier ngược ta sẽ được :
Có thể dễ dàng thấy rằng đầu ra biến đổi cepstrum c[n] là phần chẵn của x̂(n). Nếu x̂(n)  là thực và nhân quả thì x̂(n) có thể được tính ngược từ c[n], đây cũng chính là điều kiện pha tối thiểu.
Bây giờ ta thay biến đổi Fourier bằng biến đổi Fourier hữu hạn (DFT), ta được :
Ở mô hình Fant thống phát âm của con người có thể được mô hình hóa bằng đáp ứng xung t[n]=g[n]*v[n]*r[n], và với biến đổi sang miền Cepstral ta có thể dễ dàng giải tích chập này thành các phép cộng, từ đó có thể áp dụng vào việc tính Pitch, Formant và các đặc trưng khác của tiếng nói. Phần này tham khảo chủ yếu tại [2].

Tài liệu tham khảo

1. Phạm, T.N.Y.: Xử lỳ tín hiệu: Tín hiệu - hệ thống tuyến tính lọc số và DSP. Khoa học và kỹ thuật (2010)

2. Glass, J., Zue, V.: Automatic Speech Recognition, https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-345-automatic-speech-recognition-spring-2003/

Nhận xét

Bài đăng phổ biến từ blog này

Attention Mechanism

Trước khi đi sâu tìm hiểu về Attention ta sẽ xem xét một chút về mô hình S equence to S equence và lý do vì sao attention lại được áp dụng cho mô hình này. Tôi có đọc nhiều bài viết trên mạng và thấy có nhiều người cho rằng Sequence to Sequence model là một trường hợp đặc biệt của Auto-Encoder, hay là một mô hình học sâu, tuy nhiên đây là một nhầm lẫn tai hại về khái niệm. Thực tế việc sử dụng Auto-Encoder chỉ là một trong những giải pháp giải quyết các vấn đề về Sequence to Sequence, tuy nhiên thì đây là giải pháp được dùng phổ biến và hiệu quả nhất hiện nay, do đó trong bài viết này chúng ta ngầm hiểu Sequence to Sequence model cũng chính là Auto-Encoder model. Sequence to Sequence Models Sequence to Sequence models là một lớp các mô hình được đề xuất để giải quyết các lớp bài toán liên quan đến chuỗi như: Dịch máy, nhận dạng tiếng nói, tổng hợp tiếng nói,… Dịch Máy (Machine Translation): Là hệ thống tự động dịch văn bản từ ngôn ngữ nguồn sang ngôn ngữ đích. Hình 1: Ví dụ về dịch máy

Convolution Augmented Transformer (Conformer) trong ASR và TTS

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

Tổng hợp tiếng nói sử dụng mô hình Markov ẩn

Trong hai mươi năm trở lại đây, tổng hợp tiếng nói dựa trên mô hình Markov ẩn là một trong những hướng tiếp cận được nghiên cứu rộng rãi nhất cho đến khi các mô hình dựa trên mạng nơ ron học sâu xuất hiện. Trước khi đến với các mô hình học sâu, chúng ta cùng xem qua mô hình đã làm mưa làm gió mấy chục năm qua. Vậy mô hình Markov ẩn là gì? Hình 1: Mô hình Markov ẩn với ba trạng thái Mô hình Markov ẩn (HMM: Hidden Markov Model) là một mô hình máy trạng thái, mô hình này cho phép chúng ta xem xét đến hai thành phần là sự kiện quan sát được và các sự kiện ẩn. Ví dụ trong nhận dạng tiếng nói thì sự kiện quan sát được là các đặc trưng âm học của tiếng nói, còn sự kiện ẩn là các từ.  Một mô hình markov ẩn như biểu diễn trên hình 1 thường gồm có các thành phần chính sau:  Q = q1,q2,,,qN: Q là tập của N trạng thái A = a11,a12,,,,ann: A là ma trận chuyển trạng thái với aij là xác xuất chuyển từ trạng thái i sang trạng thái j, và ta có  O = o1,o2,,,,oT: O là một chuỗi T các qua