KR20220048374A - 전자 장치 및 이의 제어 방법 - Google Patents

전자 장치 및 이의 제어 방법 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
English (en)
Inventor
이동섭
형지원
김효묵
양도준
조근석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200131456A priority Critical patent/KR20220048374A/ko
Priority to PCT/KR2021/011659 priority patent/WO2022080659A1/ko
Publication of KR20220048374A publication Critical patent/KR20220048374A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/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)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

전자 장치의 제어 방법이 개시된다. 본 개시에 따른 제어 방법은, 전자 장치에서 수행된 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계, 추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계, 서브 기능에 기초하여 검색된 음성 명령어를 변경하는 단계 및 변경된 음성 명령어를 가이드하는 단계를 포함한다.

Description

전자 장치 및 이의 제어 방법 { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 구체적으로는 사용자에게 음성 명령어를 가이드하는 전자 장치 및 이의 제어 방법에 관한 것이다.
인공지능 기술의 발달로 가상 비서(AI assistant 또는 Virtual assistant) 관련 기술이 증가하고 있다. 가상 비서는 사용자가 요구하는 작업을 처리하고 사용자에게 특화된 서비스를 제공하는 소프트웨어 에이전트를 의미한다.
특히, 음성 인식 기술이 발달하면서 가상 비서에 음성 인식 기술이 결합되어, 사용자의 음성 명령에 따라 사용자가 원하는 작업 또는 서비스를 수행하는 전자 장치가 점차 보편화되고 있다.
그러나, 전자 장치에 포함된 복수의 기능에 대한 음성 명령어가 다양하여 사용자가 모든 음성 명령어를 미리 알고 있기 어려우며, 새로운 기능에 대한 음성 명령어가 생성될 경우 사용자는 새로운 음성 명령어를 쉽게 알기 어렵다는 점에서, 전자 장치에서 사용 가능한 음성 명렁어가 제대로 사용되지 못하는 경우가 많다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 본 개시의 목적은 전자 장치에서 사용가능한 음성 명령어를 안내하는 전자 장치 및 이의 제어 방법을 제공함에 있다.
이에 따라, 전자 장치에 기저장된 음성 명령어의 활용이 증대될 수 있으며, 사용자는 음성 명령어를 이용하여 전자 장치를 좀 더 편리하게 사용할 수 있게 된다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계, 상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계, 상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계 및 상기 변경된 음성 명령어를 가이드하는 단계를 포함한다.
본 개시의 일 실시 예에 따른 전자 장치는, 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터 및 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델이 저장된 메모리 및 상기 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 상기 데이터 모델을 이용하여 추출하고, 상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하고, 상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하고, 상기 변경된 음성 명령어를 가이드하는, 프로세서를 포함한다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도,
도 4는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도,
도 5는 본 개시의 일 실시 예에 따라 서버 또는 전자 장치에 포함되는 로그 분석 시스템을 설명하기 위한 도면,
도 6a는 로그 분석 시스템에 포함된 태그 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6b는 로그 분석 시스템에 포함된 태그 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6c는 로그 분석 시스템에 포함된 메시지 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 6d는 로그 분석 시스템에 포함된 메시지 기반 로그 삭제 모듈을 설명하기 위한 도면,
도 7은 본 개시의 일 실시 예에 따른 서버의 동작을 설명하기 위한 흐름도,
도 8a는 본 개시의 일 실시 예에 따라 기능을 선택하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8b는 본 개시의 일 실시 예에 따라 기능에 포함된 서브 기능을 탐색하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8c는 본 개시의 일 실시 예에 따라 서브 기능을 선택하는 사용자 입력을 수신한 전자 장치를 설명하기 위한 도면,
도 8d는 본 개시의 일 실시 예에 따라 사용자의 입력에 따른 기능 및 서브 기능을 실행하는 전자 장치를 설명하기 위한 도면,
도 8e는 본 개시의 일 실시 예에 따라 실행된 기능 및 서브 기능에 대한 음성 명령어를 가이드하기 위한 UI를 표시하는 전자 장치를 설명하기 위한 도면,
도 9a는 본 개시의 일 실시 예에 따라 UI를 선택하는 사용자 입력을 수신하는 전자 장치를 설명하기 위한 도면,
도 9b는 본 개시의 일 실시 예에 따라 음성 명령어를 출력하는 전자 장치를 설명하기 위한 도면,
도 9c는 본 개시의 일 실시 예에 따라 음성 명령어를 수신하기 위한 어플리케이션을 실행하는 전자 장치를 설명하기 위한 도면, 및
도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
본 문서에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
한편, 본 개시에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하에서는 도면을 참조하여 본 개시에 대해 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 본 개시에 따른 시스템은 전자 장치(100) 및 서버(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) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치(100)는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 가상 비서(AI assistant, virtual assistant) 기능을 수행할 수 있다. 전자 장치(100)는 특정 동작 서비스를 요청하는 사용자 명령을 수신하고, 사용자가 요청하는 동작 또는 서비스를 사용자에게 제공할 수 있다. 이때, 전자 장치(100)는 특정 동작 또는 서비스를 요청하는 사용자 명령을 터치 스크린 또는 버튼과 같은 입력 인터페이스를 통하여 수신할 수 있다. 뿐만 아니라, 전자 장치(100)는 마이크를 통하여 사용자 음성의 형태로 사용자 명령을 수신할 수 있다. 즉, 전자 장치(100)는 사용자로부터 음성 명령어를 수신하여 음성 명령어에 대응하는 특정 동작 또는 서비스를 수행할 수 있다.
한편, 전자 장치(100)는 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 사용자에게 제공할 수도 있다. 구체적으로, 전자 장치(100)는 사용자 명령을 터치 스크린과 같은 입력 인터페이스를 통하여 수신하고 수신된 사용자 명령에 대응하는 음성 명령어가 존재하는 경우, 사용자 명령에 대응하는 음성 명령어에 관한 정보를 사용자에게 제공할 수 있다.
가령, 전자 장치(100)가 블루투스 기능을 on 하여 스피커(미도시)와 연결하는 사용자 명령을 터치 스크린을 통하여 수신하였고, 블루투스 연결에 대한 음성 명령어가 존재하는 경우, '블루투스로 스피커와 연결해줘'와 같은 음성 명령어를 사용자에게 제공할 수 있다.
이때, 전자 장치(100)는 입력 인터페이스를 통하여 입력된 사용자 명령에 대응하는 음성 명령어를 포함하는 UI를 표시하거나, 음성 명령어에 해당하는 발화를 출력하여 사용자에게 음성 명령어에 대한 정보를 제공할 수 있다.
이를 위하여, 전자 장치(100)에는 인식 가능한 음성 명령어에 관한 정보가 기저장되어 있을 수 있다.
한편, 전자 장치(100)는 서버(200)로부터 전자 장치(100)에서 인식 가능한 음성 명령어에 관한 정보를 수신할 수 있다.
서버(200)는 전자 장치(100)와 연결되어 전자 장치(100)로부터 다양한 정보를 수신하거나, 전자 장치(100)에 다양한 정보를 전송할 수 있다. 구체적으로, 서버(200)는 전자 장치(100)에서 인식 가능한 음성 명령어에 대한 로그 데이터를 분석하고 분석 결과를 전자 장치(100)에 전송할 수 있다. 그리고, 서버(200)는 로그 데이터를 분석하기 위하여 전자 장치(100)의 기능이 실행될 때 생성되는 로그 데이터를 전자 장치(100)로부터 수신할 수 있다.
한편, 서버(200)는 적어도 하나의 인공지능 모델을 포함하는 로그 분석 시스템을 포함할 수 있다. 여기에서, 로그 분석 시스템은 전자 장치(100)의 기능 및 서브 기능에 대한 음성 명령어를 실행하고 실행된 음성 명령어에 대한 로그 데이터를 분석하도록 학습된 시스템일 수 있다. 서버(200)는 로그 분석 시스템을 이용하여 전자 장치(100)의 기능 중 음성 명령어가 존재하는 기능에 대한 로그 데이터를 포함하는 데이터 모델을 생성할 수 있으며, 생성된 데이터 모델을 전자 장치(100)에 전송할 수 있다.
전자 장치(100)는 서버(200)로부터 수신한 데이터 모델을 이용하여 전자 장치(100)에서 실행된 기능에 대한 음성 명령어가 존재하는지 식별할 수 있으며, 음성 명령어가 존재하는 것으로 식별된 경우, 해당 기능에 대한 음성 명령어를 사용자에게 가이드할 수 있다.
한편, 도 1에서는 서버(200)가 로그 분석 시스템을 포함하고, 학습된 로그 분석 시스템이 생성한 데이터 모델을 전자 장치(100)에 전송하는 것으로 도시하였으나, 일 실시 예에 따라서는 전자 장치(100)에 로그 분석 시스템이 포함될 수도 있다. 이 경우, 전자 장치(100)는 전자 장치(100)에 포함된 로그 분석 시스템을 학습시켜 음성 명령어가 존재하는 기능에 대한 로그 데이터를 분석하고 분석 결과를 포함하는 데이터 모델을 저장할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
메모리(110)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 적어도 하나의 인스트럭션 또는 데이터를 저장하기 위한 구성이다. 인스트럭션은 프로그래밍 작성 언어에서 프로세서(120)가 직접 실행할 수 있는 하나의 동작 문장(action statement)을 의미하며, 프로그램의 실행 또는 동작에 대한 최소 단위이다.
프로세서(120)는 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 후술할 다양한 실시 예들에 따른 동작을 수행할 수 있다.
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
메모리(110)에는 전자 장치(100)의 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터(Log Data)(111)가 저장될 수 있다.
본 개시에서, 기능은 전자 장치(100)에서 실행 가능한 동작을 의미하며, 기능은 시스템 상에서 실행되는 작업(가령, 네트워크 연결, 볼륨 조절, 화면 조절 등) 또는 어플리케이션(가령, 카메라 어플리케이션, 캘린더 어플리케이션 등)의 동작에 대응한다. 그리고, 하나의 기능은 복수의 서브 기능을 포함할 수 있다. 본 개시에서 서브 기능은 하나의 기능에 포함되어 기능과 함께 실행될 수 있는 동작을 의미한다. 가령, 카메라 어플리케이션의 '이미지 촬영' 기능은 '100배 줌으로 이미지 촬영', '슬로우 모션으로 이미지 촬영', '플래시를 켜고 이미지 촬영'과 같은 복수의 서브 기능을 포함할 수 있다. 이때, 하나의 기능에 결합되는 서브 기능은 하나 이상일 수 있다.
또한, 본 개시에서, 로그 데이터(111)는 전자 장치(100)가 동작하는 동안 발생되는 이벤트에 관한 정보를 포함하는 데이터이다. 가령, 로그 데이터(111)는 전자 장치(100)의 기능 또는 서브 기능이 실행되면서 발생되는 로그 데이터에 관한 정보를 포함할 수 있다. 가령, 전자 장치(100)에서 하나의 기능 및 서브 기능이 실행되면, 메모리(110)에는 실행되는 기능 및 서브 기능에 관한 로그 데이터 이외에도, 기능 및 서브 기능이 실행되는 중에 발생되는 시스템 또는 다른 기능의 이벤트와 관련된 로그 데이터가 저장될 수 있다.
한편, 메모리(110)에는 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델 (Data Model)(112)이 저장될 수 있다. 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능에 관한 정보를 포함할 수 있다. 또한, 서브 기능은 기능에 대한 하위 개념이라는 점에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 기능에 관한 정보를 포함할 수도 있다.
이때, 데이터 모델(112)에 포함된 음성 명령어로 이용 가능한 기능 또는 서브 기능에 관한 정보는 로그 데이터를 포함할 수 있다. 구체적으로, 데이터 모델(112)은 도 5의 로그 분석 시스템(400)에 의해 생성된 것으로 음성 명령어가 존재하는 기능 또는 서브 기능에 관한 로그 데이터를 포함할 수 있다.
데이터 모델(112)은 서버(200)로부터 전송된 것일 수 있다. 구체적으로, 서버(200)에 저장된 도 5의 로그 분석 시스템(500)을 통하여 데이터 모델(112)이 생성되면, 서버(200)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다.
한편, 일 실시 예에 따라, 도 5의 로그 분석 시스템(500)이 메모리(110)에 저장될 수도 있다. 이 경우, 데이터 모델(112)은 메모리(110)에 저장된 로그 분석 시스템(500)에 의하여 생성되고, 생성된 데이터 모델(112)이 메모리(110)에 저장될 수 있다.
한편, 메모리(110)에는 로그 필터링 모듈(113)이 저장되어 있을 수 있다.
로그 필터링 모듈(Log Filtering Module)(113)은 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 설정된 기능은, 마이크(미도시)를 통한 음성 명령어 입력이 아닌, 입력 인터페이스(가령, 터치 스크린, 버튼 등)에 입력된 사용자의 입력에 기초하여 입력된 기능을 포함할 수 있다. 또는 일 실시 예에 따라, 설정된 기능은 사용자의 전자 장치 사용 패턴에 기초하여 설정된 기능을 포함할 수 있다. 가령, 사용자가 음성 명령어가 아닌 입력 인터페이스를 통하여 입력한 사용자 명령 중 처음으로 입력된 기능에 대응하는 명령 또는 기설정된 횟수 이상 입력된 기능에 대응하는 명령에 해당하는 기능이 설정된 기능에 해당할 수 있다.
로그 필터링 모듈(113)은 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.
구체적으로, 로그 필터링 모듈(113)은 데이터 모델(112)을 이용하여 로그 데이터 중 설정된 기능과 관련이 없는 로그 데이터를 필터링하여 설정된 기능과 관련된 로그 데이터를 1차적으로 추출할 수 있다.
그리고, 로그 필터링 모듈(113)은 로그 유사도 분석 모듈(Log Similarity Analysis Module)(114)을 이용하여 1차적으로 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 비교하여 설정된 기능 및 서브 기능을 포함하는 로그 데이터를 2차적으로 추출할 수 있다. 이때, 로그 유사도 분석 모듈(114)은 데이터 모델(112)에 포함된 로그 정보 및 로그 데이터(111)에 포함된 로그 정보 각각을 벡터 데이터로 변환하고, 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다.
한편, 프로세서(120)는 로그 필터링 모듈(113)을 로딩하여 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하는 바, 로그 필터링 모듈(130)의 동작에 관한 구체적인 설명은 도 3에서 보다 구체적으로 설명하도록 한다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 예를 들어, 프로세서(120)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
이를 위해, 프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU (Central Processing Unit) 또는 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) 형태로 구현될 수도 있다.
프로세서(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)와 별개의 구성 요소로 구현될 수 있다.
프로세서(120)는 메모리(110)에 저장된 로그 필터링 모듈(113)을 로딩하고, 로그 필터링 모듈(113)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다.
프로세서(120) 데이터 모델(112)을 이용하여 로그 데이터(111)에 포함된 복수의 로그 데이터 중 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출할 수 있다. 여기에서, 데이터 모델(112)은 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 것으로, 음성 명령어로 이용 가능한 기능 및 서브 기능의 로그 데이터를 포함할 수 있다.
프로세서(120)는 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차로 추출하고, 1차로 추출된 로그 데이터에서 서브 기능과 관련된 로그 데이터를 2차로 추출할 수 있다.
그리고, 프로세서(120)는 추출된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 음성 명령어를 검색할 수 있다. 구체적으로, 프로세서(120)는 추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어는 가변 파라미터를 포함할 수 있으며, 가변 파라미터에 입력되는 값에 따라 음성 명령어의 내용이 다양해질 수 있다. 가령, 음성 명령어는 'OO초 단위로 이미지 촬영해줘', 'OO와 블루투스 연결해줘'와 같이 가변 파라미터(가령, 'OO초', 'OO 장치')를 포함할 수 있고, 가변 파라미터에 입력되는 값에 따라 음성 명령어가 변경될 수 있다.
프로세서(120)는 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다. 가령, 설정된 서브 기능에 가변 파라미터의 값에 해당하는 요소(element)가 포함된 경우, 프로세서(120)는 음성 명령어의 가변 파라미터에 해당 요소를 입력하여 음성 명령어를 변경할 수 있다. 예를 들어, 설정된 기능 및 서브 기능이 '2초 간격으로 이미지를 촬영'이고, 검색된 음성 명령어가 'OO초 간격으로 이미지를 촬영해줘', 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 '2초 간격으로 이미지를 촬영해줘'와 같이 변경할 수 있다.
그리고, 프로세서(120)는 변경된 음성 명령어를 가이드할 수 있다. 구체적으로, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI를 표시하도록 디스플레이를 제어하여 변경된 음성 명령어를 가이드할 수 있다. 또는, 프로세서(120)는 변경된 음성 명령어를 출력하도록 스피커(미도시)를 제어하여 음성 명령어를 가이드할 수도 있다. 이에 대해서는 도 8a 내지 도 8e 에서 보다 구체적으로 설명하기로 한다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
프로세서(120)는 복수의 기능 및 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차적으로 추출할 수 있다(S310).
구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터 영역을 확인하고, 확인된 로그 데이터 영역을 이용하여 로그 데이터(111)에서 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다.
이때, 데이터 모델(112)에는 기능별로 기능의 실행 시작을 나타내는 로그 정보 및 기능의 실행 완료를 나타내는 로그 정보가 포함될 수 있다.
프로세서(120)는 데이터 모델(112)에 포함된 기능에 대한 로그 정보를 기초로, 로그 데이터(111)에서 설정된 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다. 예를 들어, 프로세서(120)는 데이터 모델(112)에 카메라 어플리케이션의 시작 및 촬영 종료에 해당하는 로그 정보를 기초로, 로그 데이터(111)에서 카메라 기능의 실행 시작을 나타내는 로그 데이터 및 실행 완료를 나타내는 로그 데이터를 확인할 수 있다.
한편, 다른 실시 예에서 프로세서(120)는 데이터 모델(112)을 이용하여 기능의 실행 완료를 나타내는 로그 데이터만을 획득하고, 획득된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 마지막으로 설정할 수 있다. 그리고, 기설정된 로그 데이터(가령, 특정 시점의 로그 데이터)를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정하여 설정된 기능과 관련된 로그 데이터 영역을 확인할 수 있다. 가령, 프로세서(120)는 가장 마지막으로 확인된 로그 데이터 영역의 다음 로그 데이터 또는 특정 날짜나 시간에 발생된 로그 데이터를 설정된 기능과 관련된 로그 데이터 영역의 시작 지점으로 설정할 수 있다.
프로세서(120)는 확인된 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터를 삭제하여 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다. 여기에서, 설정된 기능과 관련이 없는 로그 데이터는 전자 장치(100)의 시스템과 관련된 로그 데이터 및 설정된 기능과 다른 기능(가령, 다른 어플리케이션 또는 다른 도메인의 기능)과 관련된 로그 데이터를 나타낸다.
프로세서(120)는 복수의 기능에 대한 로그 정보를 포함하는 데이터 모델(112)을 기초로 설정된 기능과 관련이 있는 로그 데이터 및 설정된 기능과 관련이 없는 로그 데이터를 식별할 수 있다. 그리고 프로세서(120)는 로그 데이터 영역에서 설정된 기능과 관련이 없는 로그 데이터 영역을 삭제하여, 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다.
한편, 본 개시의 또 다른 일 실시 예에 따라, 프로세서(120)는 로그 데이터(111)를 기초로 전자 장치(100)를 사용하는 사용자의 이용 패턴을 확인할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 기초로 사용자가 가장 많이 사용하는 기능 및 서브 기능, 사용자가 사용하지 않은 기능 및 서브 기능, 시간대 별로 사용자가 사용하는 기능 및 서브 기능과 같은 사용자의 이용 패턴을 확인할 수 있다.
그리고, 프로세서(120)는 데이터 모델(112)을 이용하여 로그 데이터(111)에서 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출할 수 있다.
프로세서(120)는 1차 추출된 로그 데이터를 기초로 설정된 서브 기능과 관련된 로그 데이터를 2차 추출할 수 있다.
프로세서(120)는 1차 추출된 로그 데이터에 포함된 로그 정보와 데이터 모델(112)에 포함된 로그 정보 간의 유사도를 판단할 수 있다(S320).
구체적으로, 프로세서(120)는 로그 유사도 분석 모듈(114)을 이용하여 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와 1차 추출된 로그 데이터에 포함된 로그 정보 간의 유사도를 확인할 수 있다.
프로세서(120)는 1차 추출된 로그 데이터의 로그 정보 및 데이터 모델(112)의 로그 정보 각각을 벡터 데이터로 변환하고, 변환된 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다.
구체적으로, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터가 이루는 각도를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 거리를 기초로 유사도를 확인할 수 있다. 또는, 프로세서(120)는 데이터 모델(112)에 대한 벡터 데이터 및 1차 추출된 로그 데이터에 대한 벡터 데이터 사이의 각도, 거리 및 두 벡터 데이터의 교차 지점의 평균 또는 편차 수치를 결합하여 구조 상의 유사도를 확인할 수 있다.
프로세서(120)는 1차 추출된 로그 데이터에서 데이터 모델(112)에 포함된 서브 기능에 대한 로그 정보와의 유사도가 기설정된 값 이상인 로그 정보가 존재하는지 확인할 수 있다(S330)
기설정된 값 이상인 로그 정보가 존재하는 경우(S330-Y), 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터에서 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다(S340). 가령, 프로세서(120)는 확인된 유사도에 기초하여 1차 추출된 로그 데이터 중 유사도가 가장 높은 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다. 이때, 추출된 로그 데이터에는 기능 및 서브 기능에 관한 정보가 포함되어 있을 수 있다.
프로세서(120)는 추출된 로그 데이터를 기초로 음성 명령어를 검색할 수 있다(S350).
구체적으로, 프로세서(120)는 데이터 모델(112)을 이용하여 2차 추출된 로그 데이터에 대응하는 기능 및 서브 기능을 확인하고, 확인된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다. 이를 위하여, 메모리(110)에는 각각의 기능 및 서브 기능에 대응하는 음성 명령어가 기저장되어 있을 수 있다. 프로세서(120)는 메모리(110)에 저장된 음성 명령어를 기초로 2차 추출된 로그 데이터에 포함된 기능 및 서브 기능 각각에 대응되는 음성 명령어를 검색할 수 있다.
그리고, 프로세서(120)는 서브 기능에 기초하여 음성 명령어를 변경할 수 있다(S360).
구체적으로, 프로세서(120)는 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 가변 파라미터에 특정 값을 입력하여 음성 명령어를 변경할 수 있다. 이때, 가변 파라미터에 입력되는 특정 값은 설정된 서브 기능에 기초하여 결정될 수 있다. 가령, 입력 인터페이스를 통하여 입력된 사용자의 입력에 따라 실행된 서브 기능 또는 사용자의 사용 패턴에 의해 설정된 서브 기능에 기초하여 가변 파라미터에 입력되는 특정 값이 결정될 수 있다. 예를 들어, 사용자가 터치 스크린을 통하여 '3초 간격으로 이미지 촬영' 기능을 실행한 경우, '3초'가 가변 파라미터에 입력되는 값이 될 수 있다.
그리고, 프로세서(120)는 변경된 음성 명령어를 가이드 할 수 있다(S370).
구체적으로, 프로세서(120)는 변경된 음성 명령어를 포함하는 안내 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다.
또는, 프로세서(120)는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하도록 디스플레이를 제어할 수 있다.
이때, 디스플레이에 표시된 UI를 선택하는 사용자의 입력을 수신하면, 프로세서(120)는 신규 음성 명령어를 인식하는 어플리케이션을 실행할 수 있다. 가령, 프로세서(120)는 가상 비서 어플리케이션을 실행하고, 디스플레이에 가상 비서 어플리케이션의 화면 및 변경된 음성 명령어에 대응하는 텍스트를 표시하도록 디스플레이를 제어할 수 있다. 이와 관련하여 구체적인 설명은 도 9a 내지 도 9e에서 후술하도록 한다.
도 4는 본 개시의 일 실시 예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도 4에 도시된 바와 같이, 서버(200)는 메모리(210) 및 프로세서(220)를 포함한다. 메모리(210) 및 프로세서(220)와 관련하여, 도 2의 전자 장치(100)의 메모리(110) 및 프로세서(120)와 중복되는 내용에 대해서는 생략하도록 한다.
메모리(210)에는 도 5의 로그 분석 시스템(500)이 저장될 수 있다. 로그 분석 시스템(400)은 전자 장치(100)에 포함된 기능 또는 서브 기능에 대한 로그 데이터를 분석하기 위한 시스템이다.
도 5의 로그 분석 시스템(500) 또는 로그 분석 시스템(500)에 포함된 각 모듈은 인공지능 모델로 구현될 수 있다. 이 경우, 로그 분석 시스템(500)은 로그 데이터에 대한 학습을 통하여 각 기능에 대한 로그 데이터를 분석할 수 있다.
이와 관련하여, 도 5를 참조하면, 로그 분석 시스템(500)은 음성 명령어 데이터 베이스(510), 발화 실행 모듈(Utterance Executor Module) (520), 로그 수집 모듈(Log Collection Module) (530), 로그 분석 모듈 (Log Analyzer Module) (540)을 포함할 수 있다.
음성 명령어 데이터 베이스(510)는 전자 장치(100)에서 사용 가능한 음성 명령어가 기저장되어 있을 수 있다. 음성 명령어 데이터 베이스(510)에는 기능에 대한 음성 명령어 집합이 저장되어 있을 수 있다. 이때, 하나의 기능은 복수의 서브 기능을 포함한다는 점에서, 음성 명령어 데이터 베이스(510)에는 복수의 서브 기능 각각에 대한 음성 명령어가 저장되어 있을 수 있다. 또한, 음성 명령어 데이터 베이스(510)에는 전자 장치(100)의 기능 또는 서브 기능 각각에 대한 음성 명령어가 복수 개 저장되어 있을 수 있으며, 각각의 기능 또는 서브 기능에 대한 복수의 음성 명령어 중 대표 음성 명령어에 대한 정보가 저장되어 있을 수 있다.
음성 명령어 데이터 베이스(510)에 포함된 음성 명령어는 전자 장치(100)에서 사용 가능한 음성 명령어가 추가되거나 삭제됨에 따라 업데이트될 수 있다.
또한, 실시 예에 따라 음성 명령어 데이터 베이스(510)에는 전자 장치(100) 이외에도 다른 전자 장치(미도시)에서 사용 가능한 음성 명령어가 저장되어 있을 수 있다.
발화 실행 모듈(520)은 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어가 입력되었을 때 어떠한 기능 또는 서브 기능이 실행되는지 확인할 수 있다.
발화 실행 모듈(520)은 대표 음성 명령어에 대한 정보를 기초로 대표 음성 명령어를 식별할 수 있다. 또는, 대표 음성 명령어에 대한 정보가 음성 명령어 데이터 베이스(510)에 저장되어 있지 않은 경우, 발화 실행 모듈(520)은 저장된 음성 명령어 중 기능 또는 서브 기능에 대하여 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다.
로그 수집 모듈(530)은 식별된 대표 음성 명령어를 입력하여, 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 이때, 수집된 로그 데이터는 하나의 태그 및 하나의 메시지와 결합된 하나의 로그 데이터의 집합일 수 있다.
한편, 로그 수집 모듈(530)이 로그 데이터를 수집하기 위해서는 충분한 로그 데이터가 메모리(210)에 기저장되어야 한다. 이를 위하여, 서버(200)는 로그 분석 시스템(500)의 학습시 별도의 외부 장치(미도시)로부터 로드 데이터를 수신할 수 있다. 또한, 서버(200)는 전자 장치(100)가 동작하면서 생성된 로그 데이터를 전자 장치(100)로부터 수신할 수도 있다.
로그 데이터에 포함된 태그는 하나의 기능에 대응되는 텍스트를 의미한다. 즉, 태그는 전자 장치(100)의 도메인 또는 어플리케이션 별로 유니크한 텍스트일 수 있다. 또한, 하나의 기능은 적어도 하나 이상의 태그를 포함할 수 있다. 가령, 카메라 어플리케이션과 관련된 기능은 서로 다른 Tag1, Tag2, …,Tagn개의 태그를 포함할 수 있다.
로그 데이터에 포함된 메시지는 기능 또는 서브 기능이 정의될 때 개발자에 의해 정의되는 텍스트를 나타낸다. 즉, 메시지는 기능 또는 서브 기능을 나타내기 위하여 임의로 입력된 텍스트이다.
한편, 로그 데이터에 포함된 태그 및 메시지는 특정 기호(가령, ':')에 의해 구분될 수 있다. 가령, 로그 데이터에서 기호 ':' 이전에는 태그가, 기호 ':' 이후에는 메시지가 기록되는 것으로 기정의될 수 있다.
한편, 로그 분석 모듈(540)은 태그 기반 로그 삭제 모듈 (Tag-Based Log Remove Module)(541) 및 메시지 기반 로그 삭제 모듈 (Message-Based Log Remover Module) (542)를 포함할 수 있다.
태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에서 로그 데이터에 포함된 태그 정보를 기초로 기능과 관련이 없는 로그 데이터를 삭제할 수 있다.
우선, 태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에 포함된 태그 정보 중 기설정된 비율(가령, 수집된 전체 로그 데이터의 90%) 이상 기록된 태그 정보를 식별할 수 있다. 그리고, 태그 기반 로그 삭제 모듈(541)은 수집된 로그 데이터에서 식별된 태그 정보를 포함하지 않는 로그 데이터를 삭제할 수 있다.
구체적으로, 태그 정보는 기능과 관련된다는 점에서, 수집된 로그 데이터에서 기설정된 비율 이상 기록되지 않은 태그 정보는 기능과 관련하여 의미 있는 정보라고 볼 수 없다. 따라서, 태그 기반 로그 삭제 모듈(441)은 수집된 로그 데이터에 포함된 로그 데이터 중 기설정된 비율 이상의 태그 정보를 포함하는 로그 데이터만을 남기고, 나머지 로그 데이터를 삭제할 수 있다.
이와 관련하여, 도 6a를 참조하면, 하나의 기능이 n개의 서브 기능(S1, S2,…, Sn)을 포함한다고 가정하자. 이 경우, 하나의 서브 기능은 복수의 로그 데이터를 포함할 수 있다. 가령, 서브 기능 S1은 Tag1, Tag3, Tag4,…,Tagm을 포함하는 복수의 로그 데이터를, S2는 Tag1, Tag4, Tag6,…,Tagm-1을 포함하는 복수의 로그 데이터를 포함할 수 있다. 즉, 하나의 기능과 관련하여 적어도 하나의 서브 기능이 포함될 수 있으며, 서브 기능 각각에 대하여 적어도 하나의 태그를 포함하는 로그 데이터가 포함될 수 있다.
태그 기반 로그 삭제 모듈(541)은 복수의 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 포함된 태그 정보를 식별하고, 식별된 태그 정보를 포함하는 로그 데이터를 제외한 나머지 로그 데이터를 삭제할 수 있다.
가령, 태그 기반 로그 삭제 모듈(541)은 n개의 서브 기능에 대한 복수의 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 태그 Taga가 포함된 것으로 식별되면, Taga를 기능과 관련된 태그로 식별하고, Taga를 제외한 나머지 태그를 포함하는 로그 데이터를 삭제할 수 있다.
한편, 도 6a에서는 기설정된 비율 이상의 로그 데이터에 포함된 태그가 Taga 하나인 것으로 도시하였으나 반드시 하나에 한하는 것은 아니며, 전체 로그 데이터 중 기설정된 비율 이상의 로그 데이터에 포함된 태그는 복수 개일 수 있다.
한편, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보가 전체 서브 기능을 나타내기 위하여 기설정된 비율(가령, n개의 서브 기능의 50%) 이상의 서로 다른 메시지를 가지는지 확인할 수 있다. 즉, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보와 메시지의 조합이 전체 서브 기능의 기설정된 비율(가령 50%) 이상을 나타낼 수 있는지 확인할 수 있다.
만약 태그 정보가 기설정된 비율 이하의 서로 다른 메시지를 가지는 경우, 태그 기반 로그 삭제 모듈(541)은 식별된 태그 정보가 전체 서브 기능을 나타내는데 불충분하다고 보아, 수집된 로그 데이터에서 태그 정보를 포함하는 로그 데이터를 삭제할 수 있다.
가령, 도 6b를 참조하면, 태그 기반 로그 삭제 모듈(541)은 도 6a에서 식별된 태그 Taga를 포함하는 로그 데이터에 포함된 메시지가 전체 n개의 서브 기능의 기설정된 비율 이상인지 확인할 수 있다.
태그 기반 로그 삭제 모듈(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를 삭제할 수 있다.
한편, 메시지 기반 로그 삭제 모듈(542)은 태그 기반 삭제 모듈(541)을 통하여 남게 된 로그 데이터를 이용하여 기능과 관련이 없는 로그 데이터를 삭제할 수 있다.
구체적으로, 메시지 기반 로그 삭제 모듈(542)은 태그 기반 삭제 모듈(541) 실행 후 남은 로그 데이터에 대응하는 서브 기능을 기설정된 횟수(가령, 10번) 실행할 수 있다.
가령, 도 6c를 참조하면, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터에 대응하는 서브 기능 S1을 기설정된 횟수 실행할 수 있다.
그리고, 메시지 기반 로그 삭제 모듈(542)은 기능을 기설정된 횟수 실행한 결과 동일한 결과의 로그 데이터, 즉, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 반복적으로 출력되는지 확인할 수 있다. 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 기설정된 횟수만큼 반복적으로 출력되는 경우, 메시지 기반 로그 삭제 모듈(542)은 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터를 삭제하지 않을 수 있다.
그러나, 태그 Tag-a 및 메시지 Msg1이 로그 데이터가 반복적으로 출력되지 않는다면, 메시지 기반 로그 삭제 모듈(542)은 메시지 Msg1를 포함하는 로그 데이터(즉, 태그 Ta 및 메시지 Ma를 포함하는 로그 데이터)를 삭제할 수 있다.
한편, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터가 삭제되는 경우, 태그 기반 로그 삭제 모듈(541)은, 도 6b에서와 같이, 태그 Tag-a 가 기설정된 비율(가령, 수집된 전체 로그 데이터의 50%) 이상의 서로 다른 메시지(가령, Msg2, Msg3, …, Msgz)를 가지는지 다시 확인할 수 있다.
이 경우, 태그 Tag-a 및 메시지 Msg1이 결합된 로그 데이터의 삭제로 인하여 태그 Tag-a 가 기설정된 비율 미만의 서로 다른 메시지를 가지는 경우 태그 기반 로그 삭제 모듈(541)은 태그 Tag-a를 포함하는 로그 데이터를 삭제할 수 있다.
이에 따라, 메시지 기반 로그 삭제 모듈(542)의 실행 결과 기능을 실행하였을 때 동일한 로그 데이터를 출력하면서도, 기설정된 개수 이상의 서로 다른 메시지를 가지는 태그를 포함하는 로그 데이터만을 남길 수 있다.
한편, 메시지 기반 로그 삭제 모듈(542)은 로그 데이터에 포함된 태그의 메시지 별 임팩트(Impact)를 계산할 수 있다. 여기에서, 임팩트는 태그 및 메시지가 결합된 로그 데이터가 하나의 서브 기능과 일대일로 매칭되는 정도를 나타내는 수치이다. 태그와 결합된 복수의 메시지 중 하나의 서브 기능과 일대일로 매칭되는 메시지의 수가 많을수록 태그의 메시지 별 임팩트가 높은 것으로 나타낼 수 있다.
가령, 도 6d를 참조하면, 도 6d의 case1 과 같이, 태그 Tag-a와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터가 서브 기능 S1, S2,…, Sn에 일대일로 매칭되는 경우, 태그 Tag-a의 메시지 별 임팩트는 100%일 수 있다.
다른 일 예로, 태그 Tag-a와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터 및 태그 Tag-b와 결합된 메시지 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터가 존재한다고 가정하자.
이때, 태그 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의 메시지별 임팩트가 더 높다고 할 수 있다.
메시지 기반 로그 삭제 모듈(542)은 태그 각각에 대하여 태그의 메시지별 임팩트를 산출하고, 태그 Tag의 메시지(Msg1, Msg2, … , Msgn)별 임팩트가 기설정된 비율(가령 20%) 이하인 경우 태그 Tag 및 Msg1, Msg2, … , Msgn을 포함하는 로그 데이터를 삭제할 수 있다.
이와 같이, 로그 분석 모듈(540)은 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여, 로그 수집 모듈(530)을 통해 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 순차적으로 삭제함으로써, 최종적으로는 기능에 보다 정확하게 부합되는 로그 데이터만이 남을 수 있도록 한다.
한편, 다시 도 4를 참조하면, 프로세서(220)는 메모리(210)에 저장된 로그 분석 시스템(400)을 이용하여 음성 명령어가 존재하는 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석할 수 있다. 그리고, 서버(200)는 분석 결과를 기초로 데이터 모델을 생성할 수 있다.
이와 관련하여, 도 7은 서버(200)가 도 5의 로그 분석 시스템(500)을 이용하여 전자 장치(100)의 기능 또는 서브 기능에 따른 로그 데이터를 분석하고 데이터 모델을 생성하는 과정을 설명하기 위한 흐름도이다.
프로세서(220)는 기능 또는 서브 기능에 대한 대표 음성 명령어를 실행할 수 있다(S710).
구체적으로, 프로세서(220)는 발화 실행 모듈(520)을 로딩하여 음성 명령어 데이터 베이스(510)에서 기능 또는 서브 기능 각각에 대한 대표 음성 명령어를 식별하고, 식별된 대표 음성 명령어를 실행할 수 있다. 이때, 음성 명령어 데이터 베이스(510)에는 대표 음성 명령어에 관한 정보가 저장되어 있다. 일 예에 따라, 음성 명령어 데이터 베이스(510)에 대표 음성 명령어에 관한 정보가 저장되어 있지 않은 경우, 프로세서(220)는 발화 실행 모듈(520)을 이용하여 음성 명령어 데이터 베이스(510)에 저장된 음성 명령어 중 기설정된 횟수 이상 사용된 음성 명령어를 대표 음성 명령어로 식별할 수 있다.
그리고, 프로세서(220)는 대표 음성 명령어를 실행하여 발생된 로그 데이터를 수집할 수 있다(S720). 구체적으로, 프로세서(220)는 로그 수집 모듈(530)을 로딩하여 대표 음성 명령어가 실행된 경우 발생되는 로그 데이터를 수집할 수 있다. 상술한 바와 같이, 이때의 로그 데이터는 기능에 대응되는 태그 및 개발자에 의해 임의로 작성된 메시지가 결합된 형태일 수 있다.
이때, 대표 음성 명령어를 실행하여 발생된 로그 데이터는 복수의 로그 데이터를 포함할 수 있다.
프로세서(220)는 로그 분석 모듈(540)을 로딩하여 수집된 로그 데이터를 분석하여 기능 또는 서브 기능을 나타내는 로그 데이터 정보를 획득할 수 있다(S730).
구체적으로, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)을 이용하여 수집된 로그 데이터에서 대표 음성 명령어에 대응되는 기능을 나타내기에 불명료한 태그 및 메시지를 포함하는 로그 데이터를 삭제하고, 특정 기능에 따른 로그 정보를 포함하는 로그 데이터를 획득할 수 있다.
프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 로그 데이터에서 기설정된 비율 이상 포함된 태그를 식별하고, 식별된 태그를 포함하지 않는 로그 데이터를 삭제할 수 있다. 그리고, 프로세서(220)는 태그 기반 로그 삭제 모듈(541)을 이용하여 식별된 태그가 기설정된 개수(가령, 전체 서브 기능 개수의 기설정된 비율 이상)의 서로 다른 메시지와 결합되어 있는지 확인하고, 식별된 태그가 기설정된 개수 미만의 메시지와 결합된 경우 식별된 태그를 포함하는 로그 데이터를 삭제할 수 있다.
또한, 프로세서(220)는 메시지 기반 로그 삭제 모듈(542)을 이용하여, 기능과 관련이 없는 로그 데이터를 삭제할 수 있다.
구체적으로, 프로세서(220)를 태그 기반 로그 삭제 모듈(521)을 이용하여 로그 데이터를 삭제한 후 남게 된 로그 데이터를 기설정 횟수 실행하고, 실행 결과 동일한 태그 및 메시지가 결합된 로그 데이터가 실행된 횟수만큼 반복적으로 출력되는지 확인하여 기능과 관련이 없는 로그 데이터를 삭제할 수 있다.
또한, 프로세서(220)는 태그 기반 로그 삭제 모듈(521)을 이용하여 태그의 메시지 별 임팩트를 계산하고, 계산된 임팩트에 기초하여 로그 데이터를 삭제할 수 있다.
이와 같이, 프로세서(220)는 태그 기반 로그 삭제 모듈(541) 및 메시지 기반 로그 삭제 모듈(542)를 기초로, S720 단계에서 수집된 로그 데이터에서 기능과 관련이 없는 로그 데이터를 식별하고, 식별된 로그 데이터를 삭제함으로써, 결과적으로 기능 및 서브 기능에 정확하게 매칭되는 로그 데이터를 획득할 수 있다.
프로세서(220)는 획득한 로그 데이터를 포함하는 데이터 모델(112)을 생성(S740)할 수 있다. 이때, 프로세서(220)는 대표 음성 명령어가 존재하는 기능 또는 서브 기능과 관련된 로그 데이터를 포함하는 데이터 모델(112)을 생성할 수 있다.
그리고, 프로세서(220)는 생성된 데이터 모델(112)을 전자 장치(100)에 전송할 수 있다(S750). 서버(200)로부터 데이터 모델(112)을 수신한 전자 장치(100)는 데이터 모델(112)에 포함된 로그 데이터를 기초로 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 검색된 음성 명령어를 가이드 할 수 있다.
도 8은 본 개시의 일 실시 예에 따라 설정된 기능 및 서브 기능에 대한 음성 명령어를 가이드하는 전자 장치를 설명하기 위한 도면이다.
일 실시 예에 따라, 도 8a에 도시된 바와 같이, 프로세서(120)는 복수의 어플리케이션 또는 도메인에 대응하는 아이콘을 표시하도록 디스플레이(130)를 제어할 수 있다. 이때, 어플리케이션 또는 도메인에 대응하는 각각의 아이콘은 전자 장치(100)의 기능에 대응될 수 있으며, 각각의 기능을 적어도 하나의 서브 기능을 포함할 수 있다.
프로세서(120)는 전자 장치(100)에 포함된 기능 및 서브 기능을 실행시키는 사용자 입력을 수신할 수 있다.
프로세서(120)는 도 8a에 도시된 바와 같이, 하나의 기능(가령, 카메라 어플리케이션)을 실행시키기 위하여 디스플레이(130)에 표시된 복수의 아이콘 중 하나의 아이콘(810)을 선택하는 사용자 입력을 수신할 수 있다.
그리고, 프로세서(120)는 도 8b에 도시된 바와 같이, 사용자 입력에 기초하여 기능이 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
가령, 카메라 어플리케이션의 경우, 프로세서(120)는 카메라 어플리케이션을 실행하여 촬영을 위한 입력 UI가 표시된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
이때, 프로세서(120)는 기능에 포함된 서브 기능과 관련된 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다. 가령, 프로세서(120)는 서브 기능의 표시와 관련된 메뉴를 표시하기 위한 메뉴(820)가 선택되면, 도 8c와 같이 서브 기능과 관련된 복수의 아이콘을 포함하는 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
이때, 도 8c에 도시된 바와 같이, 서브 기능과 관련된 복수의 아이콘 중 하나(830)를 선택하는 사용자 입력이 수신되면, 프로세서(120)는 사용자 입력에 기초하여 수신된 사용자 입력에 따라 실행될 서브 기능을 설정할 수 있다.
그리고, 프로세서(120)는 도 8d에 도시된 바와 같이, 설정된 서브 기능을 실행하는 사용자 입력이 수신되면, 설정된 서브 기능을 실행할 수 있다.
가령, 도 8c에서 서브 기능 '슈퍼 슬로우 모션 촬영'이 선택된 경우, 프로세서(120)는 '슈퍼 슬로우 모션 촬영'을 서브 기능으로 설정하고, 서브 기능을 실행하고자 하는 사용자 입력이 수신되면, '슈퍼 슬로우 모션 촬영'으로 이미지를 촬영할 수 있다.
한편, 프로세서(120)는 도 8a 내지 도 8d까지의 일련의 과정에 대한 로그 데이터를 생성할 수 있다. 가령, 카메라 어플리케이션에 대응하는 아이콘의 선택, 메뉴(820)의 선택, 서브 기능에 대응되는 아이콘(830)의 선택, 서브 기능을 실행하기 위한 사용자 입력의 수신 및 서브 기능의 실행과 관련된 로그 데이터를 생성할 수 있다.
그리고, 프로세서(120)는 상기 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(111)을 이용하여 기능 및 서브 기능을 수행하기 위한 음성 명령어를 검색할 수 있다. 이때, 검색된 음성 명령어에 가변 파라미터가 포함된 경우, 프로세서(120)는 설정된 서브 기능에 기초하여 음성 명령어를 변경할 수 있다.
프로세서(120)는 음성 명령어를 가이드할 수 있다.
구체적으로, 프로세서(120)는 검색된 음성 명령어 또는 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)(840)를 표시하도록 디스플레이(130)를 제어할 수 있다.
한편, 다른 일 실시 예에 따라, 프로세서(120)는 사용자의 이용 패턴을 확인하고 확인된 이용 패턴에 대응되는 기능 및 서브 기능을 설정하여, 설정된 기능 및 서브 기능과 관련된 음성 명령어를 가이드 할 수도 있다.
가령, 도 8a와 같이 복수의 아이콘 중 하나가 선택되면, 프로세서(120)는 메모리(110)에 저장된 로그 데이터(111)를 기초로, 선택된 아이콘에 포함된 서브 기능을 사용한 사용자의 사용 패턴을 확인할 수 있다.
프로세서(120)는 사용자의 사용 패턴 정보를 기초로, 특정 조건을 만족하는 서브 기능을 식별할 수 있다. 가령, 프로세서(120)는 로그 데이터(111)를 통하여 확인된 사용 패턴 정보를 기초로, 사용자가 자주 사용하지만 음성 명령어를 이용하여 사용하지 않은 서브 기능 또는 사용자가 사용하지 않은 서브 기능과 같은 조건은 만족하는 서브 기능을 식별할 수 있다.
그리고, 프로세서(120)는 도 8e와 같이 식별된 서브 기능에 대한 음성 명령어를 검색하고, 검색된 음성 명령어에 대응하는 텍스트를 포함하는 UI(840)를 표시하도록 디스플레이(130)를 제어할 수 있다.
즉, 프로세서(120)는 사용자가 서브 기능을 설정하기 이전에, 로그 데이터(111)에 포함된 사용자의 사용 패턴 정보를 이용하여 복수의 서브 기능 중 하나를 설정할 수 있다.
그리고, 프로세서(120)는 도 2 및 도 3에서 상술한 바와 같이, 데이터 모델(112)을 이용하여 로그 데이터(111)에서 설정된 기능 및 서브 기능과 관련된 로그 데이터를 추출하고, 추출된 로그 데이터를 기초로 설정된 서브 기능에 대응하는 음성 명령어를 검색하여 사용자에게 제공할 수 있다.
도 9는 본 개시의 일 실시 예에 따라 음성 명령어를 가이드하는 전자 장치를 설명하기 위한 도면이다.
도 8e에서 상술한 바와 같이, 프로세서(120)는 음성 명령어에 대응하는 텍스트를 포함하는 UI(840)를 표시하도록 디스플레이(130)를 제어할 수 있다.
그리고, 도 9a에 도시된 바와 같이, 프로세서(120)는 디스플레이(130)에 표시된 UI(840)를 선택하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따라, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 포함하는 음성 메시지를 출력하여 사용자에게 음성 명령어를 가이드 할 수 있다.
가령, 도 9b에 도시된 바와 같이, 프로세서(120)는 음성 명령어에 대응하는 텍스트 “슈퍼슬로우 모션으로 촬영”을 포함하는 UI(840)를 선택하는 사용자 입력을 수신하면, “하이 빅스비, 슈퍼슬로우모션으로 촬영이라고 말해보세요”와 같은 음성 메시지를 출력하도록 스피커(미도시)를 제어할 수 있다.
한편, 또 다른 일 실시 예에 따르면, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 음성 명령어를 인식하는 어플리케이션을 실행하여 사용자에게 음성 명령어를 가이드할 수 있다.
구체적으로, 프로세서(120)는 UI(840)를 선택하는 사용자 입력을 수신하면, 가상 비서 어플리케이션을 실행하고, 가상 비서가 실행된 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
이때, 프로세서(130)는 음성 명령어에 대응하는 텍스트를 표시하여 사용자에게 음성 명령어를 가이드할 수 있다.
또한, 사용자가 음성 명령어를 발화하는 경우, 프로세서(130)는 음성 명령어에 대응하는 기능 또는 서브 기능을 실행할 수 있다.
도 10은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
전자 장치(100)에서 수행되는 복수의 기능 및 복수의 기능 정보를 포함하는 로그 데이터를 생성할 수 있다.
생성된 로그 데이터에서 설정된 기능과 관련된 로그 데이터를, 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출할 수 있다(S1010). 이때, 데이터 모델을 음성 명령어로 이용 가능한 기능 및 서브 기능에 대한 로그 정보를 포함할 수 있다.
구체적으로, 로그 데이터에서 기능과 관련된 로그 데이터를 1차 추출하고, 데이터 모델을 이용하여 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출할 수 있다.
1차 추출과 관련하여, 로그 데이터에서 설정된 기능의 실행 시작을 나타내는 로그 데이터와 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 기능과 관련된 로그 데이터 영역을 확인하고, 확인된 로그 데이터 영역을 이용하여 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 1차 추출할 수 있다.
또 다른 실시 예에 따라, 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출할 수 있다.
2차 추출과 관련하여, 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 데이터 모델에 포함된 로그 정보 간의 유사도를 확인할 수 있다.
구체적으로, 추출된 로그 데이터의 로그 정보 및 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인할 수 있다.
그리고, 확인된 유사도에 기초하여 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 가지는 로그 정보를 포함하는 로그 데이터를 2차 추출할 수 있다.
추출된 로그 데이터를 이용하여, 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색할 수 있다(S1020).
서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다(S1030). 구체적으로, 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 검색된 음성 명령어를 변경할 수 있다.
그리고, 변경된 음성 명령어를 가이드 할 수 있다(S1040).
구체적으로, 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI를 표시할 수 있다.
일 예에 따르면, 표시된 UI를 선택하는 사용자 입력을 수신하면, 변경된 음성 명령어를 인식하는 어플리케이션을 실행할 수 있다.
다른 일 예에 따르면, 표시된 UI를 선택하는 사용자 입력을 수신하면, 변경된 음성 명령어를 포함하는 음성 메시지를 출력할 수 있다.
이상에서 전자 장치(100) 또는 서버(200) 중 적어도 하나를 통해 수행되는 것으로 기재된 다양한 동작들은, 전자 장치의 제어 방법 또는 전자 장치를 포함하는 시스템의 제어 방법 내지 동작 방법의 형태로 하나 이상의 전자 장치를 통해 수행될 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 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) 중 적어도 하나를 이용하여 구현될 수 있다.
일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 사용자 장치 또는 관리자 장치에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 사용자 장치 및/또는 관리자 장치의 처리 동작을 상술한 특정 기기가 수행하도록 한다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
100: 전자 장치 200: 서버
110: 메모리 120: 프로세서

Claims (20)

  1. 전자 장치의 제어 방법에 있어서,
    상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계;
    상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계;
    상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계; 및
    상기 변경된 음성 명령어를 가이드하는 단계;를 포함하는, 제어 방법.
  2. 제1항에 있어서,
    상기 추출하는 단계는,
    상기 로그 데이터에서 상기 기능과 관련된 로그 데이터를 1차 추출하는 단계; 및
    상기 데이터 모델을 이용하여, 상기 1차 추출된 로그 데이터에서 상기 음성 명령어로 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출하는 단계;를 포함하는 제어 방법.
  3. 제2항에 있어서,
    상기 1차 추출하는 단계는,
    상기 로그 데이터에서 상기 설정된 기능의 실행 시작을 나타내는 로그 데이터와 상기 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 상기 기능과 관련된 로그 데이터 영역을 확인하고,
    상기 확인된 로그 데이터 영역을 이용하여 상기 로그 데이터에서 상기 설정된 기능과 관련된 로그 데이터를 1차 추출하는, 제어 방법.
  4. 제2항에 있어서,
    상기 데이터 모델은 상기 음성 명령어로 이용 가능한 서브 기능에 대한 로그 정보를 포함하고,
    상기 2차 추출하는 단계는,
    상기 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 상기 데이터 모델에 포함된 로그 정보 간의 유사도를 확인하는 단계; 및
    상기 확인된 유사도에 기초하여 상기 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출하는 단계;를 포함하는, 제어 방법.
  5. 제4항에 있어서,
    상기 유사도를 확인하는 단계는,
    상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는 단계;를 포함하는, 제어 방법.
  6. 제1항에 있어서,
    상기 검색된 음성 명령어를 변경하는 단계는,
    상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계;를 포함하는, 제어 방법.
  7. 제2항에 있어서,
    상기 1차 추출하는 단계는,
    상기 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 상기 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출하는 단계;를 포함하는, 제어 방법.
  8. 제1항에 있어서,
    상기 가이드 하는 단계는,
    상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하는 단계;를 포함하는, 제어 방법.
  9. 제8항에 있어서,
    상기 UI를 선택하는 사용자 입력을 수신하면, 상기 변경된 음성 명령어를 인식하는 어플리케이션을 실행하는 단계;를 포함하는, 제어 방법.
  10. 제1항에 있어서,
    상기 가이드하는 단계는,
    상기 변경된 음성 명령어를 포함하는 음성 메시지를 출력하는 단계;를 포함하는, 제어 방법.
  11. 전자 장치에 있어서,
    복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터 및 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델이 저장된 메모리; 및
    상기 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 상기 데이터 모델을 이용하여 추출하고,
    상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하고,
    상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하고,
    상기 변경된 음성 명령어를 가이드하는, 프로세서;를 포함하는, 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 로그 데이터에서 상기 기능과 관련된 로그 데이터를 1차 추출하고,
    상기 데이터 모델을 이용하여, 상기 1차 추출된 로그 데이터에서 상기 음성 명령어로 이용 가능한 서브 기능과 관련된 로그 데이터를 2차 추출하는, 전자 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 로그 데이터에서 상기 설정된 기능의 실행 시작을 나타내는 로그 데이터와 상기 설정된 기능의 실행 완료를 나타내는 로그 데이터를 확인하여 상기 기능과 관련된 로그 데이터 영역을 확인하고,
    상기 확인된 로그 데이터 영역을 이용하여 상기 로그 데이터에서 상기 설정된 기능과 관련된 로그 데이터를 1차 추출하는, 전자 장치.
  14. 제12항에 있어서,
    상기 데이터 모델은 상기 음성 명령어로 이용 가능한 서브 기능에 대한 로그 정보를 포함하고,
    상기 프로세서는,
    상기 1차 추출된 로그 데이터에 포함된 로그 정보 각각과 상기 데이터 모델에 포함된 로그 정보 간의 유사도를 확인하고,
    상기 확인된 유사도에 기초하여 상기 1차 추출된 로그 데이터 중 기설정된 조건의 유사도를 갖는 로그 정보를 포함하는 로그 데이터를 2차 추출하는, 전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 추출된 로그 데이터의 로그 정보 및 상기 데이터 모델의 로그 정보 각각을 벡터 데이터로 변환하고, 상기 벡터 데이터 간의 방향, 거리 및 구조 중 적어도 하나를 비교하여 유사도를 확인하는, 전자 장치.
  16. 제11항에 있어서,
    상기 프로세서는,
    상기 검색된 음성 명령어가 가변 파라미터를 포함하는 경우, 설정된 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는, 전자 장치.
  17. 제12항에 있어서,
    상기 프로세서는,
    상기 로그 데이터를 기초로 사용자의 이용 패턴을 확인하고, 상기 확인된 이용 패턴에 대응되는 기능과 관련된 로그 데이터를 1차 추출하는, 전자 장치.
  18. 제11항에 있어서,
    디스플레이;를 더 포함하고,
    상기 프로세서는,
    상기 변경된 음성 명령어에 대응하는 텍스트를 포함하는 UI(User Interface)를 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
  19. 제18항에 있어서,
    상기 UI를 선택하는 사용자 입력을 수신하면, 상기 변경된 음성 명령어를 인식하는 어플리케이션을 실행하는, 전자 장치.
  20. 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체에 있어서,
    상기 제어 방법은,
    상기 전자 장치에서 수행된 복수의 기능 및 상기 복수의 기능 각각에 대한 서브 기능 정보를 포함하는 로그 데이터에서 설정된 기능과 관련된 로그 데이터를 음성 명령어로 이용 가능한 서브 기능을 추출하기 위한 데이터 모델을 이용하여 추출하는 단계;
    상기 추출된 로그 데이터를 이용하여, 상기 추출된 로그 데이터에 포함된 기능 및 서브 기능을 함께 수행할 수 있는 음성 명령어를 검색하는 단계;
    상기 서브 기능에 기초하여 상기 검색된 음성 명령어를 변경하는 단계; 및
    상기 변경된 음성 명령어를 가이드하는 단계;를 포함하는, 기록 매체.
KR1020200131456A 2020-10-12 2020-10-12 전자 장치 및 이의 제어 방법 KR20220048374A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200131456A KR20220048374A (ko) 2020-10-12 2020-10-12 전자 장치 및 이의 제어 방법
PCT/KR2021/011659 WO2022080659A1 (ko) 2020-10-12 2021-08-31 전자 장치 및 이의 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200131456A KR20220048374A (ko) 2020-10-12 2020-10-12 전자 장치 및 이의 제어 방법

Publications (1)

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

Family

ID=81208352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200131456A KR20220048374A (ko) 2020-10-12 2020-10-12 전자 장치 및 이의 제어 방법

Country Status (2)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496126B1 (ko) 2022-06-09 2023-02-06 노현승 골프 어드레스 정렬을 위한 장치
WO2024034785A1 (ko) * 2022-08-10 2024-02-15 주식회사 지어소프트 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 (ko) * 2007-11-02 2009-05-08 (주)인피니티 텔레콤 모바일 에이전트 기능을 가진 이동통신 단말기 및 이동통신단말기를 이용한 모바일 에이전트 구동 방법
KR102003267B1 (ko) * 2011-12-30 2019-10-02 삼성전자주식회사 전자 장치 및 그의 제어 방법
US9043205B2 (en) * 2012-06-21 2015-05-26 Google Inc. Dynamic language model
KR101830657B1 (ko) * 2015-04-27 2018-02-21 엘지전자 주식회사 이동 단말기 및 그것의 제어방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496126B1 (ko) 2022-06-09 2023-02-06 노현승 골프 어드레스 정렬을 위한 장치
WO2024034785A1 (ko) * 2022-08-10 2024-02-15 주식회사 지어소프트 Iptv를 이용한 음성 인식 온라인 마켓 서비스 제공 방법 및 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
US10275022B2 (en) Audio-visual interaction with user devices
US9811313B2 (en) Voice-triggered macros
US20240152548A1 (en) Electronic apparatus for searching related image and control method therefor
CN107112015B (zh) 发现第三方启用语音的资源的能力
CN108352159A (zh) 用于识别语音的电子设备和方法
JP5636888B2 (ja) 情報処理装置、プログラムおよびコマンド生成方法
WO2016206113A1 (en) Technologies for device independent automated application testing
CN109508167A (zh) 在语音识别***中控制显示装置的显示装置和方法
KR20210061141A (ko) 자연어 처리 방법 및 장치
US11184679B2 (en) Electronic apparatus and method for controlling the electronic apparatus
KR20220048374A (ko) 전자 장치 및 이의 제어 방법
US20140258989A1 (en) Method and system for automating a scene-based test
US8745521B2 (en) System and method for annotating graphical user interface
CN112052784B (zh) 物品的搜索方法、装置、设备及计算机可读存储介质
Hoste et al. Criteria, Challenges and Opportunities for Gesture Programming Languages.
KR102482589B1 (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
KR20150113572A (ko) 영상데이터를 획득하는 전자장치 및 방법
CN111638787B (zh) 用于展示信息的方法和装置
US20140181672A1 (en) Information processing method and electronic apparatus
CN112860681B (zh) 数据清洗方法及装置、计算机设备和介质
KR102255369B1 (ko) 대체 서비스 제공 방법 및 그 전자 장치
CN115774797A (zh) 视频内容检索方法、装置、设备和计算机可读存储介质
JP2018163586A (ja) 学習プログラム、学習方法および学習装置
CN106104470B (zh) 动作设计装置
KR20170045101A (ko) 콘텐트를 외부 장치와 공유하는 전자 장치 및 이의 콘텐트 공유 방법

Legal Events

Date Code Title Description
A201 Request for examination