Tải bản đầy đủ (.docx) (43 trang)

nghiên cứu các kỹ thuật trong nhận dạng tiếng nói

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

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đàm Tiến Dũng
NGHIÊN CỨU CÁC KỸ THUẬT TRONG NHẬN
DẠNG TIẾNG NÓI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Khoa học máy tính
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đàm Tiến Dũng
NGHIÊN CỨU CÁC KỸ THUẬT TRONG NHẬN
DẠNG TIẾNG NÓI)
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Lê Anh Cường
HÀ NỘI - 2010
LỜI CẢM ƠN
Đầu tiên, tôi xin bày tỏ sự biết ơn sâu sắc tới TS. Lê Anh Cường (công tác tại
trường ĐH Công Nghệ - ĐH Quốc gia Hà Nội), người đã tận tình theo sát hướng dẫn
tôi trong suốt quá trình thực hiện luận văn này.
Tiếp theo, tôi xin dành lời cảm ơn chân thành tới TS. Lê Sỹ Vinh (công tác tại
trường ĐH Công Nghệ - Đại học Quốc Gia Hà Nội), người đã nhiệt tình giúp đỡ, cho
tôi những lời khuyên hữu ích để hoàn thiện luận văn.
Tôi xin gửi lời cảm ơn đến cô Lương Chi Mai và anh Vũ Tất Thắng (công tác tại
viện Khoa học và Công nghệ Việt Nam), hai người đã sẵn lòng giải đáp khúc mắc và
chia sẻ kinh nghiệm cho tôi khi gặp bế tắc trong quá trình nghiên cứu.
Tôi cũng xin gửi lời cảm ơn đến người đồng nghiên cứu với tôi, bạn Hà Thanh
Tùng, người đã sát cánh cùng tôi vượt qua rất nhiều khó khăn trong thời gian hoàn
luận văn này.
Cuối cùng, tôi xin bày tỏ sự biết ơn vô hạn tới cha mẹ tôi, các anh chị tôi và cùng


với bạn bè đã luôn ở bên cạnh khuyến khích, động viên, giúp đỡ tôi vượt qua những
khó khăn trong quá trình thực hiện luận văn.
Hà Nội, tháng 05 năm 2010.
Sinh viên
Đàm Tiến Dũng
Nhận dạng tiếng nói là một lĩnh vực nghiên cứu quan trọng và có nhiều ứng dụng
trong cuộc sống. Cho đến nay, có rất nhiều nghiên cứu về nhận dạng tiếng nói đã được
đưa ra, và kỹ thuật đều có điểm mạnh, điểm yếu riêng. Trong luận văn này, tôi sẽ giới
thiệu một số kỹ thuật tiêu biểu trong nhận dạng tiếng nói, bao gồm kỹ thuật trích chọn
đặc trưng MFCC, các kỹ thuật nhận dạng bằng mô hình Markov ẩn và bằng đối sánh
mẫu. Song song với việc nghiên cứu lý thuyết, tôi cũng xây dựng một hệ thống nhận
dạng tiếng nói thử nghiệm dựa trên các lý thuyết đó, với mục đích là kiểm tra tính
đúng đắn và so sánh các kỹ thuật trong nhận dạng tiếng nói. Cuối cùng, thông qua
nghiên cứu này, tôi xin đề xuất ra một số phương hướng phát triển, nghiên cứu tiếp
theo, cùng với những ứng dụng của nghiên cứu vào các bài toán trong thực tế.
MỤC LỤC
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH ẢNH
BẢNG KÝ HIỆU VIẾT TẮT
Viết tắt Tên đầy đủ Ý nghĩa
DTW Dynamic Time Warping So sánh thời gian động
HMM Hidden Markov Model Mô hình Markov ẩn
IPA International Phonetics Alphabet Bảng chữ cái ngữ âm quốc tế
MFCC Mel frequency cepstral coefficients Các hệ số phổ tần số Mel
NNs Neural Networks Các mạng nơ ron
Chương 1. MỞ ĐẦU
Trong chương này, tôi sẽ nêu lên tính cần thiết, mục đích cùng với những ý nghĩa
khoa học, tính thực tiễn của đề tài nghiên cứu này.
1.1. GIỚI THIỆU BÀI TOÁN NHẬN DẠNG TIẾNG NÓI
Trong cuộc sống hàng ngày, tiếng nói tự nhiên chính là phương tiện giao tiếp đơn

giản, hiệu quả và thông dụng nhất giữa người với người. Tiếng nói đã trở nên quá
quen thuộc đối với con người ngay từ khi mới lọt lòng. Tầm quan trọng của tiếng nói
trong cuộc sống thường ngày là không thể phủ nhận. Tuy nhiên, ngày nay khi mà máy
móc có ở khắp nơi xung quanh chúng ta thì loại hình giao tiếp cơ bản nhất giữa con
người và máy móc lại là các dòng lệnh, các chỉ thị thông qua việc gõ bàn phím. Các
dòng lệnh đó thường rất máy móc và khó nhớ đối với con người, đồng thời thao tác
bằng tay cũng thường chậm hơn so với việc sử dụng tiếng nói. Hãy thử tưởng tượng,
cuộc sống sẽ trở nên dễ dàng thế nào nếu chúng ta có thể giao tiếp với máy móc bằng
tiếng nói tự nhiên. Khi đó, chúng ta có thể soạn thảo văn bản bằng tiếng nói, quay số
điện thoại bằng tiếng nói, hay tìm kiếm thông tin trên Internet bằng giọng nói chứ
không qua thao tác bằng tay.
Nhận dạng tiếng nói, đứng trên quan điểm học máy là một bài toán nhận dạng
mẫu phức tạp. Mục đích của bài toán này là phân lớp tín hiệu tiếng nói đầu vào thành
một dãy liên tiếp các mẫu đã được học sẵn. Trong đó một mẫu có thể là một từ, hoặc
một âm vị (đơn vị nhỏ nhất có thể phân biệt được cấu tạo nên từ). Về cơ bản, bài toán
nhận dạng tiếng nói được chia ra thành các loại sau[19]:
Nhận dạng tiếng nói rời rạc/liên tục
Nhận dạng tiếng nói phụ thuộc người nói/không phục thuộc người nói
Nhận dạng tiếng nói với bộ từ vựng nhỏ/bộ từ vựng lớn
Lĩnh vực nhận dạng tiếng nói đang ngày càng được quan tâm hơn trong những
năm gần đây. Nhiều lý thuyết đã được xây dựng, như kỹ thuật trích chọn đặc trưng
LPC hay MFCC, các kỹ thuật nhận dạng như mô hình Markov ẩn (HMM), các mạng
nơ ron (NNs) hay so sánh thời gian động (DTW). Bàng dưới đây chỉ ra kết quả đạt
được của một số hệ thống nhận dạng tiếng nói hiện thời trên thế giới [7]:
9
Bảng 1: Kết quả của một số hệ thống nhận dạng tiếng nói trên thế giới
Hệ thống Lượng từ vựng Tỉ lệ lỗi (%)
TI Digits 11 (bộ số tiếng Anh) 0.5
Wall street Journal read speech 5.000 3
Wall street Journal read speech 20.000 3

Broadcast News 64.000+ 10
Conversation Telephone Speech (CTS) 64.000+ 20
Mặc dù có rất nhiều lý thuyết đã được đưa ra, tuy nhiên những gì đạt được vẫn là
chưa đủ để tiếng nói có thể thay hoàn toàn những dòng lệnh trong giao tiếp giữa người
với máy. Tuy nhiên, những thành tựu đạt được đó cũng đã giúp con người giải quyết
khá nhiều bài toán trong cuộc sống. Một số mày điện thoại di động đã có thể cho phép
quay số tự động khi người dùng đọc tên người cần gọi trong danh bạ vào. Con người
đã có thể điều khiển sự hoạt động của rô bốt bằng giọng nói, mặc dù những chỉ thị đó
thường ngắn gọn và nằm trong một tập hữu hạn các chỉ thị đã được huấn luyện.
1.2. MỤC ĐÍCH CỦA NGHIÊN CỨU
Ngày nay, hướng nghiên cứu chủ đạo trong lĩnh vực nhận dạng tiếng nói là các
kỹ thuật để tách biệt hệ thống nhận dạng tiếng nói ra khỏi sự phụ thuộc vào người nói,
bộ từ vựng hay môi trường. Ở Việt Nam hiện nay, các nghiên cứu về nhận dạng tiếng
nói không nhiều, và thường tập trung vào các tập từ vựng nhỏ nhằm giải quyết một số
bài toán thực tế nhất định.
Dựa trên những lý thuyết đã được xây dựng, nghiên cứu này được thực hiện
nhằm đạt được những mục đích sau đây:
Tìm hiểu các kỹ thuật trong nhận dạng tiếng nói, trong đó tập trung vào hai phần
chính là kỹ thuật trích chọn đặc trưng MFCC và kỹ thuật nhận dạng sử dụng mô
hình Markov ẩn.
Tự cài đặt hệ thống nhận dạng tiếng nói trên tập số đếm tiếng Việt từ 0 đến 9
bằng mô hình Markov ẩn và bằng phương pháp đối sánh mẫu, dựa trên phương
pháp trích chọn đặc trưng MFCC. Sau đó so sánh các kết quả đạt được để đưa ra
kết luận về các phương pháp trên.
Đề ra những định hướng phát triển tiếp theo sau nghiên cứu này.
10
Chương 2. TIẾNG NÓI VÀ SỰ BIỂU DIỄN TIẾNG NÓI
Các hệ thống nhận dạng như nhận dạng chữ viết tay hay nhận dạng tiếng nói đều
cố gắng mô phỏng tốt nhất quá trình mà vật cần nhận dạng được hình thành trong thực
tế. Chính vì vậy ,trước khi đi vào tìm hiểu các kỹ thuật trong nhận dạng tiếng nói,

chúng ta cần nắm được một số kiến thức về tiếng nói như cách một tiếng nói được tạo
thành hay cách biểu diễn tiếng nói.
2.1. ÂM VỊ VÀ SỰ TẠO THÀNH TIẾNG NÓI
Trong ngữ âm học, âm vị là một đơn vị phân đoạn nhỏ nhất của tiếng nói được
dùng để tạo nên các từ có nghĩa. Nói cách khác, âm vị là đơn vị nhỏ nhất có thể phân
biệt của tiếng nói. Như vậy, một từ được phát âm ra thực chất là sự kết hợp của một
tập các âm vị liên tiếp nhau.
Tiếng nói của con người được hình thành nhờ sự kết hợp của các bộ phận trong
bộ máy phát âm như lưỡi, họng, môi, răng, mũi… Khi những bộ phận đó ở những vị
trí khác, các âm thanh khác nhau sẽ được tạo thành. Chính vì vậy, chúng ta hoàn toàn
có thể phân biệt âm này với âm khác trên cơ sở đánh giá cách kết hợp của các cơ quan
trong bộ máy phát âm, hay vị trí của chúng khi phát âm.
2.2. PHIÊN ÂM
1
Tổ chức ngữ âm quốc tế (International Phonetic Association), đã phát minh ra
bảng chữ cái ngữ âm quốc tế (International Phonetic Alphabet), viết tắt là IPA, dựa
trên các đặc tính của âm vị và sự tạo thành tiếng nói. IPA là một hệ thống chuẩn các
ký hiệu bằng chữ latin được dùng để biểu diễn tiếng nói, trong đó mỗi ký hiệu tương
ứng với một âm vị. Việc biểu diễn tiếng nói bằng các ký hiệu này được gọi là phiên
âm. Ví dụ, từ PEN trong tiếng Anh sẽ được phiên âm là /p ε n/. Phiên âm, nói cách
khác, chính là sự biểu diễn của tiếng nói dưới dạng văn bản.
Tuy nhiên, trong máy tính, các ngôn ngữ lập trình không thể biểu diễn được hết
các ký hiệu latin, vì vậy các ký hiện trong IPA sẽ được biểu diễn bằng một ký tự hoặc
một nhóm ký tự ASCII viết liền nhau. Trong tiếng Anh Mỹ (American English), bảng
chữ cái ARPABET đã được sử dụng để biểu diễn phiên âm, trong đó mỗi ký tự hoặc
nhóm ký tự ASCII trong ARPABET sẽ tương ứng với một ký hiệu latin trong IPA.Ví
dụ, từ PEN khi sử dụng ARPABET sẽ được phiên âm là /p eh n/.
1 Tham khảo Chương 6, “Speech and Language Processing” [7] và Chương 5, “Pattern Recognition in
Speech and Language Processing”[4]
11

2.3. BIỂU DIỄN TÍN HIỆU TIẾNG NÓI TRONG MÁY TÍNH
Tín hiệu âm thanh nói chung, và tiếng nói nói riêng có thể được mô phỏng dưới
dạng đồ thị có trục hoành là thời gian, trục tung là cường độ. Giá trị tại một điểm trên
đồ thị sẽ là cường độ của âm thanh tại một thời điểm nhất định.
Tín hiệu âm thanh ngoài đời thực là tín hiệu liên tục, hay tín hiệu tương tự
(Analog signal). Trước khi thực hiện bất cứ bước xử lý nào, tín hiệu âm thanh cần
được số hóa. Việc này được thực hiện tự động bởi các thiết bị thu âm, bằng cách lấy
giá trị của tín hiệu đầu vào tại các thời điểm khác nhau, hay còn gọi là lấy mẫu. Tín
hiệu âm thanh sau khi đã được lấy mẫu trở thành tín hiệu số, là tín hiệu rời rạc.
Hình 1: Số hóa tín hiệu âm thanh
Như vậy, một tín hiệu âm thanh bất kỳ khi đã được đưa vào máy tính, là một tập
các mẫu liên tiếp nhau, mỗi mẫu là giá trị biên độ của tín hiệu tại một thời điểm nhất
định. Một tham số quan trọng trong việc lấy mẫu tín hiệu âm thanh là tần số lấy mẫu,
Fs, tức là số mẫu được lấy trong một giây. Để có thể đo lường chính xác, cần phải lấy
ít nhất 2 mẫu trong một chu kỳ của tín hiệu tương tự đầu vào. Như vậy, tần số lấy mẫu
phải lớn hơn 2 lần tần số cao nhất của tín hiệu âm thanh đầu vào. Tuy nhiên, trên thực
tế tai người chỉ có thể nhận biết được các âm thanh có tần số nhở hơn 10.000Hz, do đó
tần số lấy mẫu là 20.000Hz là đủ cho việc nhận dạng với độ chính xác cao. Trong lĩnh
vực nhận dạng tiếng nói qua điện thoại, tần số lẫy mẫu chỉ cần là 8.000Hz vì chỉ có
các tín hiệu có tần số nhỏ hơn 4.000Hz được truyền đi bởi điện thoại. Các thiết bị thu
âm thì thường có tần số lấy mẫu là 16.000Hz.
12
Chương 3. KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG MFCC TRONG
NHẬN DẠNG TIẾNG NÓI
2
Trong các bài toán nhận dạng mẫu nói chung, phương pháp trích chọn đặc trưng
đóng vai trò quyết định trong sự chính xác của bài toán. Chính vì vậy, lựa chọn một
phương pháp trích chọn đặc trưng tốt là điều cần được quan tâm đặc biệt. Trong
chương này, tôi sẽ giới thiệu một phương pháp trích chọn đặc trưng phổ biến và hiệu
quả trong nhận dạng tiếng nói, trích chọn đặc trưng MFCC.

3.1. ĐỊNH NGHĨA
Trích chọn đặc trưng đối với nhận dạng tiếng nói là việc tham số hóa chuỗi tín
hiệu âm thanh đầu vào, biến đổi tín hiệu âm thanh thành một chuỗi các vector đặc
trưng, mỗi vector đặc trưng bao gồm n giá trị thực (n phụ thuộc vào cách trích chọn
đặc trưng) [6]. Hiện nay, có rất nhiều phương pháp trích chọn đặc trưng như:
LPC(Linear predictive coding), AMDF(Average magnitude different function),
MFCC(Mel-frequency cepstral coefficients), hoặc kết hợp của các phương pháp trên.
Phần tiếp theo sẽ giới thiệu cụ thể về phương pháp trích chọn đặc trưng MFCC.
3.2. TRÍCH CHỌN ĐẶC TRƯNG MFCC
Trong nhận dạng tiếng nói, kỹ thuật trích chọn đặc trưng MFCC là phương pháp
phổ biến nhất. MFCC là viết tắt của Mel-frequency cepstral coefficients. Kỹ thuật này
dựa trên việc thực hiện biến đổi để chuyển dữ liệu âm thanh đầu vào về thang đo tần
số Mel, một thang đo diễn tả tốt hơn sự nhạy cảm của tai người đối với âm thanh.
Kỹ thuật trích chọn đặc trưng này gồm các bước biến đổi liên tiếp như trong
hình 2, trong đó đầu ra của bước biến đổi trước sẽ là đầu vào của bước biến đổi sau.
Đầu vào của quá trình trích chọn đặc trưng này sẽ là một đoạn tín hiệu tiếng nói đã
được rời rạc hóa. Chi tiết của từng bước xử lý sẽ được giới thiệu trong phần tiếp theo
đây.
3
2 Một số nội dung trong chương này được nghiên cứu cùng sinh viên Hà Thanh Tùng trong khóa luận
“Nghiên cứu các đặc trưng trong nhận dạng tiếng nói tiếng Việt”, năm 2010.
3 Tham khảo Chương 9, “Speech and Language Processing” [7]
13
Hình 2: Các bước trích chọn đặc trưng MFCC
3.2.1. Pre-emphasis
Đây là bước đầu tiên của trích chọn đặc trưng MFCC, được thực hiện bằng cách
tăng cường độ của những tần số cao lên nhằm làm tăng năng lượng ở vùng có tần số
cao. Việc tăng cường độ của vùng tần số cao lên làm cho thông tin rõ ràng hơn với mô
hình âm học và tăng độ chính xác của việc nhận dạng từng mẩu âm.
3.2.2. Windowing

Để nâng cao độ chính xác của nhận dạng tiếng nói, mỗi một từ trong đoạn hội
thoại sẽ được phân tích thành các âm vị, và hệ thống sẽ nhận dạng từng âm vị. Do đó,
các đặc trưng cần phải được trích chọn trên từng âm vị, thay vì trên cả đoạn hội thoại
dài. Windowing là việc cắt đoạn tín hiệu âm thanh đầu vào ra thành các mẩu tín hiệu
có thời lượng nhỏ, gọi là các frame. Mỗi frame này sau đó sẽ được nhận dạng như một
âm vị. Một lý do khác cho thấy sự cần thiết của việc windowing là vì tín hiệu âm thanh
thay đổi rất nhanh, do đó các thuộc tính như biên độ, chu kỳ sẽ không ổn định. Khi tín
hiệu âm thanh được cắt ra thành những đoạn nhỏ thì ở mỗi đoạn, có thể coi tín hiệu đó
là ổn định, các đặc trưng của tín hiệu là không đổi theo thời gian.
Để thực hiện việc này, chúng ta sử dụng một cửa sổ (window) chạy dọc tín hiệu
âm thanh và cắt ra các đoạn tín hiệu nằm trong cửa sổ đó. Một cửa sổ được định nghĩa
bằng các thông số:
Frame size: độ rộng của cửa sổ, cũng là độ lớn của frame tín hiệu sẽ được cắt ra.
Frame shift: bước nhảy của cửa sổ, là độ dài đoạn mà cửa sổ sẽ trượt để cắt ra
frame tiếp theo.
14
Hình 3: Cắt tín hiệu bằng cửa sổ trượt (window)
Mỗi frame sau đó sẽ được nhân với một hệ số, giá trị của hệ số này tùy thuộc vào
từng loại cửa sổ.
Trong đó x[n] là giá trị của mẫu thứ n, y[n] là giá trị của mẫu thứ n sau khi nhân
với hệ số, w[n] là hệ số cho mẫu thứ n.
Loại cửa sổ đơn giản nhất là cửa sổ Rectangular, giá trị của các hệ số w[n] được
cho bởi công thức sau:
Một loại cửa sổ khác thông dụng hơn trong trích chọn đặc trưng MFCC là cửa sổ
Hamming. Trong loại cửa sổ này, giá trị của tín hiệu sẽ giảm dần về 0 khi tiến dần ra
2 biên của frame. Biểu thức hệ số của cửa sổ hamming là:
3.2.3. DFT (Dicrete fourier transform)
Bước biến đổi tiếp theo là thực hiện biến đổi Fourier rời rạc đối với từng mẩu tín
hiệu đã được cắt ra. Qua phép biến đổi này, tín hiệu sẽ được đưa về không gian tần số.
Công thức của biến đổi Fourier là:

Trong đó x[n] là giá trị của mẫu thứ n trong frame, X[k] là một số phức biểu diễn
cường độ và pha của một thành phần tần số trong tín hiệu gốc, N là số mẫu trong một
frame. Thông thường người ta sử dụng biến đổi FFT (Fast fourier transform) thay vì
15
DFT. Biến đổi FFT nhanh hơn nhiều so với biến đổi DFT, tuy nhiên thuật toán này đòi
hỏi giá trị N phải là một lũy thừa của 2.
Vì X[k] là một số phức nên nó sẽ được lấy giá trị tuyệt đối:
3.2.4. Mel filter-bank and log
Kết quả của quá trình biến đổi Fourier thể hiện năng lượng của tín hiệu ở những
dải tần số khác nhau. Tuy nhiên, tai của người lại không có sự nhạy cảm như nhau đối
với mọi dải tần số. Do đó việc mô hình hóa tính chất này của tai người trong quá trình
trích chọn đặc trưng làm tăng khả năng nhận dạng của hệ thống. Trong mô hình trích
chọn đặc trưng MFCC, tần số sẽ được chuyển sang thang đo tần số mel theo công
thức:
Trong đó f là tần số ở thang đo thường, f
mel
là tần số ở thang đo mel. Người ta sử
dụng các băng lọc để tính các hệ số mel. Sử dụng bao nhiêu băng lọc thì sẽ cho ra bấy
nhiêu hệ số mel, và các hệ số mel này sẽ là đầu vào cho quá trình tiếp theo của trích
chọn đặc trưng MFCC. Hình vẽ sau biểu diễn mô hình các băng lọc trong thang đo tần
số bình thường và thang đo mel [11]:
Hình 4: tương quan giữa thang đo tần số thường và tần số Mel
Với M băng lọc, các hệ số Mel được tính như sau:
Trong đó H
m
[k] là trọng số cho giá trị thứ k trong frame, đối với hệ số thứ m, và
được tính bằng công thức [13][16]:
16
3.2.5. DCT (Discrete consinse transform)
Bước tiếp theo trong quá trình trích chọn đặc trưng là thực hiện biến đổi cosine

rời rạc DCT. Sau khi thực hiện biến đổi Fourier thì tín được chuyển về không gian tần
số. Việc lọc tần số bằng các băng lọc Mel giúp cô đọng mỗi giải tần số về một hệ số
thực. Các hệ số này thể hiện các đặc trưng về tần số cơ bản, xung âm thanh. Tuy
nhiên, các đặc trưng này không quan trọng đối với việc phân biệt các âm khác nhau.
Thay vào đó, các đặc trưng về bộ máy phát âm như vị trí của khoang miệng, khoang
mũi, lưỡi… rất quan trọng cho hệ thống nhận dạng. Việc thực hiện biến đổi consine sẽ
làm tách biệt các đặc trưng về bộ máy phát âm và nguồn âm. Trên thực tế, chỉ có
khoảng 12 hệ số đầu tiên sau khi thực hiện biến đổi DCT là cần thiết cho nhận dạng
tiếng nói. Biểu thức của biến đổi DCT như sau [14]:
3.2.6. Feature extraction
Các hệ số mel thu được sau khi thực hiện biến đổi DCT sẽ được lấy làm đặc
trưng. Thông thường, chỉ 12 hệ số đầu tiên được lấy làm đặc trưng cho nhận dạng vì
các hệ số này là đủ để nhận ra sự khác biệt khi hai âm khác nhau được phát âm.
Đặc trưng thứ 13 là đặc trưng về năng lượng của tín hiệu. Đặc trưng năng lượng
có thể được trích chọn ngay sau bước windowing, và được tính bằng công thức:
Những đặc trưng vừa trích chọn được gọi là các đặc trưng gốc. Với 13 đặc trưng
gốc đó, chúng ta thêm vào 13 đặc trưng delta, thể hiện tốc độ thay đổi của tín hiệu giữa
các frame. Các đặc trưng delta được tính bằng công thức:
Trong đó c
t
[n] là đặc trưng thứ n trong 13 đặc trưng gốc của frame thứ t, d
t
[n] là
đặc trưng delta thứ n của frame thứ t.
Để tăng độ chính xác của nhận dạng, có thể thêm 13 đặc trưng double delta, thể
hiện gia tốc thay đổi của tín hiệu giữa các frame. Các đặc trưng double delta được tính
như các đặc trưng delta, khi coi các đặc trưng delta là đặc trưng gốc.
Như vậy chúng ta đã trích chọn được tổng cộng là 39 đặc trưng. Mỗi frame sau
khi biến đổi sẽ cho ra một vector đặc trưng 39 chiều, mỗi chiều là một giá trị thực. Các
vector này sẽ được sử dụng trực tiếp cho các quá trình huấn luyện và nhận dạng.

17
18
Chương 4. KỸ THUẬT NHẬN DẠNG TIẾNG NÓI SỬ DỤNG MÔ HÌNH
MARKOV ẨN
Nếu coi phương pháp trích chọn đặc trưng là điều kiện cần cho sự chính xác của
hệ thống nhận dạng tiếng nói, thì điều kiện đủ chính là mô hình nhận dạng. Trong
phần này tôi sẽ giới thiệu chi tiết về kỹ thuật nhận dạng tiếng nói sử dụng mô hình
Markov ẩn, một mô hình đã được áp dụng thành công trong một số phần mềm như bộ
công cụ nhận dạng tiếng nói HTK
4
hay bộ nhận dạng tiếng nói Sphinx [17].
4.1. GIỚI THIỆU MÔ HÌNH MARKOV ẨN
Lý thuyết về nhận dạng tiếng nói đang ngày càng phát triển, tuy nhiên một hệ
thống nhận dạng tiếng nói không bị phụ thuộc vào người nói hay các điều kiện môi
trường phải rất lâu nữa mới có thể đạt được. Có nhiều phương pháp cho nhận dạng
tiếng nói đã được đưa ra như: mạng neural (Neural networks), DTW (Dynamic Time
Warping), mô hình Markov ẩn (Hidden Markove Model)… Trong đó, kỹ thuật nhận
dạng tiếng nói sử dụng mô hình Markov ẩn là một hướng tiếp cận tiềm năng, đặc biệt
là đối với nhận dạng tiếng nói liên tục với bộ từ vựng lớn.
Mô hình Markov ẩn đã được nghiên cứu từ rất lâu, và công trình nghiên cứu
thành công đầu tiên về HMM được thực hiện bởi Baum vào cuối những năm 60, đầu
những năm 70. HMM là một phương pháp học máy dựa trên thống kê, trong đó hệ
thống được mô hình bởi một tập các trạng thái (hay nhãn) ẩn và các xác suất chuyển
trạng thái. Với mỗi một chuỗi các quan sát đầu vào, mô hình sẽ tìm ra một chuỗi các
trạng thái có xác suất cao nhất tương ứng với chuỗi quan sát đó.
Một HMM được xác định bởi các yếu tố sau:
5
Q = q
1
q

2
q
T
: là tập các trạng thái.
A = a
11
a
12
…a
1N
…a
N1
…a
NN
: là ma trận xác suất chuyển trạng thái, trong đó mỗi giá
trị a
ij
biểu diễn xác suất chuyển từ trạng thái i sang trạng thái j và .
O = o
1
o
2
…o
T
: là chuỗi gồm T quan sát.
B = b
i
(o
t
): là tập các likelihood của các quan sát, hay còn được gọi là xác suất

sinh, trong đó mỗi giá trị b
i
(o
t
) biểu diễn xác suất của quan sát o
t
được sinh ra từ
trạng thái i.
4 Website:
5 Tham khảo Chương 6, “Speech and Language Processing” [7]
19
q
0
, q
end
: là các trạng thái bắt đầu và trạng thái kết thúc. 2 trạng thái là luôn có ở
bất kỳ HMM nào và không liên hệ với chuỗi quan sát.
= 
1

2
…
N
: là phân bố xác suất khởi tạo trạng thái, �
i
là xác suất để
trạng thái i ở vị trí đầu tiên và .
Một HMM được định nghĩa bởi các tập tham số A, B, , N tr� ạng thái và T quan
sát có thể được biểu diễn như sau:
Hình 5: HMM với N=5

Mô hình Markov ẩn trên được xây dựng trên cơ sở công nhận các giả thuyết
sau[7]:
Xác suất chuyển tới một trạng thái tiếp theo chỉ phụ thuộc vào trạng thái hiện tại.
Xác suất chuyển trạng thái là không phụ thuộc vào thời gian
Xác suất của một quan sát đầu ra o
t
chỉ phụ thuộc vào trạng thái đã sinh ra quan
sát q
t
, không phụ thuộc vào bất kỳ trạng thái hay quan sát nào khác.
4.2. NHỮNG VẤN ĐỀ CHÍNH CỦA HMM
Có ba vấn đề chính cần được đề cập đến khi sử dụng một hệ thống HMM, đó
là[2]:
Ước lượng xác suất mô hình:
 Cho trước: mô hình λ = (A, B, ), cùng chuỗi quan sát O = o
1
o
2
…o
T
,
 Cần làm: tính xác suất của chuỗi quan sát với mô hình đó P(O| λ)
Nhận dạng
 Cho trước: mô hình λ = (A, B, ), cùng chuỗi quan sát O = o
1
o
2
…o
T
,

20
 Cần làm: tìm dãy trạng thái tối ưu Q = q
1
q
2
…q
T
có khả năng cao nhất
sinh ra chuỗi quan sát O, với mô hình cho trước đó
Huấn luyện
 Cho trước: mô hình λ = (A, B, ), các chuỗi quan sát cho huấn luyện: ,
trong đó O
k
là dãy quan sát cho ví dụ huấn luyện thứ k
 Cần làm: khớp lại các tham số của mô hình để có xác suất P(O| λ) lớn
nhất
Trong phần tiếp theo tôi sẽ giới thiệu cụ thể về cách giải quyết các vấn đề được
đưa ra trên đây.
4.2.1. Ước lượng xác suất mô hình
6
Vấn đề cần quan tâm đầu tiên khi sử dụng HMM là việc ước lượng xác suất của
mô hính. Đó là xác suất đoán nhận một dãy quan sát của một mô hình λ = (A, B, )
cho trước, ký hiệu là P(O|λ). Ta có các công thức:
Trong đó, p là số khả năng có thể có của dãy Q = q
1
q
2
q
T
, đoán nhận dãy quan

sát O bởi mô hình λ. Xét một ví dụ đơn giản, một HMM gồm có 3 trạng thái và chuỗi
quan sát O = o
1
o
2
o
3
o
4
o
5
gồm 5 quan sát. Hình dưới đây mô tả mô hình này, trong đó
hàng dọc là các trạng thái, hàng ngang là các quan sát, một quan sát sẽ được đoán nhận
bởi một trong 3 trạng thái. Xét một trường hợp, dãy Q
1
= q
1
q
1
q
2
q
3
q
3
được thể hiện bởi
đường đi nét đậm trong hình vẽ dưới đây.
6 Tham khảo “The Concepts of Hidden Markov Model in Speech recognition Systems”[2] và “A Tutorial
on Hidden Markov Models and Selected Applications in Speech Recognition”[12]
21

Hình 6: HMM với N=3, T=5
Khi đó, xác suất P(O
1
|Q
1
,λ) và P(Q
1
|λ) sẽ được tính như sau:
Với các tính toán trên, chúng ta sẽ phải tính xác suất của tất cả các đường đi có
thể có. Với N trạng thái ẩn và T quan sát thì có tới N
T
đường đi, như vậy số xác suất
phải tính sẽ tăng lên theo cấp số mũ khi N và T tăng lên. Trong các bài toán thực tế, số
trạng thái ẩn và quan sát thường lớn, do đó cách tính toán như này là không hiệu quả.
4.2.1.1. Thuật toán Forward
Một thuật toán quy hoạch động có khả năng tính toán hiệu quả hơn đã được đưa
ra: thuật toán Forward. Xác suất của dãy quan sát P(O|λ) sẽ được tính toán bằng cách
cộng tất cả các xác suất của tất các các đường đi có thể sinh ra dãy quan sát, nhưng
thuật toán này hoạt động hiệu quả bởi vì nó gộp hoàn toàn mỗi đường đi vào một lưới
forward (forward trellis) duy nhất.
Trong thuật toán forward, một mảng NxT sẽ được tạo ra, trong đó giá trị biểu
diễn xác suất ở vị trí quan sát thứ t và có trạng thái ẩn thứ i, có công thức như sau:
22
Hình 7: Tính xác suất Forward [2]
Giá trị được tính bằng cách cộng tất cả các xác suất của các đường đi có thể dẫn
tới vị trí đó. Thuật toán Forward được mô tả như sau:
1, Khởi tạo:
2, Quy nạp:
3, Kết thúc:
4.2.1.2. Thuật toán Backward

Thuật toán Backward cũng giống với thuật toán Forward, tuy nhiên đường đi của
quan sát sẽ được xét theo chiều ngược lại, từ quan sát thứ T cho đến quan sát đầu tiên.
Do đó xác suất tại mỗi một vị trí sẽ là tổng các xác suất của tất cả các đường đi từ cuối
trở về đến vị trí đó. Trong thuật toán này, xác suất ở vị trí quan sát thứ t và trạng thái
ẩn thứ i sẽ được ký hiệu là , trong đó:
23
Hình 8: Tính xác suất Backward [2]
Thuật toán Backward được mô tả như sau:
1, Khởi tạo:
2, Quy nạp:
3, Kết thúc:
Độ phức tạp của cả hai thuật toán trên đều là O(N
2
T). Ngoài ra, xác suất của dãy
quan sát P(O|λ) còn có thể được tính bằng thuật toán Forward-Backward, là kết hợp
của 2 thuật toán trên, bằng công thức:
4.2.2. Nhận dạng
Nhiệm vụ của nhận dạng là tìm ra một chuỗi trạng thái ẩn tốt nhất cho một chuỗi
quan sát cho trước, đối với một mô hình λ = (A, B, ) cho trước. Có nhiều thuật toán
để làm việc này, tuy nhiên trong phần này tôi sẽ chỉ giới thiệu thuật toán Viterbi, một
thuật toán quy hoạch động nổi tiếng cho nhận dạng đối với mô hình HMM.
24
Thuật toán Viterbi có cách hoạt động giống với thuật toán Forward, đi từ trái
sang phải của dãy quan sát để lấp đầy một mảng NxT. Gọi v
t
(j) là giá trị tại ô ở hàng j,
cột t. Giá trị của v
t
(j) chính là xác suất lớn nhất trong số các xác suất của các đường đi
dẫn đến vị trí đó. Thuật toán sẽ được thực hiện một cách đệ quy, giá trị v

t
(j) sẽ được
tính dựa vào các giá trị trước đó như sau:
Kết quả nhận dạng sẽ là đường đi có xác suất cao nhất, từ đầu tới cuối mô hình.
4.2.3. Huấn luyện
Mục này sẽ đề cập đến vấn đề huấn luyện HMM, được coi là phần khó nhất trong
ba vấn đề được nêu ra ở phần này. Nhiệm vụ của việc huấn luyện HMM là điều chỉnh
các tham số mô hình (A, B, ) để đạt được một mô hình tối ưu nhất cho các mẫu huẫn
luyện. Có nhiều kỹ thuật đã được đưa ra cho vấn đề này, tuy nhiên trong mục này tôi
sẽ chỉ giới thiệu một kỹ thuật huấn luyện khá thông dụng, đó là kỹ thuật huấn luyện sử
dụng thuật toán Baum-Welch[18], hay còn gọi là thuật toán Forward-Backward – một
trường hợp riêng của thuật toán tối ưu hóa kỳ vọng (Expectation Maximization
Algorithm)[5]. Thuật toán này dựa trên phương pháp lặp để đạt được cực đạt địa
phương của hàm xác suất P(O|λ). Trong mỗi vòng lặp, các tham số của mô hình sẽ
được điều chỉnh lại, và mô hình mới sẽ tốt hơn mô hình cũ, như đã được chứng minh
bởi Baum và nhiều người khác. Thuật toán sẽ dừng lại khi gặp điều kiện hội tụ, tức là
khi xác suất mô hình P(O|λ) không tăng nữa hoặc tăng rất ít, hoặc khi gặp phải điều
kiện tới hạn của tính toán. Mô hình luôn luôn hội tụ, tuy nhiên chỉ có thể đảm bảo giá
trị đạt được của P(O|λ) là một cực đại địa phương.
Trước khi đi vào thuật toán cụ thể, cần định nghĩa hai xác suất: γ
t
(i) và ξ
t
(i,j). Đầu
tiên là xác suất γ
t
(i), có ý nghĩa là xác suất ở trạng thái i tại quan sát thứ t, với một dãy
quan sát và mô hình cho trước:
Vì và nên ta có:
Xác suất thứ hai là ξ

t
(i,j), có ý nghĩa là xác suất ở trạng thái i tại quan sát thứ t và
trạng thái j tại quan sát thứ t+1, với mô hình λ và dãy quan sát O cho trước:
Theo công thức Bayes ta có:
25

×