KR20180058476A - 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버 - Google Patents

다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버 Download PDF

Info

Publication number
KR20180058476A
KR20180058476A KR1020160157498A KR20160157498A KR20180058476A KR 20180058476 A KR20180058476 A KR 20180058476A KR 1020160157498 A KR1020160157498 A KR 1020160157498A KR 20160157498 A KR20160157498 A KR 20160157498A KR 20180058476 A KR20180058476 A KR 20180058476A
Authority
KR
South Korea
Prior art keywords
user input
domain
information
electronic device
user
Prior art date
Application number
KR1020160157498A
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 KR1020160157498A priority Critical patent/KR20180058476A/ko
Priority to PCT/KR2017/013134 priority patent/WO2018097549A1/en
Priority to EP17874038.7A priority patent/EP3519925A4/en
Priority to US15/817,651 priority patent/US20180143802A1/en
Publication of KR20180058476A publication Critical patent/KR20180058476A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

전자 장치가 개시된다. 상기 전자 장치는 메모리, 적어도 하나의 프로세서를 포함하고, 프로세서는 제1 사용자 입력을 획득하고, 상기 제1 사용자 입력 및 상기 제1 사용자 입력에 매칭되는 제1 도메인에 기반하여 제1 정보를 결정하며, 상기 제1 사용자 입력에 후속하는 제2 사용자 입력을 획득하고, 상기 제2 사용자 입력에 응답하여, 상기 제2 사용자 입력 및 상기 제1 도메인에 기반하여 제2 정보를 결정하고 상기 제2 사용자 입력, 및 상기 제1 도메인과 구분되는 제2 도메인에 기반하여 제3 정보를 결정하도록 설정될 수 있다.
이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버 {A METHOD FOR PROCESSING VARIOUS INPUT, AN ELECTRONIC DEVICE AND A SERVER THEREOF}
본 문서에서 개시되는 실시 예들은, 전자 장치 또는 서버에 탑재된 다양한 입력 인식 모델, 예를 들어 음성 인식 모델을 이용하여 사용자의 입력을 인식하고 명령을 수행하는 기술과 관련된다.
키보드나 마우스를 이용한 전통적인 입력 방식에 부가하여, 최근의 전자 장치들은 음성 입력과 같은 다양한 입력 방식을 지원할 수 있다. 예를 들어, 스마트폰이나 태블릿과 같은 전자 장치들은 음성 인식 서비스가 실행된 상태에서 입력되는 사용자의 음성을 인식하고, 음성 입력에 대응되는 동작을 실행하거나 검색 결과를 제공할 수 있다.
근래의 음성인식서비스들은 자연어 처리기술을 기반으로 구성될 수 있다. 자연어 처리기술은 사용자의 음성 발화의 의도를 파악하고, 이 의도에 맞는 결과를 사용자에게 제공하는 기술이다. 이때, 사용자 의도를 파악하기 위해 입력된 음성만으로 사용자 의도를 파악하기 어려운 경우 추가적인 입력이나 정보를 활용할 수 있다.
전자 장치는 사용자의 음성 발화를 통해 사용자 의도를 파악하기 위한 정보가 충분하지 않은 경우, 이전 대화 이력을 기반으로 사용자 의도를 파악하고, 적절한 결과를 제공할 수 있다. 일 실시 예에 따라, 오늘 날씨라는 주제에 대해 발화한 후, 사용자가 지역이름이나 날짜만 발화하더라도 날씨 검색의 의도가 있음을 인식하여 적절한 결과를 도출할 수 있다. 예를 들어, 사용자가 전자 장치의 마이크를 통해 ““오늘 날씨 어때””와 같은 질문을 제공한 경우, 전자 장치는 ““현재 위치의 오늘 날씨는 맑습니다””라는 답변을 제공할 수 있다. 이에 후속하여 ““부산은””이라고 발화한 경우 전자 장치는 직전 발화의 주제가 ““오늘 날씨””임을 참조하여 ““오늘 부산은 흐리고 비가 올 예정입니다””와 같은 답변을 제공할 수 있다. 이전 대화 이력들로부터 일정 범위(예: 시간, 카테고리 등) 안에서 입력 요소를 변경하면 이전 대화 이력들을 기반으로 자연어 처리를 수행하여 적절한 결과가 제공될 수 있지만, 이전 대화 이력과 매칭되지 않는 질문에 대해서는 적절한 결과가 제공되지 않을 수 있다. 이전 대화 이력(예: 발화 직전의 대화 이력)을 참조하여도 현재 발화에 매칭될 수 있는 의도를 찾지 못한 경우, 또는 직전 대화 이력이나 최선의 대화 이력이 사용자 의도와 어긋나는 경우에는 사용자로부터 추가 정보 입력을 받아야 하는 번거로움이 있다.
예를 들어, 사용자가 전자 장치의 마이크를 통해 ““오늘 날씨 어때””와 같은 질문에 대한 날씨 결과를 얻은 이후, 사용자가 ““부산 맛집 알려줘””와 같은 질문에 대한 부산 맛집에 대한 검색 결과를 화면을 통해 제공받을 수 있다. 이후에, 사용자가 ““에버랜드는””이라고 발화한다면, 전자 장치는 직전 대화를 참고하여 에버랜드의 맛집에 대한 검색 결과를 제공하거나 ““에버랜드의 무엇에 관해 알려드릴까요”” 와 같은 추가 질문이 제공될 수 있다.
사용자가 에버랜드의 날씨를 검색하고자 하는 경우에는 ““에버랜드 오늘 날씨는 어때”” 라는 전체 질문을 발화하거나, 앞선 추가 질문에 대한 응답을 발화해야 할 수 있다.
본 문서에 개시되는 다양한 실시 예들은 하나 이상의 사용자 입력(예: 음성 인식 및/또는 제스처)에 기반하여 전술한 여러 상황에서 발생할 수 있는 비효율을 개선하고 사용자가 원하는 정보를 쉽고 빠르게 제공하는 입력 처리 방법을 제공할 수 있다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 메모리, 및 적어도 하나의 프로세서를 포함할 수 있다. 여기서 상기 적어도 하나의 프로세서는, 제1 사용자 입력을 획득하고, 상기 제1 사용자 입력 및 상기 제1 사용자 입력에 매칭되는 제1 도메인에 기반하여 제1 정보를 결정하며, 상기 제1 사용자 입력에 후속하는 제2 사용자 입력을 획득하고, 상기 제2 사용자 입력에 응답하여, 상기 제2 사용자 입력 및 상기 제1 도메인에 기반하여 제2 정보를 결정하고, 상기 제2 사용자 입력, 및 상기 제1 도메인과 구분되는 제2 도메인에 기반하여 제3 정보를 결정할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 서버는, 저장소(storage), 전자 장치로부터 복수의 사용자 입력을 수신하는 통신 회로, 및 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 상기 복수의 사용자 입력 중 제1 사용자 입력의 제1 도메인과의 매칭 여부를 결정하고, 상기 제1 사용자 입력의 상기 제1 도메인과 구분되는 제2 도메인과의 매칭 여부를 결정하며, 상기 제1도메인 및 상기 제2 도메인과의 매칭 결정에 따라, 상기 제1도메인에 관한 정보 및 상기 제2 도메인에 관한 정보를 상기 전자 장치로 전송할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 방법은, 제1 사용자 입력을 획득하는 동작, 상기 제1 사용자 입력에 응답하여, 디스플레이 상에 제1 정보를 출력하는 동작, 상기 제1 사용자 입력에 후속하는 제2 사용자 입력을 획득하는 동작 및 상기 제2 사용자 입력에 응답하여, 상기 디스플레이 상에 제2 정보 및 제3 정보를 출력하는 동작을 포함할 수 있다.
본문서에 개시되는 실시 예들에 따르면, 본 하나 이상의 사용자 입력(예: 음성 인식 및/또는 제스처)에 기반하여 입력에 대한 인식을 수행하고, 인식 결과 및 기존의 대화 이력을 활용하여 원하는 정보를 쉽고 빠르게 제공할 수 있다.
본 문서에 개시되는 다양한 실시 예들에 따르면, 사용자는 이전 인식 결과를 기반으로 원하는 내용만을 간단히 발화할 수 있어 음성 인식의 사용성이 개선될 수 있다. 이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치 및 전자 장치와 네트워크를 통해 연결되는 서버를 나타낸다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치 및 서버를 나타낸다.
도 3은 본 발명의 일부 실시 예들에 따라, 도메인, 의도 및 슬롯간의 상관관계를 나타내는 도면이다.
도 4는 본 발명의 일 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 6은 본 발명의 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
도 7은 본 발명의 또 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
도 8은 본 발명의 다른 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 9는 본 발명의 또 다른 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 10은 본 발명의 또 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
도 11은 본 발명의 또 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다
도 12는 본 발명의 또 다른 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 13은 본 발명의 또 다른 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 14는 본 발명의 또 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 장치에 디스플레이된 사용자 인터페이스를 도시한다.
도 16은 본 발명의 일 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 17은 본 발명의 일 실시 예에 따른 전자 장치의 블록도를 나타낸다.
도 18은 본 발명의 일 실시 예에 따른 프로그램 모듈의 블록도를 나타낸다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는,(1) 적어도 하나의 A를 포함,(2) 적어도 하나의 B를 포함, 또는(3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 문서의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크톱 PC(desktop PC), 랩탑 PC(laptop PC), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라, 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면 웨어러블 장치는 엑세서리 형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체 형(예: 전자 의복), 신체 부착 형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식 형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD 플레이어(Digital Video Disk player), 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 내비게이션(navigation) 장치, 위성 항법 시스템(GNSS(Global Navigation Satellite System)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치 및 전자 장치와 네트워크를 통해 연결되는 서버를 나타낸다.
도 1을 참조하면, 다양한 실시 예에서의 전자 장치(100)는 음성 입력 장치(110), 프로세서(120), 음성 인식 모듈(130), 디스플레이(140), 통신 모듈(150), 메모리(160)를 포함할 수 있다. 도 1에 도시된 전자 장치(100)의 구성은 예시적인 것이며, 본 문서에 개시되는 다양한 실시 예를 구현할 수 있는 다양한 변형이 가능하다. 이하에서는 전자 장치(100)를 기준으로 본 발명의 다양한 실시 예들을 설명한다.
전자 장치(100)는 음성 입력 장치(110)(예: 마이크)를 통하여 사용자로부터 음성발화(speech)를 획득할 수 있다. 일 실시 예에서, 전자 장치(100)는 음성 인식을 활성화시키기 위한 발화 및/또는 음성 명령에 대응하는 발화를 음성 입력 장치(110)를 통해 획득할 수 있다. 예를 들어, 음성 인식을 활성화시키기 위한 발화는 ““Hi, galaxy””와 같이 미리 설정된 키워드일 수 있다. 예를 들어, 음성 명령에 대응하는 발화는 ““오늘 날씨 어때””일 수 있다.
프로세서(120)는 음성 입력 장치(110)에 의해 획득된 음성 입력, 또는 음성 입력에 기초하여 생성된 음성 신호를 음성 음성 인식 모듈(130)과 통신 모듈(150)로 제공할 수 있다. 프로세서(120)에 의해 제공되는 음성 신호는 보다 정확한 음성 인식을 위해 전처리(pre-processing)된 신호일 수 있다.
프로세서(120)는 전자 장치(100)의 일반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(120)는 음성 입력 장치(110)를 제어하고, 음성 인식 모듈(130)을 제어하여 음성 인식 동작을 수행하고, 다른 장치(예: 서버(1000))와의 통신을 수행하기 위해 통신 모듈(150)을 제어할 수 있다. 다른 실시 예에서는, 음성 입력에 대응되는 동작을 수행하거나, 음성 입력에 대응되는 동작을 화면에 표시하기 위해 디스플레이(140)를 제어할 수 있다.
음성 인식 모듈(130)은 음성 신호에 대하여 음성 인식을 수행할 수 있다. 일 실시 예에서, 음성 인식 모듈(130)은 음성 인식 활성화 조건(예: 사용자가 음성 인식과 관련된 어플리케이션을 실행한 경우, 사용자가 특정 음성 입력(예: Hi, galaxy)을 발화한 경우, 음성 입력 장치(110)에서 특정 키워드(예: Hi, galaxy)를 인식한 경우, 특정 하드웨어 키를 인지하는 경우 등) 이 충족된 경우, 음성 인식 모듈(130)은 음성 명령을 인식할 수 있다. 다른 실시 예에서, 전자 장치(100)의 음성 인식은 항상 활성화 상태에 있을 수 있다. 프로세서(120)는 음성 인식 모듈(130)로부터 인식된 음성 신호를 수신하고, 음성 신호를 텍스트로 변환할 수 있다.
통신 모듈(150)은 프로세서(120)로부터 제공된 음성 신호를 네트워크(10)을 통해 서버(1000)로 전송할 수 있다. 상기 음성 신호에 대한 자연어 처리 결과를 서버(1000)로부터 수신할 수 있다. 일 실시 예에 따르면, 자연어 처리 결과는 자연어 이해 결과일 수 있다. 자연어 이해 결과는 특정 동작을 수행하기 위한 기본적인 정보일 수 있다. 자연어 이해 결과는 음성 신호의 분석 결과 획득되는 도메인(domain), 의도(intent) 및/또는 슬롯(slot)에 관한 정보일 수 있다. 예를 들어, 사용자 음성 입력이 ““2시간 뒤 알람 설정해줘””인 경우, ““알람””, ““알람 설정””, ““2시간 뒤””와 같은 정보일 수 있다.
다른 실시 예에 따르면, 자연어 처리 결과는 자연어 이해 결과에 기초하여 전자 장치(100)가 수행하여야 하는 서비스에 관한 정보일 수 있다. 또 다른 실시 예에 따르면, 자연어 처리 결과는 자연어 이해 결과에 기초한 서비스의 수행 결과일 수 있다.
전자 장치(100) 또는 서버(1000)는 상기 자연어 처리 결과를 상기 정보들 또는 상기 정보들 중 일부를 포함하는 하나의 집합체 형태로 관리할 수 있다.
디스플레이(140)는 사용자 입력과 상호작용하기 위하여 사용될 수 있다. 예를 들어, 음성 입력 장치(110)를 통해 사용자로부터 음성 입력이 제공되면, 음성 인식 결과가 디스플레이(140)에 표시될 수 있다. 음성 입력에 대한 서비스 실행 결과가 디스플레이(140)에 표시될 수 있다. 서비스 실행 결과는 예를 들어, 자연어 처리 결과에 따른 어플리케이션(예: 날씨 어플리케이션, 네비게이션 관련 어플리케이션 등)의 실행 결과일 수 있다.
서버(1000)는 전자 장치(100)로부터 네트워크(10)를 통해 제공되는 음성 입력에 대한 자연어 처리를 수행하기 위한 구성을 포함할 수 있다. 다양한 실시 예에 따라, 서버(1000)의 일부 구성요소는 전자 장치(100)와 대응될 수 있다. 예를 들어, 서버(1000)는 프로세서(1010), 메모리(1030), 통신 모듈(1040) 등을 포함할 수 있다. 일 실시 예에 따라, 서버(1000)는 자연어 처리부(NLP: natural language processing, 1020)와 같은 구성을 더 포함할 수 있다.
프로세서(1010)는 서버(1000)에서 자연어 처리를 수행하기 위한 기능 모듈들을 제어할 수 있다. 예를 들어, 프로세서(1010)는 자연어 처리부(1020)와 연결될 수 있다.
자연어 처리부(1020)는 전자 장치(100)로부터 수신한 음성 신호에 대하여 자연어 처리를 수행할 수 있다. 자연어 처리부(1020)는 입력된 발화 단위에 대하여, 사용자 입력에 대한 의도(intent) 및/또는 도메인(domain)을 파악할 수 있다. 자연어 처리부(1020)는 사용자 입력에 대하여 자연어 이해(Natural Language Understanding, NLU) 및 대화 관리(Dialog Management, DM) 또는 그 조합에 의해 자연어 처리 결과를 생성할 수 있다. 자연어 처리 과정을 통해 어느 하나의 결과가 아닌 가능한 다양한 매칭 결과들이 도출될 수 있다.
통신 모듈(1040)은 상기 자연어 처리부(1020)의 처리 결과로서 자연어 처리 결과를 네트워크(10)를 통해 전자 장치(100)로 전송할 수 있다.
상기 설명한 바와 같이 도 1에 도시된 전자 장치(100) 또는 서버(1000)의 구성은 다양한 변형이 가능하다. 다른 실시 예에서, 음성 인식 모듈(130)은 서버(1000)에 의해 구현될 수 있다. 또 다른 실시 예에서, 자연어 처리부(1020)는 전자 장치(100)에 의해 구현될 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치 및 서버를 나타낸다.
도 2는, 도 1과 다른 방식으로 구현되는 전자 장치를 포함하는 처리 시스템의 예시를 나타낸다. 처리 시스템은 도 1에서 설명된 전자 장치(100) 및 서버(1000)를 포함할 수 있다. 일 실시 예에서, 처리 시스템은 적어도 하나의 사용자 단말과 서로 다른 주체에 의해 운영되는 복수의 서버를 포함하는 것으로 이해될 수 있다. 본 문서에서 개시되는 음성 인식 방법은, 도 1이나 도 2, 또는 후술하는 도 16 내지 도 18의 전자 장치 외에도, 이로부터 변형 가능한 다양한 형태의 장치에 의해 수행될 수 있다.
도 2를 참조하면, 처리 시스템은 본 발명의 실시 예들을 수행하기 위해 입력 장치부(210), 입력 처리부(220), 입력 처리 모델(230), 자연어 처리부(240), 자연어 처리 모델(250), 서비스 오케스트레이션(service orchestration, 260), 어플리케이션(262), 인텔리전스(270), 대화 이력부(280), 대화 모델(282), 도메인 데이터베이스(DB: database) 관리부(284), 출력처리부(290)를 포함할 수 있다. 이러한 구성요소들은 하나 이상의 버스 혹은 네트워크를 통해 서로 통신할 수 있다. 일 실시 예에서, 도 2를 참조하여 설명되는 모든 기능은 서버 또는 클라이언트(예: 전자 장치(100))에 의해 각각 수행될 수 있다. 다른 실시 예에서 일부 기능은 서버에 의해, 다른 일부 기능은 클라이언트에 의해 구현될 수 있다.
본 발명의 다양할 실시 예에 따라, 전자 장치(100) 또는 서버(1000)는 웹 기반의 서비스를 제공하는 웹 서버 또는 서비스 제공자(이하 웹/서버(264))와 네트워크를 통해 상호작용할 수 있다.
입력 장치부(input device, 210)는 마이크, 멀티-모달(multi-modal)(예: 펜, 키보드 등), 이벤트(notification) 등을 포함할 수 있다. 입력 장치부(210)는 단말 사용자로부터 단말의 입력도구 및/또는 외부기기 등 다양한 소스로 입력들을 받을 수 있다. 예를 들어, 입력 장치부(210)는 사용자의 키보드 입력 또는 텍스트를 생성하는 기기를 이용하여 입력 받을 수 있다. 입력 장치부(210)는 사용자의 음성 입력이나, 발화 입력 시스템(speech input system)으로부터의 신호를 입력 받을 수 있다. 또한 입력 장치부(210)는 그래픽 사용자 인터페이스(GUI: graphic user interface)를 통해서 사용자 입력(예: 아이콘과 같은 GUI 오브젝트 클릭, 선택)을 받을 수 있다.
일 실시 예에서, 사용자 입력은 단말에서 발생하는 이벤트도 포함할 수 있다. 일부 실시 예에서, 사용자 입력은 외부장치로부터 발생한 이벤트일 수도 있다. 예를 들어, 메시지 메일 도착 알림, 스케줄링 이벤트 발생 알림, 제3자(third party) 푸쉬 알림 이 있다. 일부 실시 예에서, 사용자 입력은 멀티 모달 또는 멀티 모달 인터페이스를 통한 다중 입력(예: 사용자의 텍스트 입력과 음성 입력을 동시에 받는 경우) 일 수 있다.
입력 처리부(220)는 입력 장치부(210)로부터 전달받은 입력 신호를 처리할 수 있다. 입력 처리부(220)는 처리한 입력 신호를 자연어 처리부(240)(예: 자연어 이해부(NLU: Natural Language Understanding, 242))로 전달할 수 있다. 입력 처리부(220)는 입력 신호들에 대하여 자연어 처리가 가능한 신호인지를 판단할 수 있으며, 자연어 처리부(240)에서 이해할 수 있는 형태의 신호로 변환할 수 있다. 입력 처리부(220)는 각각 입력 장치의 입력 신호에 따라 신호를 다르게 처리할 수 있다. 입력 처리부(220)는 텍스트/GUI처리부(222), 텍스트/도메인 그룹핑부(223) 및 음성 처리부(224)를 포함할 수 있다.
본 발명의 다양할 실시 예에 따라, 텍스트/GUI 처리부(222)는 입력 장치(예: 키보드, GUI 등)로부터 받은 사용자 텍스트 입력 혹은 GUI 오브젝트 입력을 자연어 처리부(240)가 이해할 수 있는 형태로 변환할 수 있다. 텍스트/GUI 처리부(222)는 음성 처리부(224)에서 처리된 음성 신호를 자연어 처리부(240)가 이해할 수 있는 형태로 변환할 수 있다.
본 발명의 다양할 실시 예에 따라, 텍스트/도메인 그룹핑부(223)는 텍스트로 변환된 음성 신호를 도메인 별로 그룹핑할 수 있다. 텍스트/도메인 그룹핑부(223)에서 처리된 신호는 도메인 DB 관리부(224)로 전달될 수 있다. 사용자의 특정 텍스트 또는 말풍선에 대한 입력을 인식한 경우, 전자 장치(100) 또는 서버(1000)는 해당 텍스트 또는 말풍선에 대응하는 도메인 정보를 상기 텍스트/도메인 그룹핑부(223)를 이용하여 추출할 수 있다. 예를 들어, 사용자가 ““내일 날씨 알려줘””라는 텍스트 또는 말풍선을 선택한 경우, 전자 장치(100) 또는 서버(1000)는 해당 텍스트 또는 말풍선에 대응되는 날씨 도메인 정보를 상기 텍스트/도메인 그룹핑부(223)를 이용하여 추출할 수 있다.
음성 처리부(224)는 전자 장치에 구비된 다양한 입력 장치부(210)를 통해 사용자 입력이 검출된 경우, 음성 인식 활성화 조건이 충족되었는지를 판단할 수 있다. 음성 인식 활성화 조건은 전자 장치에 구비된 입력 장치의 동작 별로 상이하게 설정될 수 있다. 음성 처리부(224)는 음성 인식 활성화 조건이 만족된 경우 음성 명령을 인식할 수 있다. 음성 처리부(224)는 전처리 기술부(225) 및 음성 인식부(226)를 포함할 수 있다.
전처리 기술부(225)는 입력받은 음성 신호의 인식 성능을 향상하기 위한 처리를 수행할 수 있다. 예를 들어, EPD(end time detection)기술, 잡음 제거(noise canceling) 기술, 에코 제거 기술 등이 전처리 기술부(255)에 의해 활용될 수 있다.
음성 인식부(226)는 음성 인식 활성화 조건과 연관된 ASR(automatic speech recognition)1 모듈(227), 음성 명령 인식 모듈인 ASR2 모듈(228)을 포함할 수 있다.
ASR1 모듈(227)은 음성 인식 활성화 조건이 충족되는지 여부를 판단할 수 있다. ASR1 모듈(227)은 전자 장치(100)에 구비된 버튼 방식의 키(예: 전원 키, 볼륨 키, 홈 키 등) 또는 터치 키(예: 메뉴 키, 취소 키 등)와 같은 물리적 하드 키 또는 소프트 키 등의 숏(short) 또는 롱 프레스(long press) 입력을 검출하거나, 압력 센서 또는 모션 센서를 통해 특정 모션 입력(또는 제스처 입력)이 검출된 경우, 사용자 입력에 기반한 음성 인식 활성화 조건이 충족되었다고 판단할 수 있다.
음성 인식부(226)는 사용자 입력에 대해 음성 인식 활성화 조건이 조건이 충족된 경우, 음성 명령 인식 모듈(예: ASR2 모듈(228))로 획득한 음성 신호를 전달할 수 있다.
자연어 처리부(240)는 자연어 이해부(NLU: natural language understanding, 242)와 대화 관리부(DM: dialog manager, 244)를 포함할 수 있다.
NLU(242)는 입력된 발화 단위에 대하여, 자연어 처리 모델(250)을 이용하여 사용자 입력에 대한 의도(intent)를 파악하거나 매칭되는 도메인(domain)을 파악할 수 있다. DM(244)은 사용자 대화 이력을 관리하고 슬롯(slot), 또는 태스크 파라미터(task parameter)를 관리할 수 있다. DM(244)은 대화 이력부(280) 및/또는 도메인 DB 관리부(284)로부터 도메인, 의도 및/또는 슬롯 정보를 추출할 수 있다.
NLU(242)는 입력 단위에 대하여 문법적 분석(syntactic analyze) 및 의미적 분석(semantic analyze)을 수행 할 수 있다. 분석 결과에 따라 NLU(242)는 해당 입력 단위가 해당되는 도메인(domain)이나 의도를 판단하고, 해당 의도를 표현하는데 필요한 구성요소(예: 슬롯, 파라미터)를 얻을 수 있다. 이 과정에서는 NLU(242)는 어느 하나의 결과가 아닌 가능한 다양한 매칭 결과들을 찾아낼 수 있다. NLU(242)에서 획득한 도메인, 의도 및 슬롯 정보는 대화 이력부(280) 또는 도메인 DB 관리부(284)에 저장될 수 있다.
NLU(242)는 사용자 의도를 파악하기 위해, 도메인/의도/슬롯에 대한 매칭 규칙을 가지고, 각각의 매칭 가능한 문법적인 구성요소들에 대하여 각각의 케이스에 대해 매칭시키는 방법을 사용하거나 사용자 언어에 대하여 언어적인 특징을 추출하고, 해당 특징들이 매칭되는 모델을 찾아 사용자 의도를 파악하는 방법을 사용할 수 있다.
DM(244)은 NLU(242)를 통해 파악된 의도에 기반하여 다음 동작(action)을 결정할 수 있다. DM(244)은 사용자의 의도가 명확한지 여부를 판단할 수 있다. 명확한지 여부의 판단은 일 예로, 슬롯의 정보가 충분한지 여부로 판단할 수 있다. DM(244)은 NLU(242)에서 파악된 슬롯이 이후 태스크를 수행하는데 충분한지 혹은 추가적인 정보를 사용자에게 요청해야 하는지 혹은 이전대화의 정보를 활용할지 여부를 판단할 수 있다. DM(244)은 사용자에게 필요한 정보를 요청하거나, 사용자 입력에 대한 피드백을 주고 받는 주체가 될 수 있다.
서비스 오케스트레이션(260)은 자연어처리 결과 수행해야 하는 태스크(task)를 획득할 수 있다. 태스크는 사용자 의도에 대응할 수 있다. 서비스 오케스트레이션(260)은 획득한 태스크와 서비스를 연결할 수 있다. 서비스 오케스트레이션(260)은 파악된 사용자 의도에 대응되는 서비스(예: 어플리케이션(262))를 호출하고 실행시키는 역할을 수행할 수 있다. 서비스 오케스트레이션(260)은 복수개의 어플리케이션 및/또는 서비스들 중 적어도 하나를 선택하여 서비스를 수행할 수 있다.
사용자 의도에 대응되는 서비스는 전자 장치(100) 내에 설치되어있는 어플리케이션일 수도 있고, 제3자(third party) 서비스일 수 도 있다. 예를 들어, 알람을 설정하는데 이용될 수 있는 서비스는 전자 장치(100)에 설치된 알람 어플리케이션, 또는 달력 어플리케이션일 수 있다. 일 실시 예에 따라, 서비스 오케스트레이션(260)은 전자 장치(100)에 설치된 복수의 어플리케이션 중 사용자 의도에 대응되는 결과를 얻기에 가장 적합한 어플리케이션을 선택하여 실행시킬 수 있다. 일 실시 예에 따라, 서비스 오케스트레이션(260)은, 복수의 어플리케이션 중 사용자 선호도에 따라 어플리케이션을 선택하여 실행 시킬 수 있다.
서비스 오케스트레이션(260)은 제3자 API(application programming interface)를 이용하여 사용자 의도에 맞는 서비스를 검색하고 검색된 서비스를 제공해 줄 수도 있다.
서비스 오케스트레이션(260)은 태스크와 서비스를 연결시키기 위해 인텔리전스(intelligence, 270)에 저장된 정보를 이용할 수 있다. 서비스 오케스트레이션(260)은 인텔리전스(270)에 저장된 정보에 기초하여, 획득한 태스크를 수행하기 위해 이용할 어플리케이션 또는 서비스를 결정할 수 있다. 일 실시 예에서, 서비스 오케스트레이션(260)은 사용자 문맥 정보에 기초하여 어플리케이션 또는 서비스를 결정할 수 있다. 예를 들어, 사용자 의도가 메시지 전송이고 태스크가 메시지 앱을 실행시키는 것인 경우, 서비스 오케스트레이션(260)은 메시지 전송에 사용할 어플리케이션을 결정할 수 있다. 이 경우, 서비스 오케스트레이션(260)은 사용자 문맥 정보 (예: 메시지 전송에 주로 사용하는 어플리케이션에 관한 정보)를 인텔리전스(270)로부터 획득할 수 있다.
서비스 오케스트레이션(260)은 자연어 처리 결과, 매칭되는 의도 또는 도메인이 복수 개인 경우, 해당 도메인에 대응되는 서비스를 동시에 또는 수차적으로 수행할 수 있다. 예를 들어, 서비스 오케스트레이션(260)은 도메인에 대응되는 어플리케이션을 동시에 또는 순차적으로 실행시킬 수 있다.
서비스 오케스트레이션(260)은 상기 전자 장치(100) 및/또는 서버(1000)에 포함될 수 있다. 다른 실시 예에서, 서비스 오케스트레이션(260)은 상기 서버(1000)와는 별도의 서버로 구현될 수도 있다.
인텔리전스(intelligence, 270)는 자연어 처리에 도움을 주기 위한 정보들로, 최근 대화 이력, 사용자 최근 선택 이력(발신번호넘버, 지도 선택이력, 미디어 재생 이력) 웹브라우져 쿠키와 같은 정보를 포함할 수 있다. 인텔리전스(270)는 자연어를 처리하는 경우 사용자 의도를 정확하게 파악하는데 사용될 수 있으며, 태스크를 수행하는데 이용될 수 있다.
대화 이력부(dialog history)(280)는 대화 모델(282)을 이용하여 사용자의 음성 입력에 관한 이력을 저장할 수 있다. 대화 이력부(280)는 음성 입력에 대해 NLU(242) 및 DM(244)에서의 자연어 처리에 기반하여 획득한 세부정보를 저장할 수 있다. 예를 들어, 음성 입력에 대한 도메인, 의도 및/또는 슬롯 정보를 저장할 수 있다. 대화 이력부(280)는 최근 음성 입력에 대한 세부 정보를 저장할 수 있다. 예를 들어, 대화 이력부(280)는 일정 세션동안 입력된 사용자 음성 입력에 대한 세부정보를 저장할 수 있다. 다른 예로, 대화 이력부(280)는 일정 기간 동안 입력된 사용자 음성 입력에 대한 세부정보를 저장할 수 있다. 또 다른 예로, 대화 이력부(280)는 일정 개수의 사용자 음성 입력에 대한 세부정보를 저장할 수 있다. 대화 이력부(280)는 상기 인텔리전스(270)와는 별도로 구성되거나, 상기 인텔리전스(270)에 포함될 수 있다. 본 발명의 일 실시 예에서, 대화 이력부(280)는 직전 음성 입력에 대한 세부정보와 직전 음성 입력 이전의 음성 입력에 대한 세부정보를 저장할 수도 있다. 대화 이력부(280)는 해당 음성 입력에 대한 세부정보를 해석에 따라 <도메인(domain), 의도(intent), 슬롯(slot), 슬롯(slot), ……>과 같이 특정 정보의 집합 형태로 저장할 수 있다. 표 1은 음성 입력에 대응하여 대화 이력부(280)에 저장되는 정보를 예시한다.
발화 내용 도메인(domain) 의도(intent) 슬롯(slot) 슬롯(slot) 슬롯(slot)
주변 맛집 알려줘 맛집 지역 탐색 장소: 주변
내일 날씨 알려줘 날씨 날씨 확인 장소: 현재 위치 날짜: 내일
에버랜드 가는길 알려줘 네비게이션(navigation) 길찾기 목적지:에버랜드
도메인 DB 관리부(284)는 최근 음성 입력에 대응되는 도메인 및/또는 자주 사용되는 도메인 정보를 저장할 수 있다. 도메인 DB 관리부(284)는 사용자 음성 입력에 대응되는 텍스트(또는 말풍선)와 그룹핑된 도메인 정보를 저장할 수 있다. 도메인 DB 관리부(284)는 최근 음성 입력에 대응되는 도메인 및/또는 자주 사용되는 도메인 정보에 매칭되는 컨텐츠(예: 아이콘)를 저장할 수 있다. 도메인 DB 관리부(284)는 대화 이력부(230)에 연동될 수 있다. 도메인 DB 관리부(284)는 대화 이력부(230)에 저장된 도메인, 의도 및/또는 슬롯과 같은 세부정보 중 최근 음성 입력에 대응되는 도메인 및/또는 자주 사용되는 도메인 정보를 저장할 수 있다. 도메인 DB 관리부(284)는 관련 슬롯 정보를 저장할 수도 있다.
도메인 DB 관리부(284)는 입력 처리부(220)와 연동될 수도 있다. 바람직하게는, 도메인 DB 관리부(284)는 텍스트/도메인 그룹핑부(223)에 연동될 수 있다. 도메인 DB 관리부(284)는 텍스트/도메인 그룹핑부(223)에서 그룹핑된 텍스트와 도메인을 저장할 수 있다. 도메인 DB 관리부(284)는 그룹핑된 텍스트, 도메인 및/또는 슬롯을 저장할 수 있다. 도메인 DB 관리부(284)는 특정 텍스트에 대한 사용자 선택에 대응하여, 상기 특정 텍스트에 그룹핑된 도메인 및/또는 슬롯을 제공해줄 수 있다. 도메인 DB 관리부(284)는 사용자가 선택한 텍스트(또는 말풍선)에 대응되는 도메인을 제공해줄 수도 있다. 도메인 DB 관리부(284)는 사용자의 컨텐츠에 대한 선택에 대응하여 해당 컨텐츠에 연관된 도메인을 제공해줄 수도 있다. 본 발명의 일 실시 예에서, 도메인 DB 관리부(284)로부터 획득된 도메인에 대해 별도의 자연어 이해 없이 대화 관리 절차가 수행될 수 있다. 다른 실시 예에서, 도메인 DB 관리부(284)는 생략되거나 대화 이력부(280)와 통합될 수 있다.
출력 처리부(290)는 입력된 데이터를 자연어 형태로 생성하는 자연어 생성부(NLG: Natural Language Generation, 292), 텍스트 형태로 구성된 결과를 음성 형태로 제공하기 위해 음성 합성을 수행하는 음성 합성부(TTS: text to speech, 294)를 포함할 수 있다. 출력 처리부(290)는 자연어 처리부(240)에서 생성된 결과를 구성하고 렌더링하는 역할을 수행할 수 있다. 출력 처리부(290)는 텍스트, 그래픽, 음성(speech) 등의 다양한 형태의 출력을 수행할 수 있다. 출력 처리부(290)는 음성 입력에 대응되는 도메인이 2이상인 경우, 각각의 도메인에 대응되는 복수개의 서비스 실행 결과 및/또는 어플리케이션의 실행 결과를 출력할 수 있다.
이하에서는, 도메인, 의도, 슬롯의 상관관계를 설명하고, 본 발명의 일부 실시 예들에 따라 매칭되는 도메인을 파악하는 방법을 설명한다.
도 3은 본 발명의 일부 실시 예들에 따라 도메인, 의도 및 슬롯간의 상관관계를 나타내는 도면이다.
도 3을 참조하면, 처리 시스템은 자연어 처리를 위해 도메인, 의도 및 슬롯간의 관계 정보를 저장할 수 있다. 일 실시 예에서, 도메인, 의도 및 슬롯은 트리 구조를 형성할 수 있다. 처리 시스템은 여러 개의 도메인에 대하여 의도 및 슬롯 정보를 저장할 수 있다. 의도는 도메인의 하위 노드(node)에 대응될 수 있으며, 슬롯은 의도의 하위 노드에 대응될 수 있다. 도메인은 특정 속성들의 집합에 대응되며 카테고리라는 표현으로 대체될 수 있다. 의도는 도메인과 관련된 행동 가능한 속성을 나타낼 수 있다. 일 실시 예에서, 슬롯은 의도가 가질 수 있는 구체적인 속성(예: 시간, 장소 등)을 나타낼 수 있다. 하나의 도메인은 복수 개의 의도를 하위 노드로서 포함할 수 있고, 하나의 의도는 복수 개의 슬롯을 하위 노드로서 포함할 수 있다. 일 실시 예에서, 하나의 슬롯은 복수 개의 도메인의 하위 노드에 대응될 수 있다.
일 실시 예에서, 사용자가 "내일 아침 6시에 알람 설정해줘"라고 발화할 경우, 자연어 처리부(240)는 "알람"이란 입력어가 도메인 "알람"에 대응됨을 알 수 있고, 이를 기준으로 사용자 발화의 "알람 설정"이 "알람 설정"이라는 의도에 대응됨을 알 수 있다. 자연어 처리부(240)는 "아침 6시"가 알람을 설정하는 여러 가지 슬롯 중에 <타입: 시간>에 대응됨을 확인하고, 해당 시간에 알람을 설정하려는 사용자의 의도가 있음을 파악할 수 있다. 자연어 처리부(240)는 자연어 처리 결과를 서비스 오케스트레이션(260)으로 전달하거나 출력 처리부(290)로 전달할 수 있다.
자연어 처리부(240)는 사용자 입력에 매칭되는 도메인을 탐색하는 동작을 수행할 수도 있다. 사용자 입력이 특정 도메인에 매칭된다는 것은, 도 3에서 특정 도메인이 사용자 발화에 대응되는 슬롯을 하위 노드로 포함하고 있는 경우를 의미할 수 있다.
예를 들어, 사용자가 이미 “주변 맛집 알려줘”, “내일 날씨 알려줘”, “음악 재생해”를 발화하고, 이 발화들이 사용자 입력 이력을 구성할 수 있다. 이 경우, 각각의 발화에 대하여 대화 이력부(280) 또는 도메인 DB 관리부(284)에 저장된 내용은 <도메인, 의도, 슬롯, 슬롯, ……,>에 따라 <맛집, 지역 탐색 장소: 주변>, <날씨, 날씨 확인, 날짜: 내일, 장소: 현재 위치>, <음악, 재생, 곡명: 최근 재생목록>일 수 있다.
이제 사용자가, “속초는”이라고 발화한 경우, 자연어 처리부(240)는 “속초는”이라는 발화에 대하여 각 발화 별로 슬롯에 “속초”를 대입하여 유의미한 정보를 가지는 도메인을 획득할 수 있다. ““속초””가 장소를 나타내는 슬롯에 대응하므로, 자연어 처리부(240)는 <맛집, 지역 탐색, 장소: 속초>에 따라 맛집은 ““속초””에 매칭되는 도메인이라 판단할 수 있다. 자연어 처리부(240)는 <날씨, 날씨 확인, 날짜: 내일, 장소: 속초>에 따라 ““날씨””는 ““속초””에 매칭되는 도메인이라 판단할 수 있다. 반면, 자연어 처리부(240)는 <음악, 재생, 곡명: 속초>의 ““속초””가 곡명에 부합하지 아니하므로 음악은 ““속초””에 매칭되는 도메인이 아니라고 판단할 수 있다.
자연어 처리부(240)는 매칭된 도메인 및 슬롯에 기반하여 의도를 파악할 수 있다. 자연어 처리부(240)는 매칭되는 도메인 또는 파악한 의도를 서비스 오케스트레이션(260)에 전달할 수 있다. 서비스 오케스트레이션(260)은 매칭된 도메인 또는 파악한 의도에 연관된 동작을 수행할 수 있다. 출력 처리부(290)는 서비스 실행 결과를 사용자가 인식할 수 있는 형태로 출력할 수 있다.
이하에서, 도 4 내지 도 15를 참조하여 다양한 입력에 대한 처리 방법을 설명한다.
도 4는 본 발명의 일 실시 예에 따른 음성 입력 처리 방법의 흐름도를 나타낸다.
예를 들어, 도 4는, 현재 사용자 입력(이하, 제1 사용자 입력)에 대한 전자 장치(100) 및 서버(1000)에서의 동작을 나타낸다. 이하, 전자 장치(100)가 가장 최근의 사용자 입력(이하, 제2 사용자 입력 또는 직전 사용자 입력) 및 최근의 사용자 입력 이전의 적어도 하나의 사용자 입력(이하, 제3 사용자 입력)을 상기 제1 사용자 입력 이전에 수신한 것을 가정한다.
동작 401에서, 전자 장치(100)는 입력 장치(예: 마이크)를 통해 제1 사용자 입력을 획득할 수 있다. 동작 401은, 사용자에 의해 음성 인식과 연관된 특정 기능이나 어플리케이션이 실행된 상태에서 수행될 수 있다. 그러나 일부 실시 예에서, 음성 인식은 항상 활성화 상태일 수 있고, 동작 401은 사용자의 발화에 대하여 항상 수행될 수 있다. 혹은, 전술한 바와 같이, 특정 음성 입력(예: Hi, Galaxy)에 의해 음성 명령의 인식이 활성화되고, 동작 401은 상기 특정 음성 입력에 후속하여 입력되는 음성 명령(예: 제1 사용자 입력)에 대한 음성 인식이 수행될 수 있다.
동작 403에서, 전자 장치(100)는 음성 신호를 전자 장치(100)가 인식할 수 있는 형태의 텍스트 신호로 변환할 수 있다.
동작 405에서, 전자 장치(100)는 텍스트 신호로 변환된 음성 신호를 통신 모듈을 이용하여 서버(1000)로 전송할 수 있다.
동작 407에서, 서버(1000)는 상기 변환된 신호를 기반으로 자연어 처리를 시도할 수 있다. 서버(1000)는 전달된 신호가 의도 파악에 충분한 정보를 가지고 있는지 판단할 수 있다. 전달된 신호가 의도 파악에 충분한 정보를 가진 경우 동작 415에서, 서버(1000)는 자연어 이해 결과를 획득하고, 자연어 이해 결과를 저장할 수 있다. 자연어 이해 결과는, 도메인, 의도 및/또는 슬롯 정보를 포함할 수 있다. 서버(1000)는 이를 바탕으로 이후 서비스 동작을 지정할 수 있다. 일 실시 예에 따라, 자연어 처리 하기에 정보가 부족한 경우, 하기 동작을 수행할 수 있다.
동작 409에서, 서버(1000)는 이전 대화 이력을 탐색하여 제1 사용자 입력에 매칭되는 도메인을 획득할 수 있다. 서버(1000)는 이전 대화 이력에 대해 저장되어 있는 도메인, 의도 및/또는 슬롯 정보를 추출하고 제1 사용자 입력을 각 요소에 대입하여 매칭되는 도메인을 획득할 수 있다. 일 실시 예에서, 서버(1000)는 상기 제1 사용자 입력이 제2 사용자 입력에 대응되는 제2 도메인에 매칭되는지 여부 및 적어도 하나의 제3 사용자 입력에 대응되는 제3 도메인에 매칭되는지 여부를 판단할 수 있다. 서버(1000)는 상기 제2 도메인 및/또는 적어도 하나의 제3 도메인을 상기 제1 사용자 입력에 매칭되는 도메인으로 결정할 수 있다. 또한, 서버(1000)는 상기 제2 도메인, 상기 적어도 하나의 제3 도메인 및 상기 제1 사용자 입력에 기반하여 복수개의 사용자 의도를 획득할 수 있다.
일 실시 예에서, 서버(1000)는 적어도 하나의 제3 도메인 중 서로 중복되는 도메인 또는 적어도 하나의 제3 도메인 중 제2 도메인과 중복되는 도메인에 대하여는 매칭 여부를 판단하지 않을 수 있다.
한편, 적어도 하나의 제3 사용자 입력에 대응되는 대화 이력은 도메인 DB 관리부(284)에 의해 관리될 수 있다. 도메인 DB 관리부(284)는 저장되는 대화 이력에 소정의 제한(예: 기간, 횟수 등)을 둘 수 있다.
동작 411에서, 서버(1000)는 자연어 처리 결과를 전자 장치(100)로 전송할 수 있다. 자연어 처리 결과는, 매칭되는 도메인에 관한 정보를 포함할 수 있다. 매칭되는 도메인에 관한 정보는, 제1 사용자 입력에 매칭되는 제2 도메인 및/또는 제1 사용자 입력에 매칭되는 적어도 하나의 제3 도메인에 관한 정보를 포함할 수 있다. 서버(1000)로부터 전자 장치(100)로 전송되는 정보는 자연어 처리 결과로 참조될 수 있다.
동작 413에서, 전자 장치(100)는 매칭되는 제2 도메인 및 매칭되는 적어도 하나의 제3 도메인에 기반하여 사용자 의도를 파악할 수 있다. 전자 장치(100)는 파악된 사용자 의도에 따라 연관된 동작(또는 서비스)을 수행하고, 서비스 실행 결과(예: 어플리케이션 실행 결과)를 획득할 수 있다.
이와 같이, 전자 장치(100)는 이전 대화 이력에 대하여 도메인 매칭 여부를 검색하고, 복수의 도메인에 연관된 서비스 실행 결과를 모두 획득함으로써, 빠르고 쉽게 사용자에게 원하는 정보를 제공할 수 있다.
다른 실시 예에 따라, 도 4의 동작 411을 참조하면, 자연어 처리 결과는 자연어 이해 결과인 도메인, 슬롯 및/또는 의도 정보일 수 있다. 전자 장치(100)는 서버로부터 자연어 처리 결과를 수신하고, 수신한 정보에 기반하여 의도에 따라 연관된 동작(또는 서비스)을 수행하고, 서비스 실행 결과를 획득할 수 있다.
또 다른 실시 예에 따라, 다시 도 4의 동작 411을 참조하면, 자연어 처리 결과는 상기 서비스 실행 결과일 수도 있다. 이러한 실시 예에 따르면, 서버(1000)는 자연어 이해 결과를 획득하고, 해당 이해 결과에 기초하여 서비스를 실행하고, 서비스 실행 결과를 획득할 수 있다. 이 경우, 서비스 실행 결과는 제2 도메인에 연관된 서비스 실행 결과 및/또는 적어도 제3 도메인에 연관된 서비스 실행 결과를 포함할 수 있다. 이와 같은 서비스 실행 결과는 전자 장치(100)의 화면에 디스플레이될 수 있다. 예를 들어, 어플리케이션 실행 결과가 요약된 형태로 화면에 표시될 수 있다. 사용자는 정보를 구체적으로 확인하기 위해 원하는 정보를 선택할 수 있다. 예를 들어, 사용자는 터치 등의 제스처를 통해 원하는 정보를 선택할 수 있다.
한편, 전자 장치(100)는 도 4에서 획득한 도메인 정보를 사용자 입력과 매칭시키고, 매칭된 정보를 도메인 DB 관리부(284)로 전달할 수 있다.
도 4에서 설명한 동작은 서버(1000)와 전자 장치(100)에서 수행되는 것으로 기재하였으나 이러한 동작은 앞서 설명한 바와 같이 전자 장치(100)에서 단독으로 수행될 수 있다. 다른 실시 예에서, 서버(1000)의 일부 동작은 전자 장치(100)에서 수행될 수 있고, 전자 장치(100)의 일부 동작은 서버(1000)에서 수행될 수도 있다. 예를 들어, 전자 장치(100)는 제1 사용자 입력을 획득하여, 상기 제1 사용자 입력을 서버(1000)로 전송할 수 있다. 또한, 서버(1000)는 상기 또 다른 실시 예에서 기술한 바와 같이 제2 도메인 및/또는 적어도 하나의 제3 도메인에 기반하여 의도를 파악하고, 파악한 의도에 따라서 서비스 실행 결과를 획득할 수 있다. 이 경우, 서버(1000)는 서비스 실행 결과를 단말에 전송할 수도 있다.
도 5는 본 발명의 일부 실시 예에 따라, 전자 장치(100)상에 디스플레이되는 사용자 인터페이스를 예시한 도면이다.
도 5를 참조하면, 제1 사용자 입력 이전에 서로 다른 도메인에 기반하는 복수의 이전 발화에 대한 표시를 포함하는 이전 대화 이력이 화면 501에 디스플레이되어 있다. 예를 들어, 화면에 표시되는 대화 이력은, ““에버랜드 가는길 알려줘””라는 제3 사용자 입력, 제3 사용자 입력에 대한 응답으로 ““길 안내를 실행할게요””라는 제3 어플리케이션 실행 결과와, ““내일 날씨 알려줘””라는 또 다른 제3 사용자 입력, 또 다른 제3 사용자 입력에 대한 응답으로 날씨에 연관된 또 다른 제3 어플리케이션 실행 결과와, ““주변 소고기 맛집 알려줘””라는 제2 사용자 입력, 제2 사용자 입력에 대한 응답으로 맛집에 연관된 제2 어플리케이션 관련 정보를 포함한다.
도 5의 화면 502는 새로운 사용자의 발화(제1 사용자 입력)가 입력된 경우의 사용자 인터페이스(user interface, UI) 화면이다. 전자 장치(100)는 제1 사용자 입력에 응답하여, 제1 사용자 입력의 음성 인식 결과를 화면에 표시할 수 있다. 예를 들어, 사용자가 ““속초는””이라는 불완전한 문장을 발화한 경우, 전자 장치(100)는 음성 인식 결과로서 ““속초는””을 표시할 수 있다.
도 5의 화면 503은 제1 사용자 입력에 응답하여, 서비스 실행 결과를 표시하는 사용자 인터페이스를 도시한다. ““속초는””과 같이 불완전한 문장이 입력된 경우에는, 본 발명의 일부 실시 예에 따라 제1 사용자 입력에 대해 복수개의 도메인 및 의도가 도출될 수 있다. 이 경우, 전자 장치(100)는 상기 복수개의 도메인 및 의도에 대한 서비스 실행 결과를 화면에 모두 표시할 수 있다. 이하, 서비스 실행 결과가 어플리케이션 실행 결과인 경우인 경우를 가정하여 서비스 실행 결과를 표시하는 다양한 실시 예들을 설명한다.
예를 들어, 장소 슬롯에 대응되는 ““속초””에 대하여, 제1 사용자 입력에 매칭되는 도메인은 ““맛집”” 및 ““날씨””를 모두 포함할 있다. 이 경우, 전자 장치(100)는 맛집 및 날씨 검색이라는 의도에 맞는 어플리케이션 실행 결과를 화면에 표시할 수 있다.
어플리케이션 실행 결과를 표시하는 방법의 일 예로, 사용자 인터페이스에는 어플리케이션 실행 결과를 가장 최근의 대화 이력의 순서대로 표시될 수 있다. 화면 503을 참조하면, 사용자 인터페이스에는 최근 대화 이력의 순서에 따라 맛집에 관한 결과가 날씨에 관한 결과보다 먼저 표시될 수 있다.
어플리케이션 실행 결과를 표시하는 방법의 다른 예로, 전자 장치(100)는 복수개의 어플리케이션 실행 결과를 하나의 말풍선 내에 표시하거나 또는 각각의 어플리케이션 실행 결과를 각각 하나의 말풍선 내에 표시할 수 있다.
어플리케이션 실행 결과를 표시하는 방법의 또 다른 예로, 전자 장치(100)는 1회의 사용자 입력에 대한 복수개의 어플리케이션 실행 결과를 후속하는 사용자 입력 이전에 모두 표시할 수 있다.
어플리케이션 실행 결과를 표시하는 방법의 일 예로, 전자 장치(100)는 제1 사용자 입력에 응답하여 제2 어플리케이션 실행 결과만 표시할 수 있다. 이 경우, 전자 장치(100)는 사용자에게 매칭되는 제3 도메인에 연관된 어플리케이션 실행 결과를 더 표시할 것인지에 대한 응답을 요청할 수도 있다. 예를 들어, 사용자 인터페이스에는 화면 502의 표시에 이어서 날씨에 관한 결과만 우선적으로 표시하고 ““다른 카테고리에 대한 결과를 확인하시겠습니까””와 같은 질문이 표시될 수 있다. 이에 응답하여, 사용자가 ““응””, ““yes””와 같은 긍정 응답을 입력하거나 특정한 제스처를 수행하는 경우에는, 전자 장치(100)는 매칭되는 제3 도메인에 연관된 어플리케이션 실행 결과를 표시할 수 있다.
이와 같이, 본 발명의 실시 예들에 따르면, 전자 장치(100)는 사용자의 발화에 대하여 이전 도메인 정보와 새로운 도메인에 연관되는 복수개의 동작 실행 결과를 출력할 수 있다.
전자 장치(100)는 사용자가 관련 도메인 정보를 보다 직관적으로 인식할 수 있도록 도메인에 연관된 컨텐츠(예: 아이콘)를 표시할 수 있다. 다른 실시 예에서, 이전 도메인 정보 중 업데이트할 수 있는 도메인이 있다면, 전자 장치(100)는 이전 도메인에서 내용이 업데이트 되었다는 것을 상기 컨텐츠를 통해 화면에 표시할 수 있다. 예를 들어, 전자 장치(100)는 업데이트 되었음을 표시하기 위해 아이콘을 이용할 수 있다. 특정 도메인에서 내용이 업데이트된 경우, 전자 장치(100)는 해당 특정 도메인에 연관된 아이콘의 상태(예: 색깔, 명암, 모양 등)를 변경할 수 있다. 이와 같은 동작을 위하여, 도메인 DB 관리부(284)는 상기 도메인 및 아이콘의 연관 관계를 저장할 수 있다.
도 6은 본 발명의 다른 실시 예에 따른 입력 처리 방법의 흐름도를 나타낸다.
이하, 도 6을 참조하여 도메인에 연관된 컨텐츠를 표시하는 방법을 설명한다. 이하, 설명의 편의를 위하여 컨텐츠는 아이콘인 경우를 가정한다.
동작 601에서, 서버(1000)는 저장된 도메인 및 의도를 추출할 수 있다. 예를 들어, 서버(1000)는 상기 대화 이력부(280) 또는 상기 도메인 DB 관리부(284)를 검색하여 도메인 및 의도를 추출할 수 있다. 여기서, 상기 대화 이력부(280) 또는 DB 관리부(284)에 자연어 이해 결과에 기초하여 획득된 정보 및/또는 본 발명의 실시 예들에 기초하여 획득된 정보가 저장된 경우를 가정한다.
동작 603에서, 서버(1000)는 업데이트된 도메인을 확인할 수 있다. 예를 들어, 도메인 DB 관리부(284)는 상기 추출된 도메인 및 의도를 이용하여 도메인 DB 관리부(284)에서 도메인을 업데이트할 수 있다.
도메인 DB 관리부(284)는 주기적으로, 사용자 초기 입력이 있는 경우 또는 추가적인 사용자 입력이 있는 경우와 같이 특정 이벤트가 발생한 경우에 도메인의 업데이트를 수행할 수 있다. 여기서, 도메인을 업데이트한다는 것은 도메인 자체가 변경된 경우 또는 도메인의 상세 내용(예: 슬롯)이 변경된 경우를 의미할 수 있다.
동작 605에서, 서버(1000)는 업데이트된 도메인에 관한 정보를 전자 장치(100)로 전송할 수 있다.
동작 607에서, 전자 장치(100)는 매칭되는 아이콘이 있는지 여부를 확인할 수 있다. 아이콘에 대한 정보는 도메인 DB 관리부(284)에 저장될 수 있다.
매칭되는 아이콘이 있는 경우, 동작 609에서 전자 장치(100)는 도메인에 매칭되는 아이콘을 표시할 수 있다. 그러나 매칭되는 아이콘이 없는 경우, 전자 장치(100)는 어떠한 표시도 수행하지 않을 수 있다.
여기서, 도 6의 동작들은 서버(1000)와 전자 장치(100)에서 수행되는 것으로 기재하였으나 이러한 동작은 앞서 설명한 바와 같이 전자 장치(100)에서 단독으로 수행될 수 있다. 다른 실시 예에서, 서버(1000)의 일부 동작은 전자 장치(100)에서 수행될 수 있고, 전자 장치(100)의 일부 동작은 서버(1000)에서 수행될 수도 있다.
도 7은 본 발명의 또 다른 실시 예로서 입력 처리 방법의 흐름도를 나타낸다.
전자 장치(100)는 사용자가 사용자 입력과 연관된 도메인 정보를 보다 직관적으로 인식할 수 있도록 도메인에 연관된 컨텐츠(예: 아이콘)를 표시할 수 있다. 이하, 설명의 편의를 위하여 컨텐츠는 아이콘인 경우를 가정한다.
전자 장치(100)는 아이콘을 활성화 또는 비활성화할 수 있다. 그에 따라, 사용자는 직관적으로 사용자 입력에 연관된 도메인 정보를 확인할 수 있다. 여기서, 아이콘을 활성화 또는 비활성화한다는 것은 특정 도메인에 연관된 아이콘의 상태(예: 색깔, 명암, 모양 등)를 변경하는 것을 의미할 수 있다.
도 7을 참조하면, 음성 획득 동작 701은 도 4에서 전술한 동작 401에 대응되므로 그 설명을 생략한다.
동작 703에서, 전자 장치(100)는 획득한 제1 사용자 입력을 통신 모듈을 이용하여 서버(1000)로 전송할 수 있다.
동작 705에서, 서버(1000)는 상기 제1 사용자 입력을 전자 장치(100)가 인식할 수 있는 형태의 텍스트 신호로 변환할 수 있다.
동작 707에서, 서버(1000)는 변환된 상기 제1 사용자 입력이 이전에 저장된 도메인에 매칭되는지 여부를 확인할 수 있다. 여기서 이전에 저장된 도메인은 사전에 서버에 저장된 도메인뿐 아니라 도 3을 참조하여 설명한 것과 같이 이전 대화 이력에 매칭되는 도메인을 의미할 수도 있다. 동작 707은 NLU(242) 및/또는 DM(244)에 의해서 수행될 수 있다.
매칭되는 도메인이 있는 경우, 동작 709에서 서버(1000)는 도메인에 관한 정보를 전자 장치(100)로 전송할 수 있다. 또는, 서버(1000)는 매칭되는 도메인에 연관된 아이콘에 관한 정보를 전자 장치(100)로 전달할 수 있다. 이 경우, 매칭되는 도메인에 연관된 컨텐츠는 대화 이력부(280) 또는 도메인 DB 관리부(284)에 저장될 수 있으며, 상기 도메인과 연동될 수 있다.
전자 장치(100)는 서버(1000)로부터 정보를 수신하고, 동작 711에서 아이콘을 활성화할 수 있다. 서버(1000)로부터 매칭 가능한 도메인에 관한 정보를 수신하고, 해당 도메인들에 연동된 아이콘을 표시할 수 있다. 전자 장치(100)는 연동된 아이콘을 화면에 출력하거나, 아이콘의 상태를 변경시킬 수 있다.
다른 실시 예에서, 전자 장치(100)는 서버(1000)로부터 도메인에 매칭된 아이콘에 관한 정보를 수신할 수도 있다. 이 경우, 아이콘을 바로 표시할 수 있다.
동작 713에서, 전자 장치(100)는 상기 아이콘에 대한 사용자 입력을 수신할 수도 있다. 사용자는 상기 아이콘이 복수개인 경우 복수개의 아이콘 중 특정 아이콘을 선택할 수 있다.
동작 715에서, 전자 장치(100)는 선택된 아이콘에 연관된 도메인에 기반하여 서비스 실행 결과를 출력할 수 있다. 상기 아이콘에 대한 선택에 응답하여, 사용자 의도에 맞는 서비스가 수행될 수 있다. 다른 실시 예에서, 상기 아이콘에 대한 선택에 응답하여, 이미 도출된 복수개의 서비스 실행 결과 중 하나의 서비스 실행 결과가 출력될 수도 있다.
아이콘 및 도메인과 아이콘 간의 연동 관계는 전자 장치(100) 및/또는 서버(1000)의 도메인 DB 관리부(224)에 저장될 수 있다. 한편, 동작 707에 따라 매칭되는 도메인이 없는 경우, 동작 717에서 서버(1000)는 추가적인 정보가 필요함을 알리는 요청 메시지를 생성할 수 있다. 동작 719에서 서버(1000)는 전자 장치(100)로 상기 요청 메시지를 전송할 수 있다.
이와 같이 사용자 입력에 대하여 매칭되는 도메인을 아이콘 등의 형태로 표시함에 따라, 사용자는 보다 직관적으로 자신의 발화에 대한 전자 장치(100)의 판단을 파악할 수 있다.
한편, 도 7에서 도시하지 않았으나, 제1 사용자 입력에 대한 음성 인식 결과 및/또는 제1 사용자 입력에 대한 서비스 실행 결과의 표시는 상기 아이콘의 상태 변화와 동시에 또는 순차적으로 수행될 수 있다.
한편, 전자 장치(100)는 도 7에서 획득한 도메인 정보를 사용자 입력과 매칭시키고, 매칭된 정보를 도메인 DB 관리부(284)로 전달할 수 있다. 다른 실시 예에서, 전자 장치(100)는 도 7에서 사용자로부터 입력받은 도메인 정보와 사용자 입력을 매칭시키고, 매칭된 정보를 도메인 DB 관리부(284)로 전달할 수 있다.
도 7에서 설명한 동작은 서버(1000)와 전자 장치(100)에서 수행되는 것으로 기재하였으나 이러한 동작은 앞서 설명한 바와 같이 전자 장치(100)에서 단독으로 수행될 수 있다. 다른 실시 예에서, 서버(1000)의 일부 동작은 전자 장치(100)에서 수행되거나, 전자 장치(100)의 일부 동작은 서버(1000)에서 수행될 수도 있다. 예를 들어, 전자 장치(100)는 제1 사용자 입력을 획득하여, 텍스트로 변환할 수 있다. 전자 장치(100)는 텍스트로 변환된 제1 사용자 입력을 서버(1000)로 전송할 수 있다. 또한, 전자 장치(100)는 상기 제1 사용자 입력에 매칭되는 도메인을 판단할 수 있다. 전자 장치(100)는 상기 매칭되는 도메인에 연관된 아이콘을 획득하고, 화면에 표시할 수 있다.
이하, 도 8 내지 도 9에서 상기 일부 실시 예들에 따른 사용자 인터페이스를 설명한다.
도 8의 화면 801에 나타난 사용자 인터페이스 상의 표시 내용은 도 5의 화면 501의 표시 내용과, 도 8의 화면 802 내지 도 8의 화면 803의 표시 내용은 도 5의 화면 502의 표시 내용과 중복되므로 이에 관한 설명은 생략한다.
도 8의 화면 801에는 도 5의 화면 501과 비교하여 제2 사용자 입력 내지 적어도 하나의 제3 사용자 입력에 매칭되는 도메인에 연동된 컨텐츠(예: 아이콘)가 더 표시된다.
또한 도 8에서는 화면 801 내지 화면 803의 도메인에 연동된 컨텐츠는 대화창의 상단에 표시되는 것을 도시하였으나, 컨텐츠는 별도의 창이 팝업되는 형태로 표시될 수도 있고, 대화창 하단에 표시될 수도 있으며, 말풍선 내에 표시될 수도 있다. 화면 801 내지 도 8의 화면 803는 설명의 편의를 위해 도메인 정보가 아이콘 형태로 표시되는 것을 도시한다. 여기서, 각 아이콘은 좌측부터 순차적으로 “네비게이션”, “날씨”, “맛집” 도메인에 대응한다.
화면 802에서, 사용자 인터페이스는 사용자의 현재 발화인 제1 사용자 입력(예: 속초는)을 획득할 수 있다. 전자 장치(100)는 상기 사용자의 제1 사용자 입력의 음성 인식 결과를 화면에 표시할 수 있다. 예를 들어, 전자 장치(100)는 현재 발화 ““속초는””을 사용자가 인식할 수 있는 텍스트 ””속초는””과 같이 표시할 수 있다.
화면 803을 참조하면, 전자 장치(100)는 제1 사용자 입력에 매칭되는 도메인에 연동된 아이콘을 활성화할 수 있다. 도 4의 설명을 참조하면, 매칭되는 도메인은 제2 도메인 및 적어도 하나의 제3 도메인을 포함할 수 있다. 예를 들어, 전자 장치(100)는 사용자 입력에 대해 ““날씨”” 및 ““맛집””이 모두 매칭되는 도메인이라는 판단에 따라 ““날씨””에 연동된 아이콘 및 ““맛집””에 연동된 아이콘을 모두 활성화할 수 있다.
도 8의 화면 804에서, 전자 장치(100)는 매칭되는 도메인에 연관된 어플리케이션 실행 결과를 화면에 더 포함할 수 있다. 이들의 표시는 도 5의 화면 503에 관한 설명을 참조할 수 있다. 예를 들어, ““날씨”” 및 ““맛집”” 도메인에 대하여, 전자 장치(100)는 이에 연관된 날씨 어플리케이션 및 맛집 어플리케이션의 실행 결과를 모두 표시할 수 있다. 각 어플리케이션의 실행 결과는 요약형식으로 표시될 수 있다. 사용자가 해당 결과를 선택하는 경우에는 사용자 인터페이스는 해당 어플리케이션 화면을 표시하거나, 구체적인 정보를 표시할 수 있다.
도 9의 화면 901 내지 도 9의 화면 904는 사용자로부터 특정 아이콘에 대한 선택을 획득하여, 연동된 도메인에 대한 동작의 수행 결과를 표시하는 사용자 인터페이스를 나타낸다. 화면 901 내지 화면 903은 도 8 의 화면 801 내지 도 8의 화면 803과 동일하므로 이에 관한 중복된 설명은 생략한다.
도 8과 비교하여 도 9 의 화면 903 내지 도 9의 화면 904의 아이콘은 사용자로부터의 선택이 가능한 아이콘일 수 있다. 전자 장치(100)는 사용자로부터 특정 아이콘에 대한 선택을 받을 수 있다. 상기 선택은 터치 스크린을 통한 아이콘의 터치, 더블 탭, 또는 포스 터치(force touch) 등을 포함할 수 있다.
도 9의 화면 904에서, 전자 장치(100)는 선택받은 도메인에 연관된 어플리케이션의 실행 결과를 대화창에 출력할 수 있다. 예를 들어, 사용자가 맛집 도메인에 연동된 아이콘을 선택한 경우, 상기 선택에 응답하여, 전자 장치(100)는 맛집 도메인에 연관된 어플리케이션의 실행 결과를 출력할 수 있다.
도 9에서는 도시하지 않았으나, 전자 장치(100)는 추가적인 아이콘(예: 화면 904의 날씨 아이콘)에 대한 선택을 획득할 수도 있다. 상기 선택에 응답하여, 전자 장치(100)는 날씨 도메인에 연관된 어플리케이션의 실행 결과를 추가적으로 출력할 수 있다.
전자 장치(100)는 어플리케이션의 실행 결과에 앞서 안내 문구(예: 선택하신 카테고리에 대한 검색 결과는 아래와 같습니다)를 먼저 출력할 수 있다.
다양한 실시 예에서, 상기 어플리케이션의 실행 결과는 도메인 선택 이전에 매칭되는 도메인들에 대해 모두 생성된 것일 수도 있고, 사용자가 선택한 도메인에 대하여만 생성된 것일 수도 있다.
한편, 본 발명에서는 사용자의 편의를 위해 다양한 입력을 처리하는 또 다른 방법을 제안한다. 이하에서, 사용자로부터 기존 대화 이력에 대한 선택을 획득하고 선택된 이력에 대응되는 도메인 및 슬롯 정보를 활용하는 방법을 제안한다.
사용자가 이전 발화 내용에 관련된 컨텐츠(예: 문구, 말풍선 또는 아이콘 등)를 선택하고 음성 또는 제스처를 통해 슬롯, 의도 또는 도메인 중 일부로 분류될 수 있는 입력을 수행하는 경우, 전자 장치(100) 또는 서버(1000)는 이전 발화 내용에 대응하는 슬롯, 의도 및/또는 도메인을 고려하여 적절한 응답을 사용자에게 제시할 수 있다.
예를 들어, 이전 발화에 “내일 날씨 알려줘”와 “금강산 가는 길 찾아줘”가 있을 경우, 사용자가 모레 날씨에 대한 정보를 원한다면 사용자는“내일 날씨 알려줘”문장을 선택한 후 “모레 날씨”라고 발화할 수 있다. 이에 응답하여, 전자 장치(100)는 모레 날씨에 대한 정보를 얻을 수 있다. 사용자가 청와대 가는 길에 대한 정보를 원한다면, “금강산 가는 길 찾아줘”를 선택하고 “청와대”라고 발화할 수 있다. 전자 장치(100)는 선택된 발화(도메인)와 사용자 입력(현재 발화)의 조합에 기반하여 청와대 가는 길에 대한 정보를 제공할 수 있다.
상기와 같은 동작을 위해서, 전자 장치(100)는 이전 발화내용을 화면 상에서 구분하여 표시할 수 있다. 전자 장치(100) 및/또는 서버(1000)는 이전 발화들에 대한 정보(예: 도메인, 의도, 슬롯)들을 각 컨텐츠(문구, 단어, 아이콘 등) 별로 구분하여 사전에 가지고 있을 수 있다. 각 컨텐츠와 도메인, 슬롯 및/또는 의도에 해당하는 정보들은 상호 연동될 수 있다. 다만, 컨텐츠가 아이콘인 경우는 도메인에만 연동되어 있을 수 있다.
도 10은 본 발명의 또 다른 실시 예로서, 다양한 입력에 대한 처리 방법을 설명하기 위한 도면이다. 도 10을 참조하여, 사용자의 입력을 도메인 정보와 매칭시키고 저장하는 방법에 대하여 설명한다.
이하, 현재 사용자 입력(이하, 제1 사용자 입력)에 대한 전자 장치(100) 및 서버(1000)에서의 동작을 설명한다.
동작 1001 내지 동작 1005는 도 7의 동작 701 내지 동작 705와 동일하므로 중복되는 설명은 이하 생략한다.
동작 1007에서, 서버(1000)는 변환된 신호에 대하여 매칭되는 도메인을 획득할 수 있다. 앞서 설명한 바와 같이 이러한 동작은 NLU(242) 및/또는 DM(244)에서 수행될 수 있다. 도메인을 획득하기 위해, 본 발명의 실시 예들이 적용될 수 있다. 일 실시 예에 따라, 전자 장치(100)는 도 4 또는 도 7의 동작에 기반하여 사용자 입력에 대한 도메인을 획득할 수 있다. 다른 실시 예에 따라, 전자 장치(100)는 의도 파악에 충분한 정보가 입력된 경우, 자연어 이해 결과로서 획득된 도메인을 획득할 수 있다.
동작 1009에서, 서버(1000)는 제1 사용자 입력에 대한 텍스트 데이터와 도메인을 매칭시킬 수 있다. 동작 1011에서, 서버(1000)는 매칭된 정보를 저장할 수 있다. 서버(1000)는 상기 도메인과 사용자 입력에 대한 인덱스를 조합하고, 사용자 입력에 대한 인덱스와 조합된 도메인 정보를 저장할 수 있다. 서버(1000)는 상기 도메인 정보에 연관된 슬롯 정보를 더 저장할 수 있다. 슬롯 정보 역시 상기 사용자 입력에 대한 인덱스와 연관될 수 있다. 매칭된 정보는 도메인 DB 관리부(284)에 저장될 수 있다. 서버(1000)는 필요에 따라 상기 도메인 DB 관리부(284)에 접속하여 해당 정보를 추출할 수 있다. 여기서, 매칭된 정보는 텍스트 데이터, 도메인, 텍스트 데이터 및 도메인 정보 간의 관계를 포함할 수 있다.
도 10에서 설명한 동작은 서버(1000)와 전자 장치(100)에서 수행되는 것으로 기재하였으나 이러한 동작은 앞서 설명한 바와 같이 전자 장치(100)에서 단독으로 수행될 수 있다. 다른 실시 예에서, 서버(1000)의 일부 동작은 전자 장치(100)에서 수행되거나, 전자 장치(100)의 일부 동작은 서버(1000)에서 수행될 수도 있다.
도 11은 본 발명의 또 다른 실시 예로서, 다양한 입력에 대한 처리 방법을 설명하기 위한 도면이다. 도 11을 참조하여, 이전 발화로부터 도메인을 추출하고 이전 발화의 컨텐츠(문장, 단어 또는 아이콘 등)에 해당하는 텍스트 데이터를 매칭하고 저장하는 방법을 설명한다.
이하, 현재 사용자 입력(이하, 제1 사용자 입력)에 대한 전자 장치(100) 및 서버(1000)에서의 동작을 설명한다. 본 발명의 일 실시 예에서, 현재 사용자 입력인 제1 사용자 입력 이전에 적어도 하나의 제2 사용자 입력이 존재하는 것을 가정한다. 본 발명의 일 실시 예에서, 해당 사용자 입력이 화면 상에 표시되어 있는 것을 가정한다.
동작 1101 내지 동작 1103는 도 7의 동작 701 내지 동작 705과 동일하므로 중복되는 설명은 이하 생략한다.
동작 1105에서, 전자 장치(100)는 제2 사용자 입력 중 특정 제2 사용자 입력에 대한 사용자 선택을 획득할 수 있다. 전자 장치(100)는 추가적인 사용자 선택에 대응되는 제스처가 있었는지 여부에 따라 사용자 선택이 있었는지를 판단할 수 있다. 예를 들어, 전자 장치(100)는 사용자 인터페이스에 표시된 문장(또는 말풍선) 또는 단어에 대한 사용자의 포스터치(forcetouch), 더블 탭 등이 있었는지 여부에 따라 사용자의 선택이 있었는지를 판단할 수 있다. 여기서, 동작 1105는 동작 1101 이후에 또는 동작 1101보다 먼저 수행될 수 있고, 동작 1101과 동시에 수행될 수도 있다.
동작 1107에서, 전자 장치(1000)는 상기 특정 제2 사용자 입력에 대한 도메인 정보를 추출할 수 있다. 앞서 설명한 바와 같이, 제2 사용자 입력 별로 도메인 정보 및/또는 슬롯 정보가 미리 저장되어 있을 수 있다. 일 실시 예에서 제2 사용자 입력 별 도메인 및/또는 슬롯 정보 는 도메인 DB 관리부(284)에 저장되어 있을 수 있다.
동작 1109에서, 전자 장치(100)는 상기 동작 1103에서 획득한 변환된 사용자 입력 및 상기 동작 1107에서 획득한 도메인 정보에 기반하여 사용자 의도를 파악할 수 있다. 예를 들어, 제1 사용자 입력이 ““에버랜드””이고 제2 사용자 입력에 대응되는 도메인 정보가 ““날씨””라면, 사용자 의도는 ““날씨 검색””인 것으로 파악할 수 있다. 서버(1000)는 제1 사용자 입력을, 선택된 제 2 사용자 입력의 요소 중 슬롯에 대입, 대체 또는 치환할 수 있다. 제2 사용자 입력의 슬롯은 제1 사용자 입력의 슬롯과 서로 동일한 속성을 가지는 슬롯일 수 있다. 예를 들어, 상기 제1 사용자 입력이 장소에 대응되는 슬롯(예: 에버랜드)이고, 제2 사용자 입력이 장소에 대응되는 슬롯을 포함하고 있다면, 서버(1000)는 상기 제1 사용자 입력을 상기 제2 사용자 입력의 슬롯에 대입할 수 있다.
동작 1111에서, 전자 장치(100)는 수신한 도메인 및/또는 의도 정보에 연관된 동작을 수행하고, 서비스 실행 결과(예: 어플리케이션 실행 결과)를 획득할 수 있다. 여기서, 동작 수행을 위해 제1 사용자 입력에서 획득한 슬롯 정보가 더 이용될 수 있다.
도 11에서는 제1 사용자 입력으로부터 슬롯 정보가 추출되고, 제2 사용자 입력에 대한 선택에 기반하여 도메인 정보가 추출되는 경우를 예시하였으나, 제1 사용자 입력으로부터 도메인 정보가 추출되고, 제2 사용자 입력에 대한 선택에 기반하여 슬롯 정보가 추출되는 경우에도 본 발명을 적용할 수 있다. 이 경우, 동작 1109는 제2 사용자 입력에 대한 슬롯 정보를 추출하는 동작으로 대체될 수 있다. 다른 실시 예에서, 동작 1105 이후에 변환된 신호로부터 도메인을 파악하는 동작이 수행될 수도 있다.
이에 대한 변형으로, 제1 사용자 입력에 대하여 도메인인지 슬롯인지 여부를 판단하고, 제1 사용자 입력이 도메인에 대응되는 경우에는 제2 사용자 입력으로부터 슬롯 정보를 추출하고, 제1 사용자 입력이 슬롯에 대응되는 경우에는 제2 사용자 입력으로부터 도메인 정보를 추출하는 동작이 수행될 수도 있다.
도 11에서 설명한 동작은 전자 장치(100)에서 단독으로 수행되는 것으로 기재하였으나 이러한 동작은 서버(1000)에서 수행될 수도 있다. 일부 동작은 전자 장치(100)에서 수행되고, 일부 동작은 서버(1000)에서 수행될 수도 있다. 예를 들어, 전자 장치(100)는 제1 사용자 입력으로부터 획득한 도메인 정보 및 제2 사용자 입력에 대응하는 변환된 정보를 서버(100)로 전송할 수 있다.
도 12 내지 도 13은 상기 일부 실시 예들에 따른 사용자 인터페이스를 나타낸다.
도 12 및 도 13에서, 제1 사용자 입력 이전에 적어도 하나의 제2 사용자 입력이 화면 상에 표시되어 있는 것을 가정한다.
도 12의 화면 1201은 이전 대화 이력들을 나타낸 사용자 인터페이스이고, 화면 1202는 본 발명의 실시 예에 따라 현재 발화에 따른 사용자 인터페이스를 나타낸다.
전자 장치(100)는 이전 대화 이력들에 따라 제2 사용자 입력에 대한 인식 결과를 텍스트(또는 문구)로 표시할 수 있다. 이러한 인식 결과는 말풍선 내에 표시될 수도 있다. 제2 사용자 입력은 사용자 음성 입력에 대한 인식 결과로서 화면에 표시된 것일 수 있다.
전자 장치(100)는, 사용자로부터 화면 상의 제2 사용자 입력에 대응되는 특정 문구(또는 말풍선)에 대한 선택을 획득할 수 있다. 전자 장치(100)는 사용자로부터 추가적으로 제1 사용자 입력을 획득할 수 있다. 제1 사용자 입력은 상기 선택에 비해 먼저 수신되거나 나중에 수신될 수 있다. 또는, 제1 사용자 입력은 제2 사용자 입력에 대한 선택과 동시에 수신될 수도 있다. 여기서, 제2 사용자 입력에 대한 선택 동작은 ?제3 사용자 입력?으로 참조될 수 있다. 사용자가 이전 대화 이력에 대해 표시된 컨텐츠(예: 특정 문구, 말풍선, 단어 또는 아이콘)를 이용하고자 하는 경우, 해당 컨텐츠를 길게 누르는 동작, 포스 터치 또는 더블 탭 등을 이용할 수 있다. 이 경우, 반복되는 단어를 제외한 발화를 수행할 수 있다.
전자 장치(100)는 제2 사용자 입력에 대한 선택 및 사용자 발화에 대응되는 제1 사용자 입력에 응답하여, 사용자 입력에 대한 인식 결과를 출력할 수 있다. 여기서, 사용자 입력에 대한 인식 결과라 함은 제1 사용자 입력에 대한 음성 인식 결과 및 제2 사용자 입력에 대한 선택에 기반하여 파악된 사용자 의도를 포함하는 결과를 지칭한다. 예를 들어, 사용자가 제2 사용자 입력 중 ““내일 날씨 알려줘””를 선택하고 제1 사용자 입력으로 ““에버랜드””를 발화하였다면, 사용자 입력에 대한 인식 결과로서 ““에버랜드 내일 날씨 알려줘””를 표시할 수 있다. 이와 같이, 사용자 입력에 대한 인식 결과는 제1 사용자 입력 내용과 제2 사용자 입력 내용의 일부를 포함할 수 있다.
전자 장치(100)는 제2 사용자 입력에 대한 선택 및 사용자 발화에 대응되는 제1 사용자 입력에 응답하여 서비스 실행 결과를 표시할 수 있다.
예를 들어, 사용자는 “내일 날씨 알려줘”를 선택하고 “수원”을 발화할 수 있다. 이 경우, 상기 입력에 대한 인식 결과로 전자 장치(100)는 ““내일 수원 날씨 알려줘””를 화면에 표시할 수 있다. 화면 1202를 참조하면, 전자 장치(100)는 선택된 “내일 날씨 알려줘” 및 “수원”의 조합에 대하여, 내일 수원 날씨에 대한 정보를 화면에 표시할 수 있다. 여기서, 내일 수원 날씨에 대한 정보는 어플리케이션 실행 결과일 수 있다.
도 13은 본 발명의 일부 실시 예들에 따른 사용자 인터페이스의 다른 실시 예를 나타낸다.
화면 1301은 이전 대화 이력들을 나타낸 사용자 인터페이스이고, 화면 1302 및 화면 1303은 본 발명의 실시 예에 따라 현재 발화에 따른 사용자 인터페이스를 나타낸다.
이전 대화 이력들에 대응되는 제2 사용자 입력은 텍스트(말풍선 또는 문장)로 표시된다. 이에 대한 제2 사용자 입력은 사용자 음성 입력에 대한 인식 결과로서 화면에 표시된 것일 수 있다.
화면 1302에서, 전자 장치(100)는 사용자로부터 제2 사용자 입력에 대응되는 문구 내의 특정 단어를 선택하는 동작을 인식하고, 추가적인 제1 사용자 입력을 획득할 수 있다. 여기서, 특정 단어를 선택하는 동작을 제3 사용자 입력이라 지칭할 수 있다. 제1 사용자 입력은 사용자 음성 입력의 형태일 수 있다. 특정 단어는 슬롯, 도메인 또는 의도에 대응될 수 있다.
이하의 동작을 위하여, 하나의 말풍선에 대응되는 문구의 구성 성분(예: 단어) 별로 슬롯, 도메인 또는 의도가 분류 및 저장되어 있을 수 있다.
화면 1302에서, 전자 장치(100)는 특정 단어의 선택 및 사용자 발화에 대응되는 제1 사용자 입력에 응답하여, 사용자 입력에 대한 인식 결과를 출력할 수 있다. 여기서, 사용자 입력에 대한 인식 결과라 함은 제1 사용자 입력에 대한 음성 인식 결과 및 특정 단어 선택에 기반하여 파악된 사용자 의도를 포함하는 결과를 지칭한다. 사용자 입력에 대한 인식 결과는 제1 사용자 입력 내용과 제2 사용자 입력 내용의 일부를 포함할 수 있다.
화면 1303에서, 전자 장치(100)는 상기 특정 단어 선택 및 제1 사용자 입력에 응답하여 서비스 실행 결과를 출력할 수 있다.
예를 들어, 사용자는 화면 1302의“에버랜드”를 선택하고 “주변 맛집”을 발화할 수 있다. 이 경우, 전자 장치(100)는 상기 사용자 입력에 대한 인식 결과로 화면 1303과 같이 ““에버랜드 주변 맛집””을 화면에 표시할 수 있다. 전자 장치(100)는 선택된 “에버랜드” 및 “주변 맛집”의 조합에 대하여, 화면 1303과 같이 에버랜드 주변 맛집에 대한 정보를 화면에 표시할 수 있다. 여기서, 에버랜드 주변 맛집에 대한 정보는 어플리케이션 실행 결과일 수 있다.
한편, 전자 장치(100) 및 서버(1000)는 두 개 이상의 기존 발화를 활용하여 사용자의 입력에 대한 인식 결과를 출력하고 사용자 입력에 대한 서비스 실행 결과를 출력할 수 있도록 구현될 수도 있다.
도 14는 본 발명의 또 다른 실시 예로서, 다양한 입력을 처리하는 방법을 설명하기 위한 도면이다. 도 14를 참조하여, 전자 장치(100) 및 서버(1000)에서 이전 발화 중 2 이상의 발화를 이용하여 사용자 의도를 판단하고 사용자 의도에 따라 동작을 수행하는 방법을 제안한다.
이하, 현재 사용자 입력(이하, 제1 사용자 입력)에 대한 전자 장치(100) 및 서버(1000)의 동작을 설명한다. 본 발명의 일 실시 예에서, 제1 사용자 입력 이전에 적어도 하나의 제2 사용자 입력이 존재하는 것을 가정한다. 본 발명의 일 실시 예에서, 해당 사용자 입력이 화면 상에 표시되어 있는 것을 가정한다.
동작 1401에서, 전자 장치(100)는 제1 사용자 입력의 일부로서 사용자의 컨텐츠에 대한 선택을 인식하고 획득할 수 있다. 여기서, 선택된 컨텐츠를 제1 컨텐츠라 지칭한다. 제1 컨텐츠는 제2 사용자 입력에 대응하는 문구 또는 단어, 또는 아이콘 중 어느 하나일 수 있다.
동작 1403에서, 전자 장치(100)는 제1 컨텐츠에 대응하는 제1 텍스트를 추출할 수 있다. 이를 위하여, 일 실시 예에서 상기 제2 사용자 입력에 대한 문구 또는 문구 내의 단어 단위로 텍스트가 저장되어 있을 수 있다. 일 실시 예에서, 아이콘에 대응되는 텍스트가 저장되어 있을 수 있다. 상기 제2 사용자 입력에 대한 문장 또는 문장 내의 단어 단위로, 의도, 도메인 또는 슬롯이 매칭되어 있을 수 있다. 아이콘에 대하여는 도메인이 매칭되어 있을 수 있다.
동작 1405에서, 전자 장치(100)는 상기 제1 사용자 입력의 일부로서, 선택된 제1 컨텐츠로부터 제2 컨텐츠로의 드래그 앤드 드롭(drag and drop) 동작을 획득할 수 있다. 제2 컨텐츠는 제2 사용자 입력에 대응하는 문구 또는 단어, 또는 아이콘 중 어느 하나일 수 있다.
동작 1407에서, 전자 장치(100)는 상기 제2 컨텐츠에 대응되는 제2 텍스트를 추출하고, 동작 1409에서, 전자 장치(100)는 서버(1000)로 제1 텍스트 및 제2 텍스트를 전송할 수 있다.
동작 1411에서, 서버(1000)는 상기 제1 텍스트와 상기 제2 텍스트를 조합할 수 있다. 여기서, 텍스트간의 조합은 상기 제1 텍스트의 상기 제2 텍스트에 대한, 대체 또는 치환일 수 있다. 예를 들어, 제2 컨텐츠의 텍스트에 상기 제1 컨텐츠로부터 추출된 텍스트를 대입하는 동작은 다음과 같이 수행될 수 있다. 제1 컨텐츠가 도메인에 대응되는 경우, 서버(1000)는 상기 제1 컨텐츠에 대응되는 도메인을 상기 제2 컨텐츠에 대응되는 도메인에 대입할 수 있다. 상기 제1 컨텐츠가 슬롯에 대응되는 경우, 서버(1000)는 제1 컨텐츠의 텍스트 중 슬롯을 상기 제2 컨텐츠에 대응되는 슬롯에 대입할 수 있다.
동작 1411은 제1 컨텐츠 및 제2 컨텐츠 중 어느 하나가 아이콘인 경우에도 적용될 수 있다. 예를 들어, 제2 컨텐츠가 아이콘이고 상기 제1 컨텐츠가 문구인 경우, 서버(1000)는 상기 제1 컨텐츠의 도메인은 상기 아이콘에 연동된 도메인과 대체할 수 있다.
동작 1413에서, 서버(100)는 상기 제1 텍스트 및 제2 텍스트의 조합에 따라 도메인이 매칭되는지 여부를 확인한다. 여기서, 도메인이 매칭되는지 여부는 슬롯과 도메인이 서로 매칭되는지 여부로 판단할 수 있다. 구체적으로, 도메인의 하위 노드에 관련 속성을 가지는 슬롯이 포함되어 있는가 여부로 판단할 수 있다. 표 1을 참조하여 예를 들면, 슬롯이 장소에 대응되는 경우, 도메인이 네비게이션에 대응한다면, 슬롯과 도메인은 상호간에 매칭된다. 그러나, 슬롯이 장소에 대응하고, 도메인이 음악에 해당한다면, 슬롯과 도메인은 상호간에 매칭되지 않는다.
도메인과 슬롯이 서로 매칭된다면, 서버(1000)는 동작 1415에서 매칭되는 도메인 정보를 전송하고, 전자 장치(100)는 동작 1417에서 도메인 및/또는 의도에 연관된 동작을 수행하여 서비스 실행 결과를 획득할 수 있다. 도 4에서 설명한 바와 같이 서비스 실행 결과는 도메인에 연관된 어플리케이션 실행 결과일 수 있다.
한편, 서비스 실행 결과를 획득하기 이전에, 서버(1000)는 제1 사용자 입력에 대한 인식 결과를 획득할 수 있다. 여기서, 제1 사용자 입력에 대한 인식 결과는 제1 컨텐츠 및 상기 제2 컨텐츠를 조합하여 판단된 사용자 의도를 포함하는 결과에 대응될 수 있다. 예를 들어, 제1 컨텐츠가 ““에버랜드””에 대응되고, 제2 컨텐츠가 ““오늘 날씨 어때””에 대응된다면, 사용자 인터페이스는 상기 제1 컨텐츠 및 상기 제2 컨텐츠를 조합하여 ““에버랜드 날씨 어때””를 표시할 수 있다.
한편, 도메인이 매칭되지 않는 경우에는, 서버(1000)는 동작 1419에서 매칭되는 도메인이 없음을 지시하는 정보를 전자 장치(100)로 전송할 수 있다. 이에 대응하여, 동작 1421에서, 전자 장치(100)는 제1 컨텐츠와 제2 컨텐츠의 조합이 적절하지 않음을 알리기 위하여 에러(error) 메시지를 생성할 수 있다.
도 15는 본 발명의 일 실시 예로서, 두 개 이상의 기존 발화를 활용하는 경우의 사용자 인터페이스를 도시한다.
화면 1501은 이전 대화 이력을 포함하는 사용자 인터페이스이고, 화면 1502는 사용자 입력과 연관된 사용자 인터페이스이며, 화면 1503은 본 발명의 실시 예에 따라 사용자 동작에 대한 응답을 나타내는 사용자 인터페이스이다.
화면 1501에 도시된 이전 대화 이력들은 도 8의 화면 801과 동일하므로 이와 관련된 자세한 설명은 생략한다.
화면 1502를 참조하면, 전자 장치(100)는 제1 컨텐츠에 대한 선택을 획득할 수 있다. 화면 1502에서, 제1 컨텐츠는 문구 ““에버랜드 가는길 알려줘"에 포함된 특정 단어 ““에버랜드””에 대응된다.
전자 장치(100)는 상기 제1 컨텐츠를 제2 컨텐츠로 드래그 앤 드롭하는 동작을 획득할 수 있다. 화면 1502에서 상기 제2 컨텐츠는 문구 ““주변 소고기 맛집 알려줘””에 대응한다.
여기서, 사용자가 선택된 컨텐츠를 명확히 알 수 있도록, 전자 장치(100)는 제1 컨텐츠 선택 동작에 대응하여, 상기 제1 컨텐츠를 사용자가 육안으로 식별할 수 있는 텍스트 형태로 표시할 수 있다. 일 실시 예에서, 전자 장치(100)는 상기 특정 단어를 드래그 앤 드롭 동작의 경로를 따라 화면상에서 이동시킬 수 있다. 상기 제1 컨텐츠의 선택 및 상기 제2 컨텐츠로의 드래그 앤 드롭을 제1 사용자 입력이라 지칭할 수 있다.
화면 1503을 참조하면, 전자 장치(100)는 제1 사용자 입력에 대응되는 인식 결과를 표시할 수 있다. 여기서, 인식 결과는 상기 제1 컨텐츠의 일부 및 상기 제2 컨텐츠의 일부를 포함할 수 있다.
또한 전자 장치(100)는 상기 제1 사용자 입력에 응답하여, 어플리케이션 실행 결과를 표시할 수 있다.
예를 들어, 화면 1502에서, 사용자가 첫번째 문장에 포함된 단어 “에버랜드”를 선택하고 “에버랜드”를 드래그하여 “주변 소고기 맛집 알려줘”의 문장 또는 말풍선 위에서 드롭하는 경우를 가정한다.
전자 장치(100)는 화면 1503과 같이, 선택 및 드래그 앤 드롭 동작에 대한 인식 결과로서, ““에버랜드 주변 소고기 맛집에 대한 정보””를 표시할 수 있다.
전자 장치(100)는 화면 1503과 같이,“에버랜드” 선택 및 “주변 소고기 맛집 알려줘””로의 드래그 앤 드롭 동작에 응답하여, 맛집에 연관된 어플리케이션 실행 결과를 표시할 수 있다.
다시 도 7에 도시된 바와 같은 아이콘을 활용하는 경우에는, 사용자는 아이콘을 선택하고 해당 아이콘을 드래그하여 특정 문구 위에 드롭할 수 있다. 예를 들어, 사용자가 맛집 도메인에 관련된 아이콘을 선택 후, ““수원 가는길 알려줘””에 대응되는 문장으로 드래그 앤 드롭하는 경우, 전자 장치(100)는 수원 맛집에 대한 정보를 표시할 수 있다.
이와 같이, 음성 인식을 처리하는 방법 및 사용자 인터페이스에 출력하는 방법은 이전 도메인 정보를 활용하므로 사용자의 의도를 정확하게 파악할 수 있어 오류를 줄일 수 있다.
또한, 사용자 입장에서는 이전의 음성 인식 결과를 기반으로 원하는 내용만 간단히 발화할 수 있기 때문에 사용성이 개선될 수 있다. 나아가, 사용자는 이전 발화를 통해 어떻게 발화해야 하는지 직관적으로 알 수 있다.
도 16은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 16을 참조하면, 다양한 실시 예에서의 전자 장치(1601), 제1 전자 장치(1602), 제2 전자 장치(1604) 또는 서버(1606)가 네트워크(1662) 또는 근거리 통신(1664)을 통하여 서로 연결될 수 있다. 전자 장치(1601)는 버스(1610), 프로세서(1620), 메모리(1630), 입출력 인터페이스(1650), 디스플레이(1660), 및 통신 인터페이스(1670)를 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(1601)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
버스(1610)는, 예를 들면, 구성요소들(1620-1670)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
프로세서(1620)는, 중앙처리장치(Central Processing Unit (CPU)), 어플리케이션 프로세서(Application Processor (AP)), 또는 커뮤니케이션 프로세서(Communication Processor (CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(1620)는, 예를 들면, 전자 장치(1601)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(1630)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(1630)는, 예를 들면, 전자 장치(1601)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시 예에 따르면, 메모리(1630)는 소프트웨어 및/또는 프로그램(1640)을 저장할 수 있다. 프로그램(1620)은, 예를 들면, 커널(1641), 미들웨어(1643), 어플리케이션 프로그래밍 인터페이스(Application Programming Interface (API))(1645), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(1647) 등을 포함할 수 있다. 커널(1641), 미들웨어(1643), 또는 API(1645)의 적어도 일부는, 운영 시스템(Operating System (OS))으로 지칭될 수 있다.
커널(1641)은, 예를 들면, 다른 프로그램들(예: 미들웨어(1643), API(1645), 또는 어플리케이션 프로그램(1647))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(1610), 프로세서(1620), 또는 메모리(1630) 등)을 제어 또는 관리할 수 있다. 또한, 커널(1641)은 미들웨어(1643), API(1645), 또는 어플리케이션 프로그램(1647)에서 전자 장치(1601)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(1643)는, 예를 들면, API(1645) 또는 어플리케이션 프로그램(1647)이 커널(1641)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 미들웨어(1643)는 어플리케이션 프로그램(1647)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(1643)는 어플리케이션 프로그램(1647) 중 적어도 하나에 전자 장치(1601)의 시스템 리소스(예: 버스(1610), 프로세서(1620), 또는 메모리(1630) 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 미들웨어(1643)는 상기 적어도 하나에 부여된 우선 순위에 따라 상기 하나 이상의 작업 요청들을 처리함으로써, 상기 하나 이상의 작업 요청들에 대한 스케쥴링 또는 로드 밸런싱 등을 수행할 수 있다.
API(1645)는, 예를 들면, 어플리케이션(1647)이 커널(1641) 또는 미들웨어(1643)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
입출력 인터페이스(1650)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(1601)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 입출력 인터페이스(1650)는 전자 장치(1601)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(1660)는, 예를 들면, 액정 디스플레이(Liquid Crystal Display (LCD)), 발광 다이오드(Light-Emitting Diode (LED)) 디스플레이, 유기 발광 다이오드(Organic LED (OLED)) 디스플레이, 또는 마이크로 전자기계 시스템(microelectromechanical systems, MEMS) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(1660)는, 예를 들면, 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 디스플레이(1660)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스처, 근접, 또는 호버링(hovering) 입력을 수신할 수 있다.
통신 인터페이스(1670)는, 예를 들면, 전자 장치(1601)와 외부 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604), 또는 서버(1606)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(1670)는 무선 통신 또는 유선 통신을 통해서 네트워크(1662)에 연결되어 외부 장치(예: 제2 전자 장치(1604) 또는 서버(1606))와 통신할 수 있다.
무선 통신은, 예를 들면 셀룰러 통신 프로토콜로서, 예를 들면 LTE(Long-Term Evolution), LTE-A(LTE-Advanced), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), UMTS(Universal Mobile Telecommunications System), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 중 적어도 하나를 사용할 수 있다. 또한 무선 통신은, 예를 들면, 근거리 통신(1664)을 포함할 수 있다. 근거리 통신(1664)는, 예를 들면, Wi-Fi(Wireless Fidelity), Bluetooth, NFC(Near Field Communication), MST(magnetic stripe transmission), 또는 GNSS 중 적어도 하나를 포함할 수 있다.
MST는 전자기 신호를 이용하여 전송 데이터에 따라 펄스를 생성하고, 상기 펄스는 자기장 신호를 발생시킬 수 있다. 전자 장치(1601)는 상기 자기장 신호를 POS(point of sales)에 전송하고, POS는 MST 리더(MST reader)를 이용하여 상기 자기장 신호는 검출하고, 검출된 자기장 신호를 전기 신호로 변환함으로써 상기 데이터를 복원할 수 있다.
GNSS는 사용 지역 또는 대역폭 등에 따라, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo(the European global satellite-based navigation system) 중 적어도 하나를 포함할 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 혼용되어 사용(interchangeably used)될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard-232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(1662)는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
제1 전자 장치(1602) 및 제2 전자 장치(1604) 각각은 전자 장치(1601)와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 서버(1606)는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시 예에 따르면, 전자 장치(1601)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604), 또는 서버(1606))에서 실행될 수 있다. 한 실시 예에 따르면, 전자 장치(1601)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(1601)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 전자 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604), 또는 서버(1606))에게 요청할 수 있다. 다른 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(1601)로 전달할 수 있다. 전자 장치(1601)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 17은다양한 실시 예에 따른 전자 장치의 블록도를 나타낸다.
도 17을 참조하면, 전자 장치(1701)는, 예를 들면, 도 16에 도시된 전자 장치(1601)의 전체 또는 일부를 포함할 수 있다. 전자 장치(1701)는 하나 이상의 프로세서(예: AP)(1710), 통신 모듈(1720), 가입자 식별 모듈(1724), 메모리(1730), 센서 모듈(1740), 입력 장치(1750), 디스플레이(1760), 인터페이스(1770), 오디오 모듈(1780), 카메라 모듈(1791), 전력 관리 모듈(1795), 배터리(1796), 인디케이터(1797), 및 모터(1798)를 포함할 수 있다.
프로세서(1710)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(1710)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(1710)는, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시 예에 따르면, 프로세서(1710)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 프로세서(1710)는 도 17에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(1721))를 포함할 수도 있다. 프로세서(1710)는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
통신 모듈(1720)은, 도 16의 통신 인터페이스(1670)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(1720)은, 예를 들면, 셀룰러 모듈(1721), Wi-Fi 모듈(1723), 블루투스 모듈(1725), GNSS 모듈(1727)(예: GPS 모듈, Glonass 모듈, Beidou 모듈, 또는 Galileo 모듈), NFC 모듈(1728), 및 RF(radio frequency) 모듈(1729)을 포함할 수 있다.
셀룰러 모듈(1721)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(1721)은 가입자 식별 모듈(예: SIM 카드)(1724)를 이용하여 통신 네트워크 내에서 전자 장치(1701)의 구별 및 인증을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(1721)은 프로세서(1710)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(1721)은 커뮤니케이션 프로세서(CP)를 포함할 수 있다.
Wi-Fi 모듈(1723), 블루투스 모듈(1725), GNSS 모듈(1727) 또는 NFC 모듈(1728) 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시 예에 따르면, 셀룰러 모듈(1721), Wi-Fi 모듈(1723), 블루투스 모듈(1725), GNSS 모듈(1727), 또는 NFC 모듈(1728) 중 적어도 일부(예: 두 개 이상)는 하나의 IC(integrated chip) 또는 IC 패키지 내에 포함될 수 있다.
RF 모듈(1729)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(1729)은, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시 예에 따르면, 셀룰러 모듈(1721), Wi-Fi 모듈(1723), 블루투스 모듈(1725), GNSS 모듈(1727), NFC 모듈(1728) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
가입자 식별 모듈(1724)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID (integrated circuit card identifier)) 또는 가입자 정보(예: IMSI (international mobile subscriber identity))를 포함할 수 있다.
메모리(1730)(예: 메모리(1630))는, 예를 들면, 내장 메모리(1732) 또는 외장 메모리(1734)를 포함할 수 있다. 내장 메모리(1732)는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비-휘발성(non-volatile) 메모리 (예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), 마스크(mask) ROM, 플래시(flash) ROM, 플래시 메모리(예: 낸드플래시(NAND flash) 또는 노아플래시(NOR flash) 등), 하드 드라이브, 또는 SSD(solid state drive) 중 적어도 하나를 포함할 수 있다.
외장 메모리(1734)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(MultiMediaCard), 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 외장 메모리(1734)는 다양한 인터페이스를 통하여 전자 장치(1701)와 기능적으로 및/또는 물리적으로 연결될 수 있다.
센서 모듈(1740)은, 예를 들면, 물리량을 계측하거나 전자 장치(1701)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(1740)은, 예를 들면, 제스처 센서(1740A), 자이로 센서(1740B), 기압 센서(1740C), 마그네틱 센서(1740D), 가속도 센서(1740E), 그립 센서(1740F), 근접 센서(1740G), 컬러 센서(1740H)(예: RGB 센서), 생체 센서(1740I), 온/습도 센서(1740J), 조도 센서(1740K), 또는 UV(ultra violet) 센서(1740M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈(1740)은, 예를 들면, 후각 센서(E-nose sensor), EMG(electromyography) 센서, EEG(electroencephalogram) 센서, ECG(electrocardiogram) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(1740)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(1701)는 프로세서(1710)의 일부로서 또는 별도로, 센서 모듈(1740)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(1710)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(1740)을 제어할 수 있다.
입력 장치(1750)는, 예를 들면, 터치 패널(touch panel)(1752), (디지털) 펜 센서(pen sensor)(1754), 키(key)(1756), 또는 초음파(ultrasonic) 입력 장치(1758)를 포함할 수 있다. 터치 패널(1752)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(1752)은 제어 회로를 더 포함할 수도 있다. 터치 패널(1752)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
(디지털) 펜 센서(1754)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 시트(sheet)를 포함할 수 있다. 키(1756)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(1758)는 마이크(예: 마이크(1788))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(1760)(예: 디스플레이(1660))는 패널(1762), 홀로그램 장치(1764), 또는 프로젝터(1766)을 포함할 수 있다. 패널(1762)은, 도 16의 디스플레이(1660)과 동일 또는 유사한 구성을 포함할 수 있다. 패널(1762)은, 예를 들면, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 패널(1762)은 터치 패널(1752)과 하나의 모듈로 구성될 수도 있다. 홀로그램 장치(1764)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(1766)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(1701)의 내부 또는 외부에 위치할 수 있다. 한 실시 예에 따르면, 디스플레이(1760)는 패널(1762), 홀로그램 장치(1764), 또는 프로젝터(1766)를 제어하기 위한 제어 회로를 더 포함할 수 있다.
인터페이스(1770)는, 예를 들면, HDMI(1772), USB(1774), 광 인터페이스(optical interface)(1776), 또는 D-sub(D-subminiature)(1778)을 포함할 수 있다. 인터페이스(1770)는, 예를 들면, 도 16에 도시된 통신 인터페이스(1670)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(1770)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD 카드/MMC 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(1780)은, 예를 들면, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(1780)의 적어도 일부 구성요소는, 예를 들면, 도 16에 도시된 입출력 인터페이스(1650)에 포함될 수 있다. 오디오 모듈(1780)은, 예를 들면, 스피커(1782), 리시버(1784), 이어폰(1786), 또는 마이크(1788) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
카메라 모듈(1791)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래시(flash)(예: LED 또는 제논 램프(xenon lamp))를 포함할 수 있다.
전력 관리 모듈(1795)은, 예를 들면, 전자 장치(1701)의 전력을 관리할 수 있다. 한 실시 예에 따르면, 전력 관리 모듈(1795)은 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(1796)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(1796)은, 예를 들면, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
인디케이터(1797)는 전자 장치(1701) 혹은 그 일부(예: 프로세서(1710))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(1798)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 전자 장치(1701)는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB(Digital Multimedia Broadcasting), DVB(Digital Video Broadcasting), 또는 미디어플로(MediaFLOTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시 예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시 예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
도 18은 다양한 실시 예에 따른 프로그램 모듈의 블록도를 나타낸다.
한 실시 예에 따르면, 프로그램 모듈(1810)(예: 프로그램(1640))은 전자 장치(예: 전자 장치(1601))에 관련된 자원을 제어하는 운영 체제(OS) 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(1647))을 포함할 수 있다. 운영 체제는, 예를 들면, Android, iOS, Windows, Symbian, 또는 Tizen 등이 될 수 있다.
프로그램 모듈(1810)은 커널(1820), 미들웨어(1830), API(1860), 및/또는 어플리케이션(1870)을 포함할 수 있다. 프로그램 모듈(1810)의 적어도 일부는 전자 장치 상에 프리로드(preload) 되거나, 외부 전자 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604), 서버(1606) 등)로부터 다운로드 가능하다.
커널(1820)(예: 커널(1641))은, 예를 들면, 시스템 리소스 매니저(1821) 또는 디바이스 드라이버(1823)를 포함할 수 있다. 시스템 리소스 매니저(1821)는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시 예에 따르면, 시스템 리소스 매니저(1821)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 디바이스 드라이버(1823)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
미들웨어(1830)는, 예를 들면, 어플리케이션(1870)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(1870)이 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API(1860)을 통해 다양한 기능들을 어플리케이션(1870)으로 제공할 수 있다. 한 실시 예에 따르면, 미들웨어(1830)(예: 미들웨어(1643))은 런타임 라이브러리(1835), 어플리케이션 매니저(application manager)(1841), 윈도우 매니저(window manager)(1842), 멀티미디어 매니저(multimedia manager)(1843), 리소스 매니저(resource manager)(1844), 파워 매니저(power manager)(1845), 데이터베이스 매니저(database manager)(1846), 패키지 매니저(package manager)(1847), 연결 매니저(connectivity manager)(1848), 통지 매니저(notification manager)(1849), 위치 매니저(location manager)(1850), 그래픽 매니저(graphic manager)(1851), 보안 매니저(security manager)(1852), 또는 결제 매니저(1854) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(1835)는, 예를 들면, 어플리케이션(1870)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(1835)는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
어플리케이션 매니저(1841)는, 예를 들면, 어플리케이션(1870) 중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 윈도우 매니저(1842)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(1843)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 리소스 매니저(1844)는 어플리케이션(1870) 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
파워 매니저(1845)는, 예를 들면, 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보 등을 제공할 수 있다. 데이터베이스 매니저(1846)은 어플리케이션(1870) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(1847)은 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
연결 매니저(1848)은, 예를 들면, Wi-Fi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 통지 매니저(1849)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 위치 매니저(1850)은 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(1851)은 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(1852)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다. 한 실시 예에 따르면, 전자 장치(예: 전자 장치(1601))가 전화 기능을 포함한 경우, 미들웨어(1830)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager)를 더 포함할 수 있다.
미들웨어(1830)는 전술한 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 미들웨어(1830)는 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 미들웨어(1830)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
API(1860)(예: API(1645))은, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, Android 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(Tizen)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(1870)(예: 어플리케이션 프로그램(1647))은, 예를 들면, 홈(1871), 다이얼러(1872), SMS/MMS(1873), IM(instant message)(1874), 브라우저(1875), 카메라(1876), 알람(1877), 컨택트(1878), 음성 다이얼(1879), 이메일(1880), 달력(1881), 미디어 플레이어(1882), 앨범(1883), 또는 시계(1884), 건강 관리(health care)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공(예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
한 실시 예에 따르면, 어플리케이션(1870)은 전자 장치(예: 전자 장치(1601))와 외부 전자 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604)) 사이의 정보 교환을 지원하는 어플리케이션(이하, 설명의 편의상, "정보 교환 어플리케이션")을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 전자 장치로 전달하는 기능을 포함할 수 있다. 또한, 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다.
장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 적어도 하나의 기능(예: 외부 전자 장치 자체(또는 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는 해상도) 조절), 외부 전자 장치에서 동작하는 어플리케이션 또는 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스 등)를 관리(예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시 예에 따르면, 어플리케이션(1870)은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시 예에 따르면, 어플리케이션(1870)은 외부 전자 장치(예: 제1 전자 장치(1602), 제2 전자 장치(1604)), 및 서버(1606)) 로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시 예에 따르면, 어플리케이션(1870)은 프리로드 어플리케이션(preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션(third party application)을 포함할 수 있다. 도시된 실시 예에 따른 프로그램 모듈(1810)의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시 예에 따르면, 프로그램 모듈(1810)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 프로그램 모듈(1810)의 적어도 일부는, 예를 들면, 프로세서(예: 프로세서(1710))에 의해 구현(implement)(예: 실행)될 수 있다. 프로그램 모듈(1810)의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)이 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM, DVD(Digital Versatile Disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM, RAM, 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    메모리, 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    제1 사용자 입력을 획득하고,
    상기 제1 사용자 입력 및 상기 제1 사용자 입력에 매칭되는 제1 도메인에 기반하여 제1 정보를 결정하고,
    상기 제1 사용자 입력에 후속하는 제2 사용자 입력을 획득하고,
    상기 제2 사용자 입력에 응답하여, 상기 제2 사용자 입력 및 상기 제1 도메인에 기반하여 제2 정보를 결정하고,
    상기 제2 사용자 입력, 및 상기 제1 도메인과 구분되는 제2 도메인에 기반하여 제3 정보를 결정하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 프로세서는, 상기 제1 사용자 입력 이전에 획득된 사용자 입력 이력에 기초한 상기 제2 도메인에 기반하여 상기 제3 정보를 결정하도록 설정되는, 전자 장치.
  3. 청구항 2에 있어서,
    상기 프로세서는, 상기 사용자 입력 이력에 대응되는 도메인 중 상기 제1 도메인과 중복되는 도메인은 상기 제2 도메인에서 제외하도록 설정되는, 전자 장치.
  4. 청구항 1에 있어서,
    상기 프로세서는, 상기 제1 도메인 및 제2 도메인이 특정 어플리케이션에 연동되도록 설정되는, 전자 장치.
  5. 청구항 4에 있어서,
    상기 프로세서는, 상기 각각의 도메인에 연동된 서비스 실행의 결과를 획득하여 상기 제1 정보, 상기 제2 정보 및 상기 제3 정보를 결정하도록 설정되는, 전자 장치.
  6. 청구항 1에 있어서,
    마이크를 더 포함하고,
    상기 제1 사용자 입력 또는 상기 제2 사용자 입력 중 적어도 하나는 상기 마이크를 통해 획득되는 음성 입력에 대응되는, 전자 장치,
  7. 청구항 1에 있어서,
    상기 프로세서는, 상기 제2 사용자 입력에 후속하는 사용자 입력 이전에 상기 제2 정보 및 상기 제3 정보를 출력하도록 설정되는 것을 특징으로 하는, 전자 장치.
  8. 서버에 있어서,
    저장소(storage);
    전자 장치로부터 복수의 사용자 입력을 수신하는 통신 회로; 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    상기 복수의 사용자 입력 중 제1 사용자 입력의 제1 도메인과의 매칭 여부를 결정하고,
    상기 제1 사용자 입력의 상기 제1 도메인과 구분되는 제2 도메인과의 매칭 여부를 결정하고,
    상기 제1 도메인 및 상기 제2 도메인과의 매칭 결정에 따라, 상기 제1 도메인에 관한 정보 및 상기 제2 도메인에 관한 정보를 상기 전자 장치로 전송하는 것을 특징으로 하는,
    서버.
  9. 청구항 8에 있어서,
    상기 프로세서는, 상기 적어도 하나의 프로세서는, 상기 복수의 사용자 입력 중 상기 제1 사용자 입력 직전에 획득된 사용자 입력에 기초하여 상기 제1 도메인을 결정하도록 설정되는, 서버.
  10. 청구항 9에 있어서,
    상기 프로세서는, 상기 복수의 사용자 입력 중 상기 제1 사용자 입력 이전에 획득된 사용자 입력에 기초하여 상기 제1 도메인을 결정하도록 설정되는, 서버.
  11. 청구항 8에 있어서,
    상기 프로세서는, 상기 복수의 사용자 입력 중 상기 제1 사용자 입력 이전에 획득된 사용자 입력 및 상기 제1 사용자 입력을 제외한 나머지 사용자 입력에 기초하여 제2 도메인을 결정하도록 설정되는, 서버.
  12. 청구항 11에 있어서,
    상기 프로세서는, 상기 제1 사용자 입력에 대한 음성 인식을 수행하도록 설정되는, 서버.
  13. 디스플레이를 구비한 전자 장치에서,
    제1 사용자 입력을 획득하는 동작;
    상기 제1 사용자 입력에 응답하여, 상기 디스플레이 상에 제1 정보를 출력하는 동작;
    상기 제1 사용자 입력에 후속하는 제2 사용자 입력을 획득하는 동작; 및
    상기 제2 사용자 입력에 응답하여, 상기 디스플레이 상에 제2 정보 및 제3 정보를 출력하는 동작을 포함하고,
    상기 제2 정보는, 상기 제1 사용자 입력에 매칭되는 제1 도메인에 대응되는 정보이고, 상기 제3 정보는, 상기 제1 카테고리와 구분되는 제2 도메인에 대응되는 정보인,
    방법.
  14. 청구항 13에 있어서,
    상기 디스플레이의 일부분은, 상기 제1 정보 및 상기 제2 정보와 연관된 아이콘을 포함하는, 방법.
  15. 청구항 14에 있어서,
    상기 아이콘은 상기 제2 사용자 입력에 응답하여, 상태가 변화하는 동작을 포함하는, 방법.
  16. 청구항 13에 있어서,
    상기 제2 도메인은, 상기 제1 사용자 입력 이전에 획득된 사용자 입력 이력에 기초하여 결정되는 것을 특징으로 하는, 방법.
  17. 청구항 16 항에 있어서,
    상기 제2 정보 또는 상기 제3 정보 중 어느 하나에 대한 선택을 획득하는 동작; 및
    상기 선택에 응답하여, 어플리케이션 화면을 출력하는 동작을 포함하는, 방법.
  18. 청구항 17에 있어서,
    상기 선택은, 상기 디바이스의 표면에 대한 사용자의 접촉에 대응되는, 방법.
  19. 청구항 13에 있어서,
    상기 제1 사용자 입력 또는 상기 제2 사용자 입력 중 적어도 하나는 사용자의 음성에 대응되는, 방법.
  20. 청구항 13에 있어서,
    상기 제2 정보 및 상기 제3 정보를 출력하는 동작은 상기 제2 정보 및 상기 제3 정보를 순차적으로 표시하는 동작을 포함하는, 방법.
KR1020160157498A 2016-11-24 2016-11-24 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버 KR20180058476A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160157498A KR20180058476A (ko) 2016-11-24 2016-11-24 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버
PCT/KR2017/013134 WO2018097549A1 (en) 2016-11-24 2017-11-17 Method for processing various inputs, and electronic device and server for the same
EP17874038.7A EP3519925A4 (en) 2016-11-24 2017-11-17 METHOD FOR PROCESSING VARIOUS INPUTS, ELECTRONIC DEVICE AND SERVER THEREFOR
US15/817,651 US20180143802A1 (en) 2016-11-24 2017-11-20 Method for processing various inputs, and electronic device and server for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160157498A KR20180058476A (ko) 2016-11-24 2016-11-24 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버

Publications (1)

Publication Number Publication Date
KR20180058476A true KR20180058476A (ko) 2018-06-01

Family

ID=62146989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160157498A KR20180058476A (ko) 2016-11-24 2016-11-24 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버

Country Status (4)

Country Link
US (1) US20180143802A1 (ko)
EP (1) EP3519925A4 (ko)
KR (1) KR20180058476A (ko)
WO (1) WO2018097549A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020264184A1 (en) * 2019-06-28 2020-12-30 Snap Inc. Contextual navigation menu
US11244118B2 (en) 2019-08-01 2022-02-08 Samsung Electronics Co., Ltd. Dialogue management method based on dialogue management framework and apparatus thereof
US11948567B2 (en) 2018-12-28 2024-04-02 Samsung Electronics Co., Ltd. Electronic device and control method therefor

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190139489A (ko) * 2018-06-08 2019-12-18 삼성전자주식회사 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
US11481189B2 (en) 2018-08-17 2022-10-25 The Toronto-Dominion Bank Methods and systems for transferring a session between audible and visual interfaces
US10929098B2 (en) * 2018-08-17 2021-02-23 The Toronto-Dominion Bank Methods and systems for conducting a session over audible and visual interfaces
WO2020060151A1 (en) 2018-09-19 2020-03-26 Samsung Electronics Co., Ltd. System and method for providing voice assistant service
JP7182969B2 (ja) * 2018-09-20 2022-12-05 ヤフー株式会社 コミュニケーション支援装置、ユーザデバイス、コミュニケーション支援方法、およびプログラム
JP7215119B2 (ja) * 2018-11-30 2023-01-31 株式会社リコー 情報処理システム、プログラムおよび情報処理方法
KR20200101103A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 사용자 입력을 처리하는 전자 장치 및 방법
CN110010131B (zh) * 2019-04-04 2022-01-04 深圳市语芯维电子有限公司 一种语音信息处理的方法和装置
CN110377716B (zh) 2019-07-23 2022-07-12 百度在线网络技术(北京)有限公司 对话的交互方法、装置及计算机可读存储介质
US11061638B2 (en) 2019-09-17 2021-07-13 The Toronto-Dominion Bank Dynamically determining an interface for presenting information to a user
KR20210072471A (ko) * 2019-12-09 2021-06-17 현대자동차주식회사 음성 명령 인식 장치 및 그 방법
CN114694646A (zh) * 2020-12-31 2022-07-01 华为技术有限公司 一种语音交互处理方法及相关装置
US20230128422A1 (en) * 2021-10-27 2023-04-27 Meta Platforms, Inc. Voice Command Integration into Augmented Reality Systems and Virtual Reality Systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552399B2 (en) * 2005-12-27 2009-06-23 International Business Machines Corporation Extensible icons with multiple drop zones
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
ES2363037T3 (es) * 2007-09-21 2011-07-19 The Boeing Company Control de vehículos.
US8958848B2 (en) * 2008-04-08 2015-02-17 Lg Electronics Inc. Mobile terminal and menu control method thereof
US10241752B2 (en) * 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
KR101649911B1 (ko) * 2010-01-04 2016-08-22 삼성전자 주식회사 확장 도메인을 이용한 대화 시스템 및 그 자연어 인식 방법
US20120317119A1 (en) 2010-02-10 2012-12-13 Hitachi, Ltd. Product Line Type Development Supporting Device
US9760566B2 (en) * 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
KR20140065075A (ko) * 2012-11-21 2014-05-29 삼성전자주식회사 메시지 기반의 대화기능 운용방법 및 이를 지원하는 단말장치
KR102211595B1 (ko) * 2012-12-07 2021-02-04 삼성전자주식회사 음성 인식 장치 및 그 제어 방법
US9607046B2 (en) * 2012-12-14 2017-03-28 Microsoft Technology Licensing, Llc Probability-based state modification for query dialogues
KR102049855B1 (ko) * 2013-01-31 2019-11-28 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US10572476B2 (en) * 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US9875494B2 (en) * 2013-04-16 2018-01-23 Sri International Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant
US10445115B2 (en) * 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
KR101922663B1 (ko) * 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
KR101641424B1 (ko) * 2014-09-11 2016-07-20 엘지전자 주식회사 단말기 및 그 동작 방법
US9606716B2 (en) * 2014-10-24 2017-03-28 Google Inc. Drag-and-drop on a mobile device
US20160164815A1 (en) * 2014-12-08 2016-06-09 Samsung Electronics Co., Ltd. Terminal device and data processing method thereof
KR20160087640A (ko) * 2015-01-14 2016-07-22 엘지전자 주식회사 이동단말기 및 그 제어방법
US10509829B2 (en) * 2015-01-21 2019-12-17 Microsoft Technology Licensing, Llc Contextual search using natural language
US9953648B2 (en) 2015-05-11 2018-04-24 Samsung Electronics Co., Ltd. Electronic device and method for controlling the same
US10740384B2 (en) * 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10691473B2 (en) * 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10445315B2 (en) * 2016-04-28 2019-10-15 Microsoft Technology Licensing, Llc Integrated operating system search using scope options
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11948567B2 (en) 2018-12-28 2024-04-02 Samsung Electronics Co., Ltd. Electronic device and control method therefor
WO2020264184A1 (en) * 2019-06-28 2020-12-30 Snap Inc. Contextual navigation menu
US11340921B2 (en) 2019-06-28 2022-05-24 Snap Inc. Contextual navigation menu
US11625255B2 (en) 2019-06-28 2023-04-11 Snap Inc. Contextual navigation menu
US11803403B2 (en) 2019-06-28 2023-10-31 Snap Inc. Contextual navigation menu
US11244118B2 (en) 2019-08-01 2022-02-08 Samsung Electronics Co., Ltd. Dialogue management method based on dialogue management framework and apparatus thereof

Also Published As

Publication number Publication date
US20180143802A1 (en) 2018-05-24
EP3519925A1 (en) 2019-08-07
WO2018097549A1 (en) 2018-05-31
EP3519925A4 (en) 2019-09-25

Similar Documents

Publication Publication Date Title
US11582337B2 (en) Electronic device and method of executing function of electronic device
US11561763B2 (en) Electronic device for processing multi-modal input, method for processing multi-modal input and server for processing multi-modal input
CN110199350B (zh) 用于感测语音结束的方法和实现该方法的电子设备
KR102414122B1 (ko) 사용자 발화를 처리하는 전자 장치 및 그 동작 방법
US11955124B2 (en) Electronic device for processing user speech and operating method therefor
KR20180058476A (ko) 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버
EP3531416A1 (en) System for processing user utterance and controlling method thereof
KR102495517B1 (ko) 전자 장치, 전자 장치의 음성 인식 방법
US11137978B2 (en) Method for operating speech recognition service and electronic device supporting the same
KR20170044426A (ko) 음성 신호 인식 방법 및 이를 제공하는 전자 장치
US11360791B2 (en) Electronic device and screen control method for processing user input by using same
KR20170034154A (ko) 콘텐츠 제공 방법 및 이를 수행하는 전자 장치
KR20180022021A (ko) 음성 인식 방법 및 이를 수행하는 전자 장치
EP3603040B1 (en) Electronic device and method of executing function of electronic device
US10996922B2 (en) Electronic apparatus for processing user utterance
KR20160027640A (ko) 전자 장치 및 전자 장치에서의 개체명 인식 방법
KR20190018886A (ko) 음성 인식을 수행하는 방법 및 이를 사용하는 전자 장치
KR20170060567A (ko) 전자 장치 및 그 제어 방법
KR101993368B1 (ko) 멀티 모달 입력을 처리하는 전자 장치, 멀티 모달 입력을 처리하는 방법 및 멀티 모달 입력을 처리하는 서버

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal