Thuật toán đối sánh theo hệ số tương quan

Một phần của tài liệu Tìm hiểu, nghiên cứu và ứng dụng một số thuật toán nén tiếng nói (Trang 51)

Ý tƣởng:

Giả sử từ vào nhận dạng làW có dãy đặc trưng Zerocrossing là “W;{(x,y)}*” và trong cơ sở dữ liệu có N từ mẫu có đặc trưng là “Wj;{(x’,y’)}*”.

Từ dãy “W;{(x,y)}*” của từ vào W ta có dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛).

Từ dãy “Wj;{(x’,y’)}*” của các từ mẫu trong cơ sở dữ liệu ta có dãy𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).

Tính𝑟𝑘 = max

𝑗=1, 𝑁𝑟 𝑑𝑤,𝑑𝑤𝑗 =𝑟 𝑑𝑤,𝑑𝑤𝑘

Nếu rk> 0.7 ta kết luận từ vào W là từ Wktrong cơ sở dữ liệu, Wk là từ mà𝑟 𝑑𝑤,𝑑𝑤𝑘 đạt max.

50

Mô tả thuật toán:

1) Input (W); Trích dãy đặc trưng Zerocrossing “W;{(x,y)}*” ; trích dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛) từ dãy đặc trưng Zerocrossing của W.

2) Với 𝑗 = 1, 𝑁 lấy dãy đặc trưng Zerocrossing “Wj;{(x’,y’)}*” của từ trong cơ sở dữ liệu; trích dãy 𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).

3) Tính 𝑟𝑘 = max

1≤𝑗 ≤𝑁𝑟 𝑑𝑤,𝑑𝑤𝑗 =𝑟 𝑑𝑤,𝑑𝑤𝑘 .

4) Nếu 𝑟𝑘 >𝑐 khẳng định từ vào là Wk ngược lại kết luận không biết. 5) Dừng, kết thúc thuật toán.

Ở đây: - N số từ mẫu trong cơ sở dữ liệu - c là ngưỡng tin cậy, thường c > 0.7.

Lƣu ý:

Khi tính 𝑟 𝑑𝑤,𝑑𝑤𝑗 ta cần chú ý độ dài của dãy của 𝑑𝑤 và 𝑑𝑤𝑗 là khác nhau. Giả sử 𝑑𝑤 =𝑛 và 𝑑𝑤𝑗 =𝑚. Nếu n ≤ m ta phải duyệt tất cả các dãy con có độ dài n bảo toàn thứ tự của dãy 𝑑𝑤𝑗 tìm giá trị tương quan lớn nhất làm giá trị tương quan của 𝑟 𝑑𝑤,𝑑𝑤𝑗 . Trường hợp n > m ta phải duyệt tất cả các dãy con có độ dài m bảo toàn thứ tự của dãy 𝑑𝑤 tìm giá trị tương quan lớn nhất làm giá trị tương của 𝑟 𝑑𝑤,𝑑𝑤𝑗 .

51 x1 x2 … xm xm+1 xm+2 ……. xn x1' x2' ... xm' dw dwj x1' x2' … xn' xn+1' xn+2' ……. xm' x1 x2 ... xn dw dwj Trường hợp n > m Trường hợp n < m

Hình 4.2: Xét sự tương quan giữa 2 dãy

52 Khử nhiễu

(sử dụng hàm năng lượng thấp, dựa vào năng lượng tập trung)

Input file.wav từ đơn W

Trích “W;{(x,y)}*” r > rmax r = rmax; k=j j=j+1 Stop Đúng Đúng Sai Begin Trích dãy dw={x} j=1; r=0; rmax=0; k=0; c=0.7; Trích dãy dwj={x’} j <= N Sai r >= c Không biết Sai Nhận dạng được Output: Wk Đúng Tính r = r(dw,dwj)

53 4.4.2. Thuật toán đối sánh qua phép biến đổi Cosin DCT

Ý tƣởng:

Giả sử từ vào W có dãy đặc trưng Zerocrossing là “W;{(x,y)}*” và trong cơ sở dữ liệu có N từ mẫu, mỗi từ Wj có dãy đặc trưng Zerocrossing là “Wj;{(x’,y’)}*”.

Từ dãy “W;{(x,y)}*” ta có dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛). Từ dãy “Wj;{(x’,y’)}*” ta có dãy 𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).

Từ dãy 𝑑𝑤 = 𝑥𝑖 qua phép biến đổi Cosin ta được vector pw; từ dãy 𝑑𝑤𝑗 = 𝑥𝑖′ qua phép biến đổi Cosin ta được vector pwj, các vector pw, pwj là các hệ số AC của phép biến đổi Cosin với các dãy con có độ dài là 8. Tính khoảng cáchgiữa hai vector pw và pwj. Giả sử𝑑𝑘 = min

𝑗=1, 𝑁𝑑 𝑝𝑤,𝑝𝑤𝑗 =𝑑 𝑝𝑤,𝑝𝑤𝑘 . Nếu dk ≈ 0 khi đó ta kết luận từ vào là Wk.

Mô tả thuật toán:

1) Input (W);Xác định dãy đặc trưng Zerocrossing “W;{(x,y)}*” ; trích ra dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛).

2) Với 𝑗 = 1, 𝑁 lấy dãy đặc trưng Zerocrossing “Wj;{(x’,y’)}*” của từ trong cơ sở dữ liệu; trích ra dãy 𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).

3) Biến đổi Cosin dãy 𝑑𝑤 = 𝑥𝑖 ta được vector pw; Biến đổi Cosin dãy 𝑑𝑤𝑗 = 𝑥𝑖′ ta được vector pwj.

4) Tính 𝑑𝑘 = min

1≤𝑗 ≤𝑁𝑑 𝑝𝑤,𝑝𝑤𝑗 =𝑑 𝑝𝑤,𝑝𝑤𝑘 .

5) Nếu 𝑑𝑘 <𝑐 khẳng định từ vào là Wk ngược lại kết luận không biết. 6) Dừng, kết thúc thuật toán.

Ở đây: - N số phần tử có trong cơ sở dữ liệu - c là ngưỡng chọn; c >0.

Lƣu ý:

Khi tính d pw, pwj cần lưu ý số thành phần của pw và pwj có thể khác nhau, ta phải duyệt tất cả các khả năng có thể của pw và pwj như trong thuật toán tính hệ số tương quan.

54 Khử nhiễu

(sử dụng hàm năng lượng thấp, dựa vào năng lượng tập trung)

Input file.wav từ đơn W

Trích “W;{(x,y)}*” d < dmin d = dmin; k=j j=j+1 Stop Đúng Đúng Sai Begin

Biến đổi Cosin pw =DCT(dw) j=1; d=0; dmin=0; k=0; c=0; Tính d = d(pw,pwj) j <= N Sai d < c Không biết Sai Nhận dạng được Output: Wk Đúng Trích dãy dw={x} Trích dãy dwj={x’} Biến đổi Cosin pwj =DCT(dwj)

55 4.4.3. Thuật toán đối sánh qua phép biến đổi Wavelet Haar

Thực hiện việc đối sánh qua phép biến đổi Wavelet Haar quá trình tính toán và ra quyết định được thực hiện tương tự với thuật toán đối sánh qua phép biến đổi Cosin DCT, nghĩa là ta đi tính

𝑑𝑘 = min

𝑗=1, 𝑁𝑑 𝑝𝑤,𝑝𝑤𝑗 =𝑑 𝑝𝑤,𝑝𝑤𝑘

Ở đây pw là vector có được nhờ phép biến đổi Wavelet Haar của dãy𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛)được trích từ dãy đặc trưng Zerocrossing “W;{(x,y)}*” của từ vào W; pwjlà vector nhận được từ phép biến đổi Wavelet Haar của dãy 𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚) được trích từ dãy đặc trưng Zerocrossing “Wj;{(x’,y’)}*” được lưu trong cơ sở dữ liệu mẫu; k là vị trí của từ Wk trong cơ sở dữ liệu mẫu mà 𝑑 𝑝𝑤,𝑝𝑤𝑘 đạt min; dk ≈ 0 khi đó ta kết luận từ vào là từ Wk.

Chú ý rằng khi tính𝑑 𝑝𝑤,𝑝𝑤𝑗 ta phải duyệt tất cả các khả năng có thể của pw và pwj như trong thuật toán tính hệ số tương quan, vì số thành phần của pw và pwj có thể khác nhau.

4.5. Mô tả chƣơng trình ứng dụng

Chương trình được viết trên Visual C# 2012.

Hình 4.5: Giao diện chính của chương trình

Chương trình có 2 chức năng chính là Tạo mẫu và Nhận dạng từ.

 Chức năng tạo mẫu: Được tiến hành một cách độc lập do người phát triển chương trình thực hiện, với mục đích tạo một tập các mẫu đặc trưng của nhiều người làm cơ sở cho việc nhận dạng.

56 Trên thanh Menu ta chọn File\Creat Samples\Creat [C-K]

Chương trình thông báo “Bạn có muốn tạo thêm mẫu không?”

Chọn “Yes” để tiếp tục. Chương trình hiện cửa sổ Browse để chọn file .wav của từ “Có”. Sau đó tiếp tục chọn file .wav của từ “Không”

 Chức năng Nhận dạng từ: Người sử dụng đọc từ đơn qua mic, chương trình tiến hành lưu mẫu, tách Zerocrossing, sau đó đối sánh với tập mẫu. Cuối cùng dựa vào các quy tắc kết luận để đưa ra kết quả về từ vừa được đọc vào.

57 Sau đó trên cửa sổ chứa các danh sách mẫu cần kiểm tra ta chọn Menu File\Random để các mẫ được nhận dạng ngẫu nhiên hoặc chọn Sequential để các mẫ được nhận dạng tuần tự.

Chọn Pause để tạm dừng việc nhận dạng.

Cuối cùng chương trình hiển thị kết quả nhận dạng ở màn hình chính

4.6 Kết quả thử nghiệm

 Chế độ ghi âm: 11025KHz, 16bit, Mono, định dạng *.wav.  Các mẫu thử được đọc trực tiếp từ microphone của 12 người.  Số lần nói:

Bảng 4.1: Bảng số lượng mẫu thu thập hai từ “Có” và “Không”

Ngƣời nói Từ 1 2 3 4 5 6 7 8 9 10 11 12 Tổng “Có” 40 8 5 7 11 8 7 8 30 7 10 8 149 “Không” 40 8 5 7 11 8 7 8 30 7 10 8 149  Số mẫu lưu: o Từ “Có”: 149 mẫu o Từ “Không”: 149 mẫu

 Số mẫulưu đặc trưng vào cơ sở dữ liệu:

Trong 149 mẫu mỗi loại thì có một số mẫu được dùng để lấy đặc trưng, cụ thể theo bảng 4.2:

58

Bảng 4.2: Bảng số lượng mẫu hai từ “Có” và “Không” lưu đặc trưng vào cơ sở dữ liệu Ngƣời nói Từ 1 2 4 7 9 11 Tổng “Có” 25 8 7 7 20 10 77 “Không” 25 8 7 7 20 10 77

 Chạy chương trình và kết quả:

Bảng 4.3: Kết quả thử nghiệm chương trình với từ “Có”

Ngƣời thử Số lần thử Số lần đúng Tỷ lệ đúng (%) Người 1 15 8 53.3 Người 3 5 3 60 Người 5 11 9 81.8 Người 6 8 2 25 Người 8 8 5 62.5 Người 9 10 3 30 Người 10 7 6 85.7 Người 12 8 4 50

Bảng 4.4: Kết quả thử nghiệm chương trình với từ “Không”

Ngƣời thử Số lần thử Số lần đúng Tỷ lệ đúng (%) Người 1 15 11 73.3 Người 3 5 2 40 Người 5 11 6 54.5 Người 6 8 7 87.5 Người 8 8 2 25 Người 9 10 7 70 Người 10 7 4 57.1 Người 12 8 2 25

59 Kết quả thử nghiệm cũng cho thấy được sự chính xác nhất định khi nhận dạng hai từ “Có” hoặc “Không”.

 Các sai sót gặp phải:

o Nhận dạng chưa được chuẩn giọng người không có trong mẫu.

o Vẫn chưa tách bỏ được việc mẫu thử là các từ bất kì. Nghĩa là vẫn có trường hợp đưa ra kết quả khi mà từ đọc vào khác “Có” và “Không”.  Định hướng phát triển:

o Để nâng cao độ chính xác, cần phải tăng cường lọc “nhiễu” ở mức tiền xử lý.

o Kết hợp các tiêu chuẩn, thống kê trọng số, … để đánh giá đưa ra kết luận chính xác hơn cho từ cần nhận dạng.

60

KẾT LUẬN Kết quả đạt đƣợc

Luận văn đã tìm hiểu, nghiên cứu và ứng dụng một số thuật toán tìm đặc trưng tiếng nói, nén các đặc trưng tiếng nói để xây dựng ứng dụng nhận dạng tiếng nói.

Chương trình không tránh khỏi những sai sót rất mong sự góp ý, phê bình của các thầy giáo, cô giáo, các đồng nghiệp và những bạn quan tâm, tôi xin trân thành cảm ơn.

Hƣớng phát triển

Để nâng cao chất lượng bài toán ứng dụng nhận dạng tiếng nói, cần nghiên cứu tiếp về ngôn ngữ tiếng Việt,tăng cường lọc “nhiễu” ở mức tiền xử lý, kết hợp các tiêu chuẩn, thống kê trọng số, … để đánh giá đưa ra kết luận chính xác hơn cho từ cần nhận dạng. Cần nghiên cứu tiếp một số thuật toán nén để có thể tiếp tục nén các đặc trưng tiếng nói sau khi đã nén bằng Phép biến đổi DCT hoặc DWT nhằm giảm dung lượng cơ sở dữ liệu lưu mẫu.

61

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Nguyễn Quang Hoan (2006), Xử lý ảnh, Học viện Công nghệ Bưu chính Viễn thông, tr.99-103.

2. Nguyễn Thị Thanh Hà (2009), Watermarking dùng Wavelets đối với ảnh số, Luận văn thạc sĩ ngành Vật lý vô tuyến và Điện tử hướng kỹ thuật, Đại học Khoa học Tự nhiên, Đại học Quốc gia Thành phố Hồ Chí Minh, tr.38- 44.

3. Nguyễn Văn Xuất (2006), Mutilmedia, (Cấu trúc file wave), Học viện Kỹ thuật quân sự.

4. Trần Anh Tuấn(6/2012),Sử dụng điểm cắt zero để nén và giải nén dữ liệu âm thanh, tạp chí khoa học Đại học Cần Thơ, tr.36-39.

Tiếng Anh

5. HarmanpreetKaur, RamanpreetKaur (July-August 2012), “Speech compression and decompression using DCT and DWT”, International Journal Computer Technology &Applications,Vol (3), Issue (4), pp.1501- 1503.

6. M.V.Patil, Apoorva Gupta, Ankita Varma, Shikhar Salil (2013), “Audio and Speech Compression Using DCT and DWT Techniques”,International Journal of Innovative Research in Science, Engineering and Technology,Vol.(2), Issue (5), pp.1715-1718.

7. Musawir Ali, An Introduction to Wavelets and the Haar Transform,(http://www.cs.ucf.edu/~mali/haar/) School of Electrical Engineering and Computer Science.

8. O. Rioul and M. Vetterli (Oct. 1991), “Wavelets and Signal Processing”,

IEEE Signal Process, Mag, Vol (8), pp.14-38.

9. David Salomon (2004), Data Compression The Complete Reference,Springer, New York.

10.Scott Wilson (Jan 20, 2003), WAVE PCM soundfile format,

(https://ccrma.stanford.edu/courses/422/projects/WaveFormat/)Stanford University.

Một phần của tài liệu Tìm hiểu, nghiên cứu và ứng dụng một số thuật toán nén tiếng nói (Trang 51)

Tải bản đầy đủ (PDF)

(63 trang)