1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống nhận dạng tiếng nói tiếng việt dựa trên mô hình markov ẩn dùng sphinx

44 589 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 2,15 MB

Nội dung

Chương 1: Tổng quan về nhận dạng tiếng nói1.1 Cách tạo thành tiếng nóiTiếng nói là là song âm la truyền trong môi trường nhất định mang thông tincon người muốn truyền đạt.Sơ đồ bộ máy phát âm của con người:Hình 1: Bộ máy tạo tiếng nóiVocal folds : Dây thanhMouth cavity : tuyến âm (miệng) tạo ra các tấn số formantNasal cavity: (mũi) như hộp cộng hưởng kết hợp với miệng tạo ra các tần sốantiformantKhông khí đi từ phổi đến thanh quản sau đó ra ngoài bằng mũi hoặc miệng trongquá trình di chuyển dưới sự tác động của bộ máy tạo tiếng của con người nên tạo racác sóng âmÂm thanh con người phát ra có hai loại Âm hữu thanh: âm phát ra khi khí đi qua thanh môn kết hợp với dâythanh căng tạo dao động. Âm vô thanh: khi dây thanh môn không giao động hoặc giao động nhỏMô hình tạo tiếng nói fant4 +) Với : G(z): bộ phận nguồn tạo tiếng nói (Pharynx, soft plate,Larynx..) V(z): tuyến âm (Miệng) R(z): Tán xạ môi trường truyềnMô hình toàn điểm cực AR: T(z)=G(z)V(z)R(z) = αA(z)A(z) = 1 + ∑

Trang 1

MICA International Research Insitute

Báo cáo nhận dạng tiếng nói

Giảng viên hướng dẫn: Đỗ Thị Ngọc Diệp

Sinh viên thực hiện: Nguyễn Văn Thịnh

Mã số sinh viên: 20122512

Hà Nội 29/04/2016

Trang 2

Contents

Chương 1: Tổng quan về nhận dạng tiếng nói 3

1.1 Cách tạo thành tiếng nói 3

1.2 Xử lý tiếng nói 4

1.3 Nhận dạng tiếng nói 4

1.3.1 Lịch sử của nhận dạng tiếng nói 4

1.3.2 Tình hình phát triển nhận dạng tiếng nói 4

1.3.3 Nhập dạng tiếng nó tự động ASR 5

Chương 2: Xử lý tín hiệu tiếng nói 6

2.1 Biểu diễn tín hiệu tiếng nói 6

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

2.2.1 Tổng quan về MFCC 9

2.2.2 Pre-emphasis 9

2.2.3 Cửa sổ hóa 10

2.2.4 Biến đổi DFT 11

2.2.5 Mel filterbank log 11

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

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

3.1 Markov chain 13

3.2 Hidden Markov Model 14

3.3 Thuật toán Forward và Backward 15

3.4 Thuật toán Viterbi 18

3.5 Thuật toán Baum Welch 19

Chương 4: Áp dụng mô hình markov ẩn trong nhận dạng tiếng nói 20

4.1 Mô hình ngôn ngữ N-gram 20

4.2 Quá trình nhận dạng 21

4.3 Áp dụng mô hình markov ẩn 23

Chương 5: Ứng dụng nhận dạng số một người nói 24

5.1 Cài đặt pocketShinx 24

5.2 Xây dựng mô hình ngôn ngữ 25

5.2.1 Xây dựng bộ từ điển 25

5.2.2 Xây dựng mô hình ngôn ngữ 25

5.3 Xây dựng mô hình âm học 27

5.3.1 Chuẩn bị các folder và tập tin 27

5.3.2 Xây dựng mô hình âm học 30

5.4 Xây dựng ứng dụng demo tên Funny 34

5.4.1 Lập trình cho ứng dụng 34

5.4.2 Cài đặt và chạy ứng dụng 41

Danh mục hình ảnh 43

Tài liệu tham khảo 44

Trang 3

Chương 1: Tổng quan về nhận dạng tiếng nói

1.1 Cách tạo thành tiếng nói

Tiếng nói là là song âm la truyền trong môi trường nhất định mang thông tin con người muốn truyền đạt

Sơ đồ bộ máy phát âm của con người:

Hình 1: Bộ máy tạo tiếng nói

Vocal folds : Dây thanh

Mouth cavity : tuyến âm (miệng) tạo ra các tấn số formant

Nasal cavity: (mũi) như hộp cộng hưởng kết hợp với miệng tạo ra các tần số

antiformant

Không khí đi từ phổi đến thanh quản sau đó ra ngoài bằng mũi hoặc miệng trong quá trình di chuyển dưới sự tác động của bộ máy tạo tiếng của con người nên tạo ra các sóng âm

Âm thanh con người phát ra có hai loại

- Âm hữu thanh: âm phát ra khi khí đi qua thanh môn kết hợp với dây thanh căng tạo dao động

- Âm vô thanh: khi dây thanh môn không giao động hoặc giao động nhỏ

Mô hình tạo tiếng nói fant

Trang 4

+) Với : G(z): bộ phận nguồn tạo tiếng nói (Pharynx, soft plate,Larynx ) V(z): tuyến âm (Miệng)

R(z): Tán xạ môi trường truyền

Mô hình toàn điểm cực AR: T(z)=G(z)*V(z)*R(z) = α/A(z)

Các phần của xử lý tiếng nói:

+ Nhận dạng tiếng nói (speech recognition): mục đích phân tích và xử lý tiếng nói dưới dạng tín hiệu chuyển nội dung thành đầu vào máy tính một cách có ngữ nghĩa

+ Nhận dạng người nói (speaker recognition)

+Tăng chất lượng tiếng nói

+ Mã hóa tiếng nói: mã hóa dữ liệu tiếng nói (sau khi tiếng nói đã được lấy mẫu và lượng tử hóa) giúp truyền tiếng nói trong quá trình truyền tin ( để nén

dữ liệu, chống nhiễu, sửa sai…)

+ Tổng hợp tiếng nói: tạo ra tiếng nói một cách nhân tạo

+ Phân tích giọng nói

+ Định vị nguồn âm

1.3 Nhận dạng tiếng nói

1.3.1 Lịch sử của nhận dạng tiếng nói

Lịch sử của nhận dạng tiếng nói đã trải qua năm thế hệ:

Thế hệ 1: Bắt đầu từ năm 30-50 thế kỷ trước sử dụng phương thức ad hoc (trong

mạng máy tính????) nhận dạng âm, bộ từ với số lượng nhỏ

Thế hệ 2: năm 50-60 sử dụng phương thức acoustic-phonetic để nhận dạng âm vị

(phonemes) , âm tiết, từ vựng, số

Thế hệ 3: từ năm 60-80 sử dụng phương pháp nhận dạng mẫu để nhận dạng ,

lượng tử hóa các vecter (thương theo 8bit, 16bit) để giảm dung lượng nhận dạng các bộ từ vựng vừa và nhỏ

Thế hệ 4: từ những năm 80- 2000: sử dụng phương pháp thống kê với mô hình

markov ẩn (hidden markov model) mô phỏng tính chất thống kê của tín hiệu tiếng nói, và một số phương pháp khác …

Thế hệ 5: hiện nay đang phát triển sử dụng các giải pháp xử lý song song để tang

độ tin cậy, kết hợp các phương pháp acousticphonetic và HMM để phát hiện, sửa chữa ngoại lệ ngôn ngữ

1.3.2 Tình hình phát triển nhận dạng tiếng nói

Các phương thức được sử dụng phổ biến:

Hidden markov model:

Dynamic time warping

Trang 5

Trong quân sự

Trong y tê: kiểm tra tổn thương thanh quản…

Trong công nghệ thông tin: trợ lý ảo …

Trong giáo dục: giúp xây dựng phần mềm học ngôn ngữ

1.3.3 Nhập dạng tiếng nó tự động ASR

Giao tiếp ngôn ngữ nói giữa người và máy:

Hình 2: Mô hình giao tiếp tiếng nói người và máy

Tiếng nói của con người được đưa vào máy thông qua quá trình nhận

dạng(recognition) và chuyển thành các đoạn văn bản, từ những đoạn văn bản máy học cách hiểu nghĩa và tạo thành tiếng nói từ văn bản đó thông qua quá trình tổng hợp tiếng nói (synthesis)

Kiến trúc của nhận dạng tiếng nói tự động automatic speech recognition

Hình 3: Kiến trúc ASR

ARS chuyển đổi từ tín hiệu tiếng nói thành từ hoặc câu có nghĩa

- Hệ thống nhận dạng tiếng nói liên tục chia tiếng nói liên tục thành các lớp nhận dạng với mục đích ghi chép

Trang 6

 Lớp ghi chép có mục tiêu nhận dạng từ

 Lớp hiểu có mục tiêu hiểu nghĩa các câu

- Quá trình hoạt động của ARS

 Quá trình nhận dạng : các vector đặc trưng được đem ra so sánh với các mẫu tham khảo sau đó hệ thống tính toán độ tương đồng (dùng likelihood) của các vector đặc trưng với mẫu tham khảo.(thuật toán Viterbi) vector nào có độ tương đồng cao nhất chính là vector kết quả nhận dạng (vector này thường là đặc trưng của một phone)

 Quá trình huấn luyện: xây dựng các vector đặc trưng sau đó sử dụng các vector đó là tham số đầu vào để thực hiện nhận dạng các vector đặc trưng được đưa vào hệ thống để ước lượng tham số của mẫu tham khảo, mẫu tham khảo mô phỏng một từ đơn âm hoặc 1 đơn vị tiếng nói (phonetic)

- Phương pháp để trích trọn đặc trưng phổ biến là mạch lọc mel kết hợp với biến đổi phổ mel sang miền cepstral (MFFC)

Chương 2: Xử lý tín hiệu tiếng nói

2.1 Biểu diễn tín hiệu tiếng nói

Tín hiệu tiếng nói trong miền thời gian liên tục rất khó để máy tính và các thiết

bị điện tử có thể sử dụng vậy nên ta phải rời rạc hóa nó bằng cách lấy mẫu và

lượng tử hóa nó lúc đó máy tính mới có thể xử lý được Nhưng để khảo sát trong miền thời gian việc kháo sát và xử lý là rất khó khan do đó phải sử dụng them khách miền khác Ta sẽ xem sé việc chuyển đổi sang hai miền là miền tần số và miến cepstral

Biến đổi sang miền tần số:

Discrete time fourier transform

Trang 7

Với x[n] tín hiệu vào, y[n] tín hiệu ra, w[n] hàm cửa số, h[n] thường là đáp ứng xung của hệ thống ( nếu xét các biến trên trong một hệ thống cụ thể)

Biến đổi fourier trong khoảng thời gian hữu hạn:

Nếu ta có n cố định thì:

Hai biểu thức trên có ý nghĩa chỉ khi Xn(e^jw) là biến đổi fourier của tín hiệu liên tục bên ngoài cửa sổ w[n] hoặc = 0

Có các loại cửa số là: chữ nhật,hanning, hamming, tam giác…

Discrete of fourier transform

Do biến đổi discrete time fourier transform là biến đổi từ tín hiệu vô hạn nhưng trong thực tế tín hiệu là hữu hạn nên ta phải dùng đến phép biến đổi DFT

Tín hiệu vào x[n] rời rạc hữu hạn

Trang 8

Với M>=N và những điểm lớn hơn N đều là không ta được tín hiệu trong miền tần số X[k]

Biến đổi sang miền cepstral

Mục đích nghiên cứu phép nhân chập ( giúp tìm formant ) tìm các đặc tính của tín hiệu tiếng nói tạo ra

Ta có x1*x2= X1.X2=X(z) trong miền Z

Lấy logarithm của X(z) ta được

Ký hiệu các X1,X2,x1,x2 tương tự X(z) mũ phía trên

Nếu X ˆ (z) là giá trị duy nhất hợp lệ của biến đổi z thì

ta có:

Chuyển trang biến đổi fourier z=e^-jw

Suy ra

Biến đổi fourier ngược ta được:

C[n] chính là biến đổi cepstrum

Với trường hợp biến đổi fourier là DFT ta thấy:

Ứng dụng vào trong tín hiệu tiếng nói

Mô hình tín hiệu tiếng nói:

Âm hữu thanh:

Âm vô thanh:

Trang 9

Từ mô hình ta phân tích phép nhân chập bằng cách nhân cepstrum với một cửa sổ phù hợp:

Với e D∗ là đặc trưng của hệ thống chuyển đổi sang phép nhân chập

Hệ thống nhận dạng tiếng nói sử dụng cách biểu diễn tín hiệu như một tập các hệ số cepstral

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

2.2.1 Tổng quan về MFCC

Hình 4: Tính 39 MFCC từ tín hiệu vào

Tín hiệu tiếng nói dạng sóng âm được xử lý chuyển thành tín hiệu điện tương

tự, tín hiệu này được chuyển sang dạng tín hiệu số qua hai bước lấy mẫu và lượng

tử hóa (quá trình lấy mẫu phải thỏa mãn tiêu chuẩn Nyquist) rồi sau đó được đưa vào hệ thống nhận dạng tiếng nói

Trong hệ thống nhận dạng tín hiệu tiếng nói sẽ được phân tích thông qua quá trình trích chọn đặc trưng để lấy ra các đặc trưng của tiếng nói đưa vào hệ thống nhận dạng Ở đây chúng ta sử dụng phương pháp trích chọn đặc trưng MFCC gồm có các công đoạn được biểu diễn trên hình

Đầu ra của MFCC là 39 đặc trưng, 12 hệ số ceptral (hệ số MFCC),12 deltas ceptral,

12 deltas deltas cepstral, 1 energy, 1 delta energy, 1 delta delta energy

2.2.2 Pre-emphasis

Do cấu trúc đặc biệt của môi trường thanh quản nên mức năng lượng (cường

độ sóng) ở tần số cao suy giảm hơn so với tần số thấp mà ở tần số cao thông tin về Formant có nhiều giá trị cho acoustic model làm tăng độ chính xác của nhận dạng phone do đó ta cần làm tăng energy của tín hiệu ở tần số cao, quá trình này được gọi là preemphasis

Pre-emphasis sử dụng một bộ lọc nhận tín hiệu ở đầu vào và đầu ra là tín hiệu mong muốn :

Đầu vào: x[n]

Đầu ra: y[n] = x[n] + αx[n-1] với 0,9≤α≤1

H(z) = 1 – αz^-1

Trang 10

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 toàn bộ đoạn tín hiệu chúng ta sẽ trích thành T frame Đặc trưc của quá 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

w[n] = {0,54 − 0,46 cos (2𝜋𝑛𝑁 ) ; 0 ≤ 𝑛 ≤ 𝑁 − 1

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

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ổ

Trang 11

2.2.4 Biến đổi DFT

Công thức tính DFT

X[k] = ∑𝑁−1𝑥[𝑛]𝑒−𝑗2𝜋𝑘𝑛/𝑁

𝑛=0X[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

Trang 12

đượ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)

Trang 13

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:

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

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 ∑𝑁 𝑛^2𝑛=1Thườ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à:

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

- 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

Trang 14

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:

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ụ:

Trang 15

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 toán huấn luyện mô hình Bài toá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 toá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, π}

Trang 16

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: Quá trình thực hiện giải thuật Forward

Trang 17

𝛼𝑡−1(𝑖) is previous forward path probability

aij là xác xuất chuyển trạn thái từ Si sang Sj

bj(ot) là xác suất quan sát được ot tại trạng thái Sj

GIẢI THUẬT BACKWARD

Gọi βt(i) là xác suất mà tại trạng thái Si thời điểm t quan sát được chuỗi trạng thái O(ot+1,…,oT)

Ta có: βt(i) = P(ot+1ot+2 oT |qt = si, λ)

Thủ tục Backward:

Khởi tạo: βT (i)=1, 1 ≤ i ≤ N

Quy nạp: βt (i) = ∑𝑁 β𝑡+1(j) aij]bj (𝑜𝑡+1)

𝑗=1 với t=T-1,T-2,…,1 và 1<=i<=N Minh họa:

Hình 11: Quá trình thực hiện giải thuật Backward

Trang 18

3.4 Thuật toán Viterbi

Yêu cầu: Tìm ra chuỗi trạng thái tối ưu nhất Q={q1,…,qT} đã phát sinh ra

O

Việc tìm ra Q này được gọi là quá trình decoding

Để tìm ra Q tối ưu nhất ta cần có một tiêu chí nào đó và sau đây sẽ xem xét hai tiêu chí để xem ta nên chọn tiêu chí nào trong hai tiêu chí này:

- Tiêu chí 1: tại thời điểm t chọn ra qt có độ khả thi cao nhất thông qua xác suất: P(qt=Si|O,λ)

Đặt (𝑖) = P(𝑞𝑡 = 𝑆𝑖 |𝑂, 𝜆) => ∑𝑁 γt(i) = 1

𝑖=1 với mọi t Suy ra: (𝑖) = 𝛼(𝑖)𝛽(𝑖)𝑃(𝑂|𝜆) trạng thái tối ưu nhất tại thời điểm t là

Tức là qt =i với 1<=i<=N sao cho (𝑖) đạt cực đại Từ đó tìm ra qt và Q

Tuy nhiên: đôi khi Q không tồn tại vì có thể có xác xuất chuyển trạn thái bằng 0

do đó ta sẽ xem sét tiêu chí tiếp theo (Được sử dụng chủ yếu)

- Tiêu chí 2: tìm ra chuỗi Q sao cho P(Q,O|λ) đạt cực đại

Giải pháp là thuật toán viterbi sau đây

Thuật toán Viterbi

Xem ví dụ:

Hình 12: Quá trình hoạt động thuật toán Viterbi

Ví dụ trên ta thấy cách tính của biến vt(j) biến này sẽ được ký hiệu lại là 𝜎t(j)

Biến 𝜎t(j) là xác suất cao nhất của chuỗi trạng thái trên đường dẫn đến trạng thái Sj

ở thời điểm t và đã quan sát được o1,…,ot với mô hình λ cho trước

Ta có:

Trang 19

𝛿𝑡(𝑖) = max

𝑞1,𝑞2,…,𝑞𝑡𝑃(𝑞1, 𝑞2, … , 𝑞𝑡 = 𝑆𝑖, 𝑂1𝑂2… 𝑂𝑡|𝜆) Hay :

𝛿𝑡(𝑖) = max

1≤𝑖≤𝑁 𝛿𝑡−1(𝑖) ∗ 𝑎𝑖𝑗 ∗ 𝑏𝑗(𝑜𝑡)

Để lưu lại chuỗi trạng thái ta dữ lại vết của đường dẫn tốt nhất tại thời điểm t trạng thái Si thông qua mảng 𝜓𝑡(𝑖) là mảng 2 chiều T quan sát và chiều còn lại là N trạng thái Mảng 𝜓𝑡(𝑗) chưa các biến 1<=i<=N là vết cần lưu

Thủ Tục viterbi

Khởi tạo:

𝛿𝑡(𝑖) = 𝜋𝑖𝑏𝑖(𝑂1), 1 ≤ 𝑖 ≤ 𝑁

𝜓1(𝑖) = 0 Lặp:

𝛿𝑡(𝑗) = max

1≤𝑖≤𝑁[𝛿𝑡−1(𝑖)𝑎𝑖𝑗]𝑏𝑗(𝑂𝑡), 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁

𝜓𝑡(𝑗) = 𝑎𝑟𝑔 max

1≤𝑖≤𝑁[𝛿𝑡−1(𝑖)𝑎𝑖𝑗], 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁 Tức là với 𝜓𝑡(𝑗) = i với 1<=i<=N sao cho 𝛿𝑡−1(𝑖)𝑎𝑖𝑗 max

Kết thúc:

𝑝∗ = max1≤𝑖≤𝑁[𝛿𝑇(𝑖)]

𝑞𝑡∗ = 𝑎𝑟𝑔 max

1≤𝑖≤𝑁[𝛿𝑇(𝑖)]

Tức là 𝑞𝑡∗=i sao cho 𝛿𝑇(𝑖) max

Tìm chuỗi Q bằng cách quay lui:

𝑞𝑡∗= 𝜓𝑡+1(𝑞𝑡+1∗ ), 𝑡 = 𝑇 − 1, 𝑇 − 2, … , 1 Với 𝜓…(… ) là mảng 2 chiều T quan sát N trạng thái và 𝜓𝑡+1(𝑞𝑡+1∗ ) là giá trị một ô trong mảng

Sau khi quay lui ta được chuỗi 𝑄 = 𝑞1∗𝑞2∗… 𝑞𝑇∗ là chuỗi cần tìm

3.5 Thuật toán Baum Welch

Bài toán cho một chuỗi quan sát O tìm hoặc cật nhật lại tham số của mô hình λ(A,B,π) sao cho P (O|λ) cực đại ta được bộ tham số mới 𝜆̅ = (𝐴̅, 𝐵̅, 𝜋̅)

Ta có: P (O|𝝀̅) > P (O|λ) trong mọi trường hợp trừ khi λ đã đạt đến tối ưu cục

bộ

Để giải quyết bài toán trên ta dùng thuật toán Baum Welch

Tính toán:

Ta có 𝑎̅𝑖𝑗 = kỳ vọng việc chuyển trạng thái từ Si sang Sjkỳ vọng việc chuyển trạng thái từ Si

Để tính được tử số ta định nghĩa biến: 𝜉𝑡(𝑖, 𝑗) là xác suất mà hệ ở trạng thái Si thời điểm t và ở thời điểm t+1 hệ phải ở trạng thái Sj

𝜉𝑡(𝑖, 𝑗) = 𝑃(𝑞𝑡 = 𝑆𝑖, 𝑞𝑡+1= 𝑆𝑗|𝑂, 𝜆)

Để tính được 𝜉𝑡(𝑖, 𝑗) ta xem xét một biến khác đó là

Not-quite𝜉𝑡(𝑖, 𝑗) = 𝑃(𝑞𝑡 = 𝑆𝑖, 𝑞𝑡+1= 𝑆𝑗, 𝑂|𝜆) Biến này khác 𝜉𝑡(𝑖, 𝑗) ở đ𝑖ề𝑢 𝑘𝑖ệ𝑛 𝑂

Ta có: Not-quite𝜉𝑡(𝑖, 𝑗) = αt(i)ai jb j(ot+1)βt+1( j)

Mà P(X|Y, Z) =𝑃(𝑋,𝑌|𝑍)𝑃(𝑌|𝑍)

Suy ra: 𝜉𝑡(𝑖, 𝑗) = Not−quite𝜉𝑡 (𝑖,𝑗)

𝑃(𝑂|𝜆) Và 𝑃(𝑂|𝜆) = α𝑇(𝑁) = β𝑇(1) = ∑𝑁𝑗=1𝛼(𝑗)

Trang 20

𝜉𝑡(𝑖, 𝑗) = 𝛼𝑡(𝑖)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)𝛽𝑡+1(𝑗)

𝛼𝑡(𝑖)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)𝛽𝑡+1(𝑗)

∑𝑁 αT(k)𝑘=1

𝑏̅𝑗(𝑘) =Kỳ vọng số lần trong trạng thái Sj quan sát được vk

Kỳ vọng số lần trong trạng thái SjSuy ra:

𝑏̅𝑗(𝑘) =

∑𝑇𝑡=1 𝛾𝑡(𝑗)

.𝑂𝑡= 𝑣𝑘

∑𝑇𝑡=1 𝛾𝑡(𝑗)

(Chú ý ở tử số thì tính với tất cả t sao cho tại thời điểm t quan sát được vk)

Từ các công thức trên ta đã đính được bộ tham số mới của mô hình 𝜆̅

Chương 4: Áp dụng mô hình markov ẩn trong nhận dạng tiếng nói

4.1 Mô hình ngôn ngữ N-gram

Mô hình N-gram là một mô hình xác xuất

Cách cơ bản để tính xác xuất là đếm Ta xem xét trong một ngôn ngữ tự nhiên cơ bản được biểu thị bằng corpus

Xác xuất 1 từ trong corpus được tính bằng cách đếm số từ đó/ tống số từ trong corpus

Ta xem xét một lý thuyết tính xác xuất cơ bản

Trang 21

Mục đích là tính xác xuất của một từ w dựa trên các từ đã xuất hiện trước đó h ví dụ

h=”water is so transparent that” tính xác xuất từ tiếp theo là “the” :

P(the/h) = C(is water so transparent that the)/ C(is water so transparent that)

Mô hình bigram tính xác xuất của từ dựa trên từ phía trước nó:

Suy ra với mô hình N gram ta tính xác xuất dựa trên N từ phía trước nó:

Hay

Công thức tính của N gram

Từ mô hình N-gram ta có thể tính được xác xuất xuất hiện từ n theo N từ xuất hiện trước đó, do đó ta có thể dùng mô hình N-gram để tìm ra một chuỗi từ các tự vựng nhận dạng được

4.2 Quá trình nhận dạng

Với mỗi acoustic đầu vào O ta có thể biểu diễn chúng như một chuỗi các quan sát tại các thời điểm khác nhau (mỗi 10 giây và được biểu diễn bởi các giá trị của energy, frequency…) Mỗi chỉ số của chuỗi biểu diễn một thời điểm

Đầu vào

O=o1,o2,…,ot Đầu ra

Trang 22

W=w1,w2,…,wn

W là chuỗi string của các từ

Để tìm được W ta sử dụng công thức sau:

Áp dung công thức bayes suy ra:

Chúng ta có thể bỏ qua P(O)

Suy ra

Trong đó: P(W) là the prior probability được tính bởi language model

Và P(O|W) là the opservation likelihood được tính bởi acoustic model

The Language model sử dụng mô hình N-gram để tính P(w) (dưới là công thức

1-gram ta xem chi tiết ở phần trên): P(W) = P(𝑤1𝑛)

The Acoustic model được dùng để tính P(O|W)

Đôi chút về chuỗi O: là một chuỗi quan sát được lấy ra từ quá trình lấy acoustic waveform mỗi thời điểm lấy mẫu cách nhau 10,15, 20…ms cho ta một quan sát (mỗi quan sát là một vector đặc tính)

Minh họa Architecture for speech reconition:

Hình 13: Kiến trúc mô hình nhận dạng

Quá trình nhận dạng tiếng nói được chia thành ba giai tầng chính

Ngày đăng: 19/03/2018, 23:04

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w