Đây là kết quả mà bộ ngôn ngữ phát sinh được cuối cùng để đưa vào sử dụng trong bộ giải mã. Độ thị tìm kiếm này là một đồ thị có hướng, trong đó mỗi nút được gọi là một trạng thái tìm kiếm (SearchState): biểu diễn một trong hai trạng thái: phát hoặc không phát (emitting state hay non-emitting state). Và các đường cung biểu diễn các trạng thái biến đổi có thể, trên các cùng này có các giá trị xác suất được tình toán từ mô hình âm học: biểu diễn khả năng chuyển từ trạng thái này đến trạng thái kia. Một trạng thái có thể có nhiều cung hướng đến trạng thái khác.
3.2.3.3. Bộ giải mã – Decoder
Chức năng : Bộ giải mã có nhiệm vụ chính là sử dụng các đặc trưng (Features) từ bộ ngoại vi kết hợp với đồ thị tìm kiếm được phát sinh từ bộ ngôn ngữ để tiến hành giải mà và áp dụng các thuật toán suy ra kết quả nhận dạng
Cấu tạo: Thành phần của bộ này tuy đơn giản nhưng rất phức tạp về thuật toán vì ảnh hưởng tới tốc độ tìm kiếm, gồm một thành phần quản lý tìm kiếm (SearchManager) có khả năng tháo lắp và các mã hỗ trợ khác để đơn giản hóa quá trình giải mã cho một ứng dụng. Nên trong báo cáo chỉ trung giới thiệu thành phần quản lý tìm kiếm.
Nhiệm vụ của thành phần quản lý tìm kiếm là nhận dạng các tập các vecto đặc trưng để tìm ra ánh xạ tương ứng của nó trong đồ thị tìm kiếm. Để đáp ứng tìm ra kết quả chính xác trong đồ thị tìm kiếm khi xử lý kết quả, Sphinx cung cấp các tiện ích có khả năng phát sinh lưới và các đánh giá độ tin cậy từ kết quả. Và thêm đặc điểm nữa khác các hệ thống khác là không gian tìm kiếm trong Sphinx có thể được tinh chỉnh thay đổi trong quá tình tìm kiếm để tăng hiệu suất tìm kiếm.
Ngoài ra để nâng cao hiệu suất của kết quả nhận dạng, Sphinx con bổ sung thêm các công cụ hỗ trợ cho việc đánh giá kết quả nhận được, đó là thành phần đánh giá (Scorer) và thành phần cắt tỉa (Pruner). Nói về thành phần Scorer thì nó là một module dùng để ước lượng xác suất của trạng thái khi cung cấp các giá trị mật độ trạng thái xuất hiện. Khi thành phần quản lý tìm kiếm yêu cầu đánh giá điểm số cho một trạng thái, nó sẽ gọi đến thành phần Scorer, nó sẽ phân tích các thông tin đặc trưng của trạng thái đó rồi áp dụng các phép toán để tính điểm số.
CHƯƠNG 4.XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 4.1. Cài đặt Sphinx 4.1. Cài đặt Sphinx
4.1.1. Chuẩn bị hệ điều hành
Linux là môi trường hệ điều hành thích hợp nhất để cài đặt Sphinx và thực hiện huấn luyện. Trong các hệ điều hành Linux thì Ubuntu được xem như là hệ điều hành phổ biến. Sphinx dễ dàng được cài đặt trong hệ điều hành Ubuntu, nhóm từng thử cài đặt trong Windows dùng CYGWIN [10] nhưng chưa thành công.
4.1.2. Chuẩn bị các gói cài đặt Sphinx
Các gói bao gồm:
Pocketsphinx —một thư viện nhận dạng viết bằng ngôn ngữ C.
Sphinxbase — gói thư viện nền, hỗ trợ các thư viện cần thiết cho các gói khác
Sphinx4 — gói hỗ trợ nhận dạng viết bằng java
CMUclmtk — bộ công cụ xây dựng mô hình ngôn ngữ
Sphinxtrain — bô công cụ huấn luyện mô hình ngữ âm
Các gói cài đặt có thể được tải trực tiếp từ trang chủ của CMU Sphinx [11]
4.1.3. Cài đặt Sphinx
Tạo một thư mục tên sphinx trong Home folder (trong máy ảo Ubuntu). Chép các file (Sphinxbase, Sphinxtrain, Pocketsphinx, CMUclmtk) vừa download trong mục trên vào đó, giải nén. (lưu ý xóa đi chỉ số version sau khi extract).
Sử dụng cửa sổ Terminal trong Ubuntu: Ctrl+Atl+t.
Nhập vào sudo apt-get update sau đó nhập vào password của root user (password sẽ không hiện lên, nhập cẩn thận và nhấn Enter). Lệnh trên để update chẩn bị cho các gói cài đặt cần dùng bằng lệnh apt-get. Chờ update xong, nhập vào: cd sphinx để di chuyển tới thư mục sphinx vừa tạo.
Cài đặt các gói cần thiết trước khi cài SphinxBase: Gõ các lệnh:
sudo apt-get install bison, đồng ý để tải và cài bison sudo apt-get install autoconf
sudo apt-get install automake
a. Cài đặt SphinxBase
Nhập: cd sphinxbase để đi vào thư mục sphinxbase. Gõ các lệnh sau và chờ thi hành:
./autogen.sh
./configure
make
sudo make install b. Cài đặt Sphinxtrain
Từ thư mục sphinxbase ở trên, gõ lệnh để chuyển sang thư mục sang thư mục sphinctrain : cd ../sphinxtrain. Gõ các lệnh sau và chờ thi hành:
./configure
make
sudo make install c. Cài đặt PocketSphinx
Chuyển sang thự mục pocketsphinx, gõ các lệnh sau và chờ thi hành: ./autogen.sh
./configure
make
sudo make install
gõ tiếp lệnh sau vào Terminal: sudo ldconfig đề hệ điều hành thực hiện cập nhật các thực viện động.
Hình 4.1 Thư mục “sphinx” chứa các file vừa tải và các thư mục sau khi đã giải nén, đổi tên
4.2. Chuẩn bị bộ huấn luyện cho Sphinx
Tạo một thư mục huấn luyện, mang tên gì đó có ý nghĩa cho bộ dữ liệu huấn luyện, ví dụ: “docso”.
Trong đó tạo 2 thư mục con là etc, wav. Sau đó tạo các file như cấu trúc sau:
etc
|___ your_db.dic - bộ tự điển âm vị, âm tiết
|___ your_db.phone - file chứa danh sách các âm vị
|___ your_db.lm.DMP - Mô hình ngôn ngữ
|___ your_db.filler - Danh sách các khoảng lặng
|___ your_db_train.fileids - Danh sách các file huấn luyện
|___ your_db_train.transcription – Dữ liệu dạng text của file huấn luyện
|___ your_db_test.fileids - Danh sách các fille test
|___ your_db_test.transcription - Bản text của file test
wav
|___ speaker_1
|___ … |___ speaker_2
|___ file_2.wav