xây dựng hệ thống nhận dạng tiếng việt nói trên nền bộ công cụ kaldi tích hợp mạng nơ ron sâu - Pdf 43

LỜI CAM ĐOAN
Tôi – Nguyễn Thị Thanh, học viên lớp cao học 13BCNTT2 Trường Đại học Bách
khoa Hà Nội cam kết: Luận văn tốt nghiệp là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của TS. Nguyễn Hồng Quang – Viện Công nghệ Thông tin và
Truyền thông- Đại học Bách khoa Hà Nội. Các kết quả trong luận văn tốt nghiệp là
trung thực, không sao chép toàn văn của bất kỳ công trình nào khác.
Hà Nội, ngày 25 tháng 10 năm 2016
Học viên: Nguyễn Thị Thanh
Lớp: 13BCNTT2

i


LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo, TS. Nguyễn Hồng Quang –
Bộ môn Kỹ thuật Máy tính – Viện Công nghệ Thông tin và Truyền thông – Đại học
Bách Khoa Hà Nội, người thầy đã hết lòng giúp đỡ, dạy bảo, động viên và tạo mọi
điều kiện thuận lợi cho tôi trong suốt quá trình học tập và hoàn thành luận văn tốt
nghiệp.
Tôi xin chân thành cảm ơn tập thể các Thầy, Cô giáo trường Đại học Bách
khoa Hà Nội nói chung và Viện Công nghệ Thông tin và Truyền thông nói riêng đã
tận tình giảng dạy truyền đạt cho tôi những kiến thức, kinh nghiệm quý báu trong
suốt thời gian học tập tại trường.

ii


MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................ i
LỜI CẢM ƠN .............................................................................................................ii
MỤC LỤC ................................................................................................................. iii

[13] ............................................... 31

1.2. Hệ thống nhận dạng tiếng nói [20] .............................................................. 36
1.2.1. Cấu trúc của một hệ thống nhận dạng tiếng nói...................................... 37
1.2.2. Phân loại hệ thống nhận dạng tiếng nói .................................................. 38
1.2.3. Các phương pháp nhận dạng tiếng nói .................................................... 39
1.2.4. Các ứng dụng của nhận dạng tiếng nói ................................................... 41
Chương II. PHƯƠNG PHÁP THỰC HIỆN VÀ CÔNG CỤ SỬ DỤNG................ 42
2.1. Phương pháp thực hiện đề tài ........................................................................ 42
2.2. Kỹ thuật trích chọn đặc trưng MFCC [3] .................................................... 42
2.3. Mô hình GMM ............................................................................................... 46
2.4. Bộ công cụ nhận dạng tiếng nói Kaldi

[2] ............................................... 47

2.4.1. Giới thiệu................................................................................................. 47
2.4.2. Cấu trúc bộ công cụ Kaldi

[4].............................................................. 49

2.5. Ngôn ngữ lập trình Shell ................................................................................ 51
2.6. Ngôn ngữ lập trình Perl ................................................................................. 52
2.7. Ngôn ngữ lập trình Python............................................................................. 52
Chương III. NHẬN DẠNG TIẾNG VIỆT NÓI TRÊN NỀN BỘ CÔNG CỤ KALDI
TÍCH HỢP MẠNG NƠ RON SÂU .......................................................................... 54
3.1. Các bước thực hiện xây dựng hệ thống nhận dạng tiếng nói trên nền bộ công
cụ Kaldi ................................................................................................................. 54
3.2. Chuẩn bị dữ liệu ............................................................................................. 55
3.2.1. Thu âm tiếng nói ..................................................................................... 55
3.2.2. Chuẩn bị dữ liệu văn bản ........................................................................ 56

3.6. Giải mã

[10] ..................................................................... 81

[11] ............................................................................................ 83

v


3.7. Tính WER và SER ........................................................................................ 86
CHƯƠNG IV. KẾT QUẢ THỬ NGHIỆM ............................................................. 88
4.1. Kết quả thực hiện với các mô hình huấn luyện ............................................. 88
4.2. Kết quả thực hiện với các trọng số mô hình ngôn ngữ khác nhau ................ 89
KẾT LUẬN ............................................................................................................... 90
TÀI LIỆU THAM KHẢO ......................................................................................... 92

vi


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt

Tên đầy đủ

Nghĩa tiếng Việt

AI

Artificial Intelligence


Boosted Maximum Mutual

Thông tin tương hỗ tối đa tăng

Information

cường

Cepstral Mean Variance

Giá trị trung bình phương sai bình

Normalization

phương

CNN

Convolutional Neural Network

Mạng nơ ron sâu chập

DBN

Deep belief network

Mạng Belief sâu

DNN


HoCoLoG

Đồ thị giải mã HCLG

HMM

Hidden Markov Model

Mô hình Markov Ẩn

ICDAR

International Conference on

Hội nghị quốc tế về phân tích tài

Document Analysis and

liệu và nhận dạng

BMMI

CMVN

Recognition
LAPACK

Linear Algebra PACKage

Thư viện gói đại số tuyến tính

Tên đầy đủ

Nghĩa tiếng Việt

Mel Frequency Ceptral

Các hệ số Cepstral theo thang đo

Coeficients

tần số Mel.

MMI

Maximum Mutual Information

Thông tin tương hỗ tối đa

MPE

Minimum Phone Error

Lỗi âm vị tối thiểu

OOV

Out Of Vocabulary Word

Các từ ngoài bộ từ vựng


VIQR

VIetnamese Quoted-Readable

Quy ước để viết chữ tiếng Việt

MFCC

dùng bảng mã ASCII 7 bit
WER

Word Error Rate

Tỷ lệ lỗi nhận dạng từ

WST

Word System Table

Bảng ký tự của các từ

viii


DANH MỤC CÁC BẢNG
Bảng 3.1: Cơ sở dữ liệu tiếng Việt nói...................................................................... 56
Bảng 3.2: Cách biểu diễn dấu và thanh điệu tiếng Việt có sử dụng VIQR .............. 57
Bảng 3.3: Chuyển đổi thanh điệu và dấu mũ của chữ cái ......................................... 58
Bảng 3.4: Danh sách các âm vị là nguyên âm .......................................................... 61
Bảng 3.5: Danh sách âm vị là phụ âm....................................................................... 61

Hình 3.3: Chuyển đổi giữa UTF-8 và VIQR dùng Unikey. ......................................57
Hình 3.4: Âm vị phụ âm ............................................................................................59
Hình 3.5: Âm vị nguyên âm ......................................................................................60
Hình 3.6: Thư mục làm việc trong Kaldi ..................................................................65
Hình 3.7: Mô hình nhận dạng tiếng nói với bộ công cụ Kaldi .................................66
Hình 3.8: Hệ thống phân cấp các mô hình âm học được huấn luyện .......................70
Hình 4.1. Biểu đồ WER thể hiện qua các mô hình huấn luyện ................................89
Hình 4.2. Biểu đồ WER với các tham số LMW khác nhau ......................................90

x


MỞ ĐẦU
Lý do chọn đề tài
Nhận dạng tiếng Việt nói được ứng dụng trong nhiều lĩnh vực như: tổng đài tự
động; an ninh bảo mật; tìm kiếm bằng giọng nói…
Mạng Nơ ron là một công cụ có khả năng giải quyết được nhiều bài toán khó,
thực tế những nghiên cứu về mạng Nơ ron đưa ra một cách tiếp cận khác với những
cách tiếp cận truyền thống trong lý thuyết nhận dạng.
Hiện nay đã có nhiều nghiên cứu cho thấy sự vượt bậc của mạng Nơ ron sâu:
-

Các nghiên cứu gần đây đã ứng dụng thành công kiến trúc mạng Nơ ron sâu
trong mô hình ngôn ngữ.

-

Ứng dụng mạng Nơ ron sâu vào nhận dạng tiếng nói bộ từ vựng lớn với bộ dữ
liệu lớn hơn bất kỳ hệ thống nào trước đây.


Mục đích, phạm vi nghiên cứu
- Nghiên cứu về mạng Nơ ron sâu và lĩnh vực học sâu (Deep Learning).
- Nghiên cứu về nguyên lý và các thành phần của một hệ thống nhận dạng tiếng
nói và ứng dụng vào nhận dạng tiếng Việt nói.
- Xây dựng chương trình nhận dạng tiếng Việt nói có tích hợp mạng Nơ ron sâu.
- Kiểm tra và đánh giá hiệu suất nhận dạng của hệ thống.
Đối tượng nghiên cứu
- Nghiên cứu, tìm hiểu lý thuyết và ứng dụng của mạng Nơ-ron sâu.
- Nghiên cứu, tìm hiểu về bộ công cụ nhận dạng tiếng nói Kaldi.
- Nghiên cứu, xây dựng hệ thống nhận dạng tiếng Việt nói trên nền bộ công cụ
Kaldi có tích hợp mạng nơ ron sâu.
Phương pháp nghiên cứu
- Nghiên cứu lý thuyết về nhận dạng tiếng nói.
- Nghiêm cứu về máy học và mạng nơ ron sâu trong nhận dạng tiếng nói.
- Nghiên cứu sử dụng bộ công cụ Kaldi, ngôn ngữ lập trình Python trên môi
trường Linux trong nhận dạng tiếng nói.
- Thử nghiệm nhận dạng tiếng Việt nói trên nền bộ công cụ Kaldi có tích hợp
mạng nơ ron sâu với số lượng 35 người nói, 4375 câu nói.
Nhiệm vụ nghiên cứu
- Tìm hiểu về hệ thống nhận dạng tiếng nói.
- Tìm hiểu phương pháp trích chọn các tham số đặc trưng cần thiết cho bài toán
nhận dạng tiếng nói.

2


- Tìm hiểu về mô hình GMM và hoạt động của bộ công cụ Kaldi, các gói thư
viện, ngôn ngữ lập trình Python.
- Xây dựng thử nghiệm hệ thống nhận dạng tiếng Việt nói trên nền bộ công cụ
Kaldi có tích hợp mạng nơ ron sâu..


4


Hình 1.1: Mạng Nơ ron sinh học

1.1.2. Mạng Nơ–ron nhân tạo (ANN)
1.1.2.1. Cấu trúc mạng Nơ ron nhân tạo
Mạng Nơ ron nhân tạo mô phỏng các Nơ ron sinh học. Một Nơ ron là một đơn
vị xử lý thông tin và là thành phần cơ bản của một mạng Nơ-ron. Cấu trúc của một
Nơ ron được mô tả trên hình 1.2.

Terminal Branches
of Axon

Dendrites
x1
w1
x2
x3

w2
w3

S
Axon

wn
xn


x1

y1

x2

...
...

ym

xn

Hình 1.3: Mạng được phân lớp
Kiến trúc của một mạng được phân lớp có thể mô tả như sau:
-

Đầu vào là các vector (x1, x2, ..., xn) trong không gian n chiều, đầu ra là các
vector (y1, y2, ..., ym) trong không gian m chiều. Đối với các bài toán phân loại,
n chính là kích thước của mẫu đầu vào, m chính là số lớp cần phân loại.

-

Mỗi nơron thuộc lớp sau liên kết với tất cả các nơron thuộc lớp liền trước nó.

-

Đầu ra của nơron lớp trước là đầu vào của nơron thuộc lớp liền sau nó.
Hoạt động của mạng như sau: tại lớp đầu vào các nơron nhận tín hiệu vào xử


phía sau “Deep Learning”, bắt đầu với các đơn vị/ khối đơn giản nhất của các thành
phần và xây dựng các khái niệm máy học.

1.1.3.1. Perceptrons: Thuật toán học sâu sơ khai
Perceptron được phát triển những năm 1950 và 1960 bởi nhà nghiên cứu Frank
Rosenblatt. Ngày nay, nó phổ biến hơn để sử dụng nhiều mô hình khác nhau của nơ
ron nhân tạo, mô hình nơ ron chính được sử dụng chỉ có một nơ ron được gọi là nơ
ron sigmoid.
Các Perceptron làm việc như thế nào?
Một perceptron lấy vài đầu vào nhị phân x1, x2, …, và cho kết quả một đầu ra
nhị phân.

8


Hình 1.4: Perceptron
Hình 1.4 biểu diễn một perceptron có 3 đầu vào x1, x2, x3, nó có thể có nhiều
đầu vào. Rosenblatt đã đưa ra một quy tắc đơn giản để tính toán đầu ra. Ông đã đưa
ra khái niệm trọng số, w1, w2,…, các số thực thể hiện tầm quan trọng của các đầu
vào tương ứng với đầu ra. Đầu ra của nơ ron là 0 hoặc 1, được xác định bởi tổng ∑j
wjxj là lớn hơn hay nhỏ hơn giá trị ngưỡng (threshold). Ngưỡng là một số thực là một
tham số của nơ ron.

Đó là tất cả cách thức mà perceptron làm việc. Một cách ta có thể nghĩ về
perceptron là một thiết bị đưa ra quyết định bằng việc xem xét các căn cứ.
Perceptron không là một mô hình phức tạp như con người trong việc đưa ra
các quyết định. Nhưng perceptron có thể cân nhắc các căn cứ khác nhau để đưa ra
quyết định và một mạng phức tạp các perceptron có thể đưa ra các quyết định phù
hợp.


Để biểu diễn toán học cho điều này, bộ chia được định nghĩa bởi vector của
các trọng số w và độ lệch b. Kết hợp các đầu vào và trọng số thành một hàm truyền
tổng hợp:
f(x) = x.w + b
Kết quả của hàm truyền này sẽ được cung cấp đến một hàm kích hoạt để tạo một
nhãn. Trong ví dụ ở trên, hàm hoạt động của chúng ta là một ngưỡng cắt (cutoff).
ℎ (𝑥 ) = {

1 ∶ 𝑁ế𝑢 𝑓 (𝑥) = 𝑤. 𝑥 + 𝑏 > 0
0∶
𝑁ế𝑢 𝑘ℎá𝑐

* Huấn luyện Perceptron
Việc huấn luyện Perceptron bao gồm việc cung cấp nhiều mẫu huấn luyện và
tính toán đầu ra cho mỗi mẫu. Sau mỗi mẫu, trọng số w được điều chỉnh như là một
cách để làm giảm lỗi đầu ra, lỗi đầu ra được định nghĩa là sự khác biệt giữa cái mong
muốn (đích cần đạt) với các đầu ra thực tế. Có nhiều hàm lỗi khác nhau chẳng hạn
như trung bình bình phương lỗi (Mean Square Error), nhưng nguyên tắc cơ bản của
huấn luyện vẫn được giữ nguyên.
* Nhược điểm của huấn luyện Perceptron đơn
Cách tiếp cận perceptron đơn lẻ để huấn luyện sâu có một nhược điểm là nó
chỉ có thể học một hàm tuyến tính riêng rẽ. Nhược điểm này như thế nào? Lấy XOR,
một hàm tương đối đơn giản, và chú ý rằng nó không thể phân lớp được bởi một bộ
phân chia tuyến tính như dưới đây:
XOR

Để giải quyết vấn đề này, chúng ta sẽ cần phải sử dụng một perceptron đa lớp,
được biết đến như mạng Nơ ron truyền thẳng: để hiệu quả, ta sẽ gộp một nhóm các
perceptron khác nhau để tạo nên một cơ chế mạnh mẽ hơn cho việc học.


* Tuyến tính ngoài (Beyond Linearity)
Điều gì sẽ xảy ra nếu mỗi perceptron chỉ được phép sử dụng một hàm kích
hoạt tuyến tính? Sau đó, đầu ra cuối cùng của mạng vẫn sẽ có một số hàm tuyến tính
của đầu vào. Nói cách khác, một thành phần tuyến tính của một loạt các hàm tuyến
tính. Nếu ta bị giới hạn các hàm kích hoạt tuyến tính, mạng Nơ ron truyền thẳng sẽ
không hiệu quả hơn perceptron, dù nó có bao nhiêu lớp.
“Một thành phần tuyến tính của một loạt các hàm tuyến tính chỉ là một hàm
tuyến tính, vì vậy hầu hết các mạng Nơ ron sử dụng hàm kích hoạt phi tuyến”.
Chính vì điều này, hầu hết các mạng Nơ ron sử dụng các hàm kích hoạt phi tuyến như
logistic, tanh, binary hay rectifier. Nếu không có chúng mạng chỉ có các hàm học là
sự kết hợp tuyến tính của các đầu vào.
* Huấn luyện Perceptron
Hầu hết các thuật toán học sâu phổ biến cho học có giám sát của perceptron
đa lớp được biết đến là giải thuật lan truyền ngược. Các thủ tục cơ bản:
1. Một mẫu huấn luyện được biểu diễn và được lan truyền thẳng trên toàn mạng.
2. Lỗi đầu ra được tính toán thường là trung bình bình phương lỗi: E = ½ (t - y)2
3. Ở đây t là giá trị mong muốn đạt được và y là đầu ra thực của mạng.
4. Lỗi mạng được cực tiểu hóa sử dụng một phương pháp được gọi là stochastic
gradient descent.

13


Hình 1.8: Đồ thị lỗi huấn luyện
Giảm Gradient là phổ biến nhưng trong trường hợp của mạng nơ-ron, đây sẽ
là đồ thị của lỗi huấn luyện như một hàm của các tham số đầu vào. Tối ưu hóa giá trị
của mỗi trọng số làm cho lỗi đạt tối thiểu toàn cục (global minimum). Trong giai đoạn
huấn luyện, trọng số được cập nhật trong các bước nhỏ (sau mỗi mẫu huấn luyện hoặc
một đợt nhỏ của vài mẫu) trong cách mà chúng luôn cố gắng đạt được tối thiểu toàn
cục nhưng nó là một nhiệm vụ không dễ dàng, như ta thường kết thúc ở cực tiểu cục

Điều đó nói rằng, chúng thường học tốt hơn trong thực tiễn với đa lớp ẩn (như mạng
sâu hơn).
“Lớp ẩn là nơi mạng lưu giữ các liên kết trừu tượng của quá trình huấn luyện
dữ liệu”
Lớp ẩn là nơi mạng lưu giữ các liên kết trừu tượng của quá trình huấn luyện
dữ liệu, tương tự như cách mà bộ não con người có sự thể hiện bên trong của thế giới
thực.
* Vấn đề với các mạng lớn
Một mạng Nơ ron có thể có nhiều lớp ẩn: trong trường hợp này các lớp cao
hơn được xây dựng lên đỉnh của các lớp trước. Tăng số lượng các lớp ẩn dẫn đến hai
vấn đề:
1. Gradient bị triệt tiêu: khi ta thêm nhiều lớp ẩn, lan truyền ngược trở nên ít
hơn và ít hữu ích trong truyền tải thông tin tới các lớp thấp hơn. Trong thực tế, khi
thông tin được truyền ngược lại, gradient bắt đầu bị triệt tiêu và trở nên nhỏ đối với
các trọng số của mạng.
2. Overfitting: có lẽ là vấn đề trọng tâm trong máy học. Nói một cách ngắn
gọn, overfitting mô tả hiện tượng điều chỉnh (fitting) dữ liệu huấn luyện quá chặt chẽ,

15


Trích đoạn Huấn luyện mạng Nơ ron sâu [13] Hệ thống nhận dạng tiếng nói [20] Cấu trúc của một hệ thống nhận dạng tiếng nói Phân loại hệ thống nhận dạng tiếng nói Các phương pháp nhận dạng tiếng nói
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status