TÓM TẮT LUẬN VĂN Đề tài luận văn “Thiết kế hệ thống nhận dạng tiếng nói Tiếng Việt theo quy trình thiết kế ASIC “ với mục tiêu thiết kế một hệ thống nhận dạng giọng nói Tiếng Việt với gi
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN CHÍ TÂM
THIẾT KẾ HỆ THỐNG NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT
THEO QUY TRÌNH THIẾT KẾ ASIC
Chuyên ngành: Kỹ thuật điện tử
Mã số: 60 52 02 03
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, THÁNG 07 NĂM 2016
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG TP.HCM Cán bộ hướng dẫn khoa học: PGS.TS Hoàng Trang……… Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1: PGS.TS Nguyễn Văn Hiếu ……… (Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2: TS Trương Quang Vinh……… (Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại Trường Đại Học Bách Khoa, ĐHQG TP.HCM ngày 19 tháng 07 năm 2016
Thành phần hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 TS Lê Chí Thông (Chủ tịch)
2 TS Trương Công Dung Nghi (Thư ký)
3 PGS.TS Nguyễn Văn Hiếu (Ủy viên phản biện)
4 TS Trương Quang Vinh (Ủy viên phản biện)
5 TS Trần Hoàng Linh (Ủy viên)
Xác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có)
Trang 3- -
Số: /BKĐT Khoa: Điện – Điện tử Bộ Môn: Điện Tử NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: ……Nguyễn Chí Tâm…… ……… MSHV:…7140386……
Ngày, tháng, năm sinh: 17/07/1991 ……… Nơi sinh: …Bình Phước Chuyên ngành: ….Kỹ thuật điện tử……… … Mã số : …60 52 02 03 I TÊN ĐỀ TÀI: Thiết kế hệ thống nhận dạng tiếng nói Tiếng Việt theo quy trình thiết kế ASIC II NHIỆM VỤ VÀ NỘI DUNG: Nhiệm Vụ : Thiết kế bộ trích đặc trưng tiếng nói MFCC theo quy trình AISC ứng dụng trong hệ thống nhận dạng giọng nói Tiếng Việt Nội Dung : - Thiết kế bộ trích đặc trưng MFCC với cấu hình động có thể thay đỗi được thông qua phần mềm - Thực hiện bộ trích đặc trưng MFCC theo quy trình ASIC từ các bước mô tả bằng ngôn ngữ phần cứng đến bước thiết kế vật lý III NGÀY GIAO NHIỆM VỤ : (Theo QĐ giao đề tài) 17/06/2015………
IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Theo QĐ giao đề tài) 17/06/2016………
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): PGS.TS.HoàngTrang………
Nội dung và yêu cầu LVTN đã được thông qua Bộ Môn Tp.HCM, ngày… tháng… năm 20 CHỦ NHIỆM BỘ MÔN NGƯỜI HƯỚNG DẪN CHÍNH PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ):
Đơn vị:
Ngày bảo vệ :
Điểm tổng kết:
Nơi lưu trữ luận văn:
Trang 4LỜI CẢM ƠN
Lời đầu tiên tôi chân thành cảm ơn sự hướng dẫn nhiệt tình, đóng góp ý kiến quý báu của thầy Hoàng Trang và Thầy Phạm Đăng Lâm cùng với sự hỗ trợ của bộ môn Kỹ Thuật Điện Tử, khoa Điện – Điện Tử, Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh
Tôi cũng xin chân thành gửi lời cảm ơn đến bạn Ngô Thành Đạt, sinh viên năm 4 chương trình tiên tiến, Đại Học Bách Khoa đã hỗ trợ tôi rất nhiều để tôi có thể hoàn thành tốt luận văn lần này
Tôi vô cùng biết ơn gia đình luôn ủng hộ và tạo điều kiện tốt nhất để tôi tiếp tục học tập chương trình thạc sĩ sau 4 năm đại học
Luận văn thạc sĩ được xem như bước đệm thứ 2 sau khi tốt nghiệp đại học, nó tiếp thêm tri thức, kinh nghiệm chuyên sâu về nghành kỹ thuật điện tử nói chung và ngành thiết kế vi mạch theo luồng thiết kế ASIC nói riêng
Đề tài không tránh khỏi các sai sót, kính mong quý thầy cô đánh giá, đóng góp phản hồi để để tài được hoàn thiện hơn
Xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 17 tháng 06 năm 2016
Trang 5TÓM TẮT LUẬN VĂN
Đề tài luận văn “Thiết kế hệ thống nhận dạng tiếng nói Tiếng Việt theo quy trình thiết kế ASIC “ với mục tiêu thiết kế một hệ thống nhận dạng giọng nói Tiếng Việt với giải thuật phổ biến để trích xuất đặc trưng tiếng nói là giải thuật MFCC nhưng khác với các thiết kế đã từng được trình bày trong các đề tài khác về MFCC trong và ngoài nước trước đó
Đề tài này tập trung thiết kế kiến trúc MFCC linh động có cấu hình thay đổi được có thể phối hợp nhịp nhàng với phần mềm để đạt được hiệu quả trích xuất đặc trưng tốt nhất
Kiến trúc được thiết kế theo luồng thiết kế ASIC từ mô tả, sử dụng ngôn ngữ phần cứng cho đến bước tổng hơp và thiết kế vật lý cho vi mạch
Trang 6SUMMARY OF THESIS
The thesis " Designing Vietnamese speech recognition systems with ASIC design flow"
with the goal of designing a Vietnamese speech recognition system with algorithms to extract characteristic the voice is MFCC, however, it is different from technical designing have been shown in other topics of domestic and foreign MFCC earlier
This thesis focuses on designing flexible MFCC architecture with the changed configuration can be adjusted by the software to achieve the best extraction characteristics
The architecture is designed in ASIC design flows from the description by hard language to synthesize and layout for IC
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Tôi xin cam đoan nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Thầy Hoàng Trang và Thầy Phạm Đăng Lâm
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Học Viên
Nguyễn Chí Tâm
Trang 8MỤC LỤC
MỤC LỤC v
DANH SÁCH HÌNH MINH HỌA vii
DANH SÁCH BẢNG SỐ LIỆU ix
1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 12
1.1 Tổng quan tình hình nghiên cứu 12
1.2 KIẾN TRÚC PHẦN CỨNG TRÍCH ĐẶC TRƯNG MFCC 14
1.2.1 Pre-emphasis 16
1.2.2 Windowing 17
1.2.3 Phân tích phổ dùng FFT 18
1.2.4 Bộ lọc tần số Mel 19
1.2.5 Phân tích cepstral 20
1.2.6 Tính toán năng lượng 21
1.2.7 Hệ số delta 21
1.2.8 Kết luận 21
2 Kiến trúc phần cứng trích đặc trưng MFCC 22
2.1 Kiến trúc tổng quan 22
2.2 Kiến trúc luồng dữ liệu và điều khiển chi tiết 25
2.2.1 Main control 25
2.2.2 Khối pre_emphasis 38
2.2.3 Khối window 51
2.2.3 Khối FFT 55
2.2.4 Khối tính biên độ 61
2.2.5 Khối bộ lọc Mel 66
2.2.6 Khối tính Cepstrum 74
2.2.7 Khối Copy_Energy 77
2.2.8 Khối tính Delta 80
2.2.9 Kết luận 87
Trang 92.3 KẾT QUẢ MÔ PHỎNG 87
2.3.1 Môi trường mô phỏng 87
2.3.2 Các testcase và cấu hình 88
2.3.3 Độ chính xác 89
2.3.4 Tính thời gian thực 91
3 KẾT QUẢ THIẾT KẾ VẬT LÝ 93
3.1 Kết quả tổng hợp từ cấp dộ RTL xuống lớp cổng 93
3.2 Thiết kế vật lý cho bản vẽ chip 96
4 THỰC NGHIỆM THIẾT KẾ MFCC TRONG HỆ THỐNG NHẬN DẠNG 98
4.1 Kết Quả Thực Nghiệm 99
4.1.1 Dữ liệu âm thanh 99
4.1.2 Mô hình kiểm tra và thử nghiệm trên phần mềm 100
4.1.3 Kết quả nhận dạng 102
4.2 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 105
4.2.1 Kết luận 105
4.2.2 Đánh giá mức độ kết quả đạt được 105
4.2.3 Ý nghĩa khoa học đề tài 106
4.2.4 Đề nghị hướng phát triển của đề tài 106
TÀI LIỆU THAM KHẢO 107
PHỤ LỤC 1 : CÁC CÔNG TRÌNH NGHIÊN CỨU VÀ BÀI BÁO KHOA HỌC 111
PHỤ LỤC 2 131
Trang 10DANH SÁCH HÌNH MINH HỌA
Hình 1.1 Trích đặc trưng trong hệ thống nhận dạng tiếng nói 12
Hình 1.2 Sơ đồ khối thuật toán trích đặc trưng 15
Hình 1.3 Đáp ứng tần số được chuẩn hóa của bộ lọc pre-emphasis 16
Hình 1.4 Phổ của tín hiệu trước và sau khi qua khối pre-emphasis 16
Hình 1.5 Tín hiệu âm thanh được chia thành các sub-khung 17
Hình 1.6 Thang đo Mel đối với tín hiệu âm tần 19
Hình 1.7 Bộ lọc tần số Mel 20
Hình 2.1 Giao tiếp trích đặc trưng MFCC trong hệ thống 22
Hình 2.2 Sơ đồ luồng dữ liệu bên trong trích đặc trưng MFCC 24
Hình 2.3 Máy trạng thái khối Main Control 28
Hình 2.4 Sơ đồ khối Pre-emphasis 38
Hình 2.5 Công thức tính Logarithm 40
Hình 2.6 Sơ đồ luồng dữ liệu thực hiện phép toán Logarithm theo phương pháp LUT 40
Hình 2.7 Sơ đồ khối Window 51
Hình 2.8 Ý nghĩa trạng thái khối Window 52
Hình 2.9 Kiến trúc tổng quát khối FFT 56
Hình 2.10 Mô tả cánh bướm đơn vị 56
Hình 2.11 Mô tả chi tiết các phép toán trong cánh bướm đơn vị 57
Hình 2.12 Mô hình chuyển trạng thái cho khối kiến trúc 57
Hình 2.13 Mô hình sơ đồ chi tiết khối FFT 59
Hình 2.14 Sơ đồ khối tính biên độ 61
Hình 2.15 Ý nghĩa trạng thái khối tính biên độ 62
Hình 2.16 Sơ đồ khối bộ lọc Mel 66
Hình 2.17 Ý nghĩa trạng thái khối bộ lọc Mel 67
Hình 2.18 Sơ đồ khối bộ tính Cepstrum 74
Hình 2.19 Máy trạng thái khối Cepstrum 75
Trang 11Hình 2.20 Máy trạng thái khối Copy_energy 78
Hình 2.21 Sơ đồ khối bộ tính Delta 80
Hình 2.22 Máy trạng thái khối Delta 81
Hình 2.23 Môi trường mô phỏng 88
Hình 3.1 Bản vẽ 3D của GDS một standard cell cơ bản 96
Hình 3.2 Các đường tín hiệu được đi dây sau bước route 97
Hình 3.3 Các macro thể hiện cho các module trong khối MFCC 97
Hình 3.4 Ví dụ về kết quả DRC được kiểm tra bằng công cụ IC validator 98
Hình 4.1 MFCC trong hệ thống nhận dạng sử dụng HMM 99
Hình 4.2 Giao diện thu âm trên kit 100
Hình 4.3 Giao diện cắt mẫu âm thanh trên phần mềm 100
Hình 4.4 Giao diện các thông số huấn luyện mô hình 101
Hình 4.5 Giao diện nhận dạng mẫu âm thanh 102
Hình 4.6 Bộ từ vựng cần nhận dạng 103
Hình 4.7 Giao diện nhận dạng phần mềm Matlab 104
Trang 12DANH SÁCH BẢNG SỐ LIỆU
Bảng 1.1 Các công trình nghiên cứu về nhận dạng tiếng nói 12
Bảng 1.2 Cấu hình trích đặc trưng MFCC 13
Bảng 1.3 Khảo sát cấu hình FFT trong trích đặc trưng MFCC 18
Bảng 2.1 Cấu hình động của kiến trúc trích đặc trưng MFCC và giới hạn 22
Bảng 2.2 Cấu hình bộ nhớ và chức năng tương ứng 23
Bảng 2.3 Thứ tự thực hiện luồng dữ liệu MFCC 25
Bảng 2.4 Ý nghĩa các trạng thái của khối Main Control 28
Bảng 2.5 Chuyển trạng thái trong khối Main Control 28
Bảng 2.6 Ngõ ra của máy trạng thái khối Main Control 29
Bảng 2.7 Ý nghĩa ngõ ra và ngõ vào của khối Main Control 37
Bảng 2.8 Ý nghĩa trạng thái khối Pre-emphasis 41
Bảng 2.9 Chuyển trạng thái trong khối Pre-emphasis 42
Bảng 2.10 Ngõ ra và ngõ vào khối Pre-emphasis 42
Bảng 2.11 Ý nghĩa ngõ ra của máy trạng thái khối Pre-emphasis 43
Bảng 2.12 Ngõ ra của máy trạng thái khối Pre-emphasis 44
Bảng 2.13 Ý nghĩa trạng thái khối Window 52
Bảng 2.14 Chuyển trạng thái trong khối Window 53
Bảng 2.15 Ý nghĩa ngõ ra và ngõ vào khối Window 53
Bảng 2.16 Ý nghĩa ngõ ra của máy trạng thái khối Window 54
Bảng 2.17 Ngõ ra của máy trạng thái khối Window 54
Bảng 2.18 Mô tả quá trình chuyển trạng thái 58
Bảng 2.19 Chi tiết chức năng của các thành phần trong khối FFT 59
Bảng 2.20 Ý nghĩa trạng thái khối tính biên độ 62
Bảng 2.21 Chuyển trạng thái trong khối tính biên độ 62
Bảng 2.22 Ý nghĩa ngõ ra và ngõ vào khối Biên độ 63
Bảng 2.23 Ý nghĩa ngõ ra của máy trạng thái khối tính biên độ 63
Bảng 2.24 Ngõ ra của máy trạng thái khối tính biên độ 64
Trang 13Bảng 2.25 Ý nghĩa các trạng thái khối Mel 67
Bảng 2.26 Chuyển trạng thái trong khối bộ lọc Mel 68
Bảng 2.27 Ngõ ra và ngõ vào khối Mel 69
Bảng 2.28 Ý nghĩa các ngõ ra máy trạng thái khối Mel 69
Bảng 2.29 Ngõ ra máy trạng thái khối Mel 69
Bảng 2.30 Ý nghĩa trạng thái khối bộ lọc Cepstrum 75
Bảng 2.31 Chuyển trạng thái trong khối tính Cepstrum 76
Bảng 2.32 Ngõ ra và ngõ vào khối Cepstrum 76
Bảng 2.33 Ý nghĩa ngõ ra máy trạng thái khối Cepstrum 77
Bảng 2.34 Ý nghĩa các trạng thái khối Copy_energy 78
Bảng 2.35 Chuyển trạng thái trong khối tính Copy_energy 78
Bảng 2.36 Ý nghĩa ngõ vào và ngõ ra khối Copy_energy 79
Bảng 2.37 Ý nghĩa ngõ ra các trạng thái khối Copy_energy 79
Bảng 2.38 Ngõ ra các trạng thái khối Copy_energy 79
Bảng 2.39 Ý nghĩa trạng thái khối Delta 81
Bảng 2.40 Chuyển trạng thái trong khối tính Delta 81
Bảng 2.41 Ngõ ra và ngõ vào khối tính Delta 82
Bảng 2.42 Ý nghĩa ngõ ra các trạng thái trong khối tính Delta 82
Bảng 2.43 Ngõ ra các trạng thái trong khối tính Delta 83
Bảng 2.44 Cấu hình MFCC cho testcase 89
Bảng 2.45 Sai số lớn nhất trong mỗi testcase 89
Bảng 2.46 Sai số trung bình của các testcase 90
Bảng 2.47 thời gian tính toán tối đa của các tầng 92
Bảng 3.3 Bảng quan hệ tần số và diện tích khi tổng hợp 95
Bảng 4.1 Bộ từ vựng âm thanh nhận dạng 99
Bảng 4.2 Các công cụ thu âm 99
Bảng 4.3 Bộ từ vựng được nhận dạng 103
Bảng 4.4 Kết quả nhận dạng 104
Trang 14Bảng 4.5 Kết quả sai khi nhận dạng trên phần mềm và phần cứng 104
Trang 151 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU
1.1 Tổng quan tình hình nghiên cứu
Tiếng nói là phương tiện giao tiếp cơ bản nhất của con người Ngày nay, tiếng nói được nghiên cứu và ứng dụng trong rất nhiều lĩnh vực khác nhau, trong đó, nổi bật nhất là các hệ thống nhận dạng trong các ứng dụng bảo mật, tự động …
Tương tự như các hệ thống nhận dạng khác, mô hình nhận dạng tiếng nói bao gồm hai quá trình chính là huấn luyện và nhận dạng Theo đó, cả hai quá trình nhận dạng và huấn luyện nhận các đối tượng ngõ vào là các giá trị đặc trưng được trích xuất từ tiếng nói Như vậy trong bất cứ hệ thống nhận dạng giọng nói nào, trích đặc trưng nhằm rút trích những thông số đặc trưng nhất của tiếng nói trước khi xử lý là không thể thiếu được Điều này cũng tương tự như quá trình nhận dạng khuôn mặt, dấu vân tay hay bất cứ dạng tín hiệu nào mang dữ liệu lớn Để có thể có được cái nhìn tổng quan về vị trí và vai trò của phương pháp trích đặc trưng, hình 1.1 mô tả chi tiết về trích đặc trưng trong hệ thống nhận dạng tiếng nói
Trưng
Huấn Luyện thông số Mô hình
Nhận Dạng Kết quả
Hình 1.1 Trích đặc trưng trong hệ thống nhận dạng tiếng nói
Hiện nay có rất nhiều các phương pháp trích đặc trưng trong hệ thống nhận dạng tiếng nói, một số thống kê và khảo sát sau đây nêu bật tình hình nghiên cứu liên quan đến nhận dạng tiếng nói và các ứng dụng tương ứng
Bảng 1.1 Các công trình nghiên cứu về nhận dạng tiếng nói
Trang 16Dựa trên những thống kê về tình hình nghiên cứu có thể thấy được phương pháp
trích đặc trưng dựa trên tần số MFCC (Mel-frequency cepstral coefficients) được lựa
chọn chủ yếu Phân tích chi tiết hơn cấu hình bên trong của phương pháp trích đặc
trưng MFCC, bảng 1.2 mô tả các thống kê cho thấy những cấu hình thông dụng tương
Số từ Số
điểm trên Frame
Tỷ lệ Overlap
Số điểm FFT
Số bộ lọc Mel
Số Cepstral
Bậc Delta
[13] FPGA English 11 160 50% 256 33 12 Bậc 2 [14] FPGA
Trang 17Theo như bảng 1.2, có thể khái quát hoá cấu hình trích đặc trưng MFCC với những đặc trưng nổi bật sau
Các cấu hình MFCC như là số điểm tỉ lệ chồng lấp, số điểm FFT, số cepstrum hoặc cách tính delta là khác nhau cho từng hệ thống
Các ngôn ngữ khác nhau hoặc số từ vựng thay đổi yêu cầu các cấu hình MFCC khác nhau
Các kiến trúc MFCC phần cứng thường cứng nhắc trong các cấu hình vì vấn
vì nhiều vấn đề liên quan đến độ chính xác và tài nguyên
Để có thể cải thiện hai vấn đề này, một kiến trúc phần cứng MFCC động được giới thiệu với khả năng thiết lập các giá trị như số điểm lấy mẫu trên một khung dữ liệu âm thanh, chiều dài một khung dữ liệu, tỉ lệ chồng lấp, số điểm FFT, số cepstrum
và bậc tính hệ số delta được giới thiệu Với một thiết kế động như trên, kiến trúc phần cứng MFCC có thể đáp ứng trong hầu hết các hệ thống/thiết bị nhận dạng tiếng nói một cách hiệu quả Trước nhất, việc phân tích lý thuyết và phương pháp cũng như các kiến trúc thành phần được đặc tả chi tiết
1.2 KIẾN TRÚC PHẦN CỨNG TRÍCH ĐẶC TRƯNG MFCC
Như đã trình bày ở chương 1, việc tiếp cận phương pháp trích đặc trưng MFCC cho phép tạo tiền đề thành công cho toàn bộ hệ thống vì phương pháp này đã chứng minh được hiệu năng của nó trong hầu hết các ứng dụng cũng như nghiên cứu được khảo sát Trước hết, lý thuyết về trích đặc trưng MFCC được thuyết mình Sau đó cấu hình MFCC được khảo sát và quyết định trước khi thực thi chi tiết phần cứng
Sơ đồ giải thuật:
Trang 18Blocking
Delta
MFCC
Hình 1.2 Sơ đồ khối thuật toán trích đặc trưng
Mô hình lý thuyết như hình 1.2 cho thấy các kiến trúc khối cơ bản của trích đặc trưng MFCC Lần lượt từng khối chức năng được phân tích, xây dựng phần cứng từ
lý thuyết mô tả
Trang 191.2.1 Pre-emphasis
Tín hiệu sau khi được số hóa được lọc với bộ tiền lọc pre_emphasis có đáp ứng xung hữu hạn bậc nhất Bộ tiền lọc pre-emphasis được sử dụng để khuếch đại các tín hiệu ở các mức tần số cao Hàm truyền của bộ lọc được cho bởi phương
trình (1.1), trong đó tham số a tiêu biểu từ 0.9 đến 1 Trong miền thời gian, mối quan hệ giữa ngõ ra với ngõ vào được chỉ ra trong phương trình (1.2), với si là điểm thứ i của tín hiệu tiếng nói khi chưa qua bộ lọc và si’ là điểm thứ i của tín
hiệu tiếng nói sau khi được pre- emphasis
Trong các hệ thống nhận dạng tiếng nói bằng phần mềm thì a = 0.97, khi đó đáp
ứng tần số của bộ lọc được chỉ ra trong hình 2.2 và phổ tín hiệu trước và sau bộ lọc được chỉ ra trong hình 2.3
Hình 1.3 Đáp ứng tần số được chuẩn hóa của bộ lọc pre-emphasis
Hình 1.4 Phổ của tín hiệu trước và sau khi qua khối pre-emphasis
Vấn đề nảy sinh khi tiếp cận phần cứng là giá trị hệ số a là số thập phân Việc sử
dụng các giá trị gần đúng trong tiếp cận phần cứng có thể sẽ ảnh hưởng đến kết quả
nhận dạng Việc thiết lập cứng giá trị a cũng là một trong những vấn đề cần quan tâm
Khung blocking
Trang 20Bởi vì tín hiệu tiếng nói là tín hiệu biến đổi chậm theo thời gian, trong một hệ thống nhận dạng tiếng nói thì tiếng nói được phân đoạn thành những khoảng thời gian ngắn được gọi là các khung Để cho các thông số của khung ít thay đổi, thông thường có 50% chồng lấp giữa các khung kế cận nhau, như trong hình 1.5
Hình 1.5 Tín hiệu âm thanh được chia thành các sub-khung
(http://leader.ic.msu.su/~farg/lai/continuousspeech.html)
Trong các hệ thống nhận dạng tiếng nói bằng phần mềm, tiếng nói được chia thành những khung có chiều dài 20 ms với 10 ms chồng lấp Khi tiếng nói được lấy mẫu với tần số 8 khz sẽ có 160 mẫu trong mỗi khung và có 80 mẫu được chồng lấp giữa 2 khung kế cận nhau Tuy nhiên, chồng lấp 50% không phải luôn luôn được sử dụng, các giá trị 40%, 60% hay thậm chí là 70% cũng được xem là những giá trị chồng lập hiệu quả Mặt khác, một số hệ thống không nhất thiết sử dụng 8 khz là tần
số lấy mẫu vì các nghiên cứu cho thấy một số đặc trưng nằm ở miền tần số cao hơn
1.2.2 Windowing
Một bộ lọc cửa sổ thường được ứng dụng để gia tăng tính liên tục giữa các khung kế cận nhau Một trong các cửa sổ được dùng phổ biến nhất trong nhận dạng tiếng nói đó chính là cửa sổ Hamming được xác định bởi phương trình (1.3), trong đó L là chiều dài cửa sổ và nó bằng với chiều dài của các khung
Trang 211.2.3 Phân tích phổ dùng FFT
Biến đổi Fourier nhanh (FFT) được dùng để tính toán phổ của tín hiệu tiếng nói
Đó chính là sự thực thi phép biến đổi Fourier rời rạc (DFT) đạt hiệu suất cao với điều kiện ràng buộc là phổ được đánh giá tại những tần số rời rạc, những tần số này
được nhân với f s /N (các tần số trực giao với nhau), trong đó f s là tần số lấy mẫu, N là chiều dài của DFT Thuật toán FFT chỉ yêu cầu khối lượng tính toán tỷ lệ N log
N, trong khi đó DFT yêu cầu khối lượng tính toán tỷ lệ với N 2
Độ phân giải tần số của DFT bị giới hạn bởi 2 yếu tố: chiều dài của tín hiệu
và chiều dài của DFT Nếu tín hiệu được tạo ra bởi việc cộng hai tín hiệu sin mà tần
số của hai tín hiệu này rất gần với nhau, khi đó để phân biệt hai tần số này chúng
ta phải quan sát tín hiệu với phân đoạn đủ dài Đối với chiều dài của DFT, phổ
tần số được tạo ra bởi N điểm DFT bao gồm N/2 điểm cách đều nhau phân bố giữa
0 đến phân nửa tần số lấy mẫu Vì vậy để tách rời hai tần số có khoảng cách gần nhau thì khoảng cách giữa các điểm phải nhỏ hơn khoảng cách giữa hai đỉnh Ví
dụ khi các frame được cửa sổ hóa với chiều dài là 160 điểm, chiều dài DFT được thiết lập là 256 điểm để đạt được độ phân giải tần số tốt với khối lượng tính toán
có thể chấp nhận được khi thực thi phần cứng thực tế Sau khi biến đổi FFT 256 điểm, chỉ có biên độ của 128 điểm đầu tiên được dùng cho bước tính toán tiếp theo bởi tính chất đối xứng của phép biến đổi FFT
Biến đổi FFT là một trong những bước chiếm nhiều thời gian cũng như tài nguyên của hệ thống Do đó việc tiếp cận phần cứng FFT sẽ ảnh hưởng lớn đến toàn bộ kiến trúc trích đặc trưng MFCC Một số kiến trúc FFT mà tiếp cận phần cứng cũng được
đề cập ở bảng 2.1
Bảng 1.3 Khảo sát cấu hình FFT trong trích đặc trưng MFCC
Tác giả Cấu hình Thử nghiệm trên Giải Thuật
Thời gian thực thi khối FFT
Trang 22ra một cách riêng lẻ được
Hệ thống thính giác của con người không tuyến tính với tần số âm thanh nhận được, một thang đo Mel được dùng để ánh xạ tần số âm thanh nhận được sang thang đo tuyến tính Thang tần số này được định nghĩa bởi phương trình (1.5) và được minh họa ở hình 2.5 Nó xấp xỉ như thang tuyến tính trong khoảng từ 0 đến 1000Hz, xấp xỉ như thang logarithm bên ngoài tần số 1000Hz
Hình 1.6 Thang đo Mel đối với tín hiệu âm tần
(https://courses.cit.cornell.edu/ece576/finalprojects/f2008/pae26_jsc59/pae26_jsc59) Mel(f mel ) = 2595 log 10 (
Băng thông bộ lọc thang đo Mel thông thường trong nhận dạng tiếng nói bao gồm một số bộ lọc bandpass hình tam giác được phân bố bên trong băng thông tín hiệu Chúng phân bố cách đều nhau trên thang Mel và băng thông của chúng được thiết kế sao cho điểm 3db nằm ở khoảng giữa hai bộ lọc kế cận nhau như hình 2.6
Trang 23Hình 1.7 Bộ lọc tần số Mel
(https://courses.cit.cornell.edu/ece576/finalprojects/f2008/pae26_jsc59/pae26_jsc59)
Số lượng bộ lọc là một trong những thông số ảnh hưởng đến sự chính xác của
hệ thống nhận dạng tiếng nói Đối với mỗi frame, ngõ ra của bộ lọc là một vectơ hệ
số công suất gồm 27 phần tử Hệ số công suất thứ k của frame thứ n được tính toán
bởi phương trình (1.6), trong đó Snj là điểm phổ thứ j của frame thứ n, và fckj là chỉ
hệ số thứ j của bộ lọc thứ k
Khi số lượng bộ lọc ít đi, các giá trị ở tần số cao hơn không được tính toán thông qua bộ lọc Cố định bộ lọc hay cố dịnh các hệ số bộ lọc là vấn đề quan trọng trong tiếp cận phần cứng vì việc thay đổi những thông số này ảnh hưởng nghiêm trọng đến việc hiệu năng hệ thống Một vấn đề đáng quan tâm là độ chính xác của bộ lọc, việc
sử dụng bộ lọc tam giác với các hệ số thập phân cho thấy vấn đề hiệu năng khi sử dụng các giá trị gần đúng
1.2.5 Phân tích cepstral
Tín hiệu tiếng nói s có thể được mô tả như là kết quả của phép tích chập tín
hiệu kích thích với đáp ứng xung của bó thanh âm
đó phổ của tín hiệu kích thích biểu diễn các thành phần phổ của tiếng nói Đối với nhận dạng tiếng nói, đường bao của phổ hữu ích hơn các thành phần phổ, vì vậy chúng ta có thể sử dụng phép biến đổi Fourier ngược để tìm đường bao của phổ Cepstrum được định nghĩa là phép biến đổi Fourier ngược của các hệ số công suất sau khi lấy logarithm Nó có thể được đơn giản hóa như là phép biến đổi DCT
C np = [∑ ( ) (( ) )] , p = 1, 2, (1.10)
Trang 24Vấn đề xảy ra khi tiếp cận phần cứng như các khối chi tiết ở trên, việc tính logarit
bằng các phương pháp gần đúng cũng như số hệ số hàm cos là những vấn đề đáng
quan tâm
1.2.6 Tính toán năng lượng
Công suất của mỗi khung cũng là thành phần trong đặc trưng MFCC Nó được
tính toán như là logarithm của công suất tín hiệu, có nghĩa là đối với khung thứ n, mỗi khung có 160 mẫu S nl trong đó l = 1, 2, … 160
( ) ( ) ( ) (1.12) ( ) ( ) ( ) (1.13) Phương trình (1.12) còn được gọi là sai phân lùi, còn phương trình (1.13) còn được gọi là sai phân tiến Vì vậy, các hệ số delta có thể được tính toán bằng cách sử dụng công thức hồi quy ( 1.14), trong đó dn là vectơ hệ số delta của khung thứ n
Để tính hệ số delta dn dùng các vectơ hệ số dừng từ cn-2 đến cn+2 với cn là vectơ bao gồm log năng lượng và 12 hệ số cepstral của khung thứ n
D n = ( ) ( )
Một số phương pháp sử dụng thêm các công thức tính delta bậc 2 nhằm tăng độ chính xác của hệ thống Việc chọn lựa số bậc ảnh hưởng không nhỏ đến chất lượng của hệ thống sau này
Trang 252 Kiến trúc phần cứng trích đặc trưng MFCC
2.1 Kiến trúc tổng quan
Xem kiến trúc MFCC đóng vai trò như một IP trong hệ thống hoàn chỉnh với core ARM làm lõi điều khiển Kiến trúc phần cứng MFCC giao tiếp với core ARM thông qua giao thức APB thông dụng như hình 2.5
Trích đặc trưng MFCC
Hình 2.1 Giao tiếp trích đặc trưng MFCC trong hệ thống
Thông qua giao thức bus APB khối trích đặc trưng sẽ được thiết lập trước khi hoạt động Những thông số thiết lập mong muốn cho trích đặc trưng MFCC cũng như giới hạn của các thông số này được trình bày bởi bảng 2.2 sau đây
Bảng 2.1 Cấu hình động của kiến trúc trích đặc trưng MFCC và giới hạn
Số điểm trên một khung dữ liệu (điểm) Tối đa 1024
Số điểm bộ lọc cửa sổ window (điểm) Tối đa 1024
Số đặc trưng cho mỗi vector đặc trưng
Trang 26Với các đề xuất như hình 2.2 cho thấy 7 giá trị có thể thiết lập được cho khối kiến trúc MFCC với tầm giá trị rộng có thể bao hàm tất cả các giá trị đã báo cáo trong các nghiên cứu gần đây Khả năng thiết lập thông qua giao thức APB bus cho phép cấu hình khối MFCC trước khi hoạt động Ngoài ra kiến trúc phần cứng tiếp cận dựa trên các phép toán dấu chấm động 32 bit chuẩn IEEE 754 cho phép thiết lập bất cứ giá trị hằng số là số thập phân và cho độ chính xác cao nhất có thể
Để có thể thay đổi được cấu hình đối với kiến trúc phần cứng MFCC, cần nhiều các bộ nhớ trung gian lưu trữ các dữ liệu cần thiết Vì các phép toán trong khối MFCC
đề nghị tiếp cận dấu chấm động Bảng 2.3 mô tả các bộ nhớ với các dung lượng tương ứng cần thiết
Bảng 2.2 Cấu hình bộ nhớ và chức năng tương ứng
2 Bộ nhớ lưu trữ ngõ ra của bộ tiền lọc Pre-emphasis 4 K
2 Bộ nhớ lưu trữ ngõ ra của bộ lọc cửa sổ window 4 K
1 Bộ nhớ lưu trữ hệ số cửa sổ Window 4 K
4 Bộ nhớ lưu trữ ngõ ra của bộ FFT 4 K
4 Bộ nhớ nội lưu giá trị trung gian 4 K
2 Bộ nhớ lưu trữ ngõ ra của bộ tính biên độ 4 K
2 Bộ nhớ lưu trữ ngõ ra của bộ lọc Mel 4 K
Trang 27Bộ nhớ MFCC (4 K)
Hình 2.2 Sơ đồ luồng dữ liệu bên trong trích đặc trưng MFCC
Chính xác thứ tự thực thi trích đặc trưng MFCC được mô tả chi tiết thông qua
giao thức APB như bảng sau
Trang 28Bảng 2.3 Thứ tự thực hiện luồng dữ liệu MFCC
STT Nội dung thực hiện
1 Các bộ nhớ lưu trữ hệ số (Window, FFT, Log, Mel) được chép vào trong các bộ nhớ nội
thông qua chuẩn bus APB
2 Các thông số thiết lập cấu hình trích đặc trưng MFCC (hệ số a, tỉ lệ chồng lấp, số điểm trên
một khung dữ liệu, số bộ lọc Mel, Số Cepstrum) được thiết lập thông qua chuẩn bus APB
3 Tín hiệu âm thanh sau khi lấy mẫu được chép lên bộ nhớ nội (Bộ nhớ lưu trữ âm thanh)
4 Khối trích đặc trưng MFCC được kích thích thông qua chuẩn giao tiếp APB Cụ thể thanh
ghi Start_Register được ghi giá trị 1 cho phép tích cực khối MFCC hoạt động
5 Khối MFCC hoạt động trích đặc trưng âm thanh đã lưu trữ trên bộ nhớ nội trước đó
6
Khối trích dặc trưng MFCC hoàn tất trích đặc trưng và báo tín hiệu mfcc_finish để thông báo các khối kết nối khác (một kiến trúc giải mã có thể nhận tín hiệu này và bắt đầu thực thi)
2.2 Kiến trúc luồng dữ liệu và điều khiển chi tiết
Để có thể hiểu được lần lượt việc tính toán bên trong khối MFCC, hình 2.8 được
phân tích sâu hơn Theo như thuật toán, bản chất thứ tự thực hiện các bước là không
hề thay đổi (Pre-emphasis-Window-FFT-Mel-Cepstrum-Delta) Các khối tính toán
này không thể thiếu được các bộ nhớ nội lưu trữ dữ liệu tính toán trung gian cũng như
lưu trữ các hệ số trong các phép toán
Tuy nhiên, nếu chỉ tính toán đơn thuần từng bước cho từng khung dữ liệu, chỉ cần
1 bộ nhớ tạm trung gian ở ngõ ra Nhưng hình 2.8 cho thấy hai bộ nhớ trung gian ở
ngõ ra Việc thiết kế hai bộ nhớ trung gian ở ngõ ra cho phép thực hiện cơ chế đường
ống Cụ thể giá trị ngõ ra của từng bước thuật toán lần lượt được lưu xen kẽ nhau lên
hai bộ nhớ trung gian Như vậy trong khi một bộ nhớ được lưu thì bộ nhớ còn lại được
đọc ra để tính toán ở bước kế tiếp Nhờ vậy việc tính toán trên mỗi bước thuật toán
với 1 khung tương ứng được thực hiện liên tục nhằm tăng tốc hệ thống trích đặc trưng
nhanh nhất có thể
Kiến trúc chi tiết các bước thuật toán lần lượt được giới thiệu chi tiết sau đây
2.2.1 Main control
Khối Main Control giữ nhiệm vụ điều khiển tất cả quá trình tính toán Ở đây ta sử
đụng kỹ thuật đường ống để giảm thời gian tính toán Ta chia đường ống thành 6 tầng:
Pre-emphasis, Window, FFT, Biên độ, Mel, Cepstral Trong máy trạng thái từng khối
đều có trạng thái khởi đầu để bắt đầu tính toán một tầng và trạng thái WAIT để dừng
sau khi tính toán xong, đồng thời đợi cờ báo hiệu (tín hiệu enable) để khởi động lại
tầng đó
Trang 29Khối Main Control điều khiển thông qua các tác vụ:
- Xuất ra các enable khởi động các tầng tính toán
- Quy định trong mỗi tầng memory nào được đọc và memory nào được ghi Ta
có sau mỗi tầng có ít nhất 2 memory để vừa làm nhiệm vụ lưu trữ data đã tính toán ở tầng đó và cung cấp data cho tầng phía sau Main Control cung cấp các tín hiệu như các Switch chuyển đổi nhiệm vụ các memory sao cho đồng bộ hoạt động giữa 2 tầng liên tiếp
Công dụng của tín hiệu enable của các tầng rất quan trọng vì nó đồng bộ cả hệ thống nhưng khi thiết kế ta gặp phải vấn đề như sau:
Xét ví dụ như sau: trạng thái P_W_F nghĩa là trạng thái thực hiện Pre-emphasis, Window và FFT cùng lúc và enable của 3 tầng này bằng 1 trong suốt trạng thái P_W_F Khi Main Control đến P_W_F, cờ enable của Pre-emphasis lên 1, truyền đến máy trạng thái khối Pre-emphasis làm cho máy trạng thái này từ trạng thái WAIT của lần chạy trước đó chuyển sang trạng thái bắt đầu lần tính toán mới Khi tính xong, máy trạng thái khối Pre-emphasis về trạng thái WAIT để đợi cờ enable thì thấy cờ enable của Pre-emphasis vẫn đang là 1 (do Main Control vẫn đang ở P_W_F) nên bắt đầu một lần tính toán nữa với cùng một data như trước Tương tự cho 2 tầng kia Kết quả là 3 tầng này sẽ chạy vô tận và máy trạng thái riêng mỗi tầng sẽ không tính toán đồng bộ theo ý của Main Control được
Để giải quyết vấn đề này có thể dùng phương pháp bắt tay nhưng sẽ làm thiết kế phức tạp hơn vì trong cùng trạng thái P_W_F thì có 3 máy trạng thái của 3 tầng cùng hoạt động nên khó thực hiện bắt tay
Ta thiết kế máy trạng thái như trong hình: các trạng thái kích thích các tầng hoạt động chỉ tồn tại trong 1 chu kỳ clock tức là các tín hiệu enable cho các tầng như 1 xung trigger Sau khi trigger 1 clock thì máy trạng thái Main Control trở về trạng thái WAIT, WAIT_N hay WAIT_M để chờ counter đếm tràn sẽ chuyển đến một trạng thái kích thích các tầng khác và sau 1 clock thì quay về trạng thái chờ
Việc từ trạng thái chờ (WAIT, WAIT_N hay WAIT_M) chuyển qua trạng thái nào được quyết định bằng giá trị thanh ghi state trong thiết kế Thanh ghi này được cộng
Trang 30dồn mỗi khi counter của trạng thái chờ tràn để chuyển qua trạng thái khác Thứ tự các
trạng thái được sắp xếp hợp lý
Trang 31Hình 2.3 Máy trạng thái khối Main Control
Bảng 2.4 Ý nghĩa các trạng thái của khối Main Control
STT Present state Ý nghĩa
2 PRE Cho phép khối Pre-emphasis hoạt động
3 P_W Cho phép khối Pre-emphasis và Window cùng hoạt động
4 P_W_F Cho phép khối Pre-emphasis, Window và FFT cùng hoạt động
5 P_W_F_A Cho phép khối Pre-emphasis, Window, FFT và Biên độ cùng
9 F_A_M_C Cho phép khối FFT, Biên độ, Mel và Cepstrum cùng hoạt động
10 A_M_C Cho phép khối Biên độ, Mel và Cepstrum cùng hoạt động
11 M_C Cho phép khối Mel và Cepstrum cùng hoạt động
12 CEP Cho phép khối Cepstrum hoạt động
13 DELTA Cho phép khối Delta hoạt động
14 ENERGY Cho phép khối thực hiện chức năng chép các log năng lượng từ
memory chứa log năng lượng vào memory kết quả hoạt động
15 WAIT Đợi một khoảng thời gian cho các tầng tính toán xong
16 WAIT_N Đợi một khoảng thời gian cho các tầng tính toán xong
17 WAIT_M Đợi một khoảng thời gian cho các tầng tính toán xong
18 WAIT_C Đợi một khoảng thời gian cho lần tính Cepstrum cuối cùng tính
Bảng 2.5 Chuyển trạng thái trong khối Main Control
STT Present state Next state Điều kiện chuyển trạng thái
Trang 326 P_W_F_A_M WAIT Sau 1 chu kỳ clock
7 P_W_F_A_M_C WAIT_N Sau 1 chu kỳ clock
WAIT_M Sau 1 chu kỳ clock
10 INC_LOOP P_W_F_A_M_C Sau 1 chu kỳ clock
Bảng 2.6 Ngõ ra của máy trạng thái khối Main Control
Trang 40Bảng 2.7 Ý nghĩa ngõ ra và ngõ vào của khối Main Control
Ngõ ra máy trạng thái Số bit Mô tả
preem_state_en 1 Chân cho phép khối Pre-emphasis
window_state_en 1 Chân cho phép khối Window
fft_state_en 1 Chân cho phép khối FFT
amp_state_en 1 Chân cho phép khối Biên độ
mel_state_en 1 Chân cho phép khối Mel
cep_state_en 1 Chân cho phép khối Cepstrum
delta_state_en 1 Chân cho phép khối Delta
preem_win_change_mem 1 Chân cho phép đổi trạng thái đọc/ghi của các
memory chứa kết quả khối Pre-emphasis win_fft_change_mem 1 Chân cho phép đổi trạng thái đọc/ghi của các
memory chứa kết quả khối Window fft_amp_change_mem 1 Chân cho phép đổi trạng thái đọc/ghi của các
memory chứa kết quả khối FFT amp_mel_change_mem 1 Chân cho phép đổi trạng thái đọc/ghi của các
memory chứa kết quả khối Biên độ mel_cep_change_mem 1 Chân cho phép đổi trạng thái đọc/ghi của các
memory chứa kết quả khối Mel result_change_mem 2 Chân cho phép lựa chọn địa chỉ đọc/ghi memory
chứa kết quả cuối cùng từ các khối Cepstrum, Copy Log năng lượng và Delta