BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG

HỌC VIỆN KỸ THUẬT QUÂN SỰ

NGÔ VĂN CƯƠNG

NGHIÊN CỨU KỸ THUẬT NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT VÀ ỨNG DỤNG

Chuyên ngành: Hệ thống thông tin

Mã số: 60 48 01 04

LUẬN VĂN THẠC SĨ KỸ THUẬT

Hà Nội - Năm 2015

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI

HỌC VIỆN KỸ THUẬT QUÂN SỰ

Cán bộ hướng dẫn chính: PGS.TS. Bùi Thế Hồng

Cán bộ chấm phản biện 1: TS. Trần Nguyên Ngọc

Cán bộ chấm phản biện 2: TS. Trần Thị Thu Hà

Luận văn thạc sĩ được bảo vệ tại:

HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ

HỌC VIỆN KỸ THUẬT QUÂN SỰ

Ngày tháng năm 2015

Tôi xin cam đoan:

Những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn

trung thực, của tôi, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và

pháp luật Việt Nam. Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật.

TÁC GIẢ LUẬN VĂN

Ngô Văn Cương

Trang MỤC LỤC

Trang phụ bìa

Bản cam đoan

Mục lục

Các thuật ngữ viết tắt

Mở đầu ......................................................................................................... 1

Chương 1 CƠ SỞ LÝ THUYẾT XỬ LÝ TIẾNG NÓI

1.1. Lý thuyết âm thanh và tiếng nói .............................................................. 5

1.1.1. Nguồn gốc âm thanh: ............................................................................ 5

1.1.2. Các đại lượng đặc trưng cho âm thanh: ................................................. 5

1.1.2.1. Tần số của âm thanh: ......................................................................... 5

1.1.2.2. Chu kì của âm thanh: ......................................................................... 5

1.1.2.3. Tốc độ truyền âm: .............................................................................. 5

1.1.2.4. Cường độ âm thanh: ......................................................................... 5

1.1.2.5. Thanh áp: .......................................................................................... 6

1.1.2.6. Âm sắc: ............................................................................................ 6

1.1.2.7. Âm lượng: ........................................................................................ 6

1.1.3. Các tần số của âm thanh: ...................................................................... 6

1.1.4. Cơ chế tạo lập tiếng nói của con người: ................................................ 6

1.1.5. Mô hình lọc nguồn tạo tiếng nói: .......................................................... 7

1.1.6. Hệ thống nghe của người: ..................................................................... 8

1.1.7. Quá trình sản xuất tiếng nói và thu nhận tiếng nói: ............................... 9

1.1.8. Các âm thanh tiếng nói và các đặc trưng: ............................................ 10

1.1.8.1. Nguyên âm: ..................................................................................... 10

1.1.8.2. Các âm vị khác: ............................................................................... 10

1.2. Giới thiệu về xử lý tiếng nói .................................................................. 11

1.3. Nhận dạng tiếng nói .............................................................................. 12

1.3.1. Bài toán nhận dạng tiếng nói .............................................................. 12

1.3.2. Các phương pháp nhận dạng tiếng nói ................................................ 14

1.3.2.1. Phương pháp âm học ngữ âm học .................................................... 14

1.3.2.2. Phương pháp nhận dạng mẫu .......................................................... 16

1.3.2.3. Phương pháp ứng dụng trí tuệ nhân tạo........................................... 18

1.4. Nhận dạng tiếng Việt ............................................................................. 19

1.4.1. Một số đặc điểm ngữ âm tiếng Việt .................................................... 19

1.4.2. Những thuận lợi và khó khăn đối với nhận dạng tiếng Việt ................ 20

1.4.2.1. Thuận lợi ......................................................................................... 20

1.4.2.2. Khó khăn ......................................................................................... 20

Chương 2

MÔ HÌNH NHẬN DẠNG TIẾNG NÓI

2.1. Các kiểu mô hình mạng nơron ............................................................... 22

2.1.1. Perceptron .......................................................................................... 24

2.1.2. Mạng nhiều tầng truyền thẳng (MLP) 25

2.2. Huấn luyện mạng nơron ........................................................................ 26

2.2.1. Các phương pháp học 26

2.2.2. Học có giám sát trong các mạng nơron ............................................... 28

2.2.3. Thuật toán lan truyền ngược ............................................................... 29

2.3. Các vấn đề trong xây dựng mạng MLP .................................................. 30

2.3.1. Chuẩn bị dữ liệu ................................................................................. 30

2.3.1.1. Kích thước mẫu ............................................................................... 30

2.3.1.2. Mẫu con ........................................................................................... 32

2.3.2. Xác định các tham số cho mạng .......................................................... 32

2.3.2.1. Chọn hàm truyền ............................................................................. 32

2.3.2.2. Xác định số nơron tầng ẩn ............................................................... 33

2.3.2.3. Khởi tạo trọng.................................................................................. 34

2.3.3. Vấn đề lãng quên (catastrophic forgetting) ......................................... 35

2.3.4. Vấn đề quá khớp ................................................................................. 36

2.3.4.1. Khái niệm quá khớp ......................................................................... 36

2.3.4.2. Giải quyết quá khớp ......................................................................... 36

Chương 3

QUÁ TRÌNH TIỀN XỬ LÝ TIẾNG NÓI

3.1. Phát hiện tiếng nói ................................................................................. 38

3.1.1. Năng lượng ngắn hạn .......................................................................... 38

3.1.2. Tốc độ đi qua điểm không .................................................................. 39

3.1.3. Lượng thông tin .................................................................................. 39

3.1.3.1. Tính FFT ......................................................................................... 39

3.1.3.2. Mật độ xác suất của phổ năng lượng ................................................ 40

3.1.3.3. Tính Entropy ................................................................................... 40

3.1.4. Giải thuật phát hiện tiếng nói .............................................................. 40

3.2. Phân tích cepstral thông qua thang độ mel ............................................. 41

3.2.1. Mô hình tính toán các hệ số MFCC .................................................... 42

3.2.2. Quá trình tiền xử lý tín hiệu ................................................................ 42

3.2.2.1. Bộ lọc thích nghi ............................................................................. 42

3.2.2.2. Chuẩn hóa biên độ ........................................................................... 43

3.2.2.3. Phân khung ...................................................................................... 43

3.2.2.4. Lấy cửa sổ ....................................................................................... 43

3.2.2.5. Phổ năng lượng ................................................................................ 43

3.2.2.6. Băng lọc Mel ................................................................................... 44

3.2.2.7. Logarit các hệ số năng lượng qua băng lọc ...................................... 44

3.2.2.8. Biến đổi Cosine rời rạc ngược ......................................................... 45

3.2.2.9. Cepstral có trọng số ......................................................................... 45

3.2.2.10. Đạo hàm Cepstral theo thời gian .................................................... 45

3.3. Lượng tử hóa vector .............................................................................. 46

3.3.1. Tập vector huấn luyện ........................................................................ 46

3.3.2. Khoảng cách giữa hai vector ............................................................... 47

3.3.3. Nhân của một tập vector ..................................................................... 48

3.3.4. Phân cụm các vector ........................................................................... 48

Chương 4

ỨNG DỤNG XÂY DỰNG HỆ THỐNG MÔ PHỎNG NHẬN

DẠNG TIẾNG NÓI TIẾNG VIỆT BẰNG MẠNG NƠRON

MLP TRÊN MATLAB

4.1. Giới thiệu .............................................................................................. 50

4.2. Xây dựng hệ thống nhận dạng demo ...................................................... 50

4.2.1. Mô tả chung về hệ thống .................................................................... 50

4.2.2. Sơ đồ khối của hệ thống ..................................................................... 51

4.2.3. Thu thập và tiền xử lí tín hiệu tiếng nói .............................................. 52

4.2.4. Trích chọn đặc trưng MFCC ............................................................... 54

4.2.5. Tính đầu vào cho mạng....................................................................... 56

4.2.6. Xây dựng và huấn luyện và thử nghiệm mạng nơron MLP ................. 58

4.2.7. Sử dụng mạng trong nhận dạng .......................................................... 59

4.2.8. Giao diện của hệ thống demo: ............................................................ 59

4.3. Kết quả thử nghiệm ............................................................................... 62

4.4. Hướng mở rộng của đề tài ..................................................................... 65

4.4.1. Xây dưng bộ dữ liêu huấn luyện lớn hơn ............................................ 65

4.4.2. Xây dựng phần mềm nhận dạng dưa trên kết quả nghiên cứu ............. 65

4.4.3. Nghiên cứu các phương pháp xác định đặc trưng khác ....................... 66

4.4.4. Nghiên cứu các phương pháp nhận dạng khác .................................... 66

DANH MỤC HÌNH

Hình 1-1: Mô hình lọc nguồn tạo tiếng nói ..................................................... 8 Hình 1-2: Quá trình sản xuất và thu nhận tiếng nói......................................... 9 Hình 1-3: Mô hình bài toán xử lý tiếng nói. .................................................. 12 Hình 1-4: Hệ thống nhận dạng tiếng nói theo phương pháp nhận dạng mẫu . 16 Hình 1-6: Tích hợp tri thức trong nhận dạng tiếng nói .................................. 19 Hình 2-1: Mạng tự kết hợp ........................................................................... 22 Hình 2-2: Mạng kết hợp khác kiểu ............................................................... 23 Hình 2-3: Mạng truyền thẳng ....................................................................... 23 Hình 2-4: Mạng phản hồi ............................................................................. 24 Hình 2-5: Perceptron .................................................................................... 24 Hình 2-6: Mạng MLP tổng quát ................................................................... 25 Hình 2-7: Mối liên hệ giữa sai số và kích thước mẫu ................................... 31 Hình 2-8: Huấn luyện luân phiên trên hai tập mẫu........................................ 35 Hình 3-1: Sơ đồ khối tính toán các hệ số MFCC .......................................... 42 Hình 4-1: Sơ đồ khối hệ thống nhận dạng tiếng nói các chữ số tiếng Việt bằng mạng nơron MLP trên môi trường Matlab .................................................... 51 Hình 4-2: Từ ‘hai’ được thu âm – bao gồm nền nhiễu .................................. 52 Hình 4-3: Từ ‘hai’ sau khi đã loại bỏ nền nhiễu ........................................... 53 Hình 4-4: Xác định nền nhiễu từ môi trường thu âm .................................... 53 Hình 4-5: wav trước và sau khi chuẩn hóa ở ngưỡng max(wav)=1 ............... 55 Hình 4-6: Mạng MLP gồm 40 đầu vào và 11 đầu ra ..................................... 56 Hình 4-7: Vector đầu vào gồm 40 phần tử, vector đầu ra gồm 11 phần tử .... 57 Hình 4-8: Các vector đầu vào và đầu ra để huấn luyện mạng MLP .............. 57 Hình 4-9: Giao diện chính của hệ thống demo .............................................. 59 Hình 4-10: Chức năng nhận dạng ................................................................. 60 Hình 4-11: Mẫu bảng điểm trên Excel (chưa có điểm) ................................. 61 Hình 4-12: Ứng dụng nhập điểm và xuất sang Excel .................................... 61 Hình 4-13: Mẫu bảng điểm trên Excel (đã có điểm) ..................................... 62

Tóm tắt luận văn:

Họ và tên học viên: Ngô Văn Cương

Lớp: Hệ thống thông tin Khoá: 25A

Cán bộ hướng dẫn: PGS. TS. Bùi Thế Hồng

Tên đề tài: Nghiên cứu kỹ thuật nhận dạng tiếng nói tiếng Việt và

ứng dụng.

Tóm tắt: Xây dựng hệ thống nhận dạng tiếng nói tiếng Việt dựa trên kỹ

thuật sử dụng mạng nơron MLP (trên môi trường Matlab). Hệ thống có thể

vừa nhận dạng trực tuyến (thu âm trực tiếp và nhận dạng) hoặc nhận dạng từ

tệp âm thanh có sẵn. Ứng dụng của hệ thống là đọc điểm và kết quả là điểm

số sẽ được xuất sang bảng điểm trên Excel.

CÁC THUẬT NGỮ VIẾT TẮT

Viết tắt

Viết đầy đủ

Tạm dịch nghĩa

ASR

Automatic Speech Recognition

Nhận dạng tiếng nói tự động

HMM Hide Markov Model

Mô hình Markov ẩn

IDFT

Inverse Discrete Fourier Transform

Biến đổi Fourier rời rạc ngược

LPC

Linear Prediction Coding

Mã dự đoán tuyến tính

MFCC Mel Frequency Cepstral Coefficients Hệ số phân tích phổ tần Mel

TTS

Text To Speech

Chuyển văn bản thành tiếng nói

STT

Speech To Text

Chuyển tiếng nói thành văn bản

STE

Short Time Energy

Năng lượng ngắn hạn

1

MỞ ĐẦU

Trong thời đại công nghệ thông tin hiện nay, khi việc giao tiếp giữa

người với máy, máy với máy… luôn là vấn đề được quan tâm thì việc trao đổi

thông tin bằng tiếng nói có một vai trò quan trọng. Máy tính ra đời đã giúp

con người giải quyết công việc nhanh gọn và hiệu quả hơn. Tuy nhiên, các

máy tính ngày nay chỉ nhận thông tin từ con người qua các thiết bị như: bàn

phím, chuột, bút,… . Mặc dù tốc độ xử lý của máy tính ngày càng được cải

thiện đáng kể song tốc độ tạo lập thông tin của các thiết bị này vẫn còn thấp.

Con người mong muốn máy tính ngày càng mạnh hơn, thông minh hơn và

một trong số các yêu cầu đó là máy tính trong tương lai phải tương tác với

người sử dụng bằng tiếng nói tự nhiên. Đây sẽ là một bước tiến lớn nhằm

nâng cao sức mạnh của máy tính, đồng thời cũng tăng tốc độ truyền đạt thông

tin giữa máy tính và con người.

Xử lý tiếng nói trở thành một trong những lĩnh vực quan trọng trong

xu hướng phát triển công nghệ của xã hội hiện nay. Đặc biệt, khi công nghệ

thông tin ngày càng phát triển thì các ứng dụng của xử lý tiếng nói ngày càng

trở lên cấp thiết. Mục đích của những nghiên cứu trong lĩnh vực xử lý tiếng

nói là làm cho việc tương tác giữa người và máy ngày càng hiệu quả và tự

nhiên hơn.

Hiện nay trên thế giới các công nghệ xử lý tiếng nói đã phát triển, các

hệ thống ứng dụng xử lý tiếng nói đã được sử dụng ở nhiều nơi, độ chính xác

của các hệ thống này ngày càng được cải thiện. Các ứng dụng của lĩnh vực xử

lý tiếng nói rất phổ biến: nhận dạng tiếng nói, tổng hợp tiếng nói, xác thực

người nói qua giọng nói và các thành tựu của chúng được áp dụng vào nhiều

lĩnh vực trong thực tế.

2

Trên thế giới đã có rất nhiều hệ thống nhận dạng tiếng nói tiếng Anh

đã và đang được ứng dụng rất hiệu quả như: Via Voice của IBM, Spoken

Toolkit của CSLU (Central of Spoken Language Under-standing), Speech

Recognition Engine của Microsoft, Hidden Markov Model toolkit của đại học

Cambridge, CMU Sphinx của đại học Carnegie Mellon,... ngoài ra, một số hệ

thống nhận dạng tiến nói tiếng Pháp, Đức, Trung Quốc,... cũng khá phát triển.

Ở Việt Nam, nhận dạng tiếng nói vẫn là một lĩnh vực khá mới mẻ.

Đến nay tuy đã có nhiều nghiên cứu về nhận dạng tiếng nói tiếng Việt và đã

đạt được một số thành tựu, nhưng nhìn chung vẫn chưa đạt được kết quả cần

thiết để có thể tạo ra các sản phẩm mang tính ứng dụng cao. Có thể kể đến các

công trình sau:

- AILab: Đây là công trình được phòng thí nghiệm Trí tuệ Nhân tạo - AILab thuộc Đại học Khoa học Tự nhiên tạo ra dựa trên các công nghệ tiên tiến nhất về nhận dạng và tổng hợp tiếng nói để đáp ứng nhu cầu của người dùng. Dựa trên công nghệ xử lí tiếng nói tiếng Việt, AILab đã xây dựng phần mềm iSago chuyên hỗ trợ tìm kiếm thông tin qua tiếng nói. Thông qua ứng

dụng phần mềm người sử dụng có khả năng hỗ trợ giao tiếp với điện thoại di động trực tiếp bằng lời nói. Từ đó người sử dụng tìm kiếm thông tin nhà hàng, quán Bar, Café trên địa bàn TP. HCM. Khi người dùng đặt câu hỏi bằng tiếng nói, iSago sẽ truyền nội dung truy vấn này về server để xử lý và gửi lại kết quả tìm kiếm, dạng một danh sách: tên nhà hàng, địa chỉ. Phần mềm này

cũng cho phép người dùng hiển thị địa chỉ tìm được dạng bản đồ hoặc nghe đọc địa chỉ trực tiếp bằng công nghệ tổng hợp giọng nói. Phần mềm được cung cấp miễn phí tại địa chỉ www.ailab.hcmus.edu.vn

- Vietvoice: Đây là phần mềm của một người dân Việt Nam ngụ tại

Canada. Phần mềm có khả năng nói tiếng Việt từ các tập tin. Để chạy được

chương trình, cần cài đặt Microsoft Visual C++ 2005 Redistributable Package

(x86). Đối với người khiếm thị, phần mềm này cho phép sử dụng cách gõ tắt

(nhấn nút Ctrl và một chữ) để chọn lựa một trong các tính năng hiển thị trên

3

màn hình. Người dùng có thể cập nhật từ điển các chữ viết tắt và các từ ngữ

tiếng nước ngoài.

- Vspeech: Đây là một phần mềm điều khiển máy tính bằng giọng nói

do một nhóm sinh viên Đại học Bách Khoa TP. HCM viết. Phần mềm sử

dụng thư viện Microsoft Speech SDK để nhận dạng tiếng Anh nhưng được

chuyển thành tiếng Việt. Nhóm đã khá thành công với ý tưởng này, do sử

dụng lại thư viện nhận dạng engine nên thời gian thiết kế rút ngắn lại mà hiệu

quả nhận dạng khá tốt. Phần mềm Vspeech có các lệnh gọi hệ thống đơn giản

như gọi thư mục My Computer, nút Start,... Phiên bản mới nhất có tương tác

với MS Word 2003, lướt web với trình duyệt Internet Explorer. Không có các

chức năng tùy chỉnh lệnh và gọi tắt các ứng dụng. Phần mềm chạy trên nền

Windows XP, Microphone và card âm thanh sử dụng tiêu chuẩn thông

thường.

Tuy nhiên việc ứng dụng nhận dạng giọng nói vào điều khiển máy

tính còn nhiều hạn chế. Một số sản phẩm của nước ngoài về nhận dạng tiếng

nói Tiếng Việt như: Nuance (Dragon Dictation và Dragon Search), Google

search,... . Ở Việt Nam thì hầu như chỉ mới có bộ phần mềm Vspeech của

nhóm sinh viên trường Đại học Bách Khoa TP. HCM, nhìn chung các phần

mềm chưa được sử dụng thực tế vì chưa đạt trên 100 từ. Phần mềm Vspeech

được phát triển từ mã nguồn mở Microsoft Speech SDK nhận dạng tiếng Anh,

thông qua dữ liệu, phương thức trung gian, việc nhận dạng được chuyển trong

Vspeech để nhận biết tiếng Việt.

Lĩnh vực xử lý tiếng nói đã và đang tiếp tục được nghiên cứu, phát

triển và các ứng dụng của nó ngày càng trở nên phổ biến và quan trọng. Vì

vậy xử lý tiếng nói và các ứng dụng của nó đã trở thành đề tài được nhiều nhà

nghiên cứu cũng như học sinh, sinh viên nghiên cứu và phát triển.

4

Luận văn tập trung nghiên cứu các kỹ thuật nhận dạng tiếng nói, từ đó xây dựng ứng dụng nhận dạng một số từ, các số và cụ thể ứng dụng nhận dạng tiếng nói vào nhập điểm, kết quả điểm số được xuất sang Excel.

Nội dung Luận văn này gồm các chương như sau:

Chương 1: Cơ sở lý thuyết xử lý tiếng nói

Chương này giới thiệu tổng quan về xử lý tiếng nói, tập trung giới thiệu tổng quan về lý thuyết âm thanh và tiếng nói, giới thiệu về xử lý tiếng

nói, nhận dạng tiếng nói và cơ bản về nhận dạng tiếng Việt với những ưu điểm, nhược điểm.

Chương 2: Mô hình nhận dạng tiếng nói

Chương này tập trung nói về mô hình mạng nơron, những vấn đề cần phải thực hiện khi cài đặt và huấn luyện mạng nơron trong ứng dụng nhận dạng tiếng nói.

Chương 3: Quá trình tiền xử lý tiếng nói

Chương này tập trung trình bày cơ sở lý thuyết của các thuật toán trong khâu tiền xử lý tiếng nói bao gồm: giải thuật phát hiện tiếng nói, các phương pháp trích chọn đặc trưng LPC và MFCC;

Chương 4: Xây dựng ứng dụng nhận dạng tiếng nói tiếng Việt

Chương này tập trung trình bày về công cụ nhận dạng tiếng nói áp dụng với tiếng nói tiếng Việt từ đó xây dựng ứng dụng trên máy tính để huấn luyện và nhận dạng một số từ, các số và cụ thể là ứng dụng nhận dạng tiếng nói vào nhập điểm, kết quả điểm số được xuất sang Excel.

Nội dung cụ thể từng chương sẽ lần lượt được trình bày trong các phần

tiếp theo của Luận văn.

5

Chương 1

CƠ SỞ LÝ THUYẾT XỬ LÝ TIẾNG NÓI

1.1. Lý thuyết âm thanh và tiếng nói

1.1.1. Nguồn gốc âm thanh:

Âm thanh là do vật thể dao động cơ học mà phát ra. Âm thanh phát ra

dưới dạng sóng âm. Sóng âm là sự biến đổi các tính chất của môi trường đàn

hồi khi năng lượng âm truyền qua. Âm thanh truyền được đến tai người là do

môi trường dẫn âm. Sóng âm có thể truyền được trong chất rắn, chất lỏng,

không khí. Có chất dẫn âm rất kém gọi là chất hút âm như: len, da, chất xốp…

Sóng âm không thể truyền trong môi trường chân không. Khi kích thích dao

động âm trong mối trường không khí thì những lớp khí sẽ bị nén và dãn.

Trạng thái nén dãn lần lượt được lan truyền từ nguồn âm dưới dạng sóng dọc

tới nơi thu âm. Nếu cường độ nguồn âm càng lớn thì âm thanh truyền đi càng

xa [8].

1.1.2. Các đại lượng đặc trưng cho âm thanh:

1.1.2.1. Tần số của âm thanh:

Là số lần dao động của phần tử khí trong một giây. Đơn vị là Hz, kí hiệu: f

1.1.2.2. Chu kì của âm thanh:

Là thời gian mà âm thanh đó thực hiện một dao động hoàn toàn. Đơn vị

là thời gian, kí hiệu là T.

1.1.2.3. Tốc độ truyền âm:

Là tốc độ truyền năng lượng âm từ nguồn tới nơi thu. Đơn vị m/s. Tốc độ

truyền âm trong không khí ở nhiệt độ từ 0- 200 C thường là 331 – 340 m/s.

1.1.2.4. Cường độ âm thanh:

Là năng lượng được sóng âm truyền trong một đơn vị thời gian qua một

đơn vị diện tích đặt vuông góc với phương truyền âm.

6

1.1.2.5. Thanh áp:

Là lực tác dụng vào tai người nghe hoặc tại một điểm nào đó của trường

âm thanh. Đơn vị : 1pa=1 N/m2 hoặc 1bar = 1dyn/cm2.

1.1.2.6. Âm sắc:

Trong thành phần của âm thanh, ngoài tần số cơ bản còn có các sóng hài, số lượng sóng hài biểu diễn sắc thái của âm. Âm sắc là một đặc tính của âm nhờ đó mà ta phân biệt được tiếng trầm, bổng khác nhau, phân biệt được tiếng nhạc cụ, tiếng nam nữ, tiếng người này với người khác.

1.1.2.7. Âm lượng:

Là mức độ to nhỏ của nguồn. Đơn vị là W

1.1.3. Các tần số của âm thanh:

Theo [8], tần số cơ bản F0 là tần số giao động của dây thanh. Tần số này phụ thuộc vào giới tính và độ tuổi. F0 của nữ thường cao hơn của nam, F0 của người trẻ thường cao hơn của người già. Thường với giọng của nam, F0 nằm trong khoảng từ 80-250Hz, với giọng của nữ, F0 trong khoảng 150-500Hz. Sự biến đổi của F0 có tính quyết định đến thanh điệu của từ cũng như ngữ điệu của câu.

Công suất của tiếng nói, khi nói to nhỏ cũng khác nhau. Khi nói thầm

công suất 10-3mW, nói bình thường 10mW, nói to 103mW.

1.1.4. Cơ chế tạo lập tiếng nói của con người:

Các cơ quan phát âm của con người chủ yếu gồm phổi, khí quản, thanh quản, bộ phận mũi và miệng. Thanh quản có hai nếp gấp gọi là dây thanh âm, dây thanh âm sẽ rung khi luồng không khí đi qua khe thanh môn là khe giữa hai dây thanh âm. Bộ phận miệng là một ống âm không đều. Bộ phận mũi cũng là một ống âm học không đều có diện tích và chiều dài cố định, bắt đầu từ lỗ mũi đến vòm miệng mềm.

Quá trình tạo ra âm phi mũi: vòm miệng mềm ngăn chặn bộ phận mũi và âm thanh phát ra thông qua môi. Đối với quá trình tạo ra âm mũi: vòm miệng mềm hạ xuống và bộ phận mũi liên kết bộ phận miệng, lúc này phía trước của

7

bộ phận miệng khép lại hoàn toàn và âm thanh ra thông qua mũi. Đối với âm thanh nói giọng mũi, âm thanh phát ra cả mũi và môi. Âm thanh của tiếng nói có thể chia làm ba loại khác nhau:

 Âm hữu thanh: giống như âm khi chúng ta nói ‘a’ hay ‘e’ được tạo ra khi dây thanh âm căng lên và rung khi áp suất không khí tăng lên, làm thanh mồm mở ra rồi đóng lại khi luồng không khí đi qua. Những dây thanh âm rung tạo ra dạng sóng của luồng không khí có dạng xấp xỉ tam giác. Chu kì

cao độ âm thanh của đàn ông trưởng thành thường từ 50Hz đến 250Hz, giá trị trung bình khoảng 120Hz. Đối với phụ nữ trưởng thành, giới hạn trên cao hơn nhiều, có thể lên đến 500Hz.

 Âm vô thanh: được tạo ra khi dây thanh âm không rung. Có hai loại âm vô thanh cơ bản: âm xát và âm hơi. Đối với âm xát như khi ta nói chữ ‘s’, một số điểm trên bộ phận phát âm co lại khi luồng không khí ngang qua nó, hỗn loạn xảy ra tạo nên nhiễu ngẫu nhiên. Đối với âm bật hơi, như khi ta nói

chữ ‘h’, hỗn loạn xảy ra ở gần thanh môn khi dây thanh âm bị giữ nhẹ một phần. Ngoài hai loại âm cơ bản nói trên, còn có một loại âm trung gian vừa mang tính chất nguyên âm, vừa mang tính chất phụ âm, được gọi là bán nguyên âm hay bán phụ âm. Ví dụ như ‘i’, ’u’ trong từ ‘ai’ và ‘âu’.

 Phụ âm nổ: ví dụ như âm ‘p’, ‘t’, ’k’ hay ‘đ’, ‘b’, ‘g’ trong tiếng Việt

được tạo ra do loại kích thích khác.

1.1.5. Mô hình lọc nguồn tạo tiếng nói:

Quá trình tạo tiếng nói là bộ lọc nguồn, trong đó tín hiệu từ nguồn âm thanh (cũng có thể là có chu kì hay nhiễu) được lọc bằng bộ lọc biến thiên theo thời gian có tính chất cộng hưởng tương tự với bộ phận phát âm. Như vậy có thể thu được phổ tần số của tín hiệu tiếng nói bằng cách nhân phổ của nguồn âm thanh với đặc tính tần số của bộ lọc. Hình bên dưới minh họa tiếng nói hữu thanh và vô thanh. Các độ lợi AV và AN xác định cường độ của nguồn tạo âm hữu thanh và vô thanh.

8

Hình 1-1: Mô hình lọc nguồn tạo tiếng nói

Mô hình lọc nguồn cho quá trình tạo tiếng nói khá đơn giản nhưng không thể lọc được âm xát bằng cách đỉnh cộng hưởng của bộ phận phát âm như âm hữu thanh hay âm bật hơi, vì vậy mô hình lọc nguồn hoàn toàn không chính xác cho âm xát.

1.1.6. Hệ thống nghe của người:

Quá trình nghe của người như sau: Sóng áp suất âm thanh tác động

đến tai người, sóng này được chuyển thành chuỗi xung điện, chuỗi này được

truyền tới não bộ thông qua hệ thần kinh, ở não chuỗi được xử lý và giải mã.

Khi nghe một sóng âm thuần túy tức âm đơn (sóng sine), những điểm

khác nhau trên màng đáy sẽ rung động theo tần số của âm đơn đi vào tai.

Điểm lệch lớn nhất trên màng đáy phụ thuộc vào tần số của âm đơn. Tần số

cao tạo ra điểm lệch lớn nhất ở phía đáy và tần số thấp tạo ra điểm lệch lớn

nhất ở phía đỉnh. Như vậy màng đáy làm nhiệm vụ phân tích tần số tín hiệu

vào phức tạp thành những tần số khác nhau ở những điểm khác nhau dọc theo

chiều dài của nó. Như vậy có thể xem mọi điểm là bộ lọc thông dải và có tần

số trung tâm và băng thông xác định. Ngưỡng nghe của một âm đơn tăng lên

khi có sự hiện diện của những âm đơn lân cận khác (âm mặt nạ) và chỉ có

bằng tần hẹp xung quanh âm đơn mới tham gia vào hiệu ứng mặt nạ, băng tần

này thường gọi là âm tần tới hạn. Giá trị của băng tần tới hạn phụ thuộc vào

9

tần số của âm đơn cần thử. Tóm lại quá trình nghe của hệ thính giác là một

dãy các bộ lọc băng thông, có đáp ứng phủ lắp lên nhau và ‘băng thông hiệu

quả’ của chúng xấp xỉ với các giá trị của băng tần tới hạn.

1.1.7. Quá trình sản xuất tiếng nói và thu nhận tiếng nói:

Sơ đồ biểu diễn quá trình thu nhận tiếng nói của con người

Hình 1-2: Quá trình sản xuất và thu nhận tiếng nói

Quá trình sản xuất tiếng nói bắt đầu khi người nói muốn chuyển tải

thông điệp của mình cho người nghe thông qua tiếng nói. Tổ chức thần kinh

sẽ chịu trách nhiệm chuyển đổi thông điệp sang dạng mã ngôn ngữ. Khi một

mã ngôn ngữ được chọn lựa, các lệnh thần kinh vận động điều khiển đồng bộ

các khâu vận động nhằm phát ra chuỗi âm thanh. Vậy đầu ra cuối cùng của

quá trình là một tín hiệu âm học. Đối với quá trình thu nhận tiếng nói, người

nghe xử lý tín hiệu âm thanh thông qua màng tai trong; nó có khả năng cung

cấp một phân tích phổ cho tín hiệu tới. Quá trình thần kinh sẽ chuyển đổi tín

hiệu phổ thành các tín hiệu hoạt động với thần kinh thính giác; có thể coi đây

10

là quá trình lấy ra các đặc trưng. Cuối cùng các tín hiệu được chuyển thành

mã ngôn ngữ và hiểu được thông điệp.

1.1.8. Các âm thanh tiếng nói và các đặc trưng:

1.1.8.1. Nguyên âm:

Các nguyên âm có tầm rất quan trọng trong nhận dạng tiếng nói; hầu

hết các hệ thống nhận dạng dựa trên cơ sở nhận dạng nguyên âm đều có tính

năng tốt. Các nguyên âm nói chung là có thời gian tồn tại dài (so với các phụ

âm) và dễ xác định phổ. Chính vì thế dễ dàng cho việc nhận dạng tiếng nói, cả

đối với con người và máy móc. Về mặt lý thuyết, các cực đại của biểu diễn

phổ của tín hiệu nguyên âm chính là các tần số cộng hưởng (formants) tạo nên

nguyên âm. Giá trị của các formant đầu tiên (2 hoặc 3 formant đầu tiên) là

yếu tố quyết định cho phép chúng ta nhận dạng được nguyên âm. Do nhiều

yếu tố biến thiên như sự khác nhau về giới tính, về độ tuổi, tình trạng tinh

thần của người nói và nhiều yếu tố ngoại cảnh khác, đối với một nguyên âm

xát định các giá trị formant cũng có sự biến thiên nhất định. Tuy nhiên sự

khác biệt về các giá trị các formant giữa các nguyên âm khác nhau lớn hơn

nhiều; và trong không gian formant chúng ta có thể xác định một cách tương

đối các vùng riêng biệt cho từng nguyên âm.

1.1.8.2. Các âm vị khác:

Nguyên âm đôi thì có sự biến thiên một cách liên tục các formant của

biểu diễn phổ theo thời gian. Đối với âm vị loại này, cần phải đặc biệt chú ý

đến việc phân đoạn theo thời gian khi nhận dạng. Các bán nguyên âm như /l/,

/r/ và /y/ là tương đối khó trong việc biểu diễn đặc trưng. Các âm thanh này

không được coi là nguyên âm nhưng gọi là bán nguyên âm do bản chất tựa

nguyên âm của chúng. Các đặc trưng âm học của các âm thanh này chịu ảnh

hưởng rất mạnh của ngữ cảnh mà trong đó chúng xuất hiện. Đối với các âm

11

mũi thì miệng đóng vai trò như một khoảng cộng hưởng có tác dụng bẫy năng

lượng âm tại một vài tần số tự nhiên. Các tần số cộng hưởng này của khoang

miệng xuất hiện như các phản cộng hưởng, hay các điểm không của hàm

truyền đạt. Ngoài ra, các phụ âm mũi còn được đặc trưng bởi nhửng sự cộng

hưởng mạnh hơn về phổ so với các nguyên âm. Các phụ âm xát vô thanh như

/s/, /sh/. Hệ thống tạo ra các phụ âm xát vô thanh bao gồm một nguồn nhiễu

tại một điểm thắt mà chia ống dẫn âm thành hai khoang. Âm thanh được bức

xạ tại khoang trước. Khoang sau có tác dụng bẫy năng lượng như trong

trường hợp phụ âm mũi, và như vậy là đưa các phản cộng hưởng vào âm

thanh đầu ra. Bản chất không tuần hoàn là đặc trưng cơ bản nhất của nguồn

kích thích xác vô thanh. Điểm khác biệt của các âm xát hữu thanh như /v/, /th/

so với các phụ âm xát vô thanh là ở chỗ có hai nguồn kích thích liên quan tới

việc tạo ra chúng. Như vậy đặc trưng của phụ âm xát hữu thanh là bao gồm cả

hai thành phần kích thích tuần hoàn và nhiễu. Các âm dừng là các phụ âm /b/,

/d/, /g/, /p/, /t/ và /k/ chúng có thời gian tồn tại rất ngắn. Các âm dừng có tính

chất động vì thế các thuộc tính của chúng chịu ảnh hưởng rất nhiều bởi

nguyên âm đi sau nó.

1.2. Giới thiệu về xử lý tiếng nói

Xử lý tiếng nói ngày nay đang là vấn đề được quan tâm nghiên cứu

nhiều bởi khả năng ứng dụng trong nhiều lĩnh vực như: Công nghệ thông tin,

Viễn thông, tự động hóa (chế tạo người máy có khả năng tương tác với con

người)... qua đó giúp quá trình tương tác giữa người với máy trở nên hiệu quả

và tự nhiên hơn.

Quá trình xử lý tín hiệu tiếng nói là quá trình thu nhận, lưu trữ và

truyền tín hiệu. Quá trình nhận dạng, tổng hợp tiếng nói hay xác thực người

12

nói thông qua giọng nói là các ví dụ điển hình của quá trình xử lý tín hiệu

tiếng nói.

Mục đích của xử lý tiếng nói: Thực hiện xử lý, mã hoá một cách có hiệu quả tín hiệu tiếng nói để

truyền và lưu trữ tiếng nói.

Tổng hợp và nhận dạng tiếng nói tới giao tiếp người-máy bằng tiếng nói

dựa vào các thông tin của quá trình tiền xử lý.

Chúng ta có thể mô hình hóa cho bài toán xử lý tiếng nói như sau:

Hình 1-3: Mô hình bài toán xử lý tiếng nói.

Thông tin đầu vào là tín hiệu tiếng nói do con người phát ra dưới dạng tương tự, sau đó tín hiệu này được số hóa (rời rạc, lượng tử và mã hóa dạng nhị phân). Quá trình tiền xử lý tiếng nói tiến hành xử lý tín hiệu tiếng nói cho kết quả là các tham số của tín hiệu tiếng nói (Các hệ số MFCC và LPC). Các tham số này trở thành đầu vào đối với tất cả các ứng dụng của xử lý tiếng nói. Như vậy tất cả các ứng dụng của xử lý tiếng nói đều cần phải dựa trên các kết quả của quá trình tiền xử lý. Kết quả của quá trình này góp phần quyết định tính chính xác và hiệu quả của các ứng dụng.

1.3. Nhận dạng tiếng nói

1.3.1. Bài toán nhận dạng tiếng nói

Nhận dạng tiếng nói tự động là một kỹ thuật nhằm làm cho máy “hiểu” được tiếng nói của con người. Thực chất đây là một quá trình biến tín hiệu tiếng nói do người phát ra thành tín hiệu số sau đó sử dụng một số giải thuật

13

để đối chiếu giữa tín hiệu thu được với các dữ liệu tham chiếu để xác định xem tín hiệu thu được tương ứng với dữ liệu tham chiếu nào trong bộ tham chiếu (từ điển nhận dạng). Kết quả của việc nhận dạng sau đó có thể được sử dụng trong các ứng dụng khác như nhập số liệu, soạn thảo văn bản bằng lời nói, điều khiển tự động…

Mục tiêu của hầu hết các chương trình nhận dạng tiếng nói là kết quả nhận dạng đạt đến độ chính xác 100% mà không phụ thuộc vào một điều kiện

nào cả. Tuy nhiên tất cả các nghiên cứu gần đây chỉ cho độ chính xác đến khoảng trên 90% trong một số điều kiện cụ thể nào đó còn những chương trình nhận dạng mà không có điều kiện giới hạn gì thì độ chính xác chỉ đạt không quá 87%.

Các chương trình nhận dạng tiếng nói tự động hiện nay khá nhiều và hết sức đa dạng. Tuy nhiên chúng ta cũng có thể dựa vào một số đặc điểm để phân chúng thành một số dạng chủ yếu như: 1. Nhận dạng các từ phát âm rời rạc/liên tục:

Trong các chương trình nhận dạng các từ phát âm rời rạc yêu cầu người nói phải dừng một khoảng trước khi nói từ tiếp theo. Còn hệ thống nhận dạng các từ phát âm liên tục không yêu cầu điều kiện này.

2. Nhận dạng tiếng nói độc lập/phụ thuộc người nói:

Đối với hệ thống nhận dạng phụ thuộc người nói đòi hỏi tiếng người nói phải có trong cơ sở dữ liệu của hệ thống còn hệ thống nhận dạng không phụ thuộc người nói thì người nói không nhất thiết phải có mẫu trước khi nhận dạng trong cơ sở dữ liệu.

3. Nhận dạng với từ điển cỡ nhỏ/vừa/lớn:

Hiệu năng của một hệ thống nhận dạng với từ điển cỡ nhỏ thường cao hơn hiệu năng của các hệ thống nhận dạng có từ điển cỡ vừa và lớn.

4. Nhận dạng trong môi trường nhiễu cao/thấp:

Hiệu năng của các hệ thống nhận dạng không nhiễu sẽ cao hơn hiệu năng của các hệ thống nhận dạng có nhiễu.

Tín hiệu tiếng nói sau khi được số hóa sẽ phân thành các khung có độ dài khoảng từ 10ms đến 45ms qua bước phân tích và xác định các đặc tính sẽ cho

14

ta một dãy các vector đặc trưng của tiếng nói. Các vector này sau đó sẽ được sử dụng để tìm kiếm các từ giống nhất trong từ điển dựa trên một số điều kiện ràng buộc nào đó về mặt âm thanh, ngữ nghĩa, từ vựng…

Do tính chất của tiếng nói phụ thuộc vào nhiều yếu tố nên việc thu nhận, phân tích các đặc trưng của tiếng nói là việc không dễ dàng. Ở đây, chúng ta có thể nêu ra một số yếu tố khó khăn cho bài toán nhận dạng tiếng nói:

 Khi phát âm, người nói thường nói nhanh chậm khác nhau.  Các từ được nói thường dài ngắn khác nhau.  Một người cùng nói một từ nhưng ở hai lần phát âm khác nhau thì cho

kết quả phân tích khác nhau.

 Mỗi người có một chất giọng riêng được thể hiện thông qua độ cao của

âm, độ to của âm, cường độ âm và âm sắc.

 Những yếu tố như nhiễu của môi trường, nhiễu của thiết bị thu…

1.3.2. Các phương pháp nhận dạng tiếng nói

Như đã đề cập trong phần trên, hiện nay có ba phương pháp chủ yếu

được sử dụng trong nhận dạng tiếng nói là: Phương pháp âm học - ngữ âm học Phương pháp nhận dạng mẫu Phương pháp ứng dụng trí tuệ nhân tạo

1.3.2.1. Phương pháp âm học ngữ âm học

Hướng tiếp cận âm học và ngữ âm học dựa trên lý thuyết về âm học-ngữ âm học. Theo lý thuyết này thì trong bất kỳ một ngôn ngữ nào cũng luôn tồn tại một số hữu hạn các đơn vị ngữ âm phân biệt và những đơn vị ngữ âm đó được đặc trưng bởi các thuộc tính vốn có trong tín hiệu tiếng nói, hoặc trong phổ của nó thông qua thời gian.

 Bước đầu tiên: Tín hiệu tiếng nói sau khi số hoá được đưa qua một bộ “đo” các đặc tính của tiếng nói, mục đích là nhằm biểu diễn xấp xỉ các đặc tính của tiếng nói thay đổi theo thời gian. Bước này là cần

Nguyên lý hoạt động của hệ thống này như sau:

15

 Bước thứ hai: Là bước tách các đặc tính của tiếng nói nhằm biến đổi các số đo phổ tín hiệu thành một tập các đặc trưng mô tả các đặc tính âm học của các đơn vị ngữ âm khác nhau. Các đặc trưng đó có thể là: Tính chất âm mũi, âm xát, vị trí các formant…

 Bước thứ ba: Là bước phân đoạn và gán nhãn. Ở bước này hệ thống

thiết cho hầu hết các hệ thống nhận dạng theo các hướng tiếp cận khác nhau.

 Bước cuối cùng: Từ các khối ngữ âm thu được sau bước phân đoạn

nhận dạng cố gắng tìm các vùng âm thanh ổn định và gán cho mỗi vùng này một nhãn phù hợp với đặc tính của đơn vị ngữ âm. Đối với một hệ thống nhận dạng theo hướng âm học ngữ âm học thì bước này là tâm điểm và khó thực hiên nhất. Do đó có rất nhiều chiến lược đã được sử dụng để giới hạn phạm vi của các điểm phân đoạn và xác xuất gán nhãn.

và gán nhãn, người ta dựa vào một số nguyên tắc lựa chọn để kết hợp các khối ngữ âm này thành các từ, câu nhận dạng.

Có rất nhiều vấn đề đối với một hệ thống nhận dạng tiếng nói theo hướng âm học - ngữ âm học những vấn đề này bằng nhiều cách khác nhau nó ảnh hưởng tới hiệu quả của một hệ thống nhận dạng. Những vấn đề đó là:

+ Cần có sự hiểu biết về các đặc tính âm học của các đơn vị ngữ âm. Sự hiểu biết này không thể đầy đủ cho tất cả nhưng đối với một số trường hợp đơn giản thì có thể cho kết quả tốt.

+ Sự chọn lựa các đặc trưng dựa của tiếng nói hầu hết tùy thuộc vào một khía cạnh cụ thể mà ta quan tâm. Chúng được chọn theo trực giác không tối

ưu và đầy đủ ý nghĩa.

+ Việc thiết kế của các hệ thống phân lớp âm thanh cũng không tối ưu và

hầu hết nó đều dựa trên cây nhị phân quyết định…

Không có một thủ tục tự động lựa chọn ngưỡng chính xác để làm căn cứ cho việc gán nhãn. Trên thực tế không có một phương pháp lý tưởng để gán nhãn cho tập huấn luyện. Từ đó, hướng tiếp cận âm học - ngữ âm học muốn áp dụng được vào thực tế cần phải có thêm nhiều nghiên cứu nữa.

16

1.3.2.2. Phương pháp nhận dạng mẫu

Phương pháp nhận dạng mẫu sử dụng trực tiếp mẫu tiếng nói mà không

cần phải xác định các đặc trưng hay phân đoạn một cách rõ ràng. Trong hầu hết các hệ thống, nhận dạng mẫu bao gồm hai bước.

Bước đầu tiên: là bước huấn luyện. Ở bước này dựa trên nhiều phiên bản khác nhau của mẫu cần nhận dạng, hệ thống tạo ra các mẫu tham chiếu dùng để so sánh với mẫu cần nhận dạng ở bước sau.

Bước thứ hai: là bước nhận dạng. Ở bước này mẫu cần nhận dạng được so sánh với các mẫu tham chiếu để xác định xem nó “giống” mẫu tham chiếu nào nhất. Mẫu tham chiếu giống nó nhất chính là kết quả nhận dạng.

Tư tưởng của phương pháp này là nếu như có đủ các phiên bản khác nhau của mẫu cần nhận dạng thì thông qua bước huấn luyện hệ thống có thể xác định một cách chính các đặc trưng của mẫu. Việc xác định các đặc trưng thông qua bước huấn luyện được gọi là phân lớp mẫu. Hiện nay, có hai phương pháp nhận dạng mẫu được sử dụng rộng rãi đó là mô hình Markov ẩn và mô hình sử dụng mạng nơron. Sơ đồ khối của một hệ thống nhận dạng mẫu như sau:

Hình 1-4: Hệ thống nhận dạng tiếng nói theo phương pháp nhận dạng mẫu Những bước cần thực hiện đối với một hệ thống nhận dạng mẫu là:

17

Trích chọn các đặc trưng: Ở bước này dựa trên một số biện pháp

phân tích để xác định các đặc trưng của các mẫu. Đối với các hệ thống nhận

dạng tiếng nói có hai phương pháp cơ bản là phương pháp phân tích hệ số phổ

theo thang độ Mel (MFCC) và phương pháp phân tích mã hóa dự đoán tuyến

tính (LPC).

Huấn luyện mẫu: Ở bước này, hệ thống dựa trên các đặc trưng của

các mẫu trong cùng một lớp được tạo ra ở bước trước để tạo nên các mẫu

tham chiếu của hệ thống. Ví dụ trong hệ thống nhận dạng từ, để xây dựng nên

một từ tham chiếu chúng ta phải thu từ đó lặp đi lặp lại nhiều lần, sau đó trích

chọn các đặc trưng của những từ này nhằm tạo một từ tham chiếu cho hệ

thống.

Phân lớp mẫu: Trong bước này, mẫu cần nhận dạng được so sánh với

các mẫu tham chiếu. Ở đây, cần một thủ tục để tính khoảng cách cục bộ, và

quy chuẩn thời gian giữa các mẫu.

Quyết định logic: Sau bước phân lớp mẫu ta có được điểm đánh giá

sự “giống” nhau giữa mẫu cần nhận dạng và mẫu tham chiếu. Những thông số

điểm này sẽ được sử dụng để đưa ra quyết định là mẫu nào “giống” với mẫu

cần nhận dạng nhất.

Đặc điểm của một hệ thống nhận dạng mẫu:

Hiệu năng của hệ thống rất nhạy cảm với số mẫu dữ liệu có trong tập

huấn luyện. Thông thường, khi mà số mẫu có trong tập huấn luyện càng nhiều

thì hiệu năng nhận của hệ thống càng cao.

Mẫu tham chiếu rất nhạy cảm với môi trường thu âm và đặc tính của

đường truyền do đặc tính phổ của tiếng nói chịu tác động của đường truyền và nhiễu nền.

Không cần có những hiểu biết đặc biệt về ngôn ngữ chính vì vậy hệ

thống này ít phụ thuộc vào kích thước từ điển, cú pháp và ngữ nghĩa.

18

Khối lượng tính toán trong thủ tục huấn luyện hoặc nhận dạng tỷ lệ

tuyến tính với số mẫu dùng huấn luyện hoặc nhận dạng.

1.3.2.3. Phương pháp ứng dụng trí tuệ nhân tạo

Phương pháp này là sự lai tạo của hai phương pháp trên với mục đích

khai thác tối đa ưu điểm của từng phương pháp. Phương pháp này điều chỉnh

thủ tục nhận dạng theo cách mà con người sử dụng trí tuệ của mình trong việc

quan sát, phân tích và cuối cùng đưa ra một quyết định dựa trên các thông số

đặc trưng về âm học. Những kỹ thuật thường được sử dụng cùng với các

phương pháp này là:

Sử dụng hệ chuyên gia để phân đoạn và gán nhãn do đó bước chủ yếu và khó nhất được thực hiện đơn giản hơn so với một hệ thống nhận dạng chỉ dựa vào hướng tiếp cận âm học - ngữ âm học thuần tuý.

Sử dụng mạng nơron để học mối quan hệ giữa các đơn vị ngữ âm và tất cả các đầu vào đã nhận biết (bao gồm âm học, ngôn ngữ học, cú pháp, ngữ nghĩa…), sau đó sử dụng mạng này để nhận dạng.

 Kiến thức về âm học: Nhằm để phân tích phổ và xác định đặc tính

Mục đích của việc sử dụng hệ chuyên gia là nhằm tận dụng các nguồn kiến thức của con người vào hệ thống nhận dạng. Các nguồn kiến thức đó bao gồm:

 Kiến thức về từ vựng: Sử dụng để kết hợp các khối ngữ âm thành

âm học của các mẫu tiếng nói đầu vào.

 Kiến thức về cú pháp: Nhằm kết hợp các từ thành các câu cần nhận

các từ cần nhận dạng.

 Kiến thức về ngữ nghĩa: Nhằm xác định tính logic của các câu đã

dạng.

được nhận dạng.

Sự kết hợp các nguồn kiến thức phụ thuộc vào hệ chuyên gia mà hệ

thống nhận dạng sử dụng.

Có nhiều cách khác nhau để có thể kết hợp các nguồn kiến thức. Cách thông dụng nhất là xử lý từ dưới lên, trong đó các tiến trình ở mức thấp nhất

19

(như trích chọn đặc trưng, giải mã ngữ nghĩa) được đặt trên các tiến trình cao hơn (như giải mã từ vựng, mô hình ngôn ngữ) theo một tiến trình tuần tự nhằm giảm việc xử lý trong mỗi tầng xuống mức nhỏ nhất có thể. Sơ đồ khối của phương pháp này như sau:

Hình 1-6: Tích hợp tri thức trong nhận dạng tiếng nói

1.4. Nhận dạng tiếng Việt

1.4.1. Một số đặc điểm ngữ âm tiếng Việt

Theo [1], đặc điểm dễ thấy là tiếng Việt là ngôn ngữ đơn âm

(monosyllable - mỗi từ đơn chỉ có một âm tiết), không biến hình (cách đọc,

cách ghi âm không thay đổi trong bất cứ tình huống ngữ pháp nào). Tiếng

Việt hoàn toàn khác với các ngôn ngữ Ấn-Âu như tiếng Anh, tiếng Pháp là

các ngôn ngữ đa âm, biến hình.

Theo thống kê trong tiếng Việt có khoảng 6000 âm tiết. Nhìn về

mặt ghi âm: âm tiết tiếng Việt có cấu tạo chung là: phụ âm - vần. Ví dụ âm tin

20

có phụ âm t, vần in. Phụ âm là một âm vị và âm vị này liên kết rất lỏng lẻo

với phần còn lại của âm tiết (ví dụ hiện tượng nói lái).

Vần trong tiếng Việt lại được cấu tạo từ các âm vị nhỏ hơn, trong đó

có một âm vị chính là nguyên âm.

Ngoài ra, tiếng Việt là ngôn ngữ có thanh điệu. Hệ thống thanh điệu

gồm 6 thanh: bằng, huyền, sắc, hỏi, ngã, nặng.

Thanh điệu trong âm tiết là âm vị siêu đoạn tính (thể hiển trên toàn bộ

âm tiết). Do đó đặc trưng về thanh điệu thể hiện trong tín hiệu tiếng nói

không rõ nét như các thành phần khác của âm tiết.

Sự khác biệt về cách phát âm tiếng Việt rất rõ rệt theo giới, lứa tuổi và

đặc biệt là theo vị trí địa lí (giọng miền Bắc, miền Trung và miền Nam khác

nhau rất nhiều).

1.4.2. Những thuận lợi và khó khăn đối với nhận dạng tiếng Việt

1.4.2.1. Thuận lợi

• Tiếng Việt là ngôn ngữ đơn âm, số lượng âm tiết không quá lớn. Điều này sẽ giúp hệ nhận dạng xác định ranh giới các âm tiết dễ dàng hơn nhiều. Đối với hệ nhận dạng các ngôn ngữ Ấn-Âu (tiếng Anh, tiếng Pháp...) xác định ranh giới âm tiết (endpoint detection) là vấn đề rất khó và ảnh hưởng lớn đến kết quả nhận dạng.

• Tiếng Việt là ngôn ngữ không biến hình từ. Âm tiết tiếng Việt ổn định, có cấu trúc rõ ràng. Đặc biệt không có 2 âm tiết nào đọc giống nhau mà viết khác nhau. Điều này sẽ dễ dàng cho việc xây dựng các mô hình âm tiết trong nhận dạng; đồng thời việc chuyển từ phiên âm sang từ vựng (lexical decoding) sẽ đơn giản hơn so với các ngôn ngữ Ấn-Âu.

1.4.2.2. Khó khăn

• Tiếng Việt là ngôn ngữ có thanh điệu (6 thanh). Thanh điệu là âm vị siêu đoạn tính, đặc trưng về thanh điệu thể hiện trong tín hiệu tiếng nói không rõ nét như các thành phần khác của âm tiết.

21

• Cách phát âm tiếng Việt thay đổi nhiều theo vị trí địa lí. Giọng địa phương trong tiếng Việt rất đa dạng (mỗi miền có một giọng đặc trưng).

• Hệ thống ngữ pháp, ngữ nghĩa tiếng Việt rất phức tạp, rất khó để áp dụng vào hệ nhận dạng với mục đích tăng hiệu năng nhận dạng. Hệ thống phiên âm cũng chưa thống nhất.

• Các nghiên cứu về nhận dạng tiếng Việt cũng chưa nhiều và ít phổ biến. Đặc biệt khó khăn lớn nhất là hiện nay chưa có một bộ dữ liệu chuẩn cho việc huấn luyện và kiểm tra các hệ thống nhận dạng tiếng Việt.

Chương này đã giới thiệu một cách tổng quan về xử lý tiếng nói và

nhận dạng tiếng nói cùng các phương pháp nhận dạng đã được sử dụng. Nhận

dạng tiếng nói là một ứng dụng quan trọng của xử lý tiếng nói đã được đưa

vào nhiều lĩnh vực của đời sống. Một hệ thống nhận dạng bao gồm nhiều

khâu và chi tiết từng khâu sẽ được trình bày chi tiết trong các chương sau.

22

Chương 2

MÔ HÌNH NHẬN DẠNG TIẾNG NÓI

Hiện nay có rất nhiều phương pháp nhận dạng tiếng nói. Mô hình

Fujisaki được ứng dụng rộng rãi trong hệ thống của tiếng Nhật, mô hình

MFGI được ứng dụng trong tiếng Đức, mô hình HMM (Hidden Markov

Models), mô hình sử dụng mạng nơron,… Trong khuôn khổ Luận văn này tác

giả lựa chọn mô hình sử dụng mạng nơron để huấn luyện và nhận dạng tiếng

nói.

2.1. Các kiểu mô hình mạng nơron

Cách thức kết nối các nơron trong mạng xác định kiến trúc (topology)

của mạng. Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức

là mỗi nơron đều được kết nối với tất cả các nơron khác, hoặc kết nối cục bộ

(partially connected) chẳng hạn chỉ kết nối giữa các nơron trong các tầng

khác nhau. Người ta chia ra hai loại kiến trúc mạng chính:

Tự kết hợp (auto associative): là mạng có các nơron đầu vào cũng là

các nơron đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp.

Hình 2-1: Mạng tự kết hợp

23

Kết hợp khác kiểu (hetero associative): là mạng có tập nơron đầu

vào và đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP:

Multi Layer Perceptron), mạng Kohonen, … thuộc loại này.

Hình 2-2: Mạng kết hợp khác kiểu

Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback

connections) từ các nơron đầu ra tới các nơron đầu vào hay không, người ta

chia ra làm 2 loại kiến trúc mạng.

Kiến trúc truyền thẳng (feed forward architecture): là kiểu kiến trúc

mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu

vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt

của nơron. Các mạng nơron truyền thẳng cho phép tín hiệu di chuyển theo

một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ

không ảnh hưởng tới tầng đó. Các mạng kiểu Perceptron là mạng truyền

thẳng.

Hình 2-3: Mạng truyền thẳng

24

Kiến trúc phản hồi (Feedback architecture): Là kiểu kiến trúc mạng

có các kết nối từ nơron đầu ra tới nơron đầu vào. Mạng lưu lại các trạng thái

trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào

mà còn phụ thuộc vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc

loại này.

Hình 2-4: Mạng phản hồi

2.1.1. Perceptron

Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, nhận

đầu vào là vector có các thành phần là các số thực và đầu ra là một trong hai

giá trị +1 hoặc -1.

Hình 2-5: Perceptron

Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số

các thành phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào

25

hàm truyền (Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của

hàm truyền sẽ là đầu ra của mạng.

Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có

thể phân chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu

phẳng). Nó cũng phân loại đúng đầu ra các hàm AND, OR và các hàm có

dạng đúng khi n trong m đầu vào của nó đúng (n ≤ m). Nó không thể phân

loại được đầu ra của hàm XOR.

2.1.2. Mạng nhiều tầng truyền thẳng (MLP)

Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng

nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng

quát là mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính

đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn.

Hình 2-6: Mạng MLP tổng quát

Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:

Đầu vào là các vector (x1, x2, ..., xp) trong không gian p chiều, đầu

ra là các vector (y1, y2, ..., yq) trong không gian q chiều. Đối với các bài toán

phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân

loại. Xét ví dụ trong bài toán nhận dạng chữ số: với mỗi mẫu ta lưu tọa độ

(x,y) của 8 điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu

26

này vào một trong 10 lớp tương ứng với 10 chữ số 0, 1, …, 9. Khi đó p là kích

thước mẫu và bằng 8 x 2 = 16; q là số lớp và bằng 10.

Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền

trước nó.

Đầu ra của nơron tầng trước là đầu vào của nơron thuộc tầng liền sau

nó.

Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơron nhận

tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả

(là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơron thuộc

tầng ẩn thứ nhất; các nơron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và

gửi kết quả đến tầng ẩn thứ 2;…; quá trình tiếp tục cho đến khi các nơron

thuộc tầng ra cho kết quả.

Một số kết quả đã được chứng minh:

Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một

mạng MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid.

Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng

sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính

cho các nơron tầng ra với sai số nhỏ tùy ý.

Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử

dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho

các nơron tầng ra.

2.2. Huấn luyện mạng nơron

2.2.1. Các phương pháp học

Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một

cách nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai.

Một mạng nơron được huấn luyện sao cho với một tập các vector đầu

vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó.

27

Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện

(training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện

(training example). Quá trình huấn luyện bản chất là sự thay đổi các trọng số

liên kết của mạng. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần

tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ

cho ra vector đầu ra y như mong muốn

Có ba phương pháp học phổ biến là học có giám sát (supervised

learning), học không giám sát (unsupervised learning) và học tăng cường

(Reinforcement learning):

Học có giám sát: Là quá trình học có sự tham gia giám sát của một

“thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra

một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện

trên tất cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì

(có thể viết hơi khác đi) và hỏi em đó đây là chữ gì?

N

K x R

Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D =

N

) là vector đặc trưng N {(x,t) | (x,t) ∈ [IR , ..., x , x ]}, trong đó: x = (x 2 1

K

) là vector mục tiêu K chiều , ..., t , t chiều của mẫu huấn luyện và t = (t 2 1

tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán

trên mạng như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai

số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ

nhất. Chẳng hạn mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối

quan hệ trên tập các mẫu huấn luyện (x, t).

Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước.

Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao

cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.

Học không giám sát: Là việc học không cần có bất kỳ một sự giám

sát nào.

28

Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho ) là vector đặc trưng của , x )}, với (x 1 N , ..., x , x 2 dưới dạng: D = {(x 1 , ..., x N 2

mẫu huấn luyện. Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau.

Như vậy với học không giám sát, số lớp phân loại chưa được biết

trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể

có các lớp phân loại khác nhau.

Học tăng cường: đôi khi còn được gọi là học thưởng-phạt (reward-

penalty learning), là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ

thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được.

Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các

trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không

thích hợp sẽ được giảm xuống. Do đó học tăng cường là học theo nhà phê

bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher).

2.2.2. Học có giám sát trong các mạng nơron

Học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y,

trong đó X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó.

Các mẫu (x, y) với x = (x1, x2, ..., xn) ∈ X, y = (yl, y2, ..., ym) ∈ Y được cho

trước. Học có giám sát trong các mạng nơron thường được thực hiện theo các

bước sau:

B1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n+1) nơron vào (n nơron cho biến vào và 1 nơron cho ngưỡng x0), m nơron đầu ra, và khởi tạo các trọng số liên kết của mạng.

B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng

B3: Tính vector đầu ra o của mạng

B4: So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi.

29

B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở

lần tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn.

B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái hội tụ. Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách

dùng nhiều nhất là sử dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình phương (MSE: mean-square error): Err = (o- y)2/2;

Có hai loại lỗi trong đánh giá một mạng nơron. Thứ nhất, gọi là lỗi rõ

ràng (apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một

mạng đã được huấn luyện. Thứ hai, gọi là lỗi kiểm tra (test error), đánh giá

khả năng tổng quá hóa của một mạng đã được huấn luyện, tức khả năng phản

ứng với các vector đầu vào mới. Để đánh giá lỗi kiểm tra chúng ta phải biết

đầu ra mong muốn cho các mẫu kiểm tra.

Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron

có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết

được thay đổi trong suốt thời gian học. Trong đó tiêu biểu nhất là thuật toán

lan truyền ngược.

2.2.3. Thuật toán lan truyền ngược

Ta sử dụng một số kí hiệu sau:

 j: nơron thứ j (hay nút thứ j)  Xj: vector đầu vào của nút thứ j  Wj: vector trọng số của nút thứ j  xji: đầu vào của nút thứ j từ nút thứ i  wji: trọng số trên xji  bj: ngưỡng tại nút thứ j  oj: đầu ra của nút thứ j  tj: đầu ra mong muốn của nút thứ j  Downstream(j): Tập tất cả các nút nhận đầu ra của nút thứ j làm

một giá trị đầu vào.

 η: tốc độ học  f: hàm truyền với f(x) = 1 / (1 + e-x)

30

Thuật toán lan truyền ngược được mô tả như sau:

Input: - Mạng feed-forward với ni đầu vào, nh nút ẩn và no đầu ra.

- Hệ số học η - Tập dữ liệu huấn luyện D = {là vector đầu vào, là vector

đầu ra mong muốn}. Output: Các vector trọng số

Thuật toán:

Bước 1: Khởi tạo trọng số bởi các giá trị ngẫu nhiên nhỏ. Bước 2: Lặp lại cho tới khi thỏa mãn điều kiện kết thúc. Với mỗi mẫu, thực hiện các bước sau: b2.1 Tính đầu ra oj cho mỗi nút j: oj = f(d – bj) với d = Σxjiwji b2.2 Với mỗi nút k thuộc tầng ra, tính δk theo công thức:

δk = (tk – ok)(1 – ok)ok

b2.3 Với mỗi nút h thuộc tầng ẩn, tính δh theo công thức:

δh = oh(1 – oh) Σδkwkh với k ∈ Downstream(j)

b2.4 Cập nhật: wji = wji + Δwji

Trong đó Δwji = ηδkxji

2.3. Các vấn đề trong xây dựng mạng MLP

2.3.1. Chuẩn bị dữ liệu

2.3.1.1. Kích thước mẫu

Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối với một bài toán cho trước. Hai yếu tố quan trọng ảnh hưởng đến kích thước mẫu:

Dạng hàm đích: khi hàm đích càng phức tạp thì kích thước mẫu cần tăng.

Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích

thước mẫu cần tăng.

Đối với mạng truyền thẳng (feed forward), cho hàm đích có độ phức

tạp nhất định, kèm một lượng nhiễu nhất định thì độ chính xác của mô hình

luôn có một giới hạn nhất định. Có thể cần tập mẫu vô hạn để đạt đến giới hạn

chính xác. Nói cách khác độ chính xác của mô hình là hàm theo kích thước

31

tập mẫu. Khi kích thước mẫu tăng, độ chính xác sẽ được cải thiện - lúc đầu

nhanh, nhưng chậm dần khi tiến đến giới hạn.

Dạng tổng quát của mối liên hệ giữa sai số và kích thước mẫu như sau:

Hình 2-7: Mối liên hệ giữa sai số và kích thước mẫu

Trong thực hành thường gặp phải 2 vấn đề sau :

Đối với hầu hết bài toán thực tế, mẫu bị ràng buộc chặt chẽ với dữ

liệu có sẵn. Ta thường không có được số lượng mẫu mong muốn.

Kích thước mẫu cũng có thể bị giới hạn bởi bộ nhớ hoặc khả năng lưu trữ của máy tính. Nếu tất cả các dữ liệu đồng thời được giữ trong bộ nhớ suốt thời gian luyện, kích thước bộ nhớ máy tính sẽ bị chiếm dụng nghiêm trọng.

Nếu lưu trữ trên đĩa sẽ cho phép dùng mẫu lớn hơn nhưng thao tác đọc

đĩa từ thế hệ này sang thế hệ khác khiến cho tiến trình chậm đi rất nhiều.

Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện.

Những tập mẫu lớn hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi

kích thước của mẫu, mỗi thế hệ luyện sẽ tốn thời gian khoảng gấp đôi, nhưng

số thế hệ cần luyện sẽ giảm đi một nửa. Điều này có nghĩa là kích thước mẫu

(cũng có nghĩa là độ chính xác của mô hình) không bị giới hạn bởi thời gian

luyện.

Luật cơ bản là: Sử dụng mẫu lớn nhất có thể sao cho đủ khả năng lưu

trữ trong bộ nhớ trong (nếu lưu trữ đồng thời) hoặc trên đĩa từ (nếu đủ thời

gian đọc từ đĩa).

32

2.3.1.2. Mẫu con

Trong xây dựng mô hình cần chia tập mẫu thành 2 tập con: một để xây

dựng mô hình gọi là tập huấn luyện (training set), và một để kiểm nghiệm mô

hình gọi là tập kiểm tra (test set). Thông thường dùng 3/4 mẫu cho huấn luyện

và 1/4 cho kiểm tra. Điều này là để tránh tình trạng quá khớp (over fitting).

2.3.2. Xác định các tham số cho mạng

2.3.2.1. Chọn hàm truyền

Không phải bất kỳ hàm truyền nào cũng cho kết quả như mong muốn.

Để trả lời cho câu hỏi “hàm truyền như thế nào được coi là tốt?” là điều

không hề đơn giản. Có một số quy tắc khi chọn hàm truyền như sau:

Không dùng hàm truyền tuyến tính ở tầng ẩn. Vì nếu dùng hàm truyền tuyến tính ở tầng ẩn thì sẽ làm mất vai trò của tầng ẩn đó: Xét tầng ẩn

thứ i:

Tổng trọng số ni = wiai-1 + bi

ai = f(ni) = wf ni +bf (hàm truyền tuyến tính)

Khi đó: tổng trọng số tại tầng thứ (i + 1)

ni+1 = wi+1ai + bi+1

= wi+1[wf ni +bf] + bi+1

= wi+1 [wf(wiai-1 + bi) + bf] + bi+1

= Wai-1 + b

Như vậy ni+1 = Wai-1 + b, và tầng i đã không còn giá trị nữa.

Chọn các hàm truyền sao cho kiến trúc mạng nơron là đối xứng (tức

là với đầu vào ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng

nơron không đối xứng thì giá trị đầu ra sẽ lệch sang một bên, không phân tán

lên toàn bộ miền giá trị của output. Điều này có thể làm cho mạng rơi vào

trạng thái bão hòa, không thoát ra được.

33

Trong thực tế người ta thường sử dụng các hàm truyền dạng – S. Một

hàm s(u) được gọi là hàm truyền dạng – S nếu nó thỏa mãn 3 tính chất sau:

– s(u) là hàm bị chặn: tức là tồn tại các hằng số C1 ≤ C2 sao cho: C1 ≤

s(u) ≤ C2 với mọi u.

– s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi u tăng. Do

tính chất thứ nhất, s(u) bị chặn, nên s(u) sẽ tiệm cận tới giá trị cận trên khi u

dần tới dương vô cùng, và tiệm cận giá trị cận dưới khi u dần tới âm vô cùng.

– s(u) là hàm khả vi: tức là s(u) liên tục và có đạo hàm trên toàn trục

số.

Một hàm truyền dạng -S điển hình và được áp dụng rộng rãi là hàm

Sigmoid.

2.3.2.2. Xác định số nơron tầng ẩn

Câu hỏi chọn số lượng nơron trong tầng ẩn của một mạng MLP thế

nào là khó, nó phụ thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết

kế mạng. Nếu tập dữ liệu huấn luyện được chia thành các nhóm với các đặc

tính tương tự nhau thì số lượng các nhóm này có thể được sử dụng để chọn số

lượng nơron ẩn. Trong trường hợp dữ liệu huấn luyện nằm rải rác và không

chứa các đặc tính chung, số lượng kết nối có thể gần bằng với số lượng các

mẫu huấn luyện để mạng có thể hội tụ. Có nhiều đề nghị cho việc chọn số

lượng nơron tầng ẩn h trong một mạng MLP. Chẳng hạn h phải thỏa mãn

h>(p-1)/(n+2), trong đó p là số lượng mẫu huấn luyện và n là số lượng đầu

vào của mạng. Càng nhiều nút ẩn trong mạng, thì càng nhiều đặc tính của dữ

liệu huấn luyện sẽ được mạng nắm bắt, nhưng thời gian học sẽ càng tăng.

Một kinh nghiệm khác cho việc chọn số lượng nút ẩn là số lượng nút

ẩn bằng với số tối ưu các cụm mờ (fuzzy clusters). Phát biểu này đã được

chứng minh bằng thực nghiệm. Việc chọn số tầng ẩn cũng là một nhiệm vụ

khó. Rất nhiều bài toán đòi hỏi nhiều hơn một tầng ẩn để có thể giải quyết tốt.

34

Để tìm ra mô hình mạng nơron tốt nhất, Ishikawa and Moriyama

(1995) sử dụng học cấu trúc có quên (structural learning with forgetting), tức

là trong thời gian học cắt bỏ đi các liên kết có trọng số nhỏ. Sau khi huấn

luyện, chỉ các nơron có đóng góp vào giải quyết bài toán mới được giữ lại,

chúng sẽ tạo nên bộ xương cho mô hình mạng nơron.

2.3.2.3. Khởi tạo trọng

Trọng thường được khởi tạo bằng phương pháp thử sai, nó mang tính

chất kinh nghiệm và phụ thuộc vào từng bài toán. Việc định nghĩa thế nào là

một bộ trọng tốt cũng không hề đơn giản. Một số quy tắc khi khởi tạo trọng:

Khởi tạo trọng sao cho mạng nơron thu được là cân bằng (với đầu vào ngẫu nhiên thì sai số lan truyền ngược cho các ma trận trọng số là xấp xỉ bằng nhau):

|ΔW1/W1| = |ΔW2/W2| = |ΔW3/W3| Nếu mạng nơron không cân bằng thì quá trình thay đổi trọng số ở một

số ma trận là rất nhanh trong khi ở một số ma trận khác lại rất chậm, thậm chí

không đáng kể. Do đó để các ma trận này đạt tới giá trị tối ưu sẽ mất rất nhiều

thời gian.

Tạo trọng sao cho giá trị kết xuất của các nút có giá trị trung gian. (0.5 nếu hàm truyền là hàm Sigmoid). Rõ ràng nếu ta không biết gì về giá trị kết xuất thì giá trị ở giữa là hợp lý. Điều này cũng giúp ta tránh được các giá trị thái quá.

Thủ tục khởi tạo trọng số thường được áp dụng:

– B1: Khởi tạo các trọng số nút ẩn (và các trọng số của các cung liên

kết trực tiếp giữa nút nhập và nút xuất, nếu có) giá trị ngẫu nhiên, nhỏ, phân

bố đều quanh 0.

– B2: Khởi tạo một nửa số trọng số của nút xuất giá trị 1, và nửa kia giá

trị -1.

35

2.3.3. Vấn đề lãng quên (catastrophic forgetting)

Catastrophic forgetting là vấn đề một mạng quên những gì nó đã học

được trong các mẫu trước khi đang học các mẫu mới. Nguyên nhân là do sự

thay đổi các trọng số theo các mẫu mới, nếu như các mẫu cũ trong một thời

gian không được đưa vào huấn luyện. Để tránh điều này, ta thường thực hiện

việc huấn luyện luân phiên giữa mẫu cũ và mẫu mới.

Hình 2-8: Huấn luyện luân phiên trên hai tập mẫu

Xét ví dụ mạng được huấn luyện luân phiên với hai tập mẫu A và B

(hình 2-8). Tại mỗi chu kỳ mạng sẽ học tập mẫu A sau đó học tập mẫu B. Khi

bước vào chu kỳ thứ hai, lỗi lúc bắt đầu học tập mẫu A cao hơn là ở chu kỳ

thứ nhất khi vừa học xong tập A. Điều này là do giữa hai lần học tập mẫu A

mạng đã học tập mẫu B. Tuy nhiên nếu xét trên cả chu kỳ thì lỗi huấn luyện

sẽ giảm xuống. Tức là lỗi lúc bước vào chu kỳ thứ ba sẽ nhỏ hơn lúc bước

vào chu kỳ thứ hai.

Có nhiều phương pháp để huấn luyện dữ liệu mới. Chẳng hạn sau khi

một số mẫu mới được học, một vài mẫu cũ được chọn ngẫu nhiên trong số các

mẫu trước đó để đưa vào học. Vấn đề sẽ khó khăn hơn khi các mẫu cũ không

còn nữa. Khi đó các mẫu giả (pseudo examples) có thể được sử dụng để lưu

giữ các trọng số càng gần các trọng số trước càng tốt.

36

2.3.4. Vấn đề quá khớp

2.3.4.1. Khái niệm quá khớp

Vấn đề quá khớp xảy ra khi mạng được luyện quá khớp (quá sát) với

dữ liệu huấn luyện (kể cả nhiễu), nên nó sẽ trả lời chính xác những gì đã được

học, còn những gì không được học thì nó không quan tâm. Như vậy mạng sẽ

không có được khả năng tổng quát hóa.

Về mặt toán học, một giả thuyết (mô hình) h được gọi là quá khớp nếu

 Error train (h) < Error train (h')  Error test (h) > Error test (h')

tồn tại giả thuyết h' sao cho:

2.3.4.2. Giải quyết quá khớp

Vấn đề quá khớp xảy ra vì mạng có năng lực quá lớn. Có 3 cách để hạn

chế bớt năng lực của mạng:

– Hạn chế số nút ẩn

– Ngăn không cho mạng sử dụng các trọng số lớn

– Giới hạn số bước luyện

Khi mạng được luyện, nó chuyển từ các hàm ánh xạ tương đối đơn

giản đến các hàm ánh xạ tương đối phức tạp. Nó sẽ đạt được một cấu hình

tổng quát hóa tốt nhất tại một điểm nào đó. Sau điểm đó mạng sẽ học để mô

hình hóa nhiễu, những gì mạng học được sẽ trở thành quá khớp. Nếu ta phát

hiện ra thời điểm mạng đạt đến trạng thái tốt nhất này, ta có thể ngừng tiến

trình luyện trước khi hiện tượng quá khớp xảy ra.

Ta biết rằng, chỉ có thể để đánh giá mức độ tổng quát hóa của mạng

bằng cách kiểm tra mạng trên các mẫu nó không được học. Ta thực hiện như

sau: chia mẫu thành tập mẫu huấn luyện và tập mẫu kiểm tra. Luyện mạng với

tập mẫu huấn luyện nhưng định kỳ dừng lại và đánh giá sai số trên tập mẫu

kiểm tra. Khi sai số trên tập mẫu kiểm tra tăng lên thì quá khớp đã bắt đầu và

ta dừng tiến trình luyện.

37

Chú ý rằng, nếu sai số kiểm tra không hề tăng lên, tức là mạng không

có đủ số nút ẩn để quá khớp. Khi đó mạng sẽ không có đủ số nút cần thiết để

thực hiện tốt nhất. Do vậy nếu hiện tượng quá khớp không hề xảy ra thì ta cần

bắt đầu lại nhưng sử dụng nhiều nút ẩn hơn.

38

Chương 3

QUÁ TRÌNH TIỀN XỬ LÝ TIẾNG NÓI

Tiếng nói trong thế giới thực thu được từ microphone sẽ được số hóa

thành các tín hiệu rời rạc. Tín hiệu thu được sau đó là dữ liệu tiếng nói ở mức

thô. Dữ liệu biểu diễn ở giai đoạn này chưa thể hiện được các thông tin ngữ

nghĩa đặc trưng và thường chứa nhiễu từ môi trường. Do vậy, trước khi có thể

được đưa vào huấn luyện mô hình hay nhận dạng, dữ liệu tiếng nói thô cần

phải trải qua các bước tiền xử lý nhằm loại bỏ nhiễu cũng như rút trích ra các

đặc trưng cần thiết cho quá trình huấn luyện và nhận dạng. Nhiệm vụ chính

của quá trình này là: Phát hiện tiếng nói từ tín hiệu âm thanh thu nhận được;

Tiến hành phân tích và trích chọn đặc trưng của tiếng nói.

3.1. Phát hiện tiếng nói

Một khâu mà bất cứ một hệ thống nhận dạng tiếng nói nào cũng cần phải có là khâu phát hiện tiếng nói. Ở khâu này ta thực hiện công việc phân tách tín hiệu tiếng nói với thành phần khác.

Một trong những nhân tố quan trọng nhất trong các giải thuật phát hiện tiếng nói là chọn tham số sử dụng để tách tín hiệu tiếng nói với các tín hiệu khác. Có ba tham số thường được dùng nhất hiện nay trong các giải thuật phát hiện tiếng nói: Năng lượng ngắn hạn, tốc độ đi qua điểm không, lượng thông tin.

3.1.1. Năng lượng ngắn hạn

Nm

E

1  mnWnx ( )(

Giả sử ta có tín hiệu tiếng nói x(n), khung mà ta cần nghiên cứu bắt đầu từ mẫu thứ n và có N mẫu trong khung đó khi đó hàm năng lượng ngắn hạn của tín hiệu tiếng nói được tính như sau:

 2)

m

mn 

(3.1)

39

)(nW là một hàm cửa sổ. Dạng thường sử dụng là cửa sổ hình

Trong đó



Nn

)( nW

chữ nhật có dạng như sau :

0

Nn 

01   

(3.2)

Một của sổ có độ rộng lớn tương đương một bộ lọc thông thấp băng hẹp, muốn năng lượng ngắn hạn phản ánh được biên độ ngắn hạn của tín hiệu thì phải dùng cửa sổ nhỏ.

Muốn năng lượng ngắn hạn thay đổi kịp tốc độ biến đổi của các âm trong tiếng nói chúng ta phải dùng cửa sổ nhỏ, nhưng nếu quá nhỏ thì năng lượng ngắn hạn không phản ánh được năng lượng trung bình của tín hiệu.

3.1.2. Tốc độ đi qua điểm không

N

Tham số thứ hai là tốc độ đi qua điểm không của tín hiệu tiếng nói. Tốc độ đi qua điểm không là thông tin về tần số tiếng nói, đặc biệt là tín hiệu băng hẹp. Nếu tỉ lệ này lớn thì tần số của tín hiệu tiếng nói lớn. Tham số này được tính như sau:

Z

|

sgn(

( inx



))1

sgn(

( inx 

|))

n

i

0

(3.3)

x(n)

0

sgn(

( nx

))

với sgn(x(n)) được định nghĩa như sau:

1

x(n)

0

1   

(3.4)

3.1.3. Lượng thông tin

Gần đây trong một số hệ thống nhận dạng tiếng nói người ta có sử dụng tham số Entropy của tín hiệu tiếng nói trong việc phát hiện điểm đầu/cuối của tiếng nói. Việc áp dụng tham số này đã đem lại một hiệu quả nhất định dưới

đây là cách tính tham số này. Để tính được Entropy của một khung tín hiệu tiếng nói ta cần thực hiện ba bước sau:

3.1.3.1. Tính FFT

Tín hiệu tiếng nói từ miền thời gian được chuyển sang miền tần số bằng

cách thực hiện phép biến đổi Fourier. Công thức tính như sau:

40

X

(  )

njenx  )(

n



(3.5)

3.1.3.2. Mật độ xác suất của phổ năng lượng

Hàm mật độ phân bố xác suất phổ năng lượng của tín hiệu được tính như

)

p

,

sau:

i

i fs (

)

k

k

fs ( M 1 

(3.6) i=1….. M

trong đó:

s(fi) là phổ năng lượng của thành phần tần số fi M là số điểm tính FFT.

( fs

 0)

f

250

, f Hz

3750

Hz

Trước khi tính tiếp bước ba có một số thủ thuật được sử dụng nhằm tăng tính phân tách của hàm phân bố xác suất giữa tín hiệu tiếng nói và tín hiệu khác.

i

i

i

p

0

p

9.0

i

i

(3.7)

3.1.3.3. Tính Entropy

Sau khi tính được hàm phân bố xác suất của phổ năng lượng ta tính

M

H



p

log(

p

)

Entropy của tín hiệu theo công thức.

i

j

j

j

1

(3.8)

 

3.1.4. Giải thuật phát hiện tiếng nói

Trước khi tiến hành viết một giải thuật để phát hiện tiếng nói, chúng ta

cần phải quyết định:

 Khởi tạo: Coi 100ms đầu tiên của tín hiệu thu được là khoảng lặng.

- Sử dụng tham số nào - Ngưỡng cho tham số đó là bao nhiêu Dưới đây là một giải thuật phát hiện tiếng nói sử dụng kết hợp hai tham số là năng lượng ngắn hạn và tốc độ đi qua điểm không. Sử dụng giải thuật này ta có thể xác định ngưỡng một cách tự động.

 Tính giá trị trung bình IZC và độ lệch chuẩn  của tham số tốc

độ đi qua điểm không.

41

IZCT

min(

IFT

,

IZC

 )*2

 Tính ngưỡng tốc độ đi qua điểm không IZCT theo công thức sau:

IMX

max(

( nE

)),

IMN

min(E(n))

n

0,1,...,

SIL_LEN

(IMX

-

IMN)

IMN

I2)

 I1  I2 ITL ITU

* 0.03 IMN *4  min(I1,  *5 ITL

 Tìm khung có năng lượng lớn hơn ITL đánh dấu nó như là điểm có

 Tính năng lượng cho từng khung  Tính ngưỡng năng lượng ITL và ITU theo trình tự sau:

 Nếu khung sau s có năng lượng lớn hơn ITL thì nó sẽ là khung bắt đầu tiếng nói. Còn nếu có năng lượng nhỏ hơn ITL thì phải tìm lại s.  Tìm khung có năng lượng nhỏ hơn ITU, khung này là khung kết

thể bắt đầu tiếng nói, gọi nó là s.

 Kết quả phát hiện tiếng nói ở các bước trên có thể chưa chính xác,

thúc tiếng nói.

cần phải điều chỉnh chúng theo cách sau:  Từ khung bắt đầu tiếng nói ta tìm ngược về phía trước 250ms. Đếm số khung có tốc độ đi qua điểm không vượt quá ngưỡng IZCT. Nếu có từ 3 khung trở lên thì dịch chuyển vị trí bắt đầu về khung có tốc độ đi qua điểm không vượt quá IZCT gần s nhất. Ngược lại s vẫn giữ nguyên vị trí.

 Thực hiện tương tự đối với điểm kết thúc tiếng nói.

Giải thuật này đã được cài đặt trong chương trình và nó cho kết quá khá

tốt với tham số IFT chọn là 25/độ dài của frame.

3.2. Phân tích cepstral thông qua thang độ mel

Gần đây trong bộ tiền xử lý của một số hệ thống nhận dạng tiếng nói có sử dụng một phương pháp khác để phân tích các tham số của tiếng nói. Phương pháp này có tên là phân tích Cepstral thông qua thang độ mel (MFCC). Phương pháp này đã cho hiệu quả nhất định.

42

3.2.1. Mô hình tính toán các hệ số MFCC

Trong phần này sẽ mô tả toàn bộ chuỗi xử lý trả về các đặc trưng của tín

hiệu. Lược đồ thể hiện trên hình 3-1 sẽ trả về hệ số phân tích phổ tần MFCC.

Hình 3-1: Sơ đồ khối tính toán các hệ số MFCC

Mỗi khối trong chuỗi sẽ được mô tả chi tiết ở các mục sau. Mặc dù hiện nay có rất nhiều mô hình xử lý song mô hình trên là mô hình có độ chính xác cao hơn đồng thời độ phức tạp tính toán cũng nhỏ hơn so với các mô hình khác.

3.2.2. Quá trình tiền xử lý tín hiệu

3.2.2.1. Bộ lọc thích nghi

Tín hiệu tiếng nói sau khi số hoá được đưa qua một bộ lọc thích nghi để làm phẳng phổ của tín hiệu. Bộ lọc thích nghi này thường là bộ lọc thông cao và có thể thực hiện ở cả trong miền thời gian và miền tần số. Trong miền thời gian ta có công thức sau:

~ x i

x i

ax i

 1

(3.9)

hệ số a nằm trong khoảng [0. 9, 1. 0]. Giá trị thường chọn của nó là 0. 95.

43

3.2.2.2. Chuẩn hóa biên độ

Sau khi qua bộ lọc hiệu chỉnh tín hiệu được chuẩn hóa để có biên độ nằm

~ x i

trong khoảng [-1. 0, 1. 0], theo công thức sau:

~ x i

max

|~| x

j

0

,...,

N

 1

j

i=0, …, N-1 (3.10)

3.2.2.3. Phân khung

ij}{yY

MxW

y

j

 W ,0

1

i

 M ,0

1

Tín hiệu sau khi qua bộ lọc, chuẩn hoá được phân thành M khung, mỗi frame có W mẫu và trồng nên nhau V mẫu. Giá trị của V thường là 20 đến 50% giá trị của W. Sau khi phân khung ta được một ma trận Y có M hàng, mỗi hàng là một frame tiếng nói. Ta có công thức sau:

ij

 ~ x  jVi

, (3.11)

3.2.2.4. Lấy cửa sổ

j

 W ,0

1

i

 M ,0

1

Mỗi khung tiếng nói được nhân với một hàm cửa sổ nhằm làm giảm tính gián đoạn trong miền thời gian của phổ do các hoạt động của con người tạo ra. Ta có:

y  ij

wy ij

j

(3.12)

Hàm cửa sổ thường sử dụng là cửa sổ Hamming được mô tả trong công

mW

1 

)

)

thức:

( mr k

(~)(~ mnxnx k k

, m = 0, 1,. . , p (3.13)

n

0

3.2.2.5. Phổ năng lượng

Khung tiếng nói sau khi được nhân trọng số sẽ được tính FFT, sau bước tính FFT ta thu được phổ của tín hiệu và khi đó phổ năng lượng của tín hiệu

fft

(

y

2|)

i

 M ,0

1

được tính như sau:

s  | i

i

(3.14)

Kết quả của bước này ta thu được ma trận S có kích thước M x U với U

là số điểm tính FFT cho một frame.

44

3.2.2.6. Băng lọc Mel

Băng lọc Mel là một dãy các băng lọc dạng tam giác trồng nên nhau với

tần số cắt của mỗi bộ lọc được xác định bởi tần số trung tâm của hai bộ lọc kề với nó. Mô hình này được xây dựng dựa trên nghiên cứu cho rằng tai con

W

người không cảm nhận theo thang tuyến tính mà nó chỉ tuyến tính với những tâng số dưới 1000Hz và theo thang logarit với các tần số khác. Nếu chúng ta coi tần số fmin = 20Hz và fmax là một phần hai tần số lấy mẫu thì khi đó băng lọc mel được định nghĩa như sau:



 

1 f

f

max

min

I

  (

f

f

)

(3.15)

l

min

l

I

  (

f

f

)

(3.16)

c

min

c

I

  (

f

f

)

(3.17)

r

min

h

f

f

j 

min

l

l

c

) I 

I 

j ( 

f

f

1 

c

f

f

f

j 

(3.18)

ij

min

c

c

r

) I 

I 

j ( 

f

l 1 

f

h

, j j

l

r

I 

I 

    1   c  0  

(3.19)

Một sự xấp xỉ thường được sử dụng trong tỉ lệ Mel đối với băng lọc là các băng lọc theo thang tuyến tính và có giải thông bằng nhau ứng với tần số dưới 1000Hz và biến thiên theo thang logarit ứng với tần số trên 1000Hz, ở đó tần số trung tâm của mỗi bộ lọc bằng 1. 1 lần tần số trung tâm của bộ lọc trước nó.

Sau bước trên ta sẽ có một ma trận F kích thước K x U với K là số bộ lọc

trong băng lọc còn U là số điểm tính FFT.

3.2.2.7. Logarit các hệ số năng lượng qua băng lọc

U

 1

j

,0

K

1

p

log

)

Phổ năng lượng của tín hiệu được đưa qua băng lọc. Kết quả ở bước này ta thu được một ma trận P kích thước M x K với các phần tử của nó được tính như sau:

ij

fs ik

jk

1 10  ( A

0

k

j

i

,0

M

1

(3.20)

45

U

1 

A

f

j

jk

k

0

(3.21)

3.2.2.8. Biến đổi Cosine rời rạc ngược

Phép biến đổi Cosine rời rạc ngược được sử dụng để làm trực giao các vector năng lượng đã qua bộ lọc. Do bước biến đổi trực giao này thông tin của

các vector phổ năng lượng được nén xướng các thành phần đầu tiên và chúng ta có thể rút ngắn các vector này xuống còn L thành phần. Kết quả của bước

1 

j

,0

L

1

q

p

cos((

k

)5.0

này ta thu được một ma trận Q có kích thước là M x L. với các phần tử được đinh nghĩa như sau:

ij

ik

1 K  K

 j ) L

0

k

i

,0

M

1

(3.22)

L được chọn nhỏ hơn K và thường từ 9 đến 15.

ijq là các hệ số Cepstral của

Sau 8 bước trên ta thu được các phần tử

tiếng nói.

3.2.2.9. Cepstral có trọng số

j

,0

L

1

 (

)1

ˆ q

sin

q

Bởi vì độ nhạy của các hệ số cepstral bậc thấp làm cho phổ toàn bộ bị đổ dốc, và độ nhạy của các hệ số cepstral bậc cao gây ra nhiễu, nên người ta thường sử dụng cửa sổ cepstral để cực tiểu hóa các độ nhạy này. Công thức biểu diễn các hệ số cepstral có trọng số là :

ij

ij

L 2

 j L

  

  

i

,0

M

1

 1  

  

(3.23)

3.2.2.10. Đạo hàm Cepstral theo thời gian

ˆ( q

ˆ q

)

(

i

  )

j

(

i

  )

j

Để nâng cao chất lượng nhận dạng, ta đưa thêm các giá trị đạo hàm theo thời gian của các hệ số MFCC vào trong vector tham số tiếng nói, các giá trị đó được tính theo công thức sau :

j

,0

L

1

  1

ˆ q 

ij

i

,0

M

1

2 

(3.24)

 2  1 

Trong đó  là độ dài cửa sổ tính delta, thường chọn là 2 hoặc 3.

46

Tóm lại, sau các bước trên với mỗi khung ta thu được một vector có 2L

thành phần biểu diễn tham số đặc trưng của tiếng nói.

Qua thực nghiệm cho thấy nếu sử dụng hệ số MFCC thì trong môi

trường nhiễu hiệu quả của nó sẽ cao hơn sử dụng hệ số LPC, còn trong môi

trường bình thường thì kết quả của chúng là gần như nhau. Tuy nhiên nếu

dùng hệ số LPC thì tốc độ nhận dạng nhanh hơn so với việc sử dụng MFCC.

Do vậy tuỳ điều kiện cụ thể và mục tiêu mà ta sử dụng phương pháp tương

ứng.

3.3. Lượng tử hóa vector

Sau bước phân tích và trích trọn đặc trưng của tiếng nói thì lượng

thông tin cần phải xử lý của tiếng nói đã giảm đi khá nhiều, tuy nhiên đây

chưa phải là biện pháp giảm tối thiểu lượng thông tin cần xử lý. Trong các hệ

thống nhận dạng tiếng nói còn có thêm một bước nữa để giảm hơn nữa lượng

thông tin của tiếng nói cần phải xử lý đó là phương pháp Lượng tử hóa

vector. Có hai bước cần phải làm để thực hiện lượng tử hóa vector là:

Bước 1: Xây dựng codebook. Các vector đặc trưng của tập huấn luyện

được phân thành các nhóm, trong mỗi nhóm này chọn ra nhân của nhóm để

làm một từ mã, tập các từ mã này tạo thành một sách mã (codebook).

Bước 2: Lượng tử hóa. Mỗi một vector đầu vào được so sánh với các vector có trong codebook để tìm ra từ mã nào “giống” với nó nhất. Sau khi lượng tử hóa thay vì phải thao tác với một vector chúng ta chỉ cần thao tác với chỉ số của từ mã giống với vector đó nhất, do đó làm giảm đáng kể khối lượng tính toán cần thực hiện.

Những phần tử sau đây sẽ giúp ta hoàn thành hai bước trên

3.3.1. Tập vector huấn luyện

Tập vector huấn luyện là tập vector đặc trưng của các mẫu tiếng nói dùng để tạo ra các mẫu tham chiếu trong nhận dạng. Để việc tạo codebook có hiệu quả thì tập các mẫu này phải được thu thập từ các nguồn sau:

47

Nhiều người nói khác nhau về tuổi tác, giới tính, giọng điệu, tốc độ… Thu âm trong nhiều điều kiện khác nhau, trong môi trường yên tĩnh,

trong phòng làm việc, qua điện thoại…

Qua các thiết bị chuyển đổi, các hệ thống truyền thông như micro, điện

thoại cầm tay…

3.3.2. Khoảng cách giữa hai vector

0 v

v

i

j

,

)

d

( vvd i

j

ij

0 v

v

i

j

   

Khoảng cách giữa hai vector phổ vi và vj được định nghĩa như sau  (3.25)

Đối với các vector LPC hoặc các vector được tính ra từ nó thì thường sử

L

2

dụng là khoảng cách cepstral được tính như sau:

)

(

c

c

)

2 ( Ld c

n

' n

n

1 

'

(3.26)

nc ,

nc là thành phần thứ n của hai vector cepstral tương ứng. L

Trong đó

là số thành phần có trong một vector cepstral.

Trong các ứng dụng nhận dạng tiếng nói, ngoài việc sử dụng tính khoảng

L

2

(

nc

nc

)

cách như trên người ta còn sử dụng khoảng cách cepstral có trọng số như:

2 )( Ld c

n

' n

n

1 

L

2

(3.27)

)( cnw

(3.28)

 )( cnw

2 )( Ld c

n

' n

n

1 

h

sin(

,1

L

n

nw )(

với w(n) thường sử dụng có dạng như sau:

 n ) L

n

,0

n

L

 1    0

(3.29)

giá trị của h thường sử dụng là L/2. Việc sử dụng khoảng cách Cepstral có trọng số sẽ giúp loại bỏ ảnh hưởng của các thành phần không mong muốn trong phổ LPC (như nhiễu) mà vẫn giữ lại được toàn bộ các đặc tính trong cấu trúc của các formant.

48

3.3.3. Nhân của một tập vector

y của L vector này có thể tính như sau:

L

y

Giả sử ta có L vector xi khi đó nếu sử dụng khoảng cách cepstral thì nhân

ix

1 L

i

1 

(3.30)

3.3.4. Phân cụm các vector

Giả sử trong tập huấn luyện của ta có L vector bây giờ ta cần xây dựng

nên một codebook có M vector. Để làm được điều này ta cần có một thủ tục để phân L vector huấn luyện thành M cụm và sau đó từ mỗi cụm này ta chọn

 Khởi tạo: Chọn tuỳ ý M vector (Có thể không nằm trong tập huấn

ra một phần tử đại diện là nhân của cả cụm. Thủ tục sau đây sẽ giúp ta thực hiện được nhiệm vụ này (Thủ tục này thường được gọi là giải thuật Lloyd hay giải thuật phân cụm K-trung bình)

 Tìm láng giếng gần nhất: Với mỗi một vector trong tập huấn luyện ta tìm ra một vector trong codebook “giống” nó nhất và gán vector này về nhóm tương ứng với từ mã đó

luyện) dùng làm các từ khởi tạo trong codebook.

Cập nhật nhân: Sử dụng công thức tìm nhân ở trên để cập nhật lại nhân

 Lặp: Lặp lại bước hai và bước ba cho đến khi trung bình khoảng cách của các vector trong cùng một nhóm đến nhân của nhóm nhỏ hơn một ngưỡng nào đó.

của từng nhóm.

Thủ thục lặp trên chạy tốt, song trên thực tế còn có một thủ tục khác có lợi hơn trong việc thiết kế một codebook có kích thước là M. Thủ tục này được gọi là thủ tục tách nhị phân, nó gồm các bước như sau:

Bước 1: Thiết kế codebook có một vector. Vector này là nhân của tập

vector huấn luyện.

Bước 2: Nhân đôi kích thước của codebook bằng cách tách mỗi một

y

y

1(

 )

 n

n

vector yn trong codebook theo luật sau:

y

y

1(

 )

 n

n

(3.31)

49

giá trị của  thường chọn trong khoảng [0. 01, 0. 05].

Bước 3: Sử dụng giải thuật phân nhóm K trung bình ở trên để tìm ra tập

nhân tốt nhất cho codebook vừa được tách ra.

Bước 4: Lặp lại bước hai và bước ba cho đến khi xây dựng được

codebook có kích thước theo yêu cầu.

Chương này đã trình bày cơ sở lý thuyết của các thuật toán trong khâu

tiền xử lý tiếng nói. Tín hiệu sau khi được thu nhận từ micro được lọc thông tin dư thừa ra khỏi tín hiệu tiếng nói (phát hiện tiếng nói). Sau đó, tín hiệu này được trích chọn lấy tín hiệu đặc trưng bằng phương pháp phân tích hệ số phổ tần Mel. Cuối cùng tín hiệu được lượng tử hóa vector để tối thiểu hóa lượng thông tin trước khi đưa vào khâu nhận dạng.

50

Chương 4

ỨNG DỤNG XÂY DỰNG HỆ THỐNG MÔ PHỎNG

NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT BẰNG MẠNG NƠRON MLP TRÊN MATLAB

4.1. Giới thiệu

Khi công nghệ xử lý tiếng nói chưa được đưa vào ứng dụng một cách

rộng rãi, việc trao đổi dữ liệu giữa người và máy chỉ thông qua một số

phương tiện như: chuột, bàn phím, bút… với tốc độ thấp. Nhờ ứng dụng nhận

dạng tiếng nói, con người có thể “trao đổi” với máy bằng ngôn ngữ tự nhiên

giúp cho việc trao đổi dữ liệu hiệu quả và tự nhiên hơn. Tuy nhiên, do kết quả

của quá trình xử lý và nhận dạng tiếng nói vẫn ở mức độ chính xác chưa cao

nên việc ứng dụng trong thực tế vẫn là một vấn đề cần được quan tâm nghiên

cứu nhiều hơn nữa.

Trong phạm vi Luận văn của mình, tác giả nghiên cứu ứng dụng

chương trình mô phỏng nhận dạng tiếng nói tiếng Việt bằng mô hình sử dụng

mạng nơron MLP và thực hiện trên môi trường Matlab. Hệ thống mô phỏng

trong luận văn này có thể huấn luyện, nhận dạng được một số từ tiếng Việt

với mục đích mô phỏng quá trình huấn luyện và nhận dạng tiếng nói tiếng

Việt trên môi trường Matlab. Phần ứng dụng của hệ thống là nhập điểm (bằng

tiếng nói) rồi xuất kết quả ra Excel trên cơ sở bộ từ vựng đơn âm đã huấn

luyện với 11 chữ số (điểm số chẵn – từ 0 đến 10)

4.2. Xây dựng hệ thống nhận dạng demo

4.2.1. Mô tả chung về hệ thống

Hệ thống nhận dạng được xây dựng trong luận văn này dựa trên

phương pháp nhận dạng mẫu, mô hình sử dụng mạng nơron làm cơ cấu nhận

dạng. Hệ thống bao gồm các chức năng sau:

51

 Thu âm và tiền xử lý tiếng nói:  Huấn luyện: Huấn luyện từng từ đơn lẻ, chức năng này gồm:

+ Huấn luyện mạng nơron từ bộ dữ liệu đã được chuẩn bị trước

+ Huấn luyện mạng nơron trực tiếp từ micro (phụ thuộc người nói),

 Nhận dạng tiếng nói: có thể nhận dạng từng từ đơn lẻ hoặc các từ

chức năng này sẽ huấn luyện hữu hạn một số từ đơn lẻ.

liên tiếp, chức năng này trong hệ thống gồm:

+ Nhận dạng từ tệp âm thanh (tiếng nói)

 Ứng dụng: xuất kết quả nhận dạng được (bảng điểm) ra Excel.

+ Nhận dạng trực tiếp từ micro

4.2.2. Sơ đồ khối của hệ thống

Hình 4-1: Sơ đồ khối hệ thống nhận dạng tiếng nói các chữ số tiếng Việt bằng mạng nơron MLP trên môi trường Matlab

52

4.2.3. Thu thập và tiền xử lí tín hiệu tiếng nói

Thu thập và tiền xử lí tín hiệu tiếng nói ở giai đoạn huấn luyện được

thực hiện bằng phương pháp thủ công, sử dụng trực tiếp trên Matlab. Ở chức

năng thu âm để chuẩn bị dữ liệu cho huấn luyện (gồm 11 chữ số), mỗi từ

được ghi âm, loại bỏ nhiễu và được ghi vào một file với tên file là số tương

ứng. (Ví dụ để thu âm làm dữ liệu huấn luyện cho số 1 tác giả luận văn đã

chuẩn bị bộ dữ liệu bao gồm các file có tên là: 1_1.wav, 1_2.wav, …,

1_30.wav…).

Quá trình thu âm và tiền xử lý, chuẩn bị dữ liệu cho huấn luyện mạng

nơron được tác giả luận văn thực hiện như sau:

Bước 1: Thu âm từ micro (mặc định thu âm ở tần số 8000Hz trong

thời gian khoảng 2s).

Kết quả mẫu âm thanh thu được ở tần số 8000Hz trong thời gian

khoảng 2s với từ ‘hai’:

Hình 4-2: Từ ‘hai’ được thu âm – bao gồm nền nhiễu

Bước 2:

- Tiến hành chia mẫu âm thanh thu được thành các frame với kích thước

mỗi frame khoảng 10ms.

- Kiểm tra ngưỡng của mỗi farm:

o Nếu ngưỡng của frame nhỏ hơn hoặc bằng ngưỡng nền nhiễu:

bỏ qua – (xóa)

53

o Ngược lại, nếu ngưỡng của frame lớn hơn ngưỡng nền nhiễu 

frame này có chứa tín hiệu tiếng nói  giữ lại

Bước 3: Lưu lại mẫu âm thanh chỉ bao gồm tín hiệu tiếng nói (.wav)

Ví dụ: trong Matlab, với từ ‘hai’ thu được ban đầu có kích thước là:

16000 (2s ở tần số 8000Hz), sau khi loại bỏ nhiễu, kích thước còn lại là: 2840

Hình 4-3: Từ ‘hai’ sau khi đã loại bỏ nền nhiễu

Do sử dụng thiết bị thu âm là micro được tích hợp trên microphone

nên chất lượng âm thanh còn chứa nền nhiễu khá cao. Để có thể tách được

tiếng nói ra khỏi nền nhiễu được tốt nhất thì việc xác định ngưỡng của nhiễu

được đặt lên hàng đầu. Trong luận văn này, tác giả đã xác định ngưỡng nhiễu

(es) bằng cách đơn giản là bật micro thu âm trong khoảng 2s (nhưng không có

tiếng nói, chỉ thu âm thanh môi trường), từ kết quả thu được, tác giả sử dụng

hàm max(wav) trong Matlab để có được giá trị ngưỡng nhiễu es.

Hình 4-4: Xác định nền nhiễu từ môi trường thu âm

Với đoạn âm thanh thu được trong 2s ta có thể tính được ngưỡng nền

nhiễu là: max(abs(wav)) = 0.0053

54

Với mục đích chuẩn bị bộ dữ liệu để huấn luyện mạng nơron nhận

dạng 11 chữ số (từ 0 đến 10), do điều kiện và thời gian nên tác giả luận văn đã

chuẩn bị và tự thu âm mỗi số 30 file. Như vậy, bộ dữ liệu huấn luyện này mới

chỉ có thể tạm thời đáp ứng cho hệ thống nhận dạng phụ thuộc người nói. Để

xây dựng hệ thống nhận dạng độc lập người nói thì bộ dữ liệu này là khá lớn,

phải được chuẩn bị công phu hơn rất nhiều.

4.2.4. Trích chọn đặc trưng MFCC

Tác giả luận văn đã sử dụng bộ công cụ VoiceBox để trích chọn đặc

trưng MFCC. Voicebox là một Toolbox của Matlab chuyên về xử lí tiếng nói

do Mike Brookes phát triển. VoiceBox gồm các hàm có thể chia thành một số

• Xử lí file âm thanh (đọc, ghi file wav và một số định dạng file âm

nhóm chức năng sau:

• Phân tích phổ tín hiệu

• Phân tích LPC

• Tính toán MFCC, chuyển đổi spectral - cepstral

• Chuyển đổi tần số (mel-scale, midi,...)

• Biến đổi Fourier, Fourier ngược, Fourier thực...

• Tính khoảng cách (sai lệch) giữa các vector và dãy vector.

• Loại trừ nhiễu trong tín hiệu tiếng nói.

thanh khác)

Tuy nhiên chức năng quan trọng nhất là trích đặc trưng tín hiệu tiếng nói, mà ở đây là 2 loại phổ biến nhất LPC và MFCC. Hàm tính MFCC của tín

mfcc = melcepst(wav,fs,w,nc,p,n,inc,fl,fh)

hiệu trong VoiceBox là hàm melcepst. Cách sử dụng hàm này như sau:

Hàm có rất nhiều tham số, một số tham số quan trọng là: • wav là vector tín hiệu tiếng nói,

fs là tần số lấy mẫu.

55

• nc là số hệ số MFCC cần tính (mặc định là 12).

• p là số bộ lọc mel-scale.

• w là một xâu mô tả các lựa chọn khác: nếu có ‘e’ thì tính thêm log

năng lượng, có ‘d’ thì tính thêm đặc trưng delta.

Lời gọi hàm melcepst sinh ra ma trận mfcc, mỗi dòng của ma trận là

12 hệ số MFCC của một frame. Để kèm thêm log năng lượng và dữ liệu delta

như trong các hệ nhận dạng khác, ta dùng lệnh: mfcc =melcepst(wav,fs,'ed');

Khi đó mỗi dòng của ma trận mfcc là vector 24 hệ số MFCC của

frame tương ứng. Số dòng của ma trận mfcc tùy thuộc vào kích thước của

frame

Hàm melcepst được tác giả sử dụng để trích chọn đặc trưng MFCC.

Mỗi file âm thanh được trích chọn đặc trưng MFCC thành một dãy các vector

mfcc=melcepst(wav, fs, 'e');

MFCC:

Tuy nhiên trong quá trình thu âm các tín hiệu thu được sẽ không ổn

định, có lúc to (ngưỡng cao), lúc nhỏ (ngưỡng thấp hơn) nên để đảm bảo các

wav_chuan=wav./max(abs(wav));

tín hiệu đều ở ngưỡng “chuẩn” ta sẽ chuẩn hóa wav này:

Hình 4-5: wav trước và sau khi chuẩn hóa ở ngưỡng max(wav)=1

56

4.2.5. Tính đầu vào cho mạng

Mỗi file wav sẽ được tính các hệ số đặc trưng để thành 1 đầu vào cho

mạng. Vì các file wav có độ dài ngắn khác nhau nên số dòng các vector đặc

trưng MFCC tương ứng cũng khác nhau. Nhưng số đầu vào của mạng nơron

MLP lại phải cố định. Do đó tác giả thực hiện một biện pháp đơn giản là chia

dãy đặc trưng thành 5 phần đều nhau, tính trung bình của từng phần được 5

dòng rồi chuyển toàn bộ ma trận mfcc thành 1 dòng gồm 5 lần số hệ số đặc

trưng mfcc, đó chính là đầu vào của mạng nơron MLP. Trong luận văn này

tác giả đã thử nghiệm với số hệ số đặc trưng lần lượt là 8,9,10,11,12 nhưng

tác giả luận văn chưa thể nhận xét là lấy bao nhiêu hệ số đặc trưng mfcc là tốt

nhất, nên tác giả đã tạm lấy 8 hệ số đặc trưng để xây dựng hệ thống thử

nghiệm (như vậy vector đầu vào sẽ có 40 phần tử). Hình sau đây mô tả mạng

MLP gồm 40 đầu vào và 11 đầu ra:

Hình 4-6: Mạng MLP gồm 40 đầu vào và 11 đầu ra

Đầu ra mong muốn của dữ liệu huấn luyện xác định đơn giản: là một

vector gồm 11 thành phần (ứng với 11 lớp mẫu). Nếu file tương ứng trong bộ

57

dữ liệu huấn luyện thuộc lớp k, thì thành phần thứ k của vector bằng 1, các

thành phần còn lại bằng 0. Ví dụ hình sau thể hiện 1 vector đầu vào và 1

vector đầu ra để huấn luyện số 1:

Hình 4-7: Vector đầu vào gồm 40 phần tử, vector đầu ra gồm 11 phần tử

Trong hệ thống thử nghiệm, tác giả đã chuẩn bị tập mẫu để huấn luyện

mỗi chữ số là 30 file âm thanh mẫu. Như vậy mỗi chữ số sẽ có 30 vector đầu

vào và 30 vector đầu ra; 11 chữ số sẽ có 330 vector đầu vào với kích thước 40

phần tử (330x40) và 330 vector đầu ra với kích thước 11 phần tử (330x11).

Hình 4-8: Các vector đầu vào và đầu ra để huấn luyện mạng MLP

58

4.2.6. Xây dựng và huấn luyện và thử nghiệm mạng nơron MLP

Xây dựng và huấn luyện và thử nghiệm các mạng có cấu trúc khác

nhau (về số nơron ẩn, kiểu hàm kích hoạt) được tiến hành bằng script như

ketquaktra1=[]; erro1=[]; for hnodekt=1:30; kq=[];tl=[]; inode=40; onode=11; hnode=hnodekt*5; net = mlp(inode, hnode, onode, func, alpha); load data1; [net, error] = mlptrain(net, x, t, loop); %huan luyen mang moi dem=0; for i=1:onode for j=1:10 if i<11 wavfile=['Test\' num2str(i) '_' num2str(j)]; else wavfile=['Test\0_' num2str(j)]; end [ytest, fs]=wavread(wavfile); %Bat dau nhan dang tung file mfcc=wave2mfcc(ytest, fs, round(inode/5)); xnd=chia(mfcc,5); kq1=mlpfwd(net, xnd); [tyle1, id]=max(kq1); if id==i dem=dem+1; %Dem ket qua nhan dang neu KQ dung end; %Nhan dang xong file end end ketquaktra1=[ketquaktra1 ; dem/110]; %tng so tu can nhan dang la 110 erro1=[erro1; error]; end kqerro=[kqerro erro1]; ketquaktra=[ketquaktra ketquaktra1];

sau:

Các tham số mạng như func (kiểu hàm kích hoạt – VD: logistic,

softmax), alpha (cận khởi tạo trọng số - VD: 0.1; 0.5;0.01), loop (số vòng lặp

huấn luyện– VD: 50;100;500;1000), hnode (số lớp ẩn) được thay đổi theo

mỗi cấu trúc mạng. Trong luận văn này tác giả đã thử nghiệm trên các mạng

59

với các tham số khác nhau và thay đổi số lớp ẩn (hnode) rồi kiểm tra kết quả

đạt được.

4.2.7. Sử dụng mạng trong nhận dạng

function [xs, id] = Nhandang(wav, net); mfc = wave2mfcc(wav); % trích MFCC vec = vecavr(mfc, 5); % tính đầu vào out = mlpfwd(net, vec); % tính đầu ra của mạng [xs, id] = max(out); % ??a ra lớp cao nhất

Hàm Nhandang thực hiện nhận dạng với đầu vào cho trước:

4.2.8. Giao diện của hệ thống demo:

4.2.8.1. Giao diện chính của hệ thống

Hình 4-9: Giao diện chính của hệ thống demo

60

Hệ thống demo của luận văn này tạm dừng lại theo hướng hệ thống

nhận dạng phụ thuộc người nói. Hệ thống có thể huấn luyện, nhận dạng cả

trực tuyến (vừa ghi âm vừa huấn luyện, nhận dạng) và ngoại tuyến (huấn

luyện, nhận dạng file đã được ghi âm sẵn). Mỗi lần nhận dạng có thể nhận

dạng được một từ hoặc nhiều từ liên tiếp (câu). Độ chính xác của kết quả

nhận dạng ở mức độ khả quan và chấp nhận được, kết quả này phụ thuộc khá

nhiều vào môi trường thu âm và việc tách nhiễu, trích chọn đặc trưng của dữ

liệu tiếng nói. (Ở đây tác giả của luận văn đặc biệt quan tâm việc xác định

được ngưỡng nhiễu nền của tín hiệu). Nhìn chung nhận dạng từng từ cho kết

quả cao hơn vì hàm tách từ của hệ thống demo này có độ chính xác chưa cao.

4.2.8.2. Chức năng nhận dạng:

Hình 4-10: Chức năng nhận dạng

Chức năng này của hệ thống có thể nhập dạng từ tệp wav ghi âm trước

hoặc nhận dạng trực tiếp từ micro (thu âm xong mới nhận dạng) và cũng có

thể nhận dạng được từng từ đơn hoặc tự tách từ và nhận dạng nhiều từ liên

61

tiếp (nhận dạng câu). Tuy nhiên, kết quả nhận dạng từng từ đơn có độ chính

xác cao hơn.

4.8.2.3. Ứng dụng nhập điểm:

Chức năng này có thể đọc điểm từ micro, nhận dạng rồi xuất sang

Excel. Tác giả đã chuẩn bị 1 file Bảng điểm trên Excel, ở đó đã có danh sách

tên, ngày sinh, công thức tính điểm tổng kết. Nhiệm vụ là phải nhập 3 điểm (2

điểm kiểm tra định kỳ và 1 điểm kiểm tra kết thúc lần 1). Kết quả nhận dạng

là có thể chấp nhận được.

Hình 4-11: Mẫu bảng điểm trên Excel (chưa có điểm)

Ứng dụng này có giao diện như sau:

Hình 4-12: Ứng dụng nhập điểm và xuất sang Excel

62

Hình 4-13: Mẫu bảng điểm trên Excel (đã có điểm)

Ngoài ra trên hệ thống demo tác giả luận văn đã thử nghiệm chức

năng huấn luyện và nhận dạng một số từ trực tiếp – về cơ bản tác giả vẫn sử

dụng phương pháp trích chọn đặc trưng các file âm thanh, gán nhãn rồi tiến

hành huấn luyện, nhận dạng qua mạng MLP.

4.3. Kết quả thử nghiệm

Tác giả luận văn đã thử nghiệm trên bộ dữ liệu gồm 330 file huấn

luyện và 110 file test với mạng MLP sử dụng các hàm kích hoạt, giá trị khởi

tạo trọng số, số nơron lớp ẩn và số vòng huấn luyện ứng với mỗi kiểu mạng

như sau:

Kí hiệu

Hàm kích hoạt

Giá trị khởi tạo trọng số

Số vòng huấn luyện

logistic logistic logistic softmax softmax softmax softmax logistic

0.1 0.1 0.5 0.1 0.1 0.5 0.01 0.01

50 100 50 50 100 50 1000 1000

log01-50 log01-100 slog05-50 sof01-50 sof01-100 sof05-50 sof001-1000 log001-1000

63

Kết quả quá trình thử nghiệm được tổng hợp trong các bảng sau:

hnode

log05 50

5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 TB

sof001 1000 85.45% 96.36% 94.55% 97.27% 93.64% 98.18% 94.55% 96.36% 97.27% 91.82% 97.27% 97.27% 97.27% 97.27% 97.27% 97.27% 97.27% 96.36% 97.27% 97.27% 97.27% 97.27% 97.27% 96.36% 96.36% 97.27% 96.36% 97.27% 96.36% 97.27% 96.21%

sof01 50 53.64% 64.55% 71.82% 64.55% 89.09% 80.00% 92.73% 50.00% 84.55% 90.00% 90.91% 80.91% 92.73% 93.64% 90.91% 91.82% 92.73% 89.09% 88.18% 88.18% 86.36% 90.91% 92.73% 89.09% 95.45% 92.73% 84.55% 95.45% 88.18% 82.73% 84.61%

sof01 100 37.27% 78.18% 48.18% 88.18% 85.45% 85.45% 91.82% 97.27% 98.18% 91.82% 91.82% 94.55% 93.64% 93.64% 90.00% 98.18% 91.82% 90.91% 93.64% 90.91% 88.18% 93.64% 82.73% 99.09% 89.09% 88.18% 89.09% 94.55% 89.09% 89.09% 87.79%

sof05 50 60.91% 40.91% 75.45% 60.00% 63.64% 75.45% 72.73% 88.18% 92.73% 91.82% 87.27% 87.27% 86.36% 81.82% 96.36% 93.64% 90.00% 93.64% 94.55% 89.09% 93.64% 93.64% 95.45% 95.45% 90.00% 95.45% 90.91% 89.09% 90.91% 90.91% 84.91%

log01 50 27.27% 23.64% 44.55% 52.73% 46.36% 78.18% 75.45% 80.91% 89.09% 89.09% 90.91% 74.55% 85.45% 82.73% 94.55% 94.55% 94.55% 91.82% 90.91% 89.09% 84.55% 95.45% 90.91% 93.64% 91.82% 91.82% 93.64% 93.64% 86.36% 89.09% 80.24%

log01 100 25.45% 46.36% 59.09% 69.09% 84.55% 65.45% 90.00% 94.55% 85.45% 90.91% 83.64% 96.36% 94.55% 90.00% 90.00% 96.36% 98.18% 91.82% 95.45% 89.09% 95.45% 98.18% 95.45% 87.27% 94.55% 90.00% 97.27% 90.91% 94.55% 96.36% 85.88%

log001 1000 20.91% 41.82% 31.82% 55.45% 45.45% 77.27% 46.36% 86.36% 73.64% 80.00% 52.73% 89.09% 73.64% 92.73% 72.73% 93.64% 89.09% 90.00% 89.09% 98.18% 92.73% 98.18% 88.18% 98.18% 90.00% 95.45% 92.73% 95.45% 87.27% 96.36% 96.36% 98.18% 91.82% 97.27% 88.18% 92.73% 88.18% 95.45% 97.27% 92.73% 86.36% 95.45% 97.27% 98.18% 90.91% 98.18% 91.82% 97.27% 90.00% 97.27% 96.36% 98.18% 91.82% 97.27% 90.91% 99.09% 96.36% 98.18% 92.73% 97.27% 81.09% 91.36%

Bảng 4.2: Tỷ lệ số từ nhận dạng đúng so với tổng số từ nhận dạng

Biểu đồ sau thể hiện kết quả trung bình trong 2 kiểu mạng sử dụng hàm

kích hoạt “logistic” và “softmax”

64

100%

90%

80%

70%

60%

50%

40%

30%

20%

10%

0%

5

0 1

5 1

0 2

5 2

0 3

5 3

0 4

5 4

0 5

5 5

0 6

5 6

0 7

5 7

0 8

5 8

0 9

5 9

0 0 1

5 0 1

0 1 1

5 1 1

0 2 1

5 2 1

0 3 1

5 3 1

0 4 1

5 4 1

0 5 1

softmax

logistic

1. Phương pháp nhận dạng bằng mạng nơron cho kết quả nhận dạng cao nhất là 99. 09% trên bộ dữ liệu do tác giả tự xây dựng. Như vậy có thể sử dụng mạng nơron làm một cơ cấu nhận dạng khá hiệu quả (ít nhất là đối với hệ thống nhận dạng các chữ số trong luận văn). 2. Mạng sẽ cho kết quả nhận dạng cao nếu xây dựng hợp lí. Không hẳn cứ nhiều nơron lớp ẩn, cứ huấn luyện nhiều là mạng có độ chính xác cao hơn [6]. (Mặc dù việc huấn luyện nhiều đã làm giảm sai số huấn luyện của mạng). Vấn đề sai số huấn luyện thấp, sai số kiểm tra cao xảy ra khi độ tương tự giữa bộ dữ liệu huấn luyện và bộ dữ liệu kiểm tra không lớn. Khi đó mạng nhận dạng rất chính xác trên bộ dữ liệu huấn luyện nhưng kém chính xác hơn nhiều trên bộ dữ liệu kiểm tra.

3. Hàm kích hoạt softmax ổn định hơn hàm logistic: Mặc dù kết quả

Từ kết quả thử nghiệm trên, tác giả luận văn rút ra một số kết luận sau:

nhận dạng không phải là cao nhất nhưng kết quả trung bình lại cao

65

hơn; mức độ ổn định hơn, số nơron ẩn cần dùng thấp hơn khi cho

4. Môi trường Matlab có thể giúp công việc nghiên cứu nhận dạng

kết quả nhận dạng cao nhất.

tiếng nói đơn giản và hiệu quả hơn. Nhờ có Matlab và các bộ công

cụ VoiceBox, NetLab mà việc phát triển hệ thống nhận dạng khá

đơn giản và nhanh chóng, từ Matlab còn có thể xuất kết quả sang

Excel phù hợp với mục đích của nhiều người dùng. (ví dụ: mã

chương trình dùng rất ít lệnh, nhiều phần không cần lập trình).

Những kết luận trên cho thấy khả năng sử dụng mạng nơron và môi

trường Matlab trong nhận dạng tiếng nói có nhiều hứa hẹn. Tuy nhiên để đạt

được kết quả cao hơn, độ chính xác hơn thì phải xây dựng một bộ dữ liệu

chuẩn và có chiến lược xây dựng, huấn luyện, thử nghiệm mạng hợp lí hơn.

4.4. Hướng mở rộng của đề tài

4.4.1. Xây dựng bộ dữ liệu huấn luyện lớn hơn

Như ta đã thấy, bộ dữ liệu là thành phần rất quan trọng đối với hệ

nhận dạng. Hiện tại bộ dữ liệu tác giả đã xây dựng là dùng microphone thu

trực tiếp trên máy tính gồm 330 file để huấn luyện, 110 file để test thử nghiệm

– trên cơ sở 11 từ tiếng Việt – con số này còn quá khiêm tốn. Để có thể có

những kết quả nghiên cứu tốt hơn, tác giả sẽ mở rộng bộ dữ liệu: tăng số

người nói và số từ, đa dạng hoá môi trường ghi âm, trang bị hệ thống thu âm

chuẩn và hiện đại hơn để có chất lượng âm thanh tốt nhất.

4.4.2. Xây dựng phần mềm nhận dạng dưa trên kết quả nghiên cứu

Hệ thống nhận dạng hiện tại của tác giả hiện chỉ được thử nghiệm trên

môi trường Matlab, mới có khả năng nhận dạng một file ghi âm sẵn hoặc

ngay cả khi nhận dạng trực tuyến thì cũng phải thực hiện xong công đoạn thu

66

âm rồi mới đến công đoạn nhận dạng. Trong khi đó để hệ nhận dạng có thể

ứng dụng được tốt trong thực tế thì hệ phải hoạt động ở dạng trực tiếp và liên

tục (tức là vừa ghi âm vừa nhận dạng, chạy như một chương trình hệ thống).

Mục tiêu của tác giả là sau khi thử nghiệm hệ thống cho kết quả cao sẽ xây

dựng một bộ công cụ nhận dạng tiếng nói mà có thể gắn vào các phần mềm

ứng dụng – đây mới là mục đích của nghiên cứu nhận dạng tiếng nói trong

tương lai.

4.4.3. Nghiên cứu các phương pháp xác định đặc trưng khác

Ở nghiên cứu này, việc tách đặc trưng của tín hiệu tiếng nói còn rất

đơn giản (chia frame, tính MFCC, chia 5 phần lấy trung bình cộng). Để nâng

cao kết quả nhận dạng cần tìm những đặc trưng ổn định hơn của tiếng nói và

những phương pháp tách đặc trưng hiệu quả hơn.

4.4.4. Nghiên cứu các phương pháp nhận dạng khác

Các nghiên cứu khác cho thấy hiện tại mô hình Markov ẩn (HMM)

đang cho kết quả nhận dạng cao nhất. Hướng nghiên cứu mới của đề tài là tìm

cách kết hợp mạng nơron và mô hình Markov ẩn nhằm kết hợp ưu điểm của

hai mô hình.

Mặt khác, đối với bộ từ vựng nhỏ thì nhận dạng từ đơn (âm tiết) là

thích hợp. Tuy nhiên với hệ nhận dạng cỡ lớn, nhất là hệ nhận dạng tiếng Việt

hoàn chỉnh (6000 âm tiết) thì chọn đơn vị nhận dạng là âm tiết không hợp lí

lắm. Một hướng nghiên cứu khác của đề tài là nhận dạng đối với đơn vị nhỏ

• Phân biệt được nhiễu nền (khoảng lặng), phụ âm, nguyên âm.

• Nhận dạng phụ âm (phân biệt được các phụ âm khác nhau).

• Nhận dạng nguyên âm (phân biệt được các nguyên âm khác nhau).

• Nhận dạng thanh điệu của âm tiết.

hơn âm tiết là âm vị. Tức là xây dựng các hệ nhận dạng có chức năng:

67

KẾT LUẬN

Với kết quả kiểm tra độ chính xác nhận dạng như trên thì có thể thấy rằng việc áp dụng mô hình Markov ẩn trong nhận dạng tiếng Việt đã cho kết quả khá tốt. Tuy chưa thật sự hoàn hảo nhưng những kết quả thu được tương đối khả quan, từ đó có thể thấy rằng việc áp dụng mô hình mạng nơron MLP trong nhận dạng tiếng Việt là khá phù hợp, nếu đầu tư nghiên cứu nhiều hơn nữa phương pháp này sẽ còn đem lại hiệu quả cao hơn.

Trong chương trình khi chạy vẫn bị nhận dạng nhầm, nguyên nhân dẫn

đến nhận dạng nhầm có thể là:

 Dữ liệu huấn luyện chưa đầy đủ, số từ đem huấn luyện chưa nhiều, chưa thu được từ nhiều người, nhiều nơi; môi trường thu âm còn nhiều nền nhiễu (tiếng ồn),…

 Một số thông số có ảnh hưởng đến độ chính xác nhận dạng như: hàm khởi tạo, số nút ẩn, giá trị kích hoạt trọng số,… có thể được lựa chọn chưa tối ưu.

Các nguyên nhân trên muốn khắc phục được đều cần phải có thời gian, và cần phải bỏ công sức nghiên cứu nhiều hơn nữa. Để hệ thống có thể được ứng dụng rộng rãi hơn cần phải cải tiến và mở rộng thêm. Với thiết kế đã được đưa ra thì hướng phát triển tiếp của tác giả có thể là:

 Tăng số lượng từ trong từ điển nhận dạng  Có thể vừa thu âm, vừa nhận dạng (không phải chờ đến khi thu âm

xong mới nhận dạng)

 Nhận dạng câu (có khả năng phán đoán được từ gần đúng)  Mở rộng ứng dụng của chương trình, không chỉ tích hợp với bộ

Microsoft Office Excel mà có thể nhập dữ liệu vào bất cứ chương trình nào.

Do thời gian làm Luận văn không có nhiều nên tác giả chưa có điều kiện để tìm hiểu hết những hướng tiếp cận mới trong nhận dạng tiếng nói. Hi vọng rằng trong thời gian tới tác giả Luận văn có thể hoàn thiện hơn nữa các nội dung đã đề ra.

TÀI LIỆU THAM KHẢO

Tiếng Việt:

[1] Võ Xuân Hào, ĐH Quy Nhơn - 2009: “Giáo trình ngữ âm tiếng Việt

hiện đại”

[2] TS. Nguyễn Văn Giáp, KS. Trần Việt Hồng - Bộ môn Cơ điện tử - Khoa Cơ khí - Đại học Bách Khoa TPHCM: “Kỹ thuật nhận dạng tiếng nói và ứng dụng trong điều khiển”

[3] Nguyễn Thị Thanh Nga – Đại học Công nghiệp Thái Nguyên: “Nghiên cứu ứng dụng giải thuật di truyền kết hợp với thuật toán ‘vượt khe’ để cải tiến quá trình học của mạng neural MLP có mặt lỗi đặc biệt”

[4] Đặng Ngọc Đức: “Mạng nơron và mô hình Markov ẩn trong nhận

dạng tiếng Việt” – Luận án Tiến sỹ

[5] Nguyễn Hữu Tình, Lê Tấn Hùng, Phạm Ngọc Yến, Nguyễn Thị Lan:

“Cơ sở Matlab và ứng dụng” - Sách NXB KHKT – 2009.

[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 Nơron với mô hình Markov ẩn cho các hệ thống nhận dạng lời Việt” - Luận án Tiến sĩ Kỹ thuật, Thư viện trường ĐHBK Hà Nội.

[7] Đặng Ngọc Đức, Lương Chi Mai: “Tăng cường độ chính xác của hệ thống mạng nơron nhận dạng tiếng Việt” - Tạp chí Bưu chính Viễn thông, số 11 (3/2004).

[8] Phạm Văn Sự, Lê Xuân Thành – Học viện Công nghệ bưu chính viễn

thông: “Bài giảng xử lý tiếng nói” – 2010.

Tiếng Anh:

[9] NEURAL NETWORKS: Basics using MATLAB Neural Network

Toolbox By Heikki N. Koivo ©2008.

[10] Theodoros Giannakopoulos, Department of

Informatics and Telecommunications University of Athens, Greece: “A method for silence removal and segmentation of speech signals, implemented in Matlab”

[11] G. Saha1, Sandipan Chakroborty2, Suman Senapati3

- Department of Electronics and Electrical Communication Engineering: “A New Silence Removal and Endpoint Detection

Algorithm for Speech and Speaker Recognition Applications”

LÝ LỊCH TRÍCH NGANG

Họ và tên: Ngô Văn Cương

Ngày tháng năm sinh: 01/10/1974 Nơi sinh: Bắc Ninh

Địa chỉ liên lạc: Khoa CNTT-Trường CĐ Thủy Sản - Từ Sơn - Bắc Ninh.

Quá trình đào tạo:

1993-1997: Học đại học - Trường ĐH Kinh tế Quốc dân. Chuyên ngành Tin

học kinh tế.

Quá trình công tác:

1997-2000: Giáo viên trường THPT Lý Thái Tổ - Từ Sơn - Bắc Ninh.

2000-nay: Giáo viên trường CĐ Thủy Sản - Từ Sơn - Bắc Ninh.

XÁC NHẬN QUYỂN LUẬN VĂN ĐỦ ĐIỀU KIỆN NỘP LƯU CHUYỂN

CHỦ NHIỆM KHOA CÁN BỘ HƯỚNG DẪN

QUẢN LÝ CHUYÊN NGÀNH (Ký và ghi rõ họ tên)

(Ký và ghi rõ họ tên)

PGS.TS. Bùi Thế Hồng