WO2021040092A1 - 음성 인식 서비스 제공 방법 및 장치 - Google Patents
음성 인식 서비스 제공 방법 및 장치 Download PDFInfo
- Publication number
- WO2021040092A1 WO2021040092A1 PCT/KR2019/011068 KR2019011068W WO2021040092A1 WO 2021040092 A1 WO2021040092 A1 WO 2021040092A1 KR 2019011068 W KR2019011068 W KR 2019011068W WO 2021040092 A1 WO2021040092 A1 WO 2021040092A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- action
- user
- candidate
- speech recognition
- determining
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000009471 action Effects 0.000 claims description 294
- 238000003058 natural language processing Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 abstract description 29
- 238000010801 machine learning Methods 0.000 abstract description 19
- 230000004044 response Effects 0.000 abstract description 15
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 210000000225 synapse Anatomy 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 210000004185 liver Anatomy 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- 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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
-
- 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
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- 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/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- 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/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- 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
- 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/26—Speech to text systems
-
- 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/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
- G10L2015/0635—Training updating or merging of old and new templates; Mean values; Weighting
-
- 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
- G10L2015/223—Execution procedure of a spoken command
-
- 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
- G10L2015/225—Feedback of the input speech
-
- 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
- G10L2015/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
-
- 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
- G10L2015/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
- G10L2015/228—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
Definitions
- the present invention relates to a method and apparatus for providing a speech recognition service, and more specifically, to a method for providing a response that meets the intention of a user based on speech recognition, and a speech recognition apparatus that provides a speech recognition service by using the same method.
- a speech recognition apparatus that provides a speech recognition service by using the same method.
- Speech recognition technology is being actively applied to personalized speech recognition services in tandem with the full-scale spread of artificial intelligence (AI) technology and Internet of Things (IoT) technology.
- AI artificial intelligence
- IoT Internet of Things
- the user can communicate with the virtual assistant to which the voice recognition technology is applied, and transmit a command to search the Internet or create a schedule to the virtual assistant.
- Prior Art 1 (Republic of Korea Patent Publication No. 10-1198862B1) relates to a technology for providing a user interface suitable for a user's usage pattern authenticated by voice recognition.
- Prior art 1 expresses a user interface corresponding to the stored voice information on the terminal when re-recognizing the same user voice as the stored user voice.
- prior art 1 cannot analyze or execute a command indicated by a user's utterance.
- Prior Art 2 (Korean Patent Application Publication No. KR10-2010-0111164 A) relates to a voice conversation processing technology for identifying user utterance intentions associated with vocabulary not included in the vocabulary set.
- Prior art 2 generates conversation history information based on voice characteristic information, meaning information, and conversation history information of an input voice, and grasps the intention of the user's speech.
- prior art 2 fails to disclose a technique for grasping the intention of the user's utterance when the user's utterance is an ambiguous utterance having more than one meaning.
- An object of the present invention is to solve a problem of the prior art in which a speech recognition error may occur due to the inability to grasp the intention of the user when the user's utterance in the speech recognition service is intensive.
- An object of the present invention is to provide a criterion for selecting a response that meets the user's intention for the user's ambiguous speech in a speech recognition service.
- a method for providing a voice service includes the steps of receiving a user's voice input, obtaining a plurality of candidate actions extracted from the voice input, and based on the user's current context information. Accordingly, the method may include determining a degree of association between the voice input and each candidate action of the plurality of candidate actions, and determining a final action from among the plurality of candidate actions based on the determined degree of association.
- determining the degree of association includes analyzing the context information accumulated for the user, determining a weight of each candidate action for each type of context information, and combining the weights for each candidate action to determine the degree of association. It may include the step of calculating.
- the speech recognition apparatus may include a microphone that receives a user's voice input, and a processor that determines one action from among a plurality of candidate actions extracted from the voice input as a final action.
- the processor determines a degree of association between the voice input and each candidate action of the plurality of candidate actions based on current context information of the user, and an operation of determining a final action from among the plurality of candidate actions based on the degree of association. Can be set to perform.
- the operation of determining the degree of association is an operation of analyzing the context information accumulated for the user and determining the weight of each candidate action for each type of context information, and calculating the degree of association by combining the weights for each candidate action. It may include an operation to do.
- a voice recognition service suitable for the user's situation can be provided.
- an optimized speech recognition service can be provided to the user.
- FIG. 1 is an exemplary diagram of a speech recognition environment according to an embodiment.
- FIG. 2 is a schematic flowchart of a voice recognition service according to an embodiment.
- FIG. 3 is a schematic block diagram of a speech recognition apparatus according to an embodiment.
- FIG. 4 is a flowchart of a method for providing a voice recognition service according to an embodiment.
- FIG. 5 is an exemplary flowchart of a process of determining a weight of each candidate action according to an embodiment.
- 6 to 8 are diagrams for illustratively explaining a process of determining a final action according to an embodiment.
- FIG. 1 is an exemplary diagram of a speech recognition environment according to an embodiment.
- the voice recognition environment may include a voice recognition apparatus 100, a server 200, and a network 300.
- the voice recognition device 100 and the server 300 may be connected to each other in a 5G communication environment.
- various electronic devices used in homes or offices may be connected to each other to operate in an IoT environment.
- the voice recognition apparatus 100 may receive a voice uttered by a user, and provide a voice recognition service through recognition and analysis.
- the voice recognition apparatus 100 may include various electronic devices capable of performing a voice recognition function, such as an artificial intelligence (AI) speaker or a communication robot.
- AI artificial intelligence
- the voice recognition device 100 includes a desktop computer, a smart phone, a notebook, a tablet PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a media player, a micro server, and a global positioning system) device, e-book terminal, digital broadcasting terminal, navigation, kiosk, MP3 player, digital camera, home appliance, and other mobile or non-mobile computing devices, but are not limited thereto.
- the voice recognition apparatus 100 may be a wearable device such as a watch, glasses, hair band, and ring having a communication function and a data processing function.
- the voice recognition apparatus 100 may include various home appliances capable of performing a voice recognition function, such as a TV, a washing machine, and an air conditioner.
- the voice recognition apparatus 100 may serve as a hub for controlling an electronic device without a voice input/output function.
- the voice recognition apparatus 100 may perform a voice recognition function on its own to output a voice recognition process result, or transmit an input voice to the server 200, and receive the voice recognition process result from the server 200. You can also print it out.
- the server 200 may be a database server that provides big data required to apply various artificial intelligence algorithms and data related to voice recognition.
- the server 200 may include a web server or an application server that enables remote control of the voice recognition device 100.
- Machine learning refers to the field of studying methodologies to define and solve various problems dealt with in the field of artificial intelligence. do.
- Machine learning is also defined as an algorithm that improves the performance of a task through continuous experience.
- An artificial neural network is a model used in machine learning, and may refer to an overall model with problem-solving capabilities, composed of artificial neurons (nodes) that form a network by combining synapses.
- the artificial neural network may be defined by a connection pattern between neurons of different layers, a learning process for updating model parameters, and an activation function for generating an output value.
- the artificial neural network may include an input layer, an output layer, and optionally one or more hidden layers. Each layer includes one or more neurons, and the artificial neural network may include neurons and synapses connecting neurons. In an artificial neural network, each neuron can output a function of an activation function for input signals, weights, and biases input through synapses.
- Model parameters refer to parameters determined through learning, and include weights of synaptic connections and biases of neurons.
- the hyperparameter refers to a parameter that must be set before learning in a machine learning algorithm, and includes a learning rate, number of iterations, mini-batch size, and initialization function.
- the purpose of learning the artificial neural network can be seen as determining the model parameters that minimize the loss function.
- the loss function can be used as an index to determine an optimal model parameter in the learning process of the artificial neural network.
- Machine learning can be classified into supervised learning, unsupervised learning, and reinforcement learning according to the learning method.
- Supervised learning refers to a method of training an artificial neural network when a label for training data is given, and a label indicates the correct answer (or result value) that the artificial neural network must infer when training data is input to the artificial neural network. It can mean.
- Unsupervised learning may mean a method of training an artificial neural network in a state in which a label for training data is not given.
- Reinforcement learning may mean a learning method in which an agent defined in a certain environment learns to select an action or sequence of actions that maximizes the cumulative reward in each state.
- machine learning implemented as a deep neural network (DNN) including a plurality of hidden layers is sometimes referred to as deep learning (deep learning), and deep learning is a part of machine learning.
- DNN deep neural network
- machine learning is used in the sense including deep learning.
- the server 200 may perform voice recognition on a voice input and transmit a result of performing voice recognition to the voice recognition apparatus 100.
- the server 200 may receive a voice input from the voice recognition apparatus 100 and determine a plurality of candidate actions corresponding to a user command indicated by the voice input. For this, the server 200 may use a natural language processing model based on machine learning.
- the server 200 may transmit information on a plurality of determined candidate actions to the speech recognition apparatus 100.
- the network 300 may serve to connect the voice recognition device 100 and the server 200.
- Such networks 300 include wired networks such as local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), and integrated service digital networks (ISDNs), wireless LANs, CDMA, Bluetooth, and satellite communications. It may cover a wireless network such as, but the scope of the present invention is not limited thereto.
- the network 300 may transmit and receive information using short-range communication and/or long-distance communication.
- short-range communication may include Bluetooth, radio frequency identification (RFID), infrared data association (IrDA), ultra-wideband (UWB), ZigBee, and wireless fidelity (Wi-Fi) technologies
- RFID radio frequency identification
- IrDA infrared data association
- UWB ultra-wideband
- ZigBee wireless fidelity
- Wi-Fi wireless fidelity
- CDMA code division multiple access
- FDMA frequency division multiple access
- TDMA time division multiple access
- OFDMA orthogonal frequency division multiple access
- SC-FDMA single carrier frequency division multiple access
- Network 300 may include connections of network elements such as hubs, bridges, routers, switches and gateways.
- the network 300 may include one or more connected networks, such as a multi-network environment, including a public network such as the Internet and a private network such as a secure corporate private network. Access to network 300 may be provided through one or more wired or wireless access networks.
- the network 300 may support an Internet of Things (IoT) network and/or 5G communication that exchanges and processes information between distributed components such as objects.
- IoT Internet of Things
- FIG. 2 is a schematic flowchart of a voice recognition service according to an embodiment.
- the voice recognition service is a service that recognizes a user's voice input and provides a result of performing a command indicated by the voice input as a response to the user.
- the voice recognition device 100 is a device that provides such a voice recognition service, and obtains a voice input uttered by a user (step 210), analyzes the voice input, and classifies a command indicated by the voice input into at least one action. Then (step 220), a final action is determined by analyzing user intention among the classified actions (step 230). Subsequently, the speech recognition apparatus 100 executes the final action (step 240), generates a response based on the result, and outputs it to the user (step 250).
- An action is a task executed by the voice recognition apparatus 100 to perform a command indicated by a voice input, and the voice input may include a Named Entity to be an action target.
- the voice input device 100 may analyze the voice input and derive a command indicated by the voice input.
- the command indicated by the voice input may include the object of the command and the contents of the command.
- the target of the command corresponds to the entity name and the contents of the command correspond to the action.
- a command indicated by one voice input may be classified as an action for a plurality of domains.
- Domain refers to the functional category of actions.
- the command'Find A' can be classified as an action for various domains that support a search function. Music, schedule, web, memo, address book, app, home appliance control, weather, message, and place exemplarily illustrated in FIG. 2 all correspond to domains supporting a search function.
- the command'Find A' may be classified as'Find A's contact information in the address book' (first action) or'Find A place' (second action). In this way, voice input that can be classified into a plurality of actions is referred to as double speech.
- the speech recognition apparatus 100 may perform user intention analysis to determine a final action for an ambiguity voice input that can be classified into a plurality of actions.
- user intention analysis means classifying the voice input uttered by the user as one of predefined actions.
- User intention analysis contributes to providing a response that matches the user's utterance intention. That is, the speech recognition apparatus 100 selects, as a final action, one of the plurality of candidate actions, which is determined to best match the user's intention, using the user intention analysis. For example, according to the command'Find A', one of the first action and the second action obtained as a result of classifying in the previous example according to the domain intended by the user is finally selected.
- a more detailed description of a method for providing a voice recognition service according to an embodiment will be described later with reference to FIGS. 4 and 5.
- FIG. 3 is a schematic block diagram of a speech recognition apparatus according to an embodiment.
- the speech recognition apparatus 100 includes a communication unit 110, a user interface unit 120 including a display unit 121 and an operation unit 122, a sensing unit 130, an audio input unit 141, and an audio output unit 142. It may include an audio processing unit 140, a memory 150, and a processor 160 including.
- the communication unit 110 may provide a communication interface necessary for providing a transmission/reception signal between the voice recognition apparatus 100 and/or the server 200 in the form of packet data by interworking with the network 300.
- the communication unit 110 may be a device including hardware and software necessary for transmitting and receiving a signal such as a control signal or a data signal through a wired or wireless connection with another network device.
- the communication unit 110 may support various kinds of intelligent communication (internet of things (IoT), internet of everything (IoE), internet of small things (IoST), etc.)), and machine to machine (M2M) communication, V2X ( vehicle to everything communication) communication, device to device (D2D) communication, etc. may be supported.
- IoT internet of things
- IoE internet of everything
- IoST internet of small things
- M2M machine to machine
- V2X vehicle to everything communication
- D2D device to device
- the communication unit 110 may receive data including a voice input uttered by a user under the control of the processor 160.
- the processor 160 may perform a method of providing a voice recognition service according to an embodiment by extracting a voice input from data including a voice input received through the communication unit 110.
- the communication unit 110 may transmit a voice input to the server 200 under the control of the processor 160 and receive information on a plurality of candidate actions from the server 200 in response thereto.
- the display unit 121 of the user interface unit 120 may display a driving state of the speech recognition apparatus 100 under the control of the processor 160.
- the display unit 121 may be configured as a touch screen by forming a layer structure with a touch pad.
- the display unit 121 may also be used as an operation unit 122 capable of inputting information by a user's touch.
- the display unit 121 may be configured with a touch-sensitive display controller or various input/output controllers.
- the touch-sensitive display controller may provide an output interface and an input interface between the device and the user.
- the touch-sensitive display controller may transmit and receive electrical signals to and from the processor 160.
- the touch-sensitive display controller displays a visual output to the user, and the visual output may include text, graphics, images, video, and combinations thereof.
- the display unit 121 may be, for example, a predetermined display member such as an OLED (organic light emitting display) capable of touch recognition, a liquid crystal display (LCD), or a light emitting display (LED).
- OLED organic light emitting display
- LCD liquid crystal display
- LED light emitting display
- the manipulation unit 122 of the user interface unit 120 may include a plurality of manipulation buttons (not shown) to transmit a signal corresponding to an input button to the processor 160.
- the manipulation unit 122 may be configured with a sensor, button, or switch structure capable of recognizing a user's touch or pressing operation.
- the manipulation unit 122 may transmit a manipulation signal manipulated by a user to the processor 160 in order to check or change various information related to driving of the voice recognition apparatus 100 displayed on the display unit 121.
- the display unit 121 may output a voice recognition result of the voice recognition apparatus 100 under the control of the processor 160.
- the voice recognition result includes a result of the voice recognition apparatus 100 executing an action indicated by the user's voice input.
- the sensing unit 130 may include various sensors that sense the surrounding situation of the speech recognition apparatus 100.
- the sensing unit 130 may include a position sensor.
- the location sensor may acquire location data of the voice recognition apparatus 100.
- the position sensor includes a Global Positioning System (GPS) sensor and an Inertial Measurement Unit (IMU) sensor.
- the IMU sensor may include, for example, an acceleration sensor, and/or a gyro sensor, and the like.
- the location data acquired by the location sensor may be stored in the memory 150.
- the sensing unit 130 may include a proximity sensor.
- the proximity sensor may acquire location data of an object (for example, a user) located around the voice recognition apparatus 100 by using infrared rays or the like. Meanwhile, the user's location data acquired by the proximity sensor may be stored in the memory 150.
- the sensing unit 130 may include an image sensor.
- the image sensor may include a camera (not shown) capable of photographing the surroundings of the voice recognition apparatus 100, and a plurality of image sensors may be installed for photographing efficiency.
- the camera includes at least one optical lens and a plurality of photodiodes (eg, pixels) formed by light passing through the optical lens. ), and a digital signal processor (DSP) that configures an image based on signals output from photodiodes.
- the digital signal processor can generate not only still images, but also moving images composed of frames composed of still images. Meanwhile, an image acquired by photographing a camera as an image sensor may be stored in the memory 150.
- the sensing unit 130 is a sensor capable of detecting the surrounding situation of the voice recognition device 100, for example, a lidar sensor, a weight detection sensor, an illumination sensor, and a touch sensor. ), acceleration sensor, magnetic sensor, gravity sensor (G-sensor), gyroscope sensor, motion sensor, RGB sensor, infrared sensor (IR sensor: infrared sensor) ), fingerprint recognition sensor (finger scan sensor), ultrasonic sensor (ultrasonic sensor), optical sensor (optical sensor), microphone (microphone), battery gauge (battery gauge), environmental sensor (e.g., barometer, hygrometer, thermometer, It may include at least one of a radiation sensor, a heat sensor, a gas sensor, etc.), and a chemical sensor (eg, an electronic nose, a healthcare sensor, a biometric sensor, etc.). Meanwhile, the speech recognition apparatus 100 may combine and utilize information sensed by at least two or more of these sensors.
- G-sensor gravity sensor
- gyroscope sensor motion sensor
- RGB sensor inf
- the audio input unit 141 of the audio processing unit 140 may receive a user's voice input (for example, an activation word and a speech sentence). To this end, the audio input unit 141 may include one or more microphones (not shown). The audio input unit 141 may obtain a user's voice input through a microphone and transmit it to the processor 160.
- a user's voice input for example, an activation word and a speech sentence.
- the audio input unit 141 may include one or more microphones (not shown).
- the audio input unit 141 may obtain a user's voice input through a microphone and transmit it to the processor 160.
- the audio input unit 141 may include a plurality of microphones (not shown) in order to more accurately receive a voice input.
- each of the plurality of microphones may be arranged to be spaced apart from each other, and the received voice input may be processed as an electrical signal.
- the audio input unit 141 may use various noise removal algorithms for removing noise generated in a process of receiving a voice input.
- the audio input unit 141 includes various components for processing speech signals, such as a filter (not shown) that removes noise when receiving a user spoken voice, and an amplifier (not shown) that amplifies and outputs a signal output from the filter.
- a filter not shown
- an amplifier not shown
- the audio output unit 142 responds to notification messages such as a warning sound, operation mode, operation state, and error state, response information corresponding to the user's utterance, and the user's voice input according to the control of the processor 160. Corresponding processing results, etc. can be output as audio.
- the audio output unit 142 may convert the electrical signal from the processor 160 into an audio signal and output it.
- the audio output unit 142 includes a speaker.
- the audio output unit 142 may output a speech recognition result of the speech recognition apparatus 100 through a speaker under the control of the processor 160.
- the voice recognition result includes a result of the voice recognition apparatus 100 executing an action intended by the user's voice input.
- the memory 150 stores various types of information necessary for the operation of the voice recognition apparatus 100 and may include a volatile or nonvolatile recording medium.
- the memory 150 may store a preset starting word for determining the existence of the starting word from the user's utterance. Meanwhile, the starting word may be set by the manufacturer. For example, "High LG" may be set as a starting language, and the setting may be changed by a user.
- Such an activation word is input to activate the speech recognition apparatus 100, and the speech recognition apparatus 100 that recognizes the activation word uttered by the user may switch to a voice recognition activation state.
- the memory 150 may store a voice input received through the audio input unit 141 under the control of the processor 160. In addition, the memory 150 may store information sensed by the sensing unit 130. The memory 150 may store various types of information processed by the speech recognition apparatus 100 under the control of the processor 160. Various information processed by the speech recognition apparatus 100 may include, for example, command information indicated by the voice input, object name and domain information included in the command, candidate action information, final action information, action execution result and response. have.
- the memory 150 may include a magnetic storage medium or a flash storage medium, but is not limited thereto.
- the memory 150 may include internal memory and/or external memory, and volatile memory such as DRAM, SRAM, or SDRAM, one time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, Non-volatile memory such as NAND flash memory, or NOR flash memory, flash drive such as SSD, compact flash (CF) card, SD card, Micro-SD card, Mini-SD card, Xd card, or memory stick , Or a storage device such as an HDD.
- volatile memory such as DRAM, SRAM, or SDRAM
- OTPROM one time programmable ROM
- PROM PROM
- EPROM EPROM
- EEPROM electrically erasable programmable ROM
- mask ROM such as NAND flash memory
- NOR flash memory Non-volatile memory
- flash drive such as SSD, compact flash (CF) card, SD card, Micro-SD card, Mini-SD
- the processor 160 performs a voice recognition service for the user's spoken voice received through the audio input unit 141 and provides the result as visual information through the display unit 121 or through the audio output unit 142. It can be provided as enemy information.
- the processor 160 is a kind of central processing unit and may control the entire operation of the speech recognition apparatus 100 by driving control software installed in the memory 150.
- the processor 160 may include all types of devices capable of processing data.
- the processor 160 may mean, for example, a data processing device embedded in hardware having a circuit physically structured to perform a function represented by a code or instruction included in a program.
- a data processing device built into the hardware as described above a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) circuit
- processing devices such as field programmable gate arrays (FPGAs), but are not limited thereto.
- the processor 160 may control each component module of the voice recognition apparatus 100 to execute an application program implementing the method for providing a voice recognition service according to the embodiment.
- the processor 160 may control the microphone of the audio input unit 141 to receive a user's voice input or control the communication unit 110 to receive a user's voice input.
- the processor 160 may perform an operation of determining one of a plurality of candidate actions extracted from the user's voice input as a final action. To this end, the processor 160 determines a degree of association between the voice input and each candidate action of the plurality of candidate actions based on the user's current context information, and determines a final action from among the plurality of candidate actions based on the determined degree of association. It can be set to perform an action.
- the operation of determining the degree of association performed by the processor 160 includes an operation of analyzing context information accumulated for a user, determining a weight of each candidate action for each type of context information, and combining the weights for each candidate action. This includes the operation of calculating the degree of association.
- the operation of determining the weight performed by the processor 160 includes an operation of analyzing the accumulated context information to determine the frequency of performing the candidate action, and the operation of determining the frequency at which the candidate action is performed, and each candidate action has for each type of context information. It includes the operation of determining the weight.
- the processor 160 may perform machine learning such as deep learning on a voice input so that the voice recognition apparatus 100 outputs an optimal voice recognition result, and the memory 150, Data used for machine learning, result data, etc. can be stored.
- the memory 150 may store a machine learning-based natural language processing model for analyzing speech recognition.
- the processor 160 may drive an artificial neural network and may perform machine learning-based speech recognition using a received speech input as input data. For example, the processor 160 may recognize and analyze a speech input using a natural language processing model based on machine learning to extract a plurality of candidate actions from the speech input.
- FIG. 4 is a flowchart of a method for providing a voice recognition service according to an embodiment.
- the voice recognition service is a service that recognizes a user's voice input and provides a result of performing a command indicated by the voice input as a response to the user.
- the voice recognition apparatus 100 may provide a voice recognition service to a user by executing the method of providing a voice recognition service according to an embodiment.
- the voice recognition apparatus 100 receives a user's voice input.
- the voice recognition apparatus 100 may directly acquire a user's voice input through an audio input unit 141 such as a microphone, or may receive a voice input transmitted from another electronic device through the communication unit 110.
- the speech recognition apparatus 100 acquires a plurality of candidate actions extracted from the voice input received in step 410.
- the action may include at least one task that the voice recognition apparatus 100 must execute in order to perform a command indicated by the voice input.
- the speech recognition apparatus 100 acquires a plurality of candidate actions from the voice input acquired in step 410.
- the speech recognition apparatus 100 may recognize and analyze a speech input using a machine learning-based natural language processing model stored in the memory 150 to determine a plurality of candidate actions indicated by the speech input.
- the speech recognition apparatus 100 generates text representing speech input using speech-to-text technology, and performs a plurality of candidate actions using a natural language processing model from the generated text. Can be extracted.
- the natural language processing model includes a machine learning-based learning model that is trained to output a candidate action according to an entity name and domain combination when a voice input or text representing the voice input is input.
- the system of the speech recognition apparatus 100 Since resources are limited, complex natural language recognition and processing may be performed through the server 200.
- the server 200 may receive a voice input or text representing the voice input from the voice recognition apparatus 100, and process the text representing the voice input in natural language to extract a plurality of candidate actions.
- the server 200 may perform a natural language recognition and processing process for a voice input using an onboard machine learning-based natural language processing model.
- the voice recognition apparatus 100 may transmit a voice input or text representing the voice input to the server 200 through the communication unit 110 and receive information on a plurality of candidate actions determined by the server 200.
- the voice recognition apparatus 100 or the server 200 may determine domain information by extracting an entity name embedded in the voice input and classifying a category of an action indicated by the voice input in order to determine a candidate action.
- Domain is a category of actions defined in advance according to the function of the action.
- the voice input may be classified as an action for a plurality of domains, that is, a plurality of candidate actions, as described above with reference to FIG. 2.
- Each candidate action of the plurality of candidate actions includes a name of an entity that is a target of the action and domain information for classifying the action category. That is, the voice recognition apparatus 100 or the server 200 analyzes the voice input in step 420 and determines a plurality of candidate actions according to a combination of the entity name and domain information for the voice input. In an example, analyzing the voice input may include generating text representing the voice input and processing the generated text using a natural language processing model.
- each candidate action determined in step 420 may be distinguished from each other by a combination of the entity name and domain information.
- the first combination of the entity name and domain information of the first candidate action is the entity name and domain information of the second candidate action. 2 is different from the combination.
- the first combination and the second combination are different from each other means any one of a case where the entity names of the first candidate action and the second candidate action are different, the domain information is different from each other, and the entity name and the domain information are all different. do.
- step 430 the speech recognition apparatus 100 determines a degree of association between the voice input received in step 410 and each candidate action of the plurality of candidate actions acquired in step 420 based on the user's current context information. do.
- Context refers to the user's context information at the moment when the user ignites the command (moment). That is, the context is information indicating in what situation the user uttered the command.
- the user's current context information means the user's context information when the user utters a voice input.
- the current context information means the user's context information when the voice input is acquired.
- the voice input device 100 receives a voice input from an external electronic device through the communication unit 110, the user's current context information may include user context information when the external electronic device acquires the voice input. .
- the context information includes various types of information representing the user's situation.
- the current context information of the user is at least one of information about the time when the user uttered the voice input, the place where the user uttered the voice input, whether the user is moving, the moving speed of the user, and information on the device the user is using. It may include.
- the voice recognition apparatus 100 may collect current context information of the user through the sensing unit 130 and/or receive current context information of the user from an electronic device possessed by the user through the communication unit 110.
- Step 430 may include steps 431 and 432.
- step 431 the speech recognition apparatus 100 analyzes the context information accumulated for the user and determines a weight of each candidate action for each type of context information.
- the context information accumulated for a user means information collected and stored in context information of the user at the time when the command is uttered over a predetermined period of time, when the user utters a command. That is, the context information accumulated for the user is a log collected of commands uttered by the user for a predetermined period together with the context information of the user at the time each command is uttered. In other words, the accumulated context information is the user's situation-specific command usage history accumulated over a predetermined period.
- the context information may include various types of information indicating the user's situation.
- the context information accumulated about the user is, for each action performed by the user's command, the time the command was received, the place where the command was received, the frequency at which the action was performed, and whether the user is moving when the command is received. It may include at least one of information on whether or not, the moving speed of the user when the command is received, and information on a device used to receive the command.
- the voice recognition apparatus 100 may generate and manage accumulated context information by storing a command issued by a user and context information of a user at a time point at which the command is received each time a voice recognition service is provided. .
- the speech recognition apparatus 100 may transmit a command issued by the user and context information of the user at the time of receiving the command to the server 200 through the communication unit 110.
- the server 200 may generate and manage accumulated context information by storing the received information in a cloud storage.
- the speech recognition apparatus 100 determines a weight of each candidate action for each type of context information included in the context information accumulated for the user.
- the accumulated context information includes information of a first type, a second type, and a third type, and the speech recognition apparatus 100 provides a weight for a first type and a second type for each candidate action. Weights and weights for the third type can be determined. A detailed process of determining the weight in step 431 will be described later with reference to FIG. 5.
- the speech recognition apparatus 100 calculates a degree of association between the voice input and each candidate action by combining the weights determined in step 431 for each candidate action. For example, the speech recognition apparatus 100 may determine a value obtained by summing the weights determined in step 431 for each candidate action as an association between the speech input and each candidate action. The speech recognition apparatus 100 may provide priority among a plurality of candidate actions based on a degree of association.
- the speech recognition apparatus 100 may repeatedly perform step 430 at each preset time period to update the degree of association between the speech input and each candidate action.
- the speech recognition apparatus 100 may store a degree of association determined at each preset time period in the memory 150.
- the speech recognition apparatus 100 determines one final action from among the plurality of candidate actions determined in step 420 based on the degree of association determined in step 432. For example, the speech recognition apparatus 100 may determine a candidate action having the greatest degree of association as the final action. For example, when there are a plurality of candidate actions having the greatest degree of association, the speech recognition apparatus 100 may determine a final action from among a plurality of candidate actions having the greatest degree of association according to a predefined priority. For example, the speech recognition apparatus 100 may present one or more candidate actions to the user as options for the final action based on the degree of association. In this case, the speech recognition apparatus 100 may perform an additional interaction with the user to determine a candidate action selected by the user from among one or more options as a final action.
- the speech recognition apparatus 100 executes the final action determined in step 440, and generates a response based on the execution result of the final action through the speaker and/or the display unit 121 of the audio output unit 142, and This may be delivered to the user as a response to the voice input received in step 410.
- FIG. 5 is an exemplary flowchart of a process of determining a weight of each candidate action according to an embodiment.
- the step 431 of determining the weight of each candidate action with reference to FIG. 4 may include steps 510 and 520.
- the speech recognition apparatus 100 may determine the frequency of performing each candidate action by analyzing the context information accumulated for the user. For example, the speech recognition apparatus 100 analyzes the accumulated context information and counts the number of times (C i ) the user performed each candidate action during a time defined for each type of context information, and the frequency of performing each candidate action Can be determined.
- the speech recognition apparatus 100 may determine a weight of each candidate action for each type of context information based on the frequency determined in operation 510. For example, the speech recognition apparatus 100 normalizes the frequency determined in step 510 according to a condition defined for each type of context information, and determines the result of normalization corresponding to the current context information for each candidate action. It can be determined by the weight to have for a given type of context information.
- FIG. 5(a) exemplarily shows a process of determining a weight of each candidate action for a first type of context information (step 431 of FIG. 4).
- the first type of context information is time information when a user utters a voice input.
- Step 510 for the first type of context information may include step 510a.
- the speech recognition apparatus 100 determines the frequency of performing each candidate action by counting the number of times C 1 the user has performed each candidate action in every preset time unit from the accumulated context information. For example, the speech recognition apparatus 100 may determine the number of times C1 of performing each candidate action for each preset time unit as the frequency of performing the candidate action.
- the preset time unit may be, for example, one of one second, one minute and one hour.
- the preset time units may be day and night, for example.
- the user can arbitrarily set the time unit within a day.
- the preset time unit may be set according to a user's life pattern such as work hours or commute time.
- Step 520 for the first type of context information may include step 520a.
- the speech recognition apparatus 100 normalizes the number of times C 1 of each candidate action counted in step 510a for the entire time period, and utters a voice input from the current context information of the user.
- a result of normalization corresponding to time information is determined as a weight for the first type of each candidate action.
- the total time period can be, for example, one of a day, a week, a month and a year.
- the user may set the normalization time period to a desired value as needed.
- FIG. 5(b) exemplarily shows a process of determining the weight of each candidate action for the second type of context information (step 431 of FIG. 4).
- the second type of context information is information on a place where the user uttered a voice input.
- Step 510 for the second type of context information may include step 510b.
- the speech recognition apparatus 100 performs each candidate action by counting the number of times (C 2 ) the user has performed each candidate action in at least one place where the user stays for longer than a preset time from the accumulated context information.
- One frequency can be determined.
- the speech recognition apparatus 100 may determine the number of times (C 2 ) the user performs each candidate action at a corresponding location as the frequency of each candidate action.
- the preset time may be a few minutes or an hour.
- the user can adjust the preset length of time within a day.
- Step 520 for the second type of context information may include step 520b.
- the speech recognition apparatus 100 normalizes the number of times C 2 of performing each candidate action for all places recorded in the accumulated context information, and the voice input is uttered in the current context information.
- the corresponding normalization result value may be determined as a weight for the second type of each candidate action.
- the speech recognition apparatus 100 uses a function f 2 (x) that normalizes the number of times (C 2 ) each candidate action is performed for all places recorded in the accumulated context information.
- FIG. 5(c) exemplarily shows a process of determining the weight of each candidate action for the third type of context information (step 431 of FIG. 4).
- the third type of context information is frequency information of an action performed by a user.
- Step 510 for the third type of context information may include step 510c.
- the speech recognition apparatus 100 may determine the frequency of each action performed by the user by counting the number of times C 3 performed for each action performed by the user during a preset time period from the accumulated context information.
- the preset time period may be, for example, one of a week, a month and a year. In one example, the user can set the time period to a desired value as needed.
- Step 520 for the third type of context information may include step 520c.
- the speech recognition apparatus 100 normalizes the frequency for each action determined in step 510c, and determines a normalization result value corresponding to each candidate action as a weight for the third type of each candidate action. have.
- the frequency for each action may be the same as the number of times C 3 of each action is performed during a preset time period.
- the speech recognition apparatus 100 may determine the number of actions C 3 performed during a preset time period as the frequency of each candidate action.
- Action i may be determined as a weight for the third type of the corresponding candidate action.
- candidate action i denotes an i-th candidate action among a plurality of candidate actions, and when there are N multiple candidate actions, i is a natural number of 1 to N.
- FIGS. 6 to 8 are diagrams for determining a final action according to an exemplary embodiment. It is a diagram for explaining the process by way of example. Hereinafter, a process of determining a final action for providing a voice recognition service by a voice recognition apparatus according to an embodiment will be described with reference to FIGS. 6 to 8.
- the voice recognition apparatus 100 receives a user's voice input in step 410 with reference to FIG. 4. It illustrates a user's speech input from the Fig. 6 is "music search IU me.
- the voice recognition device can determine the candidate action in accordance with the results named entity analysis using a natural language processing model 100 or the server 200 and the combination of the domain. For example, if the object name "IU" and the domain is "music", the first candidate action can be determined in the "Search for IU in the Music app. For example, if the object name is "IU Music 'domain' web ', the second candidate action can be determined in the" Search for IU in the music search app.
- the speech recognition apparatus 100 acquires a plurality of candidate actions including a first candidate action and a second candidate action in step 420.
- the current context information of users includes that the time when the voice input is uttered is 2 p.m. and that the place where the voice input is uttered is a company.
- step 430 the speech recognition apparatus 100 determines a degree of association between a voice input and each candidate action of a plurality of candidate actions based on the user's current context information. To this end, the weight of each candidate action for each type of context information determined by analyzing the accumulated context information is used.
- 6(a) and 6(b) exemplarily show a weight table of candidate actions for the type of context information that the speech recognition apparatus 100 uses to determine the degree of association in step 430.
- 6A and 6B are weight tables for each type of context information of a first candidate action (music) and a second candidate action (web) of an exemplary user A and user B.
- the speech recognition apparatus 100 uses the sum of the weights of the first candidate action (music), which is 1.3, the voice input and the first candidate action (music). It can also be determined by the relationship between the liver.
- the speech recognition apparatus 100 may determine 2.4, which is the sum of the weights of the second candidate action (web), as an association between the voice input and the second candidate action (web).
- the speech recognition apparatus 100 determines a second candidate action (web) with a greater association as the final action for the user A.
- the speech recognition apparatus 100 uses 1.95, which is the sum of the weights of the first candidate action (music), to the voice input and the first candidate action (music). It can also be determined by the relationship between the liver.
- the speech recognition apparatus 100 may determine 0.4, which is the sum of the weights of the second candidate action (web), as an association between the voice input and the second candidate action (web).
- the speech recognition apparatus 100 determines a first candidate (music) action with a greater association as the final action for the user B.
- FIG. 7 shows a second example of determining the final action. .
- the voice recognition apparatus 100 receives a user's voice input in step 410 with reference to FIG. 4.
- the user's voice input is'find to share'.
- a candidate action according to a combination of an entity name and a domain may be determined as a result of analyzing “find to share” by using the natural language processing model in the speech recognition apparatus 100 or the server 200.
- the first candidate action may be determined as'retrieve sharing from address book'.
- the second candidate action may be determined as “share search in a search engine app”.
- the speech recognition apparatus 100 acquires a plurality of candidate actions including a first candidate action and a second candidate action in step 420.
- the current context information of the users includes that the time when the voice input is uttered is 10 o'clock in the morning and the place where the voice input is uttered is near the company.
- step 430 the speech recognition apparatus 100 determines a degree of association between a voice input and each candidate action of a plurality of candidate actions based on the user's current context information. To this end, the weight of each candidate action for each type of context information determined by analyzing the accumulated context information is used.
- 7(a) and 7(b) exemplarily show a weight table of candidate actions for the type of context information that the speech recognition apparatus 100 uses to determine the degree of association in step 430.
- 7A and 7B are weight tables for each type of context information of a first candidate action (address book) and a second candidate action (web) of an exemplary user A and user B.
- step 430 the speech recognition apparatus 100 uses 0.6, which is the sum of the weights of the first candidate action (address book), between the voice input and the first candidate action (address book). It can be determined by the degree of association.
- the speech recognition apparatus 100 may determine 1.4, which is the sum of the weights of the second candidate action (web), as an association between the voice input and the second candidate action (web).
- step 440 the speech recognition apparatus 100 determines a second candidate action (web) with a greater association as the final action for the user A.
- step 430 the speech recognition apparatus 100 calculates 2.35, which is the sum of the weights of the first candidate action (address book), between the voice input and the first candidate action (address book). It can be determined by the degree of association.
- the speech recognition apparatus 100 may determine 2.2, which is the sum of the weights of the second candidate action (web), as an association between the voice input and the second candidate action (web).
- step 440 the speech recognition apparatus 100 determines a first candidate action (address book) with a greater association as the final action for the user B.
- the voice recognition apparatus 100 receives a user's voice input in step 410 with reference to FIG. 4.
- the user's voice input is'tell me the air condition'.
- the voice recognition apparatus 100 or the server 200 analyzes'tell me the air condition' using the natural language processing model, and as a result, a candidate action according to the combination of the entity name and the domain may be determined. For example, when the entity name is'air condition' and the domain is'home appliance', the first candidate action may be determined as'air purifier notifies indoor air condition'. For example, if the entity name is'air condition' and the domain is'weather', the second candidate action may be determined as'notifying the outdoor fine dust condition from the weather app'.
- the speech recognition apparatus 100 acquires a plurality of candidate actions including a first candidate action and a second candidate action in step 420.
- the current context information of the users includes that the time when the voice input is uttered is 11 p.m. and that the place where the voice input is uttered is at home.
- step 430 the speech recognition apparatus 100 determines a degree of association between a voice input and each candidate action of a plurality of candidate actions based on the user's current context information. To this end, the weight of each candidate action for each type of context information determined by analyzing the accumulated context information is used.
- 8(a) and 8(b) exemplarily show a weight table of candidate actions for the type of context information that the speech recognition apparatus 100 uses to determine the degree of association in step 430.
- 8A and 8B are weight tables for each type of context information of a first candidate action (home appliance) and a second candidate action (weather) of user A and user B.
- the speech recognition apparatus 100 calculates 2.15, which is the sum of the weights of the first candidate action (home appliance), between the voice input and the first candidate action (home appliance). It can be determined by the degree of association.
- the speech recognition apparatus 100 may determine 0.4, which is the sum of the weights of the second candidate action (weather), as an association between the voice input and the second candidate action (weather).
- the speech recognition apparatus 100 determines a first candidate action (home appliance) with a greater association as the final action for the user A.
- the speech recognition apparatus 100 uses 0.4, which is the sum of the weights of the first candidate action (home appliance), between the voice input and the first candidate action (home appliance). It can be determined by the degree of association.
- the speech recognition apparatus 100 may determine 2.15, which is the sum of the weights of the second candidate action (weather), as an association between the voice input and the second candidate action (weather).
- the speech recognition apparatus 100 determines a second candidate action (weather) with a greater correlation as the final action for the user B.
- the embodiment according to the present invention described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded in a computer-readable medium.
- the medium is a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a CD-ROM and a DVD, a magnetic-optical medium such as a floptical disk, and a ROM. It may include a hardware device specially configured to store and execute program instructions, such as, RAM, flash memory, and the like.
- the computer program may be specially designed and configured for the present invention, or may be known and usable to a person skilled in the computer software field.
- Examples of the computer program may include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
- the steps may be performed in a suitable order.
- the present invention is not necessarily limited according to the order of description of the steps.
- the use of all examples or illustrative terms (for example, etc.) in the present invention is merely for describing the present invention in detail, and the scope of the present invention is limited by the above examples or illustrative terms unless limited by the claims. It does not become.
- those skilled in the art will appreciate that various modifications, combinations, and changes may be made according to design conditions and factors within the scope of the appended claims or their equivalents.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
탑재된 인공지능(artificial intelligence, AI) 알고리즘 및/또는 기계학습(machine learning) 알고리즘을 실행하여 음성 인식을 수행함으로써 5G 통신 환경에서 음성 인식 장치와 서버가 통신할 수 있는 음성 인식 서비스 제공 방법 및 음성 인식 장치가 개시된다. 음성 인식 서비스 제공 방법 및 음성 인식 장치는 사용자의 중의적 발화에 대하여 사용자 의도 분석에 기반한 응답을 제공한다.
Description
본 발명은 음성 인식 서비스 제공 방법 및 장치에 관한 것으로 보다 구체적으로는 음성 인식에 기반하여 사용자의 의도에 부합하는 응답을 제공하는 방법 및 이와 같은 방법을 이용하여 음성 인식 서비스를 제공하는 음성 인식 장치에 관한 것이다.
음성 인식 기술은 인공지능(AI) 기술과 사물인터넷(IoT) 기술의 본격적인 확산과 맞물려 개인화된 음성 인식 서비스에 활발히 적용되고 있다. 예를 들어, 사용자는 음성 인식 기술이 적용된 가상 비서와 대화하면서 인터넷 검색을 하거나 일정을 생성하는 명령을 가상 비서에게 전달할 수 있다.
선행기술 1(대한민국 등록특허공보 10-1198862B1)은 음성 인식으로 인증된 사용자의 사용 패턴에 맞는 사용자 인터페이스를 제공하는 기술에 관한 것이다. 선행기술 1은 저장된 사용자 음성과 동일한 사용자 음성을 재인식하면 저장한 음성 정보에 대응하는 사용자 인터페이스를 단말기에 표현한다.
하지만, 선행기술 1은 사용자의 발화가 지시하는 명령을 분석하거나 실행하지는 못한다.
선행기술 2(대한민국 공개특허공보 KR10-2010-0111164 A)는 어휘셋에 포함되지 않은 어휘와 연관된 사용자 발화 의도를 파악하는 음성 대화 처리 기술에 관한 것이다. 선행기술 2는 입력된 음성의 음성 특징 정보, 의미 정보 및 담화 이력 정보에 기초하여 대화 이력 정보를 생성하고, 사용자 발화의 의도를 파악한다.
하지만, 선행기술 2는 사용자의 발화가 하나 이상의 의미를 갖는 중의적 발화인 경우의 사용자 발화의 의도를 파악하는 기술을 개시하지 못한다.
본 발명의 일 과제는 음성 인식 서비스에서 사용자의 발화가 중의적 인 경우 사용자의 의도를 파악하지 못함으로 인해 음성 인식 오류가 발생할 수 있는 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는 음성 인식 서비스에서 사용자의 중의적 발화에 대하여 사용자의 의도에 부합하는 응답을 선택하는 기준을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 음성 서비스 제공 방법은, 사용자의 음성 입력을 수신하는 단계, 음성 입력에서 추출한 복수의 후보 액션을 획득하는 단계, 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정하는 단계, 및 결정된 연관도에 기반하여 복수의 후보 액션 중에서 최종 액션을 결정하는 단계를 포함할 수 있다.
구체적으로, 연관도를 결정하는 단계는, 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정하는 단계 및 각 후보 액션별로 가중치를 조합하여 연관도를 계산하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 음성 인식 장치는, 사용자의 음성 입력을 수신하는 마이크로폰, 및 음성 입력에서 추출된 복수의 후보 액션 중 하나의 액션을 최종 액션으로 결정하는 프로세서를 포함할 수 있다.
구체적으로, 프로세서는, 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정하는 동작, 및 연관도에 기반하여 복수의 후보 액션 중에서 최종 액션을 결정하는 동작을 수행하도록 설정될 수 있다.
여기서 연관도를 결정하는 동작은, 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정하는 동작, 및 각 후보 액션별로 가중치를 조합하여 연관도를 계산하는 동작을 포함할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.
본 발명에서 이루고자 하는 기술적 과제들의 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 의하면 음성 인식 서비스에서 사용자의 중의적 발화에 대한 응답을 사용자의 의도에 부합하도록 선택할 수 있으므로 음성 인식 성능이 향상될 수 있다.
또한, 사용자의 현재 컨텍스트 정보에 따라 중의적 발화에 대한 응답을 결정하므로 사용자의 상황에 맞는 음성 인식 서비스를 제공할 수 있다.
또한, 사용자의 축적된 컨텍스트 정보를 분석하여 사용자의 발화에 대한 응답을 결정하므로 해당 사용자에게 최적화된 음성 인식 서비스를 제공할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 본 발명이 속한 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 음성 인식 환경의 예시도이다.
도 2는 일 실시예에 따른 음성 인식 서비스의 개략적인 흐름도이다.
도 3은 일 실시예에 따른 음성 인식 장치의 개략적인 블록도이다.
도 4는 일 실시예에 따른 음성 인식 서비스 제공 방법의 흐름도이다.
도 5는 일 실시예에 따른 각 후보 액션의 가중치를 결정하는 과정의 예시적인 흐름도이다.
도 6 내지 도 8은 일 실시예에 따라 최종 액션을 결정하는 과정을 예시적으로 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 동일하거나 유사한 구성요소에는 동일유사한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
도 1은 일 실시예에 따른 음성 인식 환경의 예시도이다.
음성 인식 환경은, 음성 인식 장치(100), 서버(200) 및 네트워크(300)를 포함할 수 있다. 음성 인식 장치(100) 및 서버(300)는 5G 통신 환경에서 서로 연결될 수 있다. 또한, 도 1에 도시된 기기들 이외에 가정 또는 사무실에서 사용되는 다양한 전자 기기들이 사물 인터넷 환경 하에서 서로 연결되어 동작할 수 있다.
음성 인식 장치(100)는 사용자가 발화한 음성을 수신하고, 인식 및 분석을 통하여 음성 인식 서비스를 제공할 수 있다. 예를 들어, 음성 인식 장치(100)는 인공지능(AI) 스피커 또는 커뮤니케이션 로봇 등과 같은 음성 인식 기능을 수행할 수 있는 다양한 전자 기기들을 포함할 수 있다. 예를 들어, 음성 인식 장치(100)는 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 음성 인식 장치(100)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다. 예를 들어, 음성 인식 장치(100)는 TV, 세탁기, 에어컨 등과 같은 음성 인식 기능을 수행할 수 있는 다양한 가전 기기들을 포함할 수 있다. 또한 음성 인식 장치(100)는 음성 입출력 기능이 없는 전자 기기를 제어하는 허브 역할을 할 수 있다.
음성 인식 장치(100)는, 자체적으로 음성 인식 기능을 수행하여 음성 인식 처리 결과를 출력할 수 있고, 또는 서버(200)에 입력 음성을 전송하고, 서버(200)로부터 음성 인식 처리 결과를 수신하여 출력할 수도 있다.
서버(200)는 각종 인공지능 알고리즘을 적용하는데 필요한 빅데이터 및 음성 인식에 관한 데이터를 제공하는 데이터베이스 서버일 수 있다. 그 밖에 서버(200)는 음성 인식 장치(100)를 원격에서 제어할 수 있도록 하는 웹 서버 또는 애플리케이션 서버를 포함할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로서, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
서버(200)는 음성 입력에 대한 음성 인식을 수행하고, 음성 인식 수행 결과를 음성 인식 장치(100)로 전송할 수 있다. 서버(200)는 음성 인식 장치(100)로부터 음성 입력을 수신하고, 음성 입력이 지시하는 사용자의 명령에 대응하는 복수의 후보 액션을 결정할 수 있다. 이를 위하여 서버(200)는 머신 러닝에 기반한 자연어 처리 모델을 이용할 수 있다. 서버(200)는 결정된 복수의 후보 액션에 대한 정보를 음성 인식 장치(100)로 전송할 수 있다.
네트워크(300)는 음성 인식 장치(100)와 서버(200)를 연결하는 역할을 수행할 수 있다. 이러한 네트워크(300)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한 네트워크(300)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다. 여기서 근거리 통신은 블루투스(Bluetooth), RFID(radio frequency identification), 적외선 통신(IrDA, infrared data association), UWB(ultra-wideband), ZigBee, Wi-Fi (wireless fidelity) 기술을 포함할 수 있고, 원거리 통신은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 기술을 포함할 수 있다.
네트워크(300)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(300)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(300)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(300)는 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 2는 일 실시예에 따른 음성 인식 서비스의 개략적인 흐름도이다.
음성 인식 서비스는 사용자의 음성 입력을 인식하고 음성 입력이 지시하는 명령을 수행한 결과를 사용자에게 응답으로 제공하는 서비스이다. 음성 인식 장치(100)는 이와 같은 음성 인식 서비스를 제공하는 장치로서, 사용자가 발화한 음성 입력을 획득(단계 210)하고, 음성 입력을 분석하여 음성 입력이 지시하는 명령을 적어도 하나의 액션으로 분류하고(단계 220), 분류된 액션 중 사용자 의도 분석에 의해 최종 액션을 결정한다(단계 230). 후속하여 음성 인식 장치(100)는 최종 액션을 실행(단계 240)하고 그 결과에 기반한 응답을 생성하여 사용자에게 출력한다(단계 250).
액션은 음성 입력이 지시하는 명령을 수행하기 위하여 음성 인식 장치(100)가 실행하는 태스크로서, 음성 입력은 액션의 대상이 되는 개체명(Named Entity)을 포함할 수 있다.
단계(220)에서 음성 입력 장치(100)는 음성 입력을 분석하여 음성 입력이 지시하는 명령을 도출할 수 있다. 음성 입력이 지시하는 명령은 명령의 대상 및 명령의 내용을 포함할 수 있다. 여기서 명령의 대상은 개체명에 대응하고 명령의 내용은 액션에 대응한다.
단계(220)에서 하나의 음성 입력이 지시하는 명령은 복수의 도메인에 대한 액션으로 분류될 수 있다. 도메인(domain)은 액션의 기능적 범주를 의미한다. 예를 들어, 'A 찾아줘'라는 명령은 찾기 기능을 지원하는 다양한 도메인에 대한 액션으로 분류될 수 있다. 도 2에 예시적으로 도시된 음악, 스케줄, 웹, 메모, 주소록, 앱, 가전제어, 날씨, 메시지 및 장소는 모두 찾기 기능을 지원하는 도메인에 해당한다. 'A 찾아줘'라는 명령은 'A의 연락처를 주소록에서 찾기'(제 1 액션) 또는 'A라는 장소를 찾기'(제 2 액션)으로 분류될 수 있다. 이와 같이 복수의 액션으로 분류가능한 음성 입력을 중의적 발화라고 한다.
단계(230)에서 음성 인식 장치(100)는 복수의 액션으로 분류될 수 있는 중의적인 음성 입력에 대한 최종 액션을 결정하기 위하여 사용자 의도 분석을 수행할 수 있다. 음성 인식 서비스에서 사용자 의도 분석은 사용자가 발화한 음성 입력을 미리 정의된 액션 중 하나로 분류하는 것을 의미한다. 사용자 의도 분석은 사용자의 발화 의도에 부합하는 응답을 제공하는 데에 기여한다. 즉, 음성 인식 장치(100)는 사용자 의도 분석을 이용하여 복수의 후보 액션 중 사용자의 의도에 가장 부합하는 것으로 판단된 하나의 액션을 최종 액션으로 선택한다. 예를 들어, 'A 찾아줘'라는 명령에 의해 사용자가 의도한 도메인이 무엇인 지에 따라 앞선 예에서 분류한 결과 얻어진 제 1 액션 및 제 2 액션 중 하나의 액션을 최종적으로 선택하게 된다. 실시예에 따른 음성 인식 서비스 제공 방법에 대한 보다 구체적인 설명은 도 4 및 도 5를 참조하여 후술한다.
도 3은 일 실시예에 따른 음성 인식 장치의 개략적인 블록도이다.
음성 인식 장치(100)는 통신부(110), 디스플레이부(121) 및 조작부(122)를 포함하는 사용자 인터페이스부(120), 센싱부(130), 오디오 입력부(141) 및 오디오 출력부(142)를 포함하는 오디오 처리부(140), 메모리(150) 및 프로세서(160)를 포함할 수 있다.
통신부(110)는 네트워크(300)와 연동하여 음성 인식 장치(100)와 및/또는 서버(200) 간의 송수신 신호를 패킷 데이터 형태로 제공하는 데 필요한 통신 인터페이스를 제공할 수 있다. 또한 통신부(110)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. 또한, 통신부(110)는 각종 사물 지능 통신(IoT(internet of things), IoE(internet of everything), IoST(internet of small things) 등)을 지원할 수 있으며, M2M(machine to machine) 통신, V2X(vehicle to everything communication) 통신, D2D(device to device) 통신 등을 지원할 수 있다.
통신부(110)는 프로세서(160)의 제어 하에 사용자가 발화한 음성 입력을 포함하는 데이터를 수신할 수 있다. 프로세서(160)는 통신부(110)를 통해 수신한 음성 입력을 포함하는 데이터로부터 음성 입력을 추출하여 실시예에 따른 음성 인식 서비스 제공 방법을 수행할 수 있다.
통신부(110)는 프로세서(160)의 제어 하에 서버(200)로 음성 입력을 전송하고, 이에 대한 응답으로 서버(200)로부터 복수의 후보 액션에 대한 정보를 수신할 수 있다.
사용자 인터페이스부(120) 중 디스플레이부(121)는 프로세서(160)의 제어 하에 음성 인식 장치(100)의 구동 상태를 디스플레이 할 수 있다. 일 예에서 디스플레이부(121)는 터치패드와 상호 레이어 구조를 이루어 터치스크린으로 구성될 수 있다. 이 경우에, 디스플레이부(121)는 사용자의 터치에 의한 정보의 입력이 가능한 조작부(122)로도 사용될 수 있다. 이를 위해 디스플레이부(121)는 터치 인식 디스플레이 제어기 또는 이외의 다양한 입출력 제어기로 구성될 수 있다. 일 예로, 터치 인식 디스플레이 제어기는 장치와 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공할 수 있다. 터치 인식 디스플레이 제어기는 전기 신호를 프로세서(160)와 송수신할 수 있다. 또한, 터치 인식 디스플레이 제어기는 사용자에게 시각적인 출력을 표시하며, 시각적 출력은 텍스트, 그래픽, 이미지, 비디오와 이들의 조합을 포함할 수 있다. 이와 같은 디스플레이부(121)는 예를 들어 터치 인식이 가능한 OLED(organic light emitting display) 또는 LCD(liquid crystal display) 또는 LED(light emitting display)와 같은 소정의 디스플레이 부재일 수 있다.
사용자 인터페이스부(120) 중 조작부(122)는 복수의 조작 버튼(미도시)을 구비하여, 입력되는 버튼에 대응하는 신호를 프로세서(160)로 전송할 수 있다. 이러한 조작부(122)는 사용자의 터치 또는 누름 조작을 인식할 수 있는 센서 또는 버튼, 스위치 구조로 구성될 수 있다. 조작부(122)는 디스플레이부(121)에 표시되는 음성 인식 장치(100)의 구동과 관련한 각종 정보를 확인하거나, 변경하기 위해 사용자가 조작하는 조작 신호를 프로세서(160)로 전송할 수 있다.
디스플레이부(121)는 프로세서(160)의 제어 하에 음성 인식 장치(100)의 음성 인식 결과를 출력할 수 있다. 여기서 음성 인식 결과는 음성 인식 장치(100)가 사용자의 음성 입력이 지시한 액션을 실행한 결과를 포함한다.
센싱부(130)는 음성 인식 장치(100)의 주변 상황을 센싱하는 각종 센서를 포함할 수 있다.
센싱부(130)는 위치 센서를 포함할 수 있다. 위치 센서는 음성 인식 장치(100)의 위치 데이터를 획득할 수 있다. 예를 들어 위치 센서는 GPS(Global Positioning System) 센서 및 IMU(Inertial Measurement Unit) 센서 등을 포함한다. IMU 센서는 예를 들어, 가속도 센서, 및/또는 자이로 센서 등을 포함할 수 있다. 위치 센서가 획득한 위치 데이터는 메모리(150)에 저장될 수 있다.
센싱부(130)는 근접센서를 포함할 수 있다. 근접센서는 적외선 등을 활용하여 음성 인식 장치(100) 주변에 위치한 객체(예를 들어 사용자)의 위치 데이터를 획득할 수 있다. 한편, 근접센서가 획득한 사용자의 위치 데이터는 메모리(150)에 저장될 수 있다.
센싱부(130)는 영상센서를 포함할 수 있다. 영상센서는 음성 인식 장치(100) 주변을 촬영할 수 있는 카메라(미도시)를 포함할 수 있으며, 촬영 효율을 위해 복수 개가 설치될 수 있다. 예를 들어, 카메라는 적어도 하나의 광학렌즈와, 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지 센서(예를 들어, CMOS image sensor)와, 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: digital signal processor)를 포함할 수 있다. 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성할 수 있다. 한편, 영상센서로서의 카메라가 촬영하여 획득된 영상은 메모리(150)에 저장될 수 있다.
센싱부(130)는 음성 인식 장치(100)의 주변 상황을 감지할 수 있는 센서, 예를 들어, 라이다 센서(Lidar sensor), 무게 감지 센서, 조도 센서(illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor), 마이크로폰(microphone), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 음성 인식 장치(100)는 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
오디오 처리부(140) 중 오디오 입력부(141)는 사용자의 음성 입력(예를 들어 기동어 및 발화문)을 입력 받을 수 있다. 이를 위해 오디오 입력부(141)는 하나 이상의 마이크로폰(미도시)을 포함할 수 있다. 오디오 입력부(141)는 마이크로폰으로 사용자의 음성 입력을 획득하여 프로세서(160)에 전달할 수 있다.
오디오 입력부(141)는 음성 입력을 더 정확하게 수신하기 위해 복수의 마이크로폰(미도시)을 구비할 수 있다. 여기서, 복수의 마이크로폰 각각은 서로 다른 위치에 이격되어 배치될 수 있고, 수신한 음성 입력을 전기적인 신호로 처리할 수 있다.
선택적으로 오디오 입력부(141)는 음성 입력을 수신하는 과정에서 발생하는 노이즈를 제거하기 위한 다양한 노이즈 제거 알고리즘을 사용할 수 있다. 선택적 실시 예로 오디오 입력부(141)는 사용자 발화 음성 수신 시에 노이즈를 제거하는 필터(미도시), 필터에서 출력되는 신호를 증폭하여 출력하는 증폭기(미도시) 등 음성 신호 처리를 위한 각종 구성 요소들을 포함할 수 있다.
오디오 처리부(140) 중 오디오 출력부(142)는 프로세서(160)의 제어에 따라 경고음, 동작모드, 동작상태, 에러상태 등의 알림 메시지, 사용자의 발화에 대응하는 응답 정보, 사용자의 음성 입력에 대응하는 처리 결과 등을 오디오로 출력할 수 있다. 오디오 출력부(142)는 프로세서(160)로부터의 전기 신호를 오디오 신호로 변환하여 출력할 수 있다. 이를 위해, 오디오 출력부(142)는 스피커를 포함한다. 오디오 출력부(142)는 프로세서(160)의 제어 하에 스피커를 통해 음성 인식 장치(100)의 음성 인식 결과를 출력할 수 있다. 여기서 음성 인식 결과는 음성 인식 장치(100)가 사용자의 음성 입력이 의도한 액션을 실행한 결과를 포함한다.
메모리(150)는 음성 인식 장치(100)의 동작에 필요한 각종 정보들을 저장하는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 예를 들어, 메모리(150)에는 사용자의 발화로부터 기동어의 존재를 판단하기 위한 기설정된 기동어가 저장될 수 있다. 한편, 기동어는 제조사에 의해 설정될 수 있다. 예를 들어, "하이 엘지"가 기동어로 설정될 수 있고, 사용자에 의해 설정 변경할 수 있다. 이러한 기동어는 음성 인식 장치(100)를 활성화시키기 위해 입력되는 것으로, 사용자가 발화한 기동어를 인식한 음성 인식 장치(100)는 음성 인식 활성화 상태로 전환할 수 있다.
메모리(150)는 프로세서(160)의 제어 하에 오디오 입력부(141)를 통하여 수신되는 음성 입력을 저장할 수 있다. 또한 메모리(150)는 센싱부(130)가 감지한 정보를 저장할 수 있다. 메모리(150)는 프로세서(160)의 제어 하에 음성 인식 장치(100)가 처리한 각종 정보를 저장할 수 있다. 음성 인식 장치(100)가 처리한 각종 정보는 예를 들어 음성 입력이 지시하는 명령 정보, 명령에 포함된 개체명 및 도메인 정보, 후보 액션 정보, 최종 액션 정보, 액션 실행 결과 및 응답을 포함할 수 있다.
메모리(150)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 이러한 메모리(150)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
프로세서(160)는 오디오 입력부(141)를 통하여 수신한 사용자 발화 음성에 대한 음성 인식 서비스를 수행하고 그 결과를 디스플레이부(121)를 통하여 시각적 정보로 제공하거나, 오디오 출력부(142)를 통하여 청각적 정보로 제공할 수 있다.
프로세서(160)는 일종의 중앙처리장치로서 메모리(150)에 탑재된 제어 소프트웨어를 구동하여 음성 인식 장치(100) 전체의 동작을 제어할 수 있다. 프로세서(160)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 프로세서(160)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(160)는 음성 인식 장치(100)의 각 구성 모듈을 제어하여 실시예에 따른 음성 인식 서비스 제공 방법을 구현한 응용 프로그램을 실행할 수 있다.
프로세서(160)는 오디오 입력부(141)의 마이크로폰을 제어하여 사용자의 음성 입력을 수신하거나 통신부(110)를 제어하여 사용자의 음성 입력을 수신할 수 있다.
프로세서(160)는 사용자의 음성 입력에서 추출된 복수의 후보 액션 중 하나의 액션을 최종 액션으로 결정하는 동작을 수행할 수 있다. 이를 위하여 프로세서(160)는 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정하는 동작 및 결정된 연관도에 기반하여 복수의 후보 액션 중에서 최종 액션을 결정하는 동작을 수행하도록 설정될 수 있다.
프로세서(160)가 수행하는 연관도를 결정하는 동작은, 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정하는 동작 및 각 후보 액션별로 가중치를 조합하여 연관도를 계산하는 동작을 포함한다.
프로세서(160)가 수행하는 가중치를 결정하는 동작은, 축적된 컨텍스트 정보를 분석하여 후보 액션을 수행한 빈도를 결정하는 동작 및 결정된 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 동작을 포함한다.
프로세서(160)는 음성 인식 장치(100)가 최적의 음성 인식 결과를 출력하도록, 음성 입력에 대하여 딥러닝(Deep Learning) 등 머신 러닝(machine learning)을 수행할 수 있고, 메모리(150)는, 머신 러닝에 사용되는 데이터, 결과 데이터 등을 저장할 수 있다. 예를 들어 메모리(150)는 음성 인식을 분석하기 위한 머신 러닝 기반의 자연어 처리 모델을 저장할 수 있다.
프로세서(160)는 인공신경망(artificial neural network)을 구동할 수 있고, 수신된 음성 입력을 입력 데이터로 하는 머신 러닝 기반의 음성 인식을 수행할 수 있다. 예를 들어 프로세서(160)는 머신 러닝에 기반한 자연어 처리 모델을 이용하여 음성 입력을 인식 및 분석하여 음성 입력으로부터 복수의 후보 액션을 추출할 수 있다.
도 4는 일 실시예에 따른 음성 인식 서비스 제공 방법의 흐름도이다.
음성 인식 서비스는 사용자의 음성 입력을 인식하고 음성 입력이 지시하는 명령을 수행한 결과를 사용자에게 응답으로 제공하는 서비스이다. 음성 인식 장치(100)는 실시예에 따른 음성 인식 서비스 제공 방법을 실행하여 음성 인식 서비스를 사용자에게 제공할 수 있다.
단계(410)에서 음성 인식 장치(100)는 사용자의 음성 입력을 수신한다. 음성 인식 장치(100)는 마이크로폰과 같은 오디오 입력부(141)를 통해 직접 사용자의 음성 입력을 획득하거나 또는 통신부(110)를 통해 다른 전자 기기가 전송한 음성 입력을 수신할 수 있다.
단계(420)에서 음성 인식 장치(100)는 단계(410)에서 수신된 음성 입력에서 추출한 복수의 후보 액션을 획득한다. 액션은 음성 입력이 지시하는 명령을 수행하기 위하여 음성 인식 장치(100)가 실행하여야 하는 적어도 하나의 태스크를 포함할 수 있다.
단계(420)에서 음성 인식 장치(100)는 단계(410)에서 획득한 음성 입력으로부터 복수의 후보 액션을 획득한다. 음성 인식 장치(100)는 메모리(150)에 저장된 머신 러닝 기반의 자연어 처리 모델을 이용하여 음성 입력을 인식 및 분석하여 음성 입력이 지시하는 복수의 후보 액션을 결정할 수 있다. 예를 들어, 음성 인식 장치(100)는 스피치-투-텍스트(speech-to-text) 기술을 이용하여 음성 입력을 나타내는 텍스트를 생성하고 생성된 텍스트로부터 자연어 처리 모델을 이용하여 복수의 후보 액션을 추출할 수 있다. 여기서 자연어 처리 모델은 음성 입력 또는 음성 입력을 나타내는 텍스트를 입력하면 개체명 및 도메인 조합에 따라 후보 액션을 출력하도록 훈련된 머신 러닝 기반의 학습 모델을 포함한다.한편, 음성 인식 장치(100)의 시스템 자원에는 한계가 있으므로, 복잡한 자연어 인식 및 처리는 서버(200)를 통하여 수행될 수 있다. 예를 들어, 서버(200)는 음성 인식 장치(100)로부터 음성 입력 또는 음성 입력을 나타내는 텍스트를 수신하고, 음성 입력을 나타내는 텍스트를 자연어 처리하여 복수의 후보 액션을 추출할 수 있다. 서버(200)는 탑재된 머신 러닝 기반의 자연어 처리 모델을 이용하여 음성 입력에 대한 자연어 인식 및 처리 과정을 수행할 수 있다. 이 경우 음성 인식 장치(100)는 통신부(110)를 통해 음성 입력 또는 음성 입력을 나타내는 텍스트를 서버(200)에게 전송하고 서버(200)가 결정한 복수의 후보 액션에 대한 정보를 수신할 수 있다.
단계(420)에서 음성 인식 장치(100) 또는 서버(200)는 후보 액션을 결정하기 위하여 음성 입력에 내재된 개체명을 추출하고 음성 입력이 지시하는 액션의 카테고리를 분류하여 도메인 정보를 결정할 수 있다. 도메인은 액션의 기능에 따라 사전에 정의된 액션의 카테고리이다. 음성 입력은 도 2를 참조하여 전술한대로 복수의 도메인에 대한 액션, 즉, 복수의 후보 액션으로 분류될 수 있다.
복수의 후보 액션의 각 후보 액션은 액션의 대상인 개체명 및 액션의 카테고리를 분류한 도메인 정보를 포함한다. 즉, 음성 인식 장치(100) 또는 서버(200)는 단계(420)에서 음성 입력을 분석하여 음성 입력에 대한 개체명과 도메인 정보의 조합에 따라 복수의 후보 액션을 결정한다. 일 예에서 음성 입력을 분석한다는 것은 음성 입력을 나타내는 텍스트를 생성하고 생성된 텍스트를 자연어 처리 모델을 이용하여 처리하는 것을 포함할 수 있다.
한편, 단계(420)에서 결정된 각 후보 액션은 개체명 및 도메인 정보의 조합에 의하여 서로 구별될 수 있다. 예를 들어, 복수의 후보 액션이 제 1 후보 액션 및 제 2 후보 액션을 포함하는 경우, 제 1 후보 액션의 개체명 및 도메인 정보의 제 1 조합은 제 2 후보 액션의 개체명 및 도메인 정보의 제 2 조합과 서로 상이하다. 여기서 제 1 조합과 제 2 조합이 서로 상이하다는 것은 제 1 후보 액션과 제 2 후보 액션의 개체명이 서로 상이한 경우, 도메인 정보가 서로 상이한 경우, 및 개체명과 도메인 정보가 모두 상이한 경우 중 어느 하나를 의미한다.
단계(430)에서 음성 인식 장치(100)는 사용자의 현재 컨텍스트 정보에 기반하여 단계(410)에서 수신한 음성 입력과 단계(420)에서 획득한 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정한다.
컨텍스트는 사용자가 명령을 발화한 때(moment)의 사용자의 상황 정보를 의미한다. 즉, 컨텍스트는 사용자가 어떠한 상황에서 해당 명령을 발화하였는 지를 나타내는 정보이다.
사용자의 현재 컨텍스트 정보는 사용자가 음성 입력을 발화한 때의 사용자의 상황 정보를 의미한다. 예를 들어 음성 입력 장치(100)가 음성 입력을 오디오 입력부(141)의 마이크로폰으로 직접 획득한 경우 현재 컨텍스트 정보는 음성 입력을 획득한 때의 사용자의 상황 정보를 의미한다. 음성 입력 장치(100)가 음성 입력을 통신부(110)를 통해 외부 전자 기기로부터 수신한 경우, 사용자의 현재 컨텍스트 정보는 외부 전자 기기가 음성 입력을 획득한 때의 사용자의 상황 정보를 포함할 수 있다.
컨텍스트 정보는 사용자의 상황을 나타내는 다양한 유형의 정보를 포함한다. 예를 들어, 사용자의 현재 컨텍스트 정보는 사용자가 음성 입력을 발화한 시간, 사용자가 음성 입력을 발화한 장소, 사용자가 이동 중인지 여부, 사용자의 이동 속도 및 사용자가 사용 중인 디바이스에 대한 정보 중 적어도 하나를 포함할 수 있다.
음성 인식 장치(100)는 센싱부(130)를 통해 사용자의 현재 컨텍스트 정보를 수집 및/또는 통신부(110)를 통해 사용자가 소지한 전자 기기로부터 사용자의 현재 컨텍스트 정보를 수신할 수 있다.
단계(430)은 단계(431) 및 단계(432)를 포함할 수 있다.
단계(431)에서 음성 인식 장치(100)는 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정한다.
사용자에 대하여 축적된 컨텍스트 정보는 소정의 기간에 걸쳐, 사용자가 명령을 발화하는 경우 해당 명령을 발화한 시점의 사용자의 상황 정보를 수집 및 저장한 정보를 의미한다. 즉, 사용자에 대하여 축적된 컨텍스트 정보는 소정 기간 동안 사용자가 발화한 명령을 각 명령을 발화한 시점의 사용자의 컨텍스트 정보와 함께 수집한 로그이다. 말하자면, 축적된 컨텍스트 정보는 소정의 기간 동안 누적된 사용자의 상황별 명령 사용 이력이다.
전술한대로 컨텍스트 정보는 사용자의 상황을 나타내는 다양한 유형의 정보를 포함할 수 있다. 예를 들어, 사용자에 대하여 축적된 컨텍스트 정보는, 사용자의 명령에 의해 수행되었던 액션별로, 명령이 수신된 시간, 명령이 수신된 장소, 액션이 수행된 빈도, 명령이 수신될 때 사용자가 이동 중이었는지 여부, 명령이 수신될 때 상기 사용자의 이동 속도 및 명령의 수신에 사용된 디바이스에 대한 정보 중 적어도 하나를 포함할 수 있다.
음성 인식 장치(100)는 음성 인식 서비스를 제공할 때마다 사용자가 내린 명령 및 해당 명령을 수신한 시점의 사용자의 컨텍스트 정보를 메모리(150)에 저장하여 축적된 컨텍스트 정보를 생성 및 관리할 수 있다.
선택적으로 음성 인식 장치(100)는 사용자가 내린 명령 및 해당 명령을 수신한 시점의 사용자의 컨텍스트 정보를 통신부(110)를 통해 서버(200)에 전송할 수 있다. 서버(200)는 수신된 정보를 클라우드 저장소에 저장하여 축적된 컨텍스트 정보를 생성 및 관리할 수 있다.
단계(431)에서 음성 인식 장치(100)는 사용자에 대하여 축적된 컨텍스트 정보에 포함된 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정한다. 예를 들어, 축적된 컨텍스트 정보는 제 1 유형, 제 2 유형 및 제 3 유형의 정보를 포함하고, 음성 인식 장치(100)는 각 후보 액션에 대하여 제 1 유형에 대한 가중치, 제 2 유형에 대한 가중치 및 제 3 유형에 대한 가중치를 결정할 수 있다. 단계(431)의 가중치를 결정하는 구체적인 과정은 도 5를 참조하여 후술한다.
단계(432)에서 음성 인식 장치(100)는 각 후보 액션별로 단계(431)에서 결정된 가중치를 조합하여 음성 입력과 각 후보 액션 간의 연관도를 계산한다. 예를 들어, 음성 인식 장치(100)는 각 후보 액션별로 단계(431)에서 결정된 가중치를 합산한 값을 음성 입력과 각 후보 액션 간의 연관도로 결정할 수 있다. 음성 인식 장치(100)는 연관도에 기반하여 복수의 후보 액션 간의 우선 순위를 제공할 수 있다.
일 예에서 음성 인식 장치(100)는 단계(430)을 사전설정된 시간 주기마다 반복적으로 수행하여 음성 입력과 각 후보 액션 간의 연관도를 업데이트할 수 있다. 음성 인식 장치(100)는 사전설정된 시간 주기마다 결정된 연관도를 메모리(150)에 저장할 수 있다.
단계(440)에서 음성 인식 장치(100)는 단계(432)에서 결정한 연관도에 기반하여 단계(420)에서 결정된 복수의 후보 액션 중에서 하나의 최종 액션을 결정한다. 예를 들어, 음성 인식 장치(100)는 연관도가 최대인 후보 액션을 최종 액션으로 결정할 수 있다. 예를 들어, 연관도가 최대인 후보 액션이 복수 개인 경우, 음성 인식 장치(100)는 사전에 정의된 우선 순위에 따라 최대 연관도를 갖는 복수 개의 후보 액션 중에서 최종 액션을 결정할 수 있다. 예를 들어, 음성 인식 장치(100)는 연관도에 기반하여 하나 이상의 후보 액션을 최종 액션에 대한 선택지로 사용자에게 제시할 수 있다. 이 경우 음성 인식 장치(100)는 사용자와 추가적인 인터랙션을 수행하여 하나 이상의 선택지 중 사용자가 선택한 후보 액션을 최종 액션으로 결정할 수 있다.
후속하여 음성 인식 장치(100)는 단계(440)에서 결정된 최종 액션을 실행하고, 오디오 출력부(142)의 스피커 및/또는 디스플레이부(121)를 통해 최종 액션의 실행 결과에 기반한 응답을 생성하고 이를 단계(410)에서 수신한 음성 입력에 대한 응답으로서 사용자에게 전달할 수 있다.
도 5는 일 실시예에 따른 각 후보 액션의 가중치를 결정하는 과정의 예시적인 흐름도이다.
도 4를 참조하여 각 후보 액션의 가중치를 결정하는 단계(431)은 단계(510) 및 단계(520)을 포함할 수 있다.
단계(510)에서 음성 인식 장치(100)는 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각 후보 액션을 수행한 빈도를 결정할 수 있다. 예를 들어, 음성 인식 장치(100)는 축적된 컨텍스트 정보를 분석하여 컨텍스트 정보의 유형별로 정의된 시간 동안 사용자가 각 후보 액션을 수행한 횟수(Ci)를 카운팅하여 각 후보 액션을 수행한 빈도를 결정할 수 있다.
단계(520)에서 음성 인식 장치(100)는 단계(510)에서 결정된 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정할 수 있다. 예를 들어, 음성 인식 장치(100)는 단계(510)에서 결정된 빈도를 컨텍스트 정보의 유형별로 정의된 조건에 따라 정규화(normalize)하고, 현재 컨텍스트 정보에 해당하는 정규화의 결과 값을 각 후보 액션이 주어진 컨텍스트 정보의 유형에 대해 가지는 가중치로 결정할 수 있다.
이하에서 컨텍스트 정보의 유형별로 각 후보 액션의 가중치를 결정하는 과정에 대하여 구체적으로 살펴본다.
도 5(a)는 컨텍스트 정보의 제 1 유형에 대하여 각 후보 액션의 가중치를 결정하는 과정(도 4의 단계 431)을 예시적으로 도시한다. 컨텍스트 정보의 제 1 유형은 사용자가 음성 입력을 발화한 시간 정보이다.
컨텍스트 정보의 제 1 유형에 대한 단계(510)은 단계(510a)를 포함할 수 있다. 단계(510a)에서 음성 인식 장치(100)는 축적된 컨텍스트 정보에서 사전설정된 시간 단위마다 사용자가 각 후보 액션을 수행한 횟수(C1)를 카운팅하여 각 후보 액션을 수행한 빈도를 결정한다. 예를 들어 음성 인식 장치(100)는 사전설정된 시간 단위마다 각 후보 액션을 수행한 횟수(C1)를 후보 액션을 수행한 빈도로 결정할 수 있다.
사전설정된 시간 단위는 예를 들어 일 초, 일 분 및 한 시간 중 하나 일 수 있다. 사전설정된 시간 단위는 예를 들어 낮과 밤일 수 있다. 일 예에서 사용자는 하루 이내의 범위에서 시간 단위를 임의로 설정할 수 있다. 일 예에서 사전설정된 시간 단위는 업무 시간이나 출퇴근 시간과 같은 사용자의 생활 패턴에 따라 설정될 수 있다.
컨텍스트 정보의 제 1 유형에 대한 단계(520)은 단계(520a)를 포함할 수 있다. 단계(520a)에서 음성 인식 장치(100)는 단계(510a)에서 카운팅한 각 후보 액션을 수행한 횟수(C1)를 전체 시간 주기에 대하여 정규화하고, 사용자의 현재 컨텍스트 정보에서 음성 입력을 발화한 시간 정보에 해당하는 정규화의 결과 값을 각 후보 액션의 제 1 유형에 대한 가중치로 결정한다. 예를 들어, 단계(520a)에서 음성 인식 장치(100)는 각 후보 액션을 수행한 횟수(C1)를 전체 시간 주기에 대하여 정규화한 함수 f1(x)를 각 후보 액션마다 획득하고, 사용자가 음성 입력을 발화한 시간 정보에 해당하는 정규화의 결과 값인 f1(x=음성 입력을 발화한 시간)을 해당 후보 액션의 제 1 유형에 대한 가중치로 결정할 수 있다.
전체 시간 주기는 예를 들어 하루, 일주일, 한 달 및 일 년 중 하나일 수 있다. 일 예에서 사용자는 필요에 따라 정규화의 시간 주기를 원하는 값으로 설정할 수 있다.
도 5(b)는 컨텍스트 정보의 제 2 유형에 대하여 각 후보 액션의 가중치를 결정하는 과정(도 4의 단계 431)을 예시적으로 도시한다. 컨텍스트 정보의 제 2 유형은 사용자가 음성 입력을 발화한 장소 정보이다.
컨텍스트 정보의 제 2 유형에 대한 단계(510)은 단계(510b)를 포함할 수 있다. 단계(510b)에서 음성 인식 장치(100)는 축적된 컨텍스트 정보에서 사용자가 사전설정된 시간 이상 머무르는 적어도 하나의 장소에서 사용자가 각 후보 액션을 수행한 횟수(C2)를 카운팅하여 각 후보 액션을 수행한 빈도를 결정할 수 있다. 예를 들어, 음성 인식 장치(100)는 해당 장소에서 사용자가 각 후보 액션을 수행한 횟수(C2)를 각 후보 액션의 빈도로 결정할 수 있다.
예를 들어 사전설정된 시간은 수 분(minute) 또는 한 시간일 수 있다. 일 예에서 사용자는 하루 이내의 범위에서 사전설정된 시간의 길이를 조정할 수 있다.
컨텍스트 정보의 제 2 유형에 대한 단계(520)은 단계(520b)를 포함할 수 있다. 단계(520b)에서 음성 인식 장치(100)는 각 후보 액션을 수행한 횟수(C2)를 축적된 컨텍스트 정보에 기록된 모든 장소들에 대하여 정규화하고, 현재 컨텍스트 정보에서 음성 입력을 발화한 장소에 해당하는 정규화의 결과 값을 각 후보 액션의 제 2 유형에 대한 가중치로 결정할 수 있다. 예를 들어, 단계(520b)에서 음성 인식 장치(100)는 각 후보 액션을 수행한 횟수(C2)를 축적된 컨텍스트 정보에 기록된 모든 장소들에 대하여 정규화한 함수 f2(x)를 각 후보 액션마다 획득하고, 사용자가 음성 입력을 발화한 장소 정보에 해당하는 정규화의 결과 값인 f2(x=음성 입력을 발화한 장소)를 해당 후보 액션의 제 2 유형에 대한 가중치로 결정할 수 있다.
도 5(c)는 컨텍스트 정보의 제 3 유형에 대하여 각 후보 액션의 가중치를 결정하는 과정(도 4의 단계 431)을 예시적으로 도시한다. 컨텍스트 정보의 제 3 유형은 사용자에 의해 수행된 액션의 빈도 정보이다.
컨텍스트 정보의 제 3 유형에 대한 단계(510)은 단계(510c)를 포함할 수 있다. 단계(510c)에서 음성 인식 장치(100)는 축적된 컨텍스트 정보에서 사전설정된 시간 주기 동안에 사용자에 의해 수행된 액션별로 수행 횟수(C3)를 카운팅하여 사용자가 수행한 액션별 빈도를 결정할 수 있다.
사전설정된 시간 주기는 예를 들어 일주일, 한 달 및 일 년 중 하나일 수 있다. 일 예에서 사용자는 필요에 따라 시간 주기를 원하는 값으로 설정할 수 있다.
컨텍스트 정보의 제 3 유형에 대한 단계(520)은 단계(520c)를 포함할 수 있다. 단계(520c)에서 음성 인식 장치(100)는 단계(510c)에서 결정된 액션별 빈도를 정규화하고, 각 후보 액션에 해당하는 정규화의 결과 값을 각 후보 액션의 상기 제 3 유형에 대한 가중치로 결정할 수 있다. 일 예에서 액션별 빈도는 사전설정된 시간 주기 동안의 각 액션의 수행 횟수(C3)와 동일할 수 있다. 예를 들어, 음성 인식 장치(100)는 사전설정된 시간 주기 동안의 액션 수행 횟수(C3)를 각 후보 액션의 빈도로 결정할 수 있다. 예를 들어, 단계(520c)에서 음성 인식 장치(100)는 각 후보 액션의 빈도를 정규화한 함수 f3(x)를 획득하고, 각 후보 액션에 해당하는 정규화의 결과 값인 f3(x=후보 액션i)를 해당 후보 액션의 제 3 유형에 대한 가중치로 결정할 수 있다. 여기서 후보 액션i는 복수의 후보 액션 중 i 번째 후보 액션을 의미하며 복수의 후보 액션이 N 개인 경우 i는 1 내지 N의 자연수이다.도 6 내지 도 8은 일 실시예에 따라 최종 액션을 결정하는 과정을 예시적으로 설명하기 위한 도면이다. 이하에서 도 6 내지 8을 참조하여 실시예에 따른 음성 인식 장치가 음성 인식 서비스 제공을 위해 최종 액션을 결정하는 과정을 살펴본다.
도 6은 최종 액션 결정의 제 1 예시를 보여준다.
도 6에서 음성 인식 장치(100)는 도 4를 참조하여 단계(410)에서 사용자의 음성 입력을 수신한다. 도 6의 예시에서 사용자의 음성 입력은 '아이유 음악 검색해줘'이다.
단계(420)에서 '아이유 음악 검색해줘'를 음성 인식 장치(100) 또는 서버(200)에서 자연어 처리 모델을 이용하여 분석한 결과 개체명 및 도메인의 조합에 따른 후보 액션을 결정할 수 있다. 예를 들어, 개체명은 '아이유'이고 도메인은 '음악'인 경우, 제 1 후보 액션은 '음악 앱에서 아이유를 검색'으로 결정될 수 있다. 예를 들어, 개체명은 '아이유 음악'이고 도메인은 '웹'인 경우, 제 2 후보 액션은 '검색엔진 앱에서 아이유 음악을 검색'으로 결정될 수 있다. 음성 인식 장치(100)는 단계(420)에서 제 1 후보 액션 및 제 2 후보 액션을 포함하는 복수의 후보 액션을 획득한다.
도 6에서, 예시적인 사용자 A 및 사용자 B가 각각 낮 2시에 회사에서 '아이유 음악 검색해줘'라고 발화한다고 가정한다. 이 경우, 사용자들의 현재 컨텍스트 정보는 음성 입력을 발화한 시간은 낮 2시이고 음성 입력을 발화한 장소는 회사인 것을 포함한다.
음성 인식 장치(100)는 도 4를 참조하여 단계(430)에서 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정한다. 이를 위하여 축적된 컨텍스트 정보를 분석하여 결정된 컨텍스트 정보의 유형별 각 후보 액션의 가중치를 이용한다.
도 6(a) 및 도 6(b)는 음성 인식 장치(100)가 단계(430)에서 연관도 결정을 위해 사용하는 컨텍스트 정보의 유형에 대한 후보 액션의 가중치 테이블을 예시적으로 나타낸다. 도 6(a) 및 도 6(b)는 예시적인 사용자 A 및 사용자 B의 제 1 후보 액션(음악) 및 제 2 후보 액션(웹)의 컨텍스트 정보의 유형별 가중치 테이블이다.
도 6(a)에 도시된 예시적인 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(음악)의 가중치의 합인 1.3을 음성 입력과 제 1 후보 액션(음악) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(웹)의 가중치의 합인 2.4를 음성 입력과 제 2 후보 액션(웹) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 2 후보 액션(웹)을 사용자 A에 대한 최종 액션으로 결정한다.
도 6(b)에 도시된 예시적인 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(음악)의 가중치의 합인 1.95를 음성 입력과 제 1 후보 액션(음악) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(웹)의 가중치의 합인 0.4를 음성 입력과 제 2 후보 액션(웹) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 1 후보(음악) 액션을 사용자 B에 대한 최종 액션으로 결정한다.도 7은 최종 액션 결정의 제 2 예시를 보여준다.
도 7에서 음성 인식 장치(100)는 도 4를 참조하여 단계(410)에서 사용자의 음성 입력을 수신한다. 도 7의 예시에서 사용자의 음성 입력은 '공유 찾아줘'이다.
단계(420)에서 '공유 찾아줘'를 음성 인식 장치(100) 또는 서버(200)에서 자연어 처리 모델을 이용하여 분석한 결과 개체명 및 도메인의 조합에 따른 후보 액션을 결정할 수 있다. 예를 들어, 개체명은 '공유'이고 도메인은 '주소록'인 경우, 제 1 후보 액션은 '주소록에서 공유 검색'으로 결정될 수 있다. 예를 들어, 개체명은 '공유'이고 도메인은 '웹'인 경우, 제 2 후보 액션은 '검색엔진 앱에서 공유 검색'으로 결정될 수 있다. 음성 인식 장치(100)는 단계(420)에서 제 1 후보 액션 및 제 2 후보 액션을 포함하는 복수의 후보 액션을 획득한다.
도 7에서, 예시적인 사용자 A 및 사용자 B가 각각 아침 10시에 회사 근처에서 '공유 검색해줘'라고 발화한다고 가정한다. 이 경우, 사용자들의 현재 컨텍스트 정보는 음성 입력을 발화한 시간은 아침 10시이고 음성 입력을 발화한 장소는 회사 근처인 것을 포함한다.
음성 인식 장치(100)는 도 4를 참조하여 단계(430)에서 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정한다. 이를 위하여 축적된 컨텍스트 정보를 분석하여 결정된 컨텍스트 정보의 유형별 각 후보 액션의 가중치를 이용한다.
도 7(a) 및 도 7(b)는 음성 인식 장치(100)가 단계(430)에서 연관도 결정을 위해 사용하는 컨텍스트 정보의 유형에 대한 후보 액션의 가중치 테이블을 예시적으로 나타낸다. 도 7(a) 및 도 7(b)는 예시적인 사용자 A 및 사용자 B의 제 1 후보 액션(주소록) 및 제 2 후보 액션(웹)의 컨텍스트 정보의 유형별 가중치 테이블이다.
도 7(a)의 사용자 A의 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(주소록)의 가중치의 합인 0.6을 음성 입력과 제 1 후보 액션(주소록) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(웹)의 가중치의 합인 1.4를 음성 입력과 제 2 후보 액션(웹) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 2 후보 액션(웹)을 사용자 A에 대한 최종 액션으로 결정한다.
도 7(b)의 사용자 B의 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(주소록)의 가중치의 합인 2.35를 음성 입력과 제 1 후보 액션(주소록) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(웹)의 가중치의 합인 2.2를 음성 입력과 제 2 후보 액션(웹) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 1 후보 액션(주소록)을 사용자 B에 대한 최종 액션으로 결정한다.
도 8은 최종 액션 결정의 제 3 예시를 보여준다.
도 8에서 음성 인식 장치(100)는 도 4를 참조하여 단계(410)에서 사용자의 음성 입력을 수신한다. 도 7의 예시에서 사용자의 음성 입력은 '공기 상태 알려줘'이다.
단계(420)에서 '공기 상태 알려줘'를 음성 인식 장치(100) 또는 서버(200)에서 자연어 처리 모델을 이용하여 분석한 결과 개체명 및 도메인의 조합에 따른 후보 액션을 결정할 수 있다. 예를 들어, 개체명은 '공기 상태'이고 도메인은 '가전'인 경우, 제 1 후보 액션은 '공기청정기가 실내 공기 상태를 알려줌'으로 결정될 수 있다. 예를 들어, 개체명은 '공기 상태'이고 도메인은 '날씨'인 경우, 제 2 후보 액션은 '날씨 앱에서 실외 미세먼지 상태를 알려줌'으로 결정될 수 있다. 음성 인식 장치(100)는 단계(420)에서 제 1 후보 액션 및 제 2 후보 액션을 포함하는 복수의 후보 액션을 획득한다.
도 8에서, 예시적인 사용자 A 및 사용자 B가 각각 밤 11시에 집에서 '공기 상태 알려줘'라고 발화한다고 가정한다. 이 경우, 사용자들의 현재 컨텍스트 정보는 음성 입력을 발화한 시간은 밤 11시이고 음성 입력을 발화한 장소는 집인 것을 포함한다.
음성 인식 장치(100)는 도 4를 참조하여 단계(430)에서 사용자의 현재 컨텍스트 정보에 기반하여 음성 입력과 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정한다. 이를 위하여 축적된 컨텍스트 정보를 분석하여 결정된 컨텍스트 정보의 유형별 각 후보 액션의 가중치를 이용한다.
도 8(a) 및 도 8(b)는 음성 인식 장치(100)가 단계(430)에서 연관도 결정을 위해 사용하는 컨텍스트 정보의 유형에 대한 후보 액션의 가중치 테이블을 예시적으로 나타낸다. 도 8(a) 및 도 8(b)는 예시적인 사용자 A 및 사용자 B의 제 1 후보 액션(가전) 및 제 2 후보 액션(날씨)의 컨텍스트 정보의 유형별 가중치 테이블이다.
도 8(a)의 사용자 A의 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(가전)의 가중치의 합인 2.15를 음성 입력과 제 1 후보 액션(가전) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(날씨)의 가중치의 합인 0.4를 음성 입력과 제 2 후보 액션(날씨) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 1 후보 액션(가전)을 사용자 A에 대한 최종 액션으로 결정한다.
도 8(b)의 사용자 B의 가중치 테이블을 참조하여 단계(430)에서 음성 인식 장치(100)는 제 1 후보 액션(가전)의 가중치의 합인 0.4를 음성 입력과 제 1 후보 액션(가전) 간의 연관도로 결정할 수 있다. 또한 음성 인식 장치(100)는 단계(430)에서 제 2 후보 액션(날씨)의 가중치의 합인 2.15를 음성 입력과 제 2 후보 액션(날씨) 간의 연관도로 결정할 수 있다. 이 경우, 단계(440)에서 음성 인식 장치(100)는 연관도가 더 큰 제 2 후보 액션(날씨)을 사용자 B에 대한 최종 액션으로 결정한다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 청구의 범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 청구의 범위뿐만 아니라 이 청구의 범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
앞에서, 본 발명의 특정한 실시예가 설명되고 도시되었지만 본 발명은 기재된 실시예에 한정되는 것이 아니고, 이 기술 분야에서 통상의 지식을 가진 자는 본 발명의 사상 및 범위를 벗어나지 않고서 다른 구체적인 실시예로 다양하게 수정 및 변형할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 설명된 실시예에 의하여 정하여 질 것이 아니고 청구범위에 기재된 기술적 사상에 의해 정하여져야 할 것이다.
Claims (16)
- 음성 인식 서비스를 제공하는 방법으로서,사용자의 음성 입력을 수신하는 단계;상기 음성 입력에서 추출한 복수의 후보 액션을 획득하는 단계;상기 사용자의 현재 컨텍스트(context) 정보에 기반하여 상기 음성 입력과 상기 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정하는 단계; 및상기 연관도에 기반하여 상기 복수의 후보 액션 중에서 최종 액션을 결정하는 단계를 포함하고,상기 연관도를 결정하는 단계는,상기 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정하는 단계; 및각 후보 액션별로 상기 가중치를 조합하여 상기 연관도를 계산하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 복수의 후보 액션을 획득하는 단계는,외부 서버에 상기 음성 입력을 전송하는 단계; 및상기 외부 서버가 상기 음성 입력을 나타내는 텍스트를 자연어 처리하여 추출한 상기 복수의 후보 액션을 수신하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 복수의 후보 액션의 각 후보 액션은,액션의 대상인 개체명(Named Entity) 및 액션의 카테고리를 분류한 도메인 정보를 포함하는,음성 인식 서비스 제공 방법.
- 제 3 항에 있어서,상기 복수의 후보 액션의 각 후보 액션은 상기 개체명 및 상기 도메인 정보의 조합에 의하여 서로 구별되는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 현재 컨텍스트 정보는,상기 사용자가 상기 음성 입력을 발화한 시간, 상기 사용자가 상기 음성 입력을 발화한 장소, 상기 사용자가 이동 중인지 여부, 상기 사용자의 이동 속도 및 상기 사용자가 사용 중인 디바이스에 대한 정보 중 적어도 하나를 포함하는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 사용자에 대하여 축적된 컨텍스트 정보는,상기 사용자의 명령에 의해 수행되었던 액션별로, 명령이 수신된 시간, 명령이 수신된 장소, 액션이 수행된 빈도, 명령이 수신될 때 사용자가 이동 중이었는지 여부, 명령이 수신될 때 상기 사용자의 이동 속도 및 명령의 수신에 사용된 디바이스에 대한 정보 중 적어도 하나를 포함하는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 가중치를 결정하는 단계는,상기 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각 후보 액션을 수행한 빈도를 결정하는 단계; 및상기 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 7 항에 있어서,상기 컨텍스트 정보의 제 1 유형은,상기 사용자가 음성 입력을 발화한 시간 정보이고,상기 빈도를 결정하는 단계는,사전설정된 시간 단위마다 상기 사용자가 각 후보 액션을 수행한 횟수를 카운팅하여 상기 빈도를 결정하는 단계를 포함하고,상기 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 단계는,각 후보 액션을 수행한 횟수를 전체 시간 주기에 대하여 정규화(normalize)하고, 상기 현재 컨텍스트 정보에서 음성 입력을 발화한 시간 정보에 해당하는 정규화의 결과 값을 각 후보 액션의 상기 제 1 유형에 대한 가중치로 결정하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 7 항에 있어서,상기 컨텍스트 정보의 제 2 유형은,상기 사용자가 음성 입력을 발화한 장소 정보이고,상기 빈도를 결정하는 단계는,상기 사용자가 사전설정된 시간 이상 머무르는 적어도 하나의 장소에서 상기 사용자가 각 후보 액션을 수행한 횟수를 카운팅하여 상기 빈도를 결정하는 단계를 포함하고,상기 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 단계는,각 후보 액션을 수행한 횟수를 상기 축적된 컨텍스트 정보에 기록된 모든 장소들에 대하여 정규화하고, 상기 현재 컨텍스트 정보에서 음성 입력을 발화한 장소에 해당하는 정규화의 결과 값을 각 후보 액션의 상기 제 2 유형에 대한 가중치로 결정하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 7 항에 있어서,상기 컨텍스트 정보의 제 3 유형은,상기 사용자에 의해 수행된 액션의 빈도 정보이고,상기 빈도를 결정하는 단계는,사전설정된 시간 주기 동안에 상기 사용자에 의해 수행된 액션별로 수행 횟수를 카운팅하여 상기 사용자가 수행한 액션별 빈도를 결정하는 단계를 포함하고,상기 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 단계는,상기 액션별 빈도를 정규화하고, 각 후보 액션에 해당하는 정규화의 결과 값을 각 후보 액션의 상기 제 3 유형에 대한 가중치로 결정하는 단계를 포함하는,음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 연관도를 결정하는 단계는,사전설정된 시간 주기마다 반복적으로 수행되는음성 인식 서비스 제공 방법.
- 제 1 항에 있어서,상기 최종 액션을 결정하는 단계는,상기 연관도가 최대인 후보 액션을 상기 최종 액션으로 결정하는 음성 인식 서비스 제공 방법.
- 음성 인식 장치로서,사용자의 음성 입력을 수신하는 마이크로폰; 및상기 음성 입력에서 추출된 복수의 후보 액션 중 하나의 액션을 최종 액션으로 결정하는 프로세서를 포함하고, 상기 프로세서는,상기 사용자의 현재 컨텍스트 정보에 기반하여 상기 음성 입력과 상기 복수의 후보 액션의 각 후보 액션 간의 연관도를 결정하는 동작; 및상기 연관도에 기반하여 상기 복수의 후보 액션 중에서 최종 액션을 결정하는 동작을 수행하도록 설정되고,상기 연관도를 결정하는 동작은,상기 사용자에 대하여 축적된 컨텍스트 정보를 분석하여 각각의 컨텍스트 정보의 유형별로 각 후보 액션이 가지는 가중치를 결정하는 동작; 및각 후보 액션별로 상기 가중치를 조합하여 상기 연관도를 계산하는 동작을 포함하는음성 인식 장치.
- 제 13 항에 있어서,상기 복수의 후보 액션의 각 후보 액션은 액션의 대상인 개체명 및 액션의 카테고리를 분류한 도메인 정보의 조합에 의하여 서로 구별되는음성 인식 장치.
- 제 13 항에 있어서,상기 가중치를 결정하는 동작은,상기 축적된 컨텍스트 정보를 분석하여 상기 후보 액션을 수행한 빈도를 결정하는 동작; 및상기 빈도에 기반하여 각 후보 액션이 각각의 컨텍스트 정보의 유형에 대해 가지는 가중치를 결정하는 동작을 포함하는음성 인식 장치.
- 제 13 항에 있어서,상기 연관도를 계산하는 동작은,각 후보 액션별로 상기 가중치를 합산하는 동작을 포함하는,음성 인식 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/011068 WO2021040092A1 (ko) | 2019-08-29 | 2019-08-29 | 음성 인식 서비스 제공 방법 및 장치 |
KR1020190124531A KR20190121721A (ko) | 2019-08-29 | 2019-10-08 | 음성 인식 서비스 제공 방법 및 장치 |
US16/739,811 US11393470B2 (en) | 2019-08-29 | 2020-01-10 | Method and apparatus for providing speech recognition service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/011068 WO2021040092A1 (ko) | 2019-08-29 | 2019-08-29 | 음성 인식 서비스 제공 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021040092A1 true WO2021040092A1 (ko) | 2021-03-04 |
Family
ID=68421802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/011068 WO2021040092A1 (ko) | 2019-08-29 | 2019-08-29 | 음성 인식 서비스 제공 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11393470B2 (ko) |
KR (1) | KR20190121721A (ko) |
WO (1) | WO2021040092A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220375469A1 (en) * | 2019-10-29 | 2022-11-24 | Lg Electronics Inc. | Intelligent voice recognition method and apparatus |
CN111161739B (zh) * | 2019-12-28 | 2023-01-17 | 科大讯飞股份有限公司 | 语音识别方法及相关产品 |
CN111312240A (zh) * | 2020-02-10 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 数据控制方法、装置、电子设备及存储介质 |
KR20220094400A (ko) * | 2020-12-29 | 2022-07-06 | 현대자동차주식회사 | 대화 시스템, 그를 가지는 차량 및 대화 시스템의 제어 방법 |
US11798549B2 (en) * | 2021-03-19 | 2023-10-24 | Mitel Networks Corporation | Generating action items during a conferencing session |
US11252113B1 (en) * | 2021-06-15 | 2022-02-15 | Drift.com, Inc. | Proactive and reactive directing of conversational bot-human interactions |
KR20230039909A (ko) * | 2021-09-15 | 2023-03-22 | 삼성전자주식회사 | 불완전 연속 발화를 처리하는 서버, 전자 장치 및 그의 동작 방법 |
KR20230086117A (ko) * | 2021-12-08 | 2023-06-15 | 삼성전자주식회사 | 추천 명령어를 이용하여 음성 인식을 수행하는 전자 장치 |
WO2024039191A1 (ko) * | 2022-08-19 | 2024-02-22 | 삼성전자주식회사 | 전자 장치 및 사용자 발화 처리 방법 |
WO2024085412A1 (en) * | 2022-10-18 | 2024-04-25 | Samsung Electronics Co., Ltd. | Methods and iot device for executing user input in iot environment |
CN115601925B (zh) * | 2022-11-17 | 2023-03-07 | 中南民族大学 | 跌倒检测*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120012919A (ko) * | 2010-08-03 | 2012-02-13 | 삼성전자주식회사 | 음성명령 인식 장치 및 음성명령 인식 방법 |
KR20160044859A (ko) * | 2014-10-16 | 2016-04-26 | 현대자동차주식회사 | 음성 인식 장치, 이를 포함하는 차량, 및 음성 인식 방법 |
US20170193999A1 (en) * | 2016-01-06 | 2017-07-06 | Google Inc. | Voice recognition system |
KR20180087942A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 음성 인식 방법 및 장치 |
KR20190059509A (ko) * | 2017-11-23 | 2019-05-31 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100111164A (ko) | 2009-04-06 | 2010-10-14 | 삼성전자주식회사 | 사용자의 발화의도를 파악하는 음성 대화 처리장치 및 음성 대화 처리방법 |
KR101198862B1 (ko) | 2009-11-17 | 2012-11-06 | 에스케이플래닛 주식회사 | 음성인식을 이용한 사용자 인터페이스 제공단말기 및 방법 |
US8849807B2 (en) * | 2010-05-25 | 2014-09-30 | Mark F. McLellan | Active search results page ranking technology |
US10091140B2 (en) * | 2015-05-31 | 2018-10-02 | Microsoft Technology Licensing, Llc | Context-sensitive generation of conversational responses |
US11037546B2 (en) * | 2018-11-15 | 2021-06-15 | Microsoft Technology Licensing, Llc | Nudging neural conversational model with domain knowledge |
-
2019
- 2019-08-29 WO PCT/KR2019/011068 patent/WO2021040092A1/ko active Application Filing
- 2019-10-08 KR KR1020190124531A patent/KR20190121721A/ko active Search and Examination
-
2020
- 2020-01-10 US US16/739,811 patent/US11393470B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120012919A (ko) * | 2010-08-03 | 2012-02-13 | 삼성전자주식회사 | 음성명령 인식 장치 및 음성명령 인식 방법 |
KR20160044859A (ko) * | 2014-10-16 | 2016-04-26 | 현대자동차주식회사 | 음성 인식 장치, 이를 포함하는 차량, 및 음성 인식 방법 |
US20170193999A1 (en) * | 2016-01-06 | 2017-07-06 | Google Inc. | Voice recognition system |
KR20180087942A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 음성 인식 방법 및 장치 |
KR20190059509A (ko) * | 2017-11-23 | 2019-05-31 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
Also Published As
Publication number | Publication date |
---|---|
US11393470B2 (en) | 2022-07-19 |
US20210065704A1 (en) | 2021-03-04 |
KR20190121721A (ko) | 2019-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021040092A1 (ko) | 음성 인식 서비스 제공 방법 및 장치 | |
WO2020213762A1 (ko) | 전자장치, 그 동작방법, 및 복수의 인공지능장치를 포함한 시스템 | |
WO2020085796A1 (en) | Electronic device and method for controlling electronic device thereof | |
WO2018074681A1 (ko) | 전자 장치 및 그 제어 방법 | |
WO2020141952A1 (en) | Conversational control system and method for registering external device | |
WO2020060223A1 (ko) | 애플리케이션의 번역 정보를 제공하는 디바이스 및 방법 | |
WO2021080033A1 (ko) | 음성 분석 방법 및 장치 | |
WO2019160396A2 (ko) | 안내 로봇 및 안내 로봇의 동작 방법 | |
WO2019132410A1 (en) | Electronic device and control method thereof | |
KR20190106902A (ko) | 사운드 분석 방법 및 장치 | |
US11328718B2 (en) | Speech processing method and apparatus therefor | |
WO2019172735A2 (ko) | 커뮤니케이션 로봇 및 그의 구동 방법 | |
WO2018182201A1 (ko) | 사용자의 음성 입력에 대한 답변을 제공하는 방법 및 장치 | |
WO2015108396A1 (ko) | 사용자 맞춤형 정보를 제공하는 방법 및 장치 | |
WO2018056617A1 (ko) | 웨어러블 장치 및 이의 위젯 제공 방법 | |
WO2019088610A1 (ko) | 도어의 개폐 상태를 감지하기 위한 센싱 장치 및 그 센싱 장치를 제어하는 방법 | |
KR20190065201A (ko) | 음성 인식 방법 및 음성 인식 장치 | |
WO2021071110A1 (en) | Electronic apparatus and method for controlling electronic apparatus | |
WO2019190096A1 (ko) | 사용자 음성 입력을 처리하는 장치 | |
WO2020180001A1 (ko) | 전자 장치 및 이의 제어 방법 | |
WO2019221479A1 (ko) | 공기 조화 장치 및 이의 제어 방법 | |
EP3441889A1 (en) | Information processing device and information processing method | |
WO2018164435A1 (en) | Electronic apparatus, method for controlling the same, and non-transitory computer readable recording medium | |
WO2021149890A1 (ko) | 사용자의 개인 모델을 학습하는 전자 장치 및 그 동작 방법 | |
WO2019054715A1 (ko) | 전자 장치 및 이의 피드백 정보 획득 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19943559 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19943559 Country of ref document: EP Kind code of ref document: A1 |