KR20190026234A - 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치 - Google Patents

비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR20190026234A
KR20190026234A KR1020170112714A KR20170112714A KR20190026234A KR 20190026234 A KR20190026234 A KR 20190026234A KR 1020170112714 A KR1020170112714 A KR 1020170112714A KR 20170112714 A KR20170112714 A KR 20170112714A KR 20190026234 A KR20190026234 A KR 20190026234A
Authority
KR
South Korea
Prior art keywords
signal
audio
audio signal
filter
nonlinear
Prior art date
Application number
KR1020170112714A
Other languages
English (en)
Other versions
KR102478951B1 (ko
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 KR1020170112714A priority Critical patent/KR102478951B1/ko
Priority to PCT/KR2018/010038 priority patent/WO2019045474A1/ko
Priority to US16/639,332 priority patent/US11276414B2/en
Publication of KR20190026234A publication Critical patent/KR20190026234A/ko
Application granted granted Critical
Publication of KR102478951B1 publication Critical patent/KR102478951B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0272Voice signal separating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L2021/02082Noise filtering the noise being echo, reverberation of the speech

Abstract

본 발명의 다양한 실시 예들은 전자 장치(electronic device)에서 비선형 신호(non-linear signal)를 처리하기 위한 방법 및 장치에 관하여 개시한다. 다양한 실시 예들에 따르면, 상기 전자 장치는, 오디오 입력 모듈(audio input module), 오디오 출력 모듈(audio output module), 및 프로세서(processor)를 포함하고, 상기 프로세서는, 상기 오디오 출력 모듈을 통해 출력될 제1 오디오 신호를 확인하고, 비선형의 제1 속성(attribute)을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하고, 상기 오디오 출력 모듈을 통해 상기 제1 오디오 신호를 출력하고, 상기 오디오 입력 모듈을 통해 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호(external audio signal)를 획득하고, 상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치(weight)가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하고, 상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 다른 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하고, 상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하도록 설정될 수 있다.

Description

비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치{METHOD AND APPARATUS FOR REMOVIMG AN ECHO SIGNAL}
다양한 실시 예들은, 전자 장치에 의해 재생된 소리가 다시 전자 장치에 유입되는 에코(echo) 신호를 제거(remove)하기 위한 신호 처리 방법 및 전자 장치(electronic device) 에 관한 것이다.
장치(electronic device)는, 다른 전자 장치와의 통신 환경에서, 다양한 통화 방식을 제공한다. 예를 들면, 전자 장치는 스피커폰을 이용한 통화, 및/또는 영상 통화를 제공한다. 이러한 통화 방식에서, 상기 전자 장치는 스피커를 통해 상기 다른 전자 장치로부터 수신한 소리 신호를 출력한다. 상기 출력된 소리 신호는 상기 전자 장치의 마이크(microphone)를 통해 상기 전자 장치에게 다시 유입될 수 있다. 다시 말해, 상기 전자 장치는 상기 스피커를 통해 출력된 소리 신호인 에코(echo)(또는 반향) 신호를 수신할 수 있다. 상기 에코 신호는 통화 음질 저하의 주요한 요인이다. 따라서, 상기 전자 장치는, 통화 시의 에코 신호를 제거하기 위해 설정된 신호 처리 기법(예: echo cancellation)을 이용하여 에코 신호를 제거하고 있다.
전자 장치(electronic device)의 반향(echo)(또는 에코) 신호를 제거(remove)하기 위해 모델링 된 피드백(feed-back)은 선형의 속성을 가진다. 한편, 반향 신호는 상기 전자 장치의 소자 등을 통해 생성된 비선형(non-linear) 신호를 포함할 수 있다. 이러한 경우, 상기 모델링 된 피드백은 반향 신호의 선형(linear) 성분만을 제거하고, 반향 신호의 상기 비선형 신호를 제거하기 어렵다는 문제점이 있다.
다양한 실시 예들은, 비선형 모델링에 기반하여, 전자 장치로 유입되는 에코 성분 중 비선형 신호를 모델링 하여 제거하는 전자 장치 및 방법을 제공할 수 있다.
다양한 실시 예들은, 비선형의 속성을 가지는 필터와 신경망(neural network)의 속성을 가지는 필터에 기반하여, 전자 장치로 유입되는 비선형 신호를 제거하는 전자 장치 및 방법을 제공할 수 있다.
다양한 실시 예들에서, 전자 장치(electronic device)는, 오디오 입력 모듈, 오디오 출력 모듈, 및 프로세서(processor)를 포함하고, 상기 프로세서는, 상기 오디오 출력 모듈을 통해 출력될 제1 오디오 신호를 확인(identify)하고, 비선형의 제1 속성(attribute)을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하고, 상기 오디오 출력 모듈을 통해 상기 제1 오디오 신호를 출력하고, 상기 오디오 입력 모듈을 통해 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호를 획득하고, 상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치(weight)가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하고, 상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 구별되는(distinct) 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하고, 상기 외부 오디오 신호(external audio signal)의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하도록 설정될(configured) 수 있다.
다양한 실시 예들에서, 전자 장치의 방법은, 오디오 출력 모듈을 통해, 출력될 제1 오디오 신호를 확인하는 동작과, 비선형의 제1 속성을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하는 동작과, 상기 오디오 출력 모듈을 통해, 상기 제1 오디오 신호를 출력하는 동작과,오디오 입력 모듈을 통해, 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호를 획득하는 동작과, 상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하는 동작과; 상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 구별되는 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하는 동작과, 상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하는 동작을 포함할 수 있다.
다양한 실시 예들에 있어서, 전자 장치는, 오디오 입력 모듈, 오디오 출력 모듈, 명령어들을 저장하는 메모리, 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 오디오 출력 모듈을 통해 제1 오디오 신호를 출력하고, 상기 제1 오디오 신호를 비선형 필터를 통해 비선형의 속성에 기반하여 모델링하고, 상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를 선형 필터를 통해 선형의 속성에 기반하여 제2 오디오 신호로 모델링하고, 상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를 신경망(neural network)을 통해, 제3 오디오 신호로 모델링하고, 상기 오디오 입력 모듈을 통해 제1 오디오 신호와 관련된 외부 오디오 신호를 수신하면, 상기 제2 오디오 신호 및 제3 오디오 신호에 기반하여, 상기 수신된 외부 오디오 신호를 처리하기 위해 상기 저장된 명령어들을 실행하도록 설정될 수 있다.
다양한 실시 예들에 따른 전자 장치(electronic device) 및 그의 동작 방법에 따르면, 스피커와 마이크를 포함하는 전자 장치에서 스피커로 재생된 소리가 다시 마이크로 유입되는 에코(echo) 신호를 효과적으로 제거할 수 있다.
다양한 실시 예들에 따르면, 효과적인 에코 신호 제거를 통해, 상기 전자 장치의 음성 인식 또는 통화 시에 타겟(target) 음성 신호 만을 전달하여 음성 인식 기능을 보다 향상하고, 통화 음질 저하를 사전에 방지할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치는 에코 성분 중 비선형(non-linear) 신호를 실시간으로 모델링 하여 제거할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치는 스피커와 마이크에서 발생하는 비선형성을 서로 다른 특징을 갖는 복수의 비선형 속성의 필터(또는 시그모이드(sigmoid) 함수)를 이용한 모델링을 통해 비선형 모델링 성능을 향상시킬 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치는 복수의 비선형 속성의 필터(sigmoid 함수)에 의해 모델링 된 비선형 에코에 대하여 주파수 축에서 신경망(neural network)의 속성을 가지는 필터를 이용하여 비선형 모델링의 성능을 향상시킬 수 있다. 다양한 실시 예들에 따르면, 신경망의 노드(node)와 노드 간의 연결을 최소화 하면서 비선형 모델링의 성능을 향상하여, 실시간 연산량 및 메모리 사용을 줄일 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치(electronic device)의 블록도이다.
도 2는 다양한 실시 예들에 따른 오디오 모듈의 블록도이다.
도 3은 다양한 실시 예들에 따른 전자 장치의 기능적 구성의 예를 도시한다.
도 4는 다양한 실시 예들에 따른 외부 오디오 신호(external audio signal)를 처리(process)하기 위한 전자 장치의 구성의 예를 도시한다.
도 5는 다양한 실시 예들에 따른 외부 오디오 신호(external audio signal)를 처리하기 위한 전자 장치의 구성의 다른 예를 도시한다.
도 6은 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 동작의 예를 도시한다.
도 7은 다양한 실시 예들에 따른 복수 개의 비선형 필터(non-linear filter)들에 기반하여 오디오 신호를 모델링 하기 위한 전자 장치의 동작의 예를 도시한다.
도 8a은 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터(audio filter)를 이용하여 오디오 신호를 모델링 하기 위한 동작의 예를 도시한다.
도 8b는 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 구성의 예를 도시한다.
도 9는 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 동작의 다른 예를 도시한다.
도 10은 다양한 실시 예들에 따른 전자 장치에서 외부 오디오 신호를 처리하기 위한 신호(signal)의 흐름의 예를 도시한다.
도 11은 다양한 실시 예들에 따른 전자 장치에서 외부 오디오 신호를 처리하기 위한 신호의 흐름의 다른 예를 도시한다.
도 12는 다양한 실시 예들에 따라 오디오 신호, 외부 오디오 신호, 및/또는 비선형 필터(non-linear filter)에 의해 모델링 된 신호의 예를 도시한다.
도 13은 다양한 실시 예들에 따라 비선형의 속성을 반영하기 위한 시그모이드(sigmoid) 함수(function)의 예를 도시한다.
도 14는 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 예를 도시한다.
도 15는 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 예를 도시한다.
도 16은 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 다른 예를 도시한다.
도 17은 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 다른 예를 도시한다.
도 18은 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 또 다른 예를 도시한다.
도 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))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))을 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호를 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는, 다양한 실시에 따른, 오디오 모듈(170)의 블록도(200)이다. 도 2를 참조하면, 오디오 모듈(170)은, 예를 들면, 오디오 입력 인터페이스(210), 오디오 입력 믹서(220), ADC(analog to digital converter)(230), 오디오 신호 처리기(240), DAC(digital to analog converter)(250), 오디오 출력 믹서(260), 또는 오디오 출력 인터페이스(270)를 포함할 수 있다.
오디오 입력 인터페이스(210)는 입력 장치(150)의 일부로서 또는 전자 장치(101)와 별도로 구성된 마이크(예: 다이나믹 마이크, 콘덴서 마이크, 또는 피에조 마이크)를 통하여 전자 장치(101)의 외부로부터 획득한 소리에 대응하는 오디오 신호를 수신할 수 있다. 예를 들어, 외부의 전자 장치(102)(예: 헤드셋 또는 마이크)로부터 오디오 신호를 획득하는 경우, 오디오 입력 인터페이스(210)는 상기 외부의 전자 장치(102)와 연결 단자(178)를 통해 유선으로, 또는 무선 통신 모듈(192)을 통하여 무선으로(예: Bluetooth 통신) 연결되어 오디오 신호를 수신할 수 있다. 일실시예에 따르면, 오디오 입력 인터페이스(210)는 상기 외부의 전자 장치(102)로부터 획득되는 오디오 신호와 관련된 제어 신호(예: 입력 버튼을 이용한 볼륨 조정 신호)를 수신할 수 있다. 오디오 입력 인터페이스(210)는 복수의 오디오 입력 채널들을 포함하고, 각각의 오디오 입력 채널 별로 다른 오디오 신호를 수신할 수 있다. 일실시예에 따르면, 추가적으로 또는 대체적으로, 오디오 입력 인터페이스(210)는 전자 장치(101)의 다른 구성 요소(예: 프로세서(120) 또는 메모리(130))로부터 오디오 신호를 입력 받을 수 있다.
오디오 입력 믹서(220)는 입력된 복수의 오디오 신호들을 적어도 하나의 오디오 신호로 합성할 수 있다. 일실시예에 따르면, 오디오 입력 믹서(220)는, 오디오 입력 인터페이스(210)를 통해 입력된 복수의 아날로그 오디오 신호들을 적어도 하나의 아날로그 오디오 신호로 합성할 수 있다.
ADC(230)는 아날로그 오디오 신호를 디지털 오디오 신호로 변환할 수 있다. 일실시예에 따르면, ADC(230)는 오디오 입력 인터페이스(210)을 통해 수신된 아날로그 오디오 신호, 또는 추가적으로 또는 대체적으로 오디오 입력 믹서(220)를 통해 합성된 아날로그 오디오 신호를 디지털 오디오 신호로 변환할 수 있다.
오디오 신호 처리기(240)는 ADC(230)를 통해 입력 받은 디지털 오디오 신호, 또는 전자 장치(101)의 다른 구성 요소로부터 수신된 디지털 오디오 신호에 대하여 다양한 처리를 수행할 수 있다. 예를 들어, 오디오 신호 처리기(240)는 하나 이상의 디지털 오디오 신호들에 대해 샘플링 비율 변경, 하나 이상의 필터 적용, 보간(interpolation) 처리, 증폭 또는 감쇄(예: 일부 주파수 대역 또는 전 주파수 대역의 증폭 또는 감쇄) 처리, 노이즈 처리(예: 노이즈 또는 에코 감쇄), 채널 변경(예: 모노 및 스테레오간 전환), 합성(mixing), 또는 지정된 신호 추출을 수행할 수 있다. 일실시예에 따르면, 오디오 신호 처리기(240)의 적어도 일부 기능은 이퀄라이저(equalizer)의 형태로 구현될 수 있다.
DAC(250)는 디지털 오디오 신호를 아날로그 오디오 신호로 변환할 수 있다. 일실시예에 따르면, DAC(250)는 오디오 신호 처리기(240)에 의해 처리된 디지털 오디오 신호, 또는 전자 장치(101)의 다른 구성 요소로부터 획득한 디지털 오디오 신호를 아날로그 오디오 신호로 변환할 수 있다.
오디오 출력 믹서(260)는 출력할 복수의 오디오 신호들을 적어도 하나의 오디오 신호로 합성할 수 있다. 일실시예에 따르면, 오디오 출력 믹서(260)는 DAC(250)를 통해 아날로그로 전환된 오디오 신호 및 다른 아날로그 오디오 신호(예: 오디오 입력 인터페이스(210)을 통해 수신한 아날로그 오디오 신호)를 적어도 하나의 아날로그 오디오 신호로 합성할 수 있다.
오디오 출력 인터페이스(270)는 DAC(250)를 통해 변환된 아날로그 오디오 신호, 또는 추가적으로 또는 대체적으로 오디오 출력 믹서(260)에 의해 합성된 아날로그 오디오 신호를 음향 출력 장치(155)(예: 스피커(예: dynamic driver 또는 balanced armature driver), 또는 리시버)를 통해 전자 장치(101)의 외부로 출력할 수 있다. 일실시예에 따르면, 음향 출력 장치(155)는 복수의 스피커들을 포함하고, 오디오 출력 인터페이스(270)는 상기 복수의 스피커들 중 적어도 일부 스피커들을 통하여 서로 다른 복수의 채널들(예: 스테레오, 또는 5.1채널)을 갖는 오디오 신호를 출력할 수 있다. 일실시예에 따르면, 오디오 출력 인터페이스(270)는 외부의 전자 장치(102)(예: 외부 스피커 또는 헤드셋)와 연결 단자(178)를 통해 유선으로, 또는 무선 통신 모듈(192)을 통하여 무선으로 연결되어 오디오 신호를 출력할 수 있다.
일실시예에 따르면, 오디오 모듈(170)은 오디오 입력 믹서(220) 또는 오디오 출력 믹서(260)를 별도로 구비하지 않고, 오디오 신호 처리기(240)의 적어도 일부 기능으로서 복수의 디지털 오디오 신호들을 합성하여 적어도 하나의 디지털 오디오 신호를 생성할 수 있다.
일실시예에 따르면, 오디오 모듈(170)은 오디오 입력 인터페이스(210)를 통해 입력된 아날로그 오디오 신호, 또는 오디오 출력 인터페이스(270)를 통해 출력될 오디오 신호를 증폭할 수 있는 오디오 증폭기(미도시)(예: 스피커 증폭 회로)를 포함할 수 있다. 일실시예에 따르면, 상기 오디오 증폭기는 오디오 모듈(170)과 별도의 모듈로 구성될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 3은 다양한 실시 예들에 따른 전자 장치101의 기능적 구성의 예를 도시한다.
이하 설명에서 사용되는 신호 처리 방식(예: 모델링, 필터링)을 지칭하는 용어, 신호를 지칭하는 용어, 장치의 구성 요소를 지칭하는 용어(예: 비선형 필터, 선형 필터, 오디오 필터) 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 발명이 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
이하 사용되는 '...부' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 다양한 실시 예들에서, 비선형 필터 303, 선형 필터 305, 오디오 필터(신경망) 307은 상기 프로세서 120에 하드웨어 모듈로 포함되거나, 또는 소프트웨어 모듈로 포함될 수 있다.
도 3을 참조하면, 상기 전자 장치 101은 상기 프로세서 120, 오디오 출력 모듈 309, 오디오 입력 모듈 311 및 메모리 130을 포함할 수 있다. 프로세서 120, 오디오 출력 모듈 309, 오디오 입력 모듈 311 및 메모리 130는 서로 결합(coupled to)될 수 있다. 예를 들면, 상기 프로세서 120, 오디오 출력 모듈 309, 오디오 입력 모듈 311 및 메모리 130 중 적어도 일부는, 직접적으로 연결(connected to)될 수 있다. 다른 예를 들면, 상기 프로세서 120 오디오 출력 모듈 309, 오디오 입력 모듈 311 및 메모리 130 중 적어도 일부는, 다른 장치 또는 회로를 통해 간접적으로 연결될 수 있다.
다양한 실시 예들에서 상기 프로세서 120은 비선형 필터 303, 선형 필터 305, 오디오 필터(또는 신경망) 307을 포함할 수 있다. 상기 비선형 필터 303, 상기 선형 필터 305, 상기 오디오 필터(또는 신경망) 307는 서로 결합(coupled to)될 수 있다. 상기 비선형 필터 303, 상기 선형 필터 305, 상기 오디오 필터(또는 신경망) 307 중 적어도 하나는 상기 오디오 출력 모듈 309, 오디오 입력 모듈 311 및 메모리 130 중 적어도 하나와 간접적 또는 직접적으로 연결될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 전자 장치 101에 포함된 적어도 하나의 구성 요소들의 기능을 실행시키기 위해 상기 메모리 130에 저장된 명령어들을 실행하도록 설정(configured)될 수 있다. 예를 들면, 상기 프로세서 120은 오디오 출력 모듈 309가 오디오 신호를 출력하기 위해 상기 저장된 명령어들을 실행하도록 설정될 수 있다. 다른 예를 들면, 상기 프로세서 120은 오디오 입력 모듈 311이 외부 오디오 신호를 수신하기 위해 상기 저장된 명령어들을 실행하도록 설정될 수 있다. 또 다른 예를 들면, 상기 프로세서 120는 상기 비선형 필터 303, 상기 선형 필터 305, 상기 오디오 필터 307가 신호를 처리하기 위해 상기 저장된 명령어들을 실행하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 오디오 출력 모듈 309로부터 오디오 신호를 수신할 수 있다. 상기 오디오 신호는 상기 전자 장치 101에서 생성된 신호(예: 오디오 재생 신호) 또는 외부 장치로부터 수신한 신호(예: 통화 중인 다른 전자 장치로부터 수신된 음성 신호)를 포함할 수 있다. 일부 실시 예에서, 상기 오디오 신호는 상기 전자 장치 101 내에 포함된 통신 모듈 190을 통해 다른 전자 장치로부터 수신된 신호를 포함할 수 있다. 상기 오디오 신호는 무선 또는 유선 통신 환경에서 다른 전자 장치로부터 전송된 신호를 포함할 수 있다.
다양한 실시 예들에서, 상기 오디오 출력 모듈 309은 상기 전자 장치 101에게 수신된 신호 또는 생성된 신호를 디코더(decoder)를 통해 디코딩 할 수 있다. 상기 디코딩 된 신호는 음성 파형의 형태를 포함할 수 있다. 상기 디코딩 된 신호는 디지털(digital) 신호일 수 있다. 상기 디코딩 된 신호에 대한 정보는 상기 전자 장치 101의 상기 메모리 130에 저장될 수 있다. 상기 오디오 출력 모듈 309는 상기 디코딩 된 신호와 상기 오디오 입력 모듈 311을 통해 수신될 신호 간의 지연(delay)을 미리 보상하기 위하여 상기 디코딩 된 신호를 버퍼링(buffering) 할 수 있다. 상기 오디오 신호에는 상기 디코딩 된 신호를 포함할 수 있다.
다양한 실시 예들에서, 상기 오디오 출력 모듈 309는 DAC 250, 오디오 출력 믹서 260, 음향 출력 장치 155, 및/또는 오디오 출력 인터페이스 270의 적어도 일부를 포함할 수 있다. 상기 오디오 출력 모듈 309는 상기 음향 출력 장치 155 및/또는 오디오 출력 인터페이스 270를 통해 상기 오디오 신호를 출력(또는 재생)할 수 있다. 상기 출력된 오디오 신호는 아날로그(analog) 신호로 변환된 신호일 수 있다. 상기 출력된 오디오 신호는 상기 전자 장치 101 의 사용자를 통해 인지될 수 있다.
다양한 실시 예들에서, 상기 오디오 입력 모듈 311은 상기 ADC 230, 상기 오디오 입력 믹서 220, 입력 장치(150), 및/또는 오디오 입력 인터페이스 210의 적어도 일부를 포함할 수 있다. 상기 오디오 입력 모듈 311는 외부로부터 오디오 신호를 수신하고, 상기 수신된 오디오 신호를 식별하기 위한 다양한 기능을 수행할 수 있다.
다양한 실시 예들에서, 상기 오디오 입력 모듈 311은 상기 오디오 출력 모듈 309를 통해 출력된 오디오 신호의 적어도 일부를 다시 전자 장치 101로 수신할 수 있다. 상기 오디오 입력 모듈 311이 수신하는 신호 (예: 외부 오디오 신호)는 타겟 신호(예: 사용자 입력 음성 신호)를 포함할 수 있다. 상기 외부 오디오 신호는 상기 타겟 신호와 함께 에코 신호를 포함할 수 있다. 예를 들어, 상기 에코 신호는 상기 오디오 출력 모듈 309를 통해 출력된 오디오 신호를 포함할 수 있다. 상기 에코 신호는 상기 전자 장치 101가 상기 오디오 신호를 상기 오디오 출력 모듈 309(예: 스피커)를 통해 출력될 때, 스피커의 비선형성에 따른 비선형 성분(비선형 신호), 상기 출력된 오디오 신호가 다시 상기 오디오 입력 모듈 311(예: 마이크)로 유입될 때 마이크의 비선형성에 따른 비선형 성분을 포함할 수 있다. 상기 에코 신호는 선형 성분도 포함할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120는 상기 오디오 출력 모듈 309로부터 오디오 신호를 수신할 수 있다. 일부 실시 예들에서, 상기 오디오 신호는 상기 오디오 출력 모듈 309로부터 상기 비선형 필터 303에게 송신될 수 있다. 상기 프로세서 120이 복수 개의 비선형 필터들을 포함하는 경우, 상기 오디오 신호는 상기 오디오 출력 모듈 309로부터 상기 복수 개의 비선형 필터들 각각에게 송신될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형 필터 303, 선형 필터 305, 및/또는 오디오 필터307에 기반하여 수신된 오디오 신호를 처리할 수 있다. 상기 비선형 필터 303은 비선형의 속성(attribute)을 가지는 필터(filter)일 수 있다. 상기 선형 필터 305는 선형의 속성을 가지는 필터일 수 이다. 상기 오디오 필터(또는 신경망) 307는 신경망(neural network)에 기반하여, 신경망 연산을 수행할 수 있는 필터일 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 비선형 필터 303를 이용하여, 상기 오디오 출력 모듈 309로부터 수신된 상기 오디오 신호를 비선형 모델링(또는 필터링) 할 수 있다. 상기 프로세서 120은 상기 비선형 필터 303의 비선형 속성에 기반하여, 상기 오디오 신호를 비선형 모델링 할 수 있다. 상기 프로세서 120은 상기 오디오 신호에 포함된 상기 비선형 신호의 속성을 반영하기 위해, 상기 비선형 필터 303에 기반하여 상기 오디오 신호를 비선형 모델링 할 수 있다. 상기 비선형 모델링 된 오디오 신호는 상기 오디오 신호에 포함된 비선형 신호의 속성을 포함할 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303은 적어도 하나의 비선형 필터를 포함하는 기능적인 구성(집합 또는 그룹)일 수 있다. 일부 실시 예들에서, 상기 적어도 하나의 비선형 필터는 비선형의 속성을 반영하기 위한(비선형의 속성과 관련된) 필터일 수 있다. 상기 비선형 필터 303에 포함된 상기 적어도 하나의 비선형 필터들은 각각 서로 다른 비선형의 속성에 관련될 수 있다. 예를 들면, 상기 비선형 필터 303은 제1 필터와 제2 필터를 포함할 수 있다. 상기 제1 필터는 제1 속성에 대한 것일 수 있다. 상기 제2필터는 제2 속성에 대한 것일 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형 모델링 된 오디오 신호를 상기 선형 필터 305를 통해 제2 오디오 신호로 선형 모델링 할 수 있다. 상기 프로세서 120은 상기 선형 필터 305의 선형의 속성에 기반하여, 상기 오디오 신호를 상기 제2 오디오 신호로 선형 모델링 할 수 있다. 상기 프로세서 120은 상기 오디오 신호에 포함된 상기 선형 신호의 속성을 반영하기 위해, 상기 선형 필터 305에 기반하여 상기 오디오 신호를 상기 제2 오디오 신호로 선형 모델링 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 오디오 입력 모듈 311을 통해 외부 오디오 신호(예: 타겟 신호 및 에코 신호)가 수신되면, 전술된 모델링 된 오디오 신호들에 기반하여 상기 외부 오디오 신호에서 에코 신호를 제거하여 상기 외부 오디오 신호에 타겟 신호만이 포함되도록 처리할 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제2 오디오 신호에 대응하는 에코 신호를 제거하기 위한 신호 처리를 수행할 수 있다. 상기 제2 오디오 신호는 상기 오디오 신호에 상기 외부 오디오 신호의 비선형의 속성과 선형의 속성을 반영하기 위해 모델링 된 신호일 수 있다. 상기 제2 오디오 신호는, 상기 비선형 필터 303에 기반하여, 에코 성분 중 비선형의 속성을 포함할 수 있다. 상기 제2 오디오 신호는, 상기 선형 필터 305에 기반하여, 에코 성분 중 선형의 속성을 포함할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 오디오 필터 307을 통해, 상기 비선형 필터 303에 의해 비선형 모델링 된 오디오 신호를 제3 오디오 신호로 신경망 모델링 할 수 있다. 일부 실시 예들에서, 상기 오디오 필터 307은 "뉴런(neuron)들", "처리 요소들", "유닛들", 또는 이와 유사하거나 상응하는 용어로 알려진 노드(node)(또는 인공 노드(artificial node)들을 포함할 수 있다. 상기 노드들은 생물학적인 신경망을 모사(mimic)하는 네트워크를 형성하기 위해 연결될 수 있다. 상기 오디오 필터(또는 신경망) 307은, 상기 네트워크에 기반하여, 기계 학습 (machine learning)에 유용한 알고리즘을 구현하기 위한 소프트웨어일 수 있다. 실시 예들에 따라, 상기 신경망 연산은 딥 러닝(deep-learning), 기계 학습(machine learning)등으로 지칭될 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 오디오 필터 307의 입력(input)과 출력(output)에 기반하여 상기 오디오 필터 307을 갱신할 수 있다. 상기 프로세서 120은 상기 오디오 필터 307을 갱신하는 것을 통해, 상기 제3 오디오 신호에 상기 오디오 신호의 비선형의 속성(비선형성)을 실시간으로 반영할 수 있다. 다양한 실시 예들에서, 상기 필터라는 용어들은 필터링부, 필터부, 모델링부, 또는 연산부 등으로 지칭될 수 있으며 이에 한정되지 않는다. 예를 들면, 상기 비선형 필터 303은 비선형 필터부, 상기 선형 필터 305는 선형 층, 그리고 상기 오디오 필터 307는 신경망으로 지칭될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 외부 오디오 신호로부터 상기 제3 오디오 신호에 대응하는 에코 신호를 제거하기 위해 상기 외부 오디오 신호를 처리할 수 있다. 상기 제3 오디오 신호는 상기 비선형 필터 303 및 상기 오디오 필터 307을 통해 비선형의 속성이 반영된 신호일 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은, 상기 제2 오디오 신호에 대응하는 에코 신호가 제거된 외부 오디오 신호에서 상기 제3 오디오 신호에 대응하는 에코 신호를 제거할 수 있다. 상기 프로세서 120은 상기 제2 오디오 신호와 상기 제3 오디오 신호에 대한 제거가 완료된 외부 오디오 신호를 상기 전자 장치 101 내의 다른 구성 요소로 송신할 수 있다.
도시하지는 않았으나, 다양한 실시 예들에서, 상기 비선형 필터 303, 상기 선형 필터 305 및/또는 상기 오디오 필터 307은 상기 전자 장치 101 내의 다른 구성 요소에 포함될 수 있다. 예를 들면, 상기 비선형 필터 303, 상기 선형 필터 305 및/또는 상기 오디오 필터 307는 도 2의 오디오 모듈 170에 포함될 수 있다. 예를 들면, 상기 비선형 필터 303, 상기 선형 필터 305 및/또는 상기 오디오 필터 307는 도 2의 오디오 신호 처리기 240의 일부로 포함될 수 있다. 일부 실시 예들에서, 상기 비선형 필터 303, 상기 선형 필터 305 및/또는 상기 오디오 필터 307은 상기 프로세서 120과 독립적으로 구성 될 수 있다.
다양한 실시 예들에서, 상기 전자 장치 101은 상기 오디오 입력 모듈311, 상기 오디오 출력 모듈 309, 및 상기 프로세서 120을 포함할 수 있다. 상기 프로세서 120은, 상기 오디오 출력 모듈을 통해 출력될 제1 오디오 신호를 확인(identify)하고, 비선형의 제1 속성을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성할 수 있다. 상기 프로세서 120은 상기 오디오 출력 모듈 309를 통해 상기 제1 오디오 신호를 출력하고, 상기 오디오 입력 모듈 311을 통해 상기 전자 장치 101의 상기 제1 오디오 신호가 포함된 외부 오디오 신호를 획득할 수 있다. 상기 프로세서 120은 상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치가 적용된 오디오 필터 307의 제1 입력 채널을 통해 제1 출력 값을 획득할 수 있다. 상기 프로세서 120은 상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 구별되는(distinct) 제2 가중치가 적용된 상기 오디오 필터 307의 제2 입력 채널을 통해 제2 출력 값을 획득할 수 있다. 상기 프로세서 120은, 상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 기반하여, 제2 오디오 신호를 생성하도록 설정될 수 있다.
다양한 실시 예들에서, 상기 전자 장치 101은, 상기 오디오 입력 모듈 311, 상기 오디오 출력 모듈 309, 명령어들을 저장하는 상기 메모리 130, 및 적어도 하나의 프로세서(예를 들면 프로세서 120)를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 상기 오디오 출력 모듈을 통해 제1 오디오 신호를 출력하고, 상기 제1 오디오 신호를 비선형 필터를 통해 비선형의 속성에 기반하여 모델링하고, 상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를, 선형 필터를 통해 선형의 속성에 기반하여, 제2 오디오 신호로 모델링하고, 상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를 신경망(neural network)을 통해, 제3 오디오 신호로 모델링하고, 상기 오디오 입력 모듈을 통해 제1 오디오 신호와 관련된 외부 오디오 신호를 수신하면, 상기 제2 오디오 신호 및 제3 오디오 신호에 기반하여, 상기 수신된 외부 오디오 신호를 처리하기 위해 상기 저장된 명령어들을 실행하도록 설정될 수 있다.
도 4는 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 구성의 예를 도시한다.
도 4를 참조하면, 상기 전자 장치 101은 오디오 출력 모듈 309, 오디오 입력 모듈 311, 및/또는 프로세서 120을 포함할 수 있다. 상기 프로세서 120은 비선형 필터 303, 선형 필터 305, 오디오 필터 307, FFT 부(405, 407) 및/또는 RES 409를 포함할 수 있다.
도 4를 참조하면, 상기 오디오 출력 모듈 309는 신호(signal)을 수신할 수 있다. 상기 신호는 상기 전자 장치 101의 시스템에 기반하여 생성된 신호를 포함하거나, 외부의 장치로부터 수신된 신호를 포함할 수 있다. 상기 오디오 출력 모듈 309는 상기 수신된 신호를 출력할 수 있다. 상기 오디오 출력 모듈 309는 상기 수신된 신호를 스피커 또는 음향 출력 장치 155 등을 통해 출력할 수 있다. 다양한 실시 예들에서, 상기 수신된 신호(이하 오디오 신호)는 상기 전자 장치 101내에 포함된 통신 모듈 190을 통해 다른 전자 장치로부터 수신된 신호를 포함할 수 있다. 일부 실시 예들에서, 상기 오디오 신호는 무선 또는 유선 통신 환경에서 다른 전자 장치로부터 수신된 신호를 포함할 수 있다. 예를 들면, 전자 장치의 사용자가 무선 및/또는 유선으로 다른 전자 장치의 사용자와 통신(또는 통화)하는 경우, 상기 오디오 신호는 상기 다른 전자 장치로부터 수신된 소리와 관련된 신호(예: 음성 신호)일 수 있다. 다른 일부 실시 예에서, 상기 오디오 신호는 상기 전자 장치 101 내에 포함된 적어도 하나의 어플리케이션(application)의 실행에 기반하여, 상기 전자 장치 101 내에서 생성된 신호를 포함할 수 있다. 예를 들면, 상기 전자 장치 101에서 음악 어플리케이션을 통해 음악 파일(file)을 재생할 수 있다. 상기 오디오 신호는 상기 음악 파일에 기반하여 상기 전자 장치 101 내에서 생성(generate)된 소리 신호일 수 있다. 또는, 상기 오디오 신호는 상기 음악 파일의 재생에 기반하여 상기 네트워크 199를 통해 수신된 상기 재생과 관련된 신호일 수 있다. 또 다른 일부 실시 예에서, 상기 오디오 신호는 상기 네트워크 199를 통해 상기 서버108로부터 수신된 신호를 포함할 수 있다. 실시 예에 따라, 상기 오디오 신호는 상기 오디오 출력 모듈 309을 통해 출력하기 위한 소리와 관련된 신호를 포함할 수 있으며, 오디오 데이터, 소리 신호, 소리 데이터, 또는 신호 등의 다양한 용어로 지칭될 수 있다.
다양한 실시 예들에서, 상기 전자 장치 101은 오디오 입력 모듈 311을 통해 에코 신호 및/또는 타겟 신호를 수신할 수 있다. 예를 들면, 상기 전자 장치 101가 음성 통화 모드인 경우, 상기 타겟 신호는 상기 전자 장치 101의 사용자의 음성(voice)에 대한 신호일 수 있다. 상기 에코 신호는, 상기 전자 장치 101이 상기 통신 모듈 190을 통해 수신된 신호를 상기 오디오 출력 모듈 309를 통해 출력하는 경우, 상기 출력된 신호가 경로 401과 같이 상기 오디오 입력 모듈 311로 유입되는 신호일 수 있다. 상기 전자 장치 101은 상기 수신된 타겟 신호를 다른 전자 장치에게 전송하기 위해 신호 처리(signal processing)를 수행할 수 있다. 상기 신호 처리는 상기 오디오 입력 모듈 311을 통해 상기 타겟 신호와 상기 에코 신호가 함께 입력(예: 입력 신호)되는 경우, 상기 입력 신호에서 상기 에코 신호를 제거하여 상기 타겟 신호만을 추출하여 전송하기 위한 처리를 포함할 수 있다.
다양한 실시 예들에서, 상기 에코 신호는 상기 출력된 오디오 신호를 포함할 수 있다. 상기 오디오 입력 모듈 311은 상기 마이크를 통해 상기 출력된 오디오 신호를 수신할 수 있다. 상기 오디오 입력 모듈 311을 통해 수신된 에코 신호는 상기 비선형 신호를 포함할 수 있다. 상기 오디오 입력 모듈 311은 상기 수신된 에코 신호가 아날로그 신호(analog signal)인 경우 ADC(analog to digital converter)를 통해 디지털 신호로 변환할 수 있다. 상기 변환된 디지털 신호는 음성 파형의 형태로 나타날(indicate) 수 있다.
다양한 실시 예들에서, 경로 401을 참조하면, 상기 전자 장치 101은 상기 오디오 출력 모듈 309을 통해 출력된 오디오 신호를 상기 오디오 입력 모듈 311을 통해 수신할 수 있다. 일부 실시 예들에서, 상기 외부 오디오 신호는 선형 신호 및/또는 비선형 신호를 포함할 수 있다. 상기 선형 신호는 선형의 파형으로 나타낼 수 있는 신호, 즉 미분 가능한 형태로 나타낼 수 있는 신호일 수 있다. 상기 비선형 신호는 상기 오디오 출력 모듈 309을 통해 상기 오디오 신호가 출력되는 동안 생성(또는 유입)되거나, 상기 오디오 입력 모듈 311을 통해 상기 외부 오디오 신호가 유입되는 동안 생성된 신호일 수 있다. 상기 비선형 신호는 비선형의 속성을 가지는 신호일 수 있다. 상기 비선형 신호는 선형으로 나타낼 수 없는 신호, 즉 미분 가능한 형태로 나타낼 수 없는 신호일 수 있다. 상기 비선형 신호는 상기 전자 장치 101내에 포함된 소자의 비선형성에 의해 생성되거나 상기 전자 장치 101 및 상기 전자 장치 101내에 포함된 소자의 진동에 의해 생성될 수 있다.
도 4를 참조하면, 상기 프로세서 120은 AEC(acoustic echo cancellation) 403을 포함할 수 있다. 다양한 실시 예들에서, 상기 외부 오디오 신호는 디지털 신호로 변환되어 상기 프로세서 120에게 송신될 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호에서 에코 신호인 오디오 신호를 제거하기 위한 처리(process)를 수행할 수 있다.
다양한 실시 예들에서, 상기 AEC 403는 상기 선형 필터 305 및 상기 비선형 필터 303을 포함할 수 있다. 상기 AEC 403은 반향(또는 에코(echo))을 처리하기 위한 기능적 구성일 수 있다. 상기 AEC 403은 상기 수신된 오디오 신호를 상기 비선형 필터 303를 통해 모델링(또는 필터링) 할 수 있다. 다른 일부 실시 예들에서, 상기 AEC 403은 상기 오디오 입력 모듈 311로부터 상기 AEC 403을 통해 상기 외부 오디오 신호를 수신할 수 있다. 상기 AEC 403은는 상기 외부 오디오 신호를 상기 비선형 필터 303과 상기 선형 필터 305를 통해 처리된 신호에 기반하여 처리할 수 있다. 예를 들면, 상기 AEC 403는 상기 외부 오디오 신호에서, 상기 비선형 필터 303과 상기 선형 필터 305에 의해 상기 처리된 신호를 제거할 수 있다.
다양한 실시 예들에서, 상기 AEC 403은 선형 필터 305를 포함할 수 있다. 상기 AEC는 상기 오디오 출력 모듈 309로부터 오디오 신호를 수신하고, 이를 선형의 속성에 기반하여 모델링 할 수 있다. 상기 AEC 403은 상기 오디오 입력 모듈 311로부터 상기 외부 오디오 신호를 수신할 수 있다. 상기 AEC 403은 상기 외부 오디오 신호에서 상기 선형의 속성에 기반하여 모델링 된 오디오 신호를 제거하기 위해, 상기 외부 오디오 신호를 처리할 수 있다. 예를 들면, 상기 AEC 403은 상기 외부 오디오 신호에서, 상기 선형 필터 305에 의해 상기 처리된 신호를 제거할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 AEC 403을 통해 처리된 신호에, 상기 비선형 필터 303과 상기 오디오 필터 307에 기반하여 생성된 신호를 제거하기 위한 처리를 수행할 수 있다.
다양한 실시 예들에서, 상기 AEC는 상기 경로 401을 통해 입력되는 신호 및/또는 출력되는 신호에 기반하여 상기 선형 필터 305와 상기 비선형 필터 303을 갱신(update)할 수 있다. 상기 AEC 403은 상기 수신된 오디오 신호를 상기 비선형 필터 303을 통해 비선형 모델링 할 수 있다. 상기 AEC 403는 상기 비선형 모델링 된 오디오 신호를 상기 선형 필터 305를 통해 선형 모델링 할 수 있다. 상기 선형 모델링 된 오디오 신호는 제2 오디오 신호로 지칭될 수 있다. 일부 실시 예에서, 상기 AEC 403은 상기 오디오 입력 모듈 311을 통해 상기 외부 오디오 신호를 수신할 수 있다. 상기 AEC 403은 상기 수신된 외부 오디오 신호에서 상기 제2 오디오 신호를 제거하기 위해 상기 외부 오디오 신호를 처리할 수 있다.
도 4를 참조하면, 상기 오디오 출력 모듈 309는 상기 비선형 필터 303에게 상기 오디오 신호를 송신할 수 있다. 상기 비선형 필터 303은 상기 수신된 오디오 신호를 모델링 할 수 있다. 다양한 실시 예들에서, 상기 비선형 필터 303은 수신된 상기 오디오 신호를 비선형의 속성에 기반하여 모델링 할 수 있다. 상기 비선형 필터 303은 상기 시그모이드(sigmoid) 함수에 관련된 필터를 포함할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형 필터 303와 관련된 시그모이드 함수를 상기 오디오 출력 모듈 309를 통해 출력되는 신호와 상기 출력되는 신호가 상기 경로 401과 같이 상기 오디오 입력 모듈 311을 통해 입력되는 신호에 기반하여 미리 결정할 수 있다. 상기 시그모이드 함수는 비선형의 속성을 포함할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 출력 및 입력되는 신호들에 기반하여, 상기 시그모이드 함수의 파라미터를 실시간으로 추정하여 갱신할 수 있다. 상기 프로세서 120은 다양한 알고리즘에 기반하여 상기 시그모이드 함수의 파라미터를 실시간으로 갱신할 수 있다.
다양한 실시 예들에서, 상기 외부 오디오 신호와 관련된 비선형의 속성은 주파수 대역, 출력되는 신호의 이득(gain), 및/또는 상기 전자 장치 101에 포함된 소자(예: 마이크, 스피커 등)의 실장 상태에 따라 다양하게 나타날 수 있다. 다양한 실시 예들에서, 상기 전자 장치 101은 복수 개의 시그모이드 함수에 기반하여, 다양하고, 가변적인 비선형의 속성을 모델링 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형 필터 303를 통해 모델링 된 신호를 상기 선형 필터 305와 상기 오디오 필터 307에게 송신할 수 있다. 일부 실시 예들에서, 상기 비선형 필터 303은 상기 수신된 오디오 신호를 상기 비선형의 속성에 기반하여 모델링 할 수 있다. 상기 비선형 필터 303은 상기 모델링 된 오디오 신호(이하 비선형 모델링 된 신호)를 상기 선형 필터 305와 상기 오디오 필터 307에게 송신할 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303는 복수 개의 비선형 필터들을 포함할 수 있다. 상기 복수 개의 비선형 필터들은 각각 서로 다른 비선형의 속성을 포함할 수 있다. 예를 들면, 상기 비선형 필터 303은 제1 필터 및 제2 필터를 포함할 수 있다. 상기 제1 필터는 비선형의 제1 속성을 포함할 수 있다. 상기 제2 필터는 제1 속성과 구별되는 비선형의 제2 속성을 포함할 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303은 시그모이드(sigmoid) 함수와 관련된 필터일 수 있으며, 상기 시그모이드 함수를 통해 다양한 비선형의 속성을 나타낼(indicate) 수 있다. 예를 들면, 서로 다른 파라미터(parameter)(또는 계수)를 가지는 복수 개의 시그모이드 함수 각각은 서로 다른 비선형의 속성을 가질 수 있다. 상기 시그모이드 함수는 그래프상에서 S형태의 곡선으로 표시될 수 있다. 이와 관련된 상세한 설명은 도 14를 통해 후술될 것이다.
다양한 실시 예들에서, 상기 비선형 필터 303는, 상기 시그모이드 함수에 기반하여 신호를 모델링 할 수 있다. 상기 비선형 필터 303는 상기 시그모이드 함수에 기반하여 입력된 신호에 비선형의 속성(특징 또는 특성)을 반영할 수 있다. 상기 입력된 신호는 상기 비선형 필터 303에 기반하여 비선형 모델링 될 수 있다. 일부 실시 예들에서, 상기 비선형 필터 303은 복수 개의 비선형 필터들을 포함할 수 있다. 상기 복수 개의 비선형 필터 각각은 서로 다른 비선형의 속성을 포함할 수 있다. 상기 비선형 필터 303는 상기 오디오 신호를 수신하는 경우, 상기 비선형 필터 303는 상기 복수개의 비선형 필터들 각각에게 상기 수신된 오디오 신호를 입력할 수 있다. 상기 비선형 필터 303은 상기 복수 개의 비선형 필터들을 통해 상기 수신된 오디오 신호에 서로 다른 비선형의 속성을 반영할 수 있다. 다양한 실시 예들에서, 상기 비선형 필터 303은 상기 오디오 출력 모듈 309로부터 수신된 오디오 신호를 모델링 한 후, 상기 모델링 된 오디오 신호를 상기 선형 필터 305와 상기 오디오 필터 307에게 송신할 수 있다. 일부 실시 예에서, 상기 비선형 필터 303이 복수 개의 비선형 필터들을 포함하는 경우, 상기 비선형 필터 303은 상기 제1 속성이 반영된 상기 제1 신호 및 상기 제2 속성이 반영된 상기 제2 신호를 상기 선형 필터 305에게 송신할 수 있다. 상기 비선형 필터는 상기 제1 속성이 반영된 상기 제1 신호 및 상기 제2 속성이 반영된 상기 제2 신호를 상기 오디오 필터 307에게 송신할 수 있다.
다양한 실시 예들에서, 상기 선형 필터 305는 비선형의 속성이 반영된 신호를 수신할 수 있다. 상기 선형 필터 305는 상기 수신된 신호를 선형의 속성에 기반하여 모델링 할 수 있다. 상기 선형 필터 305를 통해 상기 수신된 신호는 선형의 속성을 포함할 수 있다. 일부 실시 예들에서, 상기 선형 필터 305는 선형의 속성을 가지는 적응 필터(adaptive filter)일 수 있다. 상기 적응 필터는 입력 값과 출력 값에 기반하여 적응적으로 갱신될 수 있다. 상기 갱신에 기반하여, 상기 적응 필터는 적응적으로 모델링 할 수 있다.
다양한 실시 예들에서, 상기 선형 필터 305는 상기 오디오 출력 모듈 309로부터 상기 오디오 신호를 수신하여 상기 오디오 신호를 모델링 할 수 있다. 상기 선형 필터 305는 선형의 속성을 포함할 수 있으며, 상기 외부 오디오 신호에 포함된 선형의 신호와 관련된 모델링을 수행할 수 있다. 상기 선형 필터 305는 상기 수신된 오디오 신호에 선형의 속성을 반영하여 모델링 할 수 있다.
다양한 실시 예들에서, 상기 선형 필터 305는 복수 개의 시그모이드 함수에 의해 모델링 된 신호를 수신할 수 있다. 시간 축 상에서, 상기 선형 필터 305에 대한 모델링 과정(예: NLMS(normalized least mean square) 필터링)은 적응 필터(adaptive filter)의 신호 처리 과정에 대응될 수 있다. 일부 실시 예들에서, 상기 선형 필터 305에게 수신된 신호가 N개인 경우, 상기 선형 필터의 길이는 1개의 신호에 대한 모델링과 비교하여, N배만큼 길어질 수 있다. 상기 선형 필터 305는 수신된 신호의 수 및/또는 상기 선형 필터 305의 길이에 비례하여 상기 전자 장치 101의 연산량이 증가할 수 있다. 다양한 실시 예들에서, 상기 전자 장치 101의 연산량과 메모리가 제한적인 경우, 상기 선형 필터 305는 상기 수신된 신호 중 적어도 일부를 선택적으로 이용할 수 있다. 예를 들면, 상기 선형 필터 305는 N개의 신호를 수신한 경우, 가장 좋은 성능을 보이는 1개의 시그모이드 함수에 대한 신호를 선택적으로 이용할 수 있다.
다양한 실시 예들에서, 상기 복수 개의 시그모이드 함수에 대한 신호는 주파수 축 상에서 에코를 제거하기 위해 이용될 수 있다. 주파수 축 상에서는 입력된 신호의 수와 관련된 상기 전자 장치 101의 연산량은, 시간 축 상에서 입력된 신호의 수와 관련된 상기 전자 장치 101의 연산량보다 작을 수 있다. 상기 프로세서 120은 주파수 축의 곱하기 연산에 상기 신호와 관련된 연산을 수행하는 것에 의해 연산량을 감소 시킬 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 FFT(fast fourier transform, 고속 푸리에 변환)와 관련된 알고리즘을 이용하여 연산량을 감소시킬 수 있다.
다양한 실시 예들에서, 상기 FFT부(405, 407)는 상기 FFT 및/또는 푸리에(fourier) 변환을 하기 위한 구성을 포함할 수 있다. 상기 FFT 및/또는 상기 푸리에 변환은 시간 축(또는 영역, 도메인)에서의 신호를 주파수 축으로 변환해서 신호를 분석하는 방법일 수 있다.
다양한 실시 예들에서, 상기 FFT부 407는, 상기 비선형 모델링 된 신호를 시간 축으로부터 주파수 축으로 변환할 수 있다. 상기 FFT부 405는, 상기 제2 오디오 신호가 제거 된 외부 오디오 신호를 시간 축으로부터 주파수 축으로 변환할 수 있다.
다양한 실시 예들에서, 상기 FFT에 기반하여 변환된 신호는 N(임의의 수)개의 주파수에 기반하여 구분될 수 있다. 예를 들면, 제1 신호는, 상기 FFT를 통해, 제1 주파수에 대한 제1 신호 및 제2 주파수에 대한 제1 신호로 분해될 수 있다. 일부 실시 예들에서, 상기 FFT 변환된 주파수 축 상의 신호는 N개의 범위로 나누어 질 수 있으며, 각각의 범위는 제1 주파수 내지 제N 주파수일 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 2개 이상의 비선형 필터(sigmoid 함수)들에 대한 출력을 상기 오디오 필터 307 (예: non-linear echo magnitude regression)에 대한 입력으로 이용할 수 있다. 상기 프로세서 120은 상기 비선형 필터들의 개수 만큼 FFT를 수행할 수 있다. 상기 FFT는 상기 선형 필터 305와 관련된 연산(예: NLMS 연산)에 비해 적은 연산량으로 구현될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 신경망(neural network) 또는 신경망 연산이 가능한 필터를 포함할 수 있다. 상기 오디오 필터 307은 주파수 축에 기반하여 수신된 신호를 신경망 모델링 할 수 있다. 예를 들면, 상기 오디오 필터 307은 FFT부 407에 의해 주파수 축으로 변환된 신호에 대해 신경망 모델링을 수행할 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 비선형의 속성을 포함할 수 있다. 상기 비선형의 속성에 기반하여, 상기 오디오 필터 307은 상기 수신된 신호를 신경망 모델링 할 수 있다. 상기 오디오 필터 307을 통해 신경망 모델링 된 신호는 제3 오디오 신호로 지칭될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307는 입력 값과 출력 값에 기반하여 실시간으로 갱신될 수 있다. 상기 오디오 필터 307는 미리 결정된 학습 데이터를 포함할 수 있다. 상기 학습 데이터는 상기 오디오 필터 307의 입력 값과 출력 값에 기반하여 결정될 수 있다. 상기 학습 데이터에 대한 정보에 기반하여, 상기 오디오 필터 307은 출력 값에 대한 오차를 결정할 수 있다. 상기 오차에 기반하여, 상기 오디오 필터 307는 실시간으로 갱신될 수 있다. 상기 오디오 필터 307은 상기 오차를 출력 층으로부터 입력 층으로 전달하는 방법을 통해 상기 오디오 필터 307을 갱신할 수 있다. 일부 실시 예들에서, 상기 오디오 필터 307은 가중치(weight)를 포함할 수 있다. 상기 가중치는 상기 결정된 오차에 기반하여 갱신될 수 있다. 상기 가중치가 갱신되는 것에 기반하여, 상기 오디오 필터 307은 실시간으로 갱신될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 FFT부 405를 통해, 상기 제2 오디오 신호에 대한 처리가 완료된 신호 (이하 1차 처리된 신호)를, 상기 제3 오디오 신호에 대응하는 신호를 제거하기 위해, 시간 축으로부터 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 상기 주파수 축에 대한 신호로 변환된1차 처리된 신호를 주파수 별로 구분할 수 있다. 예를 들면, 상기 프로세서 120은 상기 1차 처리된 신호를 N개의 주파수에 대한 N개의 신호로 구분할 수 있다. 상기 프로세서 120은 상기 N개의 주파수 별로 구분된 1차 처리된 신호로부터(from) 상기 제3 오디오 신호에 대응하는 에코 신호를 제거하기 위한 처리를 수행할 수 있다. 다른 예를 들면, 상기 프로세서 120는, 상기1차 처리된 신호를 제1 주파수에 대한 1차 처리된 신호와 제2 주파수에 대한 1차 처리된 신호로 결정할 수 있다. 상기 제3 오디오 신호는 제1 주파수에 대한 출력 값 및 제2 주파수에 대한 출력 값을 포함할 수 있다. 상기 프로세서 120은 상기 제1 주파수에 대한 1차 처리된 신호로부터 상기 제3 오디오 신호에 포함된 상기 제1 주파수에 대한 출력 값에 대응하는 신호를 제거할 수 있다. 상기 프로세서 120은 상기 제2 주파수에 대한 1차 처리된 신호로부터 상기 제3 오디오 신호에 포함된 상기 제2 주파수에 대한 출력 값에 대응하는 신호를 제거할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제3 오디오 신호를 제거하기 위한 처리가 완료된 신호를 잔류 에코 신호를 제거하기 위한 RES(residual echo suppression) 409로 송신할 수 있다. 도시하지는 않았으나, 상기 프로세서 120은 상기 제3 오디오 신호를 제거하기 위한 처리가 완료된 신호를 잡음을 제거하기 위한 NS(noise suppression)로 송신할 수 있다. 상기 프로세서 120은, 상기 외부 오디오 신호에 에코 신호가 남아있는 경우, RES및/또는 NS를 통해, 잔여(residual) 외부 오디오 신호를 제거할 수 있다.
다양한 실시 예들에서, 도시하지는 않았으나, AEC(acoustic echo cancellation)은 선형 신호를 제거하기 위한 선형 필터 305 부분과 주파수 축 상에서 비선형 신호를 제거하기 위한 부분(예: 비선형 필터 303및 오디오 필터 307)을 포함할 수 있다. 상기 AEC에 의해 처리된 후, 최종으로 남은 잔여 에코 신호는 상기 AEC로부터 NS(noise suppression) 및/또는 RES(residual noise suppression)으로 전달되어 제거될 수 있다.
다양한 실시 예들에서, 상기 RES 409 및 상기 NS는 상기 프로세서120 내에 포함되거나 별개로 존재할 수 있다. 일부 실시 예들에서, 상기 RES 409 및 상기 NS는 상기 전자 장치 101의 다른 구성 요소에 포함될 수 있다. 예를 들면, 상기 RES 409 및 상기 NS는 도 2의 오디오 모듈 170에 포함될 수 있다. 예를 들면, 상기 RES 409 및 상기 NS는 도 2의 오디오 신호 처리기 240의 일부로 포함될 수 있다.
도 4를 통해 서술한, 상기 선형 필터 305, 상기 비선형 필터 303, 상기 FFT(405, 407), 상기 오디오 필터 307, 상기 AEC 403이 수행하는 동작들은 상기 프로세서 120에 의해 수행될 수 있다. 일부 실시 예들에서, 상기 동작들은 상기 메모리 130에 저장된 명령어들을 실행하도록 설정된 상기 프로세서 120에 의해 수행될 수 있다.
도 5는 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 구성의 다른 예를 도시한다.
도 5를 참조하면, 상기 프로세서 120은 제1 필터 303-1와 제2필터 303-2를 포함하는 상기 비선형 필터 303, 상기 선형 필터 305, FFT부(405, 407-1, 407-2), 상기 오디오 필터 307, 및 상기 RES 411을 포함한다. 상기 도 5는 상기 도 4와 관련하여, 중복되는 구성(예를 들면, 상기 오디오 출력 모듈 309, 상기 오디오 입력 모듈 311, 상기 RES 411)을 포함할 수 있다. 상기 중복되는 구성과 관련된 설명은 도 4를 참조할 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303은 비선형의 속성을 가지는 복수 개의 비선형 필터들을 포함할 수 있다. 상기 오디오 출력 모듈 309는 상기 복수 개의 비선형 필터들 각각에게 상기 오디오 신호를 송신할 수 있다. 일부 실시 예들에서, 상기 오디오 출력 모듈 309는 상기 비선형 필터 303에게 상기 오디오 신호를 송신할 수 있다. 상기 비선형 필터 303은 상기 오디오 신호를 복수 개의 비선형 필터 각각에게 송신할 수 있다. 다른 일부 실시 예들에서, 상기 비선형 필터 303은 상기 복수 개의 필터들 중에서 상기 오디오 신호를 모델링 할 적어도 두 개의 필터들을 이용하여 상기 수신된 오디오 신호를 모델링 할 수 있다. 일 실시 예에서, 상기 적어도 두 개의 필터들은 상기 프로세서 120 에 의해 미리 결정될 수 있다.
도 5을 참조하면, 다양한 실시 예들에서, 상기 비선형 필터 303은 비선형의 제1 속성을 가지는 제1 필터 303-1 및 비선형의 제2 속성을 가지는 제2 필터 303-2를 포함할 수 있다. 상기 제1 속성 및 상기 제2 속성은 상기 비선형 필터 303에 대한 파라미터(parameter)에 의해 구분될 수 있다. 예를 들면, 상기 제1 속성에 대한 상기 시그모이드 함수의 계수(또는 파라미터)와 상기 제2 속성에 대한 상기 시그모이드 함수의 계수(또는 파라미터)는 상이할 수 있다.
다양한 실시 예들에서, 상기 오디오 신호는 상기 시그모이드 함수를 통해, 소자(예: 스피커 또는 마이크 등)의 비선형의 속성을 반영할 수 있다. 상기 시그모이드 함수의 파라미터는 상기 소자와 관련된 신호에 기반하여 미리 결정될 수 있다. 일부 실시 예들에서, 상기 시그모이드 함수의 파라미터는 상기 프로세서 101을 통해 실시간으로 추정될 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303은 상기 제1 필터에 의해 상기 수신된 오디오 신호를 상기 제1속성에 기반하여 제1 신호로 모델링 할 수 있다. 상기 비선형 필터 303은 상기 제2 필터에 의해 상기 수신된 오디오 신호를 상기 제2속성에 기반하여 제2 신호로 모델링 할 수 있다.
다양한 실시 예들에서, 상기 선형 필터 305는 상기 비선형 필터 303으로부터 복수 개의 신호를 수신할 수 있다. 예를 들면, 상기 선형 필터 305는 상기 제1 신호 및 상기 제2 신호를 상기 비선형 필터 303으로부터 수신할 수 있다. 상기 비선형 필터 303을 통해 모델링 된 신호는 상기 선형 필터 305의 참조 에코(echo reference) 신호로 이용될 수 있다. 일부 실시 예들에서, 상기 선형 필터 305는 NLMS(Normalized least mean square), AP(affine projection), 및/또는RLS (recursive least square) 중 적어도 하나의 알고리즘이 적용된 적응 필터에 대응될 수 있다. 상기 선형 필터 305는 상기 복수 개의 신호들에 기반하여 상기 수신된 복수 개의 신호들에 선형의 속성을 반영된 신호로 모델링 할 수 있다. 예를 들면, 상기 선형 필터 305는 상기 제1 신호 및 상기 제2 신호를 상기 선형 필터 305의 상기 선형의 속성에 기반하여 모델링 할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형 필터 303를 통해 모델링 된 복수 개의 신호들 중 적어도 일부를 상기 선형 필터 305에게 송신할 수 있다. 다양한 실시 예들에서, 상기 선형 필터 305는 복수 개의 시그모이드 함수에 의해 모델링 된 신호를 입력으로 하여, 시간 축 상에서, 상기 선형 필터 305에 대한 모델링(예: NLMS모델링등)을 할 수 있다. 상기 NLMS 모델링은 일반적인 적응 필터(adaptive filter)의 신호 처리에 대응될 수 있다. 일부 실시 예들에서, 상기 선형 필터 305에게 수신된 신호가 N개인 경우, 상기 선형 필터의 길이는 1개의 신호에 대한 모델링과 비교하여, N배만큼 길어질 수 있다. 상기 선형 필터 305는 수신된 신호의 수 및/또는 상기 선형 필터 305의 길이에 비례하여 상기 전자 장치 101의 연산량이 증가할 수 있다. 다양한 실시 예들에서, 상기 전자 장치 101의 연산량과 메모리가 제한적인 경우, 상기 선형 필터 305는 상기 수신된 신호 중 적어도 일부를 선택적으로 이용할 수 있다. 예를 들면, 상기 선형 필터 305는 N개의 신호를 수신한 경우, 가장 좋은 성능을 보이는 1개의 시그모이드 함수에 대한 신호를 선택적으로 이용할 수 있다. 상기 선형 필터 305는 선형의 속성에 기반하여 선택된 신호를 모델링 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 FFT부 407-1에 기반하여, 상기 제1 필터 303-1을 통해 모델링 된 상기 제1 신호를 상기 시간 축에서 상기 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 상기 FFT부 407-2에 기반하여, 상기 제2 필터 303-2를 통해 모델링 된 상기 제2 신호를 상기 시간 축에서 상기 주파수 축으로 변환할 수 있다. 다양한 실시 예들에서, 상기 외부 오디오 신호와 관련된 비선형의 속성은 주파수 대역, 출력되는 신호의 이득(gain), 및/또는 상기 전자 장치 101에 포함된 소자(예: 마이크, 스피커 등)의 실장 상태에 따라 다양하게 나타날 수 있다. 다양한 실시 예들에서, 상기 전자 장치 101은 복수 개의 시그모이드 함수에 기반하여, 다양하고, 가변적인 비선형의 속성을 모델링 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 FFT부407-1에 기반하여 변환된 상기 제1 신호와 상기 FFT부407-2에 기반하여 변환된 상기 제2 신호를 주파수로 구분할 수 있다. 예를 들면, 상기 제1 신호와 상기 제2 신호는 각각 제1 주파수에 대한 값과 제2 주파수에 대한 값으로 나누어질 수 있다. 상기 프로세서 120은 나누어진 상기 제1 신호(상기 제1 신호의 제1 주파수에 대한 값과 상기 제1 신호의 제2 주파수에 대한 값) 및 나누어진 제2 신호(상기 제2 신호의 제1 주파수에 대한 값과 상기 제2 신호의 제2 주파수에 대한 값)를 상기 오디오 필터 307에게 송신할 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307는 복수개의 오디오 필터들을 포함할 수 있다. 상기 복수 개의 오디오 필터들의 수는 상기 구분된 주파수의 수(N)에 대응될 수 있다. 예를 들면, 상기 구분된 주파수의 수가 N개인 경우 상기 오디오 필터 307은 N개의 오디오 필터를 포함할 수 있다. 일부 실시 예들에서, 상기 오디오 필터 307은 제1 주파수에 대한 제1 오디오 필터 및 제2 주파수에 대한 제2 오디오 필터를 포함할 수 있다. 상기 프로세서 120은 상기 제1 신호의 제1 주파수에 대한 값과 상기 제2 신호의 제1 주파수에 대한 값을 상기 제1 주파수와 관련된 상기 제1 오디오 필터에게 송신할 수 있다. 상기 프로세서 120은 상기 제1 신호의 제2 주파수에 대한 값과 상기 제2 신호의 제2 주파수에 대한 값을 상기 제2 주파수와 관련된 상기 제2 오디오 필터에게 송신할 수 있다. 실시 예들에 따라, 상기 구분된 주파수는 주파수 빈(bin)으로 지칭될 수 있다. 예를 들면, 상기 제1 주파수는 제1 주파수 빈으로 지칭될 수 있다.
도 5을 참조하면, 다양한 실시 예들에서, 상기 오디오 필터 307는 입력 및/또는 출력이 수행되는 복수 개의 노드(node)들을 포함할 수 있으며, 상기 복수 개의 노드들은 계층에 기반하여 연결 될 수 있다. 상기 계층은 입력 층(input layer), 은닉 층(hidden layer), 및 출력 층(output layer)으로 구성될 수 있다. 입력 층과 출력 층은, 은닉 층을 사이에 두고, 서로 연결될 수 있다. 상기 각각의 계층들은 한 개 또는 그 이상의 노드들을 포함할 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 입력 층(노드부, 노드층, 필터부 또는 필터층), 은닉 층(노드부, 노드층, 필터부, 또는 필터층), 및/또는 출력 층(노드부, 노드층, 필터부, 또는 필터층)를 포함할 수 있다. 상기 입력 층, 은닉 층, 및 출력 층는 순차적으로 연결될 수 있다. 일부 실시 예들에서, 상기 입력 층는 복수 개의 입력 노드를 포함할 수 있다. 상기 은닉 층는 적어도 한 개의 은닉 노드를 포함할 수 있다. 상기 출력 층는 적어도 한 개의 출력 노드를 포함할 수 있다. 상기 복수 개의 입력 노드는 상기 적어도 한 개의 은닉 노드와 연결될 수 있다. 상기 적어도 한 개의 은닉 노드는 상기 적어도 한 개의 출력 노드와 연결될 수 있다. 상기 비선형 모델링 된 오디오 신호는 복수 개의 입력 노드 각각으로 송신될 수 있다. 각각의 입력 노드에 송신된 상기 비선형 모델링 된 신호들은 상기 오디오 필터 307에 포함된 입력 층, 은닉 층, 및/또는 출력 층 사이의 연결에 기반하여, 모델링 될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 가중치(weight)(또는 파라미터(parameter))들을 포함할 수 있다. 상기 가중치들은 상기 오디오 필터 307의 알고리즘에 기반하여 조절될 수 있다. 상기 가중치들은 비선형 함수(예를 들면, 시그모이드 함수(sigmoid function), ReLU(rectified Linear Unit, 렐루) 함수 등)에 기반하여 결정된 값일 수 있다. (여기서, 비선형 함수는 비선형 필터에 적용된 비선형 함수와 구분되는 함수일 수 있다)상기 가중치들에 기반하여, 상기 오디오 필터 307은 입력된 값에 비선형의 속성을 반영할 수 있다. 예를 들면, 상기 오디오 필터 307은 입력 값에 비선형 함수들을 근사화(approximating) 할 수 있다. 일부 실시 예들에서, 상기 가중치는 상기 신경망에 포함된 노드들 사이의 연결의 강도(strength)와 관련될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307의 가중치들은 갱신될 수 있다. 상기 가중치들이 갱신되는 것에 기반하여, 상기 오디오 필터 307은 실시간으로 갱신될 수 있다. 일 실시 예에서, 상기 오디오 필터 307가 복수 개의 필터들을 포함할 수 있다. 상기 오디오 필터307이 상기 복수 개의 필터들 각각에 대한 복수 개의 가중치들을 포함하는 경우, 상기 갱신되는 가중치는 상기 복수 개의 가중치들이 갱신되는 것에 기반하여 갱신될 수 있다. 상기 가중치는 상기 복수 개의 가중치들을 나타내기 위한 기능적 표현일 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 상기 오디오 필터 307에 입력되는 값과 상기 오디오 필터 307에 기반하여 출력되는 값에 기반하여 갱신(update)될 수 있다. 상기 오디오 필터 307은 오차역전파법(backpropagation)(또는 오류역전파법)에 기반하여 갱신될 수 있다.
다양한 실시 예들에서, 상기 출력 층는 가중치(weight)(또는 연결 가중치)에 기반하여 상기 은닉 층와 연결될 수 있다. 상기 가중치는 상기 출력 층로부터 상기 은닉 층에게 송신되는 오차에 기반하여 갱신될 수 있다. 상기 오디오 필터 307은 상기 은닉 층에게 송신된 오차를 상기 은닉 층를 거쳐 상기 입력 층에게 송신 할 수 있다. 상기 은닉 층로부터 상기 입력 층는 다른 가중치(another weight)에 기반하여 연결될 수 있다. 상기 다른 가중치는 상기 은닉 층를 거쳐 상기 입력 층에게 송신되는 오차에 기반하여 갱신될 수 있다. 갱신되는 오차에 기반하여, 상기 오디오 필터 307은 실시간으로 및/또는 지속적으로 갱신될 수 있다.
실시 예에 따라, 상기 프로세서 120은 상기 입력되는 값과 상기 출력되는 값에 기반하여 학습 데이터를 미리 결정할 수 있다. 상기 결정된 학습 데이터에 기반하여, 상기 프로세서 120은 실제로 출력되는 출력 값과 학습 데이터를 비교하여 오차를 결정할 수 있다. 상기 오차에 기반하여 상기 프로세서 120은 상기 가중치를 갱신할 수 있다. 다른 실시 예에서, 상기 프로세서 120은 상기 출력 층로부터 상기 입력 층에게 오차를 송신할 수 있다. 예를 들면, 상기 프로세서 120은 상기 출력 값을 결정하는 것에 대응하여, 상기 미리 결정된 학습 데이터 값과 상기 결정된 출력 값을 비교할 수 있다. 상기 프로세서 120은 비교에 기반하여, 상기 프로세서 120의 오차를 결정할 수 있다. 상기 프로세서 120은 상기 오차를 상기 출력 층로부터 상기 은닉 층에게 송신할 수 있다. 상기 송신에 기반하여, 상기 프로세서 120은 상기 오디오 필터 307을 갱신할 수 있다.
다양한 실시 예들에서, 제1 오디오 필터501은 제1 주파수에 대한 값들을 수신할 수 있다. 상기 제1 오디오 필터 501은 복수 개의 입력 노드(또는 필터)들(503-1, 503-2)을 포함할 수 있다. 상기 복수 개의 입력 노드들(503-1, 503-2)을 통해, 상기 제1 오디오 필터 501은 복수 개의 신호들을 수신할 수 있다. 상기 제1 신호 및 상기 제2 신호는 복수 개의 은닉 노드(또는 필터)들(505-1, 505-2)를 통해 출력 노드(또는 필터) 507로 송신될 수 있다. 상기 출력 노드 507을 통해 상기 오디오 필터 307은 제1 출력 값을 결정할 수 있다. 상기 제1 오디오 필터 501은 복수 개의 신호들을 수신할 수 있다. 제2 오디오 필터 502도 상기 제1 오디오 필터 501과 동일한 구성을 포함할 수 있다. 이와 관련된 설명은 도 8a 및 도8b를 통해 후술될 것이다.
다양한 실시 예들에서, 상기 제1 오디오 필터 501은 비선형의 속성을 포함할 수 있다. 상기 제1 오디오 필터 501은 상기 수신된 상기 제1 신호의 제1 주파수에 대한 값과 상기 제2 신호의 제1 주파수에 대한 값을 상기 제1 오디오 필터 501의 속성에 기반하여 모델링 할 수 있다. 상기 제1 오디오 필터 501은 상기 모델링을 통해 제1 출력 값을 결정할 수 있다. 상기 제2 오디오 필터의 구성 및/또는 동작은 상기 제1 오디오 필터 501에 대응될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 선형 필터 305를 통해 모델링 된 신호를 제2 오디오 신호로 결정할 수 있다. 상기 프로세서 120은 상기 제2 오디오 신호에 기반하여, 상기 오디오 입력 모듈 311을 통해 상기 수신된 외부 오디오 신호를 처리할 수 있다. 상기 프로세서 120은 상기 제2 오디오 신호에 대응되는 에코 신호를 상기 수신된 외부 오디오 신호에서 제거 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 처리된 외부 오디오 신호를 상기 시간 축에서 상기 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 상기 주파수 축으로 변환된 상기 처리된 외부 오디오 신호를 주파수 별로 분해할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 처리된 외부 오디오 신호를 주파수의 수에따라 분해할 수 있다. 예를 들면, 주파수의 수가 2개인 경우, 상기 처리된 외부 오디오 신호는 2개의 주파수에 대한 신호로 나뉘어질 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 구분된 주파수 별로 상기 외부 오디오 신호를 처리할 수 있다. 예를 들면, 상기 프로세서 120은 상기 제1 출력 값에 기반하여, 상기 제1 주파수에 대응되는 상기 외부 오디오 신호를 처리할 수 있다. 상기 프로세서 120은 상기 제2 출력 값에 기반하여, 상기 제2 주파수에 대응되는 상기 외부 오디오 신호를 처리할 수 있다. 상기 처리된 각각의 외부 오디오 신호들은 상기 RES 409에게 송신될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 외부 오디오 신호에 잔류되어 있는 잔여 에코 신호를 제거하기 위해, 상기 제1 출력 값 및 상기 제2 출력 값에 기반하여 처리된 외부 오디오 신호들을 상기 RES 409를 통해 처리할 수 있다.
도 6은 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 동작의 예를 도시한다.
도 6을 참조하면, 동작 601에서, 상기 프로세서 120은 상기 오디오 출력 모듈 309을 통해 출력될 제1 오디오 신호를 확인(identify)할 수 있다. 다양한 실시 예들에서, 상기 제1 오디오 신호는 다른 전자 장치로부터 상기 전자 장치 101에게 송신된 신호를 포함할 수 있다. 예를 들면, 상기 제1 오디오 신호는 상기 전자 장치 101과 상기 다른 전자 장치 간의 통화 시, 상기 다른 전자 장치로부터 수신되는 음성 신호를 포함할 수 있다. 일부 실시 예들에서, 상기 제1 오디오 신호는 상기 전자 장치 101 내에서 생성된 오디오 신호를 포함할 수 있다. 예를 들면, 상기 제1 오디오 신호는 상기 전자 장치 101 내에 포함된 음악과 관련된 어플리케이션에 의해 생성되는 오디오 신호를 포함할 수 있다.
동작 603에서, 상기 프로세서 120은 상기 오디오 출력 모듈 309을 통해 상기 제1 오디오 신호를 출력하고, 제1 신호와 제2 신호를 생성할 수 있다. 예를 들면, 상기 프로세서 120은 상기 오디오 출력 모듈 309로 수신된 오디오 신호를 스피커 등을 통해 소리(sound)로 출력하고, 상기 프로세서 120 내에 포함된 복수 개의 비선형 필터들(예: 제1 필터 303-1, 제2 필터 303-2)을 이용하여, 상기 제1 오디오 신호에 기반한 제1 신호 및 상기 제1 오디오 신호에 기반한 제2 신호를 생성할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 비선형의 제1 속성을 포함하는 상기 제1 필터 303-1과 비선형의 제2 속성을 포함하는 상기 제2 필터 303-2를 이용하여, 상기 제1 오디오 신호를 처리할 수 있다. 예를 들면, 상기 프로세서 120은 상기 제1 필터 303-1를 통해 상기 제1 신호를 생성하고, 상기 제2 필터 303-2를 통해 상기 제2 신호를 생성할 수 있다. 상기 제1 필터는 상기 제1 오디오 신호에 상기 비선형의 제1 속성을 반영할 수 있고, 상기 제2 필터는 상기 제1 오디오 신호에 상기 비선형의 제2 속성을 반영할 수 있다.
동작 605에서, 상기 프로세서 120은 상기 오디오 필터 307을 통해 제1 출력 값과 제2 출력 값을 획득할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신호 및 상기 제2 신호를 시간 축으로부터 주파수 축으로 변환할 수 있다. 상기 주파수 축으로 변환된 신호는 각각의 주파수에 대응하는 신호의 크기를 나타내는 값으로 구성될 수 있다. 예를 들면, 상기 제1 신호는 상기 제1 주파수에 대한 크기 값과 상기 제2 주파수에 대한 크기 값을 포함할 수 있다. 상기 제2 신호는 상기 제1 주파수에 대한 크기 값과 상기 제2 주파수에 대한 크기 값을 포함할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신호의 상기 제1 주파수에 대한 크기 값과 상기 제2 신호의 상기 제1 주파수에 대한 크기 값을 제1 가중치가 적용된 오디오 필터(도 5의 제1 오디오 필터 501 에 대응될 수 있다)를 통해 모델링 하여 상기 제1 출력 값을 결정할 수 있다. 상기 프로세서 120은 상기 제1 신호의 상기 제2 주파수에 대한 크기 값과 상기 제2 신호의 상기 제2 주파수에 대한 크기 값을 제2 가중치가 적용된 오디오 필터(도 5의 제2 오디오 필터 502에 대응될 수 있다)를 통해 모델링 하여 상기 제2 출력 값을 결정 할수 있다. 실시 예에 따라, 상기 제1 가중치 및 상기 제2 가중치는 상기 오디오 필터와 관련된 오차를 반영하기 위한 방법(예:오차역전파법)에 기반하여 실시간으로 갱신될 수 있다. 상기 갱신에 기반하여, 상기 프로세서 120은 제1 출력 값과 상기 제2 출력 값에 대한 정확성을 확보할 수 있으며, 적응적인 환경에 도움이 될 수 있다.
동작 607에서, 상기 프로세서 120은 상기 오디오 입력 모듈 311을 통해 상기 출력된 제1 오디오 신호를 포함하는 외부 오디오 신호를 획득할 수 있다. 상기 외부 오디오 신호는 비선형 신호를 더 포함할 수 있다. 상기 비선형 신호는 상기 제1 오디오 신호가 상기 오디오 출력 모듈 309을 통해 출력되는 동안 상기 스피커(또는 음향 출력 장치 155)에 의해 생성될 수 있다. 상기 비선형 신호는 상기 외부 오디오 신호가 상기 오디오 입력 모듈 309을 통해 획득되는 동안 상기 마이크에 의해 생성될 수 있다.
동작 609에서, 상기 프로세서 120은 상기 외부 오디오 신호와 상기 제1 출력 값에 대한 제1 차이 값과 상기 외부 오디오 신호와 상기 제2 출력 값에 대한 제2 차이 값에 기반하여, 제2 오디오 신호를 생성할 수 있다. 다양한 실시 예들에서, 상기 제1 차이 값은 상기 외부 오디오 신호에 포함된 상기 제1 출력 값에 대응되는 에코 신호와 상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값 차이일 수 있다. 상기 제2 차이 값은 상기 외부 오디오 신호에 포함된 상기 제2 출력 값에 대응되는 에코 신호와 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값 차이일 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 제1 차이 값을 상기 제1 주파수에 대한 크기 값으로, 상기 제2 차이 값을 상기 제2 주파수에 대한 크기 값으로 포함하는 상기 제2 오디오 신호를 생성할 수 있다. 다른 일부 실시 예들에서, 상기 제2 오디오 신호는 상기 외부 오디오 신호에서 상기 제1 출력 값에 대응하는 신호와 상기 제2 출력 값에 대응하는 신호에 기반하여 에코 신호의 적어도 일부가 제거된 신호일 수 있다. 상기 제2 오디오 신호는 상기 프로세서 120에 의해 NS 및/또는 RES 에게 송신되어 상기 제 2 오디오 신호에 있는 에코 신호의 다른 적어도 일부(예: 잔류 에코 신호)를 제거될 수 있다.
도 7은 다양한 실시 예들에 따른 복수 개의 비선형 필터들에 기반하여 오디오 신호를 모델링 하기 위한 전자 장치의 동작의 예를 도시한다. 도 7은, 도 6의 동작 603을 보다 구체적으로 도시한다.
동작 701에서, 상기 프로세서 120은 상기 복수 개의 비선형 필터들 중에서 상기 제1 필터 및/또는 상기 제2 필터를 결정할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 스피커 및/또는 상기 마이크와 관련된 비선형 신호를 측정하여, 비선형 함수(예: 시그모이드 함수)를 미리 결정하거나 실시간으로 결정할 수 있다. 상기 프로세서 120은 상기 복수 개의 비선형 필터들 중에서 상기 결정된 시그모이드 함수에 대응되는 필터를 상기 제1 필터 및/또는 상기 제2 필터로 결정할 수 있다. 다양한 실시 예들에서, 상기 제1 필터는 비선형의 제1 속성을 포함할 수 있다. 상기 제2 필터는 비선형의 제2 속성을 포함할 수 있다.
동작 703에서, 상기 프로세서 120은 상기 제1 필터에 기반하여 상기 제1 오디오 신호를 상기 제1 신호로 비선형 모델링 할 수 있다. 상기 제1 신호는 상기 비선형의 제1 속성을 포함할 수 있다.
동작 705에서, 상기 프로세서 120은 상기 제2 필터에 기반하여 상기 제1 오디오 신호를 상기 제2 신호로 비선형 모델링 할 수 있다. 상기 제2 신호는 상기 비선형의 제2 속성을 포함할 수 있다.
동작 707에서, 상기 프로세서 120은 상기 제1 오디오 신호를 상기 오디오 출력 모듈 309를 통해 출력할 수 있다. 상기 프로세서 120은 상기 오디오 출력 모듈 309에 포함된 상기 스피커를 통해 제1 오디오 신호를 출력할 수 있다.
상기 동작 701 내지 상기 동작 705는 전술한 순서(또는 선후 관계)에 한정하는 것은 아니며, 상기 동작 701 내지 상기 동작 705는 순차적으로 또는 병렬적으로 수행되거나, 또는 다른 선후 관계에 따라 수행될 수 있다.
도 8a은 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터를 이용하여 오디오 신호를 모델링 하기 위한 동작의 예를 도시한다. 도 8a는, 도 6의 동작 605를 보다 구체적으로 도시한다.
동작 801에서, 상기 프로세서 120은 도 6의 동작 603에 기반하여 생성된 상기 제1 신호 및 상기 제2 신호를 주파수 축에 대해 모델링 할 수 있다. 다양한 실시 예들에서, 상기 제1 신호 및 상기 제2 신호는 시간 축 상에서 표현되는 신호일 수 있다. 상기 프로세서 120은 상기 제1 신호 및 상기 제2 신호를 상기 시간 축으로부터 상기 주파수 축으로 변환할 수 있다. 상기 주파수 축으로 변경된 상기 제1 신호 및 상기 제2 신호는 특정한 주파수에 대해 특정한 값을 가질 수 있다. 예를 들면, 상기 제1 신호는 제1 주파수에서 신호의 크기에 대한 지정된 값(designated value)(또는 크기 값)을 포함할 수 있다. 상기 제2 신호는 제1 주파수에서 신호의 크기에 대한 다른 지정된 값(또는 크기 값)을 포함할 수 있다.
동작 803에서, 상기 프로세서 120은 제1 신호 및 제2 신호 각각에서(within) 제1 주파수에 관련된 값과 제2 주파수에 관련된 값을 결정할 수 있다. 주파수 축으로 변환된 상기 제1 신호 및 상기 제2 신호는 주파수 별로 대응되는 값들을 포함할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신호의 제1 주파수에 대한 값을 결정할 수 있다. 상기 프로세서 120은 상기 제2 신호의 제1 주파수에 대한 값을 결정할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 제1 신호의 제2 주파수에 대한 값을 결정할 수 있다. 상기 프로세서 120은 상기 제2 신호의 제2 주파수에 대한 값을 결정할 수 있다.
동작 805에서, 상기 프로세서 120은 제1 출력 값과 제2 출력 값을 결정할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신경망을 통해 상기 제1 출력 값을 결정할 수 있고, 상기 제2 신경망을 통해 상기 제2 출력 값을 결정할 수 있다. 상기 제1 신경망은 제1 주파수와 관련된 값들에 대한 신경망 연산을 수행하기 위한 필터일 수 있다. 상기 제2 신경망은 제2 주파수와 관련된 값들에 대한 신경망 연산을 수행하기 위한 필터일 수 있다. 실시 예에 따라, 상기 제1 신경망은 상기 제1 오디오 필터로, 상기 제2 신경망은 상기 제2 오디오 필터에 대응될 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신호의 제1 주파수에 대한 값 및 상기 제2 신호의 제1 주파수에 대한 값을 제1신경망에 기반하여 모델링 할 수 있다. 상기 프로세서 120은 상기 제1 신호의 제2 주파수에 대한 값 및 상기 제2 신호의 제2 주파수에 대한 값을 제2신경망에 기반하여 모델링 할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 주파수와 관련된 신호들을 제1 신경망의 입력(input)으로 결정할 수 있다. 상기 프로세서 120은 상기 제1 신경망을 통해 상기 제1 주파수와 관련된 신호들을 모델링 할 수 있다. 상기 프로세서 120은 상기 모델링에 기반하여 상기 제1 출력 값을 결정할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 제1 신경망에 포함된 비선형의 속성에 기반하여 상기 제1 출력 값을 결정할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제2 주파수와 관련된 신호들을 제2 신경망의 입력(input)으로 결정할 수 있다. 상기 프로세서 120은 상기 제2 신경망을 통해 상기 제2 주파수와 관련된 신호들을 모델링 할 수 있다. 상기 프로세서 120은 상기 모델링에 기반하여 상기 제2 출력 값을 결정할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 제2 신경망에 포함된 비선형의 속성에 기반하여 상기 제2 출력 값을 결정할 수 있다.
도 8b는 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 구성의 예를 도시한다.
도 8b를 참조하면, 다양한 실시 예들에서, 도 8b는 오디오 필터 307가 포함하는 상기 제1 신경망 501 및 상기 제2 신경망 502의 예를 나타낼 수 있다. 다양한 실시 예들에서, 신경망은 주파수 축에서 잔여 비선형 에코 신호의 제거를 위해 이용될 수 있다. 실시 예에 따라, 상기 제1 신경망 501 및 상기 제2 신경망 502은 각각 상기 제1 오디오 필터501 및 상기 제2 오디오 필터 502로 지칭될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터(또는 신경망) 307은 기계 학습 (Machine learning)에 유용한 알고리즘을 구현하기 위한 소프트웨어일 수 있다. 상기 오디오 필터 307은 적응적인(adaptive) 환경에 도움이 될 수 있다. 상기 오디오 필터 307은 "뉴런(Neuron)들", "처리 요소들", "유닛들", 또는 이와 유사하거나 상응하는 용어로 알려진 노드(Node)(또는 인공 노드(Artificial Node)들을 포함할 수 있다. 상기 노드들은 생물학적인 신경망을 모사(mimic)하는 네트워크를 형성하기 위해 연결될 수 있다.
도 8b에서 도시한 바와 같이, 신경망은 복수의 노드들에 의해 구현될 수 있고, 복수의 층들(예: 입력 층 815, 은닉 층 817, 출력 층 819)로 구분될 수 있다. 일 실시 예에 따라, 은닉 층 817은 입력 층 815의 입력 노드와 출력 층 819의 출력 노드 사이에 포함되며, 하나 또는 그 이상의 층들(예: 2개의 은닉 층들)로 구성될 수 있다.
다양한 실시 예들에서는, 신경망을 복수의 서브 신경망(예: 제1 신경망 501, 제2 신경망 502)으로 구분할 수 있다. 예를 들어, 전술된 바와 같이 비선형 모델링에 사용된 시그모이드 함수와 관련된 비선형 필터들의 출력 신호 개수만큼 FFT 연산이 추가되고, FFT 연산에 의해 구분되는 주파수의 단위(예: 주파수 빈)의 개수만큼 신경망을 구분할 수 있다. 일 예로, 2개의 비선형 필터가 사용되는 경우, 2개의 서브 신경망(예: 제1 신경망, 제2 신경망)을 구성할 수 있다. 예를 들면, 주파수 빈 개수만큼 신경망을 분할하고 주파수 사이의 노드들 간 연결을 제거하여 노드들 사이의 계수를 줄일 수 있다. 도 8b에서는 2개의 서브 신경망을 구현되는 경우를 예로 설명한다.
다양한 실시 예들에서는, 신경망을 서브 신경망으로 구분하고, 주파수 별로 대응하는 서브 신경망에 기반하여 입력 값에 대한 모델링을 각각 수행하도록 할 수 있다. 다양한 실시 예들에서는 입력 층 815과 출력 층 819 사이의 은닉 층 817에 대해, 연산량과 메모리 측면 등을 고려하여 은닉 층 817을 제외하거나 또는 하나 이상의 층을 이용하는 것으로 구현할 수 있다. 예를 들어, 입력 층 815과 은닉 층 817을 제외한 층의 개수가 0개 이면, 얕은 신경망(또는 단층 신경망)이라 하며, 1개 이상이면 깊은 신경망(또는 심층/다층 신경망)이라 할 수 있으며, 다양한 실시 예들에서는 하나의 은닉 층을 이용하여 모델링 성능 유지 및 연산량 감소를 구현할 수 있다. 예를 들어, FFT 연산에 의해 구분된 복수 개의 주파수 빈(N개)에 대응하여 서브 신경망을 구분하고, 은닉 층의 은닉 노드들의 수를 줄여 노드들 사이의 연결과 노드들의 개수를 최소로 줄이면서, 잔여 비선형 에코를 제거하기 위한 비선형 모델링 성능을 유지하도록 할 수 있다.
다양한 실시 예들에서, 제1 신경망은 복수 개의 노드(node)들(503-1, 503-2, 505-1, 505-2, 507)을 포함할 수 있다. 상기 복수 개의 필터들은 순차적으로 층을 이루어 배열될 수 있다. 상기 층은 입력 층(또는 노드부, 노드층, 필터부 또는 필터층) 815, 은닉 층 817, 출력 층 819를 포함할 수 있다. 입력 층 815과 출력 층 819는, 은닉 층 817을 사이에 두고, 서로 연결될 수 있다.
다양한 실시 예들에서, 상기 층은 한 개 또는 그 이상의 노드들(예를 들면, 입력 노드, 은닉 노드, 및/또는 출력 노드)을 포함할 수 있다. 상기 입력 층 815는 복수 개의 입력 노드들을 포함할 수 있다. 상기 은닉 층 817은 적어도 한 개의 은닉 노드를 포함할 수 있다. 상기 출력 층 819는 적어도 한 개의 출력 노드를 포함할 수 있다. 도시하지는 않았으나, 상기 제1 신경망은 제1 가중치를 포함할 수 있다. 일부 실시 예들에서, 상기 제1 신경망에 포함된 각각의 노드들은 각각의 가중치를 포함할 수 있다. 상기 제1 가중치는 상기 각각의 노드들에 대한 상기 각각의 가중치들에 기반하여, 제1 신경망에 적용된 평균적인 가중치를 나타내기 위한 기능적 표현일 수 있다.
도 8b를 참조하면, 다양한 실시 예들에서, 상기 제1 신경망은 2개의 입력 노드들(503-1, 503-2), 2개의 은닉 노드들(505-1, 505-2) 및 1개의 출력 노드 507을 포함한다. 상기 프로세서 120은 상기 제1 신호의 제1 주파수에 대한 값 807을 입력 노드503-1에게 입력할 수 있다. 상기 프로세서 120은 상기 제2 신호의 제1 주파수에 대한 값 809을 입력 노드 503-1에게 입력할 수 있다. 상기 입력 노드들(503-1, 503-2)은 각각 수신된 신호에 대한 연산을 수행하고, 신호를 출력할 수 있다.
다양한 실시 예들에서, 도 8b를 참조하면, 상기 프로세서 120은 입력 노드 503-1을 통해 출력된 신호 및 입력 노드 503-2를 통해 출력된 신호를 상기 은닉 노드들(505-1,505-2) 의 입력으로 결정할 수 있다. 상기 은닉 노드들은 각각 수신된 신호에 대한 연산을 수행하고, 신호를 출력할 수 있다. 상기 프로세서 120은 상기 은닉 노드들을 통해 출력된 신호를 상기 출력 노드 507의 입력으로 결정할 수 있다. 상기 출력 노드 507은 입력된 신호에 연산을 수행하여 제1 출력 값을 결정할 수 있다.
다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 신경망과 관련된 오차를 개선할 수 있다. 상기 오차를 개선하기 위해, 상기 프로세서 120은 상기 제1 신경망의 제1 가중치를 갱신할 수 있다. 상기 제1 가중치가 갱신되는 것에 대응하여, 상기 제1 신경망은 갱신될 수 있다. 실시 예에 따라, 상기 프로세서 120은 상기 오디오 필터307는 상기 입력 층 815를 통해 입력되는 값과 상기 출력 층 819를 통해 출력되는 값에 기반하여 학습 데이터를 미리 결정할 수 있다. 상기 학습 데이터는 상기 제1 신경망의 출력 값과 관련하여 오차를 결정하기 위한 기준으로 이용될 수 있다. 예를 들면, 상기 결정된 학습 데이터에 기반하여, 상기 프로세서 120은 제1 출력 값과 상기 결정된 학습 데이터를 비교할 수 있다. 상기 비교에 기반하여, 상기 프로세서 120은 오차를 결정할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 오차역전파법(backpropagation)에 기반하여 상기 제1 신경망을 갱신할 수 있다. 상기 제1 가중치는 상기 입력 층 815 및 상기 은닉 층 817과 관련된 각각의 가중치들을 포함할 수 있다. 상기 가중치들이 갱신되는 것에 기반하여, 상기 제1 가중치는 갱신될 수 있다. 일 실시 예에서, 상기 프로세서 120은 상기 출력 층 819로부터 상기 은닉 층817에게 오차를 송신할 수 있다. 상기 프로세서 120은 상기 오차에 기반하여 상기 은닉 층 817과 관련된 가중치를 갱신할 수 있다. 상기 프로세서 120은 상기 은닉 층 817로부터 상기 입력 층815에게 오차를 송신할 수 있다. 상기 프로세서 120은 상기 오차에 기반하여 상기 입력 층 815와 관련된 가중치를 갱신할 수 있다.
다양한 실시 예들에서, 상기 출력 층 819는 가중치(weight)(또는 연결 가중치) 에 기반하여 상기 은닉 층 817와 연결될 수 있다. 상기 가중치는 상기 출력 층 819로부터 상기 은닉 층 817에게 전달되는 오차에 기반하여 갱신될 수 있다. 상기 오디오 필터 307은 상기 은닉 층에게 전달된 오차를 상기 은닉 층 817을 거쳐 상기 입력 층 815에게 전달 할 수 있다. 상기 은닉 층 817로부터 상기 입력 층는 다른 가중치(another weight)에 기반하여 연결될 수 있다. 상기 다른 가중치는 상기 은닉 층 817을 거쳐 상기 입력 층에게 전달되는 오차에 기반하여 갱신될 수 있다. 갱신되는 오차에 기반하여, 상기 오디오 필터 307은 실시간으로 및/또는 지속적으로 갱신될 수 있다.
다양한 실시 예들에서, 상기 제2 신경망 502는 상기 제1 신경망 501에 대응되는 구성일 수 있다. 상기 구성에 기반하여, 상기 제2 신경망 502는 제1 신호의 제2 주파수에 대한 값 811과 제2 신호의 제2 주파수에 대한 값 813을 수신할 수 있다. 상기 제2 신경망 502는 수신된 제1 신호의 제2 주파수에 대한 값 811과 제2 신호의 제2 주파수에 대한 값 813을 모델링 할 수 있다.
다양한 실시 예들에서, 상기 오디오 필터 307은 상기 제1 신경망 501 및 상기 제2 신경망 502 의 구조에 대응되는 적어도 하나의 다른 신경망을 더 포함 할 수 있다. 상기 오디오 필터 307이 포함하는 신경망의 수는 상술한 예에 한정되지 않는다.
도 9는 다양한 실시 예들에 따른 외부 오디오 신호를 처리하기 위한 전자 장치의 동작의 다른 예를 도시한다.
도 9를 참조하면, 동작 901에서, 상기 프로세서 120은 제1 오디오 신호를 출력할 수 있다. 상기 프로세서 120은 다른 전자 장치로부터 상기 제1 오디오 신호를 수신하여 상기 제1 오디오 신호를 상기 전자 장치 101의 외부로 출력할 수 있다.
동작 903에서 상기 프로세서 120은 상기 제1 오디오 신호를 비선형 모델링 할 수 있다. 상기 프로세서 120은 상기 제1 오디오 신호에 비선형의 속성을 반영하기 위한 모델링 할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 제1 오디오 신호를 비선형의 제1 속성을 가지는 신호와 비선형의 제2 속성을 가지는 신호로 모델링 할 수 있다.
동작 905에서 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 제2 오디오 신호로 선형 모델링 할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 비선형의 제1 속성을 가지는 신호(이하 제1 신호)와 상기 비선형의 제2 속성을 가지는 신호(이하 제2 신호)에 기반하여, 상기 제2 오디오 신호를 생성할 수 있다. 상기 제2 오디오 신호는 선형의 속성을 포함 할 수 있다. 상기 제2 오디오 신호는 비선형의 잔여 속성(상기 비선형 모델링에서 반영되지 않은 잔여 비선형 속성)과 선형의 속성을 모두 포함할 수 있다.
동작 907에서, 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 제3 오디오 신호로 모델링 할 수 있다. 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 신경망 연산에 기반하여, 외부 오디오 신호에서 비선형 에코를 제거하기 위한 제3 오디오 신호로 모델링 할 수 있다.
다양한 실시 예들에서, 상기 비선형 모델링 된 제1 오디오 신호는 시간 축에 대한 신호일 수 있다. 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 상기 시간 축으로부터 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 상기 주파수 축으로 변환된 제1 오디오 신호는 주파수 별(또는 주파수 단위, 주파수 영역)로 구분될 수 있다. 예를 들면, 제1 주파수에 대한 크기 값과 제2 주파수에 대한 크기 값으로 구분될 수 있다. 상기 프로세서 120은 주파수 별로 구분된 제1 오디오 신호를 각각의 주파수와 관련된 신경망에 기반하여 처리할 수 있다. 일 실시 예에서, 각각의 주파수 별로 구분되어 진행되는 신경망 연산은 서로 독립적일 수 있다. 일부 실시 예들에서, 상기 제1 오디오 신호는 상기 제1 신호와 상기 제2 신호를 포함할 수 있다. 상기 프로세서 120은 상기 제1 신호와 상기 제2 신호를 상기 시간 축으로부터 상기 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 상기 주파수 축으로 변환된 상기 제1 신호와 상기 제2 신호를 주파수 별로 구분할 수 있다. 상기 프로세서 120은 주파수 별로 구분된 상기 제1 신호와 주파수 별로 구분된 상기 제2 신호를 각각의 주파수와 관련된 신경망에 기반하여 처리할 수 있다.
동작 909에서, 상기 프로세서 120은 외부 오디오 신호를 수신할 수 있다. 상기 외부 오디오 신호는 상기 동작 901에서 출력된 제1 오디오 신호를 포함할 수 있다. 상기 외부 오디오 신호는 상기 전자 장치 101 내에 포함된 소자들(예: 스피커, 마이크)에 기반하여 생성된 비선형 신호(제거 대상 신호)를 포함할 수 있다.
동작 911에서, 상기 프로세서 120은 상기 외부 오디오 신호를 상기 제2 오디오 신호와 상기 제3 오디오 신호를 이용하여 처리할 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제2 오디오 신호를 제거하기 위한 처리를 할 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제3 오디오 신호를 제거하기 위한 처리를 할 수 있다. 다양한 실시 예들에서, 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제2 오디오 신호에 대응하는 에코 신호와 상기 제3 오디오 신호에 대응하는 에코 신호를 빼주는 방식으로, 에코 신호를 제거하여 타겟 신호만을 출력하도록 할 수 있다.
다양한 실시 예들에서, 상기 제1 오디오 신호, 상기 제2 오디오 신호 및 상기 외부 오디오 신호는 시간 축에 대한 신호일 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제2 오디오 신호에 대응하는 신호를 제거한 후에 상기 외부 오디오 신호를 주파수 축에 대하여 변환할 수 있다. 상기 프로세서 120은 상기 주파수 축에 대해 변환된 외부 오디오 신호에서 상기 제3 오디오 신호에 대응하는 신호를 제거할 수 있다.
다양한 실시 예들에서, 상기 제3 오디오 신호는 복수 개의 출력 값을 포함할 수 있다. 예를 들면, 상기 제3 오디오 신호는 상기 제1 주파수에 대한 상기 제1 출력 값과 상기 제2 주파수에 대한 상기 제2 출력 값을 포함할 수 있다. 상기 프로세서 120은, 제2 오디오 신호에 기반하여 처리된 외부 오디오 신호를 상기 제1 주파수에 대한 값과 상기 제2 주파수에 대한 값으로 결정할 수 있다. 상기 프로세서 120은 상기 제2 오디오 신호에 기반하여 처리된 외부 오디오 신호에서 상기 제3 오디오 신호를 제거하기 위해, 상기 제2 오디오 신호에 기반하여 처리된 외부 오디오 신호를 주파수 별로 구분하여 처리할 수 있다. 예를 들면, 상기 프로세서 120은 상기 제1 주파수에 대한 값을 상기 제1 출력 값을 이용하여 처리할 수 있다. 상기 프로세서 120은 상기 제2 주파수에 대한 값을 상기 제2 출력 값을 이용하여 처리할 수 있다.
상기 동작 905 내지 상기 동작 909는 전술한 순서(또는 선후 관계)에 한정하는 것은 아니며, 상기 동작 905 내지 상기 동작 909는 순차적으로 또는 병렬적으로 수행되거나, 또는 다른 선후 관계에 따라 수행될 수 있다.
도 10은 다양한 실시 예들에 따른 전자 장치에서 외부 오디오 신호를 처리하기 위한 신호의 흐름의 예를 도시한다.
도 10을 참조하면, 상기 전자 장치 101은 오디오 출력 모듈 309, 오디오 입력 모듈 311, 및 프로세서 120을 포함할 수 있다.
동작 1005에서, 상기 프로세서 120은 상기 오디오 출력 모듈 309에게 제1 오디오 신호를 송신할 수 있다. 상기 프로세서 120은 상기 제1 오디오 신호를 상기 오디오 출력 모듈 309를 통해 출력되는 신호로 결정함에 따라, 상기 동작 1005를 수행할 수 있다. 일부 실시 예들에서, 상기 제1 오디오 신호는 상기 전자 장치 101 내에서 생성된 신호일 수 있다. 다른 일부 실시 예들에서, 상기 제1 오디오 신호는 다른 전자 장치로부터 수신된 신호일 수 있다.
동작 1006에서, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 수신할 수 있다. 상기 제1 오디오 신호는 상기 오디오 출력 모듈 309를 통해 출력되기 위한 신호일 수 있다. 상기 제1 오디오 신호는 아날로그 신호(예: 음성)를 디지털 표현(또는 디지털 코드)으로 나타내는 PCM(pulse code modulation) 신호의 형태일 수 있다.
동작 1007에서, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 스피커를 통해 외부로 출력할 수 있다. 다양한 실시 예들에서, 외부로 출력되는 상기 제1 오디오 신호는 상기 오디오 입력 모듈 311의 마이크를 통해 타겟 신호(예: 사용자의 음성에 대응하는 신호)와 함께 유입될 수 있다.
동작 1009에서, 상기 프로세서 120은 상기 제1 오디오 신호를 비선형 모델링 할 수 있다. 상기 비선형 모델링에 기반하여, 상기 제1 오디오 신호는 비선형의 속성을 포함할 수 있다.
동작 1011에서, 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 제2 오디오 신호로 선형 모델링 할 수 있다. 상기 선형 모델링에 기반하여, 상기 제2 오디오 신호는 선형의 속성을 포함할 수 있다.
동작 1013에서, 상기 프로세서 120은 상기 비선형 모델링 된 제1 오디오 신호를 제3 오디오 신호로 신경망 모델링 할 수 있다. 상기 신경망 모델링에 기반하여 상기 제3 오디오 신호는 신경망과 관련된 속성을 포함할 수 있다. 상기 신경망은 비선형의 속성을 포함할 수 있다.
동작 1015에서, 상기 오디오 입력 모듈 311은 상기 제1 오디오 신호를 포함하는 상기 외부 오디오 신호를 수신할 수 있다. 상기 오디오 입력 모듈 311은, 상기 마이크를 통해, 상기 제1 오디오 신호를 포함하는 상기 외부 오디오 신호를 수신할 수 있다.
동작 1016에서, 상기 오디오 입력 모듈 311은 상기 수신된 외부 오디오 신호를 상기 프로세서 120에게 송신할 수 있다. 상기 외부 오디오 신호는 상기 오디오 출력 모듈 309를 통해 출력되어 상기 오디오 입력 모듈 311로 유입되는 상기 제1 오디오 신호와 사용자에 의해 입력되는 타겟 신호를 포함할 수 있다.
동작 1017에서, 상기 프로세서 120은 상기 제2 오디오 신호 및 상기 제3 오디오 신호에 기반하여, 상기 외부 오디오 신호를 처리할 수 있다. 상기 프로세서 120은 상기 외부 오디오 신호로부터 상기 제2 오디오 신호에 대응하는 신호(예: 선형 속성을 갖는 에코 신호) 및 상기 제3 오디오 신호에 대응하는 신호(예: 비선형 속성을 갖는 에코 신호)를 제거하기 위해, 상기 외부 오디오 신호를 처리할 수 있다. 일부 실시 예들에서, 상기 프로세서 120은 상기 제2 오디오 신호와 관련된 처리 및 상기 제3 오디오와 관련된 처리를 순차적으로 수행할 수 있다. 예를 들면, 상기 프로세서 120은 상기 제2 오디오 신호와 관련된 처리가 완료된 후에, 상기 제3 오디오와 관련된 처리를 시작할 수 있다. 다른 일부 실시 예들에서, 상기 프로세서 120은 상기 제2 오디오 신호와 관련된 처리가 완료된 후에, 상기 처리된 외부 오디오 신호를 상기 시간 축으로부터 상기 주파수 축으로 변환할 수 있다. 상기 프로세서 120은 주파수 축으로 변환된 외부 오디오 신호를 상기 제3 오디오 신호에 기반하여 처리할 수 있다.
도 11은 다양한 실시 예들에 따른 전자 장치에서 외부 오디오 신호를 처리하기 위한 신호의 흐름의 다른 예를 도시한다.
도 11을 참조하면, 상기 전자 장치 101은 상기 오디오 입력 모듈 311, 상기 신경망 307, 상기 선형 필터 305, 상기 비선형 필터 303, 및 상기 오디오 출력 모듈 309를 포함할 수 있다. 실시 예에 따라, 상기 신경망 307은 상기 오디오 필터 307에 대응될 수 있다. 다양한 실시 예들에서, 구성요소들(예: 상기 오디오 입력 모듈 311, 상기 신경망 307, 상기 선형 필터 305, 상기 비선형 필터 303, 또는 상기 오디오 출력 모듈 309) 각각은 동작의 수행을 위한 보조 프로세서를 포함할 수 있다. 실시 예에 따라, 상기 구성요소들 각각은 보조 프로세서와 연결되어 동작을 수행할 수 있다.
동작 1101에서, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 수신할 수 있다. 다양한 실시 예들에서, 상기 제1 오디오 신호는 상기 프로세서 120에 기반하여, 상기 오디오 출력 모듈 309를 통해 출력되기에 적합한 신호로 변환된 신호일 수 있다. 상기 변환된 신호(예: 상기 제1 오디오 신호)는, 상기 오디오 출력 모듈 309를 통해 출력되기 위해, 상기 프로세서 120으로부터 상기 오디오 출력 모듈 309에게 송신될 수 있다. 상기 제1 오디오 신호는 아날로그 신호(예: 음성)를 디지털 표현(또는 디지털 코드)으로 나타내는 PCM(pulse code modulation) 신호의 형태일 수 있다.
동작 1102에서, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 상기 비선형 필터 303에게 송신할 수 있다. 다양한 실시 예들에서, 상기 오디오 출력 모듈 309는 상기 오디오 출력 모듈 309를 통해 출력될 신호인, 상기 제1 오디오 신호를 상기 비선형 필터 303에게 송신할 수 있다. 일부 실시 예들에서, 상기 제1 오디오 신호가 출력되도록 결정하는 것에 기반하여, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 상기 비선형 필터 303에게 송신할 수 있다. 상기 비선형 필터 303가 복수 개의 비선형 필터를 포함하는 경우, 상기 오디오 출력 모듈 309는 상기 복수 개의 비선형 필터 각각에게 상기 제1 오디오 신호를 송신할 수 있다.
동작 1103에서, 상기 오디오 출력 모듈 309는 상기 제1 오디오 신호를 스피커를 통해 외부로 출력할 수 있다. 상기 동작 1103은 상기 동작 1102와 병렬적으로, 또는 순서에 무관하게 수행될 수 있다. 다양한 실시 예들에서, 외부로 출력되는 상기 제1 오디오 신호는 상기 오디오 입력 모듈 311의 마이크를 통해 타겟 신호(예: 사용자의 음성에 대응하는 신호)와 함께 유입될 수 있다.
동작 1105에서, 상기 비선형 필터 303은 상기 수신된 제1 오디오 신호를 비선형 모델링 할 수 있다. 상기 비선형 모델링에 의해, 상기 제1 오디오 신호는 비선형의 속성을 포함할 수 있다.
동작 1106-1에서, 상기 비선형 모델링 된 제1 오디오 신호는 상기 비선형 필터 303으로부터 상기 신경망 307에게 송신될 수 있다. 동작 1106-2에서, 상기 비선형 모델링 된 제1 오디오 신호는 상기 비선형 필터 303으로부터 상기 선형 필터 305에게 송신될 수 있다. 실시 예에 따라, 상기 동작 1106-1과 상기 동작 1106-2는 병렬적으로, 또는 순서와 무관하게 수행될 수 있다.
도시하지는 않았으나, 다양한 실시 예들에서, 상기 전자 장치 101은 FFT 처리를 하기 위한 FFT 부를 더 포함할 수 있다. 상기 FFT 부는, 상기 비선형 필터 303에 의해 상기 제1 오디오 신호가 비선형 모델링 된 후, 상기 비선형 모델링 된 제1 오디오 신호를 상기 시간 축으로부터 상기 주파수 축으로 변환할 수 있다. 상기 FFT 부는 주파수 축으로 변환된 외부 오디오 신호를 상기 선형 필터 305와 상기 신경망 307 에게 병렬적으로, 또는 순서와 무관하게 송신할 수 있다.
동작 1107에서, 상기 선형 필터 305는 상기 비선형 모델링 된 제1 오디오 신호를 제2 오디오 신호로 선형 모델링 할 수 있다. 상기 선형 모델링에 기반하여, 상기 제2 오디오 신호는 선형의 속성을 포함할 수 있다.
동작 1109에서, 상기 신경망 307은 상기 비선형 모델링 된 제1 오디오 신호를 제3 오디오 신호로 신경망 모델링 할 수 있다. 상기 신경망 모델링에 기반하여 상기 제3 오디오 신호는 신경망과 관련된 속성을 포함할 수 있다. 상기 신경망은 비선형의 속성을 포함할 수 있다.
동작 1110에서, 상기 오디오 입력 모듈 311은 동작 1103에서 상기 오디오 출력 모듈 309를 통해 출력된 상기 제1 오디오 신호를 포함하는 상기 외부 오디오 신호를 수신할 수 있다. 상기 외부 오디오 신호는 비선형 신호를 더 포함할 수 있다. 상기 비선형 신호는 상기 전자 장치 101 내에 포함된 소자 등에 기반하여 생성된 신호일 수 있다. 다양한 실시 예들에서, 상기 동작 1110은 도 10의 동작 1015에 대응될 수 있다.
동작 1111에서, 상기 오디오 입력 모듈 311을 통해 수신된 상기 수신된 외부 오디오 신호는 상기 선형 필터 305에게 송신될 수 있다. 다양한 실시 예들에서, 상기 동작 1111은 도 10의 동작 1016에 대응될 수 있다.
동작 1112에서, 상기 선형 필터 305는 상기 제2 오디오 신호에 기반하여, 상기 수신된 외부 오디오 신호를 처리할 수 있다. 상기 선형 필터 305는 상기 수신된 외부 오디오 신호로부터 상기 제2 오디오 신호에 대응하는 신호(예: 선형 속성을 갖는 에코 신호)를 제거하기 위해, 상기 외부 오디오 신호를 처리할 수 있다.
동작 1113에서, 상기 선형 필터 305를 통해 상기 처리된 외부 오디오 신호는 상기 신경망 307에게 송신될 수 있다. 상기 선형 필터 305를 통해 상기 제2 오디오 신호에 대응하는 신호(예: 선형 속성을 갖는 에코 신호)를 제거하기 위한 처리가 수행된 외부 오디오 신호는 상기 신경망 307에게 송신될 수 있다.
동작 1114에서, 상기 신경망 307은 상기 선형 필터 305로부터 상기 처리된 외부 오디오 신호를 수신할 수 있다. 상기 신경망 307은 상기 동작 1109의 상기 제3 오디오 신호에 기반하여, 상기 수신된 외부 오디오 신호를 처리할 수 있다. 상기 신경망 307은 상기 외부 오디오 신호로부터 상기 제3 오디오 신호에 대응하는 신호(예: 비선형 속성을 갖는 에코 신호)를 제거하기 위한 처리를 수행할 수 있다.
도시하지는 않았으나, 다양한 실시 예들에서, 상기 FFT 부는, 상기 선형 필터 305에 의해 상기 제2 오디오 신호와 관련된 처리가 완료된 후에, 상기 처리된 외부 오디오 신호를 상기 시간 축으로부터 상기 주파수 축으로 변환할 수 있다. 상기 신경망 307은 주파수 축으로 변환된 외부 오디오 신호를 상기 제3 오디오 신호에 기반하여 처리할 수 있다.
도시하지는 않았으나, 다양한 실시 예들에 따라, 동작 1111 및 동작 1113은 상기 프로세서 120에 의해 수행될 수 있다. 상기 동작 1110 에 개시된 외부 오디오 신호는 상기 프로세서 120에게 송신될 수 있다.
도시하지는 않았으나, 다양한 실시 예들에서, 상기 선형 필터 305와 상기 비선형 필터 303은 상기 AEC에 포함될 수 있다. 상기 AEC는 상기 동작 1111을 수행할 수 있다. 상기 AEC는 상기 동작 1111에 기반하여 처리된 상기 외부 오디오 신호를 상기 신경망 307 또는 상기 프로세서 120에게 송신할 수 있다. 상기 신경망 307 또는 상기 프로세서 120은 상기 외부 오디오 신호를 상기 제3 오디오 신호에 기반하여 처리할 수 있다. 상기 신경망 307 또는 상기 프로세서 120은 상기 외부 오디오 신호에서 상기 제3 오디오 신호를 제거하기 위하여 상기 외부 오디오 신호를 처리할 수 있다.
도 12는 다양한 실시 예들에 따라 오디오 신호, 외부 오디오 신호, 및/또는 비선형 필터에 의해 모델링 된 신호의 예를 도시한다.
다양한 실시 예들에서, 상기 오디오 신호는 상기 제1 오디오 신호, 상기 통신 모듈 190을 통해 다른 전자 장치로부터 상기 전자 장치 101에게 송신된 신호, 및/또는 상기 오디오 출력 모듈 309에 의해 출력될 오디오 신호에 대응될 수 있다. 상기 외부 오디오 신호는 상기 오디오 입력 모듈 311에 의해 감지된 신호, 상기 오디오 입력 모듈 311을 통해 수신된 신호, 상기 오디오 신호의 반향, 및/또는 상기 오디오 신호의 에코 등에 대응될 수 있다. 상기 비선형 필터에 의해 모델링 된 신호는 상기 비선형 필터 303이 복수 개의 비선형 필터들을 포함하고 있는 경우, 상기 복수 개의 비선형 필터들 중 하나에 대해 모델링 된 신호일 수 있다.
도 12를 참조하면, 그래프 1203은 상기 오디오 출력 모듈 309를 통해 출력될 오디오 신호의 파형을 도시할 수 있다. 그래프 1205는 상기 오디오 입력 모듈 311이 수신한 상기 외부 오디오 신호의 파형을 도시할 수 있다. 그래프 1207은 상기 비선형 필터 303을 통해 모델링 된 신호의 파형을 도시할 수 있다. 상기 그래프 1203, 상기 그래프 1205, 및 상기 그래프 1207 x축은 시간(time)을 나타낼 수 있고, y 축은 주파수(frequency)를 나타낼 수 있다. 상기 그래프 1203, 상기 그래프 1205, 및 상기 그래프 1207은 신호의 스펙트럼을 사진으로 찍어 나타내는 스펙트로그램(spectrogram)일 수 있다.
도 12를 참조하면, 다양한 실시 예들에서, 상기 그래프 1201에서 상기 그래프 1205와 관련된 상기 외부 오디오 신호는 상기 그래프 1203과 관련된 상기 오디오 신호에 없던 신호를 더 포함할 수 있다. 상기 외부 오디오 신호는 고대역의 하모닉(harmonic) 신호를 포함할 수 있다. 상기 고대역의 하모닉 성분은 비선형 신호일 수 있다. 도 12에서 도시된 바와 같이, 상기 그래프 1207과 관련된 상기 비선형 필터에 의해 모델링 된 신호는 상기 외부 오디오 신호의 특성을 반영할 수 있다.
그래프 1201은 상기 오디오 신호, 상기 외부 오디오 신호, 및 상기 비선형 필터에 의해 모델링 된 신호를 포함한다. 상기 그래프 1201에 도시된 상기 오디오 신호는 상기 그래프 1203을 시간 축 상에서 상기 주파수 축 상으로 변환한 신호일 수 있다. 상기 그래프 1201에 도시된 상기 외부 오디오 신호는 상기 그래프 1205를 시간 축 상에서 상기 주파수 축 상으로 변환한 신호일 수 있다. 상기 그래프 1201에 도시된 상기 비선형 필터에 의해 모델링 된 신호는 상기 그래프 1207을 시간 축 상에서 상기 주파수 축 상으로 변환한 신호일 수 있다. 상기 그래프 1201을 참조하면, 상기 그래프 1203에 대한 곡선보다 상기 그래프 1207에 대한 곡선이 상기 그래프 1205에 대한 곡선을 더 명확히 반영할 수 있다. 실시 예에 따라, 상기 그래프 1201 x축은 주파수를 나타낼 수 있고, y 축은 신호의 크기(magnitude)를 나타낼 수 있다.
도 13은 다양한 실시 예들에 따라 비선형의 속성을 반영하기 위한 시그모이드(sigmoid) 함수(function)의 예를 도시한다.
도 13을 참조하면, 다양한 실시 예들에서, 상기 시그모이드 함수는 그래프 1301, 그래프 1303, 그래프 1305중 적어도 하나를 포함할 수 있다. 상기 시그모이드 함수는 하기의 수학식과 같이 결정될 수 있다.
여기서, sigmoid(x)는 시그모이드 함수를 나타내고 e는 자연로그의 밑인 근삿값 2.718281828…인, 무리수 e를 나타내며, a와 b는 임의의 수를 나타낸다. 상기a와 상기 b를 통해 상기 시그모이드 함수의 속성이 결정될 수 있다. 상기a와 상기 b는 상기 시그모이드 함수의 파라미터(parameter)일 수 있다.
그래프 1301에서, 상기 a는 2.5이고, 상기 b는 1일 수 있다. 그래프 1303에서, 상기 a는 4이고, 상기 b는 0.5일 수 있다. 그래프 1305에서, 상기 a는 20이고, 상기 b는 0.1일 수 있다. 상기 그래프 1301은 입력되는 신호와 출력되는 신호 사이의 변화가 상기 그래프들(1301, 1303, 1305) 중에서 가장 적을 수 있다. 상기 그래프 1305는 입력되는 신호와 출력되는 신호 사이의 변화가 상기 그래프들(1301, 1303, 1305) 중에서 가장 클 수 있다.
다양한 실시 예들에서, 상기 비선형 필터 303은 복수 개의 비선형 필터들을 포함할 수 있다. 상기 복수 개의 비선형 필터들은 각각 다른 시그모이드 함수로 표현될 수 있다.
도 14는 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 예를 도시한다.
그래프 1401은 상기 오디오 출력 모듈 309에 의해 출력될 오디오 신호를 나타낼 수 있다. 상기 오디오 신호는 상기 오디오 출력 모듈 309에 의해 식별된 신호일 수 있다. 실시 예에 따라, 상기 오디오 신호는 전자 장치를 통해 통화를 하는 경우, 다른 전자 장치를 통해 수신한 다른 전자 장치의 사용자의 음성 신호일 수 있다.
그래프 1403은 상기 오디오 입력 모듈 311을 통해 입력되는 상기 전자 장치 101 외부의 소리 신호들을 나타낼 수 있다. 상기 외부의 소리 신호들은 상기 외부 오디오 신호, 상기 전자 장치 101 사용자의 음성 신호를 포함할 수 있다. 실시 예에 따라, 상기 전자 장치 101의 사용자가 스피커폰 모드로 통화를 하는 경우, 상기 오디오 출력 모듈 309는 다른 전자 장치의 사용자의 음성 신호를 출력할 수 있다. 상기 외부 오디오 신호는 상기 출력된 음성 신호가 상기 오디오 입력 모듈 311을 통해 수신된 신호일 수 있다.
그래프 1405는 상기 전자 장치 101에 상기 비선형 필터 303이 포함되지 않는 경우, 상기 선형 필터 305에 의해 처리된 상기 그래프 1401의 오디오 신호를 나타낼 수 있다. 상기 그래프 1401은 선형의 속성이 모두 반영된 신호일 수 있다.
그래프 1407은 상기 비선형 필터 303과 상기 선형 필터 305에 의해 처리된 상기 그래프 1401의 신호를 나타낼 수 있다. 상기 그래프 1401은 비선형의 속성과 선형의 속성이 모두 반영된 신호일 수 있다.
실시예에 따라, 상기 그래프 1401 내지 상기 그래프 1407의 x축은 시간(time)을 나타낼 수 있고, y 축은 신호의 진폭 (amplitude) 을 나타낼 수 있다.
구간 1409-1, 구간 1409-2, 구간 1409-3은. 출력된 다른 전자 장치의 사용자(이하 원단 화자)의 음성 신호만 포함하는 구간일 수 있다. 상기 원단 화자의 음성 신호는 상기 외부 오디오 신호일 수 있다. 다양한 실시 예들에 따른 상기 전자 장치 101은 상기 구간 1409-1, 상기 구간 1409-2, 상기 구간 1409-3에서, 상기 원단 화자의 음성 신호를 제거할 수 있다. 상기 구간 1409-1, 상기 구간 1409-2, 상기 구간 1409-3에서, 상기 그래프 1407은 상기 그래프 1405보다 상기 원단 화자의 음성 신호를 효과적으로 제거하였음을 나타낼 수 있다.
구간 1411은, 상기 전자 장치 101의 사용자(이하 근단 화자)의 음성 신호만 포함하는 구간일 수 있다. 예를 들면, 상기 전자 장치 101이 스피커폰 모드로 통화를 하는 경우, 상기 구간 1411은 상기 근단 화자만 말하는(speaking) 구간일 수 있다. 상기 구간 1411에서, 상기 그래프 1401과 상기 그래프 1403을 비교하면, 상기 근단 화자의 음성 신호만 존재하기 때문에, 상기 그래프 1403만 신호를 포함할 수 있다. 다양한 실시 예들에서, 상기 전자 장치 101은 상기 근단 화자의 음성 신호를 다른 전자 장치에게 송신할 수 있다. 상기 근단 화자의 음성 신호는 상기 다른 전자 장치에게 왜곡(distortion)없이 송신되어야 한다.
구간 1413은, 상기 원단 화자의 음성 신호와 상기 근단 화자의 음성 신호를 모두 포함하는 구간일 수 있다. 구간 1413에서, 상기 전자 장치 101은 상기 원단 화자의 음성 신호를 제거할 수 있다. 다양한 실시 예들에 다른 상기 전자 장치 101은 상기 원단 화자의 음성 신호는 제거하고, 상기 근단 화자의 음성 신호만을 상기 다른 전자 장치에게 송신할 수 있다.
도 15는 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 예를 도시한다.
도 15를 참조하면, 다양한 실시 예들에서, 필터들(1501, 1503, 1505, 1507)은 다양한 방식으로 입력 값들을 모델링(또는 필터링) 할 수 있다. 여기서 입력 값은 주파수축으로 변환된 신호에 대한 값일 수 있다. 상기 입력 값들은 각각 필터의 입력 노드들에 입력될 수 있다. 상기 입력에 기반하여, 상기 입력 값들은 모델링 될 수 있다. 예를 들면, 상기 필터들(1501, 1503, 1505, 1507)은 신경망 연산에 기반하여, 입력된 신호에 대한 모델링을 수행할 수 있다. 상기 필터들의 입력 노드들로부터 상기 필터들의 출력 노드들에게 상기 입력된 신호들이 전송되는 동작에 기반하여, 상기 필터들은 상기 신경망 연산을 수행될 수 있다.
다양한 실시 예들에서, 도 15의 입력층에 포함된 노드들의 개수는 상기 오디오 필터 307에 포함된 복수 개의 오디오 필터들의 개수에 대응될 수 있다.
다양한 실시 예들에서, 상기 오디오 필터에 기반하여 크기(magnitude) 모델링을 수행할 수 있다. 상기 크기 모델링은, 상기 수신된 신호를 시간 축으로부터 주파수 축으로 변환하는 것에 기반하여, 각각의 주파수에 대응되는 크기로 상기 수신된 신호를 나타내는 동작을 포함할 수 있다.
상기 필터 1501은, 다양한 실시 예들에서, 선형 크기 회귀(linear magnitude regression)에 대한 필터를 나타낼 수 있다. 상기 필터 1501은 입력되는 주파수에 대응하여 각각의 주파수에 대한 모델링을 수행 할 수 있다.
상기 필터 1503은, 다양한 실시 예들에서, 지정된(designated) 주파수를 모델링 하기 위해 전체 주파수에 대한 입력을 고려하여 비선형의 특징을 모델링 할 수 있다.
상기 필터 1505는, 다양한 실시 예들에서, 지정된 주파수를 모델링 하기 위해, 일부의 주파수에 대한 입력을 고려하여 비선형의 특징을 모델링 할 수 있다. 상기 필터 1505은 상기 필터 1501과 상기 필터 1503의 중간 형태일 수 있다.
상기 필터 1507는, 입력 노드와 출력 노드 사이에 은닉 노드를 포함할 수 있다. 다양한 실시 예들에서, 상기 필터 1507은, 주파수를 모델링 하기 위해 상기 입력 노드 및 상기 은닉 노드를 통해 입력되는 전체 주파수를 고려하여 비선형의 특징을 모델링 할 수 있다. 상기 필터 1507은 입력되는 신호에 비선형의 특징을 효과적으로 모델링 할 수 있다.
다양한 실시 예들에서, 상기 오디오 필터는 필터 1501, 필터 1503, 필터 1505, 필터 1507 중 하나에 대응될 수 있다.
도 16은 다양한 실시 예들에 따른 전자 장치에 포함된 오디오 필터의 다른 예를 도시한다.
도 16을 참조하면, 다양한 실시 예들에서, 상기 오디오 필터 303은 복수 개의 오디오 필터들을 포함할 수 있다. 상기 복수 개의 오디오 필터들은 필터 1601, 필터 1602, 필터 1603 중 하나에 상응하는 구성일 수 있다. 예를 들면, 상기 제1 오디오 필터는 필터 1601, 필터 1602, 필터 1603 중 하나에 대응될 수 있다. 상기 필터 1601, 상기 필터 1602, 상기 필터 1603에 대한 입력은 주파수 별로 구분되어 입력될 수 있다.
다양한 실시 예들에서, 상기 주파수 별로 구분되어 입력된 신호들은 입력 노드, 은닉 노드, 출력 노드를 통해 제1 출력 값으로 모델링 될 수 있다. 도 16에 도시된 상기 필터 1601, 상기 필터 1602, 및/또는 상기 필터 1603은 상기 입력 노드에 입력된 신호들을 모델링하기 위한 다양한 방법을 나타낸다. 상기 필터 1601, 상기 필터 1602, 및/또는 상기 필터 1603은 상기 입력된 신호들에 비선형의 속성을 효과적으로 모델링 할 수 있다. 상기 모델링은 신경망 연산으로 지칭될 수 있다.
도 17은 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 다른 예를 도시한다. 도 17의 도시된 그래프들은, 도 14의 그래프 1407에 대한 예들을 포함할 수 있다. 도 17을 참조하면, 상기 비선형 필터 303에 기반하여 처리된 신호들을 포함한다.
다양한 실시 예들에서, 그래프들이 나타내는 신호는, 상기 에코 신호를 제거하기 위한 처리가 완료된 후 남은 잔여 에코 (residual echo)를 포함하는 신호일 수 있다.
그래프 1701은, 다양한 실시 예들에 따라, 상기 비선형 필터 303이 1개의 비선형 필터를 포함하는 경우, 상기 1개의 비선형 필터 및 상기 선형 필터 305에 기반하여 모델링 된 외부 오디오 신호를 도시한다.
그래프 1703은, 다양한 실시 예들에 따라, 상기 비선형 필터 303이 2개의 비선형 필터를 포함하는 경우, 상기 2개의 비선형 필터 및 상기 선형 필터 305에 기반하여 모델링 된 외부 오디오 신호를 도시한다.
그래프 1705는, 다양한 실시 예들에 따라, 상기 비선형 필터 303이 3개의 비선형 필터를 포함하는 경우, 상기 3개의 비선형 필터 및 상기 선형 필터 305에 기반하여 모델링 된 외부 오디오 신호를 도시한다.
그래프 1705는, 다양한 실시 예들에 따라, 상기 비선형 필터 303이 3개의 비선형 필터 및 상기 오디오 필터 307을 포함하는 경우, 상기 3개의 비선형 필터, 상기 선형 필터 305 및 상기 오디오 필터 307에 기반하여 모델링 된 외부 오디오 신호를 도시한다.
도 17을 참조하면, 그래프 1705 내지 1708은, 구간 1709-1에서, 상기 그래프 1701 내지 1704에 포함된 신호들을 도시한다. 상기 그래프 1705 내지 1708을 비교하면, 상기 그래프 1705 내지 1708중에서, 상기 그래프 1708는 상기 외부 오디오 신호를 가장 효과적으로 제거된 신호를 개시한다.
도 18는 다양한 실시 예들에 따른 전자 장치에 대한 신호들의 또 다른 예를 도시한다.
도 18을 참조하면, 그래프 1801 내지 그래프 1804는 도 17의 그래프 1701 내지 1707의 일부를 확대하여 도시한다. 다양한 실시 예들에서, 그래프 1801 내지 1804는 1초 (1s) 동안에서의 신호를 나타낼 수 있다. 상기 그래프 1801 내지 1804를 비교하면, 그래프 1804를 통해 개시되는 신호가 상기 외부 오디오 신호를 가장 잘 모델링 된 신호일 수 있다.
다양한 실시 예들에서, 그래프들이 나타내는 신호는, 상기 외부 오디오 신호를 제거하기 위한 처리가 완료된 후 남은 잔여 에코(residual echo)를 포함하는 신호일 수 있다.
그래프 1805 내지 1808은 상기 그래프 1801 내지 1804에 도시된 신호를 스펙트로그램(spectrogram)으로 나타낸다. 상기 그래프 상기 그래프 1805 내지 1808을 비교하면, 상기 그래프 1808이 가장 적은 잔여 에코를 포함하고 있다. 다양한 실시 예들에서, 상기 3개의 비선형 필터, 상기 선형 필터 305, 및 상기 오디오 필터 307에 의해 상기 외부 오디오 신호는 효과적으로 모델링 될 수 있다.
다양한 실시 예들에서, 상기 전자 장치 101은 상기 3개의 비선형 필터, 상기 선형 필터 305, 및/또는 상기 오디오 필터 307을 포함할 수 있다. 상기 전자 장치 101은 상기 3개의 비선형 필터, 상기 선형 필터 305, 및/또는 상기 오디오 필터 307을 통해 상기 외부 오디오 신호를 제거할 수 있다. 상기 전자 장치 101에 포함된 필터(예: 비선형 필터 303, 선형 필터 305, 또는 오디오 필터 307)의 개수는 상술한 예에 한정되지 않는다. 예를 들면, 상기 전자 장치 101은 복수의 비선형 필터들, 복수의 선형 필터들, 또는 복수의 오디오 필터들을 포함할 수 있다.
다양한 실시 예들에서, 상기 전자 장치 101의 방법은, 상기 오디오 출력 모듈 309를 통해, 출력될 제1 오디오 신호를 확인(identify)하는 동작과, 비선형의 제1 속성을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하는 동작과, 상기 오디오 출력 모듈을 통해, 상기 제1 오디오 신호를 출력하는 동작과, 오디오 입력 모듈을 통해, 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호를 획득하는 동작과, 상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하는 동작과; 상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 구별되는(distinct) 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하는 동작과, 상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하는 동작을 포함할 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    오디오 입력 모듈(audio input module);
    오디오 출력 모듈(audio output module); 및
    프로세서(processor)를 포함하고, 상기 프로세서는,
    상기 오디오 출력 모듈을 통해 출력될 제1 오디오 신호를 확인(identify)하고,
    비선형의 제1 속성(attribute)을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하고,
    상기 오디오 출력 모듈을 통해 상기 제1 오디오 신호를 출력하고,
    상기 오디오 입력 모듈을 통해 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호(external audio signal)를 획득하고,
    상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치(weight)가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하고;
    상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 다른 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하고; 및
    상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하도록 설정된 전자 장치.
  2. 청구항 1에 있어서, 상기 프로세서는,
    상기 제1 차이 값 또는 상기 제2 차이 값이 지정된(designated) 조건을 만족하도록 상기 제1 가중치 또는 상기 제2 가중치를 조정하도록 설정된 전자 장치.
  3. 청구항 1에 있어서, 상기 프로세서는,
    선형의 속성을 갖는 제3 필터를 이용하여 상기 제1 오디오 신호가 처리된 제3 신호를 생성하고, 상기 획득된 외부 오디오 신호와 상기 제3 신호에 적어도 기반하여, 상기 획득된 외부 오디오 신호 중 상기 제1 오디오 신호에 대응하는 신호의 적어도 일부를 제거하도록 설정된 전자 장치.
  4. 청구항 1에 있어서, 상기 프로세서는,
    선형의 속성을 갖는 제3 필터를 이용하여 상기 제1 신호 및 상기 제2 신호가 처리된 제3 신호를 생성하고, 상기 획득된 외부 오디오 신호와 상기 제3 신호에 적어도 기반하여, 상기 획득된 외부 오디오 신호 중 상기 제1 오디오 신호에 대응하는 신호의 적어도 일부를 제거하도록 설정된 전자 장치.
  5. 청구항 1에 있어서,
    제1 파라미터(parameter)를 포함하는 시그모이드 함수에 적어도 기반하여 상기 제 1 필터의 상기 제 1 속성이 설정되고, 제2 파라미터를 포함하는 시그모이드 함수에 적어도 기반하여 상기 제 2 필터의 상기 제 2 속성이 설정되는 전자 장치.
  6. 청구항 5에 있어서, 상기 시그모이드 함수는 하기의 수학식에 기반하여 결정되는 전자 장치.
    Figure pat00002

    여기서, sigmoid(x)는 상기 시그모이드 함수를 나타내고, e는 무리수를 나타내며, a와 b는 임의의 수를 나타낸다.
  7. 청구항 6에 있어서,
    상기 제1 파라미터 및 상기 제2 파라미터는 상기 a 또는 상기 b 중 적어도 하나에 의해 구분(distinct)되는 전자 장치.
  8. 청구항 1에 있어서, 상기 오디오 필터는 상기 제 1 입력 채널에 대응하여 적어도 하나 이상의 노드 및 적어도 하나 이상의 층으로 구성된 제 1 신경망(neural network) 및 상기 제 2 입력 채널에 대응하여 적어도 하나 이상의 노드 및 적어도 하나 이상의 층으로 구성된 제 2 신경망에 기반하여 설정되는 전자 장치.
  9. 청구항 8에 있어서, 상기 제 1 가중치는 상기 제 1 신경망의 상기 적어도 하나 이상의 노드 또는 상기 적어도 하나 이상의 층에 대한 각각의 가중치 값들을 포함하고, 및 상기 제 2 가중치는 상기 제 2 신경망의 상기 적어도 하나 이상의 노드 또는 상기 적어도 하나 이상의 층에 대한 각각의 가중치 값들을 포함하는 전자 장치.
  10. 전자 장치의 방법에 있어서,
    오디오 출력 모듈(audio output module)을 통해, 출력될 제1 오디오 신호를 확인(identify)하는 동작과,
    비선형의 제1 속성(attribute)을 갖는 제1 필터를 이용하여 상기 제1 오디오 신호가 처리된 제1 신호 및 상기 비선형의 제2 속성을 갖는 제2 필터를 이용하여 상기 제1 오디오 신호가 처리된 제2 신호를 생성하는 동작과,
    상기 오디오 출력 모듈을 통해, 상기 제1 오디오 신호를 출력하는 동작과,
    오디오 입력 모듈을 통해, 상기 전자 장치의 상기 제1 오디오 신호가 포함된 외부 오디오 신호(external audio signal)를 획득하는 동작과,
    상기 제1 신호 중 제1 주파수에 대응하는 크기 값 및 상기 제 2 신호 중 상기 제1 주파수에 대응하는 크기 값에 제1 비선형 특성을 갖는 제1 가중치(weight)가 적용된 오디오 필터의 제1 입력 채널을 통해 제1 출력 값을 획득하는 동작과;
    상기 제1 신호 중 제2 주파수에 대응하는 크기 값 및 상기 제2 신호 중 상기 제 2 주파수에 대응하는 크기 값에 제2 비선형 특성을 갖는, 상기 제1 가중치와 다른 제2 가중치가 적용된 상기 오디오 필터의 제2 입력 채널을 통해 제2 출력 값을 획득하는 동작과; 및
    상기 외부 오디오 신호의 상기 제1 주파수에 대응하는 크기 값과 상기 제1 출력 값 간의 제 1 차이 값 및 상기 외부 오디오 신호의 상기 제2 주파수에 대응하는 크기 값과 제2 출력 값 간의 제2 차이 값에 적어도 기반하여, 제2 오디오 신호를 생성하는 동작을 포함하는 방법.
  11. 청구항 10에 있어서,
    상기 제1 차이 값 또는 상기 제2 차이 값이 지정된(designated) 조건을 만족하도록 상기 제1 가중치 또는 상기 제2 가중치를 조정하는 동작을 포함하는 방법
  12. 청구항 10에 있어서,
    선형의 속성을 갖는 제3 필터를 이용하여 상기 제1 오디오 신호가 처리된 제3 신호를 생성하는 동작과, 상기 획득된 외부 오디오 신호와 상기 제3 신호에 적어도 기반하여, 상기 획득된 외부 오디오 신호 중 상기 제1 오디오 신호에 대응하는 신호의 적어도 일부를 제거하는 동작을 포함하는 방법.
  13. 청구항 10에 있어서,
    선형의 속성을 갖는 제3 필터를 이용하여 상기 제1 신호 및 상기 제2 신호가 처리된 제3 신호를 생성하는 동작과,
    상기 획득된 외부 오디오 신호와 상기 제3 신호에 적어도 기반하여, 상기 획득된 외부 오디오 신호 중 상기 제1 오디오 신호에 대응하는 신호의 적어도 일부를 제거하는 동작을 포함하는 방법.
  14. 청구항 10에 있어서,
    제1 파라미터(parameter)를 포함하는 시그모이드 함수에 적어도 기반하여 상기 제 1 필터의 상기 제 1 속성을 결정하는 동작과, 제2 파라미터를 포함하는 시그모이드 함수에 적어도 기반하여 상기 제 2 필터의 상기 제 2 속성을 결정하는 동작을 포함하는 방법.
  15. 청구항 14에 있어서, 상기 시그모이드 함수를 하기의 수학식에 기반하여 결정하는 동작을 포함하는 방법.
    Figure pat00003

    여기서, sigmoid(x)는 상기 시그모이드 함수를 나타내고, e는 무리수를 나타내며, a와 b는 임의의 수를 나타낸다.
  16. 청구항 15에 있어서,
    상기 제1 파라미터 및 상기 제2 파라미터는 상기 a 또는 상기 b 중 적어도 하나에 의해 구분(distinct)되는 방법.
  17. 청구항 10에 있어서,
    상기 오디오 필터는 상기 제1 입력 채널에 대응하여 적어도 하나 이상의 노드 및 적어도 하나 이상의 층으로 구성된 제1 신경망(neural network) 및 상기 제2 입력 채널에 대응하여 적어도 하나 이상의 노드 및 적어도 하나 이상의 층으로 구성된 제2 신경망에 기반하여 설정되는 방법.
  18. 청구항 17에 있어서,
    상기 제1 가중치는 상기 제1 신경망의 상기 적어도 하나 이상의 노드 또는 상기 적어도 하나 이상의 층에 대한 각각의 가중치 값들을 포함하고, 및 상기 제2 가중치는 상기 제2 신경망의 상기 적어도 하나 이상의 노드 또는 상기 적어도 하나 이상의 층에 대한 각각의 가중치 값들을 포함하는 방법.
  19. 전자 장치에 있어서,
    오디오 입력 모듈,
    오디오 출력 모듈,
    명령어들을 저장하는 메모리, 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    상기 오디오 출력 모듈을 통해 제1 오디오 신호를 출력하고,
    상기 제1 오디오 신호를 비선형 필터를 통해 비선형의 속성에 기반하여 모델링하고,
    상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를 선형 필터를 통해 선형의 속성에 기반하여 제2 오디오 신호로 모델링하고, 상기 비선형의 속성에 기반하여 모델링 된 제1 오디오 신호를 신경망(neural network)을 통해, 제3 오디오 신호로 모델링하고, 및
    상기 오디오 입력 모듈을 통해 상기 제1 오디오 신호와 관련된 외부 오디오 신호를 수신하면, 상기 제2 오디오 신호 및 제3 오디오 신호에 기반하여, 상기 수신된 외부 오디오 신호를 처리하기 위해 상기 저장된 명령어들을 실행하도록 설정된 전자 장치.
  20. 청구항 19에 있어서,
    상기 신경망은 복수 개의 가중치들을 포함하고,
    상기 복수 개의 가중치들은 비선형의 속성과 관련되며, 상기 신경망에게 입력되는 값과 출력되는 값에 기반하여, 상기 복수 개의 가중치들이 갱신되는 전자 장치.
KR1020170112714A 2017-09-04 2017-09-04 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치 KR102478951B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170112714A KR102478951B1 (ko) 2017-09-04 2017-09-04 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치
PCT/KR2018/010038 WO2019045474A1 (ko) 2017-09-04 2018-08-30 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치
US16/639,332 US11276414B2 (en) 2017-09-04 2018-08-30 Method and device for processing audio signal using audio filter having non-linear characteristics to prevent receipt of echo signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170112714A KR102478951B1 (ko) 2017-09-04 2017-09-04 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190026234A true KR20190026234A (ko) 2019-03-13
KR102478951B1 KR102478951B1 (ko) 2022-12-20

Family

ID=65527636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170112714A KR102478951B1 (ko) 2017-09-04 2017-09-04 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치

Country Status (3)

Country Link
US (1) US11276414B2 (ko)
KR (1) KR102478951B1 (ko)
WO (1) WO2019045474A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102130505B1 (ko) * 2019-05-02 2020-07-06 남서울대학교 산학협력단 심층학습을 통한 보청기의 궤환신호 제거 장치 및 그 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565493B2 (en) 2015-04-30 2017-02-07 Shure Acquisition Holdings, Inc. Array microphone system and method of assembling the same
US9554207B2 (en) 2015-04-30 2017-01-24 Shure Acquisition Holdings, Inc. Offset cartridge microphones
US10367948B2 (en) 2017-01-13 2019-07-30 Shure Acquisition Holdings, Inc. Post-mixing acoustic echo cancellation systems and methods
US11523212B2 (en) 2018-06-01 2022-12-06 Shure Acquisition Holdings, Inc. Pattern-forming microphone array
US11297423B2 (en) 2018-06-15 2022-04-05 Shure Acquisition Holdings, Inc. Endfire linear array microphone
CN112889296A (zh) 2018-09-20 2021-06-01 舒尔获得控股公司 用于阵列麦克风的可调整的波瓣形状
CN113841419A (zh) 2019-03-21 2021-12-24 舒尔获得控股公司 天花板阵列麦克风的外壳及相关联设计特征
US11438691B2 (en) 2019-03-21 2022-09-06 Shure Acquisition Holdings, Inc. Auto focus, auto focus within regions, and auto placement of beamformed microphone lobes with inhibition functionality
US11558693B2 (en) 2019-03-21 2023-01-17 Shure Acquisition Holdings, Inc. Auto focus, auto focus within regions, and auto placement of beamformed microphone lobes with inhibition and voice activity detection functionality
US11699064B2 (en) * 2019-04-23 2023-07-11 Arm Limited Data processing using a neural network system
US11445294B2 (en) 2019-05-23 2022-09-13 Shure Acquisition Holdings, Inc. Steerable speaker array, system, and method for the same
EP3977449A1 (en) 2019-05-31 2022-04-06 Shure Acquisition Holdings, Inc. Low latency automixer integrated with voice and noise activity detection
CN114467312A (zh) 2019-08-23 2022-05-10 舒尔获得控股公司 具有改进方向性的二维麦克风阵列
US11552611B2 (en) 2020-02-07 2023-01-10 Shure Acquisition Holdings, Inc. System and method for automatic adjustment of reference gain
WO2021243368A2 (en) 2020-05-29 2021-12-02 Shure Acquisition Holdings, Inc. Transducer steering and configuration systems and methods using a local positioning system
US11308971B2 (en) * 2020-07-15 2022-04-19 Bank Of America Corporation Intelligent noise cancellation system for video conference calls in telepresence rooms
CN111883155B (zh) * 2020-07-17 2023-10-27 海尔优家智能科技(北京)有限公司 回声消除方法、装置及存储介质
EP4285605A1 (en) 2021-01-28 2023-12-06 Shure Acquisition Holdings, Inc. Hybrid audio beamforming system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307500B1 (en) * 1999-08-13 2001-10-23 University Corporation For Atmospheric Research Method of moment estimation and feature extraction for devices which measure spectra as a function of range or time
US20040057586A1 (en) 2000-07-27 2004-03-25 Zvi Licht Voice enhancement system
US20040213415A1 (en) * 2003-04-28 2004-10-28 Ratnam Rama Determining reverberation time
US7813499B2 (en) 2005-03-31 2010-10-12 Microsoft Corporation System and process for regression-based residual acoustic echo suppression
US7881459B2 (en) 2007-08-15 2011-02-01 Motorola, Inc. Acoustic echo canceller using multi-band nonlinear processing
US8213598B2 (en) 2008-02-26 2012-07-03 Microsoft Corporation Harmonic distortion residual echo suppression
US9049281B2 (en) * 2011-03-28 2015-06-02 Conexant Systems, Inc. Nonlinear echo suppression
US9451078B2 (en) 2012-04-30 2016-09-20 Creative Technology Ltd Universal reconfigurable echo cancellation system
KR101424327B1 (ko) * 2012-05-15 2014-07-31 고려대학교 산학협력단 잡음 제거 장치 및 방법
US9972315B2 (en) * 2015-01-14 2018-05-15 Honda Motor Co., Ltd. Speech processing device, speech processing method, and speech processing system
US9672821B2 (en) * 2015-06-05 2017-06-06 Apple Inc. Robust speech recognition in the presence of echo and noise using multiple signals for discrimination
US9865265B2 (en) * 2015-06-06 2018-01-09 Apple Inc. Multi-microphone speech recognition systems and related techniques
US9881619B2 (en) * 2016-03-25 2018-01-30 Qualcomm Incorporated Audio processing for an acoustical environment
US10090001B2 (en) * 2016-08-01 2018-10-02 Apple Inc. System and method for performing speech enhancement using a neural network-based combined symbol
US10074380B2 (en) * 2016-08-03 2018-09-11 Apple Inc. System and method for performing speech enhancement using a deep neural network-based signal

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jing Fu et al., ‘A Nonlinear Acoustic Echo Canceller Using Sigmoid Transform in Conjunction With RLS Algorithm’, IEEE TRANS. ON CIRCUITS AND SYSTEMS II: EXPRESS BRIEFS, VOL.55, NO.10, OCTOBER 2008.* *
이철민, ‘Enhanced Acoustic Echo Suppression Techniques Based on Spectro-Temporal Correlations, 서울대학교 대학원, 전기·컴퓨터공학부, 박사학위 논문, 2016년 9월.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102130505B1 (ko) * 2019-05-02 2020-07-06 남서울대학교 산학협력단 심층학습을 통한 보청기의 궤환신호 제거 장치 및 그 방법

Also Published As

Publication number Publication date
WO2019045474A1 (ko) 2019-03-07
KR102478951B1 (ko) 2022-12-20
US11276414B2 (en) 2022-03-15
US20200251119A1 (en) 2020-08-06

Similar Documents

Publication Publication Date Title
KR20190026234A (ko) 비선형 특성을 갖는 오디오 필터를 이용하여 오디오 신호를 처리하는 방법 및 장치
CN107211063B (zh) 非线性回波路径检测
US9967404B2 (en) Echo controller
US9344050B2 (en) Dynamic speaker management with echo cancellation
CN104243732A (zh) 振动传感器在回声消除中的使用
US9343073B1 (en) Robust noise suppression system in adverse echo conditions
KR102190833B1 (ko) 에코 억제
KR102076760B1 (ko) 다채널 마이크를 이용한 칼만필터 기반의 다채널 입출력 비선형 음향학적 반향 제거 방법
KR20190097473A (ko) 노이즈가 정제된 음성 신호를 획득하는 방법 및 이를 수행하는 전자 장치
KR102565447B1 (ko) 청각 인지 속성에 기반하여 디지털 오디오 신호의 이득을 조정하는 전자 장치 및 방법
WO2022256577A1 (en) A method of speech enhancement and a mobile computing device implementing the method
US10388301B2 (en) Method for processing audio signal and electronic device for supporting the same
CN114040285B (zh) 耳机的前馈滤波器参数生成方法、设备、耳机及存储介质
KR102443637B1 (ko) 네트워크 연결 정보에 기반하여 잡음 제어 파라미터를 결정하는 전자 장치 및 그의 동작 방법
CN112997249B (zh) 语音处理方法、装置、存储介质及电子设备
CN111083250A (zh) 移动终端及其降噪方法
US20180158447A1 (en) Acoustic environment understanding in machine-human speech communication
CN103796135A (zh) 具有回声消除的动态扬声器管理
CN109273010B (zh) 语音数据处理方法、装置、计算机设备和存储介质
EP4350695A1 (en) Apparatus, methods and computer programs for audio signal enhancement using a dataset
JP2015070291A (ja) 集音・放音装置、音源分離ユニット及び音源分離プログラム
JP4094523B2 (ja) 反響消去装置、方法、及び反響消去プログラム、そのプログラムを記録した記録媒体
KR20210083872A (ko) 전자 장치 및 신경망 기반의 잔여 에코 제거 방법
CN117690446A (zh) 回声消除方法、装置、电子设备及存储介质
CN112218206A (zh) 基于薄膜扬声器的声音控制方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant