WO2022124637A1 - 전자장치 및 그의 제어방법 - Google Patents

전자장치 및 그의 제어방법 Download PDF

Info

Publication number
WO2022124637A1
WO2022124637A1 PCT/KR2021/017218 KR2021017218W WO2022124637A1 WO 2022124637 A1 WO2022124637 A1 WO 2022124637A1 KR 2021017218 W KR2021017218 W KR 2021017218W WO 2022124637 A1 WO2022124637 A1 WO 2022124637A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
engine
voice
user
engines
Prior art date
Application number
PCT/KR2021/017218
Other languages
English (en)
French (fr)
Inventor
유지원
Original Assignee
삼성전자(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자(주) filed Critical 삼성전자(주)
Priority to EP21903683.7A priority Critical patent/EP4227940A4/en
Priority to CN202180083130.4A priority patent/CN116615780A/zh
Publication of WO2022124637A1 publication Critical patent/WO2022124637A1/ko
Priority to US17/895,731 priority patent/US20220406308A1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/06Decision making techniques; Pattern matching strategies
    • G10L17/10Multimodal systems, i.e. based on the integration of multiple recognition engines or fusion of expert systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/26Recognition of special voice characteristics, e.g. for use in lie detectors; Recognition of animal voices
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/221Announcement of recognition results
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Definitions

  • the present disclosure relates to an electronic device capable of recognizing a user's voice and a method for controlling the same.
  • the electronic device having a voice recognition function may receive a user's voice through a microphone, and transmit the received user's voice to a voice recognition engine of a server to perform recognition.
  • the voice recognition engine transmits the result of recognizing the user's voice to the electronic device, and the electronic device executes the recognition result.
  • the voice recognition engine of the server may not be able to perform voice recognition because the user's voice cannot be transmitted, for example, in a power-off state or a state in which a network is not connected.
  • the present disclosure provides an electronic device and a control method thereof for efficiently performing voice recognition by reflecting the state of the electronic device in order to solve the above-mentioned conventional problem.
  • the electronic device receives a user voice input, identifies a state of the electronic device corresponding to at least one item associated with the electronic device, and based on a plurality of degrees of association between a plurality of voice recognition engines and a plurality of states, and a processor that selects one voice recognition engine corresponding to the identified state from among the plurality of voice recognition engines, and controls to perform an operation corresponding to the user voice input based on the selected voice recognition engine.
  • the plurality of voice recognition engines includes an on-device voice recognition engine included in the electronic device and a server voice recognition engine provided in a server, and the processor controls to select the on-device voice recognition engine or the server voice recognition engine. can do.
  • the processor identifies an intent corresponding to the received user voice input from among a plurality of intents, and controls to select the voice recognition engine based on a relationship between the plurality of voice recognition engines and the plurality of intents.
  • One of the plurality of voice recognition engines may include a default voice recognition engine that analyzes the intent of the user's voice input.
  • the apparatus may further include a storage unit storing first reference data for allocating at least one of the plurality of intents to the plurality of speech recognition engines.
  • the storage unit is second reference data including at least one of a degree of association between the plurality of speech recognition engines and the plurality of states and a degree of association between the plurality of speech recognition engines and the plurality of intents. can be saved.
  • the processor may control to calculate a degree of association for each speech recognition engine associated with the intent of the user's speech input.
  • the processor determines the degree of association between the plurality of speech recognition engines and the plurality of states, and the degree of association between the plurality of speech recognition engines and the plurality of intents, based on the recognition result of the user's speech input. At least one of them may be controlled to be adjusted.
  • the processor controls the storage unit to store data related to history information corresponding to a recognition result of the user's voice input, and selects the voice recognition engine from among a plurality of voice recognition engines having the same degree of relevance based on the history information. can be controlled to do so.
  • the processor may control the storage unit to store data related to history information corresponding to a recognition result of the user's voice input, and generate a rule for determining a voice recognition engine based on the history information.
  • a method of controlling an electronic device includes receiving a user voice input, identifying a state of the electronic device corresponding to at least one item related to the electronic device, and a plurality of associations between a plurality of voice recognition engines and a plurality of states selecting one voice recognition engine corresponding to the identified state from among the plurality of voice recognition engines based on includes
  • the plurality of voice recognition engines includes an on-device voice recognition engine included in the electronic device and a server voice recognition engine provided in a server, and the control method of the electronic device includes the on-device voice recognition engine or the server voice recognition engine. It may further include the step of selecting.
  • the method of controlling the electronic device includes: identifying an intent corresponding to the received user voice input from among a plurality of intents; based on a relationship between the plurality of speech recognition engines and the plurality of intents, the speech recognition engine It may further include the step of selecting
  • One of the plurality of voice recognition engines may include a default voice recognition engine that analyzes the intent of the user's voice input.
  • the method of controlling the electronic device may further include storing first reference data of at least one of the plurality of intents in the plurality of voice recognition engines in a storage unit.
  • an electronic device when an electronic device receives a user's voice input, it is possible to improve the voice recognition success rate, accuracy, and speed by selecting an optimal voice recognition engine suitable for the state of the electronic device from among many voice recognition engines.
  • the electronic device of the present disclosure can efficiently perform voice recognition by selecting an OnDevice voice recognition engine or a server voice recognition engine suitable for various situations.
  • FIG. 1 is a diagram illustrating an environment in which an electronic device performs voice recognition using a plurality of voice recognition engines according to an embodiment.
  • FIG. 2 is a block diagram of an electronic device.
  • FIG. 3 is a block diagram illustrating a configuration of a processor of an electronic device according to an embodiment of the present disclosure.
  • FIG. 4 is first reference data showing an example of a list in which each intent of a user's voice is allocated for each engine according to an embodiment.
  • FIG. 5 is second reference data illustrating a degree of association between a state of an item related to an electronic device and engines according to an exemplary embodiment.
  • FIG. 6 is a third reference data showing history data for a user voice recognition processing result according to an embodiment.
  • FIG. 7 is a flowchart illustrating a method of controlling an electronic device according to a first exemplary embodiment of the present disclosure.
  • FIG. 8 is an exemplary diagram illustrating a first example in which an electronic device selects an engine using first reference data and second reference data according to an embodiment.
  • FIG. 9 is an exemplary diagram illustrating a second example in which an electronic device selects an engine using first reference data and second reference data according to an embodiment.
  • FIG. 10 is an exemplary diagram illustrating a third example in which an electronic device selects an engine using first reference data and second reference data according to an embodiment.
  • 11 is an exemplary diagram illustrating an example in which an electronic device selects an engine using third reference data according to an embodiment.
  • FIG. 12 is an exemplary diagram illustrating a first example in which an electronic device according to an embodiment selects one of a plurality of engines having the same or similar degree of relevance.
  • FIG. 13 is an exemplary diagram illustrating a second example in which an electronic device according to an embodiment selects one of a plurality of engines having the same or similar relevance.
  • FIG. 14 is an exemplary diagram illustrating a third example in which an electronic device according to an embodiment selects one of a plurality of engines having the same or similar degree of relevance.
  • 15 is an exemplary diagram illustrating a fourth example in which an electronic device according to an embodiment selects one of a plurality of engines having the same or similar relevance.
  • 16 is an exemplary diagram illustrating a fifth example in which an electronic device according to an embodiment selects one of a plurality of engines having the same or similar relevance.
  • 17 is an exemplary diagram illustrating an updated result by reflecting a processing result of a user's voice by the electronic device according to an exemplary embodiment
  • 18 is an exemplary diagram illustrating an updated result by reflecting a result of refusing recognition of a user's voice by the electronic device according to an exemplary embodiment
  • 19 is a flowchart illustrating a method of controlling an electronic device according to a second exemplary embodiment of the present disclosure.
  • 20 is an exemplary diagram illustrating an example in which an electronic device selects a recognition engine for a user's voice according to a second embodiment of the present disclosure.
  • 21 is a flowchart illustrating a control method of an electronic device according to a third exemplary embodiment of the present disclosure.
  • FIG. 22 is an exemplary diagram illustrating an example in which an electronic device selects a recognition engine for a user's voice according to a third embodiment of the present disclosure.
  • FIG. 23 is a flowchart illustrating a method of controlling an electronic device according to a fourth exemplary embodiment of the present disclosure.
  • FIG. 24 is a block diagram illustrating a configuration of a processor of an electronic device according to a fifth embodiment of the present disclosure.
  • 25 is a block diagram illustrating a configuration of a processor of an electronic device according to a sixth exemplary embodiment of the present disclosure.
  • 26 is a block diagram illustrating a configuration of a processor of an electronic device according to a seventh exemplary embodiment of the present disclosure.
  • 27 is a block diagram illustrating an example in which an electronic device acquires reference data according to an embodiment.
  • circuits such as logic gates, integrated circuits, passive electronic elements, active electronic elements, optical elements, hardware embedded circuits, etc. It can be physically realized by the software and driven by firmware and software.
  • the circuits may be implemented as, for example, one or more semiconductor chips or a substrate support such as a printed circuit board.
  • the circuitry included in the block may be realized by dedicated hardware, a processor (eg, one or more programmable microprocessors and related circuitry), or a combination of dedicated hardware that performs some functions of the block and a processor that performs other functions of the block.
  • a processor eg, one or more programmable microprocessors and related circuitry
  • a combination of dedicated hardware that performs some functions of the block and a processor that performs other functions of the block.
  • Each block of embodiments may be physically separated into two or more cooperating separate blocks. Likewise, blocks of embodiments may be physically combined into more complex blocks.
  • expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
  • expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
  • a device configured to may mean that the device is “capable of” with other devices or parts.
  • a subprocessor configured (or configured to perform) A, B, and C refers to a dedicated processor (eg, an embedded processor) for performing the operations, or by executing one or more software programs stored in memory.
  • a general-purpose processor eg, a CPU or an application processor
  • the term user may refer to a person using the electronic device 1 or a device (eg, an artificial intelligence electronic device) using the electronic device 1 .
  • a device eg, an artificial intelligence electronic device
  • FIG. 1 is a diagram illustrating an environment in which an electronic device 1 performs voice recognition using a plurality of voice recognition engines.
  • the electronic device 1 may be, for example, a display device capable of displaying an image.
  • the electronic device 1 may include a TV, a computer, a tablet, a portable media player, a wearable device, a video wall, an electronic picture frame, and the like.
  • the electronic device 1 includes not only a display device, but also an image processing device such as a set-top box without a display, a household appliance such as a refrigerator or a washing machine, or various types of devices such as an information processing device such as a computer body.
  • the electronic device 1 may be a device installed and used at a single fixed location, or may be a mobile device 4 that a user can carry and use while moving.
  • the electronic device 1 may receive a user voice. That is, when the user utters a predetermined command, the electronic device 1 acquires a user voice according to the utterance. In order to acquire the user's voice according to the utterance, the electronic device 1 has a microphone for collecting utterances built into it, or a remote controller 3 having a microphone or a user voice from a separate external device such as a mobile phone. may receive.
  • the remote controller 3 When the remote controller 3 receives a voice through the microphone, it digitizes the analog voice signal and transmits it to the electronic device 1 through a blue pitcher or the like.
  • the electronic device 1 When the electronic device 1 receives a voice through its built-in microphone, it digitizes an analog voice signal and transmits it to the processor 16 of the electronic device 1 . At this time, the electronic device 1 receiving the digitized voice information transmits it to the STT server.
  • the STT server may only perform the role of an STT server that converts voice signal related data into appropriate text, or may be a main server that also performs an STT server function.
  • the data processed in the STT server may be received again by the electronic device 1 or may be directly transmitted to another server.
  • the electronic device 1 may process all of the voice information by itself without transmitting the voice information to the STT server.
  • the electronic device 1 may serve as an STT server by itself.
  • the electronic device 1 may perform a specific function using the text transmitted from the STT server or the text converted by itself.
  • the function is performed by the processor 16 of the electronic device 1 in some cases, the converted text may be transmitted to a separate server (a server different from the STT server or a server serving as an STT server).
  • the STT server receiving the data processes and transmits the data to the electronic device 1, and the electronic device performs a specific function based on the received data.
  • the electronic device 1 may recognize the received user's voice using a plurality of voice recognition engines (hereinafter referred to as "engines") 10a, 10b, 10c, ...) (20A, 20B, 20C, ).
  • engines for example, one of the plurality of engines 10a, 10b, 10c, ...
  • the engines 10a, 10b, 10c, ... (20A, 20B, 20C, ...) derive text data by performing STT processing on the user's voice input to the electronic device 1, and dip the derived text data.
  • semantic analysis based on learning or machine learning, it is possible to determine the meaning of text data and provide services that match the determined meaning.
  • the plurality of engines (10a, 10b, 10c, ...) (20A, 20B, 20C, ...) is an on-device (OnDevice) engine (10a, 10b, 10c, ...) in which most operations are performed inside the electronic device 1 . and a server communicating with the electronic device 1 or server engines 20A, 20B, 20C, .
  • FIG. 2 is a block diagram of the electronic device 1 .
  • the electronic device 1 includes an interface 11 , a display unit 12 , a user input unit 13 , a storage unit 14 , a microphone 15 , and a processor 16 . .
  • the configuration of the electronic device 1 will be described.
  • the electronic device 1 may be various types of devices, and thus the present embodiment does not limit the configuration of the electronic device 1 . It is also possible that the electronic device 1 is not entirely implemented as a display device, and in this case, the electronic device 1 may not include components for displaying an image, such as the display unit 12 . For example, when the electronic device 1 is a set-top box, the electronic device 1 may output an image signal to an external TV through the interface unit 11 .
  • the interface unit 11 is a one-way or two-way communication circuit including at least one of components such as a communication module and a communication chip corresponding to various types of wired and wireless communication protocols.
  • the interface unit 11 may receive a user's voice indirectly from various external devices, for example, the server 2 , the remote controller 3 or the mobile device 4 .
  • the interface unit 11 may include a wired interface unit and a wireless interface unit.
  • the wired interface unit may include a terrestrial or satellite broadcasting antenna connection tuner for receiving a broadcast signal, a cable broadcasting cable connection interface, and the like.
  • the wired interface unit may include HDMI, DP, DVI, Component, S-Video, and composite (RCA terminal) for connecting video devices.
  • the wired interface unit may include a USB interface for connecting a general-purpose electronic device.
  • the wired interface unit may include a connection interface of an optical cable device.
  • the wired interface unit may include an audio device connection interface such as a headset, an earphone, and an external speaker.
  • the wired interface unit may include a connection interface of a wired network device such as Ethernet.
  • the wireless interface unit may include a connection interface of a wireless network device such as Wi-fi, Bluetooth, ZigBee, Z-wave, RFID, WiGig, WirelessHD, Ultra-Wide Band (UWB), Wireless USB, Near Field Communication (NFC), etc. .
  • a wireless network device such as Wi-fi, Bluetooth, ZigBee, Z-wave, RFID, WiGig, WirelessHD, Ultra-Wide Band (UWB), Wireless USB, Near Field Communication (NFC), etc.
  • the wireless interface unit may include an IR transceiver module for transmitting and/or receiving a remote control signal.
  • the wireless interface unit may include a mobile communication device connection interface such as 2G to 5G.
  • the interface unit 11 may include a dedicated communication module for performing dedicated communication with respect to each of the server 2 , the remote controller 3 , and the mobile device 4 .
  • the interface unit 11 may include a common communication module that communicates with all of the server 2 , the remote controller 3 , and the mobile device 4 .
  • the server 2, the remote controller 3, and the mobile device 4 can all communicate through the Wi-fi module.
  • the interface unit 11 may include an input interface unit and an output interface unit.
  • the input interface unit and the output interface unit may be integrated into one module or implemented as separate modules.
  • the display unit 12 includes a display panel capable of displaying an image on a screen.
  • the display panel is provided with a light-receiving structure such as a liquid crystal type or a self-luminous structure such as an OLED type.
  • the display unit 12 may further include additional components according to the structure of the display panel. For example, if the display panel is a liquid crystal type, the display unit 12 includes a liquid crystal display panel and a backlight unit for supplying light. and a panel driving substrate for driving the liquid crystal of the liquid crystal display panel.
  • the user input unit 13 includes various types of input interface related circuits provided to allow a user to manipulate the user in order to perform a user input.
  • the user input unit 13 can be configured in various forms depending on the type of the electronic device 1 , for example, a mechanical or electronic button, a touch pad, a sensor, a camera, and a display unit 12 of the electronic device 1 .
  • the storage unit 14 stores digitized data.
  • the storage unit 14 has a non-volatile property that can preserve data regardless of whether or not power is provided, and data to be processed by the processor 16 is loaded, and data is stored when power is not provided. This includes memory with volatile properties that cannot be used. Storage includes flash-memory, hard-disc drive (HDD), solid-state drive (SSD), read-only memory (ROM), etc., and memory includes buffer and random access memory (RAM). etc.
  • the storage unit 14 may store a plurality of engines 10a, 10b, 10c, ... and a plurality of applications executing them. The engine 10a, 10b, 10c, ... may be executed by driving the application stored in the storage unit 14 by the processor 16 .
  • One of the plurality of engines 10a, 10b, 10c, ... may be set as a default to analyze an intent for a received user's voice.
  • the storage unit 14 stores at least one intent selected from among a plurality of intents and first reference data 400 (shown in FIG. 4 ) in which the degree of association between the state information of the electronic device 1 and the engines is set to each engine. It may include second reference data (shown in FIG. 5) allocated to each, engine selection and recognition result execution history data (shown in FIG. 6) for user voice, and engine selection rule data.
  • the microphone 15 collects sounds of the external environment including the user's voice.
  • the microphone 15 transmits a voice signal of the collected sound to the processor 16 .
  • the processor 16 includes one or more hardware processors implemented as a CPU, a chipset, a buffer, a circuit, etc. mounted on a printed circuit board, and may be implemented as a system on chip (SOC) depending on a design method.
  • the processor 16 includes modules corresponding to various processes such as a demultiplexer, a decoder, a scaler, an audio digital signal processor (DSP), and an amplifier.
  • DSP digital signal processor
  • some or all of these modules may be included in the SOC.
  • a module related to image processing such as a demultiplexer, a decoder, and a scaler may be included in the image processing SOC
  • the audio DSP may be included in a chipset separate from the SOC.
  • the processor 16 may, for example, run the default engine 10a to analyze the intent for the received user voice.
  • the processor 16 selects an engine or engines suitable for the state of the electronic device 1 of the item related to the electronic device 1 among the plurality of engines 10a, 10b, 10c, ... 20A, 20B, 20C, ...
  • the user's voice may be selected, and the user's voice may be transmitted to the selected engine or engines for voice recognition.
  • the processor 16 may perform an operation such as executing a function of the electronic device 1, outputting the result, storing the result, or transmitting the result to an external device. .
  • the electronic device 1 may acquire the voice uttered by the user in various ways as follows.
  • the electronic device 1 may include a microphone 15 for collecting sound.
  • the voice signal of the user's voice collected through the microphone 15 is converted into a digital signal and transmitted to the processor 16 .
  • the electronic device 1 transmits the voice signal of the user's voice collected through the microphone 35 from the remote controller 3 to the interface unit ( 11) can also be used.
  • the remote controller 3 converts the voice signal of the user's voice collected through the microphone 35 into a digital signal, and transmits the digital signal to the interface unit 11 through the remote control communication unit 31 according to a receivable protocol.
  • a communication unit such as the remote control communication unit 31 and the mobile communication unit 41 may include, for example, a one-way or two-way communication circuit including at least one component such as a communication module, a communication chip, etc. It may be a communication interface.
  • the mobile device 4 may operate similarly to the remote controller 3 by installing and executing an application prepared for controlling the electronic device 1 .
  • the mobile device 4 converts the voice signal of the user's voice collected through the microphone 45 while the application is running into a digital signal, and transmits it to the interface unit 11 through the mobile communication unit 41 .
  • processor 16 selects at least one of the plurality of engines 10a, 10b, 10c, ... (20A, 20B, 20C, ...) to process the user's voice will be described. do.
  • FIG. 3 is a block diagram showing the configuration of the processor 16 of the electronic device 1 according to an embodiment of the present disclosure
  • FIG. 4 is first reference data showing an example of a list in which each intent of a user's voice is allocated for each engine. 400
  • FIG. 5 is second reference data 500 showing the relationship between the state of the items related to the electronic device 1 and the engines
  • FIG. 3 is reference data 600 .
  • the operation of selecting at least one of the plurality of engines 10a, 10b, 10c (20A, 20B, 20C, and 20D) to process the user's voice is performed by the processor 16 of the electronic device 1 .
  • the electronic device 1 and the server 2 may include a plurality or single on-device engines 10a, 10b, and 10c and server engines 20A, 20B, 20C, and 20D, respectively.
  • the processor 16 includes an intent analysis unit 161 , a state analysis unit 162 , an engine selection unit 163 , an engine-state correlation calculation unit 164 , an engine candidate group determination unit 165 , and a voice recognition unit. 166 , a function execution unit 167 , a relevance adjustment unit 168 , and a rule generation unit 169 .
  • the intent analyzer 161 analyzes the intent of the user's voice by executing, for example, the engine 10a set as a default.
  • the intent analysis of the user's voice may use, for example, a method using a support vector machine (SVM), a deep learning-based model, or a convolutional neural network model.
  • SVM support vector machine
  • a deep learning-based model or a convolutional neural network model.
  • the intent of the user's voice is a command or service request desired by the user, and includes, for example, at least one of channel control, power control, volume control, Q&A, weather search, shopping, music, or movie. can do.
  • the intent of the user's voice is not limited to the aforementioned intents.
  • Each of the engines 10a to 10c and 20A to 20D may provide at least one intent focused on each.
  • all of the on-device engines 10a to 10c may provide channel control, power control, and volume control intents.
  • the server engine 20A provides Q&A, weather search, and shopping intents
  • the server engine 20B provides weather search, shopping, and music intents
  • the server engine 20C provides Q&A, music, and movie intents.
  • a tent is provided
  • the server engine 20D may provide shopping, music, and movie intents.
  • the on-device engines 10a to 10c may enable function control of the electronic device 1
  • the server engines 20A to 20D may enable a user to provide a desired service.
  • the channel control, power control, and volume control intents are the first intent group related to the on-device engines 10a to 10c, and the Q&A, weather search, shopping, and movie intents are the server engine ( 20A to 20D) may be classified into a second intent group.
  • the intents provided by the engines 10a to 10c are not limited to three as shown in FIG. 4 , and may also overlap each other.
  • the state analyzer 162 illustrated in FIG. 3 may analyze the state of the electronic device 1 with respect to at least one item related to the electronic device 1 .
  • the items related to the electronic device 1 include, for example, at least one of a power state, a network state, an account login state, a voice speaker, a voice input path, a trigger presence, and an application state. Items related to the electronic device 1 are not limited to the above items.
  • the state of the electronic device 1 may be divided into, for example, power “OFF”, “standby”, and “ON” of the power state item, "online” and “offline” of the network state item, and account login It can be divided into “None” and “Present” of the status item, “Children”, “Female”, “Male”, and “Senior” of the speaker items of the voice, and “Remote Controller”, “ Microphone” and “External speaker”, “Trigger engine analysis intent selection YES”, “Trigger engine analysis intent selection NO”, “Non-trigger engine analysis intent selection” of the trigger (intent analysis engine) item It can be divided into “YES”, “non-trigger engine analysis intent selection NO”, and can be divided into “Web”, “OTT”, LiveTV”, “20C engine app”, and “other apps” of the app execution status item. .
  • the state of the electronic device 1 is not limited to the states described above.
  • the second reference data 500 shown in FIG. 5 indicates how relevant each of the plurality of engines is to at least one item associated with the electronic device 1 and states of the electronic device 1 belonging to each item.
  • the degree of relevance was set to 1.0 for the engine with the highest degree of relevance for each state, and 0.1 for the engine with the lowest degree of relevance.
  • this degree of relevance may be variously set to other criteria, for example, 1 to 100 or % as an example for explanation.
  • the plurality of engines may be classified into on-device engines 10a to 10c and server engines 20A to 20D in the electronic device 1 .
  • a power state, a network state, and an account login state among items related to the electronic device 1 are a first state group related to the on-device engines 10a to 10c, and include a voice speaker and a voice input.
  • a path, a trigger presence, and an application state may be classified into a second state group related to the server engines 20A to 20D.
  • the engine selection unit 163 determines whether the engine related to the intent of the user's voice and the state of the electronic device 1 is set as the engine selection rule based on the third reference data 600 of the rule DB of the storage unit 14 . Search.
  • the third reference data 600 is data in which voice recognition histories processed by a specific engine with respect to the intent of the user's voice and the states of the electronic device are repeatedly stored, and the same result is recorded more than a specific number of times. In this case, it is indicated that the engine selection rule is used.
  • the third reference data is the intent "channel control”, power status "ON”, network status "online”, account login status “none”, voice speaker “man”, voice input path “microphone”, trigger "trigger engine analysis in” Tent selection YES” or application state “LiveTV”, selection engine 10b, selection execution number 56 times, rule designation "YES” is included as the first history data.
  • the engine selection rule may be generated when the number of times the same engine is selected and processed for the same intent and state of the electronic device is repeated a predetermined number of times, for example, 50 or more.
  • the number of times of designating the engine selection rule is not limited to 50 times.
  • the electronic device 1 may generate the engine selection rule when the degree of relevance increased by relevance adjustment through the update of the processing result of the user's voice exceeds a predetermined value.
  • the third reference data 600 includes the intent "power control”, power state “OFF”, network state “ofline”, account login state “none”, voice speaker “female”, voice input path “microphone”, trigger "Trigger engine analysis intent selection YES", or application state “Other”, selection engine 10a, number of selection execution 28 times, and rule designation "NO” are recorded as the second history data.
  • the second history data may be designated as an engine selection rule when 22 times are added.
  • the third reference data 600 shown in FIG. 6 is an example for description and is not limited thereto.
  • the engine selector 163 may omit another procedure and directly select the engine 10b.
  • the engine selection unit 163 selects one of the on-device engines 10a to 10c or the server engines 20A to 20D using the first reference data 400 and/or the second reference data 500 of the reference data DB. choose
  • the engine-state correlation calculation unit 164 shown in FIG. 3 uses the second reference data 500 of the reference data DB to each of the on-device engines 10a to 10c or the server engines 20A to 20D. Calculate the engine relevance.
  • the engine-state relevance calculating unit 164 is a first state group for each of the on-device engines 10a to 10c, for example, when the user's voice is identified as relating to the on-device engines 10a to 10c. A degree of association may be calculated using the device state group.
  • the engine-state relevance calculation unit 164 identifies that the user voice relates to the server engines 20A to 20D
  • the second state group for each of the server engines 20A to 20D for example, a server A degree of association can be calculated using a state group.
  • the engine-state association calculation unit 164 may calculate the association by applying all state information without selectively applying the first state group and the second state group.
  • the engine candidate group determination unit 165 shown in FIG. 3 selects engines or engines having the highest relevance among the previously calculated relevance of each engine, and a predetermined number in the order of highest, or an engine or engines having relevance greater than or equal to a predetermined threshold. You can choose.
  • the voice recognition unit 166 shown in FIG. 3 transmits the user voice to the engine or engines selected by the engine candidate group determining unit 165 or selected by the engine selection rule to perform voice recognition.
  • the function execution unit 167 shown in FIG. 3 executes the selected engine or the recognition result of the engines, for example, executes the function of the electronic device 1, outputs the result, stores the result, or transmits the result to an external device. can transmit
  • the function execution unit 167 illustrated in FIG. 3 may store a history of the recognition processing result in the history DB.
  • the relevance adjusting unit 168 illustrated in FIG. 3 may adjust the weight to the relevance of the second reference data 500 of the reference data DB by reflecting the processing result based on the recognition result of the selection engine.
  • the relevance adjustment amount may be preset. In this case, the relevance adjustment may be set to be adjusted by receiving feedback from the user's satisfaction or to be adjusted when repeated execution a predetermined number of times.
  • the relevance adjusting unit 168 illustrated in FIG. 3 may adjust the degree of relevance of the second reference data 500 of the reference data DB to be subtracted when the selected engine rejects the user voice recognition because it fails to perform recognition.
  • the association reduction amount may be adjusted in a unit larger than the addition amount.
  • the rule generator 169 shown in FIG. 3 generates an intent-state-engine combination representing the same result repeated a predetermined number of times, for example 50 times, as shown in FIG. 6 based on the history data stored in the history DB. It can be created as a selection rule.
  • FIG. 7 is a flowchart illustrating a control method of the electronic device 1 according to the first embodiment of the present disclosure.
  • the following operation is performed by the processor 16 of the electronic device 1 .
  • the electronic device 1 includes on-device engines 10a to 10c and server engines 20A to 20D.
  • step S1 the electronic device 1 receives a user voice input.
  • step S2 the electronic device 1 analyzes the intent of the received user voice.
  • the intent analysis of the user's voice may be performed using a default engine provided inside or outside the electronic device 1 .
  • the default engine acquires the text of the user's voice, acquires one or more keywords constituting the corresponding text from the acquired text, and retrieves the intent matching one or more keywords from the intent DB to obtain the intent of the user's voice.
  • the intent DB may be a table in which various intents and at least one keyword are matched.
  • step S3 the electronic device 1 analyzes status information of items related to the electronic device 1 .
  • the items related to the electronic device 1 may include at least one of a power state, a network state, an account login state, a voice speaker, a voice input path, presence or absence of a trigger, and an application state, as shown in FIG. 5 .
  • step S4 the electronic device 1 checks whether there is an engine selection rule related to the analyzed intent and state information with reference to the third reference data 600 of FIG. 6 .
  • step S5 if it is confirmed that there is an engine selection rule, the electronic device 1 omits the steps for selecting an optimal engine and transmits the user's voice to the engine specified in the rule.
  • step S6 if it is confirmed that there is no engine selection rule, the electronic device 1 selects one of the on-device engines or the server engines.
  • an on-device engine or a server engine may be considered a subset of engines.
  • the electronics 1 may use different characteristics of the engines to select a different desired subset of engines.
  • a method of selecting one of the on-device engines or the server engines may be selected using the first reference data 400 of FIG. 4 or the second reference data 500 of FIG. 5 .
  • step S7 the electronic device 1 uses the second reference data 500 of FIG. 5 to correlate state information of an engine or engines belonging to a selected subset, for example, one of on-device engines and server engines. Calculate the sum of the figures.
  • step S8 the electronic device 1 selects an engine belonging to one of the on-device engine and the server engine or one or a plurality of engines having a high sum of state information relevance of the engines.
  • step S9 the electronic device 1 transmits the user's voice to the selected one or a plurality of engine(s).
  • step S10 the electronic device 1 receives a result recognized by the selected one or a plurality of engine(s).
  • step S11 the electronic device 1 executes the result recognized by the selected one or a plurality of engine(s).
  • the electronic device 1 may immediately execute the recognition result sent by one engine, and select and execute the result of the engine that is sent the earliest if the recognition results are sent by a plurality of engines.
  • the electronic device 1 displays a plurality of results to allow the user to select, or a preset rule, for example, history information or other A result can be selected and executed using the user's selection information.
  • step S12 the electronic device 1 receives the user's voice, selects an engine, and stores history information of executing the recognition result in the storage unit 14 .
  • the electronic device 1 may add or decrease a weight to the degree of relevance of state information for an engine that has been recognized and executed or has rejected recognition.
  • the electronic device 1 may generate an engine selection rule set as the intent-state information-engine based on the accumulated history information a predetermined number of times.
  • the electronic device 1 selects one of the on-device engine and the server engine suitable for the intent of the user's voice and/or the state of the electronic device 1, and selects engines belonging to the selected one of the on-device engine and the server engine. For each, a sum of associations between states of the electronic device may be calculated, and an engine having a high sum of associations may be selected to perform recognition.
  • the electronic device 1 omits a complicated selection process by accumulating repeated engine selection history data using status information, and generates a rule that allows an engine to be selected immediately if the intent of the user's voice and the status information of the electronic device are known. The user's voice can be recognized quickly and accurately.
  • the electronic device 1 selects an engine that does not fit the situation, for example, selects a server-side engine to recognize a user voice of a power control command in a power-off and network offline state. It can solve the problem of performing recognition.
  • the electronic device 1 is an engine that quickly recognizes a plurality of engines having the same or similar relevance value, an engine selected by a user, an engine selected from previous history information, an engine selected by another user, etc. You can select the optimal engine by referring to.
  • the electronic device 1 reflects experiences such as engine selection using the intent of the user's voice and/or state information of the electronic device 1, successful processing results, unsuccessful processing results, recognition rejection results, etc. Accordingly, the degree of relevance of FIG. 5 can be adjusted.
  • the processor 16 of the electronic device 1 obtains the intent of the user's voice as described above, and provides predefined information about a degree of association between a plurality of engines and the state of the electronic device 1 . Based on the rule, at least a part of data analysis, processing, and result information generation for identifying an engine having a high degree of relevance to a state, and performing an operation to perform voice recognition on the user's voice based on the identified engine
  • a base or artificial intelligence (Artificial Intelligence) algorithm it may be performed using at least one of machine learning, a neural network, or a deep learning algorithm.
  • the processor of the electronic device may perform the functions of the learning unit and the recognition unit together.
  • the learning unit may perform a function of generating a learned neural network
  • the recognition unit may perform a function of recognizing (or inferring, predicting, estimating, determining) data using the learned neural network.
  • the learning unit may create or update the neural network.
  • the learning unit may acquire learning data to generate a neural network.
  • the learning unit may acquire learning data from a storage unit of the electronic device or from the outside.
  • the learning data may be data used for learning of the neural network, and the neural network may be trained by using the data obtained by performing the above-described operation as learning data.
  • the learning unit may perform a preprocessing operation on the acquired training data before training the neural network using the training data, or may select data to be used for learning from among a plurality of training data. For example, the learning unit may process the learning data in a preset format, filter it, or add/remove noise to process the learning data into a form suitable for learning. The learner may generate a neural network set to perform the above-described operation by using the preprocessed learning data.
  • the learned neural network network may be composed of a plurality of neural network networks (or layers). Nodes of the plurality of neural networks have weights, and the plurality of neural networks may be connected to each other so that an output value of one neural network is used as an input value of another neural network.
  • Examples of neural networks include Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN) and It can include models such as Deep Q-Networks.
  • the recognizer may acquire target data to perform the above-described operation.
  • the target data may be obtained from a storage unit of the electronic device or from the outside.
  • the target data may be data to be recognized by the neural network.
  • the recognizer may perform preprocessing on the acquired target data before applying the target data to the learned neural network, or select data to be used for recognition from among a plurality of target data.
  • the recognition unit may process the target data into a preset format, filter, or add/remove noise to process the target data into a form suitable for recognition.
  • the recognizer may obtain an output value output from the neural network by applying the preprocessed target data to the neural network.
  • the recognition unit may obtain a probability value or a reliability value together with the output value.
  • the electronic device 1 analyzes the intent and the state of the electronic device 1 from the user's voice, compares the total of the associations related to the state of the electronic device 1 in units of engines, and the engine with the highest total An example of finally selecting was described.
  • the method for the electronic device 1 to select one engine based on the total association degree is not limited to only comparing the total association degree, and various methods may be applied.
  • the degree of relevance of the state of the electronic device 1 analyzed for each engine is given a degree of relevance, and each degree of relevance is simply summed up.
  • FIG 8 is a diagram illustrating a first example in which the electronic device 1 selects an engine using the first reference data 400 and the second reference data 500 .
  • the default engine may acquire the intent of "weather search” based on the words “weather” and “how is it”.
  • the electronic device 1 has its own state at the time of receiving the user's voice, for example, power-ON, network-online, account login-no, voice speaker-man, voice path-microphone, trigger-not You can check engine analysis intent selection YES, running app-LiveTV.
  • voice for example, power-ON, network-online, account login-no, voice speaker-man, voice path-microphone, trigger-not You can check engine analysis intent selection YES, running app-LiveTV.
  • server engines 20A to 20D can be selected.
  • the electronic device 1 is a server engine for the state information "Speaker-man, voice path-microphone, trigger-non-trigger engine analysis intent selection YES, running app-LiveTV" corresponding to the second state group of FIG. 20A-20D) The sum total of each degree of association can be calculated.
  • the sum of relevance of each of the server engines 20A to 20D is 2.0, 2.5, 1.7, and 1.6. Accordingly, the electronic device 1 selects the engine 20B having a total association degree of 2.5.
  • the electronic device 1 analyzes the intent and the state of the electronic device 1 , selects an on-device engine or a server engine based on the intent, and selects the selected engines. By calculating the sum of the state information and the degree of relevance, an engine having the largest sum of relevance may be finally selected to recognize the user's voice.
  • FIG. 9 is an exemplary diagram illustrating a second example in which the electronic device 1 selects an engine using the first reference data 400 and the second reference data 500 .
  • the default engine may acquire the intent of "channel control” based on the words “relay broadcast” and "show me”.
  • the electronic device 1 has its own state at the time of receiving the user's voice, for example, power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine analysis in You can check the tent selection YES, running app-LiveTV.
  • voice for example, power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine analysis in You can check the tent selection YES, running app-LiveTV.
  • the electronic device 1 includes the on-device engines 10a to 10c and the server engines 20A to 20D for the items "power state”, "network state", and "account login state” in the second reference data 500 of FIG. 5 . ) is multiplied by the whole of each degree of association.
  • the relevance multiplier value of the on-device engines (10a-10c) is 0.7 (1*1*1*1*0.7*1*1*1)
  • the relevance multiplier value of the server engines (20A-20D) is 0.001 (1*1*1*1*1*1*1*0.1*0.1*0.1*0.1).
  • the relevance calculation includes the items “power status”, “network status”, and “account login status” as well as the relevance of the items “speaker of voice”, “voice path”, “trigger”, and “app execution status” can be applied
  • selection of one of the device engine and the server engine may be determined based on association summation instead of association multiplication.
  • the electronic device 1 selects the on-device engines 10a to 10c having a higher calculation relevance multiplication value.
  • the electronic device 1 uses the first reference data 400 of FIG. 4 , the engine 10a, the engine 10b, and the engine 10c related to the intent “channel control” among the on-device engines 10a to 10c. select If only the engine 10a among the on-device engines 10a to 10c is related to the intent "channel control", only the engine 10a may be selected.
  • the electronic device 1 selects the engine 10a, engine 10b, engine ( 10c) can be calculated.
  • the engine 10a, the engine 10b, and the engine 10c each have a total of 3.0, 2.7, and 3.0 degrees of association. Accordingly, the electronic device 1 selects the engine 10a and the engine 10c having a sum of relevance of 3.0.
  • the electronic device 1 transmits a user's voice to all of the plurality of engines to perform voice recognition, allows the user to select, or selects history information or another user.
  • the information can be used to select only one engine.
  • the electronic device 1 analyzes the intent and the state of the electronic device 1, selects an on-device engine or a server engine based on the second reference data 500,
  • the user voice may be recognized by selecting an engine belonging to the intent of the user's voice, calculating the sum of relevance for each of the selected engines, and finally selecting an engine having the largest sum of relevance.
  • FIG. 10 is an exemplary diagram illustrating a third example in which the electronic device 1 selects an engine using the first reference data 400 and the second reference data 500 .
  • the default engine may acquire the intent of "weather search” based on the words “weather” and “how is it”.
  • the electronic device 1 analyzes its own state at the time of receiving the user's voice, for example, "power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine” Intent selection YES, running app-Web” can be checked.
  • the electronic device 1 may select the engine 20A and the engine 20B to which the "weather search" intent belongs from the first reference data 400 of FIG. 4 .
  • the electronic device 1 is an engine for "Power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine analysis intent selection YES, execution app-Web" of FIG. 5 (20A), it is possible to calculate the sum of the relevance of each of the engines (20B).
  • the engine 20A and the engine 20B each have a total of 5.4 and 4.7 degrees of association. Accordingly, the electronic device 1 selects the engine 20A having a total association degree of 5.4.
  • the electronic device 1 analyzes the intent and the status of the electronic device 1 , selects an engine related to the intent, and sums the status information and relevance for the selected engines. By calculating , an engine having the largest sum of relevance may be finally selected to recognize the user's voice.
  • 11 is an exemplary diagram illustrating an example in which the electronic device 1 selects an engine using the third reference data 600 .
  • the default engine may acquire the intent of "channel control” based on the words “relay broadcast” and "show me”.
  • the electronic device 1 analyzes its own state at the time of receiving the user's voice, for example, "power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine” Intent selection YES, running app-LiveTV” can be checked.
  • the electronic device 1 analyzes the channel control intent and “power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-trigger engine in the third reference data 600 of FIG. 6 .
  • Intent selection YES check the engine (10b) specified as a rule for "run app-LiveTV”.
  • the electronic device 1 selects the engine 10b designated by the rule and transmits the user's voice to perform recognition.
  • the electronic device 1 analyzes the intent and the state of the electronic device 1 , and if there is an engine designated as a rule in the third reference data 600 , the electronic device 1 directly selects the corresponding engine and selects the user It can recognize voice.
  • FIG. 12 is an exemplary diagram illustrating a first example in which the electronic device 1 selects one of a plurality of engines having the same or similar relevance.
  • the electronic device 1 shows the states “speaker of voice” and “voice path” of the electronic device 1 among the server engines 20A to 20D.
  • the engine 20B, the engine 20A, and the engine 20C are selected in the order of the highest total of years related to ", "trigger", and app execution state.
  • the electronic device 1 transmits the user's voice to the engine 20B, engine 20A, and engine 20C to perform recognition. Thereafter, the engine 20B delivered the recognition result after 3 seconds, the engine 20A after 5 seconds, and the engine 20C after 10 seconds.
  • the electronic device 1 executes the recognition result of the engine 20B that is transmitted the earliest.
  • the electronic device 1 may select a plurality of engines in an order with the same or higher correlation sum and simultaneously transmit the user voice, then select and execute only the recognition result of the engine that has been delivered the fastest.
  • 13 is an exemplary diagram illustrating a second example in which the electronic device 1 selects one of a plurality of engines having the same or similar relevance.
  • the electronic device 1 shows the states “power state” and “network state” of the electronic device 1 among the on-device engines 10a to 10c.
  • the engines 10a and 10c are selected in the order of the highest total of years related to ", "account login status".
  • the electronic device 1 transmits the user's voice to the engine 10a and the engine 10c to perform recognition.
  • the electronic device 1 receives the recognition results "channel A” and “channel B” from the engine 10a and the engine 10c, respectively, and provides a user selection UI to the display unit 12 . If the recognition result of the engine 10a and the engine 10c is the same, as in FIG. 12 , the recognition result of the engine that arrived earlier may be executed.
  • the electronic device 1 sets the channel to channel B when the user selects the engine 10c in the user selection UI.
  • the electronic device 1 selects a plurality of engines in an order with the same or high correlation sum, and when the recognition results received after simultaneously transmitting the user's voice are different, it is possible to execute the recognition results of the engines through the user's selection. have.
  • FIG. 14 is an exemplary diagram illustrating a third example in which the electronic device 1 selects one of a plurality of engines having the same or similar relevance.
  • the electronic device 1 shows the states “power state” and “network state” of the electronic device 1 among the on-device engines 10a to 10c.
  • the engines 10a and 10c are selected in the order of the highest total of years related to ", "account login status".
  • Electronic device 1 selects intent “channel control” and status information "power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-non-trigger engine analysis intent YES, Analyze the recognition history for "Running App-LiveTV”.
  • the electronic device 1 selects the engine 10c that has been recognized for the above-described intent of the user's voice and the state information of the electronic device 1 from the history data of FIG. 14, and then transmits the user's voice to perform recognition. do.
  • the history data is a table in which the intent of the user's voice and the history of successful recognition processing by selecting an engine suitable for the state of the electronic device 1, the history of unsuccessful recognition processing, the history of refusal of recognition, and the like are matched.
  • the history data may be used as data for selecting one of a plurality of engines having the same or similar degree of relevance or as data for generating the engine selection rule described above.
  • the electronic device 1 executes the result recognized by the engine 10c.
  • the electronic device 1 may select a plurality of engines in an order in which the sum of relevance is the same or higher, analyze previous histories for intent and state information, and execute a recognition result of a previously applied engine.
  • 15 is an exemplary diagram illustrating a fourth example in which the electronic device 1 selects one of a plurality of engines having the same or similar relevance.
  • the electronic device 1 shows the states “power state” and “network state” of the electronic device 1 among the on-device engines 10a to 10c.
  • the engines 10a and 10c are selected in the order of the highest total of years related to ", "account login status".
  • Electronic device 1 selects intent “channel control” and status information "power-ON, network-online, account login-no, speaker-man, voice path-microphone, trigger-non-trigger engine analysis intent YES, Analyze the recognition history for "Running App-LiveTV”.
  • the electronic device 1 checks the usage history of other users.
  • the electronic device 1 outputs the recognition histories of users B and C for the same intent and state information so that the user selects them.
  • the user may select the engine 10c for "channel B" as a result of user B's recognition.
  • the electronic device 1 transmits the user's voice to the engine 10c selected by the user.
  • the electronic device 1 executes the result recognized by the engine 10c.
  • the electronic device 1 selects a plurality of engines in the order of the same or higher sum of relevance, and selects a suitable engine by referring to the previous histories of intent and state information as well as the recognition histories of other users. have.
  • 16 is an exemplary diagram illustrating a fifth example in which the electronic device 1 selects one of a plurality of engines having the same or similar relevance.
  • the electronic device 1 has states “power state”, “network state”, “ The engine 10a and the engine 10c are selected in the order of the highest total of the year related to "account login status".
  • the second reference data 500 may include a selection priority for each of the on-device engines 10a to 10c preset by the user.
  • the electronic device 1 transmits the user's voice to the engine 10a and the engine 10c to perform recognition.
  • the electronic device 1 When receiving the same recognition result "channel A" from the engine 10a and the engine 10c, the electronic device 1 refers to the user-set priority of the second reference data 500 and selects the engine 10c with a higher priority. You can select the recognition result.
  • the electronic device 1 When the electronic device 1 selects the engine 10c of the user set priority, the electronic device 1 sets the channel to the channel A.
  • the electronic device 1 selects one engine 10c having the highest user-set priority instead of selecting two engines 10a and 10c having the same total year and year. may be
  • the electronic device 1 may select an engine according to a priority set by the user and execute the recognition result.
  • 17 is an exemplary diagram illustrating the result of the electronic device 1 reflecting the processing result of the user's voice and updating the result.
  • the electronic device 1 stores the recognition result of the engine 20B based on the intent and the state information as history data.
  • Recognition result is status information "Power-ON, Network-online, Account login-None, Speaker-Man, Voice path-Microphone, Trigger-non-trigger engine analysis intent selection YES, Executable app-LiveTV", Recognition engine ( 20B), user A, intent "weather search”, recognition result “cloudy”.
  • the electronic device 1 reflects the result of processing based on the recognition of the selected engine 20B, and adds the degree of association of state information related to the engine 20B of the second reference data 500 of FIG. 5 by 0.1.
  • the relevance adjustment amount is not limited to 0.1. If the relevance adjustment amount is too large, an inappropriate engine may be selected, and if it is too small, the effect of the adjustment may be insignificant, so it is necessary to set it appropriately.
  • the relevance adjustment can be set to be adjusted only when the user's satisfaction is fed back or the process is repeated a predetermined number of times.
  • the electronic device 1 may improve the processing time for selecting an appropriate engine and the accuracy of selection by adjusting the degree of relevance of the engine related to the state by reflecting the recognition and execution processing results for the user's voice.
  • FIG. 18 is an exemplary diagram illustrating an updated result by reflecting a result of refusing recognition of a user's voice by the electronic device 1 .
  • the electronic device 1 shows the intent "weather search” and the status information "voice speaker-man, voice path-microphone, trigger-non-trigger engine analysis intent selection YES, execution app-LiveTV” in the second of FIG.
  • the user voice is transmitted to the engine 20A, the engine 20B, and the engine 20C selected based on the reference data 500 .
  • the electronic device 1 receives recognition results from the engine 20A and engine 20C after 3 seconds and 10 seconds, respectively, and is rejected from the engine 20B.
  • the electronic device 1 executes the recognition result of the engine 20A.
  • the electronic device 1 reflects the result of processing based on the recognition of the selected engine 20A, and adds the degree of association of state information related to the engine 20A in the second reference data 500 of FIG. 5 by 0.1.
  • the electronic device 1 subtracts the relevance of the state information related to the engine 20B of the second reference data 500 of FIG. 5 by 0.5 by reflecting the rejection result of the selected engine 20B.
  • the rejected engine 20B will not be re-selected for the same intent and state information as the relevance is greatly reduced.
  • the electronic device 1 can prevent an inappropriate engine from being selected by reducing the relevance of the engine for which recognition of the user's voice is rejected.
  • FIG. 19 is a flowchart illustrating a control method of the electronic device 1 according to a second exemplary embodiment of the present disclosure. The following operation is performed by the processor 16 of the electronic device 1 . Unlike the first embodiment of FIG. 7 , the second embodiment shown in FIG. 19 does not pre-identify the on-device engine and the server engine, and selects an optimal engine using status information of the electronic device 1 .
  • step S21 the electronic device 1 receives a user voice.
  • the electronic device 1 analyzes status information of items related to the electronic device 1 .
  • the items related to the electronic device 1 may include at least one of a power state, a network state, an account login state, a voice speaker, a voice input path, presence or absence of a trigger, and an application state, as shown in FIG. 5 .
  • step S23 the electronic device 1 calculates the sum of the degree of association with the state information of the engines using the second reference data 500 of FIG. 5 .
  • step S24 the electronic device 1 selects one or a plurality of engine(s) having a high sum of state information relevance of each engine.
  • step S25 the electronic device 1 transmits the user voice to the selected one or a plurality of engine(s).
  • step S26 the electronic device 1 receives a result recognized by the selected one or a plurality of engine(s).
  • step S27 the electronic device 1 executes the result recognized by the selected one or a plurality of engine(s).
  • the electronic device 1 may immediately execute the recognition result sent by one engine, and select and execute the result of the engine that is sent the earliest if the recognition results are sent by a plurality of engines.
  • FIG. 20 is an exemplary diagram illustrating an example in which the electronic device 1 selects a recognition engine for a user's voice according to a second embodiment of the present disclosure.
  • the electronic device 1 provides status information at the time of receiving the user's voice, for example, "Power-ON, Network-online, Account Login-No, Speaker-Man, Voice path-Microphone, Trigger-Trigger engine analysis in You can get “tent selection YES, running app-LiveTV”.
  • the electronic device 1 calculates the total association degree for each of the engines 10a to 10c and the engines 20A to 20D with reference to the second reference data 500 of FIG. 5 .
  • the sum of the degrees of association of each of the engines 10a to 10c and the engines 20A to 20D is 5.6, 5.3, 5.6, 4.1, 4.6, 3.8, and 3.7, respectively.
  • the electronic device 1 selects the engine 10a and the engine 10c having a total association degree of 5.6.
  • the electronic device 1 analyzes the state of the electronic device 1 and calculates the total state-related relevance for each of the engines based on this.
  • the engine can be finally selected to recognize the user's voice.
  • FIG. 21 is a flowchart illustrating a control method of the electronic device 1 according to a third embodiment of the present disclosure. The following operation is performed by the processor 16 of the electronic device 1 . Unlike the second embodiment of FIG. 19 , the third embodiment shown in FIG. 21 selects an optimal engine by using the intent of the user's voice in addition to the state information of the electronic device 1 .
  • step S31 the electronic device 1 receives a user voice.
  • step S32 the electronic device 1 analyzes the intent of the received user voice.
  • the intent analysis of the user's voice is performed using a default engine provided in or outside the electronic device 1 .
  • step S33 the electronic device 1 analyzes status information of items related to the electronic device 1 .
  • the items related to the electronic device 1 may include at least one of a power state, a network state, an account login state, a voice speaker, a voice input path, presence or absence of a trigger, and an application state, as shown in FIG. 5 .
  • step S34 the electronic device 1 selects engines corresponding to the intent using the first reference data 400 of FIG. 4 , and then uses the second reference data of FIG. 5 for the selected engines to provide state information Calculate the sum of relevance.
  • step S35 the electronic device 1 selects one or a plurality of engine(s) having a high sum of state information relevance of each engine.
  • step S36 the electronic device 1 transmits the user voice to the selected one or a plurality of engine(s).
  • step S37 the electronic device 1 receives a result recognized by the selected one or a plurality of engine(s).
  • step S38 the electronic device 1 executes the result recognized by the selected one or a plurality of engine(s).
  • FIG. 22 is an exemplary diagram illustrating a process in which the electronic device 1 selects a recognition engine for a user's voice according to a third embodiment of the present disclosure.
  • the electronic device 1 provides status information at the time of receiving the "weather search" intent and the user's voice, for example, “power-ON, network-online, account login-no, voice speaker-man, voice path-microphone, You can get “trigger-not trigger, engine analysis intent selection YES, running app-LiveTV”.
  • the electronic device 1 selects the engine 20A and the engine 20B corresponding to the intent "weather search" with reference to the first reference data 400 of FIG. 4 .
  • the electronic device 1 calculates the total association degree for each of the engine 20A and the engine 20B by using the second reference data 500 of FIG. 5 .
  • the electronic device 1 selects the engine 20B having a total association degree of 4.6.
  • the electronic device 1 analyzes the intent of the user voice and the state of the electronic device 1 , selects engines corresponding to the intent, and sums the state-related associations for each. By calculating , an engine having the largest sum of relevance may be finally selected to recognize the user's voice.
  • FIG. 23 is a flowchart illustrating a control method of the electronic device 1 according to a fourth embodiment of the present disclosure. The following operation is performed by the processor 16 of the electronic device 1 .
  • the fourth embodiment shown in FIG. 23 selects an optimal engine based on a difference in correlation between a plurality of engines, unlike the previous embodiments.
  • step S41 the electronic device 1 receives a user voice.
  • step S42 the electronic device 1 analyzes the intent of the received user voice.
  • the intent analysis of the user's voice is performed using a default engine provided in or outside the electronic device 1 .
  • the electronic device 1 analyzes status information of items related to the electronic device 1 .
  • the items related to the electronic device 1 may include at least one of a power state, a network state, an account login state, a voice speaker, a voice input path, presence or absence of a trigger, and an application state, as shown in FIG. 5 .
  • step S44 the electronic device 1 selects engines corresponding to the intent using the first reference data 400 of FIG. 4 , and then uses the second reference data 500 of FIG. 5 for the selected engines. to calculate the total of the state information relevance.
  • step S45 the electronic device 1 selects a plurality of engines having a high sum of state information relevance of each engine.
  • step S46 the electronic device 1 calculates a difference between the sum total of the greatest relevance for the selected plurality of engines and the sum total of the remaining relevance levels, and checks whether the difference is greater than or equal to a threshold value.
  • step S47 if the difference in the sum of relevance is greater than or equal to the threshold, the user's voice is transmitted to the engine having the highest sum of relevance.
  • step S48 the electronic device 1 receives a result recognized by the selected engine.
  • step S49 the electronic device 1 executes the result recognized by the selected engine.
  • step S50 if the difference in the sum of relevance in step S46 is less than the threshold, the user's voice is transmitted to all engines within the threshold range.
  • step S51 the electronic device 1 receives the results recognized by the plurality of selected engines, selects the engine providing the fastest result, and then executes the recognized results.
  • the electronic device 1 independently selects, and if there are a plurality of engines having a similar sum of relevance, selects all of them, and then selects only one according to the result can run
  • 24 is a block diagram showing the configuration of the processor 16 of the electronic device 1 according to the fifth embodiment of the present disclosure.
  • One of the status information of the electronic device 1 includes whether the "voice speaker" for the user's voice is a child, a man, a woman, or an elderly person.
  • a rather complicated process may be used to analyze who the speaker of the user's voice is. Accordingly, it may be desirable for the electronic device 1 to perform speaker recognition through a separate processing process using a separate user voice feature extraction unit 171 and a speaker recognition unit 172 .
  • Intent analyzer 161 state analyzer 162 , engine selector 163 , engine-state correlation calculator 164 , engine candidate group determiner 165 , voice recognition unit 166 , and Since the function execution unit 167 has been described with reference to FIG. 3 , a description thereof will be omitted.
  • the user voice feature extraction unit 171 may convert the user voice into text and extract voice features for each word of the text.
  • the characteristics of the voice may include a tone, a tone of sound, and the like.
  • the speaker recognition unit 172 compares the standard voice feature of the voice feature DB with the voice feature of the user's voice to identify whether the speaker is a child, a man, a woman, or an elderly person.
  • the voice feature DB includes reference voice feature data that stores differentiated tones and tones for children, men, women, and the elderly.
  • 25 is a block diagram illustrating the configuration of the processor 16 of the electronic device 1 according to the sixth embodiment of the present disclosure.
  • the electronic device 1 does not analyze who the speaker of the user's voice is in the electronic device 1 itself, but uses the user voice feature extracting unit 271 of the server 2 and speaker recognition
  • the unit 272 performs speaker recognition.
  • the server 2 By using the server 2 to perform such complicated and time-consuming speaker recognition, the load on the electronic device 1 is reduced, and a relatively fast speaker recognition process is possible.
  • 26 is a block diagram illustrating the configuration of the processor 16 of the electronic device 1 according to the seventh embodiment of the present disclosure.
  • the electronic device 1 of the fifth and sixth embodiments analyzed whether the "voice speaker" for the user's voice was a child, a man, a woman, or an elderly person as state information.
  • a limited use environment for example, a home in which a user is specified, it is possible to further differentiate the relevance of each engine by analyzing who the user is rather than identifying the speaker as a child, a man, a woman, or an elderly person. .
  • the electronic device 1 specifically identifies who the user is by using the user voice feature extraction unit 171 and the user recognition unit 173 .
  • specifying the specific speaker of the user's voice may be more complicated and time-consuming, it cannot be utilized in the process of selecting an optimal engine using the state information of the electronic device 1, and The total may be used as information for selecting one of a plurality of identical or similar engines, or may be used later after being recorded in stored history information.
  • 27 is a block diagram illustrating an example in which the electronic device 1 acquires reference data.
  • the electronic device 1 is connected to a network so as to be able to communicate with the server 2 .
  • the server 2 communicates with a plurality of clients 5 .
  • the electronic device 1 is also one of the plurality of clients 5 , but only differently designated terms for mutual distinction.
  • the electronic device 1 may generate reference data by accumulating usage histories from the beginning. However, in this case, it is necessary to accumulate the usage history until a certain amount of data is secured to ensure the reliability of the reference data.
  • the electronic device 1 may be released as a product in a state in which reference data having an initial value is stored in the storage unit 14 of the electronic device 1 in the manufacturing stage.
  • the electronic device 1 may receive reference data from the server 2 , and update and update the reference data by additionally reflecting a usage history in an initial value of the received reference data. It is also possible for the server 2 to provide the stored reference data in one direction only to the electronic device 1 . In embodiments, it is also possible for the server 2 to receive information about the update of the reference data as feedback from the electronic device 1 and to update the previously stored reference data.
  • the server 2 collects information about reference data stored by each client 5 from a plurality of clients 5 communicatively connected to the electronic device 1 in the same manner.
  • Each client 5 can individually store reference data, and update reference data it has individually based on its own usage history.
  • Each client 5 provides the server 2 with current information of the reference data, either periodically or in response to a request from the server 2 .
  • the server 2 creates or updates reference data based on the information of the reference data obtained from each client 5 .
  • Various design methods may be applied to a method of generating or updating reference data.
  • the server 2 provides the reference data constructed in this way to the electronic device 1 in response to a request from the electronic device 1 or in response to detecting that the electronic device 1 is connected to the server 2 . can do.
  • the server 2 may acquire and reflect updated information of the reference data from the electronic device 1 in the same manner as in the case of the client 5 above.
  • Artificial intelligence can be applied to various systems by using machine learning algorithms.
  • An artificial intelligence system is a computer system that implements human-level or human-level intelligence. It is a system in which a machine, device, or system autonomously learns and makes decisions, and the recognition rate and judgment accuracy are improved based on the accumulation of use experience.
  • Artificial intelligence technology consists of element technologies that simulate functions such as cognition and judgment of the human brain by using machine learning technology and algorithms that classify and learn the characteristics of input data by themselves.
  • the element technologies are, for example, linguistic understanding technology that recognizes human language and characters, visual understanding technology that recognizes objects as if they were human eyes, reasoning and prediction technology that logically infers and predicts information by judging information, and human experience It includes at least one of a knowledge expression technology that processes information as knowledge data, and a motion control technology that controls autonomous driving of a vehicle or movement of a robot.
  • linguistic understanding is a technology for recognizing and applying human language or text, and includes natural language processing, machine translation, dialogue system, question answering, voice recognition and synthesis, and the like.
  • Inferential prediction is a technology for logically predicting information by judging it, and includes knowledge and probability-based reasoning, optimization prediction, preference-based planning, recommendation, and the like.
  • Knowledge representation is a technology for automatically processing human experience information into knowledge data, and includes knowledge construction such as data generation and classification, and knowledge management such as data utilization.
  • Methods according to an exemplary embodiment of the present disclosure may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • These computer-readable media may include program instructions, data files, data structures, etc. alone or in combination.
  • a computer-readable medium whether removable or rewritable, may be a non-volatile storage device, such as a USB memory device, or memory, such as, for example, RAM, ROM, flash memory, memory chips, integrated circuits, or
  • it may be stored in a storage medium that is optically or magnetically recordable, such as a CD, DVD, magnetic disk, or magnetic tape, and is also readable by a machine (eg, a computer).
  • the memory that may be included in the mobile terminal is an example of a machine-readable storage medium suitable for storing a program or programs including instructions for implementing embodiments of the present disclosure.
  • the program instructions recorded in the present storage medium may be specially designed and configured for the present disclosure, or may be known and available to those skilled in the art of computer software.
  • the computer program instructions may be implemented by a computer program product.

Landscapes

  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Game Theory and Decision Science (AREA)
  • Artificial Intelligence (AREA)
  • Telephonic Communication Services (AREA)
  • Navigation (AREA)

Abstract

전자장치는 사용자음성 입력을 수신하고, 상기 전자장치와 연관된 적어도 하나의 항목에 대응하는 상기 전자장치의 상태를 식별하고, 복수의 음성인식엔진과 복수의 상태 간의 복수의 연관도에 기초하여, 상기 복수의 음성인식엔진 중에서 상기 식별된 상태에 대응하는 하나의 음성인식엔진을 선택하고, 상기 선택된 음성인식엔진에 기초하여 상기 사용자음성 입력에 대응하는 동작을 수행하도록 제어하는 프로세서를 포함한다.

Description

전자장치 및 그의 제어방법
본 출원은 2020년 12월 10일자로 대한민국특허청에 제출된 대한민국특허출원 10-2020-0172604호에 기초한 우선권을 주장하며, 그 개시 내용은 전체가 참조로 본 개시에 포함된다.
본 개시는 사용자음성 음성을 인식할 수 있게 하는 전자장치와 그의 제어방법에 관한 것이다.
음성인식을 기능을 가진 전자장치는 사용자음성 음성을 마이크로폰을 통해 수신하고, 수신된 사용자음성 음성을 서버의 음성인식엔진에 전달하여 인식을 수행할 수 있다. 이때, 음성인식엔진은 사용자음성을 인식한 결과를 전자장치로 전달하고, 전자장치는 인식 결과를 실행한다.
그러나, 서버의 음성인식엔진은 전자장치의 상태에 따라, 예를 들면 전원 오프 상태 또는 네트워크가 연결되지 않은 상태에서 사용자음성이 전달될 수 없어 음성인식을 수행하지 못하는 문제가 발생할 수 있다.
또한, 전원제어, 채널제어, 볼륨제어 등과 같이 전자장치의 기능을 제어하는 사용자음성 명령은 전자장치 내에 마련된 온디바이스 음성인식엔진에 의해 처리하는 것이 더 효율적이나, 서버 음성인식엔진이 선택되어 음성인식이 비효율적으로 처리되는 문제가 발생할 수 있다.
본 개시는, 상술한 종래의 문제를 해결하기 위한 것으로, 전자장치의 상태를 반영하여 효율적으로 음성인식을 수행하도록 하는 전자장치와 그의 제어방법을 제공한다.
상기 과제를 달성하기 위한 일 양상에 따른 전자장치가 제공된다. 전자장치는, 사용자음성 입력을 수신하고, 상기 전자장치와 연관된 적어도 하나의 항목에 대응하는 상기 전자장치의 상태를 식별하고, 복수의 음성인식엔진과 복수의 상태 간의 복수의 연관도에 기초하여, 상기 복수의 음성인식엔진 중에서 상기 식별된 상태에 대응하는 하나의 음성인식엔진을 선택하고, 상기 선택된 음성인식엔진에 기초하여 상기 사용자음성 입력에 대응하는 동작을 수행하도록 제어하는 프로세서를 포함한다.
상기 복수의 음성인식엔진은 상기 전자장치 내에 포함된 온디바이스 음성인식엔진과 서버에 마련된 서버 음성인식엔진을 포함하며, 상기 프로세서는, 상기 온디바이스 음성인식엔진 또는 상기 서버 음성인식엔진을 선택하도록 제어할 수 있다.
상기 프로세서는 복수의 인텐트 중에서 상기 수신되는 사용자음성 입력에 대응하는 인텐트를 식별하고, 상기 복수의 음성인식엔진과 상기 복수의 인텐트 간의 관계에 기초하여, 상기 음성인식엔진을 선택하도록 제어할 수 있다.
상기 복수의 음성인식엔진 중 하나는 상기 사용자음성 입력의 인텐트를 분석하는 디폴트 음성인식엔진을 포함할 수 있다.
상기 복수의 인텐트 중 적어도 하나의 인텐트를 상기 복수의 음성인식엔진에 할당한 제1참조데이터가 저장된 저장부를 더 포함할 수 있다.
상기 저장부는 상기 복수의 음성인식엔진과 상기 복수의 상태 사이의 연관도와, 상기 복수의 음성인식엔진과 상기 복수의 인텐트 사이의 연관도 사이의 연관도들 중 적어도 하나를 포함하는 제2참조데이터를 저장할 수 있다.
상기 프로세서는 상기 사용자음성 입력의 인텐트와 연관된 각 음성인식엔진에 대한 연관도를 산출하도록 제어할 수 있다.
상기 프로세서는 상기 사용자음성 입력의 인식결과에 기초하여 상기 복수의 음성인식엔진과 상기 복수의 상태 사이의 연관도와, 상기 복수의 음성인식엔진과 상기 복수의 인텐트 사이의 연관도 사이의 연관도들 중 적어도 하나가 조정되도록 제어할 수 있다.
상기 프로세서는 상기 사용자음성 입력의 인식결과에 대응하는 이력정보에 관한 데이터를 저장하도록 상기 저장부를 제어하고, 상기 이력정보를 기초로 동일한 연관도를 가진 복수의 음성인식엔진 중에서 상기 음성인식엔진을 선택하도록 제어할 수 있다.
상기 프로세서는 상기 사용자음성 입력의 인식결과에 대응하는 이력정보에 관한 데이터를 저장하도록 상기 저장부를 제어하고, 상기 이력정보를 기초로 음성인식엔진을 결정하는 룰을 생성할 수 있다.
본 개시의 일 양상에 따른 전자장치의 제어방법이 제공된다. 전자장치의 제어방법은 사용자음성 입력을 수신하는 단계, 상기 전자장치와 연관된 적어도 하나의 항목에 대응하는 상기 전자장치의 상태를 식별하는 단계, 복수의 음성인식엔진과 복수의 상태 간의 복수의 연관도에 기초하여, 상기 복수의 음성인식엔진 중에서 상기 식별된 상태에 대응하는 하나의 음성인식엔진을 선택하는 단계 및 상기 선택된 음성인식엔진에 기초하여 상기 사용자음성 입력에 대응하는 동작을 수행하도록 제어하는 단계를 포함한다.
상기 복수의 음성인식엔진은 상기 전자장치 내에 포함된 온디바이스 음성인식엔진과 서버에 마련된 서버 음성인식엔진을 포함하며, 상기 전자장치의 제어방법은 상기 온디바이스 음성인식엔진 또는 상기 서버 음성인식엔진을 선택하는 단계를 더 포함할 수 있다.
상기 전자장치의 제어방법은 복수의 인텐트 중에서 상기 수신되는 사용자음성 입력에 대응하는 인텐트를 식별하는 단계 및 상기 복수의 음성인식엔진과 상기 복수의 인텐트 간의 관계에 기초하여, 상기 음성인식엔진을 선택하는 단계를 더 포함할 수 있다.
상기 복수의 음성인식엔진 중 하나는 상기 사용자음성 입력의 인텐트를 분석하는 디폴트 음성인식엔진을 포함할 수 있다.
상기 전자장치의 제어방법은 상기 복수의 인텐트 중 적어도 하나의 인텐트를 상기 복수의 음성인식엔진에 제1참조데이터를 저장부에 저장하는 단계를 더 포함할 수 있다.
본 개시에 따르면, 전자장치는 사용자음성 입력을 수신하였을 때 많은 음성인식엔진들 중에 전자장치의 상태에 맞는 최적의 음성인식엔진을 선택함으로써 음성인식 성공률, 정확도 및 속도를 향상시킬 수 있다. 특히, 본 개시의 전자장치는 다양한 상황에 적합한 온디바이스(OnDevice) 음성인식엔진 또는 서버(Server) 음성인식엔진을 선택함으로써 효율적인 음성인식의 수행이 가능하다.
도 1은 일 실시예에 따른 전자장치가 복수의 음성인식엔진을 이용하여 음성인식을 수행하는 환경을 나타내는 도면이다.
도 2는 전자장치의 구성 블록도이다.
도 3은 본 개시의 일 실시예에 따른 전자장치의 프로세서 구성을 나타내는 블록도이다.
도 4는 일 실시예에 따른 사용자음성의 각 인텐트를 엔진 별로 할당한 리스트를 예로 나타낸 제1참조데이터이다.
도 5는 일 실시예에 따른 전자장치에 관련된 항목의 상태와 엔진들 간의 연관도를 나타낸 제2참조데이터이다.
도 6은 일 실시예에 따른 사용자음성 인식 처리 결과에 대한 이력데이터를 나타낸 제3참조데이터이다.
도 7은 본 개시의 제1실시예에 따른 전자장치의 제어방법을 나타내는 순서도이다.
도 8은 일 실시예에 따른 전자장치가 제1참조데이터와 제2참조데이터를 이용하여 엔진을 선택하는 제1예를 나타내는 예시도이다.
도 9는 일 실시예에 따른 전자장치가 제1참조데이터와 제2참조데이터를 이용하여 엔진을 선택하는 제2예를 나타내는 예시도이다.
도 10은 일 실시예에 따른 전자장치가 제1참조데이터와 제2참조데이터를 이용하여 엔진을 선택하는 제3예를 나타내는 예시도이다.
도 11은 일 실시예에 따른 전자장치가 제3참조데이터를 이용하여 엔진을 선택하는 일예를 나타내는 예시도이다.
도 12는 일 실시예에 따른 전자장치가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제1예를 나타내는 예시도이다.
도 13은 일 실시예에 따른 전자장치가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제2예를 나타내는 예시도이다.
도 14는 일 실시예에 따른 전자장치가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제3예를 나타내는 예시도이다.
도 15는 일 실시예에 따른 전자장치가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제4예를 나타내는 예시도이다.
도 16은 일 실시예에 따른 전자장치가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제5예를 나타내는 예시도이다.
도 17은 일 실시예에 따른 전자장치가 사용자음성의 처리 결과를 반영하여 업데이트한 결과를 나타내는 예시도이다.
도 18은 일 실시예에 따른 전자장치가 사용자음성의 인식을 거절한 결과를 반영하여 업데이트한 결과를 나타내는 예시도이다.
도 19는 본 개시의 제2실시예에 따른 전자장치의 제어방법을 나타내는 순서도이다.
도 20은 본 개시의 제2실시예에 따른 전자장치가 사용자음성에 대한 인식 엔진을 선택하는 일예를 나타내는 예시도이다.
도 21은 본 개시의 제3실시예에 따른 전자장치의 제어방법을 나타내는 순서도이다.
도 22는 본 개시의 제3실시예에 따른 전자장치가 사용자음성에 대한 인식 엔진을 선택하는 일예를 나타내는 예시도이다.
도 23은 본 개시의 제4실시예에 따른 전자장치의 제어방법을 나타내는 순서도이다.
도 24는 본 개시의 제5실시예에 따른 전자장치의 프로세서의 구성을 나타내는 블록도이다.
도 25는 본 개시의 제6실시예에 따른 전자장치의 프로세서의 구성을 나타내는 블록도이다.
도 26은 본 개시의 제7실시예에 따른 전자장치의 프로세서의 구성을 나타내는 블록도이다.
도 27은 일 실시예에 따른 전자장치가 참조데이터를 획득하는 예시를 나타내는 구성 블록도이다.
이하에서는 첨부 도면을 참조하여 본 개시의 실시예들을 상세히 설명한다. 도면에서 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 지칭하며, 도면에서 각 구성요소의 크기는 설명의 명료성과 편의를 위해 과장되어 있을 수 있다. 다만, 본 개시의 기술적 사상과 그 핵심 구성 및 작용이 이하의 실시예에 설명된 구성 또는 작용으로만 한정되지는 않는다. 본 개시를 설명함에 있어서 본 개시와 관련된 공지 기술 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이 기술 분야에 관례적인 바와 같이, 실시예들은 설명된 기능 또는 기능들을 수행하는 블록들로 설명 및 예시된다. 본 개시에서 제어부, 디바이스, 엔진, 드라이버 등과 같은 유닛들 또는 모듈들 등으로 언급되는 이러한 블록들은 로직 게이트, 집적회로, 패시브 전자소자, 액티브 전자소자, 광학소자, 하드웨어 내장 회로 등과 같은 아날로그 또는 디지털 회로들에 의해 물리적으로 실현되어 펌웨어와 소프트웨어에 의해 구동될 수 있다. 회로들은, 예를 들면, 인쇄회로기판과 같은 기판 지지부 또는 하나 이상의 반도체칩으로 구현될 수 있다. 블록에 포함된 회로는 전용 하드웨어, 프로세서(예를 들면, 하나의 이상의 프로그램 마이크로프로세서 및 관련 회로), 또는 블록의 일부 기능을 수행하는 전용 하드웨어와 블록의 다른 기능을 수행하는 프로세서의 조합에 의해 실현될 수 있다. 실시예들의 각 블록은 두 개 이상의 상호 작용하는 별개의 블록들로 물리적으로 분리될 수 있다. 마찬가지로, 실시예들의 블록들은 더 복잡한 블록들로 물리적으로 결합될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시의 실시예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본 개시의 실시예에서 '상부', '하부', '좌측', '우측', '내측', '외측', '내면', '외면', '전방', '후방' 등의 용어는 도면을 기준으로 정의한 것이며, 이에 의해 각 구성요소의 형상이나 위치가 제한되는 것은 아니다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 서브 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(general-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시에서, 사용자라는 용어는 전자장치(1)를 사용하는 사람 또는 전자장치(1)를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 전자장치(1)가 복수의 음성인식엔진을 이용하여 음성인식을 수행하는 환경을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 개시의 일 실시예에 따른 전자장치(1)는 예를 들면 영상을 표시 가능한 디스플레이장치일 수 있다. 디스플레이장치인 경우, 전자장치(1)는 TV, 컴퓨터, 태블릿, 휴대용 미디어 플레이어, 웨어러블 디바이스, 비디오 월, 전자액자 등을 포함할 수 있다. 다만, 실제로 전자장치(1)는 디스플레이장치뿐만 아니라, 디스플레이를 구비하지 않은 셋탑박스 등의 영상처리장치이거나, 냉장고, 세탁기 등의 생활가전이거나, 컴퓨터본체와 같은 정보처리장치 등 다양한 종류의 장치를 포함할 수 있다. 또한, 전자장치(1)는 하나의 고정된 위치에 설치되어 사용되는 장치일 수 있고, 사용자가 휴대하고 이동하면서 사용이 가능한 모바일기기(4)일 수도 있다.
전자장치(1)는 사용자음성을 수신할 수 있다. 즉, 전자장치(1)는 사용자가 소정의 명령어를 발화하면, 발화에 따른 사용자음성을 획득한다. 발화에 따른 사용자음성을 획득하기 위하여, 전자장치(1)는 자체에 내장된 발화를 수집하는 마이크로폰을 구비하거나, 또는 마이크로폰을 가진 리모트 컨트롤러(3) 또는 모바일폰과 같은 별도의 외부장치로부터 사용자음성을 수신할 수도 있다.
리모컨 컨트롤러(3)는 마이크로폰으로 음성을 수신하면 아날로그 음성 신호를 디지털화 하여 블루투수 등으로 전자장치(1) 측으로 전송한다.
전자장치(1)는 자체 내장된 마이크로폰으로 음성을 수신하면 아날로그 음성 신호를 디지털화 하여 전자장치(1)의 프로세서(16)로 전송한다. 이때, 디지털화 음성 정보를 수신한 전자장치(1)는 이를 STT서버로 전송한다.
STT서버는 음성신호 관련 데이터를 적절한 텍스트로 변환하는 STT서버의 역할만 수행하는 것일 수도 있으며, STT서버 기능도 함께 수행하는 메인 서버일 수도 있다.
STT서버에서 처리된 데이터는 전자장치(1)가 다시 수신하거나 다른 서버로 바로 전송할 수도 있다.
전자장치(1)는 STT서버로 음성정보를 전송하지 않고 자체적으로 모두 처리할 수 있다. 이때, 전자장치(1)는 자체적으로 STT서버 역할을 수행할 수 있다.
전자장치(1)는 STT서버에서 전송된 텍스트나 자체적으로 변환한 텍스트를 이용하여 특정 기능 수행할 수 있다. 이때, 기능을 수행하는 것이 전자장치(1)의 프로세서(16)에 의한 경우도 있으나, 변환된 텍스트를 별도의 서버(STT서버와 다른 서버 또는 STT서버 역할도 하는 서버)로 전송할 수 있다. 이를 수신한 STT서버는 데이터 처리하여 전자장치(1)로 전송하고, 전자장치는 수신한 데이터를 기반으로 특정 기능을 수행한다.
전자장치(1)는 복수의 음성인식엔진(이하 "엔진"이라 칭한다)(10a, 10b, 10c, …)(20A, 20B, 20C, …)를 이용하여 수신된 사용자음성을 인식할 수 있다. 하나의 엔진, 예를 들면, 복수의 엔진(10a, 10b, 10c, …)(20A, 20B, 20C, …) 중 하나는 인공지능에 기반해서 사용자음성에 대한 내용 및 문맥의 분석을 통해 해당 발화의 인텐트(intent)를 판단하고, 판단 결과에 대응하는 동작이 수행되도록 처리하는 어플리케이션 서비스이다. 예를 들면, 엔진(10a, 10b, 10c, …)(20A, 20B, 20C, …)은 전자장치(1)에 입력되는 사용자음성을 STT 처리하여 텍스트 데이터를 도출하고, 도출된 텍스트 데이터를 딥 러닝 또는 머신러닝에 기반하여 의미 분석을 수행함으로써 텍스트 데이터의 의미를 판단하며, 판단한 의미에 맞는 서비스를 제공할 수 있다.
복수의 엔진(10a, 10b, 10c, …)(20A, 20B, 20C, …)은 전자장치(1) 내부에서 대부분의 동작이 수행되는 온디바이스(OnDevice) 엔진(10a, 10b, 10c, …) 및 전자장치(1)와 통신하는 서버 또는 외부장치에서 동작이 수행되는 서버 엔진(20A, 20B, 20C, …)을 포함할 수 있다.
도 2는 전자장치(1)의 구성 블록도이다.
도 2에 도시된 바와 같이, 전자장치(1)은 인터페이스(11), 디스플레이부(12), 사용자입력부(13), 저장부(14), 마이크로폰(15) 및, 프로세서(16)를 포함한다.
이하, 전자장치(1)의 구성에 관해 설명한다. 본 실시예서는 전자장치(1)가 TV인 경우에 관해 설명하지만, 전자장치(1)는 다양한 종류의 장치일 수 있으므로, 본 실시예가 전자장치(1)의 구성을 한정하는 것은 아니다. 전자장치(1)가 전적으로 디스플레이장치로 구현되지 않는 경우도 가능하며, 이 경우의 전자장치(1)는 디스플레이부(12)와 같은 영상 표시를 위한 구성요소들을 포함하지 않을 수 있다. 예를 들면 전자장치(1)가 셋탑박스인 경우에, 전자장치(1)는 인터페이스부(11)를 통해 외부의 TV에 영상신호를 출력할 수 있다.
인터페이스부(11)는 다양한 종류의 유선 및 무선 통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 단방향 또는 양방향 통신회로이다.
인터페이스부(11)는 각종 외부장치, 예를 들면 서버(2), 리모트 컨트롤러(3) 또는 모바일기기(4)로부터 간접적으로 사용자음성을 수신할 수 있다.
인터페이스부(11)는 유선 인터페이스부와 무선 인터페이스부를 포함할 수 있다.
유선 인터페이스부는 방송신호를 수신하기 위한 지상파, 위성방송 안테나 연결 튜너, 케이블 방송 케이블 연결 인터페이스 등을 포함할 수 있다.
유선 인터페이스부는 영상기기 연결을 위한 HDMI, DP, DVI, Component, S-Video, 컴포지트(RCA 단자) 등을 포함할 수 있다.
유선 인터페이스부는 범용 전자기기 연결을 위한 USB 인터페이스 등을 포함할 수 있다.
유선 인터페이스부는 광케이블 기기의 연결 인터페이스를 포함할 수 있다.
유선 인터페이스부는 헤드셋, 이어폰, 외부 스피커 등의 오디오기기 연결 인터페이스를 포함할 수 있다.
유선 인터페이스부는 이더넷 등 유선 네트워크 기기의 연결 인터페이스를 포함할 수 있다.
무선 인터페이스부는 Wi-fi, 블루투스, ZigBee, Z-wave, RFID, WiGig, WirelessHD, UWB(Ultra-Wide Band), Wireless USB, NFC(Near Field Communication) 등 무선 네트워크 기기의 연결 인터페이스를 포함할 수 있다.
무선 인터페이스부는 리모컨신호 송신 및/또는 수신을 위한 IR 송수신 모듈을 포함할 수 있다.
무선 인터페이스부는 2G ~ 5G 등 이동통신기기 연결 인터페이스를 포함할 수 있다.
인터페이스부(11)는 서버(2), 리모트 컨트롤러(3), 모바일기기(4) 각각에 대해 전용으로 통신을 수행하는 전용통신모듈을 포함할 수 있다.
인터페이스부(11)는 서버(2), 리모트 컨트롤러(3), 모바일기기(4) 모두와 통신을 수행하는 공용통신모듈 등을 포함할 수 있다. 예를 들면 서버(2), 리모트컨트롤러(3) 및 모바일기기(4)는 모두 Wi-fi 모듈을 통해 통신을 수행할 수 있다.
인터페이스부(11)는 입력 인터페이스부와 출력 인터페이스부를 포함할 수도 있다. 이때, 입력 인터페이스부와 출력 인터페이스부는 하나의 모듈로 통합되거나 별도의 모듈로 구현될 수도 있다.
디스플레이부(12)는 화면 상에 영상을 표시할 수 있는 디스플레이 패널을 포함한다. 디스플레이 패널은 액정 방식과 같은 수광 구조 또는 OLED 방식과 같은 자발광 구조로 마련된다. 디스플레이부(12)는 디스플레이 패널의 구조에 따라서 부가적인 구성을 추가로 포함할 수 있는데, 예를 들면 디스플레이 패널이 액정 방식이라면, 디스플레이부(12)는 액정 디스플레이 패널과, 광을 공급하는 백라이트 유닛과, 액정 디스플레이 패널의 액정을 구동시키는 패널구동기판을 포함한다.
사용자입력부(13)는 사용자의 입력을 수행하기 위해 사용자가 조작할 수 있도록 마련된 다양한 종류의 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(13)는 전자장치(1)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(1)의 기계적 또는 전자적 버튼, 터치패드, 센서, 카메라, 디스플레이부(12)에 설치된 터치스크린 등이 있다.
저장부(14)는 디지털화된 데이터를 저장한다. 저장부(14)는 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성의 스토리지(storage)와, 프로세서(16)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성의 메모리(memory)를 포함한다. 스토리지에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있으며, 메모리에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다. 본 실시예에 따른 저장부(14)는 복수의 엔진(10a, 10b, 10c, …) 및 이를 실행시키는 복수의 어플리케이션이 저장될 수 있다. 저장부(14)에 저장된 어플리케이션이 프로세서(16)에 의해 구동됨으로써 엔진(10a, 10b, 10c, …)이 실행될 수 있다. 복수의 엔진(10a, 10b, 10c, …) 중 하나는 수신된 사용자음성에 대한 인텐트를 분석하도록 디폴트로 설정될 수 있다.
저장부(14)는 전자장치(1)의 상태정보와 엔진들 간의 연관도가 설정된 제1참조데이터(400)(도 4에 도시), 복수의 인텐트 중에서 선택된 적어도 하나의 인텐트를 각 엔진 별로 할당한 제2참조데이터(도 5에 도시), 사용자음성에 대한 엔진 선택과 인식결과 실행 이력데이터(도 6에 도시), 및 엔진선택 룰 데이터를 포함할 수 있다.
마이크로폰(15)은 사용자음성을 비롯한 외부 환경의 소리를 수집한다. 마이크로폰(15)은 수집된 소리의 음성신호를 프로세서(16)에 전달한다.
프로세서(16)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 프로세서(16)는 전자장치(1)가 디스플레이장치인 경우에 디멀티플렉서, 디코더, 스케일러, 오디오 DSP(Digital Signal Processor), 앰프 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC에 포함될 수 있다. 예를 들면, 디멀티플렉서, 디코더, 스케일러 등 영상처리와 관련된 모듈이 영상처리 SOC에 포함되고, 오디오 DSP는 SOC와 별도의 칩셋에 포함되는 것이 가능하다.
프로세서(16)는 수신된 사용자음성에 대한 인텐트를 분석하기 위해 예컨대 디폴트 엔진(10a)을 실행할 수 있다.
프로세서(16)는 복수의 엔진(10a, 10b, 10c, …)(20A, 20B, 20C, …) 중 전자장치(1)과 관련된 항목의 전자장치(1)의 상태에 적합한 엔진 또는 엔진들들을 선택하고, 선택된 엔진 또는 엔진들에 음성 인식을 위해 사용자음성을 전달할 수 있다.
프로세서(16)는 엔진 또는 엔진들의 수행한 인식 결과를 수신하면, 예를 들면 전자장치(1)의 기능 실행, 결과 출력, 결과 저장, 또는 외부장치로의 결과 전송 등의 동작을 수행할 수 있다.
전자장치(1)는 다음과 같은 다양한 방법으로 사용자가 발화한 음성을 획득할 수 있다.
전자장치(1)는 소리를 수집하는 마이크로폰(15)을 구비할 수 있다. 마이크로폰(15)을 통해 수집된 사용자음성의 음성신호는 디지털신호로 변환되어 프로세서(16)에 전달된다.
실시예들에서, 리모트 컨트롤러(3)가 마이크로폰(35)을 구비한 경우에, 전자장치(1)는 마이크로폰(35)을 통해 수집된 사용자음성의 음성신호를 리모트 컨트롤러(3)로부터 인터페이스부(11)를 통해 수신할 수도 있다. 리모트 컨트롤러(3)는 마이크로폰(35)을 통해 수집된 사용자음성의 음성신호를 디지털신호로 변환하고, 이 디지털신호를 수신 가능한 프로토콜에 따라서 리모컨통신부(31)를 통해 인터페이스부 (11)로 전송한다. 실시예들에서, 리모컨통신부(31)와 모바일통신부(41)과 같은 통신부는, 예를 들면, 통신 모듈, 통신 칩 등과 같은 적어도 하나의 구성요소를 포함하는 단방향 또는 양방향 통신회로를 포함할 수 있는 통신 인터페이스일 수 있다.
실시예들에서, 모바일기기(4)와 같은 범용기기의 경우에, 전자장치(1)의 제어를 위해 마련된 어플리케이션을 인스톨하여 실행시킴으로써 모바일기기(4)는 리모트 컨트롤러(3)와 유사하게 동작할 수 있다. 모바일기기(4)는 상기한 어플리케이션이 실행되는 동안 마이크로폰(45)을 통해 수집된 사용자음성의 음성신호를 디지털신호로 변환하여, 모바일통신부(41)를 통해 인터페이스부(11)로 전송한다.
이하, 본 개시의 실시예에 따른 프로세서(16)가 복수의 엔진(10a, 10b, 10c, …)(20A, 20B, 20C, …) 중 적어도 하나를 선택하여 사용자음성을 처리하도록 하는 예들을 설명한다.
도 3은 본 개시의 일 실시예에 따른 전자장치(1)의 프로세서(16) 구성을 나타내는 블록도이고, 도 4는 사용자음성의 각 인텐트를 엔진 별로 할당한 리스트를 예로 나타낸 제1참조데이터(400)이고, 도 5는 전자장치(1)에 관련된 항목의 상태와 엔진들 간의 연관도를 나타낸 제2참조데이터(500)이고, 도 6은 사용자음성 인식 처리 결과에 대한 이력데이터를 나타낸 제3참조데이터(600)이다.
도 3에 도시된 바와 같이, 복수의 엔진(10a, 10b, 10c)(20A, 20B, 20C, 20D) 중 적어도 하나를 선택하여 사용자음성을 처리하는 동작은 전자장치(1)의 프로세서(16)에 의해 수행된다. 또한, 본 전자장치(1)와 서버(2)는 각각 복수 또는 단일의 온디바이스 엔진(10a, 10b, 10c과 서버 엔진(20A, 20B, 20C, 20D)을 구비할 수 있다.
프로세서(16)는 인텐트 분석부(161), 상태분석부(162), 엔진 선택부(163), 엔진-상태 연관도 산출부(164), 엔진 후보 그룹 판단부(165), 음성인식부(166), 기능실행부(167), 연관도조정부(168) 및 룰(rule) 생성부(169)를 포함할 수 있다.
인텐트 분석부(161)는 소정의 경로를 통해 사용자음성이 수신되면, 디폴트로 설정된 예를 들면 엔진(10a)을 실행하여 사용자음성의 인텐트를 분석한다. 사용자음성의 인텐트 분석은 예를 들면 서포트 벡터 머신(SVM), 심층 학습 기반 모델, 또는 합성곱 신경망 모델을 이용한 방법을 사용할 수 있다.
도 4에 나타낸 바와 같이, 사용자음성의 인텐트는 사용자가 원하는 명령 또는 서비스 요청으로, 예를 들면 채널제어, 전원제어, 볼륨제어, Q&A, 날씨검색, 쇼핑, 음악, 또는 영화 중 적어도 하나를 포함할 수 있다. 사용자음성의 인텐트는 전술한 인텐트들로 한정되지 않는다.
엔진(10a~10c)(20A~20D)은 각각 주력으로 하는 적어도 하나의 인텐트를 제공할 수 있다. 예를 들면, 온디바이스 엔진(10a~10c)은 모두 채널제어, 전원제어, 볼륨제어 인텐트를 제공할 수 있다. 또한, 서버 엔진(20A)은 Q&A, 날씨검색, 쇼핑 인텐트를 제공하고, 서버 엔진(20B)는 날씨검색, 쇼핑, 음악 인텐트를 제공하고, 서버 엔진(20C)는 Q&A, 음악, 영화 인텐트를 제공하고, 서버 엔진(20D)은 쇼핑, 음악, 영화 인텐트를 제공할 수 있다. 실시예들에서, 온디바이스 엔진(10a~10c)은 전자장치(1)의 기능 제어를 가능하게 하고, 서버 엔진(20A~20D)은 사용자가 원하는 서비스를 제공하는 것을 가능하게 할 수 있다.
제1참조데이터(400)에서, 채널제어, 전원제어, 볼륨제어 인텐트는 온디바이스 엔진(10a~10c)에 관련된 제1인텐트 그룹과 Q&A, 날씨검색, 쇼핑, 영화 인텐트는 서버 엔진(20A~20D)에 관련된 제2인텐트 그룹으로 구분될 수 있다.
엔진(10a~10c)(20A~20D)이 제공하는 인텐트는 도 4에 도시한 바와 같이 3개로 한정되지 않으며, 또한 서로 중첩될 수도 있다.
도 3에 도시된 상태분석부(162)는 전자장치(1)와 연관된 적어도 하나의 항목에 관한 전자장치(1)의 상태를 분석할 수 있다.
도 5에 나타낸 바와 같이, 전자장치(1)와 연관된 항목은 예를 들면 전원상태, 네트워크 상태, 계정로그인 상태, 음성화자, 음성입력경로, 트리거 유무, 또는 어플리케이션 상태 중 적어도 하나를 포함한다. 전자장치(1)와 연관된 항목은 전술한 항목들로 한정되지 않는다.
전자장치(1)의 상태는 예를 들면 전원상태 항목의 전원 "OFF", "standby", "ON"으로 구분할 수 있고, 네트워크 상태 항목의 "online", "offline"으로 구분할 수 있고, 계정 로그인 상태 항목의 "없음", "있음"으로 구분할 수 있고, 음성의 화자 항목의 "어린이", "여자", "남자", "노인"으로 구분할 수 있고, 음성경로 항목의 "리모트 컨트롤러", "마이크로폰", "외부스피커"으로 구분할 수 있고, 트리거(인텐트 분석엔진) 항목의 "트리거 엔진 분석 인텐트 선택 YES", "트리거 엔진 분석 인텐트 선택 NO), "트리거가 아닌 엔진 분석 인텐트 선택 YES", "트리거가 아닌 엔진 분석 인텐트 선택 NO"로 구분할 수 있고, 앱 실행 상태 항목의 "Web", "OTT", LiveTV", "20C의 엔진 앱", "기타 앱"으로 구분할 수 있다. 전자장치(1)의 상태는 전술한 상태들로 한정되지 않는다.
도 5에 도시한 제2참조데이터(500)는 전자장치(1)와 연관된 적어도 하나의 항목들과 각 항목에 속한 전자장치(1)의 상태들에 대해 복수의 엔진들 각각이 얼마나 관련성이 있는지를 나타내는 연관도가 사전 설정될 수 있다. 이 연관도는 음성인식의 경험이 축적되면서 증가하거나 감소되도록 조정될 수 있다.
제2참조데이터(500)에서, 연관도는 각 상태에 대해 관련도가 가장 높은 엔진은 1.0, 가장 낮은 엔진은 0.1로 설정하였다. 그러나, 이러한 연관도는 설명을 위한 예로서 다른 기준, 예를 들면 1~100 또는 % 등으로 다양하게 설정될 수도 있다.
제2참조데이터(500)에서, 복수의 엔진들은 전자장치(1) 내에 있는 온디바이스 엔진(10a~10c)과 서버 엔진(20A~20D)으로 분류될 수 있다.
제2참조데이터(500)에서, 전자장치(1)와 관련된 항목 중 전원상태, 네트워크 상태, 계정로그인 상태는 온디바이스 엔진들(10a~10c)에 관련된 제1상태 그룹으로, 음성화자, 음성입력경로, 트리거 유무, 어플리케이션 상태는 서버 엔진들(20A~20D)에 관련된 제2상태 그룹으로 분류할 수 있다.
엔진 선택부(163)는 저장부(14)의 룰 DB의 제3참조데이터(600)를 기초로 사용자음성의 인텐트와 전자장치(1)의 상태에 관련된 엔진이 엔진 선택 룰로 설정된 것이 있는지를 검색한다.
도 6에 도시한 바와 같이, 제3참조데이터(600)는 사용자음성의 인텐트와 전자장치의 상태들에 대해 특정 엔진이 처리한 음성 인식 이력들이 반복 저장된 데이터로서, 특정 횟수 이상의 동일한 결과가 기록되는 경우에 엔진선택 룰로 지정되는 것을 나타내고 있다.
제3참조데이터는 인텐트 "채널제어", 전원상태 "ON", 네트워크 상태 "online", 계정로그인 상태 "없음", 음성화자 "남자", 음성입력경로 "마이크로폰", 트리거 "트리거 엔진 분석 인텐트 선택 YES", 또는 어플리케이션 상태 "LiveTV", 선택 엔진(10b), 선택실행 횟수 56회, 룰 지정 "YES"가 제1이력데이터로 포함되어 있다. 엔진 선택 룰은 동일한 인텐트와 전자장치의 상태에 대해 동일한 엔진이 선택되어 처리한 횟수가 소정 횟수, 예를 들면 50회 이상 반복될 때에 생성할 수 있다. 여기서, 엔진 선택 룰을 지정하는 횟수는 50회로 한정되지 않는다.
일 실시예에 따르면, 전자장치(1)는 사용자음성의 처리결과의 업데이트를 통한 연관도 조정에 의해 증가한 연관도가 소정 값을 초과하는 경우에 엔진 선택 룰을 생성할 수도 있다.
또한, 제3참조데이터(600)는 인텐트 "전원제어", 전원상태 "OFF", 네트워크 상태 "ofline", 계정로그인 상태 "없음", 음성화자 "여자", 음성입력경로 "마이크로폰", 트리거 "트리거 엔진 분석 인텐트 선택 YES", 또는 어플리케이션 상태 "기타", 선택 엔진(10a), 선택실행 횟수 28회, 룰 지정 "NO"가 제2이력데이터로 기록되어 있다. 제2이력데이터는 22회가 추가되면 그 때 엔진 선택 룰로 지정될 수 있다.
도 6에 나타낸 제3참조데이터(600)는 설명을 위한 예로서 이에 한정되지 않는다.
엔진 선택부(163)는 분석한 인텐트와 상태가 도 6의 제3참조데이터(600)에서 룰로 지정된 제1이력데이터와 동일하면 다른 절차를 생략하고 엔진(10b)를 바로 선택할 수 있다.
엔진 선택부(163)는 분석한 인텐트와 상태에 대한 룰 지정이 없으면 최적의 엔진 선택을 위한 다음 절차를 진행한다. 엔진 선택부(163)는 참조데이터 DB의 제1참조데이터(400) 및/또는 제2참조데이터(500)를 이용하여 온디바이스 엔진(10a~10c) 또는 서버 엔진(20A~20D) 중 하나를 선택한다.
도 3에 도시된 엔진-상태 연관도 산출부(164)는 참조데이터 DB의 제2참조데이터(500)를 이용하여 온디바이스 엔진(10a~10c) 또는 서버 엔진(20A~20D) 중 하나의 각 엔진의 연관도를 산출한다.
엔진-상태 연관도 산출부(164)는 사용자음성이 온디바이스 엔진들(10a~10c)에 관한 것으로 식별되면 온디바이스 엔진들(10a~10c) 각각에 대해 제1상태 그룹, 예를 들면, 온디바이스 상태 그룹을 이용하여 연관도를 산출할 수 있다.
만일, 엔진-상태 연관도 산출부(164)는 사용자음성이 서버 엔진들(20A~20D)에 관한 것으로 식별되면 서버 엔진들(20A~20D) 각각에 대해 제2상태 그룹, 예를 들면, 서버 상태 그룹을 이용하여 연관도를 산출할 수 있다.
실시예들에서, 엔진-상태 연관도 산출부(164)는 제1상태 그룹과 제2상태 그룹을 선별적으로 적용하지 않고 모든 상태 정보를 적용하여 연관도를 산출할 수 있다.
도 3에 도시된 엔진 후보 그룹 판단부(165)는 앞에서 산출된 각 엔진의 연관도 중 가장 연관도가 높은 엔진, 높은 순으로 소정의 수, 또는 연관도가 소정의 문턱값 이상인 엔진 또는 엔진들을 선택할 수 있다.
도 3에 도시된 음성인식부(166)는 엔진 후보 그룹 판단부(165)에서 선택된 또는 엔진선택 룰에 의해 선택된 엔진 또는 엔진들에 사용자음성을 전달하여 음성인식을 수행하게 한다.
도 3에 도시된 기능실행부(167)는 선택된 엔진 또는 엔진들의 인식 결과를 실행, 예를 들면 전자장치(1)의 기능 실행하거나, 결과를 출력하거나, 결과를 저장하거나, 결과를 외부 장치로 전달할 수 있다.
도 3에 도시된 기능실행부(167)는 인식 처리 결과에 대한 이력을 이력DB에 저장할 수 있다.
도 3에 도시된 연관도 조정부(168)는 선택 엔진의 인식결과를 기초로 한 처리 결과를 반영하여 참조데이터DB의 제2참조데이터(500)의 연관도에 가중치를 조정할 수 있다. 연관도 조정 량은 사전 설정될 수 있다. 이때, 연관도 조정은 사용자의 만족도를 피드백 받아 조정하거나 소정 횟수 반복 실행한 경우에 조정하도록 설정할 수 있다.
도 3에 도시된 연관도 조정부(168)는 선택된 엔진이 사용자음성의 인식을 수행하지 못해 거절한 경우에 참조데이터 DB의 제2참조데이터(500)의 연관도를 감산하도록 조정할 수 있다. 이때, 거절 처리한 엔진이 다시 선택되는 것을 방지하기 위해 연관도 감산 량은 가산 량보다 더 큰 단위로 조정할 수 있다.
도 3에 도시된 룰 생성부(169)는 이력DB에 저장된 이력데이터를 기초로 도 6에 나타낸 바와 같이 소정 횟수, 예를 들면 50회 반복된 동일 결과를 나타내는 인텐트-상태-엔진 조합을 엔진 선택 룰로 생성할 수 있다.
이하, 본 개시의 실시예에 따른 프로세서(16)가 복수의 엔진들 중 어느 하나를 선택하여 사용자음성을 처리하도록 하는 예들을 설명한다.
도 7은 본 개시의 제1실시예에 따른 전자장치(1)의 제어방법을 나타내는 순서도이다.
도 7에 도시된 바와 같이, 하기 동작은 전자장치(1)의 프로세서(16)에 의해 수행된다. 또한, 본 전자장치(1)는 온디바이스 엔진(10a~10c) 및 서버 엔진(20A~20D)을 구비한다.
S1 단계에서, 전자장치(1)는 사용자음성 입력을 수신한다.
S2 단계에서, 전자장치(1)는 수신된 사용자음성의 인텐트를 분석한다. 사용자음성의 인텐트 분석은 전자장치(1) 내에 또는 외부에 마련된 디폴트 엔진을 이용하여 수행할 수 있다. 디폴트 엔진은 사용자음성의 텍스트를 획득하고, 획득한 텍스트로부터 해당 텍스트를 구성하는 하나 이상의 키워드를 획득하고, 인텐트 DB로부터 하나 이상의 키워드에 매칭되는 인텐트를 검색함으로써 사용자음성의 인텐트를 얻을 수 있다. 인텐트 DB는 각종 인텐트와 적어도 하나의 키워드를 매칭시킨 테이블일 수 있다.
S3 단계에서, 전자장치(1)는 전자장치(1)와 관련된 항목의 상태 정보를 분석한다. 전자장치(1)와 연관된 항목은 도 5에 나타낸 바와 같이 전원상태, 네트워크 상태, 계정로그인 상태, 음성화자, 음성입력경로, 트리거 유무, 또는 어플리케이션 상태 중 적어도 하나를 포함할 수 있다.
S4 단계에서, 전자장치(1)는 도 6의 제3참조데이터(600)를 참조하여 분석된 인텐트와 상태 정보에 관련된 엔진 선택 룰이 있는지를 확인한다.
S5 단계에서, 전자장치(1)는 엔진 선택 룰이 있는 것으로 확인되면 최적의 엔진 선택을 위한 단계들을 생략하고 룰에 지정된 엔진에 사용자음성을 전달한다.
S6 단계에서, 전자장치(1)는 엔진 선택 룰이 없는 것으로 확인되면 온디바이스 엔진들이나 서버 엔진들 중 하나를 선택한다. 실시예들에서, 온디바이스 엔진 또는 서버 엔진은 엔진들의 부분집합으로 간주될 수 있다. 실시예들에서, 전자장치(1)는 엔진들의 다른 특성을 사용하여 엔진들의 다른 필요 부분집합을 선택할 수 있다. 온디바이스 엔진들이나 서버 엔진들 중 하나를 선택하는 방법은 도 4의 제1참조데이터(400)나 도 5의 제2참조데이터(500)를 이용하여 선택할 수 있다.
S7 단계에서, 전자장치(1)는 도 5의 제2참조데이터(500)를 이용하여, 선택된 부분집합, 예를 들면, 온디바이스 엔진들이나 서버 엔진들 중 하나에 속한 엔진 또는 엔진들의 상태 정보 연관도의 합을 산출한다.
S8 단계에서, 전자장치(1)는 온디바이스 엔진이나 서버 엔진 중 하나에 속한 엔진 또는 엔진들의 상태 정보 연관도의 합이 높은 하나 또는 복수의 엔진을 선택한다.
S9 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)에 사용자음성을 전달한다.
S10 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 수신한다.
S11 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 실행한다. 전자장치(1)는 하나의 엔진에서 보낸 인식 결과라면 바로 실행하고, 다수의 엔진들이 보낸 인식 결과들이라면 가장 빨리 보낸 엔진의 결과를 선택하여 실행할 수 있다. 전자장치(1)는 다수의 엔진들이 보낸 인식 결과가 거의 동시에 도착하거나 서로 다른 인식 결과를 보낸 경우에, 다수의 결과를 표시하여 사용자로 하여금 선택하도록 하거나 사전 설정된 룰, 예를 들면 이력정보 또는 다른 사용자의 선택 정보를 이용하여 결과를 선택하여 실행할 수 있다.
S12 단계에서, 전자장치(1)는 사용자음성을 수신하고 엔진을 선택하고 인식 결과를 실행한 이력정보를 저장부(14)에 저장한다.
S13 단계에서, 전자장치(1)는 인식하여 실행한 또는 인식을 거절한 엔진에 대한 상태 정보 연관도에 가중치를 가감 조정할 수 있다. 전자장치(1)는 소정 횟수의 누적된 이력정보를 기초로 인텐트-상태정보-엔진으로 설정된 엔진선택 룰을 생성할 수 있다.
이로써, 전자장치(1)는 사용자음성의 인텐트 및/또는 전자장치(1)의 상태에 적합한 온디바이스 엔진 또는 서버 엔진 중 하나를 선택하고, 온디바이스 엔진 또는 서버 엔진 중 선택된 하나에 속한 엔진들 각각에 대해 전자장치의 상태 간의 연관도 합을 산출하고 연관도 합이 높은 엔진을 선택하여 인식을 수행하게 할 수 있다. 특히, 전자장치(1)는 상태정보를 이용한 반복된 엔진 선택 이력데이터를 축적함으로써 복잡한 선택 과정을 생략하고 사용자음성의 인텐트와 전자장치의 상태 정보를 알면 바로 엔진을 선택할 수 있는 룰을 생성함으로써 사용자음성에 대해 빠르고 정확하게 인식하도록 할 수 있다.
상술한 바와 같이, 전자장치(1)는 예를 들면 전원 오프 및 네트워크 오프라인 상태에서 전원 제어 명령의 사용자음성에 대해 서버 측 엔진을 선택하여 인식을 수행하는 것과 같이, 상황에 맞지 않는 엔진이 선택되어 인식을 수행하는 문제를 해결할 수 있다.
실시예들에서, 전자장치(1)는 동일하거나 유사한 연관도 값을 가진 복수의 엔진들에 대해 빠르게 인식하는 엔진, 사용자가 선택한 엔진, 이전 이력정보에서 선택되었던 엔진, 다른 사용자가 선택하였던 엔진 등을 참조하여 최적의 엔진을 선택할 수 있다.
실시예들에서, 전자장치(1)는 사용자음성의 인텐트 및/또는 전자장치(1)의 상태 정보를 이용한 엔진의 선택, 성공적인 처리 결과, 실패한 처리 결과, 인식 거절된 결과 등의 경험을 반영하여 도 5의 연관도를 가감 조정할 수 있다.
실시예들에서, 전자장치(1)의 프로세서(16)는 상기와 같이 사용자음성의 인텐트를 획득하고, 복수의 엔진들 및 전자장치(1)의 상태 사이의 연관도에 관해 기 정의된 정보에 기초하여, 상태와 연관도가 높은 엔진을 식별하고, 식별된 엔진에 기초하여 사용자음성에 관한 음성 인식을 수행하도록 하는 동작을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다.
일 예로, 전자장치의 프로세서는 학습부 및 인식부의 기능을 함께 수행할 수 있다. 학습부는 학습된 신경망 네트워크를 생성하는 기능을 수행하고, 인식부는 학습된 신경망 네트워크를 이용하여 데이터를 인식(또는, 추론, 예측, 추정, 판단)하는 기능을 수행할 수 있다. 학습부는 신경망 네트워크를 생성하거나 갱신할 수 있다. 학습부는 신경망 네트워크를 생성하기 위해서 학습 데이터를 획득할 수 있다. 일 예로, 학습부는 학습 데이터를 전자장치의 저장부 또는 외부로부터 획득할 수 있다. 학습 데이터는, 신경망 네트워크의 학습을 위해 이용되는 데이터일 수 있으며, 상기한 동작을 수행한 데이터를 학습데이터로 이용하여 신경망 네트워크를 학습시킬 수 있다.
학습부는 학습 데이터를 이용하여 신경망 네트워크를 학습시키기 전에, 획득된 학습 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 학습 데이터들 중에서 학습에 이용될 데이터를 선별할 수 있다. 일 예로, 학습부는 학습 데이터를 기 설정된 포맷으로 가공하거나, 필터링하거나, 또는 노이즈를 추가/제거하여 학습에 적절한 데이터의 형태로 가공할 수 있다. 학습부는 전처리된 학습 데이터를 이용하여 상기한 동작을 수행하도록 설정된 신경망 네트워크를 생성할 수 있다.
학습된 신경망 네트워크는, 복수의 신경망 네트워크(또는, 레이어)들로 구성될 수 있다. 복수의 신경망 네트워크의 노드들은 가중치를 가지며, 복수의 신경망 네트워크들은 일 신경망 네트워크의 출력 값이 다른 신경망 네트워크의 입력 값으로 이용되도록 서로 연결될 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)과 같은 모델을 포함할 수 있다.
실시예들에서, 인식부는 상기한 동작을 수행하기 위해, 타겟 데이터를 획득할 수 있다. 타겟 데이터는 전자장치의 저장부 또는 외부로부터 획득된 것일 수 있다. 타겟 데이터는 신경망 네트워크의 인식 대상이 되는 데이터일 수 있다. 인식부는 타겟 데이터를 학습된 신경망 네트워크에 적용하기 전에, 획득된 타겟 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 타겟 데이터들 중에서 인식에 이용될 데이터를 선별할 수 있다. 일 예로, 인식부는 타겟 데이터를 기 설정된 포맷으로 가공하거나, 필터링 하거나, 또는 노이즈를 추가/제거하여 인식에 적절한 데이터의 형태로 가공할 수 있다. 인식부는 전처리된 타겟 데이터를 신경망 네트워크에 적용함으로써, 신경망 네트워크로부터 출력되는 출력값을 획득할 수 있다. 인식부는 출력값과 함께, 확률값 또는 신뢰도값을 획득할 수 있다.
이상 실시예에서는 전자장치(1)가 사용자음성으로부터 인텐트와 전자장치(1)의 상태를 분석하고, 엔진 단위로 전자장치(1)의 상태와 관련된 연관도 총합을 비교하여 총합이 가장 높은 엔진을 최종적으로 선택하는 예시에 관해 설명하였다. 그러나, 전자장치(1)가 연관도 총합에 기초하여 어느 하나의 엔진을 선택하는 방법은 단지 연관도 총합을 비교하는 것만으로 한정된 것은 아니며, 다양한 방법이 적용될 수 있다.
예를 들면, 앞선 실시예에서는 엔진 별로 분석된 전자장치(1)의 상태의 관련 정도를 연관도를 부여하여 단순히 각 연관도를 합산하였다. 그러나, 설계 방식에 따라서는 보다 중요하다고 보이는 상태 정보에 가중치를 추가적으로 부여하는 방법도 가능하다.
도 8은 전자장치(1)가 제1참조데이터(400)와 제2참조데이터(500)를 이용하여 엔진을 선택하는 제1예를 나타내는 도면이다.
도 8에 도시한 바와 같이, "내일 날씨 어때?"라는 사용자음성이 수신되면, 사용자음성에 대한 인텐트와 전자장치(1)의 상태를 분석한다.
디폴트 엔진은 "날씨"와 "어때"라는 단어를 기초로 "날씨검색" 이라는 인텐트를 획득할 수 있다.
또한, 전자장치(1)는 사용자음성을 수신한 시점에 자신의 상태, 예를 들면 전원-ON, 네트워크-online, 계정 로그인-없음, 음성화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV를 확인할 수 있다.
전자장치(1)는 도 4의 제1참조데이터(400)에서 "날씨검색" 인텐트가 속하는 제2인텐트 그룹에 해당하므로, 엔진들의 부분집합, 예를 들면, 서버 엔진(20A~20D)를 선택할 수 있다.
전자장치(1)는 도 5의 제2상태 그룹에 해당하는 상태 정보 "화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"에 대한 서버 엔진(20A~20D) 각각의 연관도 총합을 산출할 수 있다.
서버 엔진(20A~20D) 각각의 연관도 총합은 2.0, 2.5, 1.7, 1.6이다. 따라서, 전자장치(1)는 연관도 총합이 2.5인 엔진(20B)를 선택한다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 인텐트와 전자장치(1)의 상태를 분석하고, 인텐트를 기초로 온디바이스 엔진이나 서버 엔진을 선택하고, 선택된 엔진들에 대해 상태 정보와 연관도 총합을 산출하여 가장 큰 연관도 총합을 가진 엔진을 최종적으로 선택하여 사용자음성을 인식하도록 할 수 있다.
도 9는 전자장치(1)가 제1참조데이터(400)와 제2참조데이터(500)를 이용하여 엔진을 선택하는 제2예를 나타내는 예시도이다.
도 9에 도시한 바와 같이, "프로야구 중계방송 보여줘"라는 사용자음성이 수신되면, 사용자음성에 대한 인텐트와 전자장치(1)의 상태를 분석한다.
디폴트 엔진은 "중계방송"와 "보여줘"라는 단어를 기초로 "채널제어" 이라는 인텐트를 획득할 수 있다.
또한, 전자장치(1)는 사용자음성을 수신한 시점에 자신의 상태, 예를 들면 전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV를 확인할 수 있다.
전자장치(1)는 도 5의 제2참조데이터(500)에서 항목 "전원상태", "네트워크 상태", "계정 로그인 상태"에 대한 온디바이스 엔진(10a~10c)과 서버 엔진(20A~20D) 각각의 연관도 전체를 승산한다. 온디바이스 엔진(10a~10c)의 연관도 승산 값은 0.7(1*1*1*1*1*0.7*1*1*1)이고, 서버 엔진(20A~20D)의 연관도 승산 값은 0.001(1*1*1*1*1*1*1*1*0.1*0.1*0.1*0.1)이다. 여기서, 연관도 산출은 항목 "전원상태", "네트워크 상태", "계정 로그인 상태"와 더불어, 항목 "음성의 화자", "음성경로", "트리거", "앱실행상태"의 연관도를 적용할 수 있다. 여기서, 디바이스 엔진과 서버 엔진 중 하나의 선택은 연관도 승산 대신에 연관도 합산을 기준으로 결정할 수도 있다.
전자장치(1)는 산출 연관도 승산 값이 더 큰 온디바이스 엔진(10a~10c)를 선택한다.
전자장치(1)는 도 4의 제1참조데이터(400)를 이용하여 온디바이스 엔진(10a~10c) 중 인텐트 "채널제어"와 관련된 엔진(10a), 엔진(10b), 엔진(10c)를 선택한다. 만일, 온디바이스 엔진(10a~10c) 중 엔진(10a)만 인텐트 "채널제어"에 관련되어 있다면, 엔진 10a만 선택될 수 있다.
전자장치(1)는 도 5의 제2참조데이터(500)에 해당하는 상태 정보 "전원-ON, 네트워크-online, 계정 로그인-없음"에 대한 선택된 엔진(10a), 엔진(10b), 엔진(10c)의 연관도 총합을 산출할 수 있다.
엔진(10a), 엔진(10b), 엔진(10c) 각각의 연관도 총합은 3.0, 2.7, 3.0이다. 따라서, 전자장치(1)는 연관도 총합이 3.0인 엔진(10a)와 엔진(10c)를 선택한다.
전자장치(1)는 복수의 엔진이 동일한 연관도를 갖는 경우에, 복수의 엔진들 모두에 사용자음성을 전달하여 음성 인식을 수행하도록 하거나, 사용자로 하여금 선택하게 하거나, 이력정보나 다른 사용자의 선택 정보를 이용하여 하나의 엔진만 선택하도록 할 수 있다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 인텐트와 전자장치(1)의 상태를 분석하고, 제2참조데이터(500)를 기초로 온디바이스 엔진이나 서버 엔진을 선택하고, 사용자음성의 인텐트에 속하는 엔진을 선택하고, 선택된 엔진들 각각에 대해 연관도 총합을 산출하여 가장 큰 연관도 총합을 가진 엔진을 최종적으로 선택하여 사용자음성을 인식하도록 할 수 있다.
도 10은 전자장치(1)가 제1참조데이터(400)와 제2참조데이터(500)를 이용하여 엔진을 선택하는 제3예를 나타내는 예시도이다.
도 10에 도시한 바와 같이, "내일 날씨 어때?"라는 사용자음성이 수신되면, 사용자음성에 대한 인텐트와 전자장치(1)의 상태를 분석한다.
디폴트 엔진은 "날씨"와 "어때"라는 단어를 기초로 "날씨검색" 이라는 인텐트를 획득할 수 있다.
또한, 전자장치(1)는 사용자음성을 수신한 시점에 자신의 상태, 예를 들면 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거 엔진 분석 인텐트 선택 YES, 실행앱-Web"를 확인할 수 있다.
전자장치(1)는 도 4의 제1참조데이터(400)에서 "날씨검색" 인텐트가 속하는 엔진(20A), 엔진(20B)를 선택할 수 있다.
전자장치(1)는 도 5의 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거 엔진 분석 인텐트 선택 YES, 실행앱-Web"에 대한 엔진(20A), 엔진(20B) 각각의 연관도 총합을 산출할 수 있다.
엔진(20A), 엔진(20B) 각각의 연관도 총합은 5.4, 4.7이다. 따라서, 전자장치(1)는 연관도 총합이 5.4인 엔진(20A)를 선택한다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 인텐트와 전자장치(1)의 상태를 분석하고, 인텐트와 관련된 엔진을 선택하고, 선택된 엔진들에 대해 상태 정보와 연관도 총합을 산출하여 가장 큰 연관도 총합을 가진 엔진을 최종적으로 선택하여 사용자음성을 인식하도록 할 수 있다.
도 11은 전자장치(1)가 제3참조데이터(600)를 이용하여 엔진을 선택하는 일예를 나타내는 예시도이다.
도 11에 도시한 바와 같이, "프로야구 중계방송 보여줘"라는 사용자음성이 수신되면, 사용자음성에 대한 인텐트와 전자장치(1)의 상태를 분석한다.
디폴트 엔진은 "중계방송"와 "보여줘"라는 단어를 기초로 "채널제어" 이라는 인텐트를 획득할 수 있다.
또한, 전자장치(1)는 사용자음성을 수신한 시점에 자신의 상태, 예를 들면 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"를 확인할 수 있다.
전자장치(1)는 도 6의 제3참조데이터(600)에서 채널제어 인텐트와 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"에 대해 룰로 지정된 엔진(10b)을 확인한다.
전자장치(1)는 룰로 지정된 엔진(10b)을 선택하여 사용자음성을 전달하여 인식을 수행하게 한다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 인텐트와 전자장치(1)의 상태를 분석하고, 제3참조데이터(600)에 룰로 지정된 엔진이 있으면 해당 엔진을 바로 선택하여 사용자음성을 인식하게 할 수 있다.
도 12는 전자장치(1)가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제1예를 나타내는 예시도이다.
도 12에 도시한 바와 같이, 전자장치(1)는 도 5의 제2참조데이터(500)에서 서버 엔진들(20A~20D) 중 전자장치(1)의 상태 "음성의 화자", "음성경로", "트리거", 앱실행상태"와 관련된 연과도 총합이 높은 순서로 엔진(20B), 엔진(20A), 엔진(20C)을 선택한다.
전자장치(1)는 사용자음성을 엔진(20B), 엔진(20A), 엔진(20C)에 전달하여 인식을 수행하게 한다. 이후, 엔진(20B)는 3초 후, 엔진(20A)는 5초 후, 엔진(20C)는 10초 후에 인식결과를 전달하였다.
전자장치(1)는 가장 빨리 전달한 엔진(20B)의 인식결과를 실행한다.
이상과 같이, 전자장치(1)는 연관도 합이 동일하거나 높은 순서로 복수의 엔진들을 선택하고 사용자음성을 동시에 전달한 후에 가장 빠르게 전달한 엔진의 인식결과만을 선택하여 실행할 수 있다.
도 13은 전자장치(1)가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제2예를 나타내는 예시도이다.
도 13에 도시한 바와 같이, 전자장치(1)는 도 5의 제2참조데이터(500)에서 온디바이스 엔진들(10a~10c) 중 전자장치(1)의 상태 "전원상태", "네트워크상태", "계정 로그인상태"와 관련된 연과도 총합이 높은 순서로 엔진(10a), 엔진(10c)을 선택한다.
전자장치(1)는 사용자음성을 엔진(10a), 엔진(10c)에 전달하여 인식을 수행하게 한다.
전자장치(1)는 엔진(10a)와 엔진(10c)로부터 각각 인식결과 "채널 A"와 "채널 B"를 받아, 사용자 선택 UI를 디스플레이부(12)에 제공한다. 만일, 엔진(10a)와 엔진(10c)의 인식결과가 동일한 경우에는 도 12에서와 같이 먼저 도달한 엔진의 인식결과를 실행할 수 있다.
전자장치(1)는 사용자가 사용자 선택 UI에서 엔진(10c)을 선택하면 채널 B로 채널을 설정한다.
이상과 같이, 전자장치(1)는 연관도 합이 동일하거나 높은 순서로 복수의 엔진들을 선택하고 사용자음성을 동시에 전달한 후에 받은 인식결과가 다른 경우에 사용자의 선택을 통해 엔진의 인식결과를 실행할 수 있다.
도 14는 전자장치(1)가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제3예를 나타내는 예시도이다.
도 14에 도시한 바와 같이, 전자장치(1)는 도 5의 제2참조데이터(500)에서 온디바이스 엔진들(10a~10c) 중 전자장치(1)의 상태 "전원상태", "네트워크상태", "계정 로그인상태"와 관련된 연과도 총합이 높은 순서로 엔진(10a), 엔진(10c)을 선택한다.
전자장치(1)는 인텐트 "채널제어" 및 상태 정보 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"에 대한 인식 이력을 분석한다.
전자장치(1)는 도 14의 이력데이터에서 전술한 사용자음성의 인텐트와 전자장치(1)의 상태 정보에 대해 인식 처리하였던 엔진(10c)을 선택한 후, 사용자음성을 전달하여 인식을 수행하게 한다. 여기서, 이력데이터는 사용자음성의 인텐트와 전자장치(1)의 상태에 맞는 엔진을 선택하여 성공적인 인식 처리한 이력, 실패한 인식 처리 이력, 인식 거절한 이력 등을 모두 매칭시킨 테이블이다. 이와 같이 이력데이터는 동일 또는 유사 연관도를 가진 복수 엔진들 중 하나를 선택하기 위한 데이터로 또는 전술한 엔진 선택 룰 생성을 위한 데이터로 이용될 수 있다.
전자장치(1)는 엔진(10c)이 인식한 결과를 실행한다.
이상과 같이, 전자장치(1)는 연관도 합이 동일하거나 높은 순서로 복수의 엔진들을 선택하고, 인텐트와 상태정보에 대한 이전 이력을 분석하여 기 적용된 엔진의 인식결과를 실행할 수 있다.
도 15는 전자장치(1)가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제4예를 나타내는 예시도이다.
도 15에 도시한 바와 같이, 전자장치(1)는 도 5의 제2참조데이터(500)에서 온디바이스 엔진들(10a~10c) 중 전자장치(1)의 상태 "전원상태", "네트워크상태", "계정 로그인상태"와 관련된 연과도 총합이 높은 순서로 엔진(10a), 엔진(10c)을 선택한다.
전자장치(1)는 인텐트 "채널제어" 및 상태 정보 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"에 대한 인식 이력을 분석한다.
전자장치(1)는 이력데이터에서 인텐트 "채널제어" 및 상태 정보에 대한 이전 인식 이력이 없으면 다른 사용자의 사용 이력을 확인한다.
전자장치(1)는 도 15에 나타낸 바와 같이 동일한 인텐트와 상태 정보에 대한 사용자 B와 사용자 C의 인식 이력을 출력하여 사용자로 하여금 선택하도록 한다. 사용자는 사용자 B의 인식결과 "채널 B"에 대한 엔진(10c)을 선택할 수 있다.
전자장치(1)는 사용자가 선택한 엔진(10c)에 사용자음성을 전달한다.
전자장치(1)는 엔진(10c)이 인식한 결과를 실행한다.
이상과 같이, 전자장치(1)는 연관도 합이 동일하거나 높은 순서로 복수의 엔진들을 선택하고, 인텐트와 상태정보에 대한 이전 이력과 더불어 다른 사용자의 인식 이력을 참조하여 적합한 엔진을 선택할 수 있다.
도 16은 전자장치(1)가 연관도가 동일하거나 유사한 복수의 엔진들 중 하나를 선택하는 제5예를 나타내는 예시도이다.
도 16에 도시한 바와 같이, 전자장치(1)는 제2참조데이터(500)에서 온디바이스 엔진들(10a~10c) 중 전자장치(1)의 상태 "전원상태", "네트워크상태", "계정 로그인상태"와 관련된 연과도 총합이 높은 순서로 엔진(10a), 엔진(10c)을 선택한다. 이때, 제2참조데이터(500)는 사용자가 기 설정한 온디바이스 엔진들(10a~10c) 각각에 대해 선택 우선순위를 포함할 수 있다.
전자장치(1)는 사용자음성을 엔진(10a), 엔진(10c)에 전달하여 인식을 수행하게 한다.
전자장치(1)는 엔진(10a)와 엔진(10c)로부터 동일한 인식결과 "채널 A" 를 받는 경우, 제2참조데이터(500)의 사용자설정 우선순위를 참조하여 순위가 높은 엔진(10c)의 인식결과를 선택할 수 있다.
전자장치(1)는 사용자 설정 우선순위의 엔진(10c)을 선택하면 채널 A로 채널을 설정한다.
상술한 실시예에서, 전자장치(1)는 연과도 총합이 같은 2개의 엔진(10a), 엔진(10c)을 선택하는 대신에, 사용자 설정 우선순위가 가장 높은 하나의 엔진(10c)을 선택할 수도 있다.
이상과 같이, 전자장치(1)는 연관도 합이 동일하고 인식결과가 동일한 경우에 사용자가 기 설정한 우선순위에 따라 엔진을 선택하고, 그의 인식결과를 실행할 수 있다.
도 17은 전자장치(1)가 사용자음성의 처리 결과를 반영하여 업데이트한 결과를 나타내는 예시도이다.
도 17에 도시한 바와 같이, 전자장치(1)는 인텐트와 상태정보를 기초로 한 엔진(20B)의 인식결과를 이력데이터로 저장한다. 인식결과는 상태 정보 "전원-ON, 네트워크-online, 계정 로그인-없음, 음성화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV", 인식 엔진(20B), 사용자 A, 인텐트 "날씨검색", 인식결과 "흐림"이다.
전자장치(1)는 선택된 엔진(20B)의 인식을 기초로 처리한 결과를 반영하여 도 5의 제2참조데이터(500)의 엔진(20B)에 관련된 상태정보의 연관도를 0.1씩 가산한다. 이때, 연관도 조정량은 0.1로 한정되지 않는다. 연관도 조정량은 너무 크면 부적절한 엔진이 선택될 수 있고 너무 작으면 조정의 효과가 미미할 수있으므로 적절히 설정할 필요가 있다. 연관도 조정은 사용자의 만족도를 피드백 받아 조정하거나 소정 횟수 반복 처리한 경우에만 조정하도록 설정할 수 있다.
이상과 같이, 전자장치(1)는 사용자음성에 대한 인식 및 실행 처리 결과를 반영하여 상태에 관련된 엔진의 연관도를 조정함으로써 적합한 엔진 선택을 위한 처리시간과 선택의 정확도를 향상시킬 수 있다.
도 18은 전자장치(1)가 사용자음성의 인식을 거절한 결과를 반영하여 업데이트한 결과를 나타내는 예시도이다.
전자장치(1)는 인텐트 "날씨검색"과 상태 정보 "음성화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"에 대한 도 5의 제2참조데이터(500)를 기초로 선택된 엔진(20A), 엔진(20B), 엔진(20C)에 사용자음성을 전달한다.
도 18에 도시한 바와 같이, 전자장치(1)는 엔진(20A)와 엔진(20C)으로부터 각각 3초와 10초 후에 인식결과를 받고, 엔진(20B)로부터 거절되었다.
전자장치(1)는 엔진(20A)의 인식 결과를 실행 처리한다.
전자장치(1)는 선택된 엔진(20A)의 인식을 기초로 처리한 결과를 반영하여 도 5의 제2참조데이터(500)의 엔진(20A)에 관련된 상태정보의 연관도를 0.1씩 가산한다. 전자장치(1)는 선택된 엔진(20B)의 거절 결과를 반영하여 도 5의 제2참조데이터(500)의 엔진(20B)에 관련된 상태정보의 연관도를 0.5씩 감산한다. 거절된 엔진(20B)은 연관도가 크게 감소되어 동일한 인텐트와 상태정보에 대해 다시 선택되지 않을 것이다.
이상과 같이, 전자장치(1)는 사용자음성에 대한 인식 거절된 엔진의 연관도를 감소시킴으로써 부적절한 엔진이 선택되는 것을 방지할 수 있다.
도 19는 본 개시의 제2실시예에 따른 전자장치(1)의 제어방법을 나타내는 순서도이다. 하기 동작은 전자장치(1)의 프로세서(16)에 의해 수행된다. 도 19에 나타낸 제2실시예는 도 7의 제1실시예와 다르게 온디바이스 엔진과 서버 엔진을 사전 식별하지 않고, 전자장치(1)의 상태 정보들을 이용하여 최적의 엔진을 선택한다.
S21 단계에서, 전자장치(1)는 사용자음성을 수신한다.
S22 단계에서, 전자장치(1)는 전자장치(1)와 관련된 항목의 상태 정보를 분석한다. 전자장치(1)와 연관된 항목은 도 5에 나타낸 바와 같이 전원상태, 네트워크 상태, 계정로그인 상태, 음성화자, 음성입력경로, 트리거 유무, 또는 어플리케이션 상태 중 적어도 하나를 포함할 수 있다.
S23 단계에서, 전자장치(1)는 도 5의 제2참조데이터(500)를 이용하여 엔진들의 상태 정보 연관도의 합을 산출한다.
S24 단계에서, 전자장치(1)는 각 엔진들의 상태 정보 연관도의 합이 높은 하나 또는 복수의 엔진(들)을 선택한다.
S25 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)에 사용자음성을 전달한다.
S26 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 수신한다.
S27 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 실행한다. 전자장치(1)는 하나의 엔진에서 보낸 인식 결과라면 바로 실행하고, 다수의 엔진들이 보낸 인식 결과들이라면 가장 빨리 보낸 엔진의 결과를 선택하여 실행할 수 있다.
도 20은 본 개시의 제2실시예에 따른 전자장치(1)가 사용자음성에 대한 인식 엔진을 선택하는 일예를 나타내는 예시도이다.
도 20에 도시한 바와 같이, "프로야구 중계방송 보여줘"라는 사용자음성이 수신되면, 사용자음성에 대한 전자장치(1)의 상태를 분석한다.
전자장치(1)는 사용자음성을 수신한 시점의 상태 정보, 예를 들면 "전원-ON, 네트워크-online, 계정 로그인-없음, 화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"를 얻을 수 있다.
전자장치(1)는 도 5의 제2참조데이터(500)를 참조하여 각 엔진(10a~10c) 및 엔진(20A~20D)에 대한 연관도 총합을 산출한다. 각 엔진(10a~10c) 및 엔진(20A~20D)의 연관도 총합은 각각 5.6, 5.3, 5.6, 4.1, 4.6, 3.8, 3.7이다.
전자장치(1)는 연관도 총합이 5.6인 엔진(10a)와 엔진(10c)를 선택한다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 전자장치(1)의 상태를 분석하고, 이를 기초로 엔진들 각각에 대해 상태 관련 연관도 총합을 산출하여 가장 큰 연관도 총합을 가진 엔진을 최종적으로 선택하여 사용자음성을 인식하도록 할 수 있다.
도 21은 본 개시의 제3실시예에 따른 전자장치(1)의 제어방법을 나타내는 순서도이다. 하기 동작은 전자장치(1)의 프로세서(16)에 의해 수행된다. 도 21에 나타낸 제3실시예는 도 19의 제2실시예와 다르게 전자장치(1)의 상태 정보들 이외에 사용자음성의 인텐트를 이용하여 최적의 엔진을 선택한다.
S31 단계에서, 전자장치(1)는 사용자음성을 수신한다.
S32 단계에서, 전자장치(1)는 수신된 사용자음성의 인텐트를 분석한다. 사용자음성의 인텐트 분석은 전자장치(1) 내에 또는 외부에 마련된 디폴트 엔진을 이용하여 수행하게 한다.
S33 단계에서, 전자장치(1)는 전자장치(1)와 관련된 항목의 상태 정보를 분석한다. 전자장치(1)와 연관된 항목은 도 5에 나타낸 바와 같이 전원상태, 네트워크 상태, 계정로그인 상태, 음성화자, 음성입력경로, 트리거 유무, 또는 어플리케이션 상태 중 적어도 하나를 포함할 수 있다.
S34 단계에서, 전자장치(1)는 도 4의 제1참조데이터(400)를 이용하여 인텐트에 해당하는 엔진들을 선택한 후, 선택된 엔진들에 대해 도 5의 제2참조데이터를 이용하여 상태 정보 연관도의 합을 산출한다.
S35 단계에서, 전자장치(1)는 각 엔진들의 상태 정보 연관도의 합이 높은 하나 또는 복수의 엔진(들)을 선택한다.
S36 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)에 사용자음성을 전달한다.
S37 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 수신한다.
S38 단계에서, 전자장치(1)는 선택한 하나 또는 복수의 엔진(들)이 인식한 결과를 실행한다.
도 22는 본 개시의 제3실시예에 따른 전자장치(1)가 사용자음성에 대한 인식 엔진을 선택하는 과정을 나타내는 예시도이다.
도 22에 도시한 바와 같이, "내일 날씨 어때?"라는 사용자음성이 수신되면, 사용자음성에 대한 인텐트와 전자장치(1)의 상태를 분석한다.
전자장치(1)는 "날씨 검색" 인텐트 및 사용자음성을 수신한 시점의 상태정보, 예를 들면 "전원-ON, 네트워크-online, 계정 로그인-없음, 음성화자-남자, 음성경로-마이크로폰, 트리거-트리거가 아닌 엔진 분석 인텐트 선택 YES, 실행앱-LiveTV"를 얻을 수 있다.
전자장치(1)는 도 4의 제1참조데이터(400)를 참조하여 인텐트 "날씨 검색"에 해당하는 엔진(20A), 엔진(20B)를 선택한다.
전자장치(1)는 도 5의 제2참조데이터(500)를 이용하여 엔진(20A), 엔진(20B) 각각에 대한 연관도 총합을 산출한다.
전자장치(1)는 연관도 총합이 4.6인 엔진(20B)를 선택한다.
이상과 같이, 전자장치(1)는 사용자음성이 수신되면, 사용자음성의 인텐트와 전자장치(1)의 상태를 분석하고, 인텐트에 해당하는 엔진들을 선택하여 각각에 대해 상태 관련 연관도 총합을 산출하여 가장 큰 연관도 총합을 가진 엔진을 최종적으로 선택하여 사용자음성을 인식하도록 할 수 있다.
도 23은 본 개시의 제4실시예에 따른 전자장치(1)의 제어방법을 나타내는 순서도이다. 하기 동작은 전자장치(1)의 프로세서(16)에 의해 수행된다. 도 23에 나타낸 제4실시예는 이전 실시예들과 다르게 복수의 엔진들 간의 연관도 차이를 기준으로 최적의 엔진을 선택한다.
S41 단계에서, 전자장치(1)는 사용자음성을 수신한다.
S42 단계에서, 전자장치(1)는 수신된 사용자음성의 인텐트를 분석한다. 사용자음성의 인텐트 분석은 전자장치(1) 내에 또는 외부에 마련된 디폴트 엔진을 이용하여 수행하게 한다.
S43 단계에서, 전자장치(1)는 전자장치(1)와 관련된 항목의 상태 정보를 분석한다. 전자장치(1)와 연관된 항목은 도 5에 나타낸 바와 같이 전원상태, 네트워크 상태, 계정로그인 상태, 음성화자, 음성입력경로, 트리거 유무, 또는 어플리케이션 상태 중 적어도 하나를 포함할 수 있다.
S44 단계에서, 전자장치(1)는 도 4의 제1참조데이터(400)를 이용하여 인텐트에 해당하는 엔진들을 선택한 후, 선택된 엔진들에 대해 도 5의 제2참조데이터(500)를 이용하여 상태 정보 연관도의 총합을 산출한다.
S45 단계에서, 전자장치(1)는 각 엔진들의 상태 정보 연관도의 총합이 높은 복수의 엔진들을 선택한다.
S46 단계에서, 전자장치(1)는 선택된 복수의 엔진들에 대해 가장 큰 연관도 총합과 나머지 연관도 총합의 차이를 산출하고, 그 차이가 문턱값보다 크거나 같은지를 확인한다.
S47 단계에서, 연관도 총합의 차가 문턱값보다 크거나 같으면 가장 높은 연관도 총합을 가진 엔진에 사용자음성을 전달한다.
S48 단계에서, 전자장치(1)는 선택한 엔진이 인식한 결과를 수신한다.
S49 단계에서, 전자장치(1)는 선택한 엔진이 인식한 결과를 실행한다.
S50 단계에서, S46 단계의 연관도 총합의 차가 문턱값보다 작으면 문턱값 범위 내의 엔진들 모두에 사용자음성을 전달한다.
S51 단계에서, 전자장치(1)는 선택한 복수의 엔진들이 인식한 결과를 수신하고, 가장 빠른 결과를 제공한 엔진을 선택한 후, 인식한 결과를 실행한다.
이상과 같이, 전자장치(1)는 복수의 엔진들 중 차별적으로 큰 연관도 총합을 가진 하나의 엔진만 있으면 단독으로 선택하고, 연관도 총합이 유사한 복수의 엔진들이 있으면 모두 선택한 후에 결과에 따라 하나만 실행할 수 있다.
도 24는 본 개시의 제5실시예에 따른 전자장치(1)의 프로세서(16)의 구성을 나타내는 블록도이다.
전자장치(1)의 상태 정보들 중 하나는 사용자음성에 대한 "음성화자"가 어린이, 남자, 여자, 노인인지를 포함한다. 그러나, 사용자음성의 화자가 누군지를 분석하는 데에는 다소 복잡한 처리과정이 사용될 수 있다. 따라서, 전자장치(1)는 별도의 사용자 음성 특징 추출부(171) 및 화자인식부(172)를 이용한 별도의 처리 과정을 통해 화자인식을 수행하는 것이 바람직할 수 있다.
인텐트 분석부(161), 상태분석부(162), 엔진 선택부(163), 엔진-상태 연관도 산출부(164), 엔진 후보 그룹 판단부(165), 음성인식부(166), 및 기능실행부(167)는 도 3을 참조하여 설명한 바 있으므로 설명을 생략한다.
사용자 음성 특징 추출부(171)는 사용자음성을 텍스트로 변환하고, 텍스트의 단어 별로 음성의 특징을 추출할 수 있다. 음성의 특징은 음색, 음의 톤 등을 포함할 수 있다.
화자인식부(172)는 음성특징DB의 기준 음성특징과 사용자음성의 음성특징을 비교하여 화자가 어린이, 남자, 여자, 노인인지를 식별한다. 음성특징DB는 어린이, 남자, 여자, 노인에 대한 차별적인 음색, 음의 톤을 저장한 기준 음성특징 데이터를 포함한다.
이와 같이 사용자음성의 음성화자 분석은 최적의 엔진 선택 과정과 분리하여 별도로 처리할 수 있다.
도 25는 본 개시의 제6실시예에 따른 전자장치(1)의 프로세서(16)의 구성을 나타내는 블록도이다.
본 개시의 제6실시예에 따른 전자장치(1)는 사용자음성의 화자가 누군지를 분석을 전자장치(1) 자체에서 하지 않고, 서버(2)의 사용자 음성 특징 추출부(271)와 화자인식부(272)에서 화자인식을 수행하도록 한다.
이와 같이 복잡하고 시간이 걸리는 화자 인식을 서버(2)를 이용하여 수행함으로써 전자장치(1)의 부하가 줄어들고, 상대적으로 빠른 화자 인식 처리가 가능하다.
도 26은 본 개시의 제7실시예에 따른 전자장치(1)의 프로세서(16)의 구성을 나타내는 블록도이다.
제 5 및 6실시예의 전자장치(1)는 상태 정보로 사용자음성에 대한 "음성화자"가 어린이, 남자, 여자, 노인인지를 분석하였다. 그러나, 제한된 사용 환경, 예를 들면 사용자가 특정된 가정 등에서는 화자를 어린이, 남자, 여자, 노인으로 식별하는 것보다 구체적으로 사용자가 누구인지를 분석하는 것이 엔진 별 연관도를 더욱 차별화할 수 있다.
본 개시의 제7실시예에 따른 전자장치(1)는 사용자 음성 특징 추출부(171) 및 사용자인식부(173)를 이용하여 구체적으로 사용자가 누구인지를 식별한다.
다만, 사용자음성의 화자가 구체적으로 누구인지를 특정하는 것은 더 복잡하고 시간이 많이 소요될 수 있기 때문에, 전자장치(1)의 상태 정보를 이용하여 최적의 엔진을 선택하는 과정에 활용할 수 없고, 연관도 총합이 동일 또는 유사한 복수의 엔진들 중 하나를 선별하기 위한 정보로 활용되거나, 저장되는 이력정보에 기록한 후 나중에 활용되도록 할 수 있다.
이하, 전자장치(1)가 사용자음성을 인식하기 위한 엔진을 선택하기 위한 참조데이터를 획득하는 예들을 관해 설명한다.
도 27은 전자장치(1)가 참조데이터를 획득하는 예시를 나타내는 구성 블록도이다.
도 27에 도시된 바와 같이, 전자장치(1)는 서버(2)와 통신 가능하도록 네트워크에 접속된다. 서버(2)는 다수의 클라이언트(5)와 통신을 수행한다. 전자장치(1) 또한 이러한 다수의 클라이언트(5) 중 하나이며, 다만 상호 구별을 위해 용어를 상이하게 지정한 것에 불과하다.
전자장치(1)는 초기부터 사용 이력을 누적시켜 참조데이터를 생성할 수도 있다. 다만, 이러한 경우에는 참조데이터의 신뢰도를 보장할 수 있도록 어느 정도 이상의 데이터량이 확보되기까지, 사용 이력이 누적될 시간이 필요하다.
다른 방법으로서, 전자장치(1)는 제조 단계에서 전자장치(1)의 저장부(14) 내에 초기값을 가진 참조데이터가 저장된 상태로 제품으로 출시되는 경우도 가능하다.
또 다른 방법으로서, 전자장치(1)는 서버(2)로부터 참조데이터를 제공받고, 제공받은 참조데이터의 초기값에 사용 이력을 추가 반영하여 업데이트하여 구축하는 것도 가능하다. 서버(2)는 저장된 참조데이터를 전자장치(1)에만 일방향으로 제공하는 경우도 가능하다. 실시예들에서, 서버(2)는 전자장치(1)로부터 참조데이터의 업데이트에 관한 정보를 피드백 받아서 기 저장된 참조데이터를 업데이트하는 것도 가능하다.
서버(2)는 전자장치(1)와 동일하게 통신 가능하게 연결된 다수의 클라이언트(5)로부터 각 클라이언트(5)가 저장한 참조데이터에 관한 정보를 수집한다. 각 클라이언트(5)는 개별적으로 참조데이터를 저장하고, 자체적인 사용 이력에 기초하여 개별적으로 가진 참조데이터를 업데이트할 수 있다.
각 클라이언트(5)는 주기적으로, 또는 서버(2)로부터의 요청에 응답하여, 참조데이터의 현재 정보를 서버(2)에 제공한다.
서버(2)는 각 클라이언트(5)로부터 획득한 참조데이터의 정보에 기초하여, 참조데이터를 새로 생성하거나 또는 업데이트한다. 참조데이터의 생성 또는 업데이트 방법은 다양한 설계 방식이 적용될 수 있다.
서버(2)는 전자장치(1)의 요청에 응답하여, 또는 전자장치(1)가 서버(2)에 연결된 것으로 감지되는 것에 응답하여, 이와 같이 구축한 참조데이터를 전자장치(1)에 제공할 수 있다. 서버(2)는 앞서 클라이언트(5)의 경우와 동일하게 전자장치(1)로부터 참조데이터의 업데이트된 정보를 획득하여 반영할 수 있다.
이상 설명한 바와 같은 장치의 동작은, 해당 장치에 탑재된 인공지능에 의해 수행될 수 있다. 인공지능은 기계 학습 알고리즘을 활용하여 다양한 제반 시스템에 적용될 수 있다. 인공지능 시스템은 인간 수준 내지는 인간 수준에 버금가는 지능을 구현하는 컴퓨터 시스템으로서, 기계, 장치 또는 시스템이 자율적으로 학습하고 판단하며, 사용 경험의 누적에 기반하여 인식률 및 판단 정확도가 향상되는 시스템이다. 인공지능 기술은 입력되는 데이터들의 특징을 스스로 분류하고 학습하는 알고리즘을 이용한 기계학습 기술 및 알고리즘을 활용하여, 인간의 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
요소 기술들은, 예를 들면 인간의 언어와 문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론 및 예측 기술, 인간의 경험 정보를 지식 데이터로 처리하는 지식 표현 기술, 차량의 자율 주행이나 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 어느 하나를 포함한다.
여기서, 언어적인 이해는 인간의 언어 또는 문자를 인식하고 응용 처리하는 기술로서, 자연어의 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식 및 합성 등을 포함한다.
추론 예측은 정보를 판단하여 논리적으로 예측하는 기술로서, 지식 및 확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다.
지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 데이터의 생성 및 분류와 같은 지식 구축, 데이터의 활용과 같은 지식 관리 등을 포함한다.
본 개시의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, USB 메모리장치와 같은 비휘발성 저장 장치, 또는 예를 들어 RAM, ROM, 플래시메모리, 메모리 칩, 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 개시의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 개시를을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다. 또는, 본 컴퓨터 프로그램 명령은 컴퓨터 프로그램 프로덕트에 의해 구현될 수도 있다.

Claims (15)

  1. 전자장치에 있어서,
    사용자음성 입력을 수신하고,
    상기 전자장치와 연관된 적어도 하나의 항목에 대응하는 상기 전자장치의 상태를 식별하고,
    복수의 음성인식엔진과 복수의 상태 간의 복수의 연관도에 기초하여, 상기 복수의 음성인식엔진 중에서 상기 식별된 상태에 대응하는 하나의 음성인식엔진을 선택하고,
    상기 선택된 음성인식엔진에 기초하여 상기 사용자음성 입력에 대응하는 동작을 수행하도록 제어하는 프로세서를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 복수의 음성인식엔진은 상기 전자장치 내에 포함된 온디바이스 음성인식엔진과 서버에 마련된 서버 음성인식엔진을 포함하며,
    상기 프로세서는,
    상기 온디바이스 음성인식엔진 또는 상기 서버 음성인식엔진을 선택하도록 제어하는 전자장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    복수의 인텐트 중에서 상기 수신되는 사용자음성 입력에 대응하는 인텐트를 식별하고,
    상기 복수의 음성인식엔진과 상기 복수의 인텐트 간의 관계에 기초하여, 상기 음성인식엔진을 선택하도록 제어하는 전자장치.
  4. 제3항에 있어서,
    상기 복수의 음성인식엔진 중 하나는 상기 사용자음성 입력의 인텐트를 분석하는 디폴트 음성인식엔진을 포함하는 전자장치.
  5. 제3항에 있어서,
    상기 복수의 인텐트 중 적어도 하나의 인텐트를 상기 복수의 음성인식엔진에 할당한 제1참조데이터가 저장된 저장부를 더 포함하는 전자장치.
  6. 제5항에 있어서,
    상기 저장부는 상기 복수의 음성인식엔진과 상기 복수의 상태 사이의 연관도와, 상기 복수의 음성인식엔진과 상기 복수의 인텐트 사이의 연관도 사이의 연관도들 중 적어도 하나를 포함하는 제2참조데이터를 저장하는 전자장치.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 사용자음성 입력의 인텐트와 연관된 각 음성인식엔진에 대한 연관도를 산출하도록 제어하는 전자장치.
  8. 제6항에 있어서,
    상기 프로세서는,
    상기 사용자음성 입력의 인식결과에 기초하여, 상기 복수의 음성인식엔진과 상기 복수의 상태 사이의 연관도와, 상기 복수의 음성인식엔진과 상기 복수의 인텐트 사이의 연관도 사이의 연관도들 중 적어도 하나가 조정되도록 제어하는 전자장치.
  9. 제6항에 있어서,
    상기 프로세서는,
    상기 사용자음성 입력의 인식결과에 대응하는 이력정보에 관한 데이터를 저장하도록 상기 저장부를 제어하고,
    상기 이력정보를 기초로 동일한 연관도를 가진 복수의 음성인식엔진 중에서 상기 음성인식엔진을 선택하도록 제어하는 전자장치.
  10. 제6항에 있어서,
    상기 프로세서는,
    상기 사용자음성입력의 인식결과에 대응하는 이력정보에 관한 데이터를 저장하도록 상기 저장부를 제어하고,
    상기 이력정보를 기초로 음성인식엔진을 결정하는 룰을 생성하는 전자장치.
  11. 전자장치의 제어방법에 있어서,
    사용자음성 입력을 수신하는 단계;
    상기 전자장치와 연관된 적어도 하나의 항목에 대응하는 상기 전자장치의 상태를 식별하는 단계;
    복수의 음성인식엔진과 복수의 상태 간의 복수의 연관도에 기초하여, 상기 복수의 음성인식엔진 중에서 상기 식별된 상태에 대응하는 하나의 음성인식엔진을 선택하는 단계; 및
    상기 선택된 음성인식엔진에 기초하여 상기 사용자음성 입력에 대응하는 동작을 수행하도록 제어하는 단계를 포함하는 전자장치의 제어방법.
  12. 제11항에 있어서,
    상기 복수의 음성인식엔진은 상기 전자장치 내에 포함된 온디바이스 음성인식엔진과 서버에 마련된 서버 음성인식엔진을 포함하며,
    상기 온디바이스 음성인식엔진 또는 상기 서버 음성인식엔진을 선택하는 단계를 더 포함하는 전자장치의 제어방법.
  13. 제11항에 있어서,
    복수의 인텐트 중에서 상기 수신되는 사용자음성 입력에 대응하는 인텐트를 식별하는 단계; 및
    상기 복수의 음성인식엔진과 상기 복수의 인텐트 간의 관계에 기초하여, 상기 음성인식엔진을 선택하는 단계를 더 포함하는 전자장치의 제어방법.
  14. 제13항에 있어서,
    상기 복수의 음성인식엔진 중 하나는 상기 사용자음성 입력의 인텐트를 분석하는 디폴트 음성인식엔진을 포함하는 전자장치의 제어방법.
  15. 제13항에 있어서,
    상기 복수의 인텐트 중 적어도 하나의 인텐트를 상기 복수의 음성인식엔진에 할당한 제1참조데이터를 저장부에 저장하는 단계를 더 포함하는 전자장치의 제어방법.
PCT/KR2021/017218 2020-12-10 2021-11-23 전자장치 및 그의 제어방법 WO2022124637A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21903683.7A EP4227940A4 (en) 2020-12-10 2021-11-23 ELECTRONIC DEVICE AND ITS CONTROL METHOD
CN202180083130.4A CN116615780A (zh) 2020-12-10 2021-11-23 电子装置及其控制方法
US17/895,731 US20220406308A1 (en) 2020-12-10 2022-08-25 Electronic apparatus and method of controlling the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200172604A KR20220082577A (ko) 2020-12-10 2020-12-10 전자장치 및 그의 제어방법
KR10-2020-0172604 2020-12-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/895,731 Continuation US20220406308A1 (en) 2020-12-10 2022-08-25 Electronic apparatus and method of controlling the same

Publications (1)

Publication Number Publication Date
WO2022124637A1 true WO2022124637A1 (ko) 2022-06-16

Family

ID=81973768

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/017218 WO2022124637A1 (ko) 2020-12-10 2021-11-23 전자장치 및 그의 제어방법

Country Status (5)

Country Link
US (1) US20220406308A1 (ko)
EP (1) EP4227940A4 (ko)
KR (1) KR20220082577A (ko)
CN (1) CN116615780A (ko)
WO (1) WO2022124637A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012047924A (ja) * 2010-08-26 2012-03-08 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US20140163978A1 (en) * 2012-12-11 2014-06-12 Amazon Technologies, Inc. Speech recognition power management
US20160042748A1 (en) * 2014-08-11 2016-02-11 Rawles Llc Voice application architecture
KR102026479B1 (ko) * 2019-03-06 2019-09-30 주식회사 다이얼로그디자인에이전시 병렬처리 플랫폼 기반 인공지능 음성인식 서비스 제공 시스템
KR20200052612A (ko) * 2018-11-07 2020-05-15 삼성전자주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180070970A (ko) * 2016-12-19 2018-06-27 삼성전자주식회사 음성 인식 방법 및 장치
EP3622507B1 (en) * 2018-04-16 2020-10-21 Google LLC Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
JP7167554B2 (ja) * 2018-08-29 2022-11-09 富士通株式会社 音声認識装置、音声認識プログラムおよび音声認識方法
US11094324B2 (en) * 2019-05-14 2021-08-17 Motorola Mobility Llc Accumulative multi-cue activation of domain-specific automatic speech recognition engine
KR20210027991A (ko) * 2019-09-03 2021-03-11 삼성전자주식회사 전자장치 및 그 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012047924A (ja) * 2010-08-26 2012-03-08 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US20140163978A1 (en) * 2012-12-11 2014-06-12 Amazon Technologies, Inc. Speech recognition power management
US20160042748A1 (en) * 2014-08-11 2016-02-11 Rawles Llc Voice application architecture
KR20200052612A (ko) * 2018-11-07 2020-05-15 삼성전자주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
KR102026479B1 (ko) * 2019-03-06 2019-09-30 주식회사 다이얼로그디자인에이전시 병렬처리 플랫폼 기반 인공지능 음성인식 서비스 제공 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4227940A4

Also Published As

Publication number Publication date
EP4227940A4 (en) 2024-03-20
US20220406308A1 (en) 2022-12-22
EP4227940A1 (en) 2023-08-16
CN116615780A (zh) 2023-08-18
KR20220082577A (ko) 2022-06-17

Similar Documents

Publication Publication Date Title
WO2019182325A1 (ko) 전자 장치 및 전자 장치의 음성 인식 제어 방법
WO2020222444A1 (en) Server for determining target device based on speech input of user and controlling target device, and operation method of the server
WO2019182226A1 (en) System for processing sound data and method of controlling system
WO2018199390A1 (ko) 전자기기
WO2019039834A1 (en) METHOD FOR PROCESSING VOICE DATA AND ELECTRONIC DEVICE SUPPORTING SAID METHOD
WO2019078588A1 (ko) 전자 장치 및 그의 동작 방법
WO2021045447A1 (en) Apparatus and method for providing voice assistant service
WO2020085794A1 (en) Electronic device and method for controlling the same
EP2941894A1 (en) Display apparatus and method for controlling the same
WO2020230933A1 (ko) 사용자의 음성을 인식하는 인공 지능 장치 및 그 방법
WO2015194693A1 (ko) 영상 표시 기기 및 그의 동작 방법
WO2021029457A1 (ko) 사용자에게 정보를 제공하는 인공 지능 서버 및 그 방법
WO2021006404A1 (ko) 인공지능 서버
WO2019017715A1 (en) ELECTRONIC DEVICE AND SYSTEM FOR DETERMINING SPEECH INPUT RECEIVING TIME BASED ON CONTEXTUAL INFORMATION
AU2019319322B2 (en) Electronic device for performing task including call in response to user utterance and operation method thereof
WO2020218650A1 (ko) 전자기기
WO2020246647A1 (ko) 인공 지능 시스템의 동작을 관리하는 인공 지능 장치 및 그 방법
WO2020184753A1 (ko) 음성 추출 필터를 이용하여 음성 제어를 수행하는 인공 지능 장치 및 그 방법
WO2020263016A1 (ko) 사용자 발화를 처리하는 전자 장치와 그 동작 방법
WO2018174445A1 (ko) 파셜 랜딩 후 사용자 입력에 따른 동작을 수행하는 전자 장치
EP3635533A1 (en) Electronic apparatus for processing user utterance for controlling an external electronic apparatus and controlling method thereof
WO2020017827A1 (ko) 전자 장치, 및 전자 장치의 제어 방법
EP3841460A1 (en) Electronic device and method for controlling the same
WO2019059579A1 (en) DEVICE AND METHOD FOR PROVIDING AN ANSWER TO A DEVICE USE INTERROGATION
WO2019039873A1 (ko) Tts 모델을 생성하는 시스템 및 전자 장치

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: 21903683

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021903683

Country of ref document: EP

Effective date: 20230512

WWE Wipo information: entry into national phase

Ref document number: 202180083130.4

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE