MỤC LỤC
LỜI MỞ ĐẦU. . i
1. Giới thiệu. . i
2. Mục tiêu của đề tài. . . i
LỜI CẢM ƠN.
NHẬN XÉT .
MỤC LỤC . . . ii
DANH MỤC CÁC HÌNH . iv
DANH SÁCH CHỮ VIẾT TẮT. . v
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI . 1
1.1 Giới thiệu . . . 1
1.2 Công thức cơ bản . 3
1.3 Các thành phần của một bộ nhận dạng tiếng nói . 4
1.3.1 Xử lý cú âm . . 4
1.3.2 Mô hình cú âm . 5
13.3 Mô hình ngôn ngữ. 5
1.3.4 Tìm kiếm giả định . 6
1.4. Mô hình Markov ẩn. 6
1.4.1 Giới thiệu chuỗi Markov . . 6
1.4.2 Cơ bản về mô hình Markov ẩn . 8
1.4.3 Tìm chuỗi chuyển trạng thái tốt nhất -Thuật toán Viterbi . 13
1.4.4 Ước lượng các tham số xác suất cho HMM –Thuật toán Baum-Welch 16
1.5. Biến đổi Fourier rời rạc. . 19
1.5.1 Giới thiệu . 19
1.5.2 Cơ bản về biến đổi Fourier rời rạc . 20
1.5.3 Cửa sổ Hamming . 23
1.5.4 Biến đổi Fourier nhanh và thuật toán Butterfly: . 24
1.5.5 Cài đặt thuật toán biến đổi Fourier nhanh . . 28
CHƯƠNG 2 :HUẤN LUYỆN TIẾNG VIỆT NAM . 30
2.1 Bộ từ điển Lexicom. 30
2.2 Dữ liệu . 31
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - iii
2.2.1 Dữ liệu văn bản . 31
2.2.2 Dữ liệu âm thanh. . 32
2.2.3 Tiếng ồn và nhiễu trong dữ liệu âm thanh . 34
2.3 Huấn luyện tiếng Việt . . 34
2.3.1 Chuẩn bị dữ liệu . . 34
2.3.2 Các bước trong quá trình học tiếng Việt . 38
CHƯƠNG 3: DEMO ĐỌC SỐ. 50
3.1.Chương trình demo đọc số liên tục . . 50
3.2.Zip City. 50
CHƯƠNG 4: TẠO MODEL DÙNG CHO SPHINX-4 . 53
4.1 Tạo model dùng cho sphinx-4. . . 53
4.2 Audio Tool. 57
CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC . 62
67 trang |
Chia sẻ: netpro | Lượt xem: 2715 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Nhận dạng tiếng nói Việt Nam từ vựng lớn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nói Việt Nam từ vựng lớn Trang - 7
P(Q1,Q2,….Qn,)= 1, 2, ......, 11 ( | )i i
n
i
P Q Q Q Q
(1.11)
Các biến ngẫu nhiên Q1, Q2, …, Qn, … gọi là chuỗi Markov, công thức 2.1 gọi
là công thức của chuỗi Markov. Mỗi biến trong chuỗi gọi là một trạng thái.
Tuy nhiên, nếu trong chuỗi Markov giá trị tại thời điểm t chỉ phụ thuộc vào giá trị
của điểm liền trước nó tức là:
P(Qi|Q1, Q2, …, Qi-1) = P(Qi|Qi-1) với mọi i (1.12)
Thì cơng thức của chuỗi Markov 2.1 trở thành:
P(Q1, Q2, …, Qn) = i i - 1
n
i-1
P(Q | Q ) (1.13)
Trong phạm vi nhận dạng tiếng nói thì chuỗi Markov luôn có tính chất trên và
được gọi là giả thuyết First-order.
Chuỗi Markov là đồng nhất, tức là:
P(Qi = q’|Qi-1 = q) = P(q’| q) với mọi q, q’ Q (1.14)
Ví dụ: cho chuỗi Markov:
Q = A B C D E C D
Tương ứng vị trí i = 1 2 3 4 5 6 7
Thì P(Q4 = D|Q3 = C) = P(Q7 = D|Q6 = C) = p(D|C).
p(q’|q) được gọi là hàm chuyển trạng thái và được biểu diễn bằng một ma trận
c x c. Với mọi q Q ta có:
; p(q’|q) ≥ 0, q’ Q
Mỗi trạng thái đều có một xác suất đứng đầu chuỗi πi và: = 1
Dựa vào các tài liệu tham khảo và những thông tin về các hệ thống nhận dạng
đã xây dựng thành công chúng tôi thấy rằng: đối với nhận dạng tín hiệu tiếng nói
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 8
thì mô hình HMM thường được chọn là mô hình trái phải (left-right) có từ 5 đến
6 trạng thái. Qua quá trình thử nghiệm, mô hình có 6 trạng thái cho kết quả tốt
hơn nên trong chương trình của mình, các tác giả đã xây dựng một HMM với số
trạng thái là 6, xem hình
Hình 1.4: Mô hình HMM trái phải với 6 trạng thái
Hình 1.4 là mô hình một chuỗi Markov sáu trạng thái (c = 6). Trên hình mỗi
mũi tên cùng với xác suất gắn kèm biểu thị sự chuyển đổi giữa các trạng thái. Một
số trạng thái không có xác suất chuyển qua trạng thái khác, ngầm hiểu là
a(1|1) = a(2|2) = a(3|3) = a(4|4) =a(5|5) =a(6|6) = 0.
1.4.2 Cơ bản về mô hình Markov ẩn
Để mở đầu phần này chúng ta xét một ví dụ sau đây: Giả sử chúng ta có một
chuỗi Markov gồm ba trạng thái: nắng, mưa và nhiều mây, là ba trạng thái thời
tiết. Thời tiết của mỗi ngày chỉ có thể là một trong ba trạng thái trên. Cho ma trận
xác suất chuyển trạng thái như sau:
q1 q2 q3
q1 1/3 1/3 1/3
A= q2 1/4 1/2 1/4
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 9
q3 1/4 1/4 1/2
q1 = nắng, q2 = nhiều mây, q3 = mưa.
Với aij = p(qj|qi) là xác suất chuyển trạng thái từ i sang j.
Giả sử ngày đầu tiên là nắng (π1=1), ta có xác suất xuất hiện của chuỗi
“q1q2q3” (nắng-nhiều mây-mưa) là: p(q2| q1)* p(q3| q2)= 1/3*1/4 = 1/12. Nhiệm vụ
của chuỗi Markov đến đây là hết, nó cho phép tính xác suất của một chuỗi sự kiện
nào đó. Tuy nhiên chúng ta cần nhiều hơn thế.
Bây giờ, giả sử mỗi ngày một người chỉ làm một trong ba việc: mua sắm, đi
dạo và dọn dẹp. Tùy vào thời tiết trong ngày mà người này sẽ làm công việc phù
hợp. Cho ma trận xác suất người này làm một công việc nào đó tương ứng với thời
tiết trong ngày:
x1 x2 x3
q1 1/3 1/3 1/3
B= q2 1/4 1/2 1/4
q3 1/4 1/4 1/2
x1 = mua sắm, x2 = đi dạo, x3 = dọn dẹp.
Với bij = p(xj|qi) là xác suất quan sát được xi khi ở trạng thái qi.
Vấn đề đặt ra là: cho một chuỗi các công việc người này sẽ làm trong một số
ngày liên tiếp, phải tìm ra chuỗi thời tiết phù hợp nhất cho những ngày đó.
Một mô hình bao gồm chuỗi các trạng thái Q = q1, q2, …, qn tương ứng với
các xác suất chuyển trạng thái, và chuỗi các kết quả X = x1, x2, …, xn tương ứng
với các xác suất đầu ra như trên gọi là mô hình Markov ẩn (HMM). Kết quả đầu ra
còn gọi là các quan sát. Mỗi mô hình HMM có một trạng thái ban đầu duy nhất.
Sở dĩ gọi là “ẩn” bởi vì với một chuỗi quan sát cho trước, ta chưa biết được
chuỗi trạng thái tương ứng là gì.
Trong mô hình HMM thì:
Công thức tính xác suất của một chuỗi quan sát X trong mô hình HMM M như
sau:
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 10
P(X|M)= ( ) ( , | )1 1
L M N nP q X Ml l (1.15)
Trong đó:
L(M): tổng số trạng thái.
N: chiều dài chuỗi quan sát.
chuỗi quan sát từ a đến b.
trạng thái ql tại vị trí n (ql sinh ra quan sát xn).
Như vậy để tính P(X|M) cần phải xác định được các P( , |M). Hiện nay có
hai cách tính là tính tổng và dùng xấp xỉ Viterbi.
Phương pháp tính tổng:
L(M)N n N n-1 n n-1 n-1P(q ,X |M)= P(q ,X |M)P(q ,x |q ,X ,M)nk=1 1l l l l k k (1.16)
Đặt = P( , |M), ta có:
L(M) n n-1 n-1α (l |M)= α (k |M)P(q ,x |q ,X ,M)n nk=1 n-1 1l k (1.17)
Theo công thức 1.7 ta có:
L(M)n n-1 n n-1 n-1 n n-1 n-1P(q ,x |q ,M)= P(q | q ,X ,M)P(x |q ,q ,X ,M)n nk=1 1 1l l l k k k (1.18)
Trạng thái tại vị trí n chỉ phụ thuộc trạng thái tại vị trí n-1 nên:
→
Các quan sát cũng độc lập với các trạng thái trước nên:
→
Công thức 2.8 được viết lại:
n n-1 n-1 n n-1 nP(q ,x | q ,X ,M)= P(q | q ,M)P(x ,q ,M)n n1l k l k l (1.19)
→ L(M) n n-1 nα (l |M)= α (k |M)P(q |q ,M)P(x ,q ,M)n nk=1 n-1 l k l (1.20)
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 11
Quay trở lại ví dụ thời tiết ở trên, chúng ta sẽ dùng phương pháp tính tổng để
tính xác suất của chuỗi công việc X = {x1=“mua sắm”, x2=”đi dạo”, x3=”dọn dẹp”}.
Ta có n=3, l=3, bảng sau tính các giá trị :
l=1 (“nắng”) l=2 (“nhiều
mây”)
l=3 (“mưa”)
n=1 (“mua
sắm”)
a1(1) a1(2) a1(3)
n=2 (“đi
dạo”)
a2(1) a2(2) a2(3)
n=3 (“dọn
dẹp”)
a3(1) a3(2) a3(3)
Bảng 1.1 Bảng tính các giá trị α trong phương pháp tính tổng
Vì chúng ta giả sử ngày đầu tiên luôn luôn là nắng nên a1(1) =1, a1(2) =0, a1(3)
=0.
a2(1) = [a2(1) *p(q1|q1) + a1(2) *p(q1|q2) + a1(3) *p(q1|q3)]*p(x2|q1)
= (1*1/3 + 0*1/4 + 0*1/4)*0.3 = 0.1
a2(2) = [a1(1) *p(q2|q1) + a1(2) *p(q2|q2) + a1(3) *p(q2|q3)]*p(x2|q2)
= (1*1/3 + 0*1/2 + 0*1/4)*0.7 = 7/30
a2(3) = [a1(1)*p(q3|q1) + a1(2)*p(q3|q2) + a1(3)*p(q3|q3)]*p(x2|q3)
= (1*1/3 + 0*1/4 + 0*1/2)*0.1 = 1/30
a2(1) = [a2(1)*p(q1|q1) + a2(2)*p(q1|q2) + a2(3)*p(q1|q3)]*p(x3|q1)
= (0.1*1/3 + 7/30*1/4 + 1/30*1/4)*0.1 = 1/100
a2(2) = [a2(1)*p(q2|q1) + a2(2)*p(q2|q2) + a2(3)*p(q2|q3)]*p(x3|q2)
= (0.1*1/3 + 7/30*1/2 + 1/30*1/4)*0.2 = 19/600
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 12
a2(3) = [a2(1)*p(q3|q1) + a2(2)*p(q3|q2) + a2(3)*p(q3|q3)]*p(x3|q3)
= (0.1*1/3 + 7/30*1/4 + 1/30*1/2)*0.8 = 13/150
Vậy P(X|M) = ( | )L(M) L Mnl=1
= 3 ( )1 3 ll
= 1/100 + 19/600 + 13/150 = 77/600 = 0.12833
Phương pháp xấp xỉ Viterbi:
Với một mô hình HMM có số trạng thái lớn thì phương pháp tính tổng ở trên
sẽ phải sử dụng rất nhiều phép nhân. Để khắc phục điều này người ta dùng phương
pháp xấp xỉ Viterbi để biến các phép nhân thành tổng các log.
Từ công thức 2.10 thay tổng bằng lấy max:
n n-1 nα (l | M)= max[ α (k |M)P(q | q ,M)]P(x | q ,M)n nn-1 l k l (1.21)
Lấy log hai vế ta được:
n n-1logα (l |M)= max [logα (k | M)+logP(q | q ,M)]n n-1k l k (1.22)
Hay:
n n-1 n-logα (l |M)= min [-logα (k |M) - logP(q | q ,M)] - logP(x | q ,M)n nn-1k l k l (1.23)
Áp dụng công thức này cho ví dụ ở trên ta có:
log = max[log + logp(q1|q1) , log + logp(q1|q2) , log +
logp(q1|q3)] + log p(x2|q1) = max[log(1/3),-∞, -∞] + log0.3 = -1
Tương tự: log = -0.63202, log = -1.47712.
log = -1.33333, log = -0.83099, log = -0.43024.
Vậy:
P(X|M) = E-1.33333 + E-0.83099 + E-0.43024= 0.56532.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 13
1.4.3 Tìm chuỗi chuyển trạng thái tốt nhất - Thuật toán Viterbi
Trong mô hình HMM nêu ở trên, nếu cho trước chuỗi quan sát X = x1, x2, …,
xk, thì chuỗi trạng thái Q = q1, q2, …, qk, nào là phù hợp nhất với nó (tương tự như
ví dụ ở phần trước: cho một chuỗi các công việc người này sẽ làm trong một số
ngày liên tiếp, phải tìm ra chuỗi thời tiết phù hợp nhất cho những ngày đó).
Tức là phải tính: maxq1,q2,…,qkP(q1,q2,…,qk,|x1,x2,…,xk,q0)
Từ công thức 1.7 ta có:
P(q1, q2, …, qk| x1, x2, …, xk, q0) =
P(q ,q ,...,q ,| x ,x ,...,x |q )1 2 1 2 0k k
P(x ,x ,...,x | q )1 2 0k
(1.24)
Vì vậy phải tính:
P(q ,q ,...,q ,| x ,x ,...,x | q )1 2 1 2 0k kmaxq ,q ,...,q P(x ,x ,...,x | q )1 2 k 1 2 0k
Vì đã biết nên ta cần tính:
max P(q ,q ,...,q ,| x ,x ,...,x |q )q ,q ,...,q 1 2 1 2 0k k1 2 k
Đặt:
γi(qi) = max P(q ,q ,...,q ,q | x ,x ,...,x |q )q ,q ,...,q i i1 2 i-1 1 2 01 2 i-1
(1.25)
thì ( )maxq k q chính là giá trị cần tính.
Theo giả thuyết First-Order của mô hình HMM ta có:
P(q1, q2, …, qi, qi+1, …, qk, x1, x2, …, xi, xi+1, …, xk|q0) = P(q1, q2, …, qi, x1,
x2, …, xi|q0) P(qi+1, …, qk, xi+1, …, xk|qi)
Nên:
γi+1(qi+1) = max P(q ,q ,...,q ,q ,q ,x ,x ,...,x |q )q ,q ,...,q i1 2 i-1 i+1 1 2 i+1 0i1 2
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 14
= max [P(q ,q ,...,q ,q ,x ,x ,...,x |q )P(q ,x |q )]q ,q ,...,q i i i1 2 i-1 1 2 0 i+1 i+1i1 2
=γi(qi)max P(q ,x |q )q ,q ,...,q ii+1 x+1i1 2
(1.26)
Đây chính là công thức cho thuật toán Viterbi.
Thuật toán Viterbi:
Thuật toán Viterbi định nghĩa công thức đệ quy cho công thức 2.16, gồm
các bước:
1 Khởi tạo:
Xét γ0(q0) = 1, γ0(qi) = 0 Với mọi i ≠ 0.
2. Lặp:
Dùng công thức 2.16 tính γ1(q) cho tất cả các trạng thái q.
γ1(q) = γ0(q’)maxq’P(x1,q|q’) = P(q, x1|q0)
Sau đó tính γ2(q) cho tất cả các trạng thái q.
γ2(q) = γ1(q’) maxq’P(x2,q|q’)
Chọn γ2(q’) = maxq γ2(q) để dùng cho bước lặp tiếp theo.
Tiếp tục tính γi(q) cho tất cả các trạng thái q.
Đánh dấu các trạng thái q’ thỏa mãn ở mỗi lần lặp.
Nếu trong một lần lặp có nhiều trạng thái q thỏa mãn maxq’P(x2,q|q’) thì
chỉ chọn một và loại bỏ hết các giá trị khác.
3. Kết thúc:
Kết thúc khi lặp qua k bước, với k là chiều dài chuỗi quan sát.
Chuỗi trạng thái đã được đánh dấu qua mỗi lần lặp chính là chuỗi trạng thái
cần tìm.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 15
Ví dụ: Quay trở lại ví dụ thời tiết ở trên, bây giờ chúng ta sẽ áp dụng thuật
toán Viterbi để xác định chuỗi thời tiết phù hợp nhất cho chuỗi công việc {“mua
sắm”, “đi dạo”, “dọn dẹp”}. Chúng ta cùng xem lại hai ma trận hệ số của ví dụ:
q1 q2 q3
q1 1/3 1/3 1/3
A= q2 1/4 1/2 1/4
q3 1/4 1/4 1/2
q1 = nắng, q2 = nhiều mây, q3 = mưa.
Với aij = p(qj|qi) là xác suất chuyển trạng thái từ i sang j.
x1 x2 x3
q1 0.6 0.3 0.1
B = q2 0.1 0.7 0.2
q3 0.1 0.1 0.8
x1 = mua sắm, x2 = đi dạo, x3 = dọn dẹp.
Với bij = p(xj|qi) là xác suất quan sát được xi khi ở trạng thái qi.
Lưu ý rằng theo công thức 1.7:
= P(qi+1|qi)P(xi+1|qi+1, qi) = ai(i+1)b(i+1)(i+1)
Do giả sử ngày đầu luôn nắng nên: a01=1, a02 = 0, a03 = 0
γ1(1)=0.6 γ1(2)=0 γ1(3)=0
γ2(1)=0.6*1/3*0.3=0. γ2(2)=0.6*1/3*0.7=0. γ2(3)=0.6*1/3*0.1=0.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 16
06 14 02
γ3(1)=0.14*1/4*0.1=0
.0035
γ3(2)=0.14*1/2*0.2=
0.014
γ3(3)=0.14*1/4*0.8=
0.028
Bảng 1.2 Bảng tính các giá trị γ của thuật toán Viterbi
Các ô tô màu xanh là các ô có giá trị lớn nhất trong hàng, và ta lấy các trạng
thái q’ ở đây. Vậy chuỗi trạng thái tốt nhất là {q1, q2, q3} hay: {“nắng”, “nhiều
mây”, “mưa”}.
1.4.4 Ước lượng các tham số xác suất cho HMM – Thuật toán Baum-Welch
Vấn đề cuối cùng trong mô hình HMM đó là cho trước một chuỗi quan sát X =
x1, x2, …, xk, làm sao để xác định các giá trị cho các tham số (xác suất của các
trạng thái, quan sát) để làm tối đa xác suất xuất hiện của chuỗi quan sát trên, tức là
tính cực đại P(X|M). Hiện nay không có cách nào xác định các giá trị trong mô
hình để có được xác suất chuỗi quan sát tối đa, mà chúng ta chỉ có thể ước lượng
được một cực đại cục bộ bằng các dùng thuật toán Baum-Welch (hay còn gọi là
thuật toán Forward-Backward).
Chúng ta bắt đầu thuật toán bằng các viết lại công thức Forward 2.10 như sau:
Nt+1 t+1α (j)= P(X ,q )= [ α (j)α ]btj iji=1t+1 1 j(t+1) (1.27)
Một cách tương tự, chúng ta cũng có thể định nghĩa ra công thức Backward có
giá trị tương đương công thức trên:
NN t t(i)= P(X ,q ,X )= [ (j)α ]bi ijj=1t+1 1 1 t+1 j(t+1)
(1.28)
Hình 1.5 và 1.6 mô tả hai quá trình Forward và Backward.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 17
Hình 1.5 Mô tả quá trình forward
Hình 1.6 Mô tả quá trình backward
Gọi t(i, j) là xác suất trạng thái Si tại t và Sj tại t+1 trong mô hình HMM tức
là:
t(i, j) = P(qt=Si, qt+1=Sj|X, M) (1.29)
Hình 1.5 mô tả cho t(i, j).
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 18
Hình 1.7 Mô tả xác suất t(i, j)
Từ hình 1.7 ta thấy:
aijbj(t+1) = P(Si, Sj, X|M) = P(Si, Sj|X, M) P(X|M) = t(i, j) P(X|M)
Mà P(X|M) = N N N NP(S ,S ,X | M)= α (i)a b β (j)ti j iji=1 j-1 i=1 j-1 t+1j(t+1)
t(i, j) =
( , , | )
( | )
i jP S S X M
P X M
α (i)a bt ij j(t+1)
N N α (i)a b β (j)t iji=1 j-1 t+1j(t+1)
(1.30)
Đặt: γt(i) = P(qt=Si|X, M)
γt(i) = 1 ( , )
N
tj
i j
(1.31)
Gọi:5
1
1
( )T tt i
= Tổng xác suất trạng thái Si ở các vị trí trong mô hình
1
1
( , )T tt i j
= Tổng xác suất trạng thái Sj theo sau Si trong mô hình
Ta có ước lượng:
i = Xác suất trạng thái Si xuất hiện tại vị trí (t = 1) = γt(i) (1.32)
1
1
1
1
( , ) Tong xác suat trang thái Sj theo Si trong mô hình
Tong xác suat trang thái Si o các vi trí trong mô hình ( )
T
tt
ij T
tt
i j
a
i
(1.33)
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 19
1
1
k
1
1
( )
Tong xác suat trang thái Si o các vi trí mà nó sinh ra quan sát x
Tong xác suat trang thái Si o các vi trí trong mô hình ( )
t k
T
t t
x x
ij T
tt
i
b
i
(1.34)
Tổng Gọi là mô hình HMM có giá trị các tham số i, ij, ik được ước
lượng như trên. Baum và các cộng sự đã chứng minh được rằng: P(X| ) > P(X|M),
tức là chúng ta đã tìm được một mô hình mới có xác suất tạo ra chuỗi quan sát
lớn hơn trước. Tiếp tục làm các bước trên, nếu chúng ta thay vào vị trí của M và
lặp lại các bước tính ước lượng, chúng ta sẽ cải tiến được xác suất chuỗi X được
quan sát từ mô hình.
1.5. Biến đổi Fourier rời rạc.
1.5.1 Giới thiệu
Một bộ nhận dạng tiếng nói ngoài những thành phần đã nêu ở chương 1, chúng ta
còn cần đến một giải thuật, để tính toán phổ tần số của các tín hiệu tiếng nói đầu
vào. Biến đổi Fourier rời rạc là công cụ mạnh mẽ để giải quyết vấn đề này.
Như đã biết, tiếng nói là một dạng tín hiệu miền thời gian, có phổ tần số rất phức
tạp, cho nên không thể nhận dạng được. Chỉ khi nào thực hiện phép toán đổi trục,
từ miền thời gian sang miền tần số, chúng ta mới tính được phổ tần số của từng
điểm tín hiệu. Từ đó, kết hợp các phổ tần số này lại để nhận dạng được tiếng nói.
Biến đổi Fourier rời rạc chuyển đổi một hàm theo thời gian thành hàm theo tần số.
Đầu vào của biến đổi này là dãy tín hiệu hữu hạn rời rạc, thường được tạo ra từ
một nguồn liên tục. Những tín hiệu này thông thường là tín hiệu thời gian thực, và
luôn thay đổi đặc điểm trong quá trình nhận dạng, ví dụ như : tiếng nói, tín hiệu
sinh học,... Vì vậy, cần phải áp dụng kỹ thuật Hamming Window như là bước tiền
xử lý của biến đổi Fourier. Đây là kỷ thuật để giảm bớt sự rò rỉ của tín hiệu.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 20
1.5.2 Cơ bản về biến đổi Fourier rời rạc
Để xây dựng biến đổi Fourier rời rạc của dãy tuần hoàn, xuất phát từ chuỗi
Fourier của hàm liên tục tuần hoàn xp(t).
Xét hàm liên tục tuần hoàn xp(t), có chu kỳ 02 oT . Nếu xp(t) thỏa mãn các
điều kiện Dirichlet, thì có thể khai triển xp(t) thành chuỗi Fourier :
k
tjk
kp etx C 0)(
(1.31)
Với các hệ số : dtetx
T
T
tjk
pk T
C
2
2
0)(
0
1
(1.32)
Nếu hàm liên tục tuần hoàn xp(t) có phổ hữu hạn f < fmax , thì có thể rời rạc
hóa xp(t) với chu kỳ T sao cho N.T = To , và T thỏa mãn điều kiện của định lý lấy
mẫu max21 fT . Theo định lý lấy mẫu, hàm tuần hoàn xp(t) xác định tại các giá trị
rời rạc t = nT và tạo thành dãy rời rạc tuần hoàn xp(nT), do đó có thể viết lại [4.1-
1] dưới dạng :
k
nTjk
kp enx CT 0)(
Vì NNTT 00 2 nên :
k
njk
k
k
njk
kp
NN eenx CCT
2
2
0
0
)(
Khi thực hiện chuẩn hóa chu kỳ lấy mẫu T = 1 , thì xp(nT) = xp(n) và chu kỳ
của dãy tuần hoàn xp(t) là To = N, nên có :
k
njk
kp
Nenx C
2
.)( (1.33)
Hay :
k
njk
pp ex kXN
n 1)(1)( (1.34)
Trong đó : kp CXN
k
)(1 (1.35)
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 21
ở đây, Xp(k) là biên độ của các dao động điều hòa ứng với tần số góc 1 kk ,
nó là dãy phức. Còn 1 là tần số góc rời rạc cơ bản ứng với chu kỳ N của dãy tuần
hoàn xp(t) :
N
2
1 (1.36)
Do dãy xp(t) và hàm njke 1 đều tuần hoàn với chu kỳ N nên có thể viết lại [4.1-
4] cho một chu kỳ N :
1
0
1)(1)(
N
k
njk
pp enx kXN
(1.37)
Biểu thức (1.37) chính là chuỗi Fourier rời rạc của dãy tuần hoàn xp(n) , hay
còn gọi là biến đổi Fourier rời rạc ngược.
Để tìm biểu thức của biến đổi Fourier rời rạc thuận, nhân cả hai vế của (1.37)
với thừa số njme 1 , sau đó lấy tổng theo n = 0 (N - 1) :
1
0
1
0
1
0
111 )(1)(
N NN
n k
njmnjk
p
n
njm
p eekenx XN
hay:
1
0
)(
1
0
1
0
11
1)()(
NNN
k
nmkj
n
p
n
njm
p eenx N
kX (1.38)
Theo tính chất của hàm trực chuẩn có :
mKhi
mKhi
e
k
k
N
N
n
nmkj
0
11
0
)( 11
nên từ [4.1-8]nhận được :
1
0
1)()(
N
n
njk
pp enxkX
(1.39)
Biểu thức (1.39) chính là biến đổi Fourier rời rạc thuận của dãy tuần hoàn
xp(n). Kết hợp cả hai biểu thức (1.37)và (1.39) nhận được cặp biến đổi Fourier rời
rạc của dãy tuần hoàn xp(n), trong đó Xp(k) là dãy phức của biến tần số góc rời rạc
1 kk , với 1 được xác định theo (1.36)
)()( )()()( kjpkjpp ee kAkXkX
Mô đun )(kX p là dãy biên độ tần số rời rạc.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 22
Argumen )(k là dãy pha tần số rời rạc.
Ap(k) là dãy độ lớn, còn )(k là dãy pha.
Ví dụ5.1 : Xác định Xp(k) của dãy tuần hoàn xp(n) = n với chu kỳ N = 4.
Giải : Theo công thức biến đổi Fourier rời rạc thuận (1.39) có :
3
0
3
0
1
0
24
2
1 ..)()(
n
njk
n
njk
n
njk
pp enenenx
N
kX
Tại k = 0 : 0
3
0
0 6632100 2.)( j
n
nj
p eenX
Tại k = 1 :
3
0
2
3
22 3201 ..)(
n
jjjnj
p eeeenX
78,0.322321)( jp ejjjX
Tại k = 2 :
3
0
32. 3202 ..)(
n
jjjnj
p eeeenX
j
p eX
.223212)(
Tại k = 3 :
3
0
3. 2
9
2
3
2
3
3203 ..)(
n
jjjnj
p eeeenX
78,0.322323)( jp ejjjX
Trên hình 1.8 là đồ thị của dãy xp(n) = n có chu kỳ N = 4, và đồ thị của các
dãy biên độ tần số Xp(k) , pha tần số )(k .
32-1-2 0
32
1
32
1
32
1
32
1
1 765-3-4-5-6-7-8 98
23 3
6
23 3
6
23 3
6
23 3
6
n
x(n)
n
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 23
Xp(k)
)(k
Hình 1.8 : Đồ thị các dãy xp(n), Xp(k), )(k ở ví dụ 6.1.
1.5.3 Cửa sổ Hamming
Hamming window được định nghĩa như sau :
Với i = 0, 1,...., M (1.40
Tín hiệu nhận dạng sẽ được nhân với một hàm cửa sổ trước khi đi qua thuật toán
biến đổi Fourier nhanh. Tất cả các giá trị nằm bên ngoài khoảng lấy mẫu đều bằng
0. Hamming window được ứng dụng rất rộng rãi trong phân tích phổ tần số của tín
hiệu, và thiết kế các bộ lọc tín hiệu.
Ví dụ: Tín hiệu tiếng nói có thể thay đổi trong khoảng thời gian từ 10 – 20 ms, do
đó kích thước cửa sổ phù hợp là 20 ms, cứ 10 ms thì biến đổi Fourier rời rạc sẽ
được cập nhật một lần.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 24
Hình 1.9 Cửa Sổ Hamming
Hình 1.10 Biến đổi FFT của Hamming Window
1.5.4 Biến đổi Fourier nhanh và thuật toán Butterfly:
Để thực hiện được biến đổi Fourier rời rạc trong nhận dạng tiếng nói, chúng tôi lựa
chọn thuật toán biến đổi Fourier nhanh với giải thuật Butterfly. Quá trình nhận
dạng trải qua 3 giai đoạn như sau :
Giai đoạn đầu tiên
Phân rã tín hiệu tiếng nói miền thời gian N điểm thành N tín hiệu miền thời gian
cho mỗi điểm riêng lẻ.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 25
Ví dụ :
Một tín hiệu tiếng nói gồm 16 điểm được phân rã như sau :
Hình 1.11 FFT Decomposition
Quá trình này trải qua 4 giai đoạn : để phân rã từ một tín hiệu miền thời gian gồm
16 điểm thành 16 tín hiệu riêng lẻ cho mỗi điểm. Từ thực nghiệm, chúng tôi rút ra
cần log2N giai đoạn để phân rã tín hiệu N điểm, ví dụ tín hiệu 16 điểm (24) cần 4
giai đoạn, tín hiệu 512 điểm (27) cần 7 giai đoạn.
Song song với việc phân rã tín hiệu, chúng tôi cũng sử dụng thuật toán bit reversal
sorting để lọc các tín hiệu ở những điểm chẳn, lẻ khác nhau. Ví dụ, mẫu số 3
(0011) được hoán đổi với mẫu số 12 (1100), mẫu số 4 (0100) được hoán đổi
chuyển thành mẫu số 2 (0010).
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 26
Hình 1.12 Bit Reversal Sorting
Giai đoạn 2
Xác định phổ tần số
cho một điểm, ở giai đoạn này không cần làm gì cả. Bởi vì, lúc này mỗi điểm tín
hiệu là một phổ tần số.
Giai đoạn 3
Kết hợp N phổ tần số thành một phổ tần số duy nhất theo thứ tự đảo ngược thứ tự
mà quá trình phân rả đã diễn ra. Đây là giai đoạn cuối cùng và cũng là giai đoạn
khó khăn nhất của giải thuật Fast Fourier Transform.
Ví dụ: để kết hợp 16 phổ tần số riêng lẻ của từng điểm, bước đầu tiên chúng tôi kết
hợp 16 phổ tần số đó thành 8 phổ tần số cho mỗi 2 điểm. Tiếp đó, thành 4 phổ tần
số cho mỗi 4 điểm. Cứ tiếp tục như thế cho đến khi, kết quả cuối cùng của biến đổi
Fourier nhanh là một phổ tần duy nhất của 16 điểm.
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 27
Hình 3.1 thể hiện cách thức kết hợp từ các phổ tần số riêng lẻ thành một phổ tần số
duy nhất của tín hiệu. Đối với miền thời gian, mỗi phổ tần số sẽ được kết hợp với
0, đối với miền tần số các phổ tần số này sẽ được lặp lại.
Hình 1.13 FFT Synthesis
Thuật toán Butterfly:
Thuật toán Butterfly là giải thuật cơ bản của biến đổi Fourier nhanh. Giải thuật này
kết hợp các kết quả tính toán của từng biến đổi Fourier rời rạc (DFTs) riêng lẻ
thành một biến dổi Fourier rời rạc lớn hơn chứa tất cả (DFT), và ngược lại phân rả
một biến đổi Fourier rời rạc thành các biến đổi nhỏ hơn. Cấu trúc của giải thuật
Butterfly tương tự như thuật toán Viterbi.
Nếu biến đổi Fourier rời rạc có kích thước là 2 và chỉ có 2 mẫu đầu vào là
x0, x1
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 28
Hình 1.14 Basic butterfly
Biến đổi Fourier rời rạc có kích thước N
Hình 1.15 Basic butterfly computation in the
decimation-in-time FFT algorithm
Trong đó k là số nguyên phụ thuộc vào phần biến đổi được tính.
Và
1.5.5 Cài đặt thuật toán biến đổi Fourier nhanh
Chúng tôi đã cài đặt thành công giải thuật biến đổi Fourier rời rạc để tính toán các
tín hiệu liên tục. Biến đổi Fourier nhanh phân tích tín hiệu thành các thành phần
tần số. Ở đây, chúng tôi phân tích trên một cửa sổ dữ liệu âm thanh thay vì trên
toàn thời gian nói. Cửa sổ này là sản phẩm của việc ứng dụng Hamming Window
vào tín hiệu. Kết quả trả về là độ lớn phổ của dữ liệu trong cửa sổ Hamming. Mỗi
giá trị phổ trả về đại diện cho độ lớn của tần số cụ thể cho dữ liệu trong cửa sổ
Hamming. Hình 1. là tín hiệu kết quả của FTT và hình 3.9 là phổ tần số của câu
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 29
nói “khoa công nghệ thông tin”. Phổ tần số trục tung là trục tần số, trục hoành là
trục thời gian. Bóng tối là độ lớn của tần số tại thời điểm t tương ứng.
Hình 1.16 Tín hiệu của câu nói "khoa công nghệ thông tin” (kết quả của FFT)
Hình 1.17. Phổ tần số của câu nói "khoa công nghệ thông tin”
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 30
CHƯƠNG 2 :HUẤN LUYỆN TIẾNG VIỆT NAM
2.1 Bộ từ điển Lexicom
Lexicon là bộ từ điển dùng để thể hiện các chữ thành các đơn vị phát âm
(phonemes). Nó là một thành phần quan trọng trong hệ thống nhận dạng tiếng nói.
Nhóm chúng em đã xây dựng được lexicon tiếng Việt theo phiên âm chuẩn quốc
tế. Lexicon tiếng Việt hơn 12 nghìn chữ sử dụng 41 phonemes cho cả hai miền
Nam và Bắc.
Ví dụ: BIẾC B 4 IY AH K
...
NGỜI NG 1 ER Y
NGỞ NG 3 ER
NGỠ NG 2 ER
NGỢ NG 5 ER
...
NHA N Y 0 AA
...
Trong đó các dấu “ngang”, “huyền”, “ngã”, “hỏi”. “sắc” và “nặng” được biểu
diễn bằng các số tương ứng “0”, “1”, “2” , “3”, “4” và “5”.
Có nhiều chữ người miền Nam và miền Bắc phát âm khác nhau. Người miền
Trung thì phát âm hoặc giống người Bắc hoặc giống người Nam. Chính vì thế mà
nhóm em chỉ làm lexicon cho hai miền Nam và Bắc. Đây là cách phát âm phổ
thông theo hai miền chứ không phải cách phát âm địa phương.
Ví dụ:
BÀN B 1 AA NG Phiên âm theo giọng miền Nam
BÀN(2) B 1 AA N Phiên âm theo giọng miền Bắc
Nhận dạng tiếng nói Việt Nam từ vựng lớn Trang - 31
2.2 Dữ liệu
Dữ liệu học là một phần không thể thiếu trong nhận dạng tiếng nói. Dữ liệu
học quyết định trực tiếp đến kết quả nhận dạng.
Các file đính kèm theo tài liệu này:
- Nhận dạng tiếng nói Việt Nam từ vựng lớn.pdf