KR20210130465A - 대화 시스템 및 그 제어 방법 - Google Patents

대화 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20210130465A
KR20210130465A KR1020200048707A KR20200048707A KR20210130465A KR 20210130465 A KR20210130465 A KR 20210130465A KR 1020200048707 A KR1020200048707 A KR 1020200048707A KR 20200048707 A KR20200048707 A KR 20200048707A KR 20210130465 A KR20210130465 A KR 20210130465A
Authority
KR
South Korea
Prior art keywords
user
utterance
intention
engine
text
Prior art date
Application number
KR1020200048707A
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 KR1020200048707A priority Critical patent/KR20210130465A/ko
Priority to US17/119,344 priority patent/US11664018B2/en
Publication of KR20210130465A publication Critical patent/KR20210130465A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)

Abstract

개시된 발명은 사용자 발화에 대응되는 사용자 의도의 파악이 제대로 이루어지지 않은 경우에, 사용자 발화가 입력된 이후의 상황 정보나 추가 사용자 발화에 기초하여 실제 사용자 의도를 파악하고 이를 학습에 이용함으로써 STT 엔진이나 NLU 엔진의 정확도를 향상시킬 수 있는 대화 시스템 및 그 제어 방법을 제공한다.
일 실시예에 따른 대화 시스템은 사용자 발화를 발화 텍스트로 변환하는STT(Speech to Text) 엔진; 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는 학습 기반의 대화 엔진; 상기 대화 엔진의 학습에 사용되는 학습 데이터가 저장되는 저장부; 및 상기 대화 엔진이 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하는 제어부;를 포함하고, 상기 대화 엔진은, 상기 저장부에 저장된 발화 텍스트와 상기 실제 사용자 의도를 이용하여 학습을 수행할 수 있다.

Description

대화 시스템 및 그 제어 방법{DIALOGUE SYSTEM AND METHOD FOR CONTROLLING THE SAME}
개시된 발명은 사용자 발화에 대응되는 서비스를 제공하는 대화 시스템 및 그 제어 방법에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악하고, 파악된 사용자 의도에 대응되는 서비스를 제공할 수 있는 시스템이다.
대화 시스템의 주요 구성요소로는 음성 신호로 입력된 사용자 발화에 음성 인식을 수행하여 텍스트로 변환하는 STT(Speech to Text) 엔진과 변환된 텍스트에 자연어 이해 기술을 적용하여 사용자 의도를 파악하는 NLU(Natural Language Understanding) 엔진이 있다.
STT 엔진의 오인식 또는 사용자 발화 자체의 모호함으로 인해 NLU 엔진이 사용자 의도 파악에 실패하거나 NLU 엔진이 파악한 사용자 의도가 실제 사용자 의도와 다른 경우가 발생할 수 있고, 이로 인해 대화 시스템에 대한 신뢰도나 대화 시스템이 제공하는 서비스에 대한 만족도가 떨어지게 된다.
개시된 발명은 사용자 발화에 대응되는 사용자 의도의 파악이 제대로 이루어지지 않은 경우에, 사용자 발화가 입력된 이후의 상황 정보나 추가 사용자 발화에 기초하여 실제 사용자 의도를 파악하고 이를 학습에 이용함으로써 STT 엔진이나 NLU 엔진의 정확도를 향상시킬 수 있는 대화 시스템 및 그 제어 방법을 제공한다.
일 실시예에 따른 대화 시스템은 사용자 발화를 발화 텍스트로 변환하는STT(Speech to Text) 엔진; 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는 학습 기반의 대화 엔진; 상기 대화 엔진의 학습에 사용되는 학습 데이터가 저장되는 저장부; 및 상기 대화 엔진이 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하는 제어부;를 포함하고, 상기 대화 엔진은, 상기 저장부에 저장된 발화 텍스트와 상기 실제 사용자 의도를 이용하여 학습을 수행할 수 있다.
상기 대화 엔진은, 주기적으로 또는 정해진 이벤트의 발생 시에 상기 학습을 수행할 수 있다.
상기 대화 시스템에 등록된 전자 기기로부터 상기 상황 정보를 수신하는 통신부;를 더 포함할 수 있다.
상기 상황 정보는, 상기 사용자 발화가 입력된 이후에 실행된 상기 전자 기기의 동작에 관한 정보 및 사용자의 행동에 관한 정보 중 하나를 포함할 수 있다.
상기 대화 엔진은, 상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력할 수 있다.
상기 제어부는, 상기 판단된 사용자 의도에 대해 부정적인 사용자 응답이 입력되면, 상기 사용자 발화가 입력되기 전후에 획득된 상황 정보 및 상기 시스템 발화 이후에 입력된 추가 사용자 발화 중 적어도 하나에 기초하여 상기 사용자의 실제 의도를 판단하고, 상기 발화 텍스트와 상기 사용자의 실제 의도를 매칭시켜 상기 저장부에 저장할 수 있다.
상기 제어부는, 상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도에 대응되는 액션을 수행하기 위한 제어 명령을 생성할 수 있다.
상기 제어부는, 상기 판단된 사용자 의도에 대응되는 액션이 수행된 이후에 상기 수행된 액션에 반대되는 액션 수행과 추가 액션 수행을 나타내는 상황 정보가 수신되면, 상기 수신된 상황 정보에 기초하여 상기 실제 사용자 의도를 판단하고, 상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장할 수 있다.
상기 제어부는, 상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하고, 상기 STT 엔진은, 상기 저장부에 저장된 상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 이용하여 학습을 수행할 수 있다.
일 실시예에 따른 대화 시스템의 제어 방법은, STT(Speech to Text) 엔진에서 사용자 발화를 발화 텍스트로 변환하고; 대화 엔진에서 학습에 기반하여 상기 발화 텍스트에 대응되는 사용자 의도를 판단하고; 상기 대화 엔진이 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하고; 상기 발화 텍스트와 상기 실제 사용자 의도를 이용하여 상기 대화 엔진의 학습을 수행하는 것;을 포함한다.
상기 대화 엔진은, 주기적으로 또는 정해진 이벤트의 발생 시에 상기 학습을 수행할 수 있다.
상기 대화 시스템에 등록된 전자 기기로부터 상기 상황 정보를 수신하는 것;을 더 포함할 수 있다.
상기 상황 정보는, 상기 사용자 발화가 입력된 이후에 실행된 상기 전자 기기의 동작에 관한 정보 및 사용자의 행동에 관한 정보 중 하나를 포함할 수 있다.
상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력하는 것;을 더 포함할 수 있다.
상기 판단된 사용자 의도에 대해 부정적인 사용자 응답이 입력되면, 상기 사용자 발화가 입력되기 전후에 획득된 상황 정보 및 상기 시스템 발화 이후에 입력된 추가 사용자 발화 중 적어도 하나에 기초하여 상기 실제 사용자 의도를 판단하고; 상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하는 것;을 더 포함할 수 있다.
상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도에 대응되는 액션을 수행하기 위한 제어 명령을 생성하는 것;을 더 포함할 수 있다.
상기 판단된 사용자 의도에 대응되는 액션이 수행된 이후에 상기 수행된 액션에 반대되는 액션 수행과 추가 액션 수행을 나타내는 상황 정보가 수신되면, 상기 수신된 상황 정보에 기초하여 상기 실제 사용자 의도를 판단하고; 상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하는 것;을 더 포함할 수 있다.
상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 매칭시켜 저장하고; 상기 저장된 사용자 발화, 발화 텍스트 및 실제 사용자 의도를 이용하여 상기 STT 엔진의 학습을 수행하는 것;을 더 포함할 수 있다.
일 측면에 따른 대화 시스템 및 그 제어 방법에 의하면, 사용자 발화에 대응되는 사용자 의도의 파악이 제대로 이루어지지 않은 경우에, 사용자 발화가 입력된 이후의 상황 정보나 추가 사용자 발화에 기초하여 실제 사용자 의도를 파악하고 이를 학습에 이용함으로써 STT 엔진이나 NLU 엔진의 정확도를 향상시킬 수 있다.
도 1 은 일 실시예에 따른 대화 시스템의 제어 블록도이다.
도 2는 일 실시예에 따른 대화 시스템에 있어서, 저장부에 저장되는 데이터베이스를 구체화한 제어 블록도이다.
도 3은 일 실시예에 따른 대화 시스템이 통신부를 더 포함하는 경우의 제어 블록도이다.
도 4는 일 실시예에 따른 대화 시스템이 사용자 발화를 오인식한 상황을 나타낸 도면이다.
도 5는 일 실시예에 따른 대화 시스템에 저장되는 학습 데이터의 예시를 나타낸 도면이다.
도 6, 도 7 및 도 8은 일 실시예에 따른 대화 시스템이 사용자 의도를 판단하는데 성공했으나, 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않는 상황을 나타낸 도면이다.
도 9는 일 실시예에 따른 대화 시스템에 저장되는 학습 데이터의 다른 예시를 나타낸 도면이다.
도 10은 일 실시예에 따른 대화 시스템의 제어 방법에 대한 순서도이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
또한, 본 명세서에서 설명되는 구성요소 앞에 사용되는 "제1~", "제2~"와 같은 서수는 구성요소들을 상호 구분하기 위해 사용되는 것일 뿐, 이들 구성요소들 사이의 연결 순서, 사용 순서, 우선 순위 등의 다른 의미를 갖는 것은 아니다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이하에서는 첨부된 도면을 참조하여 일 측면에 따른 대화 시스템 및 그 제어 방법에 관한 실시예를 상세하게 설명하도록 한다.
도 1 은 일 실시예에 따른 대화 시스템의 제어 블록도이다.
도 1을 참조하면, 일 실시예에 따른 대화 시스템(100)은 사용자 발화를 발화 텍스트로 변환하는STT(Speech to Text) 엔진(110), 발화 텍스트에 대응되는 사용자 의도를 판단하는 학습 기반의 대화 엔진(120), 대화 엔진(120)의 학습에 사용되는 학습 데이터가 저장되는 저장부(150) 및 대화 엔진(120)이 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 사용자 의도를 판단하는데 실패한 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장부(150)에 저장하는 제어부(140)를 포함한다.
일 실시예에 따른 대화 시스템(100)은 서버로 구현될 수 있고, 이 경우 대화 시스템(100)의 구성요소들(110, 120, 130, 140, 150)은 서버에 마련될 수 있다. 그러나, 대화 시스템(100)의 구성요소들(110, 120, 130, 140, 150) 중 일부가 사용자와 대화 시스템(100)을 연결해주는 사용자 단말기에 마련되는 것도 가능하다.
일 실시예에 따른 대화 시스템(100)은 후술하는 동작을 수행하는 프로그램 및 관련 데이터를 저장하는 적어도 하나의 메모리와 저장된 프로그램을 실행하는 적어도 하나의 프로세서를 포함할 수 있다.
STT 엔진(110), 대화 엔진(120), TTS 엔진(130) 및 제어부(140)가 각각 별도의 메모리와 프로세서를 사용하는 것도 가능하고, 이들 중 일부 또는 전부가 메모리와 프로세서를 공유하는 것도 가능하다. 또한, 저장부(150)가 STT 엔진(110), 대화 엔진(120), TTS 엔진(130) 및 제어부(140)와 메모리를 공유하는 것도 가능하고 공유하지 않는 것도 가능하다.
또한, 제어부(140)가 별개의 구성으로 마련되는 것도 가능하나, 후술하는 제어부(140)의 동작들을 STT 엔진(110) 및 대화 엔진(120) 중 해당 동작과 관련된 구성에서 수행하는 것도 가능하다. 예를 들어, 후술하는 제어부(140)의 동작 중 대화 엔진(120)의 제어와 관련된 동작은 대화 엔진(120)에서 직접 수행하는 것도 가능하다. 즉, 당해 실시예에서의 구성요소들은 물리적인 위치나 구성이 아니라 동작을 기준으로 구분한 것으로서, 어떤 대화 시스템이 제어부라 지칭되는 별개의 프로세서를 두지 않고, 대화 엔진이라 지칭되는 프로세서에서 본 명세서의 청구범위에 기재된 제어부(140)의 동작을 수행한다고 하여 일 실시예에 따른 대화 시스템(100)의 권리범위를 벗어나는 것은 아니다.
예를 들어, 대화 시스템(100)이 차량 내에서 사용되는 경우에는 차량에 대화 시스템(100)의 구성요소들 중 일부가 마련될 수 있고, 대화 시스템(100)이 휴대폰, 태블릿 PC 등과 같은 모바일 기기, AI 스피커 또는 랩탑 PC 등과 같은 사용자 단말기를 통해 사용되는 경우에는 사용자 단말기에 대화 시스템(100)의 구성요소들 중 일부가 마련될 수 있다.
또는, 사용자가 대화 시스템(100)의 구성요소들 중 일부의 기능을 수행하는 프로그램을 사용자 단말기에 다운로드 받아 사용하는 것도 가능하다.
마이크(10)와 스피커(20)는 차량, 모바일 기기, PC 등의 사용자 단말기 또는 액션 수행의 대상이 되는 전자 기기에 마련될 수 있고, 사용자 단말기나 전자 기기는 무선 통신을 통해 대화 시스템(100)과 연결될 수 있다.
마이크(10)에 입력된 사용자 발화는 음성 신호의 형태로STT 엔진(110)에 입력될 수 있다.
STT 엔진(110)은 입력된 사용자 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다. 예를 들어, STT 엔진(110)은 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
STT 엔진(110)은 음성 신호인 사용자 발화를 텍스트로 변환함에 있어 머신 러닝 또는 딥 러닝을 적용한 학습 기반의 엔진일 수 있고, STT 엔진(110)의 학습에 사용되는 STT 학습 데이터는 저장부(150)에 저장될 수 있다.
STT 학습 데이터는 지속적으로 업데이트될 수 있고, STT 엔진(110)은 주기적으로 또는 특정 이벤트가 발생했을 때, 예를 들어 일정량 이상의 학습 데이터가 추가되었을 때 저장부(150)에 저장된 학습 데이터를 이용하여 재학습을 수행하여 업데이트될 수 있다.
STT 엔진(110)의 출력인 발화 텍스트는 STT 엔진(110)이 음성 인식을 수행하여 생성한 결과이기 때문에 STT 엔진(110) 자체의 성능이나 음성 신호의 품질 등 다양한 요인에 의해 오인식이 발생할 수 있고, 이로 인해 실제 사용자가 마이크(10)에 입력한 사용자 발화와 그 내용이 일치하지 않을 수 있다.
예를 들어, 사용자는 "에어컨 켜"라고 발화했으나, STT 엔진(110)이 이를 잘못 인식하여 "에이트 켜"를 텍스트로 출력할 수 있다. 따라서, 후술하는 실시예에서는 STT 엔진(110)의 입력인 음성 신호 형태의 사용자 발화와 STT 엔진(110)의 출력인 텍스트를 구분하기 위해, STT 엔진(110)의 입력은 사용자 발화라 하고 STT 엔진(110)의 출력은 발화 텍스트라 하기로 한다.
STT 엔진(110)에서 출력되는 발화 텍스트는 대화 엔진(120)에 입력되고, 대화 엔진(120)은 발화 텍스트를 분석하여 그에 대응되는 사용자 의도를 판단할 수 있다.
대화 엔진(120)은 발화 텍스트에 대응되는 사용자 의도를 판단하기 위해 자연어 이해(Natural Language Understanding) 기술을 적용할 수 있다. 따라서, 대화 엔진(120)에는 입력 문장에 대해 NLU 기술을 적용하여 자연어 이해를 수행하는 NLU 엔진이 포함될 수 있다.
예를 들어, 대화 엔진(120)은 발화 텍스트로부터 개체명을 인식할 수 있다. 개체명은 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식은 문장에서 개체명을 식별하고 식별된 개체명의 종류를 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
또한, 대화 엔진(120)은 발화 텍스트로부터 도메인을 추출할 수 있다. 도메인은 사용자 발화의 주제를 식별할 수 있는 것으로서, 예를 들어, 가전 기기 제어, 문자, 내비게이션, 일정, 날씨, 교통, 차량 제어 등의 다양한 주제를 나타내는 도메인이 발화 텍스트로부터 추출될 수 있다.
또한, 대화 엔진(120)은 발화 텍스트가 갖는 화행을 분석할 수 있다. 화행 분석은 발화의 의도를 분석하는 작업으로, 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 응답을 하는 것인지, 단순한 감정 표현을 하는 것인지 등의 발화의 의도를 파악하는 것이다.
또한, 대화 엔진(120)은 발화 텍스트에 대응되는 도메인, 개체명, 화행 등의 정보에 기초하여 사용자 의도(intent)를 파악하고, 사용자 의도에 대응되는 액션을 추출할 수 있다. 액션은 오브젝트(Object)와 오퍼레이터(Operator)에 의해 정의될 수 있다.
예를 들어, 파악된 사용자 의도가 [에어컨 실행]인 경우에 그에 대응되는 액션은 『에어컨(오브젝트)_ON(오퍼레이터)』으로 정의될 수 있고, 파악된 사용자 의도가 [세탁기 실행]인 경우에 그에 대응되는 액션은 『세탁기(오브젝트)_ON(오퍼레이터) 』로 정의될 수 있다.
또한, 대화 엔진(120)은 액션 수행과 관련된 인자를 추출하는 것도 가능하다. 액션 수행과 관련된 인자는 액션을 수행하는데 직접적으로 필요한 유효 인자일 수도 있고, 이러한 유효 인자를 추출하기 위해 사용되는 비유효 인자일 수도 있다.
예를 들어, STT 엔진(110)이 출력한 발화 텍스트가 "에어컨 20도로 틀어줘"인 경우에, 대화 엔진은 사용자 발화에 대응되는 도메인을 『가전기기 제어』로 결정하고, 액션을 『에어컨_ON』으로 결정할 수 있다. 화행은 『요청』에 해당하고, 20도는 액션 수행을 위해 필요한 {인자: 설정 온도}에 해당한다.
대화 엔진(120) 역시 자연어 이해를 수행하여 발화 텍스트로부터 사용자 의도를 파악함에 있어 머신 러닝 또는 딥 러닝을 적용한 학습 기반의 엔진일 수 있고, 대화 엔진(120)의 학습에 사용되는 NLU학습 데이터는 저장부(150)에 저장될 수 있다.
NLU 학습 데이터는 지속적으로 업데이트될 수 있고, 대화 엔진(120)은 주기적으로 또는 특정 이벤트가 발생했을 때, 예를 들어 일정량 이상의 학습 데이터가 추가 되었을 때 저장부(150)에 저장된 학습 데이터를 이용하여 재학습을 수행함으로써 업데이트될 수 있다.
대화 엔진(120)은 자연어 이해 결과에 따라 시스템 발화를 생성할 수 있다. NLU 엔진이 사용자 의도 파악에 성공한 경우에는 파악된 사용자 의도를 확인 받기 위한 시스템 발화를 생성할 수 있다. 예를 들어, 사용자 의도가 [에어컨 실행]인 경우에는 "에어컨을 실행할까요?"라는 시스템 발화를 생성할 수 있고, 사용자 의도가 [문자 전송]인 경우에는 "누구에게 어떤 내용으로 문자를 전송할까요?"라는 시스템 발화를 생성할 수 있다.
또는, NLU 엔진이 사용자 의도 파악에 실패한 경우에는 "죄송합니다", "모르겠습니다" 등 사용자 의도를 파악하지 못했음을 알리는 시스템 발화를 생성할 수 있다.
시스템 발화는 NLG(Natural Language Generating) 엔진에서 생성할 수 있고, NLG 엔진에서 생성된 시스템 발화는 TTS(Text to Speech) 엔진(130)으로 입력될 수 있다.
TTS 엔진(130)은 텍스트 형태의 시스템 발화를 음성 신호로 변환하여 스피커(20)를 통해 출력할 수 있다.
전술한 바와 같이, STT 엔진(110)에서 발화 음성을 오인식하여 실제 사용자 발화와 다른 내용의 발화 텍스트를 출력하는 경우가 발생할 수 있다. 이러한 경우, 대화 엔진(120)에서 발화 텍스트로부터 사용자 의도를 판단하는데 실패할 가능성이 있다.
또는, STT 엔진(110)에서는 사용자 발화를 오인식하지 않고 실제 사용자 발화와 일치하는 내용의 발화 텍스트를 출력하였더라도, 사용자 발화 자체의 모호함으로 인해 대화 엔진(120)에서 발화 텍스트로부터 사용자 의도를 판단하는데 실패할 가능성 역시 존재한다.
제어부(140)는 대화 엔진(120)이 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 사용자 의도를 판단하는데 실패한 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장부(150)에 저장할 수 있다.
또한, 제어부(140)는 사용자 의도에 대응되는 액션을 수행하기 위한 제어 명령을 생성할 수 있고, 생성된 제어 명령은 통신부(160, 도 3 참조)를 통해 액션 수행을 위해 필요한 전자 기기 또는 서버 전송될 수 있다. 예를 들어, 수행될 액션이 전자 기기의 제어와 관련된 경우에는, 해당 전자 기기에 액션 수행을 위한 제어 명령이 전송될 수 있다.
도 2는 일 실시예에 따른 대화 시스템에 있어서, 저장부에 저장되는 데이터베이스를 구체화한 제어 블록도이고, 도 3은 일 실시예에 따른 대화 시스템이 통신부를 더 포함하는 경우의 제어 블록도이다.
도 2를 참조하면, 저장부(150)에는 STT 엔진(110)의 학습에 이용되는 STT 학습 데이터가 저장되는 STT 학습 데이터베이스(151) 및 NLU 엔진의 학습에 이용되는 NLU학습 데이터가 저장되는 NLU 학습 데이터베이스(152)가 저장될 수 있다.
저장부(140)는 ROM, 플래시 메모리, 마그네틱 컴퓨터 기억 장치, 광디스크 드라이브 등과 같은 비휘발성 메모리를 포함할 수 있다.
전술한 바와 같이, NLU 학습 데이터베이스(152)에는 NLU 학습 데이터가 추가되어 업데이트될 수 있으며, 대화 엔진(120)은 업데이트된 NLU 학습 데이터베이스(152)를 이용하여 재학습을 수행할 수 있다. 특히, 대화 엔진(120)은 사용자 의도를 판단하는데 실패한 발화 텍스트와 실제 사용자 의도가 매칭된 학습 데이터를 이용하여 재학습을 수행함으로써, 사용자 의도 파악의 실패 확률을 낮추고 정확도를 향상시킬 수 있다.
제어부(140)는 실제 사용자 의도를 판단하기 위해, 상황 정보 또는 추가 사용자 발화 중 적어도 하나를 이용할 수 있다. 여기서, 상황 정보는 사용자 발화가 입력되기 전후에 획득된 사용자의 행동에 관한 정보 및 사용자 발화가 입력된 이후에 실행된 전자 기기의 동작에 관한 정보 중 적어도 하나를 포함할 수 있다.
예를 들어, 사용자의 행동에 관한 정보는 카메라에 의해 획득될 수 있다. 즉, 사용자의 행동에 관한 정보는 사용자를 촬영한 영상일 수 있다. 대화 시스템(100)이 차량에서 사용되는 경우에는 카메라가 차량 내부에 마련된 블랙박스의 카메라일 수 있고, 대화 시스템(100)이 가정에서 사용되는 경우에는 카메라가 AI 스피커에 마련된 카메라이거나 TV에 마련된 카메라 이거나 냉장고에 마련된 카메라일 수 있다. 즉, 사용자의 행동에 관한 정보는 가전 기기를 포함하는 전자 기기에 마련된 카메라에 의해 획득될 수 있다.
구체적인 예로, 사용자 발화의 입력 전후 미리 설정된 시간 내에 카메라가 촬영한 영상에서 사용자가 손으로 부채질을 하는 등 더워하는 모습을 보이는 경우 실제 사용자 의도는 에어컨의 제어와 관련될 것으로 판단될 수 있다. 또는, 사용자가 전자 기기를 제어하는 모습이 촬영되면 실제 사용자 의도는 해당 전자 기기의 제어와 관련된 것으로 판단될 수 있다.
전자 기기의 동작에 관한 정보는 해당 전자 기기로부터 제공될 수 있다. 예를 들어, 전자 기기의 동작에 관한 정보는 사용자 발화가 입력된 이후에 전자 기기가 온/오프되거나 설정이 변경되는 등 동작 상태가 변경된 것과 관련된 정보일 수 있다.
전자 기기는 냉장고, 세탁기, 에어컨, 공기 청정기, 로봇 청소기, 정수기, TV, 건조기, 의류 관리기 등과 같은 가전 기기 및 사용자 단말기를 포함할 수 있다.
도 3을 참조하면, 일 실시예에 따른 대화 시스템(100)은 외부 기기와 통신하여 데이터를 주고 받는 통신부(160)를 더 포함할 수 있다. 통신부(160)와 통신을 수행하는 외부 기기는 대화 시스템(100)에 등록된 전자 기기 또는 외부 서버일 수 있다. 대화 시스템(100)에 등록된 전자 기기는 전술한 사용자 단말기 및 가전 기기를 포함할 수 있다.
수신하는 상황 정보가 카메라에 의해 획득된 사용자 행동에 관한 정보인 경우, 사용자를 촬영한 카메라가 직접 대화 시스템(100)에 사용자 행동에 관한 정보를 전송할 수도 있고, 카메라가 차량에 마련된 경우에는 차량에 마련된 통신 모듈을 통해 대화 시스템(100)에 사용자 행동에 관한 정보를 전송할 수도 있다. 또한, 카메라가 사용자의 댁내에 마련되어 있고 가전 기기들 사이에 네트워크가 형성되어 IoT 인프라가 구축되어 있는 경우에는 허브 역할을 하는 가전 기기 또는 AI 스피커를 통해 사용자 행동에 관한 정보를 전송할 수도 있다.
수신하는 상황 정보가 전자 기기의 동작에 관한 정보인 경우, 해당 전자 기기에 마련된 통신 모듈을 통해 대화 시스템(100)에 전자 기기의 동작에 관한 정보를 전송할 수도 있고, IoT 인프라가 구축되어 있는 경우에는 허브 역할을 하는 가전 기기 또는 AI 스피커를 통해 사용자 행동에 관한 정보를 전송할 수도 있다.
또한, 통신부(160)는 사용자 의도에 대응되는 액션을 수행하기 위해 외부 서버와 통신을 수행하는 것도 가능하다. 예를 들어, 사용자 의도에 대응되는 액션이 특정 정보의 제공인 경우에 해당 정보를 제공해주는 외부 서버에 정보를 요청하고 외부 서버로부터 해당 정보를 수신할 수 있다.
도 4는 일 실시예에 따른 대화 시스템이 사용자 발화를 오인식한 상황을 나타낸 도면이며, 도 5는 일 실시예에 따른 대화 시스템에 저장되는 학습 데이터의 예시를 나타낸 도면이다.
도 4의 예시를 참조하면, 사용자가 "에어컨 켜"라는 사용자 발화를 마이크(10)에 입력하였으나, STT 엔진(110)이 이를 잘못 인식하여 "에이트 켜"라는 발화 텍스트를 출력한 경우를 가정한다.
"에이트 켜"라는 발화 텍스트는 대화 엔진(120)에 입력되고 대화 엔진(120)은 입력된 발화 텍스트에 자연어 이해 기술을 적용하여 사용자 의도 파악을 시도한다. 사용자 의도를 파악하는데 실패한 경우, 대화 엔진(120)은 이에 대한 시스템 발화로 "잘 모르겠습니다"를 생성할 수 있고, 생성된 시스템 발화는 TTS 엔진(130)에서 음성 신호로 변환되어 스피커(20)를 통해 출력될 수 있다.
이 때, 사용자는 추가 사용자 발화를 입력할 수도 있고, 도 3의 예시와 같이 의도했던 액션(에어컨_ON)을 직접 수행할 수도 있다. 에어컨이 켜짐을 나타내는 상황 정보는 제어부(140)에 제공될 수 있고, 제어부(140)는 제공된 상황 정보(에어컨 켜짐)로부터 실제 사용자 의도가 [에어컨 실행]이었음을 판단할 수 있다.
도 5에 도시된 바와 같이, 제어부(140)는 대화 엔진(120)이 사용자 의도를 파악하는데 실패한 발화 텍스트 "에이트 켜"와 실제 사용자 의도인 [에어컨 실행]을 매칭시켜 NLU 학습 데이터베이스(152)에 저장할 수 있다. 그 외에 다른 예시들과 같이 STT 엔진(110)에서 사용자 발화를 오인식하여 대화 엔진(120)이 사용자 의도 판단에 실패한 경우, STT 엔진(110)의 출력인 발화 텍스트와 실제 사용자 의도를 각각 매칭시켜 저장할 수 있다.
대화 엔진(120)은 NLU 학습 데이터베이스(152)에 저장된 학습 데이터를 이용하여 재학습을 수행할 수 있고, 이러한 방식으로 학습이 반복되면 STT 엔진(110)에서 사용자 발화를 오인식하여 사용자 발화와 다른 내용의 텍스트를 출력하더라도 사용자 의도를 제대로 파악할 수 있게 된다.
또한, STT 학습 데이터베이스(151) 역시 학습 데이터가 추가되어 업데이트될 수 있고, STT 엔진(110)은 업데이트된 STT 학습 데이터베이스(151)를 이용하여 재학습을 수행할 수 있다.
다시 도 2를 참조하면, 제어부(140)는 사용자 의도를 판단하는데 실패한 사용자 발화와 발화 텍스트를 실제 사용자 의도와 매칭시켜 STT 학습 데이터베이스(151)에 저장할 수 있다. 사용자 의도 판단에 실패할 때마다 또는 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않을 때마다 이러한 과정이 반복되면서 STT 학습 데이터베이스(151)에 학습 데이터가 축적될 수 있다.
STT 엔진(110)은 STT 학습 데이터베이스(151)에 저장된 사용자 발화와 발화 텍스트 및 이에 대응되는 실제 사용자 의도를 이용하여 학습을 다시 수행함으로써 음성 인식 성능이 향상될 수 있다.
전술한 예시에서는 STT 엔진(110)에서 사용자 발화를 오인식한 경우를 예로 들었으나, 대화 시스템(100)의 실시예는 STT 엔진(110)에서 사용자 발화를 제대로 인식하였으나 사용자 발화 자체의 모호함으로 인해 대화 엔진(120)이 사용자 의도 판단에 실패한 경우도 포함할 수 있다.
도 6, 도 7 및 도 8은 일 실시예에 따른 대화 시스템이 사용자 의도를 판단하는데 성공했으나, 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않는 상황을 나타낸 도면이며, 도 9는 일 실시예에 따른 대화 시스템에 저장되는 학습 데이터의 다른 예시를 나타낸 도면이다.
도 6 및 도 7의 예시를 참조하면, 사용자가 "빨래 말려"라는 사용자 발화를 마이크(10)에 입력하였고 STT 엔진(110)이 이를 제대로 인식하여 "빨래 말려"라는 발화 텍스트를 출력한 경우를 가정한다. 도 6 내지 도 8의 예시에서 실제 사용자 의도는 건조기 실행이다.
"빨래 말려"라는 발화 텍스트는 대화 엔진(120)에 입력되고 대화 엔진(120)은 입력된 발화 텍스트에 자연어 이해 기술을 적용하여 사용자 의도를 판단할 수 있다. 예를 들어, 대화 엔진(120)은 "빨래"라는 단어로부터 사용자 의도를 [세탁기 실행]으로 판단할 수 있다.
사용자 의도 판단에 성공한 경우, 대화 엔진(120)은 판단된 사용자 의도를 사용자에게 확인 받기 위해, 판단된 사용자 의도에 대한 정보가 포함된 시스템 발화를 생성할 수 있다. 예를 들어, 시스템 발화로 "세탁기를 실행시킬까요?"를 생성할 수 있고, 생성된 시스템 발화는 TTS 엔진(130)에서 음성 신호로 변환되어 스피커(20)를 통해 출력될 수 있다.
이 때, 사용자는 판단된 사용자 의도에 대해 긍정적인 사용자 응답 또는 부정적인 사용자 응답을 마이크(10)에 입력할 수 있다. 세탁기 실행이 실제 사용자 의도와 일치하면 사용자는 마이크(10)에 긍정적인 사용자 응답을 입력할 수 있고, 일치하지 않으면 사용자는 마이크(10)에 부정적인 사용자 응답을 입력할 수 있다.
긍정적인 사용자 응답이 입력되면 제어부(140)는 판단된 사용자 의도에 따라 세탁기를 실행시키기 위한 제어 명령을 생성하고, 생성된 제어 명령을 통신부(160)를 통해 세탁기에 전송할 수 있다.
대화 시스템(100)과 세탁기 사이의 통신은 매개체 없이 직접 이루어질 수도 있고, AI 스피커나 허브 역할을 수행하는 다른 가전 기기를 매개체로 하여 이루어질 수도 있다.
부정적인 사용자 응답이 입력되면 제어부(140)는 추가 사용자 발화 또는 상황 정보에 기초하여 실제 사용자 의도를 판단할 수 있다.
앞서 언급한 바와 같이, 당해 예시에서 실제 사용자 의도는 [세탁기 실행]이다. 따라서, 사용자는 도 6의 예시와 같이 부정적인 사용자 응답 "아니"를 입력할 수 있고, 여기에 더하여 실제 사용자 의도를 나타내는 추가 사용자 발화 "건조기 돌려달라고"를 입력할 수 있다.
마이크(10)에 입력된 추가 사용자 발화는 STT 엔진(110)에서 발화 텍스트로 변환되고, 변환된 발화 텍스트는 대화 엔진(120)에 입력될 수 있다. 추가 사용자 발화를 변환한 발화 텍스트는 최초 입력된 사용자 발화를 변환한 발화 텍스트와 구분하기 위해 추가 발화 텍스트라 하기로 한다.
대화 엔진(120)은 전술한 과정에 따라 추가 발화 텍스트 "건조기 돌려달라고"에 자연어 이해 기술을 적용하여 실제 사용자 의도 [건조기 실행]를 판단할 수 있고, 다시 사용자 의도를 확인 받기 위한 시스템 발화를 출력할 수 있다.
출력된 시스템 발화에 대해 긍정적인 사용자 응답이 입력되면, 제어부(140)는 건조기를 실행하기 위한 제어 명령을 생성하여 통신부(160)를 통해 건조기, AI 스피커 또는 허브 가전 기기에 전송할 수 있다.
한편, 대화 시스템(100)이 판단한 사용자 의도가 실제 사용자 의도와 일치하지 않는 경우에, 사용자는 도 7의 예시와 같이 부정적인 사용자 응답 "아니"만을 입력하고 추가 발화 없이 직접 실제 사용자 의도 [건조기 실행]에 대응되는 액션을 수행하는 것도 가능하다. 사용자에 의해 건조기(D)가 켜지면, 건조기 켜짐을 나타내는 상황 정보가 통신부(160)를 거쳐 제어부(140)에 전송되고, 제어부(140)는 전송된 상황 정보에 기초하여 실제 사용자 의도를 판단할 수 있다.
다른 예로, 대화 엔진(120)이 판단한 사용자 의도에 대한 확인 절차 없이 바로 판단된 사용자 의도에 대응되는 액션을 수행하는 것도 가능하다. 다만, 이 경우에도 도 8에 도시된 바와 같이 수행할 액션에 관한 정보를 제공하기 위한 시스템 발화 "세탁기를 실행시키겠습니다"는 출력될 수 있다.
사용자는 의도하지 않았던 액션과 반대되는 액션 및 추가 액션을 수행할 수 있다. 추가 액션은 실제 사용자 의도에 대응되는 액션을 의미한다. 당해 예시에서, 사용자는 켜진 세탁기(W)를 다시 끌 수 있고 건조기(D)를 켤 수 있다. 대화 시스템(100)에 의해 수행된 액션에 반대되는 액션 수행(세탁기 꺼짐)과 추가 액션 수행(건조기 켜짐)을 나타내는 상황 정보는 통신부(160)를 거쳐 제어부(140)에 전송될 수 있다.
제어부(140)는 수신된 상황 정보에 기초하여 실제 사용자 의도를 판단할 수 있다. 구체적으로, 제어부(140)는 수행된 액션에 반대되는 액션 수행을 나타내는 상황 정보가 수신되면 대화 엔진(120)이 판단한 사용자 의도 [세탁기 실행]이 실제 사용자 의도와 일치하지 않는다는 것을 알 수 있고, 추가 액션 수행을 나타내는 상황 정보에 기초하여 실제 사용자 의도 [건조기 실행]을 판단할 수 있다.
도 9에 도시된 바와 같이, 제어부(140)는 발화 텍스트와 실제 사용자 의도를 매칭시켜 NLU 데이터베이스(152)에 저장할 수 있다. 여기서, 도 6 내지 도 8의 예시에서 저장되는 발화 텍스트는 최초 입력된 사용자 발화를 변환한 텍스트 "빨래 말려"에 해당한다. NLU 엔진이 재학습을 수행하여 업데이트되면, 이후에 "빨래 말려"와 동일 또는 유사한 종류의 모호한 사용자 발화가 입력되더라도 성능이 향상된 NLU 엔진은 이에 대응되는 사용자 의도로 [건조기 실행]을 판단할 수 있다.
한편, 전술한 도 6 내지 도 8의 예시에서는 STT 엔진(110)에서 사용자 발화를 제대로 인식하고 대화 엔진(120)에서도 사용자 의도 판단에 성공하였으나 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않는 경우에 대해 설명하였다. 다만, 대화 시스템(100)의 실시예가 이에 한정되는 것은 아니다. STT 엔진(110)에서 사용자 발화를 오인식한 경우에도 대화 엔진(120)에서는 사용자 의도 판단에 성공하고 판단된 사용자 의도가 실제 사용자 의도가 일치하지 않는 경우도 발생할 수 있는바, 이러한 경우에도 전술한 실시예가 적용될 수 있다.
즉, 대화 시스템(100)의 실시예는 대화 엔진(120)에서 사용자 의도 판단에 실패한 경우와 대화 엔진(120)에서 사용자 의도 판단에 성공했으나 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않는 경우에 적용될 수 있고, 두 경우 모두 STT 엔진(110)에서 사용자 발화를 오인식한 경우와 STT 엔진(110)에서는 사용자 발화를 제대로 인식했으나 사용자 발화 자체에 모호함이 있는 경우를 모두 포함할 수 있다.
또한, 제어부(140)가 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단한 이후에 사용자로부터 실제 사용자 의도에 대한 확인을 받음으로써, 실제 사용자 의도에 대한 신뢰성을 높이는 것도 가능하다. 이를 위해, NLU 엔진이 제어부(140)가 판단한 실제 사용자 의도가 사용자가 의도한 것이 맞는지 확인하기 위한 시스템 발화를 생성하고, TTS 엔진(130)이 생성된 텍스트 형태의 시스템 발화를 음성 신호로 변환하여 스피커(20)를 통해 출력할 수 있다.
사용자로부터 긍정적인 답변이 입력되면, 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장부(150)에 저장할 수 있다.
이하, 일 실시예에 따른 대화 시스템의 제어 방법을 설명한다. 일 실시예에 따른 대화 시스템의 제어 방법을 실시함에 있어서 전술한 대화 시스템(100)이 사용될 수 있다. 따라서, 앞서 도 1 내지 도 9를 참조하여 설명한 내용은 별도의 언급이 없더라도 대화 시스템의 제어 방법에 대한 실시예에도 적용 가능하다.
도 10은 일 실시예에 따른 대화 시스템의 제어 방법에 대한 순서도이다.
도 10을 참조하면, STT 엔진(110)에서 사용자 발화를 발화 텍스트로 변환하고(1010), 대화 엔진(120)에서 학습에 기반하여 발화 텍스트에 대응되는 사용자 의도를 판단할 수 있다(1020). 여기서, STT 엔진(110)의 출력인 발화 텍스트는 사용자 발화와 그 내용이 일치할 수도 있고, STT 엔진(110)에서 사용자 발화를 오인식하여 사용자 발화와 다른 내용의 발화 텍스트를 출력하게 될 수도 있다.
STT 엔진(110)은 마이크(10)를 통해 입력된 사용자 발화에 음성 인식 알고리즘을 적용하여 사용자 발화를 발화 텍스트로 변환할 수 있으며, 음성 인식 알고리즘은 머신 러닝 또는 딥 러닝에 기반한 것일 수 있다.
대화 엔진(120)은 STT 엔진(110)에서 출력된 발화 텍스트에 자연어 이해(NLU) 기술을 적용하여 발화 텍스트에 대응되는 사용자 의도를 판단할 수 있다. 대화 엔진(120) 역시 머신 러닝 또는 딥 러닝을 적용한 학습 기반의 엔진일 수 있다.
대화 엔진(120)이 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우(1020의 아니오), 제어부(140)는 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단한다(1030).
상황 정보는 사용자 발화가 입력된 이후에 실행된 전자 기기의 동작에 관한 정보 및 사용자의 행동에 관한 정보 중 하나를 포함할 수 있다. 전자 기기는 대화 시스템(100)에 등록된 것으로서, 앞서 설명한 사용자 단말기 또는 가전 기기일 수 있고, 상황 정보는 대화 시스템(100)에 등록된 전자 기기로부터 수신될 수 있다.
추가 사용자 발화는 사용자 발화를 판단하는데 실패한 이후에 추가로 입력된 사용자 발화일 수 있고, STT 엔진(110)에서 이를 추가 발화 텍스트로 변환하여 대화 엔진(120)에 입력하면, 대화 엔진(120)은 추가 발화 텍스트에 자연어 이해 기술을 적용하여 실제 사용자 의도를 판단할 수 있다.
실제 사용자 의도를 판단하는 구체적인 과정에 대한 설명은 앞서 도 4 를 참조하여 설명한 바와 같다.
제어부(140)는 사용자 의도 판단에 실패한 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장부(150)에 저장한다(1040). 특히, 발화 텍스트와 실제 사용자 의도는 NLU 학습 데이터베이스(152)에 저장될 수 있다.
대화 엔진(120)은 NLU 학습 데이터베이스에 저장된 발화 텍스트와 실제 사용자 의도를 이용하여 재학습을 수행함으로써 업데이트될 수 있다. 대화 엔진(120)의 재학습은 주기적으로 이루어질 수도 있고, 특정 이벤트가 발생했을 때 이루어질 수도 있다. 일 예로, 특정 이벤트는 기준치 이상의 학습 데이터가 추가된 것을 포함할 수 있다. 이러한 방식으로 학습이 반복되면 STT 엔진(110)에서 사용자 발화를 오인식하여 사용자 발화와 다른 내용의 텍스트를 출력하더라도 사용자 의도를 제대로 파악할 수 있게 된다.
한편, 대화 엔진(120)에서 발화 텍스트에 대응되는 사용자 의도를 판단하는데 성공한 경우(1020의 예), 판단된 사용자 의도가 실제 사용자 의도와 일치하는지 여부를 판단할 수 있다(1060).
예를 들어, 대화 시스템(100)은 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력할 수 있고, 이에 대해 부정적인 사용자 응답이 입력되면 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않는 것으로 판단할 수 있다(1060의 아니오).
판단된 사용자 의도가 실제 사용자 의도와 일치하지 않으면(1060의 아니오), 전술한 과정에 따라 실제 사용자 의도를 판단하고(1030), 사용자 의도를 판단하는데 실패한 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장한 후(1040), 대화 엔진(120)이 재학습을 수행할 수 있다(1050).
판단된 사용자 의도를 확인 받기 위한 시스템 발화에 대해 긍정적인 사용자 응답이 입력되면, 판단된 사용자 의도가 실제 사용자 의도와 일치하는 것으로 판단할 수 있다(1060의 예).
판단된 사용자 의도가 실제 사용자 의도와 일치하면(1060의 예), 판단된 사용자 의도에 대응되는 액션을 수행할 수 있다(1070). 액션을 수행하기 위해, 제어부(140)는 액션을 수행하기 위한 제어 명령을 생성할 수 있고, 생성된 제어 명령을 통신부(160)를 통해 전자 기기 또는 외부 서버에 전송할 수 있다.
한편, 대화 시스템(100)이 사용자 의도 판단에 성공한 경우, 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력하지 않고 바로 그에 대응되는 액션을 수행할 수도 있다. 이러한 경우, 액션이 수행된 이후에 수행된 액션에 반대되는 액션 수행과 추가 액션 수행을 나타내는 상황 정보가 수신되면, 제어부(140)는 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않음을 확인하고, 추가 액션에 기초하여 실제 사용자 의도를 판단할 수 있다.
실제 사용자 의도가 판단되면, 전술한 바와 같이 사용자 의도 판단에 실패한 발화 텍스트와 실제 사용자 의도를 매칭시켜 NLU 학습 데이터베이스(152)에 저장할 수 있고(1040), 대화 엔진(120)은 저장된 데이터를 이용하여 재학습을 수행할 수 있다(1050).
또한, STT 학습 데이터베이스(151) 역시 학습 데이터가 추가되어 업데이트될 수 있고, STT 엔진(110)도 업데이트된 STT 학습 데이터베이스(151)를 이용하여 재학습을 수행할 수 있다.
구체적으로, 제어부(140)는 사용자 의도를 판단하는데 실패한 사용자 발화와 발화 텍스트를 실제 사용자 의도와 매칭시켜 STT 학습 데이터베이스(151)에 저장할 수 있다. 사용자 의도 판단에 실패할 때마다 또는 판단된 사용자 의도가 실제 사용자 의도와 일치하지 않을 때마다 이러한 과정이 반복되면서 STT 학습 데이터베이스(151)에 학습 데이터가 축적될 수 있다.
STT 엔진(110)은 STT 학습 데이터베이스(151)에 저장된 사용자 발화와 발화 텍스트 및 이에 대응되는 실제 사용자 의도를 이용하여 학습을 다시 수행함으로써 음성 인식 성능이 향상될 수 있다.
또한, 실제 사용자 의도를 판단(1030)한 이후에 사용자로부터 실제 사용자 의도에 대한 확인을 받음으로써, 실제 사용자 의도에 대한 신뢰성을 높이는 것도 가능하다. 이를 위해, NLU 엔진이 제어부(140)가 판단한 실제 사용자 의도가 사용자가 의도한 것이 맞는지 확인하기 위한 시스템 발화를 생성하고, TTS 엔진(130)이 생성된 텍스트 형태의 시스템 발화를 음성 신호로 변환하여 스피커(20)를 통해 출력할 수 있다.
사용자로부터 긍정적인 답변이 입력되면, 발화 텍스트와 실제 사용자 의도를 매칭시켜 저장부(150)에 저장할 수 있다(1040).
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안된다.
100: 대화 시스템
110: STT 엔진
120: 대화 엔진
130: TTS 엔진
140: 제어부
150: 저장부
160: 통신부

Claims (19)

  1. 사용자 발화를 발화 텍스트로 변환하는STT(Speech to Text) 엔진;
    상기 발화 텍스트에 대응되는 사용자 의도를 판단하는 학습 기반의 대화 엔진;
    상기 대화 엔진의 학습에 사용되는 학습 데이터가 저장되는 저장부; 및
    상기 대화 엔진이 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하는 제어부;를 포함하고,
    상기 대화 엔진은,
    상기 저장부에 저장된 발화 텍스트와 상기 실제 사용자 의도를 이용하여 학습을 수행하는 대화 시스템.
  2. 제 1 항에 있어서,
    상기 대화 엔진은,
    주기적으로 또는 정해진 이벤트의 발생 시에 상기 학습을 수행하는 대화 시스템.
  3. 제 1 항에 있어서,
    상기 대화 시스템에 등록된 전자 기기로부터 상기 상황 정보를 수신하는 통신부;를 더 포함하는 대화 시스템.
  4. 제 3 항에 있어서,
    상기 상황 정보는,
    상기 사용자 발화가 입력된 이후에 실행된 상기 전자 기기의 동작에 관한 정보 및 사용자의 행동에 관한 정보 중 하나를 포함하는 대화 시스템.
  5. 제 3 항에 있어서,
    상기 대화 엔진은,
    상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력하는 대화 시스템.
  6. 제 5 항에 있어서,
    상기 제어부는,
    상기 판단된 사용자 의도에 대해 부정적인 사용자 응답이 입력되면, 상기 사용자 발화가 입력되기 전후에 획득된 상황 정보 및 상기 시스템 발화 이후에 입력된 추가 사용자 발화 중 적어도 하나에 기초하여 상기 사용자의 실제 의도를 판단하고, 상기 발화 텍스트와 상기 사용자의 실제 의도를 매칭시켜 상기 저장부에 저장하는 대화 시스템.
  7. 제 3 항에 있어서,
    상기 제어부는,
    상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도에 대응되는 액션을 수행하기 위한 제어 명령을 생성하는 대화 시스템.
  8. 제 7 항에 있어서,
    상기 제어부는,
    상기 판단된 사용자 의도에 대응되는 액션이 수행된 이후에 상기 수행된 액션에 반대되는 액션 수행과 추가 액션 수행을 나타내는 상황 정보가 수신되면, 상기 수신된 상황 정보에 기초하여 상기 실제 사용자 의도를 판단하고, 상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하는 대화 시스템.
  9. 제 1 항에 있어서,
    상기 제어부는,
    상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하고,
    상기 STT 엔진은,
    상기 저장부에 저장된 상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 이용하여 학습을 수행하는 대화 시스템.
  10. 제 1 항에 있어서,
    상기 대화 엔진은,
    상기 판단된 실제 사용자 의도를 확인하기 위한 시스템 발화를 생성하고,
    상기 제어부는,
    상기 시스템 발화에 대해 사용자로부터 긍정적인 답변이 입력되면, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 상기 저장부에 저장하는 대화 시스템.
  11. STT(Speech to Text) 엔진에서 사용자 발화를 발화 텍스트로 변환하고;
    대화 엔진에서 학습에 기반하여 상기 발화 텍스트에 대응되는 사용자 의도를 판단하고;
    상기 대화 엔진이 상기 발화 텍스트에 대응되는 사용자 의도를 판단하는데 실패한 경우, 상황 정보 및 추가 사용자 발화 중 적어도 하나에 기초하여 실제 사용자 의도를 판단하고, 상기 사용자 의도를 판단하는데 실패한 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하고;
    상기 발화 텍스트와 상기 실제 사용자 의도를 이용하여 상기 대화 엔진의 학습을 수행하는 것;을 포함하는 대화 시스템의 제어 방법.
  12. 제 11 항에 있어서,
    상기 대화 엔진은,
    주기적으로 또는 정해진 이벤트의 발생 시에 상기 학습을 수행하는 대화 시스템의 제어 방법.
  13. 제 11 항에 있어서,
    상기 대화 시스템에 등록된 전자 기기로부터 상기 상황 정보를 수신하는 것;을 더 포함하는 대화 시스템의 제어 방법.
  14. 제 13 항에 있어서,
    상기 상황 정보는,
    상기 사용자 발화가 입력된 이후에 실행된 상기 전자 기기의 동작에 관한 정보 및 사용자의 행동에 관한 정보 중 하나를 포함하는 대화 시스템의 제어 방법.
  15. 제 13 항에 있어서,
    상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도를 확인 받기 위한 시스템 발화를 출력하는 것;을 더 포함하는 대화 시스템의 제어 방법.
  16. 제 15 항에 있어서,
    상기 판단된 사용자 의도에 대해 부정적인 사용자 응답이 입력되면, 상기 사용자 발화가 입력되기 전후에 획득된 상황 정보 및 상기 시스템 발화 이후에 입력된 추가 사용자 발화 중 적어도 하나에 기초하여 상기 실제 사용자 의도를 판단하고;
    상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하는 것;을 더 포함하는 대화 시스템의 제어 방법.
  17. 제 13 항에 있어서,
    상기 사용자 의도를 판단하는데 성공한 경우, 상기 판단된 사용자 의도에 대응되는 액션을 수행하기 위한 제어 명령을 생성하는 것;을 더 포함하는 대화 시스템의 제어 방법.
  18. 제 17 항에 있어서,
    상기 판단된 사용자 의도에 대응되는 액션이 수행된 이후에 상기 수행된 액션에 반대되는 액션 수행과 추가 액션 수행을 나타내는 상황 정보가 수신되면, 상기 수신된 상황 정보에 기초하여 상기 실제 사용자 의도를 판단하고;
    상기 발화 텍스트와 상기 실제 사용자 의도를 매칭시켜 저장하는 것;을 더 포함하는 대화 시스템의 제어 방법.
  19. 제 11 항에 있어서,
    상기 사용자 발화, 상기 발화 텍스트 및 상기 실제 사용자 의도를 매칭시켜 저장하고;
    상기 저장된 사용자 발화, 발화 텍스트 및 실제 사용자 의도를 이용하여 상기 STT 엔진의 학습을 수행하는 것;을 더 포함하는 대화 시스템의 제어 방법.
KR1020200048707A 2020-04-22 2020-04-22 대화 시스템 및 그 제어 방법 KR20210130465A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200048707A KR20210130465A (ko) 2020-04-22 2020-04-22 대화 시스템 및 그 제어 방법
US17/119,344 US11664018B2 (en) 2020-04-22 2020-12-11 Dialogue system, dialogue processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200048707A KR20210130465A (ko) 2020-04-22 2020-04-22 대화 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20210130465A true KR20210130465A (ko) 2021-11-01

Family

ID=78222661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200048707A KR20210130465A (ko) 2020-04-22 2020-04-22 대화 시스템 및 그 제어 방법

Country Status (2)

Country Link
US (1) US11664018B2 (ko)
KR (1) KR20210130465A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230088086A (ko) * 2021-12-10 2023-06-19 삼성전자주식회사 오인식된 음성 신호를 처리하는 방법 및 이를 위한 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762156B2 (en) * 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
KR20140139922A (ko) 2013-05-28 2014-12-08 삼성전자주식회사 음성 인식 장치 및 이의 음성 인식 방법
KR102338990B1 (ko) 2017-01-23 2021-12-14 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
JP7000924B2 (ja) * 2018-03-06 2022-01-19 株式会社Jvcケンウッド 音声内容制御装置、音声内容制御方法、及び音声内容制御プログラム
KR102445365B1 (ko) 2018-03-19 2022-09-20 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법

Also Published As

Publication number Publication date
US11664018B2 (en) 2023-05-30
US20210335347A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
CN111028827B (zh) 基于情绪识别的交互处理方法、装置、设备和存储介质
US11887582B2 (en) Training and testing utterance-based frameworks
US10878807B2 (en) System and method for implementing a vocal user interface by combining a speech to text system and a speech to intent system
US10714085B2 (en) Temporary account association with voice-enabled devices
US11763808B2 (en) Temporary account association with voice-enabled devices
US11509525B1 (en) Device configuration by natural language processing system
KR102485342B1 (ko) 차량의 환경에 기반한 추천 신뢰도 판단 장치 및 방법
US11450320B2 (en) Dialogue system, dialogue processing method and electronic apparatus
US11361764B1 (en) Device naming-indicator generation
WO2019171732A1 (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
US20220180864A1 (en) Dialogue system, dialogue processing method, translating apparatus, and method of translation
KR20190093962A (ko) 화자 인식을 수행하기 위한 음성 신호 처리 방법 및 그에 따른 전자 장치
US11615787B2 (en) Dialogue system and method of controlling the same
US11664018B2 (en) Dialogue system, dialogue processing method
CN109887490A (zh) 用于识别语音的方法和装置
US11942094B2 (en) Hybrid multilingual text-dependent and text-independent speaker verification
CN112309396A (zh) 一种ai虚拟机器人状态动态设置系统
CN112037772A (zh) 基于多模态的响应义务检测方法、系统及装置
CN111883109A (zh) 语音信息处理及验证模型训练方法、装置、设备及介质
EP3776300A1 (en) Temporary account association with voice-enabled devices
US20230386455A1 (en) Dialogue System and Method for Controlling the Same
KR20210052563A (ko) 문맥 기반의 음성인식 서비스를 제공하기 위한 방법 및 장치
CN116013277A (zh) 语音处理方法、装置、电子设备和存储介质