ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ THU HUYỀN MÔ HÌNH MARKOV ẨN VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG NÓI

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2018

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ THU HUYỀN

MÔ HÌNH MARKOV ẨN VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG NÓI Chuyên ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS. Vũ Vinh Quang

THÁI NGUYÊN - 2018

i

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đây là công trình nghiên cứu của tôi, có sự hỗ trợ từ

Giáo viên hướng dẫn là TS. Vũ Vinh Quang . Các nội dung nghiên cứu và kết quả

trong đề tài này là trung thực và chưa từng được ai công bố trong bất cứ công trình

nghiên cứu nào trước đây. Những số liệu trong các hình phục vụ cho việc phân tích,

nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi trong

phần tài liệu tham khảo. Ngoài ra, đề tài còn sử dụng một số nhận xét, đánh giá

cũng như số liệu của các tác giả, cơ quan tổ chức khác, và cũng được thể hiện trong

phần tài liệu tham khảo.

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm

trước Hội đồng, cũng như kết quả luận văn của mình.

Thái nguyên, ngày …... tháng …... năm 2018

Tác giả

NGUYỄN THỊ THU HUYỀN

ii

LỜI CẢM ƠN

Để hoàn thành luận văn này, em xin tỏ lòng biết ơn sâu sắc đến thầy TS. Vũ

Vinh Quang, đã tận tình hướng dẫn trong suốt quá trình viết luận văn tốt nghiệp.

Em chân thành cảm ơn quý thầy, cô trong trường Đại Học Công nghệ Thông

tin và Truyền thông đã tận tình truyền đạt kiến thức trong hai năm học tập. Với vốn

kiến thức được tiếp thu trong quá trình học là nền tảng cho quá trình nghiên cứu để

em hoàn thành luận văn.

Thái nguyên, ngày …... tháng …... năm 2018

Tác giả

NGUYỄN THỊ THU HUYỀN

iii

MỤC LỤC

LỜI CAM ĐOAN ...................................................................................................... i

LỜI CẢM ƠN ........................................................................................................... ii

DANH MỤC CÁC HÌNH ẢNH ............................................................................... v

DANH MỤC CÁC BẢNG BIỂU ........................................................................... vi

DANH MỤC CÁC TỪ VIẾT TẮT ....................................................................... vii

LỜI MỞ ĐẦU ............................................................................................................ 1

CHƯƠNG 1. MỘT SỐ KIẾN THỨC CƠ BẢN VỀ NHẬN DẠNG TIẾNG NÓI . 3

1.1. Khái niệm chung .................................................................................................. 3

1.1.1. Khái niệm nhận dạng tiếng nói ......................................................................... 3

1.1.2. Phân loại nhận dạng tiếng nói ........................................................................... 4

1.1.3. Hệ thống nhận dạng tiếng nói tự động .............................................................. 7

1.2. Các nghiên cứu hiện thời về nhận dạng tiếng nói ................................................ 8

1.2.1. Các nghiên cứu về nhận dạng tiếng nói ở nước ngoài ...................................... 8

1.2.2. Các nghiên cứu về nhận dạng tiếng nói tiếng Việt ........................................... 9

1.3. Các hướng tiếp cận nhận dạng tiếng nói ............................................................ 10

1.4. Những khó khăn trong nhận dạng tiếng nói ....................................................... 11

1.5. Xử lý tiếng nói.................................................................................................... 13

1.5.1. Khái niệm xử lý tiếng nói ................................................................................ 13

1.5.2. Kỹ thuật lấy mẫu tín hiệu ................................................................................ 13

1.5.3. Cấu trúc bộ lọc tín hiệu ................................................................................... 13

1.5.4. Kỹ thuật dò tìm điểm cuối ............................................................................... 15

1.5.5. Kỹ thuật rút trích đặc trưng ............................................................................. 16

1.5.6. Phương pháp tính hệ số MFCC ....................................................................... 18

1.6. Sơ lược về ngôn ngữ tiếng Việt ......................................................................... 23

1.6.1. Giới thiệu về âm tiết ........................................................................................ 23

1.6.2. Một số đặc điểm của âm tiết tiếng Việt .......................................................... 23

1.6.3. Lý thuyết về âm vị ........................................................................................... 25

CHƯƠNG 2. TỔNG QUAN VỀ MÔ HÌNH MẠNG MARKOV ẨN ................ 27

iv

2.1. Mô hình Markov ẩn ............................................................................................ 27

2.2. Các bài toán cơ bản của mô hình Markov ẩn ..................................................... 30

2.2.1. Bài toán 1 ........................................................................................................ 30

2.2.2. Bài toán 2 ........................................................................................................ 30

2.2.3. Bài toán 3 ........................................................................................................ 31

2.3. Các thuật toán cơ bản ......................................................................................... 31

2.3.1. Thuật toán tiến (forward) ................................................................................ 31

2.3.2. Thuật toán lùi (Backward) .............................................................................. 32

2.3.3. Các giải pháp giải quyết các bài toán cơ bản .................................................. 32

2.4. So sánh các loại mô hình Markov ẩn ................................................................. 33

CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG VIỆT ............. 35

3.1. Tổng quan về HTK (HMM Tool Kit) ................................................................ 35

3.1.1. Giới thiệu hệ thống .......................................................................................... 35

3.1.2. Mô hình các cấu trúc tập tin cơ bản khai báo HMM và MFCC cho nhận dạng

tiếng nói ............................................................................................................ 36

3.1.3. Các bước xây dựng một mô hình nhận dạng tiếng nói sử dụng HTK ............ 40

3.1.4. Một số Modul sử dụng trong quá trình xây dựng hệ thống nhận dạng tiếng nói

tiếng việt trong bộ công cụ HTK ...................................................................... 44

3.2. Xây dựng hệ thống nhận dạng chữ số Tiếng việt............................................... 47

3.2.1. Xây dựng cơ sở dữ liệu chữ số tiếng việt ....................................................... 47

3.2.2. Bảng phiên âm 10 chữ số tiếng Việt ............................................................... 47

3.2.3. Phương pháp xây dựng hệ thống nhận dạng chữ số tiếng việt ....................... 47

3.2.4. Các kết quả thực nghiệm ................................................................................. 48

KẾT LUẬN .............................................................................................................. 51

TÀI LIỆU THAM KHẢO ...................................................................................... 52

v

DANH MỤC CÁC HÌNH ẢNH

Hình 1.1: Quá trình phát âm sẽ khác nhau tùy theo người nói ................................... 6

Hình 1.2: Mô hình nhận dạng tiếng nói bán độc lập người nói .................................. 6

Hình 1.3: Cấu trúc cơ bản của hệ thống ASR ............................................................. 7

Hình 1.4: Cấu trúc hệ thống nhận dạng ngôn ngữ có thanh điệu ................................ 9

Hình 1.5. Ví dụ về lấy mẫu tín hiệu F(t) trên miền thời gian ................................... 13

Hình 1.6. Minh họa hoạt động của bộ lọc FIR .......................................................... 14

Hình 1.7. Minh họa hoạt động của bộ lọc IIR ........................................................... 15

Hình 1.8. Dò tìm điểm cuối dựa trên mức năng lượng ............................................. 16

Hình 1.9. Sơ đồ rút trích vevtor đặc trưng tổng quát ................................................ 17

Hình 1.10. Các bước xử lý tính hệ số MFCC ........................................................... 18

Hình 1.11. Sóng âm của chữ “ANH” trước khi làm phẳng (bên trái) và sau khi

làm phẳng (Bên phải)............................................................................... 19

Hình 1.12. Phân đoạn tín hiệu tiếng nói thành các khung có sự chồng lấp .............. 20

Hình 1.13. Cửa sổ Hamming ..................................................................................... 20

Hình 1.14. Cửa sổ Hanning ....................................................................................... 21

Hình 1.15. Cửa sổ hình chữ nhật ............................................................................... 21

Hình 2.1: Minh họa mô hình Markov trong nhận dạng tiếng nói với 5 trạng thái và

chèn sp ...................................................................................................... 28

Hình 2.2: Mô hình Markov ẩn với sáu trạng thái. ..................................................... 30

Hình 3.1: Minh họa sự giảm dần của năng lượng. .... Error! Bookmark not defined.

Hình 3.2. Các Module và các chức năng trong HTK. ............................................... 35

Hình 3.3. Các công cụ và chức năng trong HTK ...................................................... 36

Hình 3.4. Phân bố các tham số trong một số vector đặc trưng của HTK.................. 38

Hình 3.5. Các bước cơ bản xây dựng hệ thống nhận dạng tiếng nói ........................ 40

Hình 3.6: Mô hình HMM .......................................................................................... 42

vi

DANH MỤC CÁC BẢNG BIỂU

Bảng 1.1: So sánh tỷ lệ lỗi nhận dạng của con người và máy tính trong một số hệ

thống nhận dạng ......................................................................................... 8

Bảng 3.1: Bảng phiên âm 10 chữ số tiếng Việt ........................................................ 47

Bảng 3.2. Kết quả thử nghiệm hệ thống nhận dạng với bộ từ điển có chèn sp và

không chèn sp .......................................................................................... 49

Bảng 3.3. Kết quả thử nghiệm hệ thống nhận dạng với dữ liệu test trùng với dữ liệu

huấn luyện ................................................................................................ 50

vii

DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt Tiếng Anh Tiếng Việt

Artificial intelligence Trí tuệ nhân tạo AI

Augmented reality Tương tác thực tại ảo AR

Database Cơ sở dữ liệu CSDL

Database Management System Hệ quản trị cơ sở dữ liệu DBMS

Internet of things Internet vạn vật IoT

IR Information Retrieval Hệ thống tự động truy tìm

thông tin

MIRS Multimedia Indexing & Retrieval Hệ thống chỉ mục và truy tìm

System thông tin đa phương tiện

MMDBMS Multimedia Database Hệ thống quản trị cơ sở dữ liệu

Management System đa phương tiện

MRI Magnetic Resonance Imaging

VR Virtual reality Thực tế ảo

WWW World Wide Web

1

LỜI MỞ ĐẦU

Tiếng nói là một phương tiện giao tiếp cơ bản nhất của loài người, nó hình

thành và phát triển cùng với quá trình tiến hóa của loài người. Ngay từ khi hình

thành tiếng nói đã thể hiện được sức mạnh như: Khả năng truyền đạt thông tin,

tốc độ…

Ngày nay, nhờ sự phát triển mạnh mẽ của khoa học kỹ thuật, máy móc dần

dần thay thế các lao động bằng tay chân. Tuy nhiên để điều khiển máy móc, con

người phải làm khá nhiều thao tác vừa tốn thời gian vừa phức tạp và cần phải được

đào tạo. Chính vì lẽ đó, nhận dạng tiếng nói sẽ đóng vai trò rất quan trọng trong

giao tiếp giữa người và máy. Nó giúp con người có thể điều khiển máy móc, thiết bị

bằng giọng nói của mình đặc biệt là các thiết bị như: máy tính, điện thoại di động,

rô bốt…

Hiện nay, cùng với sự phát triển vượt bậc của ngành khoa học nhận dạng tiếng

nói, những chiếc điện thoại quay số bằng giọng nói đã ra đời, máy tính cá nhân với

phần mềm nhận dạng tiếng nói có thể trợ giúp cho những người khuyết tật về tay,

chân hay khiếm thính. . Tuy vậy, những thành tựu trên lại là những nghiên cứu về

nhận dạng tiếng nói ngôn ngữ nước ngoài. Với tiếng Việt, số lượng các nghiên cứu

còn khá ít và dường như ít được quan tâm. Có thể nói rằng những nghiên cứu nhận

dạng tiếng nói tiếng Việt chủ yếu tập trung vào nhận dạng từ rời rạc, hay hệ thống

nhận dạng liên tục nhưng với kích thước nhỏ.

Tuy nhiên, để ngành khoa học nhận dạng tiếng nói ở Việt Nam thực sự phát

triển và đạt được những thành tựu to lớn để áp dụng vào thực tế thì lĩnh vực nhận

dạng tiếng nói cần phát triển hơn nữa. Chính vì vậy, việc nghiên cứu nhận dạng

tiếng nói đặc biệt là nhận dạng tiếng nói tiếng Việt là rất cần thiết để xây dựng các

hệ thống nhận dạng, các ứng dụng nhận dạng tiếng nói thực sự hữu ích của riêng

tiếng Việt.

Đề tài này được xây dựng với mục đích tìm hiểu, nghiên cứu, so sánh và đánh

giá các phương pháp, các hướng tiếp cận nhận dạng tiếng nói hiện nay trên thế giới

như: Tiếp cận âm học, tiếp cận trí tuệ nhân tạo, nhận dạng mẫu thống kê (dựa vào

2

mô hình Markov ẩn (HMM), mạng Neural nhân tạo(ANN), hệ thống lai ghép giữa

mô hình Markov và mạng Neural (HMM/ANN). Trên cơ sở đó lựa chọn ra phương

pháp thích hợp nhất để áp dụng xây dựng hệ thống nhận dạng tiếng nói tiếng Việt.

Đề tài có kế thừa các kết quả nghiên cứu về nhận dạng tiếng nói ngôn ngữ

nước ngoài và một số kết quả nghiên cứu trong nước để đưa ra những điểm chung,

và riêng của ngôn ngữ tiếng Việt với ngôn ngữ nước ngoài từ đó thiết kế, xây dựng

và mở rộng bộ từ điển tiếng Việt cho hệ thống nhận dạng tiếng Việt liên tục.

Hiện nay, có hai hướng xây dựng hệ thống nhận dạng tiếng nói: hệ thống nhận

dạng từ rời rạc và hệ thống nhận dạng từ liên tục. Có thể nói rằng để xây dựng hệ

thống nhận dạng từ liên tục là rất khó khăn so với nhận dạng từ rời rạc. Nhưng một

hệ thống nhận dạng từ liên tục lại có ý nghĩa thực tế hơn nhiều so với hệ thống nhận

dạng từ rời rạc. Chính vì yếu tố trên nên đề tài tập trung nghiên cứu xây dựng hệ

thống nhận dạng tiếng Việt liên tục với hướng tiếp cận mẫu thống kê dựa vào mô

hình Markov ẩn (HMM). Với giới hạn thời gian làm đồ án, việc xây dựng một hệ

thống nhận dạng tiếng Việt liên tục với kích thước lớn là rất khó khăn vì vậy đề tài

giới hạn nghiên cứu hệ thống nhận dạng tiếng nói tiếng Việt cho 10 chữ số.

3

CHƯƠNG 1

MỘT SỐ KIẾN THỨC CƠ BẢN VỀ NHẬN DẠNG TIẾNG NÓI

1.1. Khái niệm chung

1.1.1. Khái niệm nhận dạng tiếng nói

Nhận dạng tiếng nói nhìn chung cũng là một quá trình nhận dạng mẫu, với

mục đích là phân lớp tín hiệu tiếng nói (đầu vào) thành một dãy tuần tự các mẫu đã

được học và lưu trữ trong bộ nhớ. Các mẫu có thể là các từ hay các âm vị.

Với đặc thù tiếng nói là một dạng tín hiệu biến thiên theo thời gian và có sự

khác biệt giữa tiếng nói của những người khác nhau, tốc độ nói khác nhau hay ngữ

cảnh và môi trường âm học khác nhau. Thậm chí tiếng nói của cùng một người

cũng không giống nhau: khi người đó khỏe thì tiếng nói của họ khác khi bị ốm. Đó

chính là khó khăn cơ bản nhất của nhận dạng tiếng nói. Việc xác định những thông

tin biến thiên nào là hữu ích và những thông tin nào là vô ích cho nhận dạng tiếng

nói là rất quan trọng. Đây là một nhiệm vụ rất khó khăn mà ngay cả những kỹ thuật

xác suất thống kê mạnh cũng không thể tổng quát hóa từ các mẫu tiếng nói những

biến thiên nào là quan trọng và cần thiết cho nhận dạng tiếng nói.

Nhìn chung hiện nay các nghiên cứu về nhận dạng tiếng nói dựa trên ba

nguyên tắc cơ bản:

 Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong miền

thời gian ngắn (short-term amplitude spectrum). Nhờ yếu tố này ta có thể cắt khung

tiếng nói trong một khoảng thời gian nhất định để trích rút ra các đặc trưng làm dữ

liệu để nhận dạng tiếng nói.

 Nội dung của tiếng nói ở dạng văn bản là một dãy các kí hiệu ngữ âm. Do

đó ý nghĩa của một phát âm được bảo toàn khi ta phiên âm phát âm thành dãy các

ký hiệu ngữ âm.

 Nhận dạng tiếng nói là một quá trình nhận thức. Thông tin về ngữ nghĩa và

suy đoán có giá trị trong quá trình nhận dạng tiếng nói nhất là khi thông tin về âm

học không rõ ràng.

4

Ngành khoa học nhận dạng tiếng nói là một trong những ngành có lĩnh vực

nghiên cứu khá rộng. Lĩnh vực nghiên cứu của nhận dạng tiếng nói có liên quan tới

nhiều ngành khác nhau như:

 Ngôn ngữ học (linguistics): Như đã nói ở trên khi chúng ta phiên âm phát

âm thành các ký hiệu ngữ âm thì ý nghĩa của một phát âm không thay đổi. Vậy sự

hiểu biết về cấu trúc của ngôn ngữ, đặc biệt là ngữ âm và vai trò của chúng trong

việc tạo ra tiếng nói là rất quan trọng khi chúng ta xây dựng hệ thống nhận dạng

tiếng nói.

 Sinh lý học (physiology) và tâm lý học ứng dụng (applied psychology):

Kiến thức về cấu tạo bộ máy phát âm của con người, về quá trình sản sinh tiếng

nói cũng như phân tích âm học và ngôn ngữ tại bộ não để con người hiểu được

tiếng nói.

 Xử lý tín hiệu số (digital signal processing): Các kỹ thuật xử lý tín hiệu số

dùng phân tích tín hiệu tiếng nói nhằm trích rút ra đặc trưng của tiếng nói cho quá

trình nhận dạng.

 Âm học (acoustic): Nghiên cứu mối quan hệ giữa tín hiệu tiếng nói và cơ

chế sinh lý học của bộ máy phát âm của con người.

 Lý thuyết nhận dạng: Các thuật toán dùng để phân loại dữ liệu thành các tập

mẫu dựa trên sơ sở tính toán khoảng cách giữa các đặc điểm của mẫu.

 Lý thuyết thông tin và khoa học máy tính (information and computer

theory): Các thuật toán dùng để tính toán mô hình tham số của các mô hình thống

kê, các thuật toán mã hóa và giải mã (lập trình động, thuật toán giải mã Viterbi) để

quá trình nhận dạng tốt nhất.

1.1.2. Phân loại nhận dạng tiếng nói

Nếu xét về độ dài các câu từ cần nhận dạng ta có thể phân thành nhận dạng từ

liên tục và nhận dạng từ rời rạc. Ngoài ra ta còn có thể phân loại theo sự phụ thuộc

hay độc lập người nói.

5

a. Nhận dạng từ liên tục và nhận dạng từ rời rạc

Nhận dạng từ liên tục là nhận dạng tiếng nói được phát liên tục trong một

chuỗi tín hiệu, như một câu nói hay một đoạn văn được đọc bởi người dùng. Các hệ

thống nhận dạng loại này rất phức tạp, nó phức tạp bởi lẽ quá trình xử lý tiếng nói

liên tục là khó khăn hơn nhiều so với từng từ riêng lẻ. Quá trình xử lý tiếng nói liên

tục còn phụ thuộc vào việc người dùng nói nhanh hay chậm. Nếu người dùng nói

không có khoảng nghỉ thì việc tách từ là khó khăn. Và chính kết quả của quá trình

tách từ này có ảnh hưởng rất lớn tới các bước tiếp theo trong quá trình nhận dạng.

Trái lại, trong nhận dạng từ rời rạc thì các phát âm được nhận dạng chỉ bao

gồm một từ, hay một nhóm nhỏ các từ mà ở đó có các khoảng nghỉ trước và sau khi

phát âm mỗi từ. Nhận dạng tiếng nói với các từ rời rạc thường được ứng dụng trong

các chương trình dạng câu lệnh- điều khiển. Quá trình nhận dạng tiếng nói với các

từ rời rạc là dễ hơn nhiều so với quá trình nhận dạng tiếng nói liên tục.

b. Nhận dạng phụ thuộc người nói và độc lập người nói

Một hệ thống nhận dạng tiếng nói phụ thuộc người nói là một hệ thống dường

như chỉ phục vụ cho một người, nó sẽ không hiểu người khác nói gì nếu như không

có quá trình huấn luyện lại từ đầu. Do đó nên hệ thống nhận dạng tiếng nói phụ

thuộc người nói khó được chấp nhận rộng rãi bởi lẽ là quá tốn kém nếu bỏ ra kinh

phí lớn chỉ để xây dựng hệ thống phục vụ cho một cá nhân, hay không phải ai cũng

có đủ khả năng kiến thức và sự kiên nhẫn để ngồi huấn luyện lại hệ thống. Rõ ràng

rằng hệ thống nhận dạng tiếng nói loại này khó được áp dụng vào thực tế nhất là nơi

công cộng.

Để khắc phục những nhược điểm trên thì hệ thống nhận dạng tiếng nói độc lập

người nói là ưu việt hơn nhiều. Hệ thống nhận dạng tiếng nói độc lập người nói là lý

tưởng hơn, có ứng dụng rộng rãi hơn và đáp ứng được hầu hết các yêu cầu đề ra với

một hệ thống nhận dạng tiếng nói. Tuy nhiên, việc xây dựng một hệ thống nhận

dạng độc lập người nói có độ chính xác cao cũng gặp không ít khó khăn.

Trong thực tế mỗi vùng miền có một giọng nói khác nhau, mỗi người có một

giọng nói khác nhau, thậm chí cùng một người giọng nói cũng khác nhau ở những

6

thời điểm khác nhau (Hình 1.2). Đó là yếu tố ảnh hưởng rất lớn đến mức độ chính

xác trong nhận dạng tiếng nói. Để khắc phục nhược điểm này, hệ thống nhận dạng

độc lập người nói cần được thiết kế phức tạp hơn với lượng dữ liệu huấn luyện lớn

và đa dạng hơn nhiều lần. Nhưng làm được yêu cầu trên là khó và độ chính xác

trong nhận dạng cũng chưa phải là tối ưu. Do đó, trong thực tế để giải quyết chất

lượng nhận dạng người ta thường kết hợp cả hai phương pháp trên và xây dựng hệ

thống nhận dạng bán độc lập người nói. Phương pháp này được thực hiện bằng cách

thu một số lượng lớn các mẫu khác nhau để huấn luyện. Khi sử dụng hệ thống sẽ

điều chỉnh cho phù hợp với người nói bằng cách để người dùng trải qua một quá

trình ngắn để huấn luyện hệ thống (ví dụ như phần mềm nhận dạng tiếng nói được

tích hợp trong Office của Microsoft).

Hình 1.1: Quá trình phát âm sẽ khác nhau tùy theo người nói

Hình 1.2: Mô hình nhận dạng tiếng nói bán độc lập người nói

7

1.1.3. Hệ thống nhận dạng tiếng nói tự động

Hệ thống nhận dạng tiếng nói tự động (Automatic Speech Recognition –

ASR) là hệ thống tự động chuyển đổi tiếng nói thành chữ viết hay thành một

trong các chức năng của thiết bị. Các thành phần của một hệ thống nhận dạng

tiếng nói bao gồm:

 Rút trích đặc trưng tiếng nói: Biến đổi tiếng nói (tín hiệu âm thanh) thành

chuỗi các vector đặc trưng cho quá trình nhận dạng đồng thời thực hiện quá trình dò

tìm điểm đầu cuối của tiếng nói và lọc nhiễu.

 Phân lớp và nhận dạng: Đây thực chất là quá trình dựa vào mô hình âm

thanh, từ điển phát âm và mô hình ngôn ngữ của hệ thống để nhận dạng.

 Giải mã: Quá trình giải mã có thể đơn giản là quá trình xuất ra chuỗi văn bản

cần nhận dạng từ tín hiệu âm thanh vào hoặc đó là một quá trình phân tích chuỗi

nhận được ứng với việc thực hiện tác vụ nào đó.

Hình 1.3: Cấu trúc cơ bản của hệ thống ASR

Hiện nay ASR có một số ứng dụng trong các lĩnh vực như: Điều khiển bằng

tiếng nói (quay số điện thoại…), trong điện tử viễn thông (tổng đài điện thoại…).

8

1.2. Các nghiên cứu hiện thời về nhận dạng tiếng nói

1.2.1. Các nghiên cứu về nhận dạng tiếng nói ở nước ngoài

Nghiên cứu nhận dạng tiếng nói đã được bắt đầu từ cuối thập niên 40 của thế

kỉ 20, công nghệ nhận dạng tiếng nói đã có bước đi khá dài và cũng đã đạt một số

thành tựu đáng kể. Một số phần mềm nhận dạng tiếng nói đã có mặt trên thị trường

như các phần mềm nhận dạng tiếng nói đọc chính tả của IBM, phần mềm nhận dạng

nói thật hay nói dối, …Và đặc biệt là với ngôn ngữ tiếng Anh hiện nay đã tạo được

bộ cơ sở dữ liệu quý là: là bộ từ điển Beep và CSLU. Trong lĩnh vực nghiên cứu các

ứng dụng nhận dạng tiếng nói trong viễn thông thì Speech Works là hãng phần mềm

khá nổi tiếng. Hiện nay trên thế giới đã có nhiều trung tâm nghiên cứu về nhận dạng

tiếng nói như: CSLU, Bell Labs, IBM Research Center, Microsoft Research…

Nhìn chung môi trường thu âm tiếng nói có ảnh hưởng rất lớn đến độ chính

xác của quá trình nhận dạng. Ở Mỹ hệ thống nhận dạng các số của thẻ tín dụng ngân

hàng được đọc bởi người bán hàng tại các hệ thống cửa hàng bán lẻ có độ chính

xác là 98% trong khi cùng hệ thống này trong môi trường phòng thí nghiệm thì độ

chính xác lên tới 99,7%. Theo một đánh giá của Barbara s. (2001), high-

Performance Automatic Speech Recognition via Enhanced Front-end Analysis and

Acoustic Modeling [1] ta có bảng so sánh tỷ lệ lỗi nhận dạng của các hệ thống nhận

dạng tiếng Anh so với khả năng nhận dạng của con người như sau (bảng 1.1):

Bảng 1.1: So sánh tỷ lệ lỗi nhận dạng của con người và máy tính trong một số hệ

thống nhận dạng

Hệ thống Kích thước từ vựng Hệ thống nhận dạng Con

nhận dạng tiếng nói (Máy tính) người

Liên tục 10 0.72% 0.009%

Các chữ cái 26 5% 1%

Giọng nói tự nhiên 2000 36.7% 3.8%

Qua bảng trên ta có thể thấy rằng tỷ lệ lỗi nhận dạng của con người là thấp

hơn nhiều so với tỷ lệ lỗi nhận dạng bằng máy và tỷ lệ này càng được thể hiện rõ

hơn trong môi trường nhiều nhiễu.

9

Bên cạnh các hệ thống nhận dạng tiếng nói ngôn ngữ châu Âu thì các hệ thống

nhận dạng tiếng nói cũng đã được nghiên cứu ở Trung Quốc, Nhật Bản, Thái Lan.

Nhìn chung, đã có nhiều nghiên cứu nhận dạng tiếng nói tiếng Trung đã được thực

hiện, một số hệ thống nhận dạng tiếng trung kích thước lớn đã được xây dựng. Còn

với ngôn ngữ Thái Lan, các nghiên cứu chủ yếu ở mức độ nhận dạng từ rời rạc. Tuy

nhiên, với hệ thống nhận dạng từ liên tục thì hệ thống nhận dạng 10 chữ số Thái

cũng đã đạt độ chính xác 96,89% .

1.2.2. Các nghiên cứu về nhận dạng tiếng nói tiếng Việt

Nhận dạng tiếng nói tiếng Việt đi sau thế giới rất lâu và những kết quả đạt

được còn rất hạn chế. Cho tới thời điểm hiện nay, các nghiên cứu nhận dạng tiếng

nói tiếng Việt còn rất ít và tập trung nhiều vào nghiên cứu nhận dạng từ rời rạc.

Hệ thống nhận dạng tiếng nói tiếng Việt giống như hệ thống nhận dạng các

ngôn ngữ có thanh điệu khác, bao gồm hai quá trình nhận dạng song song đó là:

nhận dạng các từ không có thanh điệu và nhận dạng thanh điệu rồi tổng hợp để đưa

ra quyết định. Hình 1.4 mô tả một hệ thống nhận dạng ngôn ngữ có thanh điệu nói

chung và tiếng Việt nói riêng:

Hình 1.4: Cấu trúc hệ thống nhận dạng ngôn ngữ có thanh điệu

Nghiên cứu về nhận dạng tiếng Việt được thực hiện đầu tiên Nhóm nghiên

cứu của PGS.TS Lương Chi Mai - Viện công nghệ thông tin. Trong những đã qua

Nhóm nghiên cứu đã đưa ra nhiều đề xuất và những kết quả quan trọng trong lĩnh

vực nhận dạng tiếng nói tiếng Việt trên các bài báo khoa học như: “Về xử lý tiếng

Việt trong công nghệ thông tin”,…

Ngoài ra, nghiên cứu của tiến sĩ Nguyễn Thành Phúc đã đưa ra hệ thống nhận

dạng tiếng Việt với mạng Neural và đưa ra mô hình phiên âm tiếng Việt.

10

Vào năm 2005, nhóm BK02 Đại học Bách khoa thành phố Hồ Chí Minh đã

xây dựng chương trình nhận dạng tiếng nói tiếng việt với mã nguồn mở của

Microsoft tuy nhiên kết quả còn nhiều hạn chế.

Nhìn chung, những nghiên cứu về nhận dạng tiếng nói tiếng Việt còn rất ít và

điều quan trọng nhất là chúng ta chưa có một bộ từ điển và bộ cơ sở dữ liệu tốt cho

tiếng Việt.

1.3. Các hướng tiếp cận nhận dạng tiếng nói

Nghiên cứu về nhận dạng tiếng nói được bắt đầu vào những năm 40 của thế kỉ

20 và đã đạt được những thành tựu đáng kể. Các nghiên cứu nhận dạng tiếng nói

dựa trên 3 hướng tiếp cận chính: Tiếp cận Âm học, tiếp cận Nhận dạng mẫu thống

kê (chủ yếu dựa trên mô hình Markov ẩn), tiếp cận Trí tuệ nhân tạo.

 Hướng tiếp cận Âm học: Dựa vào các đặc điểm âm học được rút ra từ phổ âm

thanh. Tuy nhiên kết quả của hướng tiếp cận này còn thấp vì trong thực tế các đặc

trưng âm học có sự biến động rất lớn. Hơn nữa hướng tiếp cận này đòi hỏi tri thức

rất đầy đủ về âm học. Chính vì các yếu tố trên nên hướng tiếp cận này ít được lựa

chọn trong nghiên cứu nhận dạng tiếng nói.

 Hướng tiếp cận Nhận dạng mẫu thống kê: Sử dụng các phương pháp máy

học dựa trên thống kê để học và rút ra mẫu tham khảo (từ điển) từ lượng dữ liệu

lớn. Sau đó, các mẫu cần nhận dạng được rút trích đặc trưng và phân vào lớp mà

xác suất mẫu cần nhận dạng thuộc vào lớp đó là lớn nhất. Hướng này đang được sử

dụng nhiều (chủ yếu là dựa vào mô hình Markov ẩn) và đã đạt được nhiều thành

công như trong nhận dạng tiếng nói ngôn ngữ Tiếng Anh, tiếng Trung Quốc.

 Hướng tiếp cận Trí tuệ nhân tạo: Là sự kết hợp của cả hai hướng tiếp cận âm

học và tiếp cận nhận dạng mẫu thống kê. Hướng tiếp cận này kết hợp được cả tri

thức của chuyên gia và phương pháp nhận dạng mẫu thống kê. Tuy nhiên, hiện nay

phương pháp này chưa được áp dụng nhiều trong nghiên cứu nhận dạng tiếng nói vì

nó đòi hỏi một tri thức rất lớn. Đây sẽ là hướng tiếp cận trong tương lai của nhận

dạng tiếng nói.

11

Với mục đích nghiên cứu các phương pháp nhận dạng tiếng nói trên thế giới

hiện nay để áp dụng vào bài toán nhận dạng tiếng nói ngôn ngữ tiếng Việt, phần

tiếp theo của luận văn này sẽ đi sâu vào phân tích mô hình Markov ẩn để xây dựng

hệ thống nhận dạng tiếng nói ngôn ngữ tiếng Việt. Mô hình Markov ẩn được lựa

chọn bởi những lý do sau: Đây là mô hình được sử dụng rộng rãi trên thế giới trong

lĩnh vực nhận dạng nói chung và nhận dạng tiếng nói nói riêng. Với những thành

quả đã đạt được trên thế giới trong lĩnh vực nhận dạng tiếng nói, chúng ta có thể

thừa hưởng những thành quả này để áp dụng vào bài toán nhận dạng tiếng nói ngôn

ngữ tiếng Việt nhất là hiện nay ở nước ta chưa có nhiều nghiên cứu về nhận dạng

tiếng nói.

1.4. Những khó khăn trong nhận dạng tiếng nói

Qua các nghiên cứu về nhận dạng tiếng nói ngôn ngữ nước ngoài và Việt

Nam, ta có thể rút ra được những khó khăn cơ bản trong việc xây dựng một hệ

thống nhận dạng tiếng nói như sau:

 Điều kiện môi trường: Tiếng nói có chất lượng thấp (nhiều nhiễu,…) do môi

trường thu âm, do thiết bị thu âm… là vấn đề rất khó giải quyết triệt để cho các hệ

thống nhận dạng tiếng nói. Trong môi trường phòng thí nghiệm, kết quả nhận dạng

có độ chính xác cao hơn so với môi trường bên ngoài, đặc biệt là môi trường có

nhiều nhiễu. Theo Olivier S. (1995), tỷ lệ lỗi của hệ thống nhận dạng tiếng nói với

tiếng nói có tỉ số tín hiệu trên nhiễu SNR > 40dB (SNR-Signal ti Noise Ratio)

thường tăng gấp nhiều lần (có thể lên tới 10 lần) so với tiếng nói có SNR>18dB.

 Sự phụ thuộc người nói: Như đã nói ở trên, hệ thống nhận dạng tiếng nói có

thể độc lập người nói (speaker independent) hoặc phụ thuộc người nói (speaker

dependent). Để xây dựng một hệ thống nhận dạng độc lập người nói dành cho nhiều

người là khó khăn hơn nhiều so với việc xây dựng hệ thống nhận dạng tiếng nói chỉ

dành riêng cho từng người. Sự khó khăn này là do mỗi vùng miền, mỗi người có

một giọng nói khác nhau, ngay bản thân một người nói tiếng nói của họ cũng không

giống nhau tại các thời điểm khác nhau. Theo Tebelskis j.(1995), thì tỉ lệ lỗi nhận

dạng của hệ thống nhận dạng tiếng nói độc lập người nói thường cao gấp 3 đến 5

lần so với hệ thống nhận dạng tiếng nói phụ thuộc người nói.

12

 Kích thước của từ điển nhận dạng: Kích thước bộ từ điển của hệ thống nhận

dạng càng lớn thì tỷ lệ hệ thống nhận dạng nhầm giữa các từ, các câu càng cao. Đặc

biệt, tiếng Việt là một ngôn ngữ rất phong phú về cách phát âm nên để xây dựng

một bộ từ điển lớn cho hệ thống tiếng nói tiếng Việt gặp rất nhiều khó khăn.

 Sự biến đổi trong lời nói: Tốc độ của phát âm cũng ảnh hưởng tới độ chính

xác của hệ thống nhận dạng. Với những từ được phát âm rời rạc thì việc xây dựng

hệ thống nhận dạng dễ dàng và có độ chính xác cao hơn so với những từ phát âm

liên tục. Con người có thể hiểu được những tiếng cười, tiếng ho, tiếng “à, ơ” trong

lời nói, tuy nhiên đê máy hiểu được là vô cùng khó khăn.

Nhìn chung độ chính xác của hệ thống nhận dạng tiếng nói được đánh giá trên

cơ sở mức từ và mức câu. Để đánh giá độ chính xác của hệ thống nhận dạng ở mức

từ ta dùng công thức sau:

Trong đó:

N: Là tổng số từ cần nhận dạng.

S: Số từ bị nhận dạng nhầm (Substitution).

D: Số từ bị xóa (Delete).

I: Số từ bị chèn (Insertion).

Với hệ thống nhận dạng liên tục, mức câu độ chính xác được đánh giá theo

công thức:

Trong đó:

N: Tổng số câu cần nhận dạng.

S: Số câu nhận dạng sai.

13

1.5. Xử lý tiếng nói

1.5.1. Khái niệm xử lý tiếng nói

Tín hiệu (signal) là các sự vật, hiện tượng có mang hoặc chứa một thông tin

nào đó mà chúng ta có thể hiểu, được quy ước trước. Hầu hết các tín hiệu trong thế

giới thực đều ở dạng liên tục (tín hiệu tương tự), nó hết sức phức tạp, thiếu độ chính

xác đối với máy tính. Do đó, để máy tính có thể hiểu được các loại tín hiệu chúng ta

thường phải số hóa các loại tín hiệu này.

Tiếng nói cũng là một dạng tín hiệu tương tự, do đó để máy tính cũng như các

thiết bị có thể hiểu tín hiệu tiếng nói chúng ta cũng cần phải số hóa nó.

1.5.2. Kỹ thuật lấy mẫu tín hiệu

Hàm lấy mẫu là cầu nối giữa các hệ thống rời rạc và các hệ thống liên tục. nó

còn được gọi là: hàm Dirac delta, hàm sàng lọc,…

Xs(t)=

Đối với máy tính, có thể hiểu lấy mẫu đơn giản chỉ là việc cứ theo một chu kỳ

thời gian (với tín hiệu tiếng nói) ta đo tín hiệu một lần. Quá trình này sẽ tạo ra một

chuỗi các số biểu diễn cho tín hiệu và có thể xử lý được bởi máy tính.

Hình 1.5. Ví dụ về lấy mẫu tín hiệu F(t) trên miền thời gian

1.5.3. Cấu trúc bộ lọc tín hiệu

Trong xử lý tiếng nói bộ lọc có vai trò rất quan trọng, chúng được dùng với

hai mục đích chính:

14

 Tách các tín hiệu cần thiết: Các tín hiệu ban đầu thường chứa đựng các nhiễu

hoặc các tín hiệu không mong muốn khác, các nhiễu này làm giảm đáng kể chất

lượng của tín hiệu. Vì vậy, cần phải tách riêng các tín hiệu cần thiết và loại bỏ các

tín hiệu nhiễu, dư thừa.

 Khôi phục các tín hiệu bị biến dạng: Có một số trường hợp vì một nguyên

nhân nào đó (thường là nguyên nhân liên quan tới các thiết bị) sẽ làm cho các tín

hiệu vào bị méo mó. Yếu tố này sẽ ảnh hưởng tới chất lượng nhận dạng vì vậy cần

phải căn chỉnh lại để tăng chất lượng của tín hiệu số.

Trong thực tế kỹ thuật, để xử lý tiếng nói người ta thường dùng hai bộ lọc

tuyến tính sau:

a. Bộ lọc đáp ứng xung hữu hạn (Finite Impulse Response –FIR)

Bộ lọc đáp ứng xung hữu hạn là hệ có tín hiệu ra chỉ phục thuộc vào tín hiệu

vào nên hệ này còn được gọi là mạch không truy hồi hay mạch không đệ quy (non –

recursive).

Bộ lọc đáp ứng xung hữu hạn có công thức như sau:

Hình 1.6. Minh họa hoạt động của bộ lọc FIR

b. Bộ lọc đáp ứng xung vô hạn (Infinite Impulse Response –IIR)

Với bộ lọc đáp ứng xung vô hạn, hệ xử lý có đáp ứng xung có độ dài vô hạn

hay đáp ứng xung vô hạn. Tín hiệu ra không chỉ phụ thuộc vào tín hiệu vào mà còn

phụ thuộc vào chính quá khứ của tín hiệu ra, vì vậy chúng còn được gọi là các mạch

có truy hồi hay đệ qui.

15

Bộ lọc đáp ứng xung vô hạn có công thức như sau:

Hình 1.7. Minh họa hoạt động của bộ lọc IIR

1.5.4. Kỹ thuật dò tìm điểm cuối

Như đã nói ở trên, tín hiệu tiếng nói được lấy mẫu theo chu kì, tạo nên các

khung tín hiệu tiếng nói. Tuy nhiên, không phải tất cả các khung đều là của tín hiệu

tiếng nói. Vì vậy, dò tìm điểm cuối là một xử lý cố gắng tìm ra chính xác khi nào

người ta bắt đầu và kết thúc lời nói. Nó còn được dùng để xác định khi mà người ta

thực sự không nói gì (silence), hay nói những điều không mong đợi (bộ từ vựng

trong hệ thống nhận dạng không có từ đó). Khi đó, dò tìm điểm cuối sẽ giảm số

lượng khung không cần thiết đối với hệ thống nhận dạng. Tuy nhiên, dò tìm điểm

cuối là rất khó khăn, bởi vì có sự tồn tại của tiếng ồn nền, tiếng nói nền và sự liên

kết của các âm tiết tạo nên sự liên tục khó phân biệt đầu và cuối của câu, từ.

Để dò tìm điểm cuối ta thực hiện qua ba bước sau, sau mỗi bước chất lượng

của việc dò tìm điểm cuối sẽ được tốt hơn. Việc dò tìm điểm cuối dựa trên mức

năng lượng của tín hiệu được đặc trưng bằng:

(xem mục 3.2.2.2.)

Bước 1. Dò tìm thô: dựa trên kĩ thuật năng lượng ít chính xác nhất. Nó tìm

một đoạn mà mức năng lượng cao hơn đoạn trước đó và cho một số khung là điểm

bắt đầu (thường là 40 khung) trước khi gặp khung mức năng lượng cao hơn. Và một

16

số lượng khung (khoảng 20 khung) khác qua (không cần kiểm tra bất kì khung nào)

được cho là điểm cuối.

Bước 2. Dò tìm tinh: Bước này sẽ kiểm tra mức năng lượng của tiếng nói, nó

sẽ lọc ra điểm đầu và điểm cuối bằng cách cho rằng mức năng lượng của tiếng nói

cao hơn mức năng lượng của độ ồn nền ở một ngưỡng nào đó.

Bước 3. Kỹ thuật VUS (Voice, Unvoice and Silence): Kỹ thuật này sẽ phân

loại các khung thành đoạn vô thanh, hữu thanh hay khoảng lặng. Việc phân loại này

dựa trên sự phân bố năng lượng trong khung, phổ bị biến dạng và sự phân loại

khung trước đó. Kỹ thuật này giúp loại bỏ những phần tín hiệu không phải của tiếng

nói như: tiếng cười, tiếng thở hay âm thanh nền như tiếng xe cộ…

Hình 1.8. Dò tìm điểm cuối dựa trên mức năng lượng

1.5.5. Kỹ thuật rút trích đặc trưng

Đối với bất kì hệ thống nhận dạng nào (tiếng nói hay hình ảnh) việc rút trích

đặc trưng là rất quan trọng. Tín hiệu tiếng nói được thu vào vốn có kích thước lớn,

vệc rút trích ra các vector đặc trưng cần thiết sẽ làm giảm số lượng dữ liệu trong

quá trình huấn luyện và nhận dạng của hệ thống nhận dạng và tốc độ của hệ thống

sẽ được nâng cao. Ngoài ra, việc rút trích đặc trưng còn làm rõ sự khác biệt giữa

tiếng này với tiếng khác, làm mờ đi sự khác biệt của cùng một tiếng trong những

lần phát âm khác nhau.

17

Hình 1.9. Sơ đồ rút trích vevtor đặc trưng tổng quát

Các đặc trưng được trích ra phải thỏa mãn những điều kiện sau:

 Nhỏ hơn rất nhiều so với tín hiệu gốc

 Vẫn giữ lại những đặc điểm quan trọng của tín hiệu ban đầu.

Có nhiều dạng đặc trưng của tín hiệu tiếng nói, có thể chia thành 3 nhóm như sau:

 Nhóm 1: Đặc trưng được rút ra nhờ mô phỏng theo mô hình bộ máy phát âm

của con người. Các đặc trưng này dựa vào phương pháp dự báo tuyến tính để rút ra

đặc trưng. Để rút trích ra đặc trưng dạng này ta thường dùng các phương pháp: LPC

(Linear Predictive coding) hay PLP (Perceptional Linear Prediction).

 Nhóm 2: Đặc trưng rút ra dựa trên khả năng cảm nhận âm thính giác của con

người. Các đặc trưng của nhóm này sử dụng phương pháp phân tích Cepstral (sử

dụng các phép biến đổi Fourier ngược của Logarit phổ năng lượng của một tín hiệu)

và phổ âm (Spectral) còn gọi là phương pháp dãy bộ lọc. Để trích rút đặc trưng

dạng này ta thường dùng phương pháp MFCC (Mel Frequency Cepstral

Coeficients).

18

 Nhóm 3: Dựa trên các đặc trưng về âm học như: cao độ, ngữ điệu,… Các đặc

trưng nhóm này ít được dùng cho nhận dạng âm tiết mà chủ yếu sử dụng cho nhận

dạng tâm trạng người nói,…

Qua những phân tích trên ta có thể thấy các dạng đặc trưng ở nhóm 1 và nhóm

2 có nhiều ưu điểm hơn cho việc nhận dạng tiếng nói. Điều này giải thích tại sao hai

phương pháp MFCC và PLP lại được sử dụng rộng rãi trong các hệ thống nhận

dạng tiếng nói hiện tại trên thế giới.

Phần tiếp theo, sẽ giới thiệu phương pháp trích chọn đặc trưng MFCC.

1.5.6. Phương pháp tính hệ số MFCC

Với phương pháp rút trích đặc trưng bằng cách tính các hệ số MFCC ta có các

bước tính được thể hiện như trong hình sau (hình 3.6).

Hình 1.10. Các bước xử lý tính hệ số MFCC

a. Làm rõ tín hiệu

Mục đích của việc làm rõ tín hiệu là tăng cường tín hiệu, làm nổi rõ các đặc

trưng của nó. Bộ làm rõ tín hiệu thường là bộ lọc thông cao. Như tên gọi của nó, bộ

lọc thông cao giữ lại các thành phần có tần số cao và loại bỏ đi các thành phần có

tần số thấp. Trong tín hiệu tiếng nói, các thành phần có tần số cao mang năng lượng

19

ít hơn nhiều so với những thành phần có tần số thấp, nhưng những vùng này lại lưu

giữ một phần tín hiệu quan trọng của tiếng nói. Để quá trình nhận dạng được tốt

hơn, chúng ta sẽ tăng cường tín hiệu trong vùng có tần số cao, làm cân bằng tín hiệu

giữa các vùng. Người ta còn gọi quá trình này là làm phẳng tín hiệu tiếng nói. Quá

trình lọc tín hiệu tiếng nói được thực hiện như sau:

Với mỗi giá trị s(n) trong chuỗi dữ liệu đầu vào S ={ s1, s2, …,sk}, áp dụng

phương trình sai phân:

Trong đó:

={ , ,…, }: Là chuỗi tín hiệu đã được xử lý tương ứng với

chuỗi đầu vào S ={ s1, s2, …,sk}.

n: Xác định mẫu tín hiệu ở thời điểm n

a: Là hệ số làm nổi, a thường nằm trong đoạn [0.95; 0.97], hệ số a càng cao thì

thành phần tín hiệu có tần số thấp bị loại đi càng nhiều.

Hình 1.11. Sóng âm của chữ “ANH” trước khi làm phẳng (bên trái) và sau

khi làm phẳng (Bên phải)

b. Tạo khung tín hiệu

Tín hiệu tiếng nói là loại tín hiệu luôn biến thiên theo thời gian, tuy nhiên

trong khoảng thời gian 10-20ms, tín hiệu tiếng nói được coi là tương đối ổn định.

Do đó tín hiệu tiếng nói thường được chia thành các khung kích thước 20-30ms với

vùng chồng lên nhau là 10-15ms.

20

Hình 1.12. Phân đoạn tín hiệu tiếng nói thành các khung có sự chồng lấp

c. Lấy cửa sổ

Để giảm thiểu sự gián đoạn tín hiệu ở đầu và cuối của mỗi khung ta sẽ lấy cửa

sổ tín hiệu ứng với mỗi khung. Một dãy tín hiệu con được lấy ra từ một tín hiệu dài

hơn hoặc dài vô hạn x(n) gọi là một cửa sổ tín hiệu.

Trong xử lý tiếng nói cũng như các tín hiệu số khác, các cửa sổ thường dùng

được biểu diễn thông qua cửa sổ Hamming tổng quát:

Với cửa sổ Hamming tổng quát, tùy thuộc vào giá trị của α ta sẽ có các cửa sổ

khác nhau:

 Với α= 0.54 ta có cửa sổ Hamming, đây là loại cửa sổ thường được dùng

nhất trong việc lấy cửa sổ đối với tín hiệu tiếng nói.

Hình 1.13. Cửa sổ Hamming

21

 Với α=0.5 ta có cửa sổ Hanning

Hình 1.14. Cửa sổ Hanning

 Với α=1 ta có cửa sổ hình chữ nhật

Hình 1.15. Cửa sổ hình chữ nhật

d. DFT – Discete Fourier Transform

Tại bước này, với mỗi khung tín hiệu, biến đổi Fourier được áp dụng để

chuyển về miền tần số. Công việc tính toán được thực hiện bằng thuật toán FFT

(Fast Fourier Trasform).

22

e. Lọc theo thang tần số Mel (Mel-Frequency bandpass filter)

Các bộ lọc số được áp dụng để lọc các tín hiệu theo các dải tần số khác nhau.

Nó được thực hiện theo một hàm phi tuyến, thông thường là hàm số Mel :

Mel (f) = 2595. )

f. Logarit giá trị năng lượng (logarit of filter energies)

Các giá trị năng lượng thu được tại mỗi kênh lọc được lấy giá trị logarit

g. DCT (Discrete Cosin Transform)

Do giọng nói phát âm bởi con người có phổ khá trơn trên miền tần số, do vậy

các giá trị năng lượng của các bộ lọc gần nhau có sự tương quan khá gần. Bước xử

lý này biến đổi các giá trị năng lượng thành các hệ số ít tương quan với nhau hơn.

Các hệ số này được gọi là hệ số Cepstral.

Ci=

Trong đó N là số kênh lọc, là giá trị logarit năng lượng của mạch lọc thứ j,

i là bậc của hệ số Cepstral.

h. Chỉnh các giá trị Cepstral

Giá trị Cepstral bậc cao thường có giá trị rất thấp so với các giá trị Cepstral

bậc thấp. Sự khác biệt này gây ra khó khăn cho việc mô hình hóa dữ liệu như khi

dùng hàm mật độ xác suất Gauss. Hệ số Cepstral được điều chỉnh lại theo công thức

Sau bước này, ta thu được các giá trị MFCC.

i. Tính các giá trị delta MFCC

Các giá trị delta của các hệ số MFCC được tính toán nhằm phản ánh sự biến

thiên tiếng nói theo thời gian. Các giá trị delta được tính dựa trên các giá trị MFCC

của các khung tín hiệu lân cận. Ngoài ra các giá trị delta của delta cũng được tính

toán từ các giá trị delta.

23

1.6. Sơ lược về ngôn ngữ tiếng Việt

1.6.1. Giới thiệu về âm tiết

Khi giao tiếp, con người phát ra những chuỗi âm thanh nhất định, ta gọi đó là

dòng ngữ lưu. Trong từng dòng ngữ lưu, nếu đem chia cắt chúng ra ta sẽ được

những đơn vị cấu thành nhỏ hơn, đó là âm tiết, âm tố và âm vị. Trong đó, âm tiết là

đơn vị phân chia tự nhiên nhất trong lời nói, là đơn vị phát âm nhỏ nhất. Mỗi âm tiết

là một tiếng.

Ví dụ: “Nguyễn Thanh Huyền” có 3 âm tiết.

Về mặt sinh lý – vật lý, âm tiết được định nghĩa là một đơn vị mà khi phát âm

được đặc trưng bởi sự căng lên và trùng xuống của cơ thịt trong bộ máy phát âm.

Trong mỗi âm tiết, chỉ có một âm tố có khả năng tạo thành âm tiết (gọi là âm

tố âm tiết tính), còn lại là các yếu tố đi kèm, không tự mình tạo thành âm tiết được.

Âm tố âm tiết tính thường được được phân bố ở trung tâm, làm hạt nhân âm tiết. Đó

thường là các nguyên âm. Điều này dẫn tới hệ quả là một âm tiết khi được phát ra

thì phần năng lượng tập trung nhiều nhất ở phần giữa âm (có biên độ cao), đi về đầu

và cuối âm tiết thì năng lượng giảm dần.

Hình 3.1: Minh họa sự giảm dần của năng lượng.

1.6.2. Một số đặc điểm của âm tiết tiếng Việt

a. Là ngôn ngữ có kết cấu âm tiết tính

Một đặc điểm của tiếng Việt là ranh giới của nó và ranh giới của hình vị (đơn

24

vị nhỏ nhất có nghĩa) luôn luôn trùng nhau, nói cách khác, một âm tiết là một hình

thức biểu đạt của một hình vị.

Là vỏ ngữ âm của một hình vị hay một từ đơn nên mỗi âm tiết tiếng Việt

bao giờ cũng tương ứng với một ý nghĩa nhất định. Chính vì vậy, việc phá vỡ

hay xê dịch vị trí của các âm vị trong một đơn vị âm tiết là điều khó có thể xảy

ra. Nói cách khác, cấu trúc của âm tiết tiếng Việt là một cấu trúc chặt chẽ. Vì

thế, từ “ cá canh ” sẽ không bị nối âm thành “ các anh” , “ cảm ơn ” sẽ không

đọc thành “ cả mơn ”….

Các đặc điểm trên là chung cho một số ngôn ngữ như tiếng Việt, tiếng Hoa,

tiếng Thái…Căn cứ vào đặc điểm đó, người ta gọi các ngôn ngữ này là ngôn ngữ có

kết cấu âm tiết tính.

b. Mỗi âm tiết có thanh điệu riêng

Thanh điệu là một tập hợp những đặc trưng có liên quan đến độ cao (phụ

thuộc tần số rung động của dây thanh âm) của thanh cơ bản của âm tiết. Nó được

thể hiện trên tất cả những bộ phận hữu thanh trong âm tiết, nhất là các âm đoạn

nguyên âm tính (nguyên âm và bán nguyên âm) và các đoạn phụ âm mũi, dù là thủy

âm hay chung âm.

Thanh điệu có thể phân tích thành hai thành phần thường xuyên kết hợp với

nhau : âm vực (độ cao của thanh cơ bản) và âm điệu (hướng chuyển biến cao độ (độ

tăng giảm của tần số)) trong quá trình thể hiện. Vì vậy, mỗi thanh có thể được miêu

tả như một sự kết hợp của hai thông số nói trên.

Hệ thống thanh điệu của tiếng Việt có 6 âm tiết : Thanh ngang (thanh không

dấu), thanh huyền, thanh ngã, thanh hỏi, thanh sắc, thanh nặng.

c. Âm tiết có cấu trúc chặt chẽ và ổn định

Trong tiếng Việt, âm tiết có cấu trúc chặt chẽ, mỗi âm tố (âm vị) có một vị trí

nhất định trong âm tiết, tạo thành cấu trúc của một âm tiết như sau:

Âm tiết = Phụ âm đầu + Vần

Trong đó

Vần = Âm đệm + Âm chính + Âm cuối

 Phụ âm đầu (thủy âm): Là yếu tố mở đầu âm tiết. Nó mang tính độc lập do

25

không tham gia vào việc đắp đổi về trường độ giữa các yếu tố bên trong âm tiết.

Các âm tiết tiếng Việt khi phát âm về mặt cấu âm bao giờ cũng mở đầu bằng một

động tác khép lại, dẫn đến chỗ cản trở không khí hoàn toàn hoặc bộ phận. Đó là

cách phát âm của các âm tiết như : bút, bát…Còn những âm tiết như ăn, uống…mặc

dù trên chữ viết, phụ âm vắng mặt, nhưng thực tế chúng cũng phải bắt đầu bằng một

động tác khép tín khe thanh, sau đó mở ra đột ngột gây nên một tiếng động.

 Âm đệm : Đóng vai trò là âm lướt trong kết cấu âm tiết. Âm đệm ảnh hưởng

đến cách mở đầu của âm tiết (bên cạnh phụ âm đầu). Ví dụ chữ “ toàn ” khi phát

âm có hiện tượng tròn môi do tác động của âm điệu /-u-/, còn chữ “ tàn ” thì không

có hiện tượng tròn môi do không có âm đệm.

 Âm chính : Là nguyên âm âm tiết tính trong âm tiết. Âm tiết chính có thể là

một nguyên âm đơn hay nguyên âm đôi.

 Âm cuối : Là yếu tố kết thúc âm tiết. Các âm tiết tiếng Việt thường đối lập

bằng những cách kết thúc khác nhau. Một số âm tiết kết thúc bằng sự kéo dài và giữ

nguyên. Ví dụ : mới, đưa, cho…Số âm tiết khác kết thúc bằng cách biến đổi âm sắc

của âm tiết ở phần cuối do sự đóng lại của các âm cuối tham gia, ví dụ như : một,

mai, màng…Trong trường hợp đầu, ta có âm cuối là âm vị /zero/, trong trường hợp

sau ta có âm cuối là những âm vị bán nguyên âm hoặc phụ âm.

Thứ tự các loại hình âm vị trong cấu trúc của âm tiết như trên được giữ

nguyên không thay đổi cho mỗi âm tiết.

1.6.3. Lý thuyết về âm vị

Âm vị là đơn vị nhỏ nhất của ngữ âm, có mang chức năng phân biệt nghĩa và

nhận diện từ. Ngoài ra, nó cũng có thể được hiểu là đơn vị nhỏ nhất của cơ cấu âm

thanh ngôn ngữ.

a. Chức năng của âm vị

Các âm vị trên nguyên tắc phải có sự khác nhau, ít nhất về một đặc trưng

nào đó. Chính nhờ sự khác biệt này mà các âm vị có thể tạo ra sự khác biệt về

hình thức âm thanh của các hình vị và từ, tạo nên những tín hiệu khác biệt đối

với sự thụ cảm của con người. Theo đó, âm vị có 2 chức năng cơ bản : chức năng

khu biệt vỏ âm thanh của hình vị và từ, và chức năng cấu tạo nên những thành tố

26

của đơn vị có nghĩa.

b. Tách âm vị và xác định âm vị trên chuỗi sóng âm

Số lượng từ trong mỗi ngôn ngữ đều rất lớn. Xây dựng hệ nhận dạng theo từ

có khả năng phân biệt số lượng từ lớn đó quả là một thách thức. Thay vào đó, người

ta nghĩ ra cách xây dựng hệ nhận dạng dựa trên hướng tiếp cận âm vị. Theo đó, chỉ

cần nhận dạng khoảng vài chục âm vị sẽ có thể nhận dạng được toàn bộ từ của một

ngôn ngữ (theo thống kê, số âm vị trong một ngôn ngữ dao động trong khoảng 20

đến 60). Và đây cũng chính là hướng tiếp cận đúng đắn cho nhận dạng tiếng nói

tiếng Việt. Tuy nhiên, người ta lại gặp một khó khăn khác, đó là tách âm vị và xác

định âm vị trên chuỗi sóng âm : Cho một dãy tín hiệu tiếng nói đã thu sẵn. Nhiệm

vụ của chúng ta là tìm ra ranh giới của tất cả các âm vị và cho biết âm vị đó là âm vị

gì. Chưa nói đến khả năng thực hiện công việc đó tự động bằng máy mà ngay cả

con người vẫn có thể bị nhầm lẫn khi tách âm vị bằng tay do ranh giới giữa các âm

vị là mập mờ hay chồng lấp lên nhau. Cả khi 2 âm vị thuộc 2 âm tiết khác nhau, nếu

đứng kề nhau vẫn có thể xảy ra sự chồng lấp. Vì thế, công việc tách âm vị trên

chuỗi sóng âm chỉ mang tính tương đối.

Trong một số nghiên cứu nhận dạng tiếng Việt, một phương pháp tách và nhận

dạng âm vị tự động dùng mô hình HMM kết hợp mô hình ngôn ngữ để nhận dạng

âm vị Triphone (âm vị mang 3 thông tin, thông tin về nó, thông tin về âm vị đứng

trước, âm vị đứng sau) được nêu ra. Phương pháp này cơ bản giải quyết tốt công

việc học và tách âm vị một cách tự động bằng máy. Kết quả tách âm vị được dùng

cho quá trình nhận dạng tiếng nói tiếng Việt và đã thu được kết quả khả quan.

27

CHƯƠNG 2

TỔNG QUAN VỀ MÔ HÌNH MẠNG MARKOV ẨN

2.1. Mô hình Markov ẩn

Mô hình Markov được ứng dụng nhiều trong lĩnh vực nhận dạng giọng nói,

trong lĩnh vực sinh học như nhận dạng gene hoặc phân loại protein; xử lý tín hiệu,

xử lý hình ảnh và các ứng dụng khác liên quan đến chuỗi chuyển tiếp hoặc kết hợp

các thành phần, dữ kiện. Trong lĩnh vực điện, mô hình Markov được sử dụng như là

1 công cụ dự báo giá điện năng với các dữ liệu liên quan. Một trong những thông số

đặc trưng của mô hình Markov là các trạng thái ‘state’. Tùy thuộc vào việc xây

dựng mô hình Markov với các đối tượng khác nhau thì sẽ có các ‘state’ khác nhau.

Mô hình Markov có những hạn chế trong nhiều ứng dụng như các giá trị chuyển

‘state’ là các giá trị áp đặt sẵn, không thay đổi trong khi đối tượng, dữ liệu quan sát

luôn biến đổi theo thời gian. Để khắc phục tình trạng này, chúng ta sử dụng mô hình

Hidden Markov (Hidden Markov Model – HMM).

Mô hình Markov ẩn (Hidden Markov Model –HMM) là mô hình thống kê

dùng để mô hình hóa các loại tín hiệu theo thời gian, với các tham số không biết

trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên

sự thừa nhận này. Các tham số của mô hình được rút ra sau đó có thể sử dụng để

thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu. Trong một

mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và

vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất được sử dụng rất

thành công trong những ứng dụng về nhận dạng đặc biệt là nhận dạng tiếng nói.

Cấu trúc bên trong của HMM không phải dựa vào các kiến thức về tiếng nói, nhưng

nó lại có khả năng mô hình hóa tiếng nói tiếng nói theo thời gian dựa trên cấu trúc

được ràng buộc bằng toán học chặt chẽ. Thực tế nghiên cứu trong và ngoài nước

cho thấy, trong lĩnh vực nhận dạng tiếng nói mô hình Markov ẩn cho kết quả nhận

dạng tốt hơn các phương phápkhác.

Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ

trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra

bởi HMM không trực tiếp chỉ ra dãy các trạng thái.

28

Hình 2.1: Minh họa mô hình Markov trong nhận dạng tiếng nói với 5 trạng thái và chèn sp

Mô hình Markov ẩn là kết quả mở rộng của mô hình Markov, ở đó

mỗi trạng thái S1, S2,…, SN trong mô hình Markov được gắn với một hàm phát xạ

quan sát (observation distribution). Trong mô hình Markov ẩn ngoài quá trình ngẫu

nhiên chuyển trạng thái, tại mỗi trạng thái còn có quá trình ngẫu nhiên sinh ra một

quan sát. Tập các quan sát O được sinh ra bởi dãy các trạng thái S1, S2,…, SN của

mô hình, mặt khác dãy các trạng thái này là không thấy được nên mô hình Markov

dạng này được gọi là mô hình Markov ẩn [2].

Một mô hình Markov ẩn gồm có:

 N: Số trạng thái của mô hình. Các trạng thái của mô hình Markov ẩn thường

được ký hiệu bằng S= { S1 , S2 ,…,SN), trạng thái ở thời điểm t của mô hình ký hiệu

là qt với qt thuộc vào tập S.

 M: Số các ký hiệu quan sát được (Observation symbol) ứng với một trạng

thái của mô hình Markov ẩn. Trong nhận dạng tiếng nói số các ký hiệu quan sát

là kích thước của bảng từ vựng của mô hình. Tập các ký hiệu quan sát được biểu

diễn bằng V= {v1, v2,…,vM }, ký hiệu quan sát ở thời điểm t kí hiệu là ot với ot

thuộc vào tập V.

 A={ aij}: Tập xác suất chuyển trạng thái (state transition probability

distribution). Trong đó, aij là xác suất để trạng thái j xuất hiện tại thời điểm t+1 khi

trạng thái i đã xuất hiện tại thời điểm t.

29

aij=P(qt+1 = sj | qt = si)

 B={bj(k)}: Tập xác suất phát xạ quan sát được trong các trạng thái

(observation symbol probability distribution in state). bj(k) là xác suất quan sát của

ký hiệu vk trong trạng thái j tại thời điểm t.

bj(k)=P(vk tại thời điểm t / qt =Sj)

 Πi=P[qt = Sj], i thuộc vào tập [1, N] : Là tập xác suất khởi đầu (initial state

distribution). Πi là xác suất để trạng thái i được chọn tại thời điểm khởi đầu t=1:

Πi = P (q1 = S1) với :

Với các giá trị A, B, , M, N thích hợp, một mô hình Markov ẩn sinh ra chuỗi

các quan sát: O= {O1, O2,…}

Trong đó Oi lấy một trong các giá trị ở tập các ký hiệu quan sát V. Hoạt động

của mô hình Markov ẩn (HMM) được mô tả tóm tắt qua các bước như sau:

Bước 1: Chọn một trang thái khởi đầu q1 tương ứng với xác suất trạng thái

khởi đầu .

Bước 2: Gán t=1.

Bước 3: Chọn Oi = vk tương ứng với xác suất quan sát tại trạng thái Si: bi(k).

Bước 4: Chuyển sang trạng thái mới qt+1 =Sj tương ứng với xác suất chuyển

trạng thái aij.

Bước 5: Gán t=t+1, nếu t< Tquay lại bước 3; nếu t T thì kết thúc.

30

Hình 2.2: Mô hình Markov ẩn với sáu trạng thái.

Trong hình minh họa trên là một ví dụ về mô hình HMM với 6 trạng thái,

trong đó có trạng thái 1 là trạng thái khởi đầu và trạng thái 6 là trạng thái kết thúc.

Tập quan sát gồm có sáu quan sát O={o1, o2, o3, o4, o5, o6} được sinh ngẫu nhiên

bởi các trạng thái từ 2 đến 5. Mỗi trạng thái có thể chuyển sang trạng thái bên phải

nó hay chuyển sang chính nó trừ trạng thái khởi đầu chỉ có thể chuyển sang trạng

thái bên phải nó là trạng thái 2.

Thực tế, để biểu diễn một mô hình HMM người ta thường dùng bộ ký pháp

=(A, B, ), trong đó A, B và gọi là các tham số (parameters) của mô hình

Markov ẩn .

2.2. Các bài toán cơ bản của mô hình Markov ẩn

2.2.1. Bài toán 1

) đã được Với dãy quan sát O={o1, o2,…} và mô hình Markov ẩn =(A, B,

huấn luyện, chúng ta cần tính xác suất P(O/ ).

Đây là bài toán nhận dạng khi có một dãy các quan sát cho trước và tập các

mô hình Markov ẩn. Kết quả của tính toán trên sẽ giúp chúng ta tìm ra được mô

hình Markov ẩn có xác suất P(O/ ) tương ứng lớn nhất.

2.2.2. Bài toán 2

Giải quyết vấn dề tìm ra phương án tối ưu cho tập trạng thái q={q1, q2,…}

theo một tiêu chuẩn nào đó.

31

Đây chính là quá trình đi tìm phần ẩn của mô hình Markov, tức là tìm dãy

trạng thái q tối ưu. Bài toán thường được áp dụng vào bài toán gán nhãn cưỡng bức

dữ liệu huấn luyện.

2.2.3. Bài toán 3

Cho chuỗi quan sát O và mô hình Markov ẩn , ta phải hiệu chỉnh các tham số

A, B, của mô hình sao cho xác suất có điều kiện P(O/ ) là tối ưu.

Trong bài toán này chúng ta điều chỉnh tham số của mô hình Markov ẩn sao

cho nó có thể miêu tả chính xác nhất các quan sát đã được biết trước đó. Dãy quan

sát dùng để điều chỉnh tập tham số của mô hình gọi là tập dữ liệu huấn luyện

(training data). Với bài toán nhận dạng nói chung và nhận dạng tiếng nói nói riêng,

đây là vấn đề quan trọng, nó cho phép điều chỉnh các tham số để học các dữ liệu từ

các hiện tượng thực như tiếng nói.

2.3. Các thuật toán cơ bản

2.3.1. Thuật toán tiến (forward)

t(i) =P(o1, o2,……,ot, qt = si / )

Hàm forward được định nghĩa như sau:

t(i) được gọi là toán tử tiến là xác suất của chuỗi quan sát từng

Trong đó:

phần o1, o2,……,ot và trạng thái Si tại thời điểm t với điều kiện cho mô hình

Markov ẩn .

t(i) có thể tính được theo nguyên tắc đệ quy như sau:

Toán tử tiến

1(i) =

ibi (O1), 1 i ≤ N (với N là số trạng thái của mô hình Markov ẩn).

Bước 1: Khởi tạo

Bước 2: Đệ quy

t+1(j)=

Với t ∈ [1, T-1], j ∈ [1, N] ta có:

bj(Ot+1).

32

Bước 3: Kết thúc

T(i).

P(O/λ) =

2.3.2. Thuật toán lùi (Backward)

Gọi βt(i) là toán tử lùi, βt(i) là xác suất của chuỗi quan sát từng phần Ot+1, Ot+2, … OT và trạng thái Si tại thời điểm t với điều kiện mô hình Markov ẩn λ. Khi đó hàm Backward được định nghĩa như sau:

βt(i) = P(Ot+1, Ot+2, … OT /qt =Si, λ).

Toán tử lùi βt(i) có thể được tính theo các bước đệ quy như sau:

Bước 1: Khởi tạo

Với t=T ta có βT(i) = 1, 1 i ≤ N (với N là số trạng thái của mô hình Markov

ẩn).

Bước 2: Tính các βt(i) bằng phương pháp đệ quy

Với t ∈ [ T-1, 1], i∈ [1, T] ta có:

βt(i)= bj(Ot+1) βt+1+(i).

2.3.3. Các giải pháp giải quyết các bài toán cơ bản

a) Giải quyết bài toán 1

Để giải quyết bài toán 1 ta sử dụng thuật toán tiến (Forward). Áp dụng thuật toán Forward thì độ phức tạp là N2*T, so với phương pháp tính trực tiếp với độ phức tạp 2T*NT, thì ta thấy rằng thuật toán Forward đã giúp giảm đáng kể độ phức tạp. Ví dụ, với trường hợp số trạng thái của mô hình là N=5 và T=100 thì khi sử

dụng thuật toán forward máy tính chỉ phải thực hiện khoảng 3000 phép nhân so với 1072 phép nhân của phương pháp trực tiếp.

b) Giải quyết bài toán 2

Trong bài toán này, chúng ta phải tìm dãy trạng thái q=(q1, q2,…,qT) tối ưu

) cho trước tương ứng với một dãy quan sát O=(o1, o2,…,oT) và mô hình =(A, B,

để P(O,S/ ) là lớn nhất.

Để giải quyết vấn đề trên, người ta thường dùng thuật toán tìm kiếm Viterbi.

Đây là thuật toán dựa trên phương pháp lập trình động (Dynamic Programing

method) để tìm ra một dãy các trạng thái tối ưu duy nhất.\

c) Giải quyết bài toán 3

33

Với một mô hình Markov ẩn, vấn đề tìm ra được chuỗi các tham số A, B và

để xác suất P(O/λ) lớn nhất là vấn đề rất quan trọng và khó khăn. Thực tế, chúng ta

chưa có phương pháp tối ưu để giải quyết vấn đề này. Tuy nhiên, chúng ta có thể

dùng thuật toán Baum-Welch để điều chỉnh bộ tham số cho phù hợp.

Xét toán tử ξt(i,j) là xác suất của hệ thống ở trạng thái i tại thời điểm t và

trạng thái j tại thời điểm t+1 với điều kiện có chuỗi quan sát O và mô hình

Markov ẩn λ.

ξt(i,j) = P(qt = si,qt+1= sj /O, λ)

khi đó:

ξt(i,j)=

γt(i) =

Kết hợp γt(i) và ξt(i,j), ta có:

= xác suất của hệ thống ở trạng thái I tại thời điểm t=1, tức là bằng γt(i).

ij=

j=

;

Khi đó, = ( , , ) là mô hình đã được ước lượng lại.

2.4. So sánh các loại mô hình Markov ẩn

Có nhiều cách phân loại mô hình Markov ẩn, trong đó người ta thường phân

biệt dựa vào đặc trưng của ma trận chuyển trạng thái Aij, có thể phân loại thành mô

hình Markov ẩn có liên kết đầy đủ và mô hình Markov ẩn trái phải. Hoặc là dựa vào

tính chất của hàm mật độ xác suất quan sát Bj(k), người ta phân loại thành mô hình

Markov ẩn rời rạc (DHMM), mô hình Markov ẩn liên tục (CDHMM), mô hình

Markov ẩn bán liên tục (SCHMM):

- DHMM: Đối với mô hình Markov ẩn rời rạc, không gian vector đặc trưng

của tín hiệu tiếng nói được chia vào hữu hạn các vùng bằng một thủ tục phân nhóm

chẳng hạn như lượng hóa vector(VQ).

34

- CDHMM: Lỗi lượng tử hóa vector đã được loại trừ bằng cách sử dụng hàm

mật độ liên tục thay vì lượng hóa vector. Trong CDHMM phân bố xác suất trên

không gian vector âm học được mô hình hóa trực tiếp sử dụng hàm mật độ xác suất

liên tục chẳng hạn như hàm trộn của các hàm Gauss.

- SCHMM: Mô hình này cung cấp chi tiết dữ liệu mô hình hóa thông qua việc

chia sẻ các tham số. Mô hình này là một sự kết hợp giữa DHMM và CDHMM.

35

CHƯƠNG 3

XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG VIỆT

3.1. Tổng quan về HTK (HMM Tool Kit)

3.1.1. Giới thiệu hệ thống

HTK là một công cụ nhận dạng mạnh mẽ do Steve Young và các đồng nghiệp

của ông nghiên cứu và phát triển. HTK tích hợp hầu hết các kĩ thuật về mô hình

Markov ẩn, các kĩ thuật về xử lý và nhận dạng tiếng nói. Ngoài ra, nó còn cho phép

ta xây dựng các mô hình ngôn ngữ, cú pháp văn phạm để quá trình nhận dạng tiếng

nói đạt hiệu quả cao hơn. Hình 4.1 và 4.2 thể hiện tổng quan các chức năng và cấu

trúc của bộ công cụ HTK.

Hình 3.2. Các Module và các chức năng trong HTK.

36

Hình 3.3. Các công cụ và chức năng trong HTK

Với mục đích nghiên cứu ứng dụng của HTK trong xử lý và nhận dạng tiếng

nói, luận văn sẽ trình bày chi tiết về các cấu trúc trong HTK có liên quan tới nhận

dạng tiếng nói trong phần tiếp theo.

3.1.2. Mô hình các cấu trúc tập tin cơ bản khai báo HMM và MFCC cho nhận

dạng tiếng nói

a/ Cấu trúc tập tin vector HTK được minh họa qua cấu trúc sau:

Struct Feature VectorFile

{

long nSameples; // số mẫu trong tập tin

long sampPeriod;

// tần số mẫu =tần số cửa sổ (tính theo 100ns)

Short int sampSize;

Short int parmKind;//loại mẫu

37

FeatureVector sample [nSample];

}

Với parmKind được định nghĩa như sau:

 0: WAVEFORM (sample wave)

 1: LPC (Linear Prediction Filter Coeficients)

 2: LPREFC (Linear Prediction Reflection Coeficients)

 3: LPCEPSTRA (LPC Cepstral Cofeicients)

 4: MFCC (Mel-Frequency Ceptral Cofeicients)

 5: FBANK (Log Mel-Filter bank chanel outputs)

 6: USER (User defined sample kind)

Ngoài ra, HTK còn hỗ trợ các dạng tập tin cho phép ta rút trích các Vector đặc

trưng khác nhau như sau:

 _E: Đặc trưng dạng năng lượng

 _D: Trong tập Vector đặc trưng có các hệ số đạo hàm cấp 1

 _A: Trong tập Vector đặc trưng có các hệ số đạo hàm cấp 2

 _0: Có hệ số Ceptral thứ 0 (đầu tiên).

Hình 3.4 dưới đây là một ví dụ về sự phân bố các tham số trong một số vector

đặc trưng được rút trích bằng HTK với các định dạng khác nhau:

38

Hình 3.4. Phân bố các tham số trong một số vector đặc trưng của HTK

b/ Cấu trúc tập tin mô hình Markov ẩn (HMM) được tạo bởi HTK

Mô hình HMM được tạo bằng HTK có cấu trúc như sau:

Trong cấu trúc tập tin HMM:

 ~h”hmm”: Tên mô hình như ở hình trên là mô hình hmm1

: Bắt đầu mô hình HMM

: Kết thúc tập tin HMM

 Phần thân được bao bọc ở giữa

: Số trạng thái của mô hình

39

: Tên trạng thái

: Chuyển trạng thái…

Với mô hình Markov ẩn tạo bởi HTK người dùng có thể thay đổi số chiều của

vector đặc trưng cho phù hợp với mục đích của mình.

c/ Cấu trúc tập tin đánh nhãn dữ liệu

Với các dữ liệu dùng để huấn luyện hay nhận dạng sẽ được đánh nhãn (được

đặt cùng tên với tập tin dữ liệu nhưng có kiểu mạc định là .lab). Mỗi dòng sẽ đánh

dấu cho vị trí bắt đầu và kết thúc cho từng từ. Trong HTK có hỗ trợ nhiều dạng tập

tin đánh nhãn nhưng dạng tập tin đánh nhãn Master Lable File hay được dùng, nó

có cú pháp như sau:

Ví dụ ta có tập tin thu âm dữ liệu là 001.wav lưu trữ nội dung gồm các số “ba

moojt nawm chisn” thì khi đó tập tin đánh nhãn của nó là:

40

3.1.3. Các bước xây dựng một mô hình nhận dạng tiếng nói sử dụng HTK

Qua tìm hiểu cách xây dựng hệ thống nhận dạng tiếng Anh và tiếng Thái trong

ASR Lap và HTK Book , Ta nhận thấy rằng để xây dựng hệ thống nhận dạng tiếng

nói đơn giản cần thực hiện theo các bước như sau:

Hình 3.5. Các bước cơ bản xây dựng hệ thống nhận dạng tiếng nói

 Bước 1: Tạo tập tin cấu trúc văn phạm

Cấu trúc văn phạm là một đồ thị có hướng tổng quát. Nó chứa các cấu trúc câu

có thể có trong ngữ cảnh của ứng dụng mà ta muốn dùng trong hệ thống nhận dạng.

41

Ví dụ nếu ta muốn xây hệ thống nhận dạng tiếng nói để nhận dạng chữ khi người

dùng đọc các từ hay cụm từ có các từ “ Vũ”, “Vinh”, “Quang” thì ta có tập tin cấu

trúc văn phạm như sau

//gram.txt

$digit = Vũ| Vinh |Quang;

(SENT-START <$digit> SENT-END)

 Bước 2: Tạo từ điển

Muốn xây dựng từ điển thì bước đầu tiên là tập hợp tất cả các từ được dùng

trong ngữ cảnh. Các từ này được xếp thứ tự alphabet trong tập tin và phải được

phiên âm tương ứng. Qui cách phiên âm rất quan trọng, nó ảnh hưởng rất lớn tới

hệ thống nhận dạng.

Tiếp tục với ví dụ trên ta có tập tin từ điển như sau:

#dict

Vũ V ux

Vinh V i nh

Quang Q u a ng

 Bước 3: Tạo tập tin huấn luyện.

Ở bước này ta sẽ thực hiện quá trình thu âm dữ liệu huấn luyện và file âm

thanh được lưu trữ dưới dạng mở rộng *.wav.

 Bước 4: Để huấn luyện một tập các mô hình HMM, với tất cả các file dữ

liệu huấn luyện chúng ta phải có một tập tin tương ứng mức độ các âm vị liên quan.

Với ví dụ trên tập tin Straincript có dạng:

#!MLF!#

"*/001.lab"

V

ux

.

42

"*/002.lab"

v

i

nh

"*/003.lab"

q

u

a

ng

.

 Bước 5: Rút trích đặc trưng

Tại bước này, các file âm thanh mà ta đã thu ở bước 3 sẽ được rút đặc trưng với

modul HCopy trong HTK. HTK hỗ trợ 2 dạng đặc trưng MFCC và LPC. MFCC nên

được sử dụng vì nó tốt hơn .

 Bước 6, 7: Tạo mô hình HMM và trộn hàm Gauss vào mô hình

Tại bước này, chúng ta sẽ định nghĩa ra một mô hình cho HMM. Việc gán thông

tin nào cho prototype là không quan trọng, chủ yếu là chúng ta xây dựng một cái

khung cho mô hình ban đầu. Một mô hình tốt mà HTK Book đề xuất là mô hình 3

trạng thái trái – giữa – phải tuần tự.

Hình 3.6: Mô hình HMM

Sau đây là mô hình Prototype HMM khởi tạo ban đầu:

43

Mô hình prototype khởi đầu gồm có 5 trạng thái, độ dài của mỗi vector đặc

trưng được khởi tạo là 39. Trong đó hệ số MFCC_0 = 13, hệ số delta = 13 và hệ số

gia tốc (delta của delta) = 13.

 Bước 8: Tạo bộ dữ liệu kiểm tra

Trong bước này, ta sẽ thu âm dữ liệu để chuẩn bị cho quá trình đánh giá mô

hình vừa khởi tạo ở trên. Dữ liệu để đánh giá sẽ được thu âm và trích chọn đặc

trưng như dữ liệu huấn luyện.

 Bước 9: Đánh giá

44

Với mô hình nhận dạng vừa khởi tạo, ta sẽ thực hiện đánh giá dựa trên bộ dữ

liệu kiểm tra đã được tạo ở bước 6. HTK hỗ trợ cho phép chúng ta đánh giá hệ

thống theo thuật toán Viterbi.

 Bước 10: Nhận dạng thời gian thực (Online)

Ở bước này ta sẽ tạo tập tin định dạng cho phép hệ thống nhận dạng trực tiếp

khi có người dùng đọc vào. Nó sẽ chuyển thành dạng văn bản hay các câu lệnh điều

khiển khi ta tích hợp vào các hệ thống.

Để thực hiện được các quá trình như xử lý tiếng nói, nhận dạng ở các bước

trên ta sẽ sử dụng các modul trong bộ công cụ HTK như: HVite, HCopy, HCompv,

HRest, HResult…

3.1.4. Một số Modul sử dụng trong quá trình xây dựng hệ thống nhận dạng tiếng

nói tiếng việt trong bộ công cụ HTK

1) HCopy

Modul này sẽ copy một hay nhiều file dữ liệu vào một file đầu ra được chỉ

định trước, nó chuyển đổi dữ liệu sang dạng tham số. Là modul để rút trích đặc

trưng trong tập tin chứa tiếng nói. HCopy được sử dụng theo các bước sau:

Bước 1: Tạo tập tin script dùng để chứa tên các tập tin cần chuyển đổi và tên

các tập tin kết quả (chẳng hạn như đặt tên là chuyendoi.scp).

Mỗi dòng trong tập tin script chứa 2 đường dẫn:

Tên_tập_tin_cần_xử_lý Tên_tập_tin_kết_quả_tương_ứng

Ví dụ:

c:/YOU_2/wave/1.mfc

c:/YOU_2/wave/10.mfc

c:/YOU_2/wave/11.mfc

c:/YOU_2/wave/12.mfc

c:/YOU_2/wave/13.mfc

c:/YOU_2/wave/14.mfc

c:/YOU_2/wave/15.mfc

45

Bước 2: Tạo một tập tin cấu hình có tên HCopy.cfg chứa các thông tin như

kiểu tập tin nguồn, kiểu tập tin đích, kích thước cửa sổ…

Ví dụ:

Bước 3: Thực thi lệnh để tạo ra tập tin đích, chẳng hạn dòng lệnh như sau:

HCopy –C HCopy.cfg –S chuyendoi.scp

2) HParse

Modul này dùng để tạo tập tin mô hình ngôn ngữ từ tập tin văn phạm. có thể

sử dụng bằng cách sau:

Bước 1: Tạo tập tin văn phạm phù hợp với ngữ cảnh (chẳng hạn đặt tên là

gram), Ví dụ tập tin đó như sau:

$digit= moojt | hai | ba | boosn | nawm | sasu | bary | tasm | chisn | khoong;

(<$digit>)

Bước 2: Thực thi lệnh HParse:

HParse gram wdnet

Kết thúc quá trình này ta thu được tập tin wdnet. Tập tin này được dùng để

gán nhãn trong modul HVite.

3) HVite

HVite là modul được dùng để nhận dạng trong hệ thống nhận dạng tiếng nói

bằng mô hình Markov ẩn, được sử dụng qua các bước như sau:

Bước 1: Tạo tập tin script chứa tất cả các tập tin cần nhận dạng ví dụ đặt tên là

test.scp.

46

Bước 2: Chuẩn bị các tập tin như: từ điển dict, mạng ngôn ngữ wdnet, các mô

hình HMM hmmlist, tập các mô hình HMM đã huấn luyện hmmset.

Bước 3:Thực thi lệnh HVite với các dòng lệnh về các tham số:

HVite –w wdnet –I recout.mlf –S test.scp –H hmmset dict hmmlist

Kết thúc lệnh tệp tin Master lable recout.mlf chứa mô tả các dữ liệu cần nhận

dạng được tạo ra.

4) HCompV

HCompV đùng để khởi tạo mô hình Markov ẩn khi tập tin huấn luyện chưa

được đánh nhãn. Các bước sử dụng HCompV như sau:

Bước 1: Tạo tập tin script chứa tất cả tập tin dùng huấn luyện (chẳng hạn đặt

tên là train.scp).

Bước 2: Tạo mô hình HMM khởi đầu như đã nêu ở trên (4.1.1) giả sử tên

là proto.

Bước 3:Thực thi HCompV với lệnh sau:

HCompV –S train.scp proto

Kết thúc lệnh ta thu được mô hình HMM với tham số của tập tin dữ liệu.

5) HRest

Dùng để huấn luyện mô hình HMM, được thực hiện theo các bước sau:

Bước 1: Tạo tập tin script chứa tất cả các tập tin dùng để huấn luyện (chẳng

hạn có tên là Train.scp).

Bước 2: Khởi tạo tập tin mô hình Hmm bằng HCompV như đã nói ở trên.

Bước 3: Thực thi lệnh HRest với dòng lệnh và tham số như:

HRest –S train.scp vidu

Kết thúc lệnh trên ta thu được mô hình HMM đã huấn luyện trong tập tin vidu.

47

3.2. Xây dựng hệ thống nhận dạng chữ số Tiếng việt

3.2.1. Xây dựng cơ sở dữ liệu chữ số tiếng việt

Cơ sở dữ liệu trong thực nghiệm của Luận văn là cơ sở dữ liệu với 1000 mẫu

trong tập huấn luyện và 100 mẫu trong tập test. Để thuận tiện cho việc gán nhãn, dữ

liệu được thu theo các câu đã được phát sinh ngẫu nhiên (dạng văn bản) nhờ công

cụ HTK.

3.2.2. Bảng phiên âm 10 chữ số tiếng Việt

Cách phiên âm có vài trò rất quan trọng đảm bảo chất lượng của hệ thống

nhận dạng. Luận văn sử dụng bảng phiên âm âm vị cho hệ thống nhận dạng 10 chữ

số tiếng Việt như sau:

Bảng 3.1: Bảng phiên âm 10 chữ số tiếng Việt

Chữ số Phiên âm chính tả Phiên âm âm vị

0 Khoong /Kh/ /oo/ /ng/

1 Moojt /m/ /ooj/ / t/

2 Hai /h/ / a // i/

3 Ba /b/ / a /

4 Boosn /b//oos//n/

5 Nawm /n//aw//m

6 Sasu /s//as//u/

7 Bary /b//ar//y/

8 Tasm /t//as//m/

9 Chisn /ch//is//n/

3.2.3. Phương pháp xây dựng hệ thống nhận dạng chữ số tiếng việt

Phương pháp xây dựng hệ thống nhận dạng 10 chữ số phát âm tiếng Việt được

tiến hành theo các bước sau:

 Từ điển: được xây dựng dựa trên bảng phiên âm âm vị bao gồm 2 loại từ điển

cho 2 thực nghiệm khác nhau để đánh giá độ chính xác và chọn ra bộ từ điển thích hợp.

Một từ điển không chèn các sp (short pause) và một từ điển có chèn thêm các sp.

48

 Sử dụng bộ công cụ HTK để xử lý rút trích đặc trưng của dữ liệu huấn luyện

và dữ liệu Test.

 Xây dựng mô hình Markov ẩn với hàm phát xạ quan sát là hàm mật độ

Gauss.

 Số lượng trạng thái trong mô hình Markov ẩn là 5 trạng thái, trong đó có 1

trạng thái khởi đầu và 1 trạng thái kết thúc không có phát xạ quan sát.

 Sử dụng vector đặc tính phổ gồm hệ số MFCC, giá trị năng lượng cùng các

delta, delta- delta của các giá trị này tạo thành tập 39 đặc tính phổ tương ứng với

mỗi khung tín hiệu 10ms.

 Tiến hành buộc các âm vị không có đủ bộ dữ liệu huấn luyện theo phương

pháp dùng cây (tree- based). Các âm vị trong tập dữ liệu kiểm tra mà không có

mặt trong dữ liệu huấn luyện sẽ được tổng hợp từ các âm vị đã được huấn luyện

giống nhất.

 Thử nghiệm trộn nhiều hàm Gauss và mix các trạng thái.

3.2.4. Các kết quả thực nghiệm

a) Thử nghiệm với từ điển có chèn short pause và không chèn short pause

Trong khi nói, giữa những câu những từ sẽ có khoảng ngừng nghỉ khác nhau.

Để máy có thể phân biệt được điều này là rất khó khăn. Để kiểm tra sự ảnh hưởng

của yếu tố ngừng nghỉ giữa các câu các từ tới độ chính xác của hệ thống luận văn đã

tiến hành thử nghiệm trên 2 bộ từ điển phiên âm 10 chữ số tiếng việt khác nhau.

Một bộ từ điển phiên âm không chèn thêm các âm quy định là khoảng nghỉ và một

bộ từ điển có chèn thêm các sp quy định là những khoảng nghỉ giữa các từ.

+Từ điển không chèn thêm các sp:

49

+Từ điển có chèn thêm các sp:

Kết quả của thử nghiệm độ chính xác của hệ thống nhận dạng theo 2 bộ từ

điển ở trên được cho trong bảng sau:

Bảng 3.2. Kết quả thử nghiệm hệ thống nhận dạng với bộ từ điển có chèn sp và không chèn sp

Hệ thống nhận dạng Mức câu Mức từ

Bộ từ điển không chèn SP 56% 90%

Bộ từ điển có chèn SP 70% 90%

Như vậy, với bộ từ điển có chèn thêm các sp độ chính xác mức câu sẽ tăng

lên. Đây sẽ là bộ từ điển được chọn để tiến hành các thực nghiệm về sau.

b) Thử nghiệm với dữ liệu test nằm trong dữ liệu huấn luyện và độc lập với dữ

liệu huấn luyện

Trong quá trình thực nghiệm phát sinh ra vấn đề đó là có những câu trong dữ

liệu test mà không có mặt trong dữ liệu huấn luyện. Như vậy hệ thống phải nhận

dạng các câu các âm tiết mà nó chưa được học trước đó. Nếu tập dữ liệu được bổ

sung thì độ chính xác của kết quả nhận dạng có thể được nâng lên. Để nghiên cứu

độ tốt nhất của hệ thống có thể đạt tới, ta cần thử nghiệm trong trường hợp dữ liệu

test trùng với dữ liệu huấn luyện.

Trong thực nghiệm này, dữ liệu huấn luyện là 1000 mẫu và dữ liệu test cũng

50

chính là dữ liệu huấn luyện. Kết quả thu được là tốt hơn so với thử nghiệm dữ liệu

test độc lập với dữ liệu huấn luyện.

Kết quả thực nghiệm được cho ở bảng sau:

Bảng 3.3. Kết quả thử nghiệm hệ thống nhận dạng với dữ liệu test trùng với dữ

liệu huấn luyện

Hệ thống nhận dạng Mức câu Mức từ

Dữ liệu test trùng với dữ liệu huấn luyện 80% 95%

Dữ liệu test độc lập với dữ liệu huấn luyện 70% 90%

51

KẾT LUẬN

Nhận dạng tiếng nói là một trong những vấn đề rất khó trong lĩnh vực nhận

dạng. Trong quá trình thực hiện luận văn, em đã gặp không ít khó khăn nhất là về

mặt tài liệu, vì lí do ở Việt Nam những nghiên cứu về nhận dạng tiếng nói là không

nhiều, và những người chuyên sâu trong lĩnh vực còn rất ít. Tuy nhiên, với sự cố

gắng và sự động viên giúp đỡ của các thầy cô em đã hoàn thiện luận văn của mình

và có những đóng góp sau:

 Nghiên cứu các phương pháp nhận dạng tiếng nói, đánh giá và lựa chọn

phương pháp phù hợp để xây dựng hệ thống nhận dạng tiếng nói tiếng Việt.

 Tìm hiểu phương pháp xử lý trích chọn đặc trưng và đánh giá tầm quan trọng

của việc trích chọn đặc trưng tiếng nói với hệ thống nhận dạng.

 Tìm về bộ công cụ HTK đặc biệt là các bước tổng quát để xây dựng một hệ

thống nhận dạng tiếng nói.

 Tìm những đặc điểm quan trọng của ngôn ngữ tiếng Việt để xây dựng hệ

thống nhận dạng tiếng nói tiếng Việt.

 Nghiên cứu xây dựng hệ thống nhận dạng 10 chữ số phát âm tiếng Việt.

 Xây dựng được bộ cơ sở dữ liệu với 1000 câu làm dữ liệu huấn luyện và 100

câu làm dữ liệu Test.

 Tìm hiểu mô hình phiêm âm âm vị tiếng việt.

 Xây dựng hệ thống nhận dạng, đánh giá kết quả thực nghiệm

Trong khoảng thời gian ngắn, điều kiện cơ sở vật chất phục vụ cho quá trình

thu âm dữ liệu còn rất hạn chế nên lượng dữ liệu thu vào chưa phong phú (độ đa

dạng, số lượng và chất lượng), cho nên kết quả đạt được trong hệ thống nhận dạng

chưa cao. Trong thời gian tiếp sau, luận văn tiếp tục cải thiện độ chính xác của hệ

thống nhận dạng bằng cách bổ sung thêm về cơ sở dữ liệu cho hệ thống.

52

TÀI LIỆU THAM KHẢO

[1]. Barbara S, “High- Performance Automatic Speech Recognition via Enhanced

Front-end Analysis and Acoustic Modeling”,Ph.D.Thesis, University of

California, 2001.

[2]. Hosom J.P, Cole R.A, and Cosi P, “ Improverment in Neural-Network

Training and Search technique for continunous Digit recognition” Australia

Journal of Intelligent information processing systems, vol.5,no.5, pp.227-284,

1998.

[3]. Đặng Ngọc Đức, “Nghiên cứu ứng dụng mạng Neural và mô hình Markov ẩn

vào trong nhận dạng tiếng Việt”, Luận án tiến sĩ toán học, Đại học Quốc Gia

Hà Nội, 2004.

[4]. Đỗ Xuân Thọ, Lê Hữu Tĩnh, “Giáo trình tiếng Việt 2”, nhà xuất bản Giáo

dục, 1997.

[5]. Lương Chi Mai, Hồ Tú Bảo, “Về xử lý tiếng Việt trong công nghệ thông tin”,

Báo cáo khoa học, Viện công nghệ thông tin.

[6]. Nguyễn Thành Phúc, “Một phương pháp nhận dạng lời Việt: áp dụng phương

pháp kết hợp mạng Neural với mô hình Markov ẩn”, Luận án tiến sĩ Kỹ thuật,

Đại học Bách khoa Hà Nội, 2000.

[7]. http://luanvan.net.vn/luan-van/luan-van-nhan-dang-tieng-noi-tieng-viet-su-

dung-mang-no-ron-nhan-tao-va-mo-hinh-markov-an-52153/

[8]. http://4tech.com.vn/forums/showthread.php/5055-T%C3%ACm-

hi%E1%BB%83u-m%C3%B4-h%C3%ACnh-Markov-%E1%BA%A9n

[9]. http://doc.edu.vn/tai-lieu/luan-van-nhan-dang-tieng-noi-tieng-viet-tim-hieu-

va-ung-dung-54092/