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

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 quan sát tại các thời điểm t khác nhau. Tương ứng với mỗi trạng thái sẽ có một tập V = {o1, o2,,,,om} là tập tất cả các quan sát có thể được quan sát thấy trong mỗi trạng thái.
  • B = {bj(k)}: B là phân bố xác xuất quan sát được các quan sát o trong trạng thái Sj (hay qj).
  • Trong nhiều trường hợp chúng ta sẽ xem xét đến hai thành phần: Π = {πi} :phân bố xác suất khởi tạo, và QA = {qx,qy…} : QA (con của Q) là tập chấp nhận được.
Trên hình 1 biểu diễn một ví dụ của mô hình Markov ẩn với ba trạng thái Q = S1, S2, S3. Ở mỗi trạng thái thì sự kiện quan sát được sẽ thuộc trong tập V = (v1, v2, v3, v4), và B = (b1, b2, b3, b4) là phân bố xác xuất quan sát được sự kiện với bj(k) là xác xuất quan sát được sự kiện vk trong trạng thái Sj. Các trạng thái Sj được coi là ẩn đối với việc quan sát, đây cũng là lý do tại sao ta gọi đó là mô hình Markov ẩn.
Với mỗi mô hình Markov ẩn có ba vấn đề chính cần được xem xét:
-           Vấn đề  1 Tính toán độ tương đồng (Computing likelihood) :  cho mô hình λ(A,B,π) và chuỗi quan sát được O xác định độ tương đồng (likelihood) P(O|λ). Ví dụ trong nhận dạng tiếng nói, ta có quan sát O là tín hiệu tiếng nói và λ là mô hình, vậy bài toán cần giải là tính độ tương đồng P để mô hình λ quan sát được O.
-           Vấn đề 2 (decoding): Cho một chuỗi quan sát O và mô hình HMM λ(A,B,π), tìm ra chuỗi Q tối ưu nhất đã phát sinh ra O. Trong nhận dạng tiếng nói thì đây chính là bài toán nhận dạng, khi quan sát O là tín hiệu tiếng nói thì bài toán là tìm chuỗi âm vị Q tương ứng với tín hiệu này.
-           Vấn đề 3 (learning): cho một chuỗi quan sát O và tập các trạng thái của HMM, điều chỉnh các tham số λ = {A, B, π} của HMM để P(O| λ) lớn nhất. (Đây chính là bài toán huấn luyện mô hình. Bài toán này đem lại khả năng rất quan trọng của HMM đó là mô hình hóa đối tượng cụ thể trong thực tế với dữ liệu liên tục).
Lần lượt giải quyết ba vấn đề trên bằng ba thuật toán sau: Forward, Viterbi, Baum Welch. Để biết thêm chi tiết về các thuật toán này mời các bạn xem cuốn sách [1]

Vậy áp dụng mô hình HMM trong tổng hợp tiếng nói như thế nào?

Đầu tiên cần phải nói đến đó là để áp dụng HMM trong cả nhận dạng và tổng hợp tiếng nói hay xử lý ngôn ngữ tự nhiên, thì mô hình mà ta sử dụng cần phải tuân theo hai giả định vô cùng quan trọng đó là:

  • Xác suất xuất hiện của một trạng thái chỉ phụ thuộc vào trạng thái trước đó (Markov chain)
  • Xác suất của một quan sát đầu ra o chỉ phụ thuộc duy nhất vào trạng thái đã tạo ra quan sát đó (q).

Hình 2: Mô hình markov ẩn ba trạng thái trong xử lý ngôn ngữ tự nhiên.


Mô hình Markov ẩn trong tổng hợp tiếng nói

Trong thực tế mô hình Markov từ trái - sang phải như trong Hình 2 thường được áp dụng để mô hình hóa tham số dạng chuỗi. Hình 3 biểu diễn cách mà mô hình Markov ẩn được áp dụng trong tổng hợp tiếng nói.
Hình 3: Mô hình Markov ẩn trong tổng hợp tiếng nói
Ở đây các mô hình HMMs được sử dụng để mô hình hóa các tham số tiếng nói của một đơn vị ngữ âm trong một ngữ cảnh cụ thể. Đơn vị ngữ âm thường được sử dụng là âm vị, như trong hình hai mỗi mô hình HMM được sử dụng để mô hình hóa một âm vị, và các mô hình này được móc nối với nhau để mô hình hóa chuỗi âm vị, thông thường mỗi âm vị sẽ được mô hình hóa bởi một HMM có 3 hoặc 5 trạng thái. Ngoài ra, trong tổng hợp tiếng nói ta giả thiết rằng quan sát ot cũng chính là các tham số đặc trưng âm học và các tham số này bao gồm ct = [ct(1), ct(2), . . . , ct(M)] là các đặc trưng tĩnh (hệ số Mel) và các véc tơ động ct, ∆2cchính là delta và delta delta của hệ số mel ct (xem thêm về Mel Cepstral Analysis). Quan sát ot sẽ được viết dưới dạng:
Tiếp theo ta sẽ xem xét kỹ hơn đến hai quá trình quan trọng hình thành nên một hệ thống tổng hợp tiếng nói: Quá trình huấn luyện và quá trình tổng hợp, hai quá trình này được mô tả chi tiết trong Hình 4.
Hình 4: Quá trình huấn luyện và tổng hợp một hệ thống tổng hợp tiếng nói dựa trên mô hình Markov ẩn.
Quá trình huấn luyện sử dụng các cặp văn bản và audio tương ứng, trong đó các file audio sẽ được trích chọn thành các đặc trưng âm học gồm có các tham số Mel tĩnh và động nêu trên và tần số cơ bản F0. Văn bản thì sẽ được chuyển thành chuỗi các âm vị và sau đó thành chuỗi các mô hình HMMs móc nối với nhau. Sau khi có được các tham số đặc trưng âm học hay chính là các quan sát ot và các mô hình HMMs được móc nối với nhau. Ta sẽ tiến hành cập nhật tham số của các mô hình HMMs bằng thuật toán Baum Welch (hay chính là cách mà ta giải quyết vấn đề số 3 nêu trên).
Ở đây tồn tại thêm một vấn đề nữa, đó là tần số cơ bản F0 chỉ tồn tại ở âm hữu thanh, còn các âm vô thanh lại là nhiễu. Do đó để giải quyết vấn đề này người ta sử dụng một mô hình mở rộng hơn, đó là Multi-Space Probability Distribution Hidden Markov Model [2]. Mô hình này thường bao gồm một không gian véc tơ được sử dụng để mô hình hóa véc tơ hệ số Mel và hai không gian véc tơ dùng để mô hình hóa tần số cơ bản F0. Mỗi không gian trong mô hình được đặc trưng bởi một phân bố xác suất, mỗi quan sát của một trạng thái được mô tả như sau: o=(X,x) trong đó X là tập các không gian véc tơ, còn x là véc tơ đặc trưng.
Quá trình tiếp theo ta xem xét đến là quá trình tổng hợp. Từ đầu vào là một đoạn văn bản, chuyển hóa đoạn văn bản này thành chuỗi âm vị, sau đó lựa chọn mô hình Markov ẩn mô hình hóa tương ứng các âm vị, dựa theo các đặc trưng ngữ cảnh. Móc nối các mô hình HMM này theo thứ tự xuất hiện của âm vị, và tước lượng ra các quan sát đầu ra là các tham số Mel và tần số cơ bản F0, quá trình này chính là quá trình giải quyết vấn đề số 2 của mô hình Markov ẩn. Từ các tham số Mel ta xây dựng nên chuỗi các bộ lọc MLSA (Mel Log Spectral Approximation) và kết hợp với tính hiệu kích thích được tạo từ F0 ta sẽ được tính hiệu tiếng nói đầu ra [2].

Làm sao để chọn được mô hình HMM của một âm vị?

Như đã nói ở trên: "HMMs được sử dụng để mô hình hóa các tham số tiếng nói của một đơn vị ngữ âm trong một ngữ cảnh cụ thể". Vậy trong một ngữ cảnh cụ thể là như thế nào? Ta sẽ làm rõ điều này.
Bởi vì tần số cơ bản F0 bị ảnh hưởng rất nhiều bởi âm vị và các yếu tố ngôn ngữ học, tất cả các thông tin ngữ cảnh đều ảnh hưởng đến ngữ điệu, do đó các thông tin này cần được sử dụng trong trong quá trình xây dựng mô hình. Trong thực tế, mục đích sử dụng của các thông tin về ngữ cảnh chính là để phân cụm các mô hình HMMs cùng mô hình hóa một âm vị thành các cụm khác nhau tùy theo ngữ cảnh. Việc phân cụm thường sử dụng cây quyết định, trong đó ở các node là các câu hỏi về ngữ cảnh như: Âm vị hiện tại là gì, âm vị trái phải là gì, âm vị hiện tại là nguyên âm hay không, là âm hữu thanh hay âm vô thanh, rồi trong âm tiết, trong từ, trong cụm từ, trong câu có bao nhiêu âm vị, hay như thanh điệu hiện tại là gì,.. vân vân (Hình 5 mô tả một ví dụ về cây quyết định sử dụng trong tiếng anh). Dựa vào cây quyết định này trong quá trình huấn luyện ta sẽ phân được các cụm mô hình HMMs của mỗi âm vị theo ngữ cảnh, và cũng theo đó trong quá trình tổng hợp, tùy theo ngữ cảnh ta cũng chọn được mô hình HMM cho âm vị hiện tại để móc nối với HMM của các âm vị khác hình thành chuỗi mô hình HMM cuối cùng.
Hình 5: Ví dụ về cây quyết định ngữ cảnh

Lưu ý cuối cùng

Hệ thống tổng hợp tiếng nói dựa trên mô hình Markov ẩn là một hệ thống có khả năng tạo tiếng nói mang những phong cách khác nhau, với đặc trưng của nhiều người nói khác nhau, thậm chí là mang cảm xúc của người nói. Ưu điểm của phương pháp này là cần ít bộ nhớ lưu trữ và tài nguyên hệ thống hơn so với tổng hợp ghép nối, và có thể điều chỉnh tham số để thay đổi ngữ điệu. Tuy nhiên một số nhược điểm của hệ thống này đó là độ tự nhiên trong tiếng nói tổng hợp bị suy giảm hơn so với tổng hợp ghép nối, phổ tín hiệu và tần số cơ bản được ước lượng từ các giá trị trung bình của mô hình markov ẩn mà được huấn luyện từ các dữ liệu khác nhau, điều này khiến cho tiếng nói tổng hợp nghe có vẻ đều đều mịn mịn và đôi khi trở thành "nghẹt mũi".

Tài liệu tham khảo

1.            Jurafsky, D., Martin, J.H.: Speech and language processing. Pearson (2014)

2.            Masuko, T.: HMM-Based Speech Synthesis and Its Applications. 185 (2002)

Nhận xét

  1. Dạ anh ơi, các transition giữa các state trong cùng một âm vị nó sẽ thể hiện ý nghĩa xác suất gì ạ, vì em nghĩ âm vị là đã atomic rồi sao mình phải cầm nhiều state để biểu diễn ạ (Hình 4)

    Trả lờiXóa
    Trả lời
    1. Trên thực tế thì âm vị không hoàn toàn là "atomic", do đó người ta sử dụng nhiều state để mô hình hóa những thành phần nhỏ hơn âm vị, những thành phần này không thực sự được định nghĩa như một đơn vị cụ thể.

      Xóa

Đăng 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