ASR 管理

本帮助页面上的信息同时适用于 CXone StudioDesktop Studio

本节提供了有关在 CXone 中管理自动语音识别 (ASR) 增强的 IVR关闭 自动电话菜单,允许呼叫者通过语音命令、按键输入或两者进行交互,以获得信息、路由呼入的语音呼叫或两者。 菜单系统的信息。

对自动语音识别和 Nuance ASR 引擎的现有了解对于创建有效的支持 ASR 的 IVR 系统至关重要。Nuance 提供了使用该引擎的完整文档。

调节

所需权限:ASR 调节报告开启

调节后,您可以根据 ASR Studio 操作当前执行情况的数据来改进 ASR 系统。它是开发和维护 ASR 系统的重要组成部分。

ASR 调节报告提供了可以在调节过程中使用的信息。它提供了在脚本中触发的 ASR 操作的响应率,并可让您查看 ASR 无法识别的话语列表。该报告按操作和每个置信度分支设置进行细分。

如果已启用调节,则可以展开这些部分并收听该片段中录制的音频文件。这为您提供了有关 ASR 系统无法理解的响应的信息。您可以将其添加到语法文件和短语列表中。

调节 ASR 系统时,您可以:

  • 查看“ASR 调节”报告并评估其提供的数据。
  • 收听“ASR 调节”报告中的录音,了解交互的相同之处。
  • 确定您的联系人在说什么以及他们是如何说的。
  • 根据您所学的内容更新语法文件。
  • 如果需要,请调整置信度值

启用调节

如果 IVR 捕获了任何 PII(个人身份信息)数据,您可能需要在调节过程中仔细选择要记录 IVR 的哪些部分。这有助于避免捕获个人数据的问题。例如,如果有一个收集敏感 ID 编号的 Asrdigits 操作,则可以在该操作之后开始调节。这样就不会记录 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)

CXone支持以下 Nuance 参数,因为 Studio Asr 操作播放的是提示而不是 Nuance

Nuance 参数 说明 默认值
swiep_suppress_barge_in_time 在提示开始时短暂禁用插入。 0(无延迟)
swiep_in_prompt_sensitivity_percent 控制呼叫者必须以多高的音量说话才能中断提示(插入)并检测语音。 50(百分比)
swirec_barge_in_mode 在识别器中设置特殊识别模式。 normal

语法文件

语法文件允许您列出联系人在响应提示时或许会说出的多种不同的可能话语。Nuance ASR 引擎尝试将联系人的响应与语法文件中的条目进行匹配。由于 ASR 引擎必须找出整个话语的匹配项,语法文件为 Nuance 提供了一个可供选择的重点话语列表。

语法文件是提高 ASR 增强型 IVR 准确性的最有效方法之一。ASR 分析实际的人际交互,因此系统必须识别不计其数的选项。这使得 ASR 系统比仅仅响应 DTMF关闭 当用户在电话按键上按下或敲击某个键时产生的信号音。 铃声的系统复杂得多。DTMF 可识别 12 种铃声,这意味着 IVR 系统必须识别 12 个选项。人类语音包含 ASR 系统必须识别的更多选项以及声音、单词和短语的组合。

例如,联系人可以用以下句子来响应询问其会员号的提示:“我的会员号是 123456789。”ASR 增强型脚本可识别整个短语,但当联系人以“我的会员号是…”为开头时,其他脚本将无法识别。而不仅仅是数字。

更新语法文件时,请先重命名该文件,然后再在生产脚本中使用它。这有助于避免更新过程中发生冲突。它还会保留原始文件作为备份,以防您因任何原因需要还原。在脚本的 ASR 操作中指定语法文件名时,您可以使用变量替换

提高准确性

语法文件提高了 ASR 系统的准确性。除了预期信息之外,您还可以将联系人可能会说的单词和短语添加到语法文件中。例如,如果提示要求联系人提供会员号,您可以在语法文件中添加短语,如“我的会员号是”、“我想是”、“请稍候,让我找一下我的会员卡”等。

语法文件中的重点列表有助于限制话语中的排列组合数量。预期响应越长,可能的响应就越多。语法文件通过包含常见且最有可能使用的语法文件来帮助限制可能的响应范围。

您无需考虑要添加的所有可能的响应。通过调节过程了解联系人的实际说话方式。您可以根据调节时学到的内容添加到语法文件中。创建语法文件应该是一个迭代过程,因为联系人使用该系统,并且您可以从 ASR 无法理解响应的地方学习。

发音变化

调节 ASR 系统时,请注意发音的变化。将多个条目添加到编号各种语音拼写的短语列表和语法文件中大有裨益。

如果提示可能引发经常性发音错误或有不同发音的响应,这可能特别有用。可以举“fungi”(“fungus”的复数形式)为例。除了条目“fungi”之外,您还可以添加以下其他语音条目:“fun guy”、“fun gee”、“fun jee”。

多语言支持

ASR 支持多种语言。语法是针对特定语言的。引用文件标头中的语言,以便引擎专门查找使用该语言说出的话语。

在任何语法文件中,条目必须使用与该引用语言相同的字母、句子结构等。例如,如果要在西班牙语特定语法中使用“piñata”一词,则条目必须在“n”上使用波浪符号 (~),这样该条目才是“piñata”而不是“pinata”。

ASR 与自然语言处理

ASR 和语法文件可以创建类似于自然语言处理 (NLP关闭 也称为 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 秒。

语音间超时设置

这是联系人停止讲话后系统等待的时间。系统会等待以确保联系人不再继续讲话。这与 DTMF关闭 当用户在电话按键上按下或敲击某个键时产生的信号音。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