KR20240053240A - 지능형 어시스턴트의 발화 제공 방법 및 그 장치 - Google Patents

지능형 어시스턴트의 발화 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR20240053240A
KR20240053240A KR1020220133106A KR20220133106A KR20240053240A KR 20240053240 A KR20240053240 A KR 20240053240A KR 1020220133106 A KR1020220133106 A KR 1020220133106A KR 20220133106 A KR20220133106 A KR 20220133106A KR 20240053240 A KR20240053240 A KR 20240053240A
Authority
KR
South Korea
Prior art keywords
reliability
user
action
utterance
command
Prior art date
Application number
KR1020220133106A
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 KR1020220133106A priority Critical patent/KR20240053240A/ko
Priority to PCT/KR2023/010719 priority patent/WO2024085371A1/ko
Publication of KR20240053240A publication Critical patent/KR20240053240A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • 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)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시의 다양한 실시예는 지능형 어시스턴트에 의한 발화 제공 방법 및 장치에 관한 것이다. 이를 위한 전자 장치는 사용자 발화 명령을 획득하고, 상기 사용자 발화 명령의 불확실성 유형을 결정하고, 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석하고, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하고, 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다.

Description

지능형 어시스턴트의 발화 제공 방법 및 그 장치 {UTTERANCE PROVIDING METHOD OF INTELLIGENT ASSISTANT AND APPARATUS OF THE SAME}
본 개시의 다양한 실시예들은 불확실한 사용자 발화 명령에 대해 추가 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석하고, 분석된 컨텍스트에 기초하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하여 후속 발화를 제안하는 지능형 어시스턴트의 발화 제공 방법 및 그 장치에 관한 것이다.
AI(Artificial Intelligence) 기술 등이 발전하면서 음성인식 서비스를 제공하는 지능형 어시스턴트가 탑재된 전자 장치(이하, 지능형 어시스턴트라고도 함)가 개발되고 있다. 지능형 어시스턴트는 사용자 발화에 대응하는 음성 신호를 수신하고 처리함으로써, 다양한 서비스를 사용자들에게 제공할 수 있다.
음성인식 서비스를 제공하기 위해, 인간의 언어를 인식하고 분석하는 기술들(예: 음성 인식/합성, 자연어 이해/생성, 기계 번역, 대화 시스템)이 필요하다. 또한, 사용자들에게 고품질의 음성인식 서비스를 제공하기 위해서는, 사용자 발화로부터 사용자의 의도를 정확하게 파악하고, 파악된 사용자 의도에 대응하는 서비스 제공이 필요하다.
사용자가 지능형 어시스턴트와 대화 시, 사람 간의 대화에서와 같이 일부 단어가 누락되어도 컨텍스트로 사용자의 의도를 파악함으로써, 사용자와 지능형 어시스턴트 간의 자연스러운 대화가 가능하도록 유도할 필요가 있다. 또한, 컨텍스트에 기초하여 제안하는 후속 발화에 대해, 지능형 어시스턴트가 확신할 수 있는 신뢰도에 따라 다양한 방법으로 후속 발화를 생성함으로써 지능형 어시스턴트가 오판단을 하더라도 사용자의 거부감을 최소화할 필요가 있다.
본 개시의 다양한 실시예들은 불확실한 사용자 발화 명령에 대해 추가 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석하고, 분석된 컨텍스트에 기초하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하여 후속 발화를 제안하는 지능형 어시스턴트의 발화 제공 방법 및 그 장치를 제공하는데 있다.
본 개시의 일 실시예에 따르면 전자 장치는, 적어도 하나의 명령어를 저장하는 메모리 및 상기 메모리와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 사용자 발화 명령을 획득할 수 있다. 상기 적어도 하나의 프로세서는 상기 사용자 발화 명령의 불확실성 유형을 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 적어도 하나의 프로세서는 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면 지능형 어시스턴트에 의한 발화 제공 방법은, 사용자 발화 명령을 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 사용자 발화 명령의 불확실성 유형을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석하는 동작을 포함할 수 있다. 상기 방법은 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작을 포함할 수 있다.
또한, 본 개시의 일 실시예에 따르면 상기 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 사용자 발화 명령 이외에도 사용자의 발화 위치, 사용자의 활동 위치, 장치 사용 패턴 및 외부 환경 정보 등의 추가 정보를 분석함으로써 지능적으로 사용자 발화 명령의 컨텍스트(또는 맥락)를 판단할 수 있으므로, 사용자의 의도에 따른 지능형 발화의 제안 정확도를 향상시킬 수 있다. 이처럼, 사용자가 지능형 어시스턴트와 대화 시, 사람 간의 대화에서와 같이 일부 단어가 누락되어도 컨텍스트로 사용자의 의도를 파악할 수 있으므로, 사용자는 지능형 어시스턴트와 자연스러운 대화가 가능하고 컨텍스트에 기초한 사용자 의도 파악을 통해 발화 명령 결과를 더 빠르게 획득할 수 있고 사용자의 인지적 부담을 낮출 수 있다.
본 개시의 다양한 실시예들에 따르면, 컨텍스트에 기초하여 제안하는 후속 발화에 대해, 지능형 어시스턴트가 확신할 수 있는 신뢰도에 따라 다양한 방법으로 후속 발화를 생성할 수 있으므로 지능형 어시스턴트가 오판단을 하더라도 사용자의 거부감을 최소화할 수 있다.
본 개시의 다양한 실시예들에 따르면, 지능형 어시스턴트가 제안한 후속 발화에 대해 사용자로부터 긍정 피드백을 획득하여 해당 발화 명령을 실행하는 경우, 장치 사용 패턴 데이터베이스에 반영하여 저장함으로써 이후 지능형 발화의 제안 정확도를 더욱 향상시킬 수 있다.
본 개시의 다양한 실시예들에 따르면, 지능형 발화의 제안 정확도 향상, 사용자 인지적 로드의 감소, 자연스러운 대화 유도 등을 통해, 지능형 어시스턴트에 대한 사용자의 친밀감 형성, 신뢰감 향상 및 사용 빈도를 늘리는 데 기여할 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 블록도를 도시한다.
도 2는 본 개시의 일 실시예에 따른 지능형 어시스턴트의 블록도를 도시한다.
도 3은 본 개시의 일 실시예에 따른 전자 장치의 발화 제공 방법의 흐름도를 도시한다.
도 4는 본 개시의 일 실시예에 따른 사용자 발화 명령이 장치 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 5는 본 개시의 일 실시예에 따른 사용자 발화 명령이 액션 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 6은 본 개시의 일 실시예에 따른 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 7은 본 개시의 일 실시예에 따른, 발화 제안에 대한 복수의 신뢰도 및 각각의 신뢰도에 기초하여 생성된 후속 발화의 예들을 도시한다.
도 8은 본 개시의 일 실시예에 따른 전자 장치가 제안한 발화에 대해 사용자로부터 획득한 피드백을 반영하여 이후 후속 발화를 생성하는 방법의 흐름도를 도시한다.
이하에서는 도면을 참조하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면의 설명과 관련하여, 동일하거나 유사한 구성요소에 대해서는 동일하거나 유사한 참조 부호가 사용될 수 있다. 또한, 도면 및 관련된 설명에서는, 잘 알려진 기능 및 구성에 대한 설명이 명확성과 간결성을 위해 생략될 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 개략적인 블록도이다.
일 실시예에 따르면, 전자 장치(100)는 이에 제한되지 않으나, 하나 이상의 프로세서(110) 및 하나 이상의 메모리(120)를 포함할 수 있다. 전자 장치(100)는 추가 컴포넌트(130)를 포함할 수 있다. 전자 장치(100)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 하나 이상의 프로세서(110)는, 전자 장치(100)의 동작을 지원하기 위한 저장 및 프로세싱 회로부를 포함할 수 있다. 저장 및 프로세싱 회로부는 비휘발성 메모리(예를 들어, 플래시 메모리, 또는 SSD(Solid State Drive)를 형성하도록 구성된 다른 전기적 프로그래밍 가능한 ROM), 휘발성 메모리(예를 들어, 정적 또는 동적 RAM) 등과 같은 스토리지를 포함할 수 있다. 프로세서(110) 내의 프로세싱 회로부는 전자 장치(100)의 동작을 제어하는 데 사용될 수 있다. 프로세싱 회로부는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 및 FPGA(Field Programmable Gate Arrays) 중 적어도 하나에 기초할 수 있고, 적어도 하나의 코어를 포함할 수 있다. 이하에서 설명되는 메모리(120) 및 추가 컴포넌트(130)는 프로세서의 일 실시예로서 프로세서의 적어도 일부로서 특유의 기능 또는 동작을 수행하는 기능적 요소로 제공되거나, 독립적인 기능 또는 동작을 수행하는 주체로서 별개의 하드웨어 구성요소로 제공될 수도 있다.
일 실시예에 따르면, 하나 이상의 메모리(120)는 전자 장치(100)가 사용하는 저장 매체로서, 적어도 하나의 명령어 또는 데이터를 저장할 수 있다. 적어도 하나의 명령어는 적어도 하나의 프로그램에 대응할 수 있다. 상기 데이터는 본 개시에서 예시적으로 설명된 방법들 및/또는 절차들 중 임의의 것에 대응하거나 이들을 포함하는 동작들을 포함하는, 전자 장치(100)의 프로토콜, 구성, 제어 및 다른 기능들에서 사용되는 변수들 및/또는 설정 정보들을 포함할 수 있다. 상기 프로그램은 운영체제(OS: Operating System) 프로그램 및 다양한 응용 프로그램을 포함할 수 있다. 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 또는 이들의 조합을 포함할 수 있다. 메모리(120)는 하나 이상의 포맷들의 착탈식 메모리 카드들(예를 들어, SD 카드, 메모리 스틱, 콤팩트 플래시 등)이 삽입 및 제거될 수 있게 하는 메모리 슬롯과 인터페이싱할 수 있다. 메모리(120)는 프로세서(110)의 요청에 따라 저장된 상기 데이터를 제공할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 추가 컴포넌트(130)를 포함할 수 있다. 일 실시예에 따르면, 추가 컴포넌트(130)는 전자 장치(100)의 종류에 따라 다양하게 구성될 수 있다. 예를 들어, 추가 컴포넌트는 트랜시버, 디스플레이, 파워 유닛(예. 배터리), 입출력부(I/O Unit), 구동부 및 컴퓨팅부 중 적어도 하나를 포함할 수 있으나 이에 제한되는 것은 아니다.
일 실시예에 따르면, 전자 장치(100)는 버스를 포함할 수 있다. 일 실시예에 따르면, 하나 이상의 시스템 컴포넌트(예. 프로세서(110), 메모리(120) 등)는 하나 이상의 버스에 의해 상호연결될 수 있다. 일 실시예에서 하나 이상의 버스는 시스템 컴포넌트들의 다양한 조합을 유무선으로 상호 연결하거나 제어하는 회로부를 포함할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 TV, XR(eXtended Reality) 장치, 홀로그램 장치, 홈(Home) 허브 서버, AI 에이전트, 가전, 모바일 장치, 디지털 방송용 단말 장치, IoT 장치, 데스크 탑 컴퓨터, 노트북, 로봇, 차량, 공공 안전 장치, MTC(Machine Type Communication) 장치, 의료 장치, 핀테크 장치, 보안 장치, 기후/환경 장치, 기지국, 네트워크 노드 등의 형태로 구현될 수 있으나 이에 제한되는 것은 아니다.
일 실시예에 따르면, 프로세서(110)는 사용자로부터 사용자 발화 명령에 대응하는 음성을 인식하거나 또는 사용자 발화 명령에 대응하는 음성을 외부 장치로부터 획득할 수 있다. 프로세서(110)는 사용자 음성을 사용자 발화 명령에 대응하는 텍스트 데이터(또는, 사용자 발화 명령이라고도 칭함)로 변환할 수 있다. 프로세서(110)는 사용자 발화 명령에 대응하는 텍스트 데이터에 대해 구문 분석을 수행할 수 있다. 프로세서(110)는 구문 분석을 수행함으로써, 사용자 발화 명령에 대응하는 텍스트 데이터에 포함된 단어의 의미를 판단할 수 있다.
일 실시예에 따르면, 프로세서(110)는 획득한 사용자 발화 명령의 불확실성 유형을 결정할 수 있다. 상기 불확실성 유형은 장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함할 수 있다. 사용자 발화 명령이 장치 불특정 유형인 경우, 프로세서(110)에 의한 후속 발화 제공 방법의 동작들을 이하 도 4를 참조하여 구체적으로 후술한다. 사용자 발화 명령이 액션 불특정 유형인 경우, 프로세서(110)에 의한 후속 발화 제공 방법의 동작들을 이하 도 5를 참조하여 구체적으로 후술한다. 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우, 프로세서(110)에 의한 후속 발화 제공 방법의 동작들을 이하 도 6을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 프로세서(110)는 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 추가 정보는 장치 데이터베이스, 사용자 위치 정보, 장치 사용 패턴 데이터베이스 및 외부 환경 정보 중 적어도 하나를 포함할 수 있다. 상기 사용자 위치 정보는 사용자 활동 위치 및 사용자 발화 위치를 포함할 수 있다. 상기 추가 정보는 이하 도 2를 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 프로세서(110)는 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정할 수 있다. 사용자 발화 명령이 장치 불특정 유형인 경우, 프로세서(110)는 사용자 발화 명령을 수행할 장치를 소정의 신뢰도로 결정할 수 있다. 사용자 발화 명령이 액션 불특정 유형인 경우, 프로세서(110)는 사용자 발화 명령을 수행할 액션을 소정의 신뢰도로 결정할 수 있다. 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우, 프로세서(110)는 사용자 발화 명령을 수행할 장치 및 액션을 소정의 신뢰도로 결정할 수 있다. 신뢰도는 프로세서(110)에 의한 상기 결정의 정확도를 나타낼 수 있다. 일 실시예에 따르면, 프로세서(110)는 상기 소정의 신뢰도를 제1 신뢰도(LV 1), 제2 신뢰도(LV 2), 제3 신뢰도(LV 3) 및 제4 신뢰도(LV 4) 중 하나로 결정할 수 있으나, 이에 제한되지 않는다. 일 실시예에 따른 복수의 신뢰도를 이하 도 7을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 프로세서(110)가 상기 추가 정보로서 상기 장치 데이터베이스를 이용하는 경우, 프로세서(110)는 상기 소정의 신뢰도를 상기 제1 신뢰도로 결정할 수 있다. 프로세서(110)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 사용자 활동 위치 및 상기 사용자 발화 위치가 이용되는 경우, 프로세서(110)는 상기 소정의 신뢰도를 상기 제2 신뢰도로 결정할 수 있다. 프로세서(110)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 장치 사용 패턴 데이터베이스 또는 상기 외부 환경 정보가 이용되는 경우, 프로세서(110)는 상기 소정의 신뢰도를 상기 제3 신뢰도로 결정할 수 있다. 프로세서(110)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 프로세서(110)가 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우, 프로세서(110)는 상기 소정의 신뢰도를 제4 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 프로세서(110)는 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다. 프로세서(110)는 상기 소정의 신뢰도에 기초하여 상기 후속 발화의 어조 및 상기 후속 발화의 내용 중 적어도 하나를 생성할 수 있다. 상기 후속 발화의 내용은 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유, 실행 지연 시간, 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션 중 적어도 하나를 포함할 수 있다. 일 실시예에 따른 복수의 신뢰도 및 각각의 신뢰도에 기초하여 생성된 후속 발화의 예들을 이하 도 7을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 프로세서(110)는 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나에 기초하여 생성된 상기 후속 발화에 대한 사용자 피드백을 획득할 수 있다. 프로세서(110)는 상기 사용자 피드백이 부정 피드백인 경우, 상기 제4 신뢰도에 대응하여 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션을 포함하는 제2 후속 발화를 생성할 수 있다. 프로세서(110)는 상기 제2 후속 발화에 대한 제2 사용자 피드백을 획득할 수 있다. 프로세서(110)는 상기 제2 사용자 피드백이 부정 피드백인 경우, 사용자에게 사용자 발화 명령을 요청하는 제3 후속 발화를 생성할 수 있다. 프로세서(110)에 의해 생성된(또는 제안된) 상기 후속 발화에 대해 사용자로부터 획득한 피드백을 반영하여 이후 적어도 하나의 후속 발화를 생성하는 방법을 이하 도 8을 참조하여 구체적으로 후술한다.
도 2는 본 개시의 일 실시예에 따른 지능형 어시스턴트의 세부 블록도를 도시한다.
도 2의 지능형 어시스턴트(200)는 도 1의 전자 장치(100)에 상응하는 전자 장치일 수 있다. 지능형 어시스턴트(200)는 홈(Home) 허브 서버, AI 에이전트 장치 등의 별도 장치로 구현되거나, TV, 가전(예. 냉장고, 세탁기, 오븐), 각종 센서 장치, IoT 장치(예. SmartThings 장치), 모바일 장치(예. 휴대폰), XR(eXtended Reality) 장치, 홀로그램 장치, 디지털 방송용 단말 장치, 데스크 탑 컴퓨터, 노트북, 로봇 등의 장치에 포함되어 구현될 수 있으나 이에 제한되는 것은 아니다.
지능형 어시스턴트(200)는 음성 인식부(210), 구문 분석부(220), 컨텍스트 분석부(230), 발화 생성부(240) 및 명령 실행부(250)를 포함할 수 있다. 지능형 어시스턴트(200)는 통신부(미도시)를 더 포함할 수 있다. 음성 인식부(210), 구문 분석부(220), 컨텍스트 분석부(230), 발화 생성부(240), 명령 실행부(250) 및 상기 통신부는 프로세서(110)에 의해 실행 및 제어될 수 있다. 도 2에 도시되는 지능형 어시스턴트(200)의 블록 구성은 본 개시의 설명에 필요한 구성들 만을 도시한 것이고, 지능형 어시스턴트(200)의 기능을 수행하기 위하여 필요한 다른 구성들이 포함될 수 있다.
일 실시 예에 따르면, 상기 통신부는 외부 장치와의 통신을 가능하게 하는 유무선 통신 인터페이스를 제공할 수 있다. 상기 통신부는 유선 이더넷(Ethernet), 무선랜 통신부 및 근거리 통신부 중 적어도 하나를 포함할 수 있다. 상기 무선랜 통신부는 예를 들어 와이파이(Wi-Fi)를 포함할 수 있고, 미국 전기전자학회(IEEE)의 무선랜 규격(IEEE802.11x)을 지원할 수 있다. 상기 무선랜 통신부는 프로세서(110)의 제어에 의해 무선으로 AP(Access Point)와 연결될 수 있다. 상기 근거리 통신부는 프로세서(110)의 제어에 의해 외부 장치와 무선으로 근거리 통신을 할 수 있다. 근거리 통신은 블루투스(Bluetooth), 블루투스 저 에너지(Bluetooth Low Energy), 적외선 통신(IrDA: Infrared Data Association), UWB(Ultra WideBand) 및 NFC(Near Field Communication) 등을 포함할 수 있다.
일 실시예에 따르면, 음성 인식부(210)는 사용자로부터 사용자 발화 명령에 대응하는 음성을 인식하거나 또는 사용자 발화 명령에 대응하는 음성을 외부 장치로부터 획득할 수 있다. 음성 인식부(210)는 사용자 음성을 사용자 발화 명령에 대응하는 텍스트 데이터(또는, 사용자 발화 명령이라고도 칭함)로 변환할 수 있다.
일 실시예에 따르면, 구문 분석부(220)는 사용자 발화 명령에 대응하는 텍스트 데이터에 대해 구문 분석을 수행할 수 있다. 구문 분석은 문법적 분석(syntactic analyze) 및 의미적 분석 (semantic analyze)을 포함할 수 있다. 구문 분석부(220)는 형태소 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여, 사용자 발화 명령에 대응하는 텍스트 데이터에 포함된 단어의 의미를 판단할 수 있다.
일 실시예에 따르면, 컨텍스트 분석부(230)는 사용자 발화 명령의 불확실성 유형을 결정할 수 있다. 상기 불확실성 유형은 장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함할 수 있다. 컨텍스트 분석부(230)는 상기 불확실성 유형에 기초하여 추가 정보(260)를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
일 실시예에 따르면, 추가 정보(260)는 장치 데이터베이스, 사용자 위치 정보, 장치 사용 패턴 데이터베이스 및 외부 환경 정보 중 적어도 하나를 포함할 수 있다. 사용자 위치 정보는 사용자 활동 위치 및 사용자 발화 위치를 포함할 수 있다. 지능형 어시스턴트(200)가 다양한 방법으로 추가 정보(260)를 획득, 저장 및 갱신할 수 있음은 당업자에게 이해될 것이다.
일 실시예에 따르면, 상기 장치 데이터베이스는 사용자의 집에서 동작 중인, 적어도 하나의 장치들을 식별하는 식별 정보를 포함할 수 있다. 상기 장치 데이터베이스는 각각의 장치에 대해, 각각의 장치를 제어하는 적어도 하나의 액션을 더 포함할 수 있다. 상기 장치 데이터베이스는 각각의 장치에 대해, 각각의 장치가 위치한 공간 정보를 더 포함할 수 있다. 또한, 상기 장치 데이터베이스는 적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치 및 각각의 장치를 제어하는 적어도 하나의 액션을 포함할 수 있다. 상기 장치 데이터베이스는 다양한 장치들의 센서에 의해 획득된 정보, 제조사 또는 사용자에 의해 등록된 정보에 기초하여 저장 및 갱신될 수 있으나 이에 제한되지 않는다.
일 실시예에 따르면, 상기 사용자 위치 정보는 사용자 활동 위치 및 사용자 발화 위치를 포함할 수 있다. 상기 사용자 활동 위치는 현재 사용자가 활동하는 위치를 나타낼 수 있다. 지능형 어시스턴트(200)는 사용자의 장치 사용 패턴이나 다양한 사용자 장치(예. 휴대폰, 와치)로부터 획득한 위치 정보 등을 통해, 상기 사용자 활동 위치를 획득할 수 있으나, 이에 제한되지 않는다. 상기 사용자 발화 위치는 지능형 어시스턴트(200)가 사용자 음성을 인식 또는 획득할 때 함께 획득할 수 있으나, 이에 제한되지 않는다.
일 실시예에 따르면, 상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도 중 적어도 하나의 정보를 포함할 수 있다.
일 실시예에 따르면, 상기 장치 사용 패턴 데이터베이스는 특정 상황 조건에서 사용자가 적어도 하나의 장치 및 적어도 하나의 액션을 반복적으로 수행하는, 장치 사용 패턴 정보를 포함할 수 있다. 상기 특정 상황은 사용자가 특정 장치 및 특정 액션을 수행하는 행동 패턴을 반복적으로 보이는 특정 상황(또는 특정 상황들의 조합)을 나타낼 수 있다. 적어도 하나의 상황은 사용자의 행동/상황(예. 기상, 외출 등), 외부 환경 상황(예. 날씨, 시간 등), 다른 기기 동작 상황(예. 오븐 동작 상황) 중 적어도 하나를 포함할 수 있다. 예를 들어, 적어도 하나의 상황은 기상, 외출, 운동, 요리, 주차, 귀가 중 적어도 하나의 사용자 행동/상황을 포함할 수 있다. 상기 장치 사용 패턴 정보는 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나를 포함할 수 있다. 상기 장치 단독 사용 패턴은 특정 상황 조건에서 하나의 장치에 대한 액션을 반복적으로 수행하는 사용 패턴(예. 저녁 시간대에 TV 켬)을 나타낼 수 있다. 장치 복합 사용 패턴은 복수의 장치들에 대한 액션들을 반복적으로 수행하는 사용 패턴(예. 인덕션 켜고, 주방 후드 켬)을 나타낼 수 있다.
일 실시예에 따르면, 사용자의 행동/상황은 다양한 장치들의 센서에 의해 획득된 정보, 제조사 또는 사용자에 의해 등록된 정보에 기초하여 지능형 어시스턴트(200) 또는 외부 장치에 의해 획득 및 판단될 수 있으나 이에 제한되지 않는다. 예를 들어, 다음 중 하나의 조건을 만족하는 경우, 사용자의 상황은 기상 상황으로 판단될 수 있다.
조건 1 휴대폰에서 모닝 알람이 울린 후 스누징없이 알람이 꺼지고 사용자 걸음이 센싱됨
조건 2 워치에 의해, 사용자가 수면 상태에 진입한 후 기상 감지됨
조건 3 침실에 있는 TV의 레이더 센서에 의해, 침대 영역에 해당하는 움직임이 소정 패턴으로 감지됨
조건 4 침대의 슬립 센서에 의해, 사용자 기상이 감지됨
조건 5 하루 중 냉장고 문이 최초로 열리는 것으로 감지됨
다른 예를 들어, 차량 내 인포테인먼트 시스템과의 연결 여부, GPS 변화 정보 및 가속도 센서로부터 획득한 가속도 정보 중 적어도 하나를 통해, 사용자의 주차 상황이 판단될 수 있다.예를 들어, 사용자가 주말에 기상하면 TV를 켜고 휴대폰의 유투브 앱을 실행하는 장치 사용 패턴을 갖는 경우, 상기 장치 사용 패턴 데이터베이스는 (주말+기상 상황 조건, TV Turn On, 휴대폰 유투브 앱 실행)에 대응하는, 장치 사용 패턴을 하나의 데이터베이스 레코드로 포함할 수 있다. 예를 들어, 사용자가 인덕션을 동작시키면 주방 후드를 켜는 장치 사용 패턴을 갖는 경우, 상기 장치 사용 패턴 데이터베이스는 (인덕션 동작 조건, 주방 후드 Turn On)에 대응하는, 장치 사용 패턴을 하나의 데이터베이스 레코드로 포함할 수 있다.
상기 장치 사용 패턴 데이터베이스는 상기 장치 사용 패턴 각각에 대해 소정의 신뢰도를 포함할 수 있다. 상기 소정의 신뢰도는 상기 특정 상황 조건이 발생하는 경우, 장치 사용 패턴이 발생하는 비율을 나타낼 수 있다. 상기 장치 사용 패턴 데이터베이스는 지능형 어시스턴트(200) 또는 외부 장치에 의해 학습되고 갱신될 수 있음은 당업자에게 이해될 것이다.
사용자 발화 명령이 장치 불특정 유형인 경우, 컨텍스트 분석부(230)에 의한 컨텍스트 분석 및 컨텍스트에 기초한 후속 발화 제공 방법의 동작들을 이하, 도 4를 참조하여 구체적으로 후술한다. 사용자 발화 명령이 액션 불특정 유형인 경우, 컨텍스트 분석부(230)에 의한 컨텍스트 분석 및 컨텍스트에 기초한 후속 발화 제공 방법의 동작들을 이하, 도 5를 참조하여 구체적으로 후술한다. 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우, 컨텍스트 분석부(230)에 의한 컨텍스트 분석 및 컨텍스트에 기초한 후속 발화 제공 방법의 동작들을 이하, 도 6을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 컨텍스트 분석부(230)는 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정할 수 있다. 신뢰도는 프로세서(110)에 의한 상기 결정의 정확도를 나타낼 수 있다. 일 실시예에 따르면, 프로세서(110)는 상기 소정의 신뢰도를 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나로 결정할 수 있으나, 이에 제한되지 않는다. 일 실시예에 따른 복수의 신뢰도를 이하 도 7을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 컨텍스트 분석부(230)가 상기 추가 정보로서 상기 장치 데이터베이스를 이용하는 경우, 컨텍스트 분석부(230)는 상기 소정의 신뢰도를 상기 제1 신뢰도로 결정할 수 있다. 컨텍스트 분석부(230)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 사용자 활동 위치 및 상기 사용자 발화 위치가 이용되는 경우, 컨텍스트 분석부(230)는 상기 소정의 신뢰도를 상기 제2 신뢰도로 결정할 수 있다. 컨텍스트 분석부(230)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 장치 사용 패턴 데이터베이스 또는 상기 외부 환경 정보가 이용되는 경우, 컨텍스트 분석부(230)는 상기 소정의 신뢰도를 상기 제3 신뢰도로 결정할 수 있다. 컨텍스트 분석부(230)에 의해 상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 컨텍스트 분석부(230)가 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우, 컨텍스트 분석부(230)는 상기 소정의 신뢰도를 제4 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 발화 생성부(240)는 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다. 발화 생성부(240)는 상기 소정의 신뢰도에 기초하여 상기 후속 발화의 어조 및 상기 후속 발화의 내용 중 적어도 하나를 생성할 수 있다. 상기 후속 발화의 내용은 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유, 실행 지연 시간, 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션 중 적어도 하나를 포함할 수 있다. 일 실시예에 따른 복수의 신뢰도 및 각각의 신뢰도에 기초하여 생성된 후속 발화의 예들을 이하 도 7을 참조하여 구체적으로 후술한다.
일 실시예에 따르면, 명령 실행부(250)는 결정된 장치 및 결정된 액션을 포함한 후속 발화에 대해 사용자로부터 긍정 피드백을 획득할 수 있다. 사용자로부터 긍정 피드백을 획득한 경우, 명령 실행부(250)는 결정된 장치 및 결정된 액션을 각각 식별할 수 있는 정보를 포함하는 명령을 생성하고, 상기 명령을 상기 결정된 장치가 실행하도록 제어할 수 있다. 지능형 어시스턴트(200)는 상기 통신부를 통해 상기 명령을 상기 결정된 장치에게 송신함으로써 상기 명령의 실행을 제어할 수 있으나, 이에 제한되지 않는다.
도 3는 본 개시의 일 실시예에 따른 전자 장치의 발화 제공 방법의 흐름도를 도시한다.
도 3의 동작들을 수행하는 전자 장치는 도 1의 전자 장치(100) 및 도 2의 지능형 어시스턴트(200)에 상응하는 전자 장치일 수 있다. 도 3에 설명되는 전자 장치의 동작에 있어서, 도 1 및 도 2에서 설명된 부분과 중복되는 부분은 생략될 수 있다. 도 3에 도시되는 동작들의 일부가 생략될 수 있으며, 도 3에 도시되지 않은 동작이 추가될 수 있다.
일 실시예에 따르면, 동작 310에서, 전자 장치(100)(또는 지능형 어시스턴트(200), 이하 동일)는 사용자 발화 명령을 획득할 수 있다.
일 실시예에 따르면, 동작 320에서, 전자 장치(100)는 상기 사용자 발화 명령의 불확실성 유형을 결정할 수 있다. 상기 불확실성 유형은 장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 동작 330에서, 전자 장치(100)는 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 추가 정보는 장치 데이터베이스, 사용자 활동 위치, 사용자 발화 위치, 장치 사용 패턴 데이터베이스 및 외부 환경 정보 중 적어도 하나를 포함할 수 있다. 상기 추가 정보는 도 2를 참조하여 상술한 바와 같다.
일 실시예에 따르면, 동작 340에서, 전자 장치(100)는 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정할 수 있다. 상기 소정의 신뢰도는 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나일 수 있다.
상기 불확실성 유형이 액션 불특정 유형인 경우, 전자 장치(100)는 사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보를 포함하는 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 장치를 상기 제1 신뢰도로 결정할 수 있다.
상기 불확실성 유형이 액션 불특정 유형인 경우, 전자 장치(100)는 사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보, 각각의 장치에 대해 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션 중 적어도 하나를 포함하는 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 액션을 상기 제1 신뢰도로 결정할 수 있다.
상기 불확실성 유형이 장치 및 액션 불특정 유형인 경우, 전자 장치(100)는 적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치, 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션 중 적어도 하나를 포함하는 장치 데이터베이스에 기초하여, 상기 사용자 발화 명령을 수행할 장치 및 액션을 상기 제1 신뢰도로 결정할 수 있다.
상기 제1 신뢰도로 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 결정할 수 없는 경우, 전자 장치(100)는 상기 사용자 활동 위치 및 상기 사용자 발화 위치가 동일한지 여부에 기초하여 상기 사용자 발화 명령에 대응하는 공간을 판단할 수 있다. 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간에서, 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제2 신뢰도로 결정할 수 있다. 이 경우, 전자 장치(100)는 각각의 장치에 대응하는 공간 정보를 더 포함하는 장치 데이터베이스를 이용하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제2 신뢰도로 결정할 수 있다.
상기 제1 신뢰도 및 상기 제2 신뢰도로 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 결정할 수 없는 경우, 전자 장치(100)는 상기 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하거나, 외부 환경 정보에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제3 신뢰도로 결정할 수 있다.
상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 결정할 수 없는 경우, 전자 장치(100)는 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션을 상기 제4 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 동작 350에서, 전자 장치(100)는 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다. 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도인 경우, 전자 장치(100)는 확신있는 어조로 상기 후속 발화를 생성할 수 있다. 상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 전자 장치(100)는 조심스러운 어조로 상기 후속 발화를 생성할 수 있다. 상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 전자 장치(100)는 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유 및 실행 지연 시간 중 적어도 하나를 포함하는 후속 발화를 생성할 수 있다. 상기 소정의 신뢰도가 상기 제4 신뢰도인 경우, 전자 장치(100)는 적어도 하나의 장치 및 적어도 하나의 액션을 포함하는 선택 질문에 대응하는 후속 발화를 생성할 수 있고, 사용자가 장치 및 액션을 선택하도록 할 수 있다. 상기 적어도 하나의 장치는 사용자 위치에 기초하여 추정되는 적어도 하나의 공간에 대응하는 장치일 수 있다.
도 4는 본 개시의 일 실시예에 따른 사용자 발화 명령이 장치 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 4의 동작들을 수행하는 전자 장치는 도 1의 전자 장치(100) 및 도 2의 지능형 어시스턴트(200)에 상응하는 전자 장치일 수 있다. 도 4에 설명되는 전자 장치의 동작에 있어서, 도 1, 도 2 및 도 3에서 설명된 부분과 중복되는 부분은 생략될 수 있다. 도 4에 도시되는 동작들의 일부가 생략될 수 있으며, 도 4에 도시되지 않은 동작이 추가될 수 있다.
일 실시예에 따르면 사용자 발화 명령이 장치 불특정 유형인 경우는 1) 장치 타입 및 액션이 발화되었으나 해당 장치가 복수 개가 있는 경우, 2) 장치 타입이 발화되지 않고 액션만 발화된 경우, 3) 장치 타입이 발화되지 않고 공간과 액션만 발화된 경우를 포함할 수 있다. 상기 1) 경우에 해당하는 사용자 발화 명령의 예들은 '조명 켜줘', '불 켜줘', '에어컨 켜줘'를 포함할 수 있다. 공간 내에 조명이 복수 개가 있거나 거실과 침실에 에어컨이 있는 경우, '조명 켜줘' 또는 '에어컨 켜줘'와 같은 사용자 발화 명령 만으로는 전자 장치(100)가 명령을 실행할 장치를 특정할 수 없다. 상기 2) 경우에 해당하는 사용자 발화 명령의 예들은 '저거 켜줘', '켜줘'를 포함할 수 있다. 상기 3) 경우에 해당하는 사용자 발화 명령의 예들은 '거실 켜줘'를 포함할 수 있다. 상기 2), 3) 경우에 해당하는 사용자 발화 명령은 장치를 특정하지 않았으므로, 사용자 발화 명령만으로는 전자 장치(100)가 명령을 실행할 장치를 특정할 수 없다.
동작 410에서, 전자 장치(100)(또는 지능형 어시스턴트(200), 이하 동일)는 장치 데이터베이스를 이용하여 사용자 발화 명령(예. '에어컨 켜줘')의 컨텍스트를 분석할 수 있다. 상기 장치 데이터베이스는 사용자의 집에서 동작 중인, 적어도 하나의 장치들을 식별하는 식별 정보를 포함할 수 있다. 예를 들면, 상기 장치 데이터베이스를 이용하여 동작 중인 에어컨이 1대가 있는 것으로 판단된 경우, 전자 장치(100)는 해당 에어컨을 사용자 발화 명령에 대응하는 에어컨으로 결정할 수 있다.
동작 420에서, 전자 장치(100)는 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 없는 경우, 동작 430으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제1 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제1 신뢰도에 기초하여 후속 발화(예. '에어컨을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제1 신뢰도에 대응하여, 결정된 장치 및 사용자 발화 명령에 포함된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다.
동작 430에서, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치가 동일한지 여부를 판단할 수 있다. 즉, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 사용자 활동 위치는 현재 사용자가 활동하는 위치를 나타낼 수 있다. 전자 장치(100)는 사용자의 장치 사용 패턴이나 다양한 사용자 장치(예. 휴대폰, 와치)로부터 획득한 위치 정보 등을 통해, 사용자 활동 위치를 획득할 수 있으나, 이에 제한되지 않는다. 전자 장치(100)는 사용자 음성을 인식 또는 획득할 때 상기 사용자 발화 위치를 함께 획득할 수 있으나, 이에 제한되지 않는다. 예를 들면, 사용자의 장치 사용 패턴을 통해 거실 조명만 켜지고 거실 TV가 동작 중으로 판단되는 경우, 전자 장치(100)는 상기 사용자 활동 위치를 거실로 획득할 수 있다. 또한, 전자 장치(100)가 사용자 음성을 거실에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 거실로 획득할 수 있다. 전자 장치(100)가 사용자 음성을 침실에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 침실로 획득할 수 있다. 사용자 활동 위치 및 사용자 발화 위치가 동일한 경우 (예. 사용자 발화 위치: 거실, 사용자 활동 위치: 거실) 동작 440으로 이동할 수 있고, 동일하지 않은 경우 (예. 사용자 발화 위치: 침실, 사용자 활동 위치: 거실) 동작 460으로 이동할 수 있다.
동작 440에서, 전자 장치(100)는 사용자 활동 위치(또는 동일한 사용자 발화 위치)를 상기 사용자 발화 명령에 대응하는 공간(예. 거실)으로 판단할 수 있다.
동작 450에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 거실)에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)는 각각의 장치에 대응하는 공간 정보를 포함하는 장치 데이터베이스를 이용하여 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 예를 들면, 장치 데이터베이스를 통해 거실에서 동작 중인 에어컨이 1대가 있다는 것을 식별할 수 있는 경우, 전자 장치(100)는 해당 에어컨을 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 없는 경우, 동작 460으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제2 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제2 신뢰도에 기초하여 후속 발화(예. '거실 에어컨을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제2 신뢰도에 대응하여, 결정된 장치, 사용자 발화 명령에 포함된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 상기 결정된 장치(예. 거실 에어컨)는 동작 440에서 판단된, 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 460에서, 전자 장치(100)는 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 예를 들어, 전자 장치(100)는 동작 430에서 고려된 '거실' 및 '침실' 공간 각각에 대해, 장치 사용 패턴 데이터베이스를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 거실 에어컨 사용률, 88%), (저녁 시간 상황, 침실 에어컨 사용률, 12%)와 같은 장치 단독 사용 패턴 및 (거실 조명 켜진 상황, 에어컨 켬)과 같은 장치 복합 사용 패턴을 포함하는 경우, 전자 장치(100)는 사용률이 소정 신뢰도 이상인 '거실 에어컨'을 상기 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. '거실 에어컨'이 상기 사용자 발화 명령에 대응하는 장치로 결정될 때, 전자 장치(100)는 장치 사용 패턴 데이터베이스의 장치 복합 사용 패턴인 '거실 조명 켜진 상황'을 추가로 고려할 수 있고, 이 경우 더 높은 신뢰도로 '거실 에어컨'을 상기 사용자 발화 명령에 대응하는 장치로 결정할 수 있다.
다른 예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 거실 에어컨 사용률, 60%), (저녁 시간 상황, 침실 에어컨 사용률, 40%)에 대응하는 장치 단독 사용 패턴을 포함하고, (거실 조명 켜는 상황, 에어컨 켬)과 같은 장치 복합 사용 패턴을 포함하지 않는 경우, 전자 장치(100)는 사용률이 소정 신뢰도 이상인 장치를 특정할 수 없으므로, 사용자 발화 명령에 대응하는 장치를 결정할 수 없다.
동작 470에서, 전자 장치(100)는 상기 장치 사용 패턴 데이터베이스를 이용하여 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 없는 경우, 동작 480으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '5초 뒤 이 시간 주로 사용하는 거실 에어컨을 켤게요')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '이 시간 주로 사용하는'), 실행 지연 시간(예. 5초), 결정된 장치(예. 거실 에어컨), 사용자 발화 명령에 포함된 액션(예. 켭니다)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 거실 에어컨)는 동작 460에서 판단된 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 480에서, 전자 장치(100)는 외부 환경 정보에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도 중 적어도 하나의 정보를 포함할 수 있다. 전자 장치(100)는 동작 430에서 고려된 공간 각각에 대해, 외부 환경 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 예를 들어, 전자 장치(100)는 사용자 발화 명령에 포함된 에어컨에 대해서 공간별 기온을 분석할 수 있고, 기온이 소정값(예. 27도) 이상인 공간을 사용자 발화 명령에 대응하는 공간으로 판단할 수 있다. 예를 들어, 거실 온도가 32도이고 침실 온도가 26도인 경우, 전자 장치(100)는 거실을 사용자 발화 명령에 대응하는 공간으로 판단할 수 있다. 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 거실)에서 하나의 장치('거실 에어컨')를 결정할 수 있다. 다른 예를 들어, 거실 온도가 31도이고 침실 온도가 31도인 경우, 전자 장치(100)는 사용자 발화 명령에 대응하는 공간을 판단할 수 없고 하나의 장치를 결정할 수 없다.
동작 490에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '거실 실내 온도가 높아요. 5초 뒤 거실 에어컨을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '거실 실내 온도가 높아요'), 실행 지연 시간(예. 5초), 결정된 장치(예. 거실 에어컨), 사용자 발화 명령에 포함된 액션(예. 켭니다)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 거실 에어컨)는 동작 480에서 판단된 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 490에서 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치를 결정할 수 없는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제4 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제4 신뢰도에 기초하여 후속 발화(예. '거실 에어컨과 침실 에어컨 중 어떤 에어컨을 켤까요?')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제4 신뢰도에 대응하여, 동작 430에서 고려된 공간 각각의 적어도 하나의 후보 장치(예. 거실 에어컨, 침실 에어컨) 및 사용자 발화 명령에 포함된 액션(예. 켭니다)을 포함하는 선택 질문에 대응하는 후속 발화를 생성함으로써, 사용자가 장치 및 액션을 선택하도록 할 수 있다.
도 5는 본 개시의 일 실시예에 따른 사용자 발화 명령이 액션 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 5의 동작들을 수행하는 전자 장치는 도 1의 전자 장치(100) 및 도 2의 지능형 어시스턴트(200)에 상응하는 전자 장치일 수 있다. 도 5에 설명되는 전자 장치의 동작에 있어서, 도 1, 도 2 및 도 3에서 설명된 부분과 중복되는 부분은 생략될 수 있다. 도 5에 도시되는 동작들의 일부가 생략될 수 있으며, 도 5에 도시되지 않은 동작이 추가될 수 있다.
일 실시예에 따르면 사용자 발화 명령이 액션 불특정 유형인 경우는 1) 장치 타입이 발화되었으나 액션이 발화되지 않은 경우, 2) 장치 타입 및 액션이 발화되었으나, 세부 액션을 특정할 수 없는 경우를 포함할 수 있다. 상기 1) 경우에 해당하는 사용자 발화 명령의 예들은 '전등' (단일 장치 발화), '에어컨, 공기청정기, 청소기'(복수 장치 발화)를 포함할 수 있다. 액션을 특정하지 않은 사용자 발화 명령으로는 전자 장치(100)가 해당 장치에서 실행할 명령(또는 액션)을 특정할 수 없다. 상기 2) 경우에 해당하는 사용자 발화 명령의 예들은 '에어드레서 켜줘'를 포함할 수 있다. '에어드레서 켜줘' 사용자 발화 명령은 '에어드레서'를 켜는 세부 모드(예. 대기 상태, 특정 모드 등)를 특정하지 않았으므로, 사용자 발화 명령만으로는 전자 장치(100)가 '에어드레서'를 켜는 세부 액션을 특정할 수 없다.
동작 510에서, 전자 장치(100)(또는 지능형 어시스턴트(200), 이하 동일)는 장치 데이터베이스를 이용하여 사용자 발화 명령(예. '전등')의 컨텍스트를 분석할 수 있다. 상기 장치 데이터베이스는 사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보 및 각각의 장치를 제어하는 적어도 하나의 액션을 포함할 수 있다. 상기 장치 데이터베이스는 상기 적어도 하나의 액션 중 디폴트 액션을 더 포함할 수 있다. 예를 들면, 상기 장치 데이터베이스에 동작 중인 전등이 1개 있고 전등이 켜거나 끄는 액션을 제공하는 경우, 전자 장치(100)는 해당 전등을 사용자 발화 명령에 대응하는 전등으로 결정할 수 있다. 전자 장치(100)는 해당 전등의 현재 상태(예. 꺼짐)와 반대의 액션(예. 켜다) 또는 디폴트 액션(예. 켜다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다.
동작 520에서, 전자 장치(100)는 장치 데이터베이스를 이용하여 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 장치 데이터베이스를 이용하여 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 530으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제1 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제1 신뢰도에 기초하여 후속 발화(예. '전등을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제1 신뢰도에 대응하여, 결정된 장치 및 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다.
동작 530에서, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치가 동일한지 여부를 판단할 수 있다. 즉, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 사용자 활동 위치는 현재 사용자가 활동하는 위치를 나타낼 수 있다. 전자 장치(100)는 사용자의 장치 사용 패턴이나 다양한 사용자 장치(예. 휴대폰, 와치)로부터 획득한 위치 정보 등을 통해, 사용자 활동 위치를 획득할 수 있으나, 이에 제한되지 않는다. 전자 장치(100)는 사용자 음성을 인식 또는 획득할 때 상기 사용자 발화 위치를 함께 획득할 수 있으나, 이에 제한되지 않는다. 예를 들면, 사용자의 장치 사용 패턴을 통해 거실 조명만 켜지고 거실 TV가 동작 중으로 판단되는 경우, 전자 장치(100)는 상기 사용자 활동 위치를 거실로 획득할 수 있다. 또한, 전자 장치(100)가 사용자 음성을 거실에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 거실로 획득할 수 있다. 전자 장치(100)가 사용자 음성을 침실에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 침실로 획득할 수 있다. 사용자 활동 위치 및 사용자 발화 위치가 동일한 경우 (예. 사용자 발화 위치: 거실, 사용자 활동 위치: 거실) 동작 540으로 이동할 수 있고, 동일하지 않은 경우(예. 사용자 발화 위치: 침실, 사용자 활동 위치: 거실) 동작 560으로 이동할 수 있다.
동작 540에서, 전자 장치(100)는 사용자 활동 위치(또는 동일한 사용자 발화 위치)를 상기 사용자 발화 명령에 대응하는 공간(예. 거실)으로 판단할 수 있다.
동작 550에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 거실)에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)는 각각의 장치에 대응하는 공간 정보를 포함하는 장치 데이터베이스를 이용하여 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 예를 들면, 장치 데이터베이스를 통해 거실에서 동작 중인 전등이 1개가 있다는 것을 식별할 수 있는 경우, 전자 장치(100)는 해당 전등을 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)는 해당 전등의 현재 상태(예. 꺼짐)와 반대의 액션(예. 켜다) 또는 디폴트 액션(예. 켜다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 560으로 이동할 수 있다.
전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제2 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제2 신뢰도에 기초하여 후속 발화(예. '거실 전등을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제2 신뢰도에 대응하여, 결정된 장치, 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 상기 결정된 장치(예. 거실 전등)는 동작 540에서 판단된, 공간에 대한 지정어(예. 거실)를 추가할 수 있다.
동작 560에서, 전자 장치(100)는 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 예를 들어, 전자 장치(100)는 동작 530에서 고려된 '거실' 및 '침실' 공간 각각에 대해, 장치 사용 패턴 데이터베이스를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 거실 전등 사용률, 55%), (저녁 시간 상황, 침실 전등 사용률, 45%)와 같은 장치 단독 사용 패턴 및 (거실 TV가 영화 모드로 켜진 상황, 거실 전등 끔)과 같은 장치 복합 사용 패턴을 포함하는 경우, 전자 장치(100)는 사용률만으로는 소정 신뢰도 이상이 아니므로 장치를 결정할 수 없으나, 장치 복합 사용 패턴인 '거실 TV 켜진 상황'을 추가로 고려함으로써 소정 신뢰도 이상으로 '거실 전등'을 상기 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)는 거실 전등의 현재 상태(예. 켜짐)와 반대의 액션(예. 끄다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다.
다른 예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 거실 전등 사용률, 55%), (저녁 시간 상황, 침실 전등 사용률, 45%)에 대응하는 장치 단독 사용 패턴을 포함하고, (거실 TV가 영화 모드로 켜진 상황, 거실 전등 끔)과 같은 장치 복합 사용 패턴을 포함하지 않는 경우, 전자 장치(100)는 사용률이 소정 신뢰도 이상인 장치를 특정할 수 없으므로, 사용자 발화 명령에 대응하는 장치 및 액션을 결정할 수 없다.
동작 570에서, 전자 장치(100)는 상기 장치 사용 패턴 데이터베이스를 이용하여 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 580으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '영화감상을 위해 5초 뒤 거실 전등을 끕니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '영화감상을 위해'), 실행 지연 시간(예. 5초), 결정된 장치(예. 거실 전등), 결정된 액션(예. 끕니다)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 거실 전등)는 동작 560에서 판단된 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 580에서, 전자 장치(100)는 외부 환경 정보에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도(또는 일조량) 중 적어도 하나의 정보를 포함할 수 있다. 전자 장치(100)는 동작 530에서 고려된 공간 각각에 대해, 외부 환경 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
예를 들어, 전자 장치(100)는 사용자 발화 명령에 포함된 전등에 대해서 공간별 조도 및 전등의 상태를 조합하여 분석할 수 있다. 예를 들어, 공간별 조도가 거실 조도 소정값 이상, 침실 조도 소정값 이상이고, 전등의 상태가 거실 전등 켜짐, 침실 전등 꺼짐인 경우, 거실 공간을 사용자 발화 명령에 대응하는 공간으로 판단할 수 있다. 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 거실)에서 하나의 장치('전등')를 결정할 수 있다. 또한, 전자 장치(100)는 거실 조도 및 거실 전등의 현재 상태(예. 켜짐) 중 적어도 하나에 기초하여, 사용자 발화 명령에 대응하는 액션을 '끄다' 액션으로 결정할 수 있다. 다른 예를 들어, 공간별 조도가 거실 조도 소정값 이상, 침실 조도 소정값 이상이고, 전등의 상태가 거실 전등 꺼짐, 침실 전등 꺼짐인 경우, 전자 장치(100)는 사용자 발화 명령에 대응하는 공간을 판단할 수 없고 하나의 장치를 결정할 수 없다.
동작 590에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '햇빛이 밝은 거실 전등을 5초 뒤 끕니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '햇빛이 밝은'), 실행 지연 시간(예. 5초), 결정된 장치(예. 거실 전등), 결정된 액션(예. 끕니다)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 거실 전등)는 동작 580에서 판단된 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 590에서 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제4 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제4 신뢰도에 기초하여 후속 발화(예. '거실 전등과 침실 전등 중 어떤 전등을 켤까요?')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제4 신뢰도에 대응하여, 동작 530에서 고려된 공간 각각의 적어도 하나의 후보 장치(예. 거실 전등, 침실 전등), 상기 적어도 하나의 후보 장치의 현재 상태와 반대 상태로 제어하기 위한 액션(예. 켭니다) 또는 디폴트 액션(예. 켭니다)을 포함하는 선택 질문에 대응하는 후속 발화를 생성함으로써, 사용자가 장치 및 액션을 선택하도록 할 수 있다.
도 6은 본 개시의 일 실시예에 따른 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우, 전자 장치의 발화 제공 방법의 세부 흐름도를 도시한다.
도 6의 동작들을 수행하는 전자 장치는 도 1의 전자 장치(100) 및 도 2의 지능형 어시스턴트(200)에 상응하는 전자 장치일 수 있다. 도 6에 설명되는 전자 장치의 동작에 있어서, 도 1, 도 2 및 도 3에서 설명된 부분과 중복되는 부분은 생략될 수 있다. 도 6에 도시되는 동작들의 일부가 생략될 수 있으며, 도 6에 도시되지 않은 동작이 추가될 수 있다.
일 실시예에 따르면 사용자 발화 명령이 장치 및 액션 불특정 유형인 경우는 1) 공간만 발화된 경우, 2) 장치 타입 및 액션이 발화되지 않고, 장치 제어와 연관된 단어(예. 사용자 느낌)만 발화된 경우를 포함할 수 있다. 상기 장치 제어와 연관된 단어는 2-1) 장치를 특정할 수 있는 직접적 단어(예. '거실 추워') 및 2-2) 장치를 특정할 수 없는 간접적 단어(예. '냄새나')를 포함할 수 있다. 상기 1) 경우에 해당하는 사용자 발화 명령의 예들은 '내 방', '우리 집'을 포함할 수 있다. 상기 1) 경우에 해당하는 사용자 발화 명령은 장치 및 액션을 특정하지 않았으므로, 사용자 발화 명령만으로는 전자 장치(100)가 명령을 실행할 장치/액션을 특정할 수 없다. 상기 2-1) 경우에 해당하는 사용자 발화 명령의 예들은 '거실 너무 추워'를 포함할 수 있다. 상기 2-2) 경우에 해당하는 사용자 발화 명령의 예들은 '여기 너무 냄새나'를 포함할 수 있다. 전자 장치(100)는 상기 2-1) 경우에 해당하는 사용자 발화 명령으로 '거실 에어컨' 장치를 특정할 수 있으나, 상기 2-2) 경우에 해당하는 사용자 발화 명령만으로는 '냄새'와 연관된 어떤 장치(예, 주방 후드 및 에어컨 필터 등)를 특정하는 것인지 알 수 없으므로, 장치를 특정할 수 없다.
동작 610에서, 전자 장치(100)(또는 지능형 어시스턴트(200), 이하 동일)는 장치 데이터베이스를 이용하여 사용자 발화 명령(예. '여기 너무 냄새나')의 컨텍스트를 분석할 수 있다. 상기 장치 데이터베이스는 적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치 및 각각의 장치를 제어하는 적어도 하나의 액션을 포함할 수 있다. 상기 장치 데이터베이스는 각각의 장치에 대해, 각각의 장치가 위치한 공간 정보를 더 포함할 수 있다. 상기 장치 데이터베이스는 상기 적어도 하나의 액션 중 디폴트 액션을 더 포함할 수 있다. 예를 들면, 상기 장치 데이터베이스가 (냄새, 거실 공기청정기 / 주방 후드), (여기, 사용자 발화 위치)에 대응하는 레코드를 포함하고 사용자의 현재 발화 위치가 거실인 경우, 전자 장치(100)는 거실에 있는 공기청정기를 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)는 공기청정기의 현재 상태(예. 꺼짐)와 반대 상태로 제어하는 액션(예. 켜다) 또는 디폴트 액션(예. 켜다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다. 다른 예를 들면, 장치 데이터베이스가 (냄새, 공기청정기 / 후드)에 대응하는 레코드 만을 포함하는 경우, 전자 장치(100)는 사용자 발화 명령에 대응하는 장치 및 액션을 결정할 수 없다.
동작 620에서, 전자 장치(100)는 장치 데이터베이스를 이용하여 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 장치 데이터베이스를 이용하여 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 630으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제1 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제1 신뢰도에 기초하여 후속 발화(예. '공기청정기를 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제1 신뢰도에 대응하여, 결정된 장치 및 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다.
동작 630에서, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치가 동일한지 여부를 판단할 수 있다. 즉, 전자 장치(100)는 사용자 활동 위치 및 사용자 발화 위치에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 사용자 활동 위치는 현재 사용자가 활동하는 위치를 나타낼 수 있다. 전자 장치(100)는 사용자의 장치 사용 패턴이나 다양한 사용자 장치(예. 휴대폰, 와치)로부터 획득한 위치 정보 등을 통해, 사용자 활동 위치를 획득할 수 있으나, 이에 제한되지 않는다. 전자 장치(100)는 사용자 음성을 인식 또는 획득할 때 상기 사용자 발화 위치를 함께 획득할 수 있으나, 이에 제한되지 않는다. 예를 들면, 사용자의 장치 사용 패턴을 통해 주방 조명이 켜지고 오븐이 동작 중으로 판단되는 경우, 전자 장치(100)는 상기 사용자 활동 위치를 주방으로 획득할 수 있다. 또한, 전자 장치(100)가 사용자 음성을 주방에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 주방으로 획득할 수 있다. 다른 예를 들면, 사용자의 장치 사용 패턴을 통해 주방 조명이 켜지고 오븐이 동작 중이고, 거실 조명이 켜지고 TV가 동작 중으로 판단되는 경우, 전자 장치(100)는 상기 사용자 활동 위치를 주방 및 거실로 획득할 수 있다. 전자 장치(100)가 사용자 음성을 침실에 위치한 장치로부터 획득한 경우, 전자 장치(100)는 상기 사용자 발화 위치를 침실로 획득할 수 있다. 사용자 활동 위치 및 사용자 발화 위치가 동일한 경우 (예. 사용자 발화 위치: 주방, 사용자 활동 위치: 주방) 동작 640으로 이동할 수 있고, 동일하지 않은 경우(예. 사용자 발화 위치: 침실, 사용자 활동 위치: 주방 및/또는 거실) 동작 660으로 이동할 수 있다.
동작 640에서, 전자 장치(100)는 사용자 활동 위치(또는 동일한 사용자 발화 위치)를 상기 사용자 발화 명령에 대응하는 공간(예. 주방)으로 판단할 수 있다.
동작 650에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 주방)에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)는 각각의 장치에 대응하는 공간 정보를 포함하는 장치 데이터베이스를 이용하여 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치를 결정할 수 있는지 여부를 판단할 수 있다. 예를 들면, 장치 데이터베이스를 통해 냄새와 연관된 장치들 중, 주방에서 동작 중인 장치가 후드 1개가 있다는 것을 식별할 수 있는 경우, 전자 장치(100)는 주방 후드를 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)는 주방 후드의 현재 상태(예. 꺼짐)와 반대의 액션(예. 켜다) 또는 디폴트 액션(예. 켜다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다. 전자 장치(100)는 결정된 액션의 디폴트 모드(예. 터보 모드)를 세부 액션으로 결정할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 660으로 이동할 수 있다.
전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제2 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제2 신뢰도에 기초하여 후속 발화(예. '주방 후드를 터보 모드로 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제2 신뢰도에 대응하여, 결정된 장치 및 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 상기 결정된 장치(예. 주방 후드)는 동작 640에서 판단된, 공간에 대한 지정어(예. 주방)를 포함할 수 있다.
동작 660에서, 전자 장치(100)는 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 예를 들어, 전자 장치(100)는 동작 630에서 고려된 '주방', '거실', '침실' 공간 각각에 대해, 장치 사용 패턴 데이터베이스를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 주방 후드 사용률, 40%), (저녁 시간 상황, 공기 청정기 사용률, 30%), (저녁 시간 상황, 에어컨 청소모드 사용률, 30%)와 같은 장치 단독 사용 패턴 및 (인덕션 또는 오븐이 켜진 상황, 주방 후드 켬)과 같은 장치 복합 사용 패턴을 포함하는 경우, 전자 장치(100)는 사용률만으로는 소정 신뢰도 이상이 아니므로 장치를 결정할 수 없으나, 장치 복합 사용 패턴인 '인덕션 또는 오븐이 켜진 상황'을 추가로 고려함으로써 소정 신뢰도 이상으로 '주방 후드'를 상기 사용자 발화 명령에 대응하는 장치로 결정할 수 있다. 전자 장치(100)는 주방 후드의 현재 상태(예. 꺼짐)와 반대의 액션(예. 켜다) 또는 디폴트 액션(예. 켜다)을 사용자 발화 명령에 대응하는 액션으로 결정할 수 있다.
다른 예를 들어, 장치 사용 패턴 데이터베이스가 (저녁 시간 상황, 주방 후드 사용률, 40%), (저녁 시간 상황, 공기 청정기 사용률, 30%), (저녁 시간 상황, 에어컨 청소모드 사용률, 30%)와 같은 장치 단독 사용 패턴을 포함하고, (인덕션 또는 오븐이 켜진 상황, 주방 후드 켬)과 같은 장치 복합 사용 패턴을 포함하지 않는 경우, 전자 장치(100)는 사용률이 소정 신뢰도 이상인 장치를 특정할 수 없으므로, 사용자 발화 명령에 대응하는 장치 및 액션을 결정할 수 없다.
동작 670에서, 전자 장치(100)는 상기 장치 사용 패턴 데이터베이스를 이용하여 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 동작 680으로 이동할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '요리를 시작하셨군요. 5초 뒤 주방 후드를 터보 모드로 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '요리를 시작하셨군요'), 실행 지연 시간(예. 5초), 결정된 장치(예. 주방 후드), 결정된 액션(예. 터보 모드로 켬)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 주방 후드)는 동작 630에서 판단된 공간에 대한 지정어(예. 주방)를 포함할 수 있다.
동작 680에서, 전자 장치(100)는 외부 환경 정보에 기초하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도(또는 일조량) 중 적어도 하나의 정보를 포함할 수 있다. 전자 장치(100)는 동작 630에서 고려된 공간 각각에 대해, 외부 환경 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 수 있다.
예를 들어, 전자 장치(100)는 동작 610에서 고려된 사용자 발화 명령(예. '여기 너무 냄새나')에 대응되는 적어도 하나의 장치에 대해서, 공간별 공기질 및 장치의 상태를 조합하여 분석할 수 있다. 예를 들어, 공간별 공기질이 거실 공기질 소정값 미만, 주방 공기질 소정값 이상이고, 장치의 상태가 거실 공기 청정기 꺼짐, 거실 에어컨 마지막 청소 일주일 미만, 주방 후드 꺼짐인 경우, 거실 공간을 사용자 발화 명령에 대응하는 공간으로 판단할 수 있다. 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간(예. 거실)에서 하나의 장치(예. 공기 청정기)를 결정할 수 있다. 또한, 전자 장치(100)는 거실의 공기질, 거실 공기 청정기의 현재 상태(예. 꺼짐) 및 거실 공기 청정기의 디폴트 액션(예. 켜짐) 중 적어도 하나에 기초하여, 사용자 발화 명령에 대응하는 액션을 '켜는' 액션으로 결정할 수 있다. 다른 예를 들어, 공간별 공기질이 모두 소정값 이상인 경우, 전자 장치(100)는 사용자 발화 명령에 대응하는 공간을 판단할 수 없고 하나의 장치를 결정할 수 없다.
동작 690에서, 전자 장치(100)는 상기 사용자 발화 명령에 대응하는 공간에서 하나의 장치 및 하나의 액션을 결정할 수 있는지 여부를 판단할 수 있다. 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 있는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제3 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '거실의 공기질이 좋지 않아요. 5초 뒤 거실 공기청정기를 강풍으로 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '거실의 공기질이 좋지 않아요'), 실행 지연 시간(예. 5초), 결정된 장치(예. 거실 공기청정기), 결정된 액션(예. 강풍으로 켭니다)을 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치(예. 거실 공기청정기)는 동작 680에서 판단된 공간에 대한 지정어(예. 거실)를 포함할 수 있다.
동작 690에서 전자 장치(100)가 사용자 발화 명령에 대응하는 하나의 장치 및 하나의 액션을 결정할 수 없는 경우, 전자 장치(100)는 후속 발화에 대응하는 신뢰도를 제4 신뢰도로 결정할 수 있다. 전자 장치(100)는 상기 제4 신뢰도에 기초하여 후속 발화(예. '거실 공기청정기와 주방 후드 중 어떤 것을 켤까요?')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제4 신뢰도에 대응하여, 동작 630에서 고려된 공간 각각의 적어도 하나의 후보 장치(예. 거실 공기청정기, 주방 후드), 상기 적어도 하나의 후보 장치의 현재 상태와 반대 상태로 제어하기 위한 액션(예. 켭니다) 또는 디폴트 액션(예. 켭니다)을 포함하는 선택 질문에 대응하는 후속 발화를 생성함으로써, 사용자가 장치 및 액션을 선택하도록 할 수 있다.
도 7은 본 개시의 일 실시예에 따른, 발화 제안에 대한 복수의 신뢰도 및 각각의 신뢰도에 기초하여 생성된 후속 발화의 예들을 도시한다.
도 7을 참조하면, 발화 제안에 대한 복수의 신뢰도는 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도를 포함할 수 있으나, 이에 제한되지 않는다. 상기 신뢰도는 전자 장치(100)에 의한 발화 제안의 정확도(또는 판단 정확도)를 나타낼 수 있다.
상기 제1 신뢰도는 추가 정보로서 장치 데이터베이스를 이용하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되는 경우에 대응하는 신뢰도를 나타낸다.
일 실시예에 따르면, 전자 장치(100)는 상기 제1 신뢰도에 기초하여 후속 발화(예. '공기청정기를 켭니다')를 생성할 수 있다. 전자 장치(100)는 상기 제1 신뢰도에 대응하여, 결정된 장치 및 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 또는, 전자 장치(100)는 상기 제1 신뢰도에 대응하여, 결정된 장치 및 사용자 발화 명령에 포함된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 전자 장치(100)는 결정된 장치 및 결정된 액션(또는 사용자 발화 명령에 포함된 액션)을 각각 식별할 수 있는 정보를 포함하는 명령을 즉시 생성하고, 상기 명령을 상기 결정된 장치가 즉시 실행하도록 제어할 수 있다. 전자 장치(100)는 통신부를 통해 상기 명령을 상기 결정된 장치에게 송신함으로써 상기 명령의 실행을 제어할 수 있으나, 이에 제한되지 않는다.
상기 제2 신뢰도는 발화 제안에 대한 신뢰도가 상기 제1 신뢰도로 결정되지 않고, 추가 정보로서 사용자 활동 위치 및 사용자 발화 위치를 이용하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되는 경우에 대응하는 신뢰도를 나타낸다.
일 실시예에 따르면, 전자 장치(100)는 상기 제2 신뢰도에 기초하여 후속 발화(예. '주방 후드를 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제2 신뢰도에 대응하여, 결정된 장치 및 결정된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 또는, 전자 장치(100)는 상기 제2 신뢰도에 대응하여, 결정된 장치 및 사용자 발화 명령에 포함된 액션을 포함하는 후속 발화를 확신있는 어조로 생성할 수 있다. 상기 결정된 장치(예. 주방 후드)는 사용자 활동 위치(또는 동일한 사용자 발화 위치)에 기초하여 판단된 공간에 대한 지정어(예. 주방)를 포함할 수 있다. 전자 장치(100)는 결정된 장치 및 결정된 액션(또는 사용자 발화 명령에 포함된 액션)을 각각 식별할 수 있는 정보를 포함하는 명령을 즉시 생성하고, 상기 명령을 상기 결정된 장치가 즉시 실행하도록 제어할 수 있다. 전자 장치(100)는 통신부를 통해 상기 명령을 상기 결정된 장치에게 송신함으로써 상기 명령의 실행을 제어할 수 있으나, 이에 제한되지 않는다.
상기 제3 신뢰도는 발화 제안에 대한 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고, 추가 정보로서 장치 사용 패턴 데이터베이스 또는 외부 환경 정보를 이용하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되는 경우에 대응하는 신뢰도를 나타낸다.
일 실시예에 따르면, 전자 장치(100)는 상기 제3 신뢰도에 기초하여 후속 발화(예. '요리를 시작하셨군요. 5초 뒤 주방 후드를 터보 모드로 켭니다', '5초 뒤 이 시간 주로 사용하는 침실 에어컨을 켭니다')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제3 신뢰도에 대응하여, 결정 이유(예. '요리를 시작하셨군요', '이 시간 주로 사용하는'), 실행 지연 시간(예. 5초), 결정된 장치(예. 주방 후드, 침실 에어컨), 사용자 발화 명령에 포함된 액션(예. 켭니다) 중 적어도 하나를 포함하는 후속 발화를 조심스러운 어조로 생성할 수 있다. 상기 실행 지연 시간은 사용자가 실행을 취소하거나, 추가 발화를 할 수 있는 시간을 주기 위한 것으로서, 제한되지 않는 소정값으로 사전에 설정될 수 있음은 당업자에게 이해될 것이다. 상기 결정된 장치는 장치 사용 패턴 데이터베이스 또는 외부 환경 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석할 때 판단된 공간에 대한 지정어(예. 주방, 침실)를 포함할 수 있다. 상기 결정 이유는 장치 사용 패턴 데이터베이스 또는 외부 환경 정보에 기초하여 소정 신뢰도 이상인 장치를 특정한 이유를 포함할 수 있다. 전자 장치(100)는 결정된 장치 및 결정된 액션(또는 사용자 발화 명령에 포함된 액션)을 각각 식별할 수 있는 정보를 포함하는 명령을 상기 실행 지연 시간에 기초하여 지연 생성할 수 있다. 또는, 전자 장치(100)는 결정된 장치 및 결정된 액션(또는 사용자 발화 명령에 포함된 액션)을 각각 식별할 수 있는 정보를 포함하는 명령을 상기 결정된 장치가 상기 실행 지연 시간에 기초하여 지연 실행하도록 제어할 수 있다. 전자 장치(100)는 통신부를 통해 상기 명령을 상기 결정된 장치에게 송신함으로써 상기 명령의 실행을 제어할 수 있으나, 이에 제한되지 않는다.
상기 제4 신뢰도는 발화 제안에 대한 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고, 추가 정보를 이용하더라도 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 소정 신뢰도 이상으로 결정되지 않는 경우에 대응하는 신뢰도를 나타낸다.
일 실시예에 따르면, 전자 장치(100)는 상기 제4 신뢰도에 기초하여 후속 발화(예. '거실 공기청정기와 주방 후드 중 어떤 것을 켤까요?')를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 제4 신뢰도에 대응하여, 사용자 활동 위치 또는 사용자 발화 위치에 기초하여 고려된 공간 각각의 적어도 하나의 후보 장치(예. 거실 공기청정기, 주방 후드) 및 사용자 발화 명령에 포함된 액션(예. 켭니다)을 포함하는 선택 질문에 대응하는 후속 발화를 생성함으로써, 사용자가 장치 및 액션 중 적어도 하나를 선택하도록 할 수 있다. 상기 적어도 하나의 후보 장치는 사용자 위치(사용자 활동 위치 또는 사용자 발화 위치)에 기초하여 추정되는 적어도 하나의 공간에 대응하는 장치일 수 있다.
일 실시예에 따르면, 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 결정할 수 있는 추가 정보가 없을 경우, 전자 장치(100)는 사용자에게 사용자 발화 명령을 재요청하는 후속발화(예. '이해하기가 어려워요. 다시 말씀해주시겠어요?')를 생성할 수 있다.
도 8는 본 개시의 일 실시예에 따른 지능형 어시스턴트가 제안한 발화에 대해 사용자로부터 획득한 피드백을 반영하여 이후 후속 발화를 생성하는 방법의 흐름도를 도시한다.
도 8의 동작들을 수행하는 전자 장치는 도 1의 전자 장치(100) 및 도 2의 지능형 어시스턴트(200)에 상응하는 전자 장치일 수 있다. 도 8에 설명되는 전자 장치의 동작에 있어서, 도 1, 도 2 및 도 3에서 설명된 부분과 중복되는 부분은 생략될 수 있다. 도 8에 도시되는 동작들의 일부가 생략될 수 있으며, 도 8에 도시되지 않은 동작이 추가될 수 있다.
동작 810에서, 전자 장치(100)(또는 지능형 어시스턴트(200), 이하 동일)는 사용자 발화 명령(예. '너무 냄새나')을 획득할 수 있다. 동작 810은 동작 310에 상응할 수 있다.
동작 820에서, 전자 장치(100)는 불확실한 사용자 발화 명령에 대해 추가 정보를 이용하여 사용자 발화 명령의 컨텍스트를 분석하고, 분석된 컨텍스트에 기초하여 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하여 후속 발화(예. '거실 공기질이 좋지 않아요.', '5초 뒤 거실 공기청정기를 켭니다')를 생성할 수 있다. 동작 820은 동작 320 내지 동작 350에 상응할 수 있다. 전자 장치(100)는 생성된 후속 발화에 대해 사용자로부터 긍정 피드백(예. '좋아', '그래', 소정 시간 내의 무응답 등) 또는 부정 피드백(예. '공기 청정기 말고', '아니' 등)을 획득할 수 있다.
동작 830에서, 전자 장치(100)는 소정 신뢰도(예. 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 중 하나)에 대응하는 후속 발화에 대해 사용자로부터 긍정 피드백을 획득했는지 여부를 판단할 수 있다. 긍정 피드백을 획득한 경우 동작 870으로 이동하고, 부정 피드백을 획득한 경우 동작 840으로 이동할 수 있다.
동작 840에서, 전자 장치(100)는 사용자 활동 위치 또는 사용자 발화 위치에 기초하여 고려된 공간 각각의 적어도 하나의 후보 장치 중 동작 820에서 부정 피드백을 획득한 장치를 제외한 장치를 소정의 기준(예. 부정 피드백을 획득한 장치 다음의 차순위 신뢰도에 대응하는 장치)으로 특정하고, 사용자 발화 명령에 포함된 액션(또는 장치의 디폴트 액션/디폴트 모드)을 포함하는 제2 후속 발화(예. '에어컨을 청소모드로 켤까요?')를 생성할 수 있다. 전자 장치(100)는 생성된 후속 발화에 대해 사용자로부터 긍정 피드백(예. '좋아', '그래', 소정 시간 내의 무응답 등) 또는 부정 피드백(예. '아니')을 획득할 수 있다. 상기 특정된 장치는 복수의 후보 장치일 수도 있고, 이 경우 사용자로부터의 긍정 피드백은 특정 장치를 특정하는 피드백을 포함할 수 있다.
동작 850에서, 전자 장치(100)는 상기 제2 후속 발화에 대해 사용자로부터 긍정 피드백을 획득했는지 여부를 판단할 수 있다. 긍정 피드백을 획득한 경우 동작 870으로 이동하고, 부정 피드백을 획득한 경우 동작 860으로 이동할 수 있다.
동작 860에서, 전자 장치(100)는 사용자에게 사용자 발화 명령을 재요청하는 제3 후속 발화(예. '어떤 기기를 동작할까요?')를 생성할 수 있다.
동작 870에서, 전자 장치(100)가 동작 820 또는 동작 840에서 제안한 후속 발화들에 대해 사용자로부터 긍정 피드백을 획득하여 해당 발화 명령을 실행하는 경우, 해당 장치 사용 패턴을 장치 사용 패턴 데이터베이스에 저장할 수 있다. 따라서, 사용자로부터 긍정 피드백을 획득한 후속 발화에 대응하는 장치 사용 패턴은 데이터베이스에 반영됨으로써, 이후 전자 장치(100)에 의한 지능형 발화의 제안 정확도를 더욱 향상시킬 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치에 있어서, 적어도 하나의 명령어를 저장하는 메모리; 및 상기 메모리와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 사용자 발화 명령을 획득할 수 있다. 상기 적어도 하나의 프로세서는 상기 사용자 발화 명령의 불확실성 유형을 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석할 수 있다. 상기 적어도 하나의 프로세서는 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 중 적어도 하나를 소정의 신뢰도로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도에 기초하여 후속 발화를 생성할 수 있다.
일 실시예에 따르면, 상기 불확실성 유형은 장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 추가 정보는 장치 데이터베이스, 사용자 활동 위치, 사용자 발화 위치, 장치 사용 패턴 데이터베이스 및 외부 환경 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 장치 데이터베이스는 사용자의 집에서 동작 중인, 적어도 하나의 장치들을 식별하는 식별 정보를 포함할 수 있다.
일 실시예에 따르면, 상기 장치 데이터베이스는 각각의 장치에 대해, 각각의 장치를 제어하는 적어도 하나의 액션을 더 포함할 수 있다.
일 실시예에 따르면, 상기 장치 데이터베이스는 적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치 및 각각의 장치를 제어하는 적어도 하나의 액션을 포함할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도를 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 추가 정보로서 상기 장치 데이터베이스를 이용하는 경우, 상기 소정의 신뢰도를 상기 제1 신뢰도로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 사용자 활동 위치 및 상기 사용자 발화 위치를 이용하는 경우, 상기 소정의 신뢰도를 상기 제2 신뢰도로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 장치 사용 패턴 데이터베이스 또는 상기 외부 환경 정보를 이용하는 경우, 상기 소정의 신뢰도를 상기 제3 신뢰도로 결정할 수 있다. 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우, 상기 소정의 신뢰도를 제4 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 소정의 신뢰도에 기초하여 상기 후속 발화의 어조 및 상기 후속 발화의 내용 중 적어도 하나를 생성할 수 있다. 상기 적어도 하나의 프로세서는 상기 후속 발화의 내용은 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유, 실행 지연 시간, 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나에 기초하여 생성된 상기 후속 발화에 대한 사용자 피드백을 획득할 수 있다. 상기 적어도 하나의 프로세서는 상기 사용자 피드백이 부정 피드백인 경우, 상기 제4 신뢰도에 대응하여 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션을 포함하는 제2 후속 발화를 생성할 수 있다. 상기 적어도 하나의 프로세서는 상기 제2 후속 발화에 대한 제2 사용자 피드백을 획득할 수 있다. 상기 적어도 하나의 프로세서는 상기 제2 사용자 피드백이 부정 피드백인 경우, 사용자에게 사용자 발화 명령을 요청하는 제3 후속 발화를 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 지능형 어시스턴트에 의한 발화 제공 방법에 있어서, 사용자 발화 명령을 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 사용자 발화 명령의 불확실성 유형을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석하는 동작을 포함할 수 있다. 상기 방법은 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 불확실성 유형은 장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 소정의 신뢰도는 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나일 수 있다. 상기 제1 신뢰도는 상기 추가 정보로서 장치 데이터베이스를 이용하는 경우 결정되는 신뢰도일 수 있다. 상기 제2 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고, 상기 추가 정보로서 사용자 활동 위치 및 사용자 발화 위치를 이용하는 경우 결정되는 신뢰도일 수 있다. 상기 제3 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고, 상기 추가 정보로서 장치 사용 패턴 데이터베이스 또는 외부 환경 정보를 이용하는 경우 결정되는 신뢰도일 수 있다. 상기 제4 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우 결정되는 신뢰도일 수 있다.
일 실시예에 따르면, 상기 불확실성 유형이 장치 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보를 포함하는 상기 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 장치를 상기 제1 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 상기 불확실성 유형이 액션 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보, 각각의 장치에 대해 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션을 포함하는 상기 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 액션을 상기 제1 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 상기 불확실성 유형이 장치 및 액션 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치, 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션을 포함하는 상기 장치 데이터베이스에 기초하여, 상기 사용자 발화 명령을 수행할 장치 및 액션을 상기 제1 신뢰도로 결정할 수 있다.
일 실시예에 따르면, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 상기 사용자 활동 위치 및 상기 사용자 발화 위치가 동일한지 여부에 기초하여 상기 사용자 발화 명령에 대응하는 공간을 판단하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 사용자 발화 명령에 대응하는 공간에서, 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제2 신뢰도로 결정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 상기 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제3 신뢰도로 결정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은 상기 외부 환경 정보에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제3 신뢰도로 결정하는 동작을 포함할 수 있다. 상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도 중 적어도 하나의 정보를 포함할 수 있다.
일 실시예에 따르면, 상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작은 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도인 경우, 확신있는 어조로 상기 후속 발화를 생성하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 조심스러운 어조로 상기 후속 발화를 생성하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작은 상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유 및 실행 지연 시간 중 적어도 하나를 포함하는 후속 발화를 생성할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 디스플레이 장치, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 본 문서에서 사용되는 '및/또는'이라는 용어는, 열거되는 항목들 중 하나 이상의 항목에 의한 임의의 가능한 모든 조합들을 포괄하는 것임이 이해되어야 한다. 본 개시에서 사용되는 '포함하다,' '가지다,' '구성되다' 등의 용어는 본 개시 상에 기재된 특징, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다.
본 문서의 다양한 실시예들에서 사용된 용어 "~부" 또는 "~모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. "~부" 또는 "~모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, "~부" 또는 "~모듈"은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들에서 사용된 용어 “~할 경우”는 문맥에 따라 “~할 때”, 또는 “~할 시” 또는 “결정하는 것에 응답하여” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다. 유사하게, “~라고 결정되는 경우” 또는 “~이 검출되는 경우”는 문맥에 따라 “결정 시” 또는 “결정하는 것에 응답하여”, 또는 “검출 시” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다.
본 문서를 통해 설명된 전자 장치(100), 지능형 어시스턴트(200)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 저장 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(Read-Only Memory), RAM(Random-Access Memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 컴퓨터 프로그램은 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 명령어를 저장하는 메모리(120); 및
    상기 메모리(120)와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서(110)를 포함하고;
    상기 적어도 하나의 프로세서(110)는
    사용자 발화 명령을 획득하고,
    상기 사용자 발화 명령의 불확실성 유형을 결정하고,
    상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석하고,
    상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하고,
    상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는, 장치.
  2. 제 1항에 있어서,
    상기 불확실성 유형은
    장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함하는, 장치.
  3. 제 1항에 있어서,
    상기 추가 정보는
    장치 데이터베이스, 사용자 활동 위치, 사용자 발화 위치, 장치 사용 패턴 데이터베이스 및 외부 환경 정보 중 적어도 하나를 포함하는, 장치.
  4. 제 3항에 있어서,
    상기 장치 데이터베이스는
    사용자의 집에서 동작 중인, 적어도 하나의 장치들을 식별하는 식별 정보를 포함하는, 장치.
  5. 제 4항에 있어서,
    상기 장치 데이터베이스는
    각각의 장치에 대해, 각각의 장치를 제어하는 적어도 하나의 액션을 더 포함하는, 장치.
  6. 제 3항에 있어서,
    상기 장치 데이터베이스는
    적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치 및 각각의 장치를 제어하는 적어도 하나의 액션을 포함하는, 장치.
  7. 제 3항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 소정의 신뢰도를 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나로 결정하고;
    상기 추가 정보로서 상기 장치 데이터베이스를 이용하는 경우, 상기 소정의 신뢰도를 상기 제1 신뢰도로 결정하고;
    상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 사용자 활동 위치 및 상기 사용자 발화 위치를 이용하는 경우, 상기 소정의 신뢰도를 상기 제2 신뢰도로 결정하고;
    상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고 상기 추가 정보로서 상기 장치 사용 패턴 데이터베이스 또는 상기 외부 환경 정보를 이용하는 경우, 상기 소정의 신뢰도를 상기 제3 신뢰도로 결정하고;
    상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우, 상기 소정의 신뢰도를 제4 신뢰도로 결정하는, 장치.
  8. 제 1항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 소정의 신뢰도에 기초하여 상기 후속 발화의 어조 및 상기 후속 발화의 내용 중 적어도 하나를 생성하고;
    상기 후속 발화의 내용은 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유, 실행 지연 시간, 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션 중 적어도 하나를 포함하는, 장치.
  9. 제 7항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나에 기초하여 생성된 상기 후속 발화에 대한 사용자 피드백을 획득하고;
    상기 사용자 피드백이 부정 피드백인 경우, 상기 제4 신뢰도에 대응하여 적어도 하나의 후보 장치 및 적어도 하나의 후보 액션을 포함하는 제2 후속 발화를 생성하는, 장치.
  10. 제 9항에 있어서,
    상기 제2 후속 발화에 대한 제2 사용자 피드백을 획득하고;
    상기 제2 사용자 피드백이 부정 피드백인 경우, 사용자에게 사용자 발화 명령을 요청하는 제3 후속 발화를 생성하는, 장치.
  11. 지능형 어시스턴트에 의한 발화 제공 방법에 있어서,
    사용자 발화 명령을 획득하는 동작;
    상기 사용자 발화 명령의 불확실성 유형을 결정하는 동작;
    상기 불확실성 유형에 기초하여 추가 정보를 이용하여 상기 사용자 발화 명령의 컨텍스트를 분석하는 동작;
    상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작; 및
    상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작을 포함하는, 방법.
  12. 제 11항에 있어서,
    상기 불확실성 유형은
    장치 불특정 유형, 액션 불특정 유형, 장치 및 액션 불특정 유형 중 적어도 하나를 포함하는, 방법.
  13. 제 12항에 있어서,
    상기 소정의 신뢰도는 제1 신뢰도, 제2 신뢰도, 제3 신뢰도 및 제4 신뢰도 중 하나이고;
    상기 제1 신뢰도는 상기 추가 정보로서 장치 데이터베이스를 이용하는 경우 결정되는 신뢰도이고;
    상기 제2 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도로 결정되지 않고, 상기 추가 정보로서 사용자 활동 위치 및 사용자 발화 위치를 이용하는 경우 결정되는 신뢰도이고;
    상기 제3 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도로 결정되지 않고, 상기 추가 정보로서 장치 사용 패턴 데이터베이스 또는 외부 환경 정보를 이용하는 경우 결정되는 신뢰도이고;
    상기 제4 신뢰도는 상기 소정의 신뢰도가 상기 제1 신뢰도, 상기 제2 신뢰도 및 상기 제3 신뢰도 중 하나로 결정되지 않고 상기 추가 정보를 이용하더라도 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나가 결정되지 않는 경우 결정되는 신뢰도인, 방법
  14. 제 13항에 있어서,
    상기 불확실성 유형이 장치 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보를 포함하는 상기 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 장치를 상기 제1 신뢰도로 결정하는, 방법.
  15. 제 13항에 있어서,
    상기 불확실성 유형이 액션 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    사용자의 집에서 동작 중인 적어도 하나의 장치들을 식별하는 식별 정보, 각각의 장치에 대해 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션을 포함하는 상기 장치 데이터베이스에 기초하여 상기 사용자 발화 명령을 수행할 액션을 상기 제1 신뢰도로 결정하는, 방법.
  16. 제 13항에 있어서,
    상기 불확실성 유형이 장치 및 액션 불특정 유형인 경우, 상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    적어도 하나의 연관 단어 각각에 대해, 사용자의 집에서 동작 중인 적어도 하나의 장치, 각각의 장치를 제어하는 적어도 하나의 액션 및 디폴트 액션을 포함하는 상기 장치 데이터베이스에 기초하여, 상기 사용자 발화 명령을 수행할 장치 및 액션을 상기 제1 신뢰도로 결정하는, 방법.
  17. 제 13항에 있어서,
    상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    상기 사용자 활동 위치 및 상기 사용자 발화 위치가 동일한지 여부에 기초하여 상기 사용자 발화 명령에 대응하는 공간을 판단하는 동작; 및
    상기 사용자 발화 명령에 대응하는 공간에서, 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제2 신뢰도로 결정하는 동작을 포함하는, 방법.
  18. 제 13항에 있어서,
    상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    상기 장치 사용 패턴 데이터베이스에 포함된 장치 단독 사용 패턴 및 장치 복합 사용 패턴 중 적어도 하나에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제3 신뢰도로 결정하는 동작을 포함하는, 방법.
  19. 제 13항에 있어서,
    상기 컨텍스트에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 소정의 신뢰도로 결정하는 동작은
    상기 외부 환경 정보에 기초하여 상기 사용자 발화 명령을 수행할 장치 및 액션 중 적어도 하나를 상기 제3 신뢰도로 결정하는 동작을 포함하고;
    상기 외부 환경 정보는 시간, 날씨, 교통 상태, 공간별 공기질, 공간별 기온, 공간별 조도 중 적어도 하나의 정보를 포함하는, 방법.
  20. 제 13항에 있어서,
    상기 소정의 신뢰도에 기초하여 후속 발화를 생성하는 동작은
    상기 소정의 신뢰도가 상기 제1 신뢰도 또는 상기 제2 신뢰도인 경우, 확신있는 어조로 상기 후속 발화를 생성하는 동작;
    상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 조심스러운 어조로 상기 후속 발화를 생성하는 동작; 및
    상기 소정의 신뢰도가 상기 제3 신뢰도인 경우, 결정된 장치, 결정된 액션, 장치 또는 액션의 결정 이유 및 실행 지연 시간 중 적어도 하나를 포함하는 후속 발화를 생성하는 동작 중 적어도 하나를 포함하는, 방법.
KR1020220133106A 2022-10-17 2022-10-17 지능형 어시스턴트의 발화 제공 방법 및 그 장치 KR20240053240A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220133106A KR20240053240A (ko) 2022-10-17 2022-10-17 지능형 어시스턴트의 발화 제공 방법 및 그 장치
PCT/KR2023/010719 WO2024085371A1 (ko) 2022-10-17 2023-07-25 지능형 어시스턴트의 발화 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220133106A KR20240053240A (ko) 2022-10-17 2022-10-17 지능형 어시스턴트의 발화 제공 방법 및 그 장치

Publications (1)

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

Family

ID=90737659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220133106A KR20240053240A (ko) 2022-10-17 2022-10-17 지능형 어시스턴트의 발화 제공 방법 및 그 장치

Country Status (2)

Country Link
KR (1) KR20240053240A (ko)
WO (1) WO2024085371A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
WO2016051519A1 (ja) * 2014-09-30 2016-04-07 三菱電機株式会社 音声認識システム
US10764424B2 (en) * 2014-12-05 2020-09-01 Microsoft Technology Licensing, Llc Intelligent digital assistant alarm system for application collaboration with notification presentation
US10490187B2 (en) * 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
KR20180118470A (ko) * 2017-04-21 2018-10-31 엘지전자 주식회사 음성 인식 장치 및 음성 인식 방법

Also Published As

Publication number Publication date
WO2024085371A1 (ko) 2024-04-25

Similar Documents

Publication Publication Date Title
US20220317641A1 (en) Device control method, conflict processing method, corresponding apparatus and electronic device
US11422772B1 (en) Creating scenes from voice-controllable devices
CN106297781B (zh) 控制方法和控制器
CN105700389B (zh) 一种智能家庭自然语言控制方法
US20200342869A1 (en) Electronic device and method for controlling voice signal
US11031008B2 (en) Terminal device and method for controlling thereof
WO2016180163A1 (zh) 一种家居控制调节的方法及系统
US20230385319A1 (en) Profile disambiguation
US11721343B2 (en) Hub device, multi-device system including the hub device and plurality of devices, and method of operating the same
US11056114B2 (en) Voice response interfacing with multiple smart devices of different types
CN111367188A (zh) 智能家居的控制方法、装置、电子设备和计算机存储介质
CN113223514A (zh) 基于IoT环境中的非语音声音的语音命令解析方法及装置
KR102517219B1 (ko) 전자장치 및 그 제어방법
CN113205807B (zh) 一种语音设备的控制方法、装置、存储介质及语音设备
KR20080006981A (ko) 지능형 홈 서비스 제공 시스템 및 방법
US11930230B2 (en) Hub device, multi-device system including the hub device and plurality of devices, and operating method of the hub device and multi-device system
KR20240053240A (ko) 지능형 어시스턴트의 발화 제공 방법 및 그 장치
JP2019190785A (ja) 環境再現プログラムおよび環境再現システム
US11818820B2 (en) Adapting a lighting control interface based on an analysis of conversational input
US20220157303A1 (en) Information processing device and information processing method
US10990614B1 (en) Endpoint device relationships in processing user inputs
US20210319791A1 (en) Electronic apparatus and controlling method thereof
KR102636908B1 (ko) 비언어적 인식에 기초하여 소셜 로봇과 사용자 간의 인터랙션을 위한 방법 및 시스템
CN114124597B (zh) 一种物联网设备的控制方法、设备及系统
KR102487078B1 (ko) 허브 디바이스, 허브 디바이스 및 복수의 디바이스를 포함하는 멀티 디바이스 시스템 및 그 동작 방법