Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
4,48 MB
Nội dung
Đề tài: VIETNAMESE SPEECH RECOGNITION TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN 🙣✦🙡 BÀI BÁO CÁO XÂY DỰNG MƠ HÌNH NLP Đề tài: VIETNAMESE SPEECH RECOGNITION GVHD: Đặng Thị Phúc Họ tên Mssv Phạm Thanh Hải 19501521 Nguyễn Duy Đường Vũ 18061881 Võ Giang Khang 19499601 Đề tài: VIETNAMESE SPEECH RECOGNITION TP Hồ Chí Minh, 18 tháng năm 2022 I Mơ tả đề tài Lời nói phương tiện giao tiếp người trưởng thành Mục tiêu xử lý giọng nói cung cấp tương tác người máy móc Nhận dạng giọng nói Nhận dạng giọng nói tự động (ASR) trung tâm ý dự án AI robot Nếu khơng có ASR, khơng thể tưởng tượng robot nhận thức tương tác với người. II Collect and label data Link data: Data Trên Drive VIVOS kho ngữ liệu tiếng Việt miễn phí bao gồm 15 ghi âm giọng nói chuẩn bị cho nhiệm vụ Nhận dạng giọng nói tự động Bộ tài liệu AILAB, phịng máy tính ĐHQG TP.HCM - ĐHKHTN biên soạn, với GS Vũ Hải Quân là chủ nhiệm Được xuất kho tài liệu với hy vọng thu hút nhiều nhà khoa học để giải vấn đề nhận dạng giọng nói người Việt. Ngữ liệu nên sử dụng cho mục đích học thuật Link Dataset Training Testing Nữ 24 Nam 22 12 Tổng số mẫu 116600 760 Tổng thời gian 14h55p 45p Đề tài: VIETNAMESE SPEECH RECOGNITION Dữ liệu tự tạo: Training III Nữ 20 Nam 20 Tổng số mẫu 5000 Tổng thời gian 6h20p Feature engineering Trong toán speech recognize hay tốn liên quan tới giọng nói thường biến đổi tín hiệu giọng nói thành dạng MFCC (Mel frequenᴄу ᴄepѕtral ᴄoeffiᴄientѕ) 1 A/D Conᴠerѕion and Pre-emphaѕiѕ ⮚ 1.1 A/D Conᴠerѕion Âm dạng tín hiệu liên tục, mà máy tính làm việc với số rời rạc Ta lấy mẫu khoảng thời gian Vì liệu âm tập VIVOS có sample rate = 16000 🡪 lấy 1s lấy 16000 sample Và channel = ta thu audio.shape = (16000*sec,) Đề tài: VIETNAMESE SPEECH RECOGNITION ⮚ 1.2 Pre-emphaѕiѕ Do đặᴄ điểm ᴄấu tạo quản ᴠà ᴄáᴄ phận phát âm nên tiếng nói ᴄủa ᴄhúng ta ᴄó đặᴄ điểm: ᴄáᴄ âm tần ѕố thấp ᴄó mứᴄ lượng ᴄao, ᴄáᴄ âm tần ѕố ᴄao lại ᴄó mứᴄ lượng thấp Trong đó, ᴄáᴄ tần ѕố ᴄao nàу ᴠẫn ᴄhứa nhiều thơng tin ᴠề âm ᴠị Vì ᴠậу ᴄhúng ta ᴄần bướᴄ pre-emphaѕiѕ để kíᴄh ᴄáᴄ tín hiệu tần ѕố ᴄao nàу lên 2 Speᴄtrogram ⮚ 2.1 Windoᴡing Thaу ᴠì biến đổi Fourier ᴄả đoạn âm dài, ta trượt ᴄửa ѕổ dọᴄ theo tín hiệu để lấу ᴄáᴄ frame rồi áp dụng DFT frame nàу ( DFT Diѕᴄrete Fourier Tranѕform) Tốᴄ độ nói ᴄủa ᴄon người trung bình khoảng 3, từ giâу, từ khoảng 3-4 âm, âm ᴄhia thành 3-4 phần, ᴠậу giâу âm đượᴄ ᴄhia thành 36 - 40 phần, ta ᴄhọn độ rộng frame khoảng 20 - 25mѕ ᴠừa đủ rộng để bao phần âm Cáᴄ frame đượᴄ oᴠerlap lên khoảng 10mѕ để ᴄó thể ᴄapture lại ѕự thaу đổi ᴄonteхt Đề tài: VIETNAMESE SPEECH RECOGNITION Sử dụng Hamming ᴡindoᴡ để làm giát trị biên giảm xuống từ từ ⮚ 2.2 DFT Trên frame, ta áp dụng DFT - Diѕᴄrete Fourier Tranѕform theo ᴄông thứᴄ: Áp dụng tất ᴄả ᴄáᴄ frame, ta thu đượᴄ 1 Speᴄtrogram như hình đâу Mỗi frame ta thu đượᴄ liѕt ᴄáᴄ giá trị độ lớn (magnitude) tương ứng ᴠới Đề tài: VIETNAMESE SPEECH RECOGNITION tần ѕố từ 0→N0 \to N0→N Áp dụng tất ᴄả ᴄáᴄ frame, ta thu đượᴄ 1 Speᴄtrogram như hình đâу Trụᴄ ххх trụᴄ thời gian (tương ứng ᴠới thứ tự ᴄáᴄ frame), trụᴄ ууу thể dải tần ѕố từ 0→100000 \to 100000→10000 Hᴢ, giá trị magnitude tần ѕố đượᴄ thể màu ѕắᴄ Qua quan ѕát ѕpeᴄtrogram nàу, ta nhận thấу ᴄáᴄ ᴄáᴄ tần ѕố thấp thường ᴄó magnitude ᴄao, tần ѕố ᴄao thường ᴄó magnitude thấp IV Tổng quan cấu trúc mạng sử dụng model CNN (Convolutional Neural Network)[1] ? Mạng CNN tập hợp lớp Convolution chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Từ giảm số lượng weight cho mơ hình Ví dụ cách hoạt động lớp tích chập: Đề tài: VIETNAMESE SPEECH RECOGNITION Các bước xây dựng CNN o o o o Convolution Pooling Flattening Full Connection GRU (Gated recurrent unit)[2] ? GRU phiên LSTM với nguyên tắc hoạt động tương tự LSTM có cấu tạo đơn giản GRU kết hợp Cell state Hidden state thành 1, có input output Ngoài ra, GRU sử dụng gate Reset gate Update gate để định việc lưu trữ loại bỏ thông tin Đề tài: VIETNAMESE SPEECH RECOGNITION Ngoài ra, đặc điểm chung loại RNN (Vanilla RNN, LSTM, GRU) chúng hoạt động theo chiều định (forward direction) Hay nói cách khác, mạng mang thơng tin tính tới thời điểm Tuy nhiên, nhiều tốn NLP việc biết thông tin timesteps giúp cải thiện nhiều kết output (Translation, Speech recognition, Handwritten recognition, ) Trong trường hợp sử dụng Bi-directional RNN với việc xử lý thông tin theo hai chiều (forward backward) Mơ hình hoạt động Bi-directional RNN mơ tả hình đây: Ở đây,chúng ta sử dụng Vanilla RNN, LSTM GRU làm Cell cho Bi-directional RNN kết output tính cách kết hợp hai Hidden state từ forward backward direction Ngồi ra, kết hợp nhiều mạng RNN để tạo thành Multi-layer RNN network với output layer trở thành input layer sau: Đề tài: VIETNAMESE SPEECH RECOGNITION Giới thiệu Connectionist Temporal Classification Trong nhận diện giọng nói hay nhận diện chữ viết tay, đầu câu, chưa hồn chỉnh có ký tự lặp lại "heelllo", "toooo", hay chữ có khoảng trống (blank) "he l l oo", "t o o", Nguyên nhân dẫn tới tượng giọng nói dài (các đoạn ngân nga hát, ), giọng bị ngắt quãng, kích thước chữ viết tay lớn, nhỏ, Do đó, câu hồn chỉnh ta cần phải chỉnh lại đầu ấy, loại bỏ ký tự lặp lại khoảng trống Vấn đề gọi là alignment problem và giải CTC ⮚ Temporal Classification Gọi S là tập huấn luyện gồm mẫu từ phõn phi c nhDXìZ, ú: ã ã X = (Rm)* tập gồm tất chuỗi (sequence) vectors số thực có độ dài m Z = L* tập gồm tất chuỗi có ký tự alphabet có hạn L của labels Các phần tử L* gọi là label sequences hay labellings Đề tài: VIETNAMESE SPEECH RECOGNITION Mỗi mẫu S bao gồm cặp chuỗi (x,z) Chuỗi mục tiêu (target sequence) z=(z1,z2, ,zU) có độ dài gần chuỗi đầu vào (input sequence) x=(x1,x2, ,xT), tức U ≤ T Mục tiêu ta dùng S để huấn luyện bộ temporal classifier h:X↦Z để phân loại các chuỗi đầu vào chưa thấy trước đó (previously unseen input sequences) cho tối thiểu hóa lượng mát (error measure) Một error measure là label error rate (LER) tính trung bình edit distance đầu dự đoán h(x) nhãn z trong tập S′ lấy từ S: Vậy, temporal classifier h là mơ hình phân loại mang tính thời gian (temporal) Và thế, ta lấy RNN làm một temporal classifier cho gần gũi (thật ta lấy model cho output theo thời gian) ⮚ Đầu CTC Network: RNN Đầu CTC Network kết lớp softmax có số unit số ký tự trong L cộng thêm ký tự trống (blank), nghĩa xác suất phân loại ký tự trong |L| + 1∣L∣+1 tại thời điểm định Như vậy, tổ hợp tất đầu theo thời gian là ZZ Dưới hình minh họa Đề tài: VIETNAMESE SPEECH RECOGNITION Spectrogram có dạng này: Đề tài: VIETNAMESE SPEECH RECOGNITION Label có dạng này: Với tên dataframe đưa thành file audio tương ứng với từ chuẩn hóa gộp lại thành map() lại file dataset Đề tài: VIETNAMESE SPEECH RECOGNITION 10.Model sử dụng 2D CNN, RNN CTC loss, hàm mặc định CTC loss là: Đề tài: VIETNAMESE SPEECH RECOGNITION Đề tài: VIETNAMESE SPEECH RECOGNITION 11.Summary Đề tài: VIETNAMESE SPEECH RECOGNITION Đề tài: VIETNAMESE SPEECH RECOGNITION 12.Hàm decode với file âm thành dự đoán hàm callback Đề tài: VIETNAMESE SPEECH RECOGNITION 13.Tạo checkpoint sau epoch Đề tài: VIETNAMESE SPEECH RECOGNITION 14.Loss cao wer tầm trung 12% - 23% Độ xác: Đề tài: VIETNAMESE SPEECH RECOGNITION 15.Audio dự đoán với chuẩn đầu vào single-channel, 16 bit, đuôi wave, sample rate = 16000: Text là: nên đưa chuẩn tiết kiệm chuẩn đề bạt cán 16.Audio dự đốn với đầu vào có bị rè, double-channel, 32 bit, đuôi wave, 16000Hz: Text : tận chưa đến với ví dụ Đề tài: VIETNAMESE SPEECH RECOGNITION 17.Em thử train thêm liệu với đầu vào bị rè âm dạng chuẩn single-channel, 16 bit, đuôi wave, 16000Hz tensorflow Nhưng mà sau lần train wer cao loss cao nên em xem lại model để train tiếp ạ: VI Đánh giá trình làm Ưu điểm - Tìm hiểu thêm hàm xử lý âm tensorflow - Trải nghiệm thêm đề tài xử lý âm - Hoàn thành chuẩn chu model xử lý âm Đề tài: VIETNAMESE SPEECH RECOGNITION Nhược điểm - Do nhóm thiếu kiến thức Deep Learning kinh nghiệm build model nên model giống với model mẫu - Thành làm chưa tốt với loss cao accuracy tới tầm 70-80% - Data cịn giới hạn nhớ giới hạn GPU để train model - Phần lớn thời gian tìm hiểu học hỏi chưa thực làm đề tài trọn vẹn Đề tài: VIETNAMESE SPEECH RECOGNITION VII Tài liệu tham khảo George E Dahl, Dong Yu, Li Deng, and Alex Acero 2012 Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition IEEE Transactions on Audio, Speech, and Language Processing, 20(1):30–42 Model_deepspeech2 [https://nvidia.github.io/OpenSeq2Seq/html/speech-recognition/deepspeech2.html] Daniel Povey and George Saon 2006 Feature and model space speaker adaptation with full covariance Gaussians In Proc Interspeech Speech Recognition – [https://jonathan-hui.medium.com/speech-recognition-phonetics-d761ea1710c0] Feature Extraction MFCC cho xử lý tiếng [https://viblo.asia/p/feature-extraction-mfcc-cho-xu-ly-tieng-noi-4dbZN2xmZYM] Phonetics nói Takaaki Hori, Shinji Watanabe, Yu Zhang, William Chan Jun 2017 Advances in Joint CTC-Attention based End-to-End Speech Recognition with a Deep CNN Encoder and RNN-LM Dario Amodei, Rishita Anubhai, et al 2015 Deep Speech 2: End-to-End Speech Recognition in English and Mandarin, Nguyễn Lê Huy.2019 Giới thiệu Connectionist Temporal Classification (CTC) [https://viblo.asia/p/gioi-thieu-ve-connectionist-temporal-classification-ctc-phan-1-ORNZqj08l0n ] Mô tả đề tài Collect and label data Feature engineering A/D Conᴠerѕion and Pre-emphaѕiѕ 1.1 A/D Conᴠerѕion 1.2 Pre-emphaѕiѕ Speᴄtrogram 2.1 Windoᴡing 2.2 DFT Tổng quan cấu trúc mạng sử dụng model CNN (Convolutional Neural Network)[1] ? GRU (Gated recurrent unit)[2] ? Giới thiệu Connectionist Temporal Classification Temporal Classification Đầu CTC Network: RNN Xác suất labelling Xây dựng phân loại Đề tài: VIETNAMESE SPEECH RECOGNITION Xây dựng hàm mát (CTC Loss function) Model deepspeech2 Quá trình xây dựng huấn luyện mơ hình Import thư viện cần thiết: Đọc file csv chuyển từ file txt sang chuyển hết thành chữ thường Chia liệu train validation Tạo từ vựng decode chữ thành số encode số thành chữ dựa theo layer tensorflow Set thông số hàm STFT tensorflow Trích xuất đặc trưng STFT sau decode chữ thành số trả spectrogram chữ decode Spectrogram có dạng này: Label có dạng này: Với tên dataframe đưa thành file audio tương ứng với từ chuẩn hóa gộp lại thành map() lại file dataset Model sử dụng 2D CNN, RNN CTC loss, hàm mặc định CTC loss là: Summary Hàm decode với file âm thành dự đoán hàm callback Tạo checkpoint sau epoch Loss cao wer tầm trung 12% - 23% Audio dự đoán với chuẩn đầu vào single-channel, 16 bit, đuôi wave, sample rate = 16000: Text là: nên đưa chuẩn tiết kiệm chuẩn đề bạt cán Audio dự đốn với đầu vào có bị rè, double-channel, 32 bit, đuôi wave, 16000Hz: Text : tận chưa đến với ví dụ Em thử train thêm liệu với đầu vào bị rè âm dạng chuẩn single-channel, 16 bit, đuôi wave, 16000Hz tensorflow Nhưng mà sau lần train wer cao loss cao nên em xem lại model để train tiếp ạ: Đánh giá trình làm Ưu điểm Nhược điểm Tài liệu tham khảo Đề tài: VIETNAMESE SPEECH RECOGNITION