KR20220048374A - Electronic apparatus and control method thereof - Google Patents
Electronic apparatus and control method thereof Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000006870 function Effects 0.000 claims abstract description 227
- 238000013499 data model Methods 0.000 claims abstract description 65
- 239000000284 extract Substances 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 description 42
- 230000037430 deletion Effects 0.000 description 42
- 238000004458 analytical method Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 12
- 238000001914 filtration Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech 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
Description
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 구체적으로는 사용자에게 음성 명령어를 가이드하는 전자 장치 및 이의 제어 방법에 관한 것이다. 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
도 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
어떤 실시 예들에서, 전자 장치(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
전자 장치(100)는 가상 비서(AI assistant, virtual assistant) 기능을 수행할 수 있다. 전자 장치(100)는 특정 동작 서비스를 요청하는 사용자 명령을 수신하고, 사용자가 요청하는 동작 또는 서비스를 사용자에게 제공할 수 있다. 이때, 전자 장치(100)는 특정 동작 또는 서비스를 요청하는 사용자 명령을 터치 스크린 또는 버튼과 같은 입력 인터페이스를 통하여 수신할 수 있다. 뿐만 아니라, 전자 장치(100)는 마이크를 통하여 사용자 음성의 형태로 사용자 명령을 수신할 수 있다. 즉, 전자 장치(100)는 사용자로부터 음성 명령어를 수신하여 음성 명령어에 대응하는 특정 동작 또는 서비스를 수행할 수 있다. The
한편, 전자 장치(100)는 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 사용자에게 제공할 수도 있다. 구체적으로, 전자 장치(100)는 사용자 명령을 터치 스크린과 같은 입력 인터페이스를 통하여 수신하고 수신된 사용자 명령에 대응하는 음성 명령어가 존재하는 경우, 사용자 명령에 대응하는 음성 명령어에 관한 정보를 사용자에게 제공할 수 있다. Meanwhile, the
가령, 전자 장치(100)가 블루투스 기능을 on 하여 스피커(미도시)와 연결하는 사용자 명령을 터치 스크린을 통하여 수신하였고, 블루투스 연결에 대한 음성 명령어가 존재하는 경우, '블루투스로 스피커와 연결해줘'와 같은 음성 명령어를 사용자에게 제공할 수 있다. For example, when the
이때, 전자 장치(100)는 입력 인터페이스를 통하여 입력된 사용자 명령에 대응하는 음성 명령어를 포함하는 UI를 표시하거나, 음성 명령어에 해당하는 발화를 출력하여 사용자에게 음성 명령어에 대한 정보를 제공할 수 있다. In this case, the
이를 위하여, 전자 장치(100)에는 인식 가능한 음성 명령어에 관한 정보가 기저장되어 있을 수 있다. To this end, information about a recognizable voice command may be pre-stored in the
한편, 전자 장치(100)는 서버(200)로부터 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 수신할 수 있다. Meanwhile, the
서버(200)는 전자 장치(100)와 연결되어 전자 장치(100)로부터 다양한 정보를 수신하거나, 전자 장치(100)에 다양한 정보를 전송할 수 있다. 구체적으로, 서버(200)는 전자 장치(100)에서 인식 가능한 음성 명령어에 대한 로그 데이터를 분석하고 분석 결과를 전자 장치(100)에 전송할 수 있다. 그리고, 서버(200)는 로그 데이터를 분석하기 위하여 전자 장치(100)의 기능이 실행될 때 생성되는 로그 데이터를 전자 장치(100)로부터 수신할 수 있다. The
한편, 서버(200)는 적어도 하나의 인공지능 모델을 포함하는 로그 분석 시스템을 포함할 수 있다. 여기에서, 로그 분석 시스템은 전자 장치(100)의 기능 및 서브 기능에 대한 음성 명령어를 실행하고 실행된 음성 명령어에 대한 로그 데이터를 분석하도록 학습된 시스템일 수 있다. 서버(200)는 로그 분석 시스템을 이용하여 전자 장치(100)의 기능 중 음성 명령어가 존재하는 기능에 대한 로그 데이터를 포함하는 데이터 모델을 생성할 수 있으며, 생성된 데이터 모델을 전자 장치(100)에 전송할 수 있다. Meanwhile, the
전자 장치(100)는 서버(200)로부터 수신한 데이터 모델을 이용하여 전자 장치(100)에서 실행된 기능에 대한 음성 명령어가 존재하는지 식별할 수 있으며, 음성 명령어가 존재하는 것으로 식별된 경우, 해당 기능에 대한 음성 명령어를 사용자에게 가이드할 수 있다. The
한편, 도 1에서는 서버(200)가 로그 분석 시스템을 포함하고, 학습된 로그 분석 시스템이 생성한 데이터 모델을 전자 장치(100)에 전송하는 것으로 도시하였으나, 일 실시 예에 따라서는 전자 장치(100)에 로그 분석 시스템이 포함될 수도 있다. 이 경우, 전자 장치(100)는 전자 장치(100)에 포함된 로그 분석 시스템을 학습시켜 음성 명령어가 존재하는 기능에 대한 로그 데이터를 분석하고 분석 결과를 포함하는 데이터 모델을 저장할 수 있다. Meanwhile, in FIG. 1 , the
도 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
프로세서(120)는 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 후술할 다양한 실시 예들에 따른 동작을 수행할 수 있다.The
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.The
메모리(110)에는 전자 장치(100)의 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터(Log Data)(111)가 저장될 수 있다. The
본 개시에서, 기능은 전자 장치(100)에서 실행 가능한 동작을 의미하며, 기능은 시스템 상에서 실행되는 작업(가령, 네트워크 연결, 볼륨 조절, 화면 조절 등) 또는 어플리케이션(가령, 카메라 어플리케이션, 캘린더 어플리케이션 등)의 동작에 대응한다. 그리고, 하나의 기능은 복수의 서브 기능을 포함할 수 있다. 본 개시에서 서브 기능은 하나의 기능에 포함되어 기능과 함께 실행될 수 있는 동작을 의미한다. 가령, 카메라 어플리케이션의 '이미지 촬영' 기능은 '100배 줌으로 이미지 촬영', '슬로우 모션으로 이미지 촬영', '플래시를 켜고 이미지 촬영'과 같은 복수의 서브 기능을 포함할 수 있다. 이때, 하나의 기능에 결합되는 서브 기능은 하나 이상일 수 있다. In the present disclosure, a function means an operation executable in the
또한, 본 개시에서, 로그 데이터(111)는 전자 장치(100)가 동작하는 동안 발생되는 이벤트에 관한 정보를 포함하는 데이터이다. 가령, 로그 데이터(111)는 전자 장치(100)의 기능 또는 서브 기능이 실행되면서 발생되는 로그 데이터에 관한 정보를 포함할 수 있다. 가령, 전자 장치(100)에서 하나의 기능 및 서브 기능이 실행되면, 메모리(110)에는 실행되는 기능 및 서브 기능에 관한 로그 데이터 이외에도, 기능 및 서브 기능이 실행되는 중에 발생되는 시스템 또는 다른 기능의 이벤트와 관련된 로그 데이터가 저장될 수 있다. Also, in the present disclosure, the
한편, 메모리(110)에는 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델 (Data Model)(112)이 저장될 수 있다. 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능에 관한 정보를 포함할 수 있다. 또한, 서브 기능은 기능에 대한 하위 개념이라는 점에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 기능에 관한 정보를 포함할 수도 있다. Meanwhile, the
이때, 데이터 모델(112)에 포함된 음성 명령어로 이용 가능한 기능 또는 서브 기능에 관한 정보는 로그 데이터를 포함할 수 있다. 구체적으로, 데이터 모델(112)은 도 5의 로그 분석 시스템(400)에 의해 생성된 것으로 음성 명령어가 존재하는 기능 또는 서브 기능에 관한 로그 데이터를 포함할 수 있다. In this case, information about a function or sub-function available as a voice command included in the
데이터 모델(112)은 서버(200)로부터 전송된 것일 수 있다. 구체적으로, 서버(200)에 저장된 도 5의 로그 분석 시스템(500)을 통하여 데이터 모델(112)이 생성되면, 서버(200)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다. The
한편, 일 실시 예에 따라, 도 5의 로그 분석 시스템(500)이 메모리(110)에 저장될 수도 있다. 이 경우, 데이터 모델(112)은 메모리(110)에 저장된 로그 분석 시스템(500)에 의하여 생성되고, 생성된 데이터 모델(112)이 메모리(110)에 저장될 수 있다. Meanwhile, according to an embodiment, the
한편, 메모리(110)에는 로그 필터링 모듈(113)이 저장되어 있을 수 있다. Meanwhile, the
로그 필터링 모듈(Log Filtering Module)(113)은 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 설정된 기능은, 마이크(미도시)를 통한 음성 명령어 입력이 아닌, 입력 인터페이스(가령, 터치 스크린, 버튼 등)에 입력된 사용자의 입력에 기초하여 입력된 기능을 포함할 수 있다. 또는 일 실시 예에 따라, 설정된 기능은 사용자의 전자 장치 사용 패턴에 기초하여 설정된 기능을 포함할 수 있다. 가령, 사용자가 음성 명령어가 아닌 입력 인터페이스를 통하여 입력한 사용자 명령 중 처음으로 입력된 기능에 대응하는 명령 또는 기설정된 횟수 이상 입력된 기능에 대응하는 명령에 해당하는 기능이 설정된 기능에 해당할 수 있다. The
로그 필터링 모듈(113)은 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.The
구체적으로, 로그 필터링 모듈(113)은 데이터 모델(112)을 이용하여 로그 데이터 중 설정된 기능과 관련이 없는 로그 데이터를 필터링하여 설정된 기능과 관련된 로그 데이터를 1차적으로 추출할 수 있다. Specifically, the
그리고, 로그 필터링 모듈(113)은 로그 유사도 분석 모듈(Log Similarity Analysis Module)(114)을 이용하여 1차적으로 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 비교하여 설정된 기능 및 서브 기능을 포함하는 로그 데이터를 2차적으로 추출할 수 있다. 이때, 로그 유사도 분석 모듈(114)은 데이터 모델(112)에 포함된 로그 정보 및 로그 데이터(111)에 포함된 로그 정보 각각을 벡터 데이터로 변환하고, 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다. In addition, the
한편, 프로세서(120)는 로그 필터링 모듈(113)을 로딩하여 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하는 바, 로그 필터링 모듈(130)의 동작에 관한 구체적인 설명은 도 3에서 보다 구체적으로 설명하도록 한다. Meanwhile, the
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 예를 들어, 프로세서(120)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다. The
이를 위해, 프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU (Central Processing Unit) 또는 application processor)로 구현될 수 있다. To this end, the
본 개시에서, 프로세서(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
프로세서(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
프로세서(120)는 메모리(110)에 저장된 로그 필터링 모듈(113)을 로딩하고, 로그 필터링 모듈(113)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다. The
프로세서(120) 데이터 모델(112)을 이용하여 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 것으로, 음성 명령어로 이용 가능한 기능 및 서브 기능의 로그 데이터를 포함할 수 있다. Log data related to a set function and sub-function among a plurality of log data included in the
프로세서(120)는 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.The
그리고, 프로세서(120)는 추출된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 음성 명령어를 검색할 수 있다. 구체적으로, 프로세서(120)는 추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어는 가변 파라미터를 포함할 수 있으며, 가변 파라미터에 입력되는 값에 따라 음성 명령어의 내용이 다양해질 수 있다. 가령, 음성 명령어는 'OO초 단위로 이미지 촬영해줘', 'OO와 블루투스 연결해줘'와 같이 가변 파라미터(가령, 'OO초', 'OO 장치')를 포함할 수 있고, 가변 파라미터에 입력되는 값에 따라 음성 명령어가 변경될 수 있다. Then, the
프로세서(120)는 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다. 가령, 설정된 서브 기능에 가변 파라미터의 값에 해당하는 요소(element)가 포함된 경우, 프로세서(120)는 음성 명령어의 가변 파라미터에 해당 요소를 입력하여 음성 명령어를 변경할 수 있다. 예를 들어, 설정된 기능 및 서브 기능이 '2초 간격으로 이미지를 촬영'이고, 검색된 음성 명령어가 'OO초 간격으로 이미지를 촬영해줘', 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 '2초 간격으로 이미지를 촬영해줘'와 같이 변경할 수 있다. When the searched voice command includes a variable parameter, the
그리고, 프로세서(120)는 변경된 음성 명령어를 가이드할 수 있다. 구체적으로, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI를 표시하도록 디스플레이를 제어하여 변경된 음성 명령어를 가이드할 수 있다. 또는, 프로세서(120)는 변경된 음성 명령어를 출력하도록 스피커(미도시)를 제어하여 음성 명령어를 가이드할 수도 있다. 이에 대해서는 도 8a 내지 도 8e 에서 보다 구체적으로 설명하기로 한다. In addition, the
도 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
구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터 영역을 확인하고, 확인된 로그 데이터 영역을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. Specifically, the
이때, 데이터 모델(112)에는 기능별로 기능의 실행 시작을 나타내는 로그 정보 및 기능의 실행 완료를 나타내는 로그 정보가 포함될 수 있다. In this case, the
프로세서(120)는 데이터 모델(112)에 포함된 기능에 대한 로그 정보를 기초로, 로그 데이터(111)에서 설정된 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다. 예를 들어, 프로세서(120)는 데이터 모델(112)에 카메라 어플리케이션의 시작 및 촬영 종료에 해당하는 로그 정보를 기초로, 로그 데이터(111)에서 카메라 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다. The
한편, 다른 실시 예에서 프로세서(120)는 데이터 모델(112)을 이용하여 기능의 실행 완료를 나타내는 로그 데이터만을 획득하고, 획득된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 마지막으로 설정할 수 있다. 그리고, 기설정된 로그 데이터(가령, 특정 시점의 로그 데이터)를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정하여 설정된 기능과 관련된 로그 데이터 영역을 확인할 수 있다. 가령, 프로세서(120)는 가장 마지막으로 확인된 로그 데이터 영역의 다음 로그 데이터 또는 특정 날짜나 시간에 발생된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정할 수 있다. Meanwhile, in another embodiment, the
프로세서(120)는 확인된 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터를 삭제하여 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. 여기에서, 설정된 기능과 관련이 없는 로그 데이터는 전자 장치(100)의 시스템과 관련된 로그 데이터 및 설정된 기능과 다른 기능(가령, 다른 어플리케이션 또는 다른 도메인의 기능)과 관련된 로그 데이터를 나타낸다. The
프로세서(120)는 복수의 기능에 대한 로그 정보를 포함하는 데이터 모델(112)을 기초로 설정된 기능과 관련이 있는 로그 데이터 및 설정된 기능과 관련이 없는 로그 데이터를 식별할 수 있다. 그리고 프로세서(120)는 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터 영역을 삭제하여, 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. The
한편, 본 개시의 또 다른 일 실시 예에 따라, 프로세서(120)는 로그 데이터(111)를 기초로 전자 장치(100)를 사용하는 사용자의 이용 패턴을 확인할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 기초로 사용자가 가장 많이 사용하는 기능 및 서브 기능, 사용자가 사용하지 않은 기능 및 서브 기능, 시간대 별로 사용자가 사용하는 기능 및 서브 기능과 같은 사용자의 이용 패턴을 확인할 수 있다. Meanwhile, according to another embodiment of the present disclosure, the
그리고, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출할 수 있다.In addition, the
프로세서(120)는 1차 추출된 로그 데이터를 기초로 설정된 서브 기능과 관련된 로그 데이터를 2차 추출할 수 있다. The
프로세서(120)는 1차 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 판단할 수 있다(S320).The
구체적으로, 프로세서(120)는 로그 유사도 분석 모듈(114)을 이용하여 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와 1차 추출된 로그 데이터에 포함된 로그 정보 간의 유사도를 확인할 수 있다. Specifically, the
프로세서(120)는 1차 추출된 로그 데이터의 로그 정보 및 데이터 모델(112)의 로그 정보 각각을 벡터 데이터로 변환하고, 변환된 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다. The
구체적으로, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터가 이루는 각도를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 거리를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 각도, 거리 및 두 벡터 데이터의 교차 지점의 평균 또는 편차 수치를 결합하여 구조 상의 유사도를 확인할 수 있다. Specifically, the
프로세서(120)는 1차 추출된 로그 데이터에서 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와의 유사도가 기설정된 값 이상인 로그 정보가 존재하는지 확인할 수 있다(S330)The
기설정된 값 이상인 로그 정보가 존재하는 경우(S330-Y), 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터에서 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다(S340). 가령, 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터 중 유사도가 가장 높은 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다. 이때, 추출된 로그 데이터에는 기능 및 서브 기능에 관한 정보가 포함되어 있을 수 있다. When log information equal to or greater than a preset value exists (S330-Y), the
프로세서(120)는 추출된 로그 데이터를 기초로 음성 명령어를 검색할 수 있다(S350). The
구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 2차 추출된 로그 데이터에 대응하는 기능 및 서브 기능을 확인하고, 확인된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다. 이를 위하여, 메모리(110)에는 각각의 기능 및 서브 기능에 대응하는 음성 명령어가 기저장되어 있을 수 있다. 프로세서(120)는 메모리(110)에 저장된 음성 명령어를 기초로 2차 추출된 로그 데이터에 포함된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다. Specifically, the
그리고, 프로세서(120)는 서브 기능에 기초하여 음성 명령어를 변경할 수 있다(S360). Then, the
구체적으로, 프로세서(120)는 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 가변 파라미터에 특정 값을 입력하여 음성 명령어를 변경할 수 있다. 이때, 가변 파라미터에 입력되는 특정 값은 설정된 서브 기능에 기초하여 결정될 수 있다. 가령, 입력 인터페이스를 통하여 입력된 사용자의 입력에 따라 실행된 서브 기능 또는 사용자의 사용 패턴에 의해 설정된 서브 기능에 기초하여 가변 파라미터에 입력되는 특정 값이 결정될 수 있다. 예를 들어, 사용자가 터치 스크린을 통하여 '3초 간격으로 이미지 촬영' 기능을 실행한 경우, '3초'가 가변 파라미터에 입력되는 값이 될 수 있다. Specifically, when the searched voice command includes the variable parameter, the
그리고, 프로세서(120)는 변경된 음성 명령어를 가이드 할 수 있다(S370). Then, the
구체적으로, 프로세서(120)는 변경된 음성 명령어를 포함하는 안내 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다. Specifically, the
또는, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하도록 디스플레이를 제어할 수 있다. Alternatively, the
이때, 디스플레이에 표시된 UI를 선택하는 사용자의 입력을 수신하면, 프로세서(120)는 신규 음성 명령어를 인식하는 어플리케이션을 실행할 수 있다. 가령, 프로세서(120)는 가상 비서 어플리케이션을 실행하고, 디스플레이에 가상 비서 어플리케이션의 화면 및 변경된 음성 명령어에 대응하는 텍스트를 표시하도록 디스플레이를 제어할 수 있다. 이와 관련하여 구체적인 설명은 도 9a 내지 도 9e에서 후술하도록 한다. In this case, upon receiving a user input for selecting a UI displayed on the display, the
도 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
메모리(210)에는 도 5의 로그 분석 시스템(500)이 저장될 수 있다. 로그 분석 시스템(400)은 전자 장치(100)에 포함된 기능 또는 서브 기능에 대한 로그 데이터를 분석하기 위한 시스템이다. The
도 5의 로그 분석 시스템(500) 또는 로그 분석 시스템(500)에 포함된 각 모듈은 인공지능 모델로 구현될 수 있다. 이 경우, 로그 분석 시스템(500)은 로그 데이터에 대한 학습을 통하여 각 기능에 대한 로그 데이터를 분석할 수 있다.Each module included in the
이와 관련하여, 도 5를 참조하면, 로그 분석 시스템(500)은 음성 명령어 데이터 베이스(510), 발화 실행 모듈(Utterance Executor Module) (520), 로그 수집 모듈(Log Collection Module) (530), 로그 분석 모듈 (Log Analyzer Module) (540)을 포함할 수 있다. In this regard, referring to FIG. 5 , the
음성 명령어 데이터 베이스(510)는 전자 장치(100)에서 사용 가능한 음성 명령어가 기저장되어 있을 수 있다. 음성 명령어 데이터 베이스(510)에는 기능에 대한 음성 명령어 집합이 저장되어 있을 수 있다. 이때, 하나의 기능은 복수의 서브 기능을 포함한다는 점에서, 음성 명령어 데이터 베이스(510)에는 복수의 서브 기능 각각에 대한 음성 명령어가 저장되어 있을 수 있다. 또한, 음성 명령어 데이터 베이스(510)에는 전자 장치(100)의 기능 또는 서브 기능 각각에 대한 음성 명령어가 복수 개 저장되어 있을 수 있으며, 각각의 기능 또는 서브 기능에 대한 복수의 음성 명령어 중 대표 음성 명령어에 대한 정보가 저장되어 있을 수 있다. The
음성 명령어 데이터 베이스(510)에 포함된 음성 명령어는 전자 장치(100)에서 사용 가능한 음성 명령어가 추가되거나 삭제됨에 따라 업데이트될 수 있다. The voice command included in the
또한, 실시 예에 따라 음성 명령어 데이터 베이스(510)에는 전자 장치(100) 이외에도 다른 전자 장치(미도시)에서 사용 가능한 음성 명령어가 저장되어 있을 수 있다. Also, according to an embodiment, the
발화 실행 모듈(520)은 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어가 입력되었을 때 어떠한 기능 또는 서브 기능이 실행되는지 확인할 수 있다. The
발화 실행 모듈(520)은 대표 음성 명령어에 대한 정보를 기초로 대표 음성 명령어를 식별할 수 있다. 또는, 대표 음성 명령어에 대한 정보가 음성 명령어 데이터 베이스(510)에 저장되어 있지 않은 경우, 발화 실행 모듈(520)은 저장된 음성 명령어 중 기능 또는 서브 기능에 대하여 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다. The
로그 수집 모듈(530)은 식별된 대표 음성 명령어를 입력하여, 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 이때, 수집된 로그 데이터는 하나의 태그 및 하나의 메시지와 결합된 하나의 로그 데이터의 집합일 수 있다. The
한편, 로그 수집 모듈(530)이 로그 데이터를 수집하기 위해서는 충분한 로그 데이터가 메모리(210)에 기저장되어야 한다. 이를 위하여, 서버(200)는 로그 분석 시스템(500)의 학습시 별도의 외부 장치(미도시)로부터 로드 데이터를 수신할 수 있다. 또한, 서버(200)는 전자 장치(100)가 동작하면서 생성된 로그 데이터를 전자 장치(100)로부터 수신할 수도 있다. On the other hand, in order for the
로그 데이터에 포함된 태그는 하나의 기능에 대응되는 텍스트를 의미한다. 즉, 태그는 전자 장치(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
로그 데이터에 포함된 메시지는 기능 또는 서브 기능이 정의될 때 개발자에 의해 정의되는 텍스트를 나타낸다. 즉, 메시지는 기능 또는 서브 기능을 나타내기 위하여 임의로 입력된 텍스트이다. 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
태그 기반 로그 삭제 모듈(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
구체적으로, 메시지 기반 로그 삭제 모듈(542)은 태그 기반 삭제 모듈(541) 실행 후 남은 로그 데이터에 대응하는 서브 기능을 기설정된 횟수(가령, 10번) 실행할 수 있다. Specifically, the message-based
가령, 도 6c를 참조하면, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터에 대응하는 서브 기능 S1을 기설정된 횟수 실행할 수 있다. For example, referring to FIG. 6C , the message-based
그리고, 메시지 기반 로그 삭제 모듈(542)은 기능을 기설정된 횟수 실행한 결과 동일한 결과의 로그 데이터, 즉, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 반복적으로 출력되는지 확인할 수 있다. 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 기설정된 횟수만큼 반복적으로 출력되는 경우, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터를 삭제하지 않을 수 있다. In addition, the message-based
그러나, 태그 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
한편, 태그 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
한편, 메시지 기반 로그 삭제 모듈(542)은 로그 데이터에 포함된 태그의 메시지 별 임팩트(Impact)를 계산할 수 있다. 여기에서, 임팩트는 태그 및 메시지가 결합된 로그 데이터가 하나의 서브 기능과 일대일로 매칭되는 정도를 나타내는 수치이다. 태그와 결합된 복수의 메시지 중 하나의 서브 기능과 일대일로 매칭되는 메시지의 수가 많을수록 태그의 메시지 별 임팩트가 높은 것으로 나타낼 수 있다. Meanwhile, the message-based
가령, 도 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. (
메시지 기반 로그 삭제 모듈(542)은 태그 각각에 대하여 태그의 메시지별 임팩트를 산출하고, 태그 Tag의 메시지(Msg1, Msg2, … , Msgn)별 임팩트가 기설정된 비율(가령 20%) 이하인 경우 태그 Tag 및 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터를 삭제할 수 있다.The message-based
이와 같이, 로그 분석 모듈(540)은 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여, 로그 수집 모듈(530)을 통해 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 순차적으로 삭제함으로써, 최종적으로는 기능에 보다 정확하게 부합되는 로그 데이터만이 남을 수 있도록 한다. In this way, the
한편, 다시 도 4를 참조하면, 프로세서(220)는 메모리(210)에 저장된 로그 분석 시스템(400)을 이용하여 음성 명령어가 존재하는 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석할 수 있다. 그리고, 서버(200)는 분석 결과를 기초로 데이터 모델을 생성할 수 있다. Meanwhile, again referring to FIG. 4 , the
이와 관련하여, 도 7은 서버(200)가 도 5의 로그 분석 시스템(500)을 이용하여 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석하고 데이터 모델을 생성하는 과정을 설명하기 위한 흐름도이다. In this regard, FIG. 7 illustrates a process in which the
프로세서(220)는 기능 또는 서브 기능에 대한 대표 음성 명령어를 실행할 수 있다(S710).The
구체적으로, 프로세서(220)는 발화 실행 모듈(520)을 로딩하여 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어를 실행할 수 있다. 이때, 음성 명령어 데이터 베이스(510)에는 대표 음성 명령어에 관한 정보가 저장되어 있다. 일 예에 따라, 음성 명령어 데이터 베이스(510)에 대표 음성 명령어에 관한 정보가 저장되어 있지 않은 경우, 프로세서(220)는 발화 실행 모듈(520)을 이용하여 음성 명령어 데이터 베이스(510)에 저장된 음성 명령어 중 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다. Specifically, the
그리고, 프로세서(220)는 대표 음성 명령어를 실행하여 발생된 로그 데이터를 수집할 수 있다(S720). 구체적으로, 프로세서(220)는 로그 수집 모듈(530)을 로딩하여 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 상술한 바와 같이, 이때의 로그 데이터는 기능에 대응되는 태그 및 개발자에 의해 임의로 작성된 메시지가 결합된 형태일 수 있다. Then, the
이때, 대표 음성 명령어를 실행하여 발생된 로그 데이터는 복수의 로그 데이터를 포함할 수 있다. In this case, the log data generated by executing the representative voice command may include a plurality of log data.
프로세서(220)는 로그 분석 모듈(540)을 로딩하여 수집된 로그 데이터를 분석하여 기능 또는 서브 기능을 나타내는 로그 데이터 정보를 획득할 수 있다(S730). The
구체적으로, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여 수집된 로그 데이터에서 대표 음성 명령어에 대응되는 기능을 나타내기에 불명료한 태그 및 메시지를 포함하는 로그 데이터를 삭제하고, 특정 기능에 따른 로그 정보를 포함하는 로그 데이터를 획득할 수 있다. Specifically, the
프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 로그 데이터에서 기설정된 비율 이상 포함된 태그를 식별하고, 식별된 태그를 포함하지 않는 로그 데이터를 삭제할 수 있다. 그리고, 프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 식별된 태그가 기설정된 개수(가령, 전체 서브 기능 개수의 기설정된 비율 이상)의 서로 다른 메시지와 결합되어 있는지 확인하고, 식별된 태그가 기설정된 개수 미만의 메시지와 결합된 경우 식별된 태그를 포함하는 로그 데이터를 삭제할 수 있다. The
또한, 프로세서(220)는 메시지 기반 로그 삭제 모듈(542)을 이용하여, 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. Also, the
구체적으로, 프로세서(220)를 태그 기반 로그 삭제 모듈(521)을 이용하여 로그 데이터를 삭제한 후 남게 된 로그 데이터를 기설정 횟수 실행하고, 실행 결과 동일한 태그 및 메시지가 결합된 로그 데이터가 실행된 횟수만큼 반복적으로 출력되는지 확인하여 기능과 관련이 없는 로그 데이터를 삭제할 수 있다. Specifically, after the
또한, 프로세서(220)는 태그 기반 로그 삭제 모듈(521)을 이용하여 태그의 메시지 별 임팩트를 계산하고, 계산된 임팩트에 기초하여 로그 데이터를 삭제할 수 있다. In addition, the
이와 같이, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)를 기초로, S720 단계에서 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 식별하고, 식별된 로그 데이터를 삭제함으로써, 결과적으로 기능 및 서브 기능에 정확하게 매칭되는 로그 데이터를 획득할 수 있다. In this way, the
프로세서(220)는 획득한 로그 데이터를 포함하는 데이터 모델(112)을 생성(S740)할 수 있다. 이때, 프로세서(220)는 대표 음성 명령어가 존재하는 기능 또는 서브 기능과 관련된 로그 데이터를 포함하는 데이터 모델(112)을 생성할 수 있다. The
그리고, 프로세서(220)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다(S750). 서버(200)로부터 데이터 모델(112)을 수신한 전자 장치(100)는 데이터 모델(112)에 포함된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 검색된 음성 명령어를 가이드 할 수 있다. Then, the
도 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
프로세서(120)는 전자 장치(100)에 포함된 기능 및 서브 기능을 실행시키는 사용자 입력을 수신할 수 있다.The
프로세서(120)는 도 8a에 도시된 바와 같이, 하나의 기능(가령, 카메라 어플리케이션)을 실행시키기 위하여 디스플레이(130)에 표시된 복수의 아이콘 중 하나의 아이콘(810)을 선택하는 사용자 입력을 수신할 수 있다. As shown in FIG. 8A , the
그리고, 프로세서(120)는 도 8b에 도시된 바와 같이, 사용자 입력에 기초하여 기능이 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. And, as shown in FIG. 8B , the
가령, 카메라 어플리케이션의 경우, 프로세서(120)는 카메라 어플리케이션을 실행하여 촬영을 위한 입력 UI가 표시된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. For example, in the case of a camera application, the
이때, 프로세서(120)는 기능에 포함된 서브 기능과 관련된 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. 가령, 프로세서(120)는 서브 기능의 표시와 관련된 메뉴를 표시하기 위한 메뉴(820)가 선택되면, 도 8c와 같이 서브 기능과 관련된 복수의 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. In this case, the
이때, 도 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
그리고, 프로세서(120)는 도 8d에 도시된 바와 같이, 설정된 서브 기능을 실행하는 사용자 입력이 수신되면, 설정된 서브 기능을 실행할 수 있다. And, as shown in FIG. 8D , when a user input for executing a set sub-function is received, the
가령, 도 8c에서 서브 기능 '슈퍼 슬로우 모션 촬영'이 선택된 경우, 프로세서(120)는 '슈퍼 슬로우 모션 촬영'을 서브 기능으로 설정하고, 서브 기능을 실행하고자 하는 사용자 입력이 수신되면, '슈퍼 슬로우 모션 촬영'으로 이미지를 촬영할 수 있다. For example, when the sub function 'super slow motion shooting' is selected in FIG. 8C , the
한편, 프로세서(120)는 도 8a 내지 도 8d까지의 일련의 과정에 대한 로그 데이터를 생성할 수 있다. 가령, 카메라 어플리케이션에 대응하는 아이콘의 선택, 메뉴(820)의 선택, 서브 기능에 대응되는 아이콘(830)의 선택, 서브 기능을 실행하기 위한 사용자 입력의 수신 및 서브 기능의 실행과 관련된 로그 데이터를 생성할 수 있다. Meanwhile, the
그리고, 프로세서(120)는 상기 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(111)을 이용하여 기능 및 서브 기능을 수행하기 위한 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 변경할 수 있다. And, as described above with reference to FIGS. 2 and 3 , the
프로세서(120)는 음성 명령어를 가이드할 수 있다. The
구체적으로, 프로세서(120)는 검색된 음성 명령어 또는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)(840)를 표시하도록 디스플레이(130)를 제어할 수 있다. Specifically, the
한편, 다른 일 실시 예에 따라, 프로세서(120)는 사용자의 이용 패턴을 확인하고 확인된 이용 패턴에 대응되는 기능 및 서브 기능을 설정하여, 설정된 기능 및 서브 기능과 관련된 음성 명령어를 가이드 할 수도 있다. Meanwhile, according to another exemplary embodiment, the
가령, 도 8a와 같이 복수의 아이콘 중 하나가 선택되면, 프로세서(120)는 메모리(110)에 저장된 로그 데이터(111)를 기초로, 선택된 아이콘에 포함된 서브 기능을 사용한 사용자의 사용 패턴을 확인할 수 있다. For example, when one of the plurality of icons is selected as shown in FIG. 8A , the
프로세서(120)는 사용자의 사용 패턴 정보를 기초로, 특정 조건을 만족하는 서브 기능을 식별할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 통하여 확인된 사용 패턴 정보를 기초로, 사용자가 자주 사용하지만 음성 명령어를 이용하여 사용하지 않은 서브 기능 또는 사용자가 사용하지 않은 서브 기능과 같은 조건은 만족하는 서브 기능을 식별할 수 있다. The
그리고, 프로세서(120)는 도 8e와 같이 식별된 서브 기능에 대한 음성 명령어를 검색하고, 검색된 음성 명령어에 대응하는 텍스트를 포함하는 UI(840)를 표시하도록 디스플레이(130)를 제어할 수 있다. In addition, the
즉, 프로세서(120)는 사용자가 서브 기능을 설정하기 이전에, 로그 데이터(111)에 포함된 사용자의 사용 패턴 정보를 이용하여 복수의 서브 기능 중 하나를 설정할 수 있다. That is, before the user sets the sub-function, the
그리고, 프로세서(120)는 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 설정된 서브 기능에 대응하는 음성 명령어를 검색하여 사용자에게 제공할 수 있다.Then, as described above in FIGS. 2 and 3 , the
도 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
그리고, 도 9a에 도시된 바와 같이, 프로세서(120)는 디스플레이(130)에 표시된 UI(840)를 선택하는 사용자 입력을 수신할 수 있다. And, as shown in FIG. 9A , the
일 실시 예에 따라, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 포함하는 음성 메시지를 출력하여 사용자에게 음성 명령어를 가이드 할 수 있다. According to an embodiment, upon receiving a user input for selecting the
가령, 도 9b에 도시된 바와 같이, 프로세서(120)는 음성 명령어에 대응하는 텍스트 “슈퍼슬로우 모션으로 촬영”을 포함하는 UI(840)를 선택하는 사용자 입력을 수신하면, “하이 빅스비, 슈퍼슬로우모션으로 촬영이라고 말해보세요”와 같은 음성 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다. For example, as shown in FIG. 9B , when the
한편, 또 다른 일 실시 예에 따르면, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 인식하는 어플리케이션을 실행하여 사용자에게 음성 명령어를 가이드할 수 있다. Meanwhile, according to another exemplary embodiment, upon receiving a user input for selecting the
구체적으로, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 가상 비서 어플리케이션을 실행하고, 가상 비서가 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. Specifically, upon receiving a user input for selecting the
이때, 프로세서(130)는 음성 명령어에 대응하는 텍스트를 표시하여 사용자에게 음성 명령어를 가이드할 수 있다. In this case, the
또한, 사용자가 음성 명령어를 발화하는 경우, 프로세서(130)는 음성 명령어에 대응하는 기능 또는 서브 기능을 실행할 수 있다. Also, when the user utters a voice command, the
도 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
생성된 로그 데이터에서 설정된 기능과 관련된 로그 데이터를, 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출할 수 있다(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
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(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차 추출된 로그 데이터에서 상기 음성 명령어로 이용 가능한 서브 기능과 관련된 로그 데이터를 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.
상기 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차 추출하는 단계는,
상기 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;
상기 유사도를 확인하는 단계는,
상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는 단계;를 포함하는, 제어 방법.
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; .
상기 검색된 음성 명령어를 변경하는 단계는,
상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계;를 포함하는, 제어 방법.
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.
상기 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.
상기 가이드 하는 단계는,
상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 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.
상기 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.
상기 가이드하는 단계는,
상기 변경된 음성 명령어를 포함하는 음성 메시지를 출력하는 단계;를 포함하는, 제어 방법.
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.
상기 프로세서는,
상기 로그 데이터에서 상기 기능과 관련된 로그 데이터를 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.
상기 프로세서는,
상기 로그 데이터에서 상기 설정된 기능의 실행 시작을 나타내는 로그 데이터와 상기 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 상기 기능과 관련된 로그 데이터 영역을 확인하고,
상기 확인된 로그 데이터 영역을 이용하여 상기 로그 데이터에서 상기 설정된 기능과 관련된 로그 데이터를 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.
상기 데이터 모델은 상기 음성 명령어로 이용 가능한 서브 기능에 대한 로그 정보를 포함하고,
상기 프로세서는,
상기 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.
상기 프로세서는,
상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는, 전자 장치.
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.
상기 프로세서는,
상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는, 전자 장치.
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.
상기 프로세서는,
상기 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 상기 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 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.
디스플레이;를 더 포함하고,
상기 프로세서는,
상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 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.
상기 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.
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)
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)
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 |
-
2020
- 2020-10-12 KR KR1020200131456A patent/KR20220048374A/en active Search and Examination
-
2021
- 2021-08-31 WO PCT/KR2021/011659 patent/WO2022080659A1/en active Application Filing
Cited By (2)
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 |