- 人工智能:語音識別理解與實踐
- 俞棟等
- 1788字
- 2021-01-05 18:14:46
1.3 口語理解與人機對話系統
本書介紹的對話系統主要是任務型口語對話系統,如圖1-4所示,該類型的口語對話系統主要由5個模塊和1個任務相關的知識庫組成,5個模塊分別是:自動語音識別(Automatic Speech Recognition,ASR)、口語理解(Spoken Language Understanding,SLU)、對話管理(Dialog Management,DM)、自然語言生成(Nature Language Generator,NLG)和語音合成(Test-to-Speech,TTS)。知識庫往往與系統要完成的具體對話任務相關,比如訂餐館的任務,知識庫就是可查詢的所有餐館信息,每個餐館都對應知識庫中的一個實體。5個模塊中的自動語音識別(ASR)模塊將用戶的聲音轉換為文字;口語理解(SLU)模塊完成語義理解任務,但與一般自然語言處理中的語義理解略有不同的是,它的輸入是語音識別模塊的一個或多個文字序列輸出,并將這些識別結果轉換為系統能夠識別的對話動作;在對話管理(DM)模塊中,對話狀態跟蹤(Dialogue State Tracking,DST)模塊負責根據口語理解部分輸出的對話動作更新對話狀態,對話決策(DialoguePolicy)根據系統的對話狀態生成語義級的系統反饋動作,自然語言生成(NLG)模塊將系統生成的反饋動作轉換為自然文本語言,語音合成(TTS)模塊將自然文本合成語音播放給用戶。本書主要介紹口語理解、對話管理和自然語言生成3個模塊。

圖1-4 任務型對話系統架構圖
語音識別將用戶的音頻輸入轉換為文字信息,原始的文字信息只是被計算機記錄,還沒有被計算機理解,因此需要有一個理解模塊能夠讓計算機理解用戶所說的話。口語理解模塊將用戶輸入的文字信息轉換成結構化的語義槽(Semantic slot)信息。比如,用戶說了一句“幫我查詢明天下午從上海到北京的機票”,其中包含了3個關鍵的語義信息:“出發時間=明天下午”“出發地=上海”“到達地=北京”。早期的語義解析方法往往基于規則,例如商業對話系統VoiceXML和Phoenix Parser。開發人員可以根據要應用的對話領域,設計與之對應的語言規則,來識別由語音識別模塊產生的輸入文本。在基于規則的系統(有時也被稱為基于知識的系統)中[14-16],開發人員會寫一些句法/語義的規則語法,并用這個規則來分析輸入的文本以獲取語義信息。這類方法最大的好處是不需要大量的訓練數據,但是需要大量的人力資源來完善語義解析規則,隨著規則的增加,規則之間的沖突檢查又成為一項復雜的工作。基于統計學習的口語語義理解方法則解決了很多基于規則的方法問題,它可以從句子樣例及相應的語義標注上自動學習。與手工書寫規則相比,數據標注需要的特定專業知識要少很多。而且統計方法通過一些半監督、無監督學習等方法,可以向新數據自適應。近十年來,深度學習技術在人工智能各個領域都取得了突破性進展,包括語音處理、圖像處理、自然語言處理等領域。在口語語義理解領域,循環神經網絡[17-19]、卷積神經網絡[20, 21]及與傳統模型(條件隨機場)的結合方法[20, 22, 23]都取得了很好的結果。深度學習方法在口語語義理解任務上的應用,在之后的章節中會被詳細介紹。
口語理解模塊將在每一輪對話中得到的文字信息都解析為計算機能夠理解的結構化語義信息,對話管理模塊中的對話狀態跟蹤模塊的任務是通過分析結構化語義信息來更新當前對話系統的對話狀態。對話狀態可以被簡單地理解為所有對話歷史的語義信息的累計結果加上數據庫中實體可能被提及的分布情況。早期的對話狀態跟蹤模塊也是基于規則的方法,隨著深度學習方法的突破,全連接前饋網絡[24]和循環神經網絡[25]也被用到基于語義信息的對話狀態跟蹤系統中。近年來,學術界研究熱點逐漸趨向于端到端的對話狀態跟蹤[26, 27]。端到端的對話狀態跟蹤系統將傳統的語義解析任務和狀態跟蹤任務視為一個整體,從自然語言直接得到對話狀態,跳過了語義解析過程。對話管理中的另一個模塊“對話決策”就是基于當前的對話狀態選擇一個合理的系統回復來完成用戶目標的。Young等人[28]將對話動作決策過程形式化為一個序列決策過程,并且使用部分可觀察馬爾可夫決策過程對對話過程進行建模,提供了可用強化學習方法來優化對話決策過程的理論依據。隨著深度強化學習(Deep Reinforcement Learnng,DRL)方法在游戲[29]、圍棋[30]和機器人[31]等領域被成功應用,DRL在對話策略優化中也很快取得了進展[32-38]。
口語系統中的自然語言生成模塊將便于計算機理解的結構化對話動作轉化為人類能夠理解的自然語言。早期的口語對話系統一般使用基于模板的方法將結構化的對話動作轉化為自然語言,這樣的方法回復的自然語言形式一般比較單一。隨著深度學習方法的發展,基于深層神經網絡的方法[39, 40]被應用到自然語言生成模塊,相較于基于模板的方法,各項指標也取得了比較明顯的提升。