簡介
本檔案介紹如何設定客戶語音入口網站(CVP)CVA功能。
必要條件
需求
思科建議您瞭解以下主題:
- 思科整合客服中心企業版(UCCE)版本12.5
- 思科套裝客服中心企業版(PCCE)版本12.5
- CVP版本12.5
- 思科虛擬化語音瀏覽器(CVVB)12.5
- 思科整合邊界元件(CUBE)或語音閘道(GW)
- Google對話流
採用元件
本檔案中的資訊是根據以下軟體版本:
- 思科套裝客服中心企業版(PCCE)版本12.5
- CVP版本12.5
- 思科虛擬化語音瀏覽器(CVVB)12.5
- Google對話流
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
背景
CVP 12.5引入了Customer Virtual Assistant(CVA)功能,在該功能中,您可以使用第三方供應商的Text to Speech(TTS)、Automatic Speech Recognition(ASR)和Natural Language processing(NLP)服務。
註:在此版本中僅支援Google NLP。
此功能支援類似於人際的互動,使您能夠使用自然語言處理在互動式語音響應(IVR)中快速高效地解決問題。
Cisco CVA提供以下互動模式:
- 本地交互:使用WAV檔案在本地播放提示,使用DTMF語法捕獲使用者輸入。
- 基於MRCP的互動:提示由基於本地的外部媒體伺服器通過媒體資源控制協定(MRCP)合成命令播放,用於TTS功能。所述提示由外部媒體伺服器基於由ASR預定義的語法來識別。
- 自然語言理解(NLU):此功能使對話能夠通過與雲的自然語言處理(NLP)引擎互動啟動,該引擎經過培訓可以理解自然語言。
架構
除了CVP綜合呼叫流程中所需的元件外,CVA還需要實施雲服務、語音服務和特定CVP Call Studio元素。這是CVA中所需的所有元件的清單:
- 輸入、輸出、CUBE網關
- Unified Customer Voice Portal(Unified CVP)解決方案,包括Call Studio
- 整合客服中心企業版(整合CCE)
- Cisco虛擬化語音瀏覽器(VVB) — 語音服務
- 雲服務(Google Dialogflow)
Cisco CVA通話流程
Google Dialogflow支援三種主要的CVA呼叫流。
- 基於Google的IVR邏輯(Dialogflow)
- 基於前提的意圖(DialogflowIntent / DialogflowParam)
- 轉錄
基於Google的IVR邏輯(Dialogflow)
託管IVR部署最適合計畫將IVR基礎設施遷移到雲的客戶。在託管IVR部署下,只有IVR業務邏輯駐留在雲中,而代理註冊到本地基礎設施。
一旦部署了託管IVR,核心訊號和媒體處理就會在雲中進行;此外,CVP和Cisco VVB解決方案處於橋接模式,媒體將傳輸到雲中。一旦IVR完成並且需要座席,呼叫控制將轉移回CVP用於呼叫的進一步處理和隊列處理。
以下是通話流程範例:
- 呼叫從CUBE或輸入GW傳送到CVP呼叫伺服器。然後,該呼叫將從CVP傳送到統一CCE/包CCE。
- CCE傳送一個臨時連線至CVP,同時傳送使用Cisco VVB設定VRU/IVR處理的指令。
- CCE指示CVP運行在VXML伺服器上部署的呼叫工作室應用程式。CVP將呼叫傳送到Cisco VVB並且IVR處理開始。音訊(RTP)現在建立在Cisco VVB和CUBE或輸入網關之間。到目前為止,呼叫流程步驟與任何常規綜合呼叫流程相同。後續步驟對於CVA Dialogflow呼叫流程是唯一的。
- 通過在Cisco VVB上使用Speech Server將客戶語音流傳輸到Google Dialogflow。
a.在Dialogflow收到流後,即進行識別,並聘請NLU服務來識別意圖。
b. NLU服務標識意圖。意圖識別基於在雲中建立的虛擬代理進行。
c. Dialogflow通過以下方式之一將後續提示返回到Cisco VVB(取決於call studio應用程式配置):
音訊:Dialogflow返回API響應中的音訊負載。
Text: Dialogflow返迴響應的文本提示,該提示必須由TTS服務合成。
d. Cisco VVB向呼叫者播放提示以獲取其他資訊。
e. 當呼叫方響應時,Cisco VVB會將此響應流式處理到Dialogflow。
f. Dialogflow通過以下兩種方式之一執行完成並再次以提示進行響應:
音訊:Dialogflow使用webhook返回執行音訊的API響應中的音訊負載。
文本:Dialogflow返回文本提示,其中包含完成文本,以響應使用webhook。這是由TTS服務合成的。
g. dialogflow執行整個會話的上下文管理和會話管理。
除非客戶請求座席轉接或呼叫已斷開,否則流量控制仍保留在Dialogflow中。
預置的基於意圖(DialogflowIntent / DialogflowParam)
基於場所的意圖部署更適合需要在其本地系統上處理個人身份資訊(PII)或任何其他敏感資料的客戶。通常,在此類部署中,個人身份資訊(PII)永遠不會傳送到雲中進行處理;相反,收集的方式是始終在本地保留和處理資訊。在此呼叫流程中,大多數進程控制發生在VXML伺服器上。此呼叫流允許:
- 本地引數提示/序列
- 本地DTMF檢測
- 擴展當前應用程式
- 本地履行
此呼叫流使用call studio的DialogflowIntent和DialogflowParm元素。步驟1到3與先前的Dialogflow呼叫流相同。以下是後續步驟
- 通過Cisco VVB上的語音伺服器將客戶語音流傳輸到Google Dialogflow。
- 在此場景中,語音伺服器將語音傳遞到雲ASR
- 一旦在Google接收到流,識別就發生並文本返回到VXML伺服器。VXML伺服器將此文本傳遞給Dialogflow,並參與NLU服務來識別意圖。NLU標識已配置的目標。意圖識別基於在雲中建立的虛擬代理進行。
a. Google Dialogflow將意圖返回到VXML伺服器中部署的call studio應用程式。
b.如果所確定的意圖需要處理敏感資訊,如信用卡號或PIN
輸入時,Cisco VVB可以播放所需的提示並從最終客戶處收集雙音多頻(DTMF)。
c.此敏感資訊由本地業務應用程式收集,並傳送到Customer Relationship Management(CRM)資料庫進行身份驗證,以及
過程。
d.一旦客戶的PIN通過身份驗證,語音控制就可以傳回雲中的ASR服務。
e.通過call studio應用程式的VXML伺服器為整個會話執行上下文管理和會話管理。
從本質上講,此呼叫流程在根據客戶輸入定義每個階段要採取的操作方面提供了更大的靈活性,並且完全由現場應用程式驅動。雲服務主要從事語音識別和意圖識別。一旦確定了意圖,控制權將傳回CVP業務應用程式,以便處理和決定下一步應該做什麼。
轉錄
此呼叫流程提供從語音到文本句子的客戶輸入轉換,基本為ASR。
設定
Dialogflow專案/虛擬代理
啟動CVA配置之前,需要配置Google Dialogflow並將其連線到Cisco Speech Server。你需要Google服務帳戶、Google專案和Dialogflow虛擬代理。然後,可以教這個Dialogflow虛擬Agent使用自然語言,這樣Agent可以使用自然語言處理來響應客戶互動。
什麼是對話流?
Google Dialogflow是一個對話使用者體驗(UX)平台,為裝置、應用和服務提供獨一無二的自然語言互動。換句話說,Dialogflow是一個框架,它提供NLP/NLU(自然語言理解)服務。思科與Google Dialogflow for CVA整合。
這對您意味著什麼?也就是說,您基本上可以在Dialogflow上建立虛擬代理,然後將其與Cisco Contact Center Enterprise整合。
以下是建立虛擬代理或Dialogflow專案的步驟:
步驟 1. 建立Google帳戶/專案,或者從您的思科合作夥伴為您分配Google專案。
步驟 2.登入到Dialogflow。導覽至 https://dialogflow.com/
步驟 3.建立新代理。選擇新代理的名稱和預設時區。保持語言設定為英語。按一下CREATE AGENT。
在此示例中,虛擬代理處理銀行事務,因此本實驗的代理名稱為BankingRoot。語言為英語,時區為預設系統時間。
步驟 4.按一下CREATE選項卡。
步驟 5.建立虛擬代理後,您可以匯入預構建的Google虛擬代理(如圖所示),也可以教代理如何與呼叫者通訊。
步驟 6.此時,代理仍不知道如何響應任何使用者輸入。下一步是教它如何表現。首先,對座席的個性建模,使其響應hello預設歡迎意圖,並呈現自身。建立代理後,您將看到此映像。
注意:在call studio應用程式元素Dialogflow中,可以將hello定義為預設歡迎意圖。
步驟 7.按一下Default Welcome Intent。
步驟 8.將hello、Good Morning和Good Afternoon新增到培訓短語。在文本表單中鍵入它們,並在它們後按Enter鍵。
步驟 9.現在向下滾動到Responses,然後按一下ADD RESPONSES。
步驟 10.選擇文本響應。
就像您對培訓短語所做的那樣,新增適當的響應。這是使用者從代理收到的第一條消息。為了使您的座席聽起來更自然、更具有會話性,請想象一個正常的會話,並想象一個座席會說些什麼。不過,讓使用者知道互動是通過人工智慧(AI)代理是一種很好的做法。在此場景中,使用Cisco Live Banking應用程式作為示例,因此您可以新增以下內容:歡迎使用Cisco Live!我是John Doe,Cisco Live Banking的虛擬助理。您想做什麼?您可以說「支票餘額」、「建立新帳戶」或「轉帳」等內容。
步驟 11.按一下「SAVE」。
在建立更多意圖之前,請建立圖元。Entity是Dialogflow可用於回答使用者請求的屬性或引數 — 實體通常是意圖中的關鍵字,如帳戶型別、日期、位置等。因此,在新增更多意圖之前,請新增實體:帳戶型別、存款型別和轉帳型別。
步驟 12.在「對話方塊」(Dialogflow)選單上,按一下「實體」(Entities)。
步驟 13.在「圖元」(Entities)視窗中,按一下「建立圖元」(CREATE ENTITY)。
步驟 14.在實體名稱上鍵入AccountType。在「定義同義詞」欄位中,鍵入:當前、貸款和存款,然後按一下「儲存」。
步驟 15.返回到「對話方塊」(Dialogflow)選單,然後再次按一下「實體」(Entities)。然後,在「實體」(Entities)視窗中,按一下「建立實體」(CREATE ENTITY)。
>
步驟 16. 在實體名稱型別:DepositType。在「定義同義詞」欄位中,鍵入:Cash和Check,然後按一下SAVE。
步驟 17.您可以建立更多實體,例如:TransferType和「定義同義詞」欄位型別:Cash、Pay Pal、PayTM和Wire Transfer等。
步驟 18.建立帳戶持有人實體。在「實體名稱」欄位中鍵入AccountHolder;在「定義同義詞」欄位中。
步驟 19.現在,繼續進行代理商培訓,瞭解銀行系統中收到的所有可能問題和典型回答。建立下一個目標:CheckBalance、TransferMoney。對於CheckBalance意圖,可以新增如下圖所示的培訓短語:
您也可以新增以下響應:
步驟 20.您可以新增其餘意圖(TransferMoney、CreateAccount和Exit)、培訓短語、引數和響應。
注意:有關Google Dialogflow配置的詳細資訊,請導航至:DialogFlow Virtual Agent
CVVB語音伺服器配置
Speech Server是整合到Cisco VVB中的新元件。語音伺服器通過最初由Google開發的開源遠端過程呼叫(gRPC)系統與Google Dialog Flow互動
步驟 1.如果您尚未在PCCE管理工作站(AW)、CVP和CVVB之間交換證書,請進行交換。如果您的部署在UCCE上,請在CVP新Operations Manager伺服器(NOAMP)、CVP和CVVB之間交換證書。
注意:請參閱以下有關PCCE證書交換的文檔:PCCE解決方案中的自簽名證書和管理SPOG的PCCE元件證書。有關UCCE,請參閱在UCCE上交換的自簽名證書。
步驟 2.在PCCE上,開啟CCE Admin/Single Plane of Glass(SPOG)介面。如果您的部署在UCCE上,請在NOAMP伺服器上執行以下步驟。
步驟 3.在功能下,選擇Customer Virtual Assistant。
步驟 4.現在,您應該看到三個頁籤:文本到語音、自動語音識別和自然語言理解。
步驟 5.按一下Natural Language Understanding,然後按一下New。
步驟 6.在「新自然語言理解帳戶」視窗中,選擇Dialogflow作為服務提供商。
步驟 7.對於服務帳戶名稱,您需要提供與在Google Dialogflow中建立的虛擬代理相關的Google專案。
要標識與建立的虛擬代理相關的專案,請遵循以下步驟:
a.登入到DialogFlow帳戶(dialogflow.com),選擇建立的代理,然後按一下設定圖示。
b.在右側的「設定」視窗中向下滾動,您會看到服務帳戶和專案ID。複製專案ID,即需要在語音伺服器配置中新增的服務帳戶名稱。
步驟8.為了使用識別和響應客戶意圖所需的Google Dialog流API,您需要獲取與虛擬代理的服務帳戶關聯的私鑰。
建立服務帳戶後,私鑰將作為JSON檔案下載。請按照以下步驟操作,以獲取虛擬代理私鑰。
注意:必須建立新的服務帳戶,而不是使用與專案關聯的任何預設Google服務帳戶。
a.在Google Project部分下,按一下服務帳戶URL。
b.這將帶您進入Google Cloud Platform Service Accounts頁面。現在,您首先需要向服務帳戶新增角色。按一下頁面頂部的Create Service Account按鈕。
c.在彈出視窗中,輸入服務帳戶的名稱。在這種情況下,輸入BankingRootSA,然後點選CREATE。
d.按一下選擇角色。
e.在Dialogflow類別下,選擇所需的角色。選擇Dialogflow API Admin並點選Continue。
f.向下滾動並選擇CREATE KEY。
g.在私鑰視窗中,確保為Key type選擇了JSON,然後按一下CREATE。
h.開始下載JSON檔案。選中Save File覈取方塊,選擇要儲存檔案的位置並進行確認。
注意:此JSON檔案只能下載一次,因此請確保儲存該檔案並將其儲存在安全位置。如果丟失了此金鑰或它受到危害,您可以使用同一過程建立新金鑰。JSON檔案儲存到C:\Download資料夾
i.完成後,您將看到一個包含確認消息的彈出視窗。按一下「Close」。
步驟 9.在NLU Account(NLU帳戶)視窗中按一下NEXT(下一步)後,需要提供身份驗證金鑰。
步驟10.新增描述。導航到下載JSON檔案的資料夾。編輯檔案,選擇檔案中的所有行,並將其複製到「服務帳戶金鑰」欄位。按一下「Save」。
CVP Call Studio元素
CVP Call Studio版本12.5已經過增強,並且新增了這4個元素(如圖所示),以簡化CVA功能的配置。
以下是每個元素的簡要說明:
Dialogflow
已建立對話流,以便從雲參與和管理ASR、NLU和TTS服務。Dialogflow有助於模擬託管IVR部署,其中所有語音服務都由Google Dialogflow參與,並且整個業務邏輯都由雲控制和驅動。
DialogflowIntent
已為雲服務建立了DialogflowIntent,用於識別(ASR服務)和意向識別(NLU服務)。一旦確定了意圖並將其傳遞到CVP VXML伺服器,即可在CVP Call Studio指令碼中執行該意圖的處理以及任何進一步的操作。在這裡,為應用程式開發人員提供了從雲或從內部使用TTS服務的靈活性。
DialogflowParam
DialogflowParam與DialogflowIntent元素結合使用。在典型的基於內部部署的IVR部署中,當確定客戶意圖並將其傳遞到VXML伺服器時,需要引數識別,並且應該由CVP應用程式驅動。例如,一個典型的銀行應用程式可以分析來自客戶語音的缺失輸入,並在整個交易處理之前請求剩餘的強制輸入。在上述場景下,DialogflowParam元素與DialogflowIntent元素結合使用,以處理已識別的意圖並新增所需的引數。
轉錄
已建立Transcript來處理客戶語音並將文本作為輸出返回。它基本上執行識別功能,並提供文本作為輸出。當僅需要ASR功能時,應使用此元素。
有關這些元素中每個元素下引數設定的詳細資訊,請參閱元素規範指南12.5版。
CVP Call Studio應用程式
基於雲的意圖處理 — 基於Google的IVR邏輯(Dialogflow)
當呼叫命中VXML應用程式時,Dialogflow元素接管並開始處理語音輸入。
與客戶的對話繼續進行,只要谷歌虛擬代理能夠識別意圖並進行處理,媒體就會通過TTS服務轉回。 對於來自客戶的每個請求,流在Dialogflow元素周圍以循環方式繼續,並且所有匹配的意圖都針對一個決策框運行,以確定IVR處理是否應該繼續,或者客戶是否需要將呼叫轉接給座席。
一旦觸發代理轉接決策,呼叫被路由到CVP,並且控制被切換以將呼叫置於隊列中,然後將呼叫轉接給代理。
以下是示例call studio應用程式的配置步驟:
步驟 1.將應用程式匯入到Call studio或建立新應用程式。在本示例中,從Cisco Devnet Sample CVA Application-DFAudio匯入了名為DFaudio的Call Studio應用程式。
步驟 2.在DFAudio應用程式上,選擇Dialogflow元素,然後在右側選擇「設定」頁籤。將服務帳戶名稱更改為先前新增到Speech Server中的專案ID,在此示例中為:bankingroot-iemspv
步驟 3.確保Audio Output引數被傳送到true,以便向Dialogflow虛擬代理傳送音訊,而不是傳送文本。
步驟 4.驗證、儲存應用程式並將其部署到VXML伺服器。
步驟 5.現在將應用程式部署到VXML伺服器記憶體中。在CVP VXML伺服器上,開啟Windows資源管理器,導航到C:\Cisco\CVP\VXMLServer,然後按一下deployAllNewApps.bat。如果應用程式先前已部署到VXML伺服器,請改為按一下UpdateAllApps.bat。
基於前提的意圖處理(DialogflowIntent/DialogflowParam)
在此示例中,呼叫流與銀行應用程式相關,在該應用程式中,客戶可以檢查其帳戶餘額,並將一定數額的款項從儲蓄帳戶轉到另一個帳戶。初始轉錄元件通過語音從客戶收集識別資料並使用ANI號碼對其進行驗證。驗證最終客戶標識後,呼叫控制將移交給DialogFlowIntent元素以標識來自客戶的請求。根據客戶輸入(如要轉移的金額),CVP Call Studio應用程式會從最終客戶請求剩餘引數,以進一步處理意圖。轉賬交易結束後,客戶可以選擇結束呼叫,也可以請求代理轉賬。
步驟 1.將應用程式匯入到Call studio或建立新應用程式。在本示例中,從Cisco Devnet示例CVA應用程式 — DFRemote匯入了一個名為DFRemote的呼叫工作室應用程式。
步驟 2.在DFRemote應用程式中,選擇DialogflowIntent(DFIntent)元素,然後在右側選擇「設定」頁籤。將服務帳戶名稱更改為先前已新增到Speech Server中的專案ID,在此示例中為:bankingroot-iemspv
步驟 3.確保「輸入模式」引數設定為「語音」。可以同時將其設定為voice和DTMF,但是對於此元素,必須將其設定為voice,因為沒有收集任何引數。使用DialogflowParam時,可以同時將其設定為both。在此元素中,您實際上是從呼叫方收集輸入引數的地方。
步驟 4.在此示例中,當客戶致電檢查帳戶餘額時,應用程式要求客戶通過DTMF或語音提供帳戶型別。此資訊收集在DialogflowParam元素中(AccountType,如下圖所示)。為了收集所需的引數,請更改DialogflowParam設定。在輸入模式中,選擇dtmf+voice,以便呼叫者可以輸入或說出帳戶型別。在Intent引數中,鍵入與目的相關的內容,本例中為CheckBalance。在Variable設定中,
選擇目的引數,本例中為AccountType。如果這是目的的最後一個引數,請將Last Parameter變數設定為true。有關DialogflowParam設定的詳細資訊,請參閱元素規範指南12.5版。
步驟 5.驗證、儲存應用程式並將其部署到VXML伺服器。
步驟 6.現在將應用程式部署到VXML伺服器記憶體中。在CVP VXML伺服器上,開啟Windows資源管理器,導航到C:\Cisco\CVP\VXMLServer,然後按一下deployAllNewApps.bat。如果應用程式先前已部署到VXML伺服器,請改為按一下UpdateAllApps.bat。
步驟 7.將之前下載的JSON檔案複製到C:\Cisco\CVP\Conf目錄。jason檔名必須與專案名稱匹配(本例中為bankingroot-iemspv.json)。
步驟 8.如果需要這些服務,請新增Google TTS和ASR服務,如本例所示。如果您的部署在UCCE上,請通過NOAMP伺服器新增TTS和ASR。在PCCE上,開啟CCE Admin/Single Plane of Glass(SPOG)介面。
步驟 9.在「功能」卡下,選擇「客戶虛擬助理」。
步驟 10.首先新增TTS服務,然後按照相同步驟新增ASR服務。按一下「Text to Speech(文本到語音)」 ,然後按一下「New(新建)」。
步驟 11.選擇Google作為服務提供商並新增服務帳戶名稱(與前面步驟中的NLU帳戶相同的帳戶名稱)。按「Next」(下一步)。
步驟 12.將此TTS服務設定為預設服務,並複製前幾個步驟中生成的NLU json檔案的內容作為ASR和TTS json金鑰。按一下「儲存」。
注意:TTS和ASR服務帳戶不需要分配任何角色。但是,如果您對ASR和TTS使用相同的NLU服務帳戶,則需要確保此服務帳戶可以訪問TTS和ASR API。
通常,這是使用DialogflowIntent和DialogflowParam時的處理流:
1. Call Studio / VXML應用程式從C:\Cisco\CVP\Conf\讀取JSON檔案
2. DialogflowIntent音訊提示已播放,音訊檔案或音訊設定中的TTS已轉換為音訊。
3.現在,當客戶交談時,音訊被流傳輸到識別引擎Google ASR。
4. Google ASR將語音轉換為文本。
5.文本從VXML伺服器傳送到Dialogflow。
6. Google Dialogflow以文本形式將意圖返回到VXML應用程式DialogflowIntent元素。
代理伺服器配置
Cisco VVB中的Google 軟體開發套件(SDK)使用gRPC通訊協定來與Google Dialogflow進行互動。gRPC使用HTTP/2進行傳輸。
由於基礎協定是HTTP,如果Cisco VVB和Google Dialogflow之間沒有直接通訊,則需要為建立端到端通訊配置HTTP Proxy。
代理伺服器應支援HTTP 2.0版本。Cisco VVB公開了CLI命令以配置代理主機和埠配置。
步驟 1.配置httpsProxy主機。
set speechserver httpsProxy host <hostname>
步驟 2.設定httpsProxy連線埠。
set speechserver httpsProxy port <portNumber>
步驟 3.使用Show httpsProxy命令驗證設定。
show speechserver httpsProxy host
show speechserver httpsProxy port
步驟 4.在代理配置後重新啟動Cisco Speech Server服務。
utils service restart Cisco Speech Server
此外,如果您已實施了Premise Based Intent Processing(DialogflowIntent / DialogflowParam)部署模型,並且如果CVP VXML伺服器和Google Dialogflow之間沒有直接的Internet連線,則需要在CVP VXML伺服器上配置代理伺服器。
步驟 1.登入到CVP VXML伺服器。
步驟 2.運行regedit命令。
步驟 3.導航至HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\VXMLServer\Parameters\Java\Options。
步驟 4.將這些行追加到檔案中。
-Dhttps.proxyHost=<您的代理IP/主機>
-Dhttps.proxyPort=<您的代理埠號>
步驟 5.重新啟動服務Cisco CVP VXML伺服器。
疑難排解
如果您需要排除CVA故障,請檢視本文檔Troubleshoot Cisco Customer Virtual Assistant中的資訊。
相關資訊
思科檔案
Google文檔
技術支援與文件 - Cisco Systems