Tải bản đầy đủ (.pdf) (64 trang)

Tìm hiểu bài toán nhận dạng tiếng nói

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.1 MB, 64 trang )


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN





NGUYỄN HỮU TÙNG


TÌM HIỂU BÀI TOÁN
NHẬN DẠNG TIẾNG NÓI



ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Chuyên Ngành: CÔNG NGHỆ THÔNG TIN



GVHD: NGUYỄN ĐÌNH CƢỜNG





Nha Trang, tháng 07 năm 2013

LỜI MỞ ĐẦU


Tiếng nói là phương tiện giao tiếp cơ bản nhất của loài người, nó hình thành
và phát triển song song với quá trình tiến hóa của loài người. Đối với con người, sử
dụng lời nói là một cách diễn đạt đơn giản và hiệu quả nhất. Ưu điểm của việc giao
tiếp bằng tiếng nói trước tiên là ở tốc độ giao tiếp, tiếng nói từ người nói được
người nghe hiểu ngay lập tức sau khi được phát ra. Bên cạnh đó, tiếng nói là cách
giao tiếp được sử dụng rộng rãi nhất.
Để cho máy tính có thể nghe được nhiều người đã gặp rất nhiều khó khăn với
tín hiệu âm thanh trong hơn nửa thế kỷ qua trong lĩnh vực nhận dạng tiếng nói. Quá
trình này được đánh dấu bằng các kết quả nghiên cứu đặc sắc trong lĩnh vực phân
tích và xử lý tiếng nói, các ứng dụng thực tế khá hữu ích. Tuy nhiên, nhận dạng
tiếng nói được phát triển mạnh trên các thứ tiếng khác nhưng chưa được phát triển
và ứng dụng mạnh ở nước ta. Do tình hình phát triển ở Việt Nam, để cho công cuộc
nhận dạng tiếng nói thật sự được quan tâm, đầu tư và tạo thành các nhóm thí
nghiệm chuyên nghiên cứu về nhận dạng tiếng nói thì thật sự gặp khó khăn.
Luận văn này xây dựng với mong muốn góp phần thúc đẩy quá trình trên,
bằng cách kế thừa các kết quả nghiên cứu đã đạt được và thông qua việc tìm hiểu
các thành tựu nước ngoài, em mong rằng mình sẽ tìm tòi, học hỏi được nhiều kiến
thức bổ ích trong lĩnh vực nhận dạng tiếng nói.


LỜI CẢM ƠN
Trải qua bốn tháng thực hiện, vận dụng những gì đã được học và cũng học
thêm được nhiều điều, đồ án tốt nghiệp cũng đã hoàn tất. Để có được kết quả này,
đó không phải là công sức của cá nhân em, mà còn có sự hổ trợ hết mình từ gia
đình, thầy cô và bạn bè. Trước hết, em xin gửi lời tri ân sâu sắc đến tất cả những
“người đồng hành” đã luôn ở bên em trong suốt thời gian qua.
Lời cảm ơn đầu tiên, em xin gởi đến những người thân yêu trong gia đình,
những người luôn luôn ủng hộ em không chỉ trong thời gian qua mà còn cả chặng
đường tương lai phía trước.
Kế đến, em gửi lời cảm ơn chân thành nhất đến thầy Nguyễn Đình Cường,

thầy đã tận tình hướng dẫn em trong suốt quá trình thực hiện đồ án.
Bên cạnh đó, em cũng xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo
đã giảng dạy em trong hành trình bốn năm, những kiến thức mà em nhận được trên
giảng đường đại học sẽ là hành trang giúp em vững bước trong con đường em sắp đi
qua.
Cuối cùng, em muốn gửi lời cảm ơn sâu sắc đến tất cả bạn bè, những người
luôn kịp thời động viên và giúp đỡ em vượt qua những khó khăn, cũng là những
thành tố quan trọng mang đến cho em những ý nghĩa tốt đẹp của cuộc đời sinh viên.
Em xin chân thành cảm ơn!

Nha Trang, ngày 23 tháng 06 năm 2013

Nguyễn Hữu Tùng



NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN



























NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN



























LỜI MỞ ĐẦU 1
CHƢƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI 1
Khái niệm nhận dạng tiếng nói 1 1.1.
Khái niệm 1 1.1.1.
Lịch sử và phát triển 1 1.1.2.
Phân loại ứng dụng nhận dạng tiếng nói 3 1.2.
Nhận dạng từ liên tục và nhận dạng từ tách biệt 3 1.2.1.
Nhận dạng phụ thuộc ngƣời nói và độc lập ngƣời nói 3 1.2.2.
Các vấn đề cơ bản của bài toán nhận dạng tiếng nói. 4 1.3.
Mô hình bài toán nhận dạng tiếng nói 4 1.4.
CHƢƠNG 2: TIỀN XỬ LÝ VÀ RÚT TRÍCH ĐẶC TRƢNG 6
Cơ sở lý thuyết 6 2.1.
Sơ lƣợc về âm thanh số 6 2.1.1.
Vector đặc trƣng tiếng nói 7 2.1.2.
Biến đổi Fourier rời rạc (DFT) 8 2.1.3.
Biến đổi Cosine rời rạc (DCT) 10 2.1.4.
Mel-scale 11 2.1.5.
Sơ đồ thuật toán rút trích đặc trƣng MFCC 12 2.2.
Tiền xử lý tiếng nói 12 2.3.
Ý nghĩ của tiền xử lý tiếng nói 12 2.3.1.

Làm nổi tín hiệu (Pre-emphasis) 13 2.3.2.
Phân khung (framing) 13 2.3.3.
Làm trơn tín hiệu bằng hàm cửa sổ 14 2.3.4.
Rút trích đặc trƣng 17 2.4.
Biến đổi DFT 17 2.4.1.
Lọc Mel-Filter bank và lấy Logarit 17 2.4.2.
Biến đổi DCT 18 2.4.3.
CHƢƠNG 3. CƠ SỞ LÝ THUYẾT CỦA MÔ HÌNH NHẬN DẠNG 19

Cơ sở lý thuyết 19 3.1.
Biến cố ngẫu nhiên 19 3.1.1.
Xác suất có điều kiện 19 3.1.2.
Tiến trình Markov 19 3.1.3.
Mô hình HMM 20 3.2.
Các thành phần của mô hình HMM 20 3.2.1.
Ví dụ nhận dạng từ đơn với HMM 21 3.2.2.
Ba bài toán của mô hình HMM 22 3.3.
Giải quyết ba bài toán 23 3.4.
Các thuật toán cơ sở 23 3.4.1.
Vấn đề tính toán 25 3.4.2.
Vấn đề nhận dạng (Decoding) 26 3.4.3.
Vấn đề ƣớc lƣợng tham số 27 3.4.4.
Gauss Mixture – Hidden Markov Model 28 3.5.
Gaussian Mixture Model 28 3.5.1.
Gauss Mixture – Hidden Markov Model 29 3.5.2.
Huấn luyện tham số với mô hình GMHMM 29
3.5.3.
CHƢƠNG 4. NÂNG CAO KHẢ NĂNG NHẬN DẠNG 31
Các phƣơng pháp nâng cao khả năng nhận dạng 31 4.1.
Xử lý âm thanh 31 4.1.1.

Phƣơng pháp thích nghi miền giá trị 32 4.1.2.
Phƣơng pháp Supervised Adaptation 33 4.2.
Nâng cao hiệu quả với MLLR 33 4.3.
Nâng cao hiệu quả với MAP 34 4.4.
CHƢƠNG 5. CÔNG CỤ HTK 35
Công cụ HTK 35 5.1.
Giới thiệu công cụ HTK 35 5.1.1.
Các thành phần của công cụ HTK 36 5.1.2.

Mô hình bài toán nhận dạng tiếng nói với HTK 37 5.2.
Xây dựng mô hình 37 5.2.1.
Nhận dạng 38 5.2.2.
Sử dụng công cụ HTK 39 5.3.
Rút trích đặc trƣng 39 5.3.1.
Xây dựng mô hình HMM ban đầu 40 5.3.2.
Huấn luyện mô hình HMM 41 5.3.3.
Nhận dạng 42 5.3.4.
Thích nghi (Adaptation) 42
5.3.5.
CHƢƠNG 6: KẾT QUẢ THỰC NGHIỆM CỦA BẢN THÂN 43
Nhận dạng dữ liệu tiếng Anh 43 6.1.
Thí nghiệm nhận dạng 43 6.1.1.
Thí nghiệm nâng cao hiệu quả nhận dạng. 44 6.1.2.
Xây dựng CSDL tiếng nói tiếng Việt 46 6.2.
Thu âm 46 6.2.1.
Thí nghiệm nhận dạng 47 6.2.2.
Thí nghiệm nâng cao hiệu quả nhận dạng 48
6.2.3.
CHƢƠNG 7. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 51
Kết quả đạt đƣợc 51 7.1.

Những hạn chế 51 7.2.
Hƣớng phát triển trong tƣơng lai 51 7.3.
TÀI LIỆU THAM KHẢO 53


DANH MỤC CÁC BIỂU ĐỒ, HÌNH
Hình 2.1. Lấy mẫu tín hiệu 6
Hình 2.2. Kết quả biến đổi DFT 10
Hình 2.3. Tƣơng quan giữa tần số (Hz) và Mel 12
Hình 2.4. Sơ đồ thuật toán rút trích đặc trƣng MFCC 12
Hình 2.5. Phân khung dữ liệu 14
Hình 2.6. Làm trơn tín hiệu với hàm cửa sổ 15
Hình 2.7a. Cửa sổ Hanning 15
Hình 2.7b. Cửa sổ Hamming 16
Hình 2.7c. Cửa sổ chữ nhật 16
Hình 2.7d. Cửa sổ tam giác 16
Hình 2.8. Dãy bộ lọc Mel-Filter bank 17
Hình 3.1. Các thành phần của mô hình HMM 20
Hình 3.2. Ví dụ mô hình HMM 6 trạng thái 22
Hình 3.3. Mô phỏng thuật toán forward 24
Hình 3.4. Mô phỏng giải thuật backward 25
Hình 3.5. Mô phỏng thuật toán Viterbi 26
Hình 3.6. Mô hình Gaussian Mixture Model 28
Hình 5.1. Mô hình nhận dạng tiếng nói với HMM đơn giản 35
Hình 5.2. Các module và chức năng trong HTK 36
Hình 5.3. Các công cụ và chức năng trong HTK 37
Hình 5.4. Quá trình xây dựng mô hình HMM với HTK 38
Hình 5.5. Quá trình nhận dạng trên mô hình HMM với HTK 39
Hình 5.6. Mô hình HMM prototype cơ bản 41
Hình 6.1. Dữ liệu một file âm thanh Tiếng Anh 43


Hình 6.2. Dữ liệu một file âm thanh Tiếng Việt 47

Biểu đồ 6.1. Kết quả nhận dạng dữ liệu Tiếng Anh 44
Biểu đồ 6.2. Kết quả nhận dạng dữ liệu Tiếng Anh đã thích nghi 45
Biểu đồ 6.3. Kết quả nhận dạng dữ liệu Tiếng Việt 48
Biểu đồ 6.4. Kết quả nhận dạng dữ liệu Tiếng Việt đã thích nghi 49


KÝ HIỆU CÁC CỤM TỪ VIẾT TẮT

Từ viết tắt
Giải thích
HMM
Hidden Markov Model
DFT
Discrete Fourier Transform
DCT
Discrete Cosine Transform
GMM
Gauss Mixture Model
GMHMM
Gauss Mixture – Hidden Markov Model
1

CHƢƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI
Khái niệm nhận dạng tiếng nói 1.1.
Khái niệm 1.1.1.
Nhận dạng tiếng nói là quá trình chuyển đổi từ tín hiệu tiếng nói sang chuỗi
các từ dạng văn bản được thực hiện thông qua các thuật toán trên máy tính.

Lịch sử và phát triển 1.1.2.
Có thể coi Alaxander Graham Bell ông tổ của nhận dạng tiếng nói. Nhận
dạng tiếng nói bắt đầu từ khi ông phát minh ra cách chuyển áp lực của sóng âm
trong không khí (âm thanh) thành các tín hiệu điện, hay nói cách khác, tín hiệu âm
thanh có thể được truyền đi trong dây dẫn [1].
Trong những năm 50 và 60, hệ thống nhận dạng tiếng nói đầu tiên đã ra đời,
lúc đó nó chỉ nhận dạng được ký tự số. Năm 1952, Bell Laboratories thiết kế hệ
thống “Audrey” có thế nhận ra các con số được phát âm bởi một giọng nói. Mười
năm sau, IBM giới thiệu một cỗ máy của họ - “Shoebox” - tại hội chợ 1962 World’s
Fair, có thể hiểu được 16 từ tiếng Anh. Các phòng thí nghiệm nghiên cứu ở Mĩ,
Anh, Nhật cũng phát triển ra các phần cứng để nhận dạng tiếng nói. Mặc dù kết quả
không cao, nhưng những nỗ lực này là một khởi đầu ấn tượng, đặc biệt là trong thời
kỳ mà sức mạnh máy tính còn rất hạn chế.
Những năm 1970, công nghệ nhận dạng tiếng nói đạt được những bước tiến
lớn nhờ vào sự tài trợ của bộ quốc phòng Mĩ. Chương trình nghiên cứu tiếng nói
DARPA từ 1971 tời 1976 là một trong những chương trình về nhận dạng tiếng nói
lớn nhất trong lịch sử. Hệ thống nhận dạng “Happy” ra đời và có thể nhận dạng
được đến 1011 từ, bằng lượng từ của một đứa bé 3 tuổi [1]. Những năm 70 còn
đánh dấu sự ra đời của công ty đầu tiên chuyên về nhận dạng tiếng nói – Threshold
Technology, cũng như việc Bell Laboratories giới thiệu hệ thống có thế nhận diện
tiếng nói của nhiều người.
Trong một thập kỷ tiếp theo, với sự ra đời của một phương pháp tiếp cận
khác được gọi là Hidden Markov Model (HMM), nhận dạng tiếng nói chuyển từ số
lượng từ chỉ vài trăm lên tới hàng vài nghìn từ, và hướng tới nhận dạng số lượng từ
không giới hạn. Thay vì chỉ sử dụng các mẫu lưu trữ các từ để tìm kiếm, HMM tính
toán xác suất để chuỗi âm thanh là một từ. Đi cùng với việc mở rộng số lượng từ
2

nhận dạng, nhận dạng tiếng nói chuyển sang các ứng dụng thương mại cho doanh
nghiệp hay các ngành công nghiệp đặc trưng, thậm chí là cả đời sống gia đình. Búp

bê “Julie” ra đời năm 1987 cho phép trẻ em huấn luyện giọng của mình để búp bê
đáp lại tiếng nói của trẻ [1]. Mặc dù nhận dạng được với số lượng từ lớn nhưng
nhận dạng tiếng nói thời gian này còn một hạn chế lớn, đó là nó chỉ nhận dạng tiếng
nói rời rạc, tức là người nói phải dừng sau mỗi từ để hệ thống có thể hiểu được.
Những năm 1990, các bộ vi xử lý máy tính trở nên ngày càng mạnh mẽ hơn,
và các ứng dụng nhận dạng tiếng nói trở nên phổ biến hơn. Năm 1990, công ty
Dragon phát triển ứng dụng nhận dạng tiếng nói thương mại đầu tiên với giá lên tới
9000$, 7 năm sau, một phiên bản tiếp theo ra đời, cho phép nhận dạng tiếng nói liên
tục, người nói có thể nói với tốc độ 100 từ/phút, tuy nhiên người dùng phải huấn
luyện với thời gian 45 phút trước khi sử dụng [1]. Cổng điện tử đầu tiên ứng dụng
nhận dạng tiếng nói là VAL vào năm 1996, là một hệ thống nhận dạng qua điện
thoại và cung cấp thông tin cho người gọi.
Cho tới trước năm 2001 thì độ chính xác trong nhận dạng vẫn chỉ dừng lại ở
mức 80% .Trên Windows Vista và Mac OS X thời gian này đã được tích hợp ứng
dụng điều khiển bằng giọng nói, tuy nhiên người dùng không mấy mặn mà vì độ
chính xác không cao. Cho tới khi ứng dụng nhận dạng tiếng nói “Google Voice
Search” cho iPhone xuất hiện, công nghệ nhận dạng tiếng nói phát triển trở lại. Sự
xuất hiện ứng dụng của Google tác động tới sự phát triển của nhận dạng tiếng nói vì
2 lý do: Người dùng điện thoại sẽ có thêm một phương pháp nhập dữ liệu mới thay
vì bàn phím ảo bé xíu trên màn hình, và Google có khả năng chuyển việc xử lý nhận
diện lên server của mình, nơi lưu trữ lượng dữ liệu khổng lồ, các data center có thể
thực hiện các phân tích dữ liệu rất lớn.
Năm 2010, Google thêm vào tính năng nhận diện cá nhân, cho phép người
dùng thêm dữ liệu giọng nói cá nhân để tặng hiệu quả nhận dạng. Tới nay, hệ thống
nhận dạng tiếng nói của Google đã nhận dạng hơn 230 tỉ từ từ các yêu cầu của
người dùng.
Sự bùng nổ của ứng dụng nhận dạng tiếng nói cho thấy thời của nhận dạnh
tiếng nói đã đến, và bạn có thể mong đợi những ứng dụng ngày càng mạnh mẽ hơn
nữa. Các ứng dụng không chỉ giúp điều khiển máy tính, chuyển từ tiếng nói sang
chữ viết mà còn hỗ trợ đa ngôn ngữ, mà còn có thể giao tiếp với người nói.

3

Phân loại ứng dụng nhận dạng tiếng nói 1.2.
Nhận dạng từ liên tục và nhận dạng từ tách biệt 1.2.1.
Một hệ nhận dạng tiếng nói có thế là một trong hai dạng: Nhận dạng liên tục
và nhận dạng từng từ.
Nhận dạng liên tục tức là nhận dạng tiếng nói được phát liên tục trong một
chuỗi tín hiệu, chẳng hạn như một câu nói, một mệnh lệnh hoặc một đoạn văn được
đọc bởi người dùng. Các hệ thống loại này rất phức tạp, nó phức tạp ở chỗ các từ
được phát liên tục khó xử lý kịp (khi cần xử lý thời gian thực), hoặc khó tách từ ra
nếu người nói liên tục không có khoảng nghỉ (thông thường rất hay xảy ra trong
thực tế). Kết quả tách từ ảnh hưởng rất lớn đến các bước sau này, do đó cần xử lý
thật tốt trong quá trình này.
Trái lại, đố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 nghỉtrước và sau khi phát âm một từ. Mô hình
loại này dĩ nhiên đơn giản hơn mô hình nhận dạng liên tục, đồng thời cũng có
những ứng dụng thực tiễn như trong các hệ thống điều khiển bằng lời nói, quay số
bằng giọng nói…, với độ chính xác khá cao, tuy nhiên khó áp dụng rộng rãi đối với
mô hình trên.
Nhận dạng phụ thuộc ngƣời nói và độc lập ngƣời nói 1.2.2.
Đối với nhận dạng phụ thuộc người nói thì mỗi hệ thống nhận dạng chỉ phục
vụ cho một người, và nó sẽ không hiểu người khác nói gì nếu như chưa được huấn
luyện lại từ đầu. Do đó, hệ thống nhận dạng phụ thuộc người nói khó được chấp
nhận rộng rãi vì không phải ai cũng đủ khả năng, kiến thức và kiên nhẫn để huấn
luyện hệ thống. Đặc biệt là hệ thống này không thể ứng dụng ở nơi công cộng.
Ngược lại, hệ thống nhận dạng độc lập người nói thì lý tưởng hơn, ứng dụng
rộng rãi hơn, đáp ứng được hầu hết các yêu cầu đề ra. Nhưng không may là hệ
thống lý tưởng như vậy gặp một số vấn đề, nhất là độ chính xác của hệ thống.
Trong thực tế, mỗi người có một giọng nói khác nhau, thậm chí ngay cùng
một người cũng có giọng nói khác nhau ở những thời điểm khác nhau. Điều này ảnh

hưởng rất lớn đến việc nhận dạng, nó làm giảm độ chính xác của hệ thống nhận
dạng xuống nhiều lần. Do đó để khắc phục khuyết điểm này, hệ thống nhận dạng
độc lập người nói cần được thiết kế phức tạp hơn, đòi hỏi lượng dữ liệu huấn luyện
lớn hơn nhiều lần (dữ liệu phải từ nhiều giọng khác nhau của nhiều người). Nhưng
4

điều này cũng không cải thiện được bao nhiêu chất lượng nhận dạng, Do đó, trong
thực tế có một cách giải quyết là bán độc lập người nói. Phương pháp này thực hiện
bằng cách thu mấy số lượng lớn các giọng nói khác nhau. Khi sử dụng, hệ thống sẽ
điều chỉnh cho phù hợp với giọ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 trước khi sử dụng hệ thống cần phải qua
một quá trình ngắn huấn luyện hệ thống).
Các vấn đề cơ bản của bài toán nhận dạng tiếng nói. 1.3.
Mặc dù nhận dạng tiếng nói đã phát triển hơn từ những năm 50 của thế kỷ
trước và tới nay cũng đã có những thành công vượt bậc, nhưng bài toán vẫn còn tồn
tại nhiều vấn đề ảnh hưởng tới hiệu quả nhận dạng.
Chất lượng của tiếng nói có ảnh hưởng không nhỏ tới hiệu quả của một hệ
thống nhận dạng tiếng nói. Có nhiều yếu tố nhiễu ảnh hưởng tới chất lượng tiếng
nói như:
 Hệ thống thu âm: micro chất lượng kém gây méo tín hiệu, rè, thu không
rõ,
 Môi trường thu âm: môi trường có tiếng ồn nền, lẫn tiếng động khác tiếng
nói, tiếng vang của âm thanh,
 Người nói: tình trạng sức khỏe không tốt, nói lẫn tiếng thở, tiếng máy
môi,
Cách phát âm, giọng đọc, nhịp điệu cũng là một vấn đề phổ biến của bài toán
nhận dạng tiếng nói. Một từ có thể được phát âm theo nhiều cách khác nhau tùy
theo vùng miền, giới tính, tình trạng sức khỏe, tâm trạng, gây khó khăn cho các hệ
thống nhận dạng. Nhịp điệu cũng gây ảnh hưởng lớn tới kết quả nhận dạng khi mà
người đọc đọc quá nhanh hay quá chậm so với thông thường.

Mô hình bài toán nhận dạng tiếng nói 1.4.
Bài toán nhận dạng tiếng nói cơ bản có thể được chia thành 2 phần: Xây
dựng mô hình và nhận dạng.




5





Hình 1.1: Mô hình bài toán nhận dạng tiếng nói cơ bản
Hướng tiếp cập chính hiện nay là sử dụng các phương pháp máy học dựa trên
thống kê để học và xây dựng nên mô hình nhận dạng từ lượng lớn dữ liệu, chủ yếu
là dựa vào mô hình Markov ẩn (HMM). Hướng tiếp cận bài toán nhận dạng tiếng
nói của luận văn cũng dựa trên mô hình nhận dạng HMM.


Sóng âm
Xây dựng
mô hình
Nhận dạng
Kết quả
6

CHƢƠNG 2: TIỀN XỬ LÝ VÀ RÚT TRÍCH ĐẶC TRƢNG
Cơ sở lý thuyết 2.1.
Sơ lƣợc về âm thanh số 2.1.1.

Âm thanh là dạng tín hiệu tương tự, nhưng để lưu trữ được trên máy tính thì
nó phải được số hóa. Dữ liệu âm thanh số có 2 dạng chính là âm thanh nén và
không nén. Âm thanh số dạng nén cũng có 2 loại nhỏ là nén có sự mất mát (lossy)
và không có sự mất mát (lossless).
Để chuyển từ tín hiệu tương từ về tín hiệu số, âm thanh cần được lấy mẫu.
Trong xử lý tín hiệu, lấy mẫu là chuyển đổi một tín hiệu liên tục thành
một tín hiệu rời rạc. Một ví dụ phổ biến là việc chuyển đổi của một sóng âm
thanh (một tín hiệu liên tục) thành một chuỗi các mẫu (một tín hiệu thời gian rời
rạc).
Một mẫu chứa một giá trị hoặc tập hợp các giá trị tại một điểm trên trục thời
gian (và/hoặc không gian). Tín hiệu âm thanh là tín hiệu theo thời gian. Hình 2.1
mô tả tín hiệu  được lấy mẫu.

Hình 2.1. Lấy mẫu tín hiệu
Ví dụ  là một tín hiệu liên tục được lấy mẫu, và việc lấy mẫu được thực
hiện bằng cách đo các giá trị của tín hiệu liên tục sau thời điểm mỗi T giây , T được
gọi là khoảng thời gian lấy mẫu. Như vậy, tín hiệu sau khi được lấy mẫu  được
đưa ra bởi công thức 2.1 sau:









7

Thời gian lấy mẫu T càng nhỏ thì chất lượng âm thanh được giữ lại càng cao

so với tín hiệu tương tự ban đầu. Liên quan với thời gian lấy mẫu là tần số lẫy mẫu
– số lần lấy mẫu trong 1 giây. Tần số lấy mẫu và thời gian lấy mẫu có mối liên hệ
theo công thức 2.2




Vector đặc trƣng tiếng nói 2.1.2.
Tiếng nói thu được vốn có kích thước khá lớn, máy tính cá nhân không đủ
tốc độ và bộ nhớ cho quá trình xây dựng mô hình cũng như nhận dạng lượng lớn dữ
liệu đó. Để giải quyết vấn đề này, người ta chỉ trích ra và xử lý nhữn thông tin cần
thiết nhất từ dãy tín hiệu thu được. Các tín hiệu trích ra được gọi là đặc trưng của
dãy tín hiệu gốc. Các đặc trưng này phải thỏa mãn những điều kiện sau:
 Nhỏ hơn nhiều lần so với tín hiệu gốc (nhằm ít chiếm bộ nhớ, giảm thời gian
xử lý, ).
 Có khả năng diễn đạt thông tin tiếng nói ban đầu.
 Ít thay đổi theo môi trường, độ ồn nền,
Có nhiều dạng đặc trưng, nhưng có thể phân làm 3 nhóm chính:
 Đặc trưng trích ra nhờ sự mô phỏng bộ máy phát âm của con người. Các đặc
trưng của nhóm này sử dụng phương pháp dự báo tuyến tính để rút trích đặc
trưng. Các đặc trưng thuộc nhóm này như:
o Autocorrelation coefficients (COR): Đưa ra bởi Box và Jenkins năm
1976 [2].
o Linear Prediction coefficients (LPC): Đưa ra độc lập bởi Atal và
Itakura những năm 1970 [5].
o Perceptional Linear Prediction (PLP) [4].
 Đặc trưng trích ra dựa trên khả năng cảm nhận của thính giác con người. Các
đặc trưng của nhóm này sử dụng phương pháp phân tích cepstral (phép biến
đổi Fourier của phổ năng lượng tín hiệu). Các đặc trưng thuộc nhóm này
như:

o Line Spectrum Pairs (LSP): Đưa ra bởi Fumitada Itakura những năm
1970 [9].
8

o Mel Frequency Cepstral coefficients (MFCC): Đưa ra bởi Bridle và
Brow những năm 1970 [10].
 Đặc trưng dựa trên các đặc trưng âm học về cao độ, ngữ điệu, dấu nhấn,
Thích hợp cho nhận dạng ngôn ngữ nói, tâm trạng người nói,
Các đặc trưng của nhóm 3 ít được sử dụng cho nhận dạng âm tiết mà đa phần
là hai nhóm đầu. Trong khuôn khổ luận văn, đặc trưng MFCC được sử dụng để rút
trích đặc trưng tiếng nói.
Biến đổi Fourier rời rạc (DFT) 2.1.3.
Biến đổi Fourier được dùng để biến đổi tín hiệu từ miền thời gian (tín hiệu
âm thanh) về miền tần số (mức năng lượng theo tần số). Biến đổi DFT là một biến
thể của biến đổi Fourier trên dãy tín hiệu lấy mẫu có độ dài  xác định.
Với tín hiệu liên tục (tín hiệu tương tự) , biến đổi Fourier của tín hiệu
được thực hiện bởi công thức 2.5:












Giả sử tín hiệu tương tự  được lấy mẫu  điểm với thời gian lấy mẫu T,

lúc này  ta có N mẫu như sau: , , , , ,  . Biến đổi Fourier
trên tín hiệu 



đã lấy mẫu hay còn gọi là biến đổi DFT được thực hiện bởi công
thức 2.6.






























 





  

 








Hay:












Biến đổi Fourier liên tục thay vì được tính toán từ  tới  có thể được
thu gọn trong một khoảng xác định nếu tín hiệu có tính chu kỳ. Tương tự, tín hiệu
lấy mẫu chỉ có số điểm xác định nên ta có thể xem tín hiệu là có tính chu kỳ, tức là




tới 

 

có giá trị tương tự như 



tới 

 

. Lúc này ta xem toàn
bộ tín hiệu nằm trong một chu kỳ, vậy giá trị  sẽ là


. Hay:
9








 


 


  
Công thức biến đổi DFT được viết lại thành công thức 2.7:


















 
Ta có thể viết lại công thức tính DFT dưới dạng ma trận như sau:


















 































































 






Với 



và 






Ví dụ: Tín hiệu  được lấy mẫu 4 điểm 





















. Công thức biến đổi DFT sẽ là:





































































Độ lớn của các hệ số sau khi biến đổi DFT được thể hiện trong hình 2.2.

10

Hình 2.2. Kết quả biến đổi DFT
Với 

 , công thức biến đổi DFT cũng có thể được viết
dưới dạng tổng của các hàm  và  ở công thức 2.8. Trong đó, thành phần 
thế hiện phần số thực, và thành phần  thể hiện phần số phức.


















 







 
























 












Biến đổi Cosine rời rạc (DCT) 2.1.4.
Discrete Cosine Transform (DCT) chuyển đổi một chuỗi hữu hạn điểm giá trị
thành tổng các hàm cosine theo các mức tần số khác nhau. DCT rất quan trọng đối
với nhiều ứng dụng khoa học và kỹ thuật.
Về cơ bản, DCT là một biến đổi họ Fourier, gần giống với DFT, nhưng chỉ
tính toán trên số thực (DFT tính toán trên số phức). Vì đặc tính “nén năng lượng”
mạnh của mình, DCT thường được sử dụng trong xử lý tín hiệu và xử lý ảnh, đặc
biệt là nén dữ liệu có sự mất mát (lossy compression), ví dụ như âm thanh chuẩn

MP3 hoặc nén ảnh JPEG.
Giống như các biến đổi Fourier, DCT biểu diễn một tín hiệu dưới dạng tổng
các đường cong khác nhau về tần số và độ lớn. DCT cũng thực hiện biến đổi trên
một tín hiệu hữu hạn (tín hiệu lấy mẫu), điểm khác so với DFT là DCT chỉ biểu
diễn dưới dạng tổng của các hàm  (chỉ có phần thực). Biến đổi DCT có 8 phiên
bản khác nhau, phổ biến nhất là DCT-II như ở công thức 2.9























 









Với:
 



là giá trị DCT thứ n.
 



là giá trị mẫu thứ k
11

Mel-scale 2.1.5.
Các nghiên cứu cho thấy hệ thống thính giác của con người thu nhận âm
thanh với các tần số khác nhau không theo thang tuyến tính. Ở các tần số càng cao,
khả năng cảm nhận sự thay đổi âm thanh của con người càng ít. Do đó, các thang
âm thanh đã ra đời cho phù hợp với sự tiếp nhận thính giác của con người, điển hình
là thang Mel. Điểm 1000 Hz và 1000 Mel có giá trị ngang nhau được định nghĩ là
điểm tham chiếu. Công thức 2.10 dùng để chuyển đổi từ thang tần số sang thang
Mel và ngược lại.



 











 

Tương quan giữa tần số và mel được thể hiện trong hình 2.3.

12

Hình 2.3. Tương quan giữa tần số (Hz) và Mel
Sơ đồ thuật toán rút trích đặc trƣng MFCC 2.2.
Quá trình rút trích đặc trưng MFCC được thể hiện qua sơ đồ trong hình 2.4.














Hình 2.4. Sơ đồ thuật toán rút trích đặc trưng MFCC
Tiền xử lý tiếng nói 2.3.
Ý nghĩ của tiền xử lý tiếng nói 2.3.1.
Để nhận dạng tiếng nói, trước tiên cần phải thu âm tiếng nói. Chất lượng
tiếng nói thu được càng tốt thì nhận dạng càng chính xác. Tuy nhiên trong thực tế,
dù là trong phòng thí nghiệm hay môi trường sinh hoạt hằng ngày, người ta vẫn
luôn thu được kèm theo tiếng nói là các tín hiệu không mong muốn khác, bao gồm
tiếng ồn (quạt máy, xe cộ, ), nhiễu (tiếng nhép môi, tiếng thở, nhiễu do điện từ, ),
tiếng vang, Ngoài ra, âm thanh thu được có thể bị bóp méo do thiết bị
(microphone, card âm thanh, ), âm thanh quá nhỏ hay quá lớn, Vì vậy, quá trình
tiền xử lý được đưa vào nhận dạng tiếng nói (ngay sau giai đoạn thu âm) nhằm nâng
cao chất lượng âm thanh, có lợi cho quá trình nhận dạng sau này.

Tín hiệu tiếng nói
Làm nổi tín hiệu
Phân khung
Lọc cửa sổ
Biến đổi DFT
Lấy logarithm
Biến đổi DCT
Đặc trưng MFCC
Tiền xử lý
13

Làm nổi tín hiệu (Pre-emphasis) 2.3.2.

Quá trình pre-emphasis thực hiện lọc tín hiệu bằng một bộ lọc thông cao
nhằm hạn chế việc giảm đi cường độ tín hiệu trong dữ liệu tiếng nói. Như tên gọi
của nó, bộ lọc thông cao giữ lại các thành phần có tần số cao và loại bỏ các thành
phần có tần số thấp. Vùng tần số cao này lại lưu giữ một phần tín hiệu quan trọng
của tiếng nói, quá trình này sẽ tăng cường độ tín hiệu trong vùng tần số cao, làm cân
bằng tần số giữa các vùng. Quá trình này còn được gọi là quá trình làm phẳng tín
hiệu tiếng nói.
Quá trình pre-emphasis được cho bởi công thức 2.11.









 

 


Với:
 

 là giá trị mới của tín hiệu số thứ n
  là giá trị ban đầu của tín hiệu số thứ n
  là hệ số pre-emphasis, . Hệ số càng lớn thì thành phần tần số
thấp bị loại đi càng nhiều, thông thường được chọn từ 0.95 tới 0.97.
Phân khung (framing) 2.3.3.

Tín hiệu âm thanh trước khi được xử lý rút trích đặc trưng sẽ được phân
thành các đoạn nhỏ, độ dài từ 20 – 40ms.
Tín hiệu âm thanh luôn liên tục thay đổi, tuy nhiên trong một khoảng thời
gian ngắn, ta có thể xem như nó không thay đổi quá nhiều. Nếu khoảng thời gian
quá ngắn, ta sẽ không có đủ các đặc trưng cần thiết cũng như phải xử lý tính toán
nhiều hơn (do có nhiều khung hơn). Hoặc nếu thời gian quá dài, tín hiệu trong đoạn
đó thay đổi quá nhiều sẽ làm thiếu mất đặc trưng cần thiết.
14


Hình 2.5. Phân khung dữ liệu
Hình 2.5 mô tả quá trình phân khung tín hiệu, các khung không tách rời và
chồng lấn lên nhau. Khoảng cách giữa hai khung gọi là bước nhảy, thường ở
khoảng 10-15ms. Với một tín hiệu được lấy mẫu với tần số 16kHz, phân khung với
độ lớn của sổ là 25ms và khoảng cách giữa các khung là 10ms thì mỗi khung dữ
liệu sẽ có 16000 * 0.025 = 400 mẫu, khoảng cách giữa 2 khung là 16000 * 0.01 =
160 mẫu. Cụ thể khung thứ nhất gồm 400 mẫu từ  tới , khung thứ 2 gồm
400 mẫu từ  tới ,
Làm trơn tín hiệu bằng hàm cửa sổ 2.3.4.
Làm trơn tín hiệu bằng hàm cửa sổ là bước tiền xử lý trước khi thực hiện
biến đổi Fourier. Các khung được phân ở bước trước chồng lấn lên nhau, do đó sẽ
làm tín hiệu không liên tục (không tạo thành đường cong kín hoàn chỉnh) khi thực
hiện biến đổi Fourier.
Hàm cửa sổ là một hàm toán học, thường có giá trị ở trong 1 khoảng xác
định và mang giá trị 0 hoặc gần 0 ở hai đầu trục số. Để làm trơn tín hiệu, hàm cửa
sổ được nhân với mỗi khung, khi đó các giá trị ở 2 đầu mỗi khung sẽ là 0 hoặc gần
bằng 0, như vậy khi ghép liên tiếp các khung với nhau thì sẽ tránh được sự không
liên tục vì giá trị tại điểm ghép là như nhau (bằng 0).

×