1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

109 2 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

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

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 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 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 Xn Thiện GVHD: TS Hồng Trang Trang iii 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 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 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 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 Chƣơng 4: 34 MƠ HÌNH MARKOV ẨN HMM 34 4.1 Quá trình Markov: 34 4.2 Mơ hình Markov ẩn: 36 4.3 Giải pháp toán học cho ba toán mơ hình Markov ẩn: 39 4.3.1 Bài toán 1: .39 4.3.2 Bài toán 2: .42 4.3.3 Bài toán 3: .43 4.4 Các loại mơ hình Markov ẩn: 46 Chƣơng 5: 48 KIT DE2 CỦA HÃNG ALTERA .48 5.1 Tổng quan kit DE2: 48 5.2 Tổng quan SoPC FPGA: 49 5.3 Thiết lập hệ thống NIOS kit DE2: 50 Chƣơng 6: 54 THIẾT KẾ HỆ THỐNG NHẬN DẠNG TRÊN KIT DE2 VÀ KẾT QUẢ ĐẠT ĐƢỢC .54 6.1 Mơ hình 1: 55 6.1.1 Lấy mẫu tách khoảng lặng: 55 6.1.2 Trích đặc trƣng MFCC: 57 6.1.3 Lƣợng tử vetor VQ: .58 6.1.4 Huấn luyện mô hình HMM: 59 6.1.5 Lƣu đồ giải thuật nhận dạng: 62 6.2 Mơ hình 2: 63 6.3 Mơ hình 3: 65 6.3.1 Trích đặc trƣng MFCC: 65 6.3.2 Huấn luyện mơ hình HMM: 67 6.3.3 Giải thuật nhận dạng: 68 6.4 Kết thực hiện: 68 GVHD: TS Hoàng Trang Trang viii 6.4.1 Kết nhận dạng: 68 6.4.1.1 Kết nhận dạng mơ hình 1: 69 6.4.1.2 Kết nhận dạng mô hình 2: 71 6.4.1.3 Kết nhận dạng mơ hình 3: 73 6.4.2 Kết đánh giá số xung clock mơ hình: 75 6.4.2.1 Mơ hình 1: 75 6.4.2.2 Mô hình 2: 76 6.4.2.3 Mơ hình 3: 77 6.5 Nhận xét kết quả: 78 Chƣơng 7: 79 KẾT LUẬN 79 7.1 Kết Luận: 79 7.1.1 Những mục tiêu đạt đƣợc: .79 7.1.2 Hạn chế đề tài : 80 7.2 Hƣớng phát triển đề tài: 80 TÀI LIỆU THAM KHẢO 81 PHỤ LỤC 83 GVHD: TS Hoàng Trang Trang ix DANH SÁCH CÁC CHỮ VIẾT TẮT MFCC Mel Frequency Cepstrum Coefficients VQ Vector Quantization LPC Linear Predictive Coding DSP Digital Signal Proccesing HMM Hidden Markov Model CD-HMM Continuous Density – Hidden Markov Model VAD Voice Acivation Detection DFT Discrete Fourier Transform FFT Fast Fourier Transform DCT Discrete Cosin Transform FPGA Field Programmable Gate Array RAM Random Access Memory SRAM Static Random Access Memory SDRAM Synchronous Dynamic Random Access Memory PLL Phase Locked Loop JTAG Joint Test Action Group SD Secure Digital SPI Serial Peripheral Interface TV Television SoPC System on a Programmable Chip ADC Analog to Digial Converter DAC Digial to Analog Converter UART Universal Asynchronous Receiver/Transmitter BGA Ball Grid Array LEs Logic Elements DPDT Double Pole Double Throw LBG: Linde-Buzo-Gray GVHD: TS Hồng Trang Trang x DANH SÁCH CÁC HÌNH HÌNH TRANG Hình 1: Ngƣời nói khác phát âm khác 13 Hình 2: Mơ hình nhận dạng tiếng nói bán độc lập ngƣời nói .14 Hình 3: Cấu trúc tổng quát hệ thống nhận dạng tiếng nói 15 Hình 4: Lƣu đồ giải thuật hệ thống nhận dạng tiếng Việt dùng Markov ẩn 16 Hình 5: Đoạn mẫu âm trƣớc VAD 17 Hình 6: Đoạn mẫu âm sau VAD 17 Hình 7: Các bƣớc xử lý phƣơng pháp trích đặc trƣng MFCC 19 Hình 8: Đáp ứng tần số đƣợc chuẩn hóa lọc pre – emphasis 20 Hình 9: Tín hiệu trƣớc sau pre – emphasis miền thời gian .20 Hình 10: Các frame phân tích tiếng nói .21 Hình 11: Cửa sổ Hamming 160 điểm 22 Hình 12: Tín hiệu trƣớc cửa sổ hóa 23 Hình 13: Tín hiệu sau cửa sổ hóa 23 Hình 14: Cửa sổ Hamming dùng phân tích tiếng nói 24 Hình 15: Quá trình phân tích phổ tín hiệu 25 Hình 16: Đồ thị biểu diễn mối quan hệ tần số Mel Hertz 26 Hình 17: Băng lọc, (a) thang đo Mel; (b) thang đo thông thƣờng 27 Hình 18: Sơ đồ khối cấu trúc VQ huấn luyện phân lớp 31 Hình 19: Lƣu đồ giải thuật VQ .33 Hình 1: Xích Markov trạng thái S1,S2, S5 xác suất chuyển trạng thái 34 Hình 2: Ví dụ mơ hình Markov ẩn sáu trạng thái 37 Hình 3: Mơ tả dãy phép tốn đƣợc thực để tính αt(i) 41 Hình 4: Mơ tả dãy phép tốn đƣợc thực để tính biến βt(i) 42 Hình 1: KIT FPGA DE2 hãng Altera 48 Hình 2: Sơ đồ khối kit DE2 48 Hình 3: Sơ đồ khối tổng quan SoPC FPGA 49 GVHD: TS Hoàng Trang Trang xi 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 #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 { 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 { 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 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: 16/12/2022, 19:19

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w