Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset . Báo Cáo Môn Học Sâu về Nhận dạng giọng nói tiếng việt có Kèm code và dataset .
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
NHẬP MÔN HỌC SÂU
ĐỀ TÀI:
XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG KHẨU TIẾNG VIỆT
SỬ DỤNG DEEP LEARNING Sinh viên thực hiện : PHẠM THANH PHONG,
PHÙNG VĂN PHƯƠNG
Giảng viên hướng dẫn : NGÔ HOÀNG HUY
Chuyên ngành : TRÍ TUỆ NHÂN TẠO & THỊ
GIÁC MÁY TÍNH
Hà Nội, tháng 03 năm 2022
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 2
CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY VÀ TÌM HIỂU VỀ KỸ THUẬT MẠNG RNN-LSTM 3
1.1 Giới thiệu về Học Sâu 3
1.1.1 Định Nghĩa : 3
1.1.2 Cách thức hoạt động của Deep Learning : 4
1.1.3 Ưu Điểm của Deep Learning : 6
1.1.4 Ứng Dụng của Deep Learning : 6
1.2 Mạng Hồi Quy RNN và Mạng LSTM 8
1.2.1 Giới thiệu Mạng Hồi Quy RNN 8
1.2.2 Giới thiệu Mạng LSTM 13
CHƯƠNG 2 ỨNG DỤNG NHẬN DIỆN KHẨU LỆNH GIỌNG NÓI 14
2.1 Ứng dụng trong nhận diện khẩu lệnh 14
2.2 Phát biểu bài toán 14
2.3 Mô hình ứng dụng: 14
2.4 Dữ Liệu 17
2.5 Train Model DeepSpeech 17
2.6 Kết Qủa Thực Nghiệm Mô Hình 19
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
Trang 4LỜI CẢM ƠN
Lời đầu tiên của báo cáo môn học “Nhập môn học máy”, chúng em muốn gửilời cám ơn chân thành nhất của mình tới tất cả những người đã hỗ trợ, giúp đỡchúng em về kiến thức và tinh thần trong quá trình thực hiện báo cáo Em xin chânthành gửi lời cảm ơn tới các thầy cô giáo trong Trường Đại học Điện Lực nóichung và các thầy cô giáo trong Khoa Công nghệ thông tin nói riêng đã tận tìnhgiảng dạy, truyền đạt những kiến thức cũng như kinh nghiệm quý báu trong suốtquá trình học tập Đặc biệt, xin gửi lời cảm ơn đến thầy Ngô Hoàng Huy đã tậntình theo sát giúp đỡ, trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiên cứu
và học tập của chúng em
Do thời gian thực hiện có hạn kiến thức còn nhiều hạn chế nên bài làm củanhóm chắc chắn không tránh khỏi những thiếu sót nhất định Nhóm rất mong nhậnđược ý kiến đóng góp của thầy cô giáo và các bạn để hoàn thiện đồ án của mình
Em xin chân thành cám ơn!
Trang 5LỜI MỞ ĐẦU
Công nghệ thông tin (CNTT) ngày càng có vai trò quan trọng trong cuộc sốnghằng ngày của chúng ta Việc ứng dụng CNTT vào các lĩnh vực trong đời sốnggiúp công việc được tiến hành nhanh chóng và hiệu quả hơn Có rất nhiều côngviệc mới phát triển song song với sự phát triển của CNTT, một trong những số đó
là phân tích chuẩn đoán dữ liệu – big data, hướng đi mang lại hiệu quả rất lớn.Nhóm chúng em chọn đề tài “Xây dựng chương trình nhận dạng khẩu lệnh tiếngnói sử dụng deep learning” nhằm tìm hiểu sâu hơn về dữ liệu cách khai thác và sửdụng hiệu quả, từ đó viết một ứng dụng cụ thể thử nghiệm làm cơ sở củng cố kiếnthức và định hướng, kế hoạch xây dựng các ứng dụng trong tương lai
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY VÀ TÌM HIỂU VỀ KỸ THUẬT
MẠNG RNN-LSTM 1.1 Giới thiệu về Học Sâu
1.1.1 Định Nghĩa :
Deep Learning là tập hợp con của Machine Learning và nó có tác dụng hỗtrợ cho máy tính tự huấn luyện chính nó để có thể thực hiện mọi tác vụ tương tựnhư con người Điều này chính là giúp máy tính bắt chước con người cách học hỏi
Deep Learning là gì?
Trang 7Deep Learning có hỗ trợ cho việc dịch ngôn ngữ, phân loại các hình ảnh,nhận dạng giọng nói Chính vì thế, nó có thể được ứng dụng để giải quyết mọi nhucầu cần nhận dạng mẫu mà không cần đến sự can thiệp của con người
Ngoài khái niệm Deep Learning là gì thì bạn nên tìm hiểu thêm về khái
niệm mạng lưới thần kinh như sau: Deep Learning hoạt động dựa vào mạng lướithần kinh nhân tạo và nó bao gồm nhiều lớp chứa các dữ liệu mô phỏng cách thứcvận hành của não người
Bộ phận mạnh thần kinh nhân tạo này giống với não người bao gồm: Cácnode (nó là đơn vị thần kinh trong mạng thần kinh nhân tạo) là những neuron thầnkinh Hầu hết các node bản thân thường chỉ có khả năng trả lời cho những câu hỏi đơn giản và cơ bản nhất; với những tác vụ khó thì chúng sẽ tiến hành liên kết vớinhau để trả lời
Bạn có thể dạy hoặc có thể huấn luyện chúng bằng những thuật toán cụthể Những node giải đáp các câu hỏi phức tạp thì sẽ được gọi là mạng lưới thầnkinh sâu (DNN), nó được định nghĩa như sau: Mạng lưới thần kinh sâu có khảnăng thực hiện các hoạt động phức tạp như biểu diễn, trừu tượng có mang các ýnghĩa về âm thanh, văn bản và hình ảnh Chúng được đánh giá là lĩnh vực pháttriển nhất trong Machine Learning
1.1.2 Cách thức hoạt động của Deep Learning :
Deep Learning được xem là một phương pháp của học máy theo phươngpháp: lập trình AI sẽ được huấn luyện để dự đoán đầu ra dựa vào một tập đầu
vào.Ví dụ cụ thể: Dự đoán hành đầu của con mèo khi gặp chuột rồi tiến hành huấn
luyện nó bằng phương pháp học có giám sát
Trang 8Mạng lưới thần kinh trong Deep Learning
Khi bạn muốn dự đoán được hành động của nó vào các đầu vào sẽ được thựchiện như sau:
Lựa chọn con mồi phù hợp
Lúc này: các bộ phận trên cơ thể của con mèo như mắt, móng vuốt, tai, củacon mèo sẽ trở nên rất nhanh nhạy
Con chuột sẽ xuất hiện ở đâu
Về cơ bản thì Deep Learning sẽ không khác với học máy thông thường Tuynhiên, với ví dụ trên thì thời gian cần dành khá nhiều mới có thể thiết kế được cáctính năng đại diện cho con mèo Những gì cần làm là cung cấp cho hệ thống một sốlượng hình ảnh con mèo, video con mèo bắt chuột thì hệ thống có thể tự học đượcnhững tính năng đại diện dành cho 1 con mèo
Với những tác vụ như thị giác máy tính, nhận dạng giọng nói, robot hoặcdịch máy thì hiệu suất của Deep Learning có thể vượt xa những hệ thống máykhác Tuy nhiên, việc xây dựng được hệ thống Deep Learning lại không mấy dễdàng so với hệ thống máy móc thông thường
Trang 91.1.3 Ưu Điểm của Deep Learning :
Deep Learning giúp giải quyết một số vấn đề mà không cần đến con người
Deep Learning có độ chính xác cao, có thể học sâu rộng và đạt được độchính xác ở mức công nhận vô cùng cao Điều này sẽ đảm bảo cho thiết bị điện tửtiêu dùng có thể đáp ứng được mọi nhu cầu cũng như mong đợi từ phía ngườidùng Deep Learning rất trọng về độ an toàn đối với những mô hình xe khôngngười lái
Các dữ liệu của Deep Learning sẽ được dán nhãn bởi: Việc phát triển của xekhông người lái đòi hỏi hàng triệu hình ảnh cũng như hàng ngàn giờ để xemvideo
GPU có hiệu suất cao và có kiến thức song song nên rất hiệu quả cho DeepLearning Nếu như kết hợp với điện toán đám mây hoặc các cụm thì nó cho phépnhóm phát triển có thể giảm xuống tối đa thời gian đào tạo đối với mạng lưới họctập sau vài tuần hoặc vài giờ
1.1.4 Ứng Dụng của Deep Learning :
Ứng dụng trong công nghệ cao
Ứng dụng vượt bậc của Deep Learning không thể không kể đến đó chính là chếtạo Robot Hiện nay, các phiên bản Robot giống con người với khả năng cảmnhận, phản ứng với môi trường đang dần được ra đời
Trang 10Hiện nay, Robot còn có thể hợp tác với các hoạt động của con người và chúng
có thể thực hiện được các nhiệm vụ riêng biệt phù hợp với thế mạnh của chúng.Robot đang góp phần thay thế con người trong việc thực hiện các công việc khókhăn hơn Đây chính là phát minh tuyệt vời nhờ ứng dụng Deep Learning
Ứng dụng trong nông nghiệp
Hiện nay, nhờ có Deep Learning mà người nông dân có thể triển khai nhữngthiết bị có khả năng phân biệt được cỏ dại với cây trồng Từ đó, các loại máy mócphun thuốc diệt cỏ có thể chọn lọc phun lên cỏ dại để đảm bảo cho cây trồngkhông bị ảnh hưởng
Ngoài vai trò loại bỏ cỏ dại bằng thuốc diệt cỏ thì nhờ Deep Learning màsản lượng nông nghiệp ngày càng được cải thiện Bên cạnh đó, Deep Learningđang được mở rộng hơn nữa sang các hoạt động như: thu hoạch, tưới tiêu, bónphân, gieo trồng,
Ứng dụng của Deep Learning trong lĩnh vực y tế
Trang 11 Ứng dụng trong điện tử
Deep Learning được ứng dụng cho công việc nhận diện không mặt trong cácthiết bị điện tử như điện thoại, các phần mềm như facebook, messenger, Thêmvào đó, Deep Learning còn được dùng trong nghe dịch và nói tự động mà trangweb google dịch đang sử dụng Ngoài ra, một số thiết bị trợ giúp tại nhà cũng đượcứng dụng Deep Learning để đáp ứng giọng nói và hiểu được sở thích của bản (đâychính là ứng dụng học sâu)
1.2 Mạng Hồi Quy RNN và Mạng LSTM
1.2.1 Giới thiệu Mạng Hồi Quy RNN
Khi xử lý video ta hay gặp khái niệm FPS (frame per second) tức là bao nhiêuframe (ảnh) mỗi giây Ví dụ 1 FPS với video 30s tức là lấy ra từ video 30 ảnh, mỗigiây một ảnh để xử lý
Ta dùng 1 FPS cho video input ở bài toán trên, tức là lấy ra 30 ảnh từ video, ảnh
1 ở giây 1, ảnh 2 ở giây 2,… ảnh 30 ở giây 30 Bây giờ input là 30 ảnh: ảnh 1, ảnh2,… ảnh 30 và output là phân loại hành động Nhận xét:
Các ảnh có thứ tự ví dụ ảnh 1 xẩy ra trước ảnh 2, ảnh 2 xẩy ra trước ảnh 3,
… Nếu ta đảo lộn các ảnh thì có thể thay đổi nội dung của video Ví dụ: nộidung video là cảnh bắn nhau, thứ tự đúng là A bắn trúng người B và B chết,nếu ta đảo thứ tự ảnh thành người B chết xong A mới bắn thì rõ ràng bây giờ
A không phải là kẻ giết người suy ra nội dung video bị thay đổi
Ta có thể dùng CNN để phân loại 1 ảnh trong 30 ảnh trên, nhưng rõ ràng là
1 ảnh không thể mô tả được nội dung của cả video Ví dụ: Cảnh người cướpđiện thoại, nếu ta chỉ dùng 1 ảnh là người đấy cầm điện thoại lúc cướp xongthì ta không thể biết được cả hành động cướp
Cần một mô hình mới có thể giải quyết được bài toán với input là sequence(chuỗi ảnh 1->30) suy ra RNN ra đời
Dữ liệu dạng sequence
Dữ liệu có thứ tự như các ảnh tách từ video ở trên được gọi là sequence, series data
Trang 12time-Trong bài toán dự đoán đột quỵ tim cho bệnh nhân bằng các dữ liệu tim mạchkhám trước đó Input là dữ liệu của những lần khám trước đó, ví dụ i1 là lần khámtháng 1, i2 là lần khám tháng 2,… i8 là lần khám tháng 8 (i1,i2, i8) được gọi làsequence data RNN sẽ học từ input và dự đoán xem bệnh nhân có bị đột quy timhay không.
Ví dụ khác là trong bài toán dịch tự động với input là 1 câu, ví dụ “tôi yêuViệt Nam” thì vị trí các từ và sự xắp xếp cực kì quan trọng đến nghĩa của câu và
dữ liệu input các từ [‘tôi’, ‘yêu’, ‘việt’, ‘nam’] được gọi là sequence data Trong bài toán xử lý ngôn ngữ (NLP) thì không thể xử lý cả câu được và người ta tách ra từng từ làm input, giống như trong video người ta tách ra các ảnh (frame) làm input.
Phân loại bài toán RNN
Cácdạng bài toán RNN
One to one: mẫu bài toán cho Neural Network (NN) và Convolutional
Neural Network (CNN), 1 input và 1 output, ví dụ với CNN input là ảnh và output
là ảnh được segment
One to many: bài toán có 1 input nhưng nhiều output, ví dụ: bài toán
caption cho ảnh, input là 1 ảnh nhưng output là nhiều chữ mô tả cho ảnh đấy, dướidạng một câu
Many to one: bài toán có nhiều input nhưng chỉ có 1 output, ví dụ bài toán
phân loại hành động trong video, input là nhiều ảnh (frame) tách ra từ video,ouptut là hành động trong video
Trang 13Many to many: bài toán có nhiều input và nhiều output, ví dụ bài toán dịch
từ tiếng anh sang tiếng việt, input là 1 câu gồm nhiều chữ: “I love Vietnam” vàoutput cũng là 1 câu gồm nhiều chữ “Tôi yêu Việt Nam”
Ứng dụng bài toán RNN
Về cơ bản nếu bạn thấy sequence data hay time-series data và bạn muốn ápdụng deep learning thì bạn nghĩ ngay đến RNN Dưới đây là một số ứng dụng củaRNN:
Speech to text: Chuyển giọng nói sang text.
Sentiment classification: phân loại số sao cho các bình luận, ví dụ: input:
“ứng dụng tốt”, output: 4 sao
Machine translation: Bài toán dịch tự động giữa các ngôn ngữ.
Video recognition: Nhận diện hành động trong video.
Heart attack: Dự đoán đột quỵ tim.
Mô Hình Bài Toán
Bài toán: Nhận diện hành động trong video 30s Đây là dạng bài toán many to onetrong RNN, tức nhiều input và 1 output
Input ta sẽ tách video thành 30 ảnh ở mỗi giây Các ảnh sẽ được cho qua modelCNN để lấy ra các feature thành các vector có kích thước n*1 Vector tương ứng
với ảnh ở giây thứ i là xi.
Output là vector có kích thước d*1, softmax function được sử dụng như trong bàiphân loại ảnh
Trang 14Mô hình RNN cho bài toán.
activation function thường là tanh hoặc ReLU
Có thể thấy s_tst mang cả thông tin từ state trước (st−1) và input của state hiện tại =>st giống như memory nhớ các đặc điểm của các input từ x1 đến xt
s0 được thêm vào chỉ cho chuẩn công thức nên thường được gán bằng 0
hoặc giá trị ngẫu nhiên Có thể hiểu là ban đầu chưa có dữ liệu gì để học thìmemory rỗng
Do ta chỉ có 1 output, nên sẽ được đặt ở state cuối cùng, khi đó s30 học được thông tin từ tất cả các input :y^=g(V∗s30) g là activation function, trong bài
này là bài toán phân loại nên sẽ dùng softmax
Ta thấy là ở mỗi state các hệ số W, U là giống nhau nên model có thể được viết lạithành:
Trang 15Mô hình RNN rút gọnTóm lại:
xi là vector có kích thước n*1, si là vector có kích thước m*1, yi là vector có
kích thước d*1 U là ma trận có kích thước m*n, W là ma trận có kích thướcm*m và V là ma trận có kích thước d*m
Trang 16Loss function
1.2.2 Giới thiệu Mạng LSTM
Mạng LSTM là một dạng đặc biệt của RNN, nó có khả năng học được các phụthuộc xa LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-termdependency) Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định củachúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tạicủa nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó cócấu trúc khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, chúng cótới 4 tầng tương tác với nhau một cách rất đặc biệt
Trang 17CHƯƠNG 2 ỨNG DỤNG NHẬN DIỆN KHẨU LỆNH GIỌNG NÓI 2.1 Ứng dụng trong nhận diện khẩu lệnh
Convolutional Neural Network là một trong những mô hình Deep Learningtiên tiến giúp chúng ta xây dựng được những hệ thông minh với độ chính xác cao
Mạng nơ-ron tích chập cho phép các máy tính có khả năng “nhìn” và phântích bằng cách đưa nó qua nhiều layer với một bộ lọc tích chập để sau cùng cóđược điểm số nhận dạng một cách tốt nhất
Trang 18Chính vì những điều đó, CNN ngày nay càng được sử dụng rộng rãi trongcái bài toán nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên , và đặc biết hơn là nhậndạng khẩu lệnh nói con người đòi hỏi sự chính xác cao
Ngày càng nhiều những chiếc điện thoại hay đồng hồ thông minh được ứngdụng công nghệ nhận diện giọng nói giúp cho người dùng có thể xem thời tiết , đặtmột món hàng qua việc ra lệnh cho điện thoại của mình
2.2.Phát biểu bài toán
Bài nhận diện khẩu lệnh nói là bài toán nhận dạng lệnh nói dựa trên các tậpfile ghi âm có sẵn trên CommonVoice để phân tích ,huấn luyện để dự đoán rakhẩu lệnh nói của con người
2.3 Mô hình ứng dụng:
Em có sử dụng mô hình được đào tạo trước của DeepSpeech để Train tập dữliệu của mình
Mô hình DeepSpeech
Ta có x và nhãn yđược lấy mẫu từ một tập huấn luyện :
Mỗi câu nói,x^(i)là một chuỗi thời gian có độ dài T^(i) trong đó mỗi lát thờigian là một vectơ của các tính năng âm thanh, x^(i)t ở đâu t=1,…,T^(i) Chúng tôi
sử dụng các tính năng của MFCC; Vì thế x^(i)tp biểu thị p-Tính năng MFCC thứtrong khung âm thanh tại thời điểmt Mục tiêu của RNN của chúng tôi là chuyểnđổi một chuỗi đầu vàoxthành một chuỗi các xác suất ký tự cho quá trình phiên mã
y, với y^t = P(ct∣x), tiếng anh ở đâu ct∈{a,b,c, ,z,space,apostrophe,blank} (Ýnghĩa củablanksẽ được giải thích bên dưới.)
Mô hình RNN của chúng tôi bao gồm 5 các lớp đơn vị ẩn Đối với một đầu vàoxx, các đơn vị ẩn ở lớp l được biểu thị h(l) với quy ước rằng h(0)là đầu vào Ba lớp đầu tiên không lặp lại Đối với lớp đầu tiên, tại mỗi thời điểmtt, đầu ra phụ thuộc vào khung MFCC xt cùng với bối cảnh củaCCkhung ở mỗi bên (Chúng tôi
sử dụng C=9 cho các thử nghiệm của chúng tôi.) Các lớp không lặp lại còn lại hoạtđộng trên dữ liệu độc lập cho mỗi bước thời gian Do đó, mỗi lần t, người đầu tiên
3 các lớp được tính toán bởi: