Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
1,12 MB
Nội dung
MỤC LỤC PHẦN I: TÌM HIỂU VỀ MẠNG NƠRON NHÂN TẠO Lịch sử phát triển .4 Khái niệm mạng nơron 2.1 Mạng nơron sinh học: 2.2 Mạng nơron nhân tạo: Cấu trúc mạng Nơron Kiến Trúc Mạng 4.1 Mạng Một Tầng 4.2 Mạng Đa Tầng 10 Các luật học .10 Các tính chất của mạng nowrron nhân tạo .14 Mơ hình tốn học mạng nơron truyền thẳng mạng nơron hồi quy .14 7.1.Mạng nơ ron truyền thẳng 14 7.2.Mạng nơron hồi quy 18 Quá trình huấn luyện mạng nhiều lớp 19 8.1 Quá trình thực 19 8.2 Qui tắc chuỗi 21 8.3 Độ xác thuật tốn lan truyền ngược 22 8.4 Biến thể thuật toán lan truyền ngược 22 8.5 Tổng quát (Phép nội suy ngoại suy) 23 Ứng dụng 25 PHẦN 2: LÝ THUYẾT ÂM THANH VÀ TIẾNG NÓI 27 2.1 Âm .27 2.1.1 Nguồn gốc âm thanh: 27 2.1.2 Các đại lượng đặc trưng cho âm thanh: 27 2.1.3 Các tần số âm thanh: 27 2.1.4 Mơ hình lọc nguồn tạo tiếng nói: 28 2.1.5 Các âm tiếng nói đặc trưng: .28 2.2 Tổng quan nhận dạng tiếng nói 30 2.2.1 Các nguyên tắc nhận dạng tiếng nói 31 2.2.2 Các hệ thống nhận dạng tiếng nói: 31 2.2.3 Các tiếp cận nhận dạng tiếng nói 32 2.3 Những thuận lợi khó khăn nhận dạng tiếng Việt 36 PHẦN 3: XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG NÓI BẰNG MẠNG NƠRON TRONG MATLAB 37 3.1 Công cụ được sử dụng matlab 37 3.2 xây dựng chương trình mô phỏng nhận dạng tiếng nói bằng mạng Nơron MLP 40 3.2.1 Các bước xây dựng 40 3.2.2 Chương trình nhận dạng phát âm mười chữ số tiếng Việt .46 PHẦN I: TÌM HIỂU VỀ MẠNG NƠRON NHÂN TẠO Lịch sử phát triển Quá trình nghiên cứu phát triển noron nhân tạo chia thành giai đoạn sau: Giai đoạn 1: Có thể tính từ nghiên cứu William (1890) tâm lý học với liên kết noron thần kinh Năm 1940 Mc Culloch Pitts cho biết nơron mơ hình hố thiết bị ngưỡng (Giới hạn) để thực phép tính logic mơ hình mạng nơron Mc Culloch - Pitts với giải thuật huấn luyện mạng Hebb đời năm 1943 Giai đoạn 2: Vào khoảng gần năm 1960, số mơ hình noron hồn thiện đưa như: Mơ hình Perceptron Rosenblatt (1958), Adalile Widrow (1962) Trong mơ hình Perceptron quan tâm ngun lý đơn giản, có hạn chế Marvin Minsky Seymour papert MIT ( Massachurehs Insritute of Technology) chứng minh khơng dùng cho hàm logic phức (1969) Cịn Adaline mơ hình tuyến tính, tự chỉnh, dùng rộng rãi điều khiển thích nghi, tách nhiễu phát triển Giai đoạn 3: Có thể tính vào khoảng đầu thập niên 80 Những đóng góp lớn cho mạng nơron giai đoạn phải kể đến Grossberg, Kohonen, Rumelhart Hopfield Trong đóng góp lớn Hopfield gồm hai mạng phản hồi: Mạng rời rạc năm 1982 mạng liên tục năm 1984 Đặc biệt, ông dự kiến nhiều khả tính tốn lớn mạng mà nơron khơng có khả Cảm nhận Hopfield Rumelhart, Hinton Williams đề xuất thuật toán sai số truyền ngược tiếng để huấn luyện mạng noron nhiều lớp nhằm giải toán mà mạng khác không thực Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm giới mở hội nghị toàn cầu chuyên ngành nơron IJCNN (International Joit Conference on Neural Networks) Rất nhiều công trình nghiên cứu để ứng dụng mạng nơron vào lĩnh vực như: Kỹ thuật tính, điều khiển, toán tối ưu, y học, sinh học, thống kê, giao thơng, hố học, Cho đến mạng nơron tìm khẳng định vị trí nhiều ứng dụng khác Khái niệm mạng nơron Theo nghĩa sinh học, mạng nơron tập hợp dây thần kinh kết nối với Do thuật ngữ mạng nơ ron xác định hai khái niệm phân biệt: Mạng nơron sinh học Mạng nơron nhân tạo 2.1 Mạng nơron sinh học: Mỗi nơron sinh học gồm có thành phần: Thân nơron với nhân bên (soma), đầu dây thần kinh (axon) hệ thống phân nhánh hình (Dendrite) để nhận thơng tin vào Trong thực tế có nhiều dây thần kinh vào chúng bao phủ diện tích lớn (0,25mm2) Mỗi nơron nhận tín hiệu vào từ tế bào thần kinh khác Chúng tích hợp tín hiệu vào, tổng tín hiệu vượt q ngưỡng chúng tạo tín hiệu gửi tín hiệu tới nơron khác thông qua dây thần kinh Các nơron liên kết với thành mạng Mức độ bền vững liên kết xác định hệ số gọi trọng số liên kết 2.2 Mạng nơron nhân tạo: mạng nơron mơ hình tốn học hay mơ hình tính tốn xây dựng dựa mạng nơron sinh học Nó gồm có nhóm nơron nhân tạo (nút) nối với nhau, xử lý thông tin cách truyền theo kết nối tính giá trị nút (cách tiếp cận connectionism tính tốn) Trong nhiều trường hợp, mạng nơron nhân tạo hệ thống thích ứng tự thay đổi cấu trúc dựa thơng tin bên ngồi hay bên chảy qua mạng q trình học Sau mơ hình nơron nhân tạo Nơron hoạt động sau: giả sử có N inputs, nơron có N trọng số tương ứng với N đường truyền inputs Nơron lấy tổng có trọng số tất inputs Nói có nghĩa nơron lấy input thứ nhất, nhân với weight đường input thứ nhất, lấy input thứ hai nhân với weight đường input thứ hai v.v , lấy tổng tất kết thu Đường truyền có trọng số lớn tín hiệu truyền qua lớn, xem weight đại lượng tương đương với synapse nơron sinh học Có thể viết kết lấy tổng nơron sau: Kết so sánh với threshold t nơron, lớn t nơron cho output 1, cịn nhỏ output Ngồi ta trừ tổng nói cho t, so sánh kết thu với 0, kết dương nơron cho ouput 1, kết âm output Dưới dạng tốn học ta viết output nơron sau: Trong f hàm Heaviside: f gọi ngưỡng chức hay chuyền chức nơron, giá trị (-t) gọi bias hay offset nơron.Nếu đưa thêm input vào, input thứ 0, có giá trị ln ln weight ln ln bias (-t) output nơron cịn viết dạng: Lưu ý số tổng trước Cấu trúc mạng Nơron Mỗi Nơron (nút) đơn vị xử lý thông tin mạng nơron, yếu tố để cấu tạo nên mạng nơron Hình 3.1: Cấu trúc nơron xi: tín hiệu input wkp: trọng số input f(.): hàm hoạt động yk: kết xuất nơron b: thông số ảnh hưởng đến ngưỡng output Phân loại cấu trúc mạng Nơron: a Mạng dẫn tiến lớp Đây là cấu trúc mạng nơron đơn giản Mạng nơron gồm lớp xuất, khơng có lớp ẩn Hình 3.2 cấu trúc nơron đơn giản b Mạng dẫn tiến nhiều lớp Hình 3.3: Cấu trúc mạng nơron nhiều lớp Mạng nơron nhiều lớp giải toán phi tuyến nhờ vào lớp ẩn Các lớp ẩn xen input bên output mạng Càng nhiều lớp ẩn khả mở rộng thông tin cao xử lý tốt mạng có nhiều input output Ngồi cịn có mạng hồi quy mạng nơron dạng lưới Kiến Trúc Mạng Là hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay gọi nơron) tựa nơron thần kinh não người, hoạt động song song nối với liên kết nơron Mỗi liên kết kèm theo trọng số đó, đặc trưng cho tính kích hoạt ức chế nơron Có thể xem trọng số phương tiện để lưu trữ thông tin dài hạn mạng neural nhiệm vụ trình huấn luyện mạng cập nhật trọng số có thêm thơng tin mẫu học Hay nói cách khác, trọng số điều chỉnh cho dáng điệu vào mạng mơ hồn tồn phù hợp với mơi trường xem xét 4.1 Mạng Một Tầng Mạng tầng với S nơron minh họa hình 4.1.1 Chú ý với đầu vào số R đầu vào nối với nơron ma trận trọng số có S hàng Một tầng bao gồm ma trận trọng số, cộng, vector ngưỡng b, hàm chuyển vector đầu a Mỗi phần tử vector đầu vào p nối với nơron thơng qua ma trận trọng số W Mỗi nơron có ngưỡng bi, cộng, hàm chuyển f đầu với nhau, đầu tạo thành vector đầu a Thông thường số lượng đầu vào tầng khác với số lượng nơ-ron.(R#S) Ma trận trọng số cho phần tử vector đầu vào W: hình 4.1.1: Mơ hình mạng lớp Các số hàng phần tử ma trận W nơron đích kết hợp với trọng số đó, số cột cho biết đầu vào cho trọng số Vì vậy, số nói trọng số đầu vào thứ nối với nơron thứ 4.2 Mạng Đa Tầng Hình 4.2.1:Ví dụ mơ hình mạng đa tầng Mơ hình mạng nơron gồm lớp: lớp nhập (input), lớp ẩn(hidden) lớp xuất (output) Mỗi nút lớp nhập nhận giá trị biến độc lập chuyển vào mạng Dữ liệu từ tất nút lớp nhập tích hợp – ta gọi tổng trọng số – chuyển kết cho nút lớp ẩn Gọi “ẩn” nút lớp liên lạc với nút lớp nhập lớp xuất, có người thiết kế mạng biết lớp (người sử dụng lớp này) Các nút lớp xuất nhận tín hiệu tổng trọng hóa từ nút lớp ẩn Mỗi nút lớp xuất tương ứng với biến phụ thuộc Các luật học Thông thường mạng nơron điều chỉnh huấn luyện để hướng đầu vào riêng biệt đến đích đầu Cấu trúc huấn luyện mạng hình 5.1 Ở đây, hàm trọng mạng điều chỉnh sở so sánh đầu với đích mong muốn (taget) đầu mạng phù hợp với đích Những cặp vào/đích (input/taget) dùng để giám sát cho huấn luyện mạng Hình 5.1 Cấu trúc huấn luyện mạng nơron Để có số cặp vào/ra, giá trị vào gửi đến mạng giá trị tương ứng thực mạng xem xét so sánh với giá trị mong muốn Bình thường tồn sai số lẽ giá trị mong muốn khơng hồn tồn phù hợp với giá trị thực Sau lần chạy, ta có tổng bình phương tất sai số Sai số sử dụng để xác định hàm trọng Sau lần chạy, hàm trọng mạng sửa đổi với đặc tính tốt tương ứng với đặc tính mong muốn Từng cặp giá trị vào/ra phải kiểm tra trọng lượng điều chỉnh vài lần Sự thay đổi hàm trọng mạng dừng lại tổng bình phương sai số nhỏ giá trị đặt trước chạy đủ số lần chạy xác định (trong trường hợp mạng khơng thoả mãn u cầu đặt sai lệch cịn cao) Có hai kiểu học: Học thơng số: Tìm biểu thức cập nhật thông số trọng số, cập nhật kết nối nơron Học cấu trúc: Trọng tâm biến đổi cấu trúc mạng nơron gồm số lượng nút (node) mẫu liên kết Nhiệm vụ việc học thơng số cách đó, tìm ma trận xác mong muốn từ ma trận giả thiết ban đầu với cấu trúc mạng nơron có sẵn Để làm việc đó, mạng nơron sử dụng trọng số điều chỉnh, với nhiều phương pháp học khác tính tốn gần ma trận W cần tìm đặc trưng cho mạng Có ba phương pháp học: Học có giám sát Là q trình học thời điểm thứ i đưa tín hiệu xi vào mạng nơ ron, tương ứng có đáp ứng mong muốn di đầu cho trước thời điểm Hay nói cách khác, q trình học có giám sát, mạng nơ ron cung cấp liên tục cặp số liệu • Tiếng Việt ngơn ngữ có điệu ( thanh) Thanh điệu âm vị siêu đoạn tính, đặc trưng điệu thể tín hiệu tiếng nói không rõ nét thành phần khác âm tiết • Cách phát âm tiếng việt thay đổi theo vùng địa lý • Hệ thống ngữ pháp ngữ nghĩa tiếng Việt phức tạp, khó để áp dụng vào hệ nhận dạng với mục đích tăng hiệu nhận dạng Hệ thống phiên âm chưa thống • Các nghiên cứu nhận dạng chưa nhiều phổ biến PHẦN 3: XÂY DỰNG HỆ THỐNG NHẬN DẠNG TIẾNG NÓI BẰNG MẠNG NƠRON TRONG MATLAB 3.1 Công cụ được sử dụng matlab Matlab mơi trường trợ giúp tính tốn hiển thị mạnh hãng MathWorks phát triển Ngoài thư viện hàm tính tốn, vào-ra, đồ hoạ bản, Matlab cịn có toolbox thư viện cho lĩnh vực cụ thể Ví dụ có toolbox cho xử lí tín hiệu, mơ mơ hình, logic mờ,mạng nơron ,… chí cho thiết kế máy bay hay giải phương trình vi phân … Chúng ta tập trung chủ yếu vào giới thiệu hàm toolbox hàm cần thiết để xây dựng mộ mơ hình nhận dạng tiếng nói dung mạng nơron, mà cụ thể xây dựng mạng MLP ba lớp Các hàm xử lý âm thanh: Đọc tín hiệu âm từ file wav cho [y fs]=wavread(wavfile) xâu wavfile,y vector mơ tả tín hiệu âm (có giá trị thực từ đến 1),fs tần số lấy mẫu (giá trị nguyên) Ghi tín hiệu âm từ file wav cho wavwrite(y,fs,wavfile) xâu wavfile,y vector mơ tả tín hiệu âm thanh,f s tần số lấy mẫu Phát âm loa, y vector mơ tả sound(y) tín hiệu âm Ghi âm (từ micro) với tần số lấy mẫu fs n mẫu Kết vector y.Đoạn lệnh y=wavrecord(n, fs) sau ghi âm giây với tần số lấy mẫu 8kHz, ghi vào file: y=wavrecord(16000,8000); wavwrite(y,8000,‘temp.wav’); VoiceBox toolbox VoiceBox toolbox Matlab chuyên xử lí tiếng nói Mike Brookes phát triển VoiceBox yêu cầu Matlab phiên trở lên VoiceBox gồm hàm chia thành số nhóm chức sau: Xử lí file âm (đọc, ghi file wav số định dạng file âm khác) Phân tích phổ tín hiệu Phân tích LPC Tính tốn MFCC, chuyển đổi spectral - cepstral Chuyển đổi tần số (mel-scale, midi, ) Biến đổi Fourier , Fourier ngược, Fourier thực Tính khoảng cách (sai lệch) vector dãy vector Loại trừ nhiễu tín hiệu tiếng nói Chức quan trọng trích đặc trưng tín hiệu tiếng nói, mà loại phổ biến LPC MFCC Hàm tính MFCC tín hiệu V oiceBox hàm: melcepst(s,fs,w,nc,p,n,inc,fl,fh) Hàm có nhiều tham số, số tham số quan trọng là: s vector tín hiệu tiếng nói (có sau dùng hàm ), fs tần số lấy mẫu (mặc định 11050) nc số hệ số MFCC cần tính (tức số phần tử vector đặc trưng, mặc định 12) p số lọc mel-scale w xâu mô tả lựa chọn khác: có tính thêm log lượng, có tính thêm đặc trưng delta Mặc dù hàm gọi cách đơn giản là: c=melcepst(s,fs); Lời gọi hàm sinh ma trận c, dòng ma trận 12 hệ số MFCC frame Để kèm thêm log lượng liệu delta nh hệ nhận dạng khác, ta dùng lệnh: c=melcepst(s,fs,’ed’); Khi dịng c vector 26 hệ số MFCC frame tương ứng NetLab toolbox NetLab Ian T.Nabney phát triển Chúng sử dụng toolbox NetLab để xây dựng, huấn luyện thử nghiệm mạng nơron MLP cho hệ thống nhận dạng đồ án Lệnh khởi tạo MLP NetLab có cú pháp sau: net = mlp(inode, hnode, onode, func, anpha); Trong đó: inode, hnode, onode số nơron lớp vào, lớp ẩn lớp func kiểu hàm kích hoạt, func có giá trị ‘logistic’, ‘softmax’… anpha ngưỡng giá trị trọng số, thường lấy 0.01 net mạng MLP hàm tạo Mạng MLP sau điều kiện khởi tạo có th ể huấn luyện với liệu huấn luyện cho trước Lệnh huấn luyện MLP NetLab có cú pháp sau: [net, error] = mlptrain(net, x, t, its) Trong đó: x, t liệu huấn luyện x vector đầu vào, t vector đầu cần đạt đến (target) its số vịng huấn luyện (số lần thực thuật tốn lan truyền ngược lỗi) net mạng nơron error tổng sai số lần huấn luyện cuối Sau huấn luyện ta dùng mạng MLP để tính đầu ứng với đầu vào Lệnh tính đầu y MLP ứng với đầu vào x sau: y = mlpfwd(net, x) Trong đó: x hay nhiều vector đầu vào y vector đầu tương ứng 3.2 xây dựng chương trình mô phỏng nhận dạng tiếng nói bằng mạng Nơron MLP Trong phạm vi đồ án môn học, xây dựng chương trình nhỏ nhận dạng mười chữ số tiếng Việt cơng cụ có sẵn Matlab Do tiếp xúc lĩnh vực nên khả năng, kiến thức tơi cịn hạn chế, cộng vào khó khăn thời gian, phương tiện …nên tơi xây dựng hệ thống nhận dạng nhỏ 3.2.1 Các bước xây dựng Hệ thống nhận dạng mười chữ số tiếng Việt xây dựng với đặc trưng sau: - Phương pháp: nhận dạng từ đơn (isolate word recognition) - Input: file wav , file chứa từ Hoặc ghi âm trực tiếp - Output: chữ số nh n dạng file đầu vào - Bộ từ vựng: 11 từ đơn âm chữ số tiếng Việt (“không”, “một”, “hai” “mười”) Sơ đồ khối hệ thống nhận dạng tiếng nói chữ số tiếng Việt mạng nơron MLP mơi trường Matlab mơ tả hình 3.2.1.1 Chức khối mô tả sau: Thu thập tiền xử lí: tín hiệu tiếng nói giai đoạn huấn luyện thực phương pháp thủ công: sử dụng phần mềm ghi âm , lọc nhiễu cắt thành từ riêng rẽ, từ ghi vào file (tên file ghi từ tương ứng) Bộ liệu tự xây dựng gồm: File wav 16 bit 8kHz, file phát âm từ Từ chữ số tiếng Việt từ đến 10 (Mặc dù “mười” chữ số cần hệ nhận dạng chữ số có số phát âm “mười một”, “mười hai” ) hình 3.2.1.1: Sơđồ khối hệ thống nhận dạng tiếng nói chữ số tiếng Việt mạng nơron MLP môi trường Matlab Việc thu thập tiền xử lí (cắt vùng khơng chứa tín hiệu tiếng nói) thực lệnh sau: x = wavrecord (10000,8000); %t n số lấy mẫu 8kHz, ghi âm chừng 1s x = x'; %chuyển x thành ma trận dòng y = endcut(x, 64, 1.5E-3); %cắt khoản lặng Hàm endcut dùng cắt khoảng lặng khơng chứa tín hiệu âm, sơ đồ giải tḥt miêu tả hình 3.2.2 Các lệnh miêu tả sau: function y = endcut(x, n, es) % cat khoang lang khoi x % n độ dài frame, es ngưỡng lượng x = x - mean (x); %dk: x dã chuẩn hóa if nargin < es = 2E-3; %mặc định 2e-3 end; if nargin < n = 128; %mặc định 128 mẫu end; y=[]; i=1; while ies) y = [y t]; end; i=i+n; end; Hình 3.2.2: Giải thuật cắt khoản lặng file wav Mỗi file âm thanhđược trích chọn đặc trưng MFCC thành dãy vector MFCC hàm wave2mfcc: function mfcc = wave2mfcc(wav, fs, p); if nargin < % mặc định lấy vector MFCC 8pt p = 8; end; if nargin < % mặc định t n số lấy mẫu = 8kHz fs = 8000; end; if isstr (wav) % wav tên file đọc [wav fs] = wavread(wav); end; % chuẩn hoá để max (wav)=1 mx = max (wav); wav = wav./ mx; % tính vector MFCC p ph n tử, gồm lượng mfcc = melcepst (wav,fs,'e',p-1); Vì file wav có độ dài ngắn khác nên dãy vector đặc trưng MFCC tương ứng khơng có số phần tử Nhưng đầu vào mạng nơron MLP lại phải cố định Do chúng tơi thực biện pháp đơn giản chia dãy đặc trưng thành phần nhau, tính trung bình phần vector ghép lại thành vector Kết đầu vào mạng nơron vector 8x5=40 thành phần function x = VecAvr(ft,k); % trích ft thành k ph n chia trung bình n = length (ft); m = floor(n/k); x=[]; i=0;t=1; while i