Tải bản đầy đủ - 0 (trang)
2 Trích chọn đặc trưng MFCC

2 Trích chọn đặc trưng MFCC

Tải bản đầy đủ - 0trang

2.2.3 Cửa sổ hóa

Tín hiệu tiếng nói là non-stationary signal do đó các thuộc tính thống kê

khơng phải là hằng số thay vào đó với giả thuyết tín hiệu là stationary trong một

khoảng thời gian đủ ngắn ta có sẽ có được những đại lượng đặc trưng thống kê coi

như khơng đổi Do đó ta có thể lấy được những đặc trưng riêng biệt của một

subphone trong một thời gian ngắn.

Để trích được tín hiệu trong khoảng thời gian ngắn ta sử dụng một cửa sổ

nhỏ và tín hiệu được tríc ra bởi cửa sổ này gọi là frame. Trên tồn bộ đoạn tín hiệu

chúng ta sẽ trích thành T frame. Đặc trưc của q trình trích rút này là bộ 3 tham số:

độ rộng frame, hình dạng cửa sổ, frameshift.

Ta sẽ lấy T frame từ tín hiệu, mỗi frame này sẽ có độ ơng trong khoảng 20-40

ms trung bình là 30ms, lấy liên tiếp các frame sao cho frameshift cách nhau chừng

10ms. Ta lấy ra mỗi frame từ tín hiệu bằng cách nhân với các hàm cửa sổ

y[n]=w[n]s[n]

Thông thường sử dụng cửa sổ hamming

2𝜋𝑛

0,54



0,46

cos

(

);0 ≤ 𝑛 ≤ 𝑁 − 1

w[n] = {

𝑁

Với N là số mẫu trong frame



0



Mỗi frame được đặc trưng bởi một bộ thông số và bộ thơng số này chính là một

quan sát đầu vào ot của HMM



Hình 5: quá trình nhân với hàm cửa sổ

10



2.2.4 Biến đổi DFT

Cơng thức tính DFT



−𝑗2𝜋𝑘𝑛/𝑁

X[k] = ∑𝑁−1

𝑛=0 𝑥[𝑛]𝑒



X[k] mang thông tin về độ lớp độ lớn và pha của thành phần tần số. Phương pháp

hiệu quả để tính DFT là FFT

Quy đổi giữa miền tần số và miền DFT

Để có đáp ứng tần số miền rời rạc ta có 2 cách là rời rạc hóa miến tần số và tính

DFT. Nhưng hai cách này phải đảm bảo các điểm có giá trị bằng đáp ứng tần số tại

điểm đó thìa trùng nhau giữa hai phương pháp.Minh họa



Hình 6: Biến đổi DFT

Như hình ta thầy mặc dù số điểm N khác nhau nhưng độ lớn khung trên dải tần số

là như nhau vậy nên sau khi biến đổi DFT N điểm thì với mọi N khoảng cách giữa 2

điểm gần nhau nhất là Fs/N.

2.2.5 Mel filterbank log

Phương pháp áp dụng trên mỗi frame

Tai nghe của con người cảm nhận sự thay đổi của âm thanh khơng tuyến tính (kém

ở tần số cao đặc biệt trên 1000hz)

Do đó để quan sát ta không sử dụng tần số thông thường mà dùng thang đo mel với

tần số



-



Fmel = 2595log(1+Fhz/700)

ở các tần số <1000hz quan hệ giữa Fmel và Fhz là tuyến tính

ở tần số >1000hz quan hệ giứa Fmel và Fhz là logarithm



Tai nghe con người thu nhận âm thanh như những bộ lọc và chỉ tập trung vào

những tần số nhất định. Dựa vào đặc điểm này hệ mạch lọc mel scale filter banks

11



được sử dụng (which collect energy from each frequency band) để thu thập năng

lượng trên mỗi frame. Trong miền tần số các tần số trung tâm của bộ lọc phân bố

khơng tuyến tính, các thành phần <1000hz tập trung nhiều bộ lọc hơn vì nó chứa

nhiều thơng tin hơn.

Ta sử dụng bộ lọc filter bank là bộ lọc tam giác, ta thường dùng dãy các mạch lọc

trong khoảng từ 20  40 mạch lọc

Phương pháp tìm các bộ lọc filter banks



Hình 7: Dải các bộ lọc mel

Ta thường chọn Fs/2 là uper frequency và 0 là lower frequency. Trên dải tần từ 0>Fs/2 ta tính:

Fmel(0) = 2595log(1+0/700)

Fmel(uper) = 2595log(1+Fs/2/700)

Trong thang mel khoảng từ [Fmel(0);Fmel(uper)] ta lấy các điểm cách đều nhau.

Ví dụ cầ 26 bộ lọc filter bank:

Thì trên thang mel ta lấy 26 điểm cách đều nằm trong khoảng trên và tính cả hai

điểm đầu mút của khoảng thì sẽ là 28 điểm.

Ta được bộ các tần số Fmel(i) = (Fmel(1),…,Fmel(28))

Tính ngược lại bằng cơng thức Fhz = 700exp(Fmel/1125-1)

Ta được bộ các điểm tần số Fhz(i) = (f(1),…,f(28))

Từ đây ta tìm được bộ các filterbank tam giác như sau:

“ filterbank đầu tiên bắt đầu từ điểm đầu tiên , đạt đỉnh tại điểm 2 và trở về zero tại

điểm 3. Filterbank thứ 2 bắt đầu tại điểm thứ 2, đạt đỉnh tại điểm thứ 3 và về zero tại

điểm 4… tương tự với các bộ lọc tiếp theo”.

Sau khi tìm được các filterbank việc tiếp theo là tính năng lượng trên mỗi

frame dựa vào các filterbank này

Lẫy mỗi filterbank của bộ các filterbank này đem đi lọc frame. Tức là lấy DFT của

frame * each filter bank (chú ý sau hi tính DFT kết qur được rời rạc N điểm ta phải

đổi N điểm này ra các điểm trên miến tần số với N, N  Fs)

12



Lấy tổng các điểm còn lại sau khi lọc, đưa tổng đó vào giá trị 𝑚𝑖

Làm lần lượt với tất cả các bộ lọc ta được dãy giá trị M = (m1,m2,…mk) với k là số

bộ lọc filter banks (thường k-26)

Tiếp theo lấy log( |𝑚𝑖 |2 )

2.2.6 Tính hệ số cepstral bởi IDFT (Dùng DCT), deltas, energy

Ta tính các hệ số cepstral dựa vào công thức sau:

𝐾



1 𝜋

𝐶(𝑖) = ∑ log(|𝑚𝑖| 2 )cos(𝑖(𝑗 − )

2 𝐾

𝑗=1



Ta lấy 1≤i≤12 ta được 12 hệ số MFCC

Tính ΔC: để nâng cao chất lượng nhận dạng ta đưa them giá trị đạo hàm

∑𝑁

𝑛=1 𝑛(𝐶𝑡+𝑛 − 𝐶𝑡−𝑛 )

∆𝐶(𝑡) =

2 ∑𝑁

𝑛=1 𝑛^2

Thường chọn N=2, và

Chú ý:

Ct = Ct+1-Ct với t<0

Ct=Ct-Ct+1 với t>T-N với T=12

Ta lấy 1≤t≤12 ta lại được 12 hệ số nữa.

(Có một cơng thức chuẩn hóa để tính hệ số đó là:

𝐶𝑡+1 − 𝐶𝑡−𝑛

∆𝐶(𝑡) =

; 𝑡ℎườ𝑛𝑔 𝑐ℎọ𝑛 𝑛 = 1,2 (𝑡𝑟𝑜𝑛𝑔 𝑐𝑢ố𝑛 𝑑𝑎𝑛𝑖𝑒𝑙 𝑐ℎọ𝑛 𝑛 = 1)

2𝑛

Tiếp tục tính ΔΔC : bằng cách thay Ct bởi ΔCt và t=1,…,12 ta lại được 12 hệ số

Tính energy:

𝑡2



𝐸 = ∑ 𝑥[𝑡]2

𝑡=𝑡1



Với t1 là mẫu bắt đầu frame và t2 là mẫu kết thúc frame.

Được 1 hệ số

Tiếp theo tính ΔE và ΔΔE ta được them 2 hệ số

Tổng lại ta đã được 12 hệ số cần tìm



Chương 3: Mơ hình markov ẩn

3.1



Markov chain



Markov chain hay còn gọi là xích markov là một q trình ngẫu nhiên rời rạc với

tính chất markov.

- Một q trình ngẫu nhiên có tính chất markov thì điều kiện là trạng thái tương lai

chỉ phụ thuộc vào trạng thái hiện tại và không phụ thuộc vào trạng thái quá khứ.

- Markov chain là một dãy X1,X2,…,Xn các biến ngẫn nhiên

Gọi S: tập các giá trị có thể có của Xn thì S chính là không gian trạng thái của hệ

- Xét chuỗi các biến ngẫu nhiên nói trên: Xn+1 chỉ phụ thuộc Xn do đó

P(Xn+1=x|X0,X1,…,Xn) = P(Xn+1=x|Xn)

 Dựa trên tính chất markov

13



Ta biểu diễn markov chain biểu diễn bởi ma trận xác suất: P(Xn+1=x|Xn=y)

Tính chất của markov chain:



Mơ tả markov chain dựa trên finite automata

Markov chain là một trường hợp đặc biệt của weighted finite state automata

Ta có:

Trong khơng gian trạng thái hữu hạn S = {Si, i= 1,2,…,N}

Xác suất chuyển trạng thái:

P(Xn+1=Sj|Xn=Si) = aij(n) với i,j=1,2…N

aij được gọi là xác suất chuyển trạn thái và aij độc lập với thời gian

Một markov chain được biểu diễn bởi một finite automata có các thành phần sau:

Q = q1,q2,…,qN :Tập của N trạng thái

A = a01,a02,…an1,…,anm : ma trận chuyển trạng thái với aij là xác suất chuyển từ

trạng thái I sang trạn thái j. có ∑𝑁

𝑗=1 𝑎𝑖𝑗 =1 ∀𝑖

q0,qf : trạng thái khởi đầu và kết thúc

Trong nhiều trường hợp sẽ sử dụng đến khái niệm phân bố xác xuất khởi tạo π =

{πi} thay cho q0. Với πi là xác suất mà markov chain bắt đầu ở trạng thái Si. Nếu πi

= 0 không thể bắt đầu ở Si và ∑𝑁

𝑖=1 𝜋𝑖 = 1

QA = {…Sx,Sy…} tập chấp nhận đc là con của Q



3.2 Hidden Markov Model

Biểu diễn HMM thông qua finite automata gồm các thành phần:

Q = q1,q2,…,qN :Tập của N trạng thái

A = a01,a02,…an1,…,anm : ma trận chuyển trạng thái với aij là xác suất chuyển từ

trạng thái I sang trạn thái j. có ∑𝑁

𝑗=1 𝑎𝑖𝑗 =1 ∀𝑖

O = o1,o2,…,oT: là một chuỗi T các quan sát được tại các thời điểm t khác nhau.

Mỗi oi thuộc tập V = {v1,v2,…vm} là tập tất cả các quan sát có thể được trong mỗi

trạng thái.

B ={ bj(k) } : phân bố xác xuất các quan sát được trong trạng thái Sj. bj(k) =

P(vk=ot,qt=Sj) có bj(k) là xác xuất quan sát được sự kiện vk trong trại thái Sj.

Π = {πi} :phân bố xác suất khởi tạo.

QA = {qx,qy…} ; QA (con của Q) là tập chấp nhận được

Giả thiết markov P(qi|q1,…,qi-1) = P(qi|qi-1)

Và P(oi|q1...qi,...,qT,o1,...,oi,...,oT)= P(oi|qi)

Một mơ hình HMM được đại diện bởi bộ tham số: Λ = (A,B,π)

Ví dụ:



14



Hình 8: Ví dụ mơ hình markov ba trạng thái

Ở mỗi trạn thái sự kiện có thể quan sát được thuộc V = (v1,v2,v3,v4)

B = (b11,b12,…,b34) phân bố xác xuất quan sát được sự kiện và bj(k) là xác xuất

quan sát được sự kiện Vk trong trạng thái Sj.

Các trạng thái Sj được coi là ẩn so với việc quan sát. Đó là lý do tại sao ta gọi là mơ

hình markov ẩn.

Ba vấn đề chính của hidden markov model:

HMM is characterized by three fundamental problems

- Problem 1 (Computing likelihood): cho mơ hình λ(A,B,π) và chuỗi quan sát

được O xác định độ tương đồng (likelihood) P(O|λ)

- Problem 2 (decoding): Cho một cuỗi quan sát O và mơ hình HMM λ(A,B,π), tìm

ra chuỗi Q tối ưu nhất đã phát sinh ra O

- Problem 3 (learning): cho một chuỗi quan sát O và tập các trạng thái của HMM,

điều chỉnh các tham số λ = {A, B, π} của HMM để P(O| λ) lớn nhất. (Đây chính là

bài tốn huấn luyện mơ hình. Bài tốn này đem lại khả năng rất quan trọng của

HMM đó là mơ hình hóa đối tượng cụ thể trong thực tế với dữ liệu liên tục)

Solution for three problems.

Problem 1: the forward or backward algorithm

Problem 2: the Viterbi algorithm

Problem 3: the baum – welch algorithm



3.3



Thuật tốn Forward và Backward

Ví dụ:



Hình 9: Ví dụ mơ hình markov thời tiết

Ví dụ này chúng ta sẽ giải quyết sau khi xem xét chút lý thuyết.

Cho một chuỗi quan sát được O = {o1,o2,…,oN) và tham số mơ hình HMM λ = {A,B,

π}

15



Ta có:

P(O| λ) = ∑𝑎𝑙𝑙 𝑄 𝑃(𝑂, 𝑄| λ ) là tổng xác suất của các chuỗi Q có thể sinh ra O trong

mơ hình λ.

Suy ra: P(O,Q| λ) = P(O|Q, λ)*P(Q| λ)

Trong đó: P(O|Q, λ) = Bq1(O1)*bq2(O2)*…*bqT(OT) : là xác suất quan sát được

chuỗi O sinh ra từ một chuỗi Q=(q1,q2,…,qT)

Và: P(Q| λ) = 𝜋𝑞1 𝑎𝑞1𝑞2 𝑎𝑞2𝑞3 … . 𝑎𝑞𝑇−1𝑞𝑇 là xác suất sinh ra một chuỗi Q=q1,…,qT

từ mơ hình λ.

Vậy nên: P(O|λ) = q1,q2,...,qT πq1 bq1 (o1)aq1q2 bq2 (o2)...aqT−1qT bqT (oT )

Số phép toán phải thực hiện 2T*N^T rất lớn.

Xem Ví dụ trên đầu: O = { 3 1 3}

Với một chuỗi Q cụ thể P(3 1 3, hot cold hot) =

P(hot|start)*P(hot|hot)*P(cold|hot)*P(3|hot)*P(1|hot)*P(3|cold)

Với tất cả các chuỗi sinh ra O: P(3 1 3) = P( 3 1 3|cold cold cold)+P(3 1 3|cold

cold hot) +…

VỚI CÁCH RẤT DÀI NÀY KHÔNG KHẢ THI VẬY TA SẼ XEM XÉT HAI GIẢI

THUẬT SAU GIÚP SỐ LƯỢNG PHÉP TÍNH ÍT HƠN.

GIẢI THUẬT FORWARD:

Đặt 𝛼𝑡 (𝑗) là xác suất ở trạng thái Sj sau khi quan sát được t quan sát O=o1…ot

αt(j) =P(o1…ot,qt=Sj|λ)

Ví dụ:



Hình 10: Q trình thực hiện giải thuật Forward



16



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

2 Trích chọn đặc trưng MFCC

Tải bản đầy đủ ngay(0 tr)

×