KR20240053428A - 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체 - Google Patents

대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20240053428A
KR20240053428A KR1020220133510A KR20220133510A KR20240053428A KR 20240053428 A KR20240053428 A KR 20240053428A KR 1020220133510 A KR1020220133510 A KR 1020220133510A KR 20220133510 A KR20220133510 A KR 20220133510A KR 20240053428 A KR20240053428 A KR 20240053428A
Authority
KR
South Korea
Prior art keywords
screen information
user
conversation management
text
parameter
Prior art date
Application number
KR1020220133510A
Other languages
English (en)
Inventor
문재민
김정도
박민재
김성왕
Original Assignee
현대자동차주식회사
기아 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대자동차주식회사, 기아 주식회사 filed Critical 현대자동차주식회사
Priority to KR1020220133510A priority Critical patent/KR20240053428A/ko
Priority to US18/227,629 priority patent/US20240127810A1/en
Publication of KR20240053428A publication Critical patent/KR20240053428A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • G06V30/1475Inclination or skew detection or correction of characters or of image to be recognised
    • G06V30/1478Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/02Recognising information on displays, dials, clocks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)

Abstract

개시된 발명은 사용자 발화에 대응되는 태스크를 수행하는데 필요한 정보를 사용자 기기에 표시된 화면으로부터 획득함으로써, 사용자의 추가 발화 유도, 사용자의 추가 발화 수신 및 사용자의 추가 발화 분석 등의 과정을 생략할 수 있는 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체를 제공한다.

Description

대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체{METHOD FOR DIALOGUE MANAGEMENT, DIALOGUE MANAGEMENT SYSTEM AND COMPUTER-READABLE RECORDING MEDIUM}
개시된 발명은 사용자 발화를 처리할 수 있는 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체에 관한 것이다.
음성 인식(Speech Recognition) 기술은 사용자의 음성을 인식하여 사용자의 의도를 파악하고, 파악된 사용자의 의도에 대응되는 서비스를 제공할 수 있는 기술로서, 사용자의 의도에 따라 특정 장치에 대한 제어를 수행할 수도 있고 특정 정보를 제공할 수도 있다.
대화 관리(Dialogue Management) 기술은 사용자의 의도에 대응되는 서비스를 제공하기 위해 필요한 사용자와의 대화를 관리하고, 그 외에 사용자의 의도에 대응되는 서비스를 제공하기 위해 필요한 각종 처리를 수행하는 기술이다.
이러한 음성 인식 기술과 대화 관리 기술은 음성 인식 시스템 또는 대화 관리 시스템으로 구현될 수 있고 음성 인식 시스템 또는 대화 관리 시스템은 다양한 사용자 단말과 연계되어 사용자가 원하는 서비스를 제공할 수 있다. 사용자는 사용자 기기를 통해 발화를 입력함으로써 원하는 서비스를 요청할 수 있다.
개시된 발명은 사용자 발화에 대응되는 태스크를 수행하는데 필요한 정보를 사용자 기기에 표시된 화면으로부터 획득함으로써, 사용자의 추가 발화 유도, 사용자의 추가 발화 수신 및 사용자의 추가 발화 분석 등의 과정을 생략할 수 있는 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체를 제공한다.
일 실시예에 따른 대화 관리 방법은, 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 획득하는 단계; 상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하는 단계; 상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하는 단계; 상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하는 단계; 및 상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성하는 단계;를 포함한다.
상기 화면 정보를 분석하는 단계는, 상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류하는 단계;를 포함할 수 있다.
상기 통합하는 단계는, 상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하는 단계; 및 상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행하는 단계;를 포함할 수 있다.
상기 적어도 하나의 파라미터는, 상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함할 수 있다.
상기 화면 정보는, 상기 사용자 기기에 표시된 화면을 스캔하여 스캔 이미지를 생성하고, 상기 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함할 수 있다.
상기 화면 정보를 분석하는 단계는, 상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득하는 단계를 더 포함할 수 있다.
상기 피드백을 생성하는 단계는, 상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성하는 것을 포함할 수 있다.
일 실시예에 따른 대화 관리 시스템은 사용자 발화 또는 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 수신하는 통신 모듈; 및 적어도 하나의 프로세서;를 포함하고, 상기 적어도 하나의 프로세서는, 상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하고, 상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하고, 상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하고, 상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성한다.
상기 적어도 하나의 프로세서는, 상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류할 수 있다.
상기 적어도 하나의 프로세서는, 상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하고, 상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행할 수 있다.
상기 적어도 하나의 파라미터는, 상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함할 수 있다.
상기 화면 정보는, 상기 사용자 기기에 표시된 화면을 스캔하여 스캔 이미지를 생성하고, 상기 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함할 수 있다.
상기 적어도 하나의 프로세서는, 상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성할 수 있다.
일 실시예에 따른 대화 관리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 있어서, 상기 대화 관리 방법은, 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 획득하는 단계; 상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하는 단계; 상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하는 단계; 상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하는 단계; 및 상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성하는 단계;를 포함한다.
상기 화면 정보를 분석하는 단계는, 상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류하는 단계;를 포함할 수 있다.
상기 통합하는 단계는, 상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하는 단계; 및 상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행하는 단계;를 포함할 수 있다.
상기 적어도 하나의 파라미터는, 상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함할 수 있다.
상기 화면 정보는, 상기 사용자 기기에 표시된 화면을 스캔하여 스캔 이미지를 생성하고, 상기 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함할 수 있다.
상기 화면 정보를 분석하는 단계는, 상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득하는 단계를 더 포함할 수 있다.
상기 피드백을 생성하는 단계는, 상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성하는 것을 포함할 수 있다.
일 측면에 따른 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체에 의하면, 사용자가 원활하게 발화를 입력하지 못하는 경우, 사용자의 발화에 포함된 특정 발화 패턴에 따라 적절한 추천 발화 정보를 제공함으로써 사용자의 원활한 발화를 가이드할 수 있다.
도 1 은 입력된 사용자 발화를 처리하기 위해 사용되는 구성요소들을 나타낸 블록도이다.
도 2는 입력된 사용자 발화를 처리하기 위해 사용되는 구성요소들이 서로 다른 시스템에 포함되는 경우를 나타낸 블록도이다.
도 3은 일 실시예에 따른 사용자 기기의 구성요소를 나타내는 블록도이다.
도 4 및 도 5는 일 실시예에 따른 사용자 기기와 대화 관리 시스템 사이에 주고 받는 정보를 나타내는 도면이다.
도 6은 일 실시예에 따른 차량의 동작을 나타내는 다른 블록도이다.
도 7은 일 실시예에 따른 사용자 기기와 대화 관리 시스템 사이에 주고 받는 정보를 나타내는 다른 도면이다.
도 8은 일 실시예에 따른 대화 관리 방법의 순서도이다.
도 9는 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 예시를 나타낸 도면이다.
도 10은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
도 11은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이다.
도 12는 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 예시를 나타내는 도면이다.
도 13은 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 다른 예시를 나타낸 도면이다.
도 14는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
도 15는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이다.
도 16은 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 다른 예시를 나타내는 도면이다.
도 17은 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 또 다른 예시를 나타낸 도면이다.
도 18은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
도 19는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이다.
도 20은 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 또 다른 예시를 나타내는 도면이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서의 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, 본 명세서에서 사용한 "제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지는 않으며, 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1구성 요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1구성 요소로 명명될 수 있다.
"및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
명세서에서 요소들의 리스트를 언급할 때 사용되는 "적어도 하나의~"의 표현은, 요소들의 조합을 변경할 수 있다. 예를 들어, "a, b, 또는 c 중 적어도 하나"의 표현은 오직 a, 오직 b, 오직 c, a 와 b 둘, a와 c 둘, b와 c 둘, 또는 a, b, c 모두의 조합을 나타내는 것으로 이해될 수 있다.
이하에서는 첨부된 도면을 참조하여 개시된 발명의 실시예를 상세하게 설명하도록 한다.
도 1 은 입력된 사용자 발화를 처리하기 위해 사용되는 구성요소들을 나타낸 블록도이고, 도 2는 입력된 사용자 발화를 처리하기 위해 사용되는 구성요소들이 서로 다른 시스템에 포함되는 경우를 나타낸 블록도이다.
음성 인식 모듈(110)은 STT(Speech to Text) 엔진으로 구현될 수 있고, 사용자 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다.
예를 들어, 음성 인식 모듈(110)은 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
또한, 음성 인식 모듈(110)은 머신 러닝 또는 딥 러닝을 적용한 학습에 기반하여 사용자 발화를 텍스트로 변환하는 것도 가능하다. 당해 실시예에서는 음성 인식 모듈(110)이 사용자 발화를 텍스트로 변환하는 방식에 대해서는 제한을 두지 않는바, 음성 인식 모듈(110)은 전술한 방식 외에도 다양한 음성 인식 기술을 적용하여 사용자 발화를 텍스트로 변환할 수 있다.
자연어 이해 모듈(120)은 텍스트에 포함된 사용자 의도를 판단하기 위해 자연어 이해(Natural Language Understanding: NLU) 기술을 적용할 수 있다. 따라서, 자연어 이해 모듈(120)에는 입력 문장에 대해 NLU 기술을 적용하여 사용자 의도를 판단하는 NLU 엔진이 포함될 수 있다. 여기서, 음성 인식 모듈(110)이 출력한 텍스트가 자연어 이해 모듈(120)에 입력되는 입력 문장이 된다.
예를 들어, 자연어 이해 모듈(120)은 입력 문장으로부터 엔티티(entity)를 인식할 수 있다. 엔티티는 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식(NER: Named Entity Recognition)은 문장에서 엔티티를 식별하고 식별된 엔티티의 타입을 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
또한, 자연어 이해 모듈(120)은 입력 문장으로부터 도메인을 결정할 수 있다. 도메인은 사용자 발화의 주제를 식별할 수 있는 것으로서, 예를 들어, 차량 제어, 일정 관리, 전화, 날씨 또는 교통 상황 등에 관한 정보 제공, 문자, 내비게이션, 음악 등의 다양한 주제를 나타내는 도메인이 입력 문장에 기초하여 결정될 수 있다.
자연어 이해 모듈(120)은 입력 문장에 포함된 인텐트(intent)를 분류할 수 있고, 해당 인텐트에 대응되는 태스크를 수행하는데 필요한 슬롯(slot)을 채울 수 있다. 자연어 이해 모듈(120)은 슬롯을 채우기 위해 입력 문장으로부터 엔티티를 추출할 수 있다.
인텐트에 대응되는 태스크를 수행하는데 필요한 슬롯은 입력 문장으로부터 추출된 엔티티에 의해 채워질 수 있다. 이러한 작업을 슬롯 필링(slot filing)이라 한다.
예를 들어, 입력 문장이 "에어컨 켜줘"인 경우 도메인은 [차량 제어]가 되고, 인텐트는 [에어컨 켜기]가 될 수 있다. 여기서, 해당 인텐트에 대응되는 태스크를 수행하기 위해 필요한 슬롯은 [온도, 풍량]이 될 수 있다.
다른 예로, 입력 문장이 "음악 틀어줘"인 경우 도메인은 [음악]이 될 수 있고, 인텐트는 [음악 재생]이 될 수 있다. 여기서, 해당 인텐트에 대응되는 태스크를 수행하기 위해 필요한 슬롯은 [아티스트, 곡명]이 될 수 있다.
다만, 설계에 따라 도메인, 인텐트 등의 분류 기준이나 명칭 등은 달라질 수 있는바, 후술하는 동작을 수행하는 모듈은 사용하는 명칭이나 도메인, 인텐트의 분류 기준 등에 상관없이 개시된 발명의 범위에 포함될 수 있다.
한편, 자연어 이해 모듈(120)도 음성 인식 모듈(110)과 마찬가지로 딥러닝 또는 머신 러닝에 의해 학습된 모델에 기초하여 입력 문장으로부터 도메인, 인텐트, 엔티티 등의 정보를 추출할 수 있다. 다만, 개시된 발명의 실시예가 이에 한정되는 것은 아닌바, 자연어 이해 모듈(120)이 입력 문장으로부터 필요한 정보를 추출하는 방식에 대해서는 제한을 두지 않는다.
대화 관리 모듈(130)은 음성 인식 모듈(110)과 자연어 이해 모듈(120)에서 수행된 사용자 발화에 대한 분석 결과(STT 결과, NLU 결과)와 대화 관리 정책에 기반하여 사용자 기기에 출력할 피드백을 생성할 수 있다.
예를 들어, 대화 관리 모듈(130)은 사용자와의 대화 히스토리를 저장하고, 저장된 대화 히스토리에 기초하여 현재 대화가 진행 중(이전 대화의 연장)인지 새로운 대화의 시작인지 여부를 판단할 수 있다. 동일한 사용자 발화가 입력되더라도, 대화가 진행 중인지 여부에 따라 다른 피드백이 생성될 수 있다.
또한, 대화 관리 모듈(130)은 자연어 이해 모듈(120)에서 분류한 인텐트에 대응되는 태스크를 실행하기 위해 필요한 정보가 충분한지 여부를 판단할 수 있다. 예를 들어, 태스크 실행을 위해 필요한 엔티티가 모두 추출된 경우에는 태스크의 실행을 안내하는 메시지의 출력과 함께 해당 태스크를 실행하기 위한 처리를 수행할 수 있다.
또한, 설계에 따라, 태스크 실행을 위해 필요한 엔티티가 모두 추출되지 않은 경우라도, 디폴트 값의 엔티티에 기초하여 태스크를 실행하는 것이 가능하면 디폴트 값의 엔티티에 따라 해당 태스크를 실행할 수도 있다.
태스크 실행을 위해 필요한 엔티티가 모두 획득되지 않은 경우에는 사용자에게 필요한 엔티티에 대한 정보를 묻기 위한 시스템 발화를 생성하여 출력할 수도 있고, 후술하는 바와 같이 사용자 기기에 표시된 화면으로부터 필요한 정보를 획득할 수도 있다. 이와 관련된 내용은 뒤에서 자세하게 설명하기로 한다.
또한, 엔티티가 모두 획득되었더라도 태스크의 실행이 불가능한 경우에는 사용자에게 태스크의 실행이 불가능함을 알리는 메시지를 출력할 수 있다.
일 예로, 전술한 음성 인식 모듈(110), 자연어 처리 모듈(120) 및 대화 관리 모듈(130)이 하나의 대화 관리 시스템(1)으로 구현될 수 있다. 이 경우, 사용자 발화가 음성 인식 모듈(110), 자연어 처리 모듈(120) 및 대화 관리 모듈(130)을 포함하는 대화 관리 시스템(1)에 입력되면, 대화 관리 시스템(1)에서 음성 인식과 자연어 이해를 거쳐 사용자 발화에 대한 분석 결과가 획득되고, 획득된 분석 결과에 기초하여 사용자 발화에 대한 피드백까지 생성될 수 있다.
다른 예로, 도 2에 도시된 바와 같이, 음성 인식 모듈(110)과 자연어 이해 모듈(120)은 음성 인식 시스템(2)에 포함되고, 대화 관리 모듈(130)은 별도의 시스템인 대화 관리 시스템(1)에 포함되는 것도 가능하다. 각 시스템(1, 2)의 명칭은 임의로 부여된 것으로서, 후술하는 동작을 수행하기만 하면 그 명칭과 무관하게 개시된 발명의 범위에 포함될 수 있다.
당해 실시예에서 별도의 시스템은 별도의 서버에 의해 구현되는 것을 의미할 수 있다. 또한, 별도의 시스템은 각각 다른 운영 주체에 의해 운영될 수 있다.
당해 실시예에서 하나의 시스템이 반드시 하나의 서버에 의해 구현되는 것을 의미하는 것은 아니다. 예를 들어, 음성 인식 시스템(2)이나 대화 관리 시스템(1) 모두 복수의 서버에 의해 구현될 수도 있다.
사용자 발화가 음성 인식 시스템(2)에 전달되면, 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 사용자 발화에 대한 분석 결과를 출력하고, 출력된 분석 결과는 음성 인식 시스템(2)에 마련된 통신 모듈(220)을 통해 대화 관리 시스템(1)으로 전송될 수 있다.
대화 관리 시스템(1)에 마련된 통신 모듈(210)이 사용자 발화에 대한 분석 결과를 수신하면, 대화 관리 모듈(130)이 사용자 발화에 대한 분석 결과 및 대화 관리 정책에 기초하여 사용자 발화에 대한 피드백을 생성할 수 있다.
사용자 발화에 대한 피드백은 시스템 발화 및 태스크의 실행을 위한 처리 신호를 포함하는 시스템 응답을 포함할 수 있다.
또는, 사용자 발화가 대화 관리 시스템(1)에 먼저 전달되고, 대화 관리 시스템(1)이 음성 인식 시스템(2)에 사용자 발화를 전달하는 것도 가능하다. 음성 인식 시스템(2)이 사용자 발화에 대한 분석 결과를 출력하면, 대화 관리 시스템(1)은 사용자 발화에 대한 분석 결과 및 대화 관리 정책에 기초하여 사용자 발화에 대한 피드백을 생성할 수 있다. 생성된 피드백은 사용자 기기로 전달될 수 있다.
음성 인식 시스템(2)에 마련된 통신 모듈(220)과 대화 관리 시스템(1)에 마련된 통신 모듈(210)은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 통신 모듈(210, 220)은 와이파이(WiFi, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
뿐만 아니라, 통신 모듈(210, 220)은 은 외부 장치들과 직접 통신하는 것도 가능하다. 예를 들어, 통신 모듈(210, 220)은 와이파이 다이렉트, 블루투스 (Bluetooth, IEEE 802.15.1 기술 표준), 지그비(ZigBee, IEEE 802.15.4 기술 표준) 등을 이용하여 근거리의 외부 장치들과 데이터를 주고 받을 수 있다.
대화 관리 시스템(1)과 음성 인식 시스템(2)은 전술한 동작 및 후술하는 동작을 수행하기 위한 프로그램이 저장된 적어도 하나의 메모리 및 저장된 프로그램을 실행하기 위한 적어도 하나의 프로세서를 포함할 수 있다.
음성 인식 시스템(2)의 경우 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 각각 별도의 메모리와 프로세서를 사용하는 것도 가능하고, 메모리와 프로세서를 공유하는 것도 가능하다.
또는, 음성 인식 모듈(110)은 음성 인식 시스템(2)에 포함되고, 자연어 이해 모듈(120)과 대화 관리 모듈(130)은 대화 관리 시스템(1)에 포함되는 것도 가능하다.
또는, 음성 인식 모듈(110), 자연어 이해 모듈(120) 및 대화 관리 모듈(130) 이 각각 별도의 시스템으로 구현되는 것도 가능하다. 이 경우, 음성 인식 모듈(110)은 음성 인식 시스템으로 구현되고, 자연어 이해 모듈(120)은 자연어 이해 시스템으로 구현되고, 대화 관리 모듈(130)은 대화 관리 시스템으로 구현될 수 있다.
도 3은 일 실시예에 따른 사용자 기기의 구성요소를 나타내는 블록도이고, 도 4 및 도 5는 일 실시예에 따른 사용자 기기와 대화 관리 시스템 사이에 주고 받는 정보를 나타내는 도면이다.
사용자 기기는 사용자와 대화 관리 시스템(1) 또는 음성 인식 시스템(2) 사이의 게이트 웨이 역할을 하는 전자 장치로서, 사용자 발화를 입력 받고 그에 대한 피드백을 출력하기 위한 각종 인터페이스 장치와 대화 관리 시스템(1) 또는 음성 인식 시스템(2)과 통신하기 위한 통신 장치를 구비할 수 있다.
예를 들어, 사용자 기기는 스마트폰, 태플릿 PC, 랩탑 PC 등의 모바일 기기, 스마트 워치, 스마트 글래스 등의 웨어러블 기기, 마이크와 스피커를 구비한 TV, 냉장고, 에어컨, 공기 청정기, 청소기, 세탁기 등의 가전 기기 또는 AI 스피커일 수 있다.
또는, 차량이 사용자 기기가 될 수도 있다. 차량에 마련된 마이크를 통해 사용자 발화가 입력되고 차량에 마련된 통신 모듈을 통해 사용자 발화가 대화 관리 시스템(1) 또는 음성 인식 시스템(2)으로 전송될 수 있다. 또한, 대화 관리 시스템(1)으로부터 피드백이 전송되면, 차량에 마련된 스피커 또는 디스플레이를 제어하거나 차량의 다른 구성요소들을 제어함으로써 인텐트에 대응되는 태스크를 수행할 수 있다.
도 3을 참조하면, 사용자 기기(3)는 통신 모듈(310), 마이크(320), 스피커(330), 디스플레이(340), 입력 장치(350) 및 사용자 기기(3)의 구성요소들을 제어하는 컨트롤러(360)를 포함할 수 있다.
통신 모듈(310)은 외부 장치들과 무선으로 데이터를 주고받는 무선 통신 모듈을 포함할 수 있다. 또한, 외부 장치들과 유선으로 데이터를 주고받는 유선 통신 모듈을 더 포함하는 것도 가능하다.
유선 통신 모듈은 USB 단자 또는 AUX 단자를 통해 연결된 외부 장치와 데이터를 주고 받을 수 있다.
무선 통신 모듈은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 무선 통신 모듈은 와이파이(WiFi, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
뿐만 아니라, 무선 통신 모듈은 외부 장치들과 직접 통신하는 것도 가능하다. 예를 들어, 무선 통신 모듈은 와이파이 다이렉트, 블루투스 (Bluetooth, IEEE 802.15.1 기술 표준), 지그비(ZigBee IEEE 802.15.4 기술 표준) 등을 이용하여 근거리의 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 사용자 단말(3)이 차량으로 구현되는 경우, 통신 모듈(310)은 블루투스 통신을 통해 차량 내부에 위치한 모바일 기기와 통신하여 모바일 기기가 획득하거나 모바일 기기에 저장된 정보(사용자의 영상, 사용자의 음성, 연락처, 일정 등)를 수신할 수 있고, 와이파이나, 4G 또는 5G 통신을 통해 대화 관리 시스템(1) 또는 음성 인식 시스템(2)과 통신하여 사용자 발화를 전달하고 사용자 발화에 대한 분석 결과를 수신할 수도 있다.
마이크(320)에는 사용자 발화가 입력될 수 있다. 사용자 기기(3)가 차량으로 구현되는 경우, 사용자는 운전자일 수도 있고, 동승자일 수도 있다. 마이크(320)는 운전자나 앞좌석 동승자의 음성 명령을 입력 받기 위해 스티어링 휠, 센터페시아, 헤드라이닝 또는 룸 미러 등의 위치에 마련될 수 있다.
또한, 마이크(320)는 두 개 이상 마련되는 것도 가능하다. 이 경우, 제1마이크는 전술한 바와 같이 운전자의 음성 명령을 입력 받기 위한 위치에 마련될 수 있고, 제2마이크는 뒷좌석 동승자의 음성 명령을 입력 받기 위해 뒷좌석 암레스트, B 필라(pillar) 또는 C 필라, 헤드라이닝, 뒷좌석 도어 등 다양한 위치 중 적어도 하나에 마련될 수 있다.
스피커(330)는 대화 관리 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 오디오를 출력할 수 있다. 스피커(330)는 대화 관리 시스템(1)으로부터 전송된 시스템 발화를 출력할 수도 있고, 시스템 응답에 대응되는 컨텐츠 신호를 출력할 수도 있다.
또한, 시스템 응답과 무관하게 음악, 라디오 또는 멀티미디어 컨텐츠의 오디오가 출력될 수도 있고, 내비게이션 기능의 실행 중에 경로 안내를 위한 오디오가 출력될 수도 있다.
디스플레이(340)는 대화 관리 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 정보를 표시할 수 있다. 디스플레이(340)는 스피커(330)를 통해 출력되는 시스템 발화를 텍스트로 표시할 수도 있고, 사용자 발화에 대응되는 태스크의 실행을 위해 복수의 항목에 대한 사용자의 선택이 요구되는 경우에는 복수의 항목을 리스트로 표시할 수도 있다.
또한, 사용자 발화에 대응되는 태스크의 실행을 알리는 메시지를 표시할 수도 있다.
또한, 시스템 응답과 무관하게 멀티미디어 컨텐츠를 출력하는 등 사용자 기기(3)의 다른 기능들을 수행하기 위해 필요한 정보를 표시할 수 있다.
예를 들어, 사용자 기기(3)가 차량으로 구현되는 경우, 디스플레이(340)는 차량의 센터페시아에 마련되는 AVN 디스플레이, 클러스터 디스플레이 또는 헤드업 디스플레이(HUD: Head Up Display)를 포함할 수 있다.
또는, 뒷좌석의 동승자가 볼 수 있도록 앞좌석의 헤드 뒷면에 마련되는 뒷좌석 디스플레이를 포함할 수도 있고, 차량이 다인승 차량인 경우에는 헤드라이닝에 장착된 디스플레이를 포함할 수도 있다.
디스플레이(340)는 차량에 탑승한 사용자가 시청 가능한 위치에 마련되기만 하면 되고, 디스플레이(340)의 개수나 위치에 대해 다른 제한은 두지 않는다.
사용자 기기(3)는 마이크(320) 외에 수동으로 사용자의 명령을 입력 받기 위한 입력 장치(350)도 포함할 수 있다. 입력 장치(350)는 버튼, 죠그셔틀 또는 터치 패드의 형태로 마련될 수 있다. 입력 장치(350)가 터치 패드의 형태로 마련되는 경우에는 디스플레이(340)와 함께 터치 스크린을 구현할 수도 있다.
예를 들어, 사용자 기기(3)가 차량으로 구현되는 경우, 입력 장치(350)는 센터페시아의 AVN(Audio Video Navigation)이 마련된 영역, 기어박스가 마련된 영역 또는 스티어링 휠에 버튼이나 죠그셔틀의 형태로 마련된 입력 장치를 포함할 수 있다.
또한, 동승석에 관한 제어 명령을 입력받기 위해, 각 좌석의 도어에 마련된 입력 장치를 포함할 수도 있고, 앞좌석의 암레스트나 뒷좌석의 암레스트에 마련된 입력 장치를 포함할 수도 있다.
컨트롤러(360)는 후술하는 동작들이 수행될 수 있도록 사용자 기기(3)의 구성요소들을 제어할 수 있다.
사용자 기기(3)가 차량으로 구현되고, 대화 관리 시스템(1)에 음성 인식 모듈(110), 자연어 이해 모듈(120) 및 대화 관리 모듈(130)이 모두 포함된 경우를 예로 들어 설명하면, 도 4에 도시된 바와 같이, 사용자 기기(3)의 마이크(320)를 통해 입력된 사용자 발화는 통신 모듈(310)을 통해 대화 관리 시스템(1)으로 전송될 수 있다.
대화 관리 시스템(1)의 통신 모듈(220)이 사용자 발화를 수신하고, 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 사용자 발화에 대한 분석 결과를 출력하면, 대화 관리 모듈(130)이 사용자 발화에 대한 분석 결과에 기초하여 적절한 시스템 응답을 생성하고, 통신 모듈(220)을 통해 사용자 기기(3)로 시스템 응답을 전송할 수 있다.
또는, 사용자 기기(3)가 차량으로 구현되고, 음성 인식 시스템(2)과 대화 관리 시스템(1)이 별도의 시스템으로 구현되는 경우를 예로 들어 설명하면, 도 5에 도시된 바와 같이, 사용자 기기(3)의 마이크(320)를 통해 입력된 사용자 발화는 통신 모듈(310)을 통해 대화 관리 시스템(1)으로 전송될 수 있다.
대화 관리 시스템(1)은 음성 인식 시스템(2)에 사용자 발화를 전달하고, 음성 인식 시스템(2)으로부터 사용자 발화에 대한 분석 결과(STT및 NLU 결과)를 수신할 수 있다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과에 기초하여 적절한 피드백을 생성하고, 통신 모듈(220)을 통해 사용자 기기(3)로 피드백을 전송할 수 있다.
또는, 사용자 기기(3)가 사용자 발화를 음성 인식 시스템(2)으로 전달하는 것도 가능하다. 이 경우, 음성 인식 시스템(2)은 사용자 발화에 대한 분석 결과를 대화 관리 시스템(1)으로 전달하고, 대화 관리 시스템(1)은 전달된 분석 결과에 대응되는 피드백을 사용자 기기(3)에 바로 전송할 수도 있고, 음성 인식 시스템(2)을 통해 전달할 수도 있다.
전술한 바와 같이, 자연어 이해 모듈(120)은 사용자 발화를 분석하여 도메인 분류, 인텐트 분류 및 슬롯 태깅의 결과를 출력할 수 있다. 슬롯은 사용자 발화에 대응되는 인텐트와 관련된 의미있는 정보를 나타내고, 사용자 발화로부터 추출된 엔티티 또는 파라미터가 슬롯을 채우는데 사용될 수 있다. 파라미터를 이용하여 인텐트에 대한 슬롯을 채우는 것을 슬롯 필링(slot filing)이라 한다.
슬롯은 그 값(Value)이 속하는 타입, 문장 내에서의 역할(Role) 또는 값에 의해 정의될 수 있다. 예를 들어, "서울역에서 부산역으로 가자"의 문장에서 "서울역"과 "부산역"은 타입이 같은 슬롯에 해당하지만, "서울역"은 출발지이고 "부산역"은 도착지라는 점에서 그 역할이 다르다.
한편, 대화 관리 모듈(130)은 자연어 이해 모듈(120)에서 출력된 결과에 기초하여 사용자 발화에 대응되는 피드백을 생성할 수 있다. 예를 들어, 사용자 발화에 대응되는 인텐트가 태스크 실행의 요청인 경우, 대화 관리 모듈(130)은 해당 태스크를 실행하기 위한 피드백을 생성할 수 있다.
이를 위해, 대화 관리 모듈(130)은 태스크의 실행에 관련된 적어도 하나의 파라미터가 사용자 발화에 포함되어 있는지 여부를 판단할 수 있다.
태스크의 실행에 관련된 적어도 하나의 파라미터는 필수 파라미터와 선택 파라미터를 포함할 수 있다. 필수 파라미터는 태스크의 실행을 위해 반드시 필요한 정보이고, 선택 파라미터는 태스크의 실행을 위해 반드시 필요하지는 않지만 사용자 발화에 포함되었을 때 참고할 수 있는 정보이다.
선택 파라미터가 사용자 발화에 포함되지 않은 경우에는 디폴트 값을 적용할 수 있다. 그러나, 필수 파라미터가 사용자 발화에 포함되지 않은 경우에는 태스크의 실행이 불가능하므로, 사용자로부터 필수 파라미터를 획득하기 위한 대화를 추가적으로 주고 받아야 한다.
그러나, 일 실시예에 따르면, 사용자 기기(3)의 디스플레이(340)에 표시된 화면으로부터 필수 파라미터를 획득함으로써, 사용자와의 추가적인 대화 없이도 사용자가 원하는 태스크를 실행할 수 있다. 이와 관련된 구체적인 동작을 설명한다.
또한, 선택 파라미터가 사용자 발화에 포함되지 않은 경우에 있어서도 사용자 기기(3)의 디스플레이(340)에 표시된 화면으로부터 선택 파라미터를 획득하고, 디폴트 값 대신에 획득된 선택 파라미터를 적용하여 태스크를 실행할 수 있다.
도 6은 일 실시예에 따른 차량의 동작을 나타내는 다른 블록도이고, 도 7은 일 실시예에 따른 사용자 기기와 대화 관리 시스템 사이에 주고 받는 정보를 나타내는 다른 도면이다.
후술하는 실시예에서는 구체적인 설명을 위해, 차량(3)을 사용자 기기의 예로 들어 설명하기로 한다.
도 6을 참조하면, 일 실시예에 따른 차량(3)은 전술한 구성들에 더하여 문자 인식기(370)를 더 포함할 수 있다.
문자 인식기(370)는 이미지에 포함된 텍스트를 인식할 수 있다. 예를 들어, 문자 인식기(370)는 광학 문자 인식(Optical Character Recognition: OCR) 기술을 채용할 수 있다.
컨트롤러(360)는 사용자 발화가 마이크(320)에 입력된 시점에 디스플레이(340)에 표시된 화면을 스캔하여 스캔 이미지로 저장할 수 있다.
또한, 디스플레이(340)에 표시된 화면이 바뀌는 경우, 사용자 발화가 마이크(320)에 입력된 시점으로부터 대화 관리 시스템(1)이 사용자 기기(3)에 문자 인식 결과를 요청한 시점까지 주기적으로 화면을 스캔하거나, 화면이 바뀔 때 마다 화면을 스캔할 수 있다.
문자 인식기(370)는 저장된 스캔 이미지로부터 텍스트를 인식할 수 있다.
또한, 문자 인식기(370)에서 텍스트 인식뿐만 아니라 이미지 인식을 수행하는 것도 가능하다.
일 실시예에 따르면, 이와 같은 방식으로 화면에 표시된 텍스트나 이미지를 인식함으로써, 디스플레이(340)에 표시되는 화면이 차량(3) 자체에서 제공하는 화면이 아닌 써드 파티(third party)에서 제공하는 화면이더라도, 해당 화면으로부터 필요한 정보를 얻을 수 있다.
컨트롤러(360)는 통신 모듈(310)을 통해 화면 정보를 대화 관리 시스템(3)으로 전송할 수 있다. 화면 정보는 디스플레이(340)에 표시된 화면에 포함된 정보로서, 문자 인식기(370)가 인식한 텍스트를 포함할 수 있다. 또한, 문자 인식기(370)가 이미지를 인식한 경우에는 인식된 이미지 정보도 포함할 수 있다.
일 예로, 컨트롤러(360)는 도 7에 도시된 바와 같이, 사용자 발화와 화면 정보를 대화 관리 시스템(3)에 함께 전송할 수 있다. 이 경우, 전송되는 화면 정보는 사용자 발화가 마이크(320)에 입력된 시점에 표시된 화면의 정보일 수 있다.
다른 예로, 컨트롤러(360)는 사용자 발화가 입력되면, 사용자 발화를 먼저 대화 관리 시스템(3)에 전송하고, 이후에 대화 관리 시스템(3)으로부터 화면 정보에 대한 요청이 수신될 때 화면 정보를 대화 관리 시스템(3)에 전송하는 것도 가능하다.
도 8은 일 실시예에 따른 대화 관리 방법의 순서도이다. 이하, 대화 관리 방법과 대화 관리 시스템(1)의 실시예를 함께 설명하기로 한다.
일 실시예에 따른 대화 관리 방법은 대화 관리 시스템(1)에 의해 수행될 수 있다. 따라서, 전술한 대화 관리 시스템(1)의 실시예에 관한 설명은 별도의 언급이 없더라도 대화 관리 방법의 실시예에도 적용될 수 있고, 반대로 후술하는 대화 관리 방법에 관한 설명 역시 별도의 언급이 없더라도 대화 관리 시스템(1)의 실시예에도 적용될 수 있다.
도 8을 참조하면, 일 실시예에 따른 대화 관리 방법은 사용자 기기(3)로부터 사용자 발화를 수신한다(1100).
대화 관리 시스템(1)의 통신 모듈(220)이 사용자 발화를 수신할 수 있다. 수신되는 사용자 발화는 음성 신호일 수도 있고 음성 신호가 변환된 텍스트일 수도 있다. 사용자 기기(3)에 음성 인식 모듈이 마련되어 있는지 여부에 따라 대화 관리 시스템(1)에 전송되는 사용자 발화의 형태가 달라질 수 있다.
대화 관리 시스템(1)은 수신된 사용자 발화를 분석한다(1200).
사용자 발화가 음성 신호의 형태로 수신된 경우에는, 대화 관리 시스템(1)의 음성 인식 모듈(110)이 음성 신호를 텍스트로 변환할 수 있다.
자연어 이해 모듈(120)은 텍스트로 변환된 사용자 발화에 자연어 이해 기술을 적용하여 도메인 분류, 인텐트 분류 및 슬롯 태깅을 수행할 수 있다.
예를 들어, 사용자 발화가 "무료도로로 길 안내해줘"인 경우에, 도메인은 [내비게이션], 인텐트는 [길 안내]로 분류될 수 있고, [무료 도로]는 도로 타입을 나타내는 슬롯에 태깅될 수 있다.
다른 예로, 사용자 발화가 "열선 시트 2단 올려줘"인 경우에, 도메인은 [차량 제어], 인텐트는 [열선 시트 설정]으로 분류될 수 있고, [2단]은 열선 세기(Degree)를 나타내는 슬롯에 태깅될 수 있다.
한편, 대화 관리 시스템(1)이 음성 인식 모듈(110)이나 자연어 이해 모듈(120)을 포함하지 않는 경우에는, 사용자 발화를 분석하는 단계가 생략될 수 있다. 이 경우, 사용자 발화에 대한 분석 결과는 음성 인식 시스템(2)으로부터 제공받을 수 있다.
대화 관리 모듈(130)은 사용자 발화로부터 필수 파라미터가 모두 획득되었는지 여부를 판단한다(1300).
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과, 즉 도메인 분류, 인텐트 분류 및 슬롯 태깅 결과에 기초하여, 필수 파라미터가 모두 획득되었는지 여부를 판단할 수 있다.
전술한 바와 같이, 필수 파라미터는 인텐트에 대응되는 태스크를 실행하기 위해 필요한 파라미터이다. 예를 들어, 인텐트가 [길 안내]인 경우에 필수 파라미터는 목적지가 되고, 무료 도로, 고속도로, 최단거리 등의 도로 타입은 선택 파라미터가 될 수 있다.
인텐트에 대한 슬롯은 필수 파라미터 또는 선택 파라미터에 의해 채워질 수 있다. 전술한 바와 같이, 선택 파라미터에 대응되는 슬롯이 채워지지 않더라도 디폴트 값으로 태스크를 실행할 수 있고, 필수 파라미터에 대응되는 슬롯이 채워지지 않으면 태스크의 실행이 불가능하다. 이하, 후술하는 실시예에서는 설명의 편의를 위해, 선택 파라미터에 대응되는 슬롯은 선택 슬롯으로, 필수 파라미터에 대응되는 슬롯은 필수 슬롯으로 지칭하기로 한다.
따라서, 대화 관리 모듈(130)은 필수 슬롯이 모두 채워졌는지 여부, 즉 사용자 발화로부터 필수 파라미터가 모두 획득되었는지 여부를 판단한다.
필수 파라미터가 모두 획득되지 않은 경우(1400의 아니오), 사용자 기기(3)의 화면 정보를 분석할 수 있다(1500).
전술한 도 7에 도시된 바와 같이 사용자 기기(3)의 화면 정보가 사용자 발화와 함께 전송된 경우에는, 사용자 발화와 함께 전송된 화면 정보를 분석할 수 있다.
또는, 사용자 기기(3)로부터 사용자 발화만 전송된 경우에는, 대화 관리 시스템(1)이 사용자 기기(3)에 화면 정보를 요청할 수 있다.
한편, 전술한 실시예에서는 사용자 기기(3)에 문자 인식기(370)가 포함된 경우를 예로 들었으나, 실시예에 따라 문자 인식기가 대화 관리 시스템(1)에 포함되는 것도 가능하다. 이 경우, 사용자 기기(3)는 디스플레이(340)에 표시된 화면을 스캔한 스캔 이미지를 대화 관리 시스템(1)에 전송할 수 있고, 대화 관리 시스템(1)은 문자 인식기를 이용하여, 전송된 스캔 이미지로부터 텍스트를 획득할 수 있다.
화면 정보의 분석은 자연어 이해 모듈(120)에 의해 수행될 수 있다. 자연어 이해 모듈(120)은 화면 정보에 포함된 텍스트에 대해 슬롯 태깅을 수행할 수 있다. 또한, 도메인 분류나 인텐트 분류를 수행하는 것도 가능하다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 통합한다(1600).
대화 관리 모듈(130)은 화면 정보에 대한 분석 결과로부터 필수 파라미터를 획득할 수 있고, 획득된 필수 파라미터를 이용하여 사용자 발화에 대한 분석 결과 중 비어 있는 필수 슬롯을 채울 수 있다.
또한, 경우에 따라 화면 정보에 대한 분석 결과로부터 선택 파라미터를 획득하는 것도 가능하며, 획득된 선택 파라미터를 이용하여 사용자 발화에 대한 분석 결과 중 비어 있는 선택 슬롯을 채울 수 있다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 통합한 결과에 기초하여 사용자 발화에 대한 피드백을 생성할 수 있다(1700).
화면 정보로부터 필수 파라미터가 획득된 경우에는, 인텐트에 대응되는 태스크를 실행할 수 있다. 따라서, 대화 관리 모듈(130)은 해당 태스크를 실행하기 위한 신호와 해당 태스크의 실행을 알리는 시스템 발화를 피드백으로서 생성할 수 있다.
화면 정보로부터 필수 파라미터가 획득되지 않은 경우에는, 인텐트에 대응되는 태스크를 실행할 수 없다. 따라서, 대화 관리 모듈(130)은 사용자로부터 필수 파라미터를 획득하기 위한 시스템 발화를 피드백으로서 생성할 수 있다.
한편, 사용자 발화로부터 필수 파라미터가 모두 획득된 경우에는(1400의 예), 화면 정보에 대한 분석 없이 피드백을 생성할 수 있다(1700).
이하, 전술한 대화 관리 시스템(1) 및 대화 관리 방법에 관한 구체적인 예시들을 설명한다
도 9는 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 예시를 나타낸 도면이고, 도 10은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
당해 예시에서는, 도 9에 도시된 바와 같이, 사용자가 차량(3)의 마이크(320)에 "전화 걸어줘"라는 사용자 발화를 입력한 경우를 예로 들어 설명한다.
사용자 발화가 입력되면, 차량(3)은 통신 모듈(310)을 통해 대화 관리 시스템(1)으로 사용자 발화를 전송할 수 있다.
대화 관리 시스템(1)은 차량(3)으로부터 전송된 사용자 발화를 분석하여 도메인과 인텐트를 분류하고 슬롯 태깅을 수행할 수 있다. 예시 발화인 "전화 걸어줘"에 대한 분석 결과는 도 10에 도시된 바와 같다.
구체적으로, 음성 인식 모듈(110)이 사용자 발화를 텍스트로 변환하고, 자연어 이해 모듈(120)이 텍스트로 변환된 사용자 발화에 대해 도메인 분류, 인텐트 분류 및 슬롯 태깅을 수행할 수 있다.
"전화 걸어줘"에 대한 도메인은 [전화]로, 인텐트는 [전화 걸기]로 분류될 수 있고, 사용자 발화로부터 추출되는 슬롯은 없는 것으로 판단될 수 있다.
대화 관리 모듈(130)은 자연어 이해 모듈(120)로부터 분석 결과를 전달 받을 수 있다. 대화 관리 모듈(130)은 전달된 분석 결과에 기초하여, 태스크 실행을 위해 필요한 필수 파라미터가 획득되었는지 여부를 판단할 수 있다. 전화 걸기를 실행하기 위한 필수 파라미터는 수신자에 해당한다. 그러나, 해당 예시의 경우 사용자 발화로부터 수신자에 대한 정보가 획득되지 않았다.
따라서, 대화 관리 모듈(130)은 필수 파라미터를 획득하기 위해, 차량(3)의 화면 정보를 분석할 수 있다. 전술한 바와 같이, 차량(3)의 화면 정보가 사용자 발화와 함께 이미 전송된 경우에는, 전송된 화면 정보를 분석할 수 있고, 화면 정보가 전송되지 않은 경우에는 대화 관리 시스템(1)이 차량(3)에 화면 정보를 요청하여 수신할 수 있다.
다시 도 9를 참조하면, 사용자 발화가 입력될 당시의 차량(3)의 디스플레이(340)에는 발신자 문재민으로부터 전송된 문자 메시지가 표시되어 있다. 그 외에도 디스플레이(340)에는 다양한 텍스트가 표시되어 있는바, 컨트롤러(360)가 디스플레이(340)에 표시된 화면을 스캔하고 스캔 이미지를 대화 관리 시스템(1)으로 전송하거나, 문자 인식기(370)를 이용하여 인식된 텍스트를 대화 관리 시스템(1)으로 전송할 수 있다.
대화 관리 시스템(1)의 자연어 이해 모듈(120)은 차량(3)으로부터 전송된 화면 정보를 분석할 수 있다. 도 10을 참조하면, 화면 정보에 포함된 다양한 텍스트에 엔티티 태깅을 수행하여 각각의 엔티티 타입으로 분류할 수 있다.
예를 들어, 화면 정보에 포함된 텍스트 중 "10:26AM"은 시간과 분으로 분류될 수 있고, "Feb. 19"는 월과 일로 분류될 수 있으며, "문재민"은 이름으로 분류될 수 있고, "서울역"은 POI로 분류될 수 있다.
도 11은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이고, 도 12는 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 예시를 나타내는 도면이다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 통합할 수 있다. 도 11을 참조하면, 전화 걸기 태스크의 실행을 위한 필수 파라미터는 수신자이고, 화면 정보의 분석 결과에서 수신자에 해당하는 정보는 이름으로 분류된 "문재민"이다.
따라서, 대화 관리 모듈(130)은 "문재민"을 이용하여 전화 걸기 태스크의 실행을 위한 필수 슬롯을 채울 수 있다.
한편, 사용자 기기(3)로부터 제공된 화면 정보에 이미지 정보가 포함된 경우에는, 대화 관리 모듈(130)이 슬롯 필링을 수행함에 있어서 이미지 정보를 함께 사용하는 것도 가능하다. 예를 들어, 화면 정보에 수신자가 될 수 있는 텍스트가 복수개 존재하는 경우, 텍스트 주변의 이미지 정보에 기초하여 슬롯 필링에 사용될 텍스트를 선택할 수 있다. 구체적으로, 화면 정보에 수신자가 될 수 있는 텍스트가 복수 개 존재하고, 이들 중 하나의 텍스트 옆에 도 9에 도시된 바와 같이 메시지를 나타내는 이미지가 표시된 경우, 해당 이미지 옆에 표시된 텍스트를 수신자로 선택할 수 있다. 또는, 화면 내에서의 텍스트의 위치에 기초하여 선택하는 것도 가능하다.
대화 관리 모듈(130)은 태스크의 실행을 위한 피드백을 생성할 수 있다. 생성되는 피드백에는 태스크의 실행을 알리는 시스템 응답과, 디스플레이(340)에 표시된 화면의 정보가 활용되었음을 알리는 신호가 포함될 수 있다.
생성된 피드백은 통신 모듈(220)을 통해 사용자 기기(3)에 전송될 수 있다. 사용자 기기(3)의 컨트롤러(360)는 전송된 피드백에 기초하여 디스플레이(340) 또는 스피커(330)를 제어할 수 있다.
예를 들어, 도 12에 도시된 바와 같이, "문재민님께 전화할게요"와 같은 시스템 응답을 스피커(330)를 통해 출력할 수 있고, 이와 함께 수신자가 "문재민"이라는 정보는 디스플레이(340)에 표시된 화면으로부터 획득되었음을 나타내기 위해 디스플레이(340)에 "문재민"을 강조하여 표시할 수 있다. "문재민"을 하이라이트 처리할 수도 있고, 밑줄을 칠 수도 있고, 굵은 글씨로 표시할 수도 있고, 텍스트의 색상을 다르게 표시할 수도 있고, "문재민"을 원이나 사각형 등의 도형 안에 표시할 수도 있다. 슬롯 필링에 사용된 텍스트를 강조하는 방법에 대해서는 제한을 두지 않는다.
도 13은 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 다른 예시를 나타낸 도면이고, 도 14는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
당해 예시에서는, 도 13에 도시된 바와 같이, 사용자가 사용자 기기(3)의 마이크(320)에 "길 안내 해줘"라는 사용자 발화를 입력한 경우를 예로 들어 설명한다.
사용자 발화가 입력되면, 사용자 기기(3)는 통신 모듈(310)을 통해 대화 관리 시스템(1)으로 사용자 발화를 전송할 수 있다.
대화 관리 시스템(1)은 사용자 기기(3)로부터 전송된 사용자 발화를 분석하여 도메인과 인텐트를 분류하고 슬롯 태깅을 수행할 수 있다. 예시 발화인 "길 안내 해줘"에 대한 분석 결과는 도 14에 도시된 바와 같다.
구체적으로, 음성 인식 모듈(110)이 사용자 발화를 텍스트로 변환하고, 자연어 이해 모듈(120)이 텍스트로 변환된 사용자 발화에 대해 도메인 분류, 인텐트 분류 및 슬롯 태깅을 수행할 수 있다.
"길 안내 해줘"에 대한 도메인은 [내비게이션]으로, 인텐트는 [길 안내]로 분류될 수 있고, 사용자 발화로부터 추출되는 슬롯은 없는 것으로 판단될 수 있다.
대화 관리 모듈(130)은 자연어 이해 모듈(120)로부터 분석 결과를 전달 받을 수 있다. 대화 관리 모듈(130)은 전달된 분석 결과에 기초하여, 태스크 실행을 위해 필요한 필수 파라미터가 획득되었는지 여부를 판단할 수 있다. 길 안내를 실행하기 위한 필수 파라미터는 목적지에 해당한다. 그러나, 해당 예시의 경우 사용자 발화로부터 목적지에 대한 정보가 획득되지 않았다.
따라서, 대화 관리 모듈(130)은 필수 파라미터를 획득하기 위해, 사용자 기기(3)의 화면 정보를 분석할 수 있다. 전술한 바와 같이, 사용자 기기(3)의 화면 정보가 사용자 발화와 함께 이미 전송된 경우에는, 전송된 화면 정보를 분석할 수 있고, 화면 정보가 전송되지 않은 경우에는 대화 관리 시스템(1)이 사용자 기기(3)에 화면 정보를 요청하여 수신할 수 있다.
다시 도 13을 참조하면, 사용자 발화가 입력될 당시의 사용자 기기(3)의 디스플레이(340)에는 콜택시 팝업 메시지가 표시되어 있다. 그 외에도 디스플레이(340)에는 다양한 텍스트가 표시되어 있는바, 컨트롤러(360)가 디스플레이(340)에 표시된 화면을 스캔하고 스캔 이미지를 대화 관리 시스템(1)으로 전송하거나, 문자 인식기(370)를 이용하여 인식된 텍스트를 대화 관리 시스템(1)으로 전송할 수 있다.
대화 관리 시스템(1)의 자연어 이해 모듈(120)은 사용자 기기(3)로부터 전송된 화면 정보를 분석할 수 있다. 도 14를 참조하면, 화면 정보에 포함된 다양한 텍스트에 엔티티 태깅을 수행하여 각각의 엔티티 타입으로 분류할 수 있다.
예를 들어, 화면 정보에 포함된 텍스트 중 "Jessica"는 이름으로 분류될 수 있고, "8:30"는 시간과 분으로 분류될 수 있으며, "판교역 1번 출구"는 POI로 분류될 수 있다.
도 15는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이고, 도 16은 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 다른 예시를 나타내는 도면이다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 통합할 수 있다. 도 15를 참조하면, 길 안내 태스크의 실행을 위한 필수 파라미터는 목적지이고, 화면 정보의 분석 결과에서 목적지에 해당하는 정보는 POI로 분류된 "판교역 1번 출구"이다.
따라서, 대화 관리 모듈(130)은 "판교역 1번 출구"를 이용하여 길 안내 태스크의 실행을 위한 필수 슬롯을 채울 수 있다.
대화 관리 모듈(130)은 태스크의 실행을 위한 피드백을 생성할 수 있다. 생성되는 피드백에는 태스크의 실행을 알리는 시스템 응답과, 디스플레이(340)에 표시된 화면의 정보가 활용되었음을 알리는 신호가 포함될 수 있다.
생성된 피드백은 통신 모듈(220)을 통해 사용자 기기(3)에 전송될 수 있다. 사용자 기기(3)의 컨트롤러(360)는 전송된 피드백에 기초하여 디스플레이(340) 또는 스피커(330)를 제어할 수 있다.
예를 들어, 도 16에 도시된 바와 같이, "판교역 1번 출구로 안내를 시작합니다"와 같은 시스템 응답을 스피커(330)를 통해 출력할 수 있고, 이와 함께 목적지가 "판교역 1번 출구"라는 정보는 디스플레이(340)에 표시된 화면으로부터 획득되었음을 나타내기 위해 디스플레이(340)에 "판교역 1번 출구"를 강조하여 표시할 수 있다.
도 17은 일 실시예에 따른 사용자 기기에 입력되는 사용자 발화와 사용자 기기에 표시되는 화면의 또 다른 예시를 나타낸 도면이고, 도 18은 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 나타낸 도면이다.
당해 예시에서는, 도 17에 도시된 바와 같이, 사용자가 사용자 기기(3)의 마이크(320)에 "길 안내 해줘"라는 사용자 발화를 입력한 경우를 예로 들어 설명한다.
사용자 발화가 입력되면, 사용자 기기(3)는 통신 모듈(310)을 통해 대화 관리 시스템(1)으로 사용자 발화를 전송할 수 있다.
대화 관리 시스템(1)은 사용자 기기(3)로부터 전송된 사용자 발화를 분석하여 도메인과 인텐트를 분류하고 슬롯 태깅을 수행할 수 있다. 예시 발화인 "길 안내 해줘"에 대한 분석 결과는 도 18에 도시된 바와 같다.
"길 안내 해줘"에 대한 도메인은 [내비게이션]으로, 인텐트는 [길 안내]로 분류될 수 있고, 사용자 발화로부터 추출되는 슬롯은 없는 것으로 판단될 수 있다.
대화 관리 모듈(130)은 자연어 이해 모듈(120)로부터 분석 결과를 전달 받을 수 있다. 대화 관리 모듈(130)은 전달된 분석 결과에 기초하여, 태스크 실행을 위해 필요한 필수 파라미터가 획득되었는지 여부를 판단할 수 있다. 길 안내를 실행하기 위한 필수 파라미터는 목적지에 해당한다. 그러나, 해당 예시의 경우 사용자 발화로부터 목적지에 대한 정보가 획득되지 않았다.
따라서, 대화 관리 모듈(130)은 필수 파라미터를 획득하기 위해, 사용자 기기(3)의 화면 정보를 분석할 수 있다. 다시 도 17을 참조하면, 사용자 발화가 입력될 당시의 사용자 기기(3)의 디스플레이(340)에는 내비게이션 화면이 표시되어 있다. 그 외에도 디스플레이(340)에는 다양한 텍스트가 표시되어 있는바, 컨트롤러(360)가 디스플레이(340)에 표시된 화면을 스캔하여 스캔 이미지를 생성하고, 스캔 이미지를 대화 관리 시스템(1)으로 전송하거나, 문자 인식기(370)를 이용하여 인식된 텍스트를 대화 관리 시스템(1)으로 전송할 수 있다.
대화 관리 시스템(1)의 자연어 이해 모듈(120)은 사용자 기기(3)로부터 전송된 화면 정보를 분석할 수 있다. 도 18을 참조하면, 화면 정보에 포함된 다양한 텍스트에 엔티티 태깅을 수행하여 각각의 엔티티 타입으로 분류할 수 있다.
예를 들어, 화면 정보에 포함된 텍스트 중 "김포국제공항 국내선"은 POI로 분류될 수 있고, "미세먼지"는 날씨로 분류될 수 있으며, "김포시 양촌읍 황금로 166번길"은 주소로 분류될 수 있고, "인천 오류왕길동 검단오류역 인천 2호선"역시 주소로 분류될 수 있다.
도 19는 일 실시예에 따른 대화 관리 시스템에서 수행되는 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과의 통합 결과를 나타낸 도면이고, 도 20은 일 실시예에 따른 사용자 기기를 통해 화면 정보의 활용을 표시하는 또 다른 예시를 나타내는 도면이다.
대화 관리 모듈(130)은 사용자 발화에 대한 분석 결과와 화면 정보에 대한 분석 결과를 통합할 수 있다. 도 19를 참조하면, 길 안내 태스크의 실행을 위한 필수 파라미터는 목적지이고, 화면 정보의 분석 결과에서 목적지에 해당하는 정보는 POI로 분류된 "김포국제공항 국내선"과, 주소로 분류된 "김포시 양촌읍 황금로 166번길" 및 "인천 오류왕길동 검단오류역 인천 2호선"이다.
따라서, 대화 관리 모듈(130)은 "김포국제공항 국내선", "김포시 양촌읍 황금로 166번길" 및 "인천 오류왕길동 검단오류역 인천 2호선" 중 하나를 이용하여 길 안내 태스크의 실행을 위한 필수 슬롯을 채울 수 있다.
대화 관리 모듈(130)은 태스크의 실행을 위한 피드백을 생성할 수 있다. 생성되는 피드백에는 화면 정보로부터 획득된 3개의 후보 파라미터 중 하나의 선택을 유도하기 위한 시스템 응답과, 디스플레이(340)에 표시된 화면의 정보가 활용되었음을 알리는 신호가 포함될 수 있다.
생성된 피드백은 통신 모듈(220)을 통해 사용자 기기(3)에 전송될 수 있다. 사용자 기기(3)의 컨트롤러(360)는 전송된 피드백에 기초하여 디스플레이(340) 또는 스피커(330)를 제어할 수 있다.
예를 들어, 도 20에 도시된 바와 같이, "김포국제공항 국내선, 김포시 양촌읍 황금로 166번길 및 인천 오류왕길동 검단오류역 인천 2호선 중 몇 번째로 안내할까요?"와 같은 시스템 응답을 스피커(330)를 통해 출력하거나 디스플레이(340)에 팝업으로 표시할 수 있고, 이와 함께 3개의 후보 파라미터가 디스플레이(340)에 표시된 화면으로부터 획득되었음을 나타내기 위해 디스플레이(340)에 "김포국제공항 국내선", "김포시 양촌읍 황금로 166번길" 및 "인천 오류왕길동 검단오류역 인천 2호선"를 강조하여 표시할 수 있다.
또는, 후보 파라미터들 중 하나를 대화 관리 모듈(130)이 선택하여 사용자에게 추천해주는 것도 가능하다. 예를 들어, 대화 관리 모듈(130)은 사용자의 길 안내 이력에 기초하여 후보 파라미터들 중 하나를 선택할 수 있다. 이 경우, 후보 파라미터들 중 최근 길 안내 이력에 포함된 파라미터 또는 길 안내 빈도수가 가장 높은 파라미터를 먼저 추천해줄 수 있다.
또는, 화면 내에서의 텍스트의 위치나 텍스트 주변의 이미지에 기초하여 후보 파라미터 중 하나를 추천하는 것도 가능하다.
지금까지 설명한 대화 관리 시스템 및 대화 관리 방법에 의하면, 사용자 발화에 필수 파라미터가 포함되지 않은 경우라도 사용자 기기에 표시된 화면 정보로부터 이를 획득할 수 있다. 따라서, 추가 발화로 인한 사용자의 불편을 방지할 수 있고, 음성 인식의 사용성을 더 향상시킬 수 있다.
또한, 사용자 기기로부터 화면 정보를 획득함에 있어서, 화면 스캔 및 문자 인식을 이용함으로써 써드 파티에서 제공된 정보도 대화 관리 시스템에서 활용할 수 있게 된다.
한편, 전술한 대화 관리 방법은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때 개시된 실시예들의 동작을 수행할 수 있다.
기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있고, 여기서 기록매체는 비일시적으로 데이터를 저장하는 기록매체(Non-transitory computer-readable medium)이다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
110: 음성 인식 모듈
120: 자연어 이해 모듈
130: 대화 관리 모듈
1: 대화 관리 시스템
2: 음성 인식 시스템
3: 사용자 단말
210, 220, 310: 통신 모듈
320: 마이크
330: 스피커
340: 디스플레이
350: 입력 장치
360: 컨트롤러
370: 문자 인식기

Claims (21)

  1. 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 획득하는 단계;
    상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하는 단계;
    상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하는 단계;
    상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하는 단계; 및
    상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성하는 단계;를 포함하는 대화 관리 방법.
  2. 제 1 항에 있어서,
    상기 화면 정보를 분석하는 단계는,
    상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류하는 단계;를 포함하는 대화 관리 방법.
  3. 제 1 항에 있어서,
    상기 통합하는 단계는,
    상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하는 단계; 및
    상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행하는 단계;를 포함하는 대화 관리 방법.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 파라미터는,
    상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함하는 대화 관리 방법.
  5. 제 1 항에 있어서,
    상기 화면 정보는,
    상기 사용자 기기에 표시된 화면을 스캔하여 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함하는 대화 관리 방법.
  6. 제 1 항에 있어서,
    상기 화면 정보를 분석하는 단계는,
    상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득하는 단계를 더 포함하는 대화 관리 방법.
  7. 제 3 항에 있어서,
    상기 피드백을 생성하는 단계는,
    상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성하는 것을 포함하는 대화 관리 방법.
  8. 사용자 발화 또는 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 수신하는 통신 모듈; 및
    적어도 하나의 프로세서;를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하고,
    상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하고,
    상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하고,
    상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성하는 대화 관리 시스템.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류하는 대화 관리 시스템.
  10. 제 8 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하고, 상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행하는 대화 관리 시스템.
  11. 제 8항에 있어서,
    상기 적어도 하나의 파라미터는,
    상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함하는 대화 관리 시스템.
  12. 제 8 항에 있어서,
    상기 화면 정보는,
    상기 사용자 기기에 표시된 화면을 스캔하여 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함하는 대화 관리 시스템.
  13. 제 8 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득하는 대화 관리 시스템.
  14. 제 10 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성하는 대화 관리 시스템.
  15. 대화 관리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 있어서,
    상기 대화 관리 방법은,
    사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 획득ㅊ하는 단계;
    상기 인텐트 분류 결과에 대응되는 태스크를 실행하는데 사용되는 적어도 하나의 파라미터가 획득되었는지 여부를 판단하는 단계;
    상기 적어도 하나의 파라미터가 획득되지 않은 경우, 사용자 기기에 표시된 화면 정보를 분석하는 단계;
    상기 화면 정보의 분석 결과와, 상기 사용자 발화에 대한 인텐트 분류 및 슬롯 태깅 결과를 통합하는 단계; 및
    상기 통합된 결과에 기초하여 상기 사용자 발화에 대한 피드백을 생성하는 단계;를 포함하는 기록 매체.
  16. 제 15 항에 있어서,
    상기 화면 정보를 분석하는 단계는,
    상기 화면 정보에 포함된 텍스트에 대해 엔티티 태깅(entity tagging)을 수행하여 상기 텍스트의 타입을 분류하는 단계;를 포함하는 기록 매체.
  17. 제 15 항에 있어서,
    상기 통합하는 단계는,
    상기 화면 정보의 분석 결과로부터 상기 적어도 하나의 파라미터를 획득하는 단계; 및
    상기 획득된 적어도 하나의 파라미터를 이용하여, 상기 분류된 인텐트에 대한 슬롯 필링을 수행하는 단계;를 포함하는 기록 매체.
  18. 제 15 항에 있어서,
    상기 적어도 하나의 파라미터는,
    상기 태스크를 실행하는데 사용되는 필수 파라미터를 포함하는 기록 매체.
  19. 제 15 항에 있어서,
    상기 화면 정보는,
    상기 사용자 기기에 표시된 화면을 스캔하여 스캔 이미지를 생성하고, 상기 생성된 스캔 이미지에 문자 인식을 수행하여 획득되는 텍스트를 포함하는 기록 매체.
  20. 제 15 항에 있어서,
    상기 화면 정보를 분석하는 단계는,
    상기 화면 정보에 문자 인식을 수행하여 상기 텍스트를 획득하는 단계를 더 포함하는 기록 매체.
  21. 제 17 항에 있어서,
    상기 피드백을 생성하는 단계는,
    상기 화면 정보에 포함된 텍스트 중 상기 슬롯 필링에 사용된 파라미터에 대응되는 텍스트를 나타내기 위한 신호를 생성하는 것을 포함하는 기록 매체.
KR1020220133510A 2022-10-17 2022-10-17 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체 KR20240053428A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220133510A KR20240053428A (ko) 2022-10-17 2022-10-17 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체
US18/227,629 US20240127810A1 (en) 2022-10-17 2023-07-28 Dialogue Management Method, Dialogue Management System, And Computer-Readable Recording Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220133510A KR20240053428A (ko) 2022-10-17 2022-10-17 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체

Publications (1)

Publication Number Publication Date
KR20240053428A true KR20240053428A (ko) 2024-04-24

Family

ID=90626827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220133510A KR20240053428A (ko) 2022-10-17 2022-10-17 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체

Country Status (2)

Country Link
US (1) US20240127810A1 (ko)
KR (1) KR20240053428A (ko)

Also Published As

Publication number Publication date
US20240127810A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
US10462568B2 (en) Terminal and vehicle control method of mobile terminal using machine learning
JP5234160B2 (ja) 車両用装置および情報表示システム
KR102249392B1 (ko) 사용자 맞춤형 서비스를 위한 차량 기기 제어 장치 및 방법
US20190221208A1 (en) Method, user interface, and device for audio-based emoji input
Husnjak et al. Possibilities of using speech recognition systems of smart terminal devices in traffic environment
KR20200016636A (ko) 사용자 발화에 응답하여 통화를 포함하는 태스크를 수행하는 전자 장치 및 그 동작 방법
US20200286479A1 (en) Agent device, method for controlling agent device, and storage medium
CN101243391A (zh) 介绍交互模式与应用功能的方法
KR20190037470A (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20210066651A (ko) 전자 장치 및 이의 제어 방법
JP2018141742A (ja) ナビゲーション装置、ナビゲーション方法、及びナビゲーション用プログラム
US11996099B2 (en) Dialogue system, vehicle, and method of controlling dialogue system
KR20240053428A (ko) 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체
JP2003140690A (ja) 情報システム、電子機器、プログラム
KR102371513B1 (ko) 대화 시스템 및 대화 처리 방법
KR20230135396A (ko) 대화 관리 방법, 사용자 단말 및 컴퓨터로 판독 가능한 기록 매체
KR20210098250A (ko) 전자 장치 및 이의 제어 방법
US11955123B2 (en) Speech recognition system and method of controlling the same
JP2019212168A (ja) 音声認識システムおよび情報処理装置
US20230318727A1 (en) Vehicle and method of controlling the same
US11355114B2 (en) Agent apparatus, agent apparatus control method, and storage medium
US20230260511A1 (en) Vehicle and control method thereof
KR102441066B1 (ko) 차량의 음성생성 시스템 및 방법
KR20230153854A (ko) 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법
KR20230131004A (ko) 사용자 단말, 대화 관리 시스템, 사용자 단말의 제어 방법 및 대화 관리 방법