KR102481881B1 - 외부 디바이스를 제어하는 서버 및 그 방법 - Google Patents

외부 디바이스를 제어하는 서버 및 그 방법 Download PDF

Info

Publication number
KR102481881B1
KR102481881B1 KR1020160115255A KR20160115255A KR102481881B1 KR 102481881 B1 KR102481881 B1 KR 102481881B1 KR 1020160115255 A KR1020160115255 A KR 1020160115255A KR 20160115255 A KR20160115255 A KR 20160115255A KR 102481881 B1 KR102481881 B1 KR 102481881B1
Authority
KR
South Korea
Prior art keywords
external device
natural language
controlling
language understanding
user
Prior art date
Application number
KR1020160115255A
Other languages
English (en)
Other versions
KR20180027950A (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 KR1020160115255A priority Critical patent/KR102481881B1/ko
Priority to PCT/KR2017/009143 priority patent/WO2018048118A1/en
Priority to EP17849002.5A priority patent/EP3469853B1/en
Priority to JP2019534617A priority patent/JP7038719B2/ja
Priority to US15/689,428 priority patent/US10650822B2/en
Priority to CN201710804249.1A priority patent/CN107808672B/zh
Priority to CN202311813423.0A priority patent/CN117746868A/zh
Publication of KR20180027950A publication Critical patent/KR20180027950A/ko
Priority to US16/844,686 priority patent/US11482227B2/en
Priority to KR1020220181068A priority patent/KR20230005086A/ko
Application granted granted Critical
Publication of KR102481881B1 publication Critical patent/KR102481881B1/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/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/2818Controlling appliance services of a home automation network by calling their functionalities from a device located outside both the home and the home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • H04L12/2825Reporting to a device located outside the home and the home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • 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
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72415User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories for remote control of appliances

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)
  • Telephone Function (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

외부 디바이스를 제어하는 서버가 개시된다. 개시된 서버는 통신부, 프로세서, 사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해(natural language understanding; NLU) 엔진을 저장하는 메모리 및 메모리에 저장되고, 프로세서에 의해 실행되는 하나 이상의 프로그램들을 포함하고, 하나 이상의 프로그램들은, 외부 디바이스와 페어링된 페어링 디바이스로부터, 통신부를 통해 외부 디바이스를 제어하기 위한 사용자 발화 및 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신하고, 외부 디바이스를 제어하기 위한 사용자 발화와 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하고, 결정된 자연어 이해 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들(instructions)을 포함할 수 있다.

Description

외부 디바이스를 제어하는 서버 및 그 방법{SERVER AND METHOD FOR CONTROLLING EXTERNAL DEVICE}
개시된 실시예들은 외부 디바이스를 제어하는 서버 및 그 방법에 관한 것으로서, 보다 상세하게는 사용자의 발화에 기초하여 외부 디바이스를 제어하는 서버 및 그 방법에 관한 것이다.
IoT (Internet of Things; 사물 인터넷) 기술이 발전함에 따라, 사용자는 전자 디바이스를 이용하여 여러 가지 서비스를 제공하는 IoT 디바이스들을 제어할 수 있게 되었다. 특히 사용자의 발화를 이용하여 IoT 디바이스를 제어하는 기능을 이용함으로써 사용자는 주변의 IoT 디바이스들을 용이하게 제어할 수 있게 되었다.
IoT 디바이스들의 제조사는 IoT 디바이스를 제어하기 위한 전자 디바이스의 제조사와 상이한 제조사일 수 있다. 이에 따라, IoT 디바이스를 제어하기 위한 전자 디바이스의 제조사는 사용자 발화를 이용하여 IoT 디바이스를 제어하는 기능의 종류를 미리 정해 놓았고, IoT 디바이스의 제조사들은 미리 정해진 기능을 구현하기 위한 IoT 디바이스 제어를 위한 서버를 별도로 운영하는 것이 일반적이었다. 이 경우, 전자 디바이스가 직접 IoT 디바이스들을 제어하는 것이 아니라, 전자 디바이스로부터 생성되는 제어를 위한 신호가 전자 디바이스의 제조사에서 운영하는 서버를 거친 후, IoT 디바이스들의 제어를 위한 서버를 통하여 IoT 디바이스들을 제어할 수 있었다.
이와 같은 경우, IoT 디바이스의 제조사는 별도로 서버를 운영하여야 한다는 부담이 있었다. 또한, IoT 디바이스의 제조사는 IoT 디바이스를 제어하기 위해 미리 정해진 기능 이외의 추가적인 기능을 IoT 디바이스에 적용하는 데에 제한이 있었다. 또한, IoT 디바이스의 제조사는 IoT 디바이스의 제어 기능에 대응되는 사용자 발화 문형을 확장하는 것이 불가능한 것이 대부분이었다.
한편, 사용자가 전자 디바이스를 이용하여 IoT 디바이스를 제어하기 위해서는 자신이 사용하는 전자 디바이스의 ID에 IoT 디바이스를 등록시키는 과정을 거쳐야 한다. 이 때, IoT 디바이스의 제조사에서는 IoT 디바이스가 하나의 전자 디바이스에 의해 제어되는 기능을 편리하게 제공하도록 하기 위해 별도의 IoT 허브를 제조하여 판매하였다.
이에 따라, 사용자는 IoT 디바이스를 구매할 때마다 이에 대응되는 별도의 IoT 허브를 구매해야 하는 부담이 있었고, 또한 사용자는 자신의 IoT 디바이스를 직접 웹사이트 등을 통해 전자 디바이스와 연결시키는 작업이 필요한 경우도 있었다.
개시된 실시예들은 IoT 디바이스의 제조사마다 IoT 디바이스의 제어 기능을 제공하기 위한 별도의 서버를 운영하여야 하는 부담을 덜 수 있도록 하는 서버 및 방법을 제공할 수 있다.
또한, 개시된 실시예들은 IoT 디바이스의 제조사는 제조사 마다 IoT 디바이스를 제어하기 위한 기능을 제한 없이 등록할 수 있도록 하는 서버 및 방법을 제공할 수 있다.
또한, 개시된 실시예들은 IoT 디바이스를 제어하는 기능을 하는 디바이스에서 IoT 디바이스에 대응되는 별도의 IoT 허브의 기능을 동시에 할 수 있도록 함으로써, 사용자가 별도의 IoT 허브의 구매 없이도, 자신의 IoT 디바이스를 직접 웹사이트 등을 통해 전자 디바이스와 연결시키는 작업을 생략시킬 수 있도록 하는 서버 및 방법을 제공할 수 있다.
일 실시예에 따른 외부 디바이스를 제어하는 서버는, 통신부, 프로세서, 사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해(natural language understanding; NLU) 엔진을 저장하는 메모리 및 메모리에 저장되고, 프로세서에 의해 실행되는 하나 이상의 프로그램들을 포함하고, 하나 이상의 프로그램들은, 외부 디바이스와 페어링된 페어링 디바이스로부터, 통신부를 통해 외부 디바이스를 제어하기 위한 사용자 발화 및 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신하고, 외부 디바이스를 제어하기 위한 사용자 발화와 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하고, 결정된 자연어 이해 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들(instructions)을 포함할 수 있다.
일 실시예에 따른 적어도 하나의 자연어 이해 엔진은, 외부 디바이스의 제조사 및 서비스 중 적어도 하나에 따라 서로 상이할 수 있다.
일 실시예에 따른 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하기 위한 인스트럭션들은,
외부 디바이스를 제어하기 위한 사용자 발화로부터 외부 디바이스의 호출명 부분과 외부 디바이스의 서비스 호출 문형 부분을 추출하고, 외부 디바이스의 호출명 부분과 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스의 호출명 부분에 대응되는 적어도 하나의 자연어 이해 엔진을 결정하기 위한 인스트럭션을 포함할 수 있다.
일 실시예에 따른 사용자 발화에 기초하여 적어도 하나의 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들은,
자연어 이해 엔진을 이용하여, 추출된 외부 디바이스의 서비스 호출 문형 부분에 대응되는 자연어 이해 결과를 생성하고, 자연어 이해 결과에 기초하여, 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들을 포함할 수 있다.
일 실시예에 따른 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들은,
자연어 이해 결과에 기초하여 외부 디바이스를 제어하기 위한 명령어는 자연어를 생성하기 위한 인스트럭션들을 더 포함할 수 있다.
일 실시예에 따른 외부 디바이스 정보는 외부 디바이스 ID, 외부 디바이스의 제조사 ID 및 적어도 하나의 외부 디바이스의 호출명을 포함할 수 있다.
일 실시예에 따른 적어도 하나의 외부 디바이스의 호출명은 페어링 디바이스를 통한 사용자 입력에 의해 결정될 수 있다.
일 실시예에 따라 외부 디바이스가 근거리 통신에 의해 페어링 장치에 페어링 될 때, 하나 이상의 프로그램들은 페어링 디바이스로, 외부 디바이스의 ID 및 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하기 위한 인스트럭션들을 더 포함할 수 있다.
일 실시예에 따라 외부 디바이스가 원거리 통신에 의해 페어링 장치에 페어링 될 때, 하나 이상의 프로그램들은 외부 디바이스로, 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하기 위한 인스트럭션들을 더 포함할 수 있다.
일 실시예에 따른 외부 디바이스 ID는 페어링 디바이스에서 부여하는 것일 수 있다.
일 실시예에 따른 외부 디바이스를 제어하는 제어 방법은, 사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해(natural language understanding; NLU) 엔진을 저장하는 단계, 외부 디바이스와 페어링된 페어링 디바이스로부터, 외부 디바이스를 제어하기 위한 사용자 발화 및 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신하는 단계, 외부 디바이스를 제어하기 위한 사용자 발화와 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하는 단계, 및 결정된 자연어 이해 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하는 단계를 포함할 수 있다.
개시된 실시예들에 의하면 IoT 디바이스의 제조사마다 IoT 디바이스의 제어 기능을 제공하기 위한 별도의 서버를 운영하여야 하는 부담을 덜 수 있다.
또한, 개시된 실시예들에 의하면 IoT 디바이스의 제조사는 제조사 마다 IoT 디바이스를 제어하기 위한 다양한 기능을 제한 없이 등록하기 용이하게 된다.
또한, 개시된 실시예들에 의하면 IoT 디바이스를 제어하는 기능을 하는 디바이스에서 IoT 디바이스에 대응되는 별도의 IoT 허브의 기능을 동시에 할 수 있도록 함으로써, 사용자는 별도의 IoT 허브의 구매가 불필요하고, 자신의 IoT 디바이스를 직접 웹사이트 등을 통해 전자 디바이스와 연결시키는 작업이 불필요하게 된다.
도 1은 일 실시예에 따라, 사용자의 발화에 기초하여 외부 디바이스(300)를 제어하기 위한 시스템을 도시한다.
도 2는 사용자의 발화에 기초하여 외부 디바이스를 제어하기 위한 다른 시스템을 도시한다.
도 3은 일 실시예에 따른 서버(100)의 구성을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 서버(100)와 연결되어 동작 가능한 페어링 디바이스(200)의 구성을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 외부 디바이스를 제어하기 위한 방법의 흐름도이다.
도 6은 일 실시예에 따른 외부 디바이스를 제어하기 위한 방법의 흐름도이다.
도 7은 일 실시예에 따른 외부 디바이스를 페어링 디바이스에 등록하기 위한 방법의 흐름도이다.
도 8은 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 사용자의 발화에 기초하여 외부 디바이스를 제어하는 방법의 흐름도이다.
도 9a는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 사용자의 발화를 수신하는 것을 나타내는 도면이다.
도 9b는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 페어링 디바이스(200)로부터 서버(100)로 사용자의 발화 및 등록된 외부 디바이스 정보를 송신하는 것을 나타내는 도면이다.
도 9c는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 자연어 이해 엔진 및 명령어 생성 엔진을 이용하여 외부 디바이스(300)를 제어하기 위한 명령어를 생성하는 것을 나타내는 도면이다.
도 9d는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 서버(100)로부터 페어링 디바이스(200)로 자연어 생성 결과와 외부 디바이스 ID 및 명령어를 송신하는 것을 나타내는 도면이다.
도 9e는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 페어링 디바이스(200)로부터 외부 디바이스(300)로 명령어를 송신하는 것을 나타내는 도면이다.
도 10은 일 실시예에 따른 서버(100)의 세부적인 구성을 나타내는 블록도이다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 예시적 실시예를 상세하게 설명한다. 또한, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 실시예에 따른 전자 장치를 구성하고 사용하는 방법을 상세히 설명한다. 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 본 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원서에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 일 실시예에 따라, 사용자의 발화에 기초하여 외부 디바이스(300)를 제어하기 위한 시스템을 도시한다.
서버(100)는 사용자 발화에 기초하여 외부 디바이스(300)를 제어하기 위해, 네트워크(105)를 통해 페어링 디바이스(200)와 무선 또는 유선으로 연결되어 동작할 수 있는 서버 장치이다.
서버(100)는 외부 디바이스(300)에 대응되는 자연어 이해 엔진(natural language understanding; NLU)을 저장한다. 서버(100)는 자연어 이해 엔진을 이용하여 사용자 발화를 분석하여 외부 디바이스(300)를 제어하도록 구성될 수 있다. 자연어 이해 엔진은 외부 디바이스(300)의 제조사에 의해 제공될 수 있다. 또한, 자연어 이해 엔진은 외부 디바이스(300)의 제조사에 의해 업데이트 될 수 있다.
네트워크(105)는 서버(100)와 페어링 디바이스(200)가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다.
페어링 디바이스(200)는 사용자의 발화를 수신하고, 수신된 사용자의 발화를 서버(100)로 전달하며, 서버(100)로부터 수신한 데이터에 기초하여 페어링 디바이스(200)와 페어링된 외부 디바이스(300)를 제어하기 위한 기기이다.
페어링 디바이스(200)는 네트워크(105)를 통해 서버(100)와 유선 또는 무선으로 연결될 수 있다. 또한, 페어링 디바이스(200)는 외부 디바이스(300)와 무선으로 페어링 될 수 있다. 페어링 디바이스(200)는 외부 디바이스(300)를 제어하기 위한 사용자 발화를 수신할 수 있다.
페어링 디바이스(200)는 외부 디바이스(300)와 최초로 페어링 될 때, 외부 디바이스 정보를 수신하여 저장할 수 있다. 외부 디바이스 정보는 외부 디바이스의 ID, 외부 디바이스의 제조사 ID 및 적어도 하나의 외부 디바이스의 호출명을 포함할 수 있다.
페어링 디바이스(200)는 예를 들어, 스마트폰, 태블릿 PC, PC, 스마트 TV, 스마트 폰 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 페어링 디바이스(200)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 제한되지 않으며, 페어링 디바이스(200)는, 외부 디바이스(300)와 페어링 되며, 서버(100)로부터 네트워크(105)를 통하여 외부 디바이스(300)를 제어하기 위한 신호를 제공받을 수 있는 모든 종류의 기기를 포함할 수 있다. 도 1에는 페어링 디바이스(200)에 제1 외부 디바이스(301), 제2 외부 디바이스(302), 제3 외부 디바이스(303)가 페어링 되어 있는 것으로 도시되었다. 그러나, 페어링 디바이스(200)에 페어링 될 수 있는 외부 디바이스(300)의 수는 제한되지 않는다.
외부 디바이스(300)는 사용자가 발화를 통해 제어하고자 하는 전자 디바이스 및 사물 인터넷(Internet of Things) 기기를 포함한다.
외부 디바이스(300)는 예를 들어, 전등, 냉장고, CCTV, TV, 세탁기, 에어컨, 제습기 등의 가정에서 사용되는 전자 기기 및 자동차 등을 포함할 수 있고, 페어링 디바이스(200) 또는 네트워크(105)를 통해 무선으로 연결되어 신호를 송수신할 수 있는 모든 종류의 기기를 포함할 수 있다.
외부 디바이스(300)는 제1 외부 디바이스(301), 제2 외부 디바이스(302), 제3 외부 디바이스(303) 등을 포함하는 복수의 외부 디바이스를 포함할 수 있다. 이하에서, 외부 디바이스(300)는 적어도 하나의 외부 디바이스를 포함하는 의미로 사용된다.
한편, 서버(100)는 페어링 디바이스(200)를 통하여 외부 디바이스(300)와 연결될 수도 있고, 서버(100)가 직접 외부 디바이스(300)와 무선으로 연결되어 외부 디바이스(300)를 제어하도록 구성될 수도 있다.
도 2는 사용자의 발화에 기초하여 외부 디바이스를 제어하기 위한 다른 시스템을 도시한다.
도 2에 도시된 페어링 디바이스(20)는 네트워크(15)를 통해 서버(10)와 유선 또는 무선으로 연결될 수 있다. 또한, 페어링 디바이스(20)는 사용자 발화를 수신할 수 있다.
서버(10)는 페어링 디바이스(20)로부터 사용자 발화를 수신할 수 있다. 서버(10)는 페어링 디바이스(20)의 제조사가 지정한 기능에 대한 사용자 발화를 자연어 이해 엔진을 이용하여 분석할 수 있다.
서버(10)는 사용자 발화를 분석하기 위한 자연어 이해 엔진을 저장할 수 있다. 자연어 이해 엔진은 페어링 디바이스(20)의 제조사에 의해 제공될 수 있다.
서버(10)는 사용자 발화에 기초하여 외부 디바이스(30)에 대응되는 외부 디바이스 서버(11, 12, 13)에 연결될 수 있다.
서버(10)는 사용자 발화에 기초하여 외부 디바이스 서버(11, 12, 13)를 통하여 외부 디바이스(30)를 제어할 수 있다.
외부 디바이스 서버(11, 12, 13)는 외부 디바이스(30)의 제조사에 의해 운영되는 서버일 수 있다.
구체적으로, 서버(10)는 제1 외부 디바이스(31)의 제조사가 운영하는 제1 외부 디바이스 서버(11)에 연결되고, 제2 외부 디바이스(32)의 제조사가 운영하는 제2 외부 디바이스 서버(12)에 연결되고, 제3 외부 디바이스(33)의 제조사가 운영하는 제3 외부 디바이스 서버(13)에 연결될 수 있다.
도 2에 도시된 시스템에 의하면, 서버(10)에서는 페어링 디바이스(20)의 제조사가 지정한 기능에 대해서만 사용자 발화를 분석할 수 있다. 따라서, 외부 디바이스(30)에서 페어링 디바이스(20)의 제조사가 지정하지 않은 기능을 추가적으로 구현하는 데에는 제한이 있었다. 또한, 서버(10)에서 외부 디바이스(30)를 제어하기 위해 외부 디바이스 서버(11, 12, 13)가 추가적으로 요구된다. 따라서, 외부 디바이스(30)의 제조사에서 외부 디바이스 서버(11, 12, 13)를 별도로 운영해야 하는 부담이 있었다. 또한, 사용자는 페어링 디바이스(20)에 페어링되는 외부 디바이스(30)의 고유한 식별 정보를 서버(10)에 미리 등록해야만 사용할 수 있다는 불편이 있었다.
이하에서는, 도 2에 도시된 시스템의 불편함을 해결하기 위한 본 발명의 실시예에 따른 서버(100) 및 페어링 디바이스(200)에 대해 자세히 설명한다.
도 3은 일 실시예에 따른 서버(100)의 구성을 설명하기 위한 도면이다.
도 3을 참조하면, 일 실시예에 따른 서버(100)는 통신부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다.
통신부(110)는 프로세서(120)의 제어에 의해 네트워크(105)를 통하여 페어링 장치(200)와 데이터 또는 신호를 송수신할 수 있다.
네트워크(105)는 예를 들어, 통신부(110)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(110)는 외부 디바이스(300)와 직접 WLAN(와이파이) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다.
또한, 통신부(110)는 프로세서(120)의 제어에 의해 외부 디바이스(300)와 페어링된 페어링 디바이스(200)로부터 외부 디바이스(300)를 제어하기 위한 사용자 발화 및 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신할 수 있다.
외부 디바이스 정보는 예를 들어, 외부 디바이스 ID, 외부 디바이스의 제조사 ID 및 적어도 하나의 외부 디바이스의 호출명을 포함할 수 있다. 외부 디바이스 정보는 페어링 디바이스(200)와 페어링이 가능한 외부 디바이스(300)의 외부 디바이스 정보를 포함할 수 있다.
외부 디바이스 ID는 페어링 디바이스(200)에 외부 디바이스(300)가 최초로 페어링 될 때에, 페어링 디바이스(200)로부터 부여된 ID 일 수 있다.
외부 디바이스의 제조사 ID는 제조사 별로 부여되는 ID일 수 있다.
적어도 하나의 외부 디바이스의 호출명은 사용자가 외부 디바이스를 호출하기 위하여 사용자의 발화에 포함될 외부 디바이스의 명칭이다. 하나의 외부 디바이스는 하나 이상의 호출명을 포함할 수 있다. 적어도 하나의 외부 디바이스의 호출명은 페어링 디바이스(200)를 통한 사용자 입력에 의해 결정된 것일 수 있다. 또한, 페어링 디바이스(200)를 통한 사용자 입력을 통해 수신한 호출명이 없는 경우, 호출명은 외부 디바이스의 제조사에서 미리 정해진 것일 수 있다.
일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(120)는 싱글 코어, 듀얼 코어, 트리플 코어, 쿼드 코어 및 그 배수의 코어를 포함할 수 있다. 또한, 프로세서(120)는 복수의 프로세서를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 외부 디바이스를 제어하기 위한 사용자 발화와 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하도록 제어할 수 있다.
예를 들어, 프로세서(120)는 외부 디바이스(300)를 제어하기 위한 사용자 발화로부터 외부 디바이스(300)의 호출명 부분과 외부 디바이스(300)의 서비스 호출 문형 부분을 추출하도록 제어할 수 있다. 외부 디바이스(300)의 호출명 부분은 사용자의 발화 중에서 외부 디바이스(300)의 호출명 만을 포함하는 부분을 의미한다. 외부 디바이스(300)의 서비스 호출 문형 부분은 사용자의 발화 중에서 외부 디바이스(300)를 제어하기 위한 문구가 포함된 부분을 의미한다. 외부 디바이스(300)의 서비스 호출 문형 부분은 사용자의 발화 중에서 외부 디바이스(300)의 호출명 부분을 제외한 부분일 수 있다.
또한, 프로세서(120)는 외부 디바이스(300)의 호출명 부분과 적어도 하나의 외부 디바이스 정보에 기초하여, 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스(300)의 호출명 부분에 대응되는 적어도 하나의 자연어 이해 엔진을 결정하도록 제어할 수 있다.
예를 들어, 외부 디바이스(300)의 호출명 부분이 복수개의 외부 디바이스에 대응되는 경우, 프로세서(120)는 적어도 하나의 외부 디바이스 정보에 기초하여, 외부 디바이스(300)의 호출명에 대응되는 복수개의 자연어 이해 엔진들을 결정할 수 있다.
일 실시예에 따른 프로세서(120)는 결정된 자연어 이해 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스(300)를 제어하기 위한 명령어를 생성하도록 제어할 수 있다.
예를 들어, 프로세서(120)는 자연어 이해 엔진을 이용하여, 추출된 외부 디바이스(300)의 서비스 호출 문형 부분에 대응되는 자연어 이해 결과를 생성하도록 제어할 수 있다.
또한, 프로세서(120)는 자연어 이해 결과에 기초하여, 외부 디바이스를 제어하기 위한 명령어를 생성하도록 제어할 수 있다.
예를 들어, 자연어 이해 결과에 기초하여 외부 디바이스(300)를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들을 포함하는 프로그램은 메모리(130)에 저장될 수도 있고, 외부의 서버(도시되지 않음)에 별도로 저장될 수 있다. 후자의 경우, 프로세서(120)는 자연어 이해 결과를 외부 서버에 전달하고, 외부 서버에서 생성된 명령어를 수신할 수 있다.
또한, 프로세서(120)는 자연어 이해 결과에 기초하여 외부 디바이스(300)를 제어하기 위한 명령어에 대응되는 자연어를 생성할 수 있다. 외부 디바이스(300)를 제어하기 위한 명령어에 대응되는 자연어는 페어링 디바이스(200)로 전달될 수 있고, 페어링 디바이스(200)의 오디오 출력부(도시되지 않음)를 통해 음성으로 출력될 수 있다.
일 실시예에 따른 메모리(130)는 서버(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
또한, 메모리(130)는 사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해 엔진을 저장할 수 있다.
적어도 하나의 자연어 이해 엔진은, 외부 디바이스(300)의 제조사 및 외부 디바이스(300)의 종류 중 적어도 하나에 따라 서로 상이할 수 있다. 외부 디바이스(300)의 종류는 예를 들어, 외부 디바이스(300)의 제품군, 외부 디바이스(300)의 제품명 및 외부 디바이스(300)가 제공하는 서비스의 종류 등에 따라 구분될 수 있다.
메모리(130)에 저장된 자연어 이해 엔진은 외부 디바이스(300)의 제조사에 의해 통신부(110)를 통하여 업데이트가 가능하다. 예를 들어, 외부 디바이스(300)의 제조사는 새로운 외부 디바이스(300)의 서비스 호출 문형에 대응되는 명령어를 생성하기 위한 인스트럭션을 더 포함하도록 자연어 이해 엔진을 업데이트할 수 있다.
도 4는 일 실시예에 따른 페어링 디바이스(200)의 블럭도이다.
도 4를 참조하면, 일 실시예에 따른 페어링 디바이스(200)는 통신부(210), 오디오 입력부(220), 오디오 출력부(240), 프로세서(250) 및 메모리(260)를 포함할 수 있다.
페어링 디바이스(200)는 통신부(210)를 통하여 네트워크(105)를 통해 서버(100)와 연결될 수 있다. 또한, 페어링 디바이스(200)는 통신부(210)를 통하여 외부 디바이스(300)와 페어링될 수 있다. 페어링 디바이스(200)는 복수의 외부 디바이스(300)와 동시에 페어링 될 수 있다.
통신부(210)는, 예를 들면, 블루투스 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부, 이동 통신부, 방송 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
오디오 입력부(220)는, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 오디오 입력부(220)는 외부 디바이스(300)를 제어하기 위한 사용자의 발화를 수신할 수 있다. 또한, 외부 디바이스(300)가 최초로 페어링 디바이스(200)에 페어링 되었을 때, 오디오 입력부(220)는 외부 디바이스(300)의 호출명을 입력하기 위한 사용자 발화를 수신할 수 있다. 오디오 입력부(220)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
오디오 출력부(240)는 통신부(210)로부터 수신되거나 메모리(260)에 저장된 오디오 데이터를 출력한다. 예를 들어, 오디오 출력부(240)는 서버(100)로부터 수신된 외부 디바이스를 제어하기 위한 명령어에 대응되는 자연어를 음성으로 출력할 수 있다. 또한, 오디오 출력부(240)는 페어링 디바이스(200)에서 수행되는 기능(예를 들어, 명령어 수행, 알림음)과 관련된 음향 신호를 출력할 수 있다. 이러한 오디오 출력부(240)는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
일 실시예에 따른 프로세서(250)는 메모리(260)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(260)는 페어링 디바이스(200)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다.
예를 들어, 메모리(260)는 외부 디바이스(300) 정보를 관리하기 위한 어플리케이션을 저장할 수 있다. 또한, 메모리(260)는 근거리 통신을 이용하여 외부 디바이스(300)와 페어링 하기 위한 어플리케이션을 저장할 수 있다. 일 실시예에 따라 근거리 통신은 예를 들어 지그비(Zigbee), 블루투스를 포함할 수 있다.
또한, 메모리(260)는 외부 디바이스(300)가 페어링 디바이스(200)와 최초로 페어링 될 때, 외부 디바이스 정보를 저장할 수 있다. 외부 디바이스 정보는 예를 들어, 외부 디바이스 ID, 외부 디바이스의 제조사 ID 및 적어도 하나의 외부 디바이스의 호출명을 포함한다.
외부 디바이스 ID 및 외부 디바이스의 제조사 ID는 외부 디바이스 관리 어플리케이션을 통하여 외부 디바이스(300)로부터 수신되거나, 사용자로부터 입력받을 수 있다. 외부 디바이스 호출명은 페어링 디바이스(200)의 오디오 입력부(220)를 통하여 사용자로부터 수신될 수 있다. 하나의 외부 디바이스(300)에 대하여 복수개의 외부 디바이스 호출명이 저장될 수 있다.
도 5는 일 실시예에 따른 외부 디바이스를 제어하기 위한 방법의 흐름도이다.
단계 S110에서 서버(100)는 적어도 하나의 자연어 이해 엔진을 저장할 수 있다(S110). 여기서, 적어도 하나의 자연어 이해 엔진은 사용자 발화에 대응되는 명령어를 생성하도록 하는 것일 수 있다.
일 실시예에 따르면, 서버(100)는 각 외부 디바이스에 대응되는 적어도 하나의 자연어 이해 엔진을 외부 디바이스의 제조사로부터 수신할 수 있다. 적어도 하나의 자연어 이해 엔진은 외부 디바이스의 제조사에 의해 추후 업데이트 될 수 있다.
서버(100)는 또한, 외부 디바이스의 제어를 위한 텍스트를 포함하는 코퍼스를 수신할 수 있다. 코퍼스는 외부 디바이스를 제어하기 위한 서비스 호출 문형 부분에 대응되는 문장들의 세트를 포함할 수 있다. 코퍼스에 포함된 문장들에 대응되는 서비스 호출 문형 부분은 자연어 이해 엔진을 통하여 분석될 수 있다.
서버(100)는 자연어 이해 훈련 모듈을 통해 코퍼스에 포함된 문장들과 상이하더라도 동일한 의미를 갖는 서비스 호출 문형이 자연어 이해 엔진을 통해 분석될 수 있도록, 자연어 이해 엔진을 훈련시킬 수 있다.
예를 들어, 코퍼스는 외부 디바이스를 제어하기 위한 명령어와 그에 대응되는 적어도 하나의 문장을 대응시켜 포함할 수 있다.
외부 디바이스가 예를 들어, 전구인 경우, 서버(100)는 하기 표 1과 같은 코퍼스를 포함하는 자연어 이해 엔진을 저장할 수 있다.
명령어 문장
light_on 켜줘
light_off 꺼줘
dim_up 밝기 {1|amount} 만큼 올려줘
dim_up 조금만 더 밝게 해봐
dim_down 밝기 {1|amount} 만큼 올려줘
do_ssayiki 반짝거리라고 해
do_ssayiki 레벨 {3|amount} 만큼 반짝거리라고 해
stop_ssayiki 그만 반짝거려
change_color {빨간색|color} 으로 빛나라고 해
change_color {노란색|color} 으로 켜지라고 해
단계 S120에서, 서버(100)는 외부 디바이스를 제어하기 위한 사용자 발화 및 적어도 하나의 외부 디바이스 정보를 수신할 수 있다(S120).
예를 들어, 서버(100)는 외부 디바이스와 페어링된 페어링 디바이스로부터 "거실 전구보고 빨간색으로 빛나라고 해"라는 사용자 발화를 수신할 수 있다.
또한, 서버(100)는 페어링 디바이스로부터 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신할 수 있다.
단계 S130에서, 서버(100)는 적어도 하나의 자연어 이해 엔진 중에서 외부 디바이스에 대응되는 NLU(자연어 이해) 엔진을 결정할 수 있다(S130).
일 실시예에 따르면, 서버(100)는 외부 디바이스를 제어하기 위한 사용자 발화 및 적어도 하나의 외부 디바이스 정보에 기초하여 외부 디바이스에 대응되는 NLU(자연어 이해) 엔진을 결정할 수 있다.
예를 들어, 서버(100)는 "거실 전구보고 빨간색으로 빛나라고 해"라는 사용자 발화와 "거실 전구"라는 호출명에 대응되는 외부 디바이스 정보에 기초하여 자연어 이해 엔진을 결정할 수 있다.
단계 S140에서, 서버(100)는 결정된 NLU(자연어 이해) 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하도록 제어할 수 있다(S140).
[표 1]을 참고하면, 일 실시예에 따라, 결정된 자연어 이해 엔진에 포함된 코퍼스는 change_color 이라는 명령어에 대응되는 "{빨간색|color} 으로 빛나라고 해"라는 문장을 포함할 수 있다.
예를 들어, 서버(100)에서 "빨간색으로 빛나라고 해"를 포함하는 사용자 발화를 수신한 경우에, 서버(100)에서는 자연어 이해 엔진을 이용하여 자연어 이해 결과를 생성할 수 있다. 그 후, 서버(100)는 자연어 이해 결과에 기초하여 change_color 라는 명령어를 생성하도록 제어할 수 있다.
일 실시예에 따라, 서버(100)는 사용자 발화를 수신하여 자연어 이해 엔진을 이용하여 자연어 이해 결과를 생성한 뒤, 자연어 이해 결과에 대응되는 명령어를 생성하기 위해 외부의 서버를 이용할 수도 있다.
도 6은 일 실시예에 따른 외부 디바이스를 제어하기 위한 방법의 흐름도이다.
단계 S210에서 서버(100)는 적어도 하나의 자연어 이해 엔진을 저장할 수 있다(S210). 단계 S210은 도 5에서 설명한 단계 S110과 대응될 수 있다.
단계 S220에서, 서버(100)는 외부 디바이스를 제어하기 위한 사용자 발화 및 적어도 하나의 외부 디바이스 정보를 수신할 수 있다(S220). 단계 S220은 도 5에서 설명한 단계 S120과 대응될 수 있다.
단계 S230에서, 서버(100)는 사용자 발화로부터 외부 디바이스의 호출명 부분과 외부 디바이스의 서비스 호출 문형을 추출할 수 있다(S230).
예를 들어, 서버(100)는 "전구보고 반짝거리라고 해" 라는 사용자 발화로부터 "전구"라는 호출명 부분과, "반짝거리라고 해" 라는 외부 디바이스의 서비스 호출 문형을 추출할 수 있다.
단계 S240에서, 서버(100)는 외부 디바이스의 호출명 부분에 대응되는 적어도 하나의 NLU(자연어 이해) 엔진을 결정할 수 있다(S240).
일 실시예에 따르면, 서버(100)는 외부 디바이스의 호출명 부분과 적어도 하나의 외부 디바이스 정보에 기초하여 외부 디바이스의 호출명 부분에 대응하는 적어도 하나의 NLU(자연어 이해) 엔진을 결정할 수 있다.
예를 들어, 서버(100)는"전구"라는 호출명 부분과 "전구"라는 호출명에 대응되는 적어도 하나의 외부 디바이스 정보에 기초하여 적어도 하나의 자연어 이해 엔진을 결정할 수 있다.
구체적으로, 적어도 하나의 외부 디바이스 정보에 포함된 "전구"라는 호출명을 갖는 외부 디바이스는 거실 전구, 안방 전구 및 부엌 전구가 있을 수 있다. 서버(100)는 "전구"라는 호출명 부분과 적어도 하나의 외부 디바이스 정보에 기초하여 거실 전구, 안방 전구 및 부엌 전구에 대응되는 적어도 하나의 자연어 이해 엔진을 결정할 수 있다.
단계 S250에서, 서버(100)는 결정된 NLU(자연어 이해) 엔진을 이용하여, 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하도록 제어할 수 있다(S250).
단계 S250는 도 5의 단계 S140의 설명을 포함한다. 결정된 자연어 이해 엔진이 복수개인 경우 서버(100)는 결정된 복수개의 자연어 이해 엔진 각각을 이용하여 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 복수개 생성하도록 제어할 수 있다.
도 7은 일 실시예에 따른 외부 디바이스를 페어링 디바이스에 등록하기 위한 방법의 흐름도이다.
일 실시예에 따른 서버(100)는 외부 디바이스를 제어하기 위한 사용자 발화 및 적어도 하나의 외부 디바이스 정보에 기초하여 결정된 NLU(자연어 이해) 엔진을 이용하여 외부 디바이스를 제어하기 위한 명령어를 생성하도록 제어할 수 있다. 적어도 하나의 외부 디바이스 정보는 페어링 디바이스(200)에 저장된 것일 수 있다.
일 실시예에 따른 적어도 하나의 외부 디바이스 정보는 도 7에 도시된 단계들에 따라 페어링 디바이스(200)에 미리 저장될 수 있다.
단계 S310에서, 페어링 디바이스(200)는 페어링될 외부 디바이스가 신규 외부 디바이스인지 여부를 판단할 수 있다 (S310).
일 실시예에 따른 페어링 디바이스(200)는 페어링 디바이스(200)와 페어링될 수 있는 외부 디바이스에 대한 정보인 외부 디바이스 정보를 저장하고 있다. 페어링 디바이스(200)가 페어링될 외부 디바이스에 대한 정보를 이미 저장하고 있는지 여부를 판단할 수 있다.
단계 S310에서 페어링될 외부 디바이스가 신규 외부 디바이스인 경우, 단계 S320에서, 페어링 디바이스(200)는 페어링될 외부 디바이스가 페어링 디바이스(200)와 지속적인 단거리 통신 가능한 외부 디바이스인지 여부를 판단할 수 있다(S320). 지속적인 단거리 통신은 WLAN(와이파이) 통신, 지그비(Zigbee) 통신, 블루투스 통신 등을 포함할 수 있다.
단계 S320에서 페어링될 외부 디바이스가 페어링 디바이스(200)와 지속적인 단거리 통신 가능한 외부 디바이스인 경우, 단계 S330에서, 페어링 디바이스(200)는 단거리 통신에 기초하여 페어링 디바이스(200)와 외부 디바이스를 페어링할 수 있다(S330).
단계 S340에서, 페어링 디바이스(200)는 외부 디바이스의 호출명에 대한 사용자 입력을 수신할 수 있다(S340).
일 실시예에 따른 페어링 디바이스(200)는 외부 디바이스를 호출하기 위한 호출명을 포함하는 사용자 발화를 수신할 수 있다. 예를 들어, 페어링 디바이스(200)는 오디오 출력부를 통하여 사용자에게 호출명을 입력하라는 메시지를 출력하고, 오디오 입력부를 통하여 호출명을 포함하는 사용자 발화를 수신할 수 있다.
또한, 페어링 디바이스(200)는 사용자로부터 호출명을 포함하는 텍스트 등 다른 형태의 입력을 수신할 수도 있다.
단계 S350에서, 페어링 디바이스(200)는 사용자 입력을 수신하였는지 여부를 판단할 수 있다(S350).
페어링 디바이스(200)가 사용자 입력을 수신한 경우, 단계 S360에서, 페어링 디바이스(200)는 사용자 입력에 기초한 외부 디바이스 호출명, 외부 디바이스 ID 및 제조사 ID를 등록할 수 있다(S360). 페어링 디바이스(200)가 사용자 입력을 수신하지 않은 경우, 외부 디바이스를 페어링 디바이스에 등록하기 위한 방법은 종료될 수 있다.
일 실시예에 따른 외부 디바이스 ID는 페어링 디바이스(200)에서 부여되는 것일 수 있다. 또한, 제조사 ID는 외부 디바이스와 페어링 될 때, 외부 디바이스에 의해 수신될 수 있다.
단계 S320에서 페어링될 외부 디바이스가 페어링 디바이스(200)와 지속적인 단거리 통신 가능한 외부 디바이스가 아닌 경우, 단계 S370에서, 페어링 디바이스(200)는 제조사로부터 수신한 외부 디바이스의 ID 및 제조사 ID 등록할 수 있다(S370).
외부 디바이스가 페어링 디바이스(200)와 지속적인 단거리 통신 가능한 외부 디바이스가 아닌 경우는, 외부 디바이스가 지속적인 단거리 통신이 가능한 범위 밖에 위치되는 경우 및 외부 디바이스가 지속적인 단거리 통신이 가능한 범위 밖에서 움직이는 경우를 포함할 수 있다. 예를 들어, 외부 디바이스가 자동차인 경우, 외부 디바이스가 페어링 디바이스(200)와 지속적인 단거리 통신 가능한 외부 디바이스가 아니라고 판단될 수 있다.
단계 S380에서, 사용자는 페어링 디바이스(200)에 수동으로 외부 디바이스의 호출명을 등록할 수 있다(S380).
단계 S310에서 페어링될 외부 디바이스가 신규 외부 디바이스가 아니라고 판단된 경우, 단계 S390에서, 페어링 디바이스(200)는 외부 디바이스 정보를 기존 외부 디바이스 정보와 그룹화할 수 있다(S390).
도 8은 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 사용자의 발화에 기초하여 외부 디바이스를 제어하는 방법의 흐름도이다.
단계 S401에서, 서버(100)는 NLU(자연어 이해) 엔진을 저장할 수 있다(S401).
단계 S403에서, 외부 디바이스(300)는 페어링 디바이스(200)로 외부 디바이스 제조사 ID를 송신할 수 있다(S403).
단계 S405에서, 페어링 디바이스(200)는 외부 디바이스(300)로부터 외부 디바이스(300)의 제조사 ID를 수신할 수 있다(S405).
단계 S407에서, 페어링 디바이스(200)는 사용자로부터 외부 디바이스(300)의 호출명을 수신할 수 있다(S407). 일 실시예에 따른 페어링 디바이스(200)는 사용자로부터 호출명을 포함하는 사용자 발화를 수신할 수 있다.
단계 S409에서, 페어링 디바이스(200)는 외부 디바이스 ID를 등록할 수 있다 (S409). 페어링 디바이스(200)는 외부 디바이스 마다 고유의 ID를 부여할 수 있다.
단계 S411에서, 페어링 디바이스(200)는 외부 디바이스 정보를 업데이트 할 수 있다 (S411). 페어링 디바이스(200)는 외부 디바이스 제조사 ID, 외부 디바이스(300)의 호출명 및 외부 디바이스 ID 를 포함하는 외부 디바이스 정보를 업데이트 할 수 있다. 일 실시예에 따르면, 페어링 디바이스(200)는 기존에 등록된 외부 디바이스 정보에 신규 외부 디바이스 정보를 추가할 수 있다.
단계 S413에서, 페어링 디바이스(200)는 사용자로부터 사용자 발화를 수신할 수 있다 (S413).
단계 S415에서, 페어링 디바이스(200)는 서버(100)로 사용자 발화 및 등록된 외부 디바이스 정보를 송신할 수 있다 (S415).
단계 S417에서, 서버(100)는 페어링 디바이스(200)로부터 사용자 발화 및 등록된 외부 디바이스 정보를 수신할 수 있다 (S417).
단계 S419에서, 서버(100)는 사용자 발화로부터 외부 디바이스(300)의 호출명 부분과 외부 디바이스(300)의 동작 부분을 추출할 수 있다 (S419).
단계 S421에서, 서버(100)는 외부 디바이스(300)의 호출명 부분에 대응되는 적어도 하나의 NLU 엔진을 결정할 수 있다 (S421).
단계 S423에서, 서버(100)는 NLU 결과 및 결정된 NLU 엔진에 대응되는 외부 디바이스 정보를 명령어 생성 엔진에 전달할 수 있다 (S423). 여기서 NLU 결과는, 외부 디바이스(300)의 호출명 부분에 대응되는 적어도 하나의 NLU 엔진을 이용하여 분석된 자연어 이해 결과일 수 있다. 명령어 생성 엔진은 서버(100) 내부에 저장되어 있을 수도 있고, 서버(100) 외부의 다른 서버에 저장되어 있을 수도 있다.
단계 S425에서, 서버(100)는 NLG(자연어 생성) 결과 발화 및 명령어를 생성하도록 제어할 수 있다 (S425). 일 실시예에 따르면, 서버(100)는 서버(100) 내부 또는 외부의 서버에 저장된 명령어 생성 엔진에서 외부 디바이스(300)를 제어하기 위한 명령어를 생성하도록 제어할 수 있다.
단계 S427에서, 서버(100)는 외부 디바이스(300)가 근거리 통신에 의해 페어링 되었는지 여부를 판단할 수 있다 (S427).
단계 S427에서 외부 디바이스(300)가 근거리 통신에 의해 페어링 되지 않은 경우, 단계 S429에서 서버(100)는 페어링 디바이스(200)로 NLG 결과 발화 및 외부 디바이스 ID를 송신할 수 있다 (S429).
단계 S427에서 외부 디바이스(300)가 근거리 통신에 의해 페어링 되지 않은 경우, 단계 S431에서, 서버(100)는 명령어를 외부 디바이스(300)로 직접 송신할 수 있다 (S431).
단계 S427에서 외부 디바이스(300)가 근거리 통신에 의해 페어링 된 경우, 단계 S433에서, 서버(100)는 페어링 디바이스(200)로 NLG 결과 발화, 외부 디바이스 ID 및 명령어를 송신할 수 있다 (S433).
단계 S435에서, 페어링 디바이스(200)는 NLG 결과 발화를 출력하고 명령어를 외부 디바이스(300)로 송신할 수 있다 (S435).
단계 S437에서, 외부 디바이스(300)는 수신된 명령어에 대응되는 동작을 수행할 수 있다 (S437).
도 9a는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 사용자의 발화를 수신하는 것을 나타내는 도면이다.
도 9a를 참조하면 외부 디바이스(300)와 페어링된 페어링 디바이스(200)는 "거실 전구보고 싸이키 모드 하라고 해"라는 사용자의 발화를 수신할 수 있다.
페어링 디바이스(200)는 외부 디바이스 ID, 외부 디바이스 제조사 ID 및 외부 디바이스의 호출명을 포함하는 외부 디바이스 정보를 저장할 수 있다.
도 9b는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 페어링 디바이스(200)로부터 서버(100)로 사용자의 발화 및 등록된 외부 디바이스 정보를 송신하는 것을 나타내는 도면이다.
페어링 디바이스(200)는 페어링 디바이스(200)에서 수신한 사용자 발화 및 페어링 디바이스(200)에 저장된 외부 디바이스 정보 전체 또는 적어도 일부를 서버(100)로 송신할 수 있다.
도 9c는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 자연어 이해 엔진 및 명령어 생성 엔진을 이용하여 외부 디바이스(300)를 제어하기 위한 명령어를 생성하는 것을 나타내는 도면이다.
일 실시예에 따른 서버(100)는 사용자 발화로부터 외부 디바이스의 호출명 부분과 외부 디바이스의 서비스 호출 문형을 추출할 수 있다.
예를 들어, 서버(100)는 "거실전구보고 싸이키 모드 하라고 해" 라는 사용자 발화로부터 "거실 전구"라는 호출명 부분과, "싸이키 모드 하라고 해" 라는 외부 디바이스의 서비스 호출 문형을 추출할 수 있다.
여기서 NLU(자연어 이해) 결과는, 외부 디바이스(300)의 호출명 부분인 "거실 전구"에 대응되는 적어도 하나의 NLU 엔진을 이용하여 분석된 자연어 분석 결과일 수 있다.
도 9c를 참조하면, 서버(100)는 제1 자연어 이해 엔진(101), 제2 자연어 이해 엔진(103), ..., 및 제N 자연어 이해 엔진(105)을 저장할 수 있다. 또한, 서버(100) 내부 또는 외부의 다른 서버에 제1 명령어 생성 엔진(111), 제2 명령어 생성 엔진(113), ..., 및 제N 명령어 생성 엔진(115)이 저장될 수 있다.
서버(100)는 사용자 발화와 적어도 하나의 외부 디바이스 정보에 기초하여"거실 전구"에 대응되는 제2 자연어 이해 엔진(103)을 결정할 수 있다.
또한, 서버(100)는 제2 자연어 이해 엔진(103)을 이용하여 “거실전구보고 싸이키 모드 하라고 해"라는 사용자 발화의 자연어 이해 결과를 생성할 수 있다. 도 9c를 참고하면, 자연어 이해 결과는 서비스 내용, 외부 디바이스 ID 및 제조사 ID를 포함하는 것(사이키 모드; 0#; ABC)일 수 있다.
서버(100)는 제2 자연어 이해 엔진(103)에 대응되는 명령어 생성 엔진(113)을 이용하여 사용자 발화에 기초하여 외부 디바이스를 제어하기 위한 명령어를 생성하도록 제어할 수 있다. 예를 들어, 서버(100)는 자연어 이해 결과 (사이키 모드; 0#; ABC)에 기초하여 명령어(doSsayiki)를 생성할 수 있다.
도 9d는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 서버(100)로부터 페어링 디바이스(200)로 자연어 생성 결과 발화와 외부 디바이스 ID 및 명령어를 송신하는 것을 나타내는 도면이다.
도 9d를 참조하면, 서버(100)는 페어링 디바이스(200)로 NLG 결과 발화("거실전구 싸이키 모드")를 송신할 수 있다. 페어링 디바이스(200)는 수신된 NLG 결과 발화를 출력할 수 있다.
도 9d를 참조하면, 서버(100)는 페어링 디바이스(200)로 외부 디바이스 ID 및 명령어 (#0, doSsayiki)를 송신할 수 있다.
도 9e는 일 실시예에 따른 외부 디바이스를 제어하기 위한 시스템에서 페어링 디바이스(200)로부터 외부 디바이스(300)로 명령어를 송신하는 것을 나타내는 도면이다.
예를 들어, 페어링 디바이스(200)는 서버(100)에서 수신한 외부 디바이스 ID 및 명령어 (#0, doSsayiki)에 기초하여, 외부 디바이스 ID인 #0에 대응되는 거실 전구(301)로 명령어(doSsayiki)를 송신할 수 있다.
도 10은 일 실시예에 따른 서버(1000)의 세부적인 구성을 나타내는 블록도이다.
서버(1000)는 무선 통신부(1011) 및 유선 통신부(1013)를 포함하는 통신부(1010)를 포함할 수 있다.
통신부(1010)는 무선 통신 및 유선 통신에 의해 페어링 디바이스와 데이터를 송수신할 수 있다.
또한, 서버(1000)는 IoT 제어 발화 판별 모듈(1021), 호출명 및 서비스 호출 문형 추출 모듈(1023), 콜사인 해독 모듈(1025), 명령어 생성 및 부가 정보 생성 관리 모듈(1027) 및 일반 문장 NLU 모듈(1029)을 포함할 수 있다.
서버(1000)는 IoT 제어 발화 판별 모듈(1021)에서 사용자 발화가 외부 디바이스를 제어하기 위한 것인지 판단할 수 있다. 사용자 발화가 외부 디바이스를 제어하기 위한 것이 아닌 경우, 사용자 발화는 일반 문장 NLU 모듈(1029)에서 분석될 수 있다.

Claims (20)

  1. 외부 디바이스를 제어하는 서버에 있어서,
    통신부;
    프로세서;
    사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해(natural language understanding; NLU) 엔진을 저장하는 메모리; 및
    상기 메모리에 저장되고, 상기 프로세서에 의해 실행되는 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은,
    상기 외부 디바이스와 페어링된 페어링 디바이스로부터, 상기 통신부를 통해 상기 외부 디바이스를 제어하기 위한 사용자 발화 및 상기 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신하고,
    상기 외부 디바이스를 제어하기 위한 사용자 발화와 상기 적어도 하나의 외부 디바이스 정보에 기초하여, 상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하고,
    상기 결정된 자연어 이해 엔진을 이용하여, 상기 사용자 발화에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들(instructions)을 포함하는, 서버.
  2. 제1항에 있어서,
    상기 적어도 하나의 자연어 이해 엔진은, 상기 외부 디바이스의 제조사 및 상기 외부 디바이스의 종류 중 적어도 하나에 따라 서로 상이한, 서버.
  3. 제1항에 있어서,
    상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하기 위한 인스트럭션들은,
    상기 외부 디바이스를 제어하기 위한 사용자 발화로부터 상기 외부 디바이스의 호출명 부분과 상기 외부 디바이스의 서비스 호출 문형 부분을 추출하고,
    상기 외부 디바이스의 호출명 부분과 상기 적어도 하나의 외부 디바이스 정보에 기초하여, 상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스의 호출명 부분에 대응되는 적어도 하나의 자연어 이해 엔진을 결정하기 위한 인스트럭션을 포함하는, 서버.
  4. 제3항에 있어서,
    상기 사용자 발화에 기초하여 상기 적어도 하나의 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들은,
    상기 자연어 이해 엔진을 이용하여, 상기 추출된 외부 디바이스의 서비스 호출 문형 부분에 대응되는 자연어 이해 결과를 생성하고,
    상기 자연어 이해 결과에 기초하여, 상기 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들을 포함하는, 서버.
  5. 제4항에 있어서,
    상기 사용자 발화에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 인스트럭션들은,
    상기 자연어 이해 결과에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어에 대응되는 자연어를 생성하기 위한 인스트럭션들을 더 포함하는, 서버.
  6. 제1항에 있어서,
    상기 외부 디바이스 정보는
    상기 외부 디바이스 ID, 상기 외부 디바이스의 제조사 ID 및 적어도 하나의 상기 외부 디바이스의 호출명을 포함하는, 서버.
  7. 제1항에 있어서,
    상기 적어도 하나의 상기 외부 디바이스의 호출명은 상기 페어링 디바이스를 통한 사용자 입력에 의해 결정된, 서버.
  8. 제1항에 있어서, 상기 외부 디바이스가 근거리 통신에 의해 상기 페어링 장치에 페어링 될 때, 상기 하나 이상의 프로그램들은,
    상기 페어링 디바이스로, 상기 외부 디바이스의 ID 및 상기 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하기 위한 인스트럭션들을 더 포함하는, 서버.
  9. 제1항에 있어서, 상기 외부 디바이스가 원거리 통신에 의해 상기 페어링 장치에 페어링 될 때, 상기 하나 이상의 프로그램들은,
    상기 외부 디바이스로, 상기 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하기 위한 인스트럭션들을 더 포함하는, 서버.
  10. 제1항에 있어서,
    상기 외부 디바이스 ID는 상기 페어링 디바이스에서 부여하는 것인, 서버.
  11. 외부 디바이스를 제어하는 제어 방법에 있어서,
    사용자 발화에 대응되는 명령어를 생성하기 위한 적어도 하나의 자연어 이해(natural language understanding; NLU) 엔진을 저장하는 단계;
    상기 외부 디바이스와 페어링된 페어링 디바이스로부터, 상기 외부 디바이스를 제어하기 위한 사용자 발화 및 상기 페어링 디바이스에 등록된 적어도 하나의 외부 디바이스 정보를 수신하는 단계;
    상기 외부 디바이스를 제어하기 위한 사용자 발화와 상기 적어도 하나의 외부 디바이스 정보에 기초하여, 상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하는 단계; 및
    상기 결정된 자연어 이해 엔진을 이용하여, 상기 사용자 발화에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어를 생성하는 단계를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 적어도 하나의 자연어 이해 엔진은, 상기 외부 디바이스의 제조사 및 서비스 중 적어도 하나에 따라 서로 상이한, 제어 방법.
  13. 제11항에 있어서,
    상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스에 대응되는 자연어 이해 엔진을 결정하는 단계는,
    상기 외부 디바이스를 제어하기 위한 사용자 발화로부터 상기 외부 디바이스의 호출명 부분과 상기 외부 디바이스의 서비스 호출 문형 부분을 추출하는 단계; 및
    상기 외부 디바이스의 호출명 부분과 상기 적어도 하나의 외부 디바이스 정보에 기초하여, 상기 적어도 하나의 자연어 이해 엔진 중에서 상기 외부 디바이스의 호출명 부분에 대응되는 적어도 하나의 자연어 이해 엔진을 결정하기 위한 단계를 포함하는, 제어 방법.
  14. 제13항에 있어서,
    상기 사용자 발화에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어를 생성하는 단계는,
    상기 자연어 이해 엔진을 이용하여, 상기 추출된 외부 디바이스의 서비스 호출 문형 부분에 대응되는 자연어 이해 결과를 생성하는 단계; 및
    상기 자연어 이해 결과에 기초하여, 상기 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 단계를 포함하는, 제어 방법.
  15. 제14항에 있어서,
    상기 사용자 발화에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어를 생성하기 위한 단계는,
    상기 자연어 이해 결과에 기초하여 상기 외부 디바이스를 제어하기 위한 명령어에 대응되는 자연어를 생성하기 위한 인스트럭션들을 더 포함하는, 제어 방법.
  16. 제11항에 있어서,
    상기 외부 디바이스 정보는
    상기 외부 디바이스 ID, 상기 외부 디바이스의 제조사 ID 및 적어도 하나의 상기 외부 디바이스의 호출명을 포함하는, 제어 방법.
  17. 제11항에 있어서,
    상기 적어도 하나의 상기 외부 디바이스의 호출명은 상기 페어링 디바이스를 통한 사용자 입력에 의해 결정된, 제어 방법.
  18. 제11항에 있어서, 상기 외부 디바이스가 근거리 통신에 의해 상기 페어링 장치에 페어링 될 때, 상기 방법은,
    상기 페어링 디바이스로, 상기 외부 디바이스를 제어하기 위한 사용자 발화, 상기 외부 디바이스의 ID 및 상기 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하는 단계를 더 포함하는, 제어 방법.
  19. 제11항에 있어서, 상기 외부 디바이스가 원거리 통신에 의해 상기 페어링 장치에 페어링 될 때, 상기 방법은,
    상기 외부 디바이스로, 상기 생성된 외부 디바이스를 제어하기 위한 명령어를 송신하는 단계를 더 포함하는, 제어 방법.
  20. 제11항에 기재된 방법을 실행시키기 위한 프로그램이 저장된 컴퓨터로 판독 가능한 저장매체.
KR1020160115255A 2016-09-07 2016-09-07 외부 디바이스를 제어하는 서버 및 그 방법 KR102481881B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020160115255A KR102481881B1 (ko) 2016-09-07 2016-09-07 외부 디바이스를 제어하는 서버 및 그 방법
EP17849002.5A EP3469853B1 (en) 2016-09-07 2017-08-22 Server and method for controlling external device
JP2019534617A JP7038719B2 (ja) 2016-09-07 2017-08-22 外部デバイスを制御するサーバ及びその方法
PCT/KR2017/009143 WO2018048118A1 (en) 2016-09-07 2017-08-22 Server and method for controlling external device
US15/689,428 US10650822B2 (en) 2016-09-07 2017-08-29 Server and method for controlling external device
CN201710804249.1A CN107808672B (zh) 2016-09-07 2017-09-07 用于对外部设备进行控制的服务器和方法
CN202311813423.0A CN117746868A (zh) 2016-09-07 2017-09-07 用于对外部设备进行控制的服务器和方法
US16/844,686 US11482227B2 (en) 2016-09-07 2020-04-09 Server and method for controlling external device
KR1020220181068A KR20230005086A (ko) 2016-09-07 2022-12-21 외부 디바이스를 제어하는 서버 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160115255A KR102481881B1 (ko) 2016-09-07 2016-09-07 외부 디바이스를 제어하는 서버 및 그 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220181068A Division KR20230005086A (ko) 2016-09-07 2022-12-21 외부 디바이스를 제어하는 서버 및 그 방법

Publications (2)

Publication Number Publication Date
KR20180027950A KR20180027950A (ko) 2018-03-15
KR102481881B1 true KR102481881B1 (ko) 2022-12-27

Family

ID=61280885

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020160115255A KR102481881B1 (ko) 2016-09-07 2016-09-07 외부 디바이스를 제어하는 서버 및 그 방법
KR1020220181068A KR20230005086A (ko) 2016-09-07 2022-12-21 외부 디바이스를 제어하는 서버 및 그 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220181068A KR20230005086A (ko) 2016-09-07 2022-12-21 외부 디바이스를 제어하는 서버 및 그 방법

Country Status (6)

Country Link
US (2) US10650822B2 (ko)
EP (1) EP3469853B1 (ko)
JP (1) JP7038719B2 (ko)
KR (2) KR102481881B1 (ko)
CN (2) CN107808672B (ko)
WO (1) WO2018048118A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093917A (zh) 2015-09-28 2021-07-09 微软技术许可有限责任公司 统一的虚拟现实平台
JP7192208B2 (ja) * 2017-12-01 2022-12-20 ヤマハ株式会社 機器制御システム、デバイス、プログラム、及び機器制御方法
JP6962158B2 (ja) 2017-12-01 2021-11-05 ヤマハ株式会社 機器制御システム、機器制御方法、及びプログラム
JP7067082B2 (ja) 2018-01-24 2022-05-16 ヤマハ株式会社 機器制御システム、機器制御方法、及びプログラム
KR20190101630A (ko) * 2018-02-23 2019-09-02 삼성전자주식회사 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
JP7088703B2 (ja) * 2018-03-20 2022-06-21 シャープ株式会社 情報処理システム
KR20200052612A (ko) * 2018-11-07 2020-05-15 삼성전자주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
KR20200127823A (ko) * 2019-05-02 2020-11-11 삼성전자주식회사 허브 디바이스, 허브 디바이스 및 복수의 디바이스를 포함하는 멀티 디바이스 시스템 및 그 동작 방법
US20200349940A1 (en) * 2019-05-02 2020-11-05 Samsung Electronics Co., Ltd. Server for determining target device based on speech input of user and controlling target device, and operation method of the server
KR102309540B1 (ko) * 2019-05-02 2021-10-07 삼성전자주식회사 사용자의 입력 입력에 기초하여 타겟 디바이스를 결정하고, 타겟 디바이스를 제어하는 서버 및 그 동작 방법
WO2020222539A1 (en) * 2019-05-02 2020-11-05 Samsung Electronics Co., Ltd. Hub device, multi-device system including the hub device and plurality of devices, and method of operating the same
WO2020226617A1 (en) 2019-05-06 2020-11-12 Google Llc Invoking functions of agents via digital assistant applications using address templates
KR102487078B1 (ko) * 2019-11-01 2023-01-11 삼성전자주식회사 허브 디바이스, 허브 디바이스 및 복수의 디바이스를 포함하는 멀티 디바이스 시스템 및 그 동작 방법
WO2021086127A1 (en) 2019-11-01 2021-05-06 Samsung Electronics Co., Ltd. Hub device, multi-device system including the hub device and plurality of devices, and operating method of the hub device and multi-device system
US11790902B2 (en) * 2020-02-04 2023-10-17 Amazon Technologies, Inc. Speech-processing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150154976A1 (en) 2013-12-02 2015-06-04 Rawles Llc Natural Language Control of Secondary Device
US20160080165A1 (en) 2012-10-08 2016-03-17 Nant Holdings Ip, Llc Smart home automation systems and methods

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000021232A2 (en) * 1998-10-02 2000-04-13 International Business Machines Corporation Conversational browser and conversational systems
US7003463B1 (en) 1998-10-02 2006-02-21 International Business Machines Corporation System and method for providing network coordinated conversational services
US6654720B1 (en) * 2000-05-09 2003-11-25 International Business Machines Corporation Method and system for voice control enabling device in a service discovery network
JP2001319045A (ja) * 2000-05-11 2001-11-16 Matsushita Electric Works Ltd 音声マンマシンインタフェースを用いたホームエージェントシステム、及びプログラム記録媒体
US7398209B2 (en) * 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
ATE495609T1 (de) * 2002-11-29 2011-01-15 Freebit Co Ltd Server für routingverbindung mit einem clientgerät
KR20040075646A (ko) * 2003-02-22 2004-08-30 천두배 자연어 음성명령에 의한 음성인식 홈 오토메이션 시스템의제어방법
US7668990B2 (en) * 2003-03-14 2010-02-23 Openpeak Inc. Method of controlling a device to perform an activity-based or an experience-based operation
US20050187767A1 (en) * 2004-02-24 2005-08-25 Godden Kurt S. Dynamic N-best algorithm to reduce speech recognition errors
US8589156B2 (en) * 2004-07-12 2013-11-19 Hewlett-Packard Development Company, L.P. Allocation of speech recognition tasks and combination of results thereof
WO2006063118A2 (en) * 2004-12-07 2006-06-15 Pure Networks, Inc. Network management
DE102006018245A1 (de) * 2006-04-13 2007-10-18 Aurenz, Hans-Peter System zur Ansteuerung von Endgeräten
US8521511B2 (en) * 2007-06-18 2013-08-27 International Business Machines Corporation Information extraction in a natural language understanding system
KR101649911B1 (ko) 2010-01-04 2016-08-22 삼성전자 주식회사 확장 도메인을 이용한 대화 시스템 및 그 자연어 인식 방법
US9245525B2 (en) 2011-01-05 2016-01-26 Interactions Llc Automated speech recognition proxy system for natural language understanding
US8966125B2 (en) * 2012-01-19 2015-02-24 Worldvu Satellites Limited System and method for interconnection of diverse devices
US20130238326A1 (en) * 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
US10397013B1 (en) * 2012-04-11 2019-08-27 Google Llc User interfaces, systems and methods for configuring smart devices for interoperability with a smart hub device
KR102150289B1 (ko) * 2012-08-30 2020-09-01 삼성전자주식회사 사용자 단말에서 사용자 인터페이스 장치 및 이를 지원하는 방법
US9271111B2 (en) * 2012-12-14 2016-02-23 Amazon Technologies, Inc. Response endpoint selection
WO2014171144A1 (ja) * 2013-04-19 2014-10-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 家電機器の制御方法、家電機器制御システム、及びゲートウェイ
US20140379334A1 (en) * 2013-06-20 2014-12-25 Qnx Software Systems Limited Natural language understanding automatic speech recognition post processing
US20150149176A1 (en) * 2013-11-27 2015-05-28 At&T Intellectual Property I, L.P. System and method for training a classifier for natural language understanding
US10331763B2 (en) 2014-06-04 2019-06-25 Nuance Communications, Inc. NLU training with merged engine and user annotations
WO2016003419A1 (en) * 2014-06-30 2016-01-07 Nuance Communications, Inc. Mobile device for speech input and text delivery
US10817672B2 (en) * 2014-10-01 2020-10-27 Nuance Communications, Inc. Natural language understanding (NLU) processing based on user-specified interests
US9690542B2 (en) * 2014-12-22 2017-06-27 Microsoft Technology Licensing, Llc Scaling digital personal assistant agents across devices
US9984686B1 (en) * 2015-03-17 2018-05-29 Amazon Technologies, Inc. Mapping device capabilities to a predefined set
US9924342B2 (en) * 2015-06-16 2018-03-20 Google Llc Establishing a connection over a low power communication type
US10127906B1 (en) * 2015-12-28 2018-11-13 Amazon Technologies, Inc. Naming devices via voice commands
US10026401B1 (en) * 2015-12-28 2018-07-17 Amazon Technologies, Inc. Naming devices via voice commands
US10185544B1 (en) * 2015-12-28 2019-01-22 Amazon Technologies, Inc. Naming devices via voice commands
US9990176B1 (en) * 2016-06-28 2018-06-05 Amazon Technologies, Inc. Latency reduction for content playback
US10127908B1 (en) * 2016-11-11 2018-11-13 Amazon Technologies, Inc. Connected accessory for a voice-controlled device
CN107515944A (zh) * 2017-08-31 2017-12-26 广东美的制冷设备有限公司 基于人工智能的交互方法、用户终端、及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080165A1 (en) 2012-10-08 2016-03-17 Nant Holdings Ip, Llc Smart home automation systems and methods
US20150154976A1 (en) 2013-12-02 2015-06-04 Rawles Llc Natural Language Control of Secondary Device

Also Published As

Publication number Publication date
KR20180027950A (ko) 2018-03-15
EP3469853B1 (en) 2021-12-01
US20180068663A1 (en) 2018-03-08
CN107808672A (zh) 2018-03-16
CN107808672B (zh) 2024-01-12
US10650822B2 (en) 2020-05-12
JP7038719B2 (ja) 2022-03-18
EP3469853A4 (en) 2019-05-22
KR20230005086A (ko) 2023-01-09
US20200243093A1 (en) 2020-07-30
CN117746868A (zh) 2024-03-22
WO2018048118A1 (en) 2018-03-15
EP3469853A1 (en) 2019-04-17
US11482227B2 (en) 2022-10-25
JP2019537805A (ja) 2019-12-26

Similar Documents

Publication Publication Date Title
KR102481881B1 (ko) 외부 디바이스를 제어하는 서버 및 그 방법
US10403280B2 (en) Lamp device for inputting or outputting voice signal and method of driving the same
JP7198861B2 (ja) ホームオートメーションのためのインテリジェントアシスタント
EP3633947B1 (en) Electronic device and control method therefor
US11393474B2 (en) Electronic device managing plurality of intelligent agents and operation method thereof
US20210274001A1 (en) Electronic device, server and recording medium supporting task execution using external device
CN107748500A (zh) 用于控制智能设备的方法和装置
US10489515B2 (en) Method and apparatus for providing automatic speech translation service in face-to-face situation
JP2018129860A (ja) ネットワークシステム、および情報処理方法
KR20200074690A (ko) 전자 장치 및 이의 제어 방법
JP2018186472A (ja) 照明器具、照明システムおよび照明システムのペアリング方法
JP2018535464A (ja) 多国語支援客室用サービス要請装置を用いたサービス要請システム及びサービス要請方法
US20210279961A1 (en) Information providing device, terminal device, display system, storage medium, and information providing method
WO2016064155A2 (ko) Sns를 이용한 감성 조명 제어 시스템 및 방법
US7966030B2 (en) Push-to-talk over cellular system, portable terminal, server apparatus, pointer display method, and program thereof
US9478078B2 (en) Inspection managing apparatus, inspection system, and inspection method for integrated multimedia of vehicle
KR20170103559A (ko) 전자장치, 어플리케이션 실행 시스템 및 그 제어방법
US20210005200A1 (en) Dialog device
KR20220017057A (ko) IoT 환경에서 타겟 전자 장치를 제어하기 위한 전자 장치 및 그에 관한 방법
CN112640476A (zh) 电子装置及其控制方法
US20240111848A1 (en) Electronic device and control method therefor
US12027161B2 (en) Dialogue device
US20200273455A1 (en) System for controlling application devices by using dialogue or social media
KR20240026820A (ko) 전자 장치 및 전자 장치의 인식 모델 관리 방법
JP2021072519A (ja) 無線通信装置、無線通信システム、情報端末、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
GRNT Written decision to grant