Các ứng dụng của lĩnh vực xử lý tiếng nói rất đa dạng: nhận dạng tiếng nói, xác thực người nói qua giọng nói, tổng hợp tiếng nói…và đã đạt được nhiều thành tựu trong thực tế.. Khi nhận d
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN MINH PHÁT
NGHIÊN CỨU NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT VÀ ỨNG DỤNG
TRONG MOBILE GAME
LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS TS VŨ ĐỨC LUNG
TP HCM, NĂM 2017
Trang 2Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực và chưa hề được sử dụng để bảo vệ một học vị nào Mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ
rõ nguồn gốc rõ ràng và được phép công bố
Tôi xin chịu mọi trách nhiệm về công trình nghiên cứu của riêng mình!
Trang 3LỜI CẢM ƠN Đầu tiên, em xin chân thành cảm ơn thầy PGS TS Vũ Đức Lung, người đã hướng dẫn tận tình, tạo điều kiện thuận lợi để em hoàn thành tốt luận văn
Đồng thời em cũng xin gửi lời biết ơn sâu sắc đến gia đình, bạn bè và nhà trường luôn giúp đỡ tạo điều kiện cho em trong suốt quá trình học tập cũng như thực hiện luận văn
Em cũng rất cảm ơn Khoa nghiên cứu khoa học của đại học Carnegie Mellon, đặc biệt là giáo sư Raj Reddy, người đứng đầu dự án mã nguồn mở phát triển nhận dạng giọng nói CMUSphinx Nhờ những đóng góp vô cùng to lớn của giáo sư, em mới có thể thực hiện việc nghiên cứu của mình
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép, nhưng do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của quý Thầy/Cô cùng các anh chị học viên
TP Hồ Chí Minh, tháng 1 năm 2017
Học viên
Trang 4TÓM TẮT LUẬN VĂN Hiện nay các công nghệ xử lý tiếng nói đã phát triển và được ứng dụng ở nhiều lĩnh vực, độ chính xác của các hệ thống xử lý ngày càng được cải thiện Các ứng dụng của lĩnh vực xử lý tiếng nói rất đa dạng: nhận dạng tiếng nói, xác thực người nói qua giọng nói, tổng hợp tiếng nói…và đã đạt được nhiều thành tựu trong thực tế
Để nhận dạng được tiếng nói, ta cần phải xây dựng một hệ thống gọi là hệ nhận dạng tiếng nói tự động Hệ nhận dạng này có thể chuyển đổi chuỗi tín hiệu âm thanh thành chuỗi từ Đã có nhiều nhóm nghiên cứu trên thế giới phát triển thành công hệ nhận dạng tiếng nói cho một số ngôn ngữ phổ biến như tiếng Anh, tiếng Pháp, tiếng Nhật,… Ở Việt Nam cũng đã có nhiều công trình nghiên cứu và thử nghiệm nhưng vẫn còn hạn chế
Có nhiều phương pháp nhận dạng tiếng nói bằng thống kê bao gồm: mô hình Markov ẩn, mạng nơ-ron, sử dụng cơ sở tri thức Trong luận văn chủ yếu nghiên cứu các phương pháp xử lý tiếng nói, rút trích đặc trưng tiếng nói bằng MFCC (Mel-scale Frequency Cepstral Coefficient) và LPC (Linear Predictive Coding), mô hình Markov ẩn, mô hình âm học, âm vị áp dụng cho tiếng Việt Luận văn cũng tìm hiểu về kiến trúc hệ thống nhận dạng tiếng nói qua công cụ CMU Sphinx và kết hợp với Engine game Cocos2d-x, để xây dựng một Video game 2d có khả năng nhận dạng tiếng nói tiếng Việt ra lệnh điều khiển trong Game trên nền tảng hệ điều hành Windows phone
Do mức độ phức tạp của vấn đề nhận dạng tiếng nói tiếng Việt và thời gian hạn chế, luận văn này chỉ là bước nghiên cứu ban đầu cho việc tích hợp nhận dạng tiếng nói tiếng Việt vào Video game
Trang 5
MỤC LỤC
: TỔNG QUAN 2
1.1 TÌNH HÌNH TRONG VÀ NGOÀI NƯỚC 2
1.2 MỤC ĐÍCH VÀ MỤC TIÊU ĐỀ TÀI 6
1.2.1 MỤC ĐÍCH 6
1.2.2 MỤC TIÊU 6
: CƠ SỞ LÝ THUYẾT VỀ NHẬN DẠNG TIẾNG NÓI 7
2.1 MỘT SỐ ĐẶC ĐIỂM CỦA TIẾNG VIỆT 7
2.2 BIỂU DIỄN TÍN HIỆU TIẾNG NÓI 8
2.3 HỆ NHẬN DẠNG TIẾNG NÓI 9
2.3.1 Tổng quan 9
2.3.2 Các hệ nhận dạng tiếng nói 10
2.3.2.1 Nhận dạng từ liên tục và tách biệt 10
2.3.2.2 Nhận dạng phụ thuộc người nói và độc lập với người nói 11
2.4 XỬ LÝ NHIỄU 11
2.4.1 Một số loại nhiễu trong môi trường thực 11
2.4.2 Một số phương pháp xử lý nhiễu 12
2.5 RÚT TRÍCH ĐẶC TRƯNG TÍN HIỆU TIẾNG NÓI 13
2.5.1 Giới thiệu 13
2.5.2 Tiền khuếch đại (pre-emphasis) 14
2.5.3 Tách từ (end-point detection) 14
2.5.4 Phân đoạn thành các khung (Frame Blocking) 15
2.5.5 Lấy cửa sổ khung tín hiệu (Windowing) 16
2.5.6 Rút trích đặc trưng 17
2.5.6.1 Rút trích đặc trưng với MFCC (Mel-scale Frequency Cepstral Coefficient) 17
2.5.6.2 Rút trích đặc trưng với LPC (Linear Predictive Coding) 22
2.5.7 Dò tìm năng lượng (energy detection) 28
2.6 GAUSSIAN MIXTURE MODEL 28
2.7 MÔ HÌNH MARKOV ẨN 30
2.7.1 Giới thiệu 30
2.7.2 Chuỗi Markov 30
2.7.3 Tham số của mô hình Markov ẩn 31
Trang 62.7.4 Ba bài toán cơ bản của mô hình Markov ẩn 33
2.7.4.1 Thuật toán lan truyền xuôi 34
2.7.4.2 Thuật toán lan truyền ngược 34
2.7.4.3 Thuật toán lan truyền xuôi – ngược 35
2.7.4.4 Thuật toán Viterbi 35
2.7.4.5 Thuật toán Baum-Welch 36
2.7.5 MÔ HÌNH HMM TRONG NHẬN DẠNG TIẾNG NÓI 37
2.7.5.1 HMM trong nhận dạng tiếng nói 37
2.7.5.2 Hai vấn đề chính của HMM trong nhận dạng 39
2.7.5.3 Các thành phần cơ bản của hệ thống nhận dạng tiếng nói dựa trên HMM 39
2.7.5.4 Nhận dạng tiếng nói với HTK và Sphinx 41
: CÔNG CỤ HỖ TRỢ HUẤN LUYỆN VÀ NHẬN DẠNG
TIẾNG NÓI 43
3.1 TỔNG QUAN CMU Sphinx 43
3.2 HUẤN LUYỆN VÀ NHẬN DẠNG GIỌNG NÓI VỚI CMU SPHINX 44
3.2.1 Giới thiệu 44
3.2.2 Mô hình HMM trong nhận dạng tiếng nói với Sphinx4 44
3.2.3 Các thành phần chính trong CMU Sphinx 45
3.2.3.1 Thiết bị đầu cuối - Frontend 46
3.2.3.2 Biểu đồ tìm kiếm - Search graph 47
3.2.3.3 Bộ giải mã - Decoder 47
3.2.3.4 Bộ ngôn ngữ - Linguist 48
3.2.4 Các xử lý chính trong CMU Sphinx 49
3.2.4.1 Huấn luyện 49
3.2.4.2 Nhận dạng 49
3.2.5 KẾT LUẬN 50
3.2.5.1 Ưu điểm 50
3.2.5.2 Nhược điểm 51
3.3 POCKETSPHINX 52
3.4 SPHINX 4 VỚI NGÔN NGỮ TIẾNG VIỆT 52
3.4.1 Tổng quan 52
3.4.2 Corpus 52
3.4.2.1 Giới thiệu 52
3.4.2.2 Tầm quan trọng của Corpus trong hệ nhận dạng giọng nói 53
: ENGINE GAMES COCOS2D-X 54
4.1Tổng quan Cocos2d-x 54
4.2 Các đối tượng chính trong Cocos2d-x 55
Trang 74.2.1 Director 55
4.2.2 Scene 56
4.2.3 Layer 56
4.2.4 Scene Graph 56
4.2.5 Sprite 57
4.2.6 Action 57
4.2.7 Parent Child Relationship 57
4.2.8 Touch 57
4.2.9 Physics 57
4.2.10 Network 57
: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 58
5.1 CÀI ĐẶT CMUSphinx 58
5.1.1 Chuẩn bị các gói cài đặt 58
5.1.2 Cài đặt 58
5.1.2.1 Cài đặt Sphinxbase 59
5.1.2.2 Cài đặt sphinxtrain 59
5.1.2.3 Cài đặt pocketsphinx 59
5.2 XÂY DỰNG BỘ NGÔN NGỮ 60
5.2.1 Giới thiệu 60
5.2.2 Xây dựng bộ từ điển 60
5.2.3 Xây dựng mô hình ngôn ngữ 60
5.2.3.1 Chuẩn bị tập tin văn bản 61
5.2.3.2 Xây dựng bộ từ vựng 61
5.2.3.3 Xây dựng mô hình ngôn ngữ 61
5.2.4 Xây dựng mô hình âm học 62
5.2.4.1 Chuẩn bị dữ liệu 62
5.2.4.2 Thiết lập định dạng âm thanh huấn luyện 65
5.3 CẤU HÌNH SPHINX 66
5.3.1 Cấu hình thư mục huấn luyện 66
5.3.2 Điều chỉnh tham số huấn luyện 67
5.3.3 Thực thi huấn luyện 68
5.4 CÀI ĐẶT COCOS2D-X 69
5.4.1 Môi trường lập trình cho các nền tảng khác nhau 69
5.4.2 Yêu cầu cài đặt tối thiểu cho Windows phone 8 70
Trang 85.5 SỬ DỤNG KẾT QUẢ HUẤN LUYỆN 71
5.5.1 Các yêu cầu cài đặt đối với hệ thống 72
5.5.2 Thông tin hệ thống 72
5.5.3 Mô hình chương trình thử nghiệm 73
5.6 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 73
5.7 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 74
5.7.1 KẾT QUẢ ĐẠT ĐƯỢC: 74
5.7.2 HƯỚNG PHÁT TRIỂN: 75
TÀI LIỆU THAM KHẢO 76
Trang 9DANH MỤC BẢNG
Bảng 2.1: Các giá trị đặc trưng cho các tham số phân tích LPC 27
Bảng 5.1 Thông số cấu hình 68
Bảng 5.2 Danh sách lệnh được huấn luyện và nhận dạng 73
Bảng 5.3 Kết quả kiểm tra trực tiếp sử dụng điện thoại 74
Trang 10DANH MỤC HÌNH
Hình 2.1: Chia tín hiệu thành các khung cửa sổ 8
Hình 2.2: Các khung cửa sổ liền nhau và spectrogram tương ứng 9
Hình 2.3 Sơ đồ nhận dạng tiếng nói 10
Hình 2.4 Quá trình rút trích đặc trưng 13
Hình 2.5: Minh họa việc tính toán năng lượng thời gian ngắn 15
Hình 2.6 Phân đoạn tiếng nói thành các khung chồng lấp 15
Hình 2.7: Tín hiệu trước và sau khi nhân với cửa sổ Hamming 16
Hình 2.8 Các bước rút trích đặc trưng MFCC 17
Hình 2.9: Mel – spaced filterbank với 20 hệ số mel – spectrum 18
Hình 2.10 Minh họa các bước biến đổi MFCC 18
Hình 2.11 Biểu đồ thang tần số Mel theo tần số thực 20
Hình 2.12 Băng lọc tần số Mel 21
Hình 2.13 Đưa tín hiệu vào băng lọc tần số Mel 21
Hình 2.14: Sơ đồ xử lý LPC dùng trích chọn đặc trưng tiếng nói 23
Hình 2.15 Mẫu tiếng nói dự báo tuyến tính 24
Hình 2.16 Mô hình GMM 29
Hình 2.17 Hàm mật độ của GMM có 3 phân phối Gauss 29
Hình 2.18 Chuỗi Markov với 5 trạng thái (S 1 đến S 5 ) 31
Hình 2.19: Mô hình HMM trái phải với 6 trạng thái 33
Hình 2.20 Thuật toán lan truyền xuôi – ngược 35
Hình 2.21 Ước lượng Baum - Welch 37
Hình 2.22 Rút trích đặc trưng tiếng nói 40
Hình 2.23 Mô hình máy nhận dạng tiếng nói với HMM 41
Hình 2.24 Nhận dạng tiếng nói với HTK 42
Hình 3.1 Mô hình tổng quát quá trình huấn luyện và nhận dạng tiếng nói 43
Hình 3.2 Kiến trúc hệ thống Sphinx4 45
Hình 3.3 Kiến trúc thành phần Frontend 46
Hình 3.4 Chuỗi các xử lý của thành phần Frontend 46
Hình 3.5 Quá trình nhận dạng 50
Hình 3.6 Tổng quan về Corpus 53
Hình 4.1: Kiến trúc engine game Cocos2d-x 54
Hình 4.2: Liên kết giữa native games và web games 54
Hình 4.3: Sử dụng JavaScript cho native games và web games 55
Hình 4.4 : Quản lý các màn hình trong game (scene) 55
Trang 11Hình 4.5: Cocos2d-x sử dụng thuật toán in-order walk sẽ duyệt cây từ trái sang phải, xuất phát từ root Những node nằm ở nhánh bên phải sẽ được draw sau
cùng 56
Hình 5.1 Thư mục cài đặt Sphinx trong Ubuntu 58
Hình 5.2 Sơ đồ quá trình tạo mô hình ngôn ngữ 61
Hình 5.3 Thiết lập thông số Rate và Format 66
Hình 5.4 Thiết lập thông số về Channel 66
Hình 5.5 Cấu trúc thư mục Cocos2d-x 70
Hình 5.6 Cấu trúc và nội dung thư mục project Poker 72
Hình 5.7 Sơ đồ hoạt động của chương trình thử nghiệm 73
Bảng 5.2 Danh sách lệnh được huấn luyện và nhận dạng 73
Bảng 5.3 Kết quả kiểm tra trực tiếp sử dụng điện thoại 74
Trang 12MỞ ĐẦU Tiếng nói là giải pháp hợp lý tự nhiên nhất, là phương tiện giao tiếp chủ yếu của con người Người dùng không chỉ xài giọng nói của mình như một phương thức nhập liệu
mà chính bản thân thiết bị cũng có thể xài giọng nói để đọc ra những thông tin cần thiết
Đó là chưa kể đến lợi ích to lớn mà những phần mềm dựa trên giọng nói có thể mang lại cho những người khiếm thị Họ có thể tận hưởng những tiến bộ công nghệ tương tự như những gì mà một người bình thường có thể làm, không còn khoảng cách xuất hiện
do những khiếm khuyết về giác quan
Những chiếc smartphone, tablet giờ đây đều có tính năng điều khiển bằng giọng nói, một số sản phẩm thậm chí còn trả lời lại người dùng như thể hai người đang nói chuyện với nhau Điều khiển bằng giọng nói đã trở thành một xu hướng mới mẻ trong thị trường ứng dụng di động, đặc biệt là những app trước đây đòi hỏi người dùng phải
gõ và nhập liệu nhiều Cùng với sự phát triển của các thiết bị IoT (Internet of Things),
xu hướng sử dụng phần mềm điều khiển bằng giọng nói sẽ được áp dụng nhiều hơn nữa trong tương lai
Hiện có cả trăm, cả nghìn ứng dụng cho phép người dùng tìm kiếm, viết email, ghi chú và đặt lịch hẹn trên smartphone Thế nhưng, với một số người, việc sử dụng bàn phím nhỏ xíu trên điện thoại là không tiện lợi, các thao tác trên các ứng dụng, game đôi khi rườm rà và thậm chí là rất khó chịu
Trên thế giới, việc ra lệnh bằng tiếng Anh đã được ứng dụng trong Video Game nhưng ra lệnh bằng tiếng Việt thì còn hạn chế Để có thể đem lại cho người dùng những trải nghiệm mới lạ thú vị, có thêm cách thức mới để giải trí thì ứng dụng nhận dạng giọng nói tiếng Việt trong Video Game là hết sức cần thiết, giúp người khuyết tật có thêm phương tiện để giải trí Luận văn “Nghiên cứu nhận dạng tiếng nói Tiếng Viê ̣t và ứng dụng trong mobile game” là nhằm xây dựng một ứng dụng giúp cho những người khuyết tật, không lành lặn hoặc bị thương thuận tiện hơn trong việc sử dụng điện thoại
để giải trí Đồng thời, việc ra lệnh bằng giọng nói trong game sẽ giúp cho chúng ta có thêm phương tiện để thao tác, giúp thoát khỏi những thao tác nhập nhằng khi chơi Game trên điện thoại
Trang 13: TỔNG QUAN
1.1 TÌNH HÌNH TRONG VÀ NGOÀI NƯỚC
Việc nghiên cứu, xây dựng các hệ thống nhận dạng tiếng nói tự động (Automatic Speech Recognition - ASR) đã có bề dày lịch sử hơn 70 năm, qui tụ nhiều nhóm nghiên cứu đến từ các trường Đại học, Viện nghiên cứu trên khắp thế giới Bắt đầu từ những năm 50 những nghiên cứu đầu tiên về ASR đã được tiến hành với ý tưởng chính dựa trên ngữ âm Phải đến những năm 70, nghiên cứu về nhận dạng tiếng nói mới thu được các kết quả tốt hơn, làm nền tảng cho những phát triển sau này Đầu tiên có thể kể đến
là bài toán nhận dạng từ rời rạc, Velichko và Zagoruyko là những người tiên phong trong việc áp dụng phân lớp mẫu cho ASR Ở Bell-lab, Itakura đã đưa ra phương pháp
mã hóa dự báo tuyến tính (Linear Predictive Coding – LPC) làm tiền đề cho việc áp dụng các tham số phổ LPC vào ASR Cho đến năm 1970 khi Lenny Baum ở Đại học Princeton đã phát minh ra mô hình Markov ẩn (Hidden Markov Model - HMM), đây là một trong những phát minh quan trọng Từ đó có thể tạo ra văn bản tương ứng từ tiếng nói bằng phương pháp thống kê, đã đánh dấu sự chuyển dịch nghiên cứu ASR từ cách tiếp cận đối sánh mẫu sang tiếp cận sử dụng mô hình thống kê và được sử dụng phổ biến cho đến ngày nay Các hệ thống nhận dạng tiếng nói hiện tại đều dựa trên phương pháp thống kê và so khớp mẫu Phương pháp này đòi hỏi các tri thức về ngữ âm và một lượng lớn dữ liệu huấn luyện để huấn luyện bộ nhận dạng
Trên thế giới đã có nhiều hệ thống nhận dạng tiếng nói tiếng Anh đã và đang được ứng dụng rất hiệu quả như: Via Voice của IBM, Spoken Toolkit của CSLU (Central of Spoken Laguage Under-standing), Speech Recognition Engine của Microsoft, Hidden Markov Model toolkit của đại học Cambridge, CMU Sphinx của đại học Carnegie Mellon,…, một số ứng dụng phổ biến trên nền tảng di động gần đây nhất là phiên bản Siri trên iPhone do Viện SRI (Mỹ) phát triển, Google Now được xây dựng trên nền tảng hệ điều hành Android, Cortana của Microsoft Trước đây chúng ta phải mất cả chục thao tác chạm mới đặt xong một sự kiện, còn với Siri, Google Voice hay Cortana, bạn chỉ cần ra lệnh một cái là xong Mọi thao tác, từ việc ghi nội dung cho đến thiết lập giờ giấc, đều được thực hiện một cách tự động
Ngoài ra, công nghệ nhận dạng giọng nói xuất hiện ngày càng phổ biến trong các ứng dụng chat/nhắn tin, nhiều dịch vụ Over-The-Top như Zalo, Viber và WhatsApp cũng đã nhanh chóng đón đầu xu hướng để tích hợp tính năng chat giọng nói vào sản phẩm của mình
Trang 14Ở Việt Nam, có 2 nhóm nghiên cứu chính về bài toán nhận dạng tiếng nói liên tục với bộ từ vựng lớn (Large vocabulary Continuous Speech Recognition-LVCSR): đầu tiên là nhóm thuộc Viện Công nghệ Thông Tin do PGS Lương Chi Mai đứng đầu, sử dụng phương pháp ANN và công cụ CSLU [2], nhóm thứ hai thuộc trường Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh do PGS Vũ Hải Quân đứng đầu, với phương pháp HMM và dùng công cụ HTK Ngoài ra còn có nghiên cứu của LIG hợp tác với phòng thí nghiệm MICA ở Hà Nội về sự khả chuyển của các mô hình ngữ âm (acoustic model portability)
Cho đến nay, đã có nhiều nghiên cứu và ứng dụng về nhận dạng tiếng nói tiếng Việt và đã đạt được một số thành tựu nhất định:
- Vietvoice: Đây là phần mềm của giáo sư Lê Tang Hồ ngụ tại Canada Phiên bản 1.1 được ra mắt lần đầu tiên vào giáng sinh năm 2004, có khả năng nói tiếng Việt từ các tệp tin Phần mềm miễn phí cho tất cả mọi người để đáp ứng nhu cầu dạy và học tiếng Việt, đặc biệt là cho người Việt ở nước ngoài và người nước ngoài học tiếng Việt
- Với việc sử dụng bộ thư viện của Microsoft Speech SDK để nhận dạng các từ tiếng Anh, sau đó thực hiện chuyển đổi từ nhận dạng được sang tiếng Việt, nhóm BK02 (sinh viên Trường Đại học Bách khoa TP Hồ Chí Minh) đã cho ra đời phần mềm Vspeech [6] vào năm 2004 Phần mềm cho phép người dùng điểu khiển hầu hết các hoạt động của máy tính bằng giọng nói như mở chương trình, lướt web, soạn thảo văn bản Chương trình hỗ trợ cả tiếng Anh lẫn tiếng Việt và được tích hợp với hầu hết các ứng dụng phổ biến như: Microsoft Windows, Microsoft Office
- Năm 2011, dựa trên công nghệ xử lí tiếng nói tiếng Việt, phòng thí nghiệm Trí tuệ nhân tạo – AILab, Trường ĐH Khoa học Tự nhiên, ĐHQG-HCM đã xây dựng ứng dụng iSago hỗ trợ giao tiếp với điện thoại di động bằng lời nói cho phép tìm kiếm thông tin nhà hàng, quán Bar, Café trên địa bàn TP HCM Ngoài ra còn có VIS (Viet voIce System) là hệ thống hỗ trợ hỏi đáp thông tin bằng tiếng Việt qua đường điện thoại
- Năm 2012, được sự hỗ trợ của Bộ Khoa học và Công nghệ thông qua đề tài nghiên cứu
“Thiết kế chip nhận dạng tiếng nói tiếng Việt trên nền công nghệ FPGA”, TS.Hoàng Trang và nhóm nghiên cứu trẻ của trường Đại học Bách khoa - Đại học quốc gia TP Hồ Chí Minh đã thiết kế thành công chíp nhận dạng tiếng nói tiếng Việt phục vụ cho người khuyết tật và các ứng dụng khác dựa trên nhận dạng, tổng hợp tiếng nói tiếng Việt
Xu hướng ứng dụng công nghệ giọng nói trong nước đang được nhiều doanh nghiệp
Trang 15- Tháng 8/2015, sàn thương mại điện tử Sendo.vn đã giới thiệu ứng dụng mua sắm trên điện thoại Thay vì gõ từ khóa, người mua có thể sử dụng giọng nói để tra cứu sản phẩm cần tìm trên SendoApp Công ty Bkav cũng đã trang bị công nghệ "trợ lý ảo" trong mô hình nhà thông minh SmartHome của mình Theo đó, người dùng có thể điều khiển các thiết bị trong nhà như bật tắt đèn, điều hòa, ti vi, kéo rèm cửa… bằng giọng nói
- Đầu năm 2015, nhóm phát triển Robot thuộc Viện nghiên cứu Công nghệ FPT bắt đầu thử nghiệm ứng dụng giọng nói vào robot Sản phẩm có tên Rogo cho phép dùng giọng nói để giao tiếp, điều khiển thiết bị trong gia đình, chụp ảnh,
telepresence… Ngoài Rogo, ban công nghệ FPT cũng nghiên cứu một số ứng dụng như thuyết minh phim (từ phụ đề chuyển sang giọng nói)
Ứng dụng nhận dạng tiếng nói trong Video Game
- Được giới thiệu tại hội chợ Global Game Jam 2011, diễn ra từ ngày 28 đến 30 tại Vancouver (Canada), PewPew là trò chơi bắn súng không gian giả tưởng trên nền đồ họa 2D Game yêu cầu 2 người chơi cùng tham gia một lúc, sử dụng micro để điều khiển Một người sẽ điều chỉnh túi phản lực của nhân vật bằng cách thổi vào micro, người kia phát ra âm thanh "pew pew pew" để bắn tia laser
- Một số máy chơi game console ngày nay đã có tích hợp tính năng nhận diện tiếng nói như PS4 của Sony hay Xbox One của Microsoft Microsoft sẽ cho phép người dùng console của mình có thể điều khiển bằng giọng nói để bật máy, thực hiện việc tìm kiếm, còn đối với PS4 người dùng chỉ có thể ra lệnh giọng nói để tắt máy, mở game Với Xbox One để ra lệnh bằng giọng nói 1 cách có hiệu quả trong game người chơi có thể sử dụng Voice Commander cho phép chơi cùng lúc với 8 bộ điều khiển (controller) và bất cứ ai cũng có thể ra lệnh bằng giọng nói, một game thủ GladHeAteHer182, thay vì sử dụng tay cầm Xbox One, đã thiết lập hệ thống điều khiển bằng giọng nói để ra lệnh cho nhân vật trong game Destiny
- Game điều khiển bằng nhận diện giọng nói thường xuất hiện phổ biến trên PC hơn so với mobile Thông thường các game thủ muốn sử dụng điều khiển game bằng giọng nói
có thể sử dụng một số phần mềm nhận diện giọng nói (được thiết kế để làm cho trò chơi
và các ứng dụng trở nên thú vị hơn) khi chơi Elite Dangerous và các game khác bằng cách gán các lệnh bằng giọng nói với phím trên game như Dragon Gaming, Glove Pie và Say2Play, PiLfluS Điển hình như với VoiceAttack, Bearzly đã khiến vô số game thủ
Trang 16ngã ngửa khi phá đảo Dark Souls mà không phải động đến bất cứ thiết bị nào khi chỉ sử dụng chính giọng nói của mình để ra cho lệnh nhân vật Ví dụ: Nếu muốn thực hiện cú đánh mạnh, bạn chỉ cần nói “Heavy Attack” (cú đánh mạnh), nếu muốn uống bình máu thì nói “Item” (vật phẩm) Tuy vậy, phần mềm này có một nhược điểm là độ trễ giữa lúc nói và lúc thực hiện có thể lên đến 1.5 giây Vì thế, Bearzly phải lên chiến thuật rất kỹ càng để tránh sai sót do lag gây ra Ngoài ra một số hãng game cũng đã tích hơp tính năng ra lệnh bằng giọng nói qua Kinect cho game của mình như Need for Speed: Most Wanted, Dead Space 3…
- Trên di động thì có game “Pah! Voice Activated” xuất hiện lần đầu tiên trên iPhone, sau đó chuyển sang Android và Windows Phone, đây là trò chơi đơn giản: khi phát âm
ra “Ahhhhhh…” thì con tàu sẽ được nâng lên sau đó tự động chìm xuống, súng sẽ bắn vào đối tượng khi phát âm “Pah!”
Tuy nhiên hầu hết đểu sử dụng tiếng Anh để ra lệnh trong game Đối với tiếng Việt thì Game Up (Vút bay) hoạt động trên nền tảng Android và iOS là game đầu tiên và duy nhất trong top 50 game của Giải thưởng Chim Xanh 2015 không sử dụng tay để chơi như các game còn lại Thay vào đó, người chơi chỉ việc sử dụng giọng nói của mình để điều khiển nhân vật chính trong game bay lên và vượt qua các chướng ngại vật trên đường Điểm đặc biệt trong cách chơi của Vút bay là khả năng nhận diện âm lượng và độ cao của âm thanh người chơi Người chơi càng nói to thì nhân vật trong game bay càng nhanh
và ngược lại
Trang 171.2 MỤC ĐÍCH VÀ MỤC TIÊU ĐỀ TÀI
1.2.1 MỤC ĐÍCH
Luận văn nghiên cứu mô hình Markov ẩn và các phương pháp nhận dạng tiếng nói từ đó ứng dụng trong việc huấn luyện, nhận dạng tiếng nói tiếng Việt để ra lệnh điều khiển trong mobile game
Giúp người chơi giải trí, nâng cao trải nghiệm của người dùng trong Game Nâng cao hiệu quả khi chơi Game, giúp đơn giản hóa các thao tác khi chơi 1.2.2 MỤC TIÊU
Tìm hiểu tổng quan về nhận dạng tiếng nói, các phương pháp xử lý tín hiệu số, các phương pháp nhận dạng mẫu, phương pháp ngữ âm-âm vị học, kỹ thuật tìm kiếm tự động trên máy tính
Nghiên cứu mô hình Markov ẩn và hệ thống nhận dạng tiếng nói ứng dụng trong việc huấn luyện, nhận dạng tiếng nói tiếng Việt
Nghiên cứu các cách xây dựng mô hình ngôn ngữ, ngữ âm cho tiếng Việt
Tìm hiểu và nghiên cứu các công cụ hỗ trợ huấn luyện, nhận dạng tiếng nói và xây dựng một Game đánh bài có hỗ trợ nhận dạng tiếng nói tiếng Việt trong quá trình chơi Game
Trang 18: CƠ SỞ LÝ THUYẾT VỀ NHẬN DẠNG TIẾNG NÓI
2.1 MỘT SỐ ĐẶC ĐIỂM CỦA TIẾNG VIỆT
- Tiếng việt là một ngôn ngữ đơn âm (monosyllable – mỗi từ đơn chỉ có một âm tiết) Một từ có cấu tạo gồm 2 phần là: nguyên âm V (vowel) và phụ âm C (consonant) và được kết hợp theo 3 cách để tạo nên từ trong tiếng Việt:
o C+V (phụ âm + nguyên âm) Ví dụ: ba, mẹ, đi
o C+V+C (phụ âm + nguyên âm + phụ âm) Ví dụ: bàn, con, mộng
o V+C (nguyên âm + phụ âm) Ví dụ: ung, ông, én
- Do đặc điểm trên nên việc phiên âm cho tập từ vựng để xây dựng mô hình từ vựng cho tiếng Việt là khó khăn Tuy nhiên, điều này giúp cho hệ nhận dạng tiếng nói xác định ranh giới giữa các âm tiết (endpoint detection) dễ dàng hơn Đối với tiếng Anh, tiếng Pháp là các ngôn ngữ đa âm, biến hình thì việc xác định ranh giới giữa các âm tiết sẽ rất khó
- Tiếng Anh có khỏang hơn 50 âm Phiên âm trong tiếng Việt thì khó hơn do 1 từ phát ra giống 1 âm Nếu phiên âm 1 từ tiếng Việt ra theo các thành phần như: dấu, âm đầu, âm chính, âm cuối thì chúng ta có khoảng hơn 70 âm nhận dạng cho tiếng Việt
- Đơn vị phát âm nhỏ nhất là âm tiết, tuy nhiên về phương diện thính giác, khi nghe một âm tiết, nhất là của một ngôn ngữ quen thuộc, người nghe có khả năng phân chia âm tiết thành các yếu tố nhỏ hơn được gọi là âm vị Âm tiết trong Tiếng Việt ổn định có cấu trúc rõ ràng (không có 2 âm tiết nào đọc giống nhau
mà viết khác nhau)
- Trong Tiếng Việt, một từ thường gồm 5 thành phần: phụ âm đầu, âm đệm, nguyên âm, phụ âm cuối và dấu (thanh điệu), người ta gọi chung 3 thành phần
âm đệm, âm giữa, và âm cuối là vần Âm đầu có tất cả 22 âm vị khác nhau, đều
là phụ âm Âm chính có 16 âm vị, gồm nguyên âm đơn dài, nguyên âm đơn ngắn, nguyên âm đôi
- Tiếng Việt có 6 loại thanh điệu khác nhau: thanh huyền, hỏi, ngã, nặng, sắc, và thanh bằng Thanh điệu là âm vị siêu đoạn tính, đặc trưng về thanh điệu trong tín hiệu tiếng nói thể hiện không rõ nét như các thành phần khác của âm tiết
- Tiếng Việt có 29 ký tự chuẩn, các ký tự này kết hợp với 5 thanh tạo nên 74 ký tự
âm tiết Trong một chuỗi tiếng nói, biên độ tiếng nói sẽ phân bố liên tục theo
Trang 1929 ký tự chuẩn trong tiếng Việt:
[a, ă, â, b, c, d, đ, e, ê, g, h, i, k, l, m, n, o, ô, ơ, p, q, r, s, t, u, ư, v, x, y]
- Trong Tiếng Việt hệ thống ngữ pháp, ngữ nghĩa rất phức tạp, cách phát âm thay đổi nhiều theo vị trí địa lí (mỗi miền có giọng đặc trưng riêng)
2.2 BIỂU DIỄN TÍN HIỆU TIẾNG NÓI
a) Dạng sóng theo thời gian
Phần tín hiệu ứng với âm vô thanh là không tuần hoàn, ngẫu nhiên và có biên độ hay năng lượng nhỏ hơn của nguyên âm (cỡ khoảng 1/3) Ranh giới giữa các từ: là các khoảng lặng (Silent) Ta cần phân biệt rõ các khoảng lặng với âm vô thanh
Âm thanh dưới dạng sóng được lưu trữ theo định dạng thông dụng trong máy tính là *.WAV với các tần số lấy mẫu thường gặp là: 8000Hz, 10000Hz, 11025Hz, 16000Hz, 22050Hz, 32000Hz,…; độ phân giải hay còn gọi là số bít/mẫu là 8 hoặc 16 bít
và số kênh là 1 (Mono) hoặc 2 (Stereo)
b) Phổ tín hiệu tiếng nói
Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị ảnh phổ trong một khung thời gian ngắn Ảnh phổ rất hữu dụng để phân tích các âm vị và sự chuyển trạng thái của chúng
c) Biểu diễn tín hiệu tiếng nói trong không gian ba chiều (Sonagram)
Để biểu diễn trong không gian 3 chiều người ta chia tín hiệu thành các khung cửa sổ (frame) ứng với các ô quan sát:
Hình 2.1: Chia tín hiệu thành các khung cửa sổ
Độ dài một cửa sổ tương ứng là 10ms
Vậy, nếu tần số Fs = 16000Hz thì ta có 160 mẫu trên một cửa sổ
Các cửa số có đoạn chồng lẫn lên nhau (khoảng 1/2 cửa sổ)
Trang 20Tiếp theo ta vẽ phổ của khung tín hiệu trên trục thẳng đứng, biên độ phổ biểu diễn bằng độ đậm, nhạt của màu sắc Sau đó ta vẽ theo trục thời gian bằng cách chuyển sang cửa số tiếp theo
Hình 2.2: Các khung cửa sổ liền nhau và spectrogram tương ứng
Biểu diễn tín hiệu tiếng nói theo không gian 3 chiều là một công cụ rất mạnh
để quan sát và phân tích tín hiệu Ví dụ : theo phương thức biểu diễn này ta có thể dễ dàng phân biệt âm vô thanh và âm hữu thanh dựa theo các đặc điểm sau:
+Âm vô thanh:
- Năng lượng tập trung ở tần số cao
- Các tần số phân bố khá đồng đều trong 2 miền tần số cao và tần số thấp + Âm hữu thanh:
- Năng lượng tập không đồng đều
Tín hiệu tiếng nói sẽ được rút trích đặc trưng, kết quả thu được sau quá trình này
là các vector đặc trưng
Trang 21
Hình 2.3 Sơ đồ nhận dạng tiếng nói
Hệ thống phải được huấn luyện và xây dựng các đặc trưng để thực hiện việc so khớp các mẫu Khi thực hiện huấn luyện, hệ thống sử dụng các vector đặc trưng để tính toán, ước lượng các tham số cho các mẫu gọi là các mẫu tham khảo Các mẫu tham khảo này sẽ được dùng để so sánh và nhận dạng
Khi nhận dạng, dãy các vector đặc trưng của tín hiệu cần nhận dạng sẽ được so sánh với các mẫu tham khảo được xây dựng trong quá trình huấn luyện trước đó Hệ nhận dạng sẽ tính toán mức độ tương đồng dãy các vector đặc trưng với mẫu tham khảo Thuật toán Viterbi được áp dụng cho việc tính toán độ tương đồng trong mô hình Markov ẩn Mẫu nào có mức độ tương đồng cao nhất sẽ là kết quả của quá trình nhận dạng
Đối với mô hình nhận dạng từng từ, mỗi từ cần nhận dạng được phát âm một cách rời rạc, có các khoảng lặng trước và sau khi phát âm một từ Các ứng dụng thực tiễn đối
Dữ liệu được huấn luyện
học
Rút trích đặc trưng
Mô hình hóa
So khớp mẫu
Tín hiệu
Mẫu tham khảo
Mô hình từ vựng
Trang 22với mô hình dạng này có thể kể đến như hệ thống điều khiển bằng giọng nói, quay số bằng giọng nói, nhập văn bản bằng giọng nói, tìm kiếm bằng giọng nói,…
2.3.2.2 Nhận dạng phụ thuộc người nói và độc lập với người nói
Trong việc nhận dạng phụ thuộc người nói thì mỗi hệ nhận dạng chỉ phục vụ cho một người và hệ nhận dạng này sẽ không hiểu người khác nói gì nếu chưa được huấn luyện Vì vậy, những hệ nhận dạng này không được áp dụng
Đối với hệ nhận dạng độc lập người nói thì khắc phục được nhược điểm của hệ nhận dạng phụ thuộc người nói nhưng hệ nhận dạng này lại không được chính xác Trên thực tế, do mỗi người có một giọng nói khác nhau, sống ở những vùng miền và có độ tuổi khác nhau cũng tác động đến quá trình nhận dạng Để khắc phục vấn đề này đòi hỏi
hệ nhận dạng phải được huấn luyện với lượng dữ liệu lớn và phong phú Tuy nhiên điều này cũng không tăng cường được độ chính xác của quá trình nhận dạng là bao nhiêu
Do đó để giải quyết vấn đề trên người ta sử dụng phương pháp bán độc lập với người nói bằng cách thu mẫu một số lượng lớn các tiếng nói khác biệt nhau Khi sử dụng
hệ thống sẽ được điều chỉnh cho phù hợp với tiếng của người dùng, bằng cách cho nó học thêm một vài câu chứa các từ cần thiết (người dùng phải trải qua một quá trình ngắn
để huấn luyện hệ thống trước khi có thể sử dụng)
2.4 XỬ LÝ NHIỄU
Tiếng nói thu nhận trong môi trường văn phòng, nhà ở v.v và công nghiệp thường chứa nhiều tạp âm Không dễ gì có thể lọc được mọi thứ nhiễu, mà 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
Đối với môi trường nhiễu biết trước, bên cạnh việc sử dụng dữ liệu huấn luyện gồm các mẫu sạch (được hiểu là mẫu không tạp âm), các mẫu tín hiệu được ghi trong môi trường nhiễu tương đương cũng được sử dụng để huấn luyện, qua đó hệ thống sẽ được thích nghi với môi trường làm việc có nhiễu ngay từ đầu vào
Đối với môi trường nhiễu chưa biết trước, hệ thống nhận dạng sẽ có thể sử dụng các kỹ thuật tiền xử lý nâng cao tín hiệu, sử dụng micro chuyên dụng có tính định hướng nguồn âm, sử dụng các phương pháp bù nhiễu hay các mô hình thích nghi… 2.4.1 Một số loại nhiễu trong môi trường thực
- Nhiễu hướng (Directional noise): nhiễu từ hướng như âm TV, giọng nói v.v…
Trang 23- Nhiễu khuếch tán (Diffuse noise): nhiễu môi trường, nền v.v
- Vang (Reverberation): nhiễu do trễ khi phản xạ tường, trần nhà v.v…
- Nhiễu thiết bị: quạt tản nhiệt, cơ cấu chấp hành, mang cả tính hướng và khuếch tán
2.4.2 Một số phương pháp xử lý nhiễu
a Kỹ thuật CMS (Cepstral-mean-subtraction)
Đây là một kỹ thuật thông dụng để khử nhiễu trong các hệ thống nhận dạng, được dùng kết hợp trong quá trình tính toán các đặc tính phổ của tiếng nói Phương pháp này dựa trên giả thiết là các đặc tính tần số của môi trường là thường xuyên cố định hoặc biến đổi chậm
1
) ( 1 ) ( )
Trong đó, T là độ dài của vùng lấy giá trị trung bình, thường là độ dài của cả phát âm Các tham số phổ 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 Kỹ thuật RASTA
RASTA là kỹ thuật lọc dựa trên giả thiết rằng các tính chất thời gian của các nhiễu là khác so với các tính chất thời gian của giọng nói Tốc độ thay đổi của các thành phần không phải tiếng nói thường xuyên nằm ngoài tốc độ hoạt động của bộ máy phát âm con người Bộ lọc số RASTA sau có thể loại bỏ được một phần các nhiễu của môi trường và các nhiễu bổ sung bất thường khác
c Trừ phổ (SS, Spectral-subtraction)
Đây là một thuật toán giảm nhiễu đơn giản nhất Nó dựa trên nguyên lý cơ bản là nó sẽ
mô tả và cập nhật nhiễu trong tín hiệu có nhiễu bằng cách thu nhiễu khi không có sự hiện diện của tín hiệu Và nhiễu đó sẽ được trừ với tín hiệu có nhiễu, kết quả là tín hiệu
(2.1)
Trang 24của chúng ta sau khi xử lý bằng thuật toán này sẽ được loại đi nhiễu và xét trên
phương diện lý tưởng thì nó là tín hiệu sạch [8][11]
2.5 RÚT TRÍCH ĐẶC TRƯNG TÍN HIỆU TIẾNG NÓI
2.5.1 Giới thiệu
Đặc điểm chung của các hệ nhận dạng tiếng nói là đều bắt đầu bằng quá trình tìm hiểu và mô phỏng các đặc điểm của tiếng nói, hay còn gọi là quá trình “rút trích đặc trưng” Công việc này đặt nền tảng quan trọng cho việc áp dụng các phương pháp nhận dạng và quyết định tới tính chính xác của toàn hệ thống Đây là một trong những công đoạn quan trọng trong quá trình nhận dạng tiếng nói, vì giúp giảm thiểu số lượng dữ liệu trong quá trình huấn luyện và nhận dạng Trích chọn đặc trưng đối với nhận dạng tiếng nói là việc tham số hóa chuỗi tín hiệu âm thanh dạng sóng đầu vào, biến đổi tín hiệu âm thanh thành một chuỗi các vector đặc trưng n chiều, mỗi chiều là một giá trị thực Bên cạnh đó, việc trích chọn đặc trưng giúp làm rõ sự khác biệt của tiếng nói này với tiếng nói khác hay làm mờ đi sự khác biệt của hai lần phát âm trong cùng một từ Kết quả của quá trình trích chọn các đặc trưng sẽ là một hoặc nhiều vector mang đặc trưng riêng
Hình 2.4 Quá trình rút trích đặc trưng
Nguồn: Tham khảo từ [3]
Tín hiệu âm thanh lưu trong máy tính là tín hiệu digital [11], mô hình hoá tín hiệu
âm thanh trong máy tính dưới dạng toán học là một hàm s(n) với n chỉ thời gian (đơn vị thông thời là ms) và s(n) là biên độ âm
Trang 252.5.2 Tiền khuếch đại (pre-emphasis)
Ở bước này, mục đích là tăng cường tín hiệu, làm nổi rõ đặc trưng của tín hiệu và làm cho nó ít nhạy cảm hơn với các hiệu ứng do độ chính xác hữu hạn ở những bước sau
Bộ làm rõ tín hiệu thường là một bộ lọc thông cao (high-pass filter) có phương trình sai phân như sau:
);
1 ( ) ( ) (
Trong đó, hệ số làm nổi a càng cao, thành phần có tần số thấp bị loại đi càng nhiều
Bộ lọc thông cao giữ lại các thành phần có tần số cao, loại bỏ các thành phần có tần số thấp Trong tiếng nói các thành phần có tần số cao mang năng lượng ít hơn nhiều so với các thành phần có tần số thấp, nhưng những vùng này lại lưu giữ một phần tín hiệu quan trọng của tiếng nói Vì vậy, chúng ta sẽ tăng cường tín hiệu trong vùng tần số cao
- vùng tần số của tiếng nói, một cách dễ hiểu là làm tiếng nói lớn hơn lên để ảnh hưởng của các âm thanh môi trường và nhiễu trở thành không đáng kể
2.5.3 Tách từ (end-point detection)
Để giảm khối lượng tính toán, và tăng độ chính xác, chỉ khi nào có tín hiệu tiếng nói thu được mới xử lý Tín hiệu tiếng nói s(n) sau khi được khuếch đại, thì được chuyển sang để tách từ Công đoạn này chia toàn bộ tín hiệu thu được thành các đoạn tín hiệu mà chỉ chứa nội dung của một từ
Trong nhiều phương pháp để tách điểm đầu và điểm cuối của một từ ra khỏi toàn
bộ tín hiệu tiếng nói, thì phương pháp dùng hàm năng lượng (ESS – Energy of Speech Signal) thời gian [18] là phương pháp được sử dụng phổ biến nhất Ta thấy rằng biên độ của tín hiệu tiếng nói thay đổi đáng kể theo thời gian Thực tế biên độ của phần âm vô thanh (unvoiced) là thấp hơn rất nhiều so với biên độ của phần âm hữu thanh (voiced) Năng lượng thời gian ngắn của tín hiệu tiếng nói cung cấp sự biểu diễn ngược với sự biến đổi của biên độ
Trang 26Hình 2.5: Minh họa việc tính toán năng lượng thời gian ngắn
Với một cửa sổ kết thúc tại mẫu thứ m, hàm năng lượng thời gian ngắn Em được xác định như sau:
Em=
1 N m
m n
)]
(
* ) ( [ x m w n m 2
Trong đó, n: biểu thức rời rạc; m:số mẫu thử thứ m; N: là tổng số mẫu tiếng nói; Hàm cửa sổ w(n) thường dùng là hàm cửa sổ chữ nhật
Ý nghĩa chủ yếu của Em là nó đưa ra cơ sở cho các phần tiếng nói đặc biệt từ các phần tiếng nói nhiễu Hàm năng lượng có thể còn được dùng xác định khoảng thời gian tại thời điểm âm hữu thanh trở thành âm vô thanh, và cho tiếng nói chất lượng cao (tỉ số tín hiệu trên nhiễu cao)
2.5.4 Phân đoạn thành các khung (Frame Blocking)
Tín hiệus~( n ) được chia thành nhiều khung, mỗi khung gồm N mẫu, khoảng cách giữa các khung là M mẫu
Hình 2.6 Phân đoạn tiếng nói thành các khung chồng lấp
Nguồn: Tham khảo từ [7]
Hình 2.6 minh họa cách phân thành các khung trong trường hợp M = 1/3N Ví dụ mỗi khung có 300 mẫu (N=300), thì khung thứ hai bắt đầu từ mẫu thứ 100 (M = 100)
Trang 27Ta thấy khung thứ nhất có N mẫu tiếng nói đầu tiên, khung thứ hai bắt đầu từ mẫu thứ M và kết thúc ở vị trí M+N-1 Tương tự khung thứ nhất bắt đầu từ mẫu thứ i*M và kết thúc ở vị trí i*M+N-1 Quá trình này diễn ra cho đến khi các mẫu tiếng nói đều đã thuộc về một hay nhiều khung Do đó, nếu MN thì các khung kề nhau sẽ có sự chồng lấn dẫn đến kết quả là các phép rút trích đặc trưng có tương quan với nhau từ khung này sang khung khác và khi M << N thì khung này sang khung khác hoàn toàn trơn Trái lại, nếu M > N thì sẽ không có sự chồng lấn giữa các khung liền kề
2.5.5 Lấy cửa sổ khung tín hiệu (Windowing)
Việc lấy cửa sổ khung tín hiệu cho từng khung là nhằm để giảm thiểu sự gián đoạn
ở đầu và cuối cho từng khung Nguyên tắc của việc cửa sổ hóa là giảm thiểu méo dạng phổ bằng cách làm hẹp dần ở phía đầu và cuối của mỗi khung Ta xem một dãy tín hiệu con được lấy ra từ một tín hiệu dài hơn hoặc dài vô hạn x(n) là một cửa sổ tín hiệu Quá trình quan sát tín hiệu x(n) bằng một đoạn XN(n) trong khoảng n0 (n0 + N – 1) tương đương với việc nhân x(n) với một hàm cửa sổ w(n-n0)
XN(n) = x(n).w(n-n0) =
Đối với xử lý tín hiệu số, các cửa sổ thường được biểu diễn thông qua cửa sổ Hamming Trong cửa sổ Hamming, giá trị của tín hiệu sẽ giảm dần về 0 khi tiến dần ra hai biên của frame Nói cách khác, nếu sử dụng cửa sổ Hamming để lấy ra các frame, năng lượng của mỗi frame sẽ tập trung ở giữa frame, một ưu điểm nữa là các giá trị biên của cửa sổ Hamming tiến dần về 0 sẽ làm bước biến đổi Fourier trở nên dễ dàng hơn
Hình 2.7: Tín hiệu trước và sau khi nhân với cửa sổ Hamming
Trang 282.5.6 Rút trích đặc trưng
2.5.6.1 Rút trích đặc trưng với MFCC (Mel-scale Frequency Cepstral Coefficient)
Đặc trưng rút ra dựa trên khả năng cảm nhận âm của thính giác con người Nhiều nghiên cứu cho thấy rằng cơ quan thính giác của con người có khả năng thu và nhận âm thanh với độ lớn các tần số âm thanh không theo thang tuyến tính Vì vậy, các thang đo
âm thanh đã ra đời để phù hợp với sự tiếp nhận của thính giác con người
Đối với các tần số thấp (dưới 1 Khz), thì độ cảm nhận của tai người là tuyến tính Với các tần số cao, thì độ biến thiên tuân theo hàm logarit Các băng lọc tuyến tính ở tần
số thấp và biến thiên theo hàm logarit ở tần số cao được dùng để trích chọn các đặc trưng
âm học quan trọng của tiếng nói Mel Scale Frequency Cepstral Coefficients (MFCC) là phương pháp rút trích đặc trưng dùng dãy bộ lọc được Davis và Mermelstein đưa ra vào năm 1980 khi họ kết hợp các bộ lọc cách khoảng không đều với biến đổi Cosin rời rạc (Discrete Cosin Transform-DCT) giúp hình thành một thuật toán hoàn chỉnh được ứng dụng nhiều trong lĩnh vực nhận dạng giọng nói liên tục, đồng thời cũng định nghĩa khái niệm hệ số Cepstral và thang đo tần số Mel (Mel scale)
Người ta đã xây dựng các công thức để xấp xỉ cho sự chuyển đổi này, vì các thang
đo được xây dựng bằng thực nghiệm Trong các thang đo và công thức sử dụng thì đặc trưng MFCC dùng thang đo Mel
Sơ đồ giải thuật phương pháp MFCC như sau:
Hình 2.8 Các bước rút trích đặc trưng MFCC
Nguồn: Tham khảo từ [19]
Trang 29Phép biến đổi Fourier được sử dụng để chuyển đổi tín hiệu từ miền thời gian qua miền tần số, tiếp theo sẽ dùng dãy bộ lọc tín hiệu đó là dãy bộ lọc tam giác có tần số cách đều nhau trong miền tần số nhỏ hơn 1kHz và khoảng cách tăng theo hàm mũ trong miền
từ 1kHz đến f(s)/2 (một nửa của tần số lấy mẫu)
Hình 2.9: Mel – spaced filterbank với 20 hệ số mel – spectrum
Trên dãy kết quả từ dãy bộ lọc ta lấy log và áp dụng biến đổi cosin rời rạc sẽ thu được các hệ số đặc trưng MFCC
Hình 2.10 Minh họa các bước biến đổi MFCC
Nguồn: Tham khảo từ [3]
Tóm lại, tiến trình rút trích đặc trưng sử dụng phương pháp MFCC sẽ được tiến hành như sau:
Mỗi tín hiệu sau khi qua tiền xử lý sẽ được chia thành các khung (frame) có khoảng thời gian ngắn Mỗi khung sẽ được nhân với một hàm cửa sổ, thường là cửa sổ Hamming sau đó được chuyển sang miền tần số nhờ biến đổi Fourier Tín hiệu ở miền tần số được nhân với các bộ lọc mel-scale, lấy logarit rồi biến đổi Fourier ngược (để chuyển sang miền cepstral) sẽ được các hệ số MFCC
Trang 30Một số hệ thống có tính thêm năng lượng (cũng lấy logarit) và đặc trưng delta (đạo hàm rời rạc theo thời gian của MFCC) nhằm thêm thông tin cho các pha sau của quá trình nhận dạng
a Biến đổi FFT (Fast Fourier Transform)
Biến đổi Fourier hay chuyển hóa Fourier, được đặt tên theo nhà toán học người Pháp Joseph Fourier, là một biến đổi tích phân dùng để khai triển một hàm số theo các hàm số sin cơ sở, có nghĩa là dưới dạng tổng hay một tích phân của các hàm số sin được nhân với các hằng số khác nhau (hay còn gọi là biên độ) Biến đổi Fourier có rất nhiều dạng khác nhau, chúng phụ thuộc vào dạng của hàm được khai triển
Trên thực tế, biến đổi FFT là một biến đổi DFT (Discrete Fourier Transform) nhưng được tối ưu bằng các thuật toán nhanh và gọn hơn nhằm để đáp ứng những yêu cầu xử lý theo thời gian thực ở nhiều lĩnh vực như là xử lý âm thanh, hình ảnh,
Phép biến đổi Fast Fourier là một biến đổi thuận nghịch có tính chất 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 này được sử dụng để biến đổi tín hiệu tương tự sang miền tần số, gồm có các công thức:
Công thức biến đổi thuận (dùng để phân tích tín hiệu):
N
n
e n
x -j2kn /N k = 0,1,2,…,N-1 X(k) được tính từ công thức trên là số ảo, nhưng thông thường ta chỉ quan tâm đến biên độ của nó
Công thức biến đổi nghịch (dùng tổ hợp lại tín hiệu):
) (
N
k
N kn j
e k
Trong đó: x(n) = a(n) + b(n)j với j = 1
Kết quả có được khi thực hiện FFT là dãy tín hiệu Xt(k) dùng để đưa vào bộ lọc Mel-scale
b Lọc qua bộ lọc Mel-scale
Để nghiên cứu nhận dạng tiếng nói, chúng ta phải hiểu và mô phỏng chính xác khả năng cảm thụ tần số âm thanh qua cơ quan thính giác của con người Vì vậy, các nhà nghiên cứu đã xây dựng một thang tần số - hay gọi là thang tần số Mel (Mel scale) dựa
n = 0,1,2,…N-1
(2.7)
(2.8)
Trang 31vào cơ sở thực nghiệm nhiều lần khả năng cảm nhận âm thanh của tai người Do đó, thang tần số Mel được định nghĩa trên tần số thực theo công thức sau:
Trong đó: m là tần số trong thang Mel, đơn vị là Mel; f là tần số thực, đơn vị là
Hz Người ta sử dụng các băng lọc để tính các hệ số Mel Sử dụng bao nhiêu băng lọc thì
sẽ cho ra bấy nhiêu hệ số Mel, và các hệ số Mel này sẽ là đầu vào cho quá trình tiếp theo của trích chọn đặc trưng MFCC
Hình 2.11 Biểu đồ thang tần số Mel theo tần số thực
Nguồn: Tham khảo từ [20]
Dựa vào biểu đồ trên ta thấy khoảng tần số thấp hơn 1kHz thì đồ thị trên gần như
là tuyến tính, điều này có nghĩa là trong khoảng tần số dưới 1kHz, tần số Mel là tần số thực Ngược lại, mối quan hệ này là quan hệ Logarit khi tần số trên 1kHz
Căn cứ vào các thực nghiệm trên tai người, người ta đã xác định được các tần số thực mà tai người có thể nghe được và chứa đựng nhiều thông tin Tiếp theo sẽ chuyển các tần số này sang tần số Mel và xây dựng một thang đo:
(2.9)
Trang 32Hình 2.12 Băng lọc tần số Mel
Nguồn: Tham khảo từ [20]
Người ta sử dụng thang đo này áp dụng vào dãy sóng tín hiệu thu được sau khi thực hiện FFT
Hình 2.13 Đưa tín hiệu vào băng lọc tần số Mel
Nguồn: Tham khảo từ [20]
Ở bước này chúng ta sẽ thu được tập hợp các tần số Yt(m) là giao điểm của sóng tần số với thang tần số Mel từ dãy tín hiệu Xt(k)
c Logarit giá trị năng lượng (Logarit of filter energies)
Ở bước này sẽ giúp nén các giá trị đã lọc được vào miền giá trị nhỏ hơn để xử lý nhanh hơn Do đó, các giá trị thu được ở từng kênh lọc sẽ được lấy Logarit với công thức log{|Yt(m)|2}
d Biến đổi cosin rời rạc
Do năng lượng phổ log là thực và đối xứng nên biến đổi DFT ngược được nói gọn
là biến đổi cosine rời rạc
Với phổ tín hiệu tiếng nói của con người trên miền tần số, có thể thấy rằng phổ tín hiệu khá trơn, cho nên khi lấy các giá trị năng lượng ra từ các bộ lọc, các giá trị này
Trang 33vậy, ta phải biến đổi DCT (Discrete Cosine Transform) để làm rời rạc các giá trị này ra
để nó ít tương quan với nhau, giúp tăng tính đặc trưng của các tham số Sau bước này ta thu được một giá trị ta gọi là hệ số Cepstral
i
N
j mj Trong đó:
Số lượng đặc trưng i trong mỗi vector đặc trưng thường được lấy trong đoạn [1,12] Trong một số hệ nhận dạng để cho kết quả nhận dạng tương đối mà dữ liệu xử lý lại không quá lớn thì số lượng đặc trưng nằm trong khoảng (10,15) là đủ
Theo công thức trên ta thấy các hệ số thu được sẽ tăng tuyến tính theo số bậc của
nó sau khi thực hiện biến đổi DCT Hệ số Cepstral nào có số bậc cao sẽ có giá trị rất cao, ngược lại các hệ số nào với số bậc thấp sẽ có giá trị rất thấp Khi có sự chênh lệch cao này, ta phải dùng miền giá trị lớn để biểu diễn dữ liệu, và gặp khó khăn khi đưa vào các
mô hình xử lý xác suất, Do đó, ta sẽ thực hiện việc điều chỉnh các hệ số này giúp giảm
sự chênh lệch để có các hệ số tối ưu cho các quá trình sau Để thực hiện ta sử dụng công thức:
c'n = exp(n * fc) cn
Kết quả ta sẽ thu được các giá trị hệ số Cepstral đã được tinh chế Các hệ số này
là đặc trưng MFCC sẽ sử dụng để huấn luyện và nhận dạng Trong nhận dạng tiếng nói thì số hệ số MFCC thường nhỏ hơn 15 [10]
2.5.6.2 Rút trích đặc trưng với LPC (Linear Predictive Coding)
Mã hóa dự báo tuyến tính (LPC - Linear Predictive Coding) là: một mẫu tiếng nói được xấp xỉ bởi tổ hợp tuyến tính của các mẫu trước đó Thông qua việc tối thiểu hóa tổng bình phương sai số giữa các mẫu hiện tại với các mẫu dự đoán có thể xác định được một tập duy nhất các hệ số dự báo Phương pháp này là một trong những phương pháp được sử dụng rộng rãi trong việc rút trích đặt trưng của tín hiệu âm thanh (còn gọi là tham số hóa tính hiệu âm thanh) Đây là phương pháp có vai trò quan trọng trong các kỹ thuật phân tích tiếng nói và là phương pháp hiệu quả cho việc nén (mã hóa với chất lượng tốt) dữ liệu tiếng nói ở mức bit rate thấp
Phương pháp LPC phân tích những tín hiệu tiếng nói bằng cách ước tính các formant, loại bỏ đi các thành phần ảnh hưởng của nó (những thứ không có giá trị tiếng
N gọi là số kênh lọc
Mj gọi là giá trị logarit năng lượng của mạch lọc thứ j
i gọi là bậc của hệ số cepstral
(2.10)
(2.11)
Trang 34nói trong âm phát ra), và tính toán ước lượng cường độ, tần số của phần âm thanh còn lại Quá trình loại bỏ ở trên còn được gọi là quá trình lọc nghịch đảo (inverse filtering)
và phần âm thanh còn lại gọi là “cặn” (residue) có những yếu tố đặc trưng cốt lõi của âm thanh Kết quả sau khi thực hiện LPC là những con số mô tả những đặc điểm quan trọng của các formant cũng như phần âm thanh còn lại Những con số này được dùng đại diện như tín hiệu tiếng nói ban đầu, hiệu quả hơn trong việc lưu trữ, phân tích nội dung, truyền tải tiếng nói Phương pháp LPC còn được sử dụng trong quá trình tổng hợp lại tiếng nói
từ những con số đặc trưng trên
Hình 2.14: Sơ đồ xử lý LPC dùng trích chọn đặc trưng tiếng nói
Nguồn: Tham khảo từ [3]
Đặc điểm của phương pháp LPC là một mẫu tiếng nói cho trước ở thời điểm n, s(n) được xấp xỉ bằng một tổ hợp tuyến tính của p mẫu tiếng nói trước đó:
s(n) a1s(n-1) + a2s(n-2) + + aps(n-p) Trong đó a1, a2, , an là các hằng số trên khung dữ liệu được xem xét Ta chuyển đẳng thức trên tương đương bằng cách thêm giới hạn kích thích, G.u(n), có:
s(n) = ( ) ( )
1
nuGinsa
1
zGUzSz
(2.12)
(2.13)
(2.14)
Trang 35H(z) =
) (
1 1
1 )
(
) (
1
z A z a z
GU
z S
p
i
i i
)(
1z
A , tạo ra tín hiệu tiếng nói s(n)
Hình 2.15 Mẫu tiếng nói dự báo tuyến tính
Đối với tính năng kích thích thực tế của tiếng nói về bản chất là chuỗi liên tục các xung gần như điều hoà (với các âm hữu thanh) và là một nguồn nhiễu ngẫu nhiên (với các âm vô thanh), mẫu hoà âm thích hợp đối với tiếng nói, tương ứng với phân tích LPC được mô tả phía dưới Ở đây, nguồn kích thích đã chuẩn hoá được chọn nhờ một chuyển mạch mà vị trí của nó được điều khiển bởi đặc tính hữu thanh hay vô thanh của tiếng nói, lấy cả chuỗi xung gần điều hoà làm kích thích đối với các âm hữu thanh, lấy cả chuỗi nhiễu ngẫu nhiên cho các âm vô thanh Độ khuếch đại G của nguồn được ước lượng từ tín hiệu tiếng nói, và nguồn được nâng mức dùng để làm đầu vào cho bộ lọc tần số (H(z)), được điều khiển bởi đặc tính của các tham số dải phát âm của tiếng nói đang được tạo
Vì vậy các tham số của mẫu này là phân loại hữu thanh hoặc vô thanh, chu kỳ cao độ của
âm hữu thanh, tham số khuếch đại, và các hệ số của bộ lọc số {ak}, các tham số này đều biến đổi rất chậm theo thời gian Quan hệ giữa s(n) và u(n):
Có thể xem tổ hợp tuyến tính của các mẫu tiếng nói trước đó là ước lượng s(n), được định nghĩa:
1
p k k
Trang 36Vậy khi s(n) được tạo thực sự bởi một hệ tuyến tính thì lỗi dự báo e(n) sẽ bằng G.u(n), kích thích sẽ được khuếch đại
Về cơ bản, phân tích dự báo tuyến tính là xác định tập các hệ số dự báo {ak}, trực tiếp từ tín hiệu tiếng nói sao cho các đặc tính phổ của bộ lọc trùng với tín hiệu sóng tiếng nói trong cửa sổ phân tích
Do các đặc tính phổ của tiếng nói biến đổi theo thời gian cho nên các hệ số dự báo tại thời điểm cho trước n, phải được tính toán ước lượng từ một đoạn tín hiệu tiếng nói ngắn xuất hiện quanh thời điểm n Do đó cách cơ bản là tìm một tập các hệ số dự báo giảm thiểu lỗi dự báo trung bình bậc hai trên một đoạn dạng sóng tiếng nói Thông thường thì kiểu phân tích phổ thời gian ngắn này được thực hiện trên các khung tiếng nói liên tiếp,
có dãn cách khung khoảng 10ms Bài toán này được giải dựa trên phương pháp tự tương quan
a Phân tích tự tương quan
Các hệ số {ak} ước lượng được sẽ là nghiệm của phương trình:
1
ˆ (| |)
p
n k n k
1 2 3
b Phân tích LPC
Bước tiếp theo cần xử lý là phân tích LPC, chuyển từng khung gồm p+1 hệ số tương tự quan thành một "tập tham số LPC", đó là các hệ số LPC bằng cách dùng thuật toán Levinson-Durbin
(2.19)
(2.21)
(2.21)(2.20)
Trang 37r a
p i i p
2
1 1
4) Quay lại bước 1, thay p bằng p+1 nếu p=< P
Sau cùng ta có thể dùng các hệ số LPC làm vector đặc trưng cho từng khung Nhưng do có một phép biến đổi tạo ra dạng hệ số khác có độ tập trung cao hơn từ các hệ
am
=
p
m
1
Cm = m k m k
k
am
(2.26)(2.27)
Trang 38Với là hằng số chuẩn hóa và (2K+1) là số lượng Frame được tính
Kết thúc: Vector đặc trưng của tín hiệu gồm Q hệ số cepstral và Q đạo hàm của
hệ số cepstral
f Nhận xét phương pháp LPC
Kết luận, với mô hình phân tích LPC như trên, chúng ta cần phải đặc tả các tham
số bao gồm:
- N: là số mẫu trong mỗi Frame phân tích
- M: là số mẫu cách nhau giữa 2 Frame kề nhau
- P: là cấp phân tích LPC
- Q: là số chiều của các vector cepstral dẫn xuất từ các hệ số LPC
- K: là số frame được dùng tính các đạo hàm cepstral
Ta thấy mỗi tham số đều có thể thay đổi trên dải rộng, bảng sau cho các giá trị đặc trưng đối với các hệ phân tích ở 3 tần số lấy mẫu khác nhau (6.67kHz, 8kHz và 10kHz)
Bảng 2.1: Các giá trị đặc trưng cho các tham số phân tích LPC [15]
là mô hình hữu ích cho các mục đích nhận dạng tiếng nói LPC là một mô hình đơn giản
(2.29)
(2.31)(2.30)
Trang 392.5.7 Dò tìm năng lượng (energy detection)
Mục tiêu của bước dò tìm năng lượng là nhằm loại bỏ những đoạn âm thanh không
có lời thoại Công việc này được thực hiện thông qua việc so sánh năng lượng của mỗi vector đặc trưng với một ngưỡng T, nếu mức năng lượng nhỏ hơn T, vector đặc trưng đó
sẽ bị loại ra Sau bước dò tìm năng lượng, các vector đặc trưng có lời thoại sẽ được chuẩn hóa ở bước tiếp theo
2.6 GAUSSIAN MIXTURE MODEL
GMM (Gaussian Mixture Model) là một mô hình thống kê được xây dựng từ việc huấn luyện các tham số dựa vào dữ liệu học Ngoài ra, mô hình GMM cũng có một số tên gọi khác như Weighted Normal Distribution Sums hay Radial Basis Function Approximations
Về căn bản, mô hình GMM xấp xỉ một hàm mật độ xác suất bằng hợp các hàm mật độ Gauss Với hàm mật độ xác suất của phân phối Gauss fN(x,,2) được cho bởi công thức:
) 2 (
Trang 40Hình 2.16 Mô hình GMM
Với M phân phối Gauss cho trước có các hàm mật độ p1, p2, , pM, hàm mật độ xác suất của mô hình GMM được minh họa trong hình 2.16 chính là tổng trọng của M phân phối Gauss theo công thức:
Hình 2.17 Hàm mật độ của GMM có 3 phân phối Gauss
Nguồn: Tham khảo từ [9]
Do đó, một mô hình GMM có M phân phối Gauss sẽ được đại diện bởi bộ tham
số = { wi, i, i}, i 1 , M Do phụ thuộc vào cách tổ chức của ma trận hiệp phương sai (covariance matrix), GMM có thể có một số biến thể khác nhau:
- Nodal covariance matrices GMM: mỗi phân phối Gauss trong GMM có
(2.35)