精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

基于語音識別的IVR系統的設計與實現

責任編輯:hli

2012-01-18 10:07:08

摘自:互聯網

在使用接口函數前,首先調用CoInitialize(NULL)初始化COM對象,然后創(chuàng)建語音識別引擎、語法規(guī)則上下文和識別語法,并調用函數LoadCmdFromFile裝載文法識別規(guī)則。

1 引言

IVR系統(Interactive Voice Response),即交互式語音應答系統,它被應用于呼叫中心(Call Center),以提高呼叫服務的質量、減輕服務員的工作強度并節(jié)省費用,是呼叫中心實現人機交互的重要門戶,在傳統的IVR系統中,用戶與系統交互的方式是通過電話的鍵盤。通常,用戶在進入IVR系統后,會聽到相關的語音提示選單,根據自己的需要可以按下鍵盤上相關的按鍵。系統通過DTMF信號傳送用戶按下的鍵,同時也將用戶的請求傳送給系統,從而觸發(fā)相關的語音信息。然而,傳統的電話僅能通過DTMF信號,傳送有限的幾個數字及符號按鍵。這使得用戶與系統的交互界面受到很大的限制,同時也就使得IVR系統的信息查詢范圍變得相當狹窄,用戶在實際使用時會感到諸多不便。

隨著計算機技術和人工智能總體技術的發(fā)展,自然語言理解不斷取得進展。語音識別系統已成為一個越來越廣泛的應用方向。由于電話網絡的普及性,自然語言處理系統在電話信道上的應用已成為最重要的應用之一。而且隨著移動通信技術的發(fā)展和人們對于信息獲取的移動性的需求不斷增加,市場對于電話語音識別系統的需求也不斷的增加。因此在新一代呼叫中心的IVR系統中引入了語音識別技術作為用戶的輸入手段,用戶可以直接用語音與系統進行交互,這樣大大提高了工作效率。

2 系統流程及主要模塊

本系統目標是支持多用戶并發(fā)查詢車輛違章信息和駕駛證信息。用戶使用自然的語言說出需查詢信息的類別和車牌號碼,系統識別后將識別結果反饋給用戶,經用戶確認后,系統把識別結果作為后臺數據庫查詢的關鍵字進行查詢,并將查詢結果播放給用戶。其流程見圖1。本系統主要包括以下幾個模塊:

  話路處理模塊:以并發(fā)的方式控制和管理各電話話路。

  語音識別模塊:負責查詢類別和車牌號碼的識別。

  后臺數據庫查詢模塊:將語音識別的結果作為數據庫查詢的關鍵字進行查詢。

  圖1 車輛違章信息和駕駛證信息查詢系統流程圖

3 話路處理模塊的實現

本系統的硬件部分是由電話語音卡和一臺PC機組成,語音卡通過其提供的語音處理和信令處理能力,來實現用戶的接入請求和掛機信號的檢測,并負責錄音和回放語音。本系統采用的是東進D161A語音卡。該語音卡可接入16條模擬電話線,提供16路以內的話路并行處理能力。其主要功能有:(1)自動增益控制及語音信號的壓擴變換;(2)采集和播放各種格式的電話語音信號,實現A律PCM、μ律PCM、ADPCM等算法;(3)辨識和產生DTMF信號;(4)ITU-TSS G3傳真功能。

  話路處理的主要任務是電話振鈴檢測,播放系統提示語音信息,接受用戶的按鍵請求和語音請求,與后臺數據庫模塊通訊,檢索結果的語音合成和播放。整個模塊有點類似于一個有限狀態(tài)機,在程序設計時要跟蹤系統所處的狀態(tài)進行相應的動作,并進入下一個狀態(tài),其程序流程如圖2所示。

  本系統話路處理模塊的關鍵部分是語音數據的實時采集。東進語音卡在這方面提供了一系列接口函數,如:StartRecordFile、StartRecordFileNew、VR_StartRecord等。這幾個函數都能夠實現對通道的錄音,所不同的是前兩個函數將語音數據保存到磁盤文件,后一個函數則將語音數據保存到存儲器緩沖區(qū)。由于我們要實現的是一個實時語音識別系統,因此我們采用后者來采集語音數據。在開始錄音之前,我們首先調用VR_SetEcrMode函數啟動回聲抑制功能,然后每隔一段時間調用一次VR_GetRecordData函數取得錄音數據,并將其送入語音識別引擎。當語音識別引擎有識別結果返回時,停止錄音,并根據識別結果轉入下一個狀態(tài)。

  圖2 話路處理流程

4 語音識別模塊的實現

語音識別系統的開發(fā)可以采用基于模板匹配的動態(tài)時間規(guī)整(DTW)、基于統計參數模型的隱馬爾可夫模型(HMM),神經網絡等技術,他們都是針對某些具體應用的,其模型參數的獲得需要對大規(guī)模的樣本進行學習,對于非特定人語音識別往往需要采集數百人的語音樣本,其工作量是相當大的。隨著語音研究的不斷發(fā)展,已經出現了眾多的語音識別開發(fā)工具:如Microsoft Speech SDK,IBM ViaVoice等。他們都提供了語音識別和語音合成的二次開發(fā)平臺,并且微軟的Speech SDK是完全免費的,它具有識別率高,識別速度快,可移植性好,支持多種語言等優(yōu)點。因此它被廣泛應用于各個領域。

4.1 Microsoft Speech SDK 5.1簡介

SAPI SDK是微軟公司免費提供的語音應用開發(fā)工具包,這個SDK中包含了語音應用設計接口(SAPI)、微軟的連續(xù)語音識別引擎(MCSR)以及微軟的語音合成(TTS)引擎等等。目前的5.1版本一共可以支持3種語言的識別 (英語,漢語和日語)以及2種語言的合成(英語和漢語)。SAPI中還包括對于低層控制和高度適應性的直接語音管理、訓練向導、事件、語法編譯、資源、語音識別(SR)管理以及TTS管理等強大的設計接口。

  語音識別的功能主要由一系列COM接口協調完成。其中主要的接口有下面這些:

  IspRecognizer接口:用于創(chuàng)建語音識別引擎的實例,識別引擎有兩種:獨占引擎(InProcRecognizer)和共享引擎(SharedRecognizer)。獨占的引擎對象是在本程序的進程中創(chuàng)建,只能由本應用程序使用,而共享的引擎是在一個單獨的進程中創(chuàng)建,可以供多個應用程序共同使用。

  IspRecoContext接口:主要用于接受和發(fā)送與語音識別消息相關的事件消息,裝載和卸載識別語法資源

  IspRecoGrammar接口:通過這個接口,應用程序可以載入并激活語法規(guī)則,而語法規(guī)則里定義了待識別的單詞、短語和句子。通常語法規(guī)則有兩種:聽寫語法(DictationGrammer)和命令控制語法(CommandandControlGrammer)。聽寫語法用于連續(xù)語音識別,可以識別出引擎詞典中大量的詞匯;命令控制語法用于識別用戶自定義的詞匯。

  IspPhrase接口:通過這個接口,應用程序可以獲得識別信息,如:如識別結果、識別的規(guī)則、語義標示和屬性信息等。

  IspAudioPlug接口:通過這個接口,應用程序可以將內存中的語音數據送到語音識別引擎,進行識別。

4.2 識別模塊的具體實現

由于命令控制語法方式可以限制識別的詞匯量,并且這種識別技術不需要對說話人事先進行訓練,因此在實際應用中具有較高的魯棒性和較高的識別效率。本系統的識別詞匯包括:“車輛信息查詢”、“駕駛證信息查詢”和26個英文字母10個數字,我們首先編寫了包含這些特定詞匯的語法文件。

  在使用接口函數前,首先調用CoInitialize(NULL)初始化COM對象,然后創(chuàng)建語音識別引擎、語法規(guī)則上下文和識別語法,并調用函數LoadCmdFromFile裝載文法識別規(guī)則。微軟識別引擎是通過SAPI由事件觸發(fā)來通知上層的應用程序。可以調用SetInterest來注冊自己感興趣的事件。系統默認的事件為SPEI_RECOGNITION,該事件表明當前已有識別結果返回,這時上層應用程序可以通過調用ISpRecoResult接口的GetText方法獲得識別結果。

  微軟識別引擎的語音輸入有多種方式,通常都是通過聲卡直接輸入,也可以通過其他語音輸入流。本系統的語音數據是從語音卡取得的實時數據,將其存入內存,然后通過調用ISpAudioPlug的SetData方法將其送入識別引擎。

4.3 系統實現的難點和解決方案

車牌的識別詞匯中包含10個數字和26個英文字母,這些詞匯的發(fā)音有許多是相同或相近的,比如:E和1,R和2,T和7,D和B,M和N,X和S。這些詞匯在識別時很容易產生誤識,有的甚至完全不能識別。如果單從算法上來考慮,是很難解決這些問題的。因此我們考慮從系統的流程出發(fā),當用戶認為識別有誤時,可以輸入識別錯誤的位數,然后系統根據用戶的輸入,提供幾個備選結果,供用戶選擇,這樣極大的提高了系統識別率。

  然而Microsoft Speech SDK 5.1在命令控制語法方式下是不提供多選的,只有在聽寫方式下才提供多選,但是聽寫方式下的詞匯量又無法限制。對此我們的想法是這樣的:當系統識別出結果以后,將有效語音段保存起來,并且把識別結果從命令控制方式下的詞匯量中移除,然后將保存有效語音段再次送入識別引擎,當系統識別出結果以后,再次重復以上步驟,直到識別出給定個數的結果。

5 操作方法

用戶用清晰、自然的語調說出需查詢信息的類別,如:車輛信息查詢、駕駛證信息查詢,系統識別模塊識別出結果后,轉入相應的信息查詢模塊。當用戶需要查詢車輛信息時,首先要求用清晰、較緩慢的語調說出車牌號,系統識別模塊識別出結果后,通過TTS將結果播放給用戶。這時用戶可以輸入車牌號碼中識別錯誤的位數,系統根據用戶的輸入提供7個備選結果讓用戶進行選擇。用戶選擇確認無誤后,系統將結果遞交給后臺數據庫進行查詢,并將檢索到的信息播放給用戶。

6 試驗結果及分析

  對于信息類別的識別由于其詞匯量少,音節(jié)較多,所以識別率很高,達到了100%。但是對于字母和數字的組合識別,由于其詞匯量較多,音節(jié)簡單,而且有大量相同和相近的詞匯,很容易受到噪聲的干擾,所以識別率不是很理想。然而,當我們提供七個備選結果后,即使在有一定噪音的環(huán)境下,系統的識別率達也能達到96%以上。由此表明該系統是穩(wěn)定的和實用的。

鏈接已復制,快去分享吧

企業(yè)網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 大厂| 兴安盟| 盐边县| 吴堡县| 宁海县| 上高县| 巴南区| 阿克陶县| 铁岭市| 繁峙县| 尚义县| 忻州市| 芷江| 酒泉市| 樟树市| 临洮县| 玉环县| 依兰县| 平塘县| 依兰县| 扶余县| 上高县| 乐业县| 买车| 如皋市| 杭锦旗| 神农架林区| 垣曲县| 阜新| 金阳县| 乌鲁木齐县| 江孜县| 江津市| 桐城市| 河北区| 衡山县| 达孜县| 固原市| 东台市| 开封市| 长白|