KR20210051226A - 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치 - Google Patents

명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20210051226A
KR20210051226A KR1020190136211A KR20190136211A KR20210051226A KR 20210051226 A KR20210051226 A KR 20210051226A KR 1020190136211 A KR1020190136211 A KR 1020190136211A KR 20190136211 A KR20190136211 A KR 20190136211A KR 20210051226 A KR20210051226 A KR 20210051226A
Authority
KR
South Korea
Prior art keywords
service
user
knowledge
robot
rule
Prior art date
Application number
KR1020190136211A
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 KR1020190136211A priority Critical patent/KR20210051226A/ko
Publication of KR20210051226A publication Critical patent/KR20210051226A/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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)

Abstract

명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치가 개시된다. 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 상기 사용자 음성 명령에 대응하는 명시적 서비스를 선택하는 단계; 상기 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 상기 명시적 서비스를 제공하는 단계; 및 상기 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 상기 사용자 음성 명령과 상관없이 상기 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하는 단계를 포함한다.

Description

명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치 {METHOD FOR PROVIDING ROBOT SERVICE BASED ON META FILE COMBINING EXPLICIT INTENT AND IMPLIED INTENT AND APPARATUS USING THE SAME}
본 발명은 로봇 서비스 제공 기술에 관한 것으로, 특히 로봇이 인식한 상황 정보에 기반한 묵시적 의도와 사용자 발화 기반의 명시적 의도를 결합하여 로봇이 사용자에게 제공해야 할 적합한 서비스를 선택할 수 있는 기술에 관한 것이다.
로봇 서비스 블럭은 사용자에게 제공할 일련의 대화 및 행동을 정의한 스크립트 형태의 블럭을 의미한다. 사용자의 발화(utterance)나 특정 인식 결과에 대한 이벤트에 대응하여 서비스 로봇이 어떻게 대화하거나 어떠한 행동을 수행해야 하는지가 스크립트 형태로 정의되어 있다. 즉, 사용자의 발화나 특정 이벤트가 스크립트에서 정의된 형태로 입력되면, 서비스 로봇 내의 스크립트 실행기는 입력에 대응되는 출력을 통해서 사용자와 대화하거나 서비스로 응대할 수 있다.
예를 들어, 종래 기술에 따른 서비스 로봇은 다양한 수준의 이벤트를 복합적으로 활용하지 못하고, 도 1에 도시한 바와 같이 음성 인식된 문장이나 하나의 특정 이벤트에 대해서만 단순 대응하는 스크립트로 동작하였다. 따라서, 동일한 상황에서는 항상 동일한 서비스만 반복해서 제공하는 한계가 있다.
도 1을 참조하면, 종래 기술에 따른 로봇 서비스 스크립트(100)는 사용자의 발화나 주변 환경을 인식하는 복수개의 모듈들(110~150)로부터 이벤트가 발생하면, 발생된 이벤트에 따른 서비스 로봇의 출력이 정의된 로봇 서비스 블럭(101~103)을 선택하여 서비스를 제공한다. 예를 들어, 음성인식 모듈(110)로부터 "Hello"라는 TTS 결과가 입력된 경우, 서비스 로봇은 "Hello"이벤트에 상응하는 로봇 서비스 블럭(101)을 선택함으로써 기정의된 출력인 "Nice to meet you"를 출력한다.
또한, 도 2를 참조하면, 사용자 발화에 대응하여 서비스를 수행하는 스마트 스피커인 아마존 에코(echo)의 Alexa Skill 프로그래밍 방식에서는 Skill이라는 형태로 서비스를 개발한다. 이 때, 각 Skill 별로 서비스가 수행되기 위한 발화 규칙을 정의한 후, Alexa Voice Service가 음성 스트림을 통해 전달받은 사용자의 발화 내용을 분석하여 Skill에서 정의한 발화 규칙과 매칭을 수행할 수 있다. 이 후, 발화 규칙과 매핑되는 Skill이 선택되어 실행된다.
이와 같이 종래 기술에서는 음성 인식된 문장이나 하나의 특정 이벤트에 대해서만 단순 대응하거나, 음성 인식을 통해 정해진 서비스 만을 선택하여 제공하였다. 그러나, 서비스 로봇이 다양한 상황에서 사용자에게 특화된 최적의 서비스를 제공하기 위해서는, 보다 다양한 정보를 복합적으로 활용하여 로봇 서비스를 선택할 수 있어야 한다.
특히, 고령자를 대상으로 물리적 행동을 수반하는 휴먼케어 목적의 서비스 로봇이 현재 상황에 대한 인식없이 사용자의 명령만으로 서비스를 서비스를 제공하게 되면, 유용한 방식의 서비스를 선택하기 어려울 수 있다. 즉, 고령인 사용자의 명령 그대로 서비스를 실행하기보다는, 요양 전문가 등이 상황 정보를 반영하여 작성한 세심한 규칙을 적용하여 상황에 적합한 서비스를 선택할 수 있어야 한다. 또한, 음성 기반 명령이 없는 경우에도 상황에 따라서 고령자에게 선제적인 서비스를 제공함으로써 위급한 상황에 대응하여 능동적인 서비스를 제공할 수 있어야 한다.
하지만, 기존에는 다양한 수준의 이벤트를 복합적으로 활용하지 못하고, 음성 인식된 문장이나 특정 이벤트에 대해 단순 대응하는 형태로 서비스 블럭을 선택하게 하였다. 이로 인해 복잡한 상황에 대한 고려없이 주어진 이벤트나 음성인식 결과에 대응해 동일한 서비스를 단순하게 선택하게 하는 문제점이 있었다. 이를 해결하기 위해, 기존에는 선택된 서비스 내에서 직접 외부 환경 정보를 가져와서 다양한 조건문을 평가하는 등의 복잡한 프로그래밍 과정을 거쳐야 복합적인 서비스가 가능하였다.
한국 등록 특허 제10-0656372호, 2006년 12월 11일 공고(명칭: 로봇 서비스 가용성 평가 방법 및 시스템)
본 발명의 목적은 다양한 수준의 이벤트를 복합적으로 융합한 정보를 기반으로 묵시적인 의도를 파악하여 로봇의 서비스 블록을 선택함으로써 사용자 발화에 의한 음성 명령과 상관없이 선제적인 서비스를 제공하거나 위급한 상황에서 적극적인 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 복합적 상황 인식 정보를 기반으로 사용자의 명시적인 의도에 따른 서비스 제공 여부를 판단함으로써 보다 복합적이고 지능적인 로봇 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 로봇이 인식한 다양한 상황 정보와 발화 기반의 사용자 의도 인식 정보를 융합해서 현재 상황에 적합한 로봇 서비스를 메타파일의 형태로 손쉽게 선택할 수 있는 기술을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 로봇 서비스 제공 방법은 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 상기 사용자 음성 명령에 대응하는 명시적 서비스를 선택하는 단계; 상기 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 상기 명시적 서비스를 제공하는 단계; 및 상기 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 상기 사용자 음성 명령과 상관없이 상기 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하는 단계를 포함한다.
이 때, 명시적 서비스를 제공하는 단계는 지식 데이터베이스에 저장된 심볼화된 지식을 기반으로 상기 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단하고, 상기 서비스 실행규칙에 포함된 조건이 만족되는 경우에 상기 명시적 서비스를 제공할 수 있다.
이 때, 묵시적 서비스를 제공하는 단계는 상기 심볼화된 지식에 포함된 적어도 하나의 심볼에 대한 변경이 감지될 때마다 상기 상시 서비스 실행규칙에 포함된 조건의 만족여부를 검토할 수 있다.
이 때, 서비스 별 메타정보 파일은 상기 묵시적 서비스가 선택됨에 따라 갱신되는 제1 지식 정보 및 상기 묵시적 서비스의 실행이 완료되었을 경우에 갱신되는 제2 지식 정보를 포함할 수 있다.
이 때, 묵시적 서비스를 제공하는 단계는 상기 제2 지식 정보를 기반으로 상태 기반 서비스 전이를 수행하는 단계를 포함할 수 있다.
이 때, 선택하는 단계는 정규표현식(REGULAR EXPRESSION) 처리 방법을 기반으로 상기 사용자 음성 명령이 상기 기설정된 발화 규칙에 대응하는지 여부를 판단할 수 있다.
이 때, 로봇 서비스 제공 방법은 상기 명시적 서비스 및 상기 묵시적 서비스 중 실행이 결정된 적어도 하나의 서비스를 서비스 큐에 입력하고, 서비스 별 우선순위 및 상기 서비스 큐에 입력된 순서 중 적어도 하나를 고려하여 서비스 실행 순서를 결정하는 단계를 더 포함할 수 있다.
이 때, 심볼화된 지식은 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나를 통해 획득한 상황 정보를 융합하여 생성될 수 있다.
또한, 본 발명의 일실시예에 따른 로봇 서비스 제공 장치는, 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 상기 사용자 음성 명령에 대응하는 명시적 서비스를 선택하고, 상기 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 상기 명시적 서비스를 제공하고, 상기 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 상기 사용자 음성 명령과 상관없이 상기 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하는 프로세서; 및 상기 서비스 별 메타정보 파일을 저장하는 메모리를 포함한다.
이 때, 로봇 서비스 제공 장치는 심볼화된 지식을 저장하는 지식 데이터베이스를 더 포함하고, 상기 프로세서는 상기 심볼화된 지식을 기반으로 상기 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단하고, 상기 서비스 실행규칙에 포함된 조건이 만족되는 경우에 상기 명시적 서비스를 제공할 수 있다.
이 때, 프로세서는 상기 심볼화된 지식에 포함된 적어도 하나의 심볼에 대한 변경이 감지될 때마다 상기 상시 서비스 실행규칙에 포함된 조건의 만족여부를 검토할 수 있다.
이 때, 서비스 별 메타정보 파일은 상기 묵시적 서비스가 선택됨에 따라 갱신되는 제1 지식 정보 및 상기 묵시적 서비스의 실행이 완료되었을 경우에 갱신되는 제2 지식 정보를 포함할 수 있다.
이 때, 프로세서는 상기 제2 지식 정보를 기반으로 상태 기반 서비스 전이를 수행할 수 있다.
이 때, 프로세서는 정규표현식(REGULAR EXPRESSION) 처리 방법을 기반으로 상기 사용자 음성 명령이 상기 기설정된 발화 규칙에 대응하는지 여부를 판단할 수 있다.
이 때, 프로세서는 상기 명시적 서비스 및 상기 묵시적 서비스 중 실행이 결정된 적어도 하나의 서비스를 서비스 큐에 입력하고, 서비스 별 우선순위 및 상기 서비스 큐에 입력된 순서 중 적어도 하나를 고려하여 서비스 실행 순서를 결정할 수 있다.
이 때, 심볼화된 지식은 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나를 통해 획득한 상황 정보를 융합하여 생성될 수 있다.
본 발명에 따르면, 다양한 수준의 이벤트를 복합적으로 융합한 정보를 기반으로 묵시적인 의도를 파악하여 로봇의 서비스 블록을 선택함으로써 사용자 발화에 의한 음성 명령과 상관없이 선제적인 서비스를 제공하거나 위급한 상황에서 적극적인 서비스를 제공할 수 있다.
또한, 본 발명은 복합적 상황 인식 정보를 기반으로 사용자의 명시적인 의도에 따른 서비스 제공 여부를 판단함으로써 보다 복합적이고 지능적인 로봇 서비스를 제공할 수 있다.
또한, 본 발명은 로봇이 인식한 다양한 상황 정보와 발화 기반의 사용자 의도 인식 정보를 융합해서 현재 상황에 적합한 로봇 서비스를 메타파일의 형태로 손쉽게 선택할 수 있는 기술을 제공할 수 있다.
도 1은 스크립트 형태의 로봇 서비스 블록의 일 예를 나타낸 도면이다.
도 2는 스마트 스피커의 실행 과정의 일 예를 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 로봇 서비스 제공 방법을 나타낸 동작 흐름도이다.
도 4는 본 발명에 따른 명시적 서비스 제공 과정의 일 예를 나타낸 동작흐름도이다.
도 5는 본 발명에 따른 묵시적 서비스 제공 과정의 일 예를 나타낸 동작 흐름도이다.
도 6은 본 발명에 따른 로봇 서비스 블럭 선택 과정의 일 예를 나타낸 도면이다.
도 7는 본 발명에 따른 묵시적 서비스를 선택하기 위한 규칙 평가 구조의 일 예를 나타낸 도면이다.
도 8은 본 발명에 따른 상태 기반 서비스 전이의 일 예를 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 로봇 서비스 제공 장치를 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 로봇 서비스 제공 방법을 나타낸 동작 흐름도이다.
본 발명은 다양한 서비스를 제공할 수 있는 로봇에서 다양한 상황 정보를 기반으로 인식된 묵시적 의도와 사용자 발화를 기반으로 인식된 명시적 의도를 결합하여 사용자에게 제공해야 할 서비스를 선택하기 위한 내용에 관한 것이다. 특히, 로봇이 인식한 다양한 상황 정보와 발화 기반으로 인식된 사용자 의도를 융합해서 사용자에게 현재 상황에 가장 적합한 로봇 서비스를 메타정보 파일의 형태로 손쉽게 선택할 수 있도록 하는 기술을 제공하는 것을 목적으로 한다.
이러한 목적을 달성하기 위해서 먼저 명시적 서비스를 제공하는 과정을 상세하게 설명하도록 한다.
도 3을 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 사용자 음성 명령에 대응하는 명시적 서비스를 선택한다(S310).
이 때, 본 발명에서의 로봇 서비스 블럭은 스크립트 형태로 구성되어 로봇에게 실제 서비스를 실행하는 서비스 스크립트와 해당 서비스 스크립트를 언제 실행시킬 지 정의한 서비스 별 메타정보 파일로 구성될 수 있다.
예를 들어, 서비스 별 메타정보 파일은 [표 1]과 같은 형태로 구성될 수 있다.
name: <타겟 서비스 이름>
description: <타겟 서비스에 대한 설명>
priority: <우선순위 번호>

utterance_rule:
~ <발화 규칙 1>
~ <발화 규칙 2>
~ ...
~ <발화 규칙 L>

trigger_rule:
when intent:
~ <실행 조건 1>
~ <실행 조건 2>
~ ...
~ <실행 조건 M>
when_all
~ <실행 조건 1>
~ <실행 조건 2>
~ ...
~ <실행 조건 N>

setting
prio_setting:
~ <선행 지식 갱신 1>
~ <선행 지식 갱신 2>
~ ...
~ <선행 지식 갱신 O>
post_setting:
~ <후행 지식 갱신 1>
~ <후행 지식 갱신 2>
~ ...
~ <후행 지식 갱신 P>
즉, [표 1]을 참조하면, 서비스 별 메타정보 파일에는 해당 메타정보 파일이 선택되었을 때 실행되는 타겟 서비스의 이름(name), 서비스 별 우선순위(priority), 사용자 음성 명령에 대해 서비스 수행여부를 정의한 발화 규칙(utterance_rule), 서비스 실행여부를 판단하기 위한 조건을 정의한 서비스 실행규칙(trigger_rule) 및 서비스가 선택되거나 실행되었을 경우에 갱신되어야 할 지식 정보(setting)를 포함할 수 있다.
따라서, 음성인식 모듈을 통해 확인된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 대응되는 경우, 대응되는 발화 규칙에 상응하는 메타정보 파일의 서비스를 사용자에게 제공될 명시적 서비스로 결정할 수 있다. 이 때, 결정된 명시적 서비스는 아직 사용자에게 제공될지 여부가 결정되지는 않았으나, 제공될 가능성이 있는 후보에 상응할 수 있다.
예를 들어, 도 4를 참조하면, 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하고(S410), 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 만족하는지 여부를 판단할 수 있다(S415).
이 때, 정규표현식(Regular Expression) 처리 방법을 기반으로 사용자 음성 명령이 기설정된 발화 규칙에 대응하는지 여부를 판단할 수 있다.
단계(S415)의 판단결과 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에도 만족하지 않으면, 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
또한, 단계(S415)의 판단결과 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 만족하면, 만족한 발화 규칙에 상응하는 메타정보 파일에 기재된 서비스를 사용자에게 제공될 가능성이 있는 명시적 서비스로 선택할 수 있다(S420).
이 후, 선택된 명시적 서비스는 로봇을 통해 무조건 제공되는 것이 아니라, [표 1]에 도시된 서비스 실행규칙(trigger_rule)을 고려하여 제공될 수 있는데 이 과정에 대한 내용은 이하에서 도 3의 단계(S320)을 통해 설명하도록 한다.
또한, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 명시적 서비스를 제공한다(S320).
이 때, 서비스 실행규칙(trigger_rule)은 음성 인식을 통해 확인된 사용자 음성 명령이 기설정된 발화 규칙에 대응되는 경우에 해당 서비스 수행할지 여부를 결정하는 조건문들을 기술할 수 있다. 예를 들어, [표 1]을 참조하면, 서비스 실행규칙은 when_intent와 when_all에 상응하는 두 가지 세부 규칙을 포함할 수 있다.
이 때, when_intent는 사용자 음성 명령이 발화 규칙에 매핑된 경우에 무조건 서비스를 제공하는 것이 아니라, 사용자의 명시적 의도에 대한 여과 과정을 수행하기 위한 조건문들을 포함할 수 있다. 이 때, when_intent에 기재된 조건은 해당 서비스 분야의 전문가로부터 획득한 자문을 기반으로 결정된 내용일 수 있다.
이 때, when_all은 상시 서비스 실행규칙에 상응하는 것으로 사용자 음성 명령이 인식되지 않더라도 특별한 조건이 만족되면 사용자에게 서비스를 제공할 수 있는 조건문들을 포함할 수 있다. 이 때, when_all에 관련된 내용은 추후에 묵시적 서비스 제공 과정에서 보다 상세하게 다루도록 한다.
이 때, 지식 데이터베이스에 저장된 심볼화된 지식을 기반으로 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단하고, 서비스 실행규칙에 포함된 조건이 만족되는 경우에 명시적 서비스를 제공할 수 있다.
예를 들어, 도 4의 단계(S430)에 도시된 것처럼, 서비스 실행규칙 중 when_intent에 기재된 조건의 항목을 만족하는지 여부를 평가하고(S430), 평과 결과가 True 값인지 여부를 판단하여(S435) 사용자의 명시적 의도에 의한 명시적 서비스 수행여부를 결정할 수 있다.
단계(S435)의 판단결과 평가 결과가 True인 경우, 즉 when_intent에 있는 여러 조건들 중 어느 하나를 만족하는 경우에 해당하는 명시적 서비스의 실행을 요청하여(S440) 사용자에게 명시적 서비스를 제공할 수 있다.
이 때, when_intent에 포함된 조건을 만족하는지 여부에 대한 평가는 지식 데이터베이스에 저장된 심볼화된 지식을 이용하여 수행될 수 있다.
또한, 단계(S435)의 판단결과 평과 결과가 Ture가 아닌 경우, 즉 when_intent에 있는 여러 조건을 하나도 만족하지 못한 경우에는 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
또한, 명시적 서비스를 제공하는 단계에서는 특정 명시적 서비스에 대한 실행을 요청한 이후에 다음 사용자 음성 명령을 인식하기 위해, 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
이와 같이 서비스 실행규칙 기반의 여과 과정을 통해 실행이 결정된 명시적 서비스는 로봇에서 서비스 블록의 형태로 실행되어 사용자에게 제공될 수 있다.
이하에서는 다양한 실시예를 기반으로 명시적 서비스를 제공하는 과정을 설명하도록 한다.
Name: TVWatching
Description: Watching TV service
Priority: 10

Utterance_rule:
~ [*] 드라마 [*]
~ [*] 뉴스 [*]
~ [*] (텔레비전|티비|티브이) [*]

Trigger_rule:
When_intent:
~ $time_to_sleep < $current_time or $too_much_watching == False
When_all
~ $favorite_tv_program_onair == True and $tv_is_on == False
~ $weather_alarm_level >= 5 and $tv_is_on == False

Setting
Prio_setting : # unused
Post_setting : # unused
[표 2]를 참조하면, 음성인식 모듈을 통해 인식된 사용자 음성 명령에 TV를 보고싶어할 때의 단어(드라마, 뉴스, 텔레비전 등)가 포함된 경우, 사용자에게 TV 시청 의사가 있는 것으로 판단하고 TVWatching에 해당하는 서비스의 서비스 실행규칙을 확인할 수 있다. 이 때, 사용자가 명시적인 의도를 통해 TV 시청을 요청하였으므로 서비스 실행규칙 하부의 when_intent에 포함된 적어도 하나의 조건을 만족한 경우에만 TVWatching에 해당하는 서비스를 제공할 수 있다. 즉, 사용자에게 TV 시청 의사가 있더라도 현재 시간이 잠자리에 들 시간이거나 또는 사용자가 이미 너무 오랫동안 TV를 시청한 경우에 명시적 의도에도 불구하고 TV 시청에 제한을 둘 수 있다.
이 때, [표 2]에 도시된 $기호로 시작되는 심볼들은 지식 데이터베이스에 입력된 지식들을 의미할 수 있다.
또한, 본 발명에 따르면 서비스 실행규칙의 하부에 위치하는 when_intent를 기반으로 동일한 사용자 음성 명령에 대해 사용자나 서비스 실행 조건을 고려하여 다른 서비스가 제공되도록 할 수도 있다.
예를 들어, 아래의 [표 3]을 참조하면, 사용자 음성 명령을 통해 "이리와"라는 명령을 받은 로봇이 현재 인식된 사람이 주인으로 등록된 사용자인지($recognized_user is OWNER) 또는 손님으로 찾아온 사용자인지($recognized_user is NOT OWNER)에 따라 다른 서비스를 제공하는 것을 확인할 수 있다. 즉, [표 3]에 따르면, 주인이 로봇을 호출한 경우에는 높은 우선순위(99)를 갖고 주인에게 서빙을 하기 위해 이동하는 서비스를 제공하지만, 손님이 로봇을 호출한 경우에는 비교적 낮은 우선순위(10)를 갖고 손님을 모니터링하는 서비스를 제공할 수 있다.
Name:ServingOwner
Description:Serving to owner
Priority:99

Utterance_rule:
~ [*] 이리와 [*]

Trigger_rule:
When_intent:
~$recognized_user is OWNER
When_all:#unused

Setting
Prio_setting: # unused
Post_setting: # unused
Name:MonitoringGuest
Description:Monitoring a guest
Priority:10

Utterance_rule:
~ [*] 이리와 [*]

Trigger_rule:
When_intent:
~ $recognized_user is NOT OWNER
When_all:#unused

Setting
Prio_setting: # unused
Post_setting: $ unused
다른 예를 들어, 아래의 [표 4]를 참조하면, 사용자가 외출하려고 로봇에서 "외출" 또는 "나갔다올게"와 같은 대화를 건낸 경우, 현재 기상 상황에 따라 서로 다른 서비스를 제공하는 것을 알 수 있다. 즉, 로봇은 현재 기상 상황을 조회하여 날씨가 외출하기 좋은 경우에는 사용자를 환송하는 서비스를 제공할 수 있고, 날씨가 외출하기 좋지 않은 경우에는 외출을 삼가하도록 권유하는 서비스를 제공할 수 있다.
Name:GoodOutgoingService
Description:Farewell outgoing
Priority:50

Utterance_rule:
~ [*] 외출 [*]
~ [*] 나갔다올게 [*]

Trigger_rule:
When_intent:
~$good_weather_condition == True
When_all:#unused

Setting
Prio_setting: # unused
Post_setting: # unused
Name:BadOutgoingService
Description:Constraint outgoing
Priority:50

Utterance_rule:
~ [*] 외출 [*]
~ [*] 나갔다올게 [*]

Trigger_rule:
When_intent:
~ $good_weather_condition == False
When_all:#unused

Setting
Prio_setting: # unused
Post_setting: $ unused
이 때, 심볼화된 지식은 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나를 통해 획득한 상황 정보를 융합하여 생성될 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 장치(600)의 서비스 블록 선택 엔진(610)은 시각 센서를 이용한 영상인식 모듈, 로봇에 설치된 다양한 센서 모듈, 다양한 IoT 환경 정보를 인식하는 IoT 정보획득 모듈 및 클라우드 서비스 정보 획득 모듈에 의해 획득된 다양한 상황 정보를 이벤트나 데이터의 형태로 입력받을 수 있다.
이 때, 서비스 블록 선택 엔진(610)의 인식 융합 모듈(611)은 다양한 상황 정보를 입력으로 받아 심볼화된 지식으로 변환할 수 있으며, 이렇게 변환된 심볼화된 지식은 지식 데이터베이스(612)에 저장될 수 있다. 이 때, 인식 융합 모듈(611)은 각종 인식 모듈들로부터 입력되는 원시 이벤트 및 데이터를 융합 및 가공하여 [심볼:값]의 형태로 심볼화된 지식을 지식 데이터베이스(612)에 저장할 수 있다.
즉, 도 6에 의하면, 서비스 블록 선택 엔진(610)은 서비스 별 메타정보 파일을 읽고, 각 서비스가 실행되기 위한 발화 규칙 및 서비스 실행규칙을 기반으로 음성인식 모듈을 통해 인식된 사용자 음성 명령과 지식 데이터베이스(612)에 저장된 심볼화된 지식을 융합하여 사용자에게 제공할 서비스에 상응하는 서비스 블록을 선택할 수 있다.
이와 같이 선택된 서비스 블록은 서비스 선택 코디네이터(615)를 통해 서비스 실행 모듈(620)로 실행 요청될 수 있고, 서비스 실행 모듈(620)에서는 실행 요청받은 서비스 블록을 실행하여 사용자에게 해당 서비스를 제공할 수 있다.
또한, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 사용자 음성 명령과 상관없이 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공한다(S330).
예를 들어, 휴먼 케어 서비스를 제공하는 로봇의 경우, 주변 환경으로부터 얻은 정보에 의해 인식된 상황이 서비스 대상인 고령자에게 위험한 상황으로 판단된다면 사용자 음성 명령이 인식되지 않나도 선제적으로 서비스를 제공하여 대응할 수 있다. 또는 보다 능동적인 서비스르 ㄹ제공하기 위해서 묵시적 서비스를 제공할 수도 있다.
즉, 묵시적 서비스는 사용자 음성 명령이 인식되지 않는 경우에도 상시 서비스 실행규칙에 기반한 상황에 따른 묵시적인 의도를 파악함으로써 능동적으로 제공되는 서비스를 의미할 수 있다.
예를 들어, [표 2]를 참조하면, 상시 서비스 실행규칙(when_all)에 사용자가 즐겨보는 TV 프로그램이 방영중인데 아직 TV가 켜지지 않은 경우($favorite_tv_program_onair == True and $tv_is_on == False)나 날씨 경보 수준이 5단계 이상인데 TV가 켜지지 않은 경우(weather_alarm_level >= 5 and $tv_is_on == False)에 능동적으로 TVWatching 서비스를 제공함으로써 사용자가 즐겨보는 TV 프로그램을 놓치지 않고 시청할 수 있도록 하거나 안전을 위해 재난 방송을 시청하도록 유도할 수 있다.
이 때, 심볼화된 지식에 포함된 적어도 하나의 심볼에 대한 변경이 감지될 때마다 상시 서비스 실행규칙에 포함된 조건의 만족여부를 검토할 수 있다.
이 때, 주기적인 검토를 수행하여 상시 서비스 실행규칙에 포함된 조건을 평가할 수도 있지만, 서비스의 종류나 개수가 많아지거나 메타파일 정보에 포함되는 상시 서비스 실행규칙이 늘어나는 경우에 매 주기마다 많은 조건들을 평가해야하므로 시스템에 부하가 발생할 우려가 있다. 따라서, 본 발명에서는 지식 데이터베이스에 저장된 심볼값이 변경되었을 경우에만 상시 서비스 실행규칙에 포함된 조건을 평가하도록 함으로써 불필요한 CPU 점유를 방지할 수 있다.
예를 들어, 도 5를 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 지식 데이터베이스에 저장된 심볼화된 지식을 모니터링할 수 있다(S510).
이 후, 심볼화된 지식에 포함된 심볼이 변경되었는지 여부를 판단하고(S515), 심볼이 변경되지 않았으면 지속적으로 심볼화된 지식에 대한 모니터링을 수행할 수 있다.
또한, 단계(S515)의 판단결과 심볼이 변경되었으면, 서비스 별 메타정보 파일에 포함된 상시 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단할 수 있다(S525).
단계(S525)의 판단결과 상시 서비스 실행규칙에 포함된 조건이 만족되지 않았으면, 다시 심볼화된 지식에 변경이 발생하는지 여부를 모니터링할 수 있다.
또한, 단계(S525)의 판단결과 상시 서비스 실행규칙에 포함된 조건이 만족되었으면, 만족된 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하고(S530) 다시 심볼화된 지식에 대한 모니터링을 수행할 수 있다.
다른 예를 들어, 도 6을 참조하면, 묵시적 서비스 선택 모듈(614)을 기반으로 지식 데이터베이스(612)에 저장된 심볼화된 지식을 모니터링할 수 있다. 즉, 인식 융합 모듈(611)에서 지식 데이터베이스(612)에 새롭게 심볼화된 지식을 저장하거나 이미 저장되어 있던 지식(심볼)을 수정한 경우, 묵시적 서비스 선택 모듈(614)은 새롭게 저장되거나 수정된 심볼이 참조된 상시 서비스 실행규칙에 대해서만 조건이 만족되었는지 여부를 평가하여 묵시적 서비스를 선택할 수 있다.
이를 위해, 묵시적 서비스 선택 모듈(700)은 도 7에 도시된 것처럼 상시 서비스 실행규칙에 포함된 각각의 조건, 즉 규칙 평가문장들을 평가문 해석 모듈(710)을 거쳐 평가 모니터 관리자(720)에게 등록시킬 수 있다. 이 때, 평가 모니터 관리자(720)는 등록된 평가문에 참조된 각 심볼들을, 쓰레드로 동작하면서 등록된 심볼들을 감시하는 평가 판단 모듈(730)에 등록할 수 있다. 이 후, 인식 융합 모듈이 지식 모니터(740)에게 변경된 심볼에 상응하는 지식 변경 정보를 통보하면, 지식 모니터(740)는 쓰레드이벤트(ThreadEvent)를 통해 평가 판단 모듈(730)을 깨워 동작시킬 수 있다. 이 후, 평가 판단 모듈(730)은 지식 변경 정보가 통보된 심볼이 포함된 평가문들을 지식 데이터베이스에 저장된 지식을 기반으로 평가할 수 있고, 평과 결과가 Ture 값으로 판단되는 경우에 서비스 선택 코디네이터에게 해당 서비스의 실행을 요청할 수 있다.
이와 같은 구조를 기반으로 지식 데이터베이스에서 값이 변경된 심볼에 대해서만 상시 서비스 실행규칙의 조건이 평가되어 효율적으로 묵시적 서비스를 선택 및 제공할 수 있다.
이 때, 서비스 별 메타정보 파일은 묵시적 서비스가 선택됨에 따라 갱신되는 제1 지식 정보 및 묵시적 서비스의 실행이 완료되었을 경우에 갱신되는 제2 지식 정보를 포함할 수 있다.
예를 들어, [표 1]을 참조하면, 본 발명의 일실시예에 따른 메타정보 파일은 해당 서비스가 선택되었을 때 갱신되어야할 지식에 대한 정보(setting)를 포함할 수 있으며, 해당 지식 정보에는 서비스가 선택되어 호출되기 전에 갱신되어야할 제1 지식 정보(prio_setting)와 서비스 수행이 완료되었을 때 갱신되어야할 제2 지식 정보(post_setting)가 포함될 수 있다.
이 때, 제2 지식 정보를 기반으로 상태 기반 서비스 전이를 수행할 수 있다.
즉, 제2 지식 정보에 다음 서비스를 시작시킬 수 있는 조건의 지식에 대한 갱신 정보를 포함시켜 놓으면, 현재 서비스가 완료된 이후에 다음 서비스가 자동으로 시작되도록 서비스 전이를 수행할 수 있다.
name: Service1
description:Stateful Service1
priority: 50

utterance_rule:
~ [*] 상태 서비스 시작 [*]

trigger_rule:
when_intent :
~ $mystate==1
when_all : #unused

setting:
prio_setting :
~ $some_info = 99
post_setting :
~ $mystate = 2
name: Service2
description: Stateful Service2
priority: 50

utterance_rule: #unused

trigger_rule:
when_intent : #unused
when_all :
~ $mystate == 2

setting:
prio_setting : # unused
post_setting :
~ $mystate = 3
name: Service3
description: Stateful Service3
priority: 50

utterance_rule: #unused

trigger_rule:
when_intent : #unused
when_all :
~ $mystate == 3

setting:
prio_setting : # unused
post_setting :
~ $mystate = 1
예를 들어, 상기의 [표 5]에 도시된 메타정보 파일과 같이 사용자에 의해 "상태 서비스 시작"에 해당하는 사용자 음성 명령으로 Service1이 시작되었다고 가정하면, Service1의 제1 지식 정보(prio_setting)에 포함된 내용대로 서비스 내부에서 사용되는 지식 정보($some_info=99)를 갱신할 수 있다. 이 후, Service1이 완료되는 시점에는 Service1의 제2 지식 정보(post_setting)에 포함된 내용대로 상태와 관련한 지식($mystate)를 다음 서비스가 시작되는 조건으로 변경할 수 있다($mystate=2). 이와 같은 지식 갱신을 기반으로 Service2는 when_all 조건이 만족되어 자동으로 선택되어 시작될 수 있다. 이와 같은 방식으로 Service2가 완료된 후 Service3도 자동으로 시작될 수 있으며, 최종적으로 일련의 서비스가 완료되면 명시적 명령을 받아 Service1을 다시 시작할 수 있도록 상태 정보를 초기 상태($mystate=1)로 갱신할 수도 있다.
이와 같은 과정을 도식화하면, 도 8과 같이 나타낼 수 있다. 즉, Service1을 시작하기 위해서는 $mystate==1의 상태에서 "상태 서비스 시작"이라는 사용자 음성 명령이 입력될 수 있다. 이 후, Service1이 시작되고, Service1이 종료된 이후에는 $mystate==2의 조건에 의해 자동으로 Servicce2가 시작될 수 있다. 마찬가지로 Service2가 종료된 이후에는 $mystate==3의 조건에 의해 자동으로 Servicce3가 시작되고, Service3가 종료된 이후에는 다시 $mystate=1의 상태로 변경하는 형태로 상태에 따른 서비스 전이가 이루어질 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 명시적 서비스 및 묵시적 서비스 중 실행이 결정된 적어도 하나의 서비스를 서비스 큐에 입력하고, 서비스 별 우선순위 및 서비스 큐에 입력된 순서 중 적어도 하나를 고려하여 서비스 실행 순서를 결정할 수 있다.
예를 들어, 도 6을 참조하면, 서비스 선택 코디네이터(615)는 현재 서비스 실행 모듈(620)에서 실행중인 서비스가 존재하지 않는 경우, 서비스큐(616)에 포함된 서비스들 중에서 우선순위가 가장 높거나 혹은 가장 먼저 요청된 서비스를 선택하여 서비스 실행 모듈(620)에게 실행 요청할 수 있다.
이 때, 서비스큐(616)에 포함된 서비스들 중에서 어떤 서비스를 선택하여 실행 요청을 할지는 서비스 선택 코디네이터(615)에서 별도로 정한 정책에 따를 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 네트워크와 같은 통신망을 통해 로봇 서비스 제공을 우해 필요한 정보를 송수신할 수 있다. 특히, 심볼화된 지식을 생성하기 위해 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나로부터 상황 정보를 수신할 수 있다.
또한, 도 3에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 상술한 바와 같이 본 발명의 일실시예에 따른 로봇 서비스 제공 과정에서 발생되는 다양한 정보를 별도의 저장 모듈에 저장한다.
이와 같은 로봇 서비스 제공 방법을 통해 로봇이 인식한 다양한 상황 정보와 발화 기반으로 인식된 사용자 의도를 융합해서 명시적 서비스 및 묵시적 서비스를 선택적으로 제공할 수 있다. 이를 통해 고령자를 대상으로 하는 휴면케어 서비스 로봇이 상황에 적합한 서비스를 능동적으로 선택하여 제공할 수 있다.
또한, 로봇이 인식한 다양한 상황 정보와 발화 기반의 사용자 의도 인식 정보를 융합해서 현재 상황에 적합한 로봇 서비스를 메타파일의 형태로 손쉽게 선택할 수 있는 기술을 제공할 수도 있다.
도 9는 본 발명의 일실시예에 따른 로봇 서비스 제공 장치를 나타낸 블록도이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 장치는 통신부(910), 프로세서(920), 지식 데이터베이스(930) 및 메모리(940)를 포함한다.
통신부(910)는 네트워크와 같은 통신망을 통해 로봇 서비스 제공을 우해 필요한 정보를 송수신할 수 있다. 특히, 본 발명의 일실시예에 따른 통신부(910)는 심볼화된 지식을 생성하기 위해 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나로부터 상황 정보를 수신할 수 있다.
프로세서(920)는 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 사용자 음성 명령에 대응하는 명시적 서비스를 선택한다.
이 때, 본 발명에서의 로봇 서비스 블럭은 스크립트 형태로 구성되어 로봇에게 실제 서비스를 실행하는 서비스 스크립트와 해당 서비스 스크립트를 언제 실행시킬 지 정의한 서비스 별 메타정보 파일로 구성될 수 있다.
예를 들어, 서비스 별 메타정보 파일은 [표 1]과 같은 형태로 구성될 수 있다.
즉, [표 1]을 참조하면, 서비스 별 메타정보 파일에는 해당 메타정보 파일이 선택되었을 때 실행되는 타겟 서비스의 이름(name), 서비스 별 우선순위(priority), 사용자 음성 명령에 대해 서비스 수행여부를 정의한 발화 규칙(utterance_rule), 서비스 실행여부를 판단하기 위한 조건을 정의한 서비스 실행규칙(trigger_rule) 및 서비스가 선택되거나 실행되었을 경우에 갱신되어야 할 지식 정보(setting)를 포함할 수 있다.
따라서, 음성인식 모듈을 통해 확인된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 대응되는 경우, 대응되는 발화 규칙에 상응하는 메타정보 파일의 서비스를 사용자에게 제공될 명시적 서비스로 결정할 수 있다. 이 때, 결정된 명시적 서비스는 아직 사용자에게 제공될지 여부가 결정되지는 않았으나, 제공될 가능성이 있는 후보에 상응할 수 있다.
예를 들어, 도 4를 참조하면, 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하고(S410), 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 만족하는지 여부를 판단할 수 있다(S415).
이 때, 정규표현식(Regular Expression) 처리 방법을 기반으로 사용자 음성 명령이 기설정된 발화 규칙에 대응하는지 여부를 판단할 수 있다.
단계(S415)의 판단결과 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에도 만족하지 않으면, 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
또한, 단계(S415)의 판단결과 인식된 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 어느 하나의 발화 규칙에 만족하면, 만족한 발화 규칙에 상응하는 메타정보 파일에 기재된 서비스를 사용자에게 제공될 가능성이 있는 명시적 서비스로 선택할 수 있다(S420).
이 후, 선택된 명시적 서비스는 로봇을 통해 무조건 제공되는 것이 아니라, [표 1]에 도시된 서비스 실행규칙(trigger_rule)을 고려하여 제공될 수 있는데 이 과정에 대한 내용은 이하에서 설명하도록 한다.
또한, 프로세서(920)는 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 명시적 서비스를 제공한다.
이 때, 서비스 실행규칙(trigger_rule)은 음성 인식을 통해 확인된 사용자 음성 명령이 기설정된 발화 규칙에 대응되는 경우에 해당 서비스 수행할지 여부를 결정하는 조건문들을 기술할 수 있다. 예를 들어, [표 1]을 참조하면, 서비스 실행규칙은 when_intent와 when_all에 상응하는 두 가지 세부 규칙을 포함할 수 있다.
이 때, when_intent는 사용자 음성 명령이 발화 규칙에 매핑된 경우에 무조건 서비스를 제공하는 것이 아니라, 사용자의 명시적 의도에 대한 여과 과정을 수행하기 위한 조건문들을 포함할 수 있다. 이 때, when_intent에 기재된 조건은 해당 서비스 분야의 전문가로부터 획득한 자문을 기반으로 결정된 내용일 수 있다.
이 때, when_all은 상시 서비스 실행규칙에 상응하는 것으로 사용자 음성 명령이 인식되지 않더라도 특별한 조건이 만족되면 사용자에게 서비스를 제공할 수 있는 조건문들을 포함할 수 있다. 이 때, when_all에 관련된 내용은 추후에 묵시적 서비스 제공 과정에서 보다 상세하게 다루도록 한다.
지식 데이터베이스(930)는 심볼화된 지식을 저장하고, 프로세서(920)는 지식 데이터베이스(930)에 저장된 심볼화된 지식을 기반으로 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단하고, 서비스 실행규칙에 포함된 조건이 만족되는 경우에 명시적 서비스를 제공할 수 있다.
예를 들어, 도 4의 단계(S430)에 도시된 것처럼, 서비스 실행규칙 중 when_intent에 기재된 조건의 항목을 만족하는지 여부를 평가하고(S430), 평과 결과가 True 값인지 여부를 판단하여(S435) 사용자의 명시적 의도에 의한 명시적 서비스 수행여부를 결정할 수 있다.
단계(S435)의 판단결과 평가 결과가 True인 경우, 즉 when_intent에 있는 여러 조건들 중 어느 하나를 만족하는 경우에 해당하는 명시적 서비스의 실행을 요청하여(S440) 사용자에게 명시적 서비스를 제공할 수 있다.
이 때, when_intent에 포함된 조건을 만족하는지 여부에 대한 평가는 지식 데이터베이스에 저장된 심볼화된 지식을 이용하여 수행될 수 있다.
또한, 단계(S435)의 판단결과 평과 결과가 Ture가 아닌 경우, 즉 when_intent에 있는 여러 조건을 하나도 만족하지 못한 경우에는 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
또한, 명시적 서비스를 제공하는 단계에서는 특정 명시적 서비스에 대한 실행을 요청한 이후에 다음 사용자 음성 명령을 인식하기 위해, 다시 음성인식 모듈을 기반으로 사용자 음성 명령을 인식하는 단계를 수행할 수 있다.
이와 같이 서비스 실행규칙 기반의 여과 과정을 통해 실행이 결정된 명시적 서비스는 로봇에서 서비스 블록의 형태로 실행되어 사용자에게 제공될 수 있다.
이하에서는 다양한 실시예를 기반으로 명시적 서비스를 제공하는 과정을 설명하도록 한다.
[표 2]를 참조하면, 음성인식 모듈을 통해 인식된 사용자 음성 명령에 TV를 보고싶어할 때의 단어(드라마, 뉴스, 텔레비전 등)가 포함된 경우, 사용자에게 TV 시청 의사가 있는 것으로 판단하고 TVWatching에 해당하는 서비스의 서비스 실행규칙을 확인할 수 있다. 이 때, 사용자가 명시적인 의도를 통해 TV 시청을 요청하였으므로 서비스 실행규칙 하부의 when_intent에 포함된 적어도 하나의 조건을 만족한 경우에만 TVWatching에 해당하는 서비스를 제공할 수 있다. 즉, 사용자에게 TV 시청 의사가 있더라도 현재 시간이 잠자리에 들 시간이거나 또는 사용자가 이미 너무 오랫동안 TV를 시청한 경우에 명시적 의도에도 불구하고 TV 시청에 제한을 둘 수 있다.
이 때, [표 2]에 도시된 $기호로 시작되는 심볼들은 지식 데이터베이스에 입력된 지식들을 의미할 수 있다.
또한, 본 발명에 따르면 서비스 실행규칙의 하부에 위치하는 when_intent를 기반으로 동일한 사용자 음성 명령에 대해 사용자나 서비스 실행 조건을 고려하여 다른 서비스가 제공되도록 할 수도 있다.
예를 들어, 아래의 [표 3]을 참조하면, 사용자 음성 명령을 통해 "이리와"라는 명령을 받은 로봇이 현재 인식된 사람이 주인으로 등록된 사용자인지($recognized_user is OWNER) 또는 손님으로 찾아온 사용자인지($recognized_user is NOT OWNER)에 따라 다른 서비스를 제공하는 것을 확인할 수 있다. 즉, [표 3]에 따르면, 주인이 로봇을 호출한 경우에는 높은 우선순위(99)를 갖고 주인에게 서빙을 하기 위해 이동하는 서비스를 제공하지만, 손님이 로봇을 호출한 경우에는 비교적 낮은 우선순위(10)를 갖고 손님을 모니터링하는 서비스를 제공할 수 있다.
다른 예를 들어, [표 4]를 참조하면, 사용자가 외출하려고 로봇에서 "외출" 또는 "나갔다올게"와 같은 대화를 건낸 경우, 현재 기상 상황에 따라 서로 다른 서비스를 제공하는 것을 알 수 있다. 즉, 로봇은 현재 기상 상황을 조회하여 날씨가 외출하기 좋은 경우에는 사용자를 환송하는 서비스를 제공할 수 있고, 날씨가 외출하기 좋지 않은 경우에는 외출을 삼가하도록 권유하는 서비스를 제공할 수 있다.
이 때, 심볼화된 지식은 복수개의 센서들에 기반한 인식 모듈, 사물인터넷(IoT) 기반 환경 정보 인식 모듈 및 클라우드 기반 외부 정보 획득 모듈 중 적어도 하나를 통해 획득한 상황 정보를 융합하여 생성될 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 장치(600)의 서비스 블록 선택 엔진(610)은 시각 센서를 이용한 영상인식 모듈, 로봇에 설치된 다양한 센서 모듈, 다양한 IoT 환경 정보를 인식하는 IoT 정보획득 모듈 및 클라우드 서비스 정보 획득 모듈에 의해 획득된 다양한 상황 정보를 이벤트나 데이터의 형태로 입력받을 수 있다.
이 때, 서비스 블록 선택 엔진(610)의 인식 융합 모듈(611)은 다양한 상황 정보를 입력으로 받아 심볼화된 지식으로 변환할 수 있으며, 이렇게 변환된 심볼화된 지식은 지식 데이터베이스(612)에 저장될 수 있다. 이 때, 인식 융합 모듈(611)은 각종 인식 모듈들로부터 입력되는 원시 이벤트 및 데이터를 융합 및 가공하여 [심볼:값]의 형태로 심볼화된 지식을 지식 데이터베이스(612)에 저장할 수 있다.
즉, 도 6에 의하면, 서비스 블록 선택 엔진(610)은 서비스 별 메타정보 파일을 읽고, 각 서비스가 실행되기 위한 발화 규칙 및 서비스 실행규칙을 기반으로 음성인식 모듈을 통해 인식된 사용자 음성 명령과 지식 데이터베이스(612)에 저장된 심볼화된 지식을 융합하여 사용자에게 제공할 서비스에 상응하는 서비스 블록을 선택할 수 있다.
이와 같이 선택된 서비스 블록은 서비스 선택 코디네이터(615)를 통해 서비스 실행 모듈(620)로 실행 요청될 수 있고, 서비스 실행 모듈(620)에서는 실행 요청받은 서비스 블록을 실행하여 사용자에게 해당 서비스를 제공할 수 있다.
또한, 프로세서(920)는 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 사용자 음성 명령과 상관없이 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공한다.
예를 들어, 휴먼 케어 서비스를 제공하는 로봇의 경우, 주변 환경으로부터 얻은 정보에 의해 인식된 상황이 서비스 대상인 고령자에게 위험한 상황으로 판단된다면 사용자 음성 명령이 인식되지 않나도 선제적으로 서비스를 제공하여 대응할 수 있다. 또는 보다 능동적인 서비스르 ㄹ제공하기 위해서 묵시적 서비스를 제공할 수도 있다.
즉, 묵시적 서비스는 사용자 음성 명령이 인식되지 않는 경우에도 상시 서비스 실행규칙에 기반한 상황에 따른 묵시적인 의도를 파악함으로써 능동적으로 제공되는 서비스를 의미할 수 있다.
예를 들어, [표 2]를 참조하면, 상시 서비스 실행규칙(when_all)에 사용자가 즐겨보는 TV 프로그램이 방영중인데 아직 TV가 켜지지 않은 경우($favorite_tv_program_onair == True and $tv_is_on == False)나 날씨 경보 수준이 5단계 이상인데 TV가 켜지지 않은 경우(weather_alarm_level >= 5 and $tv_is_on == False)에 능동적으로 TVWatching 서비스를 제공함으로써 사용자가 즐겨보는 TV 프로그램을 놓치지 않고 시청할 수 있도록 하거나 안전을 위해 재난 방송을 시청하도록 유도할 수 있다.
이 때, 심볼화된 지식에 포함된 적어도 하나의 심볼에 대한 변경이 감지될 때마다 상시 서비스 실행규칙에 포함된 조건의 만족여부를 검토할 수 있다.
이 때, 주기적인 검토를 수행하여 상시 서비스 실행규칙에 포함된 조건을 평가할 수도 있지만, 서비스의 종류나 개수가 많아지거나 메타파일 정보에 포함되는 상시 서비스 실행규칙이 늘어나는 경우에 매 주기마다 많은 조건들을 평가해야하므로 시스템에 부하가 발생할 우려가 있다. 따라서, 본 발명에서는 지식 데이터베이스에 저장된 심볼값이 변경되었을 경우에만 상시 서비스 실행규칙에 포함된 조건을 평가하도록 함으로써 불필요한 CPU 점유를 방지할 수 있다.
예를 들어, 도 5를 참조하면, 본 발명의 일실시예에 따른 로봇 서비스 제공 방법은 지식 데이터베이스에 저장된 심볼화된 지식을 모니터링할 수 있다(S510).
이 후, 심볼화된 지식에 포함된 심볼이 변경되었는지 여부를 판단하고(S515), 심볼이 변경되지 않았으면 지속적으로 심볼화된 지식에 대한 모니터링을 수행할 수 있다.
또한, 단계(S515)의 판단결과 심볼이 변경되었으면, 서비스 별 메타정보 파일에 포함된 상시 서비스 실행규칙에 포함된 조건이 만족되었는지 여부를 판단할 수 있다(S525).
단계(S525)의 판단결과 상시 서비스 실행규칙에 포함된 조건이 만족되지 않았으면, 다시 심볼화된 지식에 변경이 발생하는지 여부를 모니터링할 수 있다.
또한, 단계(S525)의 판단결과 상시 서비스 실행규칙에 포함된 조건이 만족되었으면, 만족된 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하고(S530) 다시 심볼화된 지식에 대한 모니터링을 수행할 수 있다.
다른 예를 들어, 도 6을 참조하면, 묵시적 서비스 선택 모듈(614)을 기반으로 지식 데이터베이스(612)에 저장된 심볼화된 지식을 모니터링할 수 있다. 즉, 인식 융합 모듈(611)에서 지식 데이터베이스(612)에 새롭게 심볼화된 지식을 저장하거나 이미 저장되어 있던 지식(심볼)을 수정한 경우, 묵시적 서비스 선택 모듈(614)은 새롭게 저장되거나 수정된 심볼이 참조된 상시 서비스 실행규칙에 대해서만 조건이 만족되었는지 여부를 평가하여 묵시적 서비스를 선택할 수 있다.
이를 위해, 묵시적 서비스 선택 모듈(700)은 도 7에 도시된 것처럼 상시 서비스 실행규칙에 포함된 각각의 조건, 즉 규칙 평가문장들을 평가문 해석 모듈(710)을 거쳐 평가 모니터 관리자(720)에게 등록시킬 수 있다. 이 때, 평가 모니터 관리자(720)는 등록된 평가문에 참조된 각 심볼들을, 쓰레드로 동작하면서 등록된 심볼들을 감시하는 평가 판단 모듈(730)에 등록할 수 있다. 이 후, 인식 융합 모듈이 지식 모니터(740)에게 변경된 심볼에 상응하는 지식 변경 정보를 통보하면, 지식 모니터(740)는 쓰레드이벤트(ThreadEvent)를 통해 평가 판단 모듈(730)을 깨워 동작시킬 수 있다. 이 후, 평가 판단 모듈(730)은 지식 변경 정보가 통보된 심볼이 포함된 평가문들을 지식 데이터베이스에 저장된 지식을 기반으로 평가할 수 있고, 평과 결과가 Ture 값으로 판단되는 경우에 서비스 선택 코디네이터에게 해당 서비스의 실행을 요청할 수 있다.
이와 같은 구조를 기반으로 지식 데이터베이스에서 값이 변경된 심볼에 대해서만 상시 서비스 실행규칙의 조건이 평가되어 효율적으로 묵시적 서비스를 선택 및 제공할 수 있다.
이 때, 서비스 별 메타정보 파일은 묵시적 서비스가 선택됨에 따라 갱신되는 제1 지식 정보 및 묵시적 서비스의 실행이 완료되었을 경우에 갱신되는 제2 지식 정보를 포함할 수 있다.
예를 들어, [표 1]을 참조하면, 본 발명의 일실시예에 따른 메타정보 파일은 해당 서비스가 선택되었을 때 갱신되어야할 지식에 대한 정보(setting)를 포함할 수 있으며, 해당 지식 정보에는 서비스가 선택되어 호출되기 전에 갱신되어야할 제1 지식 정보(prio_setting)와 서비스 수행이 완료되었을 때 갱신되어야할 제2 지식 정보(post_setting)가 포함될 수 있다.
이 때, 제2 지식 정보를 기반으로 상태 기반 서비스 전이를 수행할 수 있다.
즉, 제2 지식 정보에 다음 서비스를 시작시킬 수 있는 조건의 지식에 대한 갱신 정보를 포함시켜 놓으면, 현재 서비스가 완료된 이후에 다음 서비스가 자동으로 시작되도록 서비스 전이를 수행할 수 있다.
예를 들어, [표 5]에 도시된 메타정보 파일과 같이 사용자에 의해 "상태 서비스 시작"에 해당하는 사용자 음성 명령으로 Service1이 시작되었다고 가정하면, Service1의 제1 지식 정보(prio_setting)에 포함된 내용대로 서비스 내부에서 사용되는 지식 정보($some_info=99)를 갱신할 수 있다. 이 후, Service1이 완료되는 시점에는 Service1의 제2 지식 정보(post_setting)에 포함된 내용대로 상태와 관련한 지식($mystate)를 다음 서비스가 시작되는 조건으로 변경할 수 있다($mystate=2). 이와 같은 지식 갱신을 기반으로 Service2는 when_all 조건이 만족되어 자동으로 선택되어 시작될 수 있다. 이와 같은 방식으로 Service2가 완료된 후 Service3도 자동으로 시작될 수 있으며, 최종적으로 일련의 서비스가 완료되면 명시적 명령을 받아 Service1을 다시 시작할 수 있도록 상태 정보를 초기 상태($mystate=1)로 갱신할 수도 있다.
이와 같은 과정을 도식화하면, 도 8과 같이 나타낼 수 있다. 즉, Service1을 시작하기 위해서는 $mystate==1의 상태에서 "상태 서비스 시작"이라는 사용자 음성 명령이 입력될 수 있다. 이 후, Service1이 시작되고, Service1이 종료된 이후에는 $mystate==2의 조건에 의해 자동으로 Servicce2가 시작될 수 있다. 마찬가지로 Service2가 종료된 이후에는 $mystate==3의 조건에 의해 자동으로 Servicce3가 시작되고, Service3가 종료된 이후에는 다시 $mystate=1의 상태로 변경하는 형태로 상태에 따른 서비스 전이가 이루어질 수 있다.
메모리(940)는 서비스 별 메타정보 파일을 저장한다.
또한, 메모리(940)는 상술한 바와 같이 본 발명의 일실시예에 따른 로봇 서비스 제공 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 메모리(940)는 로봇 서비스 제공 장치와 독립적으로 구성되어 로봇 서비스 제공을 위한 기능을 지원할 수 있다. 이 때, 메모리(940)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.
한편, 로봇 서비스 제공 장치는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
또한, 도 6에 도시된 로봇 서비스 제공 장치는 도 9에 도시된 로봇 서비스 제공 장치의 프로세서에 상응하게 동작하는 것일 수 있다.
이와 같은 로봇 서비스 제공 장치를 이용함으로써 로봇이 인식한 다양한 상황 정보와 발화 기반으로 인식된 사용자 의도를 융합해서 명시적 서비스 및 묵시적 서비스를 선택적으로 제공할 수 있다. 이를 통해 고령자를 대상으로 하는 휴면케어 서비스 로봇이 상황에 적합한 서비스를 능동적으로 선택하여 제공할 수 있다.
또한, 로봇이 인식한 다양한 상황 정보와 발화 기반의 사용자 의도 인식 정보를 융합해서 현재 상황에 적합한 로봇 서비스를 메타파일의 형태로 손쉽게 선택할 수 있는 기술을 제공할 수도 있다.
이상에서와 같이 본 발명에 따른 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 로봇 서비스 스크립트 101~103: 로봇 서비스 블럭
110: 음성인식 모듈 120: 영상인식 모듈
130: 센서 모듈 140: IOT 정보획득 모듈
150: 클라우드 서비스 정보획득 모듈
600: 로봇 서비스 제공 장치 610: 서비스 블록 선택 엔진
611: 인식 융합 모듈 612, 930: 지식 데이터베이스
613: 명시적 서비스 선택 모듈 614, 700: 묵시적 서비스 선택 모듈
615: 서비스 선택 코디네이터 616: 서비스큐
620: 서비스 실행 모듈 710: 평가문 해석 모듈
720: 평가 모니터 관리자 730: 평가 판단 모듈
740: 지식 모니터 910: 통신부
920: 프로세서 940: 메모리

Claims (1)

  1. 사용자 음성 명령이 서비스 별 메타정보 파일에 기설정된 발화 규칙을 만족하는지 여부를 고려하여 상기 사용자 음성 명령에 대응하는 명시적 서비스를 선택하는 단계;
    상기 명시적 서비스에 상응하는 메타정보 파일에 기설정된 서비스 실행규칙을 고려하여 상기 명시적 서비스를 제공하는 단계; 및
    상기 서비스 별 메타정보 파일에 기설정된 상시 서비스 실행규칙을 고려하여 상기 사용자 음성 명령과 상관없이 상기 상시 서비스 실행규칙에 대응하는 묵시적 서비스를 제공하는 단계
    를 포함하는 것을 특징으로 하는 로봇 서비스 제공 방법.
KR1020190136211A 2019-10-30 2019-10-30 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치 KR20210051226A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190136211A KR20210051226A (ko) 2019-10-30 2019-10-30 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190136211A KR20210051226A (ko) 2019-10-30 2019-10-30 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20210051226A true KR20210051226A (ko) 2021-05-10

Family

ID=75918391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136211A KR20210051226A (ko) 2019-10-30 2019-10-30 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR20210051226A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100656372B1 (ko) 2005-12-09 2006-12-11 한국전자통신연구원 로봇 서비스 가용성 평가 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100656372B1 (ko) 2005-12-09 2006-12-11 한국전자통신연구원 로봇 서비스 가용성 평가 방법 및 시스템

Similar Documents

Publication Publication Date Title
US11693533B2 (en) Providing composite graphical assistant interfaces for controlling various connected devices
KR102477072B1 (ko) 자동화된 어시스턴트를 통해 수행되도록 요청된 일련의 동작들의 실행 조정
US10397511B2 (en) Method for television remote keypress response based on android operating system and television thereof
US11538477B2 (en) Generating IoT-based notification(s) and provisioning of command(s) to cause automatic rendering of the IoT-based notification(s) by automated assistant client(s) of client device(s)
KR102581347B1 (ko) 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
EP3853845B1 (en) Processing concurrently received utterances from multiple users
KR20210051226A (ko) 명시적 의도와 묵시적 의도를 결합한 메타 파일 기반의 로봇 서비스 제공 방법 및 이를 위한 장치
US11237796B2 (en) Methods, systems, and apparatus for providing composite graphical assistant interfaces for controlling connected devices
CN113539251A (zh) 一种家电设备的控制方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination