2.5.1. Sơ đồ quá trình tạo tiếng nói bình thường
28
2.5.2. Sơ đồ quá trình tạo tiếng nói cảm xúc
Hình 2. 8: Quá trình chuyển đổi cảm xúc trong tiếng Việt
2.5.3. Quá trình hoạt động
Khả năng chỉnh sửa, tạo ra các biến thể của giọng nói mà không bỏ qua chất lượng tiếng nói là phần quan trọng nhất, là ưu điểm của Flowtron so với các mô hình tổng hợp tiếng nói khác. Việc lấy mẫu từ tất cả các phong cách giọng nói tương đương với việc lấy mẫu giá trị z từ toàn bộ không gian z của Flowtron. Coi như không gian ban đầu với giọng nói bình thường là phân phối Gaussian với trung bình bằng 0 và giọng nói sẽ lấy mẫu là các giá trị z trong không gian đó. Điều chỉnh phương sai để giúp kiểm soát sự lan truyền của phân phối Gaussian. Khả năng lấy mẫu ở gần trung tâm cao hơn ở xa trung tâm phân phối hình cầu. Đặt phương sai bằng 0 tương ứng sử dụng luôn điểm trung tâm ban đầu dẫn đến việc không có sự thay đổi trong lời nói được tạo ra. Tăng phương sai sẽ giúp tặng độ lan tỏa xung quanh trong tâm không gian z được lấy mẫu, đồng thời duy trì các mẫu gần trung tâm hơn so với mẫu xa trung tâm. Lấy mẫu từ một phong cách, cảm xúc cụ thể tương đương với việc lấy mẫu từ một vùng cụ thể trong không gian z
29 của Flowtron. Đưa những âm thanh của cùng 1 cảm xúc, phong cách, lấy giá trị z từ chúng tính toán trọng tâm của chúng. Sử dụng trọng tâm này làm giá trị trung bình của phân phối Gaussian mới và điều chỉnh phưởng sai tức là điều chỉnh khoảng cách của vùng không gian mới đang được lấy mẫu. Cách tiếp cận này sẽ giúp tiết kiệm được rất nhiều thời gian huấn luyện và nguồn lực dữ liệu.
2.6. Huấn luyện mô hình
Gắn liền với sự phát triển của học máy, các mô hình ngày càng có cấu trúc phức tạp, dung lượng lưu trữ và số lượng tính toán ngày càng cao. Việc xây dựng môi trường thử nghiệm cũng là một yếu tố quan trọng. Sử dụng các siêu máy tính sẽ giúp tiết kiệm rất nhiều thời gian cho nghiên cứu.
Bảng dưới đây tác giả trình bày một số thông tin cơ bản về các môi trường được sử dụng.
Máy tính vật lí Google Cloud Model NVIDIA A100 NVIDIA Tesla P4
Loại Máy tính vật lí Máy ảo
Số lượng 02 01
SSD 1 TB 7.5 GB
GPU 40 GB 8 GB
Mục đích
- Huấn luyện với nhiều dữ liệu - Thử nghiệm, điều chỉnh tham số - Tổng hợp, suy luận và đánh giá - Xây dựng chương trình đánh giá Hệ điều hành Ubuntu 20.04 LTS Driver 450.142.00
Bảng 2-2. So sánh thông tin cơ bản giữa các môi trường sử dụng Ngoài ra, tác giả sử dụng một số bộ thư viện, phần mềm như sau:
•Ngôn ngữ chính Python, Jupyter Notebook, các thư viện đặc trưng như: torch 1.9.0, tensorboard, scikit-learn, matplotlib, librosa, pandas, numpy, six.
•Shell Script: thực hiện xử lý file âm thanh, nội dung văn bản, chạy thử nghiệm chương trình.
•Flask API, HTML, Java Script, MySQL: Xây dựng chương trình “Khảo sát chất lượng tiếng Việt tổng hợp có cảm xúc”.
30 Trước khi bắt đầu chương trình, tác giả lựa chọn 100 câu ngẫu nhiên từ bộ dữ liệu AnSpeech cho tập kiểm thử cho bài toán tổng hợp tiếng Việt thông thường, các câu này đều có độ dài từ 10 đến 30 từ, số lượng còn lại được sử dụng trong tập huấn luyện. Trong quá trình huấn luyện, tác giả thực hiện in giá trị lỗi của mô hình lên màn hình và quan sát. Chương trình tiếp tục đến khi giá trị lỗi này giảm đến giá trị nhỏ và ổn định. Các trường hợp khác như giá trị lỗi không ổn định (tăng, giảm liên tục và biên độ lớn) hay giá trị lỗi tăng, tác giả thực hiện dừng chương trình và kiểm tra lại. Khi giá trị lỗi đã hội tụ ( khoảng chênh lệch giữa mỗi lần in kết quả không quá 0,001), mô hình khởi tạo mel-spectrogram thời điểm đó được lựa chọn để đánh giá. Giai đoạn này được thực hiện với 1 số câu ngẫu nhiên, thông thường các câu này được lựa chọn từ các câu nói hằng ngày, bài báo trực tuyến. Sau đó, với mel-spetrogram này, mô hình WaveGlow đưa ra âm thanh. Tác giả thực hiện đánh giá bằng cách nghe trực tiếp.
2.7. Thiết kế thử nghiệm
2.7.1. Tổng quan
Tác giả xây dựng kịch bản thử nghiệm phân thành 03 nhóm:
•Nhóm 1: Thử nghiệm hệ thống tổng hợp tiếng Việt thông thường.
•Nhóm 2: Thử nghiệm chuyển đổi cảm xúc cho tiếng Việt.
•Nhóm 3: Thử nghiệm so sánh thời gian huấn luyện trên các phần cứng khác nhau.
Nhóm 1 bao gồm các thí nghiệm …. mục tiêu phát triển thành công mô hình tổng hợp tiếng Việt giọng trần thuật, có độ tư nhiên cao, dễ hiểu, phát âm rành mạch, rõ chữ. Trong nhóm này, các thử nghiệm giữa Tacotron 2, Flowtron trong hai bộ dữ liệu AnSpeech và các câu bình thường của tất cả các nghệ sĩ trong bộ BKEmo.
Thử nghiệm trong nhóm 2 có nhiệm vụ xây dựng hệ thống chuyển đổi cảm xúc cho tiếng Việt. Với chất lượng âm thanh được đảm bảo từ Nhóm 1, tác giả sử dụng 30 câu mỗi cảm xúc. Bộ dữ liệu được sử dụng là BKEmo.
Sau khi đã hoàn thành được hệ thống tiếng nói, tác giả thực hiện thí nghiệm so sánh trên 02 môi trường khác nhau về phần cứng và được hoàn toàn giống nhau
31 về phần mềm. Trong thực tế, thời gian huấn luyện bị ảnh hưởng rất nhiều về tốc độ đọc ghi, xử lý, tính toán của thiết bị phần cứng.
Hình 2. 9: Các thí nghiệm nhóm 1 và luồng lưu trữ
2.7.2. Thí nghiệm 01 – Mô hình M1
Bộ dữ liệu sử dụng: AnSpeech. Trong đó có 9696 câu dành cho huấn luyện và 100 câu dành cho kiểm thử. Tác giả sử dụng kiến trúc mô hình: Tacotron 2 với sự thay thế hàm batch-norm bằng instance-norm ở bộ Decoder, giữ nguyên các lớp PreNet và PostNet ở bộ Decoder (khác với việc loại bỏ 2 lớp này khi áp dụng trong kiến trúc Flowtron ở các thí nghiệm sau). Thí nghiệm được thực hiện trên siêu máy tính NVIDIA A100. Mô được thực hiện trong điều kiện không sử dụng pretrained- model và một số tham số cơ bản như learning rate = 1e-3, weight decay = 1e-6 với kích thước cho mỗi batch là 12. Sử dụng kích thước này để đảm bảo có thể tối đa dung lượng bộ nhớ 40GB GPU của máy tính nhưng vẫn đảm bảo được thời gian huấn luyện sau từng iteration là hợp lý. Thử nghiệm quá trình khởi tạo âm thanh sau 1 số bước nhất định nên cần đảm bảo thời gian huấn luyện phù hợp. Hệ thống tự động thực hiện lưu trữ mô hình sau mỗi 1,000 iteration tương ứng 24 phút. Mô hình được dừng lại quá trình huấn luyện sau 302,000 iteration. Mô hình hình được gọi là M1.
32
2.7.3. Thí nghiệm 02 – Mô hình M2
Giống như sơ đồ tổng quan hệ thống đề xuất, tác giả sử dụng kiến trúc Flowtron với bộ dữ liệu AnSpeech. Tác giả thực hiện ba lần với lần đầu không sử dụng pretrained-model là mô hình M1 và những lần còn lại sử dụng mô hình tốt nhất của Thí nghiệm 01.
Trong lần thử nghiệm đầu tiên, kích thước của mỗi batch được giảm xuống 6 và sử dụng thêm lớp Attention Conditioning thay vì chỉ sử dụng lớp Location Attention và LinearNorm ở Tacotron2. Việc sử dụng lớp Attention này khiến thời gian huấn luyện tăng lên gấp 3 lần so với bình thường. Kết quả thu được sau 100,000 iteration được tác giả đánh giá là âm thanh tương đối tự nhiên nhưng không rõ ngữ nghĩa.
Trong lần thử nghiệm thứ hai, tác giả đã sử dụng mô hình M1 để làm điểm khởi đầu cho mô hình học. Điều này sẽ giúp mô hình học được sự chú ý tốt hơn và khả năng hội tụ nhanh hơn. Cùng với đó không sử dụng lớp Attention Conditioning, gia tăng kích thước batch trở lại 12. Thời gian huấn luyện là 28 phút cho mỗi 1,000 iterations. Chương trình được dừng lại ở 129,000 iteration, mô hình đã hội tụ và đạt kết quả tốt hơn 1 chút so với Tacotron. Tuy nhiên hiện tượng với rất nhiều văn bản đầu vào có độ dài khác nhau, câu đầu ra vẫn có thời gian cố định. Nguyên nhân được dự đoán là do mô hình chưa học được cơ chế gate. Và trong lần cuối cùng, tác giả thực hiện tương tự như trên nhưng điều chỉnh kích thước từng batch xuống 6. Tăng learning rate từ 1e-4 lên 5e-4. Với 14 phút huấn luyện hoàn thành 1,000 iterations và sau 200,000 iterations, cơ chế gate đã bắt đầu thấy hiện tượng hội tụ, giá trị hàm mất mát ở mức rất thấp. Mô hình tốt nhất được lưu trữ với tên gọi M2.
2.7.4. Thí nghiệm 03 – Mô hình M3
Tiếp tục với duy nhất bộ dữ liệu AnSpeech, tác giả tăng giá trị K cũng là số flows của lớp Afin ghép nối lên 2 và kết hợp với mô hình tốt nhất của Thí nghiệm
33 02, các tham số khác vẫn được giữ nguyên. Kết quả thu được là vượt trội so với các kết quả khác. Sau 39,000 iteration, mô hình đã học được sự hội tụ và dừng chạy chương trình sau 90,000 iterations. Tổng thời gian huấn luyện cho mô hình M3 là 450 phút.
2.7.5. Thí nghiệm 04 – Mô hình M4
Trên sự gia tăng chất lượng câu nói từ mô hình M1 đến mô hình M3, tác giả triển khai thí nghiệm 04 bằng cách tăng K lên 3. Nhận thấy chất lượng âm thanh đã tự nhiên, dễ hiểu nhưng sự ngắt nghỉ chưa tốt, sự ảnh hưởng của dấu câu xuất hiện ở một số thử nghiệm nhưng chưa rõ rệt trên toàn bộ tập kiểm thử, tác giả thực hiện xử lý dữ liệu văn bản của AnSpeech với duy nhất đấu “,” để ngắt nghỉ và dấu “.” ở kết thúc tất cả các câu. Theo tác giả, nguyên nhân là do bộ dữ liệu AnSpeech không phải dữ liệu tự nhiên nên các dấu câu như “?”, “!”. “;” sẽ không có sự khác biệt trong cách phát âm của âm thanh. Do đó, tác giả sẽ loại bỏ hết các dấu câu này. Độ dài của câu được giới hạn từ 5 đến 25 từ trong 1 câu. Kết quả thu được tốt nhất sau 7,000 iterations tương ứng 28 phút huấn luyện. Câu tổng hợp đã có sự ngắt nghỉ sau các bước xử lý trên. Mô hình M4 được lưu trữ. Tác giả nhận thấy chất lượng mô hình đã đảm bảo, kích thước lưu trữ cho mỗi mô hình cũng lên đến gần 1GB nên sẽ dừng thử nghiệm không tăng giá trị K để chuyển sang nhóm thử nghiệm thứ hai.
2.7.6. Thí nghiệm 05 – Chuyển đổi cảm xúc
34 Trong bài báo gốc [31], tác giả của Flowtron có nói “Thiết lập của chúng tôi sử dụng một mạng neural là mô hình khởi tạo bằng cách lấy mẫu từ phân phối đơn giản p(z). Chúng tôi xem xét hai phân phối đơn giản có cùng số kích thước như biểu đồ mel mong muốn của chúng tôi: phân phối Gaussian hình cầu trung bình bằng 0 và một hỗn hợp Gaussian hình cầu với các tham số cố định có thể học được”. Điều đó có nghĩa là Flowtron là một mô hình có khả năng ánh xạ từ miền không gian phân phối các kiểu nói sang miền không gian tiềm ẩn Z. Cụ thể ở đây tác giả sử dụng phân phối Gaussian hình cầu trung bình bằng 0 cho miền không gian Z . Trong Hình 2-9, miền không gian gồm các hình tròn to, các điểm màu xanh đại diện tương ứng cho các kiểu nói khác nhau, tất cả các điểm đó đều nằm trong một phân phối chuẩn với giá trị trung bình bằng 0, việc thay đổi phương sai giúp thay đổi sự lan truyền xung quanh điểm trung tâm của vùng trong không gian Z được lấy mẫu. Đặt phương sai bằng 0 nghĩa là không có sự thay đổi trong lời nói được tạo. Việc lấy mẫu từ các phong cách nói cụ thể tương đương với việc lấy mẫu từ một vùng cụ thể trong miền không gian Z của Flowtron, và với mỗi phong cách nói cụ thể đó sẽ tương ứng với một phân phối Gaussian khác. Vùng phân phối phong cách, cảm xúc mục tiêu sẽ được đại diện bởi các hình tròn màu đỏ với các điểm màu đỏ.
Dựa trên lý thuyết đó, tác giả muốn tìm kiếm mối liên hệ giữa vùng phân phối cảm xúc bình thường ( lời nói trần thuật) với vùng phân phối cảm xúc mục tiêu ( buồn hoặc vui) bằng cách thực hiện tính toán mối liên hệ giữa tâm của hình cầu màu xanh ban đầu với tâm của hình cầu đỏ tiếp theo. Các câu thu từ giọng người thật sẽ được cung cấp cho Flowtron. Flowtron, với khả năng đảo ngược hàm ánh xạ từ các lớp Afin sẽ tìm được các giá trị z tương ứng đó. Tính toán tâm của chúng và sử dụng giá trị này làm giá tị trung bình của phân phối Gaussian mới.
Về thực nghiệm, tác giả sử dụng bộ ngữ liệu BKEmo để huấn luyện. Tác giả lựa chọn ngẫu nhiên 30 câu cảm xúc buồn của Nghệ sĩ Ngô Ngọc Trung và 30 câu cảm vui của nghệ sĩ Nguyễn Đức Tâm. Trong đó, với các câu văn bản sẽ được đi qua mô hình M4 để vector hóa từng từ ngữ trong văn bản. Các file âm thanh qua công cụ stft của ngôn ngữ python tính toán giá trị mel-spectrogram. Tiếp theo đó, các giá trị mel-spectrogram này đi qua mô hình M4 để tìm ra các giá trị z tương ứng. Kết thúc bước này tác giả có một tập các điểm z đại diện cho các câu cảm xúc mục
35 tiêu được thu từ người thật. Tập điểm này chính là phân phối mới của cảm xúc. Giá trị tâm và phương sai của phân phối này chính là giá trị trung bình và độ lệch chuẩn của tập các giá trị z. Từ đó có thể chuyển đổi cảm xúc từ phân phối ban đầu sang vùng phân phối mới với trung bình và phương sai mới được tính toán. Bước tiêp theo, mô hình M4 sẽ tạo ra các mel-spectrogram dựa trên văn bản đầu vào và phân phối chuẩn mới. Cuối cùng, WaveGlow được sử dụng để biến đổi mel-spectrogram thành âm thanh cảm xúc dạng sóng.
2.7.7. Thí nghiệm 06 – Đánh giá phần cứng
Thay vì sử dụng A100 ở trong bốn thí nghiệm 01, 02, 03 và 04, tác giả triển khai hệ thống trên NVIDIA P4 với kịch bản giống thí nghiệm 04 và sử dụng bộ dữ liệu đã được rút gọn, mô hình thu được kết quả tương tự thí nghiệm 04 sau 8,000 iterations. Mục đích của thí nghiệm này để đánh giá sự ảnh hưởng của thiết bị cũng lá tính khả quan trong việc triển khai mô hình ở các máy có cấu hình yếu hơn. Tổng thời gian dành cho huấn luyện ở thiết bị này là 120 phút. Có thể nhận thấy thời gian trên P4 gấp 4.2 lần thời gian huấn luyện trên A100. Do đó, vấn đề về thiết bị phần cứng cũng rất quan trọng.
2.7.8. Tổng kết
Computer Mô
hình Bộ dữ liệu Pre-trained 1,000 iterations Thời gian / huấn luyện Thời gian
A100
M1 AnSpeech Không 24 phút 3,5 ngày
M2 AnSpeech M1 14 phút 1,9 ngày
M3 AnSpeech M2 5 phút 0,3 ngày
M4 AnSpeech M3 4 phút 0,02 ngày
P40 M5 AnSpeech M3 15 phút 0,08 ngày
Bảng 2-3. Tổng hợp thời gian huấn luyện của từng mô hình
Như vậy, sau gần 6 ngày huấn luyện, mô hình tổng hợp tiếng nói đã được sử dụng. Vì thời gian chuyển đổi cảm xúc nhỏ ( khoảng vài giây) nên tác giả không tổng kết vào trong bảng trên.
36
CHƯƠNG 3. ĐÁNH GIÁ KẾT QUẢ TỔNG HỢP
3.1. Công cụ đánh giá
Sau khi có kết quả tổng hợp của hệ thống tổng hợp tiếng Việt có cảm xúc, tác giả tiến hành thực hiện khảo sát để đánh giá kết quả thu được.
Đối tượng tham gia đánh giá là 60 người bao gồm các bạn sinh viên thuộc Trường Công nghệ Thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội.