解決雞尾酒會問題

分享至

解決雞尾酒會問題

撰文╱Graham P. Collins|譯者/王怡文
轉載自《科學人》2011年5月第111期


重點提要

電腦科技目前還沒有辦法解決「雞尾酒會問題」──聽懂兩人以上同時說的話。
不過,有好幾個研究團隊正以多種方法解題,而且進展不錯。


雞尾酒會上,面前的老艾在談論一個無聊的話題,而你對山姆跟派特講的八卦更有興趣,於是你把注意力從老艾轉到山姆說的話上頭。恭喜,你展現的正是人類解決「雞尾酒會問題」的能力,亦即從兩人以上的嘈雜說話聲中,挑出一串語音。目前電腦還辦不到。雖然自動化語音辨識越來越不稀奇,但遇上兩人同時講話就不管用了。電腦語音分離技術不只能改善語音辨識系統,也有助於多種訊號分離的任務,例如判讀腦部掃描影像。

雞尾酒會問題難如登天。然而近幾年,電腦科學家已取得令人振奮的進展,甚至有研究團隊的自動化知覺技術達到了非常罕見的成就──表現得比人類更好。

難在哪裡?

分離兩串說話聲,比了解單人說話內容困難多了,因為可能的語音組合多如牛毛。運用辨識單人語音的一般技術,以暴力法一一檢查多人語音裡所有可能的原始組合,實在太耗時。所以,想要有效率地解決宴會問題,演算法得善加利用語音內的特徵。

無論是一人或多人說話的語音,都可分析成頻譜,每個頻率的強度都以百萬分之一秒為時間單位在改變,以頻譜圖呈現變化情形。一般單人語音辨識是以音素為單位來分析資料,音素是組成單字的最小聲音單位,例如「phonemes」就是由F-OH-N-EE-M-Z等音素組成。每個音素的語音,在頻譜圖會產生多變但可辨識的樣式。

在所有語音辨識中,統計模型都扮演著要角,負責計算「OH音後面跟著N音」之類情況的期望機率。辨識引擎會尋找最可能的音素序列,設法組合出完整的字和有意義的句子。
兩個人同時說話會讓組合的可能性爆增。每一刻的頻譜都可能由任兩個音素組成,還要考慮各音素在每個人的單字發音中,有各種發音的方式。難度會隨說話者數目呈指數上升。

可望解決的方法

不過,幸好語音裡的聲音分佈往往是「稀疏」的,也就是說,頻譜圖裡通常有許多小區域是某人的聲音比另一人大聲。在這些區域裡,可以用一般語音辨識技術找出音量較大者的音素,大大簡化了搜尋功夫。近年來電腦科學家就是利用了稀疏性,才能大有斬獲、找出捷徑、穿越語音分離的組合叢林,他們的做法主要有二。

其中一個方法是由下而上,檢查頻譜圖中的基本特性,以分辨哪些區域是來自同一位說話者。例如兩個不同的頻率如果突然同時出現,就可能來自同一位說話者。

這種做法通常也會尋找音量不相上下的頻譜圖區域,然後演算法先不理會那些難解的區域,而設法找出能與清晰區域相對應的音素序列。英國雪菲爾大學的團隊已用此法達到良好成效。有一篇在2010年發表的報告,以一組重疊語音標準測試樣本,測試並比較10個不同演算法的表現,而雪菲爾團隊的整體正確率名列第三高。

不過,大部份團隊是用由上而下的「模型分析式」法,尋找有意義、又能組合成完整聲音的音素序列。考慮每種可能的音素重疊組合實在太沒效率,因此必須在不犧牲太多正確性的情況下,簡化程序或只計算近似值。

芬蘭坦派勒科技大學的維塔南(Tuomas Virtanen)以輪流鎖定說話者的方式來簡化搜尋:估算A目前的最佳語音,並以此尋找最能完整解釋聲音的B語音,然後交換兩人角色,重複上述步驟。坦派勒的演算法比雪菲爾略勝一籌,正確率第二高,不過還是落後人類表現10個百分點以上。

第一個「超人類」自動語音分離技術,是美國IBM華生研究中心團隊研發的新演算法,即使同時說話的超過兩人也表現不俗,目前已能成功分離四人同時說話的語音串流。該演算法也進行常見的由上而下分析,針對所有說話者嘗試並評估各種語音序列,並穿插利用目前可能性最高的語音概估結果,尋找其中一位音量足以蓋過他人的頻譜圖區域。有趣的是,注意聲音遮蓋的情形,也讓程式得以同步調整所有說話者的語音概估。

讓電腦能毫不費力地在嘈雜的雞尾酒會中偷聽八卦之前,自動語音分離還有漫漫長路要走。然而這些最新成果告訴我們,雖然目前只聞樓梯響,但成功之日終將來到。

(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)

(Visited 21 times, 1 visits today)

分享至
views