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

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

Info

Publication number
KR20200082137A
KR20200082137A KR1020180172416A KR20180172416A KR20200082137A KR 20200082137 A KR20200082137 A KR 20200082137A KR 1020180172416 A KR1020180172416 A KR 1020180172416A KR 20180172416 A KR20180172416 A KR 20180172416A KR 20200082137 A KR20200082137 A KR 20200082137A
Authority
KR
South Korea
Prior art keywords
user voice
attribute
user
voice
attributes
Prior art date
Application number
KR1020180172416A
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 KR1020180172416A priority Critical patent/KR20200082137A/ko
Priority to PCT/KR2019/013021 priority patent/WO2020138662A1/ko
Priority to US17/418,314 priority patent/US11948567B2/en
Publication of KR20200082137A publication Critical patent/KR20200082137A/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
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/02Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • 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
    • 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/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology

Abstract

본 개시에서는 전자 장치 및 이의 제어 방법이 제공된다. 본 개시의 전자 장치는 음성 수신부 및 음성 수신부를 통해 제1 사용자 음성 및 제2 사용자 음성이 수신되면, 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하고, 판단 결과를 통해 얻어진 제2 사용자 음성의 의도(intent)에 기초하여 제2 사용자 음성에 대응되는 동작을 수행하도록 전자 장치를 제어하는 프로세서를 포함한다.

Description

전자 장치 및 그의 제어 방법 { ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 관한 것으로, 보다 구체적으로는 사용자 발화가 후속 발화 후보에 해당하는지 판단하는 전자 장치 및 그의 제어 방법에 관한 발명이다.
최근 음성 인식 기술 및 인공 지능 기술의 발달로 사용자의 음성을 명령으로 입력 받아 기능을 수행하는 전자 장치가 증가하고 있다. 사용자의 음성을 입력 받은 전자 장치는 사용자의 음성을 텍스트로 변환하고, 변환된 텍스트를 이용하여 사용자의 발화 의도를 분석하며 사용자의 음성에 포함된 의도에 따른 기능을 수행한다.
그러나, 사용자의 언어 패턴이 다양하다는 점에서, 종래의 전자 장치는 사용자 음성에 대하여 정확하지 않은 정보를 제공하는 경우도 있었다.
이러한 문제점을 극복하기 위하여, 종래의 전자 장치는 사용자의 이전 발화와 현재 발화 간의 시간 간격 정보를 이용하여, 사용자의 현재 발화가 후속 발화에 해당하는지 판단하였다. 여기에서 후속 발화는 사용자의 이전 발화의 의도 및 도메인을 그대로 유지하는 발화를 의미한다.
즉, 종래에는 현재 사용자 발화와 이전 사용자 발화간의 시간 간격 정보가 일정 시간 이내인 경우, 전자 장치는 현재 사용자 발화가 이전 사용자 발화의 후속 발화일 가능성이 높다고 보아 현재 발화가 이전 발화의 도메인과 동일한 도메인에서 동작할 가능성이 높으며 현재 발화의 의도 또한 이전 발화의 의도와 동일할 가능성이 있다고 판단하였다.
그러나, 시간 간격 정보 만으로 사용자의 발화 의도가 유지된다고 판단하기에는 한계가 있다.
본 개시는 사용자의 발화 시간 정보 이외의 다른 속성들을 고려하여, 사용자의 현재 발화가 이전 발화의 후속 발화 후보인지 판단하는 장치 및 그의 제어 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 음성 수신부; 및 상기 음성 수신부를 통해 제1 사용자 음성 및 제2 사용자 음성이 수신되면, 상기 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하고, 상기 판단 결과를 통해 얻어진 상기 제2 사용자 음성의 의도(intent)에 기초하여 상기 제2 사용자 음성에 대응되는 동작을 수행하도록 상기 전자 장치를 제어하는 프로세서;를 포함한다.
그리고, 상기 프로세서는, 상기 기정의된 속성과의 관련성에 따라 상기 복수의 속성을 구분하고, 상기 구분된 복수의 속성에서 얻어진 속성 값을 조정하고, 상기 조정된 복수의 속성 값에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단할 수 있다.
또한, 상기 프로세서는, 상기 복수의 속성 별로, 상기 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 상기 구분된 복수의 속성의 속성 값에 적용할 수 있다.
여기에서, 상기 복수의 속성은, 상기 기정의된 속성과 관련이 있는 제1 속성 및 상기 기정의된 속성과 관련이 없는 제2 속성으로 구분될 수 있다.
그리고, 상기 프로세서는, 상기 제1 속성에 대응되는 제1 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제1 속성에 대한 제1 속성 값을 조정하고, 상기 제2 속성에 대응되는 제2 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제2 속성에 대한 제2 속성 값을 조정할 수 있다.
이때, 제1 가중치는, 상기 제2 가중치보다 클 수 있다.
또한, 상기 기정의된 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함하고, 상기 제1 속성은, 발화 빈도 및 상기 전자 장치의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함하고, 상기 제2 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 상기 제1 사용자 음성 및 상기 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함할 수 있다.
그리고, 상기 프로세서는, 상기 제1 사용자 음성을 발화한 사용자 및 상기 제2 사용자 음성을 발화한 사용자를 각각 판단하고, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 경우, 상기 제2 사용자 음성에 대한 상기 복수의 속성 값을 획득할 수 있다.
또한, 상기 프로세서는, 상기 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 상기 제2 사용자 음성이 수신된 경우, 상기 기정의된 속성에 따라 상기 제2 사용자 음성의 복수의 속성을 구분할 수 있다.
그리고, 상기 프로세서는, 상기 조정된 복수의 속성 값을 합산하고, 상기 합산된 속성 값이 기설정된 임계값 보다 큰 경우 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 것으로 판단하고, 상기 합산된 속성 값이 기설정된 임계값 이하인 경우, 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하지 않는 것으로 판단할 수 있다.
또한, 상기 프로세서는, 상기 제1 사용자 음성 이후에 수신된 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 경우, 상기 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 상기 제2 사용자 음성의 의도를 판단할 수 있다.
한편, 본 개시의 일 실시 예 따른 전자 장치의 제어 방법은, 제1 사용자 음성 및 제2 사용자 음성을 수신하는 단계; 상기 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계; 및
상기 판단 결과를 통해 얻어진 상기 제2 사용자 음성의 의도(intent)에 기초하여 상기 제2 사용자 음성에 대응되는 동작을 수행하도록 상기 전자 장치를 제어하는 단계;를 포함한다.
그리고, 상기 판단하는 단계는, 상기 기정의된 속성과의 관련성에 따라 상기 복수의 속성을 구분하는 단계; 상기 구분된 복수의 속성에서 얻어진 속성 값을 조정하는 단계; 및 상기 조정된 복수의 속성 값에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계;를 포함할 수 있다.
또한, 상기 복수의 속성 값을 조정하는 단계는, 상기 복수의 속성 별로, 상기 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 상기 구분된 복수의 속성의 속성 값에 적용하는 단계;를 포함할 수 있다.
여기에서, 상기 복수의 속성은, 상기 기정의된 속성과 관련이 있는 제1 속성 및 상기 기정의된 속성과 관련이 없는 제2 속성으로 구분될 수 있다.
그리고, 상기 복수의 속성 값을 조정하는 단계는, 상기 제1 속성에 대응되는 제1 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제1 속성에 대한 제1 속성 값을 조정하는 단계; 및 상기 제2 속성에 대응되는 제2 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제2 속성에 대한 제2 속성 값을 조정하는 단계;를 포함할 수 있다.
이때, 상기 제1 가중치는, 상기 제2 가중치보다 클 수 있다.
그리고, 상기 기정의된 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함할 수 있다.
또한, 상기 제1 속성은, 발화 빈도 및 상기 전자 장치의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함하고, 상기 제2 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 상기 제1 사용자 음성 및 상기 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함할 수 있다.
그리고, 상기 제어 방법은, 상기 제1 사용자 음성을 발화한 사용자 및 상기 제2 사용자 음성을 발화한 사용자를 각각 판단하는 단계; 및 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 경우, 상기 제2 사용자 음성에 대한 상기 복수의 속성 값을 획득하는 단계;를 포함할 수 있다.
또한, 상기 복수의 속성 값을 조정하는 단계는, 상기 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 상기 제2 사용자 음성이 수신된 경우, 상기 기정의된 속성에 따라 상기 복수의 속성을 구분하는 단계;를 포함할 수 있다.
그리고, 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계는, 상기 조정된 복수의 속성 값을 합산하는 단계; 및 상기 합산된 속성 값이 기설정된 임계값 보다 큰 경우 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 것으로 판단하고, 상기 합산된 속성 값이 기설정된 임계값 이하인 경우, 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하지 않는 것으로 판단하는 단계;를 포함할 수 있다.
또한, 상기 제어 방법은, 상기 제1 사용자 음성 이후에 수신된 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 경우, 상기 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 상기 제2 사용자 음성의 의도를 판단하는 단계;를 더 포함할 수 있다.
상술한 바와 같은 실시 예에 따른 전자 장치는 사용자의 발화에 대한 시간 정보 이외에 다양한 속성 정보를 유기적으로 결합하여 사용자의 발화가 후속 발화 후보에 해당하는지 판단하고, 이를 고려하여 사용자 음성의 의도를 판단한다는 점에서, 음성 인식을 수행하는 전자 장치의 리소스(resource)가 절감될 수 있으며 사용자에게는 유용한 사용성을 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치를 보다 상세하게 설명하기 위한 세부 블록도,
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 6 및 도 7은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면, 및
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하에서는 도면을 참조하면 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명하도록 한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면이다. 구체적으로, 도 1a는 사용자의 음성을 직접 수신하는 전자 장치를 설명하기 위한 도면이고, 도 1b는 마이크를 포함하는 원격 제어 장치로부터 사용자 음성 신호를 수신하는 전자 장치를 설명하기 위한 도면이다.
도 1a에서 전자 장치(100)는 사용자 음성을 수신하고, 수신된 사용자 음성에 대하여 음성 인식을 수행한다. 구체적으로, 전자 장치(100)는 수신된 사용자 음성에 대한 전처리를 수행하고, 사용자 음성에 대한 음성 인식을 수행하여 사용자 음성을 텍스트로 변환하고(Speech to Test, STT), 음성 인식 결과에 기초하여 사용자 음성의 의도 및 엔티티를 파악할 수 있다.
이를 위해, 전자 장치(100)는 자동 음성 인식(Automatic Speech Recognition, ASR) 모듈, 자연어 이해(Natural Language Understanding, NLU) 모듈, 대화 관리(Dialogue Management, DM) 모듈, 자연어 생성(Natural Language Generation, NLG) 모듈 등을 포함할 수 있다.
전자 장치(100)는 자연어 이해 결과에 기초하여 사용자 음성에 대한 응답을 위한 정보를 가령, 웹 서버 등으로부터 획득하고, 획득된 정보에 기초하여 사용자 음성에 대한 응답 정보를 생성하여, 사용자에게 제공할 수 있다.
전자 장치(100)는 응답 정보를 사용자에게 제공하기 위하여 대화 시스템을 사용할 수 있으며, 대화 시스템을 동작하기 위해 인공지능 에이전트를 포함할 수 있다.
인공지능 에이전트는 AI(Artificial Intelligence) 기반의 서비스(예를 들어, 음성 인식 서비스, 비서 서비스, 번역 서비스, 검색 서비스 등)를 제공하기 위한 전용 프로그램으로서, 기존의 범용 프로세서(예를 들어, CPU) 또는 별도의 AI 전용 프로세서(예를 들어, GPU 등)에 의해 실행될 수 있다. 특히, 인공지능 에이전트는 다양한 모듈을 제어할 수 있다.
이 경우, 전자 장치(100)는 자연어로 생성된 사용자 음성에 대한 응답 정보를 자연어로 출력하여 사용자에게 제공할 수 있게 된다.
한편, 도 1b와 같이, 전자 장치(100)는 원격 제어 장치(200)로부터 사용자 음성을 수신할 수도 있다. 이 경우, 원격 제어 장치(200)는 사용자 음성을 수신하기 위하여 마이크를 포함할 수 있다.
사용자 음성을 수신한 원격 제어 장치(200)는 수신된 사용자 음성(아날로그 신호)을 디지털 신호로 변환하고, 변환된 디지털 신호를 적외선 통신, 블루투스(Bluetooth), Wi-Fi 등의 무선 통신을 통하여 전자 장치(100)에 전송할 수 있다. 즉, 원격 제어 장치(200)는 전자 장치(100)와 통신을 수행하기 위한 통신부(미도시)를 구비할 수 있으며, 전자 장치(100) 또한 원격 제어 장치와 통신을 수행하기 위하여 통신부를 구비할 수 있다. 이때, 전자 장치(100)는 원격 제어 장치(200)와 통신하기 위한 통신부(가령, 블루투스 모듈) 및 서버(미도시)나 다른 전자 장치(미도시)와 통신하기 위한 통신부(가령, 이더넷(Ethernet) 모뎀, Wi-Fi 모듈 등) 등 복수의 통신부를 포함할 수 있다. 다만, 이는 일 실시예이며, 전자 장치(100)는 Wi-Fi 모듈을 포함하는 하나의 통신부를 이용하여 원격 제어 장치(200), 서버(미도시) 및 다른 전자 장치(미도시)와 통신할 수도 있다.
원격 제어 장치(200)는 리모트 컨트롤러, 스마트폰과 같은 모바일 디바이스, 스마트 워치와 같은 웨어러블 디바이스, 포인팅 디바이스 등으로 구현될 수 있다. 특히, 원격 제어 장치(200)에는 전자 장치(100)를 제어하기 위한 어플리케이션이 설치되어 전자 장치(100)를 제어할 수도 있다.
도 1b의 경우, 전자 장치(100)가 원격 제어 장치(200)로부터 음성 신호를 수신한 이후 수행하는 동작은 도1(a)의 전자 장치(100)가 사용자 음성을 전처리 한 이후 수행하는 동작과 동일한바, 설명의 편의를 위하여 중복된 부분에 대한 설명은 생략한다.
한편, 본 개시의 일 실시 예에 따르면, 전자 장치(100)는 사용자 음성을 발화한 사용자의 의도를 보다 정확하게 파악하기 위하여 사용자의 음성이 후속 발화 후보에 해당하는지를 판단할 수 있다.
여기에서, 후속 발화는 사용자가 이전에 발화한 음성과 발화 의도 및 도메인이 동일한 발화를 의미하며, 후속 발화 후보는 자연어 처리 결과 후속 발화라고 판단될 가능성이 높은 발화를 의미한다.
전자 장치(100)는 사용자 음성을 수신하고, 사용자 음성에 포함된 복수의 속성을 이용하여 사용자 음성이 후속 발화 후보에 해당하는지 판단한다. 구체적으로, 전자 장치는 사용자 음성이 수신되면, 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분하고, 구분된 복수의 속성에서 얻어진 속성 값을 조정하며, 조정된 복수의 속성 값에 기초하여 사용자 음성이 후속 발화 후보에 해당하는지 여부를 판단할 수 있다. 여기에서, 기정의된 속성은 시간 속성이 될 수 있으나, 반드시 이에 한정되는 것만은 아니다.
더욱 구체적으로, 전자 장치(100)는 사용자 음성이 수신되면, 복수의 속성에 기초하여 사용자 음성에 대한 복수의 속성 값을 획득하고, 기정의된 속성과의 관련성에 따라 획득한 복수의 속성 값을 조정하여 사용자 음성이 후속 발화 음성 후보에 해당하는지 판단한다.
이에 따라, 본 개시의 다양한 실시 예에 따르면, 전자 장치가 사용자 음성에 대한 자연어 처리 이전에 사용자 음성이 후속 발화일 가능성을 판단한다는 점에서, 자연어 처리를 수행하는 전자 장치(100)의 부담이 감소될 수 있다. 또한, 전자 장치(100)는 사용자 음성의 복수의 속성을 이용하여 사용자 음성이 후속 발화일 가능성을 판단한다는 점에서, 사용자 음성에 대한 의도를 보다 정확히 판단할 수 있다는 이점이 있다.
이하에서, 본 개시의 다양한 실시 예에 따라 음성 인식을 수행하는 전자 장치에 대하여 구체적으로 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 전자 장치(100)는 음성 수신부(110) 및 프로세서(120)를 포함한다.
음성 수신부(110)는 사용자의 음성을 수신하기 위한 구성요소이다. 음성 수신부(110)는 외부에서부터 수신되는 음성(voice) 또는 사운드(sound)를 전기적인 신호로 생성(또는 변환)할 수 있다.
이를 위하여, 음성 수신부(110)는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
음성 수신부(110)에서 생성된 전기적인 신호는 프로세스(120)에 전달되거나, 메모리(미도시)에 저장될 수 있다. 프로세스(120)는 음성 수신부(110)로부터 전달된 음성 신호를 메모리(미도시)에 저장된 다른 음성 신호와 비교할 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작 및 전자 장치(100)의 내부 구성 요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 한다.
프로세서(120)는 음성 수신부(110)를 통해 제1 사용자 음성 및 제2 사용자 음성이 수신되면, 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하고, 판단 결과를 통해 얻어진 제2 사용자 음성의 의도(intent)에 기초하여 제2 사용자 음성에 대응되는 동작을 수행하도록 전자 장치(100)를 제어할 수 있다.
우선, 프로세서(120)는 제2 사용자 음성의 복수의 속성을 기정의된 속성과의 관련성에 따라 구분하고, 상기 구분한 결과에 기초하여 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당되는지 여부를 판단할 수 있다.
구체적으로, 프로세서(120)는 제2 사용자 음성의 복수의 속성에 기초하여 제2 사용자 음성에 대한 복수의 속성 값을 획득한다. 여기에서, 복수의 속성은 현재 발화와 이전 발화와의 시간 간격, 화자, 장치 상태, 발화 빈도, 명령어 히스토리(history) 중 적어도 하나를 포함할 수 있다.
복수의 속성 중 현재 발화와 이전 발화와의 시간 간격 속성은 전자 장치(100)에 사용자의 음성(현재 발화)이 입력된 시간과 그 이전에 발화된 사용자 음성(이전 발화)이 입력된 시간간의 차이를 나타낸다. 현재 발화와 이전 발화와의 시간 간격에 대한 속성 값은 시간으로 나타낼 수 있다. 예를 들어, 현재 발화와 이전 발화와의 시간 간격이 5초라면, 현재 발화와 이전 발화와의 시간 간격에 대한 속성 값은 5가 될 수 있다. 다만 이는 일 실시예이며, 프로세서(120)는 시간에 대한 범위를 나누어 시간 간격에 대한 속성 값을 부여할 수도 있다. 가령, 프로세서(120)는, 현재 발화와 이전 발화와의 시간 간격이 1~10초이면 1, 20~30초이면 2, 30~40초 이상이면 3 등의 방법으로, 시간을 일정 범위로 구분하여 속상 값을 부여할 수 있다.
복수의 속성 중 화자 속성은 현재 발화의 화자와 이전 발화의 화자가 동일한지 여부를 나타낸다. 프로세서(120)는 현재 발화의 화자와 이전 발화의 화자가 동일하면 1, 현재 발화의 화자와 이전 발화의 화자가 상이하면 0의 값을 산출할 수 있다.
복수의 속성 중 장치 상태 속성은 전자 장치(100)의 실행 상태를 의미한다. 구체적으로, 장치 상태 속성은 전자 장치(100)에 현재 발화와 이전 발화가 입력되었을 당시 전자 장치(100)의 디스플레이(미도시)의 온/오프(on/off) 상태, 어플리케이션의 실행 상태, 실행되고 있는 어플리케이션의 종류, 전자 장치(100)의 위치 및 전자 장치(100)와 사용자 간의 거리 등이 변화되었는지를 나타낼 수 있다. 가령, 이전 발화 당시에는 전자 장치(100)의 디스플레이가 오프 상태였으나, 현재 발화 당시에는 전자 장치(100)의 디스플레이가 온 상태라면, 프로세스(120)는 장치 상태 속성 값을 0.5로 하고, 이전 발화시 및 현재 발화시의 장치의 상태가 변화하지 않은 경우라면 장치 상태 속성 값을 1로 할 수 있다. 마찬가지로, 프로세스(120)는 이전 발화시 및 현재 발화시 전자 장치(100)에서 실행되는 어플리케이션의 종류가 동일하다면 장치 상태 속성 값을 1로 하고, 어플리케이션의 종류가 변경되었다면 장치 상태 속성 값을 0.3으로 할 수 있다. 한편, 디스플레이의 온/오프 상태 및 어플리케이션의 종류 뿐만 아니라, 상술한 프로세서(120)는 어플리케이션의 실행 상태, 전자 장치(100)의 위치 및 전자 장치(100)와 사용자 간의 거리 등이 변화되었는지에 대하여도 동일한 방법으로 속성 값을 획득할 수 있다.
한편, 상술한 장치 상태 속성의 종류는 일 실시예이며, 반드시 이에 한정되는 것은 아니다. 즉, 전자 장치(100)의 종류, 사용자의 전자 장치(100) 사용 습관에 따라 장치 상태 속성의 종류는 다양할 수 있다.
복수의 속성 중 발화 빈도 속성은 일정 시간동안 사용자가 사용자 음성을 발화한 횟수를 나타낼 수 있다. 즉, 발화 빈도 속성은 프로세서(120)가 일정 시간동안 음성수신부(110)를 통하여 사용자 음성을 수신한 횟수를 나타낼 수 있다.
프로세스(120)는 발화 빈도 속성 값을 기설정된 시간 동안의 (사용자 음성 수신 횟수 / 기준 발화 수)로 산출할 수 있다. 예를 들어, 60초 동안의 기준 발화수가 10이라고 하고, 프로세스(120)가 60초 동안 수신한 사용자 음성 수신 횟수가 7이라고 할 경우, 발화 빈도 속성 값은 7/10 이 될 수 있다. 즉, 프로세스(120)가 기설정된 시간동안 사용자 음성을 수신한 횟수가 많으면 많을수록 발화 빈도 속성 값은 큰 값을 가질 수 있다.
이와 같이, 발화 빈도 속성 값을 산출하기 위하여, 프로세스(120)는 기설정된 시간 동안 사용자 음성을 수신한 횟수를 카운트할 수 있다.
그리고, 복수의 속성 중 명령어 히스토리 속성은 현재 발화된 사용자 음성 및 이전에 발화된 사용자 음성이 텍스트로 변환되었을 때, 변환된 현재 발화 및 이전 발화 텍스트 간의 유사도를 나타낸다. 이를 위하여, 프로세서(120)는 자동 음성 인식(Automatic Speech Recognition, ASR) 모듈을 이용하여 사용자 음성을 텍스트로 변환할 수 있으며, 변환된 텍스트를 메모리(미도시)에 저장할 수 있다.
프로세서(120)는 현재 발화에 대한 텍스트와 이전 발화의 텍스트 간의 partial matching을 통하여 유사도를 판단할 수 있다. 구체적으로, 프로세서(120)는 Knuth-Morris-Pratt(KMP) 알고리즘, Boyer-Moore 알고리즘과 같은 문자열의 패턴 매칭 알고리즘을 이용하여 현재 발화에 대한 텍스트와 이전 발화의 텍스트 간의 유사도를 판단할 수 있다. 예를 들어, 이전 사용자의 음성이 "볼륨 올려줘"이고, 현재 사용자의 음성이 "더 올려줘"인 경우, 프로세서(120)의 현재 음성의 "올려줘" 부분이 이전 사용자 음성과 동일하다고 판단하며, (현재 발화에 대한 텍스트 중 이전 발화와 동일한 글자 수 / 현재 사용자 음성에 대한 텍스트의 총 글자 수)를 이용하여, 현재 사용자 음성에 대한 명령어 히스토리 속성 값이 3/4에 해당한다고 판단할 수 있다.
한편, 이는 일 실시예이며, 명령어 히스토리 속성, 즉, 현재 발화에 대한 텍스트와 이전 발화의 텍스트 간의 유사도는 다양한 방법으로 산출될 수 있다. 가령, 프로세서(120)는 현재 발화에 대한 텍스트를 단어 단위로 나누어 이전 발화의 텍스트와 매칭하면서 텍스트간의 유사도를 판단할 수도 있다.
프로세서(120)는 제1 사용자 음성을 발화한 사용자 및 제2 사용자 음성을 발화한 사용자를 각각 판단하고, 제1 사용자 음성 및 제2 사용자 음성을 발화한 사용자가 동일한 경우, 제2 사용자 음성에 대한 복수의 속성 값을 획득할 수 있다. 반면, 제1 사용자 음성을 발화한 사용자 및 제2 사용자 음성을 발화한 사용자가 동일하지 않은 경우, 프로세서(120)는 제2 사용자 음성이 후속 발화 후보인지 판단하지 않을 수 있다.
프로세서(120)는 기정의된 속성과의 관련성에 따라 제2 사용자 음성의 복수의 속성을 구분하고, 구분된 복수의 속성의 속성 값을 조정할 수 있다. 구체적으로, 프로세서(120)는 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 제2 사용자 음성이 수신된 경우, 기정의된 속성과의 관련성에 따라 획득된 복수의 속성을 구분하고, 그 속성 값을 조정할 수 있다.
즉, 프로세서(120)는 제1 사용자 음성의 수신 시간과 제2 사용자 음성의 수신 시간이 일정 시간 이내이면 복수의 속성 값을 조정한다는 점에서, 복수의 속성 값을 조정하는데 기준이 되는 기정의된 속성은 제1 사용자 음성 및 제2 사용자 음성이 수신된 시간 간격 속성이 될 수 있다.
프로세서(120)는 복수의 속성 별로 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 상기 구분된 복수의 속성의 속성 값에 적용할 수 있다.
이때, 복수의 속성은 기정의된 속성과 관련이 있는 제1 속성 및 기정의된 속성과 관련이 없는 제2 속성으로 구분될 수 있다.
가령, 상술한 바와 같이, 기정의된 속성이 현재 발화와 이전 발화와의 시간 간격이라고 할 경우, 발화 빈도 및 전자 장치(100)의 상태를 나타내는 장치 상태 속성은 시간의 영향을 받을 가능성이 높은 속성이라는 점에서, 제1 속성은 발화 빈도 및 전자 장치(100)의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함할 수 있다.
프로세서(120)는 시간의 영향을 받을 가능성이 높은 제1 속성에 제1 가중치를 적용할 수 있다.
반면, 상술한 복수의 속성 중 화자 속성 및 명령어 속성은 시간의 영향을 받을 가능성이 상대적으로 적다. 프로세서(120)는 화자가 동일한 경우에만 제2 사용자 음성이 후속 발화 후보인지 판단한다는 점에서, 즉, 제2 사용자 음성의 속성 값을 획득하는 것은 제2 사용자 음성의 화자가 제1 사용자 음성의 화자가 동일하다는 것을 전제로 한다는 점에서, 화자 속성은 시간의 영향을 받을 가능성이 적다. 또한, 명령어는 사용자의 직접적인 의도를 포함하는 것이고, 제1 사용자 음성 및 제2 사용자 음성이 수신된 시간 간격에 따라 명령어가 변화되는 것은 아니라는 점에서, 명령어 속성 또한 시간의 영향을 받을 가능성이 적다.
이와 같이, 복수의 속성 중 화자 속성 및 명령어 속성은 시간의 영향을 받을 가능성이 상대적으로 적은 속성이라는 점에서, 제2 속성은 제1 사용자 음성 및 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 제1 사용자 음성 및 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함할 수 있다.
이 경우, 프로세서(120)는 시간의 영향을 받을 가능성이 적은 제2 속성에 제2 가중치를 적용할 수 있다.
프로세서(120)는 제1 속성에 대응되는 제1 가중치에 기초하여 제2 사용자 음성으로부터 획득된 제1 속성에 대한 제1 속성 값을 조정하고, 제2 속성에 대응되는 제2 가중치에 기초하여 제2 사용자 음성으로부터 획득된 제2 속성에 대한 제2 속성 값을 조정할 수 있다.
이때, 제1 속성이 기정의된 속성과 관련이 있는 속성이라는 점에서, 제1 속성에 대응되는 제1 가중치는 제2 속성에 대응되는 제2 가중치보다 클 수 있다. 가령, 제1 가중치는 기정의된 속성과 관련이 있는 제1 속성에 대응되는 값이라는 점에서, 제1 가중치는 1을 초과하는 값일 수 있고, 제2 가중치는 기정의된 속성과 관련이 없는 제2 속성에 대응되는 값이라는 점에서, 제2 가중치는 1 또는 1 이하의 값일 수 있다.
한편, 본 개시의 또 다른 실시 예로, 기정의된 속성과 관련이 있는 제1 속성은 복수의 속성을 포함할 수 있으며, 제1 속성에 포함된 복수의 속성(가령, 발화 빈도 속성 및 장치 상태 속성)은 각각 서로 다른 가중치를 가질 수 있다. 마찬가지로, 제2 속성 또한 복수의 속성(가령, 화자 속성 및 명령어 히스토리 속성)을 포함할 수 있으며, 제2 속성에 포함된 복수의 속성 각각은 서로 다른 가중치를 가질 수 있다.
한편, 제1 가중치 및 제2 가중치는 실험에 의해 획득된 값으로, 기설정된 값일 수 있다.
프로세서(120)는 조정된 복수의 속성 값에 기초하여 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당하는지 판단할 수 있다. 프로세서(120)는 조정된 복수의 속성 값을 합산하고, 합산된 속성 값이 기설정된 임계값보다 큰 경우 제2 사용자 음성이 후속 발화 후보에 해당하는 것으로 판단하고, 합산된 속성 값이 기설정된 임계값 이하인 경우, 제2 사용자 음성이 후속 발화 후보에 해당하지 않는 것으로 판단할 수 있다. 프로세서(120)가 조정된 복수의 속성 값을 합산하는 방법에 관해서는 도 5에서 자세히 설명하도록 한다.
한편, 프로세서(120)는 제2 사용자 음성이 후속 발화 후보에 해당하는지 여부에 기초하여 제2 사용자 음성에 대한 의도(intent)를 판단할 수 있다. 프로세서(120)는 제1 사용자 음성 이후에 수신된 제2 사용자 음성이 후속 발화 후보에 해당한다고 판단한 경우, 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 제2 사용자 음성의 의도를 판단할 수 있다.
구체적으로, 프로세서(120)는 자연어 이해(Natural Language Understanding, NLU) 모듈을 이용하여 제2 사용자 음성에 대한 사용자의 의도를 판단하게 되는데, 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당된다고 판단된 경우 제2 사용자 음성의 의도 및 도메인이 제1 사용자 음성의 의도 및 도메인과 동일할 가능성이 높다고 판단하여, 제2 사용자 음성에 대한 의도 및 도메인을 판단함에 있어 제1 사용자 음성의 의도 및 도메인을 우선적으로 고려할 수 있다. 이를 위하여, 제1 사용자 음성 및 제1 사용자 음성에 대한 정보는 메모리(미도시)에 저장되어 있을 수 있다.
반면, 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당된다고 판단되지 않는 경우, 프로세서(120)는 제1 사용자 음성의 후속 발화 후보와 무관하게 자연어 이해(Natural Language Understanding, NLU) 모듈을 이용하여 제2 사용자 음성에 대한 의도 및 도메인을 판단할 수 있다. 자연어 처리에 대한 기술은 공지된 기술인바, 구체적인 설명은 생략하기로 한다.
그리고, 프로세서(120)는 판단된 의도에 기초하여 제2 사용자 음성에 대응되는 동작을 수행하도록 전자 장치(100)를 제어할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치를 보다 상세하게 설명하기 위한 세부 블록도이다.
도 3을 참조하면, 전자 장치(100)는 음성 수신부(110), 프로세서(120), 음성 출력부(130), 사용자 입력부(140), 메모리(150), 통신부(160), 디스플레이(170), 카메라(180), 및 GPS 칩(190)을 포함할 수 있다. 실시 형태에 따라 도시되지 않았더라도 당업자에게 자명한 수준의 적절한 하드웨어/소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다. 또한, 실시 형태에 따라 몇몇의 구성들이 제외될 수 있다.
음성 출력부(130)는 오디오를 출력할 수 있는 구성이다. 예를 들어, 음성 출력부(130)는 제2 사용자 음성에 대한 응답 정보를 소리로 출력할 수 있다.
사용자 입력부(140)는 사용자 입력을 수신하여 프로세서(110)로 전달할 수 있다. 입력부(140)는 예컨대, 터치 센서, (디지털) 펜 센서, 압력 센서, 키를 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다.
메모리(150)는 본 개시에서 설명되는 전자 장치의 제어방법을 수행하기 위한 컴퓨터 실행가능 명령어(computer executable instructions)를 저장할 수 있다.
메모리(150)는 하나 이상의 모듈로서 구성된 소프트웨어 및/또는 펌웨어를 포함할 수 있다. 모듈은 컴퓨터 실행 가능 명령어의 집합에 대응될 수 있다.
본 개시의 일 실시예에 따라 메모리(120)에는 제1 사용자 음성 및 그에 관한 정보(의도, 도메인 등)가 저장될 수 있다.
통신부(160)는 예를 들면 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치와 통신할 수 있다. 무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용할 수 있다. 또한, 무선 통신은, 예를 들면, 근거리 통신을 포함할 수 있다. 근거리 통신은, 예를 들면, WiFi 다이렉트(wireless fidelity direct), 블루투스(Bluetooth), NFC(near field communication), 지그비(Zigbee) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), RS-232(recommended standard232), 또는 POTS(plain old telephone service), 유선 LAN(Local area network)등 중 적어도 하나를 포함할 수 있다. 네트워크는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
통신부(160)는 제1통신 방식으로 통신하는 제1통신부(미도시) 및 제1통신 방식과 다른 제2통신 방식으로 통신하는 제2통신부(미도시)를 포함할 수 있다. 예를 들어, 전자 장치(100)는 Wi-Fi, 이더넷(Ethernet)과 같은 무선 통신을 이용하여 서버와 통신을 수행하는 제1 통신부 및 원격 근거리 통신을 이용하여 원격 제어 장치(200)와 통신을 수행하기 위한 제2 통신부를 포함할 수도 있다.
디스플레이(170) 영상을 출력하기 위한 구성이다. 디스플레이(170)는 예를 들면, 액정 디스플레이(liquid crystal display(LCD)), 발광 다이오드(light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드(organic light-emitting diode(OLED)) 디스플레이(예컨대 AMOLED(active-matrix organic light-emitting diode), PMOLED(passive-matrix OLED)), 또는 마이크로 전자기계 시스템(microelectromechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이로 구현될 수 있다. 디스플레이(170)와 사용자 입력부(140)의 터치 센서가 상호 레이어 구조를 이루어 터치 스크린으로 구현될 수 있다.
인터페이스(180)는 전자 장치(100)와 외부 장치(미도시)를 연결하기 위한 구성요소이다. 전자 장치(100)는 인터페이스(180)를 이용하여 외부 장치(미도시)로 비디오/오디오 신호를 전송할 수 있다. 인터페이스(180)는 HDMI, DP, DVI, 썬더볼트 등으로 구현되어 전자 장치(100)는 외부 장치(200)로 비디오/오디오 신호를 전송하고, 외부 장치(200)로 비디오/오디오 신호를 수신할 수 있다. 다만 이는 일 실시 예이며, 오디오 포트 및 비디오 포트 각각 별개로 구현될 수도 있다.
카메라(180) 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라(180)는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수 있다. 카메라(180)를 이용해 촬영한 사진, 동영상 등은 접근 권한에 따라 특정 애플리케이션이 접근할 수 있다. 해당 애플리케이션이 격리된 경우, 사진, 동영상에 대한 접근이 차단될 수 있다.
GPS 칩(190)은 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 전자 장치(100)의 현재 위치를 산출하기 위한 구성요소이다. 프로세서(120)는 GPS 칩(190)을 이용하여 사용자가 음성을 발화할 당시의 사용자 위치 정보를 획득할 수 있으며, 이를 이용하여 사용자의 위치가 변경되었는지를 판단하여 장치 상태 속성값을 획득할 수 있다.
음성 수신부(110) 및 프로세서(120)에 대한 설명은 도 2의 음성 수신부(110) 및 프로세서(120)에 대한 설명을 원용할 수 있다.
프로세서(120)는 전자 장치(100)에 포함된 각종 하드웨어 또는 소프트웨어의 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다. 이를 위해, 프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예를 들면, 임베디드 프로세서)로 구현되거나, 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)로 구현될 수 있다.
프로세서(120)는 RAM(121), ROM(122), CPU(123), GPU(Graphic Processing Unit)(124), 버스(125)를 포함할 수 있다. RAM(121), ROM(122), CPU(123), GPU(124) 등은 버스(125)를 통해 서로 연결될 수 있다.
CPU(123)는 메모리(150)에 액세스하여, 메모리(150)에 저장된 O/S를 이용하여 부팅을 수행할 수 있다. 그리고, 메모리(150)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.
ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, CPU(123)는 ROM(122)에 저장된 명령어에 따라 메모리(150)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, CPU(123)는 메모리(150)에 저장된 각종 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(124)는 전자 장치(100)의 부팅이 완료되면, 음성 수신부(110)를 활성화시킬 수 있다.
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다. 전자 장치(100)는 음성 수신부(110)를 이용하여 사용자 음성을 수신할 수 있다(S410). 이때, 사용자는 전자 장치(100)에 포함된 버튼이나 디스플레이된 UI를 이용하여 발화의 시작을 전자 장치(100)에 알릴 수 있으며, 'Hi, Bixby'와 같은 음성 인식의 트리거 문장을 발화하여 전자 장치(100)에 발화의 시작을 알릴 수도 있다.
사용자의 발화가 완료되면, 프로세서(120)는 사용자 음성에 대한 음성인식을 수행하여 사용자 음성을 텍스트로 변환할 수 있다(S420). 구체적으로, 프로세서(120)는 자동 음성 인식(ASR) 모듈을 이용하여 사용자 음성을 텍스트로 변환할 수 있다. 자동 음성 인식(ASR) 모듈은 음성 신호를 텍스트로(Speech to Text, STT) 변환하기 위한 모듈로서, 종래 개시되어 있는 다양한 STT 알고리즘을 이용하여 음성 신호를 텍스트로 변환할 수 있다.
예를 들어, 프로세서(120)는 ASR 모듈을 이용하여, 수신된 사용자 음성 내에서 화자가 발화한 음성의 시작과 끝을 검출하여 음성 구간을 판단할 수 있다. 구체적으로, 수신된 음성 신호의 에너지를 계산하고, 계산된 에너지에 따라 음성 신호의 에너지 레벨을 분류하여, 동적 프로그래밍을 통해 음성 구간을 검출할 수 있다. 그리고, 검출된 음성 구간 내에서 음향 모델(Acoustic Model)을 기초로 음성의 최소 단위인 음소를 검출하여 음소 데이터를 생성하고, 생성된 음송 데이터에 HMM(Hidden Markov Model) 확률 모델을 적용하여 화자의 음성을 텍스트로 변환할 수 있다. 한편, 이는 일 실시예이며, 프로세서(120)는 다양한 STT 알고리즘에 따라 사용자 음성 신호를 텍스트로 변환할 수 있다.
프로세서(120)는 변환된 텍스트를 이용하여 사용자 음성이 후속 발화 후보에 해당하는지 판단할 수 있다(S430). 이에 대한 구체적인 내용은 도 5를 참조하여 설명하도록 한다.
도 5를 참조하면, 프로세서(120)는 수신된 사용자 음성의 음향 특징을 이용하여 제2 사용자 음성의 화자가 이전에 발화된 제1 사용자 음성의 화자와 동일한지 판단할 수 있다(S431). 여기에서, 사용자 음성의 음향 특징은 사용자 음성의 주파수 별 분포를 나타내는 스펙트럼(spectrum) 특징, 사용자 음성의 높낮이, 크기, 속도, 리듬, 강세 등을 나타내는 prosody 특징을 포함할 수 있다.
프로세서(120)는 제2 사용자 음성의 화자가 제1 사용자 음성의 화자와 동일하다고 판단된 경우, 제2 사용자 음성에 대한 복수의 속성의 속성 값을 계산할 수 있다(S432). 이에 대한 구체적인 도 3에서 전술한 바, 설명의 편의상 중복된 설명은 생략하기로 한다.
그 후, 프로세서(120)는 제2 사용자 음성의 발화 시간과 제1 사용자 음성의 발화 시간간의 시간 간격이 기준값 미만인지 판단할 수 있다(S433). 제1 사용자 음성의 발화 후 기설정된 시간이 경과한 후에 제2 사용자 음성이 발화되면 제2 사용자 음성의 의도는 제1 사용자 음성의 의도와 다를 가능성이 높다는 점에서, 프로세서(120)는 제2 사용자 음성이 제1 사용자 음성의 발화 후 기설정된 시간 이내에 발화된 경우에만 제2 사용자 음성이 후속 발화 후보인지를 판단할 수 있다.
한편, 도 5에서는 제2 사용자 음성의 복수의 속성값을 계산(S432)한 후에 시간 간격 속성이 기준값 미만인지 여부를 판단(S433)하였으나, 경우에 따라서는 제1 및 제2 사용자 음성의 시간 간격 속성이 기준값 미만인지 여부를 먼저 판단(S433)한 후에 제2 사용자 음성의 복수의 속성값을 계산(S432)할 수도 있다.
그 후, 프로세서(120)는 기정의된 속성과의 관련성에 따라 제2 사용자 음성의 복수의 속성 값을 조정할 수 있다(S434). 구체적으로, 도 3에서 상술한 바와 같이, 프로세서(120)는 제1 및 제2 사용자 음성의 수신된 시간 간격을 나타내는 시간 속성에 기초하여, 제2 사용자 음성의 복수의 속성을 제1 속성(시간 속성과 관련이 있는 발화 빈도 속성 및 장치 상태 속성) 및 제2 속성(화자 속성, 명령어 속성)으로 구분하고, 제1 속성에는 제1 가중치를, 제2 속성에는 제2 가중치를 부여하여 제2 사용자 음성에 대한 속성값을 조정할 수 있다. 이에 대한 자세한 설명은 도 3에서 상술하였는바, 중복된 부분에 대한 구체적인 기재는 생략하도록 한다.
프로세서(120)는 조정된 제2 사용자 음성의 복수의 속성 값을 이용하여 제2 사용자 음성에 대한 점수(score)를 계산할 수 있다(S435). 구체적으로, 프로세서(120)는 아래의 수학식 1을 이용하여 제2 사용자 음성에 대한 점수를 산출할 수 있다.
Figure pat00001
구체적으로, 장치 상태 속성 및 발화 빈도 속성은 시간 간격 속성과 관련이 있다는 점에서, 조정된 장치 상태 속성값 및 발화 빈도 속성값에 시간 간격 속성 값을 곱할 수 있다. 이때, 시간 간격이 작으면 작을수록 제2 사용자 음성이 후속 발화 후보일 가능성이 높다는 점에서, (1/시간간격속성)을 곱하게 된다. 한편, 이는 일 실시예이며, 상기 제2 사용자 음성의 속성값을 계산하는 단계에서 시간 간격이 클수록 시간 간격 속성의 값이 작아지도록 계산되었다면, (1/시간간격속성)이 아닌, (시간간격속성)을 곱할 수 있다.
한편, 도 3에서 상술한 바와 같이, 시간 관련 속성과 관련이 있는 제1 속성(가령, 장치 상태 속성 및 발화 빈도 속성)에 대한 제1 가중치는 장치 상태 속성 및 발화 빈도 속성 각각에 대해 서로 다른 가중치 값을 가질 수 있다. 또한, 시간 관련 속성과 관련이 없는 제2 속성(가령, 명령어 히스토리 속성 및 화자 구분 속성)에 대한 제2 가중치 또한 명령어 히스토리 속성 및 화자 구분 속성 각각에 대해 서로 다른 가중치 값을 가질 수도 있다. 이 경우, 제2 사용자 음성에 대한 점수는 아래의 수학식 2와 같이 계산될 수 있다.
Figure pat00002
프로세서(120)는 계산된 제2 사용자 음성에 대한 점수가 기설정된 임계값 이상인 경우(S436-Y), 제2 사용자 음성을 제1 사용자 음성에 대한 후속 발화 후보로 선정할 수 있다. 반면, 제2 사용자 음성에 대한 점수가 기설정된 임계값 미만인 경우(S436-N), 제2 사용자 음성은 제1 사용자 음성과 큰 관련이 없다고 판단할 수 있다.
이와 같은 도 5의 단계를 통하여, 프로세서(120)는 사용자 음성이 후속 발화 후보에 해당하는지 판단할 수 있다.
다시 도 4로 돌아가서, 프로세서(120)는 제2 사용자 음성이 후속 발화 후보에 해당하는지 판단한 결과를 기초로, 제2 사용자 음성에 대한 의도를 분석할 수 있다. 이때, 프로세서(120)는 제2 사용자 음성에 대한 의도를 분석하기 위하여 전자 장치(100)에 저장된 자연어 이해 모듈(NLU)를 이용할 수 있다.
도 2에서 상술한 바와 같이, 프로세서(120)는 제2 사용자 음성이 후속 발화 후보에 해당한다고 판단되는 경우, 제2 사용자 음성의 의도 및 도메인이 제1 사용자 음성의 의도 및 도메인과 일치할 가능성이 높다고 보아, 제2 사용자 음성의 의도 및 도메인을 판단하는데 있어 제1 사용자 음성의 의도 및 도메인을 우선적으로 고려할 수 있을 것이다. 그리고, 이 경우 의도 분석을 수행하는 전자 장치(100)는 리소스 절감, 처리 속도 향상, 제2 사용자 음성에 대한 정확도 향상 등의 효과를 얻을 수 있을 것이다.
예를 들어, 제1 사용자 음성이 "OOO 사이트에서 XXX 찾아줘" 이고, 동일한 사용자가 기설정된 시간 이내에 발화한 제2 사용자 음성이 "ΔΔΔ 찾아줘"인 경우로, 프로세서(120)가 제2 사용자 음성에 대한 속성값을 계산한 결과 제2 사용자 음성이 후속 발화 후보에 해당한다고 판단하였다고 가정한다.
이 경우, 프로세서(120)는 제2 사용자 음성의 의도 및 도메인이 제1 사용자 음성의 의도 및 도메인과 일치할 가능성이 높다고 판단하여, 제2 사용자 음성의 의도 및 도메인을 판단하는데 있어 제1 사용자 음성의 의도 및 도메인을 우선적으로 고려할 수 있다. 즉, 프로세서(120)는 제2 사용자 음성의 의도는 '검색'이 목적이며, 도메인은 OOO 사이트가 될 수 있다고 판단하여, OOO 사이트에서 ΔΔΔ 을 검색하려는 의도일 가능성이 높다고 판단할 수 있다.
한편, 프로세서(120)는 제2 사용자 음성에 대한 의도 분석 후, 의도 분석 결과에 따른 기능을 수행한다(S450). 구체적으로, 프로세서(120)는 의도 분석 결과 획득한 제2 사용자 음성의 의도 및 도메인 정보에 기초하여, 제2 사용자 음성의 도메인에서 제2 사용자 음성의 의도에 해당하는 기능을 수행할 수 있다.
프로세서(120)는 자연어 이해 결과에 기초하여 제2 사용자 음성에 대한 응답을 위한 정보를 가령, 웹 서버 등으로부터 획득하고, 획득된 정보에 기초하여 제2 사용자 응답 정보를 생성할 수 있다.
프로세서(120)는 자연어 생성(Natural Language Generation, NLG) 모듈 또는 인공지능 에이전트를 사용하여 제2 사용자 응답 정보를 생성하고, 생성된 제2 사용자 응답 정보를 디스플레이(160) 또는 음성 출력부(120)를 통하여 사용자에게 제공할 수 있다. 가령, 상술한 예를 인용하면, 프로세서(120)는 OOO 사이트 ΔΔΔ 을 검색한 화면을 디스플레이할 수 있도록 처리하거나 검색 결과를 음성으로 출력할 수 있다.
한편, 도 5에서는, 전자 장치(100)가 제2 사용자 음성이 후속 발화 후보에 해당하는지 판단하는 것으로 도시되었으나, 이 중 일부 단계는 외부 장치(미도시) 나 서버와 같은 다른 디바이스에서 수행될 수도 있다. 이에 대한 자세한 설명은 아래 도 6 및 도 7에서 하기로 한다.
도 6 및 도 7은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면이다.
도6 에서 도시된 바와 같이, 전자 장치(100)는 디스플레이를 구비하지 않을 수 있다. 이 경우 전자 장치(100)는 사용자로부터 디스플레이 장치(300)를 제어하기 위한 음성 명령을 수신하고, 이를 디스플레이 장치(300)에 전송할 수 있다.
예를 들어, 전자 장치(100)가 사용자로부터 디스플레이 장치(300)를 제어하기 위한 명령을 수신하였다고 가정한다. 전자 장치(100)는 사용자 음성 명령을 수신하여 텍스트로 변환하고, 도 6의 프로세스를 통하여 사용자 음성이 후속 발화 후보에 해당하는지 판단할 수 있다. 그리고, 전자 장치(100)는 사용자 음성에 대한 자연어 처리를 통하여 사용자 음성에 대한 의도가 디스플레이 장치(300)를 제어하기 위한 것임을 판단할 수 있다.
이 경우, 전자 장치(100)는 디스플레이 장치(300)에 사용자 음성 명령에 대응되는 제어 신호를 전송하고, 디스플레이 장치(300)는 수신된 신호에 따라 동작을 수행할 수 있다.
이를 위하여, 전자 장치(100)를 디스플레이 장치(300)를 비롯한 다른 외부 장치와 유/무선으로 연결될 수 있다. 전자 장치(100)는 디스플레이 장치(300)에 비디오 신호 또는 오디오 신호를 전송하기 위한 출력 인터페이스를 포함할 수 있다. 구체적으로, 전자 장치는 비디오 신호 또는 오디오 신호를 동시에 전송하기 위한 HDMI, DP, 썬더볼트 등과 같은 인터페이스를 포함하거나, 비디오만을 전송하기 위한 인터페이스, 오디오만을 전송하기 위한 인터페이스를 포함할 수도 있다. 또한, 전자 장치(100)는 디스플레이 장치(300)와 무선으로 연결하기 위한 통신부를 포함할 수 있다.
도 7에 도시된 바와 같이, 전자 장치(100)는 서버(400 및 500)과 연결될 수도 있다.
사용자 음성을 수신한 전자 장치(100)는 사용자 음성을 전처리 하여 사용자 음성을 디지털 신호로 변환한 후, 변환된 음성 신호를 자동 음성 인식(ASR) 서버(400)에 전송할 수 있다.
자동 음성 인식 서버(400)는 수신된 사용자 음성 신호에 대하여 음성 신호를 수행하여 사용자 음성 신호를 텍스트로 변환할 수 있다. 이를 위하여 자동 음성 인식 서버(400)는 다양한 STT(Speech to Text) 알고리즘을 사용할 수 있다.
예를 들어, 사용자 음성 '주말은 어때?'를 수신한 전자 장치(100)는 사용자 음성을 디지털 신호로 변환하여 이를 자동 음성 인식 서버(400)에 전송할 수 있으며, 자동 음성 인식 서버(400)는 이를 텍스트로 변환할 수 있다.
사용자 음성 신호를 텍스트로 변환한 후, 자동 음성 인식 서버(400)는 음성 인식 결과를 전자 장치(100)에 전송할 수 있다.
전자 장치(100)는 수신된 텍스트를 이용하여 사용자 음성이 후속 발화 후보에 해당하는지 판단할 수 있으며, 판단 결과 및 텍스트로 변환된 사용자 음성을 자연어 이해(NLU) 서버(500)에 전송할 수 있다.
가령, 사용자가 사용자 음성 "주말은 어때?"을 발화하기 이전에 "내일 서울 날씨는 어때?"라고 발화하였다고 가정하자.
전자 장치(100)는 상술한 본 개시의 일 실시예에 따라 "주말은 어때?"의 복수의 속성값 및 가중치들을 고려하여 사용자 음성 "주말은 어때?"가 "내일 서울 날씨는 어때?"의 후속 발화 후보라고 판단할 수 있으며, 이를 자연어 이해 서버(500)에 전송할 수 있다.
자연어 이해 서버(500)는 수신된 사용자 음성에 대하여 자연어 처리를 수행할 수 있다. 구체적으로, 자연어 이해(NLU) 서버(500)는 형태소 분석, 구문 분석, 의미이해 분석 등을 통하여 사용자의 음성에 포함된 비정형적인 언어 데이터를 기계가 이해할 수 있는 정형적인 언어 데이터로 바꿀 수 있다.
한편, 본 개시의 일 실시예에 따라, 자연어 이해 서버(500) 전자 장치(100)로부터 수신된 사용자 음성이 후속 발화 후보에 해당하는지 여부를 수신할 수 있다. 이에 따라, 자연어 이해 서버(500)는 사용자 음성이 후속 발화 후보에 해당하는지 여부를 고려하여, 사용자 음성에 대한 자연어 처리를 수행할 수 있다.
예를 들어, 텍스트 '주말은 어때?'를 수신한 자연어 이해 서버(500)는 '주말은 어때?' 문장이 '내일 날씨 어때?'의 후속 발화 후보라는 정보를 수신하고, 이를 기초로 하여 '주말은 어때?'의 도메인은 '내일 날씨 어때?'의 도메인과 동일한 도메인이며, 사용자의 의도는 날씨를 검색하려는 의도임을 알 수 있다.
자연어 이해 서버는 사용자 음성에 관한 처리 결과를 전자 장치(100)에 전송할 수 있으며, 전자 장치(100)는 자연어 처리 결과에 기능을 수행할 수 있다.
한편, 도 7에서는 자동 음성 인식 서버(400)와 자연어 이해 서버(500)가 별개의 장치로 도시되었으나, 두 서버가 결합되어 하나의 서버로 동작할 수 있음은 물론이다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
우선, 제1 사용자 음성 및 제2 사용자 음성을 수신하고(S810), 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 제2 사용자 음성이 후속 발화 후보에 해당하는지 여부를 판단할 수 있다(S820).
여기에서, S820 단계는 기정의된 속성과의 관련성에 따라 복수의 속성을 구분하는 단계, 구분된 복수의 속성에서 얻어진 속성 값을 조정하는 단계 및 조정된 복수의 속성 값에 기초하여 제2 사용자 음성이 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계를 포함할 수 있다.
이때, 복수의 속성 값을 조정하는 단계는 복수의 속성 별로, 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 구분된 복수의 속성의 속성 값에 적용하는 단계를 포함할 수 있다.
한편, 복수의 속성은 기정의된 속성과 관련이 있는 제1 속성 및 기정의된 속성과 관련이 없는 제2 속성으로 구분될 수 있다. 구체적으로, 기 정의된 속성은 제1 사용자 음성 및 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함할 수 있으며, 제1 속성은, 발화 빈도 및 전자 장치(100)의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함하고, 제2 속성은, 제1 사용자 음성 및 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 제1 사용자 음성 및 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함할 수 있다.
그리고, 구분된 속성에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단할 수 있다(S830).
이때, 구분된 복수의 속성의 속성 값을 조정하고, 조정된 복수의 속성 값에 기초하여 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단할 수 있다.
특히, 구분된 복수의 속성의 속성 값을 조정하는 것과 관련하여, 복수의 속성 별로, 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 구분된 복수의 속성의 속성 값에 적용할 수 있다.
구체적으로, 기정의된 속성과 관련이 있는 제1 속성에 대응되는 제1 가중치에 기초하여 제2 사용자 음성으로부터 획득된 제1 속성에 대한 제1 속성 값을 조정하고, 기정의된 속성과 관련이 없는 제2 속성에 대응되는 제2 가중치에 기초하여 제2 사용자 음성으로부터 획득된 제2 속성에 대한 제2 속성 값을 조정할 수 있다.
이때, 제1 가중치는 제2 가중치보다 클 수 있다.
그리고, 기정의된 속성은, 제1 사용자 음성 및 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함할 수 있다.
한편, 조정된 복수의 속성 값을 합산하고, 합산된 속성 값이 기설정된 임계값 보다 큰 경우 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 것으로 판단하고, 합산된 속성 값이 기설정된 임계값 이하인 경우, 제2 사용자 음성이 후속 발화 후보에 해당하지 않는 것으로 판단할 수 있다.
그리고, 판단 결과를 통해 얻어진 제2 사용자 음성의 의도(intent)에 기초하여 제2 사용자 음성에 대응되는 동작을 수행하도록 전자 장치를 제어할 수 있다(S830).
한편, 제1 사용자 음성을 발화한 사용자 및 제2 사용자 음성을 발화한 사용자를 각각 판단하고, 제1 사용자 음성 및 제2 사용자 음성을 발화한 사용자가 동일한 경우, 제2 사용자 음성에 대한 상기 복수의 속성 값을 획득할 수 있다.
이때, 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 제2 사용자 음성이 수신된 경우, 기정의된 속성에 따라 복수의 속성을 구분할 수 있다.
그리고, 제2 사용자 음성이 상기 후속 발화 후보에 해당하는지 여부에 기초하여, 상기 제2 사용자 음성에 대한 의도(intent)를 판단할 수 있다.
이때, 제1 사용자 음성 이후에 수신된 제2 사용자 음성이 후속 발화 후보에 해당하는 경우, 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 제2 사용자 음성의 의도를 판단할 수 있다.
그리고, 판단된 의도에 기초하여 상기 제2 사용자 음성에 대응되는 동작을 수행할 수 있다.
한편, 상술한 바와 같은 제어 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 애플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
이상에서는 본 개시의 바람직한 실시예에 대해서 도시하고, 설명하였으나, 본 개시는 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
100: 전자 장치 110: 음성 수신부
120: 프로세서

Claims (18)

  1. 전자 장치에 있어서,
    음성 수신부; 및
    상기 음성 수신부를 통해 제1 사용자 음성 및 제2 사용자 음성이 수신되면, 상기 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하고, 상기 판단 결과를 통해 얻어진 상기 제2 사용자 음성의 의도(intent)에 기초하여 상기 제2 사용자 음성에 대응되는 동작을 수행하도록 상기 전자 장치를 제어하는 프로세서;를 포함하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 기정의된 속성과의 관련성에 따라 상기 복수의 속성을 구분하고,
    상기 구분된 복수의 속성에서 얻어진 속성 값을 조정하고,
    상기 조정된 복수의 속성 값에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는, 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 복수의 속성 별로, 상기 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 상기 구분된 복수의 속성의 속성 값에 적용하는, , 전자 장치.
  4. 제3항에 있어서,
    상기 복수의 속성은,
    상기 기정의된 속성과 관련이 있는 제1 속성 및 상기 기정의된 속성과 관련이 없는 제2 속성으로 구분되고,
    상기 프로세서는,
    상기 제1 속성에 대응되는 제1 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제1 속성에 대한 제1 속성 값을 조정하고, 상기 제2 속성에 대응되는 제2 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제2 속성에 대한 제2 속성 값을 조정하며,
    상기 제1 가중치는, 상기 제2 가중치보다 큰, 전자 장치.
  5. 제4항에 있어서,
    상기 기정의된 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함하고,
    상기 제1 속성은, 발화 빈도 및 상기 전자 장치의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함하고,
    상기 제2 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 상기 제1 사용자 음성 및 상기 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함하는, 전자 장치.
  6. 제2항에 있어서,
    상기 프로세서는,
    상기 제1 사용자 음성을 발화한 사용자 및 상기 제2 사용자 음성을 발화한 사용자를 각각 판단하고, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 경우, 상기 제2 사용자 음성에 대한 상기 복수의 속성 값을 획득하는, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 상기 제2 사용자 음성이 수신된 경우, 상기 기정의된 속성에 따라 상기 제2 사용자 음성의 복수의 속성을 구분하는 , 전자 장치.
  8. 제2항에 있어서,
    상기 프로세서는,
    상기 조정된 복수의 속성 값을 합산하고, 상기 합산된 속성 값이 기설정된 임계값 보다 큰 경우 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 것으로 판단하고, 상기 합산된 속성 값이 기설정된 임계값 이하인 경우, 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하지 않는 것으로 판단하는, 전자 장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 사용자 음성 이후에 수신된 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 경우, 상기 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 상기 제2 사용자 음성의 의도를 판단하는, 전자 장치.
  10. 전자 장치의 제어 방법에 있어서,
    제1 사용자 음성 및 제2 사용자 음성을 수신하는 단계;
    상기 제2 사용자 음성의 복수의 속성을 기정의된 속성에 따라 구분한 결과에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계;
    상기 판단 결과를 통해 얻어진 상기 제2 사용자 음성의 의도(intent)에 기초하여 상기 제2 사용자 음성에 대응되는 동작을 수행하도록 상기 전자 장치를 제어하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 판단하는 단계는,
    상기 기정의된 속성과의 관련성에 따라 상기 복수의 속성을 구분하는 단계;
    상기 구분된 복수의 속성에서 얻어진 속성 값을 조정하는 단계; 및
    상기 조정된 복수의 속성 값에 기초하여 상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계;를 포함하는, 제어 방법.
  12. 제10항에 있어서,
    상기 복수의 속성 값을 조정하는 단계는,
    상기 복수의 속성 별로, 상기 기정의된 속성과의 관련성에 따라 서로 다른 가중치를 상기 구분된 복수의 속성의 속성 값에 적용하는 단계;를 포함하는, 제어 방법.
  13. 제12항에 있어서,
    상기 복수의 속성은,
    상기 기정의된 속성과 관련이 있는 제1 속성 및 상기 기정의된 속성과 관련이 없는 제2 속성으로 구분되고,
    상기 복수의 속성 값을 조정하는 단계는,
    상기 제1 속성에 대응되는 제1 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제1 속성에 대한 제1 속성 값을 조정하는 단계; 및
    상기 제2 속성에 대응되는 제2 가중치에 기초하여 상기 제2 사용자 음성으로부터 획득된 상기 제2 속성에 대한 제2 속성 값을 조정하는 단계;를 포함하며,
    상기 제1 가중치는, 상기 제2 가중치보다 큰, 제어 방법.
  14. 제13항에 있어서,상기 기정의된 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성이 수신된 시간 간격을 나타내는 시간 속성을 포함하고,
    상기 제1 속성은, 발화 빈도 및 상기 전자 장치의 상태를 나타내는 장치 상태 속성 중 적어도 하나를 포함하고,
    상기 제2 속성은, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 사용자인지 여부를 나타내는 화자 속성 및 상기 제1 사용자 음성 및 상기 제2 사용자 음성에 포함된 명령어 간의 유사도를 나타내는 명령어 속성 중 적어도 하나를 포함하는, 제어 방법.
  15. 제11항에 있어서,
    상기 제어 방법은,
    상기 제1 사용자 음성을 발화한 사용자 및 상기 제2 사용자 음성을 발화한 사용자를 각각 판단하는 단계; 및
    상기 제1 사용자 음성 및 상기 제2 사용자 음성을 발화한 사용자가 동일한 경우, 상기 제2 사용자 음성에 대한 상기 복수의 속성 값을 획득하는 단계;를 포함하는, 제어 방법.
  16. 제10항에 있어서,
    상기 복수의 속성 값을 조정하는 단계는,
    상기 제1 사용자 음성이 수신된 이후 기설정된 시간 이내에 상기 제2 사용자 음성이 수신된 경우, 상기 기정의된 속성에 따라 상기 복수의 속성을 구분하는 단계;를 포함하는, 제어 방법.
  17. 제11항에 있어서,
    상기 제2 사용자 음성이 상기 제1 사용자 음성의 후속 발화 후보에 해당하는지 여부를 판단하는 단계는,
    상기 조정된 복수의 속성 값을 합산하는 단계; 및
    상기 합산된 속성 값이 기설정된 임계값 보다 큰 경우 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 것으로 판단하고, 상기 합산된 속성 값이 기설정된 임계값 이하인 경우, 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하지 않는 것으로 판단하는 단계;를 포함하는, 제어 방법.
  18. 제10항에 있어서,
    상기 제어 방법은,
    상기 제1 사용자 음성 이후에 수신된 상기 제2 사용자 음성이 상기 후속 발화 후보에 해당하는 경우, 상기 제1 사용자 음성의 의도 및 도메인(domain)에 기초하여 상기 제2 사용자 음성의 의도를 판단하는 단계;를 더 포함하는, 제어 방법.
KR1020180172416A 2018-12-28 2018-12-28 전자 장치 및 그의 제어 방법 KR20200082137A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180172416A KR20200082137A (ko) 2018-12-28 2018-12-28 전자 장치 및 그의 제어 방법
PCT/KR2019/013021 WO2020138662A1 (ko) 2018-12-28 2019-10-04 전자 장치 및 그의 제어 방법
US17/418,314 US11948567B2 (en) 2018-12-28 2019-10-04 Electronic device and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180172416A KR20200082137A (ko) 2018-12-28 2018-12-28 전자 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20200082137A true KR20200082137A (ko) 2020-07-08

Family

ID=71129878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180172416A KR20200082137A (ko) 2018-12-28 2018-12-28 전자 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US11948567B2 (ko)
KR (1) KR20200082137A (ko)
WO (1) WO2020138662A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023158076A1 (ko) * 2022-02-16 2023-08-24 삼성전자주식회사 전자 장치 및 전자 장치의 발화 처리 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210042520A (ko) * 2019-10-10 2021-04-20 삼성전자주식회사 전자 장치 및 이의 제어 방법
US20210383432A1 (en) * 2020-03-19 2021-12-09 Stephen Madison Byrd System and method for interactive business promotion based on artificial intelligence

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6335139U (ko) 1987-07-23 1988-03-07
KR100764174B1 (ko) 2006-03-03 2007-10-08 삼성전자주식회사 음성 대화 서비스 장치 및 방법
KR100818979B1 (ko) * 2006-09-14 2008-04-04 학교법인 포항공과대학교 채팅 에이전트를 위한 대화 관리 장치 및 그 방법
KR101622111B1 (ko) 2009-12-11 2016-05-18 삼성전자 주식회사 대화 시스템 및 그의 대화 방법
KR101699720B1 (ko) * 2010-08-03 2017-01-26 삼성전자주식회사 음성명령 인식 장치 및 음성명령 인식 방법
KR102072826B1 (ko) * 2013-01-31 2020-02-03 삼성전자주식회사 음성 인식 장치 및 응답 정보 제공 방법
KR102215579B1 (ko) 2014-01-22 2021-02-15 삼성전자주식회사 대화형 시스템, 디스플레이 장치 및 그 제어 방법
KR102216048B1 (ko) 2014-05-20 2021-02-15 삼성전자주식회사 음성 명령 인식 장치 및 방법
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9767091B2 (en) 2015-01-23 2017-09-19 Microsoft Technology Licensing, Llc Methods for understanding incomplete natural language query
DE102015210430A1 (de) 2015-06-08 2016-12-08 Robert Bosch Gmbh Verfahren zum Erkennen eines Sprachkontexts für eine Sprachsteuerung, Verfahren zum Ermitteln eines Sprachsteuersignals für eine Sprachsteuerung und Vorrichtung zum Ausführen der Verfahren
KR20180057922A (ko) 2016-11-23 2018-05-31 한국전자통신연구원 언어 분석을 이용한 후처리 기반의 음성 인식 오류 수정 장치 및 그 방법
KR20180058476A (ko) * 2016-11-24 2018-06-01 삼성전자주식회사 다양한 입력 처리를 위한 방법, 이를 위한 전자 장치 및 서버
KR20180084392A (ko) 2017-01-17 2018-07-25 삼성전자주식회사 전자 장치 및 그의 동작 방법
US10229683B2 (en) * 2017-03-10 2019-03-12 Soundhound, Inc. Speech-enabled system with domain disambiguation
KR102388539B1 (ko) * 2017-04-30 2022-04-20 삼성전자주식회사 사용자 발화를 처리하는 전자 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023158076A1 (ko) * 2022-02-16 2023-08-24 삼성전자주식회사 전자 장치 및 전자 장치의 발화 처리 방법

Also Published As

Publication number Publication date
US20220093097A1 (en) 2022-03-24
US11948567B2 (en) 2024-04-02
WO2020138662A1 (ko) 2020-07-02

Similar Documents

Publication Publication Date Title
US10269346B2 (en) Multiple speech locale-specific hotword classifiers for selection of a speech locale
KR102205371B1 (ko) 개별화된 핫워드 검출 모델들
KR102623272B1 (ko) 전자 장치 및 이의 제어 방법
CN110310623B (zh) 样本生成方法、模型训练方法、装置、介质及电子设备
US11514886B2 (en) Emotion classification information-based text-to-speech (TTS) method and apparatus
CN105741836B (zh) 声音识别装置以及声音识别方法
EP3321930B1 (en) Determining hotword suitability
US10777193B2 (en) System and device for selecting speech recognition model
KR101834546B1 (ko) 핸즈프리 자동 통역 서비스를 위한 단말 장치 및 핸즈프리 장치와, 핸즈프리 자동 통역 서비스 방법
CN103095911B (zh) 一种通过语音唤醒寻找手机的方法及系统
JP5663031B2 (ja) 自然言語音声サービス環境におけるハイブリッド処理のシステム及び方法
CN108346425B (zh) 一种语音活动检测的方法和装置、语音识别的方法和装置
US9837068B2 (en) Sound sample verification for generating sound detection model
US20160217783A1 (en) Speech recognition processing device, speech recognition processing method and display device
KR20160060405A (ko) 사용자 명령어 등록을 위한 디스플레이 장치 및 방법
US20200219487A1 (en) Information processing apparatus and information processing method
US11948567B2 (en) Electronic device and control method therefor
KR20180012639A (ko) 음성 인식 방법, 음성 인식 장치, 음성 인식 장치를 포함하는 기기, 음성 인식 방법을 수행하기 위한 프로그램을 저장하는 저장 매체, 및 변환 모델을 생성하는 방법
KR20210153165A (ko) 음성 인식 기능을 제공하는 인공 지능 기기, 인공 지능 기기의 동작 방법
US11514893B2 (en) Voice context-aware content manipulation
KR101989127B1 (ko) 번역 장치, 번역 방법 및 번역 컴퓨터 프로그램
US20230223014A1 (en) Adapting Automated Speech Recognition Parameters Based on Hotword Properties
KR20210042520A (ko) 전자 장치 및 이의 제어 방법
US11501762B2 (en) Compounding corrective actions and learning in mixed mode dictation
KR20210098250A (ko) 전자 장치 및 이의 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal