KR102667413B1 - 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치 - Google Patents

음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치 Download PDF

Info

Publication number
KR102667413B1
KR102667413B1 KR1020160141177A KR20160141177A KR102667413B1 KR 102667413 B1 KR102667413 B1 KR 102667413B1 KR 1020160141177 A KR1020160141177 A KR 1020160141177A KR 20160141177 A KR20160141177 A KR 20160141177A KR 102667413 B1 KR102667413 B1 KR 102667413B1
Authority
KR
South Korea
Prior art keywords
application
screen
electronic device
page
virtual input
Prior art date
Application number
KR1020160141177A
Other languages
English (en)
Other versions
KR20180046208A (ko
Inventor
김성진
김일구
김상하
문경진
유지상
장병준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160141177A priority Critical patent/KR102667413B1/ko
Priority to PCT/KR2017/011833 priority patent/WO2018080162A1/ko
Priority to US16/345,491 priority patent/US10978068B2/en
Publication of KR20180046208A publication Critical patent/KR20180046208A/ko
Application granted granted Critical
Publication of KR102667413B1 publication Critical patent/KR102667413B1/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/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
    • 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/0483Interaction with page-structured environments, e.g. book metaphor
    • 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/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
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

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

Abstract

전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 전자 장치가 제공된다.
전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하는 방법은, 애플리케이션을 실행 하기 위한 음성 명령에 대한 음성 인식을 수행하는 단계; 상기 음성 인식 결과에 기초하여, 상기 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정하는 단계; 현재 디스플레이 되고 있는 제1 화면을 대신하여, 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하는 단계; 및 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 단계를 포함할 수 있다.

Description

음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치 {Method and Apparatus for Executing Application based on Voice Command}
본 개시는 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 음성 명령에 기초하여 가상 입력을 생성하고 생성된 가상 입력에 응답하여 애플리케이션을 실행하는 방법 및 장치에 관한 것이다.
최근에 스마트폰과 같이 다양한 기능을 복합적으로 수행하는 전자 장치들이 개발됨에 따라, 조작성을 향상하기 위하여 음성 인식 기능이 탑재된 전자 장치들이 출시되고 있다. 음성 인식 기능은 사용자의 음성을 인식함으로써, 장치의 다양한 기능을 별도의 버튼 조작 또는 터치 모듈의 접촉에 의하지 않고 손쉽게 실행할 수 있는 장점을 갖는다.
이러한 음성 인식 기능에 의하면, 예를 들어 스마트폰과 같은 휴대용 단말기는 별도의 버튼을 누르는 조작 없이 통화 기능을 수행하거나 문자 메시지를 작성할 수 있다. 또한, 전자 장치의 음성 인식 기능에 의하면, 사용자는, 길 찾기, 인터넷 검색, 알람 설정 등 다양한 동작을 수행하도록 손쉽게 전자 장치들을 제어할 수 있다.
한편, 전자 장치가 보다 다양한 용도에 사용되기 위해서, 용도에 따라 애플리케이션이 전자 장치 상에 추가로 설치되고 이용될 수 있다. 전자 장치 상에 설치될 수 있는 애플리케이션은, 전자 장치의 제조사 또는 전자 장치의 운영 체제(OS, Operating System)의 제조사에 의해 제공될 수도 있고, 그 외의 서드 파티(third party) 제공자에 의해 제공될 수 있다.
음성 제어를 지원하지 않는 애플리케이션이 새롭게 설치되고 해당 어플리케이션의 API(application programming interface)가 공개되지 않은 경우, 전자 장치가 사용자의 음성 명령에 기초하여 해당 애플리케이션을 구동하고 제어하는데 어려움이 있다.
따라서, 일 실시예에 따르면, 음성 명령에 기초하여 생성된 가상 입력에 응답하여 애플리케이션을 실행함으로써 사용자의 음성 명령에 대응하는 동작을 수행하는 단계를 포함하는, 전자 장치가 애플리케이션을 실행하는 방법이 제공될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하는 방법은, 애플리케이션을 실행 하기 위한 음성 명령에 대한 음성 인식을 수행하는 단계; 상기 음성 인식 결과에 기초하여, 상기 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정하는 단계; 현재 디스플레이 되고 있는 제1 화면을 대신하여, 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하는 단계; 및 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 단계를 포함할 수 있다.
다른 일 실시예에 따르면, 전자 장치는, 사용자의 음성 명령을 수신하는 수신부; 상기 음성 명령에 대한 음성 인식을 수행하고, 상기 음성 인식 결과에 기초하여, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정하고, 현재 디스플레이 되고 있는 제1 화면을 대신하여, 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하고, 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 적어도 하나의 프로세서; 및 상기 제1 화면을 디스플레이 하는 디스플레이를 포함할 수 있다.
다른 일 실시예에 따르면, 전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하도록 하는 명령어들이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 애플리케이션을 실행하는 방법은, 애플리케이션을 실행 하기 위한 음성 명령에 대한 음성 인식을 수행하는 단계; 상기 음성 인식 결과에 기초하여, 상기 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정하는 단계; 현재 디스플레이 되고 있는 제1 화면을 대신하여, 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하는 단계; 및 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 단계를 포함할 수 있다.
다른 일 실시예에 따르면, 전자 장치와 통신하는 서버는, 상기 전자 장치를 통해 입력된 사용자의 음성 명령을 수신하는 수신부; 상기 음성 명령에 대한 음성 인식을 수행하고, 상기 음성 인식 결과에 기초하여, 상기 전자 장치에서 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정하고, 상기 전자 장치가 현재 디스플레이 하고 있는 제1 화면을 대신하여, 상기 전자 장치가 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하도록 제어하기 위한 가상 입력 시퀀스를 생성하는 적어도 하나의 프로세서; 및 상기 가상 입력 시퀀스를 상기 전자 장치에게 송신하는 송신부를 포함하고, 상기 전자 장치는 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 것을 특징으로 할 수 있다.
도 1a 및 1b는 음성 제어를 지원하지 않는 애플리케이션이 전자 장치에 의해 실행되는 화면을 도시한다.
도 2a 및 2b는 일 실시예에 따른 음성 인식 시스템을 설명하기 위한 도면이다.
도 3a 및 3b는 일 실시예에 따른 전자 장치의 블록도이다.
도 4는 일 실시예에 따라 전자 장치가 애플리케이션을 실행하는 방법의 흐름도이다.
도 5는 일 실시예에 따라 전자 장치가 애플리케이션을 실행하는 방법의 구체적인 흐름도이다.
도 6a, 6b 및 6c는 일 실시예에 따라 전자 장치가 디스플레이 하는 화면의 예를 도시한다.
도 7a 및 7b는 일 실시예에 따라 전자 장치에서 생성되는 가상 입력 시퀀스의 예를 도시한다.
도 8 및 9는 일 실시예에 따라 저장되는 애플리케이션의 복수의 페이지들의 트리 구조를 설명하기 위한 도면이다.
도 10은 일 실시예에 따라 전자 장치가 사용자 입력 패턴을 학습하고, 학습된 정보에 기초하여 애플리케이션을 실행하는 방법을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 음성 인식 시스템이 동작하는 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 또한, 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다. 단수의 표현은 문맥상 명백하게 단수를 뜻하지 않는 한, 복수의 의미를 포함한다. 또한, 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서, 특히, 특허 청구 범위에서 사용된 “상기” 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시예에서" 또는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
본 명세서에서 “애플리케이션”이란, 특정 업무 처리 또는 특정 기능 수행을 위해서 작성된 프로그램을 의미할 수 있다. 전자 장치는 운영 체제(OS, Operating System)를 통해 애플리케이션을 실행할 수 있다. 전자 장치의 운영 체제는, 애플리케이션을 실행함에 있어서, 전자 장치의 사용자로부터 사용자 입력을 수신하여 애플리케이션에게 전달하고, 애플리케이션의 출력을 사용자에게 전달할 수 있다.
명세서에서는, 컨텐츠를 재생할 수 있는 “비디오 워칭 애플리케이션”이라는 가상의 애플리케이션을 예로 들어 설명하였지만, 실시예는 이에 제한되지 않는다. 일 실시예에 따른 전자 장치가 실행할 수 있는 애플리케이션에는, 컨텐츠를 재생하기 위한 애플리케이션, 영화나 연극 등의 공연을 예매하기 위한 애플리케이션, 금융 거래를 위한 애플리케이션, 내비게이션 기능을 제공하는 애플리케이션 등이 다양하게 포함될 수 있다.
본 명세서에서 “페이지”란, 애플리케이션이 실행되면서 전자 장치가 디스플레이 할 수 있는 화면의 기본 골격(frame) 의미할 수 있다. 애플리케이션의 페이지에는, 다양한 텍스트는 물론 영상, 소리, 동영상 파일 등이 내장될 수 있으며, 해당 페이지를 다른 페이지와 연결해주는 사용자 인터페이스를 포함할 수 있다. 페이지는 영상 또는 텍스트를 표시하기 위한 적어도 하나의 영역을 포함할 수 있으며, 애플리케이션에 의해 처리되고 있는 데이터에 따라 다른 영상 또는 다른 텍스트가 해당 영역에 표시될 수 있다.
예를 들어, 컨텐츠를 재생하기 위한 애플리케이션은, 컨텐츠를 검색하기 위한 페이지를 포함할 수 있다. 전자 장치는 애플리케이션을 실행함으로써 컨텐츠를 검색하기 위한 페이지에 대응하는 화면을 디스플레이 할 수 있다. 이 때, 입력되는 검색어, 검색되는 컨텐츠 등에 따라 디스플레이 되는 화면들이 달라질 수 있다.
본 명세서에서 “가상 입력”이란, 사용자로부터 수신된 입력이 아닌 전자 장치에서 생성된 입력을 의미할 수 있다. 애플리케이션을 실행할 수 있는 전자 장치는, 가상 입력을 생성하고, 생성된 가상 입력을 애플리케이션에게 전달할 수 있다. 가상 입력을 수신한 애플리케이션은, 마치 사용자로부터 수신된 사용자 입력을 수신한 것처럼 동작할 수 있다.
본 명세서에서 “가상 입력 시퀀스”는, 순서를 갖는 가상 입력들을 의미할 수 있다. 가상 입력 시퀀스는, 전자 장치가 사용자 입력 디바이스를 통해 사용자로부터 애플리케이션에 대한 사용자 입력들을 수신한 것처럼 애플리케이션이 실행되도록 하는 전자 장치에서 생성된 가상 입력들을 포함할 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1a 및 1b는 음성 제어를 지원하지 않는 애플리케이션이 전자 장치에 의해 실행되는 화면을 도시한다.
도 1a에는 전자 장치가 디스플레이 하는 홈 화면(110)이 도시된다. 전자 장치의 홈 화면(110) 상에는 다양한 어플리케이션들에 대응하는 아이콘들이 디스플레이 될 수 있다. 사용자는 비디오 워칭 애플리케이션에 대응하는 아이콘(111)을 선택함으로써, 전자 장치가 비디오 워칭 애플리케이션을 실행하도록 제어할 수 있다.
전자 장치가 음성 인식 기능을 지원하는 경우, 사용자는 아이콘(111)을 선택하는 물리적인 동작 없이 음성 명령을 이용하여 비디오 워칭 애플리케이션을 시작할 수 있다. 그러나, 비디오 워칭 애플리케이션의 API(Application Programming Interface)가 공개되지 않은 경우, 애플리케이션을 시작하는 것 이후의 동작을 제어하는데 어려움이 있다.
예를 들어, 도 1a에 도시된 바와 같이, 사용자로부터 “비디오 워칭 애플리케이션에서 사랑 이야기를 재생해”라는 음성 명령이 수신되면, 전자 장치는 비디오 워칭 애플리케이션을 시작할 수 있다. 전자 장치는, 비디오 워칭 애플리케이션이 시작됨에 따라, 비디오 워칭 애플리케이션의 시작 화면(120)을 디스플레이 할 수 있다. 전자 장치는, 시작 화면(120)을 디스플레이 한 이후에 소정 시간이 경과하거나 사용자로부터 특정 사용자 입력이 수신되면, 사용자의 프로필을 선택하기 위한 화면(130)을 디스플레이 할 수 있다.
사용자의 음성 명령을 참조하면, 사용자는 비디오 워칭 애플리케이션을 통해 사랑 이야기라는 제목의 영화를 시청하고자 하였음을 알 수 있다. 하지만, 도 1a에 도시된 바와 같이 비디오 워칭 애플리케이션이 음성 제어를 지원하지 않는 경우, 전자 장치는 사용자의 음성 명령에도 불구하고 프로필 선택 화면(130)을 디스플레이 한 후, 애플리케이션의 동작을 멈출 수 있다.
한편, 도 1b에는, 전자 장치가 비디오 워칭 애플리케이션을 실행함으로써 유령 이야기라는 컨텐츠에 대한 상세 정보를 표시하는 화면(140)을 디스플레이 하고 있는 경우가 도시된다. 전자 장치는 컨텐츠 정보 표시 화면(140)을 디스플레이 하고 있을 때, 사용자로부터 “사랑 이야기를 재생해”라는 음성 명령을 수신할 수 있다. 도 1b에는, 비디오 워칭 애플리케이션이 음성 제어를 지원하지 않고 비디오 워칭 애플리케이션의 API가 공개되지 않는 경우가 도시된다. 도 1b에 도시된 바와 같이, 비디오 워칭 애플리케이션은 음성 제어를 지원하지 않기 때문에 사용자의 음성 명령에 응답하여 실행되지 못한다. 따라서, 전자 장치가 사용자의 음성 명령을 수신한 후에도, 애플리케이션이 음성 명령에 대응하는 동작을 수행하지 않을 수 있다. 전자 장치는, 음성 명령을 수신하기 전의 화면(140)과 동일한 화면(150)을 디스플레이 할 수 있다.
음성 제어를 지원하지 않는 애플리케이션을 사용자가 음성 명령에 의하여 제어하기 위해서, 일반적인 전자 장치는, 전자 장치가 디스플레이 하고 있는 화면 상에 표시되는 텍스트를 인식할 수 있다. 일반적인 전자 장치는, 음성 명령에 포함되는 텍스트를 포함하는 아이콘을 선택함으로써, 사용자의 음성 명령에 기초하여 애플리케이션을 제어할 수 있다. 그러나, 도 1a 및 1b에 도시된 바와 같이, 화면에 표시되지 않은 텍스트를 포함하는 음성 명령을 사용자로부터 수신하는 경우, 일반적인 전자 장치는 수신된 음성 명령에 응답하여 애플리케이션을 실행할 수 없었다.
따라서, 음성 제어를 지원하지 않는 애플리케이션의 API가 공개되지 않아도, 사용자의 음성 명령에 응답하여 애플리케이션을 제어할 수 있는 방법 및 전자 장치가 요구된다. 또한, 사용자가 화면에 표시되지 않은 텍스트를 포함하는 음성 명령을 이용하여 애플리케이션을 제어할 수 있는 방법 및 전자 장치가 요구된다.
도 2a 및 2b는 일 실시예에 따른 음성 인식 시스템을 설명하기 위한 도면이다.
도 2a에 도시된 바와 같이, 일 실시예에 따른 음성 인식 시스템은 전자 장치(200-1)를 포함할 수 있다. 예를 들어, 전자 장치(200-1)는, 스마트 TV, 스마트폰, 태블릿 PC, PC, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다.
일 실시예에 따른 전자 장치(200-1)는, 사용자(10)의 음성 명령을 수신하고, 음성 명령에 대해서 음성 인식을 수행할 수 있다. 전자 장치(200-1)는, 음성 인식 결과에 기초하여, 음성 명령에 대응하는 동작을 수행하기 위해서 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(200-1)는 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
또한, 도 2b에 도시된 바와 같이, 일 실시예에 따른 음성 인식 시스템은 전자 장치(200-2) 및 서버(200-3)를 포함할 수 있다. 전자 장치(200-2)와 서버(200-3)는 유선 또는 무선으로 연결 될 수 있다.
일 실시예에 따른 전자 장치(200-2) 와 서버(200-3)는 데이터를 공유할 수 있다. 일 실시예에 따른 전자 장치(200-2)는, 사용자(10)로부터 음성 명령을 수신할 수 있다. 전자 장치(200-2)는 음성 명령을 포함하는 음성 신호를 서버(200-3)에게 송신 할 수 있다. 또는, 전자 장치(200-2)는, 음성 신호로부터 검출된 음성 신호의 특징 벡터를 서버(200-3)에게 송신 할 수 있다.
서버(200-3)는 전자 장치(200-2)로부터 수신된 신호에 기초하여 음성 인식을 수행할 수 있다. 예를 들어, 서버(200-3)는, 전자 장치(200-2)가 사용자로부터 수신한 음성 신호에 대해서 음성 인식을 수행할 수 있다. 서버(200-3)는, 음성 인식 결과에 기초하여, 전자 장치(200-2)가 애플리케이션을 실행함으로써 음성 명령에 대응하는 동작을 수행하도록 하기 위해서 가상 입력 시퀀스를 생성할 수 있다. 서버(200-3)는, 생성된 가상 입력 시퀀스를 전자 장치(200-2)에게 전송할 수 있다. 전자 장치(200-2)는 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
도 2a 및 2b에 도시된 바와 같이, 일 실시예에 따른 음성 인식 시스템은 적어도 하나의 전자 장치를 포함하고, 적어도 하나의 서버를 더 포함할 수 있다. 이하에서는, 설명의 편의를 위해 “전자 장치”에서 수행되는 음성 인식 방법에 대해 서술하도록 하겠다. 다만, 이하에서 기술되는 전자 장치의 동작의 일부 또는 전부는 서버에서도 수행될 수 있으며, 복수의 전자 장치들 또는 복수의 서버들에 의해 부분적으로 수행될 수 있다.
도 3a 및 3b는 일 실시예에 따른 전자 장치의 블록도이다.
도 3a에 도시된 바와 같이, 일 실시예에 따른 전자 장치(300)는, 수신부(310), 프로세서(320), 및 출력부(330)를 포함할 수 있다. 그러나, 도 3a에 도시된 구성 요소 모두보다 많은 구성 요소에 의해 전자 장치(300)가 구현될 수도 있다. 예를 들어, 도 3b에 도시된 바와 같이, 일 실시예에 따른 전자 장치(300)는, 메모리(340)를 더 포함할 수 있다.
예를 들어, 본 발명의 일 실시예에 따른 전자 장치(300)는, 가전 제품, 모바일 컴퓨팅 디바이스 및 서버 중 적어도 하나에 포함되거나, 가전 제품, 모바일 컴퓨팅 디바이스 및 서버 중 적어도 하나에 유, 무선으로 연결되도록 구현될 수 있다. 도 3a 또는 3b의 전자 장치(300)는, 도 2a 및 2b의 전자 장치(200-1, 200-2) 또는 서버(200-3)에 대응할 수 있다.
수신부(310)는, 사용자의 음성 명령을 수신할 수 있다. 예를 들어, 수신부(310)는, 마이크로폰(Microphone)에 의해 외부의 소리를 전기적인 음향 데이터로 변환함으로써 음성 명령을 직접 수신할 수 있다. 또는, 수신부(310)는, 외부 장치에서 송신한 음성 명령을 수신할 수 있다. 도 3a에는, 수신부(310)가, 전자 장치(300)의 내부에 포함되는 것으로 도시되었으나, 다른 일 실시예에 따른 수신부(310)는 별도의 장치 내에 포함되고 전자 장치(300)와는 유, 무선으로 연결되는 형태로 구현될 수 있다.
수신부(310)는, 프로세서(320)의 제어에 기초하여, 음성 명령을 수신하기 위한 세션을 활성화 할 수 있다. 일 실시예에서, 세션이란, 전자 장치(300)가 음성 명령을 입력 받는 동작을 시작해서 종료할 때까지의 시간을 가리킬 수 있다. 세션을 활성화한다는 의미는, 전자 장치(300)가 음성 명령을 입력 받는 동작을 시작한다는 의미일 수 있다. 수신부(310)는, 세션이 유지되는 동안 입력된 음성 명령을 프로세서(320)에게 전달할 수 있다.
또한, 일 실시예에서 수신부(310)는, 전자 장치(300)를 제어하기 위한 사용자 입력을 수신할 수 있다. 수신부(310)는 사용자의 터치를 수신하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch) 등을 포함하는 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다. 수신부(310)는, 사용자 입력을 직접 수신하지 않고, 별도의 사용자 입력 디바이스를 통해서 수신된 사용자 입력을 전달 받을 수 있다.
프로세서(320)는, 수신부(310)에서 입력된 음성 명령에 대한 음성 인식을 수행할 수 있다. 프로세서(320)는 적어도 하나의 프로세서를 포함할 수 있다. 일 실시예에서, 프로세서(320)는 음성 명령으로부터 음성 신호의 파형 특성을 추출하고, 음향 모델과 언어 모델을 이용하여 음성 인식을 수행 할 수 있다. 파형 특성은, 시간 축을 따라 음향 입력으로부터 추출할 수 있는 파형의 변화 추이 및 주기성 등의 정보를 포함할 수 있다. 따라서, 도 3b에 도시된 바와 같이, 전자 장치(300)는, 음향 모델과 언어 모델을 저장하는 메모리(340)를 더 포함할 수 있다.
일 실시예에서, 프로세서(320)는, 음성 명령에 대한 음성 인식을 수행할 수 있다. 프로세서(320)는, 음성 인식 결과에 기초하여, 음성 명령에 대응하는 가상 입력 시퀀스를 생성할 수 있다. 프로세서(320)는, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정할 수 있다. 프로세서(320)는, 복수의 페이지들 중에서, 음성 명령에 대응하는 동작을 수행하기 위한 페이지를 목적 페이지로서 결정할 수 있다.
프로세서(320)는, 현재 디스플레이 되고 있는 제1 화면을 대신하여, 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성할 수 있다. 프로세서(320)는, 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
출력부(330)는, 음성 명령에 대해서 음성 인식이 수행된 결과를 출력 할 수 있다. 일 실시예에서 출력부(330)는, 음성 명령이 수행된 결과를 사용자에게 알리거나, 외부 디바이스(예를 들어, 스마트 폰, 스마트 TV, 스마트 와치, 서버 등)에게 전송할 수 있다. 예를 들어, 출력부(330)는, 영상 신호를 출력 할 수 있는 디스플레이를 포함할 수 있다.
또는, 일 실시예에서 출력부(330)는, 음성 명령에 대응하는 동작을 수행할 수 있다. 예를 들어, 전자 장치(300)는, 음성 명령에 대응하여 소정 컨텐츠를 검색하기 위해, 입력된 키워드를 서버에게 송신할 수 있다. 또는, 전자 장치(300)는, 검색된 컨텐츠를 재생하는 화면을 출력부(330)를 통해 출력할 수 있다.
도 3b의 메모리(340)는, 프로세서(320)에서 음성 인식이 수행된 결과를 저장할 수 있다. 메모리(340)는, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 각각의 특징과 관련된 정보를 저장할 수 있다. 복수의 페이지들 각각의 특징과 관련된 정보는, 각 페이지 상에 디스플레이 되는 사용자 인터페이스의 크기, 색상, 상기 사용자 인터페이스에 포함되는 텍스트, 기호 및 사용자 인터페이스와 관련된 메타 데이터에 대한 정보를 포함할 수 있다. 또한, 메모리(340)는, 복수의 페이지들의 트리 구조를 저장할 수 있다. 복수의 페이지들의 트리 구조를 저장하는 메모리(340)는, 각 페이지와 인접한 페이지들에 대한 정보 및 페이지 간의 이동을 위한 사용자 입력과 관련된 정보를 저장할 수 있다.
도 3a 및 3b에 도시된 블록도는 서버에도 적용될 수 있다. 일 실시예에 따른 서버는, 사용자의 음성 명령에 대한 정보를 전자 장치로부터 수신하는 수신부를 포함할 수 있다. 서버는 전자 장치와 유선 또는 무선으로 연결됨으로써 통신할 수 있다. 서버의 수신부가 수신하는 음성 명령은, 전자 장치가 수신한 것일 수 있다.
또한, 서버는 프로세서와 출력부를 포함할 수 있으며, 메모리를 더 포함할 수 있다. 서버의 프로세서는, 음성 명령에 대한 음성 인식을 수행할 수 있다. 서버의 프로세서는, 애플리케이션이 전자 장치에서 실행되면서 음성 명령에 대응하는 동작을 수행하도록 제어하기 위한 가상 입력 시퀀스를 생성할 수 있다.
서버의 프로세서는, 음성 인식 결과에 기초하여, 전자 장치에서 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정할 수 있다. 전자 장치는, 음성 명령에 대응하는 동작을 수행할 수 있는 페이지를 목적 페이지로서 결정할 수 있다. 서버의 프로세서는, 전자 장치가 현재 디스플레이 하고 있는 제1 화면을 대신하여, 전자 장치가 목적 페이지에 대응하는 제2 화면을 디스플레이 하도록 제어하기 위한 가상 입력 시퀀스를 생성할 수 있다.
서버의 출력부는, 가상 입력 시퀀스를 전자 장치에게 송신할 수 있다. 전자 장치는, 서버로부터 수신된 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
이하에서는, 일 실시예에 따른 전자 장치(300)의 구체적인 동작 방법을 설명한다. 이하에서 서술하는 방법의 각 단계는, 도 3a 및 3b와 관련하여 상술한 전자 장치(300)의 각 구성들에 의해 수행될 수 있다. 설명의 편의상 전자 장치(300)가 동작의 주체인 경우만을 예로 들어 설명하였지만, 이하의 설명은 서버가 동작의 주체인 경우에도 적용될 수 있다.
도 4는 일 실시예에 따른 애플리케이션 실행 방법의 흐름도이다.
단계 S410에서 전자 장치(300)는, 애플리케이션을 실행 하기 위한 음성 명령에 대한 음성 인식을 수행할 수 있다.
일 실시예에서 전자 장치(3300)는, 자연어 처리(Natural Language Processing)를 통해서, 음성 명령의 의도를 파악할 수 있다. 예를 들어, 전자 장치(300)는, 음성 인식을 수행함으로써, 사용자의 음성 명령을 전자 장치(300)가 이해할 수 있는 언어인 기계어로 번역할 수 있다. 일 실시예에서 전자 장치(300)는, 음성 인식을 수행함으로써, 사용자가 애플리케이션이 수행하길 원하는 동작, 해당 동작의 주체가 되는 애플리케이션 및 해당 동작의 대상이 되는 객체를 음성 명령으로부터 추출할 수 있다.
일 실시예에서 전자 장치(300)는, 음성 명령을 변환함으로써 생성된 텍스트로부터 적어도 하나의 단어를 추출할 수 있다. 전자 장치(300)는, 음성 명령을 변환함으로써 생성된 텍스트로부터, 동작과 관련된 제1 단어를 추출할 수 있다. 전자 장치(300)는, 음성 명령을 변환함으로써 생성된 텍스트로부터, 동작의 대상이 되는 객체와 관련된 제2 단어를 추출할 수 있다.
예를 들어, 전자 장치(300)는 “비디오 워칭 앱에서 사랑 이야기를 재생해”라는 사용자의 음성 명령을 수신할 수 있다. 전자 장치(300)는, 음성 명령을 변환함으로써 생성된 텍스트로부터, 동작과 관련된 단어인 “재생”을 추출하고, 재생 동작의 주체와 관련된 단어인 “비디오 워칭 애플리케이션”을 추출하고, 동작의 대상이 되는 객체와 관련된 단어인 “사랑 이야기”를 추출할 수 있다. 전자 장치(300)는, 사용자가 전자 장치가 비디오 워칭 애플리케이션을 실행하기를 원하고, 전자 장치가 비디오 워칭 애플리케이션을 통해 사랑 이야기라는 컨텐츠 재생하기를 원한다고 판단할 수 있다.
단계 S420에서 전자 장치(300)는, 음성 인식 결과에 기초하여, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 목적 페이지를 결정할 수 있다.
일 실시예에서 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면을 분석하여, 화면 상에 디스플레이 되는 적어도 하나의 사용자 인터페이스의 특징을 추출할 수 있다. 전자 장치(300)는, 제1 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 크기, 색상, 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 전자 장치 내에 설치된 애플리케이션의 버전을 결정할 수 있다. 또는, 전자 장치(300)는, 미리 저장된 애플리케이션의 메타 데이터에 기초하여, 애플리케이션의 버전을 결정할 수 있다.
전자 장치(300)는, 결정된 버전에 기초하여, 복수의 페이지들에 대한 정보를 획득할 수 있다. 복수의 페이지들에 대한 정보는, 복수의 페이지들 각각의 특징과 관련된 정보를 포함할 수 있다. 페이지의 특징과 관련된 정보는, 해당 페이지에 대응하는 화면이 디스플레이 되었을 때, 화면 상에 디스플레이 되는 적어도 하나의 사용자 인터페이스의 특징 또는 화면의 레이아웃을 포함할 수 있다. 사용자 인터페이스의 특징은, 사용자 인터페이스의 크기, 색상, 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나를 포함할 수 있다. 또한, 복수의 페이지들에 대한 정보는, 각 페이지가 어떠한 페이지들과 연결되었는지에 대한 정보 및 페이지들 간에 이동하기 위해서 입력되어야 하는 사용자 입력들에 대한 정보를 포함할 수 있다.
전자 장치(300)는, 전자 장치(300)에 미리 저장된 복수의 페이지들에 대한 정보를 획득할 수 있다. 또는, 전자 장치(300)는, 전자 장치(300)와 유선 또는 무선으로 연결된 서버로부터, 복수의 페이지들에 대해서 미리 저장된 정보를 획득할 수 있다. 애플리케이션의 복수의 페이지들에 대한 정보와 관련하여서는, 후에 도 8 및 9를 참조하여 보다 구체적으로 설명한다.
또한, 전자 장치(300)는, 제1 화면 상에 디스플레이 되는 적어도 하나의 사용자 인터페이스의 특징에 기초하여, 현재 화면은 애플리케이션의 복수의 페이지들 중에서 어떠한 페이지인지 인식할 수 있다. 전자 장치(300)는, 복수의 페이지들 중에서 제1 화면에 대응하는 제1 페이지를 결정할 수 있다.
전자 장치(300)는, 음성 인식을 수행한 결과에 기초하여, 음성 명령에 대응하는 목적 페이지를 결정할 수 있다. 일 실시예에서 결정된 목적 페이지는, 애플리케이션이 음성 명령이 의도하는 동작을 수행할 수 있는 페이지일 수 있다. 예를 들어, “비디오 워칭 앱에서 사랑 이야기를 재생해” 라는 음성 명령이 수신된 경우, 전자 장치(300)는, 사랑 이야기라는 컨텐츠를 재생할 수 있는 페이지를 목적 페이지로서 결정할 수 있다.
전자 장치(300)는, 음성 인식을 수행한 결과 및 복수의 페이지들 각각의 특징과 관련된 정보에 기초하여, 복수의 페이지들 중에서 목적 페이지를 결정할 수 있다. 예를 들어, 음성 명령으로부터 애플리케이션의 동작 또는 해당 동작의 대상이 되는 객체와 관련된 제1 단어가 추출된 경우, 전자 장치(300)는, 복수의 페이지들 중에서 제1 단어에 대응하는 텍스트, 메타 데이터 및 아이콘 중 적어도 하나를 포함하는 페이지를 목적 페이지로서 결정할 수 있다. 전자 장치(300)는, 복수의 페이지들 각각의 특징과 관련된 정보에 기초하여, 각 페이지에 포함되는 아이콘이 애플리케이션의 어떠한 동작과 관련된 아이콘인지 인식할 수 있다.
단계 S430에서 전자 장치(300)는, 가상 입력 시퀀스를 생성할 수 있다.
가상 입력 시퀀스는, 전자 장치가 사용자 입력 디바이스를 통해 사용자로부터 애플리케이션에 대한 사용자 입력들을 수신한 것처럼 애플리케이션이 실행되도록 하는 전자 장치(300)에서 생성된 가상 입력들을 포함할 수 있다. 가상 입력 시퀀스는, 복수의 가상 입력들을 순서 있게(차례대로) 포함할 수 있다.
전자 장치(300)는, 음성 인식 결과 및 결정된 목적 페이지 중 적어도 하나에 기초하여, 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면을 대신하여, 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)에 의해 생성되는 가상 입력 시퀀스는, 목적 페이지 상에서 음성 명령에 해당하는 동작을 수행하도록 하는 가상 입력을 더 포함할 수 있다. 전자 장치(300)는, 생성된 가상 입력에 응답하여 애플리케이션을 실행할 수 있다.
전자 장치(300)는, 단계 S420에서 획득한 복수의 페이지들에 대한 정보로부터, 복수의 페이지들 각각이 어떠한 페이지들과 연결되었는지에 대한 정보를 획득할 수 있다. 일 실시예에서 페이지들이 연결되었다는 것은, 어떤 페이지에 포함되는 텍스트나 아이콘을 선택함으로써, 다른 페이지에 대응하는 화면이 디스플레이 될 수 있음을 의미할 수 있다. 전자 장치(300)는, 페이지들 간의 연결 정보에 기초하여, 제1 화면에 대응하는 제1 페이지로부터 목적 페이지로 이동하기 위한 가상 입력 시퀀스를 생성할 수 있다. 예를 들어, 가상 입력 시퀀스는, 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 목적 페이지로 이동하기 위한 복수의 가상 입력들을 포함할 수 있다.
일 실시예에서 전자 장치(300)는, 애플리케이션에 대한 복수의 페이지들의 그래프 구조 내에서, 제1 화면에 대응하는 제1 페이지로부터 목적 페이지로 이동하기 위한 경로를 결정할 수 있다. 복수의 페이지들의 그래프 구조란, 페이지 간의 관련성과 각 페이지 내의 항목 간의 관련성의 구조를 의미할 수 있다. 전자 장치(300)는, 제1 페이지로부터 목적 페이지로 이동할 수 있는 복수의 경로들 중에서, 최적 경로라고 판단 되는 경로를 결정할 수 있다. 제1 페이지로부터 목적 페이지로 이동하기 위한 최적 경로는, 최단 경로이거나, 사용자가 자주 이용하는 경로라고 미리 학습된 경로일 수 있다.
일 실시예에서 전자 장치(300)는, 결정된 경로 내에 포함되는 페이지들 간에 이동하기 위해서 입력되어야 하는 사용자 입력들에 대응하는 가상 입력들을 포함하는 가상 입력 시퀀스를 생성할 수 있다. 예를 들어, 가상 입력 시퀀스는, 그래프 구조 내에서, 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 목적 페이지로 이동하기 위한 복수의 가상 입력들을 포함할 수 있다.
전자 장치(300)는, 단계 S410에 앞서, 사용자가 애플리케이션을 제어하기 위해 사용자 입력을 입력하는 패턴을 학습할 수 있다. 전자 장치(300)는, 애플리케이션이 실행되는 동안, 제1 화면에 대응하는 제1 페이지로부터 목적 페이지로 이동하기 위하여 사용자로부터 수신된 사용자 입력에 관한 정보를 저장할 수 있다. 전자 장치(300)는, 미리 학습된 사용자 입력에 관한 정보에 기초하여, 미리 학습된 사용자 입력에 대응하는 가상 입력을 생성할 수 있다. 애플리케이션은, 미리 학습된 사용자 입력을 사용자로부터 수신한 것처럼, 가상 입력에 의해 실행될 수 있다. 사용자 입력 패턴을 학습하는 구체적인 방법은 후에 도10을 참조하여 설명하도록 한다.
단계 S440에서 전자 장치(300)는, 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
일 실시예에서 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 제1 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)는, 제1 가상 입력에 응답하여 애플리케이션을 실행함으로써, 디스플레이 되는 화면을 전환할 수 있다. 전자 장치(300)는, 화면이 전환될 때마다, 화면 상의 사용자 인터페이스를 분석할 수 있다. 전자 장치(300)는, 분석 결과에 기초하여, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있는지 판단할 수 있다.
일 예로서, 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 제1 가상 입력에 응답하여 애플리케이션을 실행시킴으로써, 제1 화면을 대신하여 제3 화면을 디스플레이 할 수 있다. 전자 장치(300)는, 제3 화면 상에 디스플레이 되는 사용자 인터페이스의 특징에 기초하여, 제3 화면이 적어도 하나의 제2 페이지에 대응하는 화면인지 여부를 결정할 수 있다. 적어도 하나의 제2 페이지는, 애플리케이션의 복수의 페이지들의 트리 구조 내에서, 제1 페이지로부터 목적 페이지로 이동하기 위해서 결정된 경로 내에 포함되는 페이지일 수 있다.
전자 장치(300)는, 제3 화면이 적어도 하나의 제2 페이지에 대응하는 화면인 경우, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있다고 판단할 수 있다. 전자 장치(300)는, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있다고 판단되면, 가상 입력 시퀀스에 제1 가상 입력 다음으로 포함되는 제2 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. 일 실시예에서 전자 장치(300)는, 제2 가상 입력에 응답하여 애플리케이션을 실행시킴으로써, 제3 화면을 대신하여 목적 페이지에 대응하는 제2 화면을 디스플레이 할 수 있다.
반면에, 전자 장치(300)는, 제3 화면이 적어도 하나의 제2 페이지에 대응하는 화면이 아닌 경우, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있지 않다고 판단할 수 있다. 전자 장치(300)는, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있지 않다고 판단되면, 애플리케이션의 복수의 페이지들에 대한 정보를 업데이트 할 수 있다. 또는, 전자 장치(300)는, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있지 않다고 판단되면, 애플리케이션의 동작을 중지하거나, 음성 명령이 수신된 화면을 다시 디스플레이 할 수 있다.
전자 장치(300)는, 목적 페이지에 대응하는 제2 화면을 디스플레이 하고, 목적 페이지 상에서 음성 명령에 해당하는 동작을 수행하도록 애플리케이션을 제어할 수 있다. 일 실시예에서 전자 장치(300)는, 애플리케이션이 음성 명령에 대응하는 동작을 수행하도록 하는 가상 입력을 생성할 수 있다. 전자 장치(300)는, 생성된 가상 입력에 응답하여 애플리케이션을 실행할 수 있다.
예를 들어, 애플리케이션에 의해서 소정 컨텐츠를 재생하라는 음성 명령을 사용자로부터 수신한 경우, 전자 장치(300)는 다음과 같이 애플리케이션을 실행할 수 있다. 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 제1 가상 입력에 응답하여 애플리케이션을 실행함으로써, 애플리케이션에 의해 재생될 수 있는 컨텐츠를 검색하기 위한 제3 화면을 디스플레이 할 수 있다. 전자 장치(300)는 가상 입력 시퀀스에 포함되는 제2 가상 입력에 응답하여 애플리케이션을 실행함으로써, 제3 화면 상에 디스플레이 되는 검색 창 내에 소정 컨텐츠의 식별자를 입력할 수 있다. 소정 컨텐츠의 식별자는, 예를 들어, 소정 컨텐츠의 이름, 식별 번호, 카테고리 등을 포함할 수 있다. 전자 장치(300)는 입력된 식별자에 기초하여 애플리케이션을 실행함으로써, 소정 컨텐츠를 검색할 수 있다. 전자 장치(300)는, 검색 결과에 기초하여, 소정 컨텐츠를 재생하기 위한 목적 페이지에 대응하는 제2 화면을 디스플레이 할 수 있다. 전자 장치(300)는, 목적 페이지 상에서 음성 명령에 해당하는 동작을 수행하도록 애플리케이션을 제어할 수 있다. 일 실시예에서 전자 장치(300)는, 소정 컨텐츠를 재생하기 위한 제3 가상 입력을 생성할 수 있다. 전자 장치(300)는 제3 가상 입력에 응답하여 애플리케이션을 실행함으로써, 소정 컨텐츠를 재생할 수 있다.
한편, 전자 장치(300)는, 도 4의 단계 S410 내지 S440을 수행함으로써 사용자의 음성 명령에 의해 애플리케이션을 제어하는 도중에는, 애플리케이션 또는 사용자에 의한 인터럽트(interrupt)의 발생을 방지할 수 있다. 예를 들어, 전자 장치(300)는, 사용자의 음성 명령에 의한 음성 제어 기능을 구동하고 있는 중에, 사용자로부터 사용자 입력이 수신되는 것을 제한하거나, 애플리케이션이 사용자에게 알림을 제공하는 것을 제한할 수 있다.
도 5는 일 실시예에 따른 애플리케이션 실행 방법의 구체적인 흐름도이다.
도 5의 S510 및 S520은 도 4의 S410에 대응하고, 도 5의 S530, S540, S550 및 S560은 도 4의 S420에 대응할 수 있다. 도 5의 S570은 도 4의 S430에 대응할 수 있다. 도 5의 S550, S560, 및 S580은 도 4의 S440에 대응할 수 있다. 서로 대응하는 도 4의 각 단계와 도 5의 각 단계에 대해서는, 각 단계에 대한 설명이 서로 적용될 수 있다. 따라서, 중복되는 동작에 대한 설명은 생략한다.
단계 S510에서 전자 장치(300)는, 사용자로부터 음성 명령을 수신할 수 있다.
단계 S520에서 전자 장치(300)는, 음성 명령에 대한 음성 인식을 수행할 수 있다.
단계 S530에서 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면을 인식할 수 있다. 전자 장치(300)는, 제1 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 특징을 분석함으로써 제1 화면을 인식할 수 있다.
단계 S540에서 전자 장치(300)는, 애플리케이션의 버전을 결정할 수 있다. 전자 장치(300)는, 제1 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 특징에 기초하여, 애플리케이션의 버전을 결정할 수 있다. 또는, 전자 장치(300)는, 미리 저장된 애플리케이션의 메타 데이터에 기초하여, 애플리케이션의 버전을 결정할 수 있다.
전자 장치(300)는, 애플리케이션의 버전 별로, 해당 버전의 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 구별하여 미리 저장할 수 있다. 전자 장치(300)는, 제1 화면을 분석한 결과와 미리 저장된 복수의 페이지들에 대한 정보를 비교함으로써, 전자 장치(300) 내에 설치된 애플리케이션의 버전을 결정할 수 있다.
단계 S550에서 전자 장치(300)는, 결정된 버전에 기초하여, 애플리케이션의 복수의 페이지들에 대한 정보를 획득할 수 있다. 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면이 애플리케이션의 복수의 페이지들 중에서 어떠한 페이지인지 인식할 수 있다. 전자 장치(300)는, 복수의 페이지들 중에서 제1 페이지가 제1 화면에 대응한다고 결정할 수 있다.
단계 S570에서 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면을 대신하여, 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)는, 트리 구조를 이루는 복수의 페이지들 내에서 제1 화면에 대응하는 제1 페이지로부터 목적 페이지로 이동하기 위한 경로를 결정할 수 있다. 전자 장치(300)는, 결정된 경로를 따라 제1 페이지로부터 목적 페이지로 이동하기 위해서 입력되어야 하는 적어도 하나의 사용자 입력에 대한 정보를 획득할 수 있다. 전자 장치(300)는, 획득된 적어도 하나의 사용자 입력에 대한 정보에 기초하여, 적어도 하나의 사용자 입력에 대응하는 적어도 하나의 가상 입력을 포함하는 가상 입력 시퀀스를 생성할 수 있다. 생성되는 가상 입력 시퀀스는, 애플리케이션이 음성 명령에 해당하는 동작을 목적 페이지에 대응하는 화면 상에서 수행하도록 하는 가상 입력을 더 포함할 수 있다.
단계 S580에서 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상 입력에 응답하여 애플리케이션을 실행함으로써, 제2 화면을 디스플레이 할 수 있다.
단계 S590에서 전자 장치(300)는, 제2 화면이 음성 명령에 적합한 화면인지 여부를 판단할 수 있다. 전자 장치(300)는, 제2 화면이 단계 S570에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면인지 여부를 판단할 수 있다. 전자 장치(300)는, 제2 화면이 단계 S570에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면이라면, 제2 화면이 음성 명령에 적합한 화면이라고 판단할 수 있다. 전자 장치(300)는, 제2 화면이 단계 S570에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면이 아니라면, 제2 화면이 음성 명령에 적합한 화면이 아니라고 판단할 수 있다.
제2 화면이 음성 명령에 적합한 화면이라고 판단되면, 단계 S595에서 전자 장치(300)는, 음성 명령에 대응하는 동작을 수행하도록 애플리케이션을 실행할 수 있다.
제2 화면이 음성 명령에 적합한 화면이 아니라고 판단되면, 단계 S593에서 전자 장치(300)는, 애플리케이션의 복수의 페이지들에 대한 정보를 업데이트 할 수 있다. 제2 화면이 단계 S570에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면이 아닌 경우, 전자 장치(300)에 설치되어 있는 애플리케이션의 버전과, 단계 S540에서 결정된 버전이 다를 수 있다. 따라서, 전자 장치(300)는 서버와의 통신을 통해서, 현재 설치되어 있는 애플리케이션의 버전에 대응하는 복수의 페이지들에 대한 정보를 수신하고, 저장할 수 있다.
도 5에서는 설명의 편의를 위해서 전자 장치(300)가 제1 화면에서, 목적 페이지에 대응하는 제2 화면으로 바로 전환되는 경우를 예로 들어 도시하였다. 그러나 일 실시예는 이에 제한되지 않는다. 일 실시예에 따른 전자 장치(300)는, 애플리케이션에 대한 복수의 페이지들의 트리 구조 내에서, 제1 화면에 대응하는 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 목적 페이지로 이동하는 경로를 결정할 수 있다. 이 경우, 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상 입력에 응답하여 화면이 전환될 때마다, 화면 상의 사용자 인터페이스를 분석할 수 있다.
전자 장치(300)는, 전환되는 화면이 단계 S570에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면인 경우, 입력된 가상 입력의 다음 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. 반면에, 전자 장치(300)는, 전환되는 화면이 단계 S570에서 결정된 최단 경로 내에 포함되는 페이지에 대응하는 화면이 아닌 경우, 애플리케이션의 복수의 페이지들에 대한 정보를 업데이트 할 수 있다. 또는, 전자 장치(300)는, 전환되는 화면이 단계 S570에서 결정된 최단 경로 내에 포함되는 페이지에 대응하는 화면이 아닌 경우, 전자 장치(300)는 애플리케이션의 동작을 중지할 수 있다.
도 4 및 5에 도시된 바와 같이, 일 실시예에 따른 전자 장치(300)는, 화면에 표시되지 않은 텍스트를 포함하는 음성 명령을 사용자가 발화하더라도, 사용자의 발화 의도를 파악해 가상 입력 시퀀스를 생성할 수 있다. 따라서, 전자 장치(300)의 사용자는, 음성 제어를 지원하지 않는 애플리케이션을 음성 명령을 이용하여 제어할 수 있다.
도 6a, 6b 및 6c는 일 실시예에 따라 전자 장치가 디스플레이 하는 화면의 예를 도시한다.
도 6a는 전자 장치(300)가 디스플레이 하는 홈 화면(610)을 도시한다. 도 6a는, 전자 장치(300)가 홈 화면(610)을 디스플레이 하고 있을 때, 사용자로부터 음성 명령을 수신하는 경우를 예로 들어 도시한다. 예를 들어, 홈 화면(610)은, 스마트 TV 플랫폼의 홈 화면일 수 있다. 그러나 실시예는 이에 제한되지 않는다. 일 실시예에 따른 전자 장치(300)는, 홈 화면을 디스플레이하고 있는 경우, 음성 명령의 대상이 되는 애플리케이션을 실행하는 화면을 디스플레이 하고 있는 경우, 및 다른 애플리케이션을 실행하는 화면을 디스플레이 하고 있는 경우 등 다양한 경우에 사용자로부터 애플리케이션을 실행하기 위한 음성 명령을 수신할 수 있다.
전자 장치(300)는, 사용자로부터 “비디오 워칭 애플리케이션에서 사랑 이야기를 재생해”라는 음성 명령을 수신할 수 있다. 전자 장치(300)는, 음성 명령에 대한 음성 인식을 수행함으로써, 사용자가 전자 장치(300)가 비디오 워칭 애플리케이션이 실행되기를 원하고, 사랑 이야기라는 컨텐츠가 재생되기를 원함을 판단할 수 있다.
전자 장치(300)는, 애플리케이션을 통해 사용자의 음성 명령에 대응하는 동작을 수행하기 위한, 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)는, 자동 입력(Auto-input) 패키지의 API를 이용하여 상황에 맞는 가상 입력 시퀀스를 생성하고, 애플리케이션에게 생성된 가상 입력 시퀀스를 전달할 수 있다.
전자 장치(300)는, 음성 명령에 응답하여, 비디오 워칭 애플리케이션을 시작할 수 있다. 전자 장치(300)는, 비디오 워칭 애플리케이션을 시작하는 동안, 시작 화면(620)을 디스플레이 할 수 있다. 전자 장치(300)를 통해 구동되는 애플리케이션은, 시작 화면(620)을 디스플레이 한 이후에, 사용자의 프로필을 선택하기 위한 화면(630)을 디스플레이 할 수 있다.
전자 장치(300)는, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 컨텐츠를 재생할 수 있는 페이지를 목적 페이지로서 결정할 수 있다. 전자 장치(300)는, 화면(630) 상에 디스플레이 되는 아이콘들(631, 632, 633, 634)의 크기, 색상, 텍스트, 기호 및 메타 데이터 중 적어도 하나를 분석함으로써, 화면(630)이 애플리케이션의 복수의 페이지들 중에서 어떤 페이지에 대응하는지를 결정할 수 있다. 예를 들어, 전자 장치(300)는, 화면(630)이 애플리케이션의 복수의 페이지들 중에서 사용자의 프로필을 선택하기 위한 제1 페이지에 대응한다고 결정할 수 있다. 전자 장치(300)는 디스플레이 되고 있는 제1 화면(630)을 대신하여, 목적 페이지에 대응하는 제2 화면을 디스플레이 하고 음성 명령에 대응하는 동작을 수행하기 위한 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)는, 제1 페이지로부터 목적 페이지로 이동하기 위한 가상 입력들을 포함하는 가상 입력 시퀀스를 생성할 수 있다.
도 6a, 6b 및 6c는 전자 장치(300)가, 4 방향 버튼들 및 OK 버튼을 포함하는 리모트 컨트롤러에 의해 사용자 입력을 수신하는 경우를 예로 들어 도시한다. 그러나, 다양한 실시예들은 도시된 예에 제한되지 않는다. 전자 장치(300)는, 전자 장치(300)가 리모트 컨트롤러 이외에도 다양한 사용자 입력 디바이스들을 통해 사용자 입력들을 수신한 것처럼 애플리케이션이 실행되도록 하는 가상 입력 시퀀스를 생성할 수 있다.
도 6a를 참조하면, 전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 가상 입력 “OK”를 포함할 수 있다.
화면(630)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 OK에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 커서(635)가 위치한 아이콘(631)을 선택하기 위해서 OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 OK를 포함할 수 있다. 가상 입력 OK에 응답하여 애플리케이션을 실행한 전자 장치(300)는, 도 6b에 도시된 화면(640)을 디스플레이 할 수 있다. 화면(640)에는, 도 6a의 화면(630) 상에서 선택된 아이콘(631)에 대응하는 프로필을 갖는 사용자가 이전에 시청하던 컨텐츠를 이어볼 수 있도록 하는 사용자 인터페이스(641)가 디스플레이 될 수 있다.
전자 장치(300)는, 화면이 전환될 때마다, 화면 상의 사용자 인터페이스를 분석할 수 있다. 전자 장치(300)는, 분석 결과에 기초하여, 제1 페이지로부터 목적 페이지까지의 결정된 경로를 따라 애플리케이션이 잘 수행되고 있는지를 판단할 수 있다. 전자 장치(300)는, 전환된 화면이 결정된 경로 내에 포함되는 페이지에 대응하는 화면인지 여부를 판단할 수 있다. 전자 장치(300)는, 전환된 화면이 결정된 경로 내에 포함되는 페이지에 대응하는 화면이라고 판단되면, 가상 입력 시퀀스에 포함되는 다음 가상 입력에 기초하여 애플리케이션을 실행할 수 있다. 그러나, 전자 장치(300)는, 전환된 화면이 결정된 경로 내에 포함되는 페이지에 대응하는 화면이 아니라고 판단되면, 전자 장치(300)는, 애플리케이션의 동작을 멈추거나, 음성 명령이 수신된 화면으로 되돌아 갈 수 있다. 또는, 전자 장치(300)는, 애플리케이션의 복수의 페이지들에 대한 정보를 업데이트 할 수 있다.
도 6b를 참조하면, 전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 가상 입력 OK 다음으로 가상 입력 UP을 포함할 수 있다.
화면(640)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 UP에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 화면(640) 대신에 애플리케이션의 메인 메뉴 화면(650)을 제공 받기 위하여 UP 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 UP을 포함할 수 있다. 가상 입력 UP에 응답하여 애플리케이션을 실행한 전자 장치(300)는, 화면(650)을 디스플레이 할 수 있다.
전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 가상 입력 UP 다음으로 가상 입력 OK를 포함할 수 있다.
화면(650)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 OK에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 커서(651)가 위치한 아이콘(652)을 선택하기 위해서 OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 OK를 포함할 수 있다. 가상 입력 OK에 응답하여 애플리케이션을 실행한 전자 장치(300)는, 화면(660)을 디스플레이 할 수 있다. 화면(660)에는, 사용자가 시청하고자 하는 컨텐츠를 검색하기 위한 사용자 인터페이스가 디스플레이 될 수 있다. 구체적으로, 화면(660) 상에는, 컨텐츠를 검색하기 위한 검색어를 입력할 수 있는 자판(661), 입력된 검색어가 표시되는 입력창(663), 최근에 검색됐던 검색어들의 리스트(662)가 디스플레이 될 수 있다.
전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 가상 입력 OK 다음으로 가상 입력 Right 4개와 가상 입력 Down과 가상 입력 OK를 포함할 수 있다.
화면(660)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력들에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 커서(664)를 “ㄱ”으로부터 “ㅅ”으로 이동하기 위해서 Right 버튼을 4회 누르고, Down 버튼을 1회 누르고, 커서가 위치한 “ㅅ”을 선택하기 위해서 OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 Right 4개와 가상 입력 Down과 가상 입력 OK를 포함할 수 있다. 전자 장치(300)는, 가상 입력들에 응답하여 애플리케이션을 실행함으로써, 입력창(663) 내에 “ㅅ”을 디스플레이 할 수 있다. 화면 상에 디스플레이 되는 자판을 이용하여 글자를 입력하는 구체적인 방법과 관련하여서는, 후에 도 7a 및 7b를 참조하여 보다 구체적으로 설명한다.
전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 사용자의 음성 명령에 기초하여 “사랑 이야기”라는 제목을 입력창(663) 내에 입력 하기 위한 가상 입력들을 포함할 수 있다.
도 6c를 참조하면 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상 입력들에 응답하여 “사랑”을 입력창(663) 내에 입력하도록 애플리케이션을 실행함으로써, 화면(670)을 디스플레이 할 수 있다. 애플리케이션은, 입력창(663) 내에 입력된 글자에 기초하여 입력된 글자를 포함하는 컨텐츠들을 검색하고, 검색된 컨텐츠들의 썸네일 영상을 검색 결과 창(672) 내에 디스플레이 할 수 있다.
전자 장치(300)는, 가상 입력들에 응답하여 사용자의 음성 명령에 포함되는 컨텐츠의 제목인 “사랑 이야기”를 입력창(663) 내에 모두 입력하도록 애플리케이션을 실행함으로써, 도 6c의 화면(680)을 디스플레이 할 수 있다. 애플리케이션은, 입력창(663) 내에 입력된 제목에 기초하여 입력된 제목을 갖는 컨텐츠를 검색하고, 검색된 컨텐츠의 썸네일 영상(682)을 검색 결과 창(672) 내에 디스플레이 할 수 있다.
전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, “사랑 이야기”를 입력하기 위한 가상 입력들 다음으로 가상 입력 OK를 포함할 수 있다.
화면(680)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 OK에 응답하여 검색된 컨텐츠를 선택할 수 있다. 사용자가 커서(681)가 위치한 썸네일 영상(682)을 선택하기 위해서 OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 OK를 포함할 수 있다. 가상 입력 OK에 응답하여 애플리케이션을 실행한 전자 장치(300)는, 화면(690)을 디스플레이 할 수 있다. 화면(690)에는, 선택된 컨텐츠를 재생하기 위한 사용자 인터페이스(691)가 디스플레이 될 수 있다. 전자 장치(300)에 의해 생성된 가상 입력 시퀀스는, 검색된 컨텐츠를 선택하기 위한 가상 입력 OK 다음으로 가상 입력 OK를 포함할 수 있다.
화면(690)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 OK에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 화면(690)에서 컨텐츠 “사랑 이야기”를 재생하기 위하여 OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력 시퀀스는 가상 입력 OK를 포함할 수 있다. 가상 입력 OK에 응답하여 애플리케이션을 실행한 전자 장치(300)는, 컨텐츠 “사랑 이야기”를 재생 할 수 있다.
도 6b 및 6c에는 컨텐츠를 검색하기 위해서 자판에 대한 가상 입력을 생성하는 경우가 도시되지만, 실시예는 도 6b 및 6c에 제한되지 않는다. 전자 장치(300)는, 동작의 객체가 되는 단어를 음성 명령으로부터 추출하고, 추출된 단어를 입력창(663) 내에 바로 입력하도록 하는 가상 입력을 포함하는 가상 입력 시퀀스를 생성할 수 있다.
또한, 도 6a 내지 6c에는, 컨텐츠의 이름을 검색하는 페이지를 거쳐서 해당 컨텐츠를 재생하기 위한 목적 페이지에 도착하는 경우가 도시되지만, 실시예는 도 6b 및 6c에 제한되지 않는다. 전자 장치(300)가 목적 페이지로 이동하기 위해서 결정하는 경로는 미리 학습된 정보에 따라, 사용자에 따라, 음성 명령에 따라 달라질 수 있다. 예를 들어, 전자 장치(300)는, 컨텐츠의 카테고리를 결정하고, 카테고리에 대응하는 복수의 컨텐츠들의 섬네일 영상들이 디스플레이 되는 페이지를 거쳐 컨텐츠를 재생하기 위한 목적 페이지로 이동하는 경로를 결정할 수 있다. 이 경우, 도 6b의 화면(650)을 디스플레이 하고 있는 전자 장치(300)는, 아이콘(652) 대신에 아이콘(653)을 선택하기 위한 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)에서 생성되는 가상 입력 시퀀스는, 전자 장치(300)가 도 6b에 도시된 화면(650) 대신에 화면(660)을 디스플레이 하기 위한 가상 입력 OK를 포함하는 것이 아니라, 전자 장치(300)가 도 6b에 도시된 화면(650) 대신에 컨텐츠의 카테고리와 관련된 화면을 디스플레이 하기 위한 가상 입력 Right 및 가상 입력 OK를 포함할 수 있다.
도 7a 및 7b는 일 실시예에 따라 생성되는 가상 입력 시퀀스의 예를 도시한다.
도 7a는, 전자 장치(300)가 사용자의 음성 명령에 대응하는 “사랑”이라는 문자 입력을 입력하기 위해 생성하는 가상 입력 시퀀스의 예를 도시한다. 애플리케이션은, 사용자로부터 문자 입력을 수신하기 위하여 화면 상에 자판을 제공할 수 있다. 예를 들어, 애플리케이션은 도 7b의 영상(721)과 같은 자판을 화면 상에 제공할 수 있다.
도 7b의 영상(721)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상입력들(711)에 응답하여 애플리케이션을 실행할 수 있다.
일 실시예에서 전자 장치(300)는 커서를 “ㄱ”으로부터 “ㅅ”으로 이동하고 “ㅅ”을 선택하기 위해서 사용자가 Right 버튼을 4회 누르고, Down 버튼을 1회 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 도 7a에 도시된 가상 입력들(711)을 포함하는 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(711)에 응답하여 애플리케이션을 실행함으로써, 입력창 내에 “ㅅ”이 디스플레이 되는 영상(723)을 디스플레이 할 수 있다.
도 7b의 영상(723)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 도 7a의 가상입력들(712)에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)는 커서를 “ㅅ”으로부터 “ㅏ”으로 이동하고 “ㅏ”를 선택하기 위해서 사용자가 Left 버튼을 4회 누르고, Down 버튼을 3회 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력들(712)을 포함하는 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(712)에 응답하여 애플리케이션을 실행함으로써, 입력창 내에 “사”가 디스플레이 되는 영상(725)를 디스플레이 할 수 있다.
도 7b의 영상(725)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 도 7a의 가상입력들(713)에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)는 커서를 “ㅏ”으로부터 “ㄹ”로 이동하고 “ㄹ”을 선택하기 위해서 사용자가 Up 버튼을 3회 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력들(713)을 포함하는 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(713)에 응답하여 애플리케이션을 실행함으로써, 입력창 내에 “사ㄹ”가 디스플레이 되는 영상(727)를 디스플레이 할 수 있다.
도 7b의 영상(727)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 도 7a의 가상입력들(714)에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)는 커서를 “ㄹ”으로부터 “ㅏ”로 이동하고 “ㅏ”를 선택하기 위해서 사용자가 Down 버튼을 3회 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력들(714)를 포함하는 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(714)에 응답하여 애플리케이션을 실행함으로써, 입력창 내에 “사라”가 디스플레이 되는 영상을 디스플레이 할 수 있다.
입력창 내에 “사라”가 디스플레이 되는 영상을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상입력들(715)에 응답하여 애플리케이션을 실행할 수 있다. 전자 장치(300)는 커서를 “ㅏ”으로부터 “ㅇ”으로 이동하고 “ㅇ”을 선택하기 위해서 사용자가 Up 버튼을 2회 누르고, Right 버튼을 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 가상 입력들(715)을 포함하는 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(715)에 응답하여 애플리케이션을 실행함으로써, 입력창 내에 “사랑”이 디스플레이 되는 영상(729)를 디스플레이 할 수 있다.
도 7b의 영상(729)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 도 7a의 가상입력들(716)에 응답하여 검색된 컨텐츠를 재생할 수 있다. 애플리케이션은, 입력창 내에 입력된 제목에 기초하여 입력된 제목을 갖는 컨텐츠를 검색하고, 검색된 컨텐츠의 썸네일 영상을 디스플레이할 수 있다. 전자 장치(300)는, 가상 입력들(711 내지 715)에 응답하여 애플리케이션을 실행함으로써, 영상(729)를 포함하는 화면(731)을 디스플레이 할 수 있다. 화면(731)을 디스플레이 하고 있는 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 가상입력들(716)에 응답하여 애플리케이션을 실행할 수 있다. 사용자가 커서를 “ㅇ”으로부터 컨텐츠의 썸네일 영상으로 이동하고 커서가 위치한 컨텐츠를 선택하기 위해서 Right 버튼을 4회 누르고, OK 버튼을 누른 것처럼 애플리케이션이 실행되도록, 전자 장치(300)는 가상 입력들(716)을 포함하는 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)는, 가상 입력들(716)에 응답하여 애플리케이션을 실행함으로써, 검색된 컨텐츠를 선택하고 재생할 수 있다.
일 실시예에 따른 전자 장치(300)는, 가상 입력 시퀀스를 생성하기 위해서, 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 획득할 수 있다. 복수의 페이지들에 대한 정보는 전자 장치(300) 내에 미리 저장되거나, 서버와 같은 외부 장치로부터 수신될 수 있다. 애플리케이션에 대한 복수의 페이지들은 이동 가능한 페이지들 간을 연결한 그래프 구조를 이룰 수 있다. 복수의 페이지들에 대한 정보는, 각 페이지의 특징점에 대한 정보를 포함할 수 있다. 예를 들어, 복수의 페이지들에 대한 정보는, 각 페이지에 대응하는 화면이 디스플레이 되었을 때 화면 상에 포함되는 사용자 인터페이스의 크기, 색상, 텍스트, 기호 및 메타 데이터 중 적어도 하나에 대한 정보를 포함할 수 있다. 또한, 복수의 페이지들에 대한 정보는, 페이지들 간의 이동을 위해서 입력되어야 하는 사용자 입력에 대한 정보를 포함할 수 있다.
전자 장치(300)는, 현재 페이지로부터 목적 페이지로 이동할 수 있는 다양한 경로들 중에서, 최적 경로를 결정하고, 결정된 최적 경로에 기초하여 트리 구조를 도출할 수 있다.
도 8 및 9는 일 실시예에 따라 저장되는 애플리케이션의 복수의 페이지들의 트리 구조를 설명하기 위한 도면이다.
도 8에 도시된 바와 같이 트리 구조 내에서 복수의 페이지들은 계층을 가질 수 있다. 트리 구조 내에서 상위 페이지는 복수의 하위 페이지들로 이동 가능하며, 하위 페이지들 간에 이동은 상위 페이지를 거쳐야만 이루어질 수 있다. 일 실시예에서 페이지의 계층은 상대적인 것일 수 있다. 예를 들어, 특정 페이지는 다른 페이지에 대해서 상위 페이지일 수도 있으며, 특정 페이지는 또 다른 페이지에 대해서는 하위 페이지일 수도 있다. 애플리케이션은 미리 결정된 사용자 입력에 기초하여 페이지들 간에 이동할 수 있다. 애플리케이션이 제1 페이지로부터 제2 페이지로 이동한다는 것은, 전자 장치(300)에 의해 애플리케이션이 실행되면서 제1 페이지에 대응하는 화면이 디스플레이 된 후, 제2 페이지에 대응하는 화면이 디스플레이 된다는 것을 의미할 수 있다.
예를 들어, 도 8에 도시된 복수의 페이지들에 대응하는 애플리케이션이 설치된 전자 장치(300)는, 제5 페이지(P5)에 대응하는 화면을 디스플레이 한 후, 특정 사용자 입력에 응답하여 제3 페이지(P3), 제6 페이지(P6), 및 제8 페이지(P8) 중 하나에 대응하는 화면을 디스플레이 할 수 있다. 애플리케이션이 제5 페이지(P5)로부터 제3 페이지(P3)로 이동한 후, 전자 장치(300)는, 특정 사용자 입력에 응답하여 제3 페이지(P3) 대신에, 제1 페이지(P2) 및 제2 페이지(P2) 중 하나에 대응하는 화면을 디스플레이 할 수 있다.
도 8의 각 페이지를 연결하는 선은, 애플리케이션이 페이지들 간에 이동할 수 있도록 하는 사용자 입력을 나타낼 수 있다. 서로 다른 선들은 서로 다른 입력들을 나타낼 수 있다. 도 8에 도시된 실선은 페이지들 간을 연결하는 최적 경로를 의미하고, 점선은 페이지들 간에 이동이 가능하지만 최적 경로가 아니기 때문에 도출된 트리 구조에서 제외된 경로를 의미할 수 있다. 따라서, 제3 페이지(P3)에 대응하는 화면을 디스플레이 하고 있는 전자 장치(300)는, 제1 페이지(P2) 또는 제2 페이지(P2)에 대응하는 화면으로 전환하기 위한 특정 사용자 입력과 다른 사용자 입력에 응답하여, 제3 페이지(P3) 대신에 제7 페이지(P2) 에 대응하는 화면을 디스플레이 할 수 있다.
일 실시예에 따른 전자 장치(300)는, 현재 디스플레이 되고 있는 제1 화면에 대응하는 페이지로부터 사용자의 음성 명령에 기초하여 결정된 목적 페이지로 이동하기 위한 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)가 도 8의 제5 페이지(P5)에 대응하는 화면을 디스플레이 하고 있고, 사용자의 음성 명령에 기초하여 제9 페이지(P9)를 목적 페이지로서 결정한 경우를 예로 들어 설명한다.
전자 장치(300)는, 애플리케이션의 복수의 페이지들의 트리 구조에 기초하여, 제5 페이지(P5)로부터 제9 페이지(P9)로 이동하기 위한 경로를 결정할 수 있다. 예를 들어, 제5 페이지(P5)로부터 제9 페이지(P9)로 이동하기 위하여 결정된 경로는, 가장 적은 수의 페이지들을 거쳐서 이동하는 최단 경로일 수 있으며, 사용자에 따라서 선호되는 페이지를 거쳐서 이동하는 경로일 수 있으며, 사용자가 자주 이용하는 경로라고 미리 학습된 경로일 수 있다.
도 8을 참조하면, 전자 장치(300)는, 제5 페이지(P5)로부터 제9 페이지(P9)로 이동하기 위한 경로들 중에서 가장 짧은 경로인 제5 페이지(P5)로부터 제8 페이지(P8)를 거쳐 제9 페이지(P9)로 이동하는 경로를 선택할 수 있다. 전자 장치(300)는, 선택된 경로를 따라서 이동된 페이지에 대응하는 화면을 디스플레이 하기 위해서, 복수의 가상 입력들을 포함한 가상 입력 시퀀스를 생성할 수 있다.
도 9는, 앞서 도 6a 내지 7b에 도시된 비디오 워칭 애플리케이션의 복수의 페이지들에 대한 트리 구조의 예를 도시한다.
전자 장치(300)가 도 9의 제5 페이지(P5)에 대응하는 화면(905)을 디스플레이 하고 있고, 사용자로부터 “비디오 워칭 애플리케이션에서 사랑 이야기를 재생해”라는 음성 명령을 수신한 경우를 예로 들어 설명한다. 전자 장치(300)는, 현재 디스플레이 되고 있는 화면을 분석함으로써, 현재 화면이 복수의 페이지들 중에서 제5 페이지(P5)에 대응한다고 결정할 수 있다.
전자 장치(300)는, 사용자의 음성 명령에 대한 음성 인식을 수행함으로써, 사용자의 음성 명령이 컨텐츠 재생을 지시하는 음성 명령이라고 판단할 수 있다. 전자 장치(300)는, 복수의 페이지들 중에서 컨텐츠 재생과 관련된 제9 페이지(P9)를 목적 페이지로서 결정할 수 있다.
전자 장치(300)는, 현재 디스플레이 되고 있는 화면에 대응하는 제5 페이지(P5)로부터 제9 페이지(P9)로 이동하기 위한 경로를 결정하고, 결정된 경로를 따라 이동하기 위한 가상 입력 시퀀스를 생성할 수 있다. 예를 들어, 전자 장치(300)는, 제6 페이지(P6), 제8 페이지(P8), 및 제7 페이지(P7)를 거쳐 제9 페이지(P9)로 이동하기로 결정할 수 있다. 그러나 일 실시예에 따라 전자 장치(300)가 결정하는 경로는 미리 학습된 정보에 따라, 사용자에 따라, 음성 명령에 따라 달라질 수 있다.
전자 장치(300)는, 결정된 경로를 따라 이동하기 위한 가상 입력 시퀀스를 생성할 수 있다. 전자 장치(300)가 생성하는 가상 입력 시퀀스는, 시작 화면(905)을 대신해 사용자의 프로필을 선택하기 위한 화면(906)을 디스플레이 하기 위한 가상 입력, 화면(906)을 대신해 메인 메뉴 화면(908)을 디스플레이 하기 위한 가상 입력, 화면(908)을 대신해 컨텐츠 검색 화면(907)을 디스플레이 하기 위한 가상 화면, 화면(907) 상에서 컨텐츠를 검색하기 위한 가상 입력, 화면 (907)을 대신해 컨텐츠 재생 시작 화면(909)을 디스플레이 하기 위한 가상 입력을 포함할 수 있다.
도 9에 도시된 바와 같이, 생성된 가상 입력 시퀀스에 응답하여 애플리케이션을 실행하는 전자 장치(300)는 다음과 같이 동작할 수 있다. 전자 장치(300)는, 컨텐츠 재생과 관련된 제9 페이지(P9)에 대응하는 화면(909)을 디스플레이 하기 위해서, 제5 페이지(P5)에 대응하는 시작 화면(905)을 대신해, 사용자의 프로필을 선택하기 위한 제6 페이지(P6)에 대응하는 화면(906)을 디스플레이 할 수 있다. 전자 장치(300)는, 사용자의 프로필 선택 화면(906)을 대신해, 제8 페이지(P8)에 대응하는 메인 메뉴 화면(908)을 디스플레이 할 수 있다. 전자 장치(300)는, 메인 메뉴 화면(908)을 대신해, 컨텐츠를 검색하기 위한 제7 페이지(P7)에 대응하는 검색 화면(907)을 디스플레이 할 수 있다. 전자 장치(300)는, 검색 화면 (907)을 대신해, 검색된 컨텐츠를 재생하기 재생 시작 화면(909)을 디스플레이 할 수 있다.
도 8 및 9에 도시된 트리 구조는, 사용자로부터 수신된 사용자 입력 패턴을 분석함으로써 학습된 것일 수 있다. 이하에서는 사용자 입력 패턴을 학습하는 구체적인 방법에 대해서 설명한다.
일 실시예에 따른 전자 장치(300) 또는 전자 장치(300)와 통신하는 서버는, 적어도 하나의 사용자가 애플리케이션을 사용함에 있어서 사용자가 입력하는 적어도 하나의 사용자 입력에 대해 학습할 수 있다.
도 10은 일 실시예에 따라 전자 장치가 사용자 입력 패턴을 학습하고, 학습된 정보에 기초하여 애플리케이션을 실행하는 방법의 흐름도를 도시한다.
도 10에 도시된 바와 같이, 전자 장치(300)는, 애플리케이션을 사용하는 사용자의 사용자 입력 패턴을 학습할 수 있다. 전자 장치(300)는, 학습된 내용에 기초하여, 사용자의 음성 명령에 대응하는 가상 입력을 생성함으로써 애플리케이션을 실행 및 제어 할 수 있다.
단계 S1011에서 전자 장치(300)는, 애플리케이션이 실행되는 동안, 사용자로부터 사용자 입력을 수신할 수 있다. 일 실시예에서 전자 장치(300)가 수신하는 사용자 입력은, 전자 장치(300)에 포함되는 사용자 입력 디바이스를 통해 입력될 수 있다. 또는, 전자 장치(300)는 사용자 입력을 직접 수신하지 않고, 별도의 전자 장치 또는 별도의 사용자 입력 디바이스를 통해서 수신된 사용자 입력을 전달 받을 수 있다. 예를 들어, 전자 장치(300)는, S1011에서 수신된 사용자 입력에 응답하여 애플리케이션을 실행함으로써, 현재 디스플레이 되고 있는 화면과 다른 화면을 디스플레이 할 수 있다.
단계 S1013에서 전자 장치(300)는, 실행되고 있는 애플리케이션의 버전 및 디스플레이 되고 있는 화면의 사용자 인터페이스를 인식할 수 있다. 일 실시예에서 전자 장치(300)는, 디스플레이 되고 있는 화면의 사용자 인터페이스의 크기, 색상, 텍스트, 기호 및 메타 데이터 중 적어도 하나를 분석할 수 있다. 예를 들어, 전자 장치(300)는, 사용자 입력에 응답하여 화면이 변경될 때마다, 화면 상의 텍스트를 수집할 수 있다.
단계 S1015에서 전자 장치(300)는, 사용자 입력에 응답하여 화면이 전환된 것에 기초하여, S1011에서 수신된 사용자 입력의 의도를 파악할 수 있다. 예를 들어, S1011에서 수신된 사용자 입력에 응답하여, 애플리케이션이 컨텐츠를 검색하기 위한 화면에서 컨텐츠를 재생하기 위한 화면으로 전환되었다면, 전자 장치(300)는, 수신된 사용자 입력이 검색된 컨텐츠를 재생하기 위한 사용자 입력이라고 결정할 수 있다. 전자 장치(300)는, S1011로 돌아가서, 사용자 입력을 수신하고, 화면의 사용자 인터페이스를 분석하고, 사용자 입력의 의도를 파악하는 과정을 반복할 수 있다.
전자 장치(300)는, 화면 상에 표시되는 텍스트 및 화면 상에 표시되지 않는 메타 데이터 중 적어도 하나에 기초하여 사용자 입력 의도를 분석할 수 있다. 메타 데이터는, 화면을 구성하는 프로그래밍 언어(예를 들어, HTML(Hypertext Markup Language)) 내에 포함되는 함수명 등을 포함할 수 있다. 예를 들어, 특정 사용자 입력들에 응답하여 전자 장치(300)가 애플리케이션을 실행함으로써, 전자 장치(300)가 “구동”이라는 텍스트를 포함하는 제1 화면을 디스플레이 하고, “검색”이라는 텍스트를 포함하는 제2 화면을 디스플레이 하고, “재생”이라는 텍스트를 포함하는 제3 화면을 디스플레이 할 수 있다. 이 경우, 전자 장치(300)는, 특정 사용자 입력들이, 애플리케이션을 구동하고, 컨텐츠를 검색하고, 검색된 컨텐츠를 재생하기 위한 사용자 입력들이라고 판단할 수 있다.
예를 들어, 특정 사용자 입력들에 응답하여 전자 장치(300)가 애플리케이션을 실행함으로써, 전자 장치(300)가 “구동”과 관련된 메타 정보를 포함하는 제1 화면을 디스플레이 하고, “검색”과 관련된 메타 정보를 포함하는 제2 화면을 디스플레이 하고, “재생”이라는 메타 정보를 포함하는 제3 화면을 디스플레이 할 수 있다. 이 경우, 전자 장치(300)는, 특정 사용자 입력들이, 애플리케이션을 구동하고, 컨텐츠를 검색하고, 검색된 컨텐츠를 재생하기 위한 사용자 입력들이라고 판단할 수 있다.
단계 S1017에서 전자 장치(300)는, 애플리케이션이 실행되면서 디스플레이 되었던 화면들에 포함되는 사용자 인터페이스들 및 사용자로부터 수신되었던 사용자 입력들과 관련된 트리 구조를 생성할 수 있다. 생성된 트리 구조는 데이터 베이스(1020) 내에 저장될 수 있다.
데이터 베이스(1020)는, 전자 장치(300) 내에 포함되거나, 전자 장치(300)와 통신하는 서버 내에 저장될 수 있다. 일 실시예에서 데이터 베이스(1020)는, 애플리케이션이 실행되면서 디스플레이 되었던 화면들을 학습함으로써, 화면들 간의 이동을 위해서 입력되었던 사용자 입력을 화면들과 매칭시키고, 매칭된 정보를 저장할 수 있다. 데이터 베이스(1020)는, 전자 장치(300)가 단계 S1011, S1013 및 S1015를 반복하여 수행하면서 학습된, 애플리케이션의 복수의 페이지들에 대한 정보를 저장할 수 있다.
복수의 페이지들에 대한 정보는, 복수의 페이지들 각각의 특징과 관련된 정보를 포함할 수 있다. 페이지의 특징과 관련된 정보는, 해당 페이지에 대응하는 화면이 디스플레이 되었을 때, 화면 상에 디스플레이 되는 적어도 하나의 사용자 인터페이스의 특징 또는 화면의 레이아웃을 포함할 수 있다. 사용자 인터페이스의 특징은, 사용자 인터페이스의 크기, 색상, 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나를 포함할 수 있다. 또한, 페이지의 특징과 관련된 정보는, 해당 페이지가 어떠한 페이지들과 연결되었는지에 대한 정보 및 페이지들 간에 이동하기 위해서 입력되어야 하는 사용자 입력들에 대한 정보를 포함할 수 있다.
전자 장치(300)가 애플리케이션을 실행함에 따라 다양한 화면들을 디스플레이 하는 경우들에 있어서, 일 실시예에 따른 전자 장치(300)는, 사용자의 사용자 입력 패턴을 분석할 수 있다. 전자 장치(300)는, 사용자 입력들에 응답하여 전환되는 화면들에 기초하여, 각 사용자 입력의 의도를 파악할 수 있다. 사용자 입력이 수신될 때 전자 장치(300)가 디스플레이 하고 있는 화면, 또는 사용자 입력이 수신된 후 전자 장치(300)가 디스플레이 하고 있는 화면 상에 표시된 텍스트를 분석함으로써, 전자 장치(300)는 사용자 입력의 의도를 파악할 수 있다.
전자 장치(300)는, 사용자 입력 디바이스를 통해 수신되는 사용자 입력들, 화면 상에 표시되는 사용자 인터페이스들, 애플리케이션이 최종적으로 수행하는 동작 들 간의 패턴을 분석할 수 있다. 전자 장치(300)는, 사용자 입력 패턴을 학습함으로써, 추후에 수신될 음성 명령에 대응하는 템플릿을 생성할 수 있다.
한편, 전자 장치(300)는, 학습된 사용자 입력 패턴에 기초하여, 사용자의 음성 명령에 대응하는 가상 입력 시퀀스를 생성하고 애플리케이션을 제어할 수 있다.
단계 S1031에서 전자 장치(300)는, 음성 명령을 수신할 수 있다. 단계 S1033에서 전자 장치(300)는, 수신된 음성 명령을 분석할 수 있다. 단계 S1035에서 전자 장치(300)는, 실행되고 있는 애플리케이션의 버전 및 디스플레이 되고 있는 화면의 사용자 인터페이스를 인식할 수 있다. 전자 장치(300)는, 인식된 애플리케이션의 버전에 대응하는 복수의 페이지들에 대한 정보를 획득할 수 있다.
단계 S1037에서 전자 장치(300)는, 수신된 음성 명령 및 디스플레이 되고 있는 화면의 사용자 인터페이스에 기초하여 가상 입력 시퀀스를 생성할 수 있다. 일 실시예에서 전자 장치(300)는, 수신된 음성 명령에 대응하는 동작을 애플리케이션을 통해서 수행하기 위한 가상 입력 시퀀스를 생성할 수 있다. 예를 들어, 전자 장치(300)는, 미리 학습된 사용자 입력 패턴들 중에서, 음성 명령의 의도와 관련된 사용자 입력 패턴을 가상 입력 시퀀스로 전환할 수 있다.
전자 장치(300)는, 수신된 음성 명령에 기초하여 목적 페이지를 결정하고, 디스플레이 되고 있는 화면에 대응하는 현재 페이지를 결정할 수 있다. 전자 장치(300)는, 데이터 베이스(1020) 내에 저장된 애플리케이션의 복수의 페이지들에 대한 정보에 기초하여, 현재 페이지로부터 목적 페이지로 이동하기 위한 경로를 결정할 수 있다. 전자 장치(300)는, 결정된 경로를 따라서 이동된 페이지에 대응하는 화면을 디스플레이 하기 위해서, 복수의 가상 입력들을 포함한 가상 입력 시퀀스를 생성할 수 있다.
단계 S1038에서 전자 장치(300)는, 생성된 가상 입력 시퀀스에 응답하여 애플리케이션을 실행할 수 있다.
단계 S1039에서 전자 장치(300)는, 가상 입력 시퀀스에 포함되는 적어도 하나의 가상 입력에 응답하여 애플리케이션을 실행함으로써 화면이 변경될 때마다, 사용자의 음성 명령에 따라 애플리케이션이 적절하게 실행되었는지 여부를 판단할 수 있다. 일 실시예에서 전자 장치(300)는, 변경된 화면이 단계 S1037에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면인지 여부를 판단함으로써, 사용자의 음성 명령에 따라 애플리케이션이 적절하게 실행되었는지 여부를 판단할 수 있다. 전자 장치(300)는, 사용자의 음성 명령에 따라 애플리케이션이 적절하게 실행되지 않았다고 판단하는 경우, 단계 S1035로 돌아가서 전자 장치(300)가 실행하고 있는 애플리케이션의 버전을 다시 확인 하고, 확인된 애플리케이션의 버전에 대응하는 복수의 페이지들에 대한 정보를 다시 획득할 수 있다.
도 10의 S1031 및 S1033은 도 4의 S410에 대응하고, 도 10의 S1035 및 S1037은 도 4의 S420 및 S430에 대응할 수 있다. 도 10의 S1038 및 S1039는 도 4의 S440에 대응할 수 있다. 서로 대응하는 도 4의 각 단계와 도 10의 각 단계에 대해서는, 각 단계에 대한 설명이 서로 적용될 수 있다. 따라서, 중복되는 동작에 대한 설명은 생략한다.
한편, 앞선 설명에서는 설명의 편의를 위하여, 단일한 전자 장치가 사용자 입력 패턴을 학습하고 가상 입력에 기초하여 애플리케이션을 제어하는 경우를 예로 들어 설명하였지만, 실시예는 이에 제한되지 않는다.
예를 들어, 특정 전자 장치가 사용자 입력 패턴을 학습하고, 다른 전자 장치가 학습된 사용자 입력 패턴에 기초하여 가상 입력을 생성하고 애플리케이션을 제어할 수 있다.
다른 예로서, 전자 장치와 연결된 서버가 사용자의 사용자 입력 패턴을 학습할 수 있다. 서버로부터 학습된 정보를 수신한 전자 장치는, 수신된 정보에 기초하여 가상 입력을 생성하고 애플리케이션을 제어할 수 있다.
또 다른 예로서, 복수의 전자 장치들과 연결된 서버가 복수의 사용자들의 사용자 입력 패턴을 학습할 수 있다. 애플리케이션의 복수의 페이지들에 대한 정보는, 해당 애플리케이션을 이용하는 다수의 사용자들의 사용자 입력 패턴을 서버가 학습함으로써 획득될 수 있다. 서버는, 복수의 전자 장치들을 이용하는 복수의 사용자들로부터 입력된 화면 변경 이벤트를 수집함으로써, 트리 구조를 이루는 복수의 페이지들에 대한 정보를 생성할 수 있다. 이 때, 사용자 입력 패턴의 학습을 위해서 전자 장치들로부터 수집되는 데이터는, 사용자가 의도를 갖고 입력한 화면 변경 이벤트 전부를 포함할 수 있다.
또 다른 예로서, 애플리케이션의 페이지들 간의 이동을 위한 경로를 결정하기 위해서 이용되는 복수의 페이지들에 대한 정보는, 해당 애플리케이션을 제공하는 서드 파티 제공자에 의해 생성된 것일 수 있다.
일 실시예에 따른 전자 장치는, 도 4 및 5 등을 참조하여 상술한 바와 같이 단독으로 음성을 인식하고 가상 입력 시퀀스를 생성하고 애플리케이션을 실행할 수 있는 전자 장치 또는 서버를 포함할 수 있으나 이에 한정되지 않는다. 일 실시예에 따른 음성 인식 시스템은, 전자 장치와 서버를 포함할 수 있다.
도 11은 일 실시예에 따른 음성 인식 시스템이 동작하는 방법의 흐름도이다.
전자 장치(1100-2)와 서버(1100-3) 각각은 도 2b의 전자 장치(200-2)와 서버(200-3)에 대응할 수 있다. 도 2b에 도시된 바와 같이, 전자 장치(1100-2)와 서버(1100-3)는 무선 또는 유선으로 연결되고 서로 데이터를 송수신 할 수 있다.
S1101에서 전자 장치(1100-2)는 사용자의 음성 명령을 수신 할 수 있다. S1103에서 전자 장치(1100-2)는 음성 명령과 관련된 정보를 서버(1100-3)에게 송신할 수 있다. 일 실시예에서 음성 명령과 관련된 정보는, 음성 명령을 포함하는 음성 신호를 포함할 수 있고, 음성 신호의 특징 벡터를 포함할 수 있으며, 음성 명령으로부터 음성 인식을 수행함으로써 생성된 텍스트일 수 있다. 전자 장치(1100-2)는, 현재 디스플레이 되고 있는 제1 화면에 대한 정보를 서버(1100-3)에게 더 송신할 수 있다.
S1105에서 서버(1100-3)는, 전자 장치(1100-2)로부터 수신된 음성 명령과 관련된 정보에 대한 음성 인식을 수행할 수 있다.
S1107에서 서버(1100-3)는, 전자 장치(1100-2)를 통해 현재 디스플레이 되고 있는 제1 화면을 인식할 수 있다. 일 실시예에서 서버(1100-3)는, 제1 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 특징을 분석함으로써 제1 화면을 인식할 수 있다. 서버(1100-3)는, 제1 화면에 기초하여, 전자 장치(1100-2)에서 실행되고 있는 애플리케이션의 버전을 결정할 수 있다. 서버(1100-3)는, 애플리케이션의 버전 별로, 해당 버전의 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 구별하여 미리 저장할 수 있다. 서버(1100-3)는, 제1 화면을 분석한 결과와 미리 저장된 복수의 페이지들에 대한 정보를 비교함으로써, 전자 장치(1100-2)를 통해 실행되고 있는 애플리케이션의 버전을 결정할 수 있다.
서버(1100-3)는, 결정된 버전에 기초하여, 애플리케이션의 복수의 페이지들에 대한 정보를 획득할 수 있다. 서버(1100-3)는, 현재 디스플레이 되고 있는 제1 화면이 애플리케이션의 복수의 페이지들 중에서 어떠한 페이지인지 인식할 수 있다. 서버(1100-3)는, 복수의 페이지들 중에서 제1 페이지가 제1 화면에 대응한다고 결정할 수 있다.
S1109에서 서버(1100-3)는, 음성 인식을 수행한 결과 및 복수의 페이지들 각각의 특징과 관련된 정보에 기초하여, 복수의 페이지들 중에서 목적 페이지를 결정할 수 있다.
S1111에서 서버(1100-3)는, 가상 입력 시퀀스를 생성할 수 있다. 서버(1100-3)는, 전자 장치(1100-2)가 애플리케이션을 통해 음성 명령에 대응하는 동작을 수행하기 위한 가상 입력들을 포함하는 가상 입력 시퀀스를 생성할 수 있다. 서버(1100-3)는, 현재 디스플레이 되고 있는 제1 화면을 대신하여, 전자 장치(1100-2)가 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력들을 포함하는 가상 입력 시퀀스를 생성할 수 있다.
서버(1100-3)는, 트리 구조를 이루는 복수의 페이지들 내에서 제1 화면에 대응하는 제1 페이지로부터 목적 페이지로 이동하기 위한 경로를 결정할 수 있다. 서버(1100-3)는, 결정된 경로를 따라 제1 페이지로부터 목적 페이지로 이동하기 위해서 입력되어야 하는 적어도 하나의 사용자 입력에 대한 정보를 획득할 수 있다. 서버(1100-3)는, 획득된 적어도 하나의 사용자 입력에 대한 정보에 기초하여, 적어도 하나의 사용자 입력에 대응하는 적어도 하나의 가상 입력을 포함하는 가상 입력 시퀀스를 생성할 수 있다.
S1113에서 서버(1100-3)는, 생성된 가상 입력 시퀀스를 전자 장치(1100-2)에게 전송할 수 있다.
S1115에서 전자 장치(1100-2)는, 가상 입력 시퀀스에 포함되는 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. S1117에서 전자 장치(1100-2)는, 목적 페이지에 대응하는 화면을 디스플레이 할 수 있다. S1119에서 전자 장치(1100-2)는, 음성 명령에 대응하는 동작을 수행하도록 애플리케이션을 실행할 수 있다. 전자 장치(1100-2)는, 가상 입력 시퀀스에 포함되는 가상 입력에 응답하여, 음성 명령에 대응하는 동작을 수행하도록 애플리케이션을 실행할 수 있다.
도 11에서는 설명의 편의를 위해서 전자 장치(1100-2)가 제1 화면에서, 목적 페이지에 대응하는 제2 화면으로 바로 전환되는 경우를 예로 들어 도시하였다. 그러나, 일 실시예에 따른 서버(1100-3)는, 애플리케이션에 대한 복수의 페이지들의 트리 구조 내에서, 제1 화면에 대응하는 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 목적 페이지로 이동하는 경로를 결정할 수 있다. 이 경우, 전자 장치(1100-2) 또는 서버(1100-3)는, 가상 입력 시퀀스에 포함되는 가상 입력에 응답하여 전자 장치(1100-2)가 디스플레이 하고 있는 화면이 변경될 때마다, 화면 상의 사용자 인터페이스를 분석할 수 있다. 변경되는 화면이 단계 S1111에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면인 경우, 전자 장치(1100-2)는 가상 입력 시퀀스에 포함되는 다음 가상 입력에 응답하여 애플리케이션을 실행할 수 있다. 반면에, 변경되는 화면이 단계 S1111에서 결정된 경로 내에 포함되는 페이지에 대응하는 화면이 아닌 경우, 전자 장치(1100-2)는 사용자의 음성 명령에 대응하는 가상 입력 시퀀스를 다시 생성하여 전송하도록 서버(1100-3)에게 요청할 수 있다.
한편, 상술한 실시예는, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터에 의해 판독 가능한 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 또한, 상술한 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 컴퓨터가 읽고 실행할 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 기록 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 마그네틱 저장매체, 예를 들면, 롬, 플로피 디스크, 하드 디스크 등을 포함하고,) 광학적 판독 매체, 예를 들면, 시디롬, DVD 등과 같은 저장 매체를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.
또한, 컴퓨터가 읽을 수 있는 복수의 기록 매체가 네트워크로 연결된 컴퓨터 시스템들에 분산되어 있을 수 있으며, 분산된 기록 매체들에 저장된 데이터, 예를 들면 프로그램 명령어 및 코드가 적어도 하나의 컴퓨터에 의해 실행될 수 있다.
본 개시에서 설명된 특정 실행들은 일 실시예 일 뿐이며, 어떠한 방법으로도 본 개시의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.
본 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
"부", "모듈"은 어드레싱될 수 있는 저장 매체에 저장되며 프로세서에 의해 실행될 수 있는 프로그램에 의해 구현될 수도 있다.
예를 들어, “부”, "모듈" 은 소프트웨어 구성 요소들, 객체 지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들에 의해 구현될 수 있다.

Claims (22)

  1. 전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하는 방법에 있어서,
    상기 애플리케이션을 실행하기 위한 음성 명령에 대한 음성 인식을 수행하는 단계;
    상기 음성 인식 결과에 기초하여 상기 애플리케이션이 실행되면서 현재 디스플레이 되고 있는 제1 화면을 분석하여 상기 제1 화면 상에 디스플레이 되고 있는 적어도 하나의 사용자 인터페이스의 특징을 추출하고, 상기 추출된 사용자 인터페이스의 특징에 기초하여 상기 애플리케이션의 버전을 결정하는 단계;
    상기 결정된 애플리케이션의 버전에 기초하여 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 획득하는 단계;
    상기 음성 인식 결과 및 상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 복수의 페이지들 중에서 상기 음성 명령에 대응하는 동작을 수행하기 위한 페이지를 목적 페이지로서 결정하는 단계;
    상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하는 단계; 및
    상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 단계를 포함하는, 애플리케이션 실행 방법.
  2. 제1 항에 있어서,
    상기 가상 입력 시퀀스는,
    상기 전자 장치가 상기 사용자로부터 상기 애플리케이션에 대한 사용자 입력들을 수신한 것처럼 상기 애플리케이션이 실행되도록 하는 상기 전자 장치에서 생성된 가상 입력들을 포함하는 것을 특징으로 하는, 애플리케이션 실행 방법.
  3. 제1 항에 있어서, 상기 애플리케이션의 버전을 결정하는 단계는,
    상기 적어도 하나의 사용자 인터페이스의 크기, 색상, 상기 적어도 하나의 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 적어도 하나의 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 애플리케이션의 버전을 결정하는, 애플리케이션 실행 방법.
  4. 제1 항에 있어서, 상기 방법은,
    상기 제1 화면 상에 디스플레이 되고 있는 상기 적어도 하나의 사용자 인터페이스의 크기, 색상, 상기 적어도 하나의 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 적어도 하나의 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 복수의 페이지들 중에서 상기 제1 화면에 대응하는 제1 페이지를 인식하는 단계를 더 포함하는, 애플리케이션 실행 방법.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제1 항에 있어서,
    상기 가상 입력 시퀀스를 생성하는 단계는,
    상기 애플리케이션에 대한 상기 복수의 페이지들의 트리 구조 내에서, 상기 제1 화면에 대응하는 제1 페이지로부터 상기 목적 페이지로 이동하기 위한 상기 가상 입력 시퀀스를 생성하는, 애플리케이션 실행 방법.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제5 항에 있어서,
    상기 가상 입력 시퀀스는,
    상기 트리 구조 내에서, 상기 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 상기 목적 페이지로 이동하기 위한 제1 가상 입력 및 제2 가상 입력을 포함하고,
    상기 애플리케이션을 실행하는 단계는,
    상기 제1 가상 입력에 응답하여 상기 애플리케이션을 실행시킴으로써, 상기 제1 화면을 대신하여 제3 화면을 디스플레이 하는 단계;
    상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 크기, 색상, 상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 제3 화면이 상기 적어도 하나의 제2 페이지에 대응하는 화면인지 여부를 결정하는 단계; 및
    상기 제3 화면이 상기 적어도 하나의 제2 페이지에 대응하는 화면인 경우, 상기 제2 가상 입력에 응답하여 상기 애플리케이션을 실행시킴으로써, 상기 제3 화면을 대신하여 상기 목적 페이지에 대응하는 상기 제2 화면을 디스플레이 하는 단계를 포함하는 것을 특징으로 하는, 애플리케이션 실행 방법.
  7. 삭제
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제1 항에 있어서, 상기 방법은,
    상기 음성 명령을 수신하기에 앞서 상기 애플리케이션이 실행되는 동안, 상기 제1 화면에 대응하는 제1 페이지로부터 상기 목적 페이지로 이동하기 위하여 상기 사용자로부터 수신된 사용자 입력에 관한 정보를 저장하는 단계를 더 포함하고,
    상기 가상 입력 시퀀스를 생성하는 단계는,
    상기 저장된 정보에 기초하여, 상기 사용자 입력에 대응하는 가상 입력을 생성하는 단계를 포함하는 것을 특징으로 하는, 애플리케이션 실행 방법.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제1 항에 있어서,
    상기 음성 명령에 대한 음성 인식을 수행하는 단계는,
    상기 음성 명령을 변환함으로써 생성된 텍스트로부터 제1 단어를 추출하는 단계를 포함하고,
    상기 목적 페이지를 결정하는 단계는,
    상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 복수의 페이지들 중에서 상기 제1 단어에 대응하는 텍스트 및 아이콘 중 적어도 하나를 포함하는 페이지를 상기 목적 페이지로서 결정하는 단계를 포함하는, 애플리케이션 실행 방법.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제1 항에 있어서,
    상기 음성 명령은,
    상기 애플리케이션에 의해서 소정 컨텐츠를 재생하기 위한 명령이고,
    상기 애플리케이션을 실행하는 단계는,
    상기 가상 입력 시퀀스에 포함되는 제1 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 애플리케이션에 의해 재생될 수 있는 컨텐츠를 검색하기 위한 제3 화면을 디스플레이 하는 단계;
    상기 가상 입력 시퀀스에 포함되는 제2 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 제3 화면 상에 디스플레이 되고 있는 검색 창 내에 상기 소정 컨텐츠의 식별자를 입력하는 단계;
    상기 입력된 식별자에 기초하여 상기 애플리케이션을 실행함으로써, 상기 소정 컨텐츠를 재생하기 위한 상기 목적 페이지에 대응하는 상기 제2 화면을 디스플레이 하는 단계; 및
    상기 가상 입력 시퀀스에 포함되는 제3 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 소정 컨텐츠를 재생하는 단계를 포함하는 것을 특징으로 하는, 애플리케이션 실행 방법.
  11. 사용자의 음성 명령을 수신하는 수신부;
    애플리케이션을 실행하기 위한 음성 명령에 대한 음성 인식을 수행하고,
    상기 음성 인식 결과에 기초하여 상기 애플리케이션이 실행되면서 현재 디스플레이 되고 있는 제1 화면을 분석하여 상기 제1 화면 상에 디스플레이 되고 있는 적어도 하나의 사용자 인터페이스의 특징을 추출하고, 상기 추출된 사용자 인터페이스의 특징에 기초하여 상기 애플리케이션의 버전을 결정하고,
    상기 결정된 애플리케이션의 버전에 기초하여 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 획득하고,
    상기 음성 인식 결과 및 상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 복수의 페이지들 중에서 상기 음성 명령에 대응하는 동작을 수행하기 위한 페이지를 목적 페이지로서 결정하고,
    상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하고, 및
    상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는,
    적어도 하나의 프로세서; 및
    상기 제1 화면을 디스플레이 하는 디스플레이를 포함하는, 전자 장치.
  12. 제11 항에 있어서,
    상기 가상 입력 시퀀스는,
    상기 전자 장치가 상기 사용자로부터 상기 애플리케이션에 대한 사용자 입력들을 수신한 것처럼 상기 애플리케이션이 실행되도록 하는 상기 전자 장치에서 생성된 가상 입력들을 포함하는 것을 특징으로 하는, 전자 장치.
  13. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 화면 상에 디스플레이 되고 있는 상기 적어도 하나의 사용자 인터페이스의 크기, 색상, 상기 적어도 하나의 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 적어도 하나의 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치 내에 설치된 상기 애플리케이션의 버전을 결정하는 것을 특징으로 하는, 전자 장치.
  14. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 화면 상에 디스플레이 되고 있는 상기 적어도 하나의 사용자 인터페이스의 크기, 색상, 상기 적어도 하나의 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 적어도 하나의 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 복수의 페이지들 중에서 상기 제1 화면에 대응하는 제1 페이지를 인식하는 것을 특징으로 하는, 전자 장치.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 애플리케이션에 대한 상기 복수의 페이지들의 트리 구조 내에서, 상기 제1 화면에 대응하는 제1 페이지로부터 상기 목적 페이지로 이동하기 위한 상기 가상 입력 시퀀스를 생성하는 것을 특징으로 하는, 전자 장치.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15 항에 있어서,
    상기 가상 입력 시퀀스는,
    상기 트리 구조 내에서, 상기 제1 페이지로부터 적어도 하나의 제2 페이지를 거쳐 상기 목적 페이지로 이동하기 위한 제1 가상 입력 및 제2 가상 입력을 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 제1 가상 입력에 응답하여 상기 애플리케이션을 실행시킴으로써, 상기 디스플레이가 상기 제1 화면을 대신하여 제3 화면을 디스플레이 하도록 제어하고,
    상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스의 크기, 색상, 상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스에 포함되는 텍스트, 기호 및 상기 제3 화면 상에 디스플레이 되고 있는 사용자 인터페이스와 관련된 메타 데이터 중 적어도 하나에 기초하여, 상기 제3 화면이 상기 적어도 하나의 제2 페이지에 대응하는 화면인지 여부를 결정하고,
    상기 제3 화면이 상기 적어도 하나의 제2 페이지에 대응하는 화면인 경우, 상기 제2 가상 입력에 응답하여 상기 애플리케이션을 실행시킴으로써, 상기 디스플레이가 상기 제3 화면을 대신하여 상기 목적 페이지에 대응하는 상기 제2 화면을 디스플레이 하도록 제어하는 것을 특징으로 하는, 전자 장치.
  17. 삭제
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제11 항에 있어서, 상기 전자 장치는,
    상기 음성 명령을 수신하기에 앞서 상기 애플리케이션이 실행되는 동안, 상기 제1 화면에 대응하는 제1 페이지로부터 상기 목적 페이지로 이동하기 위하여 상기 사용자로부터 수신된 사용자 입력에 관한 정보를 저장하는 메모리를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 가상 입력 시퀀스를 생성함에 있어서, 상기 저장된 정보에 기초하여, 상기 사용자 입력에 대응하는 가상 입력을 생성하는 것을 특징으로 하는, 전자 장치.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 음성 명령에 대한 음성 인식을 수행함에 있어서, 상기 음성 명령을 변환함으로써 생성된 텍스트로부터 제1 단어를 추출하고,
    상기 목적 페이지를 결정함에 있어서, 상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 복수의 페이지들 중에서 상기 제1 단어에 대응하는 텍스트 및 아이콘 중 적어도 하나를 포함하는 페이지를 상기 목적 페이지로서 결정하는 것을 특징으로 하는, 전자 장치.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제11 항에 있어서,
    상기 음성 명령은,
    상기 애플리케이션에 의해서 소정 컨텐츠를 재생하기 위한 명령이고,
    상기 적어도 하나의 프로세서는,
    상기 가상 입력 시퀀스에 포함되는 제1 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 디스플레이가 상기 애플리케이션에 의해 재생될 수 있는 컨텐츠를 검색하기 위한 제3 화면을 디스플레이 하도록 제어하고,
    상기 가상 입력 시퀀스에 포함되는 제2 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 제3 화면 상에 디스플레이 되고 있는 검색 창 내에 상기 소정 컨텐츠의 식별자를 입력하고,
    상기 입력된 식별자에 기초하여 상기 애플리케이션을 실행함으로써, 상기 디스플레이가 상기 소정 컨텐츠를 재생하기 위한 상기 목적 페이지에 대응하는 상기 제2 화면을 디스플레이 하도록 제어하고,
    상기 가상 입력 시퀀스에 포함되는 제3 가상 입력에 응답하여 상기 애플리케이션을 실행함으로써, 상기 소정 컨텐츠를 재생하는 것을 특징으로 하는, 전자 장치.
  21. 전자 장치가 사용자의 음성 명령에 기초하여 애플리케이션을 실행하는 방법을 수행하는 명령어들이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    상기 애플리케이션을 실행하는 방법은,
    상기 애플리케이션을 실행하기 위한 음성 명령에 대한 음성 인식을 수행하는 단계;
    상기 음성 인식 결과에 기초하여 상기 애플리케이션이 실행되면서 현재 디스플레이 되고 있는 제1 화면을 분석하여 상기 제1 화면 상에 디스플레이 되고 있는 적어도 하나의 사용자 인터페이스의 특징을 추출하고, 상기 추출된 사용자 인터페이스의 특징에 기초하여 상기 애플리케이션의 버전을 결정하는 단계;
    상기 결정된 애플리케이션의 버전에 기초하여 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 획득하는 단계;
    상기 음성 인식 결과 및 상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 복수의 페이지들 중에서 상기 음성 명령에 대응하는 동작을 수행하기 위한 페이지를 목적 페이지로서 결정하는 단계;
    상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하기 위한 가상 입력 시퀀스를 생성하는 단계; 및
    상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 단계를 포함하는, 기록 매체.
  22. 전자 장치와 통신하는 서버에 있어서,
    상기 전자 장치를 통해 입력된 사용자의 음성 명령을 수신하는 수신부;
    애플리케이션을 실행하기 위한 음성 명령에 대한 음성 인식을 수행하고,
    상기 음성 인식 결과에 기초하여 상기 애플리케이션이 실행되면서 현재 디스플레이 되고 있는 제1 화면을 분석하여 상기 제1 화면 상에 디스플레이 되고 있는 적어도 하나의 사용자 인터페이스의 특징을 추출하고, 상기 추출된 사용자 인터페이스의 특징에 기초하여 상기 애플리케이션의 버전을 결정하고,
    상기 결정된 애플리케이션의 버전에 기초하여 디스플레이 될 수 있는 복수의 페이지들에 대한 정보를 획득하고,
    상기 음성 인식 결과 및 상기 획득된 복수의 페이지들에 대한 정보에 기초하여, 상기 전자 장치에서 애플리케이션이 실행되면서 디스플레이 될 수 있는 복수의 페이지들 중에서 상기 음성 명령에 대응하는 동작을 수행하기 위한 페이지를 목적 페이지로서 결정하고, 및
    상기 전자 장치가 상기 목적 페이지에 대응하는 제2 화면을 디스플레이 하도록 제어하기 위한 가상 입력 시퀀스를 생성하는 적어도 하나의 프로세서; 및
    상기 가상 입력 시퀀스를 상기 전자 장치에게 송신하는 송신부를 포함하고,
    상기 전자 장치는 상기 가상 입력 시퀀스에 응답하여 상기 애플리케이션을 실행하는 것을 특징으로 하는, 서버.
KR1020160141177A 2016-10-27 2016-10-27 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치 KR102667413B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160141177A KR102667413B1 (ko) 2016-10-27 2016-10-27 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
PCT/KR2017/011833 WO2018080162A1 (ko) 2016-10-27 2017-10-25 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
US16/345,491 US10978068B2 (en) 2016-10-27 2017-10-25 Method and apparatus for executing application on basis of voice commands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160141177A KR102667413B1 (ko) 2016-10-27 2016-10-27 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180046208A KR20180046208A (ko) 2018-05-08
KR102667413B1 true KR102667413B1 (ko) 2024-05-21

Family

ID=62025238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160141177A KR102667413B1 (ko) 2016-10-27 2016-10-27 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치

Country Status (3)

Country Link
US (1) US10978068B2 (ko)
KR (1) KR102667413B1 (ko)
WO (1) WO2018080162A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9472196B1 (en) * 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
KR102667413B1 (ko) * 2016-10-27 2024-05-21 삼성전자주식회사 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
US10896297B1 (en) 2017-12-13 2021-01-19 Tableau Software, Inc. Identifying intent in visual analytical conversations
KR102527107B1 (ko) 2018-08-08 2023-05-02 삼성전자주식회사 음성에 기반하여 기능을 실행하기 위한 방법 및 이를 지원하는 사용자 전자 장치
KR101935585B1 (ko) * 2018-10-02 2019-04-05 넷마블 주식회사 게임 커맨드 인식 방법 및 장치
US11055489B2 (en) 2018-10-08 2021-07-06 Tableau Software, Inc. Determining levels of detail for data visualizations using natural language constructs
US10747655B2 (en) * 2018-11-20 2020-08-18 Express Scripts Strategic Development, Inc. Method and system for programmatically testing a user interface
CN109545214A (zh) * 2018-12-26 2019-03-29 苏州思必驰信息科技有限公司 基于语音交互系统的消息分发方法及装置
JP7185866B2 (ja) * 2019-03-15 2022-12-08 ハミングヘッズ株式会社 情報処理装置、情報処理方法、コンピュータプログラム
US11314817B1 (en) 2019-04-01 2022-04-26 Tableau Software, LLC Methods and systems for inferring intent and utilizing context for natural language expressions to modify data visualizations in a data visualization interface
US11455339B1 (en) 2019-09-06 2022-09-27 Tableau Software, LLC Incremental updates to natural language expressions in a data visualization user interface
EP4049257A1 (en) * 2019-10-23 2022-08-31 Carrier Corporation A method and an apparatus for executing operation/s on device/s
CN111367488B (zh) * 2020-01-07 2023-08-22 百度在线网络技术(北京)有限公司 语音设备及语音设备的交互方法、设备、存储介质
CN113360125A (zh) * 2020-03-05 2021-09-07 西安诺瓦星云科技股份有限公司 图像显示方法、装置和系统
US12020710B2 (en) 2021-03-05 2024-06-25 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
CN113032069B (zh) * 2021-03-24 2024-01-12 北京百度网讯科技有限公司 页面切换方法、装置、电子设备及可读存储介质
US20220404956A1 (en) * 2021-06-17 2022-12-22 Samsung Electronics Co., Ltd. Method and electronic device for navigating application screen
WO2023068405A1 (ko) * 2021-10-21 2023-04-27 엘지전자 주식회사 디스플레이 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259113A (ja) 2001-03-02 2002-09-13 Sharp Corp 音声マクロ処理装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
US20080288878A1 (en) 2005-03-23 2008-11-20 Sawako-Eeva Hayashi Method and Mobile Terminal Device for Mapping a Virtual User Input Interface to a Physical User Input Interface
US20120209608A1 (en) 2011-02-15 2012-08-16 Pantech Co., Ltd. Mobile communication terminal apparatus and method for executing application through voice recognition

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386260B2 (en) * 2007-12-31 2013-02-26 Motorola Mobility Llc Methods and apparatus for implementing distributed multi-modal applications
US9104517B2 (en) * 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
CN102855079B (zh) * 2011-05-24 2016-06-08 Lg电子株式会社 移动终端
KR101572737B1 (ko) 2011-05-27 2015-11-27 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메타데이터를 사용한 무결절성 애플리케이션 백업 및 리커버리
KR102022318B1 (ko) * 2012-01-11 2019-09-18 삼성전자 주식회사 음성 인식을 사용하여 사용자 기능을 수행하는 방법 및 장치
KR20140009687A (ko) * 2012-07-12 2014-01-23 삼성전자주식회사 매크로 기능을 이용하는 복합 입력 처리 방법 및 장치
US8826240B1 (en) * 2012-09-29 2014-09-02 Appurify, Inc. Application validation through object level hierarchy analysis
KR101505127B1 (ko) * 2013-03-15 2015-03-26 주식회사 팬택 음성 명령에 의한 오브젝트 실행 장치 및 방법
US9195388B2 (en) * 2013-03-15 2015-11-24 Apple Inc. Specifying applications to share in a shared access mode
KR101444091B1 (ko) * 2013-08-06 2014-09-26 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
US9513888B1 (en) * 2014-01-30 2016-12-06 Sprint Communications Company L.P. Virtual preloads
US9582246B2 (en) * 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
KR20160071264A (ko) * 2014-12-11 2016-06-21 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
KR20160016491A (ko) * 2014-07-31 2016-02-15 삼성전자주식회사 디바이스 및 디바이스의 기능 수행 방법
KR101579292B1 (ko) 2014-08-29 2015-12-21 서울대학교 산학협력단 범용 음성인식 제어 장치 및 제어 방법
KR102407630B1 (ko) * 2015-09-08 2022-06-10 삼성전자주식회사 서버, 사용자 단말 및 이들의 제어 방법.
US10970101B2 (en) * 2016-06-03 2021-04-06 Vmware, Inc. System and method for dynamically configuring virtual displays and virtual inputs for different remote sessions that each present content for a virtual machine
KR102667413B1 (ko) * 2016-10-27 2024-05-21 삼성전자주식회사 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
SG10202104386UA (en) * 2016-10-28 2021-05-28 Icahn School Med Mount Sinai Compositions and methods for treating ezh2-mediated cancer
US11003417B2 (en) * 2016-12-15 2021-05-11 Samsung Electronics Co., Ltd. Speech recognition method and apparatus with activation word based on operating environment of the apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259113A (ja) 2001-03-02 2002-09-13 Sharp Corp 音声マクロ処理装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
US20080288878A1 (en) 2005-03-23 2008-11-20 Sawako-Eeva Hayashi Method and Mobile Terminal Device for Mapping a Virtual User Input Interface to a Physical User Input Interface
US20120209608A1 (en) 2011-02-15 2012-08-16 Pantech Co., Ltd. Mobile communication terminal apparatus and method for executing application through voice recognition

Also Published As

Publication number Publication date
WO2018080162A1 (ko) 2018-05-03
US10978068B2 (en) 2021-04-13
US20190311717A1 (en) 2019-10-10
KR20180046208A (ko) 2018-05-08

Similar Documents

Publication Publication Date Title
KR102667413B1 (ko) 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
JP6111030B2 (ja) 電子装置及びその制御方法
JP5746111B2 (ja) 電子装置及びその制御方法
JP5819269B2 (ja) 電子装置及びその制御方法
WO2020007013A1 (zh) 搜索页面交互方法、装置、终端及存储介质
RU2625439C2 (ru) Электронное устройство и способ для предоставления пользовательского интерфейса для него
JP6375521B2 (ja) 音声検索装置、音声検索方法、および表示装置
US20140168130A1 (en) User interface device and information processing method
JP2013037689A (ja) 電子装置及びその制御方法
CN103092337A (zh) 电子装置及其控制方法
CN103187063A (zh) 电子装置和控制电子装置的方法
KR20130082339A (ko) 음성 인식을 사용하여 사용자 기능을 수행하는 방법 및 장치
CN111221450B (zh) 信息显示方法、装置、电子设备和存储介质
KR20120080069A (ko) 디스플레이 장치 및 그 음성 제어 방법
EP3869301A1 (en) Information processing device, information processing method, and computer program
EP2518722A2 (en) Method for providing link list and display apparatus applying the same
JP6208837B1 (ja) ユーザインタフェースを制御する方法、プログラム及び装置
JP2016539435A (ja) オンスクリーンキーボード用クイックタスク
CN103731711A (zh) 智能电视对于操作的执行方法和系统
JP5902359B2 (ja) 方法、電子機器およびプログラム
JP2008027009A (ja) ユーザインタフェース提示装置および方法
KR20130079096A (ko) 전자 장치 및 그의 제어 방법
US20240201804A1 (en) Context-sensitive customization of remote-control unit
KR101043213B1 (ko) 멀티미디어 파일 재생 장치 및 이를 이용한 자막 객체 제어방법
CN118445485A (zh) 一种显示设备及语音搜索方法

Legal Events

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