Tải bản đầy đủ (.pdf) (40 trang)

đồ án nhận dạng giọng nói bằng ML và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.34 MB, 40 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

Tên đồ án:
Nhận dạng giọng nói bằng ML và ứng dụng
Lớp: SE121.L21
Thành viên thực hiện:
18521678 - Lê Minh Vương
18521619 - Lương Đình Tường

1


NHẬN XÉT
Giáo viên hướng
dẫn:
ThS.
Maidẫn)
Trọng Khang
(Của giáo
viên
hướng
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………


……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

2



……………………………………………………………………………………………………
……………………………………………………………………………………………………

3


LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng biết ơn đến tất
cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt quá trình học tập và
nghiên cứu đề tài này. Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay, em đã nhận
được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công Nghệ Phần Mềm đã
truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường. Nhờ có
những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài đồ án của em mới có thể hồn thiện tốt
đẹp.
Một lần nữa, em xin chân thành cảm ơn thầy cô - người đã trực tiếp giúp đỡ, quan tâm, hướng
dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.
Bước đầu đi vào thực tế của em còn hạn chế và còn nhiều bỡ ngỡ nên khơng tránh khỏi những
thiếu sót , em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến thức
của em trong lĩnh vực này được hồn thiện hơn đồng thời có điều kiện bổ sung, nâng cao ý thức
của mình.
Em xin chân thành cảm ơn!

4


GIỚI THIỆU
Cơng nghệ nhận dạng tiếng nói (Speech Recognition, Speech-to-text hay ASR) là một hệ thống
có khả năng nhận và dịch (hoặc hiểu và thực hiện) các lệnh thu được từ giọng nói con người. Nó

được sử dụng rất nhiều trong khoảng thời gian gần đây và có một lịch sử phát triển lâu đời.
Một số ví dụ gần gũi của các ứng dụng sử dụng cơng nghệ này có thể kể đến như các trợ lý ảo
Siri (của Apple) hay Google Assistant.
Việc ứng dụng công nghệ nhận dạng tiếng nói trong đời sống hằng ngày mang lại nhiều lợi ích
cho người dùng có thể kể đến như tăng năng suất, thuận tiện và tính chính xác cao.
Một số ứng dụng khác có thể kể đến như điều khiển xe tự hành, nhà thông minh, dịch ngôn ngữ,
… trong thời gian thực rất có ích và được quan tâm cao.
Chính vì thế, nhóm chúng em ln cố gắng để thực hiện tốt chủ đề của đồ án để có thể xây dựng
những ứng dụng tích hợp cơng nghệ nhận dạng tiếng nói về sau này cũng như tăng tính dễ sử
dụng của người dùng trong các phần mềm, ứng dụng đó.
Với sự phát triển nhanh chóng của cơng nghệ máy học cũng như khả năng tính tốn mạnh mẽ
của phần cứng trong thời đại ngày nay, chúng em càng nhận thức rõ tầm quan trọng của nội dung
đề tài mà mình đang thực hiện và tích cực mở rộng cũng như tích hợp cơng nghệ vào đời sống
hằng ngày để nâng cao chất lượng cuộc sống của mọi người hơn.

5


MỤC TIÊU
Mục tiêu chúng của nhóm chúng em đó là tìm hiểu về lĩnh vực Machine Learning cũng như lĩnh
vực con nhưng khơng kém phần quan trọng của nó đó là Deep Learning. Qua đó, áp dụng các
kiến thức như thuật tốn, thư viện, cơng cụ, ngơn ngữ lập trình, thiết kế,… trong những lĩnh vực
đã nêu trên kèm theo các lĩnh vực liên quan như xử lý tiếng nói (Speech processing), xử lý sóng
(Signal processing),… để viết những mơ hình training trên các tập dữ liệu âm thanh mẫu sưu tập.
Qua đó cố gắng cải thiện các đặc tính như tốc độ xử lý hay độ chính xác của những mơ hình nêu
trên. Cuối cùng, chúng em sẽ cố gắng xây dựng một ứng dụng áp dụng công nghệ xử lý tiếng nói
thực tế tích hợp các mơ hình pre-trained với mong đợi ứng dụng có thể thực thi hiệu quả đúng
chức năng được đề ra với độ tin cậy cao.

6



TỔNG QUAN
Nhìn chúng, nhóm chúng em dự kiến sẽ thực hiện đồ án theo từng giai đoạn quan trọng sau.
Đầu tiên, nhóm sẽ tìm hiểu về các kiến thức chính trong các mảng và lĩnh vực liên quan đến đồ
án như Máy học (machine learning), học sâu (deep learning), xử lý tín hiệu, xử lý âm thanh,…
cũng như tìm kiếm các tập dữ liệu mẫu thỏa những yếu tố: open-source, đủ lớn để thực hiện
training, single word (vì hướng đi chính trong việc training đó là phân loại tiếng nói theo từ),
thời lượng phù hợp, đã được gắn nhãn sẵn để có thể training các mơ hình để sau này sử dụng.
Như đã đề cập ở trên thì nhóm chúng em dự kiến sẽ sử dụng bộ dữ liệu Tensorflow Speech
Recognition trên Kaggle.
Tiếp theo, nhóm chúng em sẽ áp dụng những thuật toán xử lý âm thanh đầu vào, loại bỏ các yếu
tố không cần thiết như tạp âm,… cũng như áp dụng các phương pháp feature-extraction (cụ thể
có thể là MFCC). Sử dụng các mạng nơ-ron thích hợp (CNN hoặc RNN) để train mơ hình một
cách tối ưu nhất và hiệu quả nhất.
Thư viện mà nhóm chúng em dự kiến sẽ sử dụng bao gồm một số thư viện thường gặp trong máy
học Keras kết hợp Tensorflow sử dụng ngơn ngữ Python. Hệ điều hành mà nhóm chúng em sẽ sử
dụng đó là Windows.

7


CHƯƠNG 1: Giới thiệu về Machine Learning
Machine learning là một lĩnh vực con của Trí tuệ nhân tạo(Artificial Intelligence) sử dụng các
thuật tốn cho phép máy tính có thể học từ dữ liệu để thực hiện các công việc thay vì được lập
trình một cách rõ ràng.
Deep learning là một phạm trù nhỏ của machine learning. Deep learning tập trung giải quyết các
vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện
giọng nói, tầm nhìn máy tính và xử lý ngơn ngữ tự nhiên.
I/ Mạng nơ-ron (Neural Network)

Mạng nơ-ron (Neural Network hay NN) là một tập hợp các dây thần kinh kết nối với nhau.
Trong Deep Learning, Neural Network để chỉ mạng nơ-ron nhân tạo, cấu thành từ các lớp nơron.
Deep Learning được xây dựng trên cơ sở 1 mạng lưới các Nơ-ron nhân tạo, tổ chức thành từng
lớp (Layer). Kết quả của mỗi lớp lại biểu diễn các thuộc tính (features) của lớp cao hơn (lớp phía
sau).

Hình 1 Biểu diễn của một mạng nơ-ron
8


Theo hình 1, các giá trị nhận được ở Layer 1, lần lượt thông qua các lớp đến lớp cuối cùng.
Layer 1 gọi là Input Layer, Layer 4 là Output layer, các layer ở giữa còn lại gọi là Hidden Layer.
1.1/ Lớp nơ-ron (Layers)
1.1.1/ Dense layers
Dense layer hay Fully-connected layer là một lớp cổ điển trong mạng nơ-ron nhân tạo. Mỗi nơron nhận đầu vào từ tất cả nơ-ron lớp trước đó.
1.1.2/ Dropout layers
Dropout layer trong Keras là một trong những kĩ thuật phổ biến nhất được sử dụng với mục đích
giảm overfitting trong các model học sâu.
Overfitting là hiện tưởng xảy ra khi độ chính xác lúc áp dụng model trên tập dùng để train cao
hơn khi áp dụng trên tập dữ liệu test hay unseen data.
Để đạt được chức năng này, kĩ thuật dropout yêu cầu một vài nơ-ron ẩn hay các lớp bị dropped
một cách ngẫu nhiên. Các thí nghiệm cho thấy rằng áp dụng kĩ thuật này sẽ giúp model đạt được
mục tiêu hạn chế overfitting.
1.2/ Mạng nơ-ron
1.2.1/ Mạng nơ-ron nhân tạo (Artificial Neuron Network)

Mạng Nơ-ron nhân tạo (Artificial Neural Network, viết tắt là ANN) là mơ hình xử lý thơng tin
được mơ phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn
các Nơ-ron được gắn kết để xử lý thông tin. ANN giống như bộ não con người, được học bởi
kinh nghiệm (thơng qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức)

và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data).

9


Hình 2 Kiến trúc tổng quát của một ANN
Mạng nơ-ron có thể được chia thành nhiều loại dựa trên các layer của chúng cũng như các thuộc
tính khác của mạng như cấu trúc (structure), số lượng nơ-ron được sử dụng, mật độ các nơ-ron,
luồng dữ liệu,…
Một mạng nơ-ron sâu (Deep Neural Network, viết tắt là DNN) là một ANN với nhiều lớp ẩn
(hidden layer) giữa lớp input và lớp output.

10


1.2.2/ Mạng nơ-ron truyền thẳng một lớp (Single-layer Neural Network)

Hình 3 Một số mạng nơ-ron đơn giản khác nhau
Mạng nơ-ron truyền thẳng một lớp là loại mạng chỉ có lớp nơ-ron đầu vào và một lớp nơ-ron đầu
ra (thực chất lớp nơ-ron đầu vào khơng có vai trị xử lý, do đó ta nói mạng chỉ có một lớp). Loại
mạng này còn được gọi là mạng perceptron một lớp. Mỗi nơ-ron đầu ra có thể nhận tín hiệu từ
các đầu vào x1, x2, …, xm để tạo ra tín hiệu đầu ra tương ứng.
1.2.3/ Mạng nơ-ron truyền thẳng nhiều lớp (Multi-layer feedforward networks)
Trong mạng nơ-ron truyền thẳng nhiều lớp, lớp nhận tín hiệu vào của mạng gọi là lớp vào (input
layer), nó thường khơng thực hiện việc chuyển đổi thơng tin mà chỉ làm chức năng nhận tín hiệu.
Tín hiệu ra của mạng được đưa ra từ lớp ra (output layer). Các lớp ở giữa lớp vào và lớp ra gọi là
các lớp ẩn. Trong mạng truyền thẳng (feedforward network) khơng có nút nào mà đầu ra của nó
là đầu vào của một nút khác trên cùng lớp với nó hoặc lớp trước.

11



Hình 4 Mơ hình một mạng nơ-ron truyền thẳng nhiều lớp
Trong mạng nơ-ron truyền thẳng nhiều lớp, lớp nhận tín hiệu vào của mạng gọi là lớp vào (input
layer), nó thường không thực hiện việc chuyển đổi thông tin mà chỉ làm chức năng nhận tín hiệu.
Tín hiệu ra của mạng được đưa ra từ lớp ra (output layer). Các lớp ở giữa lớp vào và lớp ra gọi là
các lớp ẩn. Trong mạng truyền thẳng (feedforward network) khơng có nút nào mà đầu ra của nó
là đầu vào của một nút khác trên cùng lớp với nó hoặc lớp trước.
Mạng có phản hồi (feedback network) là mạng mà đầu ra của một nơ-ron có thể trở thành đầu
vào của nơ-ron trên cùng một lớp hoặc của lớp trước đó. Mạng feedback có chu trình khép khín
gọi là mạng quy hồi (recurrent network).

12


Hình 5 Một layer của một mạng quy hồi, trong đó đầu ra (output) của một nơ-ron được tái sử
dụng thành đầu vào (input) của một nơ-ron khác cùng lớp
1.2.4/ Mạng nơ-ron tích chập (Convolutional Neural Network)
Mạng nơ-ron tích chập (CNN hay còn được gọi là ConvNet) là một lớp của mạng nơ-ron sâu
DNN. CNN thường được áp dụng phổ biến trong những bài tốn thị giác máy tính, hệ thống gợi
ý, phân loại hình ảnh,…
Một mạng nơ-ron tích chập (ConvNet) là một mạng nơ-ron thuộc nhóm mạng nơ-ron truyền
thẳng nhiều lớp (multi-layer feedforward network).
Các lớp (layer) được sử dụng phổ biến trong một CNN có thể được minh họa trong ví dụ bài
tốn phân loại ảnh (image classification) và cách dữ liệu được truyền từ lớp này sang lớp sau (cụ
thể dữ liệu là một ảnh đầu vào có kích thước 32x32 và chiều sâu là 3, sử dụng kênh màu RGB)
+ Input layer (lớp đầu vào): Tại lớp này, dữ liệu được xử lý được đưa vào có kích thước 32x32
và độ sâu là 3.

13



+ Convolutional layer (lớp tích chập): Lớp này tính output bằng cách sử dụng các phép toán trên
các filter và image patch. Giả sử ta sử dụng tổng cộng 12 filter cho lớp này, ở output sẽ cho ra
một khối dữ liệu có kích thước 32x32x12.
+ Activation Function layer (lớp hàm kích hoạt): Lớp này sẽ thực thi các hàm kích hoạt trên
output của lớp trước (lớp tích chập). Một vài hàm kích hoạt phổ biến bao gồm: RELU, Sigmoid,
Tanh, Leaky RELU,… Kích thước của đầu ra vẫn giữ nguyên kích thước 32x32x12.
+ Pool layer (Lớp pooling): Mục đích chính của lớp này là dùng để giảm kích thước dữ liệu
nhằm để tăng tốc độ tính tốn và giảm dung lượng bộ nhớ sử dụng cũng như hạn chế overfitting.
Hai loại pooling phổ biến nhất là max pooling và average pooling. Nếu chúng ta sử dụng max
pool với một filter kích thước 2x2 và stride là 2 lên dữ liệu của lớp trước. Ta sẽ có được một
output với kích thước là 16x16x12.
+ Fully-Connected layer: Lớp này là một lớp nơ-ron thơng thường có chức năng lấy đầu vào từ
lớp trước và sử dụng các phép tính tốn để đưa ra kết quả của bài tốn (thơng thường là một
mảng kích thước bằng số lượng loại chứa điểm số của từng loại đó - class score).
1.2.5/ Mạng nơ-ron quy hồi (Recurrent Neural Network)
Mạng nơ-ron quy hồi (RNN) là một mạng nơ-ron mà trong đó output từ những bước thực hiện
trước được nạp vào input của bước hiện tại. Trong một mạng nơ-ron thông thường, tất cả input
và output đều độc lập lẫn nhau, nhưng khi giải quyết các bài toán dự đốn (auto-correct, giá
stock,…) mà trong đó các kết quả dự đoán trước là cần thiết để giải quyết vấn đề dự đốn trong
hiện tại. Do đó, mạng RNN được sử dụng để giải quyết trường hợp này. Một mạng RNN tạo ra
các output ở mỗi time step. Về nguyên lí thì một mạng RNN sẽ chia sẻ các trọng số giữa các
time step.
Cách thức hoạt động của một mạng RNN có thể được hiểu như sau:

14


Hình 6 Mạng RNN

Sơ đồ trên cho thấy cách hoạt động của RNN. Ví dụ trong bài tốn xử lý ngôn ngữ, nếu đầu vào
là một câu (sentence) gồm 5 từ, mạng nơ-ron có thể được quan sát như là 5 lớp khác nhau, mỗi
lớp dành cho một từ. Trong đó, chúng sử dụng các cơng thức để tính tốn như sau:
+ xt là input tại time step thứ t.
+ st là trạng thái tại time step thứ t. Nó được xem như là “bộ nhớ” của mạng nơ-ron. st được tính
dựa trên trạng thái trước cùng với input tại time step hiện tại:

. Hàm f thông

thường là một hàm phi tuyến tính như tanh hay ReLU. s-1 là trạng thái cần thiết để tính trạng
thái ẩn đầu tiên, thơng thường được đặt các giá trị là 0.
+ ot là output tại bước thứ t. Ví dụ, nếu chúng ta muốn dự đốn từ tiếp theo trong một câu thì nó
sẽ một vector chứa các giá trị xác suất cho từng từ vựng.

.

Một vài ứng dụng của RNN có thể kể đến như là những bài tốn xử lý ngơn ngữ tự nhiên (NLP):
language modeling, generating text, dịch máy, speech recognition, mơ tả hình ảnh,…
Bên cạnh RNN, thì cịn có tồn tại những mạng nơ-ron khác kế thừa những đặc tính nổi bật của
RNN như: Bidirectional RNN, Deep RNN, mạng LSTM,...

15


1.2.6/ Bộ nhớ ngắn-dài hạn (Long short-term memory)
Long short-term memory (viết tắt là LSTM) hoạt động như một RNN nhưng có thêm một đặc
điểm nổi trội. Nó ghi nhớ những dự đốn của mạng lâu hơn so với RNN. Vì thế khi cố gắng để
dự đốn, nó sẽ chứa thơng tin của những lần dự đốn trước và có thể chọn một cách phù hợp
hơn. Ví dụ: trong bài tốn speech recognition, có thể xuất hiện một từ ngữ tồn tại nhiều phiên
bản khác nhau (loud, quiet,…). Việc ứng dụng mạng LSTM có thể sẽ lưu lại những phiên bản

khác nhau này và những lần dự đoán tiếp theo sẽ hoạt động tốt hơn.
1.3/ Nơ-ron

Hình 7 Ảnh minh họa một Nơ-ron và q trình xử lý thơng tin của chúng.
Một nút nơ-ron sẽ nhận nhiều input khác nhau. Với mỗi input, có một giá trị trọng số (weight)
được gán cho liên kết giữa input và nơ-ron đó (gọi là connection).
+ Inputs (dữ liệu vào): Mỗi input tương ứng với 1 thuộc tính (attribute) của dữ liệu (patterns).
+ Outputs (kết quả): Kết quả của một ANN là một giải pháp cho một vấn đề.
+ Connection Weights (trọng số liên kết): Đây là thành phần rất quan trọng. Nó thể hiện mức độ
quan trọng của dữ liệu đầu vào đối với quá trình xử lý thơng tin (q trình chuyển dữ liệu từ
layer này sang layer khác).

16


+ Summation Function (Hàm tổng):Tính tổng trọng số của tất cả các input được đưa vào mỗi
Nơ-ron (phần tử xử lý PE). Hàm tổng của một Nơ-ron đối với n input được tính theo cơng thức
sau:

+ Transfer Function (Hàm chuyển đổi): Hàm tổng (Summation Function) của một Nơ-ron cho
biết khả năng kích hoạt (Activation) của Nơ-ron đó cịn gọi là kích hoạt bên trong (internal
activation). Các Nơ-ron này có thể sinh ra một output hoặc khơng trong ANN (nói cách khác
rằng có thể output của 1 Nơ-ron có thể được chuyển đến layer tiếp trong mạng Nơ-ron hoặc
không). Mối quan hệ giữa Internal Activation và kết quả (output) được thể hiện bằng hàm
chuyển đổi (Transfer Function).

Hình 8 Summation function và Transformation function
Việc lựa chọn Transfer Function có tác động lớn đến kết quả của ANN. Hàm chuyển đổi phi
tuyến được sử dụng phổ biến trong ANN là sigmoid (logical activation) function.
YT = 1/(1 + e-Y)


17


Trong đó:
YT: Hàm chuyển đổi
Y: Hàm tổng
Kết quả của Sigmoid Function thuộc khoảng [0,1] nên còn gọi là hàm chuẩn hóa (Normalized
Function).
Kết quả xử lý tại các Nơron (Output) đơi khi rất lớn, vì vậy transfer function được sử dụng để xử
lý output này trước khi chuyển đến layer tiếp theo. Đơi khi thay vì sử dụng Transfer Function
người ta sử dụng giá trị ngưỡng (Threshold value) để kiểm soát các output của các Nơron tại một
layer nào đó trước khi chuyển các output này đến các Layer tiếp theo. Nếu output của một nơron
nào đó nhỏ hơn giá trị ngưỡng thì nó sẽ khơng được chuyển đến Layer tiếp theo.
II/ Một số thuật toán được sử dụng trong máy học (machine learning)
2.1/ Học có giám sát
Ở lần học đầu tiên mạng được cung cấp một mẫu học cùng với bộ trọng số tự do, đầu ra thực tế
của mạng sẽ được so sánh với đầu ra mong muốn, sai khác giữa hai giá trị này là cơ sở cho việc
hiệu chỉnh trọng số của mạng, quá trình huấn luyện diễn ra liên tục cùng với bộ thông số đầu vào
cho đến khi mạng đạt được một giá trị sai số như mong muốn. Điển hình cho kỹ thuật này là
mạng Nơron lan truyền ngược.

18


Hình 9 Mơ hình huấn luyện mạng có giám sát
Một số thuật tốn học có giám sát hay được sử dụng:
+ k-Nearest Neighbours
+ Decision Trees
+ Naive Bayes

+ Logistic Regression
+ Support Vector Machines
2.2/ Học không giám sát
Trong học không giám sát thì khơng có bất kỳ một thơng tin phản hồi từ mơi trường. Mạng phải
tự tìm ra các đặc tính, quy luật, tương quan trong dữ liệu đầu vào và tập hợp lại để tạo đầu ra.
Khi tự tìm ra các đặc điểm này, mạng đã trải qua các thay đổi về tham số của nó. Q trình này
được gọi là tự tổ chức. Mạng Nơron điển hình được huấn luyện theo kiểu tự tổ chức.

Hình 10 Mơ hình huấn luyện mạng không giám sát

19


Hình 11 Ảnh minh họa về bài tốn clustering
Bài tốn clustering là một ví dụ điển hình quan trọng để hiểu rõ khái niệm học không giám sát.
Phần lớn của việc sử dụng phương pháp này là để tìm một pattern trong một tập dữ liệu không
gán nhãn.
Một số thuật toán clustering phổ biến:
+ K-means clustering
+ k-NN (K- Nearest Neighbors)
2.3/ Học tăng cường
Trong luật học có giám sát, các giá trị đầu ra được biết chính xác đối với mỗi đầu vào. Tuy
nhiên, trong thực tế có một số trường hợp chỉ biết ít thơng tin chi tiết, chẳng hạn mạng chỉ biết
rằng giá trị đầu ra thực sự quá cao hay có thể mạng chỉ có được thơng tin phản hồi báo rằng đầu
ra đúng hay sai. Thuật học dựa trên thông tin đánh giá này được gọi là thuật học củng cố, thông
tin phản hồi được gọi là tín hiệu tăng cường.

20



Hình 12 Mơ hình huấn luyện mạng tăng cường
2.4/ Sự khác nhau giữa các phương pháp học
Học có giám sát thường được ứng dụng trong các bài toán quy hồi (regression) và phân loại
(classification). Học không giám sát được ứng dụng trong các bài toán clustering. Và cuối cùng
là học tăng cường thường được sử dụng để giải quyết trong các bài tốn Q trình quyết định
Markov, policy learning, value learning...
Học có giám sát làm việc trên tập dữ liệu được gán nhãn cịn học khơng giám sát làm việc dựa
trên bộ dữ liệu chưa được gán nhãn. Học tăng cường sử dụng bộ dữ liệu không rõ ràng, không
được định nghĩa sẵn.
Học có giám sát dự đốn dựa trên tập dữ liệu. Học không giám sát luôn quan sát những pattern
của dữ liệu và trong học tăng cường, các nhân tố học (agent) hoạt động trên hệ thống thưởng dựa
trên hoạt động.
Mục tiêu chính của học có giám sát là sinh ra công thức dựa trên input và output. Trong học
khơng giám sát, chúng ta tìm mối liên kết giữa các giá trị input và nhóm chúng lại. Trong học
tăng cường, nhân tố học dựa trên các delay feedback bằng cách tương tác với môi trường.

21


CHƯƠNG 2: GIỚI THIỆU VỀ BÀI TOÁN SPEECH RECOGNITION
I/ Speech Recognition (Nhận dạng tiếng nói)
Đây là một lĩnh vực nghiên cứu cũng như bài toán cần phải giải quyết xuyên suốt q trình phát
triển cơng nghệ bởi đặc tính ứng dụng cao của nó. Trong lĩnh vực Speech recognition tồn tại các
vấn đề cần phải giải quyết chính như Automatic Speech Recognition (ASR), Speech to text
(STT),…
Một hệ thống Speech Recognition (SR) yêu cầu phải được ‘training’ dựa trên các bộ dữ liệu âm
thanh mà trong đó người ghi âm phải ghi nhận những từ ngữ khác nhau. Hệ thống sẽ phân tích
âm thanh nói đầu vào và thực hiện các cơng việc tương ứng để giải quyết bài tốn như xác định
từ, câu,… ở đầu vào. Qua đó có thể ứng dụng vào nhiều lĩnh vực khác nhau trong đời sống.
Một số ứng dụng của Nhận dạng tiếng nói có thể kể đến như là:

+ Hệ thống hỗ trợ lái xe
+ Y tế
+ Quân sự (phương tiện di chuyển, hỗ trợ tự lái,...)
+ Giáo dục (học phát âm ngoại ngữ,…)
+ Hỗ trợ người khuyết tật
+ Trợ lý ảo (Virtual assistant,…)
+ Video games
+ Hệ thống dịch tự động và một số ứng dụng khác

22


II/ Giới thiệu về một số thư viện
2.1/ Tensorflow và Keras
Tensorflow là một thư viện được phát triển bởi Google để phát triển ứng dụng hoặc nghiên cứu
trong lĩnh vực máy học (Machine learning) và học sâu (Deep learning).
Keras là một API mạng nơ-ron bậc cao (high-level) chạy trên nền tảng là thư viện Tensorflow.
Keras cho phép người dùng tạo một model với chi phí lập trình thấp, nhanh nên rất phù hợp để
sử dụng trong nghiên cứu và giảng dạy. Keras sử dụng cả CPU lẫn GPU trong quá trình train nên
tốc độ train sẽ nhanh hơn.
2.2/ Librosa
Librosa là một thư viện của python được sử dụng trong việc phân tích các mẫu âm thanh khác
nhau. Nó cung cấp những cơng cụ cần thiết cho người lập trình để có thể xây dựng các hệ thống
xử lý thơng tin âm thanh.
2.3/ Dataset
LibriSpeech ASR Corpus: Dataset bao gồm các đoạn audio ngơn ngữ Tiếng Anh được trích từ
các audiobook khác nhau với tổng thời lượng hơn 1000 giờ.
Google Speech Commands Dataset: Được xây dựng bởi đội ngũ phát triển Tensorflow và AIY.
Dataset này bao gồm hơn 65000 đoạn âm thanh với dung lượng ngắn (xấp xỉ 1 giây mỗi mẫu).
Nội cung của mỗi đoạn âm thanh bao gồm 1 trong số 30 từ (voice command) tiếng anh được nói

và ghi âm bởi nhiều đối tượng khác nhau.
Synthetic Speech Commands Dataset: Dataset này bao gồm nhiều đoạn âm thanh khác nhau với
thời lượng ngắn và nội dung đơn giản. Ví dụ, mỗi file bao gồm các câu ra lệnh ngắn như ‘yes’,
‘no’, ‘up’, ‘down’, ‘on’, ‘off’,…

23


III/ Thuật toán cài đặt
3.1/ Dataset
Trước khi thực hiện giải quyết bài tốn Nhận diện tiếng nói (SR) bằng cách train một model. Ta
cần phải chuẩn bị nhiều dữ liệu để giải quyết bài toán. Trong đồ án, chúng em quyết định sử
dụng dataset từ challenge của Kaggle.com. Dataset hoàn tồn miễn phí và là một phần của thử
thách “Tensorflow speech recognition” trên Kaggle. Tập dữ liệu mẫubao gồm hơn 65000 mẫu
âm thanh có thời lượng trên dưới 1 giây và nội dung bao gồm 30 từ ngắn khác nhau được phát
âm và ghi lại bởi nhiều người khác nhau.
3.2/ Xử lý tiếng nói (Speech processing)
Lời nói, tiếng nói là một phương pháp giao tiếp thường xuyên được sử dụng bởi mọi người trong
những cuộc đối thoại hằng ngày. Đó là một trong những chìa khóa giúp con người nổi bật hơn so
với các loại động vật khác trong tự nhiên. Bên cạnh đó, chúng ta sử dụng các ngơn ngữ cơ thể và
các tín hiệu khác để giao tiếp và biến chúng thành một công cụ đắc lực để hỗ trợ trong làm việc,
sinh hoạt.
Lịch sử của giao tiếp đã hình thành từ lâu đời. Một trong những quá trình giao tiếp quan trọng
nhất đó chính là lưu trữ thơng tin.
3.2.1/ Hệ thống Nhận dạng tiếng nói
Xét ví dụ sau về một hệ thống sử dụng Encoder và decoder trong q trình Nhận dạng tiếng nói.

24



Hình 13 Ảnh minh họa cho quá trình thực thi của bộ Encoder và Decoder
Chuyển phát và lưu trữ âm thanh: Nhiệm vụ của mục tiêu này là nén tín hiệu âm thanh sao cho
chúng đạt được dung lượng hợp lí nhất có thể mà vẫn giữ được chất lượng nhiều nhất có thể.
Chúng ta phải đảm bảo người nghe có thể nghe thấy được nội dung quan trọng của đoạn âm và ít
để ý đến những tín hiệu (signal) bị mất hoặc bổ sung vào.
Khi chuyển âm thanh, bên gửi (sender) sẽ sử dụng bộ mã hóa (encoder) để gửi thông tin âm
thanh cho bên nhận. Trong bộ encoder này, thơng thường sẽ sử dụng một mơ hình đánh giá độ
quan sát được của âm thanh (percetual importance). Sau đó, tín hiệu âm thanh sẽ được nén lại
thành dung lượng nhỏ hơn. Bên decoder sẽ nhận nhiệm vụ giải mã quá trình nén này theo các
bước ngược lại so với encoder.
Khâu tiền xử lý bao gồm (pre-processing) các tác vụ thông thường như noise attenuation hay
voice activity detection.
Chiết xuất thơng tin: Ta có thể chiết lọc nhiều mẫu thơng tin khác nhau từ một tín hiệu tiếng nói
ban đầu. Các mẫu thông tin như vậy được gọi là các nhãn và đóng góp quan trọng trong các thuật
tốn máy học. Một hệ thống sẽ sử dụng các cơ sở dữ liệu thông tin như thế để train và qua q
trình train, nó có thể học được cách phân loại các mẫu âm thanh khác nhau theo nhãn.

25


×