KR102669100B1 - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102669100B1
KR102669100B1 KR1020180133827A KR20180133827A KR102669100B1 KR 102669100 B1 KR102669100 B1 KR 102669100B1 KR 1020180133827 A KR1020180133827 A KR 1020180133827A KR 20180133827 A KR20180133827 A KR 20180133827A KR 102669100 B1 KR102669100 B1 KR 102669100B1
Authority
KR
South Korea
Prior art keywords
user
voice command
types
input data
electronic device
Prior art date
Application number
KR1020180133827A
Other languages
English (en)
Other versions
KR20200054354A (ko
Inventor
황인철
고현목
김문조
이호정
Original Assignee
삼성전자주식회사
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180133827A priority Critical patent/KR102669100B1/ko
Priority to PCT/KR2019/014742 priority patent/WO2020091519A1/en
Priority to US16/671,518 priority patent/US11393468B2/en
Priority to EP19206725.4A priority patent/EP3647914B1/en
Priority to CN201980067464.5A priority patent/CN112840313A/zh
Publication of KR20200054354A publication Critical patent/KR20200054354A/ko
Priority to US17/852,495 priority patent/US11631413B2/en
Application granted granted Critical
Publication of KR102669100B1 publication Critical patent/KR102669100B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

전자 장치가 개시된다. 본 전자 장치는 메모리 및 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형으로 구분하여 메모리에 저장하고, 입력 데이터 중 사용자 음성 명령이 인식되면, 사용자 음성 명령과 관련된 정보에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하고, 결정된 유형의 입력 데이터에 기초하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법{ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF}
본 개시는 전자 장치 및 그 제어방법에 관한 것으로, 더욱 상세하게는 하는 입력 데이터에서 인공 지능 학습 모델을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 전자 장치 및 그 제어방법에 대한 것이다.
종래 사용자 음성 명령에 대응되는 동작을 수행하기 위해서, 입력 데이터를 기존의 데이터와 비교한다. 예를 들어, 인식된 사용자의 음성을 기 저장된 데이터와 비교하거나, 인식된 사용자의 행동을 기 저장된 데이터와 비교한다. 하지만, 기 저장된 데이터와 비교하는 작업만으로 사용자 음성 명령을 명확히 파악하지 못하는 경우가 있을 수 있다.
이에, 사용자 음성 명령 인식 과정에서는 사용자 음성 명령을 구체적으로 파악하기 위해 음성 이외에 제스쳐, 감정과 같은 다양한 유형의 데이터를 새로 분석할 수 있다. 하지만, 다양한 유형의 데이터를 모두 사용하는 경우 인식 시간이 길게 소요된다는 문제점이 있었다. 또한, 어느 데이터를 이용할 것인지 판단하기 어렵다는 문제점이 있었다.
본 개시는 상술한 문제를 개선하기 위해 고안된 것으로, 본 개시의 목적은 입력 데이터를 유형별로 분류하고 인공 지능 학습 모델을 이용하여 분류된 유형에서 특정 유형의 입력 데이터를 결정하고, 사용자 음성 명령에 대응되는 정보를 제공하는 전자 장치 및 그의 제어방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 실시 예에 따른 전자 장치는 메모리 및 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형으로 구분하여 상기 메모리에 저장하고, 상기 입력 데이터 중 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령과 관련된 정보에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하고, 상기 결정된 유형의 입력 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 프로세서를 포함한다.
여기서, 상기 프로세서는 상기 사용자 음성 명령과 관련된 시간 정보에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
또한, 상기 프로세서는 상기 복수의 유형으로 구분된 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 상기 복수의 유형 별 대표 데이터를 획득하여 상기 메모리에 저장하고, 상기 결정된 유형의 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
여기서, 상기 프로세서는 상기 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 상기 복수의 유형은 제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 프로세서는 상기 입력 데이터 중 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 상기 사용자 음성 명령을 인식할 수 있다.
또한, 상기 프로세서는 상기 입력 데이터에서 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
여기서, 상기 프로세서는 상기 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 상기 웨이크 업 워드가 인식된 시간 구간에 기초하여 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식할 수 있다.
여기서, 상기 프로세서는 상기 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 상기 응답 정보를 제공할 수 없는 경우, 상기 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
또한, 상기 프로세서는 상기 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형으로 구분하여 메모리에 저장하는 단계, 상기 입력 데이터 중 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령과 관련된 정보에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계 및 상기 결정된 유형의 입력 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계를 포함한다.
여기서, 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계는 상기 사용자 음성 명령과 관련된 시간 정보에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
또한, 상기 메모리에 저장하는 단계는 상기 복수의 유형으로 구분된 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 상기 복수의 유형 별 대표 데이터를 획득하여 상기 메모리에 저장하고, 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는 상기 결정된 유형의 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
여기서, 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는 상기 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 상기 복수의 유형은 제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계는 상기 입력 데이터 중 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 상기 사용자 음성 명령을 인식할 수 있다.
또한, 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계는 상기 입력 데이터에서 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
여기서, 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계는 상기 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 상기 웨이크 업 워드가 인식된 시간 구간에 기초하여 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식할 수 있다.
여기서, 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는 상기 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 상기 응답 정보를 제공할 수 없는 경우, 상기 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
또한, 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계는 상기 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 상기 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 도시한 블록도이다.
도 2는 도 1의 전자 장치의 구체적인 구성을 설명하기 위한 블록도이다.
도 3은 입력 데이터를 유형 별로 분류하여 저장하는 동작을 설명하기 위한 도면이다.
도 4는 일정 시간 단위로 입력 데이터를 저장하는 동작을 설명하기 위한 도면이다.
도 5는 입력 데이터를 시간 정보에 기초하여 구분하는 과정을 설명하기 위한 도면이다.
도 6은 입력 데이터에 저장되는 내용이 시간에 따라 상이하다는 점을 설명하기 위한 도면이다.
도 7은 입력 데이터를 기 설정된 시간 구간으로 그룹핑하는 동작을 설명하기 위한 도면이다.
도 8은 그룹핑 과정에서 입력 데이터의 대표값을 획득하는 과정을 설명하기 위한 도면이다.
도 9는 기 설정된 데이터에 따라 복수의 유형 중 일부를 선택하는 동작을 설명하기 위한 도면이다.
도 10은 시간 구간에 따라 선택되는 복수의 유형이 상이함을 설명하기 위한 도면이다.
도 11은 음성 또는 감정 데이터를 이용하여 사용자 음성 명령에 대응되는 정보를 제공하는 다양한 실시 예를 설명하기 위한 도면이다.
도 12는 일시적으로 입력 데이터를 저장하고, 이후 일시적인 입력 데이터를 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 동작을 설명하기 위한 도면이다.
도 13은 복수의 입력 데이터에 가중치를 적용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 실시 예를 설명하기 위한 도면이다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 기능별로 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 시간 순서별로 설명하기 위한 도면이다.
도 16은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다." 또는 "구성되다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시의 계산은 머신 러닝 기반의 인식 시스템에 의해 수행될 수 있으며, 본 개시에서는 뉴럴 네트워크(Neural Networks)에 기반한 일련의 기계학습 알고리즘에 의한 분류 시스템으로서, 딥 러닝 기반의 인식 시스템을 예로서 설명한다.
딥 러닝 기반의 인식 시스템은 적어도 하나의 분류기를 포함할 수 있으며, 분류기는 하나 또는 복수 개의 프로세서에 해당할 수 있다. 프로세서는 다수의 논리 게이트들의 어레이(Array)로 구현될 수 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다.
분류기는 뉴럴 네트워크(Neural Network) 기반 분류기, SVM(Support Vector Machine), 에이다부스트 분류기(Adaboost Classifier), 베이지안 분류기(Bayesian Classifier) 및, 퍼셉트론 분류기(Perceptron Classifier) 등으로 구현될 수 있다. 이하, 본 개시의 분류기는 컨볼루션 뉴럴 네트워크(Convolutional Neural Network, CNN) 기반 분류기로 구현되는 실시 예에 대하여 설명한다. 뉴럴 네트워크 기반 분류기는, 연결선으로 연결된 많은 수의 인공 뉴런들을 이용하여 생물학적인 시스템의 계산 능력을 모방하도록 구현된 연산모델로서, 연결 강도(가중치)를 갖는 연결선을 통해 인간의 인지작용이나 학습과정을 수행하게 된다. 그러나, 본 개시의 분류기가 이에 한정되는 것은 아니며, 상술한 다양한 분류기로 구현될 수 있음은 물론이다.
일반적인 뉴럴 네트워크는 입력층(input layer), 은닉층(hidden layer) 및 출력층(output layer)을 포함하며, 은닉층은 필요에 따라서 1 이상의 층으로 구성될 수 있다. 이러한, 뉴럴 네트워크를 학습시키기 위한 알고리즘으로 역전파(Bak Propagation) 알고리즘을 이용할 수 있다.
분류기는 어떠한 데이터가 뉴럴 네트워크의 입력층에 입력되면, 입력된 학습 데이터에 대한 출력 데이터가 뉴럴 네트워크의 출력층으로 출력되도록 뉴럴 네트워크를 학습시킬 수 있다. 입력 데이터로부터 추출된 특징 정보가 입력되면, 뉴럴 네트워크를 이용하여 특징 정보의 패턴을 여러 클래스 중에서 어느 하나의 클래스로 분류하고, 분류 결과를 출력할 수 있다.
프로세서는 뉴럴 네트워크(Neural Networks)에 기반한 일련의 기계학습 알고리즘에 의한 분류 시스템으로서, 딥 러닝 기반의 인식 시스템을 이용할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 도시한 블록도이다.
전자 장치(100)는 메모리(110) 및 프로세서(120)로 구성될 수 있다.
전자 장치(100)는 TV, 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, 서버 등일 수 있다. 또는, 전자 장치(100)는 클라우딩 컴퓨팅 환경이 구축된 시스템 자체 즉, 클라우드 서버로 구현될 수도 있다. 구체적으로, 전자 장치(100)는 딥 러닝 기반의 인식 시스템을 포함하는 장치일 수 있다. 한편, 상술한 예는 전자 장치를 설명하기 위한 예시에 불과하며 반드시 상술한 장치에 한정되는 것은 아니다.
메모리(110)는 프로세서(120)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(120)와 별도의 메모리로 구현될 수도 있다.
여기서, 메모리(110)는 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형별로 저장할 수 있다. 복수의 유형별로 저장하기 위한 구체적인 동작은 프로세서(120)의 동작에서 후술한다.
한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
프로세서(120)는 전자 장치의 전반적인 제어 동작을 수행할 수 있다. 구체적으로, 프로세서는 전자 장치의 전반적인 동작을 제어하는 기능을 한다.
프로세서(120)는 디지털 영상 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(120)는 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형으로 구분하여 메모리(110)에 저장하고, 입력 데이터 중 사용자 음성 명령이 인식되면, 사용자 음성 명령과 관련된 정보에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하고, 결정된 유형의 입력 데이터에 기초하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 다른 실시 예에 따라 사용자 음성 명령 이외에, 모션 또는 제스쳐 등을 이용하여 사용자 명령이 입력될 수 있다. 즉, 프로세서(120)는 사용자 음성 명령 이외에 영상을 통한 사용자 명령을 입력 받을 수 있다. 그리고 본 명세서에서 기술되는 사용자 음성 명령은 사용자 영상 명령으로도 대체될 수 있다.
여기서, 입력 데이터는 사용자의 행동을 분석할 수 있는 영상 데이터 및 음성 데이터일 수 있다. 음성 데이터는 전자 장치(100)의 마이크 등을 통해서 획득될 수 있으며, 구현 예에 따라 외부 장치의 마이크를 통해 수신하고 전자 장치(100)는 음성 데이터만을 수신할 수 있다. 또한, 영상 데이터는 전자 장치(100)의 카메라 등을 통해서 획득될 수 있으며, 구현 예에 따라 외부 장치의 카메라를 통해 수신하고 전자 장치(100)는 영상 데이터만을 수신할 수 있다.
한편, 복수의 유형은 제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함할 수 있다.
기 설정된 사용자 음성 명령은 음성 데이터 및 영상 데이터로부터 인식 가능한 사용자의 행위가 될 수 있다. 여기서, 사용자의 행위는 사용자가 특정 단어를 발화하거나 특정 모션을 취하는 것을 의미할 수 있다. 한편, 기 설정된 사용자 음성 명령은 사용자의 설정에 따라 변경될 수 있다.
프로세서(120)는 사용자 음성 명령을 복수의 유형으로 저장된 입력 데이터를 이용하여 분석(결정)할 수 있다. 한편, 프로세서(120)는 복수의 유형 중 일부 유형만을 선택(결정)하여 사용자 음성 명령을 분석할 수 있다. 여기서, 프로세서(120)는 복수의 유형 중 일부 유형을 선택하기 위해 사용자 음성 명령과 관련된 정보를 이용할 수 있다. 사용자 음성 명령과 관련된 정보란, 음성 데이터 및 영상 데이터에서 인식 가능한 사용자의 모든 행동 또는 행위를 의미할 수 있다. 프로세서(120)는 음성 데이터 및 영상 데이터를 이용하여 사용자의 행동 또는 행위를 인식할 수 있고, 인식된 결과를 사용자 정보로서 획득할 수 있다. 그리고, 프로세서(120)는 획득된 사용자 정보 또는 입력 데이터를 복수의 유형으로 구분하여 저장할 수 있다. 그리고, 프로세서(120)는 복수의 유형 중 일부 유형만을 이용하여 사용자 음성 명령을 분석할 수 있다.
한편, 프로세서(120)는 복수의 유형 중 일부 유형을 선택하기 위해 인공지능 학습 모델을 이용할 수 있다. 구체적으로, 특정 이벤트에 해당하는 경우 어떠한 유형을 선택하여 분석 인식률을 계산하는 과정을 인공 지능 학습 모델을 이용할 수 있다. 프로세서(120)는 인공 지능 학습 모델을 이용하여 가장 높은 인식률이 예상되는 유형을 결정하도록 제어할 수 있다.
인공 지능 학습 모델은 사용자 음성 명령을 분석하기 위해, 사용자 음성 명령에 해당하는 입력 데이터와 실제 사용자 음성 명령에 대응되는 응답 정보를 비교할 수 있다. 입력 데이터와 사용자 음성 명령에 대응되는 응답 정보를 비교하는 경우, 상술한 복수의 유형 중 어느 유형을 기준으로 분석하였을 때 사용자 음성 명령에 대한 인식률이 가장 높은지 여부를 분석할 수 있다.
인공 지능 학습 모델은 복수의 유형으로 분류된 기 저장된 입력 데이터에 기초하여 어느 유형으로 분석하는 경우, 가장 높은 인식률을 갖는지 학습할 수 있으며, 가장 높은 인식률을 갖는 유형을 결정하여 판단 기준을 획득할 수 있다. 그리고, 새로운 입력 데이터가 수신되는 경우, 기존의 판단 기준에 새로운 입력 데이터를 적용시켜 인식률을 획득할 수 있다. 여기서, 인공 지능 학습 모델은 새로운 입력 데이터를 적용한 판단 기준을 변경한 경우에도 기존처럼 높은 인식률을 갖는지 여부를 결정할 수 있다.
만약, 새로운 입력 데이터를 기존 판단 기준에 적용시킨 인식률보다 새로운 판단 기준에 적용시킨 인식률이 더 높은 경우, 인공 지능 학습 모델은 기존의 판단 기준을 변경 시킬 수 있다. 그리고, 새로운 입력 데이터가 수신되는 경우마다 상술한 과정을 반복할 수 있다. 한편, 다른 실시 예에 따라 최종 판단 기준을 정한 이후 기 설정된 입력 데이터 수신 횟수마다 인식률 비교 동작을 수행할 수 있다.
한편, 프로세서(120)는 사용자 음성 명령과 관련된 시간 정보에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
프로세서(120)는 음성 데이터 및 영상 데이터를 시간 정보에 따라 구분할 수 있다. 예를 들어, "빅스비, 저기 있는 에어컨 켜줘"를 사용자가 발화하였다고 가정한다. 음성 데이터는 "빅스비", "저기 있는", "에어컨", "켜줘"에 대응되는 정보가 시간에 따라 획득될 수 있다. 그리고, 해당 시간에 대응되는 영상 데이터를 획득할 수 있다. 프로세서(120)는 시간 정보 또는 시간 구간에 대응되는 음성 데이터 및 영상 데이터를 매칭시켜 입력 데이터를 구분할 수 있다. 그리고, 구분된 음성 데이터 및 영상 데이터를 이용하여 사용자 음성 명령을 분석할 수 있다. 시간 구간에 따라 데이터를 저장하는 동작은 도 4에서 후술한다.
한편, 프로세서(120)는 시간 정보에 기초하여 특정 시간 구간에 대응되는 사용자 정보를 분석할 수 있다. 해당 동작에 대해서는 도 5에서 후술한다.
한편, 프로세서(120)는 복수의 유형으로 구분된 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터를 획득하여 메모리(110)에 저장하고, 결정된 유형의 대표 데이터에 기초하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
그룹핑 동작은 여러 개의 데이터를 정리하여 하나의 데이터로 변환하는 동작을 의미할 수 있다. 또한, 그룹핑 동작은 복수개의 데이터를 하나의 대표값(또는 대표 데이터)로 변환하는 동작을 의미할 수 있다. 예를 들어, 1초부터 10초까지 입력 데이터가 10개 수신되었다고 가정하면, 10초 동안 수신된 입력데이터를 그룹핑하여 하나의 입력 데이터로 변환할 수 있다. 여기서, 하나의 입력 데이터는 대표값(또는 대표 데이터)이 될 수 있다.
대표 데이터는 하나 이상일 수 있다. 예를 들어, 1초마다 수신되는 입력데이터가 20개 수신되었다고 가정한다. 그리고 10초 단위로 그룹핑 동작을 수행한 경우, 2개의 그룹과 2개의 대표값이 존재할 수 있다. 그리고, 프로세서(120)는 2개의 대표값을 이용하여 사용자 음성 명령을 분석할 수 있다. 사용자 음성 명령을 분석한다는 것은 프로세서(120)가 사용자 음성 명령에 대응되는 응답 정보를 획득하는 것일 수 있다.
대표값을 구하는 동작은 시간 순서에 따른 복수의 입력 데이터 중 최대값, 최소값 또는 평균값 중 어느 하나의 값을 이용할 수 있다. 또한, 대표값은 복수개의 데이터의 합산 동작이 될 수 있다. 예를 들어, "빅스비", "저기 있는", "에어컨", "켜줘" 4개의 텍스트 정보가 있다고 가정하는 경우, 프로세서(120)는 그룹핑 동작을 통해 "빅스비, 저기 있는 에어컨 켜줘"라는 하나의 텍스트 정보로 변환할 수 있다.
프로세서(120)는 사용자 음성을 분석하여 사용자가 실제로 발화한 구간만을 대상으로 그룹핑 동작을 수행할 수 있다. 일반적으로, 음성 데이터에는 사용자가 발화한 구간과 발화하지 않은 구간 모두를 포함할 수 있다. 프로세서(120)는 처리 시간의 단축을 위해 웨이크 업 워드가 인식된 구간 또는 그 이후의 구간을 구분할 수 있다. 프로세서(120)는 이렇게 구분된 특정 구간만을 대상으로 그룹핑 동작을 수행할 수 있다.
한편, 그룹핑 동작과 관련해서는 도 7 및 도 8에서 후술한다.
여기서, 프로세서(120)는 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다. 가중치를 적용하는 동작은 도 13에서 후술한다.
또한, 프로세서(120)는 입력 데이터 중 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 사용자 음성 명령을 인식할 수 있다.
사용자 음성 명령은 음성 데이터 및 영상 데이터를 이용하여 분석될 수 있다. 음성 데이터 및 영상 데이터에는 사용자의 명령을 분석하기 위한 정보가 포함되어 있을 수 있다. 예를 들어, 사용자가 발화한 음성에 제어 대상 및 제어 명령이 포함되어 있을 수 있으며, 사용자는 제어 대상 및 제어 명령에 대응되는 특정 모션을 취할 수 있다.
또한, 프로세서(120)는 입력 데이터에서 사용자 음성 명령이 인식되면, 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
사용자 발화에 관련된 음성 데이터에 웨이크 업 워드가 포함된 경우, 프로세서(120)는 웨이크 업 워드가 포함된 시간 구간 및 그 이후의 발화 구간을 결정할 수 있다. 그리고, 결정된 구간들에 포함된 입력 데이터를 이용하여 사용자 음성 명령을 분석할 수 있다.
여기서, 프로세서(120)는 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 웨이크 업 워드가 인식된 시간 구간에 기초하여 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식할 수 있다.
여기서, 발화 구간 또는 기 설정된 음성 인식 단위를 결정하기 위해 EPD(End Point Detection) 동작을 수행할 수 있으며, 구체적인 동작은 도 5에서 후술한다.
또 다른 실시 예에 따르면, 기 설정된 음성 인식 단위는 기 설정된 시간 구간일 수 있다. 예를 들어, 0.2초 간격으로 시간 구간을 설정하는 경우, 프로세서(120)는 웨이크 업 워드가 포함된 음성 데이터를 기 설정된 음성 인식 단위(0.2초)로 분석할 수 있다.
여기서, 프로세서(120)는 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 응답 정보를 제공할 수 없는 경우, 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
프로세서(120)가 특정 시간 구간에 대응되는 입력 데이터로 인식을 하지 못하는 경우, 프로세서(120)는 이전 시간 구간에 대응되는 입력 데이터를 이용하여 사용자 음성 명령을 분석할 수 있다. 이전 시간 구간에 대응되는 입력 데이터를 이용하는 동작은 도 12에서 후술한다.
또한, 프로세서(120)는 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다. 프로세서(120)는 사용자 음성에 포함된 기 설정된 단어가 인식되면, 해당 기 설정된 단어에 대응되는 유형을 이용하여 사용자 음성 명령을 분석할 수 있다. 예를 들어, "빅스비"를 사용자가 발화하는 경우, 프로세서(120) 는 음성 인식과 관련된 유형만을 선택하여 사용자 음성 명령을 부석할 수 있다. 구체적인 동작은 도 9 및 도 10에서 후술한다.
한편, 본원에 따른 전자 장치(100)는 음성 데이터 및 영상 데이터를 수신하여 사용자 행동을 분석할 수 있다. 여기서, 전자 장치(100)는 음성 데이터 및 영상 데이터를 입력데이터로서 유형별로 저장할 수 있다. 그리고, "전자 장치"는 특정 이벤트가 발생하는 경우, 특정 이벤트에 대응되는 유형을 이용하여 사용자 음성 명령을 분석할 수 있다. 모든 데이터를 이용하지 않고 특정 유형의 데이터를 이용하게 되므로 본원의 전자 장치(100)는 처리 시간을 단축시킬 수 있다. 그리고, 특정 이벤트에 대응되는 유형을 이용하기 때문에 필요한 영역(유형)의 데이터만이 결과에 반영될 수 있으므로, 본원의 전자 장치(100)는 사용자 음성 명령에 대한 인식률 향상을 기대할 수 있다.
도 2는 도 1의 전자 장치의 구체적인 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 개시의 일 실시 예의 전자 장치(100)는 메모리(110), 프로세서(120), 통신 인터페이스(130), 사용자 인터페이스(140), 입출력 인터페이스(150)로 구성될 수 있다.
메모리(110) 및 프로세서(120)의 동작 중에서 앞서 설명한 것과 동일한 동작에 대해서는 중복 설명은 생략한다.
프로세서(120)는 메모리(110)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 동작을 전반적으로 제어한다.
구체적으로, 프로세서(120)는 RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 ~ 124-n), 버스(125)를 포함한다.
RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 ~ 124-n) 등은 버스(125)를 통해 서로 연결될 수 있다.
ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(123)는 ROM(122)에 저장된 명령어에 따라 메모리(110)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(123)는 메모리(110)에 저장된 각종 어플리케이션 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
메인 CPU(123)는 메모리(110)에 액세스하여, 메모리(110)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(110)에 저장된 각종 프로그램, 컨텐츠 데이터 등을 이용하여 다양한 동작을 수행한다.
제1 내지 n 인터페이스(124-1 내지 124-n)는 상술한 각종 구성 요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
한편, 프로세서(120)는 그래픽 처리 기능(비디오 처리 기능)을 수행할 수 있다. 예를 들어, 프로세서(120)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성할 수 있다. 여기서, 연산부(미도시)는 수신된 제어 명령에 기초하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산할 수 있다. 그리고, 렌더링부(미도시)는 연산부(미도시)에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성할 수 있다. 또한, 프로세서(120)는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
한편, 프로세서(120)는 오디오 데이터에 대한 처리를 수행할 수 있다. 구체적으로, 프로세서(120)는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
통신 인터페이스(130)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스(130)는 와이파이 모듈(131), 블루투스 모듈(132), 적외선 통신 모듈(133), 및 무선 통신 모듈(134) 등을 포함한다. 프로세서(120)는 통신 인터페이스(130)를 이용하여 각종 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 TV와 같인 디스플레이 장치, set-top box와 같은 영상 처리 장치, 외부 서버, 리모컨과 같은 제어 장치, 블루투스 스피커와 같은 음향 출력 장치, 조명 장치, 스마트 청소기, 스마트 냉장고와 같은 가전 기기, IOT 홈 매니저 등과 같은 서버 등을 포함할 수 있다.
와이파이 모듈(131), 블루투스 모듈(132)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 모듈(131)이나 블루투스 모듈(132)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
적외선 통신 모듈(133)은 시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
무선 통신 모듈(134)은 상술한 와이파이 모듈(131) 및 블루투스 모듈(132) 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 통신 규격에 따라 통신을 수행하는 모듈을 의미한다.
그 밖에 통신 인터페이스(130)는LAN(Local Area Network) 모듈, 이더넷 모듈, 또는 페어 케이블, 동축 케이블 또는 광섬유 케이블 등을 이용하여 통신을 수행하는 유선 통신 모듈 중 적어도 하나를 포함할 수 있다.
일 예에 따라 통신 인터페이스(130)는 리모컨과 같은 외부 장치 및 외부 서버와 통신하기 위해 동일한 통신 모듈(예를 들어, Wi-Fi 모듈)을 이용할 수 있다.
다른 예에 따라 통신 인터페이스(130)는 리모컨과 같은 외부 장치 및 외부 서버와 통신하기 위해 상이한 통신 모듈(예를 들어, Wi-Fi 모듈)을 이용할 수 있다. 예를 들어, 통신 인터페이스(130)는 외부 서버와 통신하기 위해 이더넷 모듈 또는 WiFi 모듈 중 적어도 하나를 이용할 수 있고, 리모컨과 같은 외부 장치와 통신하기 위해 BT 모듈을 이용할 수도 있다. 다만 이는 일 실시 예에 불과하며 통신 인터페이스(130)는 복수의 외부 장치 또는 외부 서버와 통신하는 경우 다양한 통신 모듈 중 적어도 하나의 통신 모듈을 이용할 수 있다.
한편, 통신 인터페이스(130)는 구현 예에 따라 튜너 및 복조부를 추가적으로 포함할 수 있다.
튜너(미도시)는 안테나를 통해 수신되는 RF(Radio Frequency) 방송 신호 중 사용자에 의해 선택된 채널 또는 기 저장된 모든 채널을 튜닝하여 RF 방송 신호를 수신할 수 있다.
복조부(미도시)는 튜너에서 변환된 디지털 IF 신호(DIF)를 수신하여 복조하고, 채널 복호화 등을 수행할 수도 있다.
사용자 인터페이스(140)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
입출력 인터페이스(150)는 HDMI(High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), DP(Display Port), 썬더볼트(Thunderbolt), VGA(Video Graphics Array)포트, RGB 포트, D-SUB(D-subminiature), DVI(Digital Visual Interface) 중 어느 하나의 인터페이스일 수 있다.
HDMI는 오디오 및 비디오 신호를 입출력하는 AV 기기용 고성능 데이터의 전송이 가능한 인터페이스이다. DP는 1920x1080의 풀HD급은 물론, 2560x1600이나 3840x2160과 같은 초고해상도의 화면, 그리고 3D 입체영상을 구현할 수 있고, 디지털 음성 또한 전달 가능한 인터페이스이다. 썬더볼트는 고속 데티어 전송 및 연결을 위한 입출력 인터페이스이며, PC, 디스플레이, 저장장치 등을 모두 하나의 포트로 병렬 연결할 수 있다.
입출력 인터페이스(150)는 오디오 및 비디오 신호 중 적어도 하나를 입출력 할 수 있다.
구현 예에 따라, 입출력 인터페이스(150)는 오디오 신호만을 입출력하는 포트와 비디오 신호만을 입출력하는 포트를 별개의 포트로 포함하거나, 오디오 신호 및 비디오 신호를 모두 입출력하는 하나의 포트로 구현될 수 있다.
전자 장치(100)는 디스플레이를 포함하지 않는 장치로 구현되어, 별도의 디스플레이 장치로 영상 신호를 전송할 수 있다.
전자 장치(100)는 외부 장치로부터 수신된 음성 신호의 음성 인식을 위해, 외부 서버로 해당 음성 신호를 전송할 수 있다.
이 경우, 외부 장치 및 외부 서버와의 통신을 위한 통신 모듈은 하나로 구현될 수 있다. 예를 들어, 외부 장치 및 외부 서버와의 통신을 위한 통신 모듈은 Wi-Fi모듈로 동일할 수 있다.
외부 장치 및 외부 서버와의 통신을 위한 통신 모듈은 별개로 구현될 수 있다. 예를 들어, 외부 장치와는 Bluetooth 모듈을 이용하여 통신하고, 외부 서버와는 이더넷 모뎀 또는 Wi-Fi모듈을 이용하여 통신할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치(100)는 음성 인식 서버로 수신된 디지털 음성 신호를 전송할 수 있다. 이 경우, 음성 인식 서버는 STT(Speech To Text)를 이용하여 디지털 음성 신호를 텍스트 정보로 변환할 수 있다. 이 경우, 음성 인식 서버는 텍스트 정보에 대응되는 검색을 수행하기 위하여 다른 서버 또는 전자 장치로 텍스트 정보를 전송할 수 있으며, 경우에 따라서는 직접 검색을 수행하는 것도 가능하다.
한편, 본 개시의 다른 실시 예에 따른 전자 장치(100)는 디지털 음성 신호에 직접 STT(Speech To Text) 기능을 적용하여 텍스트 정보로 변환하고 변환된 텍스트 정보를 외부 서버에 전송할 수도 있다.
한편, 도 2의 구성에서 디스플레이 및 스피커를 더 포함할 수 있다.
디스플레이는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
또한, 본 발명의 일 실시 예에 따른, 디스플레이는 영상을 출력하는 디스플레이 패널뿐만 아니라, 디스플레이 패널을 하우징하는 베젤을 포함할 수 있다. 특히, 본 발명의 일 실시 예에 따른, 베젤은 사용자 인터렉션을 감지하기 위한 터치 센서(미도시)를 포함할 수 있다.
스피커는 입출력 인터페이스(150)에서 처리된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소일 수 있다.
한편, 전자 장치(100)는 추가적으로, 마이크(미도시)를 포함할 수 있다. 마이크는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환하기 위한 구성이다. 이 경우, 마이크는 수신된 아날로그 사용자 음성 신호를 디지털 신호로 변환하여 전자 장치(100)로 전송할 수 있다.
마이크(미도시)는 활성화 상태에서 사용자의 음성을 수신할 수 있다. 예를 들어, 마이크는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 형성될 수 있다. 마이크는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
도 3은 입력 데이터를 유형 별로 분류하여 저장하는 동작을 설명하기 위한 도면이다.
전자 장치(100)는 사용자의 음성 데이터 및 사용자의 영상 데이터를 모두 인식할 수 있다. 구체적으로, 전자 장치(100)는 사용자의 발화를 마이크를 통해 수신할 수 있다. 그리고, 전자 장치(100)는 사용자의 외형을 카메라를 통해 수신할 수 있다.
예를 들어, 사용자가 "빅스비, 저기 있는 에어컨 켜줘"라고 발화하면서 손으로 특정 방향을 가리키는 상황을 가정한다. 전자 장치(100)는 마이크 및 카메라를 이용하여 사용자의 행동을 인식할 수 있다.
전자 장치(100)는 음성 데이터 및 영상 데이터를 입력 데이터로서 수신할 수 있다. 그리고, 전자 장치(100)는 수신된 입력 데이터를 복수의 유형별로 저장할 수 있다. 예를 들어, 전자 장치(100)는 입력 데이터를 얼굴ID, 제스쳐, 성별, 나이, 감정(영상), 음성ID, 텍스트, 감정(텍스트), 감정(음성)으로 분류하여 저장할 수 있다.
얼굴 ID는 사용자의 얼굴에 따른 고유 ID를 의미할 수 있으며, 전자 장치(100)는 홍채 또는 얼굴의 외곽선과 같이 사용자 개인의 고유 특성을 결정하는 방법을 이용하여 얼굴 ID를 획득할 수 있다.
제스쳐는 사용자의 손, 손가락 또는 팔을 이용하여 특정 방향을 가리키는 동작 또는 특정 모션을 취하는 동작을 의미할 수 있다.
텍스트는 사용자가 발화한 음성 데이터를 텍스트로 변환한 결과를 의미할 수 있다.
감정(영상)은 영상을 통해 인식되는 사용자의 감정 상태를 의미할 수 있으며, 감정(텍스트)는 텍스트 결과만을 이용하여 분석된 사용자의 감정 상태를 의미할 수 있다. 또한, 감정(음성)은 음성 데이터만을 이용하여 분석된 사용자의 감정 상태를 의미할 수 있다.
여기서, 얼굴ID, 제스쳐, 감정(영상)에 해당하는 유형은 영상 데이터를 이용하여 분석된 결과일 수 있으며, 음성ID, 텍스트, 감정(텍스트), 감정(음성)에 해당하는 유형은 음성 데이터를 이용하여 분석된 결과일 수 있다.
한편, 성별 및 나이에 해당하는 유형은 음성 데이터 또는 영상 데이터 중 적어도 어느 하나를 이용하여 분석된 결과일 수 있다.
도 3을 참고하면, 전자 장치(100)는 얼굴ID를 face-user1으로, 제스쳐를 left로 저장할 수 있다. 여기서, left는 사용자의 손가락이 가르치는 방향이 좌측임을 나타낼 수 있다. 한편, 다른 실시 예에 따라, 특정 모션의 이름이 저장될 수 있다. 또한, 전자 장치(100)는 성별을 female로, 나이를 30으로, 감정(영상)은 joy 0.6으로 저장할 수 있다. 여기서, joy 0.6은 감정 상태 또는 감정 상태에 해당할 확률을 의미하는 값 중 적어도 어느 하나를 기재할 수 있다. 또한, 전자 장치(100)는 음성ID를 voice-user1으로, 텍스트를 "빅스비, 저기 있는 에어컨 켜줘"로, 감정(텍스트)를 neutral 0.6으로, 감정(음성)을 joy 0.8로 저장할 수 있다.
여기서, 전자 장치(100)는 얼굴 ID와 음성 ID를 구분하여 기재하였지만, 실질적으로 동일한 사용자로 결정할 수 있다. 얼굴 ID 및 음성 ID가 일치하지 않는 경우, 전자 장치(100)는 분석이 잘못되었음을 알 수 있고, 다시 인식 동작을 수행할 수 있다.
도 4는 일정 시간 단위로 입력 데이터를 저장하는 동작을 설명하기 위한 도면이다.
도 4를 참고하면, (a) (b) (c) (d)는 시간 순서에 따른 입력 데이터를 저장한 상태일 수 있다. 예를 들어, "빅스비, 저기 있는 에어컨 켜줘"를 사용자가 발화한 실시 예를 가정한다. 사용자가 발화한 시간 순서에 기초하여 입력 데이터가 저장될 수 있다.
전자 장치(100) 는 음성 데이터에 기초하여, (a)구간에서는 사용자가 "빅스비", (b)구간에서는 "저기있는", (c)구간에서는 "에어컨", (d)구간에서는 "켜줘!"를 발화하는 것으로 인식할 수 있다.
또한, 전자 장치(100)는 영상 데이터에 기초하여 (a)구간에서는 특별한 제스쳐 동작을 인식하지 않고, (b) (c) (d)에서는 좌측을 가르키는 제스쳐 동작을 인식할 수 있다.
또한, 전자 장치는 영상 데이터에 기초하여, (a) 및 (b) 구간에서는 사용자의 감정이 기쁨에 해당하고, (c) 및 (d)구간에서는 사용자의 감정이 중립에 해당함을 인식할 수 있다. 또한, 전자 장치는 음성 데이터에 기초하여 (a) 구간에서는 사용자의 감정이 기쁨에 해당하고 (b) 구간에서는 사용자의 감정이 인식되지 않고, (c) 및 (d)구간에서는 사용자의 감정이 기쁨에 해당함을 인식할 수 있다.
도 4를 참고하면, 전자 장치(100)는 시간 구간에 따라 입력 데이터를 수신하고, 각 시간 구간에 따른 유형을 다르게 분석할 수 있다. 즉, 사용자가 시간 구간에 따라 변화하는 행동을 데이터로 수신하고 이를 시간 구간에 따라 분석하여 저장할 수 있다.
도 5는 입력 데이터를 시간 정보에 기초하여 구분하는 과정을 설명하기 위한 도면이다.
도 5를 참고하면, 전자 장치(100)는 사용자가 발화하는 음성을 시간 정보에 기초하여 구분할 수 있다. 예를 들어, 사용자의 음성 데이터가 2초만큼 수신되고 사용자는 "빅스비, 저기 있는 에어컨 켜줘"라고 발화한 것으로 가정한다.
여기서, 음성 데이터는 2초에 해당하지만, 실제로 사용자가 발화한 시간 구간은 2초보다 적을 수 있다. 도 5를 참고하면, 사용자가 실제로 발화한 시간 구간은 0.4초~1.2초 사이가 될 수 있다. 그리고, "빅스비" 와 "저기 있는 에어컨 켜줘"의 발화 시점 사이에 음성을 발화하지 않는 시간이 포함될 수 있다. 전자 장치(100)는 사용자가 실제 발화한 시간 구간을 결정할 수 있다. 전자 장치(100)는 음성 데이터를 분석하여, 소리에 대한 파형의 진폭이 연속하여 임의의 값보다 큰 구간을 하나의 구간으로 결정할 수 있다.
구체적으로, 전자 장치(100)는 소리에 대한 파형의 진폭이 임의의 값보다 큰 시점에서부터 임의의 값보다 작은 시점까지를 하나의 구간(t1)으로 결정할 수 있다. 그리고, 전자 장치(100)는 결정된 하나의 구간 이후에, 또 다시 소리에 대한 파형의 진폭이 임의의 값보다 큰 시점에서부터 임의의 값보다 작은 시점까지를 새로운 구간(t2)으로 결정할 수 있다.
결과적으로, 전자 장치(100)는 음성 데이터를 분석하여 구분된 시간 구간(t1, t2)을 결정할 수 있다.
한편, 도 5를 참고하면, 전자 장치(100)는 웨이크 업 워드를 인식하는 경우, 그 이후에 대한 발화를 분석할 수 있다. 예를 들어, 전자 장치(100)가 빅스비를 웨이크 업 워드로 저장하였다고 가정한다. 사용자가 "빅스비, 저기 있는 에어컨 켜줘"를 발화하는 경우, 전자 장치(100)는 빅스비를 인식하여 웨이크 업 워드로 인식하고 그 이후에 이어지는 사용자의 발화에 대하여 EPD(End Point Detection) 동작을 수행할 수 있다. 즉, 전자 장치(100)는 빅스비라는 웨이크 업 워드를 인식한 이후에 EPD 동작을 수행하므로, t2에 해당하는 시간 구간을 별도로 구분할 수 있다.
도 6은 입력 데이터에 저장되는 내용이 시간에 따라 상이하다는 점을 설명하기 위한 도면이다.
도 6을 참고하면, 전자 장치(100)는 입력 데이터를 시간 순서에 따라 복수의 유형별로 구분하여 저장할 수 있다. 전자 장치(100)는 0.8초 이후부터 사용자가 손가락으로 좌측을 가리키는 것을 인식 할 수 있으며, 제스쳐 영역에 left로 저장될 수 있다. 그리고, 전자 장치(100)는 영상 데이터에 기초하여 0.1초~0.8초 사이에 사용자의 감정 상태가 기쁨에 해당하고, 0.9초~1.2초 사이에 사용자의 감정이 중립에 해당함을 인식할 수 있다. 여기서, 또 다른 실시 예에 따라, 전자 장치(100)는 감정 상태에 해당할 확률을 함께 저장할 수 있다.
그리고, 전자 장치(100)는 음성 데이터에 기초하여, 시간에 따른 텍스트 정보를 저장할 수 있다. 전자 장치(100)는 "빅스비, 저기 있는 에어컨 켜줘"에 해당하는 텍스트 정보를 시간 구간에 따라 구분하여 저장할 수 있다. 여기서, 0.5초에 해당하는 "빅스" 텍스트 정보는 실제로 0.5초에서 0.6초 사이에 해당하는 음성 데이터에서 획득된 텍스트 정보일 수 있다.
도 6을 참고하면, 전자 장치(100)는 시간 순서에 따라 수신되는 입력 데이터를 이용하여, 복수의 유형별로 구분하여 저장할 수 있다.
도 7은 입력 데이터를 기 설정된 시간 구간으로 그룹핑하는 동작을 설명하기 위한 도면이다.
도 7을 설명함에 있어, 사용자의 음성이 0.5초에서 1.3초 사이에 발화되었다고 가정한다. 그리고, 기 설정된 시간 구간이 0.2초라고 가정한다.
전자 장치(100)는 사용자의 음성이 실제로 인식된 구간(0.5초~1.3초,R1~R4)과 미인식된 구간(0초~0.5초, R0)을 구분할 수 있다. 그리고, 전자 장치(100)는 사용자 음성이 인식된 구간(0.5초~1.2초)을 기 설정된 시간 구간(0.2초)로 구분할 수 있다. 전자 장치(100)는 사용자 음성이 인식된 구간을 0.2초 간격으로 그룹핑할 수 있다. 구체적으로, 전자 장치(100)는 0.5초~0.7초 구간(R1), 0.7초~0.9초 구간(R2), 0.9초~1.1초 구간(R3), 1.1초~1.3초(R4) 구간으로 그룹핑 할 수 있다.
전자 장치(100)는 그룹핑 동작을 수행함으로서 입력 데이터를 간소화 시킬 수 있다. 모든 시간에 따른 입력 데이터를 저장하는 경우 처리 시간 및 저장 공간이 낭비될 수 있다. 따라서, 전자 장치(100)는 그룹핑 동작을 통해 입력 데이터의 저장 과정을 간소화 시킬 수 있다.
그룹핑 과정을 통해 데이터 저장 과정을 간소화 시키기 위해선, 데이터를 정리하는 과정이 필요하며, 데이터 정리 동작에 대해선, 도 8에서 설명한다.
도 8은 그룹핑 과정에서 입력 데이터의 대표값을 획득하는 과정을 설명하기 위한 도면이다.
도 8에 도시된 R1, R2, R3, R4에 대응되는 데이터는 도 7에 따른 그룹핑 과정을 통해 획득된 데이터를 의미할 수 있다. 전자 장치(100)는 기 설정된 시간 구간에 의해 입력 데이터를 그룹핑 할 수 있다. 그리고, 그룹핑 된 시간 구간의 정보를 각 유형 별로 대표값을 획득할 수 있다. 예를 들어, 도 7에서 R1에 해당하는 구간에 입력 데이터 정보는 유형 별로 2개가 존재한다. 여기서, 전자 장치(100)는 2개의 데이터를 모두 이용하여 하나의 대표값을 유형 별로 획득할 수 있다. 한편, 다른 실시 예에 따라 전자 장치(100)는 2개 이상의 데이터를 이용하여 대표값을 획득할 수 있다. 대표값 획득 동작에서 이용되는 데이터의 개수는 기 설정된 시간 구간(0.2초)을 변경하여 조절될 수 있다.
전자 장치(100)는 그룹핑된 복수의 입력 데이터의 평균값, 최소값 또는 최대값 중 어느 하나를 이용하여 대표값을 획득할 수 있다. 그리고, 전자 장치(100)는 그룹핑된 복수의 입력 데이터가 일부만 존재하는 경우, 존재하지 않는 입력 데이터 부분을 배제하고 존재하는 입력 데이터만으로 대표값을 획득할 수 있다.
전자 장치(100)는 그룹핑된 복수의 입력 데이터를 합산하여 대표값을 획득할 수 있다. 예를 들어, 도 7의 R1 구간에서는 텍스트 정보가 "빅스"와 "비"가 구분되어 저장될 수 있다. 전자 장치(100)는 R1 구간의 텍스트 정보 "빅스"와 "비"를 결합하여 "빅스비"를 획득할 수 있고, "빅스비"를 대표값으로 저장할 수 있다.
한편, 다른 실시 예에 따라, 전자 장치(100)는 대표값을 획득하기 위해 다양한 방법이 적용될 수 있으며, 상술한 예시에 한정되는 것은 아니다.
도 9는 기 설정된 데이터에 따라 복수의 유형 중 일부를 선택하는 동작을 설명하기 위한 도면이다.
도 9를 참고하면, 수신된 입력 데이터 중 기 설정된 데이터와 일치하는 경우, 전자 장치(100)는 기 설정된 데이터에 대응되는 유형을 결정할 수 있다. 예를 들어, 사용자가 "빅스비, 저기 있는 에어컨 켜줘"를 발화하였다고 가정한다. 전자 장치(100)는 빅스비라는 텍스트 정보가 인식되면, 입력 데이터 중 음성 ID, 텍스트 정보, 감정(텍스트), 감정(음성)에 해당하는 유형에 기초하여, 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다. 전자 장치(100)는 "빅스비"라는 내용이 음성 인식 장치와 관련된 것으로 분석하여 음성 데이터와 관련된 유형만을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
또한, 전자 장치(100)는 "저기"라는 텍스트 정보가 인식되면, 제스쳐 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다. 전자 장치(100)는 "저기"라는 단어가 방향 등을 의미하는 것으로 결정할 수 있고, 방향과 관련된 유형인 제스쳐 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
마찬가지로, 음성 데이터에서 인식된 텍스트 정보가 "저기, 여기, 저쪽, 이쪽, 왼쪽, 오른쪽, 동, 서, 남, 북, 상, 하, 좌, 우" 중 적어도 하나의 단어가 인식되는 경우, 전자 장치(100)는 제스쳐 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 상술한 실시 예에 한정되는 것은 아니며 전자 장치(100)는 사용자가 설정하는 단어에 따라 다른 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
또한, 전자 장치(100)는 사용자가 설정하는 단어에 대응되는 유형을 결정하기 위해 인공 지능 학습 모델을 이용할 수 있다. 예를 들어, 사용자가 기 설정된 단어 및 기 설정된 단어에 대응되는 유형을 지정하는 것 이외에 인공 지능 학습 모델이 직접 기 설정된 단어 및 기 설정된 단어에 대응되는 유형을 매칭시킬 수 있다.
인공 지능 학습 모델은 기 저장된 복수의 입력 데이터를 기초로 판단 기준을 획득할 수 있다. 인공 지능 학습 모델은 대량의 입력 데이터에 기초하여 특정 단어와 유형간의 관계를 분석할 수 있다. 예를 들어, 빅스비에 해당하는 단어는 사용자 음성 명령에 대응되는 응답 정보를 획득하는데 있어 성별 및 나이 유형은 결과에 큰 영향을 미치지 않을 수 있다. 반면, 빅스비에 해당하는 단어가 사용자에 의해 발화되었을 경우, 음성ID, 텍스트, 감정(텍스트), 감정(음성) 유형은 결과에 큰 영향을 미치는 것을 확인할 수 있다. 여기서, 인공 지능 학습 모델은 빅스비라는 단어와 복수의 유형 전부를 비교하여, 특정 비중 이상을 갖는 유형만을 선택하여 사용자 음성 명령을 분석하는 판단 기준으로 정할 수 있다.
한편, 인공 지능 학습 모델은 상술한 빅스비 단어 이외에 다양한 단어들과 복수의 유형들을 비교하여 가장 높은 인식률을 갖는 유형을 선택하도록 판단 기준을 정할 수 있다.
전자 장치(100)는 기 설정된 텍스트 정보에 대응되는 유형을 선택적으로 이용하므로 데이터 처리 속도를 향상시킬 수 있다. 예를 들어, 기존의 방식대로 데이터를 분석하는 경우 모든 유형의 데이터를 분석해야 하지만, 도 9에서 언급하는 방식대로 일부 유형을 선택적으로 이용하는 경우, 데이터 처리 속도를 향상시킬 수 있다. 그리고, 사용자에게 필요한 데이터 유형만을 반영하여 결과를 도출하기 때문에 인식률이 높아질 수 있다.
도 10은 시간 구간에 따라 선택되는 복수의 유형이 상이함을 설명하기 위한 도면이다.
도 10은 도 9에 따른 실시 예를 설명하기 위한 도면이다. 구체적으로, 전자 장치(100)는 (a) (b) (c) (d) 순서대로 사용자 발화에 대응되는 입력 데이터를 수신할 수 있다.
도 10에서 개시하는 시간 단계 별 입력 데이터는 도 4에서 개시하고 있는 실시 예와 일부 동일할 수 있다. 도 10을 참고하면, 전자 장치(100)는 사용자 발화에 포함된 텍스트 정보 및 시간 구간에 따라 복수의 유형 중 일부를 시간 구간별로 다르게 결정할 수 있다. 예를 들어, (a)구간에서 사용자가 빅스비를 발화하였다고 가정한다. 전자 장치(100)는 (a) (b) (c) (d) 구간에서 음성ID, 텍스트, 감정(텍스트), 감정(음성)에 해당하는 유형을 결정하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 전자 장치(100)는 (b)구간에서 "저기"에 해당하는 텍스트 정보를 인식할 수 있다. 이 경우, 전자 장치(100)는 (b) (c) (d) 구간에서 제스쳐 유형을 결정하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
도 10을 참고하면, 전자 장치(100)는 시간 구간에 따라 다른 유형을 선택하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다. 시간 구간에 상관 없이 제스쳐 유형에 해당하는 모든 데이터를 분석하는 경우, 처리 시간이 길어질 수 있다. 전자 장치(100)는 특정 시간 구간에 해당하는 입력 데이터만을 선택적으로 이용하기 때문에 처리 시간을 단축 시킬 수 있다.
도 11은 음성 또는 감정 데이터를 이용하여 사용자 음성 명령에 대응되는 정보를 제공하는 다양한 실시 예를 설명하기 위한 도면이다.
도 11은 전자 장치(100)가 수신되는 입력 데이터에 따라 어느 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할지 여부를 결정하는 동작을 설명하기 위한 도면이다.
실시 예1은 사용자가 "빅스비, 저기 있는 에어컨 켜줘"를 발화하는 경우를 가정한다. 여기서, 웨이크 업 워드는 빅스비에 해당할 수 있다. 사용자가 발화한 bixby가 인식되는 경우, 전자 장치(100)는 텍스트 유형을 결정할 수 있다. 그리고, 사용자가 "저기 있는 에어컨"을 발화한 경우, 전자 장치(100)는 텍스트 및 제스쳐 유형을 결정할 수 있다. 그리고, 사용자가 "켜줘"를 발화한 경우, 전자 장치(100)는 음성ID 유형을 결정할 수 있다.
실시 예2는 사용자가 "빅스비, 이책 구매해줘"라고 발화하는 경우를 가정한다. 여기서, 웨이크업 워드는 빅스비에 해당할 수 있다. 사용자가 "이 책"을 발화한 경우, 전자 장치(100)는 텍스트 및 제스쳐 유형을 결정할 수 있다. 그리고, 사용자가 "구매해줘"라고 발화한 경우, 음성 ID 또는 얼굴 ID 중 적어도 어느 하나를 결정할 수 있다.
실시 예 3은 사용자가 "빅스비, 발라드 음악 재생해줘"라고 발화하는 경우를 가정한다. 여기서, 웨이크업 워드는 빅스비에 해당할 수 있다. 사용자가 "발라드 음악"을 발화한 경우, 전자 장치(100)는 텍스트 유형을 결정할 수 있다. 그리고, 사용자가 "재생해줘"라고 발화하는 경우, 전자 장치(100)는 음성 ID 유형을 결정할 수 있다. 한편, 전자 장치(100)가 음성 또는 영상 데이터 중 적어도 어느 하나에서 사용자의 감정이 우울하다고 판단하는 경우, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성) 유형을 결정할 수 있다.
실시 예 4는 사용자가 "빅스비, 12월 2일 여행 일정 등록해줘"라고 발화하는 경우를 가정한다. 여기서, 웨이크업 워드는 빅스비에 해당할 수 있다. 사용자가 "12월 1일" "여행"이라고 발화하는 경우, 전자 장치(100)는 텍스트 결정할 수 있다. 그리고, 사용자가 "일정 등록해줘"라고 발화하는 경우, 전자 장치(100)는 음성 ID 또는 얼굴 ID 중 적어도 어느 하나를 결정할 수 있다. 그리고, 전자 장치(100)가 영상 또는 입력 데이터 중 적어도 어느 하나에서 사용자의 감정이 즐거움 상태라고 판단하는 경우, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성) 결정할 수 있다.
실시 예 3 또는 4에서 판단되는 감정 상태를 판단하는 동작의 실시 예에 대해서 설명한다. 전자 장치(100)는 사용자의 감정 상태를 판단하기 위해, 영상 데이터, 음성 데이터 또는 음성 데이터에서 분석된 텍스트 정보 중 적어도 어느 하나를 이용할 수 있다. 전자 장치(100)가 영상 데이터, 음성 데이터 또는 음성 데이터에서 분석된 텍스트 정보 중 적어도 어느 하나에서 사용자의 감정이 즐거움 또는 슬픔과 같이 특정 감정상태를 나타낸다고 인식한 경우, 전자 장치(100)는 복수의 유형 중 감정(영상), 감정(텍스트), 감정(음성) 유형 모두를 결정할 수 있다.
도 11에서 전자 장치(100)가 특정 유형을 결정한다는 것은 특정 유형을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 것을 의미할 수 있다.
한편, 상술할 실시 예에 한정되는 것이 아니며, 전자 장치(100)는 사용자의 설정에 따라 다양한 방식으로 유형을 선택 또는 결정할 수 있다.
도 11을 참고하면, 전자 장치(100)는 기 설정된 데이터에 대응되는 유형만을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
도 12는 일시적으로 입력 데이터를 저장하고, 이후 일시적인 입력 데이터를 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 동작을 설명하기 위한 도면이다.
전자 장치(100)는 복수의 유형으로 저장한 입력 데이터를 일정 시간 동안 일시적으로 저장할 수 있다. 그리고, 사용자의 추가 명령이 입력되는 경우, 전자 장치(100)는 일시적으로 저장한 입력 데이터를 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
예를 들어, 사용자가 "빅스비, 저기 있는 에어컨 켜줘"라고 발화하면서 특정 방향을 가리키는 동작을 행한 후 20초 이후 "온도 24도로 설정해줘"라고 발화하면서 특정 방향을 가리키지 않았다고 가정한다. 전자 장치(100)는 "온도 24도로 설정해줘"라는 사용자 음성 명령에 대응되는 정보를 획득하지 못할 수 있다. 왜냐하면, "온도 24도로 설정해줘"라는 사용자 음성 명령에는 제어 대상이 정해져 있지 않기 때문이다. 따라서, 전자 장치(100)는 사용자 음성 명령에 대응되는 정보를 획득하지 못하는 경우, 일시적으로 저장된 이전 분석 내용을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
상술한 예시에서는, 제어 대상이 인식되지 않았으므로, 제어 대상을 인식할 수 있는 제스쳐 또는 텍스트 유형에 해당하는 정보를 이용할 수 있다. 이전 시간 구간에서 획득된 텍스트 유형에는 "빅스비, 저기 있는 에어컨 켜줘"라는 텍스트 정보가 포함되어 있으므로, 전자 장치(100)는 에어컨이 제어 대상임을 결정할 수 있다.
한편, 다른 실시 예에 따라, 전자 장치(100)는 일시적으로 저장된 데이터를 바로 이용하지 않을 수 있다. 전자 장치(100)는 얼굴 ID 또는 음성 ID 중 적어도 하나의 유형 정보가 일치하는 경우, 일시적으로 저장된 데이터를 이용할 수 있다.
도 12를 참고하면, 전자 장치(100)는 이전 시간 구간에 대응되는 입력 데이터 정보를 이용하여 사용자 음성 명령에 대한 인식률을 높일 수 있다. 그리고, 전자 장치(100)의 사용자 입장에서 편의성이 향상될 수 있다.
도 13은 복수의 입력 데이터에 가중치를 적용하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 실시 예를 설명하기 위한 도면이다.
전자 장치(100)는 복수의 유형 중 일부 유형을 선택하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다. 여기서, 선택된 유형에 따라 서로 다른 가중치를 부여하여 사용자 음성 명령에 대응되는 응답 정보를 획득할 수 있다.
도 11에서 설명한 실시 예 3에서 감정 상태를 분석하는 동작에 대해 설명한다. 감정 상태를 분석하기 위해서, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성)을 이용할 수 있다. 여기서, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성)유형 중 어느 하나에서 사용자의 감정 상태가 슬픔에 해당하는 것으로 인식된 경우, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성)유형 모두를 이용하여 최종 감정 상태를 결정할 수 있다. 즉, 특정 시간 구간에서 슬픔 상태라고 결정되어도, 사용자의 최종 감정 상태가 슬픔에 해당하는지 여부는 별도로 확인할 수 있다.
여기서, 사용자의 최종 감정 상태가 슬픔에 해당하는지 여부는 별도로 확인하기 위해서, 전자 장치(100)는 감정(영상), 감정(텍스트), 감정(음성)유형을 모두 이용할 수 있다. 여기서, 전자 장치(100)는 각 유형에 서로 다른 가중치를 부여할 수 있다. 그리고, 전자 장치(100)는 데이터의 변화량을 고려하여 가중치를 결정할 수 있다. 구체적으로, 전자 장치(100)는 데이터의 변화량이 큰 유형일수록 큰 가중치를 적용할 수 있다.
도 13을 참고하면, 감정(영상) 및 감정(텍스트) 유형에서는 데이터가 sad 또는 neutral로 일정하지만, 감정(음성) 유형은 데이터가 neutral 에서 sad로 변경되었음을 알 수 있다. 여기서, 전자 장치(100)는 데이터가 가장 크게 변한 감정(음성)유형에 가중치를 크게 적용하여 사용자의 최종 감정 상태를 분석할 수 있다.
한편, 인공 지능 학습 모델은 가중치를 부여하는 기준에 대한 판단 기준을 스스로 학습하여 정할 수 있다. 인공 지능 학습 모델은 기존에 저장되어 있는 대량의 입력 데이터 및 입력 데이터에 대응되는 응답 정보를 분석하여 데이터 변화량이 가장 큰 유형에 다양한 가중치 값을 적용하여 인식률을 계산할 수 있다. 그리고, 인공 지능 학습 모델은 다양한 가중치 값 중 인식률이 가장 높게 나오는 가중치 값을 정할 수 있다.
한편, 전자 장치(100)는 유형별로 적용되는 가중치 값을 다르게 적용시킬지 여부를 판단할 수 있다. 예를 들어, 데이터의 변화량이 가장 큰 유형이 감정(음성)인 경우에는 가중치 0.9를 적용시키지만, 데이터의 변화량이 가장 큰 유형이 제스쳐인 경우에는 가중치 0.5를 적용시킬 수 있다. 인공 지능 학습 모델은 이러한 동작에 대하여 인식률을 기준으로 다양한 방법을 적용시킬 수 있으며, 결과적으로 유형별로 동일한 가중치를 적용할 것인지 아니면 유형에 따라 다른 가중치를 부여할 것인지 여부를 결정할 수 있다.
전자 장치(100)는 유형에 따라 다른 가중치를 적용하면, 사용자 음성 명령에 대한 인식률을 높일 수 있다. 사용자의 감성이 반영되는 부분이 사용자별로 상이할 수 있다. 전자 장치(100)는 데이터 변화에 따라 가중치를 다르게 설정함으로써, 사용자마다 감정이 잘 드러나는 부분을 결정하여 인식 동작에 반영할 수 있다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 기능별로 설명하기 위한 도면이다.
전자 장치(100)는 ROS(Robot Operating System) 프레임워크, Interaction Manager, Application 을 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
전자 장치(100)는 ROS(Robot Operating System) 프레임워크에서 음성 또는 영상 데이터를 수신할 수 있다. 그리고, 전자 장치(100)는 수신된 데이터를 이용하여 사용자의 정보를 인식할 수 있다. 구체적으로 전자 장치(100)는 사용자의 body 제스쳐 인식, finger pointing 인식, 감정 인식(영상, 텍스트, 음성), 얼굴 인식, 성별 인식, 나이 인식, ASR(Automatic Speech Recognition )을 이용한 화자인식을 위한 다양한 엔진을 포함할 수 있다. 전자 장치(100)는 상술한 다양한 사용자 정보를 결정하기 위해 필요한 데이터 부분을 선택적으로 이용할 수 있다.
Interaction Manager 는 Engine Connector, Service Presenter, Semantic Analyzer(의도 분석), Context Manager, Dialog System 의 모듈을 포함할 수 있다.
Engine Connector 모듈은 다양한 사용자 정보를 획득할 수 있는 엔진 연결을 수행할 수 있다. 그리고, Engine Connector 모듈은 특정 엔진에 특정 명령을 전달하고 특정 엔진으로부터 획득된 사용자 정보를 획득할 수 있다. 그리고, Engine Connector 모듈은 획득된 사용자 정보를 Semantic Analyzer(의도 분석)로 전송할 수 있다.
Service Presenter 모듈은 application 과 통신할 수 있다. 구체적으로, Service Presenter 모듈은 Semantic Analyzer 모듈로부터 최종 분석 결과를 수신하여 application에 전달할 수 있다.
Semantic Analyzer(의도 분석) 모듈은 다양한 엔진으로부터 사용자 정보에 대응되는 데이터를 수신할 수 있다. 그리고, 수신된 사용자 정보에 대응되는 데이터를 분석하여 최종 분석 동작을 수행할 수 있다. 최종 분석 동작을 수행하기 위해서, Engine Connector 모듈을 이용하여 특정 명령을 엔진으로 전달하도록 제어할 수 있다. 그리고, Dialog System 모듈로부터 수신되는 결과를 Service Presenter 모듈에 전달할 수 있다.
Context Manager 모듈은 Interaction Manager에서 발생하는 데이터를 저장 및 관리할 수 있다. 그리고, Context Manager 모듈은 서로 다른 Interaction Manager 사이의 정보를 교환할 수 있다. 또한, Context Manager 모듈은 사용자 정보를 저장 및 관리할 수 있다.
Dialog System 모듈은 대화 기능을 포함하는 외부 서버와 통신할 수 있다. Dialog System 모듈은 내부 동작의 결과물을 외부 서버로 전송할 수 있다. 그리고, Dialog System 모듈은 외부 서버로부터 결과물을 수신하여 Semantic Analyzer 모듈로 전달할 수 있다. 한편, Dialog System 모듈은 특정 작업 수행 요청 및 결과에 대한 정보를 Context Manager 모듈에 전달할 수 있다. 또한, Dialog System 모듈은 NLU(Natural Language Understanding), DM(Dialog Management), NLG(Natural Language Generation)기능과 관련된 동작을 수행할 수 있다.
한편, Application은 Messenger Control 모듈, Avatar Control 모듈, 패션 추천 모듈 중 적어도 하나의 모듈을 포함할 수 있다.
한편, ROS(Robot Operating System) 프레임 워크, Interaction Manager 및 Application은 ROS(Robot Operating System) interface 및 REST(Representational State Transfer) interface로 연결될 수 있다.
ROS 프레임 워크는 Interaction Manager 및 Application과 ROS interface를 통해 연결될 수 있다. 그리고, 상술한 다양한 엔진과도 ROS interface로 연결될 수 있다. 한편, 패션 추천 모듈(Application에 포함되지 않은 모듈)은 Interaction Manager와 REST interface를 통해 연결될 수 있다. 그리고, TTS(Text-To-Speech) 또는 STT(Speech To Text)모듈은 Application과 REST interface를 통해 연결될 수 있다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 시간 순서별로 설명하기 위한 도면이다.
도 15를 참고하면, ROS 프레임 워크는 Engine Connector 모듈과 ROS 메시지를 주고 받을 수 있다. 그리고, Engine Connector 모듈은 Service Presenter 모듈에 인식 결과 데이터를 전송할 수 있다. 그리고, Semantic Analyzer 모듈은 Service Presenter 모듈에 ASR(Automatic Speech Recognition) 결과를 전송할 수 있다. Service Presenter 모듈은 수신된 ASR 결과를 Smart Mirror Web Application에 전송할 수 있다. 그리고, Semantic Analyzer 모듈은 수신된 인식 결과 데이터를 이용하여 얼굴 ID 또는 음성 ID 정보를 Context Manager 모듈에 전송할 수 있다. 그리고, Context Manager 모듈은 Dialog System 모듈과 대화 분석이 가능한 외부 서버에 요청 및 응답을 주고 받을 수 있다.
또한, Semantic Analyzer 모듈은 대화 분석이 가능한 외부 서버에 대한 대화 분석 요청 명령을 Dialog System 모듈에 전송할 수 있다. Dialog System 모듈은 외부 서버에 대화 분석 요청 명령을 외부 서버에 전송할 수 있다. 그리고, 외부 서버는 Web-Hook Service를 이용하여 날씨, Reminder, 컨텐츠 추천 동작을 수행할 수 있다. 그리고 외부 서버는 수행 결과를 Dialog System 모듈에 전송할 수 있다.
한편, Dialog System 모듈은 패션 추천 엔진에 패션 추천 요청 명령을 전송할 수 있다. 패션 추천 엔진은 수신 받은 요청 명령에 의해 패션 추천 동작을 수행하여 결과를 다시 Dialog System 모듈에 전송할 수 있다.
Dialog System 모듈은 수신 받은 외부 서버에 의한 수행 결과 또는 패션 추천 결과에 대한 정보를 Semantic Analyzer 모듈에 전송할 수 있다. 여기서, Context Manager 모듈은 다른 Interaction Manager에 의해 수행된 외부 서버에 의한 수행 결과 및 패션 추천 결과에 대한 정보를 Dialog System 모듈에 전송할 수 있으며, Dialog System 모듈은 수신 받은 정보를 Semantic Analyzer 모듈에 전송할 수 있다.
Semantic Analyzer 모듈은 수신 받은 외부 서버에 의한 수행 결과, 패션 추천 결과, NLG 응답 결과, Avatar 행동 정보 등을 Service Presenter 모듈에 전송할 수 있다. 그리고, Service Presenter 모듈은 해당 정보를 Smart Mirror Web Application에 전송할 수 있다. Smart Mirror Web Application은 NLG 결과, 성별, 언어, 감정 등을 TTS(Text-To-Speech) 또는 STT(Speech To Text) 기능을 수행하는 모듈에 전송할 수 있다.
그리고, Interaction Manager는 외부 서버 또는 패션 추천 엔진과의 통신을 위해 http(Hyper Text Transfer Protocol)를 이용할 수 있다. 또한, Interaction Manager는 ROS 프레임 워크 및 Smart Mirror Web Application과의 통신을 위해 ROS 방식을 이용할 수 있다.
도 15를 설명함에 있어, 일부 실시 예를 설명한 것에 불과하며, 해당 모듈 또는 구성에 한정되는 것은 아니다.
도 16은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 순차적으로 입력되는 복수의 입력 데이터를 복수의 유형으로 구분하여 메모리(110)에 저장하는 단계 (S1605), 입력 데이터 중 사용자 음성 명령이 인식되면, 사용자 음성 명령과 관련된 정보에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계 (S1610) 및 결정된 유형의 입력 데이터에 기초하여 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계 (S1615)를 포함할 수 있다.
여기서, 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계(S1610)는 사용자 음성 명령과 관련된 시간 정보에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
또한, 메모리(110)에 저장하는 단계(S1605)는 복수의 유형으로 구분된 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터를 획득하여 메모리(110)에 저장하고, 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는 결정된 유형의 대표 데이터에 기초하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
여기서, 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계(S1615)는 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
한편, 복수의 유형은 제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함할 수 있다.
또한, 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계(S1610)는 입력 데이터 중 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 사용자 음성 명령을 인식할 수 있다.
또한, 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계(S1610)는 입력 데이터에서 사용자 음성 명령이 인식되면, 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
여기서, 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계(S1610)는 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 웨이크 업 워드가 인식된 시간 구간에 기초하여 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식할 수 있다.
여기서, 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계(S1615)는 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 응답 정보를 제공할 수 없는 경우, 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 사용자 음성 명령에 대응되는 응답 정보를 제공할 수 있다.
또한, 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정하는 단계(S1610)는 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 구분된 복수의 유형의 입력 데이터 중 적어도 하나를 결정할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치 에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치 에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 상술한 실시 예에 따른 전자 장치 제어 방법은 프로그램으로 구현되어 전자 장치에 제공될 수 있다. 특히, 전자 장치 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
또한, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서(120) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치 에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치 에서의 처리 동작을 상기 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
110: 메모리 120: 프로세서

Claims (20)

  1. 전자 장치에 있어서,
    메모리; 및
    이미지 데이터 및 오디오 데이터를 포함하는 복수의 입력 데이터를 획득하고,
    복수의 유형으로 구분된 상기 복수의 입력 데이터를 그룹핑하고,
    상기 그룹핑된 입력 데이터에 기초하여 상기 복수의 유형 별 대표 데이터를 획득하여 상기 메모리에 저장하고,
    상기 입력 데이터 중 사용자 음성 명령이 인식되면, 상기 복수의 유형 중 적어도 하나의 유형을 결정하고,
    상기 결정된 유형에 대응되는 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 음성 명령과 관련된 시간 정보에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 유형으로 구분된 상기 복수의 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 상기 복수의 유형 별 대표 데이터를 획득하여 상기 메모리에 저장하고,
    상기 결정된 유형의 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 전자 장치.
  5. 제1항에 있어서,
    상기 복수의 유형은,
    제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 입력 데이터에서 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 상기 사용자 음성 명령을 인식하는, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 입력 데이터에서 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 상기 웨이크 업 워드가 인식된 시간 구간에 기초하여 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하는, 전자 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 상기 응답 정보를 제공할 수 없는 경우, 상기 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 전자 장치.
  10. 제7항에 있어서,
    상기 프로세서는,
    상기 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    이미지 데이터 및 오디오 데이터를 포함하는 복수의 입력 데이터를 획득하는 단계;
    복수의 유형으로 구분된 상기 복수의 입력 데이터를 복수의 유형으로 그룹핑하는 단계;
    상기 그룹핑된 입력 데이터에 기초하여 상기 복수의 유형 별 대표 데이터를 획득하여 메모리에 저장하는 단계;
    상기 입력 데이터 중 사용자 음성 명령이 인식되면, 상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계; 및
    상기 결정된 유형에 대응되는 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계는,
    상기 사용자 음성 명령과 관련된 시간 정보에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 제어 방법.
  13. 제11항에 있어서,
    상기 메모리에 저장하는 단계는,
    상기 복수의 유형으로 구분된 상기 복수의 입력 데이터를 기 설정된 시간 단위로 그룹핑하고, 그룹핑된 입력에 기초하여 각 시간 단위에 대응되는 상기 복수의 유형 별 대표 데이터를 획득하여 상기 메모리에 저장하고,
    상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는,
    상기 결정된 유형의 대표 데이터에 기초하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 제어 방법.
  14. 제13항에 있어서,
    상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는,
    상기 각 시간 단위에 대응되는 복수의 유형 별 대표 데이터의 변화량을 비교하여, 가장 큰 변화량을 갖는 유형에 가장 큰 가중치를 부여하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 제어 방법.
  15. 제11항에 있어서,
    상기 복수의 유형은,
    제스처 정보, 감정 정보, 얼굴 인식 정보, 성별 정보, 나이 정보 또는 음성 정보 중 적어도 하나를 포함하는, 제어 방법.
  16. 제11항에 있어서,
    상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계는,
    상기 입력 데이터에서 제스처 정보 또는 음성 정보 중 적어도 하나에 기초하여 상기 사용자 음성 명령을 인식하는, 제어 방법.
  17. 제11항에 있어서,
    상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계는,
    상기 입력 데이터에서 사용자 음성 명령이 인식되면, 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하고, 적어도 하나의 음성 인식 단위에 속하는 시간 구간에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 제어 방법.
  18. 제17항에 있어서,
    상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계는,
    상기 사용자 음성 명령에 웨이크 업 워드가 포함되어 있는 경우, 상기 웨이크 업 워드가 인식된 시간 구간에 기초하여 상기 사용자 음성 명령을 기 설정된 음성 인식 단위로 인식하는, 제어 방법.
  19. 제18항에 있어서,
    상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는 단계는,
    상기 웨이크 업 워드 인식 후 기 설정된 시간 구간 동안 입력된 입력 데이터에 기초하여 상기 응답 정보를 제공할 수 없는 경우, 상기 웨이크 업 워드 인식 전 시간 구간에서 입력된 입력 데이터를 이용하여 상기 사용자 음성 명령에 대응되는 응답 정보를 제공하는, 제어 방법.
  20. 제17항에 있어서,
    상기 복수의 유형 중 적어도 하나의 유형을 결정하는 단계는,
    상기 사용자 음성 명령에서 인식된 사용자 의도 또는 제어 대상에 대한 정보 중 적어도 하나에 기초하여 상기 복수의 유형 중 적어도 하나의 유형을 결정하는, 제어 방법.
KR1020180133827A 2018-11-02 2018-11-02 전자 장치 및 그 제어 방법 KR102669100B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020180133827A KR102669100B1 (ko) 2018-11-02 전자 장치 및 그 제어 방법
PCT/KR2019/014742 WO2020091519A1 (en) 2018-11-02 2019-11-01 Electronic apparatus and controlling method thereof
US16/671,518 US11393468B2 (en) 2018-11-02 2019-11-01 Electronic apparatus and controlling method thereof
EP19206725.4A EP3647914B1 (en) 2018-11-02 2019-11-01 Electronic apparatus and controlling method thereof
CN201980067464.5A CN112840313A (zh) 2018-11-02 2019-11-01 电子设备及其控制方法
US17/852,495 US11631413B2 (en) 2018-11-02 2022-06-29 Electronic apparatus and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180133827A KR102669100B1 (ko) 2018-11-02 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20200054354A KR20200054354A (ko) 2020-05-20
KR102669100B1 true KR102669100B1 (ko) 2024-05-27

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312547A1 (en) 2009-06-05 2010-12-09 Apple Inc. Contextual voice commands
US20110313768A1 (en) * 2010-06-18 2011-12-22 Christian Klein Compound gesture-speech commands
US20180278740A1 (en) 2017-03-27 2018-09-27 Samsung Electronics Co., Ltd. Electronic device and method of executing function of electronic device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312547A1 (en) 2009-06-05 2010-12-09 Apple Inc. Contextual voice commands
US20110313768A1 (en) * 2010-06-18 2011-12-22 Christian Klein Compound gesture-speech commands
US20180278740A1 (en) 2017-03-27 2018-09-27 Samsung Electronics Co., Ltd. Electronic device and method of executing function of electronic device

Similar Documents

Publication Publication Date Title
US11631413B2 (en) Electronic apparatus and controlling method thereof
US20230325663A1 (en) Systems and methods for domain adaptation in neural networks
WO2021036644A1 (zh) 一种基于人工智能的语音驱动动画方法和装置
US11494612B2 (en) Systems and methods for domain adaptation in neural networks using domain classifier
EP2959474B1 (en) Hybrid performance scaling for speech recognition
US11640519B2 (en) Systems and methods for domain adaptation in neural networks using cross-domain batch normalization
US10831440B2 (en) Coordinating input on multiple local devices
US10079021B1 (en) Low latency audio interface
US11294457B2 (en) Display apparatus and controlling method thereof
US11256463B2 (en) Content prioritization for a display array
KR102369083B1 (ko) 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
US20190251961A1 (en) Transcription of audio communication to identify command to device
US11961506B2 (en) Electronic apparatus and controlling method thereof
US20200196007A1 (en) Display apparatus and control method thereof
CN113519022A (zh) 电子设备及其控制方法
US11399216B2 (en) Electronic apparatus and controlling method thereof
US11710498B2 (en) Electronic device and control method therefor
KR102669100B1 (ko) 전자 장치 및 그 제어 방법
US11942089B2 (en) Electronic apparatus for recognizing voice and method of controlling the same