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

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

Info

Publication number
KR20210083872A
KR20210083872A KR1020190176597A KR20190176597A KR20210083872A KR 20210083872 A KR20210083872 A KR 20210083872A KR 1020190176597 A KR1020190176597 A KR 1020190176597A KR 20190176597 A KR20190176597 A KR 20190176597A KR 20210083872 A KR20210083872 A KR 20210083872A
Authority
KR
South Korea
Prior art keywords
signal
echo
neural network
input
processor
Prior art date
Application number
KR1020190176597A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020190176597A priority Critical patent/KR20210083872A/ko
Priority to PCT/KR2020/019087 priority patent/WO2021133097A1/ko
Publication of KR20210083872A publication Critical patent/KR20210083872A/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

Abstract

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

Description

전자 장치 및 신경망 기반의 잔여 에코 제거 방법 {An electronic device and method for removing residual echo signal based on Neural Network in the same}
본 발명은 전자 장치 및 음성 신호에 포함된 잔여 에코 제거 방법에 관한 것으로 보다 구체적으로, 신경망 기반의 잔여 제거 방법 및 장치에 관한 것이다.
음성 인식, 음성 통신 분야에서 음성 신호는 잡음(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)로부터 추정된 에코 신호(
Figure pat00001
)를 제거할 수 있다.
일 실시예에 따르면, 에코 제거기(430)는 마이크 신호(M)에서 추정된 에코 신호(
Figure pat00002
)를 감산부(432)를 통해 제거한 신호를 생성하고, 이를 잔여 에코 제거 신경망 모델(450)로 입력되는 제1 채널 신호(E1)로서 출력할 수 있다. 제1 채널 신호(E1)는 음성 신호(S)와, 잔여 에코 신호(Z= Y-)를 포함하는 것으로 추정할 수 있다. 예를 들어, 에코 제거기(430)는 마이크 신호(M)에서 에코 성분을 완벽하게 제거하지 못할 수 있으며, 이로 인해 제1 채널 신호(E1)은 잔여 에코 신호(Z)를 포함할 수 있다. 잔여 에코 신호(Z)는 마이크로폰(421)으로부터 입력된 실제 에코 신호(Y)에서 추정된 에코 신호(
Figure pat00003
)를 제거한 성분으로 추정될 수 있다.
잔여 에코 보상기(440)는 잔여 에코 추정부(441) 및 잔여 에코 보상 필터(445)를 포함할 수 있다. 잔여 에코 보상기(440)는 잔여 에코 추정부(441)를 통해 잔여 에코 신호를 추정하고, 잔여 에코 보상 필터(445)를 통해 추정된 잔여 에코 신호를 보상한 신호를 생성할 수 있다. 잔여 에코 보상기(440)는 잔여 에코 보상 필터(445)를 통해 추정된 잔여 에코 신호 또는 보상된 잔여 에코 신호를 잔여 에코 제거 신경망 모델(450)로 입력되는 제2 채널 신호(E2)로서 출력할 수 있다.
일 실시예에 따르면, 잔여 에코 추정부(441)는 출력 신호(X), 추정된 에코 (
Figure pat00004
) 및 잔여 에코 신호가 포함된 음성 신호(S+Z)를 기반으로 잔여 에코 신호를 추정(
Figure pat00005
)할 수 있다. 잔여 에코 보상 필터(445)로 추정된 잔여 에코 신호(
Figure pat00006
)를 보상하고 보상한 신호를 출력할 수 있다.
잔여 에코 추정부(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)를 추정(
Figure pat00007
)할 수 있다. 프로세서(315)는, 스피커 신호(X)를 기준 신호(reference signal)로 설정하고, 선형 및/또는 비선형 필터링을 적용하여 에코 신호와 유사한 주파수 특성을 가지는 에코 신호를 추정할 수 있다.
540 동작에서, 프로세서(315)는 입력 신호(M=S+Y)에서 추정된 에코 신호(
Figure pat00008
)를 제거하여 잔여 에코 신호(Z)가 포함된 제1 채널 신호(E1= S+Z)를 생성할 수 있다.
550 동작에서, 프로세서(315)는 잔여 에코 신호를 추정(
Figure pat00009
)할 수 있다. 프로세서(315)는 스피커 신호(X), 추정된 에코 신호(
Figure pat00010
) 및 제1 채널 신호(E1=S+Z)를 기반으로 잔여 에코 신호(Z)를 추정(
Figure pat00011
)할 수 있다.
560 동작에서, 프로세서(315)는 추정된 잔여 에코 신호(
Figure pat00012
)를 보상하여 제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)로부터 추정된 에코 신호(
Figure pat00013
)를 제거할 수 있다.
에코 제거기(730)는 마이크 신호(M)에서 추정된 에코 신호(
Figure pat00014
)를 제거한 신호를 생성하고, 이를 잡음 및 잔여 에코 제거 신경망 모델(770)로 입력되는 제1 채널 신호(E1)로서 출력할 수 있다. 제1 채널 신호(E1)는 에코 추정치만을 제거하였으므로, 음성 신호(S)와, 잔여 에코 신호(Z= Y-
Figure pat00015
) 및 잡음 신호(N)를 포함하는 것으로 추정할 수 있다.
잔여 에코 보상기(740)는 잔여 에코 추정부(741) 및 잔여 에코 보상 필터(745)를 포함할 수 있다. 잔여 에코 보상기(740)는 잔여 에코 신호를 추정하고, 추정된 잔여 에코 신호(
Figure pat00016
)를 보상하여 보상된 신호를 생성할 수 있다. 잔여 에코 보상기(740)는 잔여 에코 보상 필터(745)를 통해 보상된 신호를 간섭 신호 추정부(760))로 전달할 수 있다.
잔여 에코 추정부(741)는 출력 신호(X), 추정된 에코 (
Figure pat00017
) 및 잔여 에코 신호가 포함된 음성 신호(S+Z)를 기반으로 잔여 에코 신호를 추정(
Figure pat00018
)할 수 있다.
일 실시예에 따르면, 잔여 에코 보상기(740)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위해 잔여 에코 보상 필터(745)의 필터 계수를 갱신할 수 있다. 잔여 에코 보상 필터(745)는 필터 계수에 의해 추정된 잔여 에코 신호를 보상한 신호를 출력할 수 있다.
잡음 보상기(750)는 잡음 추정부(751) 및 잡음 보상 필터(755)를 포함할 수 있다. 잡음 보상기(750)는 잡음 신호(N)를 추정(
Figure pat00019
)하고, 잡음 보상 필터(755)를 통해 추정된 잡음 신호를 보상하여 보상된 잡음 신호를 생성할 수 있다. 잡음 보상기(750)는 잡음 보상 필터(755)를 통해 보상된 잔여 에코 신호를 간섭 신호 추정부(760))로 전달할 수 있다. 일 실시예에 따르면, 잡음 보상기(750)는 입력 신호에서 비음성 구간 및 에코가 없는 구간을 검출하고, 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 상기 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 상기 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 잡음 신호를 보상할 수 있다.
잡음 추정부(751)는 마이크 신호(M) 및 추정된 에코 신호(
Figure pat00020
)를 기반으로 잡음 신호를 추정(
Figure pat00021
)할 수 있다. 잡음 추정부(751)는 추정된 잡음 신호(
Figure pat00022
)를 잡음 보상 필터(755)로 전달할 수 있다.
일 실시예에 따르면, 잡음 추정부(751)는 음성(예: 다채널)의 도착시간 차이를 기반으로 잡음 크기를 추정할 수 있다. 일 실시예에 따르면, 잡음 추정부(751)는 비음성 구간에서 에코 신호의 특성을 고려하여 에코가 없는 구간을 검출하고, 음성 및 에코가 없는 구간을 추정할 수 있다. 예를 들어, 잡음 신호는 전자 장치의 외부 환경에 의해 획득한 소리에 대응하는 신호로서, 마이크 신호에 기반한 에코 신호와 주파수 특성이 상이할 수 있다. 잡음 추정부(751)는 비음성 구간에서 에코 신호의 특성이 검출되지 않는 구간을 에코가 없는 구간으로 정의하고, 에코가 없는 구간에서 신호 특성은 잡음만 존재하는 구간만으로 추정할 수 있다.
잡음 보상 필터(755)는 잡음만 존재하는 구간에서 잡음 크기 차이를 보상하기 위한 필터 계수로 갱신될 수 있다. 예를 들어, 잡음 보상 필터(755)는 비음성 구간 및 에코가 없는 구간에서의 입력 신호와, 비음성 구간 및 에코가 없는 구간에 대응하는 스피커 신호의 크기 차이를 계산하고, 비음성 구간 및 에코가 없는 구간의 주파수 특성을 기반으로 필터 계수를 결정하고, 결정된 필터 계수에 의해 추정된 잡음 신호를 보상한 신호를 출력할 수 있다.
간섭 신호 추정부(760)는 잔여 에코 보상기(740)로부터 획득한 잔여 에코 신호(
Figure pat00023
)와 잡음 보상기(750)로부터 획득한 잡음 신호(
Figure pat00024
)를 포함하는 간섭 신호를 생성하고, 이를 잡음 및 잔여 에코 제거 신경망 모델(770)의 제2 채널 신호(E2=
Figure pat00025
+
Figure pat00026
)로서 전달할 수 있다.
잡음 및 잔여 에코 제거 신경망 모델(770)은 음성 신호(S), 잔여 에코 신호 (Z) 및 잡음 신호(N)를 포함한 제1 채널 신호(E1)와 추정된 또는 보상된 잔여 에코 신호(
Figure pat00027
) 및 잡음 신호(
Figure pat00028
)를 포함한 제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)를 추정(
Figure pat00029
)할 수 있다. 프로세서(315)는, 스피커 신호(X)를 기준 신호(reference signal)로 설정하고, 선형 및/또는 비선형 필터링을 적용하여 에코 신호와 유사한 주파수 특성을 가지는 에코 신호로 추정할 수 있다.
840 동작에서, 프로세서(315)는 입력 신호(M=S+Y)에서 추정된 에코 신호(
Figure pat00030
)를 제거하여 잡음(N) 및 잔여 에코 신호(Z)가 포함된 제1 채널 신호(E1= S+N+Z)를 생성할 수 있다.
850 동작에서, 프로세서(315)는 잔여 에코 신호를 추정(
Figure pat00031
)할 수 있다. 프로세서(315)는 스피커 신호(X), 추정된 에코 신호(
Figure pat00032
) 및 제1 채널 신호(E1=S+Z)를 기반으로 잔여 에코 신호(Z)를 추정(
Figure pat00033
)할 수 있다.
855 동작에서, 프로세서(315)는 추정된 잔여 에코 신호(
Figure pat00034
)를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터에 필터 계수가 디폴트로 설정된 경우, 디폴트로 설정된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
다른 실시예에 따르면, 프로세서(315)는 필터 계수가 갱신된 경우, 갱신된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잔여 에코 보상 필터를 주기적 또는 실시간으로 갱신할 수 있다.
프로세서(315)는 에코만 존재하는 구간과 잔여 에코 추정치 구간을 비교하여 잔여 에코 크기 차이를 보상하거나, 신경망 입력 신호(예: 제1 채널 신호(E1))와 신경망 출력 신호를 비교하여 에코가 제거 안된 부분을 보상하기 위한 필터 계수(또는 가중치)를 갱신할 수 있다.
병렬적으로 또는 순차적으로 860 동작에서, 프로세서(315)는 마이크 신호를 기반으로 잡음 신호(N)를 추정(
Figure pat00035
)할 수 있다. 일 예를 들어, 프로세서(315)는 비음성 구간을 확인하고, 에코 신호의 특성을 고려하여 비음성 구간에서 잡음 크기의 평균값을 추정할 수 있다. 프로세서(315)는 잡음이 존재하는 구간에서 평균값으로 잡음 크기를 보상하기 위한 필터 계수로 잡음 보상 필터 계수를 갱신할 수 있다.
865 동작에서, 추정된 잡음 신호를 보상할 수 있다.
일 실시예에 따르면, 프로세서(315)는 잡음 보상 필터에 필터 계수가 디폴트로 설정된 경우, 디폴트로 설정된 필터 계수를 기반으로 잡음 신호의 크기를 보상할 수 있다. 다른 실시예에 따르면, 프로세서(315)는 잡음 보상 필터 계수가 갱신된 경우, 갱신된 필터 계수를 기반으로 잔여 에코 신호의 크기를 보상할 수 있다. 일 실시예에 따르면, 프로세서(315)는 잡음 보상 필터를 주기적 또는 실시간으로 갱신할 수 있다.
870 동작에서, 프로세서(315)는 보상된 잔여 에코 신호(
Figure pat00036
) 및 잡음 신호(
Figure pat00037
)를 포함하는 간섭 신호를 추정하여 제2 채널 신호(E2=
Figure pat00038
+
Figure pat00039
)를 생성할 수 있다.
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)하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
101: 전자 장치
310: 통신 회로
311: 마이크로폰
313: 스피커
315: 프로세서
319: 잔여 에코 제거 신경망 모델

Claims (18)

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

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
KR20210083872A true KR20210083872A (ko) 2021-07-07

Family

ID=76573215

Family Applications (1)

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

Country Status (2)

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2354858A1 (en) * 2001-08-08 2003-02-08 Dspfactory Ltd. Subband directional audio signal processing using an oversampled filterbank
JP4838282B2 (ja) * 2008-04-25 2011-12-14 日本電信電話株式会社 ハンズフリー通話装置及びハンズフリー通話方法
KR101349477B1 (ko) * 2011-10-27 2014-01-08 엘지이노텍 주식회사 블루투스 장치 및 그를 이용한 통화품질 개선 방법
KR101934636B1 (ko) * 2017-04-14 2019-01-02 한양대학교 산학협력단 심화신경망 기반의 잡음 및 에코의 통합 제거 방법 및 장치
US20180358032A1 (en) * 2017-06-12 2018-12-13 Ryo Tanaka System for collecting and processing audio signals

Also Published As

Publication number Publication date
WO2021133097A1 (ko) 2021-07-01

Similar Documents

Publication Publication Date Title
US11276414B2 (en) Method and device for processing audio signal using audio filter having non-linear characteristics to prevent receipt of echo signal
KR102565882B1 (ko) 복수의 마이크들을 포함하는 음향 출력 장치 및 복수의 마이크들을 이용한 음향 신호의 처리 방법
KR102478393B1 (ko) 노이즈가 정제된 음성 신호를 획득하는 방법 및 이를 수행하는 전자 장치
US20210020188A1 (en) Echo Cancellation Using A Subset of Multiple Microphones As Reference Channels
KR20190097391A (ko) 오디오 신호의 주파수의 변화에 따른 위상 변화율에 기반하여 노이즈가 감쇠된 오디오 신호를 생성하는 장치 및 방법
KR102565447B1 (ko) 청각 인지 속성에 기반하여 디지털 오디오 신호의 이득을 조정하는 전자 장치 및 방법
US11308973B2 (en) Method for processing multi-channel audio signal on basis of neural network and electronic device
KR102443637B1 (ko) 네트워크 연결 정보에 기반하여 잡음 제어 파라미터를 결정하는 전자 장치 및 그의 동작 방법
KR20220083586A (ko) 다중 프레임 노이즈 제거를 위한 방법 및 장치
KR20200035811A (ko) 동상/직교 불일치(iqmm)를 보상하는 시스템, 방법 및 전자 장치
EP4254407A1 (en) Electronic device and voice input/output control method of electronic device
US11562763B2 (en) Method for improving sound quality and electronic device using same
KR20210083872A (ko) 전자 장치 및 신경망 기반의 잔여 에코 제거 방법
US10388301B2 (en) Method for processing audio signal and electronic device for supporting the same
KR20230039715A (ko) 필터링 수단에 의한 에코 제거 방법, 전자 디바이스 및 컴퓨터 판독가능 저장 매체
KR20210101644A (ko) 음질 개선 방법 및 이어 웨어러블 장치
KR20220017080A (ko) 음성 신호를 처리하는 방법 및 이를 이용한 장치
US20230087784A1 (en) Electronic device including multi-way speaker and operation method thereof
US20230379623A1 (en) Method for processing audio data and electronic device supporting same
KR20220096460A (ko) 전자 장치 및 전자 장치의 음성 입출력 제어 방법
KR20210108232A (ko) 에코 캔슬링을 위한 방법 및 그 장치
KR20240052598A (ko) 신호의 오류를 검출하기 위한 전자 장치 및 방법
US20200288243A1 (en) Method for generating audio signal using plurality of speakers and microphones and electronic device thereof
KR20220134308A (ko) 음성 신호 처리를 위한 전자 장치 및 방법
KR20220132203A (ko) 오디오 데이터 처리 방법 및 이를 지원하는 전자 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal