KR20210014053A - System and method for registering device for voice assistant service - Google Patents
System and method for registering device for voice assistant service Download PDFInfo
- Publication number
- KR20210014053A KR20210014053A KR1020190125679A KR20190125679A KR20210014053A KR 20210014053 A KR20210014053 A KR 20210014053A KR 1020190125679 A KR1020190125679 A KR 1020190125679A KR 20190125679 A KR20190125679 A KR 20190125679A KR 20210014053 A KR20210014053 A KR 20210014053A
- Authority
- KR
- South Korea
- Prior art keywords
- functions
- function
- new device
- speech data
- voice assistant
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 672
- 230000009471 action Effects 0.000 claims abstract description 149
- 238000004891 communication Methods 0.000 claims description 40
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 6
- 238000013473 artificial intelligence Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 39
- 230000004044 response Effects 0.000 description 30
- 238000007726 management method Methods 0.000 description 29
- 239000002775 capsule Substances 0.000 description 28
- 238000001816 cooling Methods 0.000 description 22
- 238000001035 drying Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000007791 dehumidification Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
본 개시는 보이스 어시스턴트 서비스를 위한 신규 디바이스를 등록하는 시스템 및 방법에 관한 것이다.The present disclosure relates to a system and method for registering a new device for voice assistant service.
멀티 미디어 기술 및 네트워크 기술이 발전함에 따라, 사용자는 디바이스를 이용하여 다양한 서비스를 제공받을 수 있게 되었다. 특히, 음성 인식 기술이 발전함에 따라, 사용자는 디바이스에 음성(예를 들어, 발화)을 입력하고, 서비스 제공 에이전트를 통해 음성 입력에 따른 응답 메시지를 수신할 수 있게 되었다. With the development of multimedia technology and network technology, users can receive various services using devices. In particular, with the development of speech recognition technology, a user can input a voice (for example, speech) to a device and receive a response message according to the voice input through a service providing agent.
보이스 어시스턴트 서비스에서 사용자의 음성 입력에 포함된 의도를 파악할 때, 인공 지능(Artificial Intelligence, AI) 기술이 활용될 수 있으며, 룰(Rule) 기반의 자연어 이해 기술(Natural Language Understanding, NLU)이 활용될 수도 있다.When determining the intention included in the user's voice input in the voice assistant service, artificial intelligence (AI) technology can be used, and rule-based natural language understanding technology (NLU) can be used. May be.
하지만, 보이스 어시스턴트 서비스를 제공함에 있어서 복수의 디바이스를 포함하는 홈 네트워크 환경에서 신규의 디바이스가 추가되는 경우에, 신규의 디바이스의 기능들을 고려하여 사용자의 음성 입력에 따른 디바이스 제어를 제공하기 어려운 문제점이 있었다. 특히, 신규의 디바이스가 보이스 어시스턴트 서비스에 미리 등록된 디바이스가 아닌 경우에도, 신규의 디바이스의 기능들을 보이스 어시스턴트 서비스에 효과적으로 반영할 필요가 있다.However, when a new device is added in a home network environment including a plurality of devices in providing the voice assistant service, it is difficult to provide device control according to the user's voice input in consideration of the functions of the new device. there was. In particular, even if the new device is not a device registered in advance in the voice assistant service, it is necessary to effectively reflect the functions of the new device in the voice assistant service.
본 개시의 일 실시예는, 보이스 어시스턴트 서비스를 위한 기등록된 디바이스의 기능들을 이용하여 신규 디바이스를 등록할 수 있는 시스템 및 방법을 제공할 수 있다.An embodiment of the present disclosure may provide a system and method capable of registering a new device using functions of a previously registered device for a voice assistant service.
또한, 본 개시의 일 실시예는, 적어도 하나의 기등록된 디바이스의 기능들을 조합 또는 삭제함으로써 신규 디바이스의 기능을 등록할 수 있는 시스템 및 방법을 제공할 수 있다.In addition, an embodiment of the present disclosure may provide a system and method capable of registering a function of a new device by combining or deleting functions of at least one previously registered device.
또한, 본 개시의 일 실시예는, 기등록된 디바이스의 기능들에 관련된 발화 데이터를 이용하여 신규 디바이스를 등록할 수 있는 시스템 및 방법을 제공할 수 있다.In addition, an embodiment of the present disclosure may provide a system and method for registering a new device by using speech data related to functions of a previously registered device.
또한, 본 개시의 일 실시예는, 기등록된 디바이스에 대한 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스의 기능들에 관련된 발화 데이터 및 액션 데이터를 획득할 수 있는 시스템 및 방법을 제공할 수 있다.In addition, an embodiment of the present disclosure may provide a system and method capable of obtaining utterance data and action data related to functions of a new device by using utterance data and action data for a previously registered device. .
또한, 본 개시의 일 실시예는, 신규 디바이스의 기능들에 관련된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스에 특화된 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있는 시스템 및 방법을 제공할 수 있다.In addition, an embodiment of the present disclosure may provide a system and method capable of generating or updating a voice assistant model specialized for a new device by using speech data and action data related to functions of a new device.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은 적어도 하나의 기등록된 디바이스의 기능들을 나타내는 명세 정보(specification)를 획득하는 동작; 상기 명세 정보에 기초하여 상기 기등록된 디바이스의 기능들 및 상기 신규 디바이스의 기능들을 비교하는 동작; 상기 비교 결과에 기초하여, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들에 대응되는 기능들을 식별하는 동작; 상기 식별된 기능들 중 적어도 일부에 관련된 기 등록된 발화 데이터를 획득하는 동작; 상기 식별된 기능들 및 상기 획득된 기등록된 발화 데이터에 기초하여, 상기 신규 디바이스에 대한 액션 데이터를 생성하는 동작; 및 상기 획득된 발화 데이터 및 상기 생성된 액션 데이터를 상기 신규 디바이스와 연관하여 저장하는 동작;을 포함하며, 상기 액션 데이터는, 상기 획득된 발화 데이터에 대응되는 상기 신규 디바이스의 일련의 세부 기능들에 관한 데이터를 포함하는 것인, 서버가 보이스 어시스턴트 서비스를 위한 신규 디바이스를 등록하는 방법을 제공할 수 있다.As a technical means for achieving the above technical problem, a first aspect of the present disclosure includes an operation of obtaining specification information indicating functions of at least one pre-registered device; Comparing functions of the previously registered device and functions of the new device based on the specification information; Identifying functions corresponding to functions of the previously registered device among functions of the new device based on the comparison result; Obtaining pre-registered speech data related to at least some of the identified functions; Generating action data for the new device based on the identified functions and the acquired pre-registered speech data; And storing the obtained speech data and the generated action data in association with the new device, wherein the action data is included in a series of detailed functions of the new device corresponding to the obtained speech data. The server may provide a method of registering a new device for voice assistant service, including data relating to it.
또한, 본 개시의 제2 측면은 통신 인터페이스; 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고, 상기 프로세서는, 적어도 하나의 기등록된 디바이스의 기능들을 나타내는 명세 정보(specification)를 획득하고, 상기 명세 정보에 기초하여 상기 기등록된 디바이스의 기능들 및 상기 신규 디바이스의 기능들을 비교하고, 상기 비교 결과에 기초하여, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들에 대응되는 기능들을 식별하고, 상기 식별된 기능들 중 적어도 일부에 관련된 기 등록된 발화 데이터를 획득하고, 상기 식별된 기능들 및 상기 획득된 기등록된 발화 데이터에 기초하여, 상기 신규 디바이스에 대한 액션 데이터를 생성하고, 상기 획득된 발화 데이터 및 상기 생성된 액션 데이터를 상기 신규 디바이스와 연관하여 소정의 DB(DataBase)에 저장하며, 상기 액션 데이터는, 상기 획득된 발화 데이터에 대응되는 상기 신규 디바이스의 일련의 세부 기능들에 관한 데이터를 포함하는 것인, 보이스 어시스턴트 서비스를 위한 신규 디바이스를 등록하는 서버를 제공할 수 있다.In addition, a second aspect of the present disclosure is a communication interface; A memory storing a program including one or more instructions; And a processor that executes one or more instructions of the program stored in the memory. Including, wherein the processor obtains specification information representing functions of at least one pre-registered device, and compares functions of the pre-registered device and functions of the new device based on the specification information And, based on the comparison result, identify functions corresponding to functions of the previously registered device among functions of the new device, and acquire pre-registered speech data related to at least some of the identified functions, and , On the basis of the identified functions and the acquired pre-registered speech data, action data for the new device is generated, and the obtained speech data and the generated action data are associated with the new device. Server for registering a new device for voice assistant service, which is stored in a database (DB), and the action data includes data on a series of detailed functions of the new device corresponding to the acquired speech data Can provide.
또한, 본 개시의 제3 측면은 제1 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.In addition, a third aspect of the present disclosure may provide a computer-readable recording medium in which a program for executing the method of the first aspect on a computer is recorded.
도 1은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서비스를 제공하는 시스템의 개요도이다.
도 2는 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버가 기등록된 디바이스의 기능에 기초하여 신규 디바이스를 등록하는 예시를 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버(3000)가 신규 디바이스를 등록하는 방법의 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 서버가 기설정된 디바이스의 기능 및 신규 디바이스의 기능을 비교하는 방법의 흐름도이다.
도 5(a)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 및 신규 디바이스의 기능을 비교하는 예시를 나타내는 도면이다.
도 5(b)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 세트 및 신규 디바이스의 기능을 비교하는 예시를 나타내는 도면이다.
도 5(c)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 및 기능 세트의 조합을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.
도 5(d)는 본 개시의 일 실시예에 따른 기등록된 복수의 디바이스의 기능 및 기능 세트의 조합을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.
도 5(e)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능들 중 일부를 삭제한 이후에 남은 기능을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버가 신규 디바이스의 기능들 중에서 기등록된 디바이스의 기능과 상이한 기능에 관련된 발화 데이터 및 액션 데이터를 생성하는 방법의 흐름도이다.
도 7(a)는 본 개시의 일 실시예에 따른 신규 디바이스의 기능에 관련된 발화 데이터 및 액션 데이터를 생성하기 위해 보이스 어시스턴트 서버로부터 출력되는 질의의 예시를 나타내는 도면이다.
도 7(b)는 본 개시의 일 실시예에 따른 신규 디바이스의 기능에 관련된 발화 데이터 및 액션 데이터를 생성하기 위해 발화문을 추천하는 질의가 출력되는 예시를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버(3000)가 발화 데이터를 확장하는 방법의 흐름도이다.
도 9(a)는 본 개시의 일 실시예에 따른 발화 데이터로부터 유사 발화 데이터가 생성되는 예시를 나타내는 도면이다.
도 9(b)는 본 개시의 일 실시예에 따른 대표 발화문 및 유사 발화문이 액션 데이터에 매칭되는 예시를 나타내는 도면이다.
도 10(a)는 본 개시의 일 실시예에 따른 발화 데이터로부터 유사 발화 데이터가 생성되는 예시를 나타내는 도면이다.
도 10(b)는 본 개시의 일 실시예에 따른 대표 발화문 및 유사 발화문이 액션 데이터에 매칭되는 예시를 나타내는 도면이다.
도 11(a)는 본 개시의 일 실시예에 따른 발화 데이터의 예시를 나타내는 도면이다.
도 11(b)는 본 개시의 일 실시예에 따른 발화 데이터의 예시를 나타내는 도면이다.
도 12는 본 개시의 일 실시예에 따른 디바이스의 명세 정보의 예시를 나타내는 도면이다.
도 13은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버의 블록도이다.
도 14는 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버의 다른 예시를 나타내는 도면이다.
도 15는 본 개시의 일 실시예에 따른 액션 플랜 관리 모델을 도시한 개념도이다.
도 16은 본 개시의 일 실시예에 따른 액션 플랜 관리 모델에 저장된 캡슐 데이터베이스를 도시한 도면이다.
도 17은 본 개시의 일 실시예에 따른 IoT 클라우드 서버의 블록도이다.
도 18은 본 개시의 일 실시예에 따른 클라이언트 디바이스의 블록도이다.1 is a schematic diagram of a system for providing a voice assistant service according to an embodiment of the present disclosure.
2 is a diagram illustrating an example in which a voice assistant server according to an embodiment of the present disclosure registers a new device based on a function of a previously registered device.
3 is a flowchart of a method for registering a new device by the
4 is a flowchart illustrating a method of comparing, by a server, a function of a preset device and a function of a new device according to an embodiment of the present disclosure.
5A is a diagram illustrating an example of comparing a function of a previously registered device and a function of a new device according to an embodiment of the present disclosure.
5(b) is a diagram illustrating an example of comparing a function set of a previously registered device and a function of a new device according to an embodiment of the present disclosure.
5C is a diagram illustrating an example of comparing a combination of a function and a function set of a previously registered device with a function of a new device according to an embodiment of the present disclosure.
5(d) is a diagram illustrating an example of comparing a combination of a function and a function set of a plurality of previously registered devices with a function of a new device according to an embodiment of the present disclosure.
5(e) is a diagram illustrating an example of comparing a function of a new device with a function remaining after some of the functions of a previously registered device according to an embodiment of the present disclosure are deleted.
6 is a flowchart of a method for generating, by a voice assistant server, utterance data and action data related to a function different from a function of a previously registered device among functions of a new device according to an embodiment of the present disclosure.
7A is a diagram illustrating an example of a query output from a voice assistant server to generate speech data and action data related to a function of a new device according to an embodiment of the present disclosure.
7B is a diagram illustrating an example in which a query recommending a speech sentence is output to generate speech data and action data related to a function of a new device according to an embodiment of the present disclosure.
8 is a flowchart of a method for expanding speech data by the
9A is a diagram illustrating an example in which similar speech data is generated from speech data according to an embodiment of the present disclosure.
9B is a diagram illustrating an example in which a representative speech and a similar speech are matched with action data according to an embodiment of the present disclosure.
10A is a diagram illustrating an example in which similar speech data is generated from speech data according to an embodiment of the present disclosure.
10B is a diagram illustrating an example in which a representative speech and a similar speech are matched with action data according to an embodiment of the present disclosure.
11A is a diagram illustrating an example of speech data according to an embodiment of the present disclosure.
11(b) is a diagram illustrating an example of speech data according to an embodiment of the present disclosure.
12 is a diagram illustrating an example of specification information of a device according to an embodiment of the present disclosure.
13 is a block diagram of a voice assistant server according to an embodiment of the present disclosure.
14 is a diagram illustrating another example of a voice assistant server according to an embodiment of the present disclosure.
15 is a conceptual diagram illustrating an action plan management model according to an embodiment of the present disclosure.
16 is a diagram illustrating a capsule database stored in an action plan management model according to an embodiment of the present disclosure.
17 is a block diagram of an IoT cloud server according to an embodiment of the present disclosure.
18 is a block diagram of a client device according to an embodiment of the present disclosure.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts not related to the description are omitted in order to clearly describe the present disclosure, and similar reference numerals are attached to similar parts throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to be "connected" to another part, this includes not only "directly connected" but also "electrically connected" with another element interposed therebetween. . In addition, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless specifically stated to the contrary.
본 개시에 따른 인공 지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공 지능 전용 프로세서인 경우, 인공 지능 전용 프로세서는, 특정 인공 지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. Functions related to artificial intelligence according to the present disclosure are operated through a processor and a memory. The processor may be composed of one or a plurality of processors. In this case, one or more processors may be a general-purpose processor such as a CPU, AP, or Digital Signal Processor (DSP), a graphics-only processor such as a GPU, a Vision Processing Unit (VPU), or an artificial intelligence-only processor such as an NPU. One or more processors control to process input data according to a predefined operation rule or an artificial intelligence model stored in the memory. Alternatively, when one or more processors are dedicated artificial intelligence processors, the artificial intelligence dedicated processor may be designed with a hardware structure specialized for processing a specific artificial intelligence model.
기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공 지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.A predefined motion rule or an artificial intelligence model is characterized by being created through learning. Here, to be made through learning means that the basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined motion rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created. Means Jim. Such learning may be performed in the device itself performing artificial intelligence according to the present disclosure, or may be performed through a separate server and/or system. Examples of the learning algorithm include supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but are not limited to the above-described examples.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공 지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공 지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.The artificial intelligence model may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between the operation result of a previous layer and a plurality of weights. The plurality of weights of the plurality of neural network layers can be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated to reduce or minimize a loss value or a cost value acquired from the artificial intelligence model during the learning process. The artificial neural network may include a deep neural network (DNN), for example, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network), or deep Q-Networks (Deep Q-Networks), and the like, but is not limited to the above-described example.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.
도 1은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서비스를 제공하는 시스템의 개요도이다.1 is a schematic diagram of a system for providing a voice assistant service according to an embodiment of the present disclosure.
도 1을 참조하면, 본 개시의 일 실시예에 따른 보이스 어시스턴트 서비스를 제공하는 시스템은, 클라이언트 디바이스(1000), 적어도 하나의 디바이스(2000), 보이스 어시스턴트 서버(3000) 및 IoT(Internet Of Things) 클라우드 서버(4000)를 포함할 수 있다. 적어도 하나의 디바이스(2000)는 보이스 어시스턴트 서비스를 위하여 보이스 어시스턴트 서버(3000) 또는 IoT 클라우드 서버(4000)에 미리 등록된 디바이스일 수 있다.Referring to FIG. 1, a system for providing a voice assistant service according to an embodiment of the present disclosure includes a
클라이언트 디바이스(1000)는 사용자로부터 음성 입력(예를 들어, 발화)을 수신할 수 있다. 일 실시예에서, 클라이언트 디바이스(1000)는 음성 인식 모듈을 포함할 수 있다. 일 실시예에서, 클라이언트 디바이스(1000)는 제한적인 기능을 갖는 음성 인식 모듈을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(1000)는 지정된 음성 입력(예를 들어, ‘하이 빅스비’, ‘오케이 구글’등과 같은 웨이크 업 입력)을 감지하는 기능 또는 일부 음성 입력으로부터 획득한 음성 신호를 전처리하는 기능을 갖는 음성 인식 모듈을 포함할 수 있다. 클라이언트 디바이스(1000)는 인공 지능 스피커(AI speaker)일 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에서, 적어도 하나의 디바이스(2000) 중 일부가 클라이언트 디바이스(1000)일 수 있다. The
적어도 하나의 디바이스(2000)는 보이스 어시스턴트 서버(3000) 및/또는 IoT 클라우드 서버(4000)로부터의 제어 명령에 따라 특정 동작을 수행하는 타겟 디바이스일 수 있다. 적어도 하나의 디바이스(2000)는, 클라이언트 디바이스(1000)가 수신한 사용자의 음성 입력에 기초하여, 특정 동작을 수행하도록 제어될 수 있다. 일 실시예에서, 적어도 하나의 디바이스(2000) 중 적어도 일부는, 보이스 어시스턴트 서버(3000) 및/또는 IoT 클라우드 서버(4000)로부터 제어 명령을 받지 않고, 클라이언트 디바이스(1000)로부터 제어 명령을 수신할 수도 있다.The at least one
클라이언트 디바이스(1000)는 마이크를 통해 사용자의 음성 입력을 수신하고, 수신된 음성 입력을 보이스 어시스턴트 서버(3000)에 전송할 수 있다. 일 실시예에서, 클라이언트 디바이스(1000)는 수신된 음성 입력으로부터 음성 신호를 획득하고, 음성 신호를 보이스 어시스턴트 서버(3000)에게 전송할 수 있다.The
보이스 어시스턴트 서버(3000)는 클라이언트 디바이스(1000)로부터 사용자의 음성 입력을 수신하고, 수신된 음성 입력을 해석함으로써, 적어도 하나의 디바이스(2000) 중에서 사용자의 의도에 따른 동작들을 수행할 타겟 디바이스를 선택하고, 선택된 타겟 디바이스 및 타겟 디바이스가 수행할 동작들에 관한 정보를 IoT 클라우드 서버(4000) 또는 타겟 디바이스에게 제공할 수 있다.The
IoT 클라우드 서버(4000)는 보이스 어시스턴트 서비스를 위한 디바이스(2000)에 관한 정보를 등록하고 관리할 수 있으며, 보이스 어시스턴트 서버(3000)에게 보이스 어시스턴트 서비스를 위한 디바이스 정보를 제공할 수 있다. 디바이스 정보는, 보이스 어시스턴트 서비스를 제공하는데 이용되는 디바이스에 관련된 정보로서, 예를 들어, 디바이스의 식별 정보(디바이스 id 정보), 기능 수행 능력 정보(capability), 위치 정보, 및 상태 정보를 포함할 수 있다. 또한, IoT 클라우드 서버(4000)는 보이스 어시스턴트 서버(3000)로부터 타겟 디바이스 및 타겟 디바이스가 수행할 동작들에 관한 정보를 수신하고, 타겟 디바이스에게 동작들의 제어를 위한 제어 정보를 제공할 수 있다.The
보이스 어시스턴트 서비스를 위한 신규 디바이스(2900)가 추가되는 경우에, 보이스 어시스턴트 서버(3000)는, 기등록된 디바이스(2000)의 기능, 발화 데이터, 및 발화 데이터에 대응되는 동작들을 활용하여 신규 디바이스(2900)에 관한 발화 데이터 및 액션 데이터를 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)에 관한 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 관하여 이용될 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다. When a
발화 데이터는, 보이스 어시스턴트 서비스를 제공받기 위하여 사용자가 발화하는 음성에 관련된 데이터로서, 사용자의 발화를 나타내는 데이터일 수 있다. 발화 데이터는 디바이스(2000)의 동작과 관련된 사용자의 의도를 해석하는데 이용되는 데이터일 수 있다. 발화 데이터는, 예를 들어, 텍스트 형식의 발화문 또는 NLU 모델의 출력 값의 형식을 가지는 발화 파라미터 중 적어도 하나를 포함할 수 있다. 발화 파라미터는, NLU 모델로부터 출력되는 데이터로서, 인텐트 및 파라미터를 포함할 수 있다. 인텐트는 NLU 모델을 이용하여 텍스트를 해석함으로써 결정되는 정보로서, 사용자의 발화 의도를 나타낼 수 있다. 인텐트는, 예를 들어, 사용자가 의도하는 디바이스의 동작을 나타내는 정보일 수 있다. 인텐트는, 사용자의 발화 의도를 나타내는 정보(이하, 의도 정보)뿐 아니라, 사용자의 의도를 나타내는 정보에 대응하는 수치 값을 포함할 수 있다. 수치 값은, 텍스트가 특정 의도를 나타내는 정보와 관련될 확률을 나타낼 수 있다. NLU 모델을 이용하여 텍스트를 해석한 결과, 사용자의 의도를 나타내는 정보가 복수 개 획득되는 경우, 각 의도 정보에 대응되는 수치 값이 최대인 의도 정보가 인텐트로 결정될 수 있다. 또한, 파라미터는 인텐트와 관련된 디바이스의 세부 동작들을 결정하기 위한 변수(variable) 정보일 수 있다. 파라미터는 인텐트와 관련된 정보이며, 하나의 인텐트에 복수 종류의 파라미터가 대응될 수 있다. 파라미터는 디바이스의 동작 정보를 결정하기 위한 변수 정보뿐만 아니라, 텍스트가 그 변수 정보와 관련될 확률을 나타내는 수치 값을 포함할 수 있다. 자연어 이해 모델을 이용하여 텍스트를 해석한 결과, 파라미터를 나타내는 변수 정보가 복수 개 획득될 수 있다. 이 경우, 각 변수 정보에 대응되는 수치 값이 최대인 변수 정보가 파라미터로 결정될 수 있다.The speech data is data related to the voice spoken by the user in order to receive the voice assistant service, and may be data representing the speech of the user. The speech data may be data used to interpret the user's intention related to the operation of the
액션 데이터는, 소정의 발화 데이터에 대응되는 디바이스(2000)의 일련의 세부 동작들에 관한 데이터일 수 있다. 예를 들어, 액션 데이터는, 소정의 발화 데이터에 대응하여 디바이스가 수행할 세부 동작들, 각 세부 동작들과 다른 세부 동작과의 연관 관계, 및 세부 동작들의 실행 순서에 관련된 정보를 포함할 수 있다. 세부 동작과 다른 세부 동작과의 연관 관계는, 하나의 세부 동작을 실행하기 위해서 그 세부 동작을 실행하기 전에 실행되어야 할 다른 세부 동작에 대한 정보를 포함한다. 예를 들어, 수행할 동작이 “음악 재생”인 경우, “전원 온(on)”은 “음악 재생” 동작 이전에 실행되어야 하는 다른 세부 동작이 될 수 있다. 또한, 액션 데이터는 예를 들어, 특정 동작의 수행을 위하여 타겟 디바이스가 실행해야 할 기능들, 기능들의 실행 순서, 기능들을 실행하기 위하여 필요한 입력 값 및 기능들의 실행 결과로서 출력되는 출력 값을 포함할 수 있으나, 이에 한정되지 않는다.The action data may be data regarding a series of detailed operations of the
또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)가 식별되면, 신규 디바이스(2900)의 기능 정보를 획득하고, 기 등록된 디바이스(2000)의 기능 정보와 신규 디바이스(2900)의 기능 정보를 비교함으로써, 신규 디바이스(2900)의 기능과 관련하여 활용 가능한 기 등록된 발화 데이터를 결정할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는, 기 등록된 발화 데이터 및 이에 대응되는 기능들을 편집하고, 편집된 발화 데이터 및 기능들에 관한 데이터를 이용하여, 액션 데이터를 생성할 수 있다.In addition, when the
디바이스(2000)는, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 디바이스(2000)는 통신 기능 및 데이터 프로세싱 기능을 구비한 전등, 에어컨, TV, 로봇 청소기, 세탁기, 체중계, 냉장고, 셋톱 박스(set-top box), 홈 오토메이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), 게임 콘솔, 전자 키, 캠코더(camcorder), 또는 전자 액자 등의 가전 기기일 수 있다. 또한, 디바이스(2000)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 그러나, 이에 제한되지 않으며, 디바이스(1000)는 보이스 어시스턴트 서버(3000) 및/또는 IoT 클라우드 서버(4000)로부터 네트워크를 통하여 데이터를 송수신할 수 있는 모든 종류의 기기를 포함할 수 있다.The
네트워크(200)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함한다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.The network 200 includes a local area network (LAN), a wide area network (WAN), a value added network (VAN), a mobile radio communication network, a satellite communication network, and a mutual It includes a combination, and is a data communication network in a comprehensive meaning that enables each network member shown in FIG. 1 to communicate with each other smoothly, and includes a wired Internet, a wireless Internet, and a mobile wireless communication network. Wireless communication is, for example, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy (Bluetooth low energy), Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, infrared Data Association). ), NFC (Near Field Communication), and the like, but are not limited thereto.
도 2는 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버가 기등록된 디바이스의 기능에 기초하여 신규 디바이스를 등록하는 예시를 나타내는 도면이다.2 is a diagram illustrating an example in which a voice assistant server according to an embodiment of the present disclosure registers a new device based on a function of a previously registered device.
도 2를 참조하면, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)인 에어컨 B가 식별되면 에어컨 B의 기능 정보를 획득하고, 기 등록된 디바이스(2000)인 에어컨 A의 기능 정보 및 제습 장치 A의 기능 정보를 에어컨 B의 기능 정보와 비교할 수 있다.Referring to FIG. 2, when the
보이스 어시스턴트 서버(3000)는 에어컨 B의 기능들을 에어컨 A의 기능들 및 제습 장치 A의 기능들과 비교할 수 있으며, 에어컨 B의 기능들 중에서 에어컨 A의 기능들과 제습 장치 A의 기능들과 동일 또는 유사한 기능들을 식별할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 에어컨 B의 기능들 중 “전원 ON/OFF”, “냉방 모드 ON/OFF”, “제습 모드 ON/OFF”, “온도 UP/DOWN” 및 “습도 조절”이, 에어컨 A의 기능들 및 제습 장치 A의 기능들과 일치함을 식별할 수 있다.The
보이스 어시스턴트 서버(3000)는 식별된 기능들 중 적어도 하나에 대응되는 발화 데이터들을 결정하고, 결정된 발화 데이터에 대응되는 액션 데이터를 생성할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는, 에어컨 A의 “전원 ON”에 대응되는 발화 데이터인 “전원 켜.”, 에어컨 A의 “냉방 모드 ON, 온도 DOWN”에 대응되는 발화 데이터인 “온도 낮춰.”, 에어컨 A의 “냉방 모드 ON, 온도 UP”에 대응되는 발화 데이터인 “온도 높여.”, 제습 장치 A의 “전원 ON”에 대응되는 발화 데이터인 “전원 켜”, 및 제습 장치 A의 “습도 DOWN”에 대응되는 발화 데이터인 “습도 낮춰”를 이용하여, 에어컨 B의 기능들 중 적어도 하나에 대응되는 발화 데이터를 생성 또는 편집할 수 있다.The
도 3은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버(3000)가 신규 디바이스를 등록하는 방법의 흐름도이다.3 is a flowchart of a method for registering a new device by the
동작 S300에서 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900) 및 기등록된 디바이스(2000)의 기능들에 관한 기능 정보를 획득할 수 있다. 보이스 어시스턴트 서비스를 위한 시스템에 신규 디바이스(2900)가 추가되면, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900) 또는 신규 디바이스(2900)와 연결된 외부 서버(미도시)로부터 획득한 신규 디바이스(2900)의 명세 정보(specification)로부터 신규 디바이스(2900)에 의해 지원되는 기능들을 식별할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 도 12에서와 같이, 디바이스의 식별자, 수행 가능한 기능의 명칭, 수행 가능한 기능에 대한 설명 및 기능 수행에 필요한 인자에 대한 정보를 포함하는 명세 정보로부터 신규 디바이스(2900)에 의해 지원되는 기능을 식별할 수 있다.In operation S300, the
또한, 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 명세 정보(specification)로부터 디바이스(2000)의 기능들을 식별할 수 있다. 보이스 어시스턴트 서버(3000)는 보이스 어시스턴트 서버(3000)의 DB(미도시)에 저장된 명세 정보로부터 디바이스(2000)의 기능들을 식별할 수 있다. 또는, 보이스 어시스턴트 서버(3000)는 IoT 클라우드 서버(4000)의 DB(미도시)에 저장된 디바이스(2000)의 명세 정보를 IoT 클라우드 서버(4000)로부터 수신하고, 수신된 명세 정보로부터 디바이스(2000)의 기능들을 식별할 수 있다. 기등록된 디바이스(2000)의 명세 정보는 신규 디바이스(2900)의 명세 정보와 같이, 디바이스의 식별자, 수행 가능한 기능의 명칭, 수행 가능한 기능에 대한 설명 및 기능 수행에 필요한 인자에 대한 정보를 포함할 수 있다.In addition, the
동작 S310에서 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다. 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능을 비교함으로써, 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 동일 또는 유사한 기능을 식별할 수 있다.In operation S310, the
보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 명세 정보로부터 신규 디바이스(2900)에 의해 지원되는 기능을 나타내는 명칭을 식별하고, 식별된 명칭이 기등록된 디바이스(2000)에 의해 지원되는 기능의 명칭과 동일 또는 유사한 지를 판단할 수 있다. 이 경우, 보이스 어시스턴트 서버(3000)는 소정 기능을 나타내는 명칭 및 유사어들에 관한 정보를 미리 저장할 수 있으며, 저장된 유사어 정보에 기초하여 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다.The
또한, 보이스 어시스턴트 서버(3000)는 발화 데이터를 참고하여 기능의 동일 유사 여부를 판단할 수 있다. 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 관련된 발화 데이터를 이용하여, 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. 이 경우, 보이스 어시스턴트 서버(3000)는 발화 데이터 내에 포함된 단어들의 의미에 기초하여 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. Also, the
보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 단일 기능과 신규 디바이스(2900)의 단일 기능이 동일 또는 유사한 지를 판단할 수 있다. 단일 기능은, 예를 들어, ‘전원 ON’, ‘전원 OFF’, ‘온도 UP’ 및 ‘온도 DOWN’과 같은 하나의 기능일 수 있다. 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능 세트와 신규 디바이스(2900)의 기능 세트가 동일 또는 유사한 지를 판단할 수 있다. 기능 세트는 단일 기능들의 세트이며, 예를 들어, ‘전원 ON + 온도 UP’, ‘온도 DOWN + 습도 DOWM’과 같은 기능들의 조합일 수 있다.The
동작 S310에서 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사하다고 판단되면, 동작 S320에서 보이스 어시스턴트 서버(3000)는 동일 또는 유사한 기능들에 관련된 기등록된 발화 데이터를 획득할 수 있다.If it is determined in operation S310 that the function of the previously registered
보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능들 중에서 신규 디바이스(2900)의 기능과 동일 또는 유사하다고 판단된 기능에 대응되는 발화 데이터를 DB(미도시)로부터 추출할 수 있다. The
보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능 세트들 중에서 신규 디바이스(2900)의 기능과 동일 또는 유사하다고 판단된 기능 세트에 대응되는 발화 데이터를 DB(미도시)로부터 추출할 수 있다.The
이 경우, 기등록된 디바이스(2000)의 기능에 대응되는 발화 데이터, 및 기등록된 디바이스(2000)의 기능 세트에 대응되는 발화 데이터는, DB(미도시)에 미리 저장되어 있을 수 있다.In this case, speech data corresponding to a function of the previously registered
한편, 보이스 어시스턴트 서버(3000)는 동일 또는 유사하다고 판단된 기능 및 기능 세트를 편집하고 편집된 기능들에 대응되는 발화 데이터를 생성할 수도 있다. 보이스 어시스턴트 서버(3000)는 동일 또는 유사하다고 판단된 기능들을 조합하고, 조합된 기능들에 대응되는 발화 데이터를 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 동일 또는 유사하다고 판단된 기능 및 기능 세트를 조합하고, 조합된 기능들에 대응되는 발화 데이터를 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 동일 또는 유사하다고 판단된 기능 세트 내의 기능들 중 일부 기능을 삭제하고, 일부 기능이 삭제된 기능 세트에 대응되는 발화 데이터를 생성할 수 있다.Meanwhile, the
보이스 어시스턴트 서버(3000)는 발화 데이터를 확장할 수 있다. 보이스 어시스턴트 서버(3000)는 추출 또는 생성된 발화 데이터의 표현을 수정함으로써, 추출 또는 생성된 발화 데이터와 의미는 동일하지만 상이한 표현을 가지는 유사 발화 데이터를 생성할 수 있다.The
동작 S330에서 보이스 어시스턴트 서버(3000)는 동일 또는 유사한 기능들 및 발화 데이터에 기초하여, 신규 디바이스(2900)에 대한 액션 데이터를 생성할 수 있다. 액션 데이터는 발화 데이터에 따른 디바이스의 세부 동작들 및 세부 동작들의 실행 순서를 나타내는 데이터일 수 있다. 액션 데이터는, 예를 들어, 세부 동작들의 식별 값, 세부 동작들의 실행 순서 및 세부 동작을 실행하기 위한 제어 명령 등을 포함할 수 있으나, 이에 제한되지 않는다.In operation S330, the
예를 들어, 발화 데이터에 대응되는 기능이 단일 기능인 경우에, 보이스 어시스턴트 서버(3000)는 단일 기능을 나타내는 세부 동작을 포함하는 액션 데이터를 생성할 수 있다. 예를 들어, 발화 데이터에 대응되는 기능이 기능 세트인 경우에, 보이스 어시스턴트 서버(3000)는 기능 세트 내의 기능들을 나타내는 세부 동작들, 및 세부 동작들의 실행 순서를 생성할 수 있다.For example, when the function corresponding to the speech data is a single function, the
동작 S340에서 보이스 어시스턴트 서버(3000)는 발화 데이터 및 액션 데이터를 이용하여 신규 디바이스(2900)에 관련된 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다.In operation S340, the
보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능에 관련된 기 등록된 디바이스(2000)의 기능에 대응되는 발화 데이터, 신규 디바이스(2900)의 기능과 관련하여 신규로 생성된 발화 데이터, 확장된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 관련된 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)에 관련된 발화 데이터 및 액션 데이터를 누적하여 저장할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 액션 플랜 관리 모델(미도시) 내에 포함된 캡슐 형태의 데이터베이스인 CAN(Concept Action Network)를 생성 또는 업데이트할 수 있다.The
신규 디바이스(2900)에 관련된 보이스 어시스턴트 모델은, 보이스 어시스턴트 서비스를 위하여 이용되는 모델로서 신규 디바이스(2900)에 특화된 모델로서 사용자의 음성 입력에 대응하는 타겟 디바이스가 수행할 동작을 결정하는 모델일 수 있다. 신규 디바이스(2900)에 관련된 보이스 어시스턴트 모델은, 예를 들어, NLU 모델, NLG 모델, 및 액션 플랜 관리 모델을 포함할 수 있다. 신규 디바이스(2900)에 관련된 NLU 모델은 신규 디바이스(2900)의 기능을 고려하여 사용자의 입력 음성을 해석하기 위한 인공 지능 모델이며, 신규 디바이스(2900)에 관련된 NLG 모델은 신규 디바이스의 기능을 고려하여 사용자와의 대화를 위한 자연어를 생성하기 위한 인공 지능 모델일 수 있다. 또한, 신규 디바이스(2900)에 관련된 액션 플랜 관리 모델은 신규 디바이스(2900)의 기능을 고려하여 신규 디바이스(2900)가 수행할 동작 정보를 플래닝하는 모델일 수 있다. 액션 플랜 관리 모델은 해석된 사용자의 발화 음성으로부터 신규 디바이스(2900)가 수행해야 할 세부 동작들을 선택하고 선택된 세부 동작들의 실행 순서를 플래닝할 수 있다. 액션 플랜 관리 모델은 플래닝 결과를 이용하여 신규 디바이스(2900)가 수행할 세부 동작에 관한 동작 정보를 획득할 수 있다. 동작 정보는, 디바이스가 수행할 세부 동작들, 세부 동작들 간의 연관 관계, 및 세부 동작들의 실행 순서와 관련된 정보일 수 있다. 동작 정보는 예를 들어, 세부 동작들의 수행을 위하여 신규 디바이스(2900)가 실행해야 할 기능들, 기능들의 실행 순서, 기능들을 실행하기 위하여 필요한 입력 값 및 기능들의 실행 결과로서 출력되는 출력 값을 포함할 수 있으나, 이에 한정되지 않는다.The voice assistant model related to the
신규 디바이스(2900)에 대하여 이용될 수 있는 보이스 어시스턴트 모델이 이미 존재하는 경우에는, 보이스 어시스턴트 서버(3000)는 보이스 어시스턴트 모델을 업데이트할 수 있다.When a voice assistant model that can be used for the
또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능에 관련된 기 등록된 디바이스(2000)의 기능에 대응되는 발화 데이터, 신규 디바이스(2900)의 기능과 관련하여 신규로 생성된 발화 데이터, 확장된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 관련된 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다.In addition, the
또한, 액션 플랜 관리 모델은 신규 디바이스(2900)의 복수의 세부 동작들 및 복수의 세부 동작들 간의 관계에 관한 정보를 관리할 수 있다. 복수의 세부 동작들 중 각각의 세부 동작과 다른 세부 동작과의 연관 관계는, 하나의 세부 동작을 실행하기 위해서 그 세부 동작을 실행하기 전에 필수적으로 실행되어야 할 다른 세부 동작에 대한 정보를 포함할 수 있다.In addition, the action plan management model may manage information about a plurality of detailed operations of the
일 실시예에서, 액션 플랜 관리 모델은 디바이스의 동작들 및 동작들 간의 연관 관계를 나타내는 캡슐 형태의 데이터베이스인 CAN(Concept Action Network)를 포함할 수 있다. CAN(Concept Action Network)은 특정 동작의 수행을 위하여 디바이스가 실행해야 할 기능들, 기능들의 실행 순서, 기능들을 실행하기 위하여 필요한 입력 값 및 기능들의 실행 결과로서 출력되는 출력 값을 포함하며, 컨셉 및 컨셉 간의 관계를 나타내는 지식 트리플들로 구성된 온톨로지 그래프로 구현될 수 있다. In an embodiment, the action plan management model may include a Concept Action Network (CAN), which is a capsule-type database representing the actions of the device and the relationship between the actions. CAN (Concept Action Network) includes functions to be executed by the device to perform a specific operation, order of execution of functions, input values necessary to execute functions, and output values output as a result of execution of functions. It can be implemented as an ontology graph composed of knowledge triples representing the relationship between concepts.
동작 S310에서 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사하지 않다고 판단되면, 동작 S350에서 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 상이한 기능에 대한 발화 데이터 및 액션 데이터의 입력을 요청할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 상이한 기능을 등록하고 상이한 기능에 관련된 발화 데이터를 생성하고 편집하기 위한 질의 메시지를 출력할 수 있다. 질의 메시지는 클라이언트 디바이스(1000), 신규 디바이스(2900) 또는 개발자의 디바이스(미도시)에게 제공될 수 있다. 보이스 어시스턴트 서버(3000)는 질의 메시지에 대한 응답을 클라이언트 디바이스(1000), 신규 디바이스(2900) 또는 개발자의 디바이스(미도시)로부터 수신할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능을 등록하기 위한 SDK(Software Development Kit) 툴을 클라이언트 디바이스(1000), 신규 디바이스(2900) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 상이한 기능들의 목록을 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 보이스 어시스턴트 서버(3000)는 상이한 기능들 중 적어도 일부에 관련된 추천 발화 데이터를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다.If it is determined in operation S310 that the function of the previously registered
동작 S360에서 보이스 어시스턴트 서버(3000)는 발화 데이터 및 액션 데이터를 획득할 수 있다. 보이스 어시스턴트 서버(3000)는 NLU 모델을 이용하여 질의에 대한 응답을 해석할 수 있다. 보이스 어시스턴트 서버(3000)는 기능 등록 및 발화 데이터 생성을 위해 훈련된 NLU 모델을 이용하여, 사용자의 응답 또는 개발자의 응답을 해석할 수 있다. 보이스 어시스턴트 서버(3000)는 해석된 응답에 기초하여, 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성할 수 있다. 보이스 어시스턴트 서버(3000)는 해석된 사용자의 응답 또는 해석된 개발자의 응답을 이용하여 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성하고, 생성된 발화 데이터를 추천할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능 각각에 관련된 발화 데이터들을 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능들의 조합에 관련된 발화 데이터를 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터와 동일한 의미를 가지면서 상이한 표현을 가지는 유사 발화 데이터를 생성할 수 있다. 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터를 이용하여 액션 데이터를 생성할 수 있다. 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터에 관련된 신규 디바이스(2900)의 기능들을 식별하고, 식별된 기능들의 실행 순서를 결정함으로써, 생성된 발화 데이터에 대응되는 액션 데이터를 생성할 수 있다. In operation S360, the
도 4는 본 개시의 일 실시예에 따른 서버가 기설정된 디바이스의 기능 및 신규 디바이스의 기능을 비교하는 방법의 흐름도이다.4 is a flowchart illustrating a method of comparing, by a server, a function of a preset device and a function of a new device according to an embodiment of the present disclosure.
동작 S400에서 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능 및 신규 디바이스(2900)의 기능을 비교할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)에 의해 지원되는 기능의 명칭을 기등록된 디바이스(2000)에 의해 지원되는 기능의 명칭과 비교할 수 있다. 이 경우, 보이스 어시스턴트 서버(3000)는 소정 기능을 나타내는 명칭 및 유사어들에 관한 정보를 미리 저장할 수 있으며, 저장된 유사어 정보에 기초하여 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능을 비교할 수 있다.In operation S400, the
또한, 보이스 어시스턴트 서버(3000)는 IoT 클라우드 서버(4000)에 저장된 발화 데이터를 참고하여, 기등록된 디바이스(2000)의 기능 및 신규 디바이스(2900)의 기능을 비교할 수 있다. 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 관련된 발화 데이터를 이용하여, 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. 이 경우, 보이스 어시스턴트 서버(3000)는 발화 데이터 내에 포함된 단어들의 의미에 기초하여 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다.In addition, the
동작 S405에서 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하는 지를 판단할 수 있다. 보이스 어시스턴트 서버(3000)는 적어도 하나의 기등록된 디바이스(2000)의 기능들과 신규 디바이스(2900)의 기능들이 모두 일치하는지를 판단할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 기능들, 제2 디바이스(2200)의 기능들 및 제3 디바이스(2300)의 기능들 중에서 신규 디바이스(2900)의 기능들과 일치하는 기능들을 식별할 수 있다.In operation S405, the
신규 디바이스(2900)의 기능의 명칭이 기등록된 디바이스(2000)의 기능의 명칭과 동일한 경우에, 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 일치한다고 판단할 수 있다. When the name of the function of the
또한, 신규 디바이스(2900)의 기능의 명칭이 기등록된 디바이스(2000)의 기능의 명칭과 유사하며 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일한 목적의 기능이라고 판단되는 경우에, 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 일치한다고 판단할 수 있다.In addition, it is determined that the function name of the
동작 S405에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하지 않는다고 판단되면, 보이스 어시스턴트 서버(3000)는 동작 S320 내지 동작 S340을 수행할 수 있다. 보이스 어시스턴트 서버(3000)는, 신규 디바이스(2900)의 기능과 일치하는 기등록된 디바이스(2000)의 기능에 관련된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 기능에 관련된 발화 데이터 및 액션 데이터를 생성하고, 신규 디바이스(2900)에 관한 보이스 어시스턴트 서비스를 제공하기 위한 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다.If it is determined in operation S405 that there is no function that does not match the function of the previously registered
동작 S405에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재한다고 판단되면, 동작 S410에서 보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능들을 조합할 수 있다.If it is determined in operation S405 that a function that does not match the function of the previously registered
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 단일 기능들을 조합할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 및 제1 디바이스(2100)의 제2 기능을 조합할 수 있다. 또한, 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 및 제2 디바이스(2200)의 제3 기능을 조합할 수 있다.The
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 기능 세트들을 조합할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 세트 및 제1 디바이스(2100)의 제2 기능 세트를 조합할 수 있다. 또한, 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 세트 및 제2 디바이스(2200)의 제3 기능 세트를 조합할 수 있다.The
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 단일 기능 및 기능 세트를 조합할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 및 제1 디바이스(2100)의 제1 기능 세트를 조합할 수 있다. 또한, 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능 및 제2 디바이스(2200)의 제3 기능 세트를 조합할 수 있다.The
보이스 어시스턴트 서버(3000)는 기등록된 디바이스(2000)의 기능들에 대응되는 발화 데이터로부터 기등록된 디바이스(2000)의 기능들을 조합할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능에 대응되는 제1 발화 데이터 및 제2 기능에 대응되는 제2 발화 데이터를 DB(미도시)로부터 추출하고, 제1 발화 데이터 및 제2 발화 데이터의 의미에 기초하여, 제1 기능 및 제2 기능을 조합할 것을 결정할 수 있다. 또한, 예를 들어, 보이스 어시스턴트 서버(3000)는 제1 디바이스(2100)의 제1 기능에 대응되는 제1 발화 데이터 및 제2 디바이스(2200)의 제3 기능에 대응되는 제3 발화 데이터를 DB(미도시)로부터 추출하고, 제1 발화 데이터 및 제3 발화 데이터의 의미에 기초하여, 제1 기능 및 제3 기능을 조합할 것을 결정할 수 있다.The
동작 S415에서 보이스 어시스턴트 서버(3000)는 조합된 기능들과 신규 디바이스(2900)의 기능들을 비교할 수 있다. 보이스 어시스턴트 서버(3000)는 조합된 기능들의 명칭을 기등록된 디바이스(2000)에 의해 지원되는 기능들의 명칭과 비교할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 IoT 클라우드 서버(4000)에 저장된 발화 데이터를 참고하여, 조합된 기능들 및 신규 디바이스(2900)의 기능들을 비교할 수 있다.In operation S415, the
동작 S420에서, 동작 S415를 수행한 후, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하는지를 판단할 수 있다. 조합된 기능들의 명칭들이 기등록된 디바이스(2000)의 기능들의 명칭들과 동일한 경우에, 보이스 어시스턴트 서버(3000)는 조합된 기능들이 신규 디바이스(2900)의 기능들과 일치한다고 판단할 수 있다. In operation S420, after performing operation S415, the
또한, 조합된 기능들의 명칭들이 기등록된 디바이스(2000)의 기능들의 명칭들과 유사하며 조합된 기능들과 신규 디바이스(2900)의 기능들이 동일한 목적의 기능들이라고 판단되는 경우에, 보이스 어시스턴트 서버(3000)는 조합된 기능들이 신규 디바이스(2900)의 기능들과 일치한다고 판단할 수 있다.In addition, when the names of the combined functions are similar to those of the previously registered
동작 S420에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하지 않는다고 판단되면, 보이스 어시스턴트 서버(3000)는 동작 S320 내지 동작 S340을 수행할 수 있다. 보이스 어시스턴트 서버(3000)는, 신규 디바이스(2900)의 기능과 일치하는 기등록된 디바이스(2000)의 기능에 관련된 발화 데이터 및 액션 데이터, 및 조합된 기능에 관련된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 기능들에 관련된 발화 데이터 및 액션 데이터를 생성하고, 신규 디바이스(2900)에 관한 보이스 어시스턴트 서비스를 제공하기 위한 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다.If it is determined in operation S420 that there is no function that does not match the function of the previously registered
동작 S420에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재한다고 판단되면, 동작 S425에서 보이스 어시스턴트 서버(3000)는 디바이스(2000)의 기능들 중 일부를 삭제할 수 있다.If it is determined in operation S420 that a function that does not match the function of the previously registered
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 단일 기능들 중 일부를 삭제할 수 있다. 보이스 어시스턴트 서버(3000)는 디바이스(2000)의 단일 기능들 중에서 신규 디바이스(2900)에 의해 지원되지 않는다고 판단되는 단일 기능을 삭제할 수 있다.The
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 기능 세트들 내의 기능들 중 일부를 삭제할 수 있다. 보이스 어시스턴트 서버(3000)는 디바이스(2000)의 기능 세트들 내의 기능들 중에서 신규 디바이스(2900)에 의해 지원되지 않는다고 판단되는 기능을 삭제할 수 있다.The
보이스 어시스턴트 서버(3000)는 적어도 하나의 디바이스(2000)의 기능 세트들 중 일부를 삭제할 수 있다. 보이스 어시스턴트 서버(3000)는 디바이스(2000)의 기능 세트들 중에서 신규 디바이스(2900)에 의해 지원되지 않는다고 판단되는 기능 세트들을 삭제할 수 있다.The
동작 S430에서 보이스 어시스턴트 서버(3000)는 삭제 후 남은 기능들과 신규 디바이스(2900)의 기능들을 비교할 수 있다. 보이스 어시스턴트 서버(3000)는 삭제 후 남은 기능들의 명칭을 기등록된 디바이스(2000)에 의해 지원되는 기능들의 명칭과 비교할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 IoT 클라우드 서버(4000)에 저장된 발화 데이터를 참고하여, 삭제 후 남은 기능들 및 신규 디바이스(2900)의 기능들을 비교할 수 있다.In operation S430, the
동작 S435에서, 동작 S430를 수행한 후, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하는지를 판단할 수 있다. 삭제 후 남은 기능들의 명칭들이 기등록된 디바이스(2000)의 기능들의 명칭들과 동일한 경우에, 보이스 어시스턴트 서버(3000)는 삭제 후 남은 기능들이 신규 디바이스(2900)의 기능들과 일치한다고 판단할 수 있다. In operation S435, after performing operation S430, the
또한, 삭제 후 남은 기능들의 명칭들이 기등록된 디바이스(2000)의 기능들의 명칭들과 유사하며, 삭제 후 남은 기능들과 신규 디바이스(2900)의 기능들이 동일한 목적의 기능들이라고 판단되는 경우에, 보이스 어시스턴트 서버(3000)는 삭제 후 남은 기능들이 신규 디바이스(2900)의 기능들과 일치한다고 판단할 수 있다.In addition, if the names of functions remaining after deletion are similar to the names of functions of the previously registered
동작 S435에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하지 않는다고 판단되면, 보이스 어시스턴트 서버(3000)는 동작 S320 내지 동작 S340을 수행할 수 있다. 보이스 어시스턴트 서버(3000)는, 신규 디바이스(2900)의 기능과 일치하는 기등록된 디바이스(2000)의 기능에 관련된 발화 데이터 및 액션 데이터, 조합된 기능에 관련된 발화 데이터 및 액션 데이터, 삭제 후 남은 기능에 관련된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 기능들에 관련된 발화 데이터 및 액션 데이터를 생성하고, 신규 디바이스(2900)에 관한 보이스 어시스턴트 서비스를 제공하기 위한 보이스 어시스턴트 모델을 생성 또는 업데이트할 수 있다.If it is determined in operation S435 that there is no function that does not match the function of the previously registered
동작 S435에서 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재한다고 판단되면, 보이스 어시스턴트 서버(3000)는 동작 S350을 수행할 수 있다.If it is determined in operation S435 that a function that does not match the function of the previously registered
도 4에서 S400, S410, S415, S425 및 S430은 순차적으로 수행되는 것으로 설명되었지만, 이에 한정되지 않는다. 예를 들어, 신규 디바이스(2900)의 기능과 기등록된 디바이스(2000)의 기능을 비교(S400)하기 전에, 기등록된 디바이스(2000)의 기능을 조합(S410)하거나 일부를 삭제(S425)하는 동작을 수행하여 미리 DB(미도시)를 구축해 놓을 수 있다. 이 경우, 구축된 DB를 이용하여 신규 디바이스(2900)의 기능을, 기등록된 디바이스(2000)의 기능, 기등록된 디바이스(2000)의 조합된 기능 및 기등록된 디바이스(2000)의삭제 기능과 비교하여(S400, S415, S430), 신규 디바이스(2900)의 기능 중 기등록된 디바이스(2000)의 기능과 일치하지 않는 기능이 존재하는지를 판단할 수 있다.In FIG. 4, S400, S410, S415, S425 and S430 have been described as being sequentially performed, but are not limited thereto. For example, before comparing the functions of the
도 5(a)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 및 신규 디바이스의 기능을 비교하는 예시를 나타내는 도면이다.5A is a diagram illustrating an example of comparing a function of a previously registered device and a function of a new device according to an embodiment of the present disclosure.
도 5(a)를 참조하면, 보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능들, 기등록된 제습기 A의 기능들 및 신규 에어컨 B의 기능들을 비교할 수 있다. Referring to FIG. 5A, the
예를 들어, 신규 에어컨 B에 의해 지원되는 기능들은, 전원 ON/OFF, 냉방 모드 ON/OFF, 제습 모드 ON/OFF, 온도 설정, 온도 UP/DOWN, 습도 설정, 습도 UP/DOWN, 인공 지능모드 ON/OFF 등을 포함할 수 있다. 또한, 예를 들어, 기등록된 에어컨 A에 의해 지원되는 기능들은, 전원 ON/OFF, 냉방 모드 ON/OFF, 온도 설정, 온도 UP/DOWN 등을 포함할 수 있다. 또한, 예를 들어, 기등록된 제습기 A에 의해 지원되는 기능은, 전원 ON/OFF, 습도 설정, 습도 UP/DOWN 등을 포함할 수 있다.For example, the functions supported by the new air conditioner B are power ON/OFF, cooling mode ON/OFF, dehumidification mode ON/OFF, temperature setting, temperature UP/DOWN, humidity setting, humidity UP/DOWN, artificial intelligence mode. It may include ON/OFF, etc. Further, for example, functions supported by the previously registered air conditioner A may include power ON/OFF, cooling mode ON/OFF, temperature setting, temperature UP/DOWN, and the like. Also, for example, functions supported by the previously registered dehumidifier A may include power ON/OFF, humidity setting, humidity UP/DOWN, and the like.
보이스 어시스턴트 서버(3000)는 신규 에어컨 B의 기능들 중에서, 전원 ON/OFF, 냉방 모드 ON/OFF, 온도 설정, 온도 UP/DOWN, 습도 설정, 습도 UP/DOWN이 기등록된 에어컨 A 및 제습기 A의 기능들과 일치한다고 판단할 수 있다. 보이스 어시스턴트 서버(3000)는 기능들의 일치 여부를 판단하기 위하여, 에어컨 A의 기능들에 관한 발화 데이터 및 제습기 A의 기능들에 관한 발화 데이터를 이용할 수 있다.Among the functions of the new air conditioner B, the
보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A에 의해 제공되는 기능들인 전원 ON/OFF, 냉방 모드 ON/OFF, 온도 설정 및 온도 UP/DOWN에 각각 대응되는 발화 데이터들을 획득하고, 기등록된 제습기 A에 의해 제공되는 기능들인 전원 ON/OFF, 습도 설정, 습도 UP/DOWN에 각각 대응되는 발화 데이터들을 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 일치하는 기능들 및 획득된 발화 데이터들을 이용하여 신규 에어컨 B의 액션 데이터를 생성할 수 있다.The
도 5(b)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 세트 및 신규 디바이스의 기능을 비교하는 예시를 나타내는 도면이다.5B is a diagram illustrating an example of comparing a function set of a previously registered device and a function of a new device according to an embodiment of the present disclosure.
도 5(b)를 참조하면, 보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 UP’이 신규 에어컨 B의 ‘냉방 모드 ON/OFF’ 및 ‘온도 UP/DOWN’에 매칭됨을 식별할 수 있다.Referring to FIG. 5(b), the
보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 UP’에 대응되는 발화 데이터인 ‘온도 높여’를 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 에어컨 B의 기능들인 ‘냉방 모드 ON/OFF’ 및 ‘온도 UP/DOWN’, 및 획득된 발화 데이터인 ‘온도 높여’를 이용하여, ‘냉방 모드 ON’ 기능을 실행한 이후에 ‘온도 UP’ 기능을 실행하기 위한 액션 데이터를 생성할 수 있다.The
도 5(c)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능 및 기능 세트의 조합을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.5C is a diagram illustrating an example of comparing a combination of a function and a function set of a previously registered device with a function of a new device according to an embodiment of the present disclosure.
도 5(c)를 참조하면, 보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능인 ‘전원 ON’ 및 기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 DOWN’의 조합이 신규 에어컨 B의 ‘전원 ON/OFF’, ‘냉방 모드 ON/OFF’ 및 ‘온도 UP/DOWN’에 매칭됨을 식별할 수 있다.5(c), the
보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능인 ‘전원 ON’ 에 대응되는 발화 데이터인 ‘전원 켜’, 및 기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 DOWN’에 대응되는 발화 데이터인 ‘온도 낮춰’를 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 획득된 발화 데이터들을 편집할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 ‘전원 켜’ 및 ‘온도 낮춰’로부터 ‘에어컨 켜서 온도 낮춰’를 나타내는 발화 데이터를 생성할 수 잇다.The
또한, 보이스 어시스턴트 신규 에어컨 B의 ‘전원 ON/OFF’, ‘냉방 모드 ON/OFF’ 및 ‘온도 UP/DOWN’, 및 생성된 발화 데이터인 ‘에어컨 켜서 온도 낮춰’를 이용하여, ‘전원 ON’ 기능을 실행한 이후에 ‘냉방 모드 ON’ 기능을 실행하고, 그 이후에 ‘온도 DOWN’ 기능을 실행하기 위한 액션 데이터를 생성할 수 있다.In addition,'Power ON/OFF','Cooling Mode ON/OFF' and'Temperature UP/DOWN' of the Voice Assistant's new air conditioner B, and'Power ON' by using the generated ignition data'Turn on the air conditioner to lower the temperature'. After executing the function, the'cooling mode ON' function is executed, and after that, action data for executing the'temperature down' function can be generated.
도 5(d)는 본 개시의 일 실시예에 따른 기등록된 복수의 디바이스의 기능 및 기능 세트의 조합을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.FIG. 5D is a diagram illustrating an example of comparing a combination of a function and a function set of a plurality of previously registered devices with a function of a new device according to an embodiment of the present disclosure.
도 5(d)를 참조하면, 보이스 어시스턴트 서버(3000)는 i)기등록된 에어컨 A의 기능인 ‘전원 ON’, ii)기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 DOWN’, 및 iii)제습 장치 A의 기능 세트인 ‘전원 ON + 습도 DOWN’의 조합이, 신규 에어컨 B의 ‘전원 ON/OFF’, ‘냉방 모드 ON/OFF’, ‘온도 UP/DOWN’, ‘제습 모드 ON/OFF’ 및 ‘습도 UP/DOWN’에 매칭됨을 식별할 수 있다.Referring to FIG. 5(d), the
보이스 어시스턴트 서버(3000)는 i)기등록된 에어컨 A의 기능인 ‘전원 ON’ 에 대응되는 발화 데이터인 ‘전원 켜’, ii)기등록된 에어컨 A의 기능 세트인 ‘냉방 모드 ON + 온도 DOWN’에 대응되는 발화 데이터인 ‘온도 낮춰’, 및 iii)기등록된 제습 장치 A의 기능 세트인 ‘전원 ON + 습도 DOWN’에 대응되는 발화 데이터인 ‘습도 낮춰’를 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 획득된 발화 데이터들을 편집할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 ‘전원 켜’, ‘온도 낮춰’ 및 ‘습도 낮춰’로부터 ‘에어컨 켜서 온도 낮추고 습도 낮춰’를 나타내는 발화 데이터를 생성할 수 잇다.The
또한, 보이스 어시스턴트 신규 에어컨 B의 ‘전원 ON/OFF’, ‘냉방 모드 ON/OFF’, ‘온도 UP/DOWN’, ‘제습 모드 ON/OFF’ 및 ‘습도 UP/DOWN’, 및 생성된 발화 데이터인 ‘에어컨 켜서 온도 낮추고 습도 낮춰’를 이용하여, ‘전원 ON’ 기능을 실행한 이후에 ‘냉방 모드 ON’ 기능을 실행하고 ‘온도 DOWN’ 기능을 실행하고 ‘제습 모드 ON’ 기능을 실행하고 ‘습도 DOWN’ 기능을 실행하기 위한 액션 데이터를 생성할 수 있다.In addition,'Power ON/OFF','Cooling Mode ON/OFF','Temperature UP/DOWN','Dehumidification Mode ON/OFF' and'Humidity UP/DOWN', and generated ignition data of Voice Assistant's new air conditioner B After executing the'Power ON' function, execute the'Cooling Mode ON' function, execute the'Temperature DOWN' function, and execute the'Dehumidification Mode ON' function by using'Turn on the air conditioner to lower the temperature and lower the humidity'. Action data can be created to execute the'Humidity DOWN' function.
도 5(e)는 본 개시의 일 실시예에 따른 기등록된 디바이스의 기능들 중 일부를 삭제한 이후에 남은 기능을 신규 디바이스의 기능과 비교하는 예시를 나타내는 도면이다.5(e) is a diagram illustrating an example of comparing a function remaining after deleting some of functions of a previously registered device with a function of a new device according to an embodiment of the present disclosure.
도 5(e)를 참조하면, 보이스 어시스턴트 서버(3000)는 기등록된 에어컨 A의 기능 세트인 ‘온도 26도 설정 + 온도 확인 + 인공 지능 모드 ON’에서 ‘온도 26도 설정 + 온도 확인’을 삭제하고 남은 기능인 ‘인공 지능 모드 ON’를 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 i)남은 기능인 ‘인공 지능 모드 ON’ 및 ii)기등록된 에어컨 A의 기능인 ‘전원 ON’ 의 조합이, 신규 에어컨 B의 ‘전원 ON/OFF’ 및 ‘인공 지능 모드 ON/OFF’에 매칭됨을 식별할 수 있다.Referring to FIG. 5(e), the
보이스 어시스턴트 서버(3000)는 i)기등록된 에어컨 A의 기능인 ‘전원 ON’ 에 대응되는 발화 데이터인 ‘전원 켜’를 획득할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는, 기등록된 에어컨 A의 기능 세트인 ‘온도 26도 설정 + 온도 확인 + 인공 지능 모드 ON’에 대응되는 발화 데이터인 ‘온도 26도로 인공 지능 기능을 켜줘’로부터, 남은 기능인 ‘인공 지능 모드 ON ‘에 대응되는 발화 데이터인 ‘인공 지능 기능 켜줘’를 추출할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 ‘전원 켜’ 및 ‘인공 지능 기능 켜줘’로부터 ‘전원 켜고 인공 지능 기능을 켜줘’를 나타내는 발화 데이터를 생성할 수 있다.The
또한, 보이스 어시스턴트 서버(3000)는 신규 에어컨 B의 ‘전원 ON/OFF’ 및 ‘인공 지능 모드 ON/OFF’, 및 생성된 발화 데이터인 ‘전원 켜서 인공 지능 기능을 켜줘’를 이용하여, ‘전원 ON’ 기능을 실행한 이후에 ‘인공 지능 모드 ON’ 기능을 실행하기 위한 액션 데이터를 생성할 수 있다.In addition, the
도 6은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버가 신규 디바이스의 기능들 중에서 기등록된 디바이스의 기능과 상이한 기능에 관련된 발화 데이터 및 액션 데이터를 생성하는 방법의 흐름도이다.6 is a flowchart of a method for generating, by a voice assistant server, utterance data and action data related to a function different from a function of a previously registered device among functions of a new device according to an embodiment of the present disclosure.
동작 S600에서 보이스 어시스턴트 서버(3000)는 NLG 모델을 이용하여, 추가 기능의 등록 및 발화 데이터의 생성 또는 편집을 위한 질의를 출력할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능을 등록하고 발화 데이터의 생성을 위한 GUI를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 개발자의 디바이스(미도시)는 신규 디바이스의 등록을 위한 소정의 소프트웨어 개발 킷(SDK: Software Development Kit)을 설치할 수 있으며, 설치된 소프트웨어 개발 킷을 통하여 보이스 어시스턴트 서버(3000)로부터 GUI를 수신할 수 있다. In operation S600, the
보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능을 등록하고 발화 데이터의 생성을 안내하기 위한 안내 텍스트 또는 안내 음성 데이터를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 보이스 어시스턴트 서버(3000)는 기능 등록 및 발화 데이터 생성을 위해 훈련된 NLG 모델을 이용하여, 추가 기능의 등록 및 발화 데이터의 생성을 위한 질의를 생성할 수 있다.The
또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 상이한 기능들의 목록을 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 보이스 어시스턴트 서버(3000)는 상이한 기능들 중 적어도 일부에 관련된 추천 발화 데이터를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다.In addition, the
동작 S610에서 보이스 어시스턴트 서버(3000)는 NLU 모델을 이용하여 질의에 대한 응답을 해석할 수 있다. 보이스 어시스턴트 서버(3000)는 질의에 대한 사용자의 응답을 사용자의 디바이스(2000)로부터 수신하거나 질의에 대한 개발자의 응답을 개발자의 디바이스(미도시)로부터 수신할 수 있다. 보이스 어시스턴트 서버(3000)는 기능 등록 및 발화 데이터 생성을 위해 훈련된 NLU 모델을 이용하여, 사용자의 응답 또는 개발자의 응답을 해석할 수 있다.In operation S610, the
또한, 보이스 어시스턴트 서버(3000)는 사용자의 디바이스(2000)에게 제공된 GUI를 통한 사용자의 응답 입력을 사용자의 디바이스(2000)로부터 수신하거나, 개발자의 디바이스(미도시)에게 제공된 GUI를 통한 개발자의 응답 입력을 개발자의 디바이스(미도시)로부터 수신할 수 있다.In addition, the
동작 S620에서 보이스 어시스턴트 서버(3000)는 해석된 응답에 기초하여, 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성할 수 있다. 보이스 어시스턴트 서버(3000)는 해석된 사용자의 응답 또는 해석된 개발자의 응답을 이용하여 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성하고, 생성된 발화 데이터를 추천할 수 있다. 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능 각각에 관련된 발화 데이터들을 생성할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능들의 조합에 관련된 발화 데이터를 생성할 수 있다.In operation S620, the
보이스 어시스턴트 서버(3000)는, 신규 디바이스(2900)의 기능들의 식별 값 및 속성에 기초하여, 발화 데이터 생성을 위한 NLG 모델을 이용하여 신규 디바이스(2900)의 기능에 관련된 발화 데이터를 생성할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 신규 디바이스의 기능들의 식별 값 및 속성을 나타내는 데이터를, 발화 데이터 생성을 위한 NLG 모델에 입력하고, NLG 모델로부터 출력되는 발화 데이터를 획득할 수 있으나, 이에 제한되지 않는다.The
또한, 보이스 어시스턴트 서버(3000)는 GUI를 통해 입력된 사용자의 응답 입력 및 GUI를 통해 입력된 개발자의 응답 입력에 기초하여 생성된 발화 데이터 중 적어도 일부를 선택할 수도 있다. 또한, 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터와 동일한 의미를 가지면서 상이한 표현을 가지는 유사 발화 데이터를 생성할 수 있다.In addition, the
동작 S630에서 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터를 이용하여 액션 데이터를 생성할 수 있다. 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터에 관련된 신규 디바이스(2900)의 기능들을 식별하고, 식별된 기능들의 실행 순서를 결정함으로써, 생성된 발화 데이터에 대응되는 액션 데이터를 생성할 수 있다. 생성된 액션 데이터는 발화 데이터 및 유사 발화 데이터에 매칭될 수 있다.In operation S630, the
도 7(a)는 본 개시의 일 실시예에 따른 신규 디바이스의 기능에 관련된 발화 데이터 및 액션 데이터를 생성하기 위해 보이스 어시스턴트 서버로부터 출력되는 질의의 예시를 나타내는 도면이다.7A is a diagram illustrating an example of a query output from a voice assistant server to generate speech data and action data related to a function of a new device according to an embodiment of the present disclosure.
도 7(a)를 참조하면, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)인 에어컨의 신규 기능에 관련된 발화문을 입력 받기 위한 질의를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 예를 들어, “자동 건조 기능에 관련된 발화문을 입력해 주세요.”라는 텍스트 또는 질의 음성이 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 출력될 수 있다.Referring to FIG. 7(a), the
또한, 보이스 어시스턴트 서버(3000)는, 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 입력된 “에어컨 냄새를 없애줘.”라는 발화문을, 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 수신할 수 있다.In addition, the
보이스 어시스턴트 서버(3000)는 “에어컨 냄새를 없애줘.”를 “에어컨 냄새를 제거해줘.”로 수정할 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 수정된 발화문인 “에어컨 냄새를 제거해줘.”에 대응되는 액션 데이터인 “현재 동작 OFF + 건조 기능 ON”을 생성할 수 있다.The
도 7(b)는 본 개시의 일 실시예에 따른 신규 디바이스의 기능에 관련된 발화 데이터 및 액션 데이터를 생성하기 위해 발화문을 추천하는 질의가 출력되는 예시를 나타내는 도면이다.7B is a diagram illustrating an example in which a query recommending a speech sentence is output to generate speech data and action data related to a function of a new device according to an embodiment of the present disclosure.
도 7(b)를 참조하면, 보이스 어시스턴트 서버(3000)는 신규 디바이스(2900)인 에어컨의 신규 기능을 알리기 위한 텍스트 또는 음성을 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 “자동 건조 기능이 신규의 기능입니다.”라는 텍스트 또는 음성이 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 출력될 수 있다. 또한, 보이스 어시스턴트 서버(3000)는 신규 기능인 자동 건조 기능과 관련된 추천 발화문을 생성하고, 추천 발화문을 나타내는 텍스트 또는 음성을 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 예를 들어, 보이스 어시스턴트 서버(3000)는 “”에어컨을 끌 때, 건조 기능을 실행해.”라는 발화문을 등록할까요?”라는 질의가 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 출력될 수 있다.Referring to FIG. 7(b), the
또한, 보이스 어시스턴트 서버(3000)는, 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)로부터 추천 발화문을 선택하는 입력을 수신할 수 있다.In addition, the
보이스 어시스턴트 서버(3000)는 추천 발화문인 “”에어컨을 끌 때, 건조 기능을 실행해.”라는 발화문을 등록할까요?”에 대응되는 액션 데이터인 “전원 OFF 입력의 수신을 확인 + 건조 기능 ON + 에어컨 전원 OFF”을 생성할 수 있다.The
도 8은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버(3000)가 발화 데이터를 확장하는 방법의 흐름도이다.8 is a flowchart of a method for expanding speech data by the
동작 S800에서 보이스 어시스턴트 서버(3000)는 생성된 발화 데이터를 인공 지능 모델에 입력함으로써, 생성된 발화 데이터에 관련된 유사 발화 데이터를 획득할 수 있다. 보이스 어시스턴트 서버(3000)는 발화 데이터와 유사한 발화 데이터를 생성하기 위해 훈련된 인공 지능 모델에 생성된 발화 데이터를 입력함으로써, 인공 지능 모델로부터 출력되는 유사 발화 데이터를 획득할 수 있다. 인공 지능 모델은, 예를 들어, 디바이스를 제어하기 위한 발화 문장 및 유사 발화 문장의 세트를 학습 데이터로 이용하여 학습된 모델일 수 있다.In operation S800, the
예를 들어, 도 9(a)에서와 같이, 발화문인 “에어컨 냄새 제거해”가 인공 지능 모델로 입력되면, “에어컨 냄새를 없애줘”, “에어컨 냄새가 나네”, “곰팡이 냄새가 나네”, “곰팡이 냄새를 제거해” 등과 같은 유사 발화문들이 인공 지능 모델로부터 출력될 수 있다. 또한, 인공 지능 모델에 입력된 발화문인 “에어컨 냄새 제거해”가 대표 발화문으로 설정될 수 있다. 대표 발화문은, 예를 들어, 사용자의 사용 빈도수, 문법의 정확도 등을 고려하여 설정될 수 있으나, 이에 제한되지 않는다.For example, as shown in Fig. 9(a), when the ignition statement "Remove the smell of air conditioner" is input as an artificial intelligence model, "Remove the smell of air conditioner", "I smell the air conditioner", "I smell moldy", Similar utterances, such as "remove the smell of mold," can be output from the artificial intelligence model. In addition, “remove air conditioner odor”, which is an utterance sentence input to the artificial intelligence model, may be set as the representative utterance sentence. The representative speech sentence may be set in consideration of, for example, the frequency of use of the user and the accuracy of grammar, but is not limited thereto.
또한, 예를 들어, 도 10(a)에서와 같이, 발화문인 “에어컨 끌 때, 건조 기능을 실행해”가 인공 지능 모델로 입력되면, “에어컨 끄면, 건조 기능 실행해”, “에어컨 끌 때, 냄새 안나게 해줘”, “에어컨 끄면, 냄새 안나게 해줘”, 등과 같은 유사 발화문들이 인공 지능 모델로부터 출력될 수 있다. 또한, 에어컨 끄면, 건조 기능을 실행해”가 대표 발화문으로 결정될 수 있다. 또한, 인공 지능 모델로부터 출력된 유사 발화문들 중 하나인 “에어컨 끄면, 건조 기능 실행해”가 대표 발화문으로 설정될 수 있다. 대표 발화문은, 예를 들어, 사용자의 사용 빈도수, 문법의 정확도 등을 고려하여 설정될 수 있으나, 이에 제한되지 않는다.In addition, for example, as shown in Fig. 10(a), when the ignition statement “when the air conditioner is turned off, execute the drying function” is input as the artificial intelligence model, “when the air conditioner is turned off, the drying function is executed”, “when the air conditioner is turned off, Similar utterances such as, "Smell no smell", "If the air conditioner is turned off, no smell", etc. can be output from the artificial intelligence model. Also, when the air conditioner is turned off, the drying function is executed” can be determined as the representative fire statement. In addition, one of the similar speech statements output from the artificial intelligence model, “If the air conditioner is turned off, execute the drying function” may be set as the representative speech statement. The representative speech sentence may be set in consideration of, for example, the frequency of use of the user and the accuracy of grammar, but is not limited thereto.
동작 S810에서 보이스 어시스턴트 서버(3000)는 액션 데이터를 발화 데이터 및 유사 발화 데이터에 매칭할 수 있다. 보이스 어시스턴트 서버(3000)는 인공 지능 모델에 입력된 발화 데이터에 대응되는 액션 데이터를, 인공 지능 모델로부터 출력된 유사 발화 데이터에 매칭할 수 있다.In operation S810, the
예를 들어, 도 9(b)에서와 같이, 대표 발화문인 “에어컨 냄새 제거해”, 및 유사 발화문들인 “에어컨 냄새를 없애줘”, “에어컨 냄새가 나네”, “곰팡이 냄새가 나네”, “곰팡이 냄새를 제거해” 가, 액션 데이터인 “현재 동작 OFF -> 건조 기능 ON”에 매핑될 수 있다.For example, as shown in FIG. 9(b), representative fire statements “Remove the smell of air conditioner”, and similar fire statements “Remove the smell of air conditioner”, “I smell air conditioner”, “I smell mold”, “ Remove mold odor” can be mapped to action data “Current operation OFF -> Dry function ON”.
또한, 예를 들어, 도 10(b)에서와 같이, 대표 발화문인 “에어컨 끄면, 건조 기능 실행해” 및 유사 발화문들인 “에어컨 냄새 제거해”, “에어컨 끌 때, 냄새 안나게 해줘”, “에어컨 끄면, 냄새 안나게 해줘” 가, 액션 데이터인 “전원 OFF 입력 수신을 확인 -> 건조 기능 ON -> 에어컨 전원 OFF”에 매핑될 수 있다.In addition, for example, as shown in FIG. 10(b), the representative fire statements "If you turn off the air conditioner, perform the drying function" and similar fire statements, "Remove the smell of air conditioner", "When you turn off the air conditioner, please do not make the smell", "Air conditioner If you turn it off, let me not smell it” can be mapped to the action data “Check reception of power OFF input -> Dry function ON -> Air conditioner power OFF”.
도 11(a)는 본 개시의 일 실시예에 따른 발화 데이터의 예시를 나타내는 도면이다.11A is a diagram illustrating an example of speech data according to an embodiment of the present disclosure.
도 11(a)를 참조하면, 발화 데이터는 텍스트 형태의 발화문일 수 있다. 예를 들어, 대표 발화문인 “TV 켜줘”, 및 유사 발화문들인 “TV 켜주세요”. “TV 켜봐”, “TV 틀어줘”가 발화 데이터일 수 있다.Referring to FIG. 11A, speech data may be speech in text form. For example, the representative speech “Turn on TV”, and similar speech phrases “Turn on TV”. “Turn on the TV” or “Turn on the TV” may be speech data.
도 11(b)는 본 개시의 일 실시예에 따른 발화 데이터의 예시를 나타내는 도면이다.11(b) is a diagram illustrating an example of speech data according to an embodiment of the present disclosure.
도 11(b)를 참조하면, 발화 데이터는 발화 파라미터 및 발화문을 포함할 수 있다. 발화 파라미터는, NLU 모델의 출력 값으로서, 인텐트 및 파라미터를 포함할 수 있다. 예를 들어, 발화 데이터에 포함되는 발화 파라미터는, 인텐트인 “전원 온”과 파라미터인 “TV”를 포함할 수 있다. 또한, 예를 들어, 발화 데이터에 포함되는 발화문은 “TV 켜줘”, “TV 켜주세요”. “TV 켜봐”, “TV 틀어줘”와 같은 텍스트를 포함할 수 있다. 도 11(b)에서는 발화 데이터가 발화 파라미터 및 발화문을 포함하는 것으로 설명하였지만, 이에 제한되지 않으며, 발화 데이터는 발화 파라미터들만을 포함할 수도 있다.Referring to FIG. 11B, speech data may include speech parameters and speech sentences. The utterance parameter is an output value of the NLU model and may include an intent and a parameter. For example, the utterance parameter included in the utterance data may include an intent “power on” and a parameter “TV”. Also, for example, the utterances included in the utterance data are “Turn on the TV” or “Turn on the TV”. You can include text such as “Turn on TV” or “Turn on TV”. In FIG. 11B, it has been described that the speech data includes a speech parameter and a speech sentence, but the present invention is not limited thereto, and the speech data may include only speech parameters.
도 13은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버의 블록도이다.13 is a block diagram of a voice assistant server according to an embodiment of the present disclosure.
도 13을 참조하면, 보이스 어시스턴트 서버(3000)는 통신 인터페이스(3100), 프로세서(3200) 및 저장부(3300)를 포함하며, 저장부(3300)는 제1 보이스 어시스턴트 모델(3310), 적어도 하나의 제2 보이스 어시스턴트 모델(3320), SDK 인터페이스 모듈(3330) 및 DB(3340)를 포함할 수 있다. Referring to FIG. 13, the
통신 인터페이스(3100)는, 클라이언트 디바이스(1000), 디바이스(2000) 및 IoT 클라우드 서버(4000)와 통신을 수행한다. 통신 인터페이스(3100)는 클라이언트 디바이스(1000), 디바이스(2000) 및 IoT 클라우드 서버(4000)와 통신을 위한 하나 이상의 구성요소를 포함할 수 있다.The
프로세서(3200)는 통상적으로 보이스 어시스턴트 서버(3000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(3200)는, 저장부(3300)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 보이스 어시스턴트 서버(3000)의 기능을 제어할 수 있다.The
저장부(3300)는 프로세서(3200)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 신규 디바이스(2900)의 기능과 관련된 데이터를 저장할 수 있다. 저장부(3300)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The
저장부(3300)는 에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 제1 보이스 어시스턴트 모델(3310), 적어도 하나의 제2 보이스 어시스턴트 모델(3320) 및 SDK 인터페이스 모듈(3330) 등으로 분류될 수 있다.The programs stored in the
제1 보이스 어시스턴트 모델(3310)은 사용자 음성 입력을 분석하여 사용자 의도와 관련된 타겟 디바이스를 결정하는 모델이다. 제1 보이스 어시스턴트 모델(3310)은 ASR (Automatic Speech Recognition) 모델(3311), 제1 NLU 모델(3312), 제1 NLG 모델(3313), 디바이스 판단 모듈(3314), 기능 비교 모듈(3315), 발화 데이터 획득 모듈(3316), 액션 데이터 생성 모듈(3317) 및 모델 업데이터(3318)를 포함할 수 있다. The first
ASR 모델(3311)은 ASR을 수행함으로써, 음성 신호를 텍스트로 변환한다. ASR 모델(3311)은 음향 모델(acoustic model; AM) 또는 언어 모델(language model; LM) 등 기 정의된 모델을 이용하여 음성 신호를 컴퓨터로 판독 가능한 텍스트로 변환하는 ASR을 수행할 수 있다. 클라이언트 디바이스(110)로부터 노이즈가 제거되지 않은 음향 신호가 수신되는 경우에, ASR 모델(3311)은 수신된 음향 신호에서 노이즈를 제거하여 음성 신호를 획득하고, 음성 신호에 대하여 ASR을 수행할 수 있다.The
제1 NLU 모델(3312)은 텍스트를 분석하고, 분석 결과에 기초하여 사용자의 의도에 관련된 제1 인텐트를 결정한다. 제1 NLU 모델(3312)은, 텍스트를 해석하여 텍스트에 대응하는 제1 인텐트를 획득하도록 학습된 모델일 수 있다. 인텐트는, 텍스트에 포함된 사용자의 발화 의도를 나타내는 정보일 수 있다. The
디바이스 판단 모델(3314)은 제1 NLU 모델(3312)을 이용하여 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행함으로써, 변환된 텍스트로부터 사용자의 제1 인텐트(intent)를 결정할 수 있다. 일 실시예에서, 디바이스 판단 모델(3314)은 제1 NLU 모델(3312)을 이용하여, 변환된 텍스트를 형태소, 단어(word), 또는 구(phrase)의 단위로 파싱(parse)하고, 파싱된 형태소, 단어, 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여 파싱된 텍스트로부터 추출된 단어의 의미를 추론할 수 있다. 디바이스 판단 모델(3314)은, 추론된 단어의 의미를 제1 NLU 모델(3312)에서 제공되는 기 정의된 인텐트들과 비교함으로써, 추론된 단어의 의미에 대응되는 제1 인텐트를 결정할 수 있다. 디바이스 판단 모델(3314)은 제1 인텐트에 기초하여 타겟 디바이스의 타입(type)을 결정할 수 있다. 일 실시예에서, 디바이스 판단 모델(3314)은 제1 NLU 모델(3312)을 이용하여 획득한 제1 인텐트를 활용하여, 타겟 디바이스의 타입을 결정할 수 있다. 디바이스 판단 모델(3314)은 파싱된 텍스트 및 타겟 디바이스 정보를 제2 보이스 어시스턴트 모델(3320)에게 제공한다. 일 실시예에서, 디바이스 판단 모델(3314)은 결정된 타겟 디바이스의 식별 정보(예: 디바이스 id)를 파싱된 텍스트와 함께 제2 보이스 어시스턴트 모델(3320)에게 제공할 수 있다.The
제1 NLG 모델(3313)은 신규 디바이스(2900)의 기능을 등록하고 발화 데이터의 생성 또는 편집을 위한 질의 메시지를 생성할 수 있다.The
기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능을 비교할 수 있다. 기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다. 기능 비교 모듈(3315)은 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 동일 또는 유사한 기능을 식별할 수 있다.The
기능 비교 모듈(3315)은 신규 디바이스(2900)의 명세 정보로부터 신규 디바이스(2900)에 의해 지원되는 기능을 나타내는 명칭을 식별하고, 식별된 명칭이 기등록된 디바이스(2000)에 의해 지원되는 기능의 명칭과 동일 또는 유사한 지를 판단할 수 있다. 이 경우, DB(3340)는 소정 기능을 나타내는 명칭 및 유사어들에 관한 정보를 미리 저장할 수 있으며, 저장된 유사어 정보에 기초하여 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다.The
또한, 기능 비교 모듈(3315)은 DB(3340)에 저장된 발화 데이터를 참고하여 기능의 동일 유사 여부를 판단할 수 있다. 기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 기능과 관련된 발화 데이터를 이용하여, 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. 이 경우, 기능 비교 모듈(3315)은 제1 NLU 모델을 이용하여 발화 데이터를 해석하고, 발화 데이터 내에 포함된 단어들의 의미에 기초하여 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. In addition, the
기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 단일 기능과 신규 디바이스(2900)의 단일 기능이 동일 또는 유사한 지를 판단할 수 있다. 기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 기능 세트와 신규 디바이스(2900)의 기능 세트가 동일 또는 유사한 지를 판단할 수 있다. The
발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능에 관련된 발화 데이터를 획득할 수 있다. 발화 데이터 획득 모듈(3316)은 기등록된 디바이스(2000)의 기능들 중에서 신규 디바이스(2900)의 기능과 동일 또는 유사하다고 판단된 기능에 대응되는 발화 데이터를 발화 데이터 DB(3341)로부터 추출할 수 있다. The speech
발화 데이터 획득 모듈(3316)은 기등록된 디바이스(2000)의 기능 세트들 중에서 신규 디바이스(2900)의 기능과 동일 또는 유사하다고 판단된 기능 세트에 대응되는 발화 데이터를 발화 데이터 DB(3341)로부터 추출할 수 있다. 이 경우, 기등록된 디바이스(2000)의 기능에 대응되는 발화 데이터, 및 기등록된 디바이스(2000)의 기능 세트에 대응되는 발화 데이터는, 발화 데이터 DB(3341)에 미리 저장되어 있을 수 있다.The speech
발화 데이터 획득 모듈(3316)은 동일 또는 유사하다고 판단된 기능 및 기능 세트를 편집하고 편집된 기능들에 대응되는 발화 데이터를 생성할 수도 있다. 발화 데이터 획득 모듈(3316)은 동일 또는 유사하다고 판단된 기능들을 조합하고, 조합된 기능들에 대응되는 발화 데이터를 생성할 수 있다. 또한, 발화 데이터 획득 모듈(3316)은 동일 또는 유사하다고 판단된 기능 및 기능 세트를 조합하고, 조합된 기능들에 대응되는 발화 데이터를 생성할 수 있다. 또한, 발화 데이터 획득 모듈(3316)은 동일 또는 유사하다고 판단된 기능 세트 내의 기능들 중 일부 기능을 삭제하고, 일부 기능이 삭제된 기능 세트에 대응되는 발화 데이터를 생성할 수 있다.The speech
발화 데이터 획득 모듈(3316)은 발화 데이터를 확장할 수 있다. 발화 데이터 획득 모듈(3316)은 추출 또는 생성된 발화 데이터의 표현을 수정함으로써, 추출 또는 생성된 발화 데이터와 의미는 동일하지만 상이한 표현을 가지는 유사 발화 데이터를 생성할 수 있다.The speech
발화 데이터 획득 모듈(3316)은 제1 NLG 모델(3313)을 이용하여, 추가 기능의 등록 및 발화 데이터의 생성 또는 편집을 위한 질의를 출력할 수 있다. 발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능을 등록하고 발화 데이터의 생성을 안내하기 위한 안내 텍스트 또는 안내 음성 데이터를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 상이한 기능들의 목록을 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 발화 데이터 획득 모듈(3316)은 상이한 기능들 중 적어도 일부에 관련된 추천 발화 데이터를 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다.The speech
발화 데이터 획득 모듈(3316)은 제1 NLU 모델(3312)을 이용하여 질의에 대한 응답을 해석할 수 있다. 발화 데이터 획득 모듈(3316)은 해석된 응답에 기초하여, 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성할 수 있다. 발화 데이터 획득 모듈(3316)은 해석된 사용자의 응답 또는 해석된 개발자의 응답을 이용하여 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 생성하고, 생성된 발화 데이터를 추천할 수 있다. 발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능 각각에 관련된 발화 데이터들을 생성할 수 있다. 발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능들 중 일부를 선택하고, 선택된 일부 기능들의 조합에 관련된 발화 데이터를 생성할 수 있다. 발화 데이터 획득 모듈(3316)은 신규 디바이스(2900)의 기능들의 식별 값 및 속성에 기초하여, 제1 NLG 모델(3313)을 이용하여 신규 디바이스(2900)의 기능에 관련된 발화 데이터를 생성할 수 있다. The speech
액션 데이터 생성 모듈(3317)은 동일 또는 유사한 기능들 및 발화 데이터에 기초하여, 신규 디바이스(2900)에 대한 액션 데이터를 생성할 수 있다. 예를 들어, 발화 데이터에 대응되는 기능이 단일 기능인 경우에, 액션 데이터 생성 모듈(3317)은 단일 기능을 나타내는 세부 동작을 포함하는 액션 데이터를 생성할 수 있다. 예를 들어, 발화 데이터에 대응되는 기능이 기능 세트인 경우에, 액션 데이터 생성 모듈(3317)은 기능 세트 내의 기능들을 나타내는 세부 동작들, 및 세부 동작들의 실행 순서를 생성할 수 있다. 액션 데이터 생성 모듈(3317)은 신규 디바이스(2900)의 신규 기능과 관련하여 생성된 발화 데이터를 이용하여 액션 데이터를 생성할 수 있다. 액션 데이터 생성 모듈(3317)은 발화 데이터에 관련된 신규 디바이스(2900)의 신규 기능들을 식별하고, 식별된 기능들의 실행 순서를 결정함으로써, 생성된 발화 데이터에 대응되는 액션 데이터를 생성할 수 있다. 생성된 액션 데이터는 발화 데이터 및 유사 발화 데이터에 매칭될 수 있다.The action
모델 업데이터(3318)는 발화 데이터 및 액션 데이터를 이용하여 신규 디바이스(2900)에 관련된 제2 보이스 어시스턴트 모델(3320)을 생성 또는 업데이트할 수 있다. 모델 업데이터(3318)는 신규 디바이스(2900)의 기능에 관련된 기 등록된 디바이스(2000)의 기능에 대응되는 발화 데이터, 신규 디바이스(2900)의 기능과 관련하여 신규로 생성된 발화 데이터, 확장된 발화 데이터 및 액션 데이터를 이용하여, 신규 디바이스(2900)에 관련된 제2 보이스 어시스턴트 모델(3320)을 생성 또는 업데이트할 수 있다. 모델 업데이터(3318)는 신규 디바이스(2900)에 관련된 발화 데이터 및 액션 데이터를 발화 데이터 DB(3341) 및 액션 데이터 DB(3342)에 누적하여 저장할 수 있다. 또한, 모델 업데이터(3318)는 액션 플랜 관리 모델(3323) 내에 포함된 캡슐 형태의 데이터베이스인 CAN(Concept Action Network)를 생성 또는 업데이트할 수 있다. The
제2 보이스 어시스턴트 모델(3320)은 특정 디바이스에 특화된 모델로, 사용자의 음성 입력에 대응하는 타겟 디바이스가 수행할 동작을 결정할 수 있다. 제2 보이스 어시스턴트 모델(3320)은 제2 NLU 모델(3321), 제2 NLG 모델(3322) 및 액션 플랜 관리 모델(3323)을 포함할 수 있다. 보이스 어시스턴트 서버(3000)는 디바이스의 타입 별로 제2 보이스 어시스턴트 모델(3320)을 포함할 수 있다.The second
제2 NLU 모델(3321)은 특정 디바이스에 특화된 NLU 모델로서, 텍스트를 분석하고, 분석 결과에 기초하여 사용자의 의도에 관련된 제2 인텐트를 결정한다. 제2 NLU 모델(3321)은 디바이스의 기능을 고려하여 사용자의 입력 음성을 해석할 수 있다. 제2 NLU 모델(3321)은, 텍스트를 해석하여 텍스트에 대응하는 제2 인텐트를 획득하도록 학습된 모델일 수 있다. The
제2 NLG 모델(3322)은 특정 디바이스에 특화된 NLG 모델로서, 사용자에게 보이스 어시스턴트 서비스를 제공하기 위하여 필요한 질의 메시지를 생성할 수 있다. 제2 NLG 모델(3322)은 디바이스의 기능을 고려하여 사용자와의 대화를 위한 자연어를 생성할 수 있다.The
액션 플랜 관리 모델(3323)은, 디바이스에 특화된 모델로서 사용자의 음성 입력에 대응하는 타겟 디바이스가 수행할 동작을 결정하는 모델일 수 있다. 액션 플랜 관리 모델(3323)은 신규 디바이스(2900)의 기능을 고려하여 신규 디바이스(2900)가 수행할 동작 정보를 플래닝할 수 있다.The action
액션 플랜 관리 모델(3323)은 해석된 사용자의 발화 음성으로부터 신규 디바이스(2900)가 수행해야 할 세부 동작들을 선택하고 선택된 세부 동작들의 실행 순서를 플래닝할 수 있다. 액션 플랜 관리 모델(3323)은 플래닝 결과를 이용하여 신규 디바이스(2900)가 수행할 세부 동작에 관한 동작 정보를 획득할 수 있다. 동작 정보는, 디바이스가 수행할 세부 동작들, 세부 동작들 간의 연관 관계, 및 세부 동작들의 실행 순서와 관련된 정보일 수 있다. 동작 정보는 예를 들어, 세부 동작들의 수행을 위하여 신규 디바이스(2900)가 실행해야 할 기능들, 기능들의 실행 순서, 기능들을 실행하기 위하여 필요한 입력 값 및 기능들의 실행 결과로서 출력되는 출력 값을 포함할 수 있으나, 이에 한정되지 않는다.The action
액션 플랜 관리 모델(3323)은 신규 디바이스(2900)의 복수의 세부 동작들 및 복수의 세부 동작들 간의 관계에 관한 정보를 관리할 수 있다. 복수의 세부 동작들 중 각각의 세부 동작과 다른 세부 동작과의 연관 관계는, 하나의 세부 동작을 실행하기 위해서 그 세부 동작을 실행하기 전에 필수적으로 실행되어야 할 다른 세부 동작에 대한 정보를 포함할 수 있다.The action
액션 플랜 관리 모델(3323)은 디바이스의 동작들 및 동작들 간의 연관 관계를 나타내는 캡슐 형태의 데이터베이스인 CAN(Concept Action Network)를 포함할 수 있다. CAN(Concept Action Network)은 특정 동작의 수행을 위하여 디바이스가 실행해야 할 기능들, 기능들의 실행 순서, 기능들을 실행하기 위하여 필요한 입력 값 및 기능들의 실행 결과로서 출력되는 출력 값을 포함하며, 컨셉 및 컨셉 간의 관계를 나타내는 지식 트리플들로 구성된 온톨로지 그래프로 구현될 수 있다. The action
SDK 인터페이스 모듈(3330)은 클라이언트 디바이스(1000) 또는 개발자의 디바이스(미도시)와 통신 인터페이스(3100)를 통하여 데이터를 송수신할 수 있다. 클라이언트 디바이스(1000) 또는 개발자의 디바이스(미도시)는 신규 디바이스의 등록을 위한 소정의 소프트웨어 개발 킷(SDK: Software Development Kit)을 설치할 수 있으며, 설치된 소프트웨어 개발 킷을 통하여 보이스 어시스턴트 서버(3000)로부터 GUI를 수신할 수 있다. 프로세서(3200)는 신규 디바이스(2900)의 기능을 등록하고 발화 데이터의 생성을 위한 GUI를, SDK 인터페이스 모듈(3330)을 통하여 사용자의 디바이스(2000) 또는 개발자의 디바이스(미도시)에게 제공할 수 있다. 프로세서(3200)는 사용자의 디바이스(2000)에게 제공된 GUI를 통한 사용자의 응답 입력을 사용자의 디바이스(2000)로부터 SDK 인터페이스 모듈(3330)을 통하여 수신하거나, 개발자의 디바이스(미도시)에게 제공된 GUI를 통한 개발자의 응답 입력을 SDK 인터페이스 모듈(3330)을 통하여 개발자의 디바이스(미도시)로부터 수신할 수 있다. SDK 인터페이스 모듈(3330)은 IoT 클라우드 서버(4000)와 통신 인터페이스(3100)를 통하여 데이터를 송수신할 수도 있다.The
DB(3340)는 보이스 어시스턴트 서비스를 위한 각종 정보를 저장할 수 있다. DB(3340)는 발화 데이터 DB(3341) 및 액션 데이터 DB(3342)를 포함할 수 있다.The
발화 데이터 DB(3341)는 클라이언트 디바이스(1000), 디바이스(2000) 및 신규 디바이스(2900)의 기능들에 관련된 발화 데이터를 저장할 수 있다.The
액션 데이터 DB(3342)는 클라이언트 디바이스(1000), 디바이스(2000) 및 신규 디바이스(2900)의 기능들에 관련된 액션 데이터를 저장할 수 있다. 발화 데이터 DB에 저장된 발화 데이터 및 액션 데이터 DB(3342)에 저장된 액션 데이터는 서로 매핑될 수 있다.The
도 14는 본 개시의 일 실시예에 따른 보이스 어시스턴트 서버의 다른 예시를 나타내는 도면이다.14 is a diagram illustrating another example of a voice assistant server according to an embodiment of the present disclosure.
도 14를 참조하면, 보이스 어시스턴트 서버(3000)는 하나의 제2 보이스 어시스턴트 모델(3320)을 포함할 수 있다. 이 경우, 제2 보이스 어시스턴트 모델(3320)은 복수의 제2 NLU 모델들(3324, 3325, 3326)을 포함할 수 있다. 복수의 제2 NLU 모델들(3324, 3325, 3326)은 디바이스의 타입 별로 특화된 NLU 모델일 수 있다. Referring to FIG. 14, the
도 15는 본 개시의 일 실시예에 따른 액션 플랜 관리 모델을 도시한 개념도이다.15 is a conceptual diagram illustrating an action plan management model according to an embodiment of the present disclosure.
도 15를 참조하면, 액션 플랜 관리 모델(3323)은 스피커 CAN(212), 모바일 CAN(214), 및 TV CAN(216)을 포함할 수 있다. 스피커 CAN(212)은 스피커 제어, 미디어 재생, 날씨, 및 TV 제어를 포함하는 세부 동작들에 관한 정보와, 세부 동작들 각각에 대응되는 컨셉을 캡슐 형태로 저장하는 액션 플랜을 포함할 수 있다. 모바일 CAN(214)은 SNS, 모바일 제어, 지도, 및 QA를 포함하는 세부 동작들에 관한 정보와, 세부 동작들 각각에 대응되는 컨셉을 캡슐 형태로 저장하는 액션 플랜을 포함할 수 있다. TV CAN(216)은 쇼핑, 미디어 재생, 교육, 및 TV 재생을 포함하는 세부 동작들에 관한 정보와, 세부 동작들 각각에 대응되는 컨셉을 캡슐 형태로 저장하는 액션 플랜을 포함할 수 있다. 일 실시예에서, 스피커 CAN(212), 모바일 CAN(214), 및 TV CAN(216) 각각에 포함된 복수의 캡슐은 액션 플랜 관리 모델(3323) 내의 구성 요소인 기능 저장소(function registry)에 저장될 수 있다. Referring to FIG. 15, the action
일 실시예에서, 액션 플랜 관리 모델(3323)은 보이스 어시스턴트 서버(3000)가 제2 NLU 모델을 통해, 음성 입력으로부터 변환된 텍스트를 해석함으로써 결정된 제2 인텐트 및 파라미터에 대응되는 세부 동작들을 결정할 때 필요한 전략 레지스트리(strategy registry)를 포함할 수 있다. 전략 레지스트리는 텍스트와 관련된 복수의 액션 플랜이 있는 경우, 하나의 액션 플랜을 결정하기 위한 기준 정보를 포함할 수 있다. 일 실시예에서, 액션 플랜 관리 모델(3323)은 지정된 상황에서 사용자에게 후속 동작을 제안하기 위한 후속 동작의 정보가 저장된 후속 동작 레지스트리(follow up registry)를 포함할 수 있다. 상기 후속 동작은, 예를 들어, 후속 발화를 포함할 수 있다. In one embodiment, the action
일 실시예에서, 액션 플랜 관리 모델(3323)은 타겟 디바이스에 의해 출력되는 레이아웃(layout) 정보를 저장하는 레이아웃 레지스트리(layout registry)를 포함할 수 있다. In an embodiment, the action
일 실시예에서, 액션 플랜 관리 모델(3323)은 캡슐 정보에 포함된 어휘(vocabulary) 정보가 저장된 어휘 레지스트리(vocabulary registry)를 포함할 수 있다. 일 실시예에서, 액션 플랜 관리 모델(3323)은 사용자와의 대화(dialog)(또는, 인터렉션(interaction)) 정보가 저장된 대화 레지스트리(dialog registry)를 포함할 수 있다.In one embodiment, the action
도 16은 본 개시의 일 실시예에 따른 액션 플랜 관리 모델에 저장된 캡슐 데이터베이스를 도시한 도면이다. 16 is a diagram illustrating a capsule database stored in an action plan management model according to an embodiment of the present disclosure.
도 16을 참조하면, 캡슐 데이터베이스는 세부 동작들과, 세부 동작들에 대응되는 컨셉에 관한 관계 정보가 저장되어 있다. 캡슐 데이터베이스는 CAN(Concept Action Network) 형태로 구현될 수 있다. 캡슐 데이터베이스는 복수의 캡슐(230, 240, 250)을 저장할 수 있다. 캡슐 데이터베이스는 사용자의 음성 입력과 관련된 동작들을 실행하기 위한 세부 동작, 및 세부 동작을 위해 필요한 입력 파라미터 값 및 출력 결과 값을 CAN(concept action network) 형태로 저장될 수 있다.Referring to FIG. 16, the capsule database stores detailed operations and relationship information about concepts corresponding to the detailed operations. The capsule database can be implemented in the form of a CAN (Concept Action Network). The capsule database may store a plurality of
캡슐 데이터베이스는 디바이스 별로 동작에 관련된 정보를 저장할 수 있다. 도 19에 도시된 실시예에서, 캡슐 데이터베이스는 특정 디바이스, 예를 들어 TV가 수행하는 동작들과 관련된 복수의 캡슐(230, 240, 250)을 저장할 수 있다. 일 실시예에서, 하나의 캡슐(예를 들어, 캡슐 A(230))은 하나의 애플리케이션에 대응될 수 있다. 하나의 캡슐은 지정된 기능을 수행하기 위한 적어도 하나 이상의 세부 동작 및 적어도 하나 이상의 컨셉을 포함할 수 있다. 예를 들어, 캡슐 A(230)의 경우 세부 동작(231a)와 세부 동작(231a)에 대응되는 컨셉(231b)을 포함하고, 캡슐 B(240)는 복수의 세부 동작들(241a, 242a, 243a)과, 복수의 세부 동작들(241a, 242a, 243a) 각각에 대응되는 복수의 컨셉(241b, 242b, 243b)을 포함할 수 있다. The capsule database may store information related to operation for each device. In the embodiment shown in FIG. 19, the capsule database may store a plurality of
액션 플랜 관리 모델(210)은 캡슐 데이터베이스에 저장된 캡슐을 이용하여 사용자의 음성 입력과 관련된 동작을 수행하기 위한 액션 플랜을 생성할 수 있다. 예를 들어, 액션 플랜 관리 모델(210)은 캡슐 데이터베이스에 저장된 캡슐을 이용하여 액션 플랜을 생성할 수 있다. 예를 들어, 액션 플랜 관리 모델(210)은 캡슐 A(230)의 세부 동작(231a)과 컨셉(231b), 캡슐 B(240)의 세부 동작들(241a, 242a, 243a)과 컨셉들(241b, 242b, 243b) 및 캡슐 C(250)의 세부 동작(251a) 및 컨셉(251b)를 이용하여, 디바이스가 수행할 동작들에 관련된 액션 플랜(260)을 생성할 수 있다. The action plan management model 210 may generate an action plan for performing an operation related to a user's voice input by using a capsule stored in a capsule database. For example, the action plan management model 210 may generate an action plan using a capsule stored in a capsule database. For example, the action plan management model 210 includes
도 17은 본 개시의 일 실시예에 따른 IoT 클라우드 서버의 블록도이다.17 is a block diagram of an IoT cloud server according to an embodiment of the present disclosure.
도 17을 참조하면, 본 개시의 일 실시예에 따른 IoT 클라우드 서버(4000)는 통신 인터페이스(4100), 프로세서(4200) 및 저장부(4300)를 포함하며, 저장부(4300)는 SDK 인터페이스 모듈(4310), 기능 비교 모듈(4320), 디바이스 등록 모듈(4330), 및 DB(4340)를 포함할 수 있다. 또한, DB(4340)는 디바이스 기능 DB(4341) 및 액션 데이터 DB(4342)를 포함할 수 있다.Referring to FIG. 17, the
통신 인터페이스(4100)는, 클라이언트 디바이스(1000), 디바이스(2000) 및 보이스 어시스턴트 서버(3000)와 통신을 수행한다. 통신 인터페이스(4100)는 클라이언트 디바이스(1000), 디바이스(2000) 및 보이스 어시스턴트 서버(3000)와 통신을 위한 하나 이상의 구성요소를 포함할 수 있다.The
프로세서(4200)는 통상적으로 IoT 클라우드 서버(4000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(4200)는, 저장부(4300)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 IoT 클라우드 서버(4000)의 기능을 제어할 수 있다.The
저장부(4300)는 프로세서(4200)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(2000)의 기능과 관련된 데이터를 저장할 수 있다. 저장부(4300)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The
저장부(4300)는 에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, SDK 인터페이스 모듈(4310), 기능 비교 모듈(4320), 및 디바이스 등록 모듈(4330) 등으로 분류될 수 있다.The programs stored in the
SDK 인터페이스 모듈(4310)은 보이스 어시스턴트 서버(3000)와 통신 인터페이스(4100)를 통하여 데이터를 송수신할 수 있다. 프로세서(4200)는 디바이스(2000)의 기능 정보를, SDK 인터페이스 모듈(4310)을 통하여 보이스 어시스턴트 서버(3000)에게 제공할 수 있다. The
기능 비교 모듈(4320)이 IoT 클라우드 서버(4000) 내에 포함되는 경우에, 기능 비교 모듈(4320)은 전술한 보이스 어시스턴트 서버(3000)의 기능 비교 모델(3315)의 역할을 수행할 수 있다.When the
이 경우, 기능 비교 모듈(4320)은 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능을 비교할 수 있다. 기능 비교 모듈(4320)은 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다. 기능 비교 모듈(4320)은 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(2000)의 기능과 동일 또는 유사한 기능을 식별할 수 있다.In this case, the
기능 비교 모듈(4320)은 신규 디바이스(2900)의 명세 정보로부터 신규 디바이스(2900)에 의해 지원되는 기능을 나타내는 명칭을 식별하고, 식별된 명칭이 기등록된 디바이스(2000)에 의해 지원되는 기능의 명칭과 동일 또는 유사한 지를 판단할 수 있다. 이 경우, DB(4340)는 소정 기능을 나타내는 명칭 및 유사어들에 관한 정보를 미리 저장할 수 있으며, 저장된 유사어 정보에 기초하여 기등록된 디바이스(2000)의 기능과 신규 디바이스(2900)의 기능이 동일 또는 유사한지를 판단할 수 있다.The
또한, 기능 비교 모듈(4320)은 DB(4340)에 저장된 발화 데이터를 참고하여 기능의 동일 유사 여부를 판단할 수 있다. 기능 비교 모듈(3315)은 기등록된 디바이스(2000)의 기능과 관련된 발화 데이터를 이용하여, 신규 디바이스(2900)의 기능이 기등록된 디바이스(2000)의 기능과 동일 또는 유사한지를 판단할 수 있다. 기능 비교 모듈(4320)은 기등록된 디바이스(2000)의 단일 기능과 신규 디바이스(2900)의 단일 기능이 동일 또는 유사한 지를 판단할 수 있다. 기능 비교 모듈(4320)은 기등록된 디바이스(2000)의 기능 세트와 신규 디바이스(2900)의 기능 세트가 동일 또는 유사한 지를 판단할 수 있다.In addition, the
디바이스 등록 모듈(4330)은 보이스 어시스턴트 서비스를 위해 디바이스를 등록할 수 있다. 디바이스 등록 모듈(4330)은 신규 디바이스(2900)가 식별되는 경우에, 신규 디바이스(2900)의 기능들에 관한 정보를 보이스 어시스턴트 서버(3000)로부터 수신하고, 수신된 정보를 DB(4340)에 등록할 수 있다. 신규 디바이스(2900)의 기능들에 관한 정보는, 예를 들어, 신규 디바이스(2900)에 의해 지원되는 기능들, 기능들에 관련된 액션 데이터 등을 포함할 수 있으나, 이에 제한되지 않는다.The
DB(4340)는 보이스 어시스턴트 서비스를 위해 필요한 디바이스 정보를 저장할 수 있다. DB(4340)는 디바이스 기능 DB(4341) 및 액션 데이터 DB(4342)를 포함할 수 있다. 디바이스 기능 DB(4340)는 클라이언트 디바이스(1000), 디바이스(2000) 및 신규 디바이스(2900)의 기능 정보를 저장할 수 있다. 기능 정보는 디바이스의 기능의 식별 값, 기능의 명칭 및 기능의 속성에 관한 정보를 포함할 수 있으나, 이에 제한되지 않는다. 액션 데이터 DB(4342)는 클라이언트 디바이스(1000), 디바이스(2000) 및 신규 디바이스(2900)의 기능들에 관련된 액션 데이터를 저장할 수 있다.The
도 18은 본 개시의 일 실시예에 따른 클라이언트 디바이스의 블록도이다.18 is a block diagram of a client device according to an embodiment of the present disclosure.
도 18을 참조하면, 본 개시의 일 실시예에 따른 클라이언트 디바이스(1000)는 입력부(1100), 출력부(1200), 프로세서(1300), 메모리(1400) 및 통신 인터페이스(1500)를 포함하며, 메모리(1400)는 SDK 모듈(1420)을 포함할 수 있다.Referring to FIG. 18, a
일 실시예에 따르면, 디바이스(2000)가 클라이언트 디바이스(1000)로 동작하거나, 신규 디바이스(2900)가 등록된 이후에 등록된 신규 디바이스(2900)가 클라이언트 디바이스(1000)로 동작할 수도 있다. 디바이스(2000) 또는 신규 디바이스(2900)가 도 18의 구성들을 포함할 수도 있다.According to an embodiment, the
입력부(1100)는, 사용자가 클라이언트 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.The
입력부(1100)는 신규 디바이스(2900)를 등록하기 위한 사용자 입력을 수신할 수 있다. The
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부, 음향 출력부, 또는 진동 모터 중 적어도 하나를 포함할 수 있다.The
프로세서(1300)는, 클라이언트 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1400)에 저장된 프로그램들을 실행함으로써, 입력부(1100), 출력부(1200), 메모리(1400) 및 통신 인터페이스(1500) 등을 전반적으로 제어할 수 있다. The
프로세서(1300)는, 신규 디바이스(2900)의 기능을 등록하기 위한 입력을 사용자에게 요청할 수 있다. 프로세서(1300)는 후술할 SDK 모듈(1420)을 제어함으로써, 신규 디바이스(2900)의 등록을 위한 동작을 보이스 어시스턴트 서버(300)와 함께 수행할 수 있다.The
프로세서(1300)는 신규 디바이스(2900) 기능에 관련된 발화 데이터를 생성하고 편집하기 위한 질의 메시지를 보이스 어시스턴트 서버(3000)로부터 수신하여 출력할 수 있다. 프로세서(1300)는 신규 디바이스(2900)의 기능들 중에서 기등록된 디바이스(1300)의 기능과 상이한 기능들의 목록을 사용자에게 제공할 수 있다. 프로세서(1300)는 신규 디바이스(2900)의 기능들 중 적어도 일부에 관련된 추천 발화 데이터를 사용자에게 제공할 수 있다.The
프로세서(1300)는 질의 메시지에 대한 사용자의 응답을 수신할 수 있다. 프로세서(1300)는 사용자의 응답을 보이스 어시스턴트 서버(3000)에게 제공하여, 보이스 어시스턴트 서버(3000)가 신규 디바이스(2900)의 기능들에 관련된 발화 데이터 및 액션 데이터를 생성하도록 할 수 있다.The
통신 인터페이스(1500)는, 보이스 어시스턴트 서버(3000), IoT 클라우드 서버(4000), 디바이스(2000) 및 신규 디바이스(2900)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신 인터페이스(1500)는, 근거리 통신부, 이동 통신부, 방송 수신부를 포함할 수 있다. The
근거리 통신부(short-range wireless communication unit)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. The short-range wireless communication unit includes a Bluetooth communication unit, a Bluetooth Low Energy (BLE) communication unit, a Near Field Communication unit, a WLAN (Wi-Fi) communication unit, a Zigbee communication unit, an infrared (IrDA, infrared) communication unit. Data Association) communication unit, WFD (Wi-Fi Direct) communication unit, UWB (ultra wideband) communication unit, and may include an Ant+ communication unit, but is not limited thereto.
이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The mobile communication unit transmits and receives a radio signal with at least one of a base station, an external terminal, and a server on a mobile communication network. Here, the wireless signal may include a voice call signal, a video call signal, or various types of data according to transmission/reception of text/multimedia messages.
방송 수신부는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 제 1 디바이스(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.The broadcast receiver receives a broadcast signal and/or broadcast-related information from outside through a broadcast channel. Broadcast channels may include satellite channels and terrestrial channels. According to an implementation example, the
메모리(1400)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 클라이언트 디바이스(1000)로 입력되거나 클라이언트 디바이스(1000)로부터 출력되는 데이터를 저장할 수도 있다. The
메모리(1400)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The
메모리(1400)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, SDK 모듈(1420), UI 모듈(미도시), 터치 스크린 모듈(미도시), 알림 모듈(미도시) 등으로 분류될 수 있다.Programs stored in the
SDK 모듈(1420)은 프로세서(1300)에 의해 실행되어 신규 디바이스(2900)의 등록을 위해 필요한 동작을 수행할 수 있다. SDK 모듈(1420)은 보이스 어시스턴트 서버(3000)로부터 다운로드되어 클라이언트 디바이스(1000) 내에 설치될 수 있다. SDK 모듈(1420)은 신규 디바이스(2900)의 등록을 위한 GUI를 클라이언트 디바이스(1000)의 화면 상에 출력할 수 있다. 만약, 클라이언트 디바이스(1000)가 디스플레이 장치를 포함하지 않는 장치인 경우에, SDK 모듈(1420)은 클라이언트 디바이스(1000)가 신규 디바이스(2900)의 등록을 위한 음성 메시지를 출력하도록 할 수 있다. SDK 모듈(1420)은 클라이언트 디바이스(1000)가 사용자로부터의 응답을 수신하여 보이스 어시스턴트 서버(3000)에게 제공하도록 할 수 있다.The
본 개시의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다. An embodiment of the present disclosure may also be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by a computer. Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Further, the computer-readable media may include computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media may typically contain computer readable instructions, data structures, or other data in a modulated data signal such as a program module.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.In addition, in the present specification, the “unit” may be a hardware component such as a processor or a circuit, and/or a software component executed by a hardware configuration such as a processor.
또한, 본 명세서에서, “a, b 또는 c 중 적어도 하나를 포함한다”는 “a만 포함하거나, b만 포함하거나, c만 포함하거나, a 및 b를 포함하거나, b 및 c를 포함하거나, a 및 c를 포함하거나, a, b 및 c를 모두 포함하는 것을 의미할 수 있다.In addition, in the present specification, “including at least one of a, b, or c” means “including only a, only b, only c, including a and b, or including b and c, It may mean including a and c, or including all of a, b and c.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present disclosure is for illustrative purposes only, and those skilled in the art to which the present disclosure pertains will be able to understand that it is possible to easily transform it into other specific forms without changing the technical spirit or essential features of the present disclosure will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present disclosure. do.
Claims (20)
적어도 하나의 기등록된 디바이스의 기능들을 나타내는 명세 정보(specification)를 획득하는 동작;
상기 명세 정보에 기초하여 상기 기등록된 디바이스의 기능들 및 상기 신규 디바이스의 기능들을 비교하는 동작;
상기 비교 결과에 기초하여, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들에 대응되는 기능들을 식별하는 동작;
상기 식별된 기능들 중 적어도 일부에 관련된 기 등록된 발화 데이터를 획득하는 동작;
상기 식별된 기능들 및 상기 획득된 기등록된 발화 데이터에 기초하여, 상기 신규 디바이스에 대한 액션 데이터를 생성하는 동작; 및
상기 획득된 발화 데이터 및 상기 생성된 액션 데이터를 상기 신규 디바이스와 연관하여 저장하는 동작;
을 포함하며,
상기 액션 데이터는, 상기 획득된 발화 데이터에 대응되는 상기 신규 디바이스의 일련의 세부 기능들에 관한 데이터를 포함하는 것인, 방법.
In the method for the server to register a new device for voice assistant service,
Acquiring specification information indicating functions of at least one pre-registered device;
Comparing functions of the previously registered device and functions of the new device based on the specification information;
Identifying functions corresponding to functions of the previously registered device among functions of the new device based on the comparison result;
Obtaining pre-registered speech data related to at least some of the identified functions;
Generating action data for the new device based on the identified functions and the acquired pre-registered speech data; And
Storing the obtained speech data and the generated action data in association with the new device;
Including,
The action data includes data on a series of detailed functions of the new device corresponding to the acquired speech data.
상기 대응되는 기능들을 식별하는 동작은,
상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들과 동일 또는 유사한 목적의 기능들을 식별하는 것인, 방법.
The method of claim 1,
The operation of identifying the corresponding functions,
Among the functions of the new device, functions of the same or similar purpose as those of the previously registered device are identified.
상기 비교하는 동작은,
상기 적어도 하나의 기등록된 디바이스의 기능들의 조합을 상기 신규 디바이스의 기능들의 조합과 비교함으로써, 상기 신규 디바이스의 기능들의 조합에 대응되는 상기 적어도 하나의 기등록된 디바이스의 기능들의 조합을 식별하는 것인, 방법.
The method of claim 1,
The comparing operation,
Identifying a combination of functions of the at least one pre-registered device corresponding to the combination of functions of the new device by comparing a combination of functions of the at least one previously registered device with a combination of functions of the new device Being, the way.
상기 적어도 하나의 기 등록된 디바이스는, 복수의 기 등록된 디바이스를 포함하며,
상기 비교하는 동작은,
상기 복수의 기 등록된 디바이스 중 제1 디바이스의 기능 및 상기 복수의 기 등록된 디바이스 중 제2 디바이스의 기능의 조합을 상기 신규 디바이스의 기능들의 조합과 비교하는 것인, 방법.
The method of claim 3,
The at least one pre-registered device includes a plurality of pre-registered devices,
The comparing operation,
And comparing a combination of a function of a first device among the plurality of pre-registered devices and a function of a second device among the plurality of pre-registered devices with a combination of functions of the new device.
상기 비교하는 동작은,
상기 적어도 하나의 기등록된 디바이스의 기능 세트 내의 기능들 중 일부를 삭제하고, 상기 삭제 후 남은 상기 기능을 상기 신규 디바이스의 기능과 비교하는 동작을 포함하는 것인, 방법.
The method of claim 1,
The comparing operation,
And deleting some of the functions in the function set of the at least one pre-registered device, and comparing the function remaining after the deletion with the function of the new device.
상기 기 등록된 발화 데이터를 획득하는 동작은, 상기 식별된 기능들에 대응되는 발화 데이터들을 DB로부터 추출하는 동작; 및
상기 추출된 발화 데이터들을 편집하는 동작;
을 포함하는 것인, 방법.
The method of claim 1,
The operation of obtaining the pre-registered speech data may include: extracting speech data corresponding to the identified functions from a DB; And
Editing the extracted speech data;
The method comprising a.
상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들과 상이한 기능들을 식별하는 동작; 및
상기 상이한 기능들의 목록을 클라이언트 디바이스에게 제공하는 동작;
을 더 포함하는 것인, 방법.
The method of claim 1,
Identifying functions different from those of the previously registered device among functions of the new device; And
Providing a list of the different functions to a client device;
The method further comprising.
상기 클라이언트 디바이스에게 제공된 상기 상이한 기능들의 목록은, 상기 클라이언트 디바이스에 설치된 SDK(Software Developing kit) 모듈에 의해 상기 상이한 기능에 대응되는 발화 데이터를 생성하는데 이용되는 것인, 방법.
The method of claim 7,
The method, wherein the list of different functions provided to the client device is used to generate speech data corresponding to the different functions by an SDK (Software Developing kit) module installed in the client device.
상기 획득된 발화 데이터 및 상기 생성된 액션 데이터는, 상기 신규 디바이스에 특화된 보이스 어시스턴트 모델을 생성 또는 업데이트하는데 이용되는 것인, 방법.
The method of claim 1,
The obtained speech data and the generated action data are used to create or update a voice assistant model specialized for the new device.
상기 획득된 발화 데이터 및 상기 생성된 액션 데이터는, 상기 신규 디바이스의 동작들 및 동작들 간의 관계를 나타내는 지식 트리플들을 포함하는 온톨로지 그래프를 생성 또는 업데이트하는데 이용되는 것인, 방법.
The method of claim 1,
The obtained speech data and the generated action data are used to generate or update an ontology graph including knowledge triples representing actions of the new device and relationships between actions.
통신 인터페이스;
하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및
상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서; 를 포함하고,
상기 프로세서는,
적어도 하나의 기등록된 디바이스의 기능들을 나타내는 명세 정보(specification)를 획득하고, 상기 명세 정보에 기초하여 상기 기등록된 디바이스의 기능들 및 상기 신규 디바이스의 기능들을 비교하고, 상기 비교 결과에 기초하여, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들에 대응되는 기능들을 식별하고, 상기 식별된 기능들 중 적어도 일부에 관련된 기 등록된 발화 데이터를 획득하고, 상기 식별된 기능들 및 상기 획득된 기등록된 발화 데이터에 기초하여, 상기 신규 디바이스에 대한 액션 데이터를 생성하고, 상기 획득된 발화 데이터 및 상기 생성된 액션 데이터를 상기 신규 디바이스와 연관하여 소정의 DB(DataBase)에 저장하며,
상기 액션 데이터는, 상기 획득된 발화 데이터에 대응되는 상기 신규 디바이스의 일련의 세부 기능들에 관한 데이터를 포함하는 것인, 서버.
In the server for registering a new device for voice assistant service,
Communication interface;
A memory storing a program including one or more instructions; And
A processor that executes one or more instructions of a program stored in the memory; Including,
The processor,
Obtaining specification information representing functions of at least one pre-registered device, comparing functions of the pre-registered device and functions of the new device based on the specification information, and based on the comparison result , Among the functions of the new device, identify functions corresponding to the functions of the previously registered device, obtain pre-registered speech data related to at least some of the identified functions, and the identified functions and the Based on the acquired pre-registered speech data, action data for the new device is generated, and the obtained speech data and the generated action data are stored in a predetermined DB (DataBase) in association with the new device,
The action data includes data on a series of detailed functions of the new device corresponding to the acquired speech data.
상기 프로세서는, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들과 동일 또는 유사한 목적의 기능들을 식별하는 것인, 서버.
The method of claim 11,
The processor, among the functions of the new device, identifies functions of the same or similar purpose as the functions of the previously registered device.
상기 프로세서는, 상기 적어도 하나의 기등록된 디바이스의 기능들의 조합을 상기 신규 디바이스의 기능들의 조합과 비교함으로써, 상기 신규 디바이스의 기능들의 조합에 대응되는 상기 적어도 하나의 기등록된 디바이스의 기능들의 조합을 식별하는 것인, 서버.
The method of claim 11,
The processor, by comparing the combination of functions of the at least one previously registered device with the combination of functions of the new device, the combination of functions of the at least one pre-registered device corresponding to the combination of functions of the new device To identify the server.
상기 적어도 하나의 기 등록된 디바이스는, 복수의 기 등록된 디바이스를 포함하며,
상기 프로세서는, 상기 복수의 기 등록된 디바이스 중 제1 디바이스의 기능 및 상기 복수의 기 등록된 디바이스 중 제2 디바이스의 기능의 조합을 상기 신규 디바이스의 기능들의 조합과 비교하는 것인, 서버.
The method of claim 13,
The at least one pre-registered device includes a plurality of pre-registered devices,
Wherein the processor compares a combination of a function of a first device among the plurality of pre-registered devices and a function of a second device among the plurality of pre-registered devices with a combination of functions of the new device.
상기 프로세서는, 상기 적어도 하나의 기등록된 디바이스의 기능 세트 내의 기능들 중 일부를 삭제하고, 상기 삭제 후 남은 상기 기능을 상기 신규 디바이스의 기능과 비교하는 것인, 서버.
The method of claim 11,
Wherein the processor deletes some of the functions in the function set of the at least one pre-registered device, and compares the function remaining after the deletion with the function of the new device.
상기 프로세서는, 상기 기 등록된 발화 데이터를 획득하는 동작은, 상기 식별된 기능들에 대응되는 발화 데이터들을 상기 DB로부터 추출하고, 상기 추출된 발화 데이터들을 편집하는 것인, 서버.
The method of claim 11,
The processor, the operation of obtaining the pre-registered speech data, extracts speech data corresponding to the identified functions from the DB, and edits the extracted speech data.
상기 프로세서는, 상기 신규 디바이스의 기능들 중에서 상기 기 등록된 디바이스의 기능들과 상이한 기능들을 식별하고, 상기 상이한 기능들의 목록을 클라이언트 디바이스에게 제공하는 것인, 서버.
The method of claim 11,
The processor, among functions of the new device, identifies functions different from those of the previously registered device, and provides a list of the different functions to a client device.
상기 클라이언트 디바이스에게 제공된 상기 상이한 기능들의 목록은, 상기 클라이언트 디바이스에 설치된 SDK(Software Developing kit) 모듈에 의해 상기 상이한 기능에 대응되는 발화 데이터를 생성하는데 이용되는 것인, 서버.
The method of claim 17,
The list of the different functions provided to the client device is used to generate speech data corresponding to the different functions by a software developing kit (SDK) module installed in the client device.
상기 획득된 발화 데이터 및 상기 생성된 액션 데이터는, 상기 신규 디바이스에 특화된 보이스 어시스턴트 모델을 생성 또는 업데이트하는데 이용되는 것인, 서버.
The method of claim 11,
The obtained speech data and the generated action data are used to create or update a voice assistant model specialized for the new device.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP23167998.6A EP4220631B1 (en) | 2019-07-29 | 2020-07-29 | System and method for registering device for voice assistant service |
PCT/KR2020/009993 WO2021020877A1 (en) | 2019-07-29 | 2020-07-29 | System and method for registering device for voice assistant service |
EP20847632.5A EP3977445B1 (en) | 2019-07-29 | 2020-07-29 | System and method for registering device for voice assistant service |
US16/942,251 US11695809B2 (en) | 2019-07-29 | 2020-07-29 | System and method for registering device for voice assistant service |
CN202080053916.7A CN114270361A (en) | 2019-07-29 | 2020-07-29 | System and method for registering devices for voice assistant services |
US18/313,076 US11979437B2 (en) | 2019-07-29 | 2023-05-05 | System and method for registering device for voice assistant service |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962879638P | 2019-07-29 | 2019-07-29 | |
US62/879,638 | 2019-07-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210014053A true KR20210014053A (en) | 2021-02-08 |
Family
ID=74560406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190125679A KR20210014053A (en) | 2019-07-29 | 2019-10-10 | System and method for registering device for voice assistant service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210014053A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024106768A1 (en) * | 2022-11-15 | 2024-05-23 | 삼성전자주식회사 | Display device for onboarding plurality of voice assistants using plurality of qr codes, electronic device, and method for controlling display device and electronic device |
-
2019
- 2019-10-10 KR KR1020190125679A patent/KR20210014053A/en active Search and Examination
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024106768A1 (en) * | 2022-11-15 | 2024-05-23 | 삼성전자주식회사 | Display device for onboarding plurality of voice assistants using plurality of qr codes, electronic device, and method for controlling display device and electronic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4220631B1 (en) | System and method for registering device for voice assistant service | |
US11580964B2 (en) | Electronic apparatus and control method thereof | |
KR102309540B1 (en) | Server for seleting a target device according to a voice input, and controlling the selected target device, and method for operating the same | |
KR102189855B1 (en) | Parameter collection and automatic dialog generation in dialog systems | |
US20200349940A1 (en) | Server for determining target device based on speech input of user and controlling target device, and operation method of the server | |
CN110998720A (en) | Voice data processing method and electronic device supporting the same | |
US11721343B2 (en) | Hub device, multi-device system including the hub device and plurality of devices, and method of operating the same | |
US20200210505A1 (en) | Electronic apparatus and controlling method thereof | |
KR20160132748A (en) | Electronic apparatus and the controlling method thereof | |
KR20200023088A (en) | Electronic apparatus for processing user utterance and controlling method thereof | |
US20240129567A1 (en) | Hub device, multi-device system including the hub device and plurality of devices, and operating method of the hub device and multi-device system | |
KR20210014053A (en) | System and method for registering device for voice assistant service | |
KR20220109238A (en) | Device and method for providing recommended sentence related to utterance input of user | |
US11670294B2 (en) | Method of generating wakeup model and electronic device therefor | |
KR20210098250A (en) | Electronic device and Method for controlling the electronic device thereof | |
KR20200127823A (en) | The hub device, multi device system comprising the hub device and a plurality of devices and method operating the same | |
US11893996B1 (en) | Supplemental content output | |
US11769503B2 (en) | Electronic device and method for processing user utterance in the electronic device | |
US11908452B1 (en) | Alternative input representations for speech inputs | |
US11955122B1 (en) | Detecting machine-outputted audio | |
US20240212687A1 (en) | Supplemental content output | |
KR102677052B1 (en) | System and method for providing voice assistant service | |
US20230085539A1 (en) | Electronic device and speech processing method thereof | |
US20240112676A1 (en) | Apparatus performing based on voice recognition and artificial intelligence and method for controlling thereof | |
KR20210053150A (en) | The hub device, multi device system comprising the hub device and a plurality of devices and method operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |