KR20160132748A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20160132748A
KR20160132748A KR1020150128511A KR20150128511A KR20160132748A KR 20160132748 A KR20160132748 A KR 20160132748A KR 1020150128511 A KR1020150128511 A KR 1020150128511A KR 20150128511 A KR20150128511 A KR 20150128511A KR 20160132748 A KR20160132748 A KR 20160132748A
Authority
KR
South Korea
Prior art keywords
domain
user
voice
context
system response
Prior art date
Application number
KR1020150128511A
Other languages
English (en)
Other versions
KR102411619B1 (ko
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 US15/130,399 priority Critical patent/US9953648B2/en
Publication of KR20160132748A publication Critical patent/KR20160132748A/ko
Application granted granted Critical
Publication of KR102411619B1 publication Critical patent/KR102411619B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • 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

Abstract

전자 장치가 개시된다. 전자 장치는 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부, 사용자 발화 음성에 대응되는 시스템 응답을 출력하는 스피커부 및 사용자 발화 음성에 대응되는 도메인을 검출하고, 사용자 발화 음성과 검출된 도메인 간의 신뢰도(confidence)에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 프로세서를 포함한다. 이에 따라, 다양한 사용자 발화 음성을 인식하고 복수의 단말 장치의 기능에 기초하여 시스템 응답을 생성할 수 있게 된다.

Description

전자 장치 및 그 제어 방법{ELECTRONIC APPARATUS AND THE CONTROLLING METHOD THEREOF}
본 발명은 전자 장치 및 그 제어 방법에 관한 것으로서, 보다 상세하게는 사용자 발화 음성에 대응되는 시스템 응답을 생성하는 전자 장치 및 그 제어 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 유형의 전자 제품들이 개발 및 보급되고 있다. 특히, TV, 휴대폰, PC, 노트북 PC, PDA 등과 같은 각종 디스플레이 장치들은 대부분의 일반 가정에서도 많이 사용되고 있다.
디스플레이 장치들의 사용이 늘면서 좀 더 다양한 기능에 대한 사용자 니즈(needs)도 증대되었다. 이에 따라, 사용자 니즈에 부합하기 위한 각 제조사들의 노력도 커져서, 종래에 없던 새로운 기능을 갖춘 제품들이 속속 등장하고 있다.
특히, 일반 가정에서는 이러한 디스플레이 장치뿐만 아니라 냉장고, 에어컨, 전등 등과 같은 다양한 가전 제품을 사용하고 있으며, 현재 이러한 다양한 가전 제품을 네트워크로 연결하여 제어하고자 하는 홈 네트워크 시스템이 상용화되어 있다.
한편, 이러한 홈 네트워크 시스템에 대해 사용자는 직접 조작을 수행하여 원하는 목적을 달성할 수 있으나, 홈 네트워크 시스템이 음성 인식 기능을 지원하는 경우 사용자는 음성 명령을 발화하여 원하는 목적을 달성할 수 있게 된다.
다만, 현재 사용자 발화 음성을 인식하고 이에 대응되는 응답을 생성하는 시스템은 단순히 하나의 단말 장치가 제공하는 기능만을 제어하는데 사용될 뿐, 여러 개의 단말 장치들의 기능을 조합 및 비교하여 응답을 생성할 수 없고 또는 시스템에 프로그래밍된 다이얼로그를 벗어나는 사용자 발화 음성이 인식되면 이를 처리하지 못하는 문제가 있다.
또한, 하나의 특정 도메인에 대해 사용자와 시스템이 대화를 주고 받는 상황에서 사용자가 다른 도메인에 대한 대화를 진행하면 시스템은 정상적으로 처리하지 못하는 문제가 있다.
이에 따라, 다양한 사용자 발화 음성을 인식하고 이에 대응되는 응답을 생성하며 여러 개의 단말 장치의 기능에 기초하여 응답을 생성하고자 하는 요구가 증대되었다.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 전자 장치 및 그 제어 방법을 제공함에 있다.
이러한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 전자 장치는 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부, 사용자 발화 음성에 대응되는 시스템 응답을 출력하는 스피커부 및 상기 사용자 발화 음성에 대응되는 도메인을 검출하고, 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 프로세서를 포함한다.
여기서, 상기 저장부는, 상기 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며, 상기 프로세서는, 상기 이전 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 상기 사용자 발화 음성과 상기 판단된 컨텍스트 간의 신뢰도에 기초하여 상기 판단된 컨텍스트 및 이전 컨텍스트 중 상기 사용자 발화 음성을 처리할 컨텍스트를 결정하여 상기 시스템 응답을 생성할 수 있다.
또한, 상기 프로세서는, 상기 판단된 컨텍스트가 상기 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 상기 이전 컨텍스트와 관련된 정보를 상기 저장부에 저장하고, 상기 판단된 컨텍스트에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 상기 프로세서는, 상기 검출된 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 이전 도메인과 관련된 정보를 상기 저장부에 저장하고, 상기 검출된 도메인에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 상기 프로세서는, 상기 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 상기 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어 에 기초하여 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도를 판단할 수 있다.
한편, 본 발명의 일 실시 예에 따른 전자 장치는 적어도 하나의 외부 장치와 통신을 수행하는 통신부를 더 포함하며, 상기 프로세서는, 상기 발화 음성에 대응되는 시스템 응답이 상기 결정된 도메인 내에서 상기 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 상기 외부 장치의 기능에 관한 정보에 기초하여 적어도 하나의 외부 장치의 기능을 제어하기 위한 상기 시스템 응답을 생성할 수 있다.
또한, 상기 저장부는, 상기 외부 장치의 기능에 대한 정보를 더 저장하고, 상기 통신부는, 기설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신하며, 상기 프로세서는, 상기 수신된 적어도 하나의 외부 장치에 대한 기능 정보에 기초하여 상기 저장부에 저장된 정보를 업데이트할 수 있다.
또한, 상기 프로세서는, 발화 이력 정보에 기초하여 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하며, 상기 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 상기 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 상기 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함할 수 있다.
또한, 상기 도메인 정보는, 상기 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 상기 대화 주제 별 대화 패턴 중 적어도 하나를 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 전자 장치는 상기 사용자 발화 음성을 입력받는 마이크부를 더 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부를 포함하는 전자 장치의 제어 방법에 있어서, 사용자 발화 음성에 대응되는 도메인을 검출하는 단계 및 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 단계를 포함한다.
여기서, 상기 저장부는, 상기 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며, 상기 시스템 응답을 생성하는 단계는, 상기 이전 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 상기 사용자 발화 음성과 상기 판단된 컨텍스트 간의 신뢰도에 기초하여 상기 판단된 컨텍스트 및 이전 컨텍스트 중 상기 사용자 발화 음성을 처리할 컨텍스트를 결정하여 상기 시스템 응답을 생성할 수 있다.
또한, 상기 시스템 응답을 생성하는 단계는, 상기 판단된 컨텍스트가 상기 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 상기 이전 컨텍스트와 관련된 정보를 상기 저장부에 저장하고, 상기 판단된 컨텍스에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 상기 시스템 응답을 생성하는 단계는, 상기 검출된 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 이전 도메인과 관련된 정보를 상기 저장부에 저장하고, 상기 검출된 도메인에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 상기 시스템 응답을 생성하는 단계는, 상기 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 상기 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어에 기초하여 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도를 판단할 수 있다.
또한, 상기 시스템 응답을 생성하는 단계는, 상기 발화 음성에 대응되는 시스템 응답이 상기 결정된 도메인 내에서 상기 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 상기 외부 장치의 기능에 관한 정보에 기초하여 적어도 하나의 외부 장치의 기능을 제어하기 위한 상기 시스템 응답을 생성할 수 있다.
한편, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 기 설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신하여 기 저장된 상기 외부 장치의 기능에 대한 정보를 업데이트하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 발화 이력 정보에 기초하여 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 단계를 더 포함하며, 상기 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 상기 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 상기 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함할 수 있다.
또한, 상기 도메인 정보는, 상기 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 상기 대화 주제 별 대화 패턴 중 적어도 하나를 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 전자 장치는 상기 사용자 발화 음성을 입력받는 단계를 더 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 시스템 응답을 생성하는 프로그램이 저장된 저장 매체에 있어서, 상기 프로그램은, 사용자 발화 음성에 대응되는 도메인을 검출하는 단계 및 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 단계를 포함할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 다양한 사용자 발화 음성을 인식하고 복수의 단말 장치의 기능에 기초하여 시스템 응답을 생성할 수 있게 된다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 2는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리하는 과정을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리하는 과정을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리할 도메인이 변경되는 경우 처리 과정에 관한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리할 도메인이 변경되지 않는 경우 처리 과정에 관한 도메인이다.
도 6은 본 발명의 DM 모듈에서의 처리 과정을 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 전자 장치(100)와 외부 장치에 관한 정보를 포함하는 데이터 베이스를 포함하는 시스템에서 수행되는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 9는 본 발명의 또 다른 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 10은 도 1에 도시된 전자 장치의 구체적 구성을 나타내는 블럭도이다.
도 11은 본 발명의 일 실시 예에 따른 저장부에 저장된 소프트웨어 모듈에 관한 도면이다.
도 12는 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관계 등에 따라 달라질 수 있다. 그러므로, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 1을 참조하면, 전자 장치(100)는 통신부(110) 및 프로세서(120)를 포함한다. 여기서, 전자 장치(100)는 사용자 발화 음성을 인식하여 사용자 발화 음성에 대응되는 시스템 응답을 처리하는 기능을 수행할 수 있는 장치를 포함하며, 예를 들어, TV, 전자 칠판, 전자 테이블, LFD(Large Format Display), 스마트 폰, 태블릿, 데스크탑 PC, 노트북, 홈 네트워크 시스템 서버 등과 같은 다양한 형태의 전자 장치로 구현될 수 있다. 물론, 전자 장치(100)는 사용자 발화 음성을 인식하여 사용자 발화 음성에 대응되는 시스템 응답을 처리하는 기능을 수행하기 위한 SOC(System On Chip) 형태로 구현될 수도 있다.
저장부(110)는 대화 주제 별로 카테고리화된 도메인 정보를 저장할 수 있다. 여기서, 저장부(110)는 전자 장치(100)를 동작시키기 위해 필요한 각종 프로그램 등이 저장되는 저장매체로서, 메모리, HDD(Hard Disk Drive) 등으로 구현가능하다. 예를 들어, 저장부(110)는 프로세서(130)의 동작 수행을 위한 프로그램을 저장하기 위한 ROM, 제어부(150)의 동작 수행에 따른 데이터를 일시적으로 저장하기 위한 RAM 등을 구비할 수 있다. 또한 각종 참조 데이터를 저장하기 위한 EEROM(Electrically Erasable and Programmable ROM) 등을 더 구비할 수 있다.
특히, 저장부(110)는 대화 주제 별로 카테고리화된 도메인 정보를 저장할 수 있는데, 대화 주제 별로 카테고리화된 도메인 정보는 사용자 발화 음성이 속하는 주제에 따라 구분되는 그룹에 관한 정보를 의미한다. 여기서, 도메인 정보는 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 대화 주제 별 대화 패턴 중 적어도 하나를 포함할 수 있다.
구체적으로, 저장부(110)는 서비스 도메인별 대화 패턴을 저장할 수 있으며, 이를 위해 저장부(110)는 각 서비스 도메인별 말뭉치(corpus) 데이터베이스를 구비할 수 있다. 여기서, 서비스 도메인은 상술한 바와 같이 사용자 발화 음성이 속하는 주제에 따라 구분될 수 있다.
예를 들어, 저장부(110)는 방송 서비스 도메인에 대한 제1 말뭉치 데이터베이스 및 날씨 서비스 도메인에 대한 제2 말뭉치 데이터베이스를 구비할 수 있다.
이 경우, 제1 말뭉치 데이터베이스는 방송 서비스 도메인 내에서 발생할 수 있는 다양한 대화 패턴을 저장할 수 있다. 예를 들어, "프로그램 언제 시작해?"에 대한 답변으로 "어느 프로그램의 시작시간을 알고 싶습니까?"를 저장하고, "○○○(방송 프로그램명) 언제 시작해?"에 대한 답변으로 "문의하신 ○○○의 시작시간은 ... 입니다"를 저장할 수 있다.
또한, 제2 말뭉치 데이터베이스는 날씨 서비스 도메인 내에서 발생할 수 있는 대화 패턴을 저장할 수 있다. 예를 들어, "○○(지역명)의 날씨 어때?"에 대한 답변으로 "온도를 말씀드릴까요?"를 저장하고, "서울의 온도는 어때?"에 대한 답변으로 "문의하신 ○○의 온도는 ... 입니다"를 답변으로 저장할 수 있다.
또한, 저장부(110)는 사용자의 발화 의도 별로 제어 명령을 매칭시켜 저장하고 있을 수 있다. 예를 들어, 사용자의 발화 의도가 채널 변경인 경우 디스플레이 장치(미도시)의 채널을 변경하기 위한 제어 명령을 매칭시켜 저장하고, 사용자의 발화 의도가 예약 녹화인 경우 디스플레이 장치(미도시)에서 특정 프로그램에 대한 예약 녹화 기능을 실행시키기 위한 제어 명령을 매칭시켜 저장하고 있을 수 있다.
또한, 사용자의 발화 의도가 온도 조절인 경우 에어컨 장치(미도시)의 온도를 조절하기 위한 제어 명령을 매칭시켜 저장하고, 사용자의 발화 의도가 음악 재생인 경우 음향 출력 장치(미도시)를 재생하기 위한 제어 명령을 매칭시켜 저장할 수 있다. 이와 같이, 저장부(110)는 다양한 외부 장치를 제어하기 위한 제어 명령을 사용자의 발화 의도 별로 매칭시켜 저장하고 있을 수 있다.
스피커부(120)는 사용자 발화 음성에 대응되는 시스템 응답을 출력할 수 있다. 여기서, 스피커부(120)는 시스템 응답을 음성 형태로 출력하는 스피커 형태로 구현될 수도 있으나, 외부 스피커를 통해 시스템 응답을 음성 형태로 출력하기 위해 외부 스피커를 연결하기 위한 잭 등과 같은 출력 포트로 구현될 수도 있다.
프로세서(130)는 사용자 발화 음성에 대응되는 도메인을 검출하고, 사용자 발화 음성과 검출된 도메인 간의 신뢰도(confidence)에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성할 수 있다.
구체적으로, 프로세서(130)는 사용자 발화 음성이 입력되면 사용자 발화 음성을 분석하여 사용자 발화 음성이 어느 대화 주제에 대응되는지 여부를 판단하여 사용자 발화 음성에 대응되는 도메인을 검출할 수 있다.
여기서, 프로세서(130)는 ASR(Automatic Speech Recognition) 모듈을 이용하여 사용자 발화 음성을 텍스트로 변환하여 사용자 발화 음성에 대응되는 텍스트를 생성할 수 있다. ASR 모듈은 음성 신호를 텍스트로 변환하기 위한 모듈로서, 종래 개시되어 있는 다양한 ASR 알고리즘을 이용하여 음성 신호를 텍스트로 변환할 수 있다.
예를 들어, 프로세서(130)는 수신된 음성 신호 내에서 사용자가 발화한 음성의 시작과 끝을 검출하여 음성 구간을 판단한다. 구체적으로, 프로세서(130)는 수신된 음성 신호의 에너지를 계산하고, 계산된 에너지에 따라 음성 신호의 에너지 레벨을 분류하여, 동적 프로그래밍을 통해 음성 구간을 검출할 수 있다. 그리고, 프로세서(130)는 검출된 음성 구간 내에서 음향 모델(Acoustic Model)을 기초로 음성의 최소 단위인 음소를 검출하여 음소 데이터를 생성하고, 생성된 음소 데이터에 HMM(Hidden Markov Model) 확률 모델을 적용하여 사용자의 발화 음성을 텍스트로 변환할 수 있다.
그리고, 프로세서(130)는 SLU(Spoken Language Understanding) 모듈을 이용하여 사용자 발화 음성에 대응되는 텍스트를 프로세서(130)가 이해할 수 있도록 Part of speech, Named entity extraction, information extraction, semantic analytic 등과 같은 여러가지 분석을 수행할 수 있다.
이후, 프로세서(130)는 사용자의 발화 음성이 변환된 텍스트에 매칭되는 대화 패턴이 존재하는 말뭉치 데이터베이스를 검출하여, 사용자의 발화 음성에 대응되는 도메인을 검출할 수 있다.
예를 들어, 프로세서(130)는 "프로그램 언제 시작해?"라는 텍스트가 수신되면 사용자의 발화 음성이 방송 서비스 도메인에 대응되는 것으로 판단하고, "○○(지역명)의 날씨 어때?"라는 텍스트가 수신되면 사용자 발화 음성이 날씨 서비스 도메인에 대응되는 것으로 판단할 수 있다.
그리고, 프로세서(130)는 사용자 발화 음성과 검출된 도메인 간의 신뢰도를 분석할 수 있다.
구체적으로, 프로세서(130)는 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어에 기초하여 사용자 발화 음성과 검출된 도메인 간의 신뢰도를 판단할 수 있다.
예를 들어, 프로세서(130)는 사용자 발화 음성으로부터 화행(dialogue act), 주행(main action) 및 구성요소(component slot)를 추출할 수 있다. 여기서, 화행, 주행 및 구성요소는 발화 요소에 포함된다.
그리고, 프로세서(130)는 사용자 발화 음성에서 MaxEnt(Maximum Entropy Classifier)를 이용하여 화행, 주행을 추출하고, CRF(Conditional Random Field)를 이용하여 구성요소를 추출할 수 있다. 하지만, 이에 한정되는 것은 아니며 이미 공지된 다양한 방식을 통해 화행, 주행 및 구성요소를 추출할 수 있다.
여기서, 화행은 문장의 형태와 관련된 분류 기준으로, 해당 문장이 서술문(Statement), 요청문(Request), Why 의문문(WH-Question) 또는 Yes-No 의문문(YN-Question)인지를 나타내는 것이다. 주행은 해당 발화가 특정 도메인에서 대화를 통해 원하는 행위를 나타내는 의미적 정보이다. 예를 들어, 방송 서비스 도메인에서, 주행은 TV 온/오프, 프로그램 찾기, 프로그램 시간 찾기, 프로그램 예약 등을 포함할 수 있다. 구성요소는 발화에 나타나는 특정 도메인에 대한 개체 정보즉, 특정 도메인에서 의도하는 행동의 의미를 구체화하기 위해서 부가되는 정보이다. 예를 들어, 방송 서비스 도메인에서 구성요소는 장르, 프로그램명, 시작시간, 채널명, 배우 이름 등을 포함할 수 있다.
그리고, 프로세서(130)는 사용자 발화 음성으로부터 추출된 화행, 주행 및 구성요소 중 적어도 하나와 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따라 신뢰도 스코어를 산출할 수 있고, 프로세서(130)는 산출된 신뢰도 스코어에 기초하여 사용자 발화 음성과 검출된 도메인 간의 신뢰도를 판단할 수 있다.
또한, 프로세서(130)는 판단된 사용자 발화 음성과 검출된 도메인 간의 신뢰도에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정할 수 있다.
예를 들어, 이전에 수신된 사용자 발화 음성이 날씨에 관한 것이어서 이전 도메인이 날씨에 관한 것이라고 상정하면, 프로세서(130)는 현재 수신된 사용자 발화 음성이 "프로그램 언제 시작해?"인 경우 방송에 관한 도메인을 검출할 수 있고, 현재 수신된 "프로그램 언제 시작해?"라는 사용자 발화 음성과 날씨에 관한 도메인 간의 신뢰도 스코어가 10이고 "프로그램 언제 시작해?"라는 사용자 발화 음성과 방송에 관한 도메인 간의 신뢰도 스코어가 80인 경우, 프로세서(130)는 "프로그램 언제 시작해?"라는 사용자 발화 음성을 처리할 도메인은 이전 도메인(날씨에 관한 도메인)이 아닌 방송에 관한 도메인이라고 결정할 수 있다.
또한, 예를 들어, 이전에 수신된 사용자 발화 음성이 "비가 오면 창문을 닫아줘"이고 이를 처리한 도메인이 날씨에 관한 도메인으로 결정되었다고 상정하면, 프로세서(130)는 현재 수신된 사용자 발화 음성이 "비가 오면 TV를 켜줘"인 경우 날씨에 관한 도메인과 방송에 관한 도메인을 검출할 수 있고, "비가 오면 TV를 켜줘"라는 사용자 발화 음성과 날씨에 관한 도메인 간의 신뢰도 스코어가 70이고, "비가 오면 TV를 켜줘"라는 사용자 발화 음성과 방송에 관한 도메인 간의 신뢰도 스코어가 50인 경우 프로세서(130)는 "비가 오면 TV를 켜줘"라는 사용자 발화 음성을 처리할 도메인은 이전 도메인인 날씨에 관한 도메인과 동일한 것으로 결정할 수 있다.
즉, 프로세서(130)는 이전 사용자 발화 음성을 처리하는 도메인이 이미 결정되어 있다고 하더라도, 새롭게 사용자 발화 음성이 수신될 때마다 새롭게 수신된 사용자 발화 음성을 처리할 도메인을 각각 결정할 수 있다.
또한, 프로세서(130)는 현재 수신된 사용자 발화 음성과 이전 도메인 간의 신뢰도 스코어와 현재 수신된 사용자 발화 음성에 대응되는 도메인 간의 신뢰도 스코어가 서로 비슷하여 현재 수신된 사용자 발화 음성을 처리할 도메인을 판단하는 것이 불가능한 경우, 사용자에게 현재 수신된 사용자 발화 음성이 어떤 도메인에 대한 것인지 물어보는 메시지를 생성하여 스피커부(120)를 통해 출력할 수도 있다.
한편, 프로세서(130)는 추출된 화행, 주행 및 구성요소를 이용하여 사용자 발화 음성에 포함된 발화 의도를 판단할 수 있다.
예를 들어, "○○○(방송프로그램명)를 언제 해?"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 사용자 발화 음성과 매칭되는 대화 패턴이 존재하는 말뭉치 데이터베이스를 검색하여, "○○○를 언제 해?"라는 사용자 발화 음성이 방송 서비스 도메인에 포함되는 것으로 검출할 수 있다.
이후, 프로세서(130)는 화행을 통해 해당 음성의 문장 형태가 "의문형"인 것으로 판단하고, 주행 및 핵심 요소를 통해 "○○○"에 대한 "프로그램 시작시간"을 알기 원하는 것으로 판단한다. 결과적으로, 프로세서(130)는 사용자 음성에 포함된 발화 의도는 "○○○"에 대해 "프로그램 시작시간"을 "문의"하는 것으로 판단할 수 있다.
그리고, 프로세서(130)는 사용자 발화 음성이 방송 서비스 도메인에 대응되고 발화 의도는 "○○○"에 대해 "프로그램 시작시간"을 "문의"하는 것임을 고려하여 최종적으로 사용자 발화 음성은 방송 서비스 도메인에서 "○○○"에 대해 "프로그램 시작시간"을 "문의"하는 것으로 판단할 수 있다.
특히, 프로세서(130)는 사용자 발화 음성이 수신될 때마다 사용자 발화 음성을 처리할 도메인을 각각 결정할 수 있고, 또한 결정된 도메인 각각에 포함된 컨텍스트에 기초하여 각 도메인 내에서의 사용자의 발화 의도를 판단할 수 있다.
기존의 음성 인식 기반의 처리 시스템은 사용자 발화 음성이 수신되어 사용자 발화 음성을 처리할 도메인이 결정되면, 결정된 도메인 내의 컨텍스트에만 기초하여 사용자의 발화 의도를 판단할 수 있었으나, 본 발명의 일 실시 예에 따른 프로세서(130)는 사용자 발화 음성이 수신될 때마다 사용자 발화 음성을 처리할 도메인을 각각 결정할 수 있고, 결정된 도메인 각각에 속한 컨텍스트에 기초하여 각 도메인 내에서의 사용자 발화 의도를 판단할 수 있게 되어 다양한 사용자 발화 음성을 처리할 수 있다.
한편, 프로세서(130)는 사용자 발화 음성을 처리할 도메인이 결정되면 사용자 발화 음성에 대응되는 시스템 응답을 생성할 수 있다.
예를 들어, 프로세서(130)는 사용자 발화 음성은 방송 서비스 도메인에서 "○○○"에 대해 "프로그램 시작시간"을 "문의"하는 것으로 판단되면, "문의하신 ○○○의 시작시간은 ... 입니다"라는 답변을 방송 서비스 도메인의 말뭉치 데이터베이스에서 추출한다. 이 경우, 프로세서(130)는 저장부(110)에 기저장된 EPG(Electronic Program Guide) 정보를 이용하여 "○○○"에 대한 방송 시작시간을 검색하고, "문의하신 ○○○의 시작시간은 토요일 7시입니다"라는 시스템 응답을 생성할 수 있다.
또한, 프로세서(130)는 사용자의 발화 의도에 대응되는 기능을 수행하기 위한 제어 명령을 시스템 응답으로 생성할 수도 있다.
예를 들면, "○○○(방송 프로그램명)를 예약해줘"라는 사용자 발화 음성이 수신된 경우를 가정할 수 있다. 이 경우, 제어부(330)는 사용자의 음성과 매칭되는 대화 패턴이 존재하는 말뭉치 데이터베이스를 검색하여, "○○○를 예약해줘"라는 사용자의 음성이 방송 서비스 도메인에 포함되는 것으로 판단할 수 있다.
그리고, 프로세서(130)는 화행을 통해 해당 음성이 "요청"과 관련된 문장 형태인 것으로 판단하고, 주행 및 핵심 요소를 통해 "○○○"에 대한 "프로그램 예약"을 원하는 것으로 판단할 수 있다. 결과적으로, 프로세서(130)는 사용자 음성에 포함된 발화 의도는 "○○○"에 대해 "프로그램 예약"을 "요청"하는 것으로 판단할 수 있다.
이후, 프로세서(130)는 "○○○"에 대해 "프로그램 예약"을 "요청"하는 발화 의도에 대응되는 제어 명령을 저장부(110)로부터 검출하여, 디스플레이 장치(미도시)에서 "○○○"의 예약 녹화 기능을 수행하기 위한 제어 명령을 생성할 수 있다. 이 경우, 프로세서(130)는 "○○○"에 대해 "프로그램 예약"을 "요청"하는 발화 의도에 대해 "요청하신 프로그램의 녹화가 예약되었습니다"라는 응답 메시지를 방송 서비스 도메인의 말뭉치 데이터베이스에서 추출하여, 스피커부(120)를 통해 함께 출력할 수 있다.
한편, 저장부(110)는 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며, 프로세서(130)는 이전 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되면, 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 사용자 발화 음성과 판단된 컨텍스트 간의 신뢰도에 기초하여 판단된 컨텍스트 및 이전 컨텍스트 중 사용자 발화 음성을 처리할 컨텍스트를 결정하여 시스템 응답을 생성할 수 있다.
여기서, 저장부(110)에 저장된 도메인 각각에 대응되는 대화 주제를 컨텍스트 별 카테고리는 상술한 도메인에 대한 말뭉치 데이터베이스에 대응될 수 있다. 즉, 도메인 각각에 대응되는 대화 주제와 관련된 컨텍스트는 각 도메인 내에서 발생할 수 있는 다양한 대화 패턴을 포함하고, 이러한 대화 패턴뿐만 아니라, 특정 대화 주제에서 사용되는 특정 용어, 고유 명사, 지명 등의 단어도 대화 주제에 따라 카테고리화하여 포함할 수 있다.
그리고, 프로세서(130)는 이전 도메인이 현재 수신된 사용자 발화 음성을 처리할 도메인으로 결정되면 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 현재 수신된 사용자 발화 음성과 사용자 발화 음성에 대응되는 컨텍스트 간의 신뢰도 및 현재 수신된 사용자 발화 음성과 이전 컨텍스트 간의 신뢰도를 비교하여 현재 수신된 사용자 발화 음성을 처리할 컨텍스트를 결정하여 시스템 응답을 생성할 수 있다.
예를 들어, 이전에 수신된 사용자 발화 음성이 "큰방에 있는 TV 시청할 때면 다른 방 불 꺼주고 큰 방은 시원하고 어둡게 해줘"인 경우, 프로세서(130)는 이전에 수신된 사용자 발화 음성을 처리할 도메인으로 디스플레이 장치에 관한 도메인으로 결정하고 컨텍스트는 큰방에 있는 TV 시청 시 전등과 온도에 관한 것으로 판단하게 된다. 이후, 수신된 사용자 발화 음성이 "영화 나오는 채널이 몇 번이지?"인 경우, 프로세서(130)는 사용자 발화 음성을 처리할 도메인은 이전 도메인과 마찬가지로 디스플레이 장치에 관한 도메인으로 결정할 수 있으며, "영화 나오는 채널이 몇 번이지?"에 대응되는 컨텍스트는 채널 정보에 관한 것으로 판단할 수 있다. 그리고, 프로세서(130)는 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성과 채널 정보에 관한 컨텍스트 간의 신뢰도 스코어가 80이고, "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성과 TV 시청 시 전등과 온도에 관한 컨텍스트 간의 신뢰도 스코어가 40인 경우, "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성을 처리할 컨텍스트는 채널 정보에 관한 컨텍스트로 결정할 수 있다.
즉, 프로세서(130)는 이전 사용자 발화 음성을 처리하는 도메인이 이미 결정되어 있다고 하더라도, 새롭게 사용자 발화 음성이 수신될 때마다 새롭게 수신된 사용자 발화 음성을 처리할 도메인을 각각 결정할 수 있고, 또한, 새롭게 수신된 사용자 발화 음성을 처리할 도메인이 이전 도메인과 동일하다고 하더라도 도메인 내에 포함된 복수의 컨텍스트들 중 새롭게 수신된 사용자 발화 음성을 처리할 컨텍스트를 결정할 수 있다.
그리고, 프로세서(130)는 결정된 컨텍스트가 이전 컨텍스트와 동일하다면 이전 컨텍스트 내에서 새롭게 수신된 사용자 발화 음성을 처리하고, 결정된 컨텍스트가 이전 컨텍스트와 다르다면 결정된 컨텍스트 내에서 새롭게 수신된 사용자 발화 음성을 처리하게 된다.
한편, 프로세서(130)는 판단된 컨텍스트가 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 이전 컨텍스트와 관련된 정보를 저장부(110)에 저장하고, 판단된 컨텍스트에서의 발화 음성 처리가 종료되면, 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
예를 들어, "큰 방에 있는 TV 시청할 때 다른 방은 꺼주고 큰 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 수신된 사용자 발화 음성을 처리할 도메인으로 디스플레이 장치에 관한 도메인으로 결정하고 컨텍스트는 큰방에 있는 TV 시청 시 전등과 온도에 관한 것으로 판단하며, 이러한 사용자 발화 음성에 대응하여 "거실과 복도 불도 함께 끌까요?"와 같은 시스템 응답을 생성할 수 있다.
이후, "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 사용자 발화 음성을 처리할 도메인은 이전 도메인과 마찬가지로 디스플레이 장치에 관한 도메인으로 결정하되 "영화 나오는 채널이 몇 번이지?"에 대응되는 컨텍스트는 채널 정보에 관한 것으로 판단하게 된다. 이에 따라, 프로세서(130)는 TV 시청 시 전등과 온도에 관한 컨텍스트와 관련된 정보를 저장부(110)에 저장하고, 채널 정보에 관한 컨텍스트에서 수신되는 사용자 발화 음성을 처리하게 된다. 여기서, TV 시청 시 전등과 온도에 관한 컨텍스트와 관련된 정보는 TV 시청 시 전등과 온도에 관한 컨텍스트 내에서 수신된 사용자 발화 음성, 수신된 사용자 발화 음성을 처리하는데 사용된 데이터 및 수신된 사용자 발화 음성에 대응하여 생성된 시스템 응답에 관한 정보를 포함할 수 있다.
한편, 프로세서(130)는 채널 정보에 관한 컨텍스트에서 수신된 사용자 발화 음성에 대한 처리가 종료되면, 다시 저장부(110)에 저장된 TV 시청 시 전등과 온도에 관한 컨텍스트와 관련된 정보를 독출하고 이에 기초하여 새롭게 수신되는 사용자 발화 음성을 처리할 수 있다.
예를 들면, 프로세서(130)는 채널 정보에 관한 컨텍스트에서 수신된 사용자 발화 음성에 대한 처리가 종료되면, 다시 저장부(110)에 저장된 TV 시청 시 전등과 온도에 관한 컨텍스트와 관련된 정보를 독출하면서, "이전에 진행중이던 대화를 이어서 진행하겠습니다."와 같은 음성 메시지를 생성하여 스피커부(120)를 통해 출력할 수 있다.
그리고, 프로세서(130)는 TV 시청 시 전등과 온도에 관한 컨텍스트에 기초하여 이전에 진행하던 "거실과 복도 불도 함께 끌까요?"의 음성 메시지를 다시 스피커부(120)를 통해 출력하면 사용자로부터 "거실은 끄고 복도는 켜줘"라는 신규 발화 음성을 수신하게 되고, 이에 따라, 프로세서(130)는 TV 시청 시 전등과 온도에 관한 컨텍스트에 기초하여 "거실은 끄고 복도는 켜줘"라는 사용자 발화 음성을 처리할 수 있다.
상술한 예는, 이전 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되는 경우에 대해 설명한 것이고, 이전 도메인이 아닌 사용자 발화 음성에 대응하여 검출된 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되는 경우에 대해서도 설명하기로 한다.
프로세서(130)는 사용자 발화 음성에 대응하여 검출된 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되면, 이전 도메인과 관련된 정보를 저장부(110)에 저장하고, 검출된 도메인에서의 발화 음성 처리가 종료되면, 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
예를 들어, 프로세서(130)는 "큰 방에 있는 TV 시청할 때 다른 방 불 꺼주고 큰 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성이 수신되면 디스플레이 장치에 관한 도메인으로 판단하고, 디스플레이 장치에 관한 도메인에서 사용자 발화 음성을 처리하게 된다. 이때, 프로세서(130)는 "거실과 복도 불도 함께 끌까요?"와 같은 시스템 응답을 생성할 수 있다.
이후, 사용자로부터 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성에 대응되는 도메인을 일정에 관한 도메인으로 검출할 수 있고, 사용자 발화 음성과 일정에 관한 도메인 및 디스플레이 장치에 관한 도메인 각각에 관한 신뢰도에 기초하여 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성을 처리할 도메인을 일정에 관한 도메인으로 결정할 수 있다.
이때, 프로세서(130)는 이전 도메인과 관련된 정보 즉, 디스플레이 장치에 관한 도메인과 관련된 정보를 저장부(110)에 저장하고, 일정에 관한 도메인에서 사용자로부터 수신되는 "토요일 12시"와 같은 사용자 발화 음성을 처리하여 "일정 등록 완료되었습니다"와 같은 시스템 응답을 생성하여 스피커부(120)를 통해 출력함으로써 일정에 관한 도메인에서의 발화 음성 처리가 종료되면, 다시 저장부(110)에 저장된 디스플레이 장치에 관한 도메인에 관련된 정보를 독출하면서, "이전에 진행중이던 대화를 이어서 진행하겠습니다."와 같은 음성 메시지를 생성하여 스피커부(120)를 통해 출력할 수 있다.
그리고, 프로세서(130)는 디스플레이 장치에 관한 도메인에 기초하여 이전에 진행하던 "거실과 복도 불도 함께 끌까요?"의 음성 메시지를 다시 스피커부(120)를 통해 출력하면 사용자로부터 "거실은 끄고 복도는 켜줘"라는 신규 발화 음성을 수신하게 되고, 이에 따라, 프로세서(130)는 디스플레이 장치에 관한 도메인에 기초하여 "거실은 끄고 복도는 켜줘"라는 사용자 발화 음성을 처리할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리하는 과정을 나타낸 도면이다.
도 2를 참조하면, 사용자 발화 음성이 입력되면, 프로세서(130)는 ASR(Automatic Speech(210) 모듈을 사용하여 Language Model(211)을 참조하여 음성 신호를 텍스트로 변환하고, SLU(Spoken Language Understanding)(220) 모듈을 사용하여 SLU Model(221)을 참조하여 텍스트 입력을 프로세서(130)가 이해할 수 있도록 여러가지 분석을 수행할 수 있다.
또한, 프로세서(130)는 DM(Dialogue Manager)(230) 모듈을 사용하여 사용자의 사용자의 발화 음성을 분석하고 사용자의 발화 의도를 분석하면서 다양한 자연어 대화를 생성할 수 있다. 구체적으로, 프로세서(130)는 DM(230) 모듈을 사용하여 사용자 발화 음성에 대응되는 도메인을 검출하고,사용자 발화 음성과 검출된 도메인 간이 신뢰도에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정할 수 있다.
또한, 프로세서(130)는 DM(230) 모듈을 사용하여 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 사용자 발화 음성과 판단된 컨텍스트 간의 신뢰도에 기초하여 판단된 컨텍스트 및 이전 컨텍스트 중 사용자 발화 음성을 처리할 컨텍스트를 결정할 수 있다. 특히, 프로세서(130)는 이전 도메인과 관련된 정보 또는 이전 컨텍스트와 관련된 정보를 Context Stack(231)에 저장할 수 있고, 사용자와 전자 장치(100) 간의 대화 내용에 관련된 데이터를 Context History(232)에 저장할 수 있다. 여기서, Context Stack(231)은 사용자와의 대화 중 다른 대화 주제로 전환될 경우 이전의 컨텍스트에 관련된 정보를 저장하기 위한 저장 공간을 의미하고, Context History(232)는 사용자와 전자 장치 간의 대화에 관련된 데이터를 저장하기 위한 저장 공간을 의미한다.
또한, 프로세서(130)는 Context Manager & Task Delegating(240) 모듈을 사용하여 전자 장치(100)와 사용자 간의 대화를 모니터링하고 사용자와의 대화에서 활용 가능한 정보를 지원할 수 있다.
또한, 프로세서(130)는 Context Manager & Task Delegating(240) 모듈을 사용하여 Action Plannig Agent(250), Family member Agent(260) 및 Health Agent(270) 등 중 적어도 하나를 제어하여 사용자 발화 음성을 처리하도록 할 수 있다.
한편, 프로세서(130)는 Action Plannig Agent(250)를 사용하여 DM(230) 모듈에서 분석된 사용자 발화 음성, 사용자 발화 의도, 사용자 발화 음성을 처리할 도메인 및 컨텍스트 등에 기초하여 적어도 하나의 외부 장치의 기능을 제어할 수 있다.
또한, 프로세서(130)는 Action Plannig Agent(250)를 사용하여 외부 장치의 기능 및 상태 등에 기초하여 어떤 외부 장치를 사용하여 사용자 발화 음성에 대응되는 기능을 수행하도록 할지 결정할 수 있다. 여기서, 프로세서(130)는 Action Plannig Agent(250)를 사용하여 Action Ontology(251) 및 Things Graph DB(252)에 기초하여 외부 장치의 기능 및 상태를 판단할 수 있다.
한편, 프로세서(130)는 SLU(Spoken Language Understanding)(280) 모듈을 사용하여 생성된 시스템 응답을 사용자가 이해할 수 있도록 텍스트로 변환할 수 있다.
그리고, 프로세서(130)는 TTS(Text to Speech)(290) 모듈을 사용하여 텍스트를 음성 신호로 변환할 수 있다. 이에 따라, 프로세서(130)는 생성된 시스템 응답을 음성 신호로 변환하여 스피커부(120)를 통해 출력할 수 있다.
한편, 도 3은 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리하는 과정을 설명하기 위한 흐름도이다.
도 3을 참조하면, 사용자 발화 음성이 입력되면 프로세서(130)는 ASR(Automatic Speech Recognition) 모듈을 사용하여 음성 신호를 텍스트로 변환할 수 있고(S310), 사용자 발화 음성에 대응되는 도메인을 검출하고(S321), 사용자 발화 음성과 검출된 도메인 및 이전 도메인 간의 신뢰도를 분석할 수 있다(S322). 또한, 프로세서(130)는 사용자 발화 의도를 분석할 수도 있다(S320). 사용자 발화 음성에 대응되는 도메인을 검출하고, 사용자 발화 음성과 검출된 도메인 및 이전 도메인 간의 신뢰도를 분석하며 사용자 발화 의도를 분석하는 구체적인 설명은 미리 하였으므로 자세한 설명은 생략하기로 한다.
이후, 프로세서(130)는 사용자 발화 음성과 검출된 도메인 및 이전 도메인 간의 신뢰도에 기초하여 사용자 발화 음성을 처리할 도메인이 이전 도메인과 동일한지 여부를 판단할 수 있다(S330).
여기서, 프로세서(130)는 사용자 발화 음성을 처리할 도메인이 이전 도메인과 동일한 것으로 판단된 경우, 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 사용자 발화 음성과 판단된 컨텍스트 및 이전 컨텍스트 간의 신뢰도 스코어를 분석할 수 있다(S340).
그리고, 프로세서(130)는 사용자 발화 음성과 판단된 컨텍스트 및 이전 컨텍스트 간의 신뢰도 스코어에 기초하여 사용자 발화 음성을 처리할 컨텍스트가 이전 컨텍스트와 동일하니 여부를 판단하거나 현재 state에서 처리 가능한지 판단할 수 있다(S350).
여기서, 프로세서(130)는 사용자 발화 음성을 처리할 컨텍스트가 이전 컨텍스트와 동일하다고 판단된 경우, 이전 컨텍스트에 기초하여 State management를 처리할 수 있다(S360). 그리고, 프로세서(130)는 이전 컨텍스트에 기초하여 수신된 사용자 발화 음성에 대한 처리를 완료할 수 있다(S370). 또한, 프로세서(130)는 현재 사용자 발화 음성이 수신되기 이전에 저장해두었던 컨텍스트를 다시 저장부(110)로부터 독출하여 신규 사용자 발화 음성을 처리할 수도 있다(S380).
한편, 프로세서(130)는 사용자 발화 음성을 처리할 도메인이 이전 도메인이 아닌 검출된 사용자 발화 음성에 대응되는 도메인으로 결정된 경우, 이전 도메인 및 이전 컨텍스트과 관련된 정보를 저장하고(S331), 검출된 사용자 발화 음성에 대응되는 도메인의 context state management를 수행하여(S332) 사용자 발화 음성을 처리하게 된다.
또한, 프로세서(130)는 사용자 발화 음성을 처리할 도메인이 이전 도메인과 동일한 것으로 판단된 경우라도 사용자 발화 음성을 처리할 컨텍스트가 이전 컨텍스트가 아닌 사용자 발화 음성에 대응되는 컨텍스트로 결정된 경우, 이전에 진행중이던 컨텍스트에 관련된 정보를 저장하고(S351), 이전 도메인 내에서 새로운 Ccontext state management를 수행하여(S352), 사용자 발화 음성을 처리하게 된다.
한편, 도 4는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리할 도메인이 변경되는 경우 처리 과정에 관한 도면이다.
예를 들어, 사용자로부터 "큰 방 TV 시청할 때면 다른 방 불 꺼주고 이 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성이 수신되면(411), 프로세서(130)는 "큰 방 TV 시청할 때면 다른 방 불 꺼주고 이 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성을 처리할 도메인으로서 TV 시청 시 전등 및 온도에 관한 도메인으로 결정하여 사용자 발화 음성을 처리하여 "거실과 복도 불도 함께 끌까요?"와 같은 시스템 응답을 생성하여 출력할 수 있다(421).
이후, 사용자로부터 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성이 수신되면(412) 프로세서(130)는 수신된 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성에 대응되는 일정에 관한 도메인을 검출하고 사용자 발화 의도를 분석하여(S431), 사용자 발화 음성과 검출된 일정에 관한 도메인 간의 신뢰도를 분석하고(S432), 분석된 신뢰도 결과에 따라 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성을 처리할 도메인이 이전의 TV 시청 시 전등 및 온도에 관한 도메인과 동일한지 여부를 판단할 수 있다(S433). 여기서, 프로세서(130)는 "참, 다음 주말에 결혼식 일정 등록해줘"라는 사용자 발화 음성을 처리할 도메인은 이전 TV 시청 시 전등 및 온도에 관한 도메인이 아닌 일정에 관한 도메인으로 결정되면, 이전 도메인에서 진행중이던 컨텍스트와 관련된 정보를 저장부(110)에 저장할 수 있고(S434), 새롭게 결정된 일정에 관한 도메인에 맞는 컨텍스트를 생성하여 사용자 발화 음성을 처리할 수 있다(S435). 도 4에 도시된 바와 같이, 프로세서(130)는 "무슨 요일, 몇 시인가요?"라는 시스템 응답을 생성하여 출력할 수 있고(S422), 이에 대해 사용자로부터 "토요일, 12시"라는 사용자 발화 음성이 수신되면 여전히 일정에 관한 도메인 내의 동일한 컨텍스트이므로 이를 유지한 채 "추가 정보는 있나요?"라는 시스템 응답을 생성하여 출력(423)할 수 있다. 또한, 이에 대해, 사용자로부터 "김대경 결혼식, 장소는 신촌 ○○○ 대학교 동문회관"이라는 사용자 발화 음성이 수신되면(414), 프로세서(130)는 여전히 일정에 관한 도메인 내의 동일한 컨텍스트이므로 이를 유지한 채 "일정 등록이 완료되었습니다"라는 시스템 응답을 생성하여 출력할 수 있고(424), 이에 대해 사용자로부터 "알았어"라는 사용자 발화 음성을 수신할 수 있다(415). 이에 따라 프로세서(130)는 현재 진행 중인 Task가 완료되었음을 판단할 수 있다(S436).
이후, 프로세서(130)는 이전에 진행 중이던 TV 시청 시 전등 및 온도에 관한 도메인과 관련 컨텍스트를 저장부(110)로부터 독출하고(S437), 이전 도메인과 관련 컨텍스트에 기초하여 사용자로부터 수신되는 신규 발화 음성을 처리할 수 있다(S438).
예를 들어, 프로세서(130)는 "이전에 진행 중이던 Planning을 이어서 진행하겠습니다"와 같은 시스템 응답을 출력하여 사용자로부터 "거실은 끄고 복도는 켜줘"라는 사용자 발화 음성이 수신되면 이전 도메인인 TV 시청 시 전등 및 온도에 관한 도메인과 관련 컨텍스트에 기초하여 사용자 발화 음성을 처리하고, 거실과 복도 불도 함께 끌까요?"라는 시스템 응답을 생성하여 출력할 수 있고(426), 이에 대해 사용자로부터 "중간 정도로 해줘"라는 사용자 발화 음성이 수신되면(417), 프로세서(130)는 여전히 TV 시청 시 전등 및 온도에 관한 도메인 및 관련 컨텍스트에 관한 것으로 판단하여 이를 유지한 채 "에어컨은 어느 정도로 할까요?"와 같은 시스템 응답을 생성하여 출력할 수 있다.
한편, 도 5는 본 발명의 일 실시 예에 따른 사용자 발화 음성을 처리할 도메인이 변경되지 않는 경우 처리 과정에 관한 도메인이다.
예를 들어, 사용자로부터 "큰 방 TV 시청할 때면 다른 방 불 꺼주고 이 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성이 수신되면(511), 프로세서(130)는 "큰 방 TV 시청할 때면 다른 방 불 꺼주고 이 방은 시원하고 어둡게 해줘"라는 사용자 발화 음성을 처리할 도메인으로서 TV 시청 시 전등 및 온도에 관한 도메인으로 결정하여 사용자 발화 음성을 처리하여 "거실과 복도 불도 함께 끌까요?"와 같은 시스템 응답을 생성하여 출력할 수 있다(521).
이후, 사용자로부터 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성이 수신되면(512), 프로세서(130)는 수신된 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성에 대응되는 채널 정보에 관한 도메인을 검출하고 사용자 발화 의도를 분석하여(S531), 사용자 발화 음성과 검출된 방송 프로그램에 관한 도메인 가의 신뢰도를 분석하고(S532), 분석된 신뢰도 결과에 따라 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성을 처리할 도메인이 이전의 TV 시청 시 전등 및 온도에 관한 도메인과 동일한지 여부를 판단할 수 있다(S533). 여기서, 프로세서(130)는 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성을 처리할 도메인은 이전 도메인인 TV 시청 시 전등 및 온도에 관한 도메인과 동일한 것으로 판단되면, TV 시청 시 전등 및 온도에 관한 도메인 내에서 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성에 대응되어 검출된 채널 정보에 관한 컨텍스트 간의 신뢰도를 분석할 수 있고(S534), 신뢰도 분석 결과에 따라 프로세서(130)는 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성을 처리할 컨텍스트가 이전 컨텍스트인 TV 시청 시 전등 및 온도에 관한 컨텍스트와 동일하니 여부를 판단할 수 있다(S535). 여기서, 프로세서(130)는 "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성을 처리할 컨텍스트는 이전 컨텍스트가 아닌 검출된 채널 정보에 관한 컨텍스르로 결정할 수 있고, 이에 다라, 이전에 진행 중이던 컨텍스트 관련 정보를 저장부(110)에 저장할 수 있다(S536).
그리고, 프로세서(130)는 TV 시청 시 전등 및 온도에 관한 도메인 내에서 새로운 채널 정보에 관한 컨텍스트를 생성하여 사용자 발화 음성을 처리할 수 있다(S537).
즉, "영화 나오는 채널이 몇 번이지?"라는 사용자 발화 음성에 대해 프로세서(130)는 "23, 37, 101, 157, 274 번 채널입니다"와 같은 시스템 응답을 생성하여 출력할 수 있고(522), 이에 대해 사용자로부터 "34번"이라는 사용자 발화 음성이 수신되면 프로세서(130)는 "34번으로 채널 변환하였습니다"와 같은 시스템 응답을 생성하여 출력할 수 있다(523).
이후, 프로세서(130)는 현재 진행 중인 Task가 완료되었음을 판단할 수 있고(S538), 프로세서(130)는 이전에 진행 중이던 TV 시청 시 전등 및 온도에 관한 컨텍스트를 저장부(110)로부터 독출하며(S539-1), 이에 기초하여 사용자로부터 수신되는 신규 발화 음성을 처리할 수 있다(S539-2). 예를 들어, 프로세서(130)는 "이전에 진행 중이던 Planning을 이어서 진행하겠습니다"와 같은 시스템 응답을 출력하여(524) 사용자로부터 "거실은 끄고 복도는 켜줘"라는 사용자 발화 음성이 수신되면(514), 이전 컨텍스트인 TV 시청 시 전등 및 온도에 관한 컨텍스트에 기초하여 사용자 발화 음성을 처리하고, "거실과 복도 불도 함께 끌까요?"라는 시스템 응답을 생성하여 출력할 수 있고(525), 이에 대해 사용자로부터 "중간 정도로 해줘"라는 사용자 발화 음성이 수신되면(515), 프로세서(130)는 여전히 TV 시청 시 전등 및 온도에 관한 컨텍스트에 관한 것으로 판단하여 이를 유지한 채 "에어컨은 어느 정도로 할까요?"와 같은 시스템 응답을 생성하여 출력할 수 있다(526).
한편, 도 6은 본 발명의 DM 모듈에서의 처리 과정을 도시한 도면이다.
도 6을 참조하면, "효율적인 에너지 관리해줘"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 Dialog Manager(10)가 Dialog Context, Dialog History 및 Question Answering을 참조하여 NLP(Natural Language Processing)(640)이 사용자 발화 의도를 분석하도록 제어할 수 있다. 예를 들어, Dialog Manager(10)은 "효율적인 에너지 관리해줘"라는 사용자 발화 음성에 있어서 이해가 불명확한 부분에 대한 내용에 관한 정보를 NLP(640) 모듈로 전송하고(610), NLP(640) 모듈을 사용하여 불필요하거나 사용 안 하는 에너지 관리 또는 효율적인 성능 수치를 적용하여 사용자 발화 음성의 정확한 의미 및 발화 의도를 분석할 수 있다.
그리고, 프로세서(130)는 Dialog Manager(10)가 Context Manager(650) 모듈로 불명확한 내용이나 조건 또는 선택에 필요한 정보를 요청하면(620), Context Manager(650) 모듈을 사용하여 "효율적인 에너지 관리해줘"라는 사용자 발화 음성과 관련된 다양한 외부 기기에 대한 컨텍스트를 체크하고, 사용자 발화 음성과 관련된 컨텍스트를 분석하여 도움이 될 만한 Task를 추천하거나(670), 관련된 Task를 제안하도록 제어할 수 있다(680).
또한, 프로세서(130)는 Planning Manager(660) 모듈로 Planning 시 필요한 내용을 요청하면(630), Planning Manager(660) 모듈을 사용하여 "효율적인 에너지 관리해줘"라는 사용자 발화 음성에 대해 다양한 외부 장치들의 조합을 통해 사용자 발화 음성에 대응되는 적절한 시스템 응답 즉, 다양한 외부 장치들을 어떻게 조합하여 기능을 수행하게 할 것인가에 관한 Action Planning을 수행하도록 제어할 수있다(660).
한편, 도 7은 본 발명의 일 실시 예에 따른 전자 장치(100)와 외부 장치에 관한 정보를 포함하는 데이터 베이스를 포함하는 시스템에서 수행되는 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 프로세서(130)는 Dialog Manager(10), NLP(640), Context Manager(650) 및 Planning Manager(660)이 외부 장치에 관한 정보를 저장하는 데이터 베이스(KB)(20)에 외부 장치의 기능, 성능, 특징 등에 관한 정보를 요청하면, 외부 장치에 관한 정보를 저장하는 데이터 베이스(KB)(20)를 제어하는 KB Manager(30) 및 Things Manger(40)는 수신된 요청을 처리하고 Batch Manager(50)는 Dialog Manager(10), NLP(640), Context Manager(650) 및 Planning Manager(660)으로 외부 장치의 기능, 성능, 특징 등에 관한 정보를 전송할 수 있다.
이에 따라, 프로세서(130)는 수신된 외부 장치의 기능, 성능, 특징 등에 관한 정보에 기초하여 Dialog Manager(10), NLP(640), Context Manager(650) 및 Planning Manager(660)을 통해 사용자 발화 음성을 처리하여 시스템 응답을 생성하여 출력할 수 있다.
도 8은 본 발명의 다른 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다.
도 8을 참조하면, 전자 장치(100)는 저장부(110), 스피커부(120), 프로세서(130) 및 통신부(140)를 포함하며, 저장부(110), 스피커부(120) 및 프로세서(130)에 대해서는 미리 설명하였으므로 자세한 설명은 생략하기로 한다.
통신부(140)는 적어도 하나의 외부 장치와 통신을 수행할 수 있으며, 프로세서(130)는 발화 음성에 대응되는 시스템 응답이 결정된 도메인 내에서 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 외부 장치의 기능에 관한 정보에 기초하여 적어도 하나의 외부 장치의 기능을 제어하기 위한 시스템 응답을 생성할 수 있다.
구체적으로, "집안 온도를 낮춰줘"라는 사용자 발화 음성이 수신되면, 프로세서(130)는 사용자 발화 음성을 처리할 도메인으로 온도 관련 도메인을 결정할 수 있고, 이러한 온도 관련 도메인 내에서 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 프로세서(130)는 집안에 배치된 다양한 외부 장치들 중 온도 조절 기능과 관련된 외부 장치를 검색할 수 있다. 예를 들어, 프로세서(130)는 온도 조절 기능과 관련하여 에어컨, 창문 및 전등 등의 외부 장치를 검색할 수 있고, 에어컨을 턴 온 시켜 온도를 낮추고, 창문을 닫아서 에너지 효율을 높이며 전등을 턴 오프하는 기능을 수행하도록 하는 제어 명령을 에어컨, 창문 및 전등 각각에 전송할 수 있다.
또한, 프로세서(130)는 온도 관련 도메인 내에서 온도를 조절하기 위해 다양한 외부 장치의 기능, 성능 및 특징 등을 고려하여 사용자 발화 음성에 대응되는 시스템 응답에 부합하는 적어도 하나의 외부 장치를 판단할 수 있다.
여기서, 저장부(110)는 외부 장치의 기능에 대한 정보를 더 저장할 수 있고, 통신부(140)는 기 설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신할 수 있다.
그리고, 프로세서(130)는 수신된 적어도 하나의 외부 장치에 대한 기능 정보에 기초하여 저장부(110)에 저장된 정보를 업데이트할 수 있다.
예를 들어, 기 설정된 네트워크를 집 내부의 네트워크로 상정하면, 집 내부에 신규 디스플레이 장치가 추가적으로 구비된 경우, 통신부(140)는 집 내부의 네트워크 내에 추가된 신규 디스플레이 장치에 대한 기능 정보를 수신할 수 있고, 프로세서(130)는 수신된 신규 디스플레이 장치에 대한 기능 정보에 기초하여 저장부(110)에 저장된 정보를 업데이트할 수 있다. 이에 따라, 프로세서(130)는 이후 수신되는 사용자 발화 음성을 처리하는데 있어서, 추가된 신규 디스플레이 장치의 기능 정보를 더 고려하여 시스템 응답을 생성할 수 있다.
한편, 프로세서(130)는 발화 이력 정보에 기초하여 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하며, 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함할 수 있다.
예를 들어, 프로세서(130)는 사용자 발화 음성에 대응되는 도메인 또는 컨텍스트를 검출하기 불가능하거나 사용자 발화 음성과 검출된 도메인 또는 컨텍스트 간의 신뢰도에 기초하여 사용자 발화 음성을 처리할 도메인 또는 컨텍스트를 결정하기 불가능한 경우, 발화 이력 정보에 기초하여 사용자 발화 음성을 처리할 도메인 또는 컨텍스트를 결정할 수 있다.
또한, 이러한 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 컨텍스트에 관한 정보 및 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답을 생성하는데 있어서 참조한 외부 장치에 관한 정보, 외부 장치의 기능에 관한 정보 등을 포함할 수 있다.
한편, 도 9는 본 발명의 또 다른 실시 예에 따른 전자 장치의 구성을 도시한 블럭도이다. 도 9를 참조하면, 전자 장치(100)는 저장부(110), 스피커부(120), 프로세서(130) 및 마이크부(160)를 포함하며, 저장부(110), 스피커부(120) 및 프로세서(130)에 대해서는 이미 설명하였으므로, 자세한 설명은 생략하기로 한다.
또한, 마이크부(160)는 사용자 발화 음성을 입력받을 수 있으며, 이러한 마이크부(160)는 전자 장치(100)에 구비되어 있을 수도 있으나, 분리되어 외부에 존재할 수도 있고, 탈부착이 가능한 형태로 구현될 수도 있다.
한편, 상술한 바와 같이 전자 장치(100)는 사용자 발화 음성에 대응되는 시스템 응답을 출력할 수 있으며, 시스템 응답을 출력함과 동시에 사용자에게 피드백 효과를 제공할 수도 있다. 또한, 전자 장치(100)는 디스플레이부(미도시)를 포함하며, 디스플레이부(미도시)를 통해 피드백 효과를 제공할 수 있다.
구체적으로, 프로세서(130)는 사용자 발화 음성에 대응되는 시스템 응답을 생성하여 출력함과 동시에 사용자 발화 음성에 대응되는 동작의 수행이 완료되었음을 음향 신호, 메시지 및 사용자 유저인터페이스 화면 등 중 하나를 통해 사용자에게 제공할 수 있으며, 여기서, 메시지 또는 사용자 유저인터페이스 화면은 디스플레이부(미도시)를 통해 출력될 수 있다.
예를 들어, 프로세서(130)는 "집안 온도를 낮춰줘"라는 사용자 발화 음성이 수신되면, 집안에 배치된 다양한 외부 장치들 중 온도 조절 기능과 관련된 외부 장치를 검색하고, 이에 따라 에어컨을 턴 온 시켜 온도를 낮추고, 창문을 닫아서 에너지 효율을 높이며 전등을 턴 오프하는 기능을 수행하도록 하는 제어 명령을 에어컨, 창문, 및 전등 각각에 전송할 수 있으며, 이와 동시에 "요청하신 부분을 처리하였습니다" 또는 "요청하신 바에 따라 에어컨을 작동하고, 창문을 닫으며 전등을 껐습니다"와 같은 음향 신호를 스피커부(120)를 통해 출력하여 사용자에게 피드백 효과를 줄 수도 있고, "요청하신 부분을 처리하였습니다" 또는 "요청하신 바에 따라 에어컨을 작동하고, 창문을 닫으며 전등을 껐습니다"를 텍스트 형태로 포함하는 메시지나 사용자 유저인터페이스 화면 또는 아이콘 등을 디스플레이부(미도시)를 통해 출력하여 사용자에게 피드백 효과를 줄 수도 있다.
또한, 프로세서(130)는 사용자 발화 음성에 대응되는 시스템 응답을 출력하고 출력된 시스템 응답과 관련성이 있는 또 다른 동작 또는 Task를 사용자에게 추가적으로 추천 또는 제안할 수도 있다.
예를 들어, 프로세서(130)는 "어제 보던 영화를 보여줘"라고 사용자 발화 음성이 수신되면, TV에서 어제 보던 영화를 디스플레이하도록 하는 제어 명령을 TV로 전송한 후, TV에서 영화를 재생하도록 하는 제어 명령 중 "영화 재생"이라는 키워드와 관련하여 현재 영화를 재생하는 상황에 적합한 다른 동작 또는 Task를 사용자에게 추가적으로 추천 또는 제안할 수 있다. 구체적으로, 프로세서(130)는 "전등의 라이트 조도를 낮출까요?" 또는 "현재 로봇 청소기가 작동중인데 영화 시청에 방해가 되니 로봇 청소기의 동작을 중단할까요?" 또는 "영화 시청에 방해가 되지 않도록 창문을 닫을까요?" 등과 같이 TV에서 영화를 재생하도록 하는 제어 명령과 관련된 동작 또는 Task를 사용자에게 추가적으로 제안하고 추천할 수 있다.
이와 같이, 프로세서(130)는 사용자 발화 음성에 대응되는 시스템 응답을 생성하여 출력함과 동시에 사용자 발화 음성에 대응되는 동작의 수행이 완료되었음을 음향 신호, 메시지 및 사용자 유저인터페이스 화면 등 중 하나를 통해 사용자에게 제공할 수 있고, 또한, 사용자 발화 음성에 대응되는 시스템 응답과 관련성이 있는 또 다른 동작 또는 Task를 사용자에게 추가적으로 추천하거나 제안할 수 있다.
도 10은 도 1에 도시된 전자 장치의 구체적 구성을 나타내는 블럭도이다.
도 10을 참조하면, 전자 장치(100')는 저장부(110), 스피커부(120), 프로세서(130), 통신부(140), 디스플레이부(150), 마이크부(160) 및 센서부(170)를 포함한다. 도 10에 도시된 구성 중 도 1에 도시된 구성과 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
프로세서(130)는 전자 장치(100)의 동작을 전반적으로 제어한다.
구체적으로, 프로세서(130)는 RAM(131), ROM(132), 메인 CPU(133), 그래픽 처리부(134), 제1 내지 n 인터페이스(135-1 ~ 135-n), 버스(136)를 포함한다.
RAM(131), ROM(132), 메인 CPU(133), 그래픽 처리부(134), 제1 내지 n 인터페이스(135-1 ~ 135-n) 등은 버스(136)를 통해 서로 연결될 수 있다.
제1 내지 n 인터페이스(135-1 내지 135-n)는 상술한 각종 구성요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
메인 CPU(133)는 저장부(110)에 액세스하여, 저장부(110)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 저장부(110)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
ROM(132)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(133)는 ROM(132)에 저장된 명령어에 따라 저장부(140)에 저장된 O/S를 RAM(131)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(133)는 저장부(140)에 저장된 각종 어플리케이션 프로그램을 RAM(131)에 복사하고, RAM(131)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(134)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부(미도시)는 수신된 제어 명령에 기초하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부(미도시)는 연산부(미도시)에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 특히, 그래픽 처리부(134)는 사용자 발화 음성에 대응하여 생성된 시스템 응답을 텍스트 형태로 변환하면서, 문자의 폰트, 크기, 색상 등을 결정할 수 있다. 렌더링부(미도시)에서 생성된 화면은 디스플레이부(150)를 통해 디스플레이될 수 있다.
한편, 상술한 프로세서(130)의 동작은 저장부(110)에 저장된 프로그램에 의해 이루어질 수 있다.
저장부(140)는 디스플레이 장치(100')를 구동시키기 위한 O/S(Operating System) 소프트웨어 모듈, 각종 멀티미디어 컨텐츠와 같은 다양한 데이터를 저장한다.
특히, 저장부(110)는 사용자 발화 음성에 대응되는 도메인을 검출하고, 사용자 발화 음성과 검출된 도메인 간의 신뢰도에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하기 위한 소프트웨어 모듈을 포함한다. 이에 대해서는 도 11을 통해 상세히 설명하기로 한다.
한편, 센서부(170)는 각종 센서들을 포함할 수 있으며, 터치를 인식하기 위한 터치 센서, 사용자의 움직임을 감지하기 위한 모션 센서 등을 포함할 수 있다. 특히, 센서부(170)는 사용자의 발화 음성과 외부의 잡음을 구별하는 센서를 포함할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 저장부에 저장된 소프트웨어 모듈에 관한 도면이다.
도 11을 참조하면, 저장부(110)에는 Dialogue Manager 모듈(111), Dialogue Context 모듈(112), NLP 모듈(113), NLG 모듈(114), Discourse Manage 모듈(115), Question Answering 모듈(116), Context Manager 모듈(117) 및 Action Planner 모듈(118) 등의 프로그램이 저장되어 있을 수 있다.
한편, 상술한 프로세서(130)의 동작은 저장부(110)에 저장된 프로그램에 의해 이루어질 수 있다. 이하에서는 저장부(110)에 저장된 프로그램을 이용한 프로세서(130)의 세부 동작에 대해 자세히 설명하도록 한다.
Dialogue Manager 모듈(111)은 사용자 발화 음성을 분석하여 사용자 발화 음성의 내용과 발화 의도를 검출하는 기능을 수행하고, 사용자와 자연어 대화를 생성할 수 있는 기능을 수행할 수 있다. 특히, Dialogue Manager 모듈(111)은 다이얼로그 시스템의 메인 모듈로써, 사용자와 전자 장치 간에 이루어지는 대화의 전체적인 흐름을 관리하고, 다른 내부 모듈을 전반적으로 관리하는 기능을 수행할 수 있다.
Dialogue Context 모듈(112)은 사용자와 전자 장치(100) 간에 주고 받은 대화 내용을 기록하고 관리하는 기능을 수행할 수 있다.
또한, NLP 모듈(113)은 자연어를 처리하고 이에 기초하여 사용자 발화 의도를 검출하는 기능을 수행할 수 있다.
NLG 모듈(114)은 사용자 발화 음성에 대응하여 생성된 시스템 응답을 텍스트로 변환하는 기능을 수행할 수 있다.
또한, Discourse Manage 모듈(115)은 사용자 발화 음성의 내용 및 발화 의도에 기초하여 시스템 응답을 생성하는 기능을 수행할 수 있다.
Question Answering 모듈(116)은 사용자로부터 수신된 질문에 대한 내용을 처리하는 기능을 수행할 수 있다.
Context Manager 모듈(117)은 사용자와 전자 장치(100) 간의 대화 내용을 모니터링하면서 필요한 컨텍스트에 관한 정보를 제공하거나, 사용자 발화 음성에 대응되는 컨텍스트를 검출하여 제공하는 기능을 수행할 수 있다.
Action Planner 모듈(118)은 분석된 사용자 발화 음성의 내용 및 발화 의도에 기초하여 적어도 하나의 외부 장치의 기능, 성능 등을 고려하여 적어도 하나의 외부 장치를 제어하도록 하는 기능을 수행할 수 있다.
여기서, Action Planner 모듈(118)에서 출력되는 결과는 다양한 타입으로 결정될 수 있다. 예를 들어, 일반적으로 사용자의 발화 음성을 처리하게 되면 "요청이 성공적으로 수행되었습니다"와 같이 출력될 수 있고, 사용자의 발화 음성을 처리하지 않는 경우에는 "요청하신 내용은 이미지 수행된 것입니다"와 같이 출력될 수 있다. 또한, 사용자의 발화 음성을 처리하되 사용자의 발화 의도와 다르게 처리하게 되면, "사용자가 요청하신 내용 대신 다른 방식으로 수행되었습니다"와 같이 출력될 수도 있다.
또한, 사용자 발화 음성을 통해 요청한 부분 이외에 이와 관련된 부분을 추가적으로 처리하는 경우에는 "요청하신 부분은 성공적으로 수행되었습니다. 또한, 요청하신 부분과 관련하여 또 다른 가능한 기능을 찾았습니다"와 같이 출력될 수도 있다.
또한, 사용자의 수동적인 조작이 필요한 경우에는 "요청하신 부분을 처리하기 위해서는 사용자의 선택이 필요합니다"와 같이 출력될 수 있고, 파라미터 값에 대한 요청이 필요한 경우에는 "파라미터 값에 대한 입력을 요청드립니다"와 같이 출력될 수도 있다. 또한, 사용자 발화 음성에 대하여 2 이상의 처리 방안이 결정될 경우, "사용자의 선택이 필요합니다"와 같이 출력될 수 있다.
한편, 도 12는 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법을 설며하기 위한 흐름도이다.
도 12에 도시된 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부를 포함하는 전자 장치의 제어 방법은 사용자 발화 음성에 대응되는 도메인을 검출한다(S1210).
그리고, 사용자 발화 음성과 검출된 도메인 간의 신뢰도에 기초하여 검출된 도메인과 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성한다(S1220).
여기서, 저장부는 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며, 시스템 응답을 생성하는 단계는, 이전 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되면, 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 사용자 발화 음성과 판단된 컨텍스트 간의 신뢰도에 기초하여 판단된 컨텍스트 및 이전 컨텍스트 중 사용자 발화 음성을 처리할 컨텍스트를 결정하여 시스템 응답을 생성할 수 있다.
또한, 시스템 응답을 생성하는 단계는, 판단된 컨텍스트가 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 이전 컨텍스트와 관련된 정보를 저장부에 저장하고 판단된 컨텍스트에서의 발화 음성 처리가 종료되면, 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 시스템 응답을 생성하는 단계는, 검출된 도메인이 사용자 발화 음성을 처리할 도메인으로 결정되면, 이전 도메인과 관련된 정보를 저장부에 저장하고 검출된 도메인에서의 발화 음성 처리가 종료되면, 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리할 수 있다.
또한, 시스템 응답을 생성하는 단계는, 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어에 기초하여 사용자 발화 음성과 검출된 도메인 간의 신뢰도를 판단할 수 있다.
또한, 시스템 응답을 생성하는 단계는, 발화 음성에 대응되는 시스템 응답이 결정된 도메인 내에서 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 외부 장치의 기능에 관한 정보에 기초하여 적어도 하나의 외부 장치의 기능을 제어하기 위한 시스템 응답을 생성할 수 있다.
또한, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 기 설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신하여 기 저장된 외부 장치의 기능에 대한 정보를 업데이트하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 발화 이력 정보에 기초하여 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 단계를 더 포함하며, 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함할 수 있다.
또한, 도메인 정보는, 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 대화 주제 별 대화 패턴 중 적어도 하나를 포함할 수 있다.
또한, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 사용자 발화 음성을 입력받는 단계를 더 포함할 수 있다.
한편, 본 발명에 따른 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
일 예로, 사용자 발화 음성에 대응되는 도메인을 검출하는 단계 및 사용자 발화 음성과 검출된 도메인 간의 신뢰도에 기초하여 검출된 도메인 및 이전 도메인 중 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 단계를 를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 전자 장치에 대해 도시한 상술한 블록도에서는 버스(bus)를 미도시하였으나, 전자 장치에서 각 구성요소 간의 통신은 버스를 통해 이루어질 수도 있다. 또한, 각 디바이스에는 상술한 다양한 단계를 수행하는 CPU, 마이크로 프로세서 등과 같은 프로세서가 더 포함될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 저장부 120: 스피커부
130: 프로세서

Claims (20)

  1. 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부;
    사용자 발화 음성에 대응되는 시스템 응답을 출력하는 스피커부; 및
    상기 사용자 발화 음성에 대응되는 도메인을 검출하고, 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 저장부는,
    상기 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며,
    상기 프로세서는,
    상기 이전 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 상기 사용자 발화 음성과 상기 판단된 컨텍스트 간의 신뢰도에 기초하여 상기 판단된 컨텍스트 및 이전 컨텍스트 중 상기 사용자 발화 음성을 처리할 컨텍스트를 결정하여 상기 시스템 응답을 생성하는 것을 특징으로 하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 판단된 컨텍스트가 상기 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 상기 이전 컨텍스트와 관련된 정보를 상기 저장부에 저장하고, 상기 판단된 컨텍스트에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리하는 것을 특징으로 하는 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 검출된 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 이전 도메인과 관련된 정보를 상기 저장부에 저장하고, 상기 검출된 도메인에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리하는 것을 특징으로 하는 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 상기 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어 에 기초하여 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도를 판단하는 것을 특징으로 하는 전자 장치.
  6. 제1항에 있어서,
    적어도 하나의 외부 장치와 통신을 수행하는 통신부;를 더 포함하며,
    상기 프로세서는,
    상기 발화 음성에 대응되는 시스템 응답이 상기 결정된 도메인 내에서 상기 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 상기 외부 장치의 기능에 관한 정보에 기초하여 적어도 하나의 외부 장치의 기능을 제어하기 위한 상기 시스템 응답을 생성하는 것을 특징으로 하는 전자 장치.
  7. 제6항에 있어서,
    상기 저장부는, 상기 외부 장치의 기능에 대한 정보를 더 저장하고,
    상기 통신부는, 기설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신하며,
    상기 프로세서는,
    상기 수신된 적어도 하나의 외부 장치에 대한 기능 정보에 기초하여 상기 저장부에 저장된 정보를 업데이트하는 것을 특징으로 하는 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    발화 이력 정보에 기초하여 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하며,
    상기 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 상기 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 상기 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.
  9. 제1항에 있어서,
    상기 도메인 정보는,
    상기 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 상기 대화 주제 별 대화 패턴 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.
  10. 제1항에 있어서,
    상기 사용자 발화 음성을 입력받는 마이크부;를 더 포함하는 것을 특징으로 하는 전자 장치.
  11. 대화 주제 별로 카테고리화된 도메인 정보를 저장하는 저장부를 포함하는 전자 장치의 제어 방법에 있어서,
    사용자 발화 음성에 대응되는 도메인을 검출하는 단계; 및
    상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 시스템 응답을 생성하는 단계;를 포함하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 저장부는,
    상기 도메인 각각에 대응되는 대화 주제를 컨텍스트 별로 카테고리화하여 저장하며,
    상기 시스템 응답을 생성하는 단계는,
    상기 이전 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 사용자 발화 음성에 대응되는 컨텍스트를 판단하고, 상기 사용자 발화 음성과 상기 판단된 컨텍스트 간의 신뢰도에 기초하여 상기 판단된 컨텍스트 및 이전 컨텍스트 중 상기 사용자 발화 음성을 처리할 컨텍스트를 결정하여 상기 시스템 응답을 생성하는 것을 특징으로 하는 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 시스템 응답을 생성하는 단계는,
    상기 판단된 컨텍스트가 상기 사용자 발화 음성을 처리할 컨텍스트로 결정되면, 상기 이전 컨텍스트와 관련된 정보를 상기 저장부에 저장하고, 상기 판단된 컨텍스에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 컨텍스트와 관련된 정보에 기초하여 신규 발화 음성을 처리하는 것을 특징으로 하는 전자 장치의 제어 방법.
  14. 제11항에 있어서,
    상기 시스템 응답을 생성하는 단계는,
    상기 검출된 도메인이 상기 사용자 발화 음성을 처리할 도메인으로 결정되면, 상기 이전 도메인과 관련된 정보를 상기 저장부에 저장하고, 상기 검출된 도메인에서의 발화 음성 처리가 종료되면, 상기 저장된 이전 도메인과 관련된 정보에 기초하여 신규 발화 음성을 처리하는 것을 특징으로 하는 전자 장치의 제어 방법.
  15. 제11항에 있어서,
    상기 시스템 응답을 생성하는 단계는,
    상기 사용자 발화 음성을 구성하는 적어도 하나의 발화 요소와 상기 검출된 도메인에 속하는 적어도 하나의 발화 요소 간의 동일 여부에 따른 신뢰도 스코어에 기초하여 상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도를 판단하는 것을 특징으로 하는 전자 장치의 제어 방법.
  16. 제11항에 있어서,
    상기 시스템 응답을 생성하는 단계는,
    상기 발화 음성에 대응되는 시스템 응답이 상기 결정된 도메인 내에서 적어도 하나의 외부 장치의 기능 제어가 요구되는 컨텍스트에 기초하여 생성되면, 상기 적어도 하나의 외부 장치의 기능에 관한 정보에 기초하여 상기 적어도 하나의 외부 장치의 기능을 제어하기 위한 상기 시스템 응답을 생성하는 것을 특징으로 하는 전자 장치의 제어 방법.
  17. 제16항에 있어서,
    기 설정된 네트워크 내에 추가된 적어도 하나의 외부 장치에 대한 기능 정보를 수신하여 기 저장된 상기 외부 장치의 기능에 대한 정보를 업데이트하는 단계;를 더 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  18. 제11항에 있어서,
    발화 이력 정보에 기초하여 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 단계;를 더 포함하며,
    상기 발화 이력 정보는 이전에 수신된 사용자 발화 음성, 상기 이전에 수신된 사용자 발화 음성을 처리한 도메인과 관련된 정보 및 상기 이전에 수신된 사용자 발화 음성에 대응되는 시스템 응답 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  19. 제11항에 있어서,
    상기 도메인 정보는,
    상기 대화 주제에 대응되는 태스크 수행을 위한 제어 정보 및 상기 대화 주제 별 대화 패턴 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  20. 시스템 응답을 생성하는 프로그램이 저장된 저장 매체에 있어서,
    상기 프로그램은,
    사용자 발화 음성에 대응되는 도메인을 검출하는 단계; 및
    상기 사용자 발화 음성과 상기 검출된 도메인 간의 신뢰도(confidence)에 기초하여 상기 검출된 도메인 및 이전 도메인 중 상기 사용자 발화 음성을 처리할 도메인을 결정하여 상기 시스템 응답을 생성하는 단계;를 수행하는 것인, 저장 매체.
KR1020150128511A 2015-05-11 2015-09-10 전자 장치 및 그 제어 방법 KR102411619B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/130,399 US9953648B2 (en) 2015-05-11 2016-04-15 Electronic device and method for controlling the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562159467P 2015-05-11 2015-05-11
US62/159,467 2015-05-11

Publications (2)

Publication Number Publication Date
KR20160132748A true KR20160132748A (ko) 2016-11-21
KR102411619B1 KR102411619B1 (ko) 2022-06-21

Family

ID=57537917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150128511A KR102411619B1 (ko) 2015-05-11 2015-09-10 전자 장치 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR102411619B1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180138513A (ko) * 2017-06-21 2018-12-31 삼성전자주식회사 사용자 발화을 처리하는 전자 장치 및 시스템
WO2019031825A1 (ko) * 2017-08-08 2019-02-14 삼성전자(주) 전자 장치 및 그 동작 방법
KR20190054787A (ko) * 2017-11-14 2019-05-22 (주) 엔에이치엔다이퀘스트 음성 대화 제어 방법 및 장치
KR20190059509A (ko) * 2017-11-23 2019-05-31 삼성전자주식회사 전자장치 및 그 제어방법
KR20190105182A (ko) * 2018-02-23 2019-09-16 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20200128123A (ko) * 2018-03-05 2020-11-11 구글 엘엘씨 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의 전환
WO2021060728A1 (ko) * 2019-09-26 2021-04-01 삼성전자 주식회사 사용자 발화를 처리하는 전자 장치 및 그 작동 방법
EP3796110A4 (en) * 2018-05-14 2021-07-07 ZTE Corporation METHOD AND DEVICE FOR DETERMINING A CONTROLLED OBJECT AND STORAGE MEDIUM AND ELECTRONIC DEVICE
CN113160808A (zh) * 2020-01-22 2021-07-23 广州汽车集团股份有限公司 一种语音控制方法及其系统、语音控制设备
WO2022092901A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
WO2022102893A1 (ko) * 2020-11-11 2022-05-19 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
WO2023113227A1 (ko) * 2021-12-16 2023-06-22 삼성전자주식회사 외부 기기를 제어하는 전자 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110066357A (ko) * 2009-12-11 2011-06-17 삼성전자주식회사 대화 시스템 및 그의 대화 방법
KR20110139797A (ko) * 2010-06-24 2011-12-30 에스케이플래닛 주식회사 홈 미디어 디바이스 및 이를 이용한 홈 네트워크 시스템, 방법
KR20140074229A (ko) * 2012-12-07 2014-06-17 삼성전자주식회사 음성 인식 장치 및 그 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110066357A (ko) * 2009-12-11 2011-06-17 삼성전자주식회사 대화 시스템 및 그의 대화 방법
KR20110139797A (ko) * 2010-06-24 2011-12-30 에스케이플래닛 주식회사 홈 미디어 디바이스 및 이를 이용한 홈 네트워크 시스템, 방법
KR20140074229A (ko) * 2012-12-07 2014-06-17 삼성전자주식회사 음성 인식 장치 및 그 제어 방법

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180138513A (ko) * 2017-06-21 2018-12-31 삼성전자주식회사 사용자 발화을 처리하는 전자 장치 및 시스템
WO2019031825A1 (ko) * 2017-08-08 2019-02-14 삼성전자(주) 전자 장치 및 그 동작 방법
US11592825B2 (en) 2017-08-08 2023-02-28 Samsung Electronics Co., Ltd. Electronic device and operation method therefor
KR20190054787A (ko) * 2017-11-14 2019-05-22 (주) 엔에이치엔다이퀘스트 음성 대화 제어 방법 및 장치
KR20190059509A (ko) * 2017-11-23 2019-05-31 삼성전자주식회사 전자장치 및 그 제어방법
US11443749B2 (en) 2018-02-23 2022-09-13 Samsung Electronics Co., Ltd. Electronic device and control method thereof
KR20190105182A (ko) * 2018-02-23 2019-09-16 삼성전자주식회사 전자 장치 및 그 제어 방법
US11709655B2 (en) 2018-02-23 2023-07-25 Samsung Electronics Co., Ltd. Electronic device and control method thereof
KR20220134050A (ko) * 2018-03-05 2022-10-05 구글 엘엘씨 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의 전환
KR20200128123A (ko) * 2018-03-05 2020-11-11 구글 엘엘씨 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의 전환
US11727220B2 (en) 2018-03-05 2023-08-15 Google Llc Transitioning between prior dialog contexts with automated assistants
EP3796110A4 (en) * 2018-05-14 2021-07-07 ZTE Corporation METHOD AND DEVICE FOR DETERMINING A CONTROLLED OBJECT AND STORAGE MEDIUM AND ELECTRONIC DEVICE
WO2021060728A1 (ko) * 2019-09-26 2021-04-01 삼성전자 주식회사 사용자 발화를 처리하는 전자 장치 및 그 작동 방법
CN113160808A (zh) * 2020-01-22 2021-07-23 广州汽车集团股份有限公司 一种语音控制方法及其系统、语音控制设备
WO2022092901A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
WO2022102893A1 (ko) * 2020-11-11 2022-05-19 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
US11915697B2 (en) 2020-11-11 2024-02-27 Samsung Electronics Co., Ltd. Electronic device, system and control method thereof
WO2023113227A1 (ko) * 2021-12-16 2023-06-22 삼성전자주식회사 외부 기기를 제어하는 전자 장치 및 방법

Also Published As

Publication number Publication date
KR102411619B1 (ko) 2022-06-21

Similar Documents

Publication Publication Date Title
US9953648B2 (en) Electronic device and method for controlling the same
KR102411619B1 (ko) 전자 장치 및 그 제어 방법
US20230267921A1 (en) Systems and methods for determining whether to trigger a voice capable device based on speaking cadence
KR102505597B1 (ko) 어시스턴트 애플리케이션을 위한 음성 사용자 인터페이스 단축
EP3788620B1 (en) Supplementing voice inputs to an automated assistant according to selected suggestions
US10777193B2 (en) System and device for selecting speech recognition model
KR102309540B1 (ko) 사용자의 입력 입력에 기초하여 타겟 디바이스를 결정하고, 타겟 디바이스를 제어하는 서버 및 그 동작 방법
KR20200034430A (ko) 전자 장치, 시스템 및 음성 인식 서비스 이용 방법
KR20140089863A (ko) 디스플레이 장치, 및 이의 제어 방법, 그리고 음성 인식 시스템의 디스플레이 장치 제어 방법
KR20140089861A (ko) 디스플레이 장치 및 그의 제어 방법
KR102060775B1 (ko) 음성 입력에 대응하는 동작을 수행하는 전자 장치
CN116830075A (zh) 助理命令的被动消歧
US11769490B2 (en) Electronic apparatus and control method thereof
KR20220143622A (ko) 전자 장치 및 그 제어 방법
US11150923B2 (en) Electronic apparatus and method for providing manual thereof
KR20210098250A (ko) 전자 장치 및 이의 제어 방법
US11527247B2 (en) Computing device and method of operating the same
KR102124396B1 (ko) 디스플레이 장치, 및 이의 제어 방법, 그리고 음성 인식 시스템의 디스플레이 장치 제어 방법
KR20160022326A (ko) 디스플레이 장치 및 그의 제어 방법
WO2020017165A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
KR20180048510A (ko) 디스플레이 장치, 및 이의 제어 방법, 그리고 음성 인식 시스템의 디스플레이 장치 제어 방법
KR20170055466A (ko) 디스플레이 장치, 및 이의 제어 방법, 그리고 음성 인식 시스템의 디스플레이 장치 제어 방법
KR20190077268A (ko) 디스플레이 장치 및 그의 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant