KR20230101452A - 대화 시스템 및 대화 처리 방법 - Google Patents

대화 시스템 및 대화 처리 방법 Download PDF

Info

Publication number
KR20230101452A
KR20230101452A KR1020210191570A KR20210191570A KR20230101452A KR 20230101452 A KR20230101452 A KR 20230101452A KR 1020210191570 A KR1020210191570 A KR 1020210191570A KR 20210191570 A KR20210191570 A KR 20210191570A KR 20230101452 A KR20230101452 A KR 20230101452A
Authority
KR
South Korea
Prior art keywords
action
user
signal
guide signal
candidate
Prior art date
Application number
KR1020210191570A
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 KR1020210191570A priority Critical patent/KR20230101452A/ko
Priority to US18/081,382 priority patent/US20230206922A1/en
Publication of KR20230101452A publication Critical patent/KR20230101452A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/037Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for occupant comfort, e.g. for automatic adjustment of appliances according to personal settings, e.g. seats, mirrors, steering wheel
    • B60R16/0373Voice control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B3/00Audible signalling systems; Audible personal calling systems
    • G08B3/10Audible signalling systems; Audible personal calling systems using electric transmission; using electromagnetic transmission
    • G08B3/1008Personal calling arrangements or devices, i.e. paging systems
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B5/00Visible signalling systems, e.g. personal calling systems, remote indication of seats occupied
    • G08B5/22Visible signalling systems, e.g. personal calling systems, remote indication of seats occupied using electric transmission; using electromagnetic transmission
    • G08B5/222Personal calling arrangements or devices, i.e. paging systems
    • 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/04Segmentation; Word boundary detection
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • 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
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Mechanical Engineering (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

일 실시예에 따른 대화 시스템은, 사용자 발화를 복수의 후보 텍스트로 변환하고, 상기 복수의 후보 텍스트에 우선 순위를 부여하는 음성 인식기; 상기 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제1후보 텍스트에 대응되는 제1액션을 결정하는 자연어 이해기; 및 상기 결정된 제1액션의 수행을 시도하고, 상기 제1액션의 수행이 불가능하면, 상기 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정하는 제어부;를 포함한다.

Description

대화 시스템 및 대화 처리 방법{DIALOGUE SYSTEM AND DIALOGUE PROCESSING METHOD}
개시된 발명은 사용자 발화에 대응되는 서비스를 제공하는 대화 시스템 및 대화 처리 방법에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악하고, 파악된 사용자 의도에 대응되는 서비스를 제공할 수 있는 시스템이다.
최근에는 차량에도 이러한 대화 시스템이 탑재되어 사용자가 음성을 발화하는 것만으로 차량을 제어할 수도 있고, 차량과의 대화를 통해 원하는 정보를 얻거나 원하는 서비스를 제공받을 수도 있다.
한편, 사용자의 부정확한 발음, 차량 내의 소음 등 다양한 원인으로 인해 음성 인식에 오류가 발생할 수 있다. 대화 시스템의 사용성을 향상시키기 위해서는 이러한 오류 발생 시에 사용자의 추가 입력을 최소화하면서 오류를 정정하는 기술이 필요하다.
개시된 발명은 음성 인식 결과에 대응되는 액션의 수행 가부를 판단하고, 액션의 수행이 불가능한 경우에는 오인식이 발생한 것으로 보고 후보 발화 텍스트의 우선 순위를 재조정함으로써 음성 인식의 오류를 정정할 수 있는 대화 시스템 및 대화 처리 방법을 제공한다.
또한, 개시된 발명은 후보 발화 텍스트의 우선 순위를 재조정함에 있어서 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 등의 다양한 인자들을 고려함으로써, 정정 가능성을 높일 수 있는 대화 시스템 및 대화 처리 방법을 제공한다.
또한, 개시된 발명은 오류가 정정된 음성 인식의 결과를 사용자에게 선제적으로 제공함으로써, 사용자의 추가 입력을 최소화할 수 있는 대화 시스템 및 대화 처리 방법을 제공한다.
일 실시예에 따른 대화 시스템은, 사용자 발화를 복수의 후보 텍스트로 변환하고, 상기 복수의 후보 텍스트에 우선 순위를 부여하는 음성 인식기; 상기 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제1후보 텍스트에 대응되는 제1액션을 결정하는 자연어 이해기; 및 상기 결정된 제1액션의 수행을 시도하고, 상기 제1액션의 수행이 불가능하면, 상기 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정하는 제어부;를 포함한다.
상기 대화 시스템은, 통신부;를 더 포함하고, 상기 제어부는, 상기 결정된 제1액션을 수행하기 위한 제1액션 신호를 생성하고, 상기 통신부는, 상기 생성된 제1액션 신호를 외부 서버 또는 차량에 전송할 수 있다.
상기 제어부는, 상기 외부 서버 또는 상기 차량으로부터, 상기 생성된 제1액션 신호에 대응되는 동작이 수행 불가능함을 나타내는 실패 신호가 수신되면, 상기 나머지 후보 텍스트들에 대해 우선 순위를 조정할 수 있다.
상기 자연어 이해기는, 상기 우선 순위가 조정된 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제2후보 텍스트에 대응되는 제2액션을 결정할 수 있다.
상기 제어부는, 상기 결정된 제2액션의 수행을 시도하고, 상기 제2액션의 수행이 가능하면, 상기 제2액션에 관한 정보를 사용자에게 제공하기 위한 안내 신호를 생성할 수 있다.
상기 제어부는, 상기 사용자가 디스플레이를 응시하고 있으면, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성할 수 있다.
상기 제어부는, 상기 사용자가 디스플레이를 응시하고 있지 않으면, 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성할 수 있다.
상기 제어부는, 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 중 적어도 하나에 기초하여 상기 우선 순위를 조정할 수 있다.
상기 제어부는, 상기 제1후보 텍스트에서 오인식되고 상기 제2후보 텍스트에서 정정된 단어를 표시하기 위한 시각 안내 신호를 생성하고, 상기 사용자로부터 상기 정정된 단어에 대한 발화가 입력되면, 상기 제2액션을 수행하기 위한 제2액션 신호를 상기 통신부를 통해 상기 외부 서버 또는 상기 차량에 전송할 수 있다.
상기 제어부는, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호와 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하고, 상기 통신부는, 상기 시각 안내 신호와 상기 청각 안내 신호를 상기 차량에 전송할 수 있다.
일 실시예에 따른 대화 처리 방법은, 사용자 발화를 복수의 후보 텍스트로 변환하는 단계; 상기 복수의 후보 텍스트에 우선 순위를 부여하는 단계; 상기 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제1후보 텍스트에 대응되는 제1액션을 결정하는 단계; 및 상기 결정된 제1액션의 수행을 시도하고, 상기 제1액션의 수행이 불가능하면, 상기 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정하는 단계;를 포함한다.
상기 대화 처리 방법은, 상기 결정된 제1액션을 수행하기 위한 제1액션 신호를 생성하는 단계; 및 상기 생성된 제1액션 신호를 외부 서버 또는 차량에 전송하는 단계;를 더 포함할 수 있다.
상기 우선 순위를 조정하는 단계는, 상기 외부 서버 또는 상기 차량으로부터, 상기 생성된 제1액션 신호에 대응되는 동작이 수행 불가능함을 나타내는 실패 신호가 수신되면, 상기 나머지 후보 텍스트들에 대해 우선 순위를 조정하는 것을 포함할 수 있다.
상기 대화 처리 방법은, 상기 우선 순위가 조정된 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제2후보 텍스트에 대응되는 제2액션을 결정하는 단계;를 더 포함할 수 있다.
상기 대화 처리 방법은, 상기 결정된 제2액션의 수행을 시도하는 단계; 및 상기 제2액션의 수행이 가능하면, 상기 제2액션에 관한 정보를 사용자에게 제공하기 위한 안내 신호를 생성하는 단계;를 더 포함할 수 있다.
상기 안내 신호를 생성하는 단계는, 상기 사용자가 디스플레이를 응시하고 있으면, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성하는 것을 포함할 수 있다.
상기 안내 신호를 생성하는 단계는, 상기 사용자가 디스플레이를 응시하고 있지 않으면, 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하는 것을 포함할 수 있다.
상기 우선 순위를 조정하는 단계는, 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 중 적어도 하나에 기초하여 상기 우선 순위를 조정하는 것을 포함할 수 있다.
상기 안내 신호를 생성하는 단계는, 상기 제1후보 텍스트에서 오인식되고 상기 제2후보 텍스트에서 정정된 단어를 표시하기 위한 시각 안내 신호를 생성하는 것을 포함하고, 상기 사용자로부터 상기 정정된 단어에 대한 발화가 입력되면, 상기 제2액션을 수행하기 위한 제2액션 신호를 상 상기 외부 서버 또는 상기 차량에 전송하는 단계;를 더 포함할 수 있다.
상기 안내 신호를 생성하는 단계는, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호와 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하는 것을 포함하고, 상기 시각 안내 신호와 상기 청각 안내 신호를 상기 차량에 전송하는 단계;를 더 포함할 수 있다.
일 실시예에 따른 대화 시스템 및 대화 처리 방법에 의하면, 음성 인식 결과에 대응되는 액션의 수행 가부를 판단하고, 액션의 수행이 불가능한 경우에는 오인식이 발생한 것으로 보고 후보 발화 텍스트의 우선 순위를 재조정함으로써 음성 인식의 오류를 정정할 수 있다.
또한, 후보 발화 텍스트의 우선 순위를 재조정함에 있어서 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 등의 다양한 인자들을 고려함으로써, 정정 가능성을 높일 수 있다.
또한, 오류가 정정된 음성 인식의 결과를 사용자에게 선제적으로 제공함으로써, 사용자의 추가 입력을 최소화할 수 있다.
도 1은 일 실시예에 따른 대화 시스템의 블록도이다.
도 2는 일 실시예에 따른 대화 처리 방법의 순서도이다.
도 3은 일 실시예에 따른 대화 시스템의 다른 블록도이다.
도 4는 일 실시예에 따른 대화 처리 방법의 수행 과정의 예시를 나타내는 도면이다.
도 5는 일 실시예에 따른 대화 처리 방법에 있어서, 액션의 수행을 시도하는 과정을 구체화한 순서도이다.
도 6은 도 5에 도시된 대화 처리 방법의 처리 과정의 예시를 나타낸 도면이다.
도 7 및 도 8은 일 실시예에 따른 대화 처리 방법에 있어서, 우선 순위가 재조정된 이후의 과정을 나타내는 순서도이다.
도 9 및 도 10은 도 7 및 도 8에 도시된 대화 처리 방법의 수행 과정의 예시를 나타낸 도면이다.
도 11은 일 실시예에 따른 차량의 블록도이다.
도 12는 일 실시예에 따른 대화 처리 방법에 있어서, 사용자에게 청각적 안내 신호 또는 시각적 안내 신호를 제공하는 과정을 나타낸 순서도이다.
도 13 내지 도 15는 일 실시예에 따른 대화 처리 방법의 처리 과정의 예시를 나타낸 도면이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서의 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, 본 명세서에서 사용한 "제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지는 않으며, 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1구성 요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1구성 요소로 명명될 수 있다.
"및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하에서는 첨부된 도면을 참조하여 발명의 실시예를 상세하게 설명하도록 한다.
도 1은 일 실시예에 따른 대화 시스템의 블록도이고, 도 2는 일 실시예에 따른 대화 처리 방법의 순서도이다.
일 실시예에 따른 대화 시스템은 사용자의 발화를 인식 및 이해하고, 사용자의 발화에 대응되는 서비스를 제공하는 시스템을 의미한다. 일 실시예에 따른 대화 처리 방법은 일 실시예에 따른 대화 시스템에 의해 수행될 수 있다. 따라서, 후술하는 실시예에서는 별도의 언급이 없더라도 대화 처리 방법에 포함되는 과정 중 전부 또는 일부가 대화 시스템에 포함되는 구성요소에 의해 수행될 수 있고, 대화 시스템의 동작 중 전부 또는 일부가 대화 처리 방법에 포함되는 과정이 될 수 있다.
도 1을 참조하면, 일 실시예에 따른 대화 시스템(100)은 사용자 발화를 텍스트로 변환하는 음성 인식기(110), 사용자 발화에 대응되는 사용자 의도를 판단하는 자연어 이해기(120) 및 사용자 의도에 대응되는 제어를 수행하기 위한 액션 신호를 생성하는 제어부(130)를 포함한다.
음성 인식기(110)는 STT(Speech to Text) 엔진으로 구현될 수 있고, 사용자 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다.
예를 들어, 음성 인식기(110)는 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
또한, 음성 인식기(110)는 머신 러닝 또는 딥 러닝을 적용한 학습에 기반하여 사용자 발화를 텍스트로 변환하는 것도 가능하다. 당해 실시예에서는 음성 인식기(110)가 사용자 발화를 텍스트로 변환하는 방식에 대해서는 제한을 두지 않는바, 음성 인식기(110)는 전술한 방식 외에도 다양한 음성 인식 기술을 적용하여 사용자 발화를 텍스트로 변환할 수 있다.
음성 인식기(110)는 인식 결과의 신뢰성을 확보하기 위해 신뢰도 점수(confidence score)를 계산할 수 있다. 신뢰도 점수는 음성 인식 결과에 대해서 그 결과를 얼마나 믿을 만한 것인가를 나타내는 척도이다.
예를 들어, 인식된 결과인 음소나 단어에 대해서, 그 외의 다른 음소나 단어로부터 그 말이 발화되었을 확률에 대한 상대값으로 정의할 수 있다. 따라서, 신뢰도 점수는 0 에서 1 사이의 값으로 표현할 수도 있고, 0 에서 100 사이의 값으로 표현할 수도 있다.
인식 결과의 신뢰도 점수가 미리 설정된 임계값보다 큰 경우에는 인식 결과를 인정하고, 작은 경우에는 인식 결과를 거절(rejection)할 수 있다.
음성 인식기(110)의 인식 결과, 즉 사용자 발화가 변환된 텍스트는 자연어 이해기(120)에 입력될 수 있다. 자연어 이해기(120)는 입력 텍스트에 포함된 사용자 의도를 판단하기 위해 자연어 이해(Natural Language Understanding: NLU) 기술을 적용할 수 있다. 따라서, 자연어 이해기(120)에는 입력 텍스트에 대해 NLU 기술을 적용하여 사용자 의도를 판단하는 NLU 엔진이 포함될 수 있다.
예를 들어, 자연어 이해기(120)는 입력 텍스트로부터 개체명을 인식할 수 있다. 개체명은 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식은 문장에서 개체명을 식별하고 식별된 개체명의 종류를 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
또한, 자연어 이해기(120)는 입력 텍스트로부터 도메인을 결정할 수 있다. 도메인은 사용자 발화의 주제를 식별할 수 있는 것으로서, 예를 들어, 일정, 날씨 또는 교통 상황 등에 관한 정보 제공, 문자 전송, 엔터테인먼트, 전화 걸기, 내비게이션, 차량 제어, 가전 기기 제어 등의 다양한 주제를 나타내는 도메인이 입력 텍스트에 기초하여 결정될 수 있다.
또한, 자연어 이해기(120)는 입력 텍스트가 갖는 화행을 분석할 수 있다. 화행 분석은 발화의 의도를 분석하는 작업으로, 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 응답을 하는 것인지, 단순한 감정 표현을 하는 것인지 등의 발화의 의도를 파악하는 것이다.
자연어 이해기(120)는 입력 텍스트로부터 추출된 도메인, 개체명, 화행 등의 정보에 기초하여 인텐트(intent) 및 해당 인텐트를 수행하는데 필요한 엔티티(entity)를 판단할 수 있다.
예를 들어, 입력 텍스트가 "에어컨 켜줘"인 경우 도메인은 [차량 제어]가 되고, 인텐트는 [turn on, air conditioner]가 될 수 있으며, 해당 인텐트에 대응되는 제어를 수행하기 위해 필요한 엔티티는 [온도, 풍량]이 될 수 있다.
다른 예로, 입력 텍스트가 "노래 틀어줘"인 경우 도메인은 [엔터테인먼트]가 되고, 인텐트는 [play, song]이 될 수 있으며, 해당 인텐트에 대응되는 제어를 수행하기 위해 필요한 엔티티는 [가수, 곡명]이 될 수 있다.
사용자의 발화에 응답하여 최종적으로 수행되는 동작은 인텐트와 엔티티에 의해 정의될 수 있고, 당해 실시예에서는 인텐트와 엔티티에 의해 정의되는 동작을 액션이라 하기로 한다.
다만, 도메인, 인텐트 등의 분류 기준이나 명칭 등은 시스템에 따라 달라질 수 있는 것이다. 따라서, 당해 실시예에에서 사용되는 용어와 다른 용어를 사용하더라도 그 의미나 용도가 동일하면 개시된 발명의 권리범위에 포함될 수 있다.
제어부(130)는 사용자 의도에 대응되는 액션을 수행하기 위한 액션 신호를 생성하고, 해당 액션을 수행하는 객체에 생성된 액션 신호를 송신할 수 있다.
대화 시스템(100)의 구현에 따라 해당 액션을 수행하는 객체에 액션 신호를 직접 송신하는 것도 가능하고, 다른 구성요소를 통해 송신하는 것도 가능하다. 해당 액션을 수행하는 객체가 원격에 위치하는 경우에는 통신부를 통해 액션 신호를 송신할 수도 있다.
예를 들어, 사용자의 의도에 대응되는 액션이 차량 관련 제어인 경우에는 해당 제어를 수행하기 위한 제어 신호가 액션 신호가 될 수 있고, 대화 시스템(100)은 액션 신호를 생성하여 차량에 전달할 수 있다.
또는, 사용자의 의도에 대응되는 액션이 특정 정보의 제공인 경우에는 해당 정보의 검색을 요청하는 신호가 액션 신호가 될 수 있고, 대화 시스템(100)은 액션 신호를 해당 정보를 검색할 수 있는 외부 서버에 전송할 수 있다.
또는, 사용자의 의도에 대응되는 액션이 특정 컨텐츠의 제공인 경우에는 해당 컨텐츠를 요청하기 위한 신호가 액션 신호가 될 수 있고, 대화 시스템(100)은 컨텐츠를 제공하는 외부 서버에 액션 신호를 전송할 수 있다.
또는, 사용자의 의도에 대응되는 액션이 단순 대화의 지속인 경우에는 사용자의 발화에 대한 응답 신호가 액션 신호가 될 수 있다.
전술한 대화 시스템(100)은 전술한 동작을 수행하는 프로그램이 저장된 적어도 하나의 메모리 및 저장된 프로그램을 실행하는 적어도 하나의 프로세서에 의해 구현될 수 있다.
대화 시스템(100)의 구성요소들은 그 동작 또는 기능을 기준으로 구분된 것으로서, 그 전부 또는 일부가 메모리나 프로세서를 공유할 수 있다.
또한, 대화 시스템(100)은 적어도 하나의 메모리와 적어도 하나의 프로세서를 포함하는 서버에 의해 구현될 수 있다. 또는, 대화 시스템(100)의 기능 일부가 차량, 모바일 기기 등의 사용자 단말기에서 수행되는 것도 가능하고, 대화 시스템(100) 자체가 사용자 단말기에 탑재되는 것도 가능하다.
이하 도 2를 함께 참조하여, 대화 시스템(100) 및 이를 이용한 대화 처리 방법의 실시예를 설명한다.
도 2에 도시된 대화 처리 방법의 실시예에 따르면, 음성 인식기(110)는 사용자 발화를 복수의 후보 텍스트로 변환하고(1010), 복수의 후보 텍스트에 우선 순위를 부여한다(1020).
전술한 바와 같이, 음성 인식기(110)는 입력된 사용자 발화를 텍스트로 변환한다. 이 때, 음성 인식기(110)는 사용자 발화를 하나의 텍스트로 변환하는 것이 아니라, 사용자 발화와 매칭 가능성이 있는 복수의 후보 텍스트로 변환할 수 있다.
음성 인식기(110)는 N-best 탐색법을 이용하여N개의 텍스트를 후보 텍스트로 출력할 수 있다. 예를 들어, N개의 후보 텍스트는 전술한 신뢰도 점수에 따라 부여된 우선 순위를 가질 수 있다. 신뢰도 점수가 높을 수록 높은 우선 순위를 가질 수 있다. 또한, 임계 값 이상의 신뢰도 점수를 갖는 후보 텍스트만 출력될 수도 있다.
자연어 이해기(120)는 우선 순위가 가장 높은 후보 텍스트에 대응되는 액션을 결정한다(1030). 또는, 실시예의 변형에 따라 N개의 후보 텍스트에 대응되는 액션을 미리 결정해두는 것도 가능하다.
전술한 바와 같이, 자연어 이해기(120)는 입력된 후보 텍스트로부터 도메인, 인텐트, 엔티티 등을 인식하여 대응되는 액션을 결정할 수 있다. 액션은 인텐트 및 엔티티에 의해 결정될 수 있다.
제어부(130)는 결정된 액션의 수행을 시도하고(1040), 액션의 수행이 불가능하면(1050의 아니오), 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정할 수 있다(1060). 이와 관련된 자세한 동작은 뒤에서 다시 설명하기로 한다.
또한, 액션의 수행이 불가능하면(1050의 아니오), 사용자에게 액션의 수행이 불가능함을 알리는 메시지를 청각적 또는 시각적인 방식으로 출력할 수 있다.
당해 순서도 상에서는 액션이 수행 가능하면(1050의 예), 해당 처리를 종료하는 것으로 도시하였다. 즉, 액션의 수행이 가능하면, 우선 순위 조정과 관련된 처리는 종료하고, 일반적인 처리 과정에 따라 액션을 수행할 수 있다.
도 3은 일 실시예에 따른 대화 시스템의 다른 블록도이고, 도 4는 일 실시예에 따른 대화 처리 방법의 수행 과정의 예시를 나타내는 도면이다.
도 3을 참조하면, 일 실시예에 따른 대화 시스템(100)은 통신부(140)를 더 포함할 수 있다.
대화 시스템(100)이 별도의 서버로 구현되는 경우에는, 통신부(140)는 사용자 단말 또는 다른 외부 서버와 통신하여 필요한 정보를 주고 받기 위한 다양한 무선 통신 방식을 채용할 수 있다. 예를 들어, 통신부(140)는 3G(WCDMA/HSDPA/wibro), 4G(LTE/LTE-A), 5G, wifi 등의 다양한 무선 통신 방식 중 적어도 하나를 채용할 수 있다.
도 4의 예시는 대화 시스템(100)이 별도의 서버로 구현되고, 차량(200)은 사용자에게 입출력 인터페이스를 제공하는 게이트웨이 또는 사용자 단말로 기능하는 경우에 관한 것이다.
도 4에 도시된 바와 같이, 차량(200)에 탑승한 사용자가 "BTS의 다이너마이트 틀어줘"라는 사용자 발화를 입력하면, 입력된 사용자 발화는 대화 시스템(100)에 전송될 수 있다.
구체적으로, 대화 시스템(100)의 통신부(140)가 사용자 발화를 수신하고, 음성 인식기(110)가 사용자 발화를 복수의 후보 텍스트로 변환할 수 있다.
예를 들어, 음성 인식기(110)는 도 4에 도시된 바와 같이 4개의 후보 텍스트를 출력할 수 있다. 이중에서, 우선 순위가 가장 높은(우선 순위: 1) 후보 텍스트가 "BTS의 다이어트 틀어줘"이므로, 자연어 이해기(120)는 사용자 발화에 대응되는 액션을 "BTS"라는 가수의 "다이어트"라는 곡명의 노래를 재생하는 것으로 결정할 수 있다. 여기서, 인텐트는 [음악, 재생]이고 엔티티는 [가수: BTS, 곡명: 다이어트]로 정의될 수 있다.
제어부(130)는 결정된 액션의 수행을 시도하기 위해, 음악 스트리밍 또는 음악 파일의 다운로드 서비스를 제공하는 외부 서버(300)에 "BTS"의 "다이어트" 재생을 요청할 수 있다.
도 5는 일 실시예에 따른 대화 처리 방법에 있어서, 액션의 수행을 시도하는 과정을 구체화한 순서도이고, 도 6은 도 5에 도시된 대화 처리 방법의 처리 과정의 예시를 나타낸 도면이다.
도 5를 참조하면, 결정된 액션의 수행을 시도하는 것(1040)은 해당 액션의 수행을 위한 액션 신호를 생성하고(1041), 생성된 액션 신호를 해당 액션을 수행하는 주체에 전송(1042)하는 것을 포함할 수 있다.
예를 들어, 결정된 액션이 차량의 공조 제어, 시트 제어 등 차량 관련 제어에 해당하는 경우에는, 제어부(130)가 차량을 제어하기 위한 액션 신호를 생성할 수 있다.
또는, 결정된 액션이 도 4의 예시와 같이 특정 음악의 재생인 경우에는, 제어부(130)가 외부 서버(300)에 해당 음악의 재생을 요청하는 액션 신호를 생성할 수 있다.
앞서 설명한 도 4의 예시를 적용하여 구체적으로 설명한다. BTS의 다이어트 재생을 요청받은 외부 서버(300)는 "BTS"라는 가수의 "다이어트"라는 곡명의 노래를 검색할 수 있다.
도 6에 도시된 바와 같이, "BTS"의 "다이어트" 검색에 실패한 경우, 외부 서버(300)는 대화 시스템(100)에 실패 신호를 전송할 수 있다.
통신부(140)가 외부 서버(300)로부터 실패 신호를 수신하면(1052의 예), 액션의 수행이 가능하지 않은 경우에 해당하므로 나머지 후보 텍스트들의 우선 순위를 조정한다(1060).
또한, 액션의 수행이 가능하지 않은 경우에는 사용자에게 액션의 수행이 불가함을 알리는 안내 신호를 청각적 또는 시각적으로 출력할 수 있다. 이를 위해, 제어부(130)가 청각적 또는 시각적 안내 신호를 생성하고 통신부(140)를 통해 사용자 단말기, 예를 들어 차량(200)에 생성된 안내 신호를 전송할 수 있다.
도 6을 참조하면, 제어부(130)는 기존의 우선 순위가 가장 높았던 후보 텍스트 "BTS의 다이어트 틀어줘"를 제외한 나머지 3개의 후보 텍스트들의 우선 순위를 조정할 수 있다.
나머지 후보 텍스트들의 우선 순위는 다양한 인자들을 고려하여 조정될 수 있다. 예를 들어, 해당 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 또는 문장의 완성도 중 적어도 하나에 기초하여 우선 순위를 조정할 수 있다.
해당 사용자의 발화 빈도와 관련하여, 나머지 후보 텍스트들 중에서 해당 사용자의 발화 빈도가 높은 문장 또는 단어를 포함하는 후보 텍스트에 높은 우선 순위를 부여할 수 있다.
전체 사용자의 발화 빈도와 관련하여, 해당 사용자 뿐만 아니라 대화 시스템(100)의 전체 사용자의 발화 빈도가 높은 문장 또는 단어를 포함하는 후보 텍스트에 높은 우선 순위를 부여할 수 있다.
도메인 내의 매칭률과 관련하여, 복수의 후보 텍스트 중에서 해당 후보 텍스트에 대응되는 도메인과 매칭률이 높은 단어를 포함하는 후보 텍스트에 높은 우선 순위를 부여할 수 있다.
예를 들어, 도메인이 [엔터테인먼트]인 경우에는 가수 이름, 곡명, 영화나 드라마의 제목, 배우 이름 등을 포함하는 후보 텍스트에 높은 우선 순위를 부여할 수 있다. 상기 예시의 단어들은 개체명 인식을 통해 인식될 수 있다. 다만, 개체명 사전에 등록되지 않은 가수나 배우의 이름, 노래나 영화나 드라마의 제목도 있을 수 있다.
다른 예로, 도메인이 [차량 제어]인 경우에는 차량 제어와 관련된 용어를 포함하는 후보 텍스트에 높은 우선 순위를 부여할 수 있다.
문장의 완성도 관련하여, 문장의 구조가 적절하고 자연스러운 후보 텍스트에 높은 우선 순위를 부여할 수 있다. 예를 들어, 주어, 목적어, 동사의 순서나, 주어, 목적어 또는 동사의 자리에 위치하는 단어의 적합성에 따라 우선 순위를 부여할 수 있다. 또는, 동사와 목적어의 관계 또는 주어와 동사의 관계 또는 주어와 목적어의 관계의 적합성에 따라 우선 순위를 부여할 수 있다.
제어부(130)는 전술한 인자들 중 하나에 기초하여 우선 순위를 조정할 수도 있고, 둘 이상의 인자들에 각각 가중치를 부여하여 우선 순위를 조정할 수도 있다.
다만, 대화 처리 방법 또는 대화 시스템(100)의 실시예가 우선 순위의 조정 시에 고려하는 인자들이 상기 예시들에 한정되는 것은 아니다. 이 외에도 사용자 발화에 매칭되는 최적의 인식 결과를 얻기 위해 고려할 수 있는 인자들이면 당해 실시예에서 우선 순위를 조정하는데 사용될 수 있다.
도 6의 예시에서는, 아래 표 1에 기재된 바와 같이 문장 완성도, 해당 사용자의 발화 빈도, 전체 사용자의 발화 빈도 및 실행 가능 여부에 기초하여 후보 텍스트들의 최종 스코어를 산출할 수 있다. 일 예로, 최종 스코어는 각각의 스코어를 곱한 값일 수 있으나, 최종 스코어의 산정 방식이 이에 한정되는 것은 아니다.
문장 완성도 사용자 발화 빈도 전체 사용자 발화 빈도 실행 가능 여부 최종 스코어
BTS의 다이어그램 틀어줘 0.3 0.1 0.1 0.1 0.0003
BTS의 다이너마이트 틀어줘 1.0 0.7 1.0 1.0 0.7
BTS의 다이아 틀어줘 0.9 0.1 0.1 1.0 0.27
최종 스코어에 따라 우선 순위를 조정할 수 있고, 조정 결과 최종 스코어가 가장 높은 후보 텍스트 "BTS의 다이너마이트 틀어줘"에 가장 높은 우선 순위가 부여될 수 있다.
한편, 상기 예시에서는 우선 순위를 조정하는데 고려하는 인자로 실행 가능 여부를 추가하였다. 이 경우, 복수의 후보 텍스트에 대해 대응되는 액션의 수행이 가능한지 여부를 미리 판단하고 그 결과를 저장해놓을 수 있다. 예를 들어, 최초에 우선 순위가 가장 높은 후보 텍스트에 대응되는 액션이 수행 가능한지를 판단하는 과정에서, 나머지 후보 텍스트에 대응되는 액션이 수행 가능한지도 함께 판단할 수 있다.
도 7 및 도 8은 일 실시예에 따른 대화 처리 방법에 있어서, 우선 순위가 재조정된 이후의 과정을 나타내는 순서도이고, 도 9 및 도 10은 도 7 및 도 8에 도시된 대화 처리 방법의 수행 과정의 예시를 나타낸 도면이다.
도 7을 참조하면, 나머지 후보 텍스트들의 우선 순위가 조정되면(1060), 제어부(130)는 조정된 우선 순위가 가장 높은 후보 텍스트에 대응되는 액션을 결정한다(1070).
최초 인식 결과와 조정 후의 인식 결과를 구분하기 위해, 최초 인식 결과에서 우선 순위가 가장 높은 후보 텍스트를 제1후보 텍스트, 그에 대응되는 액션을 제1액션으로 지칭하고, 우선 순위를 조정한 후의 인식 결과에서 우선 순위가 가장 높은 후보 텍스트를 제2후보 텍스트, 그에 대응되는 액션을 제2액션으로 지칭한다.
제어부(130)는 제2액션의 수행을 시도한다(1080).
제2액션의 수행을 시도하기 위해, 제어부(130)는 제2액션의 수행을 위한 액션 신호를 생성하고, 생성된 액션 신호를 제2액션을 수행하는 주체에 전송할 수 있다. 액션 신호 간의 구분을 위해, 제1액션의 수행을 위한 액션 신호는 제1액션 신호라 하고, 제2액션의 수행을 위한 제2액션 신호라 할 수 있다.
제2액션 신호를 수신한 주체에서 제2액션 신호에 대응되는 동작, 즉 제2액션의 수행이 가능하면(1090의 예), 대화 시스템(100)에 성공 신호를 전송할 수 있다.
도 8을 참조하면, 성공 신호를 수신한 대화 시스템(100)은 제2액션에 관한 정보를 사용자에게 제공하기 위한 안내 신호를 생성하고(1100), 생성된 안내 신호를 사용자 단말기에 전송할 수 있다(1110).
안내 신호는 청각적 안내 신호일 수도 있고, 시각적 안내 신호일 수도 있다. 이와 관련된 내용은 후술하기로 한다.
사용자로부터 제2액션의 수행을 승인하는 응답을 수신하면(1120의 예), 제2액션을 수행한다(1130). 예를 들어, 제어부(130)는 제2액션을 수행하기 위한 제2액션 신호를 제2액션을 수행하는 주체에 전송할 수 있다. 다만, 해당 주체는 이미 제2액션 신호를 수신한 바 있으므로, 제2액션의 수행을 트리거하는 트리거 신호를 전송하는 것도 가능하다.
한편, 제2액션의 수행도 가능하지 않으면(1090의 아니오), 후순위의 우선 순위를 갖는 후보 텍스트에 대응되는 액션의 수행을 시도할 수 있다. 또는, 이전에 고려했던 인자와 다른 인자를 고려하여 우선 순위를 재조정하는 것도 가능하다. 또는, 사용자에게 재발화를 요청하는 것도 가능하다.
도 9 및 도 10의 예시를 참조하면, 조정된 우선 순위가 가장 높은 후보 텍스트가 "BTS의 다이너마이트 틀어줘"이므로, 자연어 이해기(120)는 사용자 발화에 대응되는 액션을 "BTS"라는 가수의 "다이너마이트"라는 곡명의 노래를 재생하는 것으로 결정할 수 있다. 여기서, 인텐트는 [음악, 재생]이고 엔티티는 [가수: BTS, 곡명: 다이너마이트]로 정의될 수 있다.
제어부(130)는 결정된 액션의 수행을 시도하기 위해, 외부 서버(300)에 "BTS"의 "다이너마이트" 재생을 요청할 수 있다.
BTS의 다이어트 재생을 요청받은 외부 서버(300)는 "BTS"라는 가수의 "다이너마이트"라는 곡명의 노래를 검색할 수 있다.
"BTS"의 "다이너마이트" 검색에 성공하여 재생 가능한 것으로 판단한 경우, 외부 서버(300)는 대화 시스템(100)에 성공 신호를 전송할 수 있다.
제어부(130)는 제2액션에 관한 정보를 제공하기 위한 안내 신호, 즉 "BTS"의 "다이너마이트"를 재생할 지를 사용자에게 확인하기 위한 안내 신호를 생성하고, 이를 통신부(140)를 통해 차량(200)에 전송할 수 있다.
도 11은 일 실시예에 따른 차량의 블록도이고, 도 12는 일 실시예에 따른 대화 처리 방법에 있어서, 사용자에게 청각적 안내 신호 또는 시각적 안내 신호를 제공하는 과정을 나타낸 순서도이고,
도 11을 참조하면, 차량(200)은 사용자 발화가 입력되는 마이크(210), 대화 시스템(100) 또는 다른 외부 서버(300)와 신호를 주고 받는 통신부(220), 차량(200) 전반에 대한 제어를 수행하는 제어부(230), 대화 시스템(100)으로부터 수신한 정보를 표시하는 디스플레이(240) 및 대화 시스템(100)으로부터 수신한 정보를 출력하는 스피커(250)를 포함한다.
통신부(220)는 대화 시스템(100) 또는 다른 외부 서버(300)와 필요한 정보를 주고 받기 위한 다양한 무선 통신 방식을 채용할 수 있다. 예를 들어, 통신부(140)는 3G(WCDMA/HSDPA/wibro), 4G(LTE/LTE-A), 5G, wifi 등의 다양한 무선 통신 방식 중 적어도 하나를 채용할 수 있다.
또한, 통신부(220)는 차량(200) 내의 또는 차량(200)과 인접한 모바일 기기와 통신하기 위해 블루투스, NFC, 또는 케이블을 이용한 유선 통신 방식을 채용할 수도 있다.
디스플레이(240)와 스피커(250)는 대화 시스템(100)으로부터 수신한 정보를 출력할 수도 있고, 외부 서버(300)에서 제공된 정보나 컨텐츠를 출력할 수도 있다.
도 12를 참조하면, 대화 시스템(100)은 사용자 정보를 수신할 수 있다(1101). 여기서, 사용자 정보는 제2액션에 관한 안내 신호를 어떤 방식으로 제공할 지 결정하기 위한 기준이 된다.
예를 들어, 사용자가 차량(200)에 탑승 중이고 대화 시스템(100)과 신호를 주고 받는 주체가 차량(200)인 경우, 대화 시스템(100)은 차량(200)으로부터 사용자가 차량(200)에 마련된 디스플레이(240)를 응시하고 있는지에 관한 정보를 수신할 수 있다.
차량(200)은 차량(200) 내에 마련된 카메라 등의 각종 센서를 이용하여 사용자 정보를 획득할 수 있다.
사용자가 디스플레이(240)를 응시하고 있으면(1102의 예), 제어부(130)는 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성한다(1103).
사용자가 디스플레이(240)를 응시하고 있지 않으면(1102의 아니오), 제어부(130)는 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성한다(1104). 다만, 사용자가 디스플레이(240)를 응시하고 있지 않은 경우에 시각 안내 신호의 생성이 배제되는 것은 아니다. 이 경우에도 시각 안내 신호가 청각 안내 신호와 함께 생성될 수 있다.
제어부(130)는 생성된 안내 신호를 통신부(140)를 통해 차량(200)으로 전송한다(1110).
차량(200)은 전송된 안내 신호에 따라 디스플레이(240)에 제2액션에 관한 정보를 표시하거나, 스피커(250)를 통해 제2액션에 관한 정보를 출력할 수 있다.
사용자는 차량(200)에 마련된 입력 장치를 통해 제2액션을 수행할 지에 관한 사용자 응답을 입력할 수 있다. 사용자 응답의 종류는 제2액션에 관한 안내 신호가 출력된 방식에 따라 달라질 수 있다.
예를 들어, 제2액션에 관한 안내 신호가 시각적으로 출력된 경우에는 터치 스크린 또는 별도의 입력 장치를 통해 사용자 응답을 입력할 수 있다.
또는, 제2액션에 관한 안내 신호가 청각적으로 출력된 경우에는 마이크(210)를 통해 사용자 응답을 입력할 수 있다.
또는, 제2액션에 관한 안내 신호가 시각적으로 출력된 경우에도 마이크(210)를 통해 사용자 응답을 입력할 수도 있다.
입력된 사용자 응답은 통신부(220)가 대화 시스템(100)으로 전송할 수 있다.
사용자 응답이 수신되면(1120의 예), 제어부(130)는 제2액션을 수행하기 위해 제2액션 신호를 외부 서버(300)에 전송한다(1130). 여기서, 수신되는 사용자 응답은 제2액션의 수행을 승인하는 응답이다. 제2액션의 수행을 승인하는 응답이 수신되지 않으면(1120의 아니오), 사용자의 재발화를 요청할 수 있다.
제2액션 신호를 수신한 외부 서버(300)는 제2액션 신호에 대응되는 제2액션을 수행하고, 그 결과를 차량(200) 또는 대화 시스템(100)에 전달할 수 있다.
도 13 내지 도 15는 일 실시예에 따른 대화 처리 방법의 처리 과정의 예시를 나타낸 도면이다.
전술한 예시에서와 같이 제1후보 텍스트가 "BTS의 다이어트 틀어줘"이고, 제2후보 텍스트가 "BTS의 다이너마이트 틀어줘"인 경우를 예로 든다.
사용자가 디스플레이(240)를 응시하고 있는 경우, 차량(200)의 제어부(230)는 사용자가 디스플레이(240)를 응시하고 있음을 나타내는 사용자 정보를 대화 시스템(100)에 전송할 수 있다.
제어부(130)는 제2액션에 관한 정보, 즉 "BTS"의 "다이너마이트" 재생에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성할 수 있다.
생성된 시각 안내 신호는 통신부(140)를 통해 차량(200)에 전달되고, 차량(200)의 제어부(230)는 도 13에 도시된 바와 같이, 수신된 시각 안내 신호에 따라 제2액션에 관한 정보를 디스플레이(240)에 표시할 수 있다.
제2액션에 관한 정보는 다양한 방식으로 표시될 수 있다. 일 예로, 도 13에 도시된 바와 같이, 최초 인식된 제1후보 텍스트에서 제2후보 텍스트로 발화를 정정할 것인지를 묻는 메시지가 디스플레이(240)에 표시될 수 있다.
구체적으로, 제1후보 텍스트 "BTS의 다이어트 틀어줘"에서 오인식되고, 제2후보 텍스트 "BTS의 다이너마이트 틀어줘"에서 정정된 단어 "다이어트 --> 다이너마이트"가 표시될 수 있다.
사용자가 디스플레이(240)를 응시하고 있으므로, 별도의 입력 장치를 조작하거나, 디스플레이(240)를 터치하여 정정된 단어 "다이너마이트"를 선택할 수 있다.
또는, 도 14에 도시된 바와 같이, 정정된 단어 "다이너마이트"를 발화함으로써 제2후보 텍스트를 선택하고, 제2액션의 수행을 승인할 수 있다.
사용자가 디스플레이(240)를 응시하고 있지 않은 경우에는, 차량(200)의 제어부(230)는 사용자가 디스플레이(240)를 응시하고 있지 않음을 나타내는 사용자 정보를 대화 시스템(100)에 전송할 수 있다.
제어부(130)는 제2액션에 관한 정보, 즉 "BTS"의 "다이너마이트" 재생에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성할 수 있다. 청각 안내 신호는 TTS(Text to Speech) 신호일 수 있다.
생성된 청각 안내 신호는 통신부(140)를 통해 차량(200)에 전달되고, 차량(200)의 제어부(230)는 도 15에 도시된 바와 같이, 수신된 청각 안내 신호에 따라 제2액션에 관한 정보를 스피커(250)를 통해 출력할 수 있다.
예를 들어, "BTS의 다이너마이트 틀어드릴까요?"와 같이 제2액션을 수행할 지 여부를 묻는 메시지를 출력할 수 있다.
사용자는 "그래" 또는 "아니"와 같은 사용자 응답을 발화할 수 있고, 마이크(210)가 수신한 사용자 응답은 통신부(220)를 통해 대화 시스템(100)으로 전송될 수 있다.
전술한 예시에서는 사용자의 디스플레이(240) 응시 여부에 따라 시각 안내 신호 또는 청각 안내 신호를 생성하는 것으로 하였으나, 차량(200)의 주행 여부에 따라 시각 안내 신호 또는 청각 안내 신호를 생성하는 것도 가능하다. 예를 들어, 차량(200)이 주행 중인 경우에는 청각 안내 신호를 생성하고, 차량(200)이 정차 중이면 시각 안내 신호를 생성할 수 있다.
또는, 대화 시스템(100)에서는 시각 안내 신호와 청각 안내 신호를 모두 생성하여 차량(200)에 전송하고, 차량(200)이 사용자의 디스플레이(240) 응시 여부 또는 차량(200)이 주행 중인지 여부에 따라 시각 안내 신호 또는 청각 안내 신호를 출력하는 것도 가능하다.
한편, 개시된 실시예들에 따른 대화 처리 방법은 컴퓨터에 의해 실행 가능한 명령어의 형태로 기록매체에 저장될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 비일시적 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
일 실시예에 따른 대화 시스템 및 대화 처리 방법에 의하면, 음성 인식 결과에 대응되는 액션의 수행 가부를 판단하고, 액션의 수행이 불가능한 경우에는 오인식이 발생한 것으로 보고 후보 발화 텍스트의 우선 순위를 재조정함으로써 음성 인식의 오류를 정정할 수 있다.
또한, 후보 발화 텍스트의 우선 순위를 재조정함에 있어서 사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 등의 다양한 인자들을 고려함으로써, 정정 가능성을 높일 수 있다.
또한, 오류가 정정된 음성 인식의 결과를 사용자에게 선제적으로 제공함으로써, 사용자의 추가 입력을 최소화할 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
100: 대화 시스템
110: 음성 인식기
120: 자연어 이해기
130: 제어부
140: 통신부
200: 차량
300: 외부 서버

Claims (20)

  1. 사용자 발화를 복수의 후보 텍스트로 변환하고, 상기 복수의 후보 텍스트에 우선 순위를 부여하는 음성 인식기;
    상기 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제1후보 텍스트에 대응되는 제1액션을 결정하는 자연어 이해기; 및
    상기 결정된 제1액션의 수행을 시도하고, 상기 제1액션의 수행이 불가능하면, 상기 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정하는 제어부;를 포함하는 대화 시스템.
  2. 제 1 항에 있어서,
    통신부;를 더 포함하고,
    상기 제어부는,
    상기 결정된 제1액션을 수행하기 위한 제1액션 신호를 생성하고,
    상기 통신부는,
    상기 생성된 제1액션 신호를 외부 서버 또는 차량에 전송하는 대화 시스템.
  3. 제 2 항에 있어서,
    상기 제어부는,
    상기 외부 서버 또는 상기 차량으로부터, 상기 생성된 제1액션 신호에 대응되는 동작이 수행 불가능함을 나타내는 실패 신호가 수신되면, 상기 나머지 후보 텍스트들에 대해 우선 순위를 조정하는 대화 시스템.
  4. 제 2 항에 있어서,
    상기 자연어 이해기는,
    상기 우선 순위가 조정된 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제2후보 텍스트에 대응되는 제2액션을 결정하는 대화 시스템.
  5. 제 4 항에 있어서,
    상기 제어부는,
    상기 결정된 제2액션의 수행을 시도하고, 상기 제2액션의 수행이 가능하면, 상기 제2액션에 관한 정보를 사용자에게 제공하기 위한 안내 신호를 생성하는 대화 시스템.
  6. 제 5 항에 있어서,
    상기 제어부는,
    상기 사용자가 디스플레이를 응시하고 있으면, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성하는 대화 시스템.
  7. 제 5 항에 있어서,
    상기 제어부는,
    상기 사용자가 디스플레이를 응시하고 있지 않으면, 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하는 대화 시스템.
  8. 제 1 항에 있어서,
    상기 제어부는,
    사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 중 적어도 하나에 기초하여 상기 우선 순위를 조정하는 대화 시스템.
  9. 제 6 항에 있어서,
    상기 제어부는,
    상기 제1후보 텍스트에서 오인식되고 상기 제2후보 텍스트에서 정정된 단어를 표시하기 위한 시각 안내 신호를 생성하고,
    상기 사용자로부터 상기 정정된 단어에 대한 발화가 입력되면, 상기 제2액션을 수행하기 위한 제2액션 신호를 상기 통신부를 통해 상기 외부 서버 또는 상기 차량에 전송하는 대화 시스템.
  10. 제 5 항에 있어서,
    상기 제어부는,
    상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호와 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하고,
    상기 통신부는,
    상기 시각 안내 신호와 상기 청각 안내 신호를 상기 차량에 전송하는 대화 시스템.
  11. 사용자 발화를 복수의 후보 텍스트로 변환하는 단계;
    상기 복수의 후보 텍스트에 우선 순위를 부여하는 단계;
    상기 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제1후보 텍스트에 대응되는 제1액션을 결정하는 단계; 및
    상기 결정된 제1액션의 수행을 시도하고, 상기 제1액션의 수행이 불가능하면, 상기 복수의 후보 텍스트 중 나머지 후보 텍스트들의 우선 순위를 조정하는 단계;를 포함하는 대화 처리 방법.
  12. 제 11 항에 있어서,
    상기 결정된 제1액션을 수행하기 위한 제1액션 신호를 생성하는 단계; 및
    상기 생성된 제1액션 신호를 외부 서버 또는 차량에 전송하는 단계;를 더 포함하는 대화 처리 방법.
  13. 제 12 항에 있어서,
    상기 우선 순위를 조정하는 단계는,
    상기 외부 서버 또는 상기 차량으로부터, 상기 생성된 제1액션 신호에 대응되는 동작이 수행 불가능함을 나타내는 실패 신호가 수신되면, 상기 나머지 후보 텍스트들에 대해 우선 순위를 조정하는 것을 포함하는 대화 처리 방법.
  14. 제 12 항에 있어서,
    상기 우선 순위가 조정된 복수의 후보 텍스트 중에서 상기 우선 순위가 가장 높은 제2후보 텍스트에 대응되는 제2액션을 결정하는 단계;를 더 포함하는 대화 처리 방법.
  15. 제 14 항에 있어서,
    상기 결정된 제2액션의 수행을 시도하는 단계; 및
    상기 제2액션의 수행이 가능하면, 상기 제2액션에 관한 정보를 사용자에게 제공하기 위한 안내 신호를 생성하는 단계;를 더 포함하는 대화 처리 방법.
  16. 제 15 항에 있어서,
    상기 안내 신호를 생성하는 단계는,
    상기 사용자가 디스플레이를 응시하고 있으면, 상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호를 생성하는 것을 포함하는 대화 처리 방법.
  17. 제 15 항에 있어서,
    상기 안내 신호를 생성하는 단계는,
    상기 사용자가 디스플레이를 응시하고 있지 않으면, 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하는 것을 포함하는 대화 처리 방법.
  18. 제 11 항에 있어서,
    상기 우선 순위를 조정하는 단계는,
    사용자의 발화 빈도, 전체 사용자의 발화 빈도, 도메인 내의 매칭률 및 문장의 완성도 중 적어도 하나에 기초하여 상기 우선 순위를 조정하는 것을 포함하는 대화 처리 방법.
  19. 제 16 항에 있어서,
    상기 안내 신호를 생성하는 단계는,
    상기 제1후보 텍스트에서 오인식되고 상기 제2후보 텍스트에서 정정된 단어를 표시하기 위한 시각 안내 신호를 생성하는 것을 포함하고,
    상기 사용자로부터 상기 정정된 단어에 대한 발화가 입력되면, 상기 제2액션을 수행하기 위한 제2액션 신호를 상 상기 외부 서버 또는 상기 차량에 전송하는 단계;를 더 포함하는 대화 처리 방법.
  20. 제 15 항에 있어서,
    상기 안내 신호를 생성하는 단계는,
    상기 제2액션에 관한 정보를 시각적으로 제공하기 위한 시각 안내 신호와 상기 제2액션에 관한 정보를 청각적으로 제공하기 위한 청각 안내 신호를 생성하는 것을 포함하고,
    상기 시각 안내 신호와 상기 청각 안내 신호를 상기 차량에 전송하는 단계;를 더 포함하는 대화 처리 방법.
KR1020210191570A 2021-12-29 2021-12-29 대화 시스템 및 대화 처리 방법 KR20230101452A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210191570A KR20230101452A (ko) 2021-12-29 2021-12-29 대화 시스템 및 대화 처리 방법
US18/081,382 US20230206922A1 (en) 2021-12-29 2022-12-14 Dialogue system and dialogue processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210191570A KR20230101452A (ko) 2021-12-29 2021-12-29 대화 시스템 및 대화 처리 방법

Publications (1)

Publication Number Publication Date
KR20230101452A true KR20230101452A (ko) 2023-07-06

Family

ID=86897061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210191570A KR20230101452A (ko) 2021-12-29 2021-12-29 대화 시스템 및 대화 처리 방법

Country Status (2)

Country Link
US (1) US20230206922A1 (ko)
KR (1) KR20230101452A (ko)

Also Published As

Publication number Publication date
US20230206922A1 (en) 2023-06-29

Similar Documents

Publication Publication Date Title
US11170776B1 (en) Speech-processing system
AU2016216737B2 (en) Voice Authentication and Speech Recognition System
US10332513B1 (en) Voice enablement and disablement of speech processing functionality
KR101818980B1 (ko) 다중 화자 음성 인식 수정 시스템
US20230317074A1 (en) Contextual voice user interface
CN106463113B (zh) 在语音辨识中预测发音
JP4260788B2 (ja) 音声認識機器制御装置
EP1557822A1 (en) Automatic speech recognition adaptation using user corrections
US20070239455A1 (en) Method and system for managing pronunciation dictionaries in a speech application
US11676572B2 (en) Instantaneous learning in text-to-speech during dialog
US11715472B2 (en) Speech-processing system
WO2006083020A1 (ja) 抽出された音声データを用いて応答音声を生成する音声認識システム
US20240071385A1 (en) Speech-processing system
US11955112B1 (en) Cross-assistant command processing
US11915683B2 (en) Voice adaptation using synthetic speech processing
KR101283271B1 (ko) 어학 학습 장치 및 어학 학습 방법
US20230360633A1 (en) Speech processing techniques
US11735178B1 (en) Speech-processing system
KR20230101452A (ko) 대화 시스템 및 대화 처리 방법
US10854196B1 (en) Functional prerequisites and acknowledgments
US11893984B1 (en) Speech processing system
US12001260B1 (en) Preventing inadvertent wake in a speech-controlled device
KR102221236B1 (ko) 음성을 제공하는 방법 및 장치
US20240257808A1 (en) Cross-assistant command processing
KR20230135396A (ko) 대화 관리 방법, 사용자 단말 및 컴퓨터로 판독 가능한 기록 매체