CHƯƠNG 1: TỔNG QUAN VỀ HMM Mô hình Markov ẩn tiếng Anh là Hidden Markov Model - HMM là mô hìnhthống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov vớicác tham số
Trang 1KHOA SAU ĐẠI HỌC
TIỂU LUẬN
XỬ LÝ TÍN HIỆU SỐ
ĐỀ TÀI: ỨNG DỤNG CHUỖI MARKOV ẨN TRONG NHẬN DẠNG TIẾNG
NÓI
Giáo viên hướng dẫn: TS HOÀNG TRỌNG MINH
Hà Nội, tháng 03 năm 2020
Trang 2MỤC LỤC
DANH MỤC BẢNG BIỂU 4
DANH MỤC HÌNH VẼ 5
LỜI MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ MPEG-4 7
1.1 Khái niệm và đặc điểm của MPEG-4 7
1.2 Ưu điểm và nhược điểm của công nghệ MPEG-4 8
1.2.1 Ưu điểm 8
1.2.2 Nhược điểm 13
CHƯƠNG 2: CÔNG NGHỆ MÃ HOÁ VIDEO TRONG MPEG-4 14
2.1 Các bộ phận chức năng chính trong các thiết bị MPEG-4 15
2.2 Mã hoá hình dạng ngoài (Shape Coder) 17
2.3 Dự đoán và tổng hợp động 18
2.3.1 Ước lượng chuyển động 18
2.3.2 Kỹ thuật đệm 19
2.4 Giải mã MPEG-4 VOP 20
CHƯƠNG 3: CHUẨN NÉN MPEG – AVC 23
3.1 Cơ chế nén ảnh của MPEG-4 AVC (H.264) 23
3.1.1 Giảm bớt độ dư thừa 24
3.1.2 Nén theo miền thời gian 24
3.1.3 Nén theo miền không gian 25
3.2.2 Ưu điểm của nén thời gian 26
3.2.3 Kích cỡ khối 26
3.2.4 Ưu điểm về lượng tử hoá và biến đổi 28
3.2.5 Ưu điểm đối với mã hoá entropy 29
3.2.6 Một ví dụ về ưu thế của MPEG-4 so với MPEG-2 29
3.3 Kết luận 30
CHƯƠNG 4: ỨNG DỤNG CỦA MPEG-4 31
KẾT LUẬN 33
Trang 3DANH MỤC THUẬT NGỮ VIẾT TẮT
Thuật ngữ tiếng Anh Thuật ngữ Tiếng Việt Định nghĩa
Trang 4DANH MỤC BẢNG BIỂU
Bảng 3.1 biểu diễn mức tiết kiệm tốc độ bit của MPEG-4 AVC so với một số chuẩn hiện có khác 29
Trang 5DANH MỤC HÌNH VẼ
Hình 1.1: Công cụ nén mới của MPEG-4 so với MPEG-2 10
Hình 1.2: MPEG4 có thể dự đoán các tham số trên 1 hàng, hay các thông số của cột bên trái từ một khối đầu tiên 10
Hình 1.3.a : Đầu vào của bộ mã hóa MPEG-2 là một ảnh hoàn chỉnh được lặp lại theo tần số ảnh (frame rate) 11
Hình 1.3.b : Bộ mã hóa MPEG-4 có thể xử lý các lệnh đồ họa một cách trực tiếp , do đó công cụ biểu diễn hình ảnh thực sự nằm trong bộ giải mã MPEG-4 11
Hình 1.4: MPEG4 đã chuẩn hóa phương pháp truyền các đối tượng 3 chiều nhờ các đối tượng lưới 12
Hình 2.1 Cấu trúc của bộ mã hoá và giải mã video MPEG-4 15
Hình 2.2 Sơ đồ cấu trúc giải mã video MPEG-4 16
Hình 2.3 sơ đồ thuật toán nén ảnh (a) 17
Hình 2.4 sơ đồ thuật toán nén ảnh (b) 18
Hình 2.5 Cấu trúc mã hóa một VOP 18
Hình 2.6 : Cấu trúc giải mã VOP 20
Hình 2.7 : Chất lượng đạt được của mã hóa video MPEG-4 cở sở khi mã hóa các Suzie chuỗi ở 3 tốc độ bit khác nhau 21
Hình 2.8 Chất lượng đạt được của cả hai H.263 và MPEG-4 tại tốc độ 128 kbit/s 22
(a )baseline MPEG-4 (b) H263 22
Hình 3.1 Sơ đồ khối mã hoá MPEG, đường đứt nét đặc trưng cho phần bổ sung của MPEG-4 AVC trong việc nén theo miền không gian 25
Hình 3.2 MPEG-4 AVC có thể phân chia thành phần chói của từng 27
Hình 3.3 So sánh chất lượng và tốc độ giữa MPEG-4 và MPEG-2 29
Hình 4.1 MPEG-4 và một số giao thức cơ bản trong truyền thông Multimedia trên Internet 31
Trang 6LỜI MỞ ĐẦU
Ngay khi máy tính ra đời con người đã mơ ước máy tính có thể nói chuyện vớimình Yêu cầu đơn giản nhất là máy có thể xác định được từ ngữ mà chúng ta nói vớimáy Đó là mục tiêu của ngành nhận dạng tiếng nói
Nhận dạng tiếng nói đóng vai trò quan trọng trong giao tiếp giữa người và máy
Nó giúp máy móc hiểu và thực hiện các hiệu lệnh của con người Hiện nay trên thếgiới, lĩnh vực nhận dạng tiếng nói đã đạt được nhiều tiến bộ vượt bậc Đã có nhiềucông trình nghiên cứu về lĩnh vực nhận dạng tiếng nói (Speech recognition) trên cơ sở
lý thuyết các hệ thống thông minh nhân tạo, nhiều kết quả đã trở thành sản phẩmthương mại như ViaVoice, Dragon , các hệ thống bảo mật thông qua nhận dạng tiếngnói, các hệ quay số điện thoại bằng giọng nói Triển khai những công trình nghiên cứu
và đưa vào thực tế ứng dụng vấn đề này là một việc làm hết sức có ý nghĩa đặc biệttrong giai đoạn công nghiệp hoá hiện đại hoá hiện nay của nước nhà
Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là phân lớp(classify) thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần tự các mẫu đã đượchọc trước đó và lưu trữ trong bộ nhớ Các mẫu là các đơn vị nhận dạng, chúng có thể làcác từ, hoặc các âm vị Nếu các mẫu này là bất biến và không thay đổi thì công việcnhận dạng tiếng nói trở nên đơn giản bằng cách so sánh dữ liệu tiếng nói cần nhận dạngvới các mẫu đã được học và lưu trữ trong bộ nhớ Khó khăn cơ bản của nhận dạng tiếngnói đó là tiếng nói luôn biến đổi theo thời gian và có sự khác biệt lớn giữa tiếng nói củanhững người nói khác nhau, tốc độ nói, ngữ cảnh và môi trường âm học khác nhau.Xác định những thông tin biến thiên nào của tiếng nói là có ích và những thông tin nào
là không có ích đối với nhận dạng tiếng nói là rất quan trọng Đây là một ứng dụng phổbiến trong các thiết bị công nghệ hiện nay Bài tiểu luận gồm 3 chương chính:
Chương 1: Tổng quan về HMM
Chương 2: Tiền xử lý tín hiệu tiếng nói
Chương 3: Mô hình nhận dạng tiếng nói sử dụng HMM
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ HMM
Mô hình Markov ẩn (tiếng Anh là Hidden Markov Model - HMM) là mô hìnhthống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov vớicác tham số không biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham sốquan sát được, dựa trên sự thừa nhận này Các tham số của mô hình được rút ra sau đó
có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng thừa nhậnmẫu
Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi ngườiquan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất Mô hìnhMarkov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiệnđầu ra có thể Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM khôngtrực tiếp chỉ ra dãy các trạng thái Mô hình Markov ẩn (tiếng Anh là Hidden MarkovModel - HMM) là mô hình thống kê trong đó hệ thống được mô hình hóa được cho làmột quá trình Markov với các tham số không biết trước và nhiệm vụ là xác định cáctham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này Các tham số của
mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ chocác ứng dụng thừa nhận mẫu
Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi ngườiquan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất Mô hìnhMarkov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiệnđầu ra có thể Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trựctiếp chỉ ra dãy các trạng thái
Trong mục này các nội dung cơ bản của mô hình HMM sẽ được giới thiệu baogồm: các định nghĩa, các tập hợp tham số, các vấn đề thiết yếu, các thuật toán chính của
mô hình HMM áp dụng vào nhận dạng tiếng nói Tiếp đó các thành phần chính của hệthống nhận dạng, các công đoạn chính của nhận dạng dựa vào mô hình HMM cũng sẽđược giới thiệu sơ qua
1.1 Nhắc lại về quá trình Markov
Trong lí thuyết xác suất, quá trình Markov là một quá trình mang tính ngẫu nhiên (stochastic process) với đặc tính như sau: trạng thái c k tại thời điểm k là một giá trị trong tập hữu hạn {1,…,M} Với giả thiết rằng quá trình chỉ diễn ra từ thời điểm 0 đến thời điểm N và rằng trạng thái đầu tiên và trạng thái cuối cùng đã biết, chuỗi trạng thái sẽ được biểu diễn bởi 1 vecto hữu hạn C={c 0 ,…,c N } Nếu P(c k |
Trang 8c 0 ,c 1 , ,c (k − 1) ) biểu diễn xác suất (khả năng xảy ra) của trạng thái c k tại thời điểm k khi
đã qua mọi trạng thái cho đến (k-1) Giả sử trong thời điểm đó c k chỉ phụ thuộc vào trạng thái trước đó c k-1 và độc lập với các trạng thái trước khác Quá trình đó gọi là quá trình Markov bậc một(first order Markov process) Có nghĩa là xác suất để xảy ra trạng thái c k tại thời điểm k, khi biết trước mọi trạng thái cho đến thời điểm k-1 chỉ phụ thuộc vào trạng thái trước, ví dụ trạng thái ck-1 tại thời điểm k-1 Khi đó ta có công thức:
Trạng thái hữu hạn nghĩa là số m là hữu hạn
Thời gian rời rạc, nghĩa là việc chuyển từ trạng thái này sang trạng thái kháccùng mất một đơn vị thời gian
Quan sát không tốn bộ nhớ, nghĩa là chuỗi các quan sát có xác suất chỉ phụthuộc vào trạng thái ngay trước đó (nên không cần lưu bộ nhớ nhiều)
1.2 Các thông số của mô hình Markov ẩn
Một mô hình Markov ẩn bao gồm các thông số như:
Số trạng thái ‘state’ N có trong mô hình và các trạng thái này là ẩn Cáctrạng thái này sẽ được biểu thị tương ứng với giá trị S=(S1, …., SN) gọi
là tập tất cả các trạng thái ẩn
M, Số symbol trên mỗi dãy quan sát trong một ‘State’ Các symbol này
sẽ được biểu thị tương ứng bởi các giá trị V=(V¬1, …, VM) gọi là tậptất cả các ký hiệu quan sát được
Trang 9 A= [aij] xác suất chuyển trạng Trong trường hợp đặc biệt, khi các trạngthái là như nhau trong một bước đơn, ta có aij > 0 đối với tất cả các giátrị i và j Trong một vài loại hình khác của HMM, ta chi aij = 0 cho mộtvài căp (i,j).
B=[bij] xác suất nhả ký hiệu
p= [pi] xác suất khởi trạng
qt - Trạng thái ở thời điểm t
Ot= (ký hiệu) Quan sát tại thời điểm t
Kĩ thuật mã hóa video nén theo hướng đối tượng MPEG-4 mà hiện nay đang đuợc
sử dụng rất nhiều như 1 công cụ mã hóa với nhiều tính năng ưu việt
1.3 Các chuyển tiếp trạng thái trong mô hình Markov ẩn
Hình 1.1 Ví dụ về mô hình Markov Trong đó:
x – là các trạng thái trong mô hình Markov
a – là các xác suất chuyển
b – là các xác suất đầu ra
Trang 10y – là các dữ liệu quan sát
Ví dụ cụ thể minh hoạ sự chuyển tiếp trạng thái trong mô hình Markov ẩn:
Giả sử tôi có một người bạn sống ở rất xa Hàng ngày chúng tôi gọi điện thoạicho nhau và anh ta kể cho tôi nghe anh ta đã làm gì trong ngày Người bạn tôi chỉ có 3công việc mà anh thích làm là
"Nắng", nhưng tôi không quan sát trực tiếp, do đó, chúng là ẩn đối với tôi Vào mỗingày, anh bạn tôi sẽ làm một trong các việc sau phụ thuộc vào thời tiết hôm đó là "đidạo", "đi chợ" và "dọn phòng" Vì anh bạn tôi đã tường thuật lại hoạt động của mình,
đó là các dữ liệu quan sát Toàn bộ hệ thống này là một mô hình Markov ẩn (HMM).Tôi biết được xu hướng thời tiết nói chung và tôi cũng biết bạn tôi thường thích làm
gì Nói cách khác, các thông số của HMM đã biết Thực tế, chúng ta có thể mô tả điềunày bằng ngôn ngữ lập trình Python:
Trang 11trời mưa Khả_năng_loại_bỏ cho thấy anh bạn thích làm những việc gì mỗi ngày Nếutrời mưa thì có đến 50% khả năng anh bạn này sẽ dọn phòng, trong khi trời nắng thì60% khả năng anh ta sẽ đi dạo.
1.4 Mô hình HMM
Một tiến trình được gọi là quá trình Markov (Markov process) nếu xác suất của một
sự kiện tại một thời điểm bị ràng buộc bởi các sự kiện trong quá khứ xác định Như vậy,
mô hình Markov là một mô hình thống kê thuần túy Trạng thái giúp chúng ta hiểuđược sự biến đổi của sự kiện theo thời gian Biến cố chính trong quá trình Markov là
“đạt trạng thái i tại thời điểm t” Một quá trình Markov được sử dụng trong các hệ thốngnhận dạng tiếng nói tự động (Automatic Speech Recognition - ASR) tuân theo các điềukiện sau:
1 Chỉ tồn tại một thời điểm phân biệt trong chuỗi thời gian t=1, 2, …,T;
2 Chỉ có một số lượng trạng thái xác định {st}= {i}, i=1, 2, …, n;
2 Trạng thái hiện tại và quá khứ chỉ là cách nhau một bước:
Trang 12 Nghĩa của aij là: xác suất chuyển trạng từ trạng thái i tại thời điểm t-1sang trạng thái
j tại thời điểm t Chúng ta gọi ma trận A={aij} là ma trận chuyển trạng thái Đối với
mô hình Markov, khi trạng thái trước được xác định thì xác suất chuyển trạng thái tới trạng thái tiếp theo cũng hoàn toàn xác định
Tập tham số thứ hai:
Để áp dụng HMM vào các sóng âm thanh, một hàm thống kê sẽ được gắn vào cáctrạng thái Đầu tiên sóng âm tiếng nói sẽ được chuyển đổi thành chuỗi các vectơ đặctrưng theo thời gian (sẽ được giới thiệu trong phần trích rút đặc trưng sóng âm) Chuỗicác vectơ đặc trưng này gọi là chuỗi các vectơ quan sát O=o1,o2,…,oT , với ot là vectơđặc trưng cho chuỗi sóng âm tại t Xác suất mà hàm thống kê nói trên chính là xác suấtvectơ đặc trưng ot đạt trạng thái j tại thời điểm t Xác suất này gọi là xác suất quan sáthay xác suất đầu ra và nó đặc trưng cho tập tham số thứ hai của HMM:
Bj (ot)=P(ot|st=j), (t=1,2,…,T; j=1,2,…,n)
Đặt B={bj (ot)}
Bộ ba l = (A, B, p) được coi là ký pháp gọn của một mô hình Markov ẩn A, B
và p được gọi là những tham số (parameters) của mô hình l.
Tổng quát mô hình HMM có thể khởi tạo tại bất kì trạng thái nào Xác xuất môhình HMM khởi tạo tại trạng thái i kí hiệu là πi Tập xác suất π={πi}, gọi là tập xác suấtkhởi tạo mô hình HMM Tuy nhiên trong bài toán nhận dạng tiếng nói hầu hết các môhình HMM đều khởi tạo tại trạng thái đầu tiên nên chúng ta không cần tới tập xác suấtnày
Như vậy ta trong nhận dạng tiếng nói một mô hình HHM λ sẽ được đặc trưng bởitập trạng thái và 2 tập tham số A và B nói trên: λ=(A, B)
Tập hợp các trạng thái và ba tập hợp các tham số xác định một mô hình HMM Nóđặc trưng cho một tiến trình không biết trước thứ tự được mô tả
Trang 13Hình 1.1 Mô hình HMM 5 trạng thái 1.4.2 Ba vấn đề cơ bản của HMM và cách giải quyết
Giả sử cho một HMM λ=(A, B) và chuỗi quan sát O= O1, O2, …, On Tất cả các ứngdụng dựa trên mô hình Markov ẩn sẽ phải giải quyết ba vấn đề [1] sau:
i V ấn đề tính toán : Làm sao để tính được P(O| λ) (xác suất của việc xuất
hiện chuỗi quan sát O trong mô hình HMM) với khối lượng tính toán tối thiểu
ii V ấn đề ước lượng tham số cho HMM : Vấn đề này được đặt ra trong quá
trình huấn luyện Chúng ta sẽ xác định các mô hình λ dựa vào dữ liệu huấn luyện Làmsao xác định được các tham số của mô hình HMM λ=(A, B) sao cho P(O|S,λ) (hoặcP(O,S| λ) ) là lớn nhất
iii V ấn đề giải mã (decoding): Cho một mô hình HMM λ đã được huấn
luyện Làm sao chúng ta tính được chuỗi trạng thái S=s1, s2, … sT tương ứng với chuỗiquan sát O sao cho xác suất P(O,S| λ) (chuỗi trạng thái của chuỗi quan sát O trùng vớichuỗi S) là lớn nhất
1.4.2.1 Giải quyết vấn đề tính toán Thuật toán tính xuôi và tính ngược
Thuật toán tính xuôi (The Forward Algorithm)
Hàm forward αt(i) được định nghĩa như sau:
αt(i) = P(O1, O2, …, Ot,st=i| λ)
ý nghĩa của αt(i) là xác suất kết của việc quan sát t vectơ sóng âm đầu tiên đạt trạngthái i tại thời điểm t
1 a1(i) = pibi(O1), (1 £ i £ N) (N là số trạng thái s)
Trang 14Như vậy chúng ta có thể tính được xác suất:
• Thuật toán tính ngược (The Backward Algorithm):
Hàm backward βt(i) được định nghĩa như sau:
βt(i) = P(Ot+1, Ot+2, …, OT| st=i, λ)
Ý nghĩa của hàm này như sau: nó là xác suất kết của chuỗi vectơ sóng âm thứ i+1đến vectơ sóng âm thứ T với trạng thái i tại vectơ thứ t và mô hình λ Nó khác trườnghợp thuật toán forward là trạng thái tại vectơ đặc trưng thứ t (là trạng thái i) là biếttrước
Chúng ta có thể tính βt (i) đệ qui như sau:
1.4.2.2 Giải quyết vấn đề ước lượng tham số cho mô hình HMM Thuật toán huấn luyện Baum-Welch
Có hai thuật toán để giải quyết vấn đề này: đó là thuật toán phân đoạn K-mean
và thuật toán Baum-Welch
Thuật toán ước lượng tham số Baum-Welch: Ở đây tham số của mô hìnhλ=(A,B) được tính toán nhằm tăng xác suất P(O|λ) cho đến khi nó đạt giá trị cực đại
Trang 15Như đã trình bày ở trên việc tính toán P(O|λ) là tính tổng tất cả các P(O,I|λ) trên tất cảcác chuỗi trạng thái I chứ không phải cho một chuỗi riêng biệt nào.
Phần quan trọng của thuật toán Baum-Welchlà hàm cực đại hoá kỳ vọng(expectation maximization - EM) Thuật toán này được sử dụng để giải quyết tình trạngthông tin không đầy đủ trong dữ liệu huấn luyện (tức không biết được chuỗi trạng thái).Hàm EM thường được sử dụng nhất trong nhận dạng tiếng nói là đó là chuẩn hợp lý cựcđại (maximum likelihood - ML) Giải pháp của giải thuật ML là đưa ra các công thứcnhằm cập nhật các giá trị tham số cũ của HMM Để quá trình huấn luyện đạt được cáctham số tốt thì cần có các tập tham số khởi tạo của HMM tốt, bởi vì Baum-Welch làmột thuật toán chỉ cho kết quả tốt nhất trong cục bộ
Ý tưởng của ML là ước lượng các tham số của HMM λ sao cho xác suất P(O|λ)
là lớn nhất với tập hợp các chuỗi quan sát {O} Một điểm nữa của ML là thuật toánkhông thực hiện tính P(O|λ) trên tất cả các chuỗi quan sát mà chỉ một số chuỗi S có P(λ|S) vượt trội Điều này làm giảm chi phí tính toán rất nhiều nhưng kết quả đạt đượckhông giảm bao nhiêu Trong thực tế để thuận tiện cho tính toán người ta không dùng
độ hợp lý (likelihood) nguyên thủy mà dùng xác suất log_likelihood (lấy logarith củalikelihood)
Trong thực tế để ước lượng các tham số của HMM người ta ít sử dụng thuật toánBaum-Welch nguyên thủy vì chi phi tính toán của nó quá lớn Thay vào đó thuật toánBaum-Welch được tính dựa vào thuật toán Forward và Backward Vì vậy chúng tathường hay nhầm thuật toán Baum-Welch với thuật toán Forward- Backward
1.4.2.3 Giải quyết vấn đề decoding Thuật toán Viterbi
Thuật toán này tìm ra chuỗi S=s1,s2, …, sT sao cho sự xuất hiện chuỗi vectơ đặctrưng O=O1, O2, …, OT trong chuỗi trạng thái I là lớn nhất Có nghĩa là chúng ta phảitìm chuỗi trạng thái S sao cho P(O,S| λ) là lớn nhất Đây là một thuật toán qui nạp và nóđược sử dụng trong quá trình nhận dạng sau khi quá quá trình huấn luyện đã tìm rađược các mô hình HMM Thuật toán Viterbi tránh được tìm kiếm trên không gian trạngthái lớn của mô hình HMM nên giảm thiểu được chi phí tính toán
P(O| λ)=P(O|S, λ)P(S| λ) = bS1(O1) aS1S2 bS2(O2)… aST-1 S T bST(OT)
Thuật toán Viterbi có thể được mô tả như sau:
Giả sử chúng ta đang ở vectơ đặc trưng thứ t trong chuỗi vectơ đặc trưng và đang ởtrạng thái i trong mô hình HMM, chúng ta muốn chuyển qua trạng thái j trong mô hìnhHMM Chi phí để chuyển từ trạng thái i sang trạng thái j là trọng số - ln(aijbj(Ot)) (vớiaijbj(Ot) là xác suất chuyển từ trạng thái i sang trạng thái j tại thời điểm t và vectơ đặctrưng Ot đạt trạng thái j) với Ot là vectơ đặc trưng được chọn trong chuỗi O=O1, O2,