KR20240049592A - Stft-기반 에코 뮤터 - Google Patents

Stft-기반 에코 뮤터 Download PDF

Info

Publication number
KR20240049592A
KR20240049592A KR1020247009521A KR20247009521A KR20240049592A KR 20240049592 A KR20240049592 A KR 20240049592A KR 1020247009521 A KR1020247009521 A KR 1020247009521A KR 20247009521 A KR20247009521 A KR 20247009521A KR 20240049592 A KR20240049592 A KR 20240049592A
Authority
KR
South Korea
Prior art keywords
frame
talk
double
signal
microphone signal
Prior art date
Application number
KR1020247009521A
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 KR20240049592A publication Critical patent/KR20240049592A/ko

Links

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
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • G10L21/0224Processing in the time domain
    • 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
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • 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/0232Processing in the frequency domain
    • 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)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)

Abstract

STFT(Short-Time Fourier Transform) 기반 에코 뮤팅을 위한 방법(300)은 마이크로폰에 의해 캡처되고 음향 스피커(118)로부터 오디오 콘텐츠(154)에 대응하는 음향 에코(156)을 포함하는 마이크로폰 신호(202)를 수신하고, 및 오디오 콘텐츠를 나타내는 프레임 시퀀스를 포함하는 기준 신호(158)를 수신하는 동작을 포함한다. 각각의 프레임에 대해, 방법은 각각의 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기(210)를 사용하여 각각의 프레임으로부터 음향 에코를 제거하는 각각의 출력 신호 프레임(206)을 생성하는 프로세싱하고; Double-talk Detector(220)를 이용하여, 각각의 프레임과 출력 신호 프레임에 기초하여 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지를 결정하는 동작을 포함한다. 방법은, 에코 전용 프레임을 포함하는 각 프레임에 대해, 각각의 출력 신호 프레임을 뮤팅하고, 더블-토크 프레임을 포함하는 각 프레임에 대한 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작을 더 포함한다.

Description

STFT-기반 에코 뮤터
본 명세서는 STFT(Short-Time Fourier Transform)-기반 에코 뮤터(echo muter)에 관한 것이다.
음성 지원 장치는 합성된 재생 오디오를 생성하고 합성된 재생 오디오를 음성 환경 내의 한 명 이상의 사용자에게 전달할 수 있다. 음성 지원 장치가 합성된 재생 오디오를 출력하는 동안, 음성 지원 장치의 마이크로폰은 음성 지원 장치를 향해 사용자가 말하는 음성을 적극적으로 캡처하면서 합성된 재생 오디오를 음향 에코로 캡처할 수 있다. 불행하게도 합성된 재생 오디오에서 발생하는 음향 에코의 경우 음성 인식기가 합성된 재생 오디오의 에코 중에 발생하는 사용자가 말하는 음성을 인식하는 것이 어려울 수 있다.
본 개시의 일 양태는 STFT 기반 에코 뮤터를 사용하여 음성 인식을 수행하는 컴퓨터로 구현되는 방법을 제공한다. 데이터 프로세싱 하드웨어에서 실행될 때 컴퓨터로 구현되는 방법은 데이터 프로세싱 하드웨어가 마이크로폰에 의해 캡처된 음향 에코를 포함하는 마이크로폰 신호를 수신하는 것을 포함하는 동작 세트를 수행하게 한다. 음향 에코는 음향 스피커에서 재생되는 오디오 콘텐츠에 해당한다. 동작 세트는 또한 음향 스피커가 오디오 콘텐츠를 재생하기 전에 기준 채널에서 전송된 오디오 콘텐츠를 나타내는 프레임 시퀀스를 포함하는 기준 신호를 수신하는 것을 포함한다. 동작 세트는, 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해: 기준 신호의 프레임 시퀀스의 각 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기를 사용하여, 마이크로폰 신호의 각 프레임으로부터 음향 에코를 제거하는 각각의 출력 신호 프레임을 생성하기 위한 마이크로폰 신호의 각각의 프레임을 프로세싱하는 동작을 더 포함한다. 동작 세트는, DTD(Double-talk Detector)를 사용하여, 기준 신호의 각각의 프레임과 상기 각각의 출력 신호 프레임에 기초하여, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하는 동작을 더 포함한다. 동작 세트는, 에코-전용 프레임을 포함하는 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해, 각각의 출력 신호 프레임을 뮤팅하는 동작을 더 포함한다. 동작 세트는, 에코-전용 프레임을 포함하는 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임을 뮤팅한 후, 더블-토크 프레임을 포함하는 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작을 더 포한한다.
본 개시 내용의 구현은 다음과 같은 선택적 기능 중 하나 이상을 포함할 수 있다. 일부 구현에서, 상기 마이크로폰 신호의 일부는 마이크로폰에 의해 캡처된 타겟 음성을 나타내는 오디오 신호를 더 포함하고, 상기 타겟 음성은 오디오 콘텐츠가 음향 스피커에서 재생되는 동안 발화되고; 그리고 동작 세트는, 마이크로폰 신호의 각각의 프레임이 상기 타겟 음성을 나타내는 오디오 신호를 포함할 때 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하는 동작을 더 포함한다. 일부 예에서, 음성 프로세싱을 수행하는 것은 자동 음성 인식(ASR) 모델을 사용하여 음성 인식을 수행하는 것을 포함한다. 일부 구현에서, 동작 세트는, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하기 위해 DTD를 사용하기 전에, 마이크로폰, 기준 및 출력 신호의 각각의 프레임을 STFT(Short-Time Fourier Transform) 도메인으로 변환하는 동작을 더 포함한다.
일부 예에서, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은, DTD를 사용하여, 마이크로폰 신호의 각각의 프레임과 기준 신호의 각각의 프레임 사이의 상호 상관관계에 기초한 각각의 제1 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작; DTD를 사용하여, 마이크로폰 신호의 각각의 프레임과 상기 각각의 출력 신호 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작; 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작; 그리고 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족할 때, 마이크로폰 신호의 각각의 프레임이 상기 더블-토크 프레임을 포함한다고 결정하는 동작을 포함한다. 이들 예에서, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터 모두가 더블-토크 임계값을 만족하지 못할 때 마이크로폰 신호의 각각의 프레임이 상기 에코-전용 프레임을 포함한다고 결정하는 동작을 더 포함한다. 각각의 제1 프레임-레벨 더블-토크 인디케이터와 각각의 제2 프레임-레벨 더블-토크 인디케이터(는 둘 다 미리 결정된 범위의 주파수 서브밴드에 걸쳐 컴퓨팅될 수 있다. 추가적으로 또는 대안적으로, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작은, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터의 최소값이 더블-토크 임계값보다 작을 때, 더블-토크 임계값을 만족한다고 결정하는 동작을 포함한다.
일부 구현에서, 상기 동작 세트는, 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해: DTD를 사용하여, 기준 신호의 각각의 프레임 또는 상기 각각의 출력 신호 프레임 중 하나와 마이크로폰 신호의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제1 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작을 더 포함하며, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지 여부를 결정하는 것은 각각의 제1 프레임-레벨 더블-토크 인디케이터에 기초한다. 이러한 구현에서, 상기 동작 세트는, 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해: DTD를 사용하여, 기준 신호의 각각의 프레임 또는 상기 각각의 출력 신호 프레임 중 다른 하나와 상기 마이크로폰 신호의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작을 더 포함하며, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지를 결정하는 것은 각각의 제2 프레임-레벨 더블-토크 인디케이터에 더 기초한다.
일부 예에서, 음향 에코 제거기는 선형 음향 에코 제거기를 포함한다. 일부 구현에서, 데이터 프로세싱 하드웨어, 마이크로폰 및 음향 스피커는 사용자 컴퓨팅 장치에 상주한다. 일부 예에서, 더블-토크 프레임을 포함하는 마이크로폰 신호의 시퀀스에서 각 프레임에 대한 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작은, 각각의 출력 신호 프레임에 대해 음향 에코 억제를 수행하지 않고 상기 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작을 포함한다.
본 개시의 또 다른 양태는, STFT 기반 에코 뮤터를 사용하여 음성 인식을 수행하는 시스템을 제공한다. 시스템은 데이터 프로세싱 하드웨어와 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 프로세싱 하드웨어에서 실행될 때 데이터 프로세싱 하드웨어가 마이크로폰에 의해 캡처된 음향 에코를 포함하는 마이크로폰 신호를 수신하는 것을 포함하는 동작 세트를 수행하게 하는 명령어를 저장한다. 음향 에코는 음향 스피커에서 재생되는 오디오 콘텐츠에 해당한다. 동작 세트는 음향 스피커가 오디오 콘텐츠를 재생하기 전에 기준 채널에서 전송된 오디오 콘텐츠를 나타내는 프레임 시퀀스를 포함하는 기준 신호를 수신하는 것을 더 포함한다. 동작 세트는, 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대해: 기준 신호의 프레임 시퀀스의 각 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기를 사용하여, 마이크로폰 신호의 각각의 프레임으로부터 음향 에코를 제거하는 각각의 출력 신호 프레임을 생성하기 위한 마이크로폰 신호의 각각의 프레임을 프로세싱하는 동작; 그리고 DTD(Double-talk Detector)를 사용하여, 기준 신호의 각각의 프레임과 상기 각각의 출력 신호 프레임에 기초하여, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하는 동작; 그리고 상기 에코-전용 프레임을 포함하는 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해, 상기 각각의 출력 신호 프레임을 뮤팅하는 동작을 포함한다. 동작 세트는, 에코-전용 프레임을 포함하는 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임을 뮤팅한 후, 상기 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작을 더 포함한다.
이 양태에는 다음과 같은 선택적 기능 중 하나 이상이 포함될 수 있다. 일부 구현에서, 상기 마이크로폰 신호의 일부는 마이크로폰에 의해 캡처된 타겟 음성을 나타내는 오디오 신호를 더 포함하고, 상기 타겟 음성은 오디오 콘텐츠가 음향 스피커에서 재생되는 동안 발화되고; 그리고 동작 세트는, 상기 마이크로폰 신호의 각각의 프레임이 상기 타겟 음성을 나타내는 오디오 신호를 포함할 때 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하는 동작을 더 포함한다. 일부 예에서, 음성 프로세싱을 수행하는 것은 자동 음성 인식(ASR) 모델을 사용하여 음성 인식을 수행하는 것을 포함한다. 일부 구현에서, 동작 세트는, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하기 위해 DTD를 사용하기 전에, 마이크로폰, 기준 및 출력 신호의 각각의 프레임을 STFT(Short-Time Fourier Transform) 도메인으로 변환하는 동작을 더 포함한다.
일부 예에서, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은, DTD를 사용하여, 마이크로폰 신호의 각각의 프레임과 기준 신호의 각각의 프레임 사이의 상호 상관관계에 기초한 각각의 제1 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작; DTD를 사용하여, 마이크로폰 신호의 각각의 프레임과 상기 각각의 출력 신호 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작; 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작; 그리고 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족할 때, 마이크로폰 신호의 각각의 프레임이 상기 더블-토크 프레임을 포함한다고 결정하는 동작을 포함한다. 이들 예에서, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터 모두가 더블-토크 임계값을 만족하지 못할 때 마이크로폰 신호의 각각의 프레임이 상기 에코-전용 프레임을 포함한다고 결정하는 동작을 더 포함한다. 각각의 제1 프레임-레벨 더블-토크 인디케이터와 각각의 제2 프레임-레벨 더블-토크 인디케이터는 둘 다 미리 결정된 범위의 주파수 서브밴드에 걸쳐 컴퓨팅될 수 있다. 추가적으로 또는 대안적으로, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작은, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터 중 적어도 하나가, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터의 최소값이 더블-토크 임계값보다 작을 때, 더블-토크 임계값을 만족한다고 결정하는 동작을 포함한다.
일부 구현에서, 상기 동작 세트는, 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해: DTD를 사용하여, 기준 신호의 각각의 프레임 또는 상기 각각의 출력 신호 프레임 중 하나와 마이크로폰 신호의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제1 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작을 더 포함하며, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지 여부를 결정하는 것은 각각의 제1 프레임-레벨 더블-토크 인디케이터에 기초한다. 이러한 구현에서, 상기 동작 세트는, 마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해: DTD를 사용하여, 기준 신호의 각각의 프레임 또는 상기 각각의 출력 신호 프레임 중 다른 하나와 상기 마이크로폰 신호의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터를 컴퓨팅하는 동작을 더 포함하며, 마이크로폰 신호의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지를 결정하는 것은 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)에 더 기초한다.
일부 예에서, 음향 에코 제거기는 선형 음향 에코 제거기를 포함한다. 일부 구현에서, 데이터 프로세싱 하드웨어, 마이크로폰 및 음향 스피커는 사용자 컴퓨팅 장치에 상주한다. 일부 예에서, 더블-토크 프레임을 포함하는 마이크로폰 신호의 시퀀스에서 각 프레임에 대한 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작은, 각각의 출력 신호 프레임에 대해 음향 에코 억제를 수행하지 않고 상기 각각의 출력 신호 프레임에 대해 음성 프로세싱을 수행하는 동작을 포함한다.
본 개시의 하나 이상의 구현의 세부사항은 첨부 도면 및 아래의 설명에서 설명된다. 다른 양태, 특징 및 장점은 설명, 도면, 청구범위로부터 명백해질 것이다.
도 1은 AEC(Acoustic Echo Cancellation) 시스템을 사용하는 예시적인 음성 환경의 개략도이다.
도 2는 AEC 시스템의 개략도이다.
도 3은 음향 에코 제거 시스템을 구현하는 방법에 대한 예시적인 동작 배열의 흐름도이다.
도 4는 본 명세서에 설명된 시스템 및 방법을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치의 개략도이다.
다양한 도면의 유사한 참조 기호는 유사한 요소를 나타낸다.
음성 지원 장치는 합성된 재생 오디오를 생성하고 합성된 재생 오디오를 음성 환경 내의 한 명 이상의 사용자에게 전달할 수 있다. 여기서, 합성 재생 오디오는 음성 지원 장치 외부의 가청 사운드의 사람이나 기타 소스가 아닌 음성 지원 장치 자체 또는 음성 지원 장치와 연결된 기계 프로세싱 시스템에서 발생하는 음성 지원 장치에 의해 생성된 오디오를 의미한다. 일반적으로 음성 지원 장치는 TTS(text-to-speech) 시스템을 사용하여 합성된 재생 오디오를 생성한다. TTS 시스템은 텍스트를 텍스트의 오디오 표현으로 변환한다. 여기서 텍스트의 오디오 표현은 인간의 언어를 사용한 음성 표현과 유사하도록 모델링된다.
음성 지원 장치의 오디오 출력 컴포넌트(예: 음향 스피커)가 합성된 재생 오디오를 출력하는 동안, 음성 지원 장치의 오디오 캡처 컴포넌트(예: 마이크로폰)는 여전히 음성 환경 내에서 오디오 신호를 능동적으로 캡처(즉, 듣고)할 수 있다. 이는 스피커에서 출력되는 합성 재생 오디오의 일부가 오디오 캡처 컴포넌트에서 음향 에코(acoustic echo)로 수신된다는 의미이다. 음성 지원 장치는 또한 음성 환경 내에서 오디오 신호를 능동적으로 캡처하는 동안 오디오 캡처 컴포넌트에 의해 음향 에코로 캡처될 수 있는 미디어 콘텐츠(예: 음악)와 같은 다른 유형의 오디오 콘텐츠를 재생할 수도 있다. 안타깝게도, 재생 오디오 콘텐츠(예: 합성 오디오 콘텐츠)에서 발생하는 음향 에코로 인해, 음성 지원 장치에 구현되거나 음성 지원 장치와 통신하는 원격 시스템에 구현되는 음성 인식기가 합성된 재생 오디오의 에코 동안 발생하는 음성 발화(spoken utterances)를 이해하는 것이 어려울 수 있다. 즉, 음성 지원 장치는 종종 음성 지원 장치 사용자의 쿼리 또는 명령에 대한 응답으로 합성된 재생 오디오를 생성한다. 예를 들어, 사용자는 음성 지원 장치에 "오늘 날씨는 어때?(what will the weather be like today?)"라고 물을 수 있다. 음성 지원 장치가 사용자로부터 이러한 쿼리 또는 질문을 수신하면, 음성 지원 장치 또는 음성 지원 장치와 통신하는 원격 시스템은 처음에 사용자의 음성 발화를 결정하거나 프로세싱해야 한다. 음성 발화를 프로세싱함으로써, 음성 지원 장치는 음성 발화가 사용자로부터의 쿼리(query)(예를 들어, 날씨에 관한 쿼리)에 대응하고 쿼리로서 사용자가 음성 지원 장치로부터의 응답을 기대한다는 것을 인식할 수 있다.
일반적으로, 음성 지원 장치는 음성 인식 시스템(예를 들어 자동 음성 인식(ASR: automatic speech recognition) 시스템)을 사용하여 음성 발화의 콘텐츠를 결정한다. 음성 인식 시스템은 오디오 신호 또는 오디오 데이터를 수신하고 오디오 신호에서 말한 문자, 단어 및/또는 문장을 나타내는 텍스트 전사(text transcript)를 생성한다. 그러나, 음성 인식은 음성 지원 장치의 음성 캡처 컴포넌트가 사용자(들)가 음성 지원 장치에 음성으로 말한 하나 이상의 발화의 전부 또는 일부와 동시에 에코 및/또는 왜곡(distortion)을 수신할 때 더 복잡해질 수 있다. 예를 들어, 음성 지원 장치의 하나 이상의 마이크로폰에는 합성된 재생 오디오 신호의 일부가 에코 또는 음향 피드백(acoustic feedback)으로 공급된다. 하나 이상의 발화와 결합된 합성된 재생 오디오의 에코로 인해, 음성 지원 장치는 중첩되는 음성(overlapping speech)이 포함된 오디오 신호를 수신하게 된다. 여기서, 중첩되는 음성은 합성된 재생 오디오로부터의 음향 에코가 하나 이상의 발화와 동시에(즉, simultaneous 또는 concurrently) 발생하는 오디오 신호의 인스턴스인 더블-토크 이벤트(double-talk event)를 의미한다. 더블-토크 이벤트 동안, 음성 인식 시스템은 음성 지원 장치에서 수신된 오디오 신호를 프로세싱하는 데 어려움을 겪을 수 있다. 즉, 중첩되는 음성은 하나 이상의 음성 발화에 대한 정확한 전사(transcript)를 생성하는 음성 인식 시스템의 기능을 손상시킬 수 있다. 음성 인식 시스템의 정확한 전사가 없으면, 음성 지원 장치는 사용자의 음성 발화에 대한 쿼리 또는 명령에 정확하게 응답하지 않거나 전혀 응답하지 못할 수 있다. 대안적으로, 음성 지원 장치는 합성된 재생 오디오 신호 및/또는 주변으로부터의 실제 에코인 가청 사운드를 해석하려고 시도하는 프로세싱 리소스를 사용하는 것을 피하고 싶을 수도 있다.
음성 지원 장치의 오디오 캡처 컴포넌트에 의해 캡처된 왜곡 또는 에코를 방지하는 한 가지 접근 방식은 AEC(acoustic echo cancelation)(음향 에코 제거) 시스템을 사용하는 것이다. AEC 시스템에서 AEC 시스템은 오디오 신호를 사용하여 음향 스피커에서 재생되는 오디오 콘텐츠와 관련된 에코를 제거한다. 그러나, AEC 시스템에서 에코를 제거하기 위해 사용하는 오디오 신호는 필연적으로 잔류 에코(residual echo)를 발생시키며, 이는 음성 인식 시스템의 성능을 더욱 저하시킬 수 있다. 음성 지원 장치의 음성 인식을 호출하기 위해 미리결정된 단어나 문구를 말하는 웨이크 단어(wake word) 애플리케이션에서, AEC 시스템에 의해 생성된 잔류 에코는 웨이크 단어를 찾는 음성 인식 시스템의 능력을 향상시킨다. 그러나 웨이크 단어 없는 애플리케이션에서는 이 잔류 에코가 음성 인식 시스템의 성능에 부정적인 영향을 미친다. 이러한 잔류 에코를 줄이는 한 가지 방법은 사후 필터(예: 에코 억제기(echo suppressor))를 사용하여 AEC 시스템에서 사용하는 오디오 신호를 프로세싱하는 것이다. 그러나 음성 인식 시스템은 일반적으로 오디오 신호의 사후 필터 프로세싱에 민감하므로 사후 필터 사용이 차선책이 된다.
도 1에 도시된 바와 같이, 일부 구현에서, 음성 환경(100)은 음성 지원 장치(110)(장치(110) 또는 사용자 장치(110)라고도 함)에 음성 발화(12)를 전달하는 사용자(10)를 포함한다. 사용자(10)(즉, 발화(12)의 화자)는 장치(디바이스)(110)로부터 응답을 구하기 위한 쿼리 또는 명령으로서 발화(12)를 말할 수 있다. 장치(110)는 음성 환경(100) 내의 한 명 이상의 사용자(10)로부터 사운드를 캡처하도록 구성된다. 여기서, 오디오 사운드는 청각적 쿼리, 장치(110)에 대한 명령, 장치(110)가 캡쳐한 음성 통신 등의 역할을 하는 사용자(10)의 발화(12)를 의미할 수 있다. 장치(110)의 음성 지원 시스템 또는 장치(110)와 연관된 시스템은 쿼리에 응답하고 및/또는 명령이 실행되도록 함으로써 명령에 대한 쿼리를 수행할 수 있다.
여기서, 장치(110)는 오디오 캡처 장치(116)(마이크라고도 함)에 의해 캡처된 음향 에코(156) 및/또는 사용자(10)에 의한 발화(12)를 포함하는 마이크로폰 신호(202)를 수신한다. 음향 에코(156)는 오디오 출력 장치(118)(음향 스피커라고도 함)에서 재생되는 오디오 콘텐츠(154)에 대응한다. 장치(110)는 사용자(10)와 연관되고 마이크로폰 신호(202)를 수신할 수 있는 임의의 컴퓨팅 장치에 대응할 수 있다. 사용자 장치(110)의 일부 예는 모바일 장치(예: 휴대폰, 태블릿, 노트북 등), 컴퓨터, 웨어러블 기기(예: 스마트 시계), 스마트 가전제품, 사물인터넷(IoT) 기기, 스마트 스피커 등을 포함하지만 이에 국한되지는 않는다. 장치(110)는 데이터 프로세싱 하드웨어(112); 그리고 데이터 프로세싱 하드웨어(112)와 통신하고, 데이터 프로세싱 하드웨어(112)에 의해 실행될 때 데이터 프로세싱 하드웨어(112)가 하나 이상의 동작을 수행하게 하는 명령어를 저장하는 메모리 하드웨어(114)를 포함한다. 일부 예에서, 장치(110)는 하나 이상의 애플리케이션(즉, 소프트웨어 애플리케이션)을 포함하며, 각 애플리케이션은 애플리케이션 내에서 다양한 기능을 수행하기 위해 장치(110)와 연관된 하나 이상의 음성 프로세싱 시스템(140, 150, 200)을 활용할 수 있다. 예를 들어, 장치(110)는 다양한 태스크로 사용자(10)를 보조하기 위해 합성된 재생 오디오 콘텐츠(154)를 사용자(10)에게 전달하도록 구성된 어시스턴트 애플리케이션(assistant application)을 포함한다. 다른 예에서, 어시스턴트 애플리케이션 또는 미디어 애플리케이션은 미디어 콘텐츠(예를 들어, 음악, 라디오 토크쇼, 팟캐스트 콘텐츠, 텔레비전/영화 콘텐츠)를 포함하는 오디오 콘텐츠(154)를 재생하도록 구성된다. 추가 예에서, 애플리케이션은 다양한 태스크 수행에 대해 사용자(10)와 통신/대화하거나 지원하기 위해 음향 스피커(118)로부터의 재생을 위한 합성 음성으로서 오디오 콘텐츠(154)를 전달하도록 구성된 어시스턴트 애플리케이션에 대응한다. 예를 들어, 어시스턴트 애플리케이션은 사용자(10)가 어시스턴트 애플리케이션에 제출한 쿼리/명령에 응답하는 합성 음성을 청각적으로 출력할 수 있다. 추가적인 예에서, 음향 스피커(118)로부터 재생되는 오디오 콘텐츠(154)는 제한 없이 타이머 종료, 전화 수신 알림, 초인종 차임벨, 오디오 메시지 등과 같은 알림(통지)/경고에 대응한다.
장치(110)는 음성 환경(100) 내의 오디오 데이터(14)를 캡처하고 그리고 전기 마이크로폰 신호(202)로 변환하기 위한 마이크로폰(116), 및 재생 오디오 콘텐츠(154)(예를 들어, 합성된 재생 오디오 콘텐츠)를 통신/출력하기 위한 음향 스피커(118)를 포함한다. 도시된 예에서 장치(110)는 마이크로폰(116)을 구현하지만, 장치(110)는 본 개시의 범위를 벗어나지 않고 마이크로폰(116)의 어레이를 구현할 수 있으며, 이에 따라 어레이의 하나 이상의 마이크로폰(116)은 장치(110)에 물리적으로 상주하지 않을 수 있지만 장치(110)의 인터페이스/주변 장치와 통신할 수 있다. 예를 들어, 장치(110)는 차량 전체에 위치하는 마이크로폰 어레이를 활용하는 차량 인포테인먼트 시스템에 대응할 수 있다. 유사하게, 음향 스피커(118)는 장치(110)에 상주하여 통신하는 하나 이상의 스피커를 포함할 수 있거나, 하나 이상의 스피커가 장치(110)에 상주하고 하나 이상의 다른 스피커가 장치(110)로부터 물리적으로 제거되지만 장치(110)와 통신하는 조합을 포함할 수 있다.
또한, 장치(110)는 네트워크(120)를 통해 원격 시스템(130)과 통신하도록 구성될 수 있다. 원격 시스템(130)은 원격 데이터 프로세싱 하드웨어(134)(예를 들어, 원격 서버 또는 CPU) 및/또는 원격 메모리 하드웨어(136)(예를 들어, 원격 데이터베이스 또는 기타 저장 하드웨어)와 같은 원격 자원(리소스)(132)을 포함할 수 있다. 장치(110)는 음성 프로세싱 및/또는 합성 재생 통신과 관련된 다양한 기능을 수행하기 위해 원격 자원(132)을 활용할 수 있다. 예를 들어, 장치(110)는 음성 인식 시스템(140)을 사용하여(예를 들어, 음성 인식 모델(145)을 사용하여) 음성 인식을 수행하도록 구성된다. 추가적으로, 장치는 TTS 시스템(150)을 사용하여 텍스트를 음성으로 변환하고 AEC 시스템(200)을 사용하여 음향 에코 제거를 수행하도록 구성될 수 있다. 이러한 시스템(140, 150, 200)은 장치(110)에 상주하거나(온-디바이스 시스템으로 지칭됨) 원격으로 상주할 수 있지만(예를 들어, 원격 시스템(130)에 상주) 장치(110)와 통신할 수 있다. 일부 예에서, 이러한 시스템(140, 150, 200) 중 일부는 로컬로 또는 장치 내에 상주하는 반면 다른 시스템은 원격으로 상주한다. 즉, 이러한 시스템(140, 150, 200) 중 임의의 시스템은 임의의 조합으로 로컬 또는 원격일 수 있다. 예를 들어, 시스템(140, 150, 200)의 크기나 프로세싱 요구 사항이 다소 큰 경우 시스템(140, 150, 200)은 원격 시스템(130)에 상주할 수 있다. 그러나 장치(110)가 하나 이상의 시스템(140, 150, 200)의 크기 또는 프로세싱 요구 사항을 지원할 수 있는 경우, 하나 이상의 시스템(140, 150, 200)은 데이터 프로세싱 하드웨어(112) 및/또는 메모리 하드웨어(114)를 사용하여 장치(110)에 상주할 수 있다. 선택적으로 시스템(140, 150, 200) 중 하나 이상은 로컬/장치 내 및 원격 모두에 상주할 수 있다. 예를 들어, 시스템(140, 150, 200) 중 하나 이상은 장치(110)와 원격 시스템(130) 사이의 네트워크(120)에 대한 연결이 가능할 때 원격 시스템(130)에서 실행되도록 디폴트될 수 있다. 그러나 연결이 끊어지거나 네트워크(120)를 사용할 수 없는 경우 시스템(140, 150, 200)은 대신 장치(110)에서 로컬로 실행된다.
음성 인식 시스템(140)은 입력으로서 오디오 신호(202)를 수신하고 그 오디오 신호를 출력으로서 전사(transcription)(142)로 전사한다(transcribe). 일반적으로 말하면, 오디오 신호(202)를 전사(142)로 변환함으로써, 음성 인식 시스템(140)은 장치(110)가 사용자(10)로부터의 발화(12)가 질문, 명령 또는 다른 형태의 오디오 통신에 대응하는 때를 인식할 수 있게 한다. 전사(142)는 장치(110)가 쿼리 또는 명령에 대한 응답을 생성하기 위해 사용할 수 있는 텍스트 시퀀스를 의미한다. 예를 들어, 사용자(10)가 장치(110)에게 "오늘 날씨는 어때(what will the weather be like today)"라고 질문하면, 장치(110)는 "오늘 날씨는 어때"라는 질문에 대응하는 오디오 신호를 음성 인식 시스템(140)에 전달한다. 음성 인식 시스템(140)은 오디오 신호를 "오늘 날씨는 어때?(what will the weather be like today?)"라는 텍스트를 포함하는 전사로 변환한다. 그 후, 장치(110)는 텍스트 또는 텍스트의 일부를 사용하여 쿼리에 대한 응답을 결정할 수 있다. 예를 들어, 현재 날(즉, 오늘)의 날씨를 결정하기 위해, 장치(110)는 텍스트(예를 들어, "오늘 날씨는 어때?(what will the weather be like today?)") 또는 텍스트의 식별 부분(예를 들어, "날씨" 및 "오늘")을 검색 엔진에 전달한다. 그러면 검색 엔진은 장치(110)가 해석하여 사용자(10)에 대한 응답을 생성하는 하나 이상의 검색 결과를 리턴할 수 있다.
일부 구현예에서, 장치(110) 또는 장치(110)와 연관된 시스템은 장치(110)가 음성 발화(12)의 쿼리에 대한 응답으로 사용자(10)에게 전달할 텍스트(152)를 식별한다. 그 다음, 장치(110)는 TTS 시스템(150)을 사용하여 텍스트(152)를 장치(110)가 음성 발화(12)의 쿼리에 대한 응답으로서 사용자(10)에게 전달(예를 들어, 사용자(10)에게 청각적으로 전달함)하기 위한 대응하는 합성 재생 오디오(154)로 변환할 수 있다. 즉, TTS 시스템(150)은 입력으로서 텍스트(152)를 수신하고, 텍스트(152)를 합성 재생 오디오(154)의 출력으로 변환하며, 여기서 합성 재생 오디오(154)는 텍스트(152)의 가청 표현을 정의하는 오디오 신호이다. 일부 예에서, TTS 시스템(150)은 텍스트(152)를 인코딩된 형식(예를 들어, 텍스트 임베딩)으로 프로세싱하는 텍스트 인코더를 포함한다. 여기서, TTS 시스템(150)은 훈련된 텍스트-음성 모델(trained text-to-speech model)을 사용하여 텍스트(152)의 인코딩된 형식으로부터 합성된 재생 오디오(154)를 생성할 수 있다. 일단 생성되면, TTS 시스템(150)은 합성된 재생 오디오(154)를 장치(110)에 전달하여 장치(110)가 합성된 재생 오디오(154)를 출력할 수 있게 해준다. 예를 들어, 장치(110)는 "오늘은 맑음(today is sunny)"이라는 합성된 재생 오디오(154)를 장치(110)의 스피커(118)에서 출력한다.
계속해서 도 1에 도시된 바와 같이, 장치(110)가 합성된 재생 오디오(154)(예를 들어, 합성된 음성)를 출력할 때, 합성된 재생 오디오(154)는 마이크로폰(116)에 의해 캡처되는 에코(156)를 생성한다. 불행하게도, 에코(156)에 추가하여, 마이크로폰(116)은 또한 장치(110)를 향한 타겟 음성에 대응하는 사용자(10)로부터의 또 다른 음성 발화(12)을 동시에 캡처할 수도 있다. 예를 들어, 도 1은 장치(110)가 합성된 재생 오디오 콘텐츠(154)를 출력할 때, 사용자(10)가 "내일은 어때?(what about tomorrow?)"라고 말함으로써 장치(110)에 대한 음성 발화(12)로 날씨에 대해 더 문의하는 것을 도시한다. 특히, 사용자(10)는 장치(110)가 마이크로폰(116)를 열어두고(오픈) 음성 인식 시스템(140)을 활성화하여 사용자(10)에게 핫워드(예를 들어, 검출될 때 장치(110)가 음성 인식을 호출하도록 트리거하는 미리 결정된 단어 또는 문구)를 말하도록 요구하지 않고 사용자(10)가 음성 인식 시스템(140)에 의한 인식을 위한 후속 쿼리를 제공할 수 있도록 하는 연속 대화 시나리오의 일부로서 발화(12)를 말한다. 사용자(10)가 말한 발화(12)가 핫워드를 포함하는 경우, 에코(156)는 음성 인식 시스템(140)이 오디오 신호(14)를 전사로 변환하는 데 도움을 준다. 반면, 장치(110)가 음성 인식을 수행하기 위해 사용자(10)에게 핫워드 말하기를 요구하지 않는 경우, 사용자 장치(110)는 에코(156)를 포함하는 마이크로폰 신호(202)를 프로세싱하여 사용자 장치(110)가 스피커(118)로부터 출력된 그 자신의 재생 오디오(154)를 프로세싱하게 할 수 있다.
여기서, 음성 발화(12)와 에코(156)는 모두 마이크로폰(116)에 의해 동시에 캡처되어 마이크로폰 신호(202)를 형성한다. 즉, 마이크로폰 신호(202)는 사용자(10)가 발화(12)를 말하기 전에 스피커(118)에서 출력되는 재생 오디오 콘텐츠(154)에 대응하는 에코(156)만을 포함하는 부분, 사용자(10)에 의해 발화된 발화(12)가 스피커(118)로부터 출력된 재생 오디오 콘텐츠(154)의 일부 부분과 중첩되는 중첩 부분(예를 들어, 중첩된 영역(204)), 및 음향 스피커(118)가 재생 오디오 콘텐츠(154)의 출력을 중지한 후 사용자(12)가 말한 발화(12)만을 포함하는 부분을 포함한다.
도 1에 도시된 바와 같이, 캡처된 마이크로폰 신호(202)의 중첩 영역(204)은 발화(12)의 부분과 합성된 재생 오디오(154)의 부분이 캡처된 마이크로폰 신호(202)에서 서로 중첩되는 인스턴스를 나타내는 더블-토크 이벤트에 대응한다. 더블-토크 이벤트 중에, 음성 인식 시스템(140)은 발화(12)가 합성된 재생 오디오 콘텐츠(154)의 에코(156)와 혼합되기 때문에, 마이크로폰(116)에 의해 캡처된 오디오 신호(202)에서 "내일은 어때(what about tomorrow)"라는 날씨 쿼리에 대응하는 후속 쿼리(12)를 인식하는 데 문제가 있을 수 있다. 위에서 설명된 바와 같이, 마이크로폰 신호(202)의 에코(156)를 감소시키는 한 가지 방법은 마이크로폰 신호(202)를 에코 억제기 필터로 프로세싱하는 것이다. 그러나 음성 인식 시스템(140)은 이러한 유형의 필터링된 마이크로폰 신호(202)를 프로세싱하는 데 어려움이 있다.
이 문제를 해결하기 위해, 장치(110)는 마이크로폰 신호(202)를 프로세싱하고 출력을 음성 인식 시스템(140)에 제공하는 AEC 시스템(200)을 포함한다. AEC 시스템(200)(도 2)은 음향 에코 제거기(acoustic echo canceller)(210), 더블-토크 검출기(220) 및 에코 뮤터(echo muter)(230)를 포함하며, 에코로만 식별되는 오디오 출력 신호 프레임을 뮤팅(음소거)하는 동시에 음성 인식 시스템(140)에 의한 프로세싱을 위해 더블-토크를 포함하는 오디오 프레임이 통과하도록 허용하도록 구성된다. 즉, AEC 시스템(200)은 에코(156)와 혼합된(mixed) 후속 쿼리(follow-on query)(12)를 포함하는 마이크로폰 신호(202)를 수신한다. 마이크로폰 신호의 각 오디오 프레임에 대해, AEC 시스템(200)은 오디오 프레임을 프로세싱하고 그리고 오디오 프레임이 에코 전용(echo only)인지 또는 더블-토크(double-talk)를 포함하는지 여부를 결정한다.
도 2를 참조하면, AEC 시스템(200)의 음향 에코 제거기(210)는 장치를 향한 타겟 음성(12)의 각각의 프레임과 마이크로폰(12)에 의해 캡처된 재생 오디오(154)를 나타내는 각각의 프레임에 대응하는 기준 신호(reference signal)(158)를 동시에 포함할 수 있는 마이크로폰 신호(202)를 수신하도록 구성된다. 프레임 시퀀스의 각 프레임에 대해, 음향 에코 제거기(210)는 기준 신호(158)를 사용하여 마이크로폰 신호(202)를 프로세싱하여 마이크로폰 신호(202)의 에코(156)을 제거함으로써 출력 신호 프레임(206)을 생성한다. 일부 예에서, AEC 시스템(200)은 수학식 1을 사용하여 마이크로폰 신호(202), 기준 신호(158) 및 출력 신호(206)의 각각의 프레임을 STFT(Short-Time Fourier Transform) 도메인으로 변환하며,
여기서 L은 프레임 홉(frame-hop)을 나타내며, w[n]은 가능한 N 포인트를 갖는 분석 윈도우를 나타내며, l은 프레임 인덱스를 나타내며, k는 서브밴드 인덱스를 나타낸다.
이후 더블-토크 검출기(220)는 마이크로폰 신호 m[n](202)(M(l,k)로 표시됨), 기준 신호 x[n](158)(X(l,k)로 표시됨) 및 잔류 에코 출력 신호 r[n] (206)(R(l,k)로 표시됨)의 STFT 도메인의 각 프레임을 수신하여, 각각의 프레임이 더블-토크 프레임(double-talk frame)을 포함하는지, 에코-전용 프레임(echo-only frame)을 포함하는지를 결정한다. 이를 달성하기 위해, 더블-토크 검출기(220)는 각각의 프레임에서 서브밴드당 2개의 더블-토크 인디케이터(double-talk indicator)(208)를 사용한다. 2개의 더블-토크 인디케이터(208a, 208b)는 수학식 2와 같이 표현될 수 있으며,
여기서, c PQ (k)는 재생 오디오 프레임(154) P(l,k) 및 Q(l,k)의 STFT 도메인의 0의 지연(lag of zero)에서 각 서브밴드 k에 대한 복소 상호 상관관계(complex cross-correlation)을 나타낸다. 여기서, P(l,k) 및 Q(l,k)는 각각 시간-도메인 신호(p[n] 및 q[n])와 연관된다. 복소 상호 상관관계(c PQ (k))는 수학식 3과 같이 표현될 수 있으며,
여기서, E{·}는 수학적 기대값(mathematical expectation)을 나타내며, ·*는 복소수 켤레(complex conjugate)를 나타낸다. 또한, 서브밴드 k의 에너지는 수학식 4와 같이 표현될 수 있다.
각 서브밴드에 대한 상호 상관관계는 수학식 5를 사용하여 STFT 도메인에 대한 지수 가중 평균을 사용하여 서브밴드의 에너지를 결정하며,
여기서, ρ는 지수 가중치(exponential weighting factor)(즉, 망각 요소(forgetting factor))를 나타낸다. 예를 들어, 0.9의 지수 가중치 ρ는 추정 정확도와 응답 시간의 균형을 맞출 수 있다. 이를 이용하여, 수학식 2는 수학식 6과 같이 다시 공식화되어 표현될 수 있다.
일부 예에서, 제1 더블-토크 인디케이터(double-talk indicator)(208a)는 마이크로폰 신호(202)와 기준 신호(158) 사이의 상호 상관관계에 의해 컴퓨팅(계산)되고, 반면 제2 더블-토크 인디케이터(208b)는 마이크로폰 신호(202)와 출력 신호(206) 사이의 상호 상관관계에 의해 컴퓨팅(계산)된다.
더블-토크 검출기(220)는 제한된 수의 서브밴드에 대한 서브밴드 인디케이터의 가중 평균을 컴퓨팅(계산)함으로써 각각의 프레임에 대한 더블-토크 인디케이터(208a, 208b)를 계산하기 위해 인디케이터와 서브밴드 에너지를 사용한다. 예를 들어, 700Hz와 2400Hz 사이의 서브밴드(subbands)는 더블-토크 인디케이터(208a, 208b)를 결정하는 데 사용될 수 있다. 각 더블-토크 인디케이터(208a, 208b)는 밴드(대역)의 에너지를 결정하기 위해 프레임 시퀀스의 각 프레임을 상호 상관관계(cross-correlating)시킴으로써 주어진 서브밴드의 잔류 에너지(energy of the residual)에 의해 가중된다. 서브밴드의 잔류 에너지가 높을수록 더블-토크가 존재할 가능성이 더 높다는 것을 나타내며, 더블-토크 인디케이터(208a, 208b)는 프레임에 더블-토크가 포함되어 있음을 나타낸다. 제1 더블-토크 인디케이터(208a)는 수학식 7과 같이 계산될 수 있다.
마찬가지로, 제2 더블-토크 인디케이터(208b)는 수학식 8과 같이 계산될 수 있다.
일단 더블-토크 검출기(220)가 더블-토크 인디케이터(208a, 208b)를 출력으로 컴퓨팅(계산)하면, 이는 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하기 위한 입력으로서 에코 뮤터(230)에 제공된다. 일부 예에서, 더블-토크 검출기(220)는 더블-토크 임계값이 만족되는지 여부를 결정하기 위해 에코 뮤터(230)에 대한 입력으로서 제1 또는 제2 더블-토크 인디케이터(208a, 208b) 중 하나만 컴퓨팅(계산)한다. 임계값 τ가 주어지면, 더블-토크 검출기(220)는 각각의 프레임이 뮤팅(음소거)되어야 하는 에코-전용(echo-only)인지 또는 통과되어야 하는(passed through) 더블-토크(double-talk)를 포함하는지 여부를 결정한다. 이는 수학식 9와 같이 결정된다.
더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는 경우, 각각의 프레임은 음성 인식 시스템(140)에 의한 프로세싱을 위해 전달된다. 더블-토크 인디케이터(208a, 208b) 모두 더블-토크 임계값을 만족하지 못하는 경우, 각각의 프레임은 에코 전용으로 식별되고 뮤팅된다(muted)(즉, 음성 인식 시스템에 의한 프로세싱을 위해 전달되지 않음). 더블-토크 임계값을 만족시키기 위해 더블-토크 인디케이터(208a, 208b)의 최소값(minimum)을 요구하는 것은 뮤팅 프레임(muting frames)보다 프레임 통과(passing through frames)를 선호한다.
더블-토크 임계값 τ는 데이터 기반 접근 방식을 사용하여 계산될 수 있다. 발화를 에코-전용 간격과 더블-토크 간격(double-talk interval)으로 분할하기 위해 발화로부터 메타데이터가 수집된다. 다음으로, 트레이닝 데이터세트의 모든 프레임에 대해 프레임-레벨 더블-토크 인디케이터(208a, 208b)가 계산된다. 주어진 임계값 τ에 대해, 에코-전용 프레임과 더블-토크 프레임의 오분류(misclassification) 비율이 계산된다. 이는 10% 이하인 더블-토크 프레임의 오분류를 초래하는 임계값 τ를 식별하는 타겟을 가지고 임계값 τ의 범위에 대해 반복될 수 있다.
도 3은 STFT 기반 에코 뮤터(230)를 사용하여 음성 인식을 수행하는 방법(300)에 대한 동작의 예시적인 배열의 흐름도를 포함한다. 동작(302)에서, 방법(300)은 마이크로폰(116)에 의해 캡처된 음향 에코(156)를 포함하는 마이크로폰 신호(202)를 수신하는 것을 포함한다. 음향 에코(156)는 음향 스피커(118)에서 재생되는 오디오 콘텐츠(154)에 대응한다. 동작(304)에서, 방법(300)은 음향 스피커(118)가 오디오 콘텐츠(154)를 재생하기 전에 기준 채널(reference channel)에서 전송된 오디오 콘텐츠(154)를 나타내는 프레임 시퀀스를 포함하는 기준 신호(158)를 수신하는 단계를 포함한다.
마이크로폰 신호(202)의 프레임 시퀀스의 각 프레임에 대해, 방법(300)은 동작(306)에서 기준 신호(158)의 프레임 시퀀스의 각 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기(210)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임으로부터 음향 에코(156)를 제거하는 각각의 출력 신호 프레임(206)을 생성하기 위해 마이크로폰 신호(202)의 각각의 프레임을 프로세싱하는 단계를 포함한다. 동작(308)에서, 방법(300)은 더블-토크 검출기(220)를 사용하여, 기준 신호(158)의 각각의 프레임과 각각의 출력 신호 프레임(206)에 기초하여, 마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지 여부를 결정하는 단계를 포함한다. 에코-전용 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스의 각각의 프레임에 대해, 동작(310)에서의 방법(300)은 각각의 출력 신호 프레임(206)을 뮤팅(muting)하는 단계를 포함한다. 동작(312)에서, 에코-전용 프레임(echo-only frame)을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각각의 프레임에 대한 각각의 출력 신호 프레임(206)을 뮤팅한 후, 방법(300)은 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 시퀀스 프레임의 각각의 프레임에 대한 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 단계를 포함한다.
도 4는 이 문서에 설명된 시스템 및 방법을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(400)의 개략도이다. 컴퓨팅 장치(400)는 랩탑, 데스크탑, 워크스테이션, PDA, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 의도된다. 여기에 표시된 컴포넌트, 연결 및 관계, 기능은 예시일 뿐이며 이 문서에서 설명 및/또는 청구된 발명의 구현을 제한하지 않는다.
컴퓨팅 장치(400)는 프로세서(410), 메모리(420), 저장 장치(430), 메모리(420) 및 고속 확장 포트(450)에 연결되는 고속 인터페이스/제어기(440), 저속 버스(470) 및 저장 장치(430)에 연결되는 저속 인터페이스/제어기(460)를 포함한다. 각각의 컴포넌트(410, 420, 430, 440, 450 및 460)는 다양한 버스를 사용하여 상호 연결되며, 공통 마더보드 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(410)(사용자 컴퓨팅 장치(110)의 데이터 프로세싱 하드웨어(112) 또는 원격 시스템(130)의 데이터 프로세싱 하드웨어(134)를 포함할 수 있는 "데이터 프로세싱 하드웨어(410)"라고도 함)는 메모리(420) 또는 저장 장치(430)에 저장된 명령어를 포함하여 컴퓨팅 장치(400) 내에서 실행하기 위한 명령어를 프로세싱하여 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 고속 인터페이스(440)에 연결된 디스플레이(480)와 같은 외부 입력/출력 장치에 표시할 수 있다. 다른 구현에서, 다중 프로세서 및/또는 다중 버스는 다중 메모리 및 메모리 유형과 함께 적절하게 사용될 수 있다. 또한, 복수의 컴퓨팅 장치(400)가 연결될 수 있으며, 각각의 장치는 필요한 동작의 일부를 제공한다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 다중 프로세서 시스템).
메모리(420)는 컴퓨팅 장치(400) 내에 비일시적으로 정보를 저장한다. 메모리(420)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(420)는 컴퓨팅 장치(400)에 의한 사용을 위해 일시적 또는 영구적으로 프로그램(예를 들어, 명령어 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 장치일 수 있다. 비휘발성 메모리의 예는 플래시 메모리 및 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) 및 디스크나 테이프가 포함되지만 이에 제한되지 않는다.
저장 장치(430)는 컴퓨팅 장치(400)를 위한 대용량 저장 장치를 제공할 수 있다. 일부 구현에서, 저장 장치(430)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현에서, 저장 장치(430)는 플로피 디스크 장치, 하드 디스크 장치, 광학 디스크 장치 또는 테이프 장치, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 장치, 또는 저장 영역 네트워크 또는 다른 구성의 장치를 포함하는 장치 어레이일 수 있다. 추가 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령어를 포함한다. 정보 매체는 메모리(420), 저장 장치(430) 또는 프로세서 상의 메모리(410)와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
고속 제어기(440)는 컴퓨팅 장치(400)에 대한 대역폭 집중 동작을 관리하는 반면, 저속 제어기(460)는 낮은 대역폭 집중 동작을 관리한다. 이러한 의무 할당은 예시일 뿐이다. 일부 구현에서, 고속 제어기(440)는 메모리(420), 디스플레이(480)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(450)에 연결된다. 일부 구현에서, 저속 제어기(460)는 저장 장치(430) 및 저속 확장 포트(490)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(490)는 예를 들어 네트워크 어댑터를 통해 키보드, 포인팅 장치, 스캐너 또는 스위치 또는 라우터와 같은 네트워킹 장치와 같은 하나 이상의 입/출력 장치에 연결될 수 있다.
컴퓨팅 장치(400)는 도면에 도시된 바와 같이 다양한 형태로 구현될 수 있다. 예를 들어, 표준 서버(400a)로 구현되거나 이러한 서버(400a) 그룹에서 여러 번, 랩톱 컴퓨터(400b) 또는 랙 서버 시스템(400c)의 일부로 구현될 수 있다.
여기에 설명된 시스템 및 기술의 다양한 구현은 디지털 전자 및/또는 광학 회로, 집적 회로, 특별히 설계된 ASIC(애플리케이션 특정 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현은 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터 및 명령어를 수신하고 데이터 및 명령어를 전송하도록 결합된 특수 또는 범용일 수 있는 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템 상에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
소프트웨어 애플리케이션(즉, 소프트웨어 리소스)은 컴퓨팅 장치가 동작을 수행하게 하는 컴퓨터 소프트웨어를 의미할 수 있다. 일부 예에서 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 애플리케이션의 예로는 시스템 진단 애플리케이션, 시스템 관리 애플리케이션, 시스템 유지 관리 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 메시징 애플리케이션, 미디어 스트리밍 애플리케이션, 소셜 네트워킹 애플리케이션 및 게임 애플리케이션이 있다.
비일시적 메모리는 컴퓨팅 장치에 의해 사용되기 위해 임시 또는 영구적으로 프로그램(예를 들어, 명령어의 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 장치일 수 있다. 비일시적 메모리는 휘발성 및/또는 비휘발성 주소 지정 가능 반도체 메모리일 수 있다. 비휘발성 메모리의 예로는 플래시 메모리 및 읽기 전용 메모리(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) 및 디스크나 테이프가 포함되지만 이에 국한되지는 않는다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 함)은 프로그래밍 가능한 프로세서를 위한 기계 명령어를 포함하며 고급 절차 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용된 바와 같이, "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"라는 용어는 기계 명령을 기계 판독 가능 신호로 수신하는 기계 판독 가능 매체를 포함하여 프로그램 가능 프로세서에 기계 명령 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독 가능 매체, 장치 및/또는 장치(예: 자기 디스크, 광 디스크, 메모리, 프로그램 가능 논리 장치(PLD))를 의미한다. "기계 판독 가능 신호"라는 용어는 프로그램 가능한 프로세서에 기계 명령 및/또는 데이터를 제공하는 데 사용되는 모든 신호를 의미한다.
본 명세서에 기술된 프로세스 및 논리 흐름은 데이터 프로세싱 하드웨어라고도 하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있으며, 하나 이상의 컴퓨터 프로그램을 실행하여 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행할 수 있다. 프로세스 및 논리 흐름은 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로프로세서 모두와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리나 임의 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하는 프로세서와 명령과 데이터를 저장하는 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하기 위해 또는 양자 모두를 포함하거나 작동 가능하게 결합될 것이다. 그러나 컴퓨터에는 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체에는 예를 들어 반도체 메모리 장치, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치를 포함하고; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광자기 디스크; 및 CD ROM 및 DVD-ROM 디스크와 같은 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 발명의 하나 이상의 양태는 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어 CRT(음극선관), LCD(액정 디스플레이) 모니터 또는 터치 스크린 및 선택적으로 키보드 및 포인팅 장치, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있으며, 이를 통해 사용자는 컴퓨터에 입력을 제공할 수 있다. 다른 종류의 장치를 사용하여 사용자와의 상호 작용도 제공할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있다. 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치와 문서를 주고받음으로써 사용자와 상호 작용할 수 있다. 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 클라이언트 장치의 웹 브라우저에 웹 페이지를 보낸다.
많은 구현이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있음이 이해될 것이다. 따라서, 다른 구현은 다음 청구 범위 내에 있다.

Claims (26)

  1. 데이터 프로세싱 하드웨어(410)에서 실행될 때 데이터 프로세싱 하드웨어(410)로 하여금 동작 세트를 수행하게 하는 컴퓨터로 구현되는 방법(300)으로서, 상기 동작 세트는,
    마이크로폰(116)에 의해 캡처된 음향 에코(156)를 포함하는 마이크로폰 신호(202)를 수신하는 동작 - 상기 음향 에코(156)는 음향 스피커(118)로부터 재생되는 오디오 콘텐츠(154)에 대응함-;
    상기 음향 스피커(118)가 상기 오디오 콘텐츠(154)를 재생하기 전에 기준 채널에서 전송된 오디오 콘텐츠(154)를 나타내는 프레임 시퀀스를 포함하는 기준 신호(158)를 수신하는 동작;
    상기 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대해(202):
    기준 신호(158)의 프레임 시퀀스의 각 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기(210)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임으로부터 음향 에코(156)를 제거하는 각각의 출력 신호 프레임(206)을 생성하기 위해 마이크로폰 신호(202)의 각각의 프레임을 프로세싱하는 동작; 그리고
    DTD(Double-talk Detector)(220)를 사용하여, 기준 신호(158)의 각각의 프레임과 상기 각각의 출력 신호 프레임(206)에 기초하여, 마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임(double-talk frame) 또는 에코-전용 프레임(echo-only frame)을 포함하는지 여부를 결정하는 동작; 그리고
    상기 에코-전용 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스의 각 프레임에 대해, 상기 각각의 출력 신호 프레임(206)을 뮤팅하는 동작; 그리고
    상기 에코-전용 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임(206)을 뮤팅한 후, 상기 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 마이크로폰 신호(202)의 일부는 마이크로폰(116)에 의해 캡처된 타겟 음성(12)을 나타내는 오디오 신호를 더 포함하고, 상기 타겟 음성(12)은 오디오 콘텐츠(154)가 음향 스피커(118)에서 재생되는 동안 발화되고; 그리고
    상기 동작 세트는, 상기 마이크로폰 신호(202)의 각각의 프레임이 상기 타겟 음성(12)을 나타내는 오디오 신호를 포함할 때 마이크로폰 신호(202)의 각각의 프레임이 상기 더블-토크 프레임 또는 상기 에코-전용 프레임을 포함하는지 여부를 결정하는 동작을 더 포함하는, 컴퓨터로 구현되는 방법.
  3. 제1항 또는 제2항에 있어서, 음성 프로세싱을 수행하는 동작은 자동 음성 인식(ASR) 모델(145)을 사용하여 음성 인식을 수행하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 동작 세트는,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하기 위해 DTD(220)를 사용하기 전에, 마이크로폰(202), 기준(158) 및 출력(206) 신호의 각각의 프레임을 STFT(Short-Time Fourier Transform) 도메인으로 변환하는 동작을 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은,
    DTD(220)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임과 기준 신호(158)의 각각의 프레임 사이의 상호 상관관계에 기초한 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)를 컴퓨팅하는 동작;
    DTD(220)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임과 상기 각각의 출력 신호 프레임(206) 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)를 컴퓨팅하는 동작;
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작; 그리고
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족할 때, 마이크로폰 신호(202)의 각각의 프레임이 상기 더블-토크 프레임을 포함한다고 결정하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  6. 제5항에 있어서, 마이크로폰 신호의 각각의 프레임(202)이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은,
    각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 모두가 더블-토크 임계값을 만족하지 못할 때 마이크로폰 신호의 각각의 프레임이 상기 에코-전용 프레임을 포함한다고 결정하는 동작(202)을 더 포함하는, 컴퓨터로 구현되는 방법.
  7. 제5항 또는 제6항에 있어서, 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)와 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)는 둘 다 미리 결정된 범위의 주파수 서브밴드에 걸쳐 컴퓨팅되는, 컴퓨터로 구현되는 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작은,
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b)의 최소값이 더블-토크 임계값보다 작을 때, 더블-토크 임계값을 만족한다고 결정하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 동작 세트는,
    마이크로폰 신호(202)의 프레임 시퀀스의 각 프레임에 대해:
    DTD(220)를 사용하여, 기준 신호(158)의 각각의 프레임 또는 상기 각각의 출력 신호 프레임(206) 중 하나와 마이크로폰 신호(202)의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)를 컴퓨팅하는 동작을 더 포함하며,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지 여부를 결정하는 것은 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)에 기초하는, 컴퓨터로 구현되는 방법.
  10. 제9항에 있어서, 상기 동작 세트는,
    마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해(202):
    DTD(220)를 사용하여, 기준 신호(158)의 각각의 프레임 또는 상기 각각의 출력 신호 프레임(206) 중 다른 하나와 상기 마이크로폰 신호(202)의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)를 컴퓨팅하는 동작을 더 포함하며,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지를 결정하는 것은 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)에 더 기초하는, 컴퓨터로 구현되는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 음향 에코 제거기(210)는 선형 음향 에코 제거기를 포함하는, 컴퓨터로 구현되는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 데이터 프로세싱 하드웨어(410), 마이크로폰(116) 및 음향 스피커(118)는 사용자 컴퓨팅 장치(110)에 상주하는, 컴퓨터로 구현되는 방법.
  13. 제1항에 있어서, 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 시퀀스에서 각 프레임에 대한 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작은,
    각각의 출력 신호 프레임(206)에 대해 음향 에코 억제를 수행하지 않고 상기 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작을 포함하는, 컴퓨터로 구현되는 방법.
  14. 시스템으로서,
    데이터 프로세싱 하드웨어(410); 그리고
    데이터 프로세싱 하드웨어(410)와 통신하는 메모리 하드웨어(114, 136)를 포함하며, 메모리 하드웨어(114, 136)는 데이터 프로세싱 하드웨어(410)에서 실행될 때 데이터 프로세싱 하드웨어(410)로 하여금 동작 세트를 수행하게 하는 명령어를 저장하며, 상기 동작 세트는,
    마이크로폰(116)에 의해 캡처된 음향 에코(156)를 포함하는 마이크로폰 신호(202)를 수신하는 동작 - 상기 음향 에코(156)는 음향 스피커(118)로부터 재생되는 오디오 콘텐츠(154)에 대응함-;
    상기 음향 스피커(118)가 상기 오디오 콘텐츠(154)를 재생하기 전에 기준 채널에서 전송된 오디오 콘텐츠(154)를 나타내는 프레임 시퀀스를 포함하는 기준 신호(158)를 수신하는 동작;
    상기 마이크로폰 신호의 프레임 시퀀스에서 각 프레임에 대해(202):
    기준 신호(158)의 프레임 시퀀스의 각 프레임을 입력으로 수신하도록 구성된 음향 에코 제거기(210)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임으로부터 음향 에코(156)를 제거하는 각각의 출력 신호 프레임(206)을 생성하기 위해 마이크로폰 신호(202)의 각각의 프레임을 프로세싱하는 동작; 그리고
    DTD(Double-talk Detector)(220)를 사용하여, 기준 신호(158)의 각각의 프레임과 상기 각각의 출력 신호 프레임(206)에 기초하여, 마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하는 동작; 그리고
    상기 에코-전용 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스의 각 프레임에 대해, 상기 각각의 출력 신호 프레임(206)을 뮤팅하는 동작; 그리고
    상기 에코-전용 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임(206)을 뮤팅한 후, 상기 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 프레임 시퀀스에서 각 프레임에 대한 상기 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작을 포함하는, 시스템.
  15. 제14항에 있어서, 상기 마이크로폰 신호(202)의 일부는 마이크로폰(116)에 의해 캡처된 타겟 음성(12)을 나타내는 오디오 신호를 더 포함하고, 상기 타겟 음성(12)은 오디오 콘텐츠(154)가 음향 스피커(118)에서 재생되는 동안 발화되고; 그리고
    상기 동작 세트는, 상기 마이크로폰 신호(202)의 각각의 프레임이 상기 타겟 음성(12)을 나타내는 오디오 신호를 포함할 때 마이크로폰 신호(202)의 각각의 프레임이 상기 더블-토크 프레임 또는 상기 에코-전용 프레임을 포함하는지 여부를 결정하는 동작을 더 포함하는, 시스템.
  16. 제14항 또는 제15항에 있어서, 음성 프로세싱을 수행하는 동작은 자동 음성 인식(ASR) 모델(145)을 사용하여 음성 인식을 수행하는 동작을 포함하는, 시스템.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 동작 세트는,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임 또는 에코-전용 프레임을 포함하는지 여부를 결정하기 위해 DTD(220)를 사용하기 전에, 마이크로폰(202), 기준(158) 및 출력(206) 신호의 각각의 프레임을 STFT(Short-Time Fourier Transform) 도메인으로 변환하는 동작을 더 포함하는, 시스템.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서, 마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은,
    DTD(220)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임과 기준 신호(158)의 각각의 프레임 사이의 상호 상관관계에 기초한 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)를 컴퓨팅하는 동작;
    DTD(220)를 사용하여, 마이크로폰 신호(202)의 각각의 프레임과 상기 각각의 출력 신호 프레임(206) 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)를 컴퓨팅하는 동작;
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작; 그리고
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족할 때, 마이크로폰 신호(202)의 각각의 프레임이 상기 더블-토크 프레임을 포함한다고 결정하는 동작을 포함하는, 시스템.
  19. 제18항에 있어서, 마이크로폰 신호의 각각의 프레임(202)이 더블-토크 프레임을 포함하는지 또는 에코-전용 프레임을 포함하는지를 결정하는 동작은,
    각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 모두가 더블-토크 임계값을 만족하지 못할 때 마이크로폰 신호의 각각의 프레임이 상기 에코-전용 프레임을 포함한다고 결정하는 동작(202)을 더 포함하는, 시스템.
  20. 제18항 또는 제19항에 있어서, 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)와 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)는 둘 다 미리 결정된 범위의 주파수 서브밴드에 걸쳐 컴퓨팅되는, 시스템.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가 더블-토크 임계값을 만족하는지 여부를 결정하는 동작은,
    각각의 제1 또는 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b) 중 적어도 하나가, 각각의 제1 및 제2 프레임-레벨 더블-토크 인디케이터(208a, 208b)의 최소값이 더블-토크 임계값보다 작을 때, 더블-토크 임계값을 만족한다고 결정하는 동작을 포함하는, 시스템.
  22. 제14항 내지 제21항 중 어느 한 항에 있어서, 상기 동작 세트는,
    마이크로폰 신호(202)의 프레임 시퀀스의 각 프레임에 대해:
    DTD(220)를 사용하여, 기준 신호(158)의 각각의 프레임 또는 상기 각각의 출력 신호 프레임(206) 중 하나와 마이크로폰 신호(202)의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)를 컴퓨팅하는 동작을 더 포함하며,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지 여부를 결정하는 것은 각각의 제1 프레임-레벨 더블-토크 인디케이터(208a)에 기초하는, 시스템.
  23. 제22항에 있어서, 상기 동작 세트는,
    마이크로폰 신호의 프레임 시퀀스의 각 프레임에 대해(202):
    DTD(220)를 사용하여, 기준 신호(158)의 각각의 프레임 또는 상기 각각의 출력 신호 프레임 중 다른 하나와 상기 마이크로폰 신호(202)의 각각의 프레임 사이의 상호 상관관계에 기초하여 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)를 컴퓨팅하는 동작을 더 포함하며,
    마이크로폰 신호(202)의 각각의 프레임이 더블-토크 프레임을 포함하는지 에코-전용 프레임을 포함하는지를 결정하는 것은 각각의 제2 프레임-레벨 더블-토크 인디케이터(208b)에 더 기초하는, 시스템.
  24. 제14항 내지 제23항 중 어느 한 항에 있어서, 상기 음향 에코 제거기(210)는 선형 음향 에코 제거기를 포함하는, 시스템.
  25. 제14항 내지 제24항 중 어느 한 항에 있어서, 상기 데이터 프로세싱 하드웨어(410), 마이크로폰(116) 및 음향 스피커(118)는 사용자 컴퓨팅 장치(110)에 상주하는, 시스템.
  26. 제14항 내지 제25항 중 어느 한 항에 있어서, 더블-토크 프레임을 포함하는 마이크로폰 신호(202)의 시퀀스에서 각 프레임에 대한 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작은,
    각각의 출력 신호 프레임(206)에 대해 음향 에코 억제를 수행하지 않고 상기 각각의 출력 신호 프레임(206)에 대해 음성 프로세싱을 수행하는 동작을 포함하는, 시스템.
KR1020247009521A 2021-09-16 2021-12-11 Stft-기반 에코 뮤터 KR20240049592A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163261281P 2021-09-16 2021-09-16
US63/261,281 2021-09-16
PCT/US2021/062970 WO2023043470A1 (en) 2021-09-16 2021-12-11 Stft-based echo muter

Publications (1)

Publication Number Publication Date
KR20240049592A true KR20240049592A (ko) 2024-04-16

Family

ID=80050852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009521A KR20240049592A (ko) 2021-09-16 2021-12-11 Stft-기반 에코 뮤터

Country Status (4)

Country Link
US (1) US20230079828A1 (ko)
KR (1) KR20240049592A (ko)
CN (1) CN117940995A (ko)
WO (1) WO2023043470A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606382B2 (en) * 2000-01-27 2003-08-12 Qualcomm Incorporated System and method for implementation of an echo canceller
US10586534B1 (en) * 2017-09-27 2020-03-10 Amazon Technologies, Inc. Voice-controlled device control using acoustic echo cancellation statistics
US10622009B1 (en) * 2018-09-10 2020-04-14 Amazon Technologies, Inc. Methods for detecting double-talk

Also Published As

Publication number Publication date
CN117940995A (zh) 2024-04-26
WO2023043470A1 (en) 2023-03-23
US20230079828A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
US10373609B2 (en) Voice recognition method and apparatus
US11138977B1 (en) Determining device groups
Parchami et al. Recent developments in speech enhancement in the short-time Fourier transform domain
CN108346425B (zh) 一种语音活动检测的方法和装置、语音识别的方法和装置
US9672812B1 (en) Qualifying trigger expressions in speech-based systems
US9293133B2 (en) Improving voice communication over a network
US9293134B1 (en) Source-specific speech interactions
US20050027527A1 (en) System and method enabling acoustic barge-in
US9940926B2 (en) Rapid speech recognition adaptation using acoustic input
US20190180758A1 (en) Voice processing apparatus, voice processing method, and non-transitory computer-readable storage medium for storing program
CN112053702B (zh) 一种语音处理的方法、装置及电子设备
US20230317096A1 (en) Audio signal processing method and apparatus, electronic device, and storage medium
CN111883135A (zh) 语音转写方法、装置和电子设备
CN116417003A (zh) 语音交互系统、方法、电子设备和存储介质
US11341988B1 (en) Hybrid learning-based and statistical processing techniques for voice activity detection
KR20230113368A (ko) 검출들의 시퀀스에 기반한 핫프레이즈 트리거링
US11528571B1 (en) Microphone occlusion detection
KR20240049592A (ko) Stft-기반 에코 뮤터
EP4139920B1 (en) Text-based echo cancellation
US11727926B1 (en) Systems and methods for noise reduction
CN110534084B (zh) 一种基于FreeSWITCH的智能语音控制方法及系统
US11176957B2 (en) Low complexity detection of voiced speech and pitch estimation
US20230298612A1 (en) Microphone Array Configuration Invariant, Streaming, Multichannel Neural Enhancement Frontend for Automatic Speech Recognition
US20230038982A1 (en) Joint Acoustic Echo Cancelation, Speech Enhancement, and Voice Separation for Automatic Speech Recognition
US20230298609A1 (en) Generalized Automatic Speech Recognition for Joint Acoustic Echo Cancellation, Speech Enhancement, and Voice Separation