7.1. TỔNG KẾT NỘI DUNG
Sau đây là tổng hợp những đóng góp của tôi qua luận văn này:
Giới thiệu một số kỹ thuật tiêu biểu để có thể xây dựng một hệ thống nhận dạng tiếng nói hoàn chỉnh. Những kỹ thuật đó bao gồm, kỹ thuật trích chọn đặc trưng bằng phương pháp MFCC, các kỹ thuật nhận dạng theo tiếp cận thống kê (HMM) và theo tiếp cận đối sánh mẫu (DTW).
Xây dựng thành công một hệ thống nhận dạng tiếng nói đơn giản để minh họa, kiểm nghiệm tính đúng đắn của từng kỹ thuật, cũng như để so sánh tính hiệu quả của các kỹ thuật nhận dạng.
Những kết quả đạt được từ tiến hành thực nghiệm cũng như từ nghiên cứu lý thuyết, mặc dù chưa phải là thành tựu lớn lao nhưng nó đã giúp tôi có được cái nhìn cơ bản về nhận dạng tiếng nói, đồng thời tạo một nền tảng kiến thức để có thể thực hiện những nghiên cứu sâu hơn trong lĩnh vực này.
7.2. HƯỚNG PHÁT TRIỂN
Với những kết quả thu được sau nghiên cứu này, tôi xin đưa ra một số hướng phát triển tiếp theo như sau:
Kết quả thực nghiệm đã cho thấy kỹ thuật nhận dạng tiếng nói bằng mô hình Markov ẩn là rất tiềm năng. Tuy nhiên, HMM có rất nhiều biến thể, trong khi những lý thuyết đưa ra trong nghiên cứu này vẫn còn ở mức cơ sở. Vì vậy, nghiên cứu tiếp theo sẽ tập trung tìm hiểu một dạng HMM hiệu quả cho nhận dạng tiếng nói.
Tìm hiểu cách trích chọn đặc trưng cho tiếng Việt, vì tiếng Việt là ngôn ngữ có thanh điệu nên cần có đặc trưng thể hiện điều này.
Mặc dù đạt kết quả nhận dạng khá cao, nhưng thực nghiệm trên được thực hiện trên bộ dữ liệu tiếng nói nhỏ, của một người nói, nên chương trình thực nghiệm này chỉ mang tính kiểm tra, đánh giá các thuật toán chứ chưa có khả năng ứng dụng vào thực tế. Hơn nữa, hệ thống nhận dạng này sẽ hướng tới các bài toán trực tuyến, cụ thể là bài toán tìm kiếm thông tin trực tuyến bằng tiếng nói. Vì vây, chương trình cần được phát triển theo hướng mở rộng bộ từ vựng lên
khoảng trên 2000 từ tiếng Việt, đồng thời bộ dữ liệu huấn luyện sẽ được mở rộng để bao gồm giọng nói của nhiều người, cả nam và nữ.
PHỤ LỤC
MỘT SỐ LỚP CHÍNH TRONG CHƯƠNG TRÌNH THỰC NGHIỆM
Chương trình thực nghiệm được xây dựng bằng ngôn ngữ lập trình JAVA, bao gồm hai package chính:
Package sr.frontend bao gồm các class là cài đặt của quá trình trích chọn đặc trưng MFCC:
- AudioDataReader: bao gồm các phương thức hỗ trợ việc đọc file .wav - feature.AudioFrame: là thể hiện của một frame tín hiệu âm thanh
- feature.FeatureVector: là thể hiện của một vector đặc trưng sau khi đã trích chọn đặc trưng, bao gồm một mảng số thực chứa các giá trị của vector
- feature.WindowingProcessor: cài đặt của bước windowing, cắt tín hiệu âm thanh đầu vào ra thành những AudioFrame
- feature.DFTProcessor: cài đặt của bước biến đổi Fourier, thực hiện biến đổi Fourier nhanh đối với từng frame
- feature.MelFilterBankProcessor: thực hiện việc lọc tần số trên thang đo tần số Mel
- feature.DCTProcessor: thực hiện biến đổi cousine rời rạc trên từng frame - feature.FeatureExtractor: trích chọn các đặc trưng cơ bản cùng các đặc trưng
delta và double delta cho từng frame, trả về các FeatureVector. Số lượng đặc trưng sẽ trích chọn do người dùng thiết lập.
Package sr.core bao gồm các lớp:
- SRMath: bao gồm các phương thức hỗ trợ việc tính toán trong hệ thống, như tính toán logarit của các xác suất trong mô hình Markov ẩn[8].
- Dictionary: quản lý tập từ vựng cùng với phiên âm của từng từ
- HMMGraph: biểu diễn mô hình Markov ẩn cho một từ dựa vào phiên âm, cung cấp các phương thức để khởi tạo các tham số (A, B, �) khi huấn luyện
- trainer.TrainerDataReader: cung cấp các phương thức để đọc dữ liệu huấn luyện
- trainer.TrainerDataWriter: cung cấp các phương thức để ghi các tham số mô hình sau khi huấn luyện xong
- decoder.HMMDecoder: bộ nhận dạng sử dụng mô hình Markov ẩn, sử dụng thư viện mã nguồn mở JaHMM (http://code.google.com/p/jahmm)
- decoder.DTWDecoder: bộ nhận dạng sử dụng phương pháp đối sánh mẫu, cài đặt theo thuật toán so sánh thời gian động (DTW)