(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI

108 2 0
(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI(Luận văn thạc sĩ) Nhận dạng tiếng nói dùng giải thuật trích đặc trưng MFCC và lượng tử vector trên KIT DSKTMS320C6713 của TI

LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tp Hồ Chí Minh, ngày 20 tháng năm 2013 (Ký tên ghi rõ họ tên) Huỳnh Lâm Đồng ii LỜI CẢM ƠN Em xin chân thành cảm ơn thầy Hồng Trang tận tình hướng dẫn em việc thực luận văn Thầy giành quan tâm, thời gian chia sẻ gần gũi để giúp em hiểu giải khó khăn trình thực đề tài nhận dạng tiếng nói Thầy cung câp tài liệu định hướng để em hồn thành luận văn sớm Em xin chân thành cảm ơn khoa Điện – Điện tử đặc biệt môn Điện tử tạo điều kiện để em có thể thực đề tài Mình xin cảm ơn bạn lớp cao ho ̣c Điê ̣n – Điê ̣n Các bạn chia sẻ kinh nghiệm hiểu biết với mình gặp khó khăn khúc mắc chưa thể giải Cuối với tấ t cả tấ m lòng xin cảm ơn gia đình ln quan tâm, chia sẻ động viên để hồn thành chương trình học cách tốt iii TĨM TẮT LUẬN VĂN Trong nhiều thập niên gần đây, việc điều khiển thơng qua nhận dạng tiếng nói tự động (ASR) nhận quan tâm lớn thông qua nhiều ứng dụng Có nhiều giải thuật đưa q trình trích đặc trưng, huấn luyện nhận dạng Thuật tốn nhận dạng tiếng nói thơng qua q trình trích đặc trưng hệ số MFCC (Mel frequency cepstrum coefficient) xây dựng Codebook phương pháp lượng tử vector hai phương pháp đặt tảng cho thuật tốn nhận dạng tiếng nói khác chúng sử dụng cách rộng rãi nhiều ứng dụng Trong luận văn này, đánh giá thuật tốn nêu thơng qua việc xây dựng chương trình nhúng KIT DSP, mà cụ thể KIT DSKTMS320C6713 với tảng xử lý TMS320C6000 Nội dung luận văn chia thành hai phần chính: phần đầu luận văn trình bày nội dung thuật tốn trích đặc trưng MFCC lượng tử vector nhận dạng tiếng nói Đồng thời, xây dựng phần mềm MATLAB mơ giải thuật để có hình dung khái quát trình nhận dạng Phần thứ hai luận văn xây dựng chương trình nhúng KIT DSKTMS320C6713 Chương trình nhúng gồm có hai phần: huấn luyện nhận dạng Trong hai phần, tiếng nói ghi âm xử lý trực tiếp thông qua IC CODEC mã hóa âm AIC2381, liệu số hóa 16bit chuẩn bị cho q trình huấn luyện nhận dạng Ngồi để đẩy nhanh q trình tính tốn đánh giá, liệu tiếng nói cịn lưu thành file header CCS KIT DSP lấy liệu trực tiếp từ file q trình tính tốn Q trình đánh giá thực thông qua việc thay đổi trực tiếp thông số file liệu Bộ xử lý DSP C6713 với kiến trúc tập lệnh VLIW khả xử lý dấu chấm động floating-point; việc đảm bảo độ xác cao cho phép tính Phạm vi giá trị phép tính mở rộng phạm vi Single (32bit) double (64bit) Các liệu q trình tính tốn bao gồm codebook huấn luyện mẫu âm cần nhận dạng lưu nhớ SDRAM 16MB Số lượng từ vựng cần nhận dạng phụ thuộc vào iv dung luợng nhớ Bộ nhớ mở rộng thông qua giao tiếp nhớ mở rộng bên ngồi EMIF Q trình huấn luyện sử dụng liệu tiếng nói ghi âm trực tiếp KIT từ file liệu lưu sẵn Dữ liệu xử lý trích đặc trưng MFCC thành tập hệ số cho từ cần huấn luyện Thông qua giải thuật lượng tử vector xây dựng codebook cho từ cần huấn luyện dựa hệ số MFCC Trong q trình nhận dạng liệu tiếng nói ghi âm trực tiếp KIT từ file liệu lưu sẵn Dữ liệu xử lý trích đặc trưng MFCC thành tập hệ số cho từ cần nhận dạng Khoảng cách Euclide tính tốn tập hệ số so với tập huấn luyện gồm codebook lưu phần Khoảng cách Euclide nhỏ xác định mẫu tiếng nói cần nhận dạng Đánh giá thuật tốn nhận dạng dựa kết nhận dạng tập liệu từ số đếm từ đến mười và từ “trái, phải, trên, dưới, trước, sau” Mỗi từ đánh giá 100 lần Thuật toán đánh giá sở điều chỉnh thơng số q trình huấn luyện nhận dạng: kích thước frame âm thanh, khoảng chồng lấn frame, kích thước codebook Để tăng tính xác, khách quan trình đánh giá liệu phần huấn luyện nhận dạng lấy mẫu theo phương pháp từ ghi âm, xử lý, tính tốn sai số iv ABSTRACT In recent decades , the control through automatic speech recognition ( ASR ) received great attention by many applications There are many algorithms given in the quote process characteristics , training and recognition Speech recognition algorithm through characteristic coefficients extracted MFCC ( Mel frequency cepstrum coefficient ) and the construction of codebook by vector quantization methods are based two methods for speech recognition algorithms and their other been widely used in many applications In this essay , I will evaluate the above algorithms through building programs on embedded DSP KIT , KIT DSKTMS320C6713 in particular with a platform TMS320C6000 processor The contents of the thesis is divided into two main parts : the first part of the paper presents algorithms extract the contents of MFCC features and vector quantization in speech recognition At the same time , building simulation software MATLAB algorithms to visualize an overview of the identification process The second part of the thesis will build on KIT DSKTMS320C6713 embedded programs Embedded program consists of two parts : training and recognition In both sections , the voices were recorded and processed directly through IC AIC2381 audio codec , 16bit digitized data prepared for the training and recognition In addition to accelerating the calculation and assessment , the voice data is stored in the file header on the CCS KIT DSP will retrieve data directly from the file in the calculation process The evaluation process can be done through changing the parameters directly on the data file C6713 DSP processor with VLIW instruction set architecture and the ability to handle floating point floating-point , this ensures high precision calculations Scope value calculations can be extended within single ( 32-bit ) or double ( 64bit ) The data in the calculation process includes trained codebook and to recognize sound patterns that are stored on 16MB SDRAM memory The number of iv required vocabulary recognition depends on the memory capacity The memory can be expanded via memory interface EMIF external expansion Training process using voice data is recorded directly in the KIT or from stored data files Data processing extract MFCC features into a set of coefficients for each word training Through the algorithm for vector quantization codebook built from need -based training MFCC coefficients In the process of identifying the voice data is recorded directly on the KIT or from stored data files Data processing extract MFCC features into a set of coefficients for each word to be recognized Euclidean distance is computed on the set of coefficients from the training set consists of codebook has stored in the previous section Smallest Euclidean distance to determine the required sample voice recognition Rating recognition algorithm based on the recognition results from the data set the count from one to ten and and the words " trái (left) , phải (right), (top) , (bottom) , trước (front), sau (back)" Each word is evaluated 100 times The algorithm is evaluated on the basis of adjusting the parameters of the training process and identity : the frame size of audio , some overlap between the frames , the codebook size To increase the accuracy and objectivity of the assessment process , the data in both the training and recognition is sampled by the same method of recording , processing , calculation errors iv MỤC LỤC Trang tựa Quyết định giao đề tài Lý lịch cá nhân Lời cam đoan Cảm tạ Tóm tắt Mục lục Danh sách chữ viết tắt Danh sách hình Danh sách bảng Chƣơng TỔNG QUAN 1.1 Giới thiêụ 1.2 Tình hình nghiên cƣ́u và ngoài nƣớc 1.3 Tính cấp thiết đề tài 1.4 Mục tiêu nghiên cứu luận văn 1.5 Nhiêm ̣ vu ̣ luâ ̣n văn 1.6 Đối tƣợng phạm vi 1.7 Cấu trúc luận văn Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Tín hiệu tiếng nói 2.2 Phân loa ̣i các phƣơng pháp nhâ ̣n da ̣ng âm 2.2.1 Phương pháp ngữ âm 2.2.2 Phương pháp nhâ ̣n da ̣ng mẫu 2.2.3 Phương pháp trí thông minh nhân ta ̣o 2.2.4 Mạng noron và ứng dụng nhận dạng âm 2.3 Thuâ ̣t toán trích đă ̣c trƣng MFCC 2.3.1 Frame Blocking 2.3.2 Trích đặc trưng MFCC (Mel-scale Frequency Cepstral Coefficient) 2.3.2.1 Windowing 2.3.2.2 Phân tích phổ FFT 2.3.2.3 Mel frequency filter Bank 2.3.2.4 Phân tích cepstral 2.4 Lƣơ ̣ng tƣ̉ vector VQ Chƣơng THƢ̣C HIỆN HỆ THỐNG NHẬN DẠNG TIẾNG NÓI TRÊN MATLAB v TRANG i ii iii iv v vi vii viii 1 5 6 8 12 12 13 14 15 16 16 20 22 23 25 28 34 39 3.1 Tách từ 3.2 Tính lƣợng 3.3 Pre_emphasis 3.4 Windowing 3.5 Tính FFT 3.6 Tính biên độ 3.7 Mel-filter bank 3.8 Tinh log 3.9 Tính hệ số cepstral 3.10 Kết Chƣơng THƢ̣C HIỆN HỆ THỐNG NHẬN DẠNG TIẾNG NÓI TRÊN KIT DSKTMS320C6713 4.1 Bộ xử lý tín hiệu số TMS320C6713 4.2 Code Composer Studio 4.3 Tổng quan kit DSKTMS320C6713 4.4 Xây dựng hệ thống nhận dạng âm Kit DSP DSKTMS320C6713 4.4.1 Huấn luyện 4.4.1.1 Record 4.4.1.2 Framing Windowing 4.4.1.3 FFT 4.4.1.4 Power spectrum 4.4.1.5 Mel frequency spectrum 4.4.1.6 Log energy 4.4.1.7 Biến đổi Cosine rời rạc DCT 4.4.1.8 Lượng tử vector VQ 4.4.2 Nhận dạng Chƣơng KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC v 39 41 41 41 41 42 42 42 42 43 48 48 50 53 56 57 59 60 61 62 63 65 66 68 73 82 84 86 DANH SÁCH CÁC CHỮ VIẾT TẮT MFLOPS floating-point operations per second MIPS instructions per second MMACS million multiply-accumulate operations per second VLIW very-long-instruction-word L1P Level program L1D Level data TI Texas Instruments CCS Code composer studio COFF common object file format CCSv5 Code composer studio version CSL Chip support library BSL Board support library DSK DSP starter kit ADC analog digital converter DAC digital ananog converter MFCC Mel-frequency cepstral coefficients FFT Fast Fourier transform ASR Automatic speech recognition vi DANH SÁCH CÁC HÌNH BẢNG TRANG Hình 2.1: Cấu tạo quan phát âm Hình 2.2: Cấu tạo tai người Hình 2.3: Dạng sóng theo thời gian 11 Hình 2.4: Dạng sóng miền tần số 12 Hình 2.5: Sơ đồ khối trình huấn luyện nhận dạng âm 16 Hình 2.6: Tín hiệu âm chia thành sub-frame 18 Hình 2.7: Tín hiệu âm trước sau qua khối pre-emphasis 20 Hình 2.8: Phở tín hiệu trước sau qua khối pre-emphasis 20 Hình 2.9: Sơ đồ trích đặc trưng MFCC 21 Hình 2.10: Cửa sở Hamming 22 Hình 2.11: Trước nhân cửa sở hamming 23 Hình 2.12: Tín hiệu sau nhân cửa sở hamming 23 Hình 2.13: Thang tần số Mel 25 Hình 2.14: Bộ lọc Mel frequency 26 Hình 2.15: Quá trình tạo hệ số sau qua dãy lọc 27 Hình 2.16: Các hệ số MFCC sau trích đặc trưng 31 vii Bảng 8:Kết nhận dạng mơ hình Codebook gồm 16 codeword, 256 mẫu frame, chồng lấn 156 mẫu, số lượng từ vựng từ có tỉ lệ nhận dạng trung bình 96% 1 94 100 96 5 100 4 92 94 Bảng mô tả kết mơ hình nhận dạng tiếng nói sử dụng thuật tốn trích đặc trưng MFCC lượng tử vector VQ với kích thước Codebook gồm 16 codeword, 256 mẫu frame âm thanh, chồng lấn 156 mẫu, với số lượng từ vựng nhỏ gồm từ (số đến 6) Mơ hình xây dựng Kit DSK TMS320C6713 Hàng dọc từ dùng để nhận dạng, số kết nhận dạng thể đường chéo, hàng ngang thể số lần nhận dạng sai Kết nhận dạng đạt tỉ lệ trung bình 96% 81 Chƣơng 5: KẾT LUẬN Dựa kết nhận dạng tiến hành phần cứng DSK TMS320C6713 ta nhận thấy kết nhận dạng sau: Chương trình nhận dạng đạt kết tốt mơ hình Codebook gồm có 16 codeword áp dụng frame âm 256 mẫu, chồng lấn 156 mẫu; có tỉ lệ nhận dạng 89.8% Kết nhận dạng trường hợp sử dụng Codebook codeword hơn; trường hợp sử dụng codeword, 200 mẫu frame âm thanh, chồng lấn 100 mẫu có tỉ lệ 78.8% Điều giải thích giảm kích thước Codebook sai số lượng tử tăng lên điều dẫn đến tỉ lệ nhận dạng Giống trình số hóa tín hiệu tỉ lệ nhận dạng tăng khơng tuyến tính với gia tăng kích thước Codebook Ở giá trị lớn gia tăng thêm kích thước Codebook khơng làm thay đổi nhiều tỉ lệ nhận dạng Trong mô hình sử dụng kích thước Codebook ta xét ảnh hưởng số mẫu frame âm số mẫu chồng lấp: trường hợp 256 mẫu frame chồng lấp 156 mẫu cho kết tốt ba trường hợp Trường hợp 200 mẫu frame âm thanh, chồng lấn 100 mẫu cho kết Điều cho thấy kích thước frame độ chồng lấn mẫu có ảnh hưởng đến kết nhận dạng Trong mô hinh kết nhận dạng không từ Các tỉ lệ ta lấy trung bình từ Nếu xét riêng từ, có từ đạt tỉ lệ cao có từ lại đạt tỉ lệ thấp Nhưng chuyển sang mơ hình nhận dạng với kích thước Codebook thay đổi tỉ lệ nhận dạng từ tăng lên rỏ rệt Tỉ lệ nhận dạng từ tăng lên nhiều số lượng từ vựng giảm xuống từ 16 từ từ Đối với trường hợp mơ hình nhận dạng Codebook gồm 16 codeword, 256 mẫu frame, chồng lấn 156 mẫu, số lượng từ vựng từ có tỉ lệ nhận dạng trung bình 96% Tỉ lệ cao so với mơ hình số từ vựng 16 từ tương ứng với 89.8% Từ ta rút kết luận việc nhận dạng tiếng nói 82 cách trích đặc trưng MFCC lượng tử vector VQ gặp vấn đề hạn chế số lượng từ vựng Phương pháp tối ưu với số lượng từ vựng nhỏ, sai số nhiều tập từ vựng nhiều Ưu điểm nhận dạng tiếng nói dùng phương pháp trích đặc trưng MFCC lượng tử vector VQ q trình tính tốn thực khơng q phức tạp với độ xác cao yêu cầu số lượng từ vựng không lớn Kết nhận dạng tốt lượng từ vựng tăng lên khí áp dụng số phương pháp khác hiệu HMM hày dùng mạng Noron Hƣớng phát triển luận văn: Việc đánh giá phương pháp nhận dạng tiến hành nhiều thơng số khác như: kích thước FFT, mơ hình lọc Mel gồm số lọc kiểu lọc, loại cửa sổ sử dụng trình tiền nhấn… Việc đánh giá tổng hợp thơng số đưa giải pháp nhận dạng tối ưu cho phương pháp nhận dạng Thực nhận dạng tiếng nói sử dụng phương pháp khác HMM, mạng Noron Từ rút ưu nhược điểm phương pháp Rút kết luận trường hợp cụ thể phương pháp sử dụng 83 TÀI LIỆU THAM KHẢO TIẾNG VIỆT GS.TSKH Bạch Hưng Khang, Nghiên cứu phát triển công nghệ nhận dạng, tổng hợp xử lý ngôn ngữ tiếng Việt Viện công nghệ thông tin Bài giảng xử lý tiếng nói Trường Đại Học Hàng Hải Việt Nam – Khoa Công Nghệ Thông Tin – Bộ Môn Hệ Thống Thông Tin, 2011 Lê Bá Dũng, Tài liệu tham khảo mơ học Xử lý tiếng nói Khoa Công nghệ Thông tin – Trường Đại học Hàng Hải Việt Nam Ths Phùng Chí Dũng, Nhận dạng tiếng nói dùng mạng Noron nhân tạo PGS.TS Hồng Đình Chiến, Nhận dạng tiếng Việt dùng mạng neuron kết hợp trích đặc trưng dùng LPC AMDF, 2005 Hồ Tú Bảo, Lương Chi Mai, Về xử lý tiếng Việt công nghệ thông tin Viện Công nghệ Thông tin – Viện khoa học công nghệ tiên tiến Nhật Bản Nguyễn Quốc Đính, Luận văn Thiết kế nhận dạng tiếng nói dựa tảng DSP TMS320C2812 ĐH Bách Khoa TPHCM Đặng Ngọc Đức, Luận văn Nghiên cứu ứng dụng mạng neuron mơ hình Markov ẩn nhận dạng tiếng Việt ĐH KHTN, ĐH Quốc Gia Hà Nội Hà Thúc Phùng, Luận văn Nhận dạng tiếng Việt dùng mơ hình Markov ẩn ĐH Bách Khoa TP.HCM 10 Nguyễn Thanh Phương, Luận văn Nhận dạng tiếng nói dùng mơ hình Markov ẩn ĐH Bách Khoa TP.HCM 11 Một số tài liệu Web tải Website: mica.com.vn, bk02.sourceforge.net/vspeechsdk …… TIẾNG NƢỚC NGOÀI Mohamed D., Jean-Paul H., Amrance H Improved vector quantization approach for discrete HMM speech recognition system The international Arab Journal of Information technology 84 Lawrence R., Biing-Hwang J Fundamentals of speech recognition Prentice-Hall International, Inc The HTK Book (Version 3.4) Cambridge University Engineering Department Andrew W Hidden Markov Models School of Computer Science Carnegie Mellon University TMS320C6000 Chip Support Library API Reference Guide Texas Instruments Incorporated, 2004 Jeremy Bradbury Linear Predictive Coding.Prentice-Hall International Inc ,December 5, 2000 L Tien Thuong, and H.Dinh Chien Vietnamese Speech Recognition Applied to Robot Communications National University of Ho Chi Minh City, Jan,2004 Rulph Chassaing Digital Signal Processing and Applications with the C6713 and C6416 DSK A John wiley & Sons, INC, Publication, 2004 Một số tài liệu Web tải website: TI.com, spectrumdigital.com, cmusphinx.sourceforge.net…… 85 PHỤ LỤC Một số hàm tính tốn quan trọng chip DSP TMS320C6713 Hàm tính tốn biến đổi Fourier nhanh /* Ham de tinh toan bien doi Fourier nhanh */ void fft (struct buffer *input_data, int n, int m) {/* Du lieu am thanh, n = 2^m, m = tong so tang*/ int n1,n2,i,j,k,l,row_index; /* Khai bao bien*/ float xt,yt,c,s,e,a; /* Khai bao bien luu gia tri tam * xt,yt cho phan thuc phan ao * c cho cosine * s cho sine * e va a cho tin toan ngo vao cosine va sine */ for ( row_index = 0; row_index < row_length; row_index++) { /* Cho moi frame */ /* Lap qua tat ca cac tang */ n2 = n; for ( k=0; kdata[row_index][i].real = input_data->data[row_index][i].real+input_data>data[row_index][l].real; yt = input_data>data[row_index][i].imag - input_data>data[row_index][l].imag; 86 input_data->data[row_index][i].imag = input_data->data[row_index][i].imag+input_data>data[row_index][l].imag; input_data->data[row_index][l].real = c*xt + s*yt; input_data->data[row_index][l].imag = c*yt - s*yt; } } } /* Dao bit */ j = 0; for ( i=0; idata[row_index][j].real = input_data->data[row_index][i].real; input_data->data[row_index][i].real = xt; yt = input_data->data[row_index][j].imag; input_data->data[row_index][j].imag = input_data->data[row_index][i].imag; input_data->data[row_index][i].imag = yt; } } } return; } Hàm tính tốn Log phổ tần số Mel /* Ham tinh toan Log cua tan so Mel */ void log_energy(struct mfcc *co_eff) { int i,j; /* Bien dem*/ for ( i=0; idata[i][j]); /* Tinh toan log cua he so */ } } 87 } Hàm tính tốn biến đổi Cosine rời rạc /* Ham tinh toan bien doi Cosine roi rac */ void mfcc_coeff(struct mfcc *mfccct, struct mfcc *co_eff) { int i,j,k; /* Bien dem */ for ( i=0; idata[i][j] + co_eff->data[i][k]*cos((double)((PI*j*(k1/2))/Number_Of_Filters)); } } } } Hàm tính tốn sai số Eucidean chuyển thành vector /* Ham tinh toan sai so Euclidean va chuyen vector */ void mfcc_vect(struct mfcc *mfccct, float *mfccvector) { int i,j; /* bien dem */ for ( i=0; i< Number_Of_Filters; i++ ) { /* So bo loc*/ mfccvector[i] = 0; /* Khoi tao gia tri bang */ for (j=0; j< row_length; j++) { mfccvector[i] = mfccvector[i] + ((mfccct>data[j][i])*(mfccct->data[j][i])); } } } Hàm tính tốn phổ cơng suất tín hiệu ngõ vào /* Ham tinh toan cong suat cua tin hieu ngo vao */ power_spectrum(struct buffer *input_data) { int i,j; /* Bien dem*/ for (i=0; idata[i][j].real = ((input_data>data[i][j].real)*(input_data->data[i][j].real))+ ((input_data->data[i][j].imag)*(input_data>data[i][j].imag)); } } return; /* Tro ve chuong trinh chinh */ } Hàm tính tốn tần số Mel /* Ham tinh toan tan so Mel */ void mel_freq_spectrum(struct buffer *input_data, struct mfcc *mfcc_coeff) { int i,j,k; /* Bien dem*/ for ( j=0; jdata[j][k].real*0.0); } else if ( k > H[i] && k < H[i+1] ) { mfcc_coeff->data[j][i] = mfcc_coeff>data[j][i] + (input_data->data[j][k].real*((k-H[i])/(H[i+1] - H[i]))); } else if ( k > H[i+1] && k < H[i+2] ) { mfcc_coeff->data[j][i] = mfcc_coeff>data[j][i] + (input_data->data[j][k].real*((H[i+2]k)/(H[i+2] - H[i+1]))); } } } } return; /*Tro ve chuong trinh chinh */ } Hàm tách tín hiệu âm va sau thực Framing windowing 89 /* Ham tach tin hieu am va sau thuc hien Framing va Windowing */ int framing_windowing(short sample, struct buffer *real_data) { int signal; int ret = 0; /* gia tri tra ve */ signal = detect_envelope(block_dc(sample));/*tach muc nang luong cua mau am dung de tach vi tri bat dau cua tu*/ if (signal_on) { if ( (column_index data[row_index][column_index].real = ((float)sample)*hamming_window[column_index]; } if ( (column_index >= 100) && ((row_index+1) < row_length)) { /* Thuc hien windowing va Framing */ real_data->data[row_index+1][column1_index].real = ((float)sample)*hamming_window[column1_index]; column1_index++; /* Tang mau cho frame thu hai chong lan 156 mau*/ } if ( (column_index >= 200) && ((row_index+2) < row_length )) { /* Thuc hien windowing va Framing */ real_data->data[row_index+2][column2_index].real = ((float)sample)*hamming_window[column2_index]; } column_index++; /* Tang so mau cua frame dau tien */ if ( column_index >= column_length ) { column_index = column1_index; column1_index = column2_index; row_index++; /* Tang chi so hang */ column2_index = 0; } 90 if ( row_index > row_length) { ret = row_index; //khi da day frame thi tra ve chi so row_index signal_on = 0; row_index = 0; column_index = 0; column1_index = 0; column2_index = 0; } } else if (signal > threshold_high) { /* Neu tin hieu ngo vao du lon */ /* Thuc hien windowing va Framing */ real_data->data[row_index][column_index].real = ((float)sample)*hamming_window[column_index]; column_index++; /* Tang so mau */ signal_on = 1; /* Bat dau thu tin hieu */ } return ret; /* Tro ve chuong trinh chinh */ } Hàm huấn luyện theo phƣơng pháp lƣợng tử vector void vector_quantization(struct mfcc *data,struct cbook *yy ) { //Khoi tao gia tri zero ban dau for ( i=0; i < size_cbook ; i++ ) { /* Tong so frame */ for ( j = 0; j < Number_Of_Filters ; j++) { /* Tong so mau mot frame */ codebk [i][j] = 0.0; /* Khoi tao phan thuc */ yy->codebook [i][j] = 0.0; /* Khoi tao phan ao*/ } } 91 mtemp=1; //ban dau khoi tao codebook vector /*Chuong trinh tinh gia tri trung binh cua 100 frame lam codeword cua codebook dau tien*/ for (k=0;kcodebook[j][k]); if(dist1 < dist2){ dist2=dist1; //Cap nhat gia tri meo nho nhat index=j; //luu chi so codeword phu hop nhat voi frame dang xet } } ++bin[index]; //tang don vi tai vi tri codeword co sai so voi frame nho nhat for(k=0;kdata[i][k]; //cong don cac frame gan giong nhat totd1=totd1+dist2; //cong don gia tri meo nho nhat cua cac frame doi voi codebook } /* ket thuc i>=row_length */ //Chuong trinh cap nhat lai codebook for(j=0;j 0) { for(k=0;kcodebook[j][k]=codebk[j][k]; } } } 93 totd1/=(float) row_length*Number_Of_Filters; //meo trung binh tren phan tu drel=(totd2-totd1)/totd1; flag1 = 1; if(drel > 0.001) { //do giam sai so nho hon 1000 lan so voi gia tri sai so thi dung chuong trinh (flag1=1) flag1 = 0; totd2=totd1; } } /* chuong trinh ket thuc flag1=1 */ } /* ket thuc mtemp>=cb_size */ } 94 ... thực giải thuật tách từ, trích đặc trưng ti? ??ng nói, thực huấn luyện nhận dạng ti? ??ng nói dùng thuật tốn trích đặc trưng ti? ??ng nói MFCC thuật tốn lươ ̣ng tử vectơ VQ Cụ thể có bước chính: - Trích. .. thơng qua nhận dạng ti? ??ng nói tự động (ASR) nhận quan tâm lớn thông qua nhiều ứng dụng Có nhiều giải thuật đưa trình trích đặc trưng, huấn luyện nhận dạng Thuật tốn nhận dạng ti? ??ng nói thơng... học, kỹ thuật nhận dạng ti? ??ng nói có ti? ??n vượt bậc, thực phương pháp giải thuật đại hiệu ngày cao 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 (classify) thơng tin đầu vào tín

Ngày đăng: 16/12/2022, 18:36

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan