KR102502220B1 - 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체 - Google Patents

전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR102502220B1
KR102502220B1 KR1020170145743A KR20170145743A KR102502220B1 KR 102502220 B1 KR102502220 B1 KR 102502220B1 KR 1020170145743 A KR1020170145743 A KR 1020170145743A KR 20170145743 A KR20170145743 A KR 20170145743A KR 102502220 B1 KR102502220 B1 KR 102502220B1
Authority
KR
South Korea
Prior art keywords
user
intention
response information
voice
speech
Prior art date
Application number
KR1020170145743A
Other languages
English (en)
Other versions
KR20180071931A (ko
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 US16/467,610 priority Critical patent/US11367434B2/en
Priority to PCT/KR2017/015041 priority patent/WO2018117608A1/ko
Publication of KR20180071931A publication Critical patent/KR20180071931A/ko
Application granted granted Critical
Publication of KR102502220B1 publication Critical patent/KR102502220B1/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/04Segmentation; Word boundary detection
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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
    • G10L15/05Word 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/221Announcement of recognition results
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/225Feedback of the input speech

Abstract

전자 장치, 그의 사용자의 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체가 제공된다. 본 개시의 일 실시 예에 따른 전자 장치는, 사용자가 발화한 사용자 음성을 입력받는 마이크 및 사용자 음성이 입력되는 동안 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단하고, 판단된 발화 의도에 대응하는 응답 정보를 제공하며, 응답 정보가 제공되는 동안 적어도 하나의 단어가 입력된 이후 발화된 추가 단어를 바탕으로 응답 정보를 갱신하는 프로세서를 포함할 수 있다.

Description

전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체{ELECTRONIC APPARATUS, METHOD FOR DETERMINING USER UTTERANCE INTENTION OF THEREOF, AND NON-TRANSITORY COMPUTER READABLE RECORDING MEDIUM}
본 개시는 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체에 관한 것으로, 더욱 구체적으로는, 사용자가 발화가 완료되기 이전에도 응답 정보를 제공할 수 있는 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체에 관한 것이다.
또한, 본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관한 것이다.
최근 모바일 장치, 음성 인식 장치, 홈네트워크 허브 장치 등의 기능이 향상됨에 따라, 이들 장치를 이용하는 사용자의 수가 증가하고 있다. 특히, 이와 같은 전자 장치는 사용자의 음성을 인식하고 그에 대응되는 정보를 제공하거나 동작을 수행하는 가상 개인 비서(Virtual Personal Assistant, VPA) 기능을 제공한다.
기존의 가상 개인 비서는 사용자의 발화가 끝난 이후에 사용자의 발화 음성 인식을 시작한다. 또한, 사용자의 의도에 대응되는 동작을 실행시키기 위해서는 여러 번의 음성 입력이 필요하다. 이에 따라 기존의 가상 개인 비서는 응답 속도가 느리기 때문에 사용자들의 외면을 받아왔다. 사용자가 음성이 아닌 다른 방법으로 동작을 실행시키는 것이 훨씬 편리했기 때문이다.
한편 이러한 가상 개인 비서는 인공 지능 시스템으로 구현될 수 있다. 인공 지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 사용자의 발화 중간에 실시간으로 대응하는 가상 개인 비서 기능을 제공할 수 있는 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체를 제공함을 목적으로 한다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는, 사용자가 발화한 사용자 음성을 입력받는 마이크 및 상기 사용자 음성이 입력되는 동안 상기 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단하고, 상기 판단된 발화 의도에 대응하는 응답 정보를 제공하며, 상기 응답 정보가 제공되는 동안 상기 적어도 하나의 단어가 입력된 이후 발화된 추가 단어를 바탕으로 상기 응답 정보를 갱신하는 프로세서를 포함할 수 있다.
그리고, 상기 프로세서는, 상기 입력된 적어도 하나의 단어를 바탕으로 복수의 발화 의도의 신뢰도를 판단하고, 상기 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도를 상기 사용자의 발화 의도로 판단할 수 있다.
또한, 상기 프로세서는, 상기 복수의 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 준비 동작을 개시할 수 있다.
그리고, 디스플레이를 더 포함하고, 상기 프로세서는, 상기 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 화면을 표시하도록 상기 디스플레이를 제어할 수 있다.
또한, 상기 프로세서는, 상기 검출된 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 상기 사용자가 발화하도록 유도하는 UI를 표시하도록 상기 디스플레이를 제어할 수 있다.
그리고, 디스플레이를 더 포함하고, 상기 프로세서는, 상기 판단된 복수의 발화 의도의 신뢰도가 기설정된 값 미만이면, 상기 판단된 복수의 발화 의도를 포함하는 리스트 UI를 표시하도록 상기 디스플레이를 제어하고, 상기 표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면, 상기 선택된 발화 의도에 대응하는 응답 정보를 제공할 수 있다.
또한, 상기 프로세서는, 상기 추가 단어를 바탕으로 새로이 판단된 발화 의도가 상기 적어도 하나의 단어를 바탕으로 판단된 발화 의도와 상이하면, 상기 새로이 판단된 발화 의도에 대응하는 응답 정보가 제공되도록 상기 제공된 응답 정보를 갱신할 수 있다.
그리고, 디스플레이를 더 포함하고, 상기 프로세서는 상기 제공된 응답 정보를 표시하도록 상기 디스플레이를 제어할 수 있다. 상기 응답 정보는 개체명 및 의도를 포함할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치의 사용자 발화 의도 판단 방법은, 사용자가 발화한 사용자 음성을 입력받는 단계, 상기 사용자의 음성이 입력되는 동안 상기 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단하는 단계, 상기 판단된 사용자의 발화 의도에 대응하는 응답 정보를 제공하는 단계 및 상기 응답 정보가 제공되는 동안 상기 적어도 하나의 단어가 입력된 이후 발화된 추가 단어를 바탕으로 상기 응답 정보를 갱신하는 단계를 포함할 수 있다.
그리고, 상기 판단하는 단계는, 상기 입력된 적어도 하나의 단어를 바탕으로 복수의 발화 의도의 신뢰도를 판단하는 단계, 상기 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도를 검출하는 단계 및 상기 검출된 발화 의도를 상기 사용자의 발화 의도로 판단하는 단계를 포함할 수 있다.
또한, 상기 복수의 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 준비 동작을 개시하는 단계를 더 포함할 수 있다.
그리고, 상기 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 화면을 표시하는 단계를 더 포함할 수 있다.
또한, 상기 검출된 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 상기 사용자가 발화하도록 유도하는 UI를 표시하는 단계를 더 포함할 수 있다.
그리고, 상기 판단하는 단계는, 상기 판단된 복수의 발화 의도의 신뢰도가 기설정된 값 미만이면, 상기 판단된 복수의 발화 의도를 포함하는 리스트 UI를 표시하는 단계를 더 포함하고, 상기 제공하는 단계는, 상기 표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면, 상기 선택된 발화 의도에 대응하는 응답 정보를 제공할 수 있다.
또한, 상기 갱신하는 단계는, 상기 추가 단어를 바탕으로 새로이 판단된 발화 의도가 상기 적어도 하나의 단어를 바탕으로 판단된 발화 의도와 상이하면, 상기 새로이 판단된 발화 의도에 대응되는 응답 정보가 제공되도록 상기 제공된 응답 정보를 갱신할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치의 사용자 발화 의도 판단 방법을 실행하기 위한 프로그램을 포함하는 비일시적 컴퓨터 판독가능 기록매체는, 사용자가 발화한 사용자 음성을 입력받는 단계, 상기 사용자의 음성이 입력되는 동안 상기 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단하는 단계, 상기 판단된 사용자의 발화 의도에 대응하는 응답 정보를 제공하는 단계 및 상기 응답 정보가 제공되는 동안 상기 적어도 하나의 단어가 입력된 이후 발화된 추가 단어를 바탕으로 상기 응답 정보를 갱신하는 단계를 포함하는 사용자 발화 의도 판단 방법을 포함할 수 있다.
상기 응답 정보를 제공하는 단계는, 상기 응답 정보를 표시하는 것을 포함할 수 있다. 상기 응답 정보는 개체명 및 의도를 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 가상 개인 비서 기능의 응답 속도가 향상되고, 최소의 대화 패턴으로 사용자 발화 의도에 대응되는 동작이 수행될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 가상 개인 비서 시스템을 도시한 개념도,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 개략적인 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세히 설명하기 위한 블록도,
도 4는 본 개시의 일부 실시 예에 따른 프로세서의 블록도,
도 5a는 본 개시의 일부 실시 예에 따른 데이터 학습부의 블록도,
도 5b는 본 개시의 일부 실시 예에 따른 데이터 인식부의 블록도,
도 6은 의도를 나타내는 단어의 신뢰도를 이용하여 응답 정보를 제공/인식하는 실시 예를 도시한 도면,
도 7은 도 6의 실시 예에 따라 제공되는 화면을 도시한 도면,
도 8은 사용자의 추가 발화 음성을 인식하여 응답 정보를 변경하는 실시 예를 도시한 도면
도 9는 개체명에 대응되는 복수의 발화 의도를 선택할 수 있는 UI를 표시하는 실시 예를 도시한 도면,
도 10은 도 9의 실시 예에 따라 제공되는 화면을 도시한 도면,
도 11은 추가 정보를 사용자가 발화하도록 유도하는 UI를 표시하는 실시 예를 도시한 도면, 그리고,
도 12 내지 도 15는 본 개시의 다양한 실시 예에 따른 전자 장치의 사용자 발화 의도 판단 방법을 설명하기 위한 흐름도이다.
도 16은 본 개시의 실시예에 따른, 전자 장치와 서버를 포함하는 시스템이 데이터 인식 모델을 구축하는 방법을 나타내는 시퀀스도이다.
도 17은 본 개시의 실시예에 따른, 전자 장치와 서버를 포함하는 시스템이 데이터를 인식하는 방법을 나타내는 시퀀스도이다.
이하에서는 본 개시의 바람직한 실시 예가 첨부된 도면을 참조하여 상세히 설명한다. 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 명세서에서 사용한 용어는 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 숫자, 동작, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 동작, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 또는 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
이하에서는 첨부된 도면을 이용하여 본 개시에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 가상 개인 비서 시스템(1000)을 도시한 개념도이다. 도 1에 도시된 바와 같이, 가상 개인 비서 시스템(1000)은 전자 장치(100) 및 서버(200)를 포함할 수 있다. 전자 장치(100)와 서버(200)는 연동하여 사용자에게 가상 개인 비서 기능을 제공할 수 있다.
본 명세서에서 사용되는 용어 '가상 개인 비서'는, 인공지능 기술과 음성 인식 기술의 결합으로 사용자의 언어를 이해하고 사용자가 원하는 지시사항을 수행하는 소프트웨어 어플리케이션을 말한다. 예를 들어, 가상 개인 비서는 딥러닝을 포함하는 머신러닝, 음성 인식, 문장 분석, 상황 인지와 같은 인공지능 기능을 수행할 수 있다. 가상 개인 비서는 사용자의 습관 또는 패턴을 학습하여 개인에 필요한 맞춤형 서비스를 제공할 수 있다. 가상 개인 비서의 예로는 S voice, Bixby를 들 수 있다.
전자 장치(100)는 스마트폰, 타블렛 PC와 같은 모바일 장치일 수 있으나, 이는 일 실시 예에 불과할 뿐, 음성 인식 장치, 홈네트워크의 허브, 전자 액자, 인간형 로봇, 오디오 장치, 네비게이션, 스마트 TV 등 사용자의 음성을 인식하고 대응되는 동작을 수행할 수 있는 모든 장치로 구현될 수 있다.
전자 장치(100)는 사용자가 발화한 사용자 음성을 인식하고, 언어를 이해할 수 있다. 또한, 전자 장치(100)는 사용자와의 대화를 관리하고, 응답을 생성할 수 있다.
서버(200)는 전자 장치(100)가 사용자와의 대화를 관리하고 응답을 생성할 때 필요한 정보를 제공할 수 있다. 또한, 서버(200)는 전자 장치(100)에서 이용하는 언어 모델을 제공하고, 갱신할 수 있다.
도 1의 실시 예에서 도시된 것과 같이, 전자 장치(100)와 서버(200)가 연동하여 가상 개인 비서 기능을 제공할 수도 있으나, 전자 장치(100)만의 동작으로 가상 개인 비서 기능을 제공하는 형태로 구현될 수도 있다. 또한, 전자 장치(100)는 단순히 사용자의 음성을 수신하고 응답 정보를 제공하는 입출력장치로서의 역할만을 수행하고, 서버(200)가 가상 개인 비서 기능의 대부분을 처리하는 형태로 구현될 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 설명하기 위한 개략적인 블록도이다. 도 2를 참조하면, 전자 장치(100)는 마이크(110) 및 프로세서(120)를 포함할 수 있다.
마이크(110)는 사용자가 발화한 사용자 음성을 입력받을 수 있다. 예를 들어, 마이크(110)는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 구현될 수도 있고, 별도의 수단으로 마련되어 전자 장치(100)와 유선 또는 무선 인터페이스로 연결될 수도 있다.
또한, 마이크(110)는 복수 개로 구성되어, 서로 다른 위치에서 음성을 입력 받아 복수의 음성 신호를 생성할 수 있다. 복수의 음성 신호를 이용하여, 전자 장치(100)는 음성 인식 기능 수행 이전의 전처리(pre-processing) 과정에서 강화된 단일 음성 신호를 생성할 수 있다.
프로세서(120)는 입력된 사용자 음성을 인식할 수 있다. 프로세서(120)는 음성 인식 기능 수행 전에 입력된 사용자 음성에 대해 전처리를 수행할 수도 있다. 예를 들어, 전처리에는 잡음 제거, 특징 추출과 같은 동작이 포함될 수 있다. 전처리 과정은 프로세서(120)에서 수행될 수도 있고, 별도로 마련된 구성요소를 통해 수행될 수도 있다.
프로세서(120)는 사용자의 발화 중간에도 사용자의 발화 의도를 판단할 수 있는 경우에는 판단된 발화 의도에 대응되는 동작을 수행할 수 있다. 구체적으로, 프로세서(120)는 현재까지 발화된 사용자 음성의 인식 결과에 대한 신뢰도를 측정할 수 있다. 그리고 프로세서(120)는 사용자의 발화가 종료되기 전이라도 기설정된 신뢰도 이상을 갖는 사용자의 의도가 판단되면, 그에 대응한 응답 정보를 제공할 수 있다.
또한, 프로세서(120)는 응답 정보를 제공하는데 이용된 사용자 음성 이후에 발화된 추가 음성을 이용하여 응답 정보를 갱신할 수 있다. 프로세서(120)는 추가된 음성을 더한 전체 사용자 음성을 기초로 사용자의 발화 의도를 새로이 판단할 수 있다. 만일 판단된 사용자의 발화 의도와 동일한 의도인 것으로 판단되면, 프로세서(120)는 더욱 정확한 응답 정보를 제공할 수 있다. 반대로 판단된 사용자의 발화 의도와 상이한 의도인 것으로 판단되면, 프로세서(120)는 새로이 판단된 발화 의도에 대응되는 응답 정보로 제공된 응답 정보를 교체할 수 있다.
예를 들어, 추가 음성을 인식한 결과를 이용하여, 프로세서(120)는 판단된 사용자의 의도에 대응되는 응답 정보를 더욱 정확하게 제공할 수 있다. '서울특별시 서초구'에 대한 지도를 제공해주길 원하는 사용자의 의도가 판단된 경우를 예로 들면, '강남대로'라는 추가 사용자 음성을 인식하여 프로세서(120)는 더욱 해상도가 높아진(즉, 서울특별시 서초구의 지도에서 강남대로 주변만을 확대한) 지도를 제공할 수 있다.
다른 예로, 추가 음성을 인식한 결과를 이용하여, 프로세서(120)는 제공된 응답 정보를 새로이 판단된 사용자의 의도에 대응되는 응답 정보로 대체하여 제공할 수 있다. '서울특별시 서초구'에 대한 지도를 제공해주길 원하는 사용자의 의도가 판단된 경우를 예로 들면, '내일 날씨'라는 추가 사용자 음성을 인식하여 프로세서(120)는 제공하였던 지도 정보 대신에 날씨 정보를 제공하는 어플리케이션의 실행 화면을 제공할 수 있다.
프로세서(120)는 판단된 발화 의도에 대응하는 동작을 수행하는데 필요한 추가 정보를 사용자가 발화하도록 유도할 수 있다. 적은 횟수의 대화턴 안에 동작 수행에 필요한 모든 정보를 사용자가 발화하도록 함으로써, 프로세서(120)는 추가적인 대화턴 발생을 방지하고 응답 속도를 높일 수 있다.
예를 들어, 알람을 설정해달라는 사용자의 발화 의도가 판단된 경우, 프로세서(120)는 알람 설정에 필요한 정보인 알람 설정 시간, 반복 여부 등에 대한 사용자 발화를 유도하는 화면을 제공할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 상세히 설명하기 위한 블록도이다. 도 3을 참조하면, 전자 장치(100)는 마이크(110), 프로세서(120), 디스플레이(130), 입력부(140), 통신부(150), 메모리(160) 및 스피커(170)를 포함할 수 있다. 도 3의 실시 예에 도시된 구성 요소 이외에도 전자 장치(100)는 영상 수신부(미도시), 영상 처리부(미도시), 전원부(미도시), 유선 인터페이스(미도시) 등 다양한 구성을 포함할 수 있다. 또한 전자 장치(100)가 반드시 도 3에 도시된 구성을 모두 포함하도록 구현되는 것으로 한정되지 않음은 물론이다.
마이크(110)는 다양한 형태로 구현되어 사용자의 음성을 입력받는 기능을 수행한다. 마이크(110)는 잡음 제거를 위하여 다양한 음향 필터(Acoustic Filter)를 포함할 수도 있다.
디스플레이(130)는 전자 장치(100)에서 제공되는 각종 영상 컨텐츠, 정보, UI 등을 표시할 수 있다. 예를 들어, 디스플레이(130)는 사용자 음성에 대응한 응답 정보 제공 화면을 표시할 수 있다.
디스플레이(130)는 액정 표시 장치(Liquid Crystal Display, LCD), 유기 전기 발광 다이오드(Organic Light Emitting Display, OLED) 또는 플라즈마 표시 패널(Plasma Display Panel, PDP) 등으로 구현되어, 전자 장치(100)를 통해 제공 가능한 다양한 화면을 표시할 수 있다.
디스플레이(130)는 프로세서(120)의 음성 인식 결과에 대응되는 영상을 표시할 수 있다. 예를 들어, 디스플레이(130)는 사용자의 음성을 통해 판단된 발화 의도에 대응되는 응답 정보를 텍스트 또는 이미지로 표시할 수 있다. 다른 예로, 디스플레이(130)는 발화 의도에 대응되는 동작에 필요한 추가 정보를 안내하는 UI를 표시할 수 있다. 그 밖에, 디스플레이(130)는 복수의 발화 의도 목록을 표시하는 UI, 현재까지 인식된 사용자 음성을 나타내는 텍스트, 발화 의도에 대응되는 동작 수행을 위한 어플리케이션 실행 화면 등을 표시할 수 있다.
입력부(140)는 전자 장치(100)를 제어하기 위한 다양한 사용자 명령을 입력받는다. 예를 들어, 입력부(140)는 UI에 표시된 복수의 발화 의도 중 하나를 선택하는 사용자 명령을 입력받을 수 있다. 입력부(140)는 버튼, 모션 인식 장치, 터치 패드 등으로 구현될 수 있다. 도 3의 실시 예에서, 마이크(110)가 음성 입력 기능을 수행하고 있는바, 입력부(140)에서는 음성 입력을 제외한 나머지 사용자 명령을 입력받는 기능을 수행할 수 있다. 또한, 입력부(140)가 터치 패드로 구현되는 경우, 디스플레이(130)와 결합하여 상호 레이어 구조를 이루는 터치 스크린의 형태로 구현될 수 있다. 터치 스크린은 터치 입력 위치, 면적, 터이 입력의 압력 등을 검출할 수 있다.
통신부(150)는 외부 장치와 통신을 수행한다. 예를 들어, 외부 장치는 서버(200), 클라우드 저장소, 네트워크 등으로 구현될 수 있다. 통신부(150)는 외부 장치에 음성 인식 결과를 송신하고, 대응되는 정보를 외부 장치로부터 수신할 수 있다. 통신부(150)는 음성 인식을 위한 언어 모델을 외부 장치로부터 수신할 수도 있다.
이를 위해, 통신부(150)는 근거리 무선 통신 모듈(미도시), 무선 통신 모듈(미도시) 등과 같은 다양한 통신 모듈을 포함할 수 있다. 여기에서, 근거리 무선 통신 모듈이란 블루투스(Bluetooth), 지그비(Zigbee) 등과 같은 근거리 무선 통신 방식에 따라, 근거리에 위치한 외부 기기와 통신을 수행하기 위한 모듈이다. 또한, 무선 통신 모듈이란 WiFi, WiFi direct, IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 통신을 수행하는 모듈이다. 이 밖에 무선 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution), LTE-A(LTE Advanced) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있다.
메모리(160)는 전자 장치(100)를 구동하기 위한 다양한 모듈, 소프트웨어, 데이터를 저장할 수 있다. 예를 들어, 메모리(160)에는 사용자의 음성을 인식하는데 이용될 수 있는 음향 모델(Acoustic Model, AM) 및 언어 모델(Language Model, LM)이 저장될 수 있다.
메모리(160)는 전자 장치(100)를 동작시키기 위해 필요한 각종 프로그램 등이 저장되는 저장매체로서, 플래쉬 메모리, HDD(Hard Disk Drive), SSD (Solid State Drive) 등의 형태로 구현 가능하다. 예를 들어, 메모리(160)는 전자 장치(100)의 동작 수행을 위한 프로그램을 저장하기 위한 ROM, 전자 장치(100)의 동작 수행에 따른 데이터를 일시적으로 저장하기 위한 RAM을 구비할 수 있다.
메모리(160)에는 디스플레이(130)에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터가 저장될 수 있다. 또한, 메모리(160)에는 특정 서비스를 수행하기 위한 프로그램, 어플리케이션 및 데이터가 저장될 수 있다. 예를 들어, 메모리(160)에는 지도 어플리케이션, 교통편 예약 어플리케이션, 음악 어플리케이션, 스케줄 관리 어플리케이션 등이 저장될 수 있다.
메모리(160)는 사용자의 음성에 대응되는 각종 응답 메시지를 음성 또는 텍스트 데이터로 기저장하고 있을 수 있다. 전자 장치(100)는 수신된 사용자 음성(특히, 사용자 제어 명령)에 대응되는 음성 및 텍스트 데이터 중 적어도 하나를 메모리(160)로부터 독출하여 디스플레이(130) 또는 스피커(170)로 출력할 수도 있다.
스피커(170)는 음성을 출력할 수 있다. 예를 들어, 스피커(170)는 각종 오디오 데이터뿐만 아니라 알림 음이나 음성 메시지를 출력할 수 있다. 본 발명의 일 실시 예에 따른 전자 장치(100)는 대화형 음성 인식 기능을 제공하기 위한 출력부의 하나로 스피커(170)를 포함할 수 있다. 스피커를 통해 전자 장치(100)는 사용자에게 전자 장치(100)와 대화하는 듯한 사용자 경험을 제공할 수 있다. 스피커(170)는 전자 장치(100)에 내장될 수도 있으며, 잭 등과 같은 출력 포트의 형태로 구현될 수도 있다.
프로세서(120)는 전자 장치(100)의 상술한 구성들을 제어할 수 있다. 예를 들어, 프로세서(120)는 판단된 사용자의 발화 의도에 대응되는 동작을 수행하는 어플리케이션의 실행 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
프로세서(120)는 단일 CPU로 구현되어 음성 인식 동작, 언어 이해 동작, 대화 관리 동작, 응답 생성 동작 등을 수행할 수도 있고, 복수의 프로세서 및 특정 기능을 수행하는 IP로 구현될 수도 있다. 프로세서(120)는 전통적인 은닉 마코프 모델(Hidden Markov Model, HMM) 기반의 음성 인식을 수행할 수도 있고, 딥 신경망(Deep Neural Network, DNN)과 같은 딥러닝 기반의 음성 인식을 수행할 수도 있다.
또한, 프로세서(120)는 음성 인식 및 신뢰도 측정에 빅데이터 및 사용자별 히스토리 데이터를 이용할 수 있다. 이를 통해, 프로세서(120)는 빅데이터로 학습된 음성 인식 모델을 사용함과 동시에 음성 인식 모델을 개인화시킬 수 있다. 예를 들어, 프로세서(120)는 학습된 음향 모델(AM)을 이용하여 개체명의 신뢰도를 판단할 수 있고, 학습된 언어 모델(LM)을 이용하여 의도의 신뢰도를 판단할 수 있다.
프로세서(120)는 사용자 음성을 실시간으로 인식할 수 있다. 그리고 프로세서(120)는 현재까지 인식된 중간 인식 결과를 이용하여 사용자의 발화 의도를 판단할 수 있다. 예를 들어, 프로세서(120)는 사용자 음성에 포함된 적어도 하나의 단어(핵심어)를 바탕으로 사용자의 발화 의도를 판단할 수 있다.
이어서, 프로세서(120) 판단된 발화 의도에 대응되는 동작을 수행할 수 있다. 예를 들어, 프로세서(120)는 판단된 발화 의도에 대응되는 응답 정보를 제공할 수 있다. 다른 예로, 프로세서(120)는 판단된 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션을 실행시킬 수 있다.
그리고, 프로세서(120)는 사용자 음성에 대한 중간 인식 처리가 진행된 이후에 추가로 발화된 사용자 음성으로부터 응답 정보를 갱신할 수 있다. 즉, 프로세서(120)는 발화 의도에 대응되는 동작이 수행되는 동안(예를 들어, 응답 정보가 제공되는 동안) 추가로 입력된 사용자 음성을 기존에 입력된 사용자 음성과 함께 재인식할 수 있다. 따라서, 프로세서(120)는 중간 인식 처리로 판단된 사용자의 발화 의도가 맞는지 판단할 수 있다.
예를 들어, 프로세서(120)는 응답 정보가 제공되는 동안 적어도 하나의 단어가 입력된 이후 발화된 추가 단어를 바탕으로 응답 정보를 갱신할 수 있다. 추가 단어를 바탕으로 판단한 사용자의 발화 의도가 기판단된 발화 의도와 일치할 경우, 프로세서(120)는 더욱 정밀한 정보를 제공할 수 있다. 반대로 발화 의도가 일치하지 않을 경우에, 프로세서(120)는 기존 응답 정보 대신에 추가 단어를 바탕으로 판단한 사용자의 발화 의도에 대응되는 응답 정보를 제공할 수 있다.
프로세서(120)는 실시간으로 사용자의 음성을 인식하고, 인식된 사용자 음성으로부터 복수의 후보 발화 의도를 선정할 수 있다. 복수의 후보 발화 의도 중 하나가 기설정된 신뢰도 이상의 값을 가지면, 프로세서(120)는 기설정된 신뢰도 이상의 값을 갖는 발화 의도를 사용자의 발화 의도로 판단할 수 있다. 현재까지 인식된 사용자 음성만으로도 사용자의 발화 의도를 판단할 수 있는지를 실시간으로 모니터함으로써, 프로세서(120)는 사용자에게 응답하는데 소요되는 시간을 줄일 수 있다.
프로세서(120)는 빅데이터 및 사용자로부터 입력받아 저장한 음성 데이터를 이용하여, 특정 단어가 입력된 경우 사용자가 검색하고자 하는 정보 또는 실행하고자 하는 동작이 무엇인지 통계적으로 판단할 수 있다. 이러한 통계적 판단이 수치화된 것이 신뢰도이다. 예를 들어, 프로세서(120)는 학습된 음향 모델(AM)을 이용하여 개체명의 신뢰도를 판단할 수 있고, 학습된 언어 모델(LM)을 이용하여 의도의 신뢰도를 판단할 수 있다.
빠른 응답을 제공하기 위하여 프로세서(120)는 미리 사용자 발화 의도에 대응되는 동작을 준비할 수 있다. 프로세서(120)는 복수의 후보 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 준비 동작을 개시할 수 있다. 예를 들어, 신뢰도가 가장 높은 발화 의도가 서울특별시 서초구에 소재한 사무실의 위치를 지도에서 검색하고자 하는 것이라면, 프로세서(120)는 지도 어플리케이션을 실행하거나, 전자 장치(100)의 GPS 기능을 활성화할 수 있다.
복수의 후보 발화 의도 중 하나의 신뢰도가 기설정된 값 이상이면, 프로세서(120)는 해당 발화 의도를 사용자의 발화 의도로 판단할 수 있다. 그리고, 프로세서(120)는 판단된 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
또한, 프로세서(120)는 판단된 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보가 존재하면, 사용자가 추가 정보가 포함된 음성을 발화하도록 유도하는 UI를 표시하도록 디스플레이(130)를 제어할 수 있다. 이를 통해 프로세서(120)는 대화턴이 추가로 발생하는 것을 방지하고, 이번 대화턴에 사용자가 모든 정보를 발화하도록 유도할 수 있다.
복수의 후보 발화 의도 모두의 신뢰도가 기설정된 값 미만이면, 프로세서(120)는 복수의 후보 발화 의도를 포함하는 UI를 표시하여 사용자가 직접 발화 의도를 선택하도록 할 수도 있다. 그리고 프로세서(120)는 사용자에 의해 선택된 발화 의도에 대응되는 동작을 수행할 수 있다. 이러한 실시 예는 사용자 음성으로부터 의도 판단을 할 수 있는 문장이 아닌 단순 개체명만이 인식된 경우에 보다 유용하게 사용될 수 있다.
더욱 구체적인 프로세서(120)의 동작에 대해서는 이하에서 예시 도면과 함께 다시 설명하기로 한다.
도 4는 본 개시의 일부 실시 예에 따른 프로세서(120)의 블록도이다. 도 4를 참조하면, 일부 실시 예에 따른 프로세서(120)는 데이터 학습부(121) 및 데이터 인식부(122)를 포함할 수 있다. 프로세서(120)는 전자장치(100)에 포함되거나 또는 서버(200)에 포함될 수 있다.
실시 형태에 따라 데이터 학습부(121)의 적어도 일부 및 데이터 인식부(122)의 적어도 일부는 소프트웨어 모듈로 구현되거나 또는 하드웨어 칩 형태로 제작되어 전자장치(100) 또는 서버(200)에 탑재될 수 있다.
데이터 학습부(121)는 음성 인식, 언어 이해, 사용자의 발화 의도 판단을 위한 기준을 학습할 수 있다. 프로세서(120)는 학습된 기준에 따라 입력된 사용자 음성을 분석하여 사용자의 발화 의도를 판단하고, 대응되는 응답 정보를 생성할 수 있다. 데이터 학습부(121)는 사용자 음성을 인식하기 위하여 어떠한 데이터를 이용할 것인지 결정할 수 있다. 또한, 데이터 학습부(121)는 인식된 사용자 음성을 이해하여 사용자의 발화 의도를 판단하기 위해 어떠한 데이터를 이용할 것인지 결정할 수 있다. 데이터 학습부(121)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써 음성 인식, 사용자 발화 의도 판단을 위한 기준을 학습할 수 있다. 구체적으로 데이터 학습부(121)는 학습에 이용될 데이터를 다른 외부 서버 또는 전자장치로부터 획득할 수 있다.데이터 인식부(122)는 학습된 데이터 인식 모델을 이용하여, 소정의 데이터로부터 상황을 인식할 수 있다. 데이터 인식부(122)는 학습에 의한 기설정된 기준에 따라 소정의 데이터를 획득하고, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델을 이용할 수 있다. 예를 들어, 학습된 음향 모델 및 언어 모델을 이용하여, 데이터 인식부(122)는 입력된 사용자 음성을 인식할 수 있다. 그리고 인식된 사용자 음성에 기초하여 데이터 인식부(122)는 사용자의 발화 의도를 판단할 수 있다. 각 사용자에 대한 음성 인식 및 발화 의도 결과 값으로 획득된 데이터를 재차 입력 값으로 이용하여, 데이터 인식부(122)는 데이터 인식 모델을 갱신할 수 있다. 이와 같이, 데이터 인식부(122)는 음성 인식 및 발화 의도에 대한 신뢰도 측정 등에 빅데이터 및 사용자별 히스토리 데이터를 이용할 수 있다. 프로세서(120)는 빅데이터로 학습된 음성 인식 모델을 사용함과 동시에 음성 인식 모델을 개인화시킬 수 있다.
데이터 학습부(121) 및 데이터 인식부(122) 중 적어도 하나는, 하나 또는 복수의 하드웨어 칩 형태로 제작되어 전자 장치(100)에 탑재될 수 있다. 예를 들어, 데이터 학습부(121) 및 데이터 인식부(122) 중 적어도 하나는 인공 지능(Artifical Intelligence, AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 그래픽 전용 프로세서(예 : GPU)의 일부로 제작되어 전술한 각종 전자장치(100)에 탑재될 수도 있다. 이 때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 머신러닝과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다. 도 4의 실시 예에서는 데이터 학습부(121) 및 데이터 인식부(122)가 모두 전자 장치(100)에 탑재된 경우를 도시하였으나, 이들은 각각 별개의 장치에 탑재될 수도 있다. 예를 들어, 데이터 학습부(121) 및 데이터 인식부(122) 중 하나는 전자 장치(100)에 포함되고, 나머지 하나는 서버(200)에 포함될 수 있다. 또한 데이터 학습부(121) 및 데이터 인식부(122)는 서로 유선 또는 무선으로 연결되어, 데이터 학습부(121)가 구축한 모델 정보가 데이터 인식부(122)로 제공될 수 있고, 데이터 인식부(122)로 입력된 데이터가 추가 학습 데이터로 데이터 학습부(121)로 제공될 수도 있다.
예를 들면 전자장치(100)는 데이터 인식부(122)를 포함하며, 외부의 서버(200)가 데이터 학습부(121)를 포함할 수 있다. 서버(120)는 사용자의 의도를 판단하기 위한 기준을 학습할 수 있으며, 전자장치(100)는 서버(200)에 의한 학습 결과에 기초하여 사용자가 발화한 음성의 의도를 판단할 수 있다.
서버(200)의 데이터 학습부(121)는 사용자 의도를 판단하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 사용자 의도를 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 데이터 학습부(121)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 사용자 의도를 판단하기 위한 기준을 학습할 수 있다.
그러나, 이는 일 실시예에 불과할 뿐, 전자장치(100)가 데이터 학습부(121)를 포함할 수 있으며, 서버와 같은 외부 장치가 데이터 인식부(122)를 포함할 수 있다.
한편, 데이터 학습부(121) 및 데이터 인식부(122) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(121) 및 데이터 인식부(122) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
도 5a는 본 개시의 일부 실시 예에 따른 데이터 학습부(121)의 블록도이다. 도 5a를 참조하면, 일부 실시 예에 따른 데이터 학습부(121)는 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5)를 포함할 수 있다.
데이터 획득부(121-1)는 상황 판단에 필요한 데이터를 획득할 수 있다. 예를 들어, 데이터 획득부(121-1)는 마이크(110)를 통해 입력된 사용자 음성 신호를 디지털 신호로 변환하여 음성 데이터를 획득할 수 있다. 그리고, 데이터 획득부(121-1)는 서버(200) 또는 인터넷과 같은 네트워크에서 학습용 음성 데이터를 수신할 수도 있다.
전처리부(121-2)는 상황 판단을 위한 학습에 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(121-2)는 후술할 모델 학습부(121-4)가 상황 판단을 위한 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기설정된 포맷으로 가공할 수 있다.
예를 들어, 전처리부(121-2)는 입력된 사용자 음성에 대해 인식 대상이 되는 구간을 추출할 수 있다. 그리고, 전처리부(121-2)는 잡음 제거, 특징 추출 등을 수행하여 음성 데이터를 생성할 수 있다.
다른 예로, 전처리부(121-2)는 입력된 사용자 음성의 주파수 성분을 분석하여 일부 주파수 성분을 강화하고, 나머지 주파수 성분을 억제하는 방식으로 음성 인식에 적합하도록 음성 데이터를 생성할 수도 있다.
학습 데이터 선택부(121-3)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(121-4)에 제공될 수 있다. 학습 데이터 선택부(121-3)는 상황 판단을 위한 기설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(121-3)는 후술할 모델 학습부(121-4)에 의한 학습에 의해 기설정된 기준에 따라 데이터를 선택할 수도 있다.
예를 들어, 학습 초기에는 학습 데이터 선택부(121-3)가 전처리된 음성 데이터들 중 유사도가 높은 음성 데이터를 제거할 수 있다. 즉, 초기 학습을 위하여 학습 데이터 선택부(121-3)는 구분하기 쉬운 기준을 학습하도록 유사도가 낮은 음성 데이터들을 선택할 수 있다.
다른 예로, 학습 데이터 선택부(121-3)는 특정 언어로 발화된 음성 데이터만을 선택할 수 있다. 언어별로 발화 특성이 상이하기 때문에 특정 언어로 발화된 음성 데이터 세트를 선택함으로써, 학습 데이터 선택부(121-3)는 모델 학습부(121-4)가 선택된 특정 언어에 적합한 기준을 학습하도록 할 수 있다.
반대로, 학습 데이터 선택부(121-3)는 각 언어의 특징이 반영된 음성 데이터를 선택할 수도 있다. 이를 통해, 모델 학습부(121-4)는 음성 데이터가 어떠한 언어에 해당하는지에 대한 기준을 학습할 수 있다.
예를 들어, 학습 데이터 선택부(121-3)는 특정 사용자의 음성 데이터만을 선택하여 화자 종속(speaker dependent) 또는 화자 적응(speaker adoption) 인식을 위한 기준을 모델 학습부(121-4)가 학습하도록 할 수 있다.
그리고, 학습 데이터 선택부(121-3)는 학습에 의해 기설정된 기준 중 하나를 공통으로 만족하는 전처리된 음성 데이터들을 선택할 수 있다. 이를 통해, 모델 학습부(121-4)는 이미 학습된 기준과는 상이한 다른 기준을 학습할 수 있다.
모델 학습부(121-4)는 학습 데이터에 기초하여 상황을 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(121-4)는 상황 판단을 위하여 어떤 학습 데이터를 이용해야 하는 지에 대한 기준을 학습할 수도 있다.
예를 들어, 모델 학습부(121-4)는 복수의 음성 데이터들을 비교하여 음소, 음절, 모음 등을 구분하는 물리적인 특징들을 학습할 수 있다. 이를 통해 모델 학습부(121-4)는 음소와 같은 소리 단위를 구분하는 음향 모델(AM)을 구축할 수 있다. 또한, 모델 학습부(121-4)는 복수의 음성 데이터들을 비교하여 단어나 어휘적 쓰임새를 학습할 수 있다. 이를 통해 모델 학습부(121-4)는 언어 모델(LM)을 구축할 수 있다.
모델 학습부(121-4)는 상황 판단에 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 음성 데이터 등)을 입력 받아 미리 구축된 모델일 수 있다. 다른 예로, 데이터 인식 모델은 빅데이터를 이용하여 미리 구축된 음향 모델(AM) 또는 언어 모델(LM)일 수 있다. 모델 학습부(121-4)는 특정 사용자의 음성 데이터를 학습하여, 화자 독립적인 미리 구축된 음향 모델(AM) 또는 언어 모델(LM)을 개인화된 음향 모델(AM) 또는 언어 모델(LM)로 발전시킬 수도 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 데이터 인식 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 데이터 인식 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 데이터 인식 모델에는, 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델 들이 포함될 수 있으며, 전술한 예에 특별히 한정되지는 않는다.다양한 실시 예에 따르면, 모델 학습부(121-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입별로 기분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기분류되어 있을 수 있다.
또한, 모델 학습부(121-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
예를 들어, 모델 학습부(121-4)는 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning) 을 통하여 데이터 인식 모델을 학습시킬 수 있다. 다른 예로, 모델 학습부(121-4)는 별도의 지도 없이 상황 판단을 위해 필요한 데이터의 종류를 스스로 학습함으로써 상황 판단을 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또 다른 예로, 모델 학습부(121-4)는 학습에 따른 상황 판단의 결과가 올바른지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(121-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(121-4)는 학습된 데이터 인식 모델을 전자 장치(100)의 메모리(160)에 저장할 수 있다. 또는, 모델 학습부(121-4)는 학습된 데이터 인식 모델을 전자 장치(100)와 유선 또는 무선 네트워크로 연결되는 서버(200)의 메모리에 저장할 수도 있다.
이 경우, 학습된 데이터 인식 모델이 저장되는 메모리(160)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리(160)는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 예를 들어, 프로그램은 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(121-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(121-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기설정된 데이터일 수 있다.
초기 인식 모델 구성 단계에서, 평가 데이터는 물리적 특징이 상이한 음소를 포함하는 음성 데이터일 수 있다. 이후에 평가 데이터는 유사도가 점점 일치하는 음성 데이터 세트로 대체될 수 있다. 이를 통해 모델 평가부(121-5)는 데이터 인식 모델의 성능을 점차적으로 검증할 수 있다.
예를 들어, 모델 평가부(121-5)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(121-5)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(121-5)는 각각의 학습된 음성 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(121-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
한편, 데이터 학습부(121) 내의 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 특정 기능을 위한 IP의 일부로 제작되어 전술한 각종 전자 장치(100)에 탑재될 수도 있다.
또한, 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5) 중 일부는 전자 장치(100)에 포함되고, 나머지 일부는 서버(200)에 포함될 수 있다.
한편, 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(121-1), 전처리부(121-2), 학습 데이터 선택부(121-3), 모델 학습부(121-4) 및 모델 평가부(121-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
도 5b는 본 개시의 일부 실시 예에 따른 데이터 인식부(122)의 블록도이다.
도 5b를 참조하면, 일부 실시예에 따른 데이터 인식부(122)는 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5)를 포함할 수 있다
데이터 획득부(122-1)는 상황 판단에 필요한 데이터를 획득할 수 있으며, 전처리부(122-2)는 상황 판단을 위해 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(122-2)는 후술할 인식 결과 제공부(122-4)가 상황 판단을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기설정된 포맷으로 가공할 수 있다.
인식 데이터 선택부(122-3)는 전처리된 데이터 중에서 상황 판단에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(122-4)에게 제공될 수 있다. 인식 데이터 선택부(122-3)는 상황 판단을 위한 기설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(122-3)는 후술할 모델 학습부(142-4)에 의한 학습에 의해 기설정된 기준에 따라 데이터를 선택할 수도 있다.
인식 결과 제공부(122-4)는 선택된 데이터를 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 인식 결과 제공부(122-4)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(122-4)는 인식 데이터 선택부(122-3)에 의해 선택된 데이터를 입력 값으로 이용함으로써, 선택된 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.
예를 들어, 인식 결과 제공부(122-4)는 입력된 사용자 발화를 데이터 인식 모델에서 결정된 구분 기준에 따라 인식할 수 있다. 그리고 인식된 사용자 음성을 기초로 프로세서(120)가 사용자의 발화 의도를 판단할 수 있도록 한다. 다른 예로, 인식 결과 제공부(122-4)는 데이터 인식 모델을 이용하여 입력된 사용자 발화에서 핵심어를 인식할 수 있다. 인식된 핵심어를 기초로 프로세서(120)는 사용자의 발화 의도에 대응되는 동작을 수행할 수 있다. 그리고 프로세서(120)는 동작 수행에 필요한 추가 정보가 포함된 핵심어를 사용자가 발화하도록 유도할 수 있다.
모델 갱신부(122-5)는 인식 결과 제공부(122-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록할 수 있다. 예를 들어, 모델 갱신부(122-5)는 인식 결과 제공부(122-4)에 의해 제공되는 인식 결과를 모델 학습부(141-4)에게 제공함으로써, 모델 학습부(141-4)가 데이터 인식 모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(122) 내의 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 특정 기능을 위한 IP의 일부로 제작되어 전술한 각종 전자 장치(100)에 탑재될 수도 있다.
또한, 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 중 일부는 전자 장치(100)에 포함되고, 나머지 일부는 서버(200)에 포함될 수 있다.
한편, 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(122-1), 전처리부(122-2), 인식 데이터 선택부(122-3), 인식 결과 제공부(122-4) 및 모델 갱신부(122-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
이하에서는 도면을 참조하여 프로세서(120)의 동작에 대해 보다 구체적으로 설명하기로 한다.
본 개시의 일 실시 예에 따르면, 프로세서(120)는 사용자 음성이 입력되는 동안 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단할 수 있다. 구체적으로, 사용자 음성에 포함된 적어도 하나의 단어에는 의도(intent)를 나타내는 단어와 개체명(slot)을 나타내는 단어가 포함될 수 있다. 개체명은 장소, 타입, 시간, 출발지, 목적지와 같은 정보를 알 수 있는 단어를 말한다. "I'm hungry. Is there a good steak house near Seoul Station?"이라는 사용자 음성을 예를 들면, 'hungry'는 의도를 나타내는 단어로 분류될 수 있다. 그리고, 'Seoul Station', 'steak'와 같은 단어는 개체명을 나타내는 단어로 분류될 수 있다.
프로세서(120)는 의도 및 개체명을 나타내는 각각의 단어들의 신뢰도에 기반하여 사용자 음성에 대응되는 동작을 결정할 수 있다. 예를 들어, 의도 및 개체명을 나타내는 단어들의 신뢰도가 모두 기설정된 값 미만일 경우, 프로세서(120)는 사용자 음성이 추가로 입력되기를 기다릴 수 있다.
만일 특정 의도에 대한 신뢰도가 기설정된 값 이상이 되면, 프로세서(120)는 특정 의도에 대응되는 동작 실행을 위한 준비에 착수할 수 있다. 그리고 프로세서(120)는 동작 실행에 추가로 필요한 개체명을 표시하도록 디스플레이(130)를 제어할 수 있다.
만일 특정 개체명에 대한 신뢰도가 기설정된 값 이상이 되면, 프로세서(120)는 특정 개체명과 관련된 복수의 후보 발화 의도를 표시하도록 디스플레이(130)를 제어할 수 있다.
의도 및 개체명에 대한 신뢰도가 기설정된 값 이상이어서 디스플레이(130)에 응답 정보가 표시된 경우, 프로세서(120)는 추가 발화된 사용자 음성을 이용하여 응답 정보를 갱신할 수 있다. 신뢰도 값에 변화가 없다면, 프로세서(120)는 현재 디스플레이(130)에 표시된 응답 정보를 유지할 수 있다. 반대로 신뢰도 값에 변화가 있다면, 프로세서(120)는 현재 디스플레이(130)에 표시된 응답 정보를 갱신할 수 있다. 즉, 프로세서(120)는 갱신된 응답 정보를 표시하도록 디스플레이(130)를 제어할 수 있다.
도 6은 의도를 나타내는 단어가 먼저 인식되고, 개체명을 나타내는 단어가 추가적으로 인식되어 응답 정보를 갱신하는 실시 예를 도시한 도면이다. 도 6의 실시 예에서 응답 정보가 표시되기 위한 임계값인 신뢰도의 기설정된 값은 0.8로 가정하여 설명하기로 한다. 또한, 대응 동작 준비를 위한 임계값을 0.7로 설정한 경우를 가정하기로 한다. 이와 같이, 도 6의 실시 예에서는 2개의 임계값이 설정된 것을 예시하였으나, 하나의 임계값만이 설정될 수도 있다. 또한, 대응 동작이 여러 단계에 걸쳐 준비될 수 있는 경우, 프로세서(120)는 복수의 임계값을 설정하고, 각 단계를 진행하기 위한 트리거로 이용할 수도 있다.
프로세서(120)는 빅데이터 및 사용자 히스토리 데이터를 기초로 신뢰도 판단을 위한 신뢰도 측정 모델을 생성할 수 있다. 예를 들어, 신뢰도 측정 모델 생성에는 상술한 데이터 학습부(121) 및 데이터 인식부(122)가 이용될 수 있다.
도 6을 참조하면, 프로세서(120)는 사용자가 현재까지 발화한 "지금 배가"라는 사용자 음성으로부터 복수의 발화 의도를 추출할 수 있다. 예를 들어, 프로세서(120)는 "지금"이라는 단어로부터 시간을 물어보는 의도(Search.Time)를 추출할 수 있다. 또한, 프로세서(120)는 "배가"라는 단어로부터 병원을 찾는 의도(Search.Hospital) 및 식당을 찾는 의도(Search.Restaurant)를 추출할 수 있다. 프로세서(120)는 추출된 복수의 발화 의도의 신뢰도를 각각 판단할 수 있다. 판단된 신뢰도가 모두 기설정된 값인 0.8 미만이기 때문에, 프로세서(120)는 추가적인 사용자 음성이 입력되기까지 대기할 수 있다.
이어서 사용자가 "지금 배가 고픈데"까지 추가로 발화한 것을 기초로, 프로세서(120)는 사용자의 발화 의도가 식당을 찾는 의도(Search.Restaurant)에 가장 가깝다는 것을 판단할 수 있다. 프로세서(120)는 현재까지 발화된 사용자 음성으로부터 신뢰도를 판단할 수 있다. 판단된 신뢰도가 0.7이기 때문에 프로세서(120)는 식당을 찾는 동작을 처리하기 위한 준비를 개시할 수 있다. 예를 들어, 프로세서(120)는 지도 어플리케이션을 실행시키거나, GPS 기능을 활성화 시킬 수 있다.
사용자의 발화가 종료되기 전까지, 프로세서(120)는 중간 인식된 사용자 음성과 중간 인식 이후 추가 발화된 사용자 음성을 함께 재인식할 수 있다. 재인식된 사용자 음성을 기초로 프로세서(120)는 의도 및 개체명을 찾고 각각의 신뢰도를 재차 판단할 수 있다.
"지금 배가 고픈데 서울역 근처에"까지 입력된 사용자 음성을 기초로, 프로세서(120)는 식당을 찾는 의도(Search.Restaurant)의 신뢰도를 0.8로 조정하고, 위치에 관련된 개체명인 '서울역'을 추출할 수 있다. 도 6의 실시 예에서는 의도의 신뢰도가 0.8 이상이면 응답 정보를 제공하는 것으로 설정되었기 때문에, 프로세서(120)는 판단된 사용자 발화 의도에 대응되는 응답 정보를 표시하도록 디스플레이(130)를 제어할 수 있다. 예를 들어, 프로세서(120)는 식당을 찾기 위하여 지도 어플리케이션을 실행할 수 있으며, 추출된 '서울역'이라는 개체명을 이용하여 지도 어플리케이션의 검색 지역을 '서울역'으로 설정할 수 있다. 그리고 프로세서(120)는 서울역 근처의 지도 정보를 제공하는 어플리케이션 실행 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
"지금 배가 고픈데 서울역 근처에 스테이크 집"까지 입력된 사용자 음성을 기초로, 프로세서(120)는 추가로 타입에 관련된 개체명인 '스테이크 집'을 추출할 수 있다. 프로세서(120)는 추가 발화된 단어를 기초로 응답 정보를 갱신할 수 있다. 예를 들어, 프로세서(120)는 응답 정보로 제공중인 서울역 근처의 지도 정보가 표시된 어플리케이션 실행 화면을 스테이크 집에 해당하는 위치들에 화살표가 표시된 화면으로 갱신할 수 있다.
"지금 배가 고픈데 서울역 근처에 스테이크 집 없을까"까지 입력된 사용자 음성을 기초로, 프로세서(120)는 추가로 추출된 의도나 개체명이 없으며, 기존에 판단된 의도나 개체명의 신뢰도에도 변화가 없음을 판단할 수 있다. 판단된 사용자의 발화 의도가 동일하며 추가 정보가 입력되지 않았기 때문에, 프로세서(120)는 제공한 응답 정보를 유지할 수 있다. 이와 같이, 프로세서(120)는 사용자의 발화가 완료되기 전에 이미 사용자의 발화 의도를 판단할 수 있다. 따라서, 프로세서(120)는 사용자에게 응답 정보를 제공하는데 소요되는 시간을 줄일 수 있다.
도 7은 도 6의 실시 예에 따라 디스플레이(130)를 통해 제공되는 화면을 도시한 도면이다. 도 6에서 전자 장치(100)는 스마트폰으로 구현된 예를 도시하였다. 도 7은 전자 장치(100)를 시간 순서에 따라 왼쪽에서 오른쪽으로 도시하였다.
도 7의 실시 예에서, 프로세서(120)는 현재까지 인식된 사용자 음성을 디스플레이(130) 상단에 텍스트로 표시하도록 디스플레이(130)를 제어한다. 또한, 프로세서(120)는 음성 인식 기능이 활성화되었음을 알리는 이미지를 디스플레이(130) 하단에 표시하도록 디스플레이(130)를 제어한다. 그리고, 프로세서(120)는 응답 정보를 디스플레이(130) 중앙에 표시하도록 디스플레이(130)를 제어한다. 본 개시의 모든 실시 예가 도 7의 화면 배치와 동일한 구성 및 구도를 갖는 것으로 한정되지 않음은 물론이다.
도 7의 가장 왼쪽에 도시된 전자 장치(100)는 대응 동작 처리를 위한 준비를 하고 있다. 현재까지 인식된 "지금 배가 고픈데"라는 사용자 음성을 기초로, 프로세서(120)는 식당을 찾는 의도임을 판단할 수 있다. 식당을 찾는 의도의 신뢰도가 대응 동작 준비를 위한 임계값 이상으로 판단되었기 때문에, 프로세서(120)는 응답 정보 제공을 준비하기 위하여 지도 어플리케이션을 실행시킬 수 있다.
도 7의 왼쪽에서 두 번째로 도시된 전자 장치(100)는 응답 정보가 표시되기 위한 임계값 이상의 신뢰도를 갖는 발화 의도가 존재하는 것으로 판단하였다. 신뢰도가 기설정된 값 이상인 발화 의도 및 개체명에 해당하는 텍스트가 지도 어플리케이션 실행 화면 하단에 표시될 수 있다. 판단된 의도 및 개체명을 사용자에게 보여줌으로써, 프로세서(120)는 사용자의 피드백을 받을 수 있는 효과를 갖는다. 프로세서(120)는 판단된 의도 및 개체명에 대응되는 응답 화면인 서울역 주변의 지도 정보를 제공할 수 있다.
도 7의 왼쪽에서 세 번째로 도시된 전자 장치(100)는 사용자의 추가 발화된 음성에 포함된 단어를 이용하여 응답 정보를 갱신하였다. 프로세서(120)는 추가로 발화된 사용자 음성을 인식하여, 검색하고자 하는 식당의 타입 정보를 추출할 수 있다. 프로세서(120)는 제공 중이던 서울역 주변의 지도 정보를 스테이크 집들의 위치가 표시된 지도 정보로 갱신하여 제공할 수 있다.
도 7의 가장 오른쪽에 도시된 전자 장치(100)는 사용자의 추가 발화된 음성을 인식하였으나, 신뢰도에 변화가 없고 추가로 인식된 개체명 등이 없기 때문에, 이전에 제공하였던 응답 정보 화면을 유지한다. 따라서, 실질적으로 사용자가 받기를 원하는 응답 정보는 도 7의 왼쪽에서 세 번째로 도시된 시점에 이미 제공되었다. 즉, 본 개시의 일 실시 예에 따른 전자 장치(100)는 사용자 음성 입력이 완료되기 전에도 실시간으로 사용자의 음성을 인식하고, 신뢰도 검증을 통해 응답 정보를 제공/갱신할 수 있다.
도 8은 사용자의 추가 발화 음성을 인식하여 응답 정보를 변경하는 실시 예를 도시한 도면이다. 도 8의 가장 왼쪽의 도면에서, 프로세서(120)는 현재까지 인식된 "지금 배가 고픈데"라는 사용자 음성을 기초로 식당을 찾는 의도로 판단했다. 식당을 찾는 의도의 신뢰도가 대응 동작 준비를 위한 임계값 이상으로 판단되었기 때문에, 프로세서(120)는 응답 정보 제공을 준비하기 위하여 지도 어플리케이션을 실행시킬 수 있다.
도 8의 왼쪽에서 두 번째 도면을 참조하면, 프로세서(120)는 "지금 배가 고픈데 스테이크"라는 사용자 음성으로부터 '스테이크'라는 개체명을 추가로 검출할 수 있다. 식당을 찾는 의도의 신뢰도가 응답 정보 제공을 위한 임계값 이상으로 판단되었기 때문에, 프로세서(120)는 현재 사용자의 위치 근처에 존재하는 스테이크 집을 검색한 지도 어플리케이션 실행 화면이 표시되도록 디스플레이(130)를 제어할 수 있다.
프로세서(120)는 추가로 인식된 단어를 바탕으로 새로이 판단된 발화 의도가 기판단된 발화 의도인 식당 검색 의도와 상이함을 확인할 수 있다. 프로세서(120)는 새로이 판단된 발화 의도에 대응하는 응답 정보가 제공되도록 응답 정보 화면을 교체하는 방식으로 갱신할 수 있다.
도 8의 왼쪽에서 세 번째 도면을 참조하면, "지금 배가 고픈데 스테이크 레시피"라는 사용자 음성을 기초로, 프로세서(120)는 레시피를 찾는 의도를 새로이 검출할 수 있다. 그리고 프로세서(120)는 기존의 식당을 찾는 의도와 새로운 의도인 레시피를 찾는 의도 모두의 신뢰도를 다시 판단할 수 있다. 중간 인식된 사용자 음성 이후에 추가로 발화된 '레시피'라는 단어를 기초로, 프로세서(120)는 레시피를 찾는 의도의 신뢰도가 기설정된 값 이상이며, 식당을 찾는 의도의 신뢰도가 기설정된 값 미만임을 판단할 수 있다. 따라서, 프로세서(120)는 스테이크 레시피 검색 결과에 대한 응답 정보를 표시하도록 디스플레이(130)를 제어할 수 있다.
도 8의 가장 오른쪽에 도면을 참조하면, 프로세서(120)는 이전에 제공하였던 응답 정보 화면을 유지할 수 있다. 사용자의 추가 발화된 음성을 인식한 결과 신뢰도에 변화가 없고 추가로 인식된 개체명 등이 없기 때문이다. 실질적으로 사용자가 받기를 원하는 응답 정보는 도 8의 왼쪽에서 세 번째로 도시된 시점에 이미 제공되었다.
도 9는 개체명을 나타내는 단어가 먼저 인식되고, 개체명에 대응되는 복수의 발화 의도를 선택할 수 있는 UI를 표시하는 실시 예를 도시한 도면이다.
프로세서(120)는 현재까지 입력된 사용자 음성에 포함된 단어를 바탕으로 복수의 발화 의도를 예측할 수 있다. 그리고 프로세서(120)는 예측된 복수의 발화 의도의 신뢰도를 판단할 수 있다.
판단된 복수의 발화 의도의 신뢰도가 기설정된 값 미만이면, 프로세서(120)는 판단된 복수의 발화 의도를 포함하는 리스트 UI를 표시하도록 디스플레이(130)를 제어할 수 있다. 그리고 표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면, 프로세서(120)는 선택된 발화 의도에 대응되는 응답 정보를 표시하도록 디스플레이(130)를 제어할 수 있다.
도 9를 참조하면, 프로세서(120)는 "서"라는 사용자 음성으로부터 발화 의도를 예측할 수 있다. 예를 들어, 프로세서(120)는 "서"라는 음소가 가장 먼저 입력된 경우 시간을 물어보는 경우가 많았다는 히스토리 데이터를 이용하여, 시간을 물어보는 의도(Search.Time)를 예측할 수 있다. 하지만, 예측된 의도의 신뢰도가 0.1로 낮기 때문에 프로세서(120)는 아무런 동작 없이 사용자의 추가 발화를 대기할 수 있다.
이어서, 사용자가 "서울"까지 추가로 발화한 것을 기초로, 프로세서(120)는 위치에 관련된 개체명인 '서울'을 추출할 수 있다. 프로세서(120)는 추출된 '서울'과 관련된 복수의 발화 의도를 예측할 수 있다. 예를 들어, 프로세서(120)는 날씨를 검색하는 의도(Search.Weather), 길을 찾는 의도(Find.Path), 도시 정보를 검색하는 의도(Search.Cityinfo)를 발화 의도로 예측할 수 있다.
예측된 복수의 발화 의도들의 신뢰도가 모두 기설정된 값 미만이기 때문에. 프로세서(120)는 예측된 복수의 발화 의도들을 나열하여 표시하도록 디스플레이(130)를 제어할 수 있다. 만일 표시된 복수의 발화 의도 중 하나를 선택하는 사용자 입력이 수신되면, 프로세서(120)는 선택된 발화 의도에 대응되는 응답 정보를 제공할 수 있다. 예를 들어, 길을 찾는 의도를 선택하는 사용자 입력이 수신되면, 프로세서(120)는 네비게이션 실행 화면을 표시하도록 디스플레이(130)를 제어할 수 있다.
반대로 표시된 복수의 발화 의도 중 하나를 선택하는 사용자 입력이 수신되지 않으면, 프로세서(120)는 사용자의 추가 발화가 입력되기를 기다릴 수 있다. 도 9의 실시 예에서는 사용자 입력이 없던 경우를 예시하기로 한다.
"서울로 가는"까지 입력된 사용자 음성을 기초로, 프로세서(120)는 길을 찾는 의도의 신뢰도를 0.9로 조정할 수 있다. 그리고 프로세서(120)는 기설정된 값 이상인 신뢰도를 갖는 의도 및 개체명을 이용하여 네비게이션 어플리케이션을 실행시켜 서울로 가는 길을 검색할 수 있다.
이후에 "서울로 가는 길 알려줘"까지 입력된 사용자 음성을 바탕으로, 프로세서(120)는 신뢰도에 변화가 없음을 판단할 수 있다. 판단된 사용자의 발화 의도가 동일하며 추가 정보가 입력되지 않았는바, 프로세서(120)는 제공한 응답 정보를 유지할 수 있다. 프로세서(120)는 사용자의 발화가 완료되기 전에 이미 사용자의 발화 의도를 판단하여 빠르게 응답 정보를 제공할 수 있다.
도 10은 도 9의 실시 예에 따라 디스플레이(130)를 통해 제공되는 화면을 도시한 도면이다. 다만, 도 10에서는 발화 의도를 선택하는 사용자 입력이 존재하는 경우의 실시 예를 도시하였다. 도 10은 전자 장치(100)를 시간 순서에 따라 왼쪽에서 오른쪽으로 도시하였다.
도 10의 가장 왼쪽 도면을 참조하면, 프로세서(120)는 현재까지 인식된 "서"라는 사용자 음성을 기초로는 의도나 개체명을 판단할 수 없는 바, 추가 발화된 음성이 인식되기를 기다릴 수 있다.
프로세서(120)는 "서울"까지 입력된 사용자 음성을 기초로 위치를 나타내는 개체명인 '서울'을 인식할 수 있다. 그리고 프로세서(120)는 '서울'과 관련된 복수의 발화 의도를 예측할 수 있다. 예측된 복수의 발화 의도들의 신뢰도가 기설정된 값 미만으로 판단되면, 프로세서(120)는 복수의 발화 의도를 표시하여 사용자 선택을 받을 수 있다. 도 10의 왼쪽에서 두 번째 도면과 같이, 프로세서(120)는 '서울'이라는 개체명과 관련된 복수의 발화 의도에 해당하는 '날씨 검색', '네비게이션', '도시 정보'를 선택할 수 있는 리스트 UI를 표시하도록 디스플레이(130)를 제어할 수 있다.
도 10의 실시 예에서는 사용자가 '네비게이션'을 발화 의도에 대응된다고 선택한 경우를 가정하여 설명하기로 한다. 물론 도 9에서 설명한 것과 같이, 프로세서(120)는 추가 발화된 음성을 이용하여 발화 의도를 결정할 수도 있다.
프로세서(120)는 선택된 발화 의도에 대응되는 응답 화면을 제공할 수 있다. 도 10의 왼쪽에서 세 번째 도면과 같이, 프로세서(120)는 네비게이션 어플리케이션을 실행하여, 사용자의 현재 위치에서 서울까지의 경로를 검색할 수 있다.
프로세서(120)는 사용자의 선택에 의해 정확한 발화 의도를 알 수 있다. 따라서, 프로세서(120)는 도 10의 가장 오른쪽 도면과 같이 발화 완료된 사용자의 음성 데이터를 음성 인식 모델을 강화하기 위한 학습 데이터로 이용할 수 있다.
도 11은 판단된 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 사용자가 발화하도록 유도하는 UI를 표시하는 실시 예를 도시한 도면이다.
도 11의 가장 왼쪽 도면을 참조하면, 현재까지 입력된 사용자의 음성은 "부산 가는"임을 알 수 있다. 프로세서(120)는 현재까지 인식된 사용자 음성을 통해 길을 찾는 의도(Find.Path), 기차 예약 의도(Book.Train) 등의 의도를 판단할 수 있다. 판단된 의도들의 신뢰도가 기설정된 값 미만이면, 프로세서(120)는 도 11과 같이 사용자의 추가 발화를 대기할 수 있다.
"부산 가는 기차 예약해줘."라는 사용자의 음성을 기초로, 프로세서(120)는 사용자의 발화 의도가 기차 예약 의도임을 판단할 수 있다. 그리고, 프로세서(120)는 판단된 발화 의도에 대응되는 동작을 수행할 수 있다. 기차 예약 동작을 위해서 필요한 정보는 '출발지', '도착지', '시간'이다. 현재까지 발화된 사용자 음성을 기초로, 프로세서(120)는 필요한 정보 중 도착지가 부산이라는 것만을 판단할 수 있을 뿐이다.
종래의 가상 개인 비서 기능에서는 추가 정보가 필요한 경우, 사용자에게 각각의 필요한 정보에 대해 질문을 하여 답변을 받았다. 따라서, 필요한 추가 정보의 수만큼 추가 대화턴이 발생하는 문제점이 존재하였다.
본 개시의 일 실시 예에 따른 전자 장치(100)는 도 11의 왼쪽에서 두 번째 도면에 도시된 것과 같이, 대응되는 동작에 필요한 정보가 무엇인지, 필요한 정보가 입력되었는지를 알려주는 가이드 UI를 표시할 수 있다. 가이드 UI를 표시함으로써 프로세서(120)는 추가 대화턴 없이도 필요한 정보를 사용자가 발화하도록 유도할 수 있다.
도 11에 도시된 바와 같이, 프로세서(120)는 사용자가 추가 발화한 내용을 기초로 필요한 정보가 입력되었는지 판단할 수 있다. 그리고 프로세서(120)는 필요한 정보가 입력되는 대로 가이드 UI에 입력된 내용을 표시하도록 디스플레이(130)를 제어할 수 있다. 예를 들어, 프로세서(120)는 "내일 6시"라는 사용자의 추가 발화로부터 '시간' 필드에 '내일 6시'라는 표시를 추가할 수 있다. 또한, 프로세서(120)는 "수원에서 출발해"라는 사용자의 추가 발화로부터 '출발지' 필드에 '수원'이라는 표시를 추가할 수 있다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따른 전자 장치(100)는 가상 개인 비서의 응답 속도를 향상시킬 수 있다. 또한, 전자 장치(100)는 최소한의 대화턴으로 사용자가 의도한 동작을 수행할 수 있다. 이를 통해 사용자는 빠르면서도 정확한 가상 개인 비서 기능에 대한 사용자 경험을 획득할 수 있다.
상술한 바와 같이 전자 장치(100)가 사용자의 발화 의도를 판단하고, 대응되는 응답 정보를 생성하는 동작을 모두 수행할 수도 있으나, 서버(200)가 중심이 되어 가상 개인 비서 기능을 수행할 수도 있다. 즉, 전자 장치(100)는 입출력 동작만을 수행하고, 나머지 기능은 서버(200)가 수행하도록 구현될 수도 있다.
본 개시의 일 실시 예에 따른 사용자 발화 의도 판단 방법은 실시간으로 사용자 발화를 처리하여 의도를 판단하기 때문에, 서버(200)와 전자 장치(100) 사이의 빠른 통신 속도가 요구된다. 예를 들어, 전자 장치(100)에서 가상 개인 비서 기능이 실행되면 서버(200)와의 사이에 전용 통신 채널이 개설될 수 있다. 전자 장치(100)는 수신된 사용자 음성을 서버(200)로 전달할 수 있다. 서버(200)는 사용자 음성으로부터 발화 의도를 판단하고, 대응되는 응답 정보를 생성하여 전자 장치(100)로 전송할 수 있다. 전자 장치(100)는 수신한 응답 정보를 출력하여 사용자에게 제공할 수 있다.
도 12 내지 도 15는 본 개시의 다양한 실시 예에 따른 전자 장치(100)의 사용자 발화 의도 판단 방법을 판단하기 위한 도면이다.
도 12를 참조하면, 전자 장치(100)는 사용자가 발화한 사용자 음성을 입력받을 수 있다(S1210). 그리고 사용자의 음성이 수신되는 동안, 전자 장치(100)는 사용자 음성에 포함된 적어도 하나의 단어를 바탕으로 사용자의 발화 의도를 판단할 수 있다(S1220). 즉, 전자 장치(100)는 사용자의 발화가 완료되기 전에도 현재까지 입력된 사용자 음성을 기초로 실시간으로 발화 의도를 판단할 수 있다. 또한 판단된 발화 의도의 신뢰도를 측정하는 검증 과정을 거치기 때문에, 전자 장치(100)는 사용자의 발화 의도와 전혀 상이한 결과를 제공하지 않을 수 있다.
전자 장치(100)는 판단된 사용자의 발화 의도에 대응되는 응답 정보를 제공할 수 있다(S1230). 전자 장치(100)는 발화 의도에 대응되는 동작 수행 결과의 화면을 표시할 수 있다. 예를 들어, 전자 장치(100)는 오늘 날씨를 검색한 결과의 화면을 표시할 수 있다. 또한, 전자 장치(100)는 발화 의도에 대응되는 동작을 수행할 수도 있다. 예를 들어, 전자 장치(100)는 사용자 발화에 대응하여 알람을 설정할 수도 있다.
응답 정보가 제공되는 동안 적어도 하나의 단어가 입력된 이후에 발화된 추가 단어를 바탕으로, 전자 장치(100)는 응답 정보를 갱신할 수 있다(S1240). 전자 장치(100)는 현재까지 인식된 사용자 음성을 바탕으로 응답 정보를 제공하고, 이후에 추가 발화된 사용자 음성을 포함한 전체 사용자 음성을 바탕으로 사용자 발화 의도를 재차 판단할 수 있다. 따라서, 사용자의 발화가 추가로 이루어짐에 따라 전자 장치(100)는 실시간으로 응답 정보를 갱신하여 제공할 수 있다.
예를 들어, 사용자의 발화 의도를 정확히 판단한 경우라면, 전자 장치(100)는 추가 발화로부터 인식된 내용을 바탕으로 더욱 정확하고 상세한 응답 정보를 제공할 수 있다. 반대로, 전자 장치(100)는 추가 발화로부터 인식된 내용을 바탕으로 사용자의 발화 의도가 잘못 판단되었음을 인식할 수 있다. 그리고 전자 장치(100)는 새로이 판단된 사용자의 발화 의도에 대응되는 응답 정보로 갱신하여 제공할 수 있다.
도 13은 사용자의 발화 의도를 신뢰도 측정이라는 검증 과정을 통해 판단하는 실시 예를 도시한 흐름도이다. 도 13을 참조하면, 전자 장치(100)는 사용자가 발화한 사용자 음성을 입력받을 수 있다. 그리고 전자 장치(100)는 입력된 사용자의 음성을 인식할 수 있다(S1310).
전자 장치(100)는 현재까지 인식된 사용자 음성을 바탕으로 복수의 발화 의도를 추정할 수 있다(S1320). 예를 들어, 전자 장치(100)는 현재까지 인식된 사용자 음성으로부터 의도나 개체명에 해당하는 핵심어를 추출할 수 있다. 그리고 전자 장치(100)는 추출된 적어도 하나의 핵심어를 바탕으로 복수의 발화 의도를 추정할 수 있다.
이어서 전자 장치(100)는 추정된 복수의 발화 의도 각각의 신뢰도를 측정할 수 있다(S1330). 만일 복수의 발화 의도 모두의 신뢰도가 기설정된 기준 미만이면(S1330-N), 전자 장치(100)는 사용자의 추가 발화가 입력되기를 대기할 수 있다. 반대로 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면(S1330-Y), 전자 장치(100)는 검출된 발화 의도를 사용자의 발화 의도로 판단할 수 있다. 그리고 전자 장치(100)는 판단된 발화 의도에 대응하는 응답 정보를 제공할 수 있다(S1340).
이어서 전자 장치(100)는 사용자의 발화가 종료되었는지 판단할 수 있다(S1350). 만일 추가로 발화되는 사용자 음성이 존재하면(S1350-N), 전자 장치(100)는 추가 발화된 사용자 음성을 포함하는 전체 사용자 음성을 기초로 복수의 발화 의도를 재차 추정할 수 있다. 사용자의 발화가 종료된 것으로 판단되면(S1350-Y), 전자 장치(100)는 응답 정보 제공 상태를 유지하며 다음 사용자의 발화가 입력될 때까지 대기할 수 있다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치(100)의 사용자 발화 의도 판단 방법을 더욱 구체적으로 도시한 흐름도이다. 도 14를 참조하면, 전자 장치(100)는 사용자가 발화한 사용자 음성을 입력받을 수 있다. 그리고 전자 장치(100)는 입력된 사용자의 음성을 인식할 수 있다(S1410).
전자 장치(100)는 현재까지 인식된 사용자 음성을 바탕으로 복수의 발화 의도를 추정할 수 있다(S1420). 그리고 전자 장치(100)는 추정된 복수의 발화 의도 각각의 신뢰도를 측정할 수 있다(S1430). 예를 들어, 전자 장치(100)는 빅데이터 및 사용자의 히스토리 데이터를 이용하여 특정 단어가 입력된 경우 사용자의 발화 의도는 어떠했는지를 통계적으로 분석할 수 있다. 신뢰도는 통계적 분석 결과를 수치로 표현한 값일 수 있다. 예를 들어, 신뢰도는 0에서 1 사이의 값으로 정의될 수 있다.
전자 장치(100)는 사용자 음성에 대해 빠른 응답을 제공하기 위하여, 사용자의 발화 도중에 대응 동작 준비를 할 수 있다. 전자 장치(100)는 복수의 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 준비할 수 있다(S1440). 예를 들어, 전자 장치(100)는 백그라운드로 발화 의도에 대응되는 동작 수행에 이용되는 어플리케이션을 실행할 수 있다. 다른 예로, 전자 장치(100)는 발화 의도에 대응되는 동작 수행에 이용되는 전자 장치(100)의 구성 요소를 활성화할 수 있다.
만일 복수의 발화 의도 모두의 신뢰도가 기설정된 기준 미만이면(S1450-N), 전자 장치(100)는 사용자의 추가 발화가 입력되기를 대기할 수 있다. 반대로 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면(S1450-Y), 전자 장치(100)는 검출된 발화 의도를 사용자의 발화 의도로 판단할 수 있다. 그리고 전자 장치(100)는 판단된 발화 의도에 대응하는 동작을 위한 어플리케이션을 실행시킬 수 있다(S1460).
이어서 전자 장치(100)는 검출된 발화 의도에 대응되는 동작을 수행하는데 필요한 정보가 모두 사용자 음성으로부터 판단되었는지 확인할 수 있다(S1470). 예를 들어, 발화 의도가 음식 배달 주문이라면, 전자 장치(100)는 음식 종류, 배달 업체, 결재 수단 등의 정보가 필요하다. 다른 예로, 발화 의도가 기차 예매라면, 전자 장치(100)는 출발지, 도착지, 예매 시간, 결재 수단 등의 정보가 필요하다.
만일 동작 수행을 위하여 추가 정보가 필요하면(S1470-N), 전자 장치(100)는 추가 정보를 사용자가 발화하도록 유도하는 UI를 표시할 수 있다(S1480). 전자 장치(100)는 이번 대화턴에 사용자가 모든 정보를 발화하도록 유도함으로써 추가 대화턴 발생을 방지할 수 있다. 동작 수행을 위한 모든 정보가 수집된 경우(S1470-Y), 전자 장치(100)는 발화 의도에 대응된 동작을 수행할 수 있다(S1490).
도 15는 본 개시의 다른 실시 예에 따른 전자 장치(100)의 사용자 발화 의도 판단 방법을 구체적으로 도시한 흐름도이다. 도 15를 참조하면, 전자 장치(100)는 사용자가 발화한 사용자 음성을 입력받을 수 있다. 그리고 전자 장치(100)는 입력된 사용자의 음성을 인식할 수 있다(S1510).
전자 장치(100)는 현재까지 인식된 사용자 음성을 바탕으로 복수의 발화 의도를 추정할 수 있다(S1520). 그리고 전자 장치(100)는 추정된 복수의 발화 의도 각각의 신뢰도를 측정할 수 있다(S1530). 측정된 신뢰도가 기설정된 기준 이상인 발화 의도가 존재하는 경우(S1530-Y), 전자 장치(100)는 해당 발화 의도에 대응되는 응답 정보를 제공할 수 있다(S1560).
만일 복수의 발화 의도 모두의 신뢰도가 기설정된 기준 미만이면(S1530-N), 전자 장치(100)는 추청된 복수의 발화 의도를 포함하는 리스트 UI를 표시할 수 있다(S1540). 발화 의도 리스트를 표시하여 사용자 선택을 받는 것은 특히 의도에 해당하는 핵심어가 추출되지 않고, 개체명에 해당하는 핵심어만이 추출된 경우에 유용하게 이용될 수 있다. 사용자 선택이 입력되지 않으면(S1550-N), 전자 장치(100)는 사용자의 추가 발화를 기다릴 수 있다.
표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면(S1550-Y), 전자 장치(100)는 선택된 발화 의도에 대응되는 응답 정보를 제공할 수 있다(S1560). 사용자 입력을 통해 사용자의 발화 의도가 결정된 경우, 전자 장치(100)는 사용자 음성 데이터와 결정된 발화 의도를 저장하여 데이터 인식 모델을 학습하는데 이용할 수 있다.
이어서 전자 장치(100)는 사용자의 발화가 종료되었는지 판단할 수 있다(S1570). 만일 추가로 발화되는 사용자 음성이 존재하면(S1570-N), 전자 장치(100)는 추가 발화된 사용자 음성을 포함하는 전체 사용자 음성을 기초로 복수의 발화 의도를 재차 추정할 수 있다. 사용자의 발화가 종료된 것으로 판단되면(S1570-Y), 전자 장치(100)는 응답 정보 제공 상태를 유지하며 다음 사용자의 발화가 입력될 때까지 대기할 수 있다.
도 16은 본 개시의 실시예에 따른, 전자 장치와 서버를 포함하는 시스템이 데이터 인식 모델을 구축하는 방법을 나타내는 시퀀스도이다. 이 때, 데이터 인식 모델을 구축하기 위한 시스템은 제1 구성 요소(1601) 및 제2 구성 요소(1621)를 포함할 수 있다.
일 예로, 제1 구성 요소(1601)는 전자 장치(100)이고, 제2 구성 요소(1621)는 서버(200)가 될 수 있다. 또는, 제1 구성 요소(1601)는 범용 프로세서이고, 제2 구성 요소(1621)는 인공 지능 전용 프로세서가 될 수 있다. 또는, 제1 구성 요소(1601)는 적어도 하나의 어플리케이션이 될 수 있고, 제2 구성 요소는 운영 체제(operating system, OS)가 될 수 있다.
즉, 제2 구성 요소(1621)는 제1 구성 요소(1601)보다 더 집적화되거나, 전용화되거나, 딜레이(delay)가 작거나, 성능이 우세하거나 또는 많은 리소스를 가진 구성 요소로서 데이터 인식 모델의 생성, 갱신 또는 적용 시에 요구되는 연산을 제1 구성 요소(1601)보다 신속하고 효과적으로 처리 가능한 구성 요소가 될 수 있다.
이 경우, 제1 구성 요소(1601) 및 제2 구성 요소(1621) 간에 데이터(음성 데이터)를 송/수신하기 위한 인터페이스가 정의될 수 있다.
예로, 데이터 인식 모델에 적용할 학습 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖는 API(application program interface) 함수가 정의될 수 있다. 이 경우, 제1 구성 요소(1601)가 상기 API 함수를 호출하여 데이터 인자 값으로 음성 데이터를 입력하면, 상기 API 함수는 음성 데이터를 데이터 인식 모델에 적용할 학습 데이터로서 제2 구성 요소(1621)로 전달할 수 있다.
제1 구성 요소(1601)는 사용자가 발화한 사용자 음성을 입력 받을 수 있다(S1603). 제1 구성 요소(1601)는 사용자 음성에 대한 음성 데이터를 제 2 구성 요소로 전송할 수 있다.
제 2 구성 요소(1621)는 수신된 음성 데이터를 이용하여 데이터 인식 모델을 학습시킬 수 있다(S1605).
제2 구성 요소(1621)는 학습된 데이터 인식 모델을 저장할 수 있다(S1607).
한편, 상술한 실시예에서는 제2 구성 요소(1621)가 학습된 데이터 인식 모델을 저장하는 것으로 설명하였으나, 이는 일 실시예에 불과할 뿐, 제2 구성 요소(1621)가 학습된 데이터 인식 모델을 제1 구성 요소(1601)로 전송하여 제1 구성 요소(1601)가 데이터 인식 모델을 저장할 수도 있다.
도 17은 본 개시의 실시예에 따른, 전자 장치와 서버를 포함하는 시스템이 데이터를 인식하는 방법을 나타내는 시퀀스도이다. 이 때, 데이터 인식 모델을 이용하여 데이터를 인식하기 위한 시스템은 제1 구성요소 및 제 2 구성요소를 포함할 수 있다.
일 예로, 제1 구성 요소(1701)는 전자 장치이고, 제2 구성 요소(1721)는 서버가 될 수 있다. 또는, 제1 구성 요소(1701)는 범용 프로세서이고, 제2 구성 요소(1721)는 인공 지능 전용 프로세서가 될 수 있다. 또는, 제1 구성 요소(1701)는 적어도 하나의 어플리케이션이 될 수 있고, 제2 구성 요소(1721)는 운영 체제가 될 수 있다.
이 경우, 제1 구성 요소(1701) 및 제2 구성 요소(1721) 간에 데이터(예로, 동영상, 합성 이미지 또는 동영상 인식 결과)를 송/수신하기 위한 인터페이스가 정의될 수 있다.
예로, 학습된 데이터 인식 모델에 적용할 인식 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖고, 출력 값으로 데이터 인식 모델의 인식 결과를 갖는 API 함수가 정의될 수 있다. 이 경우, 제1 구성 요소(1701)가 상기 API 함수를 호출하여 데이터 인자 값으로 음성 데이터를 입력하면, 상기 API 함수는 음성 데이터를 데이터 인식 모델에 적용할 학습 데이터로서 제1 구성 요소(1701)로 전달할 수 있다. 그리고, 제2 구성 요소(1721)으로부터 동영상 인식 결과가 수신되면, 제1 구성 요소(1701)는 상기 API 함수의 출력 값으로 사용자의 발화 의도에 대응하는 응답 정보를 제공할 수 있다.
제1 구성 요소(1701)는 사용자가 발화한 사용자 음성을 수신할 수 있다(S1703). 제1 구성 요소(1701)는 사용자의 음성이 수신되는 동안 사용자가 발화한 음성에 포함된 적어도 하나의 단어에 대한 음성 데이터를 제 2 구성요소(1721)로 전송할 수 있다.
제2 구성 요소(1721)는 수신된 적어도 하나의 단어에 대한 음성 데이터를 음성 인식 모델에 적용하여 사용자의 발화 의도를 판단할 수 있다(S1705).
제2 구성 요소(1721)는 판단된 발화 의도에 대응하는 응답 정보를 제공하고( S1707), 응답 정보를 제 1 구성요소(1701)로 전송한다.
제1 구성 요소(1701)는 발화 의도에 대응되는 동작 수행 결과의 화면을 표시할 수 있다. 또한 제1 구성 요소(1701)는 발화 의도에 대응되는 동작을 수행할 수도 있다.
제1 구성 요소(1701)는 응답 정보가 제공되는 동안 적어도 하나의 단어가 입력된 이후에 발화된 추가 단어를 바탕으로 응답 정보를 갱신할 수 있다(S1709).
한편, 상술한 실시예에서는 제1 구성 요소(1701)가 음성 데이터를 생성하는 것으로 설명하였으나, 이는 일 실시예에 불과할 뿐, 제2 구성 요소(1702)가 입력된 음성을 수신하여, 적어도 하나의 단어를 포함하는 음성 데이터를 생성할 수 있다.
일부 실시예는 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어들을 포함하는 S/W 프로그램으로 구현될 수 있다.
예로, 컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 디바이스 또는 디바이스와 통신 연결된 외부의 서버를 포함할 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal), 전류(current)를 포함하지 않으며, 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. 예로, 비일시적 저장 매체는 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 내장 메모리, 메모리 카드, ROM 또는 RAM 등과 같은 비일시적 판독가능 기록매뿐만 아니라 레지스터, 캐쉬, 버퍼 등과 같이 임시적으로 저장되는 매체를 포함할 수 있다.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)으로 제공될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체 또는 판매자 및 구매자 간에 거래되는 상품을 포함할 수 있다.
예를 들어, 컴퓨터 프로그램 제품은 디바이스 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 전자 마켓의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
이상과 같이 본 개시는 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 개시는 상기의 실시 예에 한정되는 것은 아니며, 본 개시가 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 전자 장치                  110: 마이크
120: 프로세서              121: 데이터 학습부
122: 데이터 인식부        130: 디스플레이
140: 입력부                    150: 통신부
160: 메모리                    170: 스피커
200: 서버

Claims (19)

  1. 전자 장치에 있어서,
    사용자가 발화한 사용자 음성을 입력받는 마이크,
    상기 사용자 음성으로부터 상기 사용자의 발화 의도를 획득하는 모델을 저장하는 메모리,
    디스플레이,
    프로세서를 포함하고,
    상기 프로세서는,
    제1 시기에 상기 마이크를 통해 상기 사용자가 발화한 제1 사용자 음성을 획득하고,
    상기 제1 시기 이후 제2 시기에, 상기 마이크를 통해 상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 사용자 음성을 상기 모델에 입력하여 상기 사용자의 제1 발화 의도를 획득하고,
    상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 요청하는 UI를 포함하고 상기 제1 발화 의도에 대응되는 제1 응답 정보를 표시하도록 상기 디스플레이를 제어하고, 상기 제1 응답 정보는 상기 제1 발화 의도에 기초하여 실행되는 어플리케이션의 제1 실행 화면을 포함하며,
    상기 제1 응답 정보가 표시되는 동안 상기 추가 정보를 포함하는 상기 제2 사용자 음성이 획득되면, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 상기 모델에 입력하거나 상기 제2 사용자 음성을 상기 모델에 입력하여 상기 제1 응답 정보와 관련된 제2 응답 정보를 획득하고, 상기 제1 응답 정보를 상기 제2 응답 정보로 변경하여 표시하며, 상기 제2 응답 정보는 상기 제1 실행 화면과 상이한 상기 어플리케이션의 제2 실행 화면을 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 사용자 음성은 적어도 하나의 단어를 포함하고,
    상기 프로세서는,
    상기 적어도 하나의 단어를 바탕으로 복수의 발화 의도의 신뢰도를 판단하고, 상기 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도를 상기 사용자의 발화 의도로 판단하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 복수의 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 준비 동작을 개시하는 전자 장치.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도에 대응되는 동작을 수행하기 위한 상기 어플리케이션의 실행 화면을 표시하도록 상기 디스플레이를 제어하는 전자 장치.
  5. 삭제
  6. 제2항에 있어서,
    상기 프로세서는,
    상기 판단된 복수의 발화 의도의 신뢰도가 기설정된 값 미만이면, 상기 판단된 복수의 발화 의도를 포함하는 리스트 UI를 표시하도록 상기 디스플레이를 제어하고, 상기 표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면, 상기 선택된 발화 의도에 대응하는 응답 정보를 제공하는 전자 장치.
  7. 제1항에 있어서,
    상기 제2 사용자 음성은 추가 단어를 포함하고,
    상기 프로세서는,
    상기 추가 단어를 바탕으로 판단된 제2 발화 의도가 상기 제1 발화 의도와 상이하면, 상기 제1 응답 정보를 상기 제2 응답 정보로 변경하여 표시하는 전자 장치.
  8. 삭제
  9. 제1항에 있어서,
    상기 제1 응답 정보 또는 상기 제2 응답 정보는 개체명 및 의도를 포함하는, 전자 장치.
  10. 전자 장치의 사용자의 발화 의도 판단 방법에 있어서,
    제1 시기에 상기 사용자가 발화한 제1 사용자 음성을 획득하는 단계;
    상기 제1 시기 이후 제2 시기에, 상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 사용자 음성을 발화 의도 획득 모델에 입력하여 상기 사용자의 제1 발화 의도를 획득하는 단계;
    상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 요청하는 UI를 포함하고 상기 제1 발화 의도에 대응되는 제1 응답 정보를 표시하고, 상기 제1 응답 정보는 상기 제1 발화 의도에 기초하여 실행되는 어플리케이션의 제1 실행 화면을 포함하는 단계; 및
    상기 제1 응답 정보가 표시되는 동안 상기 추가 정보를 포함하는 상기 제2 사용자 음성이 획득되면, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 상기 모델에 입력하거나 상기 제2 사용자 음성을 상기 모델에 입력하여 상기 제1 응답 정보와 관련된 제2 응답 정보를 획득하고, 상기 제1 응답 정보를 상기 제2 응답 정보로 변경하여 표시하며, 상기 제2 응답 정보는 상기 제1 실행 화면과 상이한 상기 어플리케이션의 제2 실행 화면을 포함하는 단계;를 포함하는 판단 방법.
  11. 제10항에 있어서,
    상기 제1 사용자 음성은 적어도 하나의 단어를 포함하고,
    상기 제1 발화 의도를 획득하는 단계는,
    상기 적어도 하나의 단어를 바탕으로 복수의 발화 의도의 신뢰도를 판단하는 단계;
    상기 복수의 발화 의도 중 기설정된 값 이상의 신뢰도를 갖는 발화 의도를 검출하는 단계; 및
    상기 검출된 발화 의도를 상기 제1 발화 의도로 판단하는 단계;를 포함하는 판단 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 복수의 발화 의도 중 신뢰도가 가장 높은 발화 의도에 대응되는 동작을 수행하기 위한 어플리케이션의 실행 준비 동작을 개시하는 단계;를 더 포함하는 판단 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 기설정된 값 이상의 신뢰도를 갖는 발화 의도가 검출되면, 상기 검출된 발화 의도에 대응되는 동작을 수행하기 위한 상기 어플리케이션의 실행 화면을 표시하는 단계;를 더 포함하는 판단 방법.
  14. 삭제
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 제1 발화 의도를 획득하는 단계는,
    상기 판단된 복수의 발화 의도의 신뢰도가 기설정된 값 미만이면, 상기 판단된 복수의 발화 의도를 포함하는 리스트 UI를 표시하는 단계;를 더 포함하고,
    상기 제1 응답 정보를 표시하는 단계는,
    상기 표시된 복수의 발화 의도 중 하나의 발화 의도를 선택하는 사용자 입력이 수신되면, 상기 선택된 발화 의도에 대응하는 응답 정보를 표시하는 판단 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제2 사용자 음성은 추가 단어를 포함하고,
    상기 제1 응답 정보를 상기 제2 응답 정보로 변경하여 표시하는 단계는,
    상기 추가 단어를 바탕으로 판단된 제2 발화 의도가 상기 제1 발화 의도와 상이하면, 상기 제1 응답 정보를 상기 제1 응답 정보로 변경하여 표시하는 판단 방법.
  17. 삭제
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제1 응답 정보 또는 상기 제2 응답 정보는 개체명 및 의도를 포함하는, 판단 방법.
  19. 전자 장치의 사용자의 발화 의도 판단 방법을 실행하기 위한 프로그램을 포함하는 비일시적 컴퓨터 판독가능 기록매체에 있어서,
    상기 판단 방법은,
    제1 시기에 상기 사용자가 발화한 제1 사용자 음성을 획득하는 단계;
    상기 제1 시기 이후 제2 시기에, 상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 사용자 음성을 발화 의도 획득 모델에 입력하여 상기 사용자의 제1 발화 의도를 획득하는 단계;
    상기 사용자가 발화한 제2 사용자 음성을 획득하는 동안 상기 제1 발화 의도에 대응되는 동작을 수행하는데 필요한 추가 정보를 요청하는 UI를 포함하고 상기 제1 발화 의도에 대응되는 제1 응답 정보를 표시하고, 상기 제1 응답 정보는 상기 제1 발화 의도에 기초하여 실행되는 어플리케이션의 제1 실행 화면을 포함하는 단계; 및
    상기 제1 응답 정보가 표시되는 동안 상기 추가 정보를 포함하는 상기 제2 사용자 음성이 획득되면, 상기 제1 사용자 음성 및 상기 제2 사용자 음성을 상기 모델에 입력하거나 상기 제2 사용자 음성을 상기 모델에 입력하여 상기 제1 응답 정보와 관련된 제2 응답 정보를 획득하고, 상기 제1 응답 정보를 상기 제2 응답 정보로 변경하여 표시하며, 상기 제2 응답 정보는 상기 제1 실행 화면과 상이한 상기 어플리케이션의 제2 실행 화면을 포함하는 단계;를 포함하는 비일시적 컴퓨터 판독가능 기록매체.
KR1020170145743A 2016-12-20 2017-11-03 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체 KR102502220B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/467,610 US11367434B2 (en) 2016-12-20 2017-12-19 Electronic device, method for determining utterance intention of user thereof, and non-transitory computer-readable recording medium
PCT/KR2017/015041 WO2018117608A1 (ko) 2016-12-20 2017-12-19 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160174640 2016-12-20
KR1020160174640 2016-12-20

Publications (2)

Publication Number Publication Date
KR20180071931A KR20180071931A (ko) 2018-06-28
KR102502220B1 true KR102502220B1 (ko) 2023-02-22

Family

ID=62780234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170145743A KR102502220B1 (ko) 2016-12-20 2017-11-03 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체

Country Status (2)

Country Link
US (1) US11367434B2 (ko)
KR (1) KR102502220B1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10553098B2 (en) 2014-05-20 2020-02-04 Ooma, Inc. Appliance device integration with alarm systems
US9633547B2 (en) 2014-05-20 2017-04-25 Ooma, Inc. Security monitoring and control
US11330100B2 (en) * 2014-07-09 2022-05-10 Ooma, Inc. Server based intelligent personal assistant services
US10009286B2 (en) 2015-05-08 2018-06-26 Ooma, Inc. Communications hub
JP6857581B2 (ja) * 2017-09-13 2021-04-14 株式会社日立製作所 成長型対話装置
US20200327890A1 (en) * 2017-11-28 2020-10-15 Sony Corporation Information processing device and information processing method
CN108600911B (zh) * 2018-03-30 2021-05-18 联想(北京)有限公司 一种输出方法及电子设备
KR20200004771A (ko) * 2018-07-04 2020-01-14 이정용 뇌파인식시스템
JP7143665B2 (ja) * 2018-07-27 2022-09-29 富士通株式会社 音声認識装置、音声認識プログラムおよび音声認識方法
US11087749B2 (en) * 2018-12-20 2021-08-10 Spotify Ab Systems and methods for improving fulfillment of media content related requests via utterance-based human-machine interfaces
US10943588B2 (en) * 2019-01-03 2021-03-09 International Business Machines Corporation Methods and systems for managing voice response systems based on references to previous responses
KR102346026B1 (ko) * 2019-02-11 2021-12-31 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN111724775B (zh) * 2019-03-22 2023-07-28 华为技术有限公司 一种语音交互方法及电子设备
JP7275795B2 (ja) * 2019-04-15 2023-05-18 コニカミノルタ株式会社 操作受付装置、制御方法、画像形成システム、及び、プログラム
KR102017229B1 (ko) * 2019-04-15 2019-09-02 미디어젠(주) 발화 패턴의 무한성 개선을 위한 딥러닝 기반의 텍스트 문장 자동 생성시스템
US11057079B2 (en) * 2019-06-27 2021-07-06 Qualcomm Incorporated Dynamic thresholds for antenna switching diversity
US11551012B2 (en) * 2019-07-05 2023-01-10 Electronics And Telecommunications Research Institute Apparatus and method for providing personal assistant service based on automatic translation
KR102339085B1 (ko) * 2019-07-22 2021-12-14 엘지전자 주식회사 사용자의 어플리케이션 사용 기록을 고려하여 사용자의 음성을 인식하는 인공 지능 장치 및 그 방법
KR102281515B1 (ko) * 2019-07-23 2021-07-26 엘지전자 주식회사 개인화 언어 모델을 이용하여 사용자의 음성을 인식하는 인공 지능 장치 및 그 방법
KR20190098928A (ko) 2019-08-05 2019-08-23 엘지전자 주식회사 음성 인식 방법 및 장치
KR20210026962A (ko) 2019-09-02 2021-03-10 삼성전자주식회사 보이스 어시스턴트 서비스를 제공하는 장치 및 방법
US11749265B2 (en) * 2019-10-04 2023-09-05 Disney Enterprises, Inc. Techniques for incremental computer-based natural language understanding
KR20210047173A (ko) * 2019-10-21 2021-04-29 엘지전자 주식회사 오인식된 단어를 바로잡아 음성을 인식하는 인공 지능 장치 및 그 방법
KR20210074632A (ko) * 2019-12-12 2021-06-22 엘지전자 주식회사 음소 기반 자연어 처리
WO2021162489A1 (en) 2020-02-12 2021-08-19 Samsung Electronics Co., Ltd. Method and voice assistance apparatus for providing an intelligence response
KR20210108098A (ko) * 2020-02-25 2021-09-02 삼성전자주식회사 전자 장치 및 그 제어 방법
JP7405660B2 (ja) * 2020-03-19 2023-12-26 Lineヤフー株式会社 出力装置、出力方法及び出力プログラム
US11551666B1 (en) * 2020-05-28 2023-01-10 Amazon Technologies, Inc. Natural language processing
CN116097348A (zh) 2020-11-11 2023-05-09 三星电子株式会社 电子装置、系统及其控制方法
US20220157315A1 (en) * 2020-11-13 2022-05-19 Apple Inc. Speculative task flow execution
KR20220073513A (ko) * 2020-11-26 2022-06-03 현대자동차주식회사 대화 시스템, 차량 및 대화 시스템의 제어 방법
CN113190665B (zh) * 2021-05-08 2024-02-06 京东科技控股股份有限公司 意图识别方法和装置、存储介质、电子设备
CN113643696A (zh) * 2021-08-10 2021-11-12 阿波罗智联(北京)科技有限公司 语音处理方法、装置、设备、存储介质及程序
WO2023074918A1 (ko) * 2021-10-25 2023-05-04 엘지전자 주식회사 디스플레이 장치
WO2023219686A1 (en) * 2022-05-13 2023-11-16 Microsoft Technology Licensing, Llc Speculative execution of dataflow program nodes
KR102581221B1 (ko) * 2023-05-10 2023-09-21 주식회사 솔트룩스 재생 중인 응답 발화를 제어 및 사용자 의도를 예측하는 방법, 장치 및 컴퓨터-판독 가능 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160148610A1 (en) * 2014-11-26 2016-05-26 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149687B1 (en) 2002-07-29 2006-12-12 At&T Corp. Method of active learning for automatic speech recognition
JP2005283972A (ja) 2004-03-30 2005-10-13 Advanced Media Inc 音声認識方法及びこの音声認識方法を利用した情報提示方法と情報提示装置
US20050273337A1 (en) * 2004-06-02 2005-12-08 Adoram Erell Apparatus and method for synthesized audible response to an utterance in speaker-independent voice recognition
JP4353212B2 (ja) 2006-07-20 2009-10-28 株式会社デンソー 単語列認識装置
US8364481B2 (en) 2008-07-02 2013-01-29 Google Inc. Speech recognition with parallel recognition tasks
US8140328B2 (en) * 2008-12-01 2012-03-20 At&T Intellectual Property I, L.P. User intention based on N-best list of recognition hypotheses for utterances in a dialog
KR101622111B1 (ko) 2009-12-11 2016-05-18 삼성전자 주식회사 대화 시스템 및 그의 대화 방법
US8903793B2 (en) 2009-12-15 2014-12-02 At&T Intellectual Property I, L.P. System and method for speech-based incremental search
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
KR101699720B1 (ko) 2010-08-03 2017-01-26 삼성전자주식회사 음성명령 인식 장치 및 음성명령 인식 방법
KR101208166B1 (ko) 2010-12-16 2012-12-04 엔에이치엔(주) 온라인 음성인식을 처리하는 음성인식 클라이언트 시스템, 음성인식 서버 시스템 및 음성인식 방법
US8914288B2 (en) 2011-09-01 2014-12-16 At&T Intellectual Property I, L.P. System and method for advanced turn-taking for interactive spoken dialog systems
KR101961139B1 (ko) * 2012-06-28 2019-03-25 엘지전자 주식회사 이동 단말기 및 그것의 음성 인식 방법
CA2962636A1 (en) 2014-10-01 2016-04-07 XBrain, Inc. Voice and connection platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160148610A1 (en) * 2014-11-26 2016-05-26 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance

Also Published As

Publication number Publication date
US11367434B2 (en) 2022-06-21
US20200074993A1 (en) 2020-03-05
KR20180071931A (ko) 2018-06-28

Similar Documents

Publication Publication Date Title
KR102502220B1 (ko) 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체
US20230027828A1 (en) Multiple classifications of audio data
US11769492B2 (en) Voice conversation analysis method and apparatus using artificial intelligence
US10521723B2 (en) Electronic apparatus, method of providing guide and non-transitory computer readable recording medium
US10878807B2 (en) System and method for implementing a vocal user interface by combining a speech to text system and a speech to intent system
KR20220123747A (ko) 공동 오디오-비디오 얼굴 애니메이션 시스템
CN112189229B (zh) 针对计算机化个人助手的技能发现
US11132509B1 (en) Utilization of natural language understanding (NLU) models
KR102429583B1 (ko) 전자 장치, 그의 가이드 제공 방법 및 비일시적 컴퓨터 판독가능 기록매체
KR102656620B1 (ko) 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체
KR102484257B1 (ko) 전자 장치, 그의 문서 표시 방법 및 비일시적 컴퓨터 판독가능 기록매체
EP3647936B1 (en) Electronic apparatus and control method thereof
US11842735B2 (en) Electronic apparatus and control method thereof
KR102529262B1 (ko) 전자 장치 및 제어 방법
US11574637B1 (en) Spoken language understanding models
KR102426435B1 (ko) 사용자 입력에 기반한 문장을 제공하는 장치 및 방법
US11881209B2 (en) Electronic device and control method
EP4125029A1 (en) Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
KR20200040097A (ko) 전자 장치 및 그 제어 방법
US11942077B2 (en) Electronic device and operating method thereof
US20220059088A1 (en) Electronic device and control method therefor
US11705110B2 (en) Electronic device and controlling the electronic device
KR20200080389A (ko) 전자 장치 및 그 제어 방법
US11775617B1 (en) Class-agnostic object detection
US20240104311A1 (en) Hybrid language translation on mobile devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right