Luận văn Nhận dạng tiếng nói tiếng việt - Tìm hiểu và ứng dụng

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

pdf103 trang | Chia sẻ: maiphuongdc | Lượt xem: 4203 | Lượt tải: 1download
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:

  • pdf0012081.pdf