Вы находитесь на странице: 1из 79

ĐẠI HỌC QUỐC GIA HÀ NỘI

ĐẠI HỌC CÔNG NGHỆ

HỒ VĂN HƯƠNG

NHẬN DẠNG TIẾNG NÓI TRÊN CƠ SỞ MẠNG


NƠRON NHÂN TẠO

LUẬN VĂN THẠC SỸ

Người hướng dẫn: PGS.TS. Nguyễn Quang Hoan

Hà nội - 2005
1

MỞ ĐẦU........................................................................................................ 3
CHƯƠNG 1 ................................................................................................... 5
TỔNG QUAN VỀ TIẾNG NÓI VÀ BÀI TOÁN NHẬN DẠNG ................... 5
1.1 Lịch sử phát triển của nhận dạng tiếng nói ......................................... 5
1.2 Tổng quan về bài toán nhận dạng tiếng nói ........................................ 6
1.3 Một số hệ thống nhận dạng tiếng nói ................................................. 8
1.4 Tổng quan về tiếng nói...................................................................... 9
1.4.1 Âm thanh và tiếng nói ................................................................ 9
1.4.2 Cao độ của âm (pitch) .................................................................. 9
1.4.3 Cường độ (volume) và mức cường độ âm ................................ 10
1.4.4 Độ to của âm .......................................................................... 10
1.4.5 Âm sắc (phonetics) .................................................................... 11
1.5 Mục tiêu của đề tài ........................................................................... 11
CHƯƠNG 2 ................................................................................................. 13
TIẾNG VIỆT VÀ TRÍCH CHỌN ĐẶC TRƯNG......................................... 13
2.1 Khái quát về tiếng Việt ..................................................................... 13
Một số đặc điểm của tiếng Việt........................................................ 13
Cấu trúc âm tiết trong tiếng Việt ......................................................... 14
2.2 Đơn vị cơ bản cho các hệ thống nhận dạng tiếng Việt ........................ 15
2.2.1 Mô hình từ và âm tiết ............................................................... 15
2.2.2 Mô hình âm vị ............................................................................. 16
2.2.3 Mô hình Âm đầu và Vần ............................................................ 16
2.3 Đặc điểm âm tiết và bài toán nhận dạng ............................................. 17
Đặc điểm âm tiết tiếng Việt ................................................................ 17
2.3.2 Âm tiết với bài toán nhận dạng ................................................. 17
2.4 Trích chọn tần số đặc trưng của tiếng Việt ......................................... 18
2.4.1 Cơ chế tạo và thu nhận tiếng nói ............................................ 18
2.4.2 Các hệ số Cepstrum trên thang Mel (MFCC) ......................... 23
2.4.3 Các hệ số Cepstrum của dự đoán tuyến tính (LPCC) ........... 28
2.5 Kết luận.............................................................................................. 32
CHƯƠNG 3 TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO ................. 33
Giới thiệu về mạng nơron ......................................................................... 33
3.1.1 Mô hình nơron sinh vật ............................................................ 35
3.2 Các mô hình mạng nơron và luật học ................................................. 39
3.3 Các ứng dụng của mạng nơron nhân tạo ............................................. 43
3.4 Kết luận.............................................................................................. 47
CHƯƠNG 4 ................................................................................................. 48
MẠNG LAN TRUYỀN NGƯỢC NHẬN DẠNG TIẾNG VIỆT ................. 48
4.1 Phương pháp lan truyền ngược ........................................................... 48
4.2 Ứng dụng mạng lan truyền ngược cho nhận dạng tiếng Việt .............. 51

Nhận dạng tiếng núi trờn cơ sở mạng nơron nhõn tạo


2

4.2.1 Mô hình nhận dạng và phân loại mẫu..................................... 51


4.2.3 Phân tích và đánh giá các tham số của hệ thống nhận dạng 64
CHƯƠNG 5 XÂY DỰNG HỆ THỐNG NHẬN DẠNG .............................. 66
5.1 Kiến trúc hệ thống ............................................................................. 66
5.2 Giao diện chương trình và cách sử dụng............................................. 72
5.3 Kết quả thực nghiệm .......................................................................... 75
5.3.1 Môi trường phát triển chương trình ...................................... 75
Kết luận và định hướng nghiên cứu ............................................................ 77
Tài liệu tham khảo ....................................................................................... 77

Nhận dạng tiếng núi trờn cơ sở mạng nơron nhõn tạo


1

MỞ ĐẦU

Nhận dạng tiếng nói là mong ước của khoa học và con người. Những người
máy có thể hiểu được tiếng người nói và thực thi nhiệm vụ.
Hiện nay, nhận dạng tiếng nói chưa thực sự đáp ứng đầy đủ các yêu cầu thực
tế, song những hệ thống nhận dạng tiếng nói đã có bước phát triển đáng kể.
Trên thế giới, một số hệ thống nhận dạng tiếng nói cỡ lớn có độ chính xác
tương đối cao. Các hệ thống này chủ yếu được phát triển trên nền công nghệ hiện
đại với những máy tính lớn, những vi mạch xử lý tiếng nói chuyên dụng và sử dụng
cơ sở dữ liệu tiếng nói khá hoàn chỉnh, nhưng phần lớn vẫn là xử lý cho tiếng Anh.
Ở Việt Nam, việc tìm hiểu, nghiên cứu và phát triển các hệ thống nhận dạng
tiếng nói còn đang bước đầu có kết quả. Do có những đặc thù riêng của tiếng Việt,
nên việc chọn lựa phương pháp tiếp cận bài toán nhận dạng phù hợp với tiếng Việt
là một vấn đề tương đối khó khăn.
Những năm gần đây, cũng có khá nhiều đề tài nghiên cứu về nhận dạng tiếng
nói tiếng Việt. Các hệ thống nhận dạng tiếng nói thành công nhất chủ yếu dựa trên
khuynh hướng nhận dạng mẫu. Các kỹ thuật nhận dạng mẫu đơn giản như lượng tử
hoá véctơ, hiệu chỉnh thời gian động…, đã được áp dụng khá thành công vào các
chương trình nhận dạng tiếng nói tiếng Việt phát âm rời rạc với số lượng từ vựng
hạn chế.
Tuy nhiên, mục tiêu của nhận dạng tiếng nói tự động bằng máy là phải tiến tới
hệ thống nhận dạng tiếng nói liên tục, kích thước từ điển lớn, không phụ thuộc vào
người nói. Vì vậy, các hệ thống nhận dạng tiếng nói hiện nay thường xây dựng trên
cơ sở áp dụng các kỹ thuật nhận dạng mẫu phức tạp hơn, đó là mô hình Markov ẩn
và mạng nơron nhân tạo đã cho một số thành công nhất định.
Xuất phát từ nhận thức trên, đề tài luận văn Thạc sỹ của em là tìm hiểu, đưa ra
phương pháp và xây dựng một ứng dụng nhận dạng tiếng nói tiếng Việt. Với những
khả năng của mạng nơron nhân tạo trong ứng dụng, đã cho nhiều thành công đáng

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


2

khích lệ. Vì vậy, em đã chọn mạng nơron làm cơ sở cho việc nghiên cứu nhận dạng
tiếng nói tiếng Việt.
Nội dung luận văn gồm 5 chương như sau:
 Chƣơng 1: Tìm hiểu lịch sử việc nghiên cứu nhận dạng tiếng nói, tổng quan
về tiếng nói và nhận dạng tiếng nói.
 Chƣơng 2: Trình bày một số tính chất của tiếng nói như: cơ chế tạo ra tiếng
nói, cơ chế thu tiếng nói, các đặc trưng tiếng nói. Ngoài ra, chương này cũng
đề cập đến kỹ thuật tính hệ số MFCC, là một phương pháp trích chọn đặc
trưng tín hiệu tiếng nói khá phổ biến đã được áp dụng hiệu quả trong các hệ
thống nhận dạng.
 Chƣơng 3: Tìm hiểu tổng quan về mạng nơron, những khái niệm, cấu trúc,
các luật học. Chương này cũng đề cập đến những ứng dụng của mạng nơron
trong nhận dạng và phân lớp.
 Chƣơng 4: Nghiên cứu về mạng nơron lan truyền ngược gồm: cấu trúc,
phương pháp huấn luyện mạng. Chương này cũng đề cập đến cấu trúc cụ thể
của mạng áp dụng cho bài toán nhận dạng tiếng nói tiếng Việt và đồng thời
đánh giá các tham số của hệ thống nhận dạng.
 Chƣơng 5: Xây dựng hệ thống nhận dạng, giao diện chương trình, các kết
quả thực nghiệm.
Cuối cùng là kết luận và định hƣớng phát triển của đề tài.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


3

CHƢƠNG 1

TỔNG QUAN VỀ TIẾNG NÓI VÀ BÀI TOÁN NHẬN DẠNG

1.1 Lịch sử phát triển của nhận dạng tiếng nói

Nhận dạng tiếng nói tự động đã phát triển khoảng 40 năm nay. Những nhân tố
quan trọng giúp cho sự phát triển của công nghệ nhận dạng này có thể kể đến như sự
phát triển của hệ thống phân tích phổ âm thanh (năm 1946) cho phép thể hiện trực
quan các tín hiệu âm, lý thuyết tạo âm thanh tiếng nói của người (năm 1948), sự
xuất hiện và phát triển mạnh mẽ của các hệ thống máy tính số thương mại đầu tiên
trên thế giới (năm 1958).
Các hệ thống nhận dạng đầu tiên có khả năng nhận dạng từ rời rạc và phụ
thuộc người nói. Để phân tích và nhận dạng các chữ số hoặc các từ đơn âm sử dụng
đặc tính trong miền thời gian và các ngân hàng bộ lọc tương tự. Tương tự như vậy,
với phương pháp âm học, hệ thống nhận dạng âm vị phụ thuộc người nói và không
phụ thuộc người nói được thiết kế mặc dù mới cho được kết quả rất khiêm tốn.
Trong thập kỷ 70, với sự phát triển của các thuật toán phân tích tín hiệu như
mô hình dự đoán tuyến tính, so sánh mẫu theo thời gian…công nghệ nhận dạng
tiếng nói tiếp tục có những bước phát triển mạnh mẽ. Với các phương pháp này
những hệ thống nhận dạng với số lượng từ khá lớn được thiết kế.
Trong những năm 60 của thế kỷ 20, nhiều phòng thí nghiệm của nhiều hãng
lớn đã được đầu tư nghiên cứu phát triển các hệ thống nhận dạng tiếng nói các ngôn
ngữ khác nhau. Đến đầu những năm 80, khả năng về kỹ thuật đã cho phép các nhà
nghiên cứu xây dựng các hệ thống nhận dạng được hàng trăm từ rời rạc. Gần đây
công nghệ nhận dạng đã có những bước phát triển vô cùng nhanh chóng.

1.2 Tổng quan về bài toán nhận dạng tiếng nói

Nhận dạng tiếng nói là làm cho máy hiểu, nhận biết được ngữ nghĩa của lời
nói. Đây là quá trình biến đổi tín hiệu âm thanh thu được qua micro, qua các thiết bị

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


4

thu thanh khác… thành một chuổi các từ, sau đó được nhận dạng để sử dụng trong
các ứng dụng điều khiển thiết bị, nhập dữ liệu hoặc soạn thảo văn bản bằng lời…
hoặc đưa đến một quá trình xử lý ngôn ngữ ở mức cao hơn.
Tiếng nói là công cụ truyền đạt thông tin quan trọng của người. Bình thường,
chúng ta không để ý quá trình nhận dạng tiếng nói diễn ra như thế nào? tại sao
chúng ta hiểu được các từ, các câu một cách đơn giản như vậy?
Trên thực tế, quá trình nhận dạng tiếng nói của người là một quá trình phức
tạp. Hiện nay, các nhà nghiên cứu cố gắng tìm hiểu, phân tích và mô phỏng quá
trình nhận dạng tiếng nói của người dưới dạng các chương trình máy tính. Nhưng
đây là vấn đề rất rộng, có liên quan tới nhiều ngành nghiên cứu như sinh học, hoá
học, vật lý ... Do vậy, việc mô phỏng tiếng nói cũng gặp nhiều khó khăn.
Chúng ta có thể thấy được một cách trực quan bài toán nhận dạng tiếng nói qua
hình 1.1.

Hình 1.1 Mô hình nhận dạng tiếng nói


Nhận dạng tiếng nói là quá trình phức tạp bao gồm nhiều khâu biến đổi. Tín
hiệu mà người phát ra là tín hiệu tuơng tự, qua quá trình lấy mẫu, lượng tử hoá và
mã hoá để thu được các mẫu tín hiệu dạng số (tín hiệu mà máy tính có thể hiểu và
xử lý được). Các mẫu tín hiệu này được trích chọn đặc trưng. Những đặc trưng này
sẽ là đầu vào cho quá trình nhận dạng. Sau khi nhận dạng tín hiệu người dùng phát
âm, hệ thống sẽ đưa ra kết quả nhận dạng. Tuỳ thuộc vào mô hình ứng dụng mà cho
chúng ta các dạng đầu ra khác nhau.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


5

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ễ. Ở đâ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. 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, độ to,
cường độ của â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…ảnh hưởng
không nhỏ tới hiệu quả nhận dạng.
Có thể thấy nhận dạng tiếng nói là một lĩnh vực nghiên cứu có nhiều ứng dụng
trong thực tế. Các hệ thống nhận dạng góp phần rất lớn trong việc thúc đẩy phát
triển nhiều ngành. Tuy là lĩnh vực mang ý nghĩa to lớn đó, nhưng việc phát triển các
hệ thống nhận dạng cũng gặp không ít những khó khăn, nhất là ở Việt Nam khi các
kết quả nghiên cứu về nhận dạng tiếng Việt chưa nhiều, cũng như cơ sở hạ tầng cho
việc nghiên cứu còn ít.

1.3 Một số hệ thống nhận dạng tiếng nói

Nhận dạng tiếng nói là vấn đề đã được chia thành hai nhóm riêng biệt dựa trên
mục đích sử dụng khác nhau.

 Một nhóm được sử dụng với mục đích điều khiển thiết bị thông qua giọng nói.

 Một nhóm sử dụng nhằm xử lý từ tiếng nói sang văn bản.


Phân loại các hệ thống nhận dạng tiếng nói sẽ giúp chúng ta có một cái nhìn
trực quan hơn về bài toán. Các hệ thống nhận dạng được phân loại như hình vẽ 1.2.
Có 3 phương pháp phổ biến được sử dụng trong nhận dạng tiếng nói [10]:

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

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


6

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

 Phương pháp sử dụng các kết quả của lĩnh vực trí tuệ nhân tạo.

Hình 1.2 Sơ đồ phân loại các hệ thống nhận dạng tiếng nói

1.4 Tổng quan về tiếng nói

1.4.1 Âm thanh và tiếng nói

Âm thanh thực chất là sự nén và dản một cách tuần hoàn không khí, tạo ra một
sóng đàn hồi dọc. Sóng trong không khí truyền đến tai, tác động vào màng nhĩ, làm
cho màng nhĩ dao động với cùng tần số (dao động cưỡng bức), có khả năng tạo ra
cảm giác âm thanh trong tai khi tần số sóng đạt tới một độ lớn nhất định. Tai người
chỉ có thể cảm nhận được âm thanh trong một khoảng tần số từ 20Hz đến 20000Hz.
Những sóng này gọi là sóng âm hay âm thanh.

Tiếng nói là âm thanh do người phát ra. Khi phát âm, nguồn không khí từ phổi
sẽ kích hoạt bộ phát âm làm căng các dây thanh quản và khi không khí đi qua làm
cho các dây thanh quản này dao động tạo nên âm thanh tiếng nói. Tiếng nói của
người có năng lượng tập trung nằm trong khoảng tần số từ 1000Hz đến 4000Hz.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


7

1.4.2 Cao độ của âm (pitch)

Cao độ của âm thanh là độ cao hay thấp của âm thanh được quyết định bởi sự

rung dây thanh. Dây thanh rung với tần số nhanh sẽ cho những âm cao, dây thanh
rung chậm sẽ cho những âm thấp. Đơn vị đo cao độ ở đây được dùng là Hz, đo số
chu kỳ dao động thực hiện được trong 1 giây, gọi là tần số. Những âm có tần số
khác nhau gây cho ta những cảm giác âm khác nhau. Độ cao của âm mang đặc tính
sinh lý của âm. Nó dựa vào đặc tính của âm là tần số. Do cấu tạo của dây thanh khác
nhau, mà tần số tạo ra phụ thuộc vào giới tính và lứa tuổi của người phát âm (phụ nữ
và trẻ em thường có tần số cao hơn nam giới và người lớn tuổi).

1.4.3 Cƣờng độ (volume) và mức cƣờng độ âm

Cũng như các sóng cơ học khác, sóng âm mang năng lượng tỷ lệ với bình
phương biên độ sóng. Năng lượng đó truyền đi từ nguồn âm đến tai ta.

Cường độ âm (I): là lượng 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, đơn vị đo là
(W/m2).

Đối với tai người, giá trị tuyệt đối của cường độ âm I không quan trọng bằng
giá trị tỷ số của I so với một giá trị Io nào đó được chọn làm chuẩn. Người ta định
nghĩa mức cường độ âm L là logarith thập phân của tỉ số I/Io:

L(B) = lg(I/Io) hoặc L(dB) = 10lg(I/Io) với 1B = 10dB (1.1)

Thực tế, người ta thường dùng đơn vị dB (deciben) hơn là B (ben). Khi L = 1dB, thì
I/Io = 101/10. Đây là mức cường độ nhỏ nhất mà tai ta có thể phân biệt được.

1.4.4 Độ to của âm

Muốn gây cảm giác âm, cường độ âm phải lớn hơn một giá trị cực tiểu nào đó
gọi là ngưỡng nghe. Do đặc điễm sinh lý của tai người, ngưỡng nghe thay đổi tùy

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


8

theo tần số âm. Với các tần số 1000Hz - 5000Hz, ngưỡng nghe khoãng 10-12W/m2.
Với tần số 50Hz, ngưỡng nghe lớn gấp 105 lần.

Nếu cường độ âm lên tới 10W/m2 thì sóng âm gây ra một cảm giác nhức nhối.
Giá trị cực đại này gọi là ngưỡng đau. Miền nằm giữa ngưỡng đau và ngưỡng nghe
gọi là miền nghe được. Khi xác định cường độ âm, người ta lấy Io là ngưỡng nghe
của âm có tần số 1000Hz gọi là tần số âm chuẩn.

Tai người nghe thính nhất với các âm trong miền tần số 1000Hz - 4000Hz, và
nghe âm cao thính hơn nghe âm trầm.

1.4.5 Âm sắc (phonetics)

Âm sắc là sắc thái của âm thanh. Hầu hết các âm thanh trong tự nhiên cũng như
âm thanh trong lời nói đều phức hợp, được tạo thành từ các âm cơ bản, các họa âm
bậc cao về cao độ và cường độ.

Âm sắc là một đặc tính sinh lý của âm, được hình thành trên cơ sở các đặc tính
vật lý của âm là tần số và biên độ. Thực nghiệm chứng tỏ rằng khi một nhạc cụ hoặc
một người phát ra một âm có tần số f1 thì đồng thời cũng phát ra các âm có tần số

f2 = 2f1; f3 = 3f1; f4 = 4f1 …

Âm có tần số f1 gọi là âm cơ bản (hay họa âm thứ nhất), các âm có tần số f2, f3,
f4… gọi là các hoạ âm thứ hai, thứ ba, thứ tư… Tùy theo cấu trúc từng loại nhạc cụ,
hoặc cấu trúc khoang miệng và cổ họng từng người mà trong số các hòa âm cái nào
có biên độ lớn, biên độ nhỏ và cái nào chóng bị tắt đi. Do hiện tượng đó, âm phát ra
không còn là đường sin, mà trở thành một đường phức tạp có chu kỳ. Sự tương quan
giữa âm cơ bản và các hoạ âm mà tạo nên âm sắc khác nhau. Sự khác nhau về âm
sắc là do sự phân bố vị trí môi, lưỡi, vòm miệng của từng người.

1.5 Mục tiêu của đề tài


Cho đến nay, các hệ thống nhận dạng tiếng nói tiếng Việt khá thành công chủ
yếu là dựa trên khuynh hướng nhận dạng mẫu đơn giản. Trong khi đó, phương pháp

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


9

sử dụng trí tuệ nhân tạo vào nhận dạng tiếng nói còn chưa nhiều, mặc dù mạng
nơron là một công cụ rất mạnh và hứa hẹn nhiều ứng dụng mới. Đặc biệt là ở Việt
Nam, việc áp dụng mạng nơron vào các lĩnh vực ứng dụng là rất ít và mới chỉ cho
những kết quả ban đầu. Vì vậy, mục tiêu của đề tài là thử nghiệm mạng nơron lan
truyền ngược để nhận dạng mười từ số đếm tiếng Việt từ: không đến chín.
Cụ thể là:
 Thiết kế mạng nơron lan truyền ngược để nhận dạng các từ tiếng Việt đơn âm
tiết là số đếm và phân tích các tham số của mạng.
 Thử nghiệm nhận dạng với một số người nói.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


10

CHƢƠNG 2

TIẾNG VIỆT VÀ TRÍCH CHỌN ĐẶC TRƢNG

2.1 Khái quát về tiếng Việt

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

Tiếng Việt là loại hình ngôn ngữ đơn lập (ngôn ngữ không biến hình), tức là
mỗi một tiếng (âm tiết) được phát âm tách rời nhau, thể hiện bằng một chữ viết và
có thanh điệu [1]. Đặc điểm này được thể hiện rõ rệt ở tất cả các ngữ âm, từ vựng
và ngữ pháp. Trong tiếng Việt có một loại đơn vị đặc biệt được gọi là “tiếng”. Về
mặt ngữ âm, mỗi tiếng là một âm tiết. Tiếng Việt là tiếng đơn âm có ranh giới cố
định, mang thanh điệu, có cấu trúc đơn giản, có âm tiết trùng với hình vị, đơn vị nhỏ
nhất có tổ chức mang ý nghĩa ngữ pháp. Tiếng Việt có số lượng âm tiết hữu hạn,
khoảng 6.900 âm tiết tồn tại thực.
Âm tiết, hình vị trong tiếng Việt là cố định, không biến đổi hình thái theo ngữ
pháp, và theo thì. Từ thường có hai loại đơn tiết và đa tiết. Một phần từ đa tiết là từ
Hán Việt. Trong các từ đa tiết thường có dạng láy âm hoặc ghép các từ đơn âm tiết.
Âm tiếng Việt có cấu trúc chặt chẽ so với các loại âm của các ngôn ngữ khác.
Tiếng Việt có 6 thanh điệu là: huyền (- falling), sắc ( rising), hỏi (? curve),

ngã ( broken), nặng (. drop) và không dấu. Mỗi thanh đều có thể tham gia vào
việc cấu tạo từ và tạo nghĩa cho từ. Thanh điệu tiếng Việt có tính nhạc, câu văn có
vần, nhịp điệu, trầm bổng nhịp nhàng. Mỗi âm tiết đều mang thanh điệu nhất định.
Thanh điệu kết hợp với thành phần của âm tiết tạo thành các từ khác nhau, ví dụ
như: ba, bà, bá, bả, bã, bạ. Trong tiếng Việt không phải vần nào cũng phát âm đủ
được sáu thanh. Đối với âm tiết đóng chỉ có hai thanh sắc và nặng.
Âm tiết tiếng Việt thường bao gồm 3 thành phần có mức độ độc lập khác nhau
là âm đầu (phụ âm), âm chính (nguyên âm hoặc nguyên âm đôi) và âm cuối (phụ âm
đơn hoặc bán nguyên âm). Trong đó nguyên âm và thanh điệu là hạt nhân của âm
tiết. Trừ phụ âm đầu, phần còn lại của âm tiết tiếng Việt gọi là vần. Tiếng Việt có

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


11

khoảng 512 vần. Vần và thanh tạo nên sự hài hoà về ngữ âm và ngữ nghĩa trong các
từ tượng hình, tượng thanh.
Từ đa tiết chiếm phần lớn trong tổng số từ tiếng Việt. Từ ghép đa tiết được
chia ra thành các loại:
 Từ ghép nghĩa
 Từ láy
 Từ ghép tự do
 Các từ vay mượn nước ngoài
Vốn từ vựng tiếng Việt bao gồm các từ, thành ngữ, thuật ngữ. Một bộ phận từ
tiếng Việt có gốc Hán. Ngoài ra, còn một số ít gốc Pháp, Anh: (Gác-ba-ga, Pê-đan).
Phương tiện biểu hiện ý nghĩa ngữ pháp trong tiếng Việt là trật tự các thành tố
(từ và câu), ngữ điệu, dạng láy, ngữ cảnh. Từ và cụm từ là đơn vị cấu tạo nên câu.
Giữa nói và viết tiếng Việt không cách xa nhau về quy tắc ngữ âm, ngữ pháp.

2.1.2 Cấu trúc âm tiết trong tiếng Việt

Âm tiết tiếng Việt ở dạng đầy đủ được tạo bởi 5 thành phần đó là: phụ âm đầu,
âm đệm (bán nguyên âm), âm chính (nguyên âm hoặc nguyên âm đôi), âm cuối (phụ
âm đơn hoặc bán nguyên âm) và thanh điệu (hình 2.1).
Về cấu trúc, âm tiết tiếng Việt có cấu trúc hai bậc. Bậc một gồm ba thành phần
là thanh điệu, phụ âm đầu và vần. Bậc hai là các thành tố của phần vần gồm âm đệm
là bán nguyên âm, nguyên âm chính và phụ âm hoặc bán nguyên âm cuối.
Thanh điệu

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

Hình 2.1 Sơ đồ âm tiết tiếng Việt

Một âm tiết trong tiếng Việt có thể theo 4 kiểu khác nhau sau [1]:
 Một mình nguyên âm
 Nguyên âm + phụ âm

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


12

 Phụ âm + nguyên âm
 Phụ âm + nguyên âm + phụ âm
trong lược đồ âm tiết "Phụ âm + nguyên âm + phụ âm" thì phụ âm đầu, cuối có thể
vắng còn nguyên âm bao giờ cũng có mặt.

2.2 Đơn vị cơ bản cho các hệ thống nhận dạng tiếng Việt

2.2.1 Mô hình từ và âm tiết

Việc lựa chọn từ làm đơn vị nhận dạng là phương pháp thông thường và dễ
dàng nhất, nó bao trùm được tính biến thể âm vị. Đối với một số ứng dụng nhận
dạng tiếng nói cần số lượng từ không lớn như hệ thống điều khiển học, đếm số ... có
thể áp dụng tốt mô hình từ để nhận dạng do dễ dàng thu thập đủ số mẫu huấn luyện
cho mỗi từ (hình 2.2).

Hình 2.2 Vốn từ trung bình theo các ứng dụng


Trong nhiều ngôn ngữ, từ là đơn vị nhỏ nhất của tiếng nói và từ là mục tiêu
của các hệ thống nhận dạng tiếng nói. Trong tiếng Việt, âm tiết là đơn vị âm thanh
nhỏ nhất và như vậy âm tiết là mục tiêu của các hệ thống nhận dạng tiếng Việt. Do

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


13

trong tiếng Việt có trên 6900 âm tiết nên rất khó áp dụng nhận dạng vì việc thu thập
mẫu quá lớn và thời gian xử lý lâu.
Ngoài ra, mỗi mẫu huấn luyện của một âm tiết chỉ có thể dùng để huấn luyện
chính âm tiết đó mà không thể sử dụng chúng để huấn luyện âm tiết khác. Song bù
lại, phương pháp này có nhiều đơn giản do không phải sử dụng một số các phương
pháp để phân đoạn gán nhãn.

2.2.2 Mô hình âm vị

Nhằm giảm bớt số lượng mẫu huấn luyện, nhận dạng và để sử dụng chung các
mẫu này, mô hình âm vị thường được sử dụng làm đơn vị để nhận dạng cơ bản cho
các hệ thống nhận dạng tiếng nói. Trong tiếng Việt có khoảng 40 âm vị trong đó có
22 phụ âm, 16 nguyên âm đơn và đôi và 2 bán nguyên âm, khi kết hợp với thanh
điệu (huyền, sắc, hỏi, ngã, nặng và không dấu) thì tổng cộng có 40 x 6 = 240 âm vị
có thanh điệu [1]. Với số lượng âm vị hạn chế như vậy, hoàn toàn có thể xây dựng
một mô hình nhận dạng tiếng Việt với từ điển cỡ lớn không hạn chế khoảng 1500
đến 2000 câu huấn luyện. Một đặc điểm nữa là, các từ trong tiếng Việt có số lượng
âm vị rất ít, nhiều nhất cũng chỉ là 7 (ví dụ: nghiêng). Tuy nhiên, mô hình âm vị có
một số nhược điểm chính:
 Các âm vị như nhau ở các vị trí khác nhau không hẳn đã có những đặc tính
âm học, ngữ âm học giống nhau. Một số âm vị vừa đóng vai trò âm chính,
vừa đóng vai trò âm phụ.
 Âm vị là đơn vị nhỏ nhất của một từ, việc xác định ranh giới của các âm vị
rất khó khăn, do đó việc phân đoạn, gán nhãn chính xác ở mức âm vị rất
khó, nhưng lại rất quan trọng và ảnh hưởng nhiều tới chất lượng hệ thống.

2.2.3 Mô hình Âm đầu và Vần

Tiếng Việt là ngôn ngữ đơn âm tiết. Âm tiết tuy được phát âm liền nhưng lại
có cấu tạo lắp ghép và hầu như theo một quy luật nhất định. Mỗi từ trong tiếng Việt
có 3 bộ phận chính thanh điệu, âm đầu và vần. Âm đầu có một âm vị tham gia cấu
tạo, vần được cấu tạo bởi âm đệm, âm chính và âm cuối. Tiếng Việt có 22 âm đầu

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


14

và khoảng 155 vần [6]. Kết hợp với thanh điệu thì tổng số âm đầu và vần có thanh
điệu nhỏ hơn (22+155)*6 = 1062. Vì có nhiều âm đầu, vần và thanh điệu không thể
kết hợp với nhau. Mô hình âm đầu và vần cho phép giảm bớt nhiều khó khăn cho
việc phân đoạn, gán nhãn và yêu cầu tính toán của máy tính.

2.3 Đặc điểm âm tiết và bài toán nhận dạng

Âm tiết tiếng Việt có nhiều đặc điểm khác với một số ngôn ngữ khác. Đây là
đặc điểm mà luận văn này quan tâm khi phân tích âm tiết tiếng Việt.

2.3.1 Đặc điểm âm tiết tiếng Việt

Trong tiếng Việt ranh giới âm tiết trùng với ranh giới hình vị [1]. Đây là đặc
điểm quan trọng đã được chú ý khi tiến hành trích chọn các đặc trưng của âm tiết.
Chúng ta sẽ phân tích một phát ngôn. Phát ngôn sau trong bài thơ của Bác Hồ:
“Tiến lên toàn thắng sẽ về ta”
 Xét trên bình diện thứ nhất, bằng cách đối chiếu với các phát ngôn khác,
như: "năm qua thắng lợi vẻ vang", người ta có thể phân tích ra các đơn vị
có ý nghĩa nhỏ nhất, đơn vị đó là hình vị. Trong hai phát ngôn đó sẽ có số
hình vị khác nhau:
“Tiến / lên / toàn / thắng / sẽ / về / ta”  có 7 hình vị.
"năm / qua / thắng / lợi / vẻ / vang"  có 6 hình vị.
Hình vị có hình thức cấu tạo một âm tiết, tức là mỗi hình vị trùng với âm tiết.
Trên chữ viết mỗi hình vị được viết thành một chữ.
 Hai phát ngôn trên nếu được phân tích theo phương diện thứ hai bằng cách
căn cứ vào trọng âm, vào luồng hơi thở khi phát âm và đi tới các đơn vị
phát âm nhỏ nhất, tức là âm tiết, thì ta thu được 7 và 6 âm tiết.
Như vậy, ta có thêr thấy số lượng âm tiết và số lượng hình vị bằng nhau và
ranh giới của chúng trùng nhau. Mỗi âm tiết là một hình thức biểu đạt hình vị.
Trong một số ngôn ngữ khác, mỗi âm tiết có thể nhiều hơn một hình vị.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


15

2.3.2 Âm tiết với bài toán nhận dạng

Từ những đặc điểm của âm tiết như phân tích ở trên cho ta một số kết luận khi
chọn mô hình âm tiết cho bài toán nhận dạng:
 Âm tiết tiếng Việt có ranh giới trùng với ranh giới hình vị, do vậy khi đọc
một câu vào luôn tìm thấy ranh giới giữa các âm tiết.
 Mỗi âm tiết là một cách biểu diễn một hình vị xác định, không gây ra sự
trùng lặp dẫn tới không phân biệt được ý nghĩa.
Tuy nhiên, khi chọn mô hình âm tiết cũng gặp một khó khăn là số lượng âm
tiết tiếng Việt rất nhiều như vậy hạn chế khả năng nhận dạng của hệ thống.

2.4 Trích chọn tần số đặc trƣng của tiếng Việt


2.4.1 Cơ chế tạo và thu nhận tiếng nói

Quá trình tạo tiếng nói bắt đầu khi người nói định ra một thông điệp trong ý
nghĩ và muốn chuyển thông điệp đó cho người nghe thông qua tiếng nói. Thông điệp
này phải được chuyển đỗi sang một mã ngôn ngữ nào đó, sau đó người nói phải thực
hiện một chuổi các lệnh thông qua các dây thần kinh để điều khiển đôi dây thanh
rung khi cần thiết và định hình tuyến âm sao cho chuỗi âm thanh phát ra chính xác.
Các lệnh này phải đồng thời điều khiển các cơ quan liên quan đến quá trình phát âm
khác như: lưỡi, môi, hàm, vòm miệng mềm…
Quá trình cảm thụ tiếng nói bắt đầu ngay sau khi tín hiệu tiếng nói được tạo ra
và lan truyền đến người nghe thông qua sự thay đổi áp suất của không khí. Trước
tiên, sóng âm học tác động vào màng nhĩ ở tai trong, các tín hiệu này được phân tích
tạo ra các tín hiệu tác động lên các dây thần kinh thính giác. Sau đó, các tín hiệu
thần kinh được chuyển thành một mã ngôn ngữ nào đó nhờ các trung tâm xử lý cao
hơn ở trong não. Cuối cùng, thông điệp được người nghe cảm thụ. Quá trình tạo và
cảm thụ tiếng nói của người được minh hoạ trong hình 2.3

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


16

Định hình Mã ngôn Điều khiển cơ Hệ thống


thông địêp ngữ thần kinh tuyến âm
(Message (Language (Nero-Mascular (Vocal Tract
Formulation) Code) Controls) System)

Tạo tiếng nói Sóng âm học


(Acoustic
Waveform)
Cảm thụ tiếng nói

Cảm thụ thông Giãi mã Tín hiệu thần Màng nhĩ rung
địêp ngôn ngữ kinh (Bisilar
(Message (Language (Neural Membrance
Understanding) Translation) Transduction) Motion)

Hình 2.3. Quá trình tạo và cảm thụ tiếng nói

2.4.1.1 Cơ chế tạo tiếng nói


Trước khi nghiên cứu chi tiết vấn đề nhận dạng tiếng nói, ta cần hiểu rõ về quá
trình tạo và cảm thụ tiếng nói của con người. Những hiểu biết này là cơ sở cho việc
xây dựng các phần mềm nhận dạng tiếng nói tự động bởi máy tính. Hình 2.4 trình
bày cấu tạo của cơ quan phát âm.

Hình 2.4 Cấu tạo bộ phận phát âm của người

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


17

Tuyến âm (vocal tract) bắt đầu từ dây thanh (vocal cords) và kết thúc ở môi.
Tuyến âm bao gồm họng và khoang miệng hoặc khoang mũi. Thiết diện vùng giao
nhau của tuyến âm, bao gồm vị trí lưỡi, môi, hàm và vòm miệng thay đổi từ 0 (khi
ngậm môi) đến khoảng 20cm2 (Khi môi hở).
Tuyến mũi bắt đầu từ vòm miệng (velum) và kết thúc ở lỗ mũi. Khi mà vòm
miệng hạ xuống thì khoang miệng bị cắt và khoang mũi được thông tạo nên âm mũi.
Phần cung cấp năng lượng cho việc tạo ra tiếng nói bao gồm: phổi, khí quản. Khi
phát âm, lồng ngực sẽ được mở rộng và thu hẹp lại để luồng không khí được đẩy lên
từ phổi vào khí quản đi qua thanh môn, ở đây không khí có thể bị thay đổi sau đó
tiếp tục được chuyển lên tuyến âm và bức xạ tại môi.
Âm thanh tiếng nói được chia làm 3 loại phân biệt tuỳ thuộc vào cách kích
thích [1]: âm hữu thanh, vô thanh và âm bật.
 Âm hữu thanh (Voiced sound): được tạo ra bởi việc đẩy không khí qua
thanh môn với một độ căng của dây thanh sao cho chúng tạo nên dao động.
Vì vậy, nó tạo ra những xung gần như có chu kỳ kích thích tuyến âm. Ví dụ
các nguyên âm: a, i, o …
 Âm vô thanh (Unvoiced sound): được tạo nên bởi sự co thắt ở một số
điểm nào đó trong tuyến âm, và đẩy không khí qua các điểm co thắt này với
một gia tốc đủ lớn để tạo nên sự nhiễu loạn. Ví dụ s trong sông núi…
 Âm bật (Plosive sound): là kết quả từ việc đóng hoàn toàn, tạo nên một áp
suất, và thả đột ngột.
Tiếng nói là sóng âm được phát ra từ hệ thống này khi mà luồng không khí bật
ra từ phổi và bị xáo trộn bởi sự co thắt đâu đó trong tuyến âm.
Tuyến âm là một ống có tiết diện không đều. Âm thanh lan truyền dọc theo
ống, phổ tần số được tạo thành bởi sự chọn lọc tần số của ống. Hiệu ứng này rất
giống hiện tượng cộng hưởng của cây sáo hoặc dụng cụ âm nhạc truyền thống. Các
tần số cộng hưởng của tuyến âm được gọi là tần số Formant hay đơn giản là các
Formant. Các Formant này phụ thuộc vào hình dạng và kích thước của tuyến âm.
Mỗi hình dạng được đặc trưng bởi một tập các Formant. Các âm thanh khác nhau

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


18

được tạo thành bằng cách thay đổi hình dạng của tuyến âm. Vì vậy, các đặc trưng
của phổ tín hiệu tiếng nói thay đổi theo thời gian khi mà dạng tuyến âm thay đổi.
Dạng sóng của tiếng nói gồm 2 phần: phần gần giống nhiễu (biên độ biến đổi
ngẫu nhiên) và phần có tính chu kỳ (tín hiệu lặp lại gần như là tuần hoàn). Phần tín
hiệu có tính chu kỳ chứa các thành phần tần số có dạng điều hòa. Tần số thấp nhất
chính là tần số cơ bản F0 (pitch) và cũng chính là tần số dao động của dây thanh.
Nhìn chung mô hình số tạo tiếng nói gồm 3 phần [14] sau: nguồn kích thích
(Excitation), tuyến âm (Vocal tract) và bức xạ (Radiation) dạng như hình 2.5.

Chu kỳ pitch AV

Mô hình Các tham số


Tạo dãy xung thanh tuyến âm
xung môn G(z)

HT/HV Mô hình Mô hình


tuyến bức xạ
âm V(z) R(z) pL(n)

Bộ tạo nhiễu UG(n)


ngẫu nhiên

AN

Hình 2.5 Mô hình số tạo tiếng nói


Nguồn kích thích có 2 dạng cho âm hữu thanh và âm vô thanh. Đối với âm hữu
thanh, tín hiệu vào là một chuỗi xung đơn vị có tần số được điều khiển bởi tần số cơ
bản F0. Chuỗi xung này kích thích một hệ tuyến tính với đáp ứng xung g(n) có dạng
sóng của thanh môn như sau:
 (1 / 2)1  cos(n / N1 ) , 0  n  N1

g (n)   cos( (n  N1 ) / 2 N 2 ) , N1  n  N1  N 2 (2.1)
0
 , n khac

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


19

Trong miền tần số, mô hình thanh môn có tác dụng như bộ lọc thông thấp.
Biến đổi z, G(z) chỉ có toàn điểm không. Tuy nhiên, mô hình toàn điểm cực được ưa
dùng hơn. Mô hình thành công đạt được bằng cách sử dụng 2 điểm cực như sau:

G( z )  A
(1Z 1 )(1  Z -1 ) (2.2)

α và β sẽ xác định 2 điểm cực.


AV dùng để điều khiển biên độ của tín hiệu tại thanh môn.
Đối với âm vô thanh, mô hình nguồn kích thích đơn giản hơn nhiều. Nó chỉ
đơn giản là bộ tạo số ngẫu nhiên gây ra nguồn nhiễu có phổ phẳng.
HT/VT là một khoá chuyển đổi giữa hữu thanh và vô thanh.
Mô hình tuyến âm nhằm tạo ra các mạch cộng hưởng. Các Formant của tiếng
nói tương đương với các điểm cực của hàm truyền đạt V(z). Mô hình toàn điểm cực
là một biểu diễn rất tốt với hầu hết các âm tiếng nói. Các âm mũi và phụ âm sát có
cả điểm không và điểm cực (phản Formant và Formant). Khi đó người ta thường
biến đổi các điểm không về dạng điểm cực. Vì vậy, V(z) thường được biểu diễn
dưới dạng mắc nối tiếp của các hệ bậc 2 như sau:

V ( z)  M
B

 (1b1k Z 1 b2 k Z  2 ) (2.3)


k 1

Nếu chúng ta muốn nhận được mô hình áp suất tại môi, thì tác dụng của tải bức
xạ R(z) phải được xem xét. Áp suất sóng âm tại môi tỷ lệ với đạo hàm của thông
lượng không khí qua môi. Như vậy R(z) là một bộ lọc thông cao có dạng sau:
R(z)=C.(1-Z-1) (2.4)
Kết quả ta được hàm truyền đạt của cả hệ thống như sau:

H(z)=G(z)V(z)R(z)= A( z ) (2.5)

Trong đó  = A.B.C là một hằng số, và A(z) có dạng sau:


p
A( z )  1   a k Z k (2.6)
k 1

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


20

A(z) được gọi là hàm truyền đạt của bộ lọc đảo. Từ (2.5) dễ nhận thấy
H(z).A(z) là một hằng số.
Như vậy, ta được mô hình toàn điểm cực. Đây là mô hình thường hay được áp
dụng trong thực tế.

2.4.1.2 Cơ chế thu nhận tiếng nói

Hình 2.6 là cấu tạo của tai người. Trong cấu tạo của tai, vành tai thu nhận các
sóng âm. Rung động của không khí làm màng nhĩ rung động theo gây nên chuyển
đổi cơ học trên xương búa. Các dao động được truyền vào tai trong. Ốc tai chuyển
đổi các dao động cơ học sang các xung lực thần kinh và được truyền vào não.

Hình 2.6 Cơ chế nghe của tai người

Giới hạn của các tần số âm thanh mà tai người nghe được là từ 20Hz đến
20000Hz, trong đó tần số nghe rõ nhất trong khoảng từ 1000Hz đến 4000Hz. Các
nghiên cứu sinh lý học đã chỉ ra rằng độ cảm nhận của tai người đối với tần số
không theo thang tuyến tính. Vì vậy, người ta thường dùng thang Mel. Chúng ta sẽ
xem xét về thang Mel trong phần sau.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


21

2.4.2 Các hệ số Cepstrum trên thang Mel (MFCC)


2.4.2.1 Mở đầu
Chúng ta đã biết cơ chế tạo tiếng nói và các đặc tính của tiếng nói. Đối với
người, rất là khó nếu ta đặt các đầu đo vào trong cơ thể để thu thập các đặc tính. Vì
vậy, người ta đã làm theo phương pháp ngược lại. Đó là dựa vào sản phẩm đầu ra
của hệ thống (tiếng nói) để biết được các đặc tính của hệ thống (người nói). Một
trong những phương pháp hay được dùng đó là xử lý đồng hình cho tiếng nói
(Homomorphic Speech Processing). Phương pháp này sẽ tính được các hệ số
Cepstrum. Cepstrum là biến đổi Fourier ngược lại của Logarithm của phổ tín hiệu.
Sử dụng bộ lọc đồng hình ta có thể tách được thành phần gây kích thích và
thành phần thể hiện tác dụng của tuyến âm, xung thanh môn, bức xạ tại môi. Nghĩa
là ta có thể nhận được các xấp xỉ của các thành phần cơ bản trong tín hiệu tiếng nói.
Chẳng hạn ta có thể ước lượng chu kỳ pitch, các tần số Formant. Với mục đích này
thì Cepstrum là hoàn toàn đầy đủ [14]. Tuy nhiên, để nâng cao độ chính xác cho
khâu phân lớp sau này và để hệ thống mang tính “người” ta sẽ xem xét thêm một số
yếu tố nữa trong các phần sau đây.
Có nhiều cách để biểu diễn tham số của tín hiệu tiếng nói. Trong đó MFCC là
cách nổi tiếng và thông dụng nhất. MFCC dựa trên sự thay đổi nhận biết được băng
tần tới hạn của tai người. Các bộ lọc được phân chia ở vùng tần số thấp theo thang
tuyến tính và ở vùng tần số cao theo thang Logarithm được sử dụng để nắm bắt các
đặc tính ngữ âm quan trọng của tiếng nói. Với thang tần số Mel, theo thang tuyến
tính ở tần số dưới 1000Hz và theo thang Logarithm ở tần số trên 1000Hz.

2.4.2.2 Bộ xử lý MFCC

Sơ đồ khối cấu trúc của một bộ xử lý MFCC được chỉ ra hình 2.7. Tín hiệu
tiếng nói ở đầu vào thường được lấy mẫu với tần số khoảng 10KHz. Tần số này
được chọn để tối thiểu hoá hiện tượng chồng phổ khi biến đổi tương tự số. Tín hiệu
được lấy mẫu này có tần số có thể lên tới 5KHz. Do đó, nó bao gồm hầu hết năng
lượng của âm thanh tiếng nói. Như ta đã biết, mục đích chính của bộ xử lý MFCC là
bắt chước hoạt động của tai người. Hơn nữa MFCC ít nhạy cảm với biến động.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


22

Hình 2.7 Sơ đồ khối bộ xử lí MFCC

Bộ phân khung (Frame Blocking)


Do tín hiệu tiếng nói có thể coi là ổn định trong một khoảng thời gian ngắn cỡ
khoảng vài chục ms, nên khi tiến hành các phép phân tích biến đổi trên tín hiệu
tiếng nói người ta thường chia tín hiệu thành các đoạn cỡ 10-30 ms, công việc đó
được gọi là phân khung tín hiệu (Frame Blocking).

Hình 2.8 Phân khung tín hiệu


Ở bước này, tín hiệu tiếng nói được phân chia thành các khung N mẫu và phân
biệt với khung bên cạnh M mẫu. Khung thứ nhất chứa N mẫu. Khung thứ 2 sau
khung thứ nhất M mẫu và chồng lên khung thứ nhất N-M mẫu, tương tự, khung thứ

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


23

3 sau khung thứ nhất 2M mẫu (sau khung thứ hai M mẫu) và chồng lên khung thứ
nhất N-2M mẫu… Quá trình cứ tiếp tục như vậy cho đến khi tất cả các mẫu tiếng
nói nằm trong một hoặc nhiều khung. Hình 2.8 biễu diễn phân khung tín hiệu
Dễ thấy, khi M  N thì các khung kề sẽ chồng lên nhau, kết quả việc đánh giá
phổ sẽ liên quan từ khung này đến khung kia, nếu M<<N thì việc đánh giá phổ từ
khung này đến khung kia sẽ rất trơn.
Ngược lại, khi M  N thì các khung kề nhau sẽ không chồng lên nhau. Do đó,
một vài tín hiệu sẽ bị mất hoàn toàn (nghĩa là không xuất hiện trong bất kỳ khung
nào), phổ thu được khi đánh giá các khung kề nhau sẽ chứa một phần nhiễu. Biên độ
của nhiễu này tăng lên khi M tăng. Điều này không thể chấp nhận được đối với các
hệ thống nhận dạng thực tế.
Trong thực tế, thông thường chọn N=256 (tương đương với khoảng 20-30ms
và thuận tiện cho tính FFT cơ số 2), còn M=100 (khoảng 10ms).

Cửa sổ hoá (Windowing)

Hình 2.9. Biễu diễn cửa sổ Hamming trong miền thời gian.

Hình 2.9 Cửa sổ Hamming

Bước này là cửa sổ hoá từng khung để tối thiểu sự ngắt quãng của tín hiệu tại
điểm đầu và điểm cuối của khung. Đây là khái niệm tối thiểu hoá sự méo phổ bằng
cách sử dụng cửa sổ để vuốt thon tín hiệu về không tại điểm đầu và điểm cuối của

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


24

mỗi khung. Nếu chúng ta định nghĩa cửa sổ là w(n), 0  n  N  1 , với N là số mẫu
trong mỗi khung, thì kết quả của cửa sổ hoá tín hiệu là:
yt(n)=xt(n) w(n) 0  n  N 1 (2.7)
Đối với mỗi tín hiệu tiếng nói, người ta thường sử dụng cửa sổ Hamming sau:
2n
w(n)  0.54  0.46 cos( ), 0  n  N 1 (2.8)
N 1

Biến đổi Fourier nhanh (FFT)

Bước này sẽ biến đổi từng khung của N mẫu từ miền thời gian sang miền tần
số. Đây là thuật toán nhanh để cài đặt DFT cho tập N mẫu {xn } như sau:
N 1
X n   xk e 2 jkn / N
, n  0,1,2,....., N  1 (2.9)
k 0

Nói chung, Xn là các số phức. Dãy kết quả {Xn} được giải thích như sau:
 Tần số không tương ứng với n=0
 Các tần số dương 0<f<Fs/2 tương ứng với 1  n  N / 2  1
 Các tần số âm –Fs/2<f<0 tương ứng với N / 2  1  n  N  1
Ở đây Fs là tần số lấy mẫu.
Kết quả của bước này là phổ (spectrum hay periodogram) của tín hiệu.

Căn chỉnh thang tần số Mel (Mel-frequency Warpping)

Như đã đề cập ở trên, các nghiên cứu tâm - sinh - lý đã chỉ ra rằng sự cảm nhận
của con người theo tần số đối với âm thanh thuần khiết (pure tone) hay tiếng nói
không tuân theo thang tuyến tính. Nghiên cứu này dẫn tới việc định nghĩa tần số
pitch cảm thụ (subjective pitch) của âm thuần khiết. Vì vậy, đối với mỗi âm có tần
số thực tế f đo bằng Hz, có một tần số pitch cảm thụ được đo trên thang Mel. Như là
một điểm mốc, tần số pitch của âm 1KHz, 40dB trên ngưỡng nghe, được định nghĩa
là 1000Mel. Vì vậy, chúng ta có thể sử dụng công thức xấp xỉ sau đây để tính Mel
khi biết tần số đo bằng Hz [17].
Mel= 1000*log2(1+f)

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


25

Một cách tiếp cận để mô phỏng phổ cảm thụ là dùng bộ lọc thông giải được
chia đều trên thang Mel. Bộ lọc băng này có đáp ứng tần số trong băng thông có
dạng tam giác và chia đều theo thang Mel. Phổ đã sửa đổi sẽ chứa công suất ra của
các bộ lọc này khi đầu vào là S(ω). Số bộ lọc thông giải K thường là khoảng 20.
Cepstrum
Trong bước cuối cùng này, chúng ta biến đổi log của phổ trên thang Mel trở về
miền thời gian. Việc biểu diễn cepstrum của phổ tiếng nói cho ta thấy rõ các đặc
tính phổ cục bộ tín hiệu của khung đang xét. Bởi vì, các hệ số phổ trên thang Mel là
các số thực, nên ta có thể biến đổi chúng sang miền thời gian bằng cách sử dụng
biến đổi Cosin rời rạc (DCT). Ký hiệu các hệ số phổ công suất trên thang Mel nhận
~
được ở bước trước là S k , k =1,2,…K, có thể tính được MFCC, c~n như sau:
K
~  1 
c~n   (log S k ) cos n(k  )  n=1,2,….,L (2.10)
k 1  2 K
trong đó, L là số hệ số MFCC. Thông thường, L lấy giá trị từ 9 đến 20.

Để ý rằng thành phần thứ nhất, c~0 bị loại khỏi DCT vì nó biểu diễn giá trị năng
lượng tổng của tín hiệu vào của một khung. Giá trị này mang ít thông tin cụ thể về
người nói.
2.4.3 Các hệ số Cepstrum của dự đoán tuyến tính (LPCC)

Cũng như MFCC, các hệ số cepstrum của dự đoán tuyến tính (LPCC - Linear
Predictive Cepstral Coefficients) là một tập đặc trưng (feature set) tốt và được dùng
nhiều trong nhận dạng ngôn ngữ. Trước khi xem xét về LPCC, chúng ta đi xem xét
phương pháp dự đoán tuyến tính (LPC - Linear Predictive Coding).
2.4.3.1 Phƣơng pháp dự đoán tuyến tính (LPC)
Tư tưởng cơ bản của phân tích dự đoán tuyến tính là một mẫu tiếng nói có thể
được xấp xỉ như là tổ hợp tuyến tính của các mẫu trước đó. Bằng việc tối thiểu hoá
tổng của các bình phương sai số giữa các mẫu hiện tại và các mẫu dự đoán tuyến
tính ta có thể xác định được một tập duy nhất các hệ số dự báo. Các hệ số dự đoán
này chính là các trọng số được sử dụng trong tổ hợp tuyến tính.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


26

Như ta đã biết trong phần trước, ảnh hưởng kết hợp của phát xạ tại môi, tuyến
âm và sự kích thích thanh môn được biểu diễn như một bộ lọc số biến đổi theo thời
gian. Hàm truyền đạt của bộ lọc này có dạng:

H ( z)  p
(2.11)
1  a k Z k
k 1

Như vậy tập các hệ số ak sẽ đặc trưng cho hệ thống. Các mẫu tiếng nói s(n)
quan hệ với kích thích u(n) theo phương trình sai phân:
p
s ( n)   a k s ( n  k )   u ( n) (2.12)
k 1

Tín hiệu tiếng nói s(n) là tổ hợp tuyến tính của các mẫu tiếng nói trong quá khứ
s(n-k) và tín hiệu đầu vào hiện tại u(n). Trong các ứng dụng tiếng nói, u(n) không

biết được nên ta bỏ qua. Giá trị xấp xỉ của bộ dự đoán ~s (n) chỉ còn phụ thuộc vào
các mẫu ra trong quá khứ:
p
s ( n)   a k s ( n  k )
~ (2.13)
k 1

Sai số dự đoán là:


p
e(n)=s(n) - ~s (n) = s(n) -  a s(n  k )
k 1
k (2.14)

Bài toán cơ bản của dự đoán tuyến tính là tìm ra tập các hệ số dự đoán {ak} sao
cho sai số này là nhỏ nhất. Bởi vì, tín hiệu tiếng nói thay đổi theo thời gian, các hệ
số dự đoán được ước lượng từ một đoạn tín hiệu tiếng nói ngắn. Phương pháp tiếp
cận cơ bản là tìm một tập các hệ số dự đoán để tối thiểu hoá sai số trung bình bình
phương trên một đoạn ngắn tín hiệu tiếng nói.
Sai số dự đoán trung bình thời gian ngắn được xác định:
2
 p

E n   e (m)    s n (m)   a k s n (m  k ) 
2
n (2.15)
m m  k 1 
Trong đó sn(m) là một đoạn ngắn tín hiệu tiếng nói được chọn ở lân cận của
mẫu thứ n, nghĩa là:
sn(m)=s(m+n) (2.16)

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


27

Chúng ta có thể tìm được các giá trị ak để tối thiểu hoá En trong (2.15) bằng
cách tính En / ai  0 với i=1, 2, ..., p. Ta nhận được:
p

s
m
n (m  i) s n (m)   a k  s n (m  i) s n (m  k ) , 1  i  p
k 1 m
(2.17)

Đặt:

 n (i, k )   s n (m  i) s n (m  k ) (2.18)
m

thì (2.17) được viết gọn hơn:


p

a 
k 1
k n (i, k )   n (i,0) (2.19)

Giải hệ p phương trình này ta sẽ tìm được p ẩn {ak}. Tập các hệ số {ak} này sẽ
tối thiểu sai số trung bình bình phương dự đoán cho đoạn tín hiệu sn(m). Sử dụng
(2.15) và (2.17) thì sai số dự đoán trung bình bình phương tối thiểu sẽ là:
p
E n   s n2 (m)   a k  s n (m) s n (m  k ) (2.20)
m k 1 m

và sử dụng phương trình (2.19) ta có thể biểu diễn En như sau:


p
E n   n (0,0)   a k  n (0, k ) (2.21)
k 1

Về nguyên tắc, phân tích dự đoán tuyến tính là rất dễ hiểu. Nhưng việc tính
toán n (i, k ) và tìm nghiệm của hệ phương trình là khá rắc rối.
Chúng ta vẫn chưa đưa ra rõ ràng về giới hạn của chỉ số lấy tổng trong công
thức (2.15). Phụ thuộc vào chỉ số lấy tổng, người ta đưa ra hai phương pháp: tự
tương quan (Autocorrelation) và hiệp biến (Covariance). Sau đây ta xét một phương
pháp hay được dùng: Phương pháp tự tương quan.
Chúng ta giả sử đoạn tín hiệu sn(m)=0 ngoài khoảng 0  m  N  1. Điều này có
thể được biểu diễn như sau:
Sn(m)= s(m+n) w(m) (2.22)
Trong đó w(m) là cửa sổ có chiều dài hữu hạn (thường hay dùng cửa sổ
Hamming), w(m) khác không trong khoảng 0  m  N  1. Do đó sai số dự đoán,

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


28

en(m), cho bộ dự đoán bậc p sẽ khác 0 trong khoảng 0  m  N  1  p . Vì vậy, En có


dạng như sau:
N  p 1
En  e
m 0
2
n ( m) (2.23)

Từ đó công thức (2.18) thành:


N  p 1
 n (i, k )  s
m 0
n (m  i) s n (m  k ) với 1  i  p , 0  k  p (2.24)

N 1( i  k )
 n (i, k )  s
m 0
n (m) s n (m  i  k ) với 1  i  p , 0  k  p (2.25)

Gọi Rn(k) là hàm tự tương quan:


N 1 k
Rn ( k )  s
m 0
n (m)s n (m  k ) (2.26)

ta có:
n (i, k )  Rn (i  k ) (2.27)
Vì Rn(k) là hàm chẵn nên ta có thể viết được:
n (i, k )  Rn (| i  k |) với i  1,2,..., p và k  0,1,2,..., p (2.28)
do đó, phương trình (2.19) có thể được viết thành
p

a
k 1
k Rn (| i  k |)  Rn (i) với 1  i  p (2.29)

Tương tự như vậy, sai số trung bình bình phương tối thiểu của phương trình
(2.21) sẽ có dạng:
p
E n  Rn (0)   a k Rn (k ) (2.30)
k 1

Hệ phương trình (2.29) có thể viết dưới dạng ma trận:


 Rn (0) Rn (1) .......... Rn ( p  1)  a1   Rn (1) 
 R (1)  
 n Rn (0) .......... Rn ( p  2)  a 2   Rn (2) 
 (2.31)
 ..... ........ .........  ..... . .... 
    
 Rn ( p  1) Rn ( p  2) ....... Rn (0). a p   Rn ( p)

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


29

Ma trận bậc p*p với các giá trị của hàm tự tương quan này là một ma trận
Toeplitz (ma trận đối xứng, các phần tử thuộc đường chéo bằng nhau). Đặc tính này
được khai thác để có được thuật toán hiệu quả khi giải (2.29).
2.4.3.2 LPCC
Tập các hệ số dự đoán ak, 1  k  p , được coi là tập tham số cơ bản cho phân
tích dự đoán tuyến tính. Một cách lý tưởng, các véctơ đặc trưng này tương tự đối với
một người nói, đồng thời khác nhau đối với các người nói khác nhau. Hơn nữa, các
véctơ này trở nên bền vững (robust) đối với các môi trường khác nhau (có nhiễu nền
và phương tiện truyền tiếng nói). Thể hiện là chúng ít biến đổi khi điều kiện môi
trường thay đổi. Vì vậy, người ta đã biến đổi tập các hệ số dự đoán a k này thành một
dạng biểu diễn khác của tín hiệu tiếng nói. Một trong những dạng hay được dùng đó
là LPCC.
Chúng ta đã biết cách tìm cepstrum trực tiếp từ phổ tần số. Bây giờ chúng ta sẽ
xem xét một cách khác để tìm Cepstrum từ LPC, đó là LPCC. Cả 2 phương pháp
đều cho kết quả tương tự như nhau trong nhận dạng ngôn ngữ.
Giả sử biết tập các hệ số LPC là ak với 1  k  p . Tập N hệ số LPCC luôn luôn
được xác định bởi quan hệ đệ quy như sau:
c1  a1

 n 1 với 1  n  N (2.32)
 n  (1  n )a k c n k  a n
 k
c
 k 1

Nếu N>p thì an=0 với p<n<=N.

2.5 Kết luận


Bằng cách sử dụng quá trình trích chọn đặc trưng như trên, với mỗi khung
tiếng nói khoảng 30 ms và các khung gối đầu lên nhau, chúng ta tính được một tập
các hệ số cepstrum.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


30

CHƢƠNG 3

TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO

3.1 Giới thiệu về mạng nơron

Mô phỏng não người là ước mơ từ lâu của nhân loại. Não người là một trong
những bộ điều khiển thông minh nhất. Với số lượng hơn 15 tỷ nơron thần kinh, não
người được coi là cơ chế sinh học phức tạp nhất. Não người có khả năng giải quyết
nhiều vấn đề như nghe, nhìn, nói, nhớ, phán đoán, hồi ức thông tin, phân biệt các
mẫu mặc dù sự kiện có bị méo mó, thiếu hụt. Não thực hiện xử lí thông tin nhờ
mạng nơron và điều khiển mối liên lạc giữa các nơron đó. Các nơron không ngừng
nhận và truyền thông tin cho nhau. Các nơron liên kết tạo thành mạng với hàng chục
vạn phần tử hoạt động đồng thời với nhau. Lý thuyết về mạng nơron đã hình thành
và đang phát triển, đăc biệt là nghiên cứu trong ứng dụng [4]. Việc nghiên cứu
nơron trong nhận dạng và điều khiển học là rất thiết thực và đang là vấn đề được
quan tâm của nhiều nhà khoa học trên thế giới.
Có thể phân chia quá trình nghiên cứu và phát triển mạng nơron trong thế kỷ
qua thành 4 giai đoạn [4]:
 Giai đoạn một: có thể tính từ nghiên cứu của William 1890 về tâm lý học với
sự liên kết các nơron thần kinh. Từ năm 1940 Mc.Culloch và Pitts đã cho
biết: nơron có thể được mô hình hoá như thiết bị ngưỡng (giới hạn) để thực
hiện các phép tính logic. Cùng thời gian đó, Wiener đã xét các mối liên hệ
giữa nguyên lý phản hồi trong điều khiển và chức năng bộ não; Ashly đã đề
xuất mô hình chức năng bộ não và nguyên lý ổn định của nó.
 Giai đoạn hai: vào những năm 1960, gần như đồng thời một số mô hình
mạng nơron hoàn hảo hơn đã được đưa ra, đó là mô hình:
- Perceptron của Rosenbatt
- Adaline của Widrow
- Ma trận học của Stinbuck

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


31

Trong đó, mô hình Perceptron rất được quan tâm vì nguyên lý đơn giản,
nhưng nó cũng có hạn chế vì như Minsky và Papert đã chứng minh nó không
dùng được cho các hàm logic phức. Còn Adaline là mô hình tuyến tính, tự
chỉnh, được dùng rộng rãi trong điều khiển thích nghi, tách nhiễu vẫn phát
triển và ứng dụng cho đến ngày nay.
 Giai đoạn ba: có thể được tính là khoảng đầu những năm 80. Những đóng
góp lớn cho mạng nơron trong giai đoạn này phải kể đến Grossberg,
Kohonen và Hopfield. Đặc biệt, Hopfield đã dự kiến nhiều khả năng tính
toán lớn của mạng mà một nơron không có. Cảm nhận của Hopfield đã được
Rumelhart, Hinton đề xuất thuật toán sai số truyền ngược nổi tiếng để huấn
luyện mạng nơron nhiều lớp nhằm giải bài toán mà mạng khác không thực
hiện được.
 Giai đoạn bốn: từ năm 1990 đến nay, nhiều hội nghị, tạp chí khoa học và
chuyên đề đặc biệt về mạng nơron liên tục được tổ chức. Hàng loạt các ứng
dụng của mạng nơron trong các lĩnh vực: kỹ thuật tính toán, tính toán tối ưu,
tin học, viễn thông, sinh học, y học, dự báo, thống kê… đã đi vào áp dụng và
đem lại nhiều hiệu quả đáng khích lệ.
Ở trong nước, mạng nơron được nghiên cứu từ những năm 1980, đi vào ứng
dụng trong các lĩnh vực tin học viễn thông, đo lường điều khiển… Một số chip
nơron đã được dùng trong kỹ thuật lọc và một số ứng dụng khác.
Mạng nơron nhân tạo (ANN - Artificial Neural Network) là hệ thống được xây
dựng trên cơ sở sử dụng một vài nguyên tắc cấu tạo giống như trong bộ não con
người. Mạng nơron nhân tạo có một số lượng lớn các phần tử xử lí liên lạc chặt chẽ
với nhau. Các phần tử xử lí này được gọi là các nút mạng. Các nút mạng này thường
tính toán đồng thời hay còn gọi là tính toán song song và được xắp xếp một cách hài
hoà. Các hành vi của mạng nơron nhân tạo nói chung cũng giống như trong bộ não
con người. Mạng nơron nhân tạo được bắt nguồn từ việc lập mô hình các nơron
sinh học trong bộ não.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


32

3.1.1 Mô hình nơron sinh vật

Nơron sinh vật có nhiều dạng khác nhau như: dạng hình tháp, dạng tổ ong,
dạng rễ cây... Tuy khác nhau về hình dạng, nhưng chúng có cấu trúc và nguyên lý
hoạt động chung. Một tế bào nơron gồm bốn phần cơ bản [12] (hình 3.1):

Hình 3.1 Mô hình nơron sinh vật


 Các nhánh và rễ: là các bộ phận nhận thông tin, các đầu nhạy hoặc các
đầu ra của nơron khác bám vào rễ hoặc nhánh. Khi các đầu vào từ ngoài
này có sự chênh lệch về nồng độ K+, Na+ hay Cl- so với nồng độ bên trong
của nó, thì xẩy ra hiện tượng thấm từ ngoài vào trong thông qua một cơ chế
màng thấm đặc biệt. Hiện tượng thẩm thấu như vậy tạo nên một cơ chế
truyền đạt thông tin với hàng ngàn hàng vạn lối vào trên mỗi nơron sinh
vật, ứng với hàng nghìn hàng vạn liên kết khác nhau. Mức độ thẩm thấu
đặc trưng bởi cơ chế màng tượng trưng bằng một tỷ lệ. Tỷ lệ đó được gọi là
tỷ trọng hay đơn giản gọi là trọng (weight).
 Thân thần kinh (Soma): chứa các nhân và cơ quan tổng hợp protein. Các
ion vào được tổng hợp và biến đổi. Khi nồng độ các ion đạt đến một giá trị
nhất định, xảy ra quá trình phát xung (hay kích thích). Xung đó được phát ở
các đầu ra của nơron. Dây dẫn đầu ra xung được gọi là dây thần kinh.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


33

 Dây thần kinh (Axon): là đầu ra. Đây là phương tiện truyền dẫn tín hiệu,
được cấu tạo gồm các đốt và có thể dài từ vài micro mét đến vài mét tuỳ
từng kết cấu cụ thể. Đầu ra này có thể truyền tín hiệu đến các nơron khác.
 Khớp thần kinh (Synape): là bộ phận tiếp xúc của đầu ra nơron với rễ,
nhánh của các nơron khác. Chúng có cấu trúc màng đặc biệt để tiếp nhận
các tín hiệu khi có sự chênh lệch về nồng độ ion giữa bên trong và bên
ngoài. Nếu độ lệch về nồng độ càng lớn thì việc truyền các ion càng nhiều
và ngược lại. Mức độ thẩm thấu của các ion có thể coi là một đại lượng
thay đổi tuỳ thuộc vào nồng độ như một giá trị đo thay đổi được gọi là
trọng (weight).

3.1.2 Mô hình nơron nhân tạo

Trên cơ sở mô hình nơron sinh vật tổng quát người ta đề xuất mô hình nơron
nhân tạo theo ngôn ngữ và ký hiệu chung nhất. Mô hình nơron nhân tạo được xây
dựng từ ba thành phần chính [12]: (hình 3.2)
- Bộ tổng các liên kết đầu vào;
- Bộ động học tuyến tính;
- Bộ phi tuyến;
-1
X1
W1 
u(t) y(t)
X2
v(t)
W2
 H(.) f(.)

Xm
Wm
Hình 3.2 Mô hình nơron nhân tạo

Để mô phỏng một nơron ta có thể coi nó như một hệ thống nhiều đầu vào và
một đầu ra.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


34

Bộ tổng liên kết

Bộ tổng hợp các liên kết đầu vào của một phần tử nơron có thể mô tả như sau:
m
v(t)   w k x k ( t ) -  (3.1)
k =1

trong đó:
 v(t): tổng tất cả các đầu vào mô tả toàn bộ thế năng tác động ở thân nơron.
 xk(t): các đầu vào ngoài, k=1, 2,…, m; m là số lượng đầu vào mô tả tín hiệu
vào từ các đầu nhạy thần kinh hoặc từ các nơron khác đưa vào.
 wk: trọng liên kết vào ngoài, là hệ số mô tả mức độ liên kết giữa các đầu
vào ngoài tới nơron hiện tại, k=1, 2,..., m; m là số đầu vào.
 y(t): đầu ra nơron, mô tả tín hiệu đưa ra.
  : hằng số, còn gọi là ngưỡng, xác định ngưỡng kích thích hay ức chế.

Phần động học tuyến tính

Đầu vào của phần động học là v(t). Đầu ra của nó u(t) gọi là đầu ra tương tự.
Hàm truyền tương ứng của phần động học tuyến tính có thể mô tả dưới dạng (dùng
toán tử Laplace):
U ( s)
U(s) = H(s) V(s) hay H ( s)  (3.2)
V ( s)
Dưới đây là bảng liệt kê một số hàm truyền thường được dùng cho phần tử
động học tuyến tính [12].
Bảng 1. Một số hàm H(s) thường dùng cho mô hình nơron nhân tạo

H(s) 1 1 1 Exp(-sT)
s 1  sT
Quan hệ vào ra u(t) = v(t) du (t ) du (t ) u(t)=v(t-T)
 v(t ) T  u (t )  v(t )
dt dt

Các hàm phi tuyến: phần này sử dụng hàm quan hệ phi tuyến f(.) cho đầu ra y,
để chặn tín hiệu ở đầu ra. Các hàm đầu ra thông thường là các hàm có giới hạn

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


35

ngưỡng phù hợp với đặc điểm đầu ra của nơron sinh vật. Hàm dạng này thường gọi
là hàm kích hoạt (activation function) thể hiện kích hoạt hay ức chế của một nơron.

 m 
y  f (u (t ))  f   xi (t )wi    (3.3)
 i 1 
Hàm phi tuyến gồm hai nhóm: nhóm hàm bước nhảy và nhóm hàm liên tục.
Đặc điểm chung của các hàm này thường tiến tới một giá trị cố định với các giá trị
được gán [0, 1] hoặc [-1, 1].
Tuỳ thuộc vào dữ liệu huấn luyện mà chúng ta xây dựng cấu trúc, luật học và
hàm kích hoạt thích hợp. Một số dạng hàm phi tuyến hay dùng [12] trong bảng 2.
Bảng 2. Một số hàm phi tuyến thường được sử dụng trong các mạng nơron

Tên hàm Công thức tương ứng Đặc tính

Bước nhảy 1 if x0


f(x)= 
đơn vị 0 if x0

Hard limit
Giới hạn cứng. 1 if x  0
f(x)= 
Hàm dấu (sgn)  1 if x  0

Hàm tuyến f(x)=x


tính
Hàm tuyến 1 if x  1

tính bão hoà f(x)=  x if  1  x  1
 1 if x  0

đối xứng

Hàm Sigmoid 2
f(x) = 1
1  e x
Lưỡng cực

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


36

Một số dạng khác cũng được sử dụng như: dạng hàm Gauss, hàm logarit, hàm
mũ, hàm arctg…
Tóm lại: mạng nơron nhân tạo là một cấu trúc xử lí thông tin phân tán dạng
song song với các đặc trưng sau:
 Nơron là một mô hình toán học dựa trên cấu trúc nơron sinh học.
 Mạng nơron gồm một số lượng lớn các nơron được kết nối qua lại chặt chẽ
với nhau.
 Những trọng số trên mối liên kết qua lại của các nơron chứa các tin tức.
 Một nơron có thể đáp ứng theo kích thích đầu vào, và đáp ứng của nó hoàn
toàn phụ thuộc vào các thông số bên trong.
 Mạng nơron có khả năng học, nhớ và tổng quát hoá từ các dữ liệu đã học
bằng cách điều chỉnh các trọng số lối vào.
 Các đáp ứng của mạng nơron thể hiện khả năng tính toán lớn.
Do các đặc trưng trên, nên mạng nơron nhân tạo thường còn được gọi là mô
hình xử lí phân tán song song hoặc mô hình tự cấu trúc hoặc hệ thống
Neuromorphic. Tốc độ tính toán của mỗi nơron là chậm (khoảng cỡ bằng 1/6 tốc độ
cổng Logic). Nhưng khả năng tính toán của mạng nơron nhanh hơn tốc độ tính toán
của máy tính bởi vì mạng nơron tính toán song song cho nên chỉ cần qua một số chu
kì tính, thì mạng đã cho kết quả của phép tính một hàm số phi tuyến phức tạp bất kì.
Đây là một ưu điểm quan trọng để ứng dụng mạng nơron trong các hệ xử lí, tính
toán.

3.2 Các mô hình mạng nơron và luật học

Cũng như các nơron sinh vật, các nơron nhân tạo có thể liên kết với nhau để
tạo thành mạng nơron nhân tạo. Có nhiều cách kết hợp các nơron nhân tạo thành
mạng, mỗi cách kết hợp cho một loại mạng nơron nhân tạo khác nhau [18]. Có
nhiều cách để phân loại các lớp mạng.
 Dựa vào số lớp có trong mạng:

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


37

 Mạng một lớp là mạng nơron có đầu vào và đầu ra trên mỗi một
phần tử. Nếu mạng nối các đầu ra của phần này với đầu vào của
phần tử kia gọi là mạng tự liên kết (Autoassociative Network)
 Mạng nhiều lớp gồm một lớp đầu vào và một lớp đầu ra. Các lớp
nằm giữa gọi là các lớp ẩn (Hidden Layers).
 Dựa vào đƣờng truyền tín hiệu trong mạng:
 Mạng truyền thẳng là mạng hai hay nhiều lớp mà quá trình truyền
tín hiệu từ đầu ra lớp này đến đầu vào lớp kia theo một hướng.
 Mạng phản hồi là mạng trong đó một hoặc nhiều đầu ra của các
phần tử lớp sau truyền ngược tới đầu vào lớp trước.
 Mạng tự tổ chức là mạng có khả năng sử dụng những kinh nghiệm
quá khứ để thích ứng với những biến đổi của môi trường. Loại mạng
này tự học thích nghi không cần có tín hiệu chỉ đạo từ ngoài.
Trong mỗi lớp mạng lại có nhiều mạng với các tên gọi và các đặc trưng khác
nhau. Một số mô hình mạng nơron cơ bản được mô tả trong hình 3.3.
Để mạng nơron hoạt động được thì phải dạy cho nó học. Luật học chia làm hai
loại [12]:
 Học cấu trúc (Structure Learning): tư tưởng của học cấu trúc là sử
dụng các luật biến đổi để tăng hoặc giảm số lớp nơron, kiểu liên kết để
làm cấu trúc mạng thay đổi. Tức là xác định số lớp và số nơron trong
mỗi lớp.
 Học tham số (Paramater Learning): học để chỉnh các giá trị trọng,
đảm bảo cho đầu ra mong muốn trên cơ sở các bộ đầu vào hoặc đầu ra.
Tức là xác định tham số của hàm kích hoạt a(.) và các trọng số Wij.
Trong học tham số lại chia thành ba kiểu: học có thầy (giám sát), học
không có thầy (không giám sát) và học củng cố, được biểu diễn trong
hình 3.4 dưới đây.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


38

Wij
X1 Y1

X2 Y2

Xm Yn (c)
(a)
Y1
X1

Y2
X2

Yn
Xm
Lớp vào Các lớp ẩn Lớp ra
(b)

X1
X1 Y1 Y1

X2 Y2 Y2
X2

Xm Yn Y3
X3

(d) (e)

Hình 3.3 Các mô hình kết nối mạng cơ bản: (a) Mạng truyền thẳng một lớp,
(b) Mạng truyền thẳng nhiều lớp, (c) nơron tự phản hồi, (d) Mạng phản hồi một lớp,
(e) Mạng phản hồi nhiều lớp.
 Học giám sát (Supervised Learning): hay gọi là học có tín hiệu chỉ đạo tức
là có yêu cầu giá trị của đầu ra để so sánh với đầu ra tính toán

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


39

 Học củng cố (Reinforcement Learning): có yêu cầu giá trị đầu ra, nhưng
không chi tiết (như: đầu ra chỉ được đánh giá từ “đúng, sai” hoặc “được,
không”).
 Học không giám sát (Unsupervised Learning): trong dạng học này không
có bất kỳ một thông tin phản hồi nào từ môi trường. Mạng phải tìm ra các
mẫu, đặc tính qui tắc, sự tương quan trong dữ liệu đầu vào và tập hợp lại để
tạo đầu ra. Khi tự tìm ra các đặc điễm này, mạng trải qua các thay đổi về
tham số của nó. Quá trình này được gọi là tự tổ chức.

M¹ng N¬ron
x y
®Çu vµo W ®Çu ra
thùc
T¹o tÝn
hiÖu lçi d
tÝn hiÖu lçi ®Çu ra
mong muèn
(a)

M¹ng N¬ron
x y
®Çu vµo W ®Çu ra
thùc
tÝn hiÖu T¹o tÝn
cñng cè hiÖu ®¸nh tÝn hiÖu
gi¸ cñng cè

(b)

M¹ng N¬ron
x y
®Çu vµo W ®Çu ra
thùc

(c)
Hình 3.4 Các luật học (a) Học giám sát; (b) Học củng cố; (c) Học không giám sát
Dạng chung cho học tham số:

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


40

Wi t   rxt  (3.4)


trong đó:  là hằng số học, r là tín hiệu học.
dwi (t )
Đối với các trọng biến đổi liên tục, có thể sử dụng:  rx(t )
dt
Lực khớp trong não thay đổi tỉ lệ tương quan giữa sự phát hoả của các nơron
trước và sau khớp. Nhiều kết quả thí nghiệm về sinh lý học thần kinh đã chứng minh
điều đó. Nếu coi cấu trúc mô hình mạng là phần xương thịt, thể xác thì các luật học
là phần trí tuệ thông minh của mạng nơron và các công trình nghiên cứu luật học
chiếm số lượng lớn nhất trong mấy chục thập kỷ qua.

3.3 Các ứng dụng của mạng nơron nhân tạo

Mạng nơron có nhiều ứng dụng trong thực tế [4]. Những ứng dụng phải kể đến
là: ứng dụng trong tin học (nhận dạng, nhận mẫu ký tự, nhận dạng ảnh, thực hiện
các thuật toán tối ưu); các ứng dụng trong Viễn thông (nhận dạng, mô hình hoá kênh
phi tuyến, ứng dụng bài toán định tuyến); ứng dụng trong đo lường; điều khiển
Robot; y tế;… Để tìm hiểu vấn đề này, trước hết ta hãy xét một số ví dụ để thấy
được ứng dụng của mạng nơron trong nhận dạng và phân loại mẫu.
Xét bài toán với 2 đầu vào (hình 3.5)
X01=+1

W0
X1
W1 y


X2
W2

Hình 3.5 Mô hình nơron đơn giản

Ta có y = f (x1w1 + x2w2 + w0)


Y = 1 nếu x1w1 + x2w2 + w0 >0
Y = -1 nếu x1w1 + x2w2 + w0 <0

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


41

Với mọi giá trị w1, w2, luôn tồn tại đường thẳng chia mặt phẳng làm 2 phần
như hình 3.6 (gọi là đường phân cách). Nói cách khác các giá trị đầu ra được phân
làm 2 loại phân biệt.
Phƣơng trình đƣờng phân cách:
Trên đường phân cách thì các đầu ra không phân biệt, tức là:
Y=0 <=>s = x1w1 + x2w2 + w0 = 0

Do đó:  w w
1 0
x 2 x 1
w2 w 2

đây là phương trình đường thẳng với hệ số góc là:

   w1 và hệ số chặn    w0
w2 w 2

Xét với 3 đầu vào ta sẽ có đầu ra nhƣ sau:


s = x1w1 + x2w2 + x3 w3 + w0 = 0 đây là phương trình mặt phẳng. Vậy đầu ra sẽ bị
mặt phẳng chia làm 2 phần tách biệt.
Khi có nhiều hơn 3 đầu vào: Người ta đã chứng minh được rằng luôn tồn tại
một siêu diện phẳng chia đầu ra làm 2 phần tách biệt. Một nằm trong siêu diện, và
một nằm ngoài siêu diện.
Vậy thì với đường phân cách tuyến tính ta có thể phân loại được mọi đầu vào
không? Câu trả lời là “không”
Xét bài toán 4 đầu vào bài toán XOR (hình 3.7)
(+1,+1)  -1

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


42

(+1,-1)  +1
(-1,+1)  +1
(-1,-1)  -1
không có một đường thẳng nào có thể phân loại đầu ra thành 2 phần. (hình 3.7)
(-1,+1) X2
Đường phân cách
+ —
— (+1,+1)

X1

(-1,-1) — + (+1,-1)

Hình 3.7 Đường phân cách với bài toán XOR

 Các giải pháp: Có hai giải pháp


 Dùng thêm một đường phân cách tuyến tính (hình 3.8)
 Dùng đường bao phi tuyến [5] (hình 3.9)

Đường phân
X2 cách

+ —
— G2
G1 -
X1

— +

Hình 3.8 Hai đường phân cách để phân loại

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


43

Đường bao
phi tuyến X2

+ —

X1

— +

Hình 3.9 Đường bao phi tuyến
X1
W1 X01=+1

W0
X2
W2
y

W11 

W22

W12

Hình 3.10 Mô hình nơron một lớp bậc hai

Mô hình toán học


Trên hình 3.8, ta phải dùng hai đường thẳng để phân bốn điểm thành 2 miền
riêng biệt
Giả sử: g1 = x1w1 + x2w2 + w0
g2 = x1w3 + x2w4 + w5
g = g1 * g2 = w11 x12 + w22 x22 + w1x1 + w2x2 + w12x1x2 + w0 (*)

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


44

Đây là phương trình của 1 đường cong khép kín. Ta có thể biểu diễn trong mô
hình mạng nơron 1 lớp với 2 đầu vào như hình 3.10. Với đường cong khép kín ta
cũng phân biệt 4 điểm đó thành 2 miền, tức là ta phải dùng giải pháp mạng bậc cao.

3.4 Kết luận

Với mạng nơron 1 lớp chỉ có thể xác định được một nửa mặt phẳng. Để có thể
xác định được toàn bộ mặt phẳng đòi hỏi mạng nơron phải nhiều hơn 1 lớp. Mạng
nơron nhân tạo là một mô hình của nơron sinh vật. Dựa trên những khả năng to lớn
và tiềm ẩn của bộ não con người về khả năng nhận biết và nhận dạng. Mạng nơron
nhân tạo đang dần được nghiên cứu vào các lĩnh vực và cũng đã cho những kết quả
đáng kể. Với những khả năng tiềm ẩn của nơron sẽ hứa hẹn nhiều ứng dụng to lớn.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


45

CHƢƠNG 4

MẠNG LAN TRUYỀN NGƢỢC NHẬN DẠNG TIẾNG VIỆT

Mạng nơron có thể được ứng dụng để giải quyết nhiều bài toán phức tạp mà
các phương pháp truyền thống khó có thể làm được. Vấn đề nêu ra ở đây là nhận
dạng tiếng Việt, đó là tập các âm tiết mà mạng nơron phải nhận ra đúng đó là âm tiết
nào. Có nhiều phương pháp huấn luyện cho mạng nơron, như: phương pháp lan
truyền ngược (BP-Back Propagation), giải thuật di truyền (GA-Genetic Algorithm)
và phương pháp tối ưu các phần tử nhỏ (PSO-Particle Swarm Optimization).
Phương pháp thứ nhất là phương pháp huấn luyện đầu tiên cho mạng nơron
nhiều lớp, sử dụng thuật toán hạ gradient và bằng cách truyền lại lỗi [18]. Lỗi được
tính ở đầu ra, mỗi trọng được tính để phù hợp với lỗi đó. Các trọng được sửa đổi và
lỗi được truyền ngược tới lớp trước của các trọng liên kết.

4.1 Phƣơng pháp lan truyền ngƣợc

BP (Back Propagation) là thuật toán hạ Gradient. Phương pháp này có sự thay


đổi các trọng liên kết trong mạng nơron để giảm bớt sai số tại đầu ra của mạng. Đây
là một thuật toán huấn luyện chuẩn cho mạng nơron. Thực chất, ở đây ta áp dụng
phương pháp gradient để tìm giá trị tối ưu của các trọng w ij sao cho tổng bình
phương sai số là nhỏ nhất. Nhược điểm của phương pháp này là có thể chỉ đạt tối ưu
cục bộ. Phương pháp bình phương cực tiểu truy hồi đảm bảo đạt tối ưu toàn cục,
nhưng không áp dụng được ở đây vì với các nơron có hàm kích hoạt a(.) phi tuyến
thì sai số không còn là tuyến tính đối với các trọng nữa.
Bài toán học tham số: giả thiết cấu trúc của mạng đã được xác định trước. Để
đơn giản ta xét mạng 3 lớp hình 4.1. Mạng có (m-1) nơron đầu vào, n nơron đầu ra
và lớp ẩn có (l-1) nơron. Hàm kích hoạt a(.) không đổi. Ta phải tìm các trọng w iq và
vqj để xấp xỉ tốt nhất quan hệ giữa n đầu ra y i với (m-1) đầu vào xj theo một tập p
mẫu{x(k), y(k)} với k = 1, 2, ..., p.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


46

Vqj Wiq
y1 d1
XX
11 1 1 X
 
 e1
2 
  yi di
Xj
i X
q
Xm-1  ei

 yn dn
Xm = -1 l -1 n X

en
l
z l = -1

Lớp vào Lớp ẩn Lớp ra

Hình 4.1 Cấu trúc mạng truyền thẳng ba lớp


Với một cặp vào ra {x(k), y(k)}, luật học lan truyền ngược thực hiện hai pha trên
luồng dữ liệu như sau:
 Pha 1: Mẫu vào x(k) được truyền thẳng từ lớp đầu vào tới lớp đầu ra y(k).
 Pha 2: Sai lệch giữa d(k) và y(k) là e(k) được truyền ngược lại từ lớp ra tới
lớp ẩn trước đó để thay đổi giá trị trọng.
Trước hết ta mở rộng véctơ đầu vào thêm một thành phần xm = -1 và thêm một
thành phần nơron thứ l có đầu ra zl = -1 cho lớp ẩn để biểu diễn không tường minh
các trọng vqj và wiq. Tập trọng của lớp ẩn là vqj với {q = 1, ..., l; j = 1, ..., m}, tập
trọng của lớp ra là wiq với {q = 1, ..., l; i = 1, ..., n}.
 Lớp vào: Chỉ để truyền tín hiệu cho lớp sau.
 Lớp ẩn: Với tập mẫu đầu vào x, nơron thứ q nhận tổng đầu vào là:
m
netq   vqj x j với q  1, l  1 (4.1)
j 1

m 
Đầu ra của lớp ẩn: zq  anetq   a  vqj x j  (4.2)
 j 1 

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


47

 l m 
 Lớp ra: yi  aneti   a  wiq a  vqj x j   (4.3)
 q 1  j 1 
Hàm mục tiêu cần cực tiểu hoá:

E
1 p n k 

2 k 1 i 1
di  yi k  
2
(4.4)

Ta có thể cập nhật các trọng từng bước, mỗi khi có một mẫu mới {x (k), y(k)}
xuất hiện theo phương pháp hạ gradient nhằm cực tiểu hoá hàm sai số:

E k    di  yik  2
1 n k 
(4.5)
2 i 1
Trọng cho lớp ra cần hiệu chỉnh là: wiq  wiqk new  wiqk old (4.6)

Theo phương pháp hạ gradient ta có:


E  k  E  k  yi k  neti k 
wiqk       k  k    di k   yi k  a' neti k  zq k  (4.7)
wiq yi neti wiq
Trọng cho lớp ẩn cần hiệu chỉnh là:
vqj  vqjk new  vqjk old (4.8)

Theo phương pháp hạ gradient ta có:


E  k  yi k 
dik   yik  a' netik  wiq a' netqk  x jk 
n
vqj   k 
yi vqj
  
i 1
(4.9)

aneti k   anetq k 

Trong đó: a neti  
' k 
và a' netq k    (4.10)
k 
neti netq k 

Như đã giả thiết các nơron có hàm kích hoạt không đổi và giống nhau nên:
a' netik    a' netqk    a' net (4.11)

Từ công thức (4.5) tính hàm E, theo phương pháp hạ gradient có thể tính
ngược trọng từ lớp ra, tiếp theo đến trọng của lớp trước đó. Do đó, có thể tính được
các trọng cho mạng nơron truyền thẳng có số lớp bất kỳ.
Thuật toán huấn luyện BP, có thể bị mắc kẹt tại cực tiểu cục bộ trong không
gian giải pháp - là tập các giải pháp có tính tối ưu gần như nhau nhưng không phải
là tối ưu toàn cục. Đây là vấn đề cần lưu ý với phương pháp hạ gradient. Nếu mạng

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


48

được lấy ngẫu nhiên lại và việc huấn luyện được bắt đầu lại, thì việc tìm kiếm sẽ có
hy vọng tránh được vấn đề tối ưu phụ ở lần chạy đầu tiên. Đó là một trong các ưu
điểm chính của phương pháp mới phát triển từ BP, đó không phải là phương pháp
hạ gradient, không bị mắc kẹt tại cực tiểu cục bộ. Mạng sẽ bất lợi khi ở tình trạng
(over - fit) dữ liệu huấn luyện. Do đó, lỗi của mạng được tạo ra quá nhỏ thì mạng sẽ
khó có thể tổng quát hoá với dữ liệu chưa được biết trước.

4.2 Ứng dụng mạng lan truyền ngƣợc cho nhận dạng tiếng Việt

4.2.1 Mô hình nhận dạng và phân loại mẫu

Một trong các khả năng của mạng nơron đó là phân loại mẫu. Mẫu có thể mô
tả một đối tượng, một sự kiện hoặc một hiện tượng. Mạng nơron có thể phân loại:
 Mẫu có tính không gian.
 Mẫu có tính thời gian.
Mô hình nhận dạng và phân loại chung được biểu diễn trong hình 4.2:

Phép lấy thô Dữ


Bộ chuyển liệu Bộ trích chọn
đổi đặc trưng
Không gian Không gian
dữ liệu thô mẫu
Không gian Các đặc
đặc trưng trưng
Phân loại
(a) Bộ phân
loại
x1
x
 2
 Bộ phân Phân loại
X
loại
 io  1 or 2 or...or R


 x n Mẫu
(b)
Hình 4.2 Hệ thống nhận dạng và phân loại
(a) Mô hình chung (b) Bộ phân loại

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


49

Ví dụ các mẫu không gian như: các bức tranh, các hình ảnh video, các bản đồ
thời tiết hoặc các ký tự dưới dạng các bức tranh. Các mẫu thời gian như: các tín hiệu
tiếng nói. Các mẫu thời gian thường bao gồm dữ liệu xuất hiện theo thứ tự thời gian,
thay đổi theo thời gian. Mục đích của phân loại mẫu là xác định một đối tượng, sự
kiện hay hiện tượng vật lý theo một trong các phân loại cho trước.
Hệ thống phân loại bao gồm một bộ chuyển đổi đầu vào (Input Transducer)
cung cấp mẫu dữ liệu đầu vào cho bộ trích chọn đặc trưng (Feature Extractor).
Thông thường, đầu vào cho bộ trích chọn đặc trưng là tập của các véctơ dữ liệu
thuộc một loại nào đó. Giả sử mỗi tập bao gồm các số thực tương ứng với các kết
quả đo được trong một tình huống vật lý cụ thể. Dữ liệu được chuyển đổi tại đầu ra
của bộ chuyển đổi có thể được nén lại. Dữ liệu được nén lại gọi là các đặc trưng
(Features). Bộ trích chọn đặc trưng thực hiện việc giảm số chiều của dữ liệu. Số
chiều không gian đặc trưng nhỏ hơn nhiều so với không gian mẫu. Các véctơ đặc
trưng sau khi trích chọn vẫn giữ được tính chất chủ yếu của dữ liệu mà không ảnh
hưởng đến kết quả nhận dạng của hệ thống, lại giúp hệ thống thao tác với dữ liệu dễ
hơn. Véctơ mẫu X trong hình 4.2(b) bao gồm các thành phần có thể là các đặc trưng
hoặc là mẫu dữ liệu khi không có trích chọn đặc trưng riêng.
Đầu vào của bộ phân loại là véctơ X. Kết quả phân loại tại đầu ra của bộ phân
loại cho bởi hàm phân loại i0(X), trong đó i0 nhận một trong các giá trị 1, 2, ..., R.
Ta có: i0  i0  X  với X  x1 , x2 , ...., xn T (4.12)

Hai cách đơn giản để biểu diễn véctơ mẫu là:


 Trong miền không gian. Biễu diễn X  x 1 , x 2 ,..., x n  với xi = 1 nếu thoả
T

mãn điều kiện nào đó, ngược lại xi = 0 (hoặc -1).


 Trong miền thời gian. Ta biểu diễn x i  f ti  với i  1, n .
Nếu biễu diễn sự phân loại trên đồ thị sẽ thấy rõ hơn. Mỗi mẫu được mô tả
bằng một điểm trong không gian Euclidean n chiều (En) hay không gian mẫu. Các
điểm trong không gian đó tương ứng các thành phần trong bộ n véctơ của X. Tập
các mẫu thuộc phân loại j được ký hiệu là  j với j =1, 2, ... , R.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


50

Ta có: i0  X   j với X   j (4.13)

 j được gọi là vùng quyết định. Các vùng quyết định này là rời nhau.
Hàm biệt thức
Xét p mẫu n chiều x 1 , x 2 ,..., x p . R là số phân loại của p mẫu, trong đó p là hữu

hạn, (p >> n và p > R). Trước hết ta xét khái niệm hàm biệt thức, hàm biệt thức cho
ta biết mạng nơron được được huấn luyện để phân loại như thế nào.
Giả sử bộ phân loại được thiết kế đảm bảo thực hiện chính xác nhiệm vụ phân
loại. Trong quá trình phân loại, thành phần thuộc phân loại nào được xác định dựa
vào R hàm biệt thức g1  X , g2  X ,..., g R  X  . Giả sử gi  X  vô hướng, khi đó mẫu X
thuộc phân loại i khi và chỉ khi:
gi  X   g j  X  với mọi i  j và i, j  1, R (4.14)

Như vậy, trong vùng quyết định  j hàm biệt thức thứ i có giá trị lớn nhất.

Hàm biệt thức giúp ta phân biệt chính xác mẫu đưa vào thuộc phân loại nào. Hai
hàm gi  X  và g j  X  của hai vùng  i và X j kề nhau xác định một mặt quyết định

giữa các lớp i và j trong không gian En. Trên mặt quyết định, các phần tử thuộc cả
hai vùng quyết định. Từ đó phương trình của mặt quyết định là:
gi  X   g j  X   0 (4.15)

Mô hình phân loại dựa vào hàm biệt thức như hình 4.3.
Với R = 2, tức là chỉ có hai vùng phân loại 1 và 2. Khi đó phương trình của
mặt quyết định giữa hai vùng quyết định 1 và 2 như sau:
g  X   g1  X   g 2  X  (4.16)
- Nếu g X   0 thì mẫu vào thuộc phân loại 1.
- Nếu g X   0 thì mẫu vào thuộc phân loại 2.
Hàm ngưỡng được sử dụng để phân loại đầu ra trong trường hợp này là:
 1 nÕu g  X   0
i0   (4.17)
 1 nÕu g  X   0
Khi đó mô hình phân loại như hình 4.4.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


51

g1  X 

g2  X  Phân loại
Bộ chọn giá
X
trị lớn nhất i0

gR X 

Hình 4.3 Mô hình phân loại dựa vào hàm biệt thức

i0
X 1 i0
g(X)

g
-1
(a)

X2 g(X) > 0 g(X) = 0

g(X) < 0

Lớp 1 X1

Lớp 2 (b)

Hình 4.4 Mô hình phân loại trong trường hợp cụ thể


(a) R = 2 (b) Mặt quyết định với n = 2 và R = 2

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


52

Phân loại mẫu vào theo khoảng cách nhỏ nhất


Xét đầu vào là mẫu X  x 1 , x 2 ,..., x n  và đầu ra có R phân loại. Mỗi lớp trong
T

R lớp phân loại đó được đặc trưng bởi các tâm điểm P1 , P2 ,..., PR tương ứng với các
véctơ X 1 , X 2 ,...., X R . Phương pháp phân loại theo khoảng cách nhỏ nhất có nghĩa là

 
với đầu vào X, so sánh X với các mẫu chuẩn Xi i  1, R . Nếu nó gần với mẫu nào
nhất thì nó thuộc loại đó.
Khoảng cách giữa mẫu vào X và véctơ mẫu X i xác định theo chuẩn Euclidean:

X X i   X  X i T X  X i  (4.18)

Biểu thức (4.18) có thể viết như sau:

X X i  X T X  2 X iT X  X iT X i
2
(4.19)

Ta phải tìm i sao cho khoảng cách từ X đến Xi nhỏ nhất. X T X không phụ thuộc
1
vào giá trị của i, do đó ta phải tìm giá trị lớn nhất của X iT X  X iT X i .
2

Đặt:
1

gi  X   X iT X  X iT X i với i  1, R
2
 (4.20)

gi  X   Wi T X  Wi ,n1 
với i  1, R  (4.21)

Wi  X i
Với:

 1 T 
và i  1, R  (4.22)
Wi ,n 1   2 X i X i

Vì X  x 1 , x 2 ,..., x n  nên ta có: W  w1 , w2 ,..., wn 


T T

Bộ phân loại theo khoảng cách nhỏ nhất gọi là bộ phân loại tuyến tính, hay là
máy tuyến tính. Cách phân loại này xác định thành phần thuộc lớp nào dựa vào
khoảng cách gần nhất giữa mẫu và đầu vào nên còn được gọi là phân loại tương
quan (Correlation Classfication). Mô hình phân loại trong 4.21 như hình 4.5.
Mô hình này là trường hợp đặc biệt của mô hình phân loại chung biểu diễn trên
hình 4.3. Nó bao gồm R hàm vô hướng và một bộ chọn giá trị lớn nhất. Trong quá
trình phân loại, sau khi tính R hàm biệt thức gi  X  của các mẫu vào, bộ phân loại
lấy giá trị của hàm biệt thức lớn nhất. Cuối cùng là phân loại của mẫu vào đó.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


53

Chú ý: Phương trình mặt quyết định giữa hai vùng quyết định i và j là:
gi  X   g j  X   0
(4.23)
 Wi T X  Wi ,n1  WjT X  Wj ,n1  0

X 
Đặt: Y  (4.24)
1
khi đó công thức (4.21) được viết lại như sau:
gi Y   Wi T Y (4.25)

 
Sử dụng véctơ mẫu Wi ,n1 với i  1, R , khi đó véctơ trọng liên kết gồm n+1

thành phần. Để đơn giản ký hiệu các véctơ trọng và véctơ trọng được thêm vào như
nhau. W11

g1  x 
W12
+


W1, n+1
1 BỘ CHỌN
Phân loại
W1
GIÁ TRỊ
X 
 CỰC ĐẠI
Wn1

Wn2
g R x 
+

Wn, n+1
1
Wn
Hình 4.5 Bộ phân loại tuyến tính

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


54

4.2.2 Bài toán nhận dạng tiếng Việt

Mô tả bài toán
Bài toán nhận dạng tiếng Việt được thực hiện trong đề tài này đó là nhận dạng
các từ đơn. Trong một số ứng dụng nhỏ: ra lệnh, điều khiển một hoạt động nào đó
của máy móc. Như: điều khiển đóng mở; di chuyển của động cơ; … Đề tài này chọn
nhận dạng mười từ đơn là số đếm: không, một, hai, …, chín. Đầu vào của mạng
nơron chính là các tham số MFCC được trích ra từ quá trình trích chọn các đặc
trưng của tín hiệu âm thanh tiếng Việt các từ đơn trên. Đầu ra của mạng nơron là
một véctơ Y = [y0, y1, y2, y3, y4, y5, y6, y7, y8, y9] với đầu ra mong muốn tương ứng
cho các từ đưa vào là:
 Không  [1 0 0 0 0 0 0 0 0 0]
 Một  [0 1 0 0 0 0 0 0 0 0]
 Hai  [0 0 1 0 0 0 0 0 0 0]
 Ba  [0 0 0 1 0 0 0 0 0 0]
 Bốn  [0 0 0 0 1 0 0 0 0 0]
 Năm  [0 0 0 0 0 1 0 0 0 0]
 Sáu  [0 0 0 0 0 0 1 0 0 0]
 Bảy  [0 0 0 0 0 0 0 1 0 0]
 Tám  [0 0 0 0 0 0 0 0 1 0]
 Chín  [0 0 0 0 0 0 0 0 0 1]
Cấu trúc mạng lan truyền ngược
Mạng BP sử dụng cho bài toán nhận dạng tiếng Việt gồm có ba lớp: lớp vào,
lớp ra, lớp ẩn. Về lý thuyết số lớp của mạng có thể chọn bất kỳ, nhưng để đơn giản
trong chương trình ta chỉ chọn mạng gồm 3 lớp.
 Lớp vào: Gồm có 12 nơron tương ứng với 12 tham số MFCC đầu vào được
trích chọn sau quá trình biến đổi tín hiệu âm thanh nhằm trích chọn tham số
đặc trưng của tín hiệu đầu vào.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


55

 Lớp ra: Số nơron lớp ra tuỳ thuộc vào cách mã hoá đặc trưng để xác định
từng ký tự đầu ra mong muốn. Trong đề tài này số trạng thái đầu ra là
mười, nên số đầu ra chọn là mười. Tương ứng lớp ra sẽ có mười nơron.
 Lớp ẩn: Kích thước của lớp ẩn là một vấn đề thường được đặt ra trong các
ứng dụng mạng truyền thẳng nhiều lớp vào các bài toán thực tế. Việc phân
tích chính xác vấn đề này rất khó vì tính phức tạp của sơ đồ mạng, do đó,
kích thước của một lớp ẩn thường được xác định theo thử nghiệm. Đối với
một mạng có kích thước vừa phải (hàng trăm hay hàng nghìn đầu vào), số
lượng lớp ẩn chỉ là phân số tương đối nhỏ của lớp đầu vào. Nếu mạng
không hội tụ tốt thì cần tăng thêm số nơron lớp ẩn. Nếu nó hội tụ tốt, thì có
thể thử ít nơron ẩn hơn và sau đó chọn kích thước dựa trên toàn hiệu năng
của hệ thống.
Qua một số thử nghiệm, ta lựa chọn số nơron lớp ẩn là 4 chấp nhận được.

Lớp vào Lớp ẩn Lớp ra


Hình 4.6 Cấu trúc của mạng lan truyền ngược sử dụng để nhận dạng
Mô tả luật học lan truyền ngƣợc
Mạng BP cần một tập mẫu để huấn luyện, giả sử tập huấn luyện gồm p mẫu (là
cặp đầu vào và đầu ra mong muốn) {(xk,yk)} với k=1, 2,..., p. Quá trình huấn luyện
mạng được bắt đầu với các trọng số tuỳ ý - được khởi tạo ngẫu nhiên xung quanh
giá trị 0 và tiến hành lặp đi lặp lại trên tập mẫu huấn luyện tới khi đạt được giá trị lỗi
mong muốn. Mỗi lần lặp được gọi là một thế hệ. Trong mỗi thế hệ, mạng điều chỉnh

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


56

các trọng sao cho sai số giảm dần. Tiến trình điều chỉnh nhiều lần giúp cho trọng
dần dần đạt được tập hợp các giá trị tối ưu. Thông thường mạng cần thực hiện nhiều
thế hệ trước khi việc huấn luyện mạng được hoàn tất.
Việc cập nhật trọng có thể thực hiện ngay khi xử lý từng mẫu hoặc khi đã xử lý
tất cả các mẫu trong tập huấn luyện. Trong luận văn sử dụng phương pháp cập nhật
trọng sau khi xử lý tất cả các mẫu.
Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh xạ các
biến vào của mẫu thành các giá trị đầu ra với việc sử dụng các giá trị của các trọng
khởi đầu cho trước. Sau đó, tổng sai số được tính dựa trên giá trị đầu ra tính toán và
đầu ra mong muốn cho tất cả các mẫu vào. Từ sai số đó, mạng sẽ cập nhật lại các
trọng số theo nguyên tắc lan truyền ngược sai số, đây là quá trình lan truyền ngược.
Do vậy, để học mỗi mẫu mạng thực hiện hai bước: lan truyền tiến - thực hiện
ánh xạ, lan truyền ngược sai số - cập nhật các trọng.
Quá trình lan truyền tiến
Xét một cặp mẫu huấn luyện vào - ra mong muốn {x,d}. Với véctơ mẫu vào x,
nơron thứ q của lớp ẩn nhận được:
m
netq   vqj x j (4.26)
j 1

m 
và tạo đầu ra: zq  f q netq   f q   vqj x j  (4.27)
 j 1 
trong đó, q=1, 2, ..., l với l là số nút của lớp ẩn; m là số nút của lớp vào. Hàm
kích hoạt của lớp ẩn là hàm sigmoid fq(.):

f q net q  
1
1  exp netq 
(4.28)

Đầu ra của tất cả các nơron lớp ẩn được đưa thành đầu vào của lớp ra. Tổng
đầu vào của nơron thứ i lớp ra là:
l l  m 
net i   wiq z q   wiq f q   vqj x j  (4.29)
q 1 q 1  j 1 
trong đó: i = 1, 2, ..., n với n là số nơron của lớp ra.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


57

Các nơron này được qua mạng, để tính đầu ra thực sự cho mạng nơron. Với
fi(.) là hàm kích hoạt của lớp ra, đầu ra của nơron thứ i của lớp ra:

 l   l m 
yi  fi neti   fi   wiq zq   fi   wiq f q   vqj x j   (4.30)
 q 1   q 1  j 1 
Hàm kích hoạt của nơron lớp ra để đơn giản chọn như (4.28) là hàm sigmoid.
Quá trình lan truyền ngƣợc
Khi đã có giá trị đầu ra thực sự, các tín hiệu lỗi được tính toán để lan truyền
ngược trở lại cập nhật các trọng liên kết. Các tính toán đó được thực hiện dựa trên
hàm chi phí (hàm lồi). Hàm chi phí cho mạng nơron trong cả hai bài toán nhận dạng
âm thanh tiếng Việt được xây dựng như công thức (4.31) sau:

 d  y   d  
1 p n
1 p n
Ew   
    k 
 
2 2
 f neti
k k
i i i (4.31)
2 k 1 i 1 2 k 1 i 1

Theo phương pháp hạ Gradient - tức là tiến trình cập nhật trọng số theo hướng
giảm Gradient. Trọng liên kết giữa lớp ẩn và lớp ra được cập nhật như sau:

E  E  yi  neti 
wiq         (4.32)
wiq  
 i  neti
y  wiq 
trong đó:  là hằng số học, chỉ tốc độ cập nhật được tuỳ chọn thường trong
khoảng 0 < < 2.
Từ các công thức (4.29), (4.30), (4.31) ta có:
wiq   di  yi  f ' neti zq   oi zq (4.33)

trong đó oi là tín hiệu lỗi tại nơron thứ i của lớp ra (Output):
 oi  di  yi  f ' neti  (4.34)
Đối với trọng liên kết giữa nơron thứ j của lớp vào và nơron thứ q của lớp ẩn
sẽ được cập nhật như sau:

E  E  netq    z  netq 
vqj           E  q  
vqj net  v   z  net  v 
 q  qj   q  q  qj 
(4.35)
   di  y i  f ' neti wiq  f ' netq x j
n

i 1

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


58

Từ (4.34) ta có:

vqj     oi wiq  f ' netq x j   hq x j


n
(4.36)
i 1

trong đó kq là tín hiệu lỗi của nơron thứ q trong lớp ẩn:

 hq  f ' netq   oi wiq


n
(4.37)
i 1

Ta có f ' netq   zq 1  zq  (4.38)


n
Từ (4.37), thành phần 
i 1
oi wiq có thể coi là tổng trọng các tín hiệu lỗi của

nơron tiếp theo. Do đó, việc cập nhật trọng của một lớp phải dựa trên tín hiệu lỗi
của các nơron lớp sau nó hay là được thực hiện sau khi đã cập nhật trọng của lớp
sau nó. Điều đó có nghĩa là tín hiệu lỗi đã được lan truyền ngược từ lớp đầu ra trở
lại lớp đầu vào nhằm cập nhật các trọng liên kết của các lớp tương ứng.
Quá trình huấn luyện mạng được lặp đi lặp lại hai pha trên tập mẫu huấn luyện
cho tới khi đạt được mức lỗi nhỏ mong muốn.
Thuật toán lan truyền ngược để huấn luyện mạng nơron BP một cách tổng quát
được tóm tắt như sau:
Xét một mạng với Q lớp truyền thẳng, với q = 1, 2,..., Q, ký hiệu qneti và qyi lần
lượt là tổng đầu vào và đầu ra của nơron thứ i trong lớp q. Mạng có m nút đầu vào
q-1
và n nút ra, qWij biểu thị trọng liên kết từ yj đến qyi

Đầu vào: một tập các cặp huấn luyện {(xk, dk) với k = 1, 2, ... , p}
 Bƣớc 0 (khởi tạo): chọn 0<<2 và Emax (là giá trị lỗi cực đại có thể được).
Khởi tạo các trọng ngẫu nhiên nhỏ. Lập E = 0 và k = 1.
 Bƣớc 1 (lặp huấn luyện): đưa mẫu đầu vào thứ k tới lớp vào (q=1)
q
yi = 1yi = xik với mọi i (4.39)
 Bƣớc 2 (lan truyền tiến): lan truyền tiến tín hiệu qua mạng sử dụng:
 
q
yi  f  q neti   f   q wij q1 y j  (4.40)
 j 
với mỗi i và q tới khi các đầu ra của lớp ra Qyi đều được áp dụng.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


59

 Bƣớc 3 (tính toán lỗi): tính giá trị lỗi và tín hiệu lỗi Qi cho lớp đầu ra:

 di  yi   E
1 n k Q 2
E (4.41)
2 i 1
 i  dik  Q yi  f '  Q neti 
Q
(4.42)

 Bƣớc 4 (lan truyền ngƣợc lỗi): lan truyền lỗi ngược lại để cập nhật các
trọng và tính tín hiệu lỗi Qi cho các lớp trước:
 q wij   q i q-1
y j và q wij
new
 q wijold  q wij (4.43)

 i  f '  q1 neti  q w ji q j với q = Q, Q-1,..., 2.


q 1
(4.44)
j

 Bƣớc 5 (lặp 1 chu kỳ): kiểm tra xem toàn bộ tập dữ liệu huấn luyện đã
được duyệt qua một lần chưa. Nếu k < p thì k = k + 1 và quay lại bước 1.
Nếu không thực hiện bước 6.
 Bƣớc 6 (kiểm tra lỗi toàn thể): kiểm tra xem lỗi toàn thể đã đạt được hay
chưa, nếu E < Emax thì kết thúc quá trình huấn luyện và có được các giá trị
trọng cuối cùng. Nếu không E = 0, k = 1 và bắt đầu một chu kỳ mới bằng
việc quay lại bước 1.
Lưu đồ thuật toán mạng lan truyền ngược được biểu diễn trong hình 4.7

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


60

Hình 4.7 Lưu đồ thuật toán mạng lan truyền ngược

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


61

4.2.3 Phân tích và đánh giá các tham số của hệ thống nhận dạng

 Phân tích chọn giá trị khởi tạo trọng

Giá trị trọng khởi tạo của một mạng nhiều lớp truyền thẳng ảnh hưởng lớn tới
lời giải cuối cùng của bài toán. Thông thường chúng được khởi tạo tại các giá trị
ngẫu nhiên nhỏ. Các trọng khởi tạo bằng nhau không thể huấn luyện mạng tốt nếu
lời giải cần xây dựng các giá trị trọng không bằng nhau. Các giá trị trọng khởi tạo
không thể lớn, nếu không hàm sigmoid sẽ bão hoà từ khi bắt đầu và hệ thống sẽ bị
kẹt tại một cực tiểu cục bộ hoặc một vùng bằng phẳng rất gần điểm bắt đầu. Một
phương pháp thích hợp là chọn giá trị trọng Wij trong khoảng
 3 3 
 , 
 k i k i 

trong đó ki là số lượng nơron j nối tới nơron i (số lượng liên kết đầu vào của
nơron i) [9].
Thực tế, nhiều nghiên cứu về thuật toán đã chỉ ra rằng, tiếp tục huấn luyện mạng
trên một bề mặt lỗi thấp sẽ gây ra hiện tượng “trôi nổi” trọng không mong muốn. Để
khắc phục vấn đề “trôi nổi” này, việc học của mạng nên bắt đầu với giá trị khởi tạo
trọng ngẫu nhiên khác. Tuy nhiên, việc lựa chọn giá trị trọng khởi tạo chỉ là một
trong nhiều nhân tố ảnh hưởng tới việc huấn luyện mạng để có thể đạt được lỗi cực
tiểu có thể chấp nhận được.
Qua nhiều phép thử khác nhau cho các giá trị trọng khởi đầu có thể rút ra: Đối
với bài toán nhận dạng này, giá trị trọng được khởi tạo ngẫu nhiên xung quanh 0.5
đã chứng tỏ kết quả huấn luyện tốt cùng với các tham số khác.
 Lựa chọn hằng số học
Một nhân tố quan trọng khác ảnh hưởng đáng kể tới hiệu quả và độ hội tụ của
thuật toán học lan truyền ngược là hằng số học . Tuy nhiên, thông thường giá trị
tối ưu của hằng số học phụ thuộc vào bài toán cần giải quyết. Không có một giá trị
hằng số học nào thích hợp với mọi trường hợp học khác nhau. Vấn đề này dường
như là thông thường cho tất cả các kiểu tối ưu dựa trên Gradient. Trong khi hạ

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


62

Gradient có thể là một phương pháp hiệu quả để có được các giá trị trọng mà cực
tiểu hoá lỗi, thì bề mặt lỗi thường có những tính chất làm cho thủ tục đó hội tụ
chậm. Nếu cực tiểu nằm trên bề mặt rộng tạo ra các giá trị Gradient nhỏ. Khi đó giá
trị  lớn hơn sẽ làm cho độ hội tụ nhanh hơn. Tuy nhiên, đối với các bài toán cực
tiểu nằm trên bề mặt dốc và hẹp, chọn giá trị  nhỏ để tránh hiện tượng vượt qúa đối
với lời giải. Thực tế,  được chọn bằng thử nghiệm đối với mỗi bài toán. Nhưng chỉ
có các giá trị hằng số học nhỏ mới đảm bảo hạ Gradient thực sự, tuy nhiên thời gian
cập nhật lại kéo dài. Giá của việc đảm bảo này là tổng số bước học tăng lên để có
được lời giải thỏa đáng. Mặc dù, việc lựa chọn hằng số học phụ thuộc vào lớp bài
toán học và kiến trúc mạng, giá trị  trong khoảng [10-3 , 10] được sử dụng thành
công trong nhiều thử nghiệm đối với thuật học lan truyền ngược [9]. Đối với các
hằng số học lớn, tốc độ học có thể tăng nhưng việc học có thể không chính xác, với
xu hướng vượt quá, hoặc nó có thể không bao giờ ổn định tại bất kỳ một cực tiểu
nào.
Một vấn đề khác là các giá trị hằng số học tốt nhất tại lúc bắt đầu huấn luyện
có thể không còn tốt như vậy trong giai đoạn sau. Do đó, một phương pháp hiệu quả
hơn là sử dụng một hằng số học thích nghi. Phương pháp trực giác để lựa chọn xem
một cập nhật trọng cụ thể có giảm hàm chi phí không. Nếu không, khi đó quá trình
đã vượt quá và nên giảm . Mặt khác, nếu một vài bước trong một dãy giảm hàm
chi phí, khi đó chúng ta có thể quá dè dặt và nên tăng .
Đối với bài toán nhận dạng âm thanh tiếng nói tiếng Việt, qua thử nghiệm giá
trị hằng số học được chọn cố định là 0.05 và quá trình huấn luyện mạng đã hội tụ tốt
cùng với các tham số khác.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


63

CHƢƠNG 5

XÂY DỰNG HỆ THỐNG NHẬN DẠNG

5.1 Kiến trúc hệ thống

Việc xây dựng một hệ thống nhận dạng tiếng nói là một công việc khó khăn.
Bởi vì, nó phụ thuộc vào các kỹ thuật nhận dạng cũng như các công nghệ được áp
dụng. Mỗi một kỹ thuật nhận dạng sẽ cho phép chúng ta xây dựng một kiến trúc hệ
thống. Như vậy với mỗi kỹ thuật khác nhau sẽ cho chúng ta xây dựng các kiến trúc
hệ thống khác nhau.

5.1.1 Mô hình
Hình 5.1 trình bày kiến trúc tổng thể của hệ thống nhận dạng. Bao gồm các
module sau: Module thu nhận tín hiệu, module tiền xử lý, module cơ sở dữ liệu,
module trích chọn đặc trưng, module cơ sở dữ liệu đặc trưng, module nhận dạng.

Hình 5.1 Kiến trúc tổng thể của hệ thống


5.1.2 Chức năng các Module

Mỗi Module đóng một vai trò quan trọng trong quá trình nhận dạng tiếng nói.
Hiệu quả của hệ thống nhận dạng phụ thuộc vào sự chính xác trong từng Module

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


64

thành phần. Để đi sâu xây dựng chi tiết các Module trước hết ta xem xét các chức
năng của từng Module.
 Module thu nhận tín hiệu: có chức năng thu tín hiệu tiếng nói từ người
dùng, có thể thu nhận trực tiếp từ người nói hoặc dưới các dạng file *.wav.
 Module tiền xử lý: có chức năng nhận tín hiệu tiếng nói từ Module thu
nhận tín hiệu, và tách lấy tín hiệu tiếng nói ra khỏi nhiễu nền. Nghĩa là tách
lấy đoạn tín hiệu chứa từ được nói.
 Module trích chọn đặc trƣng: có chức năng phân tích đoạn tín hiệu tiếng
nói của một từ (là đầu ra của Module tiền xử lý) để tìm ra các đặc trưng của
từ đó. Các đặc trưng này sẽ là đầu vào cho Module nhận dạng.
 Module nhận dạng: có chức năng nhận dạng được các mẫu đặc trưng của
mỗi trích chọn lấy từ đầu ra của module trích chọn đặc trưng.
5.1.3 Xây dựng các Module

 Module thu nhận tín hiệu


- Phương pháp: Dùng các hàm cấp thấp của Windows truy xuất trực tiếp
vào sound card để lấy ra các mẫu tín hiệu.
- Một số đoạn mã quan trọng của chương trình:
+ Kiễm tra xem có Sound Card không? và nó có hoạt động tốt không?

// Kiểm tra xem có Sound Card không ?


MMRESULT result;
sizeBuffer = 0;
result = waveInGetNumDevs();
if (result==0)
{ ::AfxMessageBox("No sound card device !");
return result;
}
// Kiểm tra xem card sound có hoạt động không ?
result=waveInGetDevCaps (0, & waveInDevCaps,
sizeof(WAVEINCAPS));
if ( result!=MMSYSERR_NOERROR){
::AfxMessageBox("Cannot determine sound card capabilities !");
}

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


65

+ Thuật toán mở thiết bị thu tín hiệu.

// Mở thiết bị thu
result = waveInOpen( &waveIn,0,
&waveFormat,(DWORD)waveInEvent, NULL, CALLBACK_EVENT);
if ( result!= MMSYSERR_NOERROR){
::AfxMessageBox(_T("Cannot Open Sound Input Device!"));
return result; }

+ Thuật toán tạo tiến trình và bắt đầu thu tín hiệu.

TerminateThread = FALSE;
waveInThread =
AfxBeginThread(WaveInThreadProc,this,THREAD_PRIORITY_NOR
MAL,0,CREATE_SUSPENDED,NULL);
waveInThread->m_bAutoDelete = TRUE;
waveInThread->ResumeThread();
// Bắt dầu tiến trình
result = waveInStart(waveIn );
if (result!= MMSYSERR_NOERROR){
::AfxMessageBox(_T("Cannot Start Wave In !"));
return result; }

+ Thuật toán ngừng quá trình thu tín hiệu.

TerminateThread = TRUE;
MMRESULT result; // Chứa mã lỗi

if (waveInEvent )
SetEvent(waveInEvent);
Sleep(50); // Chờ cho đến khi ngưỡng xác định
if (waveIn)
waveInStop(waveIn); // ngừng qúa trình thu
if (waveIn)
waveInReset(waveIn); // đặt lại bộ đệm
return;
if (waveIn)
waveInClose(waveIn); // đóng bộ thu

 Module tiền xử lý
- Phương pháp: Tín hiệu tiếng nói được đưa qua bộ lọc hiệu chỉnh để cho

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


66

phổ đồng đều hơn. Ta thường dùng bộ lọc cố định bậc nhất:
H(z) = 1 – az -1. Sau đó dùng thuật toán tính năng lượng ngắn hạn kết
hợp với thuật toán tỷ lệ vượt quá điểm không để tìm ra đoạn tín hiệu
mang thông tin tiếng nói.
- Một số đoạn mã quan trọng: Bộ lọc bậc nhất

DataMid = new int[NewLength];


DataMid[0] = DataRerult[0];
for(i=1;i<NewLength;i++)
{
DataMid[i] = (int)(DataRerult[i] - 0.95*DataRerult[i-1]);
}
for(i=0;i<NewLength;i++)
{
DataRerult[i] = DataMid[i];
}

 Module trích chọn đặc trƣng


- Phương pháp: phương pháp được dùng ở đây là trích chọn các hệ số
MFCC quá trình này được mô tả như hình 5.2.

Hình 5.2 Biểu đồ khối tính các hệ số MFCC

- Chú ý: ngoài phương pháp trích chọn các hệ số MFCC còn có phuơng
pháp trích chọn các hệ số LPCC. Khi xây dựng hệ thống nếu chúng ta
kết hợp cả hai phương pháp với nhau sẽ cho kết quả tốt hơn.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


67

 Module nhận dạng


Phương pháp: Sử dụng mạng nơron lan truyền ngược với thuật toán lan truyền
ngược để đào tạo mạng nơron với đầu vào là 12 tham số MFCC thu được sau
quá trình trích chọn đặc trưng.
- Lan truyền tiến
_control87 (MCW_EM, MCW_EM);
double temp=0;
int i,j;

// Lớp vào -> Lớp ẩn


for(i=0; i<HiddenArraySize; i++)
{
for(j=0; j<InputArraySize; j++)
{
temp += (Input[pPattern][j] * WeightIH[j][i]);
}
Hidden[i] = (1.0 / (1.0 + exp(-1.0 * (temp + Bias[i]))));
temp = 0;
}

// Lớp ẩn -> Lớp ra


for(i=0; i<OutputArraySize; i++)
{
for(j=0; j<HiddenArraySize; j++)
{
temp = temp + (Hidden[j] * WeightHO[j][i]);
}
Output[pPattern][i] = (1.0 / (1.0 + exp(-1.0 * (temp + Bias[i +
HiddenArraySize]))));
temp = 0;
}

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


68

- Lan truyền ngược

// Tính toán tín hiệu lỗi ở lối ra


for(i=0;i<OutputArraySize;i++)
{ ErrorSignalOutput[i] = (Target[pPattern][i] - Output[pPattern][i]); }
// Tính toán tín hiệu lỗi ở lớp ẩn
for(i=0;i<HiddenArraySize;i++)
{ for(j=0; j<OutputArraySize; j++)
{ temp += (ErrorSignalOutput[j] * WeightHO[i][j]); }
ErrorSignalHidden[i] = Hidden[i] * (1 - Hidden[i]) * temp;
temp = 0.0;
}
// Điều chỉnh trọng kết nối từ lớp ẩn đến lớp ra
double Length = 0.0;
for (i=0; i<HiddenArraySize; i++)
{ Length = Length + Hidden[i]*Hidden[i]; }
if (Length<=0.1)
Length = 0.1;
for(i=0; i<HiddenArraySize; i++)
{
for(j=0; j<OutputArraySize; j++)
{
WeightHO[i][j] = WeightHO[i][j] + (LearningRate *
ErrorSignalOutput[j] * Hidden[i]/Length);
} }
// Điều chỉnh ngƣỡng ở lớp ẩn
for(i=HiddenArraySize; i<BiasArraySize; i++)
{ Bias[i] = Bias[i] + (LearningRate * ErrorSignalOutput[i] / Length); }
// Điều chỉnh trọng kết nối từ lớp vào đến lớp ẩn
Length = 0.0;
for (i=0; i<InputArraySize; i++)
{ Length = Length + Input[pPattern][i] * Input[pPattern][i]; }
if (Length<=0.1) Length = 0.1;
for(i=0; i<InputArraySize; i++)
{ for(j=0; j<HiddenArraySize; j++)
{
WeightIH[i][j] = WeightIH[i][j] + (LearningRate *
ErrorSignalHidden[j] * Input[pPattern][i] / Length);
}
}
// Điều chỉnh ngƣỡng ở lối ra
for(i=0; i<HiddenArraySize; i++)
{
Bias[i] = Bias[i] + (LearningRate * ErrorSignalHidden[i] / Length);
}

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


69

- Huấn luyện mạng

while(!kbhit())
{
for(i=0; i<NumberOfInputPatterns;i++)
{
ForwardPass(i);
BackwardPass(i);
}
j++;
if(CompareOutputToTarget())
{
return 1;
}
}

5.2 Giao diện chƣơng trình và cách sử dụng

Chương trình được chạy trên máy PC có cấu hình Pentium 4, CPU 1.6GHz,
RAM 128 MB.
5.2.1 Giao diện chƣơng trình

Hình 5.3 cho thấy giao diện của chương trình. Chương trình được viết bởi ngôn
ngữ Visual C++. Giao diện không cầu kỳ nhưng dễ sử dụng, bao gồm một số nút:
Train, Open, Recognize, Clear, Exit và hai khung Input, Output để chương trình
hiển thị số liệu đầu vào và đầu ra sau khi thực hiện chương trình.
Input: chứa 12 thông số của MFCC đưa vào đầu vào 12 nơron
Output: đưa ra thông số của 10 nơron đầu ra.
Hệ thống có ba chức năng chính:
 Chức năng đào tạo mạng nơron để nhận dạng tiếng nói.
 Chức năng nhận dạng, mỗi file âm thanh lưu trữ một từ đơn âm tiết.
 Chức năng nhận dạng tiếng nói thu trực tiếp từ Micro.
Chức năng đào tạo mạng nơron:
Chức năng này cho phép điều chỉnh các trọng số và các tham số ngưỡng của
mạng nơron để từ tập mẫu đầu vào sẽ cho ra các giá trị đầu ra mong muốn. Sau khi

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


70

được đào tạo, mạng nơron có khả năng nhận dạng được các tiếng Việt đơn âm tiết từ
“Không” đến “chín”.
Chức năng nhận dạng tiếng nói trong một tệp âm thanh lƣu trữ một từ
đơn âm tiết:
Chức năng này cho phép nhận dạng tiếng nói của các từ đơn âm tiết đã được
thu và lưu trữ trong các tệp âm thanh.
Chức năng nhận dạng tiếng nói thu trực tiếp từ Micro:
Chức năng này cho phép nhận dạng tiếng nói trực tiếp được thu từ Micro qua
Sound card của máy tính.

Hình 5.3 Giao diện chương trình

5.2.2 Hƣớng dẫn cách sử dụng

 Đào tạo nơron: từ giao diện ta kích chuột vào nút train, cho phép ta chọn các
file để huấn luyện cho mạng, nếu chọn đúng đường dẫn thì bấm vào nút “open” để

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


71

thực hiện. Nếu sai chương trình sẽ thông báo “Learning not success yet!”. Nếu đã
huấn luyện thành công chương trình sẽ hiện thông báo “Learning success !”

 Nhận dạng từ file đã ghi sẵn: Sau khi đã huấn luyện cho mạng thành công
rồi, tiếp đến ta thực hiện bước tiếp theo là nhận dạng. Bấm vào nút “Open”
để mở file cần nhận dạng.

Phải chọn đúng đường dẫn và định dạng file có đuôi *.wav, nếu không đúng
định dạng file chương trình sẽ thông báo “The file has opened is not *.wav PCM!”
 Nhận dạng tiếng nói thu trực tiếp từ Micro

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


72

Để thực hiện bước này ta bấm vào nút “Recognize” và nói một từ vào micro để
chương trình nhận dạng, các từ được đưa ra để nhận dạng ở đây là: Không, một, hai,
ba, bốn, năm, sáu, bảy, tám, chín.
 Xoá dữ liệu
Để thực hiện việc xoá dữ liệu, ta chỉ việc nhấn vào nút “clear” chương trình sẽ
xoá hết dữ liệu cũ và đặt lại trạng thái ban đầu.
 Thoát chƣơng trình
Để thoát chương trình ta chỉ việc nhấn và nút “exit” hoặc dấu nhân chéo “X” ở
góc bên phải chương trình.

5.3 Kết quả thực nghiệm

5.3.1 Môi trƣờng phát triển chƣơng trình

Chương trình đã được thử nghiệm để đánh giá hiệu năng của hệ thống nhận
dạng. Thử nghiệm này thực hiện trên cơ sở đánh giá tỷ lệ nhận dạng các file âm
thanh thu sẵn với định dạng wave PCM Mono 16 bit, tần số lấy mẫu là 20.05kHz.
Mỗi từ cần được nhận dạng (các số từ 0 đến 9), đặc trưng bởi 12 giá trị chính
là 12 thông số MFCC được trích ra từ quá trình trích chọn đặc trưng của âm thanh
để đưa vào 12 nơron đầu vào.
Tiếng nói được thu trong điều kiện phòng làm việc bình thường, bao gồm
giọng nói của một số người.
TT Họ Và Tên Tuổi Giới tính Quê quán
1 Hồ Văn Hương 26 Nam Nghệ An
2 Hoàng Thị Xuân 25 Nữ Nghệ An
3 Nguyễn Quốc Thành 22 Nam Hưng Yên

Điều kiện thu âm: phòng làm việc, micro loại tai nghe hãng Sony loại thường.
5.3.2 Kết quả nhận dạng

Đối với các mẫu mà mạng được huấn luỵên trước, kết quả nhận dạng đạt được

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


73

TT Họ Và Tên Kết quả


1 Hồ Văn Hương 94%
12222 2 Hoàng Thị Xuân 96%
3 Nguyễn Quốc Thành 94.5%

Đối với các mẫu không cho mạng huấn luyện trước, kết quả đạt được
TT Họ Và Tên Kết quả
1 Hồ Văn Hương 74%
2 Hoàng Thị Xuân 84%
3 Nguyễn Quốc Thành 75%

 Kết luận: Hệ thống có khả năng nhận dạng đúng cỡ từ 70% đến 90%. Kết
quả đạt được hơi thấp do có lỗi, nhưng cũng chấp nhận được.
 Nhận xét: Mặc dù kết quả nhận dạng những từ không được mạng huấn luyện
trước là không cao. Nhưng kết quả này cũng có thể chấp nhận được trong
điều kiện thiết bị thu âm chưa tốt và điều kiện phòng thu âm cũng chưa đạt
yêu cầu. Để nâng cao kết quả nhiều kỹ thuật cần được nghiên cứu tiếp. Ví dụ,
tăng thêm nút ẩn, lớp ẩn. Tuy nhiên, độ phức tạp tính toán tăng.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


74

Kết luận và định hƣớng nghiên cứu

Luận văn đã thực hiện được các mục tiêu đã đề ra:


 Đã thiết kế mạng nơron lan truyền ngược để nhận dạng và phân tích các
tham số của mạng.
 Đã thử nghiệm nhận dạng với ba người nói và cho kết quả khá tốt. Điều này
khảng định rằng mạng nơron là một công cụ hứa hẹn sẽ cho nhiều thành
công trong lĩnh vực nhận dạng tiếng nói.
 Tuy một số trường hợp còn nhận dạng sai hoặc không nhận dạng được là do
còn tồn tại một số hạn chế chính như: chưa có cơ sở tiếng nói tiếng Việt đủ
lớn, chương trình mới được tiến hành trên một số máy tính cá nhân cho kết
quả chưa cao, chưa có thiết bị thu âm chuẩn…, tức là có nhiều thông số chưa
được lựa chọn tối ưu. Vì vậy, ta hoàn toàn có thể nâng cao độ chính xác của
hệ thống nhận dạng thêm nữa.
 Phương pháp mới được áp dụng để nhận dạng các từ đơn.
Vì vậy, phương hướng nghiên cứu phát triển đề tài tiếp theo là: xây dựng cơ sở
dữ liệu mẫu đủ lớn. So sánh với kết quả các phương pháp kinh điển và truyền thống.
Thử mở rộng và phong phú cấu trúc mạng. Tiến hành thực nghiệm trên nhiều máy
cá nhân, kết hợp phương pháp sử dụng mạng nơron với giải thuật di truyền và một
số phương pháp hiện đại trong việc nhận dạng tiếng nói nhằm nâng cao kết quả nhận
dạng.
Đi sâu thêm nữa là tăng số lượng từ vựng nhận dạng, kết hợp với phân tích ngữ
pháp để có thể nhận dạng được những câu tiếng nói tiếng Việt đơn giản và có độ
chính xác cao.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


75

Tài liệu tham khảo


Tiếng Việt
1. Mai Ngọc Chừ, Vũ Đức Nghệu, Hoàng Trọng Phiến (2000), Cơ sở
ngôn ngữ học và Tiếng Việt, Nhà xuất bản Giáo dục.
2. Bùi Công Cường, Nguyễn Doãn Phước (2002), Hệ mờ mạng nơron và
ứng dụng, Nhà xuất bản Khoa học kỹ thuật.
3. Đặng Ngọc Đức, Lương Chi Mai (3/2004), 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.
4. Nguyễn Quang Hoan (1996), Ổn định mạng nơron Hopfield và khả
năng ứng dụng trong điều khiển Robot, Luận án Tiến sỹ.
5. Nguyễn Quang Hoan, Nguyễn Mạnh Tùng, Phạm Thượng Hàn
(2002), Ứng dụng mạng nơron tương tác bậc cao cho bài toán phân
lớp có giới hạn, tr.126-131, Tuyển tập báo cáo khoa học, Hội nghị
toàn Quốc lần thứ năm về tự động hoá.
6. Ngô Hoàng Huy, Lương Chi Mai, Bùi Quang Trung, Nguyễn Thị
Thanh Mai, Vũ Kim Bảng, Vũ Thị Thanh Hà (2003), Thiết kế các hệ
thống nhận dạng tiếng Việt trong thời gian thực, Kỷ yếu hội thảo Fair.
7. Nguyễn Thanh Phúc (2000), 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 Văn Tiến Sỹ kỹ thuật, Đại học
Bách khoa Hà nội.
Tiếng Anh
8. Cart G. Looney (1997), Parttern Recognition Using Neural Network,
Oxfoxd University Press.
9. Chin – Teng Lin, C. S. George Lee (1996), Neural Fuzzy Systems: A
Neuro-Fuzzy Synergism to Intelligent Systems, Prentice-Hall
International, Inc.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo


76

10. Claudio Becchetti and Lucio Prina Ricotti (1999), Speech Recognition
Theory and C++ Implementation, Printed and Bound Great Britain by
Antony Rowe Ltd, Chippenham, Wiltshire.
11. Hong–Goo Kang (2003), Speech Signal Processing, Yonsei
University.
12. Hunt, K. J and Others (1992), Neural Networks for Control System –
A Survey, Automatica.. Vol. 28, No.6, pp. 1080-1120.
13. José C. Principe, Neil R. Euliano, W. Curt Lefebvre (1999), Neural
and Adaptive Systems: Fundamentals through Simulations, John
Wiley and Sons, Inc.
14. L.R Rabiner, R.W.Sharfer (1978), Digital Processing of Speech
Signals, Prentice-Hall.
15. Ravi P. Ramachandra, Kevin R. Farell, Roopashri Ramachandra,
Richard J. Mammone (2002), Speaker Recognition - General
Classifier Approaches and Data Fusion Methods
16. Qifeng Zhu and Abeer Alwan (2003), Non-linear Feature Extraction
for Robust Speech Recognition in Stationary and Non-Stationary
Noise, Q. Zhu, A. Alwan/Computer Speech and Language .
17. Sadaoki Furui (2001), Digital Speech Processing, Synthesis and
Recognition, Marcel Dekker.
18. Simon Haykin (1999), Neural Networks A Comprehensive
Foundation, Prentice Hall International, Inc.
19. Veronique Stouten, Huge Van Hamme, Kris Demuynck, Patrick

Wambacq (2003), Robust Speech Recognition Using Model-Based


Feature Enhancement, Center for Processing Speech and Images
(PSI) Dept of Electrical Engeneering–ESAT Katholieke Universiteit
Leuven, Belgium.
20. Wu Chou and Biing Hwang Juang (2003), Parttern Recognition in
Speech and Language Processing, CRC Press LLC.

Nhận dạng tiếng nói trên cơ sở mạng nơron nhân tạo

Вам также может понравиться