Isolated Word Recognition

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
: Arrange the Numbers ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11481: Arrange the Numbers 解題者:李重儀 解題日期: 2008 年 9 月 13 日 題意: 將數列 {1,2,3, …,N}
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
Introduction to Java Programming Lecture 13 Classes I OO Programming.
建立使用案例敘述 --Use Case Narrative
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
1 Q10276: Hanoi Tower Troubles Again! 星級 : ★★★ 題組: Online-judge.uva.es PROBLEM SET Volume CII 題號: Q10276: Hanoi Tower Troubles Again! 解題者:薛祖淵 解題日期: 2006.
I/O FUNCTIONS 輸入 與 輸出. #include int fclose(FILE *); int feof(FILE *); int fflush(FILE *); int fgetc(FILE *); getchar(); char *fgets(char*, int, FILE*);
“Rule” By OX. By Check CREATE TABLE 員工薪資 ( 編號 int IDENTITY PRIMARY KEY, 薪資 smallmoney, CHECK ( 薪資 > 0 AND 薪資
目的 「升學調查系統」,幫助某一學校調查並記錄 其歷屆畢業生報考研究所的情況、未來提供給 學弟妹作參考,以及學校推廣之相關工作。 功能需求 紀錄並追蹤歷屆畢業生升學的狀態 協助畢業生做升學輔導 未來提供學弟妹作查詢、參考 計算上榜率、前十大學校上榜率.
What is static?. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1; this.instanceX =
ImageJ Macro Language FileDemo.txt範例
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
程式註解說明. 2 程式註解格式 塊狀註解 對檔案、 class 、 method 、資料結構、一段程式 …. 等程式區塊 做說明。 第一行的開頭必需為 “/*” 且沒有其他文字,最後一行的開頭 必需以 “*/” 做為結束,在中間每一行的開頭都必需是一個 “*” 。 單行註解 佔據一整行的說明。 以.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
南投縣社區大學 Excel 實務應用入門 講師 : 林泉成
Introduction to Java Programming Lecture 5: Using Java Classes : String & Math Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
IR 組員 : 資工 4A 王俊傑 資工 4B 陳國富 資工 4B 夏希璿.
Modern Information Retrieval 第三組 陳國富 王俊傑 夏希璿.
Wireless Protocol Bluetooth
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
1 Netlibrary 電子書 Netlibrary 創始於 1998 年,是世界知名的電子書資 料庫,提供 450 多家出版社所出版近 100,962 ( 止)本的電子書,且以每月 2,000 本的 速度增加中。其中 80% 屬於學術性圖書,其餘 20% 一般圖書, 90% 以上為.
選舉制度、政府結構與政 黨體系 Cox (1997) Electoral institutions, cleavage strucuters, and the number of parties.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Count DePrimes ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11408: Count DePrimes 解題者:李育賢 解題日期: 2008 年 9 月 2 日 題意: 題目會給你二個數字 a,b( 2 ≦ a ≦ 5,000,000,a.
1-6 動畫的文件屬性 舞台是動畫實際播放的畫面, 所以舞台的大 小與長寬比例對將來動畫的呈現有很大的 影響。 Flash 預設的舞台尺寸是 550 Pixels × 400 Pixels, 背景為白色, 如果要更改舞台大小與 背景色, 請執行『修改 / 文件』命令, 開啟文 件屬性 (Document.
: Robot Motion ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: : Robot Motion 解題者:鄭昀旻 解題日期: 2009 年 5 月 20 日 題意:有一機器人會從網格的上(N)方進入, 依網格上之E、W、S、N之指令來行走,題目.
資料結構實習-一 參數傳遞.
1 LAB 5. Audio Transmission over WLAN/GPRS. 2 Goal 嘗試使用 WLAN/GPRS 傳送 Audio 瞭解 WLAN/GPRS 網路特性 瞭解 WLAN/GPRS 對於 Audio 傳輸之影響 增進對於網路特性及多媒體傳輸的基本認識.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
Image Interpolation Use SSE 指導教授 : 楊士萱 學 生 : 楊宗峰 日 期 :
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
資料結構實習-二.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
ArcINFO &Geodatabase 由 ESRI 產生 1970 ArcINFO 一開始被設計在迷你電 腦上, 後來逐漸發展, 在 UNIX 系統上也能 執行, 直到今天, 已經可以在不同的平台上 運作.
冷凍空調自動控制 - 系統性能分析 李達生. Focusing here … 概論 自動控制理論發展 自控系統設計實例 Laplace Transform 冷凍空調自動控制 控制系統範例 控制元件作動原理 控制系統除錯 自動控制理論 系統穩定度分析 系統性能分析 PID Controller 自動控制實務.
INFORMATION RETRIEVAL AND EXTRACTION 作業: Program 1 第十四組 組員:林永峰、洪承雄、謝宗憲.
中序轉後序 藉由由左向右掃瞄中序運算式產生後序運算式,遇到 運算元就直接輸出,遇到運算符號則先存入堆疊,將 優先權較高者輸出。 範例: a + b * c TokenStack [0] [1] [2] topoutput aa ++0a b+0ab *+ *1ab c+ *1abc eosabc*+
Miscellanea Switch Bitwise operations ?,. break; continue; (example) (example) do { a = getc(stdin); if (a=='q') break; else if (a=='c') continue; n++;
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
Visual C++重點複習.
資料結構實習-六.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
7.4 程式範例 在螢幕上寫出“Hello” 的程式 (參考 code/pep-p200.odc).
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Failure Candidate Identification for Silicon Debug 指導教授 : 曾王道 學生 : 卜竹君 許正明.
Other Thread Synchronization Functions 井民全製作. Introduction.
Presentation transcript:

Isolated Word Recognition Word Model M1 Likelihood of M1 Word Model M2 Likelihood of M2 Feature Sequence Speech Signal Feature Extraction X MML Most Like Word Selector Likelihood of MV Word Model MV Viterbi Approximation Word Model MSil Likelihood of MSil

//////////////////////////////////////////// int Len[MAX_NAME]; //存放每個人名的HMM的model數 int HMM_ID_List[MAX_NAME][MAX_LEN]; //存放每個人名所用到的HMM的model的編號ID float Delta[MAX_NAME][MAX_LEN][MAX_STATE]; //Viterbi 中的 delta(t) float Score[MAX_NAME]; //每個人的分數 char Name[MAX_NAME][20]; //儲存人名的中文字 int Name_No; //實際人名的個數 /////////////////////////// ………………………. getcwd(Directory,200); //取得本程式執行位置 ///////初始工作 //////////////// Allocate_Model_Memory((int)151); //Allocate HMM Model Memory,初設最多有 160 HMM Set_Const();//for feature extraction ////////讀入 HMM models/////////////////////// sprintf(ModelPath,"%s\\HMM_model",Directory); printf("%s \n",ModelPath); Load_HMM_FILES(ModelPath); printf("Model[total=%3d] Loading OK...\n",Total_HMM); ////////讀入 每個人名及其對應之 HMMs ///////////////////// Read_Name_Information(); /////////讀入 wave 檔 辨識////////// if ((WAVSRC = fopen(buf,"rb"))==NULL) { printf("Open WaveFile: %s Error!!\n",buf); getchar(); exit(1); } filesize=filelength(fileno(WAVSRC)); speechdata=(short *)data; fread(data,filesize,1,WAVSRC); fclose(WAVSRC); Front_End=0; Back_End=filesize/2; //因為每一個 sample為2 bytes struct Model_struct { char Name[20]; short State; short Phone_ID; float Mean[Num_State][Max_Mix][Vec_Size]; float Var[Num_State][Max_Mix][Vec_Size]; float Trans[Num_State][Num_State]; float GConst[Num_State][Max_Mix]; float Mix_Weight[Num_State][Max_Mix]; short Mix[Num_State]; } ; struct Model_struct *Model; //存HMM models的 structure

Total_Frame=Feature(); //Caculate feature vector //feature vector存在 Cep_Data1[j][i] //j是time index, i 是 vector dimension index printf("Total Frame Num (Total feature vector Num)=%d\n",Total_Frame); ///////////////////////////////// for (i=0;i<Total_Frame;i+=1) //Caculate model state observation in advance for (j=0;j<Total_HMM;j++) for (k=1;k<Model[j].State-1;k++) Get_Fil_B(i,j,k); printf("State Observation Calculation OK\n"); //結果以log(prob) (取log)形式存在存在 B_O[Max_Frame_Num][160][Num_State]; ////////////////Initializatiog for Viterbi Search ////////////////// for(name_id=0;name_id<Name_No;name_id++)//Names for(int model_len=0;model_len<Len[name_id];model_len++)//HMM models for a specific name for(int k=0;k<Model[HMM_ID_List[name_id][model_len]].State;k++) //HMM state Delta[name_id][model_len][k]=(float)Min_Delta; for(name_id=0;name_id<Name_No;name_id++) Delta[name_id][0][0]=(float)0.0;

for(frame=0;frame<Total_Frame;frame++) //輸入語句有多少個feature vectors { for(name_id=0;name_id<Name_No;name_id++) //對於所有人名展開HMM平面 for(model_len=Len[name_id]-1;model_len>=0;model_len--) //HMM models for a specific name for(k=Model[HMM_ID_List[name_id][model_len]].State-2;k>=1;k--)//HMM state val1=Delta[name_id][model_len][k-1]+Model[HMM_ID_List[name_id][model_len]].Trans[k-1][k];//來自前一個時間、前一個狀態 val2=Delta[name_id][model_len][k]+Model[HMM_ID_List[name_id][model_len]].Trans[k][k];//來自前一個時間、同一個狀態 if(val1 > val2) max_val=val1; else max_val=val2; Delta[name_id][model_len][k]=max_val+B_O[frame][HMM_ID_List[name_id][model_len]][k]; } //for HMM state Delta[name_id][model_len][0]=Delta[name_id][model_len-1][Model[HMM_ID_List[name_id][model_len-1]].State-2] +Model[HMM_ID_List[name_id][model_len-1]].Trans[Model[HMM_ID_List[name_id][model_len-1]].State-2] [Model[HMM_ID_List[name_id][model_len-1]].State-1]; } //for Model_len Delta[name_id][0][0]=(float) Min_Delta; Score[name_id]=Delta[name_id][Len[name_id]-1][Model[HMM_ID_List[name_id][Len[name_id]-1]].State-2]; } //for name_id } //for speech frame float max_val=(float) Min_Delta; Top1_Index=-1; for (name_id=0;name_id<Name_No;name_id++) if(Score[name_id]>max_val) max_val=Score[name_id]; Top1_Index=name_id; }

void Get_Fil_B(int i, int j, int k) { double diff[Max_Mix]; double MAX; int m, n; double value,value2; double temp; MAX = 1.0e30; double sum=(double)0.0; for (m=0;m<Model[j].Mix[k];m++) diff[m] =(double) 0.0; for (n=0;n<Vec_Size;n++) value=(double)Cep_Data1[i][n]-(double)Model[j].Mean[k][m][n]; diff[m] += value*value*(double)Model[j].Var[k][m][n]; } if(_finite(diff[m])==0||_isnan(diff[m])!=0||diff[m]<(double)1.0E-30) diff[m]=(double)1.0E-30; //check if underflow temp=(double)(diff[m]+(double)Model[j].GConst[k][m])*(double)(-0.5); value2=exp(temp); sum+=value2*(double)Model[j].Mix_Weight[k][m]; B_O[i][j][k] = (float)log(sum); //stored in log domain

bj(ot) State s3 s3 s2 s3 s1 s2 s3 s3 s3 s2 s2 s2 s2 s1 s1 s1 s1 1 2 3 T-1 T Time O1 O2 O3 OT-1 OT