KR20220162865A - 에코 검출 - Google Patents

에코 검출 Download PDF

Info

Publication number
KR20220162865A
KR20220162865A KR1020227041097A KR20227041097A KR20220162865A KR 20220162865 A KR20220162865 A KR 20220162865A KR 1020227041097 A KR1020227041097 A KR 1020227041097A KR 20227041097 A KR20227041097 A KR 20227041097A KR 20220162865 A KR20220162865 A KR 20220162865A
Authority
KR
South Korea
Prior art keywords
echo
audio signal
frequency
microphone
microphone audio
Prior art date
Application number
KR1020227041097A
Other languages
English (en)
Other versions
KR102657905B1 (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 구글 엘엘씨
Publication of KR20220162865A publication Critical patent/KR20220162865A/ko
Application granted granted Critical
Publication of KR102657905B1 publication Critical patent/KR102657905B1/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
    • 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 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Telephone Function (AREA)

Abstract

방법(400)은 마이크로폰 오디오 신호(132) 및 재생 오디오 신호(112)를 수신하는 단계, 및 마이크로폰 오디오 신호의 주파수 표현(324) 및 재생 오디오 신호의 주파수 표현을 결정하는 단계를 포함한다. 각각의 주파수 표현에 대해, 방법은 또한, 주파수 표현에 기반하여 특징들(302)을 결정하는 단계를 포함한다. 각각의 특징은 주파수 표현의 한 쌍의 주파수들(342) 및 한 쌍의 주파수들 사이의 시간 기간에 대응한다. 방법은 또한 마이크로폰 오디오 신호의 주파수 표현에 기반한 제1 특징과, 재생 오디오 신호의 주파수 표현에 기반한 제2 특징 사이에 매치(212)가 발생한다고 결정하는 단계, 및 제1 특징과 제2 특징 사이의 지연 값(222)이 마이크로폰 오디오 신호 내의 에코에 대응한다고 결정하는 단계를 포함한다.

Description

에코 검출{ECHO DETECTION}
[0001] 본 개시내용은 에코 검출(echo detection)에 관한 것이다.
[0002] 오디오 시스템들이 오디오를 캡처하고 전달할 때, 이러한 주변 디바이스들은 음향 에코(acoustic echo)의 영향을 받을 수 있다. 음향 에코는 일반적으로, 오디오 재생 디바이스(예컨대, 스피커)로부터 생성된 가청 신호가 음향 환경(예컨대, 공기)을 통해 음향파 형태로 전파되고, 수정된 버전의 음향파가 다시 마이크로폰으로 반사될 때, 발생한다. 또 다른 형태의 에코는, 오디오 재생 디바이스(예컨대, 스피커)와 마이크로폰 사이의 원하지 않는 전기적 커플링 효과들(electrical coupling effects)로 인해 발생하는 전기적 에코이다. 그런 다음, 이러한 에코 경로들에 의해 생성된 신호는 오디오 에코로서 전달되게 된다. 에코들은, 예컨대, 주변장치들(peripherals)의 근접성(proximity) 또는 주변장치들의 품질과 같은 다양한 요인들로 인해 발생할 수 있다.
[0003] 소프트웨어 애플리케이션을 사용하는 RTC(real-time communication)와 같은 대화 내에서 에코가 발생할 때, 에코는 사용자 경험에 부정적인 영향을 발생시킨다. 에코가 하드웨어 호환성 또는 하드웨어 품질과 같은 비-소프트웨어 이슈들로 인한 것일 수 있지만, 사용자는 보통 이러한 부정적인 경험과, 통신에 사용되는 소프트웨어 애플리케이션(예컨대, RTC 애플리케이션)을 연관시킬 수 있다. 사람들이 에코에 영향을 받는 시스템들을 사용하여 점점 더 많이 통신하기 때문에, 이러한 통신 시스템 내에서 오디오 상호작용을 이해하기 위한 에코 검출 시스템들 및 방법들이 구현될 수 있다.
[0004] 본 개시내용의 일 양상은 데이터 프로세싱 하드웨어에서, 마이크로폰 오디오 신호 및 재생 오디오 신호(playout audio signal)를 수신하는 단계, 및 데이터 프로세싱 하드웨어에 의해, 마이크로폰 오디오 신호의 주파수 표현(frequency representation) 및 재생 오디오 신호의 주파수 표현을 결정하는 단계를 포함하는 방법을 제공한다. 각각의 주파수 표현에 대해, 방법은 또한, 데이터 프로세싱 하드웨어에서, 주파수 표현에 기반하여 특징들(features)을 결정하는 단계를 포함한다. 각각의 특징은 주파수 표현의 한 쌍의 주파수들 및 한 쌍의 주파수들 사이의 시간 기간에 대응한다. 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 마이크로폰 오디오 신호의 주파수 표현에 기반한 제1 특징과, 재생 오디오 신호의 주파수 표현에 기반한 제2 특징 사이에 매치가 발생한다고 결정하는 단계를 포함한다. 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 제1 특징과 제2 특징 사이의 지연 값(delay value)이 마이크로폰 오디오 신호 내의 에코에 대응한다고 결정하는 단계를 포함한다.
[0005] 본 개시내용의 구현들은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 지연 값이 에코에 대응한다고 결정하는 단계는, 제1 특징과 제2 특징 사이의 지연 값이 에코 임계치를 충족시킨다고 결정하는 단계를 포함하고, 에코 임계치는 개개의 에코의 전조(predictive)가 되는 특정 지연 값의 카운트를 나타낸다. 부가적인 구현들에서, 한 쌍의 주파수들은 주파수 표현의 제1 피크 주파수 및 제2 피크 주파수에 대응한다. 여기서, 제2 피크 주파수는 제1 피크 주파수에 인접하고 제1 피크 주파수로부터의 임계 주파수 차이 내에 있고, 여기서 임계 주파수 차이는 제1 피크 주파수로부터의 주파수 허용오차(frequency tolerance)에 대응한다. 주파수 표현은 스펙트로그램(spectrogram)을 포함할 수 있다.
[0006] 일부 예들에서, 마이크로폰 오디오 신호를 수신하는 단계는, 에코 감소 디바이스로부터 에코 감소된 신호로서 마이크로폰 오디오 신호를 수신하는 단계를 포함하고, 에코 감소 디바이스는 마이크로폰 오디오 신호와 재생 오디오 신호 사이의 에코를 감소시키도록 구성된다. 부가적으로 또는 대안적으로, 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 수신된 마이크로폰 오디오 신호 및 수신된 재생 오디오 신호 각각을 다운-샘플링(down-sampling)하는 단계를 포함할 수 있다.
[0007] 일부 구현들에서, 마이크로폰 오디오 신호 및 재생 오디오 신호의 주파수 표현을 결정하는 단계는, 마이크로폰 오디오 신호 및 재생 오디오 신호의 각각의 오디오 신호에 대해, 오디오 신호를 샘플 블록들(sample blocks)로 분할하는 단계, 및 각각의 샘플 블록의 주파수 변환에 기반하여 주파수 표현의 계수들을 결정하는 단계를 포함한다. 부가적인 구현들에서, 각각의 특징에 대응하는 한 쌍의 주파수들은 특징 주파수 임계치를 충족시킨다. 부가적으로 또는 대안적으로, 마이크로폰 오디오 신호 및 재생 오디오 신호를 수신하는 단계, 마이크로폰 오디오 신호의 주파수 표현 및 재생 오디오 신호의 주파수 표현을 결정하는 단계, 각각의 주파수 표현에 대한 특징들을 결정하는 단계, 제1 특징과 제2 특징 사이에 매치가 발생한다고 결정하는 단계, 및 제1 특징과 제2 특징 사이의 지연 값이 에코에 대응한다고 결정하는 단계는 실시간으로 동시에 발생한다. 일부 예들에서, 방법은 또한, 데이터 프로세싱 하드웨어에 의해, 제1 특징과 제2 특징 사이의 지연 값이 에코에 대응한다고 결정하는 것에 기반하여, 수신된 마이크로폰 오디오 신호 및 수신된 재생 오디오 신호를 제거하는 단계를 포함한다.
[0008] 본 개시내용의 다른 양상은 방법을 제공하고, 방법은, 데이터 프로세싱 하드웨어에서 실시간으로, 마이크로폰 오디오 신호 및 재생 오디오 신호를 수신하는 단계, 및 데이터 프로세싱 하드웨어에 의해 실시간으로, 재생 오디오 신호로부터 제1 세트의 재생 특징들을 결정하는 단계를 포함하고, 제1 세트의 재생 특징들은 재생 오디오 신호로부터 미리 결정된 시간 블록을 나타내고, 각각의 재생 특징은 한 쌍의 재생 오디오 신호 주파수들 및 한 쌍의 재생 오디오 신호 주파수들 사이의 시간 기간에 대응한다. 방법은 또한, 데이터 프로세싱 하드웨어에 의해 실시간으로, 수신된 마이크로폰 오디오 신호에 대응하는 마이크로폰 특징들을 결정하는 단계를 포함하고, 각각의 마이크로폰 특징은 한 쌍의 마이크로폰 오디오 신호 주파수들 및 한 쌍의 마이크로폰 오디오 신호 주파수들 사이의 시간 기간에 대응한다. 방법은 또한 데이터 프로세싱 하드웨어에 의해 실시간으로, 제1 세트의 재생 특징들의 재생 특징과 제1 마이크로폰 특징 사이에 매치가 발생하는지 여부를 결정하는 단계, 및 어떠한 매치도 발생하지 않을 때: 데이터 프로세싱 하드웨어에 의해 실시간으로, 재생 오디오 신호에 기반하여 제2 세트의 재생 오디오 특징들을 결정하는 단계 ― 제2 세트의 재생 특징들은 재생 오디오 신호로부터의 제1 세트의 재생 특징들에 인접한 미리 결정된 시간 블록을 나타냄 ― ; 데이터 프로세싱 하드웨어에 의해 실시간으로, 제2 세트의 재생 특징들로부터의 개개의 재생 특징이 제2 마이크로폰 특징과 매칭한다고 결정하는 단계; 및 데이터 프로세싱 하드웨어에 의해 실시간으로, 매칭된 제2 마이크로폰 특징이 마이크로폰 오디오 신호 내의 에코인 것을 식별하는 단계를 포함한다.
[0009] 이러한 양상은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 예들에서, 마이크로폰 오디오 신호를 수신하는 단계는, 에코 감소 디바이스(140)로부터 에코 감소된 신호로서 마이크로폰 오디오 신호를 수신하는 단계를 더 포함한다. 이러한 예들에서, 에코 감소 디바이스는 마이크로폰 오디오 신호와 재생 오디오 신호 사이의 에코를 감소시키도록 구성된다.
[0010] 본 개시내용의 또 다른 양상은 시스템을 제공하고, 시스템은 데이터 프로세싱 하드웨어, 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때, 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장하고, 동작들은, 마이크로폰 오디오 신호 및 재생 오디오 신호를 수신하는 동작, 및 마이크로폰 오디오 신호의 주파수 표현 및 재생 오디오 신호의 주파수 표현을 결정하는 동작을 포함한다. 각각의 주파수 표현에 대해, 동작들은 또한, 주파수 표현에 기반하여 특징들을 결정하는 동작을 포함한다. 각각의 특징은 주파수 표현의 한 쌍의 주파수들 및 한 쌍의 주파수들 사이의 시간 기간에 대응한다. 동작들은 또한, 마이크로폰 오디오 신호의 주파수 표현에 기반한 제1 특징과, 재생 오디오 신호의 주파수 표현에 기반한 제2 특징 사이에 매치가 발생한다고 결정하는 동작을 포함한다. 동작들은 또한, 제1 특징과 제2 특징 사이의 지연 값이 마이크로폰 오디오 신호 내의 에코에 대응한다고 결정하는 동작을 포함한다.
[0011] 이러한 양상은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 지연 값이 에코에 대응한다고 결정하는 동작은, 제1 특징과 제2 특징 사이의 지연 값이 에코 임계치를 충족시킨다고 결정하는 동작을 포함하고, 에코 임계치는 개개의 에코의 전조가 되는 특정 지연 값의 카운트를 나타낸다. 부가적인 구현들에서, 한 쌍의 주파수들은 주파수 표현의 제1 피크 주파수 및 제2 피크 주파수에 대응한다. 여기서, 제2 피크 주파수는 제1 피크 주파수에 인접하고 제1 피크 주파수로부터의 임계 주파수 차이 내에 있고, 여기서 임계 주파수 차이는 제1 피크 주파수로부터의 주파수 허용오차에 대응한다. 주파수 표현은 스펙트로그램을 포함할 수 있다.
[0012] 일부 예들에서, 마이크로폰 오디오 신호를 수신하는 동작은, 에코 감소 디바이스로부터 에코 감소된 신호로서 마이크로폰 오디오 신호를 수신하는 동작을 포함하고, 에코 감소 디바이스는 마이크로폰 오디오 신호와 재생 오디오 신호 사이의 에코를 감소시키도록 구성된다. 부가적으로 또는 대안적으로, 동작들은 또한 수신된 마이크로폰 오디오 신호 및 수신된 재생 오디오 신호 각각을 다운-샘플링하는 동작을 포함할 수 있다.
[0013] 일부 구현들에서, 마이크로폰 오디오 신호 및 재생 오디오 신호의 주파수 표현을 결정하는 동작은, 마이크로폰 오디오 신호 및 재생 오디오 신호의 각각의 오디오 신호에 대해, 오디오 신호를 샘플 블록들로 분할하는 동작, 및 각각의 샘플 블록의 주파수 변환에 기반하여 주파수 표현의 계수들을 결정하는 동작을 포함한다. 부가적인 구현들에서, 각각의 특징에 대응하는 한 쌍의 주파수들은 특징 주파수 임계치를 충족시킨다. 부가적으로 또는 대안적으로, 마이크로폰 오디오 신호 및 재생 오디오 신호를 수신하는 동작, 마이크로폰 오디오 신호의 주파수 표현 및 재생 오디오 신호의 주파수 표현을 결정하는 동작, 각각의 주파수 표현에 대한 특징들을 결정하는 동작, 제1 특징과 제2 특징 사이에 매치가 발생한다고 결정하는 동작, 및 제1 특징과 제2 특징 사이의 지연 값이 에코에 대응한다고 결정하는 동작은 실시간으로 동시에 발생한다. 일부 예들에서, 동작들은 또한, 제1 특징과 제2 특징 사이의 지연 값이 에코에 대응한다고 결정하는 것에 기반하여, 수신된 마이크로폰 오디오 신호 및 수신된 재생 오디오 신호를 제거하는 동작을 포함한다.
[0014] 본 개시내용의 하나 이상의 구현들의 세부사항들은 첨부 도면들 및 이하의 설명에서 제시된다. 다른 양상들, 특징들 및 장점들은 상세한 설명과 도면들 및 청구항들로부터 명백해질 것이다.
[0015] 도 1은 에코 검출 시스템의 예의 개략도이다.
[0016] 도 2a 및 2b는 에코 검출 시스템 내에서 동작하는 예시적인 에코 검출기들의 개략도들이다.
[0017] 도 3a-3d는 에코 검출 시스템 내에서 동작하는 에코 검출기들의 예시적인 특징 추출기의 개략도들이다.
[0018] 도 4 및 5는 에코 검출 시스템 내에서 에코를 검출하는 예시적인 방법들의 흐름도들이다.
[0019] 도 6은 본원에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0020] 다양한 도면들 내의 유사한 참조 심볼들은 유사한 엘리먼트들을 나타낸다.
[0021] 도 1은 에코 검출 시스템(100)의 예이다. 에코 검출 시스템(100)은 일반적으로 신호 소스(110), 오디오 재생 디바이스(120), 마이크로폰(130) 및 에코 검출기(200)를 포함한다. 에코 검출 시스템(100)은, 사용자(10)가 오디오 재생 디바이스(120)(예컨대, 스피커)로부터 재생 오디오(122)를 수신하고, 마이크로폰(130)이 재생 오디오(122)의 수정된 버전을 에코로서 수신하는 환경이다. 마이크로폰(130)은, 사용자(10)에 의해 생성된 음성(speech)(12) 또는 다른 가청 사운드를 캡처하도록 구성되며, 이는 에코의 캡처를 초래할 수 있다. 예컨대, RTC(real-time communication) 애플리케이션을 사용하는 제1 사용자(10)와 제2 사용자 간의 대화에서, 제1 사용자(10)와 대화하는 제2 사용자는 후속적으로 에코 및 캡처된 음성(12) 둘 모두를 포함하는 오디오를 수신할 뿐만 아니라, 제2 사용자의 시스템(예컨대, 신호 소스(110))으로부터의 에코를 포함하는 재생 오디오(122)를 제1 사용자(10)에 제공할 수 있다. 이 상황에서, 어느 한 사용자(예컨대, 제1 사용자(10) 또는 제2 사용자)에 의해 수신된 에코는 사용자의 경험에 부정적인 영향을 미친다. 차례로, 사용자(10)는, 에코가 하드웨어(예컨대, 스피커 및 마이크)와 같은 다른 수단에 의해 유발될 수 있음에도 불구하고, 이러한 부정적인 경험과, 예컨대, RTC 애플리케이션을 연관시킬 수 있다. 이러한 부정적인 영향들에 대처하기 위해, 에코 검출 시스템(100)은, 에코 검출 시스템(100) 내에서 발생하는 에코를 이해하기 위한 에코 검출기(200)를 포함한다. 에코 검출 시스템(100)이 일반적으로, 예컨대, 오디오 재생 디바이스(120) 및 마이크로폰(130)과 함께 음향 에코의 관점에서 설명되지만, 에코 검출 시스템(100)은, 오디오 시스템 내에서 전기적 커플링 효과들로부터 발생하는 전기적 에코(예컨대, 라인 에코)를 결정하기 위해 동일하게 적용될 수 있다.
[0022] 간단함을 위해, 도 1은 사용자(10)와 관련된 대화의 일 측면을 묘사한다. 여기서, 신호 소스(110)는 일반적으로, 재생 오디오 신호(112)를 제공할 수 있는 임의의 소스를 지칭할 수 있다. 예컨대, 신호 소스(110)는, 제1 사용자(10)와 대화하는 제2 사용자로부터의 음성을 캡처하는 제2 마이크로폰 또는 제2 마이크로폰(130)과 연관된 프로세서일 수 있다.
[0023] 오디오 재생 디바이스(120)는 전기 신호를 가청 사운드(즉, 오디오)로 변환(translate)하도록 구성된 디바이스이다. 예컨대, 도 1은 스피커로서 오디오 재생 디바이스(120)를 예시한다. 여기서, 재생 오디오 신호(112)는, 오디오 재생 디바이스(120)에 의해 사용자(10) 및/또는 사용자 환경을 위한 재생 오디오(122)로 변환된 전기 신호이다.
[0024] 마이크로폰(130)은 일반적으로, 가청 사운드를 전기 신호로 변환하는 디바이스를 지칭한다. 도 1의 에코 검출 시스템(100)에서, 마이크로폰(130)은 사용자(10) 및/또는 오디오 재생 디바이스(120)로부터의 오디오 사운드를 마이크로폰 오디오 신호(132)로 변환한다. 사용자(10)로부터의 오디오 사운드는 사용자(10)로부터의 음성(12) 또는 다른 가청 사운드일 수 있는 반면에, 오디오 재생 디바이스(120)로부터의 오디오 사운드는 재생 오디오(122)의 적어도 일부를 지칭한다.
[0025] 일부 예들에서, 에코 검출 시스템(100)은 또한 에코 감소기(140)를 포함한다. 에코 감소기(140)는, 에코 검출기(200) 이전에 에코를 (예컨대, 억제에 의해) 감소 또는 제거하도록 구성된 에코 감소 디바이스이다. 에코 감소기(140)는, 신호 입력(예컨대, 마이크로폰 오디오 신호(132))에 기반하여, 감소된 신호(142)를 출력으로서 생성한다. 감소된 신호(142)는, 에코 감소기(140)가 입력 신호(예컨대, 마이크로폰 오디오 신호(132))를 실제로 수정하는지 여부에 관계없이, 에코 감소기(140)의 신호 출력을 지칭한다. 예컨대, 에코 감소기(140)는 일부 시나리오들에서 마이크로폰 오디오 신호(132)를 수정하지 않기로 결정할 수 있다. 에코 감소기(140)가 에코를 삭제하거나 제거하려고 할 수 있지만, 보통 이러한 에코 제거 프로세스는 불완전하고, 일정 정도의 잔류 에코를 초래한다. 이러한 예들에서, 에코 검출기(200)는, 에코 감소기(140)로부터 출력된 감소된 신호(142)에서 잔류 에코를 검출한다. 다시 말해서, 에코 검출기(200)는 에코 감소기(140)의 유효성(effectiveness)을 식별 또는 모니터링할 수 있다. 여기서, 에코 감소기(140) 이후에 에코 검출기(200)에 의해 검출된 잔류 에코는 에코 감소기(140) 또는 에코 감소기(140)를 관리하는 엔티티에 피드백을 제공할 수 있다. 예컨대, 에코 감소기(140) 또는 에코 감소기(140)를 관리하는 엔티티는 에코 검출기(200)로부터 피드백을 수신하고, 에코 감소기(140)의 파라미터들을 업데이트하여, 에코 감소기(140)로부터의 감소된 신호(142) 내에 남아있는 잔류 에코의 양을 최적화하거나 추가로 최소화한다. 부가적으로 또는 대안적으로, 에코 감소기(140)는, 예컨대, 에코 검출 시스템(100) 내에서 감소된 신호(142)의 잔류 에코를 실시간으로 최소화하기 위해, 에코 검출기(200)로부터의 피드백에 기반하여, 모델(예컨대, 머신 학습 모델 또는 뉴럴 네트워크 모델)을 구현할 수 있다.
[0026] 일부 예들에서, 에코 검출기(200)는, 검출된 에코(예컨대, 잔류 에코)에 관한 피드백을 사용자(10)에게 제공한다. 에코 검출기(200)는 에코를 감소시키는 방법에 관한 추천들 또는 힌트들을 사용자(10)에게 제공할 수 있다. 예컨대, 에코 검출기(200)는, 사용자(10)에게 헤드셋을 사용하는 것을 추천하거나, 사용자(10)에게 특정 하드웨어(예컨대, 더 적은 에코를 생성하는 특정 타입의 마이크로폰 또는 스피커)를 추천할 수 있다.
[0027] 도 1의 예는, 에코 검출기(200)가 에코 감소기(140)의 존재 유무에 관계없이 에코 검출 시스템(100)에서 에코를 검출할 수 있음을 나타내기 위해 점선 윤곽으로 에코 감소기(140)를 도시한다. 에코 감소기(140)는, 에코를 제거하거나 감소시킴으로써 오디오 신호의 품질을 개선하는 데 사용되는 하드웨어 및/또는 소프트웨어일 수 있다. 에코 감소기들(140)의 일부 예들은 AES(acoustic echo suppression), AEC(acoustic echo cancelation) 및/또는 LEC(line echo cancelation)를 위한 디바이스들이다. 일부 구성들에서, 에코 검출기(200)가 에코 감소기(140)로부터 잔류 에코를 검출할 때, 에코 검출기(200)는 에코 감소기(140)를 제어하거나, 이에 대한 제어 변경을 추천하도록 구성된다. 예컨대, 에코 검출기(200)는, 에코 감소기(140)로부터 검출된 에코에 기반하여, 하드웨어 에코 감소기(140)로부터 소프트웨어 에코 감소기(140)로(또는 그 반대로) 스위칭하거나 스위칭하는 것을 추천한다.
[0028] 에코 감소기(140)는 에코의 생성을 방지하기 위한 의도로 포지셔닝된다. 일부 구성들에서, 에코 감소기(140)는, 마이크로폰 오디오 신호(132)로서 감소된 신호(142)(예컨대, 에코 억제된 신호 또는 에코 제거된 신호)를 생성하기 위해, 마이크로폰(130)과 함께 동작하도록 마이크로폰(130)에 또는 그에 인접하여 위치된다. (도 1에 도시된 바와 같이) 다른 구성들에서, 에코 감소기(140)는 마이크로폰(130) 다운스트림에 포지셔닝되고, 마이크로폰(130)으로부터 출력된 마이크로폰 오디오 신호(132)를 입력으로서 수신하고, 감소된 신호(142)를 생성한다. 따라서, 에코 감소기(140)는 마이크로폰(130)과 별개로 또는 공동으로 구현될 수 있다.
[0029] 도 2a 및 2b는 에코 검출기들(200)의 예들이다. 에코 검출기(200)는, 신호 소스(110)로부터의 재생 오디오 신호(112)와 마이크로폰(130)에서 캡처된 오디오의 오디오 신호(예컨대, 마이크로폰 오디오 신호(132) 또는 감소된 신호(142))를 비교하도록 구성된다. 이러한 비교에 기반하여, 에코 검출기(200)는 잔류 에코의 존재를 결정할 수 있다. 잔류 에코를 결정함으로써, 에코 검출기(200)는 에코 검출 시스템(100) 내의 오디오 컴포넌트들의 성능을 평가하기 위해 통계들을 수집할 수 있다. 예컨대, 에코 검출기(200)는 (예컨대, 에코 감소기(140)의 성능을 통해) 스피커-마이크로폰 조합의 호환성을 평가한다. 다른 예들에서, 에코 검출기(200)에 의해 수집된 통계들은 에코 감소기(140)의 하드웨어 및/또는 소프트웨어에 대응하는 알고리즘들을 평가한다. 예로서, 에코 검출기(200)는, 에코 감소기들(140)에 대한 신규 또는 업데이트된 소프트웨어/펌웨어의 유효성을 (예컨대, 잔류 에코의 양에 의해) 평가할 수 있다. 다시 말해서, RTC 애플리케이션들이 진화하거나 발전함에 따라, 에코 검출기(200)는 개개의 RTC 애플리케이션의 개발자, 관리자 또는 사용자(10)를 위한 피드백 시스템으로서 기능할 수 있다.
[0030] 이러한 예들에서, 에코 검출기(200)는 특징 추출기(300), 매처(210) 및 분류기(220)를 포함한다. 에코 검출기(200)는 마이크로폰 오디오 신호(132), 재생 오디오 신호(112) 및/또는 감소된 신호(142)와 같은 오디오 신호들을 수신하고, 수신된 오디오 신호들 사이에 매치(212)가 발생하는지 여부를 매처(210)를 통해 결정하도록 구성된다. 에코 검출기(200)는, 특징 추출기(300)에 의해 생성된 특징들(302, 302a-n)(여기서 n은 특징들의 수임)을 사용함으로써 매치(212)가 존재하는지 여부를 결정한다. 생성된 특징들(302, 302a-n)에 기반하여, 매처(210)는 오디오 신호(예컨대, 마이크로폰 오디오 신호(132) 또는 감소된 신호(142))의 제1 특징(302, 302a)과 재생 오디오 신호(112)의 제2 특징(302, 302b) 간에 매치(212)가 발생하는지 여부를 결정한다. 매치(212)를 사용하여, 분류기(220)는, 매치(212)에 대응하는 오디오 신호들이 에코일 가능성(202)을 결정하도록 구성된다. 다시 말해서, 마이크로폰 오디오 신호(132)(또는 감소된 오디오 신호(142))의 제1 특징(302, 302a)과 재생 오디오 신호(112)의 제2 특징(302, 302b) 간의 매치(212)는, 마이크로폰(132)에 의해 수신된 재생 오디오 신호(112)의 일부는 에코일 가능성이 있다는 것을 나타낸다. 일부 예들에서, 매치(212)가 발생할 때, 분류기(220)는, 매치(212)에 대응하는 오디오 신호들이 에코일 가능성(202)을 결정하는 것을 돕기 위해, 제1 특징(302a)과 제2 특징(302b) 사이의 지연 값(222)을 결정한다. 이러한 예들에서, 어떠한 매치(212)도 발생하지 않을 때, 분류기(220)는 지연 값(222)을 결정하기 위해 어떠한 액션도 취하지 않는다. 예컨대, 단일 매치(212)는, 에코가 존재한다는 결론을 내리기에 충분한 증거가 아닐 수 있으며, 지연 값(222)은 분류기(220)가 개개의 지연 값(222)을 사용하여 하나 초과의 매치들(212)을 식별하고 에코가 존재할 가능성(202)이 증가하였다고 결론을 내리는 것을 가능하게 한다. 지연 값은 또한, 에코에 의해 발생된 매치들(212)(예컨대, 동일한 지연 값(222)을 나타냄) 또는 돌발적인(accidental) 매치들(212)(예컨대, 지연 값들(222)이 변함)을 구별하는 데 도움이 될 수 있다. 일부 예들에서, 지연 값(222)은 부가적으로, 에코 검출 시스템(100)의 사용자(10) 및/또는 관리자가 (예컨대, 에코 감소기(140)를 통해) 에코 검출 시스템(100)을 정정하거나 수정할 수 있도록, 에코 검출 시스템(100)에 대한 통계적 분석을 제공한다. 에코 검출기(200)의 단순화된 버전에서, 에코 검출기(200)는, 더 많은 추가 분석 없이 매처(210)에 의한 매치(212)가 에코를 나타내도록, 분류기(220)를 포함하지 않는다.
[0031] 도 2a 및 2b를 더 참조하면, 에코 검출기(200)는 제1 특징 추출기(300, 300a) 및 제2 특징 추출기(300, 300b)를 포함한다. 제1 특징 추출기(300a)는 재생 오디오 신호(112)를 수신하고, 재생 오디오 신호(112)에 대응하는 특징들(302a1-n)(재생 특징들(302a1-n)로 또한 지칭됨)을 생성하는 반면에, 제2 특징 추출기(300b)는 마이크로폰 오디오 신호(132)(또는 감소된 신호(142))를 수신하고, 마이크로폰 오디오 신호(132) 및/또는 감소된 신호(142)에 대응하는 특징들(302b1-n)(마이크로폰 특징들(302b1-n)로 또한 지칭됨)을 생성한다. 점선으로 도시된 바와 같이, 제1 추출기(300a) 및 제2 추출기(300b)는 단일 특징 추출기(300)일 수 있다. 다른 구성들에서, 에코 검출기(200)는, 에코 검출 시스템(100)에 실시간으로 에코 검출을 제공하기 위해 특징들(302)을 동시에 프로세싱하기 위해 임의의 수의 특징 추출기들(300)을 포함한다.
[0032] 도 2b는, 분류기(220)가 에코 임계치(224)를 포함한다는 점을 제외하고는, 도 2a와 유사하다. 여기서, 분류기(220)는 부가적으로, 제1 특징(302a)과 제2 특징(302b) 간의 지연 값(222)이 에코 값 임계치(224)를 충족시키는지 여부를 결정한다. 이러한 의미에서, 에코 임계치(224)는 개개의 에코의 전조(predictive)가 되고, 에코 임계치(224)는, 다수의 매치들(212)이 동일하거나 유사한 지연 값들(222)을 나타낼 때 에코를 나타낸다. 예컨대, 에코 임계치(224)는 지연 값(222)의 카운트를 나타내고, 매치(212)의 지연 값(222)이 개개의 에코에 대응한다고 확신(confidently predicting)하기 전에는, 카운트는 지연 값(222)이 존재할 수 있는 최소 횟수가 된다. 달리 말하면, 지연 값(222)의 카운트가 에코 임계치(224)를 충족시킬 때(예컨대, 에코 임계치보다 더 크거나 동일할 때), 카운트는 개개의 에코를 예측하기 위해 지연 값(222)이 존재할 수 있는 최소 횟수를 충족시킨다. 일부 구현들에서, 에코 임계치(224)는, 가장 빈번한 지연 값에 대응하는 최근 매칭하는 특징들(302)의 수이다. 여기서, 가장 빈번한 지연 값은, 매치(212)에 대응하는 지연 값들(222)을 추적하는 지연 히스토그램(226)으로 표시될 수 있다. 일부 구성들에서, 설계된 신뢰 간격을 증명하기 위해, 에코 임계치(224)가 미리 결정된다. 다른 구성들에서, 에코 임계치(224)는 지연 값들(222) 또는 지연 히스토그램(226)을 추적하기 위해 동적이다.
[0033] 도 2b의 예는, 예컨대, 시스템(100)의 컴포넌트들 간의 통신 래그(communication lag)와 같은 허용 가능한 양의 시간 지연을 갖는 에코 검출 시스템(100)을 도시한다. 시스템(100)이 허용 가능한 양의 시간 지연을 가질 때, 에코 임계치(224)는 시스템(100)이 에코의 잘못된 표시를 방지할 수 있게 한다. 예컨대, 지연 값(222)이 에코 임계치(224)를 충족시키지 않을 때, 에코 검출기(200)는 매치(212)를 에코로서 나타내지 않는다. 이로써, 분류기(220)는, 에코 검출기(200)가 에코를 나타내기 전에, 지연 값(222)이 에코 임계치(224)를 충족시키도록 요구할 수 있다. 일부 예들에서, 에코 임계치(224)는, 에코의 존재와 연관된 지연 값들(222)을 식별하는 이력 트렌드들(historical trends) 또는 데이터(예컨대, 기계 학습 모델들 또는 뉴럴 네트워크 모델들과 같은 예측 모델들)에 기반할 수 있다.
[0034] 부가적으로 또는 대안적으로, 매처(210)는 특징 데이터베이스(214)를 포함한다. 특징 데이터베이스(214)는, 매처(210)에 대해 특징 추출기(300)에 의해 생성된 특징들(302, 3021-n)을 저장한다. 특징 데이터베이스(214)를 사용하여, (예컨대, 재생 오디오 신호(112)로부터) 특징 추출기(300)에 의해 생성된 저장된 특징들(302, 3021-n)은 매치(212)에 대해 매처(210)를 통해 평가될 수 있다. 일부 예들에서, 특징 데이터베이스(214)는, (예컨대, 도 2a 및 2b에서 특징 데이터베이스(214)로의 점선 화살표로 도시된 바와 같이) 시스템(100) 내의 지연들을 설명하기 위해, 재생 오디오 신호(112)에 대응하는 한정된 양의 특징들(3021-n)(예컨대, 재생 오디오 신호(112)의 최근 이력)만을 저장한다. 즉, 에코 검출기(200)는, 오디오 재생 디바이스(120)가 재생 오디오 신호(112)로부터 재생 오디오(122)를 생성하기 전에, 재생 오디오 신호(112)를 수신할 수 있다. 이것이 발생할 때, 특징 데이터베이스(214)는, (예컨대, 마이크로폰(130)이 마이크로폰 오디오 신호(132)를 생성할 때) 마이크로폰 오디오 신호(132)(또는 감소된 신호(142))를 실시간으로 비교하기 위해, 재생 오디오 신호(112)로부터 충분한 수의 특징들(3021-n)을 저장하도록 구성될 수 있다. 예컨대, 특징 추출기(300)가 재생 오디오 신호(112)의 특징(302a)을 생성할 때와, 특징 추출기(300)가 마이크로폰 오디오 신호(132)(또는 감소된 신호(142))의 특징(302b)을 생성할 때 사이에 100 밀리초의 지연이 있다면, 특징 데이터베이스(214)는 재생 오디오 신호(112)의 특징들(302a1-n) 중 적어도 2 초의 특징들을 저장한다. 에코 검출기(200)가 특징 데이터베이스(214)를 포함할 수 있지만, 특징 데이터베이스(214)는 인터넷 액세스를 필요로 하지 않는다(예컨대, 서버 데이터베이스로서의 기능함). 따라서, 에코 검출기(200)는 동작하기 위해 인터넷 연결이 필요하지 않고, 이로써 인터넷 연결 없이도 기능할 수 있다.
[0035] 다른 예들에서, 특징 데이터베이스(214)는, 재생 오디오 신호(112)의 최근 특징들에 대응하는 한정된 양의 특징들(3021-n)만을 저장하도록 구성된다. 다시 말해서, 특징 데이터베이스(214)는 최근 특징 콜렉션이 되도록 구성되며, 여기서 최근은, 최대 지연보다 오래된 특징들이 (예컨대, 선입 선출 방식(first-in, first-out manner)으로) 폐기된다는 사실을 의미한다. 일부 구현들에서, 에코 검출기(200)는, 에코 검출기(200)에서의 저장을 위한 요건들을 최소화하거나 제거하기 위해 매칭하고 그리고/또는 매치(212)가 되지 않는 특징들(302)을 제거한다.
[0036] 도 3a-3d는 특징 추출기(300)의 예들이다. 특징 추출기(300)는 재생 오디오 신호(112), 마이크로폰 오디오 신호(132) 또는 감소기 신호(142)(즉, 총괄적으로 "오디오 신호"로 지칭됨)를 수신하고, 수신된 오디오 신호에 대응하는 특징들(302)을 생성하도록 구성된다. 특징 추출기(300)는 다운샘플러(310), 신호 프로세서(320), 피크 검출기(330) 및 특징 생성기(340)를 포함한다.
[0037] 다운샘플러(310)는, 오디오 신호의 샘플링 레이트 또는 샘플 크기를 낮춤으로써, 수신된 오디오 신호를 수정하도록 구성된다. 다시 말해서, 다운샘플러(310)는, 수신된 오디오 신호로부터 다운-샘플링된 신호(312)를 생성한다. 재생 오디오 신호(112), 마이크로폰 오디오 신호(132) 및 감소기 신호(142) 각각은 다운샘플러(310)에 의해 다운-샘플링될 수 있다. 다운-샘플링은 보통, 대역폭 또는 오디오 포맷 크기에 관련된 제한들을 수용하기 위해 오디오 신호와 연관된 샘플들의 양을 감소시킨다. 여기서, 예컨대, 다운샘플러(310)는 수신된 오디오 신호를 8kHz로 감소시킨다. 선택적으로, 특징 추출기(300)가 샘플링 크기 및/또는 샘플링 레이트에 의해 제한되지 않을 때, 특징 추출기(300)는 다운샘플러(310)를 우회하거나 또는 다운샘플러(310) 없이 동작할 수 있다. 다른 예들에서, 다운샘플러(310)는, 특징 추출기(300)가 특징들(302, 3021-n)에 대해 일정한 수를 유지하도록 허용한다.
[0038] 도 3b에 도시된 바와 같이, 신호 프로세서(320)는 다운-샘플링된 신호(312)를 수신하고, 신호 프로세서 루틴(322)에 따라 다운-샘플링된 신호(312)를 주파수 표현(324)을 프로세싱하도록 진행한다. 주파수 표현(324)은 오디오 신호(예컨대, 다운샘플링된 신호(312))와 연관된 주파수들의 스펙트럼의 표현이다. 주파수 표현들(324)의 일부 예들은 스펙트로그램들, 소노그래프들(sonographs), 보이스프린트들(voiceprints), 보이스그램들(voicegrams), 워터폴들(waterfalls) 등이다. 도 3b가 오디오 신호의 주파수 표현(324)을 생성하기 위한 루틴(322)을 예시하지만, 스펙트로그램과 같은 주파수 표현(324)은 광학 분광계(optical spectrometer) 또는 일련의 대역 통과 필터들과 같은 다른 방법들 및/또는 시스템들에 의해 생성될 수 있다.
[0039] 도 3b에 도시된 바와 같이, 신호 프로세서(320)는, 일련의 단계들(322a-d)에 의해 주파수 표현(324)을 생성하기 위해 신호 프로세서 루틴(322)을 실행한다. 단계(322a)에서, 신호 프로세서(320)는 수신된 오디오 신호(112, 132, 142, 312)를 특정 수의 샘플들의 블록들로 분할한다. 예컨대, 보통 블록들의 수는 2의 제곱(power)(예컨대, 256개의 샘플들)이다. 일부 구성들에서, 블록들은, 각각의 블록이 이전 블록과 오버랩하는 백분율을 포함하도록 오버랩의 퍼센티지(예컨대, 50 % 오버랩)를 갖는다. 단계(322b)에서, 각각의 블록의 샘플들은 윈도우 함수(windowing function)와 곱해진다. 예컨대, 해닝(Hanning) 또는 해밍(Hamming) 윈도우 함수와 같은 윈도우 함수는, 주파수 변환이 다양한 주파수들에 걸쳐 0이 아닌 값들을 발생(develop)시키는 것을 허용한다. 각각의 블록에 윈도우 함수를 곱하면, 단계(322c)는 (예컨대, FFT(fast Fourier transformation), DFT(discrete Fourier Transform), DCT(Discrete Cosine Transform), 웨이블릿 변환(wavelet transform) 등에 의해) 윈도우 블록 샘플들(windowed block samples)을 변환한다. 여기서, 변환은 블록 샘플들에 대한 한 세트의 복소수들(complex numbers)을 생성한다. 단계(322d)에서, 신호 프로세서(320)는 주파수 표현(324)의 계수들(326)을 생성한다. 일부 예들에서, 신호 프로세서(320)는, 단계(322c)에서의 변환으로부터 발생하는 한 세트의 복소수들의 크기의 로그 함수에 의해 계수들(326)을 생성한다. 신호 프로세서(320)는, 수신된 오디오 신호(112, 132, 142, 312)에 대응하는 샘플들의 각각의 블록에 대해 신호 프로세싱 방법 단계들(322a-d)을 반복하도록 구성된다. 부가적으로 또는 대안적으로, 신호 프로세서(320)는, 특징 추출기(300)가 오디오 신호들(112, 132, 142, 312)을 수신할 때, 실시간으로 주파수 표현들(324)을 생성하도록 구성된다.
[0040] 특징 추출기(300)의 피크 검출기(330)는, 도 3c에 도시된 바와 같이, 신호 프로세서(320)로부터의 주파수 표현들(324) 중에서 출력(332)으로서 피크들(P)을 식별한다. 일부 예들에서, 피크 검출기(330)는, 주파수 표현(324)의 계수들(326)에 기반하여 피크들(P)을 식별한다. 일부 구성들에서, 피크 검출기(330)는, 주파수 표현(324)을 형성하기 위해 신호 프로세서(320)에 의해 생성된 각각의 주파수 빈(frequency bin)에 대한 임계치들(334)을 포함한다. 예컨대, 피크 검출기(330)는, 각각의 주파수 빈에 대응하는 임계치들(334)을 저장하기 위한 임계치 데이터베이스를 포함한다. 피크 검출기(330)가 계수(326)에 대응하는 주파수 빈의 개개의 임계치(334)를 충족시키는 주파수 표현(324) 내의 계수(326)를 만날(encounter) 때, 피크 검출기(330)는 만난 계수(326)를 주파수 표현(324) 내의 피크(P)로서 식별한다. 예컨대, 도 3c는, 주파수 표현(324)의 블록과 관련된 계수들(326)로부터 피크들(P1, P2, P3...Pn)을 식별하는 피크 검출기(330)를 도시한다.
[0041] 일부 구현들에서, 피크 검출기(330)는 반복적으로 동작한다. 다시 말해서, 피크 검출기(330)가 피크(P)를 식별할 때, 식별된 피크(P)에 관련된 주파수 빈에 대응하는 임계치(334)가 증가한다. 일부 예들에서, 피크 검출기(330)가 피크(P)를 식별할 때, 인근의 주파수 빈들의 임계치들(334)이 또한 증가한다. 임계치(334)를 증가시키는 이러한 접근법은, 피크 검출기(330)가 피크(P)를 정확하게 식별한다는 확신(certainty)을 제공하는 데 도움이 될 수 있다. 부가적으로 또는 대안적으로, 피크 검출기(330)가 새로운 블록을 프로세싱할 때, 이전에 증가된 임계치들(334)은 감소하거나 오리지널 임계치(334)로 복귀할 수 있다.
[0042] 일부 구현들에서, 피크 검출기(330)는 블록들의 주파수 표현(324)을 시간 면에서 전방 및 후방 둘 모두로 스캔할 수 있다. 피크 검출기(330)가 전방 또는 후방으로 스캔할 때, 피크 검출기(330)는 피크 검출기(330)에 대한 버퍼링 수단으로서 오디오 신호에 블록들을 추가할 수 있다.
[0043] 도 3d를 참조하면, 특징 추출기(300)의 특징 생성기(340)는 특징들(302)을 생성한다. 여기서, 특징 생성기(340)는, 피크 검출기(330)에 의해 주파수 표현(324)으로부터 식별된 피크들(P)에 기반하여 특징들(302)을 생성한다. 각각의 특징(302)은 주파수 표현(324)의 다수의 주파수들(f) 및 다수의 주파수들(f)과 연관된 시간 기간(t)에 대응할 수 있다. 여기서, 설명을 용이하게 하기 위해, 각각의 특징(302)은 주파수 표현(324)의 한 쌍의 주파수들(f1, f2) 및 한 쌍의 주파수들(f1, f2) 사이의 시간 기간(t)에 대응한다. 예컨대, 한 쌍의 주파수들(f1, f2)은 주파수 표현(324)의 제1 피크 주파수들(P1, f1) 및 제2 피크 주파수들(P2, f2)에 대응한다. 특징(302)을 생성하기 위해, 특징 생성기(340)는, 시간 및 주파수 면에서 가까운 한 쌍의 피크들(P1, P2)을 식별하려고 시도한다. 예컨대, 주파수 표현(324)의 제1 피크 주파수(P1, f1) 및 제2 피크 주파수(P2, f2)는 서로 임계 주파수 차이 내의 인접한 피크들일 수 있다.
[0044] 일부 구현들에서, 특징 생성기(340)는 기준 주파수(342)(예컨대, 한 쌍의 주파수들(f1, f2)의 제1 주파수(f1)) 및 타겟 구역(344)을 식별한다. 타겟 구역(344)은 기준 주파수(342)와의 임계 주파수 차이를 나타낸다. 다시 말해서, 타겟 구역(344)은, 특징(302)을 구성하는 한 쌍의 주파수들(f1, f2) 중 제2 주파수(f2)를 기준 주파수(342)의 주파수 허용오차 내에 제한한다. 한 쌍의 주파수들(f1, f2) 중 제2 주파수(f2)를 제한하기 위해, 타겟 구역(344)은 주파수 간격뿐만 아니라 시간 간격에 걸쳐 있다. 일부 예들에서, 타겟 구역(344)은 에코 검출기(200)의 개발자 또는 관리자에 의해 설계 변수(design variable)로서 구성된다. 다른 예들에서, 특징 생성기(340)는 주파수 표현(324)의 계수들(326)에 기반하여 타겟 구역(344)을 결정한다.
[0045] 일부 구현들에서, 타겟 구역(344)은 특징 생성기(340)가 3개의 값들: 즉, 기준 주파수(342), 타겟 구역(344) 내의 제2 주파수(f2), 및 기준 주파수(342)와 제2 주파수(f2) 사이의 시간 차이(t)로 특징(302)을 생성할 수 있게 한다. 일부 구현들에서, 이러한 3개의 값들은 제한된 수의 비트로 설명될 수 있다. 예컨대, 주파수들(342, f2) 각각은 7 비트를 사용하는 반면에, 시간 차이(t)는 5 비트를 사용한다. 따라서, 이 예에서, 개개의 특징(302)은 단일 32-비트 인티저(integer)로 표현될 수 있다.
[0046] 일부 예들에서, 타겟 구역(344)은 너무 많은 피크들(P1-n)을 포함한다. 이러한 예들에서, 타겟 구역(344)은, 정해진 타겟 구역(344) 내에서 생성될 수 있는 특징들(302)의 수에 대한 최대치를 식별하는 부가적인 파라미터를 포함한다. 예컨대, 부가적인 파라미터는, 특징 생성기(340)가, 피크(P)의 높이가 특정 시간에 특정 주파수 범위에서의 에너지 양에 대응하는 상위 N 개의 최고 피크들에 대한 특징들(302)만을 생성한다는 것을 식별한다. 예시하자면, N = 2이면, 도 3d에서, 특징 생성기(340)는 기준 주파수(342)(예컨대, 기준 주파수의 높이) 및 제3 피크(P3)에 기반하여 제1 특징(302)을 생성할 뿐만 아니라, 기준 주파수(342) 및 제1 피크(P1)에 기반하여 제2 특징(302)을 생성할 것이다. 이 예에서, 특징 생성기(340)는, N = 2이고 제2 피크(P2)가 제1 피크(P1) 및 제3 피크(P3) 둘 모두보다 더 작기 때문에, 제2 피크(P2)에 대한 제3 특징(302)을 생성하지 않을 것이다.
[0047] 다시 도 2a 및 2b를 참조하면, 매처(210)는 특징 추출기(들)(300)로부터 특징들(302)을 수신한다. 일부 구현들에서, 특징들(302) 각각은 한 쌍의 주파수들(f1, f2) 및 그 쌍 사이의 시간 차이(t)의 표현으로서 비트들의 인티저에 대응한다. 특징들(302)이 인티저들일 때, 매처(210)는, 동등성(equality)을 위해 마이크로폰 오디오 신호(132)로부터의 특징(302b)(즉, 마이크로폰 특징(302b)) 및 재생 오디오 신호(112)로부터의 특징(302a)(즉, 재생 특징(302a))의 인티저들을 비교한다. 일부 예들에서, 특징 데이터베이스(214)는, 마이크로폰(130)이 오디오를 캡처할 때, 마이크로폰 특징(302b)이 한 세트의 재생 특징들(302a1-n)과 매처(210)에 의해 실시간으로 비교될 수 있도록, 한 세트의 재생 특징들(302a1-n)을 저장한다. 여기서, 한 세트의 재생 특징들(302a1-n)은 미리 결정된 시간 블록(예컨대, 2 초)에 걸쳐 있을 수 있다. 한 세트의 재생 특징들(302a1-n)과 비교함으로써, 에코 검출기(200)는, 시스템(100)이 시스템(100)의 컴포넌트들(예컨대, 스피커(120) 및 마이크로폰(130)) 사이의 통신 지연들 또는 래그를 경험할 수 있을 때조차 매치들(212)을 식별할 수 있다. 이러한 예들에서, 제1 세트의 재생 특징들(302a1-n) 내에서 어떠한 매치(212)도 발생하지 않는다면, 제2 마이크로폰 특징(302b)과의 비교를 위해, 제2 세트의 재생 특징들(302a1-n)이 생성 및/또는 특징 데이터베이스(214)로부터 리트리브(retrieve)된다. 일부 구성들에서, 매처(210)는 해시맵(hashmap), 원형 버퍼(circular buffer) 또는 이 둘의 일부 결합을 사용하여 한 세트의 재생 특징들(302a1-n)과 마이크로폰 특징(302b)을 효율적으로 비교한다.
[0048] 도 2a는, 매처(210)가 재생 오디오 신호(112)의 일부와 마이크로폰 오디오 신호(132) 사이의 매치(212)를 식별할 때마다, 분류기(220)가 지연 히스토그램(226)을 업데이트하는 예를 추가로 예시한다. 일반적으로 말하자면, 히스토그램은 빈 또는 간격 내에서 변수의 빈도를 나타내는 도면 또는 표현이다. 지연 히스토그램(226)을 사용하여, 분류기(220)는 매칭하는 마이크로폰 특징(302b)과 재생 특징(302a) 사이의 시간 차이에 대응하는 지연 값(222)을 입력할 수 있다. 지연 히스토그램(226)은 에코 검출기(200)가 시간적으로 일관된 에코들을 식별하는 것을 허용할 수 있다. 예컨대, 지연 히스토그램(226)은, 에코 검출기(200)가 머신 학습과 같은 휴리스틱(heuristic) 또는 데이터 기반 접근법들(data-driven approaches)을 사용하여 시간적으로 일관된 에코들을 식별하는 것을 허용할 수 있다. 일부 구성들에서, 분류기(220)는, 에코 검출기(200)가 에코를 검출하는 데 실패한 각각의 시간 간격에 대해, 지연 히스토그램(226)의 각각의 빈을 점진적으로 감소시킨다. 에코 검출기(200)가 시스템(100) 및/또는 에코 감소기(140)에 피드백을 제공할 수 있기 때문에, 지연 히스토그램(226)은, 시간이 지남에 따라, 그 피드백의 효과를 측정할 수 있다. 정해진 시간 간격에서 어떠한 에코도 인식되지 않았을 때, 지연 히스토그램(226)의 각각의 빈을 점진적으로 감소시킴으로써, 지연 히스토그램(226)은 시간이 지남에 따라 에코 감소 시에 증가하는 유효성(예컨대, 또는 반대로 증가하는 무효성(ineffectiveness))을 나타낼 수 있다. 각각의 빈을 점진적으로 감소시키기 위한 시간 간격은, 에코 검출기(200)의 설계 파라미터 또는 에코 검출기(200)의 관리자 또는 사용자(10)에 의해 제어되는 조정 가능한 파라미터일 수 있다.
[0049] 특징 추출기(300), 매처(210) 및 분류기(220)의 기능이 결합되거나, 추가로 분리되거나, 분산되거나, 상호교환될 수 있는 경우, 에코 검출기(200)의 상이한 구성들이 사용될 수 있다. 또한, 에코 검출기(200)는 단일 디바이스로 구현되거나, 다수의 디바이스들에 걸쳐 분산될 수 있다.
[0050] 도 4는 에코를 결정하기 위한 방법(400)의 예의 흐름도이다. 흐름도는 마이크로폰 오디오 신호(132) 및 재생 오디오 신호(112)를 수신함으로써 동작(402)에서 시작한다. 동작(404)에서, 방법(400)은 마이크로폰 오디오 신호(132)의 주파수 표현(324) 및 재생 오디오 신호(112)의 주파수 표현(324)을 결정하는 단계를 포함한다. 동작(406)에서, 방법(400)은, 각각의 주파수 표현(324)에 대해, 주파수 표현(324)에 기반하여 특징들(302)을 결정하는 단계를 더 포함한다. 각각의 특징(302)은 주파수 표현(324)의 한 쌍의 주파수들(f1, f2) 및 한 쌍의 주파수들(f1, f2) 사이의 시간 기간(t)에 대응한다. 동작(408)에서, 방법(400)은 또한, 마이크로폰 오디오 신호(132)의 주파수 표현(324)에 기반한 제1 특징(302b)과 재생 오디오 신호(112)의 주파수 표현(324)에 기반한 제2 특징(302a) 사이에 매치(212)가 발생한다고 결정하는 단계를 포함한다. 동작(410)에서, 방법(400)은, 제1 특징(302b)과 제2 특징(302a) 사이의 지연 값(222)이 마이크로폰 오디오 신호(132) 내의 에코에 대응한다고 결정하는 단계를 더 포함한다. 예컨대, 방법(400)은 지연 히스토그램(226)에 대한 지연 값(222)을 결정할 수 있다.
[0051] 도 5는, 한 세트의 특징들(302)에 기반하여 실시간으로 에코를 결정하기 위한 예시적인 방법(500)의 흐름도이다. 동작(502)에서, 방법(500)은 마이크로폰 오디오 신호(132) 및 재생 오디오 신호(112)를 수신하는 단계를 포함한다. 동작(502)에서, 방법(500)은 재생 오디오 신호(112)로부터 제1 세트의 재생 특징들(302a1-n)을 결정하는 단계를 더 포함한다. 여기서, 제1 세트의 재생 특징들(302a1-n)은 재생 오디오 신호(112)로부터의 미리 결정된 시간 블록을 나타낸다. 각각의 재생 특징(302a)은 한 쌍의 재생 오디오 신호 주파수들(f1, f2) 및 한 쌍의 재생 오디오 신호 주파수들(f1, f2) 사이의 시간 기간(t)에 대응한다. 동작(506)에서, 방법(500)은 또한, 수신된 마이크로폰 오디오 신호(132)에 대응하는 마이크로폰 특징(302b1-n)을 결정하는 단계를 포함한다. 각각의 마이크로폰 특징(302b)은 한 쌍의 마이크로폰 오디오 신호 주파수들(f1, f2) 및 한 쌍의 마이크로폰 오디오 신호 주파수들(f1, f2) 사이의 시간 기간(t)에 대응한다.
[0052] 동작(508)에서, 방법(500)은, 제1 세트의 재생 특징들(302a1-n)의 재생 특징(302a)과 제1 마이크로폰 특징(302b) 사이에 매치(212)가 발생하는지 여부를 결정하는 단계를 포함한다. 동작(510)에서, 어떠한 매치(212)도 발생하지 않을 때, 방법(500)은 다음과 같은 기능들을 수행한다. 방법(500)은, 재생 오디오 신호(112)에 기반하여 제2 세트의 재생 오디오 특징들(302a1-n)을 결정한다. 이 예시에서, 제2 세트의 재생 특징들(302a1-n)은, 재생 오디오 신호(112)로부터의 제1 세트의 재생 특징들(302a1-n)에 인접한 미리 결정된 시간 블록을 나타낸다. 방법(500)은, 제2 세트의 재생 특징들(302a1-n)로부터의 개개의 재생 특징(302a)이 제2 마이크로폰 특징(302b)과 매칭한다고 결정한다. 방법(500)은, 매칭된 제2 마이크로폰 특징(302b)이 마이크로폰 오디오 신호(132) 내의 에코인 것을 추가로 식별한다.
[0053] 도 6은 본 문서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(600)의 개략도이다. 예컨대, 컴퓨팅 디바이스(600)는 에코 검출기(200) 및/또는 에코 감소기(140), 및 에코 검출기(200) 및/또는 에코 감소기(140)에 관련된 방법들을 구현하는 데 사용될 수 있다. 컴퓨팅 디바이스(600)는 모바일 폰들(예컨대, 스마트 폰들), 랩톱들, 데스크톱들, 워크스테이션들, 개인 휴대 정보 단말기들, 서버들, 블레이드 서버들, 메인프레임들 및 그 밖의 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내는 것으로 의도된다. 본원에 도시된 컴포넌트들, 그들의 연결들 및 관계들, 및 그들의 기능들은 단지 예시적인 것으로 여기어지며, 본 문서에 설명되고/되거나 청구된 발명들의 구현들을 제한하려 의도하는 것은 아니다.
[0054] 컴퓨팅 디바이스(600)는 프로세서(610)(예컨대, 데이터 프로세싱 하드웨어), 메모리(620), 저장 디바이스(630), 메모리(620)에 연결되는 고속 인터페이스/제어기(640) 및 고속 확장 포트들(650), 및 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/제어기(660)를 포함한다. 컴포넌트들(610, 620, 630, 640, 650 및 660) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 또는 적절할 경우 다른 방식들로 장착될 수 있다. 프로세서(610)는 GUI(graphical user interface)에 대한 그래픽 정보를 고속 인터페이스(640)에 연결된 디스플레이(680)와 같은 외부의 입력/출력 디바이스 상에 디스플레이하기 위해 메모리(620) 내에 또는 저장 디바이스(630) 상에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(600) 내에서 실행을 위한 명령들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들이, 적절한 경우, 다수의 메모리들 및 메모리의 타입들과 함께 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)이 연결될 수 있으며, 각각의 디바이스는 필요한 동작들의 부분들을 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹, 또는 멀티-프로세서 시스템으로서) 제공한다.
[0055] 메모리(620)(예컨대, 메모리 하드웨어)는 정보를 컴퓨팅 디바이스(600) 내에 비-일시적으로 저장한다. 메모리(620)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비-휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(620)는 컴퓨팅 디바이스(600)에 의해 사용하기 위해 일시적 또는 영구적으로 프로그램들(예컨대, 명령들의 시퀀스들) 또는 데이터(예컨대, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비-휘발성 메모리의 예들은 플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예컨대, 부팅 프로그램들과 같은, 전형적으로 펌웨어용으로 사용됨)을 포함하지만, 이에 제한되지 않는다. 휘발성 메모리의 예들은 RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory), PCM(phase change memory) 및 디스크들 또는 테이프들을 포함하지만, 이에 제한되지 않는다.
[0056] 저장 디바이스(630)는, 컴퓨팅 디바이스(600)에 대한 대용량 스토리지를 제공할 수 있다. 일부 구현들에서, 저장 디바이스(630)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현들에서, 저장 디바이스(630)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들 내의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 부가적인 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 위에서 설명한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(620), 저장 디바이스(630), 또는 프로세서(610) 상의 메모리와 같은 컴퓨터- 또는 머신-판독 가능 매체이다.
[0057] 고속 제어기(640)는 컴퓨팅 디바이스(600)의 대역폭 집약적 동작들을 관리하는 반면, 저속 제어기(660)는 보다 낮은 대역폭 집약적 동작들을 관리한다. 이러한 임무들의 할당은 예시적일 뿐이다. 일부 구현들에서, 고속 제어기(640)는 메모리(620), 디스플레이(680)(예컨대, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(650)에 연결된다. 일부 구현들에서, 저속 제어기(660)는 저장 디바이스(630) 및 저속 확장 포트(690)에 커플링된다. 다양한 통신 포트들(예컨대, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(690)는 키보드, 포인팅 디바이스, 스캐너, 또는 예컨대 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입력/출력 디바이스들에 커플링될 수 있다.
[0058] 컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 이것은 표준 서버(600a)로서 또는 이러한 서버들(600a)의 그룹에서 여러 번, 랩톱 컴퓨터(600b)로서 또는 랙 서버 시스템(600c)의 일부로서 구현될 수 있다.
[0059] 본원에 설명된 시스템들 및 기법들의 다양한 구현들은 디지털 전자 및/또는 광학 회로, 집적 회로, 특별히 설계된 ASIC들(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고, 이들로 데이터 및 명령들을 송신하도록 커플링된, 특수 목적 또는 범용일 수 있는, 적어도 하나의 프로그래밍 가능 프로세서를 포함하는 프로그래밍 가능 시스템 상에서 실행 가능한 그리고/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
[0060] 이러한 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로 또한 알려짐)은 프로그래밍 가능 프로세서를 위한 머신 명령들을 포함하고, 상위 레벨 절차 및/또는 객체-지향형 프로그래밍 언어로 및/또는 어셈블리/머신 언어로 구현될 수 있다. 본원에서 사용되는 것으로, "머신-판독 가능 매체" 및 "컴퓨터-판독 가능 매체"라는 용어들은 머신 명령들 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는 데 사용되는, 머신 명령들을 머신 판독 가능 신호로서 수신하는 머신-판독 가능 매체를 포함하여, 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광학 디스크들, 메모리, PLD(Programmable Logic Device))들을 지칭한다. "머신-판독 가능 신호"라는 용어는 머신 명령들 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
[0061] 본 명세서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 발생시킴으로써 하나 이상의 컴퓨터 프로그램들을 실행하여 기능들을 수행하는 하나 이상의 프로그래밍 가능 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서 범용 마이크로프로세서 및 특수 목적 마이크로 프로세서 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들을 수행하기 위한 프로세서 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 광자기 디스크들 또는 광학 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하기 위해, 또는 그 둘 모두를 위해 동작 가능하게 커플링될 것이다. 그러나, 컴퓨터는 이러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 또는 착탈식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태들의 비-휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나, 특수 목적 로직 회로에 포함될 수 있다.
[0062] 사용자와의 상호작용을 제공하기 위해, 본 개시내용의 하나 이상의 양태들은 디스플레이 디바이스, 예컨대 CRT(cathode ray tube), LCD(liquid crystal device) 모니터 또는 사용자에게 정보를 디스플레이하기 위한 터치 스크린 및 임의로 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예컨대, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 사용되어 마찬가지로 사용자와의 상호-작용을 제공할 수 있고; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대 시각적 피드백, 청각 피드백 또는 촉각 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여, 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 그 디바이스로부터 문서들을 수신함으로써; 예컨대, 웹 브라우저로부터 수신된 요청들에 대한 응답으로, 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호작용할 수 있다.
[0063] 다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위에서 벗어나지 않고서, 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 데이터 프로세싱 하드웨어에 의해 실행될 때 상기 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 컴퓨터에서 구현되는 에코 검출 방법으로서, 상기 동작들은:
    마이크로폰 오디오 신호에 대응하는 재생 오디오 신호(playout audio signal)의 주파수 표현(frequency representation)을 수신하는 동작;
    상기 재생 오디오 신호의 주파수 표현에 기반하여 특징(feature)들을 결정하는 동작 ― 각각의 특징은 상기 주파수 표현의 한 쌍의 주파수들 및 상기 한 쌍의 주파수들 사이의 시간 기간에 대응함 ―;
    상기 마이크로폰 오디오 신호의 주파수 표현에 기반한 제1 특징과 상기 재생 오디오 신호의 주파수 표현에 기반한 제2 특징 사이에 매치(match)가 발생한다고 결정하는 동작; 및
    상기 제1 특징과 상기 제2 특징 사이의 지연 값(delay value)이 인간이 인지할 수 있는 개개의 에코의 전조(predictive)가 되는 에코 임계치를 충족할 때 상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작
    을 포함하는,
    에코 검출 방법.
  2. 제1 항에 있어서,
    상기 에코 임계치는, 다수의 매치들이 동일하거나 유사한 지연 값들을 나타낼 때의 상기 마이크로폰 오디오 신호 내의 에코에 대응하는,
    에코 검출 방법.
  3. 제1 항에 있어서,
    상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작은 상기 제1 특징과 상기 제2 특징 사이의 상기 지연 값이 개개의 에코의 전조가 되는 특정 지연 값의 카운트를 나타내는 에코 카운트 임계치를 충족한다고 결정하는 동작을 포함하는,
    에코 검출 방법.
  4. 제1 항에 있어서,
    상기 한 쌍의 주파수들은 상기 주파수 표현의 제1 피크 주파수 및 제2 피크 주파수에 대응하고,
    상기 제2 피크 주파수는 상기 제1 피크 주파수에 인접하고 상기 제1 피크 주파수로부터의 임계 주파수 차이 내에 있고,
    상기 임계 주파수 차이는 상기 제1 피크 주파수로부터의 주파수 허용오차(frequency tolerance)에 대응하는,
    에코 검출 방법.
  5. 제1 항에 있어서,
    에코 감소 디바이스로부터 에코 감소된 신호로서 상기 마이크로폰 오디오 신호를 수신하는 동작을 더 포함하고, 상기 에코 감소 디바이스는 상기 마이크로폰 오디오 신호와 상기 재생 오디오 신호 사이의 에코를 감소시키도록 구성되는,
    에코 검출 방법.
  6. 제5 항에 있어서,
    상기 수신된 마이크로폰 오디오 신호 및 상기 수신된 재생 오디오 신호 각각은 다운-샘플링(down-sampling)되는,
    에코 검출 방법.
  7. 제1 항에 있어서,
    상기 마이크로폰 오디오 신호 또는 상기 재생 오디오 신호의 주파수 표현 중 적어도 하나는:
    상기 오디오 신호를 샘플 블록(sample block)들로 분할하는 동작; 및
    각각의 샘플 블록의 주파수 변환(frequency transformation)에 기반하여, 상기 주파수 표현의 계수(coefficient)들을 결정하는 동작
    에 의해 결정되는,
    에코 검출 방법.
  8. 제1 항에 있어서,
    각각의 특징에 대응하는 상기 한 쌍의 주파수들은 특징 주파수 임계치를 충족시키는,
    에코 검출 방법.
  9. 제1 항에 있어서,
    상기 마이크로폰 오디오 신호 내의 에코는 실시간으로 동시에 발생하는,
    에코 검출 방법.
  10. 제1 항에 있어서,
    상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작에 기반하여 상기 재생 오디오 신호를 제거하는 동작을 더 포함하는,
    에코 검출 방법.
  11. 에코 검출 시스템으로서,
    데이터 프로세싱 하드웨어; 및
    상기 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하고,
    상기 메모리 하드웨어는, 상기 데이터 프로세싱 하드웨어 상에서 실행될 때, 상기 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장하고, 상기 동작들은:
    마이크로폰 오디오 신호에 대응하는 재생 오디오 신호의 주파수 표현을 수신하는 동작;
    상기 재생 오디오 신호의 주파수 표현에 기반하여 특징들을 결정하는 동작 ― 각각의 특징은 상기 주파수 표현의 한 쌍의 주파수들 및 상기 한 쌍의 주파수들 사이의 시간 기간에 대응함 ―;
    상기 마이크로폰 오디오 신호의 주파수 표현에 기반한 제1 특징과 상기 재생 오디오 신호의 주파수 표현에 기반한 제2 특징 사이에 매치가 발생한다고 결정하는 동작; 및
    상기 제1 특징과 상기 제2 특징 사이의 지연 값이 인간이 인지할 수 있는 개개의 에코의 전조가 되는 에코 임계치를 충족할 때 상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작
    을 포함하는,
    에코 검출 시스템.
  12. 제11 항에 있어서,
    상기 에코 임계치는, 다수의 매치들이 동일하거나 유사한 지연 값들을 나타낼 때의 상기 마이크로폰 오디오 신호 내의 에코에 대응하는,
    에코 검출 시스템.
  13. 제11 항에 있어서,
    상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작은 상기 제1 특징과 상기 제2 특징 사이의 상기 지연 값이 개개의 에코의 전조가 되는 특정 지연 값의 카운트를 나타내는 에코 카운트 임계치를 충족한다고 결정하는 동작을 포함하는,
    에코 검출 시스템.
  14. 제11 항에 있어서,
    상기 한 쌍의 주파수들은 상기 주파수 표현의 제1 피크 주파수 및 제2 피크 주파수에 대응하고,
    상기 제2 피크 주파수는 상기 제1 피크 주파수에 인접하고 상기 제1 피크 주파수로부터의 임계 주파수 차이 내에 있고,
    상기 임계 주파수 차이는 상기 제1 피크 주파수로부터의 주파수 허용오차에 대응하는,
    에코 검출 시스템.
  15. 제11 항에 있어서,
    상기 동작들은, 에코 감소 디바이스로부터 에코 감소된 신호로서 상기 마이크로폰 오디오 신호를 수신하는 동작을 더 포함하고, 상기 에코 감소 디바이스는 상기 마이크로폰 오디오 신호와 상기 재생 오디오 신호 사이의 에코를 감소시키도록 구성되는,
    에코 검출 시스템.
  16. 제15 항에 있어서,
    상기 수신된 마이크로폰 오디오 신호 및 상기 수신된 재생 오디오 신호 각각은 다운-샘플링되는,
    에코 검출 시스템.
  17. 제11 항에 있어서,
    상기 마이크로폰 오디오 신호 또는 상기 재생 오디오 신호의 주파수 표현 중 적어도 하나는:
    상기 오디오 신호를 샘플 블록들로 분할하는 동작; 및
    각각의 샘플 블록의 주파수 변환에 기반하여, 상기 주파수 표현의 계수들을 결정하는 동작
    에 의해 결정되는,
    에코 검출 시스템.
  18. 제11 항에 있어서,
    각각의 특징에 대응하는 상기 한 쌍의 주파수들은 특징 주파수 임계치를 충족시키는,
    에코 검출 시스템.
  19. 제11 항에 있어서,
    상기 마이크로폰 오디오 신호 내의 에코는 실시간으로 동시에 발생하는,
    에코 검출 시스템.
  20. 제11 항에 있어서,
    상기 동작들은 상기 마이크로폰 오디오 신호 내에 에코가 존재한다고 결정하는 동작에 기반하여 상기 재생 오디오 신호를 제거하는 동작을 더 포함하는,
    에코 검출 시스템.
KR1020227041097A 2018-07-18 2019-07-17 에코 검출 KR102657905B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862700138P 2018-07-18 2018-07-18
US62/700,138 2018-07-18
KR1020217004098A KR102471640B1 (ko) 2018-07-18 2019-07-17 에코 검출
PCT/US2019/042208 WO2020018667A1 (en) 2018-07-18 2019-07-17 Echo detection

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004098A Division KR102471640B1 (ko) 2018-07-18 2019-07-17 에코 검출

Publications (2)

Publication Number Publication Date
KR20220162865A true KR20220162865A (ko) 2022-12-08
KR102657905B1 KR102657905B1 (ko) 2024-04-15

Family

ID=67480472

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217004098A KR102471640B1 (ko) 2018-07-18 2019-07-17 에코 검출
KR1020227041097A KR102657905B1 (ko) 2018-07-18 2019-07-17 에코 검출

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217004098A KR102471640B1 (ko) 2018-07-18 2019-07-17 에코 검출

Country Status (6)

Country Link
US (3) US11418655B2 (ko)
EP (2) EP3824616B1 (ko)
JP (2) JP7159438B2 (ko)
KR (2) KR102471640B1 (ko)
CN (2) CN113724724B (ko)
WO (1) WO2020018667A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020018667A1 (en) 2018-07-18 2020-01-23 Google Llc Echo detection
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
CN111883154B (zh) * 2020-07-17 2023-11-28 海尔优家智能科技(北京)有限公司 回声消除方法及装置、计算机可读的存储介质、电子装置
CN114141224B (zh) * 2021-11-30 2023-06-09 北京百度网讯科技有限公司 信号处理方法和装置、电子设备、计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170214800A1 (en) * 2014-10-08 2017-07-27 JVC Kenwood Corporation Echo cancellation device, non-transitory computer readable medium storing echo cancellation program, and echo cancellation
US9912373B1 (en) * 2016-10-19 2018-03-06 Whatsapp Inc. Techniques to detect echoes using audio fingerprinting

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1137240A (en) * 1980-09-09 1982-12-07 Northern Telecom Limited Method of and apparatus for echo detection in voice channel signals
JP3152160B2 (ja) * 1996-11-13 2001-04-03 ヤマハ株式会社 ハウリング検出防止回路及びそれを用いた拡声装置
EP1504445B1 (en) * 2002-04-25 2008-08-20 Landmark Digital Services LLC Robust and invariant audio pattern matching
WO2006111370A1 (en) 2005-04-19 2006-10-26 Epfl (Ecole Polytechnique Federale De Lausanne) A method and device for removing echo in a multi-channel audio signal
JP4613705B2 (ja) 2005-06-15 2011-01-19 沖電気工業株式会社 エコーキャンセラ
WO2007067125A2 (en) * 2005-12-05 2007-06-14 Telefonaktiebolaget Lm Ericsson (Publ) Echo detection
JP2008147914A (ja) * 2006-12-08 2008-06-26 Univ Waseda エコーキャンセラ及びエコーキャンセル方法
JP2010011270A (ja) 2008-06-30 2010-01-14 Yamaha Corp ハウリング抑制装置およびマイクロフォン
US8625776B2 (en) * 2009-09-23 2014-01-07 Polycom, Inc. Detection and suppression of returned audio at near-end
US8724798B2 (en) 2009-11-20 2014-05-13 Adobe Systems Incorporated System and method for acoustic echo cancellation using spectral decomposition
JP5235226B2 (ja) 2011-06-28 2013-07-10 日本電信電話株式会社 エコー消去装置及びそのプログラム
US9185199B2 (en) * 2013-03-12 2015-11-10 Google Technology Holdings LLC Method and apparatus for acoustically characterizing an environment in which an electronic device resides
GB201501791D0 (en) * 2015-02-03 2015-03-18 Microsoft Technology Licensing Llc Non-linear echo path detection
JP6432384B2 (ja) 2015-02-16 2018-12-05 沖電気工業株式会社 エコー抑圧装置、エコー抑圧プログラム及びエコー抑圧方法
CN104810025B (zh) * 2015-03-31 2018-04-20 天翼爱音乐文化科技有限公司 音频相似度检测方法及装置
CN105872275B (zh) * 2016-03-22 2019-10-11 Tcl集团股份有限公司 一种用于回声消除的语音信号时延估计方法及系统
CN107483761B (zh) * 2016-06-07 2019-09-17 电信科学技术研究院 一种回波抑制方法及装置
US9916840B1 (en) * 2016-12-06 2018-03-13 Amazon Technologies, Inc. Delay estimation for acoustic echo cancellation
US9947338B1 (en) * 2017-09-19 2018-04-17 Amazon Technologies, Inc. Echo latency estimation
CN108234793B (zh) * 2017-12-29 2021-11-30 北京视觉世界科技有限公司 一种通讯方法、装置、电子设备和存储介质
WO2020018667A1 (en) 2018-07-18 2020-01-23 Google Llc Echo detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170214800A1 (en) * 2014-10-08 2017-07-27 JVC Kenwood Corporation Echo cancellation device, non-transitory computer readable medium storing echo cancellation program, and echo cancellation
US9912373B1 (en) * 2016-10-19 2018-03-06 Whatsapp Inc. Techniques to detect echoes using audio fingerprinting

Also Published As

Publication number Publication date
US11695876B2 (en) 2023-07-04
JP7455923B2 (ja) 2024-03-26
KR20210027484A (ko) 2021-03-10
EP4224832A1 (en) 2023-08-09
JP7159438B2 (ja) 2022-10-24
WO2020018667A1 (en) 2020-01-23
CN112534800A (zh) 2021-03-19
CN113724724B (zh) 2023-10-20
KR102657905B1 (ko) 2024-04-15
US20230291840A1 (en) 2023-09-14
JP2021530919A (ja) 2021-11-11
US20210306466A1 (en) 2021-09-30
EP3824616B1 (en) 2023-09-06
US11418655B2 (en) 2022-08-16
JP2022185114A (ja) 2022-12-13
US20220030116A1 (en) 2022-01-27
CN112534800B (zh) 2021-10-15
EP3824616A1 (en) 2021-05-26
CN113724724A (zh) 2021-11-30
KR102471640B1 (ko) 2022-11-25

Similar Documents

Publication Publication Date Title
KR102471640B1 (ko) 에코 검출
JP3812887B2 (ja) 信号処理システムおよび方法
US10504501B2 (en) Adaptive suppression for removing nuisance audio
JP7025089B2 (ja) 高調波ノイズ源からのノイズを抑制する方法、記憶媒体及び装置
EP2788980A1 (en) Harmonicity-based single-channel speech quality estimation
US20140278415A1 (en) Voice Recognition Configuration Selector and Method of Operation Therefor
JP4866958B2 (ja) コンソール上にファーフィールドマイクロフォンを有する電子装置におけるノイズ除去
EP3320311B1 (en) Estimation of reverberant energy component from active audio source
CN113223554A (zh) 一种风噪检测方法、装置、设备和存储介质
KR20230074602A (ko) 멀티 채널 보이스 활동 검출
WO2024041512A1 (zh) 音频降噪方法、装置、电子设备及可读存储介质
JP7017873B2 (ja) 音質改善方法、音質改善方法を実行させるためのコンピュータプログラム、および電子機器
CN115604627A (zh) 音频信号处理方法、装置、电子设备及可读存储介质
US11347461B1 (en) System and method for adjusting extended desktop monitor settings based on acoustic analysis of audio emitted from a speaker of an extended desktop monitor
US10283135B2 (en) Touchscreen tapping noise suppression
WO2017136587A1 (en) Adaptive suppression for removing nuisance audio
US20230230613A1 (en) Computerized distress call detection and authentication
US20230298612A1 (en) Microphone Array Configuration Invariant, Streaming, Multichannel Neural Enhancement Frontend for Automatic Speech Recognition
Sabiniok et al. Analysis of application possibilities of Grey System Theory to detection of acoustic feedback
WO2023043470A1 (en) Stft-based echo muter

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant