1. Tacotron 2
Tacotron 2 là 1 mô hình tổng hợp tiếng nói trực tiếp từ văn bản đầu vào. Nó dựa trên sự kết hợp giữa convolution neural network (CNN) và recurrent neural network (RNN).
Có 2 thành phần chính trong Tacotron 2:
- 1 mạng seq2seq có tên Spectrogram Prediction Network dùng để dự đoán chuỗi mel spectrogram từ 1 chuỗi kí tự đầu vào.
- 1 phiên bản điều chỉnh của WaveNet tạo ra âm thanh dựa vào phổ Mel được dự đoán ở trên.
1 cách đơn giản hơn, Tacotron 2 hoạt động theo nguyên lý kết hợp của 2 mạng neural network: 1 cái chuyển đổi text sang Mel Spectrogram, cái còn lại chuyển từ Mel Spectrogram đấy sang các âm thanh tương ứng.
1.1 Spectrogram Prediction Network
Trong Tacotron, Mel Spectrogram được tính thông qua short-time Fourier transform (STFT) với: 50 ms frame size, 12.5 ms frame hop. Sau đó biến đổi sang mel scale bằng mel filterbank 80 channel trải dài 125Hz đến 7.6Khz.
Layer đầu tiên là embedding layer, tạo ra vector 512 chiều từ 1 chuỗi kí tự đầu vào. Sau đó embedding vectỏ được truyền qua 3 lớp 1D Convolution layer, mỗi lớp chứa 512 filter có size 5x1. Đây là filter size hợp lí vì nó giữ được thông tin character hiện tại, và 2 character trước nó và sau nó. Theo sau đó là lớp Mini-Batch Normalization, và activation function ReLU.
Đầu ra của Encoder sau đó được cho qua mạng Attention để tổng hợp lại chuỗi encode thành 1 context vector cố định cho mỗi step tại output Decoder. Trong bài báo sử dụng cơ chế location-sensitive attention để sử dụng trọng số attention tích lũy từ các Decoder time-step trước kết hợp đặc trưng ở vị trí hiện tại để tính toán trọng số. Điều này giúp model luôn tịnh tiến lên phía trước qua các input, loại bỏ các thông tin bị lặp lại hoặc bỏ qua của Decoder. Xác suất chú ý được tính thông qua chiếu inputs và đặc trưng vị trí lên một ma trận đặc trưng có kích thước 128 chiều.
Decoder là 1 mạng RNN tự hồi quy có mục tiêu là sinh ra Mel Spectrogram từ chuỗi input được encode. Prediction từ time-step trước đầu tiên được truyền qua mạng pre-net bao gồm 2 lớp fully connected, mỗi lớp có 256 unit theo sau là ReLU. Bài báo nhận thấy rằng pre-net hoạt động như là 1 information bottleneck rất cần thiết cho việc học các trọng số attention. Đầu ra của lớp pre-net được concatenate với đầu ra của mạng attention và được đưa qua 2 lớp LSTM với 1024 unit. Sau đó concatenate giữa đầu ra của LSTM và attention context vector được chiếu qua phép biến đổi tuyến tính để dự đoán spectrogram frame. Cuối cùng, các Mel Spectrogram vừa được dự đoán đi qua 5-layer convolution post-net để tạo ra thông tin bổ sung vào với Spectrogram ở trên để cải thiện khả năng tái cấu trúc âm thanh. Mỗi post-net layer được cấu thành bởi 512 filter có chiều 5x1 kết hợp với Batch Normalization, theo sau bởi hàm tanh.
Trong đó paper cũng thêm vào 1 lớp để dự đoán stop token để tự động kết thúc trước khi đến kích thước cố định.
1.2 Vocoder
Vocoder - hiểu đơn giản là bộ phát âm, được dùng để biến đổi dữ liệu từ định dạng Mel-spectrogram sang waveform (miền thời gian) mà con người có thể nghe được.
Âm thanh dạng waveform sau khi biến đổi STFT (Short time furier transform), ta tách thành 2 loại thông tin: magnitude và phase (cường độ và pha). Spectrogram chỉ là thông tin về magnitude. Điều đó đồng nghĩa với việc cần cả magnitude và phase mới có thể khôi phục lại âm thanh ban đầu. Như vậy, spectrogram mà model trả ra chưa đủ để phục dựng lại âm thanh dạng waveform.
Trước đây, tacotron sử dụng thuật toán Griffin-Lim để ước lượng ra phase dựa vào spectrogram. Sau đó khôi phục lại âm thanh dựa vào spectrogram (magnitude) và phase. Tuy nhiên cách này cho chất lượng âm thanh chưa hoàn hảo, âm thanh không trong, đôi khi xuất hiện nhiều nhiễu.
Trong tacotron2, nhóm tác giả đã tận dụng WaveNet - mô hình sinh âm thanh được nghiên cứu trước đó vài năm (và tất nhiên vẫn là của Google). WaveNet hoạt động dựa trên các dilation convolution. Nhìn vào hình minh họa, bạn có thể thấy rằng 1 điểm dữ liệu được sinh ra dựa trên các điểm dữ liệu trong quá khứ. Và với dilation convolution, phạm vi bao phủ được trải rộng ra hơn rất nhiều so với convolution thông thường.