- Mở đầu
2.2.7 Ứng dụng bộ lọc Wiener trong việc loại bỏ nhiễu cộng thêm
Xét tín hiệu x(m) thu được trong dãy tín hiệu có lẫn nhiễu n(m) là:
y(m) = x(m) + n(m) (2.9)
Giả sử rằng tín hiệu và nhiễu không tương quan, ma trận tự tương quan của tín hiệu nhiễu là tổng của ma trận tự tương tín hiệu x(m) và nhiễu n(m)
Ryy = Rxx + Rnn (2.10)
Trong đó Rxx, Ryy,Rnn là các ma trận tự tương quan của tín hiệu có nhiễu, tín hiệu không nhiễu, và nhiễu rxy là vector tương quan chéo của tín hiệu có nhiễu và tín hiệu không nhiễu.
w = (Rxx + Rnn)-1rxx (2.11)
Công thức trên đã được tối ưu cho bộ lọc tuyến tính trong việc loại bỏ các loại nhiễu cộng thêm.
Hình 2.3 Độ biến thiên tần số Wiener tương ứng với phổ tín hiệu của nhiễu cộng thêm (nhiễu trắng)
Trong đó X(f) và N(f) là phổ của tín hiệu và nhiễu cho tín hiệu quan sát được có dính nhiễu cộng thêm, bộ lọc Wiener trong miền tần số có công thức như sau:
W ( f ) = PXX ( f )
PXX ( f ) + PNN ( f ) (2.13)
Trong đó PXX(f) và PNN(f) là phổ của tín hiệu và nhiễu. Chia tử số và mẫu số của (2.11) cho độ lớn phổ của nhiễu và thay thế SNR(f) = PXX(f) /PNN(f) ta được:
W ( f ) = SNR( f )
SNR( f ) +1 (2.14)
Trong đó SNR là tỉ lệ giữa tín hiệu và nhiễu. SNR(f) được biểu diễn dưới dạng tỉ số độ lớn phổ, không phải là tỉ số của log độ lớn phổ cho nên SNR(f) = 0 thì phổ - ∞ dB.
Hình 2.4 Tần số W(f) trong tương quan tỉ lệ SNR(f)
(a) phổ của tín hiệu và nhiễu không bị trùng lấp (overlap) cho nên tín hiệu có thể được phục hồi bằng bộ lọc low- pass.
(b) phổ của tín hiệu và nhiễu bị trùng lấp (overlap) cho nên nhiễu có thể được loại bỏ nhưng không hoàn toàn.
Đối với nhiễu cộng thêm, tần số đáp ứng của bộ lọc Wiener là một số thực xác định trong dãy 0≤ W(f) ≤ 1. Ở đây có 2 trường hợp xảy ra:
(i) Tín hiệu không nhiễu SNR(f) = ∞, trong trường này W(f) ≈ 0 ứng dụng của bộ lọc ít, sự giảm thiểu tần số của tín hiệu không nhiễu gần như bằng 0.
(ii) Tín hiệu có nhiễu lớn SNR(f) = 0, trong trường hợp này W(f) ≈ 1, bộ lọc Wiener giảm tần số tương ứng theo tỉ lệ ước lượng giữa tín hiệu và nhiễu.
Hình 2.5 Độ biến thiên giữa W(f) với SNR(f) 2.3 Cắt khung tín hiệu (signal window):
Tín hiệu sau khi được cải thiện bằng bộ lọc Wiener sẽ được chia thành các khung, mỗi một khung chứa N mẫu, các khung có độ dài xác định, thông thường vào khoảng 10 ~ 30 ms. Có nhiều cách cắt khung tín hiệu khác nhau như cửa sổ Kaiser, cửa sổ Blackman, cửa sổ Hamming, cửa sổ Cosin…, mỗi cách cắt khung tín hiệu tương ứng với một hàm cửa sổ.
Nghiên cứu này xác định được kích thước cho quá trình nhận dạng tiếng nói của một khung là 25 ms, khung sẽ thay đổi sau khoảng 2,5 ms. Như vậy, khung chính là số mẫu thu được trong thời gian khảo sát (vào khoảng 25ms). Một ngữ âm được hình thành từ nhiều khung và các khung này có thể nằm chồng lên nhau. Tuy nhiên, vùng chồng lấp giữa các khung không được vượt quá 75% diện tích khung
⎢
để đảm bảo tính chính xác. Mục đích việc cắt khung tín hiệu do tiếng nói có dạng sóng và liên tục theo thời gian, để thực hiện quá trình xử lý trên dãy tín hiệu này là điều không thể vì nó thay đổi quá nhanh.
Hình 2.6 Cắt khung tín hiệu.
Phương pháp để xử lý là chúng ta sẽ phân tích phổ trong những khoảng thời gian ngắn trên những khung liên tiếp được cập nhật theo chu kỳ. Cắt khung tín hiệu bằng cửa sổ Hamming nhằm khắc phục hiện tượng không mong muốn Gibbs và làm mịn các cạnh.
Tiếp đến, mỗi khung sẽ được nhân với hàm cửa sổ Hamming để thực hiện biến đổi Fourier rời rạc trên từng khung. Quá trình này nhằm tối thiểu hóa số điểm gián đoạn tại các vị trí bắt đầu và kết thúc khung.
w[n] = 0.54 − 0.46 cos⎛ 2π n
⎞ ⎢
(2.15)
⎝ N −1 ⎠
Trong đó N chính là kích thước của khung, bằng hai lần tần số cao nhất của tín hiệu.
Hình 2.7 Cửa sổ Hamming chiều dài N. 2.4 Phân tích Fourier – biến đổi Fourier rời rạc:
Bước kế tiếp sau khi cắt khung tín hiệu là xác định độ lớn phổ tín hiệu trên từng khung bằng cách thực hiện biến đổi Fourier rời rạc.
Tín hiệu tiếng nói trong thế giới thực ở dạng sóng liên tục theo chu kỳ, sóng này là tổng hợp của các sóng đường hình sin rời rạc có tần số, biên độ khác nhau, và pha của tín hiệu hình sin có tần số f tương ứng với biểu diễn đặc tính tần số, vì vậy tín hiệu có thể dùng để tổng hợp trở lại các tín hiệu hình sin ban đầu thông qua biến đổi Fourier. Có 4 loại biến đổi Fourier tương ứng với 4 loại tín hiệu :
• Biến đổi Fourier (Fourier transform) dùng cho loại tín hiệu không chu kỳ.
• Chuỗi Fourier (Fourier series) dùng cho loại tín hiệu liên tục có chu kỳ. • Biến đổi Fourier thời gian rời rạc (Discrete time Fourier transform) dùng cho
loại tín hiệu rời rạc không chu kỳ.
• Biến đổi Fourier rời rạc (Discrete Fourier transform DFT) dùng cho loại tín hiệu rời rạc có chu kỳ.
Đối với bài toán nhận dạng tiếng nói thì phép biến đổi DFT sẽ được chọn lựa vì phù hợp nhất.
Cơ bản về biến đổi Fourier:
X (eiω
) = ∑ +∞ x(n)e−
jωm
n =− ∞
(2.16)
Hình 2.8 Minh họa cho biến đổi Fourier.
Như vậy phép biến đổi Fourier đã chuyển tín hiệu x(n) từ miền thời gian sang miền tần số ω (hay tần số f = ω/2π). Chúng ta sẽ dùng ký hiệu sau để mô tả
Phép biến đổi Fourier của tín hiệu x(n) :
FT(x(n)) = X(ejω) (2.17)
x(n) Æ X(ejω)
Biểu diễn dưới dạng phần thực và phần ảo:
Bởi vì X(ejω) là một hàm biến phức nên ta có thể biểu diễn nó trong miền tần số ω dưới dạng phần thực và phần ảo như biểu thức dưới đây:
X(ejω) = Re[X(ejω)] + jIm[X(ejω)] (2.18) Re[X(ejω)] là phần thực của X(ejω), Im[X(ejω)] là phần ảo của X(ejω).
Biểu diễn dưới dạng biên độ và pha:
X(ejω) làm một hàm biến số phức vậy ta có thể biểu diễn nó dưới dạng module và argument như sau:
X (e jω
) = X (e jω
) e j arg[X ( e jω ) ]
(2.19) Phép biến đổi Fourier hội tụ khi và chỉ khi x(n) thoả mãn điều kiện:
+∞ ∑
n =− ∞
x(n) < ∞
Vấn đề là X liên tục theo ω nên không thích hợp cho việc tính toán trên máy tính. Vậy ta sẽ thực hiện lấy mẫu và rời rạc hóa trên miền tần số. Ta sẽ rời rạc hoá miền giá trị ω từ 0 đến 2π thành N điểm với khoảng cách (2π/N).
Hình 2.9 Minh họa cho biến đổi Fourier được rời rạc hóa.
2π ω k = k
N Với k = 0,1,2.., N
∑ X (k ) = ∑ +∞ x(n)e n =− ∞ − j 2π kn N (2.20)
Trong đó khoảng [-∞,+∞] là chu kỳ của tín hiệu của tín hiệu không tuần hoàn
Biến đổi Fourier rời rạc của tín hiệu rời rạc có chiều dài hữu hạn
Với tín hiệu x(n) rời rạc có N mẫu ta có công thức sau:
N −1 X (k ) = ∑ x(n)e n =0 − j 2π kn N (2.21)
Từ công thức (2.21) trên ta có thể tính được x(n) bằng công thức biến đổi Fourier rời rạc ngược (IDFT) sau:
x(n) = 1 N −1 j 2π nk X (k )e N N k =0 (2.22) 2.5 Xác định phổ Mel: 2.5.1 Định nghĩa tần số Mel:
Tín hiệu tiếng nói thu được vốn có kích thước lớn, máy tính không thể xử lý nhận dạng trên mốt khối lượng dữ liệu như vậy. Để giải quyết vấn đề này, người ta chỉ rút trích ra và xử lý những thông tin cần thiết nhất từ dãy tín hiệu thu được. Các thông tin được trích ra được gọi là đặc trưng của tín hiệu gốc, các đặc trưng này có thể chia thành nhiều nhóm khác nhau:
• Nhóm 1: Các đặc trưng trích ra nhờ mô phỏng theo mô hình bộ máy phát âm của con người. Nhóm này sử dụng phương pháp dự báo tuyến tính để có được các đặc trưng.
• Nhóm 2: Các đặc trưng âm học khác nhau về cao độ, âm điệu, dấu, vị trí
nhấn,…, nhóm này thích hợp với nhận dạng tiếng nói khi đang nói, xử lý thanh điệu, tâm trạng người nói,….
• Nhóm 3: Đặc trưng trích ra dựa vào phương pháp phân tích cepstral và phổ
chương này là phương pháp tần số Mel Frequency Cepstral Coefficients (MFCC).
Tín hiệu tiếng nói chứa các tông (tone) với các tần số khác nhau. Trong thực tế tần số f của mỗi tông này được do bằng Hz. Đối với các tông có tần số thấp hơn 1000 Hz, tai người nghe với thang âm tuyến tính (linear scale). Ngược lại, đối với các tông có tần số cao hơn 1000 Hz thì nghe với thang âm loga (logarithmic scale).
Năm 1940, Stevens và Wolkman dựa trên nghiên cứu về tri thức thính giác của con người đã đưa ra định nghĩa về Mel và tần số Mel như sau:
Mel là đơn vị đo của một cao độ (Pitch) nghe được hoặc là tần số của một tông (tone). Tần số mel (Mel Fequency) là một tần số tuyến tính nằm trong khoảng dưới 1000 Hz và một tần số logarithmic trên 1000 Hz. Phần lớn năng lượng của tín hiệu tiếng nói nằm ở khoảng tần số thấp (dưới 1000Hz).
Sử dụng công thức sắp xỉ (Young et al, 1997) dưới đây để tính Mel cho một tần số f cho trước:
Mel ( f ) = 2595 log10 (1 + f
700 ) = 1127 log e (1 + f )
700 (2.23)
Hình trên minh họa cho thanh âm Mel. Đối với mỗi một tông có một tần số f
thực tế, tính bằng Hz. Mỗi một cao độ (pitch) có độ lớn tính bằng thang âm Mel. Cao độ của một tông 1 KHz là 40 dB trên ngưỡng nghe của tai người và được định nghĩa 1000 Mels.
Sau khi chuyển đổi sang tần số Mel, phổ tín hiệu chứa ít thông tin hơn, chỉ giữ lại những tần số thấp trong ngưỡng nghe của con người và loại bỏ những thông tin không cần thiết.
2.5.2 Phổ Mel:
Phổ Mel được tính bằng cách nhân phổ của tín hiệu sau khi đi qua biến đổi Fourier rời rạc với trọng số Mel của bộ lọc tam giác và cộng các kết quả lại.
~ N / 2
S [l ] = ∑ S[k ]M l [k ]
k =0
Trong đó l = 0, 1, 2, ..., L – 1
N là độ dài của biến đổi Fourier rời rạc
(2.24)
L là số lượng trọng số Mel của bộ lọc tam giác. Một bộ lọc tam giác có thể hiện thực dễ dàng trong miền tần số vì nó tương tự như bộ lọc Bandpass. Các bộ lọc tam giác đặt cách nhau trong miền tần số và khoảng cách tăng theo hàm mũ.
Mel filterbank là một dãy các bộ lọc tam giác có dạng như sau:
2.6 Biến đổi Cosine rời rạc trên tần số Mel (Discrete Cosine Transform):
Với biến đổi Fourier ta sử dụng cả hàm sine và cosine để mô tả tín hiệu, còn với biến đổi cosine ta chỉ dùng hàm cosine cho mô tả. Giai đoạn cuối cùng của tiền xử lý tiếng nói, chúng ta áp dụng biến đổi cosine rời rạc để xác định phổ Mel (Mel Cepstrum). Có nghĩa là chúng ta sẽ chuyển đổi giá trị logarithm của phổ Mel từ miền tần số quay ngược về miền thời gian sử dụng biến đổi Cosine rời rạc. Kết quả của quá trình này là thu được hệ số tần số Mel Cepstrum. Các hệ số này đều là các số thực, trong đó hệ số đầu tiên C0 chính là tín hiệu tiếng nói đầu vào nên bị loại bỏ. Toàn bộ quá trình xử lý Front- end trên còn được gọi là block MFCCs.
Công thức biến đổi Cosine rời rạc sau đây được áp dụng để tìm ra hệ số của tần số Mel:
L −1 ~ ⎛ π n ⎞
c[n ] = ∑ ln( S [i ]) cos ⎢ (2i + 1)⎢
i =0 ⎝ 2 L ⎠ (2.25)
Với n= 0, 1, ..., L – 1, C là các hệ số phổ Mel.
Tập hợp các hệ số tần số Mel Cepstrum trên được gọi là một vector ngữ âm (vector acoustic). Các vector ngữ âm này được sử dụng để biểu diễn và nhận dạng tiếng nói. Vì thế, mỗi tín hiệu tiếng nói ở đầu vào sẽ được chuyển đổi theo thứ tự trên thành một vector ngữ âm. Vector ngữ âm được sử dụng trong rất nhiều công nghệ nhận dạng tiếng nói như Dynamic Time Warpping (DTW), Hidden Makov Modeling (HMM), Vector Quantization(VQ)... Ở đây, sử dụng mô hình HMM, các hệ số là các số thực đặc trưng cho tông và cao độ tiếng nói, đóng vai trò như một chuổi trạng thái trong mô hình HMM.
CHƯƠNG 3 - QUÁ TRÌNH HUẤN LUYỆN VÀ NHẬN DẠNG TIẾNG NÓI VIỆT NAM TỪ VỰNG LỚN LIÊN TỤC
3.1 Từ điển Lexicon
3.1.1 Giới thiệu Lexicon
Lexicon là một nơi chứa các từ thuộc cùng một ngôn ngữ được sử dụng để tìm kiếm và tra cứu trong các hệ thống nhận dạng tiếng nói từ vựng liên tục. Lexicon là bộ từ điển dùng để thể hiện các chữ thành các đơn vị phát âm gọi là âm vị (phoneme). Lexicon phải được xây dựng theo phiên âm chuẩn quốc tế IPA (International Phonetic Alphabet), để nhận dạng tiếng nói từ vựng lớn thì mỗi quốc gia phải xây dựng từ điển lexicon cho ngôn ngữ quốc gia của mình.
Cấu trúc âm tiết tiếng Việt gồm có:
• 23 phụ âm (consonant): b, c, ch, d, đ, g, gi, h, kh, l, m, n, ng, nh, ph, qu, r, s,
t, th, tr, v, x.
• 12 nguyên âm (vowel): a, ă, â, e, ê, i, o, ô, ơ, u, ư, y.
• 6 thanh điệu (tone): ngang, huyền , ngã, hỏi, sắc, nặng.
Mỗi từ trong tiếng Việt có cấu trúc âm tiết tổng quát gồm 5 phần như sau: âm đầu (phụ âm), âm đệm (bán nguyên âm), âm chính (nguyên âm hoặc nhị trùng âm), âm cuối (phụ âm hoặc bán nguyên âm). Tiếng Việt là ngôn ngữ đơn âm vì mỗi âm tiết là một từ riêng biệt. Dựa vào biểu diễn cấu trúc trên, tiếng Việt có hơn 17000 từ và 41 âm vị (phoneme). Nghiên cứu này trình bày lexical cho tiếng nói của 2 miền nam, bắc (theo cách phân chia của tiến sĩ Lê Quân Hà). Phần phụ lục A trình bày về các phụ âm, nguyên âm để xây dựng lexicon tiếng Việt.
Thanh điệu (tone)
Âm đầu Kết thúc Âm đệm (Onset) Âm chính (Nucleus) Âm cuối (Coda)
Bảng 3.1 Cấu trúc từ trong tiếng Việt,
Lexicon là rất cần thiết cho mô hình ngữ âm của bất kỳ hệ thống nhận dạng tiếng nói nào, nó giúp xác định từ vựng của hệ thống, liên quan đến sự biểu hiện mỗi từ với các đơn vị âm thanh đơn giản của nó gọi là âm vị (phoneme), và mô tả cách phát âm của từ. Dưới đây là một mẫu lexicon được xây dựng:
TÔI T 0 OY TÔM T 0 AO M TÔN T 0 AO NG TÔN (2) T 0 AO N TÔNG T 0 AW NG TÕ T 2 AO TÕE T W 2 EH TÕM T 2 AO M TÙ T 1 UH TÙI T 1 UH Y TÙM T 1 UH M TÙNG T 1 UW NG TÙY T W 1 IY TÚ T 4 UH TÚC T 4 UW K
TÚI T 4 UH Y TÚM T 4 UH M TÚNG T 4 UW NG TÚP T 4 UH P TÚT T 4 UH K TÚT (2) T 4 UH T TÚY T W 4 IY TÝ T 4 IH TĂM T 0 AH M TĂN T 0 AH NG TĂN (2) T 0 AH N TĨN T 2 IY N TĨN (2) T 2 IY NG TĨNH T 2 OW N TĨNH (2) T 2 IY NG TĨU T 2 IY W TỦM T 3 UH M TŨN T 2 UH NG
TŨN (2) T 2 UH N TƠ T 0 ER TƠI T 0 ER Y TƠM T 0 ER M TƠN T 0 ER NG TƠN (2) T 0 ER N TƯ T 0 OW
Bảng 3.2 Lexicon mẫu cho một số từ.
Các số 0, 1, 2, 3, 4 và 5 là biểu diễn 6 thanh của tiếng Việt: ngang, huyền, ngã, hỏi, sắc và nặng, để đơn giản hơn người ta có thể bỏ bớt số 0 cho trường hợp thanh ngang. Ví dụ cho từ TƠ được mô tả là TER thay vì T0ER. Các từ trên được phiên âm theo giọng miền nam, từ có (2) là từ phiên âm theo giọng khác.
Tập tin lexicon chứa một danh sách các từ cơ bản được sắp xếp theo thứ tự tăng dần để dễ dàng cho việc tìm kiếm.
Theo truyền thống, Lexicon được xây dựng bởi các nhà ngữ âm học, những người cung cấp những gì có thể được coi là một cách phát âm lý tưởng hay chính xác của một từ cho trước. Các âm tiết (phonemes) hiển thị không chỉ là âm tiết gồm có trong mỗi từ, mà còn cách thức chúng được thể hiện trong cách phát âm của từ đó theo góc nhìn ngôn ngữ học.
3.1.2 Qui tắc của Lexicon trong hệ thống nhận dạng tiếng nói từ vựng lớn và liêntục: tục:
Lexicon là cần thiết cho sự hoạt động của hệ thống nhận dạng tiếng nói từ vựng lớn và liên tục, nó không chỉ xác định từ vựng của hệ thống, mà còn xác định sự liên quan của mỗi từ để biểu hiện từ đó dưới dạng các đơn vị âm thanh đơn giản
hơn, thường là các âm vị (phonemes _ như một mô tả được gọi là baseform của từ đó). Lexicon cung cấp liên kết thông qua các thông tin lấy từ các phân tích ngữ âm