KR20240050111A - 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법 - Google Patents

사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20240050111A
KR20240050111A KR1020220129887A KR20220129887A KR20240050111A KR 20240050111 A KR20240050111 A KR 20240050111A KR 1020220129887 A KR1020220129887 A KR 1020220129887A KR 20220129887 A KR20220129887 A KR 20220129887A KR 20240050111 A KR20240050111 A KR 20240050111A
Authority
KR
South Korea
Prior art keywords
processor
nodes
node
user
target
Prior art date
Application number
KR1020220129887A
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 KR1020220129887A priority Critical patent/KR20240050111A/ko
Priority to PCT/KR2023/008453 priority patent/WO2024080485A1/ko
Priority to US18/346,537 priority patent/US20240119931A1/en
Publication of KR20240050111A publication Critical patent/KR20240050111A/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/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/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
    • 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

Landscapes

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

Abstract

전자 장치가 개시된다. 본 전자 장치는 어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프를 어플리케이션 별로 저장하는 메모리, 디스플레이 및 메모리 및 디스플레이와 연결되어 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 프로세서는 사용자 음성이 수신되면, 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하고, 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하고, 사용자 명령 및 적어도 하나의 파라미터에 기초하여 제1 UI 그래프에 포함된 복수의 제1 노드 중 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하며, 타겟 노드에 대한 정보는 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 타겟 노드에서 수행할 사용자 명령에 대응되는 동작 정보 및 적어도 하나의 파라미터에 대한 정보를 포함하며, 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하고, 현재 노드 및 타겟 노드에 대한 정보에 기초하여 현재 노드로부터 타겟 노드까지의 동작 시퀀스를 식별하고, 동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행할 수 있다.

Description

사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법 { ELECTRONIC APPARATUS FOR PERFORMING AN OPERATION CORRESPONDING TO A USER'S VOICE AND CONTROL METHOD THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 사용자 음성에 대응되는 동작을 수행하는 전자 장치 및 그 제어 방법에 대한 것이다.
전자 기술의 발달에 힘입어 다양한 종류의 전자 장치가 개발되고 있다. 특히, 최근에는 어플리케이션의 제작자와 어플리케이션이 구동되는 장치의 제조사가 상이하여 어플리케이션의 다양성을 확보하고 있다.
특히, 사용자 음성으로 어플리케이션의 제어도 가능하나, 이 경우 어플리케이션의 제작자로부터 공개 API(application programming interface)가 제공되거나 장치의 제조사가 제공하는 어플리케이션으로 사용 범위가 제한될 수 있다.
API가 제공되지 않는 어플리케이션을 제어하는 경우, 명령에 따른 UI 조작이 고정 동작을 수행하도록 정해져 있음에 따라, UI 업데이트 발생 시 이를 제공하기 위해 수작업이 필요하여 기능 제공에 공백이 발생할 수 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 상기 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프를 어플리케이션 별로 저장하는 메모리, 디스플레이 및 상기 메모리 및 상기 디스플레이와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 사용자 음성이 수신되면, 상기 사용자 음성에 대한 자연어 이해를 수행하여 상기 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하고, 상기 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하고, 상기 사용자 명령 및 상기 적어도 하나의 파라미터에 기초하여 상기 제1 UI 그래프에 포함된 복수의 제1 노드 중 상기 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하며, 상기 타겟 노드에 대한 정보는 상기 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 상기 타겟 노드에서 수행할 상기 사용자 명령에 대응되는 동작 정보 및 상기 적어도 하나의 파라미터에 대한 정보를 포함하며, 상기 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하고, 상기 현재 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 동작 시퀀스를 식별하고, 상기 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행한다.
또한, 상기 프로세서는 상기 적어도 하나의 파라미터에 기초하여 상기 타겟 노드에서 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
그리고, 상기 프로세서는 상기 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
또한, 상기 프로세서는 상기 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 상기 동작 수행이 불가능한 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 동작 수행이 불가능한 노드로부터 상기 타겟 노드까지의 신규 동작 시퀀스를 식별하고, 상기 신규 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
그리고, 상기 프로세서는 상기 복수의 제1 노드 및 상기 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 최단 경로를 식별하고, 상기 최단 경로에 기초하여 상기 동작 시퀀스를 식별할 수 있다.
또한, 상기 프로세서는 상기 타겟 어플리케이션이 실행된 상태이면, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하고, 상기 타겟 어플리케이션이 실행되지 않은 상태이면, 상기 타겟 어플리케이션을 실행하고, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별할 수 있다.
그리고, 상기 프로세서는 복수의 어플리케이션 중 상기 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고, 상기 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 상기 적어도 하나의 어플리케이션 중 상기 타겟 어플리케이션을 식별할 수 있다.
또한, 상기 프로세서는 상기 타겟 어플리케이션의 업데이트가 식별되면, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 상기 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하여, 상기 제1 UI 그래프를 업데이트할 수 있다.
그리고, 상기 프로세서는 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 복수의 UI 각각을 상기 복수의 노드 중 하나로 식별하고, 상기 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하여, 상기 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
또한, 상기 프로세서는 상기 복수의 UI 각각에 포함된 복수의 UI 엘리먼트(element)를 실행하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하고, 상기 복수의 UI 엘리먼트 중 기설정된 UI 엘리먼트를 파라미터로 변환하여 상기 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
그리고, 상기 프로세서는 상기 전자 장치에 설치된 운영 체제로부터 상기 복수의 UI 각각의 메타 데이터를 획득할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 상기 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프가 어플리케이션 별로 저장된 전자 장치의 제어 방법은 사용자 음성이 수신되면, 상기 사용자 음성에 대한 자연어 이해를 수행하여 상기 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하는 단계, 상기 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하는 단계, 상기 사용자 명령 및 상기 적어도 하나의 파라미터에 기초하여 상기 제1 UI 그래프에 포함된 복수의 제1 노드 중 상기 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하는 단계, 상기 전자 장치의 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하는 단계, 상기 현재 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 동작 시퀀스를 식별하는 단계 및 상기 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행하는 단계를 포함하며, 상기 타겟 노드에 대한 정보는 상기 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 상기 타겟 노드에서 수행할 상기 사용자 명령에 대응되는 동작 정보 및 상기 적어도 하나의 파라미터에 대한 정보를 포함한다.
또한, 상기 수행하는 단계는 상기 적어도 하나의 파라미터에 기초하여 상기 타겟 노드에서 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
그리고, 상기 수행하는 단계는 상기 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
또한, 상기 수행하는 단계는 상기 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 상기 동작 수행이 불가능한 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 동작 수행이 불가능한 노드로부터 상기 타겟 노드까지의 신규 동작 시퀀스를 식별하고, 상기 신규 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행할 수 있다.
그리고, 상기 수행하는 단계는 상기 복수의 제1 노드 및 상기 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 최단 경로를 식별하고, 상기 최단 경로에 기초하여 상기 동작 시퀀스를 식별할 수 있다.
또한, 상기 현재 노드를 식별하는 단계는 상기 타겟 어플리케이션이 실행된 상태이면, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하고, 상기 타겟 어플리케이션이 실행되지 않은 상태이면, 상기 타겟 어플리케이션을 실행하고, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별할 수 있다.
그리고, 상기 타겟 어플리케이션을 식별하는 단계는 복수의 어플리케이션 중 상기 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고, 상기 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 상기 적어도 하나의 어플리케이션 중 상기 타겟 어플리케이션을 식별할 수 있다.
또한, 상기 타겟 어플리케이션의 업데이트가 식별되면, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 상기 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하여, 상기 제1 UI 그래프를 업데이트하는 단계를 더 포함할 수 있다.
그리고, 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 복수의 UI 각각을 상기 복수의 노드 중 하나로 식별하고, 상기 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하여, 상기 복수의 어플리케이션 각각의 UI 그래프를 획득하는 단계를 더 포함할 수 있다.
또한, 상기 UI 그래프를 획득하는 단계는 상기 복수의 UI 각각에 포함된 복수의 UI 엘리먼트(element)를 실행하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하고, 상기 복수의 UI 엘리먼트 중 기설정된 UI 엘리먼트를 파라미터로 변환하여 상기 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
그리고, 상기 UI 그래프를 획득하는 단계는 상기 전자 장치에 설치된 운영 체제로부터 상기 복수의 UI 각각의 메타 데이터를 획득할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 하드웨어 구성을 설명하기 위한 블럭도이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 소프트웨어 구성을 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 나타내는 블럭도이다.
도 4는 본 개시의 일 실시 예에 따른 UI(user interface)의 구조를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 노드 간의 연결 관계를 나타내는 엣지를 설명하기 위한 도면이다.
도 6 및 도 7은 본 개시의 일 실시 예에 따른 UI 그래프의 획득 방법을 설명하기 위한 도면들이다.
도 8은 본 개시의 일 실시 예에 따른 사용자 음성에 따른 동작을 설명하기 위한 흐름도이다.
도 9는 본 개시의 일 실시 예에 따른 동작 시퀀스를 설명하기 위한 흐름도이다.
도 10 및 도 11은 본 개시의 일 실시 예에 따른 사용자 음성에 대응되는 동작을 설명하기 위한 도면들이다.
도 12 및 도 13은 본 개시의 일 실시 예에 따른 UI 그래프의 업데이트 동작을 설명하기 위한 도면들이다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 목적은 UI 그래프를 획득하고, UI 그래프에 기초하여 사용자 음성에 대응되는 동작을 수행하고, UI 그래프를 업데이트하는 전자 장치 및 그 제어 방법을 제공함에 있다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공 지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 다양한 실시 예를 보다 상세하게 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치(100)의 하드웨어 구성을 설명하기 위한 블럭도이다.
전자 장치(100)는 사용자 음성에 따른 동작을 수행하는 장치일 수 있다. 예를 들어, 전자 장치(100)는 TV, 데스크탑 PC, 노트북, 비디오 월(video wall), LFD(large format display), Digital Signage(디지털 간판), DID(Digital Information Display), 프로젝터 디스플레이, 스마트폰, 태블릿 PC 등과 같이 디스플레이를 구비하고, 어플리케이션이 제공하는 화면을 디스플레이하며, 사용자 음성에 따른 어플리케이션 일 동작을 수행하는 장치일 수 있다. 또는, 전자 장치(100)는 셋탑박스(STB) 등과 같이 디스플레이가 구비된 장치로 어플리케이션이 제공하는 화면을 전송하며, 사용자 음성에 따른 어플리케이션 일 동작을 수행하는 장치일 수 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 사용자 음성에 따른 동작을 수행할 수 있는 장치라면 어떠한 장치라도 무방하다.
도 1에 따르면, 전자 장치(100)는 메모리(110), 디스플레이(120) 및 프로세서(130)를 포함한다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 일부 구성이 제외된 형태로 구현될 수도 있다.
메모리(110)는 프로세서(130) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있다. 이를 위해, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시 메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(110)에는 전자 장치(100) 또는 프로세서(130)의 동작에 필요한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(130)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 또는, 메모리(110)에는 전자 장치(100) 또는 프로세서(130)의 특정 작업을 수행하는 복수의 인스트럭션이 인스트럭션 집합체(instruction set)로서 저장될 수도 있다.
메모리(110)에는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 정보인 데이터가 저장될 수 있다. 예를 들어, 메모리(110)에는 UI 그래프가 어플리케이션 별로 저장될 수 있다.
메모리(110)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의해 인스트럭션, 인스트럭션 집합체 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
디스플레이(120)는 이미지를 디스플레이하는 구성으로, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(120) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(120)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
프로세서(130)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(130)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(130)는 메모리(110), 디스플레이(120) 등과 같은 구성과 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
적어도 하나의 프로세서(130)는 CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerated Processing Unit), MIC(Many Integrated Core), DSP(Digital Signal Processor), NPU(Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 적어도 하나의 프로세서(130)는 전자 장치(100)의 다른 구성 요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 적어도 하나의 프로세서(130)는 메모리(110)에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 적어도 하나의 프로세서(130)는 메모리(110)에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작, 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 제1 프로세서에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 제1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제3 동작은 제2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다.
적어도 하나의 프로세서(130)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 적어도 하나의 프로세서(130)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작 및 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행되고 제3 동작은 멀티 코어 프로세서에 포함된 제2 코어에 의해 수행될 수도 있다.
본 개시의 실시 예들에서, 적어도 하나의 프로세서(130)는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다. 다만, 이하에서는 설명의 편의를 위해, 프로세서(130)라는 표현으로 전자 장치(100)의 동작을 설명한다.
프로세서(130)는 사용자 음성이 수신되면, 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하고, 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하고, 사용자 명령 및 적어도 하나의 파라미터에 기초하여 제1 UI 그래프에 포함된 복수의 제1 노드 중 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하며, 타겟 노드에 대한 정보는 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 타겟 노드에서 수행할 사용자 명령에 대응되는 동작 정보 및 적어도 하나의 파라미터에 대한 정보를 포함하며, 디스플레이(120)를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하고, 현재 노드 및 타겟 노드에 대한 정보에 기초하여 현재 노드로부터 타겟 노드까지의 동작 시퀀스를 식별하고, 동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행할 수 있다.
이러한 프로세서(130)의 동작은 도 2의 각종 모듈을 통해 좀더 구체적으로 설명한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 소프트웨어 구성을 설명하기 위한 블록도이다. 도 2에서 프로세서(130) 내부에 복수의 모듈이 위치하는 것은 복수의 모듈이 프로세서(130)에 의해 로딩(또는 실행)되어 프로세서(130)에서 동작되는 상태를 나타내기 위한 것이며, 복수의 모듈은 메모리(110)에 기저장된 상태일 수 있다.
도 2를 참조하면, 메모리(110)에는 UI 그래프가 어플리케이션 별로 저장될 수 있다. 여기서, UI 그래프는 어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함할 수 있다.
프로세서(130)는 메모리(110)에 저장된 모듈 또는 인스트럭션을 실행함으로써 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 구체적으로, 프로세서(130)는 모듈 또는 인스트럭션을 읽고 해석하며 데이터 처리를 위한 시퀀스를 결정할 수 있으며, 그에 따라 메모리(110) 등 다른 구성의 동작을 제어하는 제어 신호를 전송함으로써 다른 구성의 동작을 제어할 수 있다.
프로세서(130)는 사용자 음성이 수신되면, ASR/NLU 모듈을 실행함으로써 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별할 수 있다. 예를 들어, 프로세서(130)는 “Peter에게 안녕이라고 메시지 보내줘.”라는 사용자 음성이 수신되면, ASR/NLU 모듈을 실행함으로써 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성으로부터 sendMessage라는 사용자 명령을 식별하고, Peter이라는 적어도 하나의 파라미터를 식별하고, 메시지 어플리케이션을 타겟 어플리케이션으로 식별할 수 있다.
프로세서(130)는 타겟 노드 식별 모듈을 실행함으로써 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하고, 사용자 명령 및 적어도 하나의 파라미터에 기초하여 제1 UI 그래프에 포함된 복수의 제1 노드 중 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득할 수 있다. 여기서, 타겟 노드에 대한 정보는 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 타겟 노드에서 수행할 사용자 명령에 대응되는 동작 정보 및 적어도 하나의 파라미터에 대한 정보를 포함할 수 있다.
예를 들어, 프로세서(130)는 타겟 노드 식별 모듈을 실행함으로써 메시지 어플리케이션에 대응되는 제1 UI 그래프를 식별하고, sendMessage 및 Peter에 기초하여 메시지 창에 대응되는 골(goal) 노드 7을 타겟 노드에 대한 식별 정보로 획득하고, filltext(안녕)->click을 타겟 노드에서 수행할 사용자 명령에 대응되는 동작 정보로 획득하고, Peter을 적어도 하나의 파라미터에 대한 정보로 획득할 수 있다.
프로세서(130)는 스크린 분석 모듈 및 스크린 식별 모듈을 실행함으로써 디스플레이(120)를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별할 수 있다. 예를 들어, 프로세서(130)는 스크린 분석 모듈을 실행함으로써 디스플레이(120)를 통해 디스플레이되는 UI에 포함된 UI 엘리먼트(element)를 획득하고, 각 엘리먼트의 속성을 식별할 수 있다. 프로세서(130)는 스크린 식별 모듈을 실행함으로써 디스플레이(120)를 통해 디스플레이되는 UI의 분석 결과에 대응되는 노드를 현재 노드로 식별할 수 있다.
프로세서(130)는 경로 탐색 모듈을 실행함으로써 현재 노드 및 타겟 노드에 대한 정보에 기초하여 현재 노드로부터 타겟 노드까지의 동작 시퀀스를 식별하고, 내비게이션 모듈을 실행함으로써 동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행할 수 있다.
프로세서(130)는 적어도 하나의 파라미터에 기초하여 타겟 노드에서 사용자 음성에 대응되는 동작을 수행할 수 있다. 예를 들어, 프로세서(130)는 타겟 노드인 메시지 창 중 적어도 하나의 파라미터인 Peter의 메시지 창을 실행하고, 안녕이란 텍스트 입력 후 전송을 클릭할 수 있다.
프로세서(130)는 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 사용자 음성에 대응되는 동작을 수행할 수 있다. 예를 들어, 프로세서(130)는 경로 탐색 모듈을 실행함으로써 현재 노드로부터 친구 목록을 나타내는 UI로 이동하고, 친구 목록을 나타내는 UI에서 Peter를 선택하여 타겟 노드로 진입하는 동작 시퀀스를 식별하고, 내비게이션 모듈을 실행함으로써 동작 시퀀스에 기초하여 실제 동작을 수행할 수 있다. 이 경우, 현재 노드와 타겟 노드 사이에는 하나의 제2 노드만이 포함될 수 있다.
프로세서(130)는 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 동작 수행이 불가능한 노드 및 타겟 노드에 대한 정보에 기초하여 동작 수행이 불가능한 노드로부터 타겟 노드까지의 신규 동작 시퀀스를 식별하고, 신규 동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행할 수도 있다.
예를 들어, 프로세서(130)는 경로 탐색 모듈을 실행함으로써 현재 노드로부터 친구 목록을 나타내는 UI로 이동하고, 친구 목록을 나타내는 UI에서 적어도 하나의 파라미터를 선택하여 타겟 노드로 진입하는 동작 시퀀스를 식별하였고, 내비게이션 모듈을 실행함으로써 동작 시퀀스에 기초하여 실제 동작을 수행하였으나, 실제 동작 과정에서 친구 목록을 나타내는 UI에는 Peter가 없는 상태일 수 있다. 이 경우, 프로세서(130)는 경로 탐색 모듈을 실행함으로써 친구 목록을 나타내는 UI에서 검색 메뉴로 이동하고, 적어도 하나의 파라미터를 검색하고, 검색 결과가 있으면 검색 결과를 클릭하여 타겟 노드로 진입하는 신규 동작 시퀀스를 식별하고, 내비게이션 모듈을 실행함으로써 신규 동작 시퀀스에 기초하여 실제 동작을 수행할 수도 있다. 다만, 이 경우에도 프로세서(130)는 실제 동작 과정에서 검색 결과가 없는 경우, 검색 결과 화면에서 동작 수행을 중단할 수 있다.
다만, 이는 일 실시 예에 불과하고, 프로세서(130)는 경로 탐색 모듈을 실행하여 경로 탐색을 수행하는 과정에서 Peter의 존재 여부를 식별할 수도 있다. 이 경우, 프로세서(130)는 친구 목록을 나타내는 UI에는 Peter가 없거나, 검색 메뉴에서 검색 결과가 없는 경우, 동작 시퀀스 획득 불가 메시지를 사용자에게 제공할 수 있다. 반면, 프로세서(130)는 동작 시퀀스가 획득된 상태라면, 내비게이션 모듈을 실행한 후, 동작 수행이 중단되는 경우는 발생하지 않을 수 있다.
프로세서(130)는 복수의 제1 노드 및 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 현재 노드로부터 타겟 노드까지의 최단 경로를 식별하고, 최단 경로에 기초하여 동작 시퀀스를 식별할 수 있다.
예를 들어, 프로세서(130)는 경로 탐색 모듈을 실행하여 현재 노드로부터 친구 목록을 나타내는 UI로 이동하고, 친구 목록을 나타내는 UI에서 Peter를 선택하여 타겟 노드로 진입하는 동작 시퀀스를 식별할 수 있다. 또한, 프로세서(130)는 현재 노드로부터 검색 메뉴로 이동하고, 적어도 하나의 파라미터를 검색하고, 검색 결과가 있으면 검색 결과를 클릭하여 타겟 노드로 진입하는 동작 시퀀스를 식별할 수도 있다. 즉, 프로세서(130)는 복수의 경로를 식별할 수 있다. 전자의 경우에는 현재 노드와 타겟 노드 간에 하나의 노드만이 존재하면, 후자의 경우에는 현재 노드와 타겟 노드 간에 두 개의 노드가 존재하며, 프로세서(130)는 최단 경로인 전자의 동작 시퀀스를 최종 동작 시퀀스로 식별할 수 있다.
프로세서(130)는 타겟 어플리케이션이 실행된 상태이면, 디스플레이(120)를 통해 디스플레이되는 타겟 어플리케이션의 UI에 기초하여 현재 노드를 식별하고, 타겟 어플리케이션이 실행되지 않은 상태이면, 타겟 어플리케이션을 실행하고, 디스플레이(120)를 통해 디스플레이되는 타겟 어플리케이션의 UI에 기초하여 현재 노드를 식별할 수 있다.
예를 들어, 프로세서(130)는 메시지 어플리케이션이 실행된 상태이면, 디스플레이(120)를 통해 디스플레이되는 메시지 어플리케이션의 UI에 기초하여 현재 노드를 식별하고, 메시지 어플리케이션이 실행되지 않은 상태이면, 메시지 어플리케이션을 실행하고, 디스플레이(120)를 통해 디스플레이되는 메시지 어플리케이션의 UI에 기초하여 현재 노드를 식별할 수 있다.
프로세서(130)는 복수의 어플리케이션 중 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고, 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 적어도 하나의 어플리케이션 중 타겟 어플리케이션을 식별할 수 있다.
예를 들어, 프로세서(130)는 복수의 어플리케이션 중 사용자 명령을 처리할 수 있는 전자 장치(100) 자체 메시지 어플리케이션, A사에서 제공하는 메시지 어플리케이션 등을 식별하고, 사용 빈도가 가장 높은 메시지 어플리케이션을 타겟 어플리케이션으로 식별할 수 있다.
다만, 이에 한정되는 것은 아니며, 프로세서(130)는 최종 사용된 어플리케이션을 타겟 어플리케이션으로 식별할 수도 있다. 또는, 프로세서(130)는 적어도 하나의 파라미터에 기초하여 타겟 어플리케이션을 식별할 수도 있다. 예를 들어, 프로세서(130)는 전자 장치(100) 자체 메시지 어플리케이션에는 Peter와의 메시지 이력이 있으나, A사에서 제공하는 메시지 어플리케이션에는 Peter와의 메시지 이력이 없는 경우, 전자 장치(100) 자체 메시지 어플리케이션을 타겟 어플리케이션으로 식별할 수도 있다.
프로세서(130)는 업데이트 모듈을 실행함으로써 타겟 어플리케이션의 업데이트가 식별되면, 스크린 분석 모듈 및 스크린 식별 모듈을 실행함으로써 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하고, 그래프 생성 모듈을 실행함으로써 제1 UI 그래프를 업데이트할 수 있다.
예를 들어, 프로세서(130)는 업데이트 모듈을 실행함으로써 타겟 어플리케이션의 업데이트 여부를 식별할 수 있다. 가령, 프로세서(130)는 업데이트 모듈을 실행함으로써 타겟 어플리케이션의 버전 정보를 확인하여 업데이트 여부를 식별할 수 있다. 프로세서(130)는 스크린 분석 모듈 및 스크린 식별 모듈을 실행함으로써 타겟 어플리케이션에 대응되는 제1 UI 그래프를 획득하고, 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하고, 그래프 생성 모듈을 실행함으로써 제1 UI 그래프를 업데이트할 수 있다.
한편, 이상에서는 메모리(110)에 UI 그래프가 어플리케이션 별로 저장된 상태를 가정하였다. 다만, 이에 한정되는 것은 아니며, 프로세서(130)는 UI 그래프를 직접 획득하고, 획득된 UI 그래프를 어플리케이션 별로 메모리(110)에 저장할 수도 있다.
프로세서(130)는 내비게이션 모듈을 실행함으로써 복수의 어플리케이션 각각이 제공하는 복수의 UI를 탐색할 수 있다. 프로세서(130)는 탐색 과정에서 스크린 분석 모듈을 실행함으로써 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 복수의 UI 엘리먼트 및 복수의 UI 엘리먼트 각각의 속성을 식별할 수 있다. 예를 들어, 프로세서(130)는 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터를 획득하고, 메타 데이터에 기초하여 복수의 UI 엘리먼트 및 복수의 UI 엘리먼트 각각의 속성을 식별할 수 있다. 여기서, 프로세서(130)는 전자 장치(100)에 설치된 운영 체제로부터 복수의 UI 각각의 메타 데이터를 획득할 수 있다.
프로세서(130)는 스크린 식별 모듈을 실행함으로써 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 복수의 UI 각각을 복수의 노드 중 하나로 식별하고, 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지를 식별하고, 그래프 생성 모듈을 실행함으로써 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
프로세서(130)는 복수의 UI 각각에 포함된 복수의 UI 엘리먼트를 실행하여 노드 간의 연결 관계를 나타내는 복수의 엣지를 식별하고, 복수의 UI 엘리먼트 중 기설정된 UI 엘리먼트를 파라미터로 변환하여 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
예를 들어, 프로세서(130)는 복수의 UI 엘리먼트 중 이름, 전화 번호 등을 파라미터로 변환할 수 있다.
한편, 이상의 동작 중 일부 동작은 신경망 모델을 통해 구현될 수도 있다. 예를 들어, 스크린 식별 모듈은 신경망 모델로 구현될 수도 있다.
본 개시에 따른 인공 지능과 관련된 기능은 프로세서(130)와 메모리(110)를 통해 동작될 수 있다.
프로세서(130)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공 지능 전용 프로세서인 경우, 인공 지능 전용 프로세서는 특정 인공 지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 기본 인공 지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공 지능 모델은 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공 지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공 지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.
인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN(Convolutional Neural Network), DNN (Deep Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network), GAN(Generative Adversarial Network) 또는 심층 Q-네트워크(Deep Q-Networks) 등이 있으나, 이에 한정되는 것은 아니다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 나타내는 블럭도이다. 전자 장치(100)는 메모리(110), 디스플레이(120) 및 프로세서(130)를 포함할 수 있다. 또한, 도 3에 따르면, 전자 장치(100)는 마이크(140), 통신 인터페이스(150), 사용자 인터페이스(160), 스피커(170), 카메라(180)를 더 포함할 수도 있다. 도 3에 도시된 구성 요소들 중 도 1에 도시된 구성 요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
마이크(140)는 사운드를 입력받아 오디오 신호로 변환하기 위한 구성이다. 마이크(140)는 프로세서(130)와 전기적으로 연결되며, 프로세서(130)의 제어에 의해 사운드를 수신할 수 있다.
예를 들어, 마이크(140)는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 형성될 수 있다. 또는, 마이크(140)는 전자 장치(100)와는 별도의 리모컨 등에 구비될 수도 있다. 이 경우, 리모컨은 마이크(140)를 통해 사운드를 수신하고, 수신된 사운드를 전자 장치(100)로 제공할 수도 있다.
마이크(140)는 아날로그 형태의 사운드를 수집하는 마이크, 수집된 사운드를 증폭하는 앰프 회로, 증폭된 사운드를 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
한편, 마이크(140)는 사운드 센서의 형태로 구현될 수도 있으며, 사운드를 수집할 수 있는 구성이라면 어떠한 방식이라도 무방하다.
통신 인터페이스(150)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 예를 들어, 전자 장치(100)는 통신 인터페이스(150)를 통해 서버, 가전 기기 등과 통신을 수행할 수 있다.
통신 인터페이스(150)는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 및 무선 통신 모듈 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
와이파이 모듈, 블루투스 모듈은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 모듈이나 블루투스 모듈을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 적외선 통신 모듈은 시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다.
또는, 통신 인터페이스(150)는 HDMI, DP, 썬더볼트, USB, RGB, D-SUB, DVI 등과 같은 유선 통신 인터페이스를 포함할 수 있다.
그 밖에 통신 인터페이스(150)는 LAN(Local Area Network) 모듈, 이더넷 모듈, 또는 페어 케이블, 동축 케이블 또는 광섬유 케이블 등을 이용하여 통신을 수행하는 유선 통신 모듈 중 적어도 하나를 포함할 수도 있다.
사용자 인터페이스(160)는 버튼, 터치 패드, 마우스 및 키보드 등으로 구현되거나, 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
스피커(170)는 프로세서(130)에서 처리된 각종 오디오 데이터 뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소이다.
그 밖에, 전자 장치(100)는 카메라(180)를 더 포함할 수 있다. 카메라(180)는 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라(180)는 특정 시점에서의 정지 영상을 촬영할 수 있으나, 연속적으로 정지 영상을 촬영할 수도 있다.
카메라(180)는 전자 장치(100)의 전방을 촬영하여 전자 장치(100)를 시청 중인 사용자를 촬영할 수 있다. 프로세서(130)는 카메라(180)를 통해 촬영된 사용자의 이미지에 기초하여 컨텐츠가 출력될 영역을 식별할 수도 있다.
카메라(180)는 렌즈, 셔터, 조리개, 고체 촬상 소자, AFE(Analog Front End), TG(Timing Generator)를 포함한다. 셔터는 피사체에 반사된 빛이 카메라(180)로 들어오는 시간을 조절하고, 조리개는 빛이 들어오는 개구부의 크기를 기계적으로 증가 또는 감소시켜 렌즈에 입사되는 광량을 조절한다. 고체 촬상 소자는 피사체에 반사된 빛이 광전하로 축적되면, 광전하에 의한 상을 전기 신호로 출력한다. TG는 고체 촬상 소자의 픽셀 데이터를 리드아웃 하기 위한 타이밍 신호를 출력하며, AFE는 고체 촬상 소자로부터 출력되는 전기 신호를 샘플링하여 디지털화한다.
이상과 같이 전자 장치(100)는 어플리케이션 별 UI 그래프를 이용하여 사용자 음성에 대응되는 동작을 수행할 수 있다. 또한, 전자 장치(100)는 일부 엘리먼트를 파라미터화하여 UI 그래프의 용량을 줄이면서도 적응적인 동작이 가능하다.
이하에서는 도 4 내지 도 13을 통해 전자 장치(100)의 동작을 좀더 구체적으로 설명한다. 도 4 내지 도 13에서는 설명의 편의를 위해 개별적인 실시 예에 대하여 설명한다. 다만, 도 4 내지 도 13의 개별적인 실시 예는 얼마든지 조합된 상태로 실시될 수도 있다.
도 4는 본 개시의 일 실시 예에 따른 UI(user interface)의 구조를 설명하기 위한 도면이다.
어플리케이션은 복수의 UI를 제공할 수 있다. 복수의 UI 각각은 복수의 UI 엘리먼트(element)를 포함할 수 있다. 예를 들어, 어플리케이션은 도 4의 좌측에 도시된 바와 같이, 연락처 명단을 포함하는 UI를 제공할 수 있다. 연락처 명단을 포함하는 UI는 "사시호", " 육시호" 등의 UI 엘리먼트를 포함할 수 있다.
복수의 UI 엘리먼트 각각은 isClickable, bounding box 등 여러 속성을 포함할 수 있다. 이러한 속성에 대한 정보는 직접 클릭하는 등의 동작을 통해서 획득되거나 메타 데이터로부터 획득될 수 있다. 예를 들어, 프로세서(130)는 전자 장치(100)에 설치된 운영 체제로부터 도 4의 가운데 및 우측과 같은 메타 데이터를 획득할 수 있다. 먼저, 도 4의 가운데는 도 4의 좌측과 같은 UI에 포함된 복수의 UI 엘리먼트에 대한 정보를 포함하고, 도 4의 우측은 복수의 UI 엘리먼트 중 하나를 선택했을 때의 세부 정보를 포함할 수 있다.
프로세서(130)는 도 4의 가운데 및 우측과 같은 정보를 UI 간 비교하여 UI 간의 유사도를 식별할 수 있다. 예를 들어, 프로세서(130)는 제1 UI 및 제2 UI가 유사하다고 판단되면, 제1 UI 및 제2 UI를 동일한 UI 유형으로 식별할 수 있으며, 하나의 UI 유형은 하나의 노드로서 UI 그래프를 형성할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 노드 간의 연결 관계를 나타내는 엣지를 설명하기 위한 도면이다.
프로세서(130)는 복수의 UI 엘리먼트 각각을 실행하여 노드 간의 연결 관계를 식별하고, 노드 간의 연결 관계를 엣지로서 UI를 형성할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, sourceScreenIndex:0은 동작 전의 UI를 나타내고, {}eventUiElement는 동작을 유발하는 UI 엘리먼트를 나타내며, actionType:"ACTION_CLICK"은 동작의 타입을 나타내며, destScreenIndex:1은 동작 후의 UI를 나타낸다. 즉, 도 5는 0번 UI에서 {}eventUiElement가 지시하는 UI 엘리먼트의 클릭에 따라 1번 UI로 진입하는 것을 의미한다.
UI 그래프는 도 4와 같은 복수의 노드 및 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 도 5와 같은 복수의 엣지를 포함할 수 있다. 또한, UI 그래프는 어플리케이션 별로 마련될 수 있다.
도 6 및 도 7은 본 개시의 일 실시 예에 따른 UI 그래프의 획득 방법을 설명하기 위한 도면들이다.
프로세서(130)는 스크린 분석 모듈을 실행함으로써 현재 UI(화면)를 분석할 수 있다(S610). 예를 들어, 프로세서(130)는 신규 어플리케이션이 설치되면, 신규 어플리케이션을 실행하고 신규 어플리케이션이 제공하는 UI를 디스플레이하고, 현재 UI를 분석할 수 있다.
프로세서(130)는 현재 UI를 분석하여 현재 UI에 포함된 복수의 UI 엘리먼트 및 각 UI 엘리먼트의 속성을 식별할 수 있다. 여기서, UI 엘리먼트의 속성은 isClickable, bounding box, text 등을 포함할 수 있다.
프로세서(130)는 스크린 식별 모듈을 실행함으로써 현재 UI가 기존 노드에 속하는지 식별할 수 있다(S620). 프로세서(130)는 현재 UI가 기존 노드에 속하는 경우 기존 노드에 현재 UI를 추가하고(S630), 현재 UI가 기존 노드에 속하지 않는 경우 UI 그래프에 신규 노드를 추가할 수 있다(S640).
예를 들어, 프로세서(130)는 각 UI에 포함된 복수의 UI 엘리먼트의 UI hierarchy 및 복수의 UI 엘리먼트 세트의 유사도를 식별하여 UI 간의 유사도를 식별할 수 있다. 가령, 프로세서(130)는 jaccard similarity, metric learning 등과 같은 방법을 통해 UI 간의 유사도를 식별할 수 있다. 이 경우, 프로세서(130)는 알고리즘의 변경 없이 다양한 어플리케이션의 업데이트에 대응할 수 있다.
또는, 프로세서(130)는 고려하고자 하는 노드 세트가 정해져 있는 경우, UIㄹ를 노드 중 하나로 분류하는 분류기(classifier) 모델을 학습시켜 사용할 수도 있다. 이 경우, 어플리케이션의 업데이트로 일부 UI가 변경된 경우 대응이 어려울 수 있다.
여기서, 프로세서(130)는 유사도가 기설정된 값 이상이면, 현재 UI와 기존 노드가 완전히 동일하지는 않더라도 현재 UI를 기존 노드 중 하나로 식별할 수 있다. 가령, 도 7에 도시된 바와 같이, 세 개의 UI는 화면 구성 상의 차이는 있으나, 세 개의 UI의 메타 데이터는 유사도가 상당히 높기 때문에 프로세서(130)는 세 개의 UI를 하나의 노드로 식별할 수 있다. 화면 variation을 모두 상이한 것으로 처리할 경우, 노드의 개수가 지나치게 많아져 UI 그래프가 커져 비효율적이나, 이상과 같은 동작을 통해 노드의 개수를 줄일 수 있어 효율적인 UI 그래프 생성이 가능하다.
다만, 이에 한정되는 것은 아니며, 프로세서(130)는 각 UI의 스크린샷을 획득하고, image embedding vector 간 cosine similarity 등과 같은 방법을 통해 두 스크린샷의 유사도를 식별하고, 식별된 유사도에 기초하여 UI 간의 유사도를 식별할 수도 있다. 또는, 프로세서(130)는 기설정된 레이아웃이나 기설정된 UI 엘리먼트의 유무에 기초하여 UI 간의 유사도를 식별할 수도 있다. 가령, 프로세서(130)는 UI가 프로필 사진, 이름, 전화 버튼, 문자 버튼 등을 포함하는 경우, UI를 프로필 페이지로 식별할 수도 있다.
다시 도 6을 설명하면, 프로세서(130)는 현재 노드에서 가능한 모든 동작(action)을 수행했는지 여부를 식별할 수 있다(S650). 여기서, 동작은 UI 엘리먼트에 할 수 있는 클릭, 텍스트 기재 등의 인터랙션을 의미한다.
프로세서(130)는 현재 노드에서 가능한 모든 동작을 수행하지 않은 경우, 수행하지 않은 동작을 수행하고(S660), S610 단계로 돌아갈 수 있다.
프로세서(130)는 현재 노드에서 가능한 모든 동작을 수행한 경우, UI 그래프의 모든 노드에서 가능한 모든 동작을 수행했는지 여부를 식별할 수 있다(S670).
프로세서(130)는 UI 그래프의 모든 노드에서 가능한 모든 동작을 수행하지 않은 경우, 적절한 동작을 수행해 다른 UI로 이동하고(S680), S610 단계로 돌아갈 수 있다.
프로세서(130)는 UI 그래프의 모든 노드에서 가능한 모든 동작을 수행한 경우, UI 그래프의 획득 동작을 종료할 수 있다.
한편, 프로세서(130)는 UI를 노드로 분류하는 과정에서 UI에 포함된 UI 엘리먼트의 일부를 파라미터로 변환할 수 있다. 예를 들어, 프로세서(130)는 "철수의 대화방 찾아가기"를 "XX의 대화방 찾아가기"로 파라미터화할 수 있다. 가령, 프로세서(130)는 철수의 대화방에 도달하는 경로가 포함된 그래프를 생성한 뒤 "철수"를 파라미터화할 수 있다. 이 경우, 프로세서(130)는 "영수의 대화방 찾아가기"와 같은 적응적인 동작이 가능하다.
프로세서(130)는 동일한 노드에 포함된 UI들에서 화면 상의 위치, 타입 등과 같은 유사한 속성을 공유하나 UI들마다 상이한 값이 들어간 부분을 식별하고, 이 부분을 파라미터로 변환할 수 있다. 예를 들어, 프로세서(130)는 "username"이라는 내부 id를 갖는 text field가 모든 화면에 등장하면서 화면마다 "철수", "영수", "민수" 등의 서로 다른 값을 갖는다면, 이 text field를 파라미터화할 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(130)는 이미지에 대하여도 유사한 방법으로 파라미터화할 수 있다.
도 8은 본 개시의 일 실시 예에 따른 사용자 음성에 따른 동작을 설명하기 위한 흐름도이다.
프로세서(130)는 ASR/NLU 모듈을 실행함으로써 사용자 음성이 수신되면(S810), 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성에 포함된 사용자 명령(command)를 결정할 수 있다(S820).
프로세서(130)는 타겟 노드 식별 모듈을 실행함으로써 사용자 명령에 기초하여 타겟 노드(goal node)를 결정할 수 있다(S830). 프로세서(130)는 스크린 분석 모듈 및 스크린 식별 모듈을 실행함으로써 디스플레이(120)를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별할 수 있다(S840).
프로세서(130)는 경로 탐색 모듈 및 내비게이션 모듈을 실행함으로써 현재 노드가 타겟 노드인지 식별하고(S850), 현재 노드가 타겟 노드가 아니면 예상 경로를 따르는지 식별할 수 있다(S860). 프로세서(130)는 예상 경로를 따르는 경우 동작 도출 및 수행하고(S870), 예상 경로를 따르지 않는 경우 타겟 노드까지의 신규 경로를 탐색하고(S880), 동작을 도출하고 도출된 동작을 수행할 수 있다(S870).
프로세서(130)는 동작 수행 후, 스크린 분석 모듈 및 스크린 식별 모듈을 실행함으로써 현재 노드를 재식별할 수 있다(S840).
프로세서(130)는 재식별된 현재 노드가 타겟 노드가 될 때까지 이상과 같은 동작을 반복하고, 현재 노드가 타겟 노드이면 타겟 노드에서 사용자 음성에 대응되는 동작을 수행할 수 있다(S890). 예를 들어, 프로세서(130)는 좋아요 버튼 누르기 및 검색창에 텍스트를 입력하는 등의 타겟 노드에서의 동작을 수행할 수 있다.
한편, 프로세서(130)는 현재 UI가 지원하는 동작 세트에 따라 상이한 경로를 선택할 수 있다. 예를 들어, 프로세서(130)는 친구 프로필 페이지로 이동하기 위한 사용자 음성이 수신되면, 친구 목록 탭으로 이동 후 현재 UI에 친구가 있는 경우, 친구를 선택하여 친구 프로필 페이지로 이동할 수 있다. 또는, 프로세서(130)는 친구 프로필 페이지로 이동하기 위한 사용자 음성이 수신되면, 친구 목록 탭으로 이동 후 현재 UI에 친구가 없는 경우, 검색 메뉴로 이동하고 친구 이름을 검색할 수 있다. 프로세서(130)는 검색 결과가 있는 경우 친구를 선택하여 친구 프로필 페이지로 이동하고, 검색 결과가 없는 경우 검색 결과 화면에서 내비게이션을 중단할 수 있다.
즉, 동일한 사용자 음성이 수신되더라도 동작 시퀀스는 컨텍스트에 따라 상이할 수 있다.
도 9는 본 개시의 일 실시 예에 따른 동작 시퀀스를 설명하기 위한 흐름도이다.
먼저, 프로세서(130)는 현재 노드가 타겟 노드인지 식별하고(S910), 현재 노드가 타겟 노드이면 동작 시퀀스를 식별하는 동작을 종료하고, 현재 노드가 타겟 노드가 아니면 이전에 선택한 경로와 같고, 다음 동작의 수행이 가능한지 식별할 수 있다(S920).
프로세서(130)는 이전에 선택한 경로와 같고, 다음 동작의 수행이 가능한 경우, 다음 동작을 내비게이션 모듈로 전달하고(S930), 이전에 선택한 경로와 상이하거나 다음 동작의 수행이 불가능한 경우, 타겟 노드까지 경로를 탐색할 수 있다(S940). 예를 들어, 프로세서(130)는 BFS(breadth-first search), DFS(depth first search) 등과 같은 경로 탐색 알고리즘을 통해 타겟 노드까지 경로를 탐색할 수 있다. 여기서, 프로세서(130)는 친구 목록에서 원하는 친구가 없는 경우와 같이 현재 UI에서 실행할 수 없는 경로를 제외할 수 있다.
프로세서(130)는 실행 가능한 경로가 존재하는지 식별할 수 있다(S950). 프로세서(130)는 실행 가능한 경로가 존재하지 않는는 경우, 내비게이션 모듈으 가능한 동작이 없다고 전달하고(S960), 실행 가능한 경로가 존재하는 경우, 최단 경로를 선택할 수 있다(S970). 다만, 이에 한정되는 것은 아니며, 프로세서(130)는 최단 경로를 선택하지 않을 수도 있다. 예를 들어 프로세서(130)는 기설정된 기준에 기초하여 최단 경로가 아닌 경로를 선택할 수도 있다. 가령, 프로세서(130)는 최단 경로인 제1 경로는 광고를 시청해야 하나, 제1 경로보다 긴 제2 경로는 광고를 시청하지 않는 경우, 제2 경로를 선택할 수도 있다.
프로세서(130)는 최단 경로를 선택한 후, 경로의 첫 번째 동작을 내비게이션 모듈에 전달할 수 있다(S980). 다만, 프로세서(130)는 동작을 실행 시 선택한 경로와 달라지거나 같더라도 그 다음 동작을 수행할 수 없는 경우, S940 단계를 진행할 수도 있다.
도 10 및 도 11은 본 개시의 일 실시 예에 따른 사용자 음성에 대응되는 동작을 설명하기 위한 도면들이다.
프로세서(130)는 도 10에 도시된 바와 같이, "Peter에게 "안녕"이라고 메시지 보내 줘."와 같은 사용자 음성을 수신할 수 있다. 이 경우, 프로세서(130)는 ASR/NLU 모듈을 실행함으로써 사용자 음성으로부터 sendMessage와 같은 사용자 명령을 식별하고, Peter를 적어도 하나의 파라미터로 식별하고, 안녕을 메시지로 식별하고 Message 어플리케이션을 타겟 어플리케이션으로 식별할 수 있다. 프로세서(130)는 ASR/NLU 모듈을 통해 획득한 정보를 타겟 노드 식별 모듈로 제공할 수 있다.
프로세서(130)는 타겟 노드 식별 모듈을 실행함으로써 Message.graph를 타겟 어플리케이션에 대응되는 UI 그래프로 식별하고, 타겟 노드를 7번 노드로 식별하고, Peter를 적어도 하나의 파라미터로 식별하고, 안녕을 텍스트로 입력하고 클릭하는 동작을 타겟 노드에서의 동작으로 식별할 수 있다. 프로세서(130)는 타겟 노드 식별 모듈을 통해 획득한 정보를 경로 탐색 모듈로 제공할 수 있다.
또는, 프로세서(130)는 도 11에 도시된 바와 같이, "Peter에게 "안녕"이라고 메시지 보내고 차단해 줘."와 같은 사용자 음성을 수신할 수도 있다. 이 경우, 프로세서(130)는 ASR/NLU 모듈을 실행함으로써 사용자 음성으로부터 도 10에서와 같은 sendMessage와 같은 사용자 명령 등에 대한 정보를 획득할 수 있다. 또한, 프로세서(130)는 block과 같은 사용자 명령을 식별하고, Peter를 적어도 하나의 파라미터로 식별할 수 있다. 프로세서(130)는 ASR/NLU 모듈을 통해 획득한 정보를 타겟 노드 식별 모듈로 제공할 수 있다.
프로세서(130)는 타겟 노드 식별 모듈을 실행함으로써 도 10에서와 같은 Message.graph 등에 대한 정보를 식별할 수 있다. 또한, 프로세서(130)는 block에 기초하여 Message.graph를 타겟 어플리케이션에 대응되는 UI 그래프로 식별하고, 타겟 노드를 8번 노드로 식별하고, Peter를 적어도 하나의 파라미터로 식별할 수 있다. 프로세서(130)는 타겟 노드 식별 모듈을 통해 획득한 정보를 경로 탐색 모듈로 제공할 수 있다.
한편, 프로세서(130)는 디스플레이되는 UI로부터 현재 노드가 식별되지 않는 경우, 사용자 음성에 대응되는 타겟 어플리케이션을 실행시키거나, 타겟 어플리케이션이 실행되어 있는 경우 어플리케이션의 외부 컨트롤(예를 들어, back 버튼, 어플리케이션 재시작 등)을 통해 노드로 분류된 UI로 이동할 수 있다.
프로세서(130)는 타겟 노드가 없는 사용자 음성이 수신되면, 수행할 수 없다는 메시지를 제공하고 종료할 수 있다.
도 12 및 도 13은 본 개시의 일 실시 예에 따른 UI 그래프의 업데이트 동작을 설명하기 위한 도면들이다.
프로세서(130)는 도 12에 도시된 바와 같이, 어플리케이션 스토어에서 어플리케이션의 업데이트 여부를 확인하고(S1205), 어플리케이션이 업데이트되었는지 식별할 수 있다(S1210).
프로세서(130)는 어플리케이션이 업데이트된 경우, UI 그래프를 로드하고(S1215), 현재 UI를 분석할 수 있다(S1220).
프로세서(130)는 현재 UI가 기존 노드에 속하는지 식별하고(S1225), 현재 UI가 기존 노드에 속하는 경우 기존 노드에 현재 UI를 추가하고(S1230), 현재 UI가 기존 노드에 속하지 않는 경우 UI 그래프에 신규 노드를 추가할 수 있다(S1235).
프로세서(130)는 동작을 수행한 후 현재 UI가 기존 UI 그래프에서의 동작 결과와 동일한지 식별하고(S1240), 동일한 경우 현재 UI에서 가능한 모든 동작을 수행했는지 식별하고(S1245), 동일하지 않은 경우 엣지를 업데이트하고(S1250) 현재 UI에서 가능한 모든 동작을 수행했는지 식별할 수 있다(S1245).
프로세서(130)는 현재 UI에서 가능한 모든 동작을 수행하지 않은 경우 수행하지 않은 동작을 수행하고(S1255) S1220 단계로 돌아가고, 현재 UI에서 가능한 모든 동작을 수행한 경우 UI 그래프의 모든 노드에서 가능한 모든 동작을 수행했는지 식별할 수 있다(S1260).
프로세서(130)는 UI 그래프의 모든 노드에서 가능한 모든 동작을 수행하지 않은 경우 적절한 동작을 수행해 다른 UI로 이동하고(S1265) S1220 단계로 돌아가고, UI 그래프의 모든 노드에서 가능한 모든 동작을 수행한 경우 UI 그래프의 업데이트 동작을 종료할 수 있다.
한편, 프로세서(130)는 도 13의 좌측과 같이 기존의 UI 그래프에서 신규 UI가 식별되면, 도 13의 가운데와 같이 신규 노드(1310)를 추가하고, 도 13의 우측과 같이 엣지를 신규 노드(S1320)에 연결할 수 있다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프가 어플리케이션 별로 저장된 전자 장치의 제어 방법은 먼저, 사용자 음성이 수신되면, 사용자 음성에 대한 자연어 이해를 수행하여 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별한다(S1410). 그리고, 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별한다(S1420). 그리고, 사용자 명령 및 적어도 하나의 파라미터에 기초하여 제1 UI 그래프에 포함된 복수의 제1 노드 중 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득한다(S1430). 그리고, 전자 장치의 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별한다(S1440). 그리고, 현재 노드 및 타겟 노드에 대한 정보에 기초하여 현재 노드로부터 타겟 노드까지의 동작 시퀀스를 식별한다(S1450). 그리고, 하동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행한다(S1460). 여기서, 타겟 노드에 대한 정보는 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 타겟 노드에서 수행할 사용자 명령에 대응되는 동작 정보 및 적어도 하나의 파라미터에 대한 정보를 포함한다.
여기서, 수행하는 단계(S1460)는 적어도 하나의 파라미터에 기초하여 타겟 노드에서 사용자 음성에 대응되는 동작을 수행할 수 있다.
또한, 수행하는 단계(S1460)는 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 사용자 음성에 대응되는 동작을 수행할 수 있다.
여기서, 수행하는 단계(S1460)는 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 동작 수행이 불가능한 노드 및 타겟 노드에 대한 정보에 기초하여 동작 수행이 불가능한 노드로부터 타겟 노드까지의 신규 동작 시퀀스를 식별하고, 신규 동작 시퀀스에 기초하여 사용자 음성에 대응되는 동작을 수행할 수 있다.
그리고, 수행하는 단계(S1460)는 복수의 제1 노드 및 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 현재 노드로부터 타겟 노드까지의 최단 경로를 식별하고, 최단 경로에 기초하여 동작 시퀀스를 식별할 수 있다.
한편, 현재 노드를 식별하는 단계(S1440)는 타겟 어플리케이션이 실행된 상태이면, 디스플레이를 통해 디스플레이되는 타겟 어플리케이션의 UI에 기초하여 현재 노드를 식별하고, 타겟 어플리케이션이 실행되지 않은 상태이면, 타겟 어플리케이션을 실행하고, 디스플레이를 통해 디스플레이되는 타겟 어플리케이션의 UI에 기초하여 현재 노드를 식별할 수 있다.
또한, 타겟 어플리케이션을 식별하는 단계(S1410)는 복수의 어플리케이션 중 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고, 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 적어도 하나의 어플리케이션 중 타겟 어플리케이션을 식별할 수 있다.
한편, 타겟 어플리케이션의 업데이트가 식별되면, 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하여, 제1 UI 그래프를 업데이트하는 단계를 더 포함할 수 있다.
또한, 복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 복수의 UI 각각을 복수의 노드 중 하나로 식별하고, 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지를 식별하여, 복수의 어플리케이션 각각의 UI 그래프를 획득하는 단계를 더 포함할 수 있다.
여기서, UI 그래프를 획득하는 단계는 복수의 UI 각각에 포함된 복수의 UI 엘리먼트(element)를 실행하여 노드 간의 연결 관계를 나타내는 복수의 엣지를 식별하고, 복수의 UI 엘리먼트 중 기설정된 UI 엘리먼트를 파라미터로 변환하여 복수의 어플리케이션 각각의 UI 그래프를 획득할 수 있다.
그리고, UI 그래프를 획득하는 단계는 전자 장치에 설치된 운영 체제로부터 복수의 UI 각각의 메타 데이터를 획득할 수 있다.
이상과 같은 본 개시의 일 실시 예에 따르면, 전자 장치는 어플리케이션 별 UI 그래프를 이용하여 사용자 음성에 대응되는 동작을 수행할 수 있다.
또한, 전자 장치는 일부 엘리먼트를 파라미터화하여 UI 그래프의 용량을 줄이면서도 적응적인 동작이 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어로서 구현될 수도 있다. 소프트웨어 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치 110 : 메모리
120 : 디스플레이 130 : 프로세서
140 : 마이크 150 : 통신 인터페이스
160 : 사용자 인터페이스 170 : 스피커
180 : 카메라

Claims (20)

  1. 전자 장치에 있어서,
    어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 상기 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프를 어플리케이션 별로 저장하는 메모리;
    디스플레이; 및
    상기 메모리 및 상기 디스플레이와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서;를 포함하며,
    상기 프로세서는,
    사용자 음성이 수신되면, 상기 사용자 음성에 대한 자연어 이해를 수행하여 상기 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하고,
    상기 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하고,
    상기 사용자 명령 및 상기 적어도 하나의 파라미터에 기초하여 상기 제1 UI 그래프에 포함된 복수의 제1 노드 중 상기 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하며, 상기 타겟 노드에 대한 정보는 상기 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 상기 타겟 노드에서 수행할 상기 사용자 명령에 대응되는 동작 정보 및 상기 적어도 하나의 파라미터에 대한 정보를 포함하며,
    상기 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하고,
    상기 현재 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 동작 시퀀스를 식별하고,
    상기 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 파라미터에 기초하여 상기 타겟 노드에서 상기 사용자 음성에 대응되는 동작을 수행하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 상기 사용자 음성에 대응되는 동작을 수행하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 상기 동작 수행이 불가능한 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 동작 수행이 불가능한 노드로부터 상기 타겟 노드까지의 신규 동작 시퀀스를 식별하고,
    상기 신규 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행하는, 전자 장치.
  5. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 제1 노드 및 상기 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 최단 경로를 식별하고,
    상기 최단 경로에 기초하여 상기 동작 시퀀스를 식별하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 타겟 어플리케이션이 실행된 상태이면, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하고,
    상기 타겟 어플리케이션이 실행되지 않은 상태이면, 상기 타겟 어플리케이션을 실행하고, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하는, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    복수의 어플리케이션 중 상기 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고,
    상기 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 상기 적어도 하나의 어플리케이션 중 상기 타겟 어플리케이션을 식별하는, 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 타겟 어플리케이션의 업데이트가 식별되면, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 상기 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하여, 상기 제1 UI 그래프를 업데이트하는, 전자 장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 복수의 UI 각각을 상기 복수의 노드 중 하나로 식별하고, 상기 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하여, 상기 복수의 어플리케이션 각각의 UI 그래프를 획득하는, 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 UI 각각에 포함된 복수의 UI 엘리먼트(element)를 실행하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하고, 상기 복수의 UI 엘리먼트 중 기설정된 UI 엘리먼트를 파라미터로 변환하여 상기 복수의 어플리케이션 각각의 UI 그래프를 획득하는, 전자 장치.
  11. 제9항에 있어서,
    상기 프로세서는,
    상기 전자 장치에 설치된 운영 체제로부터 상기 복수의 UI 각각의 메타 데이터를 획득하는, 전자 장치.
  12. 어플리케이션이 제공하는 복수의 UI 유형에 대응되는 복수의 노드(node) 및 상기 복수의 노드에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 복수의 엣지(edge)를 포함하는 UI 그래프가 어플리케이션 별로 저장된 전자 장치의 제어 방법에 있어서,
    사용자 음성이 수신되면, 상기 사용자 음성에 대한 자연어 이해를 수행하여 상기 사용자 음성에 포함된 사용자 명령, 적어도 하나의 파라미터 및 타겟 어플리케이션을 식별하는 단계;
    상기 타겟 어플리케이션에 대응되는 제1 UI 그래프를 식별하는 단계;
    상기 사용자 명령 및 상기 적어도 하나의 파라미터에 기초하여 상기 제1 UI 그래프에 포함된 복수의 제1 노드 중 상기 사용자 명령을 수행할 타겟 노드에 대한 정보를 획득하는 단계;
    상기 전자 장치의 디스플레이를 통해 디스플레이되는 UI에 대응되는 현재 노드를 식별하는 단계;
    상기 현재 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 동작 시퀀스를 식별하는 단계; 및
    상기 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행하는 단계;를 포함하며,
    상기 타겟 노드에 대한 정보는,
    상기 사용자 명령을 수행할 타겟 노드에 대한 식별 정보, 상기 타겟 노드에서 수행할 상기 사용자 명령에 대응되는 동작 정보 및 상기 적어도 하나의 파라미터에 대한 정보를 포함하는, 제어 방법.
  13. 제12항에 있어서,
    상기 수행하는 단계는,
    상기 적어도 하나의 파라미터에 기초하여 상기 타겟 노드에서 상기 사용자 음성에 대응되는 동작을 수행하는, 제어 방법.
  14. 제12항에 있어서,
    상기 수행하는 단계는,
    상기 동작 시퀀스에 포함된 복수의 제2 노드에서 순차적으로 동작을 수행하여 상기 사용자 음성에 대응되는 동작을 수행하는, 제어 방법.
  15. 제14항에 있어서,
    상기 수행하는 단계는,
    상기 복수의 제2 노드 중 하나의 노드에서 동작 수행이 불가능한 경우, 상기 동작 수행이 불가능한 노드 및 상기 타겟 노드에 대한 정보에 기초하여 상기 동작 수행이 불가능한 노드로부터 상기 타겟 노드까지의 신규 동작 시퀀스를 식별하고,
    상기 신규 동작 시퀀스에 기초하여 상기 사용자 음성에 대응되는 동작을 수행하는, 제어 방법.
  16. 제14항에 있어서,
    상기 수행하는 단계는,
    상기 복수의 제1 노드 및 상기 복수의 제1 노드에 대응되는 복수의 제1 엣지에 기초하여 상기 현재 노드로부터 상기 타겟 노드까지의 최단 경로를 식별하고,
    상기 최단 경로에 기초하여 상기 동작 시퀀스를 식별하는, 제어 방법.
  17. 제12항에 있어서,
    상기 현재 노드를 식별하는 단계는,
    상기 타겟 어플리케이션이 실행된 상태이면, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하고,
    상기 타겟 어플리케이션이 실행되지 않은 상태이면, 상기 타겟 어플리케이션을 실행하고, 상기 디스플레이를 통해 디스플레이되는 상기 타겟 어플리케이션의 UI에 기초하여 상기 현재 노드를 식별하는, 제어 방법.
  18. 제12항에 있어서,
    상기 타겟 어플리케이션을 식별하는 단계는,
    복수의 어플리케이션 중 상기 사용자 명령을 처리할 수 있는 적어도 하나의 어플리케이션을 식별하고,
    상기 적어도 하나의 어플리케이션의 사용 빈도에 기초하여 상기 적어도 하나의 어플리케이션 중 상기 타겟 어플리케이션을 식별하는, 제어 방법.
  19. 제12항에 있어서,
    상기 타겟 어플리케이션의 업데이트가 식별되면, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 타겟 어플리케이션이 제공하는 복수의 UI 중 신규 UI를 상기 복수의 제1 노드 중 하나로 식별하거나 신규 노드로 추가하고, 상기 타겟 어플리케이션이 제공하는 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 신규 연결 관계를 식별하여, 상기 제1 UI 그래프를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  20. 제12항에 있어서,
    복수의 어플리케이션 각각이 제공하는 복수의 UI 각각의 메타 데이터에 기초하여 상기 복수의 UI 각각을 상기 복수의 노드 중 하나로 식별하고, 상기 복수의 UI 각각에서 수행될 수 있는 동작에 기초하여 노드 간의 연결 관계를 나타내는 상기 복수의 엣지를 식별하여, 상기 복수의 어플리케이션 각각의 UI 그래프를 획득하는 단계;를 더 포함하는, 제어 방법.
KR1020220129887A 2022-10-11 2022-10-11 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법 KR20240050111A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220129887A KR20240050111A (ko) 2022-10-11 2022-10-11 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법
PCT/KR2023/008453 WO2024080485A1 (ko) 2022-10-11 2023-06-19 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법
US18/346,537 US20240119931A1 (en) 2022-10-11 2023-07-03 Electronic apparatus for performing an operation corresponding to a user's voice and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220129887A KR20240050111A (ko) 2022-10-11 2022-10-11 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20240050111A true KR20240050111A (ko) 2024-04-18

Family

ID=90669412

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220129887A KR20240050111A (ko) 2022-10-11 2022-10-11 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20240050111A (ko)
WO (1) WO2024080485A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019336B2 (en) * 2015-08-26 2018-07-10 International Business Machines Corporation Natural language based capturing of user interface interactions
US10656907B2 (en) * 2015-11-03 2020-05-19 Observepoint Inc. Translation of natural language into user interface actions
US10936288B2 (en) * 2017-05-26 2021-03-02 Sap Se Voice-enabled user interface framework
KR102426704B1 (ko) * 2017-08-28 2022-07-29 삼성전자주식회사 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
KR20220040997A (ko) * 2020-09-23 2022-03-31 삼성전자주식회사 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
WO2024080485A1 (ko) 2024-04-18

Similar Documents

Publication Publication Date Title
JP7101315B2 (ja) 画像データを自然言語の説明に変換するためのシステム及び方法
JP7470137B2 (ja) 視覚的特徴をサウンドタグに相関させることによるビデオタグ付け
US11521038B2 (en) Electronic apparatus and control method thereof
JP7394809B2 (ja) ビデオを処理するための方法、装置、電子機器、媒体及びコンピュータプログラム
US11184679B2 (en) Electronic apparatus and method for controlling the electronic apparatus
US11880754B2 (en) Electronic apparatus and control method thereof
TWI735112B (zh) 圖像生成方法、電子設備和儲存介質
KR102586014B1 (ko) 전자 장치 및 전자 장치의 제어 방법
JP7337172B2 (ja) 音声パケット推薦方法、装置、電子機器およびプログラム
US11184670B2 (en) Display apparatus and control method thereof
KR102416421B1 (ko) 터치 패드 입력을 갖는 게임 컨트롤러
CN110945455A (zh) 处理用户话语以用于控制外部电子装置的电子装置及其控制方法
US11710498B2 (en) Electronic device and control method therefor
KR20200080389A (ko) 전자 장치 및 그 제어 방법
KR102464907B1 (ko) 전자 장치 및 그 동작 방법
KR20240050111A (ko) 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법
KR20230096825A (ko) 재난 정보를 제공하기 위한 전자 장치 및 그 제어 방법
KR20240040984A (ko) Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법
KR20210065698A (ko) 전자 장치 및 이의 제어 방법
US20240073637A1 (en) Electronic apparatus for identifying position of user and control method thereof
US20240203061A1 (en) Effect display based on text recognition and room scaling within an augmented reality environment
KR102696729B1 (ko) Ar 객체를 표시하기 위한 디스플레이 장치 및 그 제어 방법
KR20240025372A (ko) 영상 처리를 수행하기 위한 전자 장치 및 그 제어 방법
KR20240058549A (ko) 오디오 데이터로부터 오디오 객체를 분리하기 위한 전자 장치 및 그 제어 방법
US20240203060A1 (en) Effect display based on text recognition and room scaling within an augmented reality environment