Luận văn này thực hiện nghiên cứu ứng dụng bộ công cụ HTK Toolkit để xây dựng hệ thống nhận dạng tiếng nói rời rạc với bộ từ vựng hữu hạn nhằm bước đầu tìm hiểu công nghệ nhận dạng tiếng nói tiếng Việt Bên cạnh đó luận văn còn tìm hiểu về đặc điểm tín hiệu tiếng nói tiếng Việt mô hình Markov ẩn phương pháp rút trích đặc trưng tín hiệu tiếng nói MFCC đồng thời tiến hành khảo sát 2 tham số có khả năng ảnh hưởng lớn đến hiệu suất nhận dạng của hệ thống gồm số trạng thái của một HMM số phân bố trong mô hình hỗn hợp Gauss của mỗi trạng thái Luận văn góp phần nhỏ vào lĩnh vực nghiên cứu ứng dụng và cải tiến các hệ thống nhận dạng tiếng nói tiếng Việt rời rạc
Trang 1LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng - Năm 2018
Trang 2ĐẠI HỌC ĐÀ NẴNG
- -
LÊ NGỌC HUY
ỨNG DỤNG HTK TOOLKIT XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG NÓI RỜI RẠC VỚI BỘ TỪ VỰNG HỮU HẠN
Chuyên ngành: KHOA HỌC MÁY TÍNH
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là luận văn do tôi nghiên cứu dưới sự hướng dẫn khoa học của TS.Ninh Khánh Duy Các kết quả trong phần kết luận là hoàn toàn trung thực do bản thân thực hiện nghiên cứu, so sánh và đánh giá
Các nguồn tài liệu tham khảo trong và ngoài nước đều được trích dẫn đầy đủ, phù hợp với các quy định hiện hành của Bộ Giáo dục và Đào tạo, Trường Đại học Bách khoa
Đà Nẵng
Người cam đoan
Lê Ngọc Huy
Trang 4LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn Quý thầy, cô Trường Đại học Bách khoa
Đà Nẵng và Khoa Công nghệ tin trong thời gian qua đã tận tình hướng dẫn, truyền đạt các kiến thức để em hiểu, nghiến cứu sâu hơn trong lĩnh vực công nghệ thông tin, đặc biệt là lĩnh vực ứng dụng
Cảm ơn thầy - TS.Ninh Khách Duy đã dành nhiều thời gian, công sức để hướng dẫn em tìm hiểu sâu về môn học xử lý tiếng nói và thực hiện nghiên cứu thực nghiệm
về xử lý tiếng nói rời rạc để hoàn chỉnh luận văn này và định hướng nghiên cứu ứng dụng sau này
Xin cảm ơn gia đình, bạn bè cùng khóa đã tạo điều kiện về thời gian, trao dồi kiến thức trong toàn bộ quãng thời gian học tập và nghiêu cứu luận văn
Kính chúc Quý thầy cô nhiều sức khỏe, hạnh phúc, tiếp tục gặt hái nhiều thành công hơn nữa trên con đường nghiêu cứu, giảng dạy
Kính chúc gia đình, bạn bè thực hiện thành công nhiều ước mơ tươi đẹp trong cuộc sống
Người thực hiện luận văn
Lê Ngọc Huy
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
TÓM TẮT LUẬN VĂN vii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT viii
DANH MỤC BẢNG ix
DANH MỤC HÌNH VẼ x
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích và ý nghĩa đề tài 1
2.1 Mục đích 1
2.2 Ý nghĩa khoa học và thực tiễn của đề tài 2
3 Mục tiêu và nhiệm vụ 2
3.1 Mục tiêu 2
3.2 Nhiệm vụ 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 3
5.1 Phương pháp lý thuyết 3
5.2 Phương pháp thực nghiệm 3
6 Kết luận 3
6.1 Kết quả của đề tài 3
Trang 66.2 Hướng phát triển của đề tài 3
7 Cấu trúc luận văn 4
Chương I CƠ SỞ LÝ THUYẾT CỦA XỬ LÝ TIẾNG NÓI 5
1.1 Tổng quan xử lý tiếng nói 5
1.1.1 Các lĩnh vực xử lý tín hiệu tiếng nói 5
1.1.2 Phân loại kỹ thuật nhận dạng tiếng nói 6
1.2 Tín hiệu tiếng nói 7
1.2.1 Đặc điểm 7
1.2.2 Tiếng nói tiếng Việt 8
1.2.3 Các đặc tính cơ bản của tín hiệu tiếng nói 11
1.3 Phân tích phổ ngắn hạn tín hiệu tiếng nói – đặc trưng MFCC 13
1.3.1 Tiền nhấn mạnh 14
1.3.2 Phân khung tín hiệu 15
1.3.3 Lấy cửa sổ tín hiệu 15
1.3.4 Biến đổi Fourier nhanh 16
1.3.5 Bộ lọc thang tần số Mel 17
1.3.6 Tính năng lượng phổ Mel 18
1.3.7 Biến đổi Cosine rời rạc 19
1.4 Rút trích đặc trưng năng lượng khung tín hiệu 19
Chương 2: MÔ HÌNH MARKOV ẨN VÀ ỨNG DỤNG TRONG NHẬN DẠNG TIẾNG NÓI 20
2.1 Tổng quan về mô hình Markov ẩn HMM 20
2.1.1 Chuỗi Markov 20
2.1.2 Mô hình HMM 21
2.2 Các thành phần của HMM 22
Trang 72.2.1 Các thành phần 22
2.2.2 Hàm mật độ xác suất hỗn hợp Gauss 24
2.3 Ba bài toán cơ bản của HMM 25
2.3.1 Bài toán đánh giá 25
2.3.2 Bài toán giải mã 26
2.3.3 Bài toán huấn luyện 28
2.4 Ứng dụng của HMM trong nhận dạng tiếng nói rời rạc 29
2.4.1 Giai đoạn huấn luyện mô hình 30
2.4.2 Giai đoạn nhận dạng 31
Chương 3 BỘ CÔNG CỤ HTK TOOLKIT 32
3.1 Chuẩn bị dữ liệu 33
3.2 Huấn luyện 34
3.2.1 Modules định nghĩa mô hình HMM và gắn nhãn dữ liệu tiếng nói 35
3.2.2 Các modules phục vụ huấn luyện mô hình 37
3.3 Các modules phục vụ nhận dạng tiếng nói 39
3.3.1 HParse 39
3.3.2 HDMan 40
3.3.3 HBuild 40
3.3.4 HVite 41
3.4 Phân tích kết quả nhận dạng 41
Chương 4: CÀI ĐẶT VÀ ĐÁNH GIÁ HỆ THỐNG NHẬN DẠNG 43
4.1 Xây dựng dữ liệu huấn luyện và kiểm thử hệ thống 43
4.1.1 Thu âm dữ liệu 43
4.1.2 Đặc tính file dữ liệu 43
4.2 Cài đặt hệ thống 43
Trang 84.3 Cấu hình hệ thống nhận dạng 45
4.4 Kết quả thực nghiệm 45
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
5.1 Kết luận 47
5.2 Hướng phát triển 47
DANH MỤC TÀI LIỆU THAM KHẢO 48
Trang 9TÓM TẮT LUẬN VĂN
Tóm tắt - Luận văn này thực hiện nghiên cứu, ứng dụng bộ công cụ HTK
Toolkit để xây dựng hệ thống nhận dạng tiếng nói rời rạc với bộ từ vựng hữu hạn nhằm bước đầu tìm hiểu công nghệ nhận dạng tiếng nói tiếng Việt Bên cạnh đó, luận văn còn tìm hiểu về đặc điểm tín hiệu tiếng nói tiếng Việt, mô hình Markov ẩn, phương pháp rút trích đặc trưng tín hiệu tiếng nói MFCC, đồng thời tiến hành khảo sát 2 tham số có khả năng ảnh hưởng lớn đến hiệu suất nhận dạng của hệ thống gồm: số trạng thái của một HMM, số phân bố trong mô hình hỗn hợp Gauss của mỗi trạng thái Luận văn góp phần nhỏ vào lĩnh vực nghiên cứu, ứng dụng và cải tiến các hệ thống nhận dạng tiếng nói tiếng Việt rời rạc
Từ khóa - Nhận dạng tiếng nói tự động; Công cụ HTK Toolkit; Mô hình
Markov ẩn
Summary - This thesis is a study and application of the HTK Toolkit to build a
isolated speech recognition system for Vietnamese with limited vocabulary with the aim
to learn about automatic speech recognition technology Besides, the thesis also investigates the characteristics of Vietnamese speech signals, the Hidden Markov Model, the MFCC speech extraction method and the two parameters that have important effects on system performance including: the number of states of an HMM, the number
of distributions in the Gauss mixture model of each state The thesis has contributed to the research, application and improvement of isolated speech recognition systems for Vietnamese
Keywords - Automatic Speech Recognition (ASR); HTK Toolkit; Hidden
Markov Models (HMM)
Trang 10DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
ASR Automatic Speech Recognition
DCT Discrete Cosine Transform
DTW Dynamic Time Warping
FFT Fast Fourier Transform
HMM Hidden Markov Model
HTK Hidden Markov Model Toolkit
LPC Linear Prediction Coded
MFCC Mel-Frequency Cepstral Coefficient
VQ Vec tơ Quantilization
WAC Word Accuracy
WER Word Error Rate
WRR Word Recognition Rate
DNN Deep Neural Network
PLP Perceptual Linear Prediction
GMM Gaussian Mixture Model
Trang 11DANH MỤC BẢNG
Bảng 4.1 So sánh hiệu suất nhận dạng phụ thuộc số trạng thái và số phân bố
Trang 12DANH MỤC HÌNH VẼ
Hình 1.2 Tín hiệu tiếng nói phát âm liên tục và rời rạc 7
Hình 1.3 Tín hiệu tiếng nói tiếng Việt phát âm rời rạc từ “không” đến “chín” 7
Hình 1.4 Sơ đồ chuyển đổi tín hiệu âm thanh từ analog sang digital 8
Hình 1.5 Sự khác nhau giữa âm tiết tiếng Anh và tiếng Việt 9
Hình 1.8 Các trục, độ đậm nhạt và vùng biên ảnh phổ tín hiệu phát âm “ba” 11
Hình 1.9 Tín hiệu tiếng nói và ảnh phổ phát âm “tám” với formant của
Hình 1.10 (a) tần số, đường năng lượng âm vô thanh - (b) tần số, đường năng
Hình 1.11 Quy trình phân tích phổ ngắn hạn tín hiệu tiếng nói MFCC 14
Hình 1.12 Tín hiệu analog và tín hiệu digital tương ứng 14
Hình 1.14 Sự tương đồng của cửa sổ Hamming và Hanning 16
Trang 13Hình 1.15 Cửa sổ Hamming (a) 128 điểm, (b) 124 điểm 16
Hình 1.16 Ảnh phổ âm tiết “không” bằng phân tích FFT với 512 điểm, tiền
Hình 1.19 Các giá trị được rút trích từ đặc trưng MFCC 20
Hình 2.1 Một số phương pháp ứng dụng trong nhận dạng tiếng nói 20
Hình 2.4 Mô hình HMM với các chuỗi trạng thái (states) ẩn 22
Hình 2.5 Cấu trúc cơ bản của HMM trong nhận dạng tiêng nói 22
Hình 2.6 Minh họa thuật toán Viterbi để tìm chuỗi trạng thái tối ưu 28
Hình 2.8 Ứng dụng các bài toán trong nhận dạng từ rời rạc 30
Trang 14Hình 3.1 Kiến trúc của HTK Toolkit 32
Hình 3.2 Các modules xử lý, nhận dạng tiếng nói của HTK Toolkit 33
Hình 3.3 Gắn nhãn file bằng wavesurfer, phát âm “một” 33
Hình 3.5 Các loại thông số bổ sung vào các tham số MFCC để tăng hiệu suất
Hình 3.7 Cấu trúc file proto HMM (a) phát âm từ “ba” 36
Hình 3.10 Các modules thực hiện giai đoạn huấn luyện HMM 37
Hình 3.12 Kết quả thực thi modules HERest là 39 giá trị được huấn luyện lại
Hình 3.14 Sơ đồ hoạt động modules HDMan và từ vựng trong txt/wlist 40
Trang 15Hình 3.15 Mô hình ngôn ngữ mức dưới từ (word-level) HMM của một âm và
Hình 3.16 Sơ đồ hoạt động modules HVite, dữ liệu đầu ra là các file được phiên
Trang 16MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, cuộc cách mạng khoa học công nghệ đã bước sang giai đoạn 4.0, trong đó ngành khoa học máy tính đã đạt được những thành tựu nổi bật trong nhiều hướng nghiên cứu khác nhau, sự tương tác giữa người và máy tính trở nên dễ dàng hơn qua các thiết bị đầu vào như chuột, bàn phím, camera, microphone Có nhiều cách để con người giao tiếp với máy tính, trong đó có giao tiếp bằng tiếng nói Nhu cầu giao tiếp với máy tính bằng tiếng nói trở nên cần thiết, đó là phương thức giao tiếp tự nhiên nhất, hiện đại nhất
Ở nước ta, nhận dạng tiếng nói vẫn là một lĩnh vực khá mới mẻ và đang được đầu tư phát triển Do còn tùy thuộc vào điều kiện nghiên cứu và sự phức tạp của ngữ âm tiếng Việt nên các nghiên cứu về hệ thống nhận dạng giọng nói tiếng Việt vẫn còn nhiều hạn chế Đến nay, nghiên cứu về nhận dạng tiếng Việt đã đạt được một số kết quả nhất định và mang tính ứng dụng cao như: Ứng dụng iSago thực hiện giao tiếp bằng giọng nói tiếng Việt trên điện thoại iPhone (phiên bản 1.0) và VIS (Viet Voice Systems) - tổng đài hỏi đáp thông tin tự động bằng tiếng Việt, sử dụng công nghệ nhận dạng và tổng hợp giọng nói tiếng Việt với độ chính xác cao và tốc độ xử lý nhanh do Phòng thí nghiệm Trí tuệ Nhân tạo (AILab) của Trường Đại học Khoa học Tự nhiên nghiên cứu, phát triển
từ năm 2008
Mảng điều khiển máy tính bằng giọng nói còn nhiều hạn chế ở Việt Nam Có thể nói, ViaVoice là một trong những phần mềm điều khiển máy tính bằng tiếng nói xuất hiện đầu tiên ở Việt Nam vào những năm 1999-2000 và cũng chỉ sử dụng được bằng tiếng Anh Với Vspeech: đây là một phần mềm điều khiển máy tính bằng giọng nói do nhóm sinh viên BK02, Đại học Bách Khoa thành phố Hồ Chí Minh nghiên cứu vào năm 2004 Phần mềm sử dụng thư viện Microsoft Speech SDK để nhận dạng tiếng Anh nhưng được chuyển thành tiếng Việt Hiện nay, hướng phát triển ứng dụng điều khiển máy tính bằng giọng nói tiếng Việt đang là tiềm năng và là xu thế của một số ứng dụng tại Việt Nam, đem đến nhiều tiện ích trong cuộc sống Vì vậy, tôi chọn đề tài:
“Ứng dụng HTK Toolkit xây dựng hệ thống nhận dạng tiếng nói rời rạc với bộ từ vựng hữu hạn” nhằm bước đầu tìm hiểu công nghệ nhận dạng tiếng nói
Trang 172.2 Ý nghĩa khoa học và thực tiễn của đề tài
- Góp phần nhỏ trong số các phương pháp xử lý tiếng nói cho tiếng Việt
- Có thể mở rộng bộ từ vựng rời rạc để xây dựng các ứng dụng giao tiếp với máy tính bằng tiếng Việt như: nhập điểm học sinh, bán hàng, điều khiển webbrowser dành cho người khuyết tật, thiết bị điều khiển thông minh…
3 Mục tiêu và nhiệm vụ
3.1 Mục tiêu
- Nghiên cứu, thử nghiệm hướng nhận dạng tiếng Việt rời rạc bằng HTK Toolkit (Hidden MarKov Model Toolkit - bộ công cụ phát triển để xây dựng các mô hình Markov ẩn – Hidden Markov Models (HMM))
- Xây dựng chương trình nhận dạng tiếng nói tiếng Việt cho 10 con số từ
“không” đến “chín”, có khả năng nhận dạng không phụ thuộc người nói
3.2 Nhiệm vụ
Để đạt được mục tiêu trên, đề tài cần thực hiện các nhiệm vụ sau:
- Nghiên cứu lý thuyết mô hình HMM
- Nghiên cứu ứng dụng của HMM trong nhận dạng tiếng nói rời rạc
- Tìm hiểu bộ công cụ HTK Toolkit cho nhận dạng tiếng nói
- Thu âm dữ liệu tiếng nói của nhiều người với các chất giọng khác nhau (từ
30 người trở lên)
- Cài đặt chương trình huấn luyện HMM từ dữ liệu thu âm bằng HTK Toolkit
- Cài đặt chương trình nhận dạng tiếng nói dùng HTK Toolkit
- Đánh giá độ chính xác của chương trình nhận dạng
4 Đối tượng và phạm vi nghiên cứu
- Bộ công cụ HTK Toolkit, mô hình HMM và ứng dụng trong nhận dạng tiếng nói
- Dữ liệu tiếng nói tiếng Việt rời rạc từ “không” đến “chín” của nhiều người nói
Trang 18- Phương pháp nhận dạng tiếng nói rời rạc (isolated speech recognition)
5 Phương pháp nghiên cứu
5.1 Phương pháp lý thuyết
- Nghiên cứu mô hình HMM
- Nghiên cứu ứng dụng của HMM trong nhận dạng tiếng nói rời rạc (isolated speech recognition)
- Tìm hiểu phương pháp nhận dạng tiếng Việt bằng HMM
- Nghiên cứu bộ công cụ HTK Toolkit trong nhận dạng tiếng Việt
- Tìm hiểu các phương pháp xử lý tiếng nói
- So sánh các phương pháp để đưa ra giải pháp tối ưu
5.2 Phương pháp thực nghiệm
- Thu mẫu âm tiếng Việt rời rạc từ “không” đến “chín”
- Tìm hiểu công cụ hỗ trợ nghiên cứu, thực nghiệm
- Cài đặt thuật toán, xây dựng hệ thống
- Triển khai, đánh giá kết quả đạt được
6 Kết luận
6.1 Kết quả của đề tài
- Dữ liệu thu âm tiếng nói của hơn 30 người với chất giọng khác nhau
- Đưa ra mô hình nhận dạng tiếng Việt rời rạc
- Xây dựng, cài đặt hệ thống nhận dạng tiếng Việt rời rạc cho mười chữ số
6.2 Hướng phát triển của đề tài
- Xây dựng, mở rộng cơ sở dữ liệu huấn luyện về tiếng Việt rời rạc
- Tối ưu hoá phương pháp nhận dạng tiếng Việt để có kết quả nhận dạng chính xác hơn và nhanh hơn
Trang 197 Cấu trúc luận văn
Chương 1 Cơ sở lý thuyết của xử lý tiếng nói
Chương 2 Mô hình Markov ẩn và ứng dụng trong nhận dạng tiếng nói Chương 3 Bộ công cụ HTK Toolkit
Chương 4 Cài đặt và đánh giá hệ thống nhận dạng
Chương 5 Kết luận và hướng phát triển
Trang 20Chương I CƠ SỞ LÝ THUYẾT CỦA XỬ LÝ TIẾNG NÓI
1.1 Tổng quan xử lý tiếng nói
1.1.1 Các lĩnh vực xử lý tín hiệu tiếng nói
Theo nghiên cứu [1], trong xử lý tiếng nói được chia thành các lĩnh vực cơ bản như sau - hình 1.1
- Phân tích/tổng hợp tiếng nói (analysis/synthesis): Tạo ra tiếng nói từ dữ liệu đầu vào dưới dạng ký tự Lĩnh vực này được sử dụng trong các hệ thống tổng đài hỏi đáp tự động, máy ATM, thống báo tự động nơi công cộng
- Mã hóa (coding): Mã hóa tín hiệu tiếng nói, thường áp dụng cho lưu trữ dữ liệu hoặc truyền tín hiệu tiếng nói
- Nhận dạng (recognition): Được chia thành các lĩnh vực:
+ Nhận dạng tiếng nói (speech recognition): Làm cho máy tính hiểu được ngôn ngữ nói, thường ứng dụng trong các hệ thống chuyển đổi tín hiệu tiếng nói sang dạng
ký tự (speech-to-text), điều khiển thiết bị bằng giọng nói
+ Nhận dạng người nói (speaker recognition): Làm cho máy tính phân biệt được tiếng nói của những người khác nhau, thường ứng dụng trong lĩnh vực bảo mật, điện thoại viên ngân hàng
+ Nhận dạng ngôn ngữ (language recognition): Làm cho máy tính hiểu được bạn đang sử dụng ngôn ngữ gì, thường ứng dụng trong lĩnh vực dịch tự động, bán hàng
Trong nhận dạng tiếng nói, được chia làm hai lĩnh vực nghiên cứu, ứng dụng nhỏ,
đó là:
● Định danh người nói (speech identification): Nhận dạng tiếng nói có phải của người đã được huấn luyện (training) hay không, dạng này thường sử dụng trong lĩnh vựng xác thực ID người sử dụng, tổng đài viên xác định danh tính người gọi
● Xác minh người nói (speaker verification): Nhận dạng tiếng nói đã được huấn luyện, thường được sử dụng trong các hệ thống điều khiển thiết bị bằng giọng nói
Trong lĩnh vực định danh người nói và xác minh người nói đều có điểm tương đồng là nhận dạng độc lập văn bản và không phụ thuộc văn bản
Trang 21Hình 1.1 Sơ đồ các hệ thống xử lý tiếng nói cơ bản [1]
1.1.2 Phân loại kỹ thuật nhận dạng tiếng nói
Nhận dạng tiếng nói về cơ bản có thể chia làm các loại như sau:
1.1.2.1 Nhận dạng từ phát âm liên tục và nhận dạng từ phát âm rời rạc
- Nhận dạng từ phát âm liên tục: Hệ thống thực hiện nhận dạng các chuỗi tín hiệu tiếng nói liên tục được phát âm của một câu, một đoạn văn Tín hiệu tiếng nói dạng này thường không có sự ngắt quảng giữa các âm tiết hoặc ngắt quảng không rõ ràng dẫn đến việc nhận dạng vô cùng khó khăn và phức tạp, nếu đòi hỏi phải nhận dạng thời gian thực thì yêu cầu hệ thống xử lý càng phức tạp hơn (hệ thống thư ký hội nghị, máy thông dịch ngôn ngữ)
- Nhận dạng từ phát âm rời rạc: Hệ thống thực hiện nhận dạng tín hiệu tiếng nói rời rạc (số điện thoại, mệnh lệnh điều khiển) Loại nhận dạng này đơn giãn hơn so với nhận dạng tiếng nói liên tục, ít bị sai sót do các từ được phát âm tách biệt, có khoảng cách rõ giữa các từ
Ví dụ tín hiệu tiếng nói thu được khi phát âm liên tục và rời rạc – hình 1.2
Trang 22Hình 1.2 Tín hiệu tiếng nói phát âm liên tục và rời rạc
1.1.2.2 Nhận dạng phụ thuộc người nói và độc lập người nói
- Nhận dạng phụ thuộc người nói: Hệ thống chỉ có thể nhận dạng giọng nói của một người duy nhất khi giọng nói của họ đã được đưa vào tập dữ liệu huấn luyện (training), nếu muốn nhận dạng một người khác thì phải huấn luyện hệ thống lại từ đầu Điều này tốn rất nhiều thời gian, công sức cho người sử dụng và người lập trình hệ thống Ưu điểm của hệ thống này là tập dữ liệu huấn luyện ít, quá trình nhận dạng đạt hiệu suất cao
- Nhận dạng độc lập người nói: Hệ thống có khả năng nhận dạng giọng nói của bất kỳ người nào, không phụ thuộc giọng nói người đó có trong dữ liệu huấn luyện hay không Để làm được vấn đề này, tập dữ liệu huấn luyện phải đủ lớn thì hệ thống mới hoạt động hiệu quả Loại nhận dạng này khá phổ biến, dễ ứng dụng trong thực tiễn, đặc biệt là các hệ thống phục vụ nơi công cộng
Trong đề tài này, tôi tập trung nghiên cứu hệ thống có khả năng nhận dạng tiếng nói rời rạc và không phụ thuộc người nói
1.2 Tín hiệu tiếng nói
1.2.1 Đặc điểm
Hình 1.3 Tín hiệu tiếng nói tiếng Việt phát âm rời rạc từ “không” đến “chín”
Tiếng nói là phương thức giao tiếp cơ bản nhất của con người được phát ra dưới dạng sóng âm thanh Tai người chỉ cảm thụ được những dao động hay còn gọi là sóng
âm trong miền tần số từ khoảng 16Hz đến khoảng 20000Hz Những sóng có tần số nhỏ hơn 16Hz gọi là sóng hạ âm, những sóng có tần số lớn hơn 20000Hz gọi là sóng siêu
âm, con người không cảm nhận được Sóng âm có thể truyền trong các mỗi trường rắn, lỏng, khí Sóng âm có bước sóng càng ngắn thì năng lượng càng cao
Trang 23Giọng nam phát âm thường trong miên tần số từ 75Hz đến 150Hz, giọng nữ từ 200Hz đến 300Hz Mỗi người có đặc tính phát âm riêng, thậm chí cùng một người cũng
có thể phát âm khác nhau với cùng một âm tiết
Các thiết bị thu âm, đặc biệt là với sự hỗ trợ của máy vi tính sẽ xử lý, lưu trữ theo các định dạng wav, mp3, au, aif, smp… tần số lấy mẫu thường là 8000, 11025,…96000Hz… với độ phân giải là 8 hoặc 16/bít/mẫu, số kênh (chanel): 1(mono) hoặc 2(stereo), định dạng mã hóa (encoding): lin8, lin16, lin32, mulaw, alaw… tùy theo mục đích người sử dụng
Để thực hiện các kỹ thuật trong xử lý tiếng nói, người ta phải chuyển đổi tín hiệu tiếng nói tương tự (analog) sang tín hiệu kỹ thuật số (digital) - hình1.4
Hình 1.4 Sơ đồ chuyển đổi tín hiệu âm thanh từ analog sang digital
1.2.2 Tiếng nói tiếng Việt
Tiếng Việt là một ngôn ngữ đơn âm tiết (monosyllable), nghĩa là mỗi một âm tiết được thể hiện bởi một từ và cũng là đơn vị cơ bản trong phát âm Theo nghiên cứu [2], đặc điểm của âm tiết tiếng Việt như sau:
- Có tính độc lập cao: Trong lời nói, âm tiết tiếng Việt bao giờ cũng được thể hiện khá đầy đủ, rõ ràng, được tách và ngắt ra thành từng khúc đoạn riêng Khác với âm tiết của một số ngôn ngữ, âm tiết tiếng Việt thường không bị nhược hóa (reduction) hay mất đi Tính chất tách bạch từng âm tiết còn được phản ánh trên văn tự: Người ta viết rời từng âm tiết (chữ) chứ không viết liền thành từ như kiểu chữ Nga, Anh, Pháp Hình
1.5 - minh họa sự khác nhau giữ âm tiết tiếng Anh và tiếng Việt
Trang 24Hình 1.5 Sự khác nhau giữa âm tiết tiếng Anh và tiếng Việt
- Có khả năng biểu hiện ý nghĩa: Trong tiếng Việt, tuyệt đại đa số các âm tiết đều
có nghĩa Số lượng âm tiết tự thân mang nghĩa chiếm tuyệt đại đa số Nói cách khác, ở tiếng Việt gần như toàn bộ các âm tiết đều hoạt động như từ Một số âm tiết tuy chưa hẳn là một từ hoàn toàn độc lập như các từ đơn nhưng trong những hoàn cảnh nhất định chúng vẫn có khả năng hoạt động như một từ thực sự Mối quan hệ giữa âm và nghĩa trong âm tiết vô cùng chặt chẽ và thường xuyên, đó chính là một nét đặc trưng loại hình chủ đạo của tiếng Việt
- Có một cấu trúc chặt chẽ: Âm tiết tiếng Việt không phải là một khối không thể chia cắt được mà là một cấu trúc Mỗi âm tiết tiếng Việt, ở dạng đầy đủ nhất có 5 phần – hình 1.6 Mô hình cấu trúc tổng quát của tất cả các âm tiết tiếng Việt là:
THANH ĐIỆU
Hình 1.6 Cấu trúc âm tiếng Việt [2]
Trang 255 thành phần cấu tạo âm tiết tiếng Việt không phải bình đẳng như nhau về mức
độ độc lập và về khả năng kết hợp
Tiếng Việt gồm 22 phụ âm đầu, 20 phần chính (âm đệm và nguyên âm chính) và
155 phần vần không dấu [3]:
- 22 phụ âm đầu chia thành 4 nhóm:
+ vô thanh (stop, voiceless): p, t, k-c-q
+ âm xát (fricative): ph, x, kh, h, v, d, đ, ch, ng-ngh, g-gh, th
+ âm vang (resonant or cororal): m, n, nh, l
+ âm bật đầu lưỡi (retroflex): tr, s, gi, r
+ Âm vô thanh: Là âm khi tạo ra tiếng thì dây thanh không rung hoặc rung đôi chút tạo ra giọng như giọng thở, ví dụ “h”, “p” hay “th”
+ Âm bật: Để phát ra âm bật, đầu tiên bộ máy phát âm phải đóng kín, tạo nên một áp suất, sau đó không khí được giải phóng một cách đột ngột, ví dụ “ch”, “t”
Trang 261.2.3 Các đặc tính cơ bản của tín hiệu tiếng nói
1.2.3.1 Phổ tín hiệu
Phổ tín hiệu là biểu diễn của tín hiệu trên miền tần số Biến đổi qua lại tín hiệu giữa miền thời gian và miền tần số (biến đổi Fourier) Các đỉnh của phổ tín hiệu là tần
số trung tâm của tín hiệu (còn gọi là tần số formant) – hình 1.7
Phổ tín hiệu sau khi nhân với hàm cửa sổ Hamming sẽ sử dụng phép biến đổi Fourier nhanh ta thu được biên độ phổ chứa các thông tin có ích của tín hiệu tiếng nói
Hình 1.7 Phổ tín hiệu nguyên âm “a”
1.2.3.2 Ảnh phổ
Là một trong những công cụ cơ bản trong nhận dạng tiếng nói Nhìn vào ảnh phổ,
ta dễ dàng phân biệt vùng biên của từng âm tiết – hình 1.8
Nó chuyển đổi sóng tín hiệu tiếng nói từ 2 chiều (tần số, cường độ) thành 3 chiều (tần số, cường độ, thời gian) Trong đó, trục ngang và đứng tương ứng với thời gian và tần số tín hiệu, còn cường độ là độ đậm nhạt của màu ảnh phổ Các đỉnh của phổ tín hiệu xuất hiện là các dải nằm ngang màu đậm biểu diễn cho tần số formant (F1, F2, F3) và chỉ xuất hiện đối với các nguyên âm như “a, i, o, u, e…”
Hình 1.8 Các trục, độ đậm nhạt và vùng biên ảnh phổ tín hiệu phát âm “ba”
Trang 271.2.3.3 Tần số formant
Đóng vai trò quan trọng trong phân tích phổ tín hiệu tiếng nói Nó được tạo nên
do sự cộng hưởng của tuyến âm và hiển thị trong quang phổ là các dải màu đậm nằm ngang biểu thị cho các tần số formant – hình 1.9
Hình 1.9 Tín hiệu tiếng nói và ảnh phổ phát âm “tám” với formant của nguyên âm “a”
1.2.3.4 Tần số cơ bản
Tần số cơ bản (F0) mang tính chất của thanh điệu, biểu diễn cao độ, ngữ điệu của tiếng nói Trong tổng hợp tiếng nói, việc xử lý ngữ điệu được thực hiện trên các yếu tố vật lý của tiếng nói bao gồm: tần số cơ bản F0, cường độ và trường độ Trong một số nghiên cứu về nhận dạng tiếng nói, người ta còn bổ sung tham số F0 vào phương pháp trích chọn đặc trưng tín hiệu tiếng nói MFCC như các tham số còn lại, thường là các nghiên cứu về phương ngữ
1.2.3.5 Âm vô thanh
Tín hiệu có đặc điểm là không tuần hoàn (p, h, k, ch, th…), 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 – hình 1.10
1.2.3.6 Âm hữu thanh
Tín hiệu tuần hoàn, năng lượng phân bổ không đồng đều, tín hiệu có những vạch cực trị, đặc điểm của nó là phổ tín hiệu có tần số cơ bản (F0) – hình 1.10
Trang 28(a) - “nhanh”
(b) - “bốn”
Hình 1.10 (a) tần số, đường năng lượng âm vô thanh;
(b) tần số, đường năng lượng âm hữu thanh
1.3 Phân tích phổ ngắn hạn tín hiệu tiếng nói – đặc trưng MFCC
Tín hiệu tiếng nói là dữ liệu chuỗi biến thiên theo thời gian Bao gồm các đặc trưng cơ bản như cường độ, biên độ, nguồn kích thích và các tham số đặc trưng cơ bản của tín hiệu tiếng nói là tần số cơ bản (F0), âm hữu thanh, âm vô thanh, âm tắc, khoảng lặng, các tần số cộng hưởng (formant) Để xử lý tín hiệu tiếng nói, người ta phải chia chuỗi tín hiệu thành các khung khoảng từ 10 – 30ms (gần bằng độ dài một âm tiết) vì trong khoảng thời gian đó các tính chất của dạng sóng tín hiệu tiếng nói có thể được xem như là tĩnh
Để phân tích tín hiệu tiếng nói, người ra thường dùng các phương pháp rút trích đặc trưng của tín hiệu Hiện nay có ba phương pháp phổ biến, đó là MFCC (Mel-Frequency Cepstral Coefficients) - kỹ thuật tính toán dựa trên phân tích phổ ngắn hạn của tín hiệu, LPC (Linear Predictive Coding) - kỹ thuật tính toán dựa trên sự tương quan của các khung tín hiệu và PLP (Perceptual Linear Prediction) - dự đoán tuyến tính cảm thụ Theo nghiên cứu [4] thì MFCC thông dụng và cho kết quả chính xác hơn cả Ngoài
ra, cón có các phương pháp khác như: LDA, ICA, CMS, Wavelet
Tổng quan quy trình phân tích phổ ngắn hạn tín hiệu tiếng nói bằng phương pháp rút trích đặc trưng MFCC - hình 1.11
Trang 29Hình 1.11 Quy trình phân tích phổ ngắn hạn tín hiệu tiếng nói MFCC
1.3.1 Tiền nhấn mạnh
Giai đoạn này tín hiệu được khuếch đại năng lượng ở tần số cao của tín hiệu đầu vào do phổ tiếng hữu thanh có khuynh hướng suy giảm cường độ (dB) Trong xử lý tín hiệu số, người ta thường dùng bộ lọc thông cao có tần số cắt 3dB trong dải tần số từ 100Hz đến 1kHz, với phương trình sai phân là:
từ 8Khz -16Khz)
Hình 1.12 Tín hiệu analog và tín hiệu digital tương ứng
Trang 301.3.2 Phân khung tín hiệu
Tín hiệu được phân thành các khung (frame) có chiều dài khoảng 30ms (gần bằng
độ dài một âm tiết), xếp chồng lên nhau (overlap) khoảng từ 50 - 70% nhằm tránh mất thông tin - hình 1.13 Cụ thể, trong bước này, tín hiệu tiếng nói liên tục bị chặn vào các khung của các mẫu N, với các khung liền kề được cách nhau bởi M (M<N) Khung đầu tiên bao gồm các mẫu N đầu tiên Khung thứ hai bắt đầu các mẫu M sau khung đầu tiên
và chồng chéo nó bằng các mẫu N-M Quá trình này tiếp tục cho đến khi tất cả các mẫu tín hiệu tiếng nói thuộc trong một hoặc nhiều khung
Các giá trị tiêu biểu cho N và M là: N = 256 (tương đương với ~ 30ms cửa sổ hóa (windowing) và tạo điều kiện cho bộ biến đổi Fourier nhanh cơ số 2 FFT) và M = 100
Hình 1.13 Phân khung tín hiệu âm tiết “không”
1.3.3 Lấy cửa sổ tín hiệu
Chuỗi tín hiệu tiếng nói được chia thành các khung x(n) ta được T khung x’t(n), sau đó tín hiệu sẽ được nhân với hàm cửa sổ Gọi N là số mẫu trong một khung; tín hiệu sau khi cửa sổ hóa Xt(n); hàm cửa sổ w(n), (0≤ n≤ N-1) Ta có tín hiệu được cửa sổ hóa
Trang 31Hình 1.14 Sự tương đồng của cửa sổ Hamming và Hanning [1]
Ở đây, ta dùng hàm cửa sổ chữ nhật Hamming window – hình 1.15:
Hình 1.15 Cửa sổ Hamming (a) 128 điểm, (b) 124 điểm
1.3.4 Biến đổi Fourier nhanh
Phổ tín hiệu sau khi nhân với cửa sổ Hamming sẽ sử dụng phép biến đổi Fourier nhanh ta thu được biên độ phổ chứa các thông tin có ích của tín hiệu tiếng nói, kết thúc quá trình này, tín hiệu mỗi khung với N mẫu từ miền thời gian được chuyển sang miền tần số - hình 1.16
FFT là thuật toán rất hiệu quả để tính DFT (Discrete Fourier Transform – Biến đổi Fourier rời rạc) do làm giảm độ phức tạp và thời gian tính toán của một chuỗi số tín hiệu (sử dụng kỹ thuật phân chia cơ số hai, nghĩa là chuỗi tín hiệu được chia ra làm hai chuỗi con và tiếp tục biến đổi cơ số hai lần nữa cho hai chuỗi đầu theo phép đệ quy), rất thích hợp trong xử lý tín hiệu thời gian thực của âm thanh
Giả sử x(n) là tín hiệu rời rạc có chiều dài hữu hạn L, công thức biến đổi DFT với N điểm (N≥L) của x(n) là:
2 1
0
N n
Trang 32Ưu điểm của DFT là mang tính tuần hoàn (do tính tuần hoàn của số hạng Fourier𝑒−𝑗2𝜋𝑁 𝑘𝑛
Ngoài sử dụng bộ lọc thang tần số Mel dùng cho phân tích đặc trưng bằng phương pháp MFCC, ta còn có thang tần số Bark dùng cho phương pháp rút trích đặc trưng BFCC, Uniform dùng cho UFCC Hiệu suất hoạt động các phương pháp tương đương nhau, tuy nhiên, độ phức tạp tính toán chuyển đổi của bộ lọc thang tần số Mel là đơn giản hơn cả [6]
Hình 1.17 Thang tần số Mel và Hz tương ứng
Mối quan hệ giữa thang tần số vật lý và thang tần số Mel được cho bởi công thức:
10
700
Hz Mel
F
F log
Trang 33Trong đó, 𝐹𝑀𝑒𝑙 là tần số sinh lý, đơn vị Mel; 𝐹𝐻𝑧 là đơn vị tần số vật lý, đơn vị
Hz
Để tạo hiệu ứng này trên dải phổ sau biến đổi FFT, một thang của các bộ lọc gọi
là bộ lọc tam giác (triangular filters – hình 1.18) được xây dựng với các bộ lọc phân bố dưới 1000 Hz (thường sử dụng nhiều bộ lọc hơn vì chứa nhiều thông tin tín hiệu tiếng nói hơn) và trên 1000 Hz gọi là logarithmically Đầu ra của tín hiệu biến đổi FFT bởi mỗi bộ lọc Mel được gọi là phổ Mel Số băng lọc sử dụng thường trên 20 (theo [5] thì k=32 cho hiệu suất cao nhất), chọn từ 0 đến Fs/2 (Fs là tần số lấy mẫu tiếng nói)
Hình 1.18 Bộ lọc tam giác tần số Mel - theo nghiên cứu [5] thì rút trích đặc trưng MFCC
đạt hiệu suất tối đa khi số lượng băng lọc K=32
Sau khi tính FFT ta thu được phổ tín hiệu (fn) , thực chất đây là một dãy năng lượng W(n) = |𝑠(𝑓𝑛)|², cho W(n) qua một dãy K băng lọc dạng tam giác, ta được một dãy các W(n) Tính tổng của các W(n) trong từng băng lọc, ta thu được một dãy các hệ
số mk (k=1,2,…K)
Với fm là tần số trung tâm của bộ lọc thứ m; fm-1 là tần số trung tâm của bộ lọc thứ m -1; Δfm là băng thông của bộ lọc thứ m, thì tần số trung tâm của bộ lọc thứ m là:
fm = fm-1 + Δfm
Δfm được xác định: Với khoảng tần số dưới 1kHz, thì fm được chọn sao cho có
khoảng 10 bộ lọc phân bố cách đều trong khoảng này Với khoảng tần số trên 1kHz, fm thường được tính bởi : fm = 1.2* fm -1
1.3.6 Tính năng lượng phổ Mel
Bước này tính toán logarit của bình phương độ lớn những hệ số tại ngõ ra bộ lọc tam giác X(k) ở trên, nhằm làm rõ phổ Mel hơn Công thức như sau:
Trang 341.3.7 Biến đổi Cosine rời rạc
Bước này biến đổi Cosine rời rạc của log năng lượng phổ Mel để lấy các hệ số ceptral MFCC:
1log | | ² cos 0,5
M m
1.4 Rút trích đặc trưng năng lượng khung tín hiệu
Từ phép biến đổi trên, ta rút trích ra được 12 hệ số MFCC để làm đặc trưng (đặc trưng bộ máy phát âm) Đặc trưng thứ 13 là đặc trưng về năng lượng khung trong khoảng thời gian t được tính sau khi cửa sổ hóa Hamming cho bởi công thức:
Hình 1.19 Các giá trị được rút trích từ đặc trưng MFCC (12 giá trị đặc trưng phổ Mel đã biến đổi Fourier ngược, 12 giá trị delta phổ, 12 giá trị double delta phổ, 1 giá trị đặc trưng năng lượng khung, 1 giá trị delta năng lượng khung, 1 giá
trị double-delta năng lượng khung)
Trang 35Chương 2: MÔ HÌNH MARKOV ẨN VÀ ỨNG DỤNG TRONG
NHẬN DẠNG TIẾNG NÓI
Trong các ứng dụng về lĩnh vực nhận dạng, phân loại, thống kê người ta thường dùng các phương pháp như: So khớp chuỗi thời gian động (Dynamic Time Warping - DTW), Lượng tử hóa véc tơ (Véc tơ Quantization - VQ), Mạng nơ ron (Neutral Network
- NN), Mô hình Markov ẩn (Hidden Markov Model - HMM) và Mô hình hỗn hợp Gauss (Gaussian Mixture Model - GMM) – Hình 2.1
Hình 2.1 Một số phương pháp ứng dụng trong nhận dạng tiếng nói [1]
Ngoài ra còn các phương pháp thông dụng hiện nay như Mạng nơ ron sâu (Deep Neural Networks - DNN), K láng giềng gần (K-Nearest Neighbor - KNN)
Vì tín hiệu tiếng nói là dạng chuỗi thông tin biến đổi theo miền thời gian (bao gồm các chuỗi véc tơ tham số rút trích từ nghiên cứu (Chương 1) nên HMM rất phù hợp
để ứng dụng trong nhận dạng tín hiệu tiếng nói Theo các nghiên cứu [1], [7 - 9] so sánh hiệu suất nhận dạng tiếng nói bằng các phương pháp trên, chỉ ra rằng phương pháp ứng dụng HMM cho kết quả tối ưu nhất đặc biệt là đối với các ứng dụng xử lý tín hiệu thời gian thực và dữ liệu huấn luyện lớn
2.1 Tổng quan về mô hình Markov ẩn HMM
Trang 36Theo đó, ta có ma trận xác suất chuyển tiếp trạng thái có dạng:
Với tổng các xác suất hàng ngang của ma trận bằng 1
Công thức tính xác suất tổng quát của một chuỗi các trạng thái:
P O Model P Nang Nang Mua Mua
P Mua Mua P Mua Nang P Nang Nang P Nang
Trang 37Hình 2.4 Mô hình HMM với các chuỗi trạng thái (states) ẩn: “trời mưa”, “trời nắng”
và các chuỗi quan sát (observations): “tắm biển”, “siêu thị”, “ở nhà”
Nhìn vào các xác suất chuyển tiếp của các chuỗi quan sát, ta có thể tính toán được xác suất xảy ra đối với chuỗi trạng thái không quan sát được: trời sẽ nắng hay mưa
Trong xử lý tiếng nói, tín hiệu tiếng nói là các chuỗi quan sát được như phổ, tần
số cơ bản f0, tần số formant F1, F2, F3, còn âm tiết (syllables), âm vị (phonemes) là chuỗi trạng thái không quan sát được
Hình 2.5 Cấu trúc cơ bản của HMM trong nhận dạng tiếng nói
b M: Số hiện tượng quan sát được của mỗi trạng thái, ký hiệu hiện tượng quan
sát được là V = {V1, V2, …,VM}; tín hiệu quan sát được ở thời điểm t là Ot