Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
3,62 MB
Nội dung
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 Phạm Thanh Nguyễn Duy Đường Võ Giang TP Hồ Chí Minh, 18 tháng năm 2022 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 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 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 Nữ Nam Tổng số mẫu Tổng thời gian Dữ liệu tự tạo: Training Nữ Nam Tổng số mẫu Tổng thời gian Feature engineering Trong toán speech recognize hay toá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,) 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 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 á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 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 đượᴄ Speᴄtrogram hình đâу Mỗi frame ta thu đượᴄ liѕt ᴄáᴄ giá trị độ lớn (magnitude) tương ứng ᴠới tần ѕố từ 0→N0 \to N0→N Áp dụng tất ᴄả ᴄáᴄ frame, ta thu đượᴄ Speᴄtrogram 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 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: 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 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 Bidirectional 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 Multilayer RNN network với output layer trở thành input layer sau: 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 alignment problem giải CTC Temporal Classification Gọi S tập huấn luyện gồm mẫu từ phân phối cố định DXìZ, ú: ã X = (Rm)* l mt 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 labels Các phần tử L* gọi label sequences hay labellings 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 temporal classifier h:X Z để phân loại 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 label error rate (LER) tính trung bình edit distance đầu dự đoán h(x) nhãn z tập S′ lấy từ S: Vậy, temporal classifier h mơ hình phân loại mang tính thời gian (temporal) Và thế, ta lấy RNN làm 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ự L cộng thêm một∣∣ ký tự trống (blank), nghĩa xác suất phân loại ký tự |L| + L +1 thời điểm định Như vậy, tổ hợp tất đầu theo thời gian ZZ Dưới hình minh họa Xác suất labelling Xác suất labelling tổng xác suất tất alignment cho labelling Xây dựng phân loại đầu phân loại labelling Vậy để tìm h(x)? • Best path decoding kết hợp unit có xác suất cao time-step, khơng đảm bảo tìm thấy labelling • Prefix search decoding (PSD): phương pháp dựa forwardbackward algorithm, có đủ thời gian, PSD ln tìm thấy labelling phù hợp nhất, số lượng prefix tối đa tăng theo hàm mũ, phức tạp nên phải áp dụng heuristic 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 The vocabulary is: ['', 'a', 'ă', 'â', 'b', 'c', 'd', 'đ', 'e', 'ê', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'ô', 'ơ', 'p', 'q', 'r', 's', 't', 'u', 'ư', 'v', 'x', 'y', 'á', 'à', 'ả', 'ã', 'ạ', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ế', 'ề', 'ể', 'ễ', 'ệ', 'í', 'ì', 'ỉ', 'ĩ', 'ị', 'ó', 'ị', 'ỏ', 'õ', 'ọ', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ú', 'ù', 'ủ', 'ũ', 'ụ', 'ứ', 'ừ', 'ử', 'ữ', 'ự', 'ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ', "'", '?', '!', ' '] (size =94) 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 10.Model sử dụng 2D CNN, RNN CTC loss, hàm mặc định CTC loss là: 11.Summary 12.Hàm decode với file âm thành dự đoán hàm callback 13.Tạo checkpoint sau epoch 14.Loss cao wer tầm trung 12% - 23% Độ xác: 15.Audio dự đố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ụ 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 ạ: Đá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 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 7080% - 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 liệu tham khảo George E Dahl, Dong Yu, Li Deng, and Alex Acero 2012 Context-dependent pre-trained d networks for large-vocabulary speech recognition IEEE Transactions on Audio, Spee 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 fu Gaussians In Proc Interspeech Speech Recognition – Phonetics [https://jonathan-hui.medium.com/speech-recognition-p d761ea1710c0] Feature Extraction - MFCC cho x tieng-noi-4dbZN2xmZYM] 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/gioithieu-ve-connectionist-temporal-classification-ctc-phan-1-ORNZqj08l0n] ... hỏi chưa thực làm đề tài trọn vẹn Tài liệu tham khảo George E Dahl, Dong Yu, Li Deng, and Alex Acero 2012 Context-dependent pre-trained d networks for large-vocabulary speech recognition IEEE... space speaker adaptation with fu Gaussians In Proc Interspeech Speech Recognition – Phonetics [https://jonathan-hui.medium.com /speech- recognition- p d761ea1710c0] Feature Extraction - MFCC cho... 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,