KR20200006739A - 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법 - Google Patents

대화 시스템, 이를 포함하는 차량 및 대화 처리 방법 Download PDF

Info

Publication number
KR20200006739A
KR20200006739A KR1020180080470A KR20180080470A KR20200006739A KR 20200006739 A KR20200006739 A KR 20200006739A KR 1020180080470 A KR1020180080470 A KR 1020180080470A KR 20180080470 A KR20180080470 A KR 20180080470A KR 20200006739 A KR20200006739 A KR 20200006739A
Authority
KR
South Korea
Prior art keywords
action
vehicle
conversation
user
manager
Prior art date
Application number
KR1020180080470A
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 KR1020180080470A priority Critical patent/KR20200006739A/ko
Priority to US16/207,388 priority patent/US10950233B2/en
Priority to CN201811497621.XA priority patent/CN110503949A/zh
Publication of KR20200006739A publication Critical patent/KR20200006739A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/037Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for occupant comfort, e.g. for automatic adjustment of appliances according to personal settings, e.g. seats, mirrors, steering wheel
    • B60R16/0373Voice control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Navigation (AREA)

Abstract

개시된 발명의 일 측면에 따르면, 사용자와의 대화를 통해 차량의 고장과 관련한 예비 징후를 파악함으로써, 센서에서 측정되지 않은 부분의 진단이 가능하고, 사고를 예방하여 사용자의 안전성을 보장하는 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법을 제공한다.

Description

대화 시스템, 이를 포함하는 차량 및 대화 처리 방법{DIALOGUE PROCESSING APPARATUS, VEHICLE HAVING THE SAME AND DIALOGUE PROCESSING METHOD}
개시된 발명은 사용자와의 대화를 통해 사용자의 의도를 파악하고 사용자에게 필요한 정보나 서비스를 제공하는 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법에 관한 것이다.
차량용 AVN이나 대부분의 모바일 기기는 작은 화면 및 작은 버튼으로 인해, 사용자에게 시각적인 정보를 제공하거나 사용자의 입력을 수신함에 있어 불편함이 발생할 수 있다.
특히, 사용자가 운전 중 시각적인 정보를 확인하거나 기기를 조작하기 위해, 시선을 이동시키고 스티어링 휠에서 손을 떼는 것은 안전 운전에 위협이 되는 요소로 작용한다.
따라서, 사용자와의 대화를 통해 사용자의 의도를 파악하고, 사용자에게 필요한 서비스를 제공하는 대화 시스템이 차량에 적용될 경우 보다 안전하고 편리하게 서비스를 제공할 수 있을 것으로 기대된다.
한편, 차량에는 안전을 위한 여러 센서가 마련된다. 센서는 차량의 고장이나 문제점을 검출한다. 그러나 차량은 센서의 고장 신호가 출력되기 전에 발생하는 예비 징후들이 있다. 예비 징후는 차량의 운전자 또는 탑승자가 청각이나 기타 감각에 의해서 알 수 있다.
(특허문헌 1) KR2013-0035983 A
개시된 발명의 일 측면에 따르면, 사용자와의 대화를 통해 차량의 고장과 관련한 예비 징후를 파악함으로써, 센서에서 측정되지 않은 부분의 진단이 가능하고, 사고를 예방하여 사용자의 안전성을 보장하는 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법을 제공한다.
개시된 일 실시예에 따른 대화 시스템은, 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하는 입력 처리기; 상기 검색 요청에 기초하여 점검 이력 검색의 액션을 결정하고, 상기 액션을 수행하기 위한 해결책의 액션 인자 값을 획득하는 대화 관리기; 상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 결과 처리기;를 포함한다.
상기 대화 관리기는, 상기 상황 정보를 기초로 상기 점검 이력 검색의 액션 수행 가부를 판단할 수 있다.
상기 대화 관리기는, 상기 점검 이력 검색의 액션의 수행 가부를 판단하기 위해서 사용되는 조건 판단 인자의 인자 값을 상기 입력 처리기로 요청할 수 있다.
상기 대화 관리기는, 외부로부터 상기 차량의 점검 이력을 요청할 수 있다.
상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 저장부;를 더 포함할 수 있다.
상기 저장부는, 상기 해결책과 관련된 대화 정책을 저장하고, 상기 결과 처리기는, 상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천할 수 있다.
상기 대화 관리기는, 상기 해결책에 기초하여 상기 개인 정비 이력을 업데이트할 수 있다.
상기 결과 처리기는, 상기 개인 정비 이력에 기초한 응답을 생성할 수 있다.
상기 결과 처리기는, 상기 해결책에 기초하여 상기 차량의 제어를 위한 명령어를 생성할 수 있다.
상기 해결책과 관련된 데이터를 수신하고, 상기 업데이트된 개인 정비 이력을 외부로 전달하는 통신부;를 더 포함할 수 있다.
상기 입력 처리기는, 상기 결과 처리기가 생성하는 응답에 기초한 사용자의 발화에서 상기 해결책에 따른 상기 사용자의 발화에서 피드백을 추출할 수 있다.
상기 대화 관리기는, 상기 피드백에 기초한 액션을 결정하고, 상기 액션을 수행하기 액션 인자 값을 획득할 수 있다.
상기 결과 처리기는, 상기 획득한 액션 인자 값을 이용하여 응답을 생성하고, 상기 피드백을 외부로 전달할 수 있다.
상기 입력 처리기는, 상기 상황 정보에 기초하여 상기 대화 시스템이 사용자보다 먼저 발화를 출력하는 선발화 상황인지 여부를 판단하고, 상기 선발화 상황인 것으로 판단되면 상기 점검 이력의 검색 요청에 대응되는 액션 및 상기 대화 시스템이 출력할 발화 내용을 포함하는 선발화 메시지 중 적어도 하나를 획득할 수 있다.
개시된 다른 실시예에 따른 차량은, 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하는 입력 처리기; 상기 검색 요청에 기초하여 점검 이력 검색의 액션을 결정하고, 상기 액션을 수행하기 위한 해결책의 액션 인자 값을 획득하는 대화 관리기; 상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 결과 처리기;를 포함하는 대화 시스템을 포함한다.
상기 대화 관리기는, 상기 상황 정보를 기초로 상기 점검 이력 검색의 액션 수행 가부를 판단할 수 있다.
상기 대화 관리기는, 상기 점검 이력 검색의 액션의 수행 가부를 판단하기 위해서 사용되는 조건 판단 인자의 인자 값을 상기 입력 처리기로 요청할 수 있다.
상기 대화 관리기는, 외부로부터 상기 차량의 점검 이력을 요청할 수 있다.
상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 저장부;를 더 포함할 수 있다.
상기 저장부는, 상기 해결책과 관련된 대화 정책을 저장하고, 상기 결과 처리기는, 상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천할 수 있다.
개시된 또 다른 실시예에 따른 대화 처리 방법은, 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하고; 상기 요청에 기초하여 점검 이력 검색의 액션을 결정하고; 상기 액션에 수행하기 위한 해결책의 액션 인자 값을 획득하고; 상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 것;을 포함한다.
외부로부터 상기 차량의 점검 이력을 요청하는 것;을 더 포함할 수 있다.
상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 것;을 더 포함할 수 있다.
상기 저장하는 것은, 상기 해결책과 관련된 대화 정책을 저장하고, 상기 응답을 생성하는 것은, 상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천하는 것;을 포함할 수 있다.
상기 응답하는 것은, 상기 개인 정비 이력에 기초한 응답을 생성하고, 상기 해결책에 기초하여 상기 차량의 제어를 위한 명령어를 생성하는 것;을 포함할 수 있다.
상기 해결책에 기초하여 상기 개인 정비 이력을 업데이트하고, 상기 해결책과 관련된 데이터를 수신하고, 상기 업데이트된 개인 정비 이력을 외부로 전달하는 것;을 포함할 수 있다.
상기 상황 정보에 기초하여 사용자보다 먼저 발화를 출력하는 선발화 상황인지 여부를 판단하고, 상기 선발화 상황인 것으로 판단되면 상기 점검 이력의 검색 요청에 대응되는 액션 및 출력할 발화 내용을 포함하는 선발화 메시지 중 적어도 하나를 획득하는 것;을 더 포함할 수 있다.
일 측면에 따른 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법에 의하면, 사용자와의 대화를 통해 차량의 고장과 관련한 예비 징후를 파악하고, 차량의 센서로 측정되지 않는 부분을 고려하여 차량 고장에 정확한 진단이 가능하다.
또한, 차량의 정비 이력 등 다양한 상태 정보를 활용하여 차량 고장을 사전에 진단하고, 미리 사고를 예방할 수 있다.
또한, 예비 징후에 대한 진단 후, 사용자에게 피드백함으로써, 사전 진단의 학습 데이터를 늘리고, 이에 따라 정확한 사전 진단이 강화될 수 있다.
도 1은 일 실시예에 따른 대화 시스템의 제어 블록도이다.
도 2는 차량 내부의 구성을 나타낸 도면이다.
도 3 내지 도 5는 실시예와 관련하여 대화 시스템과 운전자 사이에 주고 받을 수 있는 대화의 예시를 나타낸 도면이다.
도 6 및 도 7은 대화 시스템과 차량의 구성 요소들 사이의 연결 관계를 간략하게 나타낸 제어 블록도이다.
도 8 및 도 9는 대화 시스템의 구성 요소와 차량의 구성 요소들 사이의 연결 관계를 간략하게 나타낸 제어 블록도이다.
도 10은 대화 시스템이 차량에 마련되는 차량 단독 방식에 대한 제어 블록도이다.
도 11 및 도 12는 대화 시스템이 원격 서버에 마련되고 차량이 사용자와 대화 시스템을 연결하는 게이트웨이의 역할만 하는 차량 게이트웨이 방식에 대한 제어 블록도이다.
도 13은 차량 게이트웨이 방식에서 차량이 입력 처리와 출력 처리를 일부 수행할 수 있는 경우에 대한 제어 블록도이다.
도 14는 원격 대화 시스템 서버와 차량이 모두 대화 처리를 수행할 수 있는 하이브리드 방식에 대한 제어 블록도이다.
도 15및 도 16은 차량에 연결된 모바일 기기가 사용자와 원격 대화 시스템 서버를 연결하는 모바일 게이트웨이 방식에 대한 제어 블록도이다.
도 17은 모바일 기기에 대화 시스템이 탑재되는 모바일 단독 방식에 대한 제어 블록도이다.
도 18, 도 19a 내지 도 19c는 대화 시스템의 구성 중 입력 처리기의 구성이 세분화된 제어 블록도이다.
도 20a 및 도 20b는 상황 이해 테이블에 저장되는 정보의 예시를 나타낸 도면이고, 도 20c 내지 도 20d는 선발화와 관련된 상황 정보와 관련된 예시이다.
도 21은 대화 관리기의 구성이 세분화된 제어 블록도이고, 도 22는 연관 액션 DB에 저장된 정보의 예시를 나타낸 도면이고, 도 23은 액션 수행 조건 DB에 저장된 정보의 예시를 나타낸 도면이며, 도 24는 액션 인자 DB에 저장된 정보의 예시를 나타낸 도면이다.
도 25는 결과 처리기의 구성을 세분화한 제어 블록도이다.
도 26 내지 도 42는 사용자가 차량의 상태가 이상하다는 발화를 입력한 경우에 대화 시스템이 입력을 처리하고, 대화를 관리하고, 해결책을 제안하는 구체적인 예시를 나타낸 도면이다.
도 43은 일 실시예에 따른 대화 처리 방법에 있어서, 정비 이력 검색을 수행하기 위한 방법을 나타낸 순서도이고, 도44는 정비 이력 검색 결과를 처리하기 위한 방법을 나타낸 순서도이다.
도 45는 개시된 일 예에 따른 다양한 예비 징후에 대한 예시이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 모듈, 부재, 블록'이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법의 실시예를 상세하게 설명한다.
일 실시예에 따른 대화 시스템은 사용자의 음성 및 음성 외 입력을 이용하여 사용자의 의도를 파악하고 사용자의 의도에 적합한 서비스 또는 사용자에게 필요한 서비스를 제공하는 장치로서, 서비스 제공의 일 수단 또는 사용자의 의도를 명확히 파악하기 위한 일 수단으로 시스템 발화를 출력함으로써 사용자와 대화를 수행할 수 있다.
당해 실시예에서 사용자에게 제공되는 서비스는 정보의 제공, 차량의 제어, 오디오/비디오/내비게이션 기능의 실행, 외부 서버로부터 가져온 컨텐츠의 제공 등 사용자의 필요나 사용자의 의도에 부응하기 위해 수행되는 모든 동작을 포함할 수 있다.
또한, 일 실시예에 따른 대화 시스템은 차량 환경에 특화된 대화 처리 기술을 제공함으로써, 차량이라는 특수한 환경에서 사용자의 의도를 정확히 파악할 수 있다.
이러한 대화 시스템과 사용자를 연결하는 게이트 웨이는 차량 또는 차량에 연결된 모바일 기기가 될 수 있다. 후술하는 바와 같이, 대화 시스템은 차량에 마련될 수도 있고, 차량 외부의 원격 서버에 마련되어 차량 또는 차량에 연결된 모바일 기기와의 통신을 통해 데이터를 주고 받을 수도 있다.
또한, 대화 시스템의 구성 요소 중 일부는 차량에 마련되고 일부는 원격 서버에 마련되어 대화 시스템의 동작을 차량과 원격 서버에서 부분적으로 수행하는 것도 가능하다.
도 1은 일 실시예에 따른 대화 시스템의 제어 블록도이다.
도 1을 참조하면, 일 실시예에 따른 대화 시스템(100)은 차량의 고장과 관련된 예비 징후에 관한 상태 정보를 포함하는 사용자의 음성 및 음성 외 입력을 포함하는 사용자 입력이나 차량과 관련된 정보 또는 사용자와 관련된 정보를 포함하는 입력을 처리하는 입력 처리기(110), 입력 처리기(110)의 처리 결과를 이용하여 사용자의 의도를 파악하고, 사용자의 의도나 차량의 상태에 대응되는 액션을 결정하는 대화 관리기(120), 대화 관리기(120)의 출력 결과에 따라 특정 서비스를 제공하거나 대화를 계속 이어 나가기 위한 시스템 발화를 출력하는 결과 처리기(130) 및 대화 시스템(100)이 후술하는 동작을 수행하기 위해 필요한 각종 정보를 저장하는 저장부(140)를 포함한다.
입력 처리기(110)는 사용자 음성과 음성 외 입력, 두 가지 종류의 입력을 수신할 수 있다. 음성 외 입력은 사용자의 제스처 인식이나, 입력 장치의 조작을 통해 입력되는 사용자의 음성 외 입력, 차량의 상태를 나타내는 차량 상태 정보, 차량의 주행 환경과 관련된 주행 환경 정보, 사용자의 상태를 나타내는 사용자 정보 등을 포함할 수 있다. 이러한 정보들 외에도 차량과 사용자와 관련된 정보로서, 사용자의 의도를 파악하거나 사용자에게 서비스를 제공하기 위해 사용될 수 있는 정보이면, 모두 입력 처리기(110)의 입력이 될 수 있다. 사용자는 운전자와 탑승자를 모두 포함할 수 있다.
입력 처리기(110)는 입력된 사용자 음성을 인식하여 텍스트 형태의 발화문으로 변환하고, 사용자의 발화문에 자연어 이해(Natural Language Understanding) 기술을 적용하여 사용자의 의도를 파악한다.
또한, 입력 처리기(110)는 사용자 음성 외에 차량의 상태나 주행 환경과 관련된 정보를 수집하고, 수집된 정보를 이용하여 상황을 이해한다.
입력 처리기(110)는 자연어 이해를 통해 파악한 사용자의 의도와 상황에 관련된 정보 등을 대화 관리기(120)로 전달한다.
대화 관리기(120)는 입력 처리기(110)로부터 전달된 사용자의 의도, 상황에 관련된 정보 등에 기초하여 사용자의 의도와 현재 상황에 대응되는 액션을 결정하고, 해당 액션을 수행하기 위해 필요한 인자들을 관리한다.
당해 실시예에서 액션은 특정 서비스를 제공하기 위해 수행되는 모든 동작을 의미할 수 있으며, 액션의 종류는 미리 정의될 수 있다. 경우에 따라, 서비스의 제공과 액션의 수행은 동일한 의미일 수 있다.
예를 들어, 도메인/액션 추론 규칙 DB(141, 도 19a 참조)에 차량의 자체 점검, 정비 이력 검색, 정비소 추천 등과 같은 액션이 미리 정의될 수 있고, 저장된 추론 규칙에 따라 사용자의 발화에 대응되는 액션, 즉 사용자가 의도하는 액션을 미리 정의된 액션 중에서 추출할 수 있다. 또한, 차량에 발생한 이벤트와 연관된 액션이 미리 정의되어 연관 액션 DB(146b, 도 21 참조)에 저장될 수 있다.
액션의 종류에 대해서는 제한을 두지 않으며, 대화 시스템(100)이 차량(200) 또는 모바일 기기(400)를 통해 수행 가능한 것으로서, 미리 정의되고, 그 추론 규칙이나 다른 액션/이벤트와의 관계 등이 저장되어 있으면 액션이 될 수 있다.
대화 관리기(120)는 결정된 액션에 관한 정보를 결과 처리기(130)로 전달한다.
결과 처리기(130)는 전달된 액션을 수행하기 위해 필요한 대화 응답 및 명령어를 생성하여 출력한다. 대화 응답은 텍스트, 이미지 또는 오디오로 출력될 수 있고, 명령어가 출력되면 출력된 명령어에 대응되는 차량 제어, 외부 컨텐츠 제공 등의 서비스가 수행될 수 있다.
일 예로, 결과 처리기(130)는 예비 징후와 관련된 차량의 진단을 위해서 외부로 현재 차량의 유사 차종/유사 연식 내 유사한 사례를 검색하도록 요청하거나, 현재 차량의 개별 정비 이력을 요청할 수 있다.
저장부(140)는 대화 처리 및 서비스 제공에 필요한 각종 정보를 저장한다. 예를 들어, 자연어 이해에 사용되는 도메인, 액션, 화행, 개체명과 관련된 정보를 미리 저장할 수 있고, 입력된 정보로부터 상황을 이해하기 위해 사용되는 상황 이해 테이블을 저장할 수도 있으며, 차량에 마련된 센서가 감지한 데이터, 사용자와 관련된 정보, 액션 수행을 위해 필요한 정보를 미리 저장할 수도 있다.
앞서 언급한 실시예의 경우, 저장부(140)는 외부에서 전달하는 예비 징후와 관련된 유사 사례, 개별 정비 이력 및 해결책을 저장하고 대화 관리기(120)에 전달한다. 이를 통해서 대화 관리기(120)는 예비 징후에 대한 해결책을 제시하는 응답을 생성한다. 이와 관련된 자세한 설명은 이하의 도면을 통해 후술한다.
한편, 대화 시스템(100)은 차량 환경에 특화된 대화 처리 기술을 제공한다. 대화 시스템(100)의 구성요소가 전부 차량에 포함될 수도 있고, 일부만 포함될 수도 있다. 대화 시스템(100)은 원격 서버에 마련되고 차량은 대화 시스템(100)과 사용자 사이의 게이트웨이의 역할만 할 수도 있다. 어느 경우이던지, 대화 시스템(100)은 차량 또는 차량과 연결된 모바일 기기를 통해 사용자와 연결될 수 있다.
도 2는 차량 내부의 구성을 나타낸 도면이다.
도 2를 참조하면, 차량(200) 내부의 대시보드(201)의 중앙 영역인 센터페시아(203)에는 오디오 기능, 비디오 기능, 내비게이션 기능 또는 전화 걸기 기능을 포함하는 차량의 제어를 수행하기 위해 필요한 화면을 표시하는 디스플레이(231)와 사용자의 제어 명령을 입력 받기 위한 입력 버튼(221)이 마련될 수 있다.
또한, 운전자의 조작 편의성을 위해 스티어링 휠(207)에도 입력 버튼(223)이 마련될 수 있고, 운전석(254a)과 조수석(254b) 사이의 센터 콘솔 영역(202)에 입력 버튼의 역할을 수행하는 조그 셔틀(225)이 마련될 수도 있다.
디스플레이(231), 입력 버튼(221) 및 각종 기능을 전반적으로 제어하는 프로세서를 포함하는 모듈을 AVN(Audio Video Navigation) 단말이라 할 수도 있고, 헤드유닛(Head Unit)이라 할 수도 있다.
디스플레이(231)는 LCD(Liquid Crystal Display), LED(Light Emitting Diode), PDP(Plasma Display Panel), OLED(Organic Light Emitting Diode), CRT(Cathode Ray Tube) 등의 다양한 디스플레이 장치 중 하나로 구현될 수 있다.
입력 버튼(221)은 도 2에 도시된 바와 같이 디스플레이(231)와 인접한 영역에 하드 키 타입으로 마련될 수도 있고, 디스플레이(231)가 터치 스크린 타입으로 구현되는 경우에는 디스플레이(231)가 입력 버튼(221)의 기능도 함께 수행할 수 있다.
차량(1)은 사용자의 명령을 음성 입력 장치(210)를 통해 음성으로 입력 받을 수 있다. 음성 입력 장치(210)는 음향을 입력 받아 전기적인 신호로 변환하여 출력하는 마이크로폰을 포함할 수 있다.
효과적인 음성의 입력을 위하여 음성 입력 장치(210)는 도 2에 도시된 바와 같이 헤드라이닝(205)에 마련될 수 있으나, 차량(200)의 실시예가 이에 한정되는 것은 아니며, 대시보드(201) 위에 마련되거나 스티어링 휠(207)에 마련되는 것도 가능하다. 이 외에도 사용자의 음성을 입력 받기에 적합한 위치이면 어디든 제한이 없다.
차량(200) 내부에는 사용자와 대화를 수행하거나, 사용자가 원하는 서비스를 제공하기 위해 필요한 음향을 출력하는 스피커(232)가 마련될 수 있다. 일 예로, 스피커(232)는 운전석 도어(253a) 및 조수석 도어(253b) 내측에 마련될 수 있다.
스피커(232)는 내비게이션 경로 안내를 위한 음성, 오디오/비디오 컨텐츠에 포함되는 음향 또는 음성, 사용자가 원하는 정보나 서비스를 제공하기 위한 음성, 사용자의 발화에 대한 응답으로서 생성된 시스템 발화 등을 출력할 수 있다.
일 실시예에 따른 대화 시스템(100)은 차량 환경에 특화된 대화 처리 기술을 이용하여 사용자의 라이프스타일에 최적화된 서비스를 제공하고, 커넥티드카(Connected Car), 사물인터넷(IoT), 인공지능(AI) 등의 기술을 이용한 새로운 서비스를 구성할 수 있다.
구체적으로, 사용자가 차량의 상태 이상을 감지하고 예비 징후에 대해 언급하면, 대화 시스템(100)은 사용자의 의도를 파악한다. 대화 시스템(100)은 차량(1) 스스로 자체 진단을 실시하도록 제어할 수 있고, 센서 등에 검출되지 않는 예비 징후와 관련된 사례를 외부로 전달하여 해결책을 마련할 수 있다. 마지막으로 대화 시스템(100)은 해결책을 응답하고, 사용자의 의도에 따라 차량의 진단 등 다양한 서비스를 제공할 수 있다.
도 3 내지 도 5는 실시예와 관련하여 대화 시스템과 운전자 사이에 주고 받을 수 있는 대화의 예시를 나타낸 도면이다.
도 3을 참조하면, 운전자가 차량의 상태 이상을 포함한 발화(U1: 브레이크가 뻑뻑해.)를 입력하면, 대화 시스템(100)은 사용자의 의도를 파악하였다는 발화(S1: 해결책을 검색 중입니다.)를 출력할 수 있다.
이후, 대화 시스템(100)은 상태 이상에 따라 차량의 진단 결과를 응답하는 발화(S2: 브레이크 페달의 변경이 필요할 것 같습니다.)를 출력할 수 있다.
또한, 대화 시스템(100)은 진단 결과에 따라 해결책을 제안하는 발화(S3: 정비소로 안내 할까요?)를 출력할 수도 있다.
운전자는 대화 시스템(100)이 제안하는 고장 원인 및 해결책을 수용하고, 정비소의 안내를 요청하는 발화(U2: 그래, 가까운 정비소로 가자.)를 입력할 수 있다. 대화 시스템은(100)은 현재 위치에서 가까운 정비소에 대한 정보를 제공하는 발화(S4: A 정비소로 목적지를 설정하였습니다.)를 출력한다. 이와 함께 대화 시스템(100)은 안내 요청에 대한 응답(S4: 길을 안내할까요?)을 출력할 수 있다.
운전자가 응답을 수용하는 발화(U3: 그래.)를 입력하면, 대화 시스템(100)은 길 안내를 시작하겠다는 발화(S5: 안내를 시작합니다.)를 출력하면서, 내비게이션 서비스를 실행하도록 차량을 제어하는 신호를 함께 출력할 수 있다.
전술한 대화 이력은 대화 정책 DB(도 21의 148)에 저장될 수 있다. 하지만 대화 이력이 항상 반복되는 것은 아니고, 사용자의 발화 및 대화 액션 상태에 따라 다양하게 변경될 수 있다.
도 4를 참조하면, 운전자가 차량의 상태 이상을 포함한 발화(U1: 차에서 엔진소리가 크게 나.)를 입력하면, 대화 시스템(100)은 도 3과 달리, S1을 생략하고, 차량의 진단 결과를 응답하는 발화(S2: 타이밍 벨트의 교체시기가 지난 것 같습니다.)를 출력할 수 있다.
또한, 대화 시스템(100)은 진단 결과에 따라 해결책을 제안하는 발화(S3: 정비소를 예약 할까요?)를 출력할 수 있다.
운전자는 도 3과 달리, 정비소를 예약 응답을 거절하는 발화(U2: 아니. 타이밍 벨트는 최근에 점검했어.)를 입력하고, 차량의 점검을 요청하는 발화(U3: 다른 점검사항을 확인해줘.)를 입력할 수 있다. 대화 시스템(100)은 요청에 따라 외부로 차량의 개인 정비 이력 및 유사 차종/유사 연식의 유사 사례의 검색을 요청하고, 운전자의 요청에 응답하는 발화(S4: 정비 이력을 검색중입니다.)를 출력할 수 있다. 또한, 대화 시스템(100)은 외부에서 전달되는 해결책, 예를 들어 엔진과 관련하여 보고된 차량의 상태 이상을 응답하는 발화(S4: 엔진 오일 교환이 필요한 것 같습니다.)를 출력할 수 있다.
이에 따라 운전자는 다시 검색을 요청하는 발화(U4: 교환 시기를 알려줘.)를 입력할 수 있다. 이에 대화 시스템(100)은 대화의 흐름에 따라 엔진 오일의 교환시기에 관한 정보를 요청하는지 판단할 수 있고, 이에 차량의 개인 정비 이력을 검색하여 이에 응답하는 발화(S5: 점검 이력에 따라 엔진오일의 교환 시기는 2017년 09월 01일입니다.)를 출력할 수 있다.
다른 실시예와 관련하여 도 5를 참조하면, 운전자는 차량의 정비 이력의 검색을 요청하는 발화(U1: 내 차 점검할 사항이 있니?)를 입력할 수 있다. 대화 시스템(100)은 외부 서버 등에 저장된 개인 정비 이력을 검색하고, 검색 결과를 출력하는 발화(S1: 현재 차량의 연식과 주행거리를 볼 때, 차량 노후화로 인한 엔진 교체가 필요할 것 같습니다.)를 출력할 수 있다.
운전자는 응답과 관련하여 새롭게 정비소 예약을 요청하면서, 어느 정비소를 예약하라는 구체적인 발화를 입력하지 않을 수 있다. 예를 들어 운전자는 정비소를 특정하지 않고, 예약을 요청하는 발화(U2: 그래? 정비소 예약해줘.)를 입력하면, 대화 시스템(100)은 운전자가 의도하는 구체적인 정비소를 판단할 수 있다. 정비소에 대한 모호성을 해결한 후, 대화 시스템(100)은 스스로 판단한 정비소를 확인하는 발화와 함께 요청에 따른 응답을 확인하는 발화(S2: 자주 방문했던 정비소로 B 정비소가 있습니다. B 정비소에 예약을 신청할까요?)를 출력할 수 있다.
운전자는 단순히 대화 시스템(100)의 질의에 동의하는 발화(U4': 그래)를 입력함으로써 해당 주유소로의 길 안내를 요청할 수 있다. 대화 시스템(100)은 운전자가 정비소 예약에 관한 구체적인 지시를 요청하지 않아도, 사용자의 의도를 파악하고, 예약 신청에 관한 진행을 확인하는 발화(S3: B정비소에 엔진교체를 위한 예약을 신청합니다.)를 출력할 수 있다.
이와 같이, 대화 시스템(100)은 차량에서 발생하는 고장의 예비 징후의 언급에 따라 해결책을 검색하여 제시하고, 운전자에게 점검에 관한 구체적인 대안을 제시함으로써, 사용자가 원하는 서비스를 제공할 수 있다.
도 6 및 도 7은 대화 시스템과 차량의 구성 요소들 사이의 연결 관계를 간략하게 나타낸 제어 블록도이다.
도 6을 참조하면, 대화 시스템(100)에 입력되는 사용자의 음성은 차량(200)에 마련된 음성 입력 장치(210)를 통해 입력될 수 있다. 앞서 도 2에서 설명한 바와 같이, 음성 입력 장치(210)는 차량(200) 내부에 마련된 마이크로폰을 포함할 수 있다.
사용자 입력 중 음성을 제외한 입력은 음성 외 입력 장치(220)를 통해 입력될 수 있다. 음성 외 입력 장치(220)는 사용자의 조작을 통해 명령을 입력 받는 입력 버튼(221, 223)과 조그 셔틀(225)을 포함할 수 있다.
또한, 음성 외 입력 장치(220)는 사용자를 촬영하는 카메라를 포함하는 것도 가능하다. 카메라로 촬영한 영상을 통해, 명령 입력의 일 수단으로 사용되는 사용자의 제스처, 표정 또는 시선 방향을 인식할 수 있다. 또는, 카메라로 촬영한 영상을 통해 사용자의 상태(졸음 상태 등)를 파악하는 것도 가능하다.
차량에 관한 정보는 차량 제어기(240)를 통해 대화 시스템(100)에 입력될 수 있다. 차량에 관한 정보는 차량(200)에 마련된 각종 센서를 통해 획득된 차량 상태 정보 또는 주변 상황 정보를 포함할 수 있고, 차량의 유종과 같이 차량(200)에 기본적으로 저장된 정보도 포함할 수 있다.
대화 시스템(100)은 음성 입력 장치(210)를 통해 입력된 사용자 음성, 음성 외 입력 장치(220)를 통해 입력된 사용자의 음성 외 입력, 차량 제어기(240)를 통해 입력된 각종 정보를 이용하여 사용자의 의도와 상황을 파악하고, 사용자의 의도에 대응되는 액션을 수행하기 위한 응답을 출력한다.
대화자 출력 장치(230)는 대화자에게 시각적, 청각적 또는 촉각적인 출력을 제공하는 장치로서, 차량(200)에 마련된 디스플레이(231) 및 스피커(232)를 포함할 수 있다. 디스플레이(231) 및 스피커(232)는 사용자의 발화에 대한 응답, 사용자에 대한 질의, 또는 사용자가 요청한 정보를 시각적 또는 청각적으로 출력할 수 있다. 또는, 스티어링 휠(207)에 진동기를 장착하여 진동을 출력하는 것도 가능하다.
또한, 차량 제어기(240)는 대화 시스템(100)으로부터 출력되는 응답에 따라, 사용자의 의도나 현재 상황에 대응되는 액션을 수행하기 위해 차량(200)을 제어할 수 있다.
한편, 차량(200)은 차량(200)에 마련된 센서를 통해 획득된 데이터뿐만 아니라, 통신 장치(280)를 통해 외부 컨텐츠 서버(300) 또는 외부 기기로부터 획득된 정보, 예를 들어 유사 차종/유사 연식에 따른 차량 고장의 유사 사례, 개인 정비 이력을 수집하여 대화 시스템(100)에 전달할 수 있다.
도 7을 참조하면, 차량 제어기(240)는 차량의 내부에 마련된 센서 등을 통해서 전달되는 신호와 차량의 외부와 통신하여 전달되는 신호로 구분될 수 있다.
구체적으로 잔유량, 강우량, 강우 속도, 주변 장애물 정보, 속도, 엔진 온도, 타이어 공기압, 현재 위치 등과 같이 차량에 마련된 센서로부터 획득되는 정보는 내부 신호 제어기(241)를 통해 대화 시스템(100)에 입력될 수 있다.
V2X(Vehicle to Everything)를 통해 외부에서 획득된 주행 환경 정보는 외부 신호 제어기(242)를 통해 대화 시스템(100)에 입력될 수 있다. V2X는 차량이 주행하면서 도로 인프라 및 다른 차량과 상호 통신하면서 교통 상황 등 각종 유용한 정보를 교환 및 공유하는 것을 의미한다.
V2X 통신은 차량과 인프라 간(V2I: Vehicle-to-Infrastructure, 이하 V2I) 통신, 차량 간(V2V: Vehicleto-Vehicle), 차량과 모바일 기기 간(V2N: Vehicle-to-Nomadic devices) 통신을 포함할 수 있다. 따라서, V2X 통신을 이용하면, 차량끼리 직접 통신하거나, 또는 거리에 설치되어 있는 인프라와 통신하여 전방의 교통 정보, 다른 차량의 접근 또는 추돌 가능성 등의 정보를 주고 받고 운전자에게 알려줄 수 있다.
따라서, 외부 신호 제어기(242)를 통해 대화 시스템(100)에 입력되는 주행 환경 정보는 전방의 교통 정보, 주변 차량의 접근 정보, 다른 차량과의 추돌 경고, 실시간 교통 상황, 돌방 상황, 교통흐름 제어 상태 등을 포함할 수 있다.
도면에 도시되어 있지는 않으나, V2X 를 통해 획득하는 신호 역시 통신 장치(280)를 통해 차량(200)에 입력될 수도 있다.
차량 제어기(240)는 전술한 동작과 후술하는 동작을 수행하기 위한 프로그램이 저장되는 메모리 및 저장된 프로그램을 실행시키는 프로세서를 포함할 수 있다. 메모리와 프로세서는 각각 적어도 하나 마련될 수 있고, 복수 개 마련되는 경우에는 이들이 하나의 칩 상에 집적될 수도 있고 물리적으로 분리될 수도 있다.
또한, 내부 신호 제어기(241)와 외부 신호 제어기(242)는 동일한 프로세서에 의해 구현될 수도 있고, 별도의 프로세서에 의해 구현될 수도 있다.
도 8 및 도 9는 대화 시스템의 구성 요소와 차량의 구성 요소들 사이의 연결 관계를 간략하게 나타낸 제어 블록도이다.
도 8을 참조하면, 음성 입력 장치(210)로부터 전송된 사용자 음성은 입력 처리기(110) 내의 음성 입력 처리기(111)로 입력되고, 음성 외 입력 장치(220)로부터 전송된 사용자의 음성 외 입력은 입력 처리기(110) 내의 상황 정보 처리기(112)로 입력된다.
상황 정보 처리기(112)는 차량 상태 정보, 주행 환경 정보, 사용자 정보 등에 기초하여 상황을 이해한다. 대화 시스템(100)은 이러한 상황 이해를 통해 사용자의 의도를 더 정확히 파악하거나 현재 사용자에게 필요한 서비스를 효과적으로 찾을 수 있다.
결과 처리기(130)로부터 출력되는 응답은 대화자 출력 장치(230) 또는 차량 제어기(240)에 입력되어 차량(200)으로 하여금 사용자에게 필요한 서비스를 제공할 수 있게 한다. 또는, 외부 컨텐츠 서버(300)에 전송되어 사용자가 필요로 하는 서비스를 요청할 수 있다.
차량 제어기(240)로부터 전송되는 차량 상태 정보, 주행 환경 정보, 사용자 정보 등은 저장부(140)에 저장된다.
도 9를 참조하면, 저장부(140)는 장기 메모리(143)와 단기 메모리(144)를 포함할 수 있다. 저장부(140)에 저장되는 데이터는 데이터의 중요성과 영속성 및 설계자의 의도에 따라 단기, 장기 메모리로 구분되어 저장될 수 있다.
단기 메모리(144)는 이전에 수행한 대화를 저장할 수 있다. 이전에 수행한 대화는 현재 시점으로부터 기준 시간 이내에 수행한 대화일 수도 있다. 또는, 사용자와 대화 시스템(100) 사이의 발화 내용의 용량이 기준치가 될 때까지 계속 대화가 저장될 수도 있다.
일 예로, 사용자가 "브레이크가 뻑뻑해"라고 발화하면, 대화 시스템(100)은 외부 컨텐츠 서버(300)를 통해 현재 사용자가 운전 중인 차량과 유사 차종/유사 연식에서 브레이크의 상태 이상에 대한 정보를 검색하거나, 현재 차량의 정비 이력을 검색하도록 요청한다. 외부 컨텐츠 서버(300)는 브레이크 페달의 변경이 필요하다는 검색 결과를 제공할 수 있다. 사용자가 검색 결과에 동의하면, 단기 메모리(144)에 차량의 상태 이상에 대한 정보부터 해결책에 대한 대화 내용이 저장될 수 있다.
또는, 대화 내용 전체가 저장되는 것뿐만 아니라, 대화 내용에 포함된 특정 정보를 저장하는 것도 가능하다. 예를 들어, 단기 메모리(144) 또는 장기 메모리(143)에 브레이크 페달의 변경에 대한 해결책 즉, 정비소 안내 대화가 저장되는 것도 가능하다.
예를 들어, 대화 시스템(100)은 브레이크 페달의 변경을 제안하면서, 정비소 안내를 함께 추천할 수 있다. 사용자가 "그래 가까운 정비소로 안내해줘"라고 발화하면, 대화 시스템(100)은 사용자의 현재 위치에서 거리상 가까운 정비소를 검색하고, "A 정비소로 안내합니다."라는 응답을 출력할 수 있다.
장기 메모리(143)는 데이터의 영속성 유무에 따라 데이터를 저장할 수 있다. 예를 들어, 가족이나 친구의 전화 번호, 집이나 회사와 같은 POI(Point of Interest) 정보, 특정 인자에 대한 사용자의 선호도 등은 데이터의 영속성이 보장되는 것으로 판단하고, 장기 메모리(143)에 저장할 수 있다. 반면, 데이터의 영속성이 보장되지 않는 것으로 판단되는 데이터는 단기 메모리(144)에 저장될 수 있다.
일 예로, 사용자의 현재 위치는 일시적인 데이터이므로 단기 메모리(144)에 저장될 수 있고, 정비소에 대한 위치는 이후에도 사용 가능한 영속적인 데이터로 볼 수 있으므로 장기 메모리(144)에 저장될 수 있다.
또한, 대화 시스템(100)은 장기 메모리(143)와 단기 메모리(144)에 저장된 데이터를 이용하여 사용자에게 선제적으로 서비스나 정보를 제공해줄 수도 있다.
예를 들어, 장기 메모리(143)에 사용자가 선호하는 정비소에 대한 정보가 저장될 수 있다. 대화 시스템(100)은 외부 컨텐츠 서버(300)로부터 차량의 상태 이상에 대한 해결책을 획득한 후, 사용자에게 "브레이크 페달의 변경을 위해서 선호하는 B 정비소로 안내할까요?"라는 정보를 제공해줄 수 있다.
또는, 단기 메모리(144)에 차량의 점검 사항에 정보가 저장될 수 있다. 대화 시스템(100)은 외부 컨텐츠 서버(300)로부터 수신하고 단기 메모리(1440)에 저장된 차량의 개인 정비 이력을 분석하여 "엔진 오일 교환이 필요합니다. 점검 이력에 따라 엔진 오일의 교환시기는 2017년 09월 01일입니다."라는 정보를 제공해 줄 수 있다.
도 10은 대화 시스템이 차량에 마련되는 차량 단독 방식에 대한 제어 블록도이다.
차량 단독 방식에서는 도 10에 도시된 바와 같이, 입력 처리기(110), 대화 관리기(120), 결과 처리기(130) 및 저장부(140)를 포함하는 대화 시스템(100)이 차량(200)에 포함될 수 있다.
대화 시스템(100)이 차량(200)에 포함되면, 차량(200)이 자체적으로 사용자와의 대화를 처리하고 사용자에게 필요한 서비스를 제공해줄 수 있다. 다만, 대화 처리 및 서비스 제공을 위해 필요한 정보는 외부 컨텐츠 서버(300)로부터 가져올 수 있다.
차량 감지부(260)가 감지한 잔유량, 강우량, 강우 속도, 주변 장애물 정보, 타이어 공기압, 현재 위치, 엔진 온도, 차량 속도 등과 같은 차량 상태 정보 또는 주행 환경 정보는 차량 제어기(240)를 통해 대화 시스템(100)에 입력된다.
또한, 차량 제어기(240)는 대화 시스템(100)이 출력한 응답에 따라 차량(200)에 마련된 공조 장치(251), 윈도우(252), 도어(253), 시트(254) 또는 AVN(255) 등을 제어할 수 있다.
예를 들어, 대화 시스템(100)이 사용자의 의도 또는 사용자에게 필요한 서비스가 차량(200) 내부의 온도를 낮추는 것이라고 판단하고, 이에 대응되는 명령어를 생성하여 출력하면, 차량 제어기(240)가 공조 장치(251)를 제어하여 차량(200) 내부의 온도를 낮출 수 있다.
다른 예로, 대화 시스템(100)이 사용자의 의도 또는 사용자에게 필요한 서비스가 운전석 윈도우(252a)를 올리는 것이라고 판단하고, 이에 대응되는 명령어를 생성하여 출력하면, 차량 제어기(240)가 윈도우(252)를 제어하여 운전석 윈도우(252a)를 올릴 수 있다.
또 다른 예로, 대화 시스템(100)이 사용자의 의도에 대응되는 서비스 또는 사용자에게 필요한 서비스가 특정 목적지로의 경로 안내라고 판단하고, 이에 대응되는 명령어를 생성하여 출력하면, 차량 제어기(240)가 AVN(255)을 제어하여 경로 안내를 수행할 수 있다. 필요한 경우, 통신 장치(280)가 외부 컨텐츠 서버(300)로부터 지도 데이터, POI 정보 등을 가져와 서비스 제공에 이용할 수 있다.
도 11 및 도 12는 대화 시스템이 원격 서버에 마련되고 차량이 사용자와 대화 시스템을 연결하는 게이트웨이의 역할만 하는 차량 게이트웨이 방식에 대한 제어 블록도이다.
차량 게이트웨이 방식에서는 도 11에 도시된 바와 같이, 차량(200) 외부에 원격 대화 시스템 서버(1)가 마련되고, 차량(200)에는 원격 대화 시스템 서버(1)와 통신 장치(280)를 통해 연결되는 대화 시스템 클라이언트(270)가 마련된다. 통신 장치(280)가 차량(200)과 원격 대화 시스템 서버(1)를 연결하는 게이트웨이의 역할을 수행한다.
대화 시스템 클라이언트(270)는 입출력 장치와 연결된 인터페이스로써 기능하며, 데이터 수집과 송수신을 수행할 수 있다.
차량(200)에 마련된 음성 입력 장치(210)와 음성 외 입력 장치(220)가 사용자 입력을 수신하고 대화 시스템 클라이언트(270)에 전달하면, 대화 시스템 클라이언트(270)가 통신 장치(280)를 통해 원격 대화 시스템 서버(1)로 입력 데이터를 전송할 수 있다.
차량 제어기(240) 역시 차량 감지부(260)에서 감지한 데이터를 대화 시스템 클라이언트(270)에 전달할 수 있고, 대화 시스템 클라이언트(270)가 통신 장치(280)를 통해 원격 대화 시스템 서버(1)로 차량 감지부(260)에서 감지한 데이터를 전송할 수 있다.
원격 대화 시스템 서버(1)에는 전술한 대화 시스템(100)이 마련되어 입력 데이터의 처리, 입력 데이터의 처리 결과를 바탕으로 한 대화 처리 및 대화 처리 결과에 기초한 결과 처리를 모두 수행할 수 있다.
또한, 원격 대화 시스템 서버(1)는 입력 데이터의 처리, 대화 관리 또는 결과 처리에 있어 필요한 정보나 컨텐츠를 외부 컨텐츠 서버(300)로부터 가져올 수 있다.
차량(200) 역시 원격 대화 시스템 서버(1)로부터 전송되는 응답에 따라 사용자에게 필요한 서비스를 제공하기 위해 필요한 컨텐츠를 외부 컨텐츠 서버(300)로부터 가져올 수 있다.
도 12를 참조하면, 통신 장치(280)는 외부 장치와 통신을 가능하게 하는 하나 이상의 통신 모듈을 포함할 수 있으며, 예를 들어 근거리 통신 모듈(281), 유선 통신 모듈(282) 및 무선 통신 모듈(283)를 포함할 수 있다.
근거리 통신 모듈(281)은 블루투스 모듈, 적외선 통신 모듈, RFID(Radio Frequency Identification) 통신 모듈, WLAN(Wireless Local Access Network) 통신 모듈, NFC 통신 모듈, 직비(Zigbee) 통신 모듈 등 근거리에서 무선 통신망을 이용하여 신호를 송수신하는 다양한 근거리 통신 모듈 중 적어도 하나를 포함할 수 있다.
유선 통신 모듈(282)은 지역 통신(Local Area Network; LAN) 모듈, 광역 통신(Wide Area Network; WAN) 모듈 또는 부가가치 통신(Value Added Network; VAN) 모듈 등 다양한 유선 통신 모듈뿐만 아니라, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 다양한 케이블 통신 모듈 중 적어도 하나를 포함할 수 있다.
무선 통신 모듈(283)은 와이파이(Wifi) 모듈, 와이브로(Wireless broadband) 모듈 외에도, GSM(Global System for Mobile Communication), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), UMTS(Universal Mobile Telecommunications System), TDMA(Time Division Multiple Access), LTE(Long Term Evolution), 4G, 5G 등 무선 통신 방식으로 인터넷망과 연결될 수 있는 다양한 무선 통신 모듈 중 적어도 하나를 포함할 수 있다.
한편, 통신 장치(280)는 차량(200) 내부의 전자 장치들 사이의 통신을 위한 내부 통신 모듈(미도시)을 더 포함할 수도 있다. 차량(200)의 내부 통신 프로토콜로는 CAN(Controller Area Network), LIN(Local Interconnection Network), 플렉스레이(FlexRay), 이더넷(Ethernet) 등을 사용할 수 있다.
대화 시스템(100)은 무선 통신 모듈(283)을 이용하여 외부 컨텐츠 서버(300) 또는 원격 대화 시스템 서버(1)와 데이터를 주고 받을 수 있다. 또한, 무선 통신 모듈(283)을 이용하여V2X 통신을 수행할 수 있다. 또한, 근거리 통신 모듈(281) 또는 유선 통신 모듈(282)을 이용하여 차량(200)에 연결되는 모바일 기기와 데이터를 주고 받을 수 있다.
도 13은 차량 게이트웨이 방식에서 차량이 입력 처리와 출력 처리를 일부 수행할 수 있는 경우에 대한 제어 블록도이다.
전술한 바와 같이, 차량(200)의 대화 시스템 클라이언트(270)가 데이터의 수집 및 송수신의 기능만 수행하는 것도 가능하나, 도 13에 도시된 바와 같이, 대화 시스템 클라이언트(270)에 입력 처리기(271), 결과 처리기(273) 및 저장부(274)가 포함되어, 사용자나 차량으로부터 입력되는 데이터의 처리나 사용자에게 필요한 것으로 판단된 서비스 제공과 관련된 처리를 차량(200)에서도 수행하는 것이 가능하다. 즉, 입력 처리기(110)와 결과 처리기(130)의 동작을 원격 대화 시스템 서버(1)뿐만 아니라 차량(200)에서도 수행할 수 있다.
이 경우, 전술한 입력 처리기(110)의 동작을 대화 시스템 클라이언트(270)가 일부만 수행하는 것도 가능하고 전부 수행하는 것도 가능하다. 또한, 전술한 결과 처리기(130)의 동작을 대화 시스템 클라이언트(270)가 일부만 수행하는 것도 가능하고 전부 수행하는 것도 가능하다.
처리해야 할 데이터의 용량 및 데이터 처리 속도 등을 고려하여 원격 대화 시스템 서버(1)와 대화 시스템 클라이언트(270) 사이의 태스크 분담을 결정할 수 있다.
도 14는 원격 대화 시스템 서버와 차량이 모두 대화 처리를 수행할 수 있는 하이브리드 방식에 대한 제어 블록도이다.
하이브리드 방식에서는 도 14에 도시된 바와 같이, 원격 대화 시스템 서버(1)에도 입력 처리기(110), 대화 관리기(120), 결과 처리기(130) 및 저장부(140)가 마련되어 대화 처리를 수행할 수 있고, 차량(200)에도 입력 처리기(291), 대화 관리기(292), 결과 처리기(293) 및 저장부(294)를 포함하는 단말 대화 시스템(290)이 마련되어 대화 처리를 수행할 수 있다.
다만, 차량(200)에 마련된 프로세서나 메모리는 원격 대화 시스템 서버(1)에 마련된 프로세서나 메모리와 용량이나 성능 측면에서 차이가 있을 수 있다. 따라서, 단말 대화 시스템(290)에서 모든 입력 데이터를 처리하고 대화를 관리하여 결과를 출력할 수 있는 경우에는 단말 대화 시스템(290)에서 전 과정을 수행하고, 그렇지 않은 경우에는 원격 대화 시스템 서버(1)에 처리를 요청할 수 있다.
단말 대화 시스템(290)에서 대화 처리를 수행하기 전에, 입력 데이터의 종류에 기초하여 단말 대화 시스템(290)의 처리 가부를 판단하고, 판단 결과에 따라 직접 처리하거나 원격 대화 시스템 서버(1)에 처리를 요청할 수 있다.
또는, 단말 대화 시스템(290)이 대화 처리를 수행하다가 처리가 불가능한 상황이 발생하였을 때, 원격 대화 시스템 서버(1)에 처리를 요청하면서 자신이 처리한 결과를 함께 전송하는 것도 가능하다.
예를 들어, 고성능의 컴퓨팅 파워, 장기간 데이터의 처리가 필요한 경우는 원격 대화 시스템 서버(1)에서 처리하고, 실시간으로 처리해야 하는 것은 단말 대화 시스템(290)에서 처리할 수 있다. 예를 들어, 즉시 처리가 필요한 인스턴스가 발생하여 동기화 이전 데이터를 처리해야 하는 경우에는 단말 대화 시스템(290)에서 우선적으로 처리되도록 설정할 수 있다.
또한, 차량 내 미등록 발화자가 있어 사용자 확인이 필요한 경우에는 원격 대화 시스템 서버(1)에서 대화를 처리하도록 할 수 있다.
또한, 통신 장치(280)를 통해 원격 대화 시스템 서버(1)와 연결이 불가능한 상황에서 단말 대화 시스템(290)이 자체적으로 대화 처리를 완료할 수 없는 경우에는, 대화자 출력 장치(230)를 통해 사용자에게 대화 처리가 수행될 수 없음을 안내할 수 있다.
단말 대화 시스템(290)에 저장되는 데이터와 원격 대화 시스템 서버(1)에 저장되는 데이터는 데이터의 용량이나 데이터의 종류와 같은 기준에 따라 결정될 수 있다. 예를 들어, 개인 식별이 가능하여 프라이버시 침해 우려가 있는 데이터의 경우에는 단말 대화 시스템(290)의 저장부(294)에 저장할 수 있다. 또한, 대용량의 데이터는 원격 대화 시스템 서버(1)의 저장부(140)에 저장하고, 소용량의 데이터는 단말 대화 시스템(290)의 저장부(294)에 저장할 수 있다. 또는, 소용량의 데이터가 원격 대화 시스템 서버(1)의 저장부(140)와 단말 대화 시스템(290)의 저장부(294) 양쪽에 모두 저장되는 것도 가능하다.
도 15및 도 16은 차량에 연결된 모바일 기기가 사용자와 원격 대화 시스템 서버를 연결하는 모바일 게이트웨이 방식에 대한 제어 블록도이다.
모바일 게이트웨이 방식에서는 도 15에 도시된 바와 같이, 모바일 기기(400)가 차량(200)으로부터 차량 상태 정보, 주행 환경 정보를 수신하고, 사용자 입력과 차량 상태 정보를 원격 대화 시스템 서버(1)로 전송한다. 즉, 모바일 기기(400)가 사용자와 원격 대화 시스템 서버(1) 또는 차량(200)와 원격 대화 시스템 서버(1)를 연결하는 게이트웨이의 역할을 수행한다.
모바일 기기(400)는 스마트 폰, 스마트 워치, 스마트 글래스, PDA, 태플릿 PC 등과 같이 휴대가 가능하며 외부 서버 및 차량과 통신하여 데이터를 주고 받을 수 있는 전자 기기일 수 있다.
모바일 기기(400)는 사용자 음성을 입력 받는 음성 입력 장치(410), 사용자의 음성 외 입력을 수신하는 음성 외 입력 장치(420), 시각적, 청각적 또는 촉각적으로 응답을 출력하는 출력 장치(430), 원격 대화 시스템 서버(1) 및 차량(200)과 통신하여 데이터를 송수신하는 통신 장치(480) 및 차량(200)과 사용자로부터 입력 데이터를 수집하여 통신 장치(480)를 통해 원격 대화 시스템 서버(1)로 전송하는 대화 시스템 클라이언트(470)를 포함한다.
음성 입력 장치(410)는 음향을 입력 받아 전기적인 신호로 변환하여 출력하는 마이크로폰을 포함할 수 있다.
음성 외 입력 장치(420)는 모바일 기기(400)에 마련된 입력 버튼, 터치 스크린 또는 카메라를 포함할 수 있다.
출력 장치(430)는 모바일 기기(400)에 마련된 디스플레이, 스피커 또는 진동기를 포함할 수 있다.
사용자에 대한 입출력 인터페이스로 모바일 기기(400)에 마련된 음성 입력 장치(410), 음성 외 입력 장치(420) 및 출력 장치(430)를 이용하는 것뿐만 아니라, 차량(200)에 마련된 음성 입력 장치(210), 음성 외 입력 장치(220) 및 대화자 출력 장치(230)를 이용하는 것도 가능하다.
차량(200)이 차량 감지부(260)가 감지한 데이터와 사용자 입력을 모바일 기기(400)에 전달하면, 모바일 기기(400)의 대화 시스템 클라이언트(470)가 이를 원격 대화 시스템 서버(1)로 전송한다.
또한, 대화 시스템 클라이언트(470)는 원격 대화 시스템 서버(1)로부터 전송되는 응답이나 명령어를 차량(200)에 전달할 수 있다. 사용자에 대한 입출력 인터페이스로 차량(200)에 마련된 대화자 출력 장치(230)를 이용하는 경우에는, 대화자 출력 장치(230)를 통해 사용자의 발화에 대한 응답을 출력할 수 있다. 모바일 기기(400)에 마련된 출력 장치(430)를 이용하는 경우에는, 모바일 기기(400)의 출력 장치(430)를 통해 사용자의 발화에 대한 응답을 출력할 수 있다.
차량 제어를 위한 명령어는 차량(200)에 전달되고, 차량 제어기(240)는 전달된 명령어에 대응되는 제어를 수행하여 사용자에게 필요한 서비스를 제공할 수 있다.
한편, 대화 시스템 클라이언트(470)는 입력 데이터를 수집하여 원격 대화 시스템 서버(1)로 전달하는 것뿐만 아니라, 대화 시스템(100)의 입력 처리기(110) 및 결과 처리기(130)의 기능을 일부 또는 전부 수행하는 것도 가능하다.
도 16을 참조하면, 모바일 기기(400)의 통신 장치(480)는 외부 장치와 통신을 가능하게 하는 하나 이상의 통신 모듈을 포함할 수 있으며, 예를 들어 근거리 통신 모듈(481), 유선 통신 모듈(482) 및 무선 통신 모듈(483)를 포함할 수 있다.
근거리 통신 모듈(481)은 블루투스 모듈, 적외선 통신 모듈, RFID(Radio Frequency Identification) 통신 모듈, WLAN(Wireless Local Access Network) 통신 모듈, NFC 통신 모듈, 직비(Zigbee) 통신 모듈 등 근거리에서 무선 통신망을 이용하여 신호를 송수신하는 다양한 근거리 통신 모듈 중 적어도 하나를 포함할 수 있다.
유선 통신 모듈(482)은 지역 통신(Local Area Network; LAN) 모듈, 광역 통신(Wide Area Network; WAN) 모듈 또는 부가가치 통신(Value Added Network; VAN) 모듈 등 다양한 유선 통신 모듈뿐만 아니라, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 다양한 케이블 통신 모듈 중 적어도 하나를 포함할 수 있다.
무선 통신 모듈(483)은 와이파이(Wifi) 모듈, 와이브로(Wireless broadband) 모듈 외에도, GSM(Global System for Mobile Communication), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), UMTS(Universal Mobile Telecommunications System), TDMA(Time Division Multiple Access), LTE(Long Term Evolution), 4G, 5G 등 무선 통신 방식으로 인터넷망과 연결될 수 있는 다양한 무선 통신 모듈 중 적어도 하나를 포함할 수 있다.
예를 들어, 모바일 기기(400)는 근거리 통신 모듈(481) 또는 유선 통신 모듈(482)을 통해 차량(200)과 연결될 수 있고, 무선 통신 모듈(483)을 통해 원격 대화 시스템 서버(1) 또는 외부 컨텐츠 서버(300)와 연결될 수 있다.
도 17은 모바일 기기에 대화 시스템이 탑재되는 모바일 단독 방식에 대한 제어 블록도이다.
모바일 단독 방식에서는, 도 17에 도시된 바와 같이, 대화 시스템(100)이 모바일 기기(400)에 마련된다.
따라서, 대화 처리를 수행하기 위해 원격 대화 시스템 서버(1)와 연결될 필요가 없고, 모바일 기기(400)가 자체적으로 사용자와의 대화를 처리하고 사용자에게 필요한 서비스를 제공해줄 수 있다. 다만, 대화 처리 및 서비스 제공을 위해 필요한 정보는 외부 컨텐츠 서버(300)로부터 가져올 수 있다.
이하, 대화 시스템(100)의 세부적인 구성 및 각 구성요소 별 구체적인 동작을 상세하게 설명한다. 후술하는 실시예에서는 설명의 편의를 위해, 대화 시스템(100)이 차량(200)에 마련된 경우를 가정하여 설명한다.
도 18, 도 19a 내지 도 19c는 대화 시스템의 구성 중 입력 처리기의 구성이 세분화된 제어 블록도이다.
도 18을 참조하면, 입력 처리기(110)는 음성 입력을 처리하는 음성 입력 처리기(111) 및 상황 정보를 처리하는 상황 정보 처리기(112)를 포함할 수 있다.
음성 입력 장치(210)를 통해 입력된 사용자 음성은 음성 입력 처리기(111)로 전송되고, 음성 외 입력 장치(220)를 통해 입력된 음성 외 사용자 입력은 상황 정보 처리기(112)로 전송된다.
차량 제어기(240)는 차량 상태 정보, 주행 환경 정보 및 사용자 정보를 상황 정보 처리기(112)로 전송한다. 주행 환경 정보 및 사용자 정보는 외부 컨텐츠 서버(300) 또는 차량(200)에 연결된 모바일 기기(400)로부터 제공될 수도 있다.
음성 외 입력은 모두 상황 정보에 포함될 수 있다. 즉, 상황 정보는 차량 상태 정보, 주행 환경 정보, 사용자 정보를 포함할 수 있다.
차량 상태 정보는 차량(200)에 마련된 센서에 의해 획득된 정보로서 차량의 상태를 나타내는 정보, 차량의 유종과 같이 차량에 관련된 정보로서 차량에 저장되어 있는 정보 등을 포함할 수 있다.
주행 환경 정보는 차량(200)에 마련된 센서에 의해 획득된 정보로서 전방 카메라, 후방 카메라 또는 스테레오 카메라가 획득한 영상 정보, 레이더(radar), 라이다(Lidar), 초음파 센서 등의 센서가 획득한 장애물 정보, 강우 센서가 획득한 강우량/강우속도 정보 등을 포함할 수 있다.
또한, 주행 환경 정보는 V2X를 통해 획득된 정보로서 교통 상황 정보, 신호등 정보, 주변 차량의 접근 또는 추돌 가능성 정보 등을 더 포함할 수 있다.
사용자 정보는 차량에 마련된 카메라 또는 생체 신호 측정 장치를 통해 측정한 사용자의 상태와 관련된 정보, 사용자가 차량에 마련된 입력 장치를 이용하여 직접 입력한 사용자와 관련된 정보, 외부 컨텐츠 서버(300)에 저장된 사용자와 관련된 정보, 차량에 연결된 모바일 기기(400)에 저장된 정보 등을 포함할 수 있다.
음성 입력 처리기(111)는 입력된 사용자 음성을 인식하여 텍스트 형태의 발화문으로 출력하는 음성 인식기(111a), 발화문에 대해 자연어 이해 기술(Natural Language Understanding)을 적용하여 발화문이 내포하는 사용자의 의도를 파악하는 자연어 이해기(111b) 및 자연어 이해 결과와 상황 정보를 대화 관리기(120)로 전달하는 대화 입력 관리기(111c)를 포함할 수 있다.
음성 인식기(111a)는 음성 인식 엔진(speech recognition engine)을 포함하고, 음성 인식 엔진은 입력된 음성에 음성 인식 알고리즘을 적용하여 사용자가 발화한 음성을 인식하고, 인식 결과를 생성할 수 있다.
이 때, 입력된 음성은 음성 인식을 위한 더 유용한 형태로 변환될 수 있는바, 음성 신호로부터 시작 지점과 끝 지점을 검출하여 입력된 음성에 포함된 실제 음성 구간을 검출한다. 이를 EPD(End Point Detection)이라 한다.
그리고, 검출된 구간 내에서 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 입력된 음성의 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 과 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다. 이를 위해, 저장부(140)에는 음향 모델/언어 모델 DB가 저장될 수 있다.
음향 모델은 다시 인식 대상을 특징 벡터 모델로 설정하고 이를 음성 데이터의 특징 벡터와 비교하는 직접 비교 방법과 인식 대상의 특징 벡터를 통계적으로 처리하여 이용하는 통계 방법을 나뉠 수 있다.
직접 비교 방법은 인식 대상이 되는 단어, 음소 등의 단위를 특징 벡터 모델로 설정하고 입력 음성이 이와 얼마나 유사한지를 비교하는 방법으로서, 대표적으로 벡터 양자화(Vector Quantization) 방법이 있다. 벡터 양자화 방법에 의하면 입력된 음성 데이터의 특징 벡터를 기준 모델인 코드북(codebook)과 매핑시켜 대표 값으로 부호화함으로써 이 부호 값들을 서로 비교하는 방법이다.
통계적 모델 방법은 인식 대상에 대한 단위를 상태 열(State Sequence)로 구성하고 상태 열 간의 관계를 이용하는 방법이다. 상태 열은 복수의 노드(node)로 구성될 수 있다. 상태 열 간의 관계를 이용하는 방법은 다시 동적 시간 와핑(Dynamic Time Warping: DTW), 히든 마르코프 모델(Hidden Markov Model: HMM), 신경 회로망을 이용한 방식 등이 있다.
동적 시간 와핑은 같은 사람이 같은 발음을 해도 신호의 길이가 시간에 따라 달라지는 음성의 동적 특성을 고려하여 기준 모델과 비교할 때 시간 축에서의 차이를 보상하는 방법이고, 히든 마르코프 모델은 음성을 상태 천이 확률 및 각 상태에서의 노드(출력 심볼)의 관찰 확률을 갖는 마르코프 프로세스로 가정한 후에 학습 데이터를 통해 상태 천이 확률 및 노드의 관찰 확률을 추정하고, 추정된 모델에서 입력된 음성이 발생할 확률을 계산하는 인식 기술이다.
한편, 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델은 언어를 구성하는 단위들 간의 순서 관계를 음성 인식에서 얻어진 단위들에 적용함으로써 음향적인 모호성을 줄이고 인식의 오류를 줄일 수 있다. 언어 모델에는 통계적 언어 모델과 유한 상태 네트워크(Finite State Automata: FSA)에 기반한 모델이 있고, 통계적 언어 모델에는 Unigram, Bigram, Trigram 등 단어의 연쇄 확률이 이용된다.
음성 인식기(111a)는 음성을 인식함에 있어 상술한 방식 중 어느 방식을 사용해도 무방하다. 예를 들어, 히든 마르코프 모델이 적용된 음향 모델을 사용할 수도 있고, 음향 모델과 음성 모델을 통합한 N-best 탐색법을 사용할 수 있다. N-best 탐색법은 음향 모델과 언어 모델을 이용하여 N개까지의 인식 결과 후보를 선택한 후, 이들 후보의 순위를 재평가함으로써 인식 성능을 향상시킬 수 있다.
음성 인식기(111a)는 인식 결과의 신뢰성을 확보하기 위해 신뢰값(confidence value)을 계산할 수 있다. 신뢰값은 음성 인식 결과에 대해서 그 결과를 얼마나 믿을 만한 것인가를 나타내는 척도이다. 일 예로, 인식된 결과인 음소나 단어에 대해서, 그 외의 다른 음소나 단어로부터 그 말이 발화되었을 확률에 대한 상대값으로 정의할 수 있다. 따라서, 신뢰값은 0 에서 1 사이의 값으로 표현할 수도 있고, 0 에서 100 사이의 값으로 표현할 수도 있다.
신뢰값이 미리 설정된 임계값(threshold)을 초과하는 경우에는 인식 결과를 출력하여 인식 결과에 대응되는 동작이 수행되도록 할 수 있고, 신뢰값이 임계값 이하인 경우에는 인식 결과를 거절(rejection)할 수 있다.
음성 인식기(111a)의 인식 결과인 텍스트 형태의 발화문은 자연어 이해기(111b)로 입력된다.
자연어 이해기(111b)는 자연어 이해 기술을 적용하여 발화문에 내포된 사용자의 의도를 파악할 수 있다. 따라서, 사용자는 자연스러운 대화(Dialogue)를 통해 명령을 입력할 수 있고, 대화 시스템(100) 역시 대화를 통해 명령의 입력을 유도하거나 사용자가 필요로 하는 서비스를 제공할 수 있다.
먼저, 자연어 이해기(111b)는 텍스트 형태의 발화문에 대해 형태소 분석을 수행한다. 형태소는 의미의 최소 단위로써, 더 이상 세분화할 수 없는 가장 작은 의미 요소를 나타낸다. 따라서, 형태소 분석은 자연어 이해의 첫 단계로서, 입력 문자열을 형태소열로 바꿔준다.
자연어 이해기(111b)는 형태소 분석 결과에 기초하여 발화문으로부터 도메인을 추출한다. 도메인은 사용자가 발화한 언어의 주제를 식별할 수 있는 것으로서, 예를 들어, 경로 안내, 날씨 검색, 교통 검색, 일정 관리, 주유 안내, 공조 제어 등의 다양한 주제를 나타내는 도메인이 데이터베이스화 되어 있다.
자연어 이해기(111b)는 발화문으로부터 개체명을 인식할 수 있다. 개체명은 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식은 문장에서 개체명을 식별하고 식별된 개체명의 종류를 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
자연어 이해기(111b)는 발화문이 갖는 화행을 분석할 수 있다. 화행 분석은 사용자 발화에 대한 의도를 분석하는 작업으로, 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 응답을 하는 것인지, 단순한 감정 표현을 하는 것인지 등에 관한 발화의 의도를 파악하는 것이다.
자연어 이해기(111b)는 사용자의 발화 의도에 대응하는 액션을 추출한다. 발화문에 대응되는 도메인, 개체명, 화행 등의 정보에 기초하여 사용자의 발화 의도를 파악하고, 발화 의도에 대응되는 액션을 추출한다. 액션은 오브젝트(Object)와 오퍼레이터(Operator)에 의해 정의될 수 있다.
또한, 자연어 이해기(111b)는 액션 수행과 관련된 인자를 추출하는 것도 가능하다. 액션 수행과 관련된 인자는 액션을 수행하는데 직접적으로 필요한 유효 인자일 수도 있고, 이러한 유효 인자를 추출하기 위해 사용되는 비유효 인자일 수도 있다.
예를 들어, 사용자의 발화문이 "가까운 정비소로 가자"인 경우에, 자연어 이해기(111b)는 발화문에 대응되는 도메인으로 "내비게이션"을 추출하고, 액션으로 "길안내"를 추출할 수 있다. 화행은 "요청"에 해당한다.
개체명인 "정비소"는 액션 수행과 관련된 [인자: 정비소]에 해당하나, 실제 내비게이션을 통한 길안내를 위해서는 구체적인 정비소의 명치이나 GPS 정보가 필요할 수 있다. 이 경우, 자연어 이해기(111b)가 추출한 [인자: 목적지: 정비소]는 다수의 정비소 POI 중 실제 사용자가 원하는 정비소를 검색하기 위한 후보 인자가 될 수 있다.
또한, 자연어 이해기(111b)는 파스트리(Parse-tree)와 같이 단어와 단어, 문장과 문장의 수식 관계를 표현할 수 있는 수단도 추출할 수 있다.
자연어 이해기(111b)의 처리 결과인, 형태소 분석 결과, 도메인 정보, 액션 정보, 화행 정보, 추출된 인자 정보, 개체명 정보, 파스트리 등은 대화 입력 관리기(111c)로 전달된다.
상황 정보 처리기(112)는 음성 외 입력 장치(220)와 차량 제어기(240)로부터 정보를 수집하는 상황 정보 수집기(112a), 상황 정보의 수집을 관리하는 상황 정보 수집 관리기(112b) 및 자연어 이해 결과와 수집된 상황 정보에 기초하여 상황을 이해하는 상황 이해기(112c)를 포함할 수 있다.
입력 처리기(110)는 전술 또는 후술하는 동작을 수행하기 위한 프로그램이 저장되는 메모리 및 저장된 프로그램을 실행시키는 프로세서를 포함할 수 있다. 메모리와 프로세서는 각각 적어도 하나 마련될 수 있고, 복수 개 마련되는 경우에는 이들이 하나의 칩 상에 집적될 수도 있고 물리적으로 분리될 수도 있다.
또한, 입력 처리기(110)에 포함되는 음성 입력 처리기(111)와 상황 정보 처리기(112)는 동일한 프로세서에 의해 구현되는 것도 가능하고, 별개의 프로세서에 의해 구현되는 것도 가능하다.
이하, 도 19a 내지 도 19c를 참조하여 입력 처리기(110)의 구성요소들이 저장부(140)에 저장된 정보를 이용하여 어떻게 입력 데이터를 처리하는지 구체적으로 설명한다.
도 19a를 참조하면, 자연어 이해기(111b)는 도메인 추출, 개체명 인식, 화행 분석 및 액션 추출을 위해 도메인/액션 추론 규칙 DB(141)를 이용할 수 있다.
도메인/액션 추론 규칙 DB(141)에는 도메인 추출 규칙, 화행 분석 규칙, 개체명 변환 규칙, 액션 추출 규칙 등이 저장될 수 있다.
음성 외 사용자 입력, 차량 상태 정보, 주행 환경 정보, 사용자 정보와 같은 기타 정보는 상황 정보 수집기(112a)로 입력되고, 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에 저장될 수 있다.
예를 들어, 상황 정보 DB(142)에는 차량 감지부(260)가 감지한 로우 데이터(raw data)가 센서 타입과 센서 값으로 구분되어 저장될 수 있다. 실시예에 따라 사용자가 차량(200)의 상태 이상과 같은 예비 징후에 대한 발화를 입력하면, 대화 시스템(100)은 차량 감지부(260)가 감지한 로우 데이터를 기초로 차량에 이상이 있는지 여부를 판단할 수 있다. 만약 차량 감지부(260)에 이상이 없다면, 대화 시스템(100)은 외부 컨텐츠 서버(300)를 통해 차량의 상태 이상에 대한 해결책의 검색을 요청할 수 있다.
단기 메모리(144)와 장기 메모리(143)에는 사용자의 현재 상태, 사용자의 선호도/성향 또는 이를 판단할 수 있는 데이터와 같이 사용자에게 의미가 있는 데이터가 저장될 수 있다.
전술한 바와 같이, 장기 메모리(143)에는 사용자의 전화번호부, 일정, 선호도, 학력, 성격, 직업, 가족 관련 정보 등과 같이 영속성이 보장되어 장기적으로 사용 가능한 정보가 저장될 수 있다. 단기 메모리(144)에는 현재/이전 위치, 오늘 일정, 이전 대화 내용, 대화 참여자, 주변 상황, 도메인, 운전자 상태 등과 같이 영속성이 보장되지 않거나 불확실하여 단기적으로 사용되는 정보가 저장될 수 있다. 데이터의 종류에 따라 상황 정보 DB(142), 단기 메모리(144) 및 장기 메모리(143) 중 두 개 이상의 저장소에 중복되어 저장되는 데이터도 있을 수 있다.
또한, 단기 메모리(144)에 저장된 정보 중 영속성이 보장되는 것으로 판단된 정보는 장기 메모리(143)로 보내질 수 있다.
또한, 단기 메모리(144)나 상황 정보 DB(142)에 저장된 정보를 이용하여 장기 메모리(143)에 저장될 정보를 획득하는 것도 가능하다. 예를 들어, 일정 기간 축적된 목적지 정보 또는 대화 내용을 분석하여 사용자의 선호도를 획득하고, 획득된 사용자의 선호도를 장기 메모리(143)에 저장할 수 있다.
단기 메모리(144)나 상황 정보 DB(142)에 저장된 정보를 이용하여 장기 메모리(143)에 저장될 정보를 획득하는 것은 대화 시스템(100) 내부에서 수행되는 것도 가능하고, 별도의 외부 시스템에서 수행되는 것도 가능하다.
전자의 경우, 후술하는 결과 처리기(130)의 메모리 관리기(135)에서 수행 가능하다. 이 경우, 단기 메모리(144)나 상황 정보 DB(142)에 저장된 데이터 중에서 예비 징후에 대한 해결책(예를 들어, 정비소의 예약) 또는 사용자의 선호도(예를 들어, 선호하는 정비소)와 같이 의미 있는 정보 또는 영속성 있는 정보를 획득하는데 사용되는 데이터는 장기 메모리(143)에 로그 파일 형태로 저장될 수 있다. 메모리 관리기(135)는 일정 기간 이상 축적된 데이터를 분석하여 영속성이 있는 데이터를 획득하고 장기 메모리(143)에 다시 저장한다. 장기 메모리(143) 내에서 영속성 있는 데이터가 저장되는 위치와 로그 파일 형태로 저장되는 데이터가 저장되는 위치를 서로 다를 수 있다.
또는, 메모리 관리기(135)가 단기 메모리(144)에 저장된 데이터 중에서 영속성 있는 데이터를 판단하고, 판단된 데이터를 장기 메모리(143)로 옮겨 저장하는 것도 가능하다.
별도의 외부 시스템에서 수행하는 경우에는, 도 19B에 도시된 바와 같이 통신부(810), 저장부(820) 및 제어부(830)를 포함하는 데이터 관리 시스템(800)이 사용될 수 있다.
통신부(810)가 상황 정보 DB(142) 또는 단기 메모리(144)에 저장된 데이터를 수신한다. 저장된 데이터 전부가 통신부에 전송될 수도 있고, 사용자의 선호도나 성향과 같이 의미 있는 정보 또는 영속성 있는 정보를 획득하는데 사용되는 데이터만 선별되어 전송될 수도 있다. 수신된 데이터는 저장부(820)에 저장된다.
제어부(830)는 축적된 데이터를 분석하여 영속성이 있는 데이터를 획득하고, 획득된 데이터는 다시 통신부(810)를 통해 대화 시스템(100)으로 전송한다. 전송된 데이터는 대화 시스템(100)의 장기 메모리(143)에 저장된다.
대화 입력 관리기(111c)는 자연어 이해기(111b)의 출력 결과를 상황 이해기(112c)에 전달하여 액션 수행과 관련된 상황 정보를 얻을 수 있다.
상황 이해기(112c)는 상황 이해 테이블(145)에 저장된 액션 별 상황 정보를 참조하여, 사용자의 발화 의도에 대응되는 액션 수행과 관련된 상황 정보가 무엇인지 판단할 수 있다.
도 19c를 참조하면, 또 다른 실시예에 따른 대화 시스템(100)은 입력 처리기(110)가 수집하는 여러 정보에 기초하여 선발화 상황인지 여부를 판단하는 선발화 판단기(151)를 포함할 수 있고, 저장부(140)는 선발화 조건을 저장하는 선발화 조건 테이블(145a)과 태스크 처리 DB(145b)를 더 포함할 수 있다.
상황 정보 DB(142), 장기 메모리(143) 및 단기 메모리(144)에 저장된 데이터는 선발화 판단기(151)에 전달될 수 있다. 선발화 판단기(151)는 전달된 데이터를 분석하여 선발화 조건 테이블(145a)에 저장된 선발화 조건이 충족되는지 여부를 판단할 수 있다.
선발화 조건 테이블(145a)에는 상황 정보와 관련된 선발화 조건 및 해당 선발화 조건이 만족되었을 때 출력되는 선발화 메시지가 상황 정보 별로 저장될 수 있다.
선발화 판단기(151)는 상황 정보 DB(142)로부터 전달된 상황 정보가 선발화 조건을 만족하면, 선발화 상황인 것으로 판단하고 선발화 트리거 신호를 발생시킨다.
선발화 판단기(151)는 선발화 트리거 신호를 해당 선발화 상황에 대응되는 선발화 메시지와 함께 상황 이해기(112c)로 전달할 수 있다. 또한, 해당 선발화 상황에 대한 정보를 함께 전달할 수 있다. 선발화 상황에 대한 정보는 해당 선발화 상황에 대응되는 선발화 조건 또는 선발화 상황에 대응되는 액션을 포함할 수 있다. 이와 관련된 구체적인 예시는 도 20c를 통해서 후술한다.
도 20a 및 도 20b는 상황 이해 테이블에 저장되는 정보의 예시를 나타낸 도면이고, 도 20c 내지 도 20d는 선발화와 관련된 상황 정보와 관련된 예시이다.
도 20a 의 예시를 참조하면, 상황 이해 테이블(145)에는 액션 수행과 관련된 상황 정보와 상황 정보 타입이 각각의 액션 별로 저장될 수 있다.
예를 들어, 차량 상태 점검이 액션인 경우에는 상황 정보로 브레이크 빈도수가 필요하고, 상황 정보 타입은 정수일 수 있다. 또 다른 예로 차량 상태 점검 액션은 상황 정보로 엔진오일 교환시기가 필요할 수 있고, 상황 정보 타입은 정수일 수 있다. 길안내가 액션인 경우에는 상황 정보로 현재위치가 필요하고, 상황 정보 타입은 GPS일 수 있다.
사용자 발화 의도에 대응되는 액션 수행과 관련된 상황 정보가 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에 이미 저장되어 있는 경우, 상황 이해기(112c)는 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)로부터 해당 정보를 가져와 대화 입력 관리기(111c)에 전달한다.
사용자 발화 의도에 대응되는 액션 수행과 관련된 상황 정보가 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에 저장되어 있지 않은 경우, 상황 이해기(112c)는 상황 정보 수집 관리기(112b)에 필요한 정보를 요청한다. 상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)가 필요한 정보를 수집하도록 한다.
상황 정보 수집기(112a)는 주기적으로 데이터를 수집할 수도 있고, 특정 이벤트 발생 시에 수집할 수도 있으며, 주기적으로 수집하다가 특정 이벤트 발생 시에 추가적으로 더 수집할 수도 있다. 또한, 상황 정보 수집 관리기(112b)로부터 데이터 수집 요청이 입력되는 경우에 데이터를 수집할 수도 있다.
상황 정보 수집기(112a)는 필요한 정보를 수집하여 상황 정보 DB(142) 또는 단기 메모리(144)에 저장하고, 상황 정보 수집 관리기(112b)에 확인 신호를 전송한다.
상황 정보 수집 관리기(112b)도 상황 이해기(112c)에 확인 신호를 전송하고, 상황 이해기(112c)는 필요한 정보를 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)로부터 가져와 대화 입력 관리기(111c)로 전달한다.
구체적인 예로, 사용자 발화 의도에 대응되는 액션이 길안내인 경우, 상황 이해기(112c)는 상황 이해 테이블(145)을 검색하여 길안내와 관련된 상황 정보가 현재 위치임을 알 수 있다.
단기 메모리(144)에 현재 위치가 이미 저장되어 있는 경우, 상황 이해기(112c)는 단기 메모리(144)로부터 현재 위치를 가져와 대화 입력 관리기(111c)에 전달한다.
단기 메모리(144)에 현재 위치가 저장되어 있지 않은 경우에는, 상황 정보 수집 관리기(112b)에 현재 위치를 요청하고, 상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)로 하여금 차량 제어기(240)로부터 현재 위치를 획득하게 한다.
상황 정보 수집기(112a)가 현재 위치를 획득하여 단기 메모리(144)에 저장하고, 상황 정보 수집 관리기(112b)에 확인 신호를 전송한다. 상황 정보 수집 관리기(112b)도 상황 이해기(112c)에 확인 신호를 전송하고, 상황 이해기(112c)는 단기 메모리(144)로부터 현재 위치 정보를 가져와 대화 입력 관리기(111c)로 전달한다.
대화 입력 관리기(111c)는 자연어 이해기(111b)의 출력과 상황 이해기(112c)의 출력을 대화 관리기(120)로 전달하고, 중복된 입력이 대화 관리기(120)로 들어가지 않도록 관리할 수 있다. 이 때, 자연어 이해기(111b)의 출력과 상황 이해기(112c)의 출력은 하나로 합쳐져서 대화 관리기(120)에 전달될 수도 있고, 각각 독립적으로 전달될 수도 있다.
한편, 상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)가 수집한 데이터가 미리 설정된 조건을 만족하여 특정 이벤트가 발생한 것으로 판단하면 상황 이해기(112c)에 액션 트리거 신호를 전송할 수 있다.
상황 이해기(112c)는 상황 이해 테이블(145)을 검색하여 해당 이벤트와 관련된 상황 정보를 검색하고, 검색된 상황 정보가 저장되어 있지 않으면 다시 상황 정보 수집 관리기(112b)에 상황 정보의 요청 신호를 전송한다.
도 20B의 예시와 같이, 상황 이해 테이블(145)에는 이벤트와 관련된 상황 정보와 상황 정보의 타입이 각각의 이벤트 별로 저장될 수 있다.
예를 들어, 발생된 이벤트가 엔진 온도 경고인 경우에는 관련된 상황 정보로 정수 타입의 엔진 온도가 저장될 수 있다. 발생된 이벤트가 운전자 졸음 감지인 경우에는 관련된 상황 정보로 정수 타입의 운전자 졸음 단계가 저장될 수 있다. 발생된 이벤트가 타이어 공기압 부족인 경우에는 관련된 상황 정보로 정수 타입의 타이어 공기 압력이 저장될 수 있다. 발생된 이벤트가 연료 경고인 경우에는 관련된 상황 정보로 정수 타입의 주행 가능 거리가 저장될 수 있다. 발생된 이벤트가 센서 이상인 경우에는 관련된 상황 정보로 문자 타입의 센서 명칭이 저장될 수 있다.
상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)를 통해 필요한 상황 정보를 수집하고, 상황 이해기(112c)에 확인 신호를 전송한다. 상황 이해기(112c)는 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)로부터 필요한 상황 정보를 가져와 액션 정보와 함께 대화 입력 관리기(111c)로 전달한다.
도 20c의 예시를 참조하면, 선발화 조건 테이블(145a)에는 상황 정보와 관련된 선발화 조건 및 해당 선발화 조건이 만족되었을 때 출력되는 선발화 메시지가 상황 정보 별로 저장될 수 있다.
선발화 판단기(151)는 상황 정보 DB(142)로부터 전달된 상황 정보가 선발화 조건을 만족하면, 선발화 상황인 것으로 판단하고 선발화 트리거 신호를 발생시킨다.
선발화 판단기(151)는 선발화 트리거 신호를 해당 선발화 상황에 대응되는 선발화 메시지와 함께 상황 이해기(112c)로 전달할 수 있다. 또한, 해당 선발화 상황에 대한 정보를 함께 전달할 수 있다. 선발화 상황에 대한 정보는 해당 선발화 상황에 대응되는 선발화 조건 또는 후술하는 선발화 상황에 대응되는 액션을 포함할 수 있다.
예를 들어, 상황 정보가 타이어 공기압인 경우에는 타이어 공기압이 미리 설정된 기준값 이하인 경우에 선발화 조건을 만족할 수 있다. 선발화 판단기(151)는 타이어 공기압이 선발화 조건을 만족하는 경우, 타이어 공기압 부족으로 인한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다.
선발화 판단기(151)는 선발화 트리거 신호를 선발화 메시지와 함께 상황 이해기(112c)로 전달할 수 있다. 일 예로, 타이어 공기압 부족으로 인한 선발화 상황에서는 "타이어 공기압이 너무 낮습니다"와 같이 타이어 공기압이 부족하다는 정보를 알려주는 선발화 메시지가 상황 이해기(112c)에 전달될 수 있다.
또한, 상황 정보가 엔진 온도인 경우에는 엔진 온도가 미리 설정된 기준값 이상인 경우에 선발화 조건을 만족할 수 있다. 선발화 판단기(151)는 엔진 온도가 선발화 조건을 만족하는 경우, 엔진 온도 이상으로 인한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다.
선발화 판단기(151)는 선발화 트리거 신호를 선발화 메시지와 함께 상황 이해기(112c)로 전달할 수 있다. 일 예로, 엔진 온도 이상으로 인한 선발화 상황에서는 "엔진 온도가 너무 높습니다"와 같이 엔진이 과열됐다는 정보를 알려주는 선발화 메시지가 상황 이해기(112c)로 전달될 수 있다.
또한, 상황 정보가 잔유량인 경우에는 잔유량이 기준값 이하인 경우에 선발화 조건을 만족할 수 있다. 사용자가 차량의 내비게이션 서비스를 이용하여 목적지를 설정한 경우에는 현재 위치로부터 설정된 목적지까지의 거리에 기초하여 기준값이 설정될 수 있다. 목적지가 설정되지 않은 경우에는 목적지와 무관하게 디폴트로 설정된 기준값이 사용될 수 있는바, 일 예로 연료 부족 경고등을 표시하는 기준값보다 작은 값을 잔유량 부족에 의한 선발화 조건의 기준값으로 설정할 수 있다. 선발화 판단기(151)는 잔유량이 선발화 조건을 만족하는 경우, 잔유량 부족으로 인한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다.
선발화 판단기(151)는 선발화 트리거 신호를 선발화 메시지와 함께 상황 이해기(112c)로 전달할 수 있다. 일 예로, 잔유량 부족으로 인한 선발화 상황에서는 "목적지까지의 잔유량이 부족합니다"와 같이 잔유량이 부족하다는 정보를 알려주는 선발화 메시지가 상황 이해기(112c)로 전달될 수 있다.
한편, 도 20c에서 전술한 선발화 조건과 선발화 메시지는 대화 시스템(100)에 적용될 수 있는 예시에 불과하다.
즉, 개시된 대화 시스템(100)은 수집되는 상황 정보를 통해서 사용자의 발화를 유도하고, 사용자의 발화를 통해서 수집되기 힘든 차량의 고장 상태를 판단할 수 있다. 따라서 사용자의 발화를 유도하는 다양한 예시가 포함될 수 있다.
도 20d를 참조하면, 타이어 공기압 부족으로 인한 선발화 상황인 경우 또는 엔진 온도 이상으로 인한 선발화 상황인 경우에 이에 대응되는 선발화 메시지로 "정비소를 예약할까요?"와 같이 정비소 예약 서비스를 선제적으로 제안하는 내용을 저장할 수 있다.
또한, 잔유량 부족으로 인한 선발화 상황인 경우에는 이에 대응되는 선발화 메시지로 "주유소를 안내할까요?"와 같이 주유소 안내 서비스를 선제적으로 제안하는 내용을 저장할 수 있다.
또한, 상황 정보가 차량 내부 온도인 경우에는 차량 내부 온도가 미리 설정된 기준 범위를 벗어나는 경우에 선발화 조건을 만족할 수 있다. 상황 이해기(112c)는 차량 내부 온도가 선발화 조건을 만족하는 경우, 차량 내부 온도 이상으로 인한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다.
차량 내부 온도 이상으로 인한 선발화 상황에서는 "공기 조화기를 작동할까요?"와 같이 내부 온도 조절 기능을 선제적으로 제안하는 내용이 선발화 메시지로 저장될 수 있다.
또한, 상황 정보가 마이크 입력인 경우에는 마이크 입력 값이 미리 설정된 기준값 이하인 경우에 선발화 조건을 만족할 수 있다. 상황 이해기(112c)는 마이크 입력이 선발화 조건을 만족하는 경우, 분위기 전환을 위한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다. 이에 대응되는 선발화 메시지로는 "음악을 재생할까요?"와 같이 멀티 미디어 재생 서비스를 선제적으로 제안하는 내용이 저장될 수 있다.
또한, 상황 정보가 윈도우 개폐 여부와 강수 여부인 경우에, 윈도우가 오픈되어 있고 강수 상황인 경우에 선발화 조건을 만족할 수 있다. 상황 이해기(112c)는 윈도우가 오픈되어 있고 강수 상황인 경우에 윈도우 오픈으로 인한 선발화 상황인 것으로 판단하고, 선발화 트리거 신호를 발생시킬 수 있다.
윈도우 오픈으로 인한 선발화 상황에서는 "윈도우를 클로즈할까요?"와 같이 윈도우 클로즈 기능을 선제적으로 제안하는 내용이 선발화 메시지로 저장될 수 있다.
전술한 도 20c및 도 20d의 예시에서는, 선발화 조건 테이블(145a)에 선발화 상황에 대응되는 선발화 메시지가 미리 저장되는 경우를 예로 들었다. 그러나, 대화 시스템(100)의 예시가 이에 한정되는 것은 아닌바, 선발화 상황에 대응되는 액션이 미리 저장되는 것도 가능하다.
대화 입력 관리기(111c)는 상황 이해기(112c)의 출력을 대화 관리기(120)로 입력한다.
도 21은 대화 관리기의 구성이 세분화된 제어 블록도이고, 도 22는 연관 액션 DB에 저장된 정보의 예시를 나타낸 도면이고, 도 23은 액션 수행 조건 DB에 저장된 정보의 예시를 나타낸 도면이며, 도 24는 액션 인자 DB에 저장된 정보의 예시를 나타낸 도면이다.
도 21을 참조하면, 대화 관리기(120)는 대화 또는 액션을 생성/삭제/업데이트하도록 요청하는 대화 흐름 관리기(121), 대화 흐름 관리기(121)의 요청에 따라 대화 또는 액션을 생성/삭제/업데이트하는 대화 액션 관리기(122), 상황에 대한 모호성과 대화에 대한 모호성을 해결하여 궁극적으로 사용자의 의도를 명확히 하는 모호성 해결기(123), 액션 수행에 필요한 인자를 관리하는 인자 관리기(124), 복수의 후보 액션들에 대해 액션 수행 가부를 판단하고, 이들의 우선 순위를 결정하는 액션 우선순위 결정기(125) 및 외부 컨텐츠 목록 및 관련 정보를 관리하고 외부 컨텐츠 쿼리에 필요한 인자 정보를 관리하는 외부 정보 관리기(126)를 포함할 수 있다.
대화 관리기(120)는 전술 또는 후술하는 동작을 수행하기 위한 프로그램이 저장되는 메모리 및 저장된 프로그램을 실행시키는 프로세서를 포함할 수 있다. 메모리와 프로세서는 각각 적어도 하나 마련될 수 있고, 복수 개 마련되는 경우에는 이들이 하나의 칩 상에 집적될 수도 있고 물리적으로 분리될 수도 있다.
또한, 대화 관리기(120)에 포함되는 각각의 구성요소들이 단일 프로세서에 의해 구현되는 것도 가능하고, 별개의 프로세서에 의해 구현되는 것도 가능하다.
또한, 대화 관리기(120)와 입력 처리기(110) 역시 단일 프로세서에 의해 구현되는 것도 가능하고, 별개의 프로세서에 의해 구현되는 것도 가능하다.
대화 입력 관리기(111a)의 출력인 자연어 이해 결과(자연어 이해기의 출력)와 상황 정보(상황 이해기의 출력)는 대화 흐름 관리기(121)로 입력된다. 자연어 이해기(111b)의 출력은 도메인, 액션 등의 정보 외에도 형태소 분석 결과와 같은 사용자의 발화 내용 자체에 대한 정보도 포함한다. 상황 이해기(112c)의 출력은 상황 정보 외에도 상황 정보 수집 관리기(112b)에서 판단한 이벤트도 포함할 수 있다.
대화 흐름 관리기(121)는 대화 입력 관리기(111a)로부터의 입력에 대응되는 대화 태스크 또는 액션 태스크가 대화/액션 DB(147)에 존재하는지 검색한다.
대화/액션 DB(147)는 대화의 상태와 액션의 상태를 관리하기 위한 저장 공간으로서, 현재 진행 중인 대화, 액션들과 앞으로 진행할 예비 액션들에 대한 대화 상태 및 액션 상태를 저장할 수 있다. 예를 들어, 종료된 대화/액션, 정지된 대화/액션, 진행 중인 대화/액션, 진행될 대화/액션의 상태가 저장될 수 있다.
또한, 액션의 스위칭/네스팅 여부, 스위칭된 액션 인덱스, 액션 변경 시간, 화면/음성/명령어 등의 마지막 출력 상태 등을 저장할 수 있다.
예를 들어, 사용자 발화에 대응되는 도메인과 액션이 추출된 경우에는, 가장 최근에 저장된 대화 중 해당 도메인과 액션에 대응되는 대화 또는 액션이 존재하면 이를 대화 입력 관리기(111a)로부터의 입력에 대응되는 대화 태스크 또는 액션 태스크로 판단할 수 있다.
사용자 발화에 대응되는 도메인과 액션이 추출되지 않은 경우에는, 임의의 태스크를 생성하거나, 가장 최근에 저장된 태스크를 참조하도록 대화 액션 생성기(122)에 요청할 수 있다.
대화/액션 DB(147)에 입력 처리기(110)의 출력에 대응되는 대화 태스크 또는 액션 태스크가 존재하지 않으면, 대화 흐름 관리기(121)는 대화 액션 관리기(122)에 새로운 대화 태스크와 액션 태스크를 생성하도록 요청한다.
대화 흐름 관리기(121)가 대화의 흐름을 관리함에 있어서, 대화 정책 DB(148)를 참조할 수 있다. 대화 정책 DB(148)는 대화를 전개하기 위한 정책을 저장하며, 구체적으로 대화를 선택/시작/제안/정지/종료하기 위한 정책을 저장한다.
또한, 대화 정책 DB(148)는 시스템이 응답을 출력하는 시점과 방법론에 대한 정책도 저장할 수 있으며, 다수의 서비스를 연계하여 응답을 만드는 정책과 기존의 액션을 삭제하고 다른 액션으로 교체하기 위한 정책을 저장할 수 있다.
예를 들어, 후보 액션이 복수이거나, 사용자의 의도나 상황에 대응되는 액션이 복수일 때(A 액션, B액션), "A 액션을 수행하고 B 액션을 수행하겠습니까?"와 같이 두 액션에 대한 응답을 한 번에 생성하는 정책과, "A액션을 수행합니다" ■ "B액션을 수행할까요?"와 같이 하나의 액션에 대한 응답을 생성한 이후에, B 액션에 대해서도 별도의 응답을 생성하는 정책이 모두 가능하다.
또한, 대화 정책 DB(147)는 후보 액션들 간의 우선 순위를 결정하는 정책도 저장할 수 있다. 우선 순위 결정 정책에 대해서는 후술하도록 한다.
대화 액션 관리기(122)는 대화/액션 DB(147)에 저장 공간을 할당하여, 입력 처리기(110)의 출력에 대응되는 대화 태스크와 액션 태스크를 생성한다.
한편, 사용자의 발화로부터 도메인과 액션을 추출할 수 없는 경우, 대화 액션 관리기(122)는 임의의 대화 상태를 생성할 수 있다. 이 경우, 후술하는 바와 같이, 모호성 해결기(123)가 사용자의 발화 내용, 주변 상황, 차량 상태, 사용자 정보 등에 기초하여 사용자의 의도를 파악하고 이에 대응되는 적절한 액션을 판단할 수 있다.
대화/액션 DB(147)에 입력 처리기(110)의 출력에 대응되는 대화 태스크와 액션 태스크가 존재하면, 대화 흐름 관리기(121)는 대화 액션 관리기(122)가 해당 대화 태스크와 액션 태스크를 참조하도록 요청한다.
액션 우선순위 결정기(125)는 연관 액션 DB(146b)에서 입력 처리기(110)의 출력에 포함된 액션 또는 이벤트와 연관된 액션 목록을 검색하여 후보 액션을 추출한다.
도 22의 예시와 같이, 연관 액션 DB(146b)는 상호 연관된 액션들과 그들 사이의 관계 및 이벤트와 연관된 액션과 그들 사이의 관계를 나타낼 수 있다. 예를 들어, 길안내, 정비소 추천과 같은 액션이 연관된 액션으로 분류될 수 있고, 이들의 관계는 상호 연계에 해당할 수 있다.
따라서, 길안내 액션을 수행함에 있어, 주유소 추천등의 액션이 함께 수행될 수 있다. 여기서 함께 수행된다는 것은 길안내 액션의 전후로 수행되는 것과 길안내 액션의 수행 중에(경유지로 추가) 수행되는 것을 모두 포함할 수 있다.
실시예에 따른 정비 이력 검색 액션은 차량 상태 점검 액션와 연관될 수 있고, 이들의 관계 역시 상호 연계에 해당할 수 있다.
따라서, 사용자가 차량(200)의 주행 중에 고장과 관련된 예비 징후를 감지하고 이와 관련된 발화를 입력하면, 정비 이력 검색은 물론 차량 상태 점검의 액션도 함께 수행될 수 있다.
입력 처리기(110)로부터 사용자 발화에 대응되는 액션뿐만 아니라 상황 수집 관리기(112b)에서 판단한 이벤트도 함께 전송한 경우에는, 사용자 발화에 대응되는 액션과 연관된 액션과 함께 이벤트와 연관된 액션도 후보 액션이 될 수 있다.
예를 들어, 차량 감지부(260)가 센서에서 검출한 검출값을 전달하여 차량(200)의 고장과 관련된 이벤트를 전달하면, 이벤트와 관련된 액션은 정비 이력 검색의 액션도 함께 후보 액션이 될 수 있다.
추출된 후보 액션 목록은 대화 액션 관리기(122)로 전달되고, 대화 액션 관리기(122)는 후보 액션 목록을 추가하여 대화/액션 상태 DB(147)의 액션 상태를 업데이트한다.
액션 우선순위 결정기(125)는 액션 수행 조건 DB(146c)에서 각각의 후보 액션을 수행하기 위한 조건을 검색한다.
도 23의 예시와 같이, 액션 수행 조건 DB(146c)는 액션을 수행하기 위해 필요한 조건과 해당 조건의 만족 여부를 판단하기 위해 사용되는 인자를 각각의 액션 별로 저장할 수 있다.
예를 들어, 정비소가 목적지인 길안내의 연관 액션 중 주유소 추천에서 수행 조건은 목적지 거리가 100km 이상인 경우일 수 있고, 조건 판단을 위해 사용되는 인자는 목적지 거리에 해당한다. 여기서 주유소 추천 액션의 수행 조건은 목적지 거리가 주행 가능 거리(DTE: Distance To Empty)보다 먼 경우일 수 있고, 조건 판단을 위해 사용되는 인자는 목적지 거리와 주행 가능 거리(DTE)에 해당한다.
또 다른 예로, 정비 이력 검색과 연관된 액션 중, 차량 상태 점검 액션은 센서 검지 결과의 유무가 조건에 해당한다. 차량(200)의 자체에 고장이 검색되면, 정비 이력 검색을 수행할 필요가 없다. 따라서 차량 상태 점검의 액션이 수행되기 위해서는 센서 검지 결과가 없어야 하고, 이 때 조건 판단을 위해 필요한 인자는 센서 검출값에 해당한다.
액션 우선순위 결정기(125)는 후보 액션의 수행 조건을 대화 액션 관리기(122)로 전달하고, 대화 액션 관리기(122)는 각 후보 액션 별 액션 수행 조건을 추가하여 대화/액션 상태 DB(147)의 액션 상태를 업데이트한다.
액션 우선순위 결정기(125)는 상황 정보 DB(142), 장기 메모리(143), 단기 메모리(144) 또는 대화/액션 상태 DB(147)에서 액션 수행 조건 판단을 위해 필요한 인자(이하, 조건 판단 인자라 한다)를 검색하고, 검색된 인자를 이용하여 각 후보 액션의 수행 가부를 판단할 수 있다
액션 수행 조건 판단을 위해 사용되는 인자가 상황 정보 DB(142), 장기 메모리(143), 단기 메모리(144) 또는 대화/액션 DB(147)에 저장되지 않은 경우, 외부 정보 관리기(126)를 통해 외부 컨텐츠 서버(300)로부터 필요한 인자를 가져올 수 있다.
액션 우선순위 결정기(125)는 액션 수행 조건 판단을 위해 필요한 인자를 이용하여 각 후보 액션의 수행 가부를 판단할 수 있다. 또한, 각 후보 액션의 수행 가부 및 대화 정책 DB(148)에 저장된 우선 순위 결정 규칙에 기초하여 각 후보 액션의 우선 순위를 결정할 수 있다.
현재 상황에 따라 각 후보 액션에 대한 점수가 계산될 수 있다. 계산된 점수가 높은 순으로 높은 우선순위가 할당된다. 예를 들어, 아래 [수학식 1]에 나타낸 바와 같이, 사용자 발화에 대응되는 액션, 안전도 점수, 편의 점수, 처리 시간, 처리 시점(지금 당장 처리해야 하는지 여부), 사용자 선호도(서비스 제안 시 사용자의 수용 정도 또는 사용자가 사전에 정의한 선호도), 관리자 점수, 차량 상태 연관 점수, 액션 성공률(대화 성공률)이 점수 계산의 인자로 사용될 수 있다.
[수학식 1]
우선순위 점수 = w1*사용자 발화 액션 + w2*안전도 점수 + w3*편의점수 + w4*처리시간 + w5*처리시점 + w6*사용자 선호도 + w7*관리자 점수 + w8*차량 상태 연관 점수 + w9*액션 성공률*액션 수행 가능 여부(1:가능, 미정 0:불가능) *액션 완료 여부(완료:1, 미완료:0)
전술한 바와 같이, 액션 우선순위 결정기(125)가 사용자의 발화나 상황 정보에 직접적으로 관련된 액션뿐만 아니라 이와 연관된 액션 목록까지 검색하고 이들 사이의 우선 순위를 결정함으로써 사용자에게 가장 필요한 서비스를 제공할 수 있게 된다.
액션 우선순위 결정기(125)는 각 후보 액션의 수행 가부 및 우선 순위를 대화 액션 관리기(122)로 전달하고, 대화 액션 관리기(122)는 전달된 정보를 추가하여 대화/액션 상태 DB(147)의 액션 상태를 업데이트한다.
인자 관리기(124)는 액션 인자 DB(146a)에서 각 후보 액션을 수행하는데 사용되는 인자(이하, 액션 인자라 한다.)를 검색할 수 있다.
도 24의 예시와 같이, 액션 인자 DB(146a)는 액션 별로 필수 인자, 선택 인자, 인자의 초기값 및 인자를 가져올 수 있는 참조 위치를 저장할 수 있다. 인자의 초기값이 저장되어 있는 경우에, 입력 처리기(110)로부터 출력된 사용자의 발화나 상황 정보에 해당 인자에 대응되는 인자 값이 포함되어 있지 않고 상황 정보 DB(142)에도 해당 인자 값이 저장되어 있지 않으면, 저장된 초기값에 따라 액션을 수행하거나, 저장된 초기값에 따라 액션을 수행할 지 사용자에게 확인할 수 있다.
예를 들어, 차량 상태 이상 액션을 수행하는데 사용되는 필수 인자는 점검 대상을 포함할 수 있고, 선택 인자는 차량 자체 점검일 수 있다. 차량의 자체 점검의 초기값은 차량 감지부(260) 등에 마련된 센서의 검출값일 수 있다. 센서의 검출값은 상황 정보 DB(142), 단기 메모리(144) 또는 장기 메모리(143) 및 외부 정보 관리기(126)를 순차적으로 검색하여 획득할 수 있다.
길안내 액션을 수행하는데 사용되는 필수 인자는 현재 위치와 목적지를 포함할 수 있고, 선택 인자는 경로 타입을 포함할 수 있다. 선택 인자의 초기값으로 빠른 길이 저장될 수 있다. 현재 위치와 목적지는 대화/액션 DB(147), 상황 정보 DB(142), 단기 메모리(144) 또는 장기 메모리(143)를 순차적으로 검색하여 획득할 수 있다.
주유소 추천 액션을 수행하는데 사용되는 선택 인자는 선호 주유소를 포함할 수 있고, 선택 인자의 초기값으로 C 오일이 저장될 수 있다. 선호 주유소는 장기 메모리(143)로부터 획득할 수 있다. 선택 인자에 차량의 유종, 기름 가격 등이 더 포함되는 것도 가능하다.
전술한 바와 같이, 인자 관리기(124)는 액션 인자 DB(146a)에서 검색한 인자의 인자 값을 해당 참조 위치에서 가져온다. 인자 값을 가져올 수 있는 참조 위치는 상황 정보 DB(142), 장기 메모리(143), 단기 메모리(144), 대화/액션 상태 DB(147) 및 외부 컨텐츠 서버(300) 중 적어도 하나일 수 있다.
인자 관리기(124)가 외부 컨텐츠 서버(300)로부터 인자 값을 가져오는 경우에는, 외부 정보 관리기(126)를 통할 수 있다.
외부 정보 관리기(126)는 외부 서비스 집합 DB(146d)를 참조하여 어디에서 정보를 가져올 지 판단할 수 있으며, 외부 컨텐츠 서버(300)로부터 차량(200)의 유사 차종/유사 연식에 따라서 사용자의 차량 상태 이상과 관련된 유사한 사례의 검색을 요청할 수 있다. 또한, 외부 정보 관리기(126)는 외부 컨텐츠 서버(300)에 저장된 개인 정비 이력을 요청할 수도 있다.
외부 서비스 집합 DB(146d)는 대화 시스템(100)과 연계된 외부 컨텐츠 서버에 대한 정보를 저장한다. 예를 들어, 외부 서비스 명칭, 외부 서비스 에 대한 설명, 외부 서비스 가 제공하는 정보의 타입, 외부 서비스 사용 방법, 외부 서비스 의 제공 주체 등에 대한 정보를 저장할 수 있다.
정비 진단 DB(146e)는 차량의 예비 징후에 대한 사용자의 발화 및 이에 따른 해결책을 저장하거나, 외부 컨텐츠 서버(400)에 요청할 수 있다.
구체적으로 정비 진단 DB(146e)는 차량의 상태 이상에 대한 상황 정보 및 사용자의 발화가 입력되면, 현재 문제에 관한 설명 및 해결책을 제안하는 응답을 저장할 수 있다.
여기서 해결책은 유사 연식/유사 차종 내에서 다른 사용자나 대화 시스템(100)에 의해서 수집되는 유사 사례를 기초로 이에 대한 해결책을 저장하는 정비 DB(300a) 및 사용자의 차량(200)의 개인적인 정비 이력을 저장하는 개인 정비 DB(300b)로부터 수집될 수 있다. 즉, 정비 DB(300a)는 현재 차량에서 가장 유사한 해결책을 제시하고, 개인 정비 DB(300b)는 사용자가 차량(200)의 구매 후 현재까지 정비한 이력, 예를 들어 소모품 교체 등의 다양한 개인 이력을 포함할 수 있다.
예를 들면, 차량 상태 점검 액션과 관련된 점검 대상이 브레이크인 경우, 인자 관리기(124)는 상황 정보 DB(142), 장기 메모리(143), 단기 메모리(144) 또는 대화/액션 상태 DB(147)등에서 브레이크의 이상을 감지하는 센서의 검출값을 검색한다. 센서의 검출값이 없는 경우, 대화 액션 관리기(122)는 외부 정보 관리기(126)를 통해 정비 이력을 검색하고, 브레이크 이상에 대한 해결책을 검색할 수 있다.
한편, 개인 정비 이력 DB(300b)는 반드시 차량(200)의 외부, 즉 외부 컨텐츠 서버(300)에 마련될 필요는 없으며, 차량(200)의 내부 메모리에 저장되거나, 대화 시스템(100) 내부의 저장부(140)에 마련될 수도 있으며, 제한은 없다.
외부 정보 관리기(126)가 획득한 해결책에 대한 정보는 대화 액션 관리기(122)의 제어에 따라 인자 관리기(124)에서 차량 상태 점검의 액션에 대한 인자 값으로 변환된다.
결국, 인자 관리기(124)가 획득한 인자 값은 대화 액션 관리기(122)로 전달되고, 대화 액션 관리기(122)는 각 후보 액션 별 인자 값을 액션 상태에 추가하여 대화/액션 상태 DB(147)를 업데이트한다.
대화나 상황에 모호성이 없는 경우에는 전술한 액션 우선순위 결정기(125), 인자 관리기(124) 및 외부 정보 관리기(126)의 동작에 따라 필요한 정보를 얻고 대화와 액션을 관리할 수 있다. 그러나, 대화나 상황에 모호성이 있는 경우에는 액션 우선순위 결정기(125), 인자 관리기(124) 및 외부 정보 관리기(126)의 동작만으로는 사용자에게 필요한 적절한 서비스를 제공하기 어렵다.
이러한 경우, 모호성 해결기(123)가 대화에 대한 모호성 또는 상황에 대한 모호성을 해결할 수 있다. 예를 들어, 대화에 그 사람, 어제 거기, 아빠, 엄마, 할머니, 며느리 등과 같은 조응어가 포함되어 무엇을 지칭하는지 모호한 경우에 모호성 해결기(123)가 상황 정보 DB(142), 장기 메모기(143) 또는 단기 메모리(144)를 참조하여 이러한 모호성을 해결하거나 이를 해결하기 위한 가이드를 제시할 수 있다.
예를 들어, "가까운 정비소" 등과 같이 대화에 포함된 모호한 단어가 액션 인자의 인자 값이거나 조건 판단 인자의 인자 값에 해당할 수 있다. 그러나, 이 경우, 해당 단어 자체만으로는 그 모호성으로 인해 실제로 액션을 수행하거나 액션 수행 조건을 판단할 수가 없다.
모호성 해결기(123)는 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에 저장된 정보를 참조하여 인자 값의 모호성을 해결할 수 있다. 또는, 필요에 따라 외부 정보 관리기(126)를 이용하여 외부 컨텐츠 서버(300)로부터 필요한 정보를 가져오는 것도 가능하다.
예를 들어, 모호성 해결기(123)는 단기 메모리(144)를 참조하여 현재 위치와 관련된 GPS 정보를 수집할 수 있다. 또한, 모호성 해결기(123)는 장기 메모리(143) 또는 외부 정보 관리기(126)를 통해 현재 위치의 주변 지도를 획득하고, 가장 가까운 위치에 있는 정비소에 대한 정보를 가져옴으로써, "가까운 정비소"를 "A 정비소"로 변환할 수 있다.
또한, 입력 처리기(110)에서 액션(오브젝트, 오퍼레이터)이 명확하게 추출되지 않거나 사용자의 의도가 모호한 상황에서, 모호성 해결기(123)가 모호성 해소 정보 DB(146e)를 참조하여 사용자의 의도를 파악하고, 이에 대응되는 액션을 결정하는 것도 가능하다.
도 25는 결과 처리기의 구성을 세분화한 제어 블록도이다.
도 25를 참조하면, 결과 처리기(130)는 대화 관리기(120)로부터 입력된 액션을 수행하기 위해 필요한 응답의 생성을 관리하는 응답 생성 관리기(131), 응답 생성 관리기(131)의 요청에 따라 텍스트 응답, 이미지 응답 또는 오디오 응답을 생성하는 대화 응답 생성기(132), 응답 생성 관리기(131)의 요청에 따라 차량 제어를 위한 명령어 또는 외부 컨텐츠를 이용한 서비스를 제공하기 위한 명령어를 생성하는 명령어 생성기(136), 사용자가 원하는 서비스를 제공하기 위해 다수의 서비스를 순차적 또는 산발적으로 실행하고 결과값을 취합해주는 서비스 편집기(134), 생성된 텍스트 응답, 이미지 응답 또는 오디오 응답을 출력하거나 명령어 생성기(136)가 생성한 명령어를 출력하고, 출력이 복수인 경우에는 출력 순서를 결정하는 출력 관리기(133), 응답 생성 관리기(131)와 출력 관리기(133)의 출력에 기초하여 장기 메모리(143)와 단기 메모리(144)를 관리하는 메모리 관리기(135)를 포함한다.
결과 처리기(130)는 전술 또는 후술하는 동작을 수행하기 위한 프로그램이 저장되는 메모리 및 저장된 프로그램을 실행시키는 프로세서를 포함할 수 있다. 메모리와 프로세서는 각각 적어도 하나 마련될 수 있고, 복수 개 마련되는 경우에는 이들이 하나의 칩 상에 집적될 수도 있고 물리적으로 분리될 수도 있다.
또한, 결과 처리기(130)에 포함되는 각각의 구성요소들이 단일 프로세서에 의해 구현되는 것도 가능하고, 별개의 프로세서에 의해 구현되는 것도 가능하다.
또한, 결과 처리기(130)와, 대화 관리기(120) 및 입력 처리기(110) 역시 단일 프로세서에 의해 구현되는 것도 가능하고, 별개의 프로세서에 의해 구현되는 것도 가능하다.
사용자의 발화나 상황에 대응하여 출력되는 응답은 대화 응답, 차량 제어, 외부 컨텐츠 제공 등을 포함할 수 있다. 대화 응답은 초기 대화, 질의, 정보 제공을 포함하는 답변 등의 형식을 가질 수 있고 응답 템플릿(149)에 데이터베이스화되어 저장될 수 있다.
응답 생성 관리기(131)는 대화 응답 생성기(132)와 명령어 생성기(136)에 대화 관리기(120)에서 결정된 액션을 수행하기 위해 필요한 응답의 생성을 요청한다. 이를 위해, 수행될 액션에 관한 정보를 대화 응답 생성기(132)와 명령어 생성기(136)에 전송할 수 있고, 수행될 액션에 관한 정보는 액션명, 인자 값 등을 포함할 수 있다. 응답을 생성함에 있어, 대화 응답 생성기(132)와 명령어 생성기(136)는 현재 대화 상태와 액션 상태를 참조할 수 있다.
대화 응답 생성기(132)는 응답 템플릿(149)을 검색하여 대화 응답 서식을 추출할 수 있고, 추출된 대화 응답 서식에 필요한 인자 값을 채워 대화 응답을 생성한다. 생성된 대화 응답은 응답 생성 관리기(131)로 전달된다. 대화 응답 생성에 필요한 인자 값이 대화 관리기(120)로부터 전달되지 않거나, 외부 컨텐츠를 이용하라는 지시가 전달된 경우에는 외부 컨텐츠 서버(300)로부터 제공받거나 장기 메모리(143), 단기 메모리(144) 또는 상황 정보 DB(142)에서 검색할 수 있다.
예를 들어, 대화 관리기(120)에서 결정된 액션이 차량 상태 이상에 해당하는 경우, 응답 템플릿(149)을 검색하여 "[점검 대상:-]에서 [해결책:-]이 필요할 것 같습니다. 정비소를 안내할까요?"를 대화 응답 서식으로 추출할 수 있다.
대화 응답 서식에 채워져야 할 인자 중에서 [점검 대상]의 인자 값은 대화 관리기(120)로부터 전달되고, [해결책]의 인자 값은 전달되지 않을 수 있다. 이 경우, 대화 응답 생성기(132)는 외부 컨텐츠 서버(300)에 [해결책]에 대한 정보를 요청할 수 있다.
명령어 생성기(136)는 사용자의 발화나 상황에 대한 응답이 차량 제어 또는 외부 컨텐츠 제공을 포함하는 경우, 이를 실행하기 위한 명령어를 생성한다. 예를 들어, 대화 관리기(120)에서 결정된 액션이 공조 장치, 윈도우, 시트, AVN 등의 제어인 경우에 해당 제어를 실행하기 위한 명령어를 생성하여 응답 생성 관리기(131)에 전달한다.
또는, 대화 관리기(120)에서 결정된 액션이 외부 컨텐츠의 제공을 필요로 하는 경우에는 외부 컨텐츠 서버(300)로부터 해당 컨텐츠를 제공받기 위한 명령어를 생성하여 응답 생성 관리기(131)에 전달한다.
일 예로, 사용자의 예비 징후에 대한 해결책이 브레이크 페달의 변경이라면, 응답 생성 관리기(131)는 출력 관리기(133)를 통해 외부로 정비 이력 또는 개인 정비 이력을 전달하고, 다른 사용자 등이 해결책으로 활용할 수 있도록 한다.
명령어 생성기(136)에서 생성한 명령어가 복수인 경우, 서비스 편집기(134)가 복수의 명령어를 실행하는 방법과 순서를 결정하여 응답 생성 관리기(131)에 전달한다.
응답 생성 관리기(131)는 대화 응답 생성기(132), 명령어 생성기(136) 또는 서비스 편집기(134)로부터 전달받은 응답을 출력 관리기(133)에 전달한다.
출력 관리기(133)는 대화 응답 생성기(132)가 생성한 대화 응답과 명령어 생성기(136)가 생성한 명령어의 출력 타이밍, 출력 순서, 출력 위치 등을 결정한다.
출력 관리기(133)는 응답 생성기(132)가 생성한 대화 응답과 명령어 생성기(!36)가 생성한 명령어를 적절한 타이밍에 적절한 순서로 적절한 출력 위치에 전송하여 응답을 출력한다. TTS(Text to Speech) 응답은 스피커(232)를 통해 출력할 수 있고, 텍스트 응답은 디스플레이(231)를 통해 출력할 수 있다. 대화 응답을 TTS 형태로 출력하는 경우에는 차량(200)에 마련된 TTS 모듈을 이용하거나 출력 관리기(133)가 TTS 모듈을 포함할 수도 있다.
명령어는 그 제어 대상에 따라 차량 제어기(240)로 전송될 수도 있고, 외부 컨텐츠 서버(300)와 통신하기 위한 통신 장치(280)로 전송될 수도 있다.
응답 생성 관리기(131)는 대화 응답 생성기(132), 명령어 생성기(136) 또는 서비스 편집기(134)로부터 전달받은 응답을 메모리 관리기(135)에도 전달할 수 있다.
또한, 출력 관리기(133)도 자신이 출력한 응답을 메모리 관리기(135)에 전달할 수 있다.
메모리 관리기(135)는 응답 생성 관리기(131) 및 출력 관리기(133)로부터 전달받은 내용에 기초하여 장기 메모리(143)와 단기 메모리(144)를 관리한다. 예를 들어, 메모리 관리기(135)는 생성 및 출력된 대화 응답에 기초하여 사용자와 시스템 간 대화 내용을 저장하여 단기 메모리(144)를 업데이트할 수 있고, 사용자와의 대화를 통해 획득된 사용자 관련 정보를 저장하여 장기 메모리(143)를 업데이트할 수 있다.
또한, 단기 메모리(144)에 저장된 정보 중 사용자의 성향이나 선호도와 같이 의미 있고 영속성이 있는 정보 또는 이러한 정보를 획득하는데 사용될 수 있는 정보를 장기 메모리(143)에 저장할 수도 있다.
또한, 생성 및 출력된 명령어에 대응되는 차량 제어나 외부 컨텐츠 요청에 기초하여 장기 메모리(143)에 저장된 사용자의 선호도나 차량 제어 이력 등을 업데이트할 수도 있다.
전술한 실시예에 따른 대화 시스템(100)에 의하면, 사용자와의 대화를 통해 차량의 고장과 관련한 예비 징후를 파악함으로써, 센서에서 측정되지 않은 부분의 진단 또는 해결책을 강구할 수 있고. 사고를 예방하여 사용자의 안전성을 보장한다.
또한, 대화 시스템(100)은 예비 징후에 대한 진단 후 대화를 통해 사용자의 피드백을 전달받음으로써, 사전 진단의 학습 데이터를 늘리고, 결과적으로 정확한 사전 진단을 수행할 수 있다.
이하 일 실시예에 따른 대화 시스템(100)을 이용한 구체적인 대화 처리 및 차량의 상태 점검에 대한 예시를 상세하게 설명하도록 한다.
도 26 내지 도 42는 사용자가 차량의 상태가 이상하다는 발화를 입력한 경우에 대화 시스템이 입력을 처리하고, 대화를 관리하고, 해결책을 제안하는 구체적인 예시를 나타낸 도면이다.
도 26에서 도시된 바와 같이, 사용자가 "브레이크가 뻑뻑해"라는 발화를 입력한 경우, 음성 인식기(111a)는 사용자의 음성을 텍스트 형태의 발화문(브레이크가 뻑뻑해)으로 출력한다.
자연어 이해기(111b)는 형태소를 분석하고 도메인/액션 추론 규칙 DB(141)를 참조하여, 형태소 분석 결과(브레이크/NNG, 뻑뻑해/VV) 로부터 [도메인: 차량 상태 이상], [액션: 차량 상태 점검], [화행: 요청], [인자:NLU 점검대상: 브레이크]을 추출하여 대화 입력 관리기(111c)에 입력할 수 있다.
도 27를 참조하면, 대화 입력 관리기(111c)는 자연어 이해기(111b)의 자연어 이해 결과를 상황 이해기(112c)에 전달하면서 추가 정보가 있으면 보내줄 것을 요청한다.
상황 이해기(112c)는 상황 이해 테이블(145)을 검색하여 [도메인: 차량 상태 이상], [액션: 차량 상태 점검]과 관련된 상황 정보는 브레이크 센서 검출이고 상황 정보 타입은 정수임을 추출할 수 있다.
상황 이해기(112c)는 상황 정보 DB(142)를 검색하여 브레이크 센서의 검출값을 추출한다. 상황 정보 DB(142)에 센서의 검출값이 저장되어 있지 않은 경우에는, 상황 정보 수집 관리기(112b)에 센서의 검출값을 요청한다.
상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)에 신호를 보내 센서의 검출값을 수집하도록 하고, 상황 정보 수집기(112a)는 차량 제어기(240)로부터 브레이크 센서의 검출값을 수집하여 상황 정보 DB(142)에 저장하면서 브레이크 센서의 검출값에 대한 수집 확인 신호를 상황 정보 수집 관리기(112b)에 전송한다. 상황 정보 수집 관리기(112b)가 상황 이해기(112c)에 브레이크 센서의 수집 확인 신호를 전달하면, 상황 이해기(112c)는 상황 정보 DB(142)로부터 브레이크 센서의 검출값을 추출하여 대화 입력 관리기(111c)에 전달한다.
대화 입력 관리기(111c)는 자연어 이해 결과인 [도메인: 차량 상태 이상], [액션: 차량 상태 점검], [화행: 요청], [인자: NLU: 점검대상: 브레이크]와 [상황 정보: 브레이크 센서 검출: 정수(검출값)]를 통합하여 대화 관리기(120)에 전달한다.
도 28을 참조하면, 대화 흐름 관리기(121)는 대화/액션 상태 DB(147)를 검색하여 진행 중인 대화 태스크나 액션 태스크가 있는지 판단한다. 이 때, 대화 정책 DB(148)를 참조할 수 있다. 당해 예시에서는 진행 중인 대화 태스크나 액션 태스크가 없는 상태인 것으로 가정한다.
대화 흐름 관리기(121)는 대화 액션 관리기(122)에 입력 처리기(110)의 출력에 대응되는 액션 태스크와 대화 태스크를 생성하도록 요청한다. 액션 태스크와 대화 태스크를 생성하는 것은 액션 상태와 대화 상태에 대한 정보를 저장하고 관리하기 위한 저장 공간을 할당하는 것을 의미한다.
따라서, 대화 액션 관리기(122)는 대화/액션 상태 DB(147) 내에 저장 공간을 할당하여 액션 상태에 대한 정보와 대화 상태에 대한 정보를 저장한다.
대화 액션 관리기(122)는 액션 상태와 대화 상태를 액션 우선순위 결정기(125)에 전달한다.
액션 우선순위 결정기(125)는 연관 액션 DB(146b)에서 차량 상태 점검과 연계된 액션인 점검 이력 검색을 추출한다. 즉, 정비 이력 검색은 차량 상태 점검 액션의 후보 액션이 된다.
액션 우선순위 결정기(125)는 미리 저장된 규칙에 따라 각 후보 액션들의 우선 순위를 결정할 수 있다. 우선 순위는 각 후보 액션 별 수행 조건이 판단되기 전에 결정될 수도 있고, 수행 조건이 판단된 이후에 수행 조건을 만족하는 후보 액션들에 대해서만 결정될 수도 있다.
후보 액션 목록은 다시 대화 액션 관리기(122)로 전달되고, 대화 액션 관리기(122)는 검색된 연계 액션들을 추가하여 액션 상태를 업데이트한다.
도 29를 참조하면, 액션 우선순위 결정기(125)는 액션 수행 조건 DB(146c)에서 각각의 후보 액션에 대한 수행 조건 및 수행 조건을 판단하기 위한 인자를 검색한다. 또한, 각 후보 액션들 사이의 우선 순위도 결정할 수 있다.
예를 들어, 차량 상태 점검을 수행하기 위한 조건은 차량 감지부(260) 중 브레이크에 마련된 센서의 검출값일 수 있다. 또한, 차량 상태 점검의 액션과 연관된 조건을 만족하지 않으면, 점검 이력 검색 액션은 다음 단계의 액션일 수 있다.
대화 액션 관리기(122)는 대화/액션 상태 DB(147)에 각 후보 액션을 수행하기 위한 조건과 조건 판단에 필요한 인자를 추가하여 액션 상태를 업데이트한다.
일 실시예에 따라 대화 액션 관리기(122)는 도 29와 같이, 액션 상태를 업데이트할 수 있다.
구체적으로 대화 액션 관리기(122)는 수행가능성을 판단하는 인자인 [수행가능:-], 우선 순위를 결정하는 [우선순위: 1]를 포함하여 [도메인: 차량 상태 이상], [액션: 차량 상태 점검], [조건: 브레이크 센서 검출: -] 및 [인자: NLU: 점검대상: 브레이크]를 더 포함하는 액션 상태를 업데이트할 수 있다.
또한, 대화 액션 관리기(122)는 [수행가능:-], [우선순위: 1], [도메인: 차량 상태 이상], [액션: 점검 이력 검색], [인자: NLU: 점검대상: 브레이크] 및 [해결책: -]를 포함하는 액션 상태를 업데이트할 수 있다.
액션 우선순위 결정기(125)는 각 후보 액션의 수행 조건 만족 여부를 판단하기 위해 필요한 인자 값을 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144) 및 외부 정보 관리기(126)에서 검색하여 가져올 수 있다.
만약 인자 값이 이전 대화 내용에 포함되었거나, 대화 내용에 관련된 상황 정보에 포함되었거나, 발생된 이벤트에 관련된 상환 정보에 포함된 경우, 대화/액션 상태 DB(147)로부터 인자 값을 가져올 수 있다.
인자 값을 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에서 가져올 수 없는 경우에는 외부 정보 관리기(126)에 요청할 수 있다.
일 실시예에 따라 사용자가 발화할 수 있는 내용은 차량 상태 점검의 조건을 만족하지 않을 수 있다. 예를 들어, 브레이크가 뻑뻑하다는 것은 브레이크의 이상 여부를 감지하는 센서에는 검출되지 않지만, 운전자의 감각에 의해서 이상을 판단할 수 있는 고장 전의 예비 징후이다. 따라서 액션 우선 순위 결정기(125)는 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에서 센서의 검출값을 수집하지 못 하거나, 센서의 검출값이 고장이라고 판단할 수준의 검출값을 수집하지 못 할 수 있다. 이 경우 액션 우선 순위 결정기(125)는 차량 상태 점검 액션의 조건이 만족하지 못하다고 판단하고, 대화 액션 관리기(122)에 조건 판단 인자를 전달할 수 있다.
또한, 액션 우선 순위 결정기(125)는 외부 정보 관리기(126)으로부터 우선순위 2에 해당하는 점검 이력 검색의 조건이 만족하는지 여부를 검색할 수 있다.
일 실시예에 따른 외부 정보 관리기(126)는 외부 컨텐츠 서버(300)로부터 예비 징후에 대한 해결책 등을 요청하여 이를 제시할 수 있다. 따라서 외부 정보 관리기(126)는 액션 우선 순위 결정기(125)에 점검 이력 검색 액션에 대한 조건 판단 인자 값, 예를 들면, 점검 이력이 "있음"을 전달한다.
액션 우선 순위 결정기(125)는 조건 판단 인자 값을 수집하여 각 후보 액션별 수행 조건을 판단하고, 우선 순위를 변경할 것을 요청하는 신호를 대화 액션 관리기(122)로 전달한다.
도 30과 같이, 대화 액션 관리기(122)는 액션 우선 순위 결정기(125)의 신호에 따라 액션 상태를 업데이트한다.
한편, 대화 액션 관리기(122)는 우선 순위가 1로 변경된 정비 이력 검색 액션을 수행하기 위한 인자값, 즉 차량 상태 이상에 따른 해결책을 검색한다. 구체적으로 대화 액션 관리기(122)는 외부 정보 관리기(126)에 해결책을 요청하도록 제어한다.
외부 정보 관리기(126)는 정비 진단 DB(146e)에서 이전에 검색하여 저장한 유사 연식/유사 차종 내 차량의 상태 이상과 관련된 유사사례 및 현재 차량(200)의 개인 정비 이력을 검색한다.
만약 유사 사례와 정비 이력이 검색되지 않으면, 외부 정보 관리기(126)는 도 21에서 설명한 바와 같이 외부 컨텐츠 서버(300)에 유사 사례 또는 정비 이력의 검색을 요청하고 그에 기초한 해결책을 요청한다.
한편, 유사 사례 또는 정비 이력 및 그 해결책은 다양할 수 있으며, 이와 관련된 다양한 실시예는 도 44를 통해 다시 설명한다.
일 실시예에 따른 외부 정보 관리기(126)는 사용자의 차량 상태 이상에 대한 해결책으로 브레이크 페달의 변경을 수집할 수 있다. 외부 정보 관리기(126)는 수집된 해결책을 대화 액션 관리기(122)로 전달하고, 대화 액션 관리기(122)는 액션 상태를 [해결책: 페달의 변경]으로 업데이트할 수 있다.
도 31을 참조하면, 응답 생성 관리기(131)는 대화 흐름 관리기(121)의 요청에 따라 대화 응답 생성기(132)에 응답 생성을 요청한다.
대화 응답 생성기(132)는 응답 템플릿(149)를 검색하여 TTS 응답, 텍스트 응답을 생성한다. 예를 들어, "브레이크 페달의 변경이 필요할 것 같습니다. 정비소로 안내할까요?"를 TTS와 텍스트로 출력할 수 있는 대화 응답을 생성할 수 있다.
응답 생성 관리기(131)는 대화 응답 생성기(132)가 생성한 TTS 응답과 텍스트 응답을 출력 관리기(133)와 메모리 관리기(135)에 전달하고, 출력 관리기(133)는 TTS응답을 스피커(232)에 전송하고 텍스트 응답을 디스플레이(231)에 전송한다. 이 때, 출력 관리기(133)는 텍스트를 음성으로 합성하는 TTS모듈을 거쳐 TTS응답을 스피커(232)로 전송할 수 있다.
또한, 출력 관리기(133)는 차량 상태 이상에 대한 해결책으로 브레이크 페달의 변경을 수행하였다는 정보를 외부 컨텐츠 서버(400)로 전달하고, 정비 이력 DB(300a) 또는 개인 정비 이력 DB(300b)에 저장한다. 이렇게 축적된 데이터는 다음 차량 상태 이상이나 다른 차량의 해결책으로 활용될 수 있다.
메모리 관리기(135)는 사용자가 차량 상태 이상을 요청하고, 점검 대상이 브레이크이며, 해결책이 브레이크 페달의 변경이라는 데이터를 단기 메모리(144) 또는 장기 메모리(143)에 저장할 수 있다.
디스플레이(231)와 스피커(232)를 통해 "브레이크 페달의 변경이 필요할 것 같습니다. 정비소로 안내할까요?"라고 묻는 대화 응답이 출력된다. 도 32에 도시된 바와 같이, 사용자가 "그래. 가까운 정비소로 가자"라고 발화하면, 사용자의 발화는 음성 인식기(111a)로 입력되어 [텍스트: 그래. 가까운 정비소로 가자]로 출력되고, 자연어 이해기(111b)는 사용자의 발화로부터 [도메인: 내비게이션], [액션: 길안내], [화행: 요청], [형태소 분석 결과: 그래/IC, 가까운/VA, 정비소/NNG, 가자/VV] 및 [인자: NLU: 목적지: 정비소]를 출력한다.
자연어 이해 결과는 대화 입력 관리기(111c)로 전달되고, 대화 입력 관리기(111c)는 이를 대화 관리기(120)에 전달한다.
도 29를 참조하면, 대화 입력 관리기(111c)는 자연어 이해기(111b)의 자연어 이해 결과를 상황 이해기(112c)에 전달하면서 추가 정보가 있으면 보내줄 것을 요청한다.
상황 이해기(112c)는 상황 이해 테이블(145)을 검색하여 [도메인: 내비게이션], [액션: 길안내]와 관련된 상황 정보는 현재 위치이고 상황 정보 타입은 GPS 값임을 추출할 수 있다.
상황 이해기(112c)는 상황 정보 DB(142)를 검색하여 현재 위치의 GPS 값을 추출한다. 상황 정보 DB(142)에 현재 위치의 GPS 값이 저장되어 있지 않은 경우에는, 상황 정보 수집 관리기(112b)에 현재 위치의 GPS 값을 요청한다.
상황 정보 수집 관리기(112b)는 상황 정보 수집기(112a)에 신호를 보내 현재 위치의 GPS 값을 수집하도록 하고, 상황 정보 수집기(112a)는 차량 제어기(240)로부터 GPS 값을 수집하여 상황 정보 DB(142)에 저장하면서 GPS 값 수집 확인 신호를 상황 정보 수집 관리기(112b)에 전송한다. 상황 정보 수집 관리기(112b)가 상황 이해기(112c)에 GPS 값 수집 확인 신호를 전달하면, 상황 이해기(112c)는 상황 정보 DB(142)로부터 현재 위치의 GPS 값을 추출하여 대화 입력 관리기(111c)에 전달한다.
대화 입력 관리기(111c)는 자연어 이해 결과인 [도메인: 내비게이션], [액션: 길안내], [화행: 요청], [형태소 분석 결과: 그래/IC, 가까운/VA, 정비소/NNG, 가자/VV] [인자: NLU: 목적지: 정비소] 및 [상황 정보: 현재 위치: 의왕역(GPS 값)]를 통합하여 대화 관리기(120)에 전달한다.
도 34를 참조하면, 대화 흐름 관리기(121)는 대화/액션 상태 DB(147)를 검색하여 진행 중인 대화 태스크나 액션 태스크가 있는지 판단한다. 이 때, 대화 정책 DB(148)를 참조할 수 있다.
이전 대화 상태를 참고하여, 대화 흐름 관리기(121)는 [도메인: 내비게이션], [액션: 길안내], [상태: 브레이크 페달의 변경 필요], [인자: NLU: 목적지: 정비소] 및 [상황 정보: 현재 위치: 의왕역(GPS)]을 생성할 수 있다.
대화 액션 관리기(122)는 생성된 대화 상태를 액션 우선순위 결정기(125)에 전달한다.
액션 우선순위 결정기(125)는 연관 액션 DB(146b)에서 길 안내와 연계된 액션인 주유소 추천을 검색한다. 길 안내 액션 및 주유소 추천 액션들은 후보 액션이 된다.
후보 액션 목록은 다시 대화 액션 관리기(122)로 전달되고, 대화 액션 관리기(122)는 검색된 연계 액션들을 추가하여 액션 상태를 업데이트한다.
도 35를 참조하면, 액션 우선순위 결정기(125)는 액션 수행 조건 DB(146c)에서 각각의 후보 액션에 대한 수행 조건 및 수행 조건을 판단하기 위한 인자를 검색한다.
일 실시예에 따라 주유소 추천을 수행하기 위한 조건은 목적지까지의 거리가 주행 가능 거리(DTE)보다 먼 경우일 수 있고, 수행 조건을 판단하기 위해 필요한 인자는 목적지 거리와 주행 가능 거리이다.
대화 액션 관리기(122)는 대화/액션 상태 DB(147)에 각 후보 액션을 수행하기 위한 조건과 조건 판단에 필요한 인자를 추가하여 액션 상태를 업데이트한다.
액션 우선순위 결정기(125)는 각 후보 액션의 수행 조건 만족 여부를 판단하기 위해 필요한 인자 값을 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에서 검색하여 가져올 수 있다.
인자 값을 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 또는 단기 메모리(144)에서 가져올 수 없는 경우에는 외부 정보 관리기(126)에 요청할 수 있다.
예를 들어, 목적지 거리는 외부 정보 관리기(126)를 통해, 내비게이션 서비스를 제공하는 외부 컨텐츠 서버(300)로부터 가져올 수 있고, DTE는 상황 정보 DB(142)로부터 가져올 수 있다. 한편, 목적지 거리를 검색하기 위해서는 내비게이션 서비스에서 사용되는 정확한 목적지 정보가 필요하다. 당해 예시에서 사용자의 발화로부터 입력된 목적지는 "가까운 정비소"에 해당하는바, 가까운 정비소는 현재 위치에 따라 다양할 수 있고, 그 의미가 모호하다. 따라서, "가까운 정비소"만으로는 정확한 목적지 거리를 검색하기 어렵다.
한편, 필요에 따라 인자 값을 차량(200)과 연결된 모바일 기기(400)에서 가져오는 것도 가능하다. 예를 들어, 장기 메모리(143)에 저장되지 않은 연락처, 스케줄 등과 같은 사용자 정보가 인자 값으로 필요할 경우, 외부 정보 관리기(126)가 모바일 기기(400)에 필요한 정보를 요청하여 필요한 인자 값을 획득할 수 있다.
액션 우선순위 결정기(125)는 인자 값을 이용하여 각 후보 액션의 수행 조건을 판단한다. 목적지 거리는 검색되지 않았으므로, 일단 주유소 추천 액션에 대해서는 수행 조건의 판단을 보류한다.
도 36에 도시된 바와 같이, 대화 액션 관리기(122)는 대화/액션 상태 DB(147)에 획득된 인자 값과 해당 인자 값을 이용하여 판단된 액션 수행 조건 만족 여부를 추가하여 액션 상태를 업데이트한다.
대화 액션 관리기(122)는 인자 관리기(124)에 각 후보 액션의 수행에 사용되는 인자 목록을 요청한다.
인자 관리기(124)는 액션 인자(146a)로부터 길 안내 액션의 수행에 사용되는 필수 인자로 현위치와 목적지를 추출하고, 선택 인자로 경로 타입(초기값: 빠른 경로)을 추출할 수 있다. 또한, 주유소 추천의 수행에 사용되는 선택 인자로 선호 주유소(초기값: C 오일)을 추출할 수 있다.
추출된 인자 목록은 대화 액션 관리기(122)로 전달되어 액션 상태를 업데이트하는데 사용될 수 있다.
인자 관리기(124)는 각 후보 액션의 필수 인자와 선택 인자에 대응되는 인자 값을 획득하기 위해 대화/액션 상태 DB(147), 상황 정보 DB(142), 장기 메모리(143) 및 단기 메모리(144) 중 각 인자의 참조 위치에서 해당 인자 값을 검색하고, 인자 값이 외부 서비스를 통해 제공되어야 하는 경우에는 외부 정보 관리기(126)를 통해 외부 컨텐츠 서버(300)에 필요한 인자 값을 요청할 수 있다.
후보 액션의 수행 조건을 판단하기 위해 사용되는 인자와, 후보 액션을 수행하는데 사용되는 인자가 상호 겹칠 수 있다. 액션 우선순위 결정기(125)가 획득하여 대화/액션 상태 DB(147)에 저장한 인자 값 중에 후보 액션을 수행하는데 사용되는 인자(필수 인자, 선택 인자)와 대응되는 것이 있으면, 이를 사용할 수 있다.
도 37을 참조하면, 대화 액션 관리기(122)는 인자 관리기(124)가 획득한 인자 값을 추가하여 액션 상태를 업데이트한다.
전술한 바와 같이, 사용자 발화로부터 추출한 목적지(가까운 정비소)가 길 안내 액션의 인자로 사용되기에는 모호성이 있다. 따라서, 길 안내 액션의 인자(목적지), 주유소 추천 액션의 인자(목적지 거리)의 인자 값이 아직 획득되지 않았다.
모호성 해결기(123)는 [인자: NLU: 목적지: 정비소]가 길 안내 액션에 적합한 목적지 인자로 변환하는데 모호성이 있는지 확인한다. 전술한 바와 같이 "가까운 정비소"는 현재 위치에 따라 다양하게 변경될 수 있다.
모호성 해결기(123)는 형태소 분석 결과를 참조하여 사용자 발화 중 정비소에서 수식어가 있음을 확인한다. 모호성 해결기(123)는 "가까운 정비소"의 위치를 파악하기 위해 장기 메모리(143), 단기 메모리(144)에서 현재 위치 등을 검색한다.
예를 들어, 모호성 해결기(123)는 사용자의 현재 위치로부터 "가까운 정비소"가 "A 정비소"임을 확인할 수 있다. "A 정비소"의 POI가 있음을 확인하고 해당 값을 가져온다.
모호성 해결기(123)가 획득한 목적지 정보는 대화 액션 관리기(122)로 전달되고, 대화 액션 관리기(122)는 후보 액션의 목적지 인자에 "서울역 4번 출구"를 추가하여 액션 상태를 업데이트한다.
인자 관리기(124)는 대화/액션 DB(147)로부터 목적지 정보(A 정비소)를 가져오고, 외부 정보 관리기(126)를 통해 내비게이션 서비스를 제공하는 외부 컨텐츠 서버(300)에 목적지 거리 값을 요청한다.
도 38을 참조하면, 외부 정보 관리기(126)가 외부 컨텐츠 서버(300)로부터 목적지 거리 값(60km)을 획득하여 인자 관리기(124)에 전달하면, 인자 관리기(124)는 이를 대화 액션 관리기(122)에 전달하여 액션 상태가 업데이트될 수 있도록 한다.
액션 우선순위 결정기(125)는 액션 상태를 참조하여 후보 액션의 수행 가능 여부를 판단하고, 우선 순위를 조절할 수 있다. 길 안내 액션은 필수 인자인 현재 위치와 목적지의 인자 값이 획득되었으므로, 수행 가능하고, 주유소 추천 액션은 목적지 거리(60km)가 주행 가능 거리(DTE)보다 짧기 때문에 수행이 불가능한 것으로 판단할 수 있다. 즉, 주유소 추천은 수행이 불가하므로 우선순위 결정에서 제외한다.
도 39를 참조하면, 다시 응답 생성 관리기(131)는 대화 흐름 관리기(121)의 요청에 따라 대화 응답 생성기(132)에 응답 생성을 요청한다.
대화 응답 생성기(132)는 응답 템플릿(149)를 검색하여 TTS 응답, 텍스트 응답을 생성한다. 예를 들어, "의왕역에서 A 정비소로 목적지를 설정하였습니다. 안내를 시작할까요?"를 TTS와 텍스트로 출력할 수 있는 대화 응답을 생성할 수 있다.
응답 생성 관리기(131)는 대화 응답 생성기(132)가 생성한 TTS 응답과 텍스트 응답을 출력 관리기(133)와 메모리 관리기(135)에 전달하고, 출력 관리기(133)는 TTS응답을 스피커(232)에 전송하고 텍스트 응답을 디스플레이(231)에 전송한다. 이 때, 출력 관리기(133)는 텍스트를 음성으로 합성하는 TTS모듈을 거쳐 TTS응답을 스피커(232)로 전송할 수 있다.
메모리 관리기(135)는 사용자가 길 안내를 요청했음을 단기 메모리(144) 또는 장기 메모리(143)에 저장할 수 있다.
디스플레이(231)와 스피커(232)를 통해 "의왕역에서 A 정비소로 목적지를 설정하였습니다. 안내를 시작할까요?"라고 묻는 대화 응답이 출력된다. 도 40에 도시된 바와 같이, 사용자가 "그래"라고 발화하면, 사용자의 발화는 음성 인식기(111a)로 입력되어 [텍스트: 그래]로 출력되고, 자연어 이해기(111b)는 사용자의 발화로부터 [도메인:-], [액션:-], [화행: -], [형태소 분석 결과: 그래/IC]를 출력한다.
자연어 이해 결과는 대화 입력 관리기(111c)로 전달되고, 대화 입력 관리기(111c)는 이를 대화 관리기(120)에 전달한다.
도 41을 참조하면, 대화 흐름 관리기(121)는 대화/액션 상태 DB를 검색하여 이전 대화 상태를 분석하고, 진행 중인 [길 안내] 관련 대화/액션을 업데이트하도록 대화 액션 관리기(122)에 요청한다.
대화 액션 관리기(122)는 대화 상태와 액션 상태를 [상태: 길 안내 시작]으로 업데이트한다.
대화 흐름 관리기(121)는 결과 처리기(130)에 길 안내 시작을 위한 응답 생성을 요청한다.
도 42를 참조하면, 대화 액션 관리기(122)는 대화 상태를 [상태: 다음 대화 진행]으로 업데이트하고, 액션 상태를 [상태: execute]로 업데이트한다.
대화 흐름 관리기(121)는 응답 생성 관리기(131)에 길 안내를 위한 응답 생성을 요청한다.
응답 생성기(132)는 "길 안내를 시작합니다"를 TTS와 텍스트로 출력할 수 있는 대화 응답을 생성하여 응답 생성 관리기(131)에 전달할 수 있다.
명령어 생성기(136)는 길 안내를 수행하기 위한 명령어 [대상: 내비게이션, 명령: 길안내, 목적지: A 정비소, 출발지: 의왕역]를 생성하여 응답 생성 관리기(131)에 전달할 수 있다.
응답 생성 관리기(131)는 생성된 대화 응답과 명령어를 출력 관리기(133)에 전달한다. 출력 관리기(133)는 디스플레이(231) 및 스피커(232)를 통해 대화 응답을 출력하고, 길안내 명령어는 제어부(240)를 통해 차량(200)의 AVN(230)에 전송하거나 내비게이션 서비스를 제공하는 외부 컨텐츠 서버(300)에 전송할 수 있다.
앞서 설명한 데이터 처리의 흐름은 대화 시스템(100)에 적용되는 일 예시에 불과하다. 따라서, 대화 시스템(100)의 각 구성요소들이 데이터를 처리하는 순서가 전술한 예시에 한정되는 것은 아니며, 복수의 구성요소들이 동시에 데이터를 처리하는 것도 가능하고, 전술한 예시와 다른 순서로 처리하는 것도 가능하다.
이하, 일 실시예에 따른 대화 처리 방법에 대해 설명한다. 일 실시예에 따른 대화 처리 방법에는 전술한 대화 시스템(100) 또는 이를 포함하는 차량(200)이 적용될 수 있다. 따라서, 도 1 내지 도 40에 대한 설명은 일 실시예에 따른 대화 처리 방법에 대해서도 동일하게 적용될 수 있다.
도 43은 일 실시예에 따른 대화 처리 방법에 있어서, 정비 이력 검색을 수행하기 위한 방법을 나타낸 순서도이고, 도44는 정비 이력 검색 결과를 처리하기 위한 방법을 나타낸 순서도이다.
도 43을 참조하면, 사용자의 발화가 입력되면(500), 음성 인식기(111a)가 입력된 사용자의 발화를 인식한다(510). 일 실시예에 따라 사용자의 발화는 차량의 상태 이상을 감지한 고장의 예비 징후와 관련된 발화일 수 있다.
음성 인식기(111a)는 입력된 사용자의 발화를 인식하여 텍스트 형태의 발화문으로 출력한다.
자연어 이해기(111b)는 텍스트 형태의 발화문에 자연어 이해 기술을 적용하여(520), 그 결과를 출력한다.
구체적으로, 자연어 이해(520) 과정은 텍스트 형태의 발화문에 기초하여 형태소 분석(521)을 수행하고, 형태소 분석 결과에 기초하여 도메인을 추출(522)하고, 개체명을 인식(523)하고, 화행을 분석(524)하고, 액션을 추출(525)하는 것을 포함할 수 있다.
도메인 추출, 개체명 인식 및 액션 추출을 위해 도메인/액션 추론 규칙DB(141)을 참조할 수 있다.
자연어 이해기(111b)의 출력, 즉 자연어 이해 결과는 사용자의 발화에 대응되는 도메인, 액션, 화행, 형태소 분석 결과 등을 포함할 수 있다.
입력 처리기(110)가 처리한 자연어 이해의 결과는 대화 관리기(120)로 전달된다. 대화 관리기(120)는 차량의 상태 이상에 도메인과 관련된 액션 중 차량 상태 점검과 관련된 액션을 수행한다(530).
차량 상태 점검과 관련하여 대화 관리기(120)는 점검 대상에 마련된 센서 등으로부터 고장 여부를 판단할 수 있는 센서 검출값을 전달받는다. 구체적으로 대화 관리기(120)는 차량(200)으로부터 전달되는 상황 정보, 단기/장기 메모리에 저장된 센서 검출값 등을 기초로 차량의 자체 점검을 실행한다.
만약 점검 대상에 마련된 센서가 고장을 감지하면, 대화 관리기(120)는 전달되는 센서의 검출값, 즉 차량의 상황 정보에 대한 응답을 생성하고, 사용자에게 현재 점검 대상의 고장 여부 및 상태 이상을 전달한다(550).
일 실시예에 따라 차량의 상태 이상에 대한 사용자의 발화는 고장의 예비 징후인 경우가 대부분이다. 따라서 차량 자체 점검에 의해서 상태 이상에 대한 정보를 습득하기 어렵다. 즉, 점검 대상에 마련된 센서가 고장 여부를 검출하지 못 한 경우, 대화 시스템(100)은 도 44와 같이 외부 정보 관리기(126)를 통해 점검 대상의 해결책을 요청한다(A).
도 44를 참조하면, 대화 관리기(120)는 외부 정보 관리기(126)를 통해 차량의 상태 이상에 대한 해결책을 검색한다(600).
구체적으로 외부 정보 관리기(126)는 외부 컨텐츠 서버(300)로 현재 차량(200)과 유사한 연식 및 유사한 차종에서 검색되는 유사한 사례를 요청하고, 그 사례에서 실시된 해결책을 검색할 수 있다. 또는 외부 정보 관리기(126)는 외부 컨텐츠 서버(300)나 차량 제어기(240) 등에 저장된 개인 정비 이력을 통해 점검 대상의 정비 이력을 검색하고 해결책을 요청할 수 있다.
외부에서 검색된 해결책은 정비 진단 DB(146e)에 저장될 수 있으며, 외부 정보 관리기(126)는 정비 진단 DB(146e)로부터 해결책을 획득한다(610).
대화 관리기(120), 구체적으로 대화 흐름 관리기(121)는 획득된 해결책을 결과 처리기(130)로 전달한다.
결과 처리기(130)는 대화 응답의 생성이 필요한 경우(620), 대화 응답 생성기(132)가 응답 템플릿(149)을 검색한다(630). 응답 템플릿(149)에서 현재 대화 상태와 액션 상태에 대응되는 대화 응답 서식을 추출하고, 대화 응답 서식에 필요한 인자 값, 즉 해결책을 채워 대화 응답을 생성한다(640).
또한, 명령어 생성이 필요한 경우(680)에는, 명령어 생성기(136)가 차량 제어 또는 외부 컨텐츠 이용을 위한 명령어를 생성한다(680).
생성된 대화 응답 또는 명령어는 출력 관리기(133)로 입력되고, 출력 관리기(133)는 대화 응답과 명령어 사이의 출력 순서 또는 복수의 명령어 사이의 출력 순서를 결정할 수 있다(650).
생성된 대화 응답 또는 명령어에 기초하여 메모리를 업데이트한다(660). 메모리 관리기(135)는 생성 및 출력된 대화 응답에 기초하여 사용자와 시스템 간 대화 내용을 저장하여 단기 메모리(144)를 업데이트할 수 있고, 사용자와의 대화를 통해 획득된 차량 상태 이상에 관한 정보를 저장하여 장기 메모리(143)를 업데이트할 수 있다. 또한, 생성 및 출력된 차량 제어나 외부 컨텐츠 요청에 기초하여 장기 메모리(143)에 저장된 정보를 업데이트할 수 있다.
출력 관리기(133)는 대화 응답과 명령어를 적절한 출력 위치로 전송하여 응답을 출력한다(670). TTS 응답은 스피커(232)를 통해 출력할 수 있고, 텍스트 응답은 디스플레이(231)를 통해 출력할 수 있다. 명령어는 그 제어 대상에 따라 차량 제어기(240)로 전송될 수도 있고, 외부 컨텐츠 서버(300)로 전송될 수도 있으며, 외부 컨텐츠 서버(300)와 통신하기 위한 통신 장치(280)로 전송될 수도 있다.
도 45는 개시된 일 예에 따른 다양한 예비 징후에 대한 예시이다.
도 45를 참조하면, 사용자는 "브레이크가 뻑뻑해(예시 1).", "차에서 엔진 소리가 크게 나(예시 2).", "차량에서 점검할 사항이 있니(예시 3)?" 및 "차가 잘 안 나가(예시 4)."와 같은 차량 상태 이상에 관한 발화를 입력할 수 있다.
대화 시스템(100), 구체적으로 입력 관리기(110)는 각 발화를 분석하여, 예시 1은 브레이크 이상, 예시 2는 엔진 소리 이상, 예시 3은 점검 이력 확인 및 예시 4는 주행 문제라는 구체적인 도메인 및 액션을 업데이트할 수 있다.
이후, 대화 시스템(100), 구체적으로 외부 정보 관리기(126)는 정비 진단 DB(146e)를 통해 유사 연식/유사 차종 내 유사 사례를 검색하고, 개인 정비 이력을 확인한다.
또한, 대화 시스템(100)은 각각의 차량 상태 이상에 대한 해결책을 마련한다.
구체적으로 예시 1은 브레이크 페달의 변경이 필요하다는 해결책이 마련될 수 있으며, 예시 2는 타이밍 벨트의 교체가 필요하다는 해결책이 마련될 수 있다. 또한, 예시 3은 엔진 오일의 교체가 필요하다는 해결책이 마련될 수 있으며, 예시 4는 차량의 노후화로 인한 엔진 교체가 필요하다는 해결책이 마련될 수 있다.
마련된 해결책에 따라서 대화 시스템(100)은 각각의 해결책에 따른 응답을 생성한다. 구체적으로 결과 처리기(130)는 예시 1에서 정비소 안내 및 브레이크 페달의 변경의 필요성에 대한 응답을 생성할 수 있으며, 예시 2에서 타이밍 벨트의 교체 시기를 전달하는 응답을 생성할 수 있다. 예시 3에서 결과 처리기(130)는 엔진 오일의 교환 시기를 알릴 수 있으며, 예시 4에서 엔진 교체의 필요성을 알리는 응답과 정비소 예약 안내에 대한 서비스를 제공할 수 있다.
일 실시예에 따른 대화 처리 방법은 전술한 순서도 상의 순서에 의해 제한되지 않는다. 도 41 내지 도 43의 순서도에 따른 흐름은 대화 처리 방법에 적용될 수 있는 일 예시에 불과하며, 다양한 변형례가 있을 수 있다.
상기의 설명은 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 상기에 개시된 실시예 및 첨부된 도면들은 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 기술적 사상의 범위가 한정되는 것은 아니다. 그 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 권리범위에 포함되는 것으로 해석되어야 할 것이다.
지금까지 설명한 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법에 의하면, 사용자와의 대화를 통해 차량의 고장과 관련한 예비 징후를 파악하고, 차량의 센서로 측정되지 않는 부분을 고려하여 차량 고장에 정확한 진단이 가능하다.
또한, 차량의 정비 이력 등 다양한 상태 정보를 활용하여 차량 고장을 사전에 진단하고, 미리 사고를 예방할 수 있다.
또한, 예비 징후에 대한 진단 후, 사용자에게 피드백함으로써, 사전 진단의 학습 데이터를 늘리고, 이에 따라 정확한 사전 진단이 강화될 수 있다.
100: 대화 시스템
110: 입력 처리기
120: 대화 관리기
130: 결과 처리기
200: 차량
210: 음성 입력 장치
220: 음성 외 입력 장치
230: 대화자 출력 장치
280: 통신 장치

Claims (27)

  1. 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하는 입력 처리기;
    상기 검색 요청에 기초하여 점검 이력 검색의 액션을 결정하고, 상기 액션을 수행하기 위한 해결책의 액션 인자 값을 획득하는 대화 관리기;
    상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 결과 처리기;를 포함하는 대화 시스템.
  2. 제 1항에 있어서,
    상기 대화 관리기는,
    상기 상황 정보를 기초로 상기 점검 이력 검색의 액션 수행 가부를 판단하는 대화 시스템.
  3. 제 2항에 있어서,
    상기 대화 관리기는,
    상기 점검 이력 검색의 액션의 수행 가부를 판단하기 위해서 사용되는 조건 판단 인자의 인자 값을 상기 입력 처리기로 요청하는 대화 시스템.
  4. 제 1항에 있어서,
    상기 대화 관리기는,
    외부로부터 상기 차량의 점검 이력을 요청하는 대화 시스템.
  5. 제 4항에 있어서,
    상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 저장부;를 더 포함하는 대화 시스템.
  6. 제 5항에 있어서,
    상기 저장부는,
    상기 해결책과 관련된 대화 정책을 저장하고,
    상기 결과 처리기는,
    상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천하는 대화 시스템.
  7. 제 5항에 있어서,
    상기 대화 관리기는,
    상기 해결책에 기초하여 상기 개인 정비 이력을 업데이트하는 대화 시스템.
  8. 제 7항에 있어서,
    상기 결과 처리기는,
    상기 개인 정비 이력에 기초한 응답을 생성하는 대화 시스템.
  9. 제 1항에 있어서,
    상기 결과 처리기는,
    상기 해결책에 기초하여 상기 차량의 제어를 위한 명령어를 생성하는 대화 시스템.
  10. 제 7항에 있어서,
    상기 해결책과 관련된 데이터를 수신하고, 상기 업데이트된 개인 정비 이력을 외부로 전달하는 통신부;를 더 포함하는 대화 시스템.
  11. 제 1항에 있어서,
    상기 입력 처리기는,
    상기 결과 처리기가 생성하는 응답에 기초한 사용자의 발화에서 상기 해결책에 따른 피드백을 추출하는 대화 시스템.
  12. 제 11항에 있어서,
    상기 대화 관리기는,
    상기 피드백에 기초한 액션을 결정하고, 상기 액션을 수행하기 액션 인자 값을 획득하는 대화 시스템.
  13. 제 12항에 있어서,
    상기 결과 처리기는,
    상기 획득한 액션 인자 값을 이용하여 응답을 생성하고, 상기 피드백을 외부로 전달하는 대화 시스템.
  14. 제 1항에 있어서,
    상기 입력 처리기는,
    상기 상황 정보에 기초하여 상기 대화 시스템이 사용자보다 먼저 발화를 출력하는 선발화 상황인지 여부를 판단하고, 상기 선발화 상황인 것으로 판단되면 상기 점검 이력의 검색 요청에 대응되는 액션 및 상기 대화 시스템이 출력할 발화 내용을 포함하는 선발화 메시지 중 적어도 하나를 획득하는 대화 시스템.
  15. 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하는 입력 처리기;
    상기 검색 요청에 기초하여 점검 이력 검색의 액션을 결정하고, 상기 액션을 수행하기 위한 해결책의 액션 인자 값을 획득하는 대화 관리기;
    상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 결과 처리기;를 포함하는 대화 시스템을 포함하는 차량.
  16. 제 15항에 있어서,
    상기 대화 관리기는,
    상기 상황 정보를 기초로 상기 점검 이력 검색의 액션 수행 가부를 판단하는 차량.
  17. 제 16항에 있어서,
    상기 대화 관리기는,
    상기 점검 이력 검색의 액션의 수행 가부를 판단하기 위해서 사용되는 조건 판단 인자의 인자 값을 상기 입력 처리기로 요청하는 차량.
  18. 제 15항에 있어서,
    상기 대화 관리기는,
    외부로부터 상기 차량의 점검 이력을 요청하는 차량.
  19. 제 18항에 있어서,
    상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 저장부;를 더 포함하는 차량.
  20. 제 19항에 있어서,
    상기 저장부는,
    상기 해결책과 관련된 대화 정책을 저장하고,
    상기 결과 처리기는,
    상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천하는 차량.
  21. 사용자의 발화, 차량의 상태와 관련된 차량 상태 정보 및 상기 차량의 주행 환경과 관련된 주행 환경 정보 중 적어도 하나를 포함하는 상황 정보에서 차량의 점검 이력의 검색 요청을 추출하고;
    상기 요청에 기초하여 점검 이력 검색의 액션을 결정하고;
    상기 액션에 수행하기 위한 해결책의 액션 인자 값을 획득하고;
    상기 획득된 액션 인자 값을 이용하여 상기 요청에 따른 응답을 생성하는 것;을 포함하는 대화 처리 방법.
  22. 제 21항에 있어서,
    외부로부터 상기 차량의 점검 이력을 요청하는 것;을 더 포함하는 대화 처리 방법.
  23. 제 22항에 있어서,
    상기 점검 이력에 포함된 개인 정비 이력 및 상기 해결책을 저장하는 것;을 더 포함하는 대화 처리 방법.
  24. 제 23항에 있어서,
    상기 저장하는 것은,
    상기 해결책과 관련된 대화 정책을 저장하고,
    상기 응답을 생성하는 것은,
    상기 대화 정책에 기초하여 상기 사용자에게 서비스를 추천하는 것;을 포함하는 대화 처리 방법.
  25. 제 23항에 있어서,
    상기 응답하는 것은,
    상기 개인 정비 이력에 기초한 응답을 생성하고, 상기 해결책에 기초하여 상기 차량의 제어를 위한 명령어를 생성하는 것;을 포함하는 대화 처리 방법.
  26. 제 23항에 있어서,
    상기 해결책에 기초하여 상기 개인 정비 이력을 업데이트하고, 상기 해결책과 관련된 데이터를 수신하고, 상기 업데이트된 개인 정비 이력을 외부로 전달하는 것;을 포함하는 대화 처리 방법.
  27. 제 21항에 있어서,
    상기 상황 정보에 기초하여 사용자보다 먼저 발화를 출력하는 선발화 상황인지 여부를 판단하고, 상기 선발화 상황인 것으로 판단되면 상기 점검 이력의 검색 요청에 대응되는 액션 및 출력할 발화 내용을 포함하는 선발화 메시지 중 적어도 하나를 획득하는 것;을 더 포함하는 대화 처리 방법.
KR1020180080470A 2018-05-17 2018-07-11 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법 KR20200006739A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180080470A KR20200006739A (ko) 2018-07-11 2018-07-11 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US16/207,388 US10950233B2 (en) 2018-07-11 2018-12-03 Dialogue system, vehicle having the same and dialogue processing method
CN201811497621.XA CN110503949A (zh) 2018-05-17 2018-12-07 对话***、具有对话***的车辆和对话处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080470A KR20200006739A (ko) 2018-07-11 2018-07-11 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법

Publications (1)

Publication Number Publication Date
KR20200006739A true KR20200006739A (ko) 2020-01-21

Family

ID=69139564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080470A KR20200006739A (ko) 2018-05-17 2018-07-11 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법

Country Status (2)

Country Link
US (1) US10950233B2 (ko)
KR (1) KR20200006739A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102485253B1 (ko) * 2017-11-10 2023-01-06 현대자동차주식회사 대화 시스템 및 그 제어방법
CN108428452B (zh) * 2018-03-14 2019-12-13 百度在线网络技术(北京)有限公司 终端支架和远场语音交互***
US11842731B2 (en) * 2020-01-06 2023-12-12 Salesforce, Inc. Method and system for executing an action for a user based on audio input
JP7338493B2 (ja) * 2020-01-29 2023-09-05 トヨタ自動車株式会社 エージェント装置、エージェントシステム及びプログラム
CN111312240A (zh) * 2020-02-10 2020-06-19 北京达佳互联信息技术有限公司 数据控制方法、装置、电子设备及存储介质
US20220028187A1 (en) * 2020-07-23 2022-01-27 Denso International America, Inc. Method and system of managing a vehicle abnormality of a fleet vehicle
US11727923B2 (en) * 2020-11-24 2023-08-15 Coinbase, Inc. System and method for virtual conversations
KR20230007138A (ko) * 2021-07-05 2023-01-12 현대자동차주식회사 차량 품질 문제 관리 시스템 및 그의 데이터 처리 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079888B2 (ja) * 2002-03-28 2008-04-23 富士通株式会社 自動車の故障予防支援サービス方法及びシステム
WO2008134625A1 (en) * 2007-04-26 2008-11-06 Ford Global Technologies, Llc Emotive advisory system and method
JP2009147555A (ja) 2007-12-12 2009-07-02 Autonetworks Technologies Ltd 車載用電子制御ユニットの故障予測システム
JP5018444B2 (ja) 2007-12-13 2012-09-05 株式会社豊田中央研究所 車両故障診断予測装置
KR20100050621A (ko) 2008-10-24 2010-05-14 넷시큐어테크놀러지 주식회사 차량 전용 컴퓨터(Car PC)와 무선통신 환경하에서 운행중 차량의 상태 전이에 따른 실시간 이상 징후 판단과 차량 관제 정보 송수신 시스템과 그 방법
US20110172873A1 (en) * 2010-01-08 2011-07-14 Ford Global Technologies, Llc Emotive advisory system vehicle maintenance advisor
JP2011203116A (ja) 2010-03-25 2011-10-13 Toyota Motor Corp 車両用異常予測装置及び方法
KR101703163B1 (ko) 2011-03-22 2017-02-07 한국전자통신연구원 차량의 복합 고장을 예측하기 위한 장치 및 방법
EP3392876A1 (en) 2011-09-30 2018-10-24 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9575963B2 (en) * 2012-04-20 2017-02-21 Maluuba Inc. Conversational agent
KR20130139080A (ko) 2012-06-12 2013-12-20 현대자동차주식회사 차량의 이상 상태 음성 안내장치 및 그 방법
US9798799B2 (en) * 2012-11-15 2017-10-24 Sri International Vehicle personal assistant that interprets spoken natural language input based upon vehicle context
JP6411017B2 (ja) * 2013-09-27 2018-10-24 クラリオン株式会社 サーバ、及び、情報処理方法
EP3084714A4 (en) * 2013-12-20 2017-08-02 Robert Bosch GmbH System and method for dialog-enabled context-dependent and user-centric content presentation
JP6424427B2 (ja) 2013-12-26 2018-11-21 日産自動車株式会社 運転診断装置および運転診断方法
KR20170015719A (ko) 2015-07-30 2017-02-09 주식회사 한글과컴퓨터 무인스마트카 고장 시 자동 서비스 시스템 및 방법
US10095239B1 (en) * 2017-03-31 2018-10-09 Uber Technologies, Inc. Autonomous vehicle paletization system
US10395444B1 (en) * 2017-08-10 2019-08-27 Zoox, Inc. Vehicle self-diagnostics
JP6607301B2 (ja) * 2017-12-28 2019-11-20 トヨタ自動車株式会社 支援装置、支援方法、プログラムおよび支援システム

Also Published As

Publication number Publication date
US10950233B2 (en) 2021-03-16
US20200020331A1 (en) 2020-01-16

Similar Documents

Publication Publication Date Title
KR102414456B1 (ko) 대화 시스템, 이를 포함하는 차량 및 유고 정보 처리 방법
US10839797B2 (en) Dialogue system, vehicle having the same and dialogue processing method
KR102426171B1 (ko) 대화 시스템, 이를 포함하는 차량 및 대화 서비스 처리 방법
US10950233B2 (en) Dialogue system, vehicle having the same and dialogue processing method
KR20200001188A (ko) 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
US10997974B2 (en) Dialogue system, and dialogue processing method
KR20180075050A (ko) 대화 처리 장치, 이를 포함하는 차량 및 대화 처리 방법
KR20200000604A (ko) 대화 시스템 및 대화 처리 방법
KR20200000155A (ko) 대화 시스템 및 이를 이용한 차량
US11508367B2 (en) Dialogue system and dialogue processing method
US10861460B2 (en) Dialogue system, vehicle having the same and dialogue processing method
US11004450B2 (en) Dialogue system and dialogue processing method
CN110503947B (zh) 对话***、包括其的车辆和对话处理方法
CN110503949A (zh) 对话***、具有对话***的车辆和对话处理方法
US20220198151A1 (en) Dialogue system, a vehicle having the same, and a method of controlling a dialogue system
KR102487669B1 (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20200006738A (ko) 대화 시스템 및 대화 처리 방법
KR102448719B1 (ko) 대화 시스템과 이를 포함하는 차량 및 모바일 기기와 대화 처리 방법
CN110562260A (zh) 对话***和对话处理方法
CN111798842B (zh) 对话***和对话处理方法
KR20200095636A (ko) 대화 시스템이 구비된 차량 및 그 제어 방법
KR20190135676A (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20200000621A (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20190036018A (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20200123495A (ko) 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal