Trong những năm gần đây, hệ thống nhận dạng tiếng nói tự động (ASR) ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực. Tuy nhiên, hiệu suất của những hệ thống này lại dễ dàng bị ảnh hưởng bởi tác động bất lợi của môi trường, chẳng hạn như nhiễu,...Vì vậy, để xây dựng một bộ ASR bền vững với nhiễu, các thuật toán giảm nhiễu được áp dụng nhằm tối thiểu tác động của nhiễu và cải thiện chất lượng tiếng nói. Trong đề tài này, chúng tôi tập trung vào 4 thuật toán dựa trên lý thuyết tối thiểu hóa bình phương độ lệch trung bình, gồm MMSEMS, MMSESTSA84, MMSESTSA85 và bộ lọc Wiener. Bằng cách tích hợp các thuật toán này vào tầng tiền xử lý của khối frontend của bộ ASR, chúng tôi nhận thấy hiệu suất nhận dạng có những cải thiện nhất định trong môi trường nhiễu. Nội dung chính của đồ án gồm 4 chương, trong đó chương đầu chủ yếu giới thiệu về cấu trúc một bộ nhận dạng tiếng nói tự động, chương 2 đề cập đến các tiêu chuẩn DSR của ETSI (SFE và AFE) và các giải thuật giảm nhiễu nhằm tăng cường hiệu quả cho bộ ASR, chương 3 tập trung vào mô hình âm học HMM, chương 4 đánh giá và so sánh hiệu quả của các thuật toán dựa trên kết quả nhận dạng được thực hiện trên cơ sở dữ liệu SpeechDat Car Aurora3 và phần mềm nhận dạng tiếng nói HTK.
Trang 1NHẬN XÉT CỦA GVHD
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày tháng năm 2011
Kí tên
TS Phạm Văn Tuấn
Trang 2LỜI CAM ĐOAN NHẬN XÉT CỦA GVHD
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
LỜI CAM ĐOAN
Kính gửi: Hội đồng bảo vệ đồ án tốt nghiệp Khoa Điện tử - Viễn thông,
Trường Đại Học Bách Khoa Đà Nẵng
Em tên là: Nguyễn Thị Bích Ngọc
Hiện đang học lớp 06DT4, Khoa Điện tử - Viễn thông, Trường Đại Học Bách Khoa
Đà Nẵng
Em xin cam đoan nội dung của đồ án này không phải là bản sao chép của bất cứ đồ
án hoặc công trình đã có từ trước
Đà Nẵng, tháng 6 năm 2011
Sinh viên thực hiện
Nguyễn Thị Bích Ngọc
Trang 3LỜI CẢM ƠN
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo, TS Phạm Văn Tuấn đã hướng dẫnchúng em tận tình, cung cấp tài liệu, cũng như tạo mọi điều kiện thuận lợi để em cóthể hoàn thành được đồ án này
Em xin chân thành cảm ơn các thầy cô giáo trong khoa Điện tử - Viễn thông,Trường Đại Học Bách Khoa Đà Nẵng đã truyền đạt những kiến thức bổ ích cho emtrong suốt thời gian học tại trường để em có đủ kiến thức để hoàn thành đồ án
Trang 4MỤC LỤC
MỤC LỤC
CÁC TỪ VIẾT TẮT……….……….… 1
LỜI MỞ ĐẦU……… ……… 2
Trang 5CÁC TỪ VIẾT TẮT
CÁC TỪ VIẾT TẮT
AFE : Advanced Front-End
ASR : Automatic Speech Recognition
DCT : Discrete Cosine Transform
DSR : Distribution Speech Recognition
DTW : Dynamic Time Warping
ETSI : European Telecommunications Standards Institude
ETSI-Nest : ETSI noise estimation
FFT : Fast Fourier Transform
FSN : Finite State Network
HMM : Hidden Markov Model
HTK : Hidden Markov Model Toolkit
LPC : Linear Prediction Coded
MFCC : Mel-Frequency Cepstral Coefficient
ML : Maximum Likelihood
MMSE : Minimum Mean Square Error
SFE : Standard Front-End
SNR : Signal to Noise Ratio
SNRpri : Priori SNR
SNRpost : Postiriori SNR
STSA : Short-time Spectral Amplitude
VAD : Voice Activity Detection
VQ : Vector Quantilization
WAC : Word Accuracy
WER : Word Error Rate
WRR : Word Recognition Rate
Trang 6LỜI MỞ ĐÀU
LỜI MỞ ĐẦU
Việc thiết kế được một hệ thống máy móc có khả năng hiểu được ngôn ngữnói và đáp ứng đúng những yêu cầu của người nói là tham vọng của các nhà khoahọc và kĩ sư trong nhiều thập kỉ qua Công cuộc xây dựng các hệ thống nhận dạngtiếng nói tự động (ASR) bắt đầu từ những năm 30 của thế kỉ thứ 19 và tiếp tục pháttriển cho đến ngày nay Hiện tại, các hệ thống nhận dạng tiếng nói được sử dụngkhá nhiều trong thực tế, đặc biệt là các ứng dụng đòi hỏi giao diện giữa máy móc vàngười sử dụng Các ứng dụng này rất đa dạng và xuất hiện trong nhiều lĩnh vựckhác nhau: Tự động xử lý cuộc gọi trong mạng điện thoại, quay số bằng giọng nói,định tuyến cho cuộc gọi, tìm kiếm bằng giọng nói (ví dụ tìm các file podcast tươngứng với từ được nói ra), nhập các số của thẻ tín dụng vào hệ thống, chuyển lời nóithành văn bản (ví dụ ghi ra bảng điều trị trong y khoa), và nhiều ứng dụng khác.Được sử dụng rộng rãi là vậy, nhưng hiệu suất các hệ thống ASR như trên lại
bị giảm rõ rệt ở các môi trường bất lợi, chẳng hạn như nhiễu,… Vì thế, việc nghiêncứu xây dựng các bộ nhận dạng bền vững, có khả năng làm việc hiệu quả trongnhững môi trường như vậy mang ý nghĩa rất lớn Trên thực tế, có nhiều phươngpháp đã được đề xuất nhằm xây dựng bộ ASR bền vững như giảm nhiễu ở khối tiền
xử lý, thích nghi mô hình âm học, trích chọn thuộc tính âm học bền vững đối vớinhiễu, Trong đó, giảm nhiễu là phương pháp cho hiệu quả cao với các hệ thốngASR.Vì vậy, chúng tôi chọn nghiên cứu về phương pháp giảm nhiễu với các thuậttoán dựa trên lý thuyết tối thiểu hóa bình phương độ lệch trung bình, ví dụ: bộ lọcWiener, MMSE-STSA, MMSE-MS,…, để đánh giá vai trò của việc giảm nhiễutrong nâng cao hiệu suất nhận dạng và so sánh hiệu quả của từng thuật toán
Nội dung của đồ án gồm 4 chương, trong đó chương 1 giới thiệu về hệ thống nhậndạng tiếng nói tự động, chương 2 tóm tắt các quy trình xử lý trong khối Front-end
và trình bày nguyên lý của các thuật toán giảm nhiễu, chương 3 chú trọng vào lýthuyết mô hình Markov ẩn (HMM) và cách giải quyết 3 bài toán của HMM Cuối
Trang 7LỜI MỞ ĐÀU
cùng, chương 4 là phần thực hiện nhận dạng tiếng nói dựa trên cơ sở dữ liệu thực vàđánh giả kết quả nhận dạng
Đồ án được thực hiện bởi các sinh viên:
Đinh Hữu Trọng: Lý thuyết nhận dạng tiếng nói, tổng quan về các hệ thống
nhận dạng, Mô hình Markov ẩn và ứng dụng, Nhận dạng tiếng nói bằng phầnmềm HTK và đánh giá hiệu suất nhận dạng, Xây dựng giao diện mô phỏng vàchạy demo trên nền LINUX
Nguyễn Thị Bích Ngọc: Lý thuyết nhận dạng tiếng nói, tổng quan về các hệ
thống nhận dạng, Mô hình Markov ẩn và ứng dụng, Khối Front-end và cácthuật toán giảm nhiễu để nâng cao hiệu suất nhận dạng, Tìm hiểu tiêu chuẩnSFE, Nhận dạng tiếng nói bằng phần mềm HTK và đánh giá hiệu suất nhậndạng
Phạm Quốc Việt: Lý thuyết nhận dạng tiếng nói, tổng quan về các hệ thống
nhận dạng, Khối Front-end và các thuật toán giảm nhiễu để nâng cao hiệu suất
bộ nhận dạng, Tìm hiểu tiêu chuẩn AFE, Nhận dạng tiếng nói bằng phần mềm HTK và đánh giá hiệu suất nhận dạng
Trang 8Chương 1: Lý thuyết nhận dạng tiếng nói
CHƯƠNG 1: LÝ THUYẾT VỀ NHẬN DẠNG TIẾNG NÓI
1.1 Giới thiệu chương
Phần đầu chương này sẽ tóm lược một cách khái quát các đặc tính, cơ chế tạothành tiếng nói đồng thời cũng đưa ra những giới thiệu sơ lược về hệ thống nhậndạng tiếng nói, bao gồm cả lịch sử phát triển lẫn cấu trúc, nguyên lý hoạt động cũngnhư ứng dụng của nó trong thực tế
Phần tiếp theo của chương đi sâu vào phân tích thuật toán, nguyên tắc của một
số khối chức năng trong bộ nhận dạng Phần này sẽ trang bị cho chúng ta nhữngkiến thức căn bản cần thiết để hiểu rõ hơn cách thức hoạt động của một bộ nhậndạng
1.2 Tiếng nói và các đặc tính cơ bản của tiếng nói
1.2.1 Cơ chế tạo thành tiếng nói
Tiếng nói được tạo thành từ các tín hiệu sóng âm phát ra từ miệng và mũi củangười nói, dưới sự hỗ trợ của một loạt các cơ quan trong cơ thể người, gồm:
- Phổi đóng vai trò như bơm không khí, tạo năng lượng hình thành âm
- Các dây thanh âm: là hai cơ nhỏ ở trong cuống họng, có hai đầu dínhnhau, hai đầu kia dao động (thanh môn mở ra và đóng lại) với tần số cơbản (pitch/fundamental frequency) là F0
- Thanh quản và vòm miệng: đóng vai trò giống một hốc cộng hưởng, tạo ra
sự phân biệt tần số khi tín hiệu dao động từ đôi dây thanh âm phát ra Đápứng tần số của hốc cộng hưởng này có nhiều đỉnh cộng hưởng khác nhauđược gọi là các formant, chứa các thành phần tần số quan trọng của tínhiệu tiếng nói
- Miệng: đóng vai trò phát tán âm thanh ra bên ngoài
- Lưỡi: thay đổi để tạo ra tần số formant khác nhau
Khi nói, dòng không khí đi từ phổi, qua thanh môn đến cổ họng, rồi thoát ra ởmiệng Tùy thuộc vào cơ chế phát âm, tín hiệu tiếng nói có thể chia làm các loại:
Âm hữu thanh (voiced sounds), cụ thể là các nguyên âm và phụ âm hữu thanhnhư /b/, /d/, /g/, /v/, /z/, /m/, /n/, /l/, /r/, được phát ra cùng với sự rung động của cácdây thanh âm Ngược lại âm phát ra mà không có sự rung động của dây thanh gọi là
Trang 9Chương 1: Lý thuyết nhận dạng tiếng nói
1.2.2 Các đặc tính của tiếng nói
- Dải tần của tín hiệu tiếng nói nằm trong khoảng từ 0 kHz đến 20 kHz, tuynhiên phần lớn công suất tín hiệu tập trung ở vùng từ 0.3kHz đến 3.4 kHz
- Tần số trung tâm F0: Là tần số rung động của thanh môn, như vậy F0 cũng
là tần số của các âm hữu thanh F0 thay đổi theo thanh điệu và phụ thuộcgiới tính, độ tuổi người nói F0 của nam giới trong khoảng 60-200 Hz, của
nữ giới và trẻ em cỡ 300Hz hoặc cao hơn
- Tần số formant (còn gọi là peak): Các tần số tương ứng với tần số cộng
hưởng của dao động từ đôi dây thanh âm Trong phổ tần số của tín hiệu
tiếng nói, formant chính là các đỉnh (biên độ lớn) biểu diễn các thành phần
tần số chủ chốt của tiếng nói, mang thông tin để nhận diện được âm Vìthế những đỉnh này và đường cong nối liền các đỉnh, còn gọi là đường bao
phổ, đóng vai trò rất quan trọng trong nhận dạng tiếng nói Tần số formant
biến đổi trong một dải rộng phụ thuộc vào giới tính, độ tuổi người nói, vàvào từng âm vị
1.2.3 Biểu diễn tín hiệu tiếng nói
- Trong một khoảng thời gian đủ ngắn (khoảng từ 5 đến 100ms), có thể xem tín hiệutiếng nói như một tín hiệu biến đổi chậm với các đặc tính hầu như không biến đổi.Ngược lại, nếu xét trong khoảng thời gian dài (cỡ 1/5 giây trở lên) thì các đặc tínhcủa tiếng nói thay đổi tương ứng với các âm được nói Ngoài ra, các âm khác nhauthì biến đổi tín hiệu cũng diễn ra khác nhau Ví dụ dưới đây là một minh họa [1]:
Trang 10Chương 1: Lý thuyết nhận dạng tiếng nói
Hình 1.1 Dạng sóng của câu nói “It’s time”
Phần tín hiệu “S” trong khoảng 100ms ban đầu gần như không đổi tương ứngvới khoảng lặng nền (khi không có tiếng nói) và có biên độ rất nhỏ Với tín hiệutiếng nói, phần khởi tạo thường được biểu diễn dưới dang các khoảng lặng như thếnày Tiếp đến, phần tín hiệu kí hiệu là “U” biểu diễn cho các âm vô thanh như /s/, /t/
; kí hiệu “V” biểu diễn cho các âm hữu thanh như /i/, /m/, /e/ trong ví dụ
- Cách thứ hai để mô tả đặc tính của tiếng nói: biểu diễn nó dưới dạng biên độ theotần số, còn gọi là phổ (spectrum) Để trực quan hơn, người ta sử dụng một loại biểu
đồ 3-D, tên gọi là giản đồ phổ (spectrogram) để biểu thị cường độ của tiếng nói theothời gian, tại các tần số khác nhau
Trong giản đồ phổ, các âm hữu thanh tuần hoàn với tần số F0 Vì vậy phổ củanguyên âm là phổ vạch, khoảng cách giữa các vạch bằng chính F0 Với các âm vôthanh, phổ tín hiệu có dạng gần giống nhiễu trắng, năng lượng phân bố đều ở vùngtần số cao Phổ của các âm hữu thanh thường tập trung nhiều năng lượng hơn phổ
Trang 11Chương 1: Lý thuyết nhận dạng tiếng nói
1.3 Hệ thống nhận dạng tiếng nói
1.3.1 Nhận dạng tiếng nói là gì?
Nhận dạng tiếng nói là quá trình xử lý tiếng nói nhằm biến đổi tín hiệu tiếngnói được ghi âm thành chuỗi các từ hoặc phiên âm của các từ một cách chính xác vàhiệu quả Các từ này được đem so sánh với các từ đã được huấn luyện và lưu trữtrong bộ nhớ trước đó để cho ra kết quả nhận dạng
1.3.2 Lịch sử phát triển của các hệ thống nhận dạng tiếng nói
Công nghệ nhận dạng tiếng nói tự động (ASR) là một trong những thành tựulớn của mảng khoa học máy tính, liên quan trực tiếp đến nhiều môn học như phântích và xử lý tín hiệu, toán học thống kê, ứng dụng trong ngôn ngữ học và trí thôngminh nhân tạo Công nghệ ASR cho phép con người, bằng lời nói, có thể giao tiếpvới máy móc để lấy thông tin hoặc yêu cầu máy thực hiện các công việc mongmuốn Tuy nhiên, việc nhận dạng không hề đơn giản, nó phức tạp bởi những biếnthể của tiếng nói, ví dụ ngữ điệu, âm vực, điều kiện sức khỏe, giới tính, độ tuổi củangười nói Hiệu suất của bộ nhận dạng phụ thuộc nhiều yếu tố như kích cỡ bộ từvựng, hệ thống là độc lập hay phụ thuộc người nói, là nhận dạng từ đơn hay tiếngnói liên tục, Vì thế, việc nghiên cứu và xây dựng được những hệ thống như thế cầnmột khoảng thời gian dài [2]
Những nghiên cứu về nhận dạng tiếng nói đã ra đời cách đây hơn 70 năm.Trong khoảng thời gian đó, có ít nhất 4 thế hệ các phương thức tiếp cận và thựchiện việc nhận dạng tiếng nói, gồm:
+ Thế hệ 1 - Từ những năm 1930 đến 1950: Sử dụng giải pháp ad hoc để
nhận dạng âm thanh, hoặc các từ đơn trong một bộ từ vựng nhỏ
+ Thế hệ 2 - Từ những năm 1950 đến 1960: Sử dụng các phương pháp dựa trên âm học, có tên gọi là acoustic-phonetic để nhận dạng các âm vị, âm tiết
hoặc các bộ từ vựng số
+ Thế hệ 3 - Từ những năm 1960 đến 1980: Dùng phương pháp nhận dạng
mẫu để nhận dạng các chuỗi từ có liên kết hoặc riêng rẽ trong những bộ từ vựngvừa và nhỏ, gồm: phân tích phổ bằng phương pháp mã hóa dự đoán tuyến tính(LPC), dùng LPC để tính điểm tương đồng giữa 2 mẫu, các giải pháp lập trình động
Trang 12Chương 1: Lý thuyết nhận dạng tiếng nói
để đồng chỉnh các mẫu với thời gian, sử dụng bảng mã vector lượng tử hóa (VQ) đểgiảm dung lượng dữ liệu cũng như số lượng phép tính
+ Thế hệ 4 - Những năm 1980 đến 2000: Dùng mô hình Markov ẩn để mô hình hóa các đặc tính của tiếng nói, giải thuật forward-backward để huấn luyện, thuật toán liên kết Viterbi để giải mã, dùng phương pháp tìm độ tương đồng cực đại
(ML) cũng như nhiều tiêu chuẩn khác để tối ưu hóa các mô hình thống kê, đưa raphương pháp dùng mạng nơron để ước lượng hàm mật độ xác suất có điều kiện,dùng các thuật toán thích nghi để chỉnh sửa các thông số liên quan tới tín hiệu tiếngnói hay mô hình thống kê nhằm tăng độ tương thích giữa mô hình với dữ liệu đưavào, nhờ đó tăng độ chính xác khi nhận dạng
+ Hiện tại, thế hệ thứ 5 (từ những năm 2000 đến 2020) đang được phát triểndựa trên nền tảng của các thế hệ đi trước Đây là giai đoạn sử dụng các phươngpháp xử lý song song để tăng độ tin cậy cho việc nhận dạng, kết hợp dùng HMMvới phương pháp acoustic-phonetic để phát hiện và sửa những điểm bất hợp lí củangôn ngữ nói trong nhận dạng
Ngoài ra, các nghiên cứu trong cả thương mại lẫn học thuật đều tập trung vàoviệc giải quyết các vấn đề phức tạp như tăng độ mạnh của bộ nhận dạng trong môitrường bị ảnh hưởng bởi nhiễu và tạp âm hoặc phải làm việc với một lượng lớn dữliệu đầu vào
Thực tế, công nghệ trong các thế hệ này không phân biệt rạch ròi về mặt thờigian mà mang tính chất kế thừa, thế hệ sau kế thừa và phát triển những thành tựucủa thế hệ trước nó Việc phân chia các thế hệ chỉ để thấy rõ các đặc trưng cũng nhưthành quả đạt được ở mỗi giai đoạn, thấy được công nghệ nhận dạng tiếng nói đã điđược một đoạn đường dài và vẫn tiếp tục được phát triển, hoàn thiện
Nhìn chung có thể tóm tắt các quá trình đó qua sơ đồ sau [2]:
Trang 13Chương 1: Lý thuyết nhận dạng tiếng nói
Hình 1.2 Quá trình phát triển của hệ thống nhận dạng tiếng nói
1.3.3 Các nguyên tắc cơ bản trong nhận dạng tiếng nói
Các nghiên cứu về nhận dạng tiếng nói dựa trên ba nguyên tắc cơ bản:
•Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một khung thời gian ngắn (short-term amplitude spectrum) Nhờ vậy ta có thể trích ra các đặc điểm tiếng nói từ những khoảng thời gian ngắn và dùng các đặc điểm này làm dữ liệu để nhận dạng tiếng nói
•Nội dung của tiếng nói được biểu diễn dưới dạng chữ viết, là một dãy các ký hiệu ngữ âm Do đó ý nghĩa của một phát âm được bảo toàn khi chúng ta phiên âm phát âm thành dãy các ký hiệu ngữ âm
•Nhận dạng tiếng nói là một quá trình nhận thức Thông tin về ngữ nghĩa (semantics) và suy đoán (pragmatics) có giá trị trong quá trình nhận dạng tiếng nói, nhất là khi thông tin về âm học là không rõ ràng
1.3.4 Mô hình tổng quát của hệ thống nhận dạng tiếng nói
1.3.4.1 Cấu trúc của bộ nhận dạng
Cấu trúc của một bộ nhận dạng tiếng nói thường bao gồm các khối chức năngđược biểu diễn như ở hình 1.3 Các khối này được chia thành 2 khối lớn hơn: khối
Trang 14Trích chọn đặc trưng Tiền xử lý
Chương 1: Lý thuyết nhận dạng tiếng nói
front-end bao gồm có khối tiền xử lý và khối trích chọn đặc trưng, khối back-end là
phần còn lại, có chức năng chạy thuật toán tìm và giải mã để nhận dạng
Hình 1.3 Sơ đồ của bộ nhận dạng tiếng nói
1.3.4.2 Khối tiền xử lý
Khối này nhận nhiệm vụ thu tín hiệu từ micro, lọc bỏ nhiễu và các thành phầnkhông mong muốn để lấy được thành phần tiếng nói chất lượng cao và không lẫntạp âm làm dữ liệu cho việc nhận dạng Các thuật toán nén nhiễu đầu vào sẽ đượctriển khai ở khối này, góp phần cải thiện hiệu suất nhận dạng trong môi trường cónhiễu, đồng thời giúp hướng tới mục tiêu nhận dạng tiếng nói bền vững
1.3.4.3 Trích chọn đặc trưng
Đúng như tên gọi, khối này làm nhiệm vụ rút trích ra các đặc trưng, các thôngtin quan trọng của tiếng nói để giảm bớt lượng dữ liệu không cần thiết, theo đó tiếtkiệm được bộ nhớ và thời gian xử lý Có nhiều phương pháp được sử dụng cho việctrích chọn, ví dụ LPC, MFCC, Tuy nhiên hiện nay MFCC có phần được sử dụngphổ biến hơn và sẽ được trình bày kĩ hơn trong chương kế tiếp
1.3.4.4 Mô hình âm học (Acoustic Model)
Tiếng nói thực chất chỉ là một chuỗi các âm Não con người có xu hướng xếpnhững chuỗi âm này thành các đơn vị ngữ âm, hay còn gọi là các âm vị Từ các âm
vị, chúng ta có thể phân biệt các từ với nhau
Mô hình âm học là loại mô hình thống kê, có thể ước lượng xác suất của một âm vị
cụ thể được phát âm trong một đoạn ghi âm Những âm vị trên được đặc tả bởi cácvector đặc trưng MFCC Giả sử chuỗi O gồm các vector MFCC chứa các thuộc tính
Trang 15Chương 1: Lý thuyết nhận dạng tiếng nói
back-end Ta cần phải ước lượng được xác suất của các thuộc tính âm học này, vớitập từ vựng W cho trước, mới có thể nhận dạng từ chính xác Xác suất này gọi làxác suất âm học P(O|W) Mô hình giúp ta tính toán một cách gần đúng P(O|W) gọi
1.3.4.5 Từ điển (Word Lexicon)
Mỗi từ thường được cấu thành từ những đơn vị nhỏ hơn từ ví dụ điển hìnhnhất ở đây là các âm tiết (phone), các âm tiết này được mô tả trong một bộ từ điển(lexicon/ dictionary) Các âm tiết (phone) trong bộ từ điển này tương đương với các
âm tiết sử dụng trong các mô hình âm thanh đơn âm(monophone), nhị âm(diphone), tam âm (triphone - mô hình triphone là mô hình trong đó xác suất âm vịphụ thuộc vào các âm vị đứng trước và sau nó)
1.3.4.6 Mô hình ngôn ngữ (Language Model)
Mô hình ngôn ngữ gắn liền với xác suất xuất hiện của một chuỗi từ Trongnhận dạng tiếng nói, xây dựng mô hình ngôn ngữ đồng nghĩa với việc ước lượngđược chính xác P(Wi), tức là xác suất để từ cần nhận dạng là Wi
Mô hình ngôn ngữ quan trọng đối với việc nhận dạng tiếng nói ở chỗ có thểhạn chế được số lượng kết hợp giữa các từ trong ngôn ngữ nói Nhờ đó, không giantìm kiếm sẽ giảm đáng kể nên tốc độ và độ chính xác của nhận dạng tăng lên nhiều,đặc biệt khi ta phải làm việc với một lượng từ lớn Phương pháp phổ biến nhất đểước lượng P(Wi) hiện nay là dùng mô hình ngôn ngữ thống kê N-grams được hiểu
như sau:
- Hàm phân bố xác suất P(W) của chuỗi từ W đại diện cho một mô hình ngônngữ, mô tả tần số xuất hiện của chuỗi W trong một câu Ví dụ, trong 100 câu
có một câu là “hello” thì P(hello) = 0.01, hoặc P(raey wen yppah)=0, vì W lúc
này là một chuỗi lạ và hoàn toàn không giống ngôn ngữ nói
- P(W) được khai triển theo công thức sau:
P(W) = P(w1,w2, ,wN) = P(w1)P(w2|w1) P(w3|w1,w2) P(wN|w1,w2, ,wN-2,wN-1)=
Trang 16Chương 1: Lý thuyết nhận dạng tiếng nói
= (1.1)
- Tuy nhiên, việc tính Pi dựa trên chuỗi w1,w2, ,wi-1 xuất hiện trước đó rất khó
vì nguyên cả chuỗi này có thể chỉ xuất hiện duy nhất 1 lần, hoặc rất ít lần Dovậy, để giảm kích cỡ của chuỗi xuất hiện trước, khái niệm mô hình ngôn ngữthông kê N-grams ra đời Nếu một từ xuất hiện phụ thuộc vào sự xuất hiện củahai từ trước nó, ta có mô hình 3-grams, hay còn gọi là trigram P(wi|wi-1,wi-2).Tương tự, ta có mô hình unigram P(wi) hoặc bigram P(wi|wi-1)
- Với mô hình bigram, vì xác suất xuất hiện từ sau chỉ phụ thuộc vào từ ngaytrước nó, nên để P(wi|wi-1) với i=1 có nghĩa, ta thêm kí tự <s> trước chuỗi Đểtổng các P=1 theo lý thuyết xác suất, ta thêm kí tự </s> ở cuối chuỗi Ví dụcâu nói “happy new year” có P bằng:
P(happy new year)= P(happy|<s>)P(new|happy)P(year|new)P(</s>|year)
- Với mô hình trigram, P được ước lượng bằng số lần xuất hiện của cặp 2 từC(wi-2,wi-1) và 3 từ C(wi-2,wi-1,wi) theo công thức:
Không giống ngôn ngữ nói, N-grams không đặt nặng về vấn đề ngữ pháp Cho
dù chuỗi từ cần nhận dạng có sai về mặt ngữ pháp thì vẫn có thể nhận đượcmột xác suất cao nếu N đủ nhỏ Ngoài ra, ta có thể xem giá trị N như là bậccủa mô hình N-grams Thuật ngữ này có liên quan tới mô hình Markov, và cóthể xem mô hình N-grams bậc N tương ứng với một mô hình Markov bậc N-1
1.3.4.7 Khối tìm và giải mã
Khối này có nhiệm vụ tìm kiếm trong toàn bộ tập hợp các chuỗi từ hợp lệtrong mô hình ngôn ngữ để đưa ra được từ giống nhất với từ đã nói ra Trở ngại lớnnhất ở đây là kích cỡ quá lớn của không gian tìm kiếm, nhất là với những bộ từ điển
đồ sộ, làm khối lượng tính toán tăng lên nhiều Giải pháp cho vấn đề này là phươngpháp dùng mạng các trạng thái hữu hạn FSN (Finite State Network) và thuật toánDTW để tính độ tương đồng cực đại giữa các từ một cách chính xác và dùng ít phéptính nhất Thuật toán DTW- mà đại diện điển hình nhất của nó là giải thuật Viterbi-
sẽ được trình bày cụ thể hơn ở phần dưới đây
Trang 17Chương 1: Lý thuyết nhận dạng tiếng nói
• Giới thiệu thuật toán DTW (Dynamic Time Warping)
- DTW là thuật toán được sử dụng để tính toán sự giống nhau giữa 2 chuỗi có đặctính biến đổi theo thời gian hoặc tốc độ Ví dụ, DTW có thể phát hiện được sựgiống nhau giữa 2 mẫu tiếng nói, trong đó một mẫu được nói với tốc độ chậm, mẫucòn lại có tốc độ nói nhanh hơn Một trong những ứng dụng nổi tiếng nhất củaDTW là nhận dạng tiếng nói tự động, nhằm giải quyết sự khác nhau trong tốc độcủa mỗi người nói Phương pháp này cho phép cân chỉnh hai tập hợp mẫu tín hiệutiếng nói (x1x2 xN) và (y1y2 yN) theo chiều thời gian để giảm bớt độ sai khác khôngtuyến tính giữa 2 mẫu như hình minh họa dưới đây [3]:
Hình 1.4 So sánh trực tiếp giữa X={x1, x2,…xN} và Y={y1,y2,….,yN}
Nhờ hiệu quả tìm kiếm của phương pháp này rất cao, nên nó được sử dụngnhư một phần không thể thiếu trong mô hình Markov ẩn, dưới tên gọi “Thuật toángiải mã Viterbi”, sẽ được đề cập tới ở phần sau
• Mô tả thuật toán
Trang 18Chương 1: Lý thuyết nhận dạng tiếng nói
- Có thể hiểu thuật toán này một cách đơn giản là tìm khoảng cách, hay sự khác biệt,nhỏ nhất giữa 2 mẫu tiếng nói Tương ứng với mỗi cặp (i, j) là khoảng cách d(i, j)giữa hai vector xi và yj Để tìm đường đi tối ưu giữa điểm khởi đầu (1, 1) và điểmkết thúc (N, M), ta cần phải tính được khoảng cách tổng cộng D(N, M) ngắn nhất.Nghĩa là liệt kê ra tất cả các D(N, M) có thể có và chọn giá trị nhỏ nhất
- Nguyên lý lập trình DTW có thể làm giảm một lượng đáng kể các phép tính bằngcách loại ra và không liệt kê các chuỗi không có khả năng trở thành chuỗi tối ưu.Trên cùng một đường đi tối ưu, bước sau phải dựa trên kết quả của bước trước đó,tức là khoảng cách D(i, j) phải thỏa mãn biểu thức :
(1.3)Biểu thức trên chỉ ra rằng ta chỉ cần chú trọng đến bước chuyển dịch tốt nhấtcho mỗi cặp so sánh cho dù tổng cộng có đến M bước Thực chất, thuật toán lậptrình động giải quyết các bài toán con của nó theo kiểu đệ quy, tính D(i-1,k) trước,rồi dựa vào đó để tính giá trị tiếp theo D(i,j) Đường đi tối ưu được tìm bằng cáchdùng chính phép đệ quy này, xác định yj tương ứng với xi rồi lần lượt lưu các chỉ số
i, j vào ma trận B(i, j) trước khi cho ra kết quả cuối cùng
- Thuận lợi của phương pháp lập trình động nằm ở chỗ mỗi khi một biểu thức conđược giải quyết, phần kết quả tính toán sẽ được lưu lại và các biểu thức tính sau đó
có thể sử dụng nó mà không cần phải tính lại Điều này rất cần thiết cho các hệthống nhận dạng tiếng nói trong việc giảm khối lượng tính toán, cho phép xử lý mộtkhối lượng lớn dữ liệu và tiết kiệm thời gian xử lý
• Các bước thực hiện thuật toán
- Bước 1: Khởi tạo
Trang 19Chương 1: Lý thuyết nhận dạng tiếng nói
đó Thông thường người ta dùng tỉ lệ lỗi từ (WER), tỉ lệ nhận dạng được từ (WRR)
và tỉ lệ từ chính xác (WAC) để đánh giá hiệu suất của bộ nhận dạng
1.4 Ứng dụng của nhận dạng tiếng nói trong thực tế
- Trong chăm sóc sức khỏe: Thực hiện nhận dạng tiếng nói ở đầu hoặc đầu cuốitrong tiến trình xử lý các văn bản dùng cho y khoa, ví dụ đơn thuốc, bảng theodõi sức khỏe,
- Nhận dạng đầu vào: Khi người dùng ra lệnh cho bộ nhận dạng, từ cần nhậndạng sẽ hiển thị ngay sau khi nói, người dùng có thể chỉnh sửa ngay trên vănbản được hiển thị
- Nhận dạng đầu cuối: Người dùng ra lệnh cho máy, âm thanh sau khi vào hệthống nhận dạng sẽ cho ra kết quả là một văn bản nháp Văn bản này cùng vớifile gốc của tiếng nói sẽ được bộ MT (bộ phiên âm đặc biệt cho y khoa) chỉnhsửa và hoàn thiện
- Trong quân đội:
+ Ứng dụng của nhận dạng tiếng nói trong máy bay chiến đấu hiệu suấtcao gồm: Thiết đặt các tần số vô tuyến, ra lệnh cho hệ thống không người lái,thiết đặt các thông số tọa độ lái, điều khiển màn hình bay,
+ Trong các trực thăng: Điều khiển các kết nối vô tuyến, thiết đặt các hệthống dẫn đường, trong môi trường áp lực lớn và tiếng ồn cường độ cao
- Huấn luyện các bộ điều khiển lưu lượng bay
Trang 20Chương 1: Lý thuyết nhận dạng tiếng nói
- Nhận dạng tiếng nói trong ô tô (ví dụ hệ thống SYNC của hãng Ford cho phépgọi điện thoại, mở nhạc và điều khiển nhiều chức năng khác mà không cầndùng tay)
- Trong kĩ thuật điện thoại và nhiều lĩnh vực khác, ví dụ các game điện tử điềukhiển bằng tiếng nói, biên dịch tự động, viễn tin (hệ thống điều khiển giaothông), ra lệnh cho các thiết bị tự động trong nhà, trong điện thoại di động, sảnxuất rôbôt, dịch từ tiếng nói ra văn bản, hệ thống tương tác bằng tiếng nói,điều khiển giao diện máy tính chỉ bằng lời nói,
Nhìn chung, các ứng dụng của hệ thống nhận dạng tiếng nói trong thực tếngày càng nhiều, càng phức tạp, yêu cầu độ chính xác càng cao, và con người chưabao giờ hết tham vọng trong việc phát triển và hoàn thiện các hệ thống này
1.5 Kết luận chương
Qua chương này, chúng ta được trang bị những kiến thức cơ bản nhất vềphương thức hoạt động của một bộ nhận dạng tiếng nói Hiểu được nhiệm vụ củanhững khối chức năng cấu tạo nên bộ nhận dạng như: Tiền nhấn tín hiệu, trích chọnđặc trưng, lượng tử hóa vector, mô hình thống kê N-grams, thuật toán DTW để ápdụng cho bước tìm và giải mã, Những lý thuyết này, kết hợp với phần kiến thứcgiới thiệu ở các chương tiếp theo sẽ cho ta cái nhìn tổng quát về cách thiết kế và thực hiện một bộ nhận dạng
Trang 21Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
CHƯƠNG 2: KHỐI FRONT-END VÀ CÁC THUẬT TOÁN GIẢM NHIỄU
ĐỂ TĂNG HIỆU SUẤT BỘ NHẬN DẠNG
2.1 Giới thiệu chương
Chương này sẽ giới thiệu các phương pháp xử lý tiếng nói trong khối end của bộ nhận dạng tiếng nói tự động (ASR) nhằm mục đích xây dựng một bộnhận dạng tiếng nói bền vững trong môi trường nhiễu Khối front-end được biết đếnnhư một khối có chức năng biến đổi tiếng nói thành các vector thuộc tính phù hợpcho quá trình xử lý về sau Tín hiệu trong khối front-end được xử lý càng hoàn hảo,
front-tỉ lệ nhận dạng chính xác sẽ càng tăng Khối front-end bao gồm các khối nhỏ sau:
- Khối tiền xử lý: Các thuật toán giảm nhiễu được tích hợp trong khối này,nhằm cải thiện chất lượng của tín hiệu trước khi đưa vào nhận dạng Chươngnày sẽ giới thiệu về một số thuật toán nén nhiễu thông dụng hiện nay như:Thuật toán MMSE -STSA, Thuật toán Wiener
- Khối trích chọn đặc trưng: có nhiệm vụ rút trích ra những đặc tính quan trọngcủa tiếng nói để sử dụng trong quá trình nhận dạng, là một khâu không thểthiếu trong bất kì một hệ thống nhận dạng tiếng nói nào Có nhiều phươngpháp được sử dụng để rút trích đặc trưng và hiện nay, thuật toán MFCC đượcchọn lựa nhiều bởi sự phổ biến cũng như tính hiệu quả của nó Phương phápMFCC chủ yếu dựa trên cảm nhận âm của thính giác con người và được ETSI
sử dụng để xây dựng các tiêu chuẩn cho DSR – hay nhận dạng tiếng nói phântán - mà hai thuật toán SFE (Standard Front-end) và AFE (Advanced Front-end) là hai ví dụ điển hình sẽ được giới thiệu trong mục kế tiếp
2.2 Thuật toán Standard Front-end (ETSI DSR ES 201 108)
2.2.1 Giới thiệu
Vào tháng 2 năm 2000, nhóm ETSI STQ-Aurora (thường gọi tắt là Aurora) đãcho ra đời chuẩn DSR đầu tiên, có số hiệu ETSI DSR ES 201 108 [4] với khốifront-end dựa trên phổ rời rạc Mel Chuẩn DSR này xác định cách rút trích nhữngđặc trưng tiêu biểu của tiếng nói bằng kĩ thuật MFCC, sau nó nén và truyền chúngđến khối xử lý back-end của bộ nhận dạng Việc kiểm tra các thuật toán của chuẩn
Trang 22Chuyển đổi A/D
Biến đổi phi tuyến (LOG)
Biến đổi Cosine rời rạc
Tính Log của mức năng lượng E
Nén các đặc tính
Tín hiệu vào
Chia khung và định dạng dòng bit
Tín hiệu ra
Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
này được thực hiện và đánh giá thông qua cơ sở dữ liệu Aurora, với nhiều ngôn ngữnói như tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, Đây là chuẩn DSR đầu tiên đượcETSI đề xuất, và tuy hoạt động tốt với tiếng nói ‘sạch’, không méo, ở những nơi cónhiễu nền rất thấp, SFE lại bộc lộ điểm yếu khi được áp dụng ở những môi trường
bị tác động mạnh bởi nhiễu Vì thế, thay vì dừng lại ở chuẩn này, ETSI dùng SFEnhư nền tảng để xây dựng các tiêu chuẩn tốt hơn, cải tiến hơn sau này
2.2.2 Mô tả thuật toán Standard front-end
2.2.2.1 Sơ đồ khối
Khối front-end gồm có các khâu tiền xử lý, trích chọn đặc trưng, chia khung
và định dạng dòng bit được mô tả chi tiết từng bước trong sơ đồ khối dưới đây:
2.2.2.2 Chuyển đổi A/D
Nhiệm vụ: chuyển tín hiệu tiếng nói từ dạng tương tự sang tín hiệu số Tốcđộc lấy mẫu đầu ra của khối này có thể là 8Khz hoặc 11Khz hoặc 16Khz
Trang 23Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Trước khi phân khung, tín hiệu tiếng nói vào s in được đưa qua bộ lọc dải triệt
(notch filter) để loại bỏ thành phần lệch DC, tín hiệu ra s of được cho bởi công thứcsau:
s of (n)= s in (n)- s in (n-1)+0.999 s of (n-1) (2.1)
2.2.2.4 Phân khung
Tín hiệu s of sẽ được chia ra các khung N mẫu chồng nhau với độ dài
25ms/khung nếu tốc độ lấy mẫu là 8Khz hoặc 11Khz, 23.27ms/khung nếu lấy mẫu
ở tốc độ 16Khz Độ dịch khung là 10ms , tương ứng với M mẫu Quan hệ giữa giátrị của độ dài khung và độ dịch khung được trình bày rõ ở bảng dưới:
Tốc độ lấy mẫu (Khz) f s3 = 16 f s2 = 11 f s1 = 8
2.2.2.5 Tính Log mức năng lượng
Thực hiện tính logarit mức năng của mỗi khung:
s pe (n)= s of (n) – 0.97s of (n-1) (2.3)
trong đó spe và sof lần lượt là tín hiệu ra và vào của khối tiền nhấn
2.2.2.7 Lấy cửa sổ Hamming
Giả sử sw và spe lần lượt là tín hiệu vào vào ra của khối này, quan hệ giữachúng được biểu diễn như sau:
(2.4)Với N là số mẫu trong một khung và 1 ≤ n ≤ N
Khoảng thời gian lấy cửa sổ Hamming thay đổi tùy thuật toán trích chọn đặc trưng,nhưng thông thường nằm trong dải 10 ms đến 50 ms, và theo chuẩn ETSI Aurora,giá trị này là 25ms Trong khoảng thời gian này, tín hiệu tiếng nói coi như ổn định
Trang 24Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
không đổi Tiếp đến các cửa sổ Hamming sẽ được dịch đi S mẫu trong 10ms để cho
ra các khung cửa sổ mới với tốc độ 100 khung/s
2.2.2.8 Biến đổi Fourier
Trong miền thời gian, mỗi khung N mẫu sẽ được độn thêm nhiều mẫu 0 để mởrộng khung ra thành 256 mẫu (nếu tốc độ lấy mẫu 8 và 11 Khz), hoặc 512 mẫu (nếu
là 16 Khz) Sau đó phép biến đổi FFT sẽ được thực hiện cho mỗi khung để tính phổbiên độ của tín hiệu
(2.5)Trong đó sw(n) là tín hiệu vào của khối, FFTL là chiều dài của khung (256 hoặc 512mẫu), bink là giá trị tuyệt đối của vector phức đầu ra, và k = 0, 1, , FFTL-1
Ngoài ra, do tính đối xứng của kết quả, chỉ có các giá trị bin0,1, FFTL/2 là được sử dụng
ở các bước tính toán tiếp theo
2.2.2.9 Bộ lọc thang Mel
Các thành phần tần số thấp của phổ biên độ sẽ được bỏ qua Băng tần hữudụng nằm trong dải từ 64 Hz đến một nửa giá trị thực sự của tần số lấu mẫu Băngtần này được chia ra thành 23 kênh có khoảng cách đều nhau trong miền tần số mel.Mỗi kênh có một cửa sổ tần số hình tam giác và các kênh liên tiếp sẽ có một nửachồng lên nhau Tần số bắt đầu của dàn lọc (filter bank) là fstart=64 Hz Tần số trung
tâm của các kênh theo chỉ số bin của FFT (hay cbin i đối với kênh thứ i) được tínhnhư sau:
với i = 1,2, ,23 (2.7)
(2.8)
Trong đó round( ) nghĩa là làm tròn thành số nguyên gần đó nhất.
Đầu ra của bộ lọc Mel là tổng trọng số của tất cả các giá trị phổ biên độ FFT (bini)trong mỗi băng:
(2.9)
Trang 25Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
và
2.2.2.10 Biến đổi phi tuyến
fi= ln(fbank i ) với i=1,2, ,23
Mục đích của khối là giảm độ nhạy của các mức năng lượng với những âm có âmlượng quá bé hoặc quá lớn Nếu không có khối tính logarit này, độ chính xác nhậndạng sẽ giảm đi đáng kể
2.2.2.11 Biến đổi cosine rời rạc (DCT)
Bước cuối cùng của việc trích chọn các vector đặc trưng là tính biến đổicosine rời rạc cho các mức năng lượng kênh dàn lọc đã qua bước tính logarit Kếtquả của bước này là 13 hệ số phổ (cepstral) :
với 0 ≤ i ≤ 12 (2.10)
Phép biến đổi DCT trên nhằm phục vụ 2 mục đích:
- Thứ nhất, quá trình biến đổi tín hiệu tiếng nói từ đầu cho đến trước bước này đãphân tách tín hiệu theo kiểu: các hệ số bậc thấp thể hiện các dải âm biến đổichậm (vocal tract), còn các hệ số bậc cao biểu diễn các thành phần âm biến đổinhanh Do đó, để tạo vector MFCC cuối cùng, vector đầu ra của khối DCT bịcắt bớt chỉ còn 13 hệ số bậc thấp (từ C0 đến C12)
- Thứ hai, phép DCT có vai trò ‘phản tương quan’ các phần tử của vector đặctính Nguyên nhân là do các vector biểu diễn năng lượng dải lọc tiềm tàng cácthành phần tương quan do những đặc thù của tiếng nói cũng như sự chồng lấncủa các bộ lọc Nhờ vậy, DCT giúp tránh tính toán phức tạp khi mô hình hóacác vector đặc tính bằng mô hình Markov ẩn sau này
Đầu ra của khối trích chọn đặc trưng là vector đặc trưng gồm có 14 hệ số: hệ sốlogE và 13 hệ số phổ cepstral Hệ số C0 thường dư ra nếu hệ số logE được sử dụng
Do đó, tùy vào từng ứng dụng cụ thể mà C0 hay logE được dùng cho khối back-end
Trang 26Tập các vector huấn luyện
Di,j
Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
với c(m)= [c1(m), c2(m) c3(m) c12(m)]T, m là số thứ tự khung
- Lượng tử hóa vector:
Kết quả của quá trình trích chọn đặc trưng là tập các vector với đặc tính biến đổitheo thời gian Vì vậy nếu sử dụng mô hình HMM với mật độ ký tự quan sát rời rạc
ta phải tiến hành lượng tử hóa vector Lượng tử hóa vector là phương pháp ánh xạ
các vector quan sát liên tục thành các chỉ số bảng mã (codebook) rời rạc Hay nói
cách khác lượng tử hóa vector là quá trình ghép các vector phổ xấp xỉ nhau vàotừng nhóm Mỗi nhóm đặc trưng bởi vector trung tâm có khả năng biểu diễn tốt
nhất cho nhóm vector phổ gọi là từ mã (codeword) và bảng mã là tập các từ mã sau
quá trình lượng tử hóa
Hình 2.1 Các bước lượng tử hoá vector
Chọn tập các vector huấn luyện
- Một lượng lớn các vector phân tích phổ v1, v2, … , vL được chọn để huấn luyện Nếubảng mã có kích cỡ là M = 2B ( B bit cho mỗi từ mã) thì L >> M Thông thườngtrong thực tế ta chọn L ít nhất là 10M
Thủ tục bó cụm sử dụng thuật toán K-mean
- Để chuyển L vector thành M cụm ta thực hiện các bước sau đây :
+ Bước 1 : Chọn bất kỳ M vector coi như là từ mã ban đầu
+ Bước 2 : Với mỗi vector huấn luyện, tìm từ mã gần nhất ( thường xét bằng
Trang 27Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
+ Bước 3 : Cập nhật bảng mã Bảng mã mới sẽ là vector huấn luyện trung tâm hiệntại của ô
+ Bước 4 : Lặp lại các bước 2,3 cho đến khi khoảng cách phổ trung bình giảmxuống mức ngưỡng cho trước
- Ngoài ra để tăng độ chính xác của bảng mã người ta sử dụng thuật toán phân chianhị phân như sau :
+ Bước 1 : Thiết kế 1 vector bảng mã
+ Bước 2 : Nhân đôi kích cỡ bảng mã bằng cách phân chia từng bảng mã yn hiện tạitheo luật sau :
+ Bước 4 : Lặp lại bước 2,3 cho đến khi đạt được M vector bảng mã
Thủ tục phân loại vector
- Với codeword ym M vector bảng mã, và vector được phân loại là v, thìchỉ số của bảng mã m*là :
2.3 Thuật toán Advanced front-end (ETSI DSR ES 202 050)
2.3.1 Giới thiệu
Thuật toán trích chọn đặc trưng được trình bày ở mục trước là phương phápcăn bản để trích chọn các vector MFCC thỏa mãn được các tiêu chuẩn về hiệu suấttrong môi trường sạch Tuy nhiên để đạt được độ chính xác cao khi nhận dạng tiếngnói trong các mỗi trường bất lợi, nơi tồn tại cả nhiễu nền lẫn méo kênh thì thuậttoán cần phải được cải tiến thêm Đó là lý do ETSI đề xuất chuẩn DSR thứ hai –Advanced front-end (AFE) , số hiệu là ES 202 050 [5]– vào năm 2007 Chuẩn mớinày, ngoài những xử lý giống SFE, còn bổ sung vào khối trích chọn đặc trưng hai
Trang 28Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
khối xử lý nhỏ nữa, gồm khối giảm nhiễu và khối cân bằng kênh Kết quả là AFEgiúp giảm trung bình 53% tỉ lệ nhận dạng sai so với SFE khi áp dụng lần lượt haiphương pháp trong môi trường nhiễu
2.3.2 Mô tả thuật toán Advanced Front-end
Hình 2.2 Sơ đồ khối front-end
2.3.3 Khối giảm nhiễu
Trang 29Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
với
Sau đó, các mẫu 0 được độn thêm vào để số mẫu trong của sổ đạt đến con số NFFT -1với NFFT=256=chiều dài của biến đổi FFT:
Để có phổ tín hiệu của mỗi khung, phép biến đổi FFT được áp dụng cho tín hiệu
sFFT(n) vừa tìm được: X(bin)= FFT{sFFT(n)} với bin là chỉ số của các tần số củaFFT
Phổ công suất của mỗi khung P(bin) :
P(bin)=|X(bin)| 2
, với 0 ≤ bin ≤ NFFT/2 (2.13)P(bin) sau đó được làm mịn bằng công thức:
,với 0 ≤ bin ≤ NFFT/4 (2.14)
Pin(NFFT/4) = Pin(NFFT/2)Sau khi làm mịn phổ công suất, chiều dài phổ bây giờ giảm xuống chỉ còn
NSPEC=NFFT/4+1
2.3.3.3 Tính trung bình phổ công suất
, với 0 ≤ bin ≤ NSPEC -1 (2.15)Trong đó t là chỉ số của khung và TPSD=2
Mục đích của bộ lọc Wiener là tìm một hàm độ lợi tuyến tính G(k) sao cho :
E{(|S t (k) - G t (k).Y t (k)|) 2 } = E{(|S t (k) - S ^
t (k)|) 2 }
có giá trị bé nhất, trong đó S ^
t (k)=G t (k).Y t (k), (với t là chỉ số của khung ta đang xử
lý) là tín hiệu sạch ước lượng được (chú ý: E{ } nghĩa là toán tử kì vọng thống kê).Gọi là phổ công suất của tín hiệu sạch ước lượng, là phổ công suất của nhiễu ướclượng được trong khung thứ t, đáp ứng tần số của bộ lọc Wiener được tính bởi côngthức sau:
Trang 30Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Gọi
Trong đó S(ω) và N(ω) lần lượt là phổ của tín hiệu sạch và phổ nhiễu và các giá
trị này không có sẵn mà phải được ước lượng như sau:
- Phổ của tín hiệu nhiễu nền được ước lượng bằng cách sử dụng một bộ lọc hồiquy bậc 1 trong những khung được xác định không phải tiếng nói:
(2.18)
- SNRpri được ước lượng bởi công thức:
(2.19) Trong đó:
λ là hệ số dùng để cập nhật phổ của nhiễu, α là hệ số làm mịn Hàm max(z) là hàm
chỉnh lưu bán sóng, nhằm chống tín hiệu có biên độ âm, có đặc điểm sau:
Hàm truyền đạt của bộ lọc Wiener được tính bởi công thức:
Để ý rằng 0 < G t (k) < 1, khi SNR pri à 0 thì Gt (k) à 0 và khi SNR pri à∞ thì G t (k)à1.
Điều đó có nghĩa rằng bộ lọc Wiener đã nhấn mạnh những thành phần phổ có SNRcao, và làm nhỏ hóa những thành phần phổ có SNR thấp
Phổ biên độ của tín hiệu sạch được tính bằng cách nhân tín hiệu bị nhiễu ban đầuvới hàm độ lợi:
2.3.3.4.2 Thiết kế bộ lọc Wiener hai tầng
Từ lý thuyết về bộ lọc Wiener được giới thiệu ở trên, ETSI đã áp dụng để xây dựng nên một bộ lọc Wiener với 2 tầng lọc theo thang Mel có cách thức hoạt động như miêu tả dưới đây:
Trang 31Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
(2.22)Trong đó EPS= 10-10, t là chỉ số của khung hiện tại đang xử lý, tn là chỉ số của khunggần nhất không phải tiếng nói, là đầu ra của khối tính mật độ phổ công suất trung bình, và giá trị khởi tạo của là EPS
Phổ tín hiệu sạch được ước lượng theo biểu thức:
(2.23)Trong đó , và β= 0.98
Tính SNRpri lần thứ nhất:
Tính hàm truyền đạt của bộ lọc lần một:
Hàm H(bin,t) sau đó được sử dụng để cải thiện phổ tín hiệu ước lượng:
(2.26)Tiếp đến, SNRpri tiếp tục được cải thiện thêm một lần nữa:
(2.27)Với SNRth=0.079432823 (tương ứng với mức SNR = - 22 dB)
SNRpri2 sau đó được dùng để tính hàm truyền đạt của bộ lọc lần 2:
, với 0 ≤ bin ≤ NSPEC -1 2.28)Cuối cùng, giá trị H2(bin,t) được áp dụng vào công thức tính phổ tín hiệu sạch cho ởdưới đây, và sẽ được dùng để tính toán cho khung tiếp theo:
(2.29)
2.3.3.5 Kĩ thuật phát hiện tiếng nói VAD ESTI- Nest
VAD – hay phát hiện tiếng nói – là quá trình xử lý nhằm phần biệt khi nào có hoạt động của tiếng nói và khi nào không (im lặng) Các tín hiệu vào được phân ra thành các khung có thời khoảng nhỏ do trong các khung này, tín hiệu xem như biến đổi chậm nên sẽ dễ dàng hơn cho việc phát hiện tiếng nói Một khung được xác định là có tiếng nói thì VAD = 1, còn nếu nó là khoảng lặng thì VAD = 0
Nguyên tắc hoạt động của VAD:
Trang 32Tính năng lượng từng khung
Cập nhật năng lượng trung bình
Tính sai khác năng lượng từng khung và năng lượng trung bình
Sai khácvượt ngưỡng?
Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Nhiễu sẽ được ước lượng lúc ban đầu bằng cách lấy trung bình biên độ phổ của tín hiệu bị lẫn nhiễu Y(k) qua các khung đã duyệt:
(2.30)Tiếp đến , giá trị trung bình này được cập nhật, đồng thời tính sai lệch giữa nó vớimức năng lượng của từng khung rồi đem so sánh với giá trị ngưỡng để có thể kếtluận khung đó có phải tiếng nói hay không
VAD ETSI-Nest do ETSI đề xuất là kỹ thuật VAD đơn giản, được thực hiệndựa trên việc tính toán năng lượng Sơ đồ khối của ETSI-Nest được trình bày tronghình 2.3 bên dưới
Hình 2.4 Sơ đồ khối VAD ETSI-Nest
Trong đó, năng lượng loga thời đoạn ngắn của từng khung chứa 80 mẫu được tínhtheo công thức:
Tín hiệu đã được phân khung
Trang 33Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Với M =80 và sin(n) là tín hiệu vào
Năng lượng frameEn dùng để cập nhật mức năng lượng trung bình meanEn, sau đótính toán chênh lệch giữa 2 mức năng lượng frameEn và meanEn rồi so sánh vớimột ngưỡng nhằm xác định khung đó là tiếng nói hay không phải tiếng nói Ngoài
ra, thuật toán còn có làm mịn để đưa ra vector VAD cuối cùng
2.3.3.6 Dải lọc Mel
Hệ số của bộ lọc Wiener tần số tuyến tính H2(bin) với đượclàm mịn và chuyển qua thang tần số - Mel sử dụng công thức:
(2.32)Suy ra: với KFB=23 và fsamp=8000Hz
Đầu ra của khối này là các hệ số bộ lọc Wiener thang Mel H2_mel(k) với 0 ≤ k ≤
KFB+1
2.3.3.7 Tìm độ lợi
Mục đích của khối này là tăng vai trò của quá trình giảm nhiễu với các framechỉ có tín hiệu nhiễu và giảm vai trò của quá trình giảm nhiễu với frame chứa tínhiệu tiếng nói Độ lợi của bộ lọc Wiener tầng 2 sẽ được nhân với hệ số : với 0 ≤ k ≤ KFB+1
(2.33)
có giá trị từ 0,1 0,8, có nghĩa là với những frame có nhiễu và tiếng nói thìvai trò của bộ lọc Wiener tầng 2 sẽ giảm đi 10% , với những frame chỉ có nhiễu thì
độ lợi giảm 80%
2.3.3.8 Biến đổi cosine ngược
Đáp ứng xung của bộ lọc Wiener h WF (n) được tính từ H 2 _ mel (k) bằng phép biến
đổi cosine ngược IDCT:
với 0 ≤ k ≤ KFB+1 (2.34)
Đáp ứng xung của bộ lọc Wiener:
Trang 34Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
2.3.3.9 Thực hiện bộ lọc
Đáp ứng xung nhân quả hWF_caus (n,t) được suy từ hWF_mirr theo mối quan hệ:
Đáp ứng xung này sau đó được cắt bớt đi:
, n=0,1, , FL-1
(2.35)Với FL=17 Đáp ứng xung hWF_trunc được lấy trọng số bởi cửa số Hamming:
2.3.4 Cân bằng kênh với thuật toán cân bằng mù
Méo kênh truyền có thể làm giảm đáng kể độ chính xác nhận dạng, nên các bộcân bằng kênh thường được áp dụng để chống méo kênh Trong đó cân bằng mù làphương pháp được sử dụng để khôi phục tín hiệu bị méo trong trường hợp đáp ứngkênh truyền không xác đinh và biến đổi theo thời gian, không tuyến tính Hiệu quảcủa cân bằng mù phụ thuộc vào sự hiểu biết về đặc tính thống kê và đặc điểm củakênh truyền ETSI AFE sử dụng thuật toán cân bằng mù LMS- hay bình phươngtrung bình bé nhất để bù lại các tác động không mong muốn lên kênh truyền
2.4 Các thuật toán nén nhiễu dùng trong tầng tiền xử lý
2.4.1 Kĩ thuật tối ưu MMSE
Trang 35Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Sau khi được phân khung, lấy cửa sổ và tính FFT, tín hiệu có dạng:
Y(k) = S(k) + N(k)
Phương pháp tối thiểu bình phương độ lệch trung bình, hay MMSE, có nhiệm
vụ ước lượng (k) sao cho giống với S(k) nhất có thể, với Y(k) cho trước, tức là tìmđược giá trị nhỏ nhất của:
E{[S(k) - (k)]2}Việc này đồng nghĩa với việc đi tìm hàm độ lợi phổ G tối ưu nhất sao cho
G(k) = (k) / Y(k) Từ hướng tiếp cận này, người ta đưa ra một số định nghĩa nhằmphục vụ cho việc ước lượng G, như SNRpri và SNRpost với :
và
Lý thuyết MMSE sẽ được áp dụng để xây dựng các thuật toán như đã giới thiệu ởtrên, sơ đồ khối dùng chung cho các thuật toán này có dạng như hình 2.4 [6]
Hình 2.5 Sơ đồ khối thuật toán MMSE
Từ hình trên có thể thấy việc nén nhiễu sẽ chỉ được thực hiện đối với phổ biên độcủa tín hiệu bị nhiễu, còn phổ pha sẽ được giữ nguyên vì phổ pha ảnh hưởng khôngđáng kể đến tính dễ hiểu và chất lượng của tiếng nói
2.4.2 Thuật toán MMSE-STSA
Thuật toán MMSE-STSA được đề xuất lần đầu vào năm 1984 [7] bởi Ephraim
và Malah nhằm cải thiện tiếng nói bị ảnh hưởng bởi các thành phần nhiễu cộngkhông tương quan với nó Đây là một dạng giải thuật tối thiểu giá trị bình phươngtrung bình độ lệch (MMSE), và sử dụng phương pháp ước lượng biên độ phổ thờigian ngắn để cải thiện tiếng nói Có hai phiên bản của thuật toán này, bao gồm:
Trang 36Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
2.4.2.1 MMSE-STSA 84
SNRpost và SNRpri được định nghĩa bởi công thức:
Trong đó t biểu thị cho số thứ tự của khung và k biểu thị cho chỉ số của tần số FFT.Tuy nhiên, Nt(k) không có sẵn, nên nó được ước lượng bằng cách lấy trung bìnhphổ công suất của tín hiệu bị nhiễu trong vùng khởi đầu của tín hiệu, nơi không xuấthiện tiếng nói
Nhờ vào , ta có thể ước lượng gần đúng SNRpri bằng thuật toán ”quyết định trựctiếp” (decision-directed), ở đó được cập nhật dựa trên giá trị biên độ tín hiệu đãđược ước lượng trước đó
SNRpri liên hệ với SNRpost theo công thức sau:
(2.38)
Từ (2.37) và (2.38) có thể suy ra:
Giá trị SNRpri được ước lượng theo đề xuất sau:
Và ta có thể xem như
Từ đó, tín hiệu sạch ước lượng có dạng:
G t (k) là hàm độ lợi phổ, được tính toán dựa trên và như sau:
Trang 37Chương 2: Khối Front-end và các thuật toán giảm nhiễu để tăng hiệu suất bộ nhận dạng
Thuật toán này được đề xuất vào năm 1985 [8], cũng bởi hai tác giả Ephraim
và Malah, về nguyên tắc cũng giống với phiên bản trước đó, nhưng làm việc dựatrên phép tính logarit của phổ tín hiệu Nghĩa là bình phương trung bình độ lệchtheo thang logarit giữa tín hiệu sạch và tín hiệu đã ước lượng được tối thiểu hóa:
Theo đó sẽ được ước lượng theo kiểu:
Từ đó cho ra kết quả:
Với hàm độ lợi Gt(k) có dạng:
Cần phải để ý rằng hàm Gt(k) ở công thức trên sẽ cho độ lợi thấp hơn một chút
so với độ lợi cho bởi hàm Gt(k) tìm được ở thuật toán MMSE-STSA 84 Bởi theobất đẳng thức Jensen thì:
Tuy nhiên, phương pháp này được cho là phù hợp với xử lý tiếng nói bởi nó tạo ra mức nhiễu dư thấp hơn mà không ảnh hưởng nhiều đến bản thân tiếng nói
2.4.3 Thuật toán MMSE_MS
Các thuật toán giảm nhiễu ở trên đều sử dụng VAD để ước lượng phổ củanhiễu nhưng VAD lại tỏ ra không hiệu quả nếu SNR thấp Ngoài ra thuật toán này
có những hạn chế trong cập nhận giá trị ước lượng nhiễu trong khoáng thời giankhông có tín hiệu tiếng nói
Năm 2001, Martin đưa ra lý thuyết ước lượng nhiễu mới dựa trên việc bámtheo giá trị cực tiểu của tín hiệu tiếng nói có nhiễu trong cửa số xác định [9] Giá trịnày thường nhỏ hơn giá trị trung bình, vì thế giá trị ước lượng của phổ nhiễu sẽđược nhân với hệ số bù chênh lệch Nhược điểm của thuật toán này là cửa sổ ướclượng nhiễu phải lớn trong trường hợp giá trị nhiễu tăng lên đột ngột Điều nàyđược khắc phục bằng cách sử dụng hệ số làm mịn và hệ số bù chênh lệch trongmiền thời gian và tần số