자동 음성 적응

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

인텐트 인식 요청을 수행할 때 원하는 경우 phrase_hints를 제공하여 음성 인식기에 힌트를 제공할 수 있습니다. 이러한 힌트는 특정 대화 상태에서 인식에 도움이 될 수 있습니다.

자동 음성 적응 기능은 모든 인텐트 인식 요청에 대해 자동으로 대화 상태를 사용하여 관련 개체 및 학습 문구를 음성 컨텍스트 힌트로 전달하여 에이전트의 음성 인식 정확성을 높입니다. 이 기능은 기본적으로 비활성화되어 있습니다.

자동 음성 적응 사용 또는 사용 중지

자동 음성 적응을 사용 또는 사용 중지하려면 다음 안내를 따르세요.

콘솔

  1. Dialogflow CX 콘솔을 엽니다.
  2. GCP 프로젝트를 선택합니다.
  3. 에이전트를 선택합니다.
  4. 에이전트 설정을 클릭합니다.
  5. 음성 및 IVR 탭을 클릭합니다.
  6. 자동 음성 적응 사용을 사용 또는 사용 중지로 전환합니다.
  7. 저장을 클릭합니다.

API

Agent 유형은 getpatch/update 메서드를 참조하세요.

에이전트 참조의 프로토콜 및 버전 선택:

프로토콜 V3 V3beta1
REST 에이전트 리소스 에이전트 리소스
RPC 에이전트 인터페이스 에이전트 인터페이스
C++ AgentsClient 사용 불가능
C# AgentsClient 사용 불가능
Go AgentsClient 사용 불가능
자바 AgentsClient AgentsClient
Node.js AgentsClient AgentsClient
PHP 사용 불가능 사용 불가능
Python AgentsClient AgentsClient
Ruby 사용 불가능 해당 사항 없음

음성 인식 개선을 위한 에이전트 설계

자동 음성 적응을 사용하면 에이전트 활용을 극대화할 수 있는 방법으로 에이전트를 빌드할 수 있습니다. 다음 섹션에서는 에이전트의 학습 문구, 항목을 일부 변경하여 어떻게 음성 인식을 개선할 수 있는지 설명합니다.

학습 문구

  • 예를 들어 'stuffy nose'가 포함된 학습 문구를 정의할 경우 발음이 비슷한 최종 사용자 발화도 'stuff he knows'가 아니라 'stuffy nose'로 안정적으로 인식됩니다.
  • Dialogflow의 양식 작성 프롬프트를 강제하는 필수 매개변수가 있는 경우에는 자동 음성 적응에서 채워지는 항목에 강한 편향을 적용합니다.

어떤 경우든 자동 음성 적응은 음성 인식을 제한하지 않고 편향을 적용할 뿐입니다. 예를 들어 Dialogflow에서 사용자에게 필수 매개변수를 요청하더라도 최상위 수준의 'talk to an agent' 인텐트와 같은 다른 인텐트를 트리거할 수 있습니다.

시스템 개체

@sys.number 시스템 개체를 사용하는 학습 문구를 정의할 때 최종 사용자가 'I want two'라고 말하면 이 음성은 'to', 'too', '2', 'two'로 인식될 수 있습니다.

자동 음성 적응이 사용 설정된 경우 음성 인식 중에 Dialogflow가 @sys.number 항목을 힌트로 사용하고, 매개변수가 '2'로 추출될 가능성이 높습니다.

커스텀 개체

  • 회사에서 제공되는 제품 또는 서비스 이름의 커스텀 개체를 정의하면 최종 사용자가 이러한 단어를 발화에서 언급할 때 단어의 인식 가능성이 더 높아집니다. 'Dialogflow'가 @product entity로 주석 처리되는 'I love Dialogflow' 학습 문구의 경우 자동 음성 적응에서 'I love Dialogflow', 'I love Cloud Speech' 그리고 @product entity의 나머지 개체에 편향을 적용합니다.

  • Dialogflow를 사용해 음성을 감지할 때는 특히 개체 동의어를 명확하게 정의해야 합니다. 'Dialogflow'와 'Dataflow'라는 두 @product entity 개체가 있다고 가정해 보겠습니다. 'Dialogflow'의 동의어는 'Dialogflow', 'dialog flow', 'dialog builder', 'Speaktoit', 'speak to it', 'API.ai', 'API dot AI'일 수 있습니다. 가장 일반적인 변형이 포함되어 있으므로 적절한 동의어라 할 수 있습니다. 'the dialogue flow builder'는 'dialogue flow'에서 이미 처리되므로 추가할 필요가 없습니다.

  • 연속적이지만 고유한 숫자 항목이 있는 사용자 발화는 모호할 수 있습니다. 예를 들어 'I want two sixteen packs'는 16개 팩 2개 또는 팩 216개를 의미할 수 있습니다. 철자 값이 있는 개체를 설정하면 음성 적응이 이러한 경우를 명확하게 하는 데 도움이 될 수 있습니다.
    • 다음 개체가 있는 quantity 개체를 정의합니다.
      zero
      one
      ...
      twenty
    • 다음 개체 있는 product 또는 size 개체를 정의합니다.
      sixteen pack
      two ounce
      ...
      five liter
    • 음성 적응에서는 항목 동의어만 사용되므로 참조 값 1 및 단일 동의어 one으로 항목을 정의하여 fulfillment 로직을 단순화할 수 있습니다.

정규 표현식 항목

정규 표현식 항목은 올바르게 구성하고 테스트하면 'ABC123' 또는 '12345'와 같은 영숫자 및 숫자 시퀀스에 대한 자동 음성 적응을 트리거할 수 있습니다.

음성을 통해 이러한 시퀀스를 인식하려면 아래의 요구사항 4개 모두를 구현합니다.

1. 정규 표현식 개체 요구사항

어떤 정규 표현식으로든 텍스트 입력에서 항목을 추출할 수 있지만 음성을 인식할 때 자동 음성 적응에서 철자가 틀린 영숫자 또는 숫자 시퀀스에 편향을 적용할 수 있는 표현식도 있습니다.

정규 표현식 개체에서 최소 하나의 개체가 다음 규칙을 모두 따라야 합니다.

  • 일부 영숫자 문자(예: \d, \w, [a-zA-Z0-9])와 일치해야 합니다.
  • \s*\s?가 허용되더라도 공백   또는 \s를 포함하지 않아야 합니다.
  • 캡처 그룹 또는 비캡처 그룹 ()을 포함하지 않아야 합니다.
  • 다음과 같은 특수 문자 또는 구두점과 일치시키려고 시도하지 않아야 합니다. ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

이 개체에는 문자 집합 []*, ?, +, {3,5}와 같은 반복 수량자가 포함될 수 있습니다.

예시를 참조하세요.

2. 매개변수 정의 요구사항

정규 표현식 항목을 필수 양식 매개변수로 표시하여 양식 작성 중에 수집할 수 있도록 합니다. 그러면 인텐트와 시퀀스를 동시에 인식하는 대신에 자동 음성 적응에서 시퀀스 인식에 강한 편향을 적용합니다. 필수 매개변수로 표시하지 않을 경우 'Where is my package for ABC123'이 'Where is my package 4ABC123'으로 잘못 인식될 수 있습니다.

3. 학습 문구 주석 요구사항

인텐트 학습 문구 주석에 정규 표현식 항목을 사용하지 마세요. 이렇게 하면 매개변수가 양식을 작성하는 동안 확인됩니다.

4. 테스트 요구사항

음성 적응 테스트를 참조하세요.

예시

예를 들어 단일 항목 ([a-zA-Z0-9]\s?){5,9}를 사용하는 정규 표현식 항목은 캡처 그룹이 포함되어 있으므로 음성 시퀀스 인식기를 트리거하지 않습니다. 이 문제를 해결하려면 [a-zA-Z0-9]{5,9}에 대한 다른 개체를 추가하면 됩니다. 그러면 'ABC123'을 일치시킬 때 시퀀스 인식기를 활용할 수 있지만 공백을 허용하는 원래 규칙 때문에 NLU에서도 'ABC 123'과 같은 입력을 찾습니다.

다음 정규 표현식의 예는 영숫자 시퀀스에 맞게 조정됩니다.

^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]

다음 정규 표현식의 예는 숫자 시퀀스에 맞게 조정됩니다.

\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}

음성 적응 테스트

특정 학습 문구 또는 개체 일치에 대해 에이전트의 음성 적응 기능을 테스트할 때는 대화의 첫 번째 음성 발화로 일치 개체를 바로 테스트해서는 안 됩니다. 테스트하려는 일치 개체 전에 전체 대화의 음성 또는 이벤트 입력만 사용해야 합니다. 이 방식으로 테스트할 때 에이전트 동작은 실제 프로덕션 대화의 동작과 유사합니다.

제한사항

다음과 같은 제한사항이 적용됩니다.

  • 긴 문자 시퀀스를 인식하는 것은 쉽지 않습니다. 한 번에 정확하게 캡처할 수 있는 문자 수는 입력 오디오의 품질과 직접적으로 관련이 있습니다. 모든 정규 표현식 항목 가이드라인을 따랐지만 여전히 한 번에 전체 시퀀스를 캡처하는 데 어려움이 있다면 더 많은 대화식 대안을 고려할 수 있습니다.

    • 데이터베이스에 대한 시퀀스를 확인할 때는 날짜, 이름, 전화번호 등 수집된 다른 매개변수를 교차 참조하여 불완전한 일치를 허용하는 것이 좋습니다. 예를 들어 사용자에게 단순히 주문 번호를 물어보는 대신 전화번호도 요청합니다. 이제 웹훅이 데이터베이스에서 주문 상태를 쿼리하면 먼저 전화번호를 사용하고 계정에서 가장 가까운 일치 순서를 반환할 수 있습니다. 이렇게 하면 Dialogflow가 'ABC'를 'AVC'로 잘못 들을 수 있지만, 여전히 사용자의 올바른 주문 상태를 반환할 수 있습니다.
    • 특히 긴 시퀀스의 경우 봇에서 진행 상황을 확인할 수 있도록 최종 사용자가 중간에 잠시 멈추도록 유도하는 흐름을 설계해 보세요.
  • 자동 음성 적응의 시스템 및 정규 표현식 개체에 대한 기본 제공 지원은 언어마다 다릅니다. $OOV_CLASS_ALPHANUMERIC_SEQUENCE$OOV_CLASS_DIGIT_SEQUENCE 지원 언어는 음성 클래스 토큰을 참조하세요. 원하는 언어가 목록에 없는 경우 이러한 제한을 해결할 수 있습니다. 예를 들어 세 글자와 세 자리 숫자로 된 직원 ID를 정확하게 인식하려면 다음 개체 및 매개변수를 사용하여 에이전트를 빌드할 수 있습니다.

    • 10개 개체 항목(동의어 포함)이 포함된 digit 개체를 정의합니다.
      0, 0
      1, 1
      ...
      9, 9
    • 26개 개체 항목(동의어 포함)이 포함된 letter 개체를 정의합니다.
      A, A
      B, B
      ...
      Z, Z
    • 단일 개체 항목(동의어 제외)이 포함된 employee-id 개체를 정의합니다.
      @letter @letter @letter @digit @digit @digit
    • 학습 문구에서 @employee-id를 매개변수로 사용합니다.