KR20210109722A - Device for generating control information based on user's utterance status - Google Patents
Device for generating control information based on user's utterance status Download PDFInfo
- Publication number
- KR20210109722A KR20210109722A KR1020200024554A KR20200024554A KR20210109722A KR 20210109722 A KR20210109722 A KR 20210109722A KR 1020200024554 A KR1020200024554 A KR 1020200024554A KR 20200024554 A KR20200024554 A KR 20200024554A KR 20210109722 A KR20210109722 A KR 20210109722A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- movement
- information
- voice input
- control information
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 81
- 230000005236 sound signal Effects 0.000 claims abstract description 64
- 230000033001 locomotion Effects 0.000 claims description 246
- 238000004891 communication Methods 0.000 claims description 35
- 238000010586 diagram Methods 0.000 description 21
- 238000004590 computer program Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 230000007423 decrease Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000003062 neural network model Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000000691 measurement method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000283153 Cetacea Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000026058 directional locomotion Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000000867 larynx Anatomy 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- 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
-
- 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
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/93—Discriminating between voiced and unvoiced parts of speech signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
본 개시는 사용자의 발화(utterance) 상태에 기초하여 음성인식을 수행하고, 음성인식에 따른 제어 명령을 생성하는 디바이스 및 디바이스의 제어 방법에 관한 것으로, 보다 상세하게는 디바이스가 사용자의 실제 발화에 따른 음성 명령을 인식하고 인식된 음성 명령에 따른 디바이스의 제어를 위한 제어 명령을 생성하거나, 사용자의 신체 일부분의 움직임에 따른 움직임 정보와 인식된 음성 명령을 이용하여 디바이스의 제어 명령을 생성하는 것과 관련된다.The present disclosure relates to a device that performs voice recognition based on a user's utterance state, and generates a control command according to voice recognition, and a control method of the device, and more particularly, the device performs voice recognition according to the user's actual utterance. Recognizing a voice command and generating a control command for controlling the device according to the recognized voice command, or generating a control command for the device using motion information according to the movement of a user's body part and the recognized voice command .
IT 기술의 발달로 인해서 디바이스 형태, 서비스, 콘텐츠, 디바이스와 사용자간의 인터페이스 등이 다양하게 변화되고 있다. 종래 디바이스와 사람간의 인터페이스는 소정의 입력 수단을 통한 사용자의 직접적인 터치에 의한 접촉식 인터페이스가 주로 이용되었다. 예를 들어, PC에서는 키보드나 마우스를 이용한 사용자의 입력 인터페이스가 이용되었으며, 스마트폰에서는 사용자가 손가락으로 화면을 직관적으로 터치하는 인터페이스가 주로 이용되었다. 최근에는 디바이스와 사람 사이의 인터페이스로서 음성인식(speech recognition)이 주목받고 있다. 음성인식은 마이크와 같은 소리 센서를 통해 얻은 음향학적 신호(acoustic speech signal)를 단어나 문장으로 변환시키는 기술이다. Due to the development of IT technology, device types, services, contents, and interfaces between devices and users are changing in various ways. Conventionally, as an interface between a device and a person, a contact-type interface by a user's direct touch through a predetermined input means has been mainly used. For example, a user input interface using a keyboard or mouse is used in a PC, and an interface in which a user intuitively touches a screen with a finger is mainly used in a smart phone. Recently, speech recognition as an interface between a device and a person has been attracting attention. Speech recognition is a technology that converts an acoustic speech signal obtained through a sound sensor such as a microphone into words or sentences.
음성 인식 기술이 발전함에 따라, 사용자는 디바이스에 음성을 입력하고, 음성 입력에 따른 디바이스의 동작의 제어가 가능하게 되었다. 그러나, 종래 음성 인식 기술은 디바이스의 사용자 이외의 외부 사용자의 대화 등에 의한 외부 노이즈에 취약하여 정확한 사용자의 음성을 인식하기 어려운 경우가 있다. 또한, 종래 음성 인식 기술은, 사용자의 음성 입력에 따른 동작이 사용자의 음성 입력 완료 후 이루어지며, 사용자의 음성 입력 동안 적절한 피드백이 이루어지지 않았다. 이에 따라, 사용자의 음성 입력을 보다 정확하게 인식하고, 사용자의 음성 입력 동안에도 사용자가 의도한 디바이스의 제어 동작을 수행할 수 있는 기술이 요구되고 있다.As voice recognition technology develops, a user inputs a voice into a device, and it becomes possible to control an operation of the device according to the voice input. However, the conventional voice recognition technology is vulnerable to external noise caused by a conversation of an external user other than the user of the device, and thus it may be difficult to accurately recognize the user's voice. In addition, in the conventional voice recognition technology, an operation according to the user's voice input is performed after the user's voice input is completed, and proper feedback is not made during the user's voice input. Accordingly, there is a need for a technology capable of more accurately recognizing a user's voice input and performing a device control operation intended by the user even during the user's voice input.
본 개시의 일 실시예는, 사용자의 발화시 발생되는 신호를 분석하거나, 진동 정보를 이용하여 디바이스에 입력된 오디오 신호 중 사용자의 발화에 의한 신호를 식별하여 사용자의 음성 입력을 보다 정확하게 인식하고 사용자의 음성 입력에 의한 제어 동작을 수행하는 디바이스 및 그 제어 방법을 제공할 수 있다.An embodiment of the present disclosure analyzes a signal generated when a user's speech or uses vibration information to identify a signal generated by the user's speech among audio signals input to a device to more accurately recognize the user's voice input and It is possible to provide a device for performing a control operation based on a voice input and a method for controlling the same.
본 개시의 일 실시예는, 사용자의 음성 입력과 관련된 제어 명령을 생성할 때, 사용자의 움직임 정보를 이용하여 제어 명령을 생성하고, 생성된 제어 명령에 기초하여 제어되는 디바이스 및 그 제어 방법을 제공할 수 있다.An embodiment of the present disclosure provides a device and a control method for generating a control command related to a user's voice input, when generating a control command related to a user's voice input, using the user's motion information to generate the control command and controlling the control command based on the generated control command can do.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일 실시예에 따른 디바이스는 적어도 하나의 프로그램이 저장되는 메모리; 오디오 신호를 수신하는 마이크로폰; 사용자의 발화 상태에 따른 진동 정보를 획득하는 센서 모듈; 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 오디오 신호로부터 식별된 사용자의 음성 입력에 대응되는 제어 정보가 생성되도록 하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로그램은, 상기 진동 정보에 기초하여, 상기 마이크로폰을 통해서 수신된 오디오 신호로부터 상기 사용자의 음성 입력을 식별하는 단계; 및 상기 식별된 사용자의 음성 입력에 기초하여, 상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계: 를 실행하는 명령어들을 포함할 수 있다.As a technical means for achieving the above technical problem, a device according to an embodiment of the present disclosure includes a memory in which at least one program is stored; a microphone for receiving an audio signal; a sensor module for acquiring vibration information according to the user's utterance state; and at least one processor configured to generate control information corresponding to the user's voice input identified from the audio signal by executing the at least one program, wherein the at least one program includes, based on the vibration information, identifying the user's voice input from the audio signal received through the microphone; and generating control information corresponding to the user's voice input based on the identified user's voice input.
또한, 본 개시의 일 실시예에 따른 디바이스가 사용자의 음성 입력에 대한 제어 정보를 제공하는 방법은 오디오 신호를 수신하는 단계; 사용자의 발화 상태에 따른 진동 정보를 획득하는 단계; 상기 진동 정보에 기초하여 상기 오디오 신호에 포함된 상기 사용자의 음성 입력을 식별하는 단계; 및 상기 식별된 사용자의 음성 입력에 기초하여, 상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계를 포함할 수 있다.In addition, according to an embodiment of the present disclosure, a method for a device to provide control information for a user's voice input includes: receiving an audio signal; acquiring vibration information according to the user's utterance state; identifying the user's voice input included in the audio signal based on the vibration information; and generating control information corresponding to the user's voice input based on the identified user's voice input.
본 개시의 실시예들에 따르면, 사용자의 음성 입력을 보다 정확하게 인식하고, 사용자의 움직임 정보에 기초하여 디바이스의 제어 동작을 수행할 수 있다.According to embodiments of the present disclosure, it is possible to more accurately recognize a user's voice input and perform a device control operation based on the user's movement information.
도 1은 본 개시의 일 실시예에 따른 디바이스의 제어 방법을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 디바이스의 블록도이다.
도 3은 본 개시의 일 실시예에 따른 디바이스의 음성 인식 과정을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 사용자의 움직임 정보를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 음성 인식 과정 및 사용자의 움직임 정보를 이용한 제어 정보의 생성을 설명하기 위한 도면이다.
도 6 및 도 7은 일 실시예에 따라서 제어 정보의 속성값을 움직임 정보에 기초하여 결정하는 과정을 설명하기 위한 도면이다.
도 8은 본 개시의 다른 실시예에 따라서 움직임 정보에 기초하여 제어 정보의 속성값을 결정하는 과정을 설명하기 위한 도면이다.
도 9a는 일 실시예에 따른 제어 정보를 생성하는 디바이스 및 피제어대상인 외부 디바이스를 포함하는 제어 시스템을 나타낸 도면이다.
도 9b는 다른 실시예에 따른 제어 정보를 생성하는 디바이스 및 피제어대상인 외부 디바이스를 포함하는 제어 시스템을 나타낸 도면이다.
도 10은 일 실시예에 따른 디바이스가 제어 정보를 제공하는 방법의 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 디바이스가 제어 정보를 제공하는 방법의 구체적인 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 외부 디바이스의 제어 방법을 나타낸 흐름도이다.
도 13은 본 개시의 다른 실시예에 따른 외부 디바이스의 제어 방법을 나타낸 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 전자 장치의 구성을 도시한 블록도이다. 1 is a diagram for explaining a method of controlling a device according to an embodiment of the present disclosure.
2 is a block diagram of a device according to an embodiment of the present disclosure.
3 is a diagram for explaining a voice recognition process of a device according to an embodiment of the present disclosure.
4 is a diagram for explaining user movement information according to an embodiment of the present disclosure.
5 is a diagram for explaining a voice recognition process and generation of control information using user's motion information according to an embodiment of the present disclosure.
6 and 7 are diagrams for explaining a process of determining an attribute value of control information based on motion information according to an embodiment.
8 is a diagram for explaining a process of determining an attribute value of control information based on motion information according to another embodiment of the present disclosure.
9A is a diagram illustrating a control system including a device generating control information and an external device to be controlled according to an exemplary embodiment.
9B is a diagram illustrating a control system including a device for generating control information and an external device to be controlled according to another exemplary embodiment.
10 is a flowchart of a method for a device to provide control information according to an embodiment.
11 is a detailed flowchart of a method for a device to provide control information according to an embodiment of the present disclosure.
12 is a flowchart illustrating a method of controlling an external device according to an embodiment of the present disclosure.
13 is a flowchart illustrating a method of controlling an external device according to another embodiment of the present disclosure.
14 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the present disclosure are selected as currently widely used general terms as possible while considering the functions in the present disclosure, which may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the entire specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be implemented in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.
본 개시에서 흐름도에서의 다양한 동작, 블록, 단계 등은, 도시된 순서에 따라서 수행되거나 또는 상이한 순서에 따라서 수행될 수 있다. 또한, 적어도 일부의 단계는 또는 동시에 수행될 수 있다. 또한, 일부 실시 예에서, 동작, 블록, 단계 등의 일부는 본 개시의 범위를 벗어나지 않는 범위 내에서 생략, 추가 또는 수정될 수 있다.Various operations, blocks, steps, and the like in the flowcharts in the present disclosure may be performed according to the illustrated order or may be performed according to a different order. Also, at least some of the steps may be performed or concurrently. In addition, in some embodiments, some of the operations, blocks, steps, etc. may be omitted, added, or modified without departing from the scope of the present disclosure.
또한, 본 개시에서 보이스 어시스턴트(voice assistant) 서비스는 오디오 신호에 음성 인식(ASR: Automated Speech Recognition) 처리, 자연어 이해(NLU: Natural Language Understanding) 처리, 대화 관리(DM: Dialogue Manager) 처리, 자연어 생성(NLG: Natural Language generation) 처리 및 텍스트 투 스피치(TTS: Text To Speech) 처리를 통해, 사용자 음성 명령에 대한 응답을 제공하는 서비스이다. 특히, 본 개시에서 보이스 어시스턴트 서비스는, 사용자의 음성 명령을 인식하고, 해당 음성 명령에 따라서 디바이스의 동작을 제어하는 서비스일 수 있다. In addition, in the present disclosure, the voice assistant service provides automated speech recognition (ASR) processing, natural language understanding (NLU) processing, dialogue management (DM: Dialogue Manager) processing, natural language generation to an audio signal. It is a service that provides a response to a user's voice command through natural language generation (NLG) processing and text to speech (TTS) processing. In particular, in the present disclosure, the voice assistant service may be a service that recognizes a user's voice command and controls the operation of the device according to the corresponding voice command.
인공지능 모델은 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 모델일 수 있다. The artificial intelligence model is an artificial intelligence algorithm, and may be a model learned using at least one of machine learning, neural networks, genes, deep learning, and classification algorithms.
보이스 어시스턴트 서비스의 모델은, 보이스 어시스턴트 서비스에서 사용자의 음성 명령에 따른 피드백을 제공하기 위한 기준 및 방법 등이 학습된 인공지능 모델일 수 있다. 보이스 어시스턴트 서비스의 모델은, 예를 들어, 사용자의 입력 음성을 인식하기 위한 모델, 사용자의 입력 음성을 해석하기 위한 모델, 사용자의 입력 음성에 따라서, 제어 명령을 생성하기 위한 모델을 포함할 수 있으나, 이에 제한되지 않는다. 보이스 어시스턴트 서비스의 모델을 구성하는 모델들은 인공지능 알고리즘이 적용된 인공지능 모델일 수 있다. The model of the voice assistant service may be an artificial intelligence model in which standards and methods for providing feedback according to a user's voice command in the voice assistant service are learned. The model of the voice assistant service may include, for example, a model for recognizing a user's input voice, a model for interpreting the user's input voice, and a model for generating a control command according to the user's input voice. , but not limited thereto. The models constituting the model of the voice assistant service may be an artificial intelligence model to which an artificial intelligence algorithm is applied.
이하 첨부된 도면을 참고하여 본 개시의 실시예들을 상세히 설명한다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.
도 1은 본 개시의 일 실시예에 따른 디바이스의 제어 방법을 설명하기 위한 도면이다.1 is a diagram for explaining a method of controlling a device according to an embodiment of the present disclosure.
도 1을 참조하면, 디바이스(1000)는 사용자의 신체에 접촉되며, 사용자의 발화에 의한 음성 입력 및 사용자의 움직임을 감지한다. 도 1에서는, 디바이스(1000)의 일 예로서, 사용자의 귀에 부착되는 스마트 이어폰을 도시하고 있다. 본 개시에서, 스마트 이어폰이란, 오디오 신호를 출력하는 기능 이외에, 사용자의 음성 입력 및 사용자의 움직임 정보를 획득하고, 사용자의 음성 입력 및 사용자의 움직임 정보에 따른 제어 동작을 수행할 수 있는 보이스 어시스턴트 서비스를 제공할 수 있는 디바이스를 의미한다. 사용자의 좌측 귀 및 우측 귀에 탈착되는 한 쌍의 스마트 이어폰과 같이, 디바이스(1000)는 사용자의 신체 한 부분에만 접촉되지 않고 복수 개의 신체 부분들에 접촉된 복수 개의 디바이스의 집합을 나타낼 수 있다. Referring to FIG. 1 , the
도 1에 예시된 이어폰에 한정되지 않고, 본 개시에서 디바이스(1000)는 사용자의 신체에 접촉되며 사용자의 음성 입력 및 움직임 정보를 획득할 수 있는 전자 장치를 의미할 수 있다. 예를 들면, 디바이스(1000)는 AR(Augmented Reality) 글라스, 스마트워치, 스마트 렌즈, 스마트 팔찌, 스마트 의류 등의 웨어러블(wearable) 디바이스일 수 있다. 또한, 디바이스(1000)는 사용자에 의하여 사용되는 스마트폰, 스마트 태블릿, 컴퓨터, 노트북 컴퓨터 등의 모바일 디바이스일 수 있다. 상술한 예에 한정되지 않고, 디바이스(1000)는 사용자의 발화에 의한 음성 입력 및 사용자의 움직임 정보를 감지할 수 있는 다양한 전자 장치를 포함할 수 있다. It is not limited to the earphone illustrated in FIG. 1 , and in the present disclosure, the
디바이스(1000)는 사용자의 음성 입력에 기초하여 대응되는 제어 정보를 생성한다. 또한, 디바이스(1000)는 사용자의 음성 입력에 더하여 사용자의 움직임 정보를 이용하여 제어 정보를 생성할 수 있다. 제어 정보는 디바이스(1000) 자체의 제어를 위한 명령일 수 있다. 예를 들어, 디바이스(1000)가 스마트 이어폰인 경우, 디바이스(1000)의 제어 정보는 볼륨 업/다운, 뮤트(mute), 스마트 이어폰을 통해서 출력되는 음악의 트랙(track)을 변경하는 포워드(forward) 및 백워드(backward) 동작, 트랙 재생(play) 및 포즈(pause) 동작을 제어하기 위한 제어 명령일 수 있다. 또한, 제어 정보는 외부 디바이스의 제어를 위한 제어 명령일 수 있다. 외부 디바이스의 제어를 위한 제어 정보는 외부 디바이스의 움직임을 제어하기 위한 정보, 외부 디바이스에서 출력되는 출력 신호를 제어하기 위한 정보일 수 있다. 디바이스(1000)의 제어 명령은 피제어 대상인 디바이스의 종류 및 기능에 따라서 변경될 수 있다.The
디바이스(1000)에서 수행되는 음성 인식 과정은 음성 인식 과정의 주체에 따라서 임베디드(embedded) 방식, 비임베디드(non-embedded) 방식으로 구분될 수 있다. 임베디드 방식에서, 디바이스(1000)에 디폴트로 설치된 보이스 어시스턴트 프로그램에 의해 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 명령이 생성될 수 있다. 생성된 제어 정보는 디바이스(1000) 자체의 제어를 위해 이용되거나, 네트워크를 통해 연결된 외부 디바이스에 전송되어 외부 디바이스의 동작을 제어하는데 이용될 수 있다. 비임베디드 방식에서, 디바이스(1000)가 사용자의 음성 입력 및 움직임 정보를 네트워크를 통해 연결된 외부 디바이스로 전송하고, 외부 디바이스가 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성할 수 있다. 외부 디바이스에서 생성된 제어 명령은 다시 디바이스(1000) 또는 다른 외부 디바이스의 제어를 위해 이용될 수 있다. 구체적으로, 비임베디드 방식에서, 디바이스(1000)는 사용자의 음성 입력 및 움직임 정보를 외부 디바이스로 전송하고, 외부 디바이스는 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성하고, 디바이스(1000)는 외부 디바이스에서 생성된 제어 명령을 수신하고 수신된 제어 정보에 기초하여 제어 동작을 수행할 수 있다. 또한, 디바이스(1000)는 제 2 외부 디바이스의 제어를 위한 사용자의 음성 입력 및 움직임 정보를 제 1 외부 디바이스로 전송하고, 제 1 외부 디바이스는 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성하고, 제 2 외부 디바이스는 제 1 외부 디바이스에서 생성된 제어 명령을 수신하고 수신된 제어 정보에 기초하여 제어 동작을 수행할 수 있다.The speech recognition process performed by the
도 1을 참조하면, 디바이스(1000)는 사용자로부터 발화(utterance)에 의한 사용자 음성 입력을 수신한다. 구체적으로, 디바이스(1000)는 마이크와 같은 입력 수단을 통해 오디오 신호를 수신하고, 수신된 오디오 신호로부터 사용자의 발화에 의하지 않은 비음성구간을 제외하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. 디바이스(1000)는 사용자의 발화에 따라서 후두(larynx)에서 발생되는 진동을 감지하고, 입력된 오디오 신호 중 진동이 감지된 구간 동안 입력된 오디오 신호를 사용자의 발화에 의한 사용자 음성 입력으로 결정할 수 있다. 또한, 디바이스(1000)는 진동을 감지하는 이외에, 마이크를 통해 입력되는 오디오 신호를 분석하여 사용자의 발화에 의한 발화 구간을 식별할 수 있다. 일 실시예에서, 디바이스(1000)는 수신된 오디오 신호에 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient, LPC), 멜프리퀀시 켑스트럼(Mel Frequency Cepstral Coefficient, MFCC) 및 필터 뱅크 에너지(Filter Bank Energy)를 포함하는 특징 벡터 추출 기술 중 어느 하나를 사용하여 입력된 오디오 신호의 특징 벡터를 추출하고, 특징 벡터를 분석하여 사용자의 발화에 의한 사용자 음성 입력을 식별할 수 있다. 전술한 음성 특징 벡터 추출 기술은 예시일 뿐이고, 본 개시에서 사용되는 특징 벡터 추출 기술이 전술한 예시로 한정되는 것은 아니다. Referring to FIG. 1 , a
디바이스(1000)는 오디오 신호로부터 추출된 특징 벡터에 대해서 심층 신경망 모델(Deep Neural Network, DNN)을 적용하여 사용자의 발화에 의한 특징 벡터를 추출할 수 있다. 사용자의 음성 입력 신호 특징은 사용자 특징 벡터로 표현될 수 있다. 구체적으로, 디바이스(1000)는 입력 오디오 신호로부터 추출된 음성 특징 벡터에 대해서 심층 신경망 모델(Deep Neural Network, DNN)을 적용하여 사용자의 특징 벡터를 추출할 수 있다. 디바이스(1000)는 심층 신경망 모델(DNN)에 음성 특징 벡터를 입력값으로, 사용자에 관한 특징값을 출력으로 각각 심층 신경망 모델에 입력하여 학습(training)시킴으로써 사용자 특징 벡터를 획득할 수 있다. 심층 신경망 모델은 컨볼루션 뉴럴 네트워크(Convolution Neural Network, CNN), 순환 신경망(Recurrent Neural Network, RNN) 및 GAN (Generative Adversarial Networks) 중 적어도 하나를 포함할 수 있으나, 상기 나열된 예시로 한정되는 것은 아니다. 본 개시의 디바이스(1000)가 사용하는 심층 신경망 모델은 현재 알려진 모든 종류의 신경망 모델을 포함할 수 있다.The
일 실시예에서, 디바이스(1000)는 ASR(Automatic Speech Recognition) 모델을 포함할 수 있다. ASR 모델은, 통합 신경망을 이용하여 음성을 인식하는 음성 인식 모델로서, 사용자의 음성 입력으로부터 텍스트를 출력할 수 있다. ASR 모델은, 예를 들어, 음향 모델, 발음 사전 및 언어 모델을 포함하는 인공지능 모델일 수 있다. 또는, ASR 모델은, 예를 들어, 음향 모델, 발음 사전 및 언어 모델을 별도로 포함하지 않고 통합된 신경망을 포함하는 구조를 가지는 종단간(End-to-End) 음성 인식 모델일 수 있다. 종단간 ASR 모델은 통합된 신경망을 이용함으로써, 음성으로부터 음소를 인식한 이후에 음소를 텍스트로 변환하는 과정이 없이, 음성을 텍스트로 변환할 수 있다. 텍스트는, 적어도 하나의 문자를 포함할 수 있다. 문자는, 인간의 언어를 눈에 볼 수 있는 형태로 나타내어 적는데 사용하는 기호를 의미한다. 예를 들어, 문자에는, 한글, 알파벳, 한자, 숫자, 발음 부호, 문장 부호 및 기타 기호가 포함될 수 있다. 또한, 예를 들어, 텍스트는 문자열을 포함할 수 있다. 문자열은, 문자들의 배열(sequence)을 의미한다. 예를 들어, 텍스트는 적어도 하나의 문자소를 포함할 수 있다. 문자소(grapheme)는 적어도 하나의 문자로 구성되는, 소리를 나타내는 가장 작은 단위이다. 예를 들어, 알파벳 표기 체계의 경우, 하나의 문자가 문자소가 될 수 있으며, 문자열은 문자소들의 배열을 의미할 수 있다. 예를 들어, 텍스트는, 형태소 또는 단어를 포함할 수 있다. 형태소(morpheme)는 적어도 하나의 문자소로 구성되는, 의미를 가지는 가장 작은 단위이다. 단어(word)는, 적어도 하나의 형태소로 구성되는, 자립적으로 쓰일 수 있거나 문법적 기능을 나타내는 언어의 기본 단위이다.In an embodiment, the
디바이스(1000)는 오디오 신호로부터 사용자의 음성 입력을 수신하고, ASR 모델을 이용하여 사용자의 음성 입력으로부터 텍스트를 획득할 수 있다. 디바이스(1000)는 획득된 사용자의 음성 입력의 의미를 분석하여, 대응되는 제어 명령을 생성할 수 있다.The
디바이스(1000)는 사용자의 움직임 상태를 감지할 수 있는 센서 모듈을 구비하고, 사용자의 움직임 정보를 획득할 수 있다. 일 실시예에 따르면, 디바이스(1000)에 구비되는 센서 모듈은 제스처 센서(gesture sensor), 자이로스코프(gyroscope sensor) 및 가속도 센서(accelerometer sensor) 중 적어도 하나를 포함한다. 디바이스(1000)는 구비된 센서를 통해서 사용자의 움직임, 회전 등을 감지하고, 감지된 사용자의 움직임에 관한 전기 신호 또는 데이터값을 생성할 수 있다. 디바이스(1000)는 x, y, z의 3축을 기준으로 피치(pitch), 롤(roll) 및 요(yaw)의 변화량을 측정하여, 디바이스(1000)의 기울임 정보, 각 축 방향의 가속도를 획득하고, 디바이스(1000)의 3축을 기준으로 획득된 기울임 정보 및 가속도를 이용하여 사용자의 움직임 정보를 획득할 수 있다. 롤(roll)은 x축을 기준으로 회전하는 움직임을 나타내며, 피치(pitch)는 y 축을 기준으로 회전하는 움직임을 나타내며, 요(yaw)는 z 축을 기준으로 회전하는 움직임을 나타낸다. 또한, 디바이스(1000)는 사용자의 턱의 움직임에 의한 피치, 롤, 요의 변화량을 감지하여 사용자의 발화 상태를 식별할 수 있다.The
도 2는 본 개시의 일 실시예에 따른 디바이스의 블록도이다.2 is a block diagram of a device according to an embodiment of the present disclosure.
도 2를 참조하면, 디바이스(2000)는 입력부(2100), 메모리(2200), 센싱부(2300), 프로세서(2400)를 포함할 수 있다. 디바이스(2000)는 통신부(2500) 및 출력부(2600)를 더 포함할 수 있다. 도시된 블록도에 한정되지 않고, 전자 장치(2000)는 더 많은 구성 요소들을 포함하거나, 일부 구성 요소들이 제외될 수 있다. 예를 들어, 디바이스(2000)가 스마트 이어폰일 경우, 디바이스(2000)는 오디오 신호를 출력하기 위한 스피커와 같은 출력 모듈을 포함할 수 있다.Referring to FIG. 2 , a
입력부(2100)는, 디바이스(2000)의 외부 오디오 신호를 수신한다. 예를 들어, 입력부(2100)는 마이크를 포함할 수 있다. 외부 오디오 신호는 사용자의 음성 입력을 포함할 수 있다. 입력부(2100)는 디바이스(2000)의 유형에 따라서, 디바이스(2000)를 제어하기 위한 데이터를 입력하는 다른 수단을 포함할 수 있다. 예를 들어, 입력부(2100)는 키 패드, 스위치, 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등을 포함할 수 있으나 이에 한정되는 것은 아니다.The
프로세서(2400)는 디바이스(2000)의 전반적인 동작을 제어한다. 또한, 프로세서(2400)는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 컴퓨터 프로그램의 명령(instruction)은 메모리(2200)에 저장되어 있고, 메모리(2200)로부터 명령이 프로세서(2400)에 제공될 수 있다. 이하의 실시예에서, 프로세서(2400)에 의해 수행되는 기능 및/또는 동작들은 메모리(2200)와 같은 기록 장치에 저장된 컴퓨터 프로그램 코드에 따라 수신되는 명령을 프로세서(2400)가 실행하여 구현될 수 있다. The
프로세서(2400)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 제한되는 것은 아니다. 일 실시예에서, 디바이스(2000)가 모바일 디바이스인 경우, 프로세서(2400)는 애플리케이션을 실행시키는 애플리케이션 프로세서(Application Processor, AP)일 수 있다.The
프로세서(2400)는 입력부(2100)를 통하여 수신된 오디오 신호로부터 사용자의 음성 입력을 획득할 수 있다. 프로세서(2400)는 사용자의 음성 입력에 기초하여 디바이스(2000) 또는 외부 디바이스의 동작을 수행하는 애플리케이션을 실행할 수 있으며, 실행된 애플리케이션을 통하여 부가적으로 디바이스(2000) 또는 외부 디바이스의 제어를 위한 사용자의 음성 입력을 수신할 수 있다. 프로세서(2400)는, 예를 들어, “S 보이스” 또는 "빅스비(bixby)"와 같은 미리 지정된 보이스 어시스턴트 애플리케이션 (Voice Assistant Application)을 실행하기 위한 음성 입력이 수신된 경우, 해당 보이스 어시스턴트 애플리케이션을 실행하고, 부가적으로 입력된 사용자의 음성 입력 및 사용자의 움직임 정보에 기초하여 제어 명령을 생성할 수 있다.The
프로세서(2400)는 수신된 오디오 신호로부터 사용자의 발화에 의하지 않은 비음성구간을 제외하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. 프로세서(2400)는 입력부(2100)를 통해 입력되는 오디오 신호를 분석하여 사용자의 발화에 의한 발화 구간을 식별할 수 있다. 프로세서(2400)는 수신된 오디오 신호의 특징 벡터를 추출하고, 특징 벡터를 분석하여 사용자의 발화에 의한 사용자 음성 입력을 식별할 수 있다. 또한, 프로세서(2400)는 오디오 신호로부터 추출된 특징 벡터에 대해서 심층 신경망 모델(Deep Neural Network, DNN)을 적용하여 사용자의 발화에 의한 특징 벡터를 추출할 수 있다. The
프로세서(2400)는 음향 모델(Acoustic Model), 언어 모델(Language Model) 및 발음 사전(Pronunciation Lexicon)을 이용하여 사용자의 발화 구간 동안 입력된 특징 벡터를 각 모델과 비교하여 스코어링을 하여 입력된 음성 신호에 대한 단어열을 획득할 수 있다.The
프로세서(2400)는 입력부(2100)를 통해 입력된 사용자의 음성 신호와, 센싱부(2300)로부터 획득된 사용자의 움직임에 따른 움직임 정보를 결합하여 디바이스(2000) 또는 외부 디바이스를 제어하기 위한 제어 정보를 생성할 수 있다. 프로세서(2400)는 사용자의 음성 신호에 기초하여 제어 명령의 유형을 결정하고, 사용자의 움직임 정보에 기초하여 제어 명령의 속성값을 결정할 수 있다. 예를 들어, 프로세서(2400)는 "볼륨(volume)"과 같은 음성 입력이 입력되면, 디바이스(2000) 또는 외부 디바이스의 제어 동작 중 볼륨을 제어하기 위한 사용자의 의도를 식별하고, 볼륨 제어를 위한 속성값을 사용자의 움직임 정보를 이용하여 결정할 수 있다. The
프로세서(2400)는 센싱부(2300)를 통해서 사용자의 상하좌우, 또는 앞뒤의 움직임 정보를 획득하고, 사용자의 움직임에 따른 제어 명령을 생성할 수 있다. 구체적으로, 프로세서(2400)는 상측(upper) 방향 또는 포워드(forward) 방향의 사용자 움직임이 센싱부(2300)를 통해서 감지된 경우, 제어 명령과 관련된 속성값을 증가시킬 수 있다. 또한, 프로세서(2400)는 하측(lower) 방향 또는 백워드(backward) 방향의 사용자 움직임이 센싱부(2300)를 통해서 감지된 경우, 제어 명령과 관련된 속성값을 감소시킬 수 있다. 예를 들어, 프로세서(2400)는 "볼륨(volume)"과 같은 음성 입력이 입력되면, 디바이스(2000) 또는 외부 디바이스의 제어 동작 중 볼륨을 제어하기 위한 사용자의 의도를 식별하고, 볼륨 제어를 위한 속성값을 사용자의 움직임 정보를 이용하여 결정할 수 있다. 디바이스(2000)가 스마트 이어폰과 같이 사용자의 귀에 장착되는 장치인 경우, 사용자의 발화에 따라서 "볼륨(volume)" 또는 "볼륨 업(volume up)"이란 음성 입력이 인식되면, 프로세서(2400)는 사용자의 머리의 움직임에 따라서 사용자의 머리가 아래에서 윗 방향으로 움직이는 경우 볼륨 업 동작을 수행하는 제어 명령을 생성하고, "볼륨(volume)" 또는 "볼륨 다운(volume down)"이란 음성 입력이 인식되면, 사용자의 머리가 위에서 아래 방향으로 움직이는 경우 볼륨 다운 동작을 수행하는 제어 명령을 생성할 수 있다. 사용자의 움직임 정보에 따라서 속성값을 어떤 방향으로 변화시킬 것인지는 이에 한정되지 않고 변경될 수 있다.The
또한, 피제어대상인 디바이스(2000) 또는 외부 디바이스가 물리적으로 움직임이 가능한 장치(예를 들어, 로봇 청소기, 애완 로봇, 가사 로봇)인 경우, 프로세서(2400)는 센싱부(2300)를 통해서 사용자의 상하좌우, 또는 앞뒤의 움직임 정보에 따라서 피제어 대상의 움직임을 제어하기 위한 제어 명령을 생성할 수 있다.In addition, when the
또한, 피제어대상인 디바이스(2000) 또는 외부 디바이스가 정보를 시각적으로 출력하는 디스플레이 모듈을 포함하는 경우, 프로세서(2400)는 센싱부(2300)를 통해서 사용자의 상하좌우, 또는 앞뒤의 움직임 정보에 따라서 디스플레이 모듈을 통해서 출력되는 영상의 스크롤을 제어하기 위한 제어 명령을 생성할 수 있다. In addition, when the
센싱부(2300)는 가속도 센서(2310) 및 자이로스코프 센서(2320)를 포함하며, 사용자의 움직임 정보를 획득할 수 있다. 센싱부(2300)는 사용자의 움직임을 감지하고, 감지된 사용자의 움직임에 관한 전기 신호 또는 데이터값을 생성할 수 있다. 센싱부 (2300)는 x, y, z의 3축을 기준으로 피치(pitch), 롤(roll) 및 요(yaw)의 변화량을 측정하여, 디바이스(2000)의 기울임 정보, 각 축 방향의 가속도를 획득하고, 디바이스(2000)의 3축을 기준으로 획득된 기울임 정보 및 가속도를 이용하여 사용자의 움직임 정보를 획득할 수 있다. 또한, 센싱부 (1000)는 사용자의 발화에 의한 진동을 감지하여 사용자의 발화 상태를 식별할 수 있다.The
메모리(2200)는, 프로세서(2400)가 사용자 음성 입력 및 움직임 정보에 기초하여 디바이스(2000) 또는 외부 디바이스의 제어를 위한 제어 명령을 생성하도록 설정된 명령어들을 저장할 수 있다. 메모리(2200)는 예를 들어, 램(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
디바이스(2000)는 통신부(2500)를 이용하여 소정의 네트워크를 통하여 외부의 디바이스와 통신할 수 있다. 통신부(2500)는 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.The
출력부(2600)는 음향 신호 또는 비디오 신호를 외부로 출력한다. 디바이스(2000)의 유형에 따라서, 출력부(2600)는 음향 신호를 외부로 출력하는 스피커 또는 리시버를 포함하거나, 외부로 정보를 시각적으로 제공하는 디스플레이 모듈을 포함할 수 있다.The
도 3은 본 개시의 일 실시예에 따른 디바이스(2000)의 음성 인식 과정을 설명하기 위한 도면이다.3 is a diagram for explaining a voice recognition process of the
도 3을 참조하면, 디바이스(2000)의 프로세서(2400)는 입력부(2100)에서 획득된 오디오 신호(330)로부터 사용자의 발화에 의한 진동 신호(310)를 검출하거나, 센싱부(2300)에서 사용자 발화에 의한 진동 신호(310)를 검출할 수 있다. 프로세서(2400)는 진동이 검출된 구간인 t1~t2의 시간 구간(T1), t3~t4의 시간 구간(T2), t5~t6의 시간 구간(T3)을 사용자가 실제 발화한 구간으로 식별한다. 프로세서(2400)는 오디오 신호(330)중 진동이 검출되지 않은 구간의 노이즈를 제거하고, 진동이 검출된 시간 구간 동안의 오디오 신호만을 이용하여 사용자 음성 입력(320)을 워드 단위로 식별할 수 있다. 외부 노이즈 신호는 ASR 알고리즘을 적용하여 제거될 수 있다.Referring to FIG. 3 , the
구체적으로, 사용자가 t1~t2의 시간 구간(T1) 동안 "Bixby", t3~t4의 시간 구간(T2) 동안 "volume", t5~t6의 시간 구간(T3) 동안 "UP" 이란 단어를 발화하였다고 가정한다. 프로세서(2400)는 수신된 오디오 신호(330)로부터 실제 사용자의 발화에 의한 사용자 음성 입력을 식별하기 위하여 사용자 발화시 발생되는 진동 정보를 이용할 수 있다. 디바이스(2000)가 스마트 이어폰과 같이 사용자의 귀에 부착되는 장치인 경우, 사용자의 발화시 발생되는 진동은 뼈를 통해 귀에 부착된 디바이스(2000)의 입력부(2100) 또는 센싱부(2300)에서 감지될 수 있으며, 프로세서(2400)는 진동 신호(310)를 분석하여 사용자의 발화 여부 및 입력된 오디오 신호(330) 중 사용자의 발화에 의한 발화 구간을 식별할 수 있다. 프로세서(2400)는 오디오 신호(330) 중 진동이 검출된 구간인 T1, T2, T3 에서 입력된 오디오 신호를 실제 사용자의 발화에 의한 사용자 음성 입력으로 판단할 수 있다. 프로세서(2400)는 진동이 검출되지 않은 T1, T2, T3 구간 이외에서 수신된 오디오 신호는 노이즈 또는 다른 외부 사용자에 의한 오디오 신호로 판별할 수 있다. 전술한 예에서, 프로세서(2400)는 진동 정보(310)를 통해서 사용자 발화에 의하여 진동이 감지된 T1, T2, T3 구간에서 입력된 음성 입력을 분석하여, t1~t2의 시간 구간(T1)에서 발화된 "Bixby", t3~t4의 시간 구간(T2) 동안 발화된 "volume", t5~t6의 시간 구간(T3) 동안 발화된 "UP" 이란 사용자 음성 입력을 인식할 수 있다.Specifically, the user utters the word "Bixby" during the time period T1 of t1 to t2, "volume" during the time period T2 of t3 to t4, and "UP" during the time period T3 of t5 to t6. assume you did The
또한, 디바이스(2000)의 센싱부(2300)는 사용자의 음성 입력이 개시된 것으로 판단된 t1 시점 이후에 사용자의 움직임 정보(340)를 획득하고, 사용자의 음성 입력과 사용자의 움직임 정보를 이용하여 제어 정보를 생성할 수 있다.In addition, the
도 4는 본 개시의 일 실시예에 따른 사용자의 움직임 정보를 설명하기 위한 도면이다.4 is a diagram for explaining user movement information according to an embodiment of the present disclosure.
전술한 바와 같이, 디바이스(1000)가 사용자에 의하여 소지되거나 사용자의 신체의 적어도 일 부분에 부착된 경우, 디바이스(1000)는 센서를 통하여 사용자의 움직임, 회전 등을 감지하고, 감지된 사용자의 움직임에 관한 전기 신호 또는 데이터값을 생성할 수 있다. 움직임 정보는 x, y, z의 3축을 기준으로 획득된 롤(roll), 피치(pitch) 및 요(yaw)에 대한 정보일 수 있다. 롤(roll)은 x축을 기준으로 회전하는 움직임을 나타내며, 피치(pitch)는 y 축을 기준으로 회전하는 움직임을 나타내며, 요(yaw)는 z 축을 기준으로 회전하는 움직임을 나타낸다. 도 4에서는 롤, 피치, 요(yaw) 중에서 피치 방향의 사용자 움직임에 따른 움직임 정보를 나타낸 것이다. As described above, when the
디바이스(1000)는 소정 시간 동안 획득된 롤, 피치, 요의 변화량을 감지하여 사용자의 움직임 정보를 획득할 수 있다. 예를 들어, 사용자가 정면을 바라보고 있을 때의 피치 각도의 기준 각도값을 0이라고 하면, 사용자가 정면을 기준으로 고개를 드는 경우, 피치 각도는 0도(deg)에서 +방향으로 증가되며, 반대로 사용자가 정면을 기준으로 고개를 아래로 떨구는 경우 피치 각도는 0도에서 - 방향으로 감소되는 것으로 설정될 수 있다. 유사하게, 사용자가 정면을 바라보면서 고개를 시계방향 또는 반시계 방향으로 회전시키는 롤링(rolling) 동작을 수행하는 경우, 사용자를 기준으로 사용자의 오른쪽 귀 방향으로 고개를 롤링하는 시계방향을 + 방향, 사용자의 왼쪽 귀 방향으로 고개를 롤링하는 반시계 방향을 - 방향으로 설정될 수 있다. 유사하게, 사용자가 정수리를 기준으로 머리를 회전하는 요(yaw) 동작의 경우, 사용자의 정수리를 위에서 보았을 때 사용자의 정면 방향으로부터 오른쪽 귀 방향의 시계 방향으로 고개를 돌리는 방향은 + 방향, 사용자의 정면 방향으로부터 왼쪽 귀 방향의 반 시계 방향으로 고개를 돌리는 방향은 - 방향으로 설정될 수 있다. 피치 각도, 롤 각도, 요 각도의 + 방향, - 방향은 변경 가능하다. 디바이스(1000)는 소정 기준 시각을 기준으로, 소정 기준 시각 이후에 획득된 피치 각도, 롤 각도, 요 각도의 변화량을 측정하여 소정 기준 시각 이후의 사용자의 움직임을 추정할 수 있다.The
도 5는 본 개시의 일 실시예에 따른 음성 인식 과정 및 사용자의 움직임 정보를 이용한 제어 정보의 생성을 설명하기 위한 도면이다.5 is a diagram for explaining a voice recognition process and generation of control information using user's motion information according to an embodiment of the present disclosure.
일 실시예에 따르면, 디바이스(2000)는 발화 구간 시작점을 기준으로, 발화 구간 시작점 이후에 획득된 사용자의 움직임 정보로부터 사용자의 움직임 방향과 움직임 크기를 결정하고, 결정된 움직임 방향과 움직임 크기에 기초하여 제어정보를 생성할 수 있다. 구체적으로, 디바이스(2000)는 사용자의 음성 입력에 따라서 결정된 제어 명령에 따른 구체적인 속성값의 변화량을 움직임 방향과 움직임 크기에 기초하여 결정할 수 있다.According to an embodiment, the
속성값이란 제어 명령과 관련된 파라메터로서, 피제어대상인 디바이스의 종류 및 제어 명령의 유형에 따라서 결정될 수 있다. 예를 들어, 피제어대상인 디바이스가 소리를 출력하는 스피커 또는 이어폰이며 제어 명령이 볼륨과 관계된 경우, 사용자의 움직임에 기초하여 결정되는 속성값은 볼륨 레벨일 수 있다. 또한, 로봇 청소기, 드론, 로봇 애완동물과 같이 피제어대상인 디바이스가 스스로 구동가능하며 제어 명령이 움직임과 관련된 경우(예를 들어, "Move"), 사용자의 움직임에 기초하여 결정되는 속성값은 피제어대상의 xyz축의 움직임 방향, 움직임 속도일 수 있다. 프로세서(2400)는 사용자의 움직임에 따라서 피제어대상인 구동가능한 디바이스의 전후좌우 움직임, 움직임 속도가 제어되도록 제어 명령을 생성할 수 있다. 피제어대상인 디바이스가 스마트 전구이며, 제어 명령이 "체인지 라이팅(change lighting)"와 같이 조도 변화와 관련된 명령인 경우, 전술한 볼륨 제어와 유사하게 프로세서(2400)는 사용자의 움직임 정보에 기초하여 전구의 밝기를 증가시키거나 감소시킬 수 있다. 피제어대상인 디바이스가 이미지를 출력하는 디스플레이 장치이며 제어 명령이 "move image" 또는 "scroll image"와 같이 출력 이미지의 이동과 관련된 경우, 속성값은 출력 이미지를 움직일 방향 및 크기를 가리킬 수 있다. 예를 들어, 프로세서(2400)는 사용자의 머리 움직임에 따라서, 사용자의 움직임과 일치하는 방향으로 출력 이미지가 이동되도록 제어 명령을 생성할 수 있다. 또한, 제어 명령이 피제어대상 디바이스의 전원(power)와 관련된 경우, 속성값은 피제어 대상 디바이스의 온/오프값일 수 있다. 프로세서(2400)는 사용자의 "전원(power)" 음성 입력이 입력된 경우, 사용자의 움직임 정보에 기초하여 피제어대상 디바이스의 전원을 온/오프할 수 있다. xyz 축 방향 중 어느 방향을 온/오프 방향으로 설정할지는 변경될 수 있다.The attribute value is a parameter related to the control command, and may be determined according to the type of the device to be controlled and the type of the control command. For example, when the device to be controlled is a speaker or earphone outputting sound and the control command is related to the volume, the attribute value determined based on the user's movement may be the volume level. In addition, when a device to be controlled, such as a robot cleaner, a drone, or a robot pet, can be driven by itself and the control command is related to movement (eg, "Move"), the attribute value determined based on the user's movement is to avoid It may be a movement direction and a movement speed of the xyz axis of the control target. The
디바이스(2000)는 미리 지정된 키워드, 예를 들어 "Bixby"와 같은 키워드가 식별된 경우, 보이스 어시스턴트 애플리케이션 (Voice Assistant Application)을 실행하고, 이후 입력된 사용자의 음성 입력을 통해 제어하고자 하는 제어 명령의 유형을 결정할 수 있다. 도 5를 참조하면, "Bixby" 키워드 다음에 "Volume"이란 사용자 음성 입력이 인식된 경우, 디바이스(2000)는 사용자의 의도가 볼륨을 제어하기 위한 것으로 결정할 수 있다. 디바이스(2000)는 "Bixby"와 같은 미리 입력된 키워드를 제외하고, 바로 "Volume"과 같은 단어를 식별하여 제어 명령의 유형을 결정할 수 있다. 디바이스(2000)는 센싱부(2300)를 통해서 사용자의 발화에 의한 진동이 감지된 경우, 진동이 감지된 시점 이후에 입력된 사용자의 음성 입력을 인식하여 음성 처리 과정을 수행할 수 있다.When a predefined keyword, for example, a keyword such as “Bixby” is identified, the
한편, 디바이스(2000)는 미리 지정된 사용자의 작은 음성 입력에 대응되는 제어 명령을 미리 설정하고, 사용자의 작은 음성 입력이 입력된 경우 별도의 음성 인식 과정없이 사용자의 움직임 정보에 기초하여 제어 명령을 생성할 수 있다. 예를 들어, 사용자가 미리 설정한 작은 웅얼거림(murmur)에 대응되는 제어 명령이 미리 설정될 수 있다. 디바이스(2000)는 사용자의 웅얼거림이 입력부(2100)를 통해 입력되면, 미리 설정된 패턴과 비교하여 사용자가 미리 설정한 웅얼거림에 해당하는지를 판단하고, 사용자가 미리 설정한 웅얼거림 신호가 수신된 것으로 판단되면, 이후 별도의 음성 인식 과정을 스킵하고, 미리 설정된 제어 명령의 속성값을 사용자의 움직임 정보에 기초하여 결정할 수 있다. 사용자가 미리 설정한 작은 웅얼거림에 대응되는 제어 명령이 "volume"이라고 가정하면, 디바이스(2000)는 사용자의 웅얼거리는 신호가 수신되면, 사용자의 웅얼거리는 신호가 미리 설정된 볼륨 제어를 위하여 설정한 신호 패턴과 동일한 지를 판단한다. 그리고, 디바이스(2000)는 사용자의 웅얼거리는 신호가 볼륨 제어를 위한 신호로 판단되면, 제어 명령 유형으로 볼륨 제어를 결정하고, 이후 획득된 사용자의 움직임 정보에 기초하여 볼륨값을 결정할 수 있다. 이와 같이, 미리 설정된 작은 음성 신호 또는 웅얼거림에 대응되는 제어 명령이 미리 설정되는 경우, 사용자는 큰 소리로 음성 명령을 말하지 않고도 미리 설정된 작은 음성 신호만을 말하고, 움직임을 통해서 디바이스(2000)를 제어할 수 있다.Meanwhile, the
전술한 바와 같이, 디바이스(2000)는 사용자의 발화 구간 이후에 입력된 사용자의 움직임 정보를 활용하여 사용자의 제어 명령과 관련된 속성값을 결정할 수 있다. 디바이스(2000)의 센싱부(2300)에서 xyz축을 기준으로 획득된 사용자의 피치, 롤, 요 움직임을 통해서 사용자의 움직임 방향과 움직임 크기를 결정하고, 움직임 방향과 움직임 크기에 기초하여 제어 명령과 관련된 속성값이 결정될 수 있다. As described above, the
프로세서(2400)는 xyz축 방향으로 획득된 움직임 방향 및 움직임 크기 정보를 이용하여 사용자의 움직임을 판단할 수 있다. 일 실시예에 따르면, 사용자의 움직임을 판단하기 위하여, 프로세서(2400)는 각 축 방향에서 입력된 움직임 방향 또는 xyz축 기준으로 획득된 각도의 극값(Extremal value)를 이용할 수 있다. The
전술한 도 4와 같이, 사용자가 정면을 바라본 상태에서 고개를 위아래로 움직이는 동작을 수행하는 경우를 예로 들어 설명한다. 사용자의 움직임 정보가 획득되기 시작하는 기준 시각에서의 피치 각도를 기준 피치 각도 0도라고 하고, 사용자가 고개를 드는 경우 피치 각도가 0도에서 + 방향으로 증가되며, 반대로 사용자가 고개를 아래로 떨구는 경우 피치 각도가 0도에서 - 방향으로 감소되는 것으로 가정한다. 피치 각도가 + 또는 - 방향으로 증가 또는 감소하는 변화를 움직임 방향으로 지칭될 수 있다. 이러한 피치 각도의 변화량을 분석함으로써, 프로세서(2400)는 사용자가 고개를 위로 들거나 아래로 숙이는 움직임을 판단할 수 있다. 전술한 예에서, 사용자가 고개를 위로 드는 경우 피치 각도가 증가하는 + 방향의 피치 움직임, 사용자가 고래를 아래로 숙이는 경우 피치 각도가 감소하는 - 방향의 피치 움직임으로 정의될 수 있다. As shown in Fig. 4 above, a case in which the user moves his/her head up and down while looking at the front will be described as an example. The pitch angle at the reference time at which the user's motion information is acquired is referred to as the reference pitch angle 0 degrees, and when the user raises his head, the pitch angle increases from 0 degrees to the + direction, and conversely, when the user lowers his head Assume that the pitch angle decreases from 0 degrees in the negative direction. A change in which the pitch angle increases or decreases in the + or - direction may be referred to as a movement direction. By analyzing the amount of change in the pitch angle, the
프로세서(2400)는 "볼륨" 또는 "볼륨 업"이란 제어 명령과 함께, 사용자 발화 이후에 사용자가 고개를 위로 드는 동작을 수행한 경우, 피치 각도가 증가된 움직임 정보를 통해서 사용자의 움직임을 판단할 수 있으며, 피치 각도가 사용자의 발화 시점 이후에 증가된 경우, 현재 디바이스의 볼륨을 증가시킬 수 있다. 또한, 프로세서(2400)는 "볼륨" 또는 "볼륨 다운"이란 제어 명령과 함께, 사용자 발화 이후에 사용자가 고개를 아래로 숙이는 동작을 수행한 경우, 피치 각도가 감소된 움직임 정보를 통해서 사용자의 움직임을 판단할 수 있으며, 피치 각도가 사용자의 발화 시점 이후에 감소된 경우, 현재 디바이스의 볼륨을 감소시킬 수 있다. The
한편, 실제 사용자의 움직임은 xyz 축 방향으로 미세하게 계속 변화되기 때문에, xyz 축 방향으로 획득되는 움직임 정보는 증가 및 감소하는 움직임이 반복될 수 있다. 피치, 롤, 요 방향의 움직임이 소정 시간 동안 변화되는 경우에는 극값을 이용하여 사용자의 움직임을 분석할 수 있다. Meanwhile, since the actual user's movement continues to be minutely changed in the xyz axis direction, the movement information obtained in the xyz axis direction may be repeatedly increased and decreased. When the movement in the pitch, roll, and yaw directions is changed for a predetermined time, the user's movement may be analyzed using the extreme value.
도 5를 참조하면, 피치(pitch) 각도에 대해서, 2개의 극대값 P1, P2를 갖는 움직임 정보(510)가 획득된 경우, 프로세서(2400)는 사용자가 고개를 드는 행동을 2번 수행한 것으로 판단할 수 있다. 즉, 피치 각도가 증가하다가 감소되는 경우, 프로세서(2400)는 사용자의 의도는 고개를 윗 방향으로 드는 동작을 수행하는 것으로 판단할 수 있으며, 이러한 사용자의 의도는 피치 각도의 변화량이 2개의 극대값을 갖는 그래프 형태로 표현될 수 있다. 프로세서(2400)는 "볼륨" 또는 "볼륨 업"이란 제어 명령과 함께 사용자가 고개를 2번 드는 행동을 한 것으로 판단된 경우, 현재 디바이스의 볼륨을 2단계 증가시킬 수 있다. Referring to FIG. 5 , when
유사하게, 피치 각도에 대해서 2개의 극소값 P3, P4를 갖는 움직임 정보(520)가 획득된 경우, 프로세서(2400)는 사용자가 고개를 아래로 숙이는 행동을 2번 수행한 것으로 판단할 수 있다. 프로세서(2400)는 "볼륨" 또는 "볼륨 다운"이란 제어 명령과 함께 사용자가 고개를 2번 숙이는 행동을 한 것으로 판단된 경우, 현재 디바이스의 볼륨을 2단계 감소시킬 수 있다.Similarly, when the
프로세서(2400)는 미세한 사용자의 움직임에 의하여 제어 동작이 민감하게 반응하는 것을 방지하기 위하여, 사용자의 움직임이 소정 임계값 이상인 경우에만 사용자의 움직임을 검출할 수 있다. 전술한 예에서, 프로세서(2400)는 2개의 극대값 P1, P2의 피치각 θ1, θ2가 소정 상한 임계값보다 큰 경우에만 사용자가 고개를 2번 드는 행동을 한 것으로 판단할 수 있다. 만약, 극값의 피치값이 소정 상한 임계값보다 작은 경우에는 프로세서(2400)는 사용자가 볼륨 업 동작을 수행하기 위하여 고개를 드는 행동을 수행하지 않은 것으로 판단할 수 있다. 유사하게, 프로세서(2400)는 유사하게 2개의 극소값 P3, P4의 피치각 θ3, θ4가 소정 하한 임계값보다 작은 경우에만 사용자가 고개를 2번 숙이는 행동을 한 것으로 판단할 수 있다. 상한 임계값이나 하한 임계값의 절대값이 작은 값으로 설정될수록, 사용자의 움직임에 보다 민감하게 반응되도록 제어 정보가 생성될 수 있다. 사용자의 작은 움직임에 너무 민감하게 반응하는 경우를 방지하고자 하는 경우, 상한 임계값이나 하한 임계값의 절대값은 증가될 수 있다.The
한편, 디바이스(2000)는 움직임 방향 뿐만 아니라, 움직임 크기에 기초하여제어 명령과 관련된 속성값을 결정할 수 있다. 구체적으로, 디바이스(2000)는 움직임 크기에 선형적으로 비례 또는 반비례하도록 제어 명령과 관련된 속성값을 결정할 수 있다. 예를 들어, 프로세서(2400)는 "볼륨" 또는 "볼륨 업"이란 제어 명령과 함께 피치 각도가 30도인 사용자의 움직임 정보가 획득된 경우 현재 디바이스의 볼륨을 1단계만큼 증가시키고, 피치 각도가 60도인 사용자의 움직임 정보가 획득된 경우 현재 디바이스의 볼륨을 2단계만큼 증가시킬 수 있다. Meanwhile, the
한편, 제어 정보를 생성하는 데 이용되는 사용자의 움직임 정보로서 사용자의 발화가 식별된 발화 구간 동안에 획득된 움직임 정보가 이용되거나, 사용자의 발화가 더 이상 감지되지 않더라도 사용자의 발화 종료 시점부터 소정 임계 시간이 경과되기 전에 획득된 움직임 정보가 이용될 수 있다. 예를 들어, 사용자가 "Bixby volume"이란 음성 명령을 말한 이후 소정 임계 시간이 경과되기 전인 ta 시각에 움직임 정보(530)가 획득된 경우, 프로세서(2400)는 소정 임계 시간이 경과되기 전에 획득된 움직임 정보(530)를 이용하여 제어 정보를 생성할 수 있다. 도 5에 도시된 바와 같이, 프로세서(2400)는 "Bixby volume"이란 음성 명령이 종료된 이후 소정 임계 시간 내에 극대값 P5를 갖는 피치 방향의 움직임 정보(530)가 획득된 경우, 현재 디바이스의 볼륨을 증가시킬 수 있다.Meanwhile, as the user's motion information used to generate the control information, even if the motion information acquired during the utterance section in which the user's utterance is identified is used or the user's utterance is no longer detected, a predetermined threshold time from the end of the user's utterance Motion information acquired before this elapses may be used. For example, when the
또한, 프로세서(2400)는 미리 설정된 종료 키워드 음성이 입력되기 전까지 획득된 움직임 정보를 이용하여 제어 명령을 생성할 수 있다. 프로세서(2400)는 예를 들어, 미리 설정된 종료 키워드인 "OK", "Finished", "Thanks", "Done", "그만", "종료" 등의 음성이 인식되기 전까지 획득된 사용자의 움직임 정보를 이용하여 제어 명령을 생성할 수 있다. 전술한 예에서, 사용자가 "Bixby volume" 또는 "volume"이란 음성 명령을 말한 이후 계속하여 고개를 위로 드는 동작을 수행한 경우, 프로세서(2400)는 사용자의 발화 시점 이후부터 미리 지정된 종료 키워드가 인식되기 전까지 사용자의 고개를 위로 드는 동작의 횟수만큼 현재 디바이스의 볼륨의 레벨을 계속하여 증가시킬 수 있다. Also, the
또한, 프로세서(2400)는 종료 키워드를 이용하지 않고, 사용자의 움직임 정보를 분석하여, 사용자의 움직임이 발화 개시 시점에서의 초기 위치로 사용자의 움직임이 돌아온 경우, 제어 동작이 정지되도록 결정할 수 있다. 전술한 예에서, 프로세서(2400)는 사용자의 "Bixby volume" 또는 "volume"이란 음성 명령 이후 사용자의 고개의 움직임에 따라서 볼륨값을 제어하다가, 사용자의 머리 위치가 발화 개시 시점에서의 초기 위치로 돌아온 경우, 볼륨 제어 동작을 정지시킬 수 있다.Also, the
도 6 및 도 7은 일 실시예에 따라서 제어 정보의 속성값을 움직임 정보에 기초하여 결정하는 과정을 설명하기 위한 도면이다.6 and 7 are diagrams for explaining a process of determining an attribute value of control information based on motion information according to an embodiment.
전술한 바와 같이, 프로세서(2400)는 센싱부(2300)에서 검출된 움직임 정보를 이용하여, 제어 명령과 관련된 속성값을 결정할 수 있다. 프로세서(2400)는 움직임 방향 및 크기를 고려하여 단계적으로 속성값을 변화시키거나, 움직임에 선형적으로(linearly) 비례 또는 반비례하도록 속성값을 변화시킬 수 있다. As described above, the
구체적으로, 사용자의 음성 입력에 따라서 제어 명령의 유형이 결정되면, 프로세서(2400)는 검출된 움직임 방향을 고려하여 제어 명령과 관련된 속성값을 증가 또는 감소시킬지 여부를 결정한다. 프로세서(2400)는 xyz축 중 적어도 하나의 축 방향의 움직임 정보를 이용하여 제어 명령과 관련된 속성값을 결정할 수 있다. 예를 들어, 프로세서(2400)는 y축을 기준으로 회전하는 피치 움직임을 이용하여, 피치 각도가 + 값을 갖는 경우 제어 명령과 관련된 속성값이 증가되도록 결정하고, 피치 각도가 -값을 갖는 경우 속성값이 감소되도록 결정할 수 있다. 도 6에 도시된 바와 같이, 프로세서(2400)는 T1~T2 시간 동안 소정 임계값 Th 보다 큰 값을 갖는 움직임이 검출된 경우(610), T1~T2 시간동안 속성값을 단계적으로 변화시킬 수 있다(620). 또한, 도 7에 도시된 바와 같이, 프로세서(2400)는 T1~T2 시간 동안 소정 임계값 Th 보다 큰 값을 갖는 움직임이 검출된 경우(710), T1~T2 시간동안 속성값을 선형적으로 변화시킬 수 있다(720). 예를 들어, 프로세서(2400)는 "볼륨" 또는 "볼륨 업"이란 제어 명령과 함께 피치 각도가 소정 임계값보다 큰 상태를 유지하는 동안, 디바이스의 볼륨을 단계적으로 증가시키거나, 선형적으로 증가시킬 수 있다.Specifically, when the type of the control command is determined according to the user's voice input, the
도 8은 본 개시의 다른 실시예에 따라서 움직임 정보에 기초하여 제어 정보의 속성값을 결정하는 과정을 설명하기 위한 도면이다.8 is a diagram for explaining a process of determining an attribute value of control information based on motion information according to another embodiment of the present disclosure.
프로세서(2400)는 미세한 사용자의 움직임에 의하여 제어 동작이 민감하게 반응하는 것을 방지하기 위하여, 임계값을 기준으로 움직임 정보의 변화량을 판단할 수 있다. 구체적으로, 프로세서(2400)는 xyz 축 중 어느 한 축의 움직임 정보가 임계값 Th보다 작은 값에서 큰 값으로 변화된 경우를 + 방향의 움직임, Th보다 큰 값에서 작은 값으로 변화된 경우를 - 방향의 움직임이 발생한 것으로 판단하고, + 방향의 움직임 횟수 및 - 방향의 움직임 횟수를 분석하여 사용자의 움직임을 판단할 수 있다. The
예를 들어, 도 8을 참조하면, 프로세서(2400)는 센싱부(2300)에서 획득된 움직임 정보(800)를 분석하고, 임계값 Th1보다 작은 값에서 큰 값을 갖는 움직임이 획득된 경우 + 방향의 움직임이 발생하고, 임계값 Th1보다 큰 값에서 작은 값을 갖는 움직임이 획득된 경우 - 방향의 움직임이 발생한 것으로 판단할 수 있다. 도 8에서, Th1 임계값을 기준으로 + 방향 및 - 방향의 움직임이 판단되는 경우, 프로세서(2400)는 P1, P3, P4의 극대값을 갖는 3번의 + 방향의 움직임과 2번의 - 방향 움직임을 판단할 수 있다. P1 극대값으로부터 P2 극대값 사이의 움직임 변화는 Th1 임계값보다 큰 범위 내에서 변화되는 것이기 때문에 추가적인 + 방향 움직임이 발생된 것으로 판단되지 않고 무시될 수 있다.For example, referring to FIG. 8 , the
또한, 프로세서(2400)는 + 방향의 움직임을 판단하기 위한 임계값과 - 방향의 움직임을 판단하기 위한 임계값을 다르게 설정할 수 있다. + 방향의 움직임을 판단하기 위한 임계값을 Th1, - 방향의 움직임을 판단하기 위한 임계값을 Th2 라고 하면, 프로세서(2400)는 임계값 Th1보다 작은 값에서 큰 값을 갖는 움직임이 획득된 경우를 + 방향의 움직임이 발생된 것으로 판단하고, 임계값 Th2보다 큰 값에서 작은 값을 갖는 움직임이 획득된 경우를 - 방향의 움직임이 발생된 것으로 판단할 수 있다. 도 8에서, Th1 및 Th2의 2개의 임계값을 기준으로 + 방향 및 - 방향의 움직임이 판단되는 경우, 프로세서(2400)는 P1, P3, P4의 극대값을 갖는 3번의 + 방향의 움직임과 1번의 - 방향 움직임을 판단할 수 있다. P2 극대값으로부터 P3 극대값 사이의 움직임 변화는 Th2 임계값보다 큰 범위 내에서 변화되는 것이기 때문에, P2 극대값으로부터 P3 극대값 사이의 움직임 변화 중 - 방향 움직임은 발생되지 않은 것으로 판단될 수 있다. 이와 같이, 2개의 임계값을 기준으로 + 방향과 - 방향의 움직임을 판단하는 경우, 프로세서(2400)는 미세한 사용자의 움직임에 의하여 제어 동작이 민감하게 반응하는 것을 방지할 수 있다. In addition, the
프로세서(2400)는 + 방향 및 - 방향의 움직임 횟수가 결정되면, 제어 정보와 관련된 속성값을 결정할 수 있다. 예를 들어, 제어 정보가 볼륨인 경우 + 방향의 움직임 횟수에 따라서 볼륨 레벨을 증가시키거나, - 방향의 움직임 횟수에 따라서 볼륨 레벨을 감소시킬 수 있다.When the number of movements in the + direction and the - direction is determined, the
도 9a는 일 실시예에 따른 제어 정보를 생성하는 디바이스 및 피제어대상인 외부 디바이스를 포함하는 제어 시스템을 나타낸 도면이다.9A is a diagram illustrating a control system including a device generating control information and an external device to be controlled according to an exemplary embodiment.
도 9a를 참조하면, 디바이스(910)는 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성하고, 네트워크(920)를 통해 연결된 외부 디바이스(930)에 제어 정보를 전송하여 외부 디바이스(930)를 제어할 수 있다. 디바이스(910)는디폴트로 설치된 보이스 어시스턴트 프로그램에 의해 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 명령을 생성하고, 디바이스(1000) 자체의 제어를 위해 제어 명령을 이용할 수 있다.Referring to FIG. 9A , the
디바이스(910)는 AR(Augmented Reality) 글라스, 스마트워치, 스마트 렌즈, 스마트 팔찌, 스마트 의류 등의 웨어러블(wearable) 디바이스나, 스마트폰, 스마트 태블릿, 컴퓨터, 노트북 컴퓨터 등의 모바일 디바이스일 수 있으나, 이에 제한되지 않는다.The
외부 디바이스(930)는 스마트 전구, 스마트 펫, 로봇 청소기, 디스플레이 장치, 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 서버, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. The
네트워크(920)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 9a에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. The
도 9b는 다른 실시예에 따른 제어 정보를 생성하는 디바이스 및 피제어대상인 외부 디바이스를 포함하는 제어 시스템을 나타낸 도면이다.9B is a diagram illustrating a control system including a device for generating control information and an external device to be controlled according to another exemplary embodiment.
도 9b를 참조하면, 디바이스(910)가 사용자의 음성 입력 및 움직임 정보를 네트워크(920)를 통해 연결된 제 1 외부 디바이스(940)로 전송하고, 제 1 외부 디바이스(940)가 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성할 수 있다. 제 1 외부 디바이스(940)에서 생성된 제어 명령은 다시 디바이스(910) 또는 다른 제 2 외부 디바이스(950)의 제어를 위해 이용되거나, 제 1 외부 디바이스(940)의 제어를 위해 이용될 수 있다. 구체적으로, 디바이스(910)는 사용자의 음성 입력 및 움직임 정보를 제 1 외부 디바이스(940)로 전송하고, 제 1 외부 디바이스(940)는 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성하고, 디바이스(910)는 제 1 외부 디바이스(940)에서 생성된 제어 명령을 수신하고 수신된 제어 정보에 기초하여 제어 동작을 수행할 수 있다. 또한, 디바이스(910)는 제 2 외부 디바이스(950)의 제어를 위한 사용자의 음성 입력 및 움직임 정보를 제 1 외부 디바이스(940)로 전송하고, 제 1 외부 디바이스(940)는 사용자의 음성 입력 및 움직임 정보에 기초하여 제어 정보를 생성하고, 제 2 외부 디바이스(950)는 제 1 외부 디바이스(950)에서 생성된 제어 정보를 수신하고, 수신되 제어 정보에 기초하여 제어 동작을 수행할 수 있다.Referring to FIG. 9B , the
도 10은 일 실시예에 따른 디바이스가 제어 정보를 제공하는 방법의 흐름도이다. 10 is a flowchart of a method for a device to provide control information according to an embodiment.
동작 1010에서, 입력부(2100)는 외부 오디오 신호를 수신한다. 프로세서(2400)는 미리 지정된 보이스 어시스턴트 애플리케이션 (Voice Assistant Application)을 실행하기 위한 음성 입력이 수신된 경우, 해당 보이스 어시스턴트 애플리케이션을 실행하고, 입력부(2100)가 사용자의 음성 입력이 포함된 외부 오디오 신호를 수신하도록 제어할 수 있다.In
동작 1020에서, 입력부(2100) 또는 센싱부(2300)는 사용자의 발화에 의한 진동 정보를 획득한다. 프로세서(2400)는 입력부(2100)를 통해 입력되는 오디오 신호를 분석하여 사용자의 발화에 의한 음성 신호 패턴을 식별하여 발화 구간을 식별하거나, 센싱부(2300)에서 검출된 사용자의 발화에 의하여 발생되는 진동을 검출하여 발화 구간을 식별함으로써, 사용자의 발화 구간을 식별하기 위한 진동 정보를 획득할 수 있다.In
동작 1030에서, 프로세서(2400)는 수신된 오디오 신호로부터 사용자의 발화에 의하지 않은 비음성구간을 제외하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. In
동작 1040에서, 프로세서(2400)는 입력부(2100)를 통해 입력된 사용자의 음성 신호와, 센싱부(2300)로부터 획득된 사용자의 움직임에 따른 움직임 정보를 결합하여 디바이스(2000) 또는 외부 디바이스를 제어하기 위한 제어 정보를 생성할 수 있다. 프로세서(2400)는 사용자의 음성 신호에 기초하여 제어 명령의 유형을 결정하고, 사용자의 움직임 정보에 기초하여 제어 명령의 속성값을 결정할 수 있다. 제어 명령의 속성값을 결정하기 위하여, 프로세서(2400)는 발화 구간 시작점을 기준으로, 발화 구간 시작점 이후에 획득된 사용자의 움직임 정보로부터 사용자의 움직임 방향과 움직임 크기를 결정하고, 결정된 움직임 방향과 움직임 크기에 기초하여 제어 정보의 속성값을 결정할 수 있다. 구체적으로, 프로세서(2400)는 센싱부(2300)에서 xyz축을 기준으로 획득된 사용자의 피치, 롤, 요 움직임을 통해서 사용자의 움직임 방향과 움직임 크기를 결정하고, 움직임 방향과 움직임 크기에 기초하여 제어 명령과 관련된 속성값이 결정될 수 있다. 프로세서(2400)는 생성된 제어 명령을 디바이스(2000) 자체의 제어에 이용하거나, 생성된 제어 명령을 네트워크를 통해 연결된 외부 디바이스에 전송하여 외부 디바이스를 제어할 수 있다.In
도 11은 본 개시의 일 실시예에 따른 디바이스가 제어 정보를 제공하는 방법의 구체적인 흐름도이다. 11 is a detailed flowchart of a method for a device to provide control information according to an embodiment of the present disclosure.
동작 1110에서, 입력부(2100)는 오디오 신호를 수신한다. 동작 1120에서, 입력부(2100) 또는 센싱부(2300)는 사용자의 발화에 의한 진동 정보를 획득하며, 센싱부(2300)는 가속도 센서(2310) 및 자이로스코프 센서(2320)를 포함하며, 사용자의 움직임 정보를 획득할 수 있다. 센싱부(2300)는 사용자의 움직임을 감지하고, 감지된 사용자의 움직임에 관한 전기 신호 또는 데이터값을 생성할 수 있다. In
동작 1130에서, 프로세서(2400)는 입력부(2100)를 통해 입력되는 오디오 신호를 분석하여 사용자의 발화에 의한 음성 신호 패턴을 식별하여 발화 구간을 식별하거나, 센싱부(2300)에서 검출된 사용자의 발화에 의하여 발생되는 진동을 검출하여 사용자의 발화 상태를 판단하고, 입력 오디오 신호 중 사용자의 발화에 의한 구간을 식별한다.In
동작 1140에서, 프로세서(2400)는 수신된 오디오 신호로부터 사용자의 발화에 의하지 않은 비음성구간을 제외하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. In
동작 1150에서, 프로세서(2400)는 입력부(2100)를 통해 입력된 사용자의 음성 신호와, 센싱부(2300)로부터 획득된 사용자의 움직임에 따른 움직임 정보를 결합하여 디바이스(2000) 또는 외부 디바이스를 제어하기 위한 제어 정보를 생성할 수 있다. 프로세서(2400)는 사용자의 음성 신호에 기초하여 제어 명령의 유형을 결정하고, 사용자의 움직임 정보에 기초하여 제어 명령의 속성값을 결정할 수 있다. 제어 명령의 속성값을 결정하기 위하여, 프로세서(2400)는 발화 구간 시작점을 기준으로, 발화 구간 시작점 이후에 획득된 사용자의 움직임 정보로부터 사용자의 움직임 방향과 움직임 크기를 결정하고, 결정된 움직임 방향과 움직임 크기에 기초하여 제어 정보의 속성값을 결정할 수 있다. In
도 12는 본 개시의 일 실시예에 따른 외부 디바이스의 제어 방법을 나타낸 흐름도이다.12 is a flowchart illustrating a method of controlling an external device according to an embodiment of the present disclosure.
동작 S1210에서, 디바이스(1200)는 오디오 신호를 수신하고, 동작 S1220에서, 디바이스(1200)는 사용자의 발화에 의한 진동 정보 및 사용자의 움직임 정보를 획득할 수 있다. In operation S1210 , the
동작 S1230에서, 디바이스(1200)는 입력 오디오 신호 중 사용자의 발화에 의한 구간을 식별하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. 또한, 디바이스(1200)는 사용자의 음성 신호와, 사용자의 움직임에 따른 움직임 정보를 결합하여 외부 디바이스(1250)를 제어하기 위한 제어 정보를 생성하고, 동작 S1240에서 디바이스(1200)는 소정의 네트워크를 통해 연결된 외부 디바이스(1250)에 생성된 제어 정보를 전송한다. 동작 S1260에서, 외부 디바이스(1250)에 포함된 프로세서는 수신된 제어 정보에 따라서 제어 동작을 수행함으로써 외부 디바이스의 상태를 변경한다.In operation S1230, the
도 13은 본 개시의 다른 실시예에 따른 외부 디바이스의 제어 방법을 나타낸 흐름도이다.13 is a flowchart illustrating a method of controlling an external device according to another embodiment of the present disclosure.
동작 S1310에서, 디바이스(1300)는 오디오 신호를 수신하고, 동작 S1311에서, 디바이스(1300)는 사용자의 발화에 의한 진동 정보 및 사용자의 움직임 정보를 획득한다. In operation S1310 , the
동작 S1312에서, 디바이스(1300)는 획득된 오디오 신호, 진동 정보 및 사용자의 움직임 정보를 외부 디바이스(1350)로 전송한다.In operation S1312 , the
동작 S1320에서, 외부 디바이스(1350)는 입력 오디오 신호 중 사용자의 발화에 의한 구간을 식별하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. 외부 디바이스(1350)는 입력 오디오 신호 중 사용자의 발화에 의한 구간을 식별하고, 실제 사용자의 발화에 의한 사용자 음성 입력을 식별한다. 또한, 외부 디바이스(1350)는 사용자의 음성 신호와, 사용자의 움직임에 따른 움직임 정보를 결합하여 제어 정보를 생성한다. In operation S1320, the
제어 정보는 디바이스(1300)의 제어를 위한 제어 정보일 수 있다. 동작 S1330에서, 외부 디바이스(1350)는 생성된 제어 정보를 디바이스(1300)에 전송하고, 동작 S1331에서 제어 정보를 수신한 디바이스(1300)는 수신된 제어 정보에 따라서 제어 동작을 수행함으로써 디바이스(1300)의 상태를 변경할 수 있다.The control information may be control information for controlling the
제어 정보는 외부 디바이스(1380)의 제어를 위한 제어 정보일 수 있다. 이와 같은 경우, 동작 S1332에서 외부 디바이스(1350)에서 생성된 제어 정보가 직접 또 다른 외부 디바이스(1380)으로 전송되거나, 동작 S1333에서 외부 디바이스(1350)에서 생성된 제어 정보를 수신한 디바이스(1300)가 다시 제어 정보를 외부 디바이스(1380)으로 전송할 수 있다. 외부 디바이스(1380)에 포함된 프로세서는 수신된 제어 정보에 따라서 제어 동작을 수행할 수 있다.The control information may be control information for controlling the
도 14는 본 개시의 일 실시예에 따른 전자 장치(2000)의 구성을 도시한 블록도이다. 도 14에 도시된 전자 장치(2000)는 도 1 내지 도 13에서 설명한 디바이스와 동일한 구성 요소를 포함할 수 있으며, 동일한 구성 요소는 도 1 내지 도 13에서 설명한 동작 및 기능들을 모두 수행할 수 있다. 따라서, 이하에서는 지금까지 설명되지 않았던 전자 장치(2000)의 구성 요소들에 대하여 설명하기로 한다.14 is a block diagram illustrating a configuration of an
도 14를 참조하면, 전자 장치(2000)는 사용자 입력부(1100), 출력부(1200), 제어부(1300), 센싱부(1400), 통신부(1500), A/V 입력부(1600), 및 메모리(1700)를 포함할 수 있다. Referring to FIG. 14 , the
사용자 입력부(1100)는, 사용자가 전자 장치(2000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 사용자 입력부(1100)는, 사용자에게 제공할 대화 정보를 생성하기 위하여 필요한 사용자 입력을 수신할 수 있다.The
출력부(1200)는 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.The
진동 모터(1230)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(1230)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다. The
센싱부(1400)는, 전자 장치(2000)의 상태 또는 전자 장치(2000) 주변의 상태를 감지하고, 감지된 정보를 제어부(1300)로 전달할 수 있다. The
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(illuminance sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.The
통신부(1500)는, 다른 디바이스와의 통신을 수행하기 위한 구성 요소를 포함할 수 있다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다. The
근거리 통신부(short-range wireless communication unit)(151)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. Short-range wireless communication unit 151, Bluetooth communication unit, BLE (Bluetooth Low Energy) communication unit, short-range wireless communication unit (Near Field Communication unit), WLAN (Wi-Fi) communication unit, Zigbee (Zigbee) communication unit, infrared ( It may include an IrDA, infrared Data Association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, an Ant+ communication unit, and the like, but is not limited thereto.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 전자 장치(2000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.The
또한, 통신부(1500)는, 제1 사용자에게 제공할 대화 정보를 생성하기 위하여 필요한 정보를, 제2 대화형 전자 장치(3000), 다른 디바이스 및 서버와 송수신할 수 있다.Also, the
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다. 카메라(1610)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다. The A/V (Audio/Video)
카메라(1610)에서 처리된 화상 프레임은 메모리(1700)에 저장되거나 통신부(1500)를 통하여 외부로 전송될 수 있다. 카메라(1610)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.The image frame processed by the
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1620)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. The
메모리(1700)는, 제어부(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(2000)로 입력되거나 전자 장치(2000)로부터 출력되는 데이터를 저장할 수도 있다. The
메모리(1700)는 플래시 메모리 타입(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
메모리(1700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1710), 터치 스크린 모듈(1720), 알림 모듈(1730) 등으로 분류될 수 있다. Programs stored in the
UI 모듈(1710)은, 애플리케이션 별로 전자 장치(2000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(1300)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.The
알림 모듈(1730)은 전자 장치(2000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 전자 장치(2000)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(1730)은 디스플레이부(1210)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1220)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(1230)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다.The
본 개시에서 설명된 전자 장치(2000)는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 전자 장치(2000)는 프로세서, ALU(arithmetic logic unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 마이크로컴퓨터, 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. The
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD, Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다. The software may be implemented as a computer program including instructions stored in a computer-readable storage medium. The computer-readable recording medium includes, for example, a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optically readable medium (eg, CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc. The computer-readable recording medium is distributed among computer systems connected through a network, so that the computer-readable code can be stored and executed in a distributed manner. The medium may be readable by a computer, stored in a memory, and executed on a processor.
컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(1000,2000)를 포함할 수 있다.The computer is an apparatus capable of calling a stored instruction from a storage medium and operating according to the disclosed embodiment according to the called instruction, and may include the
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. The computer-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.
또한, 개시된 실시예들에 따른 전자 장치(1000,2000) 또는 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.In addition, the
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치(1000, 2000)의 제조사 또는 전자 마켓(예를 들어, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.The computer program product may include a software program, a computer-readable storage medium in which the software program is stored. For example, the computer program product is a product (eg, a downloadable product) in the form of a software program distributed electronically through a manufacturer of the
컴퓨터 프로그램 제품은, 서버 및 단말로 구성되는 시스템에서, 서버의 저장매체 또는 단말의 저장매체를 포함할 수 있다. 또는, 서버 또는 단말과 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 단말 또는 제3 장치로 전송되거나, 제3 장치로부터 단말로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.The computer program product, in a system consisting of a server and a terminal, may include a storage medium of a server or a storage medium of a terminal. Alternatively, when there is a third device (eg, a smart phone) that is communicatively connected to the server or terminal, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the software program itself transmitted from the server to the terminal or third device, or transmitted from the third device to the terminal.
이 경우, 서버, 단말 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 단말 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the terminal, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the terminal, and the third device may execute the computer program product to distribute the method according to the disclosed embodiments.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 단말이 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다. For example, a server (eg, a cloud server or an artificial intelligence server) may execute a computer program product stored in the server, and may control a terminal communicatively connected with the server to perform the method according to the disclosed embodiments.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 단말이 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. As another example, the third device may execute a computer program product to control the terminal communicatively connected to the third device to perform the method according to the disclosed embodiment.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.When the third device executes the computer program product, the third device may download the computer program product from the server and execute the downloaded computer program product. Alternatively, the third device may execute the computer program product provided in a preloaded state to perform the method according to the disclosed embodiments.
또한, 이상에서는 본 개시의 실시예에 대하여 도시하고 설명하였지만, 본 개시는 전술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although the embodiments of the present disclosure have been illustrated and described in the above, the present disclosure is not limited to the specific embodiments described above, and in the technical field to which the present invention pertains without departing from the gist of the present invention as claimed in the claims. Various modifications may be made by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present disclosure.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 전자 장치, 구조, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in an order different from the described method, and/or the described components of an electronic device, structure, circuit, etc. are combined or combined in a different form than the described method, or other components or Substituted or substituted for equivalent results may be obtained.
Claims (15)
오디오 신호를 수신하는 마이크로폰;
사용자의 발화 상태에 따른 진동 정보를 획득하는 센서 모듈; 및
상기 적어도 하나의 프로그램을 실행함으로써 상기 오디오 신호로부터 식별된 사용자의 음성 입력에 대응되는 제어 정보가 생성되도록 하는 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로그램은,
상기 진동 정보에 기초하여, 상기 마이크로폰을 통해서 수신된 오디오 신호로부터 상기 사용자의 음성 입력을 식별하는 단계; 및
상기 식별된 사용자의 음성 입력에 기초하여, 상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계:
를 실행하는 명령어들을 포함하는 것을 특징으로 하는 디바이스.
a memory in which at least one program is stored;
a microphone for receiving an audio signal;
a sensor module for acquiring vibration information according to the user's utterance state; and
at least one processor for generating control information corresponding to a user's voice input identified from the audio signal by executing the at least one program;
the at least one program,
identifying the user's voice input from the audio signal received through the microphone based on the vibration information; and
generating control information corresponding to the user's voice input based on the identified user's voice input;
A device comprising instructions for executing
상기 마이크로폰을 통해서 수신된 오디오 신호로부터 상기 사용자의 음성 입력을 식별하는 단계는,
상기 진동 정보에 기초하여, 사용자의 발화에 의한 사용자 발화 구간을 결정하는 단계; 및
상기 사용자 발화 구간 내에서 획득된 오디오 신호를 상기 사용자의 음성 입력 신호로 결정하는 단계를 포함하는 것을 특징으로 하는 디바이스.
The method of claim 1,
The step of identifying the user's voice input from the audio signal received through the microphone comprises:
determining a user's speech section by the user's speech based on the vibration information; and
and determining an audio signal obtained within the user's utterance section as the user's voice input signal.
상기 센서 모듈은 상기 사용자의 움직임에 따른 움직임 정보를 더 획득하며,
상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계는
상기 사용자의 음성 신호와 상기 움직임 정보를 결합하여 상기 제어 정보를 생성하는 것을 특징으로 하는 디바이스.
The method of claim 1,
The sensor module further acquires movement information according to the user's movement,
The step of generating control information corresponding to the user's voice input includes:
The device, characterized in that generating the control information by combining the user's voice signal and the motion information.
상기 제어 정보는 상기 사용자의 음성 신호에 기초하여 결정된 상기 디바이스의 제어를 위한 제어 명령과, 상기 제어 명령과 관련된 속성값을 포함하며,
상기 속성값은 상기 사용자의 움직임 정보에 기초하여 변화되는 것을 특징으로 하는 디바이스.
4. The method of claim 3,
The control information includes a control command for controlling the device determined based on the user's voice signal, and an attribute value related to the control command,
The device, characterized in that the attribute value is changed based on the user's motion information.
상기 사용자의 움직임 정보는 피치(pitch) 축, 롤(roll) 축, 및 요(yaw) 축의 3축을 기준으로 획득된 정보이며,
상기 속성값은 상기 3축을 기준으로 결정된 움직임 방향 및 움직임 크기에 기초하여 결정되는 것을 특징으로 하는 디바이스.
5. The method of claim 4,
The user's movement information is information obtained based on three axes of a pitch axis, a roll axis, and a yaw axis,
The device, characterized in that the attribute value is determined based on the movement direction and movement size determined based on the three axes.
상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계는
상기 진동 정보에 기초하여, 상기 사용자의 음성 입력의 발화 구간 시작점을 결정하는 단계; 및
상기 발화 구간 시작점을 기준으로, 상기 발화 구간 시작점 이후에 획득된 상기 사용자의 움직임 정보로부터 상기 사용자의 움직임 방향과 움직임 크기를 결정하고, 결정된 상기 움직임 방향과 움직임 크기에 기초하여 상기 제어 정보를 생성하는 것을 특징으로 하는 디바이스.
4. The method of claim 3,
The step of generating control information corresponding to the user's voice input includes:
determining a starting point of an utterance section of the user's voice input based on the vibration information; and
Based on the starting point of the speech section, determining the user's movement direction and motion size from the user's motion information obtained after the speech section starting point, and generating the control information based on the determined motion direction and motion size Device characterized in that.
상기 디바이스는 외부 디바이스와 통신을 수행하는 통신부를 더 포함하며,
상기 제어 정보는 상기 외부 디바이스에 대한 제어 명령을 포함하는 것을 특징으로 하는 디바이스.
The method of claim 1,
The device further includes a communication unit for communicating with an external device,
The control information device, characterized in that it comprises a control command for the external device.
오디오 신호를 수신하는 단계;
사용자의 발화 상태에 따른 진동 정보를 획득하는 단계;
상기 진동 정보에 기초하여 상기 오디오 신호에 포함된 상기 사용자의 음성 입력을 식별하는 단계; 및
상기 식별된 사용자의 음성 입력에 기초하여, 상기 사용자의 음성 입력에 대응되는 제어 정보를 생성하는 단계를 포함하는 방법.
A method for a device to provide control information for a user's voice input, the method comprising:
receiving an audio signal;
acquiring vibration information according to the user's utterance state;
identifying the user's voice input included in the audio signal based on the vibration information; and
and generating control information corresponding to the user's voice input based on the identified user's voice input.
상기 사용자의 음성 입력을 식별하는 단계는,
상기 진동 정보에 기초하여, 사용자의 발화에 의한 사용자 발화 구간을 결정하는 단계; 및
상기 사용자 발화 구간 내에서 획득된 오디오 신호를 상기 사용자의 음성 입력 신호로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
9. The method of claim 8,
The step of identifying the user's voice input comprises:
determining a user's speech section by the user's speech based on the vibration information; and
and determining an audio signal acquired within the user's utterance section as the user's voice input signal.
상기 사용자의 움직임에 따른 움직임 정보를 획득하는 단계를 더 포함하며,
상기 제어 정보는 상기 사용자의 음성 신호와 상기 움직임 정보를 결합하여 생성되는 것을 특징으로 하는 방법.
9. The method of claim 8,
Further comprising the step of obtaining movement information according to the user's movement,
The control information is a method, characterized in that generated by combining the user's voice signal and the motion information.
상기 제어 정보는 상기 사용자의 음성 신호에 기초하여 결정된 상기 디바이스의 제어를 위한 제어 명령과, 상기 제어 명령과 관련된 속성값을 포함하며,
상기 속성값은 상기 사용자의 움직임 정보에 기초하여 변화되는 것을 특징으로 하는 방법.
11. The method of claim 10,
The control information includes a control command for controlling the device determined based on the user's voice signal, and an attribute value related to the control command,
The method, characterized in that the attribute value is changed based on the user's motion information.
상기 사용자의 움직임 정보는 피치(pitch) 축, 롤(roll) 축, 및 요(yaw) 축의 3축을 기준으로 획득된 정보이며,
상기 속성값은 상기 3축을 기준으로 결정된 움직임 방향 및 움직임 크기에 기초하여 결정되는 것을 특징으로 하는 방법.
12. The method of claim 11,
The user's movement information is information obtained based on three axes of a pitch axis, a roll axis, and a yaw axis,
The method of claim 1, wherein the attribute value is determined based on a movement direction and a movement magnitude determined based on the three axes.
상기 진동 정보에 기초하여, 상기 사용자의 음성 입력의 발화 구간 시작점이 결정되며,
상기 발화 구간 시작점을 기준으로, 상기 발화 구간 시작점 이후에 획득된 상기 사용자의 움직임 정보로부터 상기 사용자의 움직임 방향과 움직임 크기가 결정되고, 결정된 상기 움직임 방향과 움직임 크기에 기초하여 상기 제어 정보가 생성되는 것을 특징으로 하는 방법.
11. The method of claim 10,
Based on the vibration information, the starting point of the utterance section of the user's voice input is determined,
Based on the starting point of the speech section, the user's movement direction and motion size are determined from the user's motion information obtained after the speech section start point, and the control information is generated based on the determined motion direction and motion size A method characterized in that.
상기 생성된 사용자의 음성 입력에 대응되는 제어 정보를 외부 디바이스에 전송하는 단계를 더 포함하는 방법.
9. The method of claim 8,
The method further comprising transmitting control information corresponding to the generated user's voice input to an external device.
A computer-readable recording medium in which a program for executing the method of claim 8 in a computer is recorded.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200024554A KR20210109722A (en) | 2020-02-27 | 2020-02-27 | Device for generating control information based on user's utterance status |
PCT/KR2020/003007 WO2021172641A1 (en) | 2020-02-27 | 2020-03-03 | Device for generating control information on basis of utterance state of user, and control method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200024554A KR20210109722A (en) | 2020-02-27 | 2020-02-27 | Device for generating control information based on user's utterance status |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210109722A true KR20210109722A (en) | 2021-09-07 |
Family
ID=77491689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200024554A KR20210109722A (en) | 2020-02-27 | 2020-02-27 | Device for generating control information based on user's utterance status |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210109722A (en) |
WO (1) | WO2021172641A1 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101625668B1 (en) * | 2009-04-20 | 2016-05-30 | 삼성전자 주식회사 | Electronic apparatus and voice recognition method for electronic apparatus |
KR101581883B1 (en) * | 2009-04-30 | 2016-01-11 | 삼성전자주식회사 | Appratus for detecting voice using motion information and method thereof |
US9459176B2 (en) * | 2012-10-26 | 2016-10-04 | Azima Holdings, Inc. | Voice controlled vibration data analyzer systems and methods |
KR20180098079A (en) * | 2017-02-24 | 2018-09-03 | 삼성전자주식회사 | Vision-based object recognition device and method for controlling thereof |
KR102101373B1 (en) * | 2018-02-19 | 2020-04-16 | 주식회사 셀바스에이아이 | Device for voice recognition using end point detection and method thereof |
-
2020
- 2020-02-27 KR KR1020200024554A patent/KR20210109722A/en unknown
- 2020-03-03 WO PCT/KR2020/003007 patent/WO2021172641A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021172641A1 (en) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021036644A1 (en) | Voice-driven animation method and apparatus based on artificial intelligence | |
EP3792911B1 (en) | Method for detecting key term in speech signal, device, terminal, and storage medium | |
US11482208B2 (en) | Method, device and storage medium for speech recognition | |
KR102623272B1 (en) | Electronic apparatus and Method for controlling electronic apparatus thereof | |
KR102389313B1 (en) | Method and device for performing speech recognition using a grammar model | |
US9613618B2 (en) | Apparatus and method for recognizing voice and text | |
US20180374476A1 (en) | System and device for selecting speech recognition model | |
KR102628211B1 (en) | Electronic apparatus and thereof control method | |
KR20150112337A (en) | display apparatus and user interaction method thereof | |
US10360775B1 (en) | Systems and methods for designing haptics using speech commands | |
KR102369083B1 (en) | Voice data processing method and electronic device supporting the same | |
KR102592907B1 (en) | Method and device for recognizing a text | |
KR20200093094A (en) | Electronic device and controlling method thereof | |
CN114175149A (en) | Adaptive log model and user interface | |
US20220284906A1 (en) | Electronic device and operation method for performing speech recognition | |
US20220270605A1 (en) | Electronic apparatus and assistant service providing method thereof | |
WO2016206646A1 (en) | Method and system for urging machine device to generate action | |
KR20210020219A (en) | Co-reference understanding electronic apparatus and controlling method thereof | |
JP2018075657A (en) | Generating program, generation device, control program, control method, robot device and telephone call system | |
KR20210109722A (en) | Device for generating control information based on user's utterance status | |
KR20230127783A (en) | Device and method of handling mis-recognized audio signal | |
US10649725B1 (en) | Integrating multi-channel inputs to determine user preferences | |
US12001808B2 (en) | Method and apparatus for providing interpretation situation information to one or more devices based on an accumulated delay among three devices in three different languages | |
WO2024019759A1 (en) | Controlling head-mounted devices by voiced nasal consonants | |
KR20240020137A (en) | Electronic devcie and method for recognizing voice |