KR20190058307A - 에이전트 개발자를 위한 툴킷 제공 장치 - Google Patents

에이전트 개발자를 위한 툴킷 제공 장치 Download PDF

Info

Publication number
KR20190058307A
KR20190058307A KR1020180140148A KR20180140148A KR20190058307A KR 20190058307 A KR20190058307 A KR 20190058307A KR 1020180140148 A KR1020180140148 A KR 1020180140148A KR 20180140148 A KR20180140148 A KR 20180140148A KR 20190058307 A KR20190058307 A KR 20190058307A
Authority
KR
South Korea
Prior art keywords
utterance
pattern
support unit
intention
received
Prior art date
Application number
KR1020180140148A
Other languages
English (en)
Other versions
KR102209336B1 (ko
Inventor
정슬기
최봉준
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to US16/197,171 priority Critical patent/US10930280B2/en
Priority to PCT/KR2018/014237 priority patent/WO2019098803A1/en
Publication of KR20190058307A publication Critical patent/KR20190058307A/ko
Application granted granted Critical
Publication of KR102209336B1 publication Critical patent/KR102209336B1/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/28Constructional details of speech recognition 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/10Speech classification or search using distance or distortion measures between unknown speech and reference templates

Landscapes

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

Abstract

에이전트 개발자를 위한 툴킷 제공 장치가 개시된다. 본 발명의 실시 예에 따른 에이전트 개발자를 위한 툴킷 제공 장치는, 사용자가 입력한 발화문을 획득하고 발화문을 출력하는 인터페이스부, 및, 상기 사용자가 입력한 발화문이 상기 인터페이스부를 통하여 수신되면, 상기 수신된 발화문의 의도를 결정하고, 상기 결정된 의도에 대응하는 다른 발화문 또는 응답문을 상기 인터페이스부를 통하여 제공하는 서포트부를 포함한다.

Description

에이전트 개발자를 위한 툴킷 제공 장치{TOOLKIT PROVIDING DEVICE FOR AGENT DEVELOPER}
본 발명은, 에이전트 개발자가 발화문을 등록하는데 편리한 툴킷을 제공할 수 있는 에이전트 개발자를 위한 툴킷 제공 장치에 관한 것이다.
인공 지능(artificial intelligence)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
한편, 종래에는 인공지능을 이용하여 사용자가 처한 상황을 인지하고 사용자가 원하는 정보를 원하는 형태로 제공하는 상황 인지(Context Awareness) 기술이 활발하게 연구되고 있다.
상술한, 상황 인지 기술이 발달함과 동시에 사용자가 처한 상황에 적합한 기능을 수행할 수 있는 장치에 대한 수요가 증가하고 있다.
한편, 사용자의 음성 인식과 상황 인지 기술을 결합하여, 사용자와 음성으로 대화를 나누고, 음성 인식을 통하여 사용자에게 각종 서비스를 제공하는 에이전트가 개발되고 있다.
이러한 에이전트를 만들기 위해서는, 에이전트 개발자가 각종 발화문들을 사용자의 의도에 맞추어 등록하여야 한다. 다만 사용자가 발화할만한 각종 발화문 들을 생각해 내고 이를 등록하는 것은 매우 방대하고 어려운 작업으로, 이러한 작업은 주로 자연어 처리(Natural Language Processing, NLP) 전문가가 수행하였다.
따라서 에이전트 개발자가 손쉽게 에이전트를 개발할 수 있도록 상황에 맞는 발화문을 추천하는 툴킷(toolkit)을 제공해야 할 필요성이 대두되었다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명은 에이전트 개발자가 발화문을 등록하는데 편리한 툴킷을 제공할 수 있는, 에이전트 개발자를 위한 툴킷 제공 장치에 관한 것이다
본 발명의 일 실시 예에 따른 에이전트 개발자를 위한 툴킷 제공 장치는, 사용자가 입력한 발화문을 획득하고 발화문을 출력하는 인터페이스부, 및, 상기 사용자가 입력한 발화문이 상기 인터페이스부를 통하여 수신되면, 상기 수신된 발화문의 의도를 결정하고, 상기 결정된 의도에 대응하는 다른 발화문 또는 응답문을 상기 인터페이스부를 통하여 제공하는 서포트부를 포함한다.
본 발명에 따르면, 인공지능 기술들은 툴킷 안에 내제 되어 있으며, 툴킷을 이용하는 개발자는 GUI를 통해 이 기술들을 이용 한다. 그리고 툴킷을 사용함으로써, 초급/고급 에이전트 개발자의 구분 없이 모든 개발자가 에이전트를 손쉽게 개발할 수 있도록 편의를 제공하고, 비 NLP 전문가들도 코딩 없이 손쉽게 자신만의 음성 대화 에이전트를 개발할 수 있다.
도 1은 본 발명의 실시 예에 따른, 에이전트 개발자를 위한 툴킷 제공 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 실시 예에 따른, 발화문의 추천 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른, 수신된 발화문을 분류하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른, 발화문을 다른 의도로 이동하거나 새로운 의도에 등록하는 방법을 설명하기 위한 도면이다.
도 5는 개발이 완료된 에이전트의 배포 과정을 설명하기 위한 도면이다.
도 6은 툴킷 제공 장치와 전자 장치를 이용한 하이브리드 음성 인식 서비스를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 발명의 실시 예에 따른, 에이전트 개발자를 위한 툴킷 제공 장치를 설명하기 위한 블록도이다.
에이전트 개발자를 위한 툴킷 제공 장치(100)는, 툴킷 제공 장치(100)라는 용어와 혼용되어 사용될 수 있다.
에이전트 개발자를 위한 툴킷 제공 장치(100)는 에이전트 개발자가 사용자의 의도에 맞는 발화문 또는 응답문을 편리하게 등록할 수 있도록, 에이전트 개발자에게 툴킷(toolkit)을 제공하는 장치이다.
여기서 툴킷(toolkit)이란 소프트웨어 도구 세트일 수 있다. 이에 따라 에이전트 개발자가 발화문 또는 응답문을 등록하는 작업을 하는 동안, 에이전트 개발자를 위한 툴킷 제공 장치(100)는 발화문 및 응답문 중 적어도 하나를 에이전트 개발자에게 추천할 수 있다.
한편 에이전트 개발자를 위한 툴킷 제공 장치는 다른 장치에 툴킷(toolkit)을 제공하는 서버로써 동작할 수도 있다.
에이전트 개발자를 위한 툴킷 제공 장치(100)는 인터페이스부(110) 및 서포트부(120)를 포함할 수 있다.
인터페이스부(110)는 사용자와 인터페이스하기 위한 구성으로, 입력부(111), 출력부(112) 및 통신부(113) 중 적어도 하나를 포함할 수 있다.
입력부(111)는 사용자가 입력하는 데이터를 수신하는 입력 장치로써, 영상 신호 입력을 위한 카메라 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone), 또는 오디오 입력부, 사용자로부터 정보를 입력 받기 위한 사용자 입력부(예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다
이에 따라 사용자는 입력부(111)를 통하여 발화문 또는 응답문을 입력할 수 있고, 입력부(111)는 사용자가 입력한 발화문 또는 응답문을 획득할 수 있다.
출력부(112)는 데이터를 출력하여 사용자에게 제공하는 출력 장치로써, 디스플레이부, 음향 출력부 중 적어도 하나를 포함할 수 있다. 이에 따라 에이전트 개발자를 위한 툴킷 제공 장치(100)는, 에이전트 개발자를 위한 툴킷 제공 장치(100)에서 추천하는 발화문 또는 응답문을 디스플레이 하거나 음향으로 출력할 수 있다.
통신부(113)는, 에이전트 개발자가 사용하는 다른 장치에서 툴킷 제공 장치(100)에 접속하여 툴킷을 제공받는 경우 사용될 수 있다.
통신부(113)는 다른 장치와 통신하여 다른 장치와의 접속을 제공할 수 있다.
에이전트 개발자는 다른 장치에 발화문 또는 응답문을 입력할 수 있고, 다른 장치는 사용자가 입력한 발화문 또는 응답문을 툴킷 제공 장치(100)에 전송할 수 있다. 이에 따라 통신부(113)는 사용자가 입력한 발화문 또는 응답문을 획득할 수 있다.
또한 툴킷 제공 장치(100)는 툴킷 제공 장치(100)에서 추천하는 발화문 또는 응답문을 통신부(113)를 통하여 다른 장치에 전송할 수 있다. 이 경우 다른 장치는 툴킷 제공 장치(100)에서 추천하는 발화문 또는 응답문을 디스플레이 하거나 음향으로 출력할 수 있다.
이러한 방식으로, 에이전트 개발자는 자신이 사용하는 컴퓨터 등의 장치를 이용하여 툴킷 제공 장치(100)에 접속하고, 툴킷 제공 장치(100)에서 제공하는 툴킷 서비스를 제공 받을 수 있다.
서포트부(120)는 제어부(121) 및 저장부(122)를 포함할 수 있다.
저장부(122)는 툴킷 제공 장치(100)의 다양한 기능을 지원하는 데이터를 저장한다. 저장부(122)는 툴킷 제공 장치(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 툴킷 제공 장치(100)의 동작을 위한 데이터들, 명령어들을, 제어부(121)의 동작을 위한 데이터들(예를 들어, 머신 러닝을 위한 적어도 하나의 알고리즘 정보 등)을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.
제어부(121)는 툴킷 제공 장치(100)의 전반적인 동작을 제어할 수 있으며, 용어 마이크로 프로세서, 프로세서, 컨트롤러와 혼용되어 사용될 수 있다.
제어부(121)는 인공지능 기술에 기반한 기능 또는 동작을 제공할 수 있다.
제어부(121)는, 인공 지능 기술에 기반하여 정보들을 처리하는 역할을 수행하는 것으로, 정보의 학습, 정보의 추론, 정보의 지각, 자연 언어의 처리 중 적어도 하나를 수행하는 하나 이상의 모듈을 포함할 수 있다.
제어부(121)는 머신 러닝(machine learning) 기술을 이용하여, 음성 인식 장치 내에 저장된 정보, 음성 인식 장치 주변의 환경 정보, 통신 가능한 외부 저장소에 저장된 정보 등 방대한 양의 정보(빅데이터, big data)를 학습, 추론, 처리 중 적어도 하나를 수행할 수 있다. 그리고, 인공지능부(130)는 상기 머신 러닝 기술을 이용하여 학습된 정보들을 이용하여, 실행 가능한 적어도 하나의 음성 인식 장치의 동작을 예측(또는 추론)하고, 상기 적어도 하나의 예측된 동작들 중 가장 실현성이 높은 동작이 실행되도록 음성 인식 장치를 제어할 수 있다.
머신 러닝 기술은 적어도 하나의 알고리즘에 근거하여, 대규모의 정보들을 수집 및 학습하고, 학습된 정보를 바탕으로 정보를 판단 및 예측하는 기술이다. 정보의 학습이란 정보들의 특징, 규칙, 판단 기준 등을 파악하여, 정보와 정보 사이의 관계를 정량화하고, 정량화된 패턴을 이용하여 새로운 데이터들을 예측하는 동작이다.
이러한 머신 러닝 기술이 사용하는 알고리즘은 통계학에 기반한 알고리즘이 될 수 있으며, 예를 들어, 트리 구조 형태를 예측 모델로 사용하는 의사 결정 나무(decision tree), 생물의 신경 네트워크 구조와 기능을 모방하는 인공 신경망(neural network), 생물의 진화 알고리즘에 기반한 유전자 프로그래밍(genetic programming), 관측된 예를 군집이라는 부분집합으로 분배하는 군집화(Clustering), 무작위로 추출된 난수를 통해 함수값을 확률로 계산하는 몬테카를로 방법(Monter carlo method) 등이 될 수 있다.
머신 러닝 기술의 한 분야로써, 딥러닝(deep learning) 기술은 인공 신경망 알고리즘을 이용하여, 정보들을 학습, 판단, 처리 중 적어도 하나를 수행하는 기술이다. 인공 신경망은 레이어와 레이어 사이를 연결하고, 레이어와 레이어 사이의 데이터를 전달하는 구조를 가질 수 있다. 이러한 딥러닝 기술은 병렬 연산에 최적화된 GPU(graphic processing unit)를 이용하여 인공 신경망을 통하여 방대한 양의 정보를 학습할 수 있다.
한편, 제어부(121)는 머신 러닝 기술을 적용하기 위한 방대한 양의 정보들을 수집하기 위하여, 음성 인식 장치의 구성 요소들에서 입력 또는 출력되는 신호, 데이터, 정보 등을 수집(감지, 모니터링, 추출, 검출, 수신)할 수 있다. 또한, 제어부(121)는 통신을 통하여 연결되는 외부 저장소(예를 들어, 클라우드 서버, cloud server)에 저장된 데이터, 정보 등을 수집(감지, 모니터링, 추출, 검출, 수신)할 수 있다. 보다 구체적으로, 정보의 수집이란, 센서를 통하여 정보를 감지하거나, 저장부에 저장된 정보를 추출하거나, 통신을 통하여, 외부 저장소로부터 정보들을 수신하는 동작을 포함하는 용어로 이해될 수 있다.
한편, 제어부(121)는 특정 동작이 수행되면, 머신 러닝 기술을 통하여, 특정 동작의 수행을 나타내는 이력 정보를 분석하고, 이러한 분석 정보를 바탕으로 기존의 학습된 정보에 대한 업데이트를 수행할 수 있다. 이에, 제어부(121)는 정보 예측의 정확도를 향상시킬 수 있다.
도 2는 본 발명의 실시 예에 따른, 발화문의 추천 방법을 설명하기 위한 도면이다.
사용자의 동작은 제1 블록(210)을 참조하여, 툴킷 제공 장치(100)의 동작은 제2 블록(220)를 참조하여 설명한다.
사용자는 발화문 또는 응답문을 입력할 수 있다(211).
발화문은, 인간이 장치로부터 서비스를 제공받기 위하여 발화하는 문장을 의미할 수 있다. 예를 들어 발화문은 “음악 틀어줘”일 수 있다.
그리고 음성 인식 에이전트는 발화문을 분석하여 인간의 의도를 파악하고, 인간의 의도에 부합하는 서비스를 제공할 수 있다. 예를 들어 “음악 틀어줘”라는 발화문이 수신된 경우, 음성 인식 에이전트는 인간의 의도가 “음악의 재생”임을 파악하고, 음악을 재생하는 서비스를 제공할 수 있다.
한편 음성 인식 에이전트의 개발자는, 인간이 서비스를 제공받기 위하여 발화할 만한 각종 발화문 들을 인간의 의도에 매칭하여 등록하는 방식으로 음성 인식 에이전트를 개발할 수 있다. 예를 들어 음성 인식 에이전트의 개발자는 “음악 틀어줘”라는 발화문을 “음악의 재생”에 매칭하여 등록하고, 이러한 작업들을 반복함으로써 음성 인식 에이전트를 개발할 수 있다.
그리고 본 발명에서 설명하는 “사용자가 입력하는 발화문”이란, 음성 인식 에이전트의 개발자가 음성 인식 에이전트를 개발하기 위하여 입력하는 발화문을 의미할 수 있다.
도면 상의 “UserSay”는 발화문을 지칭할 수 있다.
응답문은, 음성 인식 에이전트가 인간의 의도에 부합하는 서비스를 제공한 후에 발화하는 문장을 의미할 수 있다. 예를 들어 “음악 틀어줘”라는 발화문이 수신된 경우, 음성 인식 에이전트는 인간의 의도가 “음악의 재생”임을 파악하고, 음악을 재생하는 서비스를 제공한 후, “음악을 재생하였습니다.”라는 응답문을 발화할 수 있다.
한편 음성 인식 에이전트의 개발자는, 서비스를 제공한 후 발화할만한 각종 응답문들을 서비스에 매칭하여 등록하는 방식으로 음성 인식 에이전트를 개발할 수 있다. 예를 들어 음성 인식 에이전트의 개발자는 “음악의 재생”이라는 서비스를 “음악을 재생하였습니다”라는 응답문에 매칭하고, 이러한 작업들을 반복함으로써 음성 인식 에이전트를 개발할 수 있다.
그리고 본 발명에서 설명하는 “사용자가 입력하는 응답문”이란, 음성 인식 에이전트의 개발자가 음성 인식 에이전트를 개발하기 위하여 입력하는 응답문을 의미할 수 있다.
도면 상의 “Response”는 응답문을 지칭할 수 있다.
이하에서는, 사용자가 발화문을 입력하고, 툴킷 제공 장치(100)가 발화문 또는 응답문을 추천하는 것으로 설명한다. 다만 이에 한정되지 않으며 사용자가 응답문을 입력하는 경우에도, 툴킷 제공 장치(100)는 발화문 또는 응답문을 추천할 수 있다.
사용자가 발화문을 입력하는 경우(211), 툴킷 제공 장치(100)의 서포트부(120)는 인터페이스부(110)를 통하여 사용자가 입력한 발화문을 수신할 수 있다.
이 경우 서포트부(120)는 입력된 발화문으로부터 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 추출할 수 있다(221).
구체적으로 발화문은, 개체명(entity name), 개체명 단어(entity name world), 파라미터 및 일반 단어 중 적어도 하나를 포함할 수 있다.
개체명(entity name)은, 사전적으로 동의어거나, 사전적으로 동의어는 아니지만 사용자의 의도를 분석하고자 할 때 같은 의미로 해석되어 처리될 수 있는 개체명 단어(entity name world) 들의 집단을 나타내는 명칭일 수 있다.
예를 들어 “플레이”, “시작”, “재생”, “다시 시작”, “틀어”는 모두 “play”라는 의미로 해석되어 처리될 수 있다. 이 경우 “플레이”, “시작”, “재생”, “다시 시작”, “틀어”는 개체명 단어일 수 있으며, “play”는 개체 명일 수 있다.
다른 예를 들어 “플레이”, “시작”, “재생”, “다운로드”, “건너 뛰기”, “정지”는 모두 “control”이라는 의미로 해석되어 처리될 수 있다. 이 경우 “플레이”, “시작”, “재생”, “다운로드”, “건너 뛰기”, “정지”는 모두 개체명 단어일 수 있으며, “control”은 개체명일 수 있다.
파라미터는, 하나의 개체명을 여러 의미로 분류하여 사용하기 위하여 개체명에 매칭되는 것으로써, 개체명을 해석하는 방식을 제공할 수 있다.
예를 들어 “15일”이라는 개체명 단어의 개체명은 “date”일 수 있다. 그리고 “15일”에 매칭되는 파라미터가 “start date”인 경우, “15일”은 “시작하는 날짜인 15일”로 해석될 수 있다. 반대로, “15일”에 매칭되는 파라미터가 “end date”인 경우, “15일”은 “종료하는 날짜인 15일”로 해석될 수 있다.
그리고 서포트부(120)는 입력된 발화문으로부터 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 추출할 수 있다.
예를 들어 “노래 시작 부탁해”이라는 발화문이 입력된 경우, 서포트부(120)는 “노래”라는 개체명 단어, “music_song”이라는 개체명, “시작”이라는 개체명 단어, “play”라는 개체명, “부탁해”라는 일반 단어를 획득할 수 있다.
이는 아래와 같이 표현될 수 있다.
[<노래: @music_song> <시작: @play > 부탁해]
다른 예를 들어 “15일부터 20일까지 투숙”이라는 발화문이 입력된 경우, 서포트부(120)는 “15일”이라는 개체명 단어, “date”라는 개체명, “start_date”라는 파라미터를 획득하고, “20일”이라는 개체명 단어, “date”라는 개체명, “end_date”라는 파라미터를 획득할 수 있다.
이는 아래와 같이 표현될 수 있다.
[<15일: @date, $start_date> 부터 <20일: @date, $end_date> 까지 투숙]
한편 서포트부는 수신된 발화문의 의도를 결정할 수 있다.
구체적으로 서포트부는, 수신된 발화문과 다양한 의도에 속하는 발화문 들의 유사도를 획득하고, 유사도에 기초하여 수신된 발화문의 의도를 결정할 수 있다(222).
서포트부는 수신된 발화문과 다른 발화문의 유사도를 획득할 수 있다.
구체적으로, 서포트부는, 수신된 발화문의 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나와, 다른 발화문의 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 이용하여, 수신된 발화문과 다른 발화문의 유사도를 획득할 수 있다.
더욱 구체적으로, 서포트부는 수신된 발화문의 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 이용하여 수신된 발화문의 패턴을 획득할 수 있다. 수신된 발화문의 패턴을 분석하기 위하여, 서포트 벡터 머신(Support Vector Machine, SVM), 딥 러닝, 워드 임베딩(Word Embedding) 등의 기법이 사용될 수 있다.
또한 다른 발화문의 패턴은, 다른 발화문의 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 이용하여 미리 획득되어 있을 수 있다.
이 경우 서포트부는, 수신된 발화문의 패턴 및 다른 발화문의 패턴을 비교하여, 수신된 발화문과 다른 발화문의 유사도를 산출할 수 있다.
한편 서포트부는, 수신된 발화문과 다양한 의도(intent)에 속하는 발화문들의 유사도를 획득할 수 있다.
여기서 의도(intent)는 복수의 발화문의 그룹으로, 하나의 의도(intent)는 복수의 발화문을 포함할 수 있다. 복수의 발화문은 공통된 특성을 가짐으로써 하나의 의도(intent)에 포함될 수 있다.
예를 들어 “노래 재생해줘”, “앨범 틀어줘”, “재생 목록 시작”, “A 가수 노래 틀어줘” 등의 발화문 들은, 노래의 재생이라는 공통된 특성을 가짐으로써 “play music”라는 하나의 의도(intent)에 포함될 수 있다.
다른 예를 들어, “노래 재생해줘”, “노래 다운 로드 해줘”, “앨범 재생 중단해줘” 등의 발화문 들은 노래 재생의 제어라는 공통된 특성을 가짐으로써 “control music”라는 하나의 의도(intent)에 포함될 수 있다.
다른 예를 들어, “15일 입실”, “20일 퇴실”, “15일에 입실하고 20일에 퇴실”, “15일부터 20일까지 투숙” 등의 발화문 들은 호텔 예약이라는 공통된 특성을 가짐으로써 “hotel reservation이라는 하나의 의도(intent)에 포함될 수 있다.
그리고 서포트부는, 수신된 발화문과 다양한 의도(intent)에 속하는 발화문들의 유사도를 획득할 수 있다.
예를 들어 서포트부는 수신된 발화문과 제1 의도에 속하는 복수의 발화문들과의 유사도를 획득하고, 수신된 발화문과 제2의도에 속하는 복수의 발화문들과의 유사도를 획득할 수 있다.
그리고 서포트부는 획득된 유사도에 기초하여 수신된 발화문의 의도를 결정할 수 있다. 예를 들어 수신된 발화문과 제1 의도에 속하는 복수의 발화문들 간의 유사도가, 수신된 발화문과 제2 의도에 속하는 복수의 발화문들 간의 유사도보다 높은 경우, 서포트부는 수신된 발화문의 의도가 제1 의도인 것으로 결정할 수 있다.
한편 서포트부는 수신된 발화문의 의도를 결정하고, 결정된 의도에 대응하는 다른 발화문 또는 응답문을 획득할 수 있다.
구체적으로 서포트부는 결정된 의도에 속하는 다른 발화문을 획득할 수 있다. 예를 들어 “노래 틀어줘”라는 발화문이 수신되었고, “노래 틀어줘”라는 발화문의 의도가 “play music”이 경우, 서포트부는 “play music”에 속하는 다른 발화문인 “노래 재생해줘”를 획득할 수 있다.
또한 서포트부는 결정된 의도에 대응하는 응답에 속하는 응답문을 획득할 수 있다.
예를 들어 “play music”에 대응하는 응답은 “play result”일 수 있다. 이 경우 서포트부는 “play result”라는 응답에 속하는 “틀었어요”라는 응답문이나, “play result”라는 응답에 속하는 “노래 재생했어요”라는 응답문을 획득할 수 있다.
한편 서포트부는 사용자에게 추천할 발화문 또는 응답문의 패턴을 생성할 수 있다(223).
또한 서포트부는 생성된 패턴에 기초하여 사용자에게 추천할 발화문 또는 응답문을 생성할 수 있다(223).
구체적으로 서포트부는, 결정된 의도에 대응하고 수신된 발화문의 패턴과 다른 패턴을 가지는 다른 발화문을 획득할 수 있다.
더욱 구체적으로, 서포트부는 수신된 발화문으로부터 획득되는 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나에 대하여, 추가, 변경 및 삭제 중 적어도 하나를 수행하여, 다른 패턴을 가지는 다른 발화문을 제공할 수 있다.
예를 들어 수신된 발화문이 다음과 같다고 가정한다.
[<노래: @music_song> <시작: @play > 부탁해]
이 경우 수신된 발화문의 의도는 “play_music”이다.
이 경우 서포트부는 “play_music”에 속하는 다른 발화문을 획득할 수 있다.
그리고 서포트부는 수신된 발화문의 패턴과 다른 패턴을 생성할 수 있다.
구체적으로 [<노래: @music_song> <시작: @play > 부탁해]에는 “music_song”이라는 개체명이 포함되어 있다.
이 경우 서포트부는 “music_song”이라는 개체명을 “music_album”이라는 다른 개체명으로 변경할 수 있다. 이 경우 서포트부는 아래와 같은 발화문을 생성할 수 있다.
[<앨범: @music_album> <시작: @play > 부탁해]
이 경우 서포트부는 개체명을 포함하는 발화문 [<앨범: @music_album> <시작: @play > 부탁해]을 사용자에게 제공할 수도 있으며, 개체명은 생략하고 개체명 단어 및 일반 단어만을 포함하는 발화문 [앨범 시작 부탁해]를 사용자에게 제공할 수도 있다.
개체명의 변경뿐만 아니라 개체명의 삭제도 가능하다.
예를 들어 [<노래: @music_song> <시작: @play> 부탁해]라는 발화문이 수신된 경우, 서포트부는 개체명 “play”를 삭제하고 개체명 “music_song”을 다른 개체명으로 변경하여 [<앨범: @music_album> 부탁해]라는 발화문을 생성할 수 있다.
또한 개체명의 추가 또는 일반 단어의 추가도 가능하다.
예를 들어, [<재생: @play >]이라는 발화문이 수신된 경우, 서포트부는 “music_song”이라는 개체명을 추가하고 “부탁해”라는 일반 단어를 추가하여, [<노래: @music_song> <재생: @play > 부탁해]라는 발화문을 생성할 수 있다.
또한 파라미터의 추가, 변경 또는 삭제도 가능하다.
예를 들어 [<15일: @date, $startdate> 입실]이라는 발화문이 수신된 경우, 서포트부는 수신된 발화문의 의도(intent)가 “hotel reservation”인 것으로 결정하고, “hotel reservation”이라는 의도에 속하는 다른 발화문을 생성할 수 있다.
이 경우 서포트부는 “startdate”라는 파라미터를 변경하여 [<15일: @date, $enddate> 퇴실]이라는 다른 발화문을 생성할 수 있다.
이와 같은 방식으로, 서포트부는 수신된 발화문으로부터 획득되는 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나에 대하여, 추가, 변경 및 삭제 중 적어도 하나를 수행하여, 다른 패턴을 가지는 다른 발화문을 제공할 수 있다.
한편 서포트부는, 수신된 발화문의 패턴이 신규한 패턴인 경우, 신규한 패턴을 반영하여 수신된 발화문의 패턴과 다른 패턴을 가지는 다른 발화문을 생성할 수 있다.
구체적으로, 기존에는 “hotel reservation”이라는 의도(intent)에 [<15일: @date, $startdate> 입실], [<20일: @date, $enddate> 퇴실], [<15일: @data, $startdate> 부터 <20일: @date, $enddate> 까지 투숙]이라는 발화문들이 포함되어 있었다.
그리고 서포트부는 [<8월: @month> <15일: @date, $startdate> 입실]이라는 발화문을 사용자로부터 수신하였다. 이 경우 수신된 발화문은 개체명 “month”을 포함하는 신규한 패턴이다. 그리고 서포트부는 “date”라는 개체명 앞에 “month”라는 개체명이 추가되는 새로운 패턴을 인식할 수 있다.
이 경우 서포트부는 개체명 “month”을 포함하는 신규한 패턴을 반영하여, 수신된 발화문의 패턴과 다른 패턴을 가지는 [<8월: @month> <20일: @date, $enddate> 퇴실], [<8월: @month> <15일: @data, $startdate> 부터 <8월: @month> <20일: @date, $enddate> 까지 투숙]이라는 발화문을 생성할 수 있다.
한편 수신된 발화문의 의도가 결정되고, 결정된 의도에 대응하는 다른 발화문 또는 응답문이 획득되면, 서포트부는 인터페이스부를 통하여 다른 발화문 또는 응답문을 제공할 수 있다(225).
구체적으로 서포트부는 획득한 발화문 또는 응답문을 출력부(112)를 통하여 디스플레이 하거나, 통신부(113)를 통하여 개발자의 장치에 전송할 수 있다. 이 경우 획득한 발화문 또는 응답문은 개발자의 장치에 디스플레이 될 수 있다.
한편 복수의 발화문 또는 복수의 응답문이 획득되는 경우, 서포트부는 복수의 발화문의 리스트 또는 복수의 응답문의 리스트를 제공할 수 있다.
한편 발화문 또는 응답문이 제공된 경우, 사용자는 제공된 발화문 또는 응답문의 리스트를 확인하고(212), 제공된 발화문 또는 응답문의 일부 또는 전부를 등록할 수 있다(213). 이 경우 서포트부는, 사용 등록된 발화문 또는 응답문을 저장할 수 있다.
한편 서포트부는, 결정된 의도에 대응하고 수신된 발화문과 관련된 파라미터를 포함하는 발화문을 제공할 수 있다.
구체적으로 서포트부는, 수신된 발화문과 다양한 의도에 속하는 발화문 들의 유사도를 획득하고, 유사도에 기초하여 수신된 발화문의 의도를 결정할 수 있다(231).
또한 서포트부는 수신된 발화문과 관련된 복수의 파라미터의 리스트를 생성할 수 있다(232).
예를 들어 수신된 발화문이 “날씨 알려줘”인 경우, 서포트부는 “3시간 뒤”, “내일”, “모래”,”1주일간” 등의 시간 관련 파라미터나, “서울”, “경기 북부”, “미국” 등의 장소 관련 파라미터의 리스트를 생성할 수 있다.
이 경우 서포트부는 수신된 발화문과 관련된 파라미터를 사용하여 사용자에게 추천할 발화문 또는 응답문의 패턴을 생성(233)하고, 생성된 패턴에 기초하여 사용자에게 추천할 발화문 또는 응답문을 생성할 수 있다(234).
예를 들어 서포트부는, “3시간 뒤 날씨 알려줘”, “내일 날씨 알려줘”, “모래 날씨 알려줘”,”1주일간 날씨 알려줘” 등의 시간 관련 파라미터를 사용한 발화문이나, “서울 날씨 알려줘”, “경기 북부 날씨 알려줘”, “미국 날씨 알려줘” 등의 장소 관련 파라미터를 사용한 발화문을 생성할 수 있다.
시간 관련 파라미터에는, 월, 일, 분, 시, 시작 시간, 종료 시간, 반복 시간 등이 있을 수 있다.
그리고 서포트부는 인터페이스부를 통하여 생성된 발화문을 제공할 수 있다 (225).
도 3은 본 발명의 실시 예에 따른, 수신된 발화문을 분류하는 방법을 설명하기 위한 도면이다.
서포트부는 사용자에 의해 등록된 발화문들을 의도에 따라 복수의 그룹으로 분류하여 저장할 수 있다.
예를 들어 사용자에 의해 “노래 틀어줘”, “앨범 재생해줘”, “15일 입실, 20일 퇴실”, “15일부터 20일까지 숙박”이라는 발화문이 등록된 경우, 서포트부는 제1 의도(play music)에 속하는 “노래 틀어줘”, “앨범 재생해줘”를 제1 그룹으로 분류하여 저장하고, 제2 의도(hotel reservation)에 속하는 “15일 입실, 20일 퇴실”, “15일부터 20일까지 숙박”을 제2 그룹으로 분류하여 저장할 수 있다.
한편 사용자의 동작은 제1 블록(310)을 참조하여, 툴킷 제공 장치(100)의 동작은 제2 블록(320)를 참조하여 설명한다.
사용자는 발화문 또는 응답문을 입력할 수 있다(311).
이 경우 서포트부(120)는 입력된 발화문으로부터 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 추출할 수 있다(321).
그리고 서포트부(120)는 수신된 발화문과 복수의 그룹으로 각각 분류된 발화문들 간의 유사도를 획득하고(322), 수신된 발화문과 복수의 그룹으로 각각 분류된 발화문들 간의 유사도를 비교하여 유사도가 기 설정된 값보다 높은 그룹을 획득할 수 있다(323).
또한 서포트부는 유사도에 기초하여 수신된 발화문을 복수의 그룹 중 하나에 추가하거나 신규한 그룹에 추가할 수 있다.
예를 들어 “재생 목록 시작”이라는 발화문이 수신된 경우, 서포트부(120)는 수신된 발화문과 제1 그룹으로 분류된 발화문들 간의 제1 유사도를 획득하고, 수신된 발화문과 제2 그룹으로 분류된 발화문들 간의 제2 유사도를 획득할 수 있다.
그리고 제1 유사도가 기 설정된 값보다 높고 제2 유사도가 기 설정된 값 보다 낮은 경우, 서포트부는 수신된 발화문의 의도를 제1 그룹에 대응하는 제1 의도로 결정할 수 있다(324). 그리고 서포트부는 수신된 발화문을 제1 그룹에 추가하게 되고, 이에 따라 수신된 발화문은 제1 의도에 속하게 된다.
만약 제1 유사도와 제2 유사도가 모두 기 설정된 값 보다 높은 경우, 서포트부는 제1 그룹에 대응하는 제1 의도 및 제2 그룹에 대응하는 제2 의도를 포함하는 리스트를 인터페이스부를 통하여 제공할 수 있다(325).
이 경우 사용자는 추천된 리스트를 확인(312)하고, 추천된 복수의 의도 중 어느 하나를 등록할 수 있다. 이 경우 수신된 발화문은 사용자에 의해 등록된 의도로 분류되어 등록되고, 등록된 의도에 대응하는 그룹에 추가될 수 있다.
한편 제1 유사도와 제2 유사도가 모두 기 설정된 값 보다 낮은 경우, 서포트부는 신규한 하나 이상의 의도를 생성할 수 있다(326).
그리고 서포트부는 신규한 하나 이상의 의도를 포함하는 리스트를 인터페이스부를 통하여 제공할 수 있다(327).
이 경우 사용자는 추천된 리스트를 확인(312)하고, 추천된 복수의 의도 중 어느 하나를 등록할 수 있다. 이 경우 수신된 발화문은 사용자에 의해 등록된 의도로 분류되어 등록되고, 등록된 의도에 대응하는 신규한 그룹에 추가될 수 있다.
도 4는 본 발명의 실시 예에 따른, 발화문을 다른 의도로 이동하거나 새로운 의도에 등록하는 방법을 설명하기 위한 도면이다.
사용자의 동작은 제1 블록(410)을 참조하여, 툴킷 제공 장치(100)의 동작은 제2 블록(420)를 참조하여 설명한다.
사용자는 발화문 또는 응답문을 입력할 수 있다(411).
이 경우 서포트부(120)는 입력된 발화문으로부터 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 추출할 수 있다(421).
그리고 서포트부는, 수신된 발화문과 다양한 의도에 속하는 발화문 들의 유사도를 획득하고, 유사도에 기초하여 수신된 발화문의 의도를 결정할 수 있다(422).
구체적으로, 서포트부는 수신된 발화문의 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 이용하여 수신된 발화문의 패턴을 획득할 수 있다.
한편 수신된 발화문의 패턴이 기 등록된 패턴인 경우, 서포트부는 기 등록된 패턴임을 나타내는 알림을 제공할 수 있다.
구체적으로 [A 노래 틀어줘]라는 발화문이 이미 등록된 상태이며, 사용자로부터 [B 노래 틀어줘]라는 신규한 발화문이 수신된 것으로 가정하자.
[A 노래 틀어줘]라는 발화문이 이미 등록된 상태이므로 [노래(@music_song) 틀어줘]라는 패턴 역시 이미 등록된 상태이다. 다만 [B 노래 틀어줘]라는 발화문의 패턴은 [A 노래 틀어줘]라는 기 등록된 발화문의 패턴과 동일하므로, 추가적인 입력이 필요 없다.
이 경우 서포트부는 [B 노래 틀어줘]라는 발화문이 기 등록된 패턴임을 나타내는 알림을 제공할 수 있다.
한편 사용자가 하나의 의도로 정의한 복수의 발화문이 입력된 경우, 서포트부는 복수의 발화문에 대응하는 하나 이상의 의도의 리스트를 제공할 수 있다(423)
구체적으로 사용자는 복수의 발화문을 하나의 의도로 정의하여 일괄적으로 입력할 수 있다.
다만 복수의 발화문 중 일부 발화문은, 복수의 발화문에 포함되는 다른 발화문들과 유사도가 낮고, 별도의 의도에 속하는 발화문들과 유사도가 높을 수 있다. 이 경우 서포트부는 일부 발화문과 유사도가 높은 하나 이상의 의도의 리스트를 제공할 수 있다.
예를 들어 사용자가 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”, “노래 다운로드”이라는 발화문들을 하나의 의도로 일괄적으로 입력한 경우를 가정한다. 이 경우 “노래 다운로드” 라는 발화문은 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”이라는 발화문들과 유사도가 낮을 수 있다. 또한 “노래 다운로드” 라는 발화문은 “music download”라는 의도에 속하는 발화문들과 유사도가 높을 수 있다. 이 경우 서포트부는 “노래 다운로드”라는 발화문과 유사도가 높은 “music download”의 의도를 포함하는 리스트를 제공할 수 있다.
이 경우 서포트부는 일부 발화문의 삭제 또는 이동의 추천을 제공할 수 있다.
한편, 사용자는 복수의 발화문을 하나의 의도로 정의하여 일괄적으로 입력할 수 있다.
다만 복수의 발화문은 더욱 세부적인 의도들에 따라 분류될 수 있다. 이 경우 서포트부는 복수의 세부 의도를 포함하는 리스트를 제공할 수 있다.
예를 들어 사용자가 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”, “노래 다운로드”, “노래 내려받기 부탁해요” 라는 발화문들을 하나의 의도로 일괄적으로 입력한 경우를 가정한다.
“노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”, “노래 다운로드”, “노래 내려받기 부탁해요”는 하나의 의도로 분류될 수 있지만, 복수의 세부 의도로 분류될 수도 있다.
예를 들어 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”, “노래 다운로드”, “노래 내려받기 부탁해요”의 발화문들은 “music control”이라는 하나의 의도로 분류될 수 있다.
다만 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”은 “music play”라는 제1 세부 의도로, “노래 다운로드”, “노래 내려 받기 부탁해요”는 “music download”라는 제2 세부 의도로 분류될 수도 있다.
이 경우 서포트부는 복수의 세부 의도를 포함하는 리스트를 제공할 수 있다.
또한 서포트부는 복수의 세부 의도의 추천을 제공할 수 있다.
한편 의도의 리스트가 제공된 경우, 사용자는 제공된 리스트를 확인할 수 있다(412).
또한 사용자는 발화문을 새로운 의도에 등록할 수 있다(413).
예를 들어 복수의 세부 의도가 추천된 경우, 사용자는 “노래 틀어줘”, “노래 재생해줘”, “재생 목록 시작”을 “music play”라는 제1 세부 의도에, “노래 다운로드”, “노래 내려받기 부탁해요”는 “music download”라는 제2 세부 의도에 등록할 수 있다.
또한 사용자는 발화문을 다른 의도에 이동할 수 있다(414).
예를 들어 일부 발화문이, 함께 입력된 복수의 발화문과 유사도가 낮고 별도의 의도에 속하는 발화문들과 유사도가 높아서 별도의 의도가 추천된 경우, 사용자는 별도의 의도에 일부 발화문을 등록할 수 있다.
또한 사용자는 일부 발화문을 별도의 의도에 등록하는 것 없이 삭제할 수도 있다.
의도 분석의 성능은 에이전트 개발자가 입력한 내용에 가장 영향을 많이 받기 때문에, 에이전트 개발자 스스로가 디테일하고 체계적인 기준으로 의도, 발화문, 응답문를 작성해야 하나, 숙련 되지 않은 에이전트 개발자는 디테일하고 체계적인 기준으로 작성하는 것이 쉽지 않다.
다만 본 발명에 따르면, 인공지능 기술들은 툴킷 안에 내제 되어 있으며, 툴킷을 이용하는 개발자는 GUI를 통해 이 기술들을 이용 한다. 그리고 툴킷을 사용함으로써, 초급/고급 에이전트 개발자의 구분 없이 모든 개발자가 에이전트를 손쉽게 개발할 수 있도록 편의를 제공하고, 비 NLP 전문가들도 코딩 없이 손쉽게 자신만의 음성 대화 에이전트를 개발할 수 있다.
도 5는 개발이 완료된 에이전트의 배포 과정을 설명하기 위한 도면이다.
에이전트 개발자의 동작은 제1 블록(510), 에이전트 개발자를 위한 툴킷 제공 장치의 동작은 제2 블록(520), 전자 장치 제조자의 동작은 제3 블록(530), 음성 인식 서비스를 제공하는 전자 장치의 동작은 제4 블록(540)을 참조하여 설명한다.
한편 제2 블록(520)의 동작은 툴킷 제공 장치뿐만 아니라, 별도의 에이전트 제공 서버에 의해서 수행될 수도 있다.
툴킷을 이용한 에이전트의 개발이 완료되면(511), 에이전트 개발자는 개발이 완료된 에이전트를 툴킷 제공 장치에 전송할 수 있다(512).
한편 개발이 완료된 에이전트는 툴킷 제공 장치에 저장될 수 있다.
그리고 툴킷 제공 장치는 개발이 완료된 에이전트에 클라이언트가 접속 할 수 있도록 하는 접속 키(access key)를 발급할 수 있다(521).
또한 툴킷 제공 장치는 에이전트를 클라이언트가 접속할 수 있도록 공개할 수 있다(522).
한편 전자 장치 제조자는 접속 키(access key)를 이용하여 전자 장치와 음성 에이전트를 연결시킬 수 있다(531).
이 경우 툴킷 제공 장치는 접속 키(access key)를 사용하는 전자 장치를 등록할 수 있다(523).
한편 툴킷 제공 장치는 다양한 에이전트 개발자들이 개발한 다양한 에이전트들을 보유할 수 있다.
그리고 전자 장치는 툴킷 제공 장치가 보유하고 공중에 배포된 에이전트 리스트를 조회할 수 있다(541).
또한 전자 장치는 전자 장치에서 사용할 에이전트를 선택하여 등록할 수 있다(542).
이 경우 툴킷 제공 장치는 전자 장치에 대한 정보 및 전자 장치에서 사용할 에이전트를 등록할 수 있다(523).
한편 툴킷 제공 장치는 에이전트에 대한 최적화를 수행하여, 에이전트에 의한 음성 인식 서비스를 툴킷 제공 장치에서 제공하거나, 에이전트를 전자 장치에 배포하여 음성 인식 서비스가 전자 장치에서 수행되도록 할 수 있다(524).
또한 에이전트 개발자의 추가 개발로 인하여 에이전트가 업데이트 되는 경우, 툴킷 제공 장치는 업데이트 된 에이전트를 전자 장치에 배포할 수 있다(525).
한편 전자 장치는 최적화 되거나 업데이트 된 에이전트를 설치하고(543), 에이전트를 사용하여 음성 인식 서비스를 제공할 수 있다(544).
도 6은 툴킷 제공 장치와 전자 장치를 이용한 하이브리드 음성 인식 서비스를 설명하기 위한 도면이다.
도 5와 상이한 부분만 설명한다.
전자 장치 제조자는 전자 장치 전용 서비스를 개발하고(631) 툴킷 제공 장치 및 전자 장치에 등록할 수 있다(632).
이 경우 툴킷 제공 장치는 전자 장치 전용 서비스를 등록할 수 있다(623).
한편 전자 장치에서는 에이전트를 사용하여 음성 인식 서비스를 제공할 수 있다(641).
이 경우 사용자로부터 발화문이 입력되면, 전자 장치는 수신된 발화문을 툴킷 제공 장치로 전송할 수 있다.
이 경우 툴킷 제공 장치는 수신된 발화문을 툴킷 제공 장치가 보유하는 에이전트에 입력할 수 있다(624).
또한 툴킷 제공 장치는 툴킷 제공 장치에 할당된 공용 작업을 수행하고, 작업의 수행 결과를 전자 장치에 전송할 수 있다(625).
한편 전자 장치는 전자 장치에 할당된 후속 작업을 수행하고(642), 전자 장치 전용 서비스를 수행할 수 있다(643).
본 발명에 따르면, 음성 인식의 응답 속도가 향상되고, 네트워크 트래픽이 감소되며, 서버 운영 비용이 절감되는 장점이 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고, 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
110: 인터페이스부 120: 서포트부

Claims (11)

  1. 사용자가 입력한 발화문을 획득하고 발화문을 출력하는 인터페이스부; 및
    상기 사용자가 입력한 발화문이 상기 인터페이스부를 통하여 수신되면, 상기 수신된 발화문의 의도를 결정하고, 상기 결정된 의도에 대응하는 다른 발화문 또는 응답문을 상기 인터페이스부를 통하여 제공하는 서포트부를 포함하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  2. 제 1항에 있어서,
    상기 서포트부는,
    상기 수신된 발화문과 다양한 의도에 속하는 발화문 들의 유사도를 획득하고, 상기 유사도에 기초하여 상기 수신된 발화문의 의도를 결정하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  3. 제 1항에 있어서,
    상기 서포트부는,
    상기 결정된 의도에 속하는 다른 발화문을 제공하거나, 상기 결정된 의도에 대응하는 응답에 속하는 응답문을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  4. 제 1항에 있어서,
    상기 서포트부는,
    상기 수신된 발화문으로부터 획득되는 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나를 이용하여 상기 수신된 발화문의 패턴을 획득하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  5. 제 4항에 있어서,
    상기 서포트부는,
    상기 결정된 의도에 대응하고 상기 수신된 발화문의 패턴과 다른 패턴을 가지는 다른 발화문을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  6. 제 5항에 있어서,
    상기 서포트부는,
    상기 수신된 발화문으로부터 획득되는 개체명, 개체명 단어, 파라미터 및 일반 단어 중 적어도 하나에 대하여, 추가, 변경 및 삭제 중 적어도 하나를 수행하여, 상기 다른 패턴을 가지는 다른 발화문을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  7. 제 4항에 있어서,
    상기 서포트부는,
    상기 수신된 발화문의 패턴이 신규한 패턴인 경우, 상기 신규한 패턴을 반영하여 상기 수신된 발화문의 패턴과 다른 패턴을 가지는 다른 발화문을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  8. 제 4항에 있어서,
    상기 서포트부는,
    상기 수신된 발화문의 패턴이 기 등록된 패턴인 경우 기 등록된 패턴임을 나타내는 알림을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  9. 제 1항에 있어서,
    상기 서포트부는,
    사용자가 하나의 의도로 정의한 복수의 발화문이 입력되고, 상기 복수의 발화문 중 일부 발화문의 의도가 다른 발화문의 의도와 상이한 경우, 상기 일부 발화문의 삭제 또는 이동의 추천을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  10. 제 1항에 있어서,
    상기 서포트부는,
    사용자가 하나의 의도로 정의한 복수의 발화문이 입력되고, 상기 복수의 발화문이 복수의 세부 의도에 따라 분류되는 경우, 상기 복수의 세부 의도의 추천을 제공하는
    에이전트 개발자를 위한 툴킷 제공 장치.
  11. 제 1항에 있어서,
    상기 서포트부는,
    상기 사용자에 의해 등록된 발화문들을 의도에 따라 복수의 그룹으로 분류하여 저장하고, 상기 수신된 발화문과 상기 복수의 그룹으로 분류된 발화문들 간의 유사도를 비교하고, 상기 유사도에 기초하여 상기 수신된 발화문을 상기 복수의 그룹 중 하나에 추가하거나 신규한 그룹에 추가하는
    에이전트 개발자를 위한 툴킷 제공 장치.
KR1020180140148A 2017-11-20 2018-11-14 에이전트 개발자를 위한 툴킷 제공 장치 KR102209336B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/197,171 US10930280B2 (en) 2017-11-20 2018-11-20 Device for providing toolkit for agent developer
PCT/KR2018/014237 WO2019098803A1 (en) 2017-11-20 2018-11-20 Device for providing toolkit for agent developer

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762588441P 2017-11-20 2017-11-20
US201762588443P 2017-11-20 2017-11-20
US201762588442P 2017-11-20 2017-11-20
US62/588,443 2017-11-20
US62/588,441 2017-11-20
US62/588,442 2017-11-20

Publications (2)

Publication Number Publication Date
KR20190058307A true KR20190058307A (ko) 2019-05-29
KR102209336B1 KR102209336B1 (ko) 2021-01-29

Family

ID=66673093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140148A KR102209336B1 (ko) 2017-11-20 2018-11-14 에이전트 개발자를 위한 툴킷 제공 장치

Country Status (1)

Country Link
KR (1) KR102209336B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010224194A (ja) * 2009-03-23 2010-10-07 Sony Corp 音声認識装置及び音声認識方法、言語モデル生成装置及び言語モデル生成方法、並びにコンピューター・プログラム
KR20100111164A (ko) * 2009-04-06 2010-10-14 삼성전자주식회사 사용자의 발화의도를 파악하는 음성 대화 처리장치 및 음성 대화 처리방법
KR20160019942A (ko) * 2013-07-05 2016-02-22 리소프트데브, 인코포레이티드 인공지능형 에이전트 또는 시스템을 작성 및 구현하는 시스템 및 방법
KR20160025301A (ko) * 2014-08-27 2016-03-08 삼성전자주식회사 음성 인식이 가능한 디스플레이 장치 및 방법
US20170213545A1 (en) * 2016-01-22 2017-07-27 Electronics And Telecommunications Research Institute Self-learning based dialogue apparatus and method for incremental dialogue knowledge

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010224194A (ja) * 2009-03-23 2010-10-07 Sony Corp 音声認識装置及び音声認識方法、言語モデル生成装置及び言語モデル生成方法、並びにコンピューター・プログラム
KR20100111164A (ko) * 2009-04-06 2010-10-14 삼성전자주식회사 사용자의 발화의도를 파악하는 음성 대화 처리장치 및 음성 대화 처리방법
KR20160019942A (ko) * 2013-07-05 2016-02-22 리소프트데브, 인코포레이티드 인공지능형 에이전트 또는 시스템을 작성 및 구현하는 시스템 및 방법
KR20160025301A (ko) * 2014-08-27 2016-03-08 삼성전자주식회사 음성 인식이 가능한 디스플레이 장치 및 방법
US20170213545A1 (en) * 2016-01-22 2017-07-27 Electronics And Telecommunications Research Institute Self-learning based dialogue apparatus and method for incremental dialogue knowledge

Also Published As

Publication number Publication date
KR102209336B1 (ko) 2021-01-29

Similar Documents

Publication Publication Date Title
CN107978311B (zh) 一种语音数据处理方法、装置以及语音交互设备
US10657966B2 (en) Better resolution when referencing to concepts
JP6960006B2 (ja) 会話システムにおいて意図が不明確なクエリを処理する方法およびシステム
CN108255934B (zh) 一种语音控制方法及装置
US11189277B2 (en) Dynamic gazetteers for personalized entity recognition
US11238132B2 (en) Method and system for using existing models in connection with new model development
US11881209B2 (en) Electronic device and control method
JP6728319B2 (ja) 人工知能機器で複数のウェイクワードを利用したサービス提供方法およびそのシステム
KR20180106817A (ko) 전자 장치 및 제어 방법
US11978453B2 (en) Natural language processing routing
JP2022109867A (ja) 話者識別を結合した話者ダイアライゼーション方法、システム、およびコンピュータプログラム
CN111710337A (zh) 语音数据的处理方法、装置、计算机可读介质及电子设备
CN111414512A (zh) 一种基于语音搜索的资源推荐方法、装置及电子设备
CN111428078B (zh) 音频指纹编码方法、装置、计算机设备及存储介质
CN112837683B (zh) 语音服务方法及装置
US11615787B2 (en) Dialogue system and method of controlling the same
KR20170048008A (ko) 질의의도를 분석하기 위한 장치 및 방법
KR102222637B1 (ko) 감성 분석 장치, 이를 포함하는 대화형 에이전트 시스템, 감성 분석을 수행하기 위한 단말 장치 및 감성 분석 방법
KR20200082240A (ko) 호칭 결정 장치, 이를 포함하는 대화 서비스 제공 시스템, 호칭 결정을 위한 단말 장치 및 호칭 결정 방법
US20220180865A1 (en) Runtime topic change analyses in spoken dialog contexts
KR20190058307A (ko) 에이전트 개발자를 위한 툴킷 제공 장치
CN112037772B (zh) 基于多模态的响应义务检测方法、系统及装置
KR102319013B1 (ko) 대화문 발화 성격 인식 방법 및 시스템
US10930280B2 (en) Device for providing toolkit for agent developer
US11908452B1 (en) Alternative input representations for speech inputs

Legal Events

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