專利名稱:用于交互式聲音響應(yīng)系統(tǒng)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于交互式聲音響應(yīng)系統(tǒng)的方法和裝置。
背景技術(shù):
電話可以用于目錄定購、核對航班時間表、查詢價格、查看賬戶余額、通知客戶、記錄和檢索消息、以及其它商業(yè)服務(wù)。通常,每個電話呼叫涉及以下述內(nèi)容為代表的服務(wù),即與用戶講話、詢問問題、向計算機(jī)輸入響應(yīng)、以及從終端屏幕讀出信息給用戶。這一處理可以通過以播放聲音提示并從例如語音識別或從DTMF音調(diào)接收用戶輸入的能力來替代交互式聲音響應(yīng)系統(tǒng)(IVR)來被自動化。
交互式聲音響應(yīng)系統(tǒng)通常使用這樣的客戶服務(wù)器配置來實現(xiàn),即電話接口和聲音應(yīng)用程序在客戶機(jī)上運(yùn)行,而諸如文本到語音或聲音提示數(shù)據(jù)庫的聲音數(shù)據(jù)提供服務(wù)器軟件在服務(wù)器上運(yùn)行,局域網(wǎng)絡(luò)連接這兩臺機(jī)器。當(dāng)應(yīng)用程序請求聲音數(shù)據(jù)時,其請求聲音服務(wù)器開始向客戶傳輸聲音數(shù)據(jù)流??蛻魧⒌却?,直到在緩沖器中累計了一定量的聲音數(shù)據(jù),然后開始播放聲音數(shù)據(jù),以打開電話信道。
直到播放操作開始的那一點的任何延遲感覺上就是相對無害的初始延遲。然而,一旦開始播放,必須以恒定的流,例如每秒8千字節(jié),向打開的電話信道饋送聲音數(shù)據(jù),這一流中的中斷的表現(xiàn)則被感覺為質(zhì)量問題,例如結(jié)巴(stutter)或喀噠(click)聲。
保持電話信道的恒定的聲音數(shù)據(jù)流是聲音服務(wù)器中的實際問題。如果該流被延遲,則只從留有聲音數(shù)據(jù)的緩沖器繼續(xù)播放聲音數(shù)據(jù)。當(dāng)聲音緩沖器被完全耗盡時,只有兩種替換方法1)以錯誤來停止整個流和播放操作;或者2)填充時間,直到新的聲音數(shù)據(jù)到來,例如人造的寂靜。如果客戶端和服務(wù)器之間的連接比LAN更遙遠(yuǎn),諸如廣域網(wǎng)絡(luò)或因特網(wǎng),那么問題就增加了。隨著VoiceXML應(yīng)用程序的發(fā)展,這種相距遙遠(yuǎn)的客戶端和服務(wù)器也正在增長。
此外,很可能LAN或另一個網(wǎng)絡(luò)同時為許多信道處理聲音服務(wù)器業(yè)務(wù)。網(wǎng)絡(luò)也可能處理其它數(shù)據(jù)業(yè)務(wù)。這兩個因素都增加了聲音分組在網(wǎng)絡(luò)中傳送時被延遲的機(jī)會。IVR和聲音服務(wù)器之間的路由器、網(wǎng)關(guān)等也會增加整個網(wǎng)絡(luò)延遲。
當(dāng)前對此問題的一個解決方案就是在客戶端使用大緩沖器,從而在緩沖器中保持有足夠多的數(shù)據(jù)以處理從聲音服務(wù)器接收到的聲音數(shù)據(jù)的最長間隙。然而,在填充緩沖器時,這將引起開始操作時長時間的延遲。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一個方面,提供了一種交互式聲音響應(yīng)(IVR)系統(tǒng),其與計算機(jī)網(wǎng)絡(luò)連接,用于接收來自網(wǎng)絡(luò)中的節(jié)點的流式聲音數(shù)據(jù),并在IVR信道上播放所接收到的聲音數(shù)據(jù),所述聲音數(shù)據(jù)代表交替的發(fā)音周期和自然寂靜周期,所述IVR系統(tǒng)包括緩沖器,用于存儲從節(jié)點接收到的聲音數(shù)據(jù);序列控制器,用于識別聲音數(shù)據(jù)的序列,每個序列包括自然寂靜之間的發(fā)音;以及播放控制器,用于當(dāng)在緩沖器中接收到聲音數(shù)據(jù)的整個序列時,在IVR信道上播放聲音數(shù)據(jù)。以這種方式,如果在聲音數(shù)據(jù)的播放中存在不連續(xù),那么不連續(xù)將在自然寂靜中發(fā)生。
序列控制器掃描到來聲音是聲音還是寂靜。將連續(xù)兩個寂靜周期之間的聲音數(shù)據(jù)識別為形成整個發(fā)音的序列。每個寂靜周期必須長于最小周期,否則將記入一些音素之間的小間隙,而一個單詞可能被計為兩個發(fā)音。在優(yōu)選實施例中,序列控制器處理聲音數(shù)據(jù),以區(qū)分代表聲音的聲音數(shù)據(jù)和代表寂靜的聲音數(shù)據(jù)。在第二和第三個實施例中,IVR序列控制器在識別聲音或寂靜的聲音數(shù)據(jù)中掃描標(biāo)記,該標(biāo)記由遠(yuǎn)程序列控制器引入該聲音數(shù)據(jù),而該遠(yuǎn)程序列控制器處理該聲音數(shù)據(jù)以在聲音和寂靜之間進(jìn)行區(qū)分。
在緩沖器中以聲音數(shù)據(jù)分組的形式存儲提示,并且序列控制器掃描每個聲音分組以確定其為聲音還是寂靜。在優(yōu)選實施例中,聲音分組足夠小,從而可以將單個聲音分組計為一個單元的聲音或寂靜。最好分組大小在10至50毫秒(msec)之間,對兩個人彼此交談的交互式聲音而言,20msec為最佳大小。然而,例如,當(dāng)雙方之一為IVR時,分組可以大到一秒。將每個聲音分組標(biāo)記為聲音或寂靜。標(biāo)記可以放置在聲音分組的首標(biāo)或聲音分組的有效負(fù)載部分。聲音緩沖器中存儲的分組與經(jīng)網(wǎng)絡(luò)傳送的分組相同,并且在將其放置到聲音緩沖器中之前,不由傳輸控制器將其連續(xù)化。
標(biāo)記分組的一種有利方式是,如果是寂靜,就使聲音分組的有效載荷部分為空。非零值將表示聲音。另一個有利方式是,用一個值來標(biāo)記分組的首標(biāo),以識別聲音或寂靜。
合適的是,如果序列控制器識別了緩沖器中要播放的數(shù)據(jù)序列,那么將使該序列能夠被播放。當(dāng)一個序列是要播放的下一個序列時,其變?yōu)楫?dāng)前序列。對于當(dāng)前序列,序列控制器獲取在緩沖器中的開始和結(jié)束分組號。
在優(yōu)選實施例中,在IVR中處理從聲音提示數(shù)據(jù)庫或TTS引擎發(fā)送的聲音分組,以識別聲音和寂靜數(shù)據(jù)的序列。這使得任何聲音服務(wù)器都能夠向本實施例發(fā)送聲音數(shù)據(jù)。然而,IVR處理許多信道的聲音數(shù)據(jù)處理,而其數(shù)字信號處理資源是有限的。所以,對于網(wǎng)絡(luò)服務(wù)器而言,代之進(jìn)行信號處理是有利的。
在第二個實施例中,在聲音服務(wù)器進(jìn)行對聲音數(shù)據(jù)的處理,并使用標(biāo)記來標(biāo)明分組數(shù)據(jù)中的序列?,F(xiàn)在IVR中的序列控制器只在聲音數(shù)據(jù)中掃描標(biāo)記,這釋放了IVR的數(shù)字信號處理資源。
此外,在第二個實施例中,一旦處理了聲音提示,并加標(biāo)記以標(biāo)明發(fā)音序列,就不需要再次對其進(jìn)行處理,并且可以將其存儲在聲音提示數(shù)據(jù)庫中,以備以后檢索使用已標(biāo)記的內(nèi)容。
然而,并不總是需要對聲音數(shù)據(jù)進(jìn)行數(shù)字信號處理。在第三個實施例中,TTS引擎通過掃描文本單詞及標(biāo)點符號之間的空格來識別文本數(shù)據(jù)中的發(fā)音,并在聲音提示中嵌入標(biāo)記,以標(biāo)明整個發(fā)音。所以,對于TTS,不需要使用數(shù)字信號處理來在聲音數(shù)據(jù)中掃描寂靜周期。發(fā)音可以取為單個單詞,但是在第三個實施例中,發(fā)音是整個語句,因為在這里,更可能發(fā)生聲音的自然停頓。在替換實施例中,由其它標(biāo)點符號分離開的短語也可以取為發(fā)音。
根據(jù)本發(fā)明的第二個方面,提供了一種用于在如權(quán)利要求中所描述的IVR系統(tǒng)內(nèi)播放提示的方法。
根據(jù)本發(fā)明的第三個方面,提供了一種計算機(jī)程序產(chǎn)品,用于處理一組或多組數(shù)據(jù)處理任務(wù),所述計算機(jī)程序產(chǎn)品包括在計算機(jī)可讀存儲介質(zhì)上存儲的計算機(jī)程序指令,當(dāng)將該計算機(jī)程序指令載入計算機(jī)中并執(zhí)行時,使計算機(jī)執(zhí)行權(quán)利要求中所描述的步驟。
為了促進(jìn)對本發(fā)明上述和其它方面的進(jìn)一步理解,現(xiàn)在將只利用示例,參考附圖描述本發(fā)明的實施例,其中圖1展示了根據(jù)現(xiàn)有技術(shù)的交互式聲音響應(yīng)系統(tǒng)(IVR)100和聲音服務(wù)器102的示意圖;圖2展示了指示聲音數(shù)據(jù)分組在現(xiàn)有技術(shù)計算機(jī)網(wǎng)絡(luò)中找到通路所耗費時間的圖;圖3展示了現(xiàn)有技術(shù)中用戶與連接到網(wǎng)絡(luò)提示數(shù)據(jù)庫和網(wǎng)絡(luò)TTS引擎的IVR的交互作用;圖4A、B、C展示了現(xiàn)有技術(shù)處理的概述例子;圖5A、B、C展示了根據(jù)本發(fā)明優(yōu)選實施例的處理的概述例子;圖6展示了根據(jù)本發(fā)明優(yōu)選實施例的IVR的示意圖;圖7展示了根據(jù)本發(fā)明優(yōu)選實施例的順序控制器的步驟;圖8展示了根據(jù)本發(fā)明優(yōu)選實施例的緩沖控制器方法的步驟;圖9A展示了根據(jù)本發(fā)明優(yōu)選實施例的緩沖器表;圖9B展示了根據(jù)本發(fā)明優(yōu)選實施例的緩沖寄存器;圖10展示了根據(jù)本發(fā)明第二個實施例的聲音服務(wù)器;以及圖11展示了根據(jù)本發(fā)明第三個實施例的文本到語音引擎。
具體實施例方式
參考圖1,其中展示了根據(jù)現(xiàn)有技術(shù)的交互式聲音響應(yīng)系統(tǒng)(IVR)100和聲音服務(wù)器102的示意圖。電話機(jī)104經(jīng)由電話網(wǎng)絡(luò)106連接到交互式聲音響應(yīng)系統(tǒng)(IVR)100。IVR 100經(jīng)由計算機(jī)網(wǎng)絡(luò)108連接到聲音服務(wù)器102。聲音服務(wù)器102連接到文本到語音引擎(TTS)110和聲音提示數(shù)據(jù)庫112。
電話網(wǎng)絡(luò)106是公共交換電話網(wǎng)絡(luò)(PSTN)。計算機(jī)網(wǎng)絡(luò)108是局域網(wǎng)絡(luò)LAN。
IVR 100包括應(yīng)用程序114、傳輸控制器116、聲音緩沖器118、以及播放控制器120。聲音服務(wù)器102包括聲音緩沖器122和傳輸控制器124。在正常操作中,聲音數(shù)據(jù)在應(yīng)用程序114的控制下,在打開的信道中,從電話機(jī)104經(jīng)電話網(wǎng)絡(luò)106流入IVR 100。聲音數(shù)據(jù)還從TTS 110或聲音提示數(shù)據(jù)庫112經(jīng)由聲音服務(wù)器102,并經(jīng)由IVR 100流入電話機(jī)104。提示數(shù)據(jù)庫中的聲音數(shù)據(jù)包括預(yù)先記錄的聲音提示。來自TTS引擎110的聲音數(shù)據(jù)包括從文本數(shù)據(jù)轉(zhuǎn)換的合成聲音。
IVR 100包括具有IBM DirectTalk*技術(shù)的IBM*WebSphere*聲音響應(yīng)3.1(WVR)。在優(yōu)選實施例中,使用Java Beans(豆)和Java應(yīng)用程序114來控制IVR 100。WVR非常適于大型企業(yè)或電信商業(yè)。其可縮放、魯棒、并且設(shè)計為一天24小時一周7天連續(xù)工作。AIX的WebSphere聲音響應(yīng)可以支持單個系統(tǒng)中12至480個同時電話信道??梢詫⒍鄠€系統(tǒng)聯(lián)網(wǎng)在一起,以提供更大的配置。優(yōu)選實施例使用AIX的WebSphere聲音響應(yīng)3.1,其支持單個IBMpSeries*服務(wù)器上1至16個E1或T1數(shù)字干線,其中單個系統(tǒng)上具有多達(dá)1,500個端口??梢栽?9英寸機(jī)架中支持2000多個使用T1或E1連接的電話信道。支持包括PSTN、ISDN、CAS、SS7、VoIP網(wǎng)絡(luò)的多個網(wǎng)絡(luò)上的網(wǎng)絡(luò)連接性。優(yōu)選實施例涉及給入局呼叫例如ISDN和SS7提供用戶識別號的那些網(wǎng)絡(luò)。*AIX、DirectTalk、IBM、pSeries以及WebSphere是國際商用機(jī)器公司在美國、其它國家、或同時在美國或其它國家的注冊商標(biāo)。
傳輸控制器116在計算機(jī)網(wǎng)絡(luò)上為IVR 100接收并發(fā)送聲音數(shù)據(jù)。其接收聲音數(shù)據(jù)分組,并在將分組存儲到聲音緩沖器118中之前使其連續(xù)。傳輸協(xié)議是TCP/IP。傳輸控制器124在聲音服務(wù)器102內(nèi)在計算機(jī)網(wǎng)絡(luò)上接收并發(fā)送聲音數(shù)據(jù)。
聲音緩沖器118在從網(wǎng)絡(luò)接收到聲音數(shù)據(jù)之后和播放控制器將其播放之前,以連續(xù)形式存儲聲音數(shù)據(jù)。聲音緩沖器118是FIFO緩沖器,從而先進(jìn)入的數(shù)據(jù)也先輸出。隨著數(shù)據(jù)輸入到緩沖器的一部分,來自另一部分的數(shù)據(jù)就可以輸出。緩沖器內(nèi)的數(shù)據(jù)量穩(wěn)定地變化,如果數(shù)據(jù)輸出多于輸入則減少,或者如果數(shù)據(jù)輸入多于輸出就增加。
播放控制器120移動來自緩沖器的已連續(xù)化的聲音數(shù)據(jù),并在聲音信道上播放。聲音緩沖器118具有指示IVR緩沖器中的聲音數(shù)據(jù)太少而不能播放的下限水平。播放控制器120只在聲音數(shù)據(jù)水平在下限水平之上時才移動聲音數(shù)據(jù)。當(dāng)數(shù)據(jù)水平低于下限水平時,播放控制器120停止從IVR緩沖器播放聲音數(shù)據(jù)。當(dāng)聲音緩沖器118中的數(shù)據(jù)水平達(dá)到上限水平時,播放控制器120再次開始移動聲音數(shù)據(jù)。一個有用的比較是水容器,其從頂部填充,并在底部具有一出口,容器中的水量達(dá)到一定水平。當(dāng)容器中的水的水平低于下限水平時,不再準(zhǔn)許水流出。再次準(zhǔn)許水流出之前,容器中的水必須達(dá)到上限。下限水平不影響聲音數(shù)據(jù)流的最后字節(jié)的播放,無論其是否低于下限水平,IVR都將播放最后字節(jié)。
參考圖2,其中展示了表示聲音數(shù)據(jù)分組在典型的現(xiàn)有技術(shù)計算機(jī)網(wǎng)絡(luò)中找到通路所耗費時間的圖。在一定的時間內(nèi)大量分組到達(dá),但是由于網(wǎng)絡(luò)加載,剩余的分組耗費較長的時間來穿過網(wǎng)絡(luò)。隨著網(wǎng)絡(luò)負(fù)載變化,該延遲呈指數(shù)減少。有一個由網(wǎng)絡(luò)的物理大小掌控的最小時間。
參考圖3,其中展示了現(xiàn)有技術(shù)中用戶與連接到網(wǎng)絡(luò)提示數(shù)據(jù)庫和網(wǎng)絡(luò)TTS引擎的IVR的交互作用。這一交互作用由步驟301至309描述。在步驟301,用戶呼叫IVR,IVR打開聲音信道,并且IVR應(yīng)用程序114控制聲音信道。在步驟302,應(yīng)用程序114在打開的信道上向用戶播放第一條提示。第一條提示是由應(yīng)用程序114存儲在IVR 100上的預(yù)先記錄的聲音數(shù)據(jù)。在播放之前,聲音數(shù)據(jù)可以傳輸?shù)骄彌_器,也可以不傳輸?shù)骄彌_器。在步驟303,響應(yīng)于該提示,從用戶接收DTMF(按鈕撥號(touch-tone))數(shù)據(jù)。在步驟304,向提示數(shù)據(jù)庫112請求聲音數(shù)據(jù)。在步驟305,提示數(shù)據(jù)庫112經(jīng)網(wǎng)絡(luò)108將聲音數(shù)據(jù)返回到IVR的緩沖器118。在步驟306,隨著緩沖器118中填滿聲音數(shù)據(jù),應(yīng)用程序114向用戶播放聲音數(shù)據(jù)作為第二次提示。在步驟307,應(yīng)用程序請求網(wǎng)絡(luò)文本到語音引擎110將一些文本轉(zhuǎn)換為聲音數(shù)據(jù)。在步驟308,文本到語音引擎110經(jīng)網(wǎng)絡(luò)108向IVR 100的緩沖器發(fā)送合成聲音數(shù)據(jù)。在步驟309,隨著緩沖器118中已填滿聲音數(shù)據(jù),應(yīng)用程序114向用戶播放聲音數(shù)據(jù)作為第三次提示。在步驟305和308的每一步中,聲音數(shù)據(jù)經(jīng)網(wǎng)絡(luò)108發(fā)送到IVR 100,正是在這些點上,網(wǎng)絡(luò)延遲的問題將影響聲音數(shù)據(jù)接收的連續(xù)性。
通常(但非必要),數(shù)據(jù)以固定長度的離散分組在網(wǎng)絡(luò)上發(fā)送。在因特網(wǎng)協(xié)議網(wǎng)絡(luò)中,分組包括TCP/IP首標(biāo),其位于每個聲音分組的開始部分;和聲音分組的“有效載荷”,包含實際聲音數(shù)據(jù)。通常使用1字節(jié)PCM格式(mu或A-law格式),以標(biāo)準(zhǔn)電話采樣率8kHz即每秒8千字節(jié)或64千比特的數(shù)據(jù)速率,表示聲音數(shù)據(jù)。典型的分組可能包含160個字節(jié),對應(yīng)于20毫秒的聲音。這意味著,為了維持8kHz的數(shù)據(jù)速率,需要發(fā)送機(jī)每秒發(fā)送50個分組。
圖4A、B、C給出了三個不同階段的現(xiàn)有技術(shù)IVR聲音數(shù)據(jù)緩沖器的一般例子。圖4A、B、C中每一個展示了IVR 100和緩沖器118,其經(jīng)由計算機(jī)網(wǎng)絡(luò)108連接到具有緩沖器122的聲音服務(wù)器102。聲音服務(wù)器以低于或高于8kHz電話速率的速率產(chǎn)生聲音分組。聲音數(shù)據(jù)以恒定速率(8kHz)播放。P1、P2、P3、P4代表單詞“the”的發(fā)音序列,而P5、P6、P7、P8代表單詞“cow”的發(fā)音序列。四個分組P1、P2、P3、P4在IVR緩沖器中等待播放,并且IVR緩沖器中有空余容量。僅就此例而言,每個分組是200ms,這意味著如果另一個分組在接下來的800ms內(nèi)沒有到達(dá),則緩沖器將被耗盡,或者發(fā)生欠載運(yùn)行錯誤,或者需要在語音信號內(nèi)任意點上播放寂靜,直到下一分組到達(dá)。這些都是所不希望。圖4B展示了圖4A接下來階段的情況,三個分組P1、P2、P3已被播放,另一個分組P5從聲音服務(wù)器到達(dá),并做好播放準(zhǔn)備。還有三個分組P6、P7、P8尚未開通網(wǎng)絡(luò),正在等待聲音服務(wù)器緩沖器。圖4C展示了圖4B接下來的階段的情況,其中分組P4和P5已被播放,而其它三個分組P6、P7、P8仍在延遲。在這種情況下,IVR除了以支持(underpin)錯誤停止操作,或者插入寂靜直到新的分組到來,別無選擇。需要注意的是,在P5和P6之間發(fā)生了寂靜,并且將導(dǎo)致結(jié)巴的效果。在現(xiàn)有技術(shù)中,寂靜的出現(xiàn)是不可控制的,因為其可以在任何分組之間發(fā)生。
圖5A、B、C給出了根據(jù)本發(fā)明實施例三個不同階段的IVR聲音數(shù)據(jù)緩沖器的一般例子。本實施例提出播放中的寂靜發(fā)生在確定為合適的點,例如字或標(biāo)點符號之間。圖5A、B、C除現(xiàn)在描述本發(fā)明的結(jié)果之外,與圖4A、B、C相似。IVR在數(shù)據(jù)流中識別適當(dāng)?shù)募澎o間隙,并在此點插入標(biāo)記。IVR只播放兩個連續(xù)階段之間的數(shù)據(jù)。與圖4A、B、C一樣,IVR緩沖器包含代表單詞“the”的分組P1、P2、P3、P4,而聲音服務(wù)器緩沖器包含代表單詞“cow”的分組P5、P6、P7、P8??墒窃谶@種情況下,標(biāo)記51位于在IVR緩沖器內(nèi)第一個單詞的第一個分組(P1)之前,以識別單詞之間的自然寂靜。緊接著從聲音服務(wù)器接收到分組P5。同樣,IVR已在P4中識別出寂靜間隙,并插入標(biāo)記53以識別它。在圖5A、B、C中,P1和P5以黑體標(biāo)明,并加下劃線,以表示單詞的第一個分組。參考圖5B,已播放了分組P1、P2、P3,即將播放P4,而P5將被延遲,直到下一個寂靜間隙內(nèi)的分組全部接收到。分組P6、P7、P8尚未發(fā)送,并還在延遲。參考圖5C,已播放了分組P4,但是因為P5是尚未完全到達(dá)的單詞的第一部分,并沒有播放P5(與圖4C相比較)。分組P6、P7、P8仍尚未發(fā)送,并還在延遲。
參考圖6,其中展示了根據(jù)本發(fā)明第一個實施例的IVR 600的示意圖。IVR 600包括現(xiàn)有技術(shù)IVR 100的組件應(yīng)用程序114、聲音緩沖器118、播放控制器120。此外,IVR 600還包括新的組件傳輸控制器602、序列控制器604、緩沖器控制器606、緩沖器表608以及緩沖器寄存器610。
傳輸控制器602從網(wǎng)絡(luò)108接收分組數(shù)據(jù),但是并不在聲音緩沖器118中使聲音數(shù)據(jù)連續(xù)化。相反,保持原分組結(jié)構(gòu),并存儲在聲音緩沖器中。
序列控制器604在聲音分組從聲音服務(wù)器102到達(dá)時截取聲音分組,并處理聲音分組,以判斷該數(shù)據(jù)為聲音還是寂靜。序列控制器604以其發(fā)現(xiàn)來更新緩沖器表608。序列控制器604的方法700將參考圖7進(jìn)行描述。
緩沖控制器606分析要播放的聲音數(shù)據(jù)的當(dāng)前序列是否在緩沖器中,以及當(dāng)前序列的播放是否將使緩沖器水平低于下限水平。緩沖器控制器606的方法800將參考圖8進(jìn)行描述。
緩沖器表608存儲緩沖器的聲音和寂靜位置。序列控制器更新緩沖器表608,而緩沖器控制器606使用緩沖器表608來在滿足條件的情況下控制序列的播放。圖9A中展示了緩沖器表608的例子。
緩沖器寄存器610存儲緩沖器表608的對應(yīng)物理存儲地址,和開始和結(jié)束分組號。其還存儲下限水平分組號。圖9B中展示了緩沖器寄存器的例子。由緩沖器控制器604來更新開始分組號和下限分組號。由序列控制器606來更新結(jié)束分組號。
現(xiàn)在參考圖7,其中展示了根據(jù)本實施例的序列控制器方法700的序列的步驟。只要由傳輸控制器602接收到來聲音分組,此方法就是連續(xù)的。步驟702處理是聲音或是寂靜的到來分組。每個分組在被接收時,都由數(shù)字信號處理器分析以確定其是聲音還是寂靜。由于寂靜聲音分組的能量水平將遠(yuǎn)低于包含實際聲音的聲音分組,所以對聲音分組的能量進(jìn)行測量。這一步驟由數(shù)字信號處理器進(jìn)行。步驟704以分組是聲音或寂靜來更新寂靜表。在此實施例中,以開始和結(jié)束分組號列出聲音和寂靜的交替周期。步驟706在緩沖器中放置分組。接著,將分組放置到緩沖器中。該分組將具有緩沖器中的物理地址,但是這里使用邏輯分組號來描述分組在緩沖器中的位置。步驟708檢查該分組是否最后一個分組。如果該分組不是最后一個分組,那么一旦接收到下一分組,就以相同方式對其進(jìn)行處理。在步驟710中,獲取了下一分組,并再次從步驟702開始本方法。步驟712是該方法的結(jié)束。如果該分組是最后一個分組,那么該方法在步驟712處結(jié)束。實際上,該處理一般是連續(xù)的,直到信道被關(guān)閉。
現(xiàn)在參考圖8,其中展示了根據(jù)本發(fā)明的緩沖器控制器方法800的步驟。只要緩沖器中有聲音數(shù)據(jù)序列,該方法就繼續(xù)。初始化步驟802指向緩沖器中第一個序列的第一個聲音分組,并將其定義為當(dāng)前序列。在步驟804,如果接收到了當(dāng)前序列的最后一個分組,則緩沖器控制器嘗試從緩沖器表中獲取當(dāng)前序列的最后一分組號。在步驟806,緩沖器控制器檢查整個序列是否都在緩沖器中。在步驟808,如果尚未接收到最后一個分組,那么緩沖器控制器等待最后一個分組。如果當(dāng)前序列的最后一個分組在緩沖器中,則在步驟810播放當(dāng)前序列。在步驟812,如果該序列是提示中最后一個序列,那么這就是該方法的結(jié)束步驟816。如果當(dāng)前分組是最后一個分組,那么在步驟818,更新計數(shù)器,以指向緩沖器表中下一個序列。
代替對整個發(fā)音是否已在緩沖器中的判斷,替換實施例中使用緩沖器中下限或上限水平的概念。在該替換實施例中,下限水平是緩沖器中固定數(shù)量的數(shù)據(jù)分組。緩沖器的開始以分組數(shù)來定義,并隨著分組被播放而經(jīng)常更新,下限水平是此前預(yù)定數(shù)量的分組。例如,下限水平可以是緩沖器的開始之前100個分組。聲音分組序列可以跨越下限水平。步驟806被修改為考慮下限水平,使得如果序列中的結(jié)束分組在下限水平之上,就播放該序列。例如,在下限水平為100個分組的情況下,如果從緩沖器的開始處起,開始分組小于100個分組,而結(jié)束分組多于100分組,則可以發(fā)生播放。需要注意的重要之處是,盡管播放使緩沖器低于下限水平,但是也播放整個序列。可選地,修改步驟806,使得只在開始和結(jié)束分組都在下限水平之上時才播放序列。使用下限和上限水平,不重新發(fā)生播放,直到緩沖器中的分組達(dá)到上限水平或接收到了提示中的最后一個分組。
參考圖9A,其中展示了緩沖器表608,其具有由序列控制器604創(chuàng)建的信息。緩沖器表608具有兩列。第一列指示該分組是寂靜還是聲音,而第二列列出對應(yīng)的分組號。一次發(fā)音是一段聲音之后跟隨一段寂靜的周期,或反之。
參考圖9B,其中展示了緩沖器寄存器610,包括由序列控制器604和緩沖器控制器606更新并使用的變量。緩沖器寄存器610包括緩沖器的開始(由緩沖器控制器606更新)、緩沖器的結(jié)束(由序列控制器604更新)以及下限水平(此例中總是比緩沖器的開始多100個分組)的變量。
參考圖10,其中展示了第二個實施例的示意聲音服務(wù)器1000。在此實施例中,在聲音服務(wù)器1000中,而不是在IVR 100中識別分組是聲音還是寂靜分組。聲音服務(wù)器1000包括聲音數(shù)據(jù)緩沖器1002、寂靜分析器1004、標(biāo)記匯編器1010、聲音數(shù)據(jù)緩沖器1012、以及傳輸控制器1014。聲音數(shù)據(jù)緩沖器1002從,例如,文本到語音服務(wù)器110或聲音提示數(shù)據(jù)庫112接收數(shù)據(jù)。寂靜分析器1004進(jìn)行數(shù)字信號處理,以確定分組包括聲音還是寂靜。標(biāo)記匯編器1010給該分組加以標(biāo)記,以識別其是聲音還是寂靜,該標(biāo)記可由序列控制器604檢查。聲音數(shù)據(jù)緩沖器1012在已修改的聲音分組被發(fā)送到IVR之前保持已修改的聲音分組,傳輸控制器1014影響分組的傳輸。在此實施例中,IVR 100中的序列控制器604在分組中掃描標(biāo)記,而不是處理分組。
參考圖11,其中展示了根據(jù)第三個實施例的示意的文本到語音服務(wù)器1100。在第三個實施例中,不在聲音服務(wù)器或IVR中對聲音分組進(jìn)行數(shù)字信號處理來識別其是聲音還是寂靜。作為替代,提示中的寂靜被文本語句之間的空格來識別,寂靜標(biāo)記插在代表連續(xù)的句子的聲音數(shù)據(jù)之間,以識別自然停頓。文本到語音服務(wù)器1100包括文本緩沖器1102、寂靜分析器1104、合成模塊1106、音素模塊1108、標(biāo)記匯編器1110、聲音數(shù)據(jù)緩沖器1112以及傳輸器1114。
文本緩沖器保持由IVR向其發(fā)送的要轉(zhuǎn)換為語音的文本。寂靜分析器1104以停頓將文本緩沖器1102中的文本打斷為多個發(fā)音。在此實施例中,取整個語句優(yōu)選為寂靜,但是在其它實施例中,還使用單詞和短語。將每個發(fā)音傳給合成模塊1106,同時,向標(biāo)記匯編器1110發(fā)送該發(fā)音的通知。合成模塊1106將發(fā)音的單詞映射到來自音素模塊1108的音素和對應(yīng)的聲音數(shù)據(jù),并將聲音數(shù)據(jù)發(fā)送給標(biāo)記匯編器1110。標(biāo)記匯編器1110將每個發(fā)音的聲音數(shù)據(jù)轉(zhuǎn)換為聲音數(shù)據(jù)分組,然后標(biāo)記開始和結(jié)束分組為寂靜分組,標(biāo)記其間的分組為聲音分組。所標(biāo)記的聲音分組在傳輸控制器1114將它們傳輸?shù)铰曇舴?wù)器102和IVR 100之前,臨時存儲在聲音數(shù)據(jù)緩沖器1112中。本實施例中,IVR 100中的序列控制器117在分組中掃描標(biāo)記,而不處理分組。
在優(yōu)選實施例中,電話網(wǎng)絡(luò)是PSTN,但是可以使用任何電話網(wǎng)絡(luò),例如ISDN或IP上的聲音(Voice over IP)。盡管在優(yōu)選實施例中使用LAN來將IVR連接到聲音服務(wù)器,但是也可以使用任何網(wǎng)絡(luò),包括因特網(wǎng)。
盡管以AIX的IBM MVR描述了實施例,但是也可以使用其它IVR來實現(xiàn)本發(fā)明。例如,用于具有直接對話技術(shù)的視窗NT和視窗2000的IBMWebSphere聲音響應(yīng)(IBM WebSphere Voice Response for Windows*NT*andWindows 2000 with DirectTalk Technology)是為更喜歡用基于視窗的操作環(huán)境來運(yùn)行自我服務(wù)應(yīng)用程序的用戶設(shè)計的交互式聲音響應(yīng)(IVR)產(chǎn)品。WebSphere聲音響應(yīng)能夠支持從簡單到復(fù)雜的應(yīng)用程序,并可在網(wǎng)絡(luò)配置中升級至上千行。Windows和Windows NT是微軟公司在美國、其它國家、或者在美國和其它國家兩者中的商標(biāo)。
權(quán)利要求
1.一種交互式聲音響應(yīng)(IVR)系統(tǒng),其與計算機(jī)網(wǎng)絡(luò)連接,用于接收來自網(wǎng)絡(luò)中的節(jié)點的流式聲音數(shù)據(jù),并在IVR信道上播放所接收到的聲音數(shù)據(jù),所述聲音數(shù)據(jù)代表交替的發(fā)音周期和自然寂靜周期,所述IVR系統(tǒng)包括緩沖器,用于存儲從節(jié)點接收到的聲音數(shù)據(jù);序列控制器,用于識別聲音數(shù)據(jù)的序列,每個序列包括自然寂靜之間的發(fā)音;以及播放控制器,用于當(dāng)在緩沖器中接收到聲音數(shù)據(jù)的序列時,在IVR信道上播放聲音數(shù)據(jù)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,在緩沖器中以聲音數(shù)據(jù)分組的形式存儲提示,并且序列控制器掃描是聲音或寂靜的每個聲音分組。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,將每個聲音分組標(biāo)記為聲音或寂靜。
4.如權(quán)利要求1-3中任何一個所述的系統(tǒng),其特征在于,在聲音分組中放置標(biāo)記,以識別其是聲音還是寂靜。
5.如權(quán)利要求1-4中任何一個所述的系統(tǒng),其特征在于,聲音緩沖器中存儲的分組與穿過網(wǎng)絡(luò)傳輸?shù)姆纸M相同。
6.如權(quán)利要求1-5中任何一個所述的系統(tǒng),其特征在于,如果聲音分組代表寂靜,則使其有效載荷為空。
7.如權(quán)利要求1-6中任何一個所述的系統(tǒng),其特征在于,在IVR中處理聲音分組,以識別聲音和寂靜數(shù)據(jù)的序列。
8.如權(quán)利要求1-6中任何一個所述的系統(tǒng),其特征在于,在聲音服務(wù)器中進(jìn)行對聲音數(shù)據(jù)的處理,并且使用標(biāo)記來標(biāo)明分組數(shù)據(jù)中的序列。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,一旦聲音提示被處理并被插入標(biāo)記來標(biāo)明發(fā)音序列,則將其存儲在聲音提示數(shù)據(jù)庫中,以備以后檢索使用已標(biāo)記的內(nèi)容。
10.如權(quán)利要求1-9中任何一個所述的系統(tǒng),其特征在于,TTS引擎通過掃描文本單詞及標(biāo)點符號之間的空格來識別文本數(shù)據(jù)中的整個發(fā)音,并在聲音提示中嵌入標(biāo)記,以標(biāo)明整個發(fā)音。
11.一種在交互式聲音響應(yīng)(IVR)系統(tǒng)中的方法,所述交互式聲音響應(yīng)系統(tǒng)與計算機(jī)網(wǎng)絡(luò)連接,用于接收來自網(wǎng)絡(luò)中的節(jié)點的流式聲音數(shù)據(jù),并在IVR信道上播放所接收到的聲音數(shù)據(jù),所述聲音數(shù)據(jù)代表交替的發(fā)音周期和自然寂靜周期,所述方法包括存儲從節(jié)點接收到的聲音數(shù)據(jù);識別聲音數(shù)據(jù)的整個序列,該序列包括自然寂靜之間的發(fā)音;以及當(dāng)在緩沖器中接收到聲音數(shù)據(jù)的序列時,在IVR信道上播放聲音數(shù)據(jù)。
12.一種計算機(jī)程序產(chǎn)品,用于處理一組或多組數(shù)據(jù)處理任務(wù),所述計算機(jī)程序產(chǎn)品包括在計算機(jī)可讀存儲介質(zhì)上存儲的計算機(jī)程序指令,當(dāng)將該計算機(jī)程序指令載入計算機(jī)中并執(zhí)行時,使計算機(jī)執(zhí)行權(quán)利要求11所述的步驟。
全文摘要
一種在交互式聲音響應(yīng)(IVR)系統(tǒng)中使用的方法,所述交互式聲音響應(yīng)系統(tǒng)與計算機(jī)網(wǎng)絡(luò)連接,用于接收來自網(wǎng)絡(luò)中的節(jié)點的流聲音數(shù)據(jù)格式的聲音數(shù)據(jù),并在IVR信道上播放所接收到的聲音數(shù)據(jù),所述聲音數(shù)據(jù)代表交替的發(fā)音周期和自然寂靜周期,所述方法包括存儲從節(jié)點接收到的聲音數(shù)據(jù);在緩沖器中識別聲音數(shù)據(jù)的整個序列,該序列包括自然寂靜之間的發(fā)音;以及如果在緩沖器中的聲音數(shù)據(jù)形成聲音數(shù)據(jù)的完整序列時,則在IVR信道上播放聲音數(shù)據(jù)。
文檔編號G10L19/16GK1501675SQ03154908
公開日2004年6月2日 申請日期2003年8月22日 優(yōu)先權(quán)日2002年11月14日
發(fā)明者羅納德·J·鮑沃特, 羅納德 J 鮑沃特, J 史密斯, 塞繆爾·J·史密斯 申請人:國際商業(yè)機(jī)器公司