KR20230153854A - 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법 - Google Patents

사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법 Download PDF

Info

Publication number
KR20230153854A
KR20230153854A KR1020220053817A KR20220053817A KR20230153854A KR 20230153854 A KR20230153854 A KR 20230153854A KR 1020220053817 A KR1020220053817 A KR 1020220053817A KR 20220053817 A KR20220053817 A KR 20220053817A KR 20230153854 A KR20230153854 A KR 20230153854A
Authority
KR
South Korea
Prior art keywords
user
call
user terminal
utterance
party
Prior art date
Application number
KR1020220053817A
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 KR1020220053817A priority Critical patent/KR20230153854A/ko
Priority to US18/106,888 priority patent/US20230352015A1/en
Publication of KR20230153854A publication Critical patent/KR20230153854A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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 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/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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/64Automatic arrangements for answering calls; Automatic arrangements for recording messages for absent subscribers; Arrangements for recording conversations
    • H04M1/642Automatic arrangements for answering calls; Automatic arrangements for recording messages for absent subscribers; Arrangements for recording conversations storing speech in digital form
    • 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
    • G10L2015/088Word spotting
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/41Electronic components, circuits, software, systems or apparatus used in telephone systems using speaker recognition

Abstract

일 실시예에 따른 사용자 단말은, 사용자의 발화가 입력되는 마이크; 통화 중 상대방의 발화가 출력되는 스피커; 상기 통화 중 트리거 신호가 입력되면 음성 인식 기능을 활성화시키는 컨트롤러; 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력되는 사용자의 발화와 상기 통화의 내용과 관련된 정보를 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 통신 모듈; 을 포함하고, 상기 컨트롤러는, 상기 대화 시스템으로부터 전송되는 시스템 응답을 출력하도록 상기 스피커를 제어한다.

Description

사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법{USER TERMINAL, METHOD FOR CONTROLLING USER TERMINAL AND DIALOGUE MANAGEMENT METHOD}
개시된 발명은 사용자가 통화 중에도 음성 인식 기능을 사용할 수 있는 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악할 수 있는 장치이다. 이러한 대화 시스템은 차량, 모바일 기기, 가전 기기 등 일상 생활에서 사용되는 다양한 전자 장치와 연결되어 사용자의 발화에 대응되는 다양한 기능들이 수행될 수 있도록 한다.
대화 시스템과 연결되는 전자 장치에는 마이크가 구비될 수 있고, 사용자는 전자 장치에 구비된 마이크를 통해 음성 명령을 입력할 수 있다.
한편, 대화 시스템과 연결되는 전자 장치 중 모바일 기기나 차량의 경우, 통화 기능도 수행이 가능하고 통화 기능의 수행 중에는 마이크에 입력된 사용자의 음성이 대화 시스템으로 전달되는 것이 아니라 통화 상대방에게 전달된다.
개시된 발명은 사용자가 통화 중인 경우에도 필요에 따라 음성 인식 기능을 편리하게 사용 가능하고, 사용자의 통화 내용이 반영된 시스템 응답이 제공되는 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법을 제공한다.
일 실시예에 따른 사용자 단말은, 사용자의 발화가 입력되는 마이크; 통화 중 상대방의 발화가 출력되는 스피커; 상기 통화 중 트리거 신호가 입력되면 음성 인식 기능을 활성화시키는 컨트롤러; 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력되는 사용자의 발화와 상기 통화의 내용과 관련된 정보를 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 통신 모듈; 을 포함하고, 상기 컨트롤러는, 상기 대화 시스템으로부터 전송되는 시스템 응답을 출력하도록 상기 스피커를 제어한다.
상기 사용자 단말은, 상기 통화의 내용과 관련된 정보를 저장하는 스토리지;를 더 포함할 수 있다.
상기 통화의 내용과 관련된 정보는, 상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 포함할 수 있다.
상기 스토리지는, 상기 통화의 내용과 관련 정보를 오디오 신호의 형태로 저장할 수 있다.
상기 사용자 단말은, 상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 텍스트로 변환하는 음성 인식 모듈;을 더 포함할 수 있다.
상기 스토리지는, 상기 통화의 내용과 관련 정보를 텍스트의 형태로 저장할 수 있다.
상기 통화의 내용과 관련된 시스템 응답은, 상기 통화의 내용과 관련된 정보 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력된 상기 사용자의 발화에 기초하여 생성될 수 있다.
상기 통신 모듈은, 제1채널을 통해 상기 사용자의 발화를 상기 상대방에게 전달하고, 제2채널을 통해 상기 사용자의 발화를 상기 대화 시스템에 전송할 수 있다.
상기 컨트롤러는, 상기 트리거 신호가 입력되면 상기 마이크를 통해 입력되는 사용자의 발화가 상기 상대방에게 전달되지 않도록 상기 제1채널을 닫을 수 있다.
상기 트리거 신호는, 상기 통화 중 상기 사용자가 상기 상대방에게 발화하는 미리 정해진 특정 단어를 포함할 수 있다.
상기 컨트롤러는, 상기 음성 인식 기능이 활성화된 시점을 기준으로 정해진 시간 이내에 저장된 통화 내용 관련 정보를 상기 통신 모듈을 통해 상기 대화 시스템에 전송할 수 있다.
상기 컨트롤러는, 상기 시스템 응답이 상기 통화의 내용과 관련된 것이면, 상기 시스템 응답을 상기 상대방에게 전송하도록 상기 통신 모듈을 제어할 수 있다.
상기 컨트롤러는, 상기 사용자의 선택에 따라, 상기 시스템 응답을 상기 상대방에게 전송하도록 상기 통신 모듈을 제어할 수 있다.
일 실시예에 따른 사용자 단말의 제어 방법은, 마이크를 통해 사용자의 발화를 입력 받는 단계; 스피커를 통해 통화 중 상대방의 발화를 출력하는 단계; 상기 통화의 내용과 관련된 정보를 저장하는 단계; 상기 통화 중 트리거 신호가 입력되면 음성 인식 기능을 활성화시키는 단계; 상기 트리거 신호의 입력 이후에 상기 마이크에 입력되는 사용자의 발화와 상기 통화의 내용과 관련된 정보를 통신 모듈을 통해 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계; 및 상기 대화 시스템으로부터 전송되는 시스템 응답을 출력하도록 상기 스피커를 제어하는 단계;를 포함한다.
상기 통화의 내용과 관련된 정보는, 상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 포함할 수 있다.
상기 통화의 내용과 관련된 정보를 저장하는 단계는, 상기 통화의 내용과 관련 정보를 오디오 신호의 형태로 저장하는 것을 포함할 수 있다.
상기 통화의 내용과 관련된 정보를 저장하는 단계는, 상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 텍스트로 변환하고, 상기 통화의 내용과 관련 정보를 텍스트의 형태로 저장하는 것을 포함할 수 있다.
상기 통화의 내용과 관련된 시스템 응답은, 상기 통화의 내용과 관련된 정보 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력된 상기 사용자의 발화에 기초하여 생성될 수 있다.
상기 방법은 상기 통화 중 상기 마이크를 통해 입력된 상기 사용자의 발화를 상기 통신 모듈의 제1채널을 통해 상기 상대방에게 전달하는 단계;를 더 포함하고, 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계는, 상기 제1채널은 닫고, 상기 통신 모듈의 제2채널을 통해 상기 사용자의 발화를 상기 대화 시스템에 전송하는 것을 포함할 수 있다.
상기 트리거 신호는, 상기 통화 중 상기 사용자가 상기 상대방에게 발화하는 미리 정해진 특정 단어를 포함할 수 있다.
상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계는, 상기 음성 인식 기능이 활성화된 시점을 기준으로 정해진 시간 이내에 저장된 통화 내용 관련 정보를 상기 통신 모듈을 통해 상기 대화 시스템에 전송하는 것을 포함할 수 있다.
상기 방법은, 상기 시스템 응답이 상기 통화의 내용과 관련된 것이면, 상기 시스템 응답을 상기 통신 모듈을 통해 상기 상대방에게 전송하는 단계;를 더 포함할 수 있다.
상기 방법은, 상기 시스템 응답을 상기 상대방에게 전송할 지 여부에 대한 사용자의 선택을 입력 받는 단계; 및 상기 사용자의 선택에 기초하여 상기 시스템 응답을 상기 통신 모듈을 통해 상기 상대방에게 전송하는 단계;를 더 포함할 수 있다.
일 실시예에 따른 대화 관리 방법은, 사용자 단말로부터 사용자와 상대방 사이의 통화의 내용과 관련된 정보를 수신하는 단계; 상기 통화의 내용과 관련된 정보에 기초하여 상기 사용자의 의도를 미리 예측하는 단계; 상기 예측된 사용자의 의도에 대응하는 시스템 응답을 선제적으로 생성하는 단계; 상기 시스템 응답을 상기 사용자 단말에 전송하는 단계; 상기 통화의 종료 후에, 상기 사용자 단말로부터 상기 시스템 응답과 관련된 상기 사용자의 발화가 수신되면, 상기 수신된 사용자의 발화에 대응하는 새로운 시스템 응답을 생성하는 단계; 및 상기 새로운 시스템 응답을 상기 사용자 단말에 전송하는 단계;를 포함할 수 있다.
상기 사용자 단말은, 상기 통화가 종료되면 음성 인식 기능을 활성화시킬 수 있다.
상기 방법은, 상기 통화의 종료 후에 상기 사용자 단말로부터 수신된 상기 사용자의 발화가 상기 시스템 응답과 관련된 것인지 여부를 판단하는 단계;를 더 포함할 수 있다.
일 측면에 따른 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법에 의하면, 사용자가 통화 중인 경우에도 필요에 따라 음성 인식 기능을 편리하게 사용 가능하고, 사용자의 통화 내용이 반영된 시스템 응답이 제공될 수 있다.
도 1 은 일 실시예에 따른 대화 시스템의 동작을 나타내는 블록도이다.
도 2는 일 실시예에 따른 사용자 단말의 동작을 나타내는 블록도이다.
도 3 은 일 실시예에 따른 대화 시스템과 사용자 단말의 상호 관계를 나타내는 도면이다.
도 4는 일 실시예에 따른 사용자 단말의 제어 방법과 대화 관리 방법을 나타낸 순서도이다.
도 5는 일 실시예에 따른 사용자 단말의 동작을 나타낸 블록도이다.
도 6은 일 실시예에 따른 사용자 단말에 입력되는 사용자의 음성이 통화 상대방 또는 대화 시스템에 전달되는 채널을 나타낸 도면이다.
도 7 내지 도 10은 일 실시예에 따른 사용자 단말의 사용자가 통화 기능의 수행 중에 음성 인식 기능을 사용하는 구체적인 예시들을 나타낸 도면이다.
도 11은 일 실시예에 따른 사용자 단말의 제어 방법과 대화 관리 방법의 다른 예시를 나타낸 순서도이다.
도 12 및 도 13은 일 실시예에 따른 사용자 단말의 사용자가 통화 기능을 사용하는 중에 시스템 응답이 선제적으로 제공되는 구체적인 예시들을 나타낸 도면이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서의 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, 본 명세서에서 사용한 "제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지는 않으며, 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1구성 요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1구성 요소로 명명될 수 있다.
"및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
명세서에서 요소들의 리스트를 언급할 때 사용되는 "적어도 하나의~"의 표현은, 요소들의 조합을 변경할 수 있다. 예를 들어, "a, b, 또는 c 중 적어도 하나"의 표현은 오직 a, 오직 b, 오직 c, a 와 b 둘, a와 c 둘, b와 c 둘, 또는 a, b, c 모두의 조합을 나타내는 것으로 이해될 수 있다.
이하에서는 첨부된 도면을 참조하여 개시된 발명의 실시예들을 상세하게 설명하도록 한다.
도 1 은 일 실시예에 따른 대화 시스템의 동작을 나타내는 블록도이다.
도 1을 참조하면, 일 실시예에 따른 대화 시스템(1)은 사용자의 발화에 대해 노이즈 제거 등의 전처리를 수행하는 전처리 모듈(110), 사용자의 발화를 텍스트로 변환하는 음성 인식 모듈(120), 변환된 텍스트에 기초하여 사용자의 발화에 대한 도메인이나 인텐트를 분류하고, 엔티티 추출 및 슬롯 태깅을 수행하는 자연어 이해 모듈(130), 자연어 이해 모듈(130)의 출력에 기초하여 사용자의 발화에 대응되는 시스템 응답을 생성하는 대화 관리 모듈(140), 사용자 단말과 통신하는 통신 모듈(160) 및 후술하는 동작 수행에 필요한 정보를 저장하는 스토리지(180)를 포함한다.
전처리 모듈(110)은 오디오 신호의 형태로 전송된 사용자의 발화에 대해 노이즈 제거를 수행할 수 있고, EPD(End Point Detection) 기술을 적용하여 전송된 오디오 신호에서 실제 사용자의 발화가 포함된 음성 구간을 검출할 수 있다.
음성 인식 모듈(120)은 STT(Speech to Text) 엔진으로 구현될 수 있고, 사용자의 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다.
예를 들어, 음성 인식 모듈(120)은 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자의 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
또한, 음성 인식 모듈(120)은 머신 러닝 또는 딥 러닝에 의해 학습된 학습 모델에 기반하여 사용자의 발화를 텍스트로 변환하는 것도 가능하다. 당해 실시예에서는 음성 인식 모듈(120)이 사용자의 발화를 텍스트로 변환하는 방식에 대해서는 제한을 두지 않는바, 음성 인식 모듈(120)은 전술한 방식 외에도 다양한 음성 인식 기술을 적용하여 사용자의 발화를 텍스트로 변환할 수 있다.
자연어 이해 모듈(130)은 텍스트에 포함된 사용자의 의도를 판단하기 위해 자연어 이해(Natural Language Understanding: NLU) 기술을 적용할 수 있다. 따라서, 자연어 이해 모듈(130)에는 입력 문장에 대해 NLU 기술을 적용하여 사용자의 의도를 판단하는 NLU 엔진이 포함될 수 있다. 여기서, 음성 인식 모듈(120)이 출력한 텍스트가 자연어 이해 모듈(130)에 입력되는 입력 문장이 될 수 있다.
예를 들어, 자연어 이해 모듈(130)은 입력 문장으로부터 개체명(Named Entity)을 인식할 수 있다. 개체명은 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식(NER: Named Entity Recognition)은 문장에서 개체명을 식별하고 식별된 개체명의 타입을 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
또한, 자연어 이해 모듈(130)은 입력 문장으로부터 도메인을 결정할 수 있다. 도메인은 사용자 발화의 주제를 식별할 수 있는 것으로서, 예를 들어, 차량 제어, 일정, 날씨 또는 교통 상황 등에 관한 정보 제공, 문자 송신, 내비게이션, 음악 등의 다양한 주제를 나타내는 도메인이 입력 문장에 기초하여 결정될 수 있다.
또한, 자연어 이해 모듈(130)은 입력 문장에 대응되는 인텐트(intent)를 분류할 수 있고, 해당 인텐트를 수행하는데 필요한 엔티티(entity)를 추출할 수 있다.
예를 들어, 입력 문장이 "에어컨 켜줘"인 경우 도메인은 [차량 제어]가 되고, 인텐트는 [turn on_air conditioner]가 될 수 있고, 인텐트에 대응되는 제어를 수행하기 위해 필요한 엔티티는 [온도, 풍량]이 될 수 있다.
다만, 대화 시스템마다 사용되는 용어 및 그 정의가 달라질 수 있다. 따라서, 개시된 실시예와 다른 용어를 사용하더라도 그 의미나 대화 시스템 내에서의 역할이 동일 또는 유사하면 개시된 발명의 범위에 포함될 수 있다.
자연어 이해 모듈(130)이 입력 문장으로부터 인텐트, 도메인, 엔티티 등의 필요한 정보를 추출하는 동작은 머신 러닝 또는 딥 러닝 기반의 학습 모델을 이용하여 이루어질 수 있다.
대화 관리 모듈(140)은 사용자의 의도에 대응되는 서비스를 제공하기 위해, 사용자의 발화에 대응되는 시스템 응답을 생성할 수 있다. 시스템 응답은 사용자의 발화에 대한 응답으로서 출력되는 시스템 발화와 사용자의 발화에 대응되는 인텐트의 실행을 위한 신호를 포함할 수 있다.
또한, 대화 관리 모듈(140)은 시스템 발화를 생성하기 위해 NLG(Natural Language Generator) 엔진과 TTS(Text to Speech)를 포함할 수 있다.
한편, 후술하는 바와 같이, 사용자 발화가 입력되기 전에 대화 관리 모듈(140)이 사용자와 상대방의 통화 내용에 기초하여 선제적으로(proactively) 시스템 응답을 생성하여 출력하는 것도 가능하다.
통신 모듈(160)은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 통신 모듈(160)은 와이파이(WiFi??, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
스토리지(150)는 전술한 동작 및 후술하는 동작을 수행하기 위해 필요한 각종 정보를 저장할 수 있다. 예를 들어, 사용자 단말로부터 제공되는 사용자와 상대방의 통화 내용과 관련된 정보가 스토리지(160)에 저장될 수 있다. 이와 관련된 구체적인 설명은 후술하기로 한다.
스토리지(150)는 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등 다양한 종류의 메모리 중 적어도 하나를 포함할 수 있다.
대화 시스템(1)은 전술한 동작 및 후술하는 동작을 수행하기 위한 프로그램이 저장된 적어도 하나의 메모리 및 저장된 프로그램을 실행하기 위한 적어도 하나의 프로세서를 포함할 수 있다.
음성 인식 모듈(120), 자연어 이해 모듈(130) 및 대화 관리 모듈(140)이 각각 별도의 메모리와 프로세서를 사용하는 것도 가능하고, 메모리와 프로세서를 공유하는 것도 가능하다.
즉, 음싱 인식 모듈(110), 자연어 이해 모듈(130) 및 대화 관리 모듈(140)은 각각 동작을 기준으로 구분된 것으로서 물리적으로 구분되는 구성요소들을 나타내는 것이 아니다. 따라서, 전술하거나 후술하는 음성 인식 모듈(120), 자연어 이해 모듈(130) 또는 대화 관리 모듈(140)의 동작을 수행하는 것이면, 이를 지칭하는 명칭에 관계없이 개시된 발명의 범위에 포함될 수 있다.
또한, 스토리지(150) 역시 음성 인식 모듈(120), 자연어 이해 모듈(130) 및 대화 관리 모듈(140)의 동작을 수행하는 프로그램이 저장된 메모리와 다른 별도의 메모리를 사용하는 것도 가능하고, 동일한 메모리를 공유하는 것도 가능하다.
도 2는 일 실시예에 따른 사용자 단말의 동작을 나타내는 블록도이고, 도 3 은 일 실시예에 따른 대화 시스템과 사용자 단말의 상호 관계를 나타내는 도면이다.
일 실시예에 따른 사용자 단말(2)은 사용자와 대화 시스템(1) 사이의 게이트 웨이 역할을 수행할 수 있다. 예를 들어, 사용자 단말(2)은 스마트폰, 태플릿 PC, 랩탑 PC 등의 모바일 기기, 스마트 워치, 스마트 글래스 등의 웨어러블 기기를 포함할 수 있다.
또는, 차량이 사용자 단말(2)이 될 수도 있다. 이 경우, 차량에 마련된 마이크를 통해 사용자의 발화가 입력되고 차량에 마련된 통신 모듈을 통해 사용자 발화가 대화 시스템(1)으로 전송될 수 있다.
또한, 대화 시스템(1)으로부터 시스템 응답이 전송되면, 차량에 마련된 스피커 또는 디스플레이를 제어하거나 차량의 다른 구성요소들을 제어함으로써 시스템 응답에 대응되는 처리를 수행할 수 있다.
도 2를 참조하면, 사용자 단말(2)은 마이크(210), 스피커(220), 디스플레이(230), 통신 모듈(240), 컨트롤러(250), 입력 장치(260) 및 스토리지(270)를 포함할 수 있다.
통신 모듈(240)은 외부 장치들과 무선으로 데이터를 주고받는 무선 통신 모듈을 포함할 수 있다. 또한, 외부 장치들과 유선으로 데이터를 주고받는 유선 통신 모듈을 더 포함하는 것도 가능하다.
유선 통신 모듈은 USB 단자 또는 AUX 단자를 통해 연결된 외부 장치와 데이터를 주고 받을 수 있다.
무선 통신 모듈은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 무선 통신 모듈은 와이파이(WiFi??, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
뿐만 아니라, 무선 통신 모듈은 외부 장치들과 직접 통신하는 것도 가능하다. 예를 들어, 무선 통신 모듈은 와이파이 다이렉트, 블루투스 (Bluetooth??, IEEE 802.15.1 기술 표준), 지그비(ZigBee??, IEEE 802.15.4 기술 표준) 등을 이용하여 근거리의 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 사용자 단말(2)이 차량으로 구현되는 경우, 통신 모듈(240)은 블루투스 통신을 통해 차량 내부에 위치한 모바일 기기와 통신하여 모바일 기기가 획득하거나 모바일 기기에 저장된 정보(사용자의 영상, 사용자의 음성, 연락처, 일정 등)를 수신할 수 있다. 또한, 후술하는 바와 같이, 차량은 모바일 기기를 통해 통화 기능을 수행할 수 있다.
마이크(210)에는 사용자의 발화가 입력될 수 있다. 사용자의 발화가 입력되면, 마이크(210)는 음파(sound wave) 형태의 사용자의 발화를 전기적인 신호인 오디오 신호로 변환하여 출력한다. 따라서, 마이크(210)에서 출력된 이후의 사용자의 발화는 오디오 신호의 형태의 처리될 수 있다.
스피커(220)는 대화 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 오디오를 출력할 수 있다. 스피커(220)는 대화 시스템(1)으로부터 전송된 시스템 발화를 출력할 수도 있고, 시스템 응답에 대응되는 컨텐츠 신호를 출력할 수도 있다.
또한, 시스템 응답과 무관하게 음악, 라디오 또는 멀티미디어 컨텐츠의 오디오가 출력될 수도 있고, 내비게이션 기능의 실행 중에 경로 안내를 위한 오디오가 출력될 수도 있다.
한편, 사용자 단말(2)은 통화 기능을 수행할 수 있다. 통화 기능의 수행 중에는 마이크(210)에 입력된 사용자의 발화가 통신 모듈(240)을 통해 통화 상대방에게 전달되고, 통신 모듈(240)을 통해 전달된 통화 상대방의 발화는 스피커(220)를 통해 출력될 수 있다.
사용자 단말(2)이 차량인 경우에는 차량이 자체적으로 통화 기능을 수행할 수도 있으나, 통신 모듈(240)을 통해 차량과 연결된 모바일 기기를 통해 통화 기능을 수행할 수도 있다.
이 경우, 사용자 단말(2)은 마이크(210)에 입력된 사용자의 발화를 블루투스를 통해 연결된 모바일 기기에 전달하고, 모바일 기기로부터 전달되는 상대방의 발화를 스피커(220)를 통해 출력할 수 있다.
전술한 바와 같이, 사용자 단말(2)이 통화 기능을 수행하는 중에는 마이크(210)가 통화를 위해 사용된다. 따라서, 통화 기능의 수행 중에는 음성 명령의 입력을 통한 음성 인식 기능의 사용이 제한되는 것이 일반적이나, 일 실시예에 따른 사용자 단말(2) 및 대화 시스템(1)은 사용자 단말(2)이 통화 기능을 수행하는 중에도 매끄러운 음성 인식 기능의 사용을 가능하게 한다. 이와 관련된 설명은 후술하기로 한다.
디스플레이(230)는 대화 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 정보를 표시할 수 있다. 디스플레이(230)는 스피커(220)를 통해 출력되는 시스템 발화를 텍스트로 표시할 수도 있고, 사용자 발화에 대응되는 인텐트의 실행을 위해 복수의 항목에 대한 사용자의 선택이 요구되는 경우에는 복수의 항목을 리스트로 표시할 수도 있다.
또한, 시스템 응답과 무관하게 멀티미디어 컨텐츠, 내비게이션 화면을 출력하는 등 사용자 단말(2)의 다른 기능들을 수행하기 위해 필요한 정보를 표시할 수도 있고, 입력 장치(260)를 통한 수동 입력을 가이드하기 위한 정보를 표시할 수도 있다.
사용자 단말(2)은 마이크(210) 외에 수동으로 사용자의 명령을 입력 받기 위한 입력 장치(260)도 포함할 수 있다. 입력 장치(260)는 버튼, 죠그셔틀 또는 터치 패드의 형태로 마련될 수 있다. 입력 장치(260)가 터치 패드의 형태로 마련되는 경우에는 디스플레이(230)와 함께 터치 스크린을 구현할 수도 있다.
입력 장치(260)는 음성 인식 기능을 활성화 시키기 위해 사용되는 PTT(Push to Talk) 버튼을 포함할 수도 있다.
컨트롤러(250)는 전술한 동작 또는 후술하는 동작들이 수행될 수 있도록 사용자 단말(2)의 구성요소들을 제어할 수 있다. 컨트롤러(250)는 사용자 단말(2)의 구성요소들을 제어하기 위한 프로그램이 저장된 적어도 하나의 메모리 및 저장된 프로그램을 실행하는 적어도 하나의 프로세서를 포함할 수 있다.
스토리지(270)는 사용자 단말(2)이 전술한 동작 및 후술하는 동작을 수행하기 위해 필요한 각종 정보를 저장할 수 있다. 예를 들어, 사용자와 상대방의 통화 내용과 관련된 정보가 스토리지(270)에 저장될 수 있다. 이와 관련된 구체적인 설명은 후술하기로 한다.
스토리지(270)는 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등 다양한 종류의 메모리 중 적어도 하나를 포함할 수 있다.
도 3에 도시된 바와 같이, 사용자 단말(2)의 마이크(210)를 통해 입력된 사용자의 발화는 통신 모듈(240)을 통해 대화 시스템(1)으로 전송될 수 있다.
대화 시스템(1)의 통신 모듈(160)이 사용자 발화를 수신하고, 음성 인식 모듈(120)과 자연어 이해 모듈(130)이 사용자 발화에 대한 분석 결과를 출력하면, 대화 관리 모듈(140)이 사용자 발화에 대한 분석 결과에 기초하여 적절한 시스템 응답을 생성하고, 통신 모듈(160)을 통해 사용자 단말(2)로 시스템 응답을 전송할 수 있다.
대화 시스템(1)은 서버로 구현될 수 있다. 이 때, 대화 시스템(1)이 반드시 하나의 서버로 구현되어야 하는 것은 아니며, 물리적으로 분리된 복수의 서버에 의해 구현되는 것도 가능하다.
또는, 음성 인식 모듈(120)과 자연어 이해 모듈(130)이 별도의 외부 시스템으로 구현되는 것도 가능하다. 이 경우, 대화 관리 시스템(1)이 사용자 단말(2)로부터 사용자 발화를 수신하면, 대화 시스템(1)은 수신된 사용자 발화를 외부 시스템으로 전송하고, 외부 시스템으로부터 사용자 발화에 대한 분석 결과를 수신할 수 있다.
대화 시스템(1)의 대화 관리 모듈(140)은 수신된 분석 결과에 기초하여 사용자 발화에 대응되는 적절한 시스템 응답을 생성할 수 있고, 생성된 시스템 응답은 통신 모듈(160)을 통해 사용자 단말(2)에 전송될 수 있다.
도 4는 일 실시예에 따른 사용자 단말의 제어 방법과 대화 관리 방법을 나타낸 순서도이고, 도 5는 일 실시예에 따른 사용자 단말의 동작을 나타낸 블록도이며, 도 6은 일 실시예에 따른 사용자 단말에 입력되는 사용자의 음성이 통화 상대방 또는 대화 시스템에 전달되는 채널을 나타낸 도면이다.
일 실시예에 따른 사용자 단말의 제어 방법에 있어서 그 제어 대상은 전술한 사용자 단말(2)이 될 수 있고, 일 실시예에 따른 대화 관리 방법은 전술한 대화 시스템(1)에 의해 수행될 수 있다. 따라서, 앞서 사용자 단말(2)에 관하여 설명한 내용은 별도의 언급이 없더라도 사용자 단말의 제어 방법에 적용될 수 있고, 대화 시스템(1)에 관하여 설명한 내용은 별도의 언급이 없더라도 대화 관리 방법에 적용될 수 있다.
또한, 후술하는 사용자 단말의 제어 방법에 관한 설명은 사용자 단말(2)에 적용될 수 있고, 대화 관리 방법에 관한 설명은 대화 시스템(1)에 적용될 수 있다.
도 4에서 사용자 단말(2) 측에 도시된 순서도는 사용자 단말의 제어 방법을 나타낸 순서도이고, 대화 시스템(1) 측에 도시된 순서도는 대화 관리 방법을 나타낸 순서도이다.
도 4를 참조하면, 사용자 단말(2)이 통화 기능을 수행 중이면(1010의 예), 마이크(210)는 사용자의 발화를 입력 받고(1020) 스피커(220)는 상대방의 발화를 출력한다(1030).
마이크(210)에 입력된 사용자의 발화는 통신 모듈(240)을 통해 상대방에게 전달되고, 통신 모듈(240)이 상대방으로부터 발화를 수신하면 스피커(220)를 통해 상대방의 발화가 출력될 수 있다.
사용자 단말(2)이 직접 통화 기능을 수행하는 경우에는 통신 모듈(240)의 통신 대상이 상대방의 단말이 될 수 있고, 사용자 단말(2)이 이와 연결된 다른 전자 기기를 통해 통화 기능을 수행하는 경우에는 통신 모듈(240)의 실질적인 통신 대상이 사용자 단말(2)과 연결된 전자 기기가 될 수 있다.
예를 들어, 사용자 단말(2)이 차량이고 차량에 블루투스 통신을 통해 연결된 모바일 기기를 통해 통화 기능을 수행하는 경우, 통신 모듈(240)은 마이크(210)에 입력된 사용자의 발화를 모바일 기기에 전송하고 모바일 기기로부터 전송되는 상대방의 발화를 수신할 수 있다. 모바일 기기는 사용자 단말(2)로부터 전송된 사용자의 발화를 상대방의 기기에 전송하고, 상대방의 단말로부터 전송되는 상대방의 발화를 사용자 단말(2)에 전송할 수 있다.
또한, 사용자 단말(2)은 통화 내용 관련 정보를 생성 및 저장할 수 있다(1040).
통화 내용 관련 정보는 사용자와 통화의 상대방이 통화 중에 주고 받은 대화의 내용과 관련된 정보를 의미한다. 일 예로, 통화 내용 관련 정보는 오디오 파일의 형태로 생성되어 스토리지(270)에 저장될 수 있다. 이를 위해, 컨트롤러(250)는 마이크(210)에 입력된 사용자의 발화와 통신 모듈(240)에 수신된 상대방의 발화를 스토리지(270)에 오디오 파일로 저장할 수 있다.
다른 예로, 도 5에 도시된 바와 같이, 통화 내용 관련 정보를 텍스트 파일의 형태로 생성하여 스토리지(270)에 저장하는 것도 가능하다.
사용자 단말(2)은 발화를 텍스트로 변환하는 음성 인식 모듈(280)을 더 포함할 수 있다. 사용자 단말(2)에 마련된 음성 인식 모듈(280)은 음성 인식 기능을 활성화시키기 위한 웨이크업 워드를 인식하거나, 미리 정해진 간단한 음성 명령어를 인식할 수 있다.
다만, 설계 변경에 따라 음성 인식 모듈(280)의 성능도 달라질 수 있는바, 음성 인식 모듈(280)이 통화 중 마이크(210)에 입력된 사용자의 발화와 통신 모듈(240)을 통해 수신된 상대방의 발화를 텍스트로 변환하는 것도 가능하다. 변환된 텍스트를 포함하는 텍스트 파일은 스토리지(270)에 저장될 수 있다.
통화 시작 시점부터의 오디오 신호 또는 텍스트가 모두 저장되는 것도 가능하고, 통화 시작 이후 일정 시간이 경과하면 일정량의 데이터를 자동으로 삭제하는 것도 가능하다. 예를 들어, 통화 시작 이후 10분이 경과하면 현 시점으로부터 5분 이내에 기록된 데이터만 남기고 모두 삭제하고, 삭제 시점으로부터 다시 10분이 경과하면 다시 5분 이내에 기록된 데이터만 남기고 모두 삭제할 수 있다. 즉, 통화 시작 이후 제1시간이 경과하면, 현 시점으로부터 제2시간 이내에 저장된 통화 내용 관련 정보만 남기고 모두 삭제하는 동작을 제1시간마다 반복할 수 있다(제1시간 > 제2시간).
사용자가 통화 중에 음성 인식 기능의 사용을 원할 수 있다. 이 경우, 사용자는 사용자 단말(2)에 음성 인식 기능을 활성화시키기 위한 트리거 신호를 입력할 수 있다. 트리거 신호는 마이크(210)를 통해 입력되는 특정 웨이크업 워드를 포함할 수도 있고, 입력 장치(260)를 통해 입력되는 음성 인식 명령을 포함할 수도 있다.
음성 인식 기능을 활성화하기 위한 트리거 신호가 입력되면(1050의 예), 컨트롤러(250)는 마이크(210)를 통해 입력되는 사용자의 발화가 상대방에게 전달되지 않도록 제1채널을 닫는다(1060).
또한, 트리거 신호가 입력되면 음성 인식 기능이 활성화될 수 있다. 당해 실시예에서 음성 인식 기능이 활성화된다는 것은 마이크(210)에 입력된 사용자의 발화에 대해 음성 인식이 수행되는 것을 의미할 수 있다. 즉, 음성 인식 기능이 활성화된 이후에는, 마이크(210)에 입력된 사용자의 발화가 대화 시스템(1)에 전송되고, 대화 시스템(1)은 전송된 사용자의 발화를 분석하여 그에 대응되는 시스템 응답을 생성하여 다시 사용자 단말(2)에 전송할 수 있다.
도 6을 참조하면, 마이크(210)에 입력된 사용자의 발화는 통신 모듈(240)을 통해 통화 상대방 또는 대화 시스템(1) 중 적어도 하나에 전달될 수 있다.
당해 실시예에서는 마이크(210)에 입력된 사용자의 발화가 통화 상대방에게 전달되는 통신 채널을 제1채널이라 하고, 대화 시스템(1)에 전달되는 통신 채널을 제2채널이라 하기로 한다. 제1채널과 제2채널은 동일한 통신 방식을 채용할 수도 있고, 서로 다른 통신 방식을 채용할 수도 있다.
예를 들어, 사용자 단말(2)이 차량인 경우, 사용자의 발화를 통화 상대방에게 전달하는 제1채널은 블루투스와 같은 근거리 통신 방식을 채용할 수 있고, 사용자의 발화를 대화 시스템(1)에 전달하는 제2채널은 와이파이, 4G, 5G 등과 같은 무선 통신 방식을 채용할 수 있다.
사용자 단말(2)이 통화 기능을 수행 중인 경우에는 제1채널을 열고 제2채널은 닫을 수 있다. 사용자 단말(2)이 음성 인식 기능을 수행 중인 경우에는 제1채널을 닫고 제2채널을 열 수 있다.
여기서, 제1채널을 연다는 것은 제1채널을 통해 통화 상대방에게 마이크(210)에 입력된 사용자의 발화를 전달한다는 의미이고, 제1채널을 닫는다는 것은 마이크(210)에 입력된 사용자의 발화를 통화 상대방에게 전달하지 않는다는 의미이다.
또한, 제2채널을 연다는 것은 제2채널을 통해 대화 시스템(1)에 마이크(210)에 입력된 사용자의 발화를 전달한다는 의미이고, 제2채널을 닫는다는 것은 마이크(210)에 입력된 사용자의 발화를 통화 대화 시스템(1)에 전달하지 않는다는 의미이다.
사용자가 사용자 단말(2)을 이용하여 통화 중인 경우, 제1채널을 열고 마이크(210)에 입력된 사용자의 발화를 제1채널을 통해 통화 상대방에게 전송할 수 있다. 그러나, 통화 중 사용자가 음성 인식 기능을 사용하기 위해 트리거 신호를 입력한 경우(1050의 예), 제1채널을 닫음으로써(1060) 마이크(210)에 입력되는 사용자의 발화가 더 이상 통화 상대방에게 전송되지 않도록 할 수 있다.
마이크(210)는 사용자의 발화를 입력 받고(1070), 통신 모듈(240)은 제2채널을 통해 사용자의 발화와 통화 내용 관련 정보를 대화 시스템(1)에 전송할 수 있다(1080).
저장되어 있는 통화 내용 관련 정보를 모두 전송하는 것도 가능하고, 음성 인식 기능이 활성화된 시점을 기준으로 정해진 시간 이내에 기록된 통화 내용 관련 정보만 전송하는 것도 가능하다.
사용자의 의도를 파악하기 위해 필요한 컨텍스트 정보는 대부분 음성 인식 기능이 활성화된 시점 근처에 나눈 대화에 포함되어 있을 것으로 추정할 수 있다. 따라서, 통화 내용의 분석 범위를 음성 인식 기능이 활성화된 시점을 기준 일정 시간 이내로 제한할 수 있고, 이를 통해 대화 시스템(1)의 로드를 줄이고 분석에 소요되는 시간을 단축시킬 수 있다. 통화 내용 관련 정보의 전송 이후에는 사용자 단말(2)의 스토리지(270)에 저장된 통화 내용 관련 정보를 모두 삭제할 수 있다.
대화 시스템(1)의 통신 모듈(160)은 사용자 단말(2)로부터 전송되는 사용자의 발화와 통화 내용 관련 정보를 수신하고(1210), 대화 시스템(1)의 전처리 모듈(110)은 수신된 사용자의 발화에 대해 전처리를 수행한다(1220).
전처리 모듈(110)은 오디오 신호의 형태로 전송된 사용자의 발화에 대해 노이즈 제거를 수행할 수 있고, EPD(End Point Detection)을 수행할 수 있다. 엔드 포인트가 검출되면, 통신 모듈(160)을 통해 사용자 단말(2)에 엔드 포인트가 검출되었음을 나타내는 엔드 포인트 검출 신호를 전송할 수 있다.
엔드 포인트 검출 신호를 수신한 사용자 단말(2)은 제2채널을 닫고 음성 인식 기능을 비활성화시킬 수 있다.
음성 인식 모듈(120)은 전처리가 수행된 사용자의 발화를 텍스트로 변환할 수 있다(1230). 여기서, 사용자의 발화는 음성 인식 기능이 활성화된 이후에 사용자가 입력한 발화로서, 음성 명령을 포함할 수 있다.
한편, 통화 내용 관련 정보가 오디오 파일의 형태로 수신된 경우, 음성 인식 모듈(120)이 통화 내용 관련 정보를 포함하는 오디오 신호도 텍스트로 변환할 수 있다. 즉, 통화 중에 입력된 사용자의발화와 상대방의 발화가 텍스트로 변환될 수 있다.
대화 시스템(1)의 자연어 이해 모듈(130)과 대화 관리 모듈(140)은 수신된 사용자의 발화와 통화 내용 관련 정보에 기초하여 사용자의 의도를 파악하고 시스템 응답을 생성한다(1240).
자연어 이해 모듈(130)은 음성 인식 기능이 활성화된 이후에 입력된 사용자의 발화에 기초하여 사용자의 의도를 파악할 수 있다.
또한, 자연어 이해 모듈(130)은 통화 내용 관련 정보에 포함된 사용자의 발화와 상대방의 발화에 기초하여 통화 중의 컨텍스트를 판단할 수 있다.
대화 관리 모듈(140)은 자연어 이해 모듈(130)이 판단한 사용자의 의도와 통화 중의 컨텍스트에 기초하여 적절한 시스템 응답을 생성할 수 있다. 예를 들어, 음성 인식 기능이 활성화된 이후에 입력된 사용자의 발화만으로는 사용자의 의도를 정확히 판단하기 어려운 경우, 통화 중의 컨텍스트를 이용하여 사용자의 발화에 대응되는 사용자의 의도를 정확하게 특정할 수 있다. 따라서, 사용자의 의도를 특정하기 위한 시스템 발화를 생성하지 않아도 된다.
다른 예로, 사용자의 의도는 판단하였으나 의도에 대응되는 기능을 실행하기 위해 필요한 엔티티가 사용자의 발화에 모두 포함되어 있지 않은 경우, 통화 중의 컨텍스트로부터 필요한 엔티티를 획득할 수도 있다. 따라서, 필요한 엔티티를 문의하기 위한 시스템 발화를 생성하지 않아도 된다.
대화 시스템(1)의 통신 모듈(160)은 생성된 시스템 응답을 다시 사용자 단말(2)에 전송한다(1250).
사용자 단말(2)의 통신 모듈(240)은 시스템 응답을 수신한다(1090).
수신된 시스템 응답이 통화 내용과 관련된 응답이면(1100의 예), 시스템 발화를 통화의 상대방도 들을 수 있도록 통신 모듈(240)이 이를 상대방에게 전송할 수 있다(1110). 스피커(220)는 시스템 발화를 출력할 수 있다(1120). 순서도의 특성 상 상대방에게 전송하는 것을 먼저 도시하였으나, 시스템 발화를 통화의 상대방에게 전송하는 것과 스피커(220)를 통해 출력하는 것은 동시에 이루어질 수도 있고 스피커(220)를 통한 출력이 먼저 이루어지는 것도 가능하다.
사용자 단말(2)의 컨트롤러(250)는 수신된 시스템 응답이 통화 내용과 관련된 응답이 아니면(1100의 아니오), 시스템 발화를 상대방에게 전달하지 않고 스피커(220)를 통해 출력할 수 있다(1120).
시스템 발화가 통화 내용과 관련된 것이 아니면 통화 상대방이 이를 들을 필요가 없다. 따라서, 이 경우에는 시스템 발화가 통화의 상대방에게 전송되지 않고 스피커(220)를 통해서만 출력될 수 있다.
또한, 제1채널이 닫혀있는 상태이므로, 스피커(220)를 통해 출력된 시스템 발화가 마이크(210)에 입력되더라도, 입력된 시스템 발화가 상대방에게 전송되지 않는다.
또한, 엔드 포인트 검출에 의해 제2채널도 닫혀있는 상태이므로, 스피커(220)를 통해 출력된 시스템 발화가 마이크(210)에 입력되더라도, 입력된 시스템 발화가 대화 시스템(1)에 전송되지 않는다.
한편, 시스템 응답이 통화 내용과 관련된 응답인지 여부는 대화 시스템(1)으로부터 전달될 수 있다. 예를 들어, 대화 시스템(1)의 대화 관리 모듈(140)이 통화 내용 관련 정보와 사용자의 제2발화 또는 통화 내용 관련 정보와 시스템 발화 사이의 키워드 비교 등을 통해 관련성을 판단할 수 있다.
시스템 발화가 출력된 이후에는 다시 제1채널을 열 수 있고, 사용자는 상대방과의 통화를 재개할 수 있다.
도 7 내지 도 10은 일 실시예에 따른 사용자 단말의 사용자가 통화 기능의 수행 중에 음성 인식 기능을 사용하는 구체적인 예시들을 나타낸 도면이다.
도 7 내지 10의 예시에서는 사용자가 사용자 단말(2)을 이용하여 상대방과 통화 중에 음성 인식 기능을 사용하는 경우를 예로 든다.
도 7을 참조하면, 통화 중 상대방이 사용자의 도착 시간을 묻기 위한 취지의 발화 "그래서 언제 도착해?"를 입력하고, 이에 대응하여 사용자가 도착 시간을 확인하기 위해 "아, 잠깐만"이라는 발화를 입력할 수 있다.
음성 인식 기능을 활성화시키는 트리거 신호는 통화 중 사용자가 상대방에게 발화하는 미리 정해진 특정 단어를 포함할 수 있다. 당해 예시에서는, "아, 잠깐만"이라는 발화가 음성 인식 기능을 활성화시키기 위한 웨이크업 워드로 기능할 수 있다.
이를 위해, 컨트롤러(250)는 음성 인식 기능을 활성화시키기 위한 메인 웨이크업 워드 외에 통화 중에만 사용되는 보조 웨이크업 워드를 추가로 더 저장할 수 있다.
보조 웨이크업 워드는 디폴트로 설정되어 사용자에게 안내되는 것도 가능하고, 사용자의 언어 습관을 반영하여 설정되는 것도 가능하다. 예를 들어, 사용자가 통화 중에 메인 웨이크업 워드를 발화하기 전에 상대방에게 "잠깐만", "기다려봐"와 같은 특정 패턴의 발화를 입력하는 경우, 컨트롤러(240)는 이러한 특정 패턴의 발화를 보조 웨이크업 워드로 설정할 수 있다.
당해 예시의 경우, "아, 잠깐만"이라는 발화가 입력되면 컨트롤러(240)가 음성 인식 기능을 활성화시킬 수 있다. 음성 인식 기능이 활성화 됨에 따라 제1채널이 닫히고 마이크(210)에 입력되는 사용자의 발화는 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다.
한편, 통화 중에 사용자와 상대방이 주고 받은 대화의 내용과 관련된 정보, 즉 통화 내용 관련 정보는 스토리지(270)에 저장될 수 있다. 사용자 단말(2)에 음성 인식 모듈(280)이 탑재된 경우에는 통화 내용을 구성하는 사용자의 발화와 상대방의 발화가 텍스트로 변환될 수 있다. 따라서, 통화 내용 관련 정보가 텍스트의 형태로 저장될 수 있다.
음성 인식 모듈(280)이 사용자 단말(2)에 탑재되어 있지 않거나, 탑재되어 있더라도 성능이 떨어지는 경우에는 통화 내용 관련 정보가 오디오 신호의 형태로 저장될 수 있다.
음성 인식 기능이 활성화되고 사용자가 도착 시간을 문의하기 위한 발화 "얼마나 걸려?"를 입력하면, 입력된 사용자의 발화가 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다. 이 때, 통화 내용 관련 정보도 함께 전송될 수 있다.
대화 시스템(1)의 자연어 이해 모듈(130)은 사용자의 발화에 대응되는 사용자의 의도가 목적지 도착 시간에 대한 문의임을 파악할 수 있다. 현재 내비게이션 기능이 실행 중인 경우에는 내비게이션 서비스 프로바이더로부터 목적지 도착 시간에 대한 정보를 받아올 수 있다.
내비게이션 기능이 실행 중이 아닌 경우에는 자연어 이해 모듈(130)이 통화 내용 관련 정보로부터 목적지에 대한 정보를 추출할 수 있고, 대화 관리 모듈(140)은 추출된 목적지의 도착 시간에 대한 정보를 획득할 수 있다.
대화 관리 모듈(140)은 목적지 도착 시간을 안내하기 위한 시스템 발화를 생성할 수 있고, 통신 모듈(160)을 통해 시스템 발화를 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 시스템 발화 "오후 2시 40분 도착 예정입니다"를 출력할 수 있다.
한편, 당해 예시에서 목적지 도착 시간에 대한 정보를 포함하는 시스템 발화는 통화 상대방의 질문에 대한 응답으로서, 사용자와 상대방이 통화 중 주고받은 대화 내용과 관련된 것으로 볼 수 있다. 대화 관리 모듈(140)은 사용자 단말(2)에 시스템 발화를 전송할 때 시스템 발화와 통화 내용 사이의 관련성을 나타내는 정보를 함께 전송할 수 있다.
시스템 발화가 통화 내용과 관련된 것이므로, 사용자 단말(2)은 대화 시스템(1)으로부터 수신된 시스템 발화를 통화 상대방에게 전달할 수 있다. 상대방의 단말은 수신된 시스템 발화를 출력할 수 있고, 사용자가 스피커(220)를 통해 출력되는 시스템 발화를 들을 때 상대방도 단말을 통해 출력되는 시스템 발화를 들을 수 있다.
따라서, 사용자가 시스템 발화에 포함된 정보를 상대방에게 다시 발화할 필요가 없고 대화 시스템(1)으로부터 전달되는 정보를 편리하게 공유할 수 있다.
한편, 제1채널은 음성 인식 기능이 비활성화되어 제2채널이 닫힌 이후에 다시 열리는 것도 가능하고, 오디오가 겹치는 것을 방지하기 위해 스피커(220)에서 시스템 발화가 출력된 이후에 열리는 것도 가능하다.
도 8의 예시를 참조하면, 통화 중 상대방이 누군가의 연락처를 묻기 위한 취지의 발화 "홍길동 연락처 알아?"를 입력하고, 이에 대응하여 사용자가 홍길동의 연락처를 확인하기 위해 "아, 잠깐만"이라는 발화를 입력할 수 있다.
전술한 바와 같이, "아, 잠깐만"이라는 발화가 음성 인식 기능을 활성화시키기 위한 웨이크업 워드로 기능할 수 있다. 따라서, "아, 잠깐만"이라는 발화가 입력되면 컨트롤러(240)가 음성 인식 기능을 활성화시킬 수 있다. 음성 인식 기능이 활성화 됨에 따라 제1채널이 닫히고 마이크(210)에 입력되는 사용자의 발화는 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다.
사용자가 홍길동의 연락처를 문의하기 위한 발화 "연락처 알려줘"를 입력하면, 입력된 사용자의 발화가 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다. 이 때, 통화 내용 관련 정보도 함께 전송될 수 있다.
대화 시스템(1)의 자연어 이해 모듈(130)은 사용자의 발화에 대응되는 사용자의 의도가 연락처에 대한 문의임을 파악할 수 있다. 사용자의 발화에는 사용자가 문의하는 연락처가 누구의 연락처인지에 관한 정보가 없으나, 대화 관리 모듈(140)은 통화 내용 관련 정보에 기초하여 사용자가 문의하는 연락처가 홍길동의 연락처임을 판단할 수 있다.
대화 관리 모듈(140)은 홍길동의 연락처를 안내하기 위한 시스템 발화를 생성할 수 있고, 통신 모듈(160)을 통해 시스템 발화를 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 시스템 발화 "홍길동님의 연락처는 xxx-xxxx 입니다"를 출력할 수 있다.
당해 예시도 마찬가지로, 홍길동의 연락처에 대한 정보를 포함하는 시스템 발화는 상대방의 질문에 대한 응답으로서, 사용자와 상대방이 통화 중 주고받은 대화 내용과 관련된 것으로 볼 수 있다.
시스템 발화가 통화 내용과 관련된 것이므로, 사용자 단말(2)은 대화 시스템(1)으로부터 수신된 시스템 발화를 통화 상대방에게 전달할 수 있다. 상대방의 단말은 수신된 시스템 발화를 출력할 수 있고, 사용자가 스피커(220)를 통해 출력되는 시스템 발화를 들을 때 상대방도 단말을 통해 출력되는 시스템 발화를 들을 수 있다.
도 9의 예시는 통화 중 상대방이 사용자에게 언제 출발할 것인지 묻는 발화를 입력하고 이에 대응하여 사용자가 "아, 잠깐만"이라는 발화를 입력한 경우를 가정한다.
전술한 바와 같이, "아, 잠깐만"이라는 발화가 음성 인식 기능을 활성화시키기 위한 웨이크업 워드로 기능할 수 있다. 따라서, "아, 잠깐만"이라는 발화가 입력되면 컨트롤러(240)가 음성 인식 기능을 활성화시킬 수 있다. 음성 인식 기능이 활성화 됨에 따라 제1채널이 닫히고 마이크(210)에 입력되는 사용자의 발화는 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다.
사용자가 빨래가 완료되는데 걸리는 시간을 문의하기 위한 발화 "빨래 얼마나 걸려?"를 입력하면, 입력된 사용자의 발화가 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다. 이 때, 통화 내용 관련 정보도 함께 전송될 수 있다.
대화 시스템(1)의 자연어 이해 모듈(130)은 사용자의 발화에 대응되는 사용자의 의도가 빨래에 소요되는 시간에 대한 문의임을 파악할 수 있다. 예를 들어, 대화 관리 모듈(140)은 사용자의 댁내에 구축된 홈 네트워크 시스템으로부터 세탁기가 빨래를 완료하는데 소요되는 시간에 관한 정보를 가져올 수 있다.
대화 관리 모듈(140)은 빨래가 완료되는데 소요되는 시간을 안내하기 위한 시스템 발화를 생성할 수 있고, 통신 모듈(160)을 통해 시스템 발화를 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 시스템 발화 "30분 후에 종료 예정입니다"를 출력할 수 있다.
당해 예시에서는 시스템 발화가 사용자와 상대방이 통화 중 주고받은 대화 내용과는 관련이 없는 것이다. 따라서, 사용자 단말(2)은 대화 시스템(1)으로부터 전송된 시스템 발화를 통화 상대방에게 전달하지 않는다. 또한, 제1채널도 닫혀있는 상태이기 때문에, 스피커(220)를 통해 출력된 시스템 발화가 마이크(210)에 입력되더라도 통화 상대방에게 전달되지는 않는다.
스피커(220)를 통한 시스템 발화의 출력이 완료되면, 컨트롤러(250)는 다시 제1채널을 열 수 있다. 따라서, 마이크(210)에 입력된 사용자의 발화 "30분 후에 출발할게"는 제1채널을 통해 상대방에게 전달될 수 있다.
한편, 시스템 발화가 통화 내용과 관련된 경우에도 사용자의 선택에 따라 시스템 발화를 상대방과 공유하지 않는 것도 가능하다. 예를 들어, 통화 중 출력되는 시스템 발화를 상대방과 공유할 지 여부를 미리 설정하는 것도 가능하고, 통화 중 음성 인식 기능이 실행되면 디스플레이(230)에 시스템 발화의 공유 여부를 선택할 수 있는 화면을 표시하는 것도 가능하다.
후술하는 도 10의 예시에서는 사용자가 상대방과 시스템 발화의 공유를 선택하지 않은 경우를 가정한다.
도 10의 예시를 참조하면, 통화 중 상대방이 사용자에게 내일 일정을 묻기 위한 발화 "내일 점심 때 뭐해?"를 입력하고 이에 대응하여 사용자가 "아, 잠깐만"이라는 발화를 입력할 수 있다.
전술한 바와 같이, "아, 잠깐만"이라는 발화가 음성 인식 기능을 활성화시키기 위한 웨이크업 워드로 기능할 수 있다. 따라서, "아, 잠깐만"이라는 발화가 입력되면 컨트롤러(250)가 음성 인식 기능을 활성화시킬 수 있다. 음성 인식 기능이 활성화 됨에 따라 제1채널이 닫히고 마이크(210)에 입력되는 사용자의 발화는 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다.
사용자가 내일 일정을 묻기 위한 발화 "일정 알려줘"를 입력하면, 입력된 사용자의 발화가 제2채널을 통해 대화 시스템(1)으로 전송될 수 있다. 이 때, 통화 내용 관련 정보도 함께 전송될 수 있다.
대화 시스템(1)의 자연어 이해 모듈(130)은 사용자의 발화에 대응되는 사용자의 의도가 일정에 대한 문의임을 파악할 수 있다. 사용자의 발화에는 언제의 일정을 문의하는 것인지에 관한 정보가 없으나, 대화 관리 모듈(140)은 통화 내용 관련 정보에 기초하여 사용자가 문의하는 일정이 내일 일정임을 판단할 수 있다.
대화 관리 모듈(140)은 내일 일정을 안내하기 위한 시스템 발화를 생성할 수 있고, 통신 모듈(160)을 통해 시스템 발화를 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 시스템 발화 "10시 회의, 1시 고객미팅, 5시 컨퍼런스콜 입니다"를 출력할 수 있다.
내일 일정에 관한 정보를 포함하는 시스템 발화는 상대방의 질문에 대한 응답으로서, 사용자와 상대방이 통화 중 주고받은 대화 내용과 관련된 것으로 볼 수 있다. 그러나, 사용자가 시스템 발화의 공유를 선택하지 않았으므로, 사용자 단말(2)은 대화 시스템(1)으로부터 전송된 시스템 발화를 통화 상대방에게 전달하지 않는다. 또한, 제1채널도 닫혀있는 상태이기 때문에, 스피커(220)를 통해 출력된 시스템 발화가 마이크(210)에 입력되더라도 통화 상대방에게 전달되지는 않는다.
스피커(220)를 통한 시스템 발화의 출력이 완료되면, 컨트롤러(250)는 다시 제1채널을 열 수 있다. 따라서, 마이크(210)에 입력된 사용자의 발화 "내일 점심엔 일정이 있어"는 제1채널을 통해 상대방에게 전달될 수 있다.
이하, 일 실시예에 따른 사용자 단말의 제어 방법과 대화 관리 방법이 통화 관련 내용에 기초하여 시스템 응답을 선제적으로 생성 및 출력하는 예시에 관하여 설명한다.
도 11은 일 실시예에 따른 사용자 단말의 제어 방법과 대화 관리 방법의 다른 예시를 나타낸 순서도이다.
도 11에서 사용자 단말(2) 측에 도시된 순서도는 사용자 단말의 제어 방법을 나타낸 순서도이고, 대화 시스템(1) 측에 도시된 순서도는 대화 관리 방법을 나타낸 순서도이다.
도 4를 참조하면, 사용자 단말(2)이 통화 기능을 수행 중이면(1310의 예), 마이크(210)는 사용자의 발화를 입력 받고(1320) 스피커(220)는 상대방의 발화를 출력한다(1330).
마이크(210)에 입력된 사용자의 발화는 통신 모듈(240)을 통해 상대방에게 전달되고, 통신 모듈(240)이 상대방으로부터 발화를 수신하면 스피커(220)를 통해 상대방의 발화가 수신될 수 있다.
또한, 사용자 단말(2)은 통화 내용 관련 정보를 생성하고(1340), 이를 대화 시스템(1)에 전송할 수 있다(1350).
전술한 예시에서는 음성 인식 기능이 활성화되었을 때 통화 내용 관련 정보가 대화 시스템(1)에 전송되었다. 그러나, 당해 예시에서는 음성 인식 기능이 활성화되기 전에 통화 내용 관련 정보가 대화 시스템(1)에 전송될 수 있다.
이를 위해, 사용자가 통화 내용 관련 정보의 전송 여부를 미리 선택할 수 있다. 사용자 단말(2)의 설정 항목에서 미리 선택하는 것도 가능하고, 통화가 시작되면 디스플레이(230)에 통화 내용 관련 정보를 대화 시스템(1)에 전송할 지 여부를 선택할 수 있는 화면을 표시하는 것도 가능하다.
당해 예시에서는 사용자가 어떤 방식으로든 통화 내용 관련 정보의 전송을 선택한 경우를 가정한다.
대화 시스템(1)은 통화 내용 관련 정보를 수신하고(1510), 이에 대응하여 시스템 응답을 생성할 수 있다(1520).
구체적으로, 자연어 이해 모듈(130)은 통화 내용 관련 정보에 포함된 사용자의 발화 및 상대방의 발화에 기초하여 사용자와 상대방의 의도, 발화에 포함된 엔티티 등의 정보를 추출할 수 있다.
대화 관리 모듈(140)은 자연어 이해 모듈(130)의 출력에 기초하여 사용자의 의도를 미리 예측하고, 이에 대응하여 시스템 응답을 선제적으로 생성할 수 있다. 예를 들어, 사용자와 상대방의 통화 중 주고받은 대화 내용에 기초하여 사용자의 특정 목적지로의 이동이 예상되면, 해당 목적지로의 경로 안내를 실행할 지 여부를 묻기 위한 시스템 응답을 생성할 수 있다.
다른 예로, 사용자와 상대방의 통화 중 주고받은 대화 내용에 기초하여 특정 상대방에게의 전화 발신이 예상되면, 해당 상대방에게 전화를 걸 지 여부를 묻기 위한 시스템 응답을 생성할 수 있다.
대화 시스템(1)의 통신 모듈(160)은 생성된 시스템 응답을 사용자 단말(2)에 전송한다(1530).
사용자 단말(2)은 시스템 응답을 수신하고(1360), 수신된 시스템 응답을 디스플레이(230)를 통해 출력할 수 있다(1370).
통화가 종료되면(1380의 예), 사용자가 마이크(210)에 시스템 응답과 관련된 발화를 입력할 수 있다(1390).
예를 들어, 시스템 응답이 특정 서비스를 제공 받을지 여부에 대한 문의를 포함하면, 사용자가 입력하는 시스템 응답과 관련된 발화는 해당 서비스를 제공 받을지 여부에 대한 답변을 포함할 수 있다.
시스템 응답이 선제적으로 출력된 경우이므로, 사용자가 별도의 트리거 신호를 입력하지 않더라도 통화가 종료됨과 동시에 음성 인식 기능이 활성화될 수 있고, 통화의 종료 이후에 입력된 사용자의 발화는 대화 시스템(1)에 전송될 수 있다(1400).
대화 시스템(1)의 통신 모듈(160)은 사용자의 발화를 수신하고, 자연어 이해 모듈(130)은 수신된 사용자의 발화에 기초하여 사용자의 의도를 파악하고 대화 관리 모듈(140)은 사용자의 의도에 대응되는 시스템 응답을 생성할 수 있다(1540).
사용자의 의도가 대화 시스템(1)이 선제적으로 제안한 서비스를 제공받는 것이면, 이에 대응하여 생성되는 새로운 시스템 응답은 해당 서비스와 관련된 것일 수 있다.
사용자의 의도가 대화 시스템(1)이 선제적으로 제안한 서비스를 제공받지 않는 것이면, 이에 대응하여 생성되는 새로운 시스템 응답은 사용자의 의도를 이해했다는 취지의 시스템 발화를 포함할 수 있다.
또는, 사용자의 의도가 대화 시스템(1)이 선제적으로 제안한 서비스와 무관한 것이면, 이에 대응하여 생성되는 시스템 응답은 사용자의 의도와 관련된 것일 수 있다.
또는, 통화 종료 후에 입력된 사용자의 발화가 대화 시스템(1)이 선제적으로 제안한 서비스와 관련된 경우에만 이에 대응하여 시스템 응답을 생성함으로써, 음성 인식 기능과 무관하게 입력된 사용자의 발화에 대해서까지 시스템 응답이 생성되는 것을 방지하는 것도 가능하다.
사용자 단말(2)에 마련된 음성 인식 모듈(280)의 성능에 따라, 사용자의 발화가 대화 시스템(1)이 선제적으로 제안한 서비스와 관련된 것인지 여부, 즉 대화 시스템(1)이 선제적으로 생성한 시스템 응답과 관련된 것인지 여부를 사용자 단말(2)에서 판단하는 것도 가능하고, 대화 시스템(1)에서 판단하는 것도 가능하다.
전자의 경우, 사용자의 발화가 대화 시스템(1)이 선제적으로 생성한 시스템 응답과 관련이 없으면 사용자 단말(2)은 사용자의 발화를 대화 시스템(1)으로 전송하지 않는다.
후자의 경우, 사용자의 발화가 대화 시스템(1)이 선제적으로 생성한 시스템 응답과 관련이 없으면 대화 시스템(1)은 사용자의 발화에 대응되는 시스템 응답을 생성하지 않는다.
대화 시스템(1)이 사용자의 발화 대응되는 시스템 응답을 생성하여 전송한 경우, 사용자 단말(2)은 시스템 응답을 수신하고(1410), 시스템 응답을 출력할 수 있다(1420).
시스템 응답은 그 종류에 따라 스피커(220)를 통해 출력될 수도 있고, 디스플레이(230)를 통해 출력될 수도 있다.
도 12 및 도 13은 일 실시예에 따른 사용자 단말의 사용자가 통화 기능을 사용하는 중에 시스템 응답이 선제적으로 제공되는 구체적인 예시들을 나타낸 도면이다.
도 12 및 도 13의 예시에서는 사용자가 통화 내용 관련 정보가 대화 시스템(1)에 전송되는 것을 허용한 경우를 가정한다.
도 12의 예시에 따르면, 통화 중 상대방이 사용자에게 특정 목적지로 오기를 요청하는 취지의 발화 "서울역으로 와라"를 입력할 수 있고, 이에 대응하여 사용자가 동의하는 취지의 발화 "알겠어"를 입력할 수 있다.
사용자와 상대방의 발화를 포함하는 통화 내용 관련 정보는 대화 시스템(1)에 전송될 수 있고, 자연어 이해 모듈(130)은 사용자와 상대방의 발화에 기초하여 사용자가 통화 종료 후에 실행시킬 것으로 예측되는 기능이 서울역으로의 경로 안내일 것으로 판단할 수 있다.
대화 관리 모듈(140)은 서울역으로 경로 안내를 수행할 지 여부를 묻기 위한 시스템 응답을 생성할 수 있다. 이 때, 사용자가 통화 중이고 음성 인식 기능을 활성화시키기 위한 웨이크업 워드를 발화하지 않았으므로, 시스템 응답은 시각적으로 출력되도록 생성될 수 있다.
생성된 시스템 응답은 사용자 단말(2)에 전송되고, 사용자 단말(2)은 전송된 시스템 응답을 디스플레이(230)에 시각적으로 출력할 수 있다. 통화가 종료되기 전이라도 사용자는 디스플레이(230)에 표시되는 메시지 "서울역으로 안내해드릴까요?"를 확인할 수 있다.
통화가 종료되면, 음성 인식 기능이 활성화될 수 있다. 즉, 사용자가 별도의 트리거 신호를 입력하지 않더라도 마이크(210)에 입력된 사용자의 발화가 대화 시스템(1)으로 전송될 수 있다.
당해 예시의 경우, 사용자가 서울역으로의 경로 안내를 요청하는 취지의 발화 "응 안내해줘"를 입력하였으므로, 대화 시스템(1)은 서울역으로의 경로 안내 시작을 알리는 발화 "네 서울역으로 안내합니다"를 생성하여 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 이를 출력할 수 있다.
도 13의 예시에 따르면, 통화 중 상대방이 사용자에게 다른 상대방에게 전화 걸기를 제안하는 취지의 발화 "홍길동한테 전화해봐"를 입력할 수 있고, 이에 대응하여 사용자가 동의하는 취지의 발화 "알겠어"를 입력할 수 있다.
사용자와 상대방의 발화를 포함하는 통화 내용 관련 정보는 대화 시스템(1)에 전송될 수 있고, 자연어 이해 모듈(130)은 사용자와 상대방의 발화에 기초하여 사용자가 통화 종료 후에 실행시킬 것으로 예측되는 기능이 홍길동에게 전화 걸기일 것으로 판단할 수 있다.
대화 관리 모듈(140)은 홍길동에게 전화 걸기를 수행할 지 여부를 묻기 위한 시스템 응답을 생성할 수 있다. 이 때, 사용자가 통화 중이고 음성 인식 기능을 활성화시키기 위한 웨이크업 워드를 발화하지 않았으므로, 시스템 응답은 시각적으로 출력되도록 생성될 수 있다.
생성된 시스템 응답은 사용자 단말(2)에 전송되고, 사용자 단말(2)은 전송된 시스템 응답을 디스플레이(230)에 시각적으로 출력할 수 있다. 통화가 종료되기 전이라도 사용자는 디스플레이(230)에 표시되는 메시지 "홍길동에게 전화를 걸까요?"를 확인할 수 있다.
통화가 종료되면, 음성 인식 기능이 활성화될 수 있다. 즉, 사용자가 별도의 트리거 신호를 입력하지 않더라도 마이크(210)에 입력된 사용자의 발화가 대화 시스템(1)으로 전송될 수 있다.
당해 예시의 경우, 사용자가 홍길동에게 전화 걸기를 요청하는 취지의 발화 "전화 걸어줘"를 입력하였으므로, 대화 시스템(1)은 전화 걸기 기능의 수행을 알리는 발화 "홍길동에게 전화를 걸겠습니다"를 생성하여 사용자 단말(2)에 전송할 수 있다.
시스템 발화를 수신한 사용자 단말(2)은 스피커(220)를 통해 이를 출력할 수 있다.
지금까지 설명한 사용자 단말 및 그 제어방법과, 대화 시스템 및 대화 관리 방법의 실시예에 의하면, 사용자가 통화 중에도 음성 인식 기능을 편리하고 효율적으로 사용할 수 있게 된다.
한편, 개시된 실시예들에 따른 대화 관리 방법은 컴퓨터에 의해 실행 가능한 명령어의 형태로 기록매체에 저장될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 비일시적(Non-transitory) 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: 대화 시스템
120: 음성 인식 모듈
130: 자연어 이해 모듈
140: 컨트롤 모듈
150: 스토리지
160: 통신 모듈
2: 사용자 단말
210: 마이크
220: 스피커
230: 디스플레이
240: 통신 모듈
250: 컨트롤러
260: 입력 장치
270: 스토리지
280: 음성 인식 모듈

Claims (26)

  1. 사용자의 발화가 입력되는 마이크;
    통화 중 상대방의 발화가 출력되는 스피커;
    상기 통화 중 트리거 신호가 입력되면 음성 인식 기능을 활성화시키는 컨트롤러; 및
    상기 트리거 신호의 입력 이후에 상기 마이크에 입력되는 사용자의 발화와 상기 통화의 내용과 관련된 정보를 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 통신 모듈; 을 포함하고,
    상기 컨트롤러는,
    상기 대화 시스템으로부터 전송되는 시스템 응답을 출력하도록 상기 스피커를 제어하는 사용자 단말.
  2. 제 1 항에 있어서,
    상기 통화의 내용과 관련된 정보를 저장하는 스토리지;를 더 포함하는 사용자 단말.
  3. 제 2 항에 있어서,
    상기 통화의 내용과 관련된 정보는,
    상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 포함하는 사용자 단말.
  4. 제 3 항에 있어서,
    상기 스토리지는,
    상기 통화의 내용과 관련 정보를 오디오 신호의 형태로 저장하는 사용자 단말.
  5. 제 3 항에 있어서,
    상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 텍스트로 변환하는 음성 인식 모듈;을 더 포함하는 사용자 단말.
  6. 제 5 항에 있어서,
    상기 스토리지는,
    상기 통화의 내용과 관련 정보를 텍스트의 형태로 저장하는 사용자 단말.
  7. 제 2 항에 있어서,
    상기 통화의 내용과 관련된 시스템 응답은,
    상기 통화의 내용과 관련된 정보 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력된 상기 사용자의 발화에 기초하여 생성되는 사용자 단말.
  8. 제 1 항에 있어서,
    상기 통신 모듈은,
    제1채널을 통해 상기 사용자의 발화를 상기 상대방에게 전달하고, 제2채널을 통해 상기 사용자의 발화를 상기 대화 시스템에 전송하는 사용자 단말.
  9. 제 8 항에 있어서,
    상기 컨트롤러는,
    상기 트리거 신호가 입력되면 상기 마이크를 통해 입력되는 사용자의 발화가 상기 상대방에게 전달되지 않도록 상기 제1채널을 닫는 사용자 단말.
  10. 제 1 항에 있어서,
    상기 트리거 신호는,
    상기 통화 중 상기 사용자가 상기 상대방에게 발화하는 미리 정해진 특정 단어를 포함하는 사용자 단말.
  11. 제 3 항에 있어서,
    상기 컨트롤러는,
    상기 음성 인식 기능이 활성화된 시점을 기준으로 정해진 시간 이내에 저장된 통화 내용 관련 정보를 상기 통신 모듈을 통해 상기 대화 시스템에 전송하는 사용자 단말.
  12. 제 1 항에 있어서,
    상기 컨트롤러는,
    상기 시스템 응답이 상기 통화의 내용과 관련된 것이면, 상기 시스템 응답을 상기 상대방에게 전송하도록 상기 통신 모듈을 제어하는 사용자 단말.
  13. 제 1 항에 있어서,
    상기 컨트롤러는,
    상기 사용자의 선택에 따라, 상기 시스템 응답을 상기 상대방에게 전송하도록 상기 통신 모듈을 제어하는 사용자 단말.
  14. 마이크를 통해 사용자의 발화를 입력 받는 단계;
    스피커를 통해 통화 중 상대방의 발화를 출력하는 단계;
    상기 통화의 내용과 관련된 정보를 저장하는 단계;
    상기 통화 중 트리거 신호가 입력되면 음성 인식 기능을 활성화시키는 단계;
    상기 트리거 신호의 입력 이후에 상기 마이크에 입력되는 사용자의 발화와 상기 통화의 내용과 관련된 정보를 통신 모듈을 통해 상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계; 및
    상기 대화 시스템으로부터 전송되는 시스템 응답을 출력하도록 상기 스피커를 제어하는 단계;를 포함하는 사용자 단말의 제어 방법.
  15. 제 14 항에 있어서,
    상기 통화의 내용과 관련된 정보는,
    상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 포함하는 사용자 단말의 제어 방법.
  16. 제 15 항에 있어서,
    상기 통화의 내용과 관련된 정보를 저장하는 단계는,
    상기 통화의 내용과 관련 정보를 오디오 신호의 형태로 저장하는 것을 포함하는 사용자 단말의 제어 방법.
  17. 제 15 항에 있어서,
    상기 통화의 내용과 관련된 정보를 저장하는 단계는,
    상기 통화 중 입력된 사용자의 발화 및 상기 상대방의 발화를 텍스트로 변환하고, 상기 통화의 내용과 관련 정보를 텍스트의 형태로 저장하는 것을 포함하는 사용자 단말의 제어 방법.
  18. 제 15 항에 있어서,
    상기 통화의 내용과 관련된 시스템 응답은,
    상기 통화의 내용과 관련된 정보 및 상기 트리거 신호의 입력 이후에 상기 마이크에 입력된 상기 사용자의 발화에 기초하여 생성되는 사용자 단말의 제어 방법.
  19. 제 14 항에 있어서,
    상기 통화 중 상기 마이크를 통해 입력된 상기 사용자의 발화를 상기 통신 모듈의 제1채널을 통해 상기 상대방에게 전달하는 단계;를 더 포함하고,
    상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계는,
    상기 제1채널은 닫고, 상기 통신 모듈의 제2채널을 통해 상기 사용자의 발화를 상기 대화 시스템에 전송하는 것을 포함하는 사용자 단말의 제어 방법.
  20. 제 14 항에 있어서,
    상기 트리거 신호는,
    상기 통화 중 상기 사용자가 상기 상대방에게 발화하는 미리 정해진 특정 단어를 포함하는 사용자 단말의 제어 방법.
  21. 제 15 항에 있어서,
    상기 음성 인식 기능을 수행하는 대화 시스템에 전송하는 단계는,
    상기 음성 인식 기능이 활성화된 시점을 기준으로 정해진 시간 이내에 저장된 통화 내용 관련 정보를 상기 통신 모듈을 통해 상기 대화 시스템에 전송하는 것을 포함하는 사용자 단말의 제어 방법.
  22. 제 14 항에 있어서,
    상기 시스템 응답이 상기 통화의 내용과 관련된 것이면, 상기 시스템 응답을 상기 통신 모듈을 통해 상기 상대방에게 전송하는 단계;를 더 포함하는 사용자 단말의 제어 방법.
  23. 제 14 항에 있어서,
    상기 시스템 응답을 상기 상대방에게 전송할 지 여부에 대한 사용자의 선택을 입력 받는 단계; 및
    상기 사용자의 선택에 기초하여 상기 시스템 응답을 상기 통신 모듈을 통해 상기 상대방에게 전송하는 단계;를 더 포함하는 사용자 단말의 제어 방법.
  24. 사용자 단말로부터 사용자와 상대방 사이의 통화의 내용과 관련된 정보를 수신하는 단계;
    상기 통화의 내용과 관련된 정보에 기초하여 상기 사용자의 의도를 미리 예측하는 단계;
    상기 예측된 사용자의 의도에 대응하는 시스템 응답을 선제적으로 생성하는 단계;
    상기 시스템 응답을 상기 사용자 단말에 전송하는 단계;
    상기 통화의 종료 후에, 상기 사용자 단말로부터 상기 시스템 응답과 관련된 상기 사용자의 발화가 수신되면, 상기 수신된 사용자의 발화에 대응하는 새로운 시스템 응답을 생성하는 단계; 및
    상기 새로운 시스템 응답을 상기 사용자 단말에 전송하는 단계;를 포함하는 대화 관리 방법.
  25. 제 24 항에 있어서,
    상기 사용자 단말은,
    상기 통화가 종료되면 음성 인식 기능을 활성화시키는 대화 관리 방법.
  26. 제 25 항에 있어서,
    상기 통화의 종료 후에 상기 사용자 단말로부터 수신된 상기 사용자의 발화가 상기 시스템 응답과 관련된 것인지 여부를 판단하는 단계;를 더 포함하는 대화 관리 방법.
KR1020220053817A 2022-04-29 2022-04-29 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법 KR20230153854A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220053817A KR20230153854A (ko) 2022-04-29 2022-04-29 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법
US18/106,888 US20230352015A1 (en) 2022-04-29 2023-02-07 User terminal, method of controlling user terminal, and dialogue management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220053817A KR20230153854A (ko) 2022-04-29 2022-04-29 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법

Publications (1)

Publication Number Publication Date
KR20230153854A true KR20230153854A (ko) 2023-11-07

Family

ID=88512532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220053817A KR20230153854A (ko) 2022-04-29 2022-04-29 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법

Country Status (2)

Country Link
US (1) US20230352015A1 (ko)
KR (1) KR20230153854A (ko)

Also Published As

Publication number Publication date
US20230352015A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
US10553216B2 (en) System and method for an integrated, multi-modal, multi-device natural language voice services environment
KR102543693B1 (ko) 전자 장치 및 그의 동작 방법
CN107895578B (zh) 语音交互方法和装置
CN106201424B (zh) 一种信息交互方法、装置及电子设备
KR102103057B1 (ko) 디지털 어시스턴트를 위한 음성 트리거
US8589161B2 (en) System and method for an integrated, multi-modal, multi-device natural language voice services environment
US20160293157A1 (en) Contextual Voice Action History
KR20190031167A (ko) 전자 장치 및 이의 제어 방법
KR20200052638A (ko) 전자 장치 및 전자 장치의 음성 인식 방법
CN113362828B (zh) 用于识别语音的方法和装置
KR102594838B1 (ko) 사용자 발화에 응답하여 통화를 포함하는 태스크를 수행하는 전자 장치 및 그 동작 방법
CN116417003A (zh) 语音交互系统、方法、电子设备和存储介质
KR20190001435A (ko) 음성 입력에 대응하는 동작을 수행하는 전자 장치
KR20210066651A (ko) 전자 장치 및 이의 제어 방법
KR102485339B1 (ko) 차량의 음성 명령 처리 장치 및 방법
CA2839285A1 (en) Hybrid dialog speech recognition for in-vehicle automated interaction and in-vehicle user interfaces requiring minimal cognitive driver processing for same
KR20230153854A (ko) 사용자 단말, 사용자 단말의 제어 방법 및 대화 관리 방법
US11699438B2 (en) Open smart speaker
KR20220125523A (ko) 전자 장치 및 전자 장치에서 레코딩과 음성 입력을 처리하는 방법
KR20210098250A (ko) 전자 장치 및 이의 제어 방법
US11955123B2 (en) Speech recognition system and method of controlling the same
EP3839719B1 (en) Computing device and method of operating the same
KR20230135396A (ko) 대화 관리 방법, 사용자 단말 및 컴퓨터로 판독 가능한 기록 매체
KR20240053428A (ko) 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체
KR20230143436A (ko) 대화 시스템 및 그 제어 방법