Sphinx 4 là một framework nhận dạng âm thanh đƣợc thiết kế khá đồ sộ và phức tạp. Nó bao gồm các thành phần đƣợc ghép nối rất linh động với nhau và đƣợc công cụ hóa thành các bộ phận có chức năng riêng. Các thành phần này có thể đƣợc chỉnh sửa và kết nối với nhau theo nhu cầu của ứng dụng mà không phá vỡ cấu trúc của hệ thống.
26
Có ba thành phần cơ bản tạo nên Sphinx 4 : Bộ ngoại vi (FrontEnd), Bộ giải mã (Decoder) và bộ ngôn ngữ (Linguist). Để dễ hình dung cách hoạt động tổng quát của Sphinx ta sẽ tìm hiểu sơ lƣợc các chức năng của các bộ phận trên. Bộ ngoại vi với các công cụ hỗ trợ cho việc thu nhận và tiền xửa lý các tín hiệu sẽ nhận và thực hiện tham số hóa chúng thành tập hợp các vecto đặc trƣng (Feature). Bộ ngôn ngữ sẽ có nhiệm vụ đọc vào các mô hình ngôn ngữ với các thông tin cách phát âm trong từ điển và thông tin cấu trúc của các mô hình âm học rồi mô hình hóa chúng vào một đồ thị tìm kiếm (Search Graph). Bộ phận còn lại là bộ giải mã (Decoder) có nhiệm vụ quan trọng nhất kết nối hai bộ phận còn lại. Cụ thể là thành phần quản lý tìm kiếm (Search Manager) trong bộ giải mã sẽ lấy các thông tin đặc trƣng từ bộ ngoại vi rồi kết hợp với đồ thị tìm kiếm đƣợc phát sinh từ bộ ngôn ngữ để giải mã và tính toán ra kết quả nhận dạng.
Khi xây dựng Sphinx, các nhà phát triển đã nghiên cứu khá kỹ về lĩnh vực âm học nên đã xây dựng một số lƣợng khá lớn các hiệu số cấu hình để hiệu chỉnh chung cho phù hợp với nhu cầu của ngôn ngữ và âm thanh khác
27
nhau. Chúng ta có thể thay đổi, điều chỉnh chúng nhƣ thay đổi các cách rút trích đặc trƣng, điều chỉnh các phƣơng pháp tìm kiếm,… trên file config của hệ thống mà không cần phải can thiệp sâu vào bên trong. Bên cạnh đó nó còn xây dựng các tool hỗ trợ cho qua trình nhận dạng nhƣ các tool huấn luyện, các tool giám sát và báo cáo hệ thống.