Xây dựng và huấn luyện và thử nghiệm các mạng có cấu trúc khác nhau (về
số nơron ẩn, kiểu hàm kích hoạt) được tiến hành bằng script sau:
clc;
hnode=0; kq=[]; mac=0; i=0; while hnode<150
hnode=hnode+5 % tăng hnode theo bước 5
main % thử nghiệm mạng if mac < ac % ghi nhận mạng tốt hơn mac = ac; best = net; end; i=i+1;
netkq{i} = net; % ghi lại tất cả các mạng
end;
Trong đó script main thực hiện khởi tạo, huấn luyện và kiểm tra mạng:
net = mlp(inode, hnode, onode, func, anpha); % tạo MLP
[net err]=mlptrain(net, xtrain, target, loop); % train
ytest = mlpfwd(net, xtest); % tính đầu ra bộ test
ac = TestANN(ytest, numid(test)); % tính độ chính xác
kq =[kq; ac];
Các tham số mạng nhưfunc (kiểu hàm kích hoạt), anpha (cận khởi tạo trọng số),
loop (số vòng lặp huấn luyện) được thay đổi theo mỗi cấu trúc mạng.
Hàm TestANN dùng tính số từ được nhận dạng chính xác dựa trên đầu ra tương ứng với đầu vào của bộ bộ dữ liệu kiểm tra.
function [ac, qt] = TestANN(yte, numid) qt=[]; ac=0; i=0;
while i<length(yte) i=i+1;
kc = yte(i,:);
[mi id] = max(kc); % xác định lớp xác suất cao nhất
if id == numid(i) % nếu là chỉ số lớp tương ứng ac = ac + 1; % => nhận dạng đúng end; qt = [qt; i id numid(i) mi ac kc]; end; ac = ac / length(yte); %độ chính xác=số từ đúng/tổng 5.1.8. Sử dụng mạng trong nhận dạng
function [id, xs, out] = ANNrecognize(wav,net); mfc = wave2mfcc(wav); % trích MFCC
vec = vecavr(mfc,5); % tính đầu vào
out = mlpfwd(net,vec); % tính đầu ra của mạng
[xs id] = max(out); % đưa ra lớp cao nhất
5.1.9. Giao diện phần mềm demo
Phần mềm demo có thể nhận dạng cả trực tuyến (vừa ghi âm vừa nhận dạng) và ngoại tuyến (nhận dạng file được ghi âm sẵn). Mỗi lần chỉ nhận dạng được một từ. Nhìn chung nhận dạng ngoại tuyến cho kết quả cao hơn vì hàm cắt khoảng lặng của phần mềm demo có độ chính xác chưa cao.
5.2. KẾT QUẢ THỬ NGHIỆM
Kết quả quá trình thử nghiệm được tổng hợp trong bảng sau:
Bảng kết quả thử nghiệm:
Bộ dữ liệu 5 người nói Số từ dùng huấn luyện: 268
Số từ dùng kiểm tra: 268
Độ chính xác=số từ nhận dạng đúng/tổng số từ trong bộ dữ liệu kiểm tra.
hnode sig01-50 sig01-100 sig05-50 smx01-50 smx01-100 smx05-50
5 27.61% 22.02% 20.52% 35.08% 60.45% 42.54% 10 53.36% 81.34% 37.31% 88.81% 90.30% 87.69% 15 82.46% 89.18% 89.18% 94.03% 92.16% 89.93% 20 66.42% 76.87% 86.57% 95.15% 94.03% 95.52% 25 92.16% 96.64% 88.06% 95.52% 96.64% 94.78% 30 94.78% 92.91% 93.28% 97.39% 92.91% 94.78% 35 94.40% 94.78% 93.28% 95.15% 96.27% 95.52% 40 94.40% 97.02% 95.52% 98.13% 97.76% 97.02% 45 94.03% 97.39% 95.90% 95.52% 97.76% 97.76% 50 96.27% 97.02% 97.39% 97.39% 97.39% 97.76% 55 94.78% 96.64% 97.39% 98.13% 97.76% 97.76% 60 97.02% 97.76% 97.02% 98.51% 98.88% 96.64% 65 98.51% 97.39% 96.64% 97.76% 98.88% 97.76% 70 97.02% 97.02% 97.76% 97.76% 98.51% 97.76% 75 98.13% 97.39% 97.39% 98.51% 97.39% 96.64% 80 95.90% 98.51% 96.64% 98.88% 98.88% 96.64% 85 97.76% 97.02% 98.51% 98.13% 98.88% 98.88% 90 98.13% 98.51% 98.13% 98.51% 98.51% 97.76% 95 98.51% 98.88% 96.27% 97.39% 98.88% 99.25% 100 97.76% 98.88% 98.51% 98.13% 98.13% 98.13% 105 97.39% 97.76% 97.39% 98.51% 98.51% 98.13% 110 98.51% 98.51% 98.13% 98.51% 98.13% 98.51% 115 97.39% 99.25% 97.39% 97.39% 98.13% 98.13% 120 98.13% 98.13% 98.13% 98.13% 97.39% 99.25% 125 98.51% 98.51% 98.13% 98.51% 98.13% 97.76% 130 97.76% 98.51% 97.76% 97.76% 98.51% 98.51% 135 98.88% 98.51% 98.13% 98.13% 98.51% 97.76% 140 97.39% 98.13% 97.76% 98.88% 98.51% 98.51% 145 99.25% 98.88% 98.51% 97.02% 98.88% 98.13% 150 97.76% 98.13% 98.13% 97.76% 98.13% 98.51% T.B. 91.68% 93.58% 91.69% 95.15% 96.11% 95.12%
Trong đó hnode là số nơron lớp ẩn, ứng với mỗi kiểu mạng như sau:
Kí hiệu Hàm kích hoạt Giá trị khởi
tạo trọng số Shuốấ vòng ln luyệặn p
sig01-50 sigmoid (logistic) 0.1 50
sig01-100 sigmoid (logistic) 0.1 100
sig05-50 sigmoid (logistic) 0.5 50
smx01-50 softmax 0.1 50
smx01-100 softmax 0.1 100
smx05-50 softmax 0.5 50
Biểu đồ sau thể hiện kết quả nhận dạng theo số nơron lớp ẩn trong 2 kiểu mạng cho kết quả cao nhất. 75% 80% 85% 90% 95% 100% 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 sig01-100 smx05-50
Từ kết quả thử nghiệm, chúng tôi rút ra một số kết luận sau:
1. Phương pháp nhận dạng bằng mạng nơron cho kết quả nhận dạng cao nhất là 99.25% trên bộ dữ liệu do chúng tôi tự xây dựng. Như
vậy có thể sử dụng mạng nơron làm một cơ cấu nhận dạng hiệu quả, ít nhất là đối với hệ thống nhận dạng chữ số.
2. Mạng sẽ cho kết quả nhận dạng cao nếu xây dựng hợp lí. Không hẳn cứ nhiều nơron lớp ẩn, cứ huấn luyện nhiều là mạng có độ chính xác cao hơn. (Mặc dù điều đó làm giảm sai số huấn luyện của mạng). Vấn đề sai số huấn luyện thấp, sai số kiểm tra cao xảy ra khi độ tương
tự giữa bộ dữ liệu huấn luyện và bộ dữ liệu kiểm tra không lớn. Khi đó mạng nhận dạng rất chính xác trên bộ dữ liệu huấn luyện nhưng kém chính xác hơn nhiều trên bộ dữ liệu kiểm tra.
3. Hàm kích hoạt softmax hiệu quả hơn hàm sigmoid. (Kết quả nhận dạng trung bình cao hơn, số nơron ẩn cần dùng thấp hơn khi cho kết quả nhận dạng cao nhất).
4. Môi trường Matlab có thể giúp công việc nghiên cứu nhận dạng tiếng nói đơn giản và hiệu quả hơn. Nhờ có Matlab và các bộ công cụ VoiceBox, NetLab mà việc phát triển hệ thống nhận dạng khá đơn giản và nhanh chóng (ví dụ: mã chương trình dùng rất ít lệnh, nhiều phần không cần lập trình).
Những kết luận trên cho thấy khả năng sử dụng mạng nơron và môi trường Matlab trong nhận dạng tiếng nói có nhiều hứa hẹn. Tuy nhiên để đạt được điều
đó thì phải xây dựng một bộ dữ liệu chuẩn và có chiến lược xây dựng, huấn luyện, thử nghiệm mạng hợp lí.
5.3. HƯỚNG MỞ RỘNG CỦA ĐỀ TÀI
5.3.1. Xây dựng bộ dữ liệu huấn luyện lớn hơn
Như ta đã thấy, bộ dữ liệu là thành phần cực kì quan trọng đối với hệ nhận dạng. Hiện tại bộ dữ liệu chúng tôi đã xây dựng (182 file, 11 từ, 2 người) là còn quá khiêm tốn. Để có thể có những kết quả nghiên cứu tốt hơn, chúng tôi sẽ mở
rộng bộ dữ liệu: tăng số người nói và số từ, đa dạng hoá môi trường ghi âm.
3.3.2. Xây dựng phần mềm nhận dạng dựa trên kết quả
nghiên cứu
Hệ thống nhận dạng hiện tại của chúng tôi hiện chỉ được thử nghiệm trên môi trường Matlab, mới có khả năng nhận dạng một file ghi âm sẵn của một từ
(nhận dạng từđơn, ngoại tuyến). Trong khi đó để hệ nhận dạng có thểứng dụng
được thì hệ phải hoạt động ở dạng trực tiếp và liên tục (tức là vừa ghi âm vừa nhận dạng, nhận dạng nhiều chữ số một lúc, chạy như một chương trình hệ
thống). Mục tiêu của chúng tôi là sau khi thử nghiệm hệ thống cho kết quả cao sẽ
xây dựng một bộ công cụ nhận dạng tiếng nói và các phần mềm ứng dụng, vì đó mới là mục đích của nghiên cứu nhận dạng tiếng nói.
Ở nghiên cứu này, việc tách đặc trưng của tín hiệu tiếng nói còn rất đơn giản (chia frame, tính MFCC, chia 5 phần lấy trung bình cộng). Để nâng cao kết quả nhận dạng cần tìm những đặc trưng ổn định hơn của tiếng nói và những phương pháp tách đặc trưng hiệu quả hơn.
5.3.4. Nghiên cứu các phương pháp nhận dạng khác
Các nghiên cứu khác ([1,9,10]) cho thấy hiện tại mô hình Markov ẩn (HMM) đang cho kết quả nhận dạng cao nhất. Hướng nghiên cứu mới của đề tài là tìm cách kết hợp mạng nơron và mô hình Markov ẩn nhằm kết hợp ưu điểm của hai mô hình.
Mặt khác, đối với bộ từ vựng nhỏ thì nhận dạng từ đơn (âm tiết) là thích hợp. Tuy nhiên với hệ nhận dạng cỡ lớn, nhất là hệ nhận dạng tiếng Việt hoàn chỉnh (6 nghìn âm tiết ) thì chọn đơn vị nhận dạng là âm tiết không hợp lí lắm. Một hướng nghiên cứu khác của đề tài là nhận dạng đối với đơn vị nhỏ hơn âm tiết là âm vị. Tức là xây dựng các hệ nhận dạng có chức năng:
• Phân biệt được nhiễu nền (khoảng lặng), phụ âm, nguyên âm.
• Nhận dạng phụ âm (phân biệt được các phụ âm khác nhau).
• Nhận dạng nguyên âm (phân biệt được các nguyên âm khác nhau).
P
PHHỤỤ LLỤỤCC11..DDAANNHHMMỤỤCCTTÀÀII LLIIỆỆUUTTHHAAMMKKHHẢẢOO
Kí hiệu Tác giả Tên tài liệu Ghi chú
[1] Đặng Ngọc Đức Mạng nơron và mô hình Markov ẩn trong nhận dạng tiếng Việt Luận án tiến sĩ [2] Nguyễn Hữu Tình, Lê Tấn Hùng, Phạm Ngọc Yến, Nguyễn Thị Lan Hương Cơ sở Matlab và ứng dụng Sách NXB KHKT -1999
[3] Đoàn Thiện Thuật Ngữ âm tiếng Việt Sách NXB ĐHQG
Hà Nội - 2003
[4] Nguyễn Thanh Thuỷ Nhập môn xử lý ảnh số Sách NXBKHKT
[5] Alpay Koç Acoustic feature analysis for
robust speech recognition
[6] John-Paul Hosom,
Ron Cole
A diphone-based digit
recognition system using neural networks
http://cslu.cse.ogi.e du/cslu
[7] John-Paul Hosom,
Ron Cole, Mark Fanty, Don Colton
Speech Recognition Using
Neural Networks Webpage thttp://cslu.cse.ogi.eại du/cslu
[8] Mehdi R. Zargham Computer Architecture
[9] Rabiner L.R A Tutorial on Hidden Markov
Models and Selected Applications in Speech Recognition Proceedings of IEEE, VOL.77, NO.2, FEB 1989 [10] Rabiner L.R, Huang
B. H Fundamentals of Speech Recognition
Sách NXB Prentice Hall - 1993
[11] Simon Haykin Neural Networks - A
comprehensive foundation Sách NXB Prentice Hall - 1998
[12] V.Mantha, R.Duncan, Y.Wu, J.Zhao
Implementation and analysis of speech recognition front-ends
ECE4773/Digital Signal Processing - 1998
[13] Joe Tebelskis Speech Recognition using
Neural Networks
P
PHHỤỤLLỤỤCC22..BBẢẢNNGGCCÁÁCCTTHHUUẬẬTTNNGGỮỮVVÀÀTTỪỪVVIIẾẾTTTTẮẮTT
Thuật ngữ Từ viết tắt Ý nghĩa
Artifactial Neural Network ANN Mạng nơron nhân tạo
Fast Fourier Transform FFT Biến đổi Fourier nhanh
Dicrette Cosine Transform DCT Biến đổi cosin rời rạc.
Hidden Markov Model HMM Mô hình Markov ẩn
Linear predictive code LPC Hế số dựđoán tuyến tính
Mel-scale Frequency Cepstral Coefficient
MFCC Hệ số cepstral độđo mel
Multi Layer Perceptron MLP Mạng perceptron truyền thẳng nhiều lớp
Speech Recognition SR,ASR Nhận dạng tiếng nói
Bias Ngưỡng kích hoạt Pattern Recognition Nhận dạng mẫu Likelihood Mức độ giống Similarity Mức độ tương tự Feature Đặc trưng Spectral, spectrum Phổ tín hiệu