WO2024128799A1 - 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 - Google Patents
마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 Download PDFInfo
- Publication number
- WO2024128799A1 WO2024128799A1 PCT/KR2023/020545 KR2023020545W WO2024128799A1 WO 2024128799 A1 WO2024128799 A1 WO 2024128799A1 KR 2023020545 W KR2023020545 W KR 2023020545W WO 2024128799 A1 WO2024128799 A1 WO 2024128799A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- voice
- electronic device
- call
- processor
- party
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/60—Substation equipment, e.g. for use by subscribers including speech amplifiers
- H04M1/6008—Substation equipment, e.g. for use by subscribers including speech amplifiers in the transmitter circuit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72463—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions to restrict the functionality of the device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/74—Details of telephonic subscriber devices with voice recognition means
Definitions
- Various embodiments of the present invention disclose a method for supporting voice calls when using a microphone and an electronic device therefor.
- electronic devices provide voice assistant services that process tasks requested by users and provide specialized services to users.
- the voice assistant collects and provides customized information to the user based on an artificial intelligence (AI) engine and voice recognition, and can perform various tasks such as schedule management, email sending, and restaurant reservations according to the user's voice commands.
- AI artificial intelligence
- voice assistants are installed in various home appliances and vehicles, their scope of application is further expanding.
- microphones are already used during phone calls, voice recording, or video recording, so voice assistant services cannot be provided.
- the electronic device processes audio data (e.g., user's voice) input through a microphone and transmits it to the communication processor, thereby transmitting voice data to the other party's electronic device.
- audio data e.g., user's voice
- the voice data transmitted to the other party's electronic device may be muted, making it impossible to transmit the voice data to the other party's electronic device.
- a voice call e.g., Hi, Bixby
- voice feedback for the voice call is provided, and a voice call is detected.
- the electronic device 101 includes a microphone 150, an audio output module 155, a memory 130, and a processor 120, and instructions stored in the memory are stored in the processor.
- When executed by causes the electronic device to execute an application using the microphone, receive an input for calling a voice assistant while executing the application using the microphone, and generate the voice based on the input. It may be controlled to call an assistant and provide result data corresponding to a voice command received through the microphone.
- a method of operating an electronic device includes executing an application using the microphone 150, receiving an input for calling a voice assistant while executing an application using the microphone, It may include an operation of controlling to call the voice assistant based on the input, and an operation of providing result data corresponding to a voice command received through the microphone.
- a computer-readable recording medium recording a program for executing a method of operating an electronic device 101 on a processor includes an operation of executing an application using a microphone 150, and using the microphone. While executing an application, receiving an input for calling a voice assistant, controlling to call the voice assistant based on the input, and responding to a voice command received through the microphone. It may include a program for executing an operation that provides result data.
- the audio processing path can be controlled so that a voice assistant can be called even while using an application that uses a microphone.
- the usability of an electronic device can be improved by allowing a virtual assistant service to be used even during a phone call, voice recording, or video shooting.
- convenience can be provided by allowing additional operations, such as checking the current time, registering a schedule, or finding navigation directions during a phone call, to be performed through a voice assistant.
- convenience can be provided to the user by allowing the user to use the voice assistant in a state where it is difficult for the user to operate the electronic device, such as on a call while driving.
- a voice assistant can be provided to the calling party through the user's electronic device by sharing result data according to the voice command, such as current location, weather, and schedule, with the calling party.
- a private mode can be set when giving a voice command or providing result data according to a voice command, thereby protecting the user's personal information and sharing the voice assistant with the other party.
- the space of the electronic device is efficiently utilized and costs are reduced by providing a voice assistant through path control that processes audio at the kernel level without including parts (e.g., IC) related to the voice assistant. You can do it.
- a voice assistant through path control that processes audio at the kernel level without including parts (e.g., IC) related to the voice assistant. You can do it.
- FIG. 1 is a block diagram of an electronic device in a network environment according to an embodiment.
- FIG. 2 is a diagram illustrating a framework related to audio processing of an electronic device according to an embodiment.
- Figure 3 is a flowchart illustrating a method of operating an electronic device according to an embodiment.
- FIG. 4 is a conceptual diagram illustrating processing of a user's voice and audio of a voice assistant during a call in an electronic device according to an embodiment.
- FIG. 5 is a flowchart illustrating a method of providing a voice assistant service during a call in an electronic device according to an embodiment.
- FIGS. 6A to 6C are diagrams illustrating a framework for processing audio during a call in an electronic device according to an embodiment.
- FIGS. 7A and 7B are diagrams illustrating a framework for processing audio based on a private mode setting in an electronic device according to an embodiment.
- FIG. 8 is a diagram illustrating an example of using the other party's voice as a voice call in an electronic device according to an embodiment.
- FIG. 9 is a flowchart illustrating a method of providing a voice assistant service during a call in an electronic device according to an embodiment.
- FIG. 10 is another diagram illustrating a framework for processing audio during a call in an electronic device according to an embodiment.
- FIG. 11 is a diagram illustrating a framework for processing audio during voice recording in an electronic device according to an embodiment.
- FIG. 1 is a block diagram of an electronic device 101 in a network environment 100, according to various embodiments.
- the electronic device 101 communicates with the electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. It is possible to communicate with at least one of the electronic device 104 or the server 108 through (e.g., a long-distance wireless communication network). According to one embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108.
- a first network 198 e.g., a short-range wireless communication network
- a second network 199 e.g., a long-distance wireless communication network.
- the electronic device 101 may communicate with the 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 calculations 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 the 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).
- the main processor 121 e.g., a central processing unit or an application processor
- an 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 secondary processor 123
- the secondary 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 may be output through the electronic device 102 (e.g., speaker or headphone).
- the 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 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 interface
- audio interface audio interface
- connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the 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 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108). It can support establishment and communication through established communication channels. 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 to communicate 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 a high frequency band (eg, mmWave band), for example, to achieve a high data rate.
- a high frequency band eg, mmWave band
- 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., 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 or receive signals or power to or from the outside (eg, 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, for example, connected to the plurality of antennas by 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 selected at least one 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
- the antenna module 197 may form a mmWave antenna module.
- 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 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
- 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 is a diagram illustrating a framework related to audio processing of an electronic device according to an embodiment.
- a framework related to audio processing of an electronic device includes an application 210, an audio framework 220, and an audio hardware abstraction (HAL). layer 230, a communication processor 240, an audio digital signal processor (DSP) 250, and hardware 280.
- the application 210, the audio framework 220, and the audio HAL 230 may be controlled by a processor (eg, the processor 120 of FIG. 1) of the electronic device 101.
- the communication processor 240 may be composed of a CP Network 241 and a CP Protocol 243 that transmit/receive CP Call call sounds (e.g., received sounds and transmitted sounds).
- the communication processor 240 may transmit or receive call sound through a communication module (eg, the communication module 190 of FIG. 1).
- the application 210 is an application installed on the electronic device 101 and may include phone calls, music, games, Internet calls (eg, access point (AP) calls), voice assistants, or recording.
- Audio DSP (250) is performed in the kernel, for example, PCM (pulse code modulation) Playback (251), PCM Capture (252), PCM playback (253), PCM Capture (254), Call Rx Task (255) ), Call Tx Task (256), Voice Trigger Solution (257), Call Rx Solution (258), Call Tx Solution (259), Bus (260) AIF0 (audio interface number 0) (271), or AIF1 (audio interface 1) (272).
- the audio DSP 250 may include a plurality of direct memory access (DMA).
- the kernel may include AMP Driver (273) or MIC Driver (274).
- the hardware 280 may include a first speaker (SPK1), a second speaker (SPK2), a first microphone (MIC1), or a second microphone (MIC2).
- PCM Playback (251), PCM Capture (252), PCM Playback (253), and PCM Capture (254) correspond to file nodes, and audio (e.g., audio files) can be read or written.
- the application 210 may write audio to be output through the first speaker (SPK1) or the second speaker (SPK2) to the PCM Playback (251) or PCM Playback (253).
- the audio DSP 250 writes the audio acquired from the first microphone (MIC1) or the second microphone (MIC2) to PCM Capture (252) or PCM Capture (254), and the application 210 writes audio to PCM Capture (252) or You can read audio stored in PCM Capture (254).
- Call Rx Task (255), Call Tx Task (256), Voice Trigger Solution (257), Call Rx Solution (258), and Call Tx Solution (259) are nodes used when making a phone call through the communication processor (240). You can.
- the electronic device 101 receives audio (e.g., the other party's voice) (or audio data, audio files) can be received.
- the received audio may be output through the first speaker (SPK1) or the second speaker (SPK2) through the Call Rx Task (255) and Call Rx Solution (258).
- the Call Rx Solution (258) can transmit ECNS (echo cancellation and noise suppression technology) processed voice PCM data to the Voice Trigger Solution (257).
- ECNS echo cancellation and noise suppression technology
- the audio DSP 250 processes audio (e.g. user voice) (or audio data, audio file) acquired from the first microphone (MIC1) or the second microphone (MIC2) into Call Tx Solution (259) and Call Tx Task. It can be transmitted to the communication processor 240 via (256).
- Call Tx Solution (259) can transmit ECNS-processed voice PCM data to Call Tx Task (256) and Voice Trigger Solution (257).
- the Call Tx Solution (259) can prevent call audio from being interrupted by transmitting audio data obtained from the microphone to the Call Tx Task (256) in the same manner as the existing Call Audio path.
- the electronic device 101 may provide a voice assistant service by controlling the processing path of the audio (or audio signal) while running an application (e.g., phone, AP call, recording) that uses at least one microphone.
- an application e.g., phone, AP call, recording
- the processor 120 may enter a sleep mode to minimize current consumption.
- the electronic device 101 includes a microphone 150, an audio output module 155, a memory 130, and a processor 120, and instructions stored in the memory are stored in the processor.
- When executed by causes the electronic device to execute an application using the microphone, receive an input for calling a voice assistant while executing the application using the microphone, and generate the voice based on the input. It may be controlled to call an assistant and provide result data corresponding to a voice command received through the microphone.
- the instructions When executed by the processor, the instructions cause the electronic device to, when the application is a phone application or when the voice assistant operates in a private mode, send result data corresponding to the voice command through the audio output module.
- the result data It may be output through an audio output module and transmit the voice command and/or the result data to the other electronic device.
- the instructions When executed by the processor, the instructions cause the electronic device to, if the application is a phone application and the voice assistant operates in a public mode, check whether the voice command includes personal information, and execute the voice command. If personal information is included, the voice command or result data is not transmitted to the electronic device of the other party of the call performed by the phone application, and the voice command or result data is output through the audio output module. , and when the voice command does not contain personal information, the voice command or the result data is output through the audio output module, and the voice command or the result data is transmitted to the other party's electronic device.
- the instructions When executed by the processor, the instructions cause the electronic device to check whether the user's voice acquired through the microphone includes a voice call word, or whether the other party's voice received from the other party's electronic device includes a voice call word. It may be.
- the instructions may cause the electronic device to check whether the other party's voice includes the voice call word when the voice assistant operates in the public mode.
- the instructions when executed by the processor, cause the electronic device to, when the voice assistant operates in the public mode, call the voice assistant based on the voice call word included in the other party's voice, and When the voice assistant operates in a private mode, it may refrain from calling the voice assistant based on the voice call word included in the other party's voice.
- the electronic device further includes an audio digital signal processor (DSP) including a voice trigger module 257, the voice trigger module configured to invoke the voice assistant, and invoke the voice assistant.
- DSP audio digital signal processor
- the input includes receiving a voice call word by uttering or selecting a button associated with the voice assistant, the voice command being spoken to the voice assistant after the user calls the voice assistant, and the resulting data is This may be a result provided by the voice assistant after analyzing the voice command.
- the instructions When executed by the processor, the instructions cause the electronic device to: If the application is a phone application and the voice assistant is called by the voice caller, if the voice assistant is operating in a private mode, the phone The voice feedback is output through the sound output module without transmitting the voice feedback to the electronic device of the other party of the call performed by the application, and when the voice assistant operates in a public mode, the voice by the voice assistant Feedback may be output through the audio output module, and the audio feedback may be transmitted to the other party's electronic device.
- the instructions When executed by the processor, the instructions cause the electronic device to display text corresponding to the voice command or the result data on the display 160 of the electronic device on the execution screen of the application using the microphone. You can.
- the instructions When executed by the processor, the instructions may cause the electronic device to store the voice command or the result data together with the recording data of the recording application if the application using the microphone is a recording application.
- FIG. 3 is a flowchart 300 illustrating a method of operating an electronic device according to an embodiment.
- a processor e.g., processor 120 of FIG. 1 of an electronic device (e.g., electronic device 101 of FIG. 1) uses at least one microphone (e.g., An application using the input module 150 of FIG. 1 can be executed.
- the applications may include phone calls (e.g., voice calls, video calls), Internet calls, voice recording, or video recording.
- the following operations may include providing a voice assistant while running an application that uses at least one microphone.
- processor 120 may detect a command to invoke a voice assistant.
- the command to call the voice assistant is when the user requests the voice assistant.
- the user can utter a designated voice call word (eg, Hi Bixby) or press a button related to the voice assistant.
- the processor 120 may detect whether the voice call word is input through at least one microphone or whether the button is selected while running an application that uses at least one microphone.
- the processor 120 may process the voice assistant in a private mode regardless of the mode (e.g., public mode, private mode) set for the voice assistant. there is.
- the processor 120 can control (or process) the voice assistant to be called only with a button.
- processor 120 may invoke a voice assistant.
- a voice call word is detected or a button is selected
- the processor 120 determines that the voice assistant is being called and may call the voice assistant.
- a voice assistant can be provided to the user by calling the voice assistant.
- the processor 120 may output voice feedback.
- the voice feedback is feedback for the voice call and may include audio data such as ‘How can I help you?’
- the processor 120 may output audio feedback through the audio output module 155.
- the voice feedback output may be omitted. That is, if the user presses a button without giving a voice command, the processor 120 may not provide voice feedback.
- the processor 120 may output voice feedback by the voice assistant.
- the processor 120 may display a user interface associated with voice feedback (eg, text corresponding to voice feedback) on a display (eg, display module 160 of FIG. 1). For example, the user interface associated with the voice feedback may be provided as a pop-up window.
- the processor 120 may control the voice feedback output according to the private mode setting of the voice assistant. For example, when a voice call is requested during a call, the processor 120 may output voice feedback through the audio output module 155 and not transmit it to the other party's electronic device if the voice assistant operates in a private mode. there is. When a voice call is requested during a call, the processor 120 can output voice feedback through the audio output module 155 and transmit it to the other party's electronic device when the voice assistant is set to public mode (public mode or open mode). there is.
- public mode public mode or open mode
- processor 120 may receive a voice command.
- the processor 120 may receive a voice command (e.g., tell me the weather today) from the user, decode (or analyze) the received voice command, and obtain result data.
- the voice command may be something the user says to the voice assistant after the user calls the voice assistant.
- the processor 120 may display text associated with the received voice command on the display module 160. Text associated with the received voice command may be provided as a pop-up window. For example, when a user receives a voice command while talking on the phone, text associated with the received voice command may be displayed in a pop-up window on the execution screen of the phone application.
- the processor 120 may provide result data corresponding to the received voice command.
- the result data may be a result provided by the voice assistant after analyzing the voice command.
- the processor 120 can output the result data through the audio output module 155 and transmit it to the other party's electronic device.
- the processor 120 may display a user interface associated with the result data on the display module 160.
- the user interface associated with the result data may be provided as a pop-up window on the execution screen of the phone application.
- the processor 120 may switch the execution screen of the phone application to a user interface associated with the result data (eg, change the display).
- the processor 120 may request input of a voice command if no voice command is input for a set period of time (e.g., 3 seconds, 5 seconds).
- FIG. 4 is a conceptual diagram illustrating processing of a user's voice and audio of a voice assistant during a call in an electronic device according to an embodiment.
- a user (user 1) of an electronic device e.g., electronic device 101 of FIG. 1
- the other electronic device 410 e.g., electronic device 102 of FIG. 1.
- the drawing illustrates a one-on-one call between a user and the other party, the same can be applied to a group call between the user and multiple other parties.
- the electronic device 101 and the other party's electronic device 410 are on the phone, the user's voice spoken to the other party is indicated as 1-a, 1-b, 1-c, and 1-d, and voice data related to the voice assistant is indicated as 2.
- the user's voice is acquired through at least one microphone of the electronic device 101 (1-a) and transmitted to the audio DSP (e.g., the audio DSP 250 in FIG. 2) of the electronic device 101 (1-a) -b) and can be transmitted to CP.
- the other party's electronic device 410 receives the user's voice through the network, transfers it from the CP of the other party's electronic device 410 to the audio DSP (1-c), and outputs it through the audio output module 155 (1-d). ) can be.
- voice data includes voice call words (e.g. Hi Bixby, OK Google), voice feedback (e.g. How can I help you?), voice commands (e.g. Tell me what's tomorrow's schedule), and result data (e.g. tomorrow is 1 o'clock). There is a meeting at) can be included.
- voice call words e.g. Hi Bixby, OK Google
- voice feedback e.g. How can I help you?
- voice commands e.g. Tell me what's tomorrow's schedule
- result data e.g. Tomorrow is 1 o'clock
- a voice call word or voice command may be input (2-a) from the user through at least one microphone, transmitted (2-b) to the audio DSP 250, and transmitted to the CP.
- the voice call word or voice command (2-c) may be transmitted to the voice assistant application.
- the other party's electronic device 410 receives the voice call word through the network, transfers it from the CP of the other party's electronic device 410 to the audio DSP (2-d), and outputs it through the audio output module 155 (1- e) It can be.
- Voice feedback or result data is generated (3-a) in the voice assistant application, transmitted (3-b) to the audio output module 155 for output to the user, and transmitted to the CP for transmission to the other party's electronic device 410. It can be delivered (3-d).
- the voice assistant application can interpret voice commands, execute commands, and generate result data (3-a).
- Voice feedback or result data transmitted to the audio output module 155 may be output (3-c) through the audio output module 155.
- the other party's electronic device 410 receives voice feedback or result data through a network, is transmitted (3-e) from the CP of the other party's electronic device 410 to the audio DSP, and outputs it through the audio output module 155 ( 3-f) can be.
- FIG. 5 is a flowchart 500 illustrating a method of providing a voice assistant during a call in an electronic device according to an embodiment.
- Figure 5 may be a slightly more specific version of the operation of Figure 3.
- a processor e.g., the processor 120 of FIG. 1 or the audio DSP 250 of FIG. 2 of an electronic device (e.g., the electronic device 101 of FIG. 1) according to an embodiment.
- at least one microphone may be used to acquire the user's voice (e.g., the input module of FIG. 1).
- an application using 150) is running, a voice call can be detected when the user requests a voice assistant. For example, the user utters a predetermined voice call word or speaks with the voice assistant.
- the processor 120 can press a related button and detect whether the voice call word is input through at least one microphone or whether the button is selected while an application using at least one microphone is running.
- the voice call may be input not only from the user of the electronic device 101 but also from the other party making the call. If the other party makes a voice call, there may be a risk of user information of the electronic device 101 being leaked.
- the user can set the voice assistant application to enable (e.g., allow voice calls/commands (On)) or disable (e.g., disallow voice calls/commands (Off)) the voice call by the other party.
- the processor 120 can detect whether a voice call is included in the other party's voice received from the other party's electronic device (e.g., the other party's electronic device 410 in FIG. 4).
- the processor 120 When set to allow voice call/command, the processor 120 uses the result of the Call Rx Solution (e.g., the Call Rx Solution (258) in FIG. 2) within the audio DSP (e.g., the audio DSP (250) in FIG. 2) as a Voice Trigger. It can be passed to Solution(257). If the processor 120 is set to disallow voice calls/commands, the processor 120 may not detect whether the other party's voice received from the other party's electronic device 410 includes a voice call word. If the processor 120 is set to disallow voice calls/commands, it may not transmit the results of the Call Rx Solution (258) to the Voice Trigger Solution (257).
- the Process 120 uses the result of the Call Rx Solution (e.g., the Call Rx Solution (258) in FIG. 2) within the audio DSP (e.g., the audio DSP (250) in FIG. 2) as a Voice Trigger. It can be passed to Solution(257). If the processor 120 is set to disallow voice calls/commands, the processor
- the processor 120 may detect whether a voice call word is included from the other party's voice. there is.
- the processor 120 may disallow a voice call command from another person to the voice assistant and may not detect whether the other person's voice contains a voice call word.
- the processor 120 processes the voice assistant (e.g., voice command) regardless of the mode (e.g., public mode, private mode) set in the voice assistant. , result data) can be processed in private mode.
- the processor 120 can control (or process) the voice assistant to be called only with a button.
- processor 120 may invoke a voice assistant.
- the processor 120 may enter a sleep mode to minimize current consumption.
- the audio DSP eg, audio DSP 250 in FIG. 2
- the audio DSP may call a voice assistant and cause the processor 120 to switch from the sleep mode to the normal mode.
- processor 120 may determine whether the voice assistant is in private mode.
- the private mode may be set to protect user information of the electronic device 101. If the private mode is not set (e.g., set to public mode), the processor 120 provides voice related to the voice assistant to the other party's electronic device 410, and selectively provides voice information to the other party's electronic device 410 according to the voice data. ) can be provided. When the private mode is set, the processor 120 may not provide voice related to the voice assistant to the other party's electronic device 410.
- the processor 120 may perform operation 507 when not operating in a private mode, and may perform operation 521 when operating in a private mode.
- the processor 120 may output and transmit voice feedback.
- the voice feedback is feedback for the voice call and may include audio data such as ‘How can I help you?’
- the voice feedback may be provided by a voice assistant application in response to a voice call.
- the processor 120 can output voice feedback through the audio output module 155 and transmit it to the electronic device 410 of the other party on the call.
- an external output device eg, earphones
- the processor 120 may output the voice feedback through the external output device.
- the processor 120 may display a user interface associated with voice feedback on a display (e.g., the display module 160 of FIG. 1).
- the user interface associated with the voice feedback may be a pop-up window. It can be provided as .
- processor 120 may receive a voice command.
- the voice command may be obtained from the user of the electronic device 101 through at least one microphone (eg, input module 150 of FIG. 1).
- the processor 120 may request input of a voice command if the voice command is not input for a set time (e.g., the set time is exceeded).
- the processor 120 may display text associated with the received voice command on the display module 160. Text associated with the received voice command may be provided as a pop-up window. For example, when a user receives a voice command while talking on the phone, text associated with the received voice command may be displayed in a pop-up window on the execution screen of the phone application.
- the processor 120 may determine whether the voice command includes personal information. For example, whether the voice command is a question that does not contain personal information, such as weather, making a call, sending a message, taking a photo, playing music, or asking questions such as messages, emails, calendar events, contacts, reminders, call history, smart phone, etc. You can determine whether the question includes personal information, such as home control.
- personal information such as weather, making a call, sending a message, taking a photo, playing music, or asking questions such as messages, emails, calendar events, contacts, reminders, call history, smart phone, etc. You can determine whether the question includes personal information, such as home control.
- the processor 120 may perform operation 525 if the voice command includes personal information, and may perform operation 513 if the voice command does not include personal information.
- the processor 120 may transmit the voice command received through at least one microphone 150 to the other party's electronic device 410.
- the processor 120 when operating in public mode, it is determined whether the voice call/command is set to 'allow', and if the voice call/command is set to 'allow', the processor 120 receives the voice call/command from the other party's electronic device 410. It can be determined whether the voice caller is included in the other party's voice.
- FIG. 5 will describe an example of receiving a voice call and voice command from a user. The present invention is not limited by the description.
- the processor 120 may output and transmit result data corresponding to the voice command.
- the voice assistant application can interpret the voice command and generate result data. For example, if the voice command is ‘Tell me the weather today,’ the resulting data is ‘It’s sunny today.’ It could be 'The current temperature is 23 degrees and the humidity is 65%.'
- the processor 120 can output the result data to the audio output module 155 and transmit it to the other party's electronic device 410. If an external output device (eg, earphones) is connected to the electronic device 101, the processor 120 may output the result data through the external output device.
- an external output device eg, earphones
- the processor 120 may display a user interface associated with the result data on the display module 160.
- the user interface associated with the result data may be provided as a pop-up window on the execution screen of the phone application.
- the processor 120 may convert the execution screen of the phone application to a user interface associated with the result data.
- the processor 521 may output voice feedback.
- the processor 521 When operating in a private mode, the processor 521 outputs voice feedback to the audio output module 155 and may not transmit voice feedback to the other party's electronic device 410.
- voice feedback provided by a voice assistant application can be written to the PCM Playback (251) within the audio DSP (250).
- Voice Trigger Solution (257) reads voice feedback from PCM Playback (251) and transmits it to AIF0 (271), and may not transmit it to Call Tx Task (e.g., Call Tx Task (256) in FIG. 2).
- Processor (120) ) can output the voice feedback through the external output device (e.g., earphones) when an external output device (e.g., earphone) is connected to the electronic device 101.
- the external output device e.g., earphones
- the processor 521 may receive a voice command.
- the voice command may be obtained from the user of the electronic device 101 through the input module 150.
- a voice command received through at least one microphone 150 may only be transmitted to the voice assistant application and may not be transmitted to the other party's electronic device 410.
- the processor 521 may output result data corresponding to the voice command.
- the voice assistant application can interpret the voice command and generate result data.
- the processor 120 When operating in a private mode, the processor 120 outputs the result data to the audio output module 155 and may not transmit it to the other party's electronic device 410. Even when operating in a public mode, if the voice command includes personal information, the processor 120 outputs the result data to the audio output module 155 and may not transmit it to the other party's electronic device 410. . If an external output device (eg, earphones) is connected to the electronic device 101, the processor 120 may output the result data through the external output device.
- an external output device eg, earphones
- FIG. 6A is a diagram illustrating a framework for processing audio during a call in an electronic device according to an embodiment.
- an electronic device may control input and output of audio data during a call.
- the electronic device 101 may save current consumption by switching the processor 120 to a sleep mode.
- Audio input data is input into the audio DSP (e.g., audio DSP 250 in FIG. 2) from at least one microphone (e.g., MIC1, MIC2) through AIF1 (audio interface number 1) 272, and is input through DMA and Call It is input to CP through Tx Solution (e.g., Call Tx Solution (259) in FIG. 2) and Call Tx Task (e.g., Call Tx Task (256) in FIG.
- Tx Solution e.g., Call Tx Solution (259) in FIG. 2
- Call Tx Task e.g., Call Tx Task (256) in FIG.
- the audio input data may include the user's voice and surrounding sounds.
- the Call Tx Solution 259 can improve the sound quality of the audio input data by receiving audio output data output from the audio output module 155 (e.g., SPK1, SPK2) of the electronic device 101 as reference data. Call Tx Solution 259 can remove howling, echo, or noise from audio input data based on reference data. Audio input data that has gone through Call Tx Solution (259) is good sound quality data with improved noise and echo, and can be transmitted as Call Tx data to Call Tx Task (256) and input into Voice Trigger Solution (257). . Data entered into the Voice Trigger Solution (257) can be determined to be a voice call in the internal block (A).
- Audio output data is input into the audio DSP 250 from the other party's electronic device 410 through CP, and is processed through Call Rx Task (e.g., Call Rx Task 255 in FIG. 2) and Call Rx Solution (e.g., in FIG. 2). It can be output to the sound output module 155 (e.g., SPK1, SPK2) through Call Rx Solution (258) and DMA.
- the audio output data may include the other party's voice and surrounding sounds. Audio output data that has passed through Call Rx Solution (258) is good sound quality data with improved noise and echo, and can be transmitted to AIF0 (audio interface number 0) (271) and input into Voice Trigger Solution (257). .
- the voice assistant application may be set to enable (e.g., allow voice calls/commands (On)) or disable (e.g., disallow voice calls/commands (Off)) voice calls by the other party. If the voice assistant application is set to enable voice calls by the other party, audio output data that has passed through the Call Rx Solution (258) can be input to the Voice Trigger Solution (257). If the voice assistant application is not set to enable voice calls by the other party, the audio output data that has passed through the Call Rx Solution (258) is only transmitted to AIF0 (271) and may not be input to the Voice Trigger Solution (257). . According to one embodiment, when the voice assistant is set to private mode, the audio DSP 250 can process the voice call to be disabled by the other party (e.g., voice call/command is disabled (Off)).
- FIG. 6B is a diagram illustrating a framework for providing a voice assistant during a call in an electronic device according to an embodiment.
- the A block of the Voice Trigger Solution (257) recognizes a voice call during a call
- the A block generates an AP wake up interrupt and delivers the trigger event to the voice assistant application. Yes (example: 1).
- the processing path of audio during a call may be the same as in FIG. 6A. If a voice call is detected while processing audio as shown in FIG. 6A, a processing path may be added as shown in FIG. 6B.
- the voice assistant application When the voice assistant application receives a trigger event, it opens PCM Playback (e.g., PCM Playback (251) in Figure 2) to inform the user that the voice assistant (or voice AI) is waiting to receive a voice command. : 3), and voice feedback can be output.
- PCM Playback e.g., PCM Playback (251) in Figure 2
- Voice feedback can be a short notification tone or “Okay, how can I help you?” It can be voice feedback such as .
- the voice feedback is output to the audio output module 155 through DMA and AIF0 (271) through PCM Playback (251), and is transmitted to Call Tx Task (256) to be transmitted to the other party's electronic device (410) through CP. You can.
- the audio DSP 250 may open the PCM Capture 252 to obtain a voice command (e.g., a user voice command) from at least one microphone (e.g., 4).
- voice commands may include 'What's the weather like tomorrow?', 'Tell me what's planned for tonight', or 'End the call.
- the voice assistant application can understand voice commands and generate result data.
- a private mode can be set in the voice assistant application to protect personal information. When private mode is off (e.g. not set) (e.g. set to public mode), voice commands and resulting data are sent to the audio output module 155 via DMA and AIF0 271 via PCM Playback 251. It can be output, delivered to the Call Tx Task (256), and delivered to the other party's electronic device (410) through CP.
- the Mute/UnMute control in the audio DSP 250 is processed through processes (2-a) and (2-b) to transmit the voice to the other party.
- Audio data output by the assistant e.g. voice feedback, result data
- voice data e.g. voice commands
- the voice command and result data are output to the audio output module 155 through DMA and AIF0 271 through PCM Playback 251. , may be transmitted to the Call Tx Task (256) and transmitted to the other party's electronic device (410) through CP.
- the voice assistant application is set to public mode, the call can be made through buttons related to the voice assistant (e.g., H/W key, S/W button).
- a voice command e.g., user voice command
- the voice command or result data is transmitted to the other electronic device. It can be sent to (410).
- FIG. 6C is a diagram illustrating a framework for providing a voice assistant during a call in an electronic device according to an embodiment.
- the A block of the Voice Trigger Solution when the A block of the Voice Trigger Solution (257) recognizes a voice call during a call, the A block generates an AP wake up interrupt and delivers the trigger event to the voice assistant application. Yes (example: 1).
- the voice assistant application When the voice assistant application receives a trigger event, it opens a PCM Playback (e.g., PCM Playback (251) in FIG. 2) to inform the user that the voice assistant (or voice AI) is waiting to receive a voice command (e.g. : 3), and voice feedback can be output.
- the audio DSP 250 may open the PCM Capture 252 to obtain a voice command (e.g., a user voice command) from at least one microphone (e.g., 4).
- a private mode is set in the voice assistant application (e.g. Mute), so voice commands and result data are output to the audio output module 155 through DMA and AIF0 271 through PCM Playback 251, It may not be delivered to Call Tx Task (256). Voice commands and result data may be muted and not transmitted to the other party's electronic device 410.
- voice assistant application e.g. Mute
- voice commands and result data are output to the audio output module 155 through DMA and AIF0 271 through PCM Playback 251, It may not be delivered to Call Tx Task (256).
- Voice commands and result data may be muted and not transmitted to the other party's electronic device 410.
- the voice caller is differentiated from the normal call voice (e.g. the user's voice) and is muted/activated. UnMute can be difficult to handle.
- the voice caller may be transmitted to the other party's electronic device 410 during a call.
- a button related to the voice assistant e.g. H/W key, S/W button
- the action of outputting voice call words and voice feedback for voice call words may be omitted (or skipped). there is.
- voice commands e.g., user voice commands
- the private mode is set in the voice assistant application.
- the voice command or result data may be muted and not transmitted to the other party's electronic device 410.
- FIGS. 7A and 7B are diagrams illustrating a framework for processing audio based on a private mode setting in an electronic device according to an embodiment.
- the voice assistant application can interpret voice commands, convert the resulting data into voice, and output it.
- the resulting data e.g., audio output data
- the processor e.g., processor 120 in FIG. 1 of the electronic device (e.g., electronic device 101 in FIG. 1) opens (e.g., 1) the PCM Playback (251) and writes the resulting data to the PCM Playback (251).
- the resulting data is transmitted to the Voice Trigger Solution (257), output to the audio output module (155) (SPK1, SPK2) through DMA and AIF0 (271), and transmitted to the other party of the call through DMA and BUS ( 260) and can be transmitted to the other party's electronic device 410 through CP.
- the voice assistant application uses Block B in the Voice Trigger Solution (257) depending on the status of the private mode.
- output data delivered to the Call Tx Task (256) can be Mute/UnMute processed (e.g. 3).
- the Call Tx Solution (259) is processed as UnMute, and the data transmitted from the Voice Trigger Solution (257) to the CP is processed as Mute, resulting in the message 'Gangnam Station Dongchang at 8 o'clock this evening. There is a meeting.' Information such as this may not be conveyed to the other party.
- FIG. 8 is a diagram illustrating an example of using the other party's voice as a voice call in an electronic device according to an embodiment.
- an electronic device e.g., the electronic device 101 of FIG. 1
- Block A inside the Voice Trigger Solution can receive the other party's voice input from the Call Rx solution (258).
- Block A can detect whether the other party's voice contains a voice call word.
- the electronic device 101 can check whether the other party's electronic device (e.g., the other party's electronic device 410 in FIG. 4) supports the voice assistant. If it is confirmed that the other party's electronic device 410 supports the voice assistant, the electronic device 101 can set the other party to prevent the other party from calling the user's voice assistant during a call (e.g., to refrain from calling). If the electronic device 101 determines that the other party's electronic device 410 does not support the voice assistant, the other party can call the voice assistant and give a voice command during a call with the user.
- the user can set the voice assistant application to enable (e.g., allow voice calls/commands (On)) or disable (e.g., disallow voice calls/commands (Off)) the voice call by the other party.
- the processor e.g., processor 120
- the processor 120 can detect whether the other party's voice received from the other party's electronic device 410 includes a voice call word.
- the processor 120 can transmit the results of the Call Rx Solution (258) in the audio DSP (250) to the Voice Trigger Solution (257).
- the processor 120 may not detect whether the other party's voice received from the other party's electronic device 410 includes a voice call word. If the processor 120 is set to disallow voice calls/commands, it may not transmit the results of the Call Rx Solution (258) to the Voice Trigger Solution (257).
- FIG. 9 is a flowchart 900 illustrating a method of providing a voice assistant during a call in an electronic device according to an embodiment.
- a processor e.g., processor 120 of FIG. 1 of an electronic device (e.g., electronic device 101 of FIG. 1) according to an embodiment detects a voice assistant call during a call. can do.
- at least one microphone may be used to acquire the user's voice.
- the processor 120 may detect a user input that calls a voice assistant while an application using at least one microphone is running.
- the user input refers to the user requesting a voice assistant.
- the user may utter a predetermined voice call word or press a button related to the voice assistant.
- the processor 120 may detect whether a voice call is input through at least one microphone or detect whether a predetermined button is selected while an application using at least one microphone is executed.
- processor 120 may determine whether the voice assistant has made a voice call. Invoking the voice assistant may be possible through the user's speech or button selection. The processor 120 may perform operation 905 if the voice assistant is a voice call, and may perform operation 921 if the voice assistant is not a voice call.
- the processor 120 may determine whether the call is in private mode.
- the voice assistant application may be set to a private mode to protect the user's personal information.
- the processor 120 may determine whether a private mode is set in the voice assistant application.
- the processor 120 may perform operation 521 of FIG. 5 when the voice assistant application operates in a private mode, and may perform operation 907 when the voice assistant application does not operate in a private mode.
- the processor 120 When the voice assistant application operates in a private mode, the processor 120 returns to operation 521 of FIG. 5 to output voice feedback only to the audio output module 155 and perform an operation without transmitting it to the other party's electronic device. there is.
- the processor 120 may output and transmit voice feedback.
- the voice feedback is feedback for the voice call and may include audio data such as ‘How can I help you?’
- the voice feedback may be provided by a voice assistant application in response to a voice call.
- the processor 120 may output voice feedback through the audio output module 155 and transmit it to the other party's electronic device (eg, the other party's electronic device 410 in FIG. 4).
- an external output device eg, earphones
- the processor 120 may output the voice feedback through the external output device.
- processor 120 may receive a voice command.
- the voice command may be obtained from the user of the electronic device 101 through at least one microphone (eg, input module 150 of FIG. 1).
- the processor 120 may determine whether the voice command includes personal information. For example, whether the voice command is a question that does not contain personal information, such as weather, making a call, sending a message, taking a photo, playing music, or asking questions such as messages, emails, calendar events, contacts, reminders, call history, smart phone, etc. You can determine whether the question includes personal information, such as home control.
- personal information such as weather, making a call, sending a message, taking a photo, playing music, or asking questions such as messages, emails, calendar events, contacts, reminders, call history, smart phone, etc. You can determine whether the question includes personal information, such as home control.
- the processor 120 may perform operation 925 if the voice command includes personal information, and may perform operation 913 if the voice command does not include personal information.
- the processor 120 may transmit the voice command received through at least one microphone 150 to the other party's electronic device 410.
- the processor 120 may output and transmit result data corresponding to the voice command.
- the voice assistant application can interpret the voice command and generate result data. For example, if the voice command is ‘Tell me the weather today,’ the resulting data is ‘It’s sunny today.’ It could be 'The current temperature is 23 degrees and the humidity is 65%.'
- the processor 120 can output the result data to the audio output module 155 and transmit it to the other party's electronic device 410. If an external output device (eg, earphones) is connected to the electronic device 101, the processor 120 may output the result data through the external output device.
- an external output device eg, earphones
- processor 120 may determine whether the call is in private mode.
- the processor 120 may determine whether a private mode is set in the voice assistant application.
- the processor 120 may perform operation 523 of FIG. 5 when the voice assistant application operates in a private mode, and may perform operation 909 when the voice assistant application does not operate in a private mode.
- the processor 120 may skip the operation of outputting voice feedback and receive a voice command.
- the processor 120 may obtain the voice command from the user of the electronic device 101 through the input module 150.
- the processor 120 may not provide voice feedback. The processor 120 can immediately receive a voice command when a button is selected by the user.
- processor 120 may output result data.
- the voice assistant application can interpret the voice command and generate result data.
- the processor 120 When operating in a private mode, the processor 120 outputs the result data to the audio output module 155 and may not transmit it to the other party's electronic device 410. Even when operating in a public mode, if the voice command includes personal information, the processor 120 outputs the result data to the audio output module 155 and may not transmit it to the other party's electronic device 410. .
- an external output device eg, earphones
- the processor 120 may output the result data through the external output device.
- FIG. 10 is another diagram illustrating a framework for processing audio during a call in an electronic device according to an embodiment.
- an electronic device e.g., the electronic device 101 of FIG. 1
- AP Call may include network calls through AP, such as Skype, Kakaotalk, and Google Duo.
- AP call operation e.g., the operation in FIG. 5
- the overall operation may be the same, with the only difference being that the voice assistant operation support structure and PCM data input and output to the CP are input and output to the AP.
- the processor e.g., processor 120 in FIG. 1
- Audio input data is input into the audio DSP (e.g., audio DSP 250 in FIG.
- the AP Call application can read audio input data stored in PCM Capture (245).
- the AP Call application can transmit audio input data to the other party's electronic device (e.g., the other party's electronic device 410 in FIG. 4).
- the audio input data may include the user's voice and surrounding sounds.
- the Call Tx Solution 259 can improve the sound quality of the audio input data by receiving audio output data output from the audio output module 155 (e.g., SPK1, SPK2) of the electronic device 101 as reference data.
- Call Tx Solution 259 can remove howling, echo, or noise from audio input data based on reference data.
- the audio input data that has gone through the Call Tx Solution (259) is good sound quality data with improved noise and echo, and can be transmitted to the AP Call application as Call Tx data and input into the Voice Trigger Solution (257).
- Data entered into the Voice Trigger Solution (257) can be determined to be a voice call in the internal block (A).
- Audio output data is received from the other party's electronic device 410 and can be written to the PCM Playback 253 of the audio DSP 250 through the AP Call application. Audio output data stored in the PCM Playback 253 may be output to the audio output module 155 (e.g. SPK1, SPK2) through Call Rx Solution (e.g. Call Rx Solution 258 in FIG. 2) and DMA. The audio output data may include the other party's voice and surrounding sounds.
- the audio output data that has passed through the Call Rx Solution (258) is good sound quality data with improved noise and echo, and can be transmitted to AIF0 (271) and input into the Voice Trigger Solution (257).
- the voice assistant application may be set to enable (e.g., allow voice calls/commands (On)) or disable (e.g., disallow voice calls/commands (Off)) voice calls by the other party. If the voice assistant application is set to enable voice calls by the other party, audio output data that has passed through the Call Rx Solution (258) can be input to the Voice Trigger Solution (257). If the voice assistant application is not set to enable voice calls by the other party, the audio output data that has passed through the Call Rx Solution (258) is only transmitted to AIF0 (271) and may not be input to the Voice Trigger Solution (257). .
- FIG. 11 is a diagram illustrating a framework for processing audio during voice recording in an electronic device according to an embodiment.
- an electronic device e.g., electronic device 101 of FIG. 1
- the processor e.g., processor 120 in FIG. 1
- Audio input data is input into the audio DSP (e.g., audio DSP 250 in FIG. 2) from at least one microphone (e.g., MIC1, MIC2) through AIF1 (272), and is transmitted to PCM Capture (254) through DMA. It can be saved.
- the Recording application can use audio input data stored in PCM Capture (254) as audio data for voice recording or video shooting. Audio input data acquired through at least one microphone is transmitted to the Voice Trigger Solution 257, and it can be determined in block A whether it is a voice call.
- Voice Trigger Solution 257 can deliver a voice call to the voice assistant application when the audio input data includes a voice call word or a button related to the voice assistant is selected.
- the voice assistant application writes voice feedback or result data to the PCM Playback (251), and the voice feedback or result data can be output through the audio output module 155 through DMA.
- Recording may include audio recording or video recording.
- the difference from AP Call or CP Call operation is that since there is no other party to the call, the voice input delivered to the application, the voice assistant feedback sound source, and the sound source resulting from command execution can be mixed and input.
- the feedback sound source output by the voice assistant and the sound source as a result of command execution can be saved together in the voice recording result or in the video recording data.
- the voice assistant application says, 'The current location is Haeundae Beach, Haeundae-gu, Busan.' It can be output to the audio output module 155 as follows. Voice commands and result data can be saved together when recording. When the recorded video data (or audio data) is output to SNS or streaming, the conversation content asked to the voice assistant and the voice assistant's answer are output together in the video, so the user watching the saved video can also hear the voice assistant's answer at the time of recording. We can listen together. In general recording apps, audio data is stored in the same way as in voice recording apps, and Mic usage scenarios in other 3rd party applications can also operate in the same way.
- a method of operating an electronic device includes executing an application using the microphone 150, receiving an input for calling a voice assistant while executing an application using the microphone, It may include an operation of controlling to call the voice assistant based on the input, and an operation of providing result data corresponding to a voice command received through the microphone.
- the method when the application is a phone application and the voice assistant operates in a private mode, outputs result data corresponding to the voice command through the sound output module, and outputs the voice command and/or the result data.
- the method includes, when the application is a phone application and the voice assistant operates in a public mode, checking whether the voice command contains personal information, and if the voice command contains personal information, the phone An operation of outputting the voice command or the result data through the audio output module without transmitting the voice command or the result data to the electronic device of the other party of the call performed by the application, and personal information included in the voice command If not, the operation of outputting the voice command or the result data through the audio output module and transmitting the voice command or the result data to the other party's electronic device may be further included.
- the method may further include checking whether the user's voice acquired through the microphone includes a voice call word, or whether the other party's voice received from the other party's electronic device includes a voice call word.
- the method includes, when the voice assistant operates in the public mode, calling the voice assistant based on the voice call word included in the other party's voice; and when the voice assistant operates in the private mode, the method includes: It may include an operation of refraining from calling the voice assistant based on the voice call word included in the other party's voice.
- a computer-readable recording medium recording a program for executing a method of operating an electronic device 101 on a processor includes an operation of executing an application using a microphone 150, and using the microphone. While executing an application, receiving an input for calling a voice assistant, controlling to call the voice assistant based on the input, and responding to a voice command received through the microphone. It may include a program for executing an operation that provides result data.
- 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 may refer to that component in other respects, such as 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). This term refers to cases where data is stored semi-permanently 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 via an application store (e.g. Play Store TM ) 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 Store TM
- 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 identically or similarly to 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.
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
Abstract
본 발명의 다양한 실시 예들은 마이크(150), 음향 출력 모듈(155), 메모리(130), 및 프로세서(120)를 포함할 수 있다. 상기 메모리에 저장된 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 사용하는 어플리케이션을 실행하고, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하고, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하고, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 것일 수 있다. 다양한 실시 예들이 가능하다.
Description
본 발명의 다양한 실시예들은 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치에 관하여 개시한다.
디지털 기술의 발달과 함께 이동통신 단말기, PDA(personal digital assistant), 전자수첩, 스마트 폰, 태블릿 PC(personal computer), 웨어러블 디바이스(wearable device)와 같은 다양한 유형의 전자 장치가 널리 사용되고 있다. 이러한, 전자 장치는 기능 지지 및 증대를 위해, 전자 장치의 하드웨어적인 부분 및/또는 소프트웨어적인 부분이 지속적으로 개량되고 있다.
일례로, 전자 장치는 사용자가 요구하는 작업을 처리하고, 사용자에게 특화된 서비스를 제공하는 보이스 어시스턴트(voice assistant) 서비스를 제공하고 있다. 보이스 어시스턴트는 인공 지능(artificial intelligence; AI) 엔진과 음성 인식을 기반으로 사용자에게 맞춤 정보를 수집하여 제공하고, 사용자의 음성 명령에 따라 일정 관리, 이메일 전송, 식당 예약 등 여러 작업을 수행할 수 있다. 이러한 보이스 어시스턴트는 각종 가전 기기나 차량에 탑재되면서 그 응용 범위가 더욱 확장되고 있다.
종래에는 전화 통화, 음성 녹음, 또는 비디오 촬영 중에는 마이크가 이미 사용되고 있어, 보이스 어시스턴트 서비스를 제공하지 못하고 있다. 특히, 전자 장치는 통화 중에는 마이크로 입력되는 데이터(예: 사용자 음성)를 오디오 처리하여, 커뮤니케이션 프로세서로 전달함으로써, 상대방 전자 장치로 음성 데이터를 전송하고 있다. 이렇게, 통화 중 오디오 처리 경로가 설정된 상태에서, 강제로 보이스 어시스턴트 서비스를 위하여 오디오 처리 경로를 변경할 경우 상대방 전자 장치로 전송하는 음성 데이터가 Mute 처리되어 상대방 전자 장치로 음성 데이터를 전달하지 못할 수 있다.
일 실시 예에서는, 마이크를 사용하는 어플리케이션(예: 전화, 음성 녹음, 비디오 촬영)을 실행한 상태에서 음성 호출(예: Hi, Bixby)을 감지하고, 음성 호출에 대한 음성 피드백을 제공하고, 음성 명령에 대한 기능을 수행하도록 하는 방법 및 장치에 관하여 개시할 수 있다.
본 발명의 일 실시 예에 따른 전자 장치는(101)는 마이크(150), 음향 출력 모듈(155), 메모리(130), 및 프로세서(120)를 포함하고, 상기 메모리에 저장된 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 사용하는 어플리케이션을 실행하고, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하고, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하고, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 것일 수 있다.
본 발명의 일 실시 예에 따른 전자 장치의 동작 방법은 마이크(150)를 사용하는 어플리케이션을 실행하는 동작, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하는 동작, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하는 동작, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 동작을 포함하는 동작을 포함할 수 있다.
본 발명의 일 실시 예에 따른 전자 장치(101)의 동작 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체는, 마이크(150)를 사용하는 어플리케이션을 실행하는 동작, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하는 동작, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하는 동작, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 동작을 실행시키기 위한 프로그램을 포함할 수 있다.
일 실시 예에 따르면, 마이크를 사용하는 어플리케이션을 사용하는 동안에도 보이스 어시스턴트를 호출할 수 있도록 오디오 처리 경로를 제어할 수 있다.
일 실시 예에 따르면, 전화 통화, 음성 녹음 또는 비디오 촬영 중에도 가상 비서 서비스를 사용 가능하도록 함으로써, 전자 장치의 사용성을 향상시킬 수 있다.
일 실시 예에 따르면, 전화 통화 중 현재 시간을 확인하거나, 일정을 등록하거나, 또는 네비게이션의 길찾기 하는 것과 같은 부가적인 동작을 보이스 어시스턴트를 통해 수행할 수 있도록 함으로써, 편리성을 제공할 수 있다.
일 실시 예에 따르면, 운전 중 통화 상태와 같이 사용자가 전자 장치를 조작하기 쉽지 않은 상태에서 보이스 어시스턴트를 이용할 수 있도록 함으로써, 사용자에게 편리함을 제공할 수 있다.
일 실시 예에 따르면, 통화하는 상대방과 현재 위치, 날씨, 일정과 같은 음성 명령에 따른 결과 데이터를 공유함으로써, 사용자의 전자 장치를 통해 통화하는 상대방에게 보이스 어시스턴트를 제공할 수 있다.
일 실시 예에 따르면, 음성 명령하거나, 음성 명령에 따른 결과 데이터를 제공함에 있어서 비공개 모드를 설정 가능하게 함으로써, 사용자의 개인 정보를 보호하면서, 상대방과 보이스 어시스턴트를 공유할 수 있다.
일 실시 예에 따르면, 보이스 어시스턴트와 관련된 부품(예: IC)를 포함하지 않고도 커널 단에서 오디오를 처리하는 경로 제어를 통해 보이스 어시스턴트를 제공함으로써, 전자 장치의 공간을 효율적으로 활용하고, 비용을 절감시킬 수 있다.
도 1은 일 실시 예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 일 실시 예에 따른 전자 장치의 오디오 처리와 관련된 프레임워크를 도시한 도면이다.
도 3은 일 실시 예에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 4는 일 실시 예에 따른 전자 장치에서 통화하는 동안 사용자의 음성 및 보이스 어시스턴트의 오디오를 처리하는 개념도를 도시한 도면이다.
도 5는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트 서비스를 제공하는 방법을 도시한 흐름도이다.
도 6a 내지 도 6c는 일 실시 예에 따른 전자 장치에서 통화하는 동안 오디오를 처리하는 프레임워크를 도시한 도면들이다.
도 7a 및 도 7b는 일 실시 예에 따른 전자 장치에서 비공개 모드 설정에 기반하여 오디오를 처리하는 프레임워크를 도시한 도면들이다.
도 8은 일 실시 예에 따른 전자 장치에서 상대방 음성을 음성 호출로 사용하는 일례를 도시한 도면이다.
도 9는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트 서비스를 제공하는 방법을 도시한 흐름도이다.
도 10은 일 실시 예에 따른 전자 장치에서 통화하는 동안 오디오를 처리하는 프레임워크를 도시한 다른 도면이다.
도 11은 일 실시 예에 따른 전자 장치에서 음성 녹음하는 동안 오디오를 처리하는 프레임워크를 도시한 도면이다.
도 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는 일 실시 예에 따른 전자 장치의 오디오 처리와 관련된 프레임워크를 도시한 도면이다.
도 2를 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 오디오 처리와 관련된 프레임워크는 어플리케이션(210), 오디오 프레임워크(220), 오디오 HAL(hardware abstraction layer)(230), 커뮤니케이션 프로세서(240), 오디오 DSP(digital signal processor)(250), 및 하드웨어(280)를 포함할 수 있다. 어플리케이션(210), 오디오 프레임워크(220) 및 오디오 HAL(230)은 전자 장치(101)의 프로세서(예: 도 1의 프로세서(120))에 의해 제어될 수 있다. 커뮤니케이션 프로세서(240)는 CP Call 의 통화 사운드(예: 수신된 소리 및 전송된 소리)를 송/수신 받는 CP Network(241)와 CP Protocol(243)으로 구성될 수 있다. 커뮤니케이션 프로세서(240)는 통신 모듈(예: 도 1의 통신 모듈(190))을 통해 통화 사운드를 송신 또는 수신할 수 있다.
어플리케이션(210)은 전자 장치(101)에 설치된 어플리케이션으로서, 전화, 음악, 게임, 인터넷 전화(예: AP(access point) call), 보이스 어시스턴트, 또는 녹음을 포함할 수 있다. 오디오 DSP(250)는 커널에서 수행되는 것으로, 예를 들어, PCM(pulse code modulation) Playback(251), PCM Capture(252), PCM playback(253), PCM Capture(254), Call Rx Task(255), Call Tx Task(256), Voice Trigger Solution(257), Call Rx Solution(258), Call Tx Solution(259), Bus(260) AIF0(audio interface 0번)(271), 또는 AIF1(audio interface 1번)(272)를 포함할 수 있다. 오디오 DSP(250)는 복수의 DMA(direct memory access)를 포함할 수 있다. 커널은 AMP Driver(273), 또는 MIC Driver(274)을 포함할 수 있다. 하드웨어(280)는 제1 스피커(SPK1), 제2 스피커(SPK2), 제1 마이크(MIC1), 또는 제2 마이크(MIC2)를 포함할 수 있다.
PCM Playback(251), PCM Capture(252), PCM Playback(253), PCM Capture(254)는 파일 노드에 해당하고, 오디오(예: 오디오 파일)가 read 또는 write될 수 있다. 예를 들어, 어플리케이션(210)은 제1 스피커(SPK1) 또는 제2 스피커(SPK2)를 통해 출력할 오디오를 PCM Playback(251) 또는 PCM Playback(253)에 write할 수 있다. 오디오 DSP(250)는 제1 마이크(MIC1) 또는 제2 마이크(MIC2)에서 획득한 오디오를 PCM Capture(252) 또는 PCM Capture(254)에 write하고, 어플리케이션(210)은 PCM Capture(252) 또는 PCM Capture(254)에 저장된 오디오를 read할 수 있다.
Call Rx Task(255), Call Tx Task(256), Voice Trigger Solution(257), Call Rx Solution(258), Call Tx Solution(259)은 커뮤니케이션 프로세서(240)를 통한 전화 통화 시에 사용되는 노드일 수 있다. 전자 장치(101)는 커뮤니케이션 프로세서(240)의 CP Network(241) 및 CP Protocol(243)를 통해 상대방 전자 장치(예: 도 1의 전자 장치(102))로부터 오디오(예: 상대방 음성)(또는 오디오 데이터, 오디오 파일)를 수신할 수 있다. 수신된 오디오는 Call Rx Task(255) 및 Call Rx Solution(258)을 거쳐 제1 스피커(SPK1) 또는 제2 스피커(SPK2)를 통해 출력될 수 있다. Call Rx Solution(258)은 ECNS(echo cancellation and noise suppression technology) 처리된 음성 PCM 데이터를 Voice Trigger Solution(257)로 전달할 수 있다.
또한, 오디오 DSP(250)는 제1 마이크(MIC1) 또는 제2 마이크(MIC2)로부터 획득한 오디오(예: 사용자 음성)(또는 오디오 데이터, 오디오 파일)를 Call Tx Solution(259) 및 Call Tx Task(256)를 거쳐 커뮤니케이션 프로세서(240)로 전달할 수 있다. Call Tx Solution(259)은 ECNS 처리된 음성 PCM 데이터를 Call Tx Task(256) 및 Voice Trigger Solution(257)으로 전달할 수 있다. Call Tx Solution(259)은 기존 Call Audio path와 동일하게 Call Tx Task(256)로 마이크로부터 획득한 오디오 데이터를 전달하여 통화 음성이 끊기지 않도록 할 수 있다.
전자 장치(101)는 적어도 하나의 마이크를 사용하는 어플리케이션(예: 전화, AP Call, 녹음)을 실행한 상태에서 오디오(또는 오디오 신호)의 처리 경로를 제어하여 보이스 어시스턴트 서비스를 제공할 수 있다. 사용자가 전자 장치(101)를 통해 다른 동작을 수행하지 않고 전화만 수행하는 경우, 프로세서(120)는 슬립 모드에 진입하여 소모 전류를 최소화할 수 있다. 각 어플리케이션에 따라 처리되는 음성 신호의 처리 경로는 이하 도면을 통해 상세히 설명하기로 한다.
본 발명의 일 실시 예에 따른 전자 장치는(101)는 마이크(150), 음향 출력 모듈(155), 메모리(130), 및 프로세서(120)를 포함하고, 상기 메모리에 저장된 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 사용하는 어플리케이션을 실행하고, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하고, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하고, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 어플리케이션이 전화 어플리케이션인 경우, 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 음성 명령어에 대응하는 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치(410)로 전송하지 않고, 및 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 상대 전자 장치로 전송하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 어플리케이션이 전화 어플리케이션이고, 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 음성 명령어에 개인 정보가 포함되어 있는지 확인하고, 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 상기 음성 명령어 또는 상기 결과 데이터를 전송하지 않고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 및 상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 상대방 전자 장치로 전송하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 통해 획득한 사용자 음성에 음성 호출어가 포함되어 있는지, 또는 상기 상대방 전자 장치로부터 수신된 상대방 음성에 음성 호출어가 포함되어 있는지 확인하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 상기 음성 호출어가 포함되어 있는지 확인하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하고, 및 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 것을 자제(refrain)하는 것일 수 있다.
상기 전자 장치는 음성 트리거 모듈(257)을 포함하는 오디오 디지털 신호 프로세서(audio digital signal processor, DSP)를 더 포함하고, 상기 음성 트리거 모듈은 상기 보이스 어시스턴트를 호출하도록 구성되고, 상기 보이스 어시스턴트를 호출하기 위한 입력은 발화에 의해 음성 호출어를 수신하거나, 상기 보이스 어시스턴트와 관련된 버튼을 선택하는 것을 포함하고, 상기 음성 명령어는 사용자가 상기 보이스 어시스턴트를 호출한 후에 상기 보이스 어시스턴트에게 말하는 것이며, 상기 결과 데이터는 상기 음성 명령어를 분석한 후 상기 보이스 어시스턴트에 의해 제공되는 결과인 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 어플리케이션이 전화 어플리케이션이고, 상기 음성 호출어에 의해 상기 보이스 어시스턴트가 호출되는 경우, 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 음성 피드백을 전송하지 않고, 상기 음향 출력 모듈을 통해 상기 음성 피드백을 출력하고, 및 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 보이스 어시스턴트에 의한 상기 음성 피드백을 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 피드백을 상기 상대방 전자 장치로 전송하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 이용한 상기 어플리케이션의 실행 화면에서 상기 전자 장치의 디스플레이(160)에 상기 음성 명령어 또는 상기 결과 데이터에 대응하는 텍스트를 표시하는 것일 수 있다.
상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 상기 마이크를 사용하는 어플리케이션이 녹음 어플리케이션인 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 녹음 어플리케이션의 녹음 데이터에 함께 저장하는 것일 수 있다.
도 3은 일 실시 예에 따른 전자 장치의 동작 방법을 도시한 흐름도(300)이다.
도 3을 참조하면, 동작 301에서, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 프로세서(예: 도 1의 프로세서(120))는 적어도 하나의 마이크(예: 도 1의 입력 모듈(150))를 사용하는 어플리케이션을 실행할 수 있다. 예를 들어, 상기 어플리케이션은 전화(예: 음성 통화, 영상 통화), 인터넷 전화, 음성 녹음 또는 비디오 촬영을 포함할 수 있다. 이하 동작들은 적어도 하나의 마이크를 사용하는 어플리케이션을 실행한 상태에서 보이스 어시스턴트를 제공하는 동작을 포함할 수 있다.
동작 303에서, 프로세서(120)(예: 도 2의 오디오 DSP(250))는 보이스 어시스턴트를 호출하는 명령을 감지할 수 있다. 상기 보이스 어시스턴트를 호출하는 명령은 사용자가 보이스 어시스턴트를 요청하는 것으로, 예를 들어, 사용자는 정해진 음성 호출어(예: Hi Bixby)를 발화하거나, 보이스 어시스턴트와 관련된 버튼을 누를 수 있다. 프로세서(120)는 적어도 하나의 마이크를 사용하는 어플리케이션을 실행한 상태에서 적어도 하나의 마이크를 통해 상기 음성 호출어가 입력되는지 감지하거나, 상기 버튼이 선택되는지 감지할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자로부터 보이스 어시스턴트와 관련된 버튼이 선택된 경우, 상기 보이스 어시스턴트에 설정된 모드(예: 공개 모드, 비공개 모드)와 상관없이 상기 보이스 어시스턴트를 비공개 모드로 처리할 수 있다. 사용자는 비공개 모드의 답변을 듣고 싶을 때는, 음성으로 보이스 어시스턴트를 호출하기 보다, 버튼을 누를 수 있다. 또는, 프로세서(120)는 보이스 어시스턴트가 비공개 모드인 경우, 버튼으로만 상기 보이스 어시스턴트를 호출할 수 있도록 제어(또는 처리)할 수 있다.
동작 305에서, 프로세서(120)(예: 오디오 DSP(250))는 보이스 어시스턴트를 호출할 수 있다. 프로세서(120)는 음성 호출어가 검출되거나, 버튼이 선택되면, 보이스 어시스턴트를 호출하는 것으로 판단하고 보이스 어시스턴트를 호출할 수 있다. 종래에는 적어도 하나의 마이크를 사용하는 동안에는 보이스 어시스턴트를 호출할 수 없었다. 그러나, 본 발명에서는 적어도 하나의 마이크를 사용하는 동안에도 음성 호출이 요청되면, 보이스 어시스턴트를 호출함으로써, 사용자에게 보이스 어시스턴트를 제공할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 음성 피드백을 출력할 수 있다. 상기 음성 피드백은 상기 음성 호출에 대한 피드백으로, 예를 들어 ‘무엇을 도와드릴까요?’와 같은 오디오 데이터를 포함할 수 있다. 프로세서(120)는 음향 출력 모듈(155)를 통해 음성 피드백을 출력할 수 있다. 일 실시 예에 따르면, 동작 303에서 사용자가 보이스 어시스턴트와 관련된 버튼을 선택한 경우, 음성 피드백 출력은 생략될 수 있다. 즉, 사용자가 음성으로 명령하지 않고, 버튼을 누른 경우, 프로세서(120)는 음성 피드백을 제공하지 않을 수 있다. 프로세서(120)는 상기 통화하는 동안 발화에 의한 음성 호출어가 감지되는 경우, 상기 보이스 어시스턴트에 의한 음성 피드백을 출력할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 음성 피드백과 연관된 사용자 인터페이스(예: 음성 피드백에 대응하는 텍스트)를 디스플레이(예: 도 1의 디스플레이 모듈(160))에 표시할 수 있다. 예를 들어, 상기 음성 피드백과 연관된 사용자 인터페이스는 팝업 윈도우로 제공될 수 있다.
일 실시 예에 따르면, 프로세서(120)는 보이스 어시스턴트의 비공개 모드(private mode) 설정에 따라 상기 음성 피드백 출력을 제어할 수 있다. 예를 들어, 통화 중 음성 호출이 요청된 경우, 프로세서(120)는 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 음성 피드백을 음향 출력 모듈(155)을 통해 출력하고, 상대방 전자 장치로 전송하지 않을 수 있다. 통화 중 음성 호출이 요청된 경우, 프로세서(120)는 보이스 어시스턴트가 공개 모드(public mode 또는 open mode)로 설정된 경우, 음성 피드백을 음향 출력 모듈(155)을 통해 출력하고, 상대방 전자 장치로 전송할 수 있다.
동작 307에서, 프로세서(120)는 음성 명령어를 수신할 수 있다. 프로세서(120)는 사용자로부터 음성 명령어(예: 오늘 날씨 알려줘)를 수신하고, 상기 수신된 음성 명령어를 해독(또는 분석)하여 결과 데이터를 획득할 수 있다. 상기 음성 명령어는 사용자가 상기 보이스 어시스턴트를 호출한 후에 상기 보이스 어시스턴트에게 사용자가 말하는 것일 수 있다. 일 실시 예에 따르면, 프로세서(120)는 상기 수신된 음성 명령어와 연관된 텍스트를 디스플레이 모듈(160)에 표시할 수 있다. 상기 수신된 음성 명령어와 연관된 텍스트는 팝업 윈도우로 제공될 수 있다. 예를 들어, 사용자가 전화 통화하는 중에 음성 명령어를 수신한 경우, 전화 어플리케이션의 실행 화면 상에 팝업 윈도우로 상기 수신된 음성 명령어와 연관된 텍스트를 표시할 수 있다.
동작 309에서, 프로세서(120)는 상기 수신된 음성 명령어에 대응하는 결과 데이터를 제공할 수 있다. 상기 결과 데이터는 상기 음성 명령어를 분석한 후 상기 보이스 어시스턴트에 의해 제공되는 결과일 수 있다. 프로세서(120)는 통화하는 동안, 상기 결과 데이터를 음향 출력 모듈(155)을 통해 출력하고, 상대방 전자 장치로 전송할 수 있다. 또는, 프로세서(120)는 통화하는 동안, 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 결과 데이터를 음향 출력 모듈(155)을 통해 출력하고, 상대방 전자 장치로 전송하지 않을 수 있다. 일 실시 예에 따르면, 프로세서(120)는 상기 결과 데이터와 연관된 사용자 인터페이스를 디스플레이 모듈(160)에 표시할 수 있다. 예를 들어, 상기 결과 데이터와 연관된 사용자 인터페이스는 전화 어플리케이션의 실행 화면 위에 팝업 윈도우로 제공될 수 있다. 또는, 프로세서(120)는 전화 어플리케이션의 실행 화면을 상기 결과 데이터와 연관된 사용자 인터페이스로 전환(예: 표시 변경)할 수 있다.
프로세서(120)는 정해진 시간(예: 3초, 5초) 동안 음성 명령이 입력되지 않은 경우, 음성 명령어를 입력해줄 것을 요청할 수 있다.
도 4는 일 실시 예에 따른 전자 장치에서 통화하는 동안 사용자의 음성 및 보이스 어시스턴트의 오디오를 처리하는 개념도를 도시한 도면이다.
도 4를 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 사용자(user 1)는 상대방 전자 장치(410)(예: 도 1의 전자 장치(102))의 상대방(user 2)과 통화하는 동안 보이스 어시스턴트를 요청할 수 있다. 도면에서는 사용자와 상대방의 일대일 통화를 예시하고 있지만, 사용자와 다수의 상대방들과 통화하는 그룹 통화에 대해서도 동일하게 적용할 수 있다. 전자 장치(101)와 상대방 전자 장치(410)가 통화하는 동안, 사용자가 상대방에게 말하는 사용자 음성은 1-a, 1-b, 1-c, 1-d로 나타내고, 보이스 어시스턴트 관련 음성 데이터는 2-a, 2-b, 2-c, 2-d, 2-e로 나타내거나, 3-a, 3-b, 3-c, 3-d, 3-e, 3-f로 나타낼 수 있다. 통화하는 동안 사용자 음성은 전자 장치(101)의 적어도 하나의 마이크를 통해 획득(1-a)되어, 전자 장치(101)의 오디오 DSP(예: 도 2의 오디오 DSP(250))로 전달(1-b)되어, CP로 전달될 수 있다. 상대방 전자 장치(410)는 네트워크 망을 통해 사용자 음성을 수신하고, 상대방 전자 장치(410)의 CP에서 오디오 DSP로 전달(1-c)되어, 음향 출력 모듈(155)을 통해 출력(1-d)될 수 있다.
통화하는 동안 음성 데이터는 음성 호출어(예: Hi Bixby, OK Google), 음성 피드백(예: 무엇을 도와드릴까요?), 음성 명령어(예: 내일 일정 알려줘) 및 결과 데이터(예: 내일은 1시에 미팅이 있습니다)를 포함할 수 있다.
예를 들어, 음성 호출어 또는 음성 명령어는 사용자로부터 적어도 하나의 마이크를 통해 입력(2-a)되고, 오디오 DSP(250)로 전달(2-b)되어, CP로 전달될 수 있다. 또한, 음성 호출어 또는 음성 명령어(2-c)는 보이스 어시스턴트 어플리케이션으로 전달될 수 있다. 상대방 전자 장치(410)는 네트워크 망을 통해 음성 호출어를 수신하고, 상대방 전자 장치(410)의 CP에서 오디오 DSP로 전달(2-d)되어, 음향 출력 모듈(155)을 통해 출력(1-e)될 수 있다.
음성 피드백 또는 결과 데이터는 보이스 어시스턴트 어플리케이션에서 생성(3-a)되어, 사용자에게 출력하기 위해 음향 출력 모듈(155)로 전달(3-b)되고, 상대방 전자 장치(410)로 전달하기 위해 CP로 전달(3-d)될 수 있다. 보이스 어시스턴트 어플리케이션은 음성 명령어를 해석하여 명령어를 수행하고, 결과 데이터를 생성(3-a)할 수 있다. 음향 출력 모듈(155)로 전달된 음성 피드백 또는 결과 데이터는 음향 출력 모듈(155)을 통해 출력(3-c)될 수 있다. 상대방 전자 장치(410)는 네트워크 망을 통해 음성 피드백 또는 결과 데이터를 수신하고, 상대방 전자 장치(410)의 CP에서 오디오 DSP로 전달(3-e)되어, 음향 출력 모듈(155)을 통해 출력(3-f)될 수 있다.
도 5는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트를 제공하는 방법을 도시한 흐름도(500)이다. 도 5는 도 3의 동작을 조금 더 구체화한 것일 수 있다.
도 5를 참조하면, 동작 501에서, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 오디오 DSP(250)는 통화 중 음성 호출을 검출할 수 있다. 통화 중에는 사용자의 음성을 획득하기 위하여 적어도 하나의 마이크가 사용되고 있는 상태일 수 있다. 프로세서(120)는 적어도 하나의 마이크(예: 도 1의 입력 모듈(150))를 사용하는 어플리케이션이 실행된 상태에서 음성 호출을 검출할 수 있다. 상기 음성 호출은 사용자가 보이스 어시스턴트를 요청하는 것으로, 예를 들어, 사용자는 정해진 음성 호출어를 발화하거나, 보이스 어시스턴트와 관련된 버튼을 누를 수 있다. 프로세서(120)는 적어도 하나의 마이크를 사용하는 어플리케이션을 실행한 상태에서 적어도 하나의 마이크를 통해 상기 음성 호출어가 입력되는지 감지하거나, 상기 버튼이 선택되는지 감지할 수 있다.
일 실시 예에 따르면, 상기 음성 호출은 전자 장치(101)의 사용자뿐만 아니라, 통화하는 상대방으로부터 입력될 수도 있다. 상대방이 음성 호출을 하게 되면 전자 장치(101)의 사용자 정보 유출의 위험이 있을 수 있다. 이를 위해, 사용자는 보이스 어시스턴트 어플리케이션에 통화 상대방에 의해 음성 호출이 가능(예: 음성 호출/명령 허용(On)) 또는 불가능(예: 음성 호출/명령 불허(Off)) 하도록 설정할 수 있다. 프로세서(120)는 음성 호출/명령 허용으로 설정된 경우, 상대방 전자 장치(예: 도 4의 상대방 전자 장치(410))로부터 수신된 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지할 수 있다. 프로세서(120)는 음성 호출/명령 허용으로 설정된 경우, 오디오 DSP(예: 도 2의 오디오 DSP(250)) 내의 Call Rx Solution(예: 도 2의 Call Rx Solution(258))의 결과를 Voice Trigger Solution(257)로 전달할 수 있다. 프로세서(120)는 음성 호출/명령 불허로 설정된 경우, 상대방 전자 장치(410)로부터 수신된 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지하지 않을 수 있다. 프로세서(120)는 음성 호출/명령 불허로 설정된 경우, Call Rx Solution(258)의 결과를 Voice Trigger Solution(257)로 전달하지 않을 수 있다.
일 실시예에 따르면, 프로세서(120)는 상기 보이스 어시스턴트가 공개 모드로 동작하고, 상기 보이스 어시스턴트에 타인에 의한 음성 호출 명령이 허용으로 설정된 경우, 상기 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 보이스 어시스턴트에 타인에 의한 음성 호출 명령이 불허로 처리하여, 상기 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지하지 않을 수 있다.
일 실시 예에 따르면, 프로세서(120)는 사용자로부터 보이스 어시스턴트와 관련된 버튼이 선택된 경우, 상기 보이스 어시스턴트에 설정된 모드(예: 공개 모드, 비공개 모드)와 상관없이 상기 보이스 어시스턴트의 처리(예: 음성 명령어, 결과 데이터)를 비공개 모드로 처리할 수 있다. 사용자는 비공개 모드의 답변을 듣고 싶을 때는, 음성으로 보이스 어시스턴트를 호출하기 보다, 버튼을 누를 수 있다. 또는, 프로세서(120)는 보이스 어시스턴트가 비공개 모드인 경우, 버튼으로만 상기 보이스 어시스턴트를 호출할 수 있도록 제어(또는 처리)할 수 있다.
동작 503에서, 프로세서(120)(또는 오디오 DSP(250))는 보이스 어시스턴트를 호출할 수 있다. 사용자가 전자 장치(101)를 통해 다른 동작을 수행하지 않고 전화만 수행하는 경우, 프로세서(120)는 슬립 모드에 진입하여 소모 전류를 최소화할 수 있다. 통화하는 중에 음성 호출어가 감지되면, 오디오 DSP(예: 도 2의 오디오 DSP(250))는 보이스 어시스턴트를 호출하여 프로세서(120)가 슬립 모드에서 일반 모드로 전환되도록 할 수 있다.
동작 505에서, 프로세서(120)(또는 오디오 DSP(250))는 보이스 어시스턴트가 비공개 모드인지 판단할 수 있다. 상기 비공개 모드는 전자 장치(101)의 사용자 정보 보호를 위해 설정되는 것일 수 있다. 상기 비공개 모드가 설정되어 있지 않은 경우(예: 공개 모드로 설정), 프로세서(120)는 보이스 어시스턴트와 관련된 음성을 상대방 전자 장치(410)로 제공하고, 음성 데이터에 따라 선택적으로 상대방 전자 장치(410)로 제공할 수 있다. 상기 비공개 모드가 설정되어 있는 경우, 프로세서(120)는 보이스 어시스턴트와 관련된 음성을 상대방 전자 장치(410)로 제공하지 않을 수 있다. 프로세서(120)는 비공개 모드로 동작하지 않은 경우 동작 507을 수행하고, 비공개 모드로 동작하는 경우 동작 521을 수행할 수 있다.
비공개 모드로 동작하지 않은 경우(예: 공개 모드로 동작하는 경우), 동작 507에서, 프로세서(120)는 음성 피드백을 출력 및 전송할 수 있다. 상기 음성 피드백은 상기 음성 호출에 대한 피드백으로, 예를 들어 ‘무엇을 도와드릴까요?’와 같은 오디오 데이터를 포함할 수 있다. 상기 음성 피드백은 음성 호출에 대응하여 보이스 어시스턴트 어플리케이션에서 제공하는 것일 수 있다. 프로세서(120)는 음향 출력 모듈(155)을 통해 음성 피드백을 출력하고, 통화하는 상대방 전자 장치(410)로 전송할 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 음성 피드백을 출력할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 음성 피드백과 연관된 사용자 인터페이스를 디스플레이(예: 도 1의 디스플레이 모듈(160)에 표시할 수 있다. 예를 들어, 상기 음성 피드백과 연관된 사용자 인터페이스는 팝업 윈도우로 제공될 수 있다.
동작 509에서, 프로세서(120)는 음성 명령어를 수신할 수 있다. 상기 음성 명령어는 전자 장치(101)의 사용자로부터 적어도 하나의 마이크(예: 도 1의 입력 모듈(150))를 통해 획득될 수 있다. 프로세서(120)는 정해진 시간 동안 음성 명령어가 입력되지 않은 경우(예: 정해진 시간 초과), 음성 명령어를 입력해줄 것을 요청할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 상기 수신된 음성 명령어와 연관된 텍스트를 디스플레이 모듈(160)에 표시할 수 있다. 상기 수신된 음성 명령어와 연관된 텍스트는 팝업 윈도우로 제공될 수 있다. 예를 들어, 사용자가 전화 통화하는 중에 음성 명령어를 수신한 경우, 전화 어플리케이션의 실행 화면 상에 팝업 윈도우로 상기 수신된 음성 명령어와 연관된 텍스트를 표시할 수 있다.
동작 511에서, 프로세서(120)는 상기 음성 명령어에 개인 정보가 포함되어 있는지 판단할 수 있다. 예를 들어, 상기 음성 명령어가 날씨, 전화걸기, 메시지 전송, 사진 촬영, 음악 재생과 같은 개인 정보가 포함되지 않은 질문에 해당하는지 또는, 메시지, 이메일, 캘린더 일정, 연락처, 리마인더, 통화기록, 스마트 홈 제어와 같이 개인 정보가 포함되는 질문에 해당하는지 여부를 판단할 수 있다.
프로세서(120)는 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 동작 525를 수행하고, 상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 동작 513을 수행할 수 있다.
상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 동작 513에서, 프로세서(120)는 적어도 하나의 마이크(150)를 통해 수신된 음성 명령어를 상대방 전자 장치(410)로 전송할 수 있다. 일 실시 예에 따르면, 공개 모드로 동작하는 경우, 음성 호출/명령 '허용'으로 설정되어 있는지 판단하고, 프로세서(120)는 음성 호출/명령 '허용'으로 설정된 경우, 상대방 전자 장치(410)로부터 수신되는 상대방의 음성에 음성 호출어가 포함되어 있는지 판단할 수 있다. 다만, 도 5의 설명은 사용자로부터 음성 호출 및 음성 명령을 수신하는 일례에 대해서 설명하기로 한다. 설명에 의해 본 발명이 제한되는 것은 아니다.
동작 515에서, 프로세서(120)는 상기 음성 명령어에 대응하는 결과 데이터를 출력 및 전송할 수 있다. 보이스 어시스턴트 어플리케이션은 상기 음성 명령어를 해석하여 결과 데이터를 생성할 수 있다. 예를 들어, 상기 음성 명령이 '오늘 날씨 알려줘'인 경우, 상기 결과 데이터는 '오늘은 화창한 날씨네요. 현재기온 23도, 습도는 65%입니다.'일 수 있다. 프로세서(120)는 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송할 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 결과 데이터를 출력할 수 있다.
일 실시 예에 따르면, 프로세서(120)는 상기 결과 데이터와 연관된 사용자 인터페이스를 디스플레이 모듈(160)에 표시할 수 있다. 예를 들어, 상기 결과 데이터와 연관된 사용자 인터페이스는 전화 어플리케이션의 실행 화면 위에 팝업 윈도우로 제공될 수 있다. 또는, 프로세서(120)는 전화 어플리케이션의 실행 화면을 상기 결과 데이터와 연관된 사용자 인터페이스로 전환할 수 있다.
비공개 모드로 동작하는 경우 동작 521에서, 프로세서(521)는 음성 피드백을 출력할 수 있다. 프로세서(521)는 비공개 모드로 동작하는 경우 음성 피드백을 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송하지 않을 수 있다. 예를 들어, 보이스 어시스턴트 어플리케이션에서 제공하는 음성 피드백은 오디오 DSP(250) 내에 PCM Playback(251)에 write될 수 있다. Voice Trigger Solution(257)은 PCM Playback(251)으로부터 음성 피드백을 읽어 AIF0(271)로 전달하고, Call Tx Task(예: 도 2의 Call Tx Task(256)로 전달하지 않을 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 음성 피드백을 출력할 수 있다.
동작 523에서, 프로세서(521)는 음성 명령어를 수신할 수 있다. 상기 음성 명령은 전자 장치(101)의 사용자로부터 입력 모듈(150)을 통해 획득될 수 있다. 적어도 하나의 마이크(150)를 통해 수신된 음성 명령어는 보이스 어시스턴트 어플리케이션에 전달될 뿐, 상대방 전자 장치(410)로 전송되지 않을 수 있다.
동작 525에서, 프로세서(521)는 상기 음성 명령어에 대응하는 결과 데이터를 출력할 수 있다. 보이스 어시스턴트 어플리케이션은 상기 음성 명령어를 해석하여 결과 데이터를 생성할 수 있다. 프로세서(120)는 비공개 모드로 동작하는 경우, 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송하지 않을 수 있다. 프로세서(120)는 공개 모드로 동작하는 경우에도 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송하지 않을 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 결과 데이터를 출력할 수 있다.
도 6a는 일 실시 예에 따른 전자 장치에서 통화하는 동안 오디오를 처리하는 프레임워크를 도시한 도면이다.
도 6a를 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))는 통화하는 동안 오디오 데이터의 입력 및 출력을 제어할 수 있다. 전자 장치(101)는 통화 이외에 다른 기능을 수행하지 않는 경우, 프로세서(120)를 슬립 모드로 전환하여 소모 전류를 절약할 수 있다. 오디오 입력 데이터는 적어도 하나의 마이크(예: MIC1, MIC2)로부터 AIF1(audio interface 1번)(272)를 통해 오디오 DSP(예: 도 2의 오디오 DSP(250)) 내부로 입력되고, DMA와 Call Tx Solution(예: 도 2의 Call Tx Solution(259)), Call Tx Task(예: 도 2의 Call Tx Task(256))를 거쳐 CP로 입력되어 상대방 전자 장치(예: 도 4의 상대방 전자 장치(410))로 전달될 수 있다. 상기 오디오 입력 데이터는 사용자의 음성 및 주변 소리를 포함할 수 있다. Call Tx Solution(259)은 전자 장치(101)의 음향 출력 모듈(155)(예: SPK1, SPK2)로부터 출력된 오디오 출력 데이터를 reference data로 전달 받아 오디오 입력 데이터의 음질을 개선시킬 수 있다. Call Tx Solution(259)은 reference data에 기반하여 오디오 입력 데이터의 하울링, 에코, 또는 노이즈를 제거할 수 있다. Call Tx Solution(259)을 거친 오디오 입력 데이터는 노이즈와 에코가 개선된 좋은 음질의 데이터이고, 이를 Call Tx 데이터로 Call Tx Task(256)로 전달하고, Voice Trigger Solution(257)에 입력시킬 수 있다. Voice Trigger Solution(257)에 입력된 데이터는 내부 블록(A)에서 음성 호출어인지 판단될 수 있다.
오디오 출력 데이터는 상대방 전자 장치(410)로부터 CP를 통해 오디오 DSP(250) 내부로 입력되고, Call Rx Task(예: 도 2의 Call Rx Task(255)), Call Rx Solution(예: 도 2의 Call Rx Solution(258))과 DMA를 거쳐 음향 출력 모듈(155)(예: SPK1, SPK2)로 출력될 수 있다. 상기 오디오 출력 데이터는 상대방의 음성 및 주변 소리를 포함할 수 있다. Call Rx Solution(258)을 거친 오디오 출력 데이터는 노이즈와 에코가 개선된 좋은 음질의 데이터이고, 이를 AIF0(audio interface 0번)(271)으로 전달하고, Voice Trigger Solution(257)에 입력시킬 수 있다.
일 실시 예에 따르면, 보이스 어시스턴트 어플리케이션에는 통화 상대방에 의해 음성 호출이 가능(예: 음성 호출/명령 허용(On)) 또는 불가능(예: 음성 호출/명령 불허(Off)) 하도록 설정될 수 있다. 보이스 어시스턴트 어플리케이션에 상대방에 의한 음성 호출이 가능하도록 설정된 경우, Call Rx Solution(258)을 거친 오디오 출력 데이터는 Voice Trigger Solution(257)에 입력될 수 있다. 보이스 어시스턴트 어플리케이션에 상대방에 의한 음성 호출이 가능하도록 설정되지 않은 경우, Call Rx Solution(258)을 거친 오디오 출력 데이터는 AIF0(271)로 전달될 뿐, Voice Trigger Solution(257)에 입력되지 않을 수 있다. 일 실시 예에 따르면, 상기 보이스 어시스턴트에 비공개 모드로 설정되어 있는 경우, 오디오 DSP(250)는 통화 상대방에 의해 음성 호출이 불가능(예: 음성 호출/명령 불허(Off))하도록 처리할 수 있다.
도 6b는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트를 제공하는 프레임워크를 도시한 도면이다.
도 6b를 참조하면, 통화하는 동안 Voice Trigger Solution(257)의 A블록에서 음성 호출을 인지하게 되면, A블록은 AP 웨이크 업 인터럽트(wake up interrupt)를 발생시키고, 보이스 어시스턴트 어플리케이션으로 트리거 이벤트를 전달할 수 있다(예: ①). 통화하는 동안 오디오의 처리 경로는 도 6a와 동일할 수 있다. 도 6a와 같이 오디오를 처리하다가 음성 호출이 감지되는 경우 도 6b와 같이 처리 경로가 추가될 수 있다. 보이스 어시스턴트 어플리케이션이 트리거 이벤트를 전달받게 되면, 사용자에게 음성 비서(또는 음성 AI)가 음성 명령어를 입력받기 위해 대기한다는 것을 알리기 위해 PCM Playback(예: 도 2의 PCM Playback (251))을 오픈(예: ③)하고, 음성 피드백을 출력할 수 있다. 음성 피드백은 짧은 알림 음이나 "네, 무엇을 도와드릴까요?" 와 같은 음성 피드백이 될 수 있다. 상기 음성 피드백은 PCM Playback(251)을 통해 DMA와 AIF0(271)를 통해 음향 출력 모듈(155)로 출력되고, Call Tx Task(256)로 전달되어 CP를 통해 상대방 전자 장치(410)로 전달될 수 있다.
음성 피드백을 출력한 후, 오디오 DSP(250)는 PCM Capture(252)를 오픈하여 적어도 하나의 마이크로부터 음성 명령어(예: 사용자 음성 명령)을 획득(예: ④)할 수 있다. 예를 들어, 음성 명령어는 '내일 날씨 어때?', '오늘 저녁 일정 알려줘', 또는 '통화 종료해줘'를 포함할 수 있다. 보이스 어시스턴트 어플리케이션은 음성 명령어를 이해하여 결과 데이터를 생성할 수 있다. 보이스 어시스턴트 어플리케이션에는 개인 정보 보호를 위한 비공개 모드가 설정될 수 있다. 비공개 모드가 오프(예: 설정되지 않음)된 경우(예: 공개 모드로 설정), 음성 명령어 및 결과 데이터는 PCM Playback(251)을 통해 DMA와 AIF0(271)를 통해 음향 출력 모듈(155)로 출력되고, Call Tx Task(256)로 전달되어 CP를 통해 상대방 전자 장치(410)로 전달될 수 있다.
일 실시 예에 따르면, 보이스 어시스턴트 어플리케이션에 비공개 모드가 온/오프되어 있는 경우, (2-a), (2-b) 과정을 통해서 오디오 DSP(250) 내의 Mute/UnMute 컨트롤을 처리하여 상대방에게 보이스 어시스턴트가 출력하는 오디오 데이터(예: 음성 피드백, 결과 데이터)와 사용자가 보이스 어시스턴트로 전달하는 음성 데이터(예: 음성 명령어)를 Mute/UnMute 처리할 수 있다.
도 6b에서는 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정되어 있지 않아(예: UnMute), 음성 명령어 및 결과 데이터는 PCM Playback(251)을 통해 DMA와 AIF0(271)를 통해 음향 출력 모듈(155)로 출력되고, Call Tx Task(256)로 전달되어 CP를 통해 상대방 전자 장치(410)로 전달될 수 있다. 보이스 어시스턴트 어플리케이션에 공개 모드로 설정된 경우, 보이스 어시스턴트와 관련된 버튼(예: H/W 키, S/W 버튼)을 통해 호출을 진행할 수 있다. 도 6b에서 (2-a), (2-b)의 UnMute 처리 후 적어도 하나의 마이크로부터 음성 명령어(예: 사용자 음성 명령)을 획득(예: ④)하므로, 음성 명령어 또는 결과 데이터는 상대방 전자 장치(410)로 전달될 수 있다.
도 6c는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트를 제공하는 프레임워크를 도시한 도면이다.
도 6c를 참조하면, 통화하는 동안 Voice Trigger Solution(257)의 A블록에서 음성 호출을 인지하게 되면, A블록은 AP 웨이크 업 인터럽트(wake up interrupt)를 발생시키고, 보이스 어시스턴트 어플리케이션으로 트리거 이벤트를 전달할 수 있다(예: ①). 보이스 어시스턴트 어플리케이션은 트리거 이벤트를 전달받게 되면, 사용자에게 음성 비서(또는 음성 AI)가 음성 명령어를 입력받기 위해 대기한다는 것을 알리기 위해 PCM Playback(예: 도 2의 PCM Playback (251))을 오픈(예: ③)하고, 음성 피드백을 출력할 수 있다. 음성 피드백을 출력한 후, 오디오 DSP(250)는 PCM Capture(252)를 오픈하여 적어도 하나의 마이크로부터 음성 명령어(예: 사용자 음성 명령)을 획득(예: ④)할 수 있다.
도 6c에서는 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정되어 있어(예: Mute), 음성 명령어 및 결과 데이터는 PCM Playback(251)을 통해 DMA와 AIF0(271)를 통해 음향 출력 모듈(155)로 출력되고, Call Tx Task(256)로 전달되지 않을 수 있다. 음성 명령어 및 결과 데이터는 Mute 처리되어, 상대방 전자 장치(410)로 전송되지 않을 수 있다.
보이스 어시스턴트 어플리케이션에 비공개 모드가 설정된 경우에도, 음성 호출어(예: Hi Bixby, Hey Google)를 통해 보이스 트리거를 시킨 경우에는 음성 호출어를 일반 통화 음성(예: 사용자의 음성)과 구분해서 Mute/UnMute를 처리하기 어려울 수 있다. 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정된 경우에도, 통화하는 동안 음성 호출어는 상대방 전자 장치(410)로 전송될 수 있다. 또는, 사용자가 보이스 어시스턴트와 관련된 버튼(예: H/W 키, S/W 버튼)을 선택하는 경우, 음성 호출어 및 음성 호출어에 대한 음성 피드백을 출력하는 동작이 생략(또는 스킵)될 수 있다. (2-a), (2-b) 과정으로 Mute 처리하는 과정 이후, 적어도 하나의 마이크로부터 음성 명령어(예: 사용자 음성 명령)을 획득(예: ④)하므로, 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정된 경우, 음성 명령어 또는 결과 데이터는 Mute 처리되어, 상대방 전자 장치(410)로 전송되지 않을 수 있다.
도 7a 및 도 7b는 일 실시 예에 따른 전자 장치에서 비공개 모드 설정에 기반하여 오디오를 처리하는 프레임워크를 도시한 도면이다.
도 7a를 참조하면, 보이스 어시스턴트 어플리케이션은 음성 명령어를 해석하여 결과 데이터를 음성으로 변환하여 출력할 수 있다. 예를 들어, 결과 데이터(예: 오디오 출력 데이터)는 '오늘 저녁에 비가 오네요, 우산을 준비하세요.', '오늘 저녁 8시에 강남역 동창 모임이 있습니다.', '통화를 종료합니다.' 와 같은 데이터일 수 있다. 전자 장치(예: 도 1의 전자 장치(101))의 프로세서(예: 도 1 프로세서(120))는 PCM Playback(251)을 오픈(예: ①하고, 결과 데이터를 PCM Playback(251)에 write할 수 있다. 결과 데이터는 Voice Trigger Solution(257)으로 전달되어, DMA와 AIF0(271)을 거쳐 음향 출력 모듈(155)(SPK1, SPK2)로 출력되고, 통화 상대방에게 전달하기 위해서 DMA와 BUS(260)를 거쳐 Call Tx Task(256)로 전달되며 CP를 통해 상대방 전자 장치(410)로 전송될 수 있다. 이 때 비공개 모드의 상태에 따라 보이스 어시스턴트 어플리케이션은 Voice Trigger Solution(257) 내의 B블록을 제어(예: ②)하여, Call Tx Task(256)로 전달되는 출력 데이터를 Mute/UnMute 처리(예: ③)할 수 있다.
도 7b를 참조하면, 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정된 경우, Call Tx Solution(259)은 UnMute 처리되고 Voice Trigger Solution(257)에서 CP로 전달되는 데이터는 Mute처리 되어 '오늘 저녁 8시에 강남역 동창 모임이 있습니다.' 와 같은 정보는 상대방에게 전달되지 않을 수 있다.
도 8은 일 실시 예에 따른 전자 장치에서 상대방 음성을 음성 호출로 사용하는 일례를 도시한 도면이다.
도 8을 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))는 통화 상대방의 음성으로 보이스 어시스턴트를 호출할 수 있도록 하는 프레임워크를 제공할 수 있다. Voice Trigger Solution(257) 내부의 A블록은 Call Rx solution(258)로부터 상대방 음성을 입력받을 수 있다. A 블록은 상대방의 음성에 음성 호출어가 포함되어 있는지 여부를 감지할 수 있다. 전자 장치(101)는 상대방 전자 장치(예: 도 4의 상대방 전자 장치(410))의 보이스 어시스턴트 지원 여부를 확인할 수 있다. 전자 장치(101)는 상대방 전자 장치(410)가 보이스 어시스턴트를 지원하는 것으로 확인될 경우, 통화 중에 상대방이 사용자의 보이스 어시스턴트를 호출하지 못하도록(예: 호출을 자제(refrain)하도록) 설정할 수 있다. 전자 장치(101)는 상대방 전자 장치(410)가 보이스 어시스턴트를 지원하지 않는 것으로 확인될 경우, 상대방은 사용자와 통화 중에 보이스 어시스턴트를 호출하여 음성 명령할 수 있다.
일 실시 예에 따르면, 상대방이 음성 호출을 하게 되면 전자 장치(101)의 사용자 정보 유출의 위험이 있을 수 있다. 이를 위해, 사용자는 보이스 어시스턴트 어플리케이션에 통화 상대방에 의해 음성 호출이 가능(예: 음성 호출/명령 허용(On)) 또는 불가능(예: 음성 호출/명령 불허(Off)) 하도록 설정할 수 있다. 프로세서(예: 프로세서(120))는 음성 호출/명령 허용으로 설정된 경우, 상대방 전자 장치(410)로부터 수신된 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지할 수 있다. 프로세서(120)는 음성 호출/명령 허용으로 설정된 경우, 오디오 DSP(250) 내의 Call Rx Solution(258)의 결과를 Voice Trigger Solution(257)로 전달할 수 있다. 프로세서(120)는 음성 호출/명령 불허로 설정된 경우, 상대방 전자 장치(410)로부터 수신된 상대방 음성으로부터 음성 호출어가 포함되어 있는지 감지하지 않을 수 있다. 프로세서(120)는 음성 호출/명령 불허로 설정된 경우, Call Rx Solution(258)의 결과를 Voice Trigger Solution(257)로 전달하지 않을 수 있다.
도 9는 일 실시 예에 따른 전자 장치에서 통화하는 동안 보이스 어시스턴트를 제공하는 방법을 도시한 흐름도(900)이다.
도 9를 참조하면, 동작 901에서, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 프로세서(예: 도 1의 프로세서(120))는 통화 중 보이스 어시스턴트 호출을 검출할 수 있다. 통화 중에는 사용자의 음성을 획득하기 위하여 적어도 하나의 마이크가 사용되고 있는 상태일 수 있다. 프로세서(120)는 적어도 하나의 마이크를 사용하는 어플리케이션이 실행된 상태에서 보이스 어시스턴트를 호출하는 사용자 입력을 검출할 수 있다. 상기 사용자 입력은 사용자가 보이스 어시스턴트를 요청하는 것으로, 예를 들어, 사용자는 정해진 음성 호출어를 발화하거나, 보이스 어시스턴트와 관련된 버튼을 누를 수 있다. 프로세서(120)는 적어도 하나의 마이크를 사용하는 어플리케이션을 실행한 상태에서 적어도 하나의 마이크를 통해 음성 호출어가 입력되는지 감지하거나, 정해진 버튼이 선택되는지 감지할 수 있다.
동작 903에서, 프로세서(120)는 상기 보이스 어시스턴트가 음성 호출되었는지 여부를 판단할 수 있다. 상기 보이스 어시스턴트를 호출하는 것은 사용자의 발화 또는 버튼 선택으로 가능할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트가 음성 호출인 경우 동작 905를 수행하고, 상기 보이스 어시스턴트가 음성 호출이 아닌 경우 동작 921을 수행할 수 있다.
상기 보이스 어시스턴트가 음성 호출인 경우 동작 905에서, 프로세서(120)는 비공개 모드인지 판단할 수 있다. 보이스 어시스턴트 어플리케이션에는 사용자의 개인 정보 보호를 위해 비공개 모드의 설정이 가능할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정되어 있는지 판단할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트 어플리케이션이 비공개 모드로 동작하는 경우, 도 5의 동작 521을 수행하고, 비공개 모드로 동작하지 않은 경우, 동작 907을 수행할 수 있다.
프로세서(120)는 상기 보이스 어시스턴트 어플리케이션이 비공개 모드로 동작하는 경우, 도 5의 동작 521으로 리턴하여 음성 피드백을 음향 출력 모듈(155)로만 출력하고, 상대방 전자 장치로 전송하지 않는 동작을 수행할 수 있다.
비공개 모드로 동작하지 않은 경우(예: 공개 모드로 동작하는 경우), 동작 907에서, 프로세서(120)는 음성 피드백을 출력 및 전송할 수 있다. 상기 음성 피드백은 상기 음성 호출에 대한 피드백으로, 예를 들어 ‘무엇을 도와드릴까요?’와 같은 오디오 데이터를 포함할 수 있다. 상기 음성 피드백은 음성 호출에 대응하여 보이스 어시스턴트 어플리케이션에서 제공하는 것일 수 있다. 프로세서(120)는 음향 출력 모듈(155)을 통해 음성 피드백을 출력하고, 통화하는 상대방 전자 장치(예: 도 4의 상대방 전자 장차(410))로 전송할 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 음성 피드백을 출력할 수 있다.
동작 909에서, 프로세서(120)는 음성 명령어를 수신할 수 있다. 상기 음성 명령어는 전자 장치(101)의 사용자로부터 적어도 하나의 마이크(예: 도 1의 입력 모듈(150))를 통해 획득될 수 있다.
동작 911에서, 프로세서(120)는 상기 음성 명령어에 개인 정보가 포함되어 있는지 판단할 수 있다. 예를 들어, 상기 음성 명령어가 날씨, 전화걸기, 메시지 전송, 사진 촬영, 음악 재생과 같은 개인 정보가 포함되지 않은 질문에 해당하는지 또는, 메시지, 이메일, 캘린더 일정, 연락처, 리마인더, 통화기록, 스마트 홈 제어와 같이 개인 정보가 포함되는 질문에 해당하는지 여부를 판단할 수 있다.
프로세서(120)는 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 동작 925를 수행하고, 상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 동작 913을 수행할 수 있다.
상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 동작 913에서, 프로세서(120)는 적어도 하나의 마이크(150)를 통해 수신된 음성 명령어를 상대방 전자 장치(410)로 전송할 수 있다.
동작 915에서, 프로세서(120)는 상기 음성 명령어에 대응하는 결과 데이터를 출력 및 전송할 수 있다. 보이스 어시스턴트 어플리케이션은 상기 음성 명령어를 해석하여 결과 데이터를 생성할 수 있다. 예를 들어, 상기 음성 명령이 '오늘 날씨 알려줘'인 경우, 상기 결과 데이터는 '오늘은 화창한 날씨네요. 현재기온 23도, 습도는 65%입니다.'일 수 있다. 프로세서(120)는 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송할 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 결과 데이터를 출력할 수 있다.
상기 보이스 어시스턴트가 음성 호출이 아닌 경우, 동작 921에서, 프로세서(120)는 비공개 모드인지 판단할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트 어플리케이션에 비공개 모드가 설정되어 있는지 판단할 수 있다. 프로세서(120)는 상기 보이스 어시스턴트 어플리케이션이 비공개 모드로 동작하는 경우, 도 5의 동작 523을 수행하고, 비공개 모드로 동작하지 않은 경우, 동작 909를 수행할 수 있다.
프로세서(120)는 상기 보이스 어시스턴트가 음성 호출이 아닌 경우, 음성 피드백을 출력하는 동작을 스킵하고, 음성 명령어를 수신할 수 있다. 상기 음성 명령어 수신 시, 상기 프로세서(120)는 전자 장치(101)의 사용자로부터 입력 모듈(150)을 통해 음성 명령어를 획득할 수 있다. 프로세서(120)는 사용자의 음성이 아닌 버튼을 통해 보이스 어시스턴트의 호출을 요청받은 경우, 음성 피드백을 제공하지 않을 수 있다. 프로세서(120)는 사용자로부터 버튼이 선택되면, 곧바로 음성 명령어를 수신할 수 있다.
동작 925에서, 프로세서(120)는 결과 데이터를 출력할 수 있다. 보이스 어시스턴트 어플리케이션은 상기 음성 명령어를 해석하여 결과 데이터를 생성할 수 있다. 프로세서(120)는 비공개 모드로 동작하는 경우, 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송하지 않을 수 있다. 프로세서(120)는 공개 모드로 동작하는 경우에도 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 결과 데이터를 음향 출력 모듈(155)로 출력하고, 상대방 전자 장치(410)로 전송하지 않을 수 있다. 프로세서(120)는 전자 장치(101)에 외부 출력 장치(예: 이어폰)가 연결되어 있는 경우, 외부 출력 장치를 통해 상기 결과 데이터를 출력할 수 있다.
도 10은 일 실시 예에 따른 전자 장치에서 통화하는 동안 오디오를 처리하는 프레임워크를 도시한 다른 도면이다.
도 10을 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))는 AP Call 동안 오디오 데이터의 입력 및 출력을 제어할 수 있다. AP Call은 Skype, Kakaotalk, Google Duo와 같이 AP를 통한 네트워크 통화를 포함할 수 있다. CP Call 동작(예: 도 5의 동작) 중 보이스 어시스턴트 동작 지원 구조와 CP쪽으로 입출력 되는 PCM Data가 AP로 입출력 된다는 차이점이 있을 뿐 전체 동작은 동일할 수 있다. AP Call은 CP를 통하지 않고 수행하는 것이므로, 프로세서(예: 도 1의 프로세서(120))는 일반 모드로 동작할 수 있다. 오디오 입력 데이터는 적어도 하나의 마이크(예: MIC1, MIC2)로부터 AIF1(272)를 통해 오디오 DSP(예: 도 2의 오디오 DSP(250)) 내부로 입력되고, DMA와 Call Tx Solution(예: 도 2의 Call Tx Solution(259))를 거쳐 PCM Capture(245)에 저장될 수 있다. AP Call 어플리케이션은 PCM Capture(245)에 저장된 오디오 입력 데이터를 read할 수 있다. AP Call 어플리케이션은 오디오 입력 데이터를 상대방 전자 장치(예: 도 4의 상대방 전자 장치(410))로 전달할 수 있다. 상기 오디오 입력 데이터는 사용자의 음성 및 주변 소리를 포함할 수 있다.
Call Tx Solution(259)은 전자 장치(101)의 음향 출력 모듈(155)(예: SPK1, SPK2)로부터 출력된 오디오 출력 데이터를 reference data로 전달 받아 오디오 입력 데이터의 음질을 개선시킬 수 있다. Call Tx Solution(259)은 reference data에 기반하여 오디오 입력 데이터의 하울링, 에코, 또는 노이즈를 제거할 수 있다. Call Tx Solution(259)을 거친 오디오 입력 데이터는 노이즈와 에코가 개선된 좋은 음질의 데이터이고, 이를 Call Tx 데이터로 AP Call 어플리케이션으로 전달하고, Voice Trigger Solution(257)에 입력시킬 수 있다. Voice Trigger Solution(257)에 입력된 데이터는 내부 블록(A)에서 음성 호출어인지 판단될 수 있다.
오디오 출력 데이터는 상대방 전자 장치(410)로부터 수신된 것으로, AP Call 어플리케이션을 통해 오디오 DSP(250)의 PCM Playback(253)에 write될 수 있다. PCM Playback(253)에 저장된 오디오 출력 데이터는 Call Rx Solution(예: 도 2의 Call Rx Solution(258))과 DMA를 거쳐 음향 출력 모듈(155)(예: SPK1, SPK2)로 출력될 수 있다. 상기 오디오 출력 데이터는 상대방의 음성 및 주변 소리를 포함할 수 있다. Call Rx Solution(258)을 거친 오디오 출력 데이터는 노이즈와 에코가 개선된 좋은 음질의 데이터이고, 이를 AIF0(271)으로 전달하고, Voice Trigger Solution(257)에 입력시킬 수 있다.
일 실시 예에 따르면, 보이스 어시스턴트 어플리케이션에는 통화 상대방에 의해 음성 호출이 가능(예: 음성 호출/명령 허용(On)) 또는 불가능(예: 음성 호출/명령 불허(Off)) 하도록 설정될 수 있다. 보이스 어시스턴트 어플리케이션에 상대방에 의한 음성 호출이 가능하도록 설정된 경우, Call Rx Solution(258)을 거친 오디오 출력 데이터는 Voice Trigger Solution(257)에 입력될 수 있다. 보이스 어시스턴트 어플리케이션에 상대방에 의한 음성 호출이 가능하도록 설정되지 않은 경우, Call Rx Solution(258)을 거친 오디오 출력 데이터는 AIF0(271)로 전달될 뿐, Voice Trigger Solution(257)에 입력되지 않을 수 있다.
도 11은 일 실시 예에 따른 전자 장치에서 음성 녹음하는 동안 오디오를 처리하는 프레임워크를 도시한 도면이다.
도 11을 참조하면, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))는 Recording 동안 오디오 데이터의 입력 및 출력을 제어할 수 있다. Recording 시, 프로세서(예: 도 1의 프로세서(120))는 일반 모드로 동작할 수 있다. 오디오 입력 데이터는 적어도 하나의 마이크(예: MIC1, MIC2)로부터 AIF1(272)를 통해 오디오 DSP(예: 도 2의 오디오 DSP(250)) 내부로 입력되고, DMA를 거쳐 PCM Capture(254)에 저장될 수 있다. Recording 어플리케이션은 PCM Capture(254)에 저장된 오디오 입력 데이터로 음성 녹음 또는 비디오 촬영의 오디오 데이터로 활용할 수 있다. 적어도 하나의 마이크를 통해 획득한 오디오 입력 데이터는 Voice Trigger Solution(257)으로 전달되어, 블록(A)에서 음성 호출어인지 판단될 수 있다.
Voice Trigger Solution(257)은 오디오 입력 데이터에 음성 호출어가 포함되어 있거나, 보이스 어시스턴트와 관련된 버튼이 선택된 경우, 보이스 어시스턴트 어플리케이션으로 음성 호출을 전달할 수 있다. 보이스 어시스턴트 어플리케이션은 음성 피드백 또는 결과 데이터를 PCM Playback(251)에 write하고, 음성 피드백 또는 결과 데이터는 DMA를 거쳐 음향 출력 모듈(155)을 통해 출력될 수 있다.
Recording은 음성 녹음 또는 비디오 촬영을 포함할 수 있다. AP Call 또는 CP Call 동작과의 차이는 통화 상대방이 없으므로 어플리케이션으로 전달되는 음성 입력과 보이스 어시스턴트 피드백 음원과 명령 수행 결과 음원이 Mixing 되어 입력될 수 있다. 보이스 어시스턴트가 출력하는 피드백 음원과 명령 수행 결과 음원이 음성 녹음 결과에 같이 저장이 되거나 동영상 촬영 데이터에 같이 저장될 수 있다.
예를 들면, 사용자가 여행 중 동영상을 촬영 하며 'Hi, Bixby. 여기 어디야?' 를 호출하면, 보이스 어시스턴트 어플리케이션은 '현재 위치는 부산 해운대구 해운대 해수욕장 입니다.' 와 같이 음향 출력 모듈(155)로 출력할 수 있다. 음성 명령어와 결과 데이터는 Recording 시 함께 저장될 수 있다. Recording된 영상 데이터(또는 음성 데이터)를 SNS나 스트리밍으로 출력될 때, 보이스 어시스턴트에게 물어보는 대화 내용과 보이스 어시스턴트의 답변이 영상에서 함께 출력되어 저장된 영상을 보는 사용자 또한 촬영 당시의 보이스 어시스턴트의 답변을 함께 들을 수 있다. 일반 레코딩 앱에서도 음성 녹음 앱에 동일하게 오디오 데이터가 저장되게 되며 기타 다른 3rd party application 의 Mic 사용 시나리오도 동일하게 동작할 수 있다.
본 발명의 일 실시 예에 따른 전자 장치의 동작 방법은 마이크(150)를 사용하는 어플리케이션을 실행하는 동작, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하는 동작, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하는 동작, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 동작을 포함할 수 있다.
상기 방법은, 상기 어플리케이션이 전화 어플리케이션인 경우, 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 음성 명령어에 대응하는 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치(410)로 전송하지 않는 동작, 및 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 상대 전자 장치로 전송하는 동작을 포함할 수 있다.
상기 방법은, 상기 어플리케이션이 전화 어플리케이션이고, 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 음성 명령어에 개인 정보가 포함되어 있는지 확인하는 동작, 상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 상기 음성 명령어 또는 상기 결과 데이터를 전송하지 않고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하는 동작, 및 상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 상대방 전자 장치로 전송하는 동작을 더 포함할 수 있다.
상기 방법은, 상기 마이크를 통해 획득한 사용자 음성에 음성 호출어가 포함되어 있는지, 또는 상기 상대방 전자 장치로부터 수신된 상대방 음성에 음성 호출어가 포함되어 있는지 확인하는 동작을 더 포함할 수 있다.
상기 방법은, 상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 동작, 및 상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 것을 자제(refrain)하는 동작을 포함할 수 있다.
본 발명의 일 실시 예에 따른 전자 장치(101)의 동작 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체는, 마이크(150)를 사용하는 어플리케이션을 실행하는 동작, 상기 마이크를 사용하는 어플리케이션을 실행하는 동안, 보이스 어시스턴트를 호출하기 위한 입력을 수신하는 동작, 상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하는 동작, 및 상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 동작을 실행시키기 위한 프로그램을 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "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))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
본 명세서와 도면에 개시된 본 발명의 다양한 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (15)
- 전자 장치(101)에 있어서,마이크(150);음향 출력 모듈(155);메모리(130); 및 프로세서(120)를 포함하고,상기 메모리에 저장된 인스트럭션들은, 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 마이크를 사용하는 어플리케이션을 실행하고,상기 마이크를 사용하는 어플리케이션을 실행하는 동안,보이스 어시스턴트를 호출하기 위한 입력을 수신하고,상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하고, 및상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 것인 전자 장치.
- 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 어플리케이션이 전화 어플리케이션인 경우,상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 음성 명령어에 대응하는 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치(410)로 전송하지 않고, 및상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 상대 전자 장치로 전송하는 것인 전자 장치.
- 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 어플리케이션이 전화 어플리케이션이고, 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우,상기 음성 명령어에 개인 정보가 포함되어 있는지 확인하고,상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 상기 음성 명령어 또는 상기 결과 데이터를 전송하지 않고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 및상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 상대방 전자 장치로 전송하는 것인 전자 장치.
- 제2항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 마이크를 통해 획득한 사용자 음성에 음성 호출어가 포함되어 있는지, 또는 상기 상대방 전자 장치로부터 수신된 상대방 음성에 음성 호출어가 포함되어 있는지 확인하는 것인 전자 장치.
- 제4항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 상기 음성 호출어가 포함되어 있는지 확인하는 것인 전자 장치.
- 제4항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하고, 및상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 것을 자제(refrain)하는 것인 전자 장치.
- 제1항에 있어서,음성 트리거 모듈(257)을 포함하는 오디오 디지털 신호 프로세서(audio digital signal processor, DSP)를 더 포함하고, 상기 음성 트리거 모듈은 상기 보이스 어시스턴트를 호출하도록 구성되고,상기 보이스 어시스턴트를 호출하기 위한 입력은 발화에 의해 음성 호출어를 수신하거나, 상기 보이스 어시스턴트와 관련된 버튼을 선택하는 것을 포함하고,상기 음성 명령어는 사용자가 상기 보이스 어시스턴트를 호출한 후에 상기 보이스 어시스턴트에게 말하는 것이며,상기 결과 데이터는 상기 음성 명령어를 분석한 후 상기 보이스 어시스턴트에 의해 제공되는 결과인 것인 전자 장치.
- 제7항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 어플리케이션이 전화 어플리케이션이고, 상기 음성 호출어에 의해 상기 보이스 어시스턴트가 호출되는 경우,상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 음성 피드백을 전송하지 않고, 상기 음향 출력 모듈을 통해 상기 음성 피드백을 출력하고, 및상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 보이스 어시스턴트에 의한 상기 음성 피드백을 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 피드백을 상기 상대방 전자 장치로 전송하는 것인 전자 장치.
- 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 마이크를 이용한 상기 어플리케이션의 실행 화면에서 상기 전자 장치의 디스플레이(160)에 상기 음성 명령어 또는 상기 결과 데이터에 대응하는 텍스트를 표시하는 것인 전자 장치.
- 제1항에 있어서, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,상기 마이크를 사용하는 어플리케이션이 녹음 어플리케이션인 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 녹음 어플리케이션의 녹음 데이터에 함께 저장하는 것인 전자 장치.
- 전자 장치(101)의 동작 방법에 있어서,마이크(150)를 사용하는 어플리케이션을 실행하는 동작;상기 마이크를 사용하는 어플리케이션을 실행하는 동안,보이스 어시스턴트를 호출하기 위한 입력을 수신하는 동작;상기 입력에 기반하여 상기 보이스 어시스턴트를 호출하도록 제어하는 동작; 및상기 마이크를 통해 수신된 음성 명령어(voice command)에 대응하는 결과 데이터를 제공하는 동작을 포함하는 방법.
- 제11항에 있어서,상기 어플리케이션이 전화 어플리케이션인 경우,상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 음성 명령어에 대응하는 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치(410)로 전송하지 않는 동작; 및상기 보이스 어시스턴트가 공개 모드로 동작하는 경우, 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 및/또는 상기 결과 데이터를 상기 상대 전자 장치로 전송하는 동작을 더 포함하는 방법.
- 제11항에 있어서,상기 어플리케이션이 전화 어플리케이션이고, 상기 보이스 어시스턴트가 공개 모드로 동작하는 경우,상기 음성 명령어에 개인 정보가 포함되어 있는지 확인하는 동작;상기 음성 명령어에 개인 정보가 포함되어 있는 경우, 상기 전화 어플리케이션에 의해 수행되는 통화의 상대방 전자 장치로 상기 음성 명령어 또는 상기 결과 데이터를 전송하지 않고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하는 동작; 및상기 음성 명령어에 개인 정보가 포함되지 않은 경우, 상기 음성 명령어 또는 상기 결과 데이터를 상기 음향 출력 모듈을 통해 출력하고, 상기 음성 명령어 또는 상기 결과 데이터를 상기 상대방 전자 장치로 전송하는 동작을 더 포함하는 방법.
- 제12항에 있어서,상기 마이크를 통해 획득한 사용자 음성에 음성 호출어가 포함되어 있는지, 또는 상기 상대방 전자 장치로부터 수신된 상대방 음성에 음성 호출어가 포함되어 있는지 확인하는 동작을 더 포함하는 방법.
- 제14항에 있어서,상기 보이스 어시스턴트가 상기 공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 동작; 및상기 보이스 어시스턴트가 비공개 모드로 동작하는 경우, 상기 상대방 음성에 포함된 상기 음성 호출어에 기초하여 상기 보이스 어시스턴트를 호출하는 것을 자제(refrain)하는 동작을 더 포함하는 방법.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23837541.4A EP4411731A4 (en) | 2022-12-13 | 2023-12-13 | METHOD FOR SUPPORTING A VOICE CALL USING A MICROPHONE AND ELECTRONIC DEVICE THEREFOR |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20220173688 | 2022-12-13 | ||
| KR10-2022-0173688 | 2022-12-13 | ||
| KR10-2023-0011149 | 2023-01-27 | ||
| KR1020230011149A KR20240088506A (ko) | 2022-12-13 | 2023-01-27 | 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024128799A1 true WO2024128799A1 (ko) | 2024-06-20 |
Family
ID=89772273
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2023/020545 Ceased WO2024128799A1 (ko) | 2022-12-13 | 2023-12-13 | 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4411731A4 (ko) |
| WO (1) | WO2024128799A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100400407B1 (ko) * | 2001-09-01 | 2003-10-01 | 에스케이 텔레콤주식회사 | 음성인식 전화기 사용방법 |
| KR101462930B1 (ko) * | 2008-04-30 | 2014-11-19 | 엘지전자 주식회사 | 이동 단말기 및 그 화상통화 제어방법 |
| KR20150073360A (ko) * | 2013-12-23 | 2015-07-01 | 인포뱅크 주식회사 | 연락처정보 제공 장치, 이를 위한 방법, 이를 위한 기록매체 및 이를 위한 단말기 |
| KR101920019B1 (ko) * | 2012-01-18 | 2018-11-19 | 삼성전자 주식회사 | 휴대단말기의 통화 서비스 장치 및 방법 |
| KR20190051368A (ko) * | 2017-11-06 | 2019-05-15 | 삼성전자주식회사 | 전자 장치 및 전자 장치 간 음성으로 기능을 실행하는 방법 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9171546B1 (en) * | 2011-03-29 | 2015-10-27 | Google Inc. | Performing functions based on commands in context of telephonic communication |
| US10867601B2 (en) * | 2018-01-17 | 2020-12-15 | Citrix Systems, Inc. | In-band voice-assistant/concierge for controlling online meetings |
| KR102472010B1 (ko) * | 2018-05-04 | 2022-11-30 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 기능 실행 방법 |
| KR102356623B1 (ko) * | 2019-02-01 | 2022-01-28 | 삼성전자주식회사 | 가상 비서 전자 장치 및 그 제어 방법 |
-
2023
- 2023-12-13 EP EP23837541.4A patent/EP4411731A4/en active Pending
- 2023-12-13 WO PCT/KR2023/020545 patent/WO2024128799A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100400407B1 (ko) * | 2001-09-01 | 2003-10-01 | 에스케이 텔레콤주식회사 | 음성인식 전화기 사용방법 |
| KR101462930B1 (ko) * | 2008-04-30 | 2014-11-19 | 엘지전자 주식회사 | 이동 단말기 및 그 화상통화 제어방법 |
| KR101920019B1 (ko) * | 2012-01-18 | 2018-11-19 | 삼성전자 주식회사 | 휴대단말기의 통화 서비스 장치 및 방법 |
| KR20150073360A (ko) * | 2013-12-23 | 2015-07-01 | 인포뱅크 주식회사 | 연락처정보 제공 장치, 이를 위한 방법, 이를 위한 기록매체 및 이를 위한 단말기 |
| KR20190051368A (ko) * | 2017-11-06 | 2019-05-15 | 삼성전자주식회사 | 전자 장치 및 전자 장치 간 음성으로 기능을 실행하는 방법 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4411731A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4411731A4 (en) | 2025-01-15 |
| EP4411731A1 (en) | 2024-08-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022055068A1 (ko) | 음성에 포함된 커맨드를 확인하는 전자 장치와 이의 동작 방법 | |
| WO2022030771A1 (ko) | 전자 장치 및 그의 오디오 데이터를 출력하는 방법 | |
| WO2021075716A1 (en) | Electronic device supporting improved speech recognition | |
| WO2020080635A1 (ko) | 동작 상태에 기반하여 선택한 마이크를 이용하여 음성 인식을 수행하는 전자 장치 및 그의 동작 방법 | |
| WO2021201429A1 (ko) | 전자 장치 및 그의 오디오 출력을 제어하는 방법 | |
| WO2022154546A1 (ko) | 자동 음량 제어를 수행하는 웨어러블 장치 | |
| WO2022203456A1 (ko) | 음성 신호 처리를 위한 전자 장치 및 방법 | |
| WO2022005248A1 (ko) | 주변 오디오 신호의 감지 방법 및 전자 장치 | |
| WO2023287044A1 (ko) | 폴더블 전자 장치 및 그의 제어 방법 | |
| WO2021096281A1 (en) | Voice input processing method and electronic device supporting same | |
| WO2022065845A1 (ko) | 입력 데이터 처리 방법 및 이를 지원하는 전자 장치 | |
| WO2022030750A1 (ko) | 음성 데이터 처리 방법 및 이를 지원하는 전자 장치 | |
| WO2024128799A1 (ko) | 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 | |
| WO2023085642A1 (ko) | 동작 제어 방법 및 그 전자 장치 | |
| WO2022186471A1 (ko) | 그룹 통화 서비스를 제공하기 위한 방법 및 이를 지원하는 전자 장치 | |
| WO2023048379A1 (ko) | 사용자 발화를 처리하는 서버, 전자 장치 및 그의 동작 방법 | |
| WO2022220479A1 (ko) | 전자 장치 및 전자 장치에서 객체의 근접 여부를 판단하는 방법 | |
| WO2022154321A1 (ko) | 잡음 환경에 따라서 통신 연결을 전환하는 전자 장치 및 그 제어 방법 | |
| WO2022203179A1 (ko) | 오디오 데이터 처리 방법 및 이를 지원하는 전자 장치 | |
| KR20240088506A (ko) | 마이크 사용 시의 음성 호출 지원 방법 및 그 전자 장치 | |
| WO2022196965A1 (ko) | 어시스턴스 모듈을 이용하여 상대방과 통신을 수행하는 전자 장치 및 그 제어 방법 | |
| WO2026029471A1 (ko) | 통화 번역 서비스를 제공하는 방법 및 그 전자 장치 | |
| WO2026049461A1 (ko) | 음성 트리거에 기반하여 다른 장치를 제어하는 전자 장치 및 그 동작 방법 | |
| WO2024053931A1 (ko) | 마이크를 전환하는 방법 및 전자 장치 | |
| WO2026010083A1 (ko) | 전자 장치 및 이를 이용한 외부 전자 장치의 제어 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2023837541 Country of ref document: EP Effective date: 20240118 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |