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

Nghiên cứu phát triển công nghệ nhận dạng, tổng hợp và xử lý ngôn ngữ tiếng việt tổng hợp và nhận dạng tiếng việt

359 753 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 359
Dung lượng 4,79 MB

Nội dung

Các phương pháp trích chọn đặc tính Phần này sẽ giới thiệu hai phương pháp được sử dụng rộng rãi trong các hệ thống nhận dạng hiện tại để tính toán các hệ số MFCC Mel Scale Frequency Ce

Trang 1

thuộc đề tài cấp nhà nước

“nghiên cứu phát triển côngnghệ nhận dạng, tổng hợp

Trang 2

MỤC LỤC

1 PHƯƠNG PHÁP PHÂN TÍCH TIẾNG NÓI THEO CÁC ĐẶC TRƯNG 1

1.1 Các phương pháp trích chọn đặc tính 1

1.1.1 Phương pháp tính hệ số MFCC 1

1.1.2 Phương pháp tính hệ số PLP 4

1.1.3 Các kĩ thuật khử nhiễu 6

1.2 Các đơn vị xử lý tiếng nói 7

1.2.1 Tần số lấy mẫu 7

1.2.2 Nhiễu 7

1.2.3 Tần số cơ bản 8

1.2.4 Formant 8

1.3 Định dạng âm thanh 9

1.4 Thu tín hiệu âm thanh trong thời gian thực 11

1.5 Xác định giá trị hằng – ngưỡng theo môi trường tín hiệu 12

1.5.1 Thông số ngưỡng zero 12

1.5.2 Thông số độ ồn nhiễu 13

1.6 Lọc nhiễu 13

1.7 Xác định dãy tín hiệu số có chứa dữ liệu tiếng nói và xác định các điểm đầu - cuối của tiếng nói 14

1.8 Chuẩn hoá biên độ 15

1.8.1 Biến đổi FFT 16

1.8.2 Làm rõ tín hiệu và cửa sổ hoá 19

1.8.3 Định lý lấy mẫu 20

1.8.4 Phổ dẹt của tiếng nói 20

1.8.5 Biểu diễn tiếng nói theo mô hình LPC và các hệ số dự báo tuyến tính 22

2 CÁC MÔ HÌNH ỨNG DỤNG CHO NHẬN DẠNG TIẾNG NÓI 28 2.1 Phương pháp VQ 28

2.1.1 Khái niệm phép lượng tử hoá 28

2.1.2 Độ biến dạng 29

2.1.3 Tính chất 29

2.1.4 Thiết kế codebook theo phương pháp LBG 30

2.1.5 Ứng dụng VQ trong xử lý tín hiệu tiếng nói 33

2.2 Phương pháp căn chỉnh thời gian động 34

Trang 3

2.2.2 Kĩ thuật căn chỉnh thời gian động 36

2.2.3 Các ràng buộc 41

2.2.4 Thuật toán căn chỉnh thời gian động 46

2.3 Mô hình Markov ẩn 52

2.3.1 Quá trình Markov 52

2.3.2 Mô hình Markov ẩn 54

2.3.3 Ba bài toán cơ bản của mô hình Markov ẩn 57

2.3.4 Các loại mô hình Markov ẩn 67

2.3.5 Giới hạn của mô hình Markov ẩn 69

2.4 Mạng Nơron 69

2.4.1 Các khả năng của mạng nơron 69

2.4.2 Cấu trúc mạng nơron nhân tạo 70

2.4.3 Phân loại mạng nơron 73

2.4.4 Ứng dụng mạng nơ ron lan truyền ngược cho nhận dạng tiếng nói 73

3 HUẤN LUYỆN VÀ NHẬN DẠNG TIẾNG NÓI 75 3.1 Huấn luyện và nhận dạng theo mô hình Markov 75

3.1.1 Giới thiệu về HTK 75

3.1.2 Huấn luyện hệ thống nhận dạng 75

3.1.3 Nhận dạng 91

3.1.4 Tổng kết 95

3.2 Mô hình lai ghép ANN/HMM 98

3.2.1 Hệ thống nhận dạng dùng HMM liên tục 98

3.2.2 Huấn luyện hệ thống nhận dạng dùng ANN 102

3.2.3 Hệ thống nhận dạng dùng HMM/ANN 103

3.2.4 Nhận dạng 106

3.3 So sánh hai phương pháp nhận dạng CD-HMM và HMM/ANN 110

4 MÔI TRƯỜNG TÍN HIỆU TIẾNG NÓI TRÊN ĐIỆN THOẠI 118 4.1 Giới thiệu về card Dialogic 118

4.2 Các khái niệm cơ bản 119

4.2.1 Event 119

4.2.2 Event Handlers 121

4.2.3 Dialogic device handle 122

4.2.4 Kênh (device channel) 122

4.3 Các mô hình lập trình 122

Trang 4

4.3.2 Lập trình bất đồng bộ 124

4.3.3 Mô hình bất đồng bộ mở rộng 128

4.3.4 Các mô hình kết hợp 129

4.4 Sơ lược về các hàm và cấu trúc dữ liệu trong SRL 130

4.4.1 Các hàm quản lý sự kiện 130

4.4.2 Các hàm thuộc tính chuẩn 137

4.4.3 Termination Parameter Table DV_TPT 139

4.4.4 Call status event block structure: DX_EBLK 141

4.4.5 User digit buffer:DV_DIGIT 142

4.4.6 Thư viện âm thanh của C (Voice library of C functions) 142

4.4.7 Chi tiết một số hàm đã được đề cập 145

5 TÍCH HỢP MODULE TỔNG HỢP TIẾNG VIỆT VÀ CÁC CHUẨN TÍCH HỢP TIẾNG NÓI 149 5.1 Hệ thống thông điệp tích hợp (Unified Message System) 149

5.2 Cổng thoại 3i 154

5.2.1 Điều khiển voice menu – Callflow 154

5.2.2 Xử lý đồng thời nhiều cuộc gọi 155

5.2.3 Phát tiếng nói trên điện thoại 155

5.2.4 Lập trình tích hợp card Dialogic vào ứng dụng 157

5.2.5 Một số thuật ngữ 158

5.2.6 Tích hợp điện thoại và máy tính 159

6 CƠ SỞ DỮ LIỆU NGỮ ÂM CHO NHẬN DẠNG VÀ TỔNG HỢP TIẾNG VIỆT 163 6.1 Giới thiệu 163

6.2 Ghi âm cho CSDL 164

6.3 Dữ liệu cho nhận dạng tiếng Việt 166

6.3.1 Nhận dạng lệnh 166

6.3.2 Nhận dạng chính tả 170

6.4 Dữ liệu tiếng nói cho phân tích và nhận dạng thanh điệu 182

6.4.1 Thanh điệu tiếng Việt trong câu 182

6.4.2 Xác định đường nét đặc trưng của thanh điệu 186

6.4.3 Xác định ảnh hưởng của thanh điệu do ngữ cảnh 186

6.5 Dữ liệu tiếng nói cho tổng hợp 188

6.5.1 Xác định đơn vị âm cho tổng hợp tiếng Việt 189

Trang 5

6.6 Kết luận 191

7 TỔNG HỢP TIẾNG VIỆT 192 7.1 Nhập môn 192

7.2 Khái quát về tổng hợp tiếng nói từ văn bản TTS (Text To Speech) 194

7.2.1 Các loại âm 195

7.2.2 Các tham số âm thanh 196

7.2.3 Nhắc lại các khái niệm ngữ âm 196

7.2.4 Tổng hợp tiếng nói từ văn bản 198

7.3 Các phương pháp tổng hợp tiếng nói 200

7.3.1 Tổng hợp theo cấu âm 200

7.3.2 Tổng hợp formant theo quy luật 202

7.3.3 Tổng hợp xích chuỗi 204

7.4 Chuẩn hoá văn bản 218

7.5 Phân tích văn bản 222

7.6 Các mô hình ngôn ngữ 226

8 PHÂN TÍCH ĐẶC TRƯNG ÂM HỌC VÀ ÂM VỊ HỌC CỦA TIẾNG NÓI 233 8.1 Đặc trưng âm học của tiếng nói 233

8.1.1 Bản chất của âm 233

8.1.2 Các thuộc tính biên độ cơ bản của sóng âm 236

8.1.3 Các thuộc tính trường thời gian của các sóng âm 241

8.1.4 Các thuộc tính trường tần số của các sóng âm 243

8.1.5 Một số thuộc tính thẩm nhận cơ bản của sóng âm 249

8.1.6 Mô hình âm học của quá trình phát âm lời nói 253

8.1.7 Bộ lọc bộ máy phát âm trong quá trình sản sinh nguyên âm 254

8.1.8 Những thuộc tính âm học của chất lượng nguyên âm 265

8.2 Các đặc trưng âm vị học của tiếng nói 275

8.2.1 Phân tích tiếng nói thành các đơn vị cơ bản 275

8.2.2 Các nét khu biệt ngôn điệu và cố hữu 291

8.2.3 Các đặc trưng khu biệt so với các đặc trưng khác của âm 292

8.2.4 Ranh giới âm vị 294

8.2.5 Đột dừng đối lập với không đột dừng 294

8.2.6 Giọng the thé đối lập với giọng dịu 295

8.2.7 Nguồn bổ sung - Hữu thanh đối lập với vô thanh 299

Trang 6

8.2.9 Các nét thanh tính 303

8.2.10 Dẹt đối lập với bằng phẳng 305

8.2.11 Điếc đối lập với bằng phẳng 306

9 ĐẶC ĐIỂM NGỮ ÂM CƠ BẢN TIẾNG VIỆT 242 9.1 Âm tiết tiếng Việt 242

9.1.1 Dẫn luận 242

9.1.2 Phương pháp 242

4.1.3 Kết quả 244

4.2 Hệ formant của nguyên âm tiếng Việt 248

4.3 Một số vấn đề về phụ âm tiếng Việt hiện đại 255

4.3.1 Đặt vấn đề 255

4.3.2 Phương pháp 257

4.3.3 Giới hạn 258

4.3.4 Kết quả 258

4.3.5 Kết luận 266

4.4 Các thanh điệu của tiếng Việt 269

Trang 7

Hình 1-1 Các bước xử lý của phương pháp tính toán hệ số MFCC .2

Hình 1-2 Các bước xử lý của phương pháp tính toán hệ số PLP 5

Error! No bookmark name given. Hình 1-4 Mô hình phổ dẹt của tiếng nói 21

Hình 1-5 Sơ đồ phân tích tiếng nói 21

Hình 1-6 Sơ đồ bộ xử lý LPC dùng cho trích đặc trưng tiếng nói 22

Hình 2-1 Ví dụ VQ 1 chiều 28

Hình 2-2 Ví dụ VQ 2 chiều 28

Hình 2-3 Sơ đồ khối chung của quá trình huấn luyện và phân lớp tín hiệu tiếng nói sử dụng VQ 33

Hình 2-4 Đồ thị của chuỗi các vector phổ đã được mã hóa bằng VQ của phát âm từ 8 tiếng Anh .34

Hình 2-5 Sơ đồ cách tiếp cận đối sánh mẫu 35

Hình 2-6- Các frame lần lượt gối lên nhau .37

Hình 2-7- So sánh sự khác nhau về thời gian trên từ “speech” 37

Hình 2-8- Lưới minh họa quy hoạch động 39

Hình 2-9- Các ràng buộc điểm đầu cuối (Endpoint Constraints) 42

Hình 2-10- Minh họa về so khớp không đều đặn .42

Hình 2-11- Minh họa về so khớp không liên tục .43

Hình 2-12- Các ràng buộc đường đi cục bộ 44

Hình 2-13- Ràng buộc đường đi cục bộ Itakura .44

Hình 2-14- Các ràng buộc đường đi toàn cục .45

Hình 2-15- Minh họa về căn chỉnh thời gian động giữa mẫu chuẩn “SPEECH” và mẫu nhận dạng có nhiễu “SsPEEhH” 46

Hình 2-16- Các hướng đi có thể của SDTW 47

Hình 2-17- Ba cách đi có thể từ ô (i, j) đến một ô khác trong DTW phản đối xứng .49

Hình 2-18- Các hướng đi có thể của DTW phản đối xứng 50

Hình 2-19- Đường đi qua vùng hợp lệ 50

Hình 2-20- Xích Markov với 5 trạng thái S1, S2, , S5 và các xác suất chuyển trạng thái 53

Trang 8

Hình 2-21-Ví dụ một mô hình Markov ẩn với sáu trạng thái 56

Hình 2-22- Miêu tả các dãy phép toán được thực hiện để tính biến αt (i) .59

Hình 2-23- Miêu tả các dãy phép toán được thực hiện để tính biến βt(i) 60

Hình 2-24- Miêu tả các phép tính cần thiết để tính ξt(i, j) .63

Hình 2-25- Mô hình nhiều tầng của mạng nơron 71

Hình 2-26- Các thành phần cơ sở mạng nơron .71

Hình 3-1- Thuật toán của Hinit 80

Hình 3-2- Các hoạt động của Hnit .81

Hình 3-3- Mô hình hoạt động của Hcompv 82

Hình 3-4- Sơ đồ buộc hai âm vị sil và sp 83

Hình 3-5- Hoạt động của Herest .83

Hình 3-6- Dùng Hhed chuyển âm đơn sang âm ba 86

Hình 3-7- Quá trình buộc các âm ba bằng Hhed 87

Hình 3-8- Buộc các trạng thái .88

Hình 3-9- Sơ đồ ngữ pháp của hệ thống nhận dạng mười chữ số liên tục 91

Hình 3-10- Sơ đồ mạng word-loop với các xác suất bigram .93

Hình 3-11- Cấu trúc ba lớp của mạng từ nhận dạng .94

Hình 3-12- Mô hình mạng lai ghép HMM/ANN 104

Hình 3-13-Huấn luyện mạng lai ghép HMM/ANN 105

Hình 3-14- Sơ đồ mạng word-loop với các xác suất bigram .107

Hình 3-15- Cấu trúc ba lớp của mạng từ nhận dạng 108

Hình 3-16- Minh họa thuật toán chuyển thẻ bài .109

Hình 7-1- Giao diện chương trình kiểm tra ETTVSNAM 150

Hình 7-2- Hệ thống thao tác dọc và duyệt thư thoại 155

Hình 7-3- Kiến trúc phân tầng TAPI 160

Hình 5-1 Phổ tiếng nói của câu 164

Hình 5-2 Ảnh phổ của âm tiết kết thúc bằng âm tắc /p/: “hấp tấp” 173

Hình 5-3 Ảnh phổ của âm tiết “bắt” 174

Hình 5-4 Ảnh phổ của hai âm tiết đọc liền nhau 177

Trang 9

1 PHƯƠNG PHÁP PHÂN TÍCH TIẾNG NÓI THEO

CÁC ĐẶC TRƯNG

1.1 Các phương pháp trích chọn đặc tính

Phần này sẽ giới thiệu hai phương pháp được sử dụng rộng rãi trong các

hệ thống nhận dạng hiện tại để tính toán các hệ số MFCC (Mel Scale Frequency Cepstral Coefficients) và hệ số PLP (Perceptual Linear Prediction) Hai kĩ thuật xử lý tiếng nói RASTA (RelAtive SpecTral) và CMS (Cepstral Mean Subtraction) cũng được giới thiệu Đây là hai kĩ thuật loại bỏ nhiễu hay được sử dụng đặc biệt là trong phát âm có nhiều nhiễu như các câu thu âm qua điện thoại

1.1.1 Phương pháp tính hệ số MFCC

Hình 2.1 miêu tả các bước tính toán hệ số MFCC

Nhấn mạnh tín hiệu (pre-emphasis) Trong bước xử lý đầu tiên này, tín

hiệu được đưa qua một bộ lọc số:

1

( ) 1

H z = +a z

Trong đó aprelà hệ số nhấn mạnh, thường có giá trị là 0,9700002861 Bộ

lọc có tác dụng tăng cường tín hiệu tại tần số cao (trên 1KHz) với hai lý do chính:

• Giọng nói có sự suy giảm khoảng 20dB/decade khi lên tần số cao do đặc điểm sinh lý của hệ thống phát âm của con người Bước xử lý này

sẽ tăng cường tín hiệu lên một giá trị gần 20dB/decade để khắc phục sự suy giảm này,

• Hệ thống thính giác của con người nhạy cảm hơn với vùng tần số cao, bước xử lý này nhấn mạnh vùng tần số cao, trợ giúp cho quá trình mô hình hoá âm thanh sau này của hệ thống nhận dạng

Trang 10

Hình 1-1 Các bước xử lý của phương pháp tính toán hệ số MFCC

Tạo khung tín hiệu (framing) Tín hiệu tiếng nói luôn luôn biến thiên

theo thời gian, tuy nhiên, trong khoảng thời gian khoảng 10-20ms, tín hiệu tiếng nói được coi là tương đối ổn định Do đó, tín hiệu thường được chia thành các khung kích thước 20-30 ms với vùng gối lên nhau khoảng 10-15

ms

Làm cửa sổ (frame windowing) Cửa sổ Hamming thường được áp dụng

cho mỗi khung tín hiệu để giảm sự tác động của việc chia khung tín hiệu:

Trong đó, N là số mẫu dữ liệu (sample) của cửa sổ

DFT (Discrete Fourier Transform) Tại bước này, với mỗi khung tín

hiệu, biến đổi Fourier được áp dụng để chuyển tín hiệu về miền tần số Công việc tính toán được thực hiện bằng thuật toán FFT (Fast Fourier Transform)

Lọc theo thang tần số Mel (Mel-frequency bandpass filter) Các bộ lọc

số được áp dụng để lọc các tín hiệu theo các giải tần số khác nhau

Phản ứng của tai người với các thành phần của tần số là không tuyến tính Sự khác nhau về tần số ở vùng tần số thấp (<1KHz) dễ được nhận biết bởi con người hơn là ở vùng tần số cao Lọc theo thang tần số Mel mô phỏng

Trang 11

tính chất này bằng cách dùng các bộ lọc được phân bố theo một hàm phi tuyến trong khoảng không gian tần số, thông thường là hàm Mel:

10( ) 2595log (1 )

700

f

Logarit giá trị năng lượng (logarit of filter energies) Các giá trị năng

lượng thu được tại mỗi kênh lọc được lấy logarit để “nén” các giá trị này vào một miền giá trị hẹp hơn

DCT (Discrete Cosin Transform) Giọng nói của con người có phổ khá

trơn (smooth) trên miền tần số, do vậy, các giá trị năng lượng của các bộ lọc gần nhau có sự tương quan (correlated) khá gần Bước xử lý này biến đổi các giá trị năng lượng thành các hệ số ít tương quan với nhau hơn, các hệ số này được gọi là hệ số cepstral

1cos( ( 0.5))

Chỉnh các giá trị cepstral Giá trị cepstral bậc cao thường có giá trị rất

thấp, so với các giá trị cepstral bậc thấp Sự khác biệt này gây khó khăn cho việc mô hình hoá dữ liệu, ví dụ như khi sử dụng các hàm mật độ xác suất Gauss Do đó các hệ số cepstral được điều chỉnh lại (re-scaled) theo công thức:

exp( * )

c′ = n k c

Sau bước hiệu chỉnh này ta thu được các giá trị MFCC

Tính giá trị delta MFCC Các giá trị delta của các hệ số MFCC được

tính toán nhằm phản ánh sự biến thiên tiếng nói theo thời gian Các giá trị delta được tính toán dựa trên các giá trị MFCC của các khung tín hiệu lân cận:

1

2 1

2

t t t

θ

θθ

Θ + −

= Θ

Trang 12

Các hệ số a(i) được chọn để làm cực tiểu hàm lỗi dự báo trung bình bình

phương Có một vài phương pháp để tính các hệ số này: phương pháp dùng

ma trận hiệp phương sai (covariance matrix), phương pháp tự tương quan (auto-correlation method), phương pháp lưới hay còn gọi là phương pháp điều hoà (lattice or harmonic) Phương pháp thường được áp dụng nhất trong nhận dạng tiếng nói là phương pháp tự tương quan dùng thuật toán đệ quy Levinson-Durbin

Thuật toán Levinson-Durbin được trình bày như sau:

Tính p+1 các hệ số tự tương quan đầu tiên (p là bậc của dự báo tuyến

tính) bằng công thức sau:

1

N i

i j j i j

rs s +

=

=∑

Trong đó, s(n) là tín hiệu trong cửa sổ, N là số lượng mẫu trong cửa sổ

Các hệ số sau đó được tính toán đệ quy như sau:

0

(0)

E =r

1 ( 1)

( 1)

i j i j j

Trang 13

Các bước trên được tính toán lặp với i=1,2, p Cuối cùng, ta thu được

các hệ số:

( )p

j j

a =a với 1 j p≤ ≤Phương pháp tính các hệ số PLP dựa vào phương pháp LPC Hình 2.2 miêu tả các bước xử lý tính toán hệ số PLP:

Hình 1-2 Các bước xử lý của phương pháp tính toán hệ số PLP

FFT Tương tự như phương pháp MFCC, tín hiệu tiếng nói được chia

thành các khung tín hiệu và được biến đổi Fourier sang miền tần số bằng thuật toán FFT

Lọc theo thang tần số Bark Tương tự như phương pháp tính MFCC, tín

hiệu tiếng nói được lọc qua các bộ lọc phân bố theo thang tần số phi tuyến, trong trường hợp này là thang tần số Bark:

} ] 1 ) 1200

[(

1200 ln{

6 ) (f = f + f 2 + 0 5

Bark

Nhấn mạnh tín hiệu dùng hàm equal-loudness Bước xử lý này tương tự

như bước nhấn mạnh pre-emphasis của phương pháp MFCC Hàm này mô phỏng đường cong cân bằng độ ồn (equal-loudness curve)

( 56,8*10 ) ( )

Trang 14

Dùng luật cường độ nghe (power law of hearing) Bước xử lý này giống

như bước lấy giá trị logarit trong phương pháp MFCC Hàm căn lập phương được sử dụng để “nén” các giá trị năng lượng

0,33

( )f ( )f

Biến đổi Fourier ngược (inverse DFT) Các hệ số tự tương quan được

biến đổi Fourier ngược để sau đó dùng làm giá trị đầu vào cho phương pháp LPC

Thuật toán Durbin được sử dụng để tính toán các hệ số dự báo tuyến

tính giống như trong phương pháp LPC

Tính các giá trị delta Phương pháp tính tương tự như phương pháp tính

là thường xuyên cố định hoặc biến đổi chậm Các tham số cepstral của một phát âm được trừ đi giá trị trung bình của các tham số trong một khoảng thời gian nào đó và làm cho các giá trị này ít bị ảnh hưởng bởi môi trường:

bổ sung bất thường khác Bộ lọc dùng trong RASTA là:

1

0,2 0,1 0,2 0,1( )

Trang 15

Các kĩ thuật khử nhiễu thường yêu cầu một đoạn tiếng nói đủ lớn để phân tích, thống kê Vì vậy, khi áp dụng các kĩ thuật khử nhiễu vào nhận dạng tiếng nói, cần lưu ý đến tốc độ xử lí và bảo tồn các đặc trưng âm học của phụ âm, đặc biệt là các phụ âm vô thanh Để đảm bảo thực hiện được trong thời gian thực, hiện nay, người ta thường áp dụng mô hình tham số thích nghi với nhiễu

Cụ thể như sau: Khi huấn luyện tham số, người ta lấy một mẫu sạch, không bị nhiễu, để huấn luyện, sau đó, người ta lấy các mẫu sạch này trộn với các loại nhiễu sinh bởi các mô hình toán học khác nhau và tham số mô hình sẽ được biến đổi bởi mẫu nhiễu nhờ các công cụ mô hình như mạng Nơron Do đó, trong giai đoạn nhận dạng, khi tín hiệu thực được đưa vào hệ thống, người ta sẽ tính thẳng các đặc trưng và quyết định từ chính tín hiệu chứ không cần lọc

1.2 Các đơn vị xử lý tiếng nói

1.2.1 Tần số lấy mẫu

Quá trình lấy mẫu tạo ra tín hiệu rời rạc hoặc tín hiệu số từ tín hiệu tín hiệu tương tự Tần số lấy mẫu là số lần lấy mẫu được tính trong một đơn vị thời gian, thông thường là giây Tần số lấy mẫu ký hiệu là Fs

Khoảng thời gian mà quá trình lấy mẫu được lặp lại gọi là chu kỳ lấy mẫu

Ví dụ: Fs = 11025Hz

1s thu được 11025 mẫu

1ms thu được 11025/1000 ≈ 11 mẫu

Số bit lưu một mẫu có thể là 8 hoặc 16 bit

Trang 16

ra nhiễu, chẳng hạn như tiếng thở, tiếng bật lưỡi, tiếng chép miệng cả khi môi chạm vào micro… Không dễ gì có thể lọc được mọi thứ nhiễu, ta chỉ tìm cách tối thiểu hoá chúng để có thể nâng cao chất lượng của hệ thống nhận dạng Với tín hiệu tiếng nói là s n, tín hiệu nhận được sau quá trình thu sẽ được

ký hiệu là s~ n Như vậy:

s E

0

2 0 2

10

~

log

10 (Đơn vị năng lượng tính bằng dB)

Như vậy, nếu năng lượng E càng lớn thì s~ n càng gần với s n, tín hiệu nền

có giá trị gần về 0 Nếu E→∞ thì tín hiệu thu được là tín hiệu sạch, không

có nhiễu

1.2.3 Tần số cơ bản

Một âm thanh có thể là tổ hợp của nhiều tần số, tần số chính bao trùm trong âm được gọi là tần số cơ bản Trong tiếng nói, tần số cơ bản là đáp ứng của sự rung động các dây thanh âm, tần số cơ bản thường được ký hiệu là F0 Tần số cơ bản có giá trị phụ thuộc vào tần số lấy mẫu và khoảng cách a,

là khoảng cách giữa hai đỉnh của các sóng âm tuần hoàn

Đơn vị của tần số là Hertz, ký hiệu là Hz Mỗi Hz bằng 1 dao động/1s

Và 1 KHz sẽ bằng 1000 Hz (Xem biểu diễn đường F0 của một số thanh điệu

ở phần phụ lục)

1.2.4 Formant

Formant là dải tần số được tăng cường do hiện tượng cộng hưởng trong ống dẫn thanh, đặc trưng cho âm sắc của mỗi nguyên âm Trong mỗi dải tần như thế có một tần số được tăng cường hơn cả gọi là đỉnh formant

Một nguyên âm do một người phát ra có nhiều formant:

F1: ứng với cộng hưởng vùng yết hầu

F2: ứng với cộng hưởng khoang miệng

Trang 17

Khi ta nói, các âm mũi sẽ có sự xuất hiện của formant F3, các formant khác F4, F5,…liên quan đến các đặc trưng giọng nói riêng của mỗi cá nhân Mỗi lần môi, lưỡi, hàm ở những vị trí khác nhau là một lần hộp cộng hưởng miệng và yết hầu thay đổi hình dáng, thể tích, lối thoát của không khí làm biến đổi âm sắc của âm thanh đi qua chúng Chính vì vậy, hai khoang miệng

và yết hầu là hai hộp cộng hưởng quan trọng nhất, chúng tạo nên hai formant chính formant F1 và F2 đặc trưng của mỗi nguyên âm

1.3 Định dạng âm thanh

Có nhiều chuẩn lưu trữ âm thanh số (AU, VOC, WAVE, AIFF, AIFF-C

và IFF/8VX), nhưng kết quả thực tế cho thấy rằng tập đoàn của Microsoft sử dụng các file wave trong hệ thống điều hành windows, chúng đã trở thành chuẩn sử dụng phổ biến nhất

Âm thanh được xử lý ở dạng PCM, tập tin được lưu lại trên bộ nhớ dưới dạng file WAVE

Thông thường, các file WAVE PCM có cấu trúc như sau:

Các khối dữ liệu riêng biệt (còn gọi là các chunk), được thể hiện bằng cấu trúc hình cây cơ bản

Mỗi chunk bao gồm hai phần cơ bản là header và data

Khối đầu tiên, cũng là phần chính của bất kỳ file RIFF nào là khối RIFF,

nó giống như gốc của một cây

File bắt đầu với phần header RIFF, sau nó là hai khối con được định nghĩa FMT và DATA RIFF bao gồm ba phần tử: RIFF_ID, RIFF_SIZE và RIFF_FORMAT

struct RIFF

Trang 18

{

_TCHAR riffID[4]; // Chứa nhận dạng “RIFF”

DWORD riffSIZE; // Kích thước file trừ 8 byte

_TCHAR riffFORMAT[4]; //Chứa nhận dạng “WAVE”

WAVEFORMATEX // nhưng không bao gồm file cbSize

};

Cấu trúc của WAVEFORMAT là chìa khoá của sự hiểu biết về các WAVE Nó chứa nhiều thông tin mà chúng ta cần khi làm việc với một WAVE

struct WAVEFORM

{

WORD wFormatTag; // định dạng âm thanh số

WORD nchannels; //số kênh (1 cho mono và 2

DWORD nSamplesPerSec; //Số mẫu trong một giây

DWORD nAvgBytesPerSec; //Trung bình số byte của dữ

liệu trong một giây WORD nBlockAlign; //Kích thước tối thiểu của dữ

liệu khi phát WORD wBitsPerSample; // Số bit lưu một mẫu (8 hoặc 16)

};

Và cuối cùng là khối dữ liệu:

Trang 19

struct DATA

{

_TCHAR dataID[4]; //Chứa nhận dạng dữ liệu

DWORD dataSIZE; //Kích thước dl

};

Định dạng dữ liệu và giá trị lớn nhất, nhỏ nhất của các mẫu waveform PCM ở nhiều kích thước được cho như sau:

Kích thước mẫu Định dạng dữ liệu Giá trị lớn nhất Giá trị nhỏ nhất

Từ 1 đến 8 bit Số nguyên không dấu 255 (0xFF) 0

Giá trị lớn nhất, giá trị nhỏ nhất và giá trị điểm giữa của 8 bit và 16 bit

dữ liệu waveform PCM như sau:

1.4 Thu tín hiệu âm thanh trong thời gian thực

Tín hiệu tiếng nói trước khi trở thành dữ liệu tiếng nói phải trải qua một quá trình xử lý, quá trình này được gọi là tiền xử lý tín hiệu

Hệ thống máy tính hiện tại chỉ hỗ trợ cho ta thu tĩnh Mỗi lần chỉ thu được trong một khoảng thời gian khá nhỏ (vì dãy tín hiệu số phát sinh quá lớn

sẽ nhanh chóng lấp đầy phần không gian lưu trữ) Nếu người sử dụng nói vào thời điểm hàm thu kết thúc thì dữ liệu sẽ bị mất mát, do đặc trưng của tín hiệu tiếng nói các hệ thống thiết kế tốt cũng có thể không phát hiện được, vẫn thực hiện và cho ra kết quả khi dữ liệu đầu vào đã sai

Cách giải quyết chủ yếu dựa vào một số thủ thuật lập trình, cơ chế hoạt động của hệ điều hành và cơ chế của hàm thu tín hiệu âm thanh Tư tưởng chính là làm một hàng đợi vòng, xử lý kịp thời để không bao giờ bị hết không gian lưu trữ, kết hợp với việc sử dụng cơ chế đa luồng của hệ điều hành để

Trang 20

vẫn có thể thực hiện được đồng thời các ứng dụng khác Cách thực hiện cụ thể như sau:

Xin cấp phát M vùng đệm (buffer), mỗi vùng đệm có kích thước 3N và đưa vào hàng đợi (N là kích thước của một frame) Tạo một luồng (thread) làm những việc chính sau:

1 Kiểm tra cờ điều khiển (semaphore), nếu cờ tắt thì dừng (return)

2 Gọi hàm thu và chờ thu hết vùng đệm (hiện hành) (Khi này vùng đệm

bị loại ra khỏi hàng đợi)

3 Tính năng lượng của ba frame trên vùng đệm, nếu năng lượng frame đầu lớn hơn ngưỡng dữ liệu thì quay lại bước một (trạng thái đang có

âm thanh khi gọi hàm thu – không thu được trọn vẹn dữ liệu)

4 Đưa vùng đệm vào hàng đợi

5 Tăng chỉ số vùng đệm hiện hành lên một

6 Chờ thu hết vùng đệm

7 Với mỗi frame của vùng đệm tính tổng năng lượng của nó và hai frame

kế trước (có thể là của vùng đệm trước- để đảm bảo tính liên tục)

8 Nếu tổng năng lượng vừa tính lớn hơn ngưỡng im lặng thì chép frame vào vùng đệm chính, cập nhật lại kích thước vùng đệm chính và bật

cờ có dữ liệu.Ngược lại, nếu cờ có dữ liệu bật: cập nhật lại kích thước đoạn im lặng

9 Nếu kích thước đoạn im lặng nhỏ hơn thời gian ngừng tối đa giữa hai tiếng: Quay lại bước 5

Ta có thể chọn kích thước frame là 220 ms, thời gian ngừng tối đa giữa hai tiếng là 750 ms

1.5 Xác định giá trị hằng – ngưỡng theo môi trường tín hiệu

1.5.1 Thông số ngưỡng zero

Bản chất âm thanh là sự dao động, khi số hoá các mẫu dữ liệu âm thanh

về miền giá trị 0…N-1 thì mẫu âm thanh im lặng (không có âm thanh) sẽ có giá trị là N/2, giá trị này gọi là ngưỡng zero Ví dụ nếu kích thước mỗi mẫu

Trang 21

tín hiệu số là 8 bit thì giá trị của ngưỡng zero là 128, các mẫu tín hiệu âm thanh số sẽ có giá trị dao động xung quanh ngưỡng này

Trên thực tế các thiết bị số hoá âm thanh của máy tính (sound card) có thể bị sai ngưỡng zero (sound card mà người viết đang dùng có ngưỡng zero

là 112-mẫu 8 bit) Nếu hệ thống chương trình sử dụng ngưỡng zero tương ứng của thiết bị thì dữ liệu nhận được vẫn là dữ liệu tốt Còn nếu vẫn dùng ngưỡng như trên thì kết quả nhận dạng có thể sai trầm trọng

Thuật toán phương pháp xác định ngưỡng zero:

- Lấy thu của sound card

- Đặt mức thu ở giá trị thấp nhất (tín hiệu thu được là nhỏ nhất)

- Thu một đoạn dữ liệu ngắn (khoảng 3 giây)

- Tính "histogram" H (H[k] là số mẫu có giá trị biên độ k)

- Tìm trong dãy H phần tử H[max] có giá trị lớn nhất Ngưỡng zero chính là max

- Phục hồi lại mức thu ban đầu

1.5.2 Thông số độ ồn nhiễu

Cách xác định: Thông báo yêu cầu người sử dụng đừng nói gì trong ba giây và thu tín hiệu trong thời gian đó để lấy tiếng ồn nhiễu của môi trường xung quanh Ngưỡng im lặng được xác định là năng lượng cao nhất của các frame Ngoài ra có thể dùng biến đổi Fourier để tính ra các tần số nhiễu phục

vụ cho việc lọc nhiễu

1.6 Lọc nhiễu

Hiện tại, việc lọc nhiễu của hệ thống được thực hiện theo phương pháp kinh điển là dùng phép biến đổi Fourier với thuật toán FFT Dùng biến đổi Fourier thuận xác định được các tần số tham gia và loại đi tất cả tần số không thuộc phạm vi tiếng nói (nếu biết được phạm vi tần số của đúng người sử dụng thì kết quả lọc sẽ càng cao hơn) bằng cách cho các hệ số tương ứng giá trị zero sau đó biến đổi ngược lại

Trang 22

1.7 Xác định dãy tín hiệu số có chứa dữ liệu tiếng nói và xác định các điểm đầu - cuối của tiếng nói

Dữ liệu thu được không phải lúc nào cũng là tiếng nói, nhất là khi thu động dữ liệu sẽ thường xuyên là khoảng lặng và nhiễu Vì hệ thống nhận dạng được thiết kế theo hình thức so khớp tìm ra mẫu giống nhất nên dù dữ liệu thu được không phải là tiếng nói mà được đưa vào thì hệ thống vẫn gán đó là một trong các tiếng đã học mẫu dẫn đến sai hoàn toàn

Trong mọi đoạn tín hiệu, dù có tiếng nói hoặc không có tiếng nói, thì luôn luôn có âm nền Khác biệt chủ yếu khi có tiếng nói là âm thanh tiếng nói

sẽ là âm thanh chính Ta có thể đưa ra phương pháp sau:

1 Chia đều dãy tín hiệu số thành các frame với kích thước từ 5-10 ms (có thể căn cứ vào tần số cơ bản trung bình của người đang nói để chọn giá trị phù hợp nhất)

2 Sau đó kiểm tra tính chứa tiếng nói của các frame bằng cách đếm số điểm zero hoặc tính năng lượng ngắn hạn của frame có vượt qua ngưỡng

3 Nếu tổng kích thước các frame liên tiếp được xác định có tính chứa tiếng nói lớn hơn 150 ms thì có thể xem là có chứa tiếng nói

Frame i Frame i=+1

Cöa sæ i

Cöa sæ i+1

Dl chia sÎ Dl míi

Hình 1-3 Phân chia tín hiệu thành các Frame

Nếu người nói nói rời rạc từng tiếng một và môi trường không bị ồn thì

ở bước xác định dãy tín hiệu số có chứa dữ liệu tiếng nói hay không ta cũng

đã xác định được các điểm biên của tiếng vì tại đó sẽ có các khoảng lặng Nhưng người ta có thể nói hơi chậm chứ không quen nói nhát gừng từng tiếng

Trang 23

một và môi trường xung quanh cũng hoàn toàn có thể có nhiễu Khi đó giữa hai tiếng có thể không có khoảng lặng - Tức chúng bị dính nhau (thường hiện tượng này chỉ xảy ra giữa hai tiếng chứ ít có ba tiếng dính nhau) Lúc này, bước trên sẽ cho kết quả chỉ là một tiếng mà ta đưa luôn cho hệ thống nhận dạng thì trước mắt sẽ có một tiếng bị nhận sai (không có kết quả), và tiếng còn lại cũng nhiều khả năng sai Như vậy, bước này cũng là cần thiết nếu muốn hệ thống hoạt động cho chính xác

Nếu các tiếng được nói rõ ràng thì chiều dài của mỗi tiếng không dao động nhiều Do đó ta có thể yêu cầu người nói rời rạc một số tiếng rồi đo chiều dài nhỏ nhất L1 và lớn nhất LS các tiếng của người đó Khi nhận được đoạn dữ liệu có chiều dài lớn hơn LS, tức đang có hai tiếng dính nhau, ta sẽ tìm frame trong đoạn [L1 LS] có năng lượng nhỏ nhất và điểm biên giữa hai tiếng được chọn là điểm giữa của frame

1.8 Chuẩn hoá biên độ

Dữ liệu tiếng nói khi thu được có biên độ rất biến động Ngay cả khi người sử dụng nói với một âm lượng rất chuẩn không hề thay đổi thì biên độ của dữ liệu thu được cũng vẫn có thể không ổn định Điều này dễ dàng xảy ra khi người nói hơi xoay mặt đi, nhích micro đến gần miệng hơn hoặc kéo ra xa hơn chỉ vài cm Sự biến động này ảnh hưởng đến kết quả nhận dạng

Việc chuẩn hoá là cần nhưng không nhất thiết phải thật tốt, chỉ cần biên

độ đừng nhỏ quá làm mất mát đặc trưng Như vậy, ta có thể thực hiện đơn giản bằng cách nhân mỗi điểm với một hệ số k thích hợp

32767 −

=

Nhận dạng tiếng nói là mô hình phức tạp theo nhiều mức khác nhau Tín hiệu tiếng nói được phân tách ra thành từ, các cụm từ hay câu Tiếp theo chúng được phân tích dựa vào cú pháp của ngôn ngữ cần nhận dạng, được biến đổi và nén lại để đơn giản cho việc xử lý tiếp theo

Khi xử lý tín hiệu tiếng nói ta phải rời rạc hoá nó theo thời gian, sử dụng biến đổi FFT để ước lượng các thành phần tần số của tín hiệu rời rạc, tách lọc các thành phần cần thiết trước khi nhận dạng

Trang 24

1.8.1 Biến đổi FFT

Phép biến đổi nhanh FFT không phải là một phép biến đổi mới nó thực chất là DFT nhưng được thực hiện với một thuật toán nhanh, gọn Đây là thuật toán đóng vai trò hết sức quan trọng trong việc phân tích, thiết kế và xử

lý tín hiệu

Thuật toán biến đổi nhanh FFT cho N mẫu {x(n)} là:

Phép biến đổi thuận: ( ) ∑− ( )

N k

N kn j

e n x k

Phép biến đổi ngược: ( ) X( )k e j kn N

N n

x = 1 ∑ 2 π / Với n = 0, 1, …, N-1 Trong đó: x( ) ( ) ( )n =a n +b n − 1

Phép biến đổi FFT bảo toàn tính tuyến tính bất biến, tuần hoàn và tính trễ

Phép biến đổi tín hiệu thời gian rời rạc z được định nghĩa là:

j n x

z X

kn

j N

e k X k

kn

j N

e k X n

x π , n= 0 , 1 , 2 , ,N − 1

Phép biến đổi Fourier nhanh (FFT) đơn giản là tính hệ số của DFT

Phép biến đổi cosin rời rạc (DCT) là DFT của tín hiệu

n

N

kn n

x x

k

Trang 25

Trình bày thuật toán trên ngôn ngữ C

void ScrAmble(long numPoints, struct _complex *f)

Trang 27

1.8.2 Làm rõ tín hiệu và cửa sổ hoá

Nhằm làm nổi bật đặc trưng phổ của tín hiệu Thông thường bộ làm rõ tín hiệu là một bộ lọc thông cao với phương trình sai phân là:

số mẫu cho mỗi khung thì kết quả cửa sổ hoá tín hiệu sẽ là:

N

n n

, 0≤nN −1Hàm Hamming suy rộng:

Trang 28

N k

w k

F

n t g F

n x t

1.8.4 Phổ dẹt của tiếng nói

Chọn { }x( )n biểu thị một đoạn tín hiệu kéo dài trong khoảng thời gian xác định: xˆ( ) ( ) ( )n =x n w n

Đoạn này giới thiệu vùng tần số có tên gọi là hiệu ứng hàng rào

Trang 29

Hình 1-4 Mô hình phổ dẹt của tiếng nói

Mỗi frame sau khi được lấy cửa sổ sẽ được đưa qua bước phân tích tự tương quan và cho ra (p + 1) hệ số tự tương quan:

Hình 1-5 Sơ đồ phân tích tiếng nói

Trang 30

1.8.5 Biểu diễn tiếng núi theo mụ hỡnh LPC và cỏc hệ số dự bỏo tuyến tớnh

Mụ hỡnh LPC được sử dụng để trớch lọc cỏc thụng tin đặc trưng của tớn hiệu, kết quả của quỏ trỡnh phõn tớch tớn hiệu thu được một chuỗi cỏc khung tiếng núi, cỏc khung này cú thể được gia cụng thờm và mục đớch sử dụng cho việc phõn tớch õm học

1.8.5.1 Mụ hỡnh LPC

Cỏc tớn hiệu được trớch rỳt theo hỡnh thức xử lý tớn hiệu số bỡnh thường, toàn dóy dữ liệu được chia thành cỏc frame và dựng LPC phõn tớch thành cỏc vector với số phần tử ớt hơn hẳn

Hỡnh dưới đõy là sơ đồ chi tiết của bộ xử lý LPC dựng để trớch đặc trưng

õm tiết tiếng núi Cỏc bước cơ bản trong tiến trỡnh xử lý như sau:

Làm rõ

tín hiệu

Phân đoạn frame

Lấy cửa sổ

Phân tích tự tương quan

Lấy đạo hàm

Đặt trọng số

Chuyển sang cepstral

Phân tích LPC

số dự bỏo này chớnh là cỏc trọng số được sử dụng trong tổ hợp tuyến tớnh Chỳng ta định nghĩa dóy tớn hiệu tiếng núi bằng hàm s(n), giỏ trị dự bỏo:

s

1

Cỏc hệ số αk đặc trưng cho hệ thống

Trang 31

Lỗi dự báo được tính theo công thức:

s n s n s n e

1

Muốn cực tiểu hoá các lỗi xảy ra cần phải chọn giá trì phù hợp nhất, tối

ưu nhất đối với tập giá trị { }αk Chính vì tín hiệu tiếng nói thay đổi theo thời gian nên các hệ số dự báo phải được ước lượng từ một đoạn ngắn tín hiệu Phương pháp tiếp cận cơ bản là tìm một tập các hệ số dự báo để tối thiểu hoá sai số trung bình trên một đoạn ngắn tín hiệu tiếng nói

Công thức tính lỗi dự báo trong một thời gian ngắn:

m s m

s m

1 1

P k n k m

n n i

Trang 32

Thì phương trình (**) có thể được viết gọn hơn:

Giải hệ P phương trình này ta sẽ tìm được P ẩn { }α Tập các hệ số k

{ }α sẽ tối thiểu sai số trung bình bình phương dự đoán cho đoạn tín hiệu k

Sn(m) Sử dụng phương trình (*) và (**) sai số dự đoán trung bình bình phương tối thiểu sẽ là:

Trong đó, w(m) là cửa sổ có chiều dài hữu hạn (thường hay dùng cửa sổ Hamming w(m) khác không trong khoảng 0≤mN−1 Do đó sai số dự đoán en(m) cho bộ dự đoán bậc p sẽ khác không trong khoảng

p N

p N

p i

≤01

=

−+

= N i k

0,

p k

p i

≤01

Trang 33

Gọi Rn(k) là hàm tự tương quan có dạng:

p i

, ,2,1,0

, ,2,1

n n

Ở đó:

( ) ( )

( ) ( )

r

r r r

p r

p r

p r

r r

p r

r

r R

P

LL

LLLLL

LL

21

0

21

2

01

1

1

02

1

α

α

αα

Chú ý rằng R là ma trận đối xứng, tất cả các phần tử thuộc đường chéo của ma trận này đều có giá trị bằng nhau, điều đó có nghĩa là: (1) Nghịch đảo của nó luôn tồn tại; (2) các nghiệm của nó nằm ở phía trái của phương trình Tương tự như vậy sai số trung bình bình phương tối thiểu của phương trình (*****) sẽ có dạng:

Trình bày thuật toán trên ngôn ngữ C:

void ComputeCorrelation(double*sample,int nSample,

double *coeffCorrelation, int nLPC_AUTO)

{

int i,k,nk;

for (k = 0; k <= nLPC_AUTO; k++)

Trang 34

coeffRC[i] -= a[j] * coeffCorrelation[i - j];

} // for coeffRC[i] /= e;

a[i] = coeffRC[i];

for (j = 1; j < i; j++) a[j] = at[j] + coeffRC[i] * at[i - j];

e *= 1.0f - coeffRC[i] * coeffRC[i];

} // for

if (e < 0)

Trang 35

beta=sqrt(e);

} // Durbin_RC

// He so a[] duo xac dinh boi

// x[n] ~= e[n]+ a[1]*x[n-1] + + a[p]*x[n-p]

//***************************************************

void Durbin_LPC_RC(int nLPC,double *coeffCorrelation,double

*coeffRC, double *a, double &beta) {

coeffRC[i] -= a[j] * coeffCorrelation[i - j];

} // for coeffRC[i] /= e;

a[i] = coeffRC[i];

for (j = 1; j < i; j++) a[j] = at[j] + coeffRC[i] * at[i - j];

Trang 37

Theo định nghĩa toán học, việc lượng tử hoá vector k chiều hay VQ bao gồm hai ánh xạ: quá trình mã hoá thực hiện bằng hàm y, với mỗi vector đầu vào x = {x0,x1,…,xk-1} ta có hàm mã hoá là y(x), M là ký hiệu của một tập các kênh, và một bộ giải mã β gán cho mỗi ký hiệu kênh v trong M một giá trị trong bảng chữ cái Ví dụ: M có thể là một tập 2R (hệ nhị phân) vector R chiều Bảng chữ cái phát lại có tương tự khoảng trống của các vector đầu vào, đặc biệt nó có thể có một vector thực với một chiều khác nhau

Nếu M có M phần tử, nếu số lượng R = log2M thì được gọi là tỉ lệ số bit cho mỗi vector trong bộ lượng tử hoá và r = R/k là tỉ lệ số bit cho một biểu tượng, khi đầu vào là dạng sóng đã được lấy mẫu thì đó là số bit cho một mẫu

2.1.2 Độ biến dạng

Độ biến dạng d ký hiệu d( )x,xˆ giữa vector đầu vào x và vector Cho một giá trị của độ biến dạng, chúng ta có thể xác định chất lượng thực hiện của hệ thống bằng độ biến dạng trung bình Ed( )X,Xˆ giữa vector đầu vào và vector được phát: Một hệ thống được đánh giá tốt nếu như giá trị trung bình

độ biến dạng nhỏ Trên thực tế, giá trị trung bình được quan tâm là giá trị trung bình giới hạn độ dài mẫu hoặc trung bình thời gian thực hiện, dĩ nhiên điều này được đánh giá bằng trực giác

x x x d

k: Số chiều của VQ

2.1.3 Tính chất

Tính chất 1:

Với mục đích cực tiểu hoá trung bình độ biến dạng, cho một bộ giải mã

β, không có bộ mã hoá lượng tử nào tốt hơn chọn các từ mã v trong M, nó sẽ cung cấp độ biến dạng nhỏ nhất có thể ở đầu ra, giá trị cực tiểu trên kênh v là:

Trang 38

Tính chất 2:

Đối với bộ mã hoá y, không có bộ giải mã nào tốt hơn việc gán mỗi kênh

v một ceintroid chung của tất cả các vector nguồn mã hoá thành v, đó là:

Thường là: ( ) ( ) ∑( )

=

=

v x y

x i i i

x v

i v cent

|1

Ở đó: i(v) là số của chỉ số i sao cho y(xi) = v

2.1.4 Thiết kế codebook theo phương pháp LBG

Vấn đề thiết kế

Tìm hiểu về cách thiết kế VQ có thể được bắt đầu như sau Cho một vector nguồn với các thuộc tính đã biết, cho một khoảng cách (độ sai lệch), và cho số lượng codevector, tìm một codebook (tập gồm các dấu hoa thị) và cách phân chia (tập các đường kẻ) codebook phải tìm là codebook có ra khoảng cách trung bình bé nhất

Chúng ta giả thiết rằng chuỗi huấn luyện gồm có M vector nguồn:

T = {x1, x2,…,xM}

Chuỗi huấn luyện này thu được từ một cơ sở dữ liệu khá lớn Ví dụ như nếu nguồn là một tín hiệu tiếng nói, khi đó chuỗi huấn luyện có thể thu được bởi cơ sở dữ liệu là một vài cuộc hội thoại khá dài được ghi âm qua điện thoại Giả thiết M có đầy đủ các thuộc tính thống kê của nguồn thu được trong việc huấn luyện chuỗi Chúng ta cũng giả thiết rằng các vector nguồn là

k chiều, ví dụ:

xm = (xm,1, xm,2, …, xm,k), m =1, 2, …, M Cho N là số lượng codevector và biễu diễn codebook :

C = {c1, c2, …, cN}, Mỗi codebook có k chiều, ví dụ:

cn = (cn,1, cn,2, …, cn,k), n = 1, 2, …, N

Trang 39

Sn là miền mã hoá với codevector cn và chỉ rõ việc phân chia các khoảng trống

Ở đó:

e 2 =e12+e22+ +e k2

Như vậy, vấn đề thiết kế thuật toán này có thể được nói ngắn gọn như sau: Cho T và N, tìm C và P sao cho Dove là nhỏ nhất

Tiêu chuẩn tối ưu hoá

Nếu C và P là một giải pháp của vấn đề cực tiểu hoá, khi đó nó phải thoả mãn hai tiêu chuẩn sau:

• Điều kiện của thuật toán người láng giềng gần nhất:

n m S x

S

n

X c

1 n = 1, 2, …, N Điều kiện này cho rằng codevector Cn là trung bình của tất cả các vector huấn luyện, các vector ở trong miền mã hoá Sn Thêm vào đó có một điều chắc chắn là có ít nhất một vector huấn luyện thuộc vào mỗi miền (mẫu số ở công thức trên phải khác 0)

Thiết kế thuật toán LBG

Thuật toán LBG là thuật toán đệ quy, việc giải quyết dựa vào sự lựa chọn hai tiêu chuẩn tối ưu trên Thuật toán yêu cầu một codebook ban đầu

Trang 40

C(0) Đây là codebook khởi tạo, thu được qua quá trình phân tách Trong phương thức này, một codebook được đặt là giá trị trung bình của toàn bộ dãy huấn luyện Codevector này được phân tách thành hai Thuật toán lặp được chạy với hai vector được khởi tạo cho codebook Hai codebook sau được phân thành bốn và quá trình xử lý được lặp lại cho đến khi thu được số lượng codebook mong muốn Thuật toán này được tổng kết như sau:

Thiết kế thuật toán LBG:

1 Cho T ε>0 là số lượng nhỏ nhất có giá trị cố định

* 1

* 0

1

1

i N

i i

c c

c c

2 Lặp lại thuật toán: Đặt D ove( )0 =D ove* Đặt chỉ số lặp i = 0

i n

i n m

c

c x Q i

n

c

m

x Q

m 1

1X

iii Đặt i = i+1

iv Tính

Ngày đăng: 15/05/2014, 10:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w