WO2024076114A1 - 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법 - Google Patents

보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법 Download PDF

Info

Publication number
WO2024076114A1
WO2024076114A1 PCT/KR2023/015158 KR2023015158W WO2024076114A1 WO 2024076114 A1 WO2024076114 A1 WO 2024076114A1 KR 2023015158 W KR2023015158 W KR 2023015158W WO 2024076114 A1 WO2024076114 A1 WO 2024076114A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
voice
function
utterance
engine
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2023/015158
Other languages
English (en)
French (fr)
Inventor
김성한
김솔
김영빈
손지수
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020220144807A external-priority patent/KR20240049507A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to CN202380069810.XA priority Critical patent/CN119895381A/zh
Priority to EP23875178.8A priority patent/EP4582926A4/en
Priority to US18/535,568 priority patent/US20240127815A1/en
Publication of WO2024076114A1 publication Critical patent/WO2024076114A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • 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
    • 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

Definitions

  • This disclosure relates to an electronic device and method for controlling the execution of voice commands.
  • the interface between the electronic device and the user may include a keyboard and/or mouse.
  • the types of interfaces between the electronic device and the user may be expanded.
  • an electronic device may use a microphone to identify a user's speech for controlling the electronic device.
  • an electronic device may include a communication circuit, a microphone, a speaker, a memory for storing at least one instruction, and at least one processor.
  • the at least one processor may be configured to execute the at least one instruction and identify the first audio signal received through the microphone.
  • the at least one processor executes the at least one instructions to perform at least one first of the plurality of functions based on identifying a first audio signal containing an utterance for sequentially executing the plurality of functions. It can be configured to perform a function.
  • the at least one processor executes the at least one instructions to perform at least one of the plurality of functions of the external electronic device via the communication circuit based on identifying that the first audio signal includes utterance. It may be configured to perform a second function.
  • the at least one second function may be different from the at least one first function among the plurality of functions.
  • the at least one processor executes the at least one instruction and represents at least one result of performing the at least one first function and the at least one second function through the speaker. 2 may be configured to output audio signals sequentially based on the order associated with the utterance.
  • a method of an electronic device may include identifying a speech in the first audio signal based on receiving the first audio signal through a microphone of the electronic device. .
  • the method includes, based on identifying a plurality of voice commands from the utterance, obtaining a state of a first voice engine executed by the electronic device and a state of a second voice engine executed by an external electronic device. may include.
  • the external electronic device may be connected through a communication circuit of the electronic device.
  • the method includes, based on the state of the first voice engine and the state of the second voice engine, the plurality of voice commands, at least one first voice command performed by the first voice engine, and the second voice command. 2 It may include an operation of obtaining information to distinguish a second voice command performed by a voice engine.
  • the method includes executing a first function corresponding to the at least one first voice command using the first voice engine, and executing a second function corresponding to the at least one second voice command using an external command. It may include an operation requesting an electronic device.
  • the method includes representing at least one result of executing the first function and the second function, based on the order of the plurality of voice commands indicated by the utterance, through the speaker of the electronic device. ) may include the operation of outputting at least one second audio signal.
  • a method of an electronic device may include identifying a first audio signal received through a microphone of the electronic device.
  • the method may include performing at least one first function from the plurality of functions based on identifying that the first audio signal includes an utterance for sequentially performing the plurality of functions. there is.
  • the method based on identifying that the first audio signal includes the utterance, performs at least one second function of the plurality of functions in an external electronic device connected through a communication circuit of the external electronic device. It may include actions to be performed.
  • the at least one second function may be different from the at least one first function.
  • the method includes at least one second function that expresses at least one result of performing the at least one first function and the at least one second function based on a remark related to the remark through a speaker of the electronic device. It may include an operation of sequentially outputting audio signals.
  • an electronic device may include a communication circuit, a microphone, a speaker, and a processor.
  • the processor may be configured to identify a first audio signal through the microphone.
  • the processor may be configured to execute at least one first function of the plurality of functions based on identifying an utterance for sequentially executing the plurality of functions from the first audio signal. Based on identifying the utterance, the processor executes at least one second function, among the plurality of functions, that is different from the at least one first function, using an external electronic device connected through the communication circuit. It can be configured to do so.
  • the processor sequentially transmits, through the speaker, second audio signals representing results of executing the at least one first function and the at least one second function, in an order related to the utterance. Can be configured to output.
  • a method of an electronic device may include identifying a first audio signal through a microphone of the electronic device.
  • the method includes executing at least one first function of the plurality of functions based on a processor of the electronic device based on identifying an utterance for sequentially executing the plurality of functions from the first audio signal.
  • the method based on identifying the utterance, uses an external electronic device connected through a communication circuit of the electronic device to perform at least one second function, among the plurality of functions, that is different from the at least one first function. It can include actions that execute functions.
  • the method sequentially transmits second audio signals representing results of executing the at least one first function and the at least one second function through a speaker of the electronic device in an order related to the utterance. It may include an output operation.
  • an electronic device may include a communication circuit, a microphone, a speaker, and a processor.
  • the processor may be configured to identify utterances included in the first audio signal based on receiving the first audio signal through the microphone.
  • the processor includes a first voice engine executed by the processor to process a voice command based on identifying a plurality of voice commands from the utterance, and the communication circuitry. It may be configured to obtain the states of a second voice engine executed by an external electronic device connected through.
  • the processor provides information for dividing the plurality of voice commands into a first voice command corresponding to the first voice engine and a second voice command corresponding to the second voice engine, based on the states. It can be configured to obtain.
  • the processor executes a first function corresponding to the first voice command using the first voice engine, and executes a second function corresponding to the second voice command to the external electronic device. It can be configured to request execution of .
  • the processor is configured to represent, through the speaker, results of executing the first function and the second function, based on the order of the plurality of voice commands indicated by the utterance. 2 may be configured to output an audio signal.
  • a method of an electronic device may include identifying a speech included in the first audio signal based on receiving the first audio signal through a microphone of the electronic device. You can.
  • the method includes a first voice engine executed by a processor of the electronic device to process voice commands based on identifying a plurality of voice commands from the utterance, and an external electronic device connected through a communication circuit of the electronic device. It may include obtaining the states of a second voice engine executed by the device.
  • the method provides information for dividing the plurality of voice commands into a first voice command corresponding to the first voice engine and a second voice command corresponding to the second voice engine, based on the states. It may include acquisition operations.
  • the method executes a first function corresponding to the first voice command using the first voice engine, and executes a second function corresponding to the second voice command with the external electronic device. It may include an action requesting the execution of .
  • the method includes, through a speaker of the electronic device, a second function representing the results of executing the first function and the second function, based on the order of the plurality of voice commands indicated by the utterance. It may include an operation of outputting an audio signal.
  • FIG. 1 is a block diagram of an electronic device in a network environment, according to one embodiment.
  • FIG. 2 illustrates an example of an operation in which an electronic device executes one or more functions based on speech, according to an embodiment.
  • Figure 3 is a block diagram of an electronic device and an external electronic device, according to one embodiment.
  • FIG. 4 is a block diagram for explaining a program executed by an electronic device, according to an embodiment.
  • Figure 5 is a block diagram of a voice command database included in an electronic device, according to one embodiment.
  • Figure 6 is a block diagram for explaining a program executed by an electronic device, according to an embodiment.
  • FIG. 7 is a block diagram for explaining a program executed by an electronic device, according to an embodiment.
  • FIGS. 8A and 8B illustrate example states in which an electronic device displays a user interface (UI), according to an embodiment.
  • UI user interface
  • FIG. 9 illustrates an operation in which an electronic device executes a plurality of functions based on a utterance, according to an embodiment.
  • Figure 10 is a flowchart of operations performed by an electronic device, according to one embodiment.
  • 11 is a flowchart of operations performed by an electronic device, according to one embodiment.
  • FIG. 12 is a flowchart of operations performed by an electronic device, according to one embodiment.
  • FIG. 13 is a block diagram showing an artificial intelligence (AI) system according to an embodiment.
  • AI artificial intelligence
  • Figure 14 is a diagram showing a schema for storing relationship information between concepts and actions in a database, according to an embodiment.
  • FIG. 15 is a diagram illustrating a user terminal displaying a screen for processing voice input received through an intelligent app, according to an embodiment.
  • the components are not limited. When a component (e.g., a first) component is said to be “connected (functionally or communicatively)" or “connected” to another (e.g., second) component, it means that the component is connected to the other component. It may be connected directly to a component or may be connected through another component (e.g., a third component).
  • module used in this document includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example.
  • a module may be an integrated part, a minimum unit that performs one or more functions, or a part thereof.
  • a module may be comprised of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment 100, according to one embodiment.
  • an electronic device 101 communicates with an external electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. ) (e.g., a long-distance wireless communication network) may communicate with at least one of the external electronic device 104 or the server 108. According to one embodiment, the electronic device 101 may communicate with the external electronic device 104 through the server 108.
  • a first network 198 e.g., a short-range wireless communication network
  • the electronic device 101 may communicate with the external electronic device 104 through the server 108.
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or may include an antenna module 197.
  • at least one of these components eg, the connection terminal 178) may be omitted, or one or more other components may be added to the electronic device 101.
  • some of these components e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.
  • the processor 120 for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or operations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132. The commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
  • software e.g., program 140
  • the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132.
  • the commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
  • the processor 120 includes a main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • a main processor 121 e.g., a central processing unit or an application processor
  • auxiliary processor 123 e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
  • the electronic device 101 includes a main processor 121 and a auxiliary processor 123
  • the auxiliary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can.
  • the auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.
  • the auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled.
  • co-processor 123 e.g., image signal processor or communication processor
  • may be implemented as part of another functionally related component e.g., camera module 180 or communication module 190. there is.
  • the auxiliary processor 123 may include a hardware structure specialized for processing artificial intelligence models.
  • Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 108).
  • Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited.
  • An artificial intelligence model may include multiple artificial neural network layers.
  • Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above.
  • artificial intelligence models may additionally or alternatively include software structures.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto.
  • Memory 130 may include volatile memory 132 or non-volatile memory 134.
  • the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.
  • the input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user).
  • the input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
  • the sound output module 155 may output sound signals to the outside of the electronic device 101.
  • the sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device.
  • the display module 160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 101). Sound can be output through an external electronic device 102 (e.g., speaker or headphone).
  • an external electronic device 102 e.g., speaker or headphone
  • the sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the external electronic device 102).
  • 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.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the external electronic device 102).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 can capture still images and moving images.
  • the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 can manage power supplied to the electronic device 101.
  • the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • Battery 189 may supply power to at least one component of electronic device 101.
  • the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • Communication module 190 provides a direct (e.g., wired) communication channel or wireless communication between electronic device 101 and an external electronic device (e.g., external electronic device 102, external electronic device 104, or server 108). It can support the establishment of a channel and the performance of communication through the established communication channel. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • processor 120 e.g., an application processor
  • the communication module 190 is 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., : LAN (local area network) communication module, or power line communication module) may be included.
  • 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
  • GNSS global navigation satellite system
  • wired communication module 194 e.g., : LAN (local area network) communication module, or power line communication module
  • the corresponding communication module is 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., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network
  • the wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • subscriber information e.g., International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology).
  • NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported.
  • the wireless communication module 192 may support high frequency bands (eg, mmWave bands), for example, to achieve high data rates.
  • the wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna.
  • the wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., external electronic device 104), or a network system (e.g., second network 199).
  • the wireless communication module 192 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC.
  • Peak data rate e.g., 20 Gbps or more
  • loss coverage e.g., 164 dB or less
  • U-plane latency e.g., 164 dB or less
  • the antenna module 197 may transmit signals or power to or receive signals or power from the outside (e.g., an external electronic device).
  • the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 may include a plurality of antennas (eg, 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 is connected to the plurality of antennas by, for example, the communication module 190. can be selected Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna.
  • other components eg, radio frequency integrated circuit (RFIC) may be additionally formed as part of the antenna module 197.
  • RFIC radio frequency integrated circuit
  • a mmWave antenna module includes: a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.
  • a first side e.g., bottom side
  • a designated high frequency band e.g., mmWave band
  • a plurality of antennas e.g., array antennas
  • peripheral devices e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199.
  • Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101.
  • all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108.
  • the electronic device 101 may perform the function or service instead of executing the function or service on its own.
  • one or more external electronic devices may be requested to perform at least part of the function or service.
  • One or more external electronic devices that have received the request may execute at least part 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 part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology can be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an Internet of Things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or server 108 may be included in the second network 199.
  • the electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • FIG. 2 illustrates an operation in which the electronic device 101 executes one or more functions based on a speech 220, according to an embodiment.
  • the electronic device 101 of FIG. 2 may include the electronic device 101 of FIG. 1 .
  • the electronic device 101 may be a terminal owned by a user.
  • Terminals may include, for example, personal computers (PCs) such as laptops and desktops, smartphones, smartpads, and tablet PCs.
  • the terminal may include smart accessories such as a smartwatch and/or a head-mounted device (HMD).
  • HMD head-mounted device
  • the electronic device 101 may interact with the user using sound.
  • the electronic device 101 uses a microphone (e.g., the input module 150 in FIG. 1) to acquire an audio signal, which is an electrical signal dependent on the sound of an external space including the electronic device 101. can do.
  • the electronic device 101 may identify the user's speech 220 from the audio signal.
  • electronic device 101 may execute one or more functions related to utterance 220 .
  • the electronic device 101 may output information including results of executing the one or more functions to the user.
  • the electronic device 101 may generate an audio signal including a speech 250.
  • the electronic device 101 may control a speaker (e.g., the sound output module 155 of FIG. 1) based on the audio signal to reproduce a sound dependent on the audio signal.
  • the structure of the electronic device 101 including a microphone and/or speaker is described with reference to FIG. 3 .
  • the electronic device 101 may identify an input indicating execution of at least one function related to the electronic device 101 from the utterance 220.
  • a voice command may include a command (eg, a command in natural language) input to the electronic device 101 based on a sound, such as a speech 220.
  • the voice command is a function and/or task ( It can be a unit of task).
  • Executing a voice command may include an operation of the electronic device 101 executing at least one function corresponding to the voice command.
  • the electronic device 101 may identify one or more voice commands included in the utterance 220 based on the natural language included in the utterance 220.
  • the external electronic device 210 connected to the electronic device 101 includes a server (e.g., server 108 in FIG. 1) connected to the electronic device 101 to process audio signals including utterances 220. can do.
  • the electronic device 101 identifies a plurality of voice commands (e.g., a first voice command 230 and/or a second voice command 240) from an audio signal identified through a microphone.
  • a plurality of voice commands e.g., a first voice command 230 and/or a second voice command 240
  • the electronic device 101 may identify an utterance 220 for sequentially executing a plurality of functions from the audio signal.
  • the utterance 220 may include designated natural language (e.g., words such as “Hey, Bixby”) for triggering recognition of the utterance 220 by the electronic device 101.
  • the electronic device 101 that has identified the specified natural language may recognize the utterance 220 and identify one or more voice commands included in the utterance 220.
  • the utterance 220 recognized by the electronic device 101 may include natural language (eg, words, phrases, and/or sentences) expressing each of the plurality of functions.
  • the utterance 220 recognized by the electronic device 101 may include a name assigned to the group of the plurality of functions.
  • the name assigned to the group may be referred to as a quick command and/or shortcut.
  • the electronic device 101 can execute a plurality of functions included in the group distinguished by the name.
  • a group of voice commands for executing a plurality of functions may be registered with the electronic device 101 based on the interaction between the electronic device 101 and the user.
  • An example of a user interface (UI) displayed by the electronic device 101 to identify an input for registering the group is described with reference to FIG. 8A.
  • UI user interface
  • the electronic device 101 based on identifying the utterance 220 for sequential execution of the first voice command 230 and the second voice command 240, executes the first voice command 230 and the second voice command 240. (230), and functions corresponding to the second voice command (240) can be executed.
  • the above functions may be executed based on applications executed by the electronic device 101 and/or the external electronic device 210.
  • the application executed by the electronic device 101 and/or the external electronic device 210 may be referred to as a voice engine and/or a natural language unit (NLU). there is.
  • An electronic device executing a voice engine (eg, the electronic device 101 and/or the external electronic device 210) may be controlled to perform an operation matched to a voice command.
  • the duration and/or speed at which the operation matched to the voice command is performed by execution of the voice engine may depend on the performance and/or state of resources of the electronic device on which the voice engine is running.
  • the first voice command 230 and the second voice command 240 correspond to Functions may be executed by at least one of the voice engines.
  • the electronic device 101 that identifies the utterance 220 for sequential execution of the first voice command 230 and the second voice command 240 includes a first voice engine executed by the electronic device 101, and a second voice engine executed by the external electronic device 210, capable of matching each of the first function corresponding to the first voice command 230 and the second function corresponding to the second voice command 240. there is.
  • the electronic device 101 matches the first voice engine and the second voice engine, the first voice command 230, and the second voice command 240 to perform the first function and the second voice command.
  • the execution of functions can be controlled or scheduled.
  • both the first function and the second function may be centrally executed by either the first voice engine or the second voice engine.
  • each of the first function and the second function may be distributed and executed by the first voice engine and the second voice engine.
  • the electronic device 101 selects a voice to be used for execution of at least one voice command included in the utterance 220, based on the states of voice engines executed by different electronic devices including the electronic device 101. You can choose your engine. For example, at least one of the status of the first voice engine executed by the electronic device 101 or the status of the second voice engine executed by the external electronic device 210 may be monitored.
  • the state of the voice engine includes whether the function corresponding to the voice command can be executed based on the execution of the voice engine, the time required to execute the function, and/or the latency time before executing the function.
  • the electronic device 101 selects a voice engine to be used for executing each of the first voice command 230 and the second voice command 240 included in the utterance 220, the first voice command 240, and the second voice command 240. You can select from a voice engine and the second voice engine. Within the example case of FIG. 2 , the electronic device 101 matches the first voice engine and the first voice command 230 and matches the second voice engine and the second voice command 240. can do.
  • the electronic device 101 may execute a first function corresponding to the first voice command 230.
  • the electronic device 101 may obtain first information 235 including the result of executing the first function based on execution of the first voice engine.
  • the electronic device 101 executes the second voice engine to execute a second function corresponding to the second voice command 240.
  • the request can be made to the external electronic device 210.
  • the electronic device 101 may receive second information 245 related to the second function from the external electronic device 210 as a response to the request.
  • the second information 245 may include a result of executing the second function based on the external electronic device 210 and/or the second voice engine.
  • the second information 245 may include information for controlling the electronic device 101 based on execution of the second function.
  • the electronic device 101 performs a first function matched to the first voice command 230 based on obtaining the first information 235 and/or the second information 245, And an audio signal including a speech 250 expressing the results of executing the second function matched to the second voice command 240 may be generated.
  • the electronic device 101 provides the first information 235 including the result of executing the first function, and the second information including the result of executing the second function, based on one or more natural language sentences. It is possible to obtain utterance (250), which expresses (245).
  • the electronic device 101 may generate the audio signal including the utterance 250.
  • the electronic device 101 may control a speaker based on the generated audio signal and output a sound dependent on the audio signal through the speaker.
  • the form in which the electronic device 101 outputs the speech 250 is not limited to the audio signal and/or sound shown in FIG. 2 .
  • An embodiment in which the electronic device 101 uses hardware such as the display 260 to visualize the result of executing at least one voice command for the utterance 220 is described with reference to FIG. 8B.
  • the electronic device 101 executes the plurality of functions based on identifying the utterance 220 for sequentially executing the plurality of functions from the audio signal output from the microphone.
  • Voice engines can be scheduled.
  • the electronic device 101 may perform the plurality of functions based on the state of at least one of the voice engines, at least one first function to be executed by a first voice engine, and at least one first function to be executed by a second voice engine. It can be distinguished by at least one secondary function to be executed.
  • the electronic device 101 executes at least one first function among the plurality of functions and, using the external electronic device 210, among the plurality of functions: capable of executing at least one second function that is different from the at least one first function.
  • the first information 235 of FIG. 2 may be an example of a result of executing the at least one first function based on the first voice engine executed by the electronic device 101.
  • the second information 245 of FIG. 2 may be an example of a result of executing the at least one second function based on the second voice engine executed by the external electronic device 210.
  • the electronic device 101 may output second audio signals expressing results of executing the at least one first function and the at least one second function through a speaker.
  • the order in which the electronic device 101 outputs the second audio signals may match the order of the plurality of functions related to the utterance 220. Because a plurality of functions corresponding to the utterance 220 are executed by distributed processing based on voice engines executed by different electronic devices, the electronic device 101 can more quickly display the results of executing the plurality of functions. It can be obtained easily.
  • FIG. 3 is a block diagram of an electronic device 101 and an external electronic device 210, according to an embodiment.
  • the electronic device 101 of FIG. 3 may include the electronic device 101 of FIGS. 1 and 2 .
  • the external electronic device 210 of FIG. 3 may include the external electronic device 210 of FIG. 2 .
  • the electronic device 101 may include at least one of a processor 120, a memory 130, a display 260, a speaker 310, a microphone 320, or a communication circuit 330.
  • Processor 120, memory 130, display 260, speaker 310, microphone 320, and communication circuit 330 are electronic components such as a communication bus 305. may be electrically and/or operably coupled to each other.
  • hardware being operatively combined will mean that a direct connection or an indirect connection between the hardware is established, wired or wireless, such that the second hardware is controlled by the first hardware among the hardware. You can. Although shown based on different blocks, the embodiment is not limited thereto, and some of the hardware in FIG.
  • SoC SoC
  • the electronic device 101 may include only some of the hardware shown in FIG. 3 .
  • the processor 120 of the electronic device 101 may include hardware components for processing data based on one or more instructions.
  • Hardware components for processing data include, for example, an arithmetic and logic unit (ALU), a floating point unit (FPU), a field programmable gate array (FPGA), a central processing unit (CPU), and/or an application processor (AP).
  • ALU arithmetic and logic unit
  • FPU floating point unit
  • FPGA field programmable gate array
  • CPU central processing unit
  • AP application processor
  • the processor 120 may include a plurality of processors.
  • the processor 120 may have the structure of a multi-core processor such as dual core, quad core, or hexa core.
  • the processor 120 of FIG. 3 may include the processor 120 of FIG. 1 .
  • the memory 130 of the electronic device 101 may include hardware components for storing data and/or instructions input and/or output to the processor 120 .
  • Memory 130 may include, for example, volatile memory such as random-access memory (RAM) and/or non-volatile memory such as read-only memory (ROM). there is.
  • Volatile memory may include, for example, at least one of dynamic RAM (DRAM), static RAM (SRAM), cache RAM, and pseudo SRAM (PSRAM).
  • Non-volatile memory includes, for example, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, hard disk, compact disk, solid state drive (SSD), and embedded multi media card (eMMC).
  • PROM programmable ROM
  • EPROM erasable PROM
  • EEPROM electrically erasable PROM
  • flash memory hard disk, compact disk, solid state drive (SSD), and embedded multi media card (eMMC).
  • eMMC embedded multi media card
  • the display 260 of the electronic device 101 may output visualized information (eg, at least one of the screens of FIGS. 8A and 8B) to the user.
  • the display 260 may be controlled by a controller such as a graphic processing unit (GPU) and/or the processor 120 to output visualized information to the user.
  • the display 260 may include a flat panel display (FPD) and/or electronic paper.
  • the FPD may include a liquid crystal display (LCD), a plasma display panel (PDP), and/or one or more light emitting diodes (LED).
  • the LED may include an organic LED (OLED).
  • the display 260 of FIG. 3 may include the display module 160 of FIG. 1 .
  • the display 260 of the electronic device 101 may include a sensor (e.g., touch sensor panel (TSP)) for detecting an external object (e.g., a user's finger) on the display 260.
  • a sensor e.g., touch sensor panel (TSP)
  • TSP touch sensor panel
  • the electronic device 101 may detect an external object that is in contact with the display 260 or floating on the display 260.
  • the electronic device 101 executes a function associated with a specific visual object corresponding to the location on the display 260 of the external object among the visual objects being displayed within the display 260. You can.
  • the electronic device 101 may include a speaker 310 as an output means for outputting information in a form other than a visualized form.
  • the speaker 310 may include a circuit element that is vibrated by an audio signal received from the processor 120 (e.g., an audio signal including the utterance 250 of FIG. 2).
  • the number of speakers 310 included in the electronic device 101 is not limited to the example shown in FIG. 3, and the electronic device 101 may include one or more speakers.
  • the electronic device 101 may include other output means for outputting information in forms other than visual and auditory forms.
  • the electronic device 101 may include a motor to provide haptic feedback based on vibration.
  • the microphone 320 of the electronic device 101 may output an electrical signal indicating vibration in the atmosphere.
  • the electronic device 101 may identify the user's speech (e.g., speech 220 in FIG. 2) from an audio signal, which is an electrical signal output from the microphone 320.
  • the user's utterances included in the audio signal are in a format recognizable by the electronic device 101 based on a speech recognition model and/or a natural language understanding model, which is an application and/or process executed by the processor 120. It can be converted into information.
  • the electronic device 101 may recognize a user's speech and execute one or more functions among a plurality of functions that can be provided by the electronic device 101.
  • the speaker 310 and/or microphone 320 of FIG. 3 may include the sound output module 155 and/or audio module 170 of FIG. 1 .
  • the communication circuit 330 of the electronic device 101 may include hardware to support transmission and/or reception of electrical signals between the electronic device 101 and the external electronic device 210.
  • the number of external electronic devices 210 connected to the electronic device 101 through the communication circuit 330 is not limited to the embodiment of FIG. 2 and/or FIG. 3 .
  • the communication circuit 330 may include, for example, at least one of a modem (MODEM), an antenna, and an optical/electronic (O/E) converter.
  • MODEM modem
  • O/E optical/electronic
  • the communication circuit 330 includes Ethernet, local area network (LAN), wide area network (WAN), wireless fidelity (WiFi), Bluetooth, bluetooth low energy (BLE), ZigBee, long term evolution (LTE), It can support transmission and/or reception of electrical signals based on various types of protocols, such as 5G new radio (NR).
  • the communication circuit 330 of FIG. 3 may include the communication module 190, subscriber identification module 196, and/or antenna module 197 of FIG. 1.
  • one or more instructions indicating operations and/or operations to be performed by the processor 120 on data may be stored.
  • the set of one or more instructions may include firmware, an operating system (e.g., operating system 142 in FIG. 1), a program (e.g., program 140 in FIG. 1), a process, a routine, a sub-routine, and/or an application (e.g., , may be referred to as application 146 in FIG. 1.
  • the electronic device 101 and/or the processor 120 executes a set of a plurality of instructions distributed in the form of an operating system, firmware, driver, and/or application. , at least one of the operations of FIGS. 10 to 12 may be performed.
  • This may mean stored in a format executable by the processor 120 (eg, a file with an extension specified by the operating system of the electronic device 101).
  • the external electronic device 210 may be connected to the electronic device 101 by wire or wirelessly to perform functions related to voice recognition.
  • the external electronic device 210 may include a server.
  • a server may include one or more PCs and/or workstations.
  • the server is a service that executes one or more functions corresponding to a speech identified from an audio signal output from the microphone 320 of the electronic device 101, and may include, for example, a voice recognition service. You can.
  • the external electronic device 210 may include at least one of a processor 120, a memory 130, and a communication circuit 330. Within external electronic device 210 , processor 120 , memory 130 , and communication circuitry 330 may be electrically and/or operationally coupled via communication bus 305 .
  • the processor 120, memory 130, and communication circuit 330 included in the external electronic device 210 are the processor 120, memory 130, and communication circuit 330 of the electronic device 101. It may include corresponding hardware components and/or circuits.
  • the description of the processor 120, memory 130, and communication circuit 330 included in the external electronic device 210 will be described as the processor 120, memory ( 130), and may be omitted to the extent it overlaps with the communication circuit 330.
  • the program executed by the processor 120 of the electronic device 101 includes an input receiver 340, a quick command processor 350, a speech processor 360, and/or a first voice engine ( 370) is shown.
  • a set of a plurality of instructions stored in memory 130 and/or processes executed by processor 120 include input receiver 340, quick command processor 350, speech processor 360, and /Or it may be divided into a first voice engine 370.
  • the input receiver 340, quick command processor 350, speech processor 360, and/or first voice engine 370 may be included in an application installed in the electronic device 101.
  • the application may be executed by the processor 120 of the electronic device 101 to control the electronic device 101 based on utterances containing natural language sentences.
  • a second voice engine 380 is shown as a program executed by the processor 120 of the external electronic device 210.
  • the second voice engine 380 may include a set of a plurality of applications (eg, applications) stored in the memory 130.
  • the second voice engine 380 uses the processor 120 of the external electronic device 210 to execute a voice command requested from another electronic device (e.g., the electronic device 101) connected to the external electronic device 210. It can be executed by .
  • the electronic device 101 uses a communication circuit to execute at least one voice command identified by the electronic device 101 using the second voice engine 380 executed by the external electronic device 210.
  • a communication link with an external electronic device 210 can be established using 330. For example, the electronic device 101 establishes the communication link based on identifying, from an audio signal output from the microphone 320, a designated natural language for guiding utterance of a natural language sentence corresponding to at least one voice command. can be established.
  • the electronic device 101 may identify a speech from the audio signal output from the microphone 320 based on the execution of the input receiver 340. With the input receiver 340 running, the electronic device 101 may perform an operation to identify speech included in the audio signal based on receiving the audio signal through the microphone 320.
  • the audio signal processed by the input receiver 340 may be transmitted to the second voice engine 380 of the external electronic device 210 by the processor 120 of the electronic device 101.
  • the input receiver 340 receives not only an audio signal output from the microphone 320, but also one or more characters input through a software keyboard displayed through the display 260 and/or a hardware keyboard connected to the electronic device 101. , the text corresponding to the user's remarks can be identified.
  • the electronic device 101 may obtain text representing the utterance included in the audio signal from the external electronic device 210 executing the second voice engine 380. Based on the execution of the quick command processor 350, the electronic device 101 determines whether the text obtained from the external electronic device 210 includes a name (e.g., quick command) assigned to a group of one or more voice commands. can be identified. The electronic device 101 may obtain the name and a group of one or more voice commands corresponding to the name from the user based on execution of the quick command processor 350. Based on the execution of the quick command processor 350, the electronic device 101 may determine whether the user's statement includes a name assigned to the group or process a user input for registering the group. An exemplary structure of the quick command processor 350 is described with reference to FIG. 6 .
  • the electronic device 101 When a utterance included in an audio signal acquired through the microphone 320 includes a name assigned to a group of one or more voice commands, the electronic device 101, based on the execution of the utterance processor 360, selects the group. You can control the execution of one or more voice commands included.
  • the electronic device 101 may select a voice engine through which the one or more voice commands will be input, from the first voice engine 370 or the second voice engine 380, based on the execution of the speech processor 360. For example, the electronic device 101 may schedule execution of one or more functions corresponding to the one or more voice commands based on the execution of the speech processor 360.
  • the electronic device 101 Based on identifying a plurality of voice commands from the utterance, the electronic device 101 selects one or more voice engines (e.g., first voice engine 370, and/or second voice engine 370) running to process the voice command.
  • the states of the engine 380 can be obtained. Based on the states, the electronic device 101 may schedule execution of the one or more functions. Based on the execution of the speech processor 360, the electronic device 101 inputs one or more voice commands in the group to the first voice engine 370, or the communication circuit 330 of the electronic device 101. It can be transmitted to the external electronic device 210 through.
  • voice engines e.g., first voice engine 370, and/or second voice engine 370
  • the states of the engine 380 can be obtained. Based on the states, the electronic device 101 may schedule execution of the one or more functions. Based on the execution of the speech processor 360, the electronic device 101 inputs one or more voice commands in the group to the first voice engine 370, or the communication circuit 330 of the electronic device 101. It can be transmitted to
  • the electronic device 101 Based on the execution of the speech processor 360, the electronic device 101 generates information (e.g., first information 235 of FIG. 2) including results of executing one or more functions corresponding to the one or more voice commands. and/or second information 245) may be obtained from the first voice engine 370 and/or the second voice engine 380.
  • the electronic device 101 may output the information obtained using the speech processor 360 through the speaker 310 and/or the display 260.
  • the electronic device 101 may transmit an audio signal representing the information to the speaker 310.
  • the electronic device 101 may control the display 260 to display a visual object and/or a screen including the information.
  • An example structure of a speech processor 360 executed by the electronic device 101 for scheduling voice commands and/or obtaining results of executing functions corresponding to voice commands is shown with reference to FIGS. 4 to 7 . explained.
  • the electronic device 101 may identify at least one voice command matched to the first voice engine 370 by the speech processor 360, based on the execution of the first voice engine 370.
  • the electronic device 101 may execute at least one function corresponding to the at least one voice command.
  • the at least one function includes a function for controlling hardware included in the electronic device 101 (e.g., a function to adjust the volume of the speaker 310) and a function supported by an application installed in the memory 130 (e.g. , alarm, music playback), and/or a function for retrieving information from the network through the communication circuit 330 (e.g., weather retrieval).
  • the electronic device 101 may store the result of executing the at least one voice command using the speech processor 360 or output it to the user.
  • the processor 120 of the external electronic device 210 may execute at least one function corresponding to at least one voice command requested from the electronic device 101 based on the execution of the second voice engine 380. . Based on the speech processor 360, the electronic device 101 may request the external electronic device 210 to execute at least one voice command. While the second voice engine 380 is running, the processor 120 of the external electronic device 210 may execute at least one function corresponding to the at least one voice command included in the request. The processor 120 of the external electronic device 210 may transmit the result of executing the at least one function to the electronic device 101 using the communication circuit 330. The results transmitted to the electronic device 101 may be output to the user by the processor 120 of the electronic device 101 executing the speech processor 360.
  • the electronic device 101 operates a plurality of voice engines (e.g., a first voice engine 370 and a second voice engine) based on an application such as the speech processor 360. Execution of at least one function to be executed by (380)) may be scheduled or controlled. Based on the scheduling of the plurality of voice engines, the electronic device 101 efficiently uses the plurality of voice engines, while the electronic device 101 and/or external electronics are occupied for execution of the plurality of voice engines. The resources of the device 210 can be reduced.
  • a plurality of voice engines e.g., a first voice engine 370 and a second voice engine
  • the electronic device 101 may identify attributes of voice commands included in the group while registering a group of voice commands by interacting with a user.
  • the attribute can be used for scheduling of the voice engine to execute functions corresponding to voice commands included in the group.
  • Figure 4 is a block diagram of a program executed by the electronic device 101, according to one embodiment.
  • the electronic device 101 of FIG. 4 may be an example of the electronic device 101 of FIG. 3 .
  • the engine 370 may include the electronic device 101 of FIG. 4, memory 130, input receiver 340, quick command processor 350, speech processor 360, and first voice engine 370. You can.
  • instructions and/or sub-routines of the first voice engine 370 for executing functions related to the user's utterance are included in the utterance recognizer 450.
  • TTS text-to-speech
  • natural language processor 460 natural language processor 460
  • dependency manager 470 dependency manager 470
  • event handler 475 Instructions and/or sub-routines of the natural language processor 460 may be divided into a domain classifier 462 and/or a goal classifier 464.
  • instructions and/or sub-routines of the utterance processor 360 for identifying one or more voice commands from a user's utterance include the utterance type classifier 410. ), a voice command interpreter 420, and/or a voice command controller 440.
  • the electronic device 101 can manage the voice command database 430 in the memory 130.
  • An example of information stored in the voice command database 430 is described with reference to FIG. 5 .
  • Instructions, and/or sub-routines within the voice command interpreter 420 may be divided into a meta data analyzer 422, and/or a voice command generator 424.
  • Instructions and/or sub-routines within the voice command controller 440 may be divided into a voice command manager 442, a voice engine scheduler 446, and a utterance storage 448.
  • the electronic device 101 may control the execution of one or more voice commands that match the user's intention included in the speech.
  • the electronic device 101 selects each of the plurality of voice commands included in the group based on the execution of the utterance type classifier 410. Properties for can be obtained.
  • the electronic device 101 may generate metadata of a voice command based on the above properties.
  • the metadata may be stored in the memory 130 of the electronic device 101. Table 1 may include an example of properties included in the metadata of a voice command.
  • the names in Table 1 may be example names assigned to attributes.
  • An attribute with the name Prompt can indicate whether additional parameters are required to execute the function of the voice command, based on a boolean data type.
  • An attribute with the name Time may indicate whether the result of executing the above function varies depending on time.
  • An attribute with the Location name may indicate whether the result of executing the function varies depending on the location of the electronic device 101.
  • An attribute with a device context name may indicate whether the result of executing the function varies depending on the state of the electronic device 101, based on a Boolean data type.
  • An attribute with the name onDevice supported may indicate whether the function is executable by the first voice engine 370, based on a Boolean data type.
  • Attributes included in metadata e.g., attributes with Prompt, Time, Location, Device context, onDevice supported names
  • dependency manager 470 e.g., dependency map
  • an attribute with the name Event list may include a list of one or more functions corresponding to a voice command.
  • the names of the one or more functions may be stored.
  • storing the text 'message' in an attribute with an event list name may indicate that a voice command corresponding to metadata requests execution of a function to display a message.
  • storing the text 'TTS_Response' in an attribute with the Event list name may indicate that a voice command corresponding to metadata requests execution of the TTS function.
  • the fact that the text 'appLaunch' is stored in an attribute with the Event list name may indicate that a voice command corresponding to metadata requests execution of at least one application installed on the electronic device 101.
  • the electronic device 101 may obtain metadata for a voice command based on the first voice engine 370 running together with the utterance type classifier 410. Based on the execution of the natural language processor 460 in the first voice engine 370, the electronic device 101 may perform preprocessing on the natural language included in the voice command. For example, the electronic device 101 may identify whether the voice command can be processed by the first voice engine 370 based on the execution of the domain classifier 462. Whether the voice command can be processed by the first voice engine 370 may be stored in an attribute with the name onDevice supported in Table 1. The electronic device 101 may identify the target of the function (or action) to be executed by the voice command based on the execution of the target classifier 464.
  • the electronic device 101 may perform post-processing on the preprocessed voice command. Based on the execution of the dependency manager 470, the electronic device 101 can identify device dependencies of resources used for processing voice commands. The device dependency may include, for example, whether a function corresponding to the voice command can be processed by the first voice engine 370 and/or the electronic device 101. Based on execution of the event handler 475, the electronic device 101 may obtain a list of functions corresponding to the voice command. The list acquired by the electronic device 101 may be stored in an attribute with the name Event list within metadata.
  • the electronic device 101 may obtain metadata corresponding to one or more voice commands grouped by a quick command.
  • the acquired metadata may be stored in the memory 130 of the electronic device 101.
  • Registering a quick command by the electronic device 101 may include storing the metadata in the memory 130.
  • Registering a quick command by the electronic device 101 may include storing the one or more voice commands in the voice command database 430.
  • the electronic device 101 may process the metadata obtained based on execution of the utterance type classifier 410 based on the voice command interpreter 420. Based on the execution of the voice command interpreter 420, the electronic device 101 can identify information to be stored in the voice command database 430 from the metadata. Based on the execution of the metadata analyzer 422, the electronic device 101 may parse metadata stored in the memory 130 based on the utterance type classifier 410. Based on the execution of the voice command generator 424, the electronic device 101 may store the information parsed by the metadata analyzer 422 in the voice command database 430. An example of a schema of the voice command database 430 is described with reference to FIG. 5 .
  • the electronic device 101 may obtain metadata corresponding to one or more voice commands matching the quick command based on an input indicating registration of the quick command. .
  • the electronic device 101 may store information corresponding to one or more voice commands in the voice command database 430.
  • the electronic device 101 uses the stored metadata to One or more voice commands to be executed, and properties of the one or more voice commands may be identified.
  • electronic device 101 may select the one or more voice commands and the properties. Can be identified quickly. Operations performed by the electronic device 101 based on identifying the utterance including the quick command are described with reference to FIG. 6 .
  • FIG. 5 is a block diagram of a voice command database 430 included in an electronic device, according to one embodiment.
  • the electronic device in FIG. 5 may be an example of the electronic device 101 in FIGS. 3 and 4 .
  • the voice command database 430 of FIG. 4 may include the voice command database 430 of FIG. 5 .
  • the voice command database 430 of FIG. 5 may be managed based on the execution of the speech processor 360 of FIGS. 3 and 4.
  • the electronic device includes information included in the voice command database 430, a first table 510 for storing parameters corresponding to voice commands, and one or more events to be executed by the voice command. Related parameters can be stored separately in a second table 520 for storing them.
  • the electronic device may update the voice command database 430 based on one or more voice commands while registering a quick command including one or more voice commands.
  • the electronic device may store parameters corresponding to voice commands.
  • Table 2 may include an example of the parameters stored in the first table 510 of the voice command database 430.
  • a parameter with an ID name may include an identifier (e.g., key value) that is uniquely assigned to records in the first table 510 of the voice command database 430.
  • Parameters with Command names may include natural language corresponding to voice commands.
  • a parameter with the Engine type name may include a value for identifying a voice engine that can execute one or more functions corresponding to a voice command.
  • a parameter with the Engine type name indicates that the one or more functions are a first voice engine (e.g., the first voice engine 370 of FIG. 3) executed by an electronic device, and an external electronic device (e.g., It may include a value indicating whether it can be executed by each of the second voice engines (e.g., the second voice engine 380 of FIG.
  • a parameter with the name Static event list may indicate whether the function corresponding to the voice command is changed.
  • a parameter with an event list name may indicate how the results of executing one or more functions corresponding to a voice command are output.
  • a parameter with the name Event list may include an identifier uniquely assigned to a record of the second table 520.
  • the electronic device stores a method in which results of executing one or more functions of a voice command matched to a specific record of the first table 510 are output based on a parameter having an event list name in the second table 520. Records can be identified.
  • the parameter with the Event list name can be used for combining the first table 510 and the second table 520 (eg, combining tables based on a join operation).
  • the electronic device may indicate how the results of executing one or more functions of the voice command are output based on a parameter (or field) having the name of an event message.
  • the parameter may represent the method based on structured text such as JSON (javascript object notation).
  • JSON Javascript object notation
  • a parameter with an event message name may indicate how the results are output based on xml (extended marked-up language).
  • xml extended marked-up language
  • the electronic device may process an input indicating registering a quick command for executing a plurality of groups of functions.
  • the quick command for example, performs functions arranged by the user (e.g., a function to play music, a function to cancel an alarm, and a weather forecast) based on a simplified natural language such as “good morning.” output function) can be executed sequentially.
  • the electronic device may store information used to execute the functions in units of voice commands corresponding to each of the functions in the memory of the electronic device.
  • the information stored by the electronic device may include parameters used in scheduling the voice commands (eg, the type of electronic device and/or voice engine on which the voice command can be executed).
  • the electronic device may execute one or more functions corresponding to the one or more registered voice commands in response to an utterance including the quick command.
  • the electronic device may control scheduling and/or execution of the one or more functions based on execution of the voice command controller 440 of FIG. 4 .
  • FIGS. 6 and 7 an example of an operation performed by an electronic device based on identifying a quick command from an audio signal output from a microphone will be described, according to an embodiment.
  • FIG. 6 is a block diagram for explaining a program executed by the electronic device 101, according to an embodiment.
  • the electronic device 101 of FIG. 6 may be an example of the electronic device 101 of FIGS. 3 and 4 .
  • the engine 370 may include the electronic device 101 of FIG. 6, memory 130, input receiver 340, quick command processor 350, speech processor 360, and first voice engine 370. You can.
  • the instructions and/or sub-routines of the quick command processor 350 for identifying whether the user's utterance includes a quick command include a comparator 610, an executor 620, and a quick command. It can be divided into a generator 630.
  • the electronic device 101 may manage a quick command database 640 containing information about quick commands in the memory 130. In the state of registering a quick command from a user, the electronic device 101 registers the natural language corresponding to the quick command, a language type (e.g., English), an identifier uniquely assigned to the quick command, and the time at which the quick command was registered. Can be stored in the quick command database 640.
  • the information stored in the quick command database 640 may be stored in an external electronic device connected to the electronic device 101 (e.g., memory 130 of the external electronic device 210 in FIGS. 2 and 3).
  • the electronic device 101 may identify a user's speech from an audio signal output from a microphone (eg, microphone 320 in FIG. 3).
  • the electronic device 101 identifies the utterance by using the utterance recognizer 450 in the first voice engine 370 and/or the second voice engine of the external electronic device (e.g., the second voice engine 380 in FIG. 2). ) may include an operation of obtaining text corresponding to the audio signal, based on the execution of.
  • the electronic device 101 can compare the text and the quick command stored in the quick command database 640 to identify whether a quick command is included in the utterance.
  • the electronic device 101 may identify one or more voice commands included in the utterance based on the execution of the utterance processor 360.
  • the electronic device 101 may identify metadata corresponding to the one or more voice commands from the memory 130 using the utterance type classifier 410. If metadata corresponding to the one or more voice commands exists in the memory 130, the electronic device 101 may identify properties of the one or more voice commands based on the metadata. Based on the identified properties, the electronic device 101 selects a voice engine to be used for executing the one or more voice commands: the first voice engine 370, or the second voice engine (e.g., the second voice engine in FIG. 3). You can choose from engines (380).
  • the electronic device 101 may transmit the plurality of voice commands to the first voice engine 370, or the second voice engine ( Yes, it can be processed using at least one of the second voice engines 380 of FIG. 3). For example, the electronic device 101 may select a voice engine in an idle state among the first voice engine 370 and the second voice engine. In the above example, the electronic device 101 may sequentially execute a plurality of functions corresponding to the plurality of voice commands using the selected voice engine. To select an idle voice engine, the electronic device 101 establishes a communication link with an external electronic device (e.g., the external electronic device 210 of FIGS. 2 and 3) on which the second voice engine runs, or Alternatively, an established communication link may be maintained.
  • an external electronic device e.g., the external electronic device 210 of FIGS. 2 and 3
  • the electronic device 101 may perform an operation related to the quick command based on the executor 620. For example, the electronic device 101 may control execution of the speech processor 360 based on the executor 620. Within the state of identifying the quick command included in the utterance, the electronic device 101 executes the utterance processor 360 to identify metadata related to the quick command and parameters stored in the voice command database 430. You can. The metadata and the parameters may indicate at least one voice command matching the quick command.
  • the quick command is registered in the electronic device 101 for execution of a plurality of voice commands, the user utters the quick command of a relatively short length independently of the sentences corresponding to each of the plurality of voice commands.
  • functions corresponding to the plurality of voice commands can be executed.
  • voice commands frequently executed by a user are grouped into quick commands
  • the electronic device 101 recognizes the relatively short length of the quick command instead of recognizing sentences corresponding to the voice commands, and executes the plurality of voice commands. Commands can be executed.
  • the electronic device 101 Within the state of identifying the metadata related to the quick command and the information in the voice command database 430, the electronic device 101 generates at least one command corresponding to the quick command based on the execution of the voice command controller 440. You can obtain a list of voice commands. The electronic device 101 may schedule a voice engine to process the at least one voice command based on the list. While the voice command controller 440 is running, the electronic device 101 can obtain information about the first voice engine 370 and the second voice engine executed by an external electronic device. Information on the second voice engine may include latency and/or delay generated when an external electronic device executing the second voice engine processes a voice command. Information about the second voice engine may include the status of the second voice engine (eg, whether it is in an idle state).
  • the electronic device 101 indicates that the first voice engine 370 or the second voice engine, indicated by the states of the first voice engine 370 and the second voice engine, each corresponds to a voice command.
  • the at least one voice command corresponding to the quick command may be classified based on whether at least one function can be executed. For example, when a plurality of voice commands are identified in the list, the electronic device 101 generates the plurality of voice commands based on the states of the first voice engine 370 and the second voice engine. , can be classified into a first group to be executed by the first voice engine 370, and a second group to be executed by the second voice engine.
  • the electronic device 101 may identify a plurality of voice commands corresponding to the quick command based on identifying the quick command from the user's utterance.
  • the electronic device 101 is used for scheduling the plurality of voice commands based on information (e.g., metadata, and/or voice command database 430) stored in the memory 130 while registering a quick command.
  • the above information can be obtained.
  • the electronic device 101 executes the voice command controller 440 based on the information, and selects a voice engine to process each of the plurality of voice commands, using different voice engines (e.g., a first voice engine 370, and the second voice engine).
  • Figure 7 is a block diagram of a program executed by the electronic device 101, according to one embodiment.
  • the electronic device 101 of FIG. 7 may be an example of the electronic device 101 of FIGS. 3 to 6 .
  • the first voice engine 370 of FIGS. 3 to 6 may include the first voice engine 370 of FIG. 7 .
  • the voice command controller 440 and the voice command database 430 of FIG. 4 may include the voice command controller 440 and the voice command database 430 of FIG. 7 .
  • the external electronic device 210 of FIG. 3 may include the external electronic device 210 of FIG. 7 .
  • instructions and/or sub-routines of the voice command controller 440 executed by the electronic device 101 include the voice command manager 442, the voice engine scheduler 446, and/or It can be divided into utterance storage 448. Based on identifying the quick command registered in the electronic device 101 from the utterance, the electronic device 101 can execute the voice command controller 440.
  • the electronic device 101 may obtain information required for execution of the voice command controller 440 from the voice command database 430. From the voice command database 430, the electronic device 101 may obtain information related to at least one voice command corresponding to the quick command.
  • the electronic device 101 may obtain information related to at least one voice command corresponding to the quick command. Based on the information, the electronic device 101 may determine whether to process the at least one voice command based on a voice engine. For example, when the result of executing at least one function corresponding to a voice command is cached in the memory (e.g., memory 130 of FIG. 3) of the electronic device 101, the electronic device 101 may bypass processing of voice commands based on the voice engine and store the cached results in utterance storage 448. Whether to store the result in utterance storage 448 may depend on whether the result, as identified by electronic device 101, is valid.
  • the electronic device 101 may decide to process the voice command based on the voice engine. there is.
  • the electronic device 101 can identify a voice command to be processed by a voice engine among the plurality of voice commands based on execution of the voice command manager 442. there is.
  • the electronic device 101 may perform scheduling for one or more voice commands to be processed by the voice engine.
  • the scheduling is used to process the one or more voice commands among the first voice engine 370 executed by the electronic device 101 and the second voice engine 380 executed by the external electronic device 210.
  • the operation of selecting the voice engine to be used may be included.
  • the electronic device 101 sends a plurality of voice commands to the first cue 710 corresponding to the first voice engine 370 and the second voice engine ( It can be allocated to any one of the second queues 720 corresponding to 380).
  • the first queue 710 is an area formed in the memory of the electronic device 101 (e.g., the memory 130 in FIG.
  • the second queue 720 is another area formed in the memory, and may store information about one or more voice commands to be sequentially transmitted to the external electronic device 210.
  • the electronic device 101 forms a first queue 710 and a second queue 720 having a first in first out (FIFO) data structure based on the execution of the voice engine scheduler 446. Although shown, the embodiment is not limited thereto.
  • the electronic device 101 In a state in which the voice engine scheduler 446 is executed, the electronic device 101 is connected to at least one of the states of the first voice engine 370 and/or the second voice engine 380 and the properties of the voice command. Based on this, the voice command can be stored in either the first cue 710 or the second cue 720. For example, among the properties, based on the property with the onDevice supported name in Table 1, the electronic device 101 determines that the voice command is exclusively performed by a specific voice engine (e.g., the second voice engine 380). You can obtain whether it should be processed or not. In response to identifying a voice command with properties that should be processed exclusively by the second voice engine 380, the electronic device 101 may place the voice command in first queue 710 or second queue 720.
  • a specific voice engine e.g., the second voice engine 380
  • the electronic device 101 may classify voice commands based on whether the first voice engine 370 or the second voice engine 380 is in an idle state. For example, when the second voice engine 380 is in another state different from the idle state, the electronic device 101 may store at least one voice command to be processed by the voice engine in the first queue 710. there is.
  • the electronic device 101 can calculate the total duration for which a plurality of voice commands included in the quick command are processed using a cost function. . To minimize the total period, the electronic device 101 may classify a plurality of voice commands into either the first queue 710 or the second queue 720.
  • the cost function may depend on the states and/or performances of the first voice engine 370 and the second voice engine 380, respectively.
  • the electronic device 101 directly or indirectly classifies the voice engines. It can be controlled with .
  • the electronic device 101 may execute the first voice engine 370 based on at least one voice command accumulated in the first queue 710.
  • the electronic device 101 may transmit at least one signal including at least one voice command accumulated in the second queue 720 to the external electronic device 210 executing the second voice engine 380. .
  • the electronic device 101 can indirectly control the second voice engine 380 executed by the external electronic device 210.
  • the electronic device 101 Based on the execution of the speech storage 448, the electronic device 101 stores the results of executing the voice commands stored in each of the first queue 710 and the second queue 720 in the memory of the electronic device 101. You can save it. Based on the execution of the speech storage 448, the electronic device 101 stores the result of processing at least one voice command accumulated in the first queue 710 using the first voice engine 370 in the memory. You can. Based on the execution of the speech storage 448, the electronic device 101 processes the result of processing at least one voice command included in the signal received from the external electronic device 210 and accumulated in the second queue 720. , can be stored in the memory.
  • the electronic device 101 may store results of processing voice commands by different voice engines based on the order of processing a plurality of voice commands set while registering a quick command. For example, the results accumulated in the memory of the electronic device 101 based on execution of the speech storage 448 may be sorted based on the order of processing the plurality of voice commands. Based on the execution of the speech storage 448, the electronic device 101 may form a queue in the memory in which the results of processing a plurality of voice commands are stored.
  • the electronic device 101 From the results of processing a plurality of voice commands accumulated in the memory of the electronic device 101 based on the speech storage 448 and corresponding to the quick command, the electronic device 101 generates an audio signal corresponding to each of the results. can be obtained. Based on the order of the plurality of voice commands, the electronic device 101 may sequentially transmit the audio signals to the speaker. Based on the sequential transmission of the audio signals, the electronic device 101 can output sounds representing the results through the speaker.
  • the audio signals may include utterances (eg, natural language sentences) expressing the results.
  • the electronic device 101 generates a plurality of voice commands corresponding to one quick command using each of the first voice engine 370 and the second voice engine 380. It can be processed separately. Since the plurality of voice commands are processed separately, the idle time of each of the first voice engine 370 and the second voice engine 380 can be minimized.
  • FIGS. 8A and 8B an operation of registering a quick command by the electronic device 101 according to an embodiment, and a plurality of messages corresponding to the quick command in response to a statement including the quick command.
  • An example of an operation for processing voice commands is described.
  • FIGS. 8A and 8B illustrate example states 801 and 802 in which the electronic device 101 displays a user interface (UI), according to one embodiment.
  • UI user interface
  • the electronic device 101 of FIGS. 8A and 8B may be an example of the electronic device 101 of FIGS. 3 to 7 .
  • the electronic device 101 and the display 260 of FIG. 3 may include the electronic device 101 and the display 260 of FIGS. 8A and 8B.
  • 8A and 8B, different states 801 and 802 are shown in which the electronic device 101 displays a UI provided from an application for recognizing speech from an audio signal.
  • the application may include one or more instructions for executing the input receiver 340, quick command processor 350, speech processor 360, and/or first voice engine 370 of FIG. 3.
  • the electronic device 101 may display a screen for registering a quick command on the display 260.
  • the electronic device 101 may receive information required for registration of a quick command from the user through the display 260.
  • the electronic device 101 may display a text box 810 on the display 260 to obtain a natural language to be used to identify a quick command.
  • the electronic device 101 may display a button 815 for obtaining the natural language based on the utterance.
  • the electronic device 101 may obtain the natural language from an audio signal obtained using a microphone.
  • the electronic device 101 may display a button 860 on the display 260 for adding one or more voice commands executed by a quick command.
  • the electronic device 101 may obtain a voice command through text and/or audio signals.
  • the electronic device 101 displays a visual object corresponding to each of the four voice commands in the display 260. (820, 830, 840, 850) can be displayed.
  • the order in which the visual objects 820, 830, 840, and 850 are arranged within the display 260 may indicate the order of executing the fourth voice commands based on the quick command.
  • the electronic device 101 may visualize voice commands to be executed by the quick command using visual objects 820 , 830 , 840 , and 850 .
  • the visual object 820 may correspond to a voice command for executing an alarm-related function.
  • the electronic device 101 may display a natural language sentence (eg, “Set the alarm”) representing the voice command.
  • the electronic device 101 may display a button 822 for adjusting the order in which voice commands corresponding to the visual object 820 are executed.
  • the electronic device 101 may display a button 824 for excluding the voice command corresponding to the visual object 820 from voice commands to be executed by the quick command.
  • the electronic device 101 may display a natural language sentence (e.g., “Read the last text I received”) representing a voice command corresponding to the visual object 830.
  • the electronic device 101 may display a natural language sentence (eg, “Register a reminder in 10 minutes”) expressing a voice command corresponding to the visual object 840.
  • the electronic device 101 may display a natural language sentence (eg, “Tell me the weather”) expressing a voice command corresponding to the visual object 850.
  • the utterance designated for a quick command is the visual objects 820, 830, 840, and 850.
  • the length of the designated utterance may be shorter than the natural language sentences.
  • the electronic device 101 may display a button 870 for registering a quick command based on information displayed in the display 260.
  • the electronic device 101 may display a button 875 for bypassing registration of the quick command.
  • the electronic device 101 may register a quick command executed by text entered into the text box 810.
  • the electronic device 101 may perform the operations described above with reference to FIGS. 4 and 5 .
  • the electronic device 101 may store information about voice commands corresponding to the visual objects 820, 830, 840, and 850 based on the execution of the speech processor 360 of FIGS. 3 and 4.
  • the information may include metadata for the voice commands, described above with reference to Table 1, and/or properties for the voice commands, described above with reference to Table 2.
  • the electronic device 101 may obtain properties for the voice commands, as shown in Table 3.
  • the properties in Table 3 may be stored in metadata for voice commands corresponding to visual objects 820, 830, 840, and 850.
  • the first voice command corresponding to the visual object 820 may include a natural language sentence related to an alarm (eg, “Set the alarm”). Since the natural language sentence does not include parameters (eg, time) for controlling the alarm, additional input of the parameters may be required to process the first voice command.
  • the electronic device 101 may assign a specified value indicating that additional input for processing the first voice command is required within the attribute having the prompt name in the metadata corresponding to the first voice command. there is.
  • the second voice command corresponding to the visual object 830 may include a natural language sentence related to short message service (SMS) (eg, “Read the last text message”).
  • SMS short message service
  • the second voice command may depend on the state of the electronic device 101 at the time of processing the second voice command (eg, a state in which at least one text message is stored in the electronic device 101).
  • the electronic device 101 includes, within the metadata corresponding to the second voice command, an attribute having a device context name, a designated message indicating that it is required to identify the state of the electronic device 101 for processing the second voice command.
  • a value can be assigned.
  • the third voice command corresponding to the visual object 840 may include a natural language sentence related to an alarm (e.g., “Register a reminder in 10 minutes”).
  • the function executed by the third voice command may be dependent on the timing of processing the third voice command.
  • the electronic device 101 assigns a specified value to an attribute with the name time in the metadata corresponding to the third voice command, indicating that the current time of the electronic device 101 is required for processing the third voice command. It can be expressed.
  • the fourth voice command corresponding to the visual object 850 may include a natural language sentence (eg, “Tell me the weather”) for acquiring information through the network.
  • the function executed by the fourth voice command may require communication with an external electronic device different from the electronic device 101 (eg, a third-party server for providing weather information).
  • the electronic device 101 may indicate that an external electronic device is required for processing the fourth voice command by assigning a specified value to an attribute with the name “onDevice supported” in the metadata corresponding to the fourth voice command. there is.
  • the electronic device 101 can obtain the properties of the four voice commands matched to the quick command by the user. there is.
  • state 801 of FIG. 8A based on identifying the “command” utterance from the audio signal output from the microphone, the electronic device 101 identifies the quick command, which is registered to execute the four voice commands. can do.
  • FIG. 8B after state 801 of FIG. 8A, a state 802 is shown in which the electronic device 101 identifies the utterance (“command”) for executing the quick command.
  • the electronic device 101 may obtain metadata for four voice commands corresponding to the quick command, described above with reference to Table 3. Based on the metadata, the electronic device 101 can match each of the voice commands with one of different voice engines.
  • the voice engines include a first voice engine executed by the electronic device 101 (e.g., the first voice engine 370 in FIG. 3), and a second voice engine executed by an external electronic device different from the electronic device 101. It may include a voice engine (eg, the second voice engine 380 of FIG. 3).
  • the electronic device 101 may allocate the voice commands to the voice engines to minimize the total period during which the voice commands are processed based on the voice engines. After the electronic device 101 allocates the voice commands to the voice engines, processing the voice commands directly or indirectly based on the voice engines is as described above with reference to FIGS. 6 to 7. It can be performed based on movement.
  • the electronic device 101 may sequentially output audio signals representing the results of processing the voice commands according to the order of the voice commands. For example, the electronic device 101 may sequentially output the audio signals based on the order of the visual objects 820, 830, 840, and 850 in the state 801 of FIG. 8A.
  • the electronic device 101 may visualize the results of processing voice commands in the display 260.
  • the electronic device 101 can display visual objects 882, 884, 886, and 888 corresponding to each of the results in parallel through a visual object 880 in the form of a pop-up window. there is.
  • the order and/or layout in which the electronic device 101 displays the visual objects 882, 884, 886, and 888 is not limited to the embodiment of FIG. 8B.
  • the electronic device 101 may display information including the result of executing the first voice command.
  • the electronic device 101 may display information including the result of executing the second voice command.
  • the electronic device 101 may display information including the result of executing the third voice command.
  • the electronic device 101 may display information including the result of executing the fourth voice command.
  • the electronic device 101 may individually display the results of executing the voice commands in parallel using different voice engines using visual objects 882, 884, 886, and 888. For example, before the processing of the second voice command is completed, the electronic device 101 may display the result of processing the third voice command using the visual object 886.
  • the electronic device 101 can quickly execute a plurality of voice commands matched to the quick command in response to an utterance including a quick command using different voice engines. .
  • the electronic device 101 may output audio signals expressing the results of processing the plurality of voice commands using a speaker.
  • the electronic device 101 may display the results in parallel on the display 260.
  • the embodiment is not limited to this, and for example, the electronic device 101 may sequentially display the results on the display 260. Because the electronic device 101 displays the results in parallel through the display 260, the electronic device 101 executes other voice commands independently of failure in processing a specific voice command among the plurality of voice commands.
  • the processed results can be displayed to the user.
  • FIG. 9 illustrates an operation in which the electronic device 101 executes a plurality of functions based on a utterance 910, according to one embodiment.
  • the electronic device 101 of FIG. 9 may be an example of the electronic device 101 of FIGS. 3 to 7 .
  • the electronic device 101 and the display 260 of FIG. 3 may include the electronic device 101 and the display 260 of FIG. 9 .
  • the external electronic device 210 of FIG. 9 may include the external electronic device 210 of FIG. 2 and/or FIG. 7 .
  • the electronic device 101 may identify a utterance 910 including a plurality of voice commands.
  • the statement 910 can be identified from an audio signal output through a microphone included in the electronic device 101.
  • the electronic device 101 generates a function corresponding to the function for scheduling an alarm from the first part 912 (e.g., “Set the alarm for 7 o’clock”) in the natural language sentence included in the utterance 910.
  • the first voice command 920 can be identified.
  • the electronic device 101 generates a second voice command ( 930) can be identified.
  • the electronic device 101 may identify the voice commands 920 and 930 from the utterance 910 based on the execution of the utterance processor 360 of FIG. 4 .
  • the electronic device 101 may transmit the plurality of voice commands into different electronic Input may be made by at least one of the voice engines running on the devices.
  • the voice engines include a first voice engine (e.g., first voice engine 370 in FIG. 3) executed by the electronic device 101, and an external electronic device 210 connected to the electronic device 101. may include a second voice engine (eg, the second voice engine 380 of FIG. 3).
  • the electronic device 101 processes the first voice command 920 using the first voice engine, and generates first information 925 including the result of processing the first voice command 920. can be obtained.
  • the electronic device 101 may transmit a signal including the second voice command 930 to the external electronic device 210 in order to process the second voice command 930 using the second voice engine.
  • the electronic device 101 may receive another signal including second information 935 in response to the signal from the external electronic device 210.
  • the second information 935 included in the other signal may include the result of processing the second voice command 930 by the external electronic device 210 executing the second voice engine.
  • the electronic device 101 includes results of processing a plurality of voice commands (e.g., the first voice command 920 and the second voice command 930) identified from the utterance 910.
  • a statement 940 including information may be output to the user.
  • the electronic device 101 may output the speech 940 using an audio signal transmitted to a speaker.
  • the utterance 940 is a natural language sentence 942 based on first information 925 that is the result of processing the first voice command 920 (e.g., "The alarm will sound at 7 o'clock "), and a natural language sentence 944 (e.g., "It's news. Today, company S is --) based on the second information 935 that is the result of processing the second voice command 930. You can.
  • the electronic device 101 may make a utterance including a quick command (e.g., utterance 220 in FIG. 2) and/or a utterance expressing a plurality of voice commands (e.g., utterance 220 in FIG. 2). Based on the utterance 910 of 9, an input for processing a plurality of voice commands can be identified. Based on the input, the electronic device 101, based on the states of the first voice engine executed by the electronic device 101 and the second voice engine executed by the external electronic device 210, Multiple voice commands can be processed in parallel.
  • the electronic device 101 sequentially processes the results of processing the plurality of voice commands in parallel according to the order of the plurality of voice commands sorted by the quick command. It can be displayed as .
  • Figure 10 shows a flowchart of operations performed by an electronic device, according to one embodiment.
  • the electronic device of FIG. 10 may include the electronic device 101 of FIGS. 1 to 9 . At least one of the operations of FIG. 10 may be executed by the electronic device 101 of FIG. 3 and/or the processor 120 within the electronic device 101 of FIG. 3 . In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
  • the electronic device may identify a first audio signal through a microphone.
  • the first audio signal may represent vibration of an external space including the microphone.
  • the microphone in operation 1010 is a microphone connected to the electronic device by wire, such as the microphone 320 of FIG. 3 or headphones, or a microphone connected wirelessly to the electronic device through the communication circuit 330 of FIG. 3, such as wireless earphones. It may include at least one microphone.
  • the electronic device may determine whether an utterance for sequentially executing a plurality of functions has been identified from the first audio signal.
  • the utterance may include natural language registered in the electronic device to execute a quick command.
  • the utterance may include natural language sentences expressing a plurality of functions, such as utterance 910 of FIG. 9.
  • the electronic device may perform a plurality of functions based on the processor. At least one first function among the functions may be executed.
  • the electronic device is connected to an external electronic device (e.g., external electronic device 330 in FIG. 3) via a communication circuit (e.g., communication circuit 330 in electronic device 101 in FIG. 3).
  • the electronic device 210 may be used to execute at least one second function, which is different from at least one first function, among a plurality of functions.
  • the electronic device includes the plurality of functions matched to the utterance identified from the first audio signal, the at least one first function to be executed by a processor of the electronic device, and the plurality of functions matched to the utterance identified from the first audio signal. It can be distinguished by at least one secondary function.
  • the electronic device's division of the plurality of functions into the at least one first function and the at least one second function may be performed based on the operations described above with reference to FIGS. 6 and 7 .
  • the electronic device may perform the plurality of functions based on the states of a first voice engine executed by a processor and a second voice engine executed by an external electronic device, the at least one first function, and the at least one second function.
  • the electronic device may process at least one first function classified among the plurality of functions using a first voice engine executed by a processor of the electronic device.
  • the electronic device may transmit the at least one second function to an external electronic device and obtain a result of executing the at least one second function from the external electronic device.
  • the electronic device displays a second function that expresses the results of executing at least one first function and at least one second function through a speaker.
  • Audio signals can be output.
  • the electronic device may output the second audio signals in response to the utterance identified through the first audio signal.
  • Each of the second audio signals may include a natural language sentence expressing the results of processing each of the plurality of functions of operation 1020.
  • the order of natural language sentences output from the electronic device through the second audio signals may correspond to the order of a plurality of functions indicated by the utterance.
  • an utterance for executing a single function (e.g., a third function) is identified from the first audio signal (1020-No), based on operation 1060, the electronic device, the electronic device's processor, or an external electronic device Any one of the devices can be used to execute a third function corresponding to the first audio signal.
  • the electronic device may identify the state of the first voice engine executed by the processor and/or the state of the second voice engine executed by the external electronic device. For example, the electronic device may execute the third function using a voice engine that is in an idle state among the first voice engine or the second voice engine.
  • the electronic device may output a third audio signal expressing the result of executing the third function.
  • the electronic device may output second audio signals and/or third audio signals based on the utterance included in the first audio signal.
  • the embodiment is not limited thereto, and the electronic device visualizes the results of executing one or more functions corresponding to the utterance identified by operation 1020 using a display within the electronic device, as described above with reference to FIG. 8B. can do.
  • Figure 11 shows a flowchart of operations performed by an electronic device, according to one embodiment.
  • the electronic device of FIG. 11 may include the electronic device 101 of FIGS. 1 to 9 . At least one of the operations of FIG. 11 may be executed by the electronic device 101 of FIG. 3 and/or the processor 120 within the electronic device 101 of FIG. 3 . At least one of the operations in FIG. 11 may be related to at least one of the operations in FIG. 10 . In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
  • the electronic device may identify a utterance from an audio signal.
  • the electronic device may identify utterances using a first voice engine executed by a processor of the electronic device, or may identify utterances using a second voice engine executed by an external electronic device connected to the electronic device. Identifying a utterance by an electronic device may include an operation of acquiring text data corresponding to the utterance.
  • the electronic device may determine whether metadata corresponding to the utterance has been identified.
  • the metadata may be identified using a speech processor (eg, speech processor 360 of FIG. 3) executed by the electronic device.
  • the electronic device Within the state of identifying metadata corresponding to the utterance (1120-Yes), based on operation 1130, the electronic device generates a voice engine to process the utterance, based on the metadata identified by operation 1120. You can select .
  • the electronic device may select a voice engine for executing one or more functions related to speech from among the first voice engine or the second voice engine.
  • the electronic device can independently perform operation 1130 for each of the plurality of voice commands. For example, based on operation 1130, the voice engine through which each of the plurality of voice commands will be processed may be independently selected from the first voice engine or the second voice engine.
  • the electronic device may select a voice engine through which speech will be processed, from the first voice engine or the second voice engine, based on properties in metadata. For example, when an attribute indicating that the utterance is selectively executed by a specific voice engine is identified through metadata, the electronic device may select a voice engine to process the utterance based on the attribute. If metadata corresponding to the utterance is not identified (1120-No), selection of the voice engine based operation 1130 may be bypassed.
  • the electronic device may determine, from the utterance, whether a parameter required to execute a function corresponding to the utterance has been identified. If the parameter is not identified from the statement (1140-No), based on operation 1160, the electronic device may request the user for the parameter required to execute the function. If the parameter has been identified from an utterance, or if the function does not require any parameters (1140 - Yes), based on operation 1150, the electronic device may process the utterance using a voice engine. The electronic device may output results of processing the utterance (eg, results of executing one or more voice commands included in the utterance) using a speaker and/or display.
  • results of processing the utterance eg, results of executing one or more voice commands included in the utterance
  • Figure 12 shows a flowchart of operations performed by an electronic device, according to one embodiment.
  • the electronic device of FIG. 12 may include the electronic device 101 of FIGS. 1 to 9 . At least one of the operations of FIG. 12 may be executed by the electronic device 101 of FIG. 3 and/or the processor 120 within the electronic device 101 of FIG. 3 . At least one of the operations in FIG. 12 may be related to at least one of the operations in FIGS. 10 and 11 . In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
  • the electronic device may identify a speech included in the first audio signal received through the microphone.
  • the electronic device may perform operation 1210 of FIG. 12 similar to operation 1110 of FIG. 11 .
  • the electronic device includes a first voice engine executed by a processor, based on identifying a plurality of voice commands from the utterance, and an external electronic device.
  • the states of the second voice engine executed by can be obtained.
  • the electronic device may perform operation 1220 based on identifying a quick command for executing the group of the plurality of voice commands.
  • the states that the electronic device acquires based on operation 1220 may indicate whether the first voice engine and/or the second voice engine are in an idle state.
  • the electronic device within operation 1230, generates a plurality of voice commands based on states, a first voice command corresponding to a first voice engine, and a second voice command. It can be classified into a second voice command corresponding to the voice engine.
  • the electronic device is indicated by states and, based on the possibility of executing the respective functions of the first voice engine or the second voice engine, each of the plurality of functions is configured to perform at least one first function and at least one second function. It can be divided into 2 functions.
  • the electronic device based on the feasibility of each function of the first voice engine or the second voice engine indicated by the states, configures each of the plurality of functions to at least one first function and at least one second function.
  • the electronic device may perform scheduling for a plurality of voice commands in operation 1220.
  • the electronic device may store the first voice command and the second voice command in different areas (e.g., the first queue 710 and the second queue 720 of FIG. 7) within the memory of the electronic device.
  • the electronic device may execute a first function corresponding to a first voice command using a first voice engine. Since the first voice engine is executed by the processor of the electronic device, the electronic device may selectively process the first voice command among the plurality of voice commands based on operation 1240.
  • the electronic device may request execution of a second function corresponding to the second voice command from an external electronic device.
  • the electronic device may request execution of the second function by transmitting information related to the second voice command to the external electronic device executing the second voice engine.
  • the electronic device may receive a signal and/or information including a result of executing the second function from an external electronic device in response to the request.
  • the order in which the electronic device executes operations 1240 and 1250 is not limited to the embodiment of FIG. 12 .
  • the electronic device may perform operations 1240 and 1250 in parallel.
  • the electronic device executes the first function and the second function based on the order of a plurality of voice commands indicated by the utterance.
  • a second audio signal representing the sound may be output.
  • the sound output by the electronic device through the second audio signal may include natural language sentences expressing the results of executing the first function and the second function.
  • the order in which the natural language sentences are output may depend on the order in which the plurality of voice commands are processed, which is set within the quick command registration state.
  • FIG. 13 is a block diagram showing an artificial intelligence (AI) system according to an embodiment.
  • AI artificial intelligence
  • the artificial intelligence system 10 of one embodiment may include a user terminal 1300, an intelligent server 1400, and a service server 1500.
  • the user terminal 1300 (e.g., the electronic device 101 in FIG. 1) of one embodiment may be a terminal device (or electronic device) capable of connecting to the Internet, for example, a mobile phone, a smartphone, or a personal digital assistant (PDA). It may be a digital assistant), laptop computer, TV, white goods, wearable device, HMD, or smart speaker.
  • a terminal device or electronic device capable of connecting to the Internet
  • PDA personal digital assistant
  • It may be a digital assistant
  • laptop computer TV, white goods, wearable device, HMD, or smart speaker.
  • the user terminal 1300 may include a communication interface 1310, a microphone 1320, a speaker 1330, a display 1340, a memory 1350, and a processor 1360.
  • the components listed above may be operatively or electrically connected to each other.
  • the communication interface 1310 may be connected to an external device and configured to transmit and receive data.
  • the microphone 1320 may receive sound (eg, a user's speech) and convert it into an electrical signal.
  • the speaker 1330 may output an electrical signal as sound (eg, voice).
  • display 1340 may be configured to display images or videos.
  • the display 1340 may display a graphic user interface (GUI) of an app (or application program) that is being executed.
  • GUI graphic user interface
  • Display 1340 in one embodiment may be configured to display images or video.
  • the display 1340 of one embodiment may also display a graphic user interface (GUI) of an app (or application program) that is being executed.
  • GUI graphic user interface
  • the display 1340 in one embodiment may receive a touch input through a touch sensor.
  • the display 1340 may receive text input through a touch sensor in the on-screen keyboard area displayed within the display 1340.
  • the memory 1350 may store a client module 1351, a software development kit (SDK) 1353, and a plurality of apps 1355.
  • the client module 1351 and SDK 1353 may form a framework (or solution program) for performing general functions. Additionally, the client module 1351 or SDK 1353 may configure a framework for processing user input (eg, voice input, text input, touch input).
  • the plurality of apps 1355 may be programs for performing designated functions.
  • the plurality of apps 1355 may include a first app 1355_1 and a second app 1355_3.
  • each of the plurality of apps 1355 may include a plurality of operations to perform a designated function.
  • the plurality of apps 1355 may include at least one of an alarm app, a message app, and a schedule app.
  • the plurality of apps 1355 are executed by the processor 1360 to sequentially execute at least some of the plurality of operations.
  • the processor 1360 may control the overall operation of the user terminal 1300.
  • the processor 1360 may be electrically connected to the communication interface 1310, the microphone 1320, the speaker 1330, the display 1340, and the memory 1350 to perform designated operations.
  • the processor 1360 may also execute a program stored in the memory 1350 to perform a designated function.
  • the processor 1360 may execute at least one of the client module 1351 or the SDK 1353 and perform the following operations to process user input.
  • the processor 1360 may control the operation of a plurality of apps 1355 through, for example, the SDK 1353.
  • the following operations described as operations of the client module 1351 or SDK 1353 may be operations performed by the processor 1360.
  • the client module 1351 may receive user input.
  • the client module 1351 may generate a voice signal corresponding to a user utterance detected through the microphone 1320.
  • the client module 1351 may receive a touch input detected through the display 1340.
  • the client module 1351 may receive text input detected through a keyboard or visual keyboard.
  • the client module 1351 may receive various types of user input detected through an input module included in the user terminal 1300 or an input module connected to the user terminal 1300.
  • the client module 1351 may transmit the received user input to the intelligent server 1400.
  • the client module 1351 may transmit status information of the user terminal 1300 to the intelligent server 1400 along with the received user input.
  • the status information may be, for example, execution status information of an app.
  • the client module 1351 may receive a result corresponding to the received user input.
  • the client module 1351 may receive a result corresponding to the user input from the intelligent server 1400.
  • the client module 1351 may display the received result on the display 1340. Additionally, the client module 1351 may output the received result as audio through the speaker 1330.
  • the client module 1351 may receive a plan corresponding to the received user input.
  • the client module 1351 can display the results of executing a plurality of operations of the app according to the plan on the display 1340.
  • the client module 1351 can sequentially display execution results of a plurality of operations on a display and output audio through the speaker 1330.
  • the user terminal 1300 may display only partial results of executing a plurality of operations (eg, the result of the last operation) and output audio through the speaker 1330.
  • the client module 1351 may receive a request from the intelligent server 1400 to obtain information necessary to calculate a result corresponding to the user input.
  • Information needed to calculate the result may be, for example, status information of the user terminal 1300.
  • the client module 1351 may transmit the necessary information to the intelligent server 1400 in response to the request.
  • the client module 1351 may transmit information as a result of executing a plurality of operations according to a plan to the intelligent server 1400.
  • the intelligent server 1400 can confirm that the received user input has been correctly processed through the result information.
  • the client module 1351 may include a voice recognition module. According to one embodiment, the client module 1351 can recognize voice input that performs a limited function through the voice recognition module. For example, the client module 1351 may run an intelligent app to process voice input to perform an organic action through a designated input (e.g., wake up!).
  • the intelligent server 1400 may receive information related to the user's voice input from the user terminal 1300 through a communication network. According to one embodiment, the intelligent server 1400 may change data related to the received voice input into text data. According to one embodiment, the intelligent server 1400 may create a plan for performing a task corresponding to the user's voice input based on the text data.
  • the plan may be generated by an artificial intelligence (AI) system.
  • Artificial intelligence systems may be rule-based systems, neural network-based systems (e.g., feedforward neural networks (FNN)), recurrent neural networks, etc. (RNN)). Alternatively, it may be a combination of the above or a different artificial intelligence system.
  • a 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, an artificial intelligence system can select at least one plan from a plurality of predefined plans.
  • the intelligent server 1400 may transmit a result calculated according to the generated plan to the user terminal 1300 or transmit the generated plan to the user terminal 1300.
  • the user terminal 1300 may display results calculated according to the plan on the display.
  • the user terminal 1300 may display the results of executing an operation according to the plan on the display.
  • the intelligent server 1400 of one embodiment includes a front end 1410, a natural language platform 1420, a capsule DB 1430, an execution engine 1440, It may include an end user interface (1450), a management platform (1460), a big data platform (1470), and an analytic platform (1480).
  • the front end 1410 may receive user input received from the user terminal 1300.
  • the front end 1410 may transmit a response corresponding to the user input.
  • the natural language platform 1420 includes an automatic speech recognition module (ASR module) 1421, a natural language understanding module (NLU module) 1423, and a planner module ( It may include a planner module (1425), a natural language generator module (NLG module) (1427), and a text to speech module (TTS module) (1429).
  • ASR module automatic speech recognition module
  • NLU module natural language understanding module
  • TTS module text to speech module
  • the automatic voice recognition module 1421 may convert voice input received from the user terminal 1300 into text data.
  • the natural language understanding module 1423 can determine the user's intention using text data of voice input. For example, the natural language understanding module 1423 may determine the user's intention by performing syntactic analysis or semantic analysis on user input in the form of text data.
  • the natural language understanding module 1423 uses linguistic features (e.g., grammatical elements) of morphemes or phrases to determine the meaning of a word extracted from user input, and matches the meaning of the identified word to intent. You can determine the user's intention by doing this.
  • the natural language understanding module 1423 can acquire intent information corresponding to the user's utterance.
  • Intention information may be information indicating the user's intention determined by interpreting text data.
  • Intent information may include information indicating an action or function that the user wishes to perform using the device.
  • the planner module 1425 may generate a plan using the intent and parameters determined by the natural language understanding module 1423. According to one embodiment, the planner module 1425 may determine a plurality of domains required to perform the task based on the determined intention. The planner module 1425 may determine a plurality of operations included in each of the plurality of domains determined based on the intention. According to one embodiment, the planner module 1425 may determine parameters required to execute the determined plurality of operations or result values output by executing the plurality of operations. The parameters and the result values may be defined as concepts related to a specified format (or class). Accordingly, the plan may include a plurality of operations and a plurality of concepts determined by the user's intention.
  • the planner module 1425 may determine the relationship between the plurality of operations and the plurality of concepts in a stepwise (or hierarchical) manner. For example, the planner module 1425 may determine the execution order of a plurality of operations determined based on the user's intention based on a plurality of concepts. In other words, the planner module 1425 may determine the execution order of the plurality of operations based on parameters required for execution of the plurality of operations and results output by executing the plurality of operations. Accordingly, the planner module 1425 may generate a plan that includes association information (eg, ontology) between a plurality of operations and a plurality of concepts. The planner module 1425 can create a plan using information stored in the capsule database 1430, which stores a set of relationships between concepts and operations.
  • association information eg, ontology
  • the natural language generation module 1427 may change designated information into text form.
  • the information changed to the text form may be in the form of natural language speech.
  • the text-to-speech conversion module 1429 in one embodiment can change information in text form into information in voice form.
  • the capsule database 1430 may store information about the relationship between a plurality of concepts and operations corresponding to a plurality of domains.
  • the capsule database 1430 may store a plurality of capsules including a plurality of action objects (action objects or action information) and concept objects (concept objects or concept information) of the plan.
  • the capsule database 1430 may store the plurality of capsules in the form of CAN (concept action network).
  • a plurality of capsules may be stored in a function registry included in the capsule database 1430.
  • the capsule database 1430 may include a strategy registry in which strategy information necessary for determining a plan corresponding to a voice input is stored.
  • the strategy information may include standard information for determining one plan when there are multiple plans corresponding to user input.
  • the capsule database 1430 may include a follow up registry in which information on follow-up actions is stored to suggest follow-up actions to the user in a specified situation.
  • the follow-up action may include, for example, follow-up speech.
  • the capsule database 1430 may include a layout registry that stores layout information of information output through the user terminal 1300.
  • the capsule database 1430 may include a vocabulary registry where vocabulary information included in capsule information is stored.
  • the capsule database 1430 may include a dialogue registry in which information about dialogue (or interaction) with a user is stored.
  • the capsule database 1430 may update stored objects through a developer tool.
  • the developer tool may include, for example, a function editor for updating operation objects or concept objects.
  • the developer tool may include a vocabulary editor for updating the vocabulary.
  • the developer tool may include a strategy editor that creates and registers a strategy for determining the plan.
  • the developer tool may include a dialogue editor that creates a dialogue with the user.
  • the developer tool may include a follow up editor that can edit follow-up utterances to activate follow-up goals and provide hints. The subsequent goal may be determined based on currently set goals, user preferences, or environmental conditions.
  • the capsule database 1430 may also be implemented within the user terminal 1300.
  • the user terminal 1300 may include a capsule database 1430 that stores information for determining an operation corresponding to a voice input.
  • the execution engine 1440 may calculate a result using the generated plan.
  • the end user interface 1450 may transmit the calculated result to the user terminal 1300.
  • the user terminal 1300 can receive the result and provide the received result to the user.
  • the management platform 1460 can manage information used in the intelligent server 1400.
  • the big data platform 1470 may collect user data.
  • the analysis platform 1480 may manage quality of service (QoS) of the intelligent server 1400.
  • analytics platform 1480 may manage the components and processing speed (or efficiency) of intelligent server 1400.
  • the service server 1500 may provide a designated service (eg, food ordering or hotel reservation) to the user terminal 1300.
  • the service server 1500 may be a server operated by a third party.
  • the service server 1500 may include a first service server 1501, a second service server 1503, and a third service server 1505 operated by different third parties.
  • the service server 1500 may provide the intelligent server 1400 with information for creating a plan corresponding to the received voice input.
  • the provided information may be stored in capsule database 1430, for example. Additionally, the service server 1500 may provide result information according to the plan to the intelligent server 1400.
  • the user terminal 1300 can provide various intelligent services to the user in response to user input.
  • the user input may include, for example, input through a physical button, touch input, or voice input.
  • the user terminal 1300 may provide a voice recognition service through an internally stored intelligent app (or voice recognition app).
  • the user terminal 1300 may recognize a user utterance or voice input received through the microphone and provide a service corresponding to the recognized voice input to the user. .
  • the user terminal 1300 may perform a designated operation alone or together with the intelligent server and/or service server based on the received voice input. For example, the user terminal 1300 may run an app corresponding to a received voice input and perform a designated operation through the executed app.
  • the user terminal 1300 when the user terminal 1300 provides a service together with the intelligent server 1400 and/or the service server, the user terminal detects a user utterance using the microphone 1320, A signal (or voice data) corresponding to the detected user utterance may be generated. The user terminal may transmit the voice data to the intelligent server 1400 using the communication interface 1310.
  • the intelligent server 1400 in response to a voice input received from the user terminal 1300, creates a plan for performing a task corresponding to the voice input, or performs an operation according to the plan. can produce one result.
  • 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 a plurality of operations and a plurality of concepts.
  • the user terminal 1300 in one embodiment may receive the response using the communication interface 1310.
  • the user terminal 1300 outputs a voice signal generated inside the user terminal 1300 to the outside using the speaker 1330, or outputs an image generated inside the user terminal 1300 to the outside using the display 1340. It can be output as .
  • FIG. 14 is a diagram illustrating a schema for database of relationship information between concepts and operations, according to various embodiments.
  • the capsule database (e.g., capsule database 1430 of FIG. 13) of the intelligent server may store a plurality of capsules in the form of a concept action network (CAN) 1600.
  • the capsule database may store operations for processing tasks corresponding to the user's voice input, and parameters necessary for the operations in CAN (concept action network) format.
  • the CAN may represent an organic relationship between an action and a concept that defines the parameters necessary to perform the action.
  • the capsule database may store a plurality of capsules (eg, Capsule A (1601), Capsule B (1604)) corresponding to each of a plurality of domains (eg, applications).
  • one capsule eg, Capsule A (1601)
  • one capsule is connected to at least one service provider (e.g., CP 1 (1602), CP 2 (1603), CP 3 (1606), or CP 4 (1605)) to perform the functions of the domain related to the capsule. can be responded to.
  • one capsule may include at least one operation 1610 and at least one concept 1620 for performing a designated function.
  • a natural language platform may generate a plan for performing a task corresponding to a received voice input using a capsule stored in a capsule database.
  • the planner module of the natural language platform e.g., planner module 1425 in FIG. 13
  • plan 1607 is created using the operations 1711, 1713 and concepts 1712, 1714 of Capsule A (1601) and the operations 1741 and concepts 1742 of Capsule B (1604). can be created.
  • Figure 15 is a diagram showing a screen on which a user terminal processes voice input received through an intelligent app according to various embodiments.
  • the user terminal 1300 may run an intelligent app to process user input through an intelligent server (eg, the intelligent server 1400 in FIG. 13).
  • an intelligent server eg, the intelligent server 1400 in FIG. 13.
  • the user terminal 1300 processes the voice input.
  • a designated voice input e.g., wake up! or receives an input through a hardware key (e.g., a dedicated hardware key)
  • the user terminal 1300 processes the voice input.
  • You can run intelligent apps for example, the user terminal 1300 may run an intelligent app while executing a schedule app.
  • the user terminal 1300 may display an object (e.g., an icon) 1511 corresponding to an intelligent app on a display (e.g., the display 1340 of FIG. 13).
  • the user terminal 1300 may receive voice input through a user's utterance.
  • the user terminal 1300 may receive a voice input saying “Tell me this week’s schedule!”
  • the user terminal 1300 may display a user interface (UI) 1513 (e.g., input window) of an intelligent app displaying text data of a received voice input on the display.
  • UI user interface
  • the user terminal 1300 may display a result corresponding to the received voice input on the display.
  • the user terminal 1300 may receive a plan corresponding to the received user input and display 'this week's schedule' on the display according to the plan.
  • an electronic device e.g., electronic device 101 of FIG. 3
  • a communication circuit e.g., communication circuit 330 of FIG. 3
  • a microphone e.g. , may include a microphone 320 in FIG. 3
  • a speaker e.g., speaker 310 in FIG. 3
  • a processor e.g., processor 120 in FIG. 3
  • the processor may be configured to identify a first audio signal through the microphone.
  • the processor based on identifying an utterance (e.g., utterance 220 in FIG. 2) for sequentially executing a plurality of functions from the first audio signal, executes at least one first function of the plurality of functions. Can be configured to run. Based on identifying the utterance, the processor performs at least one of the plurality of functions using an external electronic device (e.g., external electronic device 210 of FIG. 3) connected through the communication circuit. Can be configured to perform at least one second function that is different from the first function. The processor sequentially transmits, through the speaker, second audio signals representing results of executing the at least one first function and the at least one second function, in an order related to the utterance. Can be configured to output. According to one embodiment, the electronic device can execute a plurality of functions more quickly using the electronic device and an external electronic device based on a statement for executing the plurality of functions.
  • the processor may include a first voice engine (e.g., the first voice engine 370 in FIG. 3) executed by the processor, and a second voice engine (e.g., the first voice engine 370 in FIG. 3) executed by the external electronic device. It may be configured to obtain the states of the second voice engine 380 of 3. The processor, based on the conditions, configures the plurality of functions into the at least one first function to be executed by the first voice engine and the at least one second function to be executed by the second voice engine. It can be configured to distinguish.
  • a first voice engine e.g., the first voice engine 370 in FIG. 3
  • a second voice engine e.g., the first voice engine 370 in FIG. 3 executed by the external electronic device. It may be configured to obtain the states of the second voice engine 380 of 3.
  • the processor based on the conditions, configures the plurality of functions into the at least one first function to be executed by the first voice engine and the at least one second function to be executed by the second voice engine. It can be configured
  • the processor may perform each of the plurality of functions based on whether each of the first voice engine or the second voice engine, indicated by the states, is capable of executing a function. , It may be configured to be divided into the at least one first function, and the at least one second function.
  • the processor sends at least one first voice command corresponding to the at least one first function to a first cue (e.g., first cue 710 in FIG. 7) corresponding to the first voice engine. It can be configured to allocate as .
  • the processor allocates at least one second voice command corresponding to the at least one second function, or to a second cue (e.g., second queue 720 in FIG. 7) corresponding to the second voice engine. It can be configured to do so.
  • the processor may be configured to execute the first voice engine based on the at least one first voice command accumulated in the first queue, among the voice commands.
  • the processor may be configured to transmit, among the voice commands, at least one signal including the at least one second voice command accumulated in the second queue to the external electronic device. .
  • the electronic device may further include memory (eg, memory 130 of FIG. 3).
  • the processor may be configured to store information in a memory, including the results, with the results arranged according to the order.
  • the information may include a queue in which utterances included in the second audio signals are arranged in the order.
  • the electronic device may further include a display (eg, display 260 in FIG. 3).
  • the processor may be configured to display, in the display, different visual objects containing the results (e.g., visual objects 882, 884, 886, 888 of FIG. 8) in parallel. .
  • a method of an electronic device identifies a speech included in the first audio signal based on receiving the first audio signal through a microphone of the electronic device. It may include an operation (e.g., operation 1210 of FIG. 12).
  • the method includes a first voice engine executed by a processor of the electronic device to process voice commands based on identifying a plurality of voice commands from the utterance, and an external electronic device connected through a communication circuit of the electronic device.
  • An operation of obtaining the states of a second voice engine executed by the device (e.g., operation 1220 of FIG. 12) may be included.
  • the method provides information for dividing the plurality of voice commands into a first voice command corresponding to the first voice engine and a second voice command corresponding to the second voice engine, based on the states. It may include an acquisition operation (eg, operation 1230 of FIG. 12).
  • the method based on the information, executes a first function corresponding to the first voice command using the first voice engine, and executes a second function corresponding to the second voice command with the external electronic device. It may include an operation requesting execution of (e.g., operations 1240 and 1250 of FIG. 12).
  • the method includes a second function representing the results of executing the first function and the second function, based on the order of the plurality of voice commands indicated by the utterance, through the speaker of the electronic device. It may include an operation of outputting an audio signal (e.g., operation 1260 of FIG. 12).
  • the operation of identifying the utterance may include, in response to receiving the first audio signal, requesting text data corresponding to the first audio signal from the external electronic device.
  • the operation of identifying the utterance may include identifying the utterance based on the text data received from the external electronic device.
  • the requesting operation may include requesting execution of the second function from the external electronic device and then receiving information including a result of executing the second function from the external electronic device. there is.
  • the requesting operation may include storing the information received from the external electronic device in the memory based on the order.
  • the operation of obtaining the information may include obtaining the information based on the states and whether each of the first voice engine or the second voice engine is capable of executing the plurality of voice commands. It may include actions such as:
  • the output operation may include an operation of displaying visual objects corresponding to each of the results of executing the first function and the second function on the display of the electronic device.
  • the method of an electronic device may include an operation of identifying a first audio signal through a microphone of the electronic device (e.g., operation 1010 of FIG. 10).
  • the method includes executing at least one first function of the plurality of functions based on a processor of the electronic device based on identifying an utterance for sequentially executing the plurality of functions from the first audio signal. It may include an operation (e.g., operation 1030 of FIG. 10).
  • the method based on identifying the utterance, uses an external electronic device connected through a communication circuit of the electronic device to perform at least one second function, among the plurality of functions, that is different from the at least one first function.
  • the method may include an operation to execute a function (e.g., operation 1040 of FIG. 10).
  • the method sequentially transmits second audio signals representing results of executing the at least one first function and the at least one second function through a speaker of the electronic device in an order related to the utterance. It may include an output operation (e.g., operation 1050 of FIG. 10).
  • the method may include obtaining the states of a first voice engine executed by the processor and a second voice engine executed by the external electronic device.
  • the method may, based on the conditions, convert each of the plurality of functions into the at least one first function to be executed by the first voice engine and the at least one second function to be executed by the second voice engine. It can include actions that are classified by function.
  • the operation of distinguishing each of the plurality of functions is based on whether each of the first voice engine or the second voice engine, indicated by the states, is capable of executing the function. It may include an operation of dividing into at least one first function and the at least one second function.
  • the distinguishing operation may include allocating at least one first voice command corresponding to the at least one first function to a first cue corresponding to the first voice engine.
  • the distinguishing operation may include an operation of allocating at least one second voice command corresponding to the at least one second function, or to a second cue corresponding to the second voice engine.
  • the outputting operation may include expressing the results and outputting the second audio signals based on the queue of utterances arranged according to the order.
  • an electronic device e.g., electronic device 101 in FIG. 3 includes a communication circuit (e.g., communication circuit 330 in FIG. 3) and a microphone (e.g., It may include a microphone 320 in FIG. 3), a speaker (eg, speaker 310 in FIG. 3), and a processor (eg, processor 120 in FIG. 3).
  • the processor may be configured to identify a utterance included in the first audio signal (e.g., utterance 220 of FIG. 2) based on receiving the first audio signal through the microphone.
  • the processor is configured to process a voice command based on identifying a plurality of voice commands (e.g., voice commands 230 and 240 of FIG. 2) from the utterance.
  • a first voice engine executed by a processor (e.g., first voice engine 370 in FIG. 3), and executed by an external electronic device (e.g., external electronic device 210 in FIG. 3) connected through the communication circuit. It may be configured to obtain the states of the second voice engine (eg, the second voice engine 380 of FIG. 3).
  • the processor provides information for dividing the plurality of voice commands into a first voice command corresponding to the first voice engine and a second voice command corresponding to the second voice engine, based on the states. It can be configured to obtain.
  • the processor executes a first function corresponding to the first voice command using the first voice engine, and executes a second function corresponding to the second voice command to the external electronic device. It can be configured to request execution of .
  • the processor is configured to represent, through the speaker, the results of executing the first function and the second function based on the order of the plurality of voice commands indicated by the utterance. 2 may be configured to output an audio signal.
  • the electronic device may further include memory (eg, memory 130 of FIG. 3).
  • the processor may be configured to identify, within the memory, a designated utterance for triggering execution of the plurality of voices based on the order.
  • the processor may be configured to identify the plurality of voice commands matched to the utterance based on whether the utterance included in the first audio signal corresponds to the specified utterance.
  • the processor may be configured to receive information including a result of executing the second function from the external electronic device after requesting the external electronic device to execute the second function.
  • the processor may be configured to store the information received from the external electronic device in the memory based on the order.
  • the designated utterance may include another word that is different from one or more words associated with the plurality of voice commands.
  • the processor may be configured to obtain the information based on the conditions and whether each of the first voice engine or the second voice engine is capable of executing the plurality of voice commands. You can.
  • the processor may be configured to request text data corresponding to the first audio signal from the external electronic device in response to receiving the first audio signal.
  • the processor may be configured to identify the utterance based on the text data received from the external electronic device.
  • the electronic device may further include a display.
  • the processor may be configured to display visual objects corresponding to each of the first function and results of executing the second function, along with the second audio signal output through the speaker, in the display. there is.
  • the processor may execute each of the plurality of voice commands based on latency times of the first voice engine and the second voice engine corresponding to the states. It may be configured to obtain the information by matching with either the first voice engine or the second voice engine.
  • the processor obtains the information indicating a schedule for executing the plurality of voice commands using at least one of the first voice engine or the second voice engine, based on the conditions. It can be configured to do so.
  • the electronic device may include a communication circuit, a microphone, a speaker, a memory for storing at least one instruction, and at least one processor.
  • the at least one processor may be configured to execute the at least one instruction and identify the first audio signal received through the microphone.
  • the at least one processor executes the at least one instructions to perform at least one first of the plurality of functions based on identifying a first audio signal containing an utterance for sequentially executing the plurality of functions. It can be configured to perform a function.
  • the at least one processor executes the at least one instructions to perform at least one of the plurality of functions of the external electronic device via the communication circuit based on identifying that the first audio signal includes utterance. It may be configured to perform a second function.
  • the at least one second function may be different from the at least one first function among the plurality of functions.
  • the at least one processor executes the at least one instruction and represents at least one result of performing the at least one first function and the at least one second function through the speaker. 2 may be configured to sequentially output audio signals based on the order associated with the utterance.
  • the at least one processor executes the at least one instruction to obtain a state of a first voice engine running in the electronic device and a state of a second voice engine running by the external electronic device.
  • the at least one processor executes the at least one instruction to perform the plurality of functions to be performed by the first voice engine, based on the state of the first voice engine and the state of the second voice engine. It may be configured to distinguish between at least one first function and the at least one second function to be executed by the second voice engine.
  • the state of the first voice engine indicates whether the first voice engine can perform any one of the plurality of functions
  • the state of the second voice engine indicates whether the second voice engine is capable of performing one of the plurality of functions. It may indicate whether the engine can perform one of the plurality of functions.
  • the at least one processor executes the at least one instructions to assign at least one first voice command corresponding to the at least one first function to a first queue corresponding to the first voice engine.
  • the at least one processor is configured to execute the at least one instruction to allocate at least one second voice command corresponding to the at least one second function, or to a second queue corresponding to the second voice engine. It can be.
  • the at least one processor is configured to execute the at least one instruction to execute the first voice engine based on the at least one first voice command accumulated in the first queue. It can be.
  • the at least one processor executes the at least one instruction to transmit at least one signal representing the at least one second voice command accumulated in the second queue to the external electronic device, It can be configured.
  • the electronic device may include memory.
  • the at least one processor may be configured to execute the at least one instruction and store information including the at least one result in the memory based on the order.
  • the information may include a queue in which at least one utterance in at least one second audio signal is arranged based on the order.
  • the electronic device may include a display.
  • the at least one processor may be configured to execute the at least one instruction and control the display to display different visual objects for displaying the at least one result in parallel.
  • a method of an electronic device includes an operation of identifying a speech in the first audio signal based on receiving the first audio signal through a microphone of the electronic device. may include.
  • the method includes, based on identifying a plurality of voice commands from the utterance, obtaining a state of a first voice engine executed by the electronic device and a state of a second voice engine executed by an external electronic device.
  • the external electronic device may be connected through a communication circuit of the electronic device.
  • the method includes, based on the state of the first voice engine and the state of the second voice engine, the plurality of voice commands, at least one first voice command performed by the first voice engine, and the second voice command.
  • the method may include an operation of obtaining information to distinguish a second voice command performed by a voice engine.
  • the method includes executing a first function corresponding to the at least one first voice command using the first voice engine, and executing a second function corresponding to the at least one second voice command using an external command. It may include an operation requesting an electronic device.
  • the method includes representing at least one result of executing the first function and the second function, based on the order of the plurality of voice commands indicated by the utterance, through the speaker of the electronic device. ) may include the operation of outputting at least one second audio signal.
  • the operation of obtaining the state of the first voice engine and the state of the second voice engine triggers performance of the plurality of voice commands based on the order in the memory of the electronic device. It may include an operation to identify a designated utterance to make.
  • Obtaining the state of the first voice engine and the state of the second voice engine includes identifying the plurality of voice commands based on whether the utterance in the first audio signal corresponds to the specified utterance. may include.
  • requesting the external electronic device to perform the second function may include receiving information including a result of performing the second function from the external electronic device.
  • the operation of requesting the external electronic device to perform the second function may include storing the information in the memory of the electronic device based on the order.
  • the state of the first voice engine indicates whether the first voice engine can perform one of a plurality of functions
  • the state of the second voice engine indicates whether the second voice engine is capable of performing the plurality of functions. It can indicate whether one of a plurality of functions can be performed.
  • the operation of outputting the at least one second audio signal may be performed by the electronic device to display at least one visual object showing a result of performing the second function and a result of performing the first function. It may include an operation to control the display of .
  • a method of an electronic device may include an operation of identifying a first audio signal received through a microphone of the electronic device.
  • the method may include performing at least one first function from the plurality of functions based on identifying that the first audio signal includes an utterance for sequentially performing the plurality of functions. there is.
  • the method based on identifying that the first audio signal includes the utterance, performs at least one second function of the plurality of functions in an external electronic device connected through a communication circuit of the external electronic device. It may include actions to be performed.
  • the at least one second function may be different from the at least one first function.
  • the method includes at least one second function that expresses at least one result of performing the at least one first function and the at least one second function based on a remark related to the remark through a speaker of the electronic device. It may include an operation of sequentially outputting audio signals.
  • the method may include obtaining the state of a first voice engine running in the electronic device and the state of a second voice engine running in the external electronic device.
  • the method includes, based on the state of the first voice engine and the state of the second voice engine, the plurality of functions, the at least one first function to be performed by the first voice engine and the second voice. It may include an operation to classify the at least one second function to be performed by the engine.
  • the state of the first voice engine may indicate whether the first voice engine can execute any one of the plurality of functions.
  • the state of the second voice engine may indicate whether the second voice engine will execute one of the plurality of functions.
  • the distinguishing operation may include an operation of allocating at least one first voice command corresponding to the at least one first function to a first cue corresponding to the first voice engine.
  • the distinguishing operation may include an operation of allocating a second voice command corresponding to the at least one second function to a second cue corresponding to the second voice engine.
  • the outputting operation includes outputting the at least one utterance expressing the at least one result according to the utterance, based on a cue of at least one utterance in the at least one second audio signal.
  • the outputting operation includes outputting the at least one utterance expressing the at least one result according to the utterance, based on a cue of at least one utterance in the at least one second audio signal.
  • Electronic devices may be of various types.
  • 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 embodiments of this document are not limited to the above-described devices.
  • first, second, or first or second may be used simply to distinguish one component from another, and to refer to that component in other respects (e.g., importance or order) is not limited.
  • One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.”
  • any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.
  • module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including these.
  • a processor e.g., processor 120
  • the one or more instructions may include code generated by a compiler or code that can be executed by an interpreter.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and this term refers to cases where data is semi-permanently stored in the storage medium. There is no distinction between temporary storage cases.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • 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 through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
  • a machine-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • an application store e.g. Play StoreTM
  • two user devices e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
  • at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is.
  • one or more of the components or operations described above may be omitted, or one or more other components or operations may be added.
  • multiple components eg, modules or programs
  • the integrated component may perform one or more functions of each component of the plurality of components in the same or similar manner as those performed by the corresponding component of the plurality of components prior to the integration. .
  • 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, or omitted. Alternatively, one or more other operations may be added.
  • the device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components.
  • the devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable logic unit (PLU).
  • ALU arithmetic logic unit
  • FPGA field programmable gate array
  • PLU programmable logic unit
  • It may be implemented using one or more general-purpose or special-purpose computers, such as a logic unit, microprocessor, or any other device capable of executing and responding to instructions.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software.
  • OS operating system
  • a processing device may access, store, manipulate, process, and generate data in response to the execution of software.
  • a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include.
  • a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.
  • Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device.
  • the software and/or data may be embodied in any type of machine, component, physical device, computer storage medium or device for the purpose of being interpreted by or providing instructions or data to the processing device. there is.
  • Software may be distributed over networked computer systems and stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer-readable recording media.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium.
  • the medium may continuously store a computer-executable program, or temporarily store it for execution or download.
  • the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

전자 장치(electronic device)는, 통신 회로, 마이크, 스피커, 메모리 및 프로세서를 포함할 수 있다. 프로세서는, 마이크를 통하여 수신된 제1 오디오 신호를 식별할 수 있다. 프로세서는, 복수의 기능들을 순차적으로 실행하기 위한 발언을 포함하는 제1 오디오 신호를 식별하는 것에 기반하여, 복수의 기능들 중 적어도 하나의 제1 기능을 수행할 수 있다. 프로세서는, 제1 오디오 신호가 발언을 포함함을 식별하는 것에 기반하여, 통신 회로를 통해 연결된 외부 전자 장치를 이용하여, 복수의 기능들 중에서, 적어도 하나의 제2 기능을 수행할 수 있다. 적어도 하나의 제2 기능은 적어도 하나의 제1 기능과 상이할 수 있다. 프로세서는, 전자 장치의 스피커를 통하여, 적어도 하나의 제1 기능, 및 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는 적어도 하나의 제2 오디오 신호를, 발언과 관련된 순서를 따라 순차적으로 출력할 수 있다.

Description

보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법
본 개시(disclosure)는 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법에 관한 것이다.
전자 장치, 및 사용자 사이의 인터페이스는 키보드, 및/또는 마우스를 포함할 수 있다. 전자 장치를 보다 직관적으로 제어하기 위하여, 전자 장치, 및 사용자 사이의 인터페이스들의 타입들이 확대될 수 있다. 예를 들어, 전자 장치는, 전자 장치를 제어하기 위한 사용자의 발언(speech)을 식별하기 위하여, 마이크를 이용할 수 있다.
일 실시예에 따른, 전자 장치는, 통신 회로, 마이크, 스피커, 적어도 하나의 인스트럭션를 저장하기 위한 메모리 및 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 마이크를 통하여 수신된 제1 오디오 신호를 식별하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 복수의 기능들을 순차적으로 실행하기 위한 발언을 포함하는 제1 오디오 신호를 식별하는 것에 기반하여, 상기 복수의 기능들 중 적어도 하나의 제1 기능을 수행하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 제1 오디오 신호가 발언을 포함함을 식별하는 것에 기반하여, 상기 통신 회로를 통해 외부 전자 장치의 상기 복수의 기능들 중에서 적어도 하나의 제2 기능을 수행하도록, 구성될 수 있다. 상기 적어도 하나의 제2 기능은, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는(representing) 제2 오디오 신호들을, 상기 발언과 관련된 순서에 기반하여 순차적으로 출력하도록, 구성될 수 있다.
일 실시예에 따른, 전자 장치(electronic device)의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호 내 발언을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 상기 전자 장치에 의해 실행되는 제1 보이스 엔진의 상태, 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태를 획득하는 동작을 포함할 수 있다. 상기 외부 전자 장치는 상기 전자 장치의 통신 회로를 통해 연결될 수 있다. 상기 방법은, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 의해 수행되는 적어도 하나의 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 의해 수행되는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 적어도 하나의 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 적어도 하나의 제2 보이스 커맨드에 대응하는 제2 기능을 수행하기 위하여 외부 전자 장치로 요청하는 동작을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언에 의해 지시되는 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 적어도 하나의 결과를 표현한(representing) 적어도 하나의 제2 오디오 신호를 출력하는 동작을 포함할 수 있다.
일 실시예에 따른, 전자 장치의 방법은, 상기 전자 장치의 마이크를 통해 수신된 제1 오디오 신호를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호가 복수의 기능들을 순차적으로 실행하기 위한 발언을 포함함을 식별하는 것에 기반하여, 상기 복수의 기능들로부터 적어도 하나의 제1 기능을 수행하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호가 상기 발언을 포함함을 식별하는 것에 기반하여, 상기 외부 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치에서, 상기 복수의 기능들 중 적어도 하나의 제2 기능을 수행하는 동작을 포함할 수 있다. 상기 적어도 하나의 제2 기능은 상기 적어도 하나의 제1 기능과 다를 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언과 관련된 발언에 기반하여 상기 적어도 하나의 제1 기능 및 상기 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는 적어도 하나의 제2 오디오 신호를 순차적으로 출력하는 동작을 포함할 수 있다.
일 실시예(an embodiment)에 따른, 전자 장치(an electronic device)는, 통신 회로, 마이크, 스피커, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 마이크를 통하여 제1 오디오 신호를 식별하도록, 구성될 수 있다. 상기 프로세서는, 상기 제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언을 식별하는 것에 기반하여, 상기 복수의 기능들 중 적어도 하나의 제1 기능을 실행하도록, 구성될 수 있다. 상기 프로세서는, 상기 발언을 식별하는 것에 기반하여, 상기 통신 회로를 통해 연결된 외부 전자 장치를 이용하여, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행하도록, 구성될 수 있다. 상기 프로세서는, 상기 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 실행한 결과들을 표현하는(representing) 제2 오디오 신호들을, 상기 발언과 관련된 순서를 따라 순차적으로 출력하도록, 구성될 수 있다.
일 실시예에 따른, 전자 장치의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언을 식별하는 것에 기반하여, 상기 전자 장치의 프로세서에 기반하여 상기 복수의 기능들 중 적어도 하나의 제1 기능을 실행하는 동작을 포함할 수 있다. 상기 방법은, 상기 발언을 식별하는 것에 기반하여, 상기 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치를 이용하여, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행하는 동작을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 실행한 결과들을 표현하는 제2 오디오 신호들을, 상기 발언과 관련된 순서를 따라 순차적으로 출력하는 동작을 포함할 수 있다.
일 실시예에 따른, 전자 장치(electronic device)는, 통신 회로, 마이크, 스피커, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호에 포함된 발언을 식별하도록, 구성될 수 있다. 상기 프로세서는, 상기 발언으로부터 복수의 보이스 커맨드들(voice commands)을 식별하는 것에 기반하여, 보이스 커맨드(a voice command)를 처리하기 위하여 상기 프로세서에 의해 실행되는 제1 보이스 엔진, 및 상기 통신 회로를 통해 연결된 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들을 획득하도록, 구성될 수 있다. 상기 프로세서는, 상기 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 대응하는 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 대응하는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하도록, 구성될 수 있다. 상기 프로세서는, 상기 정보에 기반하여, 상기 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 외부 전자 장치로 상기 제2 보이스 커맨드에 대응하는 제2 기능의 실행을 요청하도록, 구성될 수 있다. 상기 프로세서는, 상기 스피커를 통하여, 상기 발언에 의해 지시되는(indicated by) 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들을 표현한(representing) 제2 오디오 신호를 출력하도록, 구성될 수 있다.
일 실시예에 따른, 전자 장치(electronic device)의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호에 포함된 발언을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 보이스 커맨드를 처리하기 위하여 상기 전자 장치의 프로세서에 의해 실행되는 제1 보이스 엔진, 및 상기 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들을 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 대응하는 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 대응하는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 정보에 기반하여, 상기 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 외부 전자 장치로 상기 제2 보이스 커맨드에 대응하는 제2 기능의 실행을 요청하는 동작을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언에 의해 지시되는 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들을 표현한(representing) 제2 오디오 신호를 출력하는 동작을 포함할 수 있다.
도 1은, 일 실시예에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는, 일 실시예에 따른, 전자 장치가 발언(speech)에 기반하여 하나 이상의 기능들을 실행하는 동작의 일 예를 도시한다.
도 3은, 일 실시예에 따른, 전자 장치, 및 외부 전자 장치의 블록도이다.
도 4는, 일 실시예에 따른, 전자 장치에 의해 실행되는 프로그램을 설명하기 위한 블록도이다.
도 5는, 일 실시예에 따른, 전자 장치 내에 포함된 보이스 커맨드 데이터베이스의 블록도이다.
도 6은, 일 실시예에 따른, 전자 장치에 의해 실행되는 프로그램을 설명하기 위한 블록도이다.
도 7은, 일 실시예에 따른, 전자 장치에 의해 실행되는 프로그램을 설명하기 위한 블록도이다.
도 8a 및 도 8b는, 일 실시예에 따른, 전자 장치가 UI(user interface)를 표시하는 예시적인 상태들을 도시한다.
도 9는, 일 실시예에 따른, 전자 장치가 발언에 기반하여 복수의 기능들을 실행하는 동작을 도시한다.
도 10은, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도이다.
도 11은, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도이다.
도 12는, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도이다.
도 13은 일 실시 예에 따른 인공 지능(artificial intelligence)(AI) 시스템을 나타낸 블록도이다.
도 14는, 일 실시 예에 따른, 컨셉과 액션의 관계 정보를 데이터베이스에 저장하기 위한 스키마(schema)를 나타낸 도면이다.
도 15는, 일 실시 예에 따라, 지능형 앱을 통해 수신된 음성 입력을 처리하는 화면을 표시하는 사용자 단말을 도시하는 도면이다.
이하, 본 문서의 실시예들이 첨부된 도면을 참조하여 설명된다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
도 1은, 일 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 외부 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 외부 전자 장치(104) 또는 서버(108) 중 적어도 하나 와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 외부 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 외부 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 외부 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 외부 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 외부 전자 장치(102), 외부 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 외부 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 외부 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
도 2는, 일 실시예에 따른, 전자 장치(101)가 발언(speech)(220)에 기반하여 하나 이상의 기능들(functions)을 실행하는 동작을 도시한다.
도 2의 전자 장치(101)는, 도 1의 전자 장치(101)를 포함할 수 있다. 전자 장치(101)는 사용자에 의해 소유되는(be owned by) 단말일 수 있다. 단말은, 예를 들어, 랩톱 및 데스크톱과 같은 개인용 컴퓨터(personal computer, PC), 스마트폰(smartphone), 스마트패드(smartpad), 태블릿 PC를 포함할 수 있다. 단말은, 스마트워치(smartwatch) 및/또는 HMD(head-mounted device)와 같은 스마트액세서리를 포함할 수 있다.
일 실시예에 따른, 전자 장치(101)는 소리를 이용하여 사용자와 상호작용(interact with)할 수 있다. 전자 장치(101)는 마이크(예, 도 1의 입력 모듈(150))를 이용하여, 전자 장치(101)를 포함하는 외부 공간의 소리에 종속된(dependent to) 전기 신호인, 오디오 신호를 획득할 수 있다. 전자 장치(101)는 상기 오디오 신호로부터, 사용자의 발언(220)을 식별할 수 있다. 발언(220)을 식별하는 것에 응답하여, 전자 장치(101)는 발언(220)과 관련된 하나 이상의 기능들을 실행할 수 있다. 전자 장치(101)는 상기 하나 이상의 기능들을 실행한 결과들을 포함하는 정보를, 상기 사용자에게 출력할 수 있다. 도 2를 참고하면, 전자 장치(101)는 발언(250)을 포함하는 오디오 신호를 생성할 수 있다. 전자 장치(101)는 상기 오디오 신호에 기반하여 스피커(예, 도 1의 음향 출력 모듈(155))를 제어하여, 상기 오디오 신호에 종속된 소리를 재생할 수 있다. 마이크, 및/또는 스피커를 포함하는 전자 장치(101)의 구조가, 도 3을 참고하여 설명된다.
일 실시예에 따른, 전자 장치(101)는, 발언(220)으로부터 전자 장치(101)와 관련된 적어도 하나의 기능을 실행함을 나타내는 입력을 식별할 수 있다. 이하에서, 보이스 커맨드(voice command)는, 발언(220)과 같이 소리에 기반하여 전자 장치(101)로 입력된 커맨드(예, 자연어의 커맨드)를 포함할 수 있다. 상기 보이스 커맨드는, 전자 장치(101)에 의해 식별된 소리에 의하여, 전자 장치(101), 및/또는 전자 장치(101)에 연결된 외부 전자 장치(210)가 실행하는 기능, 및/또는 작업(task)의 단위일 수 있다. 보이스 커맨드를 실행하는 것은, 전자 장치(101)가 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행하는 동작을 포함할 수 있다. 전자 장치(101)는 발언(220)에 포함된 자연어(natural language)에 기반하여, 발언(220)에 포함된 하나 이상의 보이스 커맨드들을 식별할 수 있다. 전자 장치(101)에 연결된 상기 외부 전자 장치(210)는, 발언(220)을 포함하는 오디오 신호를 처리하기 위해 전자 장치(101)에 연결된 서버(예, 도 1의 서버(108))를 포함할 수 있다.
도 2를 참고하면, 전자 장치(101)가 마이크를 통하여 식별된 오디오 신호로부터, 복수의 보이스 커맨드들(예, 제1 보이스 커맨드(230), 및/또는 제2 보이스 커맨드(240))를 식별한 예시적인 케이스가 도시된다. 전자 장치(101)는 상기 오디오 신호로부터 복수의 기능들을 순차적으로(sequentially) 실행하기 위한 발언(220)을 식별할 수 있다. 발언(220)은, 전자 장치(101)에 의한 발언(220)의 인식을 촉발하기(triggering) 위한 지정된 자연어(예, "헤이, 빅스비"와 같은 단어들)를 포함할 수 있다. 상기 지정된 자연어를 식별한 전자 장치(101)는, 발언(220)을 인식하여, 발언(220) 내에 포함된 하나 이상의 보이스 커맨드들을 식별할 수 있다. 예를 들어, 전자 장치(101)에 의해 인식되는 발언(220)은, 상기 복수의 기능들 각각을 표현하는 자연어(예, 단어, 구, 및/또는 문장)를 포함할 수 있다. 예를 들어, 전자 장치(101)에 의해 인식되는 발언(220)은, 상기 복수의 기능들의 그룹에 할당된(assigned) 명칭(name)을 포함할 수 있다. 상기 그룹에 할당된 명칭이, 퀵 커맨드, 및/또는 단축어로 지칭될 수 있다. 상기 명칭을 발언(220)으로부터 식별하는 것에 기반하여, 전자 장치(101)는 상기 명칭에 의해 구분되는 그룹에 포함된, 복수의 기능들을 실행할 수 있다. 복수의 기능들을 실행하기 위한 보이스 커맨드들의 그룹은, 전자 장치(101), 및 사용자 사이의 상호작용에 기반하여, 전자 장치(101)로 등록될 수 있다. 전자 장치(101)가 상기 그룹을 등록하기 위한 입력을 식별하기 위해 표시하는 UI(user interface)의 일 예가, 도 8a를 참고하여 설명된다.
일 실시예에 따른, 전자 장치(101)는 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240)의 순차적인 실행을 위한 발언(220)을 식별하는 것에 기반하여, 상기 제1 보이스 커맨드(230), 및 상기 제2 보이스 커맨드(240)에 대응하는 기능들을 실행할 수 있다. 상기 기능들은, 전자 장치(101), 및/또는 외부 전자 장치(210)에 의해 실행되는 어플리케이션에 기반하여, 실행될 수 있다. 보이스 커맨드를 실행하기 위하여, 전자 장치(101), 및/또는 외부 전자 장치(210)에 의해 실행되는 상기 어플리케이션이, 보이스 엔진(voice engine), 및/또는 NLU(natural language unit)로 지칭될 수 있다. 보이스 엔진이 실행되는 전자 장치(예, 전자 장치(101), 및/또는 외부 전자 장치(210))는, 보이스 커맨드에 매칭된 동작을 수행하도록, 제어될 수 있다. 보이스 엔진의 실행에 의해 보이스 커맨드에 매칭된 상기 동작이 수행되는 기간(duration), 및/또는 속도는, 보이스 엔진이 실행되는 전자 장치의 성능, 및/또는 리소스의 상태에 종속될 수 있다.
보이스 엔진들이 네트워크를 통해 연결된 전자 장치(101), 및 외부 전자 장치(210) 전부에서 실행되는 도 2의 일 실시예에서, 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240)에 대응하는 기능들이, 상기 보이스 엔진들 중 적어도 하나에 의해 실행될 수 있다. 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240)의 순차적인 실행을 위한 발언(220)을 식별한 전자 장치(101)는, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진, 및 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진으로, 제1 보이스 커맨드(230)에 대응하는 제1 기능, 및 제2 보이스 커맨드(240)에 대응하는 제2 기능 각각을 매칭할 수 있다. 예를 들어, 전자 장치(101)는 제1 보이스 엔진, 및 제2 보이스 엔진과, 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240)를 매칭하여, 상기 제1 기능, 및 상기 제2 기능의 실행을 제어하거나, 또는 스케줄링할 수 있다. 예를 들어, 상기 제1 기능, 및 상기 제2 기능 전부가, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중 어느 하나에 의해 집중적으로 실행될 수 있다. 예를 들어, 상기 제1 기능, 및 상기 제2 기능 각각이 상기 제1 보이스 엔진, 및 상기 제2 보이스 엔진에 의해 분산하여 실행될 수 있다. 전자 장치(101)가 복수의 보이스 엔진들, 및 발언(220)에 포함된 복수의 보이스 커맨드들을 매칭하기 위해 실행하는 어플리케이션의 일 예가, 도 3 내지 도 7을 참고하여 설명된다.
도 2를 참고하면, 일 실시예에 따른, 전자 장치(101)가, 상이한 보이스 엔진들을 이용하여 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240) 각각의 기능들을 실행한 예시적인 상태가 도시된다. 전자 장치(101)는, 전자 장치(101)를 포함하는 상이한 전자 장치들에 의해 실행되는 보이스 엔진들의 상태들에 기반하여, 발언(220)에 포함된 적어도 하나의 보이스 커맨드의 실행에 이용될 보이스 엔진을 선택할 수 있다. 예를 들어, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진의 상태, 또는 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진의 상태 중 적어도 하나를 모니터링할 수 있다. 보이스 엔진의 상태는, 상기 보이스 엔진의 실행에 기반하여 보이스 커맨드에 대응하는 기능을 실행 가능한지 여부, 상기 기능의 실행에 요구되는 시간, 및/또는 상기 기능을 실행하기 이전의 대기 시간(latency time)과 관련될 수 있다. 모니터링된 상태들에 기반하여, 전자 장치(101)는 발언(220)에 포함된 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240) 각각의 실행에 이용될 보이스 엔진을, 상기 제1 보이스 엔진, 및 상기 제2 보이스 엔진 중에서 선택할 수 있다. 도 2의 예시적인 케이스 내에서, 전자 장치(101)는, 상기 제1 보이스 엔진, 및 제1 보이스 커맨드(230)를 매칭하고, 상기 제2 보이스 엔진, 및 제2 보이스 커맨드(240)를 매칭할 수 있다.
상기 제1 보이스 엔진에 제1 보이스 커맨드(230)를 매칭하는 것에 기반하여, 전자 장치(101)는 제1 보이스 커맨드(230)에 대응하는 제1 기능을 실행할 수 있다. 전자 장치(101)는 상기 제1 기능을 실행한 결과를 포함하는 제1 정보(235)를, 상기 제1 보이스 엔진의 실행에 기반하여, 획득할 수 있다. 상기 제2 보이스 엔진에 제2 보이스 커맨드(240)를 매칭하는 것에 기반하여, 전자 장치(101)는 제2 보이스 커맨드(240)에 대응하는 제2 기능을 실행할 것을, 상기 제2 보이스 엔진을 실행하는 외부 전자 장치(210)로 요청할 수 있다. 전자 장치(101)는, 외부 전자 장치(210)로부터 상기 요청에 대한 응답으로(as a response to), 상기 제2 기능과 관련된 제2 정보(245)를 수신할 수 있다. 상기 제2 정보(245)는, 외부 전자 장치(210), 및/또는 제2 보이스 엔진에 기반하여, 상기 제2 기능을 실행한 결과를 포함할 수 있다. 상기 제2 정보(245)는, 상기 제2 기능의 실행에 기반하여 전자 장치(101)를 제어하기 위한 정보를 포함할 수 있다.
일 실시예에 따른, 전자 장치(101)는 상기 제1 정보(235), 및/또는 제2 정보(245)를 획득하는 것에 기반하여, 제1 보이스 커맨드(230)에 매칭된 제1 기능, 및 제2 보이스 커맨드(240)에 매칭된 제2 기능을 실행한 결과들을 표현하는 발언(250)을 포함하는 오디오 신호를 생성할 수 있다. 전자 장치(101)는 하나 이상의 자연어 문장들에 기반하여, 상기 제1 기능을 실행한 결과를 포함하는 상기 제1 정보(235), 및 상기 제2 기능을 실행한 결과를 포함하는 상기 제2 정보(245)를 표현한, 발언(250)을 획득할 수 있다. 전자 장치(101)는 발언(250)을 포함하는 상기 오디오 신호를 생성할 수 있다. 전자 장치(101)는 생성된 오디오 신호에 기반하여 스피커를 제어하여, 상기 스피커를 통하여 상기 오디오 신호에 종속된 소리를 출력할 수 있다. 전자 장치(101)가 발언(250)을 출력하는 형태는, 도 2의 오디오 신호, 및/또는 소리에 제한되지 않는다. 전자 장치(101)가 디스플레이(260)와 같은 하드웨어를 이용하여, 발언(220)에 대한 적어도 하나의 보이스 커맨드를 실행한 결과를 시각화하는 일 실시예가, 도 8b를 참고하여 설명된다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 마이크로부터 출력된 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언(220)을 식별하는 것에 기반하여, 상기 복수의 기능들을 실행할 보이스 엔진들을 스케줄링할 수 있다. 예를 들어, 전자 장치(101)는 상기 보이스 엔진들 중 적어도 하나의 상태에 기반하여, 상기 복수의 기능들을, 제1 보이스 엔진에 의해 실행될 적어도 하나의 제1 기능, 및 제2 보이스 엔진에 의해 실행될 적어도 하나의 제2 기능으로 구분할 수 있다. 보이스 엔진들을 스케줄링한 결과에 기반하여, 전자 장치(101)는 상기 복수의 기능들 중 적어도 하나의 제1 기능을 실행하고, 외부 전자 장치(210)를 이용하여, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행할 수 있다. 도 2의 제1 정보(235)는, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진에 기반하여, 상기 적어도 하나의 제1 기능을 실행한 결과의 일 예일 수 있다. 도 2의 제2 정보(245)는, 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진에 기반하여, 상기 적어도 하나의 제2 기능을 실행한 결과의 일 예일 수 있다. 전자 장치(101)는, 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 실행한 결과들을 표현하는 제2 오디오 신호들을 출력할 수 있다. 전자 장치(101)가 상기 제2 오디오 신호들을 출력하는 순서는, 발언(220)과 관련된, 상기 복수의 기능들의 순서에 매칭될 수 있다. 발언(220)에 대응하는 복수의 기능들이 상이한 전자 장치들에 의해 실행되는 보이스 엔진들에 기반하는 분산 처리에 의해 실행되기 때문에, 전자 장치(101)는 상기 복수의 기능들을 실행한 결과들을 보다 신속하게 획득할 수 있다.
이하에서는, 도 3을 참고하여, 제1 보이스 커맨드(230), 및 제2 보이스 커맨드(240)를 포함하는 보이스 커맨드를 처리하기 위한 전자 장치(101), 및 외부 전자 장치(210)의 예시적인 구조가 도 3을 참고하여 설명된다.
도 3은, 일 실시예에 따른, 전자 장치(101), 및 외부 전자 장치(210)의 블록도이다. 도 3의 전자 장치(101)는 도 1 내지 도 2의 전자 장치(101)를 포함할 수 있다. 도 3의 외부 전자 장치(210)는 도 2의 외부 전자 장치(210)를 포함할 수 있다.
전자 장치(101)는, 프로세서(120), 메모리(130), 디스플레이(260), 스피커(310), 마이크(320), 또는 통신 회로(330) 중 적어도 하나를 포함할 수 있다. 프로세서(120), 메모리(130), 디스플레이(260), 스피커(310), 마이크(320), 및 통신 회로(330)는 통신 버스(a communication bus)(305)와 같은 전자 부품(electronic component)에 의해 서로 전기적으로 및/또는 작동적으로 연결될 수 있다(electronically and/or operably coupled with each other). 이하에서, 하드웨어들이 작동적으로 결합된 것은, 하드웨어들 중 제1 하드웨어에 의해 제2 하드웨어가 제어되도록, 하드웨어들 사이의 직접적인 연결, 또는 간접적인 연결이 유선으로, 또는 무선으로 수립된 것을 의미할 수 있다. 상이한 블록들에 기반하여 도시되었으나, 실시예가 이에 제한되는 것은 아니며, 도 3의 하드웨어들 중 일부분(예, 프로세서(120), 메모리(130), 및 통신 회로(330)의 적어도 일부분)이 SoC(system on a chip)와 같이 단일 집적 회로(single integrated circuit)에 포함될 수 있다. 전자 장치(101)에 포함된 하드웨어 컴포넌트의 타입 및/또는 개수는 도 3에 도시된 바에 제한되지 않는다. 예를 들어, 전자 장치(101)는 도 3에 도시된 하드웨어 중 일부만 포함할 수 있다.
전자 장치(101)의 프로세서(120)는, 하나 이상의 인스트럭션들에 기반하여 데이터를 처리하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 데이터를 처리하기 위한 하드웨어 컴포넌트는, 예를 들어, ALU(arithmetic and logic unit), FPU(floating point unit), FPGA(field programmable gate array), CPU(central processing unit), 및/또는 AP(application processor)를 포함할 수 있다. 일 실시예에 따르면, 프로세서(120)는 복수의 프로세서들을 포함할 수 있다. 예를 들어, 프로세서(120)는 듀얼 코어(dual core), 쿼드 코어(quad core) 또는 헥사 코어(hexa core)와 같은 멀티-코어 프로세서의 구조를 가질 수 있다. 도 3의 프로세서(120)는 도 1의 프로세서(120)를 포함할 수 있다.
전자 장치(101)의 메모리(130)는, 프로세서(120)에 입력 및/또는 출력되는 데이터 및/또는 인스트럭션을 저장하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 메모리(130)는, 예를 들어, RAM(random-access memory)과 같은 휘발성 메모리(volatile memory) 및/또는 ROM(read-only memory)과 같은 비휘발성 메모리(non-volatile memory)를 포함할 수 있다. 휘발성 메모리는, 예를 들어, DRAM(dynamic RAM), SRAM(static RAM), Cache RAM, PSRAM (pseudo SRAM) 중 적어도 하나를 포함할 수 있다. 비휘발성 메모리는, 예를 들어, PROM(programmable ROM), EPROM (erasable PROM), EEPROM (electrically erasable PROM), 플래시 메모리, 하드디스크, 컴팩트 디스크, SSD(solid state drive), eMMC(embedded multi media card) 중 적어도 하나를 포함할 수 있다. 도 3의 메모리(130)는 도 1의 메모리(130)를 포함할 수 있다.
전자 장치(101)의 디스플레이(260)는 사용자에게 시각화된 정보(예를 들어, 도 8a 및 도 8b의 화면들 중 적어도 하나)를 출력할 수 있다. 예를 들어, 디스플레이(260)는, GPU(graphic processing unit), 및/또는 프로세서(120)와 같은 컨트롤러에 의해 제어되어, 사용자에게 시각화된 정보(visualized information)를 출력할 수 있다. 디스플레이(260)는 FPD(flat panel display) 및/또는 전자 종이(electronic paper)를 포함할 수 있다. 상기 FPD는 LCD(liquid crystal display), PDP(plasma display panel) 및/또는 하나 이상의 LED(light emitting diode)를 포함할 수 있다. 상기 LED는 OLED(organic LED)를 포함할 수 있다. 도 3의 디스플레이(260)는 도 1의 디스플레이 모듈(160)을 포함할 수 있다.
일 실시예에 따른, 전자 장치(101)의 디스플레이(260)는, 디스플레이(260) 상의 외부 객체(예, 사용자의 손가락)를 탐지하기 위한 센서(예, TSP(touch sensor panel))를 포함할 수 있다. 예를 들어, TSP에 기반하여, 전자 장치(101)는 디스플레이(260)와 접촉하거나, 또는 디스플레이(260) 상을 부유하는(floating) 외부 객체를 탐지할 수 있다. 상기 외부 객체를 탐지하는 것에 응답하여, 전자 장치(101)는 디스플레이(260) 내에 표시되고 있는 시각적 객체들 중에서 상기 외부 객체의 디스플레이(260) 상에서의 위치에 대응하는 특정 시각적 객체와 관련된 기능을 실행할 수 있다.
전자 장치(101)는, 정보를 시각화한 형태 외에 다른 형태로 출력하기 위한 출력 수단으로, 스피커(310)를 포함할 수 있다. 스피커(310)는 프로세서(120)로부터 수신된 오디오 신호(예, 도 2의 발언(250)을 포함하는 오디오 신호)에 의하여 진동되는 회로 요소를 포함할 수 있다. 전자 장치(101) 내에 포함된 스피커(310)의 개수는, 도 3의 일 예에 제한되지 않으며, 전자 장치(101)는 하나 이상의 스피커들을 포함할 수 있다. 전자 장치(101)는 정보를 시각적인 형태, 청각적인 형태 외에 다른 형태로 출력하기 위한 다른 출력 수단을 포함할 수 있다. 예를 들어, 전자 장치(101)는 진동에 기반하는 햅틱 피드백을 제공하기 위한 모터를 포함할 수 있다.
전자 장치(101)의 마이크(320)는 대기의 진동을 지시하는 전기 신호를 출력할 수 있다. 예를 들어, 전자 장치(101)는 마이크(320)로부터 출력된 전기 신호인, 오디오 신호로부터, 사용자의 발언(예, 도 2의 발언(220))을 식별할 수 있다. 오디오 신호에 포함된 사용자의 발언은, 프로세서(120)에 의해 실행되는 어플리케이션, 및/또는 프로세스인, 음성 인식 모델 및/또는 자연어 이해 모델에 기반하여, 전자 장치(101)에 의해 인식 가능한 포맷의 정보로 변환될 수 있다. 예를 들어, 전자 장치(101)는 사용자의 발언을 인식하여, 전자 장치(101)에 의해 제공 가능한 복수의 기능들 중에서 하나 이상의 기능들을 실행할 수 있다. 도 3의 스피커(310), 및/또는 마이크(320)는, 도 1의 음향 출력 모듈(155), 및/또는 오디오 모듈(170)을 포함할 수 있다.
전자 장치(101)의 통신 회로(330)는, 전자 장치(101), 및 외부 전자 장치(210) 사이의 전기 신호의 송신 및/또는 수신을 지원하기 위한 하드웨어를 포함할 수 있다. 통신 회로(330)를 통해 전자 장치(101)에 연결된 외부 전자 장치(210)의 개수는, 도 2, 및/또는 도 3의 일 실시예에 제한되지 않는다. 통신 회로(330)는, 예를 들어, 모뎀(MODEM), 안테나, O/E(optic/electronic) 변환기 중 적어도 하나를 포함할 수 있다. 통신 회로(330)는, 이더넷(ethernet), LAN(local area network), WAN(wide area network), WiFi(wireless fidelity), Bluetooth, BLE(bluetooth low energy), ZigBee, LTE(long term evolution), 5G NR(new radio)와 같은 다양한 타입의 프로토콜에 기반하여 전기 신호의 송신 및/또는 수신을 지원할 수 있다. 도 3의 통신 회로(330)는 도 1의 통신 모듈(190), 가입자 식별 모듈(196), 및/또는 안테나 모듈(197)을 포함할 수 있다.
메모리(130) 내에서, 프로세서(120)가 데이터에 수행할 연산, 및/또는 동작을 나타내는 하나 이상의 인스트럭션들(또는 명령어들)이 저장될 수 있다. 하나 이상의 인스트럭션들의 집합은, 펌웨어, 운영 체제(예, 도 1의 운영 체제(142)), 프로그램(예, 도 1의 프로그램(140)), 프로세스, 루틴, 서브-루틴 및/또는 어플리케이션(예, 도 1의 어플리케이션(146))으로 참조될 수 있다. 예를 들어, 전자 장치(101), 및/또는 프로세서(120)는, 운영체제, 펌웨어, 드라이버, 및/또는 어플리케이션 형태로 배포된 복수의 인스트럭션의 집합(set of a plurality of instructions)이 실행될 시에, 도 10 내지 도 12의 동작들 중 적어도 하나를 수행할 수 있다. 이하에서, 어플리케이션이 전자 장치(101)에 설치되었다는 것은, 어플리케이션의 형태로 제공된 하나 이상의 인스트럭션들이 전자 장치(101)의 메모리(130) 내에 저장된 것으로써, 상기 하나 이상의 어플리케이션들이 전자 장치(101)의 프로세서(120)에 의해 실행 가능한(executable) 포맷(예, 전자 장치(101)의 운영 체제에 의해 지정된 확장자를 가지는 파일)으로 저장된 것을 의미할 수 있다.
도 3의 일 실시예에서, 외부 전자 장치(210)는 음성 인식과 관련된 기능을 실행하기 위하여, 전자 장치(101)와 유선으로, 또는 무선으로 연결될 수 있다. 외부 전자 장치(210)는 서버를 포함할 수 있다. 서버는 하나 이상의 PC 및/또는 워크스테이션을 포함할 수 있다. 일 실시예에서, 상기 서버는, 전자 장치(101)의 마이크(320)로부터 출력된 오디오 신호로부터 식별된 발언에 대응하는 하나 이상의 기능들을 실행하는 서비스로써, 예를 들어, 음성 인식 서비스를 포함할 수 있다. 외부 전자 장치(210)는, 프로세서(120), 메모리(130), 및 통신 회로(330) 중 적어도 하나를 포함할 수 있다. 외부 전자 장치(210) 내에서, 프로세서(120), 메모리(130), 및 통신 회로(330)는, 통신 버스(305)를 통해 전기적으로, 및/또는 작동적으로 결합될 수 있다. 외부 전자 장치(210) 내에 포함된, 프로세서(120), 메모리(130), 및 통신 회로(330)는, 전자 장치(101)의 프로세서(120), 메모리(130), 및 통신 회로(330)에 대응하는 하드웨어 부품, 및/또는 회로를 포함할 수 있다. 이하에서, 반복을 줄이기 위하여, 외부 전자 장치(210) 내에 포함된 프로세서(120), 메모리(130), 및 통신 회로(330)의 설명은, 전자 장치(101) 내 프로세서(120), 메모리(130), 및 통신 회로(330)와 중복되는 범위 내에서 생략될 수 있다.
도 3을 참고하면, 전자 장치(101)의 프로세서(120)에 의해 실행되는 프로그램으로, 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및/또는 제1 보이스 엔진(370)이 도시된다. 예를 들어, 메모리(130) 내에 저장된 복수의 인스트럭션들의 집합, 및/또는 프로세서(120)에 의해 실행되는 프로세스들이, 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및/또는 제1 보이스 엔진(370)로 구분될 수 있다. 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및/또는 제1 보이스 엔진(370)은, 전자 장치(101) 내에 설치된 일 어플리케이션 내에 포함될 수 있다. 상기 어플리케이션은, 자연어 문장을 포함하는 발언에 기반하여 전자 장치(101)를 제어하기 위하여, 전자 장치(101)의 프로세서(120)에 의해 실행될 수 있다.
도 3을 참고하면, 외부 전자 장치(210)의 프로세서(120)에 의해 실행되는 프로그램으로, 제2 보이스 엔진(380)이 도시된다. 제2 보이스 엔진(380)은, 메모리(130) 내에 저장된 복수의 어플리케이션들의 집합(예, 어플리케이션)을 포함할 수 있다. 제2 보이스 엔진(380)은, 외부 전자 장치(210)에 연결된 다른 전자 장치(예, 전자 장치(101))로부터 요청된 보이스 커맨드를 실행하기 위하여, 외부 전자 장치(210)의 프로세서(120)에 의해 실행될 수 있다. 전자 장치(101)는, 외부 전자 장치(210)에 의해 실행되는 상기 제2 보이스 엔진(380)을 이용하여 상기 전자 장치(101)에 의해 식별된 적어도 하나의 보이스 커맨드를 실행하기 위하여, 통신 회로(330)를 이용하여 외부 전자 장치(210)와 통신 링크를 수립할 수 있다. 예를 들어, 전자 장치(101)는 마이크(320)로부터 출력된 오디오 신호로부터, 적어도 하나의 보이스 커맨드에 대응하는 자연어 문장의 발화를 가이드하기 위한 지정된 자연어를 식별하는 것에 기반하여, 상기 통신 링크를 수립할 수 있다.
일 실시예에 따른, 전자 장치(101)는 입력 수신기(340)의 실행에 기반하여, 마이크(320)로부터 출력된 오디오 신호로부터 발언을 식별할 수 있다. 입력 수신기(340)가 실행된 상태 내에서, 전자 장치(101)는 마이크(320)를 통하여 오디오 신호를 수신하는 것에 기반하여, 오디오 신호에 포함된 발언을 식별하기 위한 동작을 수행할 수 있다. 입력 수신기(340)에 의해 처리된 상기 오디오 신호는, 전자 장치(101)의 프로세서(120)에 의해 외부 전자 장치(210)의 제2 보이스 엔진(380)으로 송신될 수 있다. 입력 수신기(340)는 마이크(320)로부터 출력된 오디오 신호뿐만 아니라, 디스플레이(260)를 통해 표시되는 소프트웨어 키보드, 및/또는 전자 장치(101)에 연결된 하드웨어 키보드를 통해 입력된 하나 이상의 문자들로부터, 사용자의 발언에 대응하는 텍스트를 식별할 수 있다.
전자 장치(101)는, 제2 보이스 엔진(380)을 실행하는 외부 전자 장치(210)로부터, 상기 오디오 신호에 포함된 발언을 나타내는 텍스트를 획득할 수 있다. 전자 장치(101)는 퀵 커맨드 처리기(350)의 실행에 기반하여, 외부 전자 장치(210)로부터 획득된 상기 텍스트가 하나 이상의 보이스 커맨드들의 그룹에 할당된 명칭(예, 퀵 커맨드)을 포함하는지 여부를 식별할 수 있다. 전자 장치(101)는 퀵 커맨드 처리기(350)의 실행에 기반하여, 사용자로부터 상기 명칭, 및 상기 명칭에 대응하는 하나 이상의 보이스 커맨드들의 그룹을 획득할 수 있다. 전자 장치(101)는 퀵 커맨드 처리기(350)의 실행에 기반하여, 사용자의 발언이 상기 그룹에 할당된 명칭을 포함하는지 여부, 또는 상기 그룹을 등록하기 위한 사용자 입력을 처리할 수 있다. 퀵 커맨드 처리기(350)의 예시적인 구조가, 도 6을 참고하여 설명된다.
마이크(320)를 통해 획득된 오디오 신호에 포함된 발언이 하나 이상의 보이스 커맨드들의 그룹에 할당된 명칭을 포함하는 경우, 전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 그룹에 포함된 하나 이상의 보이스 커맨드들의 실행을 제어할 수 있다. 전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 하나 이상의 보이스 커맨드들이 입력될 보이스 엔진을, 제1 보이스 엔진(370), 또는 제2 보이스 엔진(380) 중에서 선택할 수 있다. 예를 들어, 전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 하나 이상의 보이스 커맨드들에 대응하는 하나 이상의 기능들의 실행을 스케줄링할 수 있다. 상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 전자 장치(101)는 보이스 커맨드를 처리하기 위해 실행되는 하나 이상의 보이스 엔진들(예, 제1 보이스 엔진(370), 및/또는 제2 보이스 엔진(380))의 상태들을 획득할 수 있다. 상기 상태들에 기반하여, 전자 장치(101)는 상기 하나 이상의 기능들의 실행을 스케줄링할 수 있다. 전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 그룹 내 하나 이상의 보이스 커맨드들을, 제1 보이스 엔진(370)에 입력하거나, 또는 전자 장치(101)의 통신 회로(330)를 통해 외부 전자 장치(210)으로 송신할 수 있다.
전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 하나 이상의 보이스 커맨드들에 대응하는 하나 이상의 기능들을 실행한 결과들을 포함하는 정보(예, 도 2의 제1 정보(235), 및/또는 제2 정보(245))를, 제1 보이스 엔진(370), 및/또는 제2 보이스 엔진(380)으로부터 획득할 수 있다. 전자 장치(101)는 발언 처리기(360)를 이용하여 획득된 상기 정보를, 스피커(310), 및/또는 디스플레이(260)를 통해 출력할 수 있다. 예를 들어, 전자 장치(101)는 상기 정보를 표현하는 오디오 신호를, 스피커(310)로 송신할 수 있다. 예를 들어, 전자 장치(101)는 디스플레이(260)를 제어하여, 상기 정보를 포함하는 시각적 객체, 및/또는 화면을 표시할 수 있다. 보이스 커맨드의 스케줄링, 및/또는 보이스 커맨드에 대응하는 기능을 실행한 결과들을 획득하기 위해 전자 장치(101)에 의해 실행되는 발언 처리기(360)의 예시적인 구조가, 도 4 내지 도 7을 참고하여 설명된다.
전자 장치(101)는 제1 보이스 엔진(370)의 실행에 기반하여, 발언 처리기(360)에 의해 제1 보이스 엔진(370)에 매칭된 적어도 하나의 보이스 커맨드를 식별할 수 있다. 전자 장치(101)는 상기 적어도 하나의 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행할 수 있다. 상기 적어도 하나의 기능은, 전자 장치(101)에 포함된 하드웨어를 제어하기 위한 기능(예, 스피커(310)의 볼륨을 조절하는 기능), 메모리(130) 내에 설치된 어플리케이션에 의해 지원되는 기능(예, 알람, 음악 재생), 및/또는 통신 회로(330)를 통해 네트워크로부터 정보를 검색하는 기능(예, 날씨 검색) 중 적어도 하나를 포함할 수 있다. 전자 장치(101)는 상기 적어도 하나의 보이스 커맨드를 실행한 결과를, 발언 처리기(360)를 이용하여 저장하거나, 또는 사용자에게 출력할 수 있다.
외부 전자 장치(210)의 프로세서(120)는, 제2 보이스 엔진(380)의 실행에 기반하여, 전자 장치(101)로부터 요청된 적어도 하나의 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행할 수 있다. 전자 장치(101)는 발언 처리기(360)에 기반하여, 적어도 하나의 보이스 커맨드를 실행할 것을, 외부 전자 장치(210)로 요청할 수 있다. 제2 보이스 엔진(380)이 실행된 상태 내에서, 외부 전자 장치(210)의 프로세서(120)는 상기 요청에 포함된 상기 적어도 하나의 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행할 수 있다. 외부 전자 장치(210)의 프로세서(120)는, 통신 회로(330)를 이용하여 전자 장치(101)로, 상기 적어도 하나의 기능을 실행한 결과를 송신할 수 있다. 전자 장치(101)로 송신된 상기 결과는, 실행되는 발언 처리기(360)를 실행하는 전자 장치(101)의 프로세서(120)에 의해, 사용자에게 출력될 수 있다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 발언 처리기(360)와 같은 어플리케이션에 기반하여, 복수의 보이스 엔진들(예, 제1 보이스 엔진(370), 및 제2 보이스 엔진(380))에 의해 실행될 적어도 하나의 기능의 실행을 스케줄링하거나, 또는 제어할 수 있다. 복수의 보이스 엔진들의 스케줄링에 기반하여, 전자 장치(101)는 상기 복수의 보이스 엔진들을 효율적으로 이용하면서, 상기 복수의 보이스 엔진들의 실행을 위해 점유되는, 전자 장치(101), 및/또는 외부 전자 장치(210)의 리소스를 줄일 수 있다.
일 실시예에 따른, 전자 장치(101)는, 사용자와 상호작용하여 보이스 커맨드들의 그룹을 등록하는 상태 내에서, 상기 그룹에 포함된 상기 보이스 커맨드들의 속성(attributes)을 식별할 수 있다. 상기 속성은, 상기 그룹 내에 포함된 보이스 커맨드들에 대응하는 기능들을 실행할 보이스 엔진의 스케줄링을 위해 이용될 수 있다. 이하에서는, 도 4를 참고하여, 일 실시예에 따른, 전자 장치(101)가 복수의 보이스 커맨드들의 그룹을 저장하는 동작의 일 예가 설명된다.
도 4는, 일 실시예에 따른, 전자 장치(101)에 의해 실행되는 프로그램의 블록도이다.
도 4의 전자 장치(101)는 도 3의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 3의 전자 장치(101), 메모리(130), 및 프로세서(120)에 의해 실행되는 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및 제1 보이스 엔진(370)은, 도 4의 전자 장치(101), 메모리(130), 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및 제1 보이스 엔진(370)을 포함할 수 있다.
도 4를 참고하면, 사용자의 발언(예, 오디오 신호 내에 포함된 발언)과 관련된 기능을 실행하기 위한 제1 보이스 엔진(370)의 인스트럭션들, 및/또는 서브-루틴들은, 발언 인식기(450), TTS(text-to-speech) 변환기(455), 자연어 처리기(460), 종속성(dependency) 관리기(470), 및/또는 이벤트 핸들러(475)로 구분될 수 있다. 자연어 처리기(460)의 인스트럭션들, 및/또는 서브-루틴들은, 도메인 분류기(462), 및/또는 목표(goal) 분류기(464)로 구분될 수 있다.
도 4를 참고하면, 사용자의 발언(예, 오디오 신호 내에 포함된 발언)으로부터 하나 이상의 보이스 커맨드들을 식별하기 위한 발언 처리기(360)의 인스트럭션들, 및/또는 서브-루틴들은, 발언 타입 분류기(410), 보이스 커맨드 인터프리터(420), 및/또는 보이스 커맨드 컨트롤러(440)로 구분될 수 있다. 발언 처리기(360)의 실행에 기반하여, 전자 장치(101)는 메모리(130) 내 보이스 커맨드 데이터베이스(430)를 관리할(manage) 수 있다. 보이스 커맨드 데이터베이스(430) 내에 저장된 정보의 일 예가 도 5를 참고하여 설명된다. 보이스 커맨드 인터프리터(420) 내 인스트럭션들, 및/또는 서브-루틴들은, 메타 데이터 분석기(422), 및/또는 보이스 커맨드 생성기(424)로 구분될 수 있다. 보이스 커맨드 컨트롤러(440) 내 인스트럭션들, 및/또는 서브-루틴들은, 보이스 커맨드 매니저(442), 보이스 엔진 스케줄러(446), 발언 스토리지(448)로 구분될 수 있다.
발언 처리기(360)의 실행에 기반하여, 전자 장치(101)는 발언에 포함된 사용자의 의도에 매칭되는 하나 이상의 보이스 커맨드들의 실행을 제어할 수 있다. 사용자로부터 복수의 보이스 커맨드들의 그룹을 등록하기 위한 입력을 식별한 상태 내에서, 전자 장치(101)는 발언 타입 분류기(410)의 실행에 기반하여, 상기 그룹 내에 포함된 상기 복수의 보이스 커맨드들 각각에 대한 속성들을 획득할 수 있다. 전자 장치(101)는 상기 속성들에 기반하여, 보이스 커맨드의 메타 데이터를 생성할 수 있다. 상기 메타 데이터는, 전자 장치(101)의 메모리(130) 내에 저장될 수 있다. 표 1은, 보이스 커맨드의 메타 데이터 내에 포함된 속성들의 일 예를 포함할 수 있다.
Figure PCTKR2023015158-appb-img-000001
표 1의 명칭은, 속성에 할당된 예시적인 명칭일 수 있다. Prompt 명칭을 가지는 속성은, 부울(boolean) 자료형에 기반하여, 보이스 커맨드의 기능을 실행하기 위하여 추가적인 파라미터가 요구되는지 여부를 나타낼 수 있다. Time 명칭을 가지는 속성은, 상기 기능을 실행한 결과가, 시간에 따라 달라지는지 여부를 나타낼 수 있다. Location 명칭을 가지는 속성은, 상기 기능을 실행한 결과가, 전자 장치(101)의 위치에 따라 달라지는지 여부를 나타낼 수 있다. Device context 명칭을 가지는 속성은, 부울 자료형에 기반하여, 상기 기능을 실행한 결과가, 전자 장치(101)의 상태에 따라 달라지는지 여부를 나타낼 수 있다. onDevice supported 명칭을 가지는 속성은, 부울 자료형에 기반하여, 상기 기능이 제1 보이스 엔진(370)에 의해 실행 가능한지 여부를 나타낼 수 있다. 메타 데이터 내에 포함된 속성들(예, Prompt, Time, Location, Device context, onDevice supported 명칭들을 가지는 속성들)은, 종속성 관리기(470)에 의해 관리되는 정보(예, 종속성 맵(dependency map))를 포함할 수 있다.
표 1을 참고하면, Event list 명칭을 가지는 속성은, 보이스 커맨드에 대응하는 하나 이상의 기능들의 리스트를 포함할 수 있다. 예를 들어, Event list 명칭을 가지는 속성 내에, 상기 하나 이상의 기능들의 명칭들이 저장될 수 있다. 예를 들어, Event list 명칭을 가지는 속성 내에 'message' 텍스트가 저장되는 것은, 메타 데이터에 대응하는 보이스 커맨드가, 메시지를 표시하는 기능의 실행을 요구함을 나타낼 수 있다. 예를 들어, Event list 명칭을 가지는 속성 내에 'TTS_Response' 텍스트가 저장되는 것은, 메타 데이터에 대응하는 보이스 커맨드가, TTS 기능의 실행을 요구함을 나타낼 수 있다. 예를 들어, Event list 명칭을 가지는 속성 내에 'appLaunch' 텍스트가 저장되는 것은, 메타 데이터에 대응하는 보이스 커맨드가, 전자 장치(101)에 설치된 적어도 하나의 어플리케이션의 실행을 요구함을 나타낼 수 있다.
전자 장치(101)가 보이스 커맨드에 대한 메타 데이터를 획득하는 것은, 발언 타입 분류기(410)와 함께 실행되는 제1 보이스 엔진(370)에 기반하여 수행될 수 있다. 제1 보이스 엔진(370) 내 자연어 처리기(460)의 실행에 기반하여, 전자 장치(101)는 상기 보이스 커맨드에 포함된 자연어에 대한 전처리를 수행할 수 있다. 예를 들어, 전자 장치(101)는, 도메인 분류기(462)의 실행에 기반하여, 상기 보이스 커맨드가 제1 보이스 엔진(370)에 의해 처리될 수 있는지 여부를 식별할 수 있다. 보이스 커맨드가 제1 보이스 엔진(370)에 의해 처리될 수 있는지 여부가, 표 1의 onDevice supported 명칭을 가지는 속성 내에 저장될 수 있다. 전자 장치(101)는 목표 분류기(464)의 실행에 기반하여, 상기 보이스 커맨드에 의해 실행될 기능(또는 액션)의 목표를 식별할 수 있다. 종속성 관리기(470), 및/또는 이벤트 핸들러(475)의 실행에 기반하여, 전자 장치(101)는 전처리된 보이스 커맨드에 대한 후처리를 수행할 수 있다. 종속성 관리기(470)의 실행에 기반하여, 전자 장치(101)는 보이스 커맨드의 처리에 이용되는 리소스의 디바이스 의존성을 식별할 수 있다. 상기 디바이스 의존성은, 예를 들어, 상기 보이스 커맨드에 대응하는 기능이 제1 보이스 엔진(370), 및/또는 전자 장치(101)에 의해 처리될 수 있는지 여부를 포함할 수 있다. 이벤트 핸들러(475)의 실행에 기반하여, 전자 장치(101)는 보이스 커맨드에 대응하는 기능들의 리스트를 획득할 수 있다. 전자 장치(101)가 획득한 상기 리스트가, 메타 데이터 내에서 Event list 명칭을 가지는 속성 내에 저장될 수 있다.
발언 타입 분류기(410)의 실행에 기반하여, 전자 장치(101)는 퀵 커맨드에 의해 그룹핑된 하나 이상의 보이스 커맨드들에 대응하는 메타 데이터를 획득할 수 있다. 획득된 메타 데이터는, 전자 장치(101)의 메모리(130) 내에 저장될 수 있다. 전자 장치(101)가 퀵 커맨드를 등록하는 것은, 메모리(130) 내에 상기 메타 데이터를 저장하는 동작을 포함할 수 있다. 전자 장치(101)가 퀵 커맨드를 등록하는 것은, 상기 하나 이상의 보이스 커맨드들을, 보이스 커맨드 데이터베이스(430) 내에 저장하는 동작을 포함할 수 있다.
전자 장치(101)는 발언 타입 분류기(410)의 실행에 기반하여 획득된, 상기 메타 데이터를, 보이스 커맨드 인터프리터(420)에 기반하여 처리할 수 있다. 보이스 커맨드 인터프리터(420)의 실행에 기반하여, 전자 장치(101)는 상기 메타 데이터로부터 보이스 커맨드 데이터베이스(430) 내에 저장될 정보를 식별할 수 있다. 메타 데이터 분석기(422)의 실행에 기반하여, 전자 장치(101)는 발언 타입 분류기(410)에 기반하여 메모리(130) 내에 저장된 메타 데이터에 대한 파싱을 수행할 수 있다. 보이스 커맨드 생성기(424)의 실행에 기반하여, 전자 장치(101)는 메타 데이터 분석기(422)에 의해 파싱된 정보를, 보이스 커맨드 데이터베이스(430) 내에 저장할 수 있다. 보이스 커맨드 데이터베이스(430)의 스키마(schema)의 일 예가 도 5를 참고하여 설명된다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 퀵 커맨드를 등록함을 나타내는 입력에 기반하여, 상기 퀵 커맨드에 매칭되는 하나 이상의 보이스 커맨드들에 대응하는 메타 데이터를 획득할 수 있다. 전자 장치(101)는 하나 이상의 보이스 커맨드들에 대응하는 정보를, 보이스 커맨드 데이터베이스(430) 내에 저장할 수 있다. 퀵 커맨드를 등록한 이후, 상기 퀵 커맨드를 포함하는 발언(예, 도 2의 발언(220))을 식별하는 것에 기반하여, 전자 장치(101)는 상기 저장된 메타 데이터를 이용하여, 상기 퀵 커맨드에 의해 실행될 하나 이상의 보이스 커맨드들, 및 상기 하나 이상의 보이스 커맨드들의 속성들을 식별할 수 있다. 발언 타입 분류기(410)에 의해 메모리(130) 내에 저장된 메타 데이터, 및 보이스 커맨드 데이터베이스(430) 내에 저장된 정보에 기반하여, 전자 장치(101)는 상기 하나 이상의 보이스 커맨드들, 및 상기 속성들을, 보다 신속하게 식별할 수 있다. 전자 장치(101)가 상기 퀵 커맨드를 포함하는 상기 발언을 식별하는 것에 기반하여 수행하는 동작이, 도 6을 참고하여 설명된다.
이하에서는, 도 5를 참고하여, 퀵 커맨드를 등록함을 나타내는 입력에 응답하여, 전자 장치(101)가 보이스 커맨드 데이터베이스(430) 내에 저장하는 정보의 일 예가 설명된다.
도 5는, 일 실시예에 따른, 전자 장치 내에 포함된 보이스 커맨드 데이터베이스(430)의 블록도이다.
도 5의 전자 장치는, 도 3 및 도 4의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 4의 보이스 커맨드 데이터베이스(430)는 도 5의 보이스 커맨드 데이터베이스(430)를 포함할 수 있다. 도 5의 보이스 커맨드 데이터베이스(430)는, 도 3 내지 도 4의 발언 처리기(360)의 실행에 기반하여, 관리될 수 있다.
일 실시예에 따른, 전자 장치는 보이스 커맨드 데이터베이스(430) 내에 포함된 정보를, 보이스 커맨드에 대응하는 파라미터들을 저장하기 위한 제1 테이블(510), 및 상기 보이스 커맨드에 의해 실행될 하나 이상의 이벤트들과 관련된 파라미터들을 저장하기 위한 제2 테이블(520)로 구분하여 저장할 수 있다. 전자 장치는, 하나 이상의 보이스 커맨드들을 포함하는 퀵 커맨드를 등록하는 상태 내에서, 상기 하나 이상의 보이스 커맨드들에 기반하여, 보이스 커맨드 데이터베이스(430)를 업데이트할 수 있다.
보이스 커맨드 데이터베이스(430)의 제1 테이블(510) 내에서, 전자 장치는 보이스 커맨드에 대응하는 파라미터들을 저장할 수 있다. 표 2는, 보이스 커맨드 데이터베이스(430)의 제1 테이블(510) 내에 저장하는 상기 파라미터들의 일 예를 포함할 수 있다.
Figure PCTKR2023015158-appb-img-000002
표 2를 참고하면, ID 명칭을 가지는 파라미터는, 보이스 커맨드 데이터베이스(430)의 제1 테이블(510) 내 레코드들에 고유하게 할당되는(uniquely assigned) 식별자(예, 키 값)을 포함할 수 있다. Command 명칭을 가지는 파라미터는, 보이스 커맨드에 대응하는 자연어를 포함할 수 있다. Engine type 명칭을 가지는 파라미터는, 보이스 커맨드에 대응하는 하나 이상의 기능들을 실행할 수 있는 보이스 엔진을 식별하기 위한 값을 포함할 수 있다. 예를 들어, Engine type 명칭을 가지는 파라미터는, 상기 하나 이상의 기능들이, 전자 장치에 의해 실행되는 제1 보이스 엔진(예, 도 3의 제1 보이스 엔진(370)), 및 외부 전자 장치(예, 도 2 내지 도 3의 외부 전자 장치(210))에 의해 실행되는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380)) 각각에 의해 실행될 수 있는지 여부를 나타내는 값을 포함할 수 있다. Static event list 명칭을 가지는 파라미터는, 보이스 커맨드에 대응하는 기능이 변경되는지 여부를 나타낼 수 있다. Event list 명칭을 가지는 파라미터는, 보이스 커맨드에 대응하는 하나 이상의 기능들을 실행한 결과들이 출력되는 방식을 나타낼 수 있다. 제1 테이블(510) 내에서, Event list 명칭을 가지는 파라미터는, 제2 테이블(520)의 레코드에 고유하게 할당된 식별자를 포함할 수 있다. 전자 장치는, Event list 명칭을 가지는 파라미터에 기반하여, 제1 테이블(510)의 특정 레코드에 매칭된 보이스 커맨드의 하나 이상의 기능들을 실행한 결과들이 출력되는 방식이 저장된, 제2 테이블(520) 내 레코드를 식별할 수 있다. 예를 들어, Event list 명칭을 가지는 상기 파라미터는, 제1 테이블(510), 및 제2 테이블(520)의 결합(예, join 연산에 기반하는 테이블들의 결합)을 위해 이용될 수 있다.
제2 테이블(520) 내에서, 전자 장치는 event message(이벤트 메시지) 명칭을 가지는 파라미터(또는 필드)에 기반하여, 보이스 커맨드의 하나 이상의 기능들을 실행한 결과들이 출력되는 방식을 나타낼 수 있다. 상기 파라미터는, JSON(javascript object notation)과 같이 구조화된 텍스트에 기반하여, 상기 방식을 나타낼 수 있다. 실시예가 이에 제한되는 것은 아니며, event message 명칭을 가지는 파라미터는, xml(extended marked-up language)에 기반하여, 상기 결과들이 출력되는 방식을 나타낼 수 있다. Event list 명칭을 가지는 파라미터 내, 상기 하나 이상의 기능들을 실행한 결과가, 디스플레이를 통해 표시될지, 또는 자연어에 기반하는 발언의 형태로 표시될지 여부가 저장될 수 있다.
도 4 및 도 5를 참고하여 상술한 바와 같이, 일 실시예에 따른, 전자 장치는 복수의 기능들의 그룹을 실행하기 위한 퀵 커맨드를 등록함을 나타내는 입력을 처리할 수 있다. 상기 퀵 커맨드는, 예를 들어, "굿모닝"과 같은 단순화된(simplified) 자연어에 기반하여, 사용자에 의해 배열된 기능들(예, 음악을 재생하는 기능, 알람을 해제하는 기능, 및 기상 예보를 출력하는 기능)의 순차적인 실행을 야기할 수 있다. 전자 장치는 상기 기능들을 실행하기 위해 이용되는 정보를, 전자 장치의 메모리 내에, 상기 기능들 각각에 대응하는 보이스 커맨드들의 단위로 저장할 수 있다. 전자 장치에 의해 저장되는 상기 정보는, 상기 보이스 커맨드들의 스케줄링에 이용되는 파라미터(예, 보이스 커맨드가 실행될 수 있는 전자 장치, 및/또는 보이스 엔진의 타입)를 포함할 수 있다.
퀵 커맨드, 및 상기 퀵 커맨드에 대응하는 하나 이상의 보이스 커맨드들을 등록한 이후, 전자 장치는 상기 퀵 커맨드를 포함하는 발언에 대응하여, 등록된 하나 이상의 보이스 커맨드들에 대응하는 하나 이상의 기능들을 실행할 수 있다. 전자 장치가, 도 4의 보이스 커맨드 컨트롤러(440)의 실행에 기반하여, 상기 하나 이상의 기능들에 대한 스케줄링, 및/또는 실행을 제어할 수 있다. 이하에서는 도 6 및 도 7을 참고하여, 일 실시예에 따른, 전자 장치가, 마이크로부터 출력된 오디오 신호로부터 퀵 커맨드를 식별하는 것에 기반하여 수행하는 동작의 일 예가 설명된다.
도 6은, 일 실시예에 따른, 전자 장치(101)에 의해 실행되는 프로그램을 설명하기 위한 블록도이다.
도 6의 전자 장치(101)는 도 3 및 도 4의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 3의 전자 장치(101), 메모리(130), 및 프로세서(120)에 의해 실행되는 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및 제1 보이스 엔진(370)은, 도 6의 전자 장치(101), 메모리(130), 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및 제1 보이스 엔진(370)을 포함할 수 있다.
도 6을 참고하면, 사용자의 발언이 퀵 커맨드를 포함하는지 여부를 식별하기 위한 퀵 커맨드 처리기(350)의 인스트럭션들, 및/또는 서브-루틴들은, 비교기(610), 실행기(620), 퀵 커맨드 생성기(630)로 구분될 수 있다. 퀵 커맨드 처리기(350)의 실행에 기반하여, 전자 장치(101)는 메모리(130) 내에 퀵 커맨드에 대한 정보를 포함하는 퀵 커맨드 데이터베이스(640)를 관리할 수 있다. 사용자로부터 퀵 커맨드를 등록하는 상태 내에서, 전자 장치(101)는 상기 퀵 커맨드에 대응하는 자연어, 언어 타입(예, 영어), 상기 퀵 커맨드에 고유하게 할당된 식별자, 상기 퀵 커맨드가 등록된 시간을, 퀵 커맨드 데이터베이스(640) 내에 저장할 수 있다. 퀵 커맨드 데이터베이스(640) 내에 저장되는 상기 정보는, 전자 장치(101)에 연결된 외부 전자 장치 내에 저장될 수 있다(예, 도 2 내지 도 3의 외부 전자 장치(210)의 메모리(130)).
일 실시예에 따른, 전자 장치(101)는 마이크(예, 도 3의 마이크(320))로부터 출력된 오디오 신호로부터, 사용자의 발언을 식별할 수 있다. 전자 장치(101)가 발언을 식별하는 것은, 제1 보이스 엔진(370), 및/또는 외부 전자 장치의 제2 보이스 엔진(예, 도 2의 제2 보이스 엔진(380)) 내 발언 인식기(450)의 실행에 기반하여, 상기 오디오 신호에 대응하는 텍스트를 획득하는 동작을 포함할 수 있다. 전자 장치(101)는 비교기(610)의 실행에 기반하여, 상기 텍스트, 및 퀵 커맨드 데이터베이스(640) 내에 저장된 퀵 커맨드를 비교하여, 퀵 커맨드가 상기 발언 내에 포함되어 있는지 여부를 식별할 수 있다.
퀵 커맨드가 상기 발언 내에 포함되어 있지 않은 경우, 전자 장치(101)는 발언 처리기(360)의 실행에 기반하여, 상기 발언 내에 포함된 하나 이상의 보이스 커맨드들을 식별할 수 있다. 전자 장치(101)는 발언 타입 분류기(410)에 의해 메모리(130)로부터, 상기 하나 이상의 보이스 커맨드들에 대응하는 메타 데이터를 식별할 수 있다. 메모리(130) 내에 상기 하나 이상의 보이스 커맨드들에 대응하는 메타 데이터가 존재하는 경우, 전자 장치(101)는 상기 메타 데이터에 기반하여, 상기 하나 이상의 보이스 커맨드들의 속성들을 식별할 수 있다. 식별된 속성들에 기반하여, 전자 장치(101)는 상기 하나 이상의 보이스 커맨드들의 실행에 이용될 보이스 엔진을, 제1 보이스 엔진(370), 또는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380)) 중에서 선택할 수 있다.
퀵 커맨드가 상기 발언 내에 포함되어 있지 않고, 상기 발언으로부터 복수의 보이스 커맨드들을 식별한 경우, 전자 장치(101)는 상기 복수의 보이스 커맨드들을, 제1 보이스 엔진(370), 또는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380)) 중 적어도 하나를 이용하여 처리할 수 있다. 예를 들어, 전자 장치(101)는 상기 제1 보이스 엔진(370), 및 상기 제2 보이스 엔진 중에서, 유휴 상태(idle state)의 보이스 엔진을 선택할 수 있다. 상기 예시 내에서, 전자 장치(101)는 선택된 보이스 엔진을 이용하여 상기 복수의 보이스 커맨드들에 대응하는 복수의 기능들을 순차적으로 실행할 수 있다. 유휴 상태의 보이스 엔진을 선택하기 위하여, 전자 장치(101)는 상기 제2 보이스 엔진이 실행되는 외부 전자 장치(예, 도 2 내지 도 3의 외부 전자 장치(210))와 통신 링크를 수립하거나, 또는 수립되어 있는 통신 링크를 유지할 수 있다.
상기 발언 내에 포함된 퀵 커맨드를 식별하는 것에 기반하여, 전자 장치(101)는 실행기(620)에 기반하여 상기 퀵 커맨드와 관련된 동작을 수행할 수 있다. 예를 들어, 전자 장치(101)는 실행기(620)에 기반하여, 발언 처리기(360)의 실행을 제어할 수 있다. 상기 발언 내에 포함된 퀵 커맨드를 식별한 상태 내에서, 전자 장치(101)는 발언 처리기(360)를 실행하여, 상기 퀵 커맨드와 관련된 메타 데이터, 및 보이스 커맨드 데이터베이스(430) 내에 저장된 파라미터들을 식별할 수 있다. 상기 메타 데이터, 및 상기 파라미터들은, 상기 퀵 커맨드에 매칭되는 적어도 하나의 보이스 커맨드를 나타낼 수 있다. 상기 퀵 커맨드가 복수의 보이스 커맨드들의 실행을 위해 전자 장치(101) 내에 등록된 경우, 사용자가 상기 복수의 보이스 커맨드들 각각에 대응하는 문장들과 독립적으로, 상대적으로 짧은 길이의 상기 퀵 커맨드를 발언하여, 상기 복수의 보이스 커맨드들에 대응하는 기능들을 실행할 수 있다. 사용자가 자주 실행하는 보이스 커맨드들을 퀵 커맨드로 그룹핑한 경우, 전자 장치(101)는 상기 보이스 커맨드들에 대응하는 문장들을 인식하는 대신, 상대적으로 짧은 길이의 상기 퀵 커맨드를 인식하여, 상기 복수의 보이스 커맨드들을 실행할 수 있다.
퀵 커맨드와 관련된 메타 데이터, 및 보이스 커맨드 데이터베이스(430) 내 정보를 식별한 상태 내에서, 전자 장치(101)는 보이스 커맨드 컨트롤러(440)의 실행에 기반하여, 상기 퀵 커맨드에 대응하는 적어도 하나의 보이스 커맨드의 리스트를 획득할 수 있다. 전자 장치(101)는 상기 리스트에 기반하여, 상기 적어도 하나의 보이스 커맨드를 처리할 보이스 엔진을 스케줄링할 수 있다. 보이스 커맨드 컨트롤러(440)가 실행된 상태 내에서, 전자 장치(101)는 제1 보이스 엔진(370), 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 정보를 획득할 수 있다. 상기 제2 보이스 엔진의 정보는, 상기 제2 보이스 엔진을 실행하는 외부 전자 장치가 보이스 커맨드를 처리하는 것에 의해 발생되는 대기 시간(latency time), 및/또는 지연을 포함할 수 있다. 제2 보이스 엔진의 정보는, 상기 제2 보이스 엔진의 상태(예, 유휴 상태인지 여부)를 포함할 수 있다. 전자 장치(101)는 제1 보이스 엔진(370), 및 상기 제2 보이스 엔진의 상태들에 의해 지시되는, 상기 제1 보이스 엔진(370), 또는 상기 제2 보이스 엔진 각각이 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행 가능한지 여부에 기반하여, 상기 퀵 커맨드에 대응하는 상기 적어도 하나의 보이스 커맨드를 분류할 수 있다. 예를 들어, 상기 리스트 내에서 복수의 보이스 커맨드들을 식별한 경우, 전자 장치(101)는 제1 보이스 엔진(370), 및 상기 제2 보이스 엔진의 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 제1 보이스 엔진(370)에 의해 실행될 제1 그룹, 및 상기 제2 보이스 엔진에 의해 실행될 제2 그룹으로 분류할 수 있다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 사용자의 발언으로부터 퀵 커맨드를 식별하는 것에 기반하여, 상기 퀵 커맨드에 대응하는 복수의 보이스 커맨드들을 식별할 수 있다. 전자 장치(101)는, 퀵 커맨드를 등록하는 동안 메모리(130) 내에 저장된 정보(예, 메타 데이터, 및/또는 보이스 커맨드 데이터베이스(430))에 기반하여, 상기 복수의 보이스 커맨드들의 스케줄링에 이용되는 상기 정보를 획득할 수 있다. 전자 장치(101)는 상기 정보에 기반하여 보이스 커맨드 컨트롤러(440)를 실행하여, 상기 복수의 보이스 커맨드들 각각을 처리할 보이스 엔진을, 상이한 보이스 엔진들(예, 제1 보이스 엔진(370), 및 상기 제2 보이스 엔진) 중에서 선택할 수 있다. 이하에서는, 도 7을 참고하여, 보이스 커맨드 컨트롤러(440)가 실행된 상태 내에서, 전자 장치(101)가 상기 복수의 보이스 커맨드들 각각을 처리할 보이스 엔진을 선택하는 동작의 일 예가 설명된다.
도 7은, 일 실시예에 따른, 전자 장치(101)에 의해 실행되는 프로그램의 블록도이다.
도 7의 전자 장치(101)는 도 3 내지 도 6의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 3 내지 도 6의 제1 보이스 엔진(370)은 도 7의 제1 보이스 엔진(370)을 포함할 수 있다. 도 4의 보이스 커맨드 컨트롤러(440), 및 보이스 커맨드 데이터베이스(430)는, 도 7의 보이스 커맨드 컨트롤러(440), 및 보이스 커맨드 데이터베이스(430)를 포함할 수 있다. 도 3의 외부 전자 장치(210)는, 도 7의 외부 전자 장치(210)를 포함할 수 있다.
도 7을 참고하면, 전자 장치(101)에 의해 실행되는 보이스 커맨드 컨트롤러(440)의 인스트럭션들, 및/또는 서브-루틴들은, 보이스 커맨드 매니저(442), 보이스 엔진 스케줄러(446), 및/또는 발언 스토리지(448)로 구분될 수 있다. 발언으로부터 전자 장치(101)에 등록된 퀵 커맨드를 식별하는 것에 기반하여, 전자 장치(101)는 보이스 커맨드 컨트롤러(440)를 실행할 수 있다. 전자 장치(101)는 보이스 커맨드 컨트롤러(440)의 실행을 위해 요구되는 정보를, 보이스 커맨드 데이터베이스(430)로부터 획득할 수 있다. 보이스 커맨드 데이터베이스(430)로부터, 전자 장치(101)는 상기 퀵 커맨드에 대응하는 적어도 하나의 보이스 커맨드와 관련된 정보를 획득할 수 있다.
보이스 커맨드 매니저(442)의 실행에 기반하여, 전자 장치(101)는 퀵 커맨드에 대응하는 적어도 하나의 보이스 커맨드와 관련된 정보를 획득할 수 있다. 전자 장치(101)는 상기 정보에 기반하여, 보이스 엔진에 기반하여 상기 적어도 하나의 보이스 커맨드를 처리할지 여부를 결정할 수 있다. 예를 들어, 전자 장치(101)의 메모리(예, 도 3의 메모리(130)) 내에, 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행한 결과가 캐시된(cached) 경우, 전자 장치(101)는 보이스 엔진에 기반하는 보이스 커맨드의 처리를 바이패스하고, 발언 스토리지(448) 내에 상기 캐시된 결과를 저장할 수 있다. 발언 스토리지(448) 내에 상기 결과를 저장할지 여부는, 전자 장치(101)에 의해 식별된, 상기 결과가 유효한지 여부에 종속될 수 있다. 보이스 커맨드에 대응하는 적어도 하나의 기능을 실행한 결과가 메모리 내에 캐시되어 있지 않거나, 캐시된 결과가 유효하지 않은 경우, 전자 장치(101)는 보이스 엔진에 기반하여 상기 보이스 커맨드를 처리하기로 결정할 수 있다. 퀵 커맨드에 복수의 보이스 커맨드들이 대응하는 경우, 전자 장치(101)는 보이스 커맨드 매니저(442)의 실행에 기반하여, 상기 복수의 보이스 커맨드들 중에서 보이스 엔진에 의해 처리되어야 하는 보이스 커맨드를 식별할 수 있다.
보이스 엔진 스케줄러(446)의 실행에 기반하여, 전자 장치(101)는 보이스 엔진에 의해 처리되어야 하는 하나 이상의 보이스 커맨드들에 대한 스케줄링을 수행할 수 있다. 상기 스케줄링은, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진(370), 및 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진(380) 중에서, 상기 하나 이상의 보이스 커맨드들의 처리에 이용될 보이스 엔진을 선택하는 동작을 포함할 수 있다. 복수의 보이스 커맨드들에 대한 스케줄링을 수행하는 상태 내에서, 전자 장치(101)는 복수의 보이스 커맨드들을, 제1 보이스 엔진(370)에 대응하는 제1 큐(710), 및 제2 보이스 엔진(380)에 대응하는 제2 큐(720) 중 어느 하나의 큐에 할당(allocate)할 수 있다. 제1 큐(710)는, 전자 장치(101)의 메모리(예, 도 3의 메모리(130)) 내에 형성된 영역으로, 제1 보이스 엔진(370)으로 순차적으로 입력될 하나 이상의 보이스 커맨드들에 대한 정보가 저장될 수 있다. 제2 큐(720)는, 상기 메모리 내에 형성된 다른 영역으로, 외부 전자 장치(210)로 순차적으로 송신될 하나 이상의 보이스 커맨드들에 대한 정보가 저장될 수 있다. 전자 장치(101)가 보이스 엔진 스케줄러(446)의 실행에 기반하여, FIFO(first in first out)의 데이터 구조를 가지는 제1 큐(710), 및 제2 큐(720)를 형성한 일 실시예가 도시되지만, 실시예가 이에 제한되는 것은 아니다.
보이스 엔진 스케줄러(446)가 실행된 상태 내에서, 전자 장치(101)는 제1 보이스 엔진(370), 및/또는 제2 보이스 엔진(380)의 상태들, 보이스 커맨드의 속성들 중 적어도 하나에 기반하여, 상기 보이스 커맨드를, 제1 큐(710), 또는 제2 큐(720) 중 어느 하나에 저장할 수 있다. 예를 들어, 상기 속성들 중에서, 표 1의 onDevice supported 명칭을 가지는 속성에 기반하여, 전자 장치(101)는 상기 보이스 커맨드가 특정 보이스 엔진(예, 제2 보이스 엔진(380))에 의하여 배타적으로 처리되어야 하는지 여부를 획득할 수 있다. 제2 보이스 엔진(380)에 의하여 배타적으로 처리되어야 하는 속성을 가진 보이스 커맨드를 식별하는 것에 응답하여, 전자 장치(101)는 상기 보이스 커맨드를 제1 큐(710), 또는 제2 큐(720) 중 제2 큐(720) 내에 저장할 수 있다. 예를 들어, 제1 보이스 엔진(370), 또는 제2 보이스 엔진(380) 각각이 유휴 상태인지 여부에 기반하여, 전자 장치(101)는 보이스 커맨드를 분류할 수 있다. 예를 들어, 제2 보이스 엔진(380)이 유휴 상태와 상이한 다른 상태인 경우, 전자 장치(101)는 보이스 엔진에 의해 처리되어야 하는 적어도 하나의 보이스 커맨드를, 제1 큐(710) 내에 저장할 수 있다.
보이스 엔진 스케줄러(446)의 실행에 기반하여, 전자 장치(101)는 비용 함수(cost function)를 이용하여, 퀵 커맨드에 포함된 복수의 보이스 커맨드들이 처리되는 총 기간(total duration)을 계산할 수 있다. 상기 총 기간을 최소화하도록, 전자 장치(101)는 복수의 보이스 커맨드들을, 제1 큐(710), 또는 제2 큐(720) 중 어느 하나의 큐로 분류할 수 있다. 상기 비용 함수는, 제1 보이스 엔진(370), 및 제2 보이스 엔진(380) 각각의 상태들, 및/또는 성능에 종속될 수 있다.
퀵 커맨드에 대응하는 복수의 보이스 커맨드들을, 보이스 엔진 스케줄러(446)의 실행에 기반하여, 상이한 보이스 엔진들로 분류한 결과를 이용하여, 전자 장치(101)는 상기 보이스 엔진들을 직접적으로, 또는 간접적으로 제어할 수 있다. 전자 장치(101)는 제1 큐(710)에 누적된 적어도 하나의 보이스 커맨드에 기반하여, 제1 보이스 엔진(370)을 실행할 수 있다. 전자 장치(101)는 제2 큐(720)에 누적된 적어도 하나의 보이스 커맨드를 포함하는 적어도 하나의 신호를, 제2 보이스 엔진(380)을 실행하는 외부 전자 장치(210)로 송신할 수 있다. 상기 적어도 하나의 신호에 기반하여, 전자 장치(101)는 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진(380)을 간접적으로 제어할 수 있다.
전자 장치(101)는 발언 스토리지(448)의 실행에 기반하여, 제1 큐(710), 및 제2 큐(720) 각각에 저장된 보이스 커맨드들을 실행한 결과를, 전자 장치(101)의 메모리 내에 저장할 수 있다. 발언 스토리지(448)의 실행에 기반하여, 전자 장치(101)는 제1 보이스 엔진(370)을 이용하여 제1 큐(710) 내에 누적된 적어도 하나의 보이스 커맨드를 처리한 결과를, 메모리 내에 저장할 수 있다. 발언 스토리지(448)의 실행에 기반하여, 전자 장치(101)는 외부 전자 장치(210)로부터 수신된 신호에 포함되고, 제2 큐(720) 내에 누적된 적어도 하나의 보이스 커맨드를 처리한 결과를, 상기 메모리 내에 저장할 수 있다. 전자 장치(101)는 퀵 커맨드를 등록하는 동안 설정된, 복수의 보이스 커맨드들을 처리하는 순서에 기반하여, 상이한 보이스 엔진들에 의해 상기 보이스 커맨드들을 처리한 결과들을 저장할 수 있다. 예를 들어, 발언 스토리지(448)의 실행에 기반하여 전자 장치(101)의 메모리 내에 누적된 상기 결과들은, 상기 복수의 보이스 커맨드들을 처리하는 상기 순서에 기반하여, 정렬될 수 있다. 발언 스토리지(448)의 실행에 기반하여, 전자 장치(101)는 메모리 내에 복수의 보이스 커맨드들을 처리한 결과들이 저장되는 큐를 형성할 수 있다.
발언 스토리지(448)에 기반하여 전자 장치(101)의 메모리 내에 누적되고, 퀵 커맨드에 대응하는 복수의 보이스 커맨드들을 처리한 결과들로부터, 전자 장치(101)는 상기 결과들 각각에 대응하는 오디오 신호들을 획득할 수 있다. 복수의 보이스 커맨드들에 대한 순서에 기반하여, 전자 장치(101)는 스피커로 상기 오디오 신호들을 순차적으로 송신할 수 있다. 상기 오디오 신호들의 순차적인 송신에 기반하여, 전자 장치(101)는 상기 결과들을 표현하는 소리를, 상기 스피커를 통해 출력할 수 있다. 상기 오디오 신호들은, 상기 결과들을 표현하는 발언(예, 자연어 문장)을 포함할 수 있다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 하나의 퀵 커맨드에 대응하는 복수의 보이스 커맨드들을, 제1 보이스 엔진(370), 및 제2 보이스 엔진(380) 각각을 이용하여 분할하여 처리할 수 있다. 상기 복수의 보이스 커맨드들이 분할하여 처리되기 때문에, 제1 보이스 엔진(370), 및 제2 보이스 엔진(380) 각각의 대기 시간(idle time)이 최소화될 수 있다.
이하에서는, 도 8a 및 도 8b를 참고하여, 일 실시예에 따른, 전자 장치(101)가 퀵 커맨드를 등록하는 동작, 및 상기 퀵 커맨드를 포함하는 발언에 응답하여 상기 퀵 커맨드에 대응하는 복수의 보이스 커맨드들을 처리하는 동작의 일 예가 설명된다.
도 8a 및 도 8b는, 일 실시예에 따른, 전자 장치(101)가 UI(user interface)를 표시하는 예시적인 상태들(801, 802)을 도시한다.
도 8a 및 도 8b의 전자 장치(101)는 도 3 내지 도 7의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 3의 전자 장치(101), 및 디스플레이(260)는, 도 8a 및 도 8b의 전자 장치(101), 및 디스플레이(260)를 포함할 수 있다. 도 8a 및 도 8b를 참고하면, 전자 장치(101)가 오디오 신호로부터 발언을 인식하기 위한 어플리케이션으로부터 제공된 UI를 표시하는 상이한 상태들(801, 802)이 도시된다. 상기 어플리케이션은, 도 3의 입력 수신기(340), 퀵 커맨드 처리기(350), 발언 처리기(360), 및/또는 제1 보이스 엔진(370)의 실행을 위한 하나 이상의 인스트럭션들을 포함할 수 있다.
도 8a를 참고하면, 상태(801) 내에서, 전자 장치(101)는 디스플레이(260) 내에 퀵 커맨드의 등록을 위한 화면을 표시할 수 있다. 상태(801) 내에서, 전자 장치(101)는 디스플레이(260)를 통하여, 퀵 커맨드의 등록을 위해 요구되는 정보를, 사용자로부터 수신할 수 있다. 전자 장치(101)는 디스플레이(260) 내에, 퀵 커맨드의 식별에 이용될 자연어를 획득하기 위한 텍스트 박스(810)를 표시할 수 있다. 텍스트 박스(810)와 함께, 전자 장치(101)는 발언에 기반하여 상기 자연어를 획득하기 위한 버튼(815)을 표시할 수 있다. 버튼(815)을 선택함을 나타내는 입력에 응답하여, 전자 장치(101)는 마이크로부터 이용하여 획득된 오디오 신호로부터 상기 자연어를 획득할 수 있다.
도 8a의 상태(801) 내에서, 전자 장치(101)는 디스플레이(260) 내에 퀵 커맨드에 의해 실행되는 하나 이상의 보이스 커맨드들을 추가하기 위한 버튼(860)을 표시할 수 있다. 버튼(860)을 선택함을 나타내는 입력에 응답하여, 전자 장치(101)는 텍스트, 및/또는 오디오 신호를 통해, 보이스 커맨드를 획득할 수 있다. 도 8a를 참고하면, 퀵 커맨드에 기반하여 4 개의 보이스 커맨드들을 획득한 예시적인 상태(801) 내에서, 전자 장치(101)는 디스플레이(260) 내에 상기 4 개의 보이스 커맨드들 각각에 대응하는 시각적 객체들(820, 830, 840, 850)을 표시할 수 있다. 시각적 객체들(820, 830, 840, 850)이 디스플레이(260) 내에서 배열된 순서는, 상기 퀵 커맨드에 기반하여 상기 제4 개의 보이스 커맨드들을 실행하는 순서를 나타낼 수 있다.
도 8a의 예시적인 상태(801) 내에서, 전자 장치(101)는 퀵 커맨드에 의해 실행될 보이스 커맨드들을, 시각적 객체들(820, 830, 840, 850)을 이용하여 시각화할 수 있다. 시각적 객체(820)는, 알람과 관련된 기능을 실행하기 위한 보이스 커맨드에 대응할 수 있다. 시각적 객체(820) 내에서, 전자 장치(101)는 상기 보이스 커맨드를 표현하는 자연어 문장(예, "알람 맞춰줘")을 표시할 수 있다. 시각적 객체(820) 내에서, 전자 장치(101)는 시각적 객체(820)에 대응하는 보이스 커맨드가 실행될 순서를 조절하기 위한 버튼(822)을 표시할 수 있다. 시각적 객체(820) 내에서, 전자 장치(101)는 시각적 객체(820)에 대응하는 보이스 커맨드를, 상기 퀵 커맨드에 의해 실행될 보이스 커맨드들로부터 제외하기 위한 버튼(824)을 표시할 수 있다. 유사하게, 시각적 객체(830) 내에서, 전자 장치(101)는 시각적 객체(830)에 대응하는 보이스 커맨드를 표현하는 자연어 문장(예, "마지막으로 온 문자 읽어줘")을 표시할 수 있다. 시각적 객체(840) 내에서, 전자 장치(101)는 시각적 객체(840)에 대응하는 보이스 커맨드를 표현하는 자연어 문장(예, "10분 뒤에 리마인더 등록해줘")을 표시할 수 있다. 시각적 객체(850) 내에서, 전자 장치(101)는 시각적 객체(850)에 대응하는 보이스 커맨드를 표현하는 자연어 문장(예, "날씨 알려줘")을 표시할 수 있다. 시각적 객체들(820, 830, 840, 850), 및 텍스트 박스(810)를 참고하면, 퀵 커맨드를 위해 지정된 발언(예, "커맨드")은, 시각적 객체들(820, 830, 840, 850)의 실행을 위해 요구되는 상기 자연어 문장들과 다를 수 있다. 예를 들어, 상기 지정된 발언의 길이는, 상기 자연어 문장들 보다 짧을 수 있다.
도 8a를 참고하면, 전자 장치(101)는 디스플레이(260) 내에 표시된 정보에 기반하여 퀵 커맨드를 등록하기 위한 버튼(870)을 표시할 수 있다. 버튼(870)과 함께, 전자 장치(101)는 퀵 커맨드의 등록을 바이패스하기 위한 버튼(875)을 표시할 수 있다. 버튼(870)을 선택함을 나타내는 입력에 응답하여, 전자 장치(101)는 텍스트 박스(810)에 입력된 텍스트에 의해 실행되는 퀵 커맨드를 등록할 수 있다. 퀵 커맨드를 등록하기 위하여, 전자 장치(101)는 도 4 및 도 5를 참고하여 상술된 동작을 수행할 수 있다. 전자 장치(101)는 도 3 및 도 4의 발언 처리기(360)의 실행에 기반하여, 시각적 객체들(820, 830, 840, 850)에 대응하는 보이스 커맨드들에 대한 정보를 저장할 수 있다. 상기 정보는, 표 1을 참고하여 상술된, 상기 보이스 커맨드들에 대한 메타 데이터, 및/또는 표 2를 참고하여 상술된, 상기 보이스 커맨드들에 대한 속성들을 포함할 수 있다. 예를 들어, 전자 장치(101)는 표 3과 같이, 상기 보이스 커맨드들에 대한 속성들을 획득할 수 있다.
Figure PCTKR2023015158-appb-img-000003
표 3의 속성들은, 시각적 객체들(820, 830, 840, 850)에 대응하는 보이스 커맨드들에 대한 메타 데이터 내에 저장될 수 있다. 표 3을 참고하면, 시각적 객체(820)에 대응하는 제1 보이스 커맨드는, 알람과 관련된 자연어 문장(예, "알람 맞춰줘")을 포함할 수 있다. 상기 자연어 문장이 알람을 조절하기 위한 파라미터(예, 시간)를 포함하지 않기 때문에, 제1 보이스 커맨드를 처리하기 위하여, 상기 파라미터의 추가적인 입력이 요구될 수 있다. 전자 장치(101)는 상기 제1 보이스 커맨드에 대응하는 메타 데이터 내에서, prompt 명칭을 가지는 속성 내에, 상기 제1 보이스 커맨드의 처리를 위한 추가적인 입력이 요구됨을 나타내는 지정된 값을 할당할(assign) 수 있다.
표 3을 참고하면, 시각적 객체(830)에 대응하는 제2 보이스 커맨드는, SMS(short message service)와 관련된 자연어 문장(예, "마지막으로 온 문자 읽어줘")을 포함할 수 있다. 제2 보이스 커맨드는, 제2 보이스 커맨드를 처리하는 시점의 전자 장치(101)의 상태(예, 적어도 하나의 문자 메시지가 전자 장치(101) 내에 저장된 상태)에 종속될 수 있다. 전자 장치(101)는 제2 보이스 커맨드에 대응하는 메타 데이터 내에서, device context 명칭을 가지는 속성 내에, 상기 제2 보이스 커맨드의 처리를 위하여 전자 장치(101)의 상태를 식별하는 것이 요구됨을 나타내는 지정된 값을 할당할 수 있다.
표 3을 참고하면, 시각적 객체(840)에 대응하는 제3 보이스 커맨드는, 알람과 관련된 자연어 문장(예, "10분 뒤에 리마인더 등록해줘")을 포함할 수 있다. 제3 보이스 커맨드에 의해 실행되는 기능은, 제3 보이스 커맨드를 처리하는 시점에 종속될 수 있다. 전자 장치(101)는 제3 보이스 커맨드에 대응하는 메타 데이터 내에서, time 명칭을 가지는 속성에 지정된 값을 할당하여, 상기 제3 보이스 커맨드의 처리를 위하여 전자 장치(101)의 현재 시점이 요구됨을 나타낼 수 있다.
표 3을 참고하면, 시각적 객체(850)에 대응하는 제4 보이스 커맨드는, 네트워크를 통한 정보의 획득을 위한 자연어 문장(예, "날씨 알려줘")을 포함할 수 있다. 제4 보이스 커맨드에 의해 실행되는 기능은, 전자 장치(101)와 상이한 외부 전자 장치(예, 날씨 정보를 제공하기 위한 서드-파티 서버)와 통신하는 것을 요구할 수 있다. 전자 장치(101)는 제4 보이스 커맨드에 대응하는 메타 데이터 내에서, "onDevice supported" 명칭을 가지는 속성에 지정된 값을 할당하여, 상기 제4 보이스 커맨드의 처리를 위하여 외부 전자 장치가 요구됨을 나타낼 수 있다.
표 3을 참고하여 상술한 바와 같이, "커맨드" 발언에 의해 식별되는 퀵 커맨드를 등록하는 동안, 전자 장치(101)는 사용자에 의해 상기 퀵 커맨드에 매칭된 4 개의 보이스 커맨드들의 속성들을 획득할 수 있다. 도 8a의 상태(801) 이후, 마이크로부터 출력된 오디오 신호로부터 "커맨드" 발언을 식별하는 것에 기반하여, 전자 장치(101)는 상기 4 개의 보이스 커맨드들을 실행하기 위하여 등록된, 상기 퀵 커맨드를 식별할 수 있다. 도 8b를 참고하면, 도 8a의 상태(801) 이후, 전자 장치(101)가 상기 퀵 커맨드를 실행하기 위한 상기 발언("커맨드")을 식별한 상태(802)가 도시된다.
도 8b의 상태(802) 내에서, 전자 장치(101)는 표 3을 참고하여 상술된, 퀵 커맨드에 대응하는 4 개의 보이스 커맨드들에 대한 메타 데이터를 획득할 수 있다. 상기 메타 데이터에 기반하여, 전자 장치(101)는 상기 보이스 커맨드들 각각을, 상이한 보이스 엔진들 중 어느 하나와 매칭할 수 있다. 상기 보이스 엔진들은, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진(예, 도 3의 제1 보이스 엔진(370)), 및 전자 장치(101)와 상이한 외부 전자 장치에 의해 실행되는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380))을 포함할 수 있다. 전자 장치(101)는 상기 보이스 엔진들에 기반하여 상기 보이스 커맨드들이 처리되는 총 기간을 최소화하도록, 상기 보이스 엔진들로 상기 보이스 커맨드들을 할당할 수 있다. 전자 장치(101)가 상기 보이스 엔진들로 상기 보이스 커맨드들을 할당한 이후, 상기 보이스 엔진들에 기반하여 상기 보이스 커맨드들을 직접적으로, 또는 간접적으로 처리하는 것은, 도 6 내지 도 7을 참고하여 상술된 동작에 기반하여 수행될 수 있다.
일 실시예에 따른, 전자 장치(101)는 상기 보이스 커맨드들을 처리한 결과들을 표현한 오디오 신호들을, 상기 보이스 커맨드들의 순서에 따라 순차적으로 출력할 수 있다. 예를 들어, 전자 장치(101)는 도 8a의 상태(801) 내 시각적 객체들(820, 830, 840, 850)의 순서에 기반하여, 상기 오디오 신호들을 순차적으로 출력할 수 있다.
일 실시예에 따른, 전자 장치(101)는 디스플레이(260) 내에 보이스 커맨드들을 처리한 결과들을 시각화할 수 있다. 전자 장치(101)는 팝업-윈도우의 형태를 가지는 시각적 객체(880)를 통해, 상기 결과들 각각에 대응하는 시각적 객체들(882, 884, 886, 888)을 병렬로(in parallel) 표시할 수 있다. 전자 장치(101)가 시각적 객체들(882, 884, 886, 888)을 표시하는 순서 및/또는 레이아웃은, 도 8b의 일 실시예에 제한되지 않는다. 도 8b를 참고하면, 시각적 객체(882) 내에서, 전자 장치(101)는, 제1 보이스 커맨드를 실행한 결과를 포함하는 정보를 표시할 수 있다. 시각적 객체(884) 내에서, 전자 장치(101)는 제2 보이스 커맨드를 실행한 결과를 포함하는 정보를 표시할 수 있다. 시각적 객체(886) 내에서, 전자 장치(101)는 제3 보이스 커맨드를 실행한 결과를 포함하는 정보를 표시할 수 있다. 시각적 객체(888) 내에서, 전자 장치(101)는 제4 보이스 커맨드를 실행한 결과를 포함하는 정보를 표시할 수 있다. 전자 장치(101)는 상이한 보이스 엔진들을 이용하여 상기 보이스 커맨드들을 병렬로 실행한 결과들을, 시각적 객체들(882, 884, 886, 888)을 이용하여 개별적으로 표시할 수 있다. 예를 들어, 제2 보이스 커맨드의 처리가 완료되기 이전에, 전자 장치(101)는 시각적 객체(886)를 이용하여 제3 보이스 커맨드를 처리한 결과를 표시할 수 있다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는 퀵 커맨드를 포함하는 발언에 응답하여, 상기 퀵 커맨드에 매칭된 복수의 보이스 커맨드들을, 상이한 보이스 엔진들을 이용하여 신속하게 실행할 수 있다. 전자 장치(101)는 스피커를 이용하여 상기 복수의 보이스 커맨드들을 처리한 결과들을 표현한 오디오 신호들을 출력할 수 있다. 전자 장치(101)는 디스플레이(260) 내에, 상기 결과들을 병렬로 표시할 수 있다. 실시예가 이에 제한되는 것은 아니며, 예를 들어, 전자 장치(101)는 디스플레이(260) 내에, 상기 결과들을 순차적으로 표시할 수 있다. 전자 장치(101)가 디스플레이(260)를 통하여 상기 결과들을 병렬로 표시하기 때문에, 전자 장치(101)는 상기 복수의 보이스 커맨드들 중 특정 보이스 커맨드의 처리가 실패하는 것과 독립적으로, 다른 보이스 커맨드를 처리한 결과를 사용자에게 표시할 수 있다.
도 9는, 일 실시예에 따른, 전자 장치(101)가 발언(910)에 기반하여 복수의 기능들을 실행하는 동작을 도시한다.
도 9의 전자 장치(101)는 도 3 내지 도 7의 전자 장치(101)의 일 예일 수 있다. 예를 들어, 도 3의 전자 장치(101), 및 디스플레이(260)는 도 9의 전자 장치(101), 및 디스플레이(260)를 포함할 수 있다. 도 9의 외부 전자 장치(210)는 도 2, 및/또는 도 7의 외부 전자 장치(210)를 포함할 수 있다.
일 실시예에 따른, 전자 장치(101)는 복수의 보이스 커맨드들을 포함하는 발언(910)을 식별할 수 있다. 상기 발언(910)은, 전자 장치(101)에 포함된 마이크를 통해 출력된 오디오 신호로부터 식별될 수 있다. 도 9를 참고하면, 전자 장치(101)는 발언(910) 내에 포함된 자연어 문장 내 제1 부분(912)(예, "7 시에 알람 맞춰주고")으로부터, 알람을 예약하기 위한 기능에 대응하는 제1 보이스 커맨드(920)를 식별할 수 있다. 전자 장치(101)는 발언(910) 내에 포함된 자연어 문장 내 제2 부분(914)(예, "뉴스 들려줘")로부터, 네트워크로부터 수집된 정보를 출력하기 위한 기능에 대응하는 제2 보이스 커맨드(930)를 식별할 수 있다. 전자 장치(101)는 도 4의 발언 처리기(360)의 실행에 기반하여, 발언(910)으로부터 상기 보이스 커맨드들(920, 930)을 식별할 수 있다.
발언(910)으로부터 복수의 보이스 커맨드들(예, 제1 보이스 커맨드(920), 및 제2 보이스 커맨드(930))을 식별하는 것에 기반하여, 전자 장치(101)는 복수의 보이스 커맨드들을 상이한 전자 장치들에 의해 실행되는 보이스 엔진들 중 적어도 하나로 입력할 수 있다. 상기 보이스 엔진들은, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진(예, 도 3의 제1 보이스 엔진(370)), 및 전자 장치(101)에 연결된 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380))을 포함할 수 있다.
도 9를 참고하면, 전자 장치(101)는 제1 보이스 엔진을 이용하여 제1 보이스 커맨드(920)를 처리하여, 제1 보이스 커맨드(920)를 처리한 결과를 포함하는 제1 정보(925)를 획득할 수 있다. 전자 장치(101)는 제2 보이스 엔진을 이용하여 제2 보이스 커맨드(930)를 처리하기 위하여, 외부 전자 장치(210)로, 제2 보이스 커맨드(930)를 포함하는 신호를 송신할 수 있다. 전자 장치(101)는 외부 전자 장치(210)로부터 상기 신호에 대한 응답으로, 제2 정보(935)를 포함하는 다른 신호를 수신할 수 있다. 상기 다른 신호에 포함된 상기 제2 정보(935)는, 제2 보이스 엔진을 실행한 외부 전자 장치(210)에 의해 제2 보이스 커맨드(930)를 처리한 결과를 포함할 수 있다.
일 실시예에 따른, 전자 장치(101)는 발언(910)으로부터 식별된 복수의 보이스 커맨드들(예, 제1 보이스 커맨드(920), 및 제2 보이스 커맨드(930))을 처리한 결과들을 포함하는 정보(예, 제1 정보(925), 및 제2 정보(935))를 포함하는 발언(940)을, 사용자에게 출력할 수 있다. 전자 장치(101)는 스피커로 송신되는 오디오 신호를 이용하여, 상기 발언(940)을 출력할 수 있다. 도 9를 참고하면, 발언(940)은, 제1 보이스 커맨드(920)를 처리한 결과인 제1 정보(925)에 기반하는 자연어 문장(942)(예, "7 시에 알람이 울릴 것입니다"), 및 제2 보이스 커맨드(930)를 처리한 결과인 제2 정보(935)에 기반하는 자연어 문장(944)(예, "뉴스입니다. 오늘 S 회사는, ...")을 포함할 수 있다.
상술한 바와 같이, 일 실시예에 따른, 전자 장치(101)는, 퀵 커맨드를 포함하는 발언(예, 도 2의 발언(220)), 및/또는 복수의 보이스 커맨드들을 표현한 발언(예, 도 9의 발언(910))에 기반하여, 복수의 보이스 커맨드들을 처리하기 위한 입력을 식별할 수 있다. 상기 입력에 기반하여, 전자 장치(101)는, 전자 장치(101)에 의해 실행되는 제1 보이스 엔진, 및 외부 전자 장치(210)에 의해 실행되는 제2 보이스 엔진의 상태들에 기반하여, 상기 복수의 보이스 커맨드들을 병렬로 처리할 수 있다. 퀵 커맨드에 응답하여 복수의 보이스 커맨드들을 병렬로 처리한 경우, 전자 장치(101)는 복수의 보이스 커맨드들을 병렬로 처리한 결과들을, 상기 퀵 커맨드에 의해 정렬된 복수의 보이스 커맨드들의 순서를 따라 순차적으로 표시할 수 있다.
도 10은, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도를 도시한다.
도 10의 전자 장치는 도 1 내지 도 9의 전자 장치(101)를 포함할 수 있다. 도 10의 동작들 중 적어도 하나는, 도 3의 전자 장치(101), 및/또는 도 3의 전자 장치(101) 내 프로세서(120)에 의해 실행될 수 있다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 10을 참고하면, 동작(1010) 내에서, 일 실시예에 따른, 전자 장치는, 마이크를 통하여 제1 오디오 신호를 식별할 수 있다. 제1 오디오 신호는, 마이크를 포함하는 외부 공간의 진동을 나타낼 수 있다. 동작(1010)의 마이크는, 도 3의 마이크(320), 헤드폰과 같이, 전자 장치와 유선으로 연결된 마이크, 또는 무선 이어폰과 같이, 도 3의 통신 회로(330)를 통해 전자 장치와 무선으로 연결된 마이크 중 적어도 하나를 포함할 수 있다.
도 10을 참고하면, 동작(1020) 내에서, 일 실시예에 따른, 전자 장치는, 제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언을 식별하였는지 여부를 판단할 수 있다. 상기 발언은, 도 2의 발언(220)과 같이, 퀵 커맨드를 실행하기 위하여 전자 장치에 등록된 자연어를 포함할 수 있다. 상기 발언은, 도 9의 발언(910)과 같이, 복수의 기능들을 표현한 자연어 문장들을 포함할 수 있다.
제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언을 식별한 상태 내에서(1020-예), 동작(1030)에 기반하여, 일 실시예에 따른, 전자 장치는, 프로세서에 기반하여 복수의 기능들 중 적어도 하나의 제1 기능을 실행할 수 있다. 상기 상태 내에서, 동작(1040)에 기반하여, 전자 장치는, 통신 회로(예, 도 3의 전자 장치(101) 내 통신 회로(330))를 통해 연결된 외부 전자 장치(예, 도 3의 외부 전자 장치(210))를 이용하여, 복수의 기능들 중에서, 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행할 수 있다. 동작들(1030, 1040)을 수행하기 위하여, 전자 장치는 제1 오디오 신호로부터 식별된 상기 발언에 매칭된 상기 복수의 기능들을, 전자 장치의 프로세서에 의해 실행될 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능으로 구분할 수 있다.
전자 장치가 상기 복수의 기능들을, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능으로 구분하는 것은, 도 6 및 도 7을 참고하여 상술된 동작에 기반하여, 수행될 수 있다. 예를 들어, 전자 장치는 프로세서에 의해 실행되는 제1 보이스 엔진, 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들에 기반하여, 상기 복수의 기능들을, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능으로 구분할 수 있다. 전자 장치는 동작(1030)에 기반하여 상기 복수의 기능들 중에서 구분된 상기 적어도 하나의 제1 기능을, 전자 장치의 프로세서에 의해 실행되는 제1 보이스 엔진을 이용하여 처리할 수 있다. 전자 장치는 동작(1040)에 기반하여, 상기 적어도 하나의 제2 기능을, 외부 전자 장치로 송신하고, 외부 전자 장치로부터 상기 적어도 하나의 제2 기능을 실행한 결과를 획득할 수 있다.
도 10을 참고하면, 동작(1050) 내에서, 일 실시예에 따른, 전자 장치는, 스피커를 통하여, 적어도 하나의 제1 기능, 및 적어도 하나의 제2 기능을 실행한 결과들을 표현하는 제2 오디오 신호들을 출력할 수 있다. 전자 장치는, 상기 제1 오디오 신호를 통해 식별된 상기 발언에 대한 응답으로, 상기 제2 오디오 신호들을 출력할 수 있다. 상기 제2 오디오 신호들 각각은, 동작(1020)의 복수의 기능들 각각을 처리한 결과들을 표현한 자연어 문장을 포함할 수 있다. 상기 제2 오디오 신호들에 의해 전자 장치로부터 출력되는 자연어 문장들의 순서는, 상기 발언에 의해 지시되는 복수의 기능들의 순서에 대응할 수 있다.
제1 오디오 신호로부터 단일의 기능(예, 제3 기능)을 실행하기 위한 발언을 식별한 경우(1020-아니오), 동작(1060)에 기반하여, 전자 장치는, 전자 장치의 프로세서, 또는 외부 전자 장치 중 어느 하나를 이용하여, 제1 오디오 신호에 대응하는 제3 기능을 실행할 수 있다. 전자 장치는 프로세서에 의해 실행되는 상기 제1 보이스 엔진의 상태, 및/또는 상기 외부 전자 장치에 의해 실행되는 상기 제2 보이스 엔진의 상태를 식별할 수 있다. 예를 들어, 전자 장치는 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중에서, 유휴 상태인 보이스 엔진을 이용하여 상기 제3 기능을 실행할 수 있다. 동작(1060) 내에서, 동작(1050)과 유사하게, 전자 장치는 상기 제3 기능을 실행한 결과를 표현하는 제3 오디오 신호를 출력할 수 있다.
동작들(1050, 1060)을 참고하여 상술한 바와 같이, 전자 장치는 제1 오디오 신호에 포함된 발언에 기반하여, 제2 오디오 신호들, 및/또는 제3 오디오 신호를 출력할 수 있다. 실시예가 이에 제한되는 것은 아니며, 전자 장치는 도 8b를 참고하여 상술한 바와 같이, 전자 장치 내 디스플레이를 이용하여, 동작(1020)에 의해 식별된 발언에 대응하는 하나 이상의 기능들을 실행한 결과들을 시각화할 수 있다.
도 11은, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도를 도시한다.
도 11의 전자 장치는 도 1 내지 도 9의 전자 장치(101)를 포함할 수 있다. 도 11의 동작들 중 적어도 하나는, 도 3의 전자 장치(101), 및/또는 도 3의 전자 장치(101) 내 프로세서(120)에 의해 실행될 수 있다. 도 11의 동작들 중 적어도 하나는 도 10의 동작들 중 적어도 하나와 관련될 수 있다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 11을 참고하면, 동작(1110) 내에서, 일 실시예에 따른, 전자 장치는, 오디오 신호로부터 발언을 식별할 수 있다. 전자 장치는, 전자 장치의 프로세서에 의해 실행되는 제1 보이스 엔진을 이용하여 발언을 식별하거나, 또는 전자 장치에 연결된 외부 전자 장치에 의해 실행되는 제2 보이스 엔진을 이용하여 발언을 식별할 수 있다. 전자 장치가 발언을 식별하는 것은, 상기 발언에 대응하는 텍스트 데이터를 획득하는 동작을 포함할 수 있다.
도 11을 참고하면, 동작(1120) 내에서, 일 실시예에 따른, 전자 장치는, 발언에 대응하는 메타 데이터를 식별하였는지 여부를 식별하였는지 여부를 판단할 수 있다. 상기 메타 데이터는, 전자 장치에 의해 실행되는 발언 처리기(예, 도 3의 발언 처리기(360))를 이용하여 식별될 수 있다.
발언에 대응하는 메타 데이터를 식별한 상태 내에서(1120-예), 동작(1130)에 기반하여, 전자 장치는, 동작(1120)에 의해 식별된 메타 데이터에 기반하여, 발언을 처리할 보이스 엔진을 선택할 수 있다. 전자 장치는 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중에서, 발언과 관련된 하나 이상의 기능들을 실행하기 위한 보이스 엔진을 선택할 수 있다. 발언으로부터 복수의 보이스 커맨드들을 식별한 경우, 전자 장치는 상기 복수의 보이스 커맨드들 각각에 대하여 동작(1130)을 독립적으로 수행할 수 있다. 예를 들어, 동작(1130)에 기반하여, 상기 복수의 보이스 커맨드들 각각이 처리될 보이스 엔진이, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중에서 독립적으로 선택될 수 있다. 전자 장치는 메타 데이터 내 속성들에 기반하여, 발언이 처리될 보이스 엔진을, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중에서 선택할 수 있다. 예를 들어, 메타 데이터를 통하여 상기 발언이 특정 보이스 엔진에 의해 선택적으로 실행됨을 나타내는 속성을 식별한 경우, 전자 장치는 상기 속성에 기반하여, 상기 발언을 처리할 보이스 엔진을 선택할 수 있다. 발언에 대응하는 메타 데이터를 식별하지 못한 경우(1120-아니오), 동작(1130)에 기반하는 보이스 엔진의 선택이 바이패스될 수 있다.
도 11을 참고하면, 동작(1140) 내에서, 일 실시예에 따른, 전자 장치는, 발언으로부터, 발언에 대응하는 기능을 실행하기 위해 요구되는 파라미터를 식별하였는지 여부를 판단할 수 있다. 발언으로부터, 상기 파라미터를 식별하지 못한 경우(1140-아니오), 동작(1160)에 기반하여, 전자 장치는 상기 기능을 실행하기 위해 요구되는 파라미터를, 사용자에게 요청할 수 있다. 발언으로부터 상기 파라미터를 식별하였거나, 또는 상기 기능이 어느 파라미터도 요구하지 않는 경우(1140-예), 동작(1150)에 기반하여, 전자 장치는 보이스 엔진을 이용하여 상기 발언을 처리할 수 있다. 전자 장치는, 스피커, 및/또는 디스플레이를 이용하여 상기 발언을 처리한 결과(예, 상기 발언에 포함된 하나 이상의 보이스 커맨드들을 실행한 결과들)를 출력할 수 있다.
도 12는, 일 실시예에 따른, 전자 장치에 의해 수행되는 동작의 흐름도를 도시한다.
도 12의 전자 장치는 도 1 내지 도 9의 전자 장치(101)를 포함할 수 있다. 도 12의 동작들 중 적어도 하나는, 도 3의 전자 장치(101), 및/또는 도 3의 전자 장치(101) 내 프로세서(120)에 의해 실행될 수 있다. 도 12의 동작들 중 적어도 하나는, 도 10 내지 도 11의 동작들 중 적어도 하나와 관련될 수 있다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 12를 참고하면, 동작(1210) 내에서, 일 실시예에 따른, 전자 장치는, 마이크를 통하여 수신된 제1 오디오 신호에 포함된 발언을 식별할 수 있다. 전자 장치는 도 11의 동작(1110)과 유사하게, 도 12의 동작(1210)을 수행할 수 있다.
도 12를 참고하면, 동작(1220) 내에서, 일 실시예에 따른, 전자 장치는, 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 프로세서에 의해 실행되는 제1 보이스 엔진, 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들을 획득할 수 있다. 발언 내에서, 상기 복수의 보이스 커맨드들의 그룹의 실행을 위한 퀵 커맨드를 식별하는 것에 기반하여, 전자 장치는 동작(1220)을 수행할 수 있다. 전자 장치가 동작(1220)에 기반하여 획득하는 상기 상태들은, 상기 제1 보이스 엔진, 및/또는 상기 제2 보이스 엔진이 유휴 상태인지 여부를 나타낼 수 있다.
도 12를 참고하면, 동작(1230) 내에서, 일 실시예에 따른, 전자 장치는, 상태들에 기반하여, 복수의 보이스 커맨드들을, 제1 보이스 엔진에 대응하는 제1 보이스 커맨드, 및 제2 보이스 엔진에 대응하는 제2 보이스 커맨드로 구분할 수 있다. 전자 장치는, 상태들에 의해 나타나고, 제1 보이스 엔진 또는 제2 보이스 엔진 각각의 기능을 실행하는 가능성(possibility)에 기반하여, 복수의 기능들 각각을 적어도 하나의 제1 기능 및 적어도 하나의 제2 기능으로 구분할 수 있다. 전자 장치는, 상태들에 의해 나타나는, 제1 보이스 엔진 또는 제2 보이스 엔진 각각의 기능의 타당성(feasibility)에 기반하여, 복수의 기능들 각각을 적어도 하나의 제1 기능 및 적어도 하나의 제2 기능으로 구분할 수 있다. 동작(1230)에 기반하여, 전자 장치는 동작(1220)의 복수의 보이스 커맨드들에 대한 스케줄링을 수행할 수 있다. 전자 장치는 제1 보이스 커맨드, 및 제2 보이스 커맨드를, 전자 장치의 메모리 내에서 상이한 영역들(예, 도 7의 제1 큐(710), 및 제2 큐(720)) 내에 저장할 수 있다.
도 12를 참고하면, 동작(1240) 내에서, 일 실시예에 따른, 전자 장치는, 제1 보이스 커맨드에 대응하는 제1 기능을, 제1 보이스 엔진을 이용하여 실행할 수 있다. 제1 보이스 엔진이 전자 장치의 프로세서에 의해 실행되기 때문에, 전자 장치는 동작(1240)에 기반하여, 복수의 보이스 커맨드들 중에서, 제1 보이스 커맨드를 선택적으로 처리할 수 있다.
도 12를 참고하면, 동작(1250) 내에서, 일 실시예에 따른, 전자 장치는, 외부 전자 장치로 제2 보이스 커맨드에 대응하는 제2 기능의 실행을 요청할 수 있다. 전자 장치는, 제2 보이스 엔진을 실행하는 상기 외부 전자 장치로 상기 제2 보이스 커맨드와 관련된 정보를 송신하여, 상기 제2 기능의 실행을 요청할 수 있다. 전자 장치는 외부 전자 장치로부터, 상기 요청에 대한 응답으로, 상기 제2 기능을 실행한 결과를 포함하는 신호, 및/또는 정보를 수신할 수 있다. 전자 장치가 동작들(1240, 1250)을 실행하는 순서는, 도 12의 일 실시예에 제한되지 않는다. 예를 들어, 전자 장치는 동작들(1240, 1250)을 병렬적으로 수행할 수 있다.
도 12를 참고하면, 동작(1260) 내에서, 일 실시예에 따른, 전자 장치는, 발언에 의해 지시되는 복수의 보이스 커맨드들의 순서에 기반하여, 제1 기능, 및 제2 기능을 실행한 결과들을 표현한 제2 오디오 신호를 출력할 수 있다. 전자 장치가 제2 오디오 신호를 통해 출력하는 소리는, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들을 표현하는 자연어 문장들을 포함할 수 있다. 상기 자연어 문장들이 출력되는 순서는 퀵 커맨드를 등록하는 상태 내에서 설정된, 상기 복수의 보이스 커맨드들이 처리되는 순서에 종속될 수 있다.
도 13은 일 실시 예에 따른 인공 지능(artificial intelligence, AI) 시스템을 나타낸 블록도이다.
도 13을 참조하면, 일 실시 예의 인공 지능 시스템(10)은 사용자 단말(1300), 지능형 서버(1400), 및 서비스 서버(1500)를 포함할 수 있다.
일 실시 예의 사용자 단말(1300)(예: 도 1의 전자 장치(101))은, 인터넷에 연결 가능한 단말 장치(또는, 전자 장치)일 수 있으며, 예를 들어, 휴대폰, 스마트폰, PDA(personal digital assistant), 노트북 컴퓨터, TV, 백색 가전, 웨어러블 장치, HMD, 또는 스마트 스피커일 수 있다.
일 실시 예에 따르면, 사용자 단말(1300)은 통신 인터페이스(1310), 마이크(1320), 스피커(1330), 디스플레이(1340), 메모리(1350), 및 프로세서(1360)를 포함할 수 있다. 상기 열거된 구성요소들은 서로 작동적으로 또는 전기적으로 연결될 수 있다.
일 실시 예에 따르면, 통신 인터페이스(1310)는 외부 장치와 연결되어 데이터를 송수신하도록 구성될 수 있다. 일 실시 예에 따르면, 마이크(1320)는 소리(예: 사용자 발화)를 수신하여, 전기적 신호로 변환할 수 있다. 일 실시 예에 따르면, 스피커(1330)는 전기적 신호를 소리(예: 음성)으로 출력할 수 있다. 일 실시 예에 따르면, 디스플레이(1340)는 이미지 또는 비디오를 표시하도록 구성될 수 있다. 일 실시 예에 따르면, 디스플레이(1340)는 실행되는 앱(app)(또는, 어플리케이션 프로그램(application program))의 그래픽 사용자 인터페이스(graphic user interface)(GUI)를 표시할 수 있다.
일 실시예의 디스플레이(1340)는 이미지 또는 비디오를 표시하도록 구성될 수 있다. 일 실시예의 디스플레이(1340)는 또한 실행되는 앱(app)(또는, 어플리케이션 프로그램(application program))의 그래픽 사용자 인터페이스(graphic user interface)(GUI)를 표시할 수 있다. 일 실시예의 디스플레이(1340)는 터치 센서를 통해 터치 입력을 수신할 수 있다. 예를 들어, 디스플레이(1340)는 디스플레이(1340) 내에 표시되는 화상 키보드 영역의 터치 센서를 통해 텍스트 입력을 수신할 수 있다.
일 실시 예에 따르면, 메모리(1350)는 클라이언트 모듈(1351), SDK(software development kit)(1353), 및 복수의 앱들(1355)을 저장할 수 있다. 상기 클라이언트 모듈(1351), 및 SDK(1353)는 범용적인 기능을 수행하기 위한 프레임워크(framework)(또는, 솔루션 프로그램(solution program))를 구성할 수 있다. 또한, 클라이언트 모듈(1351) 또는 SDK(1353)는 사용자 입력(예: 음성 입력, 텍스트 입력, 터치 입력)을 처리하기 위한 프레임워크를 구성할 수 있다.
일 실시 예에 따르면, 상기 복수의 앱들(1355)은 지정된 기능을 수행하기 위한 프로그램일 수 있다. 일 실시 예에 따르면, 복수의 앱들(1355)은 제1 앱(1355_1), 제2 앱(1355_3) 을 포함할 수 있다. 일 실시 예에 따르면, 복수의 앱들(1355) 각각은 지정된 기능을 수행하기 위한 복수의 동작들을 포함할 수 있다. 예를 들어, 복수의 앱들(1355)은, 알람 앱, 메시지 앱, 및 스케줄 앱 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 복수의 앱들(1355)은 프로세서(1360)에 의해 실행되어 상기 복수의 동작들 중 적어도 일부를 순차적으로 실행할 수 있다.
일 실시 예에 따르면, 프로세서(1360)는 사용자 단말(1300)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1360)는 통신 인터페이스(1310), 마이크(1320), 스피커(1330), 디스플레이(1340), 및 메모리(1350)와 전기적으로 연결되어 연결되어 지정된 동작을 수행할 수 있다.
일 실시 예에 따르면, 프로세서(1360)는 또한 상기 메모리(1350)에 저장된 프로그램을 실행시켜 지정된 기능을 수행할 수 있다. 예를 들어, 프로세서(1360)는 클라이언트 모듈(1351) 또는 SDK(1353) 중 적어도 하나를 실행하여, 사용자 입력을 처리하기 위한 이하의 동작을 수행할 수 있다. 프로세서(1360)는, 예를 들어, SDK(1353)를 통해 복수의 앱들(1355)의 동작을 제어할 수 있다. 클라이언트 모듈(1351) 또는 SDK(1353)의 동작으로 설명된 이하의 동작은 프로세서(1360)의 실행에 의한 동작일 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 사용자 입력을 수신할 수 있다. 예를 들어, 클라이언트 모듈(1351)은 마이크(1320)를 통해 감지된 사용자 발화에 대응되는 음성 신호를 생성할 수 있다. 또는, 클라이언트 모듈(1351)은 디스플레이(1340)를 통해 감지된 터치 입력을 수신할 수 있다. 또는, 클라이언트 모듈(1351)은 키보드 또는 화상 키보드를 통해 감지된 텍스트 입력을 수신할 수 있다. 이 외에도, 클라이언트 모듈(1351)은 사용자 단말(1300)에 포함된 입력 모듈 또는 사용자 단말(1300)에 연결된 입력 모듈을 통해 감지되는 다양한 형태의 사용자 입력을 수신할 수 있다. 상기 클라이언트 모듈(1351)은 수신된 사용자 입력을 지능형 서버(1400)로 송신할 수 있다. 일 실시 예에 따르면, 클라이언트 모듈(1351)은 수신된 사용자 입력과 함께, 사용자 단말(1300)의 상태 정보를 지능형 서버(1400)로 송신할 수 있다. 상기 상태 정보는, 예를 들어, 앱의 실행 상태 정보일 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 수신된 사용자 입력에 대응되는 결과를 수신할 수 있다. 예를 들어, 클라이언트 모듈(1351)은 지능형 서버(1400)로부터 사용자 입력에 대응되는 결과를 수신할 수 있다. 클라이언트 모듈(1351)은 상기 수신된 결과를 디스플레이(1340)에 표시할 수 있다. 또한, 클라이언트 모듈(1351)은 상기 수신된 결과를 스피커(1330)를 통해 오디오로 출력할 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 수신된 사용자 입력에 대응되는 플랜을 수신할 수 있다. 클라이언트 모듈(1351)은 플랜에 따라 앱의 복수의 동작들을 실행한 결과를 디스플레이(1340)에 표시할 수 있다. 예를 들어, 클라이언트 모듈(1351)은 복수의 동작들의 실행 결과를 순차적으로 디스플레이에 표시할 수 있고, 스피커(1330)를 통해 오디오를 출력할 수 있다. 다른 예를 들어, 사용자 단말(1300)은 복수의 동작들을 실행한 일부 결과(예: 마지막 동작의 결과)만을 디스플레이에 표시할 수 있으며, 스피커(1330)를 통해 오디오를 출력할 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 지능형 서버(1400)로부터 사용자 입력에 대응되는 결과를 산출하기 위해 필요한 정보를 획득하기 위한 요청을 수신할 수 있다. 상기 결과를 산출하기 위해 필요한 정보는, 예를 들어, 사용자 단말(1300)의 상태 정보일 수 있다. 일 실시 예에 따르면, 클라이언트 모듈(1351)은 상기 요청에 대응하여 상기 필요한 정보를 지능형 서버(1400)로 송신할 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 플랜에 따라 복수의 동작들을 실행한 결과 정보를 지능형 서버(1400)로 송신할 수 있다. 지능형 서버(1400)는 상기 결과 정보를 통해 수신된 사용자 입력이 올바르게 처리된 것을 확인할 수 있다.
일 실시 예에 따르면, 클라이언트 모듈(1351)은 음성 인식 모듈을 포함할 수 있다. 일 실시 예에 따르면, 클라이언트 모듈(1351)은 상기 음성 인식 모듈을 통해 제한된 기능을 수행하는 음성 입력을 인식할 수 있다. 예를 들어, 클라이언트 모듈(1351)은 지정된 입력(예: 웨이크 업!)을 통해 유기적인 동작을 수행하기 위한 음성 입력을 처리하기 위한 지능형 앱을 수행할 수 있다.
일 실시 예에 따르면, 지능형 서버(1400)는 통신 망을 통해 사용자 단말(1300)로부터 사용자 음성 입력과 관련된 정보를 수신할 수 있다. 일 실시 예에 따르면, 지능형 서버(1400)는 수신된 음성 입력과 관련된 데이터를 텍스트 데이터(text data)로 변경할 수 있다. 일 실시 예에 따르면, 지능형 서버(1400)는 상기 텍스트 데이터에 기초하여 사용자 음성 입력과 대응되는 태스크(task)를 수행하기 위한 플랜(plan)을 생성할 수 있다.
일 실시 예에 따르면, 플랜은 인공 지능(artificial intelligent)(AI) 시스템에 의해 생성될 수 있다. 인공 지능 시스템은 룰 베이스 시스템(rule-based system) 일 수도 있고, 신경망 베이스 시스템(neural network-based system)(예: 피드포워드 신경망(feedforward neural network)(FNN)), 순환 신경망(recurrent neural network)(RNN))일 수도 있다. 또는, 전술한 것의 조합 또는 이와 상이한 인공지능 시스템일 수도 있다. 일 실시 예에 따르면, 플랜은 미리 정의된 플랜의 집합에서 선택될 수 있거나, 사용자 요청에 응답하여 실시간으로 생성될 수 있다. 예를 들어, 인공지능 시스템은 미리 정의 된 복수의 플랜들 중 적어도 하나의 플랜을 선택할 수 있다.
일 실시 예에 따르면, 지능형 서버(1400)는 생성된 플랜에 따라 산출된 결과를 사용자 단말(1300)로 송신하거나, 생성된 플랜을 사용자 단말(1300)로 송신할 수 있다. 일 실시 예에 따르면, 사용자 단말(1300)은 플랜에 따라 산출된 결과를 디스플레이에 표시할 수 있다. 일 실시 예에 따르면, 사용자 단말(1300)은 플랜에 따른 동작을 실행한 결과를 디스플레이에 표시할 수 있다.
일 실시 예의 지능형 서버(1400)는 프론트 엔드(front end)(1410), 자연어 플랫폼(natural language platform)(1420), 캡슐 데이터베이스(capsule DB)(1430), 실행 엔진(execution engine)(1440), 엔드 유저 인터페이스(end user interface)(1450), 매니지먼트 플랫폼(management platform)(1460), 빅 데이터 플랫폼(big data platform)(1470), 및 분석 플랫폼(analytic platform)(1480)을 포함할 수 있다.
일 실시 예에 따르면, 프론트 엔드(1410)는 사용자 단말(1300)로부터 수신된 사용자 입력을 수신할 수 있다. 프론트 엔드(1410)는 상기 사용자 입력에 대응되는 응답을 송신할 수 있다.
일 실시 예에 따르면, 자연어 플랫폼(1420)은 자동 음성 인식 모듈(automatic speech recognition module)(ASR module)(1421), 자연어 이해 모듈(natural language understanding module)(NLU module)(1423), 플래너 모듈(planner module)(1425), 자연어 생성 모듈(natural language generator module)(NLG module)(1427), 및 텍스트 음성 변환 모듈(text to speech module)(TTS module)(1429)를 포함할 수 있다.
일 실시 예에 따르면, 자동 음성 인식 모듈(1421)은 사용자 단말(1300)로부터 수신된 음성 입력을 텍스트 데이터로 변환할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(1423)은 음성 입력의 텍스트 데이터를 이용하여 사용자의 의도를 파악할 수 있다. 예를 들어, 자연어 이해 모듈(1423)은 텍스트 데이터 형태의 사용자 입력에 대하여 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자의 의도를 파악할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(1423)은 형태소 또는 구의 언어적 특징(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 상기 파악된 단어의 의미를 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 자연어 이해 모듈(1423)은 사용자 발화에 대응되는 의도 정보(intent information)를 획득할 수 있다. 의도 정보는 텍스트 데이터를 해석하여 판단되는 사용자의 의도를 나타내는 정보일 수 있다. 의도 정보는 사용자가 디바이스를 이용하여 실행하고자 하는 동작 또는 기능을 나타내는 정보를 포함할 수 있다.
일 실시 예에 따르면, 플래너 모듈(1425)은 자연어 이해 모듈(1423)에서 결정된 의도 및 파라미터를 이용하여 플랜을 생성할 수 있다. 일 실시 예에 따르면, 플래너 모듈(1425)은 상기 결정된 의도에 기초하여 태스크를 수행하기 위해 필요한 복수의 도메인들을 결정할 수 있다. 플래너 모듈(1425)은 상기 의도에 기초하여 결정된 복수의 도메인들 각각에 포함된 복수의 동작들을 결정할 수 있다. 일 실시 예에 따르면, 플래너 모듈(1425)은 상기 결정된 복수의 동작들을 실행하는데 필요한 파라미터나, 상기 복수의 동작들의 실행에 의해 출력되는 결과 값을 결정할 수 있다. 상기 파라미터 및 상기 결과 값은 지정된 형식(또는, 클래스)과 관련된 컨셉으로 정의될 수 있다. 이에 따라, 플랜은 사용자의 의도에 의해 결정된 복수의 동작들, 및 복수의 컨셉들을 포함할 수 있다. 상기 플래너 모듈(1425)은 상기 복수의 동작들, 및 상기 복수의 컨셉들 사이의 관계를 단계적(또는, 계층적)으로 결정할 수 있다. 예를 들어, 플래너 모듈(1425)은 복수의 컨셉들에 기초하여 사용자의 의도에 기초하여 결정된 복수의 동작들의 실행 순서를 결정할 수 있다. 다시 말해, 플래너 모듈(1425)은 복수의 동작들의 실행에 필요한 파라미터, 및 복수의 동작들의 실행에 의해 출력되는 결과에 기초하여, 복수의 동작들의 실행 순서를 결정할 수 있다. 이에 따라, 플래너 모듈(1425)는 복수의 동작들, 및 복수의 컨셉들 사이의 연관 정보(예: 온톨로지(ontology))가 포함된 플랜를 생성할 수 있다. 상기 플래너 모듈(1425)은 컨셉과 동작의 관계들의 집합이 저장된 캡슐 데이터베이스(1430)에 저장된 정보를 이용하여 플랜을 생성할 수 있다.
일 실시 예에 따르면, 자연어 생성 모듈(1427)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 일 실시 예의 텍스트 음성 변환 모듈(1429)은 텍스트 형태의 정보를 음성 형태의 정보로 변경할 수 있다.
일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 복수의 도메인들에 대응되는 복수의 컨셉들과 동작들의 관계에 대한 정보를 저장할 수 있다. 예를 들어, 캡슐 데이터베이스(1430)는 플랜의 복수의 동작 오브젝트(action object 또는, 동작 정보)들 및 컨셉 오브젝트(concept object 또는 컨셉 정보)들을 포함하는 복수의 캡슐들을 저장할 수 있다. 일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 CAN(concept action network)의 형태로 상기 복수의 캡슐들을 저장할 수 있다. 일 실시 예에 따르면, 복수의 캡슐들은 캡슐 데이터베이스(1430)에 포함된 기능 저장소(function registry)에 저장될 수 있다.
일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 음성 입력에 대응되는 플랜을 결정할 때 필요한 전략 정보가 저장된 전략 레지스트리(strategy registry)를 포함할 수 있다. 상기 전략 정보는 사용자 입력에 대응되는 복수의 플랜들이 있는 경우, 하나의 플랜을 결정하기 위한 기준 정보를 포함할 수 있다. 일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 지정된 상황에서 사용자에게 후속 동작을 제안하기 위한 후속 동작의 정보가 저장된 후속 동작 레지스트리(follow up registry)를 포함할 수 있다. 상기 후속 동작은, 예를 들어, 후속 발화를 포함할 수 있다. 일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 사용자 단말(1300)을 통해 출력되는 정보의 레이아웃(layout) 정보를 저장하는 레이아웃 레지스트리(layout registry)를 포함할 수 있다. 일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 캡슐 정보에 포함된 어휘(vocabulary) 정보가 저장된 어휘 레지스트리(vocabulary registry)를 포함할 수 있다. 일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 사용자와의 대화(dialog)(또는, 인터렉션(interaction)) 정보가 저장된 대화 레지스트리(dialog registry)를 포함할 수 있다.
일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 개발자 툴(developer tool)을 통해 저장된 오브젝트를 업데이트(update)할 수 있다. 상기 개발자 툴은, 예를 들어, 동작 오브젝트 또는 컨셉 오브젝트를 업데이트하기 위한 기능 에디터(function editor)를 포함할 수 있다. 상기 개발자 툴은 어휘를 업데이트하기 위한 어휘 에디터(vocabulary editor)를 포함할 수 있다. 상기 개발자 툴은 플랜을 결정하는 전략을 생성 및 등록 하는 전략 에디터(strategy editor)를 포함할 수 있다. 상기 개발자 툴은 사용자와의 대화를 생성하는 대화 에디터(dialog editor)를 포함할 수 있다. 상기 개발자 툴은 후속 목표를 활성화하고, 힌트를 제공하는 후속 발화를 편집할 수 있는 후속 동작 에디터(follow up editor)를 포함할 수 있다. 상기 후속 목표는 현재 설정된 목표, 사용자의 선호도 또는 환경 조건에 기초하여 결정될 수 있다.
일 실시 예에 따르면, 캡슐 데이터베이스(1430)는 사용자 단말(1300) 내에도 구현될 수 있다. 다시 말해, 사용자 단말(1300)은 음성 입력에 대응되는 동작을 결정하기 위한 정보를 저장하는 캡슐 데이터베이스(1430)를 포함할 수 있다.
일 실시 예에 따르면, 실행 엔진(1440)은 상기 생성된 플랜을 이용하여 결과를 산출할 수 있다. 일 실시 예에 따르면, 엔드 유저 인터페이스(1450)는 산출된 결과를 사용자 단말(1300)로 송신할 수 있다. 이에 따라, 사용자 단말(1300)은 상기 결과를 수신하고, 상기 수신된 결과를 사용자에게 제공할 수 있다. 일 실시 예에 따르면, 매니지먼트 플랫폼(1460)은 지능형 서버(1400)에서 이용되는 정보를 관리할 수 있다. 일 실시 예에 따르면, 빅 데이터 플랫폼(1470)은 사용자의 데이터를 수집할 수 있다. 일 실시 예에 따르면, 분석 플랫폼(1480)을 지능형 서버(1400)의 QoS(quality of service)를 관리할 수 있다. 예를 들어, 분석 플랫폼(1480)은 지능형 서버(1400)의 구성 요소 및 처리 속도(또는, 효율성)를 관리할 수 있다.
일 실시 예에 따르면, 서비스 서버(1500)는 사용자 단말(1300)에 지정된 서비스(예: 음식 주문 또는 호텔 예약)를 제공할 수 있다. 일 실시 예에 따르면, 서비스 서버(1500)는 제3 자에 의해 운영되는 서버일 수 있다. 예를 들어, 서비스 서버(1500)는 서로 다른 제3 자에 의해 운영되는 제1 서비스 서버(1501), 제2 서비스 서버(1503), 및 제3 서비스 서버(1505)를 포함할 수 있다. 일 실시 예에 따르면, 서비스 서버(1500)는 수신된 음성 입력에 대응되는 플랜을 생성하기 위한 정보를 지능형 서버(1400)에 제공할 수 있다. 상기 제공된 정보는, 예를 들어, 캡슐 데이터베이스(1430)에 저장될 수 있다. 또한, 서비스 서버(1500)는 플랜에 따른 결과 정보를 지능형 서버(1400)에 제공할 수 있다.
상기에 기술된 인공 지능 시스템(13)에서, 상기 사용자 단말(1300)은, 사용자 입력에 응답하여 사용자에게 다양한 인텔리전트 서비스를 제공할 수 있다. 상기 사용자 입력은, 예를 들어, 물리적 버튼을 통한 입력, 터치 입력 또는 음성 입력을 포함할 수 있다.
일 실시 예에 따르면, 상기 사용자 단말(1300)은 내부에 저장된 지능형 앱(또는, 음성 인식 앱)을 통해 음성 인식 서비스를 제공할 수 있다. 이 경우, 예를 들어, 사용자 단말(1300)은 상기 마이크를 통해 수신된 사용자 발화(utterance) 또는 음성 입력(voice input)를 인식하고, 인식된 음성 입력에 대응되는 서비스를 사용자에게 제공할 수 있다.
일 실시 예에 따르면, 사용자 단말(1300)은 수신된 음성 입력에 기초하여, 단독으로 또는 상기 지능형 서버 및/또는 서비스 서버와 함께 지정된 동작을 수행할 수 있다. 예를 들어, 사용자 단말(1300)은 수신된 음성 입력에 대응되는 앱을 실행시키고, 실행된 앱을 통해 지정된 동작을 수행할 수 있다.
일 실시 예에 따르면, 사용자 단말(1300)이 지능형 서버(1400) 및/또는 서비스 서버와 함께 서비스를 제공하는 경우에는, 상기 사용자 단말은, 상기 마이크(1320)를 이용하여 사용자 발화를 감지하고, 상기 감지된 사용자 발화에 대응되는 신호(또는, 음성 데이터)를 생성할 수 있다. 상기 사용자 단말은, 상기 음성 데이터를 통신 인터페이스(1310)를 이용하여 지능형 서버(1400)로 송신할 수 있다.
일 실시 예에 따르면, 지능형 서버(1400)는 사용자 단말(1300)로부터 수신된 음성 입력에 대한 응답으로써, 음성 입력에 대응되는 태스크(task)를 수행하기 위한 플랜, 또는 상기 플랜에 따라 동작을 수행한 결과를 생성할 수 있다. 상기 플랜은, 예를 들어, 사용자의 음성 입력에 대응되는 태스크(task)를 수행하기 위한 복수의 동작들, 및 상기 복수의 동작들과 관련된 복수의 컨셉들을 포함할 수 있다. 상기 컨셉은 상기 복수의 동작들의 실행에 입력되는 파라미터나, 복수의 동작들의 실행에 의해 출력되는 결과 값을 정의한 것일 수 있다. 상기 플랜은 복수의 동작들, 및 복수의 컨셉들 사이의 연관 정보를 포함할 수 있다.
일 실시 예의 사용자 단말(1300)은, 통신 인터페이스(1310)를 이용하여 상기 응답을 수신할 수 있다. 사용자 단말(1300)은 상기 스피커(1330)를 이용하여 사용자 단말(1300) 내부에서 생성된 음성 신호를 외부로 출력하거나, 디스플레이(1340)를 이용하여 사용자 단말(1300) 내부에서 생성된 이미지를 외부로 출력할 수 있다.
도 14는 다양한 실시 예에 따른, 컨셉과 동작의 관계 정보를 데이터베이스하기 위한 스키마(schemar)를 도시하는 도면이다.
상기 지능형 서버(예: 도 13의 지능형 서버(1400))의 캡슐 데이터베이스(예: 도 13의 캡슐 데이터베이스(1430))는 CAN(concept action network)(1600) 형태로 복수의 캡슐들을 저장할 수 있다. 상기 캡슐 데이터베이스는 사용자의 음성 입력에 대응되는 태스크를 처리하기 위한 동작, 및 상기 동작을 위해 필요한 파라미터를 CAN(concept action network) 형태로 저장될 수 있다. 상기 CAN은 동작(action)과 상기 동작을 수행하는데 필요한 파라미터(parameter)를 정의한 컨셉(concept) 사이의 유기적인 관계를 나타낸 것일 수 있다.
상기 캡슐 데이터베이스는 복수의 도메인(예: 어플리케이션) 각각에 대응되는 복수의 캡슐(예: Capsule A(1601), Capsule B(1604))들을 저장할 수 있다. 일 실시 예에 따르면, 하나의 캡슐(예: Capsule A(1601))은 하나의 도메인(예: 어플리케이션)에 대응될 수 있다. 또한, 하나의 캡슐은 캡슐과 관련된 도메인의 기능을 수행하기 위한 적어도 하나의 서비스 제공자(예: CP 1(1602), CP 2 (1603), CP 3(1606), 또는 CP 4(1605))에 대응될 수 있다. 일 실시 예에 따르면, 하나의 캡슐은 지정된 기능을 수행하기 위한 적어도 하나 이상의 동작(1610) 및 적어도 하나 이상의 컨셉(1620)을 포함할 수 있다.
일 실시 예에 따르면, 자연어 플랫폼(예: 도 13의 자연어 플랫폼(1420))은 캡슐 데이터베이스에 저장된 캡슐을 이용하여 수신된 음성 입력에 대응하는 태스크를 수행하기 위한 플랜을 생성할 수 있다. 예를 들어, 자연어 플랫폼의 플래너 모듈(예: 도 13의 플래너 모듈(1425))은 캡슐 데이터베이스에 저장된 캡슐을 이용하여 플랜을 생성할 수 있다. 예를 들어, Capsule A (1601) 의 동작들(1711, 1713)과 컨셉들(1712, 1714) 및 Capsule B(1604)의 동작(1741)과 컨셉들(1742)을 이용하여 플랜(1607)을 생성할 수 있다.
도 15는 다양한 실시 예에 따른 사용자 단말이 지능형 앱을 통해 수신된 음성 입력을 처리하는 화면을 나타낸 도면이다.
사용자 단말(1300)은 지능형 서버(예: 도 13의 지능형 서버(1400))를 통해 사용자 입력을 처리하기 위해 지능형 앱을 실행할 수 있다.
일 실시 예에 따르면, 1510 화면에서, 사용자 단말(1300)은 지정된 음성 입력(예: 웨이크 업!)를 인식하거나 하드웨어 키(예: 전용 하드웨어 키)를 통한 입력을 수신하면, 음성 입력을 처리하기 위한 지능형 앱을 실행할 수 있다. 사용자 단말(1300)은, 예를 들어, 스케줄 앱을 실행한 상태에서 지능형 앱을 실행할 수 있다. 일 실시 예에 따르면, 사용자 단말(1300)은 지능형 앱에 대응되는 오브젝트(예: 아이콘)(1511)를 디스플레이(예: 도 13의 디스플레이(1340))에 표시할 수 있다. 일 실시 예에 따르면, 사용자 단말(1300)은 사용자 발화에 의한 음성 입력을 수신할 수 있다. 예를 들어, 사용자 단말(1300)은 "이번주 일정 알려줘!"라는 음성 입력을 수신할 수 있다. 일 실시 예에 따르면, 사용자 단말(1300)은 수신된 음성 입력의 텍스트 데이터가 표시된 지능형 앱의 UI(user interface)(1513)(예: 입력창)를 디스플레이에 표시할 수 있다.
일 실시 예에 따르면, 1520 화면에서, 사용자 단말(1300)은 수신된 음성 입력에 대응되는 결과를 디스플레이에 표시할 수 있다. 예를 들어, 사용자 단말(1300)은 수신된 사용자 입력에 대응되는 플랜을 수신하고, 플랜에 따라 '이번주 일정'을 디스플레이에 표시할 수 있다.
전자 장치가 퀵 커맨드와 같이, 복수의 기능들을 실행하기 위한 지정된 발언을 식별한 일 실시예에서, 상기 복수의 기능들을 보다 신속하게 실행하기 위한 방안이 요구될 수 있다. 상술한 바와 같은, 일 실시예에 따른, 전자 장치(an electronic device)(예, 도 3의 전자 장치(101))는, 통신 회로(예, 도 3의 통신 회로(330)), 마이크(예, 도 3의 마이크(320)), 스피커(예, 도 3의 스피커(310)), 및 프로세서(예, 도 3의 프로세서(120))를 포함할 수 있다. 상기 프로세서는, 상기 마이크를 통하여 제1 오디오 신호를 식별하도록, 구성될 수 있다. 상기 프로세서는, 상기 제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언(예, 도 2의 발언(220))을 식별하는 것에 기반하여, 상기 복수의 기능들 중 적어도 하나의 제1 기능을 실행하도록, 구성될 수 있다. 상기 프로세서는, 상기 발언을 식별하는 것에 기반하여, 상기 통신 회로를 통해 연결된 외부 전자 장치(예, 도 3의 외부 전자 장치(210))를 이용하여, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행하도록, 구성될 수 있다. 상기 프로세서는, 상기 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 실행한 결과들을 표현하는(representing) 제2 오디오 신호들을, 상기 발언과 관련된 순서를 따라 순차적으로 출력하도록, 구성될 수 있다. 일 실시예에 따른, 전자 장치는, 복수의 기능들을 실행하기 위한 발언에 기반하여, 전자 장치, 및 외부 전자 장치를 이용하여 상기 복수의 기능들을 보다 신속하게 실행할 수 있다.
예를 들어, 상기 프로세서는, 상기 프로세서에 의해 실행되는 제1 보이스 엔진(예, 도 3의 제1 보이스 엔진(370)), 및 상기 외부 전자 장치에 의해 실행되는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380))의 상태들을 획득하도록, 구성될 수 있다. 상기 프로세서는, 상기 상태들에 기반하여, 상기 복수의 기능들을, 상기 제1 보이스 엔진에 의해 실행될 상기 적어도 하나의 제1 기능으로, 상기 제2 보이스 엔진에 의해 실행될 상기 적어도 하나의 제2 기능으로 구분하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 상태들에 의해 지시되는, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 각각이 기능(a function)을 실행 가능한지 여부에 기반하여, 상기 복수의 기능들 각각을, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능으로 구분하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 적어도 하나의 제1 기능에 대응하는 적어도 하나의 제1 보이스 커맨드를 상기 제1 보이스 엔진에 대응하는 제1 큐(예, 도 7의 제1 큐(710))로 할당하도록, 구성될 수 있다. 상기 프로세서는, 상기 적어도 하나의 제2 기능에 대응하는 적어도 하나의 제2 보이스 커맨드를, 또는 상기 제2 보이스 엔진에 대응하는 제2 큐(예, 도 7의 제2 큐(720))로 할당하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 보이스 커맨드들 중에서, 상기 제1 큐에 누적된(accumulated) 상기 적어도 하나의 제1 보이스 커맨드에 기반하여 상기 제1 보이스 엔진을 실행하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 보이스 커맨드들 중에서, 상기 제2 큐에 누적된 상기 적어도 하나의 제2 보이스 커맨드를 포함하는 적어도 하나의 신호를, 상기 외부 전자 장치로 송신하도록, 구성될 수 있다.
예를 들어, 상기 전자 장치는, 메모리(예, 도 3의 메모리(130))를 더 포함할 수 있다. 상기 프로세서는, 메모리 내에, 상기 결과들을 포함하고, 상기 결과들이 상기 순서를 따라 정렬된, 정보를 저장하도록, 구성될 수 있다.
예를 들어, 상기 정보는, 상기 순서를 따라 상기 제2 오디오 신호들에 포함된 발언들이 정렬된 큐(queue)를 포함할 수 있다.
예를 들어, 상기 전자 장치는, 디스플레이(예, 도 3의 디스플레이(260))를 더 포함할 수 있다. 상기 프로세서는, 상기 디스플레이 내에, 상기 결과들을 포함하는 상이한 시각적 객체들(예, 도 8의 시각적 객체들(882, 884, 886, 888))을 병렬로(in parallel) 표시하도록, 구성될 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치(electronic device)의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호에 포함된 발언을 식별하는 동작(예, 도 12의 동작(1210))을 포함할 수 있다. 상기 방법은, 상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 보이스 커맨드를 처리하기 위하여 상기 전자 장치의 프로세서에 의해 실행되는 제1 보이스 엔진, 및 상기 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들을 획득하는 동작(예, 도 12의 동작(1220))을 포함할 수 있다. 상기 방법은, 상기 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 대응하는 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 대응하는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하는 동작(예, 도 12의 동작(1230))을 포함할 수 있다. 상기 방법은, 상기 정보에 기반하여, 상기 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 외부 전자 장치로 상기 제2 보이스 커맨드에 대응하는 제2 기능의 실행을 요청하는 동작(예, 도 12의 동작들(1240, 1250))을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언에 의해 지시되는 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들을 표현한(representing) 제2 오디오 신호를 출력하는 동작(예, 도 12의 동작(1260))을 포함할 수 있다.
예를 들어, 상기 발언을 식별하는 동작은, 상기 제1 오디오 신호를 수신하는 것에 응답하여, 상기 외부 전자 장치로 상기 제1 오디오 신호에 대응하는 텍스트 데이터를 요청하는 동작을 포함할 수 있다. 상기 발언을 식별하는 동작은, 상기 외부 전자 장치로부터 수신된 상기 텍스트 데이터에 기반하여 상기 발언을 식별하는 동작을 포함할 수 있다.
예를 들어, 상기 상태들을 획득하는 동작은, 상기 전자 장치의 메모리 내에서, 상기 순서에 기반하는 상기 복수의 보이스 커맨드들의 실행을 촉발(triggering)하기 위한 지정된 발언을 식별하는 동작을 포함할 수 있다. 상기 상태들을 획득하는 동작은, 상기 제1 오디오 신호에 포함된 상기 발언이 상기 지정된 발언에 대응하는지 여부에 기반하여, 상기 발언에 매칭된 상기 복수의 보이스 커맨드들을 식별하는 동작을 포함할 수 있다.
예를 들어, 상기 요청하는 동작은, 상기 외부 전자 장치로 상기 제2 기능의 실행을 요청한 이후, 상기 외부 전자 장치로부터 상기 제2 기능을 실행한 결과를 포함하는 정보를 수신하는 동작을 포함할 수 있다. 상기 요청하는 동작은, 상기 메모리 내에, 상기 순서에 기반하여 상기 외부 전자 장치로부터 수신된 상기 정보를 저장하는 동작을 포함할 수 있다.
예를 들어, 상기 정보를 획득하는 동작은, 상기 상태들에 기반하여, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 각각이 상기 복수의 보이스 커맨드들을 실행 가능한지 여부에 기반하여, 상기 정보를 획득하는 동작을 포함할 수 있다.
예를 들어, 상기 출력하는 동작은, 상기 전자 장치의 디스플레이 내에, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들 각각에 대응하는 시각적 객체들을 표시하는 동작을 포함할 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 식별하는 동작(예, 도 10의 동작(1010))을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호로부터 복수의 기능들을 순차적으로 실행하기 위한 발언을 식별하는 것에 기반하여, 상기 전자 장치의 프로세서에 기반하여 상기 복수의 기능들 중 적어도 하나의 제1 기능을 실행하는 동작(예, 도 10의 동작(1030))을 포함할 수 있다. 상기 방법은, 상기 발언을 식별하는 것에 기반하여, 상기 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치를 이용하여, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이한 적어도 하나의 제2 기능을 실행하는 동작(예, 도 10의 동작(1040))을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 실행한 결과들을 표현하는 제2 오디오 신호들을, 상기 발언과 관련된 순서를 따라 순차적으로 출력하는 동작(예, 도 10의 동작(1050))을 포함할 수 있다.
예를 들어, 상기 방법은, 상기 프로세서에 의해 실행되는 제1 보이스 엔진, 및 상기 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태들을 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 상태들에 기반하여, 상기 복수의 기능들 각각을, 상기 제1 보이스 엔진에 의해 실행될 상기 적어도 하나의 제1 기능으로, 상기 제2 보이스 엔진에 의해 실행될 상기 적어도 하나의 제2 기능으로 구분하는 동작을 포함할 수 있다.
예를 들어, 상기 구분하는 동작은, 상기 상태들에 의해 지시되는, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 각각이 기능을 실행 가능한지 여부에 기반하여, 상기 복수의 기능들 각각을, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능으로 구분하는 동작을 포함할 수 있다.
예를 들어, 상기 구분하는 동작은, 상기 적어도 하나의 제1 기능에 대응하는 적어도 하나의 제1 보이스 커맨드를 상기 제1 보이스 엔진에 대응하는 제1 큐로 할당하는 동작을 포함할 수 있다. 상기 구분하는 동작은, 상기 적어도 하나의 제2 기능에 대응하는 적어도 하나의 제2 보이스 커맨드를, 또는 상기 제2 보이스 엔진에 대응하는 제2 큐로 할당하는 동작을 포함할 수 있다.
예를 들어, 상기 출력하는 동작은, 상기 결과들을 표현하고, 상기 순서를 따라 정렬된, 발언들의 큐에 기반하여, 상기 제2 오디오 신호들을 출력하는 동작을 포함할 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치(electronic device)(예, 도 3의 전자 장치(101))는, 통신 회로(예, 도 3의통신 회로(330)), 마이크(예, 도 3의 마이크(320)), 스피커(예, 도 3의 스피커(310)), 및 프로세서(예, 도 3의 프로세서(120))를 포함할 수 있다. 상기 프로세서는, 상기 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호에 포함된 발언(예, 도 2의 발언(220))을 식별하도록, 구성될 수 있다. 상기 프로세서는, 상기 발언으로부터 복수의 보이스 커맨드들(voice commands)(예, 도 2의 보이스 커맨드들(230, 240))을 식별하는 것에 기반하여, 보이스 커맨드(a voice command)를 처리하기 위하여 상기 프로세서에 의해 실행되는 제1 보이스 엔진(예, 도 3의 제1 보이스 엔진(370)), 및 상기 통신 회로를 통해 연결된 외부 전자 장치(예, 도 3의 외부 전자 장치(210))에 의해 실행되는 제2 보이스 엔진(예, 도 3의 제2 보이스 엔진(380))의 상태들을 획득하도록, 구성될 수 있다. 상기 프로세서는, 상기 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 대응하는 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 대응하는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하도록, 구성될 수 있다. 상기 프로세서는, 상기 정보에 기반하여, 상기 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 외부 전자 장치로 상기 제2 보이스 커맨드에 대응하는 제2 기능의 실행을 요청하도록, 구성될 수 있다. 상기 프로세서는, 상기 스피커를 통하여, 상기 발언에 의해 지시되는(indicated by) 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들을 표현한(representing) 제2 오디오 신호를 출력하도록, 구성될 수 있다.
예를 들어, 상기 전자 장치는, 메모리(예, 도 3의 메모리(130))를 더 포함할 수 있다. 상기 프로세서는, 상기 메모리 내에서, 상기 순서에 기반하는 상기 복수의 보이스들의 실행을 촉발(triggering)하기 위한 지정된 발언을 식별하도록, 구성될 수 있다. 상기 프로세서는, 상기 제1 오디오 신호에 포함된 상기 발언이 상기 지정된 발언에 대응하는지 여부에 기반하여, 상기 발언에 매칭된 상기 복수의 보이스 커맨드들을 식별하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 외부 전자 장치로 상기 제2 기능의 실행을 요청한 이후, 상기 외부 전자 장치로부터 상기 제2 기능을 실행한 결과를 포함하는 정보를 수신하도록, 구성될 수 있다. 상기 프로세서는, 상기 메모리 내에, 상기 순서에 기반하여 상기 외부 전자 장치로부터 수신된 상기 정보를 저장하도록, 구성될 수 있다.
예를 들어, 상기 지정된 발언은, 상기 복수의 보이스 커맨드들과 관련된 하나 이상의 단어들과 상이한 다른 단어를 포함할 수 있다.
예를 들어, 상기 프로세서는, 상기 상태들에 기반하여, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 각각이 상기 복수의 보이스 커맨드들을 실행 가능한지 여부에 기반하여, 상기 정보를 획득하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 제1 오디오 신호를 수신하는 것에 응답하여, 상기 외부 전자 장치로 상기 제1 오디오 신호에 대응하는 텍스트 데이터를 요청하도록, 구성될 수 있다. 상기 프로세서는, 상기 외부 전자 장치로부터 수신된 상기 텍스트 데이터에 기반하여 상기 발언을 식별하도록, 구성될 수 있다.
예를 들어, 상기 전자 장치는, 디스플레이를 더 포함할 수 있다. 상기 프로세서는, 상기 디스플레이 내에, 상기 스피커를 통하여 출력되는 상기 제2 오디오 신호와 함께, 상기 제1 기능, 및 상기 제2 기능을 실행한 결과들 각각에 대응하는 시각적 객체들을 표시하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 상태들에 대응하는, 상기 제1 보이스 엔진, 및 상기 제2 보이스 엔진의 대기 시간들(latency times)에 기반하여, 상기 복수의 보이스 커맨드들 각각을, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중 어느 하나로 매칭하여, 상기 정보를 획득하도록, 구성될 수 있다.
예를 들어, 상기 프로세서는, 상기 상태들에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진, 또는 상기 제2 보이스 엔진 중 적어도 하나를 이용하여 실행하기 위한 스케줄을 나타내는 상기 정보를 획득하도록, 구성될 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치는, 통신 회로, 마이크, 스피커, 적어도 하나의 인스트럭션를 저장하기 위한 메모리 및 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 마이크를 통하여 수신된 제1 오디오 신호를 식별하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 복수의 기능들을 순차적으로 실행하기 위한 발언을 포함하는 제1 오디오 신호를 식별하는 것에 기반하여, 상기 복수의 기능들 중 적어도 하나의 제1 기능을 수행하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 제1 오디오 신호가 발언을 포함함을 식별하는 것에 기반하여, 상기 통신 회로를 통해 외부 전자 장치의 상기 복수의 기능들 중에서 적어도 하나의 제2 기능을 수행하도록, 구성될 수 있다. 상기 적어도 하나의 제2 기능은, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는(representing) 제2 오디오 신호들을, 상기 발언과 관련된 순서에 기반하여 순차적으로 출력하도록, 구성될 수 있다.
예를 들어, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 전자 장치에서 실행되는 제1 보이스 엔진의 상태, 및 상기 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태를 획득하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 기능들을, 상기 제1 보이스 엔진에 의해 수행될 상기 적어도 하나의 제1 기능 및 상기 제2 보이스 엔진에 의해 실행될 상기 적어도 하나의 제2 기능으로 구분하도록, 구성될 수 있다.
예를 들어, 상기 제1 보이스 엔진의 상기 상태는 상기 제1 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 수행할 수 있는 지 여부를 나타내고, 상기 제2 보이스 엔진의 상기 상태는 상기 제2 보이스 엔진이 상기 복수의 기능들 중 하나를 수행할 수 있는지 여부를 나타낼 수 있다.
예를 들어, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 적어도 하나의 제1 기능에 대응하는 적어도 하나의 제1 보이스 커맨드를 상기 제1 보이스 엔진에 대응하는 제1 큐로 할당하도록, 구성될 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 적어도 하나의 제2 기능에 대응하는 적어도 하나의 제2 보이스 커맨드를, 또는 상기 제2 보이스 엔진에 대응하는 제2 큐로 할당하도록, 구성될 수 있다.
예를 들어, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 제1 큐에 누적된(accumulated) 상기 적어도 하나의 제1 보이스 커맨드에 기반하여 상기 제1 보이스 엔진을 실행하도록, 구성될 수 있다.
예를 들어, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 제2 큐에 누적된 상기 적어도 하나의 제2 보이스 커맨드를 나타내는 적어도 하나의 신호를, 상기 외부 전자 장치로 송신하도록, 구성될 수 있다.
예를 들어, 상기 전자 장치는, 메모리를 포함할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 순서에 기반하여, 상기 메모리 내에 상기 적어도 하나의 결과를 포함하는 정보를 저장하도록, 구성될 수 있다.
예를 들어, 상기 정보는, 적어도 하나의 제2 오디오 신호 내 적어도 하나의 발언이 상기 순서에 기반하여 배열된 큐(queue)를 포함할 수 있다.
예를 들어, 상기 전자 장치는, 디스플레이를 포함할 수 있다. 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여, 상기 적어도 하나의 결과를 병렬로(in a parallel) 표시하기 위한 상이한 시각적 객체들을 표시하기 위하여 상기 디스플레이를 제어하도록, 구성될 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치(electronic device)의 방법은, 상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호 내 발언을 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 상기 전자 장치에 의해 실행되는 제1 보이스 엔진의 상태, 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태를 획득하는 동작을 포함할 수 있다. 상기 외부 전자 장치는 상기 전자 장치의 통신 회로를 통해 연결될 수 있다. 상기 방법은, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 의해 수행되는 적어도 하나의 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 의해 수행되는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 적어도 하나의 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 적어도 하나의 제2 보이스 커맨드에 대응하는 제2 기능을 수행하기 위하여 외부 전자 장치로 요청하는 동작을 포함할 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언에 의해 지시되는 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 적어도 하나의 결과를 표현한(representing) 적어도 하나의 제2 오디오 신호를 출력하는 동작을 포함할 수 있다.
예를 들어, 상기 제1 오디오 신호 내에서 상기 발언을 식별하는 동작은, 상기 외부 전자 장치로부터 상기 제1 오디오 신호에 대응하는 텍스트 데이터를 수신하는 동작을 포함할 수 있다. 상기 제1 오디오 신호 내에서 상기 발언을 식별하는 동작은, 상기 텍스트 데이터에 기반하여 상기 제1 오디오 신호 내 상기 발언을 식별하는 동작을 포함할 수 있다.
예를 들어, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태를 획득하는 동작은, 상기 전자 장치의 메모리 내에서, 상기 순서에 기반하는 상기 복수의 보이스 커맨드들의 수행을 촉발(triggering)하기 위한 지정된 발언을 식별하는 동작을 포함할 수 있다. 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태를 획득하는 동작은, 상기 제1 오디오 신호 내 상기 발언이 상기 지정된 발언에 대응하는지 여부에 기반하여, 상기 복수의 보이스 커맨드들을 식별하는 동작을 포함할 수 있다.
예를 들어, 상기 제2 기능을 수행하기 위하여 상기 외부 전자 장치에 요청하는 동작은, 상기 제2 기능을 수행한 결과를 포함하는 정보를, 상기 외부 전자 장치로부터 수신하는 동작을 포함할 수 있다. 상기 제2 기능을 수행하기 위하여 상기 외부 전자 장치에 요청하는 동작은, 상기 전자 장치의 메모리 내에, 상기 순서에 기반하여 상기 상기 정보를 저장하는 동작을 포함할 수 있다.
예를 들어, 상기 제1 보이스 엔진의 상기 상태는 상기 제1 보이스 엔진이 복수의 기능들 중 하나를 수행할 수 있는지 여부를 나타내고, 상기 제2 보이스 엔진의 상기 상태는 상기 제2 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 수행할 수 있는지 여부를 나타낼 수 있다.
예를 들어, 상기 적어도 하나의 제2 오디오 신호를 출력하는 동작은, 상기 제2 기능을 수행한 결과 및 상기 제1 기능을 수행한 결과를 보여주는 적어도 하나의 시각적 객체를 표시하기 위하여, 상기 전자 장치의 디스플레이를 제어하는 동작을 포함할 수 있다.
상술한 바와 같은, 일 실시예에 따른, 전자 장치의 방법은, 상기 전자 장치의 마이크를 통해 수신된 제1 오디오 신호를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호가 복수의 기능들을 순차적으로 실행하기 위한 발언을 포함함을 식별하는 것에 기반하여, 상기 복수의 기능들로부터 적어도 하나의 제1 기능을 수행하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 오디오 신호가 상기 발언을 포함함을 식별하는 것에 기반하여, 상기 외부 전자 장치의 통신 회로를 통해 연결된 외부 전자 장치에서, 상기 복수의 기능들 중 적어도 하나의 제2 기능을 수행하는 동작을 포함할 수 있다. 상기 적어도 하나의 제2 기능은 상기 적어도 하나의 제1 기능과 다를 수 있다. 상기 방법은, 상기 전자 장치의 스피커를 통하여, 상기 발언과 관련된 발언에 기반하여 상기 적어도 하나의 제1 기능 및 상기 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는 적어도 하나의 제2 오디오 신호를 순차적으로 출력하는 동작을 포함할 수 있다.
예를 들어, 상기 방법은, 상기 전자 장치에서 실행되는 제1 보이스 엔진의 상태 및 상기 외부 전자 장치에서 실행되는 제2 보이스 엔진의 상태를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 기능들을, 상기 제1 보이스 엔진에 의해 수행될 상기 적어도 하나의 제1 기능 및 상기 제2 보이스 엔진에 의해 수행될 상기 적어도 하나의 제2 기능으로 구분하는 동작을 포함할 수 있다.
예를 들어, 상기 제1 보이스 엔진의 상태는, 상기 제1 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 실행할 수 있는지 여부를 나타낼 수 있다. 상기 제2 보이스 엔진의 상태는, 상기 제2 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 실행할지 여부를 나타낼 수 있다.
예를 들어, 상기 구분하는 동작은, 상기 제1 보이스 엔진에 대응하는 제1 큐로, 상기 적어도 하나의 제1 기능에 대응하는 적어도 하나의 제1 보이스 커맨드를 할당하는 동작을 포함할 수 있다. 상기 구분하는 동작은, 상기 제2 보이스 엔진에 대응하는 제2 큐로, 상기 적어도 하나의 제2 기능에 대응하는 제2 보이스 커맨드를 할당하는 동작을 포함할 수 있다.
예를 들어, 상기 출력하는 동작은, 상기 적어도 하나의 제2 오디오 신호 내 적어도 하나의 발언의 큐에 기반하여, 상기 발언에 따라 상기 적어도 하나의 결과를 표현하는 상기 적어도 하나의 발언을 출력하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 특허청구범위의 범위에 속한다.

Claims (15)

  1. 전자 장치(electronic device)에 있어서,
    통신 회로;
    마이크;
    스피커;
    적어도 하나의 인스트럭션를 저장하기 위한 메모리; 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 마이크를 통하여 수신된 제1 오디오 신호를 식별하고;
    복수의 기능들을 순차적으로 실행하기 위한 발언을 포함하는 제1 오디오 신호를 식별하는 것에 기반하여, 상기 복수의 기능들 중 적어도 하나의 제1 기능을 수행하고;
    상기 제1 오디오 신호가 발언을 포함함을 식별하는 것에 기반하여, 상기 통신 회로를 통해 외부 전자 장치의 상기 복수의 기능들 중에서 적어도 하나의 제2 기능을 수행하고, 상기 적어도 하나의 제2 기능은, 상기 복수의 기능들 중에서, 상기 적어도 하나의 제1 기능과 상이함; 및
    상기 스피커를 통하여, 상기 적어도 하나의 제1 기능, 및 상기 적어도 하나의 제2 기능을 수행한 적어도 하나의 결과를 표현하는(representing) 제2 오디오 신호들을, 상기 발언과 관련된 순서에 기반하여 순차적으로 출력하도록, 구성된,
    전자 장치.
  2. 제1항에 있어서, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 전자 장치에서 실행되는 제1 보이스 엔진의 상태, 및 상기 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태를 획득하고;
    상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 기능들을, 상기 제1 보이스 엔진에 의해 수행될 상기 적어도 하나의 제1 기능 및 상기 제2 보이스 엔진에 의해 실행될 상기 적어도 하나의 제2 기능으로 구분하도록, 구성된,
    전자 장치.
  3. 제2항에 있어서, 상기 제1 보이스 엔진의 상기 상태는 상기 제1 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 수행할 수 있는 지 여부를 나타내고, 상기 제2 보이스 엔진의 상기 상태는 상기 제2 보이스 엔진이 상기 복수의 기능들 중 하나를 수행할 수 있는지 여부를 나타내는,
    전자 장치.
  4. 제2항에 있어서, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 적어도 하나의 제1 기능에 대응하는 적어도 하나의 제1 보이스 커맨드를 상기 제1 보이스 엔진에 대응하는 제1 큐로 할당하고; 및
    상기 적어도 하나의 제2 기능에 대응하는 적어도 하나의 제2 보이스 커맨드를, 또는 상기 제2 보이스 엔진에 대응하는 제2 큐로 할당하도록, 구성된,
    전자 장치.
  5. 제4항에 있어서, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 제1 큐에 누적된(accumulated) 상기 적어도 하나의 제1 보이스 커맨드에 기반하여 상기 제1 보이스 엔진을 실행하도록, 구성된,
    전자 장치.
  6. 제4항에 있어서, 상기 프로세서는,
    상기 제2 큐에 누적된 상기 적어도 하나의 제2 보이스 커맨드를 나타내는 적어도 하나의 신호를, 상기 외부 전자 장치로 송신하도록, 구성된,
    전자 장치.
  7. 제1항에 있어서, 메모리를 더 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 순서에 기반하여, 상기 메모리 내에 상기 적어도 하나의 결과를 포함하는 정보를 저장하도록, 구성된,
    전자 장치.
  8. 제7항에 있어서, 상기 정보는,
    적어도 하나의 제2 오디오 신호 내 적어도 하나의 발언이 상기 순서에 기반하여 배열된 큐(queue)를 포함하는,
    전자 장치.
  9. 제1항에 있어서, 디스플레이를 더 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 인스트럭션들을 실행하여,
    상기 적어도 하나의 결과를 병렬로(in a parallel) 표시하기 위한 상이한 시각적 객체들을 표시하기 위하여 상기 디스플레이를 제어하도록, 구성된,
    전자 장치.
  10. 전자 장치(electronic device)의 방법에 있어서,
    상기 전자 장치의 마이크를 통하여 제1 오디오 신호를 수신하는 것에 기반하여, 상기 제1 오디오 신호 내 발언을 식별하는 동작;
    상기 발언으로부터 복수의 보이스 커맨드들을 식별하는 것에 기반하여, 상기 전자 장치에 의해 실행되는 제1 보이스 엔진의 상태, 및 외부 전자 장치에 의해 실행되는 제2 보이스 엔진의 상태를 획득하는 동작, 상기 외부 전자 장치는 상기 전자 장치의 통신 회로를 통해 연결됨;
    상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태에 기반하여, 상기 복수의 보이스 커맨드들을, 상기 제1 보이스 엔진에 의해 수행되는 적어도 하나의 제1 보이스 커맨드, 및 상기 제2 보이스 엔진에 의해 수행되는 제2 보이스 커맨드로 구분하기 위한 정보를 획득하는 동작;
    상기 적어도 하나의 제1 보이스 커맨드에 대응하는 제1 기능을, 상기 제1 보이스 엔진을 이용하여 실행하고, 상기 적어도 하나의 제2 보이스 커맨드에 대응하는 제2 기능을 수행하기 위하여 외부 전자 장치로 요청하는 동작; 및
    상기 전자 장치의 스피커를 통하여, 상기 발언에 의해 지시되는 상기 복수의 보이스 커맨드들의 순서에 기반하여, 상기 제1 기능, 및 상기 제2 기능을 실행한 적어도 하나의 결과를 표현한(representing) 적어도 하나의 제2 오디오 신호를 출력하는 동작을 포함하는,
    방법.
  11. 제10항에 있어서, 상기 제1 오디오 신호 내에서 상기 발언을 식별하는 동작은,
    상기 외부 전자 장치로부터 상기 제1 오디오 신호에 대응하는 텍스트 데이터를 수신하는 동작;
    상기 텍스트 데이터에 기반하여 상기 제1 오디오 신호 내 상기 발언을 식별하는 동작을 포함하는,
    방법.
  12. 제10항에 있어서, 상기 제1 보이스 엔진의 상태 및 상기 제2 보이스 엔진의 상태를 획득하는 동작은,
    상기 전자 장치의 메모리 내에서, 상기 순서에 기반하는 상기 복수의 보이스 커맨드들의 수행을 촉발(triggering)하기 위한 지정된 발언을 식별하는 동작; 및
    상기 제1 오디오 신호 내 상기 발언이 상기 지정된 발언에 대응하는지 여부에 기반하여, 상기 복수의 보이스 커맨드들을 식별하는 동작을 포함하는,
    방법.
  13. 제12한 항에 있어서, 상기 제2 기능을 수행하기 위하여 상기 외부 전자 장치에 요청하는 동작은,
    상기 제2 기능을 수행한 결과를 포함하는 정보를, 상기 외부 전자 장치로부터 수신하는 동작;
    상기 전자 장치의 메모리 내에, 상기 순서에 기반하여 상기 상기 정보를 저장하는 동작을 포함하는,
    방법.
  14. 제10항에 있어서, 상기 제1 보이스 엔진의 상기 상태는 상기 제1 보이스 엔진이 복수의 기능들 중 하나를 수행할 수 있는지 여부를 나타내고, 상기 제2 보이스 엔진의 상기 상태는 상기 제2 보이스 엔진이 상기 복수의 기능들 중 어느 하나를 수행할 수 있는지 여부를 나타내는,
    방법.
  15. 제10항에 있어서, 상기 적어도 하나의 제2 오디오 신호를 출력하는 동작은,
    상기 제2 기능을 수행한 결과 및 상기 제1 기능을 수행한 결과를 보여주는 적어도 하나의 시각적 객체를 표시하기 위하여, 상기 전자 장치의 디스플레이를 제어하는 동작을 포함하는,
    방법.
PCT/KR2023/015158 2022-10-08 2023-09-27 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법 Ceased WO2024076114A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202380069810.XA CN119895381A (zh) 2022-10-08 2023-09-27 用于控制语音命令执行的电子装置及其方法
EP23875178.8A EP4582926A4 (en) 2022-10-08 2023-09-27 ELECTRONIC DEVICE FOR CONTROLLING THE EXECUTION OF A VOICE COMMAND, AND ASSOCIATED METHOD
US18/535,568 US20240127815A1 (en) 2022-10-08 2023-12-11 Electronic device for controlling execution of voice command and method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220129140 2022-10-08
KR10-2022-0129140 2022-10-08
KR1020220144807A KR20240049507A (ko) 2022-10-08 2022-11-02 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법
KR10-2022-0144807 2022-11-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/535,568 Continuation US20240127815A1 (en) 2022-10-08 2023-12-11 Electronic device for controlling execution of voice command and method thereof

Publications (1)

Publication Number Publication Date
WO2024076114A1 true WO2024076114A1 (ko) 2024-04-11

Family

ID=90608732

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/015158 Ceased WO2024076114A1 (ko) 2022-10-08 2023-09-27 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법

Country Status (4)

Country Link
US (1) US20240127815A1 (ko)
EP (1) EP4582926A4 (ko)
CN (1) CN119895381A (ko)
WO (1) WO2024076114A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087207A (ko) * 2016-01-20 2017-07-28 삼성전자주식회사 전자 장치 및 전자 장치의 음성 명령 처리 방법
KR20180116726A (ko) * 2017-04-17 2018-10-25 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
KR20190035454A (ko) * 2017-09-26 2019-04-03 주식회사 케이티 음성인식 서비스를 제공하는 단말, 서버 및 방법
KR102026479B1 (ko) * 2019-03-06 2019-09-30 주식회사 다이얼로그디자인에이전시 병렬처리 플랫폼 기반 인공지능 음성인식 서비스 제공 시스템
US20200126538A1 (en) * 2018-07-20 2020-04-23 Google Llc Speech recognition with sequence-to-sequence models

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311856B2 (en) * 2016-10-03 2019-06-04 Google Llc Synthesized voice selection for computational agents
US10552204B2 (en) * 2017-07-07 2020-02-04 Google Llc Invoking an automated assistant to perform multiple tasks through an individual command
KR102374910B1 (ko) * 2017-08-22 2022-03-16 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
JP7170739B2 (ja) * 2018-03-08 2022-11-14 グーグル エルエルシー リモートに生成された自動化アシスタントコンテンツのレンダリングにおけるクライアントデバイスレイテンシの軽減
WO2019216873A1 (en) * 2018-05-07 2019-11-14 Google Llc Determining responsive content for a compound query based on a set of generated sub-queries

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170087207A (ko) * 2016-01-20 2017-07-28 삼성전자주식회사 전자 장치 및 전자 장치의 음성 명령 처리 방법
KR20180116726A (ko) * 2017-04-17 2018-10-25 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
KR20190035454A (ko) * 2017-09-26 2019-04-03 주식회사 케이티 음성인식 서비스를 제공하는 단말, 서버 및 방법
US20200126538A1 (en) * 2018-07-20 2020-04-23 Google Llc Speech recognition with sequence-to-sequence models
KR102026479B1 (ko) * 2019-03-06 2019-09-30 주식회사 다이얼로그디자인에이전시 병렬처리 플랫폼 기반 인공지능 음성인식 서비스 제공 시스템

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP4582926A1 (en) 2025-07-09
EP4582926A4 (en) 2025-12-17
US20240127815A1 (en) 2024-04-18
CN119895381A (zh) 2025-04-25

Similar Documents

Publication Publication Date Title
WO2020050475A1 (ko) 전자 장치 및 단축 명령어에 대응하는 태스크 수행 방법
WO2020167006A1 (en) Method of providing speech recognition service and electronic device for same
WO2020197263A1 (en) Electronic device and multitasking supporting method thereof
WO2022010157A1 (ko) 인공지능 가상 비서 서비스에서의 화면 제공 방법 및 이를 지원하는 사용자 단말 장치 및 서버
WO2020180034A1 (ko) 사용자 선택 기반의 정보를 제공하는 방법 및 장치
WO2020032381A1 (en) Electronic apparatus for processing user utterance and controlling method thereof
WO2022220559A1 (en) Electronic device for processing user utterance and control method thereof
WO2022139420A1 (ko) 전자 장치 및 그의 연속성을 가지는 사용자 입력에 대한 실행 정보를 공유하는 방법
WO2025154986A1 (ko) 전자 장치 및 멀티 윈도우 레이아웃 생성 방법
WO2024063507A1 (ko) 전자 장치 및 전자 장치의 사용자 발화 처리 방법
WO2024043729A1 (ko) 전자 장치 및 전자 장치의 사용자에 대한 응답 처리 방법
WO2024076114A1 (ko) 보이스 커맨드의 실행을 제어하기 위한 전자 장치 및 그 방법
WO2022177264A1 (ko) 전자 장치 및 전자 장치의 음성 인식 처리 방법
WO2022177224A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2022163963A1 (ko) 전자 장치 및 전자 장치의 단축 명령어 수행 방법
WO2022191395A1 (ko) 사용자 명령을 처리하는 장치 및 그 동작 방법
WO2025005553A1 (ko) 음성 신호 처리 방법 및 상기 방법을 수행하는 전자 장치
WO2024072142A1 (ko) 서술어를 포함하지 않는 발화를 처리하는 전자 장치, 동작 방법 및 저장 매체
WO2025127383A1 (ko) 캐싱을 이용하여 커맨드에 대응하는 기능을 실행하기 위한 전자 장치 및 그 방법
WO2024080729A1 (ko) 전자 장치 및 상기 전자 장치에서 위치 기반 컨텍스트를 이용하여 사용자의 발화를 처리하는 방법
WO2024076139A1 (ko) 전자 장치 및 상기 전자 장치에서 사용자의 발화를 처리하는 방법
WO2022139515A1 (ko) 음성 기반 콘텐츠 제공 방법 및 그 전자 장치
WO2024010284A1 (ko) 끝점 검출 시간 결정 방법 및 상기 방법을 수행하는 전자 장치
WO2023043094A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2026054323A1 (ko) 발화에 포함된 요청에 대한 유저 인터페이스를 표시하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23875178

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202380069810.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 202547031735

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2023875178

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2023875178

Country of ref document: EP

Effective date: 20250402

WWP Wipo information: published in national office

Ref document number: 202547031735

Country of ref document: IN

WWP Wipo information: published in national office

Ref document number: 202380069810.X

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2023875178

Country of ref document: EP