WO2021133097A1 - 전자 장치 및 신경망 기반의 잔여 에코 제거 방법 - Google Patents

전자 장치 및 신경망 기반의 잔여 에코 제거 방법 Download PDF

Info

Publication number
WO2021133097A1
WO2021133097A1 PCT/KR2020/019087 KR2020019087W WO2021133097A1 WO 2021133097 A1 WO2021133097 A1 WO 2021133097A1 KR 2020019087 W KR2020019087 W KR 2020019087W WO 2021133097 A1 WO2021133097 A1 WO 2021133097A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
echo
input
neural network
voice
Prior art date
Application number
PCT/KR2020/019087
Other languages
English (en)
French (fr)
Inventor
조기호
백순호
문한길
손백권
양재모
이건우
이명호
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of WO2021133097A1 publication Critical patent/WO2021133097A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R5/00Stereophonic arrangements
    • H04R5/04Circuit arrangements, e.g. for selective connection of amplifier inputs/outputs to loudspeakers, for loudspeaker detection, or for adaptation of settings to personal preferences or hearing impairments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R1/00Details of transducers, loudspeakers or microphones
    • H04R1/20Arrangements for obtaining desired frequency or directional characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R3/00Circuits for transducers, loudspeakers or microphones
    • H04R3/04Circuits for transducers, loudspeakers or microphones for correcting frequency response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2460/00Details of hearing devices, i.e. of ear- or headphones covered by H04R1/10 or H04R5/033 but not provided for in any of their subgroups, or of hearing aids covered by H04R25/00 but not provided for in any of its subgroups
    • H04R2460/01Hearing devices using active noise cancellation

Definitions

  • the present invention relates to an electronic device and a residual echo cancellation method included in a voice signal, and more particularly, to a neural network-based residual echo cancellation method and apparatus.
  • neural networks eg, deep neural networks
  • speech recognition since a voice signal is distorted by noise or echo, removing background noise or echo from the voice signal is an important factor in improving sound quality.
  • neural networks eg, deep neural networks
  • speech recognition since a voice signal is distorted by noise or echo, removing background noise or echo from the voice signal is an important factor in improving sound quality.
  • neural networks eg, deep neural networks
  • a neural network model learns from a large amount of training data and outputs a result value.
  • performance degradation may occur due to voice distortion or residual noise.
  • it is necessary to learn to respond to a variety of environments, and it is necessary to implement a neural network model with a size that can be operated in a mobile environment. Do.
  • the speaker implemented in the mobile device may have non-linearity due to a clipping phenomenon and vibration effect. Even when a neural network model is implemented in a mobile environment, it may be difficult to remove noise or echo that is actually generated because it is difficult to model speaker nonlinearity. As a result, in a mobile environment, a residual echo signal is left or a residual voice is not heard, and thus the service quality in the voice field is deteriorated. Therefore, a method for effectively removing the residual echo signal is required.
  • a neural network model for removing residual echo is implemented, and an echo cancellation and residual echo cancellation effect from a voice signal are obtained by adaptively correcting an input value of a residual echo neural network model driven in an electronic device to a real-time environment.
  • An object of the present invention is to provide an electronic device that can be improved.
  • An electronic device includes a communication circuit, an input/output device including at least one microphone and at least one speaker, a processor operatively connected to the communication circuit and the input/output device, and operatively connected to the processor and a memory for storing a residual echo cancellation neural network model, wherein, when executed, the processor receives an input signal including a voice and an echo through the at least one microphone, and receives a second signal from the input signal.
  • a second channel signal is generated by compensating for the magnitude of the signal
  • a neural network output signal with an improved speech-to-echo ratio (SER) is generated by using the first channel signal and the second channel signal as input values of the residual echo cancellation neural network model. and may store instructions for post-processing the neural network output signal to obtain an echo-cancelled speech signal.
  • a residual echo cancellation method of an electronic device includes receiving an input signal including a voice and an echo from at least one microphone, estimating a first echo signal from the input signal, and the input signal removing the estimated first echo signal to generate a first channel signal including a second echo signal, estimating the second echo signal, and compensating for a magnitude of the estimated second echo signal generating a two-channel signal; using the first channel signal and the second channel signal as input values of a residual echo cancellation neural network model to obtain a neural network output signal having an improved speech-to-echo ratio (SER); and post-processing the neural network output signal to obtain an echo-cancelled voice signal.
  • SER speech-to-echo ratio
  • the electronic device removes the residual echo signal through the residual echo cancellation neural network model, and adaptively compensates the residual echo estimate input to the residual echo cancellation neural network model from the side of the electronic device in response to the electronic device environment. , it is possible to supplement the performance of the residual echo cancellation neural network model and obtain an echo-cancelled speech signal.
  • 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 illustrates a configuration of an electronic device according to various embodiments.
  • FIG. 4 is a block diagram of an electronic device according to various embodiments of the present disclosure.
  • FIG. 5 illustrates a residual echo cancellation method of an electronic device according to various embodiments of the present disclosure.
  • FIG. 6 illustrates a method of canceling a residual echo of an electronic device according to various embodiments of the present disclosure.
  • FIG. 7 is a block diagram of an electronic device according to various embodiments of the present disclosure.
  • FIG. 8 illustrates a method of canceling a residual echo of an electronic device according to various embodiments of the present disclosure.
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment 100 according to various embodiments of the present disclosure.
  • 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 the electronic device 104 or 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 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199 . It may communicate with the electronic device 104 or 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 device 150 , a sound output device 155 , a display device 160 , an audio module 170 , and a sensor module ( 176 , interface 177 , haptic module 179 , camera module 180 , power management module 188 , battery 189 , communication module 190 , subscriber identification module 196 , or antenna module 197 . ) may be included. In some embodiments, at least one of these components (eg, the display device 160 or the camera module 180 ) may be omitted or one or more other components may be added to the electronic device 101 . In some embodiments, some of these components may be implemented as one integrated circuit. For example, the sensor module 176 (eg, a fingerprint sensor, an iris sensor, or an illuminance sensor) may be implemented while being embedded in the display device 160 (eg, a display).
  • the sensor module 176 eg, a fingerprint sensor, an iris sensor, or an illuminance sensor
  • 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 an embodiment, as at least part of data processing or operation, the processor 120 stores commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) into a volatile memory (volatile memory). ) 132 , may process commands or data stored in the volatile memory 132 , and store the resulting data in a non-volatile memory 134 .
  • software eg, the program 140
  • the processor 120 stores commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) into a volatile memory (volatile memory).
  • volatile memory volatile memory
  • 132 may process commands or data stored in the volatile memory 132 , and store the resulting data in a non-volatile memory 134 .
  • the processor 120 includes a main processor 121 (eg, a central processing unit (CPU) or an application processor (AP)), and a coprocessor that can be operated independently or together with the processor 120 .
  • a main processor 121 eg, a central processing unit (CPU) or an application processor (AP)
  • a coprocessor that can be operated independently or together with the processor 120 .
  • 123 eg, a graphic processing unit (GPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)
  • the auxiliary processor 123 may be configured to use less power than the main processor 121 or to be specialized for a designated function.
  • the auxiliary processor 123 may be implemented separately from or as a part of the main processor 121 .
  • the auxiliary processor 123 is, for example, on behalf of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is At least one of the components of the electronic device 101 (eg, the display device 160 and the sensor module 176 ) together with the main processor 121 while in an active (eg, application execution) state ), or at least some of functions or states related to the communication module 190).
  • 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 memory 130 may store various data used by at least one component of the electronic device 101 (eg, the processor 120 or the sensor module 176 ).
  • 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 (OS) 142 , middleware 144 , or an application 146 . have.
  • OS operating system
  • middleware middleware
  • application application
  • the input device 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 device 150 may include, for example, a microphone, a mouse, a keyboard, or a digital pen (eg, a stylus pen).
  • the sound output device 155 may output a sound signal to the outside of the electronic device 101 .
  • the sound output device 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, and the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
  • the display device 160 may visually provide information to the outside (eg, a user) of the electronic device 101 .
  • the display device 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device.
  • the display device 160 includes a touch circuitry configured to sense a touch or a sensor circuit configured to measure the intensity of a force generated by the touch (eg, a pressure sensor). may include.
  • 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 device 150 , or an external electronic device (eg, a sound output device 155 ) connected directly or wirelessly with the electronic device 101 . The sound may be output through the electronic device 102 (eg, a speaker or headphones).
  • an external electronic device eg, a sound output device 155
  • the 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, 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 barometer sensor, a magnetic sensor, and an acceleration sensor. ), grip sensor, proximity sensor, color sensor (eg, RGB (red, green, blue) sensor), IR (infrared) sensor, biometric sensor, temperature It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect to an external electronic device (eg, the electronic device 102 ) of the electronic device 101 .
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD secure digital
  • 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 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 wireless 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 corresponding communication module among these communication modules is a first network 198 (eg, a short-range communication network such as Bluetooth, Wi-Fi direct, or infrared data association (IrDA)) or a second network 199 (eg, a cellular network, the Internet).
  • a computer network eg, a telecommunication network such as a LAN or a wide area network (WAN)
  • These various types of communication modules may be integrated into one component (eg, a single chip) or may be implemented as a plurality of components (eg, multiple chips) separate from each other.
  • the wireless communication module 192 communicates with the first network 198 or the second network 199 using subscriber information (eg, international mobile subscriber identity (IMSI)) stored in the subscriber identification module 196 .
  • subscriber information eg, international mobile subscriber identity (IMSI)
  • IMSI international mobile subscriber identity
  • 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 one 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. 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 selected. 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, RFIC
  • other than the radiator may be additionally formed as a part of the antenna module 197 .
  • 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 electronic devices 102 and 104 may be the same or a different type of the electronic device 101 .
  • all or part of the operations executed in the electronic device 101 may be executed in one or more of the external electronic devices 102 , 104 , or 108 .
  • 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 102 and 104 may be requested to perform at least a part of a function or a service thereof.
  • the one or more external electronic devices 102 and 104 that have received the request execute at least a part of the requested function or service, or an additional function or service related to the request, and send a result of the execution to the electronic device 101 can transmit
  • 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, or client-server computing technology may be used.
  • FIG. 2 is a block diagram of an audio module, according to various embodiments.
  • the audio module 170 includes, for example, an audio input interface 210 , an audio input mixer 220 , an analog to digital converter (ADC) 230 , and an audio signal processor. 240 , a digital to analog converter (DAC) 250 , an audio output mixer 260 , or an audio output interface 270 .
  • ADC analog to digital converter
  • DAC digital to analog converter
  • the audio input interface 210 is a part of the input device 150 or acquired from the outside of the electronic device 101 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, It can perform noise processing (eg noise or echo reduction), channel changes (eg switching between mono and stereo), mixing, or specified signal extraction.
  • noise processing eg noise or echo reduction
  • channel changes eg 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 includes 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 device 155 to the electronic device 101 . ) can be printed out.
  • the sound output device 155 may include, for example, a speaker such as a dynamic driver or a balanced armature driver, or a receiver.
  • the sound output device 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 .
  • the electronic device 101 may have various types of devices.
  • the electronic device 101 may include, for example, a portable communication device (eg, a smartphone), a portable multimedia device, a portable medical device, a camera, a wearable device, an artificial intelligence device, or a home appliance device.
  • a portable communication device eg, a smartphone
  • a portable multimedia device e.g., a portable multimedia device
  • a portable medical device e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a portable medical device
  • an artificial intelligence device e.g., a home appliance device.
  • the electronic device 101 is not limited to the aforementioned devices.
  • FIG. 3 illustrates a configuration of an electronic device according to various embodiments.
  • the communication circuit 310 may communicate with an external device.
  • the communication circuit 310 may receive data related to the residual echo cancellation neural network model 319 from an external device.
  • the communication circuit 310 may receive update information of the residual echo cancellation neural network model 319 stored in the memory 317 .
  • the electronic device 101 may store the residual echo cancellation model received from the external device in the memory 317 .
  • the communication circuit 310 may communicate with an external device to transmit/receive a voice signal.
  • the communication circuit 310 may receive a voice signal transmitted from an external device and transmit the voice signal acquired through the microphone 311 to the processor 315 .
  • the microphone 311 may receive a sound signal corresponding to a sound acquired from the outside.
  • the microphone 311 may receive a voice uttered by a user.
  • the electronic device 101 may include at least one microphone 311 .
  • the electronic device 101 may acquire sound signals in multiple channels through each microphone.
  • the speaker 313 may output a sound signal corresponding to the sound.
  • the electronic device 101 may include at least one speaker 313 , but is not limited thereto.
  • the memory 317 may store the residual echo cancellation neural network model 319 .
  • the residual echo cancellation neural network model 319 may be implemented as a neural network model trained for residual echo cancellation, but is not limited thereto, and may be implemented as a neural network model trained for noise and residual echo cancellation. .
  • the processor 315 may receive update information of the residual echo cancellation neural network model 319 by communicating with a server through which the electronic device 101 learns the residual echo cancellation neural network model 319 .
  • the processor 315 may update the residual echo cancellation neural network model 319 stored in the memory 317 based on the update information.
  • the processor 315 based on the residual echo cancellation neural network model 319, has an improved signal to echo ratio (SER) for a voice input and/or a signal to noise ratio (SNR) of a voice to a noise signal. ) can output an improved signal.
  • SER signal to echo ratio
  • SNR signal to noise ratio
  • the processor 315 estimates a residual echo signal from a sound signal (or a microphone signal) obtained from the microphone 311 , and inputs a signal obtained by compensating the estimated residual echo signal to the residual echo cancellation neural network model. It can be passed by value.
  • the processor 315 estimates a noise signal and a residual echo signal from a sound signal (or a microphone signal) obtained from the microphone 311 , and converts a signal obtained by compensating the estimated noise and residual echo signal to noise and It can be passed as an input value to the residual echo cancellation neural network model.
  • FIG. 4 is a block diagram of an electronic device according to various embodiments of the present disclosure. Some of the blocks shown in FIG. 4 may be stored in the memory 317 of the electronic device 101 shown in FIG. 3 or may operate under the control of the processor 315 .
  • the electronic device (the electronic device 101 of FIG. 3 ) includes an output unit 410 , an input unit 420 , an echo canceller 430 , a residual echo compensator 440 , It may include a residual echo cancellation neural network model 450 , a post-processor 460 , and a detector 470 .
  • the residual echo cancellation neural network model 450 may be a neural network model trained or updated for residual echo cancellation by the server of FIG. 1 .
  • the output unit 410 may output a sound signal (eg, an audio signal or a voice signal).
  • the output unit 410 may include at least one speaker 411 and a DAC 415 .
  • the DAC 415 may convert a digital signal into an analog signal.
  • the output unit 410 may output an analog signal converted through the DAC 415 or an analog signal synthesized by a mixer (not shown) to the outside through the speaker 411 .
  • the sound signal output to the outside through the output unit 410 will be referred to as a speaker signal X
  • the speaker signal X may be a signal that is a reference for echo estimation or residual echo estimation.
  • the input unit 420 may receive a sound signal corresponding to a sound acquired from the outside.
  • the input unit 420 may include at least one microphone 421 and an ADC 425 .
  • the ADC 425 may convert an analog signal into a digital signal.
  • the input unit 420 may transmit a digital signal input through the ADC 425 to the echo canceller 430 or other components of the electronic device 101 .
  • the sound or signal received through the input unit 420 will be referred to as an input signal or a microphone signal (M).
  • the echo Y may be directly or indirectly input to the voice S uttered by the speaker from the outside, and the ambient noise N may be additionally received depending on the surrounding environment.
  • the microphone signal M may include at least one of an echo signal Y and a noise signal N in addition to the voice signal S.
  • the input unit 420 performs short time fourier transform (STFT) on an input signal (eg, S+Y or S+Y+N) to output them as signals in the time-frequency domain, and the echo canceller 430 . ) can be passed to
  • STFT short time fourier transform
  • the echo canceller 430 may include an echo estimator 431 and a subtractor 432 .
  • the echo estimator 431 may estimate an echo component (or signal) based on the speaker signal X.
  • the echo estimator 431 may include an acoustic echo canceller (AEC), but is not limited thereto.
  • AEC acoustic echo canceller
  • the echo estimator 431 may be implemented as various types of adaptive filters (or filter algorithms) for echo cancellation. For example, AEC can identify echo paths and synthesize echo estimates by applying a normalized least mean-square (NLMS) filter to a reference signal (eg, speaker signal X).
  • NLMS normalized least mean-square
  • the subtractor 432 may remove the echo signal estimated by the echo estimator 431 from the microphone signal M.
  • the echo canceller 430 generates a signal obtained by removing the echo signal estimated from the microphone signal M through the subtractor 432 , and the first signal is input to the residual echo cancellation neural network model 450 . It can be output as the channel signal E1. It can be estimated that the first channel signal E1 includes the voice signal S and the residual echo signal Z. For example, the echo canceller 430 may not completely remove the echo component from the microphone signal M, and thus the first channel signal E1 may include the residual echo signal Z.
  • the residual echo signal Z may be estimated as a component obtained by removing the estimated echo signal from the actual echo signal Y input from the microphone 421 .
  • the residual echo compensator 440 may include a residual echo estimator 441 and a residual echo compensation filter 445 .
  • the residual echo compensator 440 may estimate the residual echo signal through the residual echo estimator 441 and generate a signal obtained by compensating the residual echo signal estimated through the residual echo compensation filter 445 .
  • the residual echo compensator 440 may output the residual echo signal estimated through the residual echo compensation filter 445 or the compensated residual echo signal as the second channel signal E2 input to the residual echo cancellation neural network model 450 . have.
  • the residual echo estimator 441 may estimate the residual echo signal based on the output signal X, the estimated echo, and the voice signal S+Z including the residual echo signal.
  • the residual echo compensation filter 445 may compensate the estimated residual echo signal and output the compensated signal.
  • the residual echo estimator 441 may update the filter coefficients so that the residual echo signal is compensated through the residual echo compensation filter 445 .
  • the residual echo compensation filter 445 compensates for a residual echo size difference by comparing a section in which only echoes exist and a section of a residual echo estimate, or a neural network input signal (eg, the first channel signal E1) and a neural network output. By comparing the signals, it may be updated with filter coefficients (or weights) for compensating for a portion in which echo is not removed.
  • the voice signal includes a voice section (or a voiced section) and a non-voice section (or a silent section), and the characteristic in the non-voice section can be estimated as a section in which only an echo exists.
  • the residual echo compensator 440 may detect a difference in signal size by comparing the frequency characteristics of the residual echo estimation value section and the non-voice section, that is, a section in which only echoes exist, and the echo adder 440 detects a size difference in the section in which only echoes exist.
  • the filter coefficients can be changed to compensate for .
  • the residual echo compensator 440 may change a filter coefficient for compensating for the residual echo cancellation amount of the residual echo cancellation neural network model 450 .
  • the residual echo cancellation neural network model 450 receives a first channel signal E1 including a speech signal and an echo signal and a second channel signal E2 including an estimated or compensated residual echo signal, and uses a residual echo cancellation coefficient.
  • a signal K eg, a neural network output signal
  • SER speech-to-echo ratio
  • the residual echo cancellation neural network model 450 may output a signal having an improved SNR of speech compared to a noise signal.
  • the residual echo cancellation neural network model 450 is configured such that the first channel signal E1 is input to the voice main channel and the second channel signal E2 is used as the residual echo reference channel to improve the voice-to-echo ratio SER. It may be a trained residual echo cancellation neural network model.
  • the residual echo cancellation neural network model 450 is an artificial neural network including a plurality of hidden layers between an input layer and an output layer, and may be a model modeling complex nonlinear relationships.
  • the residual echo cancellation neural network model 450 may include a neural network model based on at least one of a convolutional neural network (CNN), a recurrent neural network (RNN), and a deep neural network (DNN).
  • CNN convolutional neural network
  • RNN recurrent neural network
  • DNN deep neural network
  • the residual echo cancellation neural network model 450 uses an input feature as an input vector to estimate an optimal gain through regression learning, and uses the target feature vector as an objective function of the neural network to determine the residual echo It may be a model implemented based on the learned learning model in the direction of minimizing the removal difference.
  • the residual echo cancellation neural network model 450 may be updated based on a learning result of the learning model.
  • the residual echo cancellation neural network model 450 may transmit a signal K (eg, a neural network output signal) having an improved speech-to-echo ratio SER to the post-processor 460 .
  • K eg, a neural network output signal
  • the detector 470 may detect a voice section (or a voiced section) and a non-voice section (or a silent section) by using the frequency characteristic.
  • the detector 470 may include a voice activity detector (VAD).
  • VAD voice activity detector
  • a voice signal has a pitch component within a certain range and may include a harmonic feature having a frequency corresponding to an integer multiple of a fundamental frequency
  • a non-voice signal includes a feature due to voice Therefore, the detector 470 may detect a voice section and a non-voice section.
  • the detector 470 may detect a voice section and a non-voice section, and transmit a frequency characteristic of the non-voice section to the residual echo compensator 440 .
  • the post-processor 460 may remove residual echo or residual noise for the neural network output signal K by post-processing.
  • the post-processor 460 compares the second channel signal E2 with the output signal of the residual echo cancellation neural network model and removes the residual echo or residual noise by post-processing again using SER difference or SNR difference information for the two signals. Thus, only the echo-cancelled audio signal S may be output.
  • the post-processor 460 may perform inverse short time fourier transform (ISTFT) on the echo-removed voice signal S to restore the sound source signal in the time domain and output it.
  • ISTFT inverse short time fourier transform
  • FIG. 5 illustrates a residual echo cancellation method of an electronic device according to various embodiments of the present disclosure.
  • the processor eg, the processor 315 of FIG. 3
  • the electronic device transmits a signal through a speaker in operation 510 .
  • a speaker in operation 510 can be printed out.
  • a sound output through a speaker eg, the speaker 313 of FIG. 3
  • the processor 315 may output another user's voice signal received through call communication with an external device to the speaker.
  • the echo signal may be an echo component based on a speaker signal.
  • the processor 315 may estimate the echo signal Y based on the speaker signal X.
  • the processor 315 may set the speaker signal X as a reference signal and estimate an echo signal having a frequency characteristic similar to that of the echo signal by applying linear and/or non-linear filtering.
  • the processor 315 may estimate a residual echo signal.
  • the processor 315 may generate the second channel signal E2 by compensating for the estimated residual echo signal.
  • the processor 315 may compensate for the magnitude of the residual echo signal based on the default filter coefficient.
  • the processor 315 may compensate the magnitude of the residual echo signal based on the updated filter coefficient.
  • the processor 315 may update the residual echo compensation filter periodically or in real time.
  • the processor 315 compensates for a residual echo size difference by comparing a section in which only echoes exist with a section of the residual echo estimate, or a neural network input signal (eg, the first channel signal E1) and a neural network output signal. By comparing , it is possible to update the filter coefficient (or weight) for compensating for the portion in which the echo is not removed.
  • the processor 315 may input the first channel signal E1 and the second channel signal E2 to the residual echo cancellation neural network model.
  • the processor 315 may obtain a neural network output signal K having an improved speech-to-echo ratio SER based on the residual echo cancellation neural network model.
  • the processor 315 may post-process the neural network output signal K to obtain an echo-cancelled voice signal.
  • FIG. 6 illustrates a method of canceling a residual echo of an electronic device according to various embodiments of the present disclosure.
  • the processor of the electronic device 101 based on a microphone signal (eg, a voice signal) received through a microphone (eg, the microphone 311 of FIG. 3 ).
  • a neural network output signal K having an improved speech-to-echo ratio SER may be output using the generated first channel signal E1 and the second channel signal E2 .
  • the processor may output the neural network output signal K for the microphone signal by performing operations 510 to 520 of FIG. 5 .
  • the first channel signal E1 may include a residual echo signal.
  • the processor 315 may generate the second channel signal E2 by estimating the residual echo signal and applying the residual echo compensation filter.
  • the processor 315 may post-process the neural network output signal K to obtain a voice signal from which the echo signal is removed.
  • the processor 315 may detect a voice section and a non-voice section.
  • the processor 315 may compare an echo-only section with a residual echo estimate section based on the non-speech section. For example, since the non-voice section does not include a speech characteristic, it may be estimated as a section in which only an echo exists.
  • the processor 315 may compare a frequency component of a section in which only an echo exists through a non-voice section and a frequency component of a residual echo estimation section. For example, the processor 315 may compare an echo-only section with a residual echo estimate section based on the first channel signal E1 and the second channel signal E2 in the non-voice section.
  • the processor 315 may calculate a residual echo size difference from a section in which only an echo section exists in the residual echo estimate section.
  • the processor 315 may determine a residual echo filter coefficient for compensating for a residual echo magnitude difference and update it.
  • the processor 315 may compare the first channel signal E1 including echo and voice with the neural network output signal K. For example, the processor 315 may compare the first channel signal E1 and the neural network output signal K in the non-voice section.
  • the processor 315 may calculate a portion in which the echo is not removed as a result of the comparison.
  • the processor 315 may update a residual echo filter coefficient for compensating for a portion in which an echo is not removed. For example, the processor 315 checks whether an echo component exists above a set threshold in a non-voice section that does not include a speech characteristic in the neural network output signal, and detects a section in which the echo is not removed for a section where the set threshold or more exists.
  • the processor 315 may compensate the residual echo estimate using the updated residual echo filter coefficient in operation 645 and/or 655 .
  • FIG. 7 is a block diagram of an electronic device according to various embodiments of the present disclosure; Some of the blocks shown in FIG. 7 may be stored in the memory 317 of the electronic device 101 shown in FIG. 3 or may operate under the control of the processor 315 .
  • the block diagram of FIG. 7 is divided into blocks for convenience of description, but is not limited thereto.
  • the output unit 710 may output a sound signal (eg, an audio signal or a voice signal).
  • the output unit 710 may include at least one speaker 711 and a DAC 715 .
  • the output unit 710 may output an analog signal converted through the DAC 715 or an analog signal synthesized by a mixer (not shown) to the outside through the speaker 711 .
  • the sound signal output to the outside through the output unit 710 will be referred to as a speaker signal X, and the speaker signal X may be a signal that is a reference for echo estimation or residual echo estimation.
  • the input unit 720 may receive a sound signal corresponding to a sound acquired from the outside.
  • the input unit 720 may include at least one microphone 721 and an ADC 725 .
  • the input unit 720 may transmit a digital signal input through the ADC 725 to the echo canceller 730 , the noise compensator 750 , or other components of the electronic device 101 .
  • the sound signal received through the input unit 720 will be referred to as a microphone signal (M).
  • an echo Y may be directly or indirectly included in a voice S uttered by a speaker from the outside, and ambient noise N may be received according to a surrounding environment.
  • the microphone signal M may include an echo signal Y and a noise signal N in addition to the voice signal S.
  • the input unit 720 performs short time fourier transform (STFT) on a microphone signal (eg, S+Y+N), outputs them as signals in the time-frequency domain, and uses the echo canceller 730 and the noise compensator ( 750) can be passed.
  • STFT short time fourier transform
  • the echo canceller 730 may include an echo estimator 731 and a subtractor 732 .
  • the echo estimator 731 may estimate (Y) an echo component (or signal) based on the speaker signal (X).
  • the echo estimator 731 may include an acoustic echo canceller (AEC), but is not limited thereto.
  • AEC can identify echo paths and synthesize echo estimates by applying a normalized least mean-square (NLMS) filter to a reference signal (eg, speaker signal (x)).
  • NLMS normalized least mean-square
  • the subtractor 432 may remove the echo signal estimated by the echo estimator 731 from the microphone signal M.
  • the echo canceller 730 may generate a signal obtained by removing the estimated echo signal from the microphone signal M, and may output it as a first channel signal E1 input to the noise and residual echo cancellation neural network model 770 . Since only the echo estimate value is removed from the first channel signal E1, it can be estimated that it includes the speech signal S, the residual echo signal Z, and the noise signal N.
  • the residual echo compensator 740 may include a residual echo estimator 741 and a residual echo compensation filter 745 .
  • the residual echo compensator 740 may generate a compensated signal by estimating the residual echo signal and compensating for the estimated residual echo signal Z'.
  • the residual echo compensator 740 may transmit a signal compensated through the residual echo compensation filter 745 to the interference signal estimator 760 .
  • the residual echo estimator 741 may estimate the residual echo signal based on the output signal X, the estimated echo, and the voice signal S+Z including the residual echo signal.
  • the residual echo compensator 740 compensates for a residual echo size difference by comparing a section in which only echoes exist and a section of the residual echo estimate, or a neural network input signal (eg, the first channel signal E1) and a neural network.
  • a filter coefficient of the residual echo compensation filter 745 may be updated in order to compensate a portion in which an echo is not removed by comparing the output signals.
  • the residual echo compensation filter 745 may output a signal obtained by compensating the residual echo signal estimated by the filter coefficient.
  • the noise compensator 750 may include a noise estimator 751 and a noise compensation filter 755 .
  • the noise compensator 750 may generate a compensated noise signal by estimating the noise signal N and compensating for the noise signal estimated through the noise compensation filter 755 .
  • the noise compensator 750 may transmit the residual echo signal compensated through the noise compensation filter 755 to the interference signal estimator 760 .
  • the noise compensator 750 detects a non-voice section and an echo-free section in the input signal, and includes an input signal in a non-voice section and an echo-free section, and the non-voice section and an echo-free section. It is possible to calculate a difference in magnitude of a speaker signal corresponding to , and compensate for a noise signal based on frequency characteristics of the non-voice section and the echo-free section.
  • the noise estimator 751 may estimate the noise signal based on the microphone signal M and the estimated echo signal.
  • the noise estimator 751 may transmit the estimated noise signal to the noise compensation filter 755 .
  • the noise estimator 751 may estimate the noise level based on a difference in arrival time of a voice (eg, multi-channel).
  • the noise estimator 751 may detect an echo-free section in the non-voice section in consideration of characteristics of an echo signal, and estimate a speech and echo-free section.
  • the noise signal is a signal corresponding to a sound acquired by an external environment of the electronic device, and may have different frequency characteristics from an echo signal based on a microphone signal.
  • the noise estimator 751 may define a section in which the echo signal characteristic is not detected in the non-voice section as an echo-free section, and estimate the signal characteristic only in a section in which only noise exists in the echo-free section.
  • the noise compensation filter 755 may be updated with filter coefficients for compensating for a noise level difference in a section where only noise exists. For example, the noise compensation filter 755 calculates a difference in magnitude between an input signal in a non-voice section and an echo-free section and a speaker signal corresponding to a non-voice section and an echo-free section, and calculates a difference in amplitude between the non-voice section and the echo section.
  • a filter coefficient may be determined based on a frequency characteristic of a section in which there is no , and a signal obtained by compensating a noise signal estimated by the determined filter coefficient may be output.
  • the interference signal estimator 760 generates an interference signal including the residual echo signal obtained from the residual echo compensator 740 and the noise signal obtained from the noise compensator 750 , and uses the noise and residual echo cancellation neural network model 770 . ) as the second channel signal E2.
  • a first channel signal E1 is input as a voice main channel, and a second channel signal E2 is used as a residual echo and noise reference channel to obtain a voice-to-echo ratio (SER). ) may be improved, and it may be a noise and residual echo cancellation neural network model trained to improve the SNR of speech versus noise signals.
  • SER voice-to-echo ratio
  • the noise and residual echo cancellation neural network model 770 transmits a signal (K) with an improved speech-to-echo ratio (SER) and a signal (eg, a neural network output signal) with an improved SNR of the noise signal to the speech to the post-processor 780 .
  • K signal with an improved speech-to-echo ratio
  • SER speech-to-echo ratio
  • a signal eg, a neural network output signal
  • the detector 790 may detect a voice section (or a voiced section) and a non-voice section (or a silent section) by using the frequency characteristic.
  • the detector 790 may include a voice activity detector (VAD).
  • VAD voice activity detector
  • the detector 790 may detect a voice section and a non-voice section, and transmit a frequency characteristic of the non-voice section to the residual echo compensator 440 .
  • the post-processor 780 may remove residual echo or residual noise for the neural network output signal K by post-processing.
  • the post-processor 780 compares the second channel signal E2 with the output signal, and uses the SER difference or SNR difference information for the two signals to remove the residual echo and residual noise by post-processing once again to remove the echo and the noise. It can output an audio signal.
  • the post-processor 780 may perform an inverse short time Fourier transform (ISTFT) on the echo-removed voice signal S to restore it to a sound source signal in the time domain and output it.
  • ISTFT inverse short time Fourier transform
  • FIG. 8 illustrates a method of canceling a residual echo of an electronic device according to various embodiments of the present disclosure.
  • the processor (eg, the processor 315 of FIG. 3 ) of the electronic device transmits a signal through a speaker in operation 810 .
  • a speaker in operation 810 .
  • a sound output through a speaker may be understood as a speaker signal X.
  • the processor 315 may output another user's voice signal received through call communication with an external device to the speaker.
  • the processor 315 may estimate the echo signal Y based on the speaker signal X.
  • the processor 315 may set the speaker signal X as a reference signal and apply linear and/or non-linear filtering to estimate the speaker signal X as an echo signal having a frequency characteristic similar to that of the echo signal.
  • the processor 315 may estimate a residual echo signal.
  • the processor 315 may compensate for the estimated residual echo signal.
  • the processor 315 may compensate for the magnitude of the residual echo signal based on the default filter coefficient.
  • the processor 315 may compensate the magnitude of the residual echo signal based on the updated filter coefficient.
  • the processor 315 may update the residual echo compensation filter periodically or in real time.
  • the processor 315 compensates for the difference in residual echo size by comparing the echo-only section with the residual echo estimate section, or compares the neural network input signal (eg, the first channel signal E1) with the neural network output signal to eliminate the echo Filter coefficients (or weights) for compensating for the missing part may be updated.
  • the neural network input signal eg, the first channel signal E1
  • the neural network output signal to eliminate the echo Filter coefficients (or weights) for compensating for the missing part may be updated.
  • the processor 315 may estimate the noise signal N based on the microphone signal. For example, the processor 315 may check the non-speech section and estimate the average value of the noise level in the non-speech section in consideration of the characteristics of the echo signal. The processor 315 may update the noise compensation filter coefficient with the filter coefficient for compensating the noise level with the average value in the section in which the noise exists.
  • the processor 315 may compensate for the estimated noise signal.
  • the processor 315 may compensate for the magnitude of the noise signal based on the default filter coefficient.
  • the processor 315 may compensate the magnitude of the residual echo signal based on the updated filter coefficient.
  • the processor 315 may update the noise compensation filter periodically or in real time.
  • the processor 315 may generate the second channel signal E2 by estimating the interference signal including the compensated residual echo signal and the noise signal.
  • the processor 315 may input the first channel signal E1 and the second channel signal E2 to the noise and residual echo cancellation neural network model.
  • the processor 315 may obtain a signal (eg, a neural network output signal) having improved speech-to-echo ratio (SER) and improved SNR of speech to noise signal based on the noise and residual echo cancellation neural network model.
  • a signal eg, a neural network output signal
  • SER speech-to-echo ratio
  • SNR improved SNR of speech to noise signal based on the noise and residual echo cancellation neural network model.
  • the processor 315 may post-process the neural network output signal K to obtain only the echo-cancelled speech signal.
  • module may include a unit implemented in hardware, software or firmware, for example, logic, logic block, component ), or circuit (circuit) may be used interchangeably with terms such as.
  • a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions. According to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • one or more stored in a storage medium eg, the internal memory 136 or the external memory 138 readable by a machine (eg, the electronic device 101 ) It may be implemented as software (eg, the program 140 ) including instructions.
  • the processor eg, the processor 120
  • the device may call at least one of one or more instructions stored from a storage medium and execute it. This makes it possible for the device to be operated to perform at least one function according to the at least one command called.
  • the one or more instructions may include code generated by a compiler or code that may be executed 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 contain a signal (eg, electromagnetic wave), and this term refers to the case 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 by being 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 CD-ROM, compact disc read only memory), or via an application store (eg Play Store TM ) or on two user devices (eg CD-ROM). : can be distributed (eg, downloaded or uploaded) online, directly between smartphones).
  • a part of the computer program product may be temporarily stored or temporarily created 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, a module or a program of the above-described components may include a singular or a plurality of entities.
  • 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.

Abstract

다양한 실시예에 따른 전자 장치는, 통신 회로와, 적어도 하나의 마이크 및 적어도 하나의 스피커를 포함하는 입출력 장치와, 상기 통신 회로 및 상기 입출력 장치와 작동적으로 연결된 프로세서와 상기 프로세서와 작동적으로 연결되고, 잔여 에코 제거 신경망 모델을 저장하는 메모리를 포함하고, 상기 메모리는 실행 시에, 상기 프로세서가, 상기 적어도 하나의 마이크로폰을 통해 음성 및 에코가 포함된 입력 신호를 수신하고, 상기 입력 신호로부터 제1 에코 신호를 추정하고 상기 입력 신호에서 상기 추정된 제1 에코 신호를 제거하여 제2 에코 신호가 포함된 제1 채널 신호를 생성하고, 상기 제2 에코 신호를 추정하고, 상기 추정된 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하고, 상기 제1 채널 신호와 제2 채널 신호를 상기 잔여 에코 제거 신경망 모델의 입력값으로 이용하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호를 획득하고, 상기 신경망 출력 신호를 후처리하여 에코 제거된 음성 신호를 획득하도록 하는 인스트럭션들을 저장할 수 있다.

Description

전자 장치 및 신경망 기반의 잔여 에코 제거 방법
본 발명은 전자 장치 및 음성 신호에 포함된 잔여 에코 제거 방법에 관한 것으로 보다 구체적으로, 신경망 기반의 잔여 제거 방법 및 장치에 관한 것이다.
음성 인식, 음성 통신 분야에서 음성 신호는 잡음(noisy)이나 에코(ehco)에 의해 왜곡되므로, 음성 신호에서 배경 잡음(background noise)이나 에코를 제거하는 것은 음질을 향상시키는데 있어 중요한 요인이다. 최근 전자 장치 분야에서 핸즈 프리, 인공 지능 스피커 기능이 범용적으로 확대됨에 따라 음성 신호에서 에코를 효과적으로 제거하기 위한 방안이 요구되고 있다. 예를 들어, 음질 향상 또는 음성 인식을 위해 신경망(예: deep neural network)을 도입하고 있다.
신경망 모델은 대용량의 학습 데이터(training data)로부터 학습하여 결과값을 출력하나, 신경망 모델 학습에 고려되지 않는 환경에서는 음성 왜곡 또는 잔여 잡음으로 인해 성능 열화가 발행될 수 있다. 특히, 모바일 환경에서는 다양한 화자, 다양한 잡음 환경이 존재하므로, 모바일 환경에서의 신경망 모델을 구현하기 위해서는 다양한 환경에 대해 대응할 수 있도록 학습해야 하며, 모바일 환경에서 동작 가능한 크기의 신경망 모델로 구현하는 것이 필요하다.
또한, 모바일 장치에 구현된 스피커는 클리핑(clipping) 현상, 진동 효과로 인한 비선형성이 존재할 수 있다. 모바일 환경에서 신경망 모델을 구현하더라도, 스피커의 비선형성에 대한 모델링이 어려워 실질적으로 발생하는 잡음 또는 에코를 제거하기 어려울 수 있다. 이로 인해 모바일 환경에서는 잔여 에코 신호(residual echo signal)가 남거나 잔여 음성이 들리지 않는 문제가 생기게 되어 음성 분야의 서비스 품질이 저하되므로 잔여 에코 신호를 효과적으로 제거하기 위한 방안이 요구되고 있다.
다양한 실시예에 따르면, 잔여 에코를 제거하기 위한 신경망 모델을 구현하되, 전자 장치에서 구동되는 잔여 에코 신경망 모델의 입력값을 실시간 환경에 적응적으로 보정하여 음성 신호에서 에코 제거 및 잔여 에코 제거 효과를 향상시킬 수 있는 전자 장치를 제공하고자 한다.
다양한 실시예에 따른 전자 장치는, 통신 회로와, 적어도 하나의 마이크 및 적어도 하나의 스피커를 포함하는 입출력 장치와, 상기 통신 회로 및 상기 입출력 장치와 작동적으로 연결된 프로세서와 상기 프로세서와 작동적으로 연결되고, 잔여 에코 제거 신경망 모델을 저장하는 메모리를 포함하고, 상기 메모리는 실행 시에, 상기 프로세서가, 상기 적어도 하나의 마이크로폰을 통해 음성 및 에코가 포함된 입력 신호를 수신하고, 상기 입력 신호로부터 제1 에코 신호를 추정하고 상기 입력 신호에서 상기 추정된 제1 에코 신호를 제거하여 제2 에코 신호가 포함된 제1 채널 신호를 생성하고, 상기 제2 에코 신호를 추정하고, 상기 추정된 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하고, 상기 제1 채널 신호와 제2 채널 신호를 상기 잔여 에코 제거 신경망 모델의 입력값으로 이용하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호를 획득하고, 상기 신경망 출력 신호를 후처리하여 에코 제거된 음성 신호를 획득하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법은, 적어도 하나의 마이크로폰으로부터 음성 및 에코가 포함된 입력 신호를 수신하는 동작과, 상기 입력 신호로부터 제1 에코 신호를 추정하는 동작과, 상기 입력 신호에서 상기 추정된 제1 에코 신호를 제거하여 제2 에코 신호가 포함된 제1 채널 신호를 생성하는 동작과, 상기 제2 에코 신호를 추정하고, 상기 추정된 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하는 동작과, 상기 제1 채널 신호와 상기 제2 채널 신호를 잔여 에코 제거 신경망 모델의 입력값으로 이용하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호를 획득하는 동작과 상기 신경망 출력 신호를 후처리하여 에코 제거된 음성 신호를 획득하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 전자 장치에서 잔여 에코 제거 신경망 모델을 통해 잔여 에코 신호를 제거하되, 전자 장치 측면에서 잔여 에코 제거 신경망 모델에 입력되는 잔여 에코 추정치를 전자 장치 환경에 대응하여 적응적으로 보상함으로써, 잔여 에코 제거 신경망 모델의 성능을 보완하고 에코가 제거된 음성 신호를 획득할 수 있다.
도 1은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예에 따른, 오디오 모듈의 블록도이다.
도 3은 다양한 실시예에 따른 전자 장치의 구성을 나타낸다.
도 4는 다양한 실시예에 따른 전자 장치의 블록도를 도시한다.
도 5는 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 6은 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 7은 다양한 실시예에 따른 전자 장치의 블록도를 도시한다.
도 8는 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 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), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성 요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성 요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드(embedded)된 채 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성 요소(예: 하드웨어 또는 소프트웨어 구성 요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성 요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(volatile memory)(132)에 로드(load)하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(non-volatile memory)(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치(CPU, central processing unit) 또는 어플리케이션 프로세서(AP, application processor)), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치(GPU, graphic processing unit), 이미지 시그널 프로세서(ISP, image signal processor), 센서 허브 프로세서(sensor hub processor), 또는 커뮤니케이션 프로세서(CP, communication processor))를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(inactive)(예: 슬립(sleep)) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(active)(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성 요소들 중 적어도 하나의 구성 요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))과 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성 요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(OS, operating system)(142), 미들 웨어(middleware)(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성 요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜) 등을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커(speaker) 또는 리시버(receiver)를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서(pressure sensor))를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서(gesture sensor), 자이로 센서(gyro sensor), 기압 센서(barometer sensor), 마그네틱 센서(magnetic sensor), 가속도 센서(acceleration sensor), 그립 센서(grip sensor), 근접 센서(proximity sensor), 컬러 센서(color sensor)(예: RGB(red, green, blue) 센서), IR(infrared) 센서, 생체 센서(biometric sensor), 온도 센서(temperature sensor), 습도 센서(humidity sensor), 또는 조도 센서(illuminance sensor) 등을 포함할 수 있다.
인터페이스(177)는 전자 장치(101)의 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜(protocol)들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD(secure digital) 카드 인터페이스, 또는 오디오 인터페이스 등을 포함할 수 있다.
연결 단자(connection terminal)(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터) 등을 포함할 수 있다.
햅틱 모듈(haptic module)(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터(motor), 압전 소자(piezoelectric element), 또는 전기 자극 장치(electrical stimulation device) 등을 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지(fuel cell)를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, Wi-Fi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN(wide area network))와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다.
무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI, international mobile subscriber identity))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC)가 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성 요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, 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)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들(102, 104)에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들(102, 104)은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅(cloud computing), 분산 컴퓨팅(distributed computing), 또는 클라이언트-서버 컴퓨팅(client-server computing) 기술이 이용될 수 있다.
도 2는, 다양한 실시예에 따른, 오디오 모듈의 블록도이다.
도 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)과 별도의 모듈로 구성될 수 있다.
다양한 실시 예들에 따른 전자 장치(101)는 다양한 형태의 장치가 될 수 있다. 전자 장치(101)는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치(wearable device), 인공 지능 장치 또는 가전 장치를 포함할 수 있다. 다양한 실시 예에 따른 전자 장치(101)는 전술한 기기들에 한정되지 않는다.
도 3은 다양한 실시예에 따른 전자 장치의 구성을 나타낸다.
도 3을 참조하면, 일 실시예에 따르면, 전자 장치(101)는 잔여 에코 제거 신경망 모델을 이용하여 음성 신호 또는 오디오 신호를 처리할 수 있다. 예를 들어, 전자 장치(101)는 스마트 폰, 모바일 전자 장치, 휴대용 전자 장치, 음성 인식 장치, AI(artificial intelligence) 장치 또는 신경망 모델 저장 장치를 포함할 수 있다.
일 실시예에 따른 전자 장치(101)는, 통신 회로(310), 마이크로폰(311), 스피커(313), 프로세서(315) 및 메모리(317)를 포함할 수 있다.
통신 회로(310)는 외부 장치와 통신할 수 있다. 일 예를 들어, 통신 회로(310)는 외부 장치로부터 잔여 에코 제거 신경망 모델(319)과 관련된 데이터를 수신할 수 있다. 다른 예를 들어, 통신 회로(310)는 메모리(317)에 저장된 잔여 에코 제거 신경망 모델(319)의 업데이트 정보를 수신할 수 있다. 전자 장치(101)는 외부 장치로부터 수신된 잔여 에코 제거 모델을 메모리(317)에 저장할 수 있다.
일 실시예에 따르면, 통신 회로(310)는 외부 장치와 통신하여 음성 신호를 송수신할 수 있다. 통신 회로(310)는 외부 장치로부터 전달된 음성 신호를 수신하고, 마이크로폰(311)을 통해 획득한 음성 신호를 프로세서(315)로 전달할 수 있다.
마이크로폰(311)은 외부로부터 획득한 소리에 대응하는 사운드 신호를 수신할 수 있다. 예를 들어, 마이크로폰(311)은 사용자가 발화하는 음성을 수신할 수 있다. 전자 장치(101)는 적어도 하나의 마이크로폰(311)를 포함할 수 있다. 전자 장치(101)가 복수개의 마이크로폰(311)을 포함하는 경우, 전자 장치(101)는 각각의 마이크로폰을 통해 다채널로 사운드 신호를 획득할 수 있다.
스피커(313)는 소리에 대응하는 사운드 신호를 출력할 수 있다. 전자 장치(101)는 적어도 하나의 스피커(313)를 포함할 수 있으며, 이에 한정하는 것은 아니다.
메모리(317)는 잔여 에코 제거 신경망 모델(319)을 저장할 수 있다. 일 예를들어, 잔여 에코 제거 신경망 모델(319)은 잔여 에코 제거를 위해 학습된 신경망 모델로 구현될 수 있으나, 이에 한정하지 않으며, 잡음 및 잔여 에코 제거를 위해 학습된 신경망 모델로 구현될 수도 있다.
프로세서(315)는 전자 장치(101)가 잔여 에코 제거 신경망 모델(319)을 학습하는 서버와 통신하여 잔여 에코 제거 신경망 모델(319)의 업데이트 정보를 수신할 수 있다. 프로세서(315)는 업데이트 정보를 기반으로 메모리(317)에 저장된 잔여 에코 제거 신경망 모델(319)를 갱신할 수 있다.
프로세서(315)는, 잔여 에코 제거 신경망 모델(319)을 기반으로 음성 입력에 대해 음성 대 에코 비(SER: signal to echo ratio)가 향상된 신호 또는/및 잡음 신호 대비 음성의 SNR(signal to noise ratio)이 향상된 신호를 출력할 수 있다.
일 실시예에 따르면, 프로세서(315)는 마이크로폰(311)으로부터 획득한 사운드 신호(또는 마이크 신호)로부터 잔여 에코 신호를 추정하고, 추정된 잔여 에코 신호를 보상한 신호를 잔여 에코 제거 신경망 모델의 입력값으로 전달할 수 있다. 다른 실시예에 따르면, 프로세서(315)는 마이크로폰(311)으로부터 획득한 사운드 신호(또는 마이크 신호)로부터 잡음 신호 및 잔여 에코 신호를 추정하고, 추정된 잡음 및 잔여 에코 신호를 보상한 신호를 잡음 및 잔여 에코 제거 신경망 모델의 입력값으로 전달할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 신호를 보상하기 위한 잔여 에코 보상 필터의 필터 계수를 주기적 또는 실시간으로 갱신할 수 있다. 예를 들어, 프로세서(315)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위한 필터 계수(또는 가중치)를 갱신할 수 있다.
일 실시예에 따르면, 프로세서(315)는 신경망 입력 신호와 신경망 출력 신호를 기반으로 두 신호에 대한 SER 차이 또는 SNR 차이 정보를 이용하여 잔여 에코 또는 잔여 잡음을 다시 한번 후처리로 제거하여 에코가 제거된 음성 신호를 출력할 수 있다. 이하, 프로세서(315)의 구체적인 동작을 블록도를 들어 설명하기로 한다.
도 4는 다양한 실시예에 따른 전자 장치의 블록도를 도시한다. 도 4에 도시된 블록 중 일부는 도 3에 도시된 전자 장치(101)의 메모리(317)에 저장될 수 있고, 또는 프로세서(315)의 제어 하에 동작할 수 있다.
도 4를 참조하면, 일 실시예에 따르면, 전자 장치(도 3의 전자 장치(101))는, 출력부(410), 입력부(420), 에코 제거기(430), 잔여 에코 보상기(440), 잔여 에코 제거 신경망 모델(450), 후처리기(460) 및 검출기(470)를 포함할 수 있다. 잔여 에코 제거 신경망 모델(450)은 도 1의 서버에 의해 잔여 에코 제거를 위해 학습되거나 갱신된 신경망 모델일 수 있다.
출력부(410)(예: 도 2의 오디오 출력 인터페이스(270))는 사운드 신호(예: 오디오 신호 또는 음성 신호)를 출력할 수 있다. 출력부(410)는 적어도 하나의 스피커(411) 및 DAC(415)를 포함할 수 있다. DAC(415)는 디지털 신호를 아날로그 신호로 변환할 수 있다. 출력부(410)는 DAC(415)를 통해 변환된 아날로그 신호, 또는 믹서(미도시)에 의해 합성된 아날로그 신호를 스피커(411)를 통해 외부로 출력할 수 있다. 이하, 출력부(410))를 통해 외부로 출력되는 사운드 신호는 스피커 신호(X)로 지칭하기로 하며, 스피커 신호(X)는 에코 추정 또는 잔여 에코 추정에 기준이 되는 신호일 수 있다.
입력부(420)는 외부로부터 획득한 소리에 대응하는 사운드 신호를 수신할 수 있다. 입력부(420)는 적어도 하나의 마이크로폰(421) 및 ADC(425)를 포함할 수 있다. ADC(425)는 아날로그 신호를 디지털 신호로 변환할 수 있다. 입력부(420)는 ADC(425)를 통해 입력 받은 디지털 신호를 에코 제거기(430) 또는 전자 장치(101)의 다른 구성 요소로 전달할 수 있다. 이하, 입력부(420)를 통해 수신된 사운드 또는 신호는 입력 신호 또는 마이크 신호(M)으로 지칭하기로 한다. 예를 들어, 입력 신호 또는 마이크 신호(M)는 외부로부터 화자가 발화한 음성(S)에 에코(Y)가 직접적 또는 간접적으로 입력될 수 있고, 주변 환경에 따라 주변 잡음(N)이 추가적으로 수신될 수 있다. 마이크 신호(M)는 음성 신호(S)에 추가적으로 에코 신호(Y) 및 잡음 신호(N) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 입력부(420)는 입력 신호(예: S+Y 또는 S+Y+N)를 STFT(short time fourier transform)하여 시간-주파수 영역의 신호들로 출력하고 이를 에코 제거기(430)로 전달할 수 있다.
일 실시예에 따르면, 에코 제거기(430)는 에코 추정부(431) 및 감산부(432)를 포함할 수 있다. 에코 추정부(431)는 스피커 신호(X)를 기반으로 에코 성분(또는 신호)을 추정할 수 있다. 에코 추정부(431)는 AEC(acoustic echo canceller)를 포함할 수 있으나, 이에 한정하는 것은 아니다. 에코 추정부(431)는 에코 제거를 위한 다양한 타입의 적응형 필터(또는 필터 알고리즘)로 구현될 수 있다. 예를 들어, AEC는 NLMS(normalized least mean-square) 필터를 기준 신호(예: 스피커 신호(X))에 적용함으로써 에코 경로를 식별하고 에코 추정치를 합성할 수 있다. 감산부(432)는 마이크 신호(M)에서 에코 추정부(431)로부터 추정된 에코 신호를 제거할 수 있다.
일 실시예에 따르면, 에코 제거기(430)는 마이크 신호(M)에서 추정된 에코 신호를 감산부(432)를 통해 제거한 신호를 생성하고, 이를 잔여 에코 제거 신경망 모델(450)로 입력되는 제1 채널 신호(E1)로서 출력할 수 있다. 제1 채널 신호(E1)는 음성 신호(S)와, 잔여 에코 신호(Z)를 포함하는 것으로 추정할 수 있다. 예를 들어, 에코 제거기(430)는 마이크 신호(M)에서 에코 성분을 완벽하게 제거하지 못할 수 있으며, 이로 인해 제1 채널 신호(E1)은 잔여 에코 신호(Z)를 포함할 수 있다. 잔여 에코 신호(Z)는 마이크로폰(421)으로부터 입력된 실제 에코 신호(Y)에서 추정된 에코 신호를 제거한 성분으로 추정될 수 있다.
잔여 에코 보상기(440)는 잔여 에코 추정부(441) 및 잔여 에코 보상 필터(445)를 포함할 수 있다. 잔여 에코 보상기(440)는 잔여 에코 추정부(441)를 통해 잔여 에코 신호를 추정하고, 잔여 에코 보상 필터(445)를 통해 추정된 잔여 에코 신호를 보상한 신호를 생성할 수 있다. 잔여 에코 보상기(440)는 잔여 에코 보상 필터(445)를 통해 추정된 잔여 에코 신호 또는 보상된 잔여 에코 신호를 잔여 에코 제거 신경망 모델(450)로 입력되는 제2 채널 신호(E2)로서 출력할 수 있다.
일 실시예에 따르면, 잔여 에코 추정부(441)는 출력 신호(X), 추정된 에코 및 잔여 에코 신호가 포함된 음성 신호(S+Z)를 기반으로 잔여 에코 신호를 추정할 수 있다. 잔여 에코 보상 필터(445)로 추정된 잔여 에코 신호를 보상하고 보상한 신호를 출력할 수 있다.
잔여 에코 추정부(441)는 잔여 에코 보상 필터(445)를 통해 잔여 에코 신호가 보상되도록 필터 계수를 갱신할 수 있다. 예를 들어, 잔여 에코 보상 필터(445)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위한 필터 계수(또는 가중치)로 갱신될 수 있다.
일 예를 들어, 음성 신호는 음성 구간(또는 유음 구간)과 비음성 구간(또는 무음 구간)을 포함하며, 비음성 구간에서의 특성은 에코만 존재하는 구간으로 추정할 수 있다. 잔여 에코 보상기(440)는, 잔여 에코 추정치 구간과 비음성 구간 즉, 에코만 존재하는 구간의 주파수 특성을 비교하여 신호의 크기 차이를 검출할 수 있으며, 에코 추장치가 에코만 존재하는 구간의 크기로 보상되도록 필터 계수를 변경할 수 있다.
또 다른 예를 들어, 제1 채널 신호(E1)는 음성 신호와 실제 에코 신호가 포함되어 있으므로 잔여 에코 제거 신경망 모델(450)의 출력 신호와 비교할 경우, 잔여 에코 제거 신경망 모델(450)의 잔여 에코 제거량을 추정할 수 있다. 잔여 에코 보상기(440)는, 잔여 에코 제거 신경망 모델(450)의 잔여 에코 제거량을 보상하기 위한 필터 계수를 변경할 수 있다.
잔여 에코 제거 신경망 모델(450)은 음성 신호와 에코 신호를 포함한 제1 채널 신호(E1)와 추정된 또는 보상된 잔여 에코 신호를 포함한 제2 채널 신호(E2)를 입력 받아 잔여 에코 제거 계수를 이용하여 음성 대 에코 비(SER)가 향상된 신호(K)(예: 신경망 출력 신호)를 출력할 수 있다. 다른 예를 들어, 잔여 에코 제거 신경망 모델(450)은 잡음 신호 대비 음성의 SNR이 향상된 신호를 출력할 수 있다.
잔여 에코 제거 신경망 모델(450)은, 제1 채널 신호(E1)가 음성 메인 채널로 입력되고, 제2 채널 신호(E2)가 잔여 에코 기준 채널로 활용되어 음성 대 에코 비(SER)가 향상되도록 학습된 잔여 에코 제거 신경망 모델일 수 있다.
일 실시예에 따르면, 잔여 에코 제거 신경망 모델(450)은 입력 계층과 출력 계층 사이에 복수개의 은닉 계층(hidden layer)들로 이루어진 인공신경망으로, 복잡한 비선형 관계들을 모델링한 모델일 수 있다. 잔여 에코 제거 신경망 모델(450)은 CNN(convolutional neural network), RNN(recurrent neural network), DNN(deep neural network) 중 적어도 하나에 기반한 신경망 모델을 포함할 수 있다. 예를 들어, 잔여 에코 제거 신경망 모델(450)은 입력 특징을 입력 벡터로 이용하여 회기(regression) 학습을 통하여 최적 이득(optimal gain)을 추정하고, 목표 특징 벡터를 신경망의 목적 함수로 하여 잔여 에코 제거 차이를 최소화하는 방향으로 학습된 학습 모델을 기반으로 구현된 모델일 수 있다. 잔여 에코 제거 신경망 모델(450)은 학습 모델의 학습 결과를 기반으로 업데이트될 수 있다.
잔여 에코 제거 신경망 모델(450)은, 음성 대 에코 비(SER)이 향상된 신호(K)(예: 신경망 출력 신호)를 후처리기(460)로 전달할 수 있다.
검출기(470)는 주파수 특성을 이용하여, 음성 구간(또는 유음 구간)과 비음성 구간(또는 무음 구간)을 검출할 수 있다. 검출기(470)는 음성 활동 검출기(VAD: voice activity detector) 를 포함할 수 있다. 일반적으로 음성 신호의 경우 일정 범위 내에서 피치 성분을 갖고, 기본주파수(fundamental frequency)의 정수 배에 해당하는 주파수를 갖는 하모닉 특징을 포함할 수 있는 반면에, 비음성 신호는 음성으로 인한 특징을 포함하지 않으므로 검출기(470)는 음성 구간과 비음성 구간을 검출할 수 있다. 검출기(470)는 음성 구간과 비음성 구간을 검출하고, 비음성 구간의 주파수 특성을 잔여 에코 보상기(440)로 전달할 수 있다.
후처리기(460)는 신경망 출력 신호(K)에 대한 잔여 에코 또는 잔여 잡음을 후처리로 제거할 수 있다. 후처리기(460)는 제2 채널 신호(E2)와 잔여 에코 제거 신경망 모델의 출력 신호를 비교하여 두 신호에 대한 SER 차이 또는 SNR 차이 정보를 이용하여 잔여 에코 또는 잔여 잡음을 다시 한번 후처리로 제거하여 에코 제거된 음성 신호(S)만을 출력할 수 있다. 후처리기(460)는 에코 제거된 음성 신호(S)를 ISTFT(inverse short time fourier transform)하여 시간 영역의 음원 신호로 복원하여 출력할 수 있다.
도 5는 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 5를 참조하면, 일 실시예에 따르면, 전자 장치(예: 도 3의 전자 장치(101))의 프로세서(예: 도 3의 프로세서(315))는, 510 동작에서, 스피커를 통해 신호를 출력할 수 있다. 스피커(예: 도 3의 스피커(313))를 통해 출력된 음향은 스피커 신호(X)로 이해될 수 있다. 일 예를 들어, 프로세서(315)는 외부 장치와 호 통신을 통해 수신된 다른 사용자의 음성 신호를 스피커로 출력할 수 있다.
520 동작에서, 프로세서(315)는 마이크로폰(예: 도 3의 마이크로폰(311))을 통해 음성 및 에코가 포함된 입력 신호(M=S+Y)(또는 마이크 신호)를 수신할 수 있다. 예를 들어, 에코 신호는 스피커 신호에 기반한 에코 성분일 수 있다.
530 동작에서, 프로세서(315)는 스피커 신호(X)를 기반으로 에코 신호(Y)를 추정할 수 있다. 프로세서(315)는, 스피커 신호(X)를 기준 신호(reference signal)로 설정하고, 선형 및/또는 비선형 필터링을 적용하여 에코 신호와 유사한 주파수 특성을 가지는 에코 신호를 추정할 수 있다.
540 동작에서, 프로세서(315)는 입력 신호(M=S+Y)에서 추정된 에코 신호 제거하여 잔여 에코 신호(Z)가 포함된 제1 채널 신호(E1= S+Z)를 생성할 수 있다.
550 동작에서, 프로세서(315)는 잔여 에코 신호를 추정할 수 있다. 프로세서(315)는 스피커 신호(X), 추정된 에코 신호 및 제1 채널 신호(E1=S+Z)를 기반으로 잔여 에코 신호(Z)를 추정할 수 있다.
560 동작에서, 프로세서(315)는 추정된 잔여 에코 신호를 보상하여 제2 채널 신호(E2)를 생성할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터에 필터 계수가 디폴트로 설정된 경우, 디폴트로 설정된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
다른 실시예에 따르면, 프로세서(315)는 필터 계수가 갱신된 경우, 갱신된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터를 주기적 또는 실시간으로 갱신할 수 있다.
일 실시예에 따르면, 프로세서(315)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위한 필터 계수(또는 가중치)를 갱신할 수 있다.
570 동작에서, 프로세서(315)는 제1 채널 신호(E1) 및 제2 채널 신호(E2)를 잔여 에코 제거 신경망 모델로 입력할 수 있다.
580 동작에서, 프로세서(315)는 잔여 에코 제거 신경망 모델에 기반하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호(K)를 획득할 수 있다.
590 동작에서, 프로세서(315)는 신경망 출력 신호(K)를 후처리하여 에코 제거된 음성 신호를 획득할 수 있다.
도 6은 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 6을 참조하면, 일 실시예에 따르면, 전자 장치(예: 도 3의 전자 장치(101))는 잔여 에코 제거 신경망 모델의 입력 특징값(예: 제2 채널 신호, 추정된 잔여 잡음 신호)을 전자 장치 측면에서 실시간으로 보상하여 잔여 에코 제거 성능을 향상시킬 수 있다.
610 동작에서, 전자 장치(101)의 프로세서(예: 도 3의 프로세서(315))는 마이크(예: 도 3의 마이크로폰(311))를 통해 수신된 마이크 신호(예: 음성 신호)에 기반하여 생성된 제1 채널 신호(E1) 및 제2 채널 신호(E2)를 이용하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호(K)를 출력할 수 있다. 일 예를 들어, 프로세서는 도 5의 510 내지 520 동작을 수행하여 마이크신호에 대한 신경망 출력 신호(K)를 출력할 수 있다. 프로세서(315)는, 마이크를 통해 입력된 마이크 신호(M)에 1차적으로 에코를 제거하여 제1 채널 신호(E1=S+Y)를 생성할 수 있다. 제1 채널 신호(E1)는 잔여 에코 신호를 포함할 수 있다. 프로세서(315)는 잔여 에코 신호를 추정하고 잔여 에코 보상 필터를 적용하여 제2 채널 신호(E2)를 생성할 수 있다.
620 동작에서, 프로세서(315)는 신경망 출력 신호(K)에 후처리하여 에코 신호가 제거된 음성 신호를 획득할 수 있다.
630 동작에서, 프로세서(315)는 음성 구간과 비음성 구간을 검출할 수 있다.
640 동작에서, 프로세서(315)는 비음성 구간을 기반으로 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교할 수 있다. 예를 들어, 비음성 구간은 음성 특성을 포함하지 않으므로 에코만 존재하는 구간으로 추정될 수 있다. 프로세서(315)는 비음성 구간을 통해 에코만 존재하는 구간의 주파수 성분과, 잔여 에코 추정치 구간의 주파수 성분을 비교할 수 있다. 일 예를 들어, 프로세서(315)는 비음성 구간에서의 제1 채널 신호(E1) 및 제2 채널 신호(E2)를 기반으로 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교할 수 있다.
645 동작에서 프로세서(315)는 잔여 에코 추정치 구간에서 에코 구간만 존재하는 구간과의 잔여 에코 크기 차이를 산출할 수 있다. 프로세서(315)는 잔여 에코 크기 차이를 보상하기 위한 잔여 에코 필터 계수를 결정하고, 이를 갱신할 수 있다.
병렬적으로, 선택적으로 또는 추가적으로, 650 동작에서, 프로세서(315)는 에코 및 음성이 포함된 제1 채널 신호(E1)와 신경망 출력 신호(K)를 비교할 수 있다. 일 예를 들어, 프로세서(315)는 비음성 구간에서의 제1 채널 신호(E1)와 신경망 출력 신호(K)를 비교할 수 있다.
655 동작에서, 프로세서(315)는 비교 결과, 에코가 제거 안된 부분을 산출할 수 있다. 프로세서(315)는 에코가 제거 안된 부분을 보상하기 위한 잔여 에코 필터 계수를 갱신할 수 있다. 예를 들어, 프로세서(315)는 신경망 출력 신호에서 음성 특성을 포함하지 않은 비음성 구간에서 에코 성분이 설정된 임계치 이상 존재하는지를 확인하고, 설정된 임계치 이상 존재하는 구간에 대해 에코가 제거 안된 부분으로 검출할 수 있다.
660 동작에서, 프로세서(315)는 645 동작 및/또는 655동작에서 갱신된 잔여 에코 필터 계수를 이용하여 잔여 에코 추정치를 보상할 수 있다.
도 7은 다양한 실시예에 따른 전자 장치의 블록도를 도시한다. 도 7에 도시된 블록 중 일부는 도 3에 도시된 전자 장치(101)의 메모리(317)에 저장될 수 있고, 또는 프로세서(315)의 제어 하에 동작할 수 있다. 도 7의 블록도는 설명의 편의를 위하여 블록으로 구분하였으며, 이에 한정하는 것은 아니다.
도 7을 참조하면, 다른 실시예에 따르면, 전자 장치(도 3의 전자 장치(101))는, 출력부(710), 입력부(720), 에코 제거기(730), 잔여 에코 보상기(740), 잡음 보상기(750), 간섭 신호 추정부(760), 잡음 및 잔여 에코 제거 신경망 모델(770), 후처리기(780) 및 검출기(790)를 포함할 수 있다. 잡음 및 잔여 에코 제거 신경망 모델(770)은 도 1의 서버에 의해 잡음 및 잔여 에코 제거를 위해 학습되거나 갱신된 신경망 모델일 수 있다.
출력부(710)(예: 도 2의 오디오 출력 인터페이스(270))는 사운드 신호(예: 오디오 신호 또는 음성 신호)를 출력할 수 있다. 출력부(710)는 적어도 하나의 스피커(711) 및 DAC(715)를 포함할 수 있다. 출력부(710)는 DAC(715)를 통해 변환된 아날로그 신호, 또는 믹서(미도시)에 의해 합성된 아날로그 신호를 스피커(711)를 통해 외부로 출력할 수 있다. 출력부(710))를 통해 외부로 출력되는 사운드 신호는 스피커 신호(X)로 지칭하기로 하며, 스피커 신호(X)는 에코 추정 또는 잔여 에코 추정에 기준이 되는 신호일 수 있다.
입력부(720)는 외부로부터 획득한 소리에 대응하는 사운드 신호를 수신할 수 있다. 입력부(720)는 적어도 하나의 마이크로폰(721) 및 ADC(725)를 포함할 수 있다. 입력부(720)는 ADC(725)를 통해 입력 받은 디지털 신호를 에코 제거기(730), 잡음 보상기(750) 또는 전자 장치(101)의 다른 구성 요소로 전달할 수 있다. 입력부(720)를 통해 수신된 사운드 신호는 마이크 신호(M)으로 지칭하기로 한다.
예를 들어, 마이크 신호(M)는 외부로부터 화자가 발화한 음성(S)에 에코(Y)가 직접적 또는 간접적으로 포함될 수 있고, 주변 환경에 따라 주변 잡음(N)이 수신될 수 있다. 마이크 신호(M)는 음성 신호(S)에 추가적으로 에코 신호(Y) 및 잡음 신호(N)를 포함할 수 있다.
일 실시예에 따르면, 입력부(720)는 마이크 신호(예: S+Y+N)를 STFT(short time fourier transform)하여 시간-주파수 영역의 신호들로 출력하고 이를 에코 제거기(730) 잡음 보상기(750)로 전달할 수 있다.
일 실시예에 따르면, 에코 제거기(730)는 에코 추정부(731) 및 감산부(732)를 포함할 수 있다. 에코 추정부(731)는 스피커 신호(X)를 기반으로 에코 성분(또는 신호)을 추정(Y) 할 수 있다. 에코 추정부(731)는 AEC(acoustic echo canceller)를 포함할 수 있으나, 이에 한정하는 것은 아니다. AEC는 NLMS(normalized least mean-square) 필터를 기준 신호(예: 스피커 신호(x))에 적용함으로써 에코 경로를 식별하고 에코 추정치를 합성할 수 있다. 감산부(432)는 마이크 신호(M)에서 에코 추정부(731)로부터 추정된 에코 신호를 제거할 수 있다.
에코 제거기(730)는 마이크 신호(M)에서 추정된 에코 신호를 제거한 신호를 생성하고, 이를 잡음 및 잔여 에코 제거 신경망 모델(770)로 입력되는 제1 채널 신호(E1)로서 출력할 수 있다. 제1 채널 신호(E1)는 에코 추정치만을 제거하였으므로, 음성 신호(S)와, 잔여 에코 신호(Z) 및 잡음 신호(N)를 포함하는 것으로 추정할 수 있다.
잔여 에코 보상기(740)는 잔여 에코 추정부(741) 및 잔여 에코 보상 필터(745)를 포함할 수 있다. 잔여 에코 보상기(740)는 잔여 에코 신호를 추정하고, 추정된 잔여 에코 신호(Z')를 보상하여 보상된 신호를 생성할 수 있다. 잔여 에코 보상기(740)는 잔여 에코 보상 필터(745)를 통해 보상된 신호를 간섭 신호 추정부(760))로 전달할 수 있다.
잔여 에코 추정부(741)는 출력 신호(X), 추정된 에코 및 잔여 에코 신호가 포함된 음성 신호(S+Z)를 기반으로 잔여 에코 신호를 추정할 수 있다.
일 실시예에 따르면, 잔여 에코 보상기(740)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위해 잔여 에코 보상 필터(745)의 필터 계수를 갱신할 수 있다. 잔여 에코 보상 필터(745)는 필터 계수에 의해 추정된 잔여 에코 신호를 보상한 신호를 출력할 수 있다.
잡음 보상기(750)는 잡음 추정부(751) 및 잡음 보상 필터(755)를 포함할 수 있다. 잡음 보상기(750)는 잡음 신호(N)를 추정(Й)하고, 잡음 보상 필터(755)를 통해 추정된 잡음 신호를 보상하여 보상된 잡음 신호를 생성할 수 있다. 잡음 보상기(750)는 잡음 보상 필터(755)를 통해 보상된 잔여 에코 신호를 간섭 신호 추정부(760))로 전달할 수 있다. 일 실시예에 따르면, 잡음 보상기(750)는 입력 신호에서 비음성 구간 및 에코가 없는 구간을 검출하고, 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 상기 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 상기 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 잡음 신호를 보상할 수 있다.
잡음 추정부(751)는 마이크 신호(M) 및 추정된 에코 신호를 기반으로 잡음 신호를 추정할 수 있다. 잡음 추정부(751)는 추정된 잡음 신호를 잡음 보상 필터(755)로 전달할 수 있다.
일 실시예에 따르면, 잡음 추정부(751)는 음성(예: 다채널)의 도착시간 차이를 기반으로 잡음 크기를 추정할 수 있다. 일 실시예에 따르면, 잡음 추정부(751)는 비음성 구간에서 에코 신호의 특성을 고려하여 에코가 없는 구간을 검출하고, 음성 및 에코가 없는 구간을 추정할 수 있다. 예를 들어, 잡음 신호는 전자 장치의 외부 환경에 의해 획득한 소리에 대응하는 신호로서, 마이크 신호에 기반한 에코 신호와 주파수 특성이 상이할 수 있다. 잡음 추정부(751)는 비음성 구간에서 에코 신호의 특성이 검출되지 않는 구간을 에코가 없는 구간으로 정의하고, 에코가 없는 구간에서 신호 특성은 잡음만 존재하는 구간만으로 추정할 수 있다.
잡음 보상 필터(755)는 잡음만 존재하는 구간에서 잡음 크기 차이를 보상하기 위한 필터 계수로 갱신될 수 있다. 예를 들어, 잡음 보상 필터(755)는 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 필터 계수를 결정하고, 결정된 필터 계수에 의해 추정된 잡음 신호를 보상한 신호를 출력할 수 있다.
간섭 신호 추정부(760)는 잔여 에코 보상기(740)로부터 획득한 잔여 에코 신호와 잡음 보상기(750)로부터 획득한 잡음 신호를 포함하는 간섭 신호를 생성하고, 이를 잡음 및 잔여 에코 제거 신경망 모델(770)의 제2 채널 신호(E2)로서 전달할 수 있다.
잡음 및 잔여 에코 제거 신경망 모델(770)은 음성 신호(S), 잔여 에코 신호 (Z) 및 잡음 신호(N)를 포함한 제1 채널 신호(E1)와 추정된 또는 보상된 잔여 에코 신호 및 잡음 신호를 포함한 제2 채널 신호(E2)를 입력 받아 잡음 및 잔여 에코 제거 계수를 이용하여 음성 대 에코 비(SER)가 향상된 신호(K) 및 잡음 신호 대비 음성의 SNR이 향상된 신호(예: 신경망 출력 신호)를 출력할 수 있다.
잡음 및 잔여 에코 제거 신경망 모델(770)은, 제1 채널 신호(E1)가 음성 메인 채널로 입력되고, 제2 채널 신호(E2)가 잔여 에코 및 잡음 기준 채널로 활용되어 음성 대 에코 비(SER)가 향상되고, 잡음 신호 대비 음성의 SNR이 향상되도록 학습된 잡음 및 잔여 에코 제거 신경망 모델일 수 있다.
잡음 및 잔여 에코 제거 신경망 모델(770)은, 음성 대 에코 비(SER)이 향상된 신호(K) 및 잡음 신호 대비 음성의 SNR이 향상된 신호(예: 신경망 출력 신호)를 후처리기(780)로 전달할 수 있다.
검출기(790)는 주파수 특성을 이용하여, 음성 구간(또는 유음 구간)과 비음성 구간(또는 무음 구간)을 검출할 수 있다. 검출기(790)는 음성 활동 검출기(VAD: voice activity detector) 를 포함할 수 있다. 검출기(790)는 음성 구간과 비음성 구간을 검출하고, 비음성 구간의 주파수 특성을 잔여 에코 보상기(440)로 전달할 수 있다.
후처리기(780)는 신경망 출력 신호(K)에 대한 잔여 에코 또는 잔여 잡음을 후처리로 제거할 수 있다. 후처리기(780)는 제2 채널 신호(E2)와 출력 신호를 비교하여 두 신호에 대한 SER 차이 또는 SNR 차이 정보를 이용하여 잔여 에코 및 잔여 잡음을 다시 한번 후처리로 제거하여 에코 및 잡음이 제거된 음성 신호를 출력할 수 있다. 후처리기(780)는 에코 제거된 음성 신호(S)를 ISTFT(inverse short time fourier transform)하여 시간 영역의 음원 신호로 복원하여 출력할 수 있다.
도 8은 다양한 실시예에 따른 전자 장치의 잔여 에코 제거 방법을 도시한다.
도 8을 참조하면, 일 실시예에 따르면, 전자 장치(예: 도 3의 전자 장치(101))의 프로세서(예: 도 3의 프로세서(315))는, 810 동작에서, 스피커를 통해 신호를 출력할 수 있다. 스피커(예: 도 3의 스피커(313))를 통해 출력된 음향은 스피커 신호(X)로 이해될 수 있다. 일 예를 들어, 프로세서(315)는 외부 장치와 호 통신을 통해 수신된 다른 사용자의 음성 신호를 스피커로 출력할 수 있다.
820 동작에서, 프로세서(315)는 마이크(예: 도 3의 마이크로폰(311))를 통해 음성, 잡음 및 에코가 포함된 입력 신호(M=S+N+Y)(또는 마이크 신호)를 수신할 수 있다.
830 동작에서, 프로세서(315)는 스피커 신호(X)를 기반으로 에코 신호(Y)를 추정할 수 있다. 프로세서(315)는, 스피커 신호(X)를 기준 신호(reference signal)로 설정하고, 선형 및/또는 비선형 필터링을 적용하여 에코 신호와 유사한 주파수 특성을 가지는 에코 신호로 추정할 수 있다.
840 동작에서, 프로세서(315)는 입력 신호(M=S+Y)에서 추정된 에코 신호를 제거하여 잡음(N) 및 잔여 에코 신호(Z)가 포함된 제1 채널 신호(E1= S+N+Z)를 생성할 수 있다.
850 동작에서, 프로세서(315)는 잔여 에코 신호를 추정할 수 있다. 프로세서(315)는 스피커 신호(X), 추정된 에코 신호 및 제1 채널 신호(E1=S+Z)를 기반으로 잔여 에코 신호(Z)를 추정할 수 있다.
855 동작에서, 프로세서(315)는 추정된 잔여 에코 신호를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터에 필터 계수가 디폴트로 설정된 경우, 디폴트로 설정된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
다른 실시예에 따르면, 프로세서(315)는 필터 계수가 갱신된 경우, 갱신된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터를 주기적 또는 실시간으로 갱신할 수 있다.
프로세서(315)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위한 필터 계수(또는 가중치)를 갱신할 수 있다.
병렬적으로 또는 순차적으로 860 동작에서, 프로세서(315)는 마이크 신호를 기반으로 잡음 신호(N)를 추정할 수 있다. 일 예를 들어, 프로세서(315)는 비음성 구간을 확인하고, 에코 신호의 특성을 고려하여 비음성 구간에서 잡음 크기의 평균값을 추정할 수 있다. 프로세서(315)는 잡음이 존재하는 구간에서 평균값으로 잡음 크기를 보상하기 위한 필터 계수로 잡음 보상 필터 계수를 갱신할 수 있다.
865 동작에서,프로세서(315)는 추정된 잡음 신호를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잡음 보상 필터에 필터 계수가 디폴트로 설정된 경우, 디폴트로 설정된 필터 계수를 기반으로 잡음 신호의 크기를 보상할 수 있다. 다른 실시예에 따르면, 프로세서(315)는 잡음 보상 필터 계수가 갱신된 경우, 갱신된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다. 일 실시예에 따르면, 프로세서(315)는 잡음 보상 필터를 주기적 또는 실시간으로 갱신할 수 있다.
870 동작에서, 프로세서(315)는 보상된 잔여 에코 신호 및 잡음 신호를 포함하는 간섭 신호를 추정하여 제2 채널 신호(E2)를 생성할 수 있다.
880 동작에서, 프로세서(315)는 제1 채널 신호(E1) 및 제2 채널 신호(E2)를 잡음 및 잔여 에코 제거 신경망 모델로 입력할 수 있다.
890 동작에서, 프로세서(315)는 잡음 및 잔여 에코 제거 신경망 모델에 기반하여 음성 대 에코 비(SER)가 향상되고 잡음 신호 대비 음성의 SNR이 향상된 신호(예: 신경망 출력 신호)를 획득할 수 있다.
895 동작에서, 프로세서(315)는 신경망 출력 신호(K)를 후처리하여 에코 제거된 음성 신호만을 획득할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어(firmware)로 구현된 유닛(unit)을 포함할 수 있으며, 예를 들면, 로직(logic), 논리 블록(logic block), 부품(component), 또는 회로(circuit) 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(101))에 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들(instructions)을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러(compiler) 생성된 코드 또는 인터프리터(interpreter)에 의해 실행될 수 있는 코드(code)를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM, compact disc read only memory)의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 상기 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱(heuristic)하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    통신 회로;
    적어도 하나의 마이크로폰 및 적어도 하나의 스피커를 포함하는 입출력 장치;
    상기 통신 회로 및 상기 입출력 장치와 작동적으로 연된 프로세서; 및
    상기 프로세서와 작동적으로 연결되고, 잔여 에코 제거 신경망 모델을 저장하는 메모리를 포함하고, 상기 메모리는 실행 시에, 상기 프로세서가,
    상기 적어도 하나의 마이크로폰을 통해 음성 및 에코가 포함된 입력 신호를 수신하고,
    상기 입력 신호로부터 제1 에코 신호를 추정하고 상기 입력 신호에서 상기 추정된 제1 에코 신호를 제거하여 제2 에코 신호가 포함된 제1 채널 신호를 생성하고,
    상기 제2 에코 신호를 추정하고, 상기 추정된 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하고,
    상기 제1 채널 신호와 제2 채널 신호를 상기 잔여 에코 제거 신경망 모델의 입력값으로 이용하여 음성 대 에코 비(SER: signal to echo ratio) 가 향상된 신경망 출력 신호를 획득하고,
    상기 신경망 출력 신호를 후처리하여 에코가 제거된 음성 신호를 획득하도록 하는 인스트럭션들을 저장하는 전자 장치.
  2. 제1항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 적어도 하나의 스피커를 통해 스피커 신호를 출력하고,
    상기 스피커 신호, 상기 입력 신호 및 상기 제1 에코 신호를 기반으로 상기 제2 에코 신호를 추정하고
    상기 신경망 출력 신호와 상기 제1 채널 신호에서 비음성 구간을 검출하고, 상기 비음성 구간에서의 비교에 의한 신호 크기의 차이에 기반하여 상기 제2 에코 신호를 보상하도록 하는 인스트럭션들을 더 포함하며,
    상기 스피커 신호는 외부 장치로부터 수신되는 호 음성 신호인 것을 특징하는 전자 장치.
  3. 제2항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 입력 신호에서 비음성 구간을 검출하고, 상기 비음성 구간에서의 입력 신호와 상기 제2 에코 신호의 추정치 구간에서의 신호 크기의 차이만큼 상기 제2 에코 신호를 보상하고,
    상기 입력 신호를 기반으로 잡음 신호를 추정하고, 상기 추정된 잡음 신호를 보상하고, 상기 보상된 잡음 신호 및 상기 보상된 제2 에코 신호를 포함하는 간섭 신호를 생성하고, 상기 생성된 간섭 신호를 상기 잔여 에코 제거 신경망 모델의 상기 제2 채널 신호의 입력값으로 이용하도록 하는 인스트럭션들을 더 포함하는 전자 장치.
  4. 제3항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 입력 신호의 비음성 구간에서 에코 신호의 특성을 고려하여 에코가 없는 구간을 검출하고, 상기 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 상기 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 상기 상기 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 상기 잡음 신호를 보상하도록 하는 인스트럭션들을 더 포함하는 전자 장치.
  5. 제3항에 있어서,
    상기 잔여 에코 제거 신경망 모델은, 음성 대 에코 비(SER)가 향상된 신호(K) 및 잡음 신호 대비 음성의 SNR이 향상된 신호를 출력하도록 학습된 신경망 모델인 것을 특징으로 하는 전자 장치.
  6. 제1항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 제2 에코 신호를 보상하기 위한 잡음 제거 보상 필터의 보상 계수를 결정하고, 상기 결정된 보상 계수를 실시간 또는 주기적으로 갱신하도록 하는 인스트럭션들을 더 포함하는 전자 장치.
  7. 제1항에 있어서,
    상기 잔여 에코 제거 신경망 모델은,
    상기 제1 채널 신호가 음성 메인 채널로 입력되고, 상기 제2 채널 신호가 잔여 에코 기준 채널로 입력되어 음성 대 에코 비가 향상되도록 학습된 신경망 모델인 것을 특징으로 하는 전자 장치.
  8. 제1항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 입력 신호에서 음성 구간과 비음성 구간을 검출하고, 상기 비음성 구간의 주파수 특성을 기반으로 상기 제2 에코 신호의 보상 크기를 결정하도록 하는 인스트럭션들을 더 포함하는 전자 장치.
  9. 제1항에 있어서,
    상기 메모리는 실행 시에, 상기 프로세서가,
    상기 스피커 신호를 기준 신호로 적용하여 상기 스피커 신호에 대한 상기 제1 에코 신호를 추정하도록 하는 인스트럭션들을 더 포함하는 전자 장치.
  10. 전자 장치의 잔여 에코 제거 방법에 있어서,
    적어도 하나의 마이크로폰으로부터 음성 및 에코가 포함된 입력 신호를 수신하는 동작;
    상기 입력 신호로부터 제1 에코 신호를 추정하는 동작;
    상기 입력 신호에서 상기 추정된 제1 에코 신호를 제거하여 제2 에코 신호가 포함된 제1 채널 신호를 생성하는 동작;
    상기 제2 에코 신호를 추정하고, 상기 추정된 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하는 동작;
    상기 제1 채널 신호와 상기 제2 채널 신호를 잔여 에코 제거 신경망 모델의 입력값으로 이용하여 음성 대 에코 비(SER)가 향상된 신경망 출력 신호를 획득하는 동작; 및
    상기 신경망 출력 신호를 후처리하여 에코 제거된 음성 신호를 획득하는 동작을 포함하는 방법.
  11. 제10항에 있어서,
    외부 장치로부터 수신된 호 음성 신호를 적어도 하나의 스피커를 통해 출력하는 동작을 더 포함하고,
    상기 제2 에코 신호를 추정하는 동작은, 상기 호 음성 신호, 상기 입력 신호 및 상기 제1 에코 신호를 기반으로 상기 제2 에코 신호를 추정하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하는 동작은,
    상기 신경망 출력 신호와 상기 제1 채널 신호에서 비음성 구간을 검출하고, 상기 비음성 구간에서의 비교에 의한 신호 크기의 차이만큼 상기 제2 에코 신호를 보상하는 동작;
    상기 입력 신호에서 비음성 구간을 검출하고, 상기 비음성 구간에서의 입력 신호와 상기 제2 에코 신호의 추정치 구간에서의 신호 크기의 차이만큼 상기 제2 에코 신호를 보상하는 동작; 중 적어도 하나를 포함하는 방법.
  13. 제11항에 있어서,
    상기 제2 에코 신호의 크기를 보상하여 제2 채널 신호를 생성하는 동작은,
    상기 제2 에코 신호를 보상하기 위한 잡음 제거 보상 필터의 보상 계수를 결정하는 동작; 및
    상기 결정된 보상 계수로 실시간 또는 주기적으로 갱신하는 동작을 더 포함하는 방법.
  14. 제10항에 있어서,
    상기 입력 신호를 기반으로 잡음 신호를 추정하는 동작 및 상기 추정된 잡음 신호를 보상하는 동작을 더 포함하고,
    상기 제2 채널 신호를 생성하는 동작은,
    상기 보상된 잡음 신호와 상기 보상된 제2 에코 신호를 포함하는 간섭 신호를 상기 제2 채널 신호로 이용하는 것을 특징으로 하는 방법.
  15. 제10항에 있어서,
    상기 상기 잡음 신호를 보상하는 동작은,
    상기 입력 신호에서 비음성 구간 및 에코가 없는 구간을 검출하고, 상기 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 상기 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 상기 상기 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 상기 잡음 신호를 보상하는 것을 특징으로 하는 방법.
PCT/KR2020/019087 2019-12-27 2020-12-24 전자 장치 및 신경망 기반의 잔여 에코 제거 방법 WO2021133097A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190176597A KR20210083872A (ko) 2019-12-27 2019-12-27 전자 장치 및 신경망 기반의 잔여 에코 제거 방법
KR10-2019-0176597 2019-12-27

Publications (1)

Publication Number Publication Date
WO2021133097A1 true WO2021133097A1 (ko) 2021-07-01

Family

ID=76573215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/019087 WO2021133097A1 (ko) 2019-12-27 2020-12-24 전자 장치 및 신경망 기반의 잔여 에코 제거 방법

Country Status (2)

Country Link
KR (1) KR20210083872A (ko)
WO (1) WO2021133097A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080112574A1 (en) * 2001-08-08 2008-05-15 Ami Semiconductor, Inc. Directional audio signal processing using an oversampled filterbank
JP2009267799A (ja) * 2008-04-25 2009-11-12 Nippon Telegr & Teleph Corp <Ntt> ハンズフリー通話装置及びハンズフリー通話方法
KR101349477B1 (ko) * 2011-10-27 2014-01-08 엘지이노텍 주식회사 블루투스 장치 및 그를 이용한 통화품질 개선 방법
KR20180115984A (ko) * 2017-04-14 2018-10-24 한양대학교 산학협력단 심화신경망 기반의 잡음 및 에코의 통합 제거 방법 및 장치
JP2019004466A (ja) * 2017-06-12 2019-01-10 ヤマハ・ユニファイド・コミュニケーションズ 収音装置、放収音装置、信号処理方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080112574A1 (en) * 2001-08-08 2008-05-15 Ami Semiconductor, Inc. Directional audio signal processing using an oversampled filterbank
JP2009267799A (ja) * 2008-04-25 2009-11-12 Nippon Telegr & Teleph Corp <Ntt> ハンズフリー通話装置及びハンズフリー通話方法
KR101349477B1 (ko) * 2011-10-27 2014-01-08 엘지이노텍 주식회사 블루투스 장치 및 그를 이용한 통화품질 개선 방법
KR20180115984A (ko) * 2017-04-14 2018-10-24 한양대학교 산학협력단 심화신경망 기반의 잡음 및 에코의 통합 제거 방법 및 장치
JP2019004466A (ja) * 2017-06-12 2019-01-10 ヤマハ・ユニファイド・コミュニケーションズ 収音装置、放収音装置、信号処理方法、及びプログラム

Also Published As

Publication number Publication date
KR20210083872A (ko) 2021-07-07

Similar Documents

Publication Publication Date Title
WO2020166944A1 (en) Sound outputting device including plurality of microphones and method for processing sound signal using plurality of microphones
WO2020204611A1 (en) Method for detecting wearing of acoustic device and acoustic device supporting the same
WO2019045474A1 (ko) 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치
WO2019156338A1 (ko) 노이즈가 정제된 음성 신호를 획득하는 방법 및 이를 수행하는 전자 장치
WO2019156339A1 (ko) 오디오 신호의 주파수의 변화에 따른 위상 변화율에 기반하여 노이즈가 감쇠된 오디오 신호를 생성하는 장치 및 방법
WO2019066293A1 (ko) 외부 마이크로폰의 그라운드 단자와 전기적으로 연결될 수 있는 커넥터에 포함된 지정된 핀이 회로 기판의 지정된 그라운드와 전기적으로 연결된 회로 구조를 갖는 전자 장치
WO2020122502A1 (en) Electronic device for supporting audio enhancement and method for the same
WO2019083125A1 (en) AUDIO SIGNAL PROCESSING METHOD AND ELECTRONIC DEVICE FOR SUPPORTING IT
WO2021025515A1 (en) Method for processing multi-channel audio signal on basis of neural network and electronic device
WO2019231296A1 (en) An electronic device and method for preventing corrosion of an audio jack
WO2019083192A1 (ko) 네트워크 연결 정보에 기반하여 잡음 제어 파라미터를 결정하는 전자 장치 및 그의 동작 방법
WO2021132852A1 (ko) 오디오 데이터의 출력 방법 및 이를 지원하는 전자 장치
WO2021020686A1 (ko) 헤드셋 전자 장치 및 그와 연결되는 전자 장치
WO2020162694A1 (en) Electronic device and method for detecting blocked state of microphone
WO2021133097A1 (ko) 전자 장치 및 신경망 기반의 잔여 에코 제거 방법
WO2021162403A1 (en) Method for improving sound quality and electronic device using same
WO2020032363A1 (ko) 외부 전자 장치와의 거리에 기반하여 스피커의 출력 세기를 조정하기 위한 방법 및 전자 장치
WO2021172893A1 (ko) 에코 캔슬링을 위한 방법 및 그 장치
WO2021162337A1 (ko) 음질 개선 방법 및 이어 웨어러블 장치
WO2022146033A1 (ko) 전자 장치 및 전자 장치의 음성 입출력 제어 방법
WO2022030880A1 (ko) 음성 신호를 처리하는 방법 및 이를 이용한 장치
WO2024080590A1 (ko) 신호의 오류를 검출하기 위한 전자 장치 및 방법
WO2021177659A1 (ko) 음질 개선 방법 및 그 장치
WO2022203456A1 (ko) 음성 신호 처리를 위한 전자 장치 및 방법
WO2022164023A1 (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: 20905491

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20905491

Country of ref document: EP

Kind code of ref document: A1