- Tổng hợp tiếng nói dựa trên phương pháp học sâu đã bắt đầu phát triển mạnh mẽ trong vài năm trở lại đây, phương pháp được xây dựng dựa trên việc mô hình hóa mô hình âm học bằng một mạn
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ
BÀI TẬP LỚN MÔN CÔNG NGHỆ ĐA PHƯƠNG TIỆN
Đề tài nghiên cứu: Tổng hợp tiếng nói bằng phương pháp
học sâu
GVHD: TS Phạm Minh Hoàn
Lớp HP: CNTT1149_01 Nhóm Sinh viên: Nhóm 5
HÀ NỘI, THÁNG 9 NĂM 2022
Trang 2Mục lục
I Giới thiệu chung 3
1 Mở đầu 3
2 Giới thiệu về tổng hợp tiếng nói 3
II Học sâu (Deep learning) 4
1 Học sâu(Deep learning) là gì? 4
2 Tổng hợp tiếng nói dựa trên phương pháp học sâu 4
3 Mạng nơron tích chập 4 Phân loại 5 Tìm hiểu 1 số thuật toán III Xử lý dữ liệu âm thanh 6
1 Giới thiệu về phân tích âm thanh 6
2 Xử lý dữ liệu trong miền âm thanh 6
IV Tìm hiểu mô hình Transformer 7
1 Transformer là gì? 7
2 Kiến trúc Transformer 7
3 Hoạt động của mô hình Transformer 8
V Kiến trúc mô hình Wav2Vec 2.0 8
VI Beam Search 9
VII VLSP2021 ASR 10
VIII Tìm hiểu ngôn ngữ lập trình Python 10
IX Xây dựng 11
X Kết luận 13
Trang 3Phân chia công việc
+ Thuyết trình
+ Báo cáo chương 2, 3 + Làm slide
+ Báo cáo 4, 5, 6
Trang 4I Giới thiệu chung
1 Mở đầu
- Tổng hợp tiếng nói từ văn bản là quá trình chuyển đổi tự động một văn bản thành lời nói
Hệ thống được sử dụng cho mục đích này gọi là hệ thống tổng hợp tiếng nói, hệ thống tổng hợp tiếng nói gồm hai thành phần cơ bản: Phần xử lý ngôn ngữ tự nhiên và phần xử lý tổng hợp tiếng nói
- Tổng hợp tiếng nói đã được ứng dụng nhiều trong các lĩnh vực của đời sống như ứng dụng cho người mù, cho người bị điếc hoặc gặp khó khăn trong phát âm, ứng dụng giáo dục, các trung tâm hỗ trợ khách hàng, hệ thống tương tác người máy
- Tổng hợp tiếng nói dựa trên phương pháp học sâu đã bắt đầu phát triển mạnh mẽ trong vài năm trở lại đây, phương pháp được xây dựng dựa trên việc mô hình hóa mô hình âm học bằng một mạng nơ ron học sâu Văn bản đầu vào được chuyển hóa thành một véc tơ đặc trưng ngôn ngữ, véc tơ mang thông tin về âm vị, ngữ cảnh xung quanh âm vị, thanh điệu Sau
đó mô hình âm học dựa trên mạng nơ ron lấy đầu vào véc tơ đặc trưng ngôn ngữ và tạo ra các đặc trưng âm học tương ứng ở đầu ra Từ các đặc trưng âm học sẽ tạo thành tín hiệu tiếngnói nhờ một bộ tổng hợp tiếng nói vocoder Mạng nơ ron học sâu được sử dụng trong các sảnphẩm Google, Baidu, Microsoft hay hệ thống Merlin của CSTR đã đạt được độ tự nhiên tiếngnói rất cao
2 Giới thiệu về tổng hợp tiếng nói
- Tổng hợp tiếng nói (Speech Synthesis) là quá trình tạo ra tiếng nói con người một cách
nhân tạo Tổng hợp tiếng nói từ văn bản (Text-To-Speech) là quá trình chuyển đổi tự động một văn bản có nội dung bất kỳ thành lời nói Hệ thống được sử dụng cho mục đích này gọi
là hệ thống tổng hợp tiếng nói Một hệ thống tổng hợp tiếng nói gồm hai thành phần cơ bản: Phần xử lý ngôn ngữ tự nhiên (Natural Language Processing) và phần xử lý tổng hợp tiếng nói (Speech Synthesis Processing)
Trang 5- Khối xử lý ngôn ngữ tự nhiên có nhiệm vụ chuyển chuỗi các ký tự văn bản đầu vào thành
một dạng chuỗi các nhãn ngữ âm đã được thiết kế trước của hệ thống tổng hợp tiếng nói Tức
là thực hiện chuyển đổi văn bản đầu vào thành chuỗi dạng biểu diễn ngữ âm Từ thông tin ngôn điệu và ngữ âm là chuỗi các nhãn phụ thuộc ngữ cảnh mức âm vị của văn bản đầu vào, khối xử lý tổng hợp tiếng nói chọn ra các tham số thích hợp từ tập các giá trị tần số cơ bản, phổ tín hiệu, trường độ âm thanh (âm vị, âm tiết) Cuối cùng, tiếng nói ở dạng sóng tín hiệu được tạo ra bằng một kỹ thuật tổng hợp
II Học sâu (Deep learning)
1 Học sâu(Deep learning) là gì?
- Học sâu là một chức năng của trí tuệ nhân tạo (AI), bắt chước hoạt động của bộ não con
người trong việc xử lí dữ liệu và tạo ra các mẫu để sử dụng cho việc ra quyết định
- Học sâu là tập con của học máy trong AI, có các mạng lưới có khả năng "học" mà không bị giám sát từ dữ liệu không có cấu trúc hoặc không được gắn nhãn
- Học sâu đã phát triển cùng với thời đại kĩ thuật số, điều này đã mang lại sự bùng nổ dữ liệu dưới mọi hình thức và từ mọi khu vực trên thế giới Dữ liệu này, gọi đơn giản là dữ liệu lớn, được lấy từ các nguồn như phương tiện truyền thông xã hội, công cụ tìm kiếm trên internet, nền tảng thương mại điện tử hoặc rạp chiếu phim trực tuyến,
- Lượng dữ liệu khổng lồ này có thể truy cập dễ dàng và có thể được chia sẻ thông tin qua các ứng dụng Fintech như điện toán đám mây
Trang 62 Tổng hợp tiếng nói dựa trên phương pháp học sâu
- Tổng hợp tiếng nói dựa trên phương pháp học sâu đã bắt đầu phát triển mạnh mẽ trong vài năm trở lại đây, phương pháp được xây dựng dựa trên việc mô hình hóa mô hình âm học bằng một mạng nơ ron học sâu Trong đó, văn bản đầu vào được chuyển hóa thành một véc
tơ đặc trưng ngôn ngữ, các véc tơ đặc trưng này mang thông tin về âm vị, ngữ cảnh xung quanh âm vị, thanh điệu… Sau đó, mô hình âm học dựa trên mạng nơ ron học sâu lấy đầu vào là véc tơ đặc trưng ngôn ngữ và tạo ra các đặc trưng âm học tương ứng ở đầu ra Từ các đặc trưng âm học của mô hình âm học sẽ tạo thành tín hiệu tiếng nói nhờ một bộ tổng hợp tínhiệu tiếng nói
- Kiến trúc tổng quan của một hệ thống tổng hợp tiếng nói dựa trên mạng nơ ron học sâu được mô tả như sau:
Trang 7- Văn bản cần được tổng hợp sẽ đi qua bộ phân tích văn bản để trích chọn các đặc trưng ngôn ngữ học và được chuyển hóa thành các véc tơ nhị phân bởi bộ Input feature extraction, các véc tơ nhị phân đầu vào {xn t} với xn t là đặc trưng thứ n tại khung t (frame t), các véc 17 tơ này tương ứng tạo ra {ym t} các đặc trưng đầu vào thông qua mạng nơ ron DNN đã được huấn luyện, với mỗi ym t là đặc trưng đầu ra thứ m tại khung
t Các đặc trưng đầu ra chứa các thông tin về phổ và tín hiệu kích thích, thông qua bộ tạo tham số (Parameter Generation) sẽ được chuyển thành các tham số đặc trưng âm học và được đưa vào bộ tạo tín hiệu tiếng nói để tạo ra tín hiệu tiếng nói
- Mạng nơ ron học sâu dựa trên các lớp nơ ron nhân tạo, có khả năng mô hình hóa những mối quan hệ phi tuyến phức tạp giữa đầu vào và đầu ra Đặc biệt trong trường hợp sử dụng mạng nơ ron có thể mô hình hóa một cách mạnh mẽ mỗi quan hệ phi tuyến, phức tạp giữa các đặc trưng ngôn ngữ học của văn bản và đặc trưng âm học của tín hiệu tiếng nói, tuy nhiên việc sử dụng mạng nơ ron cũng có những hạn chế đó là vì sự mạnh mẽ nênrất nhạy cảm với thông tin sai lệch và không tốt như nhiễu, và cần nhiều dữ liệu để huấn luyện mô hình
3 Mạng nơron tích chập
- Mạng nơron tích chập (CNN) là thuật toán Deep Learning có thể lấy hình ảnh đầu vào,
gán độ quan trọng (các trọng số - weights và độ lệch - bias có thể học được) cho các đặc trưng/đối tượng khác nhau trong hình ảnh và có thể phân biệt được từng đặc trưng/đối tượng này với nhau Công việc tiền xử lý được yêu cầu cho mạng nơron tích chập thì ít hơn nhiều
so với các thuật toán phân loại khác Trong các phương thức sơ khai, các bộ lọc được thiết kếbằng tay (hand - engineered), với một quá trình huấn luyện để chọn ra các bộ lọc/đặc trưng phù hợp thì mạng nơron tích chập lại có khả năng tự học để chọn ra các bộ lọc/ đặc trưng tối
ưu nhất
Trang 8- Đầu vào CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu vào, xử lý và phân loại nó theo các hạng mục nhất định (Ví dụ: Chó, Mèo, Hổ, ) Máy tính coi hình ảnh đầu vào là 1 mảng pixel và nó phụ thuộc vào độ phân giải của hình ảnh Dựa trên độ phân giải hình ảnh, máy tính sẽ thấy H x W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày) Ví dụ: Hình ảnh là mảng ma trận RGB 4x4x3 (3 ở đây là giá trị RGB)
- Lớp tích chập – bộ lọc (the kernel)
- Ví dụ Kích thước hình ảnh = 5 (Chiều cao) x 5 (Chiều rộng) x 1
- Ở hình bên, phần màu xanh lục là hình ảnh đầu vào 5 x 5 x 1 của chúng ta, ta gọi hình ảnh đầu vào này là I
Trang 9- Phần tử liên quan đến việc thực hiện thao tác tích chập trong phần đầu tiên của lớp tích chập được gọi là Bộ lọc (Kernel / Filter) , K, được thể hiện bằng màu vàng Chúng ta chọn K là một ma trận 3 x 3 x 1 Bộ lọc di chuyển sang phải với Giá trị trượt cố định (Stride) cho đếnkhi hoàn thành việc quét theo chiều rộng Tiếp tục, nó nhảy xuống phía đầu bên trái của hình ảnh với cùng Giá trị trượt và lặp lại quá trình cho đến khi toàn bộ hình ảnh được duyệt qua.
- Mục tiêu của phép tính tích chập là trích xuất các đặc trưng cấp cao như các cạnh (edges), từ hình ảnh đầu vào Mạng nơron tích chập không nhất thiết chỉ giới hạn trong một lớp tích chập Thông thường, lớp tích chập đầu tiên chịu trách nhiệm nắm bắt các đặc trưng cấp thấp như màu sắc (colors), hướng dốc (gradient orientation), v.v Với các lớp tích chập được thêm vào, mô hình cũng nắm bắt các đặc trưng cấp cao, mang đến cho chúng ta một mạng lưới nơron tích chập có sự hiểu biết toàn diện về hình ảnh trong bộ dữ liệu, tương tự như cách chúng ta - con người hiểu về hình ảnh
- Lớp gộp (Pooling layer), tương tự như lớp tích chập (Convolutional Layer), pooling chịu
trách nhiệm làm giảm chiều kết quả tích chập (Convolved Feature) Điều này nhằm mục đích
để giảm chi phí tính toán cần phải có để xử lý dữ liệu thông qua việc giảm kích thước tính năng đầu vào Hơn nữa, nó rất hữu ích để trích xuất các đặc trưng cốt lõi, cái thường bất biến trước các phép xoay và phép trượt, do đó làm cho quá trình huấn luyện mô hình hiệu quả hơn
- Có hai loại phép gộp: Gộp cực đại (Max Pooling) và Gộp trung bình (Average Pooling) Phépgộp cực đại trả về giá trị lớn nhất từ phần hình ảnh được bao phủ bởi bộ lọc Trong khi đó, phép gộp trung bình trả về giá trị trung bình của tất cả các giá trị từ phần hình ảnh được bao phủ bởi bộ lọc
- Lớp tích chập (Convolutional Layer) và lớp gộp (Pooling layer), kết hợp với nhau tạo thành lớp thứ i của mạng nơron tích chập Tùy thuộc vào độ phức tạp của ảnh, số lượng các lớp như
Trang 10vậy có thể được tăng lên để có thể bắt được các đặc trưng ở mức độ chi tiết hơn nữa, nhưng chi phí cho sức mạnh tính toán cũng sẽ nhiều hơn.
- Phân loại – Lớp kết nối đầy đủ (Fully connected layer)
- Sử dụng mạng nơron kết nối đầy đủ là cách làm phổ biến nhất để học các tổ hợp phi tuyến từ các đặc trưng trích xuất từ kết quả ma trận tích chập đầu ra Mạng nơron kết nối đầy đủ có thể học được các đặc trưng trong không gian phi tuyến này
Mô tả chu trình nơ ron tích chập
1 Đầu tiên ta nhập vào hình ảnh
2 Chọn đối số, stride, áp dụng các bộ lọc và hàm ReLU
3 Thực hiện lớp tích chập cho hình ảnh
4 Thực hiện Pooling để giảm kích thước cho hình ảnh
5 Làm phẳng (flattening) đầu ra và đưa vào mạng nơron thông thường cho mục đích phân loại
6 Xây dựng đầu ra và dữ liệu đầu vào thành 1 lớp được kết nối đầy đủ (Full Connected)
Trang 115. Tìm hiểu một số thuật toán
a Thuật toán mạng nơron nhân tạo (Artificial Neural Network Algorithms)
Mạng nơron nhân tạo là các mô hình được lấy cảm hứng từ cấu trúc và chức năng của mạng lưới thần kinh sinh học Hình 13 minh hoạ cho một mạng truyền thẳng Nhóm thuậttoán này có thể được sử dụng cho bài toán phân lớp và hồi quy với rất nhiều biến thể khác nhau cho hầu hết các vấn đề Tuy nhiên, trong bài viết này mình chỉ trình bày các thuật toán cổ điển và phổ biến nhất:
Back-Propagation (mạng lan truyền ngược)
Perceptron (Mạng lan truyền thẳng)
Multi-layer perceptron (Mạng truyền thẳng đa lớp)
Hopfield Network
Radial Basis Function Network (RBFN)
b Thuật toán học sâu (Deep Learning Algorithms)
Thực chất Deep Learning là một bản cập nhật hiện đại cho Artificial Neural Networks nhằm khai thác khả năng tính toán của máy tính, tuy nhiên vì sự phát triển lớn mạnh của chúng nên mình tách ra thành một nhóm riêng
Deep Learning quan tâm đến việc xây dựng các mạng thần kinh lớn hơn, phức tạp hơn nhiều, và làm sao để khai thác hiệu quả các bộ dữ liệu lớn chứa rất ít dữ liệu đã được gán nhãn Hình 14 minh hoạ cho ý tưởng của Deep learning
Các thuật toán học sâu phổ biến nhất là:
Convolutional Neural Network (CNN)
Deep Belief Networks (DBN)
Trang 12 Deep Boltzmann Machine (DBM)
Stacked Auto-Encoders
c Nhóm thuật toán Giảm chiều dữ liệu (Dimensionality Reduction Algorithms)
Giống như các phương pháp phân cụm, giảm không gian tìm kiếm và khai thác cấu trúc vốn có trong dữ liệu nhưng theo cách không giám sát hoặc để tóm tắt hay mô tả dữ liệu
sử dụng ít thông tin hơn là mục tiêu của nhóm phương pháp này Hình 15 minh hoạ cho việc giảm chiều dữ liệu
Điều này có thể hữu ích để trực quan hóa dữ liệu hoặc đơn giản hóa dữ liệu mà sau đó có thể được sử dụng trong phương pháp học có giám sát Nhiều trong số các phương pháp này có thể được điều chỉnh để sử dụng trong phân lớp và hồi quy
Các thuật toán Giảm chiều dữ liệu phổ biến như:
Flexible Discriminant Analysis (FDA)
Linear Discriminant Analysis (LDA)
Mixture Discriminant Analysis (MDA)
Multidimensional Scaling (MDS)
Partial Least Squares Regression (PLSR)
Principal Component Analysis (PCA)
Principal Component Regression (PCR)
Projection Pursuit
Quadratic Discriminant Analysis (QDA)
Sammon Mapping
III Xử lý dữ liệu âm thanh
1 Giới thiệu về phân tích âm thanh
- Chúng tôi luôn luôn liên lạc với âm thanh Đôi khi trực tiếp, đôi khi có thể gián tiếp khi
bộ não của chúng ta hoạt động liên tục Do đó, não xử lý và hiểu thông tin Và cuối cùng,
nó cung cấp cho chúng ta thông tin về môi trường Đôi khi chúng ta bắt gặp âm thanh nàytrôi nổi xung quanh chúng ta và cảm thấy một cái gì đó mang tính xây dựng Vì có một sốthiết bị giúp bắt những âm thanh này Cũng đại diện trong định dạng máy tính có thể đọc được Ví dụ về các định dạng này là: định dạng Wav (Waveform Audio File) định dạng mp3 (MPEG-1 Audio Layer 3) định dạng WMA (Windows Media Audio) Nếu chúng ta nghĩ nhiều hơn về âm thanh, cuối cùng, có một kết luận rằng đó là định dạng dữ liệu giống như sóng
Trang 132 Xử lý dữ liệu trong miền âm thanh
- Tại một số định dạng dữ liệu phi cấu trúc Đối với dữ liệu âm thanh đó, có một vài bướctiền xử lý Điều đó chúng ta cần phải làm theo trước khi nó được trình bày để phân tích
âm thanh Đầu tiên chúng ta phải tải dữ liệu vào một định dạng dễ hiểu cho máy Đối với điều này, chúng tôi chỉ cần lấy giá trị sau mỗi bước thời gian cụ thể Ví dụ: trong tệp âm thanh 2 giây, chúng tôi trích xuất các giá trị trong nửa giây Đây được gọi là lấy mẫu dữ liệu âm thanh và tốc độ lấy mẫu được gọi là tốc độ lấy mẫu
- Chúng ta có thể đại diện cho nó theo một cách khác Vì chúng ta có thể chuyển đổi dữ liệu sang một miền khác, cụ thể là miền tần số Khi chúng tôi lấy mẫu dữ liệu âm thanh, chúng tôi yêu cầu nhiều điểm dữ liệu hơn để thể hiện toàn bộ dữ liệu Ngoài ra, tỷ lệ lấy mẫu phải càng cao càng tốt Vì vậy, nếu chúng tôi đại diện cho dữ liệu âm thanh trong miền tần số Sau đó, không gian tính toán ít hơn nhiều được yêu cầu
- Có một vài cách khác để chúng ta có thể biểu diễn dữ liệu âm thanh và phân tích âm thanh của nó Ví dụ sử dụng MFC Đây không phải là những cách khác nhau để thể hiện
dữ liệu Hơn nữa, chúng tôi phải trích xuất các tính năng từ các đại diện âm thanh này Thuật toán này hoạt động trên các tính năng này và thực hiện nhiệm vụ mà nó được thiết
kế cho Đây là một đại diện trực quan của các loại tính năng âm thanh có thể được trích xuất
IV Tìm hiểu mô hình Transformer
2 Kiến trúc Transformer
- Kiến trúc Transformer tuân theo cấu trúc bộ giải mã mã hóa, nhưng không dựa vào sự lặplại và tích chập để tạo ra đầu ra