開場

 

我今天主要要講的是有關於語音文件的辨識,就是語音之間的辨識、檢索以及摘要的一些研究。這是我今天要講的內容的綱要:首先我會做一個簡介,說明為什麼語音資訊的處理這樣重要;再來是目前國際間一些主流的研究單位或是公司他們所發表的相關的研究成果跟應用的系統;再來是跟各位介紹內容與技術方面的,如果你要做語音資訊的辨識、檢索以及摘要,你需要哪些的資訊和哪些技術的發展,我會稍微針對辨識、檢索及摘要這三項做些簡介;如果時間夠的話,我會稍微簡介一下我們在台師大所發展的雛型系統;最後是我們今天演講的結論以及未來可以發展的方向。

 

 

語音資訊的研究內容

 

接下來要跟各位介紹語音資訊的研究內容,讓大家知道語音資訊的相關處理的確是很重要。大家都知道,隨著電腦科技跟網路的發展,在網際網路之間,很多的多媒體內容,而這些多媒體內容很多都是 audio-visual content,這些東西每天都會流入到各位的電腦、網路或是生活裡面,例如像 youtube 等等這些,這些多媒體內容可能是像 broadcast news,或是老師上課的講義,或是演講內容,還有些歌唱比賽等等的內容,或是未來也可能漸漸會有 voice mail,還有像各位使用的信用卡,信用卡公司裡會有 agent 或是人員跟我們客戶之間的對話,這些內容其實都可以拿來做一些應用,或是做一些處理。所以從比較主觀、做語音辨識的角度出發,我們會認為,在這些多媒體內容裡面,語音是最代表、最有資訊的價值,或是說最有資訊的內容,當然在座可能有些做影像的可能不認可,可能認為影像或說 video 才是主流,這就是見仁見智了。

 

首先第一點就是在 multimedia content 部分,第二點就是比較偏向於人機介面,各位都知道,語音是人與人溝通最簡單最方便的一個媒介,尤其在未來,隨著無線網路的蓬勃發展,各位手中的 notebook 可能會慢慢淘汰,未來可能是像 PDA 或是像 iPhone 或是說 Google Phone 等等,手機越作越小,鍵盤也越來越小,甚至沒有了,這種時候各位的手掌不會變小,在手機上也不能用 mouse,語音就有他的用途了。所以我們認為綜合這上面兩項,第一個是多媒體內涵,除了文字以外,我們還有很多的影音資訊是可以應用的,還有從人機介面的角度出發,語音也是一個很方便的工具。所以我們認為在未來,語音一定可以佔有一席之地。

 

這張圖就是未來可能應用的 scenario,例如在網路上面,就很多的多媒體 content,這些多媒體資訊,或說多媒體內容,有可能是公共的,或是私人的一些資訊,我們可以對語音的內容去做理解,做組織,理解組織完後,就可以用適當的方式呈現,我們就對這些多媒體資訊來做資訊檢索,甚至於做資訊截取,而截取到的這些多媒體內容,就可以傳給使用者,呈現給使用者,這時候因為你的多媒體內容不只是文字而已,可能是一些影音或是音樂資訊等等,使用者可以透過多模式的方式去接收這些內容;接收的環境,也不只在 laptop 或是 pc 上面,可能是在車上,或是手機上面可以得到這些多媒體資訊;所以在未來我們對多媒體資訊的處理,我個人認為一個重點,是多媒體內容的一些處理以及理解,第二個是多模式的人機互動,用手指頭或是 keyboard 以外,我們可以用語音或是視覺的資訊,對這些 devices 做一些互動;我們今天要講的是比較偏向 content 的部分。

 

我們鎖定內容以語音為觀點出發,來看看為什麼多媒體內容,尤其是語音的組織跟檢索會比文字來得困難。第一個,各位可以在 Google 上檢索到一些文字資訊,各位可以發現這些文字資訊都是有些結構化;各位看一些教科書,都會有章節資訊,可以很容易去瀏覽,因為可以先看標題,內容先不要看,透過視覺的方式吸收。就語音或多媒體資訊來講,他可能是一個 vision 或是 audio signal,如果你要了解內容,假設沒有做適當處理的話,可能要從頭聽到尾,一個 voice mail 可能三分鐘,一個影片可能十分鐘甚至半個小時,從頭聽到尾是非常困難痛苦的一件事;就算把語音的內容列出來,其實語音辨識還沒有辦法到達百分之百,所以其實裡面的東西充滿了錯誤,而且辨識出來的東西只是一些 plain text,只是一串的詞,或是一串的字,沒有任何結構的資訊,其實是很難去瀏覽內容的。

 

相反的,多媒體資訊裡有一些傳統資訊裡沒有的 information,例如男同學如果聽到說:「你很帥」,如果只是文字寫出來的話,可能沒有什麼感覺,如果今天這段話是林志玲講,你可能就感覺非常不一樣;語音資訊裡面可能有些情感或情境,如果男朋友對女朋友講:「我愛你」,在課堂上講,跟你在阿里山或是在日月潭講,不同的情境講起來,你感受到的東西是不一樣的。所以除了文字資訊我們要好好運用外,其實有更多多媒體資訊,更多有趣的內容,我們想辦法有效地組織他、檢索他,也許未來,在頻寬很大、速度很快的時候,這些在 Google 上檢索的內容,不再是文字了,可能就是些圖片或是影音資訊。

 

國際上研究單位或是主流公司的發展

 

有很多的單位在做相關的研究。首先在內容方面,多媒體內容做最久的,就是卡內基美隆大學 CMU,他們在大概 1994 年的時候,就開始在做多媒體內容的處理,他們的系統,所謂的 informedia 系統現在還在發展,裡面比較跨研究領域的,除了語音處理以外,還有一些影像處理,包括人臉辨識,車牌辨識,或是 OCR definition,整合了這些內容,提供使用者一個介面,這些內容不管是文字、語音或是 video 資訊,因為內容很大,所以必須透過摘要的方式,把重要的內容、有用的資訊截取出來,讓使用者很容易去瀏覽。

 

這個大學的副教授曾經在 2000 年的時候有來台灣,來發揚他們的系統,後來他們有成立一家公司。當然這樣的系統,各位可以看到有哪些單位需要,譬如電視公司,要處理很多每天數位化的內容,如果可以把語音影像資訊整合起來,對他們的內容加值非常有用。他們成立的公司號稱一套軟體要賣三十萬美金,大概一千萬台幣,代理他的軟體一年至少賣一套,也就是說如果沒有賣出去你要幫他買一套,後來台灣就找不到代理商,台灣有些公司像中視或是東森,他們都很有興趣,只是沒有錢而已。當然這套系統做得不錯,在美國像 CNN,或是一些大的公司,都有採用他們的系統來做一些處理。

 

再來,美國 AT&T,就是 Bell Lab,他們大概在 1990 年代就開始做這方面,以語音為主的多媒體內容檢索,他們在 1999 年發表了他們的 scan system,也就是 content based retrieval system,對使用者來說,下文字 query 很容易,所以他們主要追求的是 content。他們這一套在很重要的 IR conference 上發表,主要是使用者下文字檢索新聞資訊,這些新聞資訊當然就是些影音資訊,經過一些辨識,做簡單段落的切割;使用者若是查詢譬如說日本的貿易資訊等等的問題,那它會顯示他的 query words 在哪個時間點上,它出現的次數,或是哪些結果有共同出現,使用者就很容易瀏覽,譬如他發現這個段落有很多他 query 的文字出現,他就能很快瀏覽這個段落,也就可以很容易地瀏覽內容。這大概是在十年以前 AT&T 他們發表的。後來因為 AT&T 經營不善,這個 group 就解散了,後來這個領導人就跑到 Google 去做一些相關的研究。

 

再來是美國公司,叫 BBN,他們在近期內接了些美國國防部的案子,主要是做英文、中文甚至阿拉伯文,因為中東的關係,他們也做一些各種語言的處理,他們想辦法從語音的角度出發,想辦法從多媒體影音資訊去截取裡面的語者資訊,做一些語音的辨識,甚至把裡面的影音內容做一個分類,或是把一些重要的名稱、一些專有名詞做辨識,那文章的話,會做一些適當的切割,最後以 XML 存到 database 裡面,這當然是指文字的層面;對應的影音資訊就透過一些壓縮的軟體,存在一個多媒體 server 裡面,使用者就可以透過網路去檢索內容。在 2002 年的時候我去參加 conference,他們因為跟大陸的一些關係,那時候做中文、中央電視台,號稱透過衛星收到中央電視台的這些影音資訊,在美國大概接受到資訊一個小時後,就可以去做檢索這些中央電視台的內容。當然檢索端可以下英文的,透過 cross-lingual 就可以去檢索這些中文資訊,就可以知道一些大陸的民情或是相關資訊。我問過這個公司的負責人,他說這個技術在語言的差異其實不大,在英文可以做,在中文也可以做,在阿拉伯文也可以做,當然中間有些微小差異,不過相同技術都是可以適用的。

 

再來我們看 HP,在他還沒有合併 COMPAQ 之前,他們就有在做多媒體影音的檢索,只要是以 ABC 還有 CNN news,在網路上,號稱是一個大量的資訊檢索系統,有數千個小時含有 audio 或是影音的資訊可以來檢索,譬如說透過網頁你可以下一些關鍵詞,可以去播去瀏覽他或是去閱讀他辨識出來的結果,不過也是因為公司經營策略的問題,後來這個 group 也是解散了;雖然他們可以做到 large scale 的影音資訊的處理,但是這個部門沒有繼續了,不過在學界還是有人持續在做。

 

IBM 有做一些,他們接了國防部的計畫,做一些 spoken document retrieval,他們的重點在信用卡、銀行裡面去 monitor,譬如說長官想要知道在這段期間他的客戶反應怎麼樣?有什麼抱怨的內容,或是有哪些的需求,可以從對話內容去了解;或是幫客戶做一些 call routing,大家都知道打電話給公司可以按好幾個鍵,像「信用卡請按 1,金融卡請按 2」或是國語請按多少,什麼請按多少,你要按很多的鍵才能夠轉到你想要的那個專員,那有沒有辦法你用一段自然語言的敘述,我想要做什麼,它自動把你的需求轉到一個對應的 agent,或是個服務員,可以馬上解決你的問題,這在美國就做了很多;另外就是 voice mail retrieval,像現在電話留言,還沒有辦法像文字的留言這麼容易地去瀏覽它,那有沒有可能透過一些影音處理的技術幫助你來瀏覽這些 voice mailIBM 在這個地方做了很多。

 

另外像 NTTNTT 也是一個大公司,每天也會接到很多的客戶的抱怨,也是希望可以透過語音處理的技術,來處理一些 content-center,一些客戶的問題。最後的話,像 Google,他們最近在美國有做一個 Google voice local search,也就是在美國,有一個免費的電話,只要播這個免費的電話,你就能跟他說你目前在哪個地方,要買什麼東西,或是需求是什麼東西,那他就能給你個 list,讓你跟那些商家播電話,直接的 connect,很容易地得到你想要的資訊,那我們可以看一下這個在 youtube 上的影帶。﹝播放影片﹞這其實是比較簡單的技術,就是 query 端的辨識,後面是一些文字的檢索或 database access,那處理的內容還是多媒體,不過他們最近在國際的 conference 招兵買馬,像他們最近發表的 Google Phone 等。

 

語音辨識的內容

 

所以目前在國際上有很多的單位,不管是在 query 端或是 user 端,做一些語音辨識的技術;那在國內的話,首先我們要做到一些 audio 或是 video content 的辨識或是 retrieval,我們要哪些技術呢?第一個當然是自動語音辨識技術,我們想辦法把語音的訊號從 wave form 轉換成一些詞串,一些 words sequence,我們可以做一些後續的處理,這些詞串我們就要想辦法把文章或是新聞的段落切割出來,所以我們必需要有些 automatic document segmentation 的技術,我們希望把一些具有完整性的主題的段落切出來,把他當做一些文章。

 

再來,語音辨識的內容,就算他辨識成一個詞串,還是會有些語音辨識的錯誤,所以我們必需要有這樣的技術來 index 或是來表示這些語音文件的內容,再者,因為這些 indexing 也會有一些問題,那我們如何提供很好的 matching,給你一個語音,你可以找到相關的影音或是多媒體的資訊。

 

當然資訊檢索只是初步而已,這些文章的內容還可以做很多應用,譬如在文章裡有很多人名、組織名或是地名或是一些事件的名稱,其實都是非常重要的,那我們有沒有辦法用自動的方式把他截取出來,想辦法一些類專有名詞從多媒體文件中截取出來,那這些多媒體內容或是文章裡面,其實很多 OOB 的問題,因為語音辨識的詞典是有限的,詞典內容沒辦法太多,這種情況下,一定有些詞沒辦法收錄在詞典裡面,這樣找這些類專有名詞的時候就沒有辦法找到,所以這時候需要有些技術來處理 OOB 的問題。

 

在檢索以外,我們需要做一些資訊的截取,在文章中有些重要的資訊,一些 key information,譬如說 who, when, where, why 還有 how 這些資訊,我們有沒有辦法從這些 document 裡面把它節錄出來,用一個 template 把這些資訊填入,我們就能用結構化的方式,把其中的內容抽取出來,那這些 information retrieving 的工作,目前在國際上,不管是文字或是語音,都是還有一段距離。

 

再來就是做摘要,想辦法對冗長的新聞內容,譬如一個小時、三十分鐘或是幾十分鐘的一個新聞,我們想辦法用自動的方式產生一個 summary,這個摘要有可能是文字的方式,或者是語音的方式呈現,就是一段話,或是幾段話的串接,當然他也可以是幾篇主題相關的文章共同形成的摘要,這些研究目前都非常熱門;或者,是做 title,自動下標題,像各位看文字新聞,通常都會有個標題,同樣的,對這些影音新聞有沒有辦法給個標題?其實 title generation 和摘要很像,不過他要的更精簡,摘要可能是幾句話,title 就是一句話;title 裡的文字不一定要出現在文章裡面,所以困難度更高。

 

再來就是一些文章的組織,譬如說我們檢索到一些文章,譬如 Google 就給你一千篇,其實很難找到真正想要的,那我們有沒有辦法透過一些主題的分析,或是組織來幫使用者找到他真正想要看的內容,對整個文件內容做一個組織,讓使用者容易去瀏覽,他在做資訊檢索時的滿意度可以更高一點;在語音文件的處理上面,也是非常的重要。主要我們希望對於文章的主題,想辦法去組織它,讓它以圖形化的方式呈現給使用者,一個階層式或是一個樹狀的方式來給使用者,讓使用者可以很方便去瀏覽它。

 

以上這幾點當然不是每一項每個單位都做得很好,雖然不是每一項都做得很好,但是我們可以把它整合起來成為一個系統,譬如說剛剛劉老師講在台大有教授找了一些台大學生把剛剛講的技術整合起來,使用者就能輸入語音的 query 找到一些中文的新聞,想辦法做摘要,給它做 title,用視覺方式呈現,使用者就能得到比較不一樣的,譬如我們把新聞做一個分類,那這些新聞的 collection 可以做視覺化呈現,做成一個 mapmap 的每個 entry 代表一個主題相關的新聞,我們用一些 partial word 來呈現它,那使用者就可以很容易的使用這種類似 top-down 的方式瀏覽,最後找到他想要的主題,譬如說找到以色列、阿拉法特,再從這裡面找到一些相關的主題,最後找到他想要的文章;或者是所謂 bottom-up 的方式,找到一個比較大的主題去瀏覽。

 

那最近在電視裡面 demo 系統就是這套,在兩年前的時候,我有共同參與,主要負責關鍵技術,不過最近我就比較沒有在做這個系統了。

 

語音辨識的技術

 

那在講了這些系統之後,我們來講一些語音辨識的技術,這些技術不是最難,但是很複雜,有一些些複雜度,那我今天要講的是所謂大尺度語句辨識,譬如說你講一句話,那我想辦法把這句話做成一段 word sequence,一段詞串,我跟各位講為什麼困難:首先,你做語音辨識當然有個詞典,譬如說十萬詞,在辨識的時候他講一句話,你不知道他會講幾個詞,如果講十個詞的話,就是十萬的十次方,你的搜尋空間就是十萬的十次方,那也有可能是三個詞,那就是十萬的三次方,如果是二十個詞,就是十萬的二十次方,所以這個組合是很多的,語音辨識就是從這些可能的詞串中找一個最佳的 word sequence,最能代表你的語音訊號,所以基本上我們是 based on 一個 Bayesian decision rule;就是你看到一個語音訊號,我們做一些數位化處理,我們要去找出一個機率最大的詞串,代表這個語音訊號,當然就是有一個 minimum notation decision criteria,就是 error criteria,透過這個式子,我們給定一個 word sequence,看看是不是能夠產生一個語音訊號,它的機率是多少,還有這個 word sequence 的機率是多少,我希望兩個乘積越大,能找出一個對應的 word sequence,做一個貝式定律的轉換就可以了。

 

那這裡就是有兩個機率的函式,語音辨識主要就是兩個東西,前面就是給你一段文字或幾個詞,它對應到產生這個語音訊號的機率,這就是所謂的 efficiency model;再來就是這個詞串本身的機率,這個詞為什麼在這個語音裡面發生,它的事前機率,這兩個就是用到一個很重要的模型,第一個,就是所謂的 hidden Markov model,他有一些語音的特徵,那這個詞的部分,我們就用所謂 n-gram model,他是一個 observable Markov model,來代表這個 word sequence,所以在辨識的時候就是結合這兩個資訊,還有所謂的 lexicon。那我們在哪些詞會用到哪些的 model,譬如說 wave form model 或是音節的 model,我們去做一些 composition,去組合成我們的 word model,去知道哪裡可能是個 word,或是到處都有可能是某個 word,或是某個 word 的發生,那我們這些 word segment 裡面想辦法去做 search,去找出最有代表性的 word sequence,語音辨識整個流程大概就是這樣子。那前端的處理我沒有講,一個語音訊號進來,你怎麼把類比訊號變成數位訊號,然後把一些參數找出來。

 

這個程式很難寫,我花了一年寫出來,後來有繼承給工研院和中華電信。在數學他之所以困難,其實是有一些小細節,必需要去注意他,那我們過去有做一些研究,譬如說前端這些參數處理有做一些方法,一些鑑別性的分析,參數搜尋,在模型上,有做一些 unsupervised 模型,或是些非介入式的模型,有興趣的話可以看一些相關的 paper,有這樣的研究。

 

那我給各位看一下語音辨識的結果,我跟各位強調,語音辨識沒有百分之百,過去各位可能有買過聽寫機,那個都不好用,那些公司都倒了,你要用語音輸入取代傳統的文字輸入其實還有一段距離,因為語音辨識會有錯誤,但是還是可以拿來做一些資訊檢索的使用,那我們這邊是想辦法去 transcribe 這些廣播新聞,這是公視的外場記者的聲音,這是真正的 outside testing,各位可以看看。﹝播放語音﹞

 

各位可以看一下,紅色部分是辨識錯誤的,下面是正確的。我個人經驗,主播的部分,辨識率大概九十幾,像 news 98 或是電視台主播,那外場的記者大概是八十左右,外場受訪者大概四五成,我都講得很保守。那我們可以看到有些問題,譬如說在處理這些新聞裡面,有些專有名詞,譬如說「翡翠」「石門」,可能詞典裡面沒有這些詞,所以就會變成很奇怪的詞,還有些人名等等這些就沒有辦法辨認。

 

資訊檢索概述

 

資訊檢索當然就是給一些查詢,我要找到一些跟這個查詢相關的文件,目前的技術,以內容方法大概可以分兩個方式,第一種是所謂的 literal matching,逐詞比對,去看 query 裡出現的詞,在文章裡有沒有出現,目前 Google 系統大概是這個樣子,你下一個 query 找到的文章裡面應該有這個詞,這就是所謂逐詞比對,他是用 index 建立 space,所以文章和 query 想成 vector,這個差距就可以想成在這個 space 中的 distance;另外一種就是所謂的 concept 比對,這時候就會發現一個問題,因為每個人用字遣詞不太一樣,一篇文章出現的詞和你的 query 不大一樣,例如這文章裡面是「北部第二高速公路」,那各位知道使用者都很懶,他可能講「北二高」,那這時候就會有些 term dismatching,這時候用單純的 literal matching 就是找不到的,那我們可以看這個新聞,這是廣播新聞 news 98﹝播放語音﹞

 

那你看這個新聞大概是講一些中共的空軍戰力,那如果你的查詢是這個樣子,「中共」「空軍」「近代」「戰力」,各位可以發現這個文章裡面都是「中國大陸」或是「飛機」等等,那純粹用詞的 level mapping 的話是找不到的,可是各位其實可以看到這個文件的內容其實跟查詢是很相關的,理論上應該是要找得到的,那我們有沒有辦法把這個 query document 投影到一個潛藏的語意空間,在這個語意空間裡他們不再是 based on index term,而是 based on 它的語意,可能就是一些同義詞,會 map 到同一個方向上面,那這樣這個查詢跟 document 就可以來算一些相似度。

 

資訊檢索方法

 

目前的資訊檢索方法大概是從這兩個方向出發,接下來我每個方向介紹兩個方法。

 

第一個方法就是最簡單的,向量空間模型,想辦法把你的 query document 變成一個 vectorvector 裡的每一維就是代表某個索引、某詞,如果 query document 都有某個詞的話,他們在某個向量、某個維度都有些值,那我們就可以算 cosine measure,如果他們在某個維度有的詞越多,那他們的 cosine measure 的值就會越高,在這裡我們每個 entry 每個 dimension 它的值都是正的在第一象限裡面,所以它的值介於 0 1 之間,如果它夾角越小,就說他 query document 越相關。基本上像 Google 或一些資訊檢索的系統像 yahoo!,他們的系統都是 based on 這個 vector space model 來發展,原因就是在比對的時候,可以提供一個很有效的 search 方式,不用每一篇每一篇比較,這樣如果有好幾千萬篇文章,就是曠日廢時的。

 

在研究上面,在 2000 年以後,做語音辨識的,他們就提出了所謂 hidden Markov model,把語音辨識或是做語言模型那一套拿來這邊用,叫 language model,他把每篇文章當做一個 language generator,他會產生某種語言,每篇文章他會產生某個詞的機率,或某些詞接連出現的機率,你的 query 就是你的 observation,那就看這個 query 是不是落在這個文章的機率越大越好,這個 query 是由這個文章產生的,代表這個 query 跟這個文章越相關;所以他們去做 retrieval 的時候,就是看這個 document model,裡面可能有些 unigram model,為了要解決這個機率的問題,他可能 smooth 一些 unigrambigram 的機率;在做 ranking 的時候,就看哪篇文章產生這個 language model 產生這個 query 的機率越大,那我就說這個 document 跟這個 query 越相關。這個方法是 based on 機率的模型,所以有些 optimization 的方式,我們可以拿去訓練這個文章的模型,因為相對於查詢來講,文章是比較靜態的,一個 corpus update 不是馬上的 update,通常是一天或是隔幾天會 update 一次,所以這個文章的模型可以去訓練它,可以針對不同的 query 去訓練它的機率,讓一個 query 發生在相關的文件上的機率越大越好,這就是我們的 hidden Markov model

 

另外就是在各位線性代數最後一章,其實在資訊檢索裡是最重要的,就是所謂的 SVD,想辦法把 guery word 跟我們詞典的詞建成一個 matrix,這個 matrix 裡的每個 entry 代表這個詞在文章裡面的次數或是頻率以及乘以這個詞的重要性,我們會得到一個 matrix。那得到一個 matrix 可能是一個 sparse matrix,因為某些詞沒有出現在某些文章裡,還有 document word 沒有辦法做比對,因為 document column vectorword row vector,兩個 dimension 是不一樣的,所以兩個 vector 是不能比較的,就算兩個 vector 維度是一樣的,也不一定能比較,因為他們每一維代表的意思是不一樣的;所以我們透過 SVD,就可以解決上述的問題,把原來的這個 word document matrix 把他變成 UΣV^T,這樣 U 的第一維和 V 的第一維是有個一對一的關係,所以兩個第一維代表的意思是有一定的關係,那我們這個 k 維的意思是保留變異量最大的,還原回誤差值最小的,那各位要知道,有變異才有資訊,如果大家都長得一樣,大家都穿的一樣,是沒有資訊的,大家都穿的不一樣,才有特色,才有資訊,基本上我們就說這個變異量最大的部分代表我們的資訊,我們的維度代表不同的變異的資訊,所謂的潛藏的主題,因此所謂的文章,你可以想成 query 就是這些 row vector 把他一一串起來,可以跟 document 來算 cosine measure;因為他每一個維度代表一個主題,所以他是所謂概念比對的方式。

 

這個 LSA 大概是還不到 1990 年代所提出來的,他在 IR 上有一定的成果,不過他有個缺點,他要做 exhaustive search。但是如果是做 data mining 的資料分析,他是一個很好的降維工具,降維出來的資料本身有一些代表意義。這就是所謂的 PLSI,跟 vector space model 一樣,都是線性代數的方法,是 based on minimum mean square 的方法;當然有些人會用機率的方式呈現,有一個德國人,在 1999 年,大概是 2001 paper,他就發展了所謂的 probabilistic latent semantic analysis,跟剛才的 LSA 一樣,只是他前面加個機率。他想辦法建立一個 matrix,代表每個 word document join 的發生機率,這個機率式我們可以做個 decomposition,變成我們想像某個主題產生某個詞的機率,還有某個主題產生某個 document 的機率,還有這個主題的重要性,這就跟剛才 LSA 很像,所以這個 document vector 和這個 word vector 都是機率的向量,就可以來做內積,來算夾角。這個模型因為是 based on 機率的方式來做,所以就比較有意義。他的訓練方式就是去 maximize 這個文件產生 collection 裡面詞的機率。我後來在 2004 年把剛才的模型做一些修改,我認為在訓練模型的時候應該有 query 的參與,跟剛剛一樣, query analysis 發生在某一個主題,以及 document 產生這個主題的機率,這個主題當然有很多個,如果 query document 相關的話,代表 word 發生在某些主題,那 document 產生這些主題的機率越大越好,那我去 maximize 這個 document 產生這些訓練 query 的機率,而不是去 maximize 這個 collection 而不管 query,我就希望這個 document 產生裡面的 word 的機率越高越好,訓練出來的結果會比這個 unsupervised 的方式好,所以在 2006 年的時候我們有發表一篇文章去比較我們剛才介紹的四種,那我剛剛用的那個模型效能上會比這個 PLSA 好很多。

 

不管怎樣,目前做資訊檢索,VSM 還是主流,使用上他還是主流,因為他的一些方法可以有效率的來 implement 系統,後面這些在研究上,有些研究議題來做研究,但是要取代 VSM 還是有些難題。

 

語音文件摘要

 

接下來我們介紹我們另一項研究,spoken document summarization,就跟 text document summarization 一樣,想要從文件裡面產生一段文字,來代表這個文件的內容,越精簡越好。這個摘要做很久,從 1950 年蘇聯發射第一個火箭到太空以後,美國就開始緊張了,就開始做兩件事,第一個就是 machine translation,把蘇聯文翻成英文,第二件事就是去做摘要,想辦法把裡面的內容、重點找出來,到 1990 年代因為網路的關係,開始熱門了起來。

 

summarization 分成兩種方式,一種是 extracted,一種是 abstractedextracted 比較簡單一點,就像一個 ranking,從一堆文章裡面選幾個句子,是重要的,串起來當做摘要;那 abstracted 是像人一樣,想辦法來重寫,就像你做一篇文章的評論一樣,去重寫,用幾行來代表你文章的內容,重寫當然是難很多,所以這方面的研究一直都做不好。

 

目前在一般使用上的研究,比較實用的系統上,都是做 extracted summarization,從文章裡面去找出一些重要的句子來代表文章;我個人是把這個資訊檢索的方法拿到摘要來用,也就是給你一堆文章,我想辦法去選句子,也就是 based on 我看到這個文章以後的事後機率,conditional probability,當我這個文章出現的時候,這個 sentence 發生的機率是多少?那我希望找出那些 sentence 出現機率最高的,最後是我們的摘要,那這個條件機率可以透過貝式定理來轉換成機率式,這個機率式又可以化簡成兩個式子,第一個是看到這個句子這個文章發生的機率,還有這個句子本身的事前機率,前面這個就是這個句子會產生這個文章的機率是多少,很像剛才一樣,只是現在我是要找句子。這個機率我們就可以從前面我們講的很多模型找研究成果用。這個句子的事前機率,通常就代表說這個句子重不重要,那你怎樣判斷一個句子重不重要?那就我們語音來講,一些能量的資訊,都能拿來用,這些資訊能不能整合起來,成為這個 sentence prior probability,當然也是一個研究的議題。這個部分的研究還是剛開始而已。那我們就是想辦法把一些 pitch、聲帶振動頻率、能量等等的來變成他的 priro probability

 

那我們來對這些 model 做一些比較,我們發現我們提出來的兩個模型,在 20% 50% 的摘要比例下,我們跟 supervised 或是 unsupervised 的結果都有一段距離;各位同學可能會有疑問說怎麼這麼低,就算人跟人之間去做 check 的話,每個人認為重要的資訊其實差異很大,彼此之間的相關大概是 50% 而已,就我認為相關跟你認為相關的相似程度大概 50% 而已,那我們目前機器做的大概是 36% 左右,那這是看你認為摘要的句子和標準的摘要的句子的 bigram 裡面兩個 term 之間 overlap 的程度是怎樣。那這個目前感覺效果還不錯。

 

當然還有一些改進的地方,像句子之間的關係可以拿來用,我們最近是把 machine learning 裡面的 conditional random field 拿來用,的確做出來是比 SVM 好,那我們因為是 unsupervised 的方式,跟他這種 supervised 方式還是可以有一些 competing,效果還是相當。

 

發展的系統

 

最後我講一下我們發展的系統,在師大我們發展的這個新聞的檢索系統,各位可以到這個網站上,如果有興趣,可以下語音去檢索新聞,各位可以看到一些新聞的內容,還有一些視覺化的呈現,那因為我們有接國科會的計畫,在數位典藏的計畫裡面,有做一些廣播新聞的檢索系統,可以透過 PDA 去檢索這些廣播系統或是數位典藏的內容;那現在我們希望發展一些車機上的系統,一些雛型系統,像是一些美食的搜尋。像是我想找方圓五公里賣臭豆腐的店家,那就會有秀出這些店家,我們希望這些使用這除了這些美食資訊外,因為現在有 GPS 或是 Google Maps,我們可以結合這些 information,希望在 PDA 上面或是車機上面,使用者可以很容易地找到除了路況以外,還有一些資訊。那我來 demo 一下這個比較舊的系統。﹝demo 系統﹞

 

結論與未來發展

 

多媒體資訊的使用比例非常重要,還有很多 tasks 是有挑戰性的,例如像中華電信,有一些 call center,像花旗銀行,光處理信用卡就有 120 agent,一個 agent 一個月薪水大概五、六萬,是一個很大的開銷,那我們如何透過這些多媒體內容的處理,我們可以降低人員以外,我們可不可以去 monitor 這些 agent,去了解一下客戶的滿意度是怎樣?或是他們最近的交易情況是怎樣?他們是預借現金呢?還是卡債等等的,我們去了解他們,可以反映,我們希望增加這些大公司的 service。其實真正能賺錢的是這種大公司,因為你 end-user,做手機上的語音辨識,一片能賺到的錢很少,那對大公司來講,語音資訊檢索技術會有方向,或者本身是一些 content 的擁有者,像中華電信的 MOD,在數位電視或是一般的電視,希望隨選,那這時候你坐在家裡面,不想去按按鈕,有沒有可能透過語音的方式去檢索,去瀏覽資訊,或是把節目內容做一些結構化的呈現,讓使用者方便地去瀏覽它,這個在未來對擁有 content 的大公司,像電視公司,這就是一個不錯的技術。當然,手機端也會有一些應用。

 

Q&A

 

Q1:語音的辨識,feature abstracted 是抽取怎樣的特徵?

A1:通常我們比較在意的是頻譜的資訊,在發聲的過程中有兩個資訊,一個是你聲帶振動的頻率,一個是口腔本身的形狀、舌頭的位置,通常影響語音的是口腔的形狀,跟聲帶振動比較沒有關係,那口腔的形狀會影響到語音在頻譜上的波形,在頻譜上有個類似波形的資訊,那我們主要就是截取頻譜的這個資訊,想辦法把他當做一個訊號,我們通常會對頻譜的資訊再做一次類似 Fourier transform,然後去分析頻譜的變化,把頻譜的變化做成 feature vector,第一維表示頻譜變化比較慢的,第二維代表頻譜變化比較快的,那這些就是我們所謂的資訊。那 based on 這些資訊,我們就看,去搜尋你是發哪些音,他對應的這些 feature vector,去訓練他對應的 model

 

Q2:你把 feature 挑出來之後,可不可以用頻譜的資訊,在二次 Fourier transform 之後,還原原來的聲音?速度有多快?

A2:這是可以還原回來的,通常我們都是做一次 Fourier transform,把頻譜上的雜訊消掉,再做 inverse Fourier transform,這是可以回來的。那這個應該是很快的,像我剛才辨識就是現場講,速度是可以很快的,硬體可以實現的,錄完了就做完了,錄完馬上去做辨識。

 

Q3:我這個問題主要是想應用在網路電話上面,網路電話現在是傳統電話的訊號去壓縮,然後再送出去,如果送出去這個 signature,能夠還原的話,訊號量就會少很多。

A3:這就像影像處理一樣,當然我們也能在 frequency domain 對語音訊號做壓縮,再還原回來,那一般我們是怎麼做?我剛講過,envolope 是很重要,所以我們會想辦法用一個多次方程式把他描繪出來,那我們就存那個係數,然後傳係數到 server 端,based on 這些係數在把頻譜還原回來,還原回來再做 inverse Fourier transform,把他轉回來,有人是這樣做,做 audio,語音的壓縮都是這樣做。那我們做語音辨識注重的是他相對的變化,不在乎他絕對的能量,但是我們在聽的時候,希望不只變化,能量的資訊也要有,在辨識的時候,你講小聲或你講大聲對系統來講其實沒有什麼差別,因為我們在乎主要是波峰的位置在哪個位置,相關波峰之間的位置是不是有保持住,那絕對的高度我們比較沒有強調。