1. Trang chủ
  2. » Tất cả

(Luận văn thạc sĩ hcmute) ứng dụng fpga cho nhận dạng tiếng nói tiếng việt

113 1 0

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ TRẦN XUÂN THIỆN ỨNG DỤNG FPGA CHO NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT NGÀNH: KỸ THUẬT ĐIỆN TỬ- 605270 S KC 0 Tp Hồ Chí Minh, tháng 10 năm 2013 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ TRẦN XUÂN THIỆN ỨNG DỤNG FPGA CHO NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT NGÀNH: KỸ THUẬT ĐIỆN TỬ- 605270 Hướng dẫn khoa học: TS HỒNG TRANG Tp Hồ Chí Minh, tháng 10 / 2013 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ TRẦN XUÂN THIỆN ỨNG DỤNG FPGA CHO NHẬN DẠNG TIẾNG NÓI TIẾNG VIỆT NGÀNH: KỸ THUẬT ĐIỆN TỬ- 605270 Hƣớng dẫn khoa học: TS HỒNG TRANG GVHD: TS Hồng Trang Tp Hồ Chí Minh, tháng 10 / 2013 Luan van Trang LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƢỢC: Họ & tên: Trần Xuân Thiện Giới tính: Nam Ngày, tháng, năm sinh:20/06/1984 Nơi sinh: Phú Yên Quê quán:Phú Yên Dân tộc: Kinh Chỗ riêng địa liên lạc: Số 26/3, đƣờng Tú Xƣơng – Tăng Nhơn Phú B – Quận – Tp.HCM Điện thoại quan: (0650).3774647 Điện thoại nhà riêng: 0908787761 Fax: (0650) 3774573 E-mail: tranxuanthien.dap@gmail.com II QUÁ TRÌNH ĐÀO TẠO Trung học chuyên nghiệp: Hệ đào tạo: Thời gian đào tạo từ ……/…… đến ……/ …… Nơi học (trƣờng, thành phố): Ngành học: Đại học: Hệ đào tạo: Chính Quy Thời gian đào tạo từ08/2003đến 03/2008 Nơi học (trƣờng, thành phố): Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM Ngành học: Kỹ Thuật Điện – Điện Tử Tên đồ án, luận án môn thi tốt nghiệp: NGHIÊN CỨU IC LAYOUT VÀ THIẾT KẾ MỘT SỐ ỨNG DỤNG Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: 20/01/2008 Ngƣời hƣớng dẫn: ThS Đậu Trọng Hiển III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Nơi công tác Công việc đảm nhiệm 03/2008 – 8/2008 Công ty TNHH Micro Design Công ty Grey Stone Data 8/2008-12/2008 System Vietnam Trƣờng Cao Đẳng Nghề Công 1/2009 – Nghệ Cao Đồng An GVHD: TS Hoàng Trang Kỹ sƣ thiết kế Kỹ sƣ thiết kế Logic Giảng viên môn Điện Tử Công Nghiệp Trang i Luan van LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu tơi Các số liệu, kết nêu luận văn trung thực chƣa đƣợc công bố công trình khác Tp Hồ Chí Minh, ngày 15 tháng 10 năm 2013 (Ký tên ghi rõ họ tên) Trần Xuân Thiện GVHD: TS Hoàng Trang Trang ii Luan van LỜI CẢM TẠ  Trong thời gian thực đề tài,người thực học hỏi nhiều điều bổ ích từ Giáo Viên hướng dẫn anh chị lớp Nhân đây, người thực xin bày tỏ lòng biết ơn sâu sắc đến thầy Hoàng Trang cương vị người hướng dẫn đề tài, tận tình hướng dẫn, giúp đỡ tạo điều kiện thuận lợi cho học viên hoàn thành tốt đề tài Người thực xin chân thành cảm ơn thầy, cô khoa Điện - Điện Tử, bạn bè đóng góp ý kiến kinh ngiệm qúy báu trình thực đề tài TP.HỒ CHÍ MINH, Ngày 15tháng 10 năm 2013 Người thực Trần Xuân Thiện GVHD: TS Hồng Trang Trang iii Luan van TĨM TẮT LUẬN VĂN Vấn đề nhận dạng tiếng nói tiếng Việt đƣợc nghiên cứu phát triển Việt Nam nhiều năm qua, với nhiều thuật toán khác tảng dòng vi điều khiển, DSP,… khác Tuy nhiên vấn đề nhận dạng chƣa đạt kết tối ƣu mặc độ xác tốc độ xử lý FPGA vi mạch lập trình đƣợc, có tốc độ xử lý cao, hỗ trợ mạnh việc xử lý tín hiệu số,… đƣợc số nơi giới ứng dụng để nhận dạng xử lý tiếng nói Phần luận văn tìm hiểu nghiên cứu thuật tốn trích chọn đặc trƣng MFCC, lƣợng tử vector VQ mơ hình Markov ẩn HMM để ứng dụng vào việc nhận dạng từ đơn lẻ tiếng nói tiếng Việt nhằm mục đích nâng cao tốc độ xử lý độ xác nhận dạng Việc nhận dạng đƣợc thực thi Nios kit FPGA DE2 hãng Altera, với từ vựng gồm 10 ký tự số ký tự đơntheo ba mơ hình nhận dạng với hai kích thƣớc codebook khác Độ xác nhận dạng trung bình mơ hình thực nhận dạng 100 lần cho từ là: - Với codebook 128: mô hình có độ xác trung bình 56.5%, mơ hình có độ xác trung bình 94,73%, mơ hình có độ xác trung bình 96.87% - Với codebook 32: mơ hình có độ xác trung bình 49.2%, mơ hình có độ xác trung bình 94.8%, mơ hình có độ xác trung bình 91.53% Từ khóa:trích đặc trƣng MFCC, mơ hình Markov ẩn HMM, Lƣợng tử vector VQ, Kit DE2, Nios System, SoPC GVHD: TS Hoàng Trang Trang iv Luan van MASTER ESSAY SUMMARRY The matter of Vietnamese speech recognition has been researched and developed for many years in Viet Nam with a number of diffirent algorithm based on different families of micro – controller, DSP, etc However, does not reach the best of the aspects of exact and speed of processing FPGA is an integrate circuit that is able to be programable, high speed processing and strong on support to digital signal processing, etc, has been applied to recognition and voiceprocessing by lots of places in the world The Master Essay Summarry is going to study and research the algorithm of feature extraction method MFCC, vector quantization and the Hidden Markov Model to be applied to recognition single words of Vietnamese speech, in order to enhance the exact and speed of processing when being in the process of recognition The system recognition is carried out on Nios of Kit FPGA DE2 of Altera companywith the vocabulary including 10 numbers and single letters according to three recognition models with two different codebook sizes The average exact of the models when being applied tothe recognizing process of 100 times for each word is: - In Codebook 128: the average exact of the model is 56.5%, the average exact of the model is 94.73%, the average exact of the model is 96.87% - In Codebook 32: the average exact of the model is 49.2%, the average exact of the model is 94.8%, the average exact of the model is 91.53% Keyword:Feature extranction MFCC, Hidden Markov Model (HMM), vector quantization (VQ), Kit DE2, Nios System, SoPC GVHD: TS Hoàng Trang Trang v Luan van MỤC LỤC TRANG TRANG TỰA QUYẾT ĐỊNH GIAO ĐỀ TÀI XÁC NHẬN CỦA CÁN BỘ HƢỚNG DẪN LÝ LỊCH KHOA HỌC i LỜI CAM ĐOAN ii LỜI CẢM TẠ iii TÓM TẮT LUẬN VĂN iv MASTER ESSAY SUMMARRY v MỤC LỤC vi DANH SÁCH CÁC CHỮ VIẾT TẮT x DANH SÁCH CÁC HÌNH xi DANH SÁCH CÁC BẢNG xiii Chƣơng .1 TỔNG QUAN 1.1 TỔNG QUAN CHUNG VỀ LĨNH VỰC NGHIÊN CỨU: 1.1.1 Tổng quan nhận dạng tiếng nói: 1.1.2 Các kết nghiên cứu nƣớc: 1.2 MỤC TIÊU, KHÁCH THỂ VÀ ĐỐI TƢỢNG NGHIÊN CỨU: 1.2.1 Mục tiêu: 1.2.2 Đối tƣợng nghiên cứu: 1.3 NHIỆM VỤ CỦA ĐỀ TÀI VÀ PHẠM VI NGHIÊN CỨU: 1.3.1 Nhiệm vụ: 1.3.2 Phạm vi nghiên cứu: 1.4 PHƢƠNG PHÁP NGHIÊN CỨU: 1.5 NỘI DUNG ĐỀ TÀI: 1.6 Ý NGHĨA THỰC TIỄN CỦA ĐỀ TÀI: Chƣơng .8 ĐẶC TRƢNG TIẾNG NÓI TIẾNG VIỆT GVHD: TS Hoàng Trang Trang vi Luan van 2.1 TỔNG QUAN VỀ TIẾNG NÓI: 2.2 Các đặc trƣng Tiếng Việt: 2.2.1 Âm tiết: 2.2.2 Âm vị: 10 2.2.3 Nguyên âm phụ âm: 10 2.2.4 Thanh điệu: 11 Chƣơng 12 MƠ HÌNH NHẬN DẠNG TIẾNG NĨI TIẾNG VIỆT 12 3.1 Phân loại hệ thống nhận dạng tiếng nói: 12 3.1.1 Nhận dạng từ liên tục nhận dạng từ cách biệt: 12 3.1.2 Nhận dạng phụ thuộc ngƣời nói độc lập ngƣời nói: 12 3.2 Các yếu tố ảnh hƣởng đến kết nhận dạng tiếng nói: 14 3.3 Cấu trúc hệ nhận dạng tiếng nói: 15 3.4 Giải thuật hệ thống nhận dạng tiếng nói tiếng Việt dùng Markov ẩn: 16 3.5 Voice Acivation Detection (VAD): 17 3.6 Phƣơng pháp trích đặc trƣng tiếng nói MFCC: 18 3.6.1 Pre - emphasis: 19 3.6.2 Frame blocking: 20 3.6.3 Windowing: .21 3.6.4 Biến đổi FFT: 24 3.6.5 Lọc tần số theo thang tần số Mel: 25 3.6.6 Phân tích cepstral: 28 3.6.7 Tính tốn lƣợng: .29 3.6.8 Hệ số delta: 29 3.7 Lƣợng tử vector: 30 3.7.1 Tổng quan lƣợng tử vector (VQ): 30 3.7.2 Cấu trúc tập huấn luyện VQ: .31 3.7.3 Đo độ méo: 32 3.7.4 Phân nhóm vector huấn luyện: 32 GVHD: TS Hoàng Trang Trang vii Luan van PHỤ LỤC Chƣơng trình nhận dạng MFCC 256 mơ hình 3: #include #include #include #include #include #include #include #include "sys/alt_flash.h" #include "altera_up_avalon_audio.h" #include "altera_up_avalon_character_lcd.h" #include "cb_h.h" #include "A_h.h" #include "B_h.h" #include "Pi_h.h" #include "cos_table.h" #include "sin_table.h" #include "cos_dct.h" #include "FilCoef.h" #define Fs 8000 #define L 240 #define L_frame 160 #define P 12 #define Qc 13 #define Q 13 #define deltaL 80 #define N #define Kmax 128 #define W 15 #define LO 100 #define Lmax 6000 #define Num 256 #define Num_sub 74 #define NUM_POINT 256 #define n_FFT GVHD: TS Hoàng Trang Trang 83 Luan van #define NUM_FILTER 23 #define PI 3.141593 #define bitrev(b) (((b)7)&0x01) #define FLASH_MEMORY_OFFSET typedef float featurevector[Num+1]; typedef int vi_featurevector[Num+1]; typedef float codebook [Kmax+1]; typedef float setfeaturevector[(W+1)*(LO+1)*(Num+1)]; typedef float matrixA [N+1];typedef float matrixB [N+1]; typedef float matrix_alpha [Num+1]; typedef short int index_train [LO+1]; typedef float array_codebook [2*Q+1][Kmax+1]; typedef float datatrain [LO+1][2*Q+1][Num+1]; typedef float array_A [N+1][N+1]; typedef float array_B [Kmax+1][N+1]; typedef float array_Pi1 [N+1]; float thv=0.0001; float thvr=100; alt_up_character_lcd_dev* lcd_dev; alt_flash_fd * fd; int main(void) { int readflash(array_codebook *cb_m,array_A * A_m,array_B * B_m,array_Pi1 * Pi1_m); void mainrecogn(array_A * A_m,array_B * B_m,array_Pi1 * Pi1_m,array_codebook * cb_m); codebook *cb= (codebook*)calloc(Q*2+1, sizeof (codebook)); array_codebook * cb_m = (array_codebook *)calloc(W+1, sizeof (array_codebook)); array_A * A_m = (array_A *)calloc(W+1, sizeof (array_A)); array_B * B_m = (array_B *)calloc(W+1, sizeof (array_B)); array_Pi1 * Pi1_m = (array_Pi1 *)calloc(W+1, sizeof (array_Pi1)); char str[10]; char welcome[40]="Wellcome\0"; char c; short int i,j,k,K,T,w,q,tam,tam1, index1; lcd_dev = alt_up_character_lcd_open_dev ("/dev/Char_LCD_16x2"); if ( lcd_dev == NULL) alt_printf ("Error: khong the mo thiet bi LCD \n"); else { alt_up_character_lcd_init(lcd_dev);alt_up_character_lcd_string(lcd_dev,"HMM Speech"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1);alt_up_character_lcd_string(lcd_dev,"Recognition"); } readflash(cb_m,A_m,B_m,Pi1_m); printf(" \n\n Muon nhan dang (y/n)?\n"); scanf("%s",str); if(str[0]=='y') {while(1) {mainrecogn(A_m,B_m,Pi1_m,cb_m);}} free(cb); free(cb_m); free(A_m); free(B_m); free(Pi1_m); return 0; } void mainrecogn(array_A * A_m,array_B * B_m,array_Pi1 * Pi1_m,array_codebook *cb_m) GVHD: TS Hoàng Trang Trang 84 Luan van { int audiorecord(short int * data); void hmmrecog(short int *data,array_A * A_m,array_B * B_m,array_Pi1 * Pi1_m,array_codebook * cb_m, short int *guess, float *logp); short int * data = (short int *)calloc(Fs+1, sizeof (short int)); short int * guess = (short int *)calloc(1, sizeof (short int)); float * logp = (float *)calloc(W+1, sizeof (float)); int i; short int w, g; short int m=Lmax+1; while(m>Lmax) { alt_up_character_lcd_init(lcd_dev);alt_up_character_lcd_string(lcd_dev,"Moi doc vao!"); audiorecord(data);m=*data; } alt_up_character_lcd_init(lcd_dev);alt_up_character_lcd_string(lcd_dev,"nhan dang "); { g = *guess; if(*guess==1) { printf("\n kq = mot \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:");alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," mot"); } if(*guess==2) { printf("\n kq = hai \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:");alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," hai"); } if(*guess==3) { printf("\n kq = ba \n");alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," ba"); } if(*guess==4) { printf("\n kq = bon \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," bon"); } if(*guess==5) GVHD: TS Hoàng Trang Trang 85 Luan van { printf("\n kq = nam \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," nam"); } if(*guess==6) { printf("\n kq = sau \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," sau"); } if(*guess==7) { printf("\n kq = bay \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," bay"); } if(*guess==8) { printf("\n kq = tam \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," tam"); } if(*guess==9) { printf("\n kq = chin \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," chin"); } if(*guess==10) { printf("\n kq = muoi \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," muoi"); } if(*guess==11) { printf("\n kq = tien \n"); alt_up_character_lcd_init(lcd_dev); GVHD: TS Hoàng Trang Trang 86 Luan van alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," tien"); } if(*guess==12) { printf("\n kq = lui \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," lui"); } if(*guess==13) { printf("\n kq = trai \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," trai"); } if(*guess==14) { printf("\n kq = phai \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," phai"); } if(*guess==15) { printf("\n kq = dung \n"); alt_up_character_lcd_init(lcd_dev); alt_up_character_lcd_string(lcd_dev,"kq:"); alt_up_character_lcd_set_cursor_pos(lcd_dev,0,1); alt_up_character_lcd_string(lcd_dev," dung"); } } usleep(4000000); for(w=1;w

Ngày đăng: 02/02/2023, 10:01

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w