Nhận dạng giọng nói bằng MATLAB, sử dụng Mô hình Markov ẩn dàdabvisdbvaivbaivbasidvbasdivbivbdfvsfzbdzffffffffffffffffffffffffffffffffffffffffzvzfvdfdfavs8gvsa8dvasudgvasvbaivuaiubvivaivbasvigasbvisavbiasvbaisvgsaivgaigvasivabviadfvgaivsbviasbviuviagvuagvaisgvaivgaivbaivaibvaivbaivubauvbskvisbivsbvsibaivbsaivbfviabviavbiuvvib
Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy MỤC LỤ Trang C Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy MỞ ĐẦU Ngơn điệu mang lại cho tiếng nói người âm sắc riêng biệt Ngơn điệu tiếng nói liên kết chặt chẽ với ngữ điệu Ngữ điệu nâng cao hạ thấp giọng nói câu Tiếng Việt ta ngơn ngữ phức tạp bao gồm ngơn điệu ngữ điệu Do vấn đề nhận dạng tiếng nói cần nhiều đầu tư nghiên cứu Tuy nhiên kết mang lại chưa hồn thiện tính chất phức tạp khơng cố định đối tượng nhận dạng tiếng nói người, đặc biệt tiếng Việt Hiện có nhiều phương pháp nhận dạng tiếng nói Mơ hình Fujisaki ứng dụng rộng rãi hệ thống tiếng Nhật, mơ hình MFGI (Mixdorff Fujisaki model of German Intonation) ứng dụng tiếng Đức, mơ hình HMM (hidden markov models)…vv Trong mơ hình lại áp dụng nhiều phuơng pháp nhận dạng khác Mọi phương pháp mang tính đặc trưng ưu điểm riêng • Phương pháp LPC (linear predictive coding)-mã hóa dự báo tuyến tính: nhược điểm có số từ phát âm gần giống bò nhầm lẫn nhiều • Phương pháp AMDF (average magnitude difference function)- hàm hiệu biên độ trung bình: ưu điểm số ngõ vào ít,kích thước mạng huấn luyện nhỏ, phụ thuộc vào cách phát âm nên tỉ lệ đọc sai phương pháp LPC, nhiên khuyết điểm không phân biệt điệu, khó sử ụng trường hợp từ đọc liên tiếp • AMDF & LPC :Do ưu nhược điểm hai phương pháp LPC AMDF nên cần kết hợp hai phương pháp • Phương pháp thứ tư MFCC (mel-frequency ceptrums coefficients) Nhận dạng tiếng nói q trình nhận dạng mẫu, với mục đích phân lớp thơng tin tín hiệu tiếng nói thành dãy mẫu học trước lưu trư hệ thống nhận dạng Các mẫu đơn vị nhận dạng, chúng từ hay âm vị Nếu mẫu bất biến khơng thay đổi cơng việc Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy nhận dạng tiếng nói trở nên đơn giản cách so sánh liệu tiếng nói cần nhạn dạng với mẫu học lưu trữ hệ thống Nhận dạng tiếng nói lĩnh vực khơng vơ phức tạp Nhạn dạng tiếng nói giới bắt đầu nghiên cứu cách 50 năm, nhiên kế thực tế đạt vơ khả quan Còn phải lâu người đạt đến việc xây dựng hệ thống hiểu tiếng nói người Trong phạm vi đồ án tốt nghiệp chúng em xây dựng chương trình nhận dạng mười chữ số tiếng Việt cơng cụ có sẵn Matlab Định hướng xây dựng chương trình nhận dạng tất từ, câu tiếng Việt để ứng dụng vào thực tế Tuy nhiên tiếp xúc với lĩnh vực nên khả năng, kiến thức chúng em hạn chế khó khăn thời gian, phương tiện…nên chúng êm xây dựng hệ thống nhận dạng nhỏ Trong tương lai có điều kiện tiếp xúc nghiên cứu sâu lĩnh vực này, em mong muốn phát triển đồ án lên để ứng dụng thực tế Trang NhËn d¹ng tiÕng nãi V¨n b¶n Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy Kh«ng tiÕp xóc víi PC §iỊu khiĨn, lƯnh Kh«ng thêi gian thùc Chương TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NĨI 1.1 Nhận dạng tiếng nói Cã tiÕp xóc víi PC Hiểu cách đơn giản, nhận dạng tiếng nói (speech recognition by machine) dùng máy tính chuyển đổi tín hiệu ngơn ngữ từ dạng âm thành dạng văn Nói cách xác hơn: nhận dạng tiếng nói phân chia (segmentation) gán nhãn ngơn ngữ (labeling) cho tín hiệu tiếng nói Nhận dạng tiếng nói có nhiều ứng dụng: • Đọc tả : Là ứng dụng sử dụng nhiều hệ nhận dạng Thay nhập liệu tay thơng qua bàn phím, người sử dụng nói với máy qua micro máy xác định từ nói • Điều khiển - giao tiếp khơng dây : Chẳng hạn hệ thống cho phép máy tính nhận lệnh điều khiển giọng nói người như: “chạy chương trình”, “tắt máy”… Một số ưu điểm việc sử dụng tiếng nói thay cho thiết bị vào chuẩn bàn phím, chuột là: thuận tiện, tốc độ cao, khơng bị ảnh hưởng cáp, khoảng cách, khơng đòi hỏi huấn luyện sử dụng • Điện thoại-liên lạc : Một số hệ thống (chẳng hạn máy điện thoại di động) cho phép người sử dụng đọc tên người danh sách thay bấm số Một số hệ thống khác (ở ngân hàng, trung tâm chứng khốn…) thực việc trả lời tự động các gọi hỏi tài khoản… • … Tuy nhiên vấn đề nhận dạng tiếng nói gặp nhiều khó khăn Một số khó khăn chủ yếu là: • Tiếng nói tín hiệu thay đổi theo thời gian Mỗi người có giọng nói, cách phát âm khác Thậm chí người phát âm từ mà lần khác khơng giống (chẳng hạn tốc độ, âm lượng ) • Các phương pháp nhận dạng máy tính “máy móc”, xa đạt đến mức độ tư người • Nhiễu thành phần ln gặp mơi trường hoạt động hệ thống nhận dạng ảnh hưởng nhiều đến kết nhận dạng Do khó khăn đó, nhận dạng tiếng nói cần tri thức từ nhiều từ ngành khoa học liên quan: • Xử lí tín hiệu: tìm hiểu phương pháp tách thơng tin đặc trưng, ổn Trang NhËn d¹ng ngêi nãi §iỊu k Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy • • • • • • định từ tín hiệu tiếng nói, giảm ảnh hưởng nhiễu thay đổi theo thời gian tiếng nói Âm học: tìm hiểu mối quan hệ tín hiệu tiếng nói vật lí với chế sinh lí học việc phát âm việc nghe người Nhận dạng mẫu: nghiên cứu thuật tốn để phân lớp, huấn luyện so sánh mẫu liệu Lí thuyết thơng tin: nghiên cứu mơ hình thống kê, xác suất; thuật tốn tìm kiếm, mã hố, giải mã, ước lượng tham số mơ hình… Ngơn ngữ học: tìm hiểu mối quan hệ ngữ âm ngữ nghĩa, ngữ pháp, ngữ cảnh tiếng nói Tâm-sinh lí học: tìm hiểu chế bậc cao hệ thống nơron não người hoạt động nghe nói Khoa học máy tính: nghiên cứu thuật tốn, phương pháp cài đặt sử dụng hiệu hệ thống nhận dạng thực tế Ba ngun tắc nhận dạng tiếng nói: • Tín hiệu tiếng nói biểu diễn xác giá trị phổ khung thời gian ngăn Như ta trích đặc điểm tiếng nói từ khỏang thời gian ngắn dùng đặc điểm làm liệu nhận dạng tiếng nói • Nội dung tiếng nói biễu diễn dạng chữ viết, dãy kí hiệu ngữ âm • Nhận dạng tiếng nói q trình nhận thức Ngơn ngữ nói có nghĩa, thơng tin ngữ nghĩa suy đốn giá trị q trình nhận dạng tiếng nói thơng tin âm học khơng rõ ràng Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy 1.2 Một số phương pháp nhận dạng tiếng nói phổ biến 1.2.1 So sánh mẫu phương pháp lập trình động ( Dynamic Program) Khi so sánh tín hiệu thu người ta phải so sánh với tất mẫu, điều làm tốn nhiều thời gian tính tốn Để giảm thời gian tính tốn tăng tốc độ xử lý nhận dạng giọng nói người ta sử dụng phương pháp lập trình động Ở phương pháp nhận dạng mẫu từ cần nhận dạng so sánh với mẫu lưu trữ hệ thống thực việc so sánh hai mẫu tín hiệu để tìm mẫu có sai số nhỏ Bởi tín hiệu âm tạo thời điểm khác khơng giống hồn tồn Nó ln có sai khác yếu tố trọng âm, ngữ điệu, tốc độ, … Vì cần phải thực so sánh hai mẫu theo thuật tốn biến dạng nhằm giảm thiểu sai số Thuật tốn DTW (Dynamic Time Warping) coi thuật tốn hiệu cho việc ứng dụng so sánh tín hiệu có chiều dài khác có sai số nhỏ Thuật tốn sử dụng phương pháp đệ quy Ví dụ : Các chương trình (Procedure) tự động gọi với thơng số (parameter) khác tìm sai số so với tín hiệu mẫu Mẫu có sai số so với tín hiệu cần so sánh nhỏ mẫu mẫu cần tìm 1.2.2 Phương pháp mơ hình Markov ẩn (Hidden Markov Model) Hệ thống nhận dạng từ rời rạc dựa trện HMM có sơ đồ khối sau: Các mẫu HMM lưu trữ Phân tích xác định tham tử số So sánh độ tương ứng với cácNgun mẫu HMM tắc lựaTừ chọn nhận dạng Lượng hóa Vector Tiếng nói đầu vào Từ nhận dạng chia thành chuỗi thời gian T khung phân tích số thuật tốn phân tích (MFCC), phân tích mã hóa dự báo tuyến tính (LPC), biến đổi Fourier nhanh (FFT), Sau bước ta có chuỗi mẫu quan sát Ot (t= 1,2,3, T) Chuỗi Ot lượng tử hóa tập đại diễn M mẫu tiếng nói Sau Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy hệ thống so sánh độ tương ứng từ đầu vào với M mẫu tiếng nói Từ đầu vào nhận cách lấy từ giống với mẫu hệ thống Về mặt tốn học, mơ hình từ Mi, i=1,2, W xác định tập tham số [A,B,π] Gọi P = {Ot | Mi} xác suất nhận chuỗi quan sát Ot với mơ hình Mi Từ nhận dạng RW xác định từ cơng thức : Trong Argmax cho biết kết số i mơ hình Mi có xác suất P = {Ot | Mi} cao Để tính giá trị P = {Ot | Mi} cần xét tất chuỗi trạng thái tạo chuỗi quan sát sau xác định chuỗi trạng thái có xác suất cao Tuy nhiên phải xét tất khơng thực tiễn phải xét với số lượng lớn chuỗi trạng thái Để giảm thiểu khối lượng tính tốn dùng hai phương pháp đệ quy thuật tốn Baul-Welch thuật tốn Viterbi 1.2.3 Phương pháp mạng Nerural (Neural Network) Mạng neural có cấu trúc Perceptron nhiều lớp hình sử dụng nhiều hệ thống nhận dạng Perceptron loại đơn giản mạng liên kết (là mạng khơng có liên kết khối xử lý lớp khơng có liên kết khối xử lý lớp quay ngược lớp vào) sử dụng thuật tốn có giám sát Một mạng Perceptron bao gồm đơn vị xử lý xếp thành nhiều lớp Mạng huấn luyện theo quy tắc Delta biến thể Các khối xử lý xếp thành lớp bao gồm lớp vào khối xử lý lớp ẩn lớp Các liên kết có trọng số khác kết nối khối xử lý lớp tới tất khối xử lý lớp lân cận Lớp Lớp Lớp ẩn Lớp vào (a) (b) Lớp vào Mạng Perceptron (a) Perceptron lớp, (b) Perceptron nhiều líp Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy Mạng neural loại huấn luyến cách nhập vector mẫu lớp đầu vào tính tốn đầu Sau đó, đầu so sánh với mẫu đầu mong muốn Sai số đầu thực tế với đầu mong muốn tính phản hồi qua mạng tới phần tử Trọng số đầu vào phần tử điều chỉnh để tối thiểu sai số Trong q trình lặp lại đầu thực tế lệch với đầu mong muốn phạm vi sai số xác định trước Có nhiều cặp mẫu đầu vào, đầu đưa qua mạng q trình đươc lặp lại cho cặp đầu vào, đầu Việc nhận dạng nhập mẫu tiếng nói chưa biết nút đầu vào mạng huấn luyện tính tốn giá trị nút đầu để xác định mẫu tiếng nói 1.2.4 Phương pháp trí tuệ nhân tạo (Artificial Intelligence) Ý tưởng ứng dụng trí tuệ nhân tạo vào nhận dạng tiếng nói thu thập kiến thức từ nguồn kiến thức khác để giải vấn đề đặt Ví dụ ứng dụng trí tuệ nhân tạo để làm cơng đoạn phân đoạn gán nhãn tiếng nói cần có tổng hợp kiến thức âm học, ngữ âm học, từ vựng học, cú pháp học, ngữ nghĩa kiến thức thực tế - - Kiến thức âm học : Là kiến thức đặc trưng âm (các đơn vị ngữ âm) phát sở số đo phổ tín hiệu đặc tính hữu vơ Kiến thức từ vựng : Là ngun tắc từ điển đặt để kết hợp âm thành từ ngược lại chia nhỏ từ thành âm Kiến thức cú pháp : Là kết hợp từ thành cụm từ câu ngữ pháp Kiến thức ngữ pháp : Là hiểu biết ngữ cảnh cho câu cụm từ phù hợp với mục tiêu định nói phù hợp với câu trước Kiến thức thực tế : Là khả suy luận logic cần thiết để làm rõ ý dựa cách thức thơng thường mà từ dùng Có nhiều cách khác để tổng hợp nguồn kiến thức vào hệ thống nhận dạng tiếng nói Phương pháp thơng dụng xử lý từ lên Theo cách này, tiến trình xử lý triển khai từ thấp lên cao Tiến trình phân tích tín hiệu đầu vào, tìm đặc tính, phân đoạn, gán nhãn khai đầu tiên, sau tiến trình phân lớp âm thanh, xác định từ, câu Mỗi tiến trình xử lý đòi hỏi nguồn kiến thức nguồn kiến thức tích lũy dần qua q trình xử lý thực tế giống kiến thức người Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy 1.2.5 Mơ hình hai từ ba từ Để hệ thống có khả làm việc với độ xác cao hơn, bên cạnh phương pháp nhận dạng theo mơ hình Markov ẩn người ta tích hợp vào hệ thống phương pháp thống kê Thơng qua mơ hình hai từ ba từ thống kê tích lũy qua trình tính tốn nhận dạng nhiều lần, tiến trình kiểm tra ngữ cảnh thiết lập Phương pháp có ưu điểm hệ thống nhớ ngữ cảnh mà người nói quen dùng Hệ thống hoạt động lâu với người, ngày quen với cách nói người qua độ xác ngày cao Trong q trình hệ thống nhận dạng làm việc với mơ hình thống kê hai từ hai từ câu được so sánh với Nếu trước hai từ tồn câu trước nhớ thống kê từ nhận dạng xác định xác Các hệ thống nhận dạng hãng Dragon, Philips Lernout&houspie áp dụng phương pháp thống kê hai từ Tương tự phương pháp thống kê hai từ, phương pháp thống kê ba từ cho kết có độ xác cao Với phương pháp thống kê ba từ, hệ thống có tốc độ xử lý chậm có độ phức tạp phương pháp thống kê hai từ nhiều Trang Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy 1.3 Các phương pháp phân tích đặc trưng tín hiệu tiếng nói Trích đặc trưng tiếng nói 1.3.1 Mơ hình LPC (Linear Predictive Coding model) Mơ hình LPC sử dụng rơng rãi hệ thống nhận dạng tiếng nói lý sau: - - - LPC cung cấp mơ hình tốt tín hiệu tiếng nói Đặc biệt trạng thái gần ổn định âm thanh, mơ hình LPC cho ta xấp xỉ tốt phổ âm Tuy vùng ngắn khơng âm, mơ hình LPC hoạt động hiệu vùng có âm, cung cấp mơ hình sử dụng tốt cho mục đích nhận dạng tiếng nói Cách mà LPC ứng dụng việc phân tích tín hiệu tiếng nói dẫn đến phân tách hợp lý âm nguồn âm Và vậy, việc biểu diễn chi tiết đặc điểm dải âm hồn tồn Phương pháp tính tốn LPC xác mặt tốn học đơn giản, trực tiếp việc cài đặt lên phần cứng phần mềm Số lượng tính tốn Trang 10 Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy Ví dụ so khớp sử dụng thuật tốn tiến-lùi: 2.3.3 Ước lượng lại với thuật tốn Baum-Welch Ước lượng lại với thuật tốn Baum-Welch sử dụng EM để xác định tham số ML Xét tốn tử ξt(i,j) xác suất hệ thống trạng thái i thời điểm t trạng thái j thời điểm t+1 với điều kiện có chuỗi quan sát O mơ hình Markov ẩn λ Khi Kết hợp γt(i) ξt(i,j) được: = số chuyển tiếp từ trạng thái si Trang 31 Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy = số chuyển tiếp từ trạng thái si tới sj Thủ tục ước lượng lại Baum-Welch Hình 5.12 Các biểu thức ước lượng lại với thuật tốn Baum-Welch Nếu λ = {A,B,π} mơ hình gốc mơ hình ước lượng lại, ta chứng minh: Mơ hình gốc λ xác định điểm tới hạn hàm có khả xảy ra, trường hợp Hoặc: Trang 32 Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy Mơ hình thích hợp λ điều kiện Chúng ta tăng xác suất chuỗi quan sát O mà quan sát từ mơ hình sử dụng lặp lại khơng gian λ lặp lại việc ước lượng lại số điểm tới hạn đạt Mơ hình kết thu gọi mơ hình Markov ẩn có khả xảy lớn 2.3.4 ƯU VÀ NHƯỢC ĐIỂM CỦA HMM: 1) Ưu Điểm : HMM ứng dụng nhiều lĩnh vực Thành cơng chủ yếu dựa tồn thuật tốn học lặp lại cách tự động(SFA), thuật tốn mà chỉnh tham số HMM cho phù hợp với chuỗi huấn luyện cho Một điểm mạnh HMM khả tính tốn cách hiệu xác suất chuỗi cho đường khả thi mà tổng qt chuỗi cho Có thể dùng để giải hệ thống mà ta khơng thể biết chuỗi trạng thái mà hệ thống trải qua số trạng thái mơ hình ẩn Dùng HMM cho mơ hình nhỏ hơn, thơng số tính tốn 2) Nhược Điểm : Giả định cho tất xác suất chi phụ thuộc vào trạng thái khơng cho ứng dụng tiếng nói Một hậu HMM khó có mẫu phát âm rõ ràng phân phối âm thực tế phụ thuộc nhiều vào trạng thái q khứ Một hậu khác khoảng tồn tạo mẫu khơng xác phân phối hàm mũ giảm thay phân phối Poisson xác Giả định độc lập cho khơng có tương quan frames khơng cho ứng dụng tiếng nói Theo giả định HMM kiểm tra frame tiếng nói thời điểm Những mẫu mật độ xác suất (rời rạc hay liên tục) có độ xác tạo mẫu chưa tối ưu Đăc biệt mẫu rời rạc phải chịu sai số lớn Trang 33 Giáo viên hướng dẫn: ThS.Đào Thị Thu Thủy Chương THỰC HIỆN NHẬN DẠNG DÙNG MATLAB Như biết, Matlab (Matrix Laboratory) mơi trường trợ giúp tính tốn hiển thị mạnh hãng MathWorks phát triển Mức phát triển Matlab ngày chứng tỏ Matlab phần mềm có giao diện cực mạnh nhiều lợi kĩ thuật lập trình để giải vấn đề đa dạng nghiên cứu khoa học kỹ thuật Ngồi thư viện hàm tính tốn, đồ hoạ… bản, Matlab có toolbox thư viện cho lĩnh vực cụ thể Ví dụ có toolbox cho xử lí tín hiệu (Signal Processing), mơ mơ hình (SimulLink), logic mờ (Fuzzy Logic), mạng nơron (Neural Network), … chí cho thiết kế máy bay (Aerospace) hay giải phương trình vi phân (PDE)… Chương tập trung chủ yếu vào giới thiệu toolbox hàm cần thiết để xử lý tiếng nói xây dựng hệ thống nhận dạng tiếng nói Phương pháp nhận dạng sử dụng mơ hình Markov ẩn (HMM) 3.1 Xử lý tiếng nói Các bước xử lý tiếng nói sau: Ghi âm tiếng nói đọc từ file : Dữ liệu tiếng nói thu vào từ micro trở thơng số hố tiếng nói đưa vào lưu lại matlab N hững thơng số dùng để xử lý phân biệt từ hay âm khác thơng qua q trình xử lý Lọc tín hiệu đầu vào tần số cao : Được thực lọc tương tự thơng cao bậc với tần số cắt 3db khoảng tần số 100Hz - 1KHz nhằm làm phẳng phổ tín hiệu làm cho nhạy với tác động bên ngồi Bộ lọc thơng cao tạo tín hiệu số dùng hàm: y[n] = x[n] - ax[n - 1] với 0.9 < a < Trang 34 Đồ án tốt nghiệp Đồ án tốt nghiệp Với y[n] mẫu lọc x[n] mẫu ngõ vào x[n-1] mẫu ngõ vào trước Xác định điểm đầu-điểm cuối :Cắt vùng khơng chứa tín hiệu tiếng nói Một số hàm xử lí tiếng nói Viết Matlab Ý nghĩa [x fs] = Đọc tín hiệu âm từ file wav cho wavread(wavfile); wavwrite(x,fs,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ị ngun) Ghi tín hiệu âm từ file wav cho xâu wavfile, y vector mơ tả tín hiệu âm thanh, fs tần số lấy mẫu sound(x); Phát âm loa, y vector mơ tả tín hiệu âm x = wavrecord(n, fs) Ghi âm (từ micro) với tần số lấy mẫu fs n mẫu Kết vector x x = filter([1 -0.9375], 1, Bộ lọc thơng cao x); y = detector(x); endpoint detection 3.2 Trích đặc trưng tiếng nói VoiceBox toolbox Matlab chun xử lí tiếng nói Mike Brookes phát triển VoiceBox u cầu Matlab phiên trở lên VoiceBox gồm hàm chia thành số nhóm chức sau: Phân tích phổ tín hiệu Phân tích LPC Nguyễn Việt Hưng KS CLC – THCN – K48 35 35 Đồ án tốt nghiệp Đồ án tốt nghiệp 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 Trong đề tài ta chọn phương pháp MFCC để trích đặc trưng tiếng nói Sơ đồ khối q trình trích chọn đặc trưng MFCC Hàm tính MFCC tín hiệu VoiceBox hàm melcepst: c = 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 wavrecord wavread), 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ó ‘e’ tính thêm log lượng, có ‘d’ tính thêm đặc trưng delta Nguyễn Việt Hưng KS CLC – THCN – K48 36 36 Đồ án tốt nghiệp Đồ án tốt nghiệp 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 hệ nhận dạng khác, ta dùng lệnh: Hàm melcepst chúng tơi sử dụng để trích chọn đặc trưng MFCC hệ thống nhận dạng 3.3 Huấn luyện HMM 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 cơng cụ Matlab để 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 : 10 từ đơn âm chữ số tiếng Việt (“khơng”, “một”, “hai” “chín”) File wav 16 bit 8kHz, từ có bốn file phát âm Có 40 mẫu tiếng nói sử dụng để huấn luyện Nguyễn Việt Hưng KS CLC – THCN – K48 37 Bắt đầu Ghi âm tiếng nói đọc từ file Trích đặc trưng MFCC Kết hợp tất đặc trưng từ tạo thành tập liệu huấn luyện Gán nhãn cho từ Khởi tạo HMM cho từ Huấn luyện HMM cho từ 37 Đồ án tốt nghiệp Đồ án tốt nghiệp Kết thúc Hình Q trình huấn luyện HMM Với phương pháp MFCC: tín hiệu chia thành frame có độ dài N = 512 mẫu với độ chồng lấp M = 100 Các hàm Matlab • • melcepst.m : Để tạo ma trận vector đặc trưng cho mẫu tín hiệu hmmtrain.m : Huấn luyện mơ hình HMM theo liệu lượng tử hố codebook tính từ bước trên, tạo 10 mơ hình HMM riêng biệt cho từ khố nhận dạng Các mơ hình lưu lại dạng file hmmdata.mat clear all clc; addpath('VOICEBOX') addpath('HMMs') nc=16; p=32; M = 4; N = 4; SM_mat=M*ones(1,N); so_lan_lap = 5; nc number of cepstral coef p number of filters in filterbank M : So trang thai quan sat duoc N : So trang thai SM_mat : Number of Mixture Model for state So lan lap % Đọc file wav traindata = cell(1,10); for i=0:9 temp = cell(1:M); for j=1:M fname = sprintf('Train/s%dt%d.wav',i,j); [x,fs] = wavread(fname); x=endcut(x, 500, 0.1); % cắt khoảng lặng x = filter([1 -0.9375],1,x); temp{1,j} = x'; end traindata{1,i+1}=temp; end Nguyễn Việt Hưng KS CLC – THCN – K48 38 % % % % % % 38 Đồ án tốt nghiệp Đồ án tốt nghiệp % Huan luyen tu so den so hmmdata = cell(1,10); for i=1:10 fprintf('\n\nHUAN LUYEN SO %d\n',i-1); sample=[]; for k=1:length(traindata{i}) x=filter([1 -0.9375], 1, traindata{i}{k}); % Trích đặc trưng tiếng nói sample(k).data=melcepst(x,fs,'M',nc,p,256,80); end hmmdata{i}=hmmtrain(sample,SM_mat,so_lan_lap); end save('hmmdata.mat') 3.4 Nhận dạng Sau huấn luyện HMM từ cho hệ thống, ta tiến hành việc nhận dạng từ nói từ số từ huấn luyện Giải thuật nhận dạng tiếng nói HMM sau: Bắt đầu Ghi âm từ cần huấn luyện, từ nói nhiều lần Trích đặc trưng từ Chuyển vector đặc sang chuỗi quan sát O Nguyễn Việt Hưng KS CLC – THCN – K48 39 Đọc HMM từ huấn luyện Tính xác suất chuỗi quan sát O với HMM từ 39 Đồ án tốt nghiệp Đồ án tốt nghiệp Chọn từ có xác suất lớn nhất, từ nhận dạng Kết thúc Hình Q trình nhận dạng dùng HMM Các hàm Matlab chính: viterbi.m : Để kiểm tra mẫu nhận dạng với thủ tục forward để tính xác suất chuổi quan sát với mơ hình HMM cho trước Điều kiện ‘viter’ có mức tương ứng với việc kết chuỗi trạng thái tốt ứng với chuỗi quan sát addpath('VOICEBOX') addpath('HMMs') load hmmdata [fname,pathname]=uigetfile('Test/*.wav'); x = wavread([pathname,fname]); set(handles.axes1); plot(x); grid minor; x=endcut(x, 500, 0.1); % cắt khoảng lặng x=filter([1 -0.9375],1,x); % Trích đặc trưng tiếng nói m = melcepst(x,fs,'M',nc,p,256,80); for j=1:10 pout(j)=viterbi(hmmdata{j},m); end % Lấy xác suất chuỗi quan sát lớn [d,n] = max(pout); set(handles.So,'String',num2str(n-1)); Nguyễn Việt Hưng KS CLC – THCN – K48 40 40 Đồ án tốt nghiệp Đồ án tốt nghiệp 3.5 Giao diện chương trình Ngồi chức huấn luyện nhận dạng chương trình có chức phát âm chữ số (từ “khơng” đến “chín”) Chạy thử kiểm tra kết Các tham số thay đổi chạy thử với liệu gồm 20 người: 13 nam nữ Các liệu thu âm micro máy tính cá nhân với mức nhiễu cao Mỗi người có mẫu: mẫu cho vào huấn luyện, mẫu cho vào kiểm tra Nguyễn Việt Hưng KS CLC – THCN – K48 41 41 Đồ án tốt nghiệp Đồ án tốt nghiệp Các vector đặc trưng trích từ MFCC gồm 13 mfcc 12 delta Các vector đặc trưng trích từ LPC có kích thước tuỳ theo bậc LPC Các kết thu ứng với tham số: Hình Kết theo kích thước codebook Chọn kích thước codebook 64 Hình Kết theo số trạng thái HMM Trích đặc trưng theo phương pháp MFCC Hình Kết theo số trạng thái HMM Kết nhận dạng đạt 76% Nhận xét kết Kết tốt đạt với phương pháp LPC bậc 8, mơ hình HMM trạng thái kích thước codebook 64 Với khả nhận dạng trung bình 80% Có thể nói kết chưa tốt bên cạnh số từ nhận dạng tốt (80- 90%) từ khác mơ hình lại cho kết khơng cao Hay nói cách khác khả nhận dạng từ khơng đồng Có nhóm từ hay bị nhận dạng nhầm với : {dừng, dưới}; {trái, chạy}; (tiến trên); (tắt, phải) Ngun nhân : Nguyễn Việt Hưng KS CLC – THCN – K48 42 42 Đồ án tốt nghiệp Đồ án tốt nghiệp Chất lượng mẫu liệu khơng cao (độ nhiễu lớn, thu từ mơi trường nhiễu khác nhau) Các tham số chọn lựa chưa tối ưu Một số từ có cách phát âm gần giống Nhận xét kết : Từ kết thu thấy phương pháp nhận dạng mạng Neuron cho kết khả quan so với sử dụng mơ hình Markov ẩn (Kết nhận dạng 94% so với 80 %) Như vậy, qua q trình thử nghiệm mơ phương pháp trích đặc trưng Quyết định cuối đưa lựa chọn mơ hình Neuron với 250 nút ẩn, hàm truyền hàm logsigmoid hàm purelin Cùng với phương pháp trích đặc trưng MFCC 13 hệ số KẾT LUẬN Nhận xét kết chung đồ án Đồ án thực việc xây dựng mơ hình nhận dạng tiếng nói, cụ thể nhận dạng từ điều khiển rời rạc: Tắt, Bật, Chạy, Dừng, Tiền, Lùi, Trái, Phải, Trên, Dưới Và tiền hành chạy thử nghiệm dựa phương pháp phân tích đặc trưng tín hiệu LPC MFCC Nguyễn Việt Hưng KS CLC – THCN – K48 43 43 Đồ án tốt nghiệp Đồ án tốt nghiệp Dựa sở liệu thu thập đưa mơ hình nhận dạng thích hợp Tuy nhiên khơng tránh khỏi số hạn chế: Số lượng mẫu ít, nên chưa khẳng định hội tụ thuật tốn Chất lượng mẫu khơng cao khơng đồng tiến hành thu máy tính cá nhân địa điểm khác Còn số hạn chế phương pháp làm việc thiếu kinh nghiệm Việc chuyển đổi thuật tốn từ Matlab sang C để cài đặt cho DSP gặp phải số sai số tính tốn Dẫn đến kết nhận dạng thực tế khơng cao chạy thử nghiệm máy tính Ngồi số khó khăn khách quan: đặc trưng từ tiếng Việt khác biệt so với từ tiếng Anh, số từ điều khiển có nhiều đặc điểm giống dẫn đến nhận dạng sai (như trái - phải; dừng - )… Trong q trình thực tập làm đồ án, sinh viên cố gắng nghiên làm việc nghiêm túc để hồn thành u cầu đề tài Từ thu kiến thức kinh nghiệm bổ ích Tuy nhiên, q trình làm việc, thân đồ án khơng tránh khỏi thiếu sót, bảo, góp ý thấy giáo giúp đỡ vơ q báu để đồ án hồn thiện TÀI LIỆU THAM KHÁO Fundamentals of speech recognition – Lawrence Rabiner – Prentice Hall 1993 A turial on Hidden Markov Model and selected applications in speech recognition – Lawrence Rabiner IEEE - 1989 Chapter 9: Automatic Speech Recognition – Speech and Language Processing: An Nguyễn Việt Hưng KS CLC – THCN – K48 44 44 Đồ án tốt nghiệp Đồ án tốt nghiệp Introduction to natural processing, computational linguistics and speech recognition – Daniel Jurafsky & James H Martin 2007 Nhận dạng tiếng Việt dùng mạng Neuron trích đặc trưng dùng LPC AMDF – Hồng Đình Chiến Speech Recognition using Neural Network – Joe Tebelskis 1995 Bài giảng mơn nhận dạng thầy Trần Hồi Linh, ĐHBK Hà Nội, 2007 Digital Signal Processing and Applications with the C6713 and C6416 DSK – Rulph Chassaing – Wiley 2004 C Algorithms For Real-Time DSP – Paul M Embree – Prentice Hall 1995 Lập trình Matlab ứng dụng – Nguyễn Hồng Hải , Nguyễn Việt Anh – NXB Khoa học kĩ thuật HN 2005 Mel frequency ceptral coefficients – Wikipedia.org link tham chiếu HMM toolbox for matlab -http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html Auditory toolbox for matlab - http://www.slaney.org/malcolm/pubs.html ECE4703 Real-Time DSP Orientation Lab - D Richard Brown III 2004 Và số tài liệu khác Nguyễn Việt Hưng KS CLC – THCN – K48 45 45