本發明實施例的多個方面涉及對自動語音識別(ASR)系統的輸出進行語音識別和分析的領域。更具體地,本發明實施例的多個方面涉及一種在ASR系統中定義術語的語義組、使用語義組定義廣義短語、識別特定短語和使用廣義短語對識別出的短語進行分類的計算機實現和輔助的系統和方法。
背景技術:
組織和個人通常記錄和存儲包含口頭交談的音頻。例如,打給大型組織運營的呼叫中心(例如,由提供顧客支持或銷售的代理充當員工的呼叫中心)的電話呼叫、醫療實踐的音頻日志(例如,外科醫生敘述的外科手術的執行過程)、演講記錄、對執法和緊急調度服務的呼叫等等,都經常被記錄下來以用于培訓、保留記錄或其它目的。
自動語音識別(ASR)系統可以用于處理和識別已記錄的或實時口述的語言(語音)。
技術實現要素:
本發明實施例的多個方面涉及一種用于輔助用戶在使用術語的廣義語義組時增強對已記錄的或實時的交互進行分類的短語的覆蓋率的系統和方法。本發明的實施例還涉及用于自動生成術語的廣義語義組和通過使用術語的廣義語義組改進訓練自動語音識別系統的效率的系統和方法。
與系統的顧客、客戶或其他用戶的交互的分析(或執行分析)通常用于識別這些用戶行為的趨勢和模式。例如,可以分析公司的銷售呼叫中心中已記錄或實時的口述交互(例如,電話交談中的語音),以基于銷售代理的效率(例如,提升銷售嘗試的成功頻率)對呼叫分類,以識別顧客的抱怨或識別系統中的當前問題。
自動語音識別(ASR)系統可以用于處理這些記錄的交談或者實時的交談,自動識別錄制語音中特定的口述短語,并自動將記錄的通話分類為基于特定短語的存在的分類。例如,包含短語“您有興趣更新您當前的計劃嗎?”或“您對我們的保險提議感興趣嗎?”的交談可以歸類別到包含“提升銷售嘗試”的交談中。根據一個實施例,與各種類別相關聯的短語由用戶(他可能具有設計這種分類的專長)生成,用戶根據其知識和經驗手動將短語輸入系統。
將特定的短語映射到類別可能是很困難和乏味的任務,一部分是因為任何特定概念的表達方式可以多種多樣。例如,打電話取消他或她的賬戶的顧客可以說“我想取消會員”、“我想取消賬號”或“我想取消預訂”。在這種情況下,單詞“會員”、“賬號”和“預訂”具有相同的含義,但是進入系統中的卻是三種不同的短語。此外,有些顧客可以使用單詞“暫停”代替“取消”。
仍在一些其他的情況下,基于特定交互,在具有不同信息的環境中可以說出同樣的短語。例如,短語“我的信用卡號碼是”通常后跟十六個數字,這些數字根據交互的不同而不同。因此,本發明的實施例還涉及自動檢測交互中相似位置和將許多不同的短語(例如,包含不同信用卡號碼的短語)歸納到廣義短語中,所述廣義短語將被認為是與任何信用卡號碼匹配。
因此,本發明的實施例涉及用于輔助用戶創建廣義短語(簡潔地獲得潛在短語的范圍)并從而減少問題的范圍和改善交互分類質量的系統和方法。
根據本發明的一個實施例,一種用于在分析系統中生成具有與供給短語相似含義的建議短語的方法包括以下步驟:在包括處理器和存儲有指令的內存的計算機系統上接收供給短語,供給短語包括一個或多個術語;在所述計算機系統上識別短語中屬于某個語義組的術語;使用供給短語和語義組生成建議短語;和返回建議短語。
語義組可以是形式語法。
形式語法可以被設置成匹配金額、日期、時間、電話號碼、信用卡號碼、社會保險號碼、郵政編碼和郵政編碼中的一個。
建議短語可以相當于供給短語使用形式語法代替識別出的術語。
語義組可以包括多個術語。
識別出的術語可以用替換術語來替代,替換術語出自語義組的多個術語,替換術語不同于識別出的術語。
可以通過以下步驟生成語義組:計算由自動語音識別引擎生成的多個短語中的每一個之間的差異,短語中的每一個都包括多個術語;根據相似性對多個短語分組;識別短語之間存在差異的位置;和定義廣義語義組,廣義語義組包括在短語存在差異的位置處的術語。
識別出的術語可以被替換為包括多個術語的語義組。
識別出的術語可以被替換為語義組,建議短語可以作為訓練數據提供給語音識別系統。
分析系統可以是語音分析系統。
根據本發明的一個實施例,系統包括:處理器;內存,所述內存中存儲指令,當處理器執行指令時,使得處理器:接收供給短語,供給短語包括一個或多個術語;識別短語中屬于語義組的術語;使用供給短語和語義組生成建議短語;和返回建議短語。
語義組可以是形式語法。
形式語法可以被設置成匹配金額、日期、時間、電話號碼、信用卡號碼、社會保險號碼、郵政編碼和郵政編碼中的一個。
內存可以存儲指令,以通過使用形式語法替換供給短語中識別出的術語來生成建議短語。
語義組可以包括多個術語。
內存可以存儲指令,以使用源自語義組的多個術語的替換術語替換識別出的術語,替換術語與識別出的術語不相同。
內存可以存儲指令,以使處理器通過以下步驟生成語義組:計算自動語音識別引擎生成的多個短語中的每一個之間的差異,短語中的每一個都包括多個術語;根據相似度對多個短語分組;識別短語之間存在差異的位置;和定義廣義語義組,廣義語義組包括短語之間存在差異的位置處的術語。
內存可以存儲指令,以使處理器使用包括多個術語的語義組替換識別出的術語。
內存可以存儲指令,以使處理器使用語義組替換識別出的術語,建議短語可以作為訓練數據提供給語音識別系統。
處理器和內存可以是語音分析系統的組成部分。
附圖說明
附圖以及說明書一起說明了本發明的示例性實施例,并且附圖及說明一起用于說明本發明的原理。
圖1是顯示根據本發明的一個實施例的用于管理廣義短語和根據廣義短語向供給短語提供建議或修改的系統的方框圖;
圖2是短語到主題或分類的映射的視圖;
圖3是顯示根據本發明的一個實施例的類別作為不確定的有限自動機(NFA)的視圖,該類別包含六個不同短語而且沒有分組;
圖4是顯示根據本發明的一個實施例的在圖3中作為包含同樣六個短語但分組的NFA的類別的視圖;
圖5是顯示根據本發明的一個實施例的對短語一起分組來生成廣義短語的方法的流程圖;
圖6是顯示根據本發明的一個實施例的用于識別基于供給短語增加的附加短語的方法的流程圖;
圖7A是顯示根據本發明的一個實施例的匹配用美元和美分表達的金額的語法的視圖;
圖7B是顯示根據本發明的一個實施例的匹配包含金額的短語的語法的視圖;
圖7C是顯示根據本發明的一個實施例的廣義語義組的視圖,其中廣義語義組顯示為NFA;
圖7D是顯示根據本發明的一個實施例的廣義短語組的視圖,其中術語被替換為廣義語義組;
圖7E是顯示根據本發明的一個實施例的用于使用廣義語法替換短語中特定術語的方法的流程圖;
圖8是顯示用于分析ASR輸出的短語以生成規則的方法的流程圖;
圖9A是顯示用戶界面的屏幕截圖,其中類別中的短語沒有分組;
圖9B是顯示根據本發明的一個實施例的短語已分組的用戶界面的屏幕截圖;
圖10A是顯示根據本發明的一個實施例的系統的用戶界面的屏幕截圖,表明可以基于用戶增加短語“我要問個和我的賬號有關的問題”來將附加短語加入到當前分類中;
圖10B是顯示根據本發明的一個實施例的系統的用戶界面的屏幕截圖,表明可以基于用戶增加短語“這個服務的價格是the price of this service is four ninety five”來將完整的同義詞規則加入到當前分類中;
圖10C是顯示根據本發明的一個實施例的系統的用戶界面的屏幕截圖,標示出了示例性通配符分組;
圖11是根據本發明的一個示例性實施例的支持被配置為提供對已記錄的音頻會話進行訪問的呼叫中心的系統的示意性方框圖;
圖12A是根據本發明的一個實施例的計算設備的方框圖;
圖12B是根據本發明的一個實施例的計算設備的方框圖;
圖12C是根據本發明的一個實施例的計算設備的方框圖;
圖12D是根據本發明的一個實施例的計算設備的方框圖;以及
圖12E是根據本發明的一個實施例的包括多個計算設備的網絡環境的方框圖。
具體實施方式
在下面的詳細說明中,通過舉例說明的方式,僅僅顯示和說明了本發明特定的示例性實施例。本領域的技術人員應該了解,本發明可以采用許多不同的形式實施,而不應該被解釋為受限于在此所述的實施例。相同的附圖標記在說明書通篇之中表示相同的元件。
如文中所描述,本發明的各種應用和方面可以以軟件、固件、硬件及其組合來實現。當以軟件實現時,該軟件可以在通用目的計算設備上運行,例如服務器、臺式計算機、平板計算機、智能手機或者個人數字助理。這樣的通用目的計算機包括通用目的處理器和內存。
本發明的一些實施例會在呼叫中心的環境下說明。然而,本發明的實施例不限于此,也可以在包括搜索錄音記錄在內的其他情況下使用,例如基于計算機的教育系統、語音消息系統、醫療副本或任何來源的語音資料下使用。
為了對記錄集進行分類和自動檢測模式,通常可以對已經由自動語音識別系統處理過的語音記錄集進行分析。例如,如果主叫的人說“我的訂單在哪里?”或者“我還沒有收到該貨物,”,那么這一呼叫被分類為屬于“我的東西在哪里?”這一主題。
將特定短語映射到類別是很困難和乏味的任務,一部分是因為任何特定概念的表達方式都多種多樣。例如,顧客打電話要取消他或她的賬戶,可以說“我想取消會員”、“我想取消賬號”或“我想取消預訂”。在這種情況下,單詞“會員”、“賬號”和“預訂”具有相同的含義,但是進入系統中的卻是三種不同的短語。此外,有些顧客可能使用單詞“暫停”代替“取消”。為了列出各種同義詞組合,另外的變化可能需要在類別中添加追加3條或更多的短語。
通常,自動語音識別系統,特別是大詞匯量連續語音識別(LVCSR)抄錄引擎,包括三個主要部分:語言模型(LM)、聲學模型(AM)和解碼器。LM和AM是通過提供音頻文件和它們的抄本(例如,由人來準備的抄本)到學習模塊來訓練的。通常來說,LM是統計LM(SLM)。
通常,使用對給定語言和AM感興趣的域的環境將系統用于對LM進行預訓練。在實踐中,這可以通過抄錄(手動)足夠大量的音頻記錄(例如,呼叫中心環境下的電話通話)和將會話的文本表示用作用于訓練LM的輸入來完成。因此,訓練好的LM包括與在已訓練的域中特定短語出現的頻率相關的信息。例如,在銷售呼叫中心域中訓練好的LM可能表明與產品特征、產品之間的對比、賬單地址以及訂單狀態信息的描述相關聯的短語會頻繁在該域中出現。相反,這樣的域也可能表明短語與棒球隊的最近表現有關。
在語言模型已經訓練后,語言模型可以用來識別語音。音頻話語作為解碼器的輸入,所述解碼器輸出一系列識別出來的字。通過對記錄的音頻的每一部分都這樣操作(例如,呼叫中心中存儲為音頻文件的每個呼叫),應用程序可以通過有效的方式對輸出編制索引,使得終端用戶能夠快速搜索文本索引(LVCSR索引)。在一個實施例中,基于LVCSR的索引本質上允許即席(ad-hoc)搜索而不需要進行任何預定義。
然而,一些ASR系統,例如基于短語的識別器(PR),在預先給出感興趣查詢的一部分時,能在查準率和查全率方面提供更高的精確度,例如,參見:美國專利第7,487,094號“System and method of call classification with context modeling based on composite words”,該申請的全部公開內容在此并入本文作為參考;以及2013年5月2日在美國專利及商標局申請的美國專利申請第13/886,205號“Fast out-of-vocabulary search in automatic speech recognition systems”,該申請的全部公開內容在此并入本文作為參考。在這樣的系統中,短語(也稱作“查詢”或者“術語”)是預定義的。預定義的短語也可以按不同主題或者類別分組,使得在根據記錄(例如,音頻通話或者其它交互)是否含有特定預定義短語而進行處理之后可以對該記錄進行分類。
在很多場景中,預定義是針對特定的領域或者客戶定制ASR的過程的一部分。例如,所述過程可以包括一個人聆聽語音短語,然后手動選擇重要的短語添加到系統配置中。在選擇添加到系統配置中的短語的過程中,可以通過一個或多個短語定義類別,其中類別中短語的檢測表明包含該短語的會話與相關聯的類別有關,從而允許顧客對他們的數據進行分析。
圖1是顯示根據本發明的一個實施例的用于管理廣義短語和根據廣義語義組向供給短語提供建議或修改的系統100的方框圖。根據本發明實施例的系統100包括類別定義器110、存儲多個語義組120的內存、終端用戶的用戶界面150和管理員用戶界面140。
管理員130可以使用管理員用戶界面140定義術語的語義分組,下面將詳細說明。管理員用戶界面(UI)140可以通過本領域普通技術人員所理解的各種方式實現。例如,在本發明的一個實施例中,管理員UI 140通過基于瀏覽器的應用程序實現,該應用程序通過顯示在管理員130使用的網頁瀏覽器中的網頁向用戶展現表格、按鈕和控件并通過HTTP POST和GET操作從網頁瀏覽器接收請求。當然,本發明的實施例不限于此。例如,管理員UI還可以被實現為應用程序設計接口(API),所述應用程序設計接口被設置成與運行在個人計算機、平板電腦、智能手機或其它終端用戶計算設備上的專用應用程序通信。在另一個可選例中,管理員UI可以通過直接連接到系統100的輸入設備(例如,鍵盤和鼠標)直接從管理員接收指令和請求。
語義組定義器120包括被配置為存儲多個術語到語義概念的映射的內存,下面會進行更詳細的說明。在本發明的一些實施例中,語義組定義器120還被配置用于分析存儲在ASR輸出44b中的數據,以根據自動語音識別系統的輸出自動生成語義組,下面會進行更詳細的說明。通過自動語音識別引擎44a處理存儲在音頻記錄存儲器42中的音頻記錄生成ASR輸出44b。ASR引擎44a還可以用于實時分析語音(例如,打入呼叫中心的電話通話時對該呼叫進行分析)。
系統100還包括終端用戶的UI 150,UI 150被配置用于接收終端用戶160的輸入,以便基于一個或多個短語來定義類別。用戶輸入可以包括例如類別名稱(例如,“顧客不滿意”)和要被插入到類別中的短語(例如,“我很難過”)。類別定義器110被配置為接收該用戶輸入、分析輸入的短語,可以向終端用戶UI 150返回建議,以顯示給終端用戶160。所述建議可以基于存儲在語義組定義器120中的語義組。根據本發明不同實施例的建議和用于生成建議的方法會在下面進行更詳細的說明。
在本發明的一些實施例中,終端用戶UI 150和管理員UI 140可以是同一個,終端用戶160可以執行上述的通過管理員UI 140執行的操作(例如,定義語義組)。
自動語音識別引擎44a和ASR輸出數據庫44b可以由聲音分析模塊44組成。ASR引擎44a被配置為處理存儲在音頻記錄存儲服務器42中的記錄的音頻(例如,存儲為例如PCM、WAV、AIFF、MP3、FLAC、OGG Vorbis等格式的數字音頻文件),以識別存儲在記錄的音頻中的口語單詞(例如談話)。在一些實施例中,ASR引擎44a被配置為執行實時音頻分析。識別的數據存儲在ASR輸出數據庫44b中。
如圖2所示,在一個實施例中,每個主題都被定義為聯合短語。例如,短語“我很難過”、“這很可笑”和“那個顧客服務太差了”可以被映射到類別“顧客不滿意”。同樣地,短語“我有個關于賬單的問題”、“為什么我要付費”和“你多收費了”可以映射到類別“賬單問題”。為了增加定義在主題中的短語的覆蓋率,可以在短語中特定術語(例如,一個單詞或一組單詞)處使用廣義語義組,或者用廣義語義組來代替它。
本發明的實施例涉及允許用戶將相似單詞一起分組到廣義語義組(或通配符語法)和在不同的環境中使用廣義語義組的系統和方法。根據本發明的一個實施例,管理員可以通過提供兩個或更多的術語來定義語義組,這些術語可以具有相同或等同的語義含義。例如,單詞“membership”、“account”和“subscription”可以一起被分組到稱為“membership_synonyms”(<membership_synonyms>={membership,account,subscription})的廣義語義組。另外一個示例,單詞“cancel”和“suspend”可以一起被分組到“cancel_synonyms”廣義語義組(<cancel_synonyms>={cancel,suspend})。圖3是顯示作為包含六個不同短語而且沒有分組的不確定的有限自動機(NFA)的類別的視圖。圖4是顯示根據本發明的一個實施例的圖3中顯示的類別作為包含同樣六個短語但分了組的NFA的視圖。圖3中所示的六個短語可以一起分組,表示為“I want to<cancel_synonyms>my<membership_synonyms>”,其中語義組<cancel_synonyms>和<membership_synonyms>已經替代了初始短語中相應的單詞。
在一個實施例中,可以在哈希表中存儲語義組,其中組名用作關鍵字,組中術語作為值存儲在鏈表中。在有些實施例中,使用雙向映射,其中術語也映射到語義組,以允許容易地確定出短語中的哪些術語屬于一組。
圖5是顯示根據本發明的一個實施例的用于將短語一起分組來生成廣義短語的方法的流程圖。例如,如果在操作502中,向類別定義器110提供圖2所示的六個短語,則在操作504中,類別定義器110識別短語之間的差異(例如,使用Adler等人在“EXCITEMENT-Multilingual Knowledge Acquisition-Cycle I.NICE Systems(2012年12月10日)”中記載的編輯距離算法,其全部公開內容在此并入本文作為參考),然后識別單詞“cancel”和“suspend”都屬于語義組“cancel_synonyms”。類別定義器110還可以識別單詞“membership,”、“account,”和“subscription”屬于語義組“membership_synonyms”。識別出屬于同一個語義組的單詞的位置后,在操作506中,類別定義器110引用相應語義組代替每一個識別出的術語實例(例如,“suspend”被“<cancel_synonyms>”代替)。在操作508中,比較改后的短語,移除重復的短語,生成的廣義短語在操作510中返回。根據一個實施例,假定這些單詞共有上文引用所描述的同樣語境時,那么同義詞自動會被檢測出來。例如,如果系統檢測“I want to cancel my account”和“I want to terminate my account”(在一個實施例中,至少有一個次數的閾值),然后系統會下結論為“cancel”和“terminate”是同義詞。可以根據例如同義詞組“<WORD>_Synonyms”中的第一個單詞為組命名,或者在組“<MOST_FREQUENT_WORD>_Synonyms>”中基于引用文本中最常出現的單詞而不是所有單詞為組命名。
根據另一個實施例,可以如上所述,由人定義和修改類別。例如,用戶可以決定單詞“cancel”是同義詞組呼叫<CANCEL_SYNONYMS>的一部分,然后編輯該組以向組中增加單詞“suspend”。
在本發明的另一個實施例中,根據已定義的廣義語義組向用戶提供附加短語的建議。圖6是流程圖,顯示根據本發明一個實施例的用于根據供給短語識別要增加的附加短語的方法。例如,在一個上述的“membership_synonyms”組已存在的語境中,定義“account inquiries”類別的用戶可以提供短語“I would like to ask a question about my account”作為映射到這個類別的短語。根據本發明的一個實施例,在操作602中,類別定義器110接收短語,在操作604中遍歷短語中的術語以識別出屬于語義組的術語。在這個示例中,類別定義器110將識別出屬于“membership_synonyms”組的單詞“account”。在操作606中,類別定義器110生成新短語,新短語使用匹配的語義組的其它成員代替識別出的術語。這里,類別定義器110生成短語“I would like to ask a question about my membership”和“I would like to ask a question about my subscription”,這是因為“membership”和“subscript ion”是“membership_synonyms”組中的其它術語。然后,在操作608中,新生成的短語作為建議返回。
在本發明的一個實施例中,語義組可以包括為了包括不同的方式表達如日期、時間和金額等概念而定義的組。例如,語義組可以被定義為一個語法(或“形式語法”,例如參見圖7A中用美元和美分定義金額的形式語法的示例)。當這么用的時候,通配符可以有效增加供給短語的覆蓋率。例如,如上所述,通過使用語法[currency](或通配符)來匹配任何金額的短語“the price of this service is[currency]”,而不是提供短語“the price of the service is four ninety five”,具有不同價格或價格變化的各種服務可以被識別和用來對交互分類。
根據本發明的一個實施例,[貨幣]組是被設計成在說話時匹配各種金額(或美元)的表達方式的語法,而且可以在其中嵌入更多語法。圖7A是顯示根據本發明的一個實施例的通用貨幣形式語法結構的視圖。根據一個實施例,為了識別從0到$1,000的美元,語法[貨幣]包括并行語法,其中一個分支包含[數字](其中為了檢測數值,數字可以通過合并語法定義數值),后跟單詞“美元”,第二分支識別數字,后跟短語“美元和”,后面再跟著另一個0-99的數字和單詞“美分”。然而,本發明的實施例不限于此,可以對這樣的語法做出很多其它的改變或添加,以增加可以被檢測為貨幣的輸入的范圍。在一個實施例中,在語法[貨幣]中使用的語法[數字]也包含了在說話時在書寫時不易見到的各種數值表達方式。例如,語法[數字]可以識別表達為“two thousand two hundred”、“twenty two hundred”或者“two point two kay”的數字2,200。另外,像下面描述的,可以為各種其它通用概念生成類似定義的語法。
本發明的實施例可以包括很多已定義的語法,例如字母和數字的字母數字序列、信用卡到期日、信用卡號、貨幣、日期、數字序列、數字、電話號碼、社保號碼、時間、年代和郵政編碼。另外,可以使用廣義的“通配符”語法來匹配短語中的任何“洞”。表1列出根據本發明的一個實施例的幾個示例語法。
表1
在短語中使用這樣的通配符的實施例中,短語中整個語法都被實例化了,而不只是初始特定術語被實例化,這樣廣義語法可以用于匹配任何檢測到的包含短語其余部分的會話。圖7B顯示了合并了圖7B中所示的數值語法的短語“the total for your order is[number]”。
圖7C是顯示根據本發明一個實施例的廣義語義組的視圖,其中語義組被顯示為NFA。這里,圖7C顯示了匹配術語“supervisor”或“manager”的“supervisor-manager”組。
圖7D是顯示根據本發明的一個實施例的廣義短語組的視圖,其中術語被廣義語義組代替。這里,圖7C所示的“supervisor-manager”組出現在短語的末端,這樣廣義組就會匹配短語“I would like to speak to your supervisor”和短語“I would like to speak to your manager”。
雖然語義組在這里被顯示和說明為不確定的有限自動機,但本發明的實施例不限于此,可以使用其它技術,例如正則表達式,定義語義組。
圖7E是顯示根據本發明的一個實施例的使用廣義語法替換短語中特定術語的方法的流程圖。在操作702中,類別定義器110接收短語。在操作704中,識別出短語中匹配已定義語法的術語或術語組。在操作706中,使用已定義的語法替換匹配的術語。在操作708中,如果有多個短語,那么移除任何重復的短語,在操作710中返回剩余的廣義短語。
圖8是根據本發明的一個實施例的用戶界面的屏幕截圖,顯示了使用語法對識別出的短語進行的替換。
根據本發明一個實施例,識別的短語具有與它們被發現的可能性相對應的先驗概率。這樣,當使用組(或“通配符”)對短語分組時,新的廣義短語的先驗概率是發現初始短語的先驗概率之和。例如,如果“suspend”具有先驗概率A,“terminal”具有先驗概率B,那么廣義短語(<“terminal”“suspend”>)的合并先驗概率具有先驗概率A+B。
在本發明的另一個實施例中,規則匹配算法自動檢測兩個或更多個短語是相似的,生成合并這些短語的規則,將相似短語合并到廣義短語中。根據本發明的一個實施例,使用動態規劃的匹配算法可以用于匹配兩個短語,識別短語存在差異的位置,從而能夠自動生成對不同單詞進行分組的新規則(例如,上面示例中的“manager”和“suspend”),這些規則可以被建議發給用戶以用于編輯(例如,增加或移除不應該在規則中的術語)、確認或拒絕。
圖8是顯示用于分析ASR輸入的短語以生成規則的方法的流程圖。在操作802中,語義組定義器120接收短語,其中該短語是自動語音識別引擎的輸入。然后在操作804中,語義組定義器120計算供給短語中的每對短語之間的編輯距離。在操作806中,短語一起根據相似度進行分組,在操作808中識別出短語之間存在差異的位置。然后在操作810中,語義組定義器120在相似短語之間存在差異的位置處抽取術語,生成包含這些差異的新組。在一個實施例中,可以編輯誤報(例如,反義詞),而不是由用戶自動生成的同義詞。
另外,本發明的實施例可以用于說明,句子的一部分已經被包含在通配符語法中,這樣用戶可以選擇使用語法而不是這部分句子。在這個實施例中,當每個新的短語輸入到用戶界面中時,都要匹配現有的通配符語法(例如,使用動態規劃來提高性能)。這種算法允許在短語的開頭和結尾插入,這樣當短語只有部分匹配時,在新短語中存在、但不在現有語法中的單詞不會妨礙匹配。表2顯示輸入短語和語法之間的匹配過程的輸出。
表2
根據本發明的一個實施例,通配符語法可以用于在自動語音識別系統(例如,大詞匯量連續語音識別(LVCSR)引擎)的訓練期間代替短語。通常,訓練這樣的系統涉及提供語言中存在的大單詞序列集合(稱為“n-grams”或“ngrams”),以便訓練引擎如何通用地呈現特定序列。一個缺點是必須收集大量的訓練材料來盡可能多地覆蓋語言。因此,通過在訓練數據中使用廣義短語代替特定短語,可以增加訓練材料的有效量。
例如,如果訓練數據包括短語“your flight is on the twelfth of October”和“your flight is on the fourth of June”,那么日期可以被日期語法代替,底層引擎可以在短語“your flight is one the[date]”上進行訓練。這樣,廣義訓練材料可以用于識別日期。插入這些語法改變了單一的示例,僅覆蓋通用語句中單一日期,通用語句覆蓋了所有可能的日期。
例如參見Brown等人的文章“Class-based n-gram models of natural language”18Journal of Computational Linguistics 4 467-79(1992),該文章披露的全部內容在這里并入本文作為參考,來討論將通配符數據作為特定分類語言模型。
因而,本發明的實施例可以改進短語的覆蓋范圍,并且可以幫助用戶定義覆蓋全面的類別。
圖9A是顯示了其中短語還沒有分組的類別的用戶界面的屏幕截圖,其中用戶界面顯示了六個不同的短語(與圖2所示的視圖進行比較)。圖9B是顯示用戶界面的屏幕截圖,其中短語被分組,“<cancel>”代替“cancel_synonyms”,“<membership>”代替“membership_synonyms”(與圖3所示的視圖進行比較)。
圖10A是一個用戶界面的屏幕截圖,顯示了表明可以根據用戶增加的短語“i would like to ask a question about my account”向當前類別添加附加短語的系統。在這個示例中,系統提出單詞“account”已經出現在語義組(或“通配符語法”)“membership_synonyms”中,并提議根據已知的同義詞自動增加更多短語。
圖10B是一個用戶界面的屏幕截圖,顯示了表明可以根據用戶添加的短語“the price of this service is four ninety five”將全部同義詞規則添加到當前類別的系統。這里,單詞“four ninety five”被檢測為可能的貨幣,系統可以建議用貨幣語法代替這些單詞。這樣,在處理因交互到交互而使得短語的元素不同時,廣義短語就起作用了。
圖10C是一個用戶界面的屏幕截圖,顯示了根據本發明一個實施例的在檢測到一個術語作為語法被語義組代替后的系統。這里,語法[currency]和[date]分別具有之前輸入的替換術語,例如“$19.99”和“July 3rd,2013”。
本發明的實施例可以應用到基于自動語音識別系統的大詞匯量連續語音識別(LVCSR)和短語識別(PR)自動語音識別(ASR)系統。
本發明的實施例可以應用在各種不同的涉及記錄的音頻對話的領域中,包括:電臺訪談記錄;空中和海上交通通信;執法、火災和緊急通信等。根據本發明的一個實施例,在呼叫中心中實現呼叫預測系統,其中代理引導與客戶、顧客和其他個人的電話和其它語音通信。
圖11是根據本發明的一個示例性實施例的支持被配置成向顧客服務代理提供顧客可用性信息的呼叫中心的系統的示意性方框圖。呼叫中心可以是在室內的為企業服務的行業或公司,執行與通過企業可獲得的產品和服務相關的銷售和服務的功能。另一方面,呼叫中心可以是第三方服務提供者。呼叫中心可以置于企業或第三方提供者專用的設備中,和/或置于遠程計算環境中,例如私有云環境或公有云環境且基礎設施用于支持多個企業的多個呼叫中心。
根據一個示例性實施例,呼叫中心包括資源(例如,人員、計算機和電信設備),以便能夠通過電話或其它通信機制傳送服務。這種服務可以根據呼叫中心類型而不同,范圍可以從顧客服務到服務臺、緊急響應、電話銷售、訂單受理和類似的服務。
需要從呼叫中心接受服務的顧客、潛在的顧客或其他終端用戶(統稱為顧客)可以通過他們的終端用戶設備10a-10c(統稱為10)初始化到呼叫中心的入站呼叫。終端用戶設備10中的每一個都可以是本領域常用的通信設備,例如電話、無線電話、智能電話、個人計算機、電子平板和/或類似設備。操作終端用戶設備10的用戶可以初始化、管理和響應電話呼叫、電子郵件、聊天、文字消息、網頁-瀏覽會話和其它多媒體事務。
到終端用戶設備10的和從終端用戶設備10出的入站呼叫和出站呼叫可以根據正在使用的設備類型穿過電話、蜂窩和/或數據通信網絡14。例如,通信網絡14可以包括私有或公共交換電話網絡(PSTN)、局域網(LAN)、私有廣域網(WAN)和/或公共廣域網,例如互聯網。通信網絡14也可以包括無線載波網絡,包括碼分多址(CDMA)網絡、全球移動通信系統(GSM)網絡和/或本領域傳統的任何3G或4G網絡。
根據一個示例性實施例,呼叫中心包括連接到通信網絡14的交換/媒體網關12,用以接收和傳送終端用戶和呼叫中心之間的呼叫。交換/媒體網關12可以包括電話交換機,所述電話交換機被設置為用作用于在中心內為代理層級進行路由的中心交換機。從這點上來說,交換機12可以包括自動呼叫分配器、專用分組交換機(PBX)、基于IP的軟件交換機和/或其它任何配置為接收源自互聯網的呼叫和/或源自電話網絡的呼叫的交換機。根據本發明的一個示例性實施例,交換機連接到呼叫服務器18,舉例來說,該呼叫服務器可以作為交換機與呼叫中心的路由、監控和其它呼叫處理部件的剩余部分之間的適配器或接口。
呼叫中心還可以包括多媒體/社交媒體服務器,所述多媒體/社交媒體服務器用于與終端用戶設備10和/或網頁服務器32進行媒體交互,而不是語音交互。例如,媒體交互可以和電子郵件、語音郵件(通過電子郵件傳遞的語音郵件)、聊天、視頻、文本消息、網頁、社交媒體、屏幕共享等相關。網頁服務器32可以包括例如用于各種公知的社交交互站點的社交交互站點主機,終端用戶可以在所述社交交互站點上進行訂閱,例如Facebook、Twitter或類似站點。網頁服務器還可以為呼叫中心支持的企業提供網頁。終端用戶可以瀏覽網頁,獲得關于企業的產品和服務的信息。網頁還可以提供用于例如通過網頁聊天、語音呼叫、電子郵件、網頁實時通信(WebRTC)或類似方式聯絡呼叫中心的機制。
根據本發明的一個示例性實施例,交換機連接到交互式媒體應答(IMR)服務器34,該服務器也可以被稱為自助系統、虛擬助手或類似。IMR服務器34可以與交互式語音應答(IVR)服務器相似,除了IMR服務器不限于語音而是可以覆蓋包括語音的各種媒體信道之外。然而,以語音為示例,IMR服務器可以配置有用于查詢主叫顧客需求的IMR腳本。例如,通過IMR腳本,銀行的呼叫中心可以告訴呼叫者,如果他們希望得到賬號余額則“按1”。在這種情況下,通過連續地和IMR的交互,顧客可以在不需要和代理通話的情況下完成服務。IMR服務器34還可以問開放性的問題,例如,“還有什么可以幫您的嗎?”,顧客可以講話,或者可以另外輸入聯絡呼叫中心的原因。顧客的應答然后可以被路由服務器20使用,以將呼叫路由到合適的呼叫中心資源。
如果呼叫被路由到代理,那么該呼叫被轉發到呼叫服務器18,所述呼叫服務器與路由服務器20交互以用于尋找合適的處理呼叫的代理。呼叫服務器18可以配置用于處理PSTN呼叫、VoIP呼叫和類似呼叫。例如,呼叫服務器18可以包括用于處理SIP呼叫的初始會話協議(SIP)服務器。根據一些示例性實施例,呼叫服務器18可以例如抽取有關顧客交互的數據,例如呼叫者的電話號碼,常常被當作自動號碼識別(ANI)號碼,或者顧客的互聯網協議(IP)地址或電子郵件地址。
在一些實施例中,路由服務器20可以查詢顧客數據庫,所述數據庫存儲關于現有客戶的信息,例如聯絡信息、服務等級協議(SLA)需求、之前顧客聯絡的屬性以及呼叫中心解決任何客戶問題所采取的動作以及類似信息。數據庫可以由本領域常用的任何數據庫管理系統管理,例如Oracle、IBM DB2、Microsoft SQL server、Microsoft Access、PostgreSQL、MySQL、FoxPro和SQLite,可以存儲在大容量存儲設備30中。路由服務器20可以通過ANI或IMR 34收集并通過呼叫服務器18轉送到路由服務器的其它任何信息從顧客數據庫中查詢顧客信息。
一旦有合適的代理可以處理呼叫,就在呼叫者和識別出的代理的代理設備38a-38c(統稱為38)之間建立連接。收集的有關呼叫者的信息和/或呼叫者的歷史信息也可以提供給代理設備,以用于幫助代理更好地為呼叫服務。在這點上,每個代理設備38都可以包括適用于常規電話呼叫、VoIP呼叫和類似呼叫的電話。代理設備38還可以包括計算機,所述計算機用于與呼叫中心的一個或多個服務器通信,執行與呼叫中心操作相關聯的數據處理,并通過語音和其它多媒體通信機制與顧客接洽。
可以例如根據路由服務器20采用的路由策略選擇合適的代理對入站呼叫進行路由,進一步的,還可以根據與代理的可用性、技能和例如統計服務器22提供的其它路由參數有關的信息進行選擇。
呼叫中心還可以包括報表服務器28,所述報表服務器被配置為從統計服務器22聚集的數據中生成報表。這種報表可以包括關于資源狀態(例如,平均等待時間、放棄率、代理機會和類似狀態)的近實時報表或歷史報表。報表可以自動生成或者響應來自請求者的具體請求而生成(例如,代理/管理員、呼叫中心應用程序和/或類似請求)。
根據本發明的一個示例性實施例,路由服務器20增強了用于管理分配給代理的后臺/離線活動的能力。這種活動可以例如包括回復電子郵件、回復信件、參加培訓研討會或任何其它不需要與顧客實時通信的活動。活動一旦分配給代理,活動就可以被推送到代理,或者可以在代理的工作框26a-26c(統稱為26)中顯示為要由代理完成的任務。代理的工作框可以通過本領域傳統的任何數據結構實現,例如鏈表、陣列和/或類似數據結構。可以例如在每個代理設備38的緩存中維護工作框。
根據本發明的一個示例性實施例,(多個)大容量存儲設備30可以存儲與代理數據(例如,代理配置、進度表等)、顧客數據(例如,顧客配置)、交互數據(例如,每個與顧客交互的細節,包括交互的原因、傾向數據、等待時間、處理時間等)以及類似數據相關的一個或多個數據庫。根據一個實施例,有些數據(例如,顧客配置數據)可以由第三方數據庫提供,例如第三方客戶關系管理(CRM)數據庫。大容量存儲設備可以采用本領域熟知的硬盤或磁盤陣列的形式。
根據本發明的一個實施例,呼叫中心102還可以包括:呼叫記錄服務器40,所述呼叫記錄服務器用于記錄通過呼叫中心102進行的通話音頻;用于存儲記錄的音頻的音頻記錄存儲服務器42(在呼叫中心的環境中也稱為呼叫記錄存儲服務器);語音分析服務器44,所述語音分析服務器被配置為處理和分析從呼叫中心102收集的數字音頻形式的音頻;用于提供已分析音頻的索引的語音索引數據庫46;和參考抄本(或真實抄本)數據庫48,所述數據庫用于存儲和提供記錄的通話的抄本集合,其中所述抄本根據準確率生成或校對和改正(例如,通過人手動審核或抄寫)。
語音分析服務器44可以連接到(或者可以包括)類別定義服務器100,所述類別定義服務器包括語義組定義器120、類別定義器110、用于設置語義組110的管理員用戶界面140和用于接收短語、類別定義以及返回建議和/或廣義短語的終端用戶的用戶界面150。
圖11的各種服務器每一個都可以包括一個或多個處理器,所述處理器執行計算機程序指令并與其它系統部件交互以執行此處描述的各種功能。計算機程序指令存儲在內存中,所述內存使用標準內存設備(例如,隨機存取存儲器(RAM))來實現。計算機程序指令還可以存儲在其它非易失性計算機可讀介質中,例如CD-ROM、閃存驅動器或類似的介質。另外,雖然每一個服務器的功能都像描述的那樣由特定服務器提供,但本領域的技術人員應該了解在不脫離本發明實施例的保護范圍的情況下,各種服務器的功能可以合并或集成于單個服務器中,或者一個特定服務器的功能可以分布在一個或多個其它服務器上。
在各種實施例中,術語交互通常用于指使用任何通信信道的實時或非實時交互,通信信道包括但不限于電話呼叫(PSTN或VoIP呼叫)、電子郵件、語音郵件(基于電子郵件的語音郵件)、視頻、聊天、屏幕共享、文本消息、社交媒體消息、網頁實時通信(WebRTC呼叫)和類似通信信道。
圖11的各種服務器可以在現場位于與呼叫中心代理相同的物理位置,或者可以位于地理位置不同的非現場(或在云端),例如在通過網絡(例如互聯網)連接到呼叫中心的遠程數據中心。另外,一些服務器可以位于非現場時,其它的服務器可以位于呼叫中心現場,或者在現場和非現場可以都提供具有冗余功能的服務器,以提供更大的容錯能力。在本發明的一些實施例中,位于非現場的服務器提供的功能可以通過虛擬專網(VPN)訪問和提供,就好像這種服務器是現場的一樣,或者可以使用軟件即服務(SaaS)通過互聯網使用各種協議來提供功能,例如通過使用編碼的擴展標記語言(XML)或JavaScript對象標記(JSON)交換數據。
呼叫中心中的各種服務器中的每一個都可以是進程或線程,該進程或線程運行在一個或多個計算設備500(例如,圖12A、圖12B)中的一個或多個處理器上,執行計算機程序指令和與其它系統組件交互以用于執行此處描述的各種功能。計算機程序指令存儲在內存中,所述內存在計算設備中可以使用標準內存設備來實現,例如隨機存取存儲器(RAM)。計算機程序指令也可以存儲在其它非易失性計算機可讀介質中,例如CD-ROM、閃存驅動器或類似介質。另外,本領域的技術人員應該了解到計算設備可以通過固件(例如,應用程序專用的集成電路)、硬件、或者軟件、固件和硬件的組合來實現。本領域的技術人員也應該知道,在不脫離本發明的示例性實施例的保護范圍的情況下,各種計算設備的功能可以組合或集成在單個的計算設備中,或者特定計算設備的功能可以分布在一個或多個其它計算設備上。服務器可以是軟件模塊,所述軟件模塊也可以簡稱為模塊。呼叫中心中的模塊組可以包括服務器和其它模塊。
前述圖中的各種服務器、控制器、交換機和/或網關中的每一個都可以是進程或線程,該進程或線程運行在一個或多個計算設備1500(例如,圖12A、圖12B)中的一個或多個處理器上,執行計算機程序指令和與其它系統組件交互以用于執行此處描述的各種功能。計算機程序指令存儲在內存中,所述內存在計算設備中可以使用標準內存設備來實現,例如隨機存取內存(RAM)。計算機程序指令也可以存儲在其它非易失性計算機可讀介質中,例如CD-ROM、閃存驅動器或類似介質。另外,本領域的技術人員應該了解到計算設備可以通過固件(例如,應用程序專用的集成電路)、硬件、或者軟件、固件和硬件的組合來實現。本領域的技術人員也應該知道,在不脫離本發明的示例性實施例的保護范圍的情況下,各種計算設備的功能可以組合或集成在單個的計算設備中,或者特定計算設備的功能可以分布在一個或多個其它計算設備上。服務器可以是軟件模塊,所述軟件模塊也可以簡稱為模塊。呼叫中心中的模塊組可以包括服務器和其它模塊。
圖12A和圖12B描繪了本發明的示例性實施例中可以采用的計算設備1500的方框圖。每個計算設備1500都包括中央處理單元1521和主內存單元1522。如圖12A中所示,計算設備1500還可以包括存儲設備1528、可移除介質接口1516、網絡接口1518、輸入/輸出(I/O)控制器1523、一個或多個顯示設備1530c、鍵盤1530a和指向裝置1530b,例如鼠標。存儲設備1528可以包括但不限于用于操作系統和軟件的存儲器。如圖12B所示,每個計算設備1500還可以包括附加的可選元件,例如內存端口1503、橋接器1570、一個或多個附加的輸入/輸出設備1530d、1530e和與中央處理單元1521通信的緩存1540。輸入/輸出設備1530a、1530b、1530d和1530e在此可以共同使用附圖標記1530來表示。
中央處理單元1521是響應和處理從主內存單元1522取來的指令的任何邏輯電路。例如,這可以在集成電路中實現,形式為微處理器、微控制器或者圖形處理單元(GPU),或者在現場可編程門陣列(FPGA)或應用程序專用的集成電路(ASIC)中實現。主內存單元1522可以是能夠存儲數據并允許中央處理單元1521直接訪問任何存儲位置的一個或多個內存芯片。如圖12A所示,中央處理單元1521通過系統總線1550與主內存1522通信。如圖12B所示,中央處理單元1521還可以通過內存端口1503直接與主內存1522通信。
圖12B顯示了一個實施例,其中中央處理單元1521通過二級總線直接與緩存1540通信,二級總線有時也被稱為后端總線。在其它實施例中,中央處理單元1521使用系統總線1550與緩存1540通信。緩存1540通常具有比主內存1522更快的響應時間。如圖12A所示,中央處理單元1521通過局部系統總線1550與各種I/O設備1530通信。各種總線都可以用作局部系統總線1550,包括視頻電子標準協會(VESA)局部總線(VLB)、工業標準結構(ISA)總線、擴展工業標準結構(EISA)總線、微信道體系結構(MCA)總線、外圍組件互聯(PCI)總線、PCI擴展(PCI-X)總線、快速PCI總線或網絡用戶總線(NuBus)。對于I/O設備是顯示設備1530c的實施例,中央處理單元1521可以通過高級圖形端口(AGP)與顯示設備1530c通信。圖12B顯示了計算機1500的一個實施例,其中中央處理單元1521直接與I/O設備1530e通信。圖12B還示出了一個實施例,其中局部總線和直接通信被混合:中央處理單元1521使用局部系統總線1550與I/O設備1530d通信,同時也直接和I/O設備1530e通信。
計算設備1500中可以存在各種各樣的I/O設備1530。輸入設備包括一個或多個鍵盤1530a、鼠標、觸控板、軌跡球、擴音器和畫板。輸出設備包括視頻顯示設備1530c、揚聲器和打印機。如圖12A中所示,I/O控制器1523可以控制I/O設備。I/O控制器可以控制一個或多個I/O設備,例如鍵盤1530a和指向裝置1530b,例如鼠標或光筆。
再參照圖12A,計算設備1500可以支持一個或多個可移除介質接口1516,例如軟盤驅動器、CD-ROM驅動器、DVD-ROM驅動器、各種格式的磁帶驅動器、USB端口、安全數字或COMPACT FLASHTM內存卡端口、或者適于從只讀介質讀數據或從讀寫介質讀寫數據的其它任何設備。I/O設備1530可以是系統總線1550和可移除介質接口1516之間的橋接器。
例如,可移除介質接口1516可以用于安裝軟件和程序。計算設備1500可以還包括存儲設備1528,例如一個或多個硬盤驅動器或硬盤驅動器陣列,用于存儲操作系統和其它相關軟件并用于存儲應用軟件程序。可選地,可移除介質接口1516還可以用作存儲設備。例如,操作系統和軟件可以由可啟動介質(例如,可啟動CD)運行。
在一些實施例中,計算設備1500可以包括多個顯示設備1530c或連接到多個顯示設備1530c,這些顯示設備每一個可以是相同或不同的類型和/或形式。因此,I/O設備1530和/或I/O控制器1523中的任何一個可以包括任何類型和/或形式的合適的硬件、軟件或者硬件和軟件的組合,以通過計算設備1500支持、實現或提供到多個顯示設備1530c的連接和所述多個顯示設備的使用。例如,計算設備1500可以包括任何類型和/或形式的視頻適配器、視頻卡、驅動器和/或庫,以接合、通信、連接或用其它方式使用顯示設備1530c。在一個實施例中,視頻適配器可以包括多個連接器,以連接到多個顯示設備1530c。在其它實施例中,計算設備1500可以包括多個視頻適配器,每個視頻適配器連接到顯示設備1530c中的一個或多個。在一些實施例中,計算設備1500的操作系統的任何部分都可以被配置用于使用多個顯示設備1530c。在其它實施例中,顯示設備1530c中的一個或多個可以由通過網絡例如連接到計算設備1500的一個或多個其它計算設備提供。這些實施例可以包括設計和構造成使用另外的計算設備的顯示設備作為用于計算設備1500的第二顯示設備1530c的任何類型的軟件。本領域的技術人員應該知道和領會不同的方法和實施例,其中計算設備1500可以配置為具有多個顯示設備1530c。
圖12A和12B所示類型的計算設備1500可以在操作系統的控制下操作,所述操作系統控制任務計劃和系統資源的訪問。計算設備1500可以運行任何操作系統、任何嵌入式操作系統、任何實時操作系統、任何開源操作系統、任何專有操作系統、用于移動計算設備的任何操作系統或者能夠運行在計算設備上和執行此處所述的操作的任何其它操作系統。
計算設備1500可以是任何工作站、桌面計算機、膝上型電腦或筆記本電腦、服務器機器、掌上電腦、移動電話或其它便攜式通信設備、媒體播放設備、游戲系統、移動計算設備或任何其它類型和/或形式的能夠通信并具有足夠的處理器能力和內存容量來執行這里所描述的操作的計算設備、電信設備或媒體設備。在一些實施例中,計算設備1500可以具有與該設備相容的不同的處理器、操作系統和輸入設備。
在其它實施例中,計算設備1500是移動設備,例如啟用Java的蜂窩電話或個人數字助手(PDA)、智能手機、數字音頻播放器或便攜式媒體播放器。在一些實施例中,計算設備1500包括設備的組合,例如與數字音頻播放器或便攜式媒體播放器相組合的移動電話。
如圖12C所示,中央處理單元1521可以包括多個處理器P1、P2、P3、P4,并且可以提供用于同時執行指令或者同時在多于一個的數據塊上執行一個指令的功能。在一些實施例中,計算設備1500可以包括具有單核或多核的并行處理器。在這些實施例中的一個中,計算設備1500是共享內存的并行設備,具有多個處理器和/或多個處理器核,從而能像訪問單個的全局地址空間那樣訪問所有可用的內存。在這些實施例中的另一個中,計算設備1500是具有多個處理器的分布式內存并行設備,其中每個處理器只能訪問本地內存。在這些實施例中的另一個實施例中,計算設備1500既有一些共享的內存,又有一些只可以被特定處理器或處理器的子集訪問的內存。還是在這些實施例中的另外一個中,中央處理單元1521包括多核微處理器,該微處理器將兩個或更多個獨立的處理器組合成單個封裝體,例如單個集成電路(IC)。在圖12D所示的一個示例性實施例中,計算設備1500包括至少一個中央處理單元1521和至少一個圖形處理單元1521′。
在一些實施例中,中央處理單元1521提供單個指令、多數據(SIMD)功能,例如同時在多條數據上執行單個指令。在其它的實施例中,中央處理單元1521中的多個處理器可以提供在多條數據上同時執行多個指令(MIMD)的功能。還是在這些實施例中,在單個設備中,中央處理單元1521可以使用任意組合的SIMD核和MIMD核。
計算設備可以是通過網絡連接的多個機器中的一個,或者可以包括多個這樣連接的機器。圖12E顯示一個例示性的網絡環境。該網絡環境包括通過一個或多個網絡1504與一個或多個遠程機器1506a、1506b、1506c(通常也稱為(多個)服務器機器1506或(多個)遠程機器1506)通信的一個或多個本地機器1502a、1502b(通常也稱為(多個)本地機器1502、(多個)客戶端1502、(多個)客戶端節點1502、(多個)客戶端機器1502、(多個)客戶端計算機1502、(多個)客戶端設備1502、(多個)端點1502或(多個)端點節點1502)。在一些實施例中,本地機器1502具有能力用作尋求訪問服務器機器提供的資源的客戶端節點和為其它客戶端1502a、1502b提供對托管資源的訪問的服務器機器。雖然圖12E中只顯示兩個客戶端1502和三個服務器機器1506,但通常每一個可以具有任意數量。網絡1504可以是例如為諸如公司互聯網的私人網絡的局域網(LAN)、城域網(MAN)或者例如為互聯網或其它公共網絡的廣域網(WAN)或它們的組合。
計算設備1500可以包括網絡接口1518,以通過各種連接與網絡1504連接,所述各種連接包括但不限于標準電話線、局域網(LAN)或廣域網(WAN)鏈接、寬帶連接、無線連接或上述中的任何一個或全部的組合。可以使用各種通信協議建立連接。在一個實施例中,計算設備1500與其它計算設備1500通過任何類型和/或形式的網關或隧道協議通信,例如安全套接層(SSL)或傳輸層安全(TLS)。網絡接口1518可以包括內置的網絡適配器,例如網絡接口卡,適用于將計算設備1500連接到能夠通信和執行此處描述的操作的任何類型的網絡。I/O設備1530可以是系統總線1550和外部通信總線之間的橋接器。
雖然本發明已經通過特定示例性實施例進行了描述,但是應該理解本發明并不限于已公開的實施例,相反,本發明意在覆蓋包括在所附權利要求及其等效形式的精神和保護范圍內的各種變形和等效設置。