KR20230084236A - 음향 에코 제거 및 잔류 에코 억제를 위한 통합 심층 신경망 모델 - Google Patents

음향 에코 제거 및 잔류 에코 억제를 위한 통합 심층 신경망 모델 Download PDF

Info

Publication number
KR20230084236A
KR20230084236A KR1020237015337A KR20237015337A KR20230084236A KR 20230084236 A KR20230084236 A KR 20230084236A KR 1020237015337 A KR1020237015337 A KR 1020237015337A KR 20237015337 A KR20237015337 A KR 20237015337A KR 20230084236 A KR20230084236 A KR 20230084236A
Authority
KR
South Korea
Prior art keywords
signal waveform
echo
computer
far
stage
Prior art date
Application number
KR1020237015337A
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 텐센트 아메리카 엘엘씨
Publication of KR20230084236A publication Critical patent/KR20230084236A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L21/0224Processing in the time domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L2021/02082Noise filtering the noise being echo, reverberation of the speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L2021/02161Number of inputs available containing the signal or the noise to be suppressed
    • G10L2021/02163Only one microphone

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Quality & Reliability (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

순환 신경망에 의한 모든 심층 학습 기반 AEC 시스템을 위한 방법, 컴퓨터 프로그램 및 컴퓨터 시스템을 제공한다. 이 모델은 에코 추정 스테이지와 에코 억제 스테이지의 두 스테이지로 각각 구성된다. 여기에서는 원단 참조 신호에 대한 멀티 탭 필터링에 의한 선형 에코 추정과 마이크 신호에 대한 단일 탭 마스킹에 의한 비선형 에코 추정이라는 2개의 상이한 에코 추정 방식을 제시한다. 마이크 신호 파형과 원단 참조 신호 파형이 수신된다. 마이크 신호 파형과 원단 참조 신호 파형에 기반하여 에코 신호 파형을 추정한다. 마이크 신호 파형으로부터 추정된 에코 신호 파형을 감산하는 것에 의해 근단 음성 신호 파형을 출력하고, 근단 음성 신호 파형 내에서 에코가 억제된다.

Description

음향 에코 제거 및 잔류 에코 억제를 위한 통합 심층 신경망 모델
본 개시는 일반적으로 데이터 처리 분야에 관한 것으로, 특히 신경망에 관한 것이다.
음향 에코 제거(acoustic echo cancellation, AEC)는 전이중 음성 통신(speech communication)에서 중요한 역할을 하며, 라우드스피커(loudspeaker)가 재생되는 조건에서 인식을 위한 프론트엔드(front-end) 음성 향상 기능도 제공한다.
실시예는 음향 에코 억제를 위한 방법, 시스템 및 컴퓨터가 판독 가능한 매체에 관한 것이다. 일 측면에 따르면, 음향 에코 억제 방법이 제공된다. 상기 방법은 마이크 신호 파형(microphone signal waveform) 및 원단 참조 신호 파형(far-end reference signal waveform)을 수신하는 단계를 포함할 수 있다. 에코 신호 파형은 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 추정된다. 근단 음성 신호 파형(near-end speech signal waveform)은 마이크 신호 파형으로부터 추정된 에코 신호 파형을 감산하는 것에 기반하여 출력된다.
다른 측면에 따르면, 음향 에코 억제를 위한 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 하나 이상의 프로세서, 하나 이상의 컴퓨터 판독 가능한 메모리, 하나 이상의 컴퓨터 판독 가능한 유형의 저장 디바이스(tangible storage device), 및 하나 이상의 메모리 중 적어도 하나를 통해 하나 이상의 프로세서 중 적어도 하나에 의한 실행을 위해 하나 이상의 저장 디바이스 중 적어도 하나에 저장된 프로그램 명령어를 포함할 수 있으며, 이에 따라 컴퓨터 시스템은 방법을 수행할 수 있다. 상기 방법은 마이크 신호 파형 및 원단 참조 신호 파형을 수신하는 단계를 포함할 수 있다. 에코 신호 파형은 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 추정된다. 근단 음성 신호 파형은 마이크 신호 파형으로부터 추정된 에코 신호 파형을 감산하는 것에 기반하여 출력된다.
또 다른 측면에 따르면, 음향 에코 억제를 위한 컴퓨터가 판독 가능한 매체가 제공된다. 컴퓨터가 판독 가능한 매체는 하나 이상의 컴퓨터가 판독 가능한 저장 디바이스 및 하나 이상의 유형의 저장 디바이스 중 적어도 하나에 저장된 프로그램 명령어를 포함할 수 있으며, 프로그램 명령어는 프로세서에 의해 실행 가능하다. 프로그램 명령어는 마이크 신호 파형 및 원단 참조 신호 파형을 수신하는 단계를 포함할 수 있는 방법을 수행하기 위해 프로세서에 의해 실행 가능하다. 에코 신호 파형은 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 추정된다. 근단 음성 신호 파형은 마이크 신호 파형으로부터 추정된 에코 신호 파형을 감산하는 것에 기반하여 출력된다.
이들 및 다른 목적, 특징 및 이점은 첨부 도면과 관련하여 판독될 예시적인 실시예의 다음의 상세한 설명으로부터 명백해질 것이다. 도면의 다양한 특징은 상세한 설명과 함께 당업자의 이해를 용이하게 하기 위한 명료함을 위한 것이므로, 축척되지 않는다. 도면에서:
도 1은 적어도 하나의 실시예에 따른 네트워크화된 컴퓨터 환경을 도시한다.
도 2a 및 도 2b는 실시예에 따른 에코 억제 시스템의 다이어그램이다.
도 3은 적어도 하나의 실시예에 따른, 잔류 음향 에코를 억제하는 프로그램에 의해 수행되는 단계를 예시하는 작동 흐름도이다.
도 4는 적어도 하나의 실시예에 따른 도 1에 도시된 컴퓨터 및 서버의 내부 및 외부 컴포넌트의 블록도이다.
도 5는 적어도 하나의 실시예에 따른 도 1에 도시된 컴퓨터 시스템을 포함하는 예시적인 클라우드 컴퓨팅 환경의 블록도이다.
도 6은 적어도 하나의 실시예에 따른 도 5의 예시적인 클라우드 컴퓨팅 환경의 기능 계층의 블록도이다.
청구된 구조 및 방법의 상세한 실시예가 여기에 개시되어 있다. 그러나, 개시된 실시예는 다양한 형태로 구현될 수 있는 청구된 구조 및 방법의 단지 예시인 것으로 이해될 수 있다. 그러나 이러한 구조 및 방법은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시예에 한정되는 것으로 해석되어서는 안 된다. 오히려, 이러한 예시적인 실시예는 본 개시가 철저하고 완전하며 본 기술 분야의 통상의 지식을 가진 자에게 그 범위를 충분히 전달하도록 제공된다. 설명에서, 잘 알려진 특징 및 기술의 세부사항은 제시된 실시예를 불필요하게 모호하게 하는 것을 피하기 위해 생략될 수 있다.
실시예는 일반적으로 데이터 처리 분야, 특히 신경망에 관한 것이다. 다음에 설명되는 예시적인 실시예는 무엇보다도 음향 에코 억제를 위한 시스템, 방법 및 컴퓨터 프로그램을 제공한다. 따라서, 일부 실시예는 컴퓨터가 전이중 음성 통신에서 잔류 음향 에코(residual acoustic echoes)를 억제할 수 있도록 함으로써 컴퓨팅 분야를 개선할 수 있는 능력을 갖는다.
앞서 설명한 바와 같이, 음향 에코 제거(acoustic echo cancellation, AEC)는 라우드스피커가 재생되는 조건에서 인식을 위한 프런트엔드 음성 향상 뿐만 아니라 전이중 음성 통신에서 중요한 역할을 한다.
그러나 근단 마이크에 의해 수신된 다음에 원단 청취자 또는 음성 인식 엔진으로 전송되는 라우드스피커로부터의 소리(sound)에 의해 음향 에코가 야기된다. 이러한 간섭 신호는 원격 회의 시스템, 모바일 통신 및 핸즈프리 인간-기계 상호 작용에서 보이스(voice) 품질을 저하시킨다. 적응형 필터링 방법은 수십 년에 걸쳐 연구되어 왔다. 정규화된 최소 평균 제곱(normalized least mean square, NLMS)은 주파수 도메인 블록 적응 필터(frequency domain block adaptive filter, FDBAF) 및 다중 지연 블록 주파수 도메인(multi-delay block frequency domain, MDF) 적응 필터와 같이, 견고하고 복잡성이 낮아 가장 널리 사용된다. 비선형 후처리(post processing)은 일반적으로 잔류 에코 억제(residual echo suppression, RES)를 위해 계단식으로 진행된다. 기존의 후처리 대신에, 심층 학습(deep learning) 방법이 RES 목적으로 사용되었다. 따라서 신경망 기반 RES가 뒤따르는 선형 적응 필터링이 AEC 시스템 설계에 채택된다.
따라서 AEC에 종단간 모델(end-to-end model)을 사용하는 것이 유리할 수 있다. 선형 에코 제거(스테이지 1)와 잔류 에코 억제(스테이지 2)를 위한 에코 추정 모두 통합 모델(unified model)에서 제시된다. 순환 신경망(recurrent neural network, RNN)은 스테이지 1의 시간 가변 멀티 탭 선형 필터와 스테이지 2의 단일 탭 RES 마스크의 학습에 사용된다. 에코 추정, 제1 스테이지 에코 제거, 제2 스테이지 에코 억제는 모두 통합 모델에서 모델링된다. 원단 참조 신호에 대한 멀티 탭 선형 필터링이 적응형 선형 필터링 기반 AEC와 유사한 방식으로 수행된다. 대형 라우드스피커 왜곡을 처리하기 위해, 마이크 신호에 대한 직접 단일 탭 마스킹 기반 비선형 에코 추정이 대신 발명되었다. 마이크 신호에 대한 마스킹 기반 에코 추정은 라우드스피커의 비선형성과 음향 에코 경로의 반향(reverberation)을 포착한다(capture).
측면들은 다양한 실시예에 따른 방법, 장치(시스템), 및 컴퓨터가 판독 가능한 매체의 흐름도 예시 및/또는 블록도를 참조하여 본 명세서에서 설명된다. 흐름도 예시 및/또는 블록도의 각 블록, 및 흐름도 예시 및/또는 블록도의 블록 조합은 컴퓨터 판독 가능 프로그램 명령어에 의해 구현될 수 있음이 이해될 것이다.
다음에 설명된 예시적인 실시예는 순환 신경망에 의한 전체 심층 학습 기반 AEC 시스템을 사용하는 시스템, 방법 및 컴퓨터 프로그램을 제공한다. 이 모델은 각각 에코 추정 스테이지와 에코 억제 스테이지의 두 스테이지로 구성된다. 여기에서는 원단 참조 신호에 대한 멀티 탭 필터링에 의한 선형 에코 추정과 마이크 신호에 대한 단일 탭 마스킹을 통한 비선형 에코 추정이라는 2개의 상이한 에코 추정 방식을 제시한다.
이제 도 1을 참조하며, 잔류 에코 억제를 위한 음향 에코 제거 시스템(100)(이하 "시스템")을 예시하는(illustrating) 네트워크화된 컴퓨터 환경의 기능 블록도이다. 도 1은 단지 하나의 구현의 예시를 제공하고 상이한 실시예가 구현될 수 있는 환경과 관련하여 어떠한 제한도 의미하지 않는다. 묘사된 환경에 대한 많은 수정은 설계 및 구현 요건을 기반으로 할 수 있다.
시스템(100)은 컴퓨터(102) 및 서버 컴퓨터(114)를 포함할 수 있다. 컴퓨터(102)는 통신 네트워크(110)(이하 "네트워크")를 통해 서버 컴퓨터(114)와 통신할 수 있다. 컴퓨터(102)는 프로세서(104), 및 데이터 저장 디바이스(106)에 저장되어 있으면서 또한 사용자와 인터페이스하고 서버 컴퓨터(114)와 통신할 수 있게 하는 소프트웨어 프로그램(108)을 포함할 수 있다. 도 4를 참조하여 아래에서 논의되는 바와 같이, 컴퓨터(102)는 내부 컴포넌트(800A) 및 외부 컴포넌트(900A)를 각각 포함할 수 있고, 서버 컴퓨터(114)는 내부 컴포넌트(800B) 및 외부 컴포넌트(900B)를 각각 포함할 수 있다. 컴퓨터(102)는 예를 들어 모바일 디바이스, 전화, 개인 휴대 정보 단말기, 넷북, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터, 또는 프로그램을 실행하고 네트워크를 액세스하며 그리고 데이터베이스 액세스할 수 있는 임의의 타입의 컴퓨팅 디바이스일 수 있다.
서버 컴퓨터(114)는 또한 도 5 및 도 6과 관련하여 아래에서 논의되는 바와 같이 SaaS(Software as a Service), PaaS(Platform as a Service), 또는 laaS(Infrastructure as a Service)와 같은 클라우드 컴퓨팅 서비스 모델에서 작동할 수 있다. 서버 컴퓨터(114)는 또한 사설 클라우드, 커뮤니티 클라우드, 공용 클라우드, 또는 하이브리드 클라우드와 같은 클라우드 컴퓨팅 배치 모델에 위치될 수 있다.
음향 에코 억제에 사용될 수 있는 서버 컴퓨터(114)는, 데이터베이스(112)와 상호작용할 수 있는 음향 에코 억제(Acoustic Echo Suppression) 프로그램(116)(이하 "프로그램")을 실행하도록 인에이블된다(enabled). 음향 에코 억제 프로그램 방법은 도 3을 참조하여 아래에서 더 자세히 설명된다. 일 실시예에서, 컴퓨터(102)는 사용자 인터페이스를 포함하는 입력 디바이스로서 작동할 수 있는 반면, 프로그램(116)은 주로 서버 컴퓨터(114) 상에서 실행될 수 있다. 대안적인 실시예에서, 프로그램(116)은 주로 하나 이상의 컴퓨터(102)에서 실행될 수 있는 반면, 서버 컴퓨터(114)는 프로그램(116)에 의해 사용되는 데이터의 처리 및 저장에 사용될 수 있다. 프로그램(116)은 독립형 프로그램일 수 있거나 더 큰 음향 에코 억제 프로그램에 통합될 수 있음을 유의해야 한다.
그러나, 프로그램(116)에 대한 처리는 일부 경우에 컴퓨터(102)와 서버 컴퓨터(114) 사이에서 임의의 비율로 공유될 수 있음에 유의해야 한다. 다른 실시예에서, 프로그램(116)은 하나 이상의 컴퓨터, 서버 컴퓨터, 또는 컴퓨터와 서버 컴퓨터의 일부 조합, 예를 들어 네트워크(110)를 통해 단일(single) 서버 컴퓨터(114)와 통신하는 복수의 컴퓨터(102)에서 작동할 수 있다. 다른 실시예에서, 예를 들어, 프로그램(116)은 네트워크(110)를 통해 복수의 클라이언트 컴퓨터와 통신하는 복수의 서버 컴퓨터(114)에서 작동할 수 있다. 다르게는, 프로그램은 네트워크를 통해 서버 및 복수의 클라이언트 컴퓨터와 통신하는 네트워크 서버에서 작동할 수 있다.
네트워크(110)는 유선 연결(connection), 무선 연결, 광섬유 연결, 또는 이들의 일부 조합을 포함할 수 있다. 일반적으로, 네트워크(110)는 컴퓨터(102)와 서버 컴퓨터(114) 사이의 통신을 지원할 연결 및 프로토콜의 임의의 조합일 수 있다. 네트워크(110)는, 예를 들면, LAN(local area network), 인터넷과 같은 WAN(wide area network), PSTN(Public Switched Telephone Network)과 같은 텔레커뮤니케이션(telecommunication) 네트워크, 무선 네트워크, 공중 교환 네트워크(public switched network), 위성 네트워크, 셀룰러 네트워크(예: 5세대(fifth generation, 5G) 네트워크, LTE(long-term evolution) 네트워크, 3세대(third generation, 3G) 네트워크, CDMA(code division multiple access) 네트워크 등), PLMN(public land mobile network), MAN(metropolitan area network), 사설 네트워크, 애드혹(ad hoc) 네트워크, 인트라넷, 광섬유 기반 네트워크 등 및 /또는 이들 또는 다른 타입의 네트워크의 조합과 같은, 다양한 타입의 네트워크를 포함할 수 있다.
도 1에 도시된 디바이스 및 네트워크의 수 및 배열은 예시로 제공된다. 실제로, 도 1에 도시된 것보다 추가적인 디바이스 및/또는 네트워크, 더 적은 디바이스 및/또는 네트워크, 상이한 디바이스 및/또는 네트워크, 또는 상이하게 배열된 디바이스 및/또는 네트워크가 있을 수 있다. 또한, 도 1에 도시된 2개 이상의 디바이스는 단일 디바이스 내에 구현될 수 있으며, 또는 도 1에 도시된 단일 디바이스는 다수의 분산된 디바이스로 구현될 수 있다. 추가적으로 또는 다르게는, 시스템(100)의 디바이스 세트(예를 들어, 하나 이상의 디바이스들)는 시스템(100)의 다른 디바이스 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능(function)을 수행할 수 있다.
도 2a 및 도 2b를 참조하면, 각각의 멀티 스테이지 에코 억제 시스템(200A 및 200B)이 도시되어 있다. 도 2a의 에코 억제 시스템(200A)은 원단 참조 신호의 멀티 탭 필터링을 통과하는 제1 스테이지에서의 에코 추정에 기반하여 에코를 억제한다. 도 2b의 에코 억제 시스템(200B)은 마이크 신호의 단일 탭 마스킹을 통과하는 제1 스테이지의 에코 추정에 기반하여 에코를 억제한다.
에코 억제 시스템(200A, 200B)은 (i) 마이크 신호 파형, (ii) 원단 참조 신호 파형의 두 가지 입력을 받는다. 제1 스테이지에서 시스템은 음향 에코 신호를 추정한다. 마이크 신호로부터 추정된 에코 신호를 감산하는 것에 의해, 결과적으로 에코가 제거된 신호가 마이크 신호 및 추정된 에코 신호와 함께 제2 스테이지로 전달된다. 잔류 에코 억제로 역할을 하는, 모델의 제2 스테이지는 근단 음성 신호를 추정한다. 각각 두 개의 손실 함수가 제1 스테이지 에코 추정과 제2 스테이지 근단 신호 추정에 적용된다. 두 경우 모두, 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율(scale-invariant signal to distortion ratio, SI-SDR)과 시간-주파수 스펙트럼 크기에 대한 L1 손실이 훈련 목적으로 함께 합산된다. 도 2a의 타입-1 모델 에코 억제 시스템(200A)은 원단 신호에 대해 선형 필터링을 수행하여 에코 신호를 계산하고, 도 2b의 타입-2 모델 에코 억제 시스템(200B)은 마이크 신호 스펙트럼에 단일 탭 마스크를 곱하여 에코 신호를 계산한다. 따라서, 여기에 개시된 전체 심층 학습 기반 2스테이지 통합 음향 에코 제거 모델은, 에코 추정, 음향 에코 제거 및 잔류 에코 억제의 문제를 해결하는 것을 목표로 한다.
이제 도 3을 참조하면, 음향 에코 제거 프로그램에 의해 수행되는 방법(300)의 단계를 설명하는 동작 흐름도가 도시되어 있다.
302에서, 방법(300)은 마이크 신호 파형 및 원단 참조 신호 파형을 수신하는 단계를 포함할 수 있다.
304에서, 방법(300)은 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 에코 신호 파형을 추정하는 단계를 포함할 수 있다.
306에서, 방법(300)은 마이크 신호 파형으로부터 추정된 에코 신호 파형을 감산하는 것에 기반하여 근단 음성 신호 파형을 추정하는 단계를 포함할 수 있다. 근단 음성 신호 파형은 에코가 억제될 수 있도록 출력될 수 있다.
도 3은 단지 하나의 구현의 예시를 제공하고 상이한 실시예가 구현될 수 있는 방법에 관한 어떠한 제한도 의미하지 않음을 이해할 수 있다. 묘사된 환경에 대한 많은 수정은 설계 및 구현 요건을 기반으로 할 수 있다.
도 4는 예시적인 실시예에 따른, 도 1에 도시된 컴퓨터의 내부 컴포넌트 및 외부 컴포넌트의 블록도(400)이다. 도 4는 단지 하나의 구현의 예시를 제공하고 상이한 실시예가 구현될 수 있는 환경과 관련하여 어떠한 제한도 의미하지 않는다. 묘사된 환경에 대한 많은 수정은 설계 및 구현 요건을 기반으로 할 수 있다.
컴퓨터(102)(도 1) 및 서버 컴퓨터(114)(도 1)는 도 5에 예시된 내부 컴포넌트(800A,800B) 및 외부 컴포넌트(900A,900B)의 각각의 세트를 포함할 수 있다. 내부 컴포넌트(800)의 세트 각각은 하나 이상의 버스(826) 상의 하나 이상의 프로세서(820), 하나 이상의 컴퓨터가 판독 가능한 RAM(822) 및 하나 이상의 컴퓨터가 판독 가능한 ROM(824), 하나 이상의 운영 체제(828), 그리고 하나 이상의 컴퓨터가 판독 가능한 유형의 저장 디바이스(830)를 포함한다.
프로세서(820)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 프로세서(820)는 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(graphics processing unit, GPU), 가속 처리 유닛(accelerated processing unit, APU), 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서(digital signal processor, DSP), 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 애플리케이션 집적 회로(application-specific integrated circuit, ASIC) 또는 다른 타입의 처리 컴포넌트이다. 일부 구현에서, 프로세서(820)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서를 포함한다. 버스(826)는 내부 컴포넌트(800A,800B) 간의 통신을 허용하는 컴포넌트를 포함한다.
하나 이상의 운영 체제(828), 소프트웨어 프로그램(108)(도 1) 및 서버 컴퓨터(114)(도 1) 상의 음향 에코 억제 프로그램(116)(도 1)은, 하나 이상의 개별 RAM(822)(일반적으로 캐시 메모리를 포함함)을 통해 하나 이상의 개별 프로세서(820)에 의한 실행을 위한 각각의 컴퓨터가 판독 가능한 유형의 저장 디바이스(830) 중 하나 이상에 저장된다. 도 4에 도시된 바와 같이, 컴퓨터가 판독 가능한 유형의 저장 디바이스(830) 각각은 내부 하드 드라이브의 자기 디스크 저장 디바이스이다. 다르게는, 컴퓨터가 판독 가능한 유형의 저장 디바이스(830) 각각은 ROM(824), EPROM, 플래시 메모리, 광 디스크, 광자기 디스크, 솔리드 스테이트 디스크, 콤팩트 디스크(compact disc, CD), 디지털 다목적 디스크(digital versatile disc, DVD), 플로피 디스크, 카트리지, 자기 테이프 및/또는 컴퓨터 프로그램과 디지털 정보를 저장할 수 있는 다른 타입의 컴퓨터가 판독 가능한 유형의 비일시적 저장 디바이스와 같은, 반도체 저장 디바이스이다.
내부 컴포넌트(800A,800B)의 각 세트는 또한 CD-ROM, DVD, 메모리 스틱, 자기 테이프, 자기 디스크, 광 디스크 또는 반도체 저장 디바이스와 같은 하나 이상의 컴퓨터가 판독 가능한 휴대형 유형의 저장 디바이스(portable computer-readable tangible storage device)(936)로부터 판독하고 기록하기 위한 R/W 드라이브 또는 인터페이스(832)를 포함한다. 소프트웨어 프로그램(108)(도 1) 및 음향 에코 억제 프로그램(116)(도 1)과 같은 소프트웨어 프로그램은, 각각의 컴퓨터가 판독 가능한 휴대형 유형의 저장 디바이스(936) 중 하나 이상에 저장되고, 각각의 R/W 드라이브 또는 인터페이스(832)를 통해 판독되며, 그리고 각각의 하드 드라이브(830)로 로딩될 수 있다.
내부 컴포넌트(800A,800B)의 각 세트는 TCP/IP 어댑터 카드와 같은 네트워크 어댑터 또는 인터페이스(836); 무선 Wi-Fi 인터페이스 카드; 또는 3G, 4G 또는 5G 무선 인터페이스 카드 또는 기타 유선 또는 무선 통신 링크를 포함한다. 소프트웨어 프로그램(108)(도 1) 및 서버 컴퓨터(114)(도 1) 상의 음향 에코 억제 프로그램(116)(도 1)은, 네트워크(예를 들어, 인터넷, 근거리 통신망 또는 기타 광역 통신망) 및 각각의 네트워크 어댑터 또는 인터페이스(836)를 통해 외부 컴퓨터로부터 컴퓨터(102)(도 1) 및 서버 컴퓨터(114)로 다운로드될 수 있다. 네트워크 어댑터 또는 인터페이스(836)로부터, 소프트웨어 프로그램(108) 및 서버 컴퓨터(114) 상의 음향 에코 억제 프로그램(116)은 각각의 하드 드라이브(830)로 로딩된다. 네트워크는 구리선(copper wire), 광섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함할 수 있다.
외부 컴포넌트(900A,900B)의 각 세트는 컴퓨터 디스플레이 모니터(920), 키보드(930), 및 컴퓨터 마우스(934)를 포함할 수 있다. 외부 컴포넌트(900A,900B)는 또한 터치 스크린, 가상 키보드, 터치 패드, 포인팅 디바이스 및 기타 휴먼 인터페이스 디바이스를 포함할 수 있다. 내부 컴포넌트(800A,800B)의 세트 각각은 또한 컴퓨터 디스플레이 모니터(920), 키보드(930) 및 컴퓨터 마우스(934)에 인터페이스하기 위한 디바이스 드라이버(840)를 포함한다. 디바이스 드라이버(840), R/W 드라이브 또는 인터페이스(832) 및 네트워크 어댑터 또는 인터페이스(836)는 하드웨어 및 소프트웨어(저장 디바이스(830) 및/또는 ROM(824)에 저장됨)를 포함한다.
비록 본 개시가 클라우드 컴퓨팅에 대한 상세한 설명을 포함하지만, 여기에 인용된 교시(teaching)의 구현이 클라우드 컴퓨팅 환경으로 제한되지 않는다는 것을 미리 이해해야 한다. 오히려, 일부 실시예는 현재 알려져 있거나 나중에 개발될 임의의 다른 타입의 컴퓨팅 환경과 함께 구현될 수 있다.
클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호 작용으로 신속하게 프로비저닝되고(provisioned) 및 릴리스될 수 있는, 구성 가능한 컴퓨팅 리소스(예: 네트워크, 네트워크 대역폭, 서버, 처리, 메모리, 스토리지, 애플리케이션, 가상 머신 및 서비스)의 공유 풀(shared pool)에 대한 편리한 주문형 네트워크 액세스를 가능하게 하는 서비스 전달(delivery) 모델이다. 이 클라우드 모델은 적어도 5개의 특성(characteristic), 적어도 3개의 서비스 모델, 및 적어도 4개의 배포(deployment) 모델을 포함할 수 있다.
특성은 다음과 같다:
주문형 셀프 서비스(On-demand self-service): 클라우드 소비자는 서비스 제공자와 사람의 상호 작용 없이 자동으로 필요에 따라, 서버 시간 및 네트워크 스토리지와 같은 컴퓨팅 능력(computing capabilities)을 일방적으로 프로비저닝할 수 있다.
광범위한 네트워크 액세스(Broad network access): 능력이 네트워크를 통해 사용 가능하고, 이기종 씬(heterogeneous thin) 또는 씩(thick) 클라이언트 플랫폼(예: 휴대폰, 랩톱 및 PDA)의 사용을 촉진하는 표준 메커니즘을 통해 액세스될 수 있다.
리소스 풀링(Resource pooling): 제급자의 컴퓨팅 리소스는 수요에 따라 동적으로 할당 및 재할당되는 서로 다른 물리적 및 가상 리소스를 가지고, 다중 테넌트 모델(multi-tenant model)을 사용하여 여러 소비자에게 서비스를 제공하도록 풀링된다(polled). 소비자가 일반적으로 제공된 리소스의 정확한 위치에 대한 제어 또는 지식이 없지만 더 높은 레벨의 앱스트랙션(abstraction)에서 위치(예: 국가, 주 또는 데이터 센터)를 지정할 수 있다는 점에서 위치 독립성이 있다.
신속한 탄력성(Rapid elasticity): 능력이 신속하고 탄력적으로 프로비저닝되어, 일부 경우에 따라 자동으로 신속하게 확장하고(scale out) 그리고 신속하게 릴리즈되어 신속하게 축소할(scale in) 수 있다. 소비자에게 프로비저닝에 사용할 수 있는 능력은 종종 무제한으로 보이며 언제든지 수량에 관계없이 구매할 수 있다.
측정된 서비스(Measured service): 클라우드 시스템은 서비스 타입에 적합한 앱스트랙션 레벨(예: 스토리지, 처리, 대역폭 및 활성 사용자 계정)에서 미터링 능력(metering capability)을 레버리징(leveraging)하는 것에 의해, 리소스 사용을 자동으로 제어하고 최적화한다. 리소스 사용을 모니터링, 제어 및 보고할 수 있어, 활용되는 서비스의 제공자와 소비자 모두에게 투명성을 제공한다.
서비스 모델은 다음과 같다:
SaaS(Software as a Service): 소비자에게 제공되는 능력은 클라우드 인프라(infrastructure)에서 실행되는 공급자의 애플리케이션을 사용하는 것이다. 애플리케이션은 웹 브라우저(예: 웹 기반 이메일)와 같은 씬 클라이언트 인터페이스를 통해 다양한 클라이언트 디바이스로부터 액세스될 수 있다. 소비자는 제한된 사용자 특정 애플리케이션 구성 설정을 제외하고, 네트워크, 서버, 운영 체제, 스토리지 또는 심지어 개별 애플리케이션 능력을 포함한 기본 클라우드 인프라(underlying cloud infrastructure)를 관리하거나 제어하지 않는다.
PaaS(Platform as a Service): 소비자에게 제공되는 능력은 제공자가 지원하는 프로그래밍 언어 및 도구를 사용하여 생성된 소비자 생성 또는 획득 애플리케이션을 클라우드 인프라에 배포하는 것이다. 소비자는 네트워크, 서버, 운영 체제 또는 스토리지를 포함한 기본 클라우드 인프라를 관리하거나 제어하지 않지만 배포된 애플리케이션 및 애플리케이션 호스팅 환경 구성을 제어할 수 있다.
laaS(Infrastructure as a Service): 소비자에게 제공되는 능력은 소비자가 운영 체제 및 애플리케이션을 포함할 수 있는 임의의 소프트웨어를 배포 및 실행할 수 있는, 처리, 스토리지, 네트워크 및 기타 기본 컴퓨팅 리소스를 프로비저닝하는 것이다. 소비자는 기본 클라우드 인프라를 관리하거나 제어하지 않지만 운영 체제, 스토리지, 배포된 애플리케이션을 제어할 수 있으며, 일부 네트워킹 컴포넌트(예: 호스트 방화벽)에 대해 제한된 제어를 가질 수 있다.
배포 모델은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 인프라는 조직만을 위해 운영된다. 조직 또는 제3자가 관리할 수 있으며 온프레미스(on-premises) 또는 오프프레미스(off-premises)에 존재할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 인프라는 여러 조직에서 공유되며, 관심사(concern)(예: 미션(mission), 보안 요건, 정책 및 규정 준수 고려 사항(compliance considerations))을 공유하는 특정 커뮤니티를 지원한다. 조직 또는 제3자가 관리할 수 있으며, 온프레미스 또는 오프프레미스에 존재할 수 있다.
공용 클라우드(Public cloud): 클라우드 인프라는 일반 대중 또는 대규모 산업 그룹이 사용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 인프라는 고유한 엔티티로 남아 있지만, 데이터 및 애플리케이션 이식성(portability)(예: 클라우드 사이의 로드 밸런싱을 위한 클라우드 버스팅(bursting))을 가능하게 하는 표준화된 또는 독점 기술에 의해 함께 바인딩되는 둘 이상의 클라우드(사설, 커뮤니티, 또는 공용)의 구성이다.
클라우드 컴퓨팅 환경은 무상태(stateless), 낮은 커플링(coupling), 모듈성 및 의미론적 상호 운용성에 중점을 둔 서비스 지향적인 환경이다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드의 네트워크로 구성된 인프라가 있다.
도 5를 참조하면, 예시적인 클라우드 컴퓨팅 환경(500)이 도시되어 있다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(500)은 예를 들어 개인 휴대 정보 단말기(personal digital assistant, PDA) 또는 셀룰러 전화(54A), 데스크탑 컴퓨터(54B), 랩톱 컴퓨터(54C) 및/또는 자동차 컴퓨터 시스템(54N)과 같은, 클라우드 소비자에 의해 사용되는 로컬 컴퓨팅 디바이스가 통신할 수 있는 하나 이상의 클라우드 컴퓨팅 노드(10)를 포함한다. 클라우드 컴퓨팅 노드(10)는 서로 통신할 수 있다. 그것들은 위에서 설명된 사설 클라우드, 커뮤니티 클라우드, 공용 클라우드 또는 하이브리드 클라우드, 또는 이들의 조합과 같은 하나 이상의 네트워크에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 컴퓨팅 환경(500)이 클라우드 소비자가 로컬 컴퓨팅 디바이스에서 리소스를 유지할 필요가 없는 서비스로서, 인프라, 플랫폼 및/또는 소프트웨어를 제공할 수 있게 한다. 도 5에 도시된 컴퓨팅 디바이스(54A-N)의 타입이 단지 예시를 위한 것이며, 클라우드 컴퓨팅 노드(10) 및 클라우드 컴퓨팅 환경(500)은, 임의의 타입의 네트워크 및/또는 네트워크 주소 지정 연결(addressable connection)(예: 웹 브라우저를 사용함)을 통해 임의의 타입의 컴퓨터화된 디바이스와 통신할 수 있다는 것을 이해할 수 있다.
도 6을 참조하면, 클라우드 컴퓨팅 환경(500)(도 5)에 의해 제공되는 기능적 앱스트랙션 계층(layer)(600)의 세트가 도시되어 있다. 도 6에 도시된 컴포넌트, 계층 및 기능이 예시에 불과하며, 실시예가 이에 한정되는 것은 아님을 미리 이해해야 한다. 도시된 바와 같이, 다음 계층과 대응하는 기능이 제공된다.
하드웨어 및 소프트웨어 계층(60)은 하드웨어 컴포넌트 및 소프트웨어 컴포넌트를 포함한다. 하드웨어 컴포넌트의 예는: 메인 프레임(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버(62); 서버(63); 블레이드(blade) 서버(64); 저장 디바이스(65); 및 네트워크 및 네트워킹 컴포넌트(66)를 포함한다. 일부 실시예에서, 소프트웨어 컴포넌트는 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
가상화 계층(70)은 가상 엔티티, 예를 들어, 가상 서버(71); 가상 스토리지(72); 가상 사설 네트워크를 포함하는 가상 네트워크(73); 가상 애플리케이션 및 운영 체제(74); 및 가상 클라이언트(75)를 제공할 수 있는 추상화 계층을 제공한다.
일 예에서, 관리(management) 계층(80)은 아래에서 설명되는 기능들을 제공할 수 있다. 리소스 프로비저닝(resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 태스크를 수행하는 데 활용되는 컴퓨팅 리소스 및 기타 리소스의 동적 조달을 제공한다. 미터링 및 가격 책정(Metering and Pricing)(82)은 리소스가 클라우드 컴퓨팅 환경 내에서 활용됨에 따른 비용 추적을 제공하고, 이러한 리소스의 소비에 대한 청구 또는 송장 발행을 제공한다. 일 예에서, 이러한 리소스는 애플리케이션 소프트웨어 라이선스를 포함할 수 있다. 보안은 데이터 및 기타 리소스에 대한 보호는 물론 클라우드 소비자 및 태스크에 대한 신원 검증(identity verification)을 제공한다. 사용자 포털(83)은 소비자 및 시스템 관리자에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 레벨 관리(84)는 요구되는 서비스 레벨이 충족되도록 클라우드 컴퓨팅 리소스 할당 및 관리를 제공한다. 서비스 레벨 계약(Service Level Agreement, SLA) 계획 및 이행(fulfillment)(85)은 SLA에 따라 향후 요건이 예상되는 클라우드 컴퓨팅 리소스에 대한 사전 준비(pre-arrangement) 및 조달을 제공한다.
워크로드(Workload) 계층(90)은 클라우드 컴퓨팅 환경이 활용될 수 있는 기능의 예를 제공한다. 이 계층에서 제공될 수 있는 워크로드 및 기능의 예는: 매핑 및 네비게이션(navigation)(91); 소프트웨어 개발 및 수명 주기 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션(transaction) 처리(95); 및 음향 에코 억제(96)를 포함한다. 음향 에코 억제(96)는 전이중 통신에서 잔류 음향 에코를 억제할 수 있다.
일부 실시예는 임의의 가능한 기술적 세부 사항 레벨의 통합에서 시스템, 방법, 및/또는 컴퓨터가 판독 가능한 매체에 관한 것일 수 있다. 컴퓨터가 판독 가능한 매체는 프로세서로 하여금 작동을 수행하게 하기 위한 컴퓨터가 판독 가능한 프로그램 명령어를 갖는, 컴퓨터가 판독 가능한 비일시적 저장 매체(또는 미디어(media))를 포함할 수 있다.
컴퓨터가 판독 가능한 저장 매체는 명령어 실행 디바이스에 의해 사용하기 위한 명령어를 보유하고 저장할 수 있는 유형의 디바이스일 수 있다. 컴퓨터가 판독 가능한 저장 매체는 예를 들어 전자 저장 디바이스, 자기 저장 디바이스, 광학 저장 디바이스, 전자기 저장 디바이스, 반도체 저장 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 제한되지는 않는다. 컴퓨터가 판독 가능한 저장 매체의 보다 구체적인 예의 비배타적인 리스트는: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(random access memory, RAM), 판독 전용 메모리(read-only memory, ROM), 지울 수 있는 프로그램 가능한 판독 전용 메모리(erasable programmable read-only memory)(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(static random access memory, SRAM), 휴대용 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory, CD-ROM), 디지털 다목적 디스크(digital versatile disk, DVD), 메모리 스틱, 플로피 디스크, 펀치 카드 또는 그 위에 기록된 명령어가 있는 홈의 융기 구조와 같은 기계적으로 인코딩된 디바이스, 및 전술한 것의 임의의 적절한 조합을 포함한다. 여기에서 사용된, 컴퓨터가 판독 가능한 저장 매체는 전파 또는 기타 자유롭게 전파하는 전자기파, 도파관 또는 기타 전송 매체를 통해 전파하는 전자기파(예: 광섬유 케이블을 통해 통과하는 광펄스(light pulse)) 또는 와이어를 통해 전송되는 전기 신호와 같은 일시적인 신호(transitory signal) 자체로 해석되어서는 안된다.
여기에서 설명된, 컴퓨터가 판독 가능한 프로그램 명령어는 컴퓨터가 판독 가능한 저장 매체로부터 각각의 컴퓨팅/처리 디바이스로, 또는 네트워크, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 저장 디바이스로 다운로드될 수 있다. 네트워크는 구리 전송 케이블, 광 전송 섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함할 수 있다. 각 컴퓨팅/처리 디바이스의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터가 판독 가능한 프로그램 명령어를 수신하고, 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터가 판독 가능한 저장 매체에 저장하기 위해 컴퓨터가 판독 가능한 프로그램 명령어를 포워딩한다.
작동을 수행하기 위한 컴퓨터가 판독 가능한 프로그램 코드/명령어는 어셈블러 명령어, 명령어 세트 아키텍처(instruction-set-architecture, ISA) 명령어, 기계 명령어, 기계 종속 명령어, 마이크로코드, 펌웨어 명령어, 상태 설정 데이터, 집적 회로용 구성 데이터 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드 또는 객체 코드 중 하나일 수 있다. 컴퓨터가 판독 가능한 프로그램 명령어는 전체적으로 사용자의 컴퓨터에서, 독립 실행형 소프트웨어 패키지로서 부분적으로 사용자의 컴퓨터에서, 부분적으로 사용자의 컴퓨터 및 부분적으로 원격 컴퓨터에서 또는 전체적으로 원격 컴퓨터 또는 서버에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 통신망(local area network, LAN) 또는 광역 통신망(wide area network, WAN)을 포함한 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있으며, 또는 (예를 들어 인터넷 서비스 제공자를 사용하여 인터넷을 통해) 외부 컴퓨터로의 연결이 이루어질 수 있다. 일부 실시예에서, 예를 들어 프로그램 가능 로직 회로, FPGA(field-programmable gate arrays), 또는 PLA(programmable logic arrays)를 포함하는 전자 회로는, 측면이나 작동을 수행하기 위해, 전자 회로를 개인화하도록 컴퓨터가 판독 가능한 프로그램 명령어의 상태 정보를 활용하는 것에 의해 컴퓨터가 판독 가능한 프로그램 명령어를 실행할 수 있다.
이러한 컴퓨터가 판독 가능한 프로그램 명령어는 범용 컴퓨터, 특수 목적 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치의 프로세서에 제공되어 기계를 생성할 수 있으므로, 컴퓨터의 프로세서 또는 기타 프로그램 가능한 데이터 처리 장치를 통해 실행하는 명령어는, 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작(act)를 구현하기 위한 수단을 생성한다. 이들 컴퓨터가 판독 가능한 프로그램 명령어는 또한, 컴퓨터, 프로그램가능 데이터 처리 장치, 및/또는 다른 디바이스가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있으므로, 그 내부에 저장된 명령어를 가지는 컴퓨터가 판독 가능한 저장 매체는 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작의 측면을 구현하는 명령어를 포함하는 제조 물품을 포함한다.
컴퓨터가 판독 가능한 프로그램 명령어는 또한 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치 또는 다른 디바이스에 로딩되어, 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 디바이스에서 일련의 동작 단계가 수행되어 컴퓨터 구현 프로세스를 생성하도록 함으로써, 컴퓨터, 다른 프로그래밍 가능한 장치 또는 다른 디바이스에서 실행되는 명령어가, 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작을 구현한다.
도면의 흐름도 및 블록도는 다양한 실시예에 따른 시스템, 방법, 및 컴퓨터가 판독 가능한 매체의 가능한 구현의 아키텍처, 기능 및 작동을 예시한다. 이와 관련하여, 흐름도 또는 블록도의 각 블록은 지정된 로직 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 모듈, 세그먼트 또는 명령어의 일부를 나타낼 수 있다. 방법, 컴퓨터 시스템, 및 컴퓨터가 판독 가능한 매체는 도면에 도시된 것보다 추가적인 블록, 더 적은 블록, 상이한 블록, 또는 상이하게 배열된 블록을 포함할 수 있다. 일부 대안적인 구현에서, 블록에 언급된 기능은 도면에 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록은 실제로 동시에 또는 실질적으로 동시에 실행될 수 있거나 또는 연관된 기능에 따라 블록이 때때로 역순으로 실행될 수 있다. 또한, 블록도 및/또는 흐름도 예시의 각 블록과 블록도 및/또는 흐름도 예시의 블록 조합은, 지정된 기능 또는 동작을 수행하거나 또는 특수 목적 하드웨어 및 컴퓨터 명령어의 조합을 수행하는 하는 특수 목적 하드웨어 기반 시스템에 의해 구현될 수 있음을 유의한다.
여기에 설명된 시스템 및/또는 방법은 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합의 다른 형태로 구현될 수 있음이 명백할 것이다. 이러한 시스템 및/또는 방법을 구현하는 데 사용되는 실제 특수 제어 하드웨어 또는 소프트웨어 코드는 구현을 제한하지 않는다. 따라서, 시스템 및/또는 방법의 작동 및 행동(behavior)은 특정 소프트웨어 코드를 참조하지 않고 여기에서 설명되며 - 소프트웨어 및 하드웨어가 여기의 설명에 기반하여 시스템 및/또는 방법을 구현하도록 설계될 수 있음을 이해해야 한다.
여기에 사용된 엘리먼트, 동작 또는 명령어도 명시적으로 설명되지 않는 한 중요하거나 필수적인 것으로 해석되어서는 안 된다. 또한, 여기에서 사용된 관사 "a" 및 "an"은 하나 이상의 항목을 포함하도록 의도되고, "하나 이상(one or more)"과 상호교환적으로 사용될 수 있다. 또한, 여기에서 사용된 바와 같이, 용어 "세트"는 하나 이상의 항목(예를 들어, 관련 항목, 관련되지 않은 항목, 관련 및 관련되지 않은 항목의 조합 등)을 포함하도록 의도되고, "하나 이상"과 상호교환적으로 사용된다. 하나의 항목만 의도된 경우, 용어 "하나" 또는 유사한 언어가 사용된다. 또한, 여기에서 사용된 바와 같이, "갖다(has)", "갖다(have)", "갖는(having)" 등의 용어는 제한이 없는 용어로 의도된다. 또한, "~에 기반하여"라는 문구는 달리 명시적으로 언급되지 않는 한, "~에, 적어도 부분적으로, ~에 기반하여"를 의미하도록 의도된다.
다양한 측면 및 실시예의 설명은 예시의 목적으로 제시되었지만, 개시된 실시예로 완전하거나 제한되도록 의도되지 않는다. 특징들의 조합이 청구범위에 인용되거나 및/또는 명세서에 개시되더라도, 이러한 조합은 가능한 구현의 개시를 제한하도록 의도되지 않는다. 사실, 이들 특징 중 다수는 청구범위에 구체적으로 언급되지 않은 방식 및/또는 명세서에 개시되지 않은 방식으로 조합될 수 있다. 아래에 나열된 각 종속항은 하나의 청구항에만 직접적으로 의존할 수 있지만, 가능한 구현의 개시는 청구항 세트의 다른 모든 청구항과 조합된 각 종속항을 포함한다. 기술된 실시예의 범위를 벗어나지 않고 많은 수정 및 변형이 당업자에게 명백할 것이다. 여기에서 사용된 용어는 실시예의 원리, 시장에서 발견되는 기술에 대한 실질적인 애플리케이션 또는 기술적 개선을 가장 잘 설명하거나, 또는 당업자가 여기에서 개시된 실시예를 이해할 수 있게 하기 위해 선택되었다.

Claims (20)

  1. 프로세서에 의해 실행가능한, 음향 에코 억제 방법으로서,
    마이크(microphone) 신호 파형 및 원단(far-end) 참조 신호 파형을 수신하는 단계;
    상기 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 에코 신호 파형을 추정하는 단계; 및
    상기 마이크 신호 파형으로부터 상기 추정된 에코 신호 파형을 감산하는 것에 기반하여 근단(near-end) 음성 신호 파형을 출력하는 단계 - 에코는 상기 근단 음성 신호 파형 내에서 억제됨 -
    를 포함하는 음향 에코 억제 방법.
  2. 제1항에 있어서,
    상기 에코 신호는 상기 원단 참조 신호 파형에 대한 선형 필터링에 기반하여 계산되는, 음향 에코 억제 방법.
  3. 제1항에 있어서,
    상기 에코 신호는 단일 탭 마스크에 상기 마이크 신호 파형과 연관된 신호 스펙트럼을 곱하는 것에 기반하여 계산되는, 음향 에코 억제 방법.
  4. 제1항에 있어서,
    상기 에코 신호는 제1 스테이지에 의해 추정되고, 상기 근단 음성 신호는 제2 스테이지에 의해 추정되는, 음향 에코 억제 방법.
  5. 제4항에 있어서,
    상기 제1 스테이지는 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 음향 에코 억제 방법.
  6. 제4항에 있어서,
    상기 제2 스테이지는 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 음향 에코 억제 방법.
  7. 제4항에 있어서,
    상기 제1 스테이지 및 상기 제2 스테이지는 순환 신경망을 포함하는, 음향 에코 억제 방법.
  8. 음향 에코 억제를 위한 컴퓨터 시스템으로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된, 하나 이상의 컴퓨터가 판독 가능한 비일시적 저장 매체; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령된 대로 작동하도록 구성된 하나 이상의 컴퓨터 프로세서
    를 포함하고,
    상기 컴퓨터 프로그램 코드는:
    상기 하나 이상의 컴퓨터 프로세서가, 마이크 신호 파형 및 원단 참조 신호 파형을 수신하게 하도록 구성된 수신 코드;
    상기 하나 이상의 컴퓨터 프로세서가, 상기 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 에코 신호 파형을 추정하게 하도록 구성된 추정 코드; 및
    상기 하나 이상의 컴퓨터 프로세서가, 상기 마이크 신호 파형으로부터 상기 추정된 에코 신호 파형을 감산하는 것에 기반하여 근단 음성 신호 파형을 출력하게 하도록 구성된 출력 코드 - 에코는 상기 근단 음성 신호 파형 내에서 억제됨 -
    를 포함하는, 컴퓨터 시스템.
  9. 제8항에 있어서,
    상기 에코 신호는 상기 원단 참조 신호 파형에 대한 선형 필터링에 기반하여 계산되는, 컴퓨터 시스템.
  10. 제8항에 있어서,
    상기 에코 신호는 단일 탭 마스크에 상기 마이크 신호 파형과 연관된 신호 스펙트럼을 곱하는 것에 기반하여 계산되는, 컴퓨터 시스템.
  11. 제8항에 있어서,
    상기 에코 신호는 제1 스테이지에 의해 추정되고, 상기 근단 음성 신호는 제2 스테이지에 의해 추정되는, 컴퓨터 시스템.
  12. 제11항에 있어서,
    상기 제1 스테이지는 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 컴퓨터 시스템.
  13. 제11항에 있어서,
    상기 제2 스테이지는 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 컴퓨터 시스템.
  14. 제11항에 있어서,
    상기 제1 스테이지 및 상기 제2 스테이지는 순환 신경망을 포함하는, 컴퓨터 시스템.
  15. 음향 에코 억제를 위한 컴퓨터 프로그램이 저장된, 컴퓨터가 판독 가능한 비일시적 매체로서,
    상기 컴퓨터 프로그램은 하나 이상의 컴퓨터 프로세서가:
    마이크 신호 파형 및 원단 참조 신호 파형을 수신하고;
    상기 마이크 신호 파형 및 원단 참조 신호 파형에 기반하여 에코 신호 파형을 추정하며; 그리고
    상기 마이크 신호 파형으로부터 상기 추정된 에코 신호 파형을 감산하는 것에 기반하여 근단 음성 신호 파형을 출력하게 하도록 - 에코는 상기 근단 음성 신호 파형 내에서 억제됨 - 구성되는, 컴퓨터가 판독 가능한 비일시적 매체.
  16. 제15항에 있어서,
    상기 에코 신호는 상기 원단 참조 신호 파형에 대한 선형 필터링에 기반하여 계산되는, 컴퓨터가 판독 가능한 비일시적 매체.
  17. 제15항에 있어서,
    상기 에코 신호는 단일 탭 마스크에 상기 마이크 신호 파형과 연관된 신호 스펙트럼을 곱하는 것에 기반하여 계산되는, 컴퓨터가 판독 가능한 비일시적 매체.
  18. 제15항에 있어서,
    상기 에코 신호는 제1 스테이지에 의해 추정되고, 상기 근단 음성 신호는 제2 스테이지에 의해 추정되는, 컴퓨터가 판독 가능한 비일시적 매체.
  19. 제18항에 있어서,
    상기 제1 스테이지는 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 원단 참조 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 컴퓨터가 판독 가능한 비일시적 매체.
  20. 제18항에 있어서,
    상기 제2 스테이지는 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 도메인 신호에 대한 스케일 불변 신호 대 왜곡 비율과, 상기 마이크 신호 파형 및 상기 에코 신호 파형과 연관된 시간 주파수 스펙트럼 크기에 대한 손실을 적용하는, 컴퓨터가 판독 가능한 비일시적 매체.
KR1020237015337A 2021-09-27 2022-08-04 음향 에코 제거 및 잔류 에코 억제를 위한 통합 심층 신경망 모델 KR20230084236A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/485,943 2021-09-27
US17/485,943 US11776556B2 (en) 2021-09-27 2021-09-27 Unified deep neural network model for acoustic echo cancellation and residual echo suppression
PCT/US2022/039386 WO2023048838A1 (en) 2021-09-27 2022-08-04 Unified deep neural network model for acoustic echo cancellation and residual echo suppression

Publications (1)

Publication Number Publication Date
KR20230084236A true KR20230084236A (ko) 2023-06-12

Family

ID=85718080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237015337A KR20230084236A (ko) 2021-09-27 2022-08-04 음향 에코 제거 및 잔류 에코 억제를 위한 통합 심층 신경망 모델

Country Status (6)

Country Link
US (2) US11776556B2 (ko)
EP (1) EP4211685A4 (ko)
JP (1) JP2024502299A (ko)
KR (1) KR20230084236A (ko)
CN (1) CN116547750A (ko)
WO (1) WO2023048838A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11984110B2 (en) * 2022-03-07 2024-05-14 Mediatek Singapore Pte. Ltd. Heterogeneous computing for hybrid acoustic echo cancellation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434110B1 (en) * 1998-03-20 2002-08-13 Cirrus Logic, Inc. Full-duplex speakerphone circuit including a double-talk detector
US6282176B1 (en) * 1998-03-20 2001-08-28 Cirrus Logic, Inc. Full-duplex speakerphone circuit including a supplementary echo suppressor
US6212273B1 (en) * 1998-03-20 2001-04-03 Crystal Semiconductor Corporation Full-duplex speakerphone circuit including a control interface
US7099821B2 (en) * 2003-09-12 2006-08-29 Softmax, Inc. Separation of target acoustic signals in a multi-transducer arrangement
US7464029B2 (en) * 2005-07-22 2008-12-09 Qualcomm Incorporated Robust separation of speech signals in a noisy environment
US8032365B2 (en) * 2007-08-31 2011-10-04 Tellabs Operations, Inc. Method and apparatus for controlling echo in the coded domain
US9373339B2 (en) * 2008-05-12 2016-06-21 Broadcom Corporation Speech intelligibility enhancement system and method
US9591422B2 (en) * 2012-10-09 2017-03-07 Koninklijke Philips N.V. Method and apparatus for audio interference estimation
WO2018006856A1 (zh) * 2016-07-07 2018-01-11 腾讯科技(深圳)有限公司 一种回声消除的方法及终端、计算机存储介质
US10771621B2 (en) * 2017-10-31 2020-09-08 Cisco Technology, Inc. Acoustic echo cancellation based sub band domain active speaker detection for audio and video conferencing applications
US10546593B2 (en) * 2017-12-04 2020-01-28 Apple Inc. Deep learning driven multi-channel filtering for speech enhancement
WO2019213769A1 (en) * 2018-05-09 2019-11-14 Nureva Inc. Method, apparatus, and computer-readable media utilizing residual echo estimate information to derive secondary echo reduction parameters
US10826559B2 (en) * 2018-05-16 2020-11-03 Nokia Solutions And Networks Oy Echo cancellation in a multiport data transceiver
US11393487B2 (en) * 2019-03-28 2022-07-19 Samsung Electronics Co., Ltd. System and method for acoustic echo cancelation using deep multitask recurrent neural networks
US10811029B1 (en) * 2019-10-31 2020-10-20 Amazon Technologies, Inc. Cascade echo cancellation for asymmetric references
US11508351B2 (en) * 2021-03-01 2022-11-22 Beijing Didi Infinity Technology And Development Co., Ltd. Multi-task deep network for echo path delay estimation and echo cancellation

Also Published As

Publication number Publication date
JP2024502299A (ja) 2024-01-18
EP4211685A4 (en) 2024-03-06
WO2023048838A1 (en) 2023-03-30
US20230395091A1 (en) 2023-12-07
US20230096876A1 (en) 2023-03-30
CN116547750A (zh) 2023-08-04
US11776556B2 (en) 2023-10-03
EP4211685A1 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
US10249320B2 (en) Normalizing the speaking volume of participants in meetings
US10230582B2 (en) Identifying resources for purging in a cloud based on inter-dependency graph analysis
US10599498B2 (en) Aggregating requests among microservices
US20170357724A1 (en) Model independent and network structure driven ranking of nodes for limiting the spread of misinformation through location based social networks
JP2022552119A (ja) オーディオ信号における発話の敵対保護の提供
US20230395091A1 (en) Neural-echo: an unified deep neural network model for acoustic echo cancellation and residual echo suppression
US20190129620A1 (en) Using attack trees to reduce memory consumption by rule engines
US20220284885A1 (en) All deep learning minimum variance distortionless response beamformer for speech separation and enhancement
US20220310092A1 (en) Multi-look enhancement modeling and application for keyword spotting
US10453167B1 (en) Estimating performance of GPU application for different GPU-link performance ratio
US20220329934A1 (en) Echo cancellation in online conference systems
JP2023540479A (ja) データ解析を使用した音声認識及びインターレース方式のオーディオ入力の拡張
US20170134447A1 (en) Real time voice participate self-assessment
US9514745B2 (en) Voice focus enabled by predetermined triggers
US11640276B2 (en) Mask device for a listening device
US11728955B2 (en) Dynamic telecom network agent filtering
US11423906B2 (en) Multi-tap minimum variance distortionless response beamformer with neural networks for target speech separation
WO2023091228A1 (en) Adl-ufe: all deep learning unified front-end system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal