ASR 管理

此部分提供了有關管理 CXone 中自動語音識別 (ASR)-增強型 IVRClosed 自動電話選單,允許呼叫者透過語音命令或按鍵輸入或二者進行互動,以獲取資訊、路由至呼入語音通話或二者兼有。 選單系統的資訊。

對於建立有效的啟用 ASR 的 IVR 系統,需對自動語音識別和 Nuance ASR 引擎有一定的了解,這一點非常重要。使用該引擎的完整文件可從 Nuance 獲取。

調整

所需權限:ASR 調整報告檢視

調整允許您根據關於 ASR Studio 動作目前如何執行的資料改進您 ASR 系統。這是開發和維護您的 ASR 系統的重要組成部分。

ASR 調整報告提供可在調整流程中使用的資訊。該報告提供了在指令碼中觸發的 ASR 動作的回應率,並允許您檢視 ASR 無法識別的話語清單。此報告將按動作和每個可信度分支設定列出明細。

如果您已啟用調整,則可以展開這些部分,然後聆聽該段中錄音的音訊檔案。您可以了解與 ASR 系統無法理解的回應相關之資訊。您可以將這些新增至您的文法檔案和短語清單中。

當調整您的 ASR 系統時,您可以進行以下操作:

  • 檢視 ASR 調整報告並評估其提供的資料。
  • 聆聽 ASR 調整報告中的錄音以了解互動的相同之處。
  • 識別您的聯絡人在說什麼,以及他們如何說。
  • 根據所學的內容更新文法檔案。
  • 如有需要,調整可信度值

啟用調整

如果您的 IVR 擷取任何 PII(個人身分識別資訊)資料,您可能想要仔細選擇在調整期間記錄您的 IVR 的哪些部分。這將有助於避免出現擷取個人資料的問題。例如,如果您的 Asrdigits 動作收集了一個敏感 ID 號碼,您可以在該動作之後開始調整。這樣可以防止記錄 ID 號碼。

當您完成主動調整 IVR 時,要停用調整。將調整功能保持開啟將對伺服器帶來巨大的負載,因為每次互動都會建立新的音訊檔案。

  1. Studio 中,開啟 ASR 指令碼並新增 Voiceparams 動作。應將其置於您想要在調整時使用的 ASR 動作之前。
  2. 如果指令碼中此動作的唯一目的是打開和關閉調整,請變更 Caption 以表明此目的。例如,Tuning On and Off。如果您還使用動作 變更您的 IVR 語言,您可能需要一個不同的標題。
  3. Voiceparams 動作中,將 ASRTuningEnabled 屬性設定為 True
  4. 當您完成調整後,將 ASRTuningEnabled 屬性設定為 False

調整參數

您可以為 Nuance ASR 動作指派指令碼特定的調整參數。要如此操作,在 Snippet 動作中設定一個 動態資料物件。調用物件 nuanceTuningParamsJson。其值必須為有效的 JSON 字串,其中包含需以預設值定義的 Nuance 參數。範例:

DYNAMIC asrParams
ASSIGN asrParams.sensitivity = "87"
ASSIGN asrParams.Speech_Complete_Timeout = "1000",
ASSIGN asrParams.Speech_Incomplete_Timeout = "1000"
ASSIGN asrParams.No_Input_Timeout = "1000"
ASSIGN global:nuanceTuningParamsJson = "{asrParams.asjson()}" 		

如有任何參數設定為無效值,則該參數的預設值將會取代無效值,並返回一個名為 invalidParamsList 的變數,其中列出已變更的值。

下表提供了 Studio 中支援的調整參數:

Nuance 參數 描述 Studio 支援
Speech_Complete_Timeout 確定呼叫者已講完話之前的等待時間。

使用 nuanceTuningParamsJson 支援。

預設:"Speech-Complete-Timeout" : "0"

Speech_Incomplete_Timeout 用於確定呼叫者已講完話的沉默持續時間。

使用 nuanceTuningParamsJson 支援。

預設:"Speech-Incomplete-Timeout": "1500"

No_Input_Timeout

提示結束後等待說話的時間。

備註: 該參數在提示音開始播放時開始計數。這可能表示指令碼過早超時。當提示結束時,ASR動作TimeoutSeconds 屬性開始計數。

使用 nuanceTuningParamsJson 支援。

預設:"No-Input-Timeout": "7000"

sensitivity 語音偵測程式偵測語音的敏感度。 預設值:50(範圍為 0-100)。

以下 Nuance 參數在 CXone受支援,因為 Studio Asr 動作會播放提示而不是 Nuance

Nuance 參數 描述 預設值
swiep_suppress_barge_in_time 在提示開始時短暫停用 barge-in。 0(無延遲)
swiep_in_prompt_sensitivity_percent 控制呼叫者語音必須達到多大的音量才能中斷提示 (barge-in) 和偵測語音。 50(百分比)
swirec_barge_in_mode 設定識別程式的特殊識別模式。 normal

文法檔案

文法檔案允許您列出聯絡人在回應提示時可能說出的話語。Nuance ASR 引擎嘗試比對聯絡人的回應與文法檔案中的項目。因為 ASR 引擎必須找到完整話語的配對項,文法檔案可以為 Nuance 提供一個專門的話語清單來從中選擇。

文法檔案是提升 ASR 增強型 IVR 準確度的最有效方法之一。ASR 分析真人互動,因此系統必須識別無數的選項。這使得 ASR 系統比只回應 DTMFClosed 使用者點擊或輕點電話鍵盤上的某個鍵而產生的訊號音。 音調的系統複雜得多。DTMF 識別 12 個音調,這表示 IVR 系統必須識別 12 個選項。人類的語言包含超多的 ASR 系統必須識別的選項及聲音、單字或短語的組合。

例如,聯絡人可能會用這句話回應要求提供其成員號碼的提示:「我的會員號碼是123456789。」ASR 增強指令碼會識別整個短語,但是當聯絡人以「我的會員號碼是……」開頭時,其他指令碼將無法識別。而不是僅僅是號碼。

更新文法檔案時,請先重新命名該檔案,然後再在產生指令碼中使用該檔案。這有助於避免在更新過程中發生衝突。這還會保留原始檔案作為備份,以防您因任何原因需要還原。在指令碼的 ASR 動作中指定文法檔案名稱時,您可以使用變數取代

增強型準確度

文法檔案提高了 ASR 系統的準確度。除了預期的資訊之外,還可以向文法檔中新增聯絡人可能會說的單字和短語。例如,若提示詢問聯絡人會員號碼,您可以在文法檔案中新增如下短語,如「我的會員號碼是」「我覺得是」「稍等,我找一下我的卡」等等。

文法檔案中的專門清單有助於限制話語中的排列數目。預期回應的時間越長,可能出現的回應就越多。文法檔案透過包含常見的和最有可能使用的回應來幫助限制可能的回應的範圍。

您不需要考慮要新增的所有可能的回應。使用調整流程來了解聯絡人實際上是如何說話的。您可以根據您在調整時學到的內容來新增您的文法檔案。當聯絡人使用該系統時,建立文法檔案應是一個迭代過程,您可以從 ASR 無法理解回應的地方學習。

發音變數

當調整您的 ASR 系統時,聆聽發音的變數。這有助於您將多個條目新增至具有各種語音拼寫的短語清單和文法檔案中。

如果提示可能引起經常發音錯誤或有不同發音的回應,這將會特別有用。例如「fungi」(fungus 的複數)。除了輸入項目「fungi」以外,您還可以新增下列附加語音輸入項目:「fun guy」、「fun jee」或「fun gee」。

多種語言支援

ASR 支援多種語言。文法具有語言特定性。在檔案標頭中引用語言的名稱,以便引擎能夠針對性地尋找該語言的話語。

在任何文法檔案中,輸入項目必須使用與所引用之語言相同的字母系統、句子結構等。例如,如果您要為西班牙文特有文法使用單字「piñata」,則您必須在字母「n」上方輸入波浪符號 (~),因此輸入項目必須為「piñata」而非「pinata」。

ASR 與自然語言處理

ASR 和文法檔案可以建立一個類似於自然語言處理 (NLPClosed 亦稱 NLP,此過程將理解人類語音或文字並以類似於人類的語言進行回覆的過程。) 系統的結果,但實際卻不是。ASR 就像是 DTMF 和 NLP 之間的橋樑。它並非要擷取所有回應,而是擷取大部分回應。這正是文法檔案特別重要的原因。若文法檔案較好,則 ASR 系統能夠成功識別的回應越多。

有關文法檔案的重要事實

  • 應對大部分 ASR Studio動作使用文法檔案。
  • AsralphanumAsrcurrencyAsrdateAsrdigitsAsrnumberAsrtimeAsryesno 動作都有內建的文法檔案。除了內建的文法檔案外,您還可以建立和使用自己的文法檔案。
  • AsrAsrmenu 動作沒有內建文法檔案。您必須為這些動作建立自己的文法檔案。
  • 透過 AsrcompileAsrsql 動作,您可以從現有資料庫建立自訂文法檔案。
  • 文法檔案的話語中不能使用符號,但是可以將符號與值一起返回。
  • 建立文法檔案應是一個迭代過程。每次調整 ASR 系統,您都會發現有新的項目被新增至您的文法中。

文法檔案範例

下面提供了三個文法檔案的範例供您下載:

Color_Grammar_Example.grxml(在一個 ZIP 檔案中)。

Digits_Grammar_Example.grxml(在一個 ZIP 檔案中)

Format_Grammar_Example.grxml(在一個 ZIP 檔案中)

這些範例舉例說明了建立文法檔案之結構的「規則方法」。這種方法使用了三種規則:前置詞、主要文法和後置詞。前置詞是人們在表述資訊主題之前所說的話語,例如「應該是」、「嗯」或「我覺得是」。後置詞則是話語結束時的一些附加詞,例如「我想是這樣」或「可能是這樣」。中間規則是實際的文法,您可以針對您要收集的資料定義所有可能的輸入項目,例如顏色、數字或模型。

ASR 參數和設定

此部分提供有關一些重要的 ASR 參數和設定的資訊。

可信度參數

當 ASR 引擎識別呼叫者所說的短語時,返回一個百分比,指示將話語配對到短語清單或文法檔案中的項目時把握程度。可信度 (%) 可用於將通話來電路由至啟用了 ASR 的 IVR 指令碼中的不同分支。

CXone 中使用的可信度為:

  • :高可信度;一般為 75% 或更高。使用 ASR 動作中的 HighConfidence 屬性設定可信度值。可透過 OnHighConfidence 分支路由聯絡,不再進一步確認話語。
  • 中等:中等可信度,即介於低和高之間。可透過 OnMedConfidence 分支路由聯絡,並要求確認話語。此類別沒有屬性。介於自訂的最低和最高級別之間的所有聯絡都可以由此分支執行路由。
  • 最低:可接受的最低可信度。使用 ASR 動作中的 MinConfidence 屬性設定可信度值。此值可設定 OnMedConfidence 分支的較小範圍的數字。
  • 不可信:話語不可識別,ASR 引擎無法進行解析。任何小於 MinConfidence 值的值都在此範圍內。可透過 OnNoConfidence 分支來路由聯絡,並要求重複話語。

大部分 ASR 動作都有針對不同可信度的分支。這允許您自訂使用者體驗並處理準確度的可變性。可信度變數屬於 系統變數,因此不會顯示在指令碼的追蹤記錄中,除非 您允許在追蹤記錄中顯示系統變數

可信度受到背景雜音或對話、口音或文法檔案輸入項目拼寫等因素的影響。

MAX 提供了一種敏感度自訂方法(如果透過Personal Connection語音臨界值設定為客服專員指定了 技能,以協助測量並篩選背景雜音級別、客服專員的語音偵測等。

逾時設定

此動作檢測話語並嘗試尋找配對項目的時長;預設持續時間為 10 秒。

語音間逾時設定

聯絡人停止說話後系統將等候的時間。系統等待以確保聯絡人不繼續說話。這類似於 DTMFClosed 使用者點擊或輕點電話鍵盤上的某個鍵而產生的訊號音。InterDigitTimeout 設定。

例如,當您提供帳號時,聯絡人通常將號碼組合在一起且中間有停頓,如「123 <暫停> 456 <暫停> 789 <暫停>」。上例中的<暫停>即表示語音間的逾時。預設值為 3 秒。當建立或調整指令碼時,記得要考慮聯絡人說話的時間、語音間逾時時間和一小段處理時間。逾時設定過多會造成相互疊加,進而導致動作執行失敗

錯誤

錯誤 描述
ASR 初始化失敗 媒體伺服器無法聯絡 ASR 伺服器。此錯誤可能由多種原因引起,包括 ASR 服務未執行或通訊埠為開通。
文法檔案錯誤:無法編譯文法。請檢查文法中是否存在文法錯誤。 此錯誤一般由文法檔案的 XML 問題引起。
URL 錯誤。識別程式無法存取指定 URL。 文法不存在、未被正確引用,或者服務存取檔案伺服器。
ASRRESULT 確定是否偵測到 ASR。
ASRConf 所得到的 ASR 可信度值:0-100。
ASRCOMPLETIONCAUSECODE 表示 ASR 完成情況。
ASRERRORMESSAGE Nuance 報告的錯誤文字描述。
ASRSTATUSCODE 以下列值之一指示狀態:
  • ASR_STATUS_WAITING = 100(仍在等待 TCP 開通)
  • ASR_STATUS_OK = 200
  • ASR_STATUS_DTMF = 298
  • ASR_STATUS_RECOGNITION_FAILED = 299
  • ASR_STATUS_MALFORMED_CONFIDENCE_RESULT = 300
  • ASR_STATUS_CLIENT_ERROR = 400
  • ASR_STATUS_SERVER_ERROR = 500
  • ASR_STATUS_SERVER_ESTABLISHMENT_FAILED = 590
  • ASR_STATUS_SERVER_SELECT_WSAEINTR = 591
  • ASR_STATUS_SERVER_CLOSED_TCP_CONNECTION = 592
  • ASR_STATUS_SERVER_TCP_RECV_FAILED = 593
  • ASR_STATUS_NO_RELAY_LINE_AVAILABLE = 594
  • ASR_STATUS_SERVER_TCP_OPEN_TIMED_OUT = 595
  • ASR_STATUS_SERVER_RESPONSE_TIMED_OUT = 596
  • ASR_STATUS_MAX_SESSIONS_EXCEEDED = 597
  • ASR_STATUS_DUPLICATE_ENABLE_REQUEST_ERROR = 598
  • ASR_STATUS_INTERNAL_ERROR = 599
  • ASR_STATUS_STOPPED_BY_MEDIA_CHANNEL = 998