K
H
TN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ TRI THỨC
NGUYỄN HỒNG QUANG - 0012081
H
NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT
C
N
TT
–
Đ
TÌM HIỂU VÀ ỨNG DỤNG
LUẬN VĂN CỬ NHÂN TIN HỌC
K
H
O
A
Đ
Em cũng không thể không nhắc đến sự động viên chăm sóc
–
của gia đình, sự cộng tác giúp đỡ và ủng hộ tinh thần của bạn bè.
C
N
TT
Em xin được tri ơn tất cả.
TP. Hồ Chí Minh, tháng 7 năm 2004.
K
H
O
A
Nguyễn Hồng Quang
1
Viết thuê luận văn thạc sĩ
- 0972.162.399
MỤC LỤC
Phân loại nhận dạng tiếng nói.............................................................10
1.2.2.1 Nhận dạng từ liên tục và nhận dạng từ cách biệt ............................10
1.2.2.2 Nhận dạng phụ thuộc người nói và độc lập người nói....................11
1.2.3
Hệ thống nhận dạng tiếng nói tự động................................................13
1.2.4
Lý thuyết nhận dạng tiếng nói ............................................................14
1.2.4.1 Rút trích vector đặc trưng................................................................15
1.2.4.2 Phân lớp...........................................................................................17
Chương 2 XỬ LÝ TIẾNG NÓI RÚT TRÍCH VECTOR ĐẶC TRƯNG .........21
2.1
Xử lý tiếng nói............................................................................................21
2.1.1
Lấy mẫu tín hiệu .................................................................................21
2.1.2
Bộ lọc tín hiệu.....................................................................................22
2.1.3
Dò tìm điểm cuối (end-point detection)..............................................24
2.2
Rút trích đặc trưng......................................................................................26
2.2.1
Các bước rút trích đặc trưng ...............................................................27
2.2.1.1 Làm rõ tín hiệu ................................................................................27
2.2.1.2 Phân đoạn thành các khung.............................................................27
2.2.1.3 Lấy cửa sổ .......................................................................................28
2.2.2
Các dạng đặc trưng tiếng nói ..............................................................33
2.2.2.1 Biến đổi tín hiệu sang miền tần số ..................................................33
2.2.2.2 Đặc trưng năng lượng......................................................................35
2.2.2.3 Đặc trưng MFCC.............................................................................36
K
H
O
A
C
N
TT
–
Đ
H
K
H
TN
3.3.4
Nhận xét ..............................................................................................65
Chương 4 HMM TOOLKIT .................................................................................67
4.1
Cấu trúc tập tin trong HTK ........................................................................69
4.1.1
Cấu trúc tập tin vector đặc trưng HTK ...............................................69
4.1.2
Cấu trúc tập tin mô hình HMM ..........................................................71
Viết thuê luận văn thạc sĩ
- 0972.162.399
DANH SÁCH HÌNH VẼ
K
H
O
A
C
N
TT
–
Đ
H
K
H
TN
Hình 1.1: Sơ đồ nhận dạng tổng quát .........................................................................8
Hình 1.2: Các lĩnh vực trong xử lý tiếng nói ............................................................10
Hình 1.3: Ranh giới giữa “cô” và “ấy” không rõ ràng ...........................................11
Hình 1.4: Người nói khác nhau sẽ phát âm khác nhau.............................................12
Hình 3.8:Ví dụ minh họa thuật toán Viterbi (tt) .......................................................57
Hình 3.9: Ví dụ minh họa so khớp dùng thuật toán tiến-lùi .....................................58
Hình 3.10: Minh họa ước lượng Baum - Welch........................................................59
Hình 3.11: Minh họa việc nhận dạng âm vị trong HMM .........................................60
Hình 4.1: Mô hình đơn giản trong nhận dạng tiếng nói...........................................67
Hình 4.2: Các module và chức năng trong HTK ......................................................68
4
Viết thuê luận văn thạc sĩ
- 0972.162.399
K
H
O
A
C
N
TT
–
Đ
H
K
H
TN
Tiếng nói là phương tiện giao tiếp cơ bản nhất của loài người, nó hình thành
và phát triển song song với quá trình tiến hóa của loài người. Đối với con người, sử
dụng lời nói là một cách diễn đạt đơn giản và hiệu quả nhất. Ưu điểm của việc giao
tiếp bằng tiếng nói trước tiên là ở tốc độ giao tiếp, tiếng nói từ người nói được
người nghe hiểu ngay lập tức sau khi được phát ra. Bên cạnh đó, tiếng nói là cách
giao tiếp được sử dụng rộng rãi nhất – bất cứ ai (dĩ nhiên là trừ những người khuyết
tật) cũng có thể nói được.
Ngày nay, nhờ sự phát triển của khoa học kỹ thuật, máy móc dần dần thay
H
thế các lao động tay chân. Tuy nhiên để điều khiển máy móc, con người phải làm
Đ
khá nhiều thao tác tốn nhiều thời gian và cần phải được đào tạo. Điều này gây trở
ngại không ít đối với việc sử dụng các máy móc, thành tựu khoa học kỹ thuật.
–
Trong khi đó, nếu điều khiển máy móc thiết bị bằng tiếng nói sẽ dễ dàng hơn. Nhu
C
N
TT
cầu điều khiển máy móc thiết bị bằng tiếng nói càng bức thiết hơn đối với các thiết
bị cầm tay, như: điện thoại di động, máy Palm/Pocket PC,…
nhận thấy rằng nếu như chúng ta có sự phổ biến kiến thức rộng rãi, không chỉ cho
những người chuyên về lĩnh vực công nghệ thông tin, mà còn cho những người
không chuyên thì chúng ta hoàn toàn có thể thúc đẩy, phát triển và gặt hái nhiều
thành công hơn. Vì lúc đó vấn đề không chỉ được nghiên cứu, phát triển bởi một số
người mà là của nhiều người. Những lĩnh vực nghiên cứu khác cưng có thể làm
tương tự.
K
H
O
A
C
N
TT
–
Đ
H
Vì lý do trên mà em không chỉ tìm tòi nghiên cứu lý thuyết, mà còn cố gắng
phát triển thành ứng dụng.
7
Viết thuê luận văn thạc sĩ
- 0972.162.399
–
Tiền xử lý và rút trích
vector đặc trưng
C
N
TT
Tín hiệu cần
nhận dạng
Tín hiệu dùng
để học
Học mẫu, phân lớp
Nhận dạng, so
khớp mẫu
Kết quả
Tập hợp từ điển
các lớp tín hiệu
K
H
O
A
khớp nhất (và mức độ so khớp thỏa một ngưỡng nào đó) ứng với một
lớp tín hiệu nào đó thì hệ thống nhận dạng xác định tín hiệu đó thì tín
hiệu đó thuộc vào nhóm tín hiệu đó với một tỉ lệ nhất định gọi là độ
chính xác của hệ thống nhận dạng (tỉ lệ này dĩ nhiên là càng cao càng
tốt).
Nhận dạng tiếng nói
H
1.2
Đ
1.2.1 Xử lý âm thanh
Khi âm thanh được máy vi tính hỗ trợ thì nhu cầu xử lý âm thanh đã
–
xuất hiện. Các nhu cầu này đã tạo ra nhiều lĩnh vực ứng dụng trong thực tế.
C
N
TT
Chẳng hạn như: Tổng hợp âm thanh (Synthesis), nén âm thanh (Compression),
nhận dạng người nói (speaker recognition), nhận dạng tiếng nói (speech
C
N
TT
1.2.2.1
–
1.2.2 Phân loại nhận dạng tiếng nói
Một hệ nhận dạng tiếng nói có thể là một trong hai dạng: nhận
dạng liên tục và nhận dạng từng từ.
Nhận dạng liên tục tức là nhận dạng tiếng nói được phát liên tục
trong một chuỗi tín hiệu, chẳng hạn như một câu nói, một mệnh lệnh
K
H
O
A
hoặc một đoạn văn được đọc bởi người dùng. Các hệ thống loại này rất
phức tạp, nó phức tạp ở chỗ các từ được phát liên tục khó xử lý kịp (nếu
cần thời gian thực), hoặc khó tách ra nếu như người nói liên tục không có
khoảng nghỉ (thông thường rất hay xảy ra trong thực tế). Kết quả tách từ
ảnh hưởng rất lớn đến các bước sau, cần xử lý thật tốt trong quá trình
này.
C
N
TT
1.2.2.2
Đối với nhận dạng phụ thuộc người nói thì mỗi một hệ nhận dạng
chỉ phục vụ được cho một người, và nó sẽ không hiểu người khác nói gì
nếu như chưa được huấn luyện lại từ đầu. Do đó, hệ thống nhận dạng
người nói khó được chấp nhận rộng rãi vì không phải ai cũng đủ khả
K
H
O
A
năng kiến thức và nhất là kiên nhẫn để huấn luyện hệ thống. Đặc biệt là
hệ thống loại này không thể ứng dụng ở nơi công cộng.
Ngược lại, hệ thống nhận dạng độc lập người nói thì lý tưởng hơn,
ứng dụng rộng rãi hơn, đáp ứng được hầu hết các yêu cầu đề ra. Nhưng
không may là hệ thống lý tưởng như vậy gặp một số vấn đề, nhất là độ
chính xác của hệ thống.
Trong thực tế, mỗi người có một giọng nói khác nhau, thậm chí
qua một quá trình ngắn huấn luyện hệ thống). Điều này đã được
Đ
Microsoft đưa vào bộ phần mềm Office của mình.
–
Nhận dạng độc lập người nói khó hơn rất nhiều so với nhận dạng
phụ thuộc người nói. Cùng một từ, một người, dù có cố gắng phát âm
C
N
TT
cho thật giống đi nữa thì cũng có sự khác biệt. Đối với bộ não con người,
một hệ thống hoàn hảo, thì sự khác biệt đó có thể được bỏ qua do ngữ
cảnh, và do có phần xử lý làm mờ đi của não. Nhưng đối với máy tính thì
rất khó xây dựng được một mô hình giải quyết cho tất cả các trường hợp
K
H
O
A
khác biệt đó.
Hình 1.4: Người nói khác nhau sẽ phát âm khác nhau
12
A
• Rút trích đặc trưng tiếng nói: biến đổi tín hiệu âm thanh thành
chuỗi các vector đặc trưng. Ngoài ra, quá trình này còn giải quyết
vấn đề dò tìm điểm cuối (phân biệt trong chuỗi âm thu được đâu là
tiếng nói đâu là độ ồn nền) và lọc nhiễu.
• Quá trình phân lớp và nhận dạng: Thực chất đây là quá trình
nhận dạng dựa trên mô hình âm thanh, từ điển phát âm và mô hình
ngôn ngữ của hệ thống. Mô hình ngôn ngữ ở đây thực chất chỉ biểu
diển một ngữ pháp nào đó, nó có thể ứng với một ngôn ngữ cụ thể
hoặc đơn giản chỉ gói gọn trong phạm vi ứng dụng của hệ thống,
13
Viết thuê luận văn thạc sĩ
- 0972.162.399
điều này góp phần giảm thiểu phạm vi nhận dạng của tiếng đó trong
một vài từ chứ không phải toàn bộ từ vựng.
• Giải mã: Quá trình này quá trình này có thể chỉ đơn giản là xuất ra
chuỗi văn bản nhận dạng được hoặc là một quá trình phân tích
H
K
H
TN
thư ký điện tử,…
1.2.4 Lý thuyết nhận dạng tiếng nói
Nhận dạng tiếng nói là kỹ thuật nhận ra các thành phần lời nói của con
người. Tiến trình này có thể được thực hiện từ việc thu vào tín hiệu tiếng nói
từ micro, và kết thúc bằng từ đã được nhận dạng được hệ thống xuất ra. Những
bước của quá trình trên sẽ được đề cập ở phần sau.
Việc nghiên cứu nhận dạng tiếng nói đã được bắt đầu từ cuối thập niên
40, trong đó sự phát triển nhanh chóng của công nghệ máy tính đã đóng góp
14
Viết thuê luận văn thạc sĩ
- 0972.162.399
một rất quan trọng. Ngày nay, nhờ sự phát triển tăng vọt trong công nghệ,
nhận dạng tiếng nói đã có mặt trong công nghiệp ở một số lĩnh vực. Trong
công nghiệp, khi tay và mắt của con người đã được tận dụng triệt để, thì việc
điều khiển bằng tiếng nói có một thuận lợi rất lớn. Những trình ứng dụng khác
K
H
TN
thì áp dụng nhận dạng tiếng nói vào hệ thống nhận đặt phòng tự động qua điện
thoại, bằng cách này khách hàng cảm thấy thuận lợi hơn so với việc nhấn các
số. Tín hiệu số được thu bằng cách lấy mẫu theo một tần số nhất định, đó
là việc đo tín hiệu theo một chu kỳ thời gian. Theo lý thuyết, bất cứ một
tín hiệu có băng tần giới hạn nào cũng có thể tái tạo lại một cách hoàn
chỉnh nếu như tần số lấy mẫu FS ít nhất là gấp đôi tần số tối đa của tín
K
H
O
A
hiệu (theo Alan và Willsky, 1997). Chất lượng của tín hiệu được lấy mẫu
còn phụ thuộc vào biên độ lấy mẫu – phụ thuộc vào số bit được dùng.
Đối với những ứng dụng ASR, biểu diễn tín hiệu ở miền tần số thì
tối ưu hơn – một biểu diễn gọn hơn hữu dụng hơn là cần thiết. Rút trích
vector đặc trưng là việc xử lý biến đổi tín hiệu âm thanh thành một chuỗi
những vector đặc trưng. Có một vài dạng đặc trưng của tín hiệu âm thanh
có thể được sử dụng làm vector đặc trưng, chẳng hạn như là MFCC (Mel
Frequency
Cepstral
Coeficient),
LPC
(Linear
TT
–
Đ
H
trong phổ.
K
H
O
A
Hình 1.7: Các dạng cửa sổ thường dùng
16
Viết thuê luận văn thạc sĩ
- 0972.162.399
K
H
TN
H
Đ
–
C
H
Đ
Hình 1.9: Các kỹ thuật nhận dạng tiếng nói và xu hướng phát triển
–
a) Kỹ thuật so khớp mẫu
C
N
TT
Một hệ thống so khớp mẫu dựa trên ý tưởng là sự so khớp lời
nói với một số tập mẫu được lưu trữ, chẳng hạn như các đoạn âm
thanh mẫu. Thường mỗi mẫu phù hợp với một từ trong từ điển. Người
phân lớp sẽ tính toán sự khác nhau về âm thanh giữa lời nói thu vào và
từng mẫu đã được lưu trữ. Sau đó, anh ta sẽ chọn mẫu nào so khớp
K
H
O
A
nhất với dữ liệu nhập.
Đối với chương trình, một thuật toán cần được sử dụng để tìm
và các giá trị tối ưu được xác định trong quá trình huấn luyện. Khi
huấn luyện, thông tin một vài mẫu âm thanh, ví dụ như phổ biên độ,
H
được đưa vào mạng thông qua các nút nhập, các giá trị kết xuất được
so sánh với giá trị được yêu cầu. Sự sai khác giữa các giá trị sẽ làm
Đ
thay đổi các trọng số. Quá trình này được lập đi lập lại vài lần cho mỗi
–
mẫu học, làm tăng độ chính xác của mạng.
Mặc dù là một kỹ thuật thú vị và đầy hứa hẹn, nhưng mạng
C
N
TT
Neural chưa thật sự thành công trong một hệ nhận dạng tiếng nói liên
tục hoàn chỉnh.
c) Hướng dựa trên tri thức
Hệ thống dựa trên tri thức sử dụng tri thức để phân biệt sự khác
nhau giữa các âm thanh. Vào khoảng thập niên 70 và 80, nó thích hợp
dùng để biểu diễn cho một đơn vị của ngôn ngữ, như là từ hay là âm
K
H
TN
vị. Nó gồm có một số hữu hạn các trạng thái và sự chuyển đổi trạng
thái, sự chuyển đổi đó được thực hiện thông qua xác suất chuyển đổi,
hàm phân bố Gauss thường được chọn lựa để thực hiện điều này.
Một khi biểu diển một chuỗi mẫu quan sát, mô hình có thể xác
định xác suất gặp các mẫu quan sát đó, nhưng nếu như một chuỗi đơn
các mẫu quan sát không thể tìm ra một chuỗi các trạng thái có liên
H
quan thì nó không thể xác định trạng thái nào và ở thứ tự nào.
Xác suất chuyển trạng thái và sự phân bố xác suất phụ thuộc
Đ
vào trọng số của nó. Trong quá trình huấn luyện các trọng số này được
C
N
TT
–
tin nào đó mà chúng ta có thể hiểu, được quy ước trước. Các tín hiệu trong thế giới
thực đều ở dạng liên tục (tín hiệu tương tự), nó hết sức phức tạp, thiếu độ chính xác
cần thiết đối với máy tính. Do đó các tín hiệu này thường bị biến đổi thành các tín
hiệu số (số hóa), một dạng thông tin máy tính có thể xử lý.
H
Tiếng nói cũng là một dạng tín hiệu tương tự, do đó nó cũng cần được số
Đ
hóa.
–
2.1.1 Lấy mẫu tín hiệu
Hàm lấy mẫu là cầu nối giữa các hệ thống rời rạc và các hệ thống liên
C
N
TT
tục. Nó còn được gọi là: hàm Dirac Delta, hàm sàng lọc,…
Công thức 2.1
x s (t) =
Hình 2.1: Ví dụ về lấy mẫu tín hiệu f(t) trên miền thời gian
H
2.1.2 Bộ lọc tín hiệu
Bộ lọc số có vai trò rất quan trọng trong xử lý tiếng nói, chúng được
Đ
dùng với 2 mục đích chính:
C
N
TT
–
- Tách tín hiệu cần thiết: Các tín hiệu ban đầu thường chứa đựng các
nhiễu hoặc các tín hiệu không mong muốn khác, các nhiễu này làm
giảm đáng kể chất lượng của tín hiệu và cần phải tách riêng các tín
hiệu cần thiết.
Ví dụ: Đối với âm thanh được thu, tín hiệu âm thường chứa
thêm các tiếng ồn của môi trường, chẳng hạn như tiếng ồ ồ của quạt
trần thổi vào micro; còn đối với ảnh chụp thì là các điểm lốm đốm
trên những tấm ảnh cũ khi được quét vào….
K
H
O
y(n ) = b 0 x ( n ) + b1 x ( n − 1) + ... + b q x ( n − q ) = ∑ b j x ( n − j)
H
j=0
Đ
Hình 2.2: Minh họa hoạt động bộ lọc FIR
C
N
TT
–
- Bộ lọc đáp ứng xung vô hạn (Infinite Impulse Response – IIR): hệ
xử lý có đáp ứng xung có độ dài vô hạn hay đáp ứng xung vô hạn.
Tín hiệu ra không những chỉ phụ thuộc vào tín hiệu vào mà còn phụ
thuộc vào quá khứ của chính tín hiệu ra, vì vậy chúng còn được gọi là
các mạch có truy hồi hay đệ qui. Công thức bộ lọc:
Công thức 2.3
p
q
i =1
tại của tiếng ồn nền, tiếng nói nền và sự liên kết của các âm tiết, như là sự khó
khăn trong việc dò tìm đoạn vô thanh ở phần bắt đầu và kết thúc tiếng nói.
Dò tìm điểm cuối được thực hiện qua ba bước, qua mỗi bước xác định
∑x
a)
(n) (xem phần 2.2.2.2)
–
n =1
2
Đ
được đặc trưng bằng: E = log
N
H
điểm cuối càng chính xác. Việc dò tìm dựa trên mức năng lượng của tín hiệu
Dò tìm thô: dựa trên kỹ thuật năng lượng ít chính xác nhất. Nó tìm một
từng khung thành đoạn hữu thanh, đoạn vô thanh và khoảng lặng. Việc
phân loại dựa trên sự phân bố năng lượng trong khung, phổ biến dạng
và sự phân loại khung trước đó. Phương pháp này cố loại bỏ đi những
24
Viết thuê luận văn thạc sĩ
- 0972.162.399