Electronic device and method for processing user utterance
The electronic device processes user speech into actionable code by using a generative model to determine and generate compatible code for controlling target devices, addressing the inefficiencies in existing technologies and improving user experience.
Patent Information
- Application Number
- PCT/KR2024/018598
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-12
- Filing Date
- 2024-11-22
- Publication Date
- 2025-06-12
AI Technical Summary
Existing technologies lack an efficient method to process user speech into actionable code for controlling various devices, especially when the generative model has not learned specific APIs required for the target device.
An electronic device equipped with a processor and memory that uses a generative model to process user utterances, determining a target device, and generating code by modifying the initial code using information about the target device, ensuring compatibility and functionality.
Enables seamless processing of user speech into actionable code, allowing for effective control of various devices, even when the generative model has not learned specific APIs, thereby enhancing user experience and device control capabilities.
Smart Images

Figure KR2024018598_12062025_PF_FP_ABST
Abstract
Description
Electronic devices and methods for processing user speech
[0001] The disclosure below relates to an electronic device and a method for processing user speech.
[0002] Generative models (e.g., language models) can generate code based on natural language prompts. A user provides the generative model with a description of a program or specific functionality (e.g., "Generate code to add the numbers 1 through 10"), and the generative model generates code corresponding to the provided description.
[0003] A generative model can learn specific application programming interfaces (APIs) (e.g., Android APIs) and generate code using the learned APIs. A user can also use the generative model to control a target device. For example, a user can use the generative model to control a target device (e.g., an air conditioner) connected to an electronic device (e.g., a smartphone) via a network. For example, the electronic device can receive a user utterance, "Set the air conditioner temperature to 27 degrees," and use the generative model to process the natural language prompt to generate code to adjust the air conditioner temperature.
[0004] The above information may be provided as background art to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above-described matters constitute prior art related to the present disclosure.
[0005] An electronic device (101, 201, 501) according to one embodiment may include at least one processor (120) and a memory (130) storing instructions. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to acquire a user utterance. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to determine a target device (511) to be controlled based on the user utterance. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to obtain a first code based on the user utterance using the first generation model (500). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to generate a second code by modifying the first code using information about the target device (511) based on a correlation between the first code and the target device (511).
[0006] An operating method of an electronic device (101, 201, 501) according to one embodiment may include an operation of obtaining a user utterance. The operating method may include an operation of determining a target device (511) to be controlled based on the user utterance. The operating method may include an operation of obtaining a first code based on the user utterance using a first generation model (500). The operating method may include an operation of generating a second code by modifying the first code using information about the target device (511) based on a correlation between the first code and the target device (511).
[0007] According to one embodiment, a computer-readable recording medium storing one or more computer programs may include instructions for performing the method in a processor.
[0008] FIG. 1 is a block diagram of an electronic device within a network environment according to one embodiment.
[0009] FIG. 2 is a block diagram illustrating an integrated intelligence system according to one embodiment.
[0010] FIG. 3 is a diagram showing a form in which relationship information between concepts and operations is stored in a database according to one embodiment.
[0011] FIG. 4 is a diagram illustrating a screen for processing voice input received through an intelligent app by an electronic device according to one embodiment.
[0012] FIG. 5 is a drawing for explaining a generation model according to one embodiment.
[0013] FIG. 6 is a schematic block diagram of a system for processing user speech according to one embodiment.
[0014] FIGS. 7 to 10 are drawings illustrating a system for processing user speech according to one embodiment.
[0015] Fig. 11 is a flowchart for explaining the operation of an electronic device according to one embodiment.
[0016] Hereinafter, embodiments will be described in detail with reference to the attached drawings. In the description with reference to the attached drawings, identical components are assigned the same reference numerals regardless of the drawing numbers, and redundant descriptions thereof will be omitted.
[0017]
[0018] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to one embodiment. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (104) or the server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0019] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or a secondary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor)) that can operate independently or together therewith. For example, if the electronic device (101) includes a main processor (121) and a secondary processor (123), the secondary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a specified function. The secondary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0020] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0021] The memory (130) can store various data used by at least one component (e.g., the processor (120) or the sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., the program (140)) and input data or output data for commands related thereto. The memory (130) can include a volatile memory (132) or a non-volatile memory (134). According to one embodiment, instructions stored in the memory (130) can cause the electronic device (101) to perform one or more operations based on being individually, selectively, or collectively executed by at least one processor (e.g., the main processor (121) and / or the auxiliary processor (123)). For example, instructions stored in the memory (130) may be executed by one processor (e.g., a main processor (121) or an auxiliary processor (123) such as a communication processor) or by multiple processors operating cooperatively (e.g., a main processor (121) and an auxiliary processor (123)).
[0022] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0023] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0024] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0025] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. In one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0026] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0027] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0028] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0029] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0030] A haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0031] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0032] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented, for example, as at least a part of a power management integrated circuit (PMIC).
[0033] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0034] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
[0035] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0036] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas by, for example, the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0037] In one embodiment, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0038] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0039] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0040]
[0041] An electronic device according to an embodiment disclosed in this document may take various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. The electronic device according to an embodiment of this document is not limited to the aforementioned devices.
[0042] The embodiments of this document and the terminology used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another component (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0043] The term "module" used in the embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0044] One embodiment of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0045] According to one embodiment, the method according to one embodiment disclosed in the present document may be provided as a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0046] According to one embodiment, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and arranged in other components. According to one embodiment, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to one embodiment, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
[0047]
[0048] FIG. 2 is a block diagram illustrating an integrated intelligence system according to one embodiment.
[0049] Referring to FIG. 2, an integrated intelligent system (20) of one embodiment may include an electronic device (201) (e.g., electronic device (101) of FIG. 1), an intelligent server (200) (e.g., server (108) of FIG. 1), and a service server (300) (e.g., server (108) of FIG. 1).
[0050] An electronic device (201) of one embodiment may be a terminal device (or electronic device) that can connect to the Internet, and may be, for example, a mobile phone, a smart phone, a personal digital assistant (PDA), a laptop computer, a TV, white goods, a wearable device, an HMD, or a smart speaker.
[0051] According to the illustrated embodiment, the electronic device (201) may include a communication interface (202) (e.g., interface (177) of FIG. 1), a microphone (206) (e.g., input module (150) of FIG. 1), a speaker (205) (e.g., audio output module (155) of FIG. 1), a display module (204) (e.g., display module (160) of FIG. 1), a memory (207) (e.g., memory (130) of FIG. 1), or a processor (203) (e.g., processor (120) of FIG. 1). The above-listed components may be operatively or electrically connected to each other.
[0052] The communication interface (202) of one embodiment may be configured to connect to an external device and transmit and receive data. The microphone (206) of one embodiment may receive sound (e.g., user speech) and convert it into an electrical signal. The speaker (205) of one embodiment may output the electrical signal as sound (e.g., voice).
[0053] The display module (204) of one embodiment may be configured to display an image or video. The display module (204) of one embodiment may also display a graphical user interface (GUI) of a running app (or application program). The display module (204) of one embodiment may receive touch input via a touch sensor. For example, the display module (204) may receive text input via a touch sensor in an on-screen keyboard area displayed within the display module (204).
[0054] In one embodiment, the memory (207) may store a client module (209), a software development kit (SDK) (208), and a plurality of apps (210). The client module (209) and the SDK (208) may constitute a framework (or solution program) for performing general-purpose functions. In addition, the client module (209) or the SDK (208) may constitute a framework for processing user input (e.g., voice input, text input, touch input).
[0055] In one embodiment, the memory (207) may be a program for performing a specified function of the plurality of apps (210). According to one embodiment, the plurality of apps (210) may include a first app (210_1) and a second app (210_2). According to one embodiment, each of the plurality of apps (210) may include a plurality of operations for performing a specified function. For example, the apps may include an alarm app, a message app, and / or a schedule app. According to one embodiment, the plurality of apps (210) may be executed by the processor (203) to sequentially perform at least some of the plurality of operations.
[0056] In one embodiment, the processor (203) can control the overall operation of the electronic device (201). For example, the processor (203) can be electrically connected to a communication interface (202), a microphone (206), a speaker (205), and a display module (204) to perform a designated operation.
[0057] The processor (203) of one embodiment may also execute a program stored in the memory (207) to perform a designated function. For example, the processor (203) may execute at least one of the client module (209) or the SDK (208) to perform the following operations for processing user input. The processor (203) may control the operations of multiple apps (210), for example, through the SDK (208). The following operations described as operations of the client module (209) or the SDK (208) may be operations executed by the processor (203).
[0058] The client module (209) of one embodiment can receive user input. For example, the client module (209) can receive a voice signal corresponding to a user utterance detected through the microphone (206). Alternatively, the client module (209) can receive a touch input detected through the display module (204). Alternatively, the client module (209) can receive a text input detected through a keyboard or a visual keyboard. In addition, the client module (209) can receive various forms of user input detected through an input module included in the electronic device (201) or an input module connected to the electronic device (201). The client module (209) can transmit the received user input to the intelligent server (200). The client module (209) can transmit status information of the electronic device (201) to the intelligent server (200) together with the received user input. The status information can be, for example, execution status information of an app.
[0059] The client module (209) of one embodiment may receive a result corresponding to the received user input. For example, the client module (209) may receive a result corresponding to the received user input if the intelligent server (200) can produce a result corresponding to the received user input. The client module (209) may display the received result on the display module (204). Additionally, the client module (209) may output the received result as audio through the speaker (205).
[0060] In one embodiment, the client module (209) can receive a plan corresponding to the received user input. The client module (209) can display the results of executing multiple operations of the app according to the plan on the display module (204). For example, the client module (209) can sequentially display the results of executing multiple operations on the display module (204) and output audio through the speaker (205). The electronic device (201) can, for example, display only some results of executing multiple operations (e.g., the result of the last operation) on the display module (204) and output audio through the speaker (205).
[0061] In one embodiment, the client module (209) may receive a request from the intelligent server (200) to obtain information necessary to produce a result corresponding to a user input. In one embodiment, the client module (209) may transmit the necessary information to the intelligent server (200) in response to the request.
[0062] In one embodiment, the client module (209) can transmit result information of executing multiple operations according to a plan to the intelligent server (200). The intelligent server (200) can use the result information to confirm that the received user input has been processed correctly.
[0063] In one embodiment, the client module (209) may include a voice recognition module. In one embodiment, the client module (209) may recognize voice inputs that perform limited functions through the voice recognition module. For example, the client module (209) may execute an intelligent app that processes voice inputs to perform organic actions based on a specified input (e.g., "Wake up!").
[0064] An intelligent server (200) of one embodiment can receive information related to a user voice input from an electronic device (201) via a communication network. According to one embodiment, the intelligent server (200) can convert data related to the received voice input into text data. According to one embodiment, the intelligent server (200) can generate a plan for performing a task corresponding to the user voice input based on the text data.
[0065] In one embodiment, the plan may be generated by an artificial intelligence (AI) system. The AI system may be a rule-based system, a neural network-based system (e.g., a feedforward neural network (FNN), a recurrent neural network (RNN), or a combination of the above, or another AI system. In one embodiment, the plan may be selected from a set of predefined plans, or may be generated in real time in response to a user request. For example, the AI system may select at least one plan from a plurality of predefined plans.
[0066] In one embodiment, the intelligent server (200) can transmit the results according to the generated plan to the electronic device (201), or transmit the generated plan to the electronic device (201). In one embodiment, the electronic device (201) can display the results according to the plan on the display module (204). In one embodiment, the electronic device (201) can display the results of executing an operation according to the plan on the display module (204).
[0067] An intelligent server (200) of one embodiment may include a front end (215), a natural language platform (220), a capsule database (230), an execution engine (240), an end user interface (250), a management platform (260), a big data platform (270), or an analytic platform (280).
[0068] A front end (215) of one embodiment can receive user input from an electronic device (201). The front end (215) can transmit a response corresponding to the user input.
[0069] According to one embodiment, the natural language platform (220) may include an automatic speech recognition module (ASR module) (221), a natural language understanding module (NLU module) (223), a planner module (225), a natural language generator module (NLG module) (227), or a text to speech module (TTS module) (229).
[0070] An automatic speech recognition module (221) of one embodiment can convert a voice input received from an electronic device (201) into text data. A natural language understanding module (223) of one embodiment can use the text data of the voice input to determine a user's intention. For example, the natural language understanding module (223) can perform syntactic analysis or semantic analysis on a user input in the form of text data to determine a user's intention. The natural language understanding module (223) of one embodiment can use linguistic features (e.g., grammatical elements) of morphemes or phrases to determine the meaning of words extracted from the user input, and can match the meaning of the determined words to the intention to determine the user's intention.
[0071] In one embodiment, the planner module (225) can generate a plan using the intent and parameters determined by the natural language understanding module (223). According to one embodiment, the planner module (225) can determine a plurality of domains necessary to perform a task based on the determined intent. The planner module (225) can determine a plurality of operations included in each of the plurality of domains determined based on the intent. According to one embodiment, the planner module (225) can determine parameters necessary to execute the determined plurality of operations or result values output by the execution of the plurality of operations. The parameters and the result values can be defined as concepts of a specified format (or class). Accordingly, the plan can include a plurality of operations and a plurality of concepts determined by the user's intent. The planner module (225) can determine the relationships between the plurality of operations and the plurality of concepts in a stepwise (or hierarchical) manner. For example, the planner module (225) can determine the execution order of a plurality of actions based on the user's intention based on a plurality of concepts. In other words, the planner module (225) can determine the execution order of a plurality of actions based on parameters required for the execution of the plurality of actions and results output by the execution of the plurality of actions. Accordingly, the planner module (225) can generate a plan including association information (e.g., ontology) between the plurality of actions and the plurality of concepts. The planner module (225) can generate the plan using information stored in a capsule database (230) in which a set of relationships between concepts and actions is stored.
[0072] The natural language generation module (227) of one embodiment can convert specified information into text format. The information converted into text format may be in the form of natural language speech. The text-to-speech conversion module (229) of one embodiment can convert information in text format into information in speech format.
[0073] According to one embodiment, some or all of the functions of the natural language platform (220) may also be implemented in the electronic device (201).
[0074] The capsule database (230) may store information on the relationships between a plurality of concepts and actions corresponding to a plurality of domains. According to one embodiment, a capsule may include a plurality of action objects (or action information) and concept objects (or concept information) included in a plan. According to one embodiment, the capsule database (230) may store a plurality of capsules in the form of a concept action network (CAN). According to one embodiment, the plurality of capsules may be stored in a function registry included in the capsule database (230).
[0075] The capsule database (230) may include a strategy registry that stores strategy information necessary for determining a plan corresponding to a voice input. The strategy information may include reference information for determining a single plan when there are multiple plans corresponding to a user input. According to one embodiment, the capsule database (230) may include a follow-up registry that stores information on follow-up actions for suggesting follow-up actions to a user in a specified situation. The follow-up actions may include, for example, follow-up utterances. According to one embodiment, the capsule database (230) may include a layout registry that stores layout information of information output through the electronic device (201). According to one embodiment, the capsule database (230) may include a vocabulary registry that stores vocabulary information included in capsule information. According to one embodiment, the capsule database (230) may include a dialog registry that stores information on a dialogue (or interaction) with a user. The capsule database (230) can update stored objects through a developer tool. The developer tool may include, for example, a function editor for updating action objects or concept objects. The developer tool may include a vocabulary editor for updating vocabulary. The developer tool may include a strategy editor for creating and registering strategies that determine plans. The developer tool may include a dialog editor for creating conversations with users.The developer tool may include a follow-up editor that activates follow-up goals and allows editing of follow-up utterances that provide hints. The follow-up goals may be determined based on currently set goals, user preferences, or environmental conditions. In one embodiment, the capsule database (230) may also be implemented within the electronic device (201).
[0076] The execution engine (240) of one embodiment can produce a result using the generated plan. The end user interface (250) can transmit the produced result to the electronic device (201). Accordingly, the electronic device (201) can receive the result and provide the received result to the user. The management platform (260) of one embodiment can manage information used in the intelligent server (200). The big data platform (270) of one embodiment can collect user data. The analysis platform (280) of one embodiment can manage the quality of service (QoS) of the intelligent server (200). For example, the analysis platform (280) can manage the components and processing speed (or efficiency) of the intelligent server (200).
[0077] In one embodiment, a service server (300) may provide a service (e.g., food ordering or hotel reservation) designated for an electronic device (201). In one embodiment, the service server (300) may be a server operated by a third party. In one embodiment, the service server (300) may provide information for generating a plan corresponding to received user input to the intelligent server (200). The provided information may be stored in the capsule database (230). In addition, the service server (300) may provide result information according to the plan to the intelligent server (200).
[0078] In the integrated intelligence system (20) described above, the electronic device (201) can provide various intelligent services to the user in response to user input. The user input may include, for example, input via a physical button, touch input, or voice input.
[0079] In one embodiment, the electronic device (201) may provide a voice recognition service through an intelligent app (or voice recognition app) stored within the device. In this case, for example, the electronic device (201) may recognize a user utterance or voice input received through the microphone and provide the user with a service corresponding to the recognized voice input.
[0080] In one embodiment, the electronic device (201) may perform a designated action based on the received voice input, either alone or in conjunction with the intelligent server and / or service server. For example, the electronic device (201) may execute an app corresponding to the received voice input and perform a designated action through the executed app.
[0081] In one embodiment, when an electronic device (201) provides a service together with an intelligent server (200) and / or a service server (300), the electronic device (201) can detect a user's speech using the microphone (206) and generate a signal (or voice data) corresponding to the detected user's speech. The electronic device (201) can transmit the voice data to the intelligent server (200) using the communication interface (202).
[0082] An intelligent server (200) according to one embodiment may generate a plan for performing a task corresponding to a voice input received from an electronic device (201), or a result of performing an operation according to the plan, in response to a voice input. The plan may include, for example, a plurality of operations for performing a task corresponding to a user's voice input, and a plurality of concepts related to the plurality of operations. The concept may define parameters input to the execution of the plurality of operations, or result values output by the execution of the plurality of operations. The plan may include association information between the plurality of operations and the plurality of concepts.
[0083] An electronic device (201) of one embodiment can receive the response using a communication interface (202). The electronic device (201) can output a voice signal generated within the electronic device (201) to the outside using the speaker (205), or can output an image generated within the electronic device (201) to the outside using the display module (204).
[0084]
[0085] FIG. 3 is a diagram showing a form in which relationship information between concepts and actions is stored in a database according to one embodiment.
[0086] The capsule database (e.g., capsule database (230)) of the intelligent server (200) can store capsules in the form of a CAN (concept action network) (400). The capsule database can store operations for processing tasks corresponding to a user's voice input and parameters necessary for the operations in the form of a CAN (concept action network).
[0087] The capsule database may store a plurality of capsules (capsule (A) (401), capsule (B) (404)) corresponding to each of a plurality of domains (e.g., applications). According to one embodiment, one capsule (e.g., capsule (A) (401)) may correspond to one domain (e.g., location (geo), application). In addition, one capsule may correspond to at least one service provider (e.g., CP 1 (402) or CP 2 (403)) for performing a function for a domain related to the capsule. According to one embodiment, one capsule may include at least one operation (410) and at least one concept (420) for performing a specified function.
[0088] The above natural language platform (220) can generate a plan for performing a task corresponding to a received voice input using capsules stored in a capsule database. For example, the planner module (225) of the natural language platform can generate a plan using capsules stored in a capsule database. For example, a plan (407) can be generated using actions (4011, 4013) and concepts (4012, 4014) of capsule A (401) and actions (4041) and concepts (4042) of capsule B (404).
[0089]
[0090] FIG. 4 is a diagram illustrating a screen for processing voice input received through an intelligent app by an electronic device according to one embodiment.
[0091] The electronic device (201) can run an intelligent app to process user input through an intelligent server (200).
[0092] According to one embodiment, on screen 310, when the electronic device (201) recognizes a designated voice input (e.g., wake up!) or receives an input via a hardware key (e.g., a dedicated hardware key), the electronic device (201) may execute an intelligent app for processing the voice input. For example, the electronic device (201) may execute the intelligent app while the schedule app is running. According to one embodiment, the electronic device (201) may display an object (e.g., an icon) (311) corresponding to the intelligent app on the display module (204). According to one embodiment, the electronic device (201) may receive a voice input by a user's speech. For example, the electronic device (201) may receive a voice input such as "Tell me my schedule for this week!" According to one embodiment, the electronic device (201) may display a user interface (UI) (313) (e.g., an input window) of the intelligent app, in which text data of the received voice input is displayed, on the display module (204).
[0093] According to one embodiment, on the 320 screen, the electronic device (201) may display a result corresponding to the received voice input on the display module (204). For example, the electronic device (201) may receive a plan corresponding to the received user input and display 'this week's schedule' on the display module (204) according to the plan.
[0094]
[0095] FIG. 5 is a drawing for explaining an electronic device according to one embodiment.
[0096] Referring to FIG. 5, according to one embodiment, an electronic device (501) (e.g., electronic device (101) of FIG. 1, electronic device (201) of FIGS. 2 and 3) may process a user utterance using a generative model (e.g., language model) (500). For example, the user utterance may include a speech utterance and / or a text utterance.
[0097] According to one embodiment, the electronic device (501) can generate various types of prompts based on user utterances. For example, the electronic device (501) can generate prompts such as an instruction prompt (e.g., "Set the temperature of the air conditioner to 27 degrees"), a question prompt (e.g., "Tell me about the basic concepts of the generative model"), or a creative prompt (e.g., "Describe a typical day for a person who can communicate with animals").
[0098] According to one embodiment, when the generated prompt is a prompt for controlling the target device (511), the electronic device (501) can generate a response (e.g., a code or a command) using the generation model (500) and transmit the generated response to the target device (511) or a server (not shown) of the target device (511).
[0099] In one embodiment, the target device (511) may be a device that the user wishes to control. The electronic device (501) may determine the target device (511) based on the user's utterance (50). For example, when the user utters a voice command (e.g., "Set an alarm for 6 a.m.") to activate a specific function or application of the electronic device (501), the target device (511) may be the electronic device (501). In another example, when the user utters a voice command (e.g., "Set an alarm for 6 a.m.") to control an external electronic device (e.g., an air conditioner or refrigerator) connected to the electronic device (501) via a network, the target device (511) may be the external electronic device.
[0100] According to one embodiment, the generated model (500) may be a model included in an electronic device (501) (e.g., an on-device model) or a model included in a server (e.g., a server (108) of FIG. 1) (e.g., a cloud-based model).
[0101] In one embodiment, the generative model (500) can generate various types of responses based on prompts. For example, the generative model (500) can generate commands or codes for performing specific tasks, or provide answers or information to questions. The generative model (500) can learn specific APIs (e.g., standardized APIs, such as the Android API) and generate code using the learned APIs.
[0102] In one embodiment, if the generation model (500) has not yet completed training for an API required to control the target device (511), the user (50) may provide a very long prompt to the generation model (500) to control the target device (511), or the user (50) may update the generation model (511) using fine-tuning to control the target device (511). However, these procedures may degrade the user experience. The electronic device (501) may process user utterances in an improved manner to enhance the user experience.
[0103]
[0104] FIG. 6 is a schematic block diagram of a system for processing user speech according to one embodiment.
[0105] Referring to FIG. 6, according to one embodiment, a system (600) for processing user utterances may include a generative model (500), a validation module (610), a conversion module (620), an API repository (630), a critic (640), a response generation module (650), and / or an evaluation module (660). The modules (610-660) may represent functions or software elements of the system (600). Modules (610 to 660) may be included in an electronic device (e.g., electronic device (101) of FIG. 1, electronic device (201) of FIGS. 2 and 4, electronic device (501) of FIG. 5) and / or a server (e.g., server (108) of FIG. 1) capable of communicating with electronic devices (101, 201, 501). For example, modules (610 to 660) may be included in electronic devices (101, 201, 501). In another example, some of modules (610 to 660) may be included in electronic devices (101, 201, 501), and others may be included in server (108).
[0106] In one embodiment, the electronic device (101, 201, 501) can obtain a user utterance (52) (e.g., “Set the temperature of the air conditioner to 27 degrees”) for controlling the target device (511) from the user (50). For example, the electronic device (101, 201, 501) can receive a voice utterance through a microphone or a text utterance through a keyboard (or virtual keyboard).
[0107] In one embodiment, the electronic device (101, 201, 501) may generate an original prompt (e.g., “Set the temperature of the air conditioner to 27 degrees”) based on a user utterance (52) and input (or transmit) the original prompt to a generation model (500).
[0108] In one embodiment, the generative model (500) can generate a first response based on an original prompt (e.g., "Set the temperature of the air conditioner to 27 degrees"). If the generative model (500) has not learned information (e.g., an API) related to the target device (511), the generative model (500) can output general information for controlling the target device (511) instead of commands (e.g., code) for controlling the target device (511). Alternatively, if the generative model (500) has not learned information (e.g., an API) related to the target device (511), the generative model (500) can generate commands (e.g., code) for controlling the target device (511) using an API that the generative model (500) has learned (e.g., an API related to a device other than the target device (511).
[0109] In one embodiment, the generative model (500) can generate a second response based on a prompt generated by the validation module (610) (e.g., "Generate code using a general API to send a command to the air conditioner to set the temperature of the air conditioner to 27 degrees"). For example, the second response can include a command (e.g., code) generated using a general API (e.g., hypertext markup language (HTML), cascading style sheets (CSS), JavaScript functions, or structured query language (SQL)).
[0110] According to one embodiment, the verification module (610) can obtain device information (e.g., identifiers such as device names, addresses of devices) for devices that can be controlled by the system (600) (e.g., devices connected to the electronic devices (101, 201, 501) via a network, such as the target device (511). For example, the device information is stored in a memory (e.g., memory (130) of FIG. 1) of the electronic devices (101, 201, 501), and the verification module (610) can read the device information from the memory (130). As another example, the verification module (610) can receive device information from the devices or a server that manages the devices.
[0111] According to one embodiment, the verification module (610) may determine the validity of the response of the generated model (500) based on the type of response (e.g., first response or second response) of the generated model (500) based on the user utterance (52). When the response of the generated model (500) based on the user utterance (52) (e.g., utterance for controlling the target device (511)) is a type of response other than a command (e.g., code) (e.g., a response for providing information, such as “To set the temperature of the air conditioner, use the remote control to increase or decrease the set temperature”), the verification module (610) may determine that the response of the generated model (500) is invalid. For example, when the response of the generation model (500) generated based on the user utterance (52) is a command (e.g., code), the verification module (610) can determine that the response of the generation model (500) is valid.
[0112] In one embodiment, the validation module (610) may modify the original prompt (e.g., "Set the temperature of the air conditioner to 27 degrees") that was input to the generation model (500) in response to determining that the response of the generation module (500) is invalid. The validation module (610) may generate a modified prompt (e.g., "Generate code to send a command to the air conditioner to set the temperature of the air conditioner to 27 degrees using a generic API") so that the generation model (500) can generate code for controlling the target device (511).
[0113] According to one embodiment, the verification module (610) may transmit the response (e.g., code) of the generation model (500) to the target device (511) or the conversion module (620) in response to determining that the response of the generation module (500) is valid. When the response of the generation model (500) generated based on the user utterance (52) is a command (e.g., code) suitable for controlling the target device (511), the verification module (610) may transmit the response of the generation model (500) to the target device (511) (or a server managing the target device (511). When the response of the generation model (500) generated based on the user utterance (52) is a command (e.g., code) not suitable for controlling the target device (511), the verification module (610) may transmit the response of the generation model (500) to the conversion module (620). For example, when the response of the generation model (500) is a code based on a general API (e.g., HTML, CSS, JavaScript functions, or SQL), the verification module (610) can transmit the response of the generation model (500) to the transformation module (620).
[0114] According to one embodiment, the verification module (610) may transmit information about the target device (511) (e.g., an identifier of the target device (511)) to the conversion module (620).
[0115] According to one embodiment, the conversion module (620) may obtain API information (e.g., an API list) related to the target device (511) based on the response (e.g., a code) of the generation model (500) and information about the target device (511) (e.g., an identifier of the target device). For example, the conversion module (620) may obtain information about APIs related to the target device (511) from the API repository (630) using information about functions (e.g., a list of functions) included in the response of the generation model (500) and information about the target device (511). APIs related to the target device (511) may be mapped to functions included in the response of the generation model (500). For example, the mapping may be any one of 1:1, N (e.g., N is a natural number):1, and 1:N. For example, the transformation module (620) may use various algorithms for mapping, such as mapping tables, search, similarity, supervised learning, or reinforcement learning from human feedback (RLHF).
[0116] According to one embodiment, the conversion module (620) may modify a response (e.g., code) of the generation model (500) based on information (e.g., an API list) about APIs related to the target device (511) obtained from the API repository (630). The response (e.g., code) modified by the conversion module (620) may be a command suitable for controlling the target device (511). The conversion module (620) may transmit the modified response (e.g., modified code) to the target device (511).
[0117] According to one embodiment, the target device (511) may perform a corresponding action based on a command (e.g., code) received from the verification module (610) or the conversion module (620). For example, when the target device (511) is an air conditioner and the received command is a command to set the temperature of the air conditioner to 27 degrees, the target device (511) may change the temperature (e.g., set temperature) of the target device (511) to 27 degrees.
[0118] According to one embodiment, the target device (511) may transmit the operation result to the response generation module (650). For example, when the target device (511) performs an operation to change the current settings of the target device (511) in response to a command received from the verification module (610) or the conversion module (620), the target device (511) may transmit the setting change result to the response generation module (650).
[0119] In one embodiment, the response generation module (650) may generate data based on the operation result of the target device (511) received from the target device (511). For example, the response generation module (650) may generate data such as true or false. As another example, the response generation module (650) may generate text including information about the operation result of the target device (511), such as 'the temperature of the air conditioner was set to 27 degrees'.
[0120] In one embodiment, the response generation module (650) may provide information about the operation result of the target device (511) to the user (e.g., "the temperature of the air conditioner is set to 27 degrees"). For example, the generation module (650) may output information about the operation result of the target device (511) on the display of the electronic device (101, 201, 501). As another example, the generation module (650) may output a voice message notifying the operation result of the target device (511).
[0121] In one embodiment, the evaluation module (660) can evaluate the operating results of the target device (511). To evaluate the operating results of the target device (511), the evaluation module (660) can use data (e.g., feedback data) received from various sources. For example, the evaluation module (660) can use data (e.g., true or false) received from the response generation module (650), data received from a user, or data received from a developer of the system (600).
[0122] In one embodiment, the critic (640) can use data received from the evaluation module (660) to train (e.g., retrain) the transformation module (620).
[0123]
[0124] FIGS. 7 to 10 are diagrams illustrating a system for processing user speech according to one embodiment. FIG. 7 is a flowchart illustrating a system for processing user speech (e.g., system (600) of FIG. 6), and FIGS. 8 to 10 may illustrate exemplary responses (or outputs) generated by modules of the system (600).
[0125] Referring to FIGS. 7 through 10, according to one embodiment, operations 705 through 760 may be performed sequentially, but are not limited thereto. For example, the order of the operations may be changed, or two or more operations may be performed in parallel.
[0126] At operation 705, the generative model (500) may generate a first response (800) based on the original prompt (e.g., “Set the temperature of the air conditioner to 27 degrees”).
[0127] In operation 710, the verification module (610) may identify the type of the first response (800) and determine that the identified type is not a response of a set type (e.g., a command). For example, the verification module (610) may determine that the first response (800) is invalid.
[0128] In operation 715, the validation module (610) may modify the original prompt in response to determining that the first response (800) is invalid. The validation module (610) may modify the original prompt so that the generation model (500) can generate a response (e.g., code) suitable for controlling the target device (e.g., the target device (511) of FIGS. 5 and 6).
[0129] At operation 720, the generative model (500) may generate a second response (900) based on the modified prompt. The second response (900) may be transmitted to the transformation module (620).
[0130] At step 725, the conversion module (620) may generate a request to obtain API information (e.g., an API list) related to the target device (511) (e.g., an air conditioner). The request may include information about functions included in the second response (e.g., a list of functions) and information about the target device (511) (e.g., an identifier of the target device (511)). The conversion module (620) may transmit the request to the API repository (630).
[0131] In operation 730, the API repository (630) may, in response to receiving a request from the conversion module (620), transmit API information related to the target device (511) to the conversion module (620).
[0132] In operations 735 and 740, the conversion module (620) may modify the second response (900) based on API information received from the API storage (630) to generate a command (1000) (e.g., code) required for controlling the target device (511). The conversion module (620) may transmit the command (1000) to the target device (511) or a server of the target device (511).
[0133] In operation 745, in response to receiving the command (1000), the target device (511) may change the temperature (e.g., set temperature) of the target device (511) to 27 degrees. For example, the target device (511) may transmit the result of processing the command (1000) to the response generation module (650).
[0134] In operation 750, the response generation module (650) can generate data on the operation result of the target device (511) based on the result of processing the command (1000).
[0135] In operation 755, the evaluation module (660) can evaluate the operation result of the target device (511).
[0136] In operation 760, the critic (640) can train (e.g., retrain) the transformation module (620) using data generated by the evaluation module (660).
[0137]
[0138] Fig. 11 is a flowchart for explaining the operation of an electronic device according to one embodiment.
[0139] Referring to FIG. 11, according to one embodiment, operations 1110 to 1140 may be performed sequentially, but are not limited thereto. For example, the order of the operations may be changed, or two or more operations may be performed in parallel. Operations 1110 to 1140 may be substantially the same as the operations of the electronic device described with reference to FIGS. 1 to 10 (e.g., the electronic device (101) of FIG. 1, the electronic device (201) of FIGS. 2 and 4, and the electronic device (501) of FIGS. 5 and 6). Therefore, any redundant description will be omitted.
[0140] In operation 1110, the electronic device (101, 201, 501) can obtain a user utterance (e.g., user utterance (62) of FIG. 6).
[0141] In operation 1120, the electronic device (101, 201, 501) can determine a target device to be controlled (e.g., target device (511) of FIGS. 5 and 6) based on a user utterance (62).
[0142] In operation 1130, the electronic device (101, 201, 501) may generate a first code (e.g., a second response (900) of FIG. 9) based on the user utterance using a first generation model (e.g., a generation model (500) of FIGS. 5 and 6).
[0143] In operation 1140, the electronic device (101, 201, 501) can generate a second code (e.g., a command of FIG. 10) by modifying the first code (900) using information about the target device (511) based on the association between the first code (900) and the target device (511).
[0144]
[0145] An electronic device (101, 201, 501) according to one embodiment may include at least one processor (120) and a memory (130) storing instructions. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to acquire a user utterance. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to determine a target device (511) to be controlled based on the user utterance. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to obtain a first code based on the user utterance using the first generation model (500). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to generate a second code by modifying the first code using information about the target device (511) based on a correlation between the first code and the target device (511).
[0146] The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to obtain a response to a prompt corresponding to the user utterance using the first generation model (500). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to modify the prompt in response to determining that the response is a response of a set type. The above instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to generate the first code by processing the modified prompt using the first generation model (500).
[0147] The information about the target device (511) may include an ID (identifier) of the target device (511).
[0148] The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to determine whether the first code is suitable for controlling the target device (511) based on information about the target device (511). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to generate the second code in response to determining that the first code is not suitable for controlling the target device (511).
[0149] The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to obtain API (application programming interface) information related to the target device (511) based on information about the target device (511) and a function included in the first code. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to modify the first code using the API information to generate the second code.
[0150] The above instructions, when executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to generate a second code using a second generation model (620) different from the first generation model (500).
[0151] The above instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to transmit the second code to the target device (511).
[0152] The above instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101, 201, 501) to retrain the second generation model (620) based on an operation of the target device (511) performed in response to receiving the second code.
[0153] An operating method of an electronic device (101, 201, 501) according to one embodiment may include an operation of obtaining a user utterance. The operating method may include an operation of determining a target device (511) to be controlled based on the user utterance. The operating method may include an operation of obtaining a first code based on the user utterance using a first generation model (500). The operating method may include an operation of generating a second code by modifying the first code using information about the target device (511) based on a correlation between the first code and the target device (511).
[0154] The operation of generating the first code may include an operation of modifying the prompt in response to determining that the response is of a set type. The operation of generating the first code may include an operation of generating the first code by processing the modified prompt using the first generation model (500).
[0155] The information about the target device (511) may include an ID (identifier) of the target device (511).
[0156] The operation of generating the second code may include an operation of determining whether the first code is suitable for controlling the target device (511) based on information about the target device (511). The operation of generating the second code may include an operation of generating the second code in response to determining that the first code is not suitable for controlling the target device (511).
[0157] The operation of generating the second code in response to determining that the first code is not suitable for controlling the target device (511) may include an operation of acquiring API (application programming interface) information related to the target device (511) based on information about the target device (511) and a function included in the first code. The operation of generating the second code in response to determining that the first code is not suitable for controlling the target device (511) may include an operation of modifying the first code using the API information to generate the second code.
[0158] The operation of generating the second code may include an operation of generating the second code using a second generation model (620) different from the first generation model (500).
[0159] The above operating method may further include an operation of transmitting the second code to the target device (511).
[0160] The above operating method may further include an operation of retraining the second generation model (620) based on an operation of the target device (511) performed in response to receiving the second code.
[0161]
[0162] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
[0163] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0164] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0165] Various embodiments of the present document may be implemented as software (e.g., a program (1740)) including one or more instructions stored in a storage medium (e.g., an internal memory (1736) or an external memory (1738)) readable by a machine (e.g., an electronic device (1701)). For example, a processor (e.g., a processor (1720)) of the machine (e.g., an electronic device (1701)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0166] According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0167] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and arranged in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
[0168] The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects that are not mentioned can be clearly understood by a person having ordinary skill in the art to which the present disclosure belongs from this document.
Claims
1. In electronic devices (101, 201, 501), at least one processor (120); and Memory for storing instructions (130) Including, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: Obtain user utterance, Based on the above user utterance, the target device (511) to be controlled is determined, Using the first generation model (500), the first code is obtained based on the user's utterance, An electronic device (101, 201, 501) that generates a second code by modifying the first code using information about the target device (511) based on the correlation between the first code and the target device (511).
2. In paragraph 1, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: Obtain a response to a prompt corresponding to the user's utterance using the first generation model (500). In response to determining that the above response is of the set type, modify the above prompt, An electronic device (101, 201, 501) for generating the first code by processing a modified prompt using the first generation model (500).
3. In any one of paragraphs 1 and 2, Information about the above target device (511) is: ID (identifier) of the above target device (511) An electronic device (101, 201, 501) comprising:
4. In any one of paragraphs 1 to 3, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: Based on the information about the target device (511), it is determined whether the first code is suitable for controlling the target device (511), An electronic device (101, 201, 501) that generates the second code in response to determining that the first code is not suitable for controlling the target device (511).
5. In any one of paragraphs 1 to 4, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: Acquire API (application programming interface) information related to the target device (511) based on information about the target device (511) and the function included in the first code, An electronic device (101, 201, 501) that modifies the first code using the API information to generate the second code.
6. In any one of paragraphs 1 to 5, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: An electronic device (101, 201, 501) that generates a second code using a second generation model (620) different from the first generation model (500).
7. In any one of paragraphs 1 to 6, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: An electronic device (101, 201, 501) for transmitting the second code to the target device (511).
8. In any one of paragraphs 1 to 7, The above instructions, when individually or collectively executed by the at least one processor (120), cause the electronic device (101, 201, 501) to: An electronic device (101, 201, 501) that causes the second generation model (620) to be retrained based on an operation of the target device (511) performed in response to receiving the second code.
9. In the operating method of an electronic device (101, 201, 501), The act of obtaining user utterance; An operation of determining a target device (511) to be controlled based on the user's speech; An operation of obtaining a first code based on the user's speech using the first generation model (500); and An operation of generating a second code by modifying the first code using information about the target device (511) based on the correlation between the first code and the target device (511). A method comprising:
10. In paragraph 9, The operation of generating the above first code is: Obtain a response to a prompt corresponding to the user's utterance using the first generation model (500). In response to determining that the above response is a response of the set type, an action is taken to modify the above prompt; and An operation of generating the first code by processing the modified prompt using the first generation model (500) A method comprising:
11. In any one of paragraphs 9 to 10, Information about the above target device (511) is: ID (identifier) of the above target device (511) A method comprising:
12. In any one of paragraphs 9 to 11, The action of generating the above second code is: An operation of determining whether the first code is suitable for controlling the target device (511) based on information about the target device (511); and An operation of generating the second code in response to determining that the first code is not suitable for controlling the target device (511). A method comprising:
13. In any one of paragraphs 9 to 12, The operation of generating the second code in response to determining that the first code is not suitable for controlling the target device (511) is: An operation of obtaining API (application programming interface) information related to the target device (511) based on information about the target device (511) and a function included in the first code; and An action of modifying the first code using the API information to generate the second code. Methods including:
14. In any one of paragraphs 9 to 13, The action of generating the above second code is: An operation of generating a second code using a second generation model (620) different from the first generation model (500) above. A method comprising:
15. In any one of paragraphs 9 to 14, An operation of retraining the second generation model (620) based on the operation of the target device (511) performed in response to receiving the second code. A method further comprising:
Citation Information
Patent Citations
Speech signal processing device, speech signal processing method, speech signal process program, learning device, learning method, and learning program
JP2021039219A
Prefabricated brazier
KR1020210146506A
Light-emitting device
KR1020230106132A
Solid fuel manufacturing system using carbon generated in the hydrogen production process, and method thereof
KR1020240151304A
KR20190125834A