WO2022146033A1 - 전자 장치 및 전자 장치의 음성 입출력 제어 방법 - Google Patents
전자 장치 및 전자 장치의 음성 입출력 제어 방법 Download PDFInfo
- Publication number
- WO2022146033A1 WO2022146033A1 PCT/KR2021/020180 KR2021020180W WO2022146033A1 WO 2022146033 A1 WO2022146033 A1 WO 2022146033A1 KR 2021020180 W KR2021020180 W KR 2021020180W WO 2022146033 A1 WO2022146033 A1 WO 2022146033A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- electronic device
- external electronic
- voice
- processor
- microphone
- 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
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
-
- 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
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/26—Pre-filtering or post-filtering
-
- 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
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
Definitions
- This document relates to an electronic device, and for example, to a method of controlling voice input/output by an electronic device connected to an external electronic device.
- a recent electronic device is equipped with a smart home function and is connected to a plurality of external electronic devices existing in a short distance using wireless communication to control the external electronic devices or to be controlled integrally by them.
- External electronic devices that perform these functions are called smart home appliances, smart home electronic devices, and the like, and may provide a short-range wireless communication function to be integratedly controlled by a terminal device or the like.
- wearable devices that can be worn or mounted on a part of a user's body are being developed.
- Such a wearable device independently performs a specific function, and is also used as an auxiliary means for a function of a main device such as a user's portable terminal device.
- An echo refers to a phenomenon in which the voice output from the electronic device is included in the voice input when the electronic device simultaneously performs voice input/output. Techniques for removing such an echo phenomenon are being developed.
- a so-called hands-free function may be used to provide outgoing/sign language using the external electronic device.
- the electronic device may be connected to various external electronic devices, and these external electronic devices may provide a necessary outgoing or sign language function when a call is connected.
- devices suitable for outgoing or sign language may be different from each other.
- echo cancellation may not be easy.
- a setting value for echo cancellation may not be the same for each external electronic device.
- the electronic device when the electronic device is connected to a plurality of external electronic devices, from among the plurality of external electronic devices, the electronic device may determine a device suitable for speaking or signing. In addition, the electronic device may improve usability with the at least one external electronic device by controlling functions (eg, handset and/or echo cancellation) of the at least one external electronic device.
- functions eg, handset and/or echo cancellation
- An electronic device includes a communication module; sensor module; a sound input module including a microphone; a sound output module including a speaker; a memory including a buffer; and a processor operatively connected to the communication module, the sensor module, the sound input module, the sound output module, and the memory, wherein the processor is communicatively connected to an external electronic device and , check whether the external electronic device includes at least one speaker and/or at least one microphone, and when the external electronic device includes a speaker, based on sensing information received from the sensor module during call connection When a sign language device for outputting a sign language voice is selected from among the electronic device and the external electronic device, and the external electronic device includes a microphone, a voice signal received using the sound input module during a call connection and the external electronic device selects a talking device to receive an outgoing voice from among the electronic device and the external electronic device based on a result of comparing the voice signals received from the microphone of Activating at least one microphone and deactivating at least one speaker provided in the
- a call connection method of an electronic device includes an operation of determining whether the external electronic device includes at least one speaker and/or at least one microphone; when a speaker is provided, selecting a sign language device to output a sign language voice from among the electronic device and the external electronic device based on sensing information when a call is connected; When the external electronic device includes at least one microphone, the electronic device and the external electronic device are based on a result of comparing the voice signal received by the electronic device and the voice signal received by the external electronic device during a call connection selecting a communication device to receive an outgoing voice; When the talking device and the receiving device are different devices, at least one microphone included in the talking device is activated and at least one speaker is deactivated, and at least one microphone included in the talk device is deactivated and at least one activating the speaker of the; obtaining and storing an echo reference signal related to the sign language voice received from the sign language device; checking an echo path delay (EPD) value of an echo signal included in the outgoing speech based on the comparison of
- EPD echo path delay
- call quality may be improved by selecting a device most suitable for outgoing communication and/or a device most suitable for sign language among the electronic devices and external electronic devices.
- the user experience can be improved by actively controlling the connected external electronic device.
- call quality can be expected to be improved by actively controlling various echoes that may occur during a call or a sign language using an external electronic device.
- FIG. 1 is a block diagram of an electronic device in a network environment, according to various embodiments of the present disclosure
- FIG. 2 is a block diagram of an audio module, according to various embodiments.
- FIG. 3 is a diagram illustrating an operation of controlling a talking device and a receiving device when an electronic device is connected to an external electronic device according to various embodiments of the present disclosure
- FIG. 4 is a block diagram of an electronic device according to various embodiments of the present disclosure.
- FIG. 5 is a flowchart illustrating an operation of an electronic device controlling a talking device and a receiving device according to various embodiments of the present disclosure
- FIG. 6 is a diagram illustrating an operation of controlling a talking device and a receiving device when an electronic device is connected to a wearable device according to various embodiments of the present disclosure
- FIG. 7 is a diagram illustrating an operation of controlling a talking device and a receiving device when the electronic device is connected to a plurality of external electronic devices according to various embodiments of the present disclosure
- FIG. 8 is a flowchart illustrating an operation of selecting a talking device and a receiving device when an electronic device is connected to an external electronic device according to various embodiments of the present disclosure
- FIG. 9 is a flowchart illustrating an operation in which an electronic device cancels an echo according to various embodiments of the present disclosure
- EPD echo path delay
- 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 (eg, a short-range wireless communication network) or a second network 199 . It may communicate with at least one of the electronic device 104 and the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, 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 , a sound 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 an antenna module 197 may be included.
- 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 are integrated into one component (eg, display module 160 ). can be
- the processor 120 executes software (eg, the program 140) to execute at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120 . It can control and perform various data processing or operations. According to one embodiment, as at least part of data processing or operation, the processor 120 converts commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) to the volatile memory 132 . may be stored in the volatile memory 132 , and may process commands or data stored in the volatile memory 132 , and store the result data in the non-volatile memory 134 .
- software eg, the program 140
- the processor 120 converts commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) to the volatile memory 132 .
- the volatile memory 132 may be stored in the volatile memory 132 , and may process commands or data stored in the volatile memory 132 , and store the result data in the non-volatile memory 134 .
- the processor 120 is the main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit) 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
- a secondary processor 123 eg, a graphic processing unit, a neural network processing unit
- NPU neural processing unit
- an image signal processor e.g., a sensor hub processor, or a communication processor.
- the main processor 121 e.g, a central processing unit or an application processor
- a secondary processor 123 eg, a graphic processing unit, a neural network processing unit
- NPU neural processing unit
- an image signal processor e.g., a sensor hub processor, or a communication processor.
- the main processor 121 e.g, a central processing unit or an application processor
- a secondary processor 123
- the secondary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or when the main processor 121 is active (eg, executing an application). ), together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states.
- the coprocessor 123 eg, an image signal processor or a communication processor
- may be implemented as part of another functionally related component eg, the camera module 180 or the communication module 190. have.
- the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
- Artificial intelligence models can be created through machine learning. Such learning, for example, 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 (eg, the server 108).
- the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
- the artificial intelligence model may include a plurality of artificial neural network layers.
- Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
- the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
- 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 .
- the data may include, for example, input data or output data for software (eg, the program 140 ) and instructions related thereto.
- the memory 130 may include a volatile memory 132 or a 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 an application 146 .
- the input module 150 may receive a command or data to be used by a component (eg, the processor 120 ) of the electronic device 101 from the outside (eg, a user) of the electronic device 101 .
- the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
- the sound output module 155 may output a sound signal to the outside of the electronic device 101 .
- the sound output module 155 may include, for example, a speaker or a receiver.
- the speaker can be used for general purposes such as multimedia playback or recording playback.
- the receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
- the display module 160 may visually provide information to the outside (eg, a user) of the electronic device 101 .
- the display module 160 may include, for example, a control circuit for controlling a display, a hologram device, or a projector and a corresponding device.
- the display module 160 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
- the audio module 170 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 170 acquires a sound through the input module 150 or an external electronic device (eg, a sound output module 155 ) directly or wirelessly connected to the electronic device 101 . Sound may be output through the electronic device 102 (eg, a speaker or headphones).
- an external electronic device eg, a sound output module 155
- Sound may be output through the electronic device 102 (eg, a speaker or headphones).
- the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
- the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
- the interface 177 may support one or more specified protocols that may be used by the electronic device 101 to directly or wirelessly connect 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.
- the 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 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
- the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 180 may capture still images and moving images. According to an embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 188 may manage power supplied to the electronic device 101 .
- the power management module 188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
- PMIC power management integrated circuit
- the battery 189 may supply power to at least one component of the electronic device 101 .
- battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
- the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). It can support establishment and communication performance through the established communication channel.
- the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
- the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : It may include a local area network (LAN) communication module, or a power line communication module).
- a wireless communication module 192 eg, a cellular communication module, a short-range communication module, or a global navigation satellite system (GNSS) communication module
- GNSS global navigation satellite system
- wired communication module 194 eg, : It may include a local area network (LAN) communication module, or a power line communication module.
- a corresponding communication module among these communication modules is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
- a first network 198 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
- a second network 199 eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
- a telecommunication network
- the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199 .
- subscriber information eg, International Mobile Subscriber Identifier (IMSI)
- IMSI International Mobile Subscriber Identifier
- the electronic device 101 may be identified or authenticated.
- the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
- NR access technology includes 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)).
- eMBB enhanced mobile broadband
- mMTC massive machine type communications
- URLLC ultra-reliable and low-latency
- the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
- a high frequency band eg, mmWave band
- the wireless communication module 192 includes various technologies for securing performance in a high frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. Technologies such as full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna may be supported.
- the wireless communication module 192 may support various requirements specified in the electronic device 101 , an external electronic device (eg, the electronic device 104 ), or a network system (eg, the second network 199 ).
- the wireless communication module 192 may include a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency ( Example: downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less).
- a peak data rate eg, 20 Gbps or more
- loss coverage eg, 164 dB or less
- U-plane latency Example: downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less.
- the antenna module 197 may transmit or receive a signal or power to the outside (eg, an external electronic device).
- the antenna module 197 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
- the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected from the plurality of antennas by, for example, the communication module 190 . can be chosen.
- a signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
- other components eg, a radio frequency integrated circuit (RFIC)
- RFIC radio frequency integrated circuit
- the antenna module 197 may form a mmWave antenna module.
- the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, bottom side) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
- peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
- GPIO general purpose input and output
- SPI serial peripheral interface
- MIPI mobile industry processor interface
- the command 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 the same as or different from the electronic device 101 .
- all or a part of operations executed in the electronic device 101 may be executed in one or more external electronic devices 102 , 104 , or 108 .
- the electronic device 101 may perform the function or service itself instead of executing the function or service itself.
- one or more external electronic devices may be requested to perform at least a part of the function or the service.
- One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 101 .
- the electronic device 101 may process the result as it is or additionally and provide it as at least a part of a response to the request.
- cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may 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 the server 108 may be included in the second network 199 .
- the electronic device 101 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
- the audio module 170 includes, for example, an audio input interface 210 , an audio input mixer 220 , an analog to digital converter (ADC) 230 , an audio signal processor 240 , and a DAC. It may include a digital to analog converter 250 , an audio output mixer 260 , or an audio output interface 270 .
- ADC analog to digital converter
- the audio input interface 210 is acquired from the outside of the electronic device 101 as part of the input module 150 or through a microphone (eg, a dynamic microphone, a condenser microphone, or a piezo microphone) configured separately from the electronic device 101 .
- An audio signal corresponding to the sound may be received.
- the audio input interface 210 is directly connected to the external electronic device 102 through the connection terminal 178 . , or wirelessly (eg, via Bluetooth communication) through the wireless communication module 192 to receive an audio signal.
- the audio input interface 210 may receive a control signal (eg, a volume adjustment signal received through an input button) related to an audio signal obtained from the external electronic device 102 .
- the audio input interface 210 may include a plurality of audio input channels, and may receive a different audio signal for each corresponding audio input channel among the plurality of audio input channels.
- the audio input interface 210 may receive an audio signal from another component of the electronic device 101 (eg, the processor 120 or the memory 130 ).
- the audio input mixer 220 may synthesize a plurality of input audio signals into at least one audio signal.
- the audio input mixer 220 may synthesize a plurality of analog audio signals input through the audio input interface 210 into at least one analog audio signal.
- the ADC 230 may convert an analog audio signal into a digital audio signal.
- the ADC 230 converts an analog audio signal received via the audio input interface 210, or additionally or alternatively, an analog audio signal synthesized via the audio input mixer 220 to digital audio. can be converted into a signal.
- the audio signal processor 240 may perform various processing on the digital audio signal input through the ADC 230 or the digital audio signal received from other components of the electronic device 101 .
- the audio signal processor 240 may change a sampling rate for one or more digital audio signals, apply one or more filters, perform interpolation processing, amplify or attenuate all or part of a frequency band, You can perform noise processing (such as noise or echo reduction), changing channels (such as switching between mono and stereo), mixing, or specified signal extraction.
- one or more functions of the audio signal processor 240 may be implemented in the form of an equalizer.
- the DAC 250 may convert a digital audio signal into an analog audio signal.
- the DAC 250 is a digital audio signal processed by the audio signal processor 240 , or another component of the electronic device 101 (eg, the processor 120 or the memory 130 ). ))) can be converted into an analog audio signal.
- the audio output mixer 260 may synthesize a plurality of audio signals to be output into at least one audio signal.
- the audio output mixer 260 may include an audio signal converted to analog through the DAC 250 and another analog audio signal (eg, an analog audio signal received through the audio input interface 210 ). ) can be synthesized into at least one analog audio signal.
- the audio output interface 270 transmits an analog audio signal converted through the DAC 250 or an analog audio signal synthesized by the audio output mixer 260 additionally or alternatively through the audio output module 155 to the electronic device 101 . ) can be printed out.
- the sound output module 155 may include, for example, a speaker such as a dynamic driver or a balanced armature driver, or a receiver.
- the sound output module 155 may include a plurality of speakers.
- the audio output interface 270 may output an audio signal having a plurality of different channels (eg, stereo or 5.1 channel) through at least some of the plurality of speakers.
- the audio output interface 270 is directly connected to the external electronic device 102 (eg, an external speaker or headset) through the connection terminal 178 or wirelessly through the wireless communication module 192 . to output an audio signal.
- the audio module 170 does not separately include the audio input mixer 220 or the audio output mixer 260 , and uses at least one function of the audio signal processor 240 to provide a plurality of digital audio signals. At least one digital audio signal may be generated by synthesizing them.
- the audio module 170 is an audio amplifier (not shown) capable of amplifying an analog audio signal input through the audio input interface 210 or an audio signal to be output through the audio output interface 270 . (eg speaker amplification circuit).
- the audio amplifier may be configured as a module separate from the audio module 170 .
- FIG. 3 is a diagram illustrating an operation of controlling a talking device and a receiving device when an electronic device is connected to an external electronic device according to various embodiments of the present disclosure
- an electronic device 300 communicates with an external electronic device 310 and short-range wireless communication 320 (eg, the first network 198 of FIG. 1 ).
- the electronic device 300 communicates with the external electronic device 310 using short-range wireless communication such as Bluetooth, Bluetooth low energy (BLE), and/or wireless-fidelity (Wi-Fi).
- short-range wireless communication such as Bluetooth, Bluetooth low energy (BLE), and/or wireless-fidelity (Wi-Fi).
- the external electronic device 310 may be an electronic device existing within a short distance from the user 350 and/or the electronic device 300 .
- the user 350 may refer to a person who uses the electronic device 300 or a device (eg, an artificial intelligence electronic device) using the electronic device 300 .
- the external electronic device 310 may have a built-in communication module (eg, the communication module 190 of FIG. 1 ) for performing wireless communication with the electronic device 300 .
- the external electronic device 310 may include a voice output interface (eg, a speaker, or the audio output interface 270 of FIG. 2 ) or a voice input interface (eg, a microphone, or the audio input interface 210 of FIG. 2 ). )) may be an electronic device.
- the electronic device 300 may be connected to the external electronic device 310 using short-range wireless communication to control the operation of the external electronic device 310 and receive data from the external electronic device 310 .
- the electronic device 300 may receive or transmit various types of information including data for controlling the external electronic device to the external electronic device 310 .
- the electronic device 300 may transmit a predetermined audio signal to the external electronic device 310 and control the external electronic device 310 to output an audio signal received from the electronic device 300 .
- the electronic device 300 may receive an audio signal related to voice information input to the external electronic device 310 from the external electronic device 310 .
- the electronic device 300 may provide a call connection function.
- the call connection function may mean, for example, a function of performing a call connection with another electronic device (eg, the counterpart terminal 330 ) that provides a call connection function (hereinafter, the counterpart terminal 330 ).
- the electronic device 300 may be communicatively connected to the counterpart terminal 330 using the remote wireless communication 340 (eg, the second network 199 of FIG. 1 ).
- the electronic device 300 may be connected to the counterpart terminal 330 using long-distance wireless communication such as cellular communication, LTE, LTE-A, 5G, or Internet communication to perform a call connection. .
- the call connection may be made through long-distance wireless communication supported by the electronic device 300 and the counterpart terminal 330 .
- the electronic device 300 may control the talking device and the receiving device.
- the talking device may mean, for example, a device suitable for talking among the electronic device 300 and the external electronic device 310 connected to the electronic device 300 .
- the electronic device 300 includes sensing information acquired from a sensor included in the electronic device 300 , and a voice input interface (eg, a microphone) provided in each of the electronic device 300 and the external electronic device 310 . ) and the electronic device 300 and the external electronic device 310 may select a talking device based on analysis information on the audio signal of the outgoing voice respectively received. Analysis of the audio signal may include, for example, calculating a signal-to-noise ratio (SNR) value, calculating a speech-to-echo ratio (SER) value, or comparing the calculated SNR or SER value.
- SNR signal-to-noise ratio
- SER speech-to-echo ratio
- the sign language device may mean, for example, a device suitable for sign language among the electronic device 300 and the external electronic device 310 connected to the electronic device 300 .
- the electronic device 300 uses sensing information acquired by the electronic device 300 and information obtained by estimating a voice that the user 350 can hear from the electronic device 300 or the external electronic device 310 .
- the electronic device 300 and the external electronic device 310 may be compared, and a sign language device may be selected.
- the electronic device 300 includes user behavior, location, state information of the electronic device 300 and/or the external electronic device 310 , and hardware of the electronic device 300 or the external electronic device 310 .
- the talking device and/or the receiving device may be selected based on various data such as information.
- the electronic device 300 when a sign language device and a communication device are selected from among the connected external electronic device 310 and the electronic device 300 , the electronic device 300 deactivates a voice output interface of the selected talk device and uses the voice of the speaker device. Only input interfaces can be activated. According to various embodiments, the electronic device 300 may activate a voice output interface of the selected sign language device and deactivate a voice input interface of the sign language device. According to an embodiment, when there are a plurality of connected external electronic devices, the electronic device 300 controls to deactivate both the voice input interface and the voice output interface for the external electronic device that is not selected as the talking device and/or the receiving device. can
- a user 350 may perform a call connection based on a video call using the electronic device 300 .
- the electronic device 300 determines that the external electronic device 310 is suitable for sign language while being connected to the external electronic device 310, selects the external electronic device 310 as the sign language device, and the electronic device 300 can be selected as the talking device.
- the electronic device 300 may receive an audio signal regarding the counterpart's voice from the counterpart terminal 330 , and may transmit the audio signal for the counterpart's voice to the connected external electronic device 310 .
- the electronic device 300 activates only the voice output interface of the external electronic device 310 and deactivates the voice input interface of the external electronic device 310 , so that only the external electronic device 310 uses the sign language voice of the counterpart terminal 330 (eg, : You can control to output the other party's voice). Also, when the electronic device 300 is selected as the communication device, only the voice input interface of the electronic device 300 is activated and the voice output interface is deactivated to receive a sign language voice related to the user 350 voice. The electronic device 300 may process a signal for the received sign language voice and transmit it to the counterpart terminal 330 .
- FIG. 4 is a block diagram of an electronic device according to various embodiments of the present disclosure.
- an electronic device 400 (eg, the electronic device 101 of FIG. 1 or the electronic device 300 of FIG. 3 ) includes a communication module 410 , a sensor module 420 , and an audio module 430 .
- a memory 440 and a processor 450 may be included, and even if at least some of the illustrated configurations are omitted or substituted, there will be no hindrance to implementing various embodiments of the present document.
- the electronic device 400 may include all or part of the configuration and/or functions of the electronic device 101 of FIG. 1 .
- the communication module 410 may perform communication connection with various electronic devices (eg, the external electronic device 310 or the counterpart terminal 330 of FIG. 3 ).
- the communication module 410 may include at least a part of functions and/or configurations of the communication module 190 of FIG. 1 .
- the communication module 410 may support short-range wireless communication (eg, the first network 198 of FIG. 1 ) and an external electronic device (eg, the external of FIG. 3 ) using short-range wireless communication. Connection with the electronic device 310 may be performed.
- the electronic device 300 uses an external electronic device (eg, FIG. 3 may be connected to the external electronic device 310).
- the electronic device 400 may be connected to the external electronic device 310 using short-range wireless communication to control the operation of the external electronic device 310 and receive data from the external electronic device 310 .
- the electronic device 400 transmits a predetermined audio signal (eg, a sign language) to the external electronic device 310 and outputs the audio signal received from the electronic device 400 by the external electronic device 310 . can be controlled
- the electronic device 400 may receive an audio signal (eg, an outgoing voice) related to voice information input to the external electronic device 310 from the external electronic device 310 .
- the communication module 410 may support long-distance wireless communication (eg, the second network 199 of FIG. 1 ), and a counterpart terminal (eg, the counterpart terminal of FIG. 3 ) using long-range wireless communication 330)) and can be connected.
- the communication module 410 is not limited to the telecommunication supported by the communication module 410, for example, such as a cellular network (eg, 5G, LTE-A), LAN, or the Internet.
- Various communication methods can be supported.
- the electronic device 400 may be connected to a counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ) using remote wireless communication and may perform a call connection.
- the communication module 410 may receive information required for a call connection including an audio signal (eg, sign language voice) related to the other party's voice from the other party's terminal 330 using long-distance wireless communication, and the user (eg, the user 350 of FIG. 3 ) may transmit information necessary for a call connection including an audio signal related to a voice (eg, an outgoing voice) to the counterpart terminal 330 .
- an audio signal eg, sign language voice
- a voice eg, an outgoing voice
- the sensor module 420 detects an operating state (eg, power or temperature) of the electronic device 400 or an external environmental state (eg, a user state), and generates electricity corresponding to the sensed state. It may generate signals and/or data values.
- the sensor module 420 may include at least a portion of the functions and/or configuration of the sensor module 176 of FIG. 1 .
- the sensor module 420 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor. According to various embodiments, the sensor module 420 may generate sensing information for determining a user's state, a user's location, and/or a user's motion (eg, a gesture) using various provided sensors.
- the audio module 430 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound.
- the audio module 430 may include at least a part of the configuration and/or functions of the audio module 170 of FIG. 1 .
- the audio module 430 may include at least a part of the configuration and/or functions of the audio module 170 of FIG. 2 .
- the audio module 430 may include a microphone 431 , a speaker 432 , and an audio signal processor 433 .
- the audio module 430 may receive a voice (eg, a communication voice) outside the electronic device 400 using the microphone 431 .
- the microphone 431 may include at least a part of the configuration and/or function of the input module 150 of FIG. 1 .
- the audio module 430 may convert the voice acquired by the microphone 431 into an electrical signal (eg, a digital audio signal), and convert the converted digital audio signal into another component (eg, a processor) of the electronic device 400 . 450)).
- the audio module 430 may output a voice to the outside of the electronic device 400 using the speaker 432 .
- the speaker 432 may include at least a part of the configuration and/or function of the sound output module 155 of FIG. 1 .
- the audio module 430 may convert a digital audio signal into an analog audio signal, and output the converted analog audio signal to the outside using the speaker 432 .
- the audio module 430 may receive a digital audio signal from another component (eg, the processor 450 ) of the electronic device 400 and output a voice signal corresponding thereto.
- the audio signal processor 433 may perform various processing on the input digital audio signal or the digital audio signal received from another component (eg, the processor 450 ) of the electronic device 400 .
- the audio signal processor 433 may apply an adaptive filter to the spoken voice.
- the audio signal processor 433 may input an echo path delay (EPD) to an adaptive filter and apply it to the spoken voice.
- EPD echo path delay
- the audio signal processor 433 may remove an echo by adding or subtracting the output value of the adaptive filter to the spoken voice.
- the memory 440 is for temporarily or permanently storing digital data, and may include at least some of the configuration and/or functions of the memory 130 of FIG. 1 . Also, the memory 440 may store at least a portion of the program 140 of FIG. 1 .
- the memory 440 may store various instructions that may be executed by the processor 450 . Such instructions may include control commands such as logical operations and data input/output that may be recognized and executed by the processor 450 .
- control commands such as logical operations and data input/output that may be recognized and executed by the processor 450 .
- the memory 440 may include a buffer 441 .
- the buffer 411 may point to a partial area of the memory 440 for digital data, and may temporarily store data.
- the memory 440 may store data related to an audio signal (eg, an echo path delay (EPD) and/or an echo reference signal) in a buffer for a predetermined time to be temporarily used, and continuously Data can be updated and saved.
- EPD echo path delay
- the processor 450 may process an operation or data related to control and/or communication of each component of the electronic device 300 .
- the processor 450 may include at least some of the configuration and/or functions of the processor 120 of FIG. 1 .
- the processor 450 is operatively, electrically and/or with components of the electronic device 400 such as the communication module 410 , the sensor module 420 , the audio module 430 , and the memory 440 . Or it may be functionally linked.
- the type and/or amount of operation, operation, and data processing that the processor 450 can perform is not limited, but in this document, a method and method for providing a user and voice-based interaction according to various embodiments of the present disclosure Only the configuration and function of the processor 450 related to the operation of performing the operation will be described.
- the processor 450 may determine whether an external electronic device (eg, the external electronic device 310 of FIG. 3 ) includes a speaker and/or a microphone. According to various embodiments of the present disclosure, when the processor 450 establishes a connection with the external electronic device 310 , the processor 450 communicates with the external electronic device 310 such as device information, hardware information, and/or software information of the external electronic device 310 . Relevant information can be received. The processor 450 may determine whether the connected external electronic device 310 has an interface (eg, a microphone or a microphone) through which a voice may be input, based on information related to the external electronic device 310 .
- an interface eg, a microphone or a microphone
- the processor 450 may determine whether the external electronic device 450 has an interface (eg, a speaker) capable of outputting a voice. According to an embodiment, when information on whether the external electronic device 310 includes a microphone and/or a speaker is required, the processor 450 may check it. For example, when receiving a call connection request from a counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ), the processor 450 receives a call connection request from a user, or with the external electronic device 310 . Immediately after being connected, it may be checked whether the external electronic device 310 has a microphone and/or a speaker.
- a counterpart terminal eg, the counterpart terminal 330 of FIG. 3
- the processor 450 may select a talking device and/or a sign language device.
- the processor 450 selects a device suitable for performing a conversation among the external electronic device 310 or the electronic device 400 as a speaking device, and a device suitable for sign language. can be selected as the hydration device.
- the processor 450 may select either one of the electronic device 400 and the external electronic device 310 as the talking device, and select only one of the electronic device 400 or the external electronic device 310 . You can opt for a hydration device.
- both devices are selected as a talking device, duplication and echo between voice signals acquired by each device may occur, and selecting only one device is suitable for call connection. can do.
- a call connection it may be appropriate for a call connection to select only one of the respective devices as a sign language device in order to prevent overlap between voice signals output from each device, an echo phenomenon, and the like.
- the processor 450 may determine a device suitable for communication by comparing the voice signal received from the electronic device 400 with the voice signal received from the external electronic device 310 .
- the processor 450 may calculate a signal-to-noise ratio (SNR) value based on a voice signal obtained from the audio module 430 of the electronic device 400 .
- the processor 450 may receive a voice signal obtained by the external electronic device 310 having a microphone from the external electronic device 310 and calculate an SNR value based on the received voice signal.
- the processor 450 may compare respective SNR values of the voice signals obtained from the electronic device 400 and the external electronic device 310 to select a device suitable for communication.
- the processor 450 sets a speech-to-echo ratio (SER) value of each of the voice signal acquired from the electronic device 400 and the voice signal acquired from the external electronic device 310 . can be calculated, and each SER value can be compared to select a talking device. According to an embodiment, the processor 450 may determine a device having a larger checked SNR or SER value as a device more suitable for communicating.
- SER speech-to-echo ratio
- the processor 450 may measure the distance between the user (eg, the user 350 of FIG. 3 ) and the electronic device 400 using the sensing information obtained from the sensor module 420 , A distance between the external electronic device 310 and the electronic device 400 may be measured. Also, the processor 450 may measure the distance between the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user 350 . . According to an embodiment, the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively. A closer device can be selected as the talking device.
- the processor 450 is configured to receive device information of the electronic device 400 or information about the audio module 430 stored in the memory 440 , and the external electronic device 310 received from the external electronic device 310 . .
- the processor 450 may estimate the SNR value or the SER value based on the distance of the electronic device 400 or the external electronic device 310 and the microphone reception sensitivity. According to an embodiment, information on an estimate of an SNR or SER value based on a predetermined distance and reception sensitivity may be previously stored in the memory 440 .
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, an SNR value and a SER value) and a device for each device.
- the communication device may be selected based on any one of the information or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing The speaker may be selected based on the location, motion, gesture, or environment information of the user confirmed based on the information.
- location, motion, gesture, or environment information eg, temperature, humidity, or space information
- the processor 450 may determine a device suitable for sign language by comparing a voice signal output from the electronic device 400 with a voice signal output from the external electronic device 310 .
- the processor 450 may calculate a signal-to-noise ratio (SNR) value based on a voice signal output from the audio module 430 of the electronic device 400 .
- SNR signal-to-noise ratio
- the processor 450 is configured to include device information of the electronic device 400 stored in the memory 440 or information about the audio module 430 and an external electronic device ( Based on the device information of the external electronic device 310 received from the 310), information on the audio signal output range of each device (eg, information on the outputable volume range) may be checked, and the audio signal output by each device You can check the acoustic information (eg, SNR value) for .
- the processor 450 may estimate the SNR value or the SER value based on information about the distance and the voice signal output range of the electronic device 400 or the external electronic device 310 .
- information on an estimate of an SNR value based on a predetermined distance and a voice output range may be previously stored in the memory 440 .
- the processor 450 may determine a device having a larger SNR value as a device more suitable for sign language.
- the processor 450 may measure the distance between the user (eg, the user 350 of FIG. 3 ) and the electronic device 400 using the sensing information obtained from the sensor module 420 , A distance between the external electronic device 310 and the electronic device 400 may be measured. Also, the processor 450 may measure the distance between the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user 350 . . According to an embodiment, the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively. A closer device may be selected as the sign language device.
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, an SNR value and a SER value) and a device for each device.
- the sign language device may be selected based on any one of the information, or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the processor 450 may control a voice input interface and/or a voice output interface of a talking device and/or a receiving device.
- the processor 450 selects a sign language device and a talking device from among the electronic device 400 or the external electronic device 310, respectively, the talking device and the sign language device may be the same electronic device, but may be different electronic devices.
- the processor 450 activates only a voice input interface (eg, a microphone) of the talk device and , the voice input interface of the sign language may be controlled to be deactivated.
- the processor 450 may control to activate only the voice output interface (eg, a speaker) of the sign language device and to deactivate the voice output interface of the sign language device.
- the processor 450 may control a voice provided in any one device selected as a sign language device among the electronic device 400 and the plurality of external electronic devices 310 . Control to activate only the output interface and deactivate the audio output interfaces of all other devices, activate only the voice input interface provided in one device selected as the talker, and disable the voice input interfaces of all other devices can do. According to an exemplary embodiment, when the talker and the receiver are selected as the same device, the processor 450 activates only the voice input interface and the voice output interface of the device selected as the talker and the receiver, and the voice input interfaces of all other devices. and the voice output interface may be controlled to be deactivated.
- the processor 450 may transmit a signal or command for controlling the voice input/output of a voice interface (eg, a microphone or a speaker) of the external electronic device 310 to the connected external electronic device 310 .
- a voice interface eg, a microphone or a speaker
- the talking device and the receiving device selected by the processor 450 may be the same device, and the electronic device 400 and all other external electronic devices connected to the electronic device 400 and having a voice interface (eg, a microphone or a speaker)
- the device 310 may be selected as a talking device or a receiving device, in this document, for convenience, a case where the talking device and the receiving device are different from each other will be described.
- the processor 450 may cancel an echo that may be generated in the communication device.
- an echo may be generated when the communication device receives the communication voice.
- a sign language voice output by the sign language device may be input to the talk device and act as an echo.
- the electronic device 400 may be connected to a variety of external electronic devices, and the selected outgoing talker or receiver may be different from each other. Values may also vary.
- the processor 450 may adaptively cancel echoes having various characteristics.
- the processor 450 may obtain an echo reference signal and store the obtained echo reference signal in the memory 440 .
- the echo reference signal may be a signal to be output by the sign language device.
- the echo reference signal may be a sign language voice.
- the echo reference signal may be a signal in which a sign language is pre-processed (eg, scaled).
- the processor 450 may receive an echo reference signal from the external electronic device 310 . When the external electronic device 310 is selected as the sign language device, the processor 450 receives a signal related to the counterpart's voice from the counterpart terminal (eg, the counterpart terminal 330 in FIG. 3 ) and sends the signal to the external electronic device 310 .
- the external electronic device 310 may pre-process a signal related to the received counterpart's voice in order to output a sign language voice using the provided speaker.
- the processor 450 may receive, as an echo reference signal, a signal processed by the external electronic device 310 to output a sign language from the external electronic device 310 .
- the processor 450 may obtain a signal related to the counterpart's voice received from the counterpart terminal 330 or a signal obtained by preprocessing the signal as the echo reference signal.
- the processor 450 may store the acquired echo reference signal in the memory 440 .
- the processor 450 may update and store the acquired echo reference signal in the buffer 441 .
- the processor 450 may check an echo path delay (EPD) value of an echo included in a spoken voice.
- the EPD value may be, for example, a difference between the arrival time of the echo reference signal received from the sign language device to the processor 450 and the arrival time of the audio signal output from the sign language device obtained from the communication device and arrived at the processor 450 .
- the audio signal may be transmitted through different paths for each device, and a minute difference in arrival time may occur.
- the EPD value may have a specific correlation with the distance between the talking device and the receiving device. For example, the EPD value may have a positive correlation with the distance between the talking device and the receiving device.
- the EPD value may be related to a speed at which the sign language device processes and outputs the sign language voice.
- the EPD value may be changed according to various variables such as a distance, a state, a setting environment, and a surrounding environment (eg, a surrounding structure) between the talking device and the receiving device.
- the processor 450 may check the EPD value and apply the checked EPD value to the echo reference signal.
- the processor 450 may remove the echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the output of the adaptive filter is based on a least mean square (LMS), normalized least mean square (NLMS), or root mean square (RMS) algorithm. can be updated.
- LMS least mean square
- NLMS normalized least mean square
- RMS root mean square
- the processor 450 may check the EPD initial value stored in the memory 440 as the EPD value.
- the memory 440 may store a preset EPD value, or may estimate the EPD value when connected to the external electronic device 310 .
- the processor 450 may store the estimated EPD value in the memory 440 and check the existing estimated EPD value stored in the memory 440 when connecting to the external electronic device 310 .
- the processor 450 may estimate the EPD value.
- the processor 450 may store the echo reference signal in the buffer 441 and continuously update the adaptive filter by applying the EPD value.
- the processor 450 may determine whether the EPD value needs to be changed.
- the processor 450 changes the EPD when the echo reference signal is input beyond the processing range (eg, length) of the adaptive filter, that is, when the EPD exceeds the processing range of the adaptive filter. This may be considered necessary. According to an embodiment, the processor 450 may determine that EPD change is necessary when echo cancellation is not performed by more than a specific threshold value, for example, when an echo signal is detected to have a magnitude greater than or equal to a specific threshold value.
- the processor 450 may continuously update the echo reference signal in the buffer by applying the set EPD value. According to various embodiments, the processor 450 may increase/decrease a predetermined time interval from the existing EPD value and apply it to the echo reference. According to an embodiment, the processor 450 applies each of the time values increased or decreased by a predetermined time interval from the existing EPD value to the echo reference signal, and a coefficient of correlation between the echo reference signal to which each time value is applied and the outgoing voice. ) can be calculated individually. According to an embodiment, the time value for increasing or decreasing the existing EPD value may be a value greater than the length of the adaptive filter. According to an embodiment, the time value to increase or decrease may be a multiple of the adaptive filter length.
- the processor 450 changes the EPD in a direction having the largest correlation coefficient based on the comparison of the calculated correlation coefficient values, stores the changed EPD as the estimated EPD, and stores the echo reference signal in the buffer ( 441) can be shifted within.
- the processor 450 may change the time value to increase or decrease in the EPD. For example, there may be a need to search for a wider range in the existing EPD values.
- the processor 450 applies a time value (eg, a second time value) greater than the first applied time value (eg, a first time value) to The same assumption can be repeated.
- the processor 450 estimates an EPD value (eg, a first EPD estimate) using a time value greater than the length of the adaptive filter (eg, a first estimate), and then uses a small time value to A precise estimate (eg, a second estimate) may be performed.
- the second estimation may be performed, for example, by applying a time value (eg, a third time value) that is smaller than the length of the adaptive filter.
- the first time value may be smaller than the third time value
- the third time value may be smaller than the second time value.
- the processor 450 increases or decreases a third time value with respect to the first EPD estimated value obtained in the first estimation, and adds the increased value, the non-increased value, and the decreased value to the echo reference signal, respectively.
- the correlation coefficient between the spoken voice and each applied signal can be calculated.
- the processor 450 may estimate (eg, second estimate) the EPD by comparing each correlation coefficient and increasing or decreasing the EPD in the direction of a value having the largest correlation coefficient.
- the processor 450 may estimate the EPD value and check the estimated EPD value.
- the processor 450 may update an adaptive filter.
- the processor 450 may update the adaptive filter based on the echo reference signal delayed by the checked EPD value, and the transmitted voice.
- the output of the adaptive filter is updated based on a least mean square (LMS), normalized least mean square (NLMS) or root mean square (RMS) algorithm.
- LMS least mean square
- NLMS normalized least mean square
- RMS root mean square
- the processor 450 may cancel the echo using an output value of the adaptive filter.
- the processor 450 may remove the echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the processor 450 may transmit the echo-removed communication voice to the counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ).
- FIG. 5 is a flowchart illustrating an operation of an electronic device controlling a talking device and a receiving device according to various embodiments of the present disclosure
- the operation of the electronic device eg, the electronic device 400 of FIG. 4
- a processor eg, the processor 450 of FIG. 4 included in the electronic device 400 .
- the processor 450 may determine whether an external electronic device (eg, the external electronic device 310 of FIG. 3 ) includes a speaker and/or a microphone. According to various embodiments of the present disclosure, when the processor 450 establishes a connection with the external electronic device 310 , the processor 450 communicates with the external electronic device 310 such as device information, hardware information, and/or software information of the external electronic device 310 . Relevant information can be received. The processor 450 may determine whether the connected external electronic device 310 has an interface (eg, a microphone or a microphone) through which a voice may be input, based on information related to the external electronic device 310 .
- an interface eg, a microphone or a microphone
- the processor 450 may determine whether the external electronic device 450 has an interface (eg, a speaker) capable of outputting a voice. According to an embodiment, the processor 450 may check if information on whether the external electronic device 310 includes a microphone and/or a speaker is necessary. For example, when receiving a call connection request from a counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ), the processor 450 receives a call connection request from a user, or with the external electronic device 310 . Immediately after being connected, it may be checked whether the external electronic device 310 has a microphone and/or a speaker.
- a counterpart terminal eg, the counterpart terminal 330 of FIG. 3
- the processor 450 may perform operation 520 when the external electronic device (eg, the external electronic device 310 of FIG. 3 ) includes a speaker and/or a microphone. Also, in an embodiment, when the external electronic device (eg, the external electronic device 310 of FIG. 3 ) does not include a speaker and/or a microphone, the processor 450 may repeatedly perform operation 510 .
- the processor 450 may be configured to, when the external electronic device (eg, the external electronic device 310 of FIG. 3 ) does not include a speaker and/or a microphone, another external electronic device (eg, FIG. 3 ) It may be confirmed whether a communication connection (eg, the first network 198 or the second network 199 of FIG. 1 ) has been established with the electronic device 102 or the electronic device 104 of FIG. 1 . For example, when a communication connection is made with another external electronic device instead of the external electronic device, the processor 450 determines whether the other external electronic device has a voice interface (eg, a speaker and/or a microphone (microphone)). can judge In an embodiment, when the other external electronic device includes a voice interface (eg, a speaker and/or a microphone (microphone)), operations 520 to 550 are performed based on the electronic device 400 and another external electronic device. can
- the processor 450 may select a sign language device and/or a communication device.
- the processor 450 selects a device suitable for performing a conversation among the external electronic device 310 or the electronic device 400 as a speaking device, and a device suitable for sign language. can be selected as the hydration device.
- the processor 450 may select either one of the electronic device 400 and the external electronic device 310 as the talking device, and select only one of the electronic device 400 or the external electronic device 310 . You can opt for a hydration device.
- both devices are selected as a talking device, duplication and echo between voice signals acquired by each device may occur, and selecting only one device is suitable for call connection. can do.
- a call connection it may be appropriate for a call connection to select only one of the respective devices as a sign language device in order to prevent overlap between voice signals output from each device, an echo phenomenon, and the like.
- the processor 450 may determine a device suitable for communication by comparing the voice signal received from the electronic device 400 with the voice signal received from the external electronic device 310 .
- the processor 450 may perform a signal-to-noise ratio (SNR) based on a voice signal acquired from an audio module of the electronic device 400 (eg, the audio module 430 of FIG. 4 ). value can be calculated.
- the processor 450 may receive a voice signal obtained by the external electronic device 310 having a microphone from the external electronic device 310 and calculate an SNR value based on the received voice signal.
- the processor 450 may compare respective SNR values of the voice signals obtained from the electronic device 400 and the external electronic device 310 to select a device suitable for communication.
- the processor 450 sets a speech-to-echo ratio (SER) value of each of the voice signal acquired from the electronic device 400 and the voice signal acquired from the external electronic device 310 . can be calculated, and each SER value can be compared to select a talking device.
- the processor 450 may determine a device having a larger checked SNR or SER value as a device more suitable for communicating.
- the processor 450 uses the sensing information obtained from the sensor module (eg, the sensor module 420 of FIG. 4 ) to the user (eg, the user 350 of FIG. 3 ) and the electronic device 400 . ) may be measured, and a distance between the external electronic device 310 and the electronic device 400 may be measured.
- the processor 450 is configured to operate the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user (eg, the user 350 of FIG. 3 ). ) can be measured. According to an embodiment, the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively. A closer device can be selected as the talking device. According to an embodiment, the processor 450 receives the device information of the electronic device 400 or information about the audio module 430 stored in the memory 440 and the external electronic device 310 from the external electronic device 310 .
- the microphone reception sensitivity of each device may be checked based on the device information of , and a communication device may be selected based on the information on the microphone reception sensitivity.
- the processor 450 may estimate the SNR value or the SER value based on the distance of the electronic device 400 or the external electronic device 310 and the microphone reception sensitivity.
- information on an estimate of an SNR or SER value based on a predetermined distance and reception sensitivity may be previously stored in the memory 440 .
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, an SNR value and a SER value) and a device for each device.
- the communication device may be selected based on any one of the information or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing The speaker may be selected based on the location, motion, gesture, or environment information of the user confirmed based on the information.
- the processor 450 may determine a device suitable for sign language by comparing a voice signal output from the electronic device 400 with a voice signal output from the external electronic device 310 .
- the processor 450 may calculate a signal-to-noise ratio (SNR) value based on a voice signal output from the audio module 430 of the electronic device 400 .
- SNR signal-to-noise ratio
- the processor 450 is configured to include device information of the electronic device 400 stored in the memory 440 or information about the audio module 430 and an external electronic device ( Based on the device information of the external electronic device 310 received from the 310), information on the audio signal output range of each device (eg, information on the outputable volume range) may be checked, and the audio signal output by each device You can check the acoustic information (eg, SNR value) for .
- the processor 450 may estimate the SNR value or the SER value based on information about the distance and the voice signal output range of the electronic device 400 or the external electronic device 310 .
- information on an estimate of an SNR value based on a predetermined distance and a voice output range may be previously stored in the memory 440 .
- the processor 450 may determine a device having a larger SNR value as a device more suitable for sign language.
- the processor 450 may measure the distance between the user (eg, the user 350 of FIG. 3 ) and the electronic device 400 using the sensing information obtained from the sensor module 420 , A distance between the external electronic device 310 and the electronic device 400 may be measured.
- the processor 450 may measure the distance between the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user 350 . .
- the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively.
- a closer device may be selected as the sign language device.
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, an SNR value and a SER value) and a device for each device.
- the sign language device may be selected based on any one of the information, or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the processor 450 may control a voice input interface and/or a voice output interface of a talking device and/or a receiving device.
- the processor 450 selects a sign language device and a talking device from among the electronic device 400 or the external electronic device 310 , respectively, the talking device and the sign language device may be the same electronic device, but may be different electronic devices.
- the processor 450 activates only a voice input interface (eg, a microphone) of the talk device and , the voice input interface of the sign language may be controlled to be deactivated.
- the processor 450 may control to activate only the voice output interface (eg, a speaker) of the sign language device and to deactivate the voice output interface of the talk device.
- the processor 450 when there are a plurality of external electronic devices 310 , the processor 450 outputs a voice provided in any one device selected as a sign language device among the electronic device 400 and the plurality of external electronic devices 310 . You can control to activate only the interface and deactivate the voice output interfaces of all other devices, activate only the voice input interface provided in one device selected as the talking device, and disable the voice input interfaces of all other devices.
- the processor 450 when the talking device and the receiving device are selected as the same device, the processor 450 activates only the voice input interface and the voice output interface of the device selected as the talking device and the receiving device, and the voice input interfaces of all other devices. and the voice output interface may be controlled to be deactivated. According to an embodiment, the processor 450 may transmit a signal or command for controlling the voice input/output of a voice interface (eg, a microphone or a speaker) of the external electronic device 310 to the connected external electronic device 310 .
- a voice interface eg, a microphone or a speaker
- the processor 450 may acquire and store an echo reference signal.
- the echo reference signal may be a signal to be output by the sign language device.
- the echo reference signal may be a sign language voice.
- the echo reference signal may be a signal in which a sign language is pre-processed (eg, scaled).
- the processor 450 may receive an echo reference signal from the external electronic device 310 .
- the processor 450 receives a signal related to the counterpart's voice from the counterpart terminal (eg, the counterpart terminal of FIG. 3 (eg, the counterpart terminal 330 of FIG.
- the processor 450 may be transmitted to the external electronic device 310, and the external electronic device 310 may pre-process a signal related to the received counterpart's voice in order to output a sign language voice using the provided speaker.
- a signal processed by the external electronic device 310 to output a sign language may be received, as an echo reference signal, from the external electronic device 310.
- the processor 450 is the counterpart terminal.
- a signal related to the other party's voice received from the 330 or a signal obtained by preprocessing the signal may be acquired as an echo reference signal.
- the processor 450 stores the acquired echo reference signal in a memory (eg, FIG. It may be stored in the memory 440 of 4.
- the processor 450 may update and store the acquired echo reference signal in a buffer (eg, the buffer 441 of FIG. 4 ).
- the processor 450 may check an EPD value.
- the processor 450 may check the EPD initial value stored in the memory 440 as the EPD value.
- the memory 440 may store a preset EPD value, or may estimate the EPD value when connected to the external electronic device 310 .
- the processor 450 may store the estimated EPD value in the memory 440 and check the existing estimated EPD value stored in the memory 440 when connecting to the external electronic device 310 .
- the processor 450 may estimate the EPD value.
- the processor 450 may store the echo reference signal in the buffer 441 and continuously update the adaptive filter by applying the EPD value.
- the processor 450 may determine whether the EPD value needs to be changed. According to an embodiment, the processor 450 changes the EPD when the echo reference signal is input beyond the processing range (eg, length) of the adaptive filter, that is, when the EPD exceeds the processing range of the adaptive filter. This may be considered necessary. According to an embodiment, the processor 450 may determine that EPD change is necessary when echo cancellation is not performed by more than a specific threshold value, for example, when an echo signal is detected to have a magnitude greater than or equal to a specific threshold value.
- the processor 450 may continuously update the echo reference signal in the buffer by applying the set EPD value. According to various embodiments, the processor 450 may increase/decrease a predetermined time interval from the existing EPD value and apply it to the echo reference. According to an embodiment, the processor 450 applies each of the time values increased or decreased by a predetermined time interval from the existing EPD value to the echo reference signal, and a coefficient of correlation between the echo reference signal to which each time value is applied and the outgoing voice. ) can be calculated individually. According to an embodiment, the time value for increasing or decreasing the existing EPD value may be a value greater than the length of the adaptive filter. According to an embodiment, the time value to increase/decrease may be a multiple of the adaptive filter length.
- the processor 450 changes the EPD in a direction having the largest correlation coefficient based on the comparison of the calculated correlation coefficient values, stores the changed EPD as the estimated EPD, and stores the echo reference signal in the buffer ( 441) can be shifted within.
- the processor 450 may change the time value to increase or decrease in the EPD. For example, there may be a need to search for a wider range in the existing EPD values.
- the processor 450 applies a time value (eg, a second time value) greater than the first applied time value (eg, a first time value) to The same assumption can be repeated.
- the processor 450 estimates the EPD value using a time value greater than the length of the adaptive filter (eg, first estimation), and then performs precise estimation (eg, second estimation) using a small time value. ) can be done.
- the second estimation may be performed, for example, by applying a time value (eg, a third time value) that is smaller than the length of the adaptive filter.
- the processor 450 may estimate the EPD value and check the estimated EPD value.
- the processor 450 may cancel the echo signal.
- the processor 450 may check the EPD value, apply the checked EPD value, and apply it to the echo reference signal.
- the processor 450 may remove the echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the output of the adaptive filter is updated based on a least mean square (LMS), normalized least mean square (NLMS) or root mean square (RMS) algorithm.
- LMS least mean square
- NLMS normalized least mean square
- RMS root mean square
- the processor 450 may transmit the echo-removed communication voice to the counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ).
- FIG. 6 is a diagram illustrating an operation of controlling a talking device and a receiving device when an electronic device is connected to a wearable device according to various embodiments of the present disclosure
- the electronic device 300 may control outgoing and sign language when a call is connected in a connection environment with the external electronic device 310 .
- the external electronic device 310 may be a wearable device (eg, a wireless earphone).
- the form, function, and type of the external electronic device 310 are not limited, in FIG. 6 , the external electronic device 310 will be described based on a wearable device (eg, a wireless earphone).
- the electronic device 300 or the external electronic device 310 may select a talking device or a sign language device.
- the electronic device 300 may control the talking device and the receiving device.
- the talking device may mean, for example, a device suitable for talking among the electronic device 300 and the external electronic device 310 connected to the electronic device 300 .
- the electronic device 300 includes sensing information acquired from a sensor included in the electronic device 300 , and a voice input interface (eg, a microphone) provided in each of the electronic device 300 and the external electronic device 310 . ) and the electronic device 300 and the external electronic device 310 may select a talking device based on analysis information on the audio signal of the outgoing voice respectively received. Analysis of the audio signal may include, for example, calculating a signal-to-noise ratio (SNR) value, calculating a speech-to-echo ratio (SER) value, or comparing the calculated SNR or SER value.
- SNR signal-to-noise ratio
- SER speech-to-echo ratio
- the sign language device may refer to, for example, a device suitable for sign language among the electronic device 300 and the external electronic device 310 connected to the electronic device 300 .
- the electronic device 300 uses sensing information acquired by the electronic device 300 and information obtained by estimating a voice that the user 350 can hear from the electronic device 300 or the external electronic device 310 .
- the electronic device 300 and the external electronic device 310 may be compared, and a sign language device may be selected.
- the electronic device 300 includes user behavior, location, state information of the electronic device 300 and/or the external electronic device 310 , and hardware of the electronic device 300 or the external electronic device 310 .
- the talking device and/or the receiving device may be selected based on various data such as information. Referring to FIG.
- a talking device for example, a device suitable for talking may be an electronic device 300 .
- the electronic device 300 may receive a signal having a larger SNR value or a SER value than that of the external electronic device 310 by being positioned in the utterance direction of the user 350 .
- a sign language device for example, a device suitable for sign language, may be an external electronic device 310 .
- the external electronic device 310 may be mounted on the ear of the user 350 and may be more suitable for listening to a sign language voice.
- the external electronic device 310 may be equipped with an active noise-cancellation (ANC) function.
- the electronic device 300 may select a sign language device based on data such as hardware information or software information of the external electronic device 310 .
- a user 350 may perform a call connection based on a video call using the electronic device 300 .
- the electronic device 300 determines that the external electronic device 310 is suitable for sign language while being connected to the external electronic device 310, selects the external electronic device 310 as the sign language device, and the electronic device 300 can be selected as the talking device.
- the electronic device 300 may receive an audio signal regarding the counterpart's voice from the counterpart terminal (eg, the counterpart terminal 330 in FIG. 3 ), and connect the audio signal for the counterpart's voice to the connected external electronic device 310 .
- the electronic device 300 may activate only the voice output interface of the external electronic device 310 and deactivate the voice input interface of the external electronic device 310 so that only the external electronic device 310 outputs a sign language voice. Also, when the electronic device 300 is selected as the communication device, only the voice input interface of the electronic device 300 is activated and the voice output interface of the electronic device 300 is deactivated to receive a sign language voice related to the user 350 voice. can The electronic device 300 may process a signal for the received sign language voice and transmit it to the counterpart terminal 330 .
- FIG. 7 is a diagram illustrating an operation of controlling a talking device and a receiving device when the electronic device is connected to a plurality of external electronic devices according to various embodiments of the present disclosure
- the electronic device 300 may be simultaneously connected to the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device 312 .
- the electronic device 300 performs a call connection while being connected to the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device 312 . It is possible to control the talking device and the receiving device.
- the talking device may include, for example, the electronic device 300 and an external electronic device connected to the electronic device 300 (eg, the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device ( 312)) may mean a device suitable for outgoing speech.
- the electronic device 300 includes sensing information acquired from a sensor provided in the electronic device 300 , the electronic device 300 and an external electronic device (eg, the first external electronic device 310 , the second State information of a voice input interface (eg, a microphone) provided in each of the external electronic device 311 and the third external electronic device 312 , and a call received by the electronic device 300 and each of the plurality of external electronic devices
- the speaker may be selected based on analysis information on the audio signal of the voice.
- Analysis of the audio signal may include, for example, calculating a signal-to-noise ratio (SNR) value, calculating a speech-to-echo ratio (SER) value, or comparing the calculated SNR or SER value.
- the sign language device may mean, for example, a device suitable for sign language among the electronic device 300 and external electronic devices connected to the electronic device 300 .
- the electronic device 300 uses sensing information acquired by the electronic device 300 and information obtained by estimating a voice that the user 350 can hear from the electronic device 300 or an external electronic device.
- 300 and an external electronic device eg, the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device 312 ) may be compared, and a sign language device may be selected.
- the electronic device 300 may store various data such as user behavior, location, state information of the electronic device 300 and/or external electronic device, and hardware information of the electronic device 300 or external electronic device. based on which the talking device and/or the receiving device can be selected.
- the electronic device 300 includes a plurality of connected external electronic devices (eg, the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device 312 ) and When a sign language device and a talk device are selected among the electronic device 300 , a voice input interface of the selected talk device may be activated and a voice output interface of the talk device may be deactivated. According to various embodiments, the electronic device 300 may activate a voice output interface of the selected sign language device and deactivate a voice input interface of the sign language device.
- a sign language device and a talk device When a sign language device and a talk device are selected among the electronic device 300 , a voice input interface of the selected talk device may be activated and a voice output interface of the talk device may be deactivated.
- the electronic device 300 may activate a voice output interface of the selected sign language device and deactivate a voice input interface of the sign language device.
- the electronic device 300 may control to deactivate both the voice input interface and the voice output interface for an external electronic device that is not selected as a talking device or a sign language device. .
- the electronic device 300 when any one of a plurality of external electronic devices other than the electronic device 300 is selected as the sign language device and the other external electronic device is selected as the talk device, the electronic device 300 is the electronic device 300 .
- a voice interface eg, the microphone 431 and the speaker 432 of FIG. 4
- the electronic device 300 selects, as a sign language device, voice information received from the counterpart terminal (eg, the counterpart terminal 330 of FIG.
- an external electronic device eg, the first external electronic device 310 , the second 2 may be transmitted to the external electronic device 311 or the third external electronic device 312 , and an external electronic device (eg, the first external electronic device 310 , the second external electronic device 311 ) and The third external electronic device 312 may receive an outgoing voice.
- an external electronic device eg, the first external electronic device 310 , the second external electronic device 311
- the third external electronic device 312 may receive an outgoing voice.
- the electronic device 300 may cancel an echo that may be generated in the communication device.
- an echo may be generated when the communication device receives the communication voice.
- a sign language voice output by the sign language device may be input to the talk device and act as an echo.
- the electronic device 300 may be connected to various external electronic devices (eg, the first external electronic device 310 , the second external electronic device 311 , and the third external electronic device 312 ). , among which the selected talker or receiver may be different from each other, a value related to a characteristic of an echo (eg, echo path delay (EPD)) may also be different.
- EPD echo path delay
- the electronic device 300 may adaptively cancel echoes having various characteristics.
- the electronic device 300 may obtain an echo reference signal and store the obtained echo reference signal.
- the echo reference signal may be a signal to be output by the sign language device.
- the echo reference signal may be a sign language voice.
- the echo reference signal may be a signal obtained by pre-processing (eg, scaling) a sign language.
- the electronic device 300 is configured to receive a call from an external electronic device (eg, the first external electronic device 310 , the second external electronic device 311 , or the third external electronic device 312 ) selected as the sign language device. An echo reference signal can be received.
- the electronic device 300 When an external electronic device (eg, the first external electronic device 310, the second external electronic device 311, or the third external electronic device 312) is selected as the sign language device, the electronic device 300 is : A signal related to the other party's voice may be received from the other party's terminal 330 in FIG. 3) and transmitted to a sign language device, and the sign language device transmits a signal related to the other party's voice received in order to output a sign language voice using an provided speaker. can be pre-processed.
- the electronic device 300 may receive, as an echo reference signal, a signal processed by the external electronic device to output a sign language from the external electronic device, for example.
- the electronic device 300 may obtain a signal related to the counterpart's voice received from the counterpart terminal 330 or a signal obtained by preprocessing the signal as the echo reference signal.
- the electronic device 300 may check an echo path delay (EPD) value of an echo included in the outgoing voice.
- the EPD value may be, for example, the difference between the arrival time of the echo reference signal received from the sign language device to the electronic device 300 and the time it takes to arrive at the electronic device 300 by acquiring the voice signal output from the sign language device at the talking device have.
- the audio signal may be transmitted through different paths for each device, and a minute difference in arrival time may occur.
- the EPD value may have a specific correlation with the distance between the talking device and the receiving device. For example, the EPD value may have a positive correlation with the distance between the talking device and the receiving device.
- the EPD value may be related to a speed at which the sign language device processes and outputs the sign language voice.
- the EPD value may be changed according to various variables such as a distance, a state, a setting environment, and a surrounding environment (eg, a surrounding structure) between the talking device and the receiving device.
- the electronic device 300 may check the EPD value and apply the checked EPD value to the echo reference signal.
- the electronic device 300 may remove an echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the output of the adaptive filter is updated based on a least mean square (LMS), normalized least mean square (NLMS) or root mean square (RMS) algorithm.
- LMS least mean square
- NLMS normalized least mean square
- RMS root mean square
- the electronic device 300 includes a connected external electronic device (eg, the first external electronic device 310 , the second external electronic device 311 , or the third external electronic device 312 ) and the electronic device ( 300), when a sign language device and a talk device are selected, the voice input interface of the talk device may be activated, and the voice output interface of the talk device may be deactivated and activated.
- the electronic device 300 may activate a voice output interface of the selected sign language device and deactivate a voice input interface of the sign language device.
- the electronic device 300 may control to deactivate both the voice input interface and the voice output interface for an external electronic device that is not selected as a talking device or a sign language device. .
- FIG. 8 is a flowchart illustrating an operation of selecting a talking device and a receiving device when an electronic device is connected to an external electronic device according to various embodiments of the present disclosure
- an operation of an electronic device (eg, the electronic device 400 of FIG. 4 ) selecting a talking device and a sign language device when the electronic device is connected to an external electronic device is performed by a processor included in the electronic device 400 .
- a processor included in the electronic device 400 Each operation of (eg, the processor 450 of FIG. 4 ) may be described.
- the processor 450 may be connected to an external electronic device.
- the processor 450 communicatively uses an external electronic device (eg, the external electronic device 310 of FIG. 3 ) and a communication module (eg, the communication module 410 of FIG. 4 ). ) can be connected (communication connection).
- the processor 450 may be connected to the external electronic device 310 using short-range wireless communication such as Bluetooth, Bluetooth low energy (BLE), or wireless-fidelity (Wi-Fi).
- the external electronic device 310 may be an electronic device existing within a short distance from a user (eg, the user 350 of FIG. 3 ) and/or an electronic device (eg, the electronic device 300 of FIG. 3 ). .
- the external electronic device 310 may have a built-in communication module for performing wireless communication with the processor 450 .
- the external electronic device 310 may be an electronic device having a voice output interface (eg, a speaker) or a voice input interface (eg, a microphone).
- the processor 450 may be connected to the external electronic device 310 using short-range wireless communication to control the operation of the external electronic device 310 and receive data from the external electronic device 310 .
- Various types of information including data for controlling the external electronic device may be received or transmitted to the external electronic device 310 .
- the processor 450 may transmit a predetermined audio signal to the external electronic device 310 and control the external electronic device 310 to output an audio signal received from the processor 450 .
- the processor 450 may receive an audio signal related to voice information input to the external electronic device 310 from the external electronic device 310 .
- the processor 450 may check device information of the external electronic device 310 (operation 820 ), and determine whether the external electronic device 310 includes a speaker and/or a microphone. may (act 830). According to various embodiments, the processor 450 may determine whether an external electronic device (eg, the external electronic device 310 of FIG. 3 ) includes a speaker and/or a microphone. According to various embodiments of the present disclosure, when the processor 450 establishes a connection with the external electronic device 310 , the processor 450 communicates with the external electronic device 310 such as device information, hardware information, and/or software information of the external electronic device 310 . Relevant information can be received.
- the processor 450 may determine whether the connected external electronic device 310 has an interface (eg, a microphone) through which a voice may be input, based on information related to the external electronic device 310 .
- the processor 450 may determine whether the external electronic device 450 has an interface (eg, a speaker) capable of outputting a voice.
- the processor 450 may check if information on whether the external electronic device 310 includes a microphone and/or a speaker is necessary. For example, when receiving a call connection request from a counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ), the processor 450 receives a call connection request from a user, or with the external electronic device 310 . Immediately after being connected, it may be checked whether the external electronic device 310 has a microphone and/or a speaker.
- the processor 450 may perform operation 840 . Also, in an embodiment, when the external electronic device (eg, the external electronic device 310 of FIG. 3 ) does not include a speaker and/or a microphone, the processor 450 may repeatedly perform operation 830 .
- the processor 450 may be configured to, when the external electronic device (eg, the external electronic device 310 of FIG. 3 ) does not include a speaker and/or a microphone, another external electronic device (eg, FIG. 3 ) It may be confirmed whether a communication connection (eg, the first network 198 or the second network 199 of FIG. 1 ) has been established with the electronic device 102 or the electronic device 104 of FIG. 1 . For example, when a communication connection is made with another external electronic device instead of the external electronic device, the processor 450 determines whether the other external electronic device has a voice interface (eg, a speaker and/or a microphone (microphone)). can judge In an embodiment, when the other external electronic device includes a voice interface (eg, a speaker and/or a microphone (microphone)), operations 840 to 860 are performed based on the electronic device 400 and another external electronic device. can
- the processor 450 may select a talking device and/or a sign language device.
- the processor 450 selects a device suitable for performing a conversation among the external electronic device 310 or the electronic device 400 as a speaker device, and a device suitable for sign language. can be selected as the hydration device.
- the processor 450 may select either one of the electronic device 400 and the external electronic device 310 as the talking device, and select only one of the electronic device 400 or the external electronic device 310 . You can opt for a hydration device.
- both devices are selected as a talking device, duplication and echo between voice signals acquired by each device may occur, and selecting only one device is suitable for call connection. can do.
- a call connection it may be appropriate for a call connection to select only one of the respective devices as a sign language device in order to prevent overlap between voice signals output from each device, an echo phenomenon, and the like.
- the processor 450 may check sensor information and/or compare acoustic signals. According to various embodiments, the processor 450 may determine a device suitable for communication by comparing the voice signal received from the electronic device 400 with the voice signal received from the external electronic device 310 . For example, the processor 450 may calculate a signal-to-noise ratio (SNR) value based on a voice signal obtained from the audio module 430 of the electronic device 400 . Also, the processor 450 may receive a voice signal obtained by the external electronic device 310 having a microphone from the external electronic device 310 and calculate an SNR value based on the received voice signal.
- SNR signal-to-noise ratio
- the processor 450 may compare respective SNR values of the voice signals obtained from the electronic device 400 and the external electronic device 310 to select a device suitable for communication. According to an embodiment, the processor 450 sets a speech-to-echo ratio (SER) value of each of the voice signal acquired from the electronic device 400 and the voice signal acquired from the external electronic device 310 . can be calculated, and each SER value can be compared to select a talking device. According to an embodiment, the processor 450 may determine a device having a larger checked SNR or SER value as a device more suitable for communicating. According to an embodiment, the processor 450 may measure the distance between the user (eg, the user 350 of FIG.
- SER speech-to-echo ratio
- a distance between the external electronic device 310 and the electronic device 400 may be measured.
- the processor 450 may measure the distance between the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user 350 .
- the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively. A closer device can be selected as the talking device.
- the processor 450 receives the device information or the audio module 430 information of the electronic device 400 stored in the memory 440 and the external electronic device 310 from the external electronic device 310 .
- the microphone reception sensitivity of each device may be checked based on the device information of , and a communication device may be selected based on the information on the microphone reception sensitivity.
- the processor 450 may estimate the SNR value or the SER value based on the distance of the electronic device 400 or the external electronic device 310 and the microphone reception sensitivity.
- information on an estimate of an SNR or SER value based on a predetermined distance and reception sensitivity may be previously stored in the memory 440 .
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, SNR value and SER value) and a device for each device.
- the communication device may be selected based on any one of the information or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing The speaker may be selected based on the location, motion, gesture, or environment information of the user confirmed based on the information.
- the processor 450 may determine a device suitable for sign language by comparing a voice signal output from the electronic device 400 with a voice signal output from the external electronic device 310 .
- the processor 450 may calculate a signal-to-noise ratio (SNR) value based on a voice signal output from the audio module 430 of the electronic device 400 .
- SNR signal-to-noise ratio
- the processor 450 is configured to include device information of the electronic device 400 stored in the memory 440 or information about the audio module 430 and an external electronic device ( Based on the device information of the external electronic device 310 received from the 310), information on the audio signal output range of each device (eg, information on the outputable volume range) may be checked, and the audio signal output by each device You can check the acoustic information (eg, SNR value) for .
- the processor 450 may estimate the SNR value or the SER value based on information about the distance and the voice signal output range of the electronic device 400 or the external electronic device 310 .
- information on an estimate of an SNR value based on a predetermined distance and a voice output range may be previously stored in the memory 440 .
- the processor 450 may determine a device having a larger SNR value as a device more suitable for sign language. According to an embodiment, the processor 450 may measure the distance between the user (eg, the user 350 of FIG. 3 ) and the electronic device 400 using the sensing information obtained from the sensor module 420 , A distance between the external electronic device 310 and the electronic device 400 may be measured. Also, the processor 450 may measure the distance between the external electronic device 310 and the user 350 based on the distance from the electronic device 400 to the external electronic device 310 and the distance to the user 350 . .
- the processor 450 is configured to select one of the external electronic device 310 and the electronic device 400 based on information on distances between the electronic device 400 , the user 350 , and the external electronic device 310 , respectively.
- a closer device may be selected as the sign language device.
- the processor 450 may include information about a distance between the external electronic device 310 and the electronic device 400 and/or information about sound (eg, an SNR value and a SER value) and a device for each device.
- the sign language device may be selected based on any one of the information, or a combination of at least some of them.
- the processor 450 may check the user's location, motion, gesture, or environment information (eg, temperature, humidity, or space information) based on the sensing information obtained from the sensor module 420 , and the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the sensing A sign language device may be selected based on the user's location, motion, gesture, or environment information confirmed based on the information.
- the processor 450 may control a voice input interface and/or a voice output interface of the talking device and/or the receiving device.
- the processor 450 selects a sign language device and a talking device from among the electronic device 400 or the external electronic device 310 , respectively, the talking device and the sign language device may be the same electronic device, but may be different electronic devices.
- the processor 450 activates only a voice input interface (eg, a microphone) of the talk device and , the voice input interface of the sign language may be controlled to be deactivated.
- the processor 450 may control to activate only the voice output interface (eg, a speaker) of the sign language device and to deactivate the voice output interface of the talk device.
- the processor 450 when there are a plurality of external electronic devices 310 , the processor 450 outputs a voice provided in any one device selected as a sign language device among the electronic device 400 and the plurality of external electronic devices 310 . You can control to activate only the interface and deactivate the voice output interfaces of all other devices, activate only the voice input interface provided in one device selected as the talking device, and disable the voice input interfaces of all other devices.
- the processor 450 when the talking device and the receiving device are selected as the same device, the processor 450 activates only the voice input interface and the voice output interface of the device selected as the talking device and the receiving device, and the voice input interfaces of all other devices. and the voice output interface may be controlled to be deactivated.
- the processor 450 may transmit a signal or command for controlling the voice input/output of a voice interface (eg, a microphone or a speaker) of the external electronic device 310 to the connected external electronic device 310 .
- the talking device and the receiving device selected by the processor 450 may be the same device, or all other devices having a voice interface (eg, a microphone or a speaker) connected to the electronic device 400 and the electronic device 400 .
- the external electronic device 310 may be selected as a talking device and/or a receiving device.
- FIG. 9 is a flowchart illustrating an operation in which an electronic device cancels an echo according to various embodiments of the present disclosure
- an operation in which the electronic device (eg, the electronic device 400 of FIG. 4 ) cancels an echo is performed by a processor (eg, the processor 450 of FIG. 4 ) included in the electronic device 400 . ) can be described as each operation.
- the processor 450 may obtain an echo reference signal and store the obtained echo reference signal.
- the echo reference signal may be a signal to be output by the sign language device.
- the echo reference signal may be a sign language voice.
- the echo reference signal may be a signal in which a sign language is pre-processed (eg, scaled).
- the processor 450 may receive an echo reference signal from the external electronic device 310 .
- the processor 450 receives a signal related to the counterpart's voice from the counterpart terminal (eg, the counterpart terminal 330 in FIG. 3 ) and sends the signal to the external electronic device 310 .
- the processor 450 may be transmitted, and the external electronic device 310 may pre-process a signal related to the received counterpart's voice in order to output a sign language voice using the provided speaker.
- the processor 450 may receive, as an echo reference signal, a signal processed by the external electronic device 310 to output a sign language from the external electronic device 310 .
- the processor 450 may obtain, as an echo reference signal, a signal related to the counterpart's voice received from the counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ) or a signal obtained by preprocessing the signal.
- the processor 450 may store the acquired echo reference signal in a memory (eg, the memory 440 of FIG. 4 ).
- the processor 450 may update and store the acquired echo reference signal in a buffer (eg, the buffer 441 of FIG. 4 ).
- the processor 450 may check an echo path delay (EPD) value of an echo included in the outgoing voice.
- the EPD value may be, for example, a difference between the arrival time of the echo reference signal received from the sign language device to the processor 450 and the arrival time of the audio signal output from the sign language device obtained from the communication device and arrived at the processor 450 .
- the audio signal may be transmitted through different paths for each device, and a minute difference in arrival time may occur.
- the EPD value may have a specific correlation with the distance between the talking device and the receiving device. For example, the EPD value may have a positive correlation with the distance between the talking device and the receiving device.
- the EPD value may be related to a speed at which the sign language device processes and outputs the sign language voice.
- the EPD value may be changed according to various variables such as a distance, a state, a setting environment, and a surrounding environment (eg, a surrounding structure) between the talking device and the receiving device.
- the processor 450 may check the EPD value and apply the checked EPD value to the echo reference signal.
- the processor 450 may remove the echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the adaptive filter does not apply the EPD value in order to improve the operation speed, but a predefined table value may be applied.
- the predefined table value may be stored in the memory 440 , for example.
- the processor 450 may update an adaptive filter.
- the processor 450 may update the adaptive filter based on the echo reference signal delayed by the checked EPD value, and the transmitted voice.
- the output of the adaptive filter is updated based on a least mean square (LMS), normalized least mean square (NLMS) or root mean square (RMS) algorithm.
- LMS least mean square
- NLMS normalized least mean square
- RMS root mean square
- the processor 450 may cancel an echo using an output value of the adaptive filter.
- the processor 450 may remove the echo by applying the EPD value to the echo reference signal, inputting it to an adaptive filter, and adding or subtracting the output value of the adaptive filter to the spoken voice.
- the processor 450 may transmit the call voice from which the echo is removed to the counterpart terminal (eg, the counterpart terminal 330 of FIG. 3 ).
- EPD echo path delay
- an operation in which the electronic device (eg, the electronic device 400 of FIG. 4 ) checks an echo path delay (EPD) value is performed by a processor (eg, the processor of FIG. 4 ) included in the electronic device 400 . (450)) can be described as each operation.
- EPD echo path delay
- the processor 450 may cancel the echo by applying the EDP initial value.
- the EPD initial value may be, for example, an EPD value previously stored in a memory (eg, the memory 440 of FIG. 4 ).
- the processor 450 may cancel the echo as in the operation 940 of FIG. 9 (eg, operation 940 of FIG. 9 ) by using the EPD initial value.
- the processor 450 may check the EPD initial value stored in the memory 440 as the EPD value.
- the memory 440 may store a preset EPD value, or may estimate the EPD value when connected to the external electronic device 310 .
- the processor 450 may store the estimated EPD value in the memory 440 and check the existing estimated EPD value stored in the memory 440 when connecting to the external electronic device 310 .
- the processor 450 may determine whether an EPD change is necessary. According to various embodiments, the processor 450 may determine whether it is necessary to change the EPD value. According to an embodiment, when the echo reference signal is input beyond the processing range (eg, length) of the adaptive filter, for example, when the EPD exceeds the processing range of the adaptive filter, It may be determined that EPD change is necessary. According to an embodiment, the processor 450 may determine that EPD change is necessary when echo cancellation is not performed by more than a specific threshold value, for example, when an echo signal is detected to have a magnitude greater than or equal to a specific threshold value.
- a specific threshold value for example, when an echo signal is detected to have a magnitude greater than or equal to a specific threshold value.
- operation 1030 may be performed. Also, in an embodiment, if the processor 450 does not determine that the EPD change is necessary, it may repeatedly perform operation 1020 .
- the processor 450 may perform operations 1030 to 1080 .
- the processor 450 may start a first estimation of the EPD value.
- the processor 450 may store the echo reference signal in the buffer 411 and continuously update the adaptive filter by applying the EPD value.
- the processor 450 may apply a delay in which the first time value is increased or decreased to the echo reference signal.
- the processor 450 may continuously update the echo reference signal in the buffer 441 by applying the set EPD value.
- the processor 450 may increase/decrease a predetermined time interval from the existing EPD value and apply it to the echo reference.
- the time value for increasing or decreasing the existing EPD value may be a value greater than the length of the adaptive filter.
- the time value to increase/decrease may be a multiple of the adaptive filter length.
- the processor 450 changes the EPD in a direction having the largest correlation coefficient based on the comparison of the calculated correlation coefficient values, stores the changed EPD as the estimated EPD, and stores the echo reference signal in the buffer ( 441) can be shifted within.
- the processor 450 applies each time value increased or decreased by a predetermined time interval from the existing EPD value to the echo reference signal, and the correlation coefficient ( coefficient of correlation) can be calculated, respectively, and the EPD value can be estimated.
- the processor 450 may change the time value to increase or decrease in the EPD. For example, there may be a need to search for a wider range in the existing EPD values.
- the processor 450 applies a time value (eg, a second time value) greater than the first applied time value (eg, a first time value) to The same assumption can be repeated.
- the processor 450 estimates an EPD value (eg, a first EPD estimate) using a time value that is larger than the length of the adaptive filter (eg, a first estimate), and then a small time value can be used to perform precise estimation (eg, second estimation).
- the second estimation may be performed, for example, by applying a time value (eg, a third time value) that is smaller than the length of the adaptive filter.
- the processor 450 increases or decreases a third time value with respect to the first EPD estimated value obtained in the first estimation, and adds the increased value, the non-increased value, and the decreased value to the echo reference signal, respectively.
- the correlation coefficient between the spoken voice and each applied signal can be calculated.
- the processor 450 may estimate (eg, second estimate) the EPD by comparing each correlation coefficient and increasing or decreasing the EPD in the direction of a value having the largest correlation coefficient. According to an embodiment, the processor 450 may estimate the EPD value and check the estimated EPD value.
- An electronic device may include a communication module; sensor module; a sound input module including a microphone; a sound output module including a speaker; a memory including a buffer; and a processor operatively connected to the communication module, the sensor module, the sound input module, the sound output module, and the memory, wherein the processor is communicatively connected to an external electronic device and , check whether the external electronic device includes at least one speaker and/or at least one microphone, and when the external electronic device includes a speaker, based on sensing information received from the sensor module during call connection When a sign language device for outputting a sign language is selected from among the electronic device and the external electronic device, and the external electronic device includes a microphone, a voice signal received using the sound input module during a call connection and the external electronic device selects a talking device to receive an outgoing voice from among the electronic device and the external electronic device based on a result of comparing the voice signals received from the microphone of Activating at least one microphone and deactivating at least one speaker provided in the
- the sensing information includes location information of a user and location information of the external electronic device
- the processor is configured to: It may be configured to check signal to noise ratio (SNR) values of voices to be output from each electronic device, and select the sign language device based on the checked SNR values.
- SNR signal to noise ratio
- the selection of the speaker based on the comparison of the voice signal received using the sound input module and the voice signal received from the microphone of the external electronic device may include the voice signal received through the sound input module and the external electronic device. This may be performed by comparing at least one of SNR values and speech to echo ratio (SER) values of the voice signal received from the microphone of .
- SER speech to echo ratio
- the processor is configured to update an adaptive filter based on a signal obtained by delaying the echo reference signal in the outgoing speech by the checked EPD value and the outgoing speech, and use the adaptive filter to update the outgoing speech. may be set to cancel the echo signal.
- the processor may be configured to receive the echo reference signal from the external electronic device.
- the processor may be configured to generate the echo reference signal using a voice signal received from the other party during the call connection.
- the processor applies a preset EPD initial value to the echo cancellation, and when the EPD initial value has a large value compared to the length of the adaptive filter, the EPD is calculated using a first estimate for estimating the EPD value. It can be set to check.
- the first estimation includes a first signal in which the echo reference signal is delayed by a preset EPD initial value, a second signal in which the echo reference signal is delayed by a decrease of a first time value from the initial EPD value, and the The result of calculating the coefficients of correlation with the spoken voice for each of the third signals in which the echo reference signal is delayed by the increase of the first time value from the initial value of the EPD, and comparing the respective correlation coefficients estimating the EPD value based on
- the first time value may be greater than or equal to the length of the adaptive filter.
- the processor may perform a second estimation after the first estimation, and the second estimation may be performed using a second time value smaller than the first time value.
- the processor checks whether each of the plurality of external electronic devices includes at least one speaker and/or at least one microphone, When at least one of the external electronic devices of .
- a device is selected and at least one of the plurality of external electronic devices includes a microphone
- the processor may be configured to generate an echo reference signal using a voice signal received by the electronic device from a call counterpart.
- a call connection method of an electronic device includes the steps of: checking whether the external electronic device includes at least one speaker and/or at least one microphone; selecting a sign language device to output a sign language voice among the electronic device and the external electronic device based on sensing information when a call is connected when a speaker is provided; When the external electronic device includes at least one microphone, the electronic device and the external electronic device are based on a result of comparing the voice signal received by the electronic device and the voice signal received by the external electronic device during a call connection selecting a talking device from which to receive an outgoing voice; When the talker device and the sign language device are different devices, at least one microphone included in the talk device is activated and at least one speaker is deactivated, and at least one microphone included in the talk device is deactivated and at least one activation of the speaker; obtaining and storing an echo reference signal related to the sign language voice received from the sign language device; checking an echo path delay (EPD) value of an echo signal included in the outgoing voice based on the comparison
- EPD echo path delay
- the sensing information includes location information of a user and location information of the external electronic device
- the operation of selecting the sign language device includes the sensing information, the electronic device, and the volume information of the external electronic device based on the checking signal to noise ratio (SNR) values of voices to be output from each of the electronic device and the external electronic device; and selecting the sign language device based on the identified SNR values.
- SNR signal to noise ratio
- the comparison of the voice signal received using the sound input module and the voice signal received from the microphone of the external electronic device may include the voice signal received through the sound input module and the voice received from the microphone of the external electronic device. Comparing respective SNR values of the signal and at least one of speech to echo ratio (SER) values may be performed.
- SER speech to echo ratio
- the removing of the echo signal may include: updating an adaptive filter based on a signal obtained by delaying the echo reference signal in the spoken voice by the EPD value and the outgoing voice; and removing the echo signal from the spoken voice by using the adaptive filter.
- the acquiring of the echo reference may include receiving the echo reference signal from the external electronic device.
- the acquiring of the echo reference may include generating the echo reference signal using a voice signal received from a call counterpart during the call connection.
- the checking of the EPD may include: applying a preset initial value of the EPD to the echo cancellation; and performing a first estimation of estimating the EPD value when the initial EPD value has a larger value than the length of the adaptive filter.
- the first estimation includes a first signal in which the echo reference signal is delayed by a preset EPD initial value, a second signal in which the echo reference signal is delayed by a decrease of a first time value from the initial EPD value, and the The result of calculating the coefficients of correlation with the spoken voice for each of the third signals in which the echo reference signal is delayed by the increase of the first time value from the initial value of the EPD, and comparing the respective correlation coefficients estimating the EPD value based on
- the electronic device may have various types of devices.
- the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
- a portable communication device eg, a smart phone
- a computer device e.g., a smart phone
- a portable multimedia device e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a wearable device e.g., a smart bracelet
- a home appliance device e.g., a home appliance
- first, second, or first or second may be used simply to distinguish the element from other elements in question, and may refer to elements in other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), 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, for example, logic, logic block, component, or circuit.
- a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
- the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- one or more instructions stored in a storage medium may be implemented as software (eg, the program 140) including
- a processor eg, processor 120
- a device eg, electronic device 101
- the one or more instructions may include code generated by a compiler or code executable by an interpreter.
- the device-readable storage medium 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 include a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
- a signal eg, electromagnetic wave
- the method according to various embodiments disclosed in this document may be provided as included in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed online (eg download or upload), directly between smartphones (eg smartphones).
- a part of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.
- each component (eg, module or program) of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. have.
- one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
- a plurality of components eg, a module or a program
- 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 among the plurality of components prior to the integration. .
- operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, or omitted. or one or more other operations may be added.
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
본 개시에 따른 전자 장치는 외부 전자 장치가 스피커를 구비하는 경우, 호 연결 시 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고, 상기 외부 전자 장치가 마이크로폰을 구비하는 경우, 호 연결 시 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고, 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고, 상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 버퍼에 저장하고, 상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하고, 상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하도록 설정된다.
Description
본 문서는 전자 장치에 관한 것이며, 예를 들어 외부 전자 장치와 연결된 전자 장치가 음성 입출력을 제어하는 방법에 관한 것이다.
근래의 전자 장치는 스마트 홈(smart home) 기능을 탑재하여 근거리에 존재하는 다수의 외부 전자 장치들과 무선 통신을 이용하여 연결되어, 외부 전자 장치들을 통합적으로 제어하거나, 그들에 의하여 통합적으로 제어될 수 있다. 이러한 기능을 수행하는 외부 전자 장치들은 스마트 홈 가전, 스마트 홈 전자 장치 등으로 불리우며, 근거리 무선 통신 기능을 제공하여 단말 장치 등에 의하여 통합적으로 제어될 수 있다.
또한, 전자 장치의 소형화 추세에 맞추어 사용자의 신체 일부에 착용하거나 장착 가능한 웨어러블 장치들이 개발되고 있다. 이러한 웨어러블 장치는 독립적으로 특정 기능을 수행하기도 하며, 사용자의 휴대용 단말 장치와 같은 메인 장치의 기능에 대한 보조 수단으로도 이용되고 있다.
에코(echo)란 전자 장치가 음성 입출력을 동시 진행하는 경우 전자 장치로부터 출력된 음성이 음성 입력에 포함되는 현상을 의미한다. 이러한 에코 현상을 제거하기 위한 기술들이 개발되고 있다.
외부 전자 장치와 연결된 전자 장치의 호 연결 시 이른바 핸즈프리(hands-free) 기능을 이용하여 외부 전자 장치를 이용하여 송화/수화를 제공할 수 있다. 전자 장치는 다양한 외부 전자 장치와 연결될 수 있고, 이러한 외부 전자 장치들은 호 연결 시, 필요한 송화 또는 수화 기능을 제공할 수 있다. 외부 전자 장치와 연결된 경우, 송화 또는 수화에 적합한 장치가 서로 상이할 수 있다.
다양한 외부 전자 장치와 연결되는 경우, 에코 제거가 용이하지 않을 수 있다. 예를 들면, 외부 전자 장치마다 에코 제거를 위한 설정 값이 동일하지 않을 수 있다.
다양한 실시예들에 따르면, 전자 장치는 복수의 외부 전자 장치들과 연결되는 경우, 복수의 외부 전자 장치들 중, 송화 또는 수화에 적합한 장치를 판단할 수 있다. 또한, 전자 장치는 적어도 하나의 외부 전자 장치의 기능(예: 송수화, 및/또는 에코 제거)을 제어함으로써, 적어도 하나의 외부 전자 장치와의 사용성을 향상시킬 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는, 통신 모듈; 센서 모듈; 마이크를 포함하는 음향 입력 모듈; 스피커를 포함하는 음향 출력 모듈; 버퍼(buffer)를 포함하는 메모리; 및 상기 통신 모듈, 상기 센서 모듈, 상기 음향 입력 모듈, 상기 음향 출력 모듈 및 상기 메모리와 동작적(operatively)으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 외부 전자 장치와 통신적(communicatively) 연결되고, 상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하고, 상기 외부 전자 장치가 스피커를 구비하는 경우, 호 연결 시 상기 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고, 상기 외부 전자 장치가 마이크로폰을 구비하는 경우, 호 연결 시 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고, 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고, 상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 상기 버퍼에 저장하고, 상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하고, 상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하도록 설정될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치의 호 연결 방법은, 상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하는 동작, 상기 외부 전자 장치가 적어도 하나의 스피커를 구비하는 경우, 호 연결 시 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하는 동작; 상기 외부 전자 장치가 적어도 하나의 마이크로폰을 구비하는 경우, 호 연결 시 상기 전자 장치가 수신한 음성 신호 및 상기 외부 전자 장치가 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하는 동작; 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하는 동작; 상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 저장하는 동작; 상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하는 동작; 상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 전자 장치는 다양한 외부 전자 장치와 연결된 상황에서, 전자 장치 및 외부 전자 장치들 가운데 송화에 가장 적합한 장치 및/또는 수화에 가장 적합한 장치를 선택함으로써 통화 품질 향상을 기대할 수 있다. 또한, 전자 장치의 호 연결 시 연결된 외부 전자 장치를 능동적으로 제어하여 통화 연결 시 사용자 경험을 향상시킬 수 있다. 또한, 외부 전자 장치를 이용한 송화 또는 수화 시 발생 가능한 다양한 에코를 능동적으로 제어함으로써 통화 품질 향상을 기대할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도면의 설명과 관련하여, 동일 또는 유사한 구성 요소에 대하여는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 1은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예에 따른, 오디오 모듈의 블록도이다.
도 3은 다양한 실시예들에 따른 전자 장치가 외부 전자 장치와 연결 시 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 4는 다양한 실시예들에 따른 전자 장치의 블록도이다.
도 5는 다양한 실시예들에 따른 전자 장치가 송화 장치 및 수화 장치를 제어하는 동작 흐름도이다.
도 6은 다양한 실시예들에 따른 전자 장치가 웨어러블 장치와 연결된 경우 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 7은 다양한 실시예들에 따른 전자 장치가 복수의 외부 전자 장치와 연결된 경우 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 8은 다양한 실시예들에 따른 전자 장치가 외부 전자 장치와 연결 시 송화 장치 및 수화 장치를 선택하는 동작 흐름도이다.
도 9는 다양한 실시예들에 따른 전자 장치가 에코(echo)를 제거하는 동작 흐름도이다.
도 10은 다양한 실시예들에 따른 전자 장치가 EPD(echo path delay) 값을 확인하는 동작 흐름도이다.
도 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는, 다양한 실시에 따른, 오디오 모듈(170)의 블록도(200)이다. 도 2를 참조하면, 오디오 모듈(170)은, 예를 들면, 오디오 입력 인터페이스(210), 오디오 입력 믹서(220), ADC(analog to digital converter)(230), 오디오 신호 처리기(240), DAC(digital to analog converter)(250), 오디오 출력 믹서(260), 또는 오디오 출력 인터페이스(270)를 포함할 수 있다.
오디오 입력 인터페이스(210)는 입력 모듈(150)의 일부로서 또는 전자 장치(101)와 별도로 구성된 마이크(예: 다이나믹 마이크, 콘덴서 마이크, 또는 피에조 마이크)를 통하여 전자 장치(101)의 외부로부터 획득한 소리에 대응하는 오디오 신호를 수신할 수 있다. 예를 들어, 오디오 신호가 외부의 전자 장치(102)(예: 헤드셋 또는 마이크)로부터 획득되는 경우, 오디오 입력 인터페이스(210)는 상기 외부의 전자 장치(102)와 연결 단자(178)를 통해 직접, 또는 무선 통신 모듈(192)을 통하여 무선으로(예: Bluetooth 통신) 연결되어 오디오 신호를 수신할 수 있다. 일실시예에 따르면, 오디오 입력 인터페이스(210)는 상기 외부의 전자 장치(102)로부터 획득되는 오디오 신호와 관련된 제어 신호(예: 입력 버튼을 통해 수신된 볼륨 조정 신호)를 수신할 수 있다. 오디오 입력 인터페이스(210)는 복수의 오디오 입력 채널들을 포함하고, 상기 복수의 오디오 입력 채널들 중 대응하는 오디오 입력 채널 별로 다른 오디오 신호를 수신할 수 있다. 일실시예에 따르면, 추가적으로 또는 대체적으로, 오디오 입력 인터페이스(210)는 전자 장치(101)의 다른 구성 요소(예: 프로세서(120) 또는 메모리(130))로부터 오디오 신호를 입력 받을 수 있다.
오디오 입력 믹서(220)는 입력된 복수의 오디오 신호들을 적어도 하나의 오디오 신호로 합성할 수 있다. 예를 들어, 일실시예에 따르면, 오디오 입력 믹서(220)는, 오디오 입력 인터페이스(210)를 통해 입력된 복수의 아날로그 오디오 신호들을 적어도 하나의 아날로그 오디오 신호로 합성할 수 있다.
ADC(230)는 아날로그 오디오 신호를 디지털 오디오 신호로 변환할 수 있다. 예를 들어, 일실시예에 따르면, ADC(230)는 오디오 입력 인터페이스(210)을 통해 수신된 아날로그 오디오 신호, 또는 추가적으로 또는 대체적으로 오디오 입력 믹서(220)를 통해 합성된 아날로그 오디오 신호를 디지털 오디오 신호로 변환할 수 있다.
오디오 신호 처리기(240)는 ADC(230)를 통해 입력받은 디지털 오디오 신호, 또는 전자 장치(101)의 다른 구성 요소로부터 수신된 디지털 오디오 신호에 대하여 다양한 처리를 수행할 수 있다. 예를 들어, 일실시예에 따르면, 오디오 신호 처리기(240)는 하나 이상의 디지털 오디오 신호들에 대해 샘플링 비율 변경, 하나 이상의 필터 적용, 보간(interpolation) 처리, 전체 또는 일부 주파수 대역의 증폭 또는 감쇄, 노이즈 처리(예: 노이즈 또는 에코 감쇄), 채널 변경(예: 모노 및 스테레오간 전환), 합성(mixing), 또는 지정된 신호 추출을 수행할 수 있다. 일실시예에 따르면, 오디오 신호 처리기(240)의 하나 이상의 기능들은 이퀄라이저(equalizer)의 형태로 구현될 수 있다.
DAC(250)는 디지털 오디오 신호를 아날로그 오디오 신호로 변환할 수 있다. 예를 들어, 일실시예에 따르면, DAC(250)는 오디오 신호 처리기(240)에 의해 처리된 디지털 오디오 신호, 또는 전자 장치(101)의 다른 구성 요소(예: 프로세서(120) 또는 메모리(130))로부터 획득한 디지털 오디오 신호를 아날로그 오디오 신호로 변환할 수 있다.
오디오 출력 믹서(260)는 출력할 복수의 오디오 신호들을 적어도 하나의 오디오 신호로 합성할 수 있다. 예를 들어, 일실시예에 따르면, 오디오 출력 믹서(260)는 DAC(250)를 통해 아날로그로 전환된 오디오 신호 및 다른 아날로그 오디오 신호(예: 오디오 입력 인터페이스(210)을 통해 수신한 아날로그 오디오 신호)를 적어도 하나의 아날로그 오디오 신호로 합성할 수 있다.
오디오 출력 인터페이스(270)는 DAC(250)를 통해 변환된 아날로그 오디오 신호, 또는 추가적으로 또는 대체적으로 오디오 출력 믹서(260)에 의해 합성된 아날로그 오디오 신호를 음향 출력 모듈(155) 를 통해 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)는, 예를 들어, dynamic driver 또는 balanced armature driver 같은 스피커, 또는 리시버를 포함할 수 있다. 일실시예에 따르면, 음향 출력 모듈(155)는 복수의 스피커들을 포함할 수 있다. 이런 경우, 오디오 출력 인터페이스(270)는 상기 복수의 스피커들 중 적어도 일부 스피커들을 통하여 서로 다른 복수의 채널들(예: 스테레오, 또는 5.1채널)을 갖는 오디오 신호를 출력할 수 있다. 일실시예에 따르면, 오디오 출력 인터페이스(270)는 외부의 전자 장치(102)(예: 외부 스피커 또는 헤드셋)와 연결 단자(178)를 통해 직접, 또는 무선 통신 모듈(192)을 통하여 무선으로 연결되어 오디오 신호를 출력할 수 있다.
일실시예에 따르면, 오디오 모듈(170)은 오디오 입력 믹서(220) 또는 오디오 출력 믹서(260)를 별도로 구비하지 않고, 오디오 신호 처리기(240)의 적어도 하나의 기능을 이용하여 복수의 디지털 오디오 신호들을 합성하여 적어도 하나의 디지털 오디오 신호를 생성할 수 있다.
일실시예에 따르면, 오디오 모듈(170)은 오디오 입력 인터페이스(210)를 통해 입력된 아날로그 오디오 신호, 또는 오디오 출력 인터페이스(270)를 통해 출력될 오디오 신호를 증폭할 수 있는 오디오 증폭기(미도시)(예: 스피커 증폭 회로)를 포함할 수 있다. 일실시예에 따르면, 상기 오디오 증폭기는 오디오 모듈(170)과 별도의 모듈로 구성될 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치가 외부 전자 장치와 연결 시 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 3을 참조하면, 전자 장치(300)(예: 도 1의 전자 장치(101))는 외부 전자 장치(310)와 근거리 무선 통신(320)(예: 도 1의 제1 네트워크(198))을 이용하여 통신적으로(communicatively) 연결될 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 블루투스(Bluetooth), BLE(Bluetooth low energy), 및/또는 Wi-Fi(wireless-fidelity)와 같은 근거리 무선 통신을 이용하여 외부 전자 장치(310)와 연결될 수 있다. 예를 들면, 외부 전자 장치(310)는 사용자(350) 및/또는 전자 장치(300)와 근거리 내에 존재하는 전자 장치일 수 있다. 다양한 실시예에 따르면, 사용자(350)는 전자 장치(300)를 사용하는 사람, 또는 전자 장치(300)를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
다양한 실시예에 따르면, 외부 전자 장치(310)는 전자 장치(300)와 무선 통신을 수행하기 위한 통신 모듈(예: 도 1의 통신 모듈(190))을 내장할 수 있다. 다양한 실시예에 따르면, 외부 전자 장치(310)는 음성 출력 인터페이스(예: 스피커, 또는 도 2의 오디오 출력 인터페이스(270)) 또는 음성 입력 인터페이스(예: 마이크로폰, 또는 도 2의 오디오 입력 인터페이스(210))를 구비하는 전자 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 근거리 무선 통신을 이용하여 외부 전자 장치(310)와 연결되어, 외부 전자 장치(310)의 동작을 제어할 수 있고, 외부 전자 장치(310)로부터 데이터를 수신하거나, 외부 전자 장치(310)로 외부 전자 장치를 제어하기 위한 데이터를 포함하는 각종 정보를 전송할 수 있다. 예를 들면, 전자 장치(300)는 외부 전자 장치(310)에 일정한 오디오 신호를 전송하고, 외부 전자 장치(310)가 전자 장치(300)로부터 수신한 오디오 신호를 출력하도록 제어할 수 있다. 또 다른 예를 들면, 전자 장치(300)는 외부 전자 장치(310)에 입력된 음성 정보와 관련된 오디오 신호를 외부 전자 장치(310)로부터 수신할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 호 연결 기능을 제공할 수 있다. 호 연결 기능은, 예를 들면, 호 연결 기능을 제공하는 다른 전자 장치(예: 상대방 단말(330))(이하 상대방 단말(330))과 통화 연결을 수행하는 기능을 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 원거리 무선 통신(340)(예: 도 1의 제2 네트워크(199))을 이용하여 상대방 단말(330)과 통신적으로(communicatively) 연결될 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 셀룰러 통신, LTE, LTE-A, 5G, 또는 인터넷 통신과 같은 원거리 무선 통신을 이용하여 상대방 단말(330)과 연결되어, 호 연결을 수행할 수 있다. 호 연결은, 전자 장치(300)와 상대방 단말(330)이 지원하는 원거리 무선 통신을 통하여 이루어질 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 외부 전자 장치(310)가 연결된 상태에서, 호 연결을 수행하는 경우, 송화 장치 및 수화 장치를 제어할 수 있다. 송화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치(310) 중 송화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 구비한 센서로부터 획득한 센싱 정보, 전자 장치(300) 및 외부 전자 장치(310) 각각이 구비한 음성 입력 인터페이스(예: 마이크로폰)의 상태 정보, 전자 장치(300) 및 외부 전자 장치(310)이 각기 수신한 송화 음성의 오디오 신호에 대한 분석 정보에 기초하여 송화 장치를 선택할 수 있다. 오디오 신호의 분석은, 예를 들면, SNR(signal-to-noise ratio) 값을 계산하거나, SER(speech-to-echo ratio) 값을 계산하는 것, 또는 계산한 SNR 또는 SER 값을 비교하는 것을 포함할 수 있다.
수화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치(310) 중 수화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 획득한 센싱 정보, 사용자(350)가 전자 장치(300) 또는 외부 전자 장치(310)로부터 청취 가능한 음성을 추정한 정보를 이용하여 전자 장치(300)와 외부 전자 장치(310)를 비교하고, 수화 장치를 선택할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 사용자의 행동, 위치, 전자 장치(300) 및/또는 외부 전자 장치(310)의 상태 정보, 전자 장치(300) 또는 외부 전자 장치(310)의 하드웨어 정보와 같은 다양한 데이터에 기초하여 송화 장치 및/또는 수화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 연결된 외부 전자 장치(310) 및 전자 장치(300) 가운데 수화 장치 및 송화 장치를 선택한 경우, 선택된 송화 장치의 음성 출력 인터페이스를 비활성화하고, 송화 장치의 음성 입력 인터페이스만 활성화 할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 선택된 수화 장치의 음성 출력 인터페이스를 활성화하고, 수화 장치의 음성 입력 인터페이스를 비활성화 할 수 있다. 일 실시예에 따르면, 전자 장치(300)는 연결된 외부 전자 장치가 복수인 경우, 송화 장치 및/또는 수화 장치로 선택되지 않은 외부 전자 장치에 대하여 음성 입력 인터페이스 및 음성 출력 인터페이스를 모두 비활성화하도록 제어할 수 있다.
도 3을 참조하면, 사용자(350)는 전자 장치(300)를 이용하여 영상 통화에 기초한 호 연결을 수행하는 모습일 수 있다. 전자 장치(300)는 외부 전자 장치(310)와 연결된 상태에서, 외부 전자 장치(310)가 수화에 적합한 것으로 판단하는 경우, 외부 전자 장치(310)를 수화 장치로 선택하고, 전자 장치(300)를 송화 장치로 선택할 수 있다. 예를 들면, 전자 장치(300)는 상대방 단말(330)으로부터 상대방 음성에 관한 오디오 신호를 수신할 수 있고, 상대방 음성에 대한 오디오 신호를 연결된 외부 전자 장치(310)로 전송할 수 있다. 전자 장치(300)는 외부 전자 장치(310)의 음성 출력 인터페이스만을 활성화하고, 외부 전자 장치(310)의 음성 입력 인터페이스를 비활성화하여 외부 전자 장치(310)만이 상대방 단말(330)의 수화 음성(예: 상대방 음성)을 출력하도록 제어할 수 있다. 또한 전자 장치(300)를 송화 장치로 선택한 경우, 전자 장치(300)의 음성 입력 인터페이스만을 활성화하고, 음성 출력 인터페이스는 비활성화하여 사용자(350) 음성과 관련된 수화 음성을 수신할 수 있다. 전자 장치(300)는 수신한 수화 음성에 대한 신호를 처리하여 상대방 단말(330)로 전송할 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치의 블록도이다.
도 4를 참조하면, 전자 장치(400)(예: 도 1의 전자 장치(101) 또는 도 3의 전자 장치(300))는 통신 모듈(410), 센서 모듈(420), 오디오 모듈(430), 메모리(440) 및 프로세서(450)를 포함할 수 있고, 도시된 구성 중 적어도 일부가 생략 또는 치환되더라도 본 문서의 다양한 실시예들을 구현함에는 지장이 없을 것이다. 다양한 실시예들에 따른 전자 장치(400)는 도 1의 전자 장치(101)의 구성 및/또는 기능의 전부 또는 일부를 포함할 수 있다.
다양한 실시예에 따르면, 통신 모듈(410)은 다양한 전자 장치(예: 도 3의 외부 전자 장치(310) 또는 상대방 단말(330))과 통신 연결을 수행할 수 있다. 통신 모듈(410)은 도 1의 통신 모듈(190)의 기능 및/또는 구성의 적어도 일부를 포함할 수 있다. 다양한 실시예들에 따르면, 통신 모듈(410)은 근거리 무선 통신(예: 도 1의 제1 네트워크(198))을 지원할 수 있고, 근거리 무선 통신을 이용하여 외부 전자 장치(예: 도 3의 외부 전자 장치(310))와 연결을 수행할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 블루투스(Bluetooth), BLE(Bluetooth low energy), 및/또는 Wi-Fi(wireless-fidelity)와 같은 근거리 무선 통신을 이용하여 외부 전자 장치(예: 도 3의 외부 전자 장치(310))와 연결될 수 있다. 다양한 실시예에 따르면, 전자 장치(400)는 근거리 무선 통신을 이용하여 외부 전자 장치(310)와 연결되어, 외부 전자 장치(310)의 동작을 제어할 수 있고, 외부 전자 장치(310)로부터 데이터를 수신하거나, 외부 전자 장치(310)로 외부 전자 장치를 제어하기 위한 데이터를 포함하는 각종 정보를 전송할 수 있다. 예를 들면, 전자 장치(400)는 외부 전자 장치(310)에 일정한 오디오 신호(예: 수화 음성)를 전송하고, 외부 전자 장치(310)가 전자 장치(400)로부터 수신한 오디오 신호를 출력하도록 제어할 수 있다. 또 다른 예를 들면, 전자 장치(400)는 외부 전자 장치(310)에 입력된 음성 정보와 관련된 오디오 신호(예: 송화 음성)를 외부 전자 장치(310)로부터 수신할 수 있다.
다양한 실시예에 따르면, 통신 모듈(410)은 원거리 무선 통신(예: 도 1의 제2 네트워크(199))를 지원할 수 있고, 원거리 무선 통신을 이용하여 상대방 단말(예: 도 3의 상대방 단말(330))과 연결을 수행할 수 있다. 다양한 실시예에 따르면, 통신 모듈(410)은 통신 모듈(410)에 의해 지원되는 원거리 통신에는 제한이 없고, 예를 들어, 셀룰러 네트워크(예: 5G, LTE-A), LAN, 또는 인터넷과 같은 다양한 통신 방식을 지원할 수 있다. 다양한 실시예에 따르면, 전자 장치(400)는 원거리 무선 통신을 이용하여 상대방 단말(예: 도 3의 상대방 단말(330))과 연결될 수 있고, 호 연결을 수행할 수 있다. 다양한 실시예에 따르면, 통신 모듈(410)은 원거리 무선 통신을 이용하여 상대방 단말(330)로부터 상대방 음성과 관련된 오디오 신호(예: 수화 음성)를 포함한 호 연결에 필요한 정보를 수신할 수 있고, 사용자(예: 도 3의 사용자(350)) 음성과 관련된 오디오 신호(예: 송화 음성)를 포함하는 호 연결에 필요한 정보를 상대방 단말(330)로 전송할 수 있다.
다양한 실시에예 따르면, 센서 모듈(420)은 전자 장치(400)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 및/또는 데이터 값을 생성할 수 있다. 센서 모듈(420)은 도 1의 센서 모듈(176)의 기능 및/또는 구성의 적어도 일부를 포함할 수 있다. 일실시예에 따르면, 센서 모듈(420)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. 다양한 실시예들에 따르면, 센서 모듈(420)은 구비된 다양한 센서를 이용하여 사용자의 상태, 사용자 위치 및/또는 사용자 동작(예: 제스처)를 판단하기 위한 센싱 정보를 생성할 수 있다.
다양한 실시예에 따르면, 오디오 모듈(430)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 오디오 모듈(430)은 도 1의 오디오 모듈(170)의 구성 및/또는 기능의 적어도 일부를 포함할 수 있다. 오디오 모듈(430)은 도 2의 오디오 모듈(170)의 구성 및/또는 기능의 적어도 일부를 포함할 수 있다. 다양한 실시예에 따르면, 오디오 모듈(430)은 마이크로폰(431), 스피커(432) 및 오디오 신호 처리기(433)를 포함할 수 있다. 다양한 실시예에 따르면, 오디오 모듈(430)은 마이크로폰(431)을 이용하여 전자 장치(400) 외부의 음성(예: 송화 음성)을 수신할 수 있다. 마이크로폰(431)은 도 1의 입력 모듈(150)의 구성 및/또는 기능의 적어도 일부를 포함할 수 있다. 오디오 모듈(430)은 마이크로폰(431)에서 획득한 음성을 전기 신호(예: 디지털 오디오 신호)로 변환 시킬 수 있고, 변환된 디지털 오디오 신호를 전자 장치(400)의 다른 구성요소(예: 프로세서(450))로 전달할 수 있다. 다양한 실시예에 따르면, 오디오 모듈(430)은 스피커(432)를 이용하여 전자 장치(400) 외부로 음성을 출력할 수 있다. 스피커(432)는 도 1의 음향 출력 모듈(155)의 구성 및/또는 기능의 적어도 일부를 포함할 수 있다. 오디오 모듈(430)은 디지털 오디오 신호를 아날로그 음성 신호로 변환할 수 있고, 변환된 아날로그 음성 신호를 스피커(432)를 이용하여 외부로 출력할 수 있다. 오디오 모듈(430)은 전자 장치(400)의 다른 구성요소(예: 프로세서(450))로부터 디지털 오디오 신호를 수신하고, 이에 대한 음성 신호를 외부로 출력할 수 있다. 일 실시예에 따르면, 오디오 신호 처리기(433)는 입력 받은 디지털 오디오 신호, 또는 전자 장치(400)의 다른 구성 요소(예: 프로세서(450))로부터 수신된 디지털 오디오 신호에 대하여 다양한 처리를 수행할 수 있다. 예를 들어, 오디오 신호 처리기(433)는 송화 음성에 적응 필터(adaptive filter)를 적용할 수 있다. 일 실시예에 따르면, 오디오 신호 처리기(433)는 EPD(echo path delay)를 적응 필터(adaptive filter)에 입력하여 송화 음성에 적용할 수 있다. 일 실시예에 따르면, 오디오 신호 처리기(433)는 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 다양한 실시예들에 따르면, 메모리(440)는 디지털 데이터들을 일시적 또는 영구적으로 저장하기 위한 것으로서, 도 1의 메모리(130)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 또한, 메모리(440)는 도 1의 프로그램(140) 중 적어도 일부를 저장할 수 있다. 메모리(440)는 프로세서(450)에 의해 수행될 수 있는 다양한 인스트럭션(instruction)들을 저장할 수 있다. 이와 같은 인스트럭션들은 프로세서(450)에 의하여 인식되고 실행될 수 있는 논리 연산, 데이터 입출력과 같은 제어 명령을 포함할 수 있다. 메모리(440)가 저장할 수 있는 데이터의 종류 및/또는 양에 대하여는 한정됨이 없을 것이나, 본 문서에서는 다양한 실시예들에 따른 송화 및 수화를 제어하는 방법 및 그 방법을 수행하는 프로세서(450)의 동작과 관련된 메모리의 구성 및 기능에 대하여만 설명하기로 한다. 다양한 실시예에 따르면 메모리(440)는 버퍼(441)를 포함할 수 있다. 버퍼(411)는 디지털 데이터를 메모리(440)의 일부 영역을 가리킬 수 있고, 데이터를 일시적으로 저장할 수 있다. 다양한 실시예에 따르면, 메모리(440)는 버퍼에 오디오 신호와 관련된 데이터(예: EPD(echo path delay) 및/또는 에코 레퍼런스 신호)를 일시적으로 사용할 수 있도록 소정의 시간 동안 저장할 수 있고, 지속적으로 데이터를 업데이트하여 저장할 수 있다.
다양한 실시예들에 따르면, 프로세서(450)는 전자 장치(300)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터를 처리할 수 있다. 프로세서(450)는 도 1의 프로세서(120)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 프로세서(450)는 통신 모듈(410), 센서 모듈(420), 오디오 모듈(430), 메모리(440)와 같은 전자 장치(400)의 구성요소와 작동적(operatively), 전기적(electrically) 및/또는 기능적(functionally)으로 연결될 수 있다. 프로세서(450)가 수행할 수 있는 동작, 연산 및 데이터 처리의 종류 및/또는 양에 대하여는 한정됨이 없을 것이나, 본 문서에서는 다양한 실시예들에 따른 사용자와 음성 기반의 인터랙션을 제공하는 방법 및 그 방법을 수행하는 동작과 관련된 프로세서(450)의 구성 및 기능에 대하여만 설명하기로 한다.
다양한 실시예에 따르면, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크로폰을 구비하는지 여부를 확인할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)와 연결을 수행하는 경우, 외부 전자 장치(310)의 장치 정보, 하드웨어 정보 및/또는 소프트웨어 정보와 같은 외부 전자 장치(310)와 관련된 정보를 수신할 수 있다. 프로세서(450)는 외부 전자 장치(310)와 관련된 정보에 기초하여 연결된 외부 전자 장치(310)가 음성을 입력할 수 있는 인터페이스(예: 마이크, 또는 마이크로폰)를 구비하는지 여부를 확인할 수 있다. 프로세서(450)는 외부 전자 장치(450)가 음성을 출력할 수 있는 인터페이스(예: 스피커)를 구비하는지 여부를 확인할 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부에 대한 정보가 필요한 경우, 이를 확인할 수 있다. 예를 들면, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 호 연결 요청을 수신하는 경우, 사용자로부터 호 연결 요청을 입력 받는 경우, 또는 외부 전자 장치(310)와 연결된 즉시, 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부를 확인할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화 장치 및/또는 수화 장치를 선택할 수 있다. 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는 경우, 외부 전자 장치(310) 또는 전자 장치(400) 중 송화를 수행하기 적합한 장치를 송화 장치로, 수화에 적합한 장치를 수화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 송화 장치로 선택할 수 있고, 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 수화 장치로 선택할 수 있다. 예를 들어, 두 장치 모두 송화 장치로 선택하는 경우, 각 장치가 획득한 음성 신호 간의 중첩(duplication), 에코(echo) 현상 등이 발생할 수 있고, 어느 하나의 장치만을 선택하는 것이 호 연결에 적합할 수 있다. 마찬가지로, 수화 장치의 경우에도 각 장치가 출력하는 음성 신호 간의 중첩, 에코 현상 등을 방지하기 위하여 각 장치 중 어느 하나만을 수화 장치로 선택하는 것이 호 연결에 적합할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화에 적합한 장치를, 전자 장치(400)에서 수신한 음성 신호와 외부 전자 장치(310)에서 수신한 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(430)에서 획득한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 또한, 프로세서(450)는 마이크로폰을 구비하는 외부 전자 장치(310)가 획득한 음성 신호를 외부 전자 장치(310)로부터 수신하고, 수신한 음성 신호를 기초로 SNR 값을 계산할 수 있다. 프로세서(450)는 전자 장치(400) 및 외부 전자 장치(310)에서 획득한 음성 신호의 각 SNR 값을 비교하여 송화에 적합한 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400)에서 획득한 음성 신호 및 외부 전자 장치(310)에서 획득한 음성 신호 각각의 음성 대 에코비(speech-to-echo ratio, SER) 값들을 계산할 수 있고, 각 SER 값들을 비교하여 송화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 확인한 SNR 또는 SER 값이 더 큰 장치를 송화에 더 적합한 장치로 판단할 수 있다.
일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(350)까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 송화 장치로 선택할 수 있다.
일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보, 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 마이크로폰 수신 감도를 확인할 수 있고, 마이크로폰 수신 감도에 관한 정보에 기초하여 송화 장치를 선택할 수 있다.
일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 마이크로폰 수신 감도에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 수신 감도에 기초한 SNR 또는 SER 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다.
일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 송화 장치를 선택할 수 있다.
일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 송화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 수화에 적합한 장치를, 전자 장치(400)에서 출력하는 음성 신호와 외부 전자 장치(310)에서 출력하는 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(430)에서 출력한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 일 실시예에 따르면, 프로세서(450)는 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 음성 신호 출력 범위에 대한 정보(예: 출력 가능한 음량 범위에 관한 정보)를 확인할 수 있고, 각 장치가 출력하는 음성 신호에 대한 음향 정보(예: SNR 값)을 확인할 수 있다. 일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 음성 신호 출력 범위에 대한 정보에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 음성 출력 범위에 기초한 SNR 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다. 일 실시예에 따르면, 프로세서(450)는 SNR 값이 더 큰 장치를 수화에 더 적합한 장치로 판단할 수 있다.
일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(350)까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 수화 장치로 선택할 수 있다.
일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 수화 장치를 선택할 수 있다.
일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 수화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화 장치 및/또는 수화 장치의 음성 입력 인터페이스 및/또는 음성 출력 인터페이스를 제어할 수 있다. 프로세서(450)가 전자 장치(400) 또는 외부 전자 장치(310) 중, 수화 장치와 송화 장치를 각각 선택하는 경우, 송화 장치와 수화 장치는 동일한 전자 장치일 수 있으나, 서로 상이한 전자 장치일 수 있다. 일 실시예에 따르면, 프로세서(450)는, 전자 장치(400) 및 외부 전자 장치(310) 중 선택한 송화 장치 및 수화 장치가 서로 상이한 경우, 송화 장치의 음성 입력 인터페이스(예: 마이크로폰)만을 활성화시키고, 수화 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 또한, 프로세서(450)는, 수화 장치의 음성 출력 인터페이스(예: 스피커)만을 활성화시키고, 수화 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다.
일 실시예에 따르면, 외부 전자 장치(310)가 복수인 경우, 프로세서(450)는 전자 장치(400) 및 복수의 외부 전자 장치(310) 중, 수화 장치로 선택된 어느 하나의 장치에 구비된 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있고, 송화 장치로 선택된 어느 하나의 장치에 구비된 음성 입력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(450)는 송화 장치 및 수화 장치가 동일한 장치로 선택된 경우, 송화 장치 및 수화 장치로 선택된 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다.
일 실시예에 따르면, 프로세서(450)는 연결된 외부 전자 장치(310)로, 외부 전자 장치(310)의 음성 인터페이스(예: 마이크로폰 또는 스피커)의 음성 입출력을 제어하는 신호 또는 명령을 전송할 수 있다. 프로세서(450)가 선택하는 송화 장치 및 수화 장치는 서로 동일한 장치일 수 있고, 전자 장치(400) 및 전자 장치(400)와 연결된, 음성 인터페이스(예: 마이크 또는 스피커)를 구비하는 모든 다른 외부 전자 장치(310)가 송화 장치 또는 수화 장치로 선택될 수 있음에는 제한이 없으나, 본 문서에서는 편의상 송화 장치와 수화 장치가 서로 상이한 경우를 기준으로 설명하도록 한다.
다양한 실시예에 따르면, 프로세서(450)는 송화 장치에서 발생할 수 있는 에코(echo)를 제거할 수 있다. 다양한 실시예에 따르면, 송화 장치가 송화 음성을 수신할 때 에코가 발생할 수 있다. 예를 들면, 수화 장치가 출력한 수화 음성이 송화 장치로 입력되어, 에코로서 작용될 수 있다. 다양한 실시예에 따르면, 전자 장치(400)는 다양한 외부 전자 장치와 연결될 수 있고, 그 가운데 선택된 송화 장치 또는 수화 장치는 서로 다를 수 있으므로, 에코가 가진 특성(예: EPD(echo path delay))에 관한 값 역시 달라질 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 다양한 특성을 가진 에코를 적응적으로 제거할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호를 획득하고, 획득된 에코 레퍼런스 신호를 메모리(440)에 저장할 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는, 수화 장치에서 출력하고자 하는 신호일 수 있다. 예를 들면, 에코 레퍼런스 신호는 수화 음성일 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는 수화 음성이 전처리(예: 스케일링)된 신호일 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)로부터 에코 레퍼런스 신호를 수신할 수 있다. 외부 전자 장치(310)가 수화 장치로 선택된 경우, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 상대방의 음성과 관련된 신호를 수신하고, 외부 전자 장치(310)로 전송할 수 있고, 외부 전자 장치(310)는 구비된 스피커를 이용하여 수화 음성을 출력하기 위하여, 수신한 상대방 음성과 관련된 신호를 전처리 할 수 있다. 프로세서(450)는, 예를 들면, 외부 전자 장치(310)로부터 외부 전자 장치(310)가 수화 음성을 출력하기 위하여 처리한 신호를 에코 레퍼런스 신호로서 수신할 수 있다. 일 실시예에 따르면, 프로세서(450)는 상대방 단말(330)로부터 수신한 상대방 음성과 관련된 신호 또는 그 신호를 전처리한 신호를 에코 레퍼런스 신호로 획득할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 메모리(440)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 버퍼(441)에 업데이트하여 저장할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화 음성에 포함된 에코의 EPD(echo path delay) 값을 확인할 수 있다. EPD 값은 가령, 수화 장치에서 수신한 에코 레퍼런스 신호의 프로세서(450)로의 도달 시간 및 수화 장치에서 출력한 음성 신호를 송화 장치에서 획득하여, 프로세서(450)로 도달한 시간 간의 차이일 수 있다. 오디오 신호는 장치 별로 다른 경로를 통하여 전달될 수 있고, 도달하는 시간의 미세한 차이가 발생할 수 있다. 일 실시예에 따르면, EPD 값은 송화 장치와 수화 장치의 거리와 특정한 상관관계를 가질 수 있다. 예를 들면, EPD 값은 송화 장치와 수화 장치의 거리와 양의 상관관계를 가질 수 있다. 또는, EPD 값은 수화 장치가 수화 음성을 처리하여 출력하는 속도와 관련할 수 있다. 다양한 실시예에 따르면, EPD 값은 송화 장치 및 수화 장치의 거리, 상태, 설정 환경, 주위 환경(예: 주위 구조물)과 같은 다양한 변수에 의하여 변할 수 있다. 프로세서(450)는 EPD 값을 확인하고, 확인된 EPD 값을 적용하여 에코 레퍼런스 신호에 적용할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 일 실시예에 따르면, 적응 필터의 출력은 최소 평균 제곱(least mean square, LMS), 정규화된 최소 평균 제곱(normalized least mean square, NLMS), 또는 제곱 평균(root mean square, RMS) 알고리즘에 기초하여 업데이트 될 수 있다.
일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 EPD 초기값을 EPD 값으로 확인할 수 있다. 메모리(440)는 기 설정된 EPD 값을 저장할 수 있고, 또는, 외부 전자 장치(310)와 연결 시 EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 추정된 EPD 값을 메모리(440)에 저장하고, 외부 전자 장치(310)와 연결 시 메모리(440)에 저장된 기존 추정된 EPD 값을 확인할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호를 버퍼(441)에 저장하고, EPD 값을 적용하여 지속적으로 적응 필터에 업데이트 할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 변경이 필요한지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호가 적응 필터의 처리 범위(예: 길이(length))를 넘어 입력되는 경우, 즉, EPD가 적응 필터의 처리 범위를 초과하는 경우, EPD 변경이 필요하다고 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 제거가 특정 임계값 이상 이루어지지 않는 경우, 예를 들면, 에코 신호가 특정 임계값 이상 크기로 검출되는 경우, EPD 변경이 필요하다고 판단할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 설정된 EPD 값을 적용하여, 지속적으로 버퍼에 에코 레퍼런스 신호를 업데이트 할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 기존 EPD 값에서, 일정 시간 간격을 증감시켜 에코 레퍼런스에 적용할 수 있다. 일 실시예에 따르면, 프로세서(450)는 기존 EPD 값에서 일정 시간 간격만큼 증감한 시간 값 각각을 에코 레퍼런스 신호에 적용하고, 각 시간 값이 적용된 에코 레퍼런스 신호와 송화 음성 간의 상관계수(coefficient of correlation)를 각각 계산할 수 있다. 일 실시예에 따르면, 기존 EPD 값에 증감시키는 시간 값은 적응 필터의 길이(length)보다 큰 값일 수 있다. 일 실시예에 따르면, 증감시키는 시간 값은 적응 필터 길이의 배수일 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들의 비교에 기초하여, 상관계수가 가장 큰 방향으로 EPD를 변경하고, 변경된 EPD를 추정된 EPD로서 저장하고, 에코 레퍼런스 신호를 버퍼(441) 내에서 이동(shifting)시킬 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 모두 임계값보다 작은 경우, EPD에 증감하는 시간 값을 변경할 수 있다. 예를 들면, 기존 EPD 값에서 더 넓은 범위를 탐색할 필요성이 존재할 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 일정 범위보다 작은 경우, 처음 적용된 시간 값(예: 제1 시간 값)보다 큰 시간 값(예: 제2 시간 값)을 적용하여 동일한 추정을 반복할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 적응 필터의 길이보다 큰 시간 값을 이용하여 EPD 값(예: 제1 EPD 추정값)을 추정한 뒤(예: 제1 추정), 작은 시간 값을 이용하여 정밀한 추정(예: 제2 추정)을 수행할 수 있다. 제2 추정은, 예를 들면, 적응 필터의 길이보다 작은 시간 값(예: 제3 시간 값)을 적용하여 수행될 수 있다. 일 실시예에 따르면, 제1 시간 값은 제3 시간 값보다 작을 수 있고, 제3 시간 값은 제2 시간 값보다 작을 수 있다. 일 실시예에 따르면, 프로세서(450)는 제1 추정에서 획득된 제1 EPD 추정값에 대하여, 제3 시간 값을 증감하고, 증가시킨 값, 증감하지 않은 값, 감소시킨 값을 각각 에코 레퍼런스 신호에 적용한 뒤, 송화 음성과 각 적용된 신호의 상관계수를 계산할 수 있다. 일 실시예에 따르면, 프로세서(450)는 각 상관계수를 비교하고, 가장 상관계수가 큰 값의 방향으로 EPD를 증감시켜 EPD를 추정(예: 제2 추정)할 수 있다. 일 실시예에 따르면, 프로세서(450)는 EPD 값을 추정하고, 추정된 EPD 값을 확인할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 적응 필터(adaptive filter)를 업데이트 할 수 있다. 프로세서(450)는 적응 필터를 에코 레퍼런스 신호를 상기 확인된 EPD 값만큼 지연시킨 신호, 및 송화 음성을 기초로 업데이트 할 수 있다. 일 실시예에 따르면, 적응 필터의 출력은 최소 평균 제곱(least mean square, LMS), 정규화된 최소 평균 제곱(normalized least mean square, NLMS) 또는 제곱 평균(root mean square, RMS) 알고리즘에 기초하여 업데이트 될 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 적응 필터의 출력 값을 이용하여 에코를 제거할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 프로세서(450)는 에코가 제거된 송화 음성을 상대방 단말(예: 도 3의 상대방 단말(330))로 전송할 수 있다.
도 5는 다양한 실시예들에 따른 전자 장치가 송화 장치 및 수화 장치를 제어하는 동작 흐름도이다.
도 5를 참조하면, 전자 장치(예: 도 4의 전자 장치(400))가 송화 장치 및 수화 장치를 제어하는 동작은, 전자 장치(400)에 포함된 프로세서(예: 도 4의 프로세서(450))의 각 동작으로 설명될 수 있다.
동작 510을 참조하면, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하는지 여부를 판단할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)와 연결을 수행하는 경우, 외부 전자 장치(310)의 장치 정보, 하드웨어 정보 및/또는 소프트웨어 정보와 같은 외부 전자 장치(310)와 관련된 정보를 수신할 수 있다. 프로세서(450)는 외부 전자 장치(310)와 관련된 정보에 기초하여 연결된 외부 전자 장치(310)가 음성을 입력할 수 있는 인터페이스(예: 마이크 또는 마이크로폰)를 구비하는지 여부를 확인할 수 있다. 프로세서(450)는 외부 전자 장치(450)가 음성을 출력할 수 있는 인터페이스(예: 스피커)를 구비하는지 여부를 확인할 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부에 대한 정보가 필요한 경우 이를 확인할 수 있다. 예를 들면, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 호 연결 요청을 수신하는 경우, 사용자로부터 호 연결 요청을 입력 받는 경우, 또는 외부 전자 장치(310)와 연결된 즉시, 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부를 확인할 수 있다.
일 실시예에서, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하는 경우, 동작 520을 수행할 수 있다. 또한, 일 실시예에서, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하지 않는 경우, 동작 510을 반복적으로 수행할 수 있다.
일 실시예에서(미도시), 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하지 않는 경우, 다른 외부 전자 장치(예: 도 1의 전자 장치(102), 또는 전자 장치(104))와 통신 연결(예: 도 1의 제1 네트워크(198) 또는 제2 네트워크(199))이 되었는지 확인할 수 있다. 예를 들어, 외부 전자 장치가 아닌, 다른 외부 전자 장치와 통신 연결이 되는 경우, 프로세서(450)는 다른 외부 전자 장치가 음성 인터페이스(예: 스피커 및/또는 마이크(마이크로폰))를 구비하는지 여부를 판단할 수 있다. 일 실시예에서, 다른 외부 전자 장치가 음성 인터페이스(예: 스피커 및/또는 마이크(마이크로폰))를 구비하는 경우, 전자 장치(400)와 다른 외부 전자 장치를 기준으로 동작 520 내지 동작 550을 수행할 수 있다.
동작 520을 참조하면, 프로세서(450)는 수화 장치 및/또는 송화 장치를 선택할 수 있다. 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는 경우, 외부 전자 장치(310) 또는 전자 장치(400) 중 송화를 수행하기 적합한 장치를 송화 장치로, 수화에 적합한 장치를 수화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 송화 장치로 선택할 수 있고, 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 수화 장치로 선택할 수 있다. 예를 들어, 두 장치 모두 송화 장치로 선택하는 경우, 각 장치가 획득한 음성 신호 간의 중첩(duplication), 에코(echo) 현상 등이 발생할 수 있고, 어느 하나의 장치만을 선택하는 것이 호 연결에 적합할 수 있다. 마찬가지로, 수화 장치의 경우에도 각 장치가 출력하는 음성 신호 간의 중첩, 에코 현상 등을 방지하기 위하여 각 장치 중 어느 하나만을 수화 장치로 선택하는 것이 호 연결에 적합할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화에 적합한 장치를, 전자 장치(400)에서 수신한 음성 신호와 외부 전자 장치(310)에서 수신한 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(예: 도 4의 오디오 모듈(430))에서 획득한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 또한, 프로세서(450)는 마이크로폰을 구비하는 외부 전자 장치(310)가 획득한 음성 신호를 외부 전자 장치(310)로부터 수신하고, 수신한 음성 신호를 기초로 SNR 값을 계산할 수 있다. 프로세서(450)는 전자 장치(400) 및 외부 전자 장치(310)에서 획득한 음성 신호의 각 SNR 값을 비교하여 송화에 적합한 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400)에서 획득한 음성 신호 및 외부 전자 장치(310)에서 획득한 음성 신호 각각의 음성 대 에코비(speech-to-echo ratio, SER) 값들을 계산할 수 있고, 각 SER 값들을 비교하여 송화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 확인한 SNR 또는 SER 값이 더 큰 장치를 송화에 더 적합한 장치로 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(예: 도 4의 센서 모듈(420))에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(예: 도 3의 사용자(350))까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 송화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 마이크로폰 수신 감도를 확인할 수 있고, 마이크로폰 수신 감도에 관한 정보에 기초하여 송화 장치를 선택할 수 있다. 일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 마이크로폰 수신 감도에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 수신 감도에 기초한 SNR 또는 SER 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 송화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 송화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 수화에 적합한 장치를, 전자 장치(400)에서 출력하는 음성 신호와 외부 전자 장치(310)에서 출력하는 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(430)에서 출력한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 일 실시예에 따르면, 프로세서(450)는 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 음성 신호 출력 범위에 대한 정보(예: 출력 가능한 음량 범위에 관한 정보)를 확인할 수 있고, 각 장치가 출력하는 음성 신호에 대한 음향 정보(예: SNR 값)을 확인할 수 있다. 일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 음성 신호 출력 범위에 대한 정보에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 음성 출력 범위에 기초한 SNR 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다. 일 실시예에 따르면, 프로세서(450)는 SNR 값이 더 큰 장치를 수화에 더 적합한 장치로 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(350)까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 수화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 수화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 수화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 송화 장치 및/또는 수화 장치의 음성 입력 인터페이스 및/또는 음성 출력 인터페이스를 제어할 수 있다. 프로세서(450)가 전자 장치(400) 또는 외부 전자 장치(310) 중 수화 장치와 송화 장치를 각각 선택하는 경우, 송화 장치와 수화 장치는 동일한 전자 장치일 수 있으나, 서로 상이한 전자 장치일 수 있다. 일 실시예에 따르면, 프로세서(450)는, 전자 장치(400) 및 외부 전자 장치(310) 중 선택한 송화 장치 및 수화 장치가 서로 상이한 경우, 송화 장치의 음성 입력 인터페이스(예: 마이크로폰)만을 활성화시키고, 수화 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 또한, 프로세서(450)는, 수화 장치의 음성 출력 인터페이스(예: 스피커)만을 활성화시키고, 송화 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 외부 전자 장치(310)가 복수인 경우, 프로세서(450)는 전자 장치(400) 및 복수의 외부 전자 장치(310) 중 수화 장치로 선택된 어느 하나의 장치에 구비된 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있고, 송화 장치로 선택된 어느 하나의 장치에 구비된 음성 입력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(450)는 송화 장치 및 수화 장치가 동일한 장치로 선택된 경우, 송화 장치 및 수화 장치로 선택된 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(450)는 연결된 외부 전자 장치(310)로, 외부 전자 장치(310)의 음성 인터페이스(예: 마이크로폰 또는 스피커)의 음성 입출력을 제어하는 신호 또는 명령을 전송할 수 있다.
동작 530을 참조하면, 프로세서(450)는 에코 레퍼런스 신호를 획득 및 저장할 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는, 수화 장치에서 출력하고자 하는 신호일 수 있다. 예를 들면, 에코 레퍼런스 신호는 수화 음성일 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는 수화 음성이 전처리(예: 스케일링)된 신호일 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)로부터 에코 레퍼런스 신호를 수신할 수 있다. 외부 전자 장치(310)가 수화 장치로 선택된 경우, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(예: 도 3의 상대방 단말(330))로부터 상대방의 음성과 관련된 신호를 수신하고, 외부 전자 장치(310)로 전송할 수 있고, 외부 전자 장치(310)는 구비된 스피커를 이용하여 수화 음성을 출력하기 위하여 수신한 상대방 음성과 관련된 신호를 전처리 할 수 있다. 프로세서(450)는, 예를 들면, 외부 전자 장치(310)로부터 외부 전자 장치(310)가 수화 음성을 출력하기 위하여 처리한 신호를 에코 레퍼런스 신호로서 수신할 수 있다. 일 실시예에 따르면, 프로세서(450)는 상대방 단말(330)로부터 수신한 상대방 음성과 관련된 신호 또는 그 신호를 전처리한 신호를 에코 레퍼런스 신호로 획득할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 메모리(예: 도 4의 메모리(440))에 저장할 수 있다. 일 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 버퍼(예: 도 4의 버퍼(441))에 업데이트하여 저장할 수 있다.
동작 540을 참조하면, 프로세서(450)는 EPD 값을 확인할 수 있다. 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 EPD 초기값을 EPD 값으로 확인할 수 있다. 메모리(440)는 기 설정된 EPD 값을 저장할 수 있고, 또는, 외부 전자 장치(310)와 연결 시 EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 추정된 EPD 값을 메모리(440)에 저장하고, 외부 전자 장치(310)와 연결 시 메모리(440)에 저장된 기존 추정된 EPD 값을 확인할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호를 버퍼(441)에 저장하고, EPD 값을 적용하여 지속적으로 적응 필터에 업데이트 할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 변경이 필요한지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호가 적응 필터의 처리 범위(예: 길이(length))를 넘어 입력되는 경우, 즉, EPD가 적응 필터의 처리 범위를 초과하는 경우, EPD 변경이 필요하다고 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 제거가 특정 임계값 이상 이루어지지 않는 경우, 예를 들면, 에코 신호가 특정 임계값 이상 크기로 검출되는 경우, EPD 변경이 필요하다고 판단할 수 있다.
다양한 실시예에 따르면, 프로세서(450)는 설정된 EPD 값을 적용하여, 지속적으로 버퍼에 에코 레퍼런스 신호를 업데이트 할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 기존 EPD 값에서, 일정 시간 간격을 증감시켜 에코 레퍼런스에 적용할 수 있다. 일 실시예에 따르면, 프로세서(450)는 기존 EPD 값에서 일정 시간 간격만큼 증감한 시간 값 각각을 에코 레퍼런스 신호에 적용하고, 각 시간 값이 적용된 에코 레퍼런스 신호와 송화 음성 간의 상관계수(coefficient of correlation)를 각각 계산할 수 있다. 일 실시예에 따르면, 기존 EPD 값에 증감시키는 시간 값은 적응 필터의 길이(length)보다 큰 값일 수 있다. 일 실시예에 따르면, 증감시키는 시간 값은 적응 필터 길이의 배수일 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들의 비교에 기초하여, 상관계수가 가장 큰 방향으로 EPD를 변경하고, 변경된 EPD를 추정된 EPD로서 저장하고, 에코 레퍼런스 신호를 버퍼(441) 내에서 이동(shifting)시킬 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 모두 임계값보다 작은 경우, EPD에 증감하는 시간 값을 변경할 수 있다. 예를 들면, 기존 EPD 값에서 더 넓은 범위를 탐색할 필요성이 존재할 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 일정 범위보다 작은 경우, 처음 적용된 시간 값(예: 제1 시간 값)보다 큰 시간 값(예: 제2 시간 값)을 적용하여 동일한 추정을 반복할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 적응 필터의 길이보다 큰 시간 값을 이용하여 EPD 값을 추정한 뒤(예: 제1 추정), 작은 시간 값을 이용하여 정밀한 추정(예: 제2 추정)을 수행할 수 있다. 제2 추정은, 예를 들면, 적응 필터의 길이보다 작은 시간 값(예: 제3 시간 값)을 적용하여 수행될 수 있다. 일 실시예에 따르면, 프로세서(450)는 EPD 값을 추정하고, 추정된 EPD 값을 확인할 수 있다.
동작 550을 참조하면, 프로세서(450)는 에코 신호를 제거할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 확인하고, 확인된 EPD 값을 적용하여 에코 레퍼런스 신호에 적용할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 일 실시예에 따르면, 적응 필터의 출력은 최소 평균 제곱(least mean square, LMS), 정규화된 최소 평균 제곱(normalized least mean square, NLMS) 또는 제곱 평균(root mean square, RMS) 알고리즘에 기초하여 업데이트 될 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 에코가 제거된 송화 음성을 상대방 단말(예: 도 3의 상대방 단말(330))로 전송할 수 있다.
도 6은 다양한 실시예들에 따른 전자 장치가 웨어러블 장치와 연결된 경우 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 6을 참조하면, 전자 장치(300)(예: 도 3의 전자 장치(300))는 외부 전자 장치(310)와의 연결 환경에서, 호 연결 시 송화 및 수화를 제어할 수 있다. 도 6을 참조하면, 외부 전자 장치(310)는 웨어러블 장치(예: 무선 이어폰)일 수 있다. 외부 전자 장치(310)의 형태, 기능, 종류에는 제한됨이 없으나, 도 6에서는, 외부 전자 장치(310)에 대하여, 웨어러블 장치(예: 무선 이어폰)를 기준으로 설명하기로 한다. 다양한 실시예에 따르면, 전자 장치(300)는 외부 전자 장치(310)와 연결된 경우, 전자 장치(300) 또는 외부 전자 장치(310) 중 송화 장치 또는 수화 장치를 선택할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 외부 전자 장치(310)가 연결된 상태에서, 호 연결을 수행하는 경우, 송화 장치 및 수화 장치를 제어할 수 있다. 송화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치(310) 중 송화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 구비한 센서로부터 획득한 센싱 정보, 전자 장치(300) 및 외부 전자 장치(310) 각각이 구비한 음성 입력 인터페이스(예: 마이크로폰)의 상태 정보, 전자 장치(300) 및 외부 전자 장치(310)이 각기 수신한 송화 음성의 오디오 신호에 대한 분석 정보에 기초하여 송화 장치를 선택할 수 있다. 오디오 신호의 분석은, 예를 들면, SNR(signal-to-noise ratio) 값을 계산하거나, SER(speech-to-echo ratio) 값을 계산하는 것, 또는 계산한 SNR 또는 SER 값을 비교하는 것을 포함할 수 있다.
수화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치(310) 중 수화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 획득한 센싱 정보, 사용자(350)가 전자 장치(300) 또는 외부 전자 장치(310)로부터 청취 가능한 음성을 추정한 정보를 이용하여 전자 장치(300)와 외부 전자 장치(310)를 비교하고, 수화 장치를 선택할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 사용자의 행동, 위치, 전자 장치(300) 및/또는 외부 전자 장치(310)의 상태 정보, 전자 장치(300) 또는 외부 전자 장치(310)의 하드웨어 정보와 같은 다양한 데이터에 기초하여 송화 장치 및/또는 수화 장치를 선택할 수 있다. 도 6을 참조하면, 송화 장치, 예를 들면, 송화에 적합한 장치는 전자 장치(300)일 수 있다. 예를 들어, 호 연결 시, 전자 장치(300)는 사용자(350)의 발화 방향에 위치하여 외부 전자 장치(310)에 비하여 더 큰 SNR 값 또는 SER 값의 신호를 수신할 수 있다. 도 6을 참조하면, 수화 장치, 예를 들면, 수화에 적합한 장치는 외부 전자 장치(310)일 수 있다. 호 연결 시, 외부 전자 장치(310)는 사용자(350)의 귀에 장착되어 있을 수 있고, 수화 음성을 듣기 더 적합할 수 있다. 예를 들어, 외부 전자 장치(310)는 ANC(active noise-cancellation) 기능을 탑재할 수 있다. 전자 장치(300)는 외부 전자 장치(310)의 하드웨어 정보 또는 소프트웨어 정보와 같은 데이터에 기초하여 수화 장치를 선택할 수 있다.
도 6을 참조하면, 사용자(350)는 전자 장치(300)를 이용하여 영상 통화에 기초한 호 연결을 수행하는 모습일 수 있다. 전자 장치(300)는 외부 전자 장치(310)와 연결된 상태에서, 외부 전자 장치(310)가 수화에 적합한 것으로 판단하는 경우, 외부 전자 장치(310)를 수화 장치로 선택하고, 전자 장치(300)를 송화 장치로 선택할 수 있다. 이 경우, 전자 장치(300)는 상대방 단말(예: 도 3의 상대방 단말(330))으로부터 상대방 음성에 관한 오디오 신호를 수신할 수 있고, 상대방 음성에 대한 오디오 신호를 연결된 외부 전자 장치(310)로 전송할 수 있다. 전자 장치(300)는 외부 전자 장치(310)의 음성 출력 인터페이스만을 활성화하고, 외부 전자 장치(310)의 음성 입력 인터페이스를 비활성화하여 외부 전자 장치(310)만이 수화 음성을 출력하도록 제어할 수 있다. 또한 전자 장치(300)를 송화 장치로 선택한 경우, 전자 장치(300)의 음성 입력 인터페이스만을 활성화하고, 전자 장치(300)의 음성 출력 인터페이스는 비활성화하여 사용자(350) 음성과 관련된 수화 음성을 수신할 수 있다. 전자 장치(300)는 수신한 수화 음성에 대한 신호를 처리하여 상대방 단말(330)로 전송할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치가 복수의 외부 전자 장치들과 연결된 경우 송화 장치 및 수화 장치를 제어하는 동작을 나타낸 도면이다.
도 7을 참조하면, 전자 장치(300)에 연결된 외부 전자 장치는 복수일 수 있다. 예를 들어, 전자 장치(300)는 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312)와 동시에 연결된 상태일 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312)와 연결된 상태에서, 호 연결을 수행하는 경우, 송화 장치 및 수화 장치를 제어할 수 있다. 송화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312)) 중 송화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 구비한 센서로부터 획득한 센싱 정보, 전자 장치(300) 및 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311), 및 제3 외부 전자 장치(312)) 각각이 구비한 음성 입력 인터페이스(예: 마이크로폰)의 상태 정보, 전자 장치(300) 및 복수의 외부 전자 장치들 각각이 수신한 송화 음성의 오디오 신호에 대한 분석 정보에 기초하여 송화 장치를 선택할 수 있다. 오디오 신호의 분석은, 예를 들면, SNR(signal-to-noise ratio) 값을 계산하거나, SER(speech-to-echo ratio) 값을 계산하는 것, 또는 계산한 SNR 또는 SER 값을 비교하는 것을 포함할 수 있다. 수화 장치는 예를 들면, 전자 장치(300) 및 전자 장치(300)와 연결된 외부 전자 장치 중 수화에 적합한 장치를 의미할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 전자 장치(300)가 획득한 센싱 정보, 사용자(350)가 전자 장치(300) 또는 외부 전자 장치로부터 청취 가능한 음성을 추정한 정보를 이용하여 전자 장치(300)와 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311), 및 제3 외부 전자 장치(312))를 비교하고, 수화 장치를 선택할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 사용자의 행동, 위치, 전자 장치(300) 및/또는 외부 전자 장치의 상태 정보, 전자 장치(300) 또는 외부 전자 장치의 하드웨어 정보와 같은 다양한 데이터에 기초하여 송화 장치 및/또는 수화 장치를 선택할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 연결된 복수의 외부 전자 장치들(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312)) 및 전자 장치(300) 가운데 수화 장치 및 송화 장치를 선택한 경우, 선택된 송화 장치의 음성 입력 인터페이스를 활성화하고, 송화 장치의 음성 출력 인터페이스를 비활성화 할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 선택된 수화 장치의 음성 출력 인터페이스를 활성화하고, 수화 장치의 음성 입력 인터페이스를 비활성화 할 수 있다. 일 실시예에 따르면, 전자 장치(300)는 연결된 외부 전자 장치가 복수인 경우, 송화 장치 또는 수화 장치로 선택되지 않은 외부 전자 장치에 대하여 음성 입력 인터페이스 및 음성 출력 인터페이스를 모두 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 전자 장치(300)를 제외한 복수의 외부 전자 장치들 중 어느 하나가 수화 장치로, 다른 외부 전자 장치가 송화 장치로 선택되는 경우, 전자 장치(300)는 전자 장치(300)에 구비된 음성 인터페이스(예: 도 4의 마이크로폰(431) 및 스피커(432))를 비활성화할 수 있다. 예를 들면, 전자 장치(300)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 수신한 음성 정보를 수화 장치로 선택한 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 또는 제3 외부 전자 장치(312))로 전송할 수 있고, 송화 장치로 선택된 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312))로부터 송화 음성을 수신할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 송화 장치에서 발생할 수 있는 에코(echo)를 제거할 수 있다. 다양한 실시예에 따르면, 송화 장치가 송화 음성을 수신할 때 에코가 발생할 수 있다. 예를 들면, 수화 장치가 출력한 수화 음성이 송화 장치로 입력되어, 에코로서 작용될 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 다양한 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 및 제3 외부 전자 장치(312))와 연결될 수 있고, 그 가운데 선택된 송화 장치 또는 수화 장치는 서로 다를 수 있으므로, 에코가 가진 특성(예: EPD(echo path delay))에 관한 값 역시 달라질 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 다양한 특성을 가진 에코를 적응적으로 제거할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 에코 레퍼런스 신호를 획득하고, 획득된 에코 레퍼런스 신호를 저장할 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는, 수화 장치에서 출력하고자 하는 신호일 수 있다. 예를 들면, 에코 레퍼런스 신호는 수화 음성일 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는 수화 음성이 전처리(예: 스케일링)된 신호일 수 있다. 일 실시예에 따르면, 전자 장치(300)는 수화 장치로 선택된 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 또는 제3 외부 전자 장치(312))로부터 에코 레퍼런스 신호를 수신할 수 있다. 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 또는 제3 외부 전자 장치(312))가 수화 장치로 선택된 경우, 전자 장치(300)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 상대방의 음성과 관련된 신호를 수신하여 수화 장치로 전송할 수 있고, 수화 장치는 구비된 스피커를 이용하여 수화 음성을 출력하기 위하여 수신한 상대방 음성과 관련된 신호를 전처리 할 수 있다. 전자 장치(300)는, 예를 들면, 외부 전자 장치로부터 외부 전자 장치가 수화 음성을 출력하기 위하여 처리한 신호를 에코 레퍼런스 신호로서 수신할 수 있다. 일 실시예에 따르면, 전자 장치(300)는 상대방 단말(330)로부터 수신한 상대방 음성과 관련된 신호 또는 그 신호를 전처리한 신호를 에코 레퍼런스 신호로 획득할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 송화 음성에 포함된 에코의 EPD(echo path delay) 값을 확인할 수 있다. EPD 값은 가령, 수화 장치에서 수신한 에코 레퍼런스 신호의 전자 장치(300)로의 도달 시간 및 수화 장치에서 출력한 음성 신호를 송화 장치에서 획득하여, 전자 장치(300)로 도달한 시간 간의 차이일 수 있다. 오디오 신호는 장치 별로 다른 경로를 통하여 전달될 수 있고, 도달하는 시간의 미세한 차이가 발생할 수 있다. 일 실시예에 따르면, EPD 값은 송화 장치와 수화 장치의 거리와 특정한 상관관계를 가질 수 있다. 예를 들면, EPD 값은 송화 장치와 수화 장치의 거리와 양의 상관관계를 가질 수 있다. 또는, EPD 값은 수화 장치가 수화 음성을 처리하여 출력하는 속도와 관련할 수 있다. 다양한 실시예에 따르면, EPD 값은 송화 장치 및 수화 장치의 거리, 상태, 설정 환경, 주위 환경(예: 주위 구조물)과 같은 다양한 변수에 의하여 변할 수 있다. 전자 장치(300)는 EPD 값을 확인하고, 확인된 EPD 값을 적용하여 에코 레퍼런스 신호에 적용할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 일 실시예에 따르면, 적응 필터의 출력은 최소 평균 제곱(least mean square, LMS), 정규화된 최소 평균 제곱(normalized least mean square, NLMS) 또는 제곱 평균(root mean square, RMS) 알고리즘에 기초하여 업데이트 될 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 연결된 외부 전자 장치(예: 제1 외부 전자 장치(310), 제2 외부 전자 장치(311) 또는 제3 외부 전자 장치(312)) 및 전자 장치(300) 가운데 수화 장치 및 송화 장치를 선택한 경우, 송화 장치의 음성 입력 인터페이스를 활성화하고, 송화 장치의 음성 출력 인터페이스를 비활성화 활성화 할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 선택된 수화 장치의 음성 출력 인터페이스를 활성화하고, 수화 장치의 음성 입력 인터페이스를 비활성화 할 수 있다. 일 실시예에 따르면, 전자 장치(300)는 연결된 외부 전자 장치가 복수인 경우, 송화 장치 또는 수화 장치로 선택되지 않은 외부 전자 장치에 대하여 음성 입력 인터페이스 및 음성 출력 인터페이스를 모두 비활성화하도록 제어할 수 있다.
도 8은 다양한 실시예들에 따른 전자 장치가 외부 전자 장치와 연결 시 송화 장치 및 수화 장치를 선택하는 동작 흐름도이다.
도 8을 참조하면, 전자 장치(예: 도 4의 전자 장치(400))가 전자 장치가 외부 전자 장치와 연결 시 송화 장치 및 수화 장치를 선택하는 동작은, 전자 장치(400)에 포함된 프로세서(예: 도 4의 프로세서(450))의 각 동작으로 설명될 수 있다.
동작 810을 참조하면, 프로세서(450)는 외부 전자 장치와 연결될 수 있다. 다양한 실시예에 따르면, 프로세서(450) 는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))와 통신 모듈(예: 도 4의 통신 모듈(410))을 이용하여 통신적으로(communicatively) 연결(통신 연결)될 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 블루투스(Bluetooth), BLE(Bluetooth low energy), Wi-Fi(wireless-fidelity)와 같은 근거리 무선 통신을 이용하여 외부 전자 장치(310)와 연결될 수 있다. 예를 들면, 외부 전자 장치(310)는 사용자(예: 도 3의 사용자(350)) 및/또는 전자 장치(예: 도 3의 전자 장치(300))와 근거리 내에 존재하는 전자 장치일 수 있다. 외부 전자 장치(310)는 프로세서(450)와 무선 통신을 수행하기 위한 통신 모듈을 내장할 수 있다. 다양한 실시예에 따르면, 외부 전자 장치(310)는 음성 출력 인터페이스(예: 스피커) 또는 음성 입력 인터페이스(예: 마이크로폰)를 구비하는 전자 장치일 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 근거리 무선 통신을 이용하여 외부 전자 장치(310)와 연결되어, 외부 전자 장치(310)의 동작을 제어할 수 있고, 외부 전자 장치(310)로부터 데이터를 수신하거나, 외부 전자 장치(310)로 외부 전자 장치를 제어하기 위한 데이터를 포함하는 각종 정보를 전송할 수 있다. 예를 들면, 프로세서(450)는 외부 전자 장치(310)에 일정한 오디오 신호를 전송하고, 외부 전자 장치(310)가 프로세서(450)로부터 수신한 오디오 신호를 출력하도록 제어할 수 있다. 또 다른 예를 들면, 프로세서(450)는 외부 전자 장치(310)에 입력된 음성 정보와 관련된 오디오 신호를 외부 전자 장치(310)로부터 수신할 수 있다.
동작 820 및 동작 830을 참조하면, 프로세서(450)는 외부 전자 장치(310)의 장치 정보를 확인할 수 있고(동작 820), 외부 전자 장치(310)가 스피커 및/또는 마이크로폰을 구비하는지 여부를 확인할 수 있다(동작(830)). 다양한 실시예에 따르면, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크로폰을 구비하는지 여부를 확인할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)와 연결을 수행하는 경우, 외부 전자 장치(310)의 장치 정보, 하드웨어 정보 및/또는 소프트웨어 정보와 같은 외부 전자 장치(310)와 관련된 정보를 수신할 수 있다. 프로세서(450)는 외부 전자 장치(310)와 관련된 정보에 기초하여 연결된 외부 전자 장치(310)가 음성을 입력할 수 있는 인터페이스(예: 마이크)를 구비하는지 여부를 확인할 수 있다. 프로세서(450)는 외부 전자 장치(450)가 음성을 출력할 수 있는 인터페이스(예: 스피커)를 구비하는지 여부를 확인할 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부에 대한 정보가 필요한 경우 이를 확인할 수 있다. 예를 들면, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 호 연결 요청을 수신하는 경우, 사용자로부터 호 연결 요청을 입력 받는 경우, 또는 외부 전자 장치(310)와 연결된 즉시, 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는지 여부를 확인할 수 있다.
일 실시예에서, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하는 경우, 동작 840을 수행할 수 있다. 또한, 일 실시예에서, 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하지 않는 경우, 동작 830을 반복적으로 수행할 수 있다.
일 실시예에서(미도시), 프로세서(450)는 외부 전자 장치(예: 도 3의 외부 전자 장치(310))가 스피커 및/또는 마이크를 구비하지 않는 경우, 다른 외부 전자 장치(예: 도 1의 전자 장치(102), 또는 전자 장치(104))와 통신 연결(예: 도 1의 제1 네트워크(198) 또는 제2 네트워크(199))이 되었는지 확인할 수 있다. 예를 들어, 외부 전자 장치가 아닌, 다른 외부 전자 장치와 통신 연결이 되는 경우, 프로세서(450)는 다른 외부 전자 장치가 음성 인터페이스(예: 스피커 및/또는 마이크(마이크로폰))를 구비하는지 여부를 판단할 수 있다. 일 실시예에서, 다른 외부 전자 장치가 음성 인터페이스(예: 스피커 및/또는 마이크(마이크로폰))를 구비하는 경우, 전자 장치(400)와 다른 외부 전자 장치를 기준으로 동작 840 내지 동작 860을 수행할 수 있다.
동작 840 및 동작 850을 참조하면, 프로세서(450)는 송화 장치 및/또는 수화 장치를 선택할 수 있다. 프로세서(450)는 외부 전자 장치(310)가 마이크로폰 및/또는 스피커를 구비하는 경우, 외부 전자 장치(310) 또는 전자 장치(400) 중 송화를 수행하기 적합한 장치를 송화 장치로, 수화에 적합한 장치를 수화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 송화 장치로 선택할 수 있고, 전자 장치(400) 또는 외부 전자 장치(310) 중 어느 하나만을 수화 장치로 선택할 수 있다. 예를 들어, 두 장치 모두 송화 장치로 선택하는 경우, 각 장치가 획득한 음성 신호 간의 중첩(duplication), 에코(echo) 현상 등이 발생할 수 있고, 어느 하나의 장치만을 선택하는 것이 호 연결에 적합할 수 있다. 마찬가지로, 수화 장치의 경우에도 각 장치가 출력하는 음성 신호 간의 중첩, 에코 현상 등을 방지하기 위하여 각 장치 중 어느 하나만을 수화 장치로 선택하는 것이 호 연결에 적합할 수 있다.
동작 840 및 동작 850을 참조하면, 프로세서(450)는 센서 정보 확인 및/또는 음향 신호를 비교할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 송화에 적합한 장치를, 전자 장치(400)에서 수신한 음성 신호와 외부 전자 장치(310)에서 수신한 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(430)에서 획득한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 또한, 프로세서(450)는 마이크로폰을 구비하는 외부 전자 장치(310)가 획득한 음성 신호를 외부 전자 장치(310)로부터 수신하고, 수신한 음성 신호를 기초로 SNR 값을 계산할 수 있다. 프로세서(450)는 전자 장치(400) 및 외부 전자 장치(310)에서 획득한 음성 신호의 각 SNR 값을 비교하여 송화에 적합한 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400)에서 획득한 음성 신호 및 외부 전자 장치(310)에서 획득한 음성 신호 각각의 음성 대 에코비(speech-to-echo ratio, SER) 값들을 계산할 수 있고, 각 SER 값들을 비교하여 송화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 확인한 SNR 또는 SER 값이 더 큰 장치를 송화에 더 적합한 장치로 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(350)까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 송화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 마이크로폰 수신 감도를 확인할 수 있고, 마이크로폰 수신 감도에 관한 정보에 기초하여 송화 장치를 선택할 수 있다. 일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 마이크로폰 수신 감도에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 수신 감도에 기초한 SNR 또는 SER 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 송화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 송화 장치를 선택할 수 있다.
동작 840 및 동작 850을 참조하면, 프로세서(450)는 수화에 적합한 장치를, 전자 장치(400)에서 출력하는 음성 신호와 외부 전자 장치(310)에서 출력하는 음성 신호를 비교하여 결정할 수 있다. 예를 들면, 프로세서(450)는 전자 장치(400)의 오디오 모듈(430)에서 출력한 음성 신호를 기초로 신호 대 잡음비(signal-to-noise ratio, SNR) 값을 계산할 수 있다. 일 실시예에 따르면, 프로세서(450)는 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 전자 장치(400)의 장치 정보 또는 오디오 모듈(430)에 관한 정보 및 외부 전자 장치(310)로부터 수신한 외부 전자 장치(310)의 장치 정보에 기초하여 각 장치의 음성 신호 출력 범위에 대한 정보(예: 출력 가능한 음량 범위에 관한 정보)를 확인할 수 있고, 각 장치가 출력하는 음성 신호에 대한 음향 정보(예: SNR 값)을 확인할 수 있다. 일 실시에에 따르면, 프로세서(450)는 전자 장치(400) 또는 외부 전자 장치(310)의 거리 및 음성 신호 출력 범위에 대한 정보에 기초하여 SNR 값 또는 SER 값을 추정할 수 있다. 일 실시예에 따르면, 미리 정해진 거리, 음성 출력 범위에 기초한 SNR 값의 추정치에 대한 정보가 메모리(440)에 미리 저장되어 있을 수 있다.
일 실시예에 따르면, 프로세서(450)는 SNR 값이 더 큰 장치를 수화에 더 적합한 장치로 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)에서 획득한 센싱 정보를 이용하여 사용자(예: 도 3의 사용자(350))와 전자 장치(400)의 거리를 측정할 수 있고, 외부 전자 장치(310)와 전자 장치(400) 간의 거리를 측정할 수 있다. 또한 프로세서(450)는 전자 장치(400)에서 외부 전자 장치(310)까지의 거리 및 사용자(350)까지의 거리에 기초하여 외부 전자 장치(310)와 사용자(350) 간의 거리를 측정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 전자 장치(400), 사용자(350) 및 외부 전자 장치(310) 각각 간의 거리에 대한 정보를 기초로 외부 전자 장치(310) 및 전자 장치(400) 중 더 가까운 장치를 수화 장치로 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310) 및 전자 장치(400)의 거리에 관한 정보 및/또는 음향에 관한 정보(예: SNR 값, SER 값) 및 각 장치에 대한 장치 정보 중 어느 하나, 또는 이들 중 적어도 일부의 조합을 기초로 수화 장치를 선택할 수 있다. 일 실시예에 따르면, 프로세서(450)는 센서 모듈(420)로부터 획득한 센싱 정보에 기초하여 사용자의 위치, 동작, 제스처 또는 환경 정보(예: 온도, 습도 또는 공간 정보)를 확인할 수 있고, 센싱 정보를 기초로 확인한 사용자의 위치, 동작, 제스처 또는 환경 정보에 기초하여 수화 장치를 선택할 수 있다.
동작 860을 참조하면, 프로세서(450)는 송화 장치 및/또는 수화 장치의 음성 입력 인터페이스 및/또는 음성 출력 인터페이스를 제어할 수 있다. 프로세서(450)가 전자 장치(400) 또는 외부 전자 장치(310) 중 수화 장치와 송화 장치를 각각 선택하는 경우, 송화 장치와 수화 장치는 동일한 전자 장치일 수 있으나, 서로 상이한 전자 장치일 수 있다. 일 실시예에 따르면, 프로세서(450)는, 전자 장치(400) 및 외부 전자 장치(310) 중 선택한 송화 장치 및 수화 장치가 서로 상이한 경우, 송화 장치의 음성 입력 인터페이스(예: 마이크로폰)만을 활성화시키고, 수화 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 또한, 프로세서(450)는, 수화 장치의 음성 출력 인터페이스(예: 스피커)만을 활성화시키고, 송화 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 외부 전자 장치(310)가 복수인 경우, 프로세서(450)는 전자 장치(400) 및 복수의 외부 전자 장치(310) 중 수화 장치로 선택된 어느 하나의 장치에 구비된 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 출력 인터페이스는 비활성화하도록 제어할 수 있고, 송화 장치로 선택된 어느 하나의 장치에 구비된 음성 입력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(450)는 송화 장치 및 수화 장치가 동일한 장치로 선택된 경우, 송화 장치 및 수화 장치로 선택된 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스만을 활성화하고, 다른 모든 장치의 음성 입력 인터페이스 및 음성 출력 인터페이스는 비활성화하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(450)는 연결된 외부 전자 장치(310)로, 외부 전자 장치(310)의 음성 인터페이스(예: 마이크로폰 또는 스피커)의 음성 입출력을 제어하는 신호 또는 명령을 전송할 수 있다. 프로세서(450)가 선택하는 송화 장치 및 수화 장치는 서로 동일한 장치일 수 있고, 또는, 전자 장치(400) 및 전자 장치(400)와 연결된, 음성 인터페이스(예: 마이크 또는 스피커)를 구비하는 모든 다른 외부 전자 장치(310)가 송화 장치 및/또는 수화 장치로 선택될 수 있다.
도 9는 다양한 실시예들에 따른 전자 장치가 에코(echo)를 제거하는 동작 흐름도이다.
도 9를 참조하면, 전자 장치(예: 도 4의 전자 장치(400))가 에코(echo)를 제거하는 동작은, 전자 장치(400)에 포함된 프로세서(예: 도 4의 프로세서(450))의 각 동작으로 설명될 수 있다.
동작 910을 참조하면, 프로세서(450)는 에코 레퍼런스 신호를 획득하고, 획득된 에코 레퍼런스 신호를 저장할 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는, 수화 장치에서 출력하고자 하는 신호일 수 있다. 예를 들면, 에코 레퍼런스 신호는 수화 음성일 수 있다. 일 실시예에 따르면, 에코 레퍼런스 신호는 수화 음성이 전처리(예: 스케일링)된 신호일 수 있다. 일 실시예에 따르면, 프로세서(450)는 외부 전자 장치(310)로부터 에코 레퍼런스 신호를 수신할 수 있다. 외부 전자 장치(310)가 수화 장치로 선택된 경우, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 상대방의 음성과 관련된 신호를 수신하고, 외부 전자 장치(310)로 전송할 수 있고, 외부 전자 장치(310)는 구비된 스피커를 이용하여 수화 음성을 출력하기 위하여 수신한 상대방 음성과 관련된 신호를 전처리 할 수 있다. 프로세서(450)는, 예를 들면, 외부 전자 장치(310)로부터 외부 전자 장치(310)가 수화 음성을 출력하기 위하여 처리한 신호를 에코 레퍼런스 신호로서 수신할 수 있다. 일 실시예에 따르면, 프로세서(450)는 상대방 단말(예: 도 3의 상대방 단말(330))로부터 수신한 상대방 음성과 관련된 신호 또는 그 신호를 전처리한 신호를 에코 레퍼런스 신호로 획득할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 메모리(예: 도 4의 메모리(440))에 저장할 수 있다. 일 실시예에 따르면, 프로세서(450)는 획득한 에코 레퍼런스 신호를 버퍼(예: 도 4의 버퍼(441))에 업데이트하여 저장할 수 있다.
동작 920을 참조하면, 프로세서(450)는 송화 음성에 포함된 에코의 EPD(echo path delay) 값을 확인할 수 있다. EPD 값은 가령, 수화 장치에서 수신한 에코 레퍼런스 신호의 프로세서(450)로의 도달 시간 및 수화 장치에서 출력한 음성 신호를 송화 장치에서 획득하여, 프로세서(450)로 도달한 시간 간의 차이일 수 있다. 오디오 신호는 장치 별로 다른 경로를 통하여 전달될 수 있고, 도달하는 시간의 미세한 차이가 발생할 수 있다. 일 실시예에 따르면, EPD 값은 송화 장치와 수화 장치의 거리와 특정한 상관관계를 가질 수 있다. 예를 들면, EPD 값은 송화 장치와 수화 장치의 거리와 양의 상관관계를 가질 수 있다. 또는, EPD 값은 수화 장치가 수화 음성을 처리하여 출력하는 속도와 관련할 수 있다. 다양한 실시예에 따르면, EPD 값은 송화 장치 및 수화 장치의 거리, 상태, 설정 환경, 주위 환경(예: 주위 구조물)과 같은 다양한 변수에 의하여 변할 수 있다. 프로세서(450)는 EPD 값을 확인하고, 확인된 EPD 값을 적용하여 에코 레퍼런스 신호에 적용할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 일 실시예에 따르면, 적응 필터는 연산 속도를 개선하기 위하여 EPD 값을 적용하지 않고, 미리 정의된 테이블 값이 적용될 수 있다. 미리 정의된 테이블 값은, 예를 들면, 메모리(440)에 저장되어 있을 수 있다.
동작 930을 참조하면, 프로세서(450)는 적응 필터(adaptive filter)를 업데이트 할 수 있다. 프로세서(450)는 적응 필터를 에코 레퍼런스 신호를 상기 확인된 EPD 값만큼 지연시킨 신호, 및 송화 음성을 기초로 업데이트 할 수 있다. 일 실시예에 따르면, 적응 필터의 출력은 최소 평균 제곱(least mean square, LMS), 정규화된 최소 평균 제곱(normalized least mean square, NLMS) 또는 제곱 평균(root mean square, RMS) 알고리즘에 기초하여 업데이트 될 수 있다.
동작 940을 참조하면, 프로세서(450)는 적응 필터의 출력 값을 이용하여 에코를 제거할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호에 EPD 값을 적용하고, 적응 필터(adaptive filter)에 입력하여 적응 필터의 출력 값을 송화 음성에 합산 또는 차분하여 에코를 제거할 수 있다. 프로세서(450)는 에코가 제거된 송화 음성을 상대방 단말(예: 도 3의 상대방 단말(330))로 전송할 수 있다.
도 10은 다양한 실시예들에 따른 전자 장치가 EPD(echo path delay) 값을 확인하는 동작 흐름도이다.
도 10을 참조하면, 전자 장치(예: 도 4의 전자 장치(400))가 EPD(echo path delay) 값을 확인하는 동작은, 전자 장치(400)에 포함된 프로세서(예: 도 4의 프로세서(450))의 각 동작으로 설명될 수 있다.
동작 1010을 참조하면, 프로세서(450)는 EDP 초기값을 적용하여 에코를 제거할 수 있다. EPD 초기값은, 예를 들면, 메모리(예: 도 4의 메모리(440))에 미리 저장된 EPD 값일 수 있다. 프로세서(450)는 EPD 초기값을 이용하여 도 9의 동작(예: 도 9의 동작 940)과 같이 에코를 제거할 수 있다. 일 실시예에 따르면, 프로세서(450)는 메모리(440)에 저장된 EPD 초기값을 EPD 값으로 확인할 수 있다. 메모리(440)는 기 설정된 EPD 값을 저장할 수 있고, 또는, 외부 전자 장치(310)와 연결 시 EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 추정된 EPD 값을 메모리(440)에 저장하고, 외부 전자 장치(310)와 연결 시 메모리(440)에 저장된 기존 추정된 EPD 값을 확인할 수 있다.
동작 1020을 참조하면, 프로세서(450)는 EPD 변경이 필요한지 여부를 판단할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 EPD 값을 변경이 필요한지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호가 적응 필터의 처리 범위(예: 길이(length))를 넘어 입력되는 경우, 예를 들면, EPD가 적응 필터의 처리 범위를 초과하는 경우, EPD 변경이 필요하다고 판단할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 제거가 특정 임계값 이상 이루어지지 않는 경우, 예를 들면, 에코 신호가 특정 임계값 이상 크기로 검출되는 경우, EPD 변경이 필요하다고 판단할 수 있다.
일 실시예에서, 프로세서(450)는 EPD 변경이 필요하다고 판단하는 경우, 동작 1030을 수행할 수 있다. 또한, 일 실시예에서, 프로세서(450)는 EPD 변경이 필요하다고 판단하지 않는 경우, 반복적으로 동작 1020을 수행할 수 있다.
일 실시예에서(미도시), 프로세서(450)는 EPD 변경이 필요하다고 판단하지 않는 경우, EPD 초기값을 그대로 적용하여, 동작 1010과 동일한 동작을 반복할 수 있다. 일 실시예에 따르면, 프로세서(450)는 동작 1010을 수행 중, 동작 1020을 동시에 지속적으로 수행 중일 수 있다. 이 경우, 동작 1010을 수행하는 중에 EPD 변경이 필요하다고 판단하는 경우, 프로세서(450)는 동작 1030 내지 동작 1080을 수행할 수 있다.
동작 1030을 참조하면, 프로세서(450)는 EPD 값에 대한 제1 추정을 시작할 수 있다. 일 실시예에 따르면, 프로세서(450)는 에코 레퍼런스 신호를 버퍼(411)에 저장하고, EPD 값을 적용하여 지속적으로 적응 필터에 업데이트 할 수 있다.
동작 1040을 참조하면, 프로세서(450)는 에코 레퍼런스 신호에 제1 시간 값이 증감된 지연을 적용할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 설정된 EPD 값을 적용하여, 지속적으로 버퍼(441)에 에코 레퍼런스 신호를 업데이트 할 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 기존 EPD 값에서, 일정 시간 간격을 증감시켜 에코 레퍼런스에 적용할 수 있다. 일 실시예에 따르면, 기존 EPD 값에 증감시키는 시간 값은 적응 필터의 길이(length)보다 큰 값일 수 있다. 일 실시예에 따르면, 증감시키는 시간 값은 적응 필터 길이의 배수일 수 있다. 다양한 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들의 비교에 기초하여, 상관계수가 가장 큰 방향으로 EPD를 변경하고, 변경된 EPD를 추정된 EPD로서 저장하고, 에코 레퍼런스 신호를 버퍼(441) 내에서 이동(shifting)시킬 수 있다.
동작 1050 및 동작 1060을 참조하면, 프로세서(450)는 기존 EPD 값에서 일정 시간 간격만큼 증감한 시간 값 각각을 에코 레퍼런스 신호에 적용하고, 각 시간 값이 적용된 에코 레퍼런스 신호와 송화 음성 간의 상관계수(coefficient of correlation)를 각각 계산할 수 있고, EPD 값을 추정할 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 모두 임계값보다 작은 경우, EPD에 증감하는 시간 값을 변경할 수 있다. 예를 들면, 기존 EPD 값에서 더 넓은 범위를 탐색할 필요성이 존재할 수 있다. 일 실시예에 따르면, 프로세서(450)는 계산된 상관계수 값들이 일정 범위보다 작은 경우, 처음 적용된 시간 값(예: 제1 시간 값)보다 큰 시간 값(예: 제2 시간 값)을 적용하여 동일한 추정을 반복할 수 있다.
동작 1070 및 동작 1080을 참조하면, 프로세서(450)는 적응 필터의 길이보다 큰 시간 값을 이용하여 EPD 값(예: 제1 EPD 추정값)을 추정한 뒤(예: 제1 추정), 작은 시간 값을 이용하여 정밀한 추정(예: 제2 추정)을 수행할 수 있다. 제2 추정은, 예를 들면, 적응 필터의 길이보다 작은 시간 값(예: 제3 시간 값)을 적용하여 수행될 수 있다. 일 실시예에 따르면, 프로세서(450)는 제1 추정에서 획득된 제1 EPD 추정값에 대하여, 제3 시간 값을 증감하고, 증가시킨 값, 증감하지 않은 값, 감소시킨 값을 각각 에코 레퍼런스 신호에 적용한 뒤, 송화 음성과 각 적용된 신호의 상관계수를 계산할 수 있다. 일 실시예에 따르면, 프로세서(450)는 각 상관계수를 비교하고, 가장 상관계수가 큰 값의 방향으로 EPD를 증감시켜 EPD를 추정(예: 제2 추정)할 수 있다. 일 실시예에 따르면, 프로세서(450)는 EPD 값을 추정하고, 추정된 EPD 값을 확인할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는, 통신 모듈; 센서 모듈; 마이크를 포함하는 음향 입력 모듈; 스피커를 포함하는 음향 출력 모듈; 버퍼(buffer)를 포함하는 메모리; 및 상기 통신 모듈, 상기 센서 모듈, 상기 음향 입력 모듈, 상기 음향 출력 모듈 및 상기 메모리와 동작적(operatively)으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 외부 전자 장치와 통신적(communicatively) 연결되고, 상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하고, 상기 외부 전자 장치가 스피커를 구비하는 경우, 호 연결 시 상기 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고, 상기 외부 전자 장치가 마이크로폰을 구비하는 경우, 호 연결 시 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고, 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고, 상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 상기 버퍼에 저장하고, 상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하고, 상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하도록 설정될 수 있다.
또한, 상기 센싱 정보는 사용자의 위치 정보 및 상기 외부 전자 장치의 위치 정보를 포함하고, 상기 프로세서는, 상기 센싱 정보, 상기 전자 장치 및 상기 외부 전자 장치의 음량 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 각각에서 출력될 음성들의 SNR(signal to noise ratio) 값들을 확인하고, 상기 확인된 SNR 값들에 기초하여 상기 수화 장치를 선택하도록 설정될 수 있다.
또한, 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 비교에 기초한 송화 장치의 선택은, 상기 음향 입력 모듈을 통해 수신된 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 각각의 SNR 값들 및 SER(speech to echo ratio) 값들 중 적어도 한가지를 비교하는 것으로 수행될 수 있다.
또한, 상기 프로세서는, 상기 송화 음성에 상기 에코 레퍼런스 신호를 상기 확인된 EPD 값만큼 지연시킨 신호 및 상기 송화 음성을 기초로 적응 필터(adaptive filter)를 업데이트하고, 상기 적응 필터를 이용하여 상기 송화 음성에서 상기 에코 신호를 제거하도록 설정될 수 있다.
또한, 상기 프로세서는, 상기 외부 전자 장치로부터 상기 에코 레퍼런스 신호를 수신하도록 설정될 수 있다.
또한, 상기 프로세서는, 상기 호 연결 시 통화 상대방으로부터 수신한 음성 신호를 이용하여 상기 에코 레퍼런스 신호를 생성하도록 설정될 수 있다.
또한, 상기 프로세서는, 상기 에코 제거에 미리 설정된 EPD 초기값을 적용하고, 상기 EPD 초기값이 상기 적응 필터의 길이에 비하여 큰 값을 갖는 경우, EPD 값을 추정하는 제1 추정을 이용하여 EPD를 확인하도록 설정될 수 있다.
또한, 상기 제1 추정은, 상기 에코 레퍼런스 신호를 미리 설정된 EPD 초기값만큼 지연시킨 제1 신호, 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 제1 시간 값을 감소시킨만큼 지연시킨 제2 신호 및 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 상기 제1 시간 값을 증가시킨만큼 지연시킨 제3 신호 각각에 대한 상기 송화 음성과의 상관계수(coefficient of correlation)들을 계산하고, 상기 각 상관계수들을 비교한 결과에 기초하여 상기 EPD 값을 추정하는 것으로 수행될 수 있다.
또한, 상기 제1 시간 값은 상기 적응 필터의 길이 이상일 수 있다.
또한, 상기 프로세서는, 상기 제1 추정 이후에 제2 추정을 수행하고, 상기 제2 추정은, 상기 제1 시간 값 보다 작은 제2 시간 값을 이용하여 수행될 수 있다.
또한, 상기 프로세서는, 복수의 외부 전자 장치와 통신적(communicatively) 연결되는 경우, 상기 복수의 외부 전자 장치 각각이 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하고, 상기 복수의 외부 전자 장치 중 적어도 하나가 스피커를 구비하는 경우, 호 연결 시 상기 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 스피커를 구비하는 적어도 하나의 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고, 상기 복수의 외부 전자 장치 중 적어도 하나가 마이크로폰을 구비하는 경우, 호 연결 시 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 마이크로폰을 구비하는 적어도 하나의 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 마이크로폰을 구비하는 적어도 하나의 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고, 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고, 상기 수화 장치로 통화 상대방으로부터 수신한 음성 신호를 전송하고, 상기 수화 장치로부터 에코 레퍼런스 신호를 수신하고, 상기 송화 장치로부터 상기 송화 음성을 수신하도록 설정될 수 있다.
또한, 상기 프로세서는, 상기 수화 장치가 마이크로폰을 구비하지 않는 경우, 상기 전자 장치가 통화 상대방으로부터 수신한 음성 신호를 이용하여 에코 레퍼런스 신호를 생성하도록 설정될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치의 호 연결 방법은, 상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하는 동작, 상기 외부 전자 장치가 적어도 하나의 스피커를 구비하는 경우, 호 연결 시 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하는 동작; 상기 외부 전자 장치가 적어도 하나의 마이크로폰을 구비하는 경우, 호 연결 시 상기 전자 장치가 수신한 음성 신호 및 상기 외부 전자 장치가 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하는 동작; 상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하는 동작; 상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 저장하는 동작; 상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하는 동작; 상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하는 동작을 포함할 수 있다.
또한, 상기 센싱 정보는 사용자의 위치 정보 및 상기 외부 전자 장치의 위치 정보를 포함하고, 상기 수화 장치를 선택하는 동작은, 상기 센싱 정보, 상기 전자 장치 및 상기 외부 전자 장치의 음량 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 각각에서 출력될 음성들의 SNR(signal to noise ratio) 값들을 확인하는 동작; 및 상기 확인된 SNR 값들에 기초하여 상기 수화 장치를 선택하는 동작을 포함할 수 있다.
또한, 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 비교는, 상기 음향 입력 모듈을 통해 수신된 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 각각의 SNR 값들 및 SER(speech to echo ratio) 값들 중 적어도 한가지를 비교하는 것으로 수행될 수 있다.
또한, 상기 에코 신호를 제거하는 동작은, 상기 송화 음성에 상기 에코 레퍼런스 신호를 상기 EPD 값만큼 지연시킨 신호 및 상기 송화 음성을 기초로 적응 필터(adaptive filter)를 업데이트하는 동작; 및 상기 적응 필터를 이용하여 상기 송화 음성에서 상기 에코 신호를 제거하는 동작을 포함할 수 있다.
또한, 상기 에코 레퍼런스를 획득하는 동작은, 상기 외부 전자 장치로부터 상기 에코 레퍼런스 신호를 수신하는 동작을 포함할 수 있다.
또한, 상기 에코 레퍼런스를 획득하는 동작은, 상기 호 연결 시 통화 상대방으로부터 수신한 음성 신호를 이용하여 상기 에코 레퍼런스 신호를 생성하는 동작을 포함할 수 있다.
또한, 상기 EPD를 확인하는 동작은, 상기 에코 제거에 미리 설정된 EPD 초기값을 적용하는 동작; 및 상기 EPD 초기값이 상기 적응 필터의 길이에 비하여 큰 값을 갖는 경우, EPD 값을 추정하는 제1 추정을 수행하는 동작을 포함할 수 있다.
또한, 상기 제1 추정은, 상기 에코 레퍼런스 신호를 미리 설정된 EPD 초기값만큼 지연시킨 제1 신호, 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 제1 시간 값을 감소시킨만큼 지연시킨 제2 신호 및 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 상기 제1 시간 값을 증가시킨만큼 지연시킨 제3 신호 각각에 대한 상기 송화 음성과의 상관계수(coefficient of correlation)들을 계산하고, 상기 각 상관계수들을 비교한 결과에 기초하여 상기 EPD 값을 추정하는 것으로 수행될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "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)
- 전자 장치에 있어서,통신 모듈;센서 모듈;마이크를 포함하는 음향 입력 모듈;스피커를 포함하는 음향 출력 모듈;버퍼(buffer)를 포함하는 메모리; 및상기 통신 모듈, 상기 센서 모듈, 상기 음향 입력 모듈, 상기 음향 출력 모듈 및 상기 메모리와 동작적(operatively)으로 연결되는 프로세서를 포함하고,상기 프로세서는,외부 전자 장치와 통신적(communicatively) 연결되고,상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하고,상기 외부 전자 장치가 스피커를 구비하는 경우, 호 연결 시 상기 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고,상기 외부 전자 장치가 마이크로폰을 구비하는 경우, 호 연결 시 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고,상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고,상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 상기 버퍼에 저장하고,상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하고,상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하도록 설정된 전자 장치.
- 제1항에 있어서,상기 센싱 정보는 사용자의 위치 정보 및 상기 외부 전자 장치의 위치 정보를 포함하고,상기 프로세서는,상기 센싱 정보, 상기 전자 장치 및 상기 외부 전자 장치의 음량 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 각각에서 출력될 음성들의 SNR(signal to noise ratio) 값들을 확인하고,상기 확인된 SNR 값들에 기초하여 상기 수화 장치를 선택하도록 설정된 전자 장치.
- 제1항에 있어서,상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 비교에 기초한 송화 장치의 선택은,상기 음향 입력 모듈을 통해 수신된 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 각각의 SNR 값들 및 SER(speech to echo ratio) 값들 중 적어도 한가지를 비교하는 것으로 수행되는 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 송화 음성에 상기 에코 레퍼런스 신호를 상기 확인된 EPD 값만큼 지연시킨 신호 및 상기 송화 음성을 기초로 적응 필터(adaptive filter)를 업데이트하고,상기 적응 필터를 이용하여 상기 송화 음성에서 상기 에코 신호를 제거하도록 설정된 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 외부 전자 장치로부터 상기 에코 레퍼런스 신호를 수신하도록 설정된 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 호 연결 시 통화 상대방으로부터 수신한 음성 신호를 이용하여 상기 에코 레퍼런스 신호를 생성하도록 설정된 전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 에코 제거에 미리 설정된 EPD 초기값을 적용하고,상기 EPD 초기값이 상기 적응 필터의 길이에 비하여 큰 값을 갖는 경우, EPD 값을 추정하는 제1 추정을 이용하여 EPD를 확인하도록 설정된 전자 장치.
- 제7항에 있어서,상기 제1 추정은,상기 에코 레퍼런스 신호를 미리 설정된 EPD 초기값만큼 지연시킨 제1 신호, 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 제1 시간 값을 감소시킨만큼 지연시킨 제2 신호 및 상기 에코 레퍼런스 신호를 상기 EPD 초기값에서 상기 제1 시간 값을 증가시킨만큼 지연시킨 제3 신호 각각에 대한 상기 송화 음성과의 상관계수(coefficient of correlation)들을 계산하고, 상기 각 상관계수들을 비교한 결과에 기초하여 상기 EPD 값을 추정하는 것으로 수행되는 전자 장치.
- 제8항에서,상기 제1 시간 값은 상기 적응 필터의 길이 이상인 전자 장치.
- 제8항에 있어서,상기 프로세서는,상기 제1 추정 이후에 제2 추정을 수행하고,상기 제2 추정은,상기 제1 시간 값 보다 작은 제2 시간 값을 이용하여 수행되는 전자 장치.
- 제1항에 있어서,상기 프로세서는,복수의 외부 전자 장치와 통신적(communicatively) 연결되는 경우,상기 복수의 외부 전자 장치 각각이 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하고,상기 복수의 외부 전자 장치 중 적어도 하나가 스피커를 구비하는 경우, 호 연결 시 상기 센서 모듈로부터 수신한 센싱 정보에 기초하여 상기 전자 장치 및 상기 스피커를 구비하는 적어도 하나의 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하고,상기 복수의 외부 전자 장치 중 적어도 하나가 마이크로폰을 구비하는 경우, 호 연결 시 상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 마이크로폰을 구비하는 적어도 하나의 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 마이크로폰을 구비하는 적어도 하나의 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하고,상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는, 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는, 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하고,상기 수화 장치로 통화 상대방으로부터 수신한 음성 신호를 전송하고,상기 수화 장치로부터 에코 레퍼런스 신호를 수신하고,상기 송화 장치로부터 상기 송화 음성을 수신하도록 설정된 전자 장치.
- 제11항에 있어서,상기 프로세서는,상기 수화 장치가 마이크로폰을 구비하지 않는 경우, 상기 전자 장치가 통화 상대방으로부터 수신한 음성 신호를 이용하여 에코 레퍼런스 신호를 생성하도록 설정된 전자 장치.
- 외부 전자 장치와 통신적(communicatively)으로 연결된 전자 장치의 호 연결 방법에 있어서,상기 외부 전자 장치가 적어도 하나의 스피커 및/또는 적어도 하나의 마이크로폰을 구비하는지 여부를 확인하는 동작,상기 외부 전자 장치가 적어도 하나의 스피커를 구비하는 경우, 호 연결 시 센싱 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 수화 음성을 출력할 수화 장치를 선택하는 동작;상기 외부 전자 장치가 적어도 하나의 마이크로폰을 구비하는 경우, 호 연결 시 상기 전자 장치가 수신한 음성 신호 및 상기 외부 전자 장치가 수신한 음성 신호를 비교한 결과에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 중 송화 음성을 수신할 송화 장치를 선택하는 동작;상기 송화 장치 및 상기 수화 장치가 서로 다른 장치인 경우, 상기 송화 장치가 구비하는 적어도 하나의 마이크로폰을 활성화 및 적어도 하나의 스피커를 비활성화하고, 상기 수화 장치가 구비하는 적어도 하나의 마이크로폰을 비활성화 및 적어도 하나의 스피커를 활성화하는 동작;상기 수화 장치로부터 수신한 수화 음성과 관련된 에코 레퍼런스 신호를 획득하여 저장하는 동작;상기 송화 장치로부터 수신한 송화 음성에 대한 상기 저장된 에코 레퍼런스 신호의 비교에 기초하여 상기 송화 음성에 포함된 에코 신호에 관한 EPD(echo path delay) 값을 확인하는 동작;상기 에코 레퍼런스 신호 및 상기 확인된 EPD 값을 이용하여 상기 송화 음성에 포함된 상기 에코 신호를 제거하는 동작을 포함하는 방법.
- 제13항에 있어서,상기 센싱 정보는 사용자의 위치 정보 및 상기 외부 전자 장치의 위치 정보를 포함하고,상기 수화 장치를 선택하는 동작은,상기 센싱 정보, 상기 전자 장치 및 상기 외부 전자 장치의 음량 정보에 기초하여 상기 전자 장치 및 상기 외부 전자 장치 각각에서 출력될 음성들의 SNR(signal to noise ratio) 값들을 확인하는 동작; 및상기 확인된 SNR 값들에 기초하여 상기 수화 장치를 선택하는 동작을 포함하는 방법.
- 제13항에 있어서,상기 음향 입력 모듈을 이용하여 수신한 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 비교는,상기 음향 입력 모듈을 통해 수신된 음성 신호 및 상기 외부 전자 장치의 마이크로폰으로부터 수신한 음성 신호의 각각의 SNR 값들 및 SER(speech to echo ratio) 값들 중 적어도 한가지를 비교하는 것으로 수행되는 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP21915831.8A EP4254407A4 (en) | 2020-12-31 | 2021-12-29 | Electronic device and voice input/output control method of electronic device |
| US17/579,875 US12062382B2 (en) | 2020-12-31 | 2022-01-20 | Electronic device and method for controlling speech input/output of electronic device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020200188907A KR102886950B1 (ko) | 2020-12-31 | 2020-12-31 | 전자 장치 및 전자 장치의 음성 입출력 제어 방법 |
| KR10-2020-0188907 | 2020-12-31 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/579,875 Continuation US12062382B2 (en) | 2020-12-31 | 2022-01-20 | Electronic device and method for controlling speech input/output of electronic device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022146033A1 true WO2022146033A1 (ko) | 2022-07-07 |
Family
ID=82259510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2021/020180 Ceased WO2022146033A1 (ko) | 2020-12-31 | 2021-12-29 | 전자 장치 및 전자 장치의 음성 입출력 제어 방법 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR102886950B1 (ko) |
| WO (1) | WO2022146033A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007243722A (ja) * | 2006-03-09 | 2007-09-20 | Toshiba Corp | 通信端末 |
| KR20170076527A (ko) * | 2015-12-24 | 2017-07-04 | 한국전기연구원 | 이종 웨어러블 기기들에 기반하여 통화를 지원하는 장치 및 방법 |
| US20170372722A1 (en) * | 2016-06-22 | 2017-12-28 | Cisco Technology, Inc. | Acoustic echo cancellation with delay uncertainty and delay change |
| KR20190034807A (ko) * | 2017-09-25 | 2019-04-03 | 현대모비스 주식회사 | 핸즈프리 시스템의 에코 제거 장치 및 방법 |
| US20200133332A1 (en) * | 2018-10-31 | 2020-04-30 | Snap Inc. | Alternating sampling method for non-echo duplex conversations on a wearable device with multiple speakers and microphones |
-
2020
- 2020-12-31 KR KR1020200188907A patent/KR102886950B1/ko active Active
-
2021
- 2021-12-29 WO PCT/KR2021/020180 patent/WO2022146033A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007243722A (ja) * | 2006-03-09 | 2007-09-20 | Toshiba Corp | 通信端末 |
| KR20170076527A (ko) * | 2015-12-24 | 2017-07-04 | 한국전기연구원 | 이종 웨어러블 기기들에 기반하여 통화를 지원하는 장치 및 방법 |
| US20170372722A1 (en) * | 2016-06-22 | 2017-12-28 | Cisco Technology, Inc. | Acoustic echo cancellation with delay uncertainty and delay change |
| KR20190034807A (ko) * | 2017-09-25 | 2019-04-03 | 현대모비스 주식회사 | 핸즈프리 시스템의 에코 제거 장치 및 방법 |
| US20200133332A1 (en) * | 2018-10-31 | 2020-04-30 | Snap Inc. | Alternating sampling method for non-echo duplex conversations on a wearable device with multiple speakers and microphones |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220096460A (ko) | 2022-07-07 |
| KR102886950B1 (ko) | 2025-11-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022055319A1 (en) | Electronic device for outputting sound and method for operating the same | |
| WO2023054957A1 (ko) | 영상을 제공하는 방법 및 이를 지원하는 전자 장치 | |
| WO2022203456A1 (ko) | 음성 신호 처리를 위한 전자 장치 및 방법 | |
| WO2022103176A1 (ko) | 전자 장치의 멀티 레코딩 시 무선 오디오 장치에서 마이크 입출력을 제어하는 방법 및 장치 | |
| WO2022154416A1 (ko) | 외부 장치에 의해 유입되는 에코를 제거하는 방법 및 전자 장치 | |
| WO2021201429A1 (ko) | 전자 장치 및 그의 오디오 출력을 제어하는 방법 | |
| WO2023085749A1 (ko) | 빔포밍을 제어하는 전자 장치 및 이의 동작 방법 | |
| WO2022197151A1 (ko) | 외부 소리를 듣기 위한 전자 장치 및 전자 장치의 동작 방법 | |
| WO2022030880A1 (ko) | 음성 신호를 처리하는 방법 및 이를 이용한 장치 | |
| WO2022154370A1 (ko) | 다중 장치 간 통신 방법 및 이를 위한 전자 장치 | |
| WO2022030750A1 (ko) | 음성 데이터 처리 방법 및 이를 지원하는 전자 장치 | |
| WO2022025452A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
| WO2022146033A1 (ko) | 전자 장치 및 전자 장치의 음성 입출력 제어 방법 | |
| WO2022164023A1 (ko) | 오디오 데이터를 처리하는 방법 및 이를 지원하는 전자 장치 | |
| WO2022203179A1 (ko) | 오디오 데이터 처리 방법 및 이를 지원하는 전자 장치 | |
| WO2023085642A1 (ko) | 동작 제어 방법 및 그 전자 장치 | |
| WO2022154321A1 (ko) | 잡음 환경에 따라서 통신 연결을 전환하는 전자 장치 및 그 제어 방법 | |
| WO2021133097A1 (ko) | 전자 장치 및 신경망 기반의 잔여 에코 제거 방법 | |
| WO2022119056A1 (ko) | 오디오 신호를 출력하는 전자 장치 및 오디오 신호의 출력 방법 | |
| WO2021221440A1 (ko) | 음질 향상 방법 및 그 장치 | |
| WO2024167331A1 (ko) | 전자 장치 및 전자 장치의 마이크 신호 보정 방법 | |
| WO2024096600A1 (ko) | 외부 소리를 전달하기 위한 전자 장치 및 전자 장치의 동작 방법 | |
| WO2024215063A1 (ko) | 소리를 출력하는 제1전자 장치와 이를 제어하는 제2전자 장치, 및 상기 제1전자 장치의 동작 방법 | |
| WO2023033602A1 (ko) | 소리를 출력하는 전자 장치와 이의 동작 방법 | |
| WO2023287023A1 (ko) | 음향 신호를 생성하는 전자 장치 및 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21915831 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021915831 Country of ref document: EP Effective date: 20230629 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |