ASR 관리

이 섹션에서는 CXone에서 자동 음성 인식(ASR) 강화 IVR닫힘 발신자가 음성 명령, 키 입력 또는 둘 다를 통해 상호작용하여 정보를 얻거나 인바운드 음성 통화를 라우팅 또는 둘 다를 할 수 있는 자동화된 전화 메뉴입니다. 메뉴 시스템 관리에 관한 정보를 제공합니다.

효과적인 ASR 지원 IVR 시스템을 만들기 위해서는 자동 음성 인식 및 Nuance ASR 엔진에 대한 이해가 필요합니다. 이 엔진 사용에 관한 전체 문서는 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 개체를 호출합니다. 이 값은 그 기본값에서 정의할 Nuance 매개변수가 포함된 유효한 JSON 문자열이어야 합니다. 예:

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의 척도)

Studio Asr 작업은 Nuance 대신 프롬프트를 재생하므로 다음 Nuance 매개변수는 CXone에서 지원되지 않습니다.

Nuance 매개변수 설명 기본값
swiep_suppress_barge_in_time 프롬프트 시작 시에 끼어들기를 잠시 비활성화합니다. 0(지연 없음)
swiep_in_prompt_sensitivity_percent 프롬프트가 중단되어(끼어들기) 음성을 감지하려면 발신자의 음성이 얼마나 커야 하는지 제어합니다. 50(백분율)
swirec_barge_in_mode 인식기에서 특수 인식 모드를 설정합니다. normal

문법 파일

문법 파일을 사용하여 컨택이 프롬프트에 대한 응답으로 말할 가능성이 있는 다양한 발언을 목록화할 수 있습니다. 그러면 Nuance 엔진이 컨택의 응답과 문법 파일 항목의 비교를 시도합니다. ASR 엔진이 전체 발화에 일치하는 항목을 찾아야 하므로 문법 파일에서는 Nuance에 선택할 중점적 발화 목록을 제공합니다.

문법 파일은 ASR로 강화된 IVR의 정확도를 높이는 가장 효과적인 방법 중 하나입니다 ASR은 실제 인간의 상호작용을 분석하므로 시스템에서 인식해야 하는 옵션이 수없이 많습니다. 따라서 ASR 시스템은 DTMF닫힘 사용자가 전화 키패드의 키를 누르거나 탭할 때 발생하는 신호화 톤입니다. 톤에만 응답하는 것보다 훨씬 복잡해집니다. DTMF는 12가지의 톤을 인식합니다. 즉, IVR 시스템이 인식해야 하는 옵션이 12가지라는 의미입니다. 인간의 말에는 천문학적으로 훨씬 많은 옵션 및 음성, 단어, 문구의 조합이 포함되어 있으며, ASR 시스템에서는 이를 모두 인식해야 합니다.

예를 들어 컨택이 회원 번호를 요청하는 안내말에 이런 문장으로 답할 수 있습니다. "제 회원 번호는 123456789입니다." ASR로 강화된 스크립트는 전체 문구를 인식하지만, 기타 스크립트는 컨택이 숫자부터 말하는 대신 "제 회원 번호는..."이라는 말로 문장을 시작하면 인식에 실패할 수 있습니다.

강화된 정확도

문법 파일은 ASR 시스템의 정확도를 강화해 줍니다. 예상한 정보와 더불어, 컨택이 말할 가능성이 높은 단어와 문구를 문법 파일에 추가할 수 있습니다. 예를 들어 컨택에게 회원 번호를 요청하는 안내문을 말하는 경우, 문법 파일에 "제 회원 번호는", "제 생각에는", "잠깐만요. 카드 좀 가져올게요" 등의 말을 추가할 수 있습니다.

문법 파일의 중점적 목록은 발화의 순열 개수를 제한하는 데 도움이 됩니다. 예상 응답이 길수록 가능한 응답도 많아집니다. 문법 파일은 일반적이며 사용할 가능성이 가장 높은 응답을 포함함으로써 가능한 응답의 범위를 제한하는 데 도움을 줍니다.

가능한 응답을 모두 추가하기 위해 생각할 필요는 없습니다. 튜닝 프로세스를 사용하여 컨택이 실제로 말하는 방법을 학습하십시오. 튜닝 중에 학습하는 내용에 따라 문법 파일에 추가할 수 있습니다. 문법 파일 생성은 반복적인 프로세스로 이루어져야 합니다. 컨택이 시스템을 사용하고 ASR이 이해하지 못하는 응답이 존재하는 부분에서 학습해야 하기 때문입니다.

발음의 변형

ASR 시스템을 튜닝할 때는 발음의 여러 가지 변형을 들어야 합니다. 다양한 표음식 철자로 이루어진 여러 항목을 문구 목록과 문법 파일에 추가하면 도움이 될 수 있습니다.

프롬프트가 자주 잘못 발음되거나 다른 방식의 발음이 존재하는 응답을 인지할 경우 특히 많은 도움이 될 수 있습니다. ‘fungi’(fungus의 복수형)를 예로 들 수 있습니다. ‘fungi’ 항목 외에 ‘fun guy’, ‘fun gee’, ‘fun jee’와 같은 추가 음성 항목을 추가할 수 있습니다.

다중 언어 지원

ASR은 다중 언어를 지원합니다. 문법은 언어별로 다릅니다. 엔진이 해당 언어의 발화를 찾도록 파일의 헤더에 언어 이름을 참조해야 합니다.

어떤 문법 파일에서든, 항목에서는 참조된 언어에 맞추어 동일한 알파벳, 문장 구조 등을 사용해야 합니다. 예를 들어, 스페인어 문법에 대해 ‘piñata’라는 단어를 사용할 경우, 항목은 ‘n’ 위에 물결 기호(~)를 사용해야 합니다. 항목은 ‘pinata’가 아니라 ‘piñata’여야 합니다.

ASR과 자연어 처리 비교

ASR과 문법 파일은 자연어 처리(NLP닫힘 상담원이 상호작용을 종료한 후 작업 요구 사항을 완료할 수 있는 상태입니다) 시스템과 유사한 결과를 생성할 수 있지만, 이들은 동일하지 않습니다. ASR은 DTMF와 NLP 간의 다리와도 같습니다. 모든 것을 캡처할 수는 없지만 대부분을 캡처할 수 있습니다. 이 때문에 문법 파일이 아주 중요합니다. 문법 파일의 품질이 좋을수록, ASR 시스템이 성공적으로 인식할 수 있는 응답도 증가합니다.

문법 파일에 관한 주요 정보

  • 대부분의 ASR Studio 작업에는 문법 파일을 사용합니다.
  • Asralphanum, Asrcurrency, Asrdate, Asrdigits, Asrnumber, Asrtime, Asryesno 작업에는 문법 파일이 내장되어 있습니다. 내장된 문법 파일에 추가로 직접 제작한 문법 파일을 생성 및 사용할 수 있습니다.
  • 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