基于語音識別的IVR系統的設計與實現
1 引言
IVR系統(Interactive Voice Response),即交互式語音應答系統,它被應用于呼叫中心(Call Center),以提高呼叫服務的質量、減輕服務員的工作強度并節省費用,是呼叫中心實現人機交互的重要門戶,在傳統的IVR系統中,用戶與系統交互的方式是通過電話的鍵盤。通常,用戶在進入IVR系統后,會聽到相關的語音提示選單,根據自己的需要可以按下鍵盤上相關的按鍵。系統通過DTMF信號傳送用戶按下的鍵,同時也將用戶的請求傳送給系統,從而觸發相關的語音信息。然而,傳統的電話僅能通過DTMF信號,傳送有限的幾個數字及符號按鍵。這使得用戶與系統的交互界面受到很大的限制,同時也就使得IVR系統的信息查詢范圍變得相當狹窄,用戶在實際使用時會感到諸多不便。
隨著計算機技術和人工智能總體技術的發展,自然語言理解不斷取得進展。語音識別系統已成為一個越來越廣泛的應用方向。由于電話網絡的普及性,自然語言處理系統在電話信道上的應用已成為最重要的應用之一。而且隨著移動通信技術的發展和人們對于信息獲取的移動性的需求不斷增加,市場對于電話語音識別系統的需求也不斷的增加。因此在新一代呼叫中心的IVR系統中引入了語音識別技術作為用戶的輸入手段,用戶可以直接用語音與系統進行交互,這樣大大提高了工作效率。
2 系統流程及主要模塊
本系統目標是支持多用戶并發查詢車輛違章信息和駕駛證信息。用戶使用自然的語言說出需查詢信息的類別和車牌號碼,系統識別后將識別結果反饋給用戶,經用戶確認后,系統把識別結果作為后臺數據庫查詢的關鍵字進行查詢,并將查詢結果播放給用戶。其流程見圖1。本系統主要包括以下幾個模塊:
話路處理模塊:以并發的方式控制和管理各電話話路。
語音識別模塊:負責查詢類別和車牌號碼的識別。
后臺數據庫查詢模塊:將語音識別的結果作為數據庫查詢的關鍵字進行查詢。
圖1 車輛違章信息和駕駛證信息查詢系統流程圖
3 話路處理模塊的實現
本系統的硬件部分是由電話語音卡和一臺PC機組成,語音卡通過其提供的語音處理和信令處理能力,來實現用戶的接入請求和掛機信號的檢測,并負責錄音和回放語音。本系統采用的是東進D161A語音卡。該語音卡可接入16條模擬電話線,提供16路以內的話路并行處理能力。其主要功能有:(1)自動增益控制及語音信號的壓擴變換;(2)采集和播放各種格式的電話語音信號,實現A律PCM、μ律PCM、ADPCM等算法;(3)辨識和產生DTMF信號;(4)ITU-TSS G3傳真功能。
話路處理的主要任務是電話振鈴檢測,播放系統提示語音信息,接受用戶的按鍵請求和語音請求,與后臺數據庫模塊通訊,檢索結果的語音合成和播放。整個模塊有點類似于一個有限狀態機,在程序設計時要跟蹤系統所處的狀態進行相應的動作,并進入下一個狀態,其程序流程如圖2所示。
本系統話路處理模塊的關鍵部分是語音數據的實時采集。東進語音卡在這方面提供了一系列接口函數,如:StartRecordFile、StartRecordFileNew、VR_StartRecord等。這幾個函數都能夠實現對通道的錄音,所不同的是前兩個函數將語音數據保存到磁盤文件,后一個函數則將語音數據保存到存儲器緩沖區。由于我們要實現的是一個實時語音識別系統,因此我們采用后者來采集語音數據。在開始錄音之前,我們首先調用VR_SetEcrMode函數啟動回聲抑制功能,然后每隔一段時間調用一次VR_GetRecordData函數取得錄音數據,并將其送入語音識別引擎。當語音識別引擎有識別結果返回時,停止錄音,并根據識別結果轉入下一個狀態。
圖2 話路處理流程
評論