MỤC LỤC
DANH SÁCH HÌNH VẼ.4
MỞ ĐẦU .6
Chương 1 TỔNG QUAN .8
1.1 Nhận dạng.8
1.2 Nhận dạng tiếng nói .9
1.2.1 Xửlý âm thanh.9
1.2.2 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
2.2.2.4 Đặc trưng LPC .39
2.2.2.5 Đặc trưng tần sốcơbản.42
Chương 3 MÔ HÌNH MARKOV ẨN .49
3.1 Mô hình Markov ẩn .49
3.2 Ứng dụng Mô hình Markov vào nhận dạng tiếng nói .51
3.2.1 Thuật toán tiến .52
3.2.2 Thuật toán lùi .53
3.2.3 Phương pháp tìm chuỗi trạng thái tối ưu .54
3.2.4 Thuật toán Viterbi .55
3.2.5 Ước lượng Baum-Welch.58
3.3 Cấu trúc ngôn ngữvà mô hình nhận dạng theo âm vị.60
3.3.1 Cấu trúc ngôn ngữ.60
3.3.2 Mô hình âm vị.63
3.3.3 Tha âm vị(allophones) .63
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
4.1.3 Cấu trúc tập tin đánh nhãn dữliệu .75
4.1.4 Cấu trúc tập tin văn phạm .78
4.2 Nhận dạng nguyên từ.81
4.3 Nhận dạng theo mô hình âm vị.85
Chương 5 ỨNG DỤNG: ĐIỀU KHIỂN XE TỰ ĐỘNG BẰNG TIẾNG NÓI .88
5.1 Thửnghiệm nhận dạng tiếng nói Tiếng Việt .89
5.1.1 Nhận dạng tĩnh (offline).89
5.1.1.1 Dùng vector đặc trưng dạng LPCEPSTRA_E_D.89
5.1.1.2 Dùng vector đặc trưng dạng LPCEPSTRA_E_D_A .89
5.1.1.3 Dùng vector đặc trưng dạng MFCC_0_D .89
5.1.1.4 Dùng vector đặc trưng dạng MFCC_0_D_A .90
5.1.1.5 Dùng vector đặc trưng dạng MFCC_0_D_A_Z.90
5.1.2 Nhận dạng thời gian thực (online) .91
5.1.2.1 Nhận dạng theo mô hình âm vịdùng MFCC_0_D_A_Z.91
5.1.2.2 Nhận dạng nguyên từdùng MFCC_0_D_A_Z .92
5.2 Ứng dụng nhận dạng tiếng nói .93
KẾT LUẬN .96
TÀI LIỆU THAM KHẢO .98
Phụlục MỘT SỐCÔNG CỤTRONG HTK .99
103 trang |
Chia sẻ: maiphuongdc | Lượt xem: 4306 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Nhận dạng tiếng nói tiếng việt - Tìm hiểu và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tiếng nhép miệng, thở, hoặc độ ồn nền
(chẳng hạn tiếng đóng cửa).
Hình 2.4: Dò tìm điểm cuối dựa vào mức năng lượng
KH
OA
C
NT
T –
Đ
H
KH
TN
26
2.2 Rút trích đặc trưng
Hình 2.5: Sơ đồ rút trích vector đặc trưng tổng quát
Đối với một hệ nhận dạng tiếng, việc rút trích vector đặc trưng của tiếng nói là
cần thiết. Điều này giúp giảm thiểu số lượng dữ liệu trong việc huấn luyện và nhận
dạng, dẫn đến số lượng công việc tính toán trong hệ giảm đáng kể. Bên cạnh đó,
việc rút trích đặc trưng còn làm rõ sự khác biệt của tiếng này so với tiếng khác, làm
mờ đi sự khác biệt của cùng hai lần phát âm khác nhau của cùng một tiếng. Hình
2.6 minh họa các bước xử lý trong việc rút trích vector đặc trưng tiếng nói.
KH
OA
C
NT
T –
Đ
H
KH
TN
27
2.2.1 Các bước rút trích đặc trưng
Hình 2.6: Sơ đồ rút trích đặc trưng chi tiết
2.2.1.1 Làm rõ tín hiệu
Ở bước này, mục đích là làm tăng cường tín hiệu, làm nổi rõ đặc
trưng của tín hiệu và làm cho nó ít nhạy hơn với các hiệu ứng do độ
chính xác hữu hạn ở những bước xử lý sau. Bộ làm rõ tín hiệu thường là
một bộ lọc thông cao với phương trình sai phân như sau:
Công thức 2.4
)1n(sa)n(s)n(s~ −−= ; với 0.9 ≤ a ≤ 1
2.2.1.2 Phân đoạn thành các khung
Trong bước phân đoạn khung, )(~ ns được chia thành các khung,
mỗi khung gồm N mẫu, khoảng cách giữa các khung là M mẫu. Hình 2.7
minh họa cách phân thành các khung trong trường hợp M = (1/3)N.
KH
OA
C
NT
T –
Đ
H
KH
TN
28
Cụ thể, khung thứ nhất gồm N mẫu tiếng nói đầu tiên (bắt đầu từ
)0(s~ đến )1N(s~ − ). Khung thứ hai bắt đầu từ mẫu thứ M và kết thúc ở
vị trí M+N-1. Tương tự, khung thứ i bắt đầu từ mẫu thứ i*M và kết thúc
ở vị trí i*M+N-1. Tiến trình này tiếp tục cho đến khi các mẫu tiếng nói
đều đã thuộc về một hay nhiều khung.
Ta dễ dàng thấy rằng nếu M ≤ N thì các khung kề nhau sẽ có sự
chồng lấp (như hình 2.7), dẫn đến kết quả là các phép rút trích đặc trưng
có tương quan với nhau từ khung này sang khung kia; và khi M << N thì
khung này sang khung khác được hoàn toàn trơn. Ngược lại, nếu M > N
thì sẽ không có sự chồng lấp giữa các khung kề nhau, dẫn đến một số
mẫu tiếng nói bị mất (tức là không xuất hiện trong bất kỳ khung nào).
Nếu ta ký hiệu khung thứ i là xi(n) và giả sử có tất cả L khung trong tín
hiệu tiếng nói thì:
xi(n) = )ni.M(s~ + , n = 0, 1, …, N-1; i = 0, 1, …, L-1
Hình 2.7: Phân đoạn tiếng nói thành các khung chồng lấp
2.2.1.3 Lấy cửa sổ
Bước tiếp theo trong xử lý là lấy cửa sổ tín hiệu ứng với mỗi
khung để giảm thiểu sự gián đoạn tín hiệu ở đầu và cuối mỗi khung. Một
dãy tín hiệu con được lấy ra từ một tín hiệu dài hơn hoặc dài vô hạn x(n)
gọi là một cửa sổ tín hiệu. Việc quan sát tín hiệu x(n) bằng một đoạn
xN(n) trong khoảng n0…(n0 + N –1) tương đương với việc nhân x(n) với
một hàm cửa sổ w(n-n0)
Công thức 2.5
⎢⎣
⎡
−+>∨<
−+≤≤=−=
)1Nnn()nn(0
1Nnnn)n(x
)nn(w).n(x)n(x
00
00
0N
KH
OA
C
NT
T –
Đ
H
KH
TN
29
Các dạng cửa sổ tín hiệu
Trong xử lý tín hiệu số, các cửa sổ thường dùng được biểu diễn
thông qua cửa sổ Hamming tổng quát:
Công thức 2.6
⎢⎣
⎡
>
≤πα−+α=
2/Nn0
2/Nn)N/n.2cos().1(
)n(w
Tuỳ theo các giá trị khác nhau của α mà ta có các cửa sổ khác
nhau:
• α = 0.54, ta có cửa sổ Hamming, đây là dạng cửa sổ thường
được dùng nhất.
• α = 0.5, ta có cửa sổ Hanning:
• α = 1, ta có cửa sổ chữ nhật:
Thêm vào đó, độ rộng của cửa sổ cũng có tác động khá lớn đến
kết quả của các phép phân tích.
KH
OA
C
NT
T –
Đ
H
KH
TN
30
Một số cửa sổ khác cũng được sử dụng trong xử lý tín hiệu số
như: cửa sổ tam giác, cửa sổ Kaiser, cửa sổ Blackman, cửa sổ cosin…
Sau đây là một số ví dụ cho thấy sự khác biệt giữa các loại cửa sổ.
Hình 2.5a: Âm /a/, cửa sổ chữ nhật,
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
Hình 2.5b: Âm /a/, cửa sổ Hamming,
KH
OA
C
NT
T –
Đ
H
KH
TN
31
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
Hình 2.5c: Âm /a/, cửa sổ Hanning,
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
KH
OA
C
NT
T –
Đ
H
KH
TN
32
Hình 2.8: Sự khác biệt giữa các dạng cửa sổ tín hiệu
KH
OA
C
NT
T –
Đ
H
KH
TN
33
2.2.2 Các dạng đặc trưng tiếng nói
Để rút trích đặc trưng, ta cần phải chọn đặc trưng thỏa mãn những vấn
đề sau đây:
• Có khả năng diễn dạt thông tin tiếng nói độc lập người nói
• Dễ dàng tính toán
• Ổn định theo thời gian
• Xảy ra tự nhiên và liên tục trong tiếng nói
• Ít thay đổi theo môi trường nói (độc lập môi trường)
• Không ảnh hưởng bởi sự biến dạng bóp méo
• Không ảnh hưởng bởi độ ồn nền và băng tần giới hạn
• Không ảnh hưởng bởi trạng thái người nói
Î Đặc trưng có tất cả những đặc tính như thế không tồn tại!!!
Các dạng đặc trưng hiện nay
• Đặc trưng miền âm
¾ Autocorrelation coefficients (COR)
¾ Linear Prediction Coefficients (LPC)
¾ Partial Correlation coefficients (PARCOR)
¾ Log Area Ratio coefficients (LAR)
¾ Perceptional Linear Prediction (PLP)
• Đặc trưng miền tần số và Cepstral
¾ Line Spectrum Pairs (LSP)
¾ Bank of filters (tuyến tính)
¾ Bank of filters (Mel)
¾ Mel Frequency Cepstral Coefficients (MFCC)
2.2.2.1 Biến đổi tín hiệu sang miền tần số
Có hai cách biến đổi:
a) Phép biến đổi Fourier rời rạc
KH
OA
C
NT
T –
Đ
H
KH
TN
34
Phép biến đổi Fourier là phép biến đổi thuận nghịch, dùng để
biến đổi tín hiệu sang miền tần số, nó dùng các công thức biến đổi
rời rạc sau :
Phép biến đổi thuận:
Công thức 2.7
∑−
=
π−=
1N
0n
N/kn2je)n(x)k(X , k = 0, 1, 2, …, N – 1
Phép biến đổi nghịch:
Công thức 2.8
∑−
=
π=
1N
0k
N/kn2je)k(X)n(x , n = 0, 1, 2, …, N – 1
b) Biến đổi cosin rời rạc
Biến đổi Cosin là một phép biến đổi mạnh, được dùng trong
xử lý nén ảnh JPEG, nó cũng là một phép biến đổi chuyển tín hiệu
sang miền tần số, ta có các công thức sau:
Phép biến đổi thuận:
Công thức 2.9
∑
= ⎥⎦
⎤⎢⎣
⎡ +πα=
1-N
0n N2
k)1n2(cos).n(x)k(X(k) , k = 0, 1, 2, …, N –
1
Biến đổi nghịch:
Công thức 2.10
∑−
= ⎥⎦
⎤⎢⎣
⎡ +πα=
1N
0k N2
k)1n2(cos).k(X)n()n(x , n = 0,1,2, …,N – 1
Với:
⎢⎢
⎢⎢
⎣
⎡
−≤≤
=
=α
1Nk1
N
2
0k
N
1
)k( ; k∈Z
KH
OA
C
NT
T –
Đ
H
KH
TN
35
Cả hai phép biến đổi trên đều có phiên bản biến đổi nhanh, điều
này giúp tăng tốc xử lý, thích hợp trong việc xử lý cần thời gian thực như
xử lý âm thanh, đó là FFT (Fast Fourie Transform) và FCT (Fast Cosine
Transform). Các phép biến đổi nhanh này đều dựa trên kỹ thuật phân
chia theo cơ số 2, nghĩa là thay vì biến đổi trên toàn bộ tín hiệu thì phép
biến đổi này sẽ phân chia chuỗi tín hiệu thành 2 chuỗi tín hiệu con, và lại
áp dụng phép biến đổi lần nữa cho 2 phần này một cách đệ quy. Do phép
chia cho 2, nên chuỗi tín hiệu đòi hỏi phải có chiều dài là lũy thừa của 2
(điều này có thể dễ dàng giải quyết được bằng cách tăng kích thước
chuỗi tín hiệu lên và điền 0 vào)
Ví dụ việc phân chia và biến đổi sẽ được thực hiện trên chuỗi tín
hiệu có chiều dài 16 điểm như sau:
1 tín hiệu 16 điểm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16
2 tín hiệu 8 điểm 0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15
4 tín hiệu 4 điểm 0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15
8 tín hiệu 2 điểm 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
16 tín hiệu 1 điểm 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
Độ phức tạp của phương pháp này là O(Nlog2(N)).
2.2.2.2 Đặc trưng năng lượng
Năng lượng tín hiệu được thể hiện thông qua mức độ, số lượng tín
hiệu có trong một đơn vị thời gian. Năng lượng của tín hiệu tiếng nói là
một đặc trưng vật lý của tín hiệu, được dùng như là tham số trong vector
đặc trưng trong nhận dạng tiếng nói, và còn được để dò tìm khoảng lặng
trong tín hiệu tiếng nói. Tính toán năng lượng tín hiệu thường dựa trên sự
phân khung và lấy cửa sổ, bằng cách lấy tổng các bình phương chuỗi tín
hiệu x(n) trong cửa sổ tín hiệu.
Đặc trưng năng lượng ở đây được tính bằng cách lấy log năng
lượng tín hiệu, tính bằng công thức sau:
KH
OA
C
NT
T –
Đ
H
KH
TN
36
Công thức 2.11
N
2
n 1
E log x (n)
=
= ∑
2.2.2.3 Đặc trưng MFCC
Các nghiên cứu cho ta thấy rằng hệ thống thính giác của con
người thu nhận âm thanh với độ lớn các tần số âm thanh không theo
thang tuyến tính. Do đó, các thang âm thanh đã ra đời cho phù hợp với sự
tiếp nhận của thính giác con người.
Các thang được xây dựng bằng thực nghiệm, cho nên người ta
xây dựng các công thức để xấp xỉ sự chuyển đổi này. Trong các thang và
công thức dạng đó thì đặc trưng MFCC sử dụng thang Mel. Thang Mel
được thể hiện thông qua đồ thị sau:
Hình 2.9: Đồ thị biểu diễn mối quan hệ giữa Mel và Hz
KH
OA
C
NT
T –
Đ
H
KH
TN
37
Hình 2.10: Các bước trích đặc trưng MFCC
Ta dùng phép biến đổi Fourier để chuyển tín hiệu từ miền thời
gian sang miền tần số. Sau đó ta dùng dãy bộ lọc để lọc tín hiệu, đó là
dãy bộ lọc tam giác có tần số giữa đều nhau trên thang Mel.
Hình 2.11: Bộ lọc trên thang Mel
KH
OA
C
NT
T –
Đ
H
KH
TN
38
Hình 2.12: Bộ lọc trên tần số thật
Lấy log trên dãy kết quả từ dãy bộ lọc và thực hiện biến đổi cosin
rời rạc ta thu được các hệ số đặc trưng MFCC.
Hình 2.13: Minh họa các bước biến đổi MFCC
KH
OA
C
NT
T –
Đ
H
KH
TN
39
2.2.2.4 Đặc trưng LPC
Ý tưởng cơ bản của phương pháp LPC là tại thời điểm n, mẫu
tiếng nói s(n) có thể được xấp xỉ bỡi một tổ hợp tuyến tính của p mẫu
trước đó.
Công thức 2.12
)n(s~s(n) ≈ ;
Với ∑
=
−=
p
1k
k )kn(sa)n(s~ là giá trị dự báo của s(n)
(giả sử a1, a2, … , ap là hằng số trên khung dữ liệu (frame) được xem xét)
Chúng ta chuyển quan hệ trên thành dạng đẳng thức bằng cách
thêm vào số hạng G.u(n) gọi là nguồn kích thích:
Công thức 2.13
)n(u.G)n(s~)n(s +=
trong đó u(n) là nguồn kích thích được chuyển hóa và G gọi là độ lợi của
nó.
Khi đó sai số dự báo )n(e~ được định nghĩa là:
Công thức 2.14
)n(u.G)n(s~)n(s)n(e~ =−=
Để tìm tập các hệ số ai, k = 1, 2, …, p trên khung được phân tích,
cách tiếp cận cơ bản là ta cực tiểu hóa sai số bình phương trung bình. Khi
đó sẽ dẫn đến việc ta phải giải một hệ phương trình với p ẩn số. Có nhiều
phương pháp để giải hệ phương trình đó, nhưng trong thực tế, phương
pháp thường được dùng là phương pháp phân tích tự tương quan.
KH
OA
C
NT
T –
Đ
H
KH
TN
40
Hình 2.14: Sơ đồ xử lý LPC dùng cho trích đặc trưng tiếng nói
Hình 2.13 trình bày sơ đồ chi tiết của quá trình xử lý LPC để rút
trích đặc trưng tiếng nói. Các bước cơ bản trong tiến trình xử lý như sau:
Phân tích tự tương quan
Mỗi khung sau khi được lấy cửa sổ sẽ được đưa qua bước phân
tích tự tương quan và cho ra (p + 1) hệ số tự tương quan:
Công thức 2.15
∑−−
=
+=
1mN
0n
iii )mn(x~)n(x~)m(r ; m = 0, 1, …, p
Trong đó giá trị tự tương quan cao nhất, p, được gọi là cấp của
phân tích LPC. Thông thường, ta sử dụng các giá trị p trong khoảng từ 8
đến 16.
Phân tích LPC
Bước này, ta sẽ chuyển mỗi khung gồm (p + 1) hệ số tự tương
quan thành p hệ số LPC bằng cách dùng thuật toán Levinson – Durbin.
KH
OA
C
NT
T –
Đ
H
KH
TN
41
Thuật toán Levinson – Durbin thể hiện qua mã giả sau, với dữ
liệu vào là p+1 hệ số tự tương quan chứa trong r, kết quả ra là p hệ số
LPC chứa trong a.
Procedure Levinson_Durbin (Vector a, Vector r)
r(0)ÆE(0)
For i = 1 to p do
r(i)Æki
For j = 1 to i – 1 do
)ji(rk 1iji −α+ − Æki
End for
)1i(
i
E
k
− Æki
-kiÆ )i(iα
For j = 1 to i – 1 do
(i ) ( i 1) ( i 1)
j j i i jk
− −
−α = α − α
End for
E(i) = (1 - 2ik )E
(i-1)
End for
For m = 1 to p do
)p(mα Æa(m)
End for
End Procedure
Lúc này, ta có thể dùng các hệ số LPC làm vector đặc trưng cho
từng khung. Tuy nhiên, có một phép biến đổi tạo ra dạng hệ số khác có
độ tập trung cao hơn từ các hệ số LPC, đó là phép phân tích Cepstral.
Phân tích cepstral
Từ p hệ số LPC ở mỗi khung, ta dẫn xuất ra q hệ số cepstral c(m)
theo công thức đệ quy sau:
Công thức 2.16
c0 = ln 2σ
KH
OA
C
NT
T –
Đ
H
KH
TN
42
cm = am +
m 1
k m k
k 1
k c a
m
−
−
=
⎛ ⎞⎜ ⎟⎝ ⎠∑ ; 1≤m≤p
cm =
m 1
k m k
k 1
k c a
m
−
−
=
⎛ ⎞⎜ ⎟⎝ ⎠∑ ; p<m≤Q
Trong đó, 2σ là độ lợi của mô hình LPC. Thông thường ta chọn
Q≈(3/2)p.
Đặt trọng số cho các hệ số cepstral
Do độ nhạy của các hệ số cepstral cấp thấp làm cho phổ bị đổ dốc
và do độ nhạy của các hệ số cepstral cấp cao gây ra nhiễu nên ta thường
sử dụng kỹ thuật đặt trọng số để làm giảm thiểu các độ nhạy này:
ĉi (m) = c(m).w(m)
Với w(m) là hàm đặt trọng số. Hàm đặt trọng số thích hợp thường
là bộ lọc thông dải:
Công thức 2.17
w(m) = Q m1 sin
2 Q
⎡ ⎤π⎛ ⎞+⎢ ⎥⎜ ⎟⎝ ⎠⎣ ⎦
, 1 ≤ m ≤ Q.
Nhận xét
Mô hình LPC là mô hình đặc biệt thích hợp cho tín hiệu tiếng nói.
Với miền tiếng nói hữu thanh có trạng thái gần ổn định, mô hình tất cả
các điểm cực đại của LPC cho ta một xấp xỉ tốt đối với đường bao phổ
âm. Với tiếng nói vô thanh, mô hình LPC tỏ ra ít hữu hiệu hơn so với
hữu thanh, nhưng nó vẫn là mô hình hữu ích cho các mục đích nhận dạng
tiếng nói. Mô hình LPC đơn giản và dễ cài đặt trên phần cứng lẫn phần
mềm. Đặc biệt, kinh nghiệm đã chứng tỏ rằng phương pháp LPC thực
hiện tốt hơn so với bộ trích đặc trưng bằng dãy bộ lọc.
2.2.2.5 Đặc trưng tần số cơ bản
Tần số cơ bản đóng một vai trò quan trọng trong nhận dạng tiếng
nói. Từ tần số cơ bản, ta có thể có những phân biệt các tiếng theo một số
KH
OA
C
NT
T –
Đ
H
KH
TN
43
đặc điểm ngữ âm. Tần số cơ bản còn thể hiện sắc thái, thanh điệu, giọng
người nói… Do đó, xác định tần số cơ bản là một phần công việc không
thể thiếu trong các hệ nhận dạng tiếng nói, đặc biệt là tiếng nói có thanh
điệu như tiếng Việt.
Sự thể hiện của các thanh điệu liên quan đến giá trị và sự biến đổi
của tần số cơ bản. Trong xử lý tiếng nói, tín hiệu được chia thành các
khung liên tiếp nhau, nên thanh điệu sẽ được thể hiện bằng tần số cơ bản
trong từng khung tín hiệu cũng như sự vận động của nó từ khung này
sang khung khác.
Tín hiệu đầu vào của các phương pháp trên là tín hiệu tiếng nói
thô, hoặc tín hiệu đã được xử lý bằng một phép toán phi tuyến (như cắt
tâm) hay dùng lỗi dự báo (trong mô hình LPC).
Tần số cơ bản chỉ có trong các âm hữu thanh, nên việc rút trích
tần số cơ bản cũng phải đảm nhận luôn việc phân biệt giữa các âm vô
thanh và hữu thanh.
Để tăng hiệu quả, người ta tiến hành một số bước tiền xử lý cho
tín hiệu tiếng nói thô, nhằm tăng độ chính xác, giảm khối lượng tính
toán. Thông thường tín hiệu thô được xử lý qua 2 bước trước khi dùng để
trích F0:
• Lọc thông thấp: tín hiệu tiếng nói được cho qua bộ lọc thông
thấp để loại bỏ các thành phần có tần số cao hơn Fmax. (Tần số
cơ bản lớn nhất có thể của tiếng nói). Thông thường Fmax =
900Hz.
• Thực hiện việc lấy mẫu lại, giảm bớt kích thước sóng âm. Tần
số lấy mẫu được giảm xuống còn 2 KHz (theo định luật
Nyquist: tần số lấy mẫu phải lớn hơn hoặc bằng 2 lần tần số
cơ bản lớn nhất). Lấy mẫu lại tần số giúp giảm đáng kể khối
lượng tính toán. Ở các phương pháp tìm F0 thông thường,
khối lượng tính toán giảm khoảng Z2 lần. Với Z là tỉ lệ giảm
tần số lấy mẫu.
a) Phương pháp tự tương quan
KH
OA
C
NT
T –
Đ
H
KH
TN
44
Thực hiện tính hàm tự tương quan trên khung tín hiệu tiếng
nói độ dài N
Công thức 2.18
rN(p) = ∑−−
=
+
1pN
0k
)pk(s)k(s
Trong đó, p được giới hạn trong vùng có âm cơ bản. Nếu tín
hiệu s(n) là tuần hoàn thì sẽ có các đỉnh tại i = 0, P, 2P,…(P là chu
kỳ âm cơ bản). Ngưỡng quyết định đỉnh thường là : rN(p)>0.8rN(0).
Có một vài ý tưởng tạo ra ngưỡng động dựa vào tương quan năng
lượng của khung tín hiệu và năng lượng trung bình của cả tín hiệu.
Nhận xét:
• Thông thường, tín hiệu được nhân với một hàm cửa sổ để
giảm sự tác động do sự thay đổi âm điệu.
• Nếu áp dụng phương pháp này cho tín hiệu tiếng nói thô
thì tỏ ra không tốt, đỉnh xuất hiện không rõ.
• Cần một số bước tiền xử lý để loại bỏ thông tin của dãy
âm.
• Áp dụng phương pháp này cho e~ (n) sẽ tốt hơn (phương
pháp Simplified Inverse Filter Tracking).
• Có lấy vài đỉnh trong một khung tín hiệu sau đó dựa vào
phương pháp Dynamic Programing để tìm ra chuỗi F0
trong một đoạn các khung liên tiếp.
Một phương pháp dẫn xuất từ phương pháp này là dùng hiệp
tương quan giữa hai tín hiệu x(n) và y(n), y(n) = x(n + P) (tín hiệu
y(n) là do tín hiệu x(n) dịch đi P đơn vị).
b) Lỗi LPC và phương pháp SIFT
Mô hình LPC đặc trưng bằng hàm truyền đạt có dạng như
sau:
KH
OA
C
NT
T –
Đ
H
KH
TN
45
)z(u.G
)z(s)z(H =
Trong miền thời gian là:
∑
=
+−=
p
1k
k )n(u.G)kn(sa)n(s
Trong đó, G.u(n) chính là nguồn kích thích, trong trường
hợp âm hữu thanh, G.u(n) chính là miêu tả chính xác dạng dao động
của dây thanh hay F0.
Chúng ta cũng đã định nghĩa lỗi của ước lượng, )n(e~ như
sau:
)n(u.G)n(s~)n(s)n(e~ =−=
Như vậy mô hình LPC đã tạo ra tín hiệu lỗi dự báo )n(e~
chứa thông tin về nguồn kích thích, và do đó, việc xác định F0
trong trường hợp hữu thanh trở nên dễ dàng hơn.
Đối với phương pháp SIFT (Simplified Inverse Filter
Tracking), phương pháp này áp dụng phương pháp tự tương quan
với tín hiệu vào là )n(e~ thu được ở trên.
c) Phương pháp dùng cepstral
Phương pháp này có thể mô tả đơn giản như sau:
• Dùng phép phân tích Cepstral thực cho tín hiệu vào. Tín hiệu
vào này có thể sử dụng trực tiếp tiếng nói thô.
• Tìm đỉnh trong vùng thích hợp của tín hiệu cn.
Nhận xét
• Đỉnh được tìm khá chính xác, ít bị lấy nhầm hài âm.
• Dùng tốt trong trường hợp tiếng nói có cao độ thấp.
• Việc xác định ngưỡng để quyết định có đỉnh tại cn0 không
tuỳ thuộc vào người nói Æ khó phân biệt vô thanh/hữu
thanh.
KH
OA
C
NT
T –
Đ
H
KH
TN
46
d) Phương pháp CLIP
Phương pháp CLIP (center clipping pitch detector) tương tự
như phương pháp tự tương quan ở trên, nhưng tín hiệu được xử lý
để loại bỏ thông tin về các phoocmăng (thông tin về đường phát
âm).
Có một vài giải pháp cho việc này. Cụ thể là phương pháp
cắt tâm (center clipping). Phương pháp này sẽ loại bỏ bớt các đỉnh
nhỏ trên sóng âm, làm cho sóng âm nhìn giống dạng xung hơn.
Phép toán cắt C được mô tả như sau:
C{s(n)} =
⎪⎩
⎪⎨
⎧
−<+
≤≤−
>−
LL
LL
LL
C)n(sC)n(s
C)n(sC0
C)n(sC)n(s
Trong đó CL là ngưỡng cắt, thường được lấy bằng 30% giá
trị lớn nhất của tín hiệu.
e) Hàm AMDF
Phương pháp (Average Magnitude Difference Function)
giống phương pháp tự tương quan ở trên, nhưng khối lượng tính
toán sẽ giảm xuống do không phải dùng phép nhân.
Chúng ta định nghĩa hàm trung bình hiệu biên độ như sau:
Công thức 2.19
D(p) = ∑−−
=
+−−
1pN
0n
|)pn(s)n(s|
pN
1
Sau khi tính D(p) trong vùng có khả năng xuất hiện P0.
Chọn điểm cực tiểu D(P0), P0 là chu kỳ tần số cơ bản.
f) Phương pháp so khớp biên độ
Chuỗi tín hiệu tiếng nói đưa vào máy tính có dạng hình sin.
Do đó, ta sẽ tìm hai điểm dao động cùng pha, khoảng thời gian giữa
hai điểm đó chính là chu kỳ T. Từ T, ta sẽ tìm ra tần số f.
KH
OA
C
NT
T –
Đ
H
KH
TN
47
Tuy nhiên cần chú ý rằng tín hiệu tiếng nói là sự tổng hợp
của nhiều tần số (xem hình vẽ), do đó, hai điểm dao động cùng pha
được xét phải là 2 điểm cắt zero. Bên cạnh đó, ta cũng phải xác
định đúng 2 điểm cắt zero để tạo thành chu kỳ của F0, vì các dao
động cộng hưởng cũng có thể gây ra điểm cắt zero.
Hình 2.15: Hình dạng tín hiệu tiếng nói
Phương pháp so khớp biên độ được tiến hành như sau:
1. Dò tìm điểm cắt zero thứ nhất theo một chiều nào đó (ví dụ
đi lên như trong hình vẽ), đặt tên là X1.
2. Dò tìm 2 điểm cắt zero cùng chiều tiếp theo, đặt tên là X2,
X3. Với khoảng thời gian giữa X1X2 và X2X3 là tương đương
nhau và nằm trong khoảng ngưỡng thời gian xác định chu
kỳ.
3. Lần lượt so sánh biên độ các điểm tương ứng trong hai
khoảng X1X2 và X2X3 . Gọi tổng bình phương các độ sai
lệch biên độ là S.
Công thức 2.20
∑
==
−= 32
223112
X,X
Xx,Xx
2
2312 xxS
4. Nếu S nhỏ hơn ngưỡng độ lệch (tức là hai khoảng X1X2 và
X2X3 giống nhau) thì kết luận mỗi khoảng đó là một chu kỳ.
Nếu không, thay đổi khoảng thời gian, nghĩa là dò tìm các
điểm cắt zero khác.
KH
OA
C
NT
T –
Đ
H
KH
TN
48
Làm trơn kết quả F0 bằng bộ lọc median
Bộ lọc Median được dùng khá rộng rãi trong việc khử nhiễu. Nội
dung kỹ thuật được thể hiện như sau:
• Để có một tín hiệu ra, một cửa sổ các tín hiệu vào liền nhau
được chọn.
• Sắp xếp các dữ liệu trong cửa sổ tín hiệu kể trên.
• Giá trị trung tâm của dãy đã sắp xếp được chọn làm median
của tập hợp các mẫu trong cửa sổ.
Có nghĩa là bộ lọc median sẽ tính lại giá trị một điểm bằng cách
lấy điểm có giá trị trung bình trong các điểm xung quanh.
Hình 2.16: Kết quả trích F0
Hình 2.17: Kết quả sau khi lọc Median
KH
OA
C
NT
T –
Đ
H
KH
TN
49
Chương 3 MÔ HÌNH MARKOV ẨN
Hình 3.1: Minh họa hoạt động của mô hình Markov ẩn
Mô hình Markov ẩn (Hidden Markov Model - HMM) là mô hình dựa trên
thống kê dùng để mô hình hoá các loại tín hiệu theo thời gian, được sử dụng rất
thành công trong những ứng dụng về nhận dạng. Nó có khả năng mô hình hoá tiếng
nói theo thời gian dựa trên cấu trúc được ràng buộc bằng toán học chặt chẽ. Cho nên
HMM nhận dạng tiếng nói đạt hiệu quả cao hơn các phương pháp khác. Thực tế cho
thấy, trong lĩnh vực nhận dạng tiếng nói, mô hình Markov ẩn cho kết quả cao hơn
mạng neural. Nhờ những ưu điểm đó, mô hình Markov ẩn còn được sử dụng trong
nhiều lĩnh vực nhận dạng khác, có trong các ứng dụng khác nhau.
3.1 Mô hình Markov ẩn
Mô hình Markov ẩn gồm các trạng thái, và một ma trận trọng số chuyển
trạng thái tạo thành một mạng chuyển đổi trạng thái. Trong phương pháp nhận dạng
tiếng nói bằng mô hình Markov ẩn, mỗi từ mẫu sẽ được biểu diễn bằng một mô
hình Markov ẩn. Tại một thời điểm bất kỳ, hệ thống sẽ ở vào trạng thái qt trong tập
KH
OA
C
NT
T –
Đ
H
KH
TN
50
S = {Si} có N trạng thái. Qua các thời gian rời rạc, hệ thống sẽ chuyển qua các trạng
thái khác. Ký hiệu qt là trạng thái ở thời điểm t, ta có:
P[qt = Sj|qt-1 = Si, qt-2 = Sk,…] = P[qt = Sj | qt-1 = Si]
Chúng ta chỉ xét các quá trình mà vế phải không phụ thuộc vào thời gian.
Khi đó tập xác suất chuyển trạng thái aij có dạng:
aij = P[qt = Sj | qt-1 = Si], với aij ≥ 0; ija 1=∑ .
Do đó, một mô hình Markov ẩn được đặc trưng bởi các tham số sau:
1. N: số trạng thái của mô hình
Tập trạng thái của mô hình: s = {s1,s2,...,sN }
Trạng thái ở thời điểm t, qt ∈ s
2. M: số các ký hiệu quan sát được ứng với một trạng thái
Tập các ký hiệu quan sát: v = {v1,v2,...,vM }
Ký hiệu quan sát ở thời điểm t, ot ∈v
3. Tập xác suất chuyển trạng thái: A = {aij}
aij = P(qt+1 = sj | qt = si ), 1 ≤ i,j ≤ N
4. Tập xác suất ký hiệu Vk quan sát được trong một trạng thái: B = {bj(k)}
bj (k) = P(vk at t | qt = sj ), 1 ≤ j ≤ N, 1 ≤ k ≤ M
5. Tập xác suất trạng thái ban đầu là trạng thái i: π = {πi }
πi = P[qt = Si], i∈[1,N]
Ta ký hiệu một mô hình Markov ẩn như sau: λ = (A, B, π).
Một số mô hình HMM thông dụng là:
KH
OA
C
NT
T –
Đ
H
KH
TN
51
Hình 3.2: Mô hình Left - Right
Hình 3.3: Mô hình Bakis
Hình 3.4: Mô hình Tuyến tính
3.2 Ứng dụng Mô hình Markov vào nhận dạng tiếng nói
Áp dụng mô hình Markov ẩn cho xử lý tiếng nói, ta phải giải quyết 3 bài toán
cơ bản sau:
1. Tính điểm: Cho chuỗi quan sát O = {o1,o2,...,oT } và mô hình λ = {A, B,
π}, ta phải tính xác suất có điều kiện P(O|λ) của chuỗi quan sát.
Î Thuật toán tiến - lùi
KH
OA
C
NT
T –
Đ
H
KH
TN
52
2. So khớp: Cho chuỗi quan sát O và mô hình λ, ta phải tìm chuỗi trạng thái
Q= {q1, q2, ..., qT} sao cho xác suất có điều kiện P(O|λ) là tối ưu.
Î Thuật toán Viterbi
3. Huấn luyện: Cho chuỗi quan sát O và mô hình λ, ta phải đánh giá lại các
thông số của mô hình λ sao cho xác suất có điều kiện P(O|λ) của chuỗi
quan sát là tối ưu.
Î Hàm ước lượng Baum-Welch
3.2.1 Thuật toán tiến
Toán tử tiến αt(i) là xác xuất của chuỗi quan sát từng phần o1o2 ...ot và
trạng thái quan sát Si tại thời điểm t với điều kiện cho mô hình Markov ẩn λ.
αt (i) = P(o1o2 ...ot, qt = si | λ)
Toán tử tiến có thể được tính theo các bước qui nạp sau:
Bước 1: Khởi tạo
α(i) = πibi(O1), với i∈[1,N]
Bước 2: Qui nạp
αt+1(j) =
N
t ij j t 1
i 1
(i)a b (O )+
=
⎡ ⎤α⎢ ⎥⎣ ⎦∑ , (t∈[1,T-1], j∈[1,N])
Bước 3: Kết thúc:
P(O|λ) =
N
T
i 1
(i)
=
α∑
KH
OA
C
NT
T –
Đ
H
KH
TN
53
Hình 3.5:Minh họa thuật toán tiến
3.2.2 Thuật toán lùi
Hình 3.6:Minh họa thuật toán lùi
KH
OA
C
NT
T –
Đ
H
KH
TN
54
Toán tử lùi βt(i) là xác xuất của chuỗi quan sát từng phần Ot+1Ot+2…OT
và trạng thái Si tại thời điểm t với điều kiện cho mô hình Markov ẩn λ.
βt(i) = P(Ot+1Ot+2…OT|qt = Si,λ)
βt(i) có thể tính được theo các bước qui nạp sau:
Bước 1: Khởi tạo
βT(i) = 1, (i∈(1,N))
Bước 2: Qui nạp
βt(i) =
N
ij j t 1 t 1
j 1
a b (O ) ( j)+ +
=
β∑ , (t∈[1,T-1])
3.2.3 Phương pháp tìm chuỗi trạng thái tối ưu
Một tiêu chuẩn chọn tr
Các file đính kèm theo tài liệu này:
- 0012081.pdf