KR20220048374A - Electronic apparatus and control method thereof - Google Patents

Electronic apparatus and control method thereof Download PDF

Info

Publication number
KR20220048374A
KR20220048374A KR1020200131456A KR20200131456A KR20220048374A KR 20220048374 A KR20220048374 A KR 20220048374A KR 1020200131456 A KR1020200131456 A KR 1020200131456A KR 20200131456 A KR20200131456 A KR 20200131456A KR 20220048374 A KR20220048374 A KR 20220048374A
Authority
KR
South Korea
Prior art keywords
function
log data
voice command
log
sub
Prior art date
Application number
KR1020200131456A
Other languages
Korean (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 KR1020200131456A priority Critical patent/KR20220048374A/en
Priority to PCT/KR2021/011659 priority patent/WO2022080659A1/en
Publication of KR20220048374A publication Critical patent/KR20220048374A/en

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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed is a control method of an electronic device. The control method according to the present disclosure comprises: a step of extracting the log data related to a set function from the log data comprising a plurality of functions performed in the electronic device and the sub-function information for each of the plurality of functions using a data model for extracting a sub-function that can be used as a speech command; a step of using the extracted log data to search for the speech command capable of performing, together, a function and a sub-function included in the extracted log data; a step of changing the searched speech command based on the sub-function; and a step of guiding the changed speech command. Therefore, an objective of the present disclosure is to provide the electronic device for guiding the speech command usable in the electronic device.

Description

전자 장치 및 이의 제어 방법 { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }Electronic device and its control method { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }

본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 구체적으로는 사용자에게 음성 명령어를 가이드하는 전자 장치 및 이의 제어 방법에 관한 것이다. The present disclosure relates to an electronic device and a control method thereof, and more particularly, to an electronic device for guiding a voice command to a user and a control method thereof.

인공지능 기술의 발달로 가상 비서(AI assistant 또는 Virtual assistant) 관련 기술이 증가하고 있다. 가상 비서는 사용자가 요구하는 작업을 처리하고 사용자에게 특화된 서비스를 제공하는 소프트웨어 에이전트를 의미한다. With the development of artificial intelligence technology, technologies related to virtual assistants (AI assistants or virtual assistants) are increasing. The virtual assistant refers to a software agent that processes tasks requested by users and provides specialized services to users.

특히, 음성 인식 기술이 발달하면서 가상 비서에 음성 인식 기술이 결합되어, 사용자의 음성 명령에 따라 사용자가 원하는 작업 또는 서비스를 수행하는 전자 장치가 점차 보편화되고 있다.In particular, as voice recognition technology develops, as voice recognition technology is combined with a virtual assistant, electronic devices that perform a task or service desired by a user according to a user's voice command have become increasingly common.

그러나, 전자 장치에 포함된 복수의 기능에 대한 음성 명령어가 다양하여 사용자가 모든 음성 명령어를 미리 알고 있기 어려우며, 새로운 기능에 대한 음성 명령어가 생성될 경우 사용자는 새로운 음성 명령어를 쉽게 알기 어렵다는 점에서, 전자 장치에서 사용 가능한 음성 명렁어가 제대로 사용되지 못하는 경우가 많다. However, since there are various voice commands for a plurality of functions included in the electronic device, it is difficult for the user to know all the voice commands in advance, and when a voice command for a new function is generated, it is difficult for the user to easily understand the new voice commands. In many cases, voice commands available in electronic devices are not used properly.

본 개시는 상술한 문제점을 해결하기 위한 것으로, 본 개시의 목적은 전자 장치에서 사용가능한 음성 명령어를 안내하는 전자 장치 및 이의 제어 방법을 제공함에 있다. SUMMARY The present disclosure has been made to solve the above problems, and an object of the present disclosure is to provide an electronic device for guiding a voice command usable in the electronic device and a control method thereof.

이에 따라, 전자 장치에 기저장된 음성 명령어의 활용이 증대될 수 있으며, 사용자는 음성 명령어를 이용하여 전자 장치를 좀 더 편리하게 사용할 수 있게 된다. Accordingly, the use of voice commands pre-stored in the electronic device can be increased, and the user can use the electronic device more conveniently by using the voice commands.

본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계, 상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계, 상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계 및 상기 변경된 음성 명령어를 가이드하는 단계를 포함한다. In a method of controlling an electronic device according to an embodiment of the present disclosure, log data related to a function set in log data including a plurality of functions performed by the electronic device and sub-function information for each of the plurality of functions is converted into a voice command. Extracting using a data model for extracting available sub-functions, using the extracted log data, searching for a voice command capable of performing both a function and a sub-function included in the extracted log data , changing the searched voice command based on the sub-function and guiding the changed voice command.

본 개시의 일 실시 예에 따른 전자 장치는, 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터 및 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델이 저장된 메모리 및 상기 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 상기 데이터 모델을 이용하여 추출하고, 상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하고, 상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하고, 상기 변경된 음성 명령어를 가이드하는, 프로세서를 포함한다. An electronic device according to an embodiment of the present disclosure includes a memory in which a data model for extracting a plurality of functions and log data including sub-function information for each of the plurality of functions and a sub-function available as a voice command is stored, and the Extracting log data related to a function set from log data using the data model, and using the extracted log data, search for a voice command that can perform both a function and a sub function included in the extracted log data and a processor for changing the searched voice command based on the sub-function and guiding the changed voice command.

도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도,
도 4는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도,
도 5는 본 개시의 일 실시 예에 따라 서버 또는 전자 장치에 포함되는 로그 분석 시스템을 설명하기 위한 도면,
도 6a는 로그 분석 시스템에 포함된 태그 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6b는 로그 분석 시스템에 포함된 태그 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6c는 로그 분석 시스템에 포함된 메시지 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6d는 로그 분석 시스템에 포함된 메시지 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 7은 본 개시의 일 실시 예에 따른 서버의 동작을 설명하기 위한 흐름도,
도 8a는 본 개시의 일 실시 예에 따라 기능을 선택하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8b는 본 개시의 일 실시 예에 따라 기능에 포함된 서브 기능을 탐색하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8c는 본 개시의 일 실시 예에 따라 서브 기능을 선택하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8d는 본 개시의 일 실시 예에 따라 사용자의 입력에 따른 기능 및 서브 기능을 실행하는 전자 장치를 설명하기 위한 도면,
도 8e는 본 개시의 일 실시 예에 따라 실행된 기능 및 서브 기능에 대한 음성 명령어를 가이드하기 위한 UI를 표시하는 전자 장치를 설명하기 위한 도면,
도 9a는 본 개시의 일 실시 예에 따라 UI를 선택하는 사용자 입력을 수신하는 전자 장치를 설명하기 위한 도면,
도 9b는 본 개시의 일 실시 예에 따라 음성 명령어를 출력하는 전자 장치를 설명하기 위한 도면,
도 9c는 본 개시의 일 실시 예에 따라 음성 명령어를 수신하기 위한 어플리케이션을 실행하는 전자 장치를 설명하기 위한 도면, 및
도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
1 is a view for explaining a system according to an embodiment of the present disclosure;
2 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure;
3 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present disclosure;
4 is a block diagram for explaining the configuration of a server according to an embodiment of the present disclosure;
5 is a view for explaining a log analysis system included in a server or an electronic device according to an embodiment of the present disclosure;
6A is a view for explaining a tag-based log deletion module included in the log analysis system;
6B is a diagram for explaining a tag-based log deletion module included in the log analysis system;
6c is a diagram for explaining a message-based log deletion module included in the log analysis system;
6D is a diagram for explaining a message-based log deletion module included in the log analysis system;
7 is a flowchart for explaining the operation of a server according to an embodiment of the present disclosure;
8A is a view for explaining an electronic device that has received a user input for selecting a function according to an embodiment of the present disclosure;
8B is a view for explaining an electronic device that has received a user input for searching for a sub-function included in a function according to an embodiment of the present disclosure;
8C is a view for explaining an electronic device that has received a user input for selecting a sub function according to an embodiment of the present disclosure;
8D is a view for explaining an electronic device that executes a function and a sub-function according to a user input according to an embodiment of the present disclosure;
8E is a view for explaining an electronic device displaying a UI for guiding a voice command for a function and a sub function executed according to an embodiment of the present disclosure;
9A is a view for explaining an electronic device that receives a user input for selecting a UI according to an embodiment of the present disclosure;
9B is a view for explaining an electronic device that outputs a voice command according to an embodiment of the present disclosure;
9C is a view for explaining an electronic device executing an application for receiving a voice command according to an embodiment of the present disclosure;
10 is a diagram for describing a method of controlling an electronic device according to an embodiment of the present disclosure.

이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings. However, this is not intended to limit the technology described in this document to a specific embodiment, and it should be understood that it includes various modifications, equivalents, and/or alternatives of the embodiments of this document. . In connection with the description of the drawings, like reference numerals may be used for like components.

본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "have," "may have," "includes," or "may include" refer to the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.

본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, expressions such as "A or B," "at least one of A or/and B," or "one or more of A or/and B" may include all possible combinations of the items listed together. . For example, "A or B," "at least one of A and B," or "at least one of A or B" means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.

본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.As used herein, expressions such as "first," "second," "first," or "second," may modify various elements, regardless of order and/or importance, and refer to one element. It is used only to distinguish it from other components, and does not limit the components. For example, the first user equipment and the second user equipment may represent different user equipment regardless of order or importance. For example, without departing from the scope of the rights described in this document, a first component may be referred to as a second component, and similarly, the second component may also be renamed as a first component.

본 문서에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.As used herein, terms such as “module”, “unit”, “part”, etc. are terms used to refer to a component that performs at least one function or operation, and such component is implemented in hardware or software or may be implemented as a combination of hardware and software. In addition, a plurality of "modules", "units", "parts", etc. are integrated into at least one module or chip, except when each needs to be implemented in individual specific hardware, and thus at least one processor. can be implemented as

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.A component (eg, a first component) is "coupled with/to (operatively or communicatively)" to another component (eg, a second component); When referring to "connected to", it will be understood that the certain element may be directly connected to the other element or may be connected through another element (eg, a third element). On the other hand, when it is said that a component (eg, a first component) is "directly connected" or "directly connected" to another component (eg, a second component), the component and the It may be understood that other components (eg, a third component) do not exist between other components.

본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다. The expression "configured to (or configured to)" as used in this document, depending on the context, for example, "suitable for," "having the capacity to ," "designed to," "adapted to," "made to," or "capable of." The term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware. Instead, in some circumstances, the expression “a device configured to” may mean that the device is “capable of” with other devices or parts. For example, the phrase "a processor configured (or configured to perform) A, B, and C" refers to a dedicated processor (eg, an embedded processor) for performing the corresponding operations, or by executing one or more software programs stored in a memory device. , may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe specific embodiments, and may not be intended to limit the scope of other embodiments. The singular expression may include the plural expression unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meanings as commonly understood by one of ordinary skill in the art described in this document. Among terms used in this document, terms defined in a general dictionary may be interpreted with the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, ideal or excessively formal meanings is not interpreted as In some cases, even terms defined in this document cannot be construed to exclude embodiments of this document.

한편, 본 개시에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.Meanwhile, in the present disclosure, the term user may refer to a person who uses an electronic device or a device (eg, an artificial intelligence electronic device) using the electronic device.

이하에서는 도면을 참조하여 본 개시에 대해 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the drawings.

도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다. 1 is a diagram for explaining a system according to an embodiment of the present disclosure.

도 1에 도시된 바와 같이, 본 개시에 따른 시스템은 전자 장치(100) 및 서버(200)를 포함할 수 있다. 1 , a system according to the present disclosure may include an electronic device 100 and a server 200 .

도 1에서 전자 장치(100)는 스마트폰으로 도시되었으나, 본 개시의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad)), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다. Although the electronic device 100 is illustrated as a smartphone in FIG. 1 , the electronic device according to various embodiments of the present disclosure includes, for example, a tablet personal computer (PC), a mobile phone, a video phone, and an electronic device. e-book reader, desktop personal computer, laptop personal computer, netbook computer, workstation, PDA (personal digital assistant), PMP (portable multimedia player) ), an MP3 player, a mobile medical device, a camera, or a wearable device. According to various embodiments, the wearable device is an accessory type (eg, a watch, a ring, a bracelet, an anklet, a necklace, glasses, contact lenses, or a head-mounted-device (HMD)), a fabric or a clothing integrated type ( For example, it may include at least one of an electronic garment), a body attachable type (eg, a skin pad), or a bioimplantable type (eg, an implantable circuit).

어떤 실시 예들에서, 전자 장치(100)는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.In some embodiments, the electronic device 100 may be a home appliance. Home appliances are, for example, televisions, digital video disk (DVD) players, audio, refrigerators, air conditioners, vacuum cleaners, ovens, microwave ovens, washing machines, air purifiers, set-top boxes, home automation controls. Panel (home automation control panel), security control panel (security control panel), TV box (e.g. Samsung HomeSync™, Apple TV™, or Google TV™), game console (e.g. Xbox™, PlayStation™), electronic dictionary , an electronic key, a camcorder, or an electronic picture frame.

전자 장치(100)는 가상 비서(AI assistant, virtual assistant) 기능을 수행할 수 있다. 전자 장치(100)는 특정 동작 서비스를 요청하는 사용자 명령을 수신하고, 사용자가 요청하는 동작 또는 서비스를 사용자에게 제공할 수 있다. 이때, 전자 장치(100)는 특정 동작 또는 서비스를 요청하는 사용자 명령을 터치 스크린 또는 버튼과 같은 입력 인터페이스를 통하여 수신할 수 있다. 뿐만 아니라, 전자 장치(100)는 마이크를 통하여 사용자 음성의 형태로 사용자 명령을 수신할 수 있다. 즉, 전자 장치(100)는 사용자로부터 음성 명령어를 수신하여 음성 명령어에 대응하는 특정 동작 또는 서비스를 수행할 수 있다. The electronic device 100 may perform an AI assistant (virtual assistant) function. The electronic device 100 may receive a user command for requesting a specific operation service, and may provide an operation or service requested by the user to the user. In this case, the electronic device 100 may receive a user command for requesting a specific operation or service through an input interface such as a touch screen or a button. In addition, the electronic device 100 may receive a user command in the form of a user's voice through a microphone. That is, the electronic device 100 may receive a voice command from the user and perform a specific operation or service corresponding to the voice command.

한편, 전자 장치(100)는 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 사용자에게 제공할 수도 있다. 구체적으로, 전자 장치(100)는 사용자 명령을 터치 스크린과 같은 입력 인터페이스를 통하여 수신하고 수신된 사용자 명령에 대응하는 음성 명령어가 존재하는 경우, 사용자 명령에 대응하는 음성 명령어에 관한 정보를 사용자에게 제공할 수 있다. Meanwhile, the electronic device 100 may provide information about a voice command recognizable by the electronic device 100 to the user. Specifically, when the electronic device 100 receives a user command through an input interface such as a touch screen and there is a voice command corresponding to the received user command, information about the voice command corresponding to the user command is provided to the user. can do.

가령, 전자 장치(100)가 블루투스 기능을 on 하여 스피커(미도시)와 연결하는 사용자 명령을 터치 스크린을 통하여 수신하였고, 블루투스 연결에 대한 음성 명령어가 존재하는 경우, '블루투스로 스피커와 연결해줘'와 같은 음성 명령어를 사용자에게 제공할 수 있다. For example, when the electronic device 100 turns on the Bluetooth function and receives a user command to connect to the speaker (not shown) through the touch screen, and there is a voice command for Bluetooth connection, 'Connect with the speaker via Bluetooth' It is possible to provide a user with a voice command such as

이때, 전자 장치(100)는 입력 인터페이스를 통하여 입력된 사용자 명령에 대응하는 음성 명령어를 포함하는 UI를 표시하거나, 음성 명령어에 해당하는 발화를 출력하여 사용자에게 음성 명령어에 대한 정보를 제공할 수 있다. In this case, the electronic device 100 may display a UI including a voice command corresponding to a user command input through the input interface or output an utterance corresponding to the voice command to provide information about the voice command to the user. .

이를 위하여, 전자 장치(100)에는 인식 가능한 음성 명령어에 관한 정보가 기저장되어 있을 수 있다. To this end, information about a recognizable voice command may be pre-stored in the electronic device 100 .

한편, 전자 장치(100)는 서버(200)로부터 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 수신할 수 있다. Meanwhile, the electronic device 100 may receive information about a voice command recognizable by the electronic device 100 from the server 200 .

서버(200)는 전자 장치(100)와 연결되어 전자 장치(100)로부터 다양한 정보를 수신하거나, 전자 장치(100)에 다양한 정보를 전송할 수 있다. 구체적으로, 서버(200)는 전자 장치(100)에서 인식 가능한 음성 명령어에 대한 로그 데이터를 분석하고 분석 결과를 전자 장치(100)에 전송할 수 있다. 그리고, 서버(200)는 로그 데이터를 분석하기 위하여 전자 장치(100)의 기능이 실행될 때 생성되는 로그 데이터를 전자 장치(100)로부터 수신할 수 있다. The server 200 may be connected to the electronic device 100 to receive various information from the electronic device 100 or transmit various information to the electronic device 100 . Specifically, the server 200 may analyze log data for a voice command recognizable by the electronic device 100 and transmit the analysis result to the electronic device 100 . In addition, the server 200 may receive log data generated when the function of the electronic device 100 is executed from the electronic device 100 in order to analyze the log data.

한편, 서버(200)는 적어도 하나의 인공지능 모델을 포함하는 로그 분석 시스템을 포함할 수 있다. 여기에서, 로그 분석 시스템은 전자 장치(100)의 기능 및 서브 기능에 대한 음성 명령어를 실행하고 실행된 음성 명령어에 대한 로그 데이터를 분석하도록 학습된 시스템일 수 있다. 서버(200)는 로그 분석 시스템을 이용하여 전자 장치(100)의 기능 중 음성 명령어가 존재하는 기능에 대한 로그 데이터를 포함하는 데이터 모델을 생성할 수 있으며, 생성된 데이터 모델을 전자 장치(100)에 전송할 수 있다. Meanwhile, the server 200 may include a log analysis system including at least one artificial intelligence model. Here, the log analysis system may be a system trained to execute a voice command for a function and a sub-function of the electronic device 100 and to analyze log data for the executed voice command. The server 200 may generate a data model including log data for a function in which a voice command exists among functions of the electronic device 100 using a log analysis system, and the generated data model is used in the electronic device 100 . can be sent to

전자 장치(100)는 서버(200)로부터 수신한 데이터 모델을 이용하여 전자 장치(100)에서 실행된 기능에 대한 음성 명령어가 존재하는지 식별할 수 있으며, 음성 명령어가 존재하는 것으로 식별된 경우, 해당 기능에 대한 음성 명령어를 사용자에게 가이드할 수 있다. The electronic device 100 may identify whether a voice command for a function executed in the electronic device 100 exists by using the data model received from the server 200 , and when it is identified that the voice command exists, the corresponding Voice commands for functions can be guided to the user.

한편, 도 1에서는 서버(200)가 로그 분석 시스템을 포함하고, 학습된 로그 분석 시스템이 생성한 데이터 모델을 전자 장치(100)에 전송하는 것으로 도시하였으나, 일 실시 예에 따라서는 전자 장치(100)에 로그 분석 시스템이 포함될 수도 있다. 이 경우, 전자 장치(100)는 전자 장치(100)에 포함된 로그 분석 시스템을 학습시켜 음성 명령어가 존재하는 기능에 대한 로그 데이터를 분석하고 분석 결과를 포함하는 데이터 모델을 저장할 수 있다. Meanwhile, in FIG. 1 , the server 200 includes a log analysis system and transmits the data model generated by the learned log analysis system to the electronic device 100 . However, according to an embodiment, the electronic device 100 ) may include a log analysis system. In this case, the electronic device 100 may learn the log analysis system included in the electronic device 100 , analyze log data for a function in which a voice command exists, and store a data model including the analysis result.

도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다. 2 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.

메모리(110)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 적어도 하나의 인스트럭션 또는 데이터를 저장하기 위한 구성이다. 인스트럭션은 프로그래밍 작성 언어에서 프로세서(120)가 직접 실행할 수 있는 하나의 동작 문장(action statement)을 의미하며, 프로그램의 실행 또는 동작에 대한 최소 단위이다.The memory 110 is a configuration for storing an operating system (OS) for controlling overall operations of the components of the electronic device 100 and at least one instruction or data related to the components of the electronic device 100 . . An instruction means one action statement that can be directly executed by the processor 120 in a programming language, and is a minimum unit for program execution or operation.

프로세서(120)는 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 후술할 다양한 실시 예들에 따른 동작을 수행할 수 있다.The processor 120 may perform operations according to various embodiments to be described later by executing at least one instruction stored in the memory 110 .

메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.The memory 110 is a component for storing various programs and data necessary for the operation of the electronic device 100 . The memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 110 is accessed by the processor 120 , and reading/writing/modification/deletion/update of data by the processor 120 may be performed. In the present disclosure, the term "memory" refers to a memory 110, a ROM (not shown) in the processor 120, a RAM (not shown), or a memory card (not shown) mounted in the electronic device 100 (eg, micro SD). card, memory stick).

메모리(110)에는 전자 장치(100)의 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터(Log Data)(111)가 저장될 수 있다. The memory 110 may store a plurality of functions of the electronic device 100 and log data 111 including sub-function information for each of the plurality of functions.

본 개시에서, 기능은 전자 장치(100)에서 실행 가능한 동작을 의미하며, 기능은 시스템 상에서 실행되는 작업(가령, 네트워크 연결, 볼륨 조절, 화면 조절 등) 또는 어플리케이션(가령, 카메라 어플리케이션, 캘린더 어플리케이션 등)의 동작에 대응한다. 그리고, 하나의 기능은 복수의 서브 기능을 포함할 수 있다. 본 개시에서 서브 기능은 하나의 기능에 포함되어 기능과 함께 실행될 수 있는 동작을 의미한다. 가령, 카메라 어플리케이션의 '이미지 촬영' 기능은 '100배 줌으로 이미지 촬영', '슬로우 모션으로 이미지 촬영', '플래시를 켜고 이미지 촬영'과 같은 복수의 서브 기능을 포함할 수 있다. 이때, 하나의 기능에 결합되는 서브 기능은 하나 이상일 수 있다. In the present disclosure, a function means an operation executable in the electronic device 100 , and a function is a task (eg, network connection, volume control, screen control, etc.) or application (eg, camera application, calendar application, etc.) executed on the system. ) corresponds to the action of And, one function may include a plurality of sub-functions. In the present disclosure, a sub-function refers to an operation that is included in one function and can be executed together with the function. For example, the 'image capture' function of the camera application may include a plurality of sub-functions such as 'take an image with 100x zoom', 'take an image in slow motion', and 'take an image with the flash on'. In this case, there may be one or more sub-functions coupled to one function.

또한, 본 개시에서, 로그 데이터(111)는 전자 장치(100)가 동작하는 동안 발생되는 이벤트에 관한 정보를 포함하는 데이터이다. 가령, 로그 데이터(111)는 전자 장치(100)의 기능 또는 서브 기능이 실행되면서 발생되는 로그 데이터에 관한 정보를 포함할 수 있다. 가령, 전자 장치(100)에서 하나의 기능 및 서브 기능이 실행되면, 메모리(110)에는 실행되는 기능 및 서브 기능에 관한 로그 데이터 이외에도, 기능 및 서브 기능이 실행되는 중에 발생되는 시스템 또는 다른 기능의 이벤트와 관련된 로그 데이터가 저장될 수 있다. Also, in the present disclosure, the log data 111 is data including information about an event that occurs while the electronic device 100 is operating. For example, the log data 111 may include information about log data generated while a function or a sub-function of the electronic device 100 is executed. For example, when one function and sub-function is executed in the electronic device 100 , in the memory 110 , in addition to log data related to the executed function and sub-function, a system or other function generated while the function and sub-function is executed is stored in the memory 110 . Log data related to the event may be stored.

한편, 메모리(110)에는 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델 (Data Model)(112)이 저장될 수 있다. 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능에 관한 정보를 포함할 수 있다. 또한, 서브 기능은 기능에 대한 하위 개념이라는 점에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 기능에 관한 정보를 포함할 수도 있다. Meanwhile, the memory 110 may store a data model 112 for extracting sub-functions usable as a voice command. The data model 112 may include information on sub-functions available through voice commands. In addition, since a sub-function is a sub-concept of a function, the data model 112 may include information about a function available through a voice command.

이때, 데이터 모델(112)에 포함된 음성 명령어로 이용 가능한 기능 또는 서브 기능에 관한 정보는 로그 데이터를 포함할 수 있다. 구체적으로, 데이터 모델(112)은 도 5의 로그 분석 시스템(400)에 의해 생성된 것으로 음성 명령어가 존재하는 기능 또는 서브 기능에 관한 로그 데이터를 포함할 수 있다. In this case, information about a function or sub-function available as a voice command included in the data model 112 may include log data. Specifically, the data model 112 is generated by the log analysis system 400 of FIG. 5 and may include log data related to a function or sub-function in which a voice command exists.

데이터 모델(112)은 서버(200)로부터 전송된 것일 수 있다. 구체적으로, 서버(200)에 저장된 도 5의 로그 분석 시스템(500)을 통하여 데이터 모델(112)이 생성되면, 서버(200)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다. The data model 112 may be transmitted from the server 200 . Specifically, when the data model 112 is generated through the log analysis system 500 of FIG. 5 stored in the server 200 , the server 200 may transmit the generated data model 112 to the electronic device 100 . there is.

한편, 일 실시 예에 따라, 도 5의 로그 분석 시스템(500)이 메모리(110)에 저장될 수도 있다. 이 경우, 데이터 모델(112)은 메모리(110)에 저장된 로그 분석 시스템(500)에 의하여 생성되고, 생성된 데이터 모델(112)이 메모리(110)에 저장될 수 있다. Meanwhile, according to an embodiment, the log analysis system 500 of FIG. 5 may be stored in the memory 110 . In this case, the data model 112 may be generated by the log analysis system 500 stored in the memory 110 , and the generated data model 112 may be stored in the memory 110 .

한편, 메모리(110)에는 로그 필터링 모듈(113)이 저장되어 있을 수 있다. Meanwhile, the log filtering module 113 may be stored in the memory 110 .

로그 필터링 모듈(Log Filtering Module)(113)은 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 설정된 기능은, 마이크(미도시)를 통한 음성 명령어 입력이 아닌, 입력 인터페이스(가령, 터치 스크린, 버튼 등)에 입력된 사용자의 입력에 기초하여 입력된 기능을 포함할 수 있다. 또는 일 실시 예에 따라, 설정된 기능은 사용자의 전자 장치 사용 패턴에 기초하여 설정된 기능을 포함할 수 있다. 가령, 사용자가 음성 명령어가 아닌 입력 인터페이스를 통하여 입력한 사용자 명령 중 처음으로 입력된 기능에 대응하는 명령 또는 기설정된 횟수 이상 입력된 기능에 대응하는 명령에 해당하는 기능이 설정된 기능에 해당할 수 있다. The log filtering module 113 may extract log data related to a set function from among a plurality of log data included in the log data 111 . Here, the set function may include a function input based on a user input input to an input interface (eg, a touch screen, a button, etc.) rather than a voice command input through a microphone (not shown). Alternatively, according to an embodiment, the set function may include a function set based on the user's electronic device usage pattern. For example, a function corresponding to a command corresponding to a function input for the first time among user commands input through an input interface other than a voice command by the user or a command corresponding to a function input more than a preset number of times may correspond to a set function. .

로그 필터링 모듈(113)은 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.The log filtering module 113 may firstly extract log data related to a function set from the log data 111 , and may secondarily extract log data related to a sub-function from the firstly extracted log data.

구체적으로, 로그 필터링 모듈(113)은 데이터 모델(112)을 이용하여 로그 데이터 중 설정된 기능과 관련이 없는 로그 데이터를 필터링하여 설정된 기능과 관련된 로그 데이터를 1차적으로 추출할 수 있다. Specifically, the log filtering module 113 may filter log data not related to the set function among log data using the data model 112 to primarily extract log data related to the set function.

그리고, 로그 필터링 모듈(113)은 로그 유사도 분석 모듈(Log Similarity Analysis Module)(114)을 이용하여 1차적으로 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 비교하여 설정된 기능 및 서브 기능을 포함하는 로그 데이터를 2차적으로 추출할 수 있다. 이때, 로그 유사도 분석 모듈(114)은 데이터 모델(112)에 포함된 로그 정보 및 로그 데이터(111)에 포함된 로그 정보 각각을 벡터 데이터로 변환하고, 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다. In addition, the log filtering module 113 uses a log similarity analysis module 114 to provide a degree of similarity between log information included in the log data primarily extracted and log information included in the data model 112 . By comparing , log data including the set function and sub-function can be extracted secondarily. At this time, the log similarity analysis module 114 converts each of the log information included in the data model 112 and the log information included in the log data 111 into vector data, and at least one of a direction, a distance, and a structure between the vector data. can be compared to confirm the similarity.

한편, 프로세서(120)는 로그 필터링 모듈(113)을 로딩하여 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하는 바, 로그 필터링 모듈(130)의 동작에 관한 구체적인 설명은 도 3에서 보다 구체적으로 설명하도록 한다. Meanwhile, the processor 120 loads the log filtering module 113 to extract log data related to the set function and sub-function, and a detailed description of the operation of the log filtering module 130 will be described in more detail with reference to FIG. 3 . to do it

프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 예를 들어, 프로세서(120)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다. The processor 120 may be electrically connected to the memory 110 to control overall operations and functions of the electronic device 100 . For example, the processor 120 may control hardware or software components connected to the processor 120 by driving an operating system or an application program, and may perform various data processing and operations. In addition, the processor 120 may load and process commands or data received from at least one of other components into the volatile memory, and store various data in the non-volatile memory.

이를 위해, 프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU (Central Processing Unit) 또는 application processor)로 구현될 수 있다. To this end, the processor 120 is a general-purpose processor (eg, a CPU (Central) Processing Unit) or application processor).

본 개시에서, 프로세서(120)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서(Advanced RISC Machine Processor) 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.In the present disclosure, the processor 120 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON) that processes a digital signal, but is not limited thereto, central processing unit (CPU), micro controller unit (MCU), micro processing unit (MPU), controller, application processor (AP), graphics-processing unit (GPU) or communication The processor 120 may include one or more of a communication processor (CP) and an ARM processor (Advanced RISC Machine Processor), or may be defined as a corresponding term In addition, the processor 120 is a system on system (SoC) in which a processing algorithm is embedded. Chip), large scale integration (LSI), or field programmable gate array (FPGA).

프로세서(120)는 비휘발성 메모리에서 휘발성 메모리로 로그 필터링 모듈(113) 및 로그 유사도 분석 모듈(114)을 로딩(loading)할 수 있다. 비휘발성 메모리는 전력 공급이 중단되더라도 저장된 정보를 유지할 수 있는 메모리(예를 들어, 플래시 메모리(Flash Memory), PROM(Programmable Read-Only Memory), MRAM(Magnetoresistive Random-Access Memory) 및 RRAM(Resistive RAM))를 말한다. 그리고, 휘발성 메모리는 저장된 정보를 유지하기 위해서는 지속적인 전력 공급이 필요한 메모리(예를 들어, DRAM(Dynamic Random-Access Memory) 및 SRAM(Static RAM))를 말한다. 그리고, 로딩(loading)이란 프로세서(120)가 액세스할 수 있도록 비휘발성 메모리에 저장된 데이터를 휘발성 메모리에 불러들여 저장하는 동작을 의미한다. 한편, 휘발성 메모리는 실시 예에 따라 프로세서(120)에 포함되거나, 프로세서(120)와 별개의 구성 요소로 구현될 수 있다. The processor 120 may load the log filtering module 113 and the log similarity analysis module 114 from the non-volatile memory to the volatile memory. Non-volatile memory is memory that can retain stored information even when power is lost (for example, flash memory, programmable read-only memory (PROM), magnetoresistive random-access memory (MRAM), and resistive RAM (RRAM). )) says In addition, the volatile memory refers to a memory (eg, dynamic random-access memory (DRAM) and static RAM (SRAM)) that requires continuous power supply in order to maintain stored information. In addition, loading refers to an operation of loading and storing data stored in the non-volatile memory into the volatile memory so that the processor 120 can access it. Meanwhile, the volatile memory may be included in the processor 120 or implemented as a component separate from the processor 120 according to an embodiment.

프로세서(120)는 메모리(110)에 저장된 로그 필터링 모듈(113)을 로딩하고, 로그 필터링 모듈(113)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다. The processor 120 may load the log filtering module 113 stored in the memory 110 and extract log data related to the set function and sub-function from the log data 111 using the log filtering module 113 . .

프로세서(120) 데이터 모델(112)을 이용하여 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 것으로, 음성 명령어로 이용 가능한 기능 및 서브 기능의 로그 데이터를 포함할 수 있다. Log data related to a set function and sub-function among a plurality of log data included in the log data 111 may be extracted using the data model 112 of the processor 120 . Here, the data model 112 is for extracting sub-functions usable by voice commands, and may include log data of functions and sub-functions usable by voice commands.

프로세서(120)는 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.The processor 120 may firstly extract log data related to a set function from the log data 111 , and may secondarily extract log data related to a sub-function from the firstly extracted log data.

그리고, 프로세서(120)는 추출된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 음성 명령어를 검색할 수 있다. 구체적으로, 프로세서(120)는 추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어는 가변 파라미터를 포함할 수 있으며, 가변 파라미터에 입력되는 값에 따라 음성 명령어의 내용이 다양해질 수 있다. 가령, 음성 명령어는 'OO초 단위로 이미지 촬영해줘', 'OO와 블루투스 연결해줘'와 같이 가변 파라미터(가령, 'OO초', 'OO 장치')를 포함할 수 있고, 가변 파라미터에 입력되는 값에 따라 음성 명령어가 변경될 수 있다. Then, the processor 120 may search for a voice command related to the set function and sub-function based on the extracted log data. Specifically, the processor 120 may search for a voice command capable of performing both a function and a sub function included in the extracted log data by using the extracted log data. In this case, the searched voice command may include a variable parameter, and the content of the voice command may vary according to a value input to the variable parameter. For example, the voice command may include variable parameters (eg, 'OO seconds', 'OO device') such as 'take an image in units of OO seconds', 'connect Bluetooth with OO', and Depending on the value, the voice command may be changed.

프로세서(120)는 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다. 가령, 설정된 서브 기능에 가변 파라미터의 값에 해당하는 요소(element)가 포함된 경우, 프로세서(120)는 음성 명령어의 가변 파라미터에 해당 요소를 입력하여 음성 명령어를 변경할 수 있다. 예를 들어, 설정된 기능 및 서브 기능이 '2초 간격으로 이미지를 촬영'이고, 검색된 음성 명령어가 'OO초 간격으로 이미지를 촬영해줘', 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 '2초 간격으로 이미지를 촬영해줘'와 같이 변경할 수 있다. When the searched voice command includes a variable parameter, the processor 120 may change the searched voice command based on the set sub-function. For example, when the set sub-function includes an element corresponding to the value of the variable parameter, the processor 120 may change the voice command by inputting the corresponding element into the variable parameter of the voice command. For example, the set function and sub-function are 'take an image at 2 second intervals', the searched voice command is 'take an image at OO second intervals', and the processor 120 issues a voice command based on the set sub function. You can change it like 'Take an image every 2 seconds'.

그리고, 프로세서(120)는 변경된 음성 명령어를 가이드할 수 있다. 구체적으로, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI를 표시하도록 디스플레이를 제어하여 변경된 음성 명령어를 가이드할 수 있다. 또는, 프로세서(120)는 변경된 음성 명령어를 출력하도록 스피커(미도시)를 제어하여 음성 명령어를 가이드할 수도 있다. 이에 대해서는 도 8a 내지 도 8e 에서 보다 구체적으로 설명하기로 한다. In addition, the processor 120 may guide the changed voice command. Specifically, the processor 120 may guide the changed voice command by controlling the display to display a UI including text corresponding to the changed voice command. Alternatively, the processor 120 may guide the voice command by controlling a speaker (not shown) to output the changed voice command. This will be described in more detail with reference to FIGS. 8A to 8E .

도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present disclosure.

프로세서(120)는 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차적으로 추출할 수 있다(S310). The processor 120 may primarily extract log data related to a set function from the log data 111 including a plurality of functions and sub-function information for each of the plurality of functions ( S310 ).

구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터 영역을 확인하고, 확인된 로그 데이터 영역을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. Specifically, the processor 120 checks the log data area related to the function set in the log data 111 using the data model 112, and uses the checked log data area to compare the function set in the log data 111 and the log data area. The related log data can be extracted first.

이때, 데이터 모델(112)에는 기능별로 기능의 실행 시작을 나타내는 로그 정보 및 기능의 실행 완료를 나타내는 로그 정보가 포함될 수 있다. In this case, the data model 112 may include log information indicating the start of execution of the function for each function and log information indicating the completion of the execution of the function.

프로세서(120)는 데이터 모델(112)에 포함된 기능에 대한 로그 정보를 기초로, 로그 데이터(111)에서 설정된 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다. 예를 들어, 프로세서(120)는 데이터 모델(112)에 카메라 어플리케이션의 시작 및 촬영 종료에 해당하는 로그 정보를 기초로, 로그 데이터(111)에서 카메라 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다. The processor 120 may check log data indicating the start of execution of the function set in the log data 111 and log data indicating the completion of execution, based on log information on the function included in the data model 112 . For example, the processor 120 may display log data indicating the start of the camera function and execution completion in the log data 111 based on log information corresponding to the start and end of shooting of the camera application in the data model 112 . You can check the displayed log data.

한편, 다른 실시 예에서 프로세서(120)는 데이터 모델(112)을 이용하여 기능의 실행 완료를 나타내는 로그 데이터만을 획득하고, 획득된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 마지막으로 설정할 수 있다. 그리고, 기설정된 로그 데이터(가령, 특정 시점의 로그 데이터)를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정하여 설정된 기능과 관련된 로그 데이터 영역을 확인할 수 있다. 가령, 프로세서(120)는 가장 마지막으로 확인된 로그 데이터 영역의 다음 로그 데이터 또는 특정 날짜나 시간에 발생된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정할 수 있다. Meanwhile, in another embodiment, the processor 120 may obtain only log data indicating the completion of execution of the function by using the data model 112 , and set the obtained log data to the last of the log data area related to the set function. In addition, by setting preset log data (eg, log data at a specific point in time) as the starting point of the log data area related to the set function, the log data area related to the set function may be checked. For example, the processor 120 may set the next log data of the last checked log data area or log data generated at a specific date or time as the starting point of the log data area related to the set function.

프로세서(120)는 확인된 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터를 삭제하여 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. 여기에서, 설정된 기능과 관련이 없는 로그 데이터는 전자 장치(100)의 시스템과 관련된 로그 데이터 및 설정된 기능과 다른 기능(가령, 다른 어플리케이션 또는 다른 도메인의 기능)과 관련된 로그 데이터를 나타낸다. The processor 120 may first extract log data related to the set function by deleting log data not related to the set function from the checked log data area. Here, the log data not related to the set function represents log data related to the system of the electronic device 100 and log data related to a function different from the set function (eg, a function of another application or another domain).

프로세서(120)는 복수의 기능에 대한 로그 정보를 포함하는 데이터 모델(112)을 기초로 설정된 기능과 관련이 있는 로그 데이터 및 설정된 기능과 관련이 없는 로그 데이터를 식별할 수 있다. 그리고 프로세서(120)는 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터 영역을 삭제하여, 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. The processor 120 may identify log data related to the set function and log data not related to the set function based on the data model 112 including log information for a plurality of functions. The processor 120 may first extract log data related to the set function by deleting the log data area not related to the set function from the log data area.

한편, 본 개시의 또 다른 일 실시 예에 따라, 프로세서(120)는 로그 데이터(111)를 기초로 전자 장치(100)를 사용하는 사용자의 이용 패턴을 확인할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 기초로 사용자가 가장 많이 사용하는 기능 및 서브 기능, 사용자가 사용하지 않은 기능 및 서브 기능, 시간대 별로 사용자가 사용하는 기능 및 서브 기능과 같은 사용자의 이용 패턴을 확인할 수 있다. Meanwhile, according to another embodiment of the present disclosure, the processor 120 may identify a usage pattern of the user who uses the electronic device 100 based on the log data 111 . For example, based on the log data 111 , the processor 120 determines the functions and sub-functions most used by the user, the functions and sub-functions not used by the user, and the functions and sub-functions used by the user for each time period. You can check usage patterns.

그리고, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출할 수 있다.In addition, the processor 120 may first extract log data related to a function corresponding to the usage pattern identified in the log data 111 using the data model 112 .

프로세서(120)는 1차 추출된 로그 데이터를 기초로 설정된 서브 기능과 관련된 로그 데이터를 2차 추출할 수 있다. The processor 120 may secondarily extract log data related to a sub-function set based on the firstly extracted log data.

프로세서(120)는 1차 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 판단할 수 있다(S320).The processor 120 may determine a similarity between log information included in the first extracted log data and log information included in the data model 112 ( S320 ).

구체적으로, 프로세서(120)는 로그 유사도 분석 모듈(114)을 이용하여 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와 1차 추출된 로그 데이터에 포함된 로그 정보 간의 유사도를 확인할 수 있다. Specifically, the processor 120 may use the log similarity analysis module 114 to check the similarity between the log information on the sub-function included in the data model 112 and the log information included in the first extracted log data. .

프로세서(120)는 1차 추출된 로그 데이터의 로그 정보 및 데이터 모델(112)의 로그 정보 각각을 벡터 데이터로 변환하고, 변환된 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다. The processor 120 converts each of the log information of the first extracted log data and the log information of the data model 112 into vector data, and compares at least one of a direction, a distance, and a structure between the transformed vector data to check the similarity. can

구체적으로, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터가 이루는 각도를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 거리를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 각도, 거리 및 두 벡터 데이터의 교차 지점의 평균 또는 편차 수치를 결합하여 구조 상의 유사도를 확인할 수 있다. Specifically, the processor 120 may check the degree of similarity based on an angle between the vector data for the data model 112 and the vector data for the first extracted log data. Alternatively, the processor 120 may check the similarity based on the distance between the vector data for the data model 112 and the vector data for the first extracted log data. Alternatively, the processor 120 combines the angle and distance between the vector data for the data model 112 and the vector data for the first extracted log data, and the average or deviation value of the intersection of the two vector data to obtain a degree of similarity in structure can be checked.

프로세서(120)는 1차 추출된 로그 데이터에서 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와의 유사도가 기설정된 값 이상인 로그 정보가 존재하는지 확인할 수 있다(S330)The processor 120 may check whether log information having a similarity with log information for a sub-function included in the data model 112 in the first extracted log data is equal to or greater than a preset value (S330)

기설정된 값 이상인 로그 정보가 존재하는 경우(S330-Y), 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터에서 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다(S340). 가령, 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터 중 유사도가 가장 높은 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다. 이때, 추출된 로그 데이터에는 기능 및 서브 기능에 관한 정보가 포함되어 있을 수 있다. When log information equal to or greater than a preset value exists (S330-Y), the processor 120 performs log data including log information having a similarity of a preset condition among the log data first extracted based on the confirmed similarity. Secondary extraction may be performed (S340). For example, the processor 120 may secondarily extract log data including log information having the highest similarity among log data extracted firstly based on the confirmed similarity. In this case, the extracted log data may include information on functions and sub-functions.

프로세서(120)는 추출된 로그 데이터를 기초로 음성 명령어를 검색할 수 있다(S350). The processor 120 may search for a voice command based on the extracted log data (S350).

구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 2차 추출된 로그 데이터에 대응하는 기능 및 서브 기능을 확인하고, 확인된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다. 이를 위하여, 메모리(110)에는 각각의 기능 및 서브 기능에 대응하는 음성 명령어가 기저장되어 있을 수 있다. 프로세서(120)는 메모리(110)에 저장된 음성 명령어를 기초로 2차 추출된 로그 데이터에 포함된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다. Specifically, the processor 120 may check the function and sub-function corresponding to the log data extracted secondarily using the data model 112 , and search for a voice command corresponding to each of the checked function and the sub-function. . To this end, a voice command corresponding to each function and sub-function may be pre-stored in the memory 110 . The processor 120 may search for a voice command corresponding to each function and sub-function included in the log data extracted secondarily based on the voice command stored in the memory 110 .

그리고, 프로세서(120)는 서브 기능에 기초하여 음성 명령어를 변경할 수 있다(S360). Then, the processor 120 may change the voice command based on the sub-function (S360).

구체적으로, 프로세서(120)는 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 가변 파라미터에 특정 값을 입력하여 음성 명령어를 변경할 수 있다. 이때, 가변 파라미터에 입력되는 특정 값은 설정된 서브 기능에 기초하여 결정될 수 있다. 가령, 입력 인터페이스를 통하여 입력된 사용자의 입력에 따라 실행된 서브 기능 또는 사용자의 사용 패턴에 의해 설정된 서브 기능에 기초하여 가변 파라미터에 입력되는 특정 값이 결정될 수 있다. 예를 들어, 사용자가 터치 스크린을 통하여 '3초 간격으로 이미지 촬영' 기능을 실행한 경우, '3초'가 가변 파라미터에 입력되는 값이 될 수 있다. Specifically, when the searched voice command includes the variable parameter, the processor 120 may change the voice command by inputting a specific value to the variable parameter. In this case, a specific value input to the variable parameter may be determined based on a set sub-function. For example, a specific value input to the variable parameter may be determined based on a sub function executed according to a user input input through the input interface or a sub function set by the user's usage pattern. For example, when the user executes a function of 'taking an image every 3 seconds' through the touch screen, '3 seconds' may be a value input to the variable parameter.

그리고, 프로세서(120)는 변경된 음성 명령어를 가이드 할 수 있다(S370). Then, the processor 120 may guide the changed voice command (S370).

구체적으로, 프로세서(120)는 변경된 음성 명령어를 포함하는 안내 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다. Specifically, the processor 120 may control the speaker (not shown) to output a guide message including the changed voice command.

또는, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하도록 디스플레이를 제어할 수 있다. Alternatively, the processor 120 may control the display to display a user interface (UI) including text corresponding to the changed voice command.

이때, 디스플레이에 표시된 UI를 선택하는 사용자의 입력을 수신하면, 프로세서(120)는 신규 음성 명령어를 인식하는 어플리케이션을 실행할 수 있다. 가령, 프로세서(120)는 가상 비서 어플리케이션을 실행하고, 디스플레이에 가상 비서 어플리케이션의 화면 및 변경된 음성 명령어에 대응하는 텍스트를 표시하도록 디스플레이를 제어할 수 있다. 이와 관련하여 구체적인 설명은 도 9a 내지 도 9e에서 후술하도록 한다. In this case, upon receiving a user input for selecting a UI displayed on the display, the processor 120 may execute an application for recognizing a new voice command. For example, the processor 120 may execute the virtual assistant application and control the display to display a screen of the virtual assistant application and text corresponding to the changed voice command. A detailed description in this regard will be described later with reference to FIGS. 9A to 9E .

도 4는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도이다. 4 is a block diagram illustrating a configuration of a server according to an embodiment of the present disclosure.

도 4에 도시된 바와 같이, 서버(200)는 메모리(210) 및 프로세서(220)를 포함한다. 메모리(210) 및 프로세서(220)와 관련하여, 도 2의 전자 장치(100)의 메모리(110) 및 프로세서(120)와 중복되는 내용에 대해서는 생략하도록 한다. As shown in FIG. 4 , the server 200 includes a memory 210 and a processor 220 . With respect to the memory 210 and the processor 220 , the contents overlapping those of the memory 110 and the processor 120 of the electronic device 100 of FIG. 2 will be omitted.

메모리(210)에는 도 5의 로그 분석 시스템(500)이 저장될 수 있다. 로그 분석 시스템(400)은 전자 장치(100)에 포함된 기능 또는 서브 기능에 대한 로그 데이터를 분석하기 위한 시스템이다. The memory 210 may store the log analysis system 500 of FIG. 5 . The log analysis system 400 is a system for analyzing log data for a function or sub-function included in the electronic device 100 .

도 5의 로그 분석 시스템(500) 또는 로그 분석 시스템(500)에 포함된 각 모듈은 인공지능 모델로 구현될 수 있다. 이 경우, 로그 분석 시스템(500)은 로그 데이터에 대한 학습을 통하여 각 기능에 대한 로그 데이터를 분석할 수 있다.Each module included in the log analysis system 500 or the log analysis system 500 of FIG. 5 may be implemented as an artificial intelligence model. In this case, the log analysis system 500 may analyze log data for each function through learning of the log data.

이와 관련하여, 도 5를 참조하면, 로그 분석 시스템(500)은 음성 명령어 데이터 베이스(510), 발화 실행 모듈(Utterance Executor Module) (520), 로그 수집 모듈(Log Collection Module) (530), 로그 분석 모듈 (Log Analyzer Module) (540)을 포함할 수 있다. In this regard, referring to FIG. 5 , the log analysis system 500 includes a voice command database 510 , a speech execution module 520 , a log collection module 530 , and a log An analysis module (Log Analyzer Module) 540 may be included.

음성 명령어 데이터 베이스(510)는 전자 장치(100)에서 사용 가능한 음성 명령어가 기저장되어 있을 수 있다. 음성 명령어 데이터 베이스(510)에는 기능에 대한 음성 명령어 집합이 저장되어 있을 수 있다. 이때, 하나의 기능은 복수의 서브 기능을 포함한다는 점에서, 음성 명령어 데이터 베이스(510)에는 복수의 서브 기능 각각에 대한 음성 명령어가 저장되어 있을 수 있다. 또한, 음성 명령어 데이터 베이스(510)에는 전자 장치(100)의 기능 또는 서브 기능 각각에 대한 음성 명령어가 복수 개 저장되어 있을 수 있으며, 각각의 기능 또는 서브 기능에 대한 복수의 음성 명령어 중 대표 음성 명령어에 대한 정보가 저장되어 있을 수 있다. The voice command database 510 may pre-store voice commands usable in the electronic device 100 . The voice command database 510 may store a set of voice commands for functions. In this case, since one function includes a plurality of sub-functions, a voice command for each of the plurality of sub-functions may be stored in the voice command database 510 . In addition, a plurality of voice commands for each function or sub-function of the electronic device 100 may be stored in the voice command database 510 , and a representative voice command among a plurality of voice commands for each function or sub-function Information about may be stored.

음성 명령어 데이터 베이스(510)에 포함된 음성 명령어는 전자 장치(100)에서 사용 가능한 음성 명령어가 추가되거나 삭제됨에 따라 업데이트될 수 있다. The voice command included in the voice command database 510 may be updated as a voice command usable in the electronic device 100 is added or deleted.

또한, 실시 예에 따라 음성 명령어 데이터 베이스(510)에는 전자 장치(100) 이외에도 다른 전자 장치(미도시)에서 사용 가능한 음성 명령어가 저장되어 있을 수 있다. Also, according to an embodiment, the voice command database 510 may store a voice command usable in another electronic device (not shown) in addition to the electronic device 100 .

발화 실행 모듈(520)은 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어가 입력되었을 때 어떠한 기능 또는 서브 기능이 실행되는지 확인할 수 있다. The speech execution module 520 may identify a representative voice command for each function or sub-function in the voice command database 510 and check which function or sub-function is executed when the identified representative voice command is input.

발화 실행 모듈(520)은 대표 음성 명령어에 대한 정보를 기초로 대표 음성 명령어를 식별할 수 있다. 또는, 대표 음성 명령어에 대한 정보가 음성 명령어 데이터 베이스(510)에 저장되어 있지 않은 경우, 발화 실행 모듈(520)은 저장된 음성 명령어 중 기능 또는 서브 기능에 대하여 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다. The speech execution module 520 may identify the representative voice command based on information on the representative voice command. Alternatively, when information on the representative voice command is not stored in the voice command database 510, the speech execution module 520 represents a voice command used a preset number of times or more for a function or sub-function among the stored voice commands. It can be identified by voice commands.

로그 수집 모듈(530)은 식별된 대표 음성 명령어를 입력하여, 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 이때, 수집된 로그 데이터는 하나의 태그 및 하나의 메시지와 결합된 하나의 로그 데이터의 집합일 수 있다. The log collection module 530 may input the identified representative voice command to collect log data generated when the representative voice command is executed. In this case, the collected log data may be a set of log data combined with one tag and one message.

한편, 로그 수집 모듈(530)이 로그 데이터를 수집하기 위해서는 충분한 로그 데이터가 메모리(210)에 기저장되어야 한다. 이를 위하여, 서버(200)는 로그 분석 시스템(500)의 학습시 별도의 외부 장치(미도시)로부터 로드 데이터를 수신할 수 있다. 또한, 서버(200)는 전자 장치(100)가 동작하면서 생성된 로그 데이터를 전자 장치(100)로부터 수신할 수도 있다. On the other hand, in order for the log collection module 530 to collect log data, sufficient log data must be pre-stored in the memory 210 . To this end, the server 200 may receive load data from a separate external device (not shown) when learning the log analysis system 500 . Also, the server 200 may receive log data generated while the electronic device 100 operates from the electronic device 100 .

로그 데이터에 포함된 태그는 하나의 기능에 대응되는 텍스트를 의미한다. 즉, 태그는 전자 장치(100)의 도메인 또는 어플리케이션 별로 유니크한 텍스트일 수 있다. 또한, 하나의 기능은 적어도 하나 이상의 태그를 포함할 수 있다. 가령, 카메라 어플리케이션과 관련된 기능은 서로 다른 Tag1, Tag2, …,Tagn개의 태그를 포함할 수 있다. A tag included in log data means text corresponding to one function. That is, the tag may be a unique text for each domain or application of the electronic device 100 . Also, one function may include at least one or more tags. For example, the functions related to the camera application are different Tag 1 , Tag 2 , … ,Tag May include n tags.

로그 데이터에 포함된 메시지는 기능 또는 서브 기능이 정의될 때 개발자에 의해 정의되는 텍스트를 나타낸다. 즉, 메시지는 기능 또는 서브 기능을 나타내기 위하여 임의로 입력된 텍스트이다. Messages contained in log data represent text defined by the developer when a function or sub-function is defined. That is, the message is text arbitrarily input to indicate a function or sub-function.

한편, 로그 데이터에 포함된 태그 및 메시지는 특정 기호(가령, ':')에 의해 구분될 수 있다. 가령, 로그 데이터에서 기호 ':' 이전에는 태그가, 기호 ':' 이후에는 메시지가 기록되는 것으로 기정의될 수 있다. Meanwhile, tags and messages included in log data may be separated by a specific symbol (eg, ':'). For example, in log data, it may be predefined that a tag is recorded before the symbol ':' and a message is recorded after the symbol ':'.

한편, 로그 분석 모듈(540)은 태그 기반 로그 삭제 모듈 (Tag-Based Log Remove Module)(541) 및 메시지 기반 로그 삭제 모듈 (Message-Based Log Remover Module) (542)를 포함할 수 있다. Meanwhile, the log analysis module 540 may include a Tag-Based Log Remove Module 541 and a Message-Based Log Remover Module 542 .

태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에서 로그 데이터에 포함된 태그 정보를 기초로 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. The tag-based log deletion module 541 may delete log data not related to a function based on tag information included in the log data from the collected log data.

우선, 태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에 포함된 태그 정보 중 기설정된 비율(가령, 수집된 전체 로그 데이터의 90%) 이상 기록된 태그 정보를 식별할 수 있다. 그리고, 태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에서 식별된 태그 정보를 포함하지 않는 로그 데이터를 삭제할 수 있다. First, the tag-based log deletion module 541 may identify tag information recorded over a preset ratio (eg, 90% of the total collected log data) among tag information included in the collected log data. In addition, the tag-based log deletion module 541 may delete log data that does not include tag information identified in the collected log data.

구체적으로, 태그 정보는 기능과 관련된다는 점에서, 수집된 로그 데이터에서 기설정된 비율 이상 기록되지 않은 태그 정보는 기능과 관련하여 의미 있는 정보라고 볼 수 없다. 따라서, 태그 기반 로그 삭제 모듈(441)은 수집된 로그 데이터에 포함된 로그 데이터 중 기설정된 비율 이상의 태그 정보를 포함하는 로그 데이터만을 남기고, 나머지 로그 데이터를 삭제할 수 있다. Specifically, since tag information is related to a function, tag information that is not recorded over a preset ratio in the collected log data cannot be regarded as meaningful information related to a function. Accordingly, the tag-based log deletion module 441 may leave only log data including tag information equal to or greater than a preset ratio among log data included in the collected log data, and delete the remaining log data.

이와 관련하여, 도 6a를 참조하면, 하나의 기능이 n개의 서브 기능(S1, S2,…, Sn)을 포함한다고 가정하자. 이 경우, 하나의 서브 기능은 복수의 로그 데이터를 포함할 수 있다. 가령, 서브 기능 S1은 Tag1, Tag3, Tag4,…,Tagm을 포함하는 복수의 로그 데이터를, S2는 Tag1, Tag4, Tag6,…,Tagm-1을 포함하는 복수의 로그 데이터를 포함할 수 있다. 즉, 하나의 기능과 관련하여 적어도 하나의 서브 기능이 포함될 수 있으며, 서브 기능 각각에 대하여 적어도 하나의 태그를 포함하는 로그 데이터가 포함될 수 있다. In this regard, referring to FIG. 6A , it is assumed that one function includes n sub-functions S 1 , S 2 , ..., S n . In this case, one sub function may include a plurality of log data. For example, sub function S 1 is Tag 1 , Tag 3 , Tag 4 ,… , Multiple log data including Tag m , S 2 is Tag 1 , Tag 4 , Tag 6 ,… , may include a plurality of log data including Tag m-1 . That is, at least one sub-function may be included in relation to one function, and log data including at least one tag may be included for each sub-function.

태그 기반 로그 삭제 모듈(541)은 복수의 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 포함된 태그 정보를 식별하고, 식별된 태그 정보를 포함하는 로그 데이터를 제외한 나머지 로그 데이터를 삭제할 수 있다. The tag-based log deletion module 541 may identify tag information included in log data equal to or greater than a preset ratio among a plurality of log data, and delete the remaining log data except for log data including the identified tag information.

가령, 태그 기반 로그 삭제 모듈(541)은 n개의 서브 기능에 대한 복수의 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 태그 Taga가 포함된 것으로 식별되면, Taga를 기능과 관련된 태그로 식별하고, Taga를 제외한 나머지 태그를 포함하는 로그 데이터를 삭제할 수 있다. For example, the tag-based log deletion module 541 identifies Tag a as a function-related tag when it is identified that the tag Tag a is included in log data of a predetermined ratio or more among a plurality of log data for n sub-functions, You can delete log data including tags other than Tag a .

한편, 도 6a에서는 기설정된 비율 이상의 로그 데이터에 포함된 태그가 Taga 하나인 것으로 도시하였으나 반드시 하나에 한하는 것은 아니며, 전체 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 포함된 태그는 복수 개일 수 있다. Meanwhile, in FIG. 6A , it is illustrated that one tag included in log data greater than or equal to a preset ratio is tag a , but it is not necessarily limited to one tag, and there may be a plurality of tags included in log data greater than or equal to a preset ratio among all log data. .

한편, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보가 전체 서브 기능을 나타내기 위하여 기설정된 비율(가령, n개의 서브 기능의 50%) 이상의 서로 다른 메시지를 가지는지 확인할 수 있다. 즉, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보와 메시지의 조합이 전체 서브 기능의 기설정된 비율(가령 50%) 이상을 나타낼 수 있는지 확인할 수 있다. Meanwhile, the tag-based log deletion module 541 may check whether the identified tag information has messages different from each other at a preset ratio (eg, 50% of n sub-functions) or more in order to indicate all sub-functions. That is, the tag-based log deletion module 541 may check whether the combination of the identified tag information and the message can represent more than a preset ratio (eg, 50%) of all sub-functions.

만약 태그 정보가 기설정된 비율 이하의 서로 다른 메시지를 가지는 경우, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보가 전체 서브 기능을 나타내는데 불충분하다고 보아, 수집된 로그 데이터에서 태그 정보를 포함하는 로그 데이터를 삭제할 수 있다. If the tag information has different messages below the preset ratio, the tag-based log deletion module 541 considers that the identified tag information is insufficient to represent the entire sub-function, and thus a log including tag information in the collected log data. Data can be deleted.

가령, 도 6b를 참조하면, 태그 기반 로그 삭제 모듈(541)은 도 6a에서 식별된 태그 Taga를 포함하는 로그 데이터에 포함된 메시지가 전체 n개의 서브 기능의 기설정된 비율 이상인지 확인할 수 있다. For example, referring to FIG. 6B , the tag-based log deletion module 541 may check whether a message included in log data including the tag Tag a identified in FIG. 6A is greater than or equal to a preset ratio of all n sub-functions.

태그 기반 로그 삭제 모듈(541)은 Taga와 결합된 메시지 Msg1, Msg2,…, Msgk-1, MsgK-2가 전체 n 개의 서브 기능의 기설정된 비율 이상인 경우, Taga 및 이와 결합된 Msg1, Msg2,…, Msgk-1, MsgK-2를 삭제하지 않을 수 있다. 반면, 태그 기반 로그 삭제 모듈(541)은 Taga와 결합된 메시지 Msg1, Msg2,…, Msgk-1, MsgK-2가 전체 n 개의 서브 기능의 기설정된 비율 미만인 경우, Taga 및 이와 결합된 Msg1, Msg2,…, Msgk-1, MsgK-2를 삭제할 수 있다.The tag-based log deletion module 541 is configured with a message Msg 1 , Msg 2 , … combined with Tag a . When , Msg k-1 , Msg K-2 is greater than or equal to a predetermined ratio of all n sub-functions, Tag a and Msg 1 , Msg 2 , … , Msg k-1 , and Msg K-2 may not be deleted. On the other hand, the tag-based log deletion module 541 is a message combined with Tag a Msg 1 , Msg 2 , . . . When , Msg k-1 , Msg K-2 is less than a predetermined ratio of the total n sub-functions, Tag a and Msg 1 , Msg 2 , … , Msg k-1 , and Msg K-2 can be deleted.

한편, 메시지 기반 로그 삭제 모듈(542)은 태그 기반 삭제 모듈(541)을 통하여 남게 된 로그 데이터를 이용하여 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. Meanwhile, the message-based log deletion module 542 may delete log data not related to a function by using the log data remaining through the tag-based deletion module 541 .

구체적으로, 메시지 기반 로그 삭제 모듈(542)은 태그 기반 삭제 모듈(541) 실행 후 남은 로그 데이터에 대응하는 서브 기능을 기설정된 횟수(가령, 10번) 실행할 수 있다. Specifically, the message-based log deletion module 542 may execute a sub-function corresponding to the log data remaining after the tag-based deletion module 541 is executed a preset number of times (eg, 10 times).

가령, 도 6c를 참조하면, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터에 대응하는 서브 기능 S1을 기설정된 횟수 실행할 수 있다. For example, referring to FIG. 6C , the message-based log deletion module 542 may execute the sub-function S 1 corresponding to the log data in which the tag Tag -a and the message Msg 1 are combined a predetermined number of times.

그리고, 메시지 기반 로그 삭제 모듈(542)은 기능을 기설정된 횟수 실행한 결과 동일한 결과의 로그 데이터, 즉, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 반복적으로 출력되는지 확인할 수 있다. 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 기설정된 횟수만큼 반복적으로 출력되는 경우, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터를 삭제하지 않을 수 있다. In addition, the message-based log deletion module 542 may check whether log data with the same result as a result of executing the function a preset number of times, ie, log data in which the tag Tag -a and the message Msg 1 are combined, are repeatedly output. When log data combined with tag Tag -a and message Msg 1 is repeatedly output for a preset number of times, the message-based log deletion module 542 does not delete log data combined with tag Tag -a and message Msg 1 can

그러나, 태그 Tag-a 및 메시지 Msg1이 로그 데이터가 반복적으로 출력되지 않는다면, 메시지 기반 로그 삭제 모듈(542)은 메시지 Msg1를 포함하는 로그 데이터(즉, 태그 Ta 및 메시지 Ma를 포함하는 로그 데이터)를 삭제할 수 있다. However, if the log data of the tag Tag -a and the message Msg 1 are not repeatedly output, the message-based log deletion module 542 generates log data including the message Msg 1 (ie, log data including the tag Ta and the message Ma). ) can be deleted.

한편, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 삭제되는 경우, 태그 기반 로그 삭제 모듈(541)은, 도 6b에서와 같이, 태그 Tag-a 가 기설정된 비율(가령, 수집된 전체 로그 데이터의 50%) 이상의 서로 다른 메시지(가령, Msg2, Msg3, …, Msgz)를 가지는지 다시 확인할 수 있다. On the other hand, when log data in which tag Tag -a and message Msg 1 are combined is deleted, the tag-based log deletion module 541, as shown in FIG . It can be checked again whether there are different messages (eg, Msg 2 , Msg 3 , …, Msg z ) of more than 50% of log data.

이 경우, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터의 삭제로 인하여 태그 Tag-a 가 기설정된 비율 미만의 서로 다른 메시지를 가지는 경우 태그 기반 로그 삭제 모듈(541)은 태그 Tag-a를 포함하는 로그 데이터를 삭제할 수 있다. In this case, when tag Tag -a has different messages less than a preset ratio due to deletion of log data in which tag Tag -a and message Msg 1 are combined, tag-based log deletion module 541 deletes tag Tag -a You can delete the log data it contains.

이에 따라, 메시지 기반 로그 삭제 모듈(542)의 실행 결과 기능을 실행하였을 때 동일한 로그 데이터를 출력하면서도, 기설정된 개수 이상의 서로 다른 메시지를 가지는 태그를 포함하는 로그 데이터만을 남길 수 있다. Accordingly, when the execution result function of the message-based log deletion module 542 is executed, the same log data may be output while only log data including tags having different messages greater than or equal to a preset number may be left.

한편, 메시지 기반 로그 삭제 모듈(542)은 로그 데이터에 포함된 태그의 메시지 별 임팩트(Impact)를 계산할 수 있다. 여기에서, 임팩트는 태그 및 메시지가 결합된 로그 데이터가 하나의 서브 기능과 일대일로 매칭되는 정도를 나타내는 수치이다. 태그와 결합된 복수의 메시지 중 하나의 서브 기능과 일대일로 매칭되는 메시지의 수가 많을수록 태그의 메시지 별 임팩트가 높은 것으로 나타낼 수 있다. Meanwhile, the message-based log deletion module 542 may calculate an impact for each message of a tag included in log data. Here, the impact is a numerical value indicating the degree to which log data combined with a tag and a message match one sub-function on a one-to-one basis. The greater the number of messages one-to-one with one sub-function among a plurality of messages combined with a tag, the higher the impact of each message of the tag may be indicated.

가령, 도 6d를 참조하면, 도 6d의 case1 과 같이, 태그 Tag-a와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터가 서브 기능 S1, S2,…, Sn에 일대일로 매칭되는 경우, 태그 Tag-a의 메시지 별 임팩트는 100%일 수 있다. For example, referring to FIG. 6d , as in case1 of FIG. 6d , the message Msg 1 , Msg 2 , ... combined with the tag Tag -a . , log data including Msg n are sub-functions S 1 , S 2 ,… , S n , the impact of each message of the tag Tag -a may be 100%.

다른 일 예로, 태그 Tag-a와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터 및 태그 Tag-b와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터가 존재한다고 가정하자. As another example, a message combined with the tag Tag -a Msg 1 , Msg 2 , ... , message combined with log data containing Msg n and tag Tag -b Msg 1 , Msg 2 , … Assume that log data including , Msg n exists.

이때, 태그 Tag-a 및 메시지 Msg1은 서브 기능 Sa1에, 태그 Tag-a 및 메시지 Msg2는 서브 기능 Sa2에, 태그 Tag-a 및 메시지 Msg3은 서브 기능 Sa3에 일대일로 매칭되고(도 6d의 case 1), 태그 Tag-b 및 메시지 Msg1은 기능 Sb1 및 기능 Sb2에, 태그 Tag-b 및 메시지 Msg2는 기능 Sb1 및 기능 Sb2에 매칭되는 경우(도 6d의 case 2), 태그 Tag-a의 메시지별 임팩트가 더 높다고 할 수 있다. At this time, tag Tag -a and message Msg 1 match sub function Sa 1 , tag Tag -a and message Msg 2 match sub function S a2 , tag Tag -a and message Msg 3 match sub function S a3 one-to-one. (Case 1 in Fig. 6d), tag Tag -b and message Msg 1 match function S b1 and function S b2 , tag Tag -b and message Msg 2 match function S b1 and function S b2 (Fig. 6d) In case 2), it can be said that the impact per message of tag Tag -a is higher.

메시지 기반 로그 삭제 모듈(542)은 태그 각각에 대하여 태그의 메시지별 임팩트를 산출하고, 태그 Tag의 메시지(Msg1, Msg2, … , Msgn)별 임팩트가 기설정된 비율(가령 20%) 이하인 경우 태그 Tag 및 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터를 삭제할 수 있다.The message-based log deletion module 542 calculates the impact of each message of the tag for each tag, and the impact of each message (Msg 1 , Msg 2 , ..., Msg n ) of the tag is less than or equal to a preset ratio (eg, 20%) If tag Tag and Msg 1 , Msg 2 , … , log data including Msg n can be deleted.

이와 같이, 로그 분석 모듈(540)은 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여, 로그 수집 모듈(530)을 통해 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 순차적으로 삭제함으로써, 최종적으로는 기능에 보다 정확하게 부합되는 로그 데이터만이 남을 수 있도록 한다. In this way, the log analysis module 540 uses the tag-based log deletion module 541 and the message-based log deletion module 542 to log data that are not related to the function in the log data collected through the log collection module 530 . By sequentially deleting data, in the end, only log data that more accurately matches the function remains.

한편, 다시 도 4를 참조하면, 프로세서(220)는 메모리(210)에 저장된 로그 분석 시스템(400)을 이용하여 음성 명령어가 존재하는 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석할 수 있다. 그리고, 서버(200)는 분석 결과를 기초로 데이터 모델을 생성할 수 있다. Meanwhile, again referring to FIG. 4 , the processor 220 analyzes log data according to the function or sub-function of the electronic device 100 in which the voice command exists by using the log analysis system 400 stored in the memory 210 . can do. And, the server 200 may generate a data model based on the analysis result.

이와 관련하여, 도 7은 서버(200)가 도 5의 로그 분석 시스템(500)을 이용하여 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석하고 데이터 모델을 생성하는 과정을 설명하기 위한 흐름도이다. In this regard, FIG. 7 illustrates a process in which the server 200 analyzes log data according to a function or sub-function of the electronic device 100 using the log analysis system 500 of FIG. 5 and generates a data model. is a flow chart for

프로세서(220)는 기능 또는 서브 기능에 대한 대표 음성 명령어를 실행할 수 있다(S710).The processor 220 may execute a representative voice command for a function or a sub-function (S710).

구체적으로, 프로세서(220)는 발화 실행 모듈(520)을 로딩하여 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어를 실행할 수 있다. 이때, 음성 명령어 데이터 베이스(510)에는 대표 음성 명령어에 관한 정보가 저장되어 있다. 일 예에 따라, 음성 명령어 데이터 베이스(510)에 대표 음성 명령어에 관한 정보가 저장되어 있지 않은 경우, 프로세서(220)는 발화 실행 모듈(520)을 이용하여 음성 명령어 데이터 베이스(510)에 저장된 음성 명령어 중 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다. Specifically, the processor 220 may load the speech execution module 520 to identify a representative voice command for each function or sub-function in the voice command database 510 and execute the identified representative voice command. At this time, the voice command database 510 stores information about the representative voice command. According to an example, when information about the representative voice command is not stored in the voice command database 510 , the processor 220 uses the speech execution module 520 to store the voice stored in the voice command database 510 . A voice command used more than a preset number of times among commands may be identified as a representative voice command.

그리고, 프로세서(220)는 대표 음성 명령어를 실행하여 발생된 로그 데이터를 수집할 수 있다(S720). 구체적으로, 프로세서(220)는 로그 수집 모듈(530)을 로딩하여 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 상술한 바와 같이, 이때의 로그 데이터는 기능에 대응되는 태그 및 개발자에 의해 임의로 작성된 메시지가 결합된 형태일 수 있다. Then, the processor 220 may collect log data generated by executing the representative voice command (S720). Specifically, the processor 220 may load the log collection module 530 to collect log data generated when a representative voice command is executed. As described above, the log data at this time may be a combination of a tag corresponding to a function and a message arbitrarily written by a developer.

이때, 대표 음성 명령어를 실행하여 발생된 로그 데이터는 복수의 로그 데이터를 포함할 수 있다. In this case, the log data generated by executing the representative voice command may include a plurality of log data.

프로세서(220)는 로그 분석 모듈(540)을 로딩하여 수집된 로그 데이터를 분석하여 기능 또는 서브 기능을 나타내는 로그 데이터 정보를 획득할 수 있다(S730). The processor 220 may load the log analysis module 540 and analyze the collected log data to obtain log data information indicating a function or a sub-function ( S730 ).

구체적으로, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여 수집된 로그 데이터에서 대표 음성 명령어에 대응되는 기능을 나타내기에 불명료한 태그 및 메시지를 포함하는 로그 데이터를 삭제하고, 특정 기능에 따른 로그 정보를 포함하는 로그 데이터를 획득할 수 있다. Specifically, the processor 220 includes an ambiguous tag and message to indicate a function corresponding to the representative voice command in the log data collected using the tag-based log deletion module 541 and the message-based log deletion module 542 . It is possible to delete log data to be used, and to acquire log data including log information according to a specific function.

프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 로그 데이터에서 기설정된 비율 이상 포함된 태그를 식별하고, 식별된 태그를 포함하지 않는 로그 데이터를 삭제할 수 있다. 그리고, 프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 식별된 태그가 기설정된 개수(가령, 전체 서브 기능 개수의 기설정된 비율 이상)의 서로 다른 메시지와 결합되어 있는지 확인하고, 식별된 태그가 기설정된 개수 미만의 메시지와 결합된 경우 식별된 태그를 포함하는 로그 데이터를 삭제할 수 있다. The processor 220 may use the tag-based log deletion module 541 to identify tags that are included in the log data at a predetermined ratio or more, and delete log data that does not include the identified tags. Then, the processor 220 uses the tag-based log deletion module 541 to check whether the identified tag is combined with a predetermined number of different messages (eg, more than a predetermined ratio of the total number of sub-functions), and identify When the identified tags are combined with messages less than a preset number, log data including the identified tags may be deleted.

또한, 프로세서(220)는 메시지 기반 로그 삭제 모듈(542)을 이용하여, 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. Also, the processor 220 may delete log data not related to a function by using the message-based log deletion module 542 .

구체적으로, 프로세서(220)를 태그 기반 로그 삭제 모듈(521)을 이용하여 로그 데이터를 삭제한 후 남게 된 로그 데이터를 기설정 횟수 실행하고, 실행 결과 동일한 태그 및 메시지가 결합된 로그 데이터가 실행된 횟수만큼 반복적으로 출력되는지 확인하여 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. Specifically, after the processor 220 deletes log data using the tag-based log deletion module 521, the remaining log data is executed a preset number of times, and as a result of the execution, the log data combined with the same tag and message is executed. You can delete log data that is not related to the function by checking whether the output is repeated as many times as possible.

또한, 프로세서(220)는 태그 기반 로그 삭제 모듈(521)을 이용하여 태그의 메시지 별 임팩트를 계산하고, 계산된 임팩트에 기초하여 로그 데이터를 삭제할 수 있다. In addition, the processor 220 may calculate an impact for each message of the tag using the tag-based log deletion module 521 , and delete log data based on the calculated impact.

이와 같이, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)를 기초로, S720 단계에서 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 식별하고, 식별된 로그 데이터를 삭제함으로써, 결과적으로 기능 및 서브 기능에 정확하게 매칭되는 로그 데이터를 획득할 수 있다. In this way, the processor 220 identifies log data that is not related to a function from the log data collected in step S720 based on the tag-based log deletion module 541 and the message-based log deletion module 542, and identifies the By deleting the log data, it is possible to obtain log data accurately matching the function and the sub-function as a result.

프로세서(220)는 획득한 로그 데이터를 포함하는 데이터 모델(112)을 생성(S740)할 수 있다. 이때, 프로세서(220)는 대표 음성 명령어가 존재하는 기능 또는 서브 기능과 관련된 로그 데이터를 포함하는 데이터 모델(112)을 생성할 수 있다. The processor 220 may generate the data model 112 including the obtained log data ( S740 ). In this case, the processor 220 may generate the data model 112 including log data related to the function or sub-function in which the representative voice command exists.

그리고, 프로세서(220)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다(S750). 서버(200)로부터 데이터 모델(112)을 수신한 전자 장치(100)는 데이터 모델(112)에 포함된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 검색된 음성 명령어를 가이드 할 수 있다. Then, the processor 220 may transmit the generated data model 112 to the electronic device 100 (S750). The electronic device 100 receiving the data model 112 from the server 200 extracts log data related to functions and sub-functions set based on the log data included in the data model 112, and uses the extracted log data. You can guide the searched voice command based on it.

도 8은 본 개시의 일 실시 예에 따라 설정된 기능 및 서브 기능에 대한 음성 명령어를 가이드하는 전자 장치를 설명하기 위한 도면이다. 8 is a diagram for describing an electronic device for guiding a voice command for a set function and sub-function according to an embodiment of the present disclosure.

일 실시 예에 따라, 도 8a에 도시된 바와 같이, 프로세서(120)는 복수의 어플리케이션 또는 도메인에 대응하는 아이콘을 표시하도록 디스플레이(130)를 제어할 수 있다. 이때, 어플리케이션 또는 도메인에 대응하는 각각의 아이콘은 전자 장치(100)의 기능에 대응될 수 있으며, 각각의 기능을 적어도 하나의 서브 기능을 포함할 수 있다. According to an embodiment, as shown in FIG. 8A , the processor 120 may control the display 130 to display icons corresponding to a plurality of applications or domains. In this case, each icon corresponding to the application or domain may correspond to a function of the electronic device 100 , and each function may include at least one sub-function.

프로세서(120)는 전자 장치(100)에 포함된 기능 및 서브 기능을 실행시키는 사용자 입력을 수신할 수 있다.The processor 120 may receive a user input for executing a function and a sub function included in the electronic device 100 .

프로세서(120)는 도 8a에 도시된 바와 같이, 하나의 기능(가령, 카메라 어플리케이션)을 실행시키기 위하여 디스플레이(130)에 표시된 복수의 아이콘 중 하나의 아이콘(810)을 선택하는 사용자 입력을 수신할 수 있다. As shown in FIG. 8A , the processor 120 may receive a user input for selecting one icon 810 from among a plurality of icons displayed on the display 130 in order to execute one function (eg, a camera application). can

그리고, 프로세서(120)는 도 8b에 도시된 바와 같이, 사용자 입력에 기초하여 기능이 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. And, as shown in FIG. 8B , the processor 120 may control the display 130 to display a screen on which a function is executed based on a user input.

가령, 카메라 어플리케이션의 경우, 프로세서(120)는 카메라 어플리케이션을 실행하여 촬영을 위한 입력 UI가 표시된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. For example, in the case of a camera application, the processor 120 may control the display 130 to display a screen on which an input UI for photographing is displayed by executing the camera application.

이때, 프로세서(120)는 기능에 포함된 서브 기능과 관련된 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. 가령, 프로세서(120)는 서브 기능의 표시와 관련된 메뉴를 표시하기 위한 메뉴(820)가 선택되면, 도 8c와 같이 서브 기능과 관련된 복수의 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. In this case, the processor 120 may control the display 130 to display a screen including an icon related to a sub-function included in the function. For example, when a menu 820 for displaying a menu related to display of a sub function is selected, the processor 120 controls the display 130 to display a screen including a plurality of icons related to the sub function as shown in FIG. 8C . can do.

이때, 도 8c에 도시된 바와 같이, 서브 기능과 관련된 복수의 아이콘 중 하나(830)를 선택하는 사용자 입력이 수신되면, 프로세서(120)는 사용자 입력에 기초하여 수신된 사용자 입력에 따라 실행될 서브 기능을 설정할 수 있다. In this case, as shown in FIG. 8C , when a user input for selecting one 830 among a plurality of icons related to a sub-function is received, the processor 120 performs a sub-function to be executed according to the received user input based on the user input. can be set.

그리고, 프로세서(120)는 도 8d에 도시된 바와 같이, 설정된 서브 기능을 실행하는 사용자 입력이 수신되면, 설정된 서브 기능을 실행할 수 있다. And, as shown in FIG. 8D , when a user input for executing a set sub-function is received, the processor 120 may execute the set sub-function.

가령, 도 8c에서 서브 기능 '슈퍼 슬로우 모션 촬영'이 선택된 경우, 프로세서(120)는 '슈퍼 슬로우 모션 촬영'을 서브 기능으로 설정하고, 서브 기능을 실행하고자 하는 사용자 입력이 수신되면, '슈퍼 슬로우 모션 촬영'으로 이미지를 촬영할 수 있다. For example, when the sub function 'super slow motion shooting' is selected in FIG. 8C , the processor 120 sets 'super slow motion shooting' as the sub function, and when a user input to execute the sub function is received, 'super slow motion shooting' You can take an image with 'Motion Shooting'.

한편, 프로세서(120)는 도 8a 내지 도 8d까지의 일련의 과정에 대한 로그 데이터를 생성할 수 있다. 가령, 카메라 어플리케이션에 대응하는 아이콘의 선택, 메뉴(820)의 선택, 서브 기능에 대응되는 아이콘(830)의 선택, 서브 기능을 실행하기 위한 사용자 입력의 수신 및 서브 기능의 실행과 관련된 로그 데이터를 생성할 수 있다. Meanwhile, the processor 120 may generate log data for a series of processes of FIGS. 8A to 8D . For example, log data related to selection of an icon corresponding to a camera application, selection of the menu 820, selection of an icon 830 corresponding to a sub function, reception of a user input for executing a sub function, and execution of a sub function can create

그리고, 프로세서(120)는 상기 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(111)을 이용하여 기능 및 서브 기능을 수행하기 위한 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 변경할 수 있다. And, as described above with reference to FIGS. 2 and 3 , the processor 120 may search for a voice command for performing a function and a sub-function by using the data model 111 . In this case, when the searched voice command includes the variable parameter, the processor 120 may change the voice command based on the set sub-function.

프로세서(120)는 음성 명령어를 가이드할 수 있다. The processor 120 may guide a voice command.

구체적으로, 프로세서(120)는 검색된 음성 명령어 또는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)(840)를 표시하도록 디스플레이(130)를 제어할 수 있다. Specifically, the processor 120 may control the display 130 to display a user interface (UI) 840 including text corresponding to the searched voice command or the changed voice command.

한편, 다른 일 실시 예에 따라, 프로세서(120)는 사용자의 이용 패턴을 확인하고 확인된 이용 패턴에 대응되는 기능 및 서브 기능을 설정하여, 설정된 기능 및 서브 기능과 관련된 음성 명령어를 가이드 할 수도 있다. Meanwhile, according to another exemplary embodiment, the processor 120 may check a user's usage pattern and set a function and a sub-function corresponding to the confirmed usage pattern, thereby guiding a voice command related to the set function and sub-function. .

가령, 도 8a와 같이 복수의 아이콘 중 하나가 선택되면, 프로세서(120)는 메모리(110)에 저장된 로그 데이터(111)를 기초로, 선택된 아이콘에 포함된 서브 기능을 사용한 사용자의 사용 패턴을 확인할 수 있다. For example, when one of the plurality of icons is selected as shown in FIG. 8A , the processor 120 checks the user's usage pattern using the sub-function included in the selected icon based on the log data 111 stored in the memory 110 . can

프로세서(120)는 사용자의 사용 패턴 정보를 기초로, 특정 조건을 만족하는 서브 기능을 식별할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 통하여 확인된 사용 패턴 정보를 기초로, 사용자가 자주 사용하지만 음성 명령어를 이용하여 사용하지 않은 서브 기능 또는 사용자가 사용하지 않은 서브 기능과 같은 조건은 만족하는 서브 기능을 식별할 수 있다. The processor 120 may identify a sub-function that satisfies a specific condition based on the user's usage pattern information. For example, on the basis of the usage pattern information confirmed through the log data 111, the processor 120 determines the conditions such as a sub-function that is frequently used by the user but not used using a voice command or a sub-function not used by the user. A sub-function that is satisfied can be identified.

그리고, 프로세서(120)는 도 8e와 같이 식별된 서브 기능에 대한 음성 명령어를 검색하고, 검색된 음성 명령어에 대응하는 텍스트를 포함하는 UI(840)를 표시하도록 디스플레이(130)를 제어할 수 있다. In addition, the processor 120 may control the display 130 to search for a voice command for the identified sub-function as shown in FIG. 8E and display the UI 840 including text corresponding to the searched voice command.

즉, 프로세서(120)는 사용자가 서브 기능을 설정하기 이전에, 로그 데이터(111)에 포함된 사용자의 사용 패턴 정보를 이용하여 복수의 서브 기능 중 하나를 설정할 수 있다. That is, before the user sets the sub-function, the processor 120 may set one of the plurality of sub-functions by using the user's usage pattern information included in the log data 111 .

그리고, 프로세서(120)는 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 설정된 서브 기능에 대응하는 음성 명령어를 검색하여 사용자에게 제공할 수 있다.Then, as described above in FIGS. 2 and 3 , the processor 120 extracts log data related to the set function and sub-function from the log data 111 using the data model 112 , and extracts the extracted log data. A voice command corresponding to the sub-function set based on the search may be provided to the user.

도 9는 본 개시의 일 실시 예에 따라 음성 명령어를 가이드하는 전자 장치를 설명하기 위한 도면이다. 9 is a diagram for describing an electronic device for guiding a voice command according to an embodiment of the present disclosure.

도 8e에서 상술한 바와 같이, 프로세서(120)는 음성 명령어에 대응하는 텍스트를 포함하는 UI(840)를 표시하도록 디스플레이(130)를 제어할 수 있다. As described above in FIG. 8E , the processor 120 may control the display 130 to display the UI 840 including text corresponding to the voice command.

그리고, 도 9a에 도시된 바와 같이, 프로세서(120)는 디스플레이(130)에 표시된 UI(840)를 선택하는 사용자 입력을 수신할 수 있다. And, as shown in FIG. 9A , the processor 120 may receive a user input for selecting the UI 840 displayed on the display 130 .

일 실시 예에 따라, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 포함하는 음성 메시지를 출력하여 사용자에게 음성 명령어를 가이드 할 수 있다. According to an embodiment, upon receiving a user input for selecting the UI 840 , the processor 120 may output a voice message including the voice command to guide the user with the voice command.

가령, 도 9b에 도시된 바와 같이, 프로세서(120)는 음성 명령어에 대응하는 텍스트 “슈퍼슬로우 모션으로 촬영”을 포함하는 UI(840)를 선택하는 사용자 입력을 수신하면, “하이 빅스비, 슈퍼슬로우모션으로 촬영이라고 말해보세요”와 같은 음성 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다. For example, as shown in FIG. 9B , when the processor 120 receives a user input for selecting the UI 840 including the text “shoot in super slow motion” corresponding to the voice command, “Hi Bixby, Super You can control the speaker (not shown) to output a voice message such as “Tell me shooting in slow motion”.

한편, 또 다른 일 실시 예에 따르면, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 인식하는 어플리케이션을 실행하여 사용자에게 음성 명령어를 가이드할 수 있다. Meanwhile, according to another exemplary embodiment, upon receiving a user input for selecting the UI 840 , the processor 120 may guide the user to the voice command by executing an application that recognizes the voice command.

구체적으로, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 가상 비서 어플리케이션을 실행하고, 가상 비서가 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. Specifically, upon receiving a user input for selecting the UI 840 , the processor 120 may execute the virtual assistant application and control the display 130 to display a screen on which the virtual assistant is executed.

이때, 프로세서(130)는 음성 명령어에 대응하는 텍스트를 표시하여 사용자에게 음성 명령어를 가이드할 수 있다. In this case, the processor 130 may guide the voice command to the user by displaying the text corresponding to the voice command.

또한, 사용자가 음성 명령어를 발화하는 경우, 프로세서(130)는 음성 명령어에 대응하는 기능 또는 서브 기능을 실행할 수 있다. Also, when the user utters a voice command, the processor 130 may execute a function or sub-function corresponding to the voice command.

도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다. 10 is a diagram for describing a method of controlling an electronic device according to an embodiment of the present disclosure.

전자 장치(100)에서 수행되는 복수의 기능 및 복수의 기능 정보를 포함하는 로그 데이터를 생성할 수 있다. Log data including a plurality of functions performed by the electronic device 100 and information on a plurality of functions may be generated.

생성된 로그 데이터에서 설정된 기능과 관련된 로그 데이터를, 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출할 수 있다(S1010). 이때, 데이터 모델을 음성 명령어로 이용 가능한 기능 및 서브 기능에 대한 로그 정보를 포함할 수 있다. Log data related to a function set from the generated log data may be extracted using a data model for extracting a sub function that can be used with a voice command (S1010). In this case, the data model may include log information on functions and sub-functions available as voice commands.

구체적으로, 로그 데이터에서 기능과 관련된 로그 데이터를 1차 추출하고, 데이터 모델을 이용하여 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출할 수 있다. Specifically, log data related to a function may be primarily extracted from log data, and log data related to an available sub function may be secondarily extracted using the data model.

1차 추출과 관련하여, 로그 데이터에서 설정된 기능의 실행 시작을 나타내는 로그 데이터와 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 기능과 관련된 로그 데이터 영역을 확인하고, 확인된 로그 데이터 영역을 이용하여 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. Regarding the primary extraction, check the log data indicating the start of the execution of the set function and the log data indicating the completion of the execution of the set function in the log data to check the log data area related to the function, and use the confirmed log data area Log data related to the set function can be primarily extracted from the log data.

또 다른 실시 예에 따라, 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출할 수 있다. According to another embodiment, a user's usage pattern may be checked based on the log data, and log data related to a function corresponding to the checked usage pattern may be primarily extracted.

2차 추출과 관련하여, 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 데이터 모델에 포함된 로그 정보 간의 유사도를 확인할 수 있다. In relation to the secondary extraction, a degree of similarity between each log information included in the log data extracted primarily and log information included in the data model may be checked.

구체적으로, 추출된 로그 데이터의 로그 정보 및 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다. Specifically, each of the log information of the extracted log data and the log information of the data model is converted into vector data, and the similarity can be confirmed by comparing at least one of a direction, a distance, and a structure between the vector data.

그리고, 확인된 유사도에 기초하여 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 가지는 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다. Then, based on the confirmed similarity, log data including log information having a similarity degree of a preset condition among the log data extracted first may be secondarily extracted.

추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색할 수 있다(S1020). Using the extracted log data, it is possible to search for a voice command capable of performing both a function and a sub function included in the extracted log data (S1020).

서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다(S1030). 구체적으로, 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다. The searched voice command may be changed based on the sub function (S1030). Specifically, when the searched voice command includes a variable parameter, the searched voice command may be changed based on the set sub-function.

그리고, 변경된 음성 명령어를 가이드 할 수 있다(S1040). Then, the changed voice command may be guided (S1040).

구체적으로, 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI를 표시할 수 있다. Specifically, a UI including text corresponding to the changed voice command may be displayed.

일 예에 따르면, 표시된 UI를 선택하는 사용자 입력을 수신하면, 변경된 음성 명령어를 인식하는 어플리케이션을 실행할 수 있다. According to an example, upon receiving a user input for selecting a displayed UI, an application for recognizing a changed voice command may be executed.

다른 일 예에 따르면, 표시된 UI를 선택하는 사용자 입력을 수신하면, 변경된 음성 명령어를 포함하는 음성 메시지를 출력할 수 있다. According to another example, upon receiving a user input for selecting a displayed UI, a voice message including a changed voice command may be output.

이상에서 전자 장치(100) 또는 서버(200) 중 적어도 하나를 통해 수행되는 것으로 기재된 다양한 동작들은, 전자 장치의 제어 방법 또는 전자 장치를 포함하는 시스템의 제어 방법 내지 동작 방법의 형태로 하나 이상의 전자 장치를 통해 수행될 수 있다. The various operations described above as being performed through at least one of the electronic device 100 or the server 200 are one or more electronic devices in the form of a method of controlling an electronic device or a method of controlling or operating a system including the electronic device. can be done through

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.Meanwhile, the various embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof.

하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(Programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processor), 제어기(controller), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessor), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.According to the hardware implementation, the embodiments described in the present disclosure are ASICs (Application Specific Integrated Circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (Programmable logic devices), FPGAs (field programmable gate arrays) ), a processor, a controller, a micro-controller, a microprocessor, and may be implemented using at least one of an electrical unit for performing other functions.

일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.In some cases, the embodiments described herein may be implemented by the processor itself. According to the software implementation, embodiments such as the procedures and functions described in this specification may be implemented as separate software modules. Each of the above-described software modules may perform one or more functions and operations described herein.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 사용자 장치 또는 관리자 장치에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 사용자 장치 및/또는 관리자 장치의 처리 동작을 상술한 특정 기기가 수행하도록 한다.Meanwhile, computer instructions for performing a processing operation in a user device or an administrator device according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. can When the computer instructions stored in the non-transitory computer readable medium are executed by the processor of the specific device, the specific device performs the processing operation of the user device and/or the manager device according to the various embodiments described above.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다. The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, and the like, and can be read by a device. Specifically, the above-described various applications or programs may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.In addition, although preferred embodiments of the present disclosure have been illustrated and described above, the present disclosure is not limited to the specific embodiments described above, and the technical field belonging to the present disclosure without departing from the gist of the present disclosure as claimed in the claims Various modifications are possible by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or prospect of the present disclosure.

100: 전자 장치 200: 서버
110: 메모리 120: 프로세서
100: electronic device 200: server
110: memory 120: processor

Claims (20)

전자 장치의 제어 방법에 있어서,
상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계;
상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계;
상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계; 및
상기 변경된 음성 명령어를 가이드하는 단계;를 포함하는, 제어 방법.
A method for controlling an electronic device, comprising:
Log data related to a set function from log data including a plurality of functions performed by the electronic device and sub-function information for each of the plurality of functions is extracted using a data model for extracting a sub-function that can be used as a voice command to do;
searching for a voice command capable of performing a function and a sub function included in the extracted log data together by using the extracted log data;
changing the searched voice command based on the sub-function; and
Including; guiding the changed voice command.
제1항에 있어서,
상기 추출하는 단계는,
상기 로그 데이터에서 상기 기능과 관련된 로그 데이터를 1차 추출하는 단계; 및
상기 데이터 모델을 이용하여, 상기 1차 추출된 로그 데이터에서 상기 음성 명령어로 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출하는 단계;를 포함하는 제어 방법.
According to claim 1,
The extraction step is
first extracting log data related to the function from the log data; and
and secondarily extracting log data related to a sub-function usable by the voice command from the first extracted log data using the data model.
제2항에 있어서,
상기 1차 추출하는 단계는,
상기 로그 데이터에서 상기 설정된 기능의 실행 시작을 나타내는 로그 데이터와 상기 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 상기 기능과 관련된 로그 데이터 영역을 확인하고,
상기 확인된 로그 데이터 영역을 이용하여 상기 로그 데이터에서 상기 설정된 기능과 관련된 로그 데이터를 1차 추출하는, 제어 방법.
3. The method of claim 2,
The first extraction step is,
Checking log data indicating the start of execution of the set function and log data indicating completion of execution of the set function from the log data to check a log data area related to the function,
A control method for first extracting log data related to the set function from the log data using the identified log data area.
제2항에 있어서,
상기 데이터 모델은 상기 음성 명령어로 이용 가능한 서브 기능에 대한 로그 정보를 포함하고,
상기 2차 추출하는 단계는,
상기 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 상기 데이터 모델에 포함된 로그 정보 간의 유사도를 확인하는 단계; 및
상기 확인된 유사도에 기초하여 상기 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출하는 단계;를 포함하는, 제어 방법.
3. The method of claim 2,
The data model includes log information on sub-functions available with the voice command,
The second extraction step is
checking a degree of similarity between each log information included in the first extracted log data and log information included in the data model; and
Secondary extraction of log data including log information having a similarity of a preset condition from among the firstly extracted log data based on the confirmed degree of similarity;
제4항에 있어서,
상기 유사도를 확인하는 단계는,
상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는 단계;를 포함하는, 제어 방법.
5. The method of claim 4,
The step of confirming the similarity is:
Converting each of the log information of the extracted log data and the log information of the data model into vector data, and checking the similarity by comparing at least one of a direction, a distance, and a structure between the vector data; .
제1항에 있어서,
상기 검색된 음성 명령어를 변경하는 단계는,
상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계;를 포함하는, 제어 방법.
According to claim 1,
Changing the searched voice command comprises:
When the searched voice command includes a variable parameter, changing the searched voice command based on a set sub-function; comprising, a control method.
제2항에 있어서,
상기 1차 추출하는 단계는,
상기 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 상기 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출하는 단계;를 포함하는, 제어 방법.
3. The method of claim 2,
The first extraction step is,
Checking a user's usage pattern based on the log data, and first extracting log data related to a function corresponding to the checked usage pattern; Control method comprising a.
제1항에 있어서,
상기 가이드 하는 단계는,
상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하는 단계;를 포함하는, 제어 방법.
According to claim 1,
The guiding step is
Displaying a UI (User Interface) including text corresponding to the changed voice command; Containing, a control method.
제8항에 있어서,
상기 UI를 선택하는 사용자 입력을 수신하면, 상기 변경된 음성 명령어를 인식하는 어플리케이션을 실행하는 단계;를 포함하는, 제어 방법.
9. The method of claim 8,
When receiving a user input for selecting the UI, executing an application for recognizing the changed voice command; Containing, a control method.
제1항에 있어서,
상기 가이드하는 단계는,
상기 변경된 음성 명령어를 포함하는 음성 메시지를 출력하는 단계;를 포함하는, 제어 방법.
According to claim 1,
The guiding step is
and outputting a voice message including the changed voice command.
전자 장치에 있어서,
복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터 및 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델이 저장된 메모리; 및
상기 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 상기 데이터 모델을 이용하여 추출하고,
상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하고,
상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하고,
상기 변경된 음성 명령어를 가이드하는, 프로세서;를 포함하는, 전자 장치.
In an electronic device,
a memory in which log data including a plurality of functions and sub-function information for each of the plurality of functions and a data model for extracting a sub-function usable as a voice command are stored; and
Extracting log data related to a function set in the log data using the data model,
Using the extracted log data, search for a voice command capable of performing a function and a sub function included in the extracted log data together,
Change the searched voice command based on the sub-function,
A processor for guiding the changed voice command; comprising, an electronic device.
제11항에 있어서,
상기 프로세서는,
상기 로그 데이터에서 상기 기능과 관련된 로그 데이터를 1차 추출하고,
상기 데이터 모델을 이용하여, 상기 1차 추출된 로그 데이터에서 상기 음성 명령어로 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출하는, 전자 장치.
12. The method of claim 11,
The processor is
First extracting log data related to the function from the log data,
and secondarily extracting log data related to a sub-function usable as the voice command from the firstly extracted log data using the data model.
제12항에 있어서,
상기 프로세서는,
상기 로그 데이터에서 상기 설정된 기능의 실행 시작을 나타내는 로그 데이터와 상기 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 상기 기능과 관련된 로그 데이터 영역을 확인하고,
상기 확인된 로그 데이터 영역을 이용하여 상기 로그 데이터에서 상기 설정된 기능과 관련된 로그 데이터를 1차 추출하는, 전자 장치.
13. The method of claim 12,
The processor is
Checking log data indicating the start of execution of the set function and log data indicating completion of execution of the set function from the log data to check a log data area related to the function,
and first extracting log data related to the set function from the log data using the identified log data area.
제12항에 있어서,
상기 데이터 모델은 상기 음성 명령어로 이용 가능한 서브 기능에 대한 로그 정보를 포함하고,
상기 프로세서는,
상기 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 상기 데이터 모델에 포함된 로그 정보 간의 유사도를 확인하고,
상기 확인된 유사도에 기초하여 상기 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출하는, 전자 장치.
13. The method of claim 12,
The data model includes log information on sub-functions available with the voice command,
The processor is
Check the similarity between each log information included in the first extracted log data and log information included in the data model,
and secondarily extracting log data including log information having a similarity degree of a preset condition from among the firstly extracted log data based on the confirmed degree of similarity.
제14항에 있어서,
상기 프로세서는,
상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는, 전자 장치.
15. The method of claim 14,
The processor is
Converting each of log information of the extracted log data and log information of the data model into vector data, and comparing at least one of a direction, a distance, and a structure between the vector data to check a similarity.
제11항에 있어서,
상기 프로세서는,
상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는, 전자 장치.
12. The method of claim 11,
The processor is
When the searched voice command includes a variable parameter, the electronic device is configured to change the searched voice command based on a set sub-function.
제12항에 있어서,
상기 프로세서는,
상기 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 상기 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출하는, 전자 장치.
13. The method of claim 12,
The processor is
An electronic device that identifies a user's usage pattern based on the log data, and primarily extracts log data related to a function corresponding to the checked usage pattern.
제11항에 있어서,
디스플레이;를 더 포함하고,
상기 프로세서는,
상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
12. The method of claim 11,
Display; further comprising,
The processor is
and controlling the display to display a user interface (UI) including text corresponding to the changed voice command.
제18항에 있어서,
상기 UI를 선택하는 사용자 입력을 수신하면, 상기 변경된 음성 명령어를 인식하는 어플리케이션을 실행하는, 전자 장치.
19. The method of claim 18,
When receiving a user input for selecting the UI, the electronic device executes an application for recognizing the changed voice command.
전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체에 있어서,
상기 제어 방법은,
상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계;
상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계;
상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계; 및
상기 변경된 음성 명령어를 가이드하는 단계;를 포함하는, 기록 매체.
A computer-readable recording medium comprising a program for executing a control method of an electronic device,
The control method is
Log data related to a set function from log data including a plurality of functions performed by the electronic device and sub-function information for each of the plurality of functions is extracted using a data model for extracting a sub-function that can be used as a voice command to do;
searching for a voice command capable of performing a function and a sub function included in the extracted log data together by using the extracted log data;
changing the searched voice command based on the sub-function; and
Including; guiding the changed voice command.
KR1020200131456A 2020-10-12 2020-10-12 Electronic apparatus and control method thereof KR20220048374A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200131456A KR20220048374A (en) 2020-10-12 2020-10-12 Electronic apparatus and control method thereof
PCT/KR2021/011659 WO2022080659A1 (en) 2020-10-12 2021-08-31 Electronic device and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200131456A KR20220048374A (en) 2020-10-12 2020-10-12 Electronic apparatus and control method thereof

Publications (1)

Publication Number Publication Date
KR20220048374A true KR20220048374A (en) 2022-04-19

Family

ID=81208352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200131456A KR20220048374A (en) 2020-10-12 2020-10-12 Electronic apparatus and control method thereof

Country Status (2)

Country Link
KR (1) KR20220048374A (en)
WO (1) WO2022080659A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496126B1 (en) 2022-06-09 2023-02-06 노현승 Apparatus for alignment at address in golf swing
WO2024034785A1 (en) * 2022-08-10 2024-02-15 주식회사 지어소프트 Method and device for providing speech recognition online market service using iptv

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254787A1 (en) * 2003-06-12 2004-12-16 Shah Sheetal R. System and method for distributed speech recognition with a cache feature
KR20090045878A (en) * 2007-11-02 2009-05-08 (주)인피니티 텔레콤 Mobile comunication phone having the mobile-agent and method for driving the mobile-agent using the mobile comunication phone
KR102003267B1 (en) * 2011-12-30 2019-10-02 삼성전자주식회사 Electronic apparatus and Method for controlling electronic apparatus thereof
US9043205B2 (en) * 2012-06-21 2015-05-26 Google Inc. Dynamic language model
KR101830657B1 (en) * 2015-04-27 2018-02-21 엘지전자 주식회사 Mobile terminal and control method for the mobile terminal

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496126B1 (en) 2022-06-09 2023-02-06 노현승 Apparatus for alignment at address in golf swing
WO2024034785A1 (en) * 2022-08-10 2024-02-15 주식회사 지어소프트 Method and device for providing speech recognition online market service using iptv

Also Published As

Publication number Publication date
WO2022080659A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
US10275022B2 (en) Audio-visual interaction with user devices
US9811313B2 (en) Voice-triggered macros
US11062090B2 (en) Method and apparatus for mining general text content, server, and storage medium
US20240152548A1 (en) Electronic apparatus for searching related image and control method therefor
CN107112015B (en) Discovering capabilities of third party voice-enabled resources
CN108352159A (en) The electronic equipment and method of voice for identification
WO2016206113A1 (en) Technologies for device independent automated application testing
CN109508167A (en) The display device and method of display device are controlled in speech recognition system
KR20210061141A (en) Method and apparatus for processimg natural languages
JP2012103840A (en) Information processor, program and command generation method
US11184679B2 (en) Electronic apparatus and method for controlling the electronic apparatus
KR20220048374A (en) Electronic apparatus and control method thereof
US20140258989A1 (en) Method and system for automating a scene-based test
US8745521B2 (en) System and method for annotating graphical user interface
US20210343283A1 (en) Electronic device for sharing user-specific voice command and method for controlling same
CN112052784B (en) Method, device, equipment and computer readable storage medium for searching articles
JP2019032719A (en) Information processing system, information processing method, and program
JP2022019524A (en) Modeling parameter configuration method, apparatus, device, computer storage medium, and computer program
Hoste et al. Criteria, Challenges and Opportunities for Gesture Programming Languages.
KR20150113572A (en) Electronic Apparatus and Method for Acquiring of Image Data
CN111638787B (en) Method and device for displaying information
KR102255369B1 (en) Method for providing alternative service and electronic device thereof
CN115774797A (en) Video content retrieval method, device, equipment and computer readable storage medium
JP6900334B2 (en) Video output device, video output method and video output program
KR20210096858A (en) Electronic apparatus and control method thereof

Legal Events

Date Code Title Description
A201 Request for examination