Tổng hợp tiếng nói về bản chất là quá trình tạo tín hiệu tiếng nói từ văn bản. Trong nhiều năm trở lại đây, người ta cố gắng tạo ra một hệ thống tổng hợp sao cho có độ tự nhiên cao nhất (Naturaless) và đọc dễ hiểu nhất (Intelligibility) Gần đây những nghiên cứu về mạng nơ ron học sâu được dẫn đầu bởi Google, Microsoft đã cho thấy những bước tiến nổi bật khi áp dụng vào tổng hợp tiếng nói, chất lượng đã đạt đến độ rất cao và khó có thể phân biệt là người hay máy nói
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
SAU ĐẠI HỌC – K30 MÔN XỬ LÝ TIẾNG NÓI
TÊN ĐỀ TÀI XÂY DỰNG DỤNG CHUYỂN ĐỔI VĂN BẢN SANG GIỌNG NÓI CHO NGÔN NGỮ TIẾNG VIỆT VÀ TIẾNG
TS Nguyễn Đức Hoàng Hạ
TS Châu Thành Đức
Sinh viên thực hiện: 20C11057 – Phan Minh Toàn
TP.HCM, ngày 16 tháng 10 năm 2021
Trang 2Mục lục
I GIỚI THIỆU VỀ TÔNG HỢP TIẾNG NÓI 2
II MÔ TẢ ỨNG DỤNG TỔNG HỢP TIẾNG NÓI END – TO – END 2
III THƯ VIỆN VÀ CÁC FRAMEWORK SỬ DỤNG 3
IV KIẾN TRÚC MÔ HÌNH TACOTRON (Towards End-to-End Speech Synthesis) 4
A Tacotron CBHG Module 4
B Tacotron Encoder 6
C Tacotron Decoder 6
D Tacotron Post-Processing Network 7
V KIẾN TRÚC MÔ HÌNH TTS WITH TRANSFORMERS 8
VI KIẾN TRÚC MÔ HÌNH FASTSPEECH 9
VII KIẾN TRÚC MÔ HÌNH FASTSPEECH 2 11
VIII ỨNG DỤNG TỔNG HỢP TIẾNG NÓI CHO VĂN BẢN TIẾNG ANH VÀ TIẾNG VIỆT SỬ DỤNG MÔ HÌNH TACOTRON VÀ FASTSPEECH 2 12
IX TÀI LIỆU THAM KHẢO 19
Trang 3I GIỚI THIỆU VỀ TÔNG HỢP TIẾNG NÓI
Tổng hợp tiếng nói về bản chất là quá trình tạo tín hiệu tiếng nói từ văn bản Trong nhiều năm
trở lại đây, người ta cố gắng tạo ra một hệ thống tổng hợp sao cho có độ tự nhiên cao nhất
(Naturaless) và đọc dễ hiểu nhất (Intelligibility)
Gần đây những nghiên cứu về mạng nơ ron học sâu được dẫn đầu bởi Google, Microsoft đã cho
thấy những bước tiến nổi bật khi áp dụng vào tổng hợp tiếng nói, chất lượng đã đạt đến độ rất
cao và khó có thể phân biệt là người hay máy nói
II MÔ TẢ ỨNG DỤNG TỔNG HỢP TIẾNG NÓI END – TO – END
Tổng hợp End to end là phương pháp mới được phát triển trong những năm gần đây Mục tiêu
của phương pháp này là tạo ra hệ thống tổng hợp có chất lượng cao nhất mà không cần dùng đến
các kiến thức chuyên gia dựa trên các mạng nơ ron học sâu
Một kiến trúc nổi bật của phương pháp này có thể kể đến Tacotron của Google hay FastSpeech
của Microsoft
Kiến trúc chung hay được sử dụng của một hệ thống End to End gồm có hai phần chính là:
o Phần tạo Mel spectrogram từ chuỗi ký tự đầu vào và phần chuyển hóa Mel spectrogram
thành tín hiệu tiếng nói trong đó phần tạo Mel spectrogram gồm hai mô đun là Embedder
để chuyển hóa chuỗi ký tự thành chuỗi các véc tơ biểu diễn, sau đó mô đun Sequence to
Sequence sẽ ước lượng Mel spectrogram từ chuỗi véc tơ này
o Cuối cùng từ Mel spectrogram được chuyển hóa thành tín hiệu tiếng nói nhờ Neural
Vocoder
Hình 1: Mô tả kiến trúc một hệ thống tổng hợp End to End
Trang 4Hình 2: Mô tả kiến trúc ứng dụng chuyển đổi văn bản thành giọng nói cho ngô ngữ tiếng việt và
tiếng anh
III THƯ VIỆN VÀ CÁC FRAMEWORK SỬ DỤNG
Python (Ngôn ngữ lập trình)
Pytorch (Deep learning framework)
Jax/Tensorflow (Deep learning framework)
Scikit-learn (Machine learning framework)
Streamlit (Framework create app UI for data science)
FastAPI (Web framework for building APIs )
Trang 5IV KIẾN TRÚC MÔ HÌNH TACOTRON (Towards End-to-End Speech Synthesis)
• Đây là mô hình end-to-end TTS của Google
Giúp giảm bớt quá trình feature engineering
Cho phép điều chỉnh các thuộc tính khác nhau
• Kiến trúc mô hình
Kiến trúc mạng dựa trên mô hình sequence-to-sequence with attention paradigm
• Red Encoder
• Blue Decoder
• Green Post-processing net
Hình 3: Mô tả kiến trúc mô hình Towards End-to-End Speech Synthesis
A Tacotron CBHG Module
1D Convolutional Bank + highway network + bidirectional GRU (CBHG)
o Module cho phép trích xuất thông tin biểu diễn từ chuỗi sequences
Trang 6o Lấy cảm hứng từ bài toán “Fully Character-Level Neural Machine Translation without Explicit Segmentation”
Architecture (Kiến trúc)
o Bank of 1D convolutional filters
o Highway networks (layers of FC-128-ReLU)
o Gating unit giúp học cách điều chỉnh luồng thông tin thông qua network
o Bidirectional GRU RNN
Hình 4: Mô tả kiến trúc Tacotron CBHG Module
Trang 7B Tacotron Encoder
Trích xuất thông tin biểu diễn chi tiết 1 cách tuần tự từ văn bản
Kiến trúc
o Input: one-hot vector của các ký tự được thể hiện thành chuỗi liên tục
o Pre-Net, gồm tập hợp các phép biến đổi phi tuyến tính
o CBHG module
Hình 5: Mô tả kiến trúc Tacotron Encoder
C Tacotron Decoder
Mục tiêu là biểu đồ phổ mel-scale là 80 dải chứ không phải là dạng raw waveform Waveform thì chứa thông tin biễu diễn dư thừa nhiều
Kiến trúc
o Attention RNN: 1 lớp 256 GRU cells
o Decoder RNN: 2 lớp residual 256 GRU cells
o Fully connected output layer
Trang 8Hình 6: Mô tả kiến trúc Tacotron Decoder
D Tacotron Post-Processing Network
CBHG: 1-D convolutional filters + highway network + bidirectional gated recurrent unit (BiGRU)
Thuật toán Griffin-Lim
o Ước lượng waveform từ spectrogram
o Sử dụng một thuật toán lặp lại để giảm MSE
o Thuật toán được chọn để sử dụng vì sự đơn giản
Hình 7: Mô tả kiến trúc Tacotron Post-Processing Network
Trang 9V KIẾN TRÚC MÔ HÌNH TTS WITH TRANSFORMERS
Transformers đang thống trị lĩnh vực ngôn ngữ tự nhiên trong một thời gian, vì vậy mô hình này cũng có thể được áp dung trong lĩnh vực TTS
Transformers-based models tập trung giải quyết hai vấn đề:
o Hiệu quả thấp trong quá trình huấn luyện(training) và suy luận (inference)
o Khó khăn đối trong việc xây dựng mô hình cần tính tính phụ thuộc dài hạn như RNN
Kiến trúc dựa trên transformers-based đầu tiên được giới thiệu vào năm 2018 và thay thế RNN bằng cơ chế chú ý (multi-head attention mechanisms ) có thể được huấn luyện song song
Neural Speech Synthesis with Transformer Network
A Text-to-Phoneme Converter: chuyển đổi văn bản thành âm vị
Scaled positional encoding: sử dụng dạng hình sin để nắm bắt thông tin về vị trí của
âm vị
An Encoder Pre-Net: a 3-layer CNN: dùng để học các âm vị embedding
A Decoder Pre-Net: sử dụng thông tin mel spectogram và chiếu vào cùng 1 không gian con tương tự như các embedding của âm vị
The Encoder: Bi-directional RNN được thay thế thành Transformer Encoder với cơ chế multi-head attention
The Decoder: RNN 2 lớp với tính năng chú ý theo location-sensitive được thay thế bằng Transformer decoder với cơ chế multi-head self-attention
Mel Liner and Stop Linear: Hai phép chiếu tuyến tính khác nhau được sử dụng để dự đoán quang phổ (mel spectrogram) và stop token tương ứng
Trang 10Hình 8: Mô tả kiến trúc ural Speech Synthesis with Transformer Network
VI KIẾN TRÚC MÔ HÌNH FASTSPEECH
Cách tiếp cận của FastSpeech dựa trên mô hình Transformer trước đó FastSpeech cải tiến
kiến trúc của mô hình giúp tăng tốc tới 38 lần với 3 điểm chính yếu sau:
o Tạo ra quang phổ một cách song song (Parallel mel-specogram generation)
o Sử dụng soft attention để điều chỉnh sự liên kết giữa phonemes (âm vị) và
mel-spectograms (quang phổ) thay vì cách điều chính 1 cách cứng nhắt(hard alignment) ở mô hình trước đó
Trang 11o Length regulator giúp điều chỉnh tốc độ giọng nói bằng rút ngắn hay kéo dài duration của
âm vị (phoneme) để xác định được độ dài của quang phổ được tạo ra (generated mel spectrograms)
Hình 9: Mô tả kiến trúc Fastspeech
Cung cấp thêm thông tin làm đầu vào:
- Duration từ mô hình teacher
Đơn giản hóa việc phân phối dữ liệu trong đầu ra
- Chắt lọc kiến thức (Knowledge distiliation)
Nhược điểm của FastSpeech
• Duration được trích xuất từ teacher model
- Duration được trích xuất từ attention map không đủ chính xác
• Teacher-student distillation
- Khá phức tạp và tốn thời gian
- Dẫn đến mất thông tin do dư liệu bị đơn giản hoá đi nhiều
Trang 12VII KIẾN TRÚC MÔ HÌNH FASTSPEECH 2
FastSpeech2 là mô hình chuyển văn bản thành giọng nói nhằm mục đích cải thiện
FastSpeech bằng cách giải quyết tốt hơn vấn đề ánh xạ một-nhiều trong TTS Pitch (CWT), duration chính xác hơn so mới mô hình FastSpeech
Đối với việc mất mát thông tin trong mô hình FastSpeech: FastSpeech 2 đề xuất training mô hình trực tiếp với mục tiêu là ground-truth thay vì đầu ra là
simplified output từ mô hình teacher
Giới thiệu thêm thông tin variation của giọng nói (ví dụ: cao độ(pitch), năng lượng(energy) và thời lượng(duration) chính xác hơn) và sử dụng như là dạng đặc trưng dạng đầu vào có điều kiện
Trích xuất các đặc trưng duration, pitch and energy từ dạng sóng (wave form) giọng nói và trực tiếp sử dụng đặc trưng có được này làm đầu vào cũng như là input có điều kiện trong việc training và sử dụng các giá trị dự đoán (prediction) trong suy luận(bước inference)
Hình 10: Mô tả kiến trúc Fastspeech 2
Trang 13Variance Adaptor
• Phoneme duration: thời lượng(duration) giọng nói phát ra
• Pitch: một tính năng chính (key feature) để truyền tải cảm xúc và ảnh hưởng lớn đến cảm
xúc của tiếng nói
• Energy: cường độ ở mức khung hình(frame level) của quang phổ(mel-spectrograms) và
nó sẽ ảnh hưởng trực tiếp đến âm lượng và độ phát âm(prosody) của giọng nói
Hình 11: Mô tả kiến trúc của Variance apdaptor
VIII ỨNG DỤNG TỔNG HỢP TIẾNG NÓI CHO VĂN BẢN TIẾNG ANH VÀ
TIẾNG VIỆT SỬ DỤNG MÔ HÌNH TACOTRON VÀ FASTSPEECH 2
Ứng dụng được develop và tích hợp hai model Tacotron và Fastspeech 2, được deploy và triển khai serving trên môi trường Streamlit Cloud
Trang 14Link Production của ứng dụng:
https://share.streamlit.io/toanphanminh/tts/mutil_language/app.py
Vì giới hạn của phần cứng miễn trên cloud nên ứng chỉ có thể hoạt động tốt trên văn có kích thước ngắn và nhỏ vì bị resource môi trường cloud giới hạn terminate process đang chạy, tuy nhiên ở trên Local thì ứng dụng hoạt bình thường với văn bản có kích thước vừa và dài
Ứng dụng cho phép chọn ngôn ngữ để chuyển đổi sử dụng giữa 2 mô hình cho ngôn ngữ tiếng
việt và tiếng anh
Mô hình sử dụng để tổng hợp tiếng nói cho ngôn ngữ Tiếng Việt là Tacontron
Mô hình sử dụng để tổng hợp tiếng nói cho ngôn ngữ Tiếng Anh là Fastspeech 2
Trang 15Riêng đối với ngôn ngữ Tiếng Việt có thể chọn được giới tính của giọng tổng hợp là giọng nam
hay giọng nữ
o Mô hình FastSpeech cho ngôn ngữ Tiếng Anh được pretrain trên bộ dữ liệu LJSpeech
o Mô hình Tacontron cho ngôn ngữ Tiếng Việt được pretrain trên bộ dữ liệu InfoRe
Technology 1
Trang 16Ứng dụng phát triển theo hai hướng:
o Tích hợp trực tiếp với WEB UI thông các component hỗ xây dựng UI của Framework Streamlit
Trang 17o Tích hợp ở dạng rest-api cho phép gửi request post thông qua endpoint và api url bằng
Framework FastAPI
Input json là:
{
"text" : "Xin chào, tôi tên là Minh Toàn, chào mừng bạn đến với ứng dụng chuyển văn bản thành giọng nó" ,
"language" : "vietnamese" ,
"speaker_gender" : "male"
}
Trang 18Output response json là
{
"status" : "success" ,
"err_msg" : "" ,
"wav_file_path" : "result/audio.wav" ,
"wav_file_base64" : "UklGRiQMAwBXQVZFZm10IBAA "
}
Trang 19Kết quả json trả về từ server là có thuộc tính “wave_file_base64” 1 chuỗi base64 waveform
được chuyển đổi dữ liệu của văn bản, chuỗi base64 này dễ dàng có thẻ được encode để tại
phía client như web hay mobile app để integrate và sử dụng
Trang 20IX TÀI LIỆU THAM KHẢO
[1] Yi Ren, Chenxu Hu, Xu Tan, Tao Qin, Sheng Zhao, Zhou Zhao, Tie-Yan Liu - FastSpeech 2: Fast and High-Quality End-to-End Text to Speech - ICLR 2021
[2] Yi Ren, Yangjun Ruan, Xu Tan, Tao Qin, Sheng Zhao, Zhou Zhao, Tie-Yan Liu -
FastSpeech: Fast, Robust and Controllable Text to Speech NeurIPS2019
[3] Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, Rif A Saurous - Tacotron: Towards End-to-End Speech Synthesis
[4] Naihan Li, Shujie Liu, Yanqing Liu, Sheng Zhao, Ming Liu, Ming Zhou - Neural Speech Synthesis with Transformer Network
[5] Speech synthesis: A review of the best text to speech architectures with Deep Learning -
https://theaisummer.com/text-to-speech
[6] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N
Gomez, Lukasz Kaiser, Illia Polosukhin - Attention Is All You Need
[7] FastSpeech 2 - PyTorch Implementation - https://github.com/ming024/FastSpeech2
[8] Tacotron-pytorch - PyTorch Implementation - https://github.com/soobinseo/Tacotron-pytorch
[9] Real-Time State-of-the-art Speech Synthesis for Tensorflow 2 -
https://github.com/TensorSpeech/TensorFlowTTS
[10] A Vietnamese TTS - https://github.com/NTT123/vietTTS
[11] Streamlit Cloud https://docs.streamlit.io/streamlit-cloud
[12] InfoRe Technology 1 dataset: https://files.huylenguyen.com/25hours.zip
[13] LJ Speech dataset: https://www.kaggle.com/mathurinache/the-lj-speech-dataset