Sau khi tiến hành phân tích và thiết kế bài toán cần thực hiện, tác giả bản luận văn này đã cố gắng cài đặt phần mềm thử nghiệm bằng ngôn ngữ C đ−ợc biên dịch trên nền Microsoft Visual C++. Tuy nhiên do hạn chế về thời gian và năng lực cá nhân, phần mềm đã cài đặt ch−a đ−ợc hoàn thiện cả về mặt giao diện lẫn sự vận hành. Trong ch−ơng này, tác giả xin giới thiệu về những gì đã thực hiện đ−ợc trong quá trình cài đặt phần mềm.
7.1 Khái quát về kết quả cài đặt
Nhìn một cách tổng thể, phần mềm hoạt động nh− sau:
• Bằng giao diện, ng−ời sử dụng mở (hoặc tạo mới) một file chứa mạng neuron (*.net).
• Ng−ời sử dụng nhập vào danh sách các file âm thanh (*.wav) và tiến hành xử lý tín hiệu để có đ−ợc các file tham số đặc tr−ng với cùng tên nh−ng có phần mở rộng khác (*.dat).
• Ng−ời sử dụng chọn các file âm thanh thuộc cùng một nguyên âm rồi thực hiện tạo các file chứa các giá trị đích (*.tag) t−ơng ứng với nguyên âm đó cho tất cả các file đ−ợc chọn. Các file *.tag cũng có cùng tên với các file âm thanh (*.wav).
• Ng−ời sử dụng chọn một tập hợp các cặp file tham số đặc tr−ng và file giá trị đích (mỗi cặp file có cùng tên và cùng t−ơng ứng với một file âm thanh). Tập hợp này có thể coi là tập hợp các ví dụ tích luỹ và tiếp theo là tiến hành tích luỹ mạng neuron (trong file đang mở (*.net)) theo thuật toán back- propagation. Trong thời gian tích luỹ, phần mềm sẽ dần thông báo trạng thái hoạt động cũng nh− kết quả đạt đ−ợc ra màn hình.
• Ng−ời sử dụng cũng chọn một tập hợp các cặp file nh− trên nh−ng tập hợp này đ−ợc coi là tập hợp các ví dụ kiểm tra. Mỗi vector feature trong file tham số đặc tr−ng sẽ đ−ợc tiến hành phân loại (nhận dạng) bằng mạng neuron trong file đang mở (*.net); kết quả phân loại sẽ đ−ợc đem so sánh với các giá trị đích để quyết định xem vector đó có đ−ợc phân loại đúng không. Cuối cùng tỷ lệ frame nhận dạng đúng cho từng loại nguyên âm sẽ đ−ợc thông báo lên màn hình.
7.2 Các modul đ∙ cài đặt
Vai trò và chức năng chung của tất cả các modul đã đ−ợc nêu ra trong thiết kế của phần mềm. D−ới đây tác giả xin trình bày một số chi tiết về cài đặt cho các modul.
7.2.1 Modul MainProg
Đây là modul ch−ơng trình chính, nó cung cấp những thủ tục sau cho phần giao diện:
/* Tạo nên một mạng neuron chuyên biệt */
void MakeInitNet(char* NetName, char* Dir, char* ParamDir, char* TargDir);
/* Tạo các file tham số chứa các giá trị đích cho các file âm thanh */
int MakeTarget(int NumFiles, char** WavFiles, char* TargFile);
/* Thực hiện quá trình tích luỹ */
void Training(char** inList1, int NumFiles, char* NetName, char* Dir,
char** EvalList1, int NumEvalFiles);
/* Thực hiện xử lý filter bank vμ tạo ra các file tham
số chứa các vector feature cho các file âm thanh */
void FilterBank(char** WavsList1, int NumWavs,
char* ParamsDir, char* WavsDir);
/* Thực hiện đánh giá tính năng nhận dạng */
void RunNet(char* NetName, char* Dir,
char** ParamsList1, int NumParams);
Tạo mạng neuron chuyên biệt Tạo các file chứa các giá trị đích Tích luỹ mạng neuron Các file âm thanh Kết quả tích luỹ Xử lý filter bank, tạo các file th/số đặc tr−ng Đánh giá tính năng nhận dạng Kết quả nhận dạng
Hình 7.1 Khái quát trình tự thi hành của phần mềm
Sau đây là chi tiết về ba thủ tục thực hiện chính:
void Training(char** inList1, int NumFiles,
char* NetName, char* Dir,
char** EvalList1, int NumEvalFiles,
int Numiters, float Threshold) {
Net *ann;
char** inList;
char** EvalList;
Mức đầu vào gồm các 13 nút nguồn Hai mức đạo hàm bậc nhất và bậc hai gồm 13 neuron tuyến tính (mỗi mức) Mức đầu ra gồm 5 neuron đầu ra cho