KR20200024511A - 대화 에이전트의 동작 방법 및 그 장치 - Google Patents

대화 에이전트의 동작 방법 및 그 장치 Download PDF

Info

Publication number
KR20200024511A
KR20200024511A KR1020180101285A KR20180101285A KR20200024511A KR 20200024511 A KR20200024511 A KR 20200024511A KR 1020180101285 A KR1020180101285 A KR 1020180101285A KR 20180101285 A KR20180101285 A KR 20180101285A KR 20200024511 A KR20200024511 A KR 20200024511A
Authority
KR
South Korea
Prior art keywords
satisfied
items
user
speech
service
Prior art date
Application number
KR1020180101285A
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 KR1020180101285A priority Critical patent/KR20200024511A/ko
Priority to US16/356,071 priority patent/US11056110B2/en
Priority to CN201910266679.1A priority patent/CN110909135A/zh
Priority to EP19172307.1A priority patent/EP3618062B1/en
Priority to JP2019154766A priority patent/JP7460338B2/ja
Publication of KR20200024511A publication Critical patent/KR20200024511A/ko
Priority to US17/346,626 priority patent/US11705128B2/en

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/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/632Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • 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/221Announcement of recognition results
    • 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/223Execution procedure of a spoken command
    • 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)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)

Abstract

일 실시예에 따른 대화 에이전트의 동작 방법은 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리를 획득하고, 발화 히스토리를 기초로 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세를 갱신하고, 갱신된 요구 사항 명세를 기초로 서비스를 요청하기 위한 발화 정보를 생성하여 출력한다.

Description

대화 에이전트의 동작 방법 및 그 장치{OPERATION METHOD OF DIALOG AGENT AND APPARATUS THEREOF}
아래의 실시예들은 대화 에이전트의 동작 방법 및 그 장치에 관한 것이다.
신경망의 발전으로 인해 사용자 편의를 제공하는 다양한 인공 지능 서비스 및 로봇 기술들이 제공되고 있다. 예를 들어, 챗봇(chatbot)의 경우, 사용자로부터 입력된 의도(intention) 및 엔티티(entity)에 따라 사용자를 대신하여 간단한 예약을 수행할 수 있다. 대화 에이전트 시스템(Dialog Agent System; DAS) 또한, 사용자를 대신하여 전화로 원하는 서비스를 예약하는 동작을 수행할 수 있다. 하지만, 서비스 제공자가 사용자가 요구하는 사항과 다른 조건을 제시하거나, 또는 해당 사용자의 요구 사항이 매우 복잡한 경우 등과 같이 대화가 단순 문답 형태를 벗어나는 경우, 챗봇 또는 대화 에이전트 시스템은 사용자가 요청한 서비스를 제대로 처리할 수 없다. 이 밖에도, 사용자가 대화 에이전트 시스템의 동작 중에 직접 대화에 개입할 수 없다.
일 측에 따르면, 대화 에이전트의 동작 방법은 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리(utterance history)를 획득하는 단계; 상기 발화 히스토리를 기초로, 상기 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세(requirement specification)를 갱신하는 단계; 상기 갱신된 요구 사항 명세를 기초로, 상기 서비스를 요청하기 위한 발화 정보를 생성하는 단계; 및 상기 발화 정보를 출력하는 단계를 포함한다.
상기 요구 사항 명세는 상기 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함할 수 있다.
상기 상태 정보는 해당 항목의 조건이 만족 되었음을 나타내는 제1 상태, 상기 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및 상기 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태 중 적어도 하나를 포함할 수 있다.
상기 갱신하는 단계는 상기 발화 히스토리에 기초하여, 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하는 단계; 및 상기 판단 결과에 따라 상기 요구 사항 명세를 갱신하는 단계를 더 포함할 수 있다.
상기 조건들의 만족 여부를 판단하는 단계는 상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계; 및 상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단하는 단계 중 적어도 하나를 포함할 수 있다.
상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계는 상기 발화 히스토리 및 상기 요구 사항 명세를 제1 분류기(classifier)에 입력하는 단계-상기 제1 분류기는 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터(multi-hot-vector)로 출력함-; 및 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계를 포함할 수 있다.
상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단하는 단계는 상기 발화 히스토리 및 상기 요구 사항 명세를 제2 분류기에 입력하는 단계-상기 제2 분류기는 상기 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력함-; 및 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단하는 단계를 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하는 단계; 및 상기 조건들 전부가 만족되었다는 판단에 따라, 상기 서비스의 요청이 완료되었음을 사용자에게 알리는 단계를 더 포함할 수 있다.
상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하는 단계는 상기 갱신된 요구 사항 명세를 기초로, 상기 조건들 전부가 만족되었는지 여부를 판단하는 단계; 및 상기 발화 히스토리 및 상기 요구 사항 명세를 기초로 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 조건들 전부의 만족 여부를 나타내는 값을 출력하는 제3 분류기를 이용하여, 상기 조건들 전부가 만족되었는지 여부를 판단하는 단계 중 적어도 하나를 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 상기 갱신된 요구 사항 명세를 기초로, 발화 대상을 결정하는 단계를 더 포함하고, 상기 발화 정보를 출력하는 단계는 상기 발화 대상에게 상기 발화 정보를 출력하는 단계를 포함할 수 있다.
상기 발화 대상을 결정하는 단계는 상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 상기 발화 대상을 사용자로 결정하는 단계를 포함할 수 있다.
상기 항목들은 상기 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함할 수 있다.
상기 항목들은 상기 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 사용자 장치로부터 상기 서비스의 제공자와의 직접 통화를 요청하는 신호를 수신하는 단계; 상기 직접 통화를 요청하는 신호의 수신 이후에, 상기 발화 정보의 생성을 중단하는 단계; 및 상기 사용자 장치로부터 입력되는 정보를 상기 서비스 제공자에게 제공하는 단계를 더 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 상기 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신하는 단계; 및 상기 대화 재계를 요청하는 신호에 응답하여, 상기 발화 정보의 생성을 재계하는 단계를 더 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 상기 갱신된 요구 사항 명세를 사용자에게 제공하는 단계; 및 상기 발화 히스토리를 사용자에게 제공하는 단계 중 적어도 하나를 더 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우, 상기 적어도 하나의 항목을 사용자에게 문의(inquire)하는 단계를 더 포함할 수 있다.
상기 대화 에이전트의 동작 방법은 사용자 단말의 인터페이스를 통하여 수집된 정보에 기초하여 생성된 상기 요구 사항 명세를 수신하는 단계를 더 포함할 수 있다.
상기 발화 히스토리를 획득하는 단계는 상기 대화 에이전트가 상기 서비스의 제공자에게 송신하는 제1 송신 발화를 획득하는 단계; 상기 대화 에이전트가 상기 서비스의 제공자로부터 수신하는 제1 수신 발화를 획득하는 단계; 상기 대화 에이전트가 사용자에게 송신하는 제2 송신 발화를 획득하는 단계; 및 상기 대화 에이전트가 상기 사용자로부터 수신하는 제2 수신 발화를 획득하는 단계 중 적어도 하나를 포함할 수 있다.
일 측에 따르면, 대화 에이전트 장치는 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리를 획득하고, 발화 정보를 출력하는 통신 인터페이스; 및 상기 발화 히스토리를 기초로, 상기 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세를 갱신하고, 상기 갱신된 요구 사항 명세를 기초로, 상기 서비스를 요청하기 위한 상기 발화 정보를 생성하는 프로세서를 포함한다.
상기 요구 사항 명세는 상기 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함할 수 있다.
상기 상태 정보는 해당 항목의 조건이 만족 되었음을 나타내는 제1 상태, 상기 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및 상기 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태 중 적어도 하나를 포함할 수 있다.
상기 프로세서는 상기 발화 히스토리에 기초하여, 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하고, 상기 판단 결과에 따라 상기 요구 사항 명세를 갱신할 수 있다.
상기 프로세서는 상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하거나, 또는 상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단할 수 있다.
상기 프로세서는 상기 발화 히스토리 및 상기 요구 사항 명세를 제1 분류기 -상기 제1 분류기는 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력함-에 입력하고, 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단할 수 있다.
상기 프로세서는 상기 발화 히스토리 및 상기 요구 사항 명세를 제2 분류기- 상기 제2 분류기는 상기 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력함-에 입력하고, 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단할 수 있다.
상기 프로세서는 상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하고, 상기 조건들 전부가 만족되었다는 판단에 따라, 상기 서비스의 요청이 완료되었음을 사용자에게 알릴 수 있다.
상기 프로세서는 상기 갱신된 요구 사항 명세를 기초로, 상기 조건들 전부가 만족되었는지 여부를 판단하거나, 또는 상기 발화 히스토리 및 상기 요구 사항 명세를 기초로 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 조건들 전부의 만족 여부를 나타내는 값을 출력하는 제3 분류기를 이용하여, 상기 조건들 전부가 만족되었는지 여부를 판단할 수 있다.
상기 프로세서는 상기 갱신된 요구 사항 명세를 기초로, 발화 대상을 결정하고, 상기 발화 대상에게 상기 발화 정보를 출력할 수 있다.
상기 프로세서는 상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 상기 발화 대상을 사용자로 결정할 수 있다.
상기 항목들은 상기 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함할 수 있다.
상기 항목들은 상기 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함할 수 있다.
상기 통신 인터페이스는 사용자 장치로부터 상기 서비스의 제공자와의 직접 통화를 요청하는 신호를 수신하고, 상기 프로세서는 상기 직접 통화를 요청하는 신호의 수신 이후에, 상기 발화 정보의 생성을 중단하며, 상기 사용자 장치로부터 입력되는 정보를 상기 서비스 제공자에게 제공할 수 있다.
상기 통신 인터페이스는 상기 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신하고, 상기 프로세서는 상기 대화 재계를 요청하는 신호에 응답하여, 상기 발화 정보의 생성을 재계할 수 있다.
상기 통신 인터페이스는 상기 갱신된 요구 사항 명세를 사용자에게 제공하거나, 상기 발화 히스토리를 상기 사용자에게 제공하거나, 또는 상기 갱신된 요구 사항 명세 및 상기 발화 히스토리를 상기 사용자에게 제공할 수 있다.
상기 프로세서는 상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우, 상기 적어도 하나의 항목을 사용자에게 문의할 수 있다.
상기 통신 인터페이스는 사용자 단말의 인터페이스를 통하여 수집된 정보에 기초하여 생성된 상기 요구 사항 명세를 수신할 수 있다.
상기 통신 인터페이스는 상기 대화 에이전트가 상기 서비스의 제공자에게 송신하는 제1 송신 발화, 상기 대화 에이전트가 상기 서비스의 제공자로부터 수신하는 제1 수신 발화, 상기 대화 에이전트가 사용자에게 송신하는 제2 송신 발화, 및 상기 대화 에이전트가 상기 사용자로부터 수신하는 제2 수신 발화 중 적어도 하나를 획득할 수 있다.
도 1은 기본적인 대화 에이전트 시스템을 설명하기 위한 도면.
도 2는 일 실시예에 따른 대화 에이전트의 동작 방법을 나타낸 흐름도.
도 3은 일 실시예에 따른 대화 에이전트 시스템의 구성도
도 4는 일 실시예에 따른 대화 에이전트의 대화 진행 시나리오를 설명하기 위한 도면.
도 5는 일 실시예에 따른 대화 진행에 따라 요구 사항 명세가 갱신되는 과정을 설명하기 위한 도면.
도 6은 일 실시예에 따른 대화 에이전트가 발화 히스토리 및 요구 사항 명세를 표시하는 방법을 설명하기 위한 도면.
도 7은 다른 실시예에 따른 대화 에이전트의 사용자 인터페이스를 설명하기 위한 도면.
도 8은 일 실시예에 따른 요구 사항 명세에 포함된 필수 항목 및 선택 항목에 대한 처리 방법을 설명하기 위한 도면.
도 9는 일 실시예에 따른 대화 에이전트 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 기본적인 대화 에이전트 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 사용자(User)(101), 대화 에이전트 시스템(Dialog Agent System; DAS)(103), 및 서비스 제공자(Service Provider; SP)(105)가 도시된다. 여기서, 사용자(101)는 사용자 단말의 사용자에 해당하고, 서비스 제공자(105)는 서비스 제공자 단말의 사용자에 해당할 수 있다.
예를 들어, 사용자(101)는 대화 에이전트 시스템(103)를 통해 저녁 식사 예약을 요청할 수 있다. 사용자(101)는 대화 에이전트 시스템(103)에게 "전화 번호: 010-XXXX-1234", "이번 주 수요일 저녁 7시에 2명 예약해줘"와 같이 예약 희망 장소의 연락처, 예약 시간, 및 예약 장소 등을 포함하는 예약 요청 사항을 알려줄 수 있다. 사용자(101)의 발화를 수신한 대화 에이전트 시스템(103)은 '010-XXXX-1234'로 전화를 걸 수 있다. 이때, 전화 번호 '010-XXXX-1234'에 해당하는 서비스 업체가 예를 들어, "스시O"라는 음식점이라고 하면, 서비스 제공자(105)는 "스시O"의 예약 접수자 또는 관리자일 수 있다.
대화 에이전트 시스템(103)으로부터 전화를 수신한 서비스 제공자(105)가 "여보세요. 스시O 입니다."와 같이 응답하면, 대화 에이전트 시스템(103)은 "이번 주 수요일 저녁 7시에 2명 예약할 수 있을까요?"와 같이 사용자(101)의 예약 요청 사항을 전달할 수 있다.
서비스 제공자(105)는 예약 요청 사항에 따른 예약이 가능하면, 사용자(101)의 요청 사항에 따른 예약을 진행할 수 있다. 이와 달리, 해당 예약 요청 사항에 따른 예약이 불가능하면, 서비스 제공자(105)는 "죄송합니다만, 6시와 8시만 자리가 있습니다."와 같이 변경된 예약 조건을 다시 제시할 수 있다. 이 경우, 대화 에이전트 시스템(103)은 사용자의 예약 요청 사항이 만족되지 않았으므로 사용자에게 "예약 불가"라는 서비스 결과를 제공할 수 있다. 이와 같이, 기본적인 대화 에이전트 시스템(103)은 서비스 제공자(105)가 사용자(101)가 요구하는 사항과 다른 변경된 조건을 제시하거나, 또는 해당 사용자의 요구 사항이 매우 복잡한 경우 등과 같이 대화가 단순 문답 형태를 벗어나는 경우, 사용자의 예약 요청 사항을 제대로 처리할 수 없다.
이 밖에도, 사용자(101)는 서비스 제공자(105)와의 직접 대화를 통해 해당 일자의 7시에는 예약이 불가능하지만, 6시와 8시에는 예약이 가능한 상황이라면, 예약 시간을 6시 또는 8시로 유동적으로 변경할 수 있다. 하지만, 사용자(101)가 대화 에이전트 시스템(103)와 서비스 제공자(105) 간의 대화 중에 직접 개입할 수 없는 경우, 사용자(101)는 대화 에이전트 시스템(103)와 서비스 제공자(105) 간의 대화 종료 후에, 다시 대화 에이전트 시스템(103)을 통해 변경된 예약 시간(6시 또는 8시)으로의 예약을 요청하지 않는 한, 해당 일자의 저녁 식사 예약은 불가능하다.
도 2는 일 실시예에 따른 대화 에이전트의 동작 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 대화 에이전트 장치는 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리(utterance history)를 획득한다(210). 여기서, 서비스는 예를 들어, 여행 예약, 음식점 예약, 헤어 샵 예약, 렌트 카 예약, 공연 예약, 숙소 예약 등과 같은 다양한 분야에 대한 예약 서비스, 등록 서비스 또는 전화 문의 서비스 등을 포함할 수 있으며, 반드시 이에 한정되는 것은 아니다.
일 실시예에서 '발화(utterance)'는 사람의 생각이 실제 문장 단위로 실현된 것 또는 소리내어 말하는 언어 행위를 말한다. 발화는 발화의 대상(예를 들어, 화자, 청자), 발화의 상황, 발화의 주제 등에 따라 구체적인 의미가 결정되거나, 달라질 수 있다. 일 실시예에서 발화는 사람의 생각을 소리내어 말하는 것 이외에도, 사람의 생각을 텍스트(text)로 표현하는 것을 모두 포함하는 의미로 이해될 수 있다.
송신 발화는 대화 에이전트 장치가 대화 상대방에게 송신하는 발화에 해당한다. 수신 발화는 대화 에이전트 장치가 대화 상대방으로부터 수신하는 발화에 해당할 수 있다. 이때, 송신 발화의 대상 및 수신 발화의 대상은 사용자 단말(또는 사용자) 및/또는 서비스 제공자 단말(또는 서비스 제공자)일 수 있다. 송신 발화의 대상과 수신 발화의 대상은 서로 일치할 수도 있고, 서로 상이할 수도 있다.
송신 발화는 예를 들어, 음성, 또는 텍스트의 형태일 수 있다. 수신 발화는 예를 들어, 음성, 텍스트 및 명령(command)의 형태일 수 있다. 명령 형태의 수신 발화는 예를 들어, "예약 전화 걸어줘", 또는 "예약" 등과 같이 사용자가 미리 약속된 명령어를 자연어로 발화하거나, 또는 텍스트로 기재함으로써 전달될 수 있다. 또는 명령 형태의 수신 발화는 예를 들어, "서비스 요청", "직접 대화하기" 또는 "직접 대화 끊기" 등과 같이 사용자 단말의 화면에 표시되는 다양한 버튼, 아이콘, 그 밖의 사용자 인터페이스에 대한 사용자 선택에 의해 전달될 수 있다.
발화 히스토리는 사용자 장치의 장치 특성에 따라 텍스트 형태로 저장될 수도 있고, 음성 형태로 저장될 수 있으며, 또는 특징 벡터의 형태로 저장될 수도 있다. 여기서, 사용자 장치의 장치 특성은 예를 들어, 사용자 장치가 디스플레이만을 포함하는지, 스피커만을 포함하는지, 또는 디스플레이와 스피커를 모두 포함하는지 등과 같이 해당 장치의 기능적인 특성에 해당할 수 있다.
예를 들어, 수신 발화가 음성인 경우, 대화 에이전트 장치는 해당 음성을 텍스트 형태로 변환하여 발화 히스토리에 저장할 수 있다. 또는 수신 발화가 명령인 경우, 해당 명령을 대응하는 텍스트로, 또는 미리 약속된 형태의 텍스트로 변환하여 발화 히스토리에 저장할 수 있다.
발화 히스토리는 예를 들어, 대화 에이전트가 서비스의 제공자에게 송신하는 제1 송신 발화, 대화 에이전트가 서비스의 제공자로부터 수신하는 제1 수신 발화, 대화 에이전트가 사용자에게 송신하는 제2 송신 발화, 및 대화 에이전트가 사용자로부터 수신하는 제2 수신 발화 중 적어도 하나를 포함할 수 있다.
발화 히스토리는 예를 들어, 사용자 장치에서 요구 사항 명세를 처음 작성하는 때로부터 사용자가 요청한 서비스의 요청이 완료되었음을 대화 에이전트가 사용자 단말에게 알리는 순간까지의 송신 발화 및/또는 수신 발화 내용의 적어도 일부 또는 전부 포함할 수 있다.
대화 에이전트 장치는 단계(210)에서 획득한 발화 히스토리를 기초로, 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세(requirement specification)를 갱신한다(220). 여기서, 서비스의 요청을 위해 요구되는 항목들은 예를 들어, 사용자가 요청하는 서비스가 헤어 샵 예약인 경우, 헤어 샵의 연락처, 예약 시간, 예약 서비스(컷트, 펌, 염색 등), 및 헤어 디자이너 등일 수 있다. 또는 사용자가 요청하는 서비스가 공연 예약인 경우, 콘서트 홀(또는 예약 부서)의 연락처, 예약 대상 공연, 공연 시간, 관람 좌석 등급, 및 관람 좌석 위치 등일 수 있다. 일 실시예에서 서비스의 요청을 위하여 요구되는 항목들은 서비스의 유형 별로 서로 상이하게 결정될 수도 있고, 서비스의 유형과는 독립된 포괄적인 형태로 결정될 수도 있다.
요구 사항 명세는 예를 들어, 사용자 단말의 인터페이스(도 3의 UI 모듈(310))을 통하여 수집된 정보에 기초하여 생성되고, 대화 에이전트 장치에게 전달된 것일 수 있다. 요구 사항 명세에 포함된 항목들은 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함할 수 있다. 또한, 항목들은 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함할 수 있다. 해당 항목이 필수 항목인지 또는 선택 항목인지는 사용자의 발화 내용에 따라 변경될 수 있다. 요구 사항 명세는 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함할 수 있다. 상태 정보는 예를 들어, 해당 항목의 조건이 만족 되었음을 나타내는 제1 상태, 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태 중 적어도 하나를 포함할 수 있다. 예를 들어, 요구 사항 명세에서 제1 상태는 "O"로 표시되고, 제2 상태는 "X"로 표시되며, 제3 상태는 "?"로 표시될 수 있다. 상태 정보는 예를 들어, 대화 에이전트 장치의 송신 발화의 응답으로 수신되는 수신 발화에 기초하여 갱신될 수 있다.
단계(220)에서, 대화 에이전트 장치는 발화 히스토리 및/또는 요구 사항 명세에 기초하여 항목들에 의하여 요구되는 조건들의 만족 여부를 판단할 수 있다. 대화 에이전트 장치는 예를 들어, 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단할 수 있다. 대화 에이전트 장치는 예를 들어, 발화 히스토리 및 요구 사항 명세를 제1 분류기(classifier)에 입력할 수 있다. 여기서, 제1 분류기는 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 항목들에 대응하는 상태 정보를 멀티-핫-벡터(multi-hot-vector)로 출력할 수 있다. 대화 에이전트 장치는 제1 분류기가 출력하는 멀티-핫-벡터에 기초하여, 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단할 수 있다.
또는 대화 에이전트 장치는 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단할 수 있다. 대화 에이전트 장치는 발화 히스토리 및 요구 사항 명세를 제2 분류기에 입력할 수 있다. 여기서, 제2 분류기는 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력할 수 있다. 대화 에이전트 장치는 제2 분류기에서 출력되는 멀티-핫-벡터에 기초하여, 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단할 수 있다.
대화 에이전트 장치는 조건들의 만족 여부에 대한 판단 결과에 따라 요구 사항 명세를 갱신할 수 있다. 일 실시예에 따른 대화 에이전트 장치가 요구 사항 명세를 갱신하는 과정은 아래의 도 5를 참조하여 구체적으로 설명한다.
대화 에이전트 장치는 갱신된 요구 사항 명세를 기초로, 서비스를 요청하기 위한 발화 정보를 생성한다(230). 발화 정보는 송신 발화를 생성하기 위한 정보로서, 예를 들어, 대화 에이전트 장치의 음성 형태로 출력될 수도 있고, 또는 텍스트 형태로 출력될 수도 있다.
대화 에이전트 장치는 발화 정보를 출력한다(240). 대화 에이전트 장치는 예를 들어, 갱신된 요구 사항 명세를 기초로 발화 대상을 결정하고, 결정된 발화 대상에게 발화 정보를 출력할 수 있다. 이때, 발화 대상은 예를 들어, 사용자일 수도 있고, 서비스 제공자일 수도 있으며, 또는 제3자일 수도 있다. 일 실시예에 따르면, 대화 에이전트 장치는 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 발화 대상을 사용자로 결정할 수 있다.
또한, 대화 에이전트 장치는 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 대화 에이전트 장치는 예를 들어, 갱신된 요구 사항 명세를 기초로, 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 또는 대화 에이전트 장치는 제3 분류기를 이용하여 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 여기서, 제3 분류기는 발화 히스토리 및 요구 사항 명세를 기초로 항목들에 의하여 요구되는 조건들 전부의 만족 여부를 판단하여, 조건들 전부의 만족 여부를 나타내는 값(예를 들어, '0' 또는 '1'의 이진값)을 출력할 수 있다. 대화 에이전트 장치는 제3 분류기에서 조건들 전부가 만족되었다는 판단에 따라, 서비스의 요청이 완료되었음을 사용자에게 알릴 수 있다. 대화 에이전트 장치는 서비스의 요청이 완료되었음을, 예를 들어, "예약이 완료되었습니다."와 같이 스피커를 통해 음성 형태로 사용자에게 알릴 수도 있고, 디스플레이에 표시되는 텍스트 형태로 사용자에게 알릴 수도 있다.
도 3은 일 실시예에 따른 대화 에이전트 시스템의 구성도이다. 도 3을 참조하면, 일 실시예에 따른 대화 에이전트 시스템(300)은 UI 모듈(310), 대화 모듈(330) 및 전화 모듈(350)을 포함할 수 있다. UI 모듈(310)은 사용자 단말(또는 장치)에 포함될 수도 있고, 대화 에이전트 장치에 포함될 수도 있다. 대화 모듈(330)은 대화 에이전트 장치에 포함될 수 있다.
UI 모듈(310)은 사용자로부터 서비스의 요청 및/또는 요구 사항을 입력 받는 입력 인터페이스와 요청된 서비스에 대한 진행 사항을 보여주는 출력 인터페이스를 제공할 수 있다. UI 모듈(310)은 요구 사항의 입력 결과로서 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세를 대화 모듈(330)에 전달할 수 있다. 또한, UI 모듈(310)은 서비스의 요청을 위한 대화 진행 상황을 출력 인터페이스를 통해 사용자에게 전달할 수 있다.
UI 모듈(310)은 요구 사항 입력부(313) 및 대화 내용 출력부(316)를 포함할 수 있다.
요구 사항 입력부(313)는 사용자로부터 서비스에 대한 요구 사항을 입력 받는 입력 인터페이스를 제공할 수 있다. 입력 인터페이스의 입력 모달리티(modality)는 음성을 통한 말(자연어)이 될 수도 있고, 타이핑(typing)을 통한 텍스트(text), 또는 아이콘 또는 버튼의 클릭 등에 의한 명령어 입력 등이 될 수도 있다. 요구 사항 입력부(313)가 입력 인터페이스로부터 수집된 요구 사항을 기초로, 서비스 별로 정해진 요구 사항 명세의 필요 항목들에 값을 채우면 요구 사항 명세의 초기 정보 입력이 완료될 수 있다. 이때, 사용자는 예를 들어, 자연어 대화를 기반으로 요청하고자 하는 서비스와 해당 서비스의 요구 사항을 입력할 수 있다.
요구 사항 입력부(313)는 입력 인터페이스를 통해 입력된 자연어를 분석하여 원하는 서비스와 해당 서비스에 필요한 항목들에 대응되는 값을 찾아낼 수 있다. 요구 사항 입력부(313)은 예를 들어, 도메인 및 의도 분류(domain and intent classification) 및 슬롯 태깅(slot tagging) 기술에 기반한 신경망 모델을 이용하여 입력된 자연어로부터 사용자가 원하는 서비스가 무엇이고, 해당 서비스에 필요한 항목의 값이 무엇인지 찾을 수 있다. 보다 구체적으로, 요구 사항 입력부(313)는 입력 인터페이스의 입력 모달리티가 텍스트인 경우, 해당 텍스트를 파싱하여 엔-그램(n-gram) 토큰(token)들로 분리하거나, 혹은 미리 정의한 사전을 기반으로 텍스트를 파싱하여 사전에 있는 단어들, 다시 말해, 토큰(token)들로 분리하고, 분리한 토큰들을 신경망 모델에 입력함으로써 사용자가 원하는 서비스, 및 해당 서비스에 필요한 항목의 값을 찾을 수 있다. 또는 요구 사항 입력부(313)는 입력 모달리티가 자연어인 경우, 음성 인식기를 이용하여 자연어를 인식하고, 인식 결과를 기초로, 사용자가 원하는 서비스, 및 해당 서비스에 필요한 항목의 값을 찾을 수 있다. 예를 들어, 요구 사항 입력부(313)는 자연어 분석 결과에 기초하여 사용자가 원하는 서비스 분야(또는 서비스 유형)를 결정하고, 해당 서비스 분야에 대응하여 서비스 별로 미리 정해진 항목들을 포함하도록 요구 사항 명세를 생성할 수 있다. 요구 사항 입력부(313)는 한번의 사용자 발화에 의해 서비스의 요청을 위해 필요한 모든 항목들(예를 들어, 필수 항목들)의 값을 채울 수 없는 경우, 이후 추가 질문을 통해 필요한 항목에 대한 값을 사용자로부터 입력 받을 수 있다. 또는 요구 사항 입력부(313)는 사용자에게 원하는 서비스를 직접 선택하도록 한 후, 서비스 별로 정해진 요구 사항 명세에 따라 사용자에게 각 항목들의 값을 직접 입력하도록 할 수도 있다. 요구 사항 입력부(313)는 예를 들어, 도 5(a)와 같이 요구 사항 명세의 초기 정보에 대한 입력이 완료되면, 작성된 요구 사항 명세를 대화 모듈(330)로 제공할 수 있다.
대화 내용 출력부(316)는 현재 서비스 요청과 관련된 진행 사항을 사용자에게 출력하는 출력 인터페이스를 제공한다. 출력 인터페이스는 예를 들어, 요구 사항 입력부(313)에서 요구 사항을 입력 받기 위한 사용자와의 대화, 요구 사항 입력부(313)에서 요구 사항의 입력을 완료한 결과로 생성되는 요구 사항 명세, 대화 모듈(330)에서 생성하는 송신 발화, 송신 발화에 응답하는 수신 발화, 및 대화 모듈(330)에서 요구 사항 명세에 포함된 항목들 중 조건이 만족되지 않는 항목이 있는 경우에 사용자에게 이를 알리는 내용 등과 같은 정보, 다시 말해 발화 히스토리를 사용자에게 제공할 수 있다. 출력 인터페이스가 사용자에게 제공하는 정보는 예를 들어, 자연어 발화, 자연어 텍스트 등의 형태를 가질 수 있으며, 실시예에 따라서는 특정 알림음 등의 형태를 가질 수도 있다.
또한, 대화 내용 출력부(316)는 요구 사항 명세에서 조건이 만족되지 않거나, 또는 만족 여부가 아직 결정되지 않은 항목에 대응하는 발화 내용을 조건이 만족된 항목에 대응하는 발화 내용과 상이하게 표시할 수 있다. 여기서, 조건이 만족되지 않거나, 또는 만족 여부가 아직 결정되지 않은 항목에 대응하는 발화 내용은 해당 항목의 상태 정보가 제2 상태이거나, 또는 제3 상태에 대응하는 발화 내용일 수 있다.
대화 내용 출력부(316)는 요구 사항 명세에서 조건이 만족되지 않거나, 또는 만족 여부가 아직 결정되지 않은 항목에 대응하는 발화 내용을 예를 들어, 하이라이트 또는 깜박임 등에 의해 표시하여 사용자에게 제공할 수 있다. 출력 인터페이스가 사용자에게 제공하는 정보는 예를 들어, 도 5의 각 도면들에 도시된 것과 같이 화면에 텍스트의 형태로 표시될 수도 있고, 또는 스피커를 통해 소리로 사용자에게 제공될 수도 있다. 또한, 대화 내용 출력부(316)는 요구 사항 명세에서 조건이 만족되지 않은 항목에 대응하는 발화 내용이 있는 경우, 사용자에게 별도의 알림을 제공할 수 있다.
대화 모듈(330)은 UI 모듈(310)로부터 수신한 요구 사항 명세에서 전화번호 항목의 값을 참조하여 전화 모듈(350)을 통해 서비스 제공자(SP)에게 전화 호출을 수행할 수 있다. 대화 모듈(330)은 서비스 제공자와의 전화 통화 결과에 따라, 요구 사항 명세를 갱신하고, 갱신된 요구 사항 명세를 기초로 서비스를 요청하기 위한 발화 정보를 생성할 수 있다.
대화 모듈(330)은 발화 생성부(333) 및 요구 사항 명세 및 대화 문맥 관리부(이하, '관리부')(336)를 포함할 수 있다.
발화 생성부(333)는 UI 모듈(310)로부터 수신한 요구 사항 명세 및 관리부(336)로부터 수신한 발화 히스토리 중 적어도 하나를 기초로, 서비스 요청에 필요한 문장, 다시 말해 발화 정보를 생성할 수 있다. 이때, 발화 생성부(333)는 요구 사항 명세에 포함된 전화 번호 항목 외의 각 항목들의 값들 및 지금까지의 발화 히스토리를 고려하여 발화 정보를 생성할 수 있다. 발화 생성부(333)가 생성한 발화 정보(예를 들어, 텍스트 형태의 문장 또는 구문)는 TTS(text to speech) 기능을 통해 목소리로 변환되어 전화 모듈(350)에게 송신 발화로 제공될 수 있다. 관리부(336)는 송신 발화에 대한 서비스 제공자의 응답인 수신 발화를 전화 모듈(350)로부터 수신할 수 있다.
관리부(336)는 수신 발화의 턴(turn)을 기초로, 요구 사항 명세를 갱신할 수 있다. 관리부(336)는 예를 들어, 대화 에이전트 장치의 송신 발화에 대한 응답이 발화의 턴에 해당하는지를 판단함으로써 응답의 수신이 완료되었는지 여부를 결정할 수 있다. 발화의 턴은 화자의 변경 또는 화자의 하나의 응답의 수신 완료를 나타낼 수 있다. 관리부(336)는 예를 들어, 발화의 화자가 변경되거나, 또는 화자 A의 발화 이후, 3초 간의 침묵이 있는 경우 등과 같이 한 화자의 발화 이후에 미리 설정된 시간이 초과한 경우에 응답이 발화의 한 턴에 해당하는 것으로 판단하여 응답의 수신이 완료할 수 있다.
관리부(336)는 응답의 수신이 완료됨에 따라, 응답을 기초로 요구 사항 명세에 포함된 항목들에 의하여 요구되는 조건들이 새로이 만족되었는지, 다시 말해 요구 사항 명세에 포함된 항목들의 상태 정보가 변경되었는지를 판단하여 요구 사항 명세를 갱신할 수 있다.
관리부(336)는 갱신된 요구 사항 명세에 포함된 항목들에 의하여 요구되는 조건들 전부가 만족되었는지를 판단하고, 조건들 전부가 만족되었다는 판단에 따라, 관리부(336)는 통화를 종료할 수 있다. 관리부(336)는 예를 들어, 전술한 제3 분류기를 이용하여 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 제3 분류기는 요구 사항 명세에 포함된 항목들에 의하여 요구되는 조건들 전부가 만족되었는지를 판단하도록 학습된 신경망 기반의 이진 분류기(binary classifier)일 수 있다.
관리부(336)가 통화를 종료하고자 하는 경우, 대화 모듈(330)은 발화 생성부(333)가 통화 종료에 필요한 발화 정보(예를 들어, 서비스의 요청이 완료되었음을 사용자에게 알리는 발화)를 생성하여 출력하도록 한 후, 관리부(336)가 통화를 종료하도록 할 수 있다.
관리부(336)는 발화 히스토리 및 요구 사항 명세를 전술한 제1 분류기에 입력하고, 제1 분류기에서 출력되는 멀티-핫-벡터에 의해 요구 사항 명세의 항목들 중 조건이 만족된 항목이 있는지를 판단하여 요구 사항 명세를 갱신할 수 있다. 제1 분류기는 예를 들어, 신경망 기반의 멀티-클래스 분류기(multi-class classifier)일 수 있다. 제1 분류기는 요구 사항 명세에서 조건이 만족된 항목들을 멀티-핫-벡터로 출력할 수 있다. 예를 들어, 요구 사항 명세의 항목이 총 10개이고, 이중 2개인 첫째 항목 및 둘째의 항목의 조건이 만족되었다고 하자, 이 경우, 제1 분류기는 10개의 클래스 중 첫째 및 둘째 클래스의 값이 '1'이 되도록 "1100000000"와 같은 멀티-핫-벡터를 출력할 수 있다.
또한, 관리부(336)는 발화 히스토리 및 요구 사항 명세를 전술한 제2 분류기에 입력하고, 제2 분류기에서 출력되는 멀티-핫-벡터에 의해 요구 사항 명세의 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단하여 요구 사항 명세를 갱신할 수 있다. 제2 분류기 또한 제1 분류기와 마찬가지로 신경망 기반의 멀티-클래스 분류기일 수 있다.
제1 분류기, 제2 분류기 및/또는 제3 분류기는 예를 들어, CNN(Convolutional Neural Network), DNN(Deep Neural Network), RNN(Recurrent Neural Network), 또는 BLSTM(Bidirectional Long Short Term Memory) 등과 같이 다양한 구조의 신경망으로 구현될 수 있다.
관리부(336)는 조건을 만족할 수 없는 항목이 있으면, UI 모듈(310)을 통해 조건을 만족할 수 없는 항목을 사용자에게 알리고, 사용자로부터 수정된 요구사항을 입력 받아 요구 사항 명세를 갱신할 수 있다. 이때, UI 모듈(310)은 요구 사항 명세에서 조건이 만족되지 않은 항목을 하이라이트해서 표시될 수 있다. 또한 UI 모듈(310)은 조건을 만족하지 않는 항목과 관련된 송수신 발화 문장을 하이라이트 또는 점멸해서 사용자에게 표시할 수 있다. 이때, 수정된 요구사항으로 인해 갱신된 요구 사항 명세는 예를 들어, 특정 조건을 변경한 것일 수도 있고, 또는 서비스 요청을 취소하는 것일 수도 있다. 갱신된 요구 사항 명세 및 발화 히스토리를 사용자에게 표시하는 방법은 아래의 도 5 내지 도 6을 참조하여 구체적으로 설명한다.
대화 모듈(330)은 항목들에 의하여 요구되는 조건들 전부가 만족되어 서비스의 요청이 완료될 때까지 도 4에서의 단계(430) 내지 단계(480)에 해당하는 대화 진행 과정을 반복적으로 수행할 수 있다.
대화 모듈(330)은 대화 진행 과정을 반복적으로 수행하는 중에 사용자(또는 사용자 장치)로부터 서비스 제공자와의 직접 통화를 요청하는 신호가 수신되는지 여부를 판단할 수 있다. 직접 통화를 요청하는 신호가 수신된 것으로 판단되면, 대화 모듈(330)은 서비스 제공자와 대화 진행 중에 사용자가 서비스 제공자와 직접 대화할 수 있도록 하는 인터페이스를 제공할 수 있다. 사용자가 서비스 제공자와 직접 대화하는 경우에 대하여는 아래의 도 7을 참조하여 구체적으로 설명한다.
전화 모듈(350)은 송신부(353) 및 수신부(356)를 포함할 수 있다. 송신부(353)는 대화 모듈에서 생성한 송신 발화를 송신할 수 있다. 수신부(356)는 사용자 또는 서비스 제공자로부터 수신한 수신 발화를 대화 모듈(330)에게 전달할 수 있다.
도 4는 일 실시예에 따른 대화 에이전트의 대화 진행 시나리오를 설명하기 위한 도면이고, 도 5는 일 실시예에 따른 대화 진행에 따라 요구 사항 명세가 갱신되는 과정을 설명하기 위한 도면이다. 도 4 및 도 5를 참조하면, 사용자 단말이 일 실시예에 따른 대화 에이전트 장치(DAS)에게 서비스 요구 사항을 전달한 경우에 대화 에이전트 장치(DAS)의 대화 진행 과정이 도시된다.
사용자는 사용자 장치를 통해 대화 에이전트 장치(DAS)에게 요구 사항 명세를 전달함으로써 사용자의 서비스 요구 사항을 전달할 수 있다(410). 사용자는 예를 들어, 도 5(a)에 도시된 것과 같이, "이번 주 수요일 저녁 7시 스시O 2명 예약해줘"와 같이 서비스 요구 사항을 전달할 수 있다. 대화 에이전트 장치(DAS)는 예를 들어, "네, 아래와 같이 이번 주 수요일 저녁 7시로 스시O 2명 예약할까요?"와 같이 사용자의 서비스 요구 사항을 확인한 후, 서비스 요구 사항을 분석하여 요구 사항 명세(510)를 생성할 수 있다. 이때, 대화 에이전트 장치(DAS)는 사용자의 서비스 요구 사항에 의해 파악한 요구 사항 명세(510)의 초기 정보(요청한 서비스: 식당 예약, 식당명: 스시O, 전화 번호: 010-XXXX-1234)에 의해 요구 사항 명세(510)의 각 항목의 값을 채울 수 있으며, 이때, 각 항목에 대응하는 상태 정보는 해당 항목의 값에 의해 요구되는 조건이 만족되는지, 불만족되는지, 또는 해당 항목의 조건의 만족 여부가 아직 결정되지 않았는지에 따라 "O", "X", 또는 "?"로 표시될 수 있다. 이때, 초기 정보에 해당하는 전화 번호는 사용자 단말의 전화 번호부 또는 대화 에이전트 장치(DAS)에 포함된 전화 번호부에서 식당명에 의해 검색된 번호이거나, 또는 대화 에이전트 장치(DAS)가 인터넷 접속을 통해 검색한 번호일 수 있다.
대화 에이전트 장치(DAS)는 서비스 제공자(SP)에게 전화 걸기를 수행할 수 있다(420). 대화 에이전트 장치(DAS)는 대화 진행을 위해 발화 정보를 생성하여 서비스 제공자(SP)에게 출력하고(430), 서비스 제공자(SP)는 대화 에이전트 장치(DAS)의 발화에 대해 응답할 수 있다(440). 대화 에이전트 장치(DAS)는 서비스 제공자와 대화(통화)를 통해 요구 사항이 만족되는지를 판단할 수 있다(450). 단계(450)에서 요구 사항이 만족되지 않았다고 판단되면, 대화 에이전트 장치(DAS)는 사용자에게, 사용자의 요구 사항들 중 만족 항목 및 불만족 항목을 전달할 수 있다(470).
대화 에이전트 장치(DAS)는 예를 들어, 도 5(b)에 도시된 것과 같이 서비스 제공자(SP)에게 전화 걸기를 수행하고, 대화 진행을 위해 생성한 발화 정보("이번 주 수요일 저녁 7시에 2명 예약할 수 있을까요?")를 출력할 수 있다. 이때, 서비스 제공자가 대화 에이전트 장치(DAS)의 발화에 대하여 "죄송합니다만 6시와 8시만 자리가 있습니다."와 같이 응답했다고 하자. 대화 에이전트 장치(DAS)는 서비스 제공자의 응답을 분석하여, 요구 사항 명세(510)에서 날짜 항목의 값('이번 주 수요일')와 인원 항목의 값('2명')에 의해 요구되는 조건은 만족되는 것으로 판단하고, 시간 항목의 값(저녁 7시)에 의해 요구되는 조건은 만족하지 않는 것으로 판단할 수 있다. 대화 에이전트 장치(DAS)는 각 항목의 조건 만족 여부를 판단한 결과에 따라 요구 사항 명세(510)를 요구 사항 명세(520)와 같이 갱신할 수 있다.
단계(470)에서 대화 에이전트 장치(DAS)로부터 만족 항목 및 불만족 항목을 전달받은 사용자는 만족되지 않은 조건에 대한 수정된 요구 사항을 대화 에이전트 장치(DAS)에게 전달할 수 있다(480). 사용자로부터, 만족되지 않은 조건에 대한 수정된 요구 사항을 전달받은 대화 에이전트 장치(DAS)는 수정된 요구 사항을 기초로 요구 사항 명세를 갱신할 수 있다.
예를 들어, 대화 에이전트 장치(DAS)는 도 5(c)에 도시된 것과 같이, "주인님, 위와 같이 시간이 7시는 안되고, 6시와 8시만 가능하다고 합니다."와 같은 송신 발화를 생성하여 사용자에게 만족 항목 및 불만족 항목을 전달할 수 있다. 이를 수신한 사용자가 "그럼 6시로 해줘"와 같이 만족되지 않은 조건에 대한 수정된 요구 사항을 대화 에이전트에게 전달했다고 하자. 대화 에이전트 장치(DAS)는 "네, 그럼 6시로 예약하겠습니다"와 같이 사용자로부터의 수신 발화를 확인하는 발신 발화를 생성할 수 있다. 또한, 대화 에이전트 장치(DAS)는 수정된 요구 사항('6시')을 반영하여 요구 사항 명세(520)를 요구 사항 명세(530)과 같이 갱신할 수 있다. 이때, 시간 항목의 값(6시)에 의해 요구되는 조건의 만족 여부는 아직 결정되지 않았으므로, 시간 항목에 대응되는 상태 정보는 "?"로 변경될 수 있다.
실시예에 따라서, 대화 에이전트 장치(DAS)는 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우, 적어도 하나의 항목을 사용자에게 문의(inquire)할 수도 있다.
대화 에이전트 장치(DAS)는 단계(480)에서 사용자로부터 전달된, 만족되지 않은 조건에 대한 수정된 요구 사항에 따라 갱신된 요구 사항 명세(530)를 기초로 새로운 발화 정보를 생성(430)하여 출력할 수 있다. 예를 들어, 대화 에이전트 장치(DAS)는 갱신된 요구 사항 명세(530)를 기초로 도 5(d)에 도시된 것과 같은 새로운 발화 정보("그럼 6시로 예약할 수 있을까요?")를 생성(430)하여 출력할 수 있다. 대화 에이전트 장치(DAS)는 새로운 발화 정보에 대응하는 서비스 제공자의 응답("네. 수요일 6시 2명 예약하겠습니다. 예약자 성함 알려 주세요")을 수신하고(440), 서비스 제공자와 대화(통화)를 통해 요구 사항이 만족되는지를 다시 판단할 수 있다(450).
단계(450)에서 요구 사항이 만족되었다고 판단되면, 대화 에이전트 장치(DAS)는 사용자의 전체 요구 사항이 만족되었는지를 판단할 수 있다(460). 단계(460)에서 사용자의 전체 요구 사항이 만족되지 않았다고 판단되면, 대화 에이전트 장치(DAS)는 만족되지 않은 요구 사항을 기초로, 새로운 발화 정보를 생성(430)하여 출력할 수 있다.
단계(460)에서 사용자의 전체 요구 사항이 만족되었다고 판단되면, 대화 에이전트 장치(DAS)는 사용자에게 서비스 요청 결과, 다시 말해 서비스의 요청이 완료되었음을 알릴 수 있다(490). 예를 들어, 도 5(e)에 도시된 요구 사항 명세(540)와 같이 사용자의 전체 요구 사항이 만족된다고 판단되면, 대화 에이전트 장치(DAS)는 "주인님. 스시O 수요일 저녁 6시 2명 예약되었습니다."와 같이 사용자에게 서비스의 요청이 완료되었음을 알릴 수 있다.
도 6은 일 실시예에 따른 대화 에이전트가 발화 히스토리 및 요구 사항 명세를 표시하는 방법을 설명하기 위한 도면이다. 도 6을 참조하면, 일 실시예에 따른 대화 에이전트 장치의 UI 모듈을 통해 제공되는 화면이 도시된다. 대화 에이전트 장치는 도 5의 각 도면에 도시된 것과 같이 요구 사항 명세를 대화 내용과 함께 순차적으로 스크롤 되도록 표시할 수도 있고, 요구 사항 명세를 대화 내용과 분리하여 표시할 수도 있다.
대화 에이전트 장치는 예를 들어, 화면의 상단 일정 부분에 요구 사항 명세(610)를 표시하고, 요구 사항 명세(610)의 하단에 발화 히스토리(630)를 표시할 수 있다. 이때, 요구 사항 명세(610)의 값 및/또는 만족 여부를 나타내는 상태 정보는 발화 히스토리(630)에서 발화의 한 턴이 변경될 때마다 갱신될 수 있다.
실시예에 따라서, 사용자는 설정에 의해 발화 히스토리(630)의 표시 여부를 변경할 수 있다. 또한, 사용자는 요구 사항 명세(610)를 전부 표시하거나, 또는 일부만 표시하도록 설정할 수 있다. 사용자는 예를 들어, 요구 사항 명세(610) 중 조건이 만족된 항목(들)은 표시하지 않고, 조건이 만족되지 않거나, 또는 조건 만족 여부가 아직 결정되지 않은 항목(들)을 표시하도록 할 수도 있다. 이때, 조건이 만족되지 않거나, 또는 조건 만족 여부가 아직 결정되지 않은 항목(들)은 알림 형태로 표시되거나, 또는 하이라이트 또는 점멸 형태로 표시될 수 있다.
실시예에 따라서, 대화 에이전트 장치는 사용자와 대화 에이전트 장치 간의 대화와 대화 에이전트와 서비스 제공자 간의 대화를 서로 구분하여 상이하게 표현할 수 있다. 또한, 대화 에이전트 장치는 사용자의 대화 에이전트 장치 간의 대화를 서비스 제공자가 보거나 들을 수 있게 할 수도 있고, 서비스 제공자가 보거나 듣지 못하도록 할 수도 있다.
도 7은 다른 실시예에 따른 대화 에이전트의 사용자 인터페이스를 설명하기 위한 도면이다. 도 7을 참조하면, 대화 에이전트 장치가 서비스 제공자와의 대화 진행 중에 사용자 인터페이스를 통해 사용자(또는 사용자 장치)로부터 서비스 제공자와의 직접 통화를 요청하는 신호가 수신된 경우의 동작이 도시된다.
예를 들어, 대화 에이전트 장치가 서비스 제공자와의 대화 진행 중에 서비스 제공자로부터 "죄송합니다만 6시와 8시에만 자리가 있습니다."와 같은 응답을 수신한 후에, 사용자가 사용자 인터페이스(예를 들어, 버튼(710))를 통해 서비스의 제공자와의 직접 통화를 요청하는 신호를 전송했다고 하자. 이때, 직접 통화를 요청하는 신호는 예를 들어, 사용자가 미리 제공된 사용자 인터페이스를 통해 "직접 대화하기"와 같이 미리 특정된 명령 키워드(keyword)를 말하거나, 도 7에 도시된 것과 같이 화면에 표시된 "직접 대화하기" 버튼(710)을 누르거나, 또는 "직접 대화하기"를 타이핑(typing)하는 동작 등을 통해 대화 에이전트 장치에게 전달될 수 있다.
직접 통화를 요청하는 신호가 전달된 경우, 대화 에이전트 장치는 발화 정보의 생성을 중단하고, 사용자의 발화 내용(또는 사용자가 타이핑한 내용을 TTS 기능에 의해 음성으로 변환한 것)을 서비스 제공자에게 송신 발화로 전달할 수 있다.
대화 에이전트 장치는 서비스 제공자의 응답 발화를 UI 모듈에 전달하여 소리 및/또는 텍스트로 출력함으로써 사용자와 서비스 제공자와 직접 대화하도록 할 수 있다. 이때, 사용자의 발화 내용은 예를 들어, 사용자의 목소리로 제공될 수도 있고, 또는 자동 음성 인식(Automatic Speech Recognition; ASR)과 TTS의 조합을 통해 사용자의 목소리를 대신하는 대화 에이전트 장치의 목소리로 변환되어 서비스 제공자에게 송신 발화로 전달될 수 있다. 이때, 서비스 제공자와 사용자 간의 직접 대화 내용 또한 발화 히스토리에 포함될 수 있다.
직접 통화가 진행되는 동안에도, 대화 에이전트 장치는 대화 히스토리를 분석하여 요구 사항 명세를 갱신하고, 갱신된 요구 사항 명세를 사용자에게 제공할 수 있다.
실시예에 따라서, 대화 에이전트 장치는 서비스 제공자와의 직접 통화를 요청하는 신호의 수신 이후에, 사용자로부터 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신할 수도 있다. 이때, 대화 재계를 요청하는 신호는 예를 들어, "대화 에이전트 서비스"와 같이 미리 특정된 명령 키워드(keyword)를 말하거나, 도 7에 도시된 것과 같이 화면에 표시된 "직접 대화하기" 버튼(710)을 다시 누르거나, 또는 "대화 에이전트 서비스"를 타이핑(typing)하는 동작 등을 통해 대화 에이전트 장치에게 전달될 수 있다. 대화 에이전트 장치는 대화 재계를 요청하는 신호에 응답하여, 발화 정보의 생성을 재계할 수 있다.
도 8은 일 실시예에 따른 요구 사항 명세에 포함된 필수 항목 및 선택 항목에 대한 처리 방법을 설명하기 위한 도면이다. 도 8의 (a)를 참조하면, 사용자(801)가 사용자 장치를 통해 대화 에이전트(803)에게 사용자의 서비스 요구 사항을 전달한 경우에 사용자의 서비스 요구 사항에 의해 대화 에이전트(803)가 생성한 요구 사항 명세(810)가 도시된다. 이때, 요구 사항 명세(810)에 포함된 항목들은 서비스의 유형 별로 정해진 적어도 하나의 필수 항목 이외에도 적어도 하나의 선택 항목을 포함할 수 있다.
대화 에이전트(803)는 사용자의 서비스 요구 사항을 분석하여 사용자가 요청한 서비스 유형(서비스 도메인)을 결정할 수 있다. 대화 에이전트(803)는 서비스 유형 별로 미리 정해진 요구 사항 명세의 폼(form)을 호출하고, 사용자의 서비스 요구 사항으로부터 분석된 정보(또는 초기 정보)에 따라 필수 항목들의 값을 채울 수 있다. 이때, 요구 사항 명세에 포함된 필수 항목 및 선택 항목은 해당 서비스 별로 미리 정해질 수 있다.
예를 들어, 사용자의 서비스 요구 사항에 필수 항목 중 1번 항목 및 2번 항목의 값에 해당하는 내용이 포함되어 있다고 하자. 이 경우, 필수 항목의 값들 중 3번 항목에 대한 값이 추가적으로 필요한 경우, 대화 에이전트(803)는 3번 항목에 대한 값을 문의하는 송신 발화 정보를 생성할 수 있다. 대화 에이전트(803)는 3번 항목에 대한 값을 문의하는 송신 발화 정보를 사용자(801)에게 전달하고, 이에 대한 응답을 수신하여 요구 사항 명세(810)의 필수 항목들을 모두 채울 수 있다. 대화 에이전트(803)는 필수 항목들이 모두 채워진 요구 사항 명세(810)를 기초로, 서비스 제공자(805)에게 서비스를 요청하기 위한 발화 정보를 생성하여 출력할 수 있다. 이때, 요구 사항 명세(810)의 선택 항목들은 이후, 서비스 제공자(805)와의 통화를 통해 채워질 수도 있고, 비워진 채로 유지될 수도 있다.
도 8의 (b)를 참조하면, 사용자(801)가 사용자 장치를 통해 대화 에이전트(803)에게 사용자의 서비스 요구 사항을 전달한 경우에 사용자의 서비스 요구 사항에 의해 대화 에이전트(803)가 생성한 요구 사항 명세(820)가 도시된다.
예를 들어, 사용자의 서비스 요구 사항에 필수 항목 중 1번 항목 내지 3번 항목의 값과 선택 항목인 5번 항목의 값에 해당하는 내용이 포함되어 있다고 하자. 대화 에이전트(803)는 사용자의 서비스 요구 사항을 기초로, 필수 항목인 1번 항목 내지 3번 항목의 값과 선택 항목인 5번 항목의 값을 채워 요구 사항 명세(820)를 생성할 수 있다. 이때, 요구 사항 명세(820)에서 선택 항목으로 분류되었던 5번 항목은 사용자의 서비스 요구 사항(또는 사용자의 발화 내용)에 따라 필수 항목으로 변경되거나, 또는 필수 항목과 동일하게 취급될 수 있다. 이와 같이 해당 항목이 필수 항목인지 또는 선택 항목인지는 사용자의 발화 내용에 따라 변경될 수도 있다.
대화 에이전트(803)는 요구 사항 명세(820)를 기초로, 서비스 제공자(805)에게 서비스를 요청하기 위한 발화 정보를 생성하여 출력할 수 있다.
전술한 예시와 같이 사용자(801)와 대화 에이전트(803) 사이의 커뮤니케이션은 발화 인터페이스를 통하여 수행될 수 있으나, 경우에 따라서 GUI 등 다른 인터페이스를 통하여 수행될 수도 있다.
도 9는 일 실시예에 따른 대화 에이전트 장치의 블록도이다. 도 9를 참조하면, 일 실시예에 따른 대화 에이전트 장치(900)는 통신 인터페이스(910) 및 프로세서(920)를 포함한다. 대화 에이전트 장치(900)는 메모리(930), 디스플레이(940) 및 스피커(950)를 더 포함할 수 있다. 통신 인터페이스(910), 프로세서(920), 메모리(930), 디스플레이(940) 및 스피커(950)는 통신 버스(905)를 통해 서로 연결될 수 있다.
통신 인터페이스(910)는 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리를 획득한다. 통신 인터페이스(910)는 프로세서(920)가 생성한 발화 정보를 출력한다.
통신 인터페이스(910)는 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신할 수 있다. 이때, 프로세서(920)는 대화 재계를 요청하는 신호에 응답하여, 발화 정보의 생성을 재계할 수 있다.
통신 인터페이스(910)는 갱신된 요구 사항 명세를 사용자에게 제공하거나, 발화 히스토리를 사용자에게 제공하거나, 또는 갱신된 요구 사항 명세 및 발화 히스토리를 사용자에게 제공할 수 있다.
통신 인터페이스(910)는 사용자 단말의 인터페이스를 통하여 수집된 정보에 기초하여 생성된 요구 사항 명세를 수신할 수 있다.
통신 인터페이스(910)는 대화 에이전트가 서비스의 제공자에게 송신하는 제1 송신 발화, 대화 에이전트가 서비스의 제공자로부터 수신하는 제1 수신 발화, 대화 에이전트가 사용자에게 송신하는 제2 송신 발화, 및 대화 에이전트가 사용자로부터 수신하는 제2 수신 발화 중 적어도 하나를 획득할 수 있다.
프로세서(920)는 발화 히스토리를 기초로, 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세를 갱신한다. 프로세서(920)는 갱신된 요구 사항 명세를 기초로, 서비스를 요청하기 위한 발화 정보를 생성한다. 요구 사항 명세는 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함할 수 있다. 상태 정보는 예를 들어, 해당 항목의 조건이 만족 되었음을 나타내는 제1 상태, 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태 등을 포함할 수 있다.
프로세서(920)는 발화 히스토리에 기초하여, 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하고, 판단 결과에 따라 요구 사항 명세를 갱신할 수 있다.
프로세서(920)는 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하거나, 또는 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단할 수 있다.
프로세서(920)는 발화 히스토리 및 요구 사항 명세를 제1 분류기에 입력할 수 있다. 프로세서(920)는 제1 분류기가 출력하는 멀티-핫-벡터에 기초하여, 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단할 수 있다. 여기서, 제1 분류기는 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력할 수 있다.
프로세서(920)는 발화 히스토리 및 요구 사항 명세를 제2 분류기에 입력할 수 있다. 프로세서(920)는 제2 분류기가 출력하는 멀티-핫-벡터에 기초하여, 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단할 수 있다. 여기서, 제2 분류기는 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력할 수 있다.
프로세서(920)는 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 프로세서(920)는 조건들 전부가 만족되었다는 판단에 따라, 서비스의 요청이 완료되었음을 사용자에게 알릴 수 있다.
프로세서(920)는 갱신된 요구 사항 명세를 기초로, 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 또는 프로세서(920)는 제3 분류기를 이용하여 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단할 수 있다. 여기서, 제3 분류기는 발화 히스토리 및 요구 사항 명세를 기초로 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 조건들 전부의 만족 여부를 나타내는 값(예를 들어, 이진 값)을 출력할 수 있다.
프로세서(920)는 갱신된 요구 사항 명세를 기초로, 발화 대상을 결정할 수 있다. 프로세서(920)는 발화 대상에게 발화 정보를 출력할 수 있다. 프로세서(920)는 발화 정보를 예를 들어, 디스플레이(940) 및/또는 스피커(950)를 통해 출력할 수 있다.
프로세서(920)는 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 발화 대상을 사용자로 결정할 수 있다. 이때, 요구 사항 명세에 포함된 항목들은 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함할 수 있다. 또한, 항목들은 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함할 수 있다.
통신 인터페이스(910)는 사용자 장치로부터 서비스의 제공자와의 직접 통화를 요청하는 신호를 수신할 수 있다.
프로세서(920)는 직접 통화를 요청하는 신호의 수신 이후에, 발화 정보의 생성을 중단하고, 사용자 장치로부터 입력되는 정보를 서비스 제공자에게 제공할 수 있다.
프로세서(920)는 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우, 적어도 하나의 항목을 사용자에게 문의할 수 있다.
또한, 프로세서(920)는 도 1 내지 도 8을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(920)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(920)는 프로그램을 실행하고, 대화 에이전트 장치(900)를 제어할 수 있다. 프로세서(920)에 의하여 실행되는 프로그램 코드는 메모리(930)에 저장될 수 있다.
메모리(930)는 사용자 장치로부터 수신한 요구 사항 명세를 저장할 수 있다. 또한, 메모리(930)는 프로세서(920)에서 갱신된 요구 사항 명세를 저장할 수 있다. 메모리(930)는 프로세서(920)가 생성한 발화 정보를 저장할 수 있다.
메모리(930)는 상술한 프로세서(920)에서의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(930)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(930)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(930)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
디스플레이(940)는 프로세서(920)가 생성한 텍스트 형태의 발화 정보를 출력할 수 있다. 또한, 스피커(950)는 프로세서(920)가 생성한 음성 형태의 발화 정보를 출력할 수 있다. 이때, 프로세서(920)는 TTS(Text To Speech) 기능을 포함할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
 이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (39)

  1. 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리(utterance history)를 획득하는 단계;
    상기 발화 히스토리를 기초로, 상기 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세(requirement specification)를 갱신하는 단계;
    상기 갱신된 요구 사항 명세를 기초로, 상기 서비스를 요청하기 위한 발화 정보를 생성하는 단계; 및
    상기 발화 정보를 출력하는 단계
    를 포함하는, 대화 에이전트의 동작 방법.
  2. 제1항에 있어서,
    상기 요구 사항 명세는
    상기 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함하는, 대화 에이전트의 동작 방법.
  3. 제2항에 있어서,
    상기 상태 정보는
    해당 항목의 조건이 만족되었음을 나타내는 제1 상태,
    상기 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및
    상기 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태
    중 적어도 하나를 포함하는, 대화 에이전트의 동작 방법.
  4. 제1항에 있어서,
    상기 갱신하는 단계는
    상기 발화 히스토리에 기초하여, 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 요구 사항 명세를 갱신하는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  5. 제4항에 있어서,
    상기 조건들의 만족 여부를 판단하는 단계는
    상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계; 및
    상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단하는 단계
    중 적어도 하나를 포함하는, 대화 에이전트의 동작 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계는
    상기 발화 히스토리 및 상기 요구 사항 명세를 제1 분류기(classifier)에 입력하는 단계-상기 제1 분류기는 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터(multi-hot-vector)로 출력함-; 및
    상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는 단계
    를 포함하는, 대화 에이전트의 동작 방법.
  7. 제5항에 있어서,
    상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단하는 단계는
    상기 발화 히스토리 및 상기 요구 사항 명세를 제2 분류기에 입력하는 단계-상기 제2 분류기는 상기 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터로 출력함-; 및
    상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단하는 단계
    를 포함하는, 대화 에이전트의 동작 방법.
  8. 제1항에 있어서,
    상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하는 단계; 및
    상기 조건들 전부가 만족되었다는 판단에 따라, 상기 서비스의 요청이 완료되었음을 사용자에게 알리는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  9. 제8항에 있어서,
    상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하는 단계는
    상기 갱신된 요구 사항 명세를 기초로, 상기 조건들 전부가 만족되었는지 여부를 판단하는 단계; 및
    상기 발화 히스토리 및 상기 요구 사항 명세를 기초로 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 조건들 전부의 만족 여부를 나타내는 값을 출력하는 제3 분류기를 이용하여, 상기 조건들 전부가 만족되었는지 여부를 판단하는 단계
    중 적어도 하나를 포함하는, 대화 에이전트의 동작 방법.
  10. 제1항에 있어서,
    상기 갱신된 요구 사항 명세를 기초로, 발화 대상을 결정하는 단계
    를 더 포함하고,
    상기 발화 정보를 출력하는 단계는
    상기 발화 대상에게 상기 발화 정보를 출력하는 단계
    를 포함하는, 대화 에이전트의 동작 방법.
  11. 제10항에 있어서,
    상기 발화 대상을 결정하는 단계는
    상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 상기 발화 대상을 사용자로 결정하는 단계
    를 포함하는, 대화 에이전트의 동작 방법.
  12. 제1항에 있어서,
    상기 항목들은
    상기 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함하는, 대화 에이전트의 동작 방법.
  13. 제12항에 있어서,
    상기 항목들은
    상기 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함하는, 대화 에이전트의 동작 방법.
  14. 제1항에 있어서,
    사용자 장치로부터 상기 서비스의 제공자와의 직접 통화를 요청하는 신호를 수신하는 단계;
    상기 직접 통화를 요청하는 신호의 수신 이후에, 상기 발화 정보의 생성을 중단하는 단계; 및
    상기 사용자 장치로부터 입력되는 정보를 상기 서비스 제공자에게 제공하는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  15. 제14항에 있어서,
    상기 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신하는 단계; 및
    상기 대화 재계를 요청하는 신호에 응답하여, 상기 발화 정보의 생성을 재계하는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  16. 제1항에 있어서,
    상기 갱신된 요구 사항 명세를 사용자에게 제공하는 단계; 및
    상기 발화 히스토리를 사용자에게 제공하는 단계
    중 적어도 하나를 더 포함하는, 대화 에이전트의 동작 방법.
  17. 제1항에 있어서,
    상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우,
    상기 적어도 하나의 항목을 사용자에게 문의(inquire)하는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  18. 제1항에 있어서,
    사용자 단말의 인터페이스를 통하여 수집된 정보에 기초하여 생성된 상기 요구 사항 명세를 수신하는 단계
    를 더 포함하는, 대화 에이전트의 동작 방법.
  19. 제1항에 있어서,
    상기 발화 히스토리를 획득하는 단계는
    상기 대화 에이전트가 상기 서비스의 제공자에게 송신하는 제1 송신 발화를 획득하는 단계;
    상기 대화 에이전트가 상기 서비스의 제공자로부터 수신하는 제1 수신 발화를 획득하는 단계;
    상기 대화 에이전트가 사용자에게 송신하는 제2 송신 발화를 획득하는 단계; 및
    상기 대화 에이전트가 상기 사용자로부터 수신하는 제2 수신 발화를 획득하는 단계
    중 적어도 하나를 포함하는, 대화 에이전트의 동작 방법.
  20. 하드웨어와 결합되어 제1항 내지 제19항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  21. 서비스의 요청을 위하여 송수신되는 송신 발화 및 수신 발화 중 적어도 하나를 포함하는 발화 히스토리를 획득하고, 발화 정보를 출력하는 통신 인터페이스; 및
    상기 발화 히스토리를 기초로, 상기 서비스의 요청을 위하여 요구되는 항목들을 포함하는 요구 사항 명세(requirement specification)를 갱신하고, 상기 갱신된 요구 사항 명세를 기초로, 상기 서비스를 요청하기 위한 상기 발화 정보를 생성하는 프로세서
    를 포함하는, 대화 에이전트 장치.
  22. 제21항에 있어서,
    상기 요구 사항 명세는
    상기 항목들에 의하여 요구되는 조건들이 만족되었는지 여부를 나타내는 상태 정보를 포함하는, 대화 에이전트 장치.
  23. 제22항에 있어서,
    상기 상태 정보는
    해당 항목의 조건이 만족되었음을 나타내는 제1 상태,
    상기 해당 항목의 조건이 만족되지 않았음을 나타내는 제2 상태, 및
    상기 해당 항목의 조건의 만족 여부가 아직 결정되지 않았음을 나타내는 제3 상태
    중 적어도 하나를 포함하는, 대화 에이전트 장치.
  24. 제21항에 있어서,
    상기 프로세서는
    상기 발화 히스토리에 기초하여, 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하고, 상기 판단 결과에 따라 상기 요구 사항 명세를 갱신하는, 대화 에이전트 장치.
  25. 제24항에 있어서,
    상기 프로세서는
    상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하거나, 또는 상기 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않았는지 여부를 판단하는, 대화 에이전트 장치.
  26. 제25항에 있어서,
    상기 프로세서는
    상기 발화 히스토리 및 상기 요구 사항 명세를 제1 분류기(classifier) -상기 제1 분류기는 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터(multi-hot-vector)로 출력함-에 입력하고, 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 만족되었는지 여부를 판단하는, 대화 에이전트 장치.
  27. 제25항에 있어서,
    상기 프로세서는
    상기 발화 히스토리 및 상기 요구 사항 명세를 제2 분류기- 상기 제2 분류기는 상기 항목들에 의하여 요구되는 조건들의 불만족 여부를 판단하여, 상기 항목들에 대응하는 상태 정보를 멀티-핫-벡터(multi-hot-vector)로 출력함-에 입력하고, 상기 멀티-핫-벡터에 기초하여, 상기 적어도 하나의 항목에 의하여 요구되는 조건이 불만족되었는지 여부를 판단하는, 대화 에이전트 장치.
  28. 제21항에 있어서,
    상기 프로세서는
    상기 항목들에 의하여 요구되는 조건들 전부가 만족되었는지 여부를 판단하고, 상기 조건들 전부가 만족되었다는 판단에 따라, 상기 서비스의 요청이 완료되었음을 사용자에게 알리는, 대화 에이전트 장치.
  29. 제28항에 있어서,
    상기 프로세서는
    상기 갱신된 요구 사항 명세를 기초로, 상기 조건들 전부가 만족되었는지 여부를 판단하거나, 또는 상기 발화 히스토리 및 상기 요구 사항 명세를 기초로 상기 항목들에 의하여 요구되는 조건들의 만족 여부를 판단하여, 상기 조건들 전부의 만족 여부를 나타내는 값을 출력하는 제3 분류기를 이용하여, 상기 조건들 전부가 만족되었는지 여부를 판단하는, 대화 에이전트 장치.
  30. 제21항에 있어서,
    상기 프로세서는
    상기 갱신된 요구 사항 명세를 기초로, 발화 대상을 결정하고, 상기 발화 대상에게 상기 발화 정보를 출력하는, 대화 에이전트 장치.
  31. 제30항에 있어서,
    상기 프로세서는
    상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 불만족된 경우, 상기 발화 대상을 사용자로 결정하는, 대화 에이전트 장치.
  32. 제31항에 있어서,
    상기 항목들은
    상기 서비스의 유형 별로 정해진 적어도 하나의 필수 항목을 포함하는, 대화 에이전트 장치.
  33. 제32항에 있어서,
    상기 항목들은
    상기 필수 항목을 제외한 적어도 하나의 선택 항목을 더 포함하는, 대화 에이전트 장치.
  34. 제31항에 있어서,
    상기 통신 인터페이스는
    사용자 장치로부터 상기 서비스의 제공자와의 직접 통화를 요청하는 신호를 수신하고,
    상기 프로세서는
    상기 직접 통화를 요청하는 신호의 수신 이후에, 상기 발화 정보의 생성을 중단하며, 상기 사용자 장치로부터 입력되는 정보를 상기 서비스 제공자에게 제공하는, 대화 에이전트 장치.
  35. 제34항에 있어서,
    상기 통신 인터페이스는
    상기 대화 에이전트를 통한 대화 재계를 요청하는 신호를 수신하고,
    상기 프로세서는
    상기 대화 재계를 요청하는 신호에 응답하여, 상기 발화 정보의 생성을 재계하는, 대화 에이전트 장치.
  36. 제31항에 있어서,
    상기 통신 인터페이스는
    상기 갱신된 요구 사항 명세를 사용자에게 제공하거나, 상기 발화 히스토리를 상기 사용자에게 제공하거나, 또는 상기 갱신된 요구 사항 명세 및 상기 발화 히스토리를 상기 사용자에게 제공하는, 대화 에이전트 장치.
  37. 제31항에 있어서,
    상기 프로세서는
    상기 갱신된 요구 사항 명세에 포함된 항목들 중 적어도 하나의 항목에 의하여 요구되는 조건이 만족되지 않는 경우, 상기 적어도 하나의 항목을 사용자에게 문의(inquire)하는, 대화 에이전트 장치.
  38. 제31항에 있어서,
    상기 통신 인터페이스는
    사용자 단말의 인터페이스를 통하여 수집된 정보에 기초하여 생성된 상기 요구 사항 명세를 수신하는, 대화 에이전트 장치.
  39. 제31항에 있어서,
    상기 통신 인터페이스는
    상기 대화 에이전트가 상기 서비스의 제공자에게 송신하는 제1 송신 발화, 상기 대화 에이전트가 상기 서비스의 제공자로부터 수신하는 제1 수신 발화, 상기 대화 에이전트가 사용자에게 송신하는 제2 송신 발화, 및 상기 대화 에이전트가 상기 사용자로부터 수신하는 제2 수신 발화 중 적어도 하나를 획득하는, 대화 에이전트 장치.
KR1020180101285A 2018-08-28 2018-08-28 대화 에이전트의 동작 방법 및 그 장치 KR20200024511A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020180101285A KR20200024511A (ko) 2018-08-28 2018-08-28 대화 에이전트의 동작 방법 및 그 장치
US16/356,071 US11056110B2 (en) 2018-08-28 2019-03-18 Operation method of dialog agent and apparatus thereof
CN201910266679.1A CN110909135A (zh) 2018-08-28 2019-04-03 对话代理的操作方法和对话代理设备
EP19172307.1A EP3618062B1 (en) 2018-08-28 2019-05-02 Computer implemented dialog agent and operation method thereof
JP2019154766A JP7460338B2 (ja) 2018-08-28 2019-08-27 対話エージェントの動作方法及びその装置
US17/346,626 US11705128B2 (en) 2018-08-28 2021-06-14 Operation method of dialog agent and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180101285A KR20200024511A (ko) 2018-08-28 2018-08-28 대화 에이전트의 동작 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20200024511A true KR20200024511A (ko) 2020-03-09

Family

ID=66379802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180101285A KR20200024511A (ko) 2018-08-28 2018-08-28 대화 에이전트의 동작 방법 및 그 장치

Country Status (5)

Country Link
US (2) US11056110B2 (ko)
EP (1) EP3618062B1 (ko)
JP (1) JP7460338B2 (ko)
KR (1) KR20200024511A (ko)
CN (1) CN110909135A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220106183A (ko) * 2020-03-20 2022-07-28 구글 엘엘씨 사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019006677T5 (de) * 2019-01-16 2021-11-04 Sony Group Corporation Antwortverarbeitungsvorrichtung und Antwortverarbeitungsverfahren
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931384B1 (en) 1999-06-04 2005-08-16 Microsoft Corporation System and method providing utility-based decision making about clarification dialog given communicative uncertainty
US7444383B2 (en) 2000-06-17 2008-10-28 Microsoft Corporation Bounded-deferral policies for guiding the timing of alerting, interaction and communications using local sensory information
JP4686905B2 (ja) 2000-07-21 2011-05-25 パナソニック株式会社 対話制御方法及びその装置
US7844666B2 (en) 2000-12-12 2010-11-30 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system
US7292689B2 (en) 2002-03-15 2007-11-06 Intellisist, Inc. System and method for providing a message-based communications infrastructure for automated call center operation
US20050165631A1 (en) 2004-01-28 2005-07-28 Microsoft Corporation Time management representations and automation for allocating time to projects and meetings within an online calendaring system
US20060233344A1 (en) 2005-04-14 2006-10-19 Das Subrata K System and method for expedited resolution of inquiries for an automated agent
US7751542B2 (en) 2006-05-04 2010-07-06 Avaya Inc. Feeble ring tones
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080084989A1 (en) 2006-09-22 2008-04-10 International Business Machines Corporation Intelligent Reusable Dialog Components for Converged Dialog and Session Control
EP2144230A1 (en) 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Low bitrate audio encoding/decoding scheme having cascaded switches
US8255225B2 (en) 2008-08-07 2012-08-28 Vocollect Healthcare Systems, Inc. Voice assistant system
KR101553521B1 (ko) 2008-12-11 2015-09-16 삼성전자 주식회사 지능형 로봇 및 그 제어방법
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8830114B2 (en) 2010-09-30 2014-09-09 Toyota Jidosha Kabushiki Kaisha Mobile object detecting apparatus
KR101954774B1 (ko) 2012-08-16 2019-03-06 삼성전자주식회사 문자 데이터를 이용한 음성 통화를 제공하기 위한 전자 장치 및 방법
JPWO2014073612A1 (ja) * 2012-11-08 2016-09-08 日本電気株式会社 会話文生成装置、会話文生成方法及び会話文生成プログラム
US9570090B2 (en) 2015-05-26 2017-02-14 Google Inc. Dialog system with automatic reactivation of speech acquiring mode
CA2957638A1 (en) 2013-08-08 2015-02-12 E-Valuation,Inc. Systems and methods of communicating information regarding interpersonal relationships using biographical imagery
US8964962B1 (en) 2013-10-01 2015-02-24 Avaya Inc. Dialog reorder
US20170017501A1 (en) * 2013-12-16 2017-01-19 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9830044B2 (en) * 2013-12-31 2017-11-28 Next It Corporation Virtual assistant team customization
US9418663B2 (en) 2014-07-31 2016-08-16 Google Inc. Conversational agent with a particular spoken style of speech
US9607102B2 (en) 2014-09-05 2017-03-28 Nuance Communications, Inc. Task switching in dialogue processing
EP3201913A4 (en) 2014-10-01 2018-06-06 Xbrain Inc. Voice and connection platform
JP6670318B2 (ja) 2014-10-22 2020-03-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ソフトウェアアプリケーションにおける分類及びirmの実現
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10262654B2 (en) * 2015-09-24 2019-04-16 Microsoft Technology Licensing, Llc Detecting actionable items in a conversation among participants
KR102151626B1 (ko) 2016-01-12 2020-09-03 네이버 주식회사 통화 중 특정 태스크를 처리하는 장치 및 그 방법
US20170277993A1 (en) 2016-03-22 2017-09-28 Next It Corporation Virtual assistant escalation
JP6686226B2 (ja) 2016-04-18 2020-04-22 グーグル エルエルシー 適切なエージェントの自動化アシスタント呼び出し
KR102329783B1 (ko) 2016-06-13 2021-11-23 구글 엘엘씨 인간 운영자로의 에스컬레이션
US20180025726A1 (en) * 2016-07-22 2018-01-25 International Business Machines Corporation Creating coordinated multi-chatbots using natural dialogues by means of knowledge base
KR102338990B1 (ko) 2017-01-23 2021-12-14 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20190004495A (ko) * 2017-07-04 2019-01-14 삼성에스디에스 주식회사 챗봇을 이용한 태스크 처리 방법, 장치 및 시스템
KR101891492B1 (ko) * 2017-11-03 2018-08-24 주식회사 머니브레인 답변을 변형하여 상황에 맞는 자연어 대화를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
US11212637B2 (en) * 2018-04-12 2021-12-28 Qualcomm Incorproated Complementary virtual audio generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220106183A (ko) * 2020-03-20 2022-07-28 구글 엘엘씨 사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출

Also Published As

Publication number Publication date
EP3618062A1 (en) 2020-03-04
CN110909135A (zh) 2020-03-24
US20210304762A1 (en) 2021-09-30
JP7460338B2 (ja) 2024-04-02
EP3618062B1 (en) 2021-12-29
US11056110B2 (en) 2021-07-06
US11705128B2 (en) 2023-07-18
JP2020034914A (ja) 2020-03-05
US20200075003A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
KR102112814B1 (ko) 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
US11887595B2 (en) User-programmable automated assistant
KR102418511B1 (ko) 서드 파티 에이전트를 사용하기 위한 호출 요청 생성 및 전송
US11037572B1 (en) Outcome-oriented dialogs on a speech recognition platform
US11922925B1 (en) Managing dialogs on a speech recognition platform
KR102178738B1 (ko) 적절한 에이전트의 자동화된 어시스턴트 호출
US9172747B2 (en) System and methods for virtual assistant networks
KR102170088B1 (ko) 인공지능 기반 자동 응답 방법 및 시스템
JP2004288018A (ja) 対話制御システム及び方法
US20180308481A1 (en) Automated assistant data flow
CN111542814A (zh) 改变应答以提供表现丰富的自然语言对话的方法、计算机装置及计算机可读存储介质
US11705128B2 (en) Operation method of dialog agent and apparatus thereof
KR20200011483A (ko) 사용자 구성의 맞춤형 인터렉티브 대화 애플리케이션
CN111556999A (zh) 通过即时提供实质性回答以提供自然语言对话的方法、计算机装置及计算机可读存储介质
Lojka et al. Multi-thread parallel speech recognition for mobile applications
JP7205962B1 (ja) 自動対話のためのシステム
Thymé-Gobbel et al. Conveying Reassurance with Confidence and Confirmation

Legal Events

Date Code Title Description
A201 Request for examination