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

Nhận dạng giọng nói bằng MATLAB

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 (888.55 KB, 45 trang )

Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

MỤC LỤ

Trang 1

C


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

MỞ ĐẦU
Ngơn điệu chính là cái mang lại cho tiếng nói con người những âm sắc riêng
biệt. Ngơn điệu của tiếng nói liên kết chặt chẽ với ngữ điệu. Ngữ điệu là sự nâng cao
hạ thấp của giọng nói trong câu. Tiếng Việt ta là một ngơn ngữ khá phức tạp bao
gồm cả ngơn điệu và ngữ điệu. Do đó vấn đề nhận dạng tiếng nói cần rất nhiều sự
đầu tư và nghiên cứu. Tuy nhiên cho đến nay kết quả mang lại vẫn chưa hồn thiện
do tính chất phức tạp và khơng cố định của đối tượng nhận dạng là tiếng nói của con
người, đặc biệt là tiếng Việt.
Hiện nay có rất nhiều phương pháp nhận dạng tiếng nói. Mơ hình Fujisaki
được ứng dụng rộng rãi trong hệ thống của tiếng Nhật, mơ hình MFGI (Mixdorff
Fujisaki model of German Intonation) được ứng dụng trong tiếng Đức, mơ hình
HMM (hidden markov models)…vv
Trong các mơ hình trên lại áp dụng nhiều phuơng pháp nhận dạng khác nhau. Mọi
phương pháp mang một tính đặc trưng và ưu điểm riêng.
• Phương pháp LPC (linear predictive coding)-mã hóa dự báo tuyến tính:
nhược điểm là có một số từ phát âm gần giống nhau thì bò nhầm lẫn
nhiều.
• Phương pháp AMDF (average magnitude difference function)- hàm hiệu biên
độ trung bình: ưu điểm là số ngõ vào ít,kích thước mạng huấn luyện
nhỏ, ít phụ thuộc vào cách phát âm nên tỉ lệ đọc sai ít hơn phương pháp


LPC, tuy nhiên khuyết điểm là không phân biệt về thanh điệu, khó sử
ụng trong trường hợp từ đọc liên tiếp.

• AMDF & LPC :Do ưu và nhược điểm của hai phương pháp LPC và AMDF
nên cần sự kết hợp giữa hai phương pháp đó.
• Phương pháp thứ tư MFCC (mel-frequency ceptrums coefficients).
Nhận dạng tiếng nói là một q trình nhận dạng mẫu, với mục đích là phân lớp
thơng tin tín hiệu tiếng nói thành một dãy tuần tự các mẫu đã được học trước đó và
lưu trư trong hệ thống nhận dạng. Các mẫu là các đơn vị nhận dạng, chúng có thể là
các từ hay các âm vị. Nếu các mẫu này là bất biến và khơng thay đổi thì cơng việc
Trang 2


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

nhận dạng tiếng nói trở nên đơn giản bằng cách so sánh dữ liệu tiếng nói cần nhạn
dạng với các mẫu đã được học và lưu trữ trong hệ thống.
Nhận dạng tiếng nói là một lĩnh vực tuy không mới nhưng vô cùng phức tạp.
Nhạn dạng tiếng nói được thế giới bắt đầu nghiên cứu cách đây hơn 50 năm, tuy
nhiên những kế quả thực tế đạt được vô cùng khả quan. Còn phải rất lâu nữa con
người mới đạt đến việc xây dựng một hệ thống hiểu được tiếng nói như con người.
Trong phạm vi chỉ là đồ án tốt nghiệp chúng em sẽ xây dựng chương trình nhận
dạng mười chữ số tiếng Việt bằng những công cụ có sẵn của Matlab. Định hướng
xây dựng chương trình nhận dạng được tất cả các từ, câu trong tiếng Việt để có thể
ứng dụng được vào thực tế. Tuy nhiên do chỉ mới tiếp xúc với lĩnh vực này nên khả
năng, kiến thức của chúng em con rất hạn chế và những khó khăn về thời gian,
phương tiện…nên chúng êm chỉ có thể xây dựng một hệ thống nhận dạng nhỏ.
Trong tương lai nếu có điều kiện tiếp xúc và nghiên cứu sâu hơn về lĩnh vực này, em
mong muốn phát triển đồ án này lên để có thể ứng dụng trong thực tế.


Trang 3


NhËn d¹ng tiÕng nãi
V¨n b¶n

Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy
Kh«ng tiÕp xóc víi PC

§iÒu khiÓn, ra lÖnh

Kh«ng thêi gian thùc

Chương 1 TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI
1.1 Nhận dạng tiếng nói

Cã tiÕp xóc víi PC

Hiểu một cách đơn giản, nhận dạng tiếng nói (speech recognition by
machine) là dùng máy tính chuyển đổi tín hiệu ngôn ngữ từ dạng âm thanh thành
dạng văn bản. Nói một cách chính xác hơn: nhận dạng tiếng nói là phân chia
(segmentation) và gán nhãn ngôn ngữ (labeling) cho tín hiệu tiếng nói.
Nhận dạng tiếng nói có nhiều ứng dụng:


Đọc chính tả : Là ứng dụng được sử dụng nhiều nhất trong các hệ nhận dạng.
Thay vì nhập liệu bằng tay thông qua bàn phím, người sử dụng nói với máy
qua micro và máy xác định các từ được nói trong đó.
• Điều khiển - giao tiếp không dây : Chẳng hạn hệ thống cho phép máy tính
nhận lệnh điều khiển bằng giọng nói của con người như: “chạy chương

trình”, “tắt máy”… Một số ưu điểm của việc sử dụng tiếng nói thay cho các
thiết bị vào chuẩn như bàn phím, con chuột là: thuận tiện, tốc độ cao, không
bị ảnh hưởng của cáp, khoảng cách, không đòi hỏi huấn luyện sử dụng...
• Điện thoại-liên lạc : Một số hệ thống (chẳng hạn ở máy điện thoại di động)
cho phép người sử dụng đọc tên người trong danh sách thay vì bấm số. Một
số hệ thống khác (ở ngân hàng, trung tâm chứng khoán…) thực hiện việc trả
lời tự động đối với các các cuộc gọi hỏi về tài khoản…
• …
Tuy nhiên vấn đề nhận dạng tiếng nói gặp rất nhiều khó khăn. Một số khó khăn chủ
yếu là:


Tiếng nói là tín hiệu thay đổi theo thời gian. Mỗi người có một giọng nói,
cách phát âm khác nhau... Thậm chí một người phát âm cùng một từ mà mỗi
lần khác nhau cũng không giống nhau (chẳng hạn về tốc độ, âm lượng...)
• Các phương pháp nhận dạng hiện tại của máy tính khá “máy móc”, còn xa
mới đạt đến mức độ tư duy của con người.
• Nhiễu là thành phần luôn gặp trong môi trường hoạt động của các hệ thống
nhận dạng và ảnh hưởng rất nhiều đến kết quả nhận dạng.
Do những khó khăn đó, nhận dạng tiếng nói cần tri thức từ rất nhiều từ ngành khoa
học liên quan:


Xử lí tín hiệu: tìm hiểu các phương pháp tách các thông tin đặc trưng, ổn
Trang 4

NhËn d¹ng ngêi nãi
§iÒu k



Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy








định từ tín hiệu tiếng nói, giảm ảnh hưởng của nhiễu và sự thay đổi theo thời
gian của tiếng nói.
Âm học: tìm hiểu mối quan hệ giữa tín hiệu tiếng nói vật lí với các cơ chế
sinh lí học của việc phát âm và việc nghe của con người.
Nhận dạng mẫu: nghiên cứu các thuật toán để phân lớp, huấn luyện và so
sánh các mẫu dữ liệu...
Lí thuyết thông tin: nghiên cứu các mô hình thống kê, xác suất; các thuật
toán tìm kiếm, mã hoá, giải mã, ước lượng các tham số của mô hình…
Ngôn ngữ học: tìm hiểu mối quan hệ giữa ngữ âm và ngữ nghĩa, ngữ pháp,
ngữ cảnh của tiếng nói.
Tâm-sinh lí học: tìm hiểu các cơ chế bậc cao của hệ thống nơron của bộ não
người trong các hoạt động nghe và nói.
Khoa học máy tính: nghiên cứu các thuật toán, các phương pháp cài đặt và
sử dụng hiệu quả các hệ thống nhận dạng trong thực tế.

Ba nguyên tắc cơ bản trong nhận dạng tiếng nói:


Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một
khung thời gian ngăn. Như vậy ta có thể trích ra đặc điểm tiếng nói từ những
khỏang thời gian ngắn và dùng các đặc điểm này làm dữ liệu nhận dạng tiếng

nói.
• Nội dung của tiếng nói được biễu diễn dưới dạng chữ viết, là một dãy các kí
hiệu ngữ âm.
• Nhận dạng tiếng nói là một quá trình nhận thức. Ngôn ngữ nói là có nghĩa, do
đó thông tin về ngữ nghĩa và suy đoán của giá trị trong quá trình nhận dạng
tiếng nói nhất là khi thông tin về âm học là không rõ ràng.

Trang 5


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

1.2 Một số phương pháp nhận dạng tiếng nói phổ biến
1.2.1 So sánh mẫu bằng phương pháp lập trình động ( Dynamic Program)
Khi so sánh tín hiệu thu người ta phải so sánh với tất cả các mẫu, điều này sẽ
làm tốn rất nhiều thời gian tính toán. Để giảm thời gian tính toán và tăng tốc độ xử
lý nhận dạng giọng nói người ta sử dụng phương pháp lập trình động. Ở phương
pháp nhận dạng mẫu này các từ cần nhận dạng sẽ được so sánh với các mẫu được
lưu trữ trong hệ thống và thực hiện việc so sánh hai mẫu tín hiệu này để tìm ra mẫu
có sai số là nhỏ nhất. Bởi vì tín hiệu âm thanh được tạo ra tại các thời điểm khác
nhau thì không bao giờ giống nhau hoàn toàn. Nó luôn có sự sai khác do các yếu tố
về trọng âm, ngữ điệu, tốc độ, … Vì vậy cần phải thực hiện so sánh hai mẫu theo
các thuật toán biến dạng nhằm giảm thiểu sai số. Thuật toán DTW (Dynamic Time
Warping) có thể coi là thuật toán hiệu quả nhất cho việc ứng dụng so sánh tín hiệu
có chiều dài khác nhau và có sai số nhỏ nhất. Thuật toán này sử dụng phương pháp
đệ quy
Ví dụ : Các chương trình con (Procedure) được tự động gọi ra nhưng với các
thông số (parameter) khác nhau và tìm các sai số so với các tín hiệu mẫu. Mẫu nào
có sai số so với tín hiệu cần so sánh là nhỏ nhất thì mẫu đó chính là mẫu cần tìm.
1.2.2 Phương pháp mô hình Markov ẩn (Hidden Markov Model)

Hệ thống nhận dạng từ rời rạc dựa trện HMM có sơ đồ khối như sau:
Các mẫu của HMM được lưu trữ

Phân
tích và xác định các
tham tử
số So
sánh
độ tương ứng với cácNguyên
mẫu HMM
tắc lựaTừ
chọn
nhận dạng được
Lượng
hóa
Vector
Tiếng
nói
đầu vào

Từ nhận dạng được chia thành chuỗi thời gian của T khung và được phân tích
một số thuật toán phân tích như (MFCC), phân tích mã hóa dự báo tuyến tính (LPC),
biến đổi Fourier nhanh (FFT), ... Sau bước này ta có chuỗi mẫu quan sát Ot (t=
1,2,3,... T). Chuỗi Ot được lượng tử hóa là tập đại diễn của M mẫu tiếng nói. Sau đó
Trang 6


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

hệ thống so sánh độ tương ứng của từ đầu vào với của M mẫu tiếng nói. Từ đầu vào

được nhận bằng cách lấy từ giống với nó nhất trong mẫu của hệ thống.
Về mặt toán học, mỗi mô hình từ Mi, i=1,2,... W được xác định bởi tập tham số
[A,B,π].
Gọi P = {Ot | Mi} là xác suất nhận được chuỗi quan sát Ot với mô hình Mi. Từ được
nhận dạng RW được xác định từ công thức : . Trong đó Argmax cho biết kết quả chỉ
số i của mô hình Mi có xác suất P = {Ot | Mi} cao nhất.
Để tính giá trị P = {Ot | Mi} cần xét tất cả các chuỗi trạng thái có thể tạo ra chuỗi
quan sát và sau đó xác định chuỗi trạng thái nào có xác suất cao nhất. Tuy nhiên nếu
phải xét tất cả thì sẽ không thực tiễn vì phải xét với số lượng rất lớn các chuỗi trạng
thái. Để giảm thiểu khối lượng tính toán có thể dùng hai phương pháp đệ quy là
thuật toán Baul-Welch và thuật toán Viterbi
1.2.3 Phương pháp mạng Nerural (Neural Network)
Mạng neural có cấu trúc Perceptron nhiều lớp như hình được sử dụng nhiều
trong các hệ thống nhận dạng. Perceptron là loại đơn giản nhất của các mạng liên
kết (là mạng không có liên kết giữa các khối xử lý trong cùng một lớp và không có
liên kết giữa các khối xử lý ở lớp ra quay ngược về lớp vào) sử dụng thuật toán có
giám sát. Một mạng Perceptron bao gồm đơn vị xử lý được sắp xếp thành nhiều lớp.
Mạng này được huấn luyện theo quy tắc Delta hoặc các biến thể của nó. Các khối xử
lý được sắp xếp thành các lớp bao gồm một lớp vào một khối xử lý ở một lớp ẩn và
một lớp ra. Các liên kết có trọng số khác nhau kết nối mỗi một khối xử lý ở một lớp
nào đó tới tất cả các khối xử lý ở lớp lân cận.
Lớp ra

Lớp ra

Lớp ẩn
Lớp vào
(a)

(b)


Lớp vào

Mạng Perceptron. (a) Perceptron một lớp, (b) Perceptron nhiều líp
Trang 7


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Mạng neural loại này được huấn luyến bằng cách nhập một vector mẫu ở lớp
đầu vào và tính toán các đầu ra. Sau đó, đầu ra được so sánh với các mẫu đầu ra
mong muốn. Sai số giữa đầu ra thực tế với đầu ra mong muốn được tính và phản hồi
qua mạng tới mỗi phần tử. Trọng số đầu vào của mỗi phần tử được điều chỉnh để tối
thiểu sai số. Trong quá trình này được lặp lại cho đến khi đầu ra thực tế lệch với đầu
ra mong muốn trong phạm vi sai số xác định trước. Có rất nhiều cặp mẫu đầu vào,
đầu ra được đưa qua mạng và quá trình trên đươc lặp lại cho mỗi cặp đầu vào, đầu
ra. Việc nhận dạng chính là nhập mẫu tiếng nói chưa biết ở nút đầu vào của mạng đã
được huấn luyện và tính toán giá trị của các nút đầu ra để xác định mẫu tiếng nói.
1.2.4 Phương pháp trí tuệ nhân tạo (Artificial Intelligence)
Ý tưởng cơ bản của ứng dụng trí tuệ nhân tạo vào nhận dạng tiếng nói là thu
thập kiến thức từ các nguồn kiến thức khác nhau để giải quyết các vấn đề đặt ra. Ví
dụ ứng dụng trí tuệ nhân tạo để làm công đoạn phân đoạn và gán nhãn tiếng nói cần
có sự tổng hợp về các kiến thức âm học, ngữ âm học, từ vựng học, cú pháp học, ngữ
nghĩa và kiến thức thực tế.
-

-

Kiến thức âm học : Là kiến thức về đặc trưng của âm thanh (các đơn vị ngữ
âm) được phát ra trên cơ sở các số đo về phổ tín hiệu và các đặc tính hữu

thanh và vô thanh.
Kiến thức về từ vựng : Là những nguyên tắc do từ điển đặt ra để kết hợp các
âm thanh thành từ và ngược lại chia nhỏ từ thành âm thanh.
Kiến thức về cú pháp : Là sự kết hợp các từ thành các cụm từ hoặc câu đúng
ngữ pháp.
Kiến thức về ngữ pháp : Là sự hiểu biết về ngữ cảnh sao cho các câu hoặc
cụm từ phù hợp với mục tiêu định nói và phù hợp với các câu trước.
Kiến thức thực tế : Là khả năng suy luận logic cần thiết để làm rõ ý dựa trên
những cách thức thông thường mà từ được dùng.

Có nhiều cách khác nhau để tổng hợp các nguồn kiến thức vào trong hệ thống
nhận dạng tiếng nói. Phương pháp thông dụng nhất là xử lý từ dưới lên. Theo cách
này, các tiến trình xử lý được triển khai tuần tự từ thấp lên cao. Tiến trình phân tích
tín hiệu đầu vào, tìm đặc tính, phân đoạn, gán nhãn được trển khai đầu tiên, sau đó
là các tiến trình phân lớp âm thanh, xác định từ, câu. Mỗi tiến trình xử lý đòi hỏi
một nguồn kiến thức và các nguồn kiến thức này được tích lũy dần qua các quá trình
xử lý thực tế giống như kiến thức con người.
Trang 8


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

1.2.5 Mô hình hai từ và ba từ
Để hệ thống có khả năng làm việc với độ chính xác cao hơn, bên cạnh
phương pháp nhận dạng theo mô hình Markov ẩn người ta còn có thể tích hợp vào
hệ thống một phương pháp thống kê. Thông qua mô hình hai từ cũng như ba từ được
thống kê tích lũy trong qua trình tính toán nhận dạng nhiều lần, tiến trình kiểm tra
ngữ cảnh được thiết lập. Phương pháp này có ưu điểm là hệ thống nhớ được ngữ
cảnh mà người nói quen dùng. Hệ thống càng hoạt động lâu với một người, sẽ ngày
càng quen với cách nói của người đó và qua đó độ chính xác ngày càng cao. Trong

quá trình hệ thống nhận dạng làm việc với mô hình thống kê hai từ thì hai từ trong
câu được được so sánh với nhau. Nếu trước đó hai từ này đã tồn tại trong các câu
trước đó trong bộ nhớ thống kê thì từ đã được nhận dạng đó được xác định là chính
xác. Các hệ thống nhận dạng của các hãng như Dragon, Philips và Lernout&houspie
đều được áp dụng phương pháp thống kê hai từ. Tương tự như phương pháp thống
kê hai từ, phương pháp thống kê ba từ cho kết quả có độ chính xác cao hơn. Với
phương pháp thống kê ba từ, hệ thống có tốc độ xử lý chậm hơn do có độ phức tạp
hơn phương pháp thống kê hai từ rất nhiều.

Trang 9


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

1.3 Các phương pháp phân tích đặc trưng của tín hiệu tiếng nói

Trích đặc trưng của tiếng nói
1.3.1 Mô hình LPC (Linear Predictive Coding model)
Mô hình LPC được sử dụng khá rông rãi trong các hệ thống nhận dạng tiếng nói là
bởi các lý do sau:
-

-

-

LPC cung cấp một mô hình tốt của tín hiệu tiếng nói. Đặc biệt đối với các
trạng thái gần ổn định của âm thanh, mô hình LPC cho ta một xấp xỉ khá tốt
của phổ âm thanh. Tuy trong các vùng ngắn và không âm, mô hình LPC hoạt
động kém hiệu quả hơn vùng có âm, nhưng nó vẫn cung cấp một mô hình có

thể sử dụng tốt cho mục đích nhận dạng tiếng nói.
Cách mà LPC được ứng dụng trong việc phân tích tín hiệu tiếng nói dẫn đến
một sự phân tách hợp lý các âm nguồn âm thanh. Và như vậy, việc biểu diễn
chi tiết các đặc điểm của các dải âm thanh là hoàn toàn có thể.
Phương pháp tính toán của LPC chính xác về mặt toán học và đơn giản, trực
tiếp trong việc cài đặt lên cả phần cứng hoặc phần mềm. Số lượng tính toán
Trang 10


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

-

trong xử lý LPC cũng ít hơn trong phương pháp filters-bank
Mô hình LPC hoạt động tốt trong các ứng dụng nhận dạng. Knh nghiệm cho
thấy, các hệ thống nhận dạng sử dụng mô hình LPC cho kết quả tốt hơn so
với các hệ sử dụng filter-bank.

Ý tưởng cơ bản của mô hình LPC là một mẫu tiếng nói cho trước tại thời điểm n,
s(n) có thể được xấp xỉ bởi một tổ hợp tuyến tính của p mẫu tín hiệu quá khứ, theo
biểu thức sau:
(1)
Trong đó các hệ số a1,a2,…ap được coi như không đổi trong khung thời gian phân
tích. Biến đổi công thức (1), thêm vào đại lượng Gu(n) ta có:

Trong đó u(n) là kích thích chuẩn hoá và G là hệ số của kích thích. Bằng biến đổi
sang miền Z ta có quan hệ:

từ đó dẫn đến hàm truyền của mô hình:


Các biểu thức của phân tích LPC
Dựa trên mô hình liên hệ chính xác giữa s(n) và u(n)

ta coi tổ hợp tuyến tính của các tín hiệu quá khứ là một ước lượng của

Sai số ước lượng e(n) được định nghĩa:

Với hàm truyền sai số :
Vấn đề cơ bản của phân tích dự đoán tuyến tính là xác định tập các hệ số{ak}
tiên đoán trực tiếp từ tín hiệu tiếng nói để các đặc tính phổ của bộ lọc trùng với tín
hiệu sóng tiếng nói trong cửa sổ phân tích.
Do các đặc điểm phổ tần của tiếng nói t hay đổi theo thời gian, do vậy các hệ
số tiên đoán tại một thời điểm n phải được ước lượng từ một phân đoạn ngắn của tín
Trang 11


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

hiệu tiếng nói xảy ra gần n. Và như thế, hướng tiếp cận cơ bản là tìm một tập các hệ
số tiên đoán có sai số dự đoán bình phương đạt cực tiểu trên một phân đoạn ngắn
của tín hiệu sóng tiếng nói. Thông thường, tín hiệu tiếng nói được phân tích trên các
khung liên tiếp với độ dài khoảng 10ms.
Bài toán này được giải dựa trên phương pháp tự tương quan, khi đó các hệ số ak ước
lượng đc sẽ là nghiệm của phương trình:

Hay có thể biểu diễn dưới dạng ma trận như sau:

Với r(k) là hệ số tự tương quan của tín hiệu dời đi k mẫu

Hệ phương trình này được giải bằng thuật toán Levinson-Durbin.

Thuật toán Levinson-Dunbin:
Khởi tạo: p=1
Tính sai số bình phương trung bình bậc nhất:

Đệ qui: với p=2,3...,P
Tính hệ số Kp (hệ số PARCOR)

Tínhcác hệ số dự báo bậc p:

ap(p) = Kp
Tính sai số bình phương trung bình bậc p:

Trang 12


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Quay lại bước 1, thay p bằng p+1 nếu p P
Các bước thực hiện thuật toán LPC để trích đặc trưng của tín hiệu

Các bước thực hiện thuật toán LPC
 Bước 1: Lọc nhiễu, sử dụng bộ lọc thông cao

Với tần số cắt dưới 50-250 Hz để lọc nhiễu tần số thấp do microphone gây ra.
 Bước 2: Pre-emphasis để làm bằng phổ (spectrally flaten)

Tín hiệu s(n) được cho qua một bộ lọc thông thấp:
H(z)=1-az-1
Thường chọn a = 0.9375
Tín hiệu ban đầu màu xanh da trời, tín hiệu sau Pre-emphasis màu xanh lá


Trang 13


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Tín hiệu preemphasized
 Bước 3:Tín hiệu được phân đoạn thành các frame, mỗi frame N mẫu, độ

chồng lấp M mẫu : M = 1/3 N
Chọn tần số lấy mẫu
Chọn N và M
 Bước 4: cửa sổ hóa các frame, nhằm giảm sự gián đoạn của tín hiệu tại đầu và

cuối mỗi frame. Hay nói cách khác là giảm dần tín hiệu về 0 tại các khoảng
bắt đầu và kết thúc của mỗi khung.
Cửa sổ thường được dùng là cửa sổ Hamming.


 Bước 5: Xác định hệ số LPC dung thuật toán Levinson – Dubin cho mỗi
frame

ap(m) = LPC coefficient ,
Ta có p + 1 hệ số a, với a(0) = 1.
Trang 14


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Chọn p và bỏ a(0) . Ta có vector đặc trưng có độ dài là p cho mỗi frame.

 Bước 6 : Chuyển các hệ số dự báo tuyến tính thành các hệ số ceptral.

( là hệ số G của mô hình LPC )

Hệ số ceptral là các hệ số của biến đổi Fourier cho log cường độ phổ. Các hệ số này
được cho là đáng tin cậy hơn các hệ số LPC
 Bước 7: Tính toán các hệ số ceptral có trọng số

Trong đó :

Việc này nhằm giảm sự ảnh hưởng của overall spectral slope tới các hệ số
ceptral bậc thấp và nhiễu tới các hệ số ceptral bậc cao. Thực chất là ta dùng một cửa
sổ ceptral giảm dần ở hai đầu. Hàm Wm de-emphasize cm quanh m = 1 và m = Q
 Bước 8 : Tính đạo hàm của các hệ số ceptral

Trong đó là hằng số chuẩn hoá (thường lấy 0.375)và (2K+1) là số frame được tính.
Kết thúc:
Vector đặc trưng là vector có 2Q thành phần gồm Q hệ số ceptral có trọng số và Q
đạo hàm của hệ số ceptral.
Một số tham số thường dùng [1]
Tham số Fs = 6.67kHz

Fs = 8 kHz

N

300 (45
msec)

240 (30 msec) 300 (30 msec)


M

100 (15 msec) 80 (10 msec)

100 (10 msec)

P

8

10

10

Q

12

12

12

Trang 15

Fs = 10 kHz


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy


K

3

3

3

Bảng tham số LPC
1.3.2 Phương pháp MFCC (Mel-Frequency Ceptrum Coefficients)
Bên cạnh LPC thì MFCC cũng là một phương pháp phổ biến. MFCC dựa trên
những nghiên cứu về những dải thông quan trọng (critical) của tai người đối với tần
số. Và để thu được những đặc trưng ngữ âm quan trọng người ta sử dụng các bộ lọc
tuyến tính với dải tần thấp và các bộ lọc có đặc tính loga với dải tần số cao. Trong
phương pháp này, ta sử dụng Mel-scale tuyến tính với các tần số dưới 1000Hz và tỉ
lệ logarit với các tần số trên 1000Hz.
1.3.2.1 Mel-frequency scale
Các nghiên cứu tâm sinh lý đã chỉ ra rằng nhận thức của con người đối với tần số
của âm thanh của các tín hiệu tiếng nói không theo một tỉ lệ tuyến tính. Vì vậy người
ta sử dụng một cách đo dựa trên tỉ lệ “Mel”.
Để chuyển từ thang tần số sang mel scale ta sử dụng công thức
(Mel)
Và công thức biến đổi ngược :

Tấn số Mel
Trang 16


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy


1.3.2.2 Thực hiện trích đặc trưng bằng phương pháp MFCC

Qui trình trích đặc trưng MFCC
a) Frame Blocking

Tín hiệu được chặt thành từng frame N mẫu với độ chồng lấp M mẫu.
Thường lấy M = 1/3N
(Ta lấy N=512 – để dễ cho việc tính FFT và M=100 )
b) Cửa sổ hoá

Cửa sổ hóa các frame, nhằm giảm sự gián đoạn của tín hiệu tại đầu và cuối mỗi
frame. Hay nói cách khác là giảm dần tín hiệu về 0 tại các khoảng bắt đầu và kết
thúc của mỗi khung.
Cửa sổ thường được dùng là cửa sổ Hamming.



với

c) Biến đổi Fourier nhanh (FFT)

Tín hiệu (của một frame) sau khi nhân với hàm cửa sổ, được chuyển sang miền tần
số bằng biến đổi Fourier rời rạc:
d) Chuyển đổi Mel-Frequency

Thực hiện chuyển đổi theo công thức (Mel).

Trang 17



Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Hình 1 Các bộ lọc tam giác để tính năng lượng trên mỗi dải tần số
e) Wrapping và biến đổi DCT

Để tính được M hệ số MFCC, thang Mel được chia thành M dải, mỗi dải có độ rộng
Bmax(f)/M. Dựa vào các dải này ta xây dựng M bộ lọc tam giác Hm. Từ đó tính ra M
giá trị năng lượng:

Sau đó thực hiện phép biến đổi cosin rời rạc DCT (Discrete Cosine Transformation)
ta sẽ thu được các hệ số MFCC:
MFCC = DCT (Sm)
Biến đổi cosin rời rạc:

Biến đổi ngược:

Với
1.3.2.3 Một số vấn đề khác
a) Vấn đề xác định điểm đầu và điểm cuối của tín hiệu (speech detection)

Mục đích của việc xác định tín hiệu là để tách biệt các đoạn tín hiệu tiếng nói cần
quan tâm với các phần khác của tín hiệu (môi trường, nhiễu …). Điều này là rất cần
thiết trong nhiều lĩnh vực. Đối với việc tự động nhận dạng tiếng nói, speech
detection là cần thiết để tách riêng đoạn tín hiệu là tiếng nói từ đó tạo ra các mẫu
Trang 18


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

(pattern) phục vụ cho việc nhận dạng.

Câu hỏi đặt ra ở đây là làm sao để xác định chính xác tín hiệu tiếng nói, từ đó cung
cấp mẫu “tốt nhất” cho việc nhận dạng. Trong trường hợp tín hiệu được thu trong
điều kiện môi trường gần lí tưởng (gần như không có nhiễu) thì việc xác định chính
xác tiếng nói là vấn đề không khó. Tuy nhiên, thong thường trong thực tế, một vài
vấn đề nãy sinh sẽ gây khó khăn cho việc xác định chính xác. Một trong những vấn
đề điển hình nhất là cách phát âm của người nói. Ví dụ, khi phát âm, người nói
thường tạo ra các âm thanh nhân tạo như tiếng chép môi, hơi thở hoặc là tiếng lách
tách trong miệng.
Yếu tố thứ 2 làm cho việc xác định tiếng nói trở nên khó khăn là điều kiện môi
trường mà tiếng nói được tạo ra. Một môi trường lí tưởng với nhiễu và tạp âm gần
như không có là không thực tế, do vậy bắt buộc phải xem xét việc phát ra tiếng nói
trong môi trường có nhiễu (như tiếng máy móc, quạt, tiếng xì xào của những người
xung quanh), thậm chí còn trong cả trường hợp môi trường xung quanh không ổn
định (tiếng sập cửa, tiếng xe cộ...)
Yếu tố cuối cùng trong việc làm giảm chất lượng tín hiệu là sự mất mát trong hệ
thống truyền tín hiệu, như là chất lượng của kênh thông tin, hay mất mất do sự
module hoá (lượng tử hoá, số hoá)
Speech detection thực sự quan trọng đối với phương pháp nhận dạng dựa trên so
sánh mẫu (pattern comparison), và cũng nâng cao chất lượng của mẫu đối với
phương pháp HMM hay mạng Neuron. Tuy nhiên trong nội dung đồ án do chỉ tập
trung vào HMM và mạng Neuron nên không đi sâu vào việc xác định tín hiệu, tín
hiệu tiếng nói được xác định ở ngưỡng 5%

Trang 19


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Chương 2 CÁC THUẬT TOÁN VÀ MÔ HÌNH NHẬN DẠNG TIẾNG NÓI
2.1 Giới thiệu

Mô hình Markov ẩn là mô hình thống kê trong đó hệ thống được mô hình hóa
được cho là một quá trình Markov với các tham số không biết trước và nhiệm vụ là
xác định các tham số ẩn từ các tham số quan sát được. Các tham số của mô hình
được rút ra sau đó có thể được sử dụng để thực hiện các phân tích kế tiếp, ví dụ ứng
dụng cho nhận dạng mẫu.
Trong một mô hình Markov điển hình, trạng thái được quan sát được từ
người quan sát, vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất.
Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các
biểu hiện có thể. Vì vậy, nhìn vào dãy các biểu hiện được sinh ra bởi HMM không
trực tiếp chỉ ra dãy các trạng thái.
Chú ý: Trong lí thuyết xác suất, quá trình Markov là một quá trình mang tính ngẫu
nhiên (stochastic process) với đặc tính như sau: trạng thái ck tại thời điểm k là một
giá trị trong tập hữu hạn {1,…,M}. Với giả thiết rằng quá trình chỉ diễn ra từ thời
điểm 0 đến thời điểm N và rằng trạng thái đầu tiên và trạng thái cuối cùng đã biết,
chuỗi trạng thái sẽ được biểu diễn bởi một vector hữu hạn C={c0,…,cN}. Nếu P(ck |
c0,c1,...,c(k − 1)) biểu diễn xác suất (khả năng xảy ra) của trạng thái ck tại thời điểm k
khi đã qua mọi trạng thái cho đến (k-1). Giả sử trong thời điểm đó ck chỉ phụ thuộc
vào trạng thái trước đó ck-1 và độc lập với các trạng thái trước khác. Quá trình đó
gọi là quá trình Markov bậc một(first order Markov process). Có nghĩa là xác suất
để xảy ra trạng thái ck tại thời điểm k, khi biết trước mọi trạng thái cho đến thời
điểm k-1 chỉ phụ thuộc vào trạng thái trước, ví dụ trạng thái ck-1 tại thời điểm k-1.
Khi đó ta có công thức:
P(ck | c0,c1,...,c(k − 1))= P(ck| c(k − 1))
Nói tóm lại một hệ có thuộc tính Markov được gọi là quá trình Markov (bậc1).
Như vậy, với quá trình Markov bậc n:
P(ck | c0,c1,...,c(k − 1))= P(ck| ck-n,ck-n-1,…,c(k − 1))
Nói chung với thuật toán Viterbi quá trình xảy ra bên dưới được xem là một quá
trình Markov:



Trạng thái hữu hạn nghĩa là số m là hữu hạn
Trang 20


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy


Thời gian rời rạc, nghĩa là việc chuyển từ trạng thái này sang trạng thái khác
cùng mất một đơn vị thời gian.
• Quan sát không tốn bộ nhớ, nghĩa là chuỗi các quan sát có xác suất chỉ phụ
thuộc vào trạng thái ngay trước đó (nên không cần lưu bộ nhớ nhiều).
2.2 Trình
Phương pháp tiếp cận lí thuyết thông tin về nhận dạng

Hình 1
Nhận dạng là tìm cách xác định được khả năng xảy ra lớn nhất của chuỗi ngôn ngữ
W, khi cho trước căn cứ âm A, Công thức:

Theo luật Bayes:
Trong mô hình HMM ta quan tâm đến P(W|A)
Kí hiệu:
A



W



P(A/W)




O

P(O/ )
Trang 21


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Ví dụ 1:

Hình 5.2






Xét ba chén, mỗi chén trộn giữa các các “đá trạng thái” 1 và 2.
Phân nhỏ chén thứ i thành 2 phần tỉ lệ ai1, ai2, khi đó ai1+ ai2 = 1.
Xét hai bình, mỗi bình chứa các quả bóng đen, bóng trắng.
Chia bình thứ i thành 2 phần tỉ lệ biB, biW, với biB+ biW = 1
Vector tham số cho mô hình này là:
λ = {a01,a02,a11,a12,a21,a22,b1(B),b1(W ),b2(B),b2(W )}

Hình 5.3
 Chuỗi quan sát : O={B,W,B,W,W,B}
 Chuỗi trạng thái: Q={1,1,2,1,2,1}

 Mục đích: cho mô hình λ và chuỗi quan sát O, có thể làm thể nào để chuỗi

trạng thái Q được xác định.
 Các yếu tố của mô hình Markov ẩn rời rạc
o N : số trạng thái trong mô hình
 Các trạng thái, s = {s1,s2,…,sN}
 Trạng thái ở thời điểm t, qt s
o M: Số kí hiệu quan sát (quan sát rời rạc)
 Tập các kí hiệu quan sát v={v1,v2,…,vM}
Trang 22


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Kí hiệu quan sát ở thời điểm t, ot v
o A= {aij}: Tập phân phối xác suất chuyển trạng thái
 aij = P(qt+1 = sj |qt = si ), 1 ≤ i,j ≤ N
o B = {bj (k)}: Phân bổ xác suất kí hiệu quan sát ở trạng thái j:
 bj (k)= P(vk at t|qt = sj ), 1 ≤ j ≤ N, 1 ≤ k ≤ M
o π = {πi }: Phân bổ xác suất trạng thái khởi đầu
 πi = P(q1= si ), 1 ≤ i ≤ N


Một mô hình HMM được viết dưới dạng đặc trưng λ = {A, B,π}
Ví dụ 2:
π={a01,a02} , và
Sơ đồ trạng thái
Một số mô hình thông dụng

Hình 5.4a: Mô hình 2-state và 3-state


Hình 5.4b:Mô hình Left – Righ

Trang 23


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Hình 5.4c:Mô hình Bakis

Hình 5.4d: Mô hình Tuyến tính
Tạo chuỗi quan sát trong HMM
o Lựa chọn một trạng thái khởi đầu, q1 = si, dựa trên phân bổ trạng thái khởi

đầu π.
o Cho t chạy từ 1T:
 Chọn ot = vk theo sự phân bổ xác suất kí hiệu trong trạng thái si, bi(k).
 Chuyển tiếp đến trạng thái mới qt+1=sj theo sự phân bổ xác suất sự
chuyển tiếp trạng thái cho trạng thái si, aij.
• Tăng t lên 1, quay lại bước 2 nếu t ≤ T; ngược lại thì kết thúc.

Hình 5.5: Sự tiến hóa của mô hình Markov
Biểu diễn sơ đồ trạng thái bằng sơ đồ mắt lưới(trellis)
Trang 24


Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy

Hình 5.6:( Những nét đứt thể hiện một sự chuyển tiếp trạng thái bằng 0, nơi mà
không có vector quan sát nào được tạo ra.)

2.3 Ba vấn đề cơ bản của HMM
Vấn đề 1: Tính điểm (Scoring) : cho một chuỗi quan sát O = {o1,o2,...,oT } và một
mô hình λ = {A, B,π}, làm thế nào chúng ta có thể tính toán xác suất có điều kiện
P(O | λ) (khả năng xảy ra của chuỗi quan sát)?
 Dùng thuật toán tiến lùi (the forward-backwark algorithm)
Vấn đề 2 : So khớp (Matching): cho một chuỗi quan sát O = {o1,o2,...,oT }, làm thế
nào chúng ra có thể lựa chọn chuỗi trạng thái Q = {q1,q2,...,qT } để nó tối ưu theo
một số hướng.
 Dùng thuật toán Viterbi
Vấn đề 3 : Huấn luyện (Training): làm thế nào chúng ta có thể điều chỉnh các tham
số của mô hình λ = {A,B,π} để đạt được P(O | λ) lớn nhất?
Dùng thủ tục Baum-Wetch
 Tính toán P(O|λ)

P(O|λ)=
P(O,Q |λ)= P(O|Q,λ)P(Q |λ)
Trang 25


×