KR20230123343A - 음성 지원 서비스를 제공하는 방법 및 장치 - Google Patents

음성 지원 서비스를 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20230123343A
KR20230123343A KR1020220020395A KR20220020395A KR20230123343A KR 20230123343 A KR20230123343 A KR 20230123343A KR 1020220020395 A KR1020220020395 A KR 1020220020395A KR 20220020395 A KR20220020395 A KR 20220020395A KR 20230123343 A KR20230123343 A KR 20230123343A
Authority
KR
South Korea
Prior art keywords
electronic device
voice
response
level
user
Prior art date
Application number
KR1020220020395A
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 KR1020220020395A priority Critical patent/KR20230123343A/ko
Priority to PCT/KR2023/002305 priority patent/WO2023158250A1/ko
Priority to US18/144,348 priority patent/US20230274739A1/en
Publication of KR20230123343A publication Critical patent/KR20230123343A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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
    • 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
    • G06F11/3409Recording 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 for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Quality & Reliability (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시는 사용자의 음성 입력을 포함하는 음성 데이터를 획득하는 단계; 상기 전자 장치의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별하는 단계; 상기 처리 경로에 기초하여, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하는 단계를 포함하는, 전자 장치가 음성 지원 서비스를 제공하는 방법을 제안한다.

Description

음성 지원 서비스를 제공하는 방법 및 장치 {Device and method for providing voice assistant service}
본 개시의 실시예들은 전자 장치에서 음성 지원 서비스를 제공하는 방법 및 장치에 관한 것이다.
컴퓨터, 스마트 폰, 태블릿 PC, PDA 등과 같은 전자 장치들이 사용자와 밀접하게 이용되고 있다. 사용자가 개인적으로 이용하는 전자 장치가 널리 보급 및 이용되면서, 전술한 전자 장치는 다양한 기능 또는 서비스를 사용자에게 제공하도록 개발되고 있다. 최근에는, 전자 장치에서 음성 인식 기술을 바탕으로 한 다양한 음성 지원 서비스가 개발 및 제공되고 있다. 예를 들어, 전자 장치는 사용자의 음성 명령을 바탕으로 모바일 검색, 일정 관리, 전화 걸기, 메모, 또는 음악 재생 등 다양한 생활 편의 서비스를 제공할 수 있다.
단일 장치에서 제공하는 다양한 기능 또는 서비스의 수가 증가함에 따라 시스템 자원에 대한 요구 사항이 나날이 증가하고 있다. 예를 들면 서비스 구동을 위한 CPU와 RAM 등의 자원이 계속적으로 요구된다. 시스템 부하로 인해 전자 장치가 제공하는 기능 또는 서비스에 지연이 발생할 경우, 사용성에 치명적인 문제를 야기할 수 있다. 특히, 음성 지원 서비스의 경우 사용자는 즉각적인 응답을 기대하기 때문에, 다른 서비스에 비해 작은 성능 저하에도 사용자의 만족도가 급격히 떨어질 수 있다. 따라서, 시스템 성능에 따라 지연 없이 서비스를 제공하기 위한 방법이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 전자 장치의 시스템 성능 상태에 따라 동적으로 음성 지원 서비스의 처리 경로를 변경하여, 음성 지원 서비스의 응답 성능을 개선시키는 방법을 제공하는 데 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 전자 장치가 음성 지원 서비스를 제공하는 방법은, 사용자의 음성 입력을 포함하는 음성 데이터를 획득하는 단계; 상기 전자 장치의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별하는 단계; 상기 처리 경로에 기초하여, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하는 단계를 포함할 수 있다.
일 실시예에서, 상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 성능 상태를 실시간으로 모니터링하여 획득될 수 있다.
일 실시예에서, 상기 처리 경로를 식별하는 단계는, 상기 전자 장치의 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하는 단계; 상기 획득된 규칙 및 상기 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하는 단계; 및 상기 식별된 성능 레벨에 기초하여, 상기 처리 경로를 식별하는 단계를 포함할 수 있다.
일 실시예에서, 상기 규칙을 획득하는 단계는, 상기 전자 장치의 성능 상태 정보를 이용하여, 인공지능 모델을 학습시키는 단계; 및 상기 학습된 인공지능 모델을 이용하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 처리 경로를 식별하는 단계는, 상기 성능 레벨이 제1 기준 레벨 미만이면, 상기 사용자의 음성에 대한 응답을 상기 전자 장치에서 획득하기로 식별하는 단계; 및 상기 성능 레벨이 상기 제1 기준 레벨 이상이면, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별하는 단계를 포함할 수 있다.
일 실시예에서, 상기 음성 데이터에 대한 처리를 수행하는 단계는, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별되면, 상기 음성 데이터를 상기 음성 서비스 서버에 전송하는 단계를 포함할 수 있다.
일 실시예에서, 상기 처리 경로를 식별하는 단계는, 상기 성능 레벨이 제2 기준 레벨 미만이면, 상기 UI를 상기 전자 장치에서 처리하기로 식별하는 단계; 및 상기 성능 레벨이 상기 제2 기준 레벨 이상이면, 상기 UI를 클라우드 서버에서 처리하기로 식별하는 단계를 포함할 수 있다.
일 실시예에서, 상기 처리된 UI를 획득하는 단계는, 상기 UI를 클라우드 서버에서 처리하기로식별되면, 상기 클라우드 서버로부터 상기 처리된 UI를 포함하는 비디오 스트리밍을 수신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 성능 레벨은 제1 레벨, 제2 레벨, 제3 레벨, 및 제4 레벨 중 하나로 식별되고, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하는 단계는, 상기 성능 레벨이 제1 레벨로 식별되면, 상기 사용자의 음성에 대한 응답을 획득하고, 상기 응답에 대응되는 UI를 처리하여 출력하도록 제어하는 단계; 상기 성능 레벨이 제2 레벨로 식별되면, 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 상기 음성 서비스 서버로부터 획득된 응답을 수신하고, 상기 수신된 응답에 대응되는 UI를 처리하여 출력하도록 제어하는 단계; 상기 성능 레벨이 제3 레벨로 식별되면, 상기 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하는 단계; 및 상기 성능 레벨이 제4 레벨로 식별되면, 상기 클라우드 서버에 상기 음성 데이터를 전송하고, 상기 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하는 단계를 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 음성 지원 서비스를 제공하는 전자 장치는, 인스트럭션들을 저장하는 메모리; 및 상기 메모리와 기능적으로 결합되는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 사용자의 음성 입력을 포함하는 음성 데이터를 획득하고, 상기 전자 장치의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별하고, 상기 처리 경로에 기초하여, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하게끔 설정될 수 있다.
일 실시예에서, 상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 전자 장치의 성능 상태를 실시간으로 모니터링하여 상기 전자 장치의 성능 상태 정보를 획득하도록 더 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 전자 장치의 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하고, 상기 획득된 규칙 및 상기 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하고, 상기 식별된 성능 레벨에 기초하여, 상기 처리 경로를 식별하도록 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 전자 장치의 성능 상태 정보를 이용하여, 인공지능 모델을 학습시키고, 상기 학습된 인공지능 모델을 이용하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하도록 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 성능 레벨이 제1 기준 레벨 미만이면, 상기 사용자의 음성에 대한 응답을 상기 전자 장치에서 획득하기로 식별하고, 상기 성능 레벨이 상기 제1 기준 레벨 이상이면, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별하도록 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별되면, 상기 음성 데이터를 상기 음성 서비스 서버에 전송하도록 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 성능 레벨이 제2 기준 레벨 미만이면, 상기 UI를 상기 전자 장치에서 처리하기로 식별하고, 상기 성능 레벨이 상기 제2 기준 레벨 이상이면, 상기 UI를 클라우드 서버에서 처리하기로 식별하도록 설정될 수 있다.
일 실시예에서, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 UI를 클라우드 서버에서 처리하기로 식별되면, 상기 클라우드 서버로부터 상기 처리된 UI를 포함하는 비디오 스트리밍을 수신하도록 설정될 수 있다.
일 실시예에서, 상기 성능 레벨은 제1 레벨, 제2 레벨, 제3 레벨, 및 제4 레벨 중 하나로 식별되고, 상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여, 상기 성능 레벨이 제1 레벨로 식별되면, 상기 사용자의 음성에 대한 응답을 획득하고, 상기 응답에 대응되는 UI를 처리하여 출력하도록 제어하고, 상기 성능 레벨이 제2 레벨로 식별되면, 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 상기 음성 서비스 서버로부터 획득된 응답을 수신하고, 상기 수신된 응답에 대응되는 UI를 처리하여 출력하도록 제어하고, 상기 성능 레벨이 제3 레벨로 식별되면, 상기 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하고, 상기 성능 레벨이 제4 레벨로 식별되면, 상기 클라우드 서버에 상기 음성 데이터를 전송하고, 상기 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하게끔 설정될 수 있다.
개시된 실시예에 따른 전자 장치 및 그의 동작 방법은, 전자 장치의 시스템 성능 상태에 따라 동적으로 음성 지원 서비스의 처리 경로를 변경하여 음성 지원 서비스의 응답 성능을 개선시킬 수 있다.
도 1은 다양한 실시예들에 따른 음성 지원 서비스를 제공하기 위한 시스템의 개요도이다.
도 2는 다양한 실시예들에 따른 전자 장치를 나타내는 블록도이다.
도 3은 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다.
도 4는 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다.
도 5는 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다.
도 6은 다양한 실시예들에 따른 전자 장치가 음성 지원 서비스를 제공하기 위한 방법을 나타내는 흐름도이다.
도 7은 다양한 실시예들에 따른 전자 장치가 처리 경로를 식별하는 방법을 나타내는 흐름도이다.
도 8은 다양한 실시예들에 따른 전자 장치가 처리 경로를 식별하는 방법을 나타내는 다른 흐름도이다.
도 9는 다양한 실시예들에 따른 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른, 전자 장치의 성능 상황이 좋은 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른, 전자 장치의 성능 상황이 보통인 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 12은 일 실시예에 따른, 전자 장치의 성능 상황이 나쁜 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 13은 일 실시예에 따른, 전자 장치의 성능 상황이 매우 나쁜 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 14는 성능 규칙 테이블의 일 실시예를 나타내는 도면이다.
도 15은 일 실시예에 따른, 전자 장치가 음성 지원 서비스를 제공하기 위한 방법을 나타내는 흐름도이다.
도 16은 일 실시예에 따른 인공지능 모델의 동작을 설명하기 위한 도면이다.
도 17은 다양한 실시예들에 따른 전자 장치와 통신하는 서버를 나타내는 블록도이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 문서의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 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) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS, global navigation satellite system), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예들에서 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 장치를 포함할 수 있다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘을 이용하는 기계학습(딥러닝) 기술 및 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
기계학습은 입력 데이터의 특징을 스스로 분류/학습하는 알고리즘 기술이다. 요소 기술들은, 예로, 인간의 언어/문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론/예측 기술, 인간의 경험 정보를 지식데이터로 처리하는 지식 표현 기술 및 차량의 자율 주행, 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 하나를 포함할 수 있다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계번역, 대화 시스템, 질의 응답, 음성 인식/합성 등을 포함한다.
본 개시에 따른 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작될 수 있다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어할 수 있다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행할 수 있다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
도 1은 다양한 실시예들에 따른 음성 지원 서비스를 제공하기 위한 시스템의 개요도이다.
도 1을 참조하면, 상기 음성 지원 서비스를 제공하기 위한 시스템은 전자 장치(1000), 음성 서비스 서버(2000), 및 클라우드 UI 서버(3000)를 포함할 수 있다.
개시된 실시예에 따른 전자 장치(1000)는, 다양한 기능 또는 서비스를 제공할 수 있는 컴퓨팅 장치로, TV, 디지털 TV(또는, 스마트 TV), 셋 톱 박스(STB: set top box), 휴대폰, 태블릿 PC, 컨텐츠 재생 장치, 디지털 카메라, 캠코더, 노트북 컴퓨터(laptop computer), 태블릿 PC, 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 착용형 장치(wearable device), 시계 등과 같은 다양한 형태로 구현될 수 있다. 또한, 개시된 실시예에 따른 전자 장치는 냉장고, 공기 청정기, 세탁기, 건조기, 청소기, 난방 장치, 시계, 알람 장치 등의 생활 가전(DA: Digital Appliance)이 될 수 있다. 또한, 전자 장치는 고정된 위치에 배치되는 고정형 전자 장치 또는 휴대 가능한 형태를 갖는 이동형 전자 장치일 수 있으며, 디지털 방송 수신이 가능한 디지털 방송 수신기일 수 있다.
전자 장치(1000)는 컨텐츠 제공 기능, 동영상 재생 기능, 게임 기능 등의 다양한 기능 또는 서비스들을 사용자에게 제공할 수 있다. 다양한 실시예들에서, 전자 장치(1000)는 음성 인식 기술을 바탕으로 한 다양한 음성 인식 서비스를 제공할 수 있다. 예를 들어, 전자 장치(1000)는 사용자의 음성 명령을 바탕으로 검색, 일정 관리, 전화 걸기, 메모, 또는 음악 재생 등 다양한 생활 편의 서비스를 제공할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 사용자의 음성 입력을 포함하는 음성 데이터를 수신할 수 있다. 다양한 실시예들에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 음성 명령에 대응되는 응답을 획득할 수 있다. 일 실시예에서, 전자 장치(1000)는 사용자의 음성 명령에서 요청되는 기능을 판단하고, 해당 기능을 수행하기 위한 어플리케이션을 실행할 수 있다. 예를 들어, 전자 장치(1000)는 키워드에 대한 검색을 요청하는 사용자의 음성 명령을 인식하고, 이에 대응하여 해당 키워드를 검색하고 그 결과를 출력할 수 있다. 예를 들어, 전자 장치(1000)는 음악 재생을 요청하는 사용자의 음성 명령을 인식하고, 이에 대응하여 음악을 재생할 수 있다.
일 실시예에서, 전자 장치(1000)는 내장 음성 지원 서비스 엔진을 이용하여 음성 데이터로부터 음성 명령을 인식하고, 음성 명령에 대응되는 응답을 획득할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 인식된 음성 명령을 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신할 수 있다.
일 실시예에서, 전자 장치(1000)는 내장된 UI 렌더러를 이용하여 사용자의 음성에 대한 응답에 대응되는 UI(user interface)를 처리하여 디스플레이할 수 있다. 상기 UI는 사용자의 음성 명령에서 요청되는 기능을 실행하기 위한 UI이거나, 또는 사용자의 음성 명령에 대한 응답 결과를 시각적으로 나타내기 위한 UI일 수 있다. 다른 실시예에서, 전자 장치(1000)는 직접 UI를 처리하는 대신, 클라우드 UI 서버(3000)로부터, 클라우드 UI 서버(3000)에서 처리된 UI를 수신하여 디스플레이할 수 있다.
음성 서비스 서버(2000)는 전자 장치(1000)에 음성 지원 서비스를 제공하기 위한 서버일 수 있다. 다양한 실시예들에서, 음성 서비스 서버(2000)는 전자 장치(1000)로부터 음성 데이터를 수신하여, 음성 데이터에 포함된 사용자의 음성 명령을 인식할 수 있다. 다양한 실시예들에서, 음성 서비스 서버(2000)는 사용자의 음성 명령에 대응되는 응답을 획득할 수 있다. 이 때 사용자의 음성 명령은 음성 서비스 서버(2000)에서 생성된 것일 수도 있고, 전자 장치(1000)로부터 획득된 것일 수도 있다.
클라우드 UI 서버(3000)는 전자 장치(1000)에 UI를 클라우드 스트리밍 하기 위한 서버일 수 있다. 클라우드 UI 서버(3000)는 어플리케이션 및 서비스를 구동하고, 그 결과 화면을 전자 장치(1000)로 실시간 전송하여 마치 사용자가 자신의 전자 장치(1000)에서 앱을 사용하는 것과 동일한 사용 환경을 제공할 수 있다.
일 실시예에서, 클라우드 UI 서버(3000)는 전자 장치(1000)로부터 사용자의 음성에 대한 응답 정보를 수신할 수 있다. 다른 실시예에서, 클라우드 UI 서버(3000)는 음성 서비스 서버(2000)로부터 사용자의 음성에 대한 응답 정보를 수신할 수 있다. 다양한 실시예들에서, 클라우드 UI 서버(3000)는 수신한 응답에 대응되는 UI를 처리하고, 처리된 UI를 전자 장치(1000)로 스트리밍할 수 있다.
전자 장치(1000), 음성 서비스 서버(2000) 및 클라우드 UI 서버(3000)는 네트워크에 의해 서로 연결되어 있을 수 있다. 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다.
무선 통신은 예를 들어, 와이파이(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
예시적으로 전자 장치(1000), 음성 서비스 서버(2000) 및 클라우드 UI 서버(3000)가 서로 구별되는 별개의 장치들인 경우가 도 1에 도시되어 있으나, 반드시 이에 한정되는 것은 아니다. 전자 장치(1000), 음성 서비스 서버(2000) 및 클라우드 UI 서버(3000)는 물리적으로 구분되는 별개의 장치들일 수 있고, 물리적으로 동일한 장치 내에서 논리적으로 구분되는 별개의 동작 주체일 수 있으며, 완전히 동일한 장치일 수 있다.
또한, 예시적으로 전자 장치(1000), 음성 서비스 서버(2000) 및 클라우드 UI 서버(3000)가 각각 하나의 장치로써 도 1에 도시되어 있으나, 반드시 이에 한정되는 것은 아니다. 전자 장치(1000), 음성 서비스 서버(2000) 및 클라우드 UI 서버(3000)는 각각, 기능적으로 연결되어 상술한 동작들을 수행하는 하나 이상의 물리적으로 분리된 장치들의 집합일 수 있다.
예를 들어, 음성 서비스 서버(2000)의 음성 데이터로부터 음성 명령을 인식하는 동작과, 음성 명령에 대응되는 응답을 획득하는 동작은 각각 별도의 서버에서 수행될 수 있다. 예를 들어, 음성 데이터를 텍스트로 변환하는 STT(sound-to-text) 기능을 수행하는 STT 서버와, STT 서버에서 처리된 데이터로부터 명령의 내용을 인식하고 명령에 대응되는 응답을 획득하는 기능을 수행하는 서버가 각각 별도로 존재할 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치를 나타내는 블록도이다. 도 2에 도시된 전자 장치(1000)는 도 1에서 설명한 전자 장치(1000)에 대응될 수 있다. 따라서, 도 1에서와 중복되는 설명은 생략한다.
도 2를 참조하면, 전자 장치(1000)는 디스플레이(220)를 포함하여 영상 데이터를 시각적으로 출력하는 디스플레이 장치가 될 수 있다. 전자 장치(1000)는 적어도 하나의 인스트럭션을 저장하는 메모리(215), 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서(210) 및 디스플레이(220)를 포함한다.
예를 들어, 전자 장치(1000)가 디스플레이(220)를 포함하여, 적어도 하나의 컨텐츠를 디스플레이 할 수 있다. 예를 들어, 전자 장치(1000)는 TV, 디지털 TV, 디지털 방송용 단말기, 태블릿 PC, 스마트 폰, 모바일 폰, 컴퓨터, 노트북 등과 같이 다양한 형태로 존재할 수 있다. 여기서, 디지털 TV는 스마트 TV로 호칭 될 수도 있다.
예를 들어, 프로세서(210)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작이 수행되도록 제어할 수 있다. 여기서, 적어도 하나의 인스트럭션은 프로세서(210) 내에 포함되는 내부 메모리(미도시) 또는 프로세서(210)와 별도로 전자 장치(1000) 내에 포함되는 메모리(215)에 저장되어 있을 수 있다.
구체적으로, 프로세서(210)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작이 수행되도록 전자 장치(1000) 내부에 포함하는 적어도 하나의 구성들을 제어할 수 있다. 따라서, 프로세서(210)가 소정 동작들을 수행하는 경우를 예로 들어 설명하더라도, 프로세서(210)가 소정 동작들이 수행되도록 전자 장치(1000) 내부에 포함하는 적어도 하나의 구성들을 제어하는 것을 의미할 수 있을 것이다.
또한, 프로세서(210)는 하나의 프로세서로 형성되는 경우를 예로 들어 설명 및 도시하였으나, 복수개의 프로세서들이 포함되는 형태로 형성될 수도 있다.
예를 들어, 프로세서(210)는 전자 장치(1000)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 전자 장치(1000)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 전자 장치(1000)의 제어를 위한 제어 프로그램, 소정 기능 또는 서비스를 제공하기 위한 어플리케이션, 및/또는 복수개의 인스트럭션이 저장된 ROM(미도시) 및 적어도 하나의 프로세서 (Processor)(미도시)를 포함할 수 있다. 프로세서(미도시)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다. 또한, 프로세서(210)는 싱글 코어 이상의 멀티 코어를 포함할 수 있다. 예를 들어, 프로세서(210)는 듀얼 코어, 트리플 코어, 쿼드 코어, 헥사 코어, 옥타 코어, 데카 코어, 도데카 코어, 헥사 데시멀 코어 등을 포함할 수 있다.
메모리(215)는 적어도 하나의 인스트럭션, 데이터, 정보, 및/또는 어플리케이션 등을 저장할 수 있다. 예를 들어, 메모리(215)는 프로세서(210)가 실행하는 적어도 하나의 인스트럭션을 저장하고 있을 수 있다. 예를 들어, 메모리(215)는 프로세서(210)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 예를 들어, 메모리(215)는 소정 서비스를 제공하기 위한 어플리케이션을 저장하고 있을 수 있다.
예를 들어, 메모리(215)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
개시된 실시예에서, 전자 장치(1000)의 프로세서(210)는 적어도 하나의 인스트럭션을 실행하여, 이하의 동작들이 수행되도록 제어한다. 다양한 실시예들에서, 프로세서(210)는 사용자의 음성 입력을 포함하는 음성 데이터를 획득할 수 있다. 다양한 실시예들에서, 프로세서(210)는 전자 장치(1000)의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별할 수 있다. 다양한 실시예들에서, 프로세서(210)는 식별된 처리 경로에 기초하여, 음성 데이터에 대한 처리를 수행하고, 처리된 UI를 획득하여 출력하도록 제어할 수 있다. 예를 들어, 프로세서(210)는 식별된 처리 경로에 기초하여, 사용자의 음성에 대한 응답을 전자 장치(1000)에서 획득하도록 제어하거나, 또는 음성 서비스 서버(2000)에서 획득하도록 제어할 수 있다. 예를 들어, 프로세서(210)는 식별된 처리 경로에 기초하여, 응답에 대응되는 UI를 전자 장치(1000)에서 처리하도록 제어하거나, 또는 클라우드 UI 서버(3000)에서 처리하도록 제어할 수 있다.
디스플레이(220)는 프로세서(210)의 제어에 따라서, 이미지를 화면 상으로 출력할 수 있다. 예를 들어, 프로세서(210)는 의도하는 이미지가 디스플레이(220) 상으로 출력되도록 디스플레이(220)를 제어할 수 있다.
디스플레이(220)는 이미지를 화면 상으로 출력한다. 예를 들어, 디스플레이(220)는 비디오 데이터를 사용자가 시각적으로 인식할 수 있도록, 내부적으로 포함되는 디스플레이 패널(미도시)을 통하여, 비디오 데이터에 대응되는 이미지를 출력할 수 있다. 다양한 실시예들에서, 디스플레이(220)는 프로세서(210)의 제어에 따라서 렌더링된 UI를 화면 상에 출력할 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다. 도 3에 도시된 전자 장치(1000)는 도 1 및 도 2에서 설명한 전자 장치(1000)에 대응될 수 있다. 또한, 도 3에 도시된 구성들에 있어서, 도 2에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 도 1 내지 도 2에서와 중복되는 설명은 생략한다.
도 3을 참조하면, 전자 장치(1000)는 프로세서(210), 메모리(215) 및 통신 인터페이스(230)를 포함할 수 있다.
통신 인터페이스(230)는 적어도 하나의 외부 장치와 통신을 수행할 수 있다.
여기서, ‘통신’은 데이터, 신호, 요청, 및/또는 명령 등을 송신 및/또는 수신하는 동작을 의미할 수 있다.
통신 인터페이스(230)는 적어도 하나의 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 예를 들어, 외부 장치는 외부 디스플레이(410)가 될 수 있다. 다른 예로, 외부 장치(미도시)는 컨텐츠를 제공할 수 있는 소스 장치, 서버, 저장 장치 등이 될 수 있다. 또는, 외부 장치(미도시)는 컨텐츠를 제공할 수 있는 인터넷 서버 등이 될 수 있다. 또는, 외부 장치(미도시)는 데이터를 처리하거나 제공할 수 있는 전자 장치 또는 서버 등이 될 수 있다.
예를 들어, 통신 인터페이스(230)는 적어도 하나의 외부 장치와 유선 또는 무선 통신 통신을 수행하기 위한 통신 모듈, 통신 회로, 통신 장치, 입/출력 포트, 및 입/출력 플러그 중 적어도 하나를 포함할 수 있다.
예를 들어, 통신 인터페이스(230)는 외부 장치, 예를 들어, 제어 장치와 무선 통신을 수행하는 적어도 하나의 무선 통신 모듈, 무선 통신 회로, 또는 무선 통신 장치를 포함할 수 있다.
예를 들어, 통신 인터페이스(230)는 근거리에 위치하는 원격 제어 장치(remote controller)(미도시)로부터 제어 명령을 수신할 수 있는 근거리 통신 모듈, 예를 들어, IR(infrared) 통신 모듈 등을 포함할 수 있다. 이 경우, 통신 인터페이스(230)는 원격 제어 장치(미도시)로부터 제어 신호를 수신할 수 있다.
또 다른 예로, 통신 인터페이스(230)는 블루투스, 와이파이(Wi-Fi), BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wi-Fi Direct), UWB, 또는 ZIGBEE 등의 무선 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈(미도시)을 포함할 수 있다. 또는, 통신 인터페이스(230)는 원거리 통신 규격에 따라서 원거리 통신을 지원하기 위한 서버(미도시)와 통신을 수행하는 통신 모듈(미도시)을 더 포함할 수 있다. 예를 들어, 통신 인터페이스(230)는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)을 포함할 수 있다. 또한, 통신 인터페이스(230)는 3G, 4G, 5G 및/또는 6G 등의 통신 규격에 따르는 통신 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)를 포함할 수 있다.
또 다른 예로, 통신 인터페이스(230)는 외부 장치와 유선으로 통신하기 위해서, 외부 장치와 유선 케이블로 연결되기 위한 적어도 하나의 포트(미도시)를 포함할 수 있다. 예를 들어, 통신 인터페이스(230)는 HDMI 포트(High-Definition Multimedia Interface port), 컴포넌트 잭(component jack), PC 포트(PC port), 및 USB 포트(USB port) 중 적어도 하나를 포함할 수 있다. 그에 따라서, 통신 인터페이스(230)는 적어도 하나의 포트(미도시)를 통하여 유선 연결된 외부 장치와 통신을 수행할 수 있다. 여기서, 포트는 케이블, 통신선, 또는 플러그 등을 연결 또는 삽입할 수 있는 물리적 장치 구성을 의미할 수 있다.
전술한 바와 같이, 통신 인터페이스(230)는 전자 장치(1000)와 외부 장치 간의 통신을 지원하기 위한 적어도 하나의 지원 요소들을 포함할 수 있다. 여기서, 지원 요소는 전술한, 통신 모듈, 통신 회로, 통신 장치, (데이터의 입/출력을 위한) 포트, (데이터의 입/출력을 위한) 케이블 포트, (데이터의 입/출력을 위한) 플러그 등을 포함할 수 있다. 예를 들어, 통신 인터페이스(230)에 포함되는 적어도 하나의 지원 요소는, 이더넷(Ethernet) 통신 모듈, 와이파이 통신 모듈, 블루투스 통신 모듈, IR 통신 모듈, USB 포트, 튜너(또는, 방송 수신기), HDMI 포트, DP(display port), DVI(digital visual interface) 포트 등을 예로 들 수 있다. 또는, 전술한 적어도 하나의 지원 요소들이 통신 인터페이스(230)를 형성할 수 있다.
도 3을 참조하면, 전자 장치(1000)와 연결되는 외부 장치가 외부 디스플레이(310)인 경우를 예로 들어서 도시 및 설명된다. 전자 장치(1000)와 외부 디스플레이(310)는 유선 또는 무선으로 연결될 수 있다. 예를 들어, 전자 장치(1000)와 외부 디스플레이(310)는 통신 인터페이스(230)에 포함되는 HDMI 포트를 통하여 연결 및 통신할 수 있다. 또 다른 예로, 전자 장치(1000)와 외부 디스플레이(310)는 통신 인터페이스(230)에 포함되는 와이파이 모듈을 통하여 통신할 수 있다.
도 3을 참조하면, 전자 장치(1000)는 내부에 디스플레이를 포함하지 않는 전자 장치가 될 수 있다. 예를 들어, 전자 장치(1000)는 셋톱박스(STB)가 될 수 있다. 또 다른 예로, 전자 장치(1000)는 컨텐츠 제공 장치, 컨텐츠 재생 장치가 될 수 있다.
또는, 전자 장치(1000)는 내부에 디스플레이(미도시)를 포함하나, 내부의 디스플레이 대신에 통신 인터페이스(230)를 통하여 연결되는 외부 디스플레이(310)를 통하여 전자 장치(1000)로 수신되거나 전자 장치(1000)가 저장하고 있는 컨텐츠가 디스플레이되도록 제어할 수 있다. 예를 들어, 프로세서(210)는 자체적으로 저장하거나 통신 인터페이스(230)를 통하여 수신되는 컨텐츠가 외부 디스플레이(310)로 전송되도록 통신 인터페이스(230)를 제어 할 수 있다. 예를 들어, 통신 인터페이스(230)는 프로세서(210)의 제어에 따라서, 컨텐츠를 외부 디스플레이(310)로 전송할 수 있다. 그러면, 외부 디스플레이(310)는 수신되는 컨텐츠를 내부적으로 포함되는 디스플레이 패널(미도시)를 통하여 출력할 수 있다. 그에 따라서, 사용자는 외부 디스플레이(310)를 통하여 출력되는 컨텐츠를 시각적으로 인식할 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다. 도 4에 도시된 구성들에 있어서, 도 2 내지 도 3에 도시된 구성들과 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 도 4에 도시된 전자 장치(1000)는 도 1 내지 도 3에서 설명한 전자 장치(1000)에 대응될 수 있다. 따라서, 전자 장치(1000)를 설명하는데 있어서, 도 1 내지 도 3에서와 중복되는 설명은 생략한다.
도 4를 참조하면, 전자 장치(1000)는 도 2에 도시된 전자 장치(1000)에 비하여, 영상 처리부(225), 오디오 처리부(240), 오디오 출력부(250), 메모리(215) 및 사용자 인터페이스(270) 중 적어도 하나를 더 포함할 수 있다.
예를 들어, 전자 장치(1000)는 도 2에 도시된 전자 장치(1000)에 비하여, 영상 처리부(225) 및 오디오 처리부(240)를 더 포함할 수 있다.
또한, 전자 장치(1000)는 도 2에 도시된 전자 장치(1000)에 비하여, 영상 처리부(225) 및 오디오 처리부(240), 및 오디오 출력부(250)를 더 포함할 수 있다. 또한, 전자 장치(1000)는 도 2에 도시된 전자 장치(1000)에 비하여, 메모리(215) 및 사용자 인터페이스(270) 중 적어도 하나를 더 포함할 수 있다.
통신 인터페이스(230)는 프로세서(210)의 제어에 따라 소스 장치로부터 수신되는 영상 데이터 및 오디오 데이터를 연결된 프로토콜에 따라 수신하여 이를 영상 처리부(225) 및 오디오 처리부(240)로 출력할 수 있다.
통신 인터페이스(230)는 외부 장치(미도시)와 데이터, 신호, 및 명령 중 적어도 하나를 송수신하는 적어도 하나의 통신 모듈, 및 적어도 하나의 포트 중 적어도 하나를 포함할 수 있다. 구체적으로, 통신 인터페이스(230)는 통신부(232) 및 입/출력부(231)를 포함할 수 있다.
입/출력부(231)는 외부 장치로부터 신호 또는 데이터를 입력받기 위한 모듈 및 신호 또는 데이터를 외부 장치로 출력(또는 전송)하기 위한 모듈 중 적어도 하나를 포함할 수 있다.
예를 들어, 입/출력부(231)는 HDMI 포트(High-Definition Multimedia Interface port, 미도시), 컴포넌트 잭(component jack, 미도시), PC 포트(PC port, 미도시), DP(display port), DVI(digital visual interface), 썬더볼트 및 USB 포트(USB port, 미도시) 등에 있어서, 이들 중 적어도 하나를 포함할 수 있다. 또한, 입/출력부(231)는 HDMI 포트, 컴포넌트 잭, PC 포트, DP(display port), DVI(digital visual interface), 썬더볼트 및 USB 포트의 조합을 포함할 수 있다. 예를 들어, 입/출력부(231)는 전자 장치(1000)에 재생될 비디오 데이터(예를 들어, 게임 컨텐츠)를 HDMI 포트, 컴포넌트 잭, PC 포트, 또는 USB 포트 등을 통하여 직접 수신할 수 있다.
예를 들어, 입/출력부(231)는 외부 디스플레이(예를 들어, 도 3의 310)와 HDMI 포트를 이용하여 유선 연결될 수 있다. 또 다른 예로, 입/출력부(231)는 소스 장치(미도시)와 HDMI 포트를 이용하여 유선 연결될 수 있다.
통신부(232)는 적어도 하나의 유선 또는 무선 통신 네트워크를 통해서 외부 장치와 통신을 수행한다. 예를 들어, 통신부(232)는 소스 장치(501)와 통신할 수 있다. 구체적으로, 통신부(232)는 적어도 하나의 통신 모듈, 통신 회로 등을 포함하는 형태로 형성될 수 있으며, 통신 모듈 및/또는 통신 회로를 통하여 외부 장치와 데이터를 송수신할 수 있다.
구체적으로, 통신부(232)는 블루투스, 와이파이, BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wi-Fi Direct), UWB, 또는 ZIGBEE 등의 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈(미도시)를 포함할 수 있다. 또한, 통신부(232)는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈(미도시)를 포함할 수 있다. 또한, 통신부(232)는 3G, 4G, 5G, 및/또는 6G 등의 이동 통신 규격에 따르는 통신 네트워크를 포함할 수 있다.
예를 들어, 통신부(232)는 근거리에 위치하는 원격 제어 장치(remote controller)(미도시)로부터 제어 신호 또는 제어 명령을 수신할 수 있는 통신 모듈, (예를 들어, IR(infrared) 통신 모듈 등)을 포함할 수 있다. 이 경우, 통신부(232)는 원격 제어 장치(미도시)로부터 제어 신호 또는 제어 명령을 수신할 수 있다. 예를 들어, 제어 명령은 이하에서 설명한 음성 제어 기능에 대응되는 오디오 데이터의 형태로 수신 될 수 있다.
예를 들어, 전자 장치(1000)와 통신하는 원격 제어 장치(미도시)는 사용자로부터 음성을 수신하기 위한 마이크를 포함 할 수 있다. 구체적으로, 사용자에게 음성 제어 기능을 제공하기 위해서, 원격 제어 장치는 내장 마이크를 통하여 사용자의 음성을 수신할 수 있다. 이 경우, 원격 제어 장치(미도시)는 수신된 음성에 대응되는 오디오 데이터를 통신부(232)로 전송할 수 있다. 그러면, 통신부(232)는 원격 제어 장치로부터 수신되는 오디오 데이터를 전송받을 수 있다. 예를 들어, 오디오 데이터는, 사용자의 음성 명령에 대응될 수 있으며, 디지털 신호 또는 아날로그 신호의 형태를 가질 수 있다. 예를 들어, 상기 오디오 데이터는 블루투스 모듈, 또는 와이파이 모듈을 통하여 수신될 수 있다. 전술한 예시에서, 프로세서(210)는 수신된 오디오 데이터에 근거하여, 전자 장치(1000)가 수신된 오디오 데이터에 대응되는 동작을 수행하도록 제어할 수 있다.
또 다른 예로, 전자 장치(1000)를 제어하기 위한 외부 장치로, 원격 제어 장치, 모바일 기기(예를 들어, 스마트 폰, AI 스피커 등, 음성 인식 어플리케이션이 설치되어 있는 단말기 등)이 존재할 수 있다. 예를 들어, 전자 장치(1000)와 모바일 기기는 통신부(232)에 포함되는 IR 모듈, 블루투스 모듈, 또는 와이파이 모듈 등을 통하여 데이터를 송수신할 수 있다. 전자 장치(1000)가 모바일 기기와 통신하는 경우, 사용자는 스마트 폰에 내장되어 있는 마이크를 통하여 음성을 입력할 수 있다. 스마트 폰은 수신된 음성에 대응되는 오디오 데이터를 통신부(232)로 전송할 수 있다. 전술한 예시에서, 프로세서(210)는 통신부(232)를 통하여 수신된 오디오 데이터에 근거하여, 전자 장치(1000)가 수신된 오디오 데이터에 대응되는 동작을 수행하도록 제어할 수 있다.
영상 처리부(225)는 프로세서(210)의 제어에 따라, 컨텐츠에 대응되는 영상 데이터를 처리하여 디스플레이(220)로 출력할 수 있다. 예를 들어, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 통신 인터페이스(230)를 통하여 수신되는 컨텐츠에 대응되는 영상 데이터를 처리하여 디스플레이(220)로 출력할 수 있다.
예를 들어, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 컨텐츠에 대응되는 영상 데이터를 디코딩하여 디스플레이(220) 상으로 출력될 수 있는 이미지 데이터를 생성하고, 생성된 이미지 데이터를 디스플레이(220)로 전송할 수 있다.
또 다른 예로, 영상 처리부(225)는 프로세서(210)의 제어에 따라, 사용자 인터페이스 화면을 생성할 수 있다.
디스플레이(220)는 영상 처리부(225)로부터 수신된 영상 데이터를 화면에 표시할 수 있다. 예를 들어, 디스플레이(220)는 사용자 음성에 대응되는 UI를 출력할 수 있다.
오디오 처리부(240)는 프로세서(210)의 제어에 따라, 통신 인터페이스(230)로부터 수신되는 오디오 데이터를 아날로그 오디오 데이터로 변환하여 오디오 출력부(250)로 출력할 수 있다.
오디오 출력부(250)는 수신되는 아날로그 오디오 데이터를 스피커를 통해 출력할 수 있다.
메모리(215)는 전자 장치(1000)의 동작에 관련된 프로그램, 전자 장치(1000)의 동작 중에 발생하는 각종 데이터를 저장할 수 있다. 또는, 메모리(215)는 외부 장치로부터 수신되는 콘텐츠를 저장할 수 있다. 또는, 메모리(215)는 전자 장치(1000)의 동작에 필요한 데이터 또는 정보를 저장할 수 있다.
메모리(215)는 적어도 하나의 메모리를 포함할 수 있다. 여기서, 적어도 하나의 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
사용자 인터페이스(270)는 전자 장치(1000)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 인터페이스(270)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch) 등을 포함하는 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다.
또한, 사용자 인터페이스(270)는 음성 인식을 위한 음성 인식 장치(미도시)를 포함할 수 있다. 예를 들어, 음성 인식 장치는 마이크가 될 수 있으며, 음성 인식 장치는 사용자의 음성 명령 또는 음성 요청을 수신할 수 있다. 그에 따라서, 프로세서(210)는 음성 명령 또는 음성 요청에 대응되는 동작이 수행되도록 제어할 수 있다.
또한, 사용자 인터페이스(270)는 모션 감지 센서(미도시)를 포함할 수도 있다. 예를 들어, 모션 감지 센서(미도시)는 전자 장치(1000)의 움직임을 감지하고, 감지된 움직임을 사용자 입력으로 수신할 수 있다. 또한, 전술한 음성 인식 장치(미도시/ 예를 들어, 마이크) 및 모션 감지 센서(미도시)는 사용자 인터페이스(270) 내에 포함되는 형태가 아니라, 사용자 인터페이스(270)와는 독립적인 모듈로 전자 장치(1000) 내에 포함될 수 있을 것이다.
도 5는 다양한 실시예들에 따른 전자 장치를 나타내는 다른 블록도이다. 도 5에 도시된 전자 장치(1000)는 도 1 내지 도 4에 도시된 전자 장치(1000)에 대응될 수 있다. 따라서, 전자 장치(1000)를 설명하는데 있어서, 도 1 내지 도 4에서와 중복되는 설명은 생략한다.
도 5를 참조하면, 전자 장치(1000)는 비디오 처리부(510), 디스플레이(515), 오디오 처리부(520), 오디오 출력부(525), 전원부(530), 튜너부(540), 통신부(550), 감지부(560), 입/출력부(570), 프로세서(580), 및 메모리(590)를 포함한다.
전자 장치(1000)의 통신부(550), 디스플레이(515), 입/출력부(570), 프로세서(580), 비디오 처리부(510), 오디오 처리부(520), 오디오 출력부(525) 및 메모리(590)는 각각 도 2 내지 도 4에서 도시 및 설명한 통신부(232), 디스플레이(220), 입/출력부(231), 프로세서(210), 영상 처리부(225), 오디오 처리부(240, 오디오 출력부(250) 및 메모리(215)에 대응될 수 있다. 그러므로, 전자 장치(1000)를 설명하는데 있어서, 도 2 및 도 4에서와 중복되는 설명은 생략한다.
비디오 처리부(510)는, 전자 장치(1000)가 수신한 비디오 데이터에 대한 처리를 수행한다. 비디오 처리부(510)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
디스플레이(515)는 프로세서(580)의 제어에 의해 튜너부(540)를 통해 수신된 방송 신호에 포함된 비디오를 화면에 표시할 수 있다. 또한, 디스플레이(515)는 통신부(550) 또는 입/출력부(570)를 통해 입력되는 컨텐츠(예를 들어, 동영상)를 표시할 수 있다. 또한, 디스플레이(515)는 프로세서(580)의 제어에 의해 메모리(590)에 저장된 영상을 출력할 수 있다.
오디오 처리부(520)는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부(520)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다. 한편, 오디오 처리부(520)는 복수의 컨텐츠에 대응되는 오디오를 처리하기 위해 복수의 오디오 처리 모듈을 구비할 수 있다.
오디오 출력부(525)는 프로세서(580)의 제어에 의해 튜너부(540)를 통해 수신된 방송 신호에 포함된 오디오를 출력한다. 오디오 출력부(525)는 통신부(550) 또는 입/출력부(570)를 통해 입력되는 오디오(예를 들어, 음성, 사운드)를 출력할 수 있다. 또한, 오디오 출력부(525)는 프로세서(580)의 제어에 의해 메모리(590)에 저장된 오디오를 출력할 수 있다. 오디오 출력부(525)는 스피커(526), 헤드폰 출력 단자(527) 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자(528) 중 적어도 하나를 포함할 수 있다. 오디오 출력부(525)는 스피커(526), 헤드폰 출력 단자(527) 및 S/PDIF 출력 단자(528)의 조합을 포함할 수 있다.
전원부(530)는 프로세서(580)의 제어에 의해 전자 장치(1000) 내부의 구성 요소들(510 내지 590)로 외부의 전원 소스에서부터 입력되는 전원을 공급한다. 또한, 전원부(530)는 프로세서(580)의 제어에 의해 전자 장치(1000) 내부에 위치하는 하나 또는 둘 이상의 배터리(미도시)에서부터 출력되는 전원을 내부의 구성 요소들(610 내지 690)에게 공급할 수 있다.
튜너부(540)은 유선 또는 무선으로 수신되는 방송 신호를 증폭(amplification), 혼합(mixing), 공진(resonance)등을 통하여 많은 전파 성분 중에서 전자 장치(1000)에서 수신하고자 하는 채널의 주파수 만을 튜닝(tuning)시켜 선택할 수 있다. 방송 신호는 오디오(audio), 비디오(video) 및 부가 정보(예를 들어, EPG(Electronic Program Guide))를 포함한다.
튜너부(540)는 사용자 입력(예를 들어, 외부의 제어 장치(미도시), 예를 들어, 원격 제어기(remote controller)로부터 수신되는 제어 신호, 예컨대, 채널 번호 입력, 채널의 업다운(up-down) 입력 및 EPG 화면에서 채널 입력)에 따라 채널 번호(예를 들어, 케이블 방송 506번)에 대응되는 주파수 대역에서 방송 신호를 수신할 수 있다.
튜너부(540)은 지상파 방송, 케이블 방송, 위성 방송, 인터넷 방송 등과 같이 다양한 소스로부터 방송 신호를 수신할 수 있다. 튜너부(540)는 아날로그 방송 또는 디지털 방송 등과 같은 소스로부터 방송 신호를 수신할 수 도 있다. 튜너부(540)를 통해 수신된 방송 신호는 디코딩(decoding, 예를 들어, 오디오 디코딩, 비디오 디코딩 또는 부가 정보 디코딩)되어 오디오, 비디오 및/또는 부가 정보로 분리된다. 분리된 오디오, 비디오 및/또는 부가 정보는 프로세서(580)의 제어에 의해 메모리(590)에 저장될 수 있다.
전자 장치(1000)의 튜너부(540)는 하나이거나 복수일 수 있다. 일 실시예에 따라서 튜너부(540)가 복수 개로 이루어지는 경우, 디스플레이(515)에 제공되는 멀티 윈도우 화면을 이루는 복수개의 윈도우에 복수개의 방송 신호를 출력할 수 있을 것이다.
튜너부(540)는 전자 장치(1000)와 일체형(all-in-one)으로 구현되거나 또는 전자 장치(1000)와 전기적으로 연결되는 튜너부를 가지는 별개의 장치(예를 들어, 셋탑박스(set-top box, 미도시), 입/출력부(570)에 연결되는 튜너부(미도시))로 구현될 수 있다.
통신부(550)는 프로세서(580)의 제어에 의해 전자 장치(1000)를 외부 장치(예를 들어, 외장 카메라, 스마트 폰, 오디오 장치 등)와 연결할 수 있다. 프로세서(580)는 통신부(550)를 통해 연결된 외부 장치로 컨텐츠를 송/수신, 외부 장치에서부터 어플리케이션(application)을 다운로드 하거나 또는 웹 브라우징을 할 수 있다. 구체적으로, 통신부(550)는 네트워크에 접속하여 외부 장치(미도시)에서 컨텐츠를 수신할 수 있다.
전술한 바와 같이 통신부(550)는 근거리 통신 모듈(미도시), 유선 통신 모듈(미도시), 및 이동 통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다.
도 5에서는 통신부(550)가 무선 랜(551), 블루투스 통신부(552), 및 유선 이더넷(Ethernet, 553) 중 하나를 포함하는 경우를 예로 들어 도시하였다.
또한, 통신부(550)은 무선 랜(551), 블루투스 통신부(552), 및 유선 이더넷(Ethernet, 553) 중 어느 하나 이상을 포함하는 모듈 조합을 포함할 수 있다. 또한, 통신부(550)는 프로세서(580)의 제어에 의해 제어 장치(미도시)의 제어 신호를 수신할 수 있다. 제어 신호는 블루투스 타입, RF 신호 타입 또는 와이파이 타입으로 구현될 수 있다.
통신부(550)는 블루투스 외에 다른 근거리 통신(예를 들어, NFC(near field communication, 미도시), 별도의 BLE 모듈(bluetooth low energy, 미도시)을 더 포함할 수 있다.
감지부(560)는 사용자의 음성, 사용자의 영상 또는 사용자의 인터랙션을 감지한다. 일 실시예에서, 감지부(560)는 마이크(561), 카메라부(562) 및 광 수신부(563) 중 적어도 하나를 포함할 수 있다.
마이크(561)는 사용자의 발화(utterance)된 음성을 수신한다. 마이크(561)는 수신된 음성을 전기 신호로 변환하여 프로세서(580)로 출력할 수 있다. 사용자 음성은 예를 들어, 전자 장치(1000)의 메뉴 또는 기능에 대응되는 음성을 포함할 수 있다. 예를 들어, 마이크(561)의 인식 범위는 마이크(561)에서부터 사용자 위치까지 설정된 거리(예를 들어, 4 m) 이내를 권장하며, 마이크(561)의 인식 범위는 사용자 목소리의 크기와 주변 환경(예를 들어, 스피커 소리, 주변 소음)에 대응하여 달라질 수 있다.
마이크(561)는 전자 장치(1000)와 일체형 또는 분리형으로 구현될 수 있다. 분리된 마이크(561)는 통신부(550) 또는 입/출력부(570)를 통해 전자 장치(1000)와 전기적으로 연결될 수 있다.
전자 장치(1000)의 성능 및 구조에 따라 마이크(561)가 제외될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
카메라부(562)는 카메라 인식 범위에서 제스처를 포함하는 사용자의 모션에 대응되는 영상(예를 들어, 연속되는 프레임)을 수신한다. 예를 들어, 카메라부(562)의 인식 범위는 카메라부(562)에서부터 사용자까지 0.1 ~ 5 m 이내 거리가 될 수 있다. 사용자 모션은 예를 들어, 사용자의 얼굴, 표정, 손, 주먹, 손가락과 같은 사용자의 신체 일부분 또는 사용자 일부분의 모션 등을 포함할 수 있다. 카메라부(562)는 프로세서(580)의 제어에 따라 수신된 영상을 전기 신호로 변환하여 프로세서(580)로 출력할 수 있다.
프로세서(580)는 수신된 모션의 인식 결과를 이용하여 전자 장치(1000)에 표시되는 메뉴를 선택하거나 모션 인식 결과에 대응되는 제어를 할 수 있다. 예를 들어, 채널 조정, 볼륨 조정, 지시자 이동을 포함할 수 있다.
카메라부(562)는 렌즈(미도시) 및 이미지 센서(미도시)로 구성될 수 있다. 카메라부(562)는 복수의 렌즈와 이미지 프로세싱을 이용하여 광학 줌(optical zoom) 또는 디지털 줌(digital zoom)을 지원할 수 있다. 카메라부(562)의 인식 범위는 카메라의 각도 및 주변 환경 조건에 따라 다양하게 설정될 수 있다. 카메라부(562)가 복수개의 카메라로 구성되는 경우, 복수의 카메라를 이용하여 3차원 정지 이미지 또는 3차원 모션을 수신할 수 있다.
카메라부(562)는 전자 장치(1000)와 일체형 또는 분리형으로 구현될 수 있다. 분리된 카메라부(562)를 포함하는 별도의 장치(미도시)는 통신부(550) 또는 입/출력부(570)를 통해 전자 장치(1000)와 전기적으로 연결될 수 있다.
전자 장치(1000)의 성능 및 구조에 따라 카메라부(562)가 제외될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
광 수신부(563)는 외부의 제어 장치(미도시)에서부터 수신되는 광 신호(제어 신호를 포함)를 디스플레이(515)의 베젤의 광창(미도시) 등을 통해 수신한다. 광 수신부(563)는 제어 장치(미도시)로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서(580)의 제어에 의해 제어 신호가 추출될 수 있다.
예를 들어, 광 수신부(563)는 제어 장치(미도시)의 포인팅 위치에 대응하는 신호를 수신하고 이를 프로세서(580)로 전송할 수 있다. 예를 들어, 디스플레이(515)를 통하여 사용자로부터 데이터 또는 명령을 입력받기 위한 사용자 인터페이스 화면이 표시되었으며, 제어 장치(미도시)를 통하여 사용자가 데이터 또는 명령을 전자 장치(1000)로 입력하고자 하는 경우, 광 수신부(563)는 사용자가 제어 장치(미도시)에 마련된 터치 패드(미도시)에 손가락을 접촉한 상태에서 제어 장치(미도시)를 움직이면 이 제어 장치(미도시)의 움직임에 대응하는 신호를 수신하고 이를 프로세서(580)로 전송할 수 있다. 또한, 광 수신부(563)는 제어 장치(미도시)에 마련된 특정한 버튼이 눌려졌음을 나타내는 신호를 수신하고 이를 프로세서(580)로 전송할 수 있다. 예를 들어 광 수신부(563)는 사용자가 제어 장치(미도시)에 버튼식으로 마련된 터치 패드(미도시)를 손가락으로 누르면, 이러한 버튼식 터치 패드(미도시)이 눌려졌다는 신호를 수신하고 이를 프로세서(580)로 전송할 수 있다. 예를 들어, 버튼식 터치 패드(미도시)가 눌려졌다는 신호는 아이템들 중의 하나를 선택하기 위한 신호로 이용할 수 있다.
입/출력부(570)는 프로세서(580)의 제어에 의해 전자 장치(1000)의 외부에서부터 비디오(예를 들어, 동영상 등), 오디오(예를 들어, 음성, 음악 등) 및 부가 정보(예를 들어, EPG 등) 등을 수신한다. 입/출력부(570)는 HDMI 포트(High-Definition Multimedia Interface port, 571), 컴포넌트 잭(component jack, 572), PC 포트(PC port, 573), 및 USB 포트(USB port, 574) 중 하나를 포함할 수 있다. 입/출력부(570)는 HDMI 포트(571), 컴포넌트 잭(572), PC 포트(573), 및 USB 포트(574)의 조합을 포함할 수 있다.
입/출력부(570)의 구성 및 동작은 본 발명의 실시예에 따라 다양하게 구현될 수 있다는 것은 당해 기술 분야의 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
프로세서(580)는 전자 장치(1000)의 전반적인 동작 및 전자 장치(1000)의 내부 구성요소들(미도시)사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다. 프로세서(580)는 사용자의 입력이 있거나 기 설정되어 저장된 조건을 만족하는 경우, 프로세서(580)는 메모리(590)에 저장된 OS(Operation System) 및 다양한 애플리케이션을 실행할 수 있다.
프로세서(580)는 전자 장치(1000)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 전자 장치(1000)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 전자 장치(1000)의 제어를 위한 제어 프로그램이 저장된 ROM(미도시) 및 프로세서(Processor)(미도시)를 포함할 수 있다.
프로세서(미도시)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다. 프로세서(미도시)는 싱글 코어, 듀얼 코어, 트리플 코어, 쿼드 코어 및 그 배수의 코어를 포함할 수 있다.
또한, 프로세서(미도시)는 복수의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(미도시)는 메인 프로세서(main processor, 미도시) 및 슬립 모드(sleep mode)에서 동작하는 서브 프로세서(sub processor, 미도시)로 구현될 수 있다.
그래픽 처리부(미도시)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부는 감지부(미도시)를 통해 감지된 사용자 인터랙션을 이용하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부는 연산부에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 렌더링부에서 생성된 화면은 디스플레이(515)의 디스플레이 영역 내에 표시된다.
이하에서는, 도 6 내지 도 16을 참조하여, 개시된 실시예에 따른 전자 장치(1000)에서 수행되는 동작들 또는 전자 장치(1000)에서 수행되는 제어 동작들을 상세히 설명한다.
도 6은 다양한 실시예들에 따른 전자 장치가 음성 지원 서비스를 제공하기 위한 방법을 나타내는 흐름도이다. 도 6에 도시된 전자 장치의 동작 방법은 도 1 내지 도 5를 참조하여 설명한 개시된 실시예에 따른 전자 장치(1000) 또는 전자 장치(1000)의 프로세서(210)에 의해 수행될 수 있다.
도 6을 참조하면, 동작 S610에서, 전자 장치(1000)는 사용자의 음성 입력을 포함하는 음성 데이터를 획득할 수 있다. 다양한 실시예들에서, 음성 데이터는 음성 명령에 대응되는 오디오 데이터를 포함할 수 있다. 다양한 실시예들에서, 음성 데이터는 디지털 신호 또는 아날로그 신호의 형태를 가질 수 있다.
일 실시예에서, 전자 장치(1000)는 내장 마이크를 통하여 음성 데이터를 획득할 수 있다. 다른 실시예에서, 전자 장치(1000)는 외부 장치로부터 전송된 음성 데이터를 수신할 수 있다.
동작 S620에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태 정보에 기초한 성능 레벨에 따라, 사용자의 음성에 대한 응답을 획득하고 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태 정보를 획득할 수 있다. 일 실시예에서, 성능 상태 정보는 전자 장치(1000)의 자원 사용량 또는 단위 시간당 처리량을 포함할 수 있다. 일 실시예에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태를 실시간으로 모니터링하여 성능 상태 정보를 획득할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는, 성능 상태 정보에 기초하여 전자 장치의 성능 레벨을 식별할 수 있다. 예를 들어, 전자 장치는 성능 상태 정보에 기초하여 성능 레벨을 제1 레벨(좋음), 제2 레벨(보통), 제3 레벨(나쁨), 제4레벨(매우 나쁨) 중 하나로 식별할 수 있다. 물론 상기 예시에 제한되지 않으며, 성능 레벨의 개수는 전자 장치(1000)에서 설정 가능한 처리 경로의 개수에 따라 임의로 설정될 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 식별된 성능 레벨에 기초하여 사용자의 음성에 대한 응답을 획득하기 위한 처리 경로를 식별할 수 있다. 예를 들어, 전자 장치(1000)는 사용자의 음성에 대한 응답을 전자 장치(1000)에서 자체적으로 획득하도록 식별하거나, 또는 음성 서비스 서버(2000)에서 획득하도록 식별할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 식별된 성능 레벨에 기초하여 응답에 대응되는 UI를 처리하기 위한 처리 경로를 식별할 수 있다. 예를 들어, 전자 장치(1000)는 응답에 대응되는 UI를 전자 장치(1000)에서 자체적으로 처리하도록 식별하거나, 또는 클라우드 UI 서버(3000)에서 처리하도록 식별할 수 있다.
전자 장치(1000)가 성능 상태 정보에 기초한 성능 레벨에 따라 처리 경로를 식별하는 구체적인 방법에 대해서는 도 7 내지 도 16을 참조하여 보다 상세히 설명된다.
동작 S630에서, 전자 장치(1000)는 처리 경로에 기초하여, 음성 데이터에 대한 처리를 수행하고, 처리된 UI를 획득하여 출력하도록 제어할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 처리 경로에 기초하여, 사용자의 음성에 대한 응답을 전자 장치(1000)에서 획득하도록 제어하거나, 또는 음성 서비스 서버(2000)에서 획득하도록 제어할 수 있다. 일 실시예에서, 전자 장치(1000)는 내장 음성 지원 서비스 엔진을 이용하여 음성 데이터로부터 음성 명령을 인식하고, 음성 명령에 대응되는 응답을 획득할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 인식된 음성 명령을 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 처리 경로에 기초하여, 응답에 대응되는 UI를 전자 장치(1000)에서 처리하도록 제어하거나, 또는 클라우드 UI 서버(3000)에서 처리하도록 제어할 수 있다. 일 실시예에서, 전자 장치(1000)는 내장된 UI 렌더러를 이용하여 사용자의 음성에 대한 응답에 대응되는 UI를 처리할 수 있다. 다른 실시예에서, 전자 장치(1000)는 직접 UI를 처리하는 대신, 클라우드 UI 서버(3000)로부터, 클라우드 UI 서버(3000)에서 처리된 UI를 수신할 수 있다.
다양한 실시예들에서, 전자 장치(1000)는 처리된 UI를 출력하도록 제어할 수 있다. 일 실시예에서, 전자 장치(1000)는 처리된 UI를 출력하도록 전자 장치(1000)에 포함된 디스플레이를 제어할 수 있다. 다른 실시예에서, 전자 장치(1000)는 외부 디스플레이에서 처리된 UI를 출력하기 위하여 처리된 UI를 외부 디스플레이로 전송할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치가 처리 경로를 식별하는 방법을 나타내는 흐름도이다. 도 7에 도시된 전자 장치의 동작 방법은 도 1 내지 도 5를 참조하여 설명한 개시된 실시예에 따른 전자 장치(1000) 또는 전자 장치(1000)의 프로세서(210)에 의해 수행될 수 있다. 도 7에 도시된 동작들은 도 6에 도시된 동작 S620에 상응할 수 있다.
도 7을 참조하면, 동작 S710에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태 정보에 기초하여 전자 장치의 성능 레벨을 식별할 수 있다.
일 실시예에서, 전자 장치(1000)는 미리 정의된 규칙에 기초하여 상기 성능 레벨을 식별할 수 있다. 예를 들어, 전자 장치(1000)는 미리 정의된 규칙 테이블에 기초하여, 현재의 성능 상태 정보에 대응되는 성능 레벨을 식별할 수 있다.
일 실시예에서, 전자 장치(1000)는 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하고, 상기 규칙 및 상기 성능 상태 정보에 기초하여 상기 성능 레벨을 식별할 수 있다. 예를 들어, 전자 장치(1000)는 성능 상태 정보에 기초하여 성능 레벨을 식별하기 위한 규칙 테이블을 획득할 수 있다. 일 실시예에서, 전자 장치(1000)는 인공지능 모델을 이용하여 상기 성능 레벨을 식별하기 위한 규칙을 획득할 수 있다.
동작 S720에서, 전자 장치(1000)는 성능 레벨을 제1 기준 레벨과 비교한 결과에 기초하여 사용자의 음성에 대한 응답을 획득하기 위한 처리 경로를 식별할 수 있다. 일 실시예에서, 제1 기준 레벨은 미리 정해진 것일 수 있다. 다른 실시예에서, 제1 기준 레벨은 전자 장치(1000)의 성능 상태 정보에 기초하여 적응적으로 결정될 수 있다. 예를 들어, 전자 장치(1000)는 성능 상태 정보의 최고치, 최저치, 또는 변화량 중 적어도 하나에 기초하여, 제1 기준 레벨을 결정할 수 있다.
성능 레벨이 제1 기준 레벨 미만인 경우, 전자 장치(1000)는 동작 S730을 수행할 수 있다. 동작 S730에서, 전자 장치(1000)는 사용자의 음성에 대한 응답을 전자 장치(1000)에서 획득하기로 식별할 수 있다. 일 실시예에서, 전자 장치(1000)는 내장 음성 지원 서비스 엔진을 이용하여 음성 데이터로부터 음성 명령을 인식하고, 음성 명령에 대응되는 응답을 획득하도록 제어할 수 있다.
성능 레벨이 제1 기준 레벨 이상인 경우, 전자 장치(1000)는 동작 S740을 수행할 수 있다. 동작 S740에서, 전자 장치(1000)는 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 획득하기로 식별할 수 있다. 일 실시예에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신하도록 제어할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 인식된 음성 명령을 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신하도록 제어할 수 있다. 예를 들어, 전자 장치(1000)는 음성 데이터를 텍스트로 변환하는 STT(sound-to-text) 기능을 수행하여 텍스트 데이터를 획득하고, 텍스트 데이터를 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 획득된 응답을 수신하도록 제어할 수 있다.
도 8은 다양한 실시예들에 따른 전자 장치가 처리 경로를 식별하는 방법을 나타내는 다른 흐름도이다. 도 8에 도시된 전자 장치의 동작 방법은 도 1 내지 도 5를 참조하여 설명한 개시된 실시예에 따른 전자 장치(1000) 또는 전자 장치(1000)의 프로세서(210)에 의해 수행될 수 있다. 도 8에 도시된 동작들은 도 6에 도시된 동작 S620에 상응할 수 있다.
도 8을 참조하면, 동작 S810에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태 정보에 기초하여 전자 장치의 성능 레벨을 식별할 수 있다. 동작 S810은 도 7에 도시된 동작 S710에 상응할 수 있으므로, 중복되는 설명은 생략한다.
동작 S720에서, 전자 장치(1000)는 성능 레벨을 제2 기준 레벨과 비교한 결과에 기초하여 응답에 대응되는 UI를 처리하기 위한 처리 경로를 식별할 수 있다. 일 실시예에서, 제2 기준 레벨은 미리 정해진 것일 수 있다. 다른 실시예에서, 제2 기준 레벨은 전자 장치(1000)의 성능 상태 정보에 기초하여 적응적으로 결정될 수 있다. 예를 들어, 전자 장치(1000)는 성능 상태 정보의 최고치, 최저치, 또는 변화량 중 적어도 하나에 기초하여, 제2 기준 레벨을 결정할 수 있다.
일 실시예에서, 도 7에서 설명되는 제1 기준 레벨과, 도 8에서 설명되는 제2 기준 레벨은 서로 상이할 수 있다. 일 실시예에서, 제1 기준 레벨과 제2 기준 레벨을 결정하는 방법은 서로 상이할 수 있다.
성능 레벨이 제2 기준 레벨 미만인 경우, 전자 장치(1000)는 동작 S830을 수행할 수 있다. 동작 S830에서, 전자 장치(1000)는 응답에 대응되는 UI를 전자 장치(1000)에서 처리하기로 식별할 수 있다. 일 실시예에서, 전자 장치(1000)는 내장된 UI 렌더러를 이용하여 사용자의 음성에 대한 응답에 대응되는 UI를 처리하도록 제어할 수 있다.
성능 레벨이 제2 기준 레벨 이상인 경우, 전자 장치(1000)는 동작 S840을 수행할 수 있다. 동작 S840에서, 전자 장치(1000)는 응답에 대응되는 UI를 클라우드 UI 서버(3000)에서 처리하기로 식별할 수 있다. 일 실시예에서, 전자 장치(1000)는 직접 UI를 처리하지 않고, 클라우드 UI 서버(3000)로부터, 클라우드 UI 서버(3000)에서 처리된 UI를 수신하도록 제어할 수 있다.
도 9는 다양한 실시예들에 따른 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 상기 음성 지원 서비스를 제공하기 위한 시스템은 전자 장치(1000), 음성 서비스 서버(2000), 및 클라우드 UI 서버(3000)를 포함할 수 있다.
다양한 실시예들에 따른 전자 장치(1000)는 시스템 모니터(1010), 성능 레벨 규칙 생성 유닛(1020), 규칙 검사 유닛(1030), 음성 어시스턴트 프레임워크(1040), 음성 어시스턴트 데몬(1050), 내장 음성 어시스턴트 엔진(1060), 음성 어시스턴트 클라이언트(1070), UI 렌더러(1080), 웹 엔진(1090), 클라우드 UI 클라이언트(1100), 및 디스플레이(1200)를 포함할 수 있다.
시스템 모니터(1010)는 전자 장치(1000)의 성능 상태를 실시간으로 모니터링하여, 그 결과를 성능 상태 정보로서 출력할 수 있다. 일 실시예에서, 시스템 모니터(1010)는 전자 장치(1000)의 자원 사용량 또는 단위 시간당 처리량을 모니터링 할 수 있다. 예를 들어, 성능 상태 정보는 전자 장치(1000)의 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 중 적어도 하나를 포함할 수 있다.
성능 레벨 규칙 생성 유닛(1020)은 시스템 모니터(1010)에서 생성된 성능 상태 정보에 기반하여, 성능 레벨을 결정하기 위한 규칙을 생성할 수 있다. 일 실시예에서, 성능 레벨 규칙 생성 유닛(1020)은 미리 정의된 규칙을 성능 상태 정보에 기초하여 유동적으로 변경할 수 있다.
일 실시예에서, 성능 레벨 규칙 생성 유닛(1020)은 성능 상태 정보의 최고값, 최저값, 및 변화량에 기초하여 성능 레벨 규칙을 생성하거나 또는 변경할 수 있다. 예를 들어, 모니터링된 자원 사용량 또는 단위 시간당 처리량이 평균적으로 기준을 밑돌더라도 그 실시간 변화 폭이 크다면, 시스템의 성능 레벨을 더 나쁘게 평가하도록 성능 레벨 규칙을 생성할 수 있다. 반대로, 자원 사용량 또는 단위 시간당 처리량이 기준을 초과하더라도 변화 폭이 작다면 시스템의 성능 레벨을 보다 좋게 평가하도록 성능 레벨 규칙을 생성할 수 있다.
일 실시예에서, 성능 레벨 규칙 생성 유닛(1020)은 인공지능 모델을 이용하여 성능 레벨을 판단하기 위한 규칙을 생성할 수 있다. 예를 들어, 성능 레벨 규칙 생성 유닛(1020)은 성능 상태 정보를 이용하여 인공지능 모델을 학습시킬 수 있다.
규칙 검사 유닛(1030)은 현재의 성능 상태 정보 및 성능 레벨 규칙 생성 유닛(1020)에서 생성된 성능 레벨 규칙에 기초하여, 현재의 성능 레벨을 결정할 수 있다.
음성 어시스턴트 프레임워크(Voice Assistant Framework)(1040)는 사용자의 발화 이벤트를 감지하여 음성 데이터를 획득할 수 있다. 일 실시예에서, 음성 어시스턴트 프레임워크(1040)는 사용자가 전자 장치(1000)의 음성 명령 버튼을 누르거나, 사용자의 웨이크 업 명령을 수신하거나, 외부 장치로부터 소정의 신호를 수신함에 기초하여, 사용자의 발화 이벤트를 감지할 수 있다. 일 실시예에서, 음성 어시스턴트 프레임워크(1040)는 전자 장치(1000)에 포함된 마이크로부터 수신된 오디오를 녹음하여 음성 데이터를 획득할 수 있다. 다른 실시예에서, 음성 어시스턴트 프레임워크(1040)는 외부 장치로부터 전송된 음성 데이터를 수신할 수 있다.
음성 어시스턴트 데몬(Voice Assistant Daemon)(1050)은 규칙 검사 유닛(1030)에서 결정한 현재의 성능 레벨에 기초하여, 사용자의 음성에 대한 응답을 생성하고 응답에 대응되는 UI를 렌더링하기 위한 처리 경로를 결정할 수 있다. 일 실시예에서, 음성 어시스턴트 데몬(1050)은 결정된 처리 경로에 기초하여, 해당 처리 경로에서 사용자의 음성에 대한 응답을 생성하고 응답에 대응되는 UI를 렌더링하기 위하여 데이터 및/또는 요청을 전송할 수 있다.
일 실시예에서, 음성 어시스턴트 데몬(1050)은 사용자의 음성에 대한 응답을 전자 장치(1000)에서 자체적으로 생성하도록 결정하거나, 또는 음성 서비스 서버(2000)에서 생성하도록 결정할 수 있다. 예를 들어, 사용자의 음성에 대한 응답을 전자 장치(1000)에서 자체적으로 생성하도록 결정한 경우, 음성 어시스턴트 데몬(1050)은 음성 어시스턴트 프레임워크(1040)에서 획득한 사용자의 음성 데이터를 내장 음성 어시스턴트 엔진(1060)에 입력하여, 음성 명령을 인식하고 대응되는 응답을 생성하도록 할 수 있다. 다른 예를 들어, 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하도록 결정한 경우, 음성 어시스턴트 데몬(1050)은 음성 어시스턴트 클라이언트(1070)로 하여금 음성 데이터를 음성 서비스 서버(2000)로 전송하고 음성 서비스 서버(2000)로부터 생성된 응답을 수신하게끔 제어할 수 있다. 또는, 음성 어시스턴트 데몬(1050)은 내장 음성 어시스턴트 엔진(1060)이 음성 데이터로부터 음성 명령을 인식하고, 음성 어시스턴트 클라이언트(1070)가 인식된 음성 명령을 음성 서비스 서버(2000)에 전송하고, 음성 서비스 서버(2000)에서 생성된 응답을 수신하도록 제어할 수 있다.
일 실시예에서, 음성 어시스턴트 데몬(1050)은 응답에 대응되는 UI를 전자 장치(1000)에서 자체적으로 렌더링하도록 결정하거나, 또는 클라우드 UI 서버(3000)에서 렌더링하도록 결정할 수 있다. 예를 들어, 음성 어시스턴트 데몬(1050)은 UI 렌더러(1080)로 하여금 생성된 또는 수신된 응답을 전자 장치(1000)의 웹 엔진(1090) 또는 클라우드 UI 서버(3000)의 웹 엔진(3020)으로 전송하여 응답에 대응되는 UI를 렌더링하게끔 제어할 수 있다. 또는, 음성 어시스턴트 데몬(1050)은 클라우드 UI 서버(3000)로 하여금 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 대응되는 UI를 생성하게끔 하고, 클라우드 UI 서버(3000)로부터 렌더링된 UI를 수신하도록 제어할 수 있다.
내장 음성 어시스턴트 엔진(Built-in Voice Assistance Engine)(1060)은 전자 장치(1000)에 탑재 또는 저장된 음성 지원 서비스 제공 모듈 또는 어플리케이션일 수 있다. 일 실시예에서, 내장 음성 어시스턴트 엔진(1060)은 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 다른 실시예에서, 내장 음성 어시스턴트 엔진(1060)은 음성 데이터로부터 사용자의 음성 명령을 인식하고, 인식한 음성 명령을 음성 어시스턴트 클라이언트(1070)로 입력하여 음성 서비스 서버(2000)에 전송되게끔 할 수 있다.
일 실시예에서, 내장 음성 어시스턴트 엔진(1060)에서 생성된 응답은 소정의 규칙에 따라 렌더링될 수 있는 소스코드 형태로 출력될 수 있다. 예를 들어, 생성된 응답은 웹 브라우저에서 렌더링될 수 있는 HTML 문서의 형태로 출력될 수 있다.
일 실시예에서, 내장 음성 어시스턴트 엔진(1060)은 인공지능 모델을 포함할 수 있다. 인공지능 모델은 미리 학습되어 전자 장치(1000)에 탑재된 것일 수 있고, 사용자의 음성 데이터를 지속적으로 학습하여 업데이트될 수도 있다. 내장 음성 어시스턴트 엔진(1060)에 포함된 인공지능 모델은, 음성 서비스 서버(2000)에 포함된 음성 어시스턴트 엔진(2010)에서 사용되는 것보다 적은 자원을 요구하는 가벼운 인공지능 모델일 수 있다.
음성 어시스턴트 클라이언트(Voice Assistant Client)(1070)는 음성 서비스 서버(2000)와 커뮤니케이션하기 위한 전자 장치(1000) 측의 인터페이스 기능을 수행하는 모듈 또는 어플리케이션일 수 이다. 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하기로 결정한 경우, 음성 어시스턴트 클라이언트(1070)는 음성 데이터를 음성 서비스 서버(2000)로 전달하고, 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 UI 렌더러(1080)로 전달할 수 있다.
UI 렌더러(1080)는 음성 어시스턴트 데몬(1050)에서 결정한 처리 경로에 따라, 음성 어시스턴트 클라이언트(1070)로부터 받은 응답을 전송할 수 있다. 응답에 대응되는 UI를 전자 장치(1000)에서 자체적으로 렌더링하도록 결정한 경우, UI 렌더러(1080)는 응답을 웹 엔진(1090)에 입력하여 응답에 대응되는 UI를 렌더링하도록 제어할 수 있다. 응답에 대응되는 UI를 클라우드 UI 서버(3000)에서 렌더링하도록 결정한 경우, UI 렌더러(1080)는 응답을 클라우드 UI 서버(3000)로 전송하여 대응되는 UI를 생성하게끔 하고, 클라우드 UI 서버(3000)로부터 렌더링된 UI를 수신하도록 제어할 수 있다.
웹 엔진(1090)은 전자 장치(1000)에서 응답에 대응되는 UI를 렌더링할 수 있는 모듈 또는 어플리케이션일 수 있다. 일 실시예에서, 웹 엔진은 소스코드 형태의 응답을 소정의 규칙에 따라 렌더링할 수 있다. 예를 들어, 웹 엔진은 HTML 문서를 렌더링할 수 있는 웹 브라우저일 수 있다.
클라우드 UI 클라이언트(1100)는 클라우드 UI 서버(3000)와 커뮤니케이션하기 위한 전자 장치(1000) 측의 인터페이스 기능을 수행하는 모듈 또는 어플리케이션일 수 이다. 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하기로 결정한 경우, 클라우드 UI 클라이언트(1100)는 응답을 클라우드 UI 서버(3000)로 전송하여 대응되는 UI를 생성하게끔 하고, 클라우드 UI 서버(3000)로부터 렌더링된 UI를 수신할 수 있다.
디스플레이(1200)는 렌더링된 UI를 화면에 출력할 수 있다. 디스플레이(1200)는 도 2 내지 도 5에 도시된 디스플레이(220) 또는 디스플레이(515)에 대응될 수 있으므로, 중복되는 설명은 생략한다.
음성 서비스 서버(2000)는 음성 어시스턴트 엔진(2010)을 포함할 수 있다. 일 실시예에서, 음성 어시스턴트 엔진(2010)은 전자 장치(1000)로부터 전송된 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 다른 실시예에서, 음성 어시스턴트 엔진(2010)은 전자 장치(1000)로부터 전송된 음성 명령을 입력받아, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 일 실시예에서, 음성 어시스턴트 엔진(2010)은 생성된 응답을 전자 장치(1000)에 전송하여 응답에 대응되는 UI를 렌더링하게 할 수 있다. 다른 실시예에서, 음성 어시스턴트 엔진(2010)은 생성된 응답을 클라우드 UI 서버(3000)에 전송하여 응답에 대응되는 UI를 렌더링하게 할 수 있다.
클라우드 UI 서버(3000)는 가상 음성 어시스턴트 클라이언트(3010), 웹 엔진(3020), 및 UI 스트리머(3030)를 포함할 수 있다.
가상 음성 어시스턴트 클라이언트(3010)는 음성 서비스 서버(2000)와 커뮤니케이션하기 위한 클라우드 UI 서버(3000) 측의 인터페이스 기능을 수행하는 모듈 또는 어플리케이션일 수 이다. 가상 음성 어시스턴트 클라이언트(3010)는 전자 장치(1000)에서 음성 어시스턴트 클라이언트(1070)가 기능하는 것처럼 클라우드 UI 서버(3000) 상에서 동작할 수 있다. 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하기로 결정한 경우, 가상 음성 어시스턴트 클라이언트(3010)는 전자 장치(1000)로부터 음성 데이터를 수신하고, 수신한 음성 데이터를 음성 서비스 서버(2000)로 전달하고, 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 웹 엔진(3020)으로 전달할 수 있다.
웹 엔진(3020)은 클라우드 UI 서버(3000)에서 응답에 대응되는 UI를 렌더링할 수 있는 모듈 또는 어플리케이션일 수 있다. 웹 엔진(3020)의 기능은 전자 장치(1000)의 웹 엔진(1090)에 상응할 수 있으므로, 중복되는 설명은 생략한다.
UI 스트리머(3030)는 웹 엔진(3020)에서 렌더링된 UI를 전자 장치(1000)로 스트리밍할 수 있다. 예를 들어, UI 스트리머(3030)는 렌더링된 UI 화면에 대응되는 영상 데이터를 전자 장치(1000)로 전송할 수 있다.
도 10은 일 실시예에 따른, 전자 장치의 성능 상황이 좋은 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
일 실시예에서, 규칙 검사 유닛(1030)은 전자 장치(1000)의 현재 성능 상태 정보 및 성능 레벨 규칙에 기초하여, 현재 성능 레벨이 좋은 상태에 해당하고 시스템이 대기 중(idle)인 상황에 있다고 판단할 수 있다. 이 경우, 음성 어시스턴트 데몬(1050)은 사용자의 음성에 대한 응답을 전자 장치(1000)에서 자체적으로 생성하고, 응답에 대응되는 UI도 전자 장치(1000)에서 자체적으로 렌더링하도록 처리 경로를 결정할 수 있다.
음성 어시스턴트 데몬(1050)은 음성 어시스턴트 프레임워크(1040)에서 획득한 사용자의 음성 데이터를 내장 음성 어시스턴트 엔진(1060)으로 전달할 수 있다. 내장 음성 어시스턴트 엔진(1060)은 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 내장 음성 어시스턴트 엔진(1060)은 생성된 응답을 UI 렌더러(1080)로 전달할 수 있다.
UI 렌더러(1080)는 음성 어시스턴트 데몬(1050)에서 결정한 처리 경로에 따라, 응답을 웹 엔진(1090)에 전달할 수 있다. 웹 엔진(1090)은 수신한 응답에 대응되는 UI를 렌더링할 수 있다.
도 11은 일 실시예에 따른, 전자 장치의 성능 상황이 보통인 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
일 실시예에서, 규칙 검사 유닛(1030)은 전자 장치(1000)의 현재 성능 상태 정보 및 성능 레벨 규칙에 기초하여, 현재 현재 성능 레벨이 보통 상태에 해당하고 시스템 부하가 낮은(low) 상황에 있다고 판단할 수 있다. 이 경우, 음성 어시스턴트 데몬(1050)은 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하고, 응답에 대응되는 UI는 전자 장치(1000)에서 자체적으로 렌더링하도록 처리 경로를 결정할 수 있다.
음성 어시스턴트 데몬(1050)은 음성 어시스턴트 프레임워크(1040)에서 획득한 사용자의 음성 데이터를 음성 어시스턴트 클라이언트(1070)로 전달할 수 있다. 음성 어시스턴트 클라이언트(1070)는 음성 데이터를 음성 서비스 서버(2000)로 전송할 수 있다.
음성 서비스 서버(2000)의 음성 어시스턴트 엔진(2010)은 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 음성 어시스턴트 엔진(2010)은 생성된 응답을 음성 어시스턴트 클라이언트(1070)로 전송할 수 있다. 음성 어시스턴트 클라이언트(1070)는 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 UI 렌더러(1080)로 전달할 수 있다.
UI 렌더러(1080)는 음성 어시스턴트 데몬(1050)에서 결정한 처리 경로에 따라, 응답을 웹 엔진(1090)에 전달할 수 있다. 웹 엔진(1090)은 수신한 응답에 대응되는 UI를 렌더링하여, 디스플레이(1200)에 표시되도록 할 수 있다.
도 12은 일 실시예에 따른, 전자 장치의 성능 상황이 나쁜 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
일 실시예에서, 규칙 검사 유닛(1030)은 전자 장치(1000)의 현재 성능 상태 정보 및 성능 레벨 규칙에 기초하여, 현재 성능 레벨이 나쁜 상태에 해당하고 시스템 부하가 높은(high) 상황에 있다고 판단할 수 있다. 이 경우, 음성 어시스턴트 데몬(1050)은 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하고, 응답에 대응되는 UI는 클라우드 UI 서버(3000)에서 렌더링하도록 처리 경로를 결정할 수 있다.
음성 어시스턴트 데몬(1050)은 음성 어시스턴트 프레임워크(1040)에서 획득한 사용자의 음성 데이터를 음성 어시스턴트 클라이언트(1070)로 전달할 수 있다. 음성 어시스턴트 클라이언트(1070)는 음성 데이터를 음성 서비스 서버(2000)로 전송할 수 있다.
음성 서비스 서버(2000)의 음성 어시스턴트 엔진(2010)은 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 음성 어시스턴트 엔진(2010)은 생성된 응답을 음성 어시스턴트 클라이언트(1070)로 전송할 수 있다. 음성 어시스턴트 클라이언트(1070)는 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 UI 렌더러(1080)로 전달할 수 있다.
UI 렌더러(1080)는 음성 어시스턴트 데몬(1050)에서 결정한 처리 경로에 따라, 응답을 클라우드 UI 클라이언트(1100)로 전달할 수 있다. 클라우드 UI 클라이언트(1100)는 상기 응답을 클라우드 UI 서버(3000)의 웹 엔진(3020)에 전송할 수 있다.
클라우드 UI 서버(3000)의 웹 엔진(3020)은 수신한 응답에 대응되는 UI를 렌더링할 수 있다. 클라우드 UI 서버(3000)의 UI 스트리머(3030)는 웹 엔진(3020)에서 렌더링된 UI를 전자 장치(1000)로 스트리밍할 수 있다. 클라우드 UI 클라이언트(1100)는 UI 스트리머(3030)로부터 렌더링된 UI 화면에 대응되는 영상 데이터를 수신하여, 디스플레이(1200)에 표시되도록 할 수 있다.
도 13은 일 실시예에 따른, 전자 장치의 성능 상황이 매우 나쁜 경우 음성 지원 서비스를 제공하기 위한 시스템의 동작을 설명하기 위한 도면이다.
일 실시예에서, 규칙 검사 유닛(1030)은 전자 장치(1000)의 현재 성능 상태 정보 및 성능 레벨 규칙에 기초하여, 현재 성능 레벨이 매우 나쁜 상태에 해당하고 시스템 부하가 임계에 달한(critical) 상황에 있다고 판단할 수 있다. 이 경우, 음성 어시스턴트 데몬(1050)은 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 생성하고, 응답에 대응되는 UI는 클라우드 UI 서버(3000)에서 자체적으로 렌더링하되, 음성 서비스 서버(2000)와 클라우드 UI 서버(3000)가 직접 커뮤니케이션하고 전자 장치(1000)는 관여하지 않도록 처리 경로를 결정할 수 있다.
음성 어시스턴트 데몬(1050)은 음성 어시스턴트 프레임워크(1040)에서 획득한 사용자의 음성 데이터를 바로 클라우드 UI 서버의 가상 음성 어시스턴트 클라이언트(3010)로 전송할 수 있다. 가상 음성 어시스턴트 클라이언트(3010)는 음성 데이터를 음성 서비스 서버(2000)로 전송할 수 있다.
음성 서비스 서버(2000)의 음성 어시스턴트 엔진(2010)은 음성 데이터를 입력받아 사용자의 음성 명령을 인식하고, 인식된 음성 명령에 대한 응답을 생성할 수 있다. 음성 어시스턴트 엔진(2010)은 생성된 응답을 가상 음성 어시스턴트 클라이언트(3010)로 전송할 수 있다. 가상 음성 어시스턴트 클라이언트(3010)는 음성 서비스 서버(2000)에서 생성된 응답을 수신하여 웹 엔진(3020)에 전달할 수 있다.
웹 엔진(3020)은 수신한 응답에 대응되는 UI를 렌더링할 수 있다. UI 스트리머(3030)는 웹 엔진(3020)에서 렌더링된 UI를 전자 장치(1000)로 스트리밍할 수 있다. 전자 장치(1000)의 클라우드 UI 클라이언트(1100)는 UI 스트리머(3030)로부터 렌더링된 UI 화면에 대응되는 영상 데이터를 수신하여, 디스플레이(1200)에 표시되도록 할 수 있다.
도 14는 성능 규칙 테이블의 일 실시예를 나타내는 도면이다.
도 14를 참조하면, 예시적으로 프로세서(CPU) 사용량과 메모리(DDR) 사용량을 기준으로 성능 레벨을 4단계로 분류한 성능 규칙 테이블이 도시된다. 수치는 자원 이용률을 나타내며, 0인 경우 모든 자원이 이용 가능한 상태, 1인 경우 모든 자원이 사용 중인 상태를 나타낸다.
도 14에서는 프로세서와 메모리의 사용량에만 기초하여 성능 레벨을 결정하는 예시가 도시되었지만, 성능 규칙 테이블은 다양한 지표에 기초하여 정의될 수 있다. 예를 들어, 성능 규칙 테이블은 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 등의 성능 상태 정보에 기초하여 정의될 수 있으며, 사용되는 지표의 개수 역시 임의로 설정될 수 있다. 또한 도 14에서는 성능 레벨을 4단계로 분류하는 예시가 도시되었지만, 성능 레벨의 개수는 임의의 개수로 설정될 수 있다.
일 실시예에서, 성능 규칙 테이블은 미리 정의되어 전자 장치(1000)에 저장된 것일 수 있다. 다른 실시예에서, 성능 규칙 테이블은 전자 장치(1000)의 성능 상태 정보에 기초하여 생성될 수 있다. 예를 들어, 성능 규칙 테이블은 미리 정해진 기본값을 가지고, 전자 장치(1000)의 실제 성능 상태 정보의 변화에 따라 유동적으로 조정될 수 있다.
일 실시예에서, 성능 규칙 테이블은 인공지능 모델을 이용하여 생성될 수 있다. 예를 들어, 인공지능 모델은 성능 상태 정보 및 처리 경로에 따른 처리 결과를 학습하여, 성능 상태 정보에 따른 최적의 처리 경로를 탐색할 수 있다.
도 15은 일 실시예에 따른, 전자 장치가 음성 지원 서비스를 제공하기 위한 방법을 나타내는 흐름도이다. 도 15에 도시된 전자 장치의 동작 방법은 도 1 내지 도 5를 참조하여 설명한 개시된 실시예에 따른 전자 장치(1000) 또는 전자 장치(1000)의 프로세서(210)에 의해 수행될 수 있다.
도 15을 참조하면, 동작 S1510에서, 전자 장치(1000)는 사용자의 음성 입력을 포함하는 음성 데이터를 획득할 수 있다. 동작 S1510은 도 6의 동작 S610에 상응할 수 있으므로, 중복되는 설명은 생략한다.
동작 S1520에서, 전자 장치(1000)는 전자 장치(1000)의 성능 상태 정보에 기초하여 전자 장치의 성능 레벨을 식별할 수 있다. 본 실시예에서, 성능 레벨은 제1 레벨 내지 제4 레벨 중 하나로 식별될 수 있다. 동작 S1510은 도 7의 동작 S710에 상응할 수 있으므로, 중복되는 설명은 생략한다.
동작 S1530에서, 전자 장치(1000)는 성능 레벨에 기초하여 사용자의 음성에 대한 응답을 획득하고 응답에 대응되는 UI를 처리하기 위한 처리 경로를 식별할 수 있다.
성능 레벨이 제1 레벨인 경우, 전자 장치(1000)는 사용자의 음성에 대한 응답을 전자 장치(1000)에서 획득하고, 응답에 대응되는 UI를 전자 장치(1000)에서 처리하기로 결정하고, 동작 S1541 및 S1542를 수행할 수 있다. 동작 S1541에서, 전자 장치(1000)는 내장 음성 지원 서비스 엔진을 이용하여 음성 데이터로부터 음성 명령을 인식하고, 음성 명령에 대응되는 응답을 획득할 수 있다. 동작 S1542에서, 전자 장치(1000)는 내장된 UI 렌더러를 이용하여 사용자의 음성에 대한 응답에 대응되는 UI를 처리하여 출력하도록 제어할 수 있다.
성능 레벨이 제2 레벨인 경우, 전자 장치(1000)는 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 획득하고, 응답에 대응되는 UI는 전자 장치(1000)에서 처리하기로 결정하고, 동작 S1551 내지 S1553을 수행할 수 있다. 동작 S1551에서, 전자 장치(1000)는 음성 서비스 서버(2000)에 사용자의 음성에 대한 응답 획득을 요청할 수 있다. 일 실시예에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 인식된 음성 명령을 음성 서비스 서버(2000)에 전송할 수 있다. 동작 S1552에서, 전자 장치(1000)는 음성 서비스 서버(2000)로부터 획득된 응답을 수신할 수 있다. 동작 S1553에서, 전자 장치(1000)는 내장된 UI 렌더러를 이용하여 사용자의 음성에 대한 응답에 대응되는 UI를 처리하여 출력하도록 제어할 수 있다.
성능 레벨이 제3 레벨인 경우, 전자 장치(1000)는 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 획득하고, 응답에 대응되는 UI는 클라우드 UI 서버(3000)에서 처리하기로 결정하고, 동작 S1561 내지 S1563을 수행할 수 있다. 동작 S1561에서, 전자 장치(1000)는 음성 서비스 서버(2000)에 사용자의 음성에 대한 응답 획득을 요청할 수 있다. 일 실시예에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송할 수 있다. 다른 실시예에서, 전자 장치(1000)는 음성 데이터로부터 음성 명령을 인식하고, 인식된 음성 명령을 음성 서비스 서버(2000)에 전송할 수 있다. 동작 S1562에서, 전자 장치(1000)는 음성 서비스 서버(2000)로부터 획득된 응답을 수신할 수 있다. 동작 S1563에서, 전자 장치(1000)는 클라우드 UI 서버(3000)에 응답을 전송할 수 있다. 전자 장치(1000)는 클라우드 UI 서버(3000)에서 처리된, 응답에 대응되는 UI를 수신하여 출력하도록 제어할 수 있다.
성능 레벨이 제4 레벨인 경우, 전자 장치(1000)는 사용자의 음성에 대한 응답을 음성 서비스 서버(2000)에서 처리하고, 응답에 대응되는 UI는 클라우드 UI 서버(3000)에서 처리하되, 음성 서비스 서버(2000)와 클라우드 UI 서버(3000)가 직접 커뮤니케이션하고 전자 장치(1000)는 관여하지 않도록 처리 경로를 결정하고, 동작 S1571 내지 S1572을 수행할 수 있다. 동작 S1571에서, 전자 장치(1000)는 음성 데이터를 음성 서비스 서버(2000)에 전송할 수 있다. 동작 S1572에서, 전자 장치(1000)는 클라우드 UI 서버(3000)에서 처리된, 응답에 대응되는 UI를 수신하여 출력하도록 제어할 수 있다.
도 16은 일 실시예에 따른 인공지능 모델의 동작을 설명하기 위한 도면이다.
인공지능 모델(1600)은 성능 상태 정보를 입력받고, 성능 레벨을 결정하기 위한 성능 레벨 규칙을 생성하는 기능을 제공할 수 있다. 인공지능 모델(1600)은 성능 상태 정보 및 처리 경로에 따른 처리 결과를 학습하여, 성능 상태 정보에 따른 최적의 처리 경로를 탐색할 수 있다. 다양한 실시예들에서, 인공지능 모델은, 인공지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델일 수 있다.
일 실시예에서, 인공지능 모델(1600)은 복수 개의 계층 구조를 갖는 인공 신경망으로 구성될 수 있다. 인공 신경망은 입력 레이어, 적어도 하나의 히든 레이어 및 출력 레이어를 포함할 수 있다. 또한, 인공 신경망을 통한 연산은 게임 제공 장치 내의 프로세서에서 수행될 수 있다. 또한, 히든 레이어에서 수행된 학습 및 훈련을 통해 각 레이어와 노드 사이의 파라미터가 학습될 수 있다.
예를 들면, 전자 장치 내의 프로세서는 반복적인 학습을 통하여, 성능 상태 정보로부터 성능 레벨 규칙을 추출하는 데 영향을 미치는 요소들에 관련된 파라미터의 값들을 획득할 수 있다. 예를 들어, 전자 장치 내의 프로세서는 성능 상태 정보의 특성으로부터 성능 레벨에 영향을 미치는 파라미터의 값들을 획득할 수 있다. 예를 들어, 전자 장치 내의 프로세서는 성능 레벨에 따라 처리 경로를 결정하는 데 영향을 미치는 파라미터의 값들을 획득할 수 있다. 또한, 전자 장치는 획득된 파라미터의 값이 인공지능 모델에 반영되도록, 인공지능 모델을 재학습시킬 수 있다.
도 17은 다양한 실시예들에 따른 전자 장치와 통신하는 서버를 나타내는 블록도이다.
도 17을 참조하면, 서버(3000)는, 프로세서(1710), 메모리(1730), 및 통신부(1750)를 포함할 수 있다. 서버(3000)는 개시된 실시예에 따라 UI 렌더링 및 스트리밍을 수행할 수 있다.
프로세서(1710)는 서버(3000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1710)는, 서버(3000)의 메모리(1730)에 저장된 프로그램들을 실행함으로써, 메모리(1730) 및 통신부(1750) 등을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(1710)는 메모리(1730)에 저장된 프로그램들을 실행함으로써, UI 렌더링 및 스트리밍을 제어할 수 있다. 프로세서(1710)는, 렌더링된 UI를 전자 장치(1000)로 전송하기 위해 필요한 동작, 또는 전자 장치(1000)와의 데이터 송수신을 위해서 필요한 동작을 수행할 수 있다..
메모리(1730)는 서버(3000)가 소정 동작을 수행하기 위해서 필요한 적어도 하나의 인스트럭션, 프로그램, 데이터 중 적어도 하나를 저장할 수 있다.
통신부(1750)는 전자 장치(1000)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 통신부(1750)의 구체적인 구성은, 도 4에서 설명한 통신부(232)의 구성과 동일 대응되므로, 상세한 설명은 생략한다.
개시된 실시예에 따른 전자 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 또한, 개시된 실시예는, 전자 장치의 동작 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 될 수 있다.
상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
여기서, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (20)

  1. 전자 장치가 음성 지원 서비스를 제공하는 방법에 있어서,
    사용자의 음성 입력을 포함하는 음성 데이터를 획득하는 단계;
    상기 전자 장치의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별하는 단계;
    상기 처리 경로에 기초하여, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 중 적어도 하나를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 성능 상태를 실시간으로 모니터링하여 획득되는, 방법.
  4. 제1항에 있어서, 상기 처리 경로를 식별하는 단계는,
    상기 전자 장치의 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하는 단계;
    상기 획득된 규칙 및 상기 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하는 단계; 및
    상기 식별된 성능 레벨에 기초하여, 상기 처리 경로를 식별하는 단계;
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 규칙을 획득하는 단계는,
    상기 전자 장치의 성능 상태 정보를 이용하여, 인공지능 모델을 학습시키는 단계; 및
    상기 학습된 인공지능 모델을 이용하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하는 단계;
    를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 처리 경로를 식별하는 단계는,
    상기 성능 레벨이 제1 기준 레벨 미만이면, 상기 사용자의 음성에 대한 응답을 상기 전자 장치에서 획득하기로 식별하는 단계; 및
    상기 성능 레벨이 상기 제1 기준 레벨 이상이면, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별하는 단계;
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 음성 데이터에 대한 처리를 수행하는 단계는,
    상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별되면, 상기 음성 데이터를 상기 음성 서비스 서버에 전송하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 처리 경로를 식별하는 단계는,
    상기 성능 레벨이 제2 기준 레벨 미만이면, 상기 UI를 상기 전자 장치에서 처리하기로 식별하는 단계; 및
    상기 성능 레벨이 상기 제2 기준 레벨 이상이면, 상기 UI를 클라우드 서버에서 처리하기로 식별하는 단계;
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 처리된 UI를 획득하여 출력하도록 제어하는 단계는,
    상기 UI를 클라우드 서버에서 처리하기로 식별되면, 상기 클라우드 서버로부터 상기 처리된 UI를 포함하는 비디오 스트리밍을 수신하는 단계를 포함하는 방법.
  10. 제1항에 있어서,
    상기 성능 레벨은 제1 레벨, 제2 레벨, 제3 레벨, 및 제4 레벨 중 하나로 식별되고,
    상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하는 단계는,
    상기 성능 레벨이 제1 레벨로 식별되면, 상기 사용자의 음성에 대한 응답을 획득하고, 상기 응답에 대응되는 UI를 처리하여 출력하도록 제어하는 단계;
    상기 성능 레벨이 제2 레벨로 식별되면, 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 상기 음성 서비스 서버로부터 획득된 응답을 수신하고, 상기 수신된 응답에 대응되는 UI를 하여 출력하도록 제어하는 단계;
    상기 성능 레벨이 제3 레벨로 식별되면, 상기 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하는 단계; 및
    상기 성능 레벨이 제4 레벨로 식별되면, 상기 클라우드 서버에 상기 음성 데이터를 전송하고, 상기 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하는 단계;
    를 포함하는, 방법.
  11. 음성 지원 서비스를 제공하는 전자 장치에 있어서, 상기 전자 장치는:
    인스트럭션들을 저장하는 메모리; 및
    상기 메모리와 기능적으로 결합되는 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    사용자의 음성 입력을 포함하는 음성 데이터를 획득하고,
    상기 전자 장치의 성능 상태 정보에 기초한 성능 레벨에 따라, 상기 사용자의 음성에 대한 응답을 획득하고 상기 응답에 대응되는 UI를 처리하기 위한, 처리 경로를 식별하고,
    상기 처리 경로에 기초하여, 상기 음성 데이터에 대한 처리를 수행하고, 상기 처리된 UI를 획득하여 출력하도록 제어하게끔 설정되는,
    전자 장치.
  12. 제11항에 있어서,
    상기 전자 장치의 성능 상태 정보는, 상기 전자 장치의 프로세서의 사용량, 메모리의 사용량, 저장부의 입출력 속도, 및 네트워크의 송수신 속도 중 적어도 하나를 포함하는, 전자 장치.
  13. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 전자 장치의 성능 상태를 실시간으로 모니터링하여 상기 전자 장치의 성능 상태 정보를 획득하도록 더 설정되는,
    전자 장치.
  14. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 전자 장치의 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하고,
    상기 획득된 규칙 및 상기 성능 상태 정보에 기초하여, 상기 성능 레벨을 식별하고,
    상기 식별된 성능 레벨에 기초하여, 상기 처리 경로를 식별하도록 설정되는,
    전자 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 전자 장치의 성능 상태 정보를 이용하여, 인공지능 모델을 학습시키고,
    상기 학습된 인공지능 모델을 이용하여, 상기 성능 레벨을 식별하기 위한 규칙을 획득하도록 설정되는,
    전자 장치.
  16. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 성능 레벨이 제1 기준 레벨 미만이면, 상기 사용자의 음성에 대한 응답을 상기 전자 장치에서 획득하기로 식별하고,
    상기 성능 레벨이 상기 제1 기준 레벨 이상이면, 상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별하도록 설정되는,
    전자 장치.
  17. 제16항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 사용자의 음성에 대한 응답을 음성 서비스 서버에서 획득하기로 식별되면, 상기 음성 데이터를 상기 음성 서비스 서버에 전송하도록 설정되는,
    전자 장치.
  18. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 성능 레벨이 제2 기준 레벨 미만이면, 상기 UI를 상기 전자 장치에서 처리하기로 식별하고,
    상기 성능 레벨이 상기 제2 기준 레벨 이상이면, 상기 UI를 클라우드 서버에서 처리하기로 식별하도록 설정되는,
    전자 장치.
  19. 제18항에 있어서,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 UI를 클라우드 서버에서 처리하기로 식별되면, 상기 클라우드 서버로부터 상기 처리된 UI를 포함하는 비디오 스트리밍을 수신하도록 설정되는,
    전자 장치.
  20. 제11항에 있어서,
    상기 성능 레벨은 제1 레벨, 제2 레벨, 제3 레벨, 및 제4 레벨 중 하나로 결식별되고,
    상기 적어도 하나의 프로세서는 상기 인스트럭션들을 실행하여,
    상기 성능 레벨이 제1 레벨로 식별되면, 상기 사용자의 음성에 대한 응답을 획득하고, 상기 응답에 대응되는 UI를 처리하여 출력하도록 제어하고,
    상기 성능 레벨이 제2 레벨로 식별되면, 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 상기 음성 서비스 서버로부터 획득된 응답을 수신하고, 상기 수신된 응답에 대응되는 UI를 처리하여 출력하도록 제어하고,
    상기 성능 레벨이 제3 레벨로 식별되면, 상기 음성 서비스 서버에 상기 사용자의 음성에 대한 응답 획득을 요청하고, 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하고,
    상기 성능 레벨이 제4 레벨로 식별되면, 상기 클라우드 서버에 상기 음성 데이터를 전송하고, 상기 클라우드 서버에서 처리된, 상기 획득된 응답에 대응되는 UI를 수신하여 출력하도록 제어하게끔 설정되는,
    전자 장치.
KR1020220020395A 2022-02-16 2022-02-16 음성 지원 서비스를 제공하는 방법 및 장치 KR20230123343A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220020395A KR20230123343A (ko) 2022-02-16 2022-02-16 음성 지원 서비스를 제공하는 방법 및 장치
PCT/KR2023/002305 WO2023158250A1 (ko) 2022-02-16 2023-02-16 음성 지원 서비스를 제공하는 방법 및 장치
US18/144,348 US20230274739A1 (en) 2022-02-16 2023-05-08 Method and apparatus for providing voice assistant service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220020395A KR20230123343A (ko) 2022-02-16 2022-02-16 음성 지원 서비스를 제공하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230123343A true KR20230123343A (ko) 2023-08-23

Family

ID=87578653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220020395A KR20230123343A (ko) 2022-02-16 2022-02-16 음성 지원 서비스를 제공하는 방법 및 장치

Country Status (3)

Country Link
US (1) US20230274739A1 (ko)
KR (1) KR20230123343A (ko)
WO (1) WO2023158250A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080087571A (ko) * 2007-03-27 2008-10-01 성균관대학교산학협력단 상황 예측 시스템 및 그 방법
KR101961139B1 (ko) * 2012-06-28 2019-03-25 엘지전자 주식회사 이동 단말기 및 그것의 음성 인식 방법
KR102155482B1 (ko) * 2013-10-15 2020-09-14 삼성전자 주식회사 디스플레이장치 및 그 제어방법
KR102437156B1 (ko) * 2015-11-24 2022-08-26 삼성전자주식회사 전자 장치의 상태에 따른 음성 신호 처리 방법 및 그 전자 장치
WO2020245912A1 (ja) * 2019-06-04 2020-12-10 日本電信電話株式会社 音声認識制御装置、音声認識制御方法、およびプログラム

Also Published As

Publication number Publication date
WO2023158250A1 (ko) 2023-08-24
US20230274739A1 (en) 2023-08-31

Similar Documents

Publication Publication Date Title
CN111226193B (zh) 电子设备及改变聊天机器人的方法
US11676016B2 (en) Selecting artificial intelligence model based on input data
US10832411B2 (en) Electronic apparatus and method of controlling the same
KR102595790B1 (ko) 전자 장치 및 그의 제어방법
KR102586014B1 (ko) 전자 장치 및 전자 장치의 제어 방법
EP4220630A1 (en) Electronic device and controlling method thereof
KR20200092465A (ko) 추천 컨텐츠 리스트 제공 방법 및 그에 따른 전자 장치
EP3489860B1 (en) Image display apparatus and method of operating the same
CN110121696B (zh) 电子设备及其控制方法
KR102525108B1 (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
US11606619B2 (en) Display device and display device control method
CN113519022B (zh) 电子设备及其控制方法
US11817097B2 (en) Electronic apparatus and assistant service providing method thereof
US11436760B2 (en) Electronic apparatus and control method thereof for reducing image blur
KR102537781B1 (ko) 전자 장치 및 이의 제어 방법
CN112740322A (zh) 语音识别方法及支持该方法的电子装置
KR20210033844A (ko) 전자장치와 그의 제어방법
KR20230123343A (ko) 음성 지원 서비스를 제공하는 방법 및 장치
KR20190140509A (ko) 재고 추적 방법 및 장치
EP3874765B1 (en) Electronic device and operation method thereof
CN114694661A (zh) 一种第一终端设备、第二终端设备和语音唤醒方法
US20230213896A1 (en) Electronic device and operating method thereof
EP4386621A1 (en) Display apparatus and operating method therefor
KR20230103577A (ko) 전자 장치 및 그의 동작 방법
KR20230059029A (ko) 전자 장치 및 그 동작 방법