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

전자 장치 및 이의 제어 방법 Download PDF

Info

Publication number
KR20220089537A
KR20220089537A KR1020200180263A KR20200180263A KR20220089537A KR 20220089537 A KR20220089537 A KR 20220089537A KR 1020200180263 A KR1020200180263 A KR 1020200180263A KR 20200180263 A KR20200180263 A KR 20200180263A KR 20220089537 A KR20220089537 A KR 20220089537A
Authority
KR
South Korea
Prior art keywords
application
electronic device
foreground
voice command
user
Prior art date
Application number
KR1020200180263A
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 KR1020200180263A priority Critical patent/KR20220089537A/ko
Priority to PCT/KR2021/012857 priority patent/WO2022139122A1/ko
Priority to US17/674,540 priority patent/US20220197694A1/en
Publication of KR20220089537A publication Critical patent/KR20220089537A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/221Announcement of recognition results
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

전자 장치 및 이의 제어 방법이 개시된다. 본 개시에 따른 전자 장치의 제어 방법은, 포 그라운드(foreground)에 제1 어플리케이션이 실행되는 동안 사용자의 음성 명령을 획득하는 단계; 음성 명령을 음성 인식하여 텍스트를 획득하는 단계; 텍스트를 바탕으로 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별하는 단계; 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션 각각이 전자 장치의 포 그라운드 또는 백 그라운드(background)에서 실행할지 여부를 결정하는 단계; 및 결정 결과를 바탕으로 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션을 제공하는 단계를 포함한다.

Description

전자 장치 및 이의 제어 방법{An electronic apparatus and Method for controlling electronic apparatus thereof}
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 더욱 상세하게는 사용자의 음성 명령을 수행할 적어도 하나의 어플리케이션을 식별하는 전자 장치 및 이의 제어 방법에 관한 것이다.
근래에는 온라인 및 오프라인 상에 존재하는 정보의 양이 기하급수적으로 증가하고 있으며, 전자통신 기술의 발전으로 사용자는 전자 장치를 통하여 언제 어디에서나 원하는 정보를 획득할 수 있게 되었다.
이와 관련하여, 근래에는 전자 장치가 사용자가 원하는 동작을 전자 장치가 적절하게 수행하기 위하여, 사용자의 음성 명령에 대응되는 제어 명령을 생성하는 음성 인식 시스템이 널리 사용되고 있다.
또한, 근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있으며, 인공 지능 시스템 내의 다양한 시스템에서도 명령 응답 시스템을 활용하고 있다.
이에, 종래의 음성 인식 시스템은 사용자의 음성 명령을 통해, 사용자의 음성 명령을 수행할 하나의 어플리케이션만을 식별하였다. 이에, 종래의 음성 인식 시스템은 복수 개의 어플리케이션을 이용해야되는 사용자의 음성 명령의 경우에도 하나의 어플리케이션만을 제공하는 문제점이 발생되었다.
또한, 종래에는 사용자의 음성 명령을 수행할 어플리케이션이 식별되면, 기존 전자 장치의 포 그라운드(foreground)에 실행 중인 어플리케이션 대신 식별된 어플리케이션을 포 그라운드에 실행하였다. 이에, 기존 포 그라운드에 실행 중인 어플리케이션과 사용자의 음성 명령을 수행할 어플리케이션을 전자 장치의 포 그라운드에서 함께 제공하기 위한 필요성이 대두되었다.
본 개시는 상술한 문제점 및 필요성에 따라 안출된 것으로, 특히, 사용자의 음성 명령을 수행할 적어도 하나의 어플리케이션을 식별하고, 식별된 적어도 하나의 어플리케이션 및 기존 전자 장치의 포 그라운드에서 실행 중인 어플리케이션을 함께 제공하는 전자 장치 및 이의 제어 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법은, 포 그라운드(foreground)에 제1 어플리케이션이 실행되는 동안 사용자의 음성 명령을 획득하는 단계; 상기 음성 명령을 음성 인식하여 텍스트를 획득하는 단계; 상기 텍스트를 바탕으로 상기 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별하는 단계; 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션 각각이 상기 전자 장치의 포 그라운드 또는 백 그라운드(background)에서 실행할지 여부를 결정하는 단계; 및 상기 결정 결과를 바탕으로 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션을 제공하는 단계;를 포함한다.
그리고, 상기 제공하는 단계는, 상기 결정 결과, 상기 전자 장치의 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 단계; 상기 식별된 레이 아웃에 따라 상기 복수 개의 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함할 수 있다.
그리고, 상기 레이 아웃을 식별하는 단계는, 상기 복수 개의 어플리케이션들의 레이 아웃 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 단계일 수 있다.
그리고, 상기 결정하는 단계는, 상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 포 그라운드에서 실행할 제3 어플리케이션을 식별하는 단계; 및 상기 제3 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별하는 단계;를 포함할 수 있다.
그리고, 상기 함께 실행할지 여부를 식별하는 단계는, 상기 제1 어플리케이션 및 상기 제3 어플리케이션이 포 그라운드에서 함께 실행되는 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 실행할지 여부를 식별할 수 있다.
그리고, 상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 단계는, 상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각의 레이 아웃을 식별하는 단계; 및 상기 식별된 레이 아웃에 따라 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함할 수 있다.
그리고, 상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 단계는, 상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함할 수 있다.
그리고, 상기 제3 어플리케이션이 복수 개인 경우, 상기 복수의 제3 어플리케이션 각각의 레이 아웃을 식별하는 단계; 및 상기 식별된 레이 아웃에 따라 상기 복수 개의 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계;를 포함할 수 있다.
그리고, 상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행하는 단계는, 상기 제1 어플리케이션을 상기 전자 장치의 백 그라운드에 실행하는 단계를 더 포함할 수 있다.
그리고, 상기 결정하는 단계는, 상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 백 그라운드에서 실행할 제4 어플리케이션을 식별하는 단계를 포함하고, 상기 제공하는 단계는, 상기 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 상기 음성 명령에 대응되는 동작이 상기 제4 어플리케이션에서 수행되도록 제어하는 단계;를 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치는 적어도 하나의 인스트럭션을 저장하는 메모리; 및 상기 메모리에 저장된 적어도 하나의 인스트럭션을 실행하여 상기 전자 장치를 제어하는 프로세서;를 포함하고, 상기 프로세서는, 포 그라운드(foreground)에 제1 어플리케이션이 실행되는 동안, 사용자의 음성 명령을 획득하고, 상기 음성 명령을 음성 인식하여 텍스트를 획득하고, 상기 텍스트를 바탕으로 상기 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별하고, 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션 각각이 상기 전자 장치의 포 그라운드 또는 백 그라운드(background)에서 실행할지 여부를 결정하고, 상기 결정 결과를 바탕으로 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션을 제공한다.
그리고, 상기 프로세서는, 상기 결정 결과, 상기 전자 장치의 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하고, 상기 식별된 레이 아웃에 따라 상기 복수 개의 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행할 수 있다.
그리고, 상기 프로세서는, 상기 복수 개의 어플리케이션들의 레이 아웃 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 것을 특징으로 할 수 있다.
그리고, 상기 프로세서는, 상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 포 그라운드에서 실행할 제3 어플리케이션을 식별하고, 상기 제3 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다.
그리고, 상기 프로세서는, 상기 제1 어플리케이션 및 상기 제3 어플리케이션이 포 그라운드에서 함께 실행되는 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 것을 특징으로 할 수 있다.
그리고, 상기 프로세서는, 상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각의 레이 아웃을 식별하고, 상기 식별된 레이 아웃에 따라 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행할 수 있다.
그리고, 상기 프로세서는, 상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행할 수 있다.
그리고, 상기 프로세서는, 상기 제3 어플리케이션이 복수 개인 경우, 상기 복수의 제3 어플리케이션 각각의 레이 아웃을 식별하고, 상기 식별된 레이 아웃에 따라 상기 복수 개의 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행할 수 있다.
그리고, 상기 프로세서는, 상기 제1 어플리케이션을 상기 전자 장치의 백 그라운드에 실행할 수 있다.
그리고, 상기 프로세서는, 상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 백 그라운드에서 실행할 제4 어플리케이션을 식별하고, 상기 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 상기 음성 명령에 대응되는 동작이 상기 제4 어플리케이션에서 수행되도록 제어할 수 있다.
상술한 실시 예들에 따라, 본 개시에 따른 전자 장치는 사용자의 음성 명령에 대응되는 복수의 어플리케이션을 식별하고, 복수의 어플리케이션을 기존 포 그라운드에 실행 중인 어플리케이션과 함께 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른, 사용자의 음성 명령에 따른 어플리케이션을 제공하기 위한 구성을 포함하는 블록도를 도시한 도면이다.
도 2a는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션 중 적어도 하나와 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 2b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션 중 적어도 하나와 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 3a는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 사용자 음성 명령을 수행할 어플리케이션만을 표시하는 실시 예를 도시한 도면이다.
도 3b은 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 사용자 음성 명령을 수행할 어플리케이션만을 표시하는 실시 예를 도시한 도면이다.
도 4a는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션과 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 4b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션과 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 5a는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 5b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 6a는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 6b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 7a는 본 개시에 따른 사용자 음성 명령을 수행할 복수의 어플리케이션을 식별하는 실시 예를 도시한 도면이다.
도 7b는 본 개시에 따른, 사용자 음성 명령에 대응되는 복수의 어플리케이션을 식별하고, 식별된 복수의 어플리케이션 중 사용자 음성 명령을 수행할 어플리케이션을 식별하기 위해 음성 정보를 출력하는 실시 예를 도시한 도면이다.
도 8은 본 개시에 따른 사용자 음성 명령에 대한 응답을 제공하는 음성 인식 시스템을 도시한 블록도이다.
도 9는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 대응되는 어플리케이션과 포 그라운드에서 실행 중인 어플리케이션을 함께 제공하기 위한 전자 장치의 제어 방법을 도시한 흐름도이다.
도 10은 본 개시에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 11은 본 개시의 일 실시 예에 따른, 전자 장치의 구체적인 구성을 도시한 블록도이다.
이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하기로 한다.
도 1은 본 개시에 따른, 전자 장치(100)의 동작을 설명하기 위한 블록도이다.
도 1에 도시된 바와 같이, 전자 장치(100)는 메모리(110), 디스플레이(120), 마이크(130) 및 프로세서(140)를 포함할 수 있다. 본 개시에 따른, 전자 장치(100)는 스마트 폰, AR 글래스, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, TV, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 카메라, 스마트 워치 등과 같은 다양한 형태의 전자 장치로 구현될 수 있다. 그러나, 상술한 구성에 한정되는 것은 아니며, 전자 장치의 유형에 따라 일부 구성이 추가되거나 생략될 수 있음은 물론이다.
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 적어도 하나의 인스트럭션(instruction) 또는 데이터를 저장할 수 있다. 특히, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(Hard-Disk Drive, HDD) 또는 솔리드 스테이트 드라이브 (Solid State Drive, SDD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(140)에 의해 액세스(access)되며, 프로세서(140)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
본 개시에서 메모리라는 용어는 메모리(110), 프로세서(140) 내의 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
상술한 바와 같이, 메모리(110)는 적어도 하나의 인스트럭션을 저장할 수 있다. 여기에서, 인스트럭션은 전자 장치(100)를 제어하기 위한 것일 수 있다. 가령, 메모리(110)에는 사용자의 음성 명령에 대한 동작을 수행하기 위한 음성 인식 시스템과 관련된 인스트럭션이 저장될 수 있다. 구체적으로, 메모리(110)는 본 개시에 따른 음성 인식 시스템을 구성하는 복수의 구성(또는 모듈)을 포함할 수 있으며, 이에 대해서는 후술하도록 한다.
또한, 메모리(110)는 음성 인식 시스템을 수행하기 위한 인공지능 에이전트를 저장할 수 있다. 구체적으로, 전자 장치(100)는 사용자 발화에 대한 응답으로 자연어를 생성하기 위하여 인공지능 에이전트(Artificial intelligence agent)를 이용할 수 있다. 이때, 인공지능 에이전트는 AI(Artificial Intelligence) 기반의 서비스(예를 들어, 음성 인식 서비스, 비서 서비스, 번역 서비스, 검색 서비스 등)를 제공하기 위한 전용 프로그램이다. 특히, 인공지능 에이전트는 기존의 범용 프로세서(예를 들어, CPU) 또는 별도의 AI 전용 프로세서(예를 들어, GPU 등)에 의해 실행될 수 있다.
디스플레이(120)는 프로세서(140)의 제어에 따라 다양한 정보를 표시할 수 있다. 디스플레이(120)는 전자 장치(100)에서 포 그라운드로 실행되는 적어도 하나의 어플리케이션에서 제공하는 화면을 표시할 수 있다.
또한, 디스플레이(120)는 사용자 음성 명령에 대한 응답을 표시할 수 있다. 즉, 디스플레이(120)는 사용자의 음성 명령을 기초로 한 검색 결과 또는 응답을 표시할 수도 있다.
그리고, 이와 같은, 디스플레이(120)는 LCD(Liquid Crystal Display Panel), LED(light emitting diode), OLED(Organic Light Emitting Diodes), LCoS(Liquid Crystal on Silicon), DLP(Digital Light Processing) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 또한, 디스플레이(120) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 또한, 디스플레이(120)는 폴더블 디스플레이, 롤러블 디스플레이 등 다양한 디스플레이로 구현될 수 있다. 또한, 디스플레이(120)는 터치 감지부와 결합되어 터치 스크린으로 구현될 수도 있다.
마이크(130)는 전자 장치(100)가 사용자 음성을 입력 받기 위한 구성 요소이다. 구체적으로, 마이크(130)는 마이크로폰(Microphone)을 이용하여 외부의 사용자 음성을 수신하고, 이를 전기적인 음성 데이터로 처리할 수 있다. 이 경우, 마이크(130)는 처리된 음성 데이터를 프로세서(140)에 전달할 수 있다.
프로세서(140)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU(Central Processing Unit), AP(application processor) 등과 같은 범용 프로세서, GPU(Graphics Processing Unit). VPU(Visual Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit) 와 같은 인공지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, 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)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
프로세서(140)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(140)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(140)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
프로세서(140)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 특히, 프로세서(140)는 메모리(110)에 저장된 적어도 하나의 명령어를 실행함으로써, 사용자의 음성 명령에 대응되는 동작을 수행하는 음성 인식 시스템을 제공할 수 있다. 음성 인식 시스템은 ASR 모듈(141), NLU 모듈(142) 및 실행 모듈(143)을 포함할 수 있다. 그리고, 각각의 모듈은 메모리(110)에 저장될 수 있다. 다만, 이에 한정되지 않으며, 음성 인식 시스템은 경우에 따라 필요한 모듈이 추가적으로 더 포함될 수 있다.
그리고, 음성 인식 시스템이 실행되면, 복수의 모듈(141, 142, 143)들이 프로세서(140)에 포함된 메모리(예로, 휘발성 메모리)에 로딩될 수 있다. 즉, 음성 인식 시스템이 실행되면, 프로세서(140)는 복수의 모듈(141, 142, 143)들을 비휘발성 메모리에서 휘발성 메모리로 로딩하여 복수의 모듈(141, 142, 143)의 각 기능들을 실행할 수 있다. 로딩(loading)이란, 프로세서(140)가 액세스할 수 있도록 비휘발성 메모리에 저장된 데이터를 휘발성 메모리에 불러들여 저장하는 동작을 의미한다.
본 개시에 따른 일 실시 예로, 도 1에 도시된 바와 같이 메모리(110)에 저장된 복수의 모듈(141, 142, 143)을 통해 번역 기능이 구현될 수 있으나, 이에 한정되지 않고 음성 인식 시스템이 외부 서버에서 구현될 수 있다.
본 개시에 따른 복수의 모듈(141, 142, 143)은 각각의 소프트웨어로 구현될 수 있으나, 이에 한정되지 않고 일부 모듈은 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또 다른 실시 예로, 복수의 모듈(141, 142, 143)은 하나의 소프트웨어로 구현될 수 있다. 또한, 일부 모듈은 전자 장치(100) 내에서 구현되고, 다른 일부 모듈은 외부 서버에서 구현될 수 있다.
ASR(automatic speech recognition) 모듈(141)은 전자 장치로 수신된 사용자 입력(특히, 사용자 음성 명령)을 텍스트 데이터로 변환하기 위한 구성이다. 즉, ASR 모듈(141)은 마이크(130)를 통해 획득된 사용자 음성 명령 데이터를 텍스트 데이터로 변환할 수 있다. 예를 들어, ASR 모듈(141)은 발화 인식 모듈을 포함할 수 있다. 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language)모델을 포함할 수 있다. 예를 들어, 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(automatic speech recognition database)(ASR DB)에 저장될 수 있다.
NLU(natural language understanding) 모듈(142)은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 이에 따라, NLU 모듈(142)은 사용자 입력이 어느 도메인(domain), 의도(intent) 또는 의도를 표현하는데 필요한 슬롯(slot)(또는 파라미터(parameter))를 얻을 수 있다.
NLU 모듈(142)은 도메인(domain), 의도(intent) 및 의도를 파악하는데 필요한 슬롯(또는 파라미터)으로 나누어진 매칭 룰을 이용하여 사용자의 의도 및 슬롯을 결정할 수 있다. 예를 들어, 하나의 도메인(예: 웹 어플리케이션)은 복수의 의도(예: 웹 페이지 오픈, 웹 페이지 검색 등)를 포함할 수 있고, 하나의 의도는 복수의 슬롯(예: 웹 페이지 주소, 검색어 등)를 포함할 수 있다. 복수의 룰은, 예를 들어, 하나 이상의 필수 요소 슬롯를 포함할 수 있다. 일 예로, 매칭 룰은 자연어 인식 데이터베이스(natural language understanding database)(NLU DB)에 저장될 수 있다.
NLU 모듈(142)은 형태소, 구 등의 언어적 특징(예: 문법적 요소)을 이용하여 사용자 음성 명령으로부터 추출된 단어의 의미를 파악하고, 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, NLU 모듈(142)은 각각의 도메인 및 의도에 사용자 질의에서 추출된 단어가 얼마나 포함되어 있는지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, NLU 모듈(142)은 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 음성 입력에 대응되는 슬롯을 결정할 수 있다.
실행 모듈(143)은 NLU 모듈(142)을 통해 획득한 의도, 슬롯 및 ASR 모듈(141)을 통해 획득한 사용자 음성 명령에 대응되는 텍스트 데이터를 바탕으로, 적어도 하나의 어플리케이션을 제공하기 위한 모듈이다.
구체적으로, 실행 모듈(143)은 앱 결정 모델(141-1), 그라운드 식별 모델(141-2), 멀티 윈도우 식별 모델(141-3) 및 레이 아웃 식별 모델(141-4)을 포함할 수 있다.
앱 결정 모델(141-1)은 사용자의 음성 명령을 실행할 적어도 하나의 어플리케이션을 식별하기 위한 모델이다.
일 실시 예로, 앱 결정 모델(141-1)은 NLU 모듈(142)을 통해 획득한 의도, 슬롯 및 적어도 하나를 입력 받아, 사용자의 음성 명령을 실행할 적어도 하나의 어플리케이션을 식별할 수 있다. 이 경우, 앱 결정 모델(141-1)은 NLU 모듈(142)을 통해 생성될 수 있는 복수의 의도 및 슬롯을 입력 데이터로, 입력된 복수의 의도 및 슬롯에 각각 대응되는 적어도 하나의 어플리케이션을 출력 데이터로 설정하여 학습이 수행될 수 있다.
일 실시 예로, 앱 결정 모델(141-1)은 ASR 모듈(141)을 통해 획득한 사용자 음성 명령에 대응되는 텍스트 데이터를 입력 받아, 사용자의 음성 명령을 실행할 적어도 하나의 어플리케이션을 식별할 수 있다. 이 경우, 앱 결정 모델(141-1)은 ASR 모듈(141)을 통해 생성될 수 있는 복수의 텍스트 데이터를 입력 데이터로, 입력된 복수의 텍스트 데이터에 각각 대응되는 적어도 하나의 어플리케이션을 출력 데이터로 설정하여 학습이 수행될 수 있다.
일 실시 예로, 앱 결정 모델(141-1)은 NLU 모듈(142)을 통해 획득한 의도, 슬롯과 함께 ASR 모듈(141)을 통해 획득한 사용자 음성 명령에 대응되는 텍스트 데이터를 입력 받아, 사용자의 음성 명령을 실행할 적어도 하나의 어플리케이션을 식별할 수 있다. 이 경우, 앱 결정 모델(141-1)은 NLU 모듈(142)을 통해 생성될 수 있는 복수의 의도 및 슬롯 중 적어도 하나와 ASR 모듈(141)을 통해 생성될 수 있는 복수의 텍스트 데이터를 입력 데이터로, 입력된 복수의 의도 및 슬롯 중 적어도 하나와 텍스트 데이터에 각각 대응되는 적어도 하나의 어플리케이션을 출력 데이터로 설정하여 학습이 수행될 수 있다.
즉, 본 개시에 따른 앱 결정 모델(141-1)은 사용자의 음성 명령을 통해, 음성 명령을 수행할 복수의 어플리케이션을 식별할 수 있다. 예로, “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘”라는 사용자 음성 명령에 대해, 앱 결정 모델(141-1)은 해당 사용자 음성 명령을 수행할 어플리케이션을 음악 재생 어플리케이션 및 네비게이션 어플리케이션으로 식별할 수 있다.
구체적으로, NLU 모듈(142)은 “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘”라는 사용자 음성 명령에서, “음악 재생 어플리케이션 실행”, “네비게이션 어플리케이션 실행”의 의도를 획득할 수 있다. 그리고, 앱 결정 모델(141-1)은 “음악 재생 어플리케이션 실행”의 의도를 통해, 사용자의 음성 명령을 실행할 어플리케이션을 “네비게이션 어플리케이션”로 식별하고, “네비게이션 어플리케이션 실행” 의 의도를 통해 사용자의 음성 명령을 실행할 어플리케이션을 “음악 재생 어플리케이션”으로 식별할 수 있다.
또 다른 실시 예로, 앱 결정 모델(141-1)은 “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘”라는 텍스트 데이터를 통해 사용자의 음성 명령을 실행할 어플리케이션을 “네비게이션 어플리케이션” 및 “음악 재생 어플리케이션”으로 식별할 수 있다. 즉, 앱 결정 모델(141-1)은 텍스트 데이터에서 '신나는' 및 '노래'라는 텍스트를 통해 사용자의 음성 명령을 실행할 어플리케이션을 “음악 재생 어플리케이션”으로 식별하고, '네비', '강릉' 및 '찾아줘'라는 텍스트를 통해, 사용자의 음성 명령을 실행할 어플리케이션을 “네비게이션 어플리케이션”으로 식별할 수 있다.
그라운드 식별 모델(141-2)은 앱 결정 모델(141-1)에서 식별된 적어도 하나의 어플리케이션을 전자 장치의 포 그라운드(foreground)에서 실행할지 또는 백 그라운드(background)에서 실행할지 여부를 식별하기 위한 모델이다. 즉, 그라운드 식별 모델(141-2)을 통해, 일 어플리케이션이 전자 장치의 포 그라운드에서 실행할 것으로 식별되면, 프로세서(140)는 전자 장치(100)의 디스플레이(120) 화면 상에 해당 어플리케이션 화면을 표시하도록 디스플레이(120)를 제어할 수 있다. 그리고, 그라운드 식별 모델(141-2)을 통해, 일 어플리케이션이 전자 장치의 백 그라운드에서 실행할 것으로 식별되면, 프로세서(140)는 해당 어플리케이션 화면이 전자 장치(100)의 디스플레이(120)에 표시되지 않으면서, 해당 어플리케이션이 동작되도록 제어할 수 있다.
즉, 본 개시에 따른 어플리케이션이 포 그라운드로 실행되는 것의 의미는, 어플리케이션에서 제공되는 화면이 디스플레이 상에 표시되는 것을 의미할 수 있다. 그리고, 본 개시에 따른 어플리케이션이 백 그라운드로 실행되는 것의 의미는, 어플리케이션 화면이 디스플레이 상에 표시되지 않으면서, 해당 어플리케이션이 실행되는 것을 의미할 수 있다.
일 실시 예로, 그라운드 식별 모델(141-2)은 NLU 모듈(142)을 통해 획득한 의도 및 슬롯 중 적어도 하나와 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션에 대한 정보를 입력 받아, 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션 각각이 포 그라운드에서 실행할지 또는 백 그라운드에서 실행할지 여부를 식별할 수 있다. 여기서, 어플리케이션에 대한 정보는 어플리케이션의 타입(예로, 음악 재생 어플리케이션, 네비게이션 어플리케이션)에 대한 정보, 어플리케이션의 이름에 대한 정보 등, 어플리케이션을 식별하기 위한 다양한 정보를 포함할 수 있다. 이 경우, 그라운드 식별 모델(141-2)은 NLU 모듈(142)을 통해 생성될 수 있는 복수의 의도 및 슬롯 중 적어도 하나와 해당 복수의 의도, 슬롯에 각각 대응되는 어플리케이션 정보를 입력 데이터로 하고, 입력 데이터에 대응되는 어플리케이션이 포 그라운드(foreground) 또는 백 그라운드에서 실행할지 여부에 대한 정보를 출력 데이터로 설정하여 학습이 수행될 수 있다.
또 다른, 일 실시 예로, 그라운드 식별 모델(141-2)은 ASR 모듈(141)을 통해 획득한 텍스트 데이터 및 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션에 대한 정보를 입력 받아, 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션 각각이 포 그라운드에서 실행할지 또는 백 그라운드에서 실행할지 여부를 식별할 수 있다. 이 경우, 그라운드 식별 모델(141-2)은 ASR 모듈(141)을 통해 생성될 수 있는 텍스트 데이터와 해당 텍스트 데이터에 각각 대응되는 어플리케이션 정보(예로, 어플리케이션 종류, 이름)을 입력 데이터로 설정하고, 입력 데이터에 대응되는 어플리케이션이 포 그라운드(foreground) 또는 백 그라운드에서 실행할지 여부에 대한 정보를 출력 데이터로 설정하여 학습이 수행될 수 있다. 일 예로, 그라운드 식별 모델(141-2)은 표 1과 같이 텍스트에 어플리케이션 종류와 그라운드 종류가 라벨링된 학습 데이터를 통해 학습이 수행될 수 있다.
어플리케이션 종류 텍스트 그라운드
음악 재생 어플리케이션 신나는 노래 들려줘 백 그라운드
음악 재생 어플리케이션 빙고 작곡가는 누구야? 백 그라운드
음악 재생 어플리케이션 싱랄라 가사 보여줘 포 그라운드
네비게이션 어플리케이션 수원까지 가는 길 찾아줘 포 그라운드
네비게이션 어플리케이션 지금 경부고속도로 막혀? 백 그라운드
네비게이션 어플리케이션 부산 까지 얼마 걸려? 백 그라운드
네비게이션 어플리케이션 강릉 가는 길 찾아줘 포 그라운드
레시피 어플리케이션 고구마 칼로리는 얼마야? 백 그라운드
레시피 어플리케이션 김치찌개 레시피 찾아줘 포 그라운드
레스토랑 어플리케이션 일산 맛집 찾아줘 포 그라운드
또 다른, 일 실시 예로, 그라운드 식별 모델(141-2)은 ASR 모듈(141)을 통해 획득한 텍스트 데이터, NLU 모듈(142)을 통해 획득한 의도 및 슬롯 중 적어도 하나와 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션에 대한 정보를 입력 받아, 앱 결정 모델(141-1)을 통해 식별된 적어도 하나의 어플리케이션 각각이 포 그라운드에서 실행할지 또는 백 그라운드에서 실행할지 여부를 식별할 수 있다. 이 경우, 그라운드 식별 모델(141-2)은 ASR 모듈(141)을 통해 생성될 수 있는 텍스트 데이터와 해당 텍스트 데이터에 각각 대응되는 의도 및 슬롯 중 적어도 하나와 어플리케이션 정보를 입력 데이터로 설정하고, 입력 데이터에 대응되는 어플리케이션이 포 그라운드(foreground) 또는 백 그라운드에서 실행할지 여부에 대한 정보를 출력 데이터로 설정하여 학습이 수행될 수 있다.
즉, 본 개시에 따른 그라운드 식별 모델(141-2)은 사용자의 음성 명령을 수행할 복수의 어플리케이션 각각을 포 그라운드 또는 백 그라운드에서 실행시킬지 여부를 식별할 수 있다. 예로, “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘”라는 사용자 음성 명령에 대해, 그라운드 식별 모델(141-2)은 음악 재생 어플리케이션은 백 그라운드에서 실행되며, 네비게이션 어플리케이션은 포 그라운드에서 실행되는 것으로 식별할 수 있다.
멀티 윈도우 식별 모델(141-3)은 사용자 음성 명령이 수신될 때 전자 장치(100)의 포 그라운드에서 실행 중인 어플리케이션을 사용자 음성 명령을 수행할 어플리케이션과 함께 제공할지 여부를 식별하기 위한 모델이다.
구체적으로, 멀티 윈도우 식별 모델(141-3)은 앱 결정 모델(141-1)에서 식별된 적어도 하나의 어플리케이션에 대한 정보와 사용자 음성 명령이 수신될 때 전자 장치의 포 그라운드에서 실행 중인 어플리케이션에 대한 정보를 입력 받아, 포 그라운드에서 실행 중인 어플리케이션이 그라운드 식별 모델(141-2)에서 식별된 포 그라운드에서 실행할 어플리케이션과 함께 포 그라운드에 멀티 윈도우로 실행될지 여부를 식별할 수 있다.
예로, A 어플리케이션이 포 그라운드에 실행되는 도중, B 어플리케이션 실행을 위한 사용자 음성 명령이 수신되고, 사용자들이 기존에 A 어플리케이션 및 B 어플리케이션을 멀티 윈도우로 포 그라운드에서 자주 사용하였다면, 멀티 윈도우 식별 모델(141-3)은 A 어플리케이션을 B 어플리케이션과 함께 포 그라운드에 멀티 윈도우로 실행할 것으로 식별할 수 있다.
본 개시에 따른 멀티 윈도우 식별 모델(141-3)은 사용자들의 멀티 윈도우 사용 이력에 대한 제1 정보를 바탕으로 학습이 수행될 수 있다. 여기서, 제1 정보는 사용자들이 멀티 윈도우로 사용한 복수의 어플리케이션의 조합에 대한 정보일 수 있다. 즉, 제1 정보는 복수의 어플리케이션이 포 그라운드에서 함께 실행된 사용 이력에 대한 정보이다.
멀티 윈도우 식별 모델(141-3)은 다양한 종류의 학습 데이터 들을 통해 학습이 수행될 수 있다. 즉, A 제조사의 전자 장치들에 대한 사용자들의 멀티 윈도우 사용 이력에 대한 정보를 통해 A 제조사에 적용되는 멀티 윈도우 식별 모델(141-3)이 학습될 수 있으나, 이에 한정되지 않는다. 즉, 일 예로. “A 태블릿”에 대한 사용자들의 멀티 윈도우 사용 이력에 대한 정보만을 통해 “A 태블릿”에 적용되는 멀티 윈도우 식별 모델(141-3)이 학습될 수 있다. 또한, 일 예로, 전자 장치를 사용자는 사용자 각각의 멀티 윈도우 사용 이력 만을 통해서도 해당 사용자의 전자 장치에 적용되는 멀티 윈도우 식별 모델(141-3)이 학습될 수 있다.
레이 아웃 식별 모델(141-4)은 멀티 윈도우 식별 모델(141-3)에서 식별된 포 그라운드에서 실행할 복수의 어플리케이션 각각의 레이 아웃을 식별하기 위한 모델이다. 여기서, 레이 아웃이란, 전자 장치의 포 그라운드 화면에서 하나의 어플리케이션이 차지하는 영역을 의미할 수 있다. 즉, 본 개시에 따른 레이 아웃 식별 모델(141-4)을 통해, 포 그라운드에서 실행할 복수의 어플리케이션 각각이 포 그라운드 화면에서 표시될 영역의 위치 및 크기를 식별할 수 있다.
즉, 멀티 윈도우 식별 모델(141-3)에서 포 그라운드에 실행할 어플리케이션이 복수 개인 것으로 식별되면, 레이 아웃 식별 모델(141-4)은 포 그라운드에서 실행할 복수의 어플리케이션에 대한 정보를 입력 받아, 식별된 복수의 어플리케이션 각각이 포 그라운드 화면에서 표시될 영역의 위치 및 크기를 식별할 수 있다.
예로, A 어플리케이션이 포 그라운드에 실행되는 도중, B 어플리케이션 실행을 위한 사용자 음성 명령이 수신되고, 멀티 윈도우 식별 모델(133)을 통해, A 어플리케이션과 B 어플리케이션이 포 그라운드에서 함께 실행할 것으로 식별되면, 레이 아웃 식별 모델(141-4)은 A 어플리케이션 및 B 어플리케이션 각각이 포 그라운드 화면에서 표시될 영역의 위치 및 크기를 식별할 수 있다. 구체적으로, 기존 사용자들이 A 어플리케이션을 포 그라운드 화면의 오른쪽 영역에, B 어플리케이션을 포 그라운드 화면의 왼쪽 영역에 동일한 크기로 사용한 이력이 다수인 경우, 레이 아웃 식별 모델(141-4)은 A 어플리케이션을 포 그라운드 화면의 오른쪽 영역에, B 어플리케이션을 포 그라운드 화면의 왼쪽 영역에 동일한 크기로 표시할 것으로 식별할 수 있다.
본 개시에 따른 레이 아웃 식별 모델(141-4)은 사용자들의 멀티 윈도우 사용 이력에 대한 제2 정보를 바탕으로 학습이 수행될 수 있다. 여기서 제2 정보는 사용자들이 복수의 어플리케이션을 어떠한 레이 아웃으로 사용하였는지에 대한 정보, 즉, 복수의 어플리케이션 각각의 레이 아웃 사용 이력에 대한 정보일 수 있다.
레이 아웃 식별 모델(141-4)은 다양한 종류의 학습 데이터 들을 통해 학습이 수행될 수 있다. 즉, A 제조사의 전자 장치들에 대한 사용자들의 복수의 어플리케이션에 대한 레이 아웃 사용 이력에 대한 정보를 통해 A 제조사에 적용되는 레이 아웃 식별 모델(141-4)이 학습될 수 있으나, 이에 한정되지 않는다. 즉, 일 예로. “A 태블릿”에 대한 사용자들의 복수의 어플리케이션에 대한 레이 아웃 사용 이력에 대한 정보만을 통해 “A 태블릿”에 적용되는 레이 아웃 식별 모델(141-4)이 학습될 수 있다. 또한, 일 예로, 전자 장치를 사용자는 사용자 각각의 복수의 어플리케이션에 대한 레이 아웃 사용 이력 만을 통해서도 해당 사용자의 전자 장치에 적용되는 레이 아웃 식별 모델(141-4)이 학습될 수 있다.
그리고, 레이 아웃 식별 모델(141-4)을 통해, 포 그라운드에 실행할 복수의 어플리케이션의 레이 아웃이 식별되면, 실행 모듈(143)은 식별된 결과에 따라 복수의 어플리케이션을 제공할 수 있다.
일 실시 예로, 실행 모듈(143)은 NLU 모듈(142), 앱 결정 모델(141-1), 그라운드 식별 모델(141-2), 멀티 윈도우 식별 모델(141-3) 및 레이 아웃 식별 모델(141-4)를 통해 획득된 결과를 통해 적어도 하나의 어플리케이션을 실행시키기 위한 경로를 식별할 수 있다.
예를 들어, “A 노래와 함께 네비에서 강릉 가는 길 찾아줘”라는 사용자 음성 명령에 대해, 실행 모듈(143)은 음악 재생 어플리케이션 및 네비게이션 어플리케이션에서 수행할 각각의 동작들을 결정할 수 있다. 즉, 실행 모듈(143)은 음악 재생 어플리케이션에서 수행할 동작들을 (음악 재생 어플리케이션에 로그인되어 있는지 확인 -> 음악 재생 어플리케이션에서 A 노래 검색 -> A 노래를 백그라운드에서 재생) 과 같이 결정할 수 있다. 그리고, 실행 모듈(143)은 네비게이션 어플리케이션에서 수행할 동작들을 (네비게이션 어플리케이션에 로그인되어 있는지 확인 -> 네비게이션 어플리케이션에서 강릉 검색 -> 포 그라운드의 전체 화면에 검색 결과에 따른 경로 탐색 제공) 과 같이 결정할 수 있다.
그리고, 실행 모듈(143)은 식별된 경로에 따라 사용자 음성 명령에 대응되는 동작이 수행되도록 적어도 하나의 어플리케이션을 제어할 수 있다.
상술한 실시 예에서 설명한 실행 모듈(143)의 동작은 복수의 모듈 각각으로 분리되어 수행될 수도 있다.
상술한 실시 예에 따라, 본 개시에 따른 음성 인식 시스템은 사용자의 음성 명령에 대응되는 복수의 어플리케이션을 식별하고, 복수의 어플리케이션을 기존 포 그라운드에 실행 중인 어플리케이션과 함께 제공할 수 있다.
도 2a 및 도 2b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션 중 적어도 하나와 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 2a를 참조하면, 전자 장치(100)의 포 그라운드에 인터넷 어플리케이션과 레스토랑 어플리케이션이 함께 실행 중인 도중, 전자 장치(100)는 사용자의 음성 명령을 수신할 수 있다. 즉, 전자 장치(100)의 디스플레이 상에 인터넷 어플리케이션이 제공하는 화면(21)과 레스토랑 어플리케이션이 제공하는 화면(22)이 멀티 윈도우로 표시되는 도중, 전자 장치(100)는 마이크를 통해 “강릉 가는 길 찾아줘”라는 사용자 음성 명령을 획득할 수 있다.
사용자 음성 명령이 획득되면, 전자 장치(100)는 앱 결정 모델(141-1)을 통해, 사용자 음성 명령을 수행할 어플리케이션을 네비게이션 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 그라운드 식별 모델(141-2)을 통해, 네비게이션 어플리케이션이 전자 장치(100)의 포 그라운드에서 실행되어야 하는지 여부를 식별할 수 있다. 일 예로, 그라운드 식별 모델(141-2)은 “강릉 가는 길 찾아줘”라는 사용자 음성 명령에 따라 네비게이션 어플리케이션이 포 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 멀티 윈도우 식별 모델(141-3)을 통해, 네비게이션 어플리케이션을 인터넷 어플리케이션 또는 레스토랑 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다. 일 예로, 기존 사용자 들의 네비게이션 어플리케이션과 레스토랑 어플리케이션을 멀티 윈도우로 함께 실행한 사용 이력이 많으며, 기존 사용자 들의 네비게이션 어플리케이션과 인터넷 어플리케이션을 멀티 윈도우로 실행한 사용 이력이 적은 경우, 전자 장치(100)는 네비게이션 어플리케이션과 레스토랑 어플리케이션을 포 그라운드에서 실행할 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 레이 아웃 식별 모델(141-4)을 통해, 네비게이션 어플리케이션과 레스토랑 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다. 일 예로, 기존 사용자 들이 네비게이션 어플리케이션과 레스토랑 어플리케이션을 함께 사용하는 경우에, 네비게이션 어플리케이션을 디스플레이의 왼쪽에 상대적으로 작게 표시하고 레스토랑 어플리케이션을 디스플레이의 오른쪽에 상대적으로 크게 표시하여 사용한 이력이 많은 경우, 레이 아웃 식별 모델(141-4)은 이러한 사용 이력에 따라 네비게이션 어플리케이션과 레스토랑 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 네비게이션 어플리케이션과 레스토랑 어플리케이션을 포 그라운드에 실행할 수 있다. 즉, 전자 장치(100)는 도 2b와 같이, 식별된 레이 아웃에 따라 네비게이션 어플리케이션이 제공하는 화면(23)과 레스토랑 어플리케이션이 제공하는 화면(22)을 디스플레이에 함께 표시할 수 있다.
도 3a 및 도 3b은 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 사용자 음성 명령을 수행할 어플리케이션만을 표시하는 실시 예를 도시한 도면이다.
도 3a를 참조하면, 전자 장치(100)의 포 그라운드에 메신져 어플리케이션이 실행 중이며, 백 그라운드에 음악 재생 어플리케이션이 실행 중인 도중, 전자 장치(100)는 사용자의 음성 명령을 수신할 수 있다. 즉, 전자 장치(100)의 디스플레이 상에 메신져 어플리케이션이 제공하는 화면(31)이 표시되는 도중, 전자 장치(100)는 마이크를 통해 “김치찌개 레시피 찾아줘”라는 사용자 음성 명령을 획득할 수 있다.
사용자 음성 명령이 획득되면, 전자 장치(100)는 앱 결정 모델(141-1)을 통해, 사용자 음성 명령을 수행할 어플리케이션을 레시피 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 그라운드 식별 모델(141-2)을 통해, 레시피 어플리케이션이 전자 장치(100)의 포 그라운드에서 실행되어야 하는지 여부를 식별할 수 있다. 일 예로, 그라운드 식별 모델(141-2)은 “김치찌개 레시피 찾아줘”라는 사용자 음성 명령에 따라 레시피 어플리케이션이 포 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 멀티 윈도우 식별 모델(141-3)을 통해, 레시피 어플리케이션을 메신져 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다. 일 예로, 기존 사용자 들의 레시피 어플리케이션과 메신져 어플리케이션을 멀티 윈도우로 실행한 사용 이력이 적은 경우, 전자 장치(100)는 레시피 어플리케이션 만을 포 그라운드에서 실행할 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 기존 음악 재생 어플리케이션을 백 그라운드에서 실행시키면서, 레시피 어플리케이션을 포 그라운드에 실행할 수 있다. 그리고, 전자 장치(100)는 기존 메신져 어플리케이션이 백 그라운드에 실행되도록 메신져 어플리케이션을 제어할 수 있다. 즉, 전자 장치(100)는 도 3b와 같이, 레시피 어플리케이션이 제공하는 화면(32)을 디스플레이에 표시할 수 있다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 따라 기존 실행 중인 어플리케이션과 사용자 음성 명령을 수행할 어플리케이션을 멀티 윈도우로 함께 표시하는 실시 예를 도시한 도면이다.
도 4a를 참조하면, 전자 장치(100)의 포 그라운드에 쇼핑몰 어플리케이션이 실행 중인 도중, 전자 장치(100)는 사용자의 음성 명령을 수신할 수 있다. 즉, 전자 장치(100)의 디스플레이 상에 쇼핑몰 어플리케이션이 제공하는 화면(41)이 표시되는 도중, 전자 장치(100)는 마이크를 통해 “A 앱에서 이번 oo 신상 뭔지 찾아줘”라는 사용자 음성 명령을 획득할 수 있다.
사용자 음성 명령이 획득되면, 전자 장치(100)는 앱 결정 모델(141-1)을 통해, 사용자 음성 명령을 수행할 어플리케이션을 A 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 그라운드 식별 모델(141-2)을 통해, A 어플리케이션이 전자 장치(100)의 포 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 멀티 윈도우 식별 모델(141-3)을 통해, A 어플리케이션이 쇼핑몰 어플리케이션과 함께 포 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 레이 아웃 식별 모델(141-4)을 통해, A 어플리케이션과 쇼핑몰 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 A 어플리케이션과 쇼핑몰 어플리케이션을 포 그라운드에 실행할 수 있다. 즉, 전자 장치(100)는 도 4b와 같이, A 어플리케이션이 제공하는 화면(42)과 쇼핑몰 어플리케이션이 제공하는 화면(41)을 식별된 레이 아웃에 따라 디스플레이에 표시할 수 있다.
그리고, 전자 장치(100)는 사용자 음성 명령에 대응되는 동작의 완료를 안내하는 정보를 제공할 수 있다. 즉, 전자 장치(100)는 도 4b와 같이, 사용자 음성 명령에 따라 A 앱에서 00 신상을 검색하였음을 안내하는 음성 정보를 출력할 수 있다. 동작의 완료를 안내하는 정보에 대해서는 도 8을 통해 후술하도록 한다.
도 5a 및 도 5b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 5a를 참조하면, 전자 장치(100)의 포 그라운드에 인터넷 어플리케이션 및 레스토랑 어플리케이션이 멀티윈도우로 함께 실행 중인 도중, 전자 장치(100)는 사용자의 음성 명령을 수신할 수 있다. 즉, 전자 장치(100)의 디스플레이 상에 인터넷 어플리케이션이 제공하는 화면(51) 및 레스토랑 어플리케이션이 제공하는 화면(52)이 함께 표시되는 도중, 전자 장치(100)는 마이크를 통해 “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘” 라는 사용자 음성 명령을 획득할 수 있다.
그리고, 사용자 음성 명령이 획득되면, 전자 장치(100)는 앱 결정 모델(141-1)을 통해, 사용자 음성 명령을 수행할 어플리케이션을 네비게이션 어플리케이션 및 음악 재생 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 그라운드 식별 모델(141-2)을 통해, 네비게이션 어플리케이션이 전자 장치(100)의 포 그라운드에서 실행되어야 하며, 음악 재생 어플리케이션이 백 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 멀티 윈도우 식별 모델(141-3)을 통해, 네비게이션 어플리케이션과 함께 포 그라운드에서 실행되어야 하는 어플리케이션을 레스토랑 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 레이 아웃 식별 모델(141-4)을 통해, 네비게이션 어플리케이션과 레스토랑 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 네비게이션 어플리케이션과 레스토랑 어플리케이션을 포 그라운드에 실행할 수 있다. 즉, 전자 장치(100)는 도 5b와 같이, 식별된 레이 아웃에 따라 네비게이션 어플리케이션이 제공하는 화면(53)과 레스토랑 어플리케이션이 제공하는 화면(52)을 디스플레이에 함께 표시할 수 있다.
그리고, 전자 장치(100)는 음악 재생 어플리케이션을 백 그라운드에서 실행시키며, 음악 재생 어플리케이션에서 신나는 노래를 재생할 수 있다. 또한, 일 예로, 전자 장치(100)는 도 5b와 같이 음악 재생 어플리케이션이 백 그라운드에서 실행 중임을 알리는 아이콘(54)을 디스플레이 상단에 더 표시할 수 있다.
그리고, 전자 장치(100)는 사용자 음성 명령에 대응되는 동작의 완료를 안내하는 정보를 제공할 수 있다. 즉, 전자 장치(100)는 도 5b와 같이, 사용자 음성 명령에 따라 네비 앱에서 강릉 가는 길을 찾고, 음악 재생 앱에서 신나는 노래를 재생하였음을 안내하는 음성 정보를 출력할 수 있다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른, 사용자 음성 명령을 수행할 복수의 어플리케이션을 포 그라운드 및 백 그라운드에서 실행하는 실시 예를 도시한 도면이다.
도 6a를 참조하면, 전자 장치(100)의 포 그라운드에 인터넷 어플리케이션 및 레스토랑 어플리케이션이 멀티윈도우로 함께 실행 중인 도중, 전자 장치(100)는 사용자의 음성 명령을 수신할 수 있다. 즉, 전자 장치(100)의 디스플레이 상에 인터넷 어플리케이션이 제공하는 화면(51) 및 레스토랑 어플리케이션이 제공하는 화면(52)이 함께 표시되는 도중, 전자 장치(100)는 마이크를 통해 “신나는 노래와 함께 네비에서 강릉 가는 길 찾아줘, 노래 가사도 보여줘” 라는 사용자 음성 명령을 획득할 수 있다.
그리고, 사용자 음성 명령이 획득되면, 전자 장치(100)는 앱 결정 모델(141-1)을 통해, 사용자 음성 명령을 수행할 어플리케이션을 네비게이션 어플리케이션 및 음악 재생 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 그라운드 식별 모델(141-2)을 통해, 네비게이션 어플리케이션 및 음악 재생 어플리케이션이 전자 장치(100)의 포 그라운드에서 실행되어야 하는 것으로 식별할 수 있다.
그리고, 전자 장치(100)는 멀티 윈도우 식별 모델(141-3)을 통해, 네비게이션 어플리케이션 및 음악 재생 어플리케이션과 함께 포 그라운드에서 실행되어야 하는 어플리케이션을 레스토랑 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 레이 아웃 식별 모델(141-4)을 통해, 네비게이션 어플리케이션, 음악 재생 어플리케이션 및 레스토랑 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 네비게이션 어플리케이션, 음악 재생 어플리케이션 및 레스토랑 어플리케이션을 포 그라운드에 실행할 수 있다. 즉, 전자 장치(100)는 도 6b와 같이, 식별된 레이 아웃에 따라 네비게이션 어플리케이션이 제공하는 화면(53), 음악 재생 어플리케이션이 제공하는 화면(54-1) 및 레스토랑 어플리케이션이 제공하는 화면(52)을 디스플레이에 함께 표시할 수 있다. 또한, 일 예로, 전자 장치(100)는 도 6b와 같이 음악 재생 어플리케이션이 실행 중임을 알리는 아이콘(54-2)을 디스플레이 상단에 더 표시할 수 있다.
그리고, 전자 장치(100)는 사용자 음성 명령에 대응되는 동작의 완료를 안내하는 정보를 제공할 수 있다. 즉, 전자 장치(100)는 도 6b와 같이, 사용자 음성 명령에 따라 네비게이션 앱에서 강릉 가는 길을 찾고, 음악 재생 앱에서 신나는 노래를 재생하며 가사를 제공하였음을 안내하는 음성 정보를 출력할 수 있다.
도 7a는 본 개시에 따른 사용자 음성 명령을 수행할 복수의 어플리케이션을 식별하는 실시 예를 도시한 도면이다.
본 개시에 따른, 전자 장치(100)는 사용자의 음성 명령에 대응되는 음성 정보를 출력할 수 있다.
도 7a를 참조하면, 전자 장치(100)는 “000, 강릉 가는길 모든 네비에서 찾아줘”라는 사용자 음성 명령을 획득할 수 있다. 여기서, 000은 본 개시에 따른 음성 인식 시스템을 실행시키기 위한 웨이크업 음성일 수 있다. 그리고, 전자 장치(100)는 도 1에 도시된 음성 인식 시스템을 이용하여 사용자의 음성 명령을 실행할 어플리케이션을 전자 장치(100)에 설치된 복수의 네비게이션 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 복수의 네비게이션 어플리케이션에서 사용자의 음성 명령에 대응되는 명령을 실행하도록 복수의 네비게이션 어플리케이션 각각을 제어할 수 있다.
그리고, 전자 장치(100)는 “네, 3개의 네비게이션 앱에서 강릉 가는 길을 찾았어요.“와 같이, 사용자 음성 명령에 대응되는 동작이 수행되었음을 알리는 음성 정보를 출력할 수 있다.
도 7b는 본 개시에 따른, 사용자 음성 명령에 대응되는 복수의 어플리케이션을 식별하고, 식별된 복수의 어플리케이션 중 사용자 음성 명령을 수행할 어플리케이션을 식별하기 위해 음성 정보를 출력하는 실시 예를 도시한 도면이다.
본 개시에 따른 전자 장치(100)는 사용자 음성 명령에 대해 음성 정보를 출력하여 사용자 음성 명령을 수행할 어플리케이션을 식별할 수 있다.
도 7b를 참조하면, 전자 장치(100)는 “000, 써니 틀어줘”와 같은 사용자 음성 명령을 획득할 수 있다. 그리고, 전자 장치(100)는 사용자 음성 명령을 수행할 어플리케이션의 타입을 음악 재생 어플리케이션 타입 및 동영상 재생 어플리케이션 타입으로 식별할 수 있다. 그리고, 전자 장치(100)는 전자 장치(100)에 식별된 타입에 대응되는 복수의 어플리케이션(일 예로, A 어플리케이션 및 B 어플리케이션) 중 사용자의 음성 명령을 수행할 어플리케이션을 식별하기 위해, “네, A 앱과 B 앱에서 써니 콘텐츠를 찾았어요 이 중에 어떤 것을 보시겠어요?“ 와 같은 음성 정보를 출력할 수 있다.
그리고, 전자 장치(100)는 출력된 음성 정보에 대응되는 사용자 음성 명령을 획득할 수 있다. 즉, 전자 장치(100)는 “위에 있는 거” 와 같은 사용자 음성 명령에 의해, “써니”에 대응되는 컨텐츠가 재생되도록 A 어플리케이션을 제어할 수 있다.
그리고, 전자 장치(100)는 “네, A 앱에서 써니 콘텐츠를 재생 할게요“ 와 같이 A 어플리케이션에서 사용자 음성 명령에 대응되는 동작이 수행되었음을 알리는 음성 정보를 출력할 수 있다.
도 7a 및 도 7b에서 설명한 사용자의 음성 명령에 대응되는 음성 정보를 출력하는 실시 예는 도 8에 개시된 복수의 모듈들에 의해 구현될 수 있다.
도 8은 본 개시에 따른 사용자 음성 명령에 대한 응답을 제공하는 음성 인식 시스템을 도시한 블록도이다.
도 8을 참조하면, 전자 장치(100)는 음성 입력 모듈(810)을 통해, 사용자 음성을 입력 받을 수 있다. 즉, 음성 입력 모듈(810)은 음성 데이터 형태의 사용자 음성을 입력 받기 위한 구성이다. 이때, 음성 입력 모듈(810)은 전자 장치(100)의 마이크(130)를 통해 사용자 음성을 포함하는 아날로그 형태의 오디오 신호를 수신하고, 아날로그 신호를 디지털 신호로 변환할 수 있다. 일 실시 예로, 음성 입력 모듈(810)은 디지털 신호로부터 노이즈 성분을 제거하여 사용자 음성 명령에 대응되는 음성 데이터를 획득할 수 있다. 다만, 다른 실시 예에 따르면, 음성 입력 모듈(810)이 별도의 노이즈 성분을 제거하지 않고, 이후 음성 인식 모델을 통해 디지털 신호에 포함된 노이즈가 제거될 수 있다. 특히, 음성 입력 모듈(810)을 통해 수신되는 사용자 음성은 적어도 하나의 텍스트를 포함하는 문장 또는 구 형태일 수 있으나, 이는 일 실시 예에 불과할 뿐, 복수의 문장 또는 구를 포함할 수 있다.
한편, 음성 입력 모듈(810)에 포함된 마이크는 전자 장치(100) 내부에 구비될 수 있으나, 이는 일 실시 예에 불과할 뿐, 외부에 구비되어 전자 장치(100)와 유선 또는 무선으로 연결될 수 있다. 또한, 음성 입력 모듈(810)은 외부 장치로부터 사용자 음성을 수신하는 통신 모듈을 포함할 수 있음은 물론이다.
그리고, ASR 모듈(141)은 음성 입력 모듈(810)로부터 수신된 음성 데이터 형태의 사용자 음성을 텍스트 데이터로 변환할 수 있다. 그리고, NLU 모듈(142)은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 그리고, 실행 모듈(143)은 NLU 모듈(142)을 통해 획득한 의도, 슬롯 및 ASR 모듈(141)을 통해 획득한 사용자 음성 명령에 대응되는 텍스트 데이터를 바탕으로, 사용자 음성 명령을 수행할 적어도 하나의 어플리케이션을 식별하여, 사용자의 음성 명령에 대응되는 동작을 수행하도록 식별된 어플리케이션을 제어하기 위한 구성이다.
ASR 모듈(141), NLU 모듈(142) 및 실행 모듈(143)에 대해서는 도 1에서 설명하였으므로, 자세한 내용은 생략하도록 한다.
대화 매니저 모듈(820)은 NLU 모듈(142)을 통해 획득된 사용자 의도 및 슬롯 또는 실행 모듈(143)을 통해 획득된 일 어플리케이션에 대한 제어 동작을 바탕으로 사용자 음성에 대한 응답을 제공할 수 있다. 이때, 대화 매니저 모듈(820)은 지식 베이스를 기반으로 사용자 음성에 대한 응답을 제공할 수 있다. 이때, 지식 베이스는 전자 장치(100) 내에 포함될 수 있으나, 이는 일 실시 예에 불과할 뿐, 외부 서버에 포함될 수 있다.
또한, 대화 매니저 모듈(820)은 NLU 모듈(142)에 의해 파악된 사용자의 의도가 명확한지 여부를 판단할 수 있다. 예를 들어, 대화 매니저 모듈(820)은 슬롯에 대한 정보가 충분한지 여부에 기초하여 사용자 의도가 명확한지 여부를 판단할 수 있다. 또한, 대화 매니저 모듈(820)은 NLU 모듈(142)에서 파악된 슬롯이 사용자가 수행하고자 하는 기능을 수행하는데 충분한지 여부를 판단할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈(820)은 사용자의 의도가 명확하지 않은 경우 사용자에게 필요한 정보를 요청하는 피드백을 수행할 수 있다.
자연어 생성 모듈(830)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 텍스트 형태로 변경된 정보는 자연어의 형태일 수 있다. 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보, 질문에 대한 응답 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 텍스트 형태로 변경된 정보는 전자 장치(100)의 디스플레이에 표시되거나, 텍스트 음성 변환 모듈(840)에 의해 음성 형태로 변경될 수 있다.
텍스트 음성 변환 모듈(840)은 텍스트 형태의 정보를 음성 형태의 정보로 변경할 수 있다. 텍스트 음성 변환 모듈(840)은 자연어 생성 모듈(830)로부터 텍스트 데이터 형태의 정보를 수신하고, 텍스트 데이터 형태의 정보를 음성 데이터 형태의 정보로 변경할 수 있다.
출력 모듈(850)은 텍스트 음성 변환 모듈(840)로부터 수신된 음성 데이터 형태의 정보를 출력할 수 있다. 이때, 출력 모듈(850)은 스피커 또는 음성 출력 단자를 통해 음성 데이터 형태의 정보를 출력할 수 있다. 또는 출력 모듈(850)은 자연어 생성 모듈(830)을 통해 획득된 텍스트 데이터 형태의 정보를 디스플레이 또는 영상 출력 단자를 통해 출력할 수 있다.
도 9는 본 개시의 일 실시 예에 따른, 사용자 음성 명령에 대응되는 어플리케이션과 포 그라운드에서 실행 중인 어플리케이션을 함께 제공하기 위한 전자 장치의 제어 방법을 도시한 흐름도이다.
우선, 도 9를 참조하면, 전자 장치(100)는 사용자의 음성 명령을 획득할 수 있다(S905). 그리고, 전자 장치(100)는 획득된 음성 명령을 음성 인식하여 텍스트를 획득할 수 있다(S910).
그리고, 전자 장치(100)는 획득된 텍스트를 바탕으로 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별할 수 있다(S915). 일 예로, 사용자의 음성 명령이 복수의 어플리케이션을 제어하기 위한 음성 명령인 경우, 전자 장치(100)는 사용자 명령에 대응되는 복수의 어플리케이션을 제2 어플리케이션으로 식별할 수 있다.
그리고, 전자 장치(100)는 적어도 하나의 제2 어플리케이션 중 포 그라운드에서 실행할 제3 어플리케이션을 식별할 수 있다(S920). 즉, 전자 장치(100)는 적어도 하나의 제2 어플리케이션 중 전자 장치(100) 디스플레이를 통해 화면을 제공할 제3 어플리케이션을 식별할 수 있다.
그리고, 현재 포 그라운드에서 실행 중인 제1 어플리케이션이 존재하는 경우(S925-Y), 전자 장치(100)는 제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행하여야 되는지 여부를 식별할 수 있다(S930).
제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행하여야 되는 것으로 식별되면(S930-Y), 전자 장치(100)는 포 그라운드에서 실행할 복수의 어플리케이션 각각의 레이아웃을 식별할 수 있다(S940). 즉, 전자 장치(100)는 제1 어플리케이션 및 제3 어플리케이션 각각의 레이아웃을 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 복수의 어플리케이션을 포 그라운드에서 실행할 수 있다(S950).
제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행하여야 되는 것으로 식별되지 않으면(S930-N), 전자 장치(100)는 제3 어플리케이션이 복수 개인지 여부를 식별할 수 있다(S935). 식별 결과, 제3 어플리케이션이 복수 개이면(S935-Y), 전자 장치(100)는 포 그라운드에서 실행할 복수의 어플리케이션 각각의 레이아웃을 식별할 수 있다(S940). 즉, 전자 장치(100)는 복수의 제3 어플리케이션 각각의 레이아웃을 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 복수의 어플리케이션을 포 그라운드에서 실행할 수 있다(S950). 또한, 식별 결과, 제3 어플리케이션이 복수 개가 아닌 경우(S935-N), 전자 장치(100)는 하나의 제3 어플리케이션을 포 그라운드에서 실행할 수 있다(S945).
그리고, 현재 포 그라운드에서 실행 중인 제1 어플리케이션이 존재하지 않는 경우(S925-N), 전자 장치(100)는 제3 어플리케이션이 복수 개인지 여부를 식별할 수 있다(S935). 식별 결과, 제3 어플리케이션이 복수 개이면(S935-Y), 전자 장치(100)는 포 그라운드에서 실행할 복수의 어플리케이션 각각의 레이아웃을 식별할 수 있다(S940). 즉, 전자 장치(100)는 복수의 제3 어플리케이션 각각의 레이아웃을 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 복수의 어플리케이션을 포 그라운드에서 실행할 수 있다(S950). 또한, 식별 결과, 제3 어플리케이션이 복수 개가 아닌 경우(S935-N), 전자 장치(100)는 하나의 제3 어플리케이션을 포 그라운드에서 실행할 수 있다(S945).
도 10은 본 개시에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
우선, 도 10을 참조하면, 전자 장치(100)는 포 그라운드에 제1 어플리케이션을 실행할 수 있다(S1010). 즉, 전자 장치(100)는 디스플레이 상에 제1 어플리케이션이 제공하는 화면을 표시할 수 있다.
그리고, 포 그라운드에 제1 어플리케이션을 실행되는 동안, 전자 장치(100)는 사용자의 음성 명령을 획득할 수 있다(S1020).
사용자의 음성 명령이 획득되면, 전자 장치(100)는 음성 명령을 음성 인식하여 텍스트를 획득할 수 있다(S1030). 여기서 텍스트는 본 개시에 따른 ASR 모듈(141)을 통해 획득되는 텍스트 데이터일 수 있다.
그리고, 전자 장치(100)는 텍스트를 바탕으로, 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별할 수 있다(S1040). 즉, 전자 장치(100)는 본 개시에 따른 음성 인식 시스템에 따라 텍스트를 바탕으로, 사용자의 음성 명령에 대응되는 적어도 하나의 제2 어플리케이션을 식별할 수 있다.
그리고, 전자 장치(100)는 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션 각각이 전자 장치(100)의 포 그라운드 또는 백 그라운드에서 실행할지 여부를 결정할 수 있다(S1050).
그리고, 결정 결과를 바탕으로 전자 장치(100)는 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션을 제공할 수 있다(S1060). 즉, 전자 장치의 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 전자 장치(100)는 복수 개의 어플리케이션 각각의 레이 아웃을 식별하고, 식별된 레이 아웃에 따라 복수 개의 어플리케이션 각각을 전자 장치(100)의 포 그라운드에 실행할 수 있다.
구체적으로, 전자 장치(100)는 텍스트를 바탕으로 적어도 하나의 제2 어플리케이션 중 전자 장치(100) 포 그라운드에서 실행할 제3 어플리케이션을 식별하고, 제3 어플리케이션에 대한 정보를 바탕으로, 제1 어플리케이션을 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다. 일 예로, 전자 장치(100)는 제1 어플리케이션 및 제3 어플리케이션이 포 그라운드에서 함께 실행되는 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 제1 어플리케이션을 제3 어플리케이션과 함께 실행할지 여부를 식별할 수 있다.
그리고, 제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 전자 장치(100)는 제1 어플리케이션과 제3 어플리케이션 각각의 레이 아웃을 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 레이 아웃에 따라 제1 어플리케이션과 제3 어플리케이션 각각을 전자 장치(100)의 포 그라운드에 실행할 수 있다.
그리고, 제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 전자 장치(100)는 제3 어플리케이션을 전자 장치의 포 그라운드에 실행할 수 있다. 그리고, 전자 장치(100)는 제1 어플리케이션이 전자 장치(100)의 백 그라운드에 실행되도록 제어할 수 있다. 다만, 제3 어플리케이션이 복수 개인 경우, 복수의 제3 어플리케이션 각각의 레이 아웃을 식별하고, 식별된 레이 아웃에 따라 복수 개의 제3 어플리케이션 각각을 전자 장치(100)의 포 그라운드에 실행할 수 있다.
그리고, 전자 장치(100)는 텍스트를 바탕으로 적어도 하나의 제2 어플리케이션 중 전자 장치(100)의 백 그라운드에서 실행할 제4 어플리케이션을 식별할 수 있다. 그리고, 전자 장치(100)는 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 음성 명령에 대응되는 동작이 제4 어플리케이션에서 수행되도록 제어할 수 있다.
도 11은 본 개시의 일 실시 예에 따른, 전자 장치의 구체적인구성을 도시한 블록도이다. 도 11에 도시된 바와 같이, 전자 장치(100)는 메모리(110), 디스플레이(120), 마이크(130), 프로세서(140), 통신 인터페이스(150), 스피커(160) 및 센서(170)를 포함할 수 있다. 한편, 도 11에 도시된 전자 장치(100)의 구성은 전자 장치(100)의 유형에 따라 일부 구성이 추가되거나 생략될 수 있음은 물론이다.
여기서, 메모리(110), 디스플레이(120) 및 마이크(130)에 대해서는 도 1을 통해 상술 하였으므로, 자세한 내용은 생략하도록 한다.
본 개시에 따른 프로세서(140)는 포 그라운드에 제1 어플리케이션이 실행되는 동안, 사용자의 음성 명령을 획득할 수 있다. 즉, 디스플레이(120)에 제1 어플리케이션이 표시되는 동안, 프로세서(140)는 사용자 음성 명령을 수신하도록 마이크(130)를 제어할 수 있다.
그리고, 프로세서(140)는 음성 명령을 음성 인식하여 텍스트를 획득할 수 있다. 즉, 프로세서(140)는 음성 인식 시스템의 ASR 모듈(141)을 통해, 사용자의 음성 명령을 텍스트로 변환할 수 있다.
그리고, 프로세서(140)는 텍스트를 바탕으로 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별할 수 있다. 구체적으로, 프로세서(140)는 NLU 모듈(142)에 사용자의 음성 명령에 대응되는 텍스트를 입력하여, 음성 명령의 의도 및 슬롯을 획득할 수 있다. 그리고, 프로세서(140)는 사용자의 음성 명령에 대응되는 텍스트, 의도 및 슬롯 중 적어도 하나를 이용하여, 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별할 수 있다. 일 실시 예로, 프로세서(140)는 도 1의 앱 결정 모델(141-1)을 통해 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별할 수 있다.
그리고, 프로세서(140)는 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 제1 어플리케이션 및 적어도 하나의 제2 어플리케이션 각각이 전자 장치(100)의 포 그라운드 또는 백 그라운드에서 실행할지 여부를 결정할 수 있다. 여기서, 어플리케이션에 대한 정보는 어플리케이션의 타입(예로, 음악 재생 어플리케이션, 네비게이션 어플리케이션), 어플리케이션의 이름에 대한 정보 등을 포함할 수 있다. 일 실시 예로, 프로세서(140)는 도 1의 그라운드 식별 모델(141-2)을 통해 적어도 하나의 제2 어플리케이션 각각이 전자 장치(100)의 포 그라운드 또는 백 그라운드에서 실행할지 여부를 결정할 수 있다.
그리고, 결정 결과, 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 프로세서(140)는 포 그라운드에서 실행할 복수의 어플리케이션 각각의 레이 아웃을 식별할 수 있다. 일 실시 예로, 프로세서(140)는 레이 아웃 식별 모델(141-4)을 통해 포 그라운드에서 실행할 복수의 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다. 구체적으로, 프로세서(140)는 포 그라운드에서 실행할 복수의 어플리케이션들의 레이 아웃 사용 이력을 바탕으로 학습된 레이 아웃 식별 모델(141-4)을 통해 포 그라운드에서 실행할 복수의 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다.
또한, 구체적으로, 프로세서(140)는 음성 명령에 대응되는 텍스트, 의도 및 슬롯 중 적어도 하나를 바탕으로 음성 명령을 수행할 적어도 하나의 제2 어플리케이션 중 전자 장치(100)의 포 그라운드에서 실행할 제3 어플리케이션을 식별하고, 전자 장치(100)의 백 그라운드에서 실행할 제4 어플리케이션을 식별할 수 있다. 그리고, 프로세서(140)는 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 음성 명령에 대응되는 동작이 제4 어플리케이션에서 수행되도록 제4 어플리케이션을 제어하면서, 제3 어플리케이션이 포 그라운드에서 실행되도록 제3 어플리케이션을 제어할 수 있다.
그리고, 프로세서(140)는 제3 어플리케이션에 대한 정보를 바탕으로, 사용자 음성 명령에 따라 제1 어플리케이션을 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다.
일 실시 예로, 프로세서(140)는 도 1의 멀티 윈도우 식별 모델(141-3)을 통해, 사용자 음성 명령에 따라 제1 어플리케이션을 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다. 구체적으로, 프로세서(140)는 제1 어플리케이션 및 제3 어플리케이션이 포 그라운드에서 함께 실행된 사용 이력을 바탕으로 학습된 멀티 윈도우 식별 모델(141-3)을 통해 제1 어플리케이션을 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별할 수 있다.
그리고, 사용자 음성 명령에 따라 제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 프로세서(140)는 제1 어플리케이션과 제3 어플리케이션을 디스플레이(120)에 표시하기 위한 레이 아웃을 각각 식별할 수 있다. 일 실시 예로, 프로세서(140)는 레이 아웃 식별 모델(141-4)을 통해 제1 어플리케이션과 제3 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다. 구체적으로, 프로세서(140)는 제1 어플리케이션과 제3 어플리케이션의 레이 아웃 사용 이력을 바탕으로 학습된 레이 아웃 식별 모델(141-4)을 통해 제1 어플리케이션과 제3 어플리케이션 각각에 대한 레이 아웃을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 레이 아웃에 따라 제1 어플리케이션과 제3 어플리케이션 각각을 전자 장치의 포 그라운드에 실행할 수 있다. 즉, 프로세서(140)는 제1 어플리케이션과 제3 어플리케이션이 제공하는 화면 각각을 식별된 레이 아웃에 따라 디스플레이(120) 화면에 표시하도록 디스플레이(120)를 제어할 수 있다.
그리고, 사용자 음성 명령에 따라 제1 어플리케이션이 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 프로세서(140)는 제3 어플리케이션을 전자 장치(100)의 포 그라운드에 실행할 수 있다. 즉, 프로세서(140)는 제3 어플리케이션 화면을 디스플레이(120)의 화면에 표시하도록 디스플레이(120)를 제어하고, 제1 어플리케이션이 백 그라운드에서 실행되도록 제어할 수 있다.
또한, 일 실시 예로, 사용자 음성 명령에 따라 전자 장치의 포 그라운드에 실행할 제3 어플리케이션이 복수 개인 경우, 프로세서(140)는 복수의 제3 어플리케이션 각각의 레이 아웃을 식별할 수 있다. 일 예로, 프로세서(140)는 레이 아웃 식별 모델(141-4)을 통해 복수의 제3 어플리케이션 각각의 레이 아웃을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 레이 아웃에 따라 복수의 제3 어플리케이션 각각을 포 그라운드에 실행할 수 있다. 즉, 프로세서(140)는 복수의 제3 어플리케이션이 제공하는 화면 각각을 식별된 레이 아웃에 따라 디스플레이(120) 화면에 표시하도록 디스플레이(120)를 제어할 수 있다.
통신 인터페이스(150)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스(150)는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 및 무선 통신 모듈 등을 포함할 수 있다. 특히, 프로세서(140)는 통신 인터페이스(150)를 이용하여 각종 외부 장치와 통신을 수행할 수 있다. 이때, 통신 인터페이스(150)는 음성 인식, 기계 번역 및 자연어 이해를 위하여 외부 서버와 통신을 수행할 수 있다. 즉, 통신 인터페이스(150)는 음성 인식을 위해 음성 데이터 형태의 사용자 음성을 외부 서버로 전송할 수 있다.
스피커(160)는 외부로 수신된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소일 수 있다. 이때, 전자 장치(100)는 스피커(160)와 같은 오디오 출력 장치를 포함할 수 있으나, 오디오 출력 단자와 같은 출력 장치를 포함할 수 있다. 특히, 스피커(160)는 사용자 음성에 대한 응답 결과 및 동작 결과 등을 음성 형태로 제공할 수 있다.
센서(170)는 전자 장치(100)와 관련된 다양한 정보를 획득할 수 있다. 특히, 센서(170)는 전자 장치(100)의 위치 정보를 획득할 수 있는 GPS를 포함할 수 있으며, 전자 장치(100)를 사용하는 사용자의 생체 정보를 획득하기 위한 생체 센서(예로, 심박수 센서, PPG 센서 등), 전자 장치(100)의 움직임을 감지하기 위한 움직임 센서 등과 같은 다양한 센서를 포함할 수 있다.
그 밖에 전자 장치(100)는 전자 장치(100)를 제어하기 위한 사용자 명령을 입력 받는 입력 인터페이스를 포함할 수 있다. 이때, 입력 인터페이스는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
본 문서의 실시 예의 다양한 변경(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 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((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)를 의미할 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 적층형 디스플레이 장치를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100: 전자 장치

Claims (20)

  1. 전자 장치의 제어 방법에 있어서,
    포 그라운드(foreground)에 제1 어플리케이션이 실행되는 동안 사용자의 음성 명령을 획득하는 단계;
    상기 음성 명령을 음성 인식하여 텍스트를 획득하는 단계;
    상기 텍스트를 바탕으로 상기 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별하는 단계;
    상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션 각각이 상기 전자 장치의 포 그라운드 또는 백 그라운드(background)에서 실행할지 여부를 결정하는 단계; 및
    상기 결정 결과를 바탕으로 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션을 제공하는 단계; 제어 방법.
  2. 제1항에 있어서,
    상기 제공하는 단계는,
    상기 결정 결과, 상기 전자 장치의 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 단계;
    상기 식별된 레이 아웃에 따라 상기 복수 개의 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함하는 제어 방법.
  3. 제2항에 있어서,
    상기 레이 아웃을 식별하는 단계는,
    상기 복수 개의 어플리케이션들의 레이 아웃 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 단계인 제어 방법.
  4. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 포 그라운드에서 실행할 제3 어플리케이션을 식별하는 단계; 및
    상기 제3 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별하는 단계;를 포함하는 제어 방법.
  5. 제4항에 있어서,
    상기 함께 실행할지 여부를 식별하는 단계는,
    상기 제1 어플리케이션 및 상기 제3 어플리케이션이 포 그라운드에서 함께 실행되는 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 단계인 제어 방법.
  6. 제4항에 있어서,
    상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 단계는,
    상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각의 레이 아웃을 식별하는 단계; 및
    상기 식별된 레이 아웃에 따라 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함하는 제어 방법.
  7. 제4항에 있어서,
    상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 단계는,
    상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행하는 단계를 포함하는 제어 방법.
  8. 제7항에 있어서,
    상기 제3 어플리케이션이 복수 개인 경우, 상기 복수의 제3 어플리케이션 각각의 레이 아웃을 식별하는 단계; 및
    상기 식별된 레이 아웃에 따라 상기 복수 개의 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 단계;를 포함하는 제어 방법.
  9. 제7항에 있어서,
    상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행하는 단계는,
    상기 제1 어플리케이션을 상기 전자 장치의 백 그라운드에 실행하는 단계를 더 포함하는 제어 방법.
  10. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 백 그라운드에서 실행할 제4 어플리케이션을 식별하는 단계를 포함하고,
    상기 제공하는 단계는,
    상기 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 상기 음성 명령에 대응되는 동작이 상기 제4 어플리케이션에서 수행되도록 제어하는 단계;를 포함하는 제어 방법.
  11. 전자 장치에 있어서,
    적어도 하나의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 적어도 하나의 인스트럭션을 실행하여 상기 전자 장치를 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    포 그라운드(foreground)에 제1 어플리케이션이 실행되는 동안, 사용자의 음성 명령을 획득하고,
    상기 음성 명령을 음성 인식하여 텍스트를 획득하고,
    상기 텍스트를 바탕으로 상기 음성 명령을 수행할 적어도 하나의 제2 어플리케이션을 식별하고,
    상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션 각각이 상기 전자 장치의 포 그라운드 또는 백 그라운드(background)에서 실행할지 여부를 결정하고,
    상기 결정 결과를 바탕으로 상기 제1 어플리케이션 및 상기 적어도 하나의 제2 어플리케이션을 제공하는 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 결정 결과, 상기 전자 장치의 포 그라운드에서 실행할 어플리케이션이 복수 개인 경우, 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하고,
    상기 식별된 레이 아웃에 따라 상기 복수 개의 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 전자 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 복수 개의 어플리케이션들의 레이 아웃 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 복수 개의 어플리케이션 각각의 레이 아웃을 식별하는 것을 특징으로 하는 전자 장치.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 포 그라운드에서 실행할 제3 어플리케이션을 식별하고,
    상기 제3 어플리케이션에 대한 정보를 바탕으로, 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할지 여부를 식별하는 전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 제1 어플리케이션 및 상기 제3 어플리케이션이 포 그라운드에서 함께 실행되는 사용 이력을 바탕으로 학습된 인공지능 모델을 통해 상기 제1 어플리케이션을 상기 제3 어플리케이션과 함께 실행할지 여부를 식별하는 것을 특징으로 하는 전자 장치.
  16. 제14항에 있어서,
    상기 프로세서는,
    상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되면, 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각의 레이 아웃을 식별하고,
    상기 식별된 레이 아웃에 따라 상기 제1 어플리케이션과 상기 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 전자 장치.
  17. 제14항에 있어서,
    상기 프로세서는,
    상기 제1 어플리케이션이 상기 제3 어플리케이션과 함께 포 그라운드에서 실행할 것으로 식별되지 않으면, 상기 제3 어플리케이션을 상기 전자 장치의 포 그라운드에 실행하는 전자 장치.
  18. 제17항에 있어서,
    상기 프로세서는,
    상기 제3 어플리케이션이 복수 개인 경우, 상기 복수의 제3 어플리케이션 각각의 레이 아웃을 식별하고,
    상기 식별된 레이 아웃에 따라 상기 복수 개의 제3 어플리케이션 각각을 상기 전자 장치의 포 그라운드에 실행하는 전자 장치.
  19. 제17항에 있어서,
    상기 프로세서는,
    상기 제1 어플리케이션을 상기 전자 장치의 백 그라운드에 실행하는 전자 장치.
  20. 제11항에 있어서,
    상기 프로세서는,
    상기 텍스트를 바탕으로 상기 적어도 하나의 제2 어플리케이션 중 상기 전자 장치의 백 그라운드에서 실행할 제4 어플리케이션을 식별하고,
    상기 제4 어플리케이션을 백 그라운드에서 동작 시키면서, 상기 음성 명령에 대응되는 동작이 상기 제4 어플리케이션에서 수행되도록 제어하는 전자 장치.
KR1020200180263A 2020-12-21 2020-12-21 전자 장치 및 이의 제어 방법 KR20220089537A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200180263A KR20220089537A (ko) 2020-12-21 2020-12-21 전자 장치 및 이의 제어 방법
PCT/KR2021/012857 WO2022139122A1 (ko) 2020-12-21 2021-09-17 전자 장치 및 이의 제어 방법
US17/674,540 US20220197694A1 (en) 2020-12-21 2022-02-17 Electronic apparatus and method for controlling electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200180263A KR20220089537A (ko) 2020-12-21 2020-12-21 전자 장치 및 이의 제어 방법

Publications (1)

Publication Number Publication Date
KR20220089537A true KR20220089537A (ko) 2022-06-28

Family

ID=82159940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200180263A KR20220089537A (ko) 2020-12-21 2020-12-21 전자 장치 및 이의 제어 방법

Country Status (2)

Country Link
KR (1) KR20220089537A (ko)
WO (1) WO2022139122A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115083413B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091347A (ja) * 2001-09-18 2003-03-28 Sony Corp 情報処理装置、並びに画面表示方法、画面表示プログラム及び画面表示プログラムが記録された記録媒体
KR101356368B1 (ko) * 2012-02-24 2014-01-29 주식회사 팬택 어플리케이션 전환 장치 및 방법
KR102000287B1 (ko) * 2016-10-18 2019-07-16 에스이테크주식회사 사용자별 맞춤형 메뉴 제공 시스템
JP6990023B2 (ja) * 2016-12-20 2022-01-12 Phcホールディングス株式会社 電子カルテ装置および電子カルテ制御方法
KR20180080629A (ko) * 2017-01-04 2018-07-12 삼성전자주식회사 전자 장치 및 전자 장치의 어플리케이션 실행 히스토리 표시 방법

Also Published As

Publication number Publication date
WO2022139122A1 (ko) 2022-06-30

Similar Documents

Publication Publication Date Title
US11580964B2 (en) Electronic apparatus and control method thereof
US11887590B2 (en) Voice enablement and disablement of speech processing functionality
US20220020375A1 (en) Detection of mission change in conversation
US11367434B2 (en) Electronic device, method for determining utterance intention of user thereof, and non-transitory computer-readable recording medium
US10600406B1 (en) Intent re-ranker
CN107077841B (zh) 用于文本到语音的超结构循环神经网络
US20190080685A1 (en) Systems and methods for enhancing user experience by communicating transient errors
US11455989B2 (en) Electronic apparatus for processing user utterance and controlling method thereof
KR102527281B1 (ko) 멀티미디어 재생 방법 및 그 디바이스
KR20190082294A (ko) 모바일 디바이스들에서의 모달리티 학습
US11126685B2 (en) Preview and optimization of publication for target computing device
US11074909B2 (en) Device for recognizing speech input from user and operating method thereof
US11790891B2 (en) Wake word selection assistance architectures and methods
KR102545666B1 (ko) 페르소나에 기반하여 문장을 제공하는 방법 및 이를 지원하는 전자 장치
US11881209B2 (en) Electronic device and control method
KR102596841B1 (ko) 사용자의 발화에 응답하여 하나 이상의 아이템을 제공하기 위한 전자 장치 및 방법
US11335325B2 (en) Electronic device and controlling method of electronic device
US11151995B2 (en) Electronic device for mapping an invoke word to a sequence of inputs for generating a personalized command
US11404050B2 (en) Electronic apparatus and method for controlling thereof
US20220197694A1 (en) Electronic apparatus and method for controlling electronic apparatus
KR20220089537A (ko) 전자 장치 및 이의 제어 방법
US20210241771A1 (en) Electronic device and method for controlling the electronic device thereof
US11386304B2 (en) Electronic device and method of controlling the same
KR20200021409A (ko) 전자 장치 및 그 제어 방법
US11966663B1 (en) Speech processing and multi-modal widgets