title a study on the path constraints of dynamic time...

146
題目:動態時軸校正法路徑限制的研究 - 以語音辨識為例 Title A Study on the Path Constraints of Dynamic Time Warping-Exampled by Voice Recognition 別:應用數學學系碩士班 學號姓名: M09609014 尤廉凱 指導教授:羅 博士 中華民國 九十八

Upload: others

Post on 12-Oct-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 中 華 大 學

    碩 士 論 文

    題目:動態時軸校正法路徑限制的研究 -

    以語音辨識為例

    Title : A Study on the Path Constraints of

    Dynamic Time Warping-Exampled by Voice

    Recognition

    系 所 別 :應用數學學系碩士班

    學號姓名 : M09609014 尤 廉 凱

    指導教授 :羅 琪 博 士

    中華民國 九十八 年 八 月

  • II

    博碩士論文授權書 (國科會科學技術資料中心版本 91.2.17)

    本授權書所授權之論文為本人在___中華___大學(學院)_ 應用數學_

    系所_應用統計_組__九十七 _學年度第_二_學期取得_碩_士學位之論文。

    論文名稱:動態時軸校正法路徑限制的研究 -以語音辨識為例

    □同意 □不同意 (政府機關重製上網)

    本人具有著作財產權之論文全文資料,授予行政院國家科學委員會科學技

    術資料中心、國家圖書館及本人畢業學校圖書館,得不限地域、時間與次

    數以微縮、光碟或數位化等各種方式重製後散布發行或上載網路。

    本論文為本人向經濟部智慧財產局申請專利(未申請者本條款請不予理會)

    的附件之一,申請文號為:______,註明文號者請將全文資料延後

    半年再公開。 --------------------------------------------------------------------------

    □同意 □不同意 (圖書館影印)

    本人具有著作財產權之論文全文資料,授予教育部指定送繳之圖書館及

    本人畢業學校圖書館,為學術研究之目的以各種方法重製,或為上述目

    的再授權他人以各種方法重製,不限地域與時間,惟每人以一份為限。

    上述授權內容均無須訂立讓與及授權契約書。依本授權之發行權為非專屬性發行

    權利。依本授權所為之收錄、重製、發行及學術研發利用均為無償。上述同意與不同意

    之欄位若未鉤選,本人同意視同授權。

    指導教授姓名:羅 琪

    研究生簽名: 學號:

    (親筆正楷) (務必填寫)

    日期:民國 年 月 日 1.本授權書 (得自http: //nr.stic.gov.tw/theses/html/authorize.html下載) 請以黑筆撰寫並影印裝訂於書名頁之次頁。 2.授權第一項者,請確認學校是否代收,若無者,請個別再寄論文一本至台北市(106-36)和平東路二段

    106號 1702室 國科會科學技術資料中心 王淑貞。(本授權書諮詢電話:02-27377746) 3.本授權書於民國 85年 4月 10日送請內政部著作權委員會(現為經濟部智慧財產局)修正定稿,89.11.21部份修正。 4.本案依據教育部國家圖書館 85.4.19台(85)圖編字第 712號函辦理。

  • III

    中 華 大 學 碩 士 班 研 究 生

    論 文 指 導 教 授 推 薦 書

    應用數學學系碩士班尤廉凱君所提之論文動態

    時軸校正法路徑限制的研究 -以語音辨識

    為例,係由本人指導撰述,同意提付審查。

    指導教授 ( 簽 章 )

    中華民國 九十八 年 七 月

  • IV

    中 華 大 學 碩 士 班 研 究 生

    論 文 口 試 委 員 會 審 定 書

    應用數學學系碩士班尤廉凱君所提之論文

    動態時軸校正法路徑限制的研究 -以語音

    辨識為例,經本委員會審議,符合碩士資

    格標準。

    論文口試委員會 召集人 (簽章)

    委 員 (簽章)

    (簽章)

    (簽章)

    (簽章)

    系所長 (簽章)

    中華民國 九十八 年 七 月

  • V

    中文摘要

    近年來,時間數列的分類與群集分析,早已經是資料庫/資料採

    礦社群中極有興趣研究的主題之一。但大多數的分類與群集方法中都

    需要計算兩不同時間數列{ , 1,2, , }tx t n= K 與{ , 1,2, , }ty t n= K 的不相

    似性量數,常用的不相似性量數有歐氏距離,平方歐氏距離、城市區

    塊距離及明考斯基距離等,但當兩時間數列變動的形狀相似但時間軸

    並不相同時,歐氏距離等量數對時間軸的扭曲是非常敏感的。使用歐

    氏距離等量數在分類與群集分析中,雖然計算容易,但不可否認的是

    會面臨錯誤率較高的現象。

    而時間軸偏差的問題可以用動態時軸校正(DTW)法解決,此法是

    一套根基於「動態規劃」的方法,可以有效地校正時間軸的偏差,本

    研究將採用 Fix and Hodges(1951)所提出的最近鄰居分類法則,來區

    別與分類多個人說中文”芝麻開門”的語音。此法則主要是找出距離觀

    察值最近的 k 個點,這 k 個點中那一組的比例最多,則此觀察值就分

    類到那一類組。由於必須計算出每個點到觀察值的距離,本研究中將

    同時採用歐氏距離與各種不同附近路徑限制的DTW距離計算不相似

    性量數,然後用 k 個最近鄰居分類法則來分類多個人說中文字”芝麻

    開門”的語音,並計算其明顯錯誤率及平均錯誤率來比較分類結果。

    最後亦將探討全程路徑限制對錯誤率與計算速度的影響。

    關 鍵 詞:動態時軸校正、語音辨識、路徑限制、時間數列、分類分

    析、最近鄰居分類法則

  • VI

    ABSTRACT

    In recent years, classification and clustering of time series data have become one of the topic of great interest within the database/data mining community. Most method in classification and clustering are needed to calculate the distance measure between two

    { , 1,2, , }tx t n= K and { , 1,2, , }ty t n= K two series. Several popular

    measures of distance are Euclidean distance, squared Euclidean distance, city block distance and Minkowski distance. However, when two time series are similar but they are not aligned in the time axis, then the above distance measures are very sensitive to distortion in time axis. Although using Euclidean and other distance measures in classification and cluster analysis can make calculation efficient, we have to face the evidence of higher error rate.

    The problem of distortion in the time axis can be solved by using Dynamic Time Warping (DTW) which is a method based on the dynamic programming (DP). This research will use the kth nearest neighbor rule, proposed by Fix and Hodges (1951), to discriminate and classify the speech pattern of several people speaking Chinese “open the door, sesame”. The kth nearest neighbor rule is to compute the distance from an observation to all the other points then assign this observation to the group that has the highest proportion among the kth nearest neighbors. In this research, both Euclidean distance and DTW distances by various path constraints are used as the dissimilarity measures. Then the kth nearest neighbor classification rule is used to classify the speech pattern of several people speaking Chinese “open the door, sesame” and the apparent error rate and average error rate are used to compare the classification results. Finally, a discussion will be made on the effect of global path constraints to the error rate and computation speed.

    Keywords: dynamic time warping, speech recognition, path

    constraint, time series, classification analysis, nearest neighbor classification rule

  • VII

    誌謝辭

    本篇論文能夠順利地完成最需要感謝的就是羅琪老師。在論文的

    寫作期間,老師對於我不明瞭的地方,總會不厭其煩的指點我,使我

    的統計和程式觀念更加清楚,而且老師所給予我的不只是知識上的教

    授,生活上老師有條不紊的做事態度,也使我獲益良多,在老師的指

    導下,使我在統計和程式領域上的知識更充實、完善,讓我覺得能成

    為羅老師的指導學生是我求學期間最幸福的事。

    另外,還要感謝系上所有老師、學長姐、北極熊、表妹、OX 豪、

    DD 等各位同學們及學弟妹們,謝謝你們在這段期間內鼓勵我、陪伴

    我,為我加油打氣,謝謝你們。

    最後,謹將此篇論文獻給我親愛的家人,還有所有關心我的朋友

    們,因為有你們,才有我今日的成就。

    尤廉凱 謹於

    中華大學

    中華民國九十八年七月

  • VIII

    目錄

    中文摘要......................... V

    ABSTRACT....................... VI

    誌謝辭......................... VII

    目錄.......................... VIII

    圖目錄.......................... XI

    表目錄.......................... XIII

    附錄目錄......................... XVI

    第一章 前言....................... 1

    1.1 研究的背景....................1

    1.2 相關研究的回顧..................4

    1.3 研究的目的....................5

    1.4 研究的流程....................8

    第二章 研究方法..................... 9

    2.1 時間數列資料的蒐集................ 9

    2.2 資料的預先處理................. 10

    2.3 歐氏距離(Euclidean distance) ............13

    2.4 動態時軸校正(Dynamic Time Warping; DTW)..... 13

  • IX

    2.5 附近限制(local constraint)............. 21

    2.6 k 個最近鄰居法則(the kth nearest neighbor rule; kNN).. 27

    2.7 明顯錯誤率................... 28

    2.8 分類結果與評價................. 31

    第三章 路徑限制的探討..................32

    3.1 附近路徑限制(local path constraints).......... 32

    3.2 斜率加權函數(slope weighting functions)........ 37

    3.3 全程路徑限制(global path constraints)......... 42

    3.4 動態時軸校正法的解(dynamic time warping solution).. 46

    第四章 實例之應用....................53

    4.1 資料的初步分析與解釋.............. 53

    4.2 分類結果..................... 56

    4.2.1 分類結果(一) ...............56

    4.2.2 分類結果(二) ............... 64

    4.3 分類結果的總結................. 79

    4.3.1 歐氏距離的平均錯誤率與平均程式執行時間 .. 80

    4.3.2 DTW 距離的平均錯誤率與平均程式執行時間.. 80

    4.3.3 分類結果(一)的總結.............80

    4.3.4 分類結果(二)的總結.............81

  • X

    第五章 結論與未來展望..................83

    5.1 結論 ......................83

    5.2 未來展望 ....................84

    5.3 未來研究方向 ..................85

    參考文獻與網址...................... 91

    附錄...........................96

  • XI

    圖目錄

    圖 1-1 兩個人說數字”3”, ”7”, ”2”, ”1”的時間數列圖....... 3

    圖 1-2 歐氏距離與 DTW 距離的比較圖............ 6

    圖 1-3 研究的流程圖.................... 7

    圖 2-1 移除平均數前後對照圖................ 11

    圖 2-2 移除平均數再除以標準差前後對照圖.......... 11

    圖 2-3 移除線性趨勢前後對照圖...............12

    圖 2-4 移除雜訊(noise)前後對照圖.............. 12

    圖 2-5 路徑限制(一)的局部關係圖.............. 15

    圖 2-6 動態時軸校正法...................18

    圖 2-7 路徑限制(二)的局部關係圖.............. 21

    圖 2-8 另一種加權係數的路徑限制(二)局部關係圖....... 22

    圖 2-9 重分配的加權係數後的圖 2-8.............. 23

    圖 2-10 重分配的加權係數後的圖 2-7............. 23

    圖 2-11 kNN 分類圖.................... 28

    圖 3-1 附近限制局部關係用座標增加量表示圖.........33

    圖 3-2 路徑移動與校正路徑範例............... 37

    圖 3-3 型 III 類型附近連續限制的四種類型的斜率加權圖..... 39

  • XII

    圖 3-4 型 II 類型的附近連續限制的四種類型的斜率加權函數重分配

    前後的加權係數圖 .................41

    圖 3-5 全程路徑限制的結果.................45

    圖 3-6 全程路徑限制的結果及時軸校正函數可允許的範圍....46

    圖 4-1 羅鄭宋三位錄音者第三筆聲音資料的原始時間數列圖...54

    圖 4-2 羅鄭宋三位錄音者 40 筆聲音資料平均後的時間數列圖 ..55

    圖 5-1 DTW 距離的快速近似 ................85

    圖 5-2 左邊為 Sakoe-Chiba Band 右邊為 Itakura Parallelogram ..86

    圖 5-3 左邊為類型 VI 右邊為 Itakura 附近限制........ 86

    圖 5-4 LB_Kim量數的示範.................88

    圖 5-5 LB_Yi量數的示範..................88

    圖 5-6 數列Q的上下界U 與L (Sakoe-Chiba Band)........89

    圖 5-7 數列Q的上下界U 與L (Itakura Parallelogram)......89

    圖 5-8 數列Q的LB_Keogh量數的示範(Sakoe-Chiba Band)....90

    圖 5-9 數列Q的LB_Keogh量數的示範(Itakura Parallelogram)...90

  • XIII

    表目錄

    表 3-1 七種附近連續限制類型的局部關係座標增加量的表示圖.. 34

    表 3-2 不同類型附近連續限制的 maxQ 與 minQ 的值........ 44

    表 3-3 斜率加權函數類型(a)的附近限制、斜率權數及動態規劃遞迴

    公式.......................49

    表 3-4 斜率加權函數類型(b)的附近限制、斜率權數及動態規劃遞迴

    公式.......................50

    表 3-5 斜率加權函數類型(c)的附近限制、斜率權數及動態規劃遞迴

    公式.......................51

    表 3-6 斜率加權函數類型(d)的附近限制、斜率權數及動態規劃遞迴

    公式.......................52

    表 4-1 22 組三三錄音者 40 筆聲音資料分類結果的混淆矩陣與明顯錯

    誤率(斜率加權函數類型(d)) .............56

    表 4-2 宋張羅三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明顯

    錯誤率(斜率加權函數類型(d)) ............63

    表 4-3 宋張鄭三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明顯

    錯誤率(斜率加權函數類型(d)) ............63

    表 4-4 張鄭林三位錄音者 40 筆聲音資料在 5 種不同附近連續限制 4

    種不同斜率加權函數有加與沒加全程限制的分類的所需計算

  • XIV

    時間與錯誤率的統計表............... 65

    表 4-5 張鄭林三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明顯

    錯誤率(斜率加權函數類型(a)(b)(d)) ..........66

    表 4-6 張鄭林三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明顯

    錯誤率(斜率加權函數類型(c)) ............67

    表 4-7 有加全程限制的張鄭林三位錄音者 40 筆聲音資料分類結果的

    混淆矩陣與明顯錯誤率(斜率加權函數類型(a)(b)(d))....67

    表 4-8 加全程限制的張鄭林三位錄音者 40 筆聲音資料分類結果的混

    淆矩陣與明顯錯誤率(斜率加權函數類型(c)).......68

    表 4-9 宋劉羅三位錄音者 40 筆聲音資料在 5 種不同附近連續限制 4

    種不同斜率加權函數有加與沒加全程限制的分類的所需計算

    時間與錯誤率的統計表............... 70

    表 4-10 宋劉羅三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明

    顯錯誤率(斜率加權函數類型(a)(b)(d)).........71

    表4-11 宋劉羅三位錄音者40筆聲音資料分類結果的混淆矩陣與明顯

    錯誤率(斜率加權函數類型(c))............72

    表 4-12 有加全程限制的宋劉羅三位錄音者 40 筆聲音資料分類結果的

    混淆矩陣與明顯錯誤率(斜率加權函數類型(a)(b)(d))...72

    表 4-13 有加全程限制的宋劉羅三位錄音者 40 筆聲音資料分類結果的

  • XV

    混淆矩陣與明顯錯誤率(斜率加權函數類型(c))..... 73

    表 4-14 宋張鄭三位錄音者 40 筆聲音資料在 5 種不同附近連續限制 4

    種不同斜率加權函數有加與沒加全程限制的分類的所需計算

    時間與錯誤率的統計表............... 75

    表 4-15 宋張鄭三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明

    顯錯誤率(斜率加權函數類型(a)(b)(d)).........76

    表 4-16 宋張鄭三位錄音者 40 筆聲音資料分類結果的混淆矩陣與明

    顯錯誤率(斜率加權函數類型(c))........... 76

    表 4-17 有加全程限制的宋張鄭三位錄音者 40 筆聲音資料分類結果的

    混淆矩陣與明顯錯誤率(斜率加權函數類型(a)(b)(d))...77

    表 4-18 有加全程限制的宋張鄭三位錄音者 40 筆聲音資料分類結果的

    混淆矩陣與明顯錯誤率(斜率加權函數類型(c))..... 78

    表 5-1 下限制循續掃描演算法................87

  • XVI

    附錄目錄 附錄 1:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的載入程式碼之程式碼 ...96

    附錄 2:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的時間數列圖之程式碼 ...99

    附錄 3:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的歐式距離之程式碼....100

    附錄 4:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(附近連續限制類型

    I)之程式碼....................101

    附錄 5:一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(附近連續限制類型

    II)之程式碼....................102

    附錄 6:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(附近連續限制類型

    III) 之程式碼...................103

    附錄 7:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(附近連續限制類型

    IV)之程式碼...................104

    附錄 8:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

  • XVII

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(附近連續限制類型

    V)之程式碼....................105

    附錄 9:第一位錄音者(宋婉怡 s)、第二位錄音者(張家祥 g)與第三位

    錄音者(鄭至傑 k)聲音資料的 DTW 距離(Global 附近連續限

    制類型 V)之程式碼................107

    附錄 10:kNN 分類法當 k = 1 時之程式碼...........109

    附錄 11:宋張鄭三位錄音者 40 筆聲音資料的分類結果(斜率加權函數

    類型(a)(b)(d)) ..................110

    附錄 12:宋張鄭三位錄音者 40 筆聲音資料的分類結果(斜率加權函數

    類型(c)) .....................115

    附錄 13:有加全程限制的宋張鄭三位錄音者 40 筆聲音資料的分類結

    果(斜率加權函數類型(a)(b)(d)) ...........120

    附錄 14:有加全程限制的宋張鄭三位錄音者 40 筆聲音資料的分類結

    果(斜率加權函數類型(c))..............125

  • 1

    第一章 前言

    大家都曾有過經驗,走在路上,背後有熟人叫你,你不必回頭去

    看,就可以知道是誰在叫你,因為每個人說話的特性不一樣,聽聲音

    就可以認出來。語音訊號中攜帶了可供辨認人的因素,主要有三:

    一、發音器官的差異

    一如人的面貌不同,發音器官也不完全一樣,口腔形狀與聲帶

    的不同會使得說話聲音的特性不同。

    二、說話型態的差異

    由於習慣的不同,說話方式會不一樣,例如有人說話速度比較

    快,或是某幾個音的發音比較特殊。

    三、說話內容的差異

    使用的語言、教育程度、及社會階層的不同,會使得說話的內

    容有所差異。

    1.1 研究的背景

    上述這些差異都可以作為說話人語音辨識的依據,本論文將研究

    興趣放在動態時軸校正法應用於語音的辨識上。

    一直以來,將古典的樣式辨識(pattern recognition)推廣到實驗的

    時間數列資料,都是實務上非常有興趣研究的問題。按時間順序所蒐

  • 2

    集的一序列的觀察值通常會產生一個樣式(pattern),此樣式可做為用

    來與其他不同種類事件的區別的基礎。例如:在美國蒙大拿州,科學

    家可能要根據資料來區別地震與核爆,紀錄顯示地震與核爆的樣示有

    相當大的差異,因為核爆的訊號在開始時很強,但在後段變動就很弱

    了,而地震訊號不會那麼快恢復平靜,所以在後段訊號仍有較大的振

    動。根據這些差異的統計特徵,可用來分類未知來源的訊號是地震還

    是核爆。此種分類方法就是屬於統計的時間數列的分類分析(the

    classification analysis of time series)。

    近年來,時間數列的分類與群集分析(classification and clustering

    analysis),早已是資料庫/資料採礦(database/data mining)社群中極有興

    趣研究的主題之一。但大多數的分類與群集方法中都需要計算兩不同

    時間數列{ , 1,2, , }tx t n= K 與{ , 1,2, , }ty t n= K 的不相似性量數(distance

    measure),常用的不相似性量數有歐氏距離(Euclidean distance),平方

    歐氏距離、城市區塊距離 (City block distance)及明考斯基距離

    (Minkowski distance)等,公式如下:

    2

    1

    2

    1

    Euclidean distance( , ) ( )

    Squared Euclidean distance( , ) ( )

    n

    t tt

    n

    t tt

    x y x y

    x y x y

    =

    =

    = −

    = −

  • 3

    1

    1

    1

    City block distance( , ) | |

    Minkowski distance( , ) | |

    n

    t tt

    n ll

    t tt

    x y x y

    x y x y

    =

    =

    = −

    ⎛ ⎞= −⎜ ⎟⎝ ⎠

    但有時兩時間數列變動的形狀相似,但時間軸並不相同,如圖

    1-1 所示:

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of ac09

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of au09

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of ac10

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of au10

    0 2000 4000 6000 8000 10000

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of ac11

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of au11

    0 2000 4000 6000 8000 10000

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of ac12

    0 2000 4000 6000 8000 10000

    -1.0

    -0.5

    0.0

    0.5

    1.0

    Time Series Plot of au12

    圖 1-1 兩個人說數字”3”, ”7”, ”2”, ”1”的時間數列圖

    左邊是第一個人說數字”3”, ”7”, ”2”, ”1”的語音的時間數列圖,右邊是

    第二人說數字”3”, ”7”, ”2”, ”1”的語音的時間數列圖,左邊第一個人說

    話聲音 4 次的快慢不同,後二次較快,前二次較慢,右邊第二人說話

    聲音速度差不多,若直接用上面的不相似性量數來測量數列相似性,

    則左邊第一個人的前 2 筆語音資料會較接近第二個人的聲音,因此如

  • 4

    此例所示,歐氏距離等量數是對時間軸的扭曲(distortion)非常敏感

    的。使用歐氏距離等量數在分類與群集分析中,雖然計算容易,但不

    可否認的是會面臨錯誤率較高的現象。

    1.2 相關研究的回顧

    時間數列的分類問題(classification problems)不只限於應用在地

    質上,也可應用於許多其他的領域。在工程文獻中,有人推出用統計

    辨識技巧來探測是否有訊號 (signal)藏在雜訊 (noise)中,例如:

    Helstrom(1968)研究雷達訊號探測問題,在工程上,訊號的探測就相

    當於對訊號加雜訊(signal plus noise)與單單只有雜訊(noise)的樣式做

    區別與分類。此外,在醫學上也可用來區別與分類兩種腦波紀錄圖。

    Gevins 等研究人員(1975)、Gersch 和其他的研究人員(1977;1979)都

    曾應用區別與分類分析到腦波電儀紀錄圖(EEG)的資料上,主要是用

    區別分析來區別癲癇患者是否要開始發作。Gersch 等研究人員(1979)

    也用區別分析來區別大手術的麻醉藥劑是否足夠。

    時間數列的區別與分類分析也可用在聲音的辨識系統上,主要用

    來區別每個人聲音當中不同的樣式(Wolf 1976;Markel and Gray

    1976)。近來國內也有一些時間數列的區別與分類分析與聲音辨識的

    相關研究,例如:輔仁大學統計資訊學系黃孝雲老師研究使用 SLEX

    Model 區別非穩定的時間數列資料,並應用到酗酒者與正常人的腦波

  • 5

    電儀紀錄圖的區別(Huang et al. 2003)。另外清華大學電機系的王小川

    老師指導了很多聲音轉換或語音辨識的相關論文(Hung et al. 1999;

    Huang et al. 2000;Wang 1999;Wang et al. 2000;You et al. 2000;Yu et

    al. 1999),這些文獻中提到聲調辨認的問題分為基頻軌跡追蹤和辨認

    系統建立兩個部份,找到聲音的資料後,定義特徵參數來建立一個特

    徵向量,再藉由這個特徵向量來辨別聲音。而中華大學應用數學系羅

    琪老師也做過一些聲音辨識的研究(Lo and Yu 2006),主要是著重在頻

    域(frequency domain)的統計頻譜估計及區別與分類分析。本論文將延

    續語音辨識的研究方向,將採用最近鄰居分類法則來區別與分類多個

    人說中文字”芝麻開門”的語音,並採用動態時軸校正法來處理及校正

    時間軸的偏差問題,另外亦將探討動態時軸校正法中的各種不同路徑

    限制對結果的影響。

    1.3 研究的目的

    本論文的研究目的主要是將動態時軸校正法應用於多人說中文”

    芝麻開門”的語音時間數列資料的分類分析上,與圖 1-1 類似,說”芝

    麻開門”的語音的時間數列資料變動的波形可能相似,但有說話速度

    快慢不同的情形產生,所以在比較兩語音的時間數列時,應考慮到時

    間軸的偏差問題。而時間軸偏差的問題可以用動態時軸校正(Dynamic

    Time Warping,簡稱 DTW)法解決,此法是一套根基於「動態規劃」

  • 6

    (Dynamic Programming,簡稱 DP)的方法,可以有效地校正時間軸的

    偏差,如圖 1-2 所示,歐氏距離不一定高點對高點、低點對低點,使

    用 DTW 距離才有可能使高點對高點、低點對低點。

    圖 1-2 歐氏距離與 DTW 距離的比較圖

    語音辨識一直是一個相當值得研究與探討的問題,本論文將採用

    Fix and Hodges(1951)所提出的最近鄰居法則(nearest neighbor rule),來

    做為區別與分類多個人說中文”芝麻開門”的語音。此法亦稱為 k 個最

    近鄰居法則(k nearest neighbor rule),此法則主要是找出距離觀察值最

    近的 k 個點,這 k 個點中那一組的比例最多,則此觀察值就分類到那

    一類組。由於必須計算出每個點到觀察值的距離,本論文擬同時採用

    歐式距離與各種不同附近路徑限制(local path constraint)的 DTW 距離

    計算不相似性量數,然後用 k 個最近鄰居法則分類多個人說中文字”

  • 7

    芝麻開門”的語音,並計算明顯錯誤率(apparent error rate)及平均錯誤

    率來比較結果。另外亦將探討全程路徑限制(global path constraint)對

    錯誤率與計算速度的影響。

    圖 1-3 研究的流程圖

  • 8

    1.4 研究的流程

    本論文先將三位錄音者說中文”芝麻開門”的聲音時間數列資料

    畫圖、解釋並加以比較,然後將這些資料做預先處理後,再同時採用

    歐氏距離與各種不同附近路徑限制的 DTW 距離計算其不相似性量

    數,然後用 k 個最近鄰居法則分類多個人說中文字”芝麻開門”的語

    音,並計算明顯錯誤率來比較分類結果。本論文的整個研究的流程,

    使用軟體 Microsoft Office Visio 2003 畫成研究的流程圖,如圖 1-3 所

    示。

  • 9

    第二章 研究方法

    語音辨識一直是相當具有挑戰性的技術,因為影響語音的變數很

    多,例如語音會隨著區域、年齡、性別等有所差別。本論文是研究一

    秒鐘說中文字”芝麻開門”的語音辨識,屬於短時段的分析。在本章將

    介紹本論文所採用的研究方法與原因,大致上可分成八個章節,2.1

    節是實驗的方法及聲音的時間數列資料的取得過程的概述,2.2 節為

    資料的預先處理,2.3 節為歐氏距離的計算,2.4 節為動態時軸校正法

    (Dynamic Time Warping; DTW)的介紹,2.5 節為附近限制 (local

    constraint)的介紹,2.6 節則是 k 個最近鄰居演算法(the kth nearest

    neighbor rule; kNN)的回顧,2.7 節則是明顯錯誤率的計算,最後 2.8

    節為分類結果的評價。

    2.1 時間數列資料的蒐集

    令{ , 1, 2, , }tx t n= L 代表一組時間數列資料(time series data)。本

    論文擬辨識三個人說中文字”芝麻開門”的語音,因此蒐集語音資料的

    實驗為每個人各說中文字”芝麻開門”40 次。每次說中文字”芝麻開門”

    的語音,由電腦軟體錄音後,再轉換成數字資料。使用的錄音軟體為

    GoldWave 4.25 版,錄音時頻道(channel)設為單頻(mono),時間長度

    (length)設為一秒鐘,而抽樣週率(sampling rate)設為 11025 赫(Hertz),

  • 10

    透過此軟體及麥克風,可錄下說中文的聲紋資料,再將.wav 檔轉成.txt

    檔儲存,以方便軟體使用,由於資料太多,統計軟體與數學軟體

    MATLAB 都無法處理,所以每隔一個取一個,只取 5512 筆資料來做

    分析。聲音資料取得後,先畫時間數列圖(time series plot),由時間數

    列圖,可比較三個人說中文字”芝麻開門”聲音振幅大小與頻率快慢的

    不同,亦可看出三個人的聲音波形的差異。

    2.2 資料的預先處理

    在計算歐氏距離或 DTW 距離之前,必須先處理資料,因為歐氏

    距離對資料的某些扭曲(distortion)非常的敏感,在大多數的問題中,

    這些扭曲並沒有意義,因此可以而且應該移除它們。一般常見的扭曲

    影響有 offset translation、amplitude scaling、linear trend 及 noise 四種,

    圖 2-1 是兩個形狀相似但平均數不相同的時間數列,移除平均數前後

    的對照圖,圖 2-2 是兩個平均數、標準差不同的時間數列,移除平均

    數再除以標準差前後的對照圖,圖 2-3 是兩個不同的時間數列(其中

    一個數列有線性趨勢,另一個沒有),移除線性趨勢前後的對照圖,

    圖 2-4 是兩個有雜訊的時間數列,移除雜訊前後的對照圖。

  • 11

    Transformation I: Offset TranslationTransformation I: Offset Translation

    0 50 100 150 200 250 3000

    0.5

    1

    1.5

    2

    2.5

    3

    0 50 100 150 200 250 300

    x = x- mean(x)

    y = y - mean(y)

    圖 2-1 移除平均數前後對照圖

    Transformation II: Amplitude ScalingTransformation II: Amplitude Scaling

    0 100 200 300 400 500 600 700 800 900 1000 0 100 200 300 400 500 600 700 800 900 1000

    x = (x - mean(x)) / std(x)

    y = (y - mean(y)) / std(y)

    圖 2-2 移除平均數再除以標準差前後對照圖

  • 12

    Transformation III: Linear TrendTransformation III: Linear Trend

    0 20 40 60 80 100 120 140 160 180 200-4

    -2

    0

    2

    4

    6

    8

    10

    12

    0 20 40 60 80 100 120 140 160 180 200-3

    -2

    -1

    0

    1

    2

    3

    4

    5

    Removed offset translation

    Removed amplitude scaling

    Removed linear trend

    圖 2-3 移除線性趨勢前後對照圖

    Transformation IV: NoiseTransformation IV: Noise

    0 20 40 60 80 100 120 140-4

    -2

    0

    2

    4

    6

    8

    0 20 40 60 80 100 120 140-4

    -2

    0

    2

    4

    6

    8

    x = smooth(x)

    y = smooth(y)

    2-4 移除雜訊(noise)前後對照圖

    (註:圖 2-1 到圖 2-4 取自 Dr. Eamonn Keogh, Data Mining and

    Machine Learning in Time Series Databases)

  • 13

    由於”芝麻開門”的語音資料沒有線性趨勢(linear trend),所以只

    對 offset translation, amplitude scaling 及 noise 做處理,處理方法是對

    每一個時間數列 tx 在計算距離前,都先減去平均數再除以標準差,然

    後再平滑,也就是

    mean( )smoothstd( )

    t tt

    t

    x xxx

    ⎛ ⎞−= ⎜ ⎟

    ⎝ ⎠。

    2.3 歐氏距離(Euclidean distance)

    一般而言,對於兩個長度為 n 的時間數列 { , 1,2, , }tx t n= L ,

    { , 1,2, , }ty t n= L ,兩時間數列 x與 y 之間的直線距離,稱為歐氏距離

    (Euclidean distance),公式如下:

    distance 21

    ( , ) ( )n

    t tt

    x y x y=

    = −∑ ,

    但是如果兩個時間數列的長度不同,那它們之間的距離,就無法使用

    上面的數學式來計算。

    2.4 動態時軸校正(Dynamic Time Warping; DTW)

    由於每個人都會有自己講話的習慣,所以就會有速度的快慢,說

    話速度快時就等於將聲音壓縮,說話速度慢時就等於將聲音擴張,所

    以為了使辨識更準確,在辨識時必須將時間軸偏差的問題考慮進來。

    因此本論文就使用動態時軸校正法,來解決時間軸偏差,然後進行語

  • 14

    音的辨識。

    DTW 是 Dynamic Time Warping 的簡稱,一般翻譯成「動態時軸

    校正」或「動態時間扭曲」,這是一套根基於 Bellman(1957)的動態規

    劃(Dynamic Programming,簡稱 DP)的方法。由於兩處理後的時間數

    列 x與 y 的元素位置都是代表時間,所以在時間軸可能出現偏差,因

    此我們並不知道兩個向量的元素的對應關係,因此必須靠著一套有效

    的運算方法,才可以找到最佳的對應關係。

    動態規劃法最先由蘇俄學者 Slutsker(1968)、Vintsyuk(1968)與

    Velichko and Zagoruyko(1970)應用到 DTW,另外同時亦有日本學者

    Sakoe and Chiba(1978)做相同的研究。

    假設有兩個時間數列,其中一個長度為m,用{ , 1,2, , }ix i m= L 代

    表,另一個長度為n,用{ , 1,2, , }jy j n= L 代表,而 DTW 的目標,就

    是要找到一組校正路徑 (warping path)或稱為校正函數 (warping

    function)

    1 2, , , , , , ( , ), 1,2,k K k k kF c c c c c i j k K= = =L L L ,

    校正路徑是一連串的移動,每一個移動用一對座標表示。

    而最佳校正路徑就是使得經由上述路徑的「點對點」,由起點到

    終點整個路徑正規化的累積距離

  • 15

    1

    1

    ( )( )

    K

    k kk

    K

    kk

    d c wDTW F

    w

    =

    =

    =∑

    ∑,

    為最小,其中 ( ) ( , )k k kd c d i j= 代表兩個點 kix 與 kjy 的距離 (例如:

    ( , )k kk k i j

    d i j x y= − ),而 kw 是一個與 F 有關的非負的加權係數

    (nonnegative weighting coefficient),且1

    K

    kk

    w=∑ 是一個正規化因子

    (normalizing factor),校正路徑必須受到下面三個條件的限制:

    1. 端點條件(endpoint condition)

    1 1 1i j= = , , K Ki m j n= = ,

    也 就 是 起 點 (beginning point) 1 1 1( , ) (1,1)c i j= = , 終 點 (ending

    point) ( , ) ( , )K K Kc i j m n= = ,此端點關係代表這是「頭對頭,點對點」

    的比對。

    1

    2

    (i,j)

    (i,j-1)(i-1,j-1)

    (i-1,j)

    圖 2-5 路徑限制(一)的局部關係圖

    2.附近連續條件(local continuity condition)

    連續條件有多種形式,例如︰Sakoe and Chiba(1978)提出下面條

    1

  • 16

    件︰

    1 1k ki i −− ≤ , 1 1k kj j −− ≤ ,

    也就是假設最佳校正路徑上任一點可以表示成 ( , )kc i j= ,那麼其前一

    點 1kc − 路徑只有三種可能: ( 1, )i j− , ( , 1)i j − , ( 1, 1)i j− − ,此局部關

    係定義了路徑的附近連續性,如圖 2-5 所示。

    3. 單調條件(monotonic condition)

    1 0k ki i −− ≥ , 1 0k kj j −− ≥ ,

    也就是假設最佳校正路徑不會隨著時間向後走,也就是 1ki − 與 1kj − 的值

    只會增加或維持相同,不會減少。

    若定義 kw 使得 DTW(F)公式分母部分變成常數與 F 無關,則

    DTW(F)可以簡化。例如:若 1 1( ) ( )k k k k kw i i j j− −= − + − , 0 0( 0)i j= = ,

    則 kw 變成了城市區塊距離(city block distance),而且

    1

    K

    kk

    w m n=

    = +∑ ,

    則 DTW(F)簡化為

    1

    1( ) ( )K

    k kk

    DTW F d c wm n =

    =+ ∑ ,

    但是,要如何快速地找到這條最佳校正路徑呢?可以根據動態規

    劃原理,依下面四個步驟進行:

    1. 目標函數的定義:定義 ( , )D i j 是 1 2{ , , , }ix x xL 與 1 2{ , , , }jy y yL 之間

  • 17

    的 DTW 距離,對應的最佳校正路徑是由 (1,1)走到 ( , )i j 。

    2. 目標函數之遞迴關係:

    ( 1, ) ( , ),( , ) min ( 1, 1) 2 ( , ),

    ( , 1) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− +⎩ ⎭

    其中 ( , )d i j 代表 ix 與 jy 的距離(例: ( , ) i id i j x y= − )。

    因為已知在到達 ( 1, )i j− 、 ( 1, 1)i j− − 與 ( , 1)i j − 這三個點時,已

    經累積的最小距離是 ( 1, )D i j− 、 ( 1, 1)D i j− − 與 ( , 1)D i j − ,則當要計

    算 ( , )D i j 時,是從三個可能來源中挑一個,計算公式如下︰

    [ ][ ]

    [ ]

    ( 1, ) ( ( 1)) ( ) ( , ),

    ( , ) min ( 1, 1) ( ( 1)) ( ( 1)) ( , ),

    ( , 1) ( ) ( ( 1)) ( , )

    D i j i i j j d i j

    D i j D i j i i j j d i j

    D i j i i j j d i j

    − + − − + −⎧ ⎫⎪ ⎪

    = − − + − − + − −⎨ ⎬⎪ ⎪− + − + − −⎩ ⎭

    3. 端點條件: 1(1,1) (1,1) 2 (1,1)D w d d= = 。

    4. 最後答案: ( , )D m n 。

    在實際運算時,會先建立一個 n m× 的校正矩陣 (warping

    matrix) D,先根據端點條件填入 (1,1)D ,然後再根據遞迴關係,逐行

    或逐列算出 ( , )D i j 的值,最後可以得到 ( , )D m n 。所以兩時間數列

    { , 1,2, , }ix i m= L 與{ , 1,2, , }jy j n= L 的整體 DTW 距離為( , )D m n

    m n+。

    為了將相關最佳路徑找出來,在計算遞迴關係式時,要記錄每一

    個最小點的對應的路徑,直到求出 ( , )D m n ,再反覆回推前一個最佳

    路徑的位置,如此一再反覆,才能算出整體的最佳路徑。

  • 18

    圖 2-6 動態時軸校正法

    A) 兩時間數列 x 與 y 形狀相似但速度不同。 B) 為了校正兩數列,建立校正矩陣D,然後尋找最佳路徑F 。 C) 校正結果。

    為了讓大家更了解動態時軸校正法如何校正兩個時間數列的時

    間軸,所以用圖 2-6 來示範,圖 2-6 中有兩個形狀相似但速度不同的

    時間數列 x與 y,為了校正時間軸的差異,先建立一個n m× 的校正矩

    陣 D,其中 ( , )D i j 代表路徑由 (1,1)到 ( , )i j 的累積距離,矩陣中黑色方

    格部分就是最佳路徑 F。

    下面舉個小例子來驗證上述結果,假設有兩個小向量,分別為

    (1,5,4)t = 、 (3,2,6,2)r = ,所以 3, 4m n= = ,使用 DTW 方法求出以下

    矩陣跟距離。數學軟體 MATLAB version 7.2 的程式碼如下:

    t=[1 5 4]; r=[3 2 6 2]; m=length(t)+1; n=length(r)+1; z=inf(m,n);

    x

    x

    x y

    y y

    (1,1)

    (m,n)

    warping path F

  • 19

    for i=2:m for j=2:n z(2,2)=2*abs(t(1)-r(1)); x=min(abs(t(i-1)-r(j-1))+z(i-1,j),2*(abs(t(i-1)-r(j-1)))+z(i-1,j-1)); y=min(2*(abs(t(i-1)-r(j-1)))+z(i-1,j-1),abs(t(i-1)-r(j-1))+z(i,j-1)); z(i,j)=min(x,y); end end z DTW=z(m,n)/(m+n-2) z = Inf Inf Inf Inf Inf Inf 4 5 10 11 Inf 6 8 7 10 Inf 7 9 9 11 DTW = 1.57142857142857

    由上面矩陣 z 得到矩陣D 中 ( , )D m n 的值,如下:

    所以 (1,5,4)t = 與 (3,2,6,2)r = 兩向量所算出來的 DTW 距離為

    ( , ) (3,4) 11 1.571428571428573 4 7

    D m n Dm n

    = = =+ +

    ,所以最佳校正路徑為

    1 2 3 4, , ,F c c c c= ,也就是 1 (1,1)c = , 2 (1,2)c = , 3 (2,3)c = , 4 (3,4)c = 。而

    (1,4) 11D = (2,4) 10D = (3,4) 11D =

    (1,3) 10D = (2,3) 7D = (3,3) 9D =

    (1,2) 5D = (2,2) 8D = (3,2) 9D =

    (1,1) 4D = (2,1) 6D = (3,1) 7D =

  • 20

    1 2w = , 2 1w = , 3 2w = , 4 2w = , 所 以4

    1 2 3 41

    kk

    w w w w w=

    = + + +∑

    2 1 2 2 7= + + + = 。

    校正結果 最佳校正路徑

    下面是用手算示範矩陣D 的計算:

    { }

    { }

    (1,1) 2 (1,1) 2 1 3 4

    (1, 2) min (0,2) 1 2 , (0,1) 2 1 2 , (1,1) 1 2

    min{ , ,5} 5

    (2,1) min (1,1) 5 3 , (1,0) 2 5 3 , (2,0) 5 3

    min{6, , } 6

    (2,2) min (1,2) 5 2 , (1,1) 2 5 2 , (2,1)

    D d

    D D D D

    D D D D

    D D D D

    = × = × − =

    = + − + × − + −

    = ∞ ∞ =

    = + − + × − + −

    = ∞ ∞ =

    = + − + × − +{ }{ }{ }

    { }{ }

    5 2

    min 5 3,4 (2 3),6 3 min{8,10,9} 8

    (3,1) min (2,1) 4 3 , (2,0) 2 4 3 , (3,0) 4 3

    min{7, , } 7

    (3,2) min (2,2) 4 2 , (2,1) 2 4 2 , (3,1) 4 2

    min 8 2,6 4,7 2 min{10,10,9} 9

    D D D D

    D D D D

    = + + × + = =

    = + − + × − + −

    = ∞ ∞ =

    = + − + × − + −

    = + + + = =

    { }(1,3) min (0,3) 1 6 , (0,2) 2 1 6 , (1,2) 1 6 min{ , ,10} 10

    D D D D= + − + × − + −

    = ∞ ∞ =

  • 21

    { }

    { }{ }{ }

    (1,4) min (0,4) 1 2 , (0,3) 2 1 2 , (1,3) 1 2

    min{ , ,11} 11

    (2,3) min (1,3) 5 6 , (1,2) 2 5 6 , (2, 2) 5 6

    min 10 1,5 2,8 1 min{11,7,9} 7

    (2,4) min (1,4) 5 2 , (1,3) 2 5 2 , (2,3) 5 2

    D D D D

    D D D D

    D D D D

    = + − + × − + −

    = ∞ ∞ =

    = + − + × − + −

    = + + + = =

    = + − + × − + −

    { }{ }{ }{ }{ }

    min 11 3,10 6,7 3 min{14,16,10} 10

    (3,3) min (2,3) 4 6 , (2,2) 2 4 6 , (3, 2) 4 6

    min 7 2,8 4,9 2 min{9,12,11} 9

    (3,4) min (2,4) 4 2 , (2,3) 2 4 2 , (3,3) 4 2

    min 10 2,7 4,9 2

    D D D D

    D D D D

    = + + + = =

    = + − + × − + −

    = + + + = =

    = + − + × − + −

    = + + + min{12,11,11} 11= =

    2.5 附近限制(local constraint)

    1

    圖 2-7 路徑限制(二)的局部關係圖

    另一個常用到的較複雜的附近路徑限制(local path constraint),如

    圖 2-7 所示,此種附近路徑限制會有下列特色:

    1. 會「跳點」,因此若有一點雜訊,最佳的 DTW 路徑會跳掉此點。

    2. 如果最佳路徑是對應於總距離的最小值,那麼最佳路徑會盡量不

    走對角,以使對應到的點數降低。

  • 22

    此時 kw 的定義若仍為 1 1( ) ( )k k k k kw i i j j− −= − + − , 0 0( 0)i j= = ,則1

    k

    kk

    w=∑

    仍為

    1

    K

    kk

    w m n=

    = +∑ ,

    則 DTW(F)簡化為

    1

    1( ) ( )K

    k kk

    DTW F d c wm n =

    =+ ∑ ,

    若取 { }1 1min ( ),( )k k k k kw i i j j− −= − − , 0 0( 0)i j= = ,則圖 2-7 路徑限制(二)

    的局部關係圖中的加權係數變為

    圖 2-8 另一種加權係數的路徑限制(二)局部關係圖

    若使用此種加權係數,因為有係數為 0,會造成不合理地不連續。因

    此克服此問題的方法就是重分配(redistribute)或平滑(smooth)權數。圖

    2-8 重分配加權係數後的圖為圖 2-9。

  • 23

    圖 2-9 重分配加權係數後的圖 2-8

    圖 2-10 重分配加權係數後的圖 2-7

    同理,圖 2-10 是重分配加權係數後的圖 2-7,並根據動態規劃原理,

    此最佳路徑的遞迴關係改為

    3 3( 2, 1) ( 1, ) ( , ),2 2

    ( , ) min ( 1, 1) 2 ( , ),3 3( 1, 2) ( , 1) ( , )2 2

    D i j d i j d i j

    D i j D i j d i j

    D i j d i j d i j

    ⎧ ⎫− − + − +⎪ ⎪⎪ ⎪

    = − − +⎨ ⎬⎪ ⎪⎪ ⎪− − + − +⎩ ⎭

    其中 ( , )d i j 代表 ix 與 jy 的距離(例: ( , ) i id i j x y= − ),並且端點條件為

    1(1,1) (1,1) 2 (1,1)D w d d= = 。

    與前面相同,在實際運算時,會先建立一個n m× 的矩陣D ,先

    根據端點條件填入 (1,1)D ,然後再根據遞迴關係,逐行或逐列算出

  • 24

    ( , )D i j 的值,最後可以得到 ( , )D m n 。所以兩時間數列{ , 1,2, , }ix i m= L

    與{ , 1,2, , }jy j n= L 的整體 DTW 距離為( , )D m n

    m n+。

    為了將相關最佳路徑找出來,在計算遞迴關係式時,要記錄每一

    個最小點的對應的路徑,直到求出 ( , )D m n ,再反覆回推前一個最佳

    路徑的位置,如此一再反覆,才能算出整體的最佳路徑。

    當路徑限制(二),加權係數如圖 2-10 時,繼續使用 2.4 節的例子

    作示範,兩向量為 (1,5,4)t = , (3,2,6,2)r = , 3, 4m n= = ,使用 DTW

    法求出以下矩陣跟距離。程式碼如下:

    clear t=[1 5 4]; r=[3 2 6 2]; m=length(t)+1; n=length(r)+1; z=inf(m,n); for i=3:m for j=3:n z(2,2)=2*abs(t(1)-r(1)); if (z(i-2,j-1)==inf & z(i-1,j-1)==inf & z(i-1,j-2)==inf) z(i,j)=inf; else x=min(1.5*(abs(t(i-1)-r(j-1))+(abs(t(i-2)-r(j-1))))+z(i-2,j-1),

    2*(abs(t(i-1)-r(j-1)))+z(i-1,j-1)); y=min(2*(abs(t(i-1)-r(j-1)))+z(i-1,j-1),

    1.5*(abs(t(i-1)-r(j-1))+(abs(t(i-1)-r(j-2))))+z(i-1,j-2)); z(i,j)=min(x,y); end end end z DTW=z(m,n)/((m-1)+(n-1))

  • 25

    z = Inf Inf Inf Inf Inf Inf 4 Inf Inf Inf Inf Inf 10 10 Inf Inf Inf 11.5 14 14 DTW = 2

    由上面矩陣 z 得到矩陣D 中 ( , )D m n 的值,如下:

    所以 (1,5,4)t = 與 (3,2,6,2)r = 兩向量所算出來的 DTW 距離為

    ( , ) (3,4) 14 23 4 7

    D m n Dm n

    = = =+ +

    (1,4)D = ∞ (2,4)D = ∞ (3,4) 14D =

    (1,3)D = ∞ (2,3) 10D = (3,3) 14D =

    (1,2)D = ∞ (2,2) 10D = (3,2) 11.5D =

    (1,1) 4D = (2,1)D = ∞ (3,1)D = ∞

  • 26

    所以最佳校正路徑為 1 2 3, ,F c c c= ,也就是 1 (1,1)c = , 2 (2,3)c = ,

    3 (3,4)c = 。而 1 2w = , 2 3w = , 3 2w = ,因此3

    1 2 31

    kk

    w w w w=

    = + +∑

    2 3 2 7= + + = 。或者,最佳路徑為 1 (1,1)c = , 2 (2,2)c = , 3 (3,4)c = 。

    而 1 2w = , 2 2w = , 3 3w = ,所以3

    1 2 31

    2 2 3 7kk

    w w w w=

    = + + = + + =∑ 。

    同理再用手算示範矩陣D 的計算:

    (1,1) (1,1) 2 1 3 4

    3(0,1) (1 2 5 2 ), (1,1) 2 5 2 ,2(2,2) min3(1,0) ( 5 3 5 2 )2

    min{ ,10, } 103(1,1) ( 5 2 4 2 ), (2,1) 2 4 2 ,2(3,2) min3(2,0) ( 4 3 4 2 )2

    D d

    D DD

    D

    D DD

    D

    = = × − =

    ⎧ ⎫+ × − + − + × −⎪ ⎪⎪ ⎪= ⎨ ⎬⎪ ⎪+ × − + −⎪ ⎪⎩ ⎭

    = ∞ ∞ =

    ⎧ ⎫+ × − + − + × −⎪ ⎪⎪ ⎪= ⎨ ⎬⎪ ⎪+ × − + −⎪ ⎪⎩ ⎭

  • 27

    min{11.5, , } 11.53(0,2) (1 6 5 6 ), (1,2) 2 5 6 ,2(2,3) min

    3(1,1) ( 5 2 5 6 )2

    min{ , ,10} 103(1,2) ( 5 6 4 6 ), (2,2) 2 4 6 ,2(3,3) min3(2,1) ( 4 2 4 6 )2

    D DD

    D

    D DD

    D

    = ∞ ∞ =

    ⎧ ⎫+ × − + − + × −⎪ ⎪⎪ ⎪= ⎨ ⎬⎪ ⎪+ × − + −⎪ ⎪⎩ ⎭

    = ∞ ∞ =

    ⎧ + × − + − + × −⎪⎪= ⎨⎪ + × − + −⎩

    min{ ,14, } 143(1,3) ( 5 2 4 2 ), (2,3) 2 4 2 ,2(3,4) min3(2,2) ( 4 6 4 2 )2

    min{ ,14,16} 14

    D DD

    D

    ⎫⎪⎪⎬⎪

    ⎪ ⎪⎭= ∞ ∞ =

    ⎧ ⎫+ × − + − + × −⎪ ⎪⎪ ⎪= ⎨ ⎬⎪ ⎪+ × − + −⎪ ⎪⎩ ⎭

    = ∞ =

    2.6 k 個最近鄰居法則(the kth nearest neighbor rule; kNN)

    最早的無母數分類法是 Fix and Hodges(1951)所提出的最近鄰居

    法則,也稱為k 個最近鄰居法則(the kth nearest neighbor rule),g個組

    別(groups)的k 個最近鄰居法則如下:

    1. 計算觀察值 ix%到所有其他 1 2( 1)gn n n+ + + −L 個觀察值 jx%

    的距離。

    2. 找出距離 ix%最近的k 個點。

    3. ik 代表k 個點中屬於第 i 組的點數。

    4. 如果 1 21 2

    max , , , gii g

    kk k kn n n n

    ⎧ ⎫⎪ ⎪= ⎨ ⎬⎪ ⎪⎩ ⎭

    L ,則將 ix%分類到第 i 組,也就是最近的

    k 個鄰居中,是第 i 組的比例最高,則將 ix%分類到第 i 組。

  • 28

    圖 2-11 kNN 分類圖

    從圖 2-11 舉例來說,假如紅色代表第一組,藍色代表第二

    組,當想知道問號分類到哪一組的話,kNN 演算法就先計算問號

    點,和 k 個其他已經知道第一組或第二組的資料點之間的距離(如圖

    上的直線),如果 kNN 的 k 如果設定成 1,也就是 1NN 的話,代表電

    腦會找出距離問號最近的點,在圖上是紅色的點,所以我們可以將此

    問號分類到第一組,本論文也就是使用 1NN 之方法。

    如果 3k = ,也就是使用 3NN 的話,電腦會將最接近問號的三個

    點找出來,假如三個點中,紅色的點較多,可以將問號分類到第一組,

    以此類推,也會有 5NN、7NN、9NN,端看問題的需要而定。

    2.7 明顯錯誤率

    根據 kNN 所求出來的分類結果,來計算錯誤率,並在計算錯誤

    率之前,要先做出下面的矩陣,此矩陣被稱為混淆矩陣(confusion

  • 29

    matrix):

    預測所屬母體(Predicted membership)

    1π 2π

    Cn1 Mn1 實際所屬母體 1π

    (Actual membership) 2π Mn2 Cn2

    1n

    2n

    上面矩陣中的 Cn1 代表屬於 1π 也被正確分到 1π 的個數(number of 1π

    items correctly classified as 1π items), Mn1 代表屬於 1π 卻被錯誤分到

    2π 的個數, Cn2 代表屬於 2π 也被正確分到 2π 的個數,而 Mn2 則代表屬

    於 2π 卻被錯誤分到 1π 的個數。 因此下面公式將用來計算明顯錯誤率

    (the apparent error rate; APER)

    21

    21

    nnnnAPER MM

    ++

    = ,

    將錯誤分類的總個數 1 2M Mn n+ ,除以母體 1π 與 2π 的總個數 1 2n n+ 即可

    得到。

    另外亦可將上面明顯錯誤率的公式推廣到 g 個母體的情形,令

    iMn 代表屬於 iπ 卻被錯誤分類到其他母體的個數, 1,2, ,i g= L 。因此 g

    個組別的明顯錯誤率的公式為

    1 21

    1 2

    1

    g

    iMM M gMi

    gg

    ii

    n n n nAPER

    n n nn

    =

    =

    + + += =

    + + +

    L

    L。

  • 30

    下面是 3g = 個組別的 1NN 的 MATLAB 程式碼:

    laa=zeros(120,3); for i=1:120 [B,IX] = sort(NN(i,:),2); laa(i,1)=length(find(IX(2)40 & IX(2)80 & IX(2)laa(i,2)) sum1=sum1+1; elseif (laa(i,2)>laa(i,1)) sum2=sum2+1; else sum3=sum3+1; end end sum4=0; sum5=0; sum6=0; for i=41:80 if (laa(i,2)>laa(i,1)) sum5=sum5+1; elseif (laa(i,1)>laa(i,2)) sum4=sum4+1; else sum6=sum6+1; end end sum7=0;

  • 31

    sum8=0; sum9=0; for i=81:120 if (laa(i,3)>laa(i,1)) sum9=sum9+1; elseif (laa(i,1)>laa(i,2)) sum7=sum7+1; else sum8=sum8+1; end end shi=[sum1 sum2 sum3;sum4 sum5 sum6;sum7 sum8 sum9]; error=1-(sum(shi(1,1)+shi(2,2)+shi(3,3))/(sum(shi(1,:)+shi(2,:)+shi(3,:))));disp(' 1 2 3') disp(' ______________') disp(shi) fprintf('Error rate %8.9f\n', error)

    2.8 分類結果的評價

    最後為了比較歐式距離與 DTW 距離用在k 個最近鄰居分類法則

    中的分類結果,先分別用歐式距離與 DTW 計算距離,然後用 k 個鄰

    居法則來分類三個人各 40 次說中文”芝麻開門”的語音結果,並且計

    算明顯錯誤率(the apparent error rate)。另外為了避免只比較一組三位

    錄音者說中文的語言辨聲結果不夠客觀,另外我們還會再做很多組三

    人語音辨識的實驗,最後算出平均的錯誤率,以比較結果。

  • 32

    第三章 路徑限制的探討

    由第二章可知,校正路徑(warping path)必須受到端點條件、附近

    連續條件及單調條件三個條件的限制,其中第二個限制條件,附近連

    續限制(local continuity constraint)的型式有很多種,在 2.4 與 2.5 節,

    有介紹其中最簡單的兩種附近路徑限制(local path constraint),本章將

    探討更多種類的附近路徑限制。另外在最佳校正路徑搜尋時,配合路

    徑限制的加權係數(weighting coefficient)的選擇,亦是一個值得探討的

    問題,配合附近路徑限制使用時,此加權係數又稱為斜率加權函數

    (slope weighting function),本章將探討四種類型的斜率加權函數對附

    近連續限制的影響。最後由於在搜尋最佳校正路徑時,某些區域根本

    不會通過,所以為了加速計算與搜尋的速度,在第三章還要探討全程

    路徑限制(global path constraint)。因此第三章將分成四個章節,3.1 節

    是附近路徑限制的探討,3.2 節是斜率的加權函數的探討,3.3 節是全

    程路徑限制的探討,最後 3.4 節則是動態時軸校正法的解。

    3.1 附近路徑限制(local path constraints)

    定義路徑P為一連串的移動,每一個移動用一對座標增加量

    (coordinate increment)表示如下:

    P 1 1 2 2 K Kp q p q p qL→( , )( , ) ( , )

  • 33

    1P 2P

    3P

    P 1→(1,1)(1,0)

    P 2→(1, 1)

    P 3→(1,1)(0,1)

    圖 3-1 附近限制局部關係用座標增加量表示圖

    圖 3-1 示範了三條可能路徑P 1、P2與P 3。

    而第二章所提到的一組校正路徑(warping path)

    1 2, , , , ,k KF c c c c= L L

    通常設定 1 11, 1p q= = 且 ( , )k k kc i j= ,其中

    1

    k

    k ii

    i p=

    = ∑

    1

    k

    k ii

    j q=

    = ∑

    所以此組校正路徑起點在 1 1 1 1 1( , ) ( , ) (1,1)c i j p q= = = ,而此組校正路徑

    的終點在1 1

    ( , ) ( , ) ( , )K K

    K K K i ii j

    c i j p q m n= =

    = = =∑ ∑ 。

    利用上面表示法,任何簡單類型的附近連續限制(local continuity

    constraints)可以很容易的被具體指明,表 3-1 包含了幾種附近限制類

    型的摘要。

  • 34

    表 3-1 七種附近連續限制類型的局部關係座標增加量的表示圖

    類型 Type

    附近連續限制 Local continuity constraint

    可能路徑

    Allowable Path Specification

    I

    2P

    1P

    3P

    P 1→(1,0) P 2→(1,1) P 3→(0,1)

    II

    1P 2P

    3P

    P 1→(1,1)(1,0) P 2→(1, 1) P 3→(1,1)(0,1)

    III

    1P 2P

    3P

    P 1→(2,1) P 2→(1,1) P 3→(1,2)

    IV

    1P

    4P2P

    3P

    P 1→(1,1)(1,0) P 2→(1,2)(1,0) P 3→(1,1) P 4→(1,2)

  • 35

    V

    1P 2P 3P

    5P

    4P

    P 1→(1,1)(1,0)(1,0) P 2→(1,1)(1,0) P 3→(1,1) P 4→(1,1)(0,1) P 5→(1,1)(0,1)(0,1)

    VI

    1P

    2P

    3P

    P 1→(1,1) (1,1) (1,0) P 2→(1, 1) P 3→(1,1) (1,1) (0,1)

    ITAKURA

    1P

    2P

    3P

    P 1→(1,0) P 2→(1, 1) P 3→(1,2) consecutive(1,0)(1,0) disallowed

    上表中,型 I 類型限制就是第二章圖 2-5 所使用的路徑限制,其

    附近連續限制條件是由 Sakoe and Chiba(1978)所提出,條件如下:

    1 1k ki i −− ≤ , 1 1k kj j −− ≤ ,

  • 36

    很明顯地, 1k ki i −= 與 1k kj j −= 兩者不能同時發生,P 1、P 2、P 3都只做

    一個移動。

    另外型 II 類型與型 III 類型限制雖有相同的發源點(originating

    points),但型 II 類型限制中,P 1與P 3兩者都做兩個移動,因此有兩

    個正常的增加量,但型 III 類型限制中,P 1與P 3雖也有兩個增加量,

    但都只做一個移動,這些附近路徑(local paths)可稱為增加量路徑

    (incremental paths)來意味著附近限制。

    型 V 類型限制雖更複雜,但只是將上面型 II 類型再推廣到P 1、

    P 2、P 3、P 4、P 5五條可能路徑,其中P 1與P 5有三個增加量,P 2與

    P 4有兩個增加量。型 VI 類型限制也是將上面型 II 類型再推廣到P 1

    與P 3兩者都做三個移動。

    而型 I、II、III、V、VI 類型的限制都是對稱類型(symmetrical type),

    型 IV 類型的限制則是一個不對稱類型(asymmetrical type)的限制。型

    I、II、III、IV 四種類型限制都是由 Sakoe and Chiba(1978)所建議。另

    外有一例外類型的限制是由 Itakura(1975)所提出的,此類型的路徑限

    制禁止 (1,0)(1,0)連續限制,也就是不允許有一個路徑會連續橫走兩

    次。

    接著用一個例子示範,在本例中,使用型 II 類型的附近連續路

    徑,兩個時間數列,其中一個長度為 11m = ,{ , 1,2, ,11}ix i = L ,另一

  • 37

    個長度為 9n = ,{ , 1,2, ,9}jy j = L ,而校正路徑為

    1 2 3 4 5 6 7 8, , , , , , ,F c c c c c c c c=

    也 就 是 1 2 3 4 5 6(1,1), (2,2), (3,3), (4,5), (6,6), (7,7),c c c c c c= = = = = =

    7 8(9,8), (11,9)c c= = 。

    111

    (1,1)

    (11,9)

    ki

    kj

    2P2P

    2P

    3P

    1P2P

    1P

    1P

    (2,2)

    (3,3)

    (4,5)

    (6,6)

    (7,7)

    (9,8)

    1

    9

    圖 3-2 路徑移動與校正路徑範例

    圖 3-2 若用路徑移動表示,可寫成

    P→P2 P2 P2 P 3 P 1 P2 P 1 P 1

    其中P 1→(1,1)(1,0),P2→(1,1),P 3→(1,1)(0,1)。

    3.2 斜率加權函數(slope weighting functions)

    在第二章中,由起點到終點整個路徑正規化的累積距離為

  • 38

    1

    1

    ( )( )

    K

    k kk

    K

    kk

    d c wDTW F

    w

    =

    =

    =∑

    其中 kw 是一個非負的加權係數(weighting coefficient),亦稱為斜率加

    權函數(slope weighting function),如同附近路徑限制一樣,有許多可

    能的斜率加權函數類型。下面四種類型的斜率加權函數是由 Sakoe

    and Chiba(1978)所提出:

    Type (a) 1 1min{ , }k k k k kw i i j j− −= − −

    Type (b) 1 1max{ , }k k k k kw i i j j− −= − −

    Type (c) 1( )k k kw i i −= −

    Type (d) 1 1( ) ( )k k k k kw i i j j− −= − + −

    上面四個公式中,假設起始值 0 0( 0)i j= = 。圖 3-3 展示了型 III 類型

    附近連續限制應用 Type(a)、(b)、(c)、(d)四種斜率加權函數的斜率加

    權效果,每條路徑旁的數字代表所對應之加權值。由於兩數列的偏差

    (distortion)愈高代表較不可能相配(match),較大的加權值則被用在較

    不喜好的路徑,圖 3-3(b)則顯示了加權傾向對對角路徑移動有維持較

    強的偏好。

  • 39

    P 1→(2,1) min{2, 1} 1kw = =

    P 2→(1,1) min{1, 1} 1kw = =

    P 3→(1,2) min{1, 2} 1kw = =

    (a) 1 1min{ , }k k k k kw i i j j− −= − −

    P 1→(2,1) max{2, 1} 2kw = =

    P 2→(1,1) max{1, 1} 1kw = =

    P 3→(1,2) max{1, 2} 2kw = =

    (b) 1 1max{ , }k k k k kw i i j j− −= − −

    P 1→(2,1) 2kw =

    P 2→(1,1) 1kw =

    P 3→(1,2) 1kw =

    (c) 1( )k k kw i i −= −

    P 1→(2,1) 2 1 3kw = + =

    P 2→(1,1) 1 1 2kw = + =

    P 3→(1,2) 1 2 3kw = + =

    (d) 1 1( ) ( )k k k k kw i i j j− −= − + −

    圖 3-3 型 III 類型附近連續限制的四種類型的斜率加權圖

  • 40

    若將四種類型的斜率加權函數應用到表 3-1的各種類型的附近連

    續限制上,有時可能有 0 的情形出現。例如:型 II 類型附近連續限制

    搭配 Type(a)類型的斜率加權函數,則

    P 1→(1,1)(1,0) min{1,1} 1kw = = min{1,0} 0kw = =

    P2→(1,1) min{1,1} 1kw = =

    P 3→(1,1)(0,1) min{1,1} 1kw = = min{0,1} 0kw = =

    導致沿著P 1及P 3的部分的移動的加權係數為 0。如此一來,只有對

    角移動所引起的偏差才可能被考慮在下面整個路徑正規化的累積距

    1

    1

    ( )( )

    K

    k kk

    K

    kk

    d c wDTW F

    w

    =

    =

    =∑

    中,因此使用上面類型的斜率加權會導致在正規化時,出現不合理地

    不連續的情形。其中一種減輕上面問題的方法就是重分配(redistribute)

    或平滑(smooth)權數。

    (a) 1 1min{ , }k k k k kw i i j j− −= − −

  • 41

    (b) 1 1max{ , }k k k k kw i i j j− −= − −

    (c) 1( )k k kw i i −= −

    (d) 1 1( ) ( )k k k k kw i i j j− −= − + −

    圖 3-4 型 II 類型的附近連續限制的四種類型的 斜率加權函數重分配前後的加權係數圖

    在整個路徑正規化的累積距離的公式中,

  • 42

    1

    1

    ( )( )

    K

    k kk

    K

    kk

    d c wDTW F

    w

    =

    =

    =∑

    分母部分1

    K

    kk

    w=∑ 是一個正規化因子(normalizing factor),其目的是為了

    使 ( )DTW F 與校正路徑的長度無關,而正規化因子1

    K

    kk

    w=∑ 的值與採用

    的斜率加權函數有關,當斜率加權函數的類型為(c)與(d)時,而正規

    化因子分別為

    Type (c) 11 1 1

    ( )K K K

    k k k k Kk k k

    w i i p i m−= = =

    = − = = =∑ ∑ ∑

    Type (d) 1 11 1 1

    [( ) ( )] ( )K K K

    k k k k k k kk k k

    w i i j j p q− −= = =

    = − + − = +∑ ∑ ∑

    1 1

    K K

    k k K Kk k

    p q i j m n= =

    = + = + = +∑ ∑

    另外,但當斜率加權函數的類型為(a)與(b)時,會使得在用動態規劃

    法找一組校正路徑 F 使得整個路徑正規化的累積距離 ( )DTW F 最小

    時不易計算,因此使用任意選擇地合理地正規化因子可使得動態規劃

    過程容易許多。因此當斜率加權函數類型為(a)與(b)時,設定

    Type (a) 1

    K

    k Kk

    w i m=

    = =∑

    Type (b) 1

    K

    k Kk

    w i m=

    = =∑

    3.3 全程路徑限制(global path constraints)

    使用附近路徑限制(local path constraint),發現有部分比例的

  • 43

    ( , )k ki j 平面不會被包含在最佳路徑會越過的範圍內,因此若考慮全程

    路徑限制,可縮小計算範圍,增加計算與分類的速度。

    每種類型的附近限制的可允許的範圍可用下面兩個參數來定義:

    ( )

    1max

    ( )

    1

    max

    l

    l

    Kl

    iiKl l

    ii

    pQ

    q

    =

    =

    ⎡ ⎤⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥⎣ ⎦

    ∑ (3.1)

    ( )

    1min

    ( )

    1

    min

    l

    l

    Kl

    iiKl l

    ii

    pQ

    q

    =

    =

    ⎡ ⎤⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥⎣ ⎦

    ∑ (3.2)

    上面(3.1)與(3.2)兩個公式中的 l 表示在限制集合內,可能路徑Pl的指

    數(index),另外 lK 代表在Pl的總移動次數。例如:由圖 3-1 可知,型

    II 類型限制中,P 1、P 2、P 3的 l 與 lK 分別為 1, 2, 3l = , 2, 1, 2lK = 。

    當 1l = 時, 2lK = ,所以

    2( ) ( )

    1 12

    ( )( )

    11

    1 1 21 0

    l

    l

    Kl l

    i ii iK

    llii

    ii

    p p

    qq

    = =

    ==

    += = =

    +

    ∑ ∑

    ∑∑

    當 2l = 時, 1lK = ,所以

    1( ) ( )

    1 11

    ( )( )

    11

    1 11

    l

    l

    Kl l

    i ii iK

    llii

    ii

    p p

    qq

    = =

    ==

    = = =∑ ∑

    ∑∑

  • 44

    當 3l = 時, 2lK = ,所以

    2( ) ( )

    1 12

    ( )( )

    11

    1 0 11 1 2

    l

    l

    Kl l

    i ii iK

    llii

    ii

    p p

    qq

    = =

    ==

    += = =

    +

    ∑ ∑

    ∑∑

    因此,

    max

    min

    1max 2, 1, 22

    1 1min 2, 1, 2 2

    Q

    Q

    ⎧ ⎫= =⎨ ⎬⎩ ⎭⎧ ⎫= =⎨ ⎬⎩ ⎭

    因此 maxQ 與 minQ 兩個參數分別就明確指明在時軸校正時的最大

    與最小可能擴展。正常地, maxmin

    1QQ

    = 。表 3-2 中顯示了表 3-1 中的

    各種類型限制的 maxQ 與 minQ 的值。

    表 3-2 不同類型附近連續限制的 maxQ 與 minQ 的值

    Type maxQ minQ

    I ∞ 0 II 2 12 III 2 12 IV 2 12 V 3 13

    ITAKURA 2 12

    利用可能路徑擴展的最大與最小可能值,可以定義全程路徑限制

    如下:

    maxmax

    ( 1)1 1 ( 1)k k ki j Q iQ−

    + ≤ ≤ + − (3.3)

  • 45

    maxmax

    ( )( ) k KK k K k Ki ij Q i i j jQ−

    + − ≤ ≤ + (3.4)

    方程式(3.3)指明了在 ( , )k ki j 平面上,根據附近限制,可以由起點(1,1)

    藉由可允許路徑所有可到達點的範圍,同理,方程式(3.4)則指明了在

    ( , )k ki j 平面上,根據附近限制,由可允許路徑所有可能點到終點

    ( , )K Ki j 的範圍。

    2k K

    k Ki ij j−= +

    1 12

    kk

    ij −= +

    2 ( )k k K Kj i i j= × − +

    2 ( 1) 1k kj i= × − + ( , )K Ki j

    (1,1)

    max 2Q =

    LEGAL RANGE

    圖 3-5 全程路徑限制的結果

    圖 3-5 示範了方程式(3.3)與(3.4)在 ( , )k ki j 平面上,當 min1

    max 2QQ = =

    時的全程路徑限制的結果,正確路徑的範圍是由斜率為2與 12的線所

    形成的菱形。另外由 Sakoe and Chiba(1978)所提出的額外附加的全程

  • 46

    路徑限制為

    0k ki j T− ≤ (3.5)

    0T 代表兩個時間數列在任何時候可允許的絕對的最大可允許的時間

    偏離。若額外再加上此限制圖 3-5 需修正為圖 3-6。

    2k K

    k Ki ij j−= +

    1 12

    kk

    ij −= +

    2 ( )k k K Kj i i j= × − +

    2 ( 1) 1k kj i= × − + ( , )K Ki j

    (1,1)

    max 02, k kQ i j T= − ≤

    0k kj i T= −

    0k kj i T= +

    LEGAL RANGE

    圖 3-6 全程路徑限制的結果及時軸校正函數可允許的範圍

    此額外限制先排除了過度時軸拉長或壓縮的情形,可以有效地減少菱

    形的範圍。

    3.4 動態時軸校正法的解(dynamic time warping solution)

    在本節將介紹如何用動態規劃原理,快速地找到一組最佳校正

  • 47

    路徑 F,使得由起點 (1,1)到終點 ( , )m n 的整個路徑的正規化的累積距

    1

    1

    ( )( )

    K

    k kk

    K

    kk

    d c wDTW F

    w

    =

    =

    =∑

    為最小。由於為了加速計算,所以亦可能考慮加上附近路徑限制與全

    程路徑限制,所以並不是所有 (1,1)到 ( , )m n 範圍上的所有點都要搜尋

    與計算的。凡是不用計算的點,令它們有一個極大的累積距離,如此

    一來在演算過程中就會自動被排除掉。令累積距離起始值

    (0,0) 0D = , 真 正 起 點 是 (1,1) , 結 束 點 是 ( , )K Ki m j n= = ,

    , ,1 1( , ) min ( ) min ( , )

    k k k k

    K K

    k k k k ki j i jk kD m n d c w d i j w

    = =

    = =∑ ∑ ,如此有一套遞迴演算公式

    如下:

    1.目標函數的定義:定義 ( , )D i j 是{ }1 2, , , ix x xL 與{ }1 2, , , jy y yL 之間的

    DTW 距離,對應的最佳校正路徑是由 (1,1)走到 ( , )i j 。

    2.目標函數之遞迴關係:1 , 1 , ( , )i m j n i j GCR≤ ≤ ≤ ≤ ∈ ,GCR 代表

    ( , )i j 所在的比對範圍,則

    [ ]

    '

    , , ' 1

    ( ', ')

    ( , ) min ( , )

    min ( ', ') (( ', '),( , ))k k

    K

    k k ki j K k

    i j

    D i j d i j w

    D i j f i j i j=

    =

    = +

    上式中 f 是點 ( ', ')i j 與點 ( , )i j 之間的加權累積附近距離, f 的公式如

    下:

  • 48

    ' ' '0

    (( ', '),( , )) ( , )sL

    K l K l K ll

    f i j i j d i j w− − −=

    = ∑

    sL 代表由點 ( ', ')i j 到點 ( , )i j 所要移動的次數。

    3.端點條件: (0,0) 0D =

    3.端點條件: 1(1,1) (1,1)D w d=

    3.端點條件: ( , )D i j = ∞ if ( , )i j GCR∉

    4.最終答案: ( , )D m n

    所以兩時間數列{ }1 2, , , mx x xL 與{ }1 2, , , ny y yL 的之間的整體DTW距離

    1

    ( , )K

    kk

    D m n

    w=∑

    表 3-3 到表 3-6 整理出四種類型斜率加權函數與五種附近路徑限

    制(I, II, III, IV, V)共 20 種組合的動態規劃的遞迴公式。至於 GCR 的

    比對範圍,則參考表 3-2 與公式(3.3)與(3.4)可得。

  • 49

    表 3-3 斜率加權函數類型(a)的附近限制、斜率權數及動態規劃遞迴公式 Local Constraints & Slope Weights DP Recursion Formula

    1

    11

    ( 1, ) ( , ),( , ) min ( 1, 1) ( , ),

    ( , 1) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− +⎩ ⎭

    1/21/

    21/2

    1/2

    1

    12

    12

    ( 2, 1) ( ( 1, ) ( , )),( , ) min ( 1, 1) ( , ),

    ( 1, 2) ( ( , 1) ( , ))

    D i j d i j d i jD i j D i j d i j

    D i j d i j d i j

    − − + − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎩ ⎭

    ( 2, 1) ( , ),( , ) min ( 1, 1) ( , ),

    ( 1, 2) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − +⎩ ⎭

    12( 2, 1) ( ( 1, ) ( , )),

    ( 2, 2) ( 1, ) ( , ),( , ) min

    ( 1, 1) ( , ),( 1, 2) ( , )

    D i j d i j d i jD i j d i j d i j

    D i jD i j d i jD i j d i j

    − − + − +⎧ ⎫⎪ ⎪− − + − +⎪ ⎪= ⎨ ⎬

    − − +⎪ ⎪⎪ ⎪− − +⎩ ⎭

    1/31/3

    1/3 11/2

    1/2

    1/3

    1/2 1/3

    1/3

    1/2

    1312

    1213

    ( 3, 1) ( ( 2, ) ( 1, ) ( , )),( 2, 1) ( ( 1, ) ( , )),

    ( , ) min ( 1, 1) ( , ),( 1, 2) ( ( , 1) ( , )),( 1, 3) ( ( , 2) ( , 1) ( , ))

    D i j d i j d i j d i jD i j d i j d i j

    D i j D i j d i jD i j d i j d i jD i j d i j d i j d i j

    − − + − + − +⎧ ⎫⎪ ⎪

    − − + − +⎪ ⎪⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎪ ⎪⎪ ⎪− − + − + − +⎩ ⎭

  • 50

    表 3-4 斜率加權函數類型(b)的附近限制、斜率權數及動態規劃遞迴公式 Local Constraints & Slope Weights DP Recursion Formula

    1

    11

    ( 1, ) ( , ),( , ) min ( 1, 1) ( , ),

    ( , 1) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− +⎩ ⎭

    111

    1

    1

    ( 2, 1) ( 1, ) ( , ),( , ) min ( 1, 1) ( , ),

    ( 1, 2) ( , 1) ( , )

    D i j d i j d i jD i j D i j d i j

    D i j d i j d i j

    − − + − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎩ ⎭

    ( 2, 1) 2 ( , ),( , ) min ( 1, 1) ( , ),

    ( 1, 2) 2 ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − +⎩ ⎭

    32

    ( 2, 1) ( 1, ) ( , ),( 2, 2) ( ( 1, ) ( , )),

    ( , ) min( 1, 1) ( , ),( 1, 2) 2 ( , )

    D i j d i j d i jD i j d i j d i j

    D i jD i j d i jD i j d i j

    − − + − +⎧ ⎫⎪ ⎪− − + − +⎪ ⎪= ⎨ ⎬

    − − +⎪ ⎪⎪ ⎪− − +⎩ ⎭

    1

    11

    1

    1 1

    1

    1

    1

    ( 3, 1) ( 2, ) ( 1, ) ( , ),( 2, 1) ( 1, ) ( , ),

    ( , ) min ( 1, 1) ( , ),( 1, 2) ( , 1) ( , ),( 1, 3) ( , 2) ( , 1) ( , )

    D i j d i j d i j d i jD i j d i j d i j

    D i j D i j d i jD i j d i j d i jD i j d i j d i j d i j

    − − + − + − +⎧ ⎫⎪ ⎪− − + − +⎪ ⎪⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎪ ⎪

    − − + − + − +⎪ ⎪⎩ ⎭

  • 51

    表 3-5 斜率加權函數類型(c)的附近限制、斜率權數及動態規劃遞迴公式 Local Constraints & Slope Weights DP Recursion Formula

    101

    ( 1, ) ( , ),( , ) min ( 1, 1) ( , ),

    ( , 1)

    D i j d i jD i j D i j d i j

    D i j

    − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪−⎩ ⎭

    1

    1/21

    1/2

    1

    12

    ( 2, 1) ( 1, ) ( , ),( , ) min ( 1, 1) ( , ),

    ( 1, 2) ( ( , 1) ( , ))

    D i j d i j d i jD i j D i j d i j

    D i j d i j d i j

    ⎧ ⎫− − + − +⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎩ ⎭

    ( 2, 1) 2 ( , ),( , ) min ( 1, 1) ( , ),

    ( 1, 2) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − +⎩ ⎭

    ( 2, 1) ( 1, ) ( , ),( 2, 2) ( 1, ) ( , ),

    ( , ) min( 1, 1) ( , ),( 1, 2) ( , )

    D i j d i j d i jD i j d i j d i j

    D i jD i j d i jD i j d i j

    − − + − +⎧ ⎫⎪ ⎪− − + − +⎪ ⎪= ⎨ ⎬− − +⎪ ⎪⎪ ⎪− − +⎩ ⎭

    1

    1/2

    1/3

    1

    1 1

    1/2

    1/3

    1 1/3

    1213

    ( 3, 1) ( 2, ) ( 1, ) ( , ),( 2, 1) ( 1, ) ( , ),

    ( , ) min ( 1, 1) ( , ),( 1, 2) ( ( , 1) ( , )),( 1, 3) ( ( , 2) ( , 1) ( , ))

    D i j d i j d i j d i jD i j d i j d i j

    D i j D i j d i jD i j d i j d i jD i j d i j d i j d i j

    ⎧ ⎫− − + − + − +⎪ ⎪

    − − + − +⎪ ⎪⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎪ ⎪⎪ ⎪− − + − + − +⎩ ⎭

  • 52

    表 3-6 斜率加權函數類型(d)的附近限制、斜率權數及動態規劃遞迴公式 Local Constraints & Slope Weights DP Recursion Formula

    112

    ( 1, ) ( , ),( , ) min ( 1, 1) 2 ( , ),

    ( , 1) ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− +⎩ ⎭

    3/2

    3/23/2

    3/2

    2

    32

    32

    ( 2, 1) ( ( 1, ) ( , )),( , ) min ( 1, 1) 2 ( , ),

    ( 1, 2) ( ( , 1) ( , ))

    D i j d i j d i jD i j D i j d i j

    D i j d i j d i j

    − − + − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎩ ⎭

    ( 2, 1) 3 ( , ),( , ) min ( 1, 1) 2 ( , ),

    ( 1, 2) 3 ( , )

    D i j d i jD i j D i j d i j

    D i j d i j

    − − +⎧ ⎫⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − +⎩ ⎭

    3/2 2

    2 3

    32( 2, 1) ( ( 1, ) ( , )),

    ( 2, 2) 2( ( 1, ) ( , )),( , ) min

    ( 1, 1) 2 ( , ),( 1, 2) 3 ( , )

    D i j d i j d i jD i j d i j d i j

    D i jD i j d i jD i j d i j

    − − + − +⎧ ⎫⎪ ⎪− − + − +⎪ ⎪= ⎨ ⎬

    − − +⎪ ⎪⎪ ⎪− − +⎩ ⎭

    4/34/3

    4/3 23/2

    3/2

    4/3

    3/2 4/3

    4/3

    3/2

    4332

    3243

    ( 3, 1) ( ( 2, ) ( 1, ) ( , )),( 2, 1) ( ( 1, ) ( , )),

    ( , ) min ( 1, 1) 2 ( , ),( 1, 2) ( ( , 1) ( , )),( 1, 3) ( ( , 2) ( , 1) ( , ))

    D i j d i j d i j d i jD i j d i j d i j

    D i j D i j d i jD i j d i j d i jD i j d i j d i j d i j

    − − + − + − +⎧ ⎫⎪ ⎪

    − − + − +⎪ ⎪⎪ ⎪= − − +⎨ ⎬⎪ ⎪− − + − +⎪ ⎪⎪ ⎪− − + − + − +⎩ ⎭

  • 53

    第四章 實例之應用

    在此章節要將動態時軸校正法,實際應用到語音的辨識上,首先

    在 4.1 節先將三個人說中文”芝麻開門”的聲音的原始時間數列圖畫

    出、解釋並做比較,4.2 節是最近鄰居分類法則的分類結果,分別使

    用歐式距離與五種附近連續限制類型的 DTW 距離來計算兩個聲音的

    時間數列的距離,4.3 節是分類結果比較,平均錯誤率與平均程式執

    行時間來做比較與分析。程式以及繪圖部分都是用數學軟體

    MATLAB 7.2 完成的。

    4.1 資料的初步分析與解釋

    為了比較三個人說中文”芝麻開門”聲音波形的不同,先將取得的

    錄音資料畫出原始的時間數列圖,放在圖 4-1 中,上面是第一位錄音

    者(羅)40 次錄音中第三次的原始時間數列圖,以藍色代表。中間則是

    第二位錄音者(鄭)40 次錄音中第三次的原始時間數列圖,以紅色代

    表。下面則是第三位錄音者(宋) 40 次錄音中第三次的原始時間數列

    圖,以綠色代表。

    接著由圖 4-1,三位錄音者第三筆聲音資料的原始時間數列圖可

    看出,第一位錄音者(羅)聲音的變動大致可分為四個區域,第一個區

    域與第二區域較靠近,可見錄音者說中文”芝麻”兩個字有連音,而後

  • 54

    面的二個字的聲音較分開。第二位錄音者(鄭)說中文”芝麻開門”的樣

    式大致分為兩大個區域,”芝麻”兩個字形成一個區域,”開門”兩個字

    形成另一個區域,聲音上下振幅較大,且聲音從開始到結束之間的間

    隔時間較長。最後第三位錄音者(宋)聲音的變動可以很明顯的看出四

    個區域,說中文”芝麻開門”四個字是一個一個字說的,四個字之間都

    有一小段的停頓時間。所以三位錄音者的聲音波形的大小與樣式相當

    不同,應該很好區別,第一位錄音者說話速度較快,音量較小,四個

    中文字是一個一個字說的,前兩個字偶爾會連在一起,反之第二位錄

    音者說話

    圖 4-1 羅鄭宋三位錄音者第三筆聲音資料的原始時間數列圖

  • 55

    速度較慢,音量較大,前兩個中文字連在一起,中間短暫停一下,後

    兩個中文字又連在一起,最後第三位錄音者音量適中,咬字幾乎不會

    連在一起,一個一個字的說著。

    圖 4-2 羅鄭宋三位錄音者 40 筆聲音資料平均後的時間數列圖

    圖 4-2 羅鄭宋為三位錄音者 40 筆聲音平均後的時間數列圖,上

    面第一位錄音者(羅)40 次平均聲音上下變動的幅度較小,且分佈的區

    域較為集中,多集中在 1000~5000 之間,大致呈現三個區域。而中間

    第二位錄音者(鄭)40 次平均聲音上下變動的幅度較大,而分佈的區域

    較為廣泛,由 0~5512 之間都有,還可看出大致呈現兩個區域。最後

  • 56

    下面第三位錄音者(宋)40 次平均聲音上下變動的幅度也較大,多集中

    在 800~5512 之間,可以看出大致呈現三個區域。

    4.2 分類結果

    4.2.1 分類結果(一)

    實際參與錄音實驗的人共有十一人,若三三為一組來做語音辨

    識,共有11

    165 3⎛ ⎞

    =⎜ ⎟⎝ ⎠

    組,但由於用附近連續限制類型 I 與斜率加權函

    數類型(d)的 DTW 計算距離再用最近鄰居分類法則分類,執行一組所

    需電腦執行程式的時間都接近或超過 24 小時,所以無法將 165 組全

    做,所以只由 165 組中隨機抽出 24 組,然後將其中 22 組三三錄音者

    語音辨識的分類結果的混淆矩陣與明顯錯誤率算出,放在表 4-1 中。

    另外 2 組其中宋羅張這一組的分類結果的混淆矩陣與明顯錯誤率,放

    在表 4-2 中,而宋張鄭這一組的分類結果的混淆矩陣與明顯錯誤率則

    在表 4-3 中。

    表 4-1 22 組三三錄音者 40 筆聲音資料分類結果的 混淆矩陣與明顯錯誤率(斜率加權函數類型(d))

    DTW 距離 (附近連續限制類型 I) 歐氏距離 黃致瑋 張家祥 羅琪 黃致瑋 張家祥 羅琪 黃致瑋 40 0 0 黃致瑋 4 28 8 張家祥 0 40 0 張家祥 0 36 4 羅琪 0 0 40 羅琪 0 0 40

    Error rate

    0.000000000 Error rate

    0.333333333

  • 57

    Elapsed Time(hr)

    25.703400516065 Elapsedtime (s)

    1.656284

    DTW 距離 (附近連續限制類型 I) 歐氏距離

    張惠琴 張家祥 羅琪 張惠琴 張家祥 羅琪 張惠琴 40 0 0 張惠琴 39 0 1 張家祥 0 40 0 張家祥 28 12 0 羅琪 0 0 40 羅琪 20 0 20

    Error rate

    0.000000000 Error rate

    0.40833333

    Elapsed time(hr)

    25.792 Elapsedtime (s)

    1.684160

    DTW 距離 (附近連續限制類型 I) 歐氏距離

    鄭至傑 張家祥 羅琪 鄭至傑 �