Chương I. CƠ SỞ LÝ THUYẾT CỦA XỬ LÝ TIẾNG NÓI
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.
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
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à:
𝑦(𝑛) = 𝑥(𝑛) − 𝑎 ∗ 𝑥(𝑛 − 1) (1.1)
Trong đó: y(n) là mẫu tín hiệu ra sau khi tiền nhấn; x(n) là mẫu tín hiệu vào; x(n- 1) là mẫu vào trước x(n); a là hằng số được chọn trong khoảng từ 0.9 đến 1.0 và thường sử dụng là 0.97.
Điều này làm cho tín hiệu hữu ích rõ ràng hơn, dễ nhận biết hơn trong quá trình nhận dạng theo mô hình HMM (Hidden Markov Model) được trình bày ở chương sau.
Trước khi đưa vào bộ tiền nhấn, tín hiệu được chuyển đổi từ dạng tương tự analog sang tín hiệu số digital (bộ ADC) để máy tính xử lý - hình 1.12. Các thông số quan trọng bao gồm số bit cho một mẫu (thông dụng là từ 8 đến 16 bit), tần số lấy mẫu (thông dụng từ 8Khz -16Khz).
Hình 1.12. Tín hiệu analog và tín hiệu digital tương ứng
1.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 có dạng:
’ .
Xt n x t n w n (1.2)
Các dạng hàm cửa sổ thường dùng là cửa sổ hình tam giác (Rectangular window), cửa sổ hình chữ nhật Hamming window, Hanning window. Theo nghiên cứu [5] thì hiệu quả của cửa sổ chữ nhật hơn hẳn cửa sổ hình tam giác và theo [1] thì cửa số Hanning window và Hamming window cho kết quả tương đồng nhau - hình 1.14.
Hì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:
0.54 0.46 cos( 2 ) 1 w n n
N
; với 0 ≤ n ≤ N −1 (1.3)
(a) (b)
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à:
1 2
0
( ) ( ).
N j kn
N n
X k x n e
; K=0…N-1 (1.4)
Ư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𝜋𝑁𝑘𝑛), tính tuyến tính, tính dịch vòng và tích chập vòng.
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 nhấn 0.9 bằng cửa sổ Hamming
1.3.5. Bộ lọc thang tần số Mel
Quá trình này nhằm biến đổi miền tần số vật lý (đơn vị: Hz) của các khung tín hiệu sang miền tần số sinh lý (đơn vị: Mel) bởi tai người không cảm nhận sự thay đổi tần số của tiếng nói tuyến tính mà theo thang Mel. Thang tần số Mel tuyến tính ở tần số dưới 1kHz và logarit ở tần số cao hơn 1kHz. Ta chọn tần số 1kHz, 40dB trên ngưỡng nghe 1000Mel - hình 1.17.
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:
2595 10 1
700
Hz Mel
F log F (1.5)
Trong đó, 𝐹𝑀𝑒𝑙 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:
10 {| t | ²}
log Y m (1.6)
với 𝑌𝑡(𝑚) là tín hiệu ngõ ra từ bộ lọc tam giác phổ Mel.
1.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:
1
log | | ² cos 0,5
M m
t t
m
Y k Y m k m
M
(1.7)
với 1 ≤ k ≤ 12. Các hệ số Mel chính là số điểm rời rạc này, ta có thể có 1-12 hệ số.