電話語音機器人的核心是語音識別和語義識別。語音識別作為電話語音機器人的耳朵,在安靜環境下語音識別準確率接近97%,具備解決「聽」的能力,但由於環境雜訊、信道雜訊等雜訊問題,口語對話語音的形式多樣性,例如方言,口語助詞、遲疑、重複與停頓造成的語音不流暢,多說話人重疊,以及句子邊界定義模糊等,導致實際環境中語音識別的正確率一直不盡如人意,識別率甚至可能不到70%。當面對語音識別準確率較差,甚至不能明確表達語音片段的語義信息時,這對電話語音機器人來講是個極大的挑戰。

為此,來談談語音識別的評估指標,主要有詞錯率WER和句錯率SER兩個指標。為了使識別出來的詞序列和標準的詞序列之間保持一致,需要進行替換,刪除,或者插入某些詞,這些插入,替換,刪除的詞的總個數,除以標準的詞序列中詞的個數的百分比,即為WER,其計算公式如下所示:

SER表述為句子中如果有一個詞識別錯誤,那麼這個句子被認為識別錯誤,句子識別錯誤的的個數,除以總的句子個數即為SER,其計算公式如下所示:

實際生產環境下,電話語音機器人的語音識別引擎大多採用科大訊飛、百度、阿里、騰訊、捷通華聲等主流廠商,其WER和SER相差不大,站在產品角度而言,更需將語音識別後文本準確度評價定為3種:1)沒有發生語音識別錯誤的句子,2)有語音識別錯誤發生但不影響正確理解的對話的句子,3)有語音識別錯誤發生但影響正確理解對話的句子。

為能快速準確的量化上述3種語音識別後文本準確度評價,需藉助語言模型困惑度來劃分。「困惑度」這一概念最初的來源是資訊理論,在資訊理論中困惑度(perplexity)用來度量一個概率分佈或概率模型預測樣本的好壞程度。它也可以用來比較兩個概率分佈或概率模型,常採用相對熵(relative entropy)來衡量兩個分佈之間的相近程度。

對於離散隨機變數X,熵、交叉熵以及相對熵的定義分別如下:

其中,p(x)和q(x)都是對隨機變數概率分佈的建模。

假定p是樣本的真是分佈,q是對其的建模。因為真實分佈的熵 H(p) 值是確定的,因此優化相對熵D(p||q)等價於優化交叉熵 H(p,q)。對於自然語言序列W=w1,w2,...,wn,可以推導出對每個詞的平均交叉熵為:

顯然,交叉熵越小,則建模的概率分佈越接近真實分佈。交叉熵描述的是樣本的平均編碼長度,雖然物理意義很明確,但是不夠直觀。因此,在此基礎上,我們定義困惑度(perplexity)

困惑度在語言模型中的物理意義可以描述為對於任意給定序列,下一個候選詞的可選範圍大小。同樣的,困惑度越小,說明所建模的語言模型越精確。簡單地說,語言模型就是用來計算一個句子的概率的模型,也就是判斷一句話是否符合電話機器人在某垂直應用領域的說話習慣。下面是一些電話語音機器人實際生產環境的文本測試集的困惑度值:

  • 哦我不做股票哦行好了哦====》perplexity=2.05855724
  • 不是你們啦我一座機行嗎你沒題為九一嗎====》perplexity=12.48560559
  • 哦好的我知道了好嘞好嘞謝謝====》perplexity=2.27230580
  • 建行就業的房子他幾點鐘啊====》perplexity=11.08455070
  • 呃我對你這是不瞭解啊面談吧====》perplexity=5.11851696
  • 你要幹什麼加微信====》perplexity=2.08836132
  • 我問你在哪個平臺====》perplexity=4.00866639
  • 哦我北家裡上====》perplexity=10.47989911
  • 好的一臺開店開卡天寧島我對====》perplexity=13.51326115
  • 你選我就想廣闊的一個區====》perplexity=10.92744529
  • 哎我都不下底呃就是修====》perplexity=9.34535489
  • 那你能不能給我發一個老婆啊====》perplexity=2.61079102

基於困惑度我們將語音識別後文本數據分為三類,判斷用戶輸入的句子是否符合自然語言表達習慣,輔助對話系統進行決策,管控語音交互流程,增強交互體驗,

語音識別後文本準確度評價,有利於解決語音識別、語義理解、交互執行等存在的問題,可提高電話語音機器人的魯棒性,並對促進電話語音機器人大規模應用具有重要意義。


推薦閱讀:
相關文章