KR102193629B1 - 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용 - Google Patents

호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용 Download PDF

Info

Publication number
KR102193629B1
KR102193629B1 KR1020207023713A KR20207023713A KR102193629B1 KR 102193629 B1 KR102193629 B1 KR 102193629B1 KR 1020207023713 A KR1020207023713 A KR 1020207023713A KR 20207023713 A KR20207023713 A KR 20207023713A KR 102193629 B1 KR102193629 B1 KR 102193629B1
Authority
KR
South Korea
Prior art keywords
audio data
data frame
instance
buffer
processing
Prior art date
Application number
KR1020207023713A
Other languages
English (en)
Other versions
KR20200103846A (ko
Inventor
크리스토퍼 휴즈
이텡 황
투라즈 자키자데 셰브스타리
테일러 애플바움
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020207035933A priority Critical patent/KR102609430B1/ko
Publication of KR20200103846A publication Critical patent/KR20200103846A/ko
Application granted granted Critical
Publication of KR102193629B1 publication Critical patent/KR102193629B1/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
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • 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/08Speech classification or search
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/0232Processing in the frequency domain
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units
    • 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/08Speech classification or search
    • G10L2015/088Word spotting
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/02165Two microphones, one receiving mainly the noise signal and the other one mainly the speech signal
    • 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/02166Microphone arrays; Beamforming
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/84Detection of presence or absence of voice signals for discriminating voice from noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

오디오 데이터 프레임 스트림의 하나 이상의 특징의 검출에서 노이즈 감소 기술을 선택적으로 적응 및/또는 선택적으로 이용하는 기술이 설명된다. 예를 들어, 다양한 기술들은 오디오 데이터 프레임 스트림에서의 호출 구문의 검출, 오디오 데이터 프레임 스트림에서의 음성 특성의 검출(예컨대, 스피커 식별을 위한) 등에 노이즈 감소 기술을 선택적으로 적응 및/또는 이용하는 것에 관한 것이다. 설명 된 기술을 이용하면 배경 노이즈가 강한 환경과 같은 다양한 상황에서 오디오 데이터 프레임 스트림의 특징을 보다 강력하고 정확하게 검출할 수 있다. 다양한 구현에서, 설명된 기술은 자동 어시스턴트와 조합하여 구현되고, 여기에 설명된 기술을 이용하여 검출된 특징(들)은 자동 어시스턴트의 기능을 적응시키기 위해 이용된다.

Description

호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용
본 명세서는 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용에 관한 것이다.
인간은 본 명세서에서 "자동 어시스턴트(automated assistants)"('디지털 에이전트', '채팅 봇', '인터랙티브 개인 어시스턴트', '지능형 개인 어시스턴트', '지원 애플리케이션', '대화 에이전트'등으로도 불림)라고 하는 대화식 소프트웨어 애플리케이션과의 인간 대 컴퓨터 대화에 관여할 수 있다. 예를 들어, 인간(자동 어시스턴트와 상호 작용할 때 "사용자"라고 할 수 있음)은 음성 자연어 입력(즉, 발화)을 사용하여 자동 어시스턴트에게 명령 및/또는 요청을 제공 할 수 있으며, 이는 경우에 따라 텍스트로 변환된 후 처리될 수 있고 및/또는 텍스트(예를 들어, 타이핑된) 자연어 입력을 제공함으로써 이루어질 수 있다. 자동 어시스턴트는 응답 성 사용자 인터페이스 출력을 제공하여 요청에 응답하며, 이는 가청 및/또는 시각적 사용자 인터페이스 출력을 포함할 수 있다.
위에서 언급한 바와 같이, 많은 자동 어시스턴트는 음성 발화를 통해 상호 작용하도록 구성된다. 사용자 개인 정보를 보호하고 및/또는 리소스를 절약하기 위해 사용자는 자동 어시스턴트가 음성 발화를 완전히 처리하기 전에 자동 어시스턴트를 명시적으로 호출해야하는 경우가 종종 있다. 자동 어시스턴트의 명시적 호출(invocation)은 전형적으로 클라이언트 장치에서 특정 사용자 인터페이스 입력이 수신되는 것에 응답하여 발생한다. 클라이언트 장치는 클라이언트 장치의 사용자에게 자동 어시스턴트와 인터페이스하기 위한 인터페이스를 제공하고(예를 들어, 사용자로부터 음성 및/또는 타이핑된 입력을 수신하고, 가청 및/또는 그래픽 응답을 제공함) 그리고 자동 어시스턴트를 구현하는 하나 이상의 추가 컴포넌트(예: 사용자 입력을 처리하고 적절한 응답을 생성하는 원격 서버 장치)와 인터페이스하는 어시스턴트 인터페이스를 포함한다.
클라이언트 장치를 통해 자동 어시스턴트를 호출할 수 있는 일부 사용자 인터페이스 입력은 자동 어시스턴트를 호출하기 위한 클라이언트 장치의 하드웨어 및/또는 가상 버튼을 포함한다(예: 하드웨어 버튼 탭, 클라이언트 장치에 의해 표시되는 그래픽 인터페이스 요소 선택). 다수의 자동 어시스턴트는 "핫 워드(단어)/구문 또는 "트리거 단어/구문"이라고도 하는 하나 이상의 음성 호출 구문(phrases)에 응답하여 추가로 또는 대안으로 호출될 수 있다. 예를 들어, "Hey Assistant", "OK Assistant" 및/또는 "Assistant"와 같은 음성 호출 구문을 사용하여 자동 어시스턴트를 호출할 수 있다.
종종, 어시스턴트 인터페이스를 포함하는 클라이언트 장치는 클라이언트 장치가 음성 호출 구문의 발생을 모니터링하기 위해 사용하는 하나 이상의 로컬로 저장된 모델을 포함한다. 이러한 클라이언트 장치는 로컬에 저장된 모델을 이용하여 수신된 오디오 데이터를 로컬로 처리 할 수 있고, 음성 호출 구문을 포함하지 않는 임의의 오디오 데이터를 폐기한다. 그러나, 수신된 오디오 데이터의 로컬 처리가 음성 호출 구문의 발생을 나타낼 때, 클라이언트 장치는 그 오디오 데이터 및/또는 후속 오디오 데이터가 자동 어시스턴트에 의해 추가로 처리되게 할 것이다. 예를 들어, 음성 호출 구문이 "헤이, 어시스턴트(Hey, Assistant)"이고 사용자가 "Hey, Assistant, 몇시입니까?"라고 말하면, "몇시인지"에 대응하는 오디오 데이터는 "헤이, 어시스턴트"의 검출에 기초하여 자동 어시스턴트에 의해 처리될 수 있고, 현재 시간의 자동 어시스턴트 응답을 제공하는데 이용된다. 반면에, 사용자가 단순히 "몇시입니까"라고 말하면 (먼저 호출 구문을 말하지 않고), "호출 구문이 선행되지 않은 "몇시입니까?"결과로 자동 어시스턴트의 응답이 제공되지 않는다.
음성 호출 구문(문구)의 발생을 모니터링하기 위한 모델이 존재하지만, 이러한 많은 모델은 하나 이상의 단점을 겪고있다. 예를 들어, 일부 모델은 배경 소음이 강한 환경(예: 텔레비전 소음, 음악 재생, 다른 대화)에서 성능이 저하될 수 있다. 예를 들어, 일부 모델에는 배경 소음이 있을 때 원하는 견고성 및/또는 정확도가 부족할 수 있다. 이로 인해 실제로 말한 호출 구문을 감지하지 못하거나 호출 구문을 잘못 감지할 수 있다.
오디오 데이터 프레임의 스트림의 하나 이상의 특징의 검출에서 노이즈(잡음) 감소 기술을 선택적으로 적응 및/또는 선택적으로 이용하는 기술이 여기에 설명된다. 예를 들어, 다양한 기술들은 오디오 데이터 프레임의 스트림에서의 호출 구문의 검출, 오디오 데이터 프레임의 스트림에서의 음성 특성의 검출(예를 들어, 스피커 식별을 위한) 등에 노이즈(잡음) 감소 기술을 선택적으로 적응 및/또는 이용하는 것에 관한 것이다. 본 명세서에 기술된 기술을 이용하면, 배경 잡음이 강한 환경과 같은 다양한 상황에서 오디오 데이터 프레임의 스트림의 특징을 보다 강인(견고)robust)하고 및/또는 더 정확하게 검출할 수 있다. 다양한 구현에서, 본 명세서에 기술된 기술은 자동 어시스턴트와 조합하여 구현되고, 본 명세서에 기술된 기술을 이용하여 검출된 특징(들)은 자동 어시스턴트의 기능을 적응시키기 위해 이용된다. 예를 들어, 오디오 데이터 프레임의 스트림에서 호출 구문(문구)의 존재를 검출하기 위해 기술이 이용될 때, 자동 어시스턴트의 적어도 하나의 기능은 음성 호출 구문을 검출하는 것에 응답하여, 예를 들어 하나 이상의 후속 수신된 오디오 데이터 프레임이 추가 프로세싱을 위해 하나 이상의 원격 자동 어시스턴트 서버로 전송되게 하는 기능과 같이 활성화될 수 있다. 또한, 예를 들어, (예를 들어, 스피커 식별을 위해) 오디오 데이터 프레임의 스트림에서 음성 특성을 검출하기 위해 기술이 이용될 때, 자동 어시스턴트에 의해 생성된 컨텐츠는 검출된 음성 특성을 사용하여 식별된 스피커에 기초하여 적응될 수 있다.
다양한 구현에서, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임은 학습된(학습된) 기계 학습 모델을 사용하여 처리되어 각각의 출력을 생성한다. 각각의 오디오 데이터 프레임에 대해 생성된 출력은 오디오 데이터 프레임이 하나 이상의 타겟 특징(예를 들어, 타겟 음소)을 갖는지 여부를 표시하며, 해당 출력 표시(indication)로 오디오 데이터 프레임에 태깅하기 위해 사용된다. 동작 예로서, 각각의 오디오 데이터 프레임에 대해 생성된 출력은 복수의 트리거 음소 각각의 해당 확률, 및 선택적으로 "트리거 음소 없음"에 대한 해당 확률을 나타낼 수 있다. 동작 예에 계속하여, 출력이 트리거 음소들 중 임의의 하나에 대한 적어도 제1 "높은" 임계 확률을 나타내는 경우, 각각의 오디오 데이터 프레임에 대한 출력 표시는 "트리거" 표시일 수 있고; 출력이 임의의 트리거 음소에 대한 적어도 제1 임계 확률을 나타내지 못하지만, 트리거 음소 중 어느 하나에 대한 제1 임계 확률보다 작지만 제2 "낮은" 임계 확률보다 큰 확률을 나타내는 경우, 출력 표시는 "니어-트리거(near-trigger)"표시일 수 있고; 그리고 출력이 모든 트리거 음소에 대한 제2 임계 확률보다 작음을 나타내면 (및/또는 "트리거 음소 없음"에 대한 제3 임계 확률보다 큰 확률을 나타냄) 출력 표시는 "노이즈(noise)"표시일 수 있다.
이러한 다양한 구현 중 일부에서, 오디오 데이터 프레임들 및 그들의 해당 출력 표시들은 FIFO(first in, first out) 버퍼에 저장될 수 있고, 버퍼의 컨텐츠에 기초하여 수행할 추가 프로세싱을 결정하기 위해 버퍼의 컨텐츠가 주기적으로 (또는 다른 규칙적 및/또는 비정규 간격으로) 평가될 수 있다. 동작 예를 계속하면, 소정의 인스턴스에서 버퍼의 오디오 데이터 프레임이 모두 "노이즈"를 나타내는 출력 표시를 갖는 경우, 버퍼의 오디오 데이터 프레임들 중 적어도 하나는 노이즈 감소 기술을 적응시키기 위해 이용될 수 있다. 예를 들어, 적어도 제1 채널(제 1 마이크로폰에 기초한) 및 제2 채널(제2 마이크로폰에 기초한)을 포함하는 오디오 데이터 프레임은 버퍼로부터 "팝핑(popping)"될 수 있고, 적응성 노이즈 제거 필터를 적응시키거나(또는 빔형성과 같은 다른 노이즈 감소 기술을 적응시키기 위해) 이용될 수 있다. 소정의 인스턴스에서 버퍼의 오디오 데이터 프레임이 "트리거"를 나타내는 출력 표시를 포함하지 않지만 "니어 트리거"를 나타내는 적어도 하나의 출력 표시를 포함하는 경우, 필터링된 데이터 프레임을 생성하기 위해 가장 최근에 적응된 바와 같이 노이즈 감소 기술을 사용하여 전체 버퍼가 플러시되고 오디오 데이터 프레임이 처리될 수 있다. 필터링된 데이터 프레임은 추가 학습된 기계 학습 모델을 사용하여 프로세싱되어 호출 구문이 필터링된 오디오 데이터 프레임에 존재 하는지를 결정할 수 있다. 추가적인 기계(머신) 학습 모델은 출력 표시를 결정하기 위해 이용되는 기계 학습 모델(선택적으로 별도의 인스턴스)과 동일하거나, 또는 선택적으로 활용하기 위해 보다 계산 집약적일 수 있는 보다 견고한 모델과 같은 별도의 모델일 수 있다. 소정의 인스턴스에서 버퍼의 오디오 데이터 프레임이 "트리거"를 나타내는 적어도 하나의 출력 표시를 포함하는 경우, 추가 학습된 기계 학습 모델을 사용하여 전체 버퍼를 플러시하고 버퍼의 오디오 데이터 프레임을 프로세싱하여 추가 구문이 추가 기계 학습 모델에 존재하는지 여부를 결정할 수 있다. 일부 구현에서, 트리거 출력 표시가 존재할 때 버퍼의 오디오 데이터 프레임은 필터링된 데이터 프레임을 생성하기 위해 가장 최근에 적응된 적응 노이즈(잡음) 감소 기술을 사용하여 부가적으로 또는 대안적으로 처리(프로세싱)될 수 있으며, 이러한 프레임은 추가 학습된 기계 학습 모델을 사용하여 처리되어 호출 구문이 존재하는지를 결정한다.
이러한 방식과 다른 방식으로, 노이즈 감소 기술은, 버퍼가 오디오 데이터 프레임이 타겟 특징(들)이 없음(예를 들어, 호출 음소가 부족)을 나타내는 출력 표시로 모두 태그된(tagged) 오디오 데이터 프레임만을 포함하는 것으로 결정될 때, 버퍼의 오디오 데이터 프레임에 기초하여 적응될 수 있다. 전술한 바와 같이, 오디오 데이터 프레임의 출력 표시는 타겟(목표) 특징(들)이 존재하는지를 예측하기 위해 학습된 초기 학습된 기계 학습 모델을 사용하여 오디오 데이터 프레임의 프로세싱(처리)에 기초하여 생성된다. 한편, 버퍼가 하나 이상의 타겟 특징(들)을 "잠재적으로" 포함하는 오디오 데이터 프레임(들)을 포함하는 것으로 결정될 때마다, 버퍼의 오디오 데이터 프레임은 필터링된 데이터 프레임을 생성하기 위해 가장 최근에 적응된 노이즈(잡음) 감소 기술을 사용하여 처리될 수 있고, 이러한 필터링된 데이터 프레임은 타겟 특징(들)이 존재하는지를 결정하도록 처리될 수 있다. 이러한 상황에서, 오디오 데이터 프레임은 현재 적응된 노이즈 감소 기술을 사용하여 처리될 수 있지만, 노이즈 감소 기술을 더 적응시키는 데 선택적으로 이용되지 않을 것이다. 오디오 데이터 프레임은 잠재적으로 타겟 특징(들)을 포함하고, 타겟 특징(들)을 포함하는 오디오 데이터 프레임에 기초하여 그것을 더 적응시키는 것은 노이즈 감소 기술로 필터링될 바람직하지 않은 타겟 특징을 야기할 수 있기 때문에 노이즈 감소 기술은 이러한 상황에서 더 적응되지 않을 수 있다. 전술한 바와 같이, 버퍼에 하나 이상의 타겟 특징(들)을 "가능하게(likely)" 포함하는 오디오 데이터 프레임(들)이 포함되어 있다고 결정될 때마다, 오디오 데이터 프레임들은 (선택적으로 적응된 필터 기술에 기초하여 필터링하지 않고) 타겟 특징(들)이 존재하는지를 결정하기 위해 처리될 수 있다.
또한, 일부 구현 예는 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는 관련 메모리에 저장된 명령어를 실행하도록 동작 가능하고, 명령어는 본 명세서에 기술된 임의의 방법의 성능을 유발시키도록 구성된다. 일부 구현 예는 또한 본 명세서에 설명된 임의의 방법을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령어를 저장하는 하나 이상의 일시적 또는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
본 명세서에서 더 상세하게 설명된 전술한 개념 및 추가 개념의 모든 조합은 본 명세서에 개시된 요지의 일부인 것으로 고려된다는 것을 이해해야한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 요지의 모든 조합은 본 명세서에 개시된 요지의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2a 및 2b는 본 명세서에 개시된 다양한 구현에 따른 예시적인 방법을 도시한 흐름도를 도시한다.
도 3은 여기에 개시된 다양한 구현들에 따라 오디오 데이터 프레임들이 어떻게 처리될 수 있는지의 예를 도시한다.
도 4는 예시적인 클라이언트 장치, 예시적인 사용자 및 예시적인 배경 노이즈(잡음) 소스를 도시한다.
도 5는 여기에 개시된 다양한 구현들에 따른 다른 예시적인 방법을 예시하는 흐름도를 도시한다.
도 6은 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 1을 참조하면, 본 명세서에 개시된 기술이 구현될 수 있는 예시적인 환경이 도시되어있다. 예시적인 환경은 자동 어시스턴트 클라이언트(120)의 인스턴스를 실행하는 클라이언트 컴퓨팅 장치(106)(본 명세서에서 간단히 "클라이언트 장치"라고도함)를 포함한다. 자연어 프로세서(133)와 같은 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(130)는 일반적으로 110으로 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 장치(106)에 통신 가능하게 연결된 하나 이상의 컴퓨팅 시스템(통칭하여 "클라우드" 컴퓨팅 시스템이라고 함)에서 구현될 수 있다.
자동 어시스턴트 클라이언트(120)의 인스턴스는 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(130)와의 상호 작용에 의해, 사용자의 관점에서 사용자가 인간 대 컴퓨터 대화에 관여할 수 있는 자동 어시스턴트(140)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 이러한 자동 어시스턴트(140)의 예가 도 1에 도시되어있다. 따라서, 일부 구현들에서, 클라이언트 장치(106)상에서 실행되는 자동 어시스턴트 클라이언트(120)와 관련된 사용자는 사실상 자동 어시스턴트(140)의 자신의 논리적 인스턴스에 관여할 수 있다는 것이 이해되어야 한다. 간결하고 간단하게 하기 위해, 본 명세서에서 특정 사용자를 "서빙(serving)"하는 것으로 사용되는 "자동 어시스턴트"라는 용어는 종종 사용자에 의해 운영되는 클라이언트 장치(106)상에서 실행되는 자동 어시스턴트 클라이언트(120)와 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(130)(다중 클라이언트 컴퓨팅 장치의 다중 자동 어시스턴트 클라이언트간에 공유될 수 있음)의 조합을 지칭할 것이다. 일부 구현들에서, 자동 어시스턴트(140)는 사용자가 그 특정 인스턴스의 자동 어시스턴트(140)에 의해 실제로 "서빙"되는지 여부에 관계없이 임의의 사용자로부터의 요청에 응답할 수 있음을 이해해야 한다.
클라이언트 컴퓨팅 장치(106)는 예를 들어: 데스크탑 컴퓨팅 장치, 랩탑 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 휴대 전화 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템), 독립형 대화형 스피커, 스마트 텔레비전과 같은 스마트 기기 및/또는 컴퓨팅 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치)를 포함하는 사용자의 웨어러블 장치일 수 있다. 추가 및/또는 대안적인 클라이언트 컴퓨팅 장치가 제공될 수 있다. 다양한 구현에서, 클라이언트 컴퓨팅 장치(106)는 메시지 교환 클라이언트(예를 들어, SMS, MMS, 온라인 채팅), 브라우저 등과 같은 자동 어시스턴트 클라이언트(120)에 추가하여 하나 이상의 다른 애플리케이션을 선택적으로 작동시킬 수있다. 이들 다양한 구현들 중 일부에서, 다른 애플리케이션들 중 하나 이상은 선택적으로 자동 어시스턴트 클라이언트(120)와 (예: 애플리케이션 프로그래밍 인터페이스를 통해) 인터페이스하거나, 자신의 자동 어시스턴트 애플리케이션의 인스턴스(클라우드 기반 자동 어시스턴트 컴포넌트(들)(130)와 인터페이스할 수도 있음)를 포함할 수 있다.
자동 어시스턴트(140)는 클라이언트 장치(106)의 사용자 인터페이스 입력 및 출력 장치를 통해 사용자와 인간 대 컴퓨터 대화 세션에 관여한다. 상술한 바와 같이, 사용자 프라이버시를 보호하고 및/또는 자원을 보존하기 위해, 많은 상황에서, 자동 어시스턴트가 발화를 완전히 처리하기 전에 사용자는 종종 자동 어시스턴트(140)를 명시적으로 호출해야한다. 자동 어시스턴트(140)의 명시적 호출은 클라이언트 장치(106)에서 수신된 특정 사용자 인터페이스 입력에 응답하여 발생할 수 있다. 예를 들어, 클라이언트 장치(106)를 통해 자동 어시스턴트(140)를 호출할 수 있는 사용자 인터페이스 입력은 클라이언트 장치(106)의 하드웨어 및/또는 가상 버튼의 작동(actuation)을 선택적으로 포함할 수 있다. 클라이언트 장치(106)는 선택적으로 그러한 비-음성 입력을 인식하도록 동작 가능한 호출 엔진(124)을 포함한다.
또한, 호출 엔진(124)은 하나 이상의 음성 호출 구문의 존재를 검출하고, 음성 호출 구문 중 하나의 검출에 응답하여 자동 어시스턴트(140)를 호출하도록 추가로 동작 가능하다. 예를 들어, 호출 엔진(124)은 "Hey Assistant", "OK Assistant"및/또는 "Assistant"와 같은 음성 호출 구문을 검출하는 것에 응답하여 자동 어시스턴트(140)를 호출할 수 있다. 호출 엔진(124)은 음성 호출 구문의 발생을 모니터링하기 위해 클라이언트 장치(106)의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 (예: "비활성"모드가 아닌 경우) 연속적으로 처리할 수 있다. 음성 호출 구문의 발생을 모니터링하는 동안, 호출 엔진(124)은 (예를 들어, 버퍼에 임시 저장 후) 음성 호출 구문을 포함하지 않는 임의의 오디오 데이터 프레임을 폐기한다. 그러나, 호출 엔진(124)이 처리된 오디오 데이터 프레임에서 음성 호출 구문의 발생을 검출하면, 호출 엔진(124)은 자동 어시스턴트(140)를 호출할 수 있다.
본 명세서에서 사용되는 바와 같이, 자동 어시스턴트(140)를 "호출(invoking)"하는 것은 자동 어시스턴트(140)의 하나 이상의 이전에 비활성인 기능이 활성화되게 하는 것을 포함할 수 있다. 예를 들어, 자동 어시스턴트(140)를 호출하는 것은 하나 이상의 로컬 엔진(122) 및/또는 클라우드 기반 자동 어시스턴트 컴포넌트(130)로 하여금 호출 구문이 검출된 오디오 데이터 프레임 및/또는 하나 이상의 후속 오디오 데이터 프레임을 추가로 처리하게 하는 것을 포함할 수 있다(호출하기 전에 오디오 데이터 프레임의 추가 처리가 발생하지 않음).
자동 어시스턴트(140)의 하나 이상의 로컬 엔진(들)(122)은 선택적이며, 예를 들어, 로컬 STS(Speech-to-Text) 엔진(캡쳐된 오디오를 텍스트로 변환함), 로컬 TTS(text-to-speech) 엔진(텍스트를 음성으로 변환함), (오디오로부터 변환된 텍스트 및 오디오의 의미론적 의미를 결정하는) 로컬 자연어 프로세서 및/또는 다른 로컬 컴포넌트를 포함할 수 있다. 클라이언트 장치(106)는 컴퓨팅 리소스(예를 들어, 프로세서 사이클, 메모리, 배터리 등)의 측면에서 상대적으로 제한되기 때문에, 로컬 엔진(122)은 클라우드 기반 자동 어시스턴트 컴포넌트(130)에 포함된 임의의 카운터파트(counterparts)에 비해 제한된 기능성을 가질 수 있다.
클라우드 기반 자동 어시스턴트 컴포넌트(130)는 클라우드의 사실상 무한한 리소스(자원)를 활용하여 로컬 엔진(122)의 임의의 카운터파트에 비해 오디오 데이터 및/또는 다른 사용자 인터페이스 입력의 보다 강력하고 및/또는 더 정확한 처리를 수행한다. 다시, 다양한 구현들에서, 클라이언트 장치(106)는 호출 엔진(124)이 음성 호출 구문(문구)을 검출하거나, 또는 자동 어시스턴트(140)의 다른 명시적 호출을 검출하는 것에 응답하여 오디오 데이터 및/또는 다른 데이터를 클라우드 기반 자동 어시스턴트 컴포넌트(130)에 제공할 수 있다.
예시된 클라우드 기반 자동 어시스턴트 컴포넌트(130)는 클라우드 기반 TTS 모듈(131), 클라우드 기반 STT 모듈(132), 자연어 프로세서(133), 대화 상태 추적기(134) 및 대화 관리자(135)를 포함한다. 일부 구현들에서, 자동 어시스턴트(140)의 엔진들 및/또는 모듈들 중 하나 이상은 자동 어시스턴트(140)와 분리된 컴포넌트에서 생략, 결합 및/또는 구현될 수 있다. 또한, 일부 구현에서 자동 어시스턴트(140)는 추가 및/또는 대안적인 엔진 및/또는 모듈을 포함할 수 있다.
클라우드 기반 STT 모듈(132)은 오디오 데이터를 텍스트로 변환할 수 있고, 이는 자연어 프로세서(133)에 제공될 수 있다. 클라우드 기반 TTS 모듈(132)은 텍스트 데이터(예를 들어, 자동 어시스턴트(140)에 의해 공식화된 자연어 응답)를 컴퓨터로 생성된 음성 출력으로 변환할 수 있다. 일부 구현들에서, TTS 모듈(132)은 컴퓨터로 생성된 음성(컴퓨터 생성 음성) 출력을 클라이언트 장치(106)에 제공하며, 이는 예를 들어 하나 이상의 스피커를 사용하여 직접 출력될 수 있다. 다른 구현들에서, 자동 어시스턴트(120)에 의해 생성된 텍스트 데이터(예를 들어, 자연어 응답)는 로컬 엔진 (들)(122) 중 하나에 제공될 수 있고, 이는 텍스트 데이터를 로컬로 출력되는 컴퓨터 생성 음성으로 변환할 수 있다.
자동 어시스턴트(140)의 자연어 프로세서(133)(또는 "자연어 이해 엔진"으로 지칭됨)는 프리폼(free form) 자연어 입력을 처리하고, 자연어 입력에 기초하여 자동 어시스턴트(140)의 하나 이상의 다른 컴포넌트에 의해 사용되는 주석(annotated) 출력을 생성한다. 예를 들어, 자연어 프로세서(133)는 STT 모듈(132)에 의해 클라이언트 장치(106)를 통해 사용자에 의해 제공되는 오디오 데이터의 변환인 텍스트 입력 인 자연어 프리폼 입력을 처리할 수 있다. 생성된 주석 출력은 자연어 입력의 하나 이상의 주석 및 선택적으로 자연어 입력의 용어 중 하나 이상 (예를 들어, 모두)을 포함할 수 있다.
일부 구현들에서, 자연어 프로세서(133)는 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 자연어 프로세서(133)는 문법 역할을 갖는 용어에 주석을 달도록 구성된 음성 태거(tagger)(도시되지 않음)의 일부를 포함할 수 있다. 또한, 예를 들어, 일부 구현들에서, 자연어 프로세서(133)는 자연어 입력에서 용어들 간의 구문적 관계를 결정하도록 구성된 종속성 파서(도시되지 않음)를 추가 및/또는 대안적으로 포함할 수 있다.
일부 구현들에서, 자연어 프로세서(133)는 추가로 및/또는 대안적으로 사람(예를 들어, 문학적 인물, 유명인, 대중 인물 등을 포함), 조직, 위치(실제 및 가상) 등에 대한 참조와 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(도시되지 않음)를 포함할 수 있다. 자연어 프로세서(133)의 엔티티 태거는 (예: 사람과 같은 엔티티 클래스에 대한 모든 참조를 식별할 수 있도록) 높은 GL(granularity level) 및/또는 (예: 특정 개인과 같은 특정 실체에 대한 모든 참조를 식별할 수 있도록) 낮은 GL로 엔티티에 대한 참조를 주석 처리할 수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 컨텐츠에 의존할 수 있고 및/또는 선택적으로 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 통신할 수 있다.
일부 구현들에서, 자연어 프로세서(133)는 하나 이상의 컨텍스트 큐(contextual cue)들에 기초하여 동일한 엔티티에 대한 참조들을 그룹화 또는 "클러스터"하도록 구성된 코레퍼런스 리졸버(coreference resolver)(도시되지 않음)을 추가 및/또는 대안적으로 포함할 수 있다. 예를 들어, 코레퍼런스 리졸버는 자연어 입력에서“I liked Hypothetical Cafe last time we ate there(우리가 마지막으로 거기서 먹었던 Hypothetical Cafe가 마음에 들었다.)”에서“there”을“Hypothetical Cafe”로 해석하는 데 사용될 수 있다.
일부 구현들에서, 자연어 프로세서(133)의 하나 이상의 컴포넌트들은 자연어 프로세서(133)의 하나 이상의 다른 컴포넌트들로부터의 주석(annotations)에 의존할 수 있다. 예를 들어, 일부 구현들에서, 명명된 엔티티 태거는 특정 엔티티에 대한 모든 언급에 주석을 달 때 종속성 파서 및/또는 코레퍼런스 리졸버의 주석에 의존할 수 있다. 또한, 예를 들어, 일부 구현들에서, 코레퍼런스 리졸버는 동일한 엔티티에 대한 클러스터링 참조에서 종속성 파서로부터의 주석에 의존할 수 있다. 일부 구현들에서, 특정 자연어 입력을 처리함에 있어서, 자연어 프로세서(133)의 하나 이상의 컴포넌트는 하나 이상의 주석을 결정하기 위해 특정 자연어 입력 외부의 관련 사전 입력 및/또는 다른 관련 데이터를 사용할 수 있다.
일부 구현에서, 대화 상태 추적기(134)는 예를 들어, 사람 대 컴퓨터 대화 세션 및/또는 여러 대화 세션의 과정에 걸쳐 하나 이상의 사용자 목표(또는 "의도")의 신뢰(belief) 상태를 포함하는 "대화 상태(dialog state)"를 추적하도록 구성될 수 있다. 대화 상태를 결정함에 있어, 일부 대화 상태 추적기는 대화 세션에서 사용자 및 시스템 발화에 기초하여 대화에서 인스턴스화되는 슬롯(들)에 대한 가장 가능성있는 값을 결정하려고 시도할 수 있다. 일부 기술은 슬롯 세트와 해당 슬롯과 연관된 값 세트를 정의하는 고정된 온톨로지(fixed ontology)를 사용한다. 일부 기술은 추가적으로 또는 대안적으로 개별 슬롯 및/또는 도메인에 맞추어 질 수 있다. 예를 들어, 일부 기술은 각 도메인의 각 슬롯 유형에 대한 모델 학습이 필요할 수 있다.
대화 관리자(135)는, 예를 들어 대화 상태 추적기(134)에 의해 제공되는 현재 대화 상태를 복수의 후보 응답 액션 중 하나 이상의 "응답 동액션에 매핑하여 자동 어시스턴트(140)에 의해 수행되도록 구성될 수 있다. 응답 액션은 현재 대화 상태에 따라 다양한 형태로 나타날 수 있다. 예를 들어, 마지막 턴(예: 최종 사용자가 원하는 태스크를 수행할 때) 이전에 발생하는 대화 세션의 턴에 대응하는 초기 및 중간스트림 대화 상태는 추가적인 자연어 대화를 출력하는 자동 어시스턴트(140)를 포함하는 다양한 응답 액션에 매핑될 수 있다. 이 응답 대화는, 예를 들어, 대화 상태 추적기(134)가 사용자가 수행하고자 하는 일부 액션(동작)(즉, 슬롯 채움)에 대한 파라미터를 사용자가 제공하라는 요청을 포함할 수 있다. 일부 구현들에서, 응답 액션은 "요청"(예: 슬롯 채우기를 위한 파라미터 찾기), "제안"(예: 사용자를 위한 액션 또는 액션 과정 제안), "선택", "알림"(예: 요청된 정보를 사용자에게 제공), "일치하지 않음"(예: 사용자의 마지막 입력을 이해할 수 없음을 사용자에게 알림), 주변 장치에 대한 명령(예: 전구를 턴-오프) 등과 같은 액션을 포함할 수 있다.
전술한 바와 같이, 호출 엔진(124)은 오디오 데이터에서 하나 이상의 음성 호출 구문의 존재를 검출하고, 음성 호출 구문 중 하나의 검출에 응답하여 자동 어시스턴트(140)를 호출하도록 동작 가능하다. 호출 엔진(124)은 오디오 데이터 프레임의 스트림에서 음성 호출 구문의 검출에서 노이즈 감소 기술을 선택적으로 적응시키고 이용할 수 있다. 도 1에 도시된 바와 같이, 호출 엔진(124)은 분류 모듈(125), 제어기 모듈(126), 노이즈(잡음) 감소(NR) 적응 모듈(127) 및 호출 구문 모듈(128)을 포함할 수 있다.
분류 모듈(125)은 학습된 음향 모델(160A)을 사용하여 오디오 데이터 프레임 스트림의 오디오 데이터 프레임 각각을 처리한다. 오디오 데이터 프레임의 스트림은 클라이언트 장치(106)의 하나 이상의 마이크로폰으로부터의 출력에 기초한다. 예를 들어, 각각의 오디오 데이터 프레임은 적어도 제1 마이크로폰으로부터의 출력에 기초한 제1 채널 및 제2 마이크로폰으로부터의 출력에 기초한 제2 채널을 가질 수 있다. 학습(학습)된 음향 모델(160A)을 사용하여 각각의 오디오 데이터 프레임을 처리(프로세싱)하는 것은, 하나 이상의 호출 음소 각각에 대해 음소가 오디오 데이터 프레임에 존재할 수 있는 해당 확률을 나타내는 출력과 같은 각각의 출력을 생성한다.
본원에 사용된 용어 "오디오 데이터 프레임"은 오디오 데이터의 유닛을 지칭한다. 예를 들어, 오디오 데이터 프레임은 단일 시점에서 단일 마이크로폰에 의해 캡처된 단일 오디오 샘플, 동일한 단일 시점에서 해당 복수의 마이크로폰에 의해 캡처된 복수의 오디오 샘플, 일정 기간 동안 단일 마이크로폰에 의해 캡처된 복수의 오디오 샘플, 또는 공통 기간 동안 복수의 마이크로폰에 의해 캡처된 복수의 오디오 샘플일 수 있다. 본 명세서에서 사용되는 바와 같이, "호출 음소(invocation phoneme)"는 자동 어시스턴트를 위한 호출 구문(문구)의 일부인 사운드 유닛(예를 들어, 발화 또는 그 일부)를 지칭한다. 호출 구문은 하나 이상의 호출 음소를 포함 할 수 있다. 학습된 음향 모델(160A)은 기계 학습 기술을 사용하여 학습될 수 있으며; 따라서, "음향 모델", "학습된 음향 모델", "기계 학습 모델" 및 "학습된 기계 학습 모델"이라는 용어는 본 명세서 전체에서 상호 교환적으로 사용된다.
분류 모듈(125)은 오디오 데이터 프레임의 처리(프로세싱)에 기초하여 생성된 해당 출력에 기초한 해당 출력 표시와 함께, 오디오 데이터 프레임을 버퍼(162)에 추가로 저장한다. 예를 들어, 각 출력 표시는 "노이즈", "니어 트리거" 및 "트리거"중 하나를 나타낼 수 있다. 예를 들어, 분류 모듈(125)은
학습된 음향 모델(160A)을 사용하여 생성된 오디오 데이터 프레임에 대한 출력이 임의의 호출 음소들에 대한 적어도 제1 "낮은(low)" 임계 확률을 나타내지 않을 때 "노이즈" 출력 표시를 오디오 데이터 프레임에 할당할 수 있다. 또한, 예를 들어, 분류 모듈(125)은, 학습된 음향 모델 (160A)을 사용하여 생성된 오디오 데이터 프레임에 대한 출력이 하나 이상의 호출 음소들에 대한 적어도 제1 임계 확률을 나타내지만 임의의 호출 음소에 대한 적어도 제2 "높은(high)" 임계 확률을 나타내지 않을 때, "니어 트리거" 출력 표시를 다른 오디오 데이터 프레임에 할당할 수 있다. 또한, 예를 들어, 분류 모듈(125)은 학습된 음향 모델(160A)을 사용하여 생성된 오디오 데이터 프레임에 대한 출력이 임의의 호출 음소들에 대한 적어도 제2 임계 확률을 나타낼 때 또 다른 오디오 데이터 프레임에 "트리거" 출력 표시를 할당할 수 있다.
따라서, 분류 모듈(125)은 학습된 음향 모델(160A)을 사용하여 스트림의 오디오 데이터 프레임을 연속적으로 프로세싱하고, 학습된 음향 모델(160A)을 사용한 프로세싱에 기초한 해당 출력 표시와 함께 버퍼(162)에 저장할 수 있다. 버퍼(162)는 고정 길이의 FIFO(first in, first out) 버퍼일 수 있다. 따라서, 임의의 주어진 시간에 버퍼(162)는 하나 이상의 가장 최근에 프로세싱된 오디오 데이터 프레임을 포함할 수 있다. 버퍼(162)가 가득 차고 그리고 새로운 데이터 프레임이 추가되면 데이터 프레임이 버퍼(162)로부터 플러시(flushed)될 수 있다. 또한, 아래에서 더 상세히 설명되는 바와 같이, 다양한 상황에서 제어기 모듈(126)에 의해 하나 이상의 데이터 프레임이 버퍼(162)로부터 플러시될 수 있다. 버퍼(162)의 고정 길이는 원하는 지속 기간의 오디오 데이터가 버퍼(162)에 저장될 수 있게 하는 길이일 수 있다. 원하는 지속 기간은 예상되는 호출 구문(들)의 지속 시간에 기초할 수 있다(예를 들어, 전체 호출 구문이 버퍼의 오디오 데이터 프레임에 의해 집합적으로 캡처될 수 있을 정도로 긴 시간). 그러나, 많은 구현들에서, 원하는 지속 시간은 예상 지속 기간을 크게 초과하여, 여기에 설명된 적응성 노이즈 감소 기술의 영향을 줄이지 않아야 한다. 일부 구현들에서, 원하는 지속 기간은 1초와 2초 사이의 값, 예컨대 1.25 초와 2.0 초 사이의 값(예를 들어, 1.5 초)이다.
일부 구현들에서, 학습된 음향 모델(160A)은 컨볼루션 신경망(CNN) 모델이다. 이들 및/또는 다른 구현 중 일부에서, 각각의 오디오 데이터 프레임은 다수의 채널을 포함하고, 채널 중 하나만이 학습된 음향 모델(160A)을 사용하여 프로세싱된다(그러나 두 채널 모두 버퍼(162)에 저장되고, 예를 들어 NR 적응 모듈(127) 및/또는 NR 모듈(129)에 의해 사용된다). 오디오 데이터 프레임 스트림의 각 오디오 데이터 프레임은 마이크로폰(들)으로부터의 신호(들)의 분할(segmentation)에 기초하여 생성될 수 있다. 예를 들어, 각 오디오 데이터 프레임은 10 밀리 초 홉(hop)을 갖는 25 밀리 초 프레임일 수 있다. 학습된 음향 모델(160A)이 CNN인 일부 구현에서, CNN 모델은 입력층 및 출력층 사이에 3개의 은닉층을 갖는 5개의 계층을 포함할 수 있다. 이러한 구현들 중 일부에서, 학습된 음향 모델(160A)을 사용하여 오디오 데이터 프레임의 채널을 프로세싱할 때, 분류 모듈(125)은 채널에 대한 40- 채널 로그-멜-필터-뱅크(log-mel-filter-bank) 에너지를 계산하고, PCEN(per-channel energy normalization)을 사용하여 정규화한다. 학습된 음향 모델(160A)의 입력층에 적용된 입력은 24 개의 좌측 및 15 개의 우측 컨텍스트 프레임을 갖는 적층된 특징 벡터를 포함할 수 있다. 컨볼루션 계층은 입력층의 상부(top)에 위치할 수 있으며, 시간과 주파수에 걸쳐 308 개의 비-오버랩(겹치지 않는) 8 × 8 패치를 스윕(sweep)하는 데 사용된다. 이 콘볼루션 계층 다음에는 32 개의 출력을 가진 선형 투영 계층(LPL, linear projection layer)과 128 개의 출력을 가진 완전히 연결된 ReLU(rectified linear unit) 계층이 이어질 수 있다. 출력층의 뉴런(neurons)은 예를 들어 소프트맥스 활성화 함수를 사용할 수 있다. 출력층에 걸쳐 생성된 출력은 복수의 타겟 음소 각각에 대한 후방 확률(posterior probability)을 포함할 수 있고, 선택적으로 타겟 음소가 없는 후방 확률을 나타내는 단일의 추가 출력을 포함할 수 있다.
제어기 모듈(126)은 주기적으로 (또는 다른 규칙적 및/또는 비정규 간격으로) 버퍼(162)를 평가(assesse)하고 주어진 인스턴스에서 버퍼의 하나 이상의 오디오 데이터 프레임을 사용하여 주어진 인스턴스에서 수행될 액션을 선택한다. 제어기 모듈(126)은 버퍼(162)의 오디오 데이터 프레임과 관련하여 저장된 출력 표시에 기초하여 주어진 인스턴스에서 수행될 액션을 선택한다. 일부 구현에서, 주어진 인스턴스에서 버퍼(162)의 오디오 데이터 프레임이 모두 "노이즈"를 나타내는 출력 표시를 가질 때, 제어기 모듈(126)은 버퍼로부터 오디오 데이터 프레임을 팝(pop)하고 그 팝된 오디오 데이터 프레임에 기초하여 NR 필터(164)의 적응을 위해 팝된 오디오 데이터 프레임을 NR 적응 모듈(127)에 제공한다. 일부 구현들에서, 주어진 인스턴스에서 버퍼(162)의 오디오 데이터 프레임들이 "트리거"를 나타내는 출력 표시를 포함하지 않지만 "니어 트리거"를 나타내는 적어도 하나의 출력 표시를 포함 할 때, 제어기 모듈(126)은 버퍼(162)로부터 모든 오디오 데이터 프레임을 플러시하고, 플러시된(flushed) 오디오 데이터 프레임을 필터링하여 필터링된 데이터 프레임을 생성하기 위해 플러시된 오디오 데이터 프레임을 NR 적응 모듈(129)에 제공한다. 필터링된 데이터 프레임은 호출 구문이 필터링된 오디오 데이터 프레임에 존재하는지를 결정하기 위해 학습된 음향 모델(160B)을 사용하여 호출 구문 모듈(128)에 의해 프로세싱될 수 있다. 주어진 인스턴스에서 버퍼의 오디오 데이터 프레임이 "트리거"를 나타내는 적어도 하나의 출력 표시를 포함하는 경우, 제어기 모듈(126)은 버퍼(162)로부터 모든 오디오 데이터 프레임을 플러시하고, 플러시된 오디오 데이터 프레임을 호출 구문 모듈(128)에 제공한다. 플러시된 오디오 데이터 프레임은 그 후 학습된 음향 모델(160B)을 사용하여 호출 구문 모듈(128)에 의해 프로세싱되어 호출 구문이 필터링된 오디오 데이터 프레임에 존재하는지를 결정할 수 있다.
NR 적응 모듈(127)은 버퍼(162)가 "노이즈" 오디오 데이터 프레임만을 포함 할 때 버퍼(162)로부터 팝되는 오디오 데이터 프레임에 기초하여 노이즈 감소 기술을 동적으로 적응시킨다. 일부 구현들에서, NR 적응 모듈(127)은 NR 파일러(filer)(164)의 적응을 통해 노이즈 감소 기술을 적응시킨다. 예를 들어, 일부 구현들에서, 노이즈 감소 기술은 적응 노이즈 제거(ANC)이고, NR 필터(164)는 ANC 필터이다. 이러한 구현 중 일부에서, NR 적응 모듈(127)에 제공되는 오디오 데이터 프레임은 다수의 채널을 포함하고, NR 필터(164)를 적응시키는 데 있어서, NR 적응 모듈(127)은 NR 필터(164)를 제1 채널과 관련시키고 제2 채널로부터 결과를 감산하여 에러 신호를 형성한다. NR 적응 모듈(127)은 에러 신호의 평균 제곱 전력을 최소화하기 위해 NR 필터(164)의 필터 계수를 조정한다. NR 적응 모듈(127)은 (예: 호출 음소(들)을 포함하는지 여부를 결장하기 위해) 학습된 음향 모델(160B)을 사용하는 추가 프로세싱을 위해 에러(오류) 신호를 필터링된 오디오 데이터 프레임으로서 호출 구문 모듈(128)에 선택적으로 더 제공할 수 있다.
ANC가 이용될 때, 다양한 적응 알고리즘이 ANC를 구현하기 위해 이용될 수 있다. 하나의 비-제한적인 예로서, 단시간 푸리에 변환(STFT) 기반 재귀 최소 제곱(RLS) 기술이 이용될 수 있다. 이러한 기술은 유연하고 계산적으로 효율적일 수 있다. ANC가 하나의 예시적인 노이즈 감소 기술로서 위에서 설명되었지만, 다른 기술이 이용될 수 있고 선택적으로 하나 이상의 대응하는 필터를 이용할 수 있다는 것이 주목된다. 비-제한적인 일례는 빔포밍(beamforming) 노이즈 감소 기술이다.
STFT 기반 RLS 기술을 사용하는 특정 예가 제공되며, 오디오 데이터 프레임은 각각의 제1 및 제2 마이크로폰으로부터 제1 채널 및 제 2 채널을 포함한다. 이러한 예에서, 오디오 데이터 프레임(m) 및 라디안 주파수(ω)에서, 두 마이크로폰 신호의 STFT 계수는 각각
Figure 112020086268084-pct00001
Figure 112020086268084-pct00002
로 표시되며, 여기서
Figure 112020086268084-pct00003
이다. ANC는 수학식 1과 같이 L 탭의 복잡한 유한 임펄스 응답(FIR) 필터로 제2 마이크 신호를 필터링한다.
Figure 112020086268084-pct00004
여기서,
Figure 112020086268084-pct00005
는 벡터나 행렬의 전치를 나타낸다. 수학식 2와 같이 에러(오류) 신호를 얻기 위해 제1 마이크로폰 신호에서 결과를 감산한다.
Figure 112020086268084-pct00006
여기서,
Figure 112020086268084-pct00007
는 벡터 또는 행렬의 에르미트 전치(Hermitian transpose)이며,
Figure 112020086268084-pct00008
Figure 112020086268084-pct00009
는 현재 및 마지막 L-1 프레임에서 제2 채널의 STFT 계수의 집합(collection)이다. 가중 최소 제곱 코스트 함수는 수학식 3과 같이 표현된다.
Figure 112020086268084-pct00010
여기서
Figure 112020086268084-pct00011
는 망각 요소(forgetting factor)이다.
Figure 112020086268084-pct00012
Figure 112020086268084-pct00013
에 대해 수학식 3의 편미분을 취하고, 수학식 4와 같이 결과를 0으로 설정함으로써 코스트 함수가 최소화된다.
Figure 112020086268084-pct00014
여기서,
Figure 112020086268084-pct00015
,
Figure 112020086268084-pct00016
그리고
Figure 112020086268084-pct00017
는 복소수 변수의 켤레(conjugate)이다.
Figure 112020086268084-pct00018
에 대한 수학식 4를 풀면 수학식 5와 같이 RLS 솔루션이 생성된다.
Figure 112020086268084-pct00019
우드버리(Woodbury)의 아이덴티티를 사용하면, 수학식 5에서 행렬 반전의 직접 계산을 피할 수 있으며 계산적으로 더 효율적인 버전이 추론된다.
NR 모듈(129)은 필터링된 오디오 데이터 프레임을 생성하기 위해 가장 최근에 적응 노이즈 감소 기술을 사용하여 오디오 데이터 프레임을 프로세싱한다. 예를 들어, NR 모듈(129)은 버퍼(162)가 "니어 트리거"오디오 데이터 프레임을 포함하지만 "트리거" 오디오 데이터 프레임을 포함하지 않는 경우 버퍼(162)로부터 오디오 데이터 프레임을 수신할 수 있다. 또한, NR 모듈(129)은 필터링된 오디오 데이터 프레임을 생성하기 위해 NR 적응 모듈(127)에 의해 가장 최근에 적응된 NR 필터(164)를 사용하여 이들 오디오 데이터 프레임을 프로세싱할 수 있다. 예를 들어, NR 모듈(129)에 제공된 오디오 데이터 프레임은 다수의 채널을 포함할 수 있고, 이들 오디오 데이터 프레임 중 하나에 기초하여 필터링된 데이터 프레임을 생성할 때, NR 모듈(129)은 NR 필터(164)를 제1 채널과 컨볼루션(convolve)하고, 제2 채널로부터 결과를 감산하여 에러 신호를 형성하고, 그 에러 신호를 필터링된 데이터 프레임으로서 사용할 수 있다. NR 모듈(129)은 학습된 음향 모델(160B)을 사용한 추가 프로세싱을 위해 필터링된 오디오 데이터 프레임을 호출 구문 모듈(128)에 제공한다.
호출 구문 모듈(128)은 학습된 음향 모델(160B)을 사용하여 수신된 오디오 데이터 프레임 또는 필터링된 데이터 프레임을 프로세싱하여 호출 구문이 존재하는지를 결정한다. 일부 구현들에서, 학습된 음향 모델(160B)은 학습된 음향 모델(160A)과 동일할 수 있지만, 분류 모듈(125) 및 호출 구문 모듈(128)에 의한 병렬 프로세싱을 가능하게 하기 위해 다른 인스턴스일 수 있다. 일부 다른 구현에서, 학습된 음향 모델(160B)은 학습된 음향 모델(160A)과 상이할 수 있다. 예를 들어, 학습된 음향 모델(160B)은 학습된 음향 모델(160A)에 비해 활용하기 위해 보다 계산 집약적일 수 있는 보다 견고(robust)한 모델일 수 있다.
호출 구문 모듈(128)은 학습된 음향 모델(160B)을 사용한 프로세싱에 기초하여 생성된 출력(들)에 기초하여 호출 구문(문구)이 존재하는지를 결정할 수 있다. 예를 들어, 버퍼(162)의 모든 오디오 데이터 프레임이 버퍼로부터 플러시되고, NR 모듈(129)이 이들 오디오 데이터 프레임에 대응하는 필터링된 데이터 프레임을 생성하는 경우, 호출 구문(문구) 모듈(128)은 학습된 음향 모델(160B)을 사용하여 필터링된 데이터 프레임의 프로세싱에 의해 생성된 출력에 기초하여 호출 구문이 존재하는지 여부를 결정할 수 있다. 예를 들어, 호출 구문 모듈(128)은 호출 구문의 적어도 임계량의 호출 음소가 출력에서 적어도 임계 확률로 표시(및 선택적으로 특정 순서로 표시되는)되는 경우 호출 구문이 존재한다고 결정할 수 있다. 일부 구현들에서, 호출 구문이 존재하는지를 결정할 때, 호출 구문 모듈(128)은 학습된(학습된) 음향 모델(160A)을 사용하여, 해당 오디오 데이터 프레임들에 대해 생성된 출력을 선택적으로 추가로 이용할 수 있다. 다시 말해, 학습된 음향 모델(160A)을 통해 생성된 출력은 해당 오디오 데이터 프레임(또는 이의 필터링된 변형)에 대해 학습된 음향 모델(160B)을 통해 생성된 출력과 함께 고려될 수 있다.
도 도 2a 및 도 2b를 참조하면, 클라이언트 장치(106)의 호출 엔진(124)에 의해 구현될 수 있는 예시적인 방법(200)에 대한 추가적인 설명이 제공된다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 클라이언트 장치(106)의 하나 이상의 프로세서 및/또는 도 1의 호출 엔진(124)의 하나 이상의 모듈과 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 또한, 방법(200)의 동작이 특정 순서로 도시되어 있지만, 이는 제한적인 것으로 의도되지는 않는다. 하나 이상의 동작이 재정렬, 생략 또는 추가될 수 있다.
방법(200)의 블록(252 및 254)이 도 2a에 도시되어 있다. 일부 구현들에서, 분류 모듈(125)은 도 2a의 블록들을 수행한다. 블록(252)에서, 시스템은 학습된 음향 모델을 사용하여 수신된 오디오 데이터 프레임의 하나 이상의 채널을 프로세싱하여 오디오 데이터 프레임의 분류를 나타내는 출력을 생성한다. 예를 들어, 출력은 오디오 데이터 프레임이 "트리거", "니어 트리거" 또는 "노이즈"를 포함하는지 여부를 나타낼 수 있다.
블록(254)에서, 시스템은 수신된 오디오 데이터 프레임 및 분류를 시스템에 액세스 가능한 메모리의 FIFO 버퍼와 같은 버퍼에 저장한다. 그 후 시스템은 블록(252)으로 되돌아가서, 다른 오디오 데이터 프레임을 프로세싱하고, 오디오 데이터 프레임 및 그 분류를 버퍼에 저장한다. 블록들(252 및 254)은 오디오 데이터 프레임들의 스트림상에서 연속적으로 수행될 수 있다. 예를 들어, 블록(252 및 254)은 클라이언트 컴퓨팅 장치의 자동 어시스턴트 클라이언트가 음성 호출 구문을 모니터링할 때 수행될 수 있다. 사용자가 자동 어시스턴트 클라이언트를 (예: 하드웨어 스위치를 통해) 수동으로 설정하여 음성 호출 구문에 대한 모니터링이 발생하지 않거나 및/또는 (예: 이전에 감지된 호출 구문에 대한 응답으로) 자동 어시스턴트가 호출되는 동안 일시적으로 중지될 수 있는 응답에 따라 일시적으로 중지될 수 있다.
방법(200)의 추가 블록이 도 2b에 도시되어있다. 다양한 구현들에서, 도 2b의 블록들은 다른 간격으로 및/또는 도 2a와 다른 스레드를 통해 수행될 수 있다. 예를 들어, 도 2b의 블록의 반복이 반복적으로 수행될 수 있고, 각각의 반복에서 도 2a의 블록의 다중 반복이 이미 수행되었을 수 있다. 즉, 도 2a의 블록은 버퍼의 컨텐츠를 연속적으로 업데이트하기 위해 반복적으로 수행될 수 있으며, 도 2b의 블록은 버퍼의 현재 컨텐츠를 주기적으로 평가하기 위해 반복적으로 수행되고(그러나 도 2a의 것보다 덜 빈번하다), 현재 컨텐츠에 의존하여 추가 액션(들)을 수행한다.
도 2b의 블록(256)에서, 시스템은 버퍼 내에 "트리거" 프레임임을 나타내는 출력 표시를 갖는 적어도 하나의 오디오 데이터 프레임이 있는지를 결정한다. 시스템은 블록(260)으로 진행하여, 추가 학습된 음향 모델을 사용하여 버퍼의 오디오 데이터 프레임의 하나 이상의 채널을 프로세싱하여 호출 구문이 버퍼의 오디오 데이터 프레임에 존재하는지를 결정한다. 예를 들어, 블록(260)에서, 시스템은 버퍼의 모든 오디오 데이터 프레임을 플러시하고, 추가 학습된 음향 모델을 사용하여 이들 오디오 데이터 프레임의 적어도 하나의 채널(및 선택적으로 하나의 채널)을 프로세싱하고, 그 프로세싱에 기초하여 생성된 출력에 기초하여 호출 구문이 존재하는지 여부를 결정할 수 있다. 블록(260) 다음에, 시스템은 블록(272)으로 진행하고, 여기서 시스템은 블록(260)에서 호출 구문이 존재한다고 결정되면 블록(274)으로 진행하고, 호출 구문이 존재하지 않는 것으로 결정되면 블록(256)으로 다시 진행한다.
도 2b의 블록(256)의 반복에서, 시스템은 "트리거" 프레임임을 나타내는 출력 표시를 갖는 적어도 하나의 오디오 데이터 프레임이 버퍼에 없다고 결정하고, 시스템은 블록(262)으로 진행하여 "니어 트리거" 프레임임을 나타내는 출력 표시를 갖는 적어도 하나의 오디오 데이터 프레임이 버퍼에 있는지 여부를 결정한다. 시스템은 블록(264)으로 진행하여 필터링된 데이터 프레임을 생성하기 위해 현재 적응된 노이즈 감소 기술을 사용하여 버퍼의 하나 이상의 오디오 데이터 프레임의 하나 이상의 채널을 프로세싱한다. 예를 들어, 블록(264)에서, 시스템은 버퍼의 모든 오디오 데이터 프레임을 플러시하고, (예를 들어, 단일 필터링된 채널만을 포함하는) 해당 필터링된 데이터 프레임을 생성하기 위해 현재 적응된 노이즈 감소 기술을 사용하여 각각의 오디오 데이터 프레임의 다수의 채널을 프러세싱할 수 있다. 아래에 자세히 설명된 바와 같이, 현재 적응된 노이즈 감소 기술은 블록(268)의 가장 최근 반복에서 가장 최근에 적응된 바와 같은 노이즈 감소 기술일 것이다. 그 후 시스템은 블록(266)으로 진행하여 호출 구문이 존재하는지를 결정하기 위해 학습된 음향 모델을 사용하여 (블록 264에서 생성된) 필터링된 데이터 프레임을 프로세싱한다. 블록(266)은 필터링된 데이터 프레임이 프로세싱되는 것을 제외하고는 블록(260)과 공통의 하나 이상의 양태를 공유할 수 있다. 블록(266) 다음에, 시스템은 블록(272)으로 진행하고, 여기서 시스템은 블록(260)에서 호출 구문이 존재한다고 결정되면 블록(274)으로 진행하고, 호출 구문이 존재하지 않는 것으로 결정되면 블록(256)으로 다시 진행한다.
도 2b의 블록(262)의 반복에서, 시스템은 "니어 트리거" 프레임임을 나타내는 출력 표시를 갖는 적어도 하나의 오디오 데이터 프레임이 버퍼에 없다고 결정하면, 시스템은 블록(268)으로 진행한다. 블록(268)으로 진행함에 있어서, 시스템은 버퍼가 모두 "노이즈"를 나타내는 출력 표시를 갖는 오디오 데이터 프레임만을 포함한다는 것을 효과적으로 결정하였다. 다시 말해, 블록(256 및 262)에서의 결정이 프레임 중 어느 것도 "트리거" 또는 "니어 트리거" 프레임이 아님을 나타내기 때문에 버퍼의 오디오 데이터 프레임은 효과적으로 "노이즈" 프레임으로 간주된다.
블록(268)에서, 시스템은 버퍼의 하나 이상의 오디오 데이터 프레임의 하나 이상의 채널을 사용하여 노이즈 감소 기술을 적응시킨다. 예를 들어, 시스템은 적어도 제1 채널(제1 마이크로폰에 기초함) 및 제2 채널(제2 마이크로폰에 기초함)을 포함하는 적어도 하나의 오디오 데이터 프레임(선택적으로 하나만)을 버퍼로부터 "팝핑(pop)"할 수 있고, 오디오 데이터 프레임을 이용하여 ANC 노이즈 감소 기술에 이용되는 적응성 노이즈 제거 필터를 적응시킬 수 있다. 그 후, 시스템은 선택적으로 블록(270)으로 진행하고, 호출 구문이 존재하는지를 결정하기 위해 학습된 음향 모델을 사용하여 (적응 동안 블록(268)에서 생성된) 필터링된 데이터 프레임을 프로세싱할 수 있다. 일부 구현들에서, 블록(270)에서 시스템은 초기에 블록(268)으로부터 노이즈 감소된 프레임(들)만을 프로세싱할 수 있다. 프로세싱에 기초하여 노이즈 감소된 프레임(들)이 임의의 트리거 음소의 임계 확률이 부족하다는 것이 결정되면, 프로세싱은 종료될 수 있다. 그러나, 이러한 구현들 중 일부에서, 노이즈 감소된 프레임(들)이 적어도 하나의 트리거 음소에 대한 적어도 임계 확률을 포함하는 것으로 결정되면, 추가 오디오 데이터 프레임(들)은 버퍼로부터 풀링(pulled)될 수 있고, 노이즈 감소 기술을 사용하여 프로세싱되어 필터링된 데이터 프레임을 생성할 수 있고, 이들 필터링된 데이터 프레임은 또한 호출 구문이 존재하는지를 결정하는 블록(270)에서 프로세싱된다. 블록(270) 다음에, 시스템은 블록(272)으로 진행하고, 여기서 시스템은 블록(260)에서 호출 구문이 존재한다고 결정되면 블록(274)으로 진행하고, 호출 구문이 존재하지 않는 것으로 결정되면 블록(256)으로 다시 진행한다.
블록(272)의 반복에서, 시스템은 블록(274)으로 진행하고, 시스템은 블록(274)에서 버퍼의 오디오 데이터 프레임(및/또는 이의 필터링된 버전)의 추가 프로세싱이 수행되게 하고 및/또는 다음 오디오 데이터 프레임(들)(및/또는 이의 필터링된 버전)의 추가 프로세싱이 수행되게 한다. 예를 들어, 시스템은 버퍼의 (예: 호출 구문을 결정하는 데 사용된) 오디오 데이터 프레임, 및/또는 이러한 오디오 데이터 프레임을 바로 뒤 따르는 다음 오디오 데이터 프레임을 스트림으로부터 오디오 데이터 프레임을 프로세싱하지 않은 하나 이상의 원격 및/또는 로컬 자동 어시스턴트 엔진에 제공할 수 있다.
일부 구현들에서, 제어기 모듈(126)은 도 2b의 블록들(256 및 262)을 수행 할 수 있고; NR 적응 모듈(127)은 도 2b의 블록(268)을 수행 할 수 있고; NR 모듈(129)은 도 2b의 블록(264)을 수행 할 수 있고; 및/또는 호출 구문 모듈(128)은도 2b의 블록(260, 266, 270 및 274)을 수행할 수 있다.
도 3을 참조하면, 여기에 개시된 다양한 구현들에 따라 오디오 데이터 프레임들이 어떻게 프로세싱될 수 있는지의 예가 제공된다. 도 3에 도시된 바와 같이, 오디오 데이터 프레임 스트림의 오디오 데이터 프레임(1121-N)은 분류 모듈(125)에 순차적으로 제공된다. 분류 모듈(125)은 학습된 음향 모델(160A)을 사용하여 각각의 오디오 데이터 프레임(1121-N)을 순차적으로 프로세싱하여 "트리거", "니어 트리거" 또는 "노이즈"를 나타내는 라벨과 같은 해당 라벨(Label)(1141-N)을 생성한다.
오디오 데이터 프레임(1121-N)은 해당 라벨(1141-N)과 함께 버퍼(162)에 저장된다. 제어기 모듈(126)은 버퍼(162)에 액세스하고, 버퍼(162)의 컨텐츠에 기초하여 버퍼(162)의 오디오 데이터 프레임(1121)을 NR 적응 모듈(127)에 제공할 것인지를 결정하고, 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 NR 모듈(129)에 제공하거나, 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 호출 구문 모듈(128)에 제공한다. 도 3에 도시된 바와 같이, 제어기 모듈(126)은 버퍼(162)가 "노이즈" 프레임만을 포함한다고 결정할 때 버퍼(162)의 오디오 데이터 프레임(1121)을 NR 적응 모듈(127)에 제공할 수 있고, 버퍼(162)가 "니어 트리거" 프레임(들)을 포함한다고(선택적으로 "트리거" 프레임이 없는 경우) 결정할 때 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 NR 모듈(129)에 제공할 수 있고, 버퍼(162)가 "트리거" 프레임(들)을 포함한다고(및 선택적으로 "니어 트리거" 프레임이 없는 경우) 결정할 때 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 호출 구문 모듈(128)에 제공할 수 있다.
따라서, 도 3에서, 제어기 모듈(126)은 버퍼(162)의 컨텐츠에 기초하여 3가지 결정 중 하나를 결정한다. 도 3의 예는 하나의 인스턴스에서의 예이고, 제어기 모듈(126)은 (구분 모듈(125)에 의해 제공된 라벨과 함께 새로운 오디오 데이터 프레임이 버퍼(162)에 추가됨에 따라) 각각의 인스턴스에서의 버퍼(162)의 컨텐츠에 기초하여 복수의 추가 인스턴스 각각에서 3개의 결정 중 하나를 결정할 것이다.
제어기 모듈(126)이 버퍼(162)의 오디오 데이터 프레임(1121)을 NR 적응 모듈(127)에 제공할 때, NR 적응 모듈(127)은 오디오 데이터 프레임(1121)에 기초하여 NR 필터(164)를 적응시킨다. NR 적응 모듈(127)은 또한 선택적으로 필터링된 데이터 프레임(1131), 즉 적응 동안 생성된 오디오 데이터 프레임(1121)의 필터링된 버전을 호출 구문 모듈(128)에 제공한다. 호출 구문 모듈(128)은 호출 구문이 존재하는지 여부(116)를 결정하는 데 학습된 음향 모델(160B)을 사용하여 필터링된 데이터 프레임(1131)을 프로세싱할 수 있다.
제어기 모듈(126)이 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 NR 모듈(129)에 제공할 때, NR 모듈(129)은 필터링된 데이터 프레임(1131-N)을 생성하기 위해 NR 필터(164)(이전의 인스턴스에서 NR 적응 모듈(127)에 의해 가장 최근에 적응됨)를 사용하여 이들 오디오 데이터 프레임(1121-N)을 프로세싱한다. NR 모듈(129)은 필터링된 데이터 프레임(1131-N)을 호출 구문 모듈(128)에 제공하고, 이는 호출 구문이 존재하는지 여부(116)를 결정하는 데 학습된 음향 모델(160B)을 사용하여 이들 프레임을 프로세싱한다.
제어기 모듈(126)이 버퍼(162)의 모든 오디오 데이터 프레임(1121-N)을 호출 구문 모듈(128)에 제공할 때, 호출 구문이 존재하는지의 여부(116)를 결정하는데 학습된 음향 모델(160B)을 사용하여 이들 프레임들 (선택적으로 그것의 단일 채널)을 프로세싱한다.
도 4는 도 4의 예에서 마이크로폰(구체적으로 도시되지 않음)을 갖는 독립형 대화형 스피커의 형태를 취하는 클라이언트 장치(406)의 예를 도시한다. 도 4는 또한 "OK, Assistant, what’s on my calendar(오케이, 어시스턴트, 내 일정은)"의 음성 발화(403)를 말하는 사용자(402)의 예를 도시한다. 또한, 도 4는 배경 노이즈(잡음)(405)를 제공하는 텔레비전(404)을 포함한다. "OK, Assistant"는 (예를 들어, 자동 어시스턴트 클라이언트를 통해) 클라이언트 장치(406)에서 적어도 부분적으로 구현되는 자동 어시스턴트를 위한 호출 구문일 수 있다. 클라이언트 장치(406)의 하나 이상의 프로세서는 텔레비전(404)으로부터의 배경 노이즈(405)와 같은 배경 노이즈가 존재하는 경우에도 발화(403)에서 호출 구문을 검출하기 위해 여기에 기술된 기술을 이용할 수 있다. 예를 들어, 다양한 기술은 이전의 "노이즈"오디오 데이터 프레임을 고려하여 적응된 노이즈 감소 기술을 이용할 수 있으며, 이에 따라 배경 노이즈(405)를 감소시키기 위해 노이즈 감소 기술을 효과적으로 적용(적응)할 수 있다. 또한 본 명세서에 기술된 바와 같이, 호출 구문의 검출은 자동 어시스턴트를 호출할 수 있고, 이에 의해 "what’s on my calendar"의 추가 프로세싱이 수행되고, 자동 어시스턴트에 의해 생성된 적절한 응답 및 클라이언트 장치(406)의 스피커(들)를 통해 청각적으로 렌더링된 응답이 야기될 수 있다. 예를 들어, 응답은 현재 날짜에 대한 사용자의 저장된 일정관리(calendar) 엔트리의 요약일 수 있다.
도 5를 참조하면, 클라이언트 장치(106)의 호출 엔진(124)에 의해 구현될 수 있는 다른 예시적인 방법(500)에 대한 추가 설명이 제공된다. 방법(500)은 도 2a-2b의 방법(200)(또는 유사한 방법) 대신에 호출 엔진(124)에 의해 구현될 수 있거나, 선택적으로 방법(200)(및 호출 구문이 존재할 때를 결정하는 데 사용되는 모든 방법)과 병렬로 구현될 수 있다.
편의상, 도 5의 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 클라이언트 장치(106)의 하나 이상의 프로세서 및/또는 도 1의 호출 엔진(124)의 하나 이상의 모듈과 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(500)의 동작이 특정 순서로 도시되어 있지만, 이는 제한적인 의미가 아니다. 하나 이상의 동작이 재정렬, 생략 또는 추가될 수 있다.
블록(554)에서, 시스템은 오디오 데이터 프레임 스트림의 오디오 데이터 프레임을 수신한다. 그 후 시스템은 블록(554) 및 블록(558)으로 진행한다. 시스템은 블록(554 및 558)으로 병렬로 (예를 들어, 상이한 스레드를 통해) 진행할 수 있다.
블록(554)에서, 시스템은 블록(552)에서 수신된 오디오 데이터 프레임의 하나 이상의 채널을 사용하여 노이즈 감소 필터를 적응시킨다. 예를 들어, 시스템은 전술한 바와 같이 STFT 기반 RLS를 이용하는 것과 같은 ANC 노이즈 감소 기술에 사용되는 ANC 필터를 적응시킬 수 있다.
블록(554)으로부터, 시스템은 블록(556)으로 진행하여 블록(554)의 가장 최근 반복에서 적응된 바와 같이 시스템에 액세스 가능한 메모리의 선입 선출(FIFO) 버퍼에 적응된 필터를 저장한다. 예를 들어, 시스템은 블록(554)의 가장 최근 반복에서 적응된 바와 같이 적응된 필터의 계수를 저장함으로써 적응된 필터를 저장할 수 있다. 따라서, 방법(200)(버퍼에 오디오 데이터 프레임을 저장하는 방법)과 구별하여, 방법(500)에서 적응된 필터가 버퍼에 저장된다.
블록(558)에서, 시스템은 FIFO 버퍼의 적응된 필터를 사용하여 수신된 오디오 데이터 프레임의 하나 이상의 채널을 프로세싱하고, 여기서 적응된 필터는 초기 오디오 데이터 프레임에 기초하여 적응된 필터이다. 예를 들어, 적응된 필터는 FIFO 버퍼의 "헤드(head)"에 있는 적응된 필터(예를 들어, FIFO 버퍼의 "oldest" 적응된 필터)일 수 있고, 여기서 FIFO 버퍼의 헤드에서의 적응된 필터는 블록(552)의 초기 반복에서 수신된 오디오 데이터 프레임 스트림의 초기 오디오 데이터 프레임에 기초하여 블록(554)의 초기 반복에서 적응된다. 시스템은 필터링된 데이터 프레임을 생성하기 위해 적응된 필터를 사용하여 채널(들)을 프로세싱한다. 따라서, 블록(558)에서, 시스템은 초기 오디오 데이터 프레임 (및 그 오디오 데이터 프레임에 선행하는 오디오 데이터 프레임의 관점에서)에 기초하여 적응된 적응 필터를 사용하여 상기 수신된 오디오 데이터 프레임을 프로세싱한다. 예를 들어, FIFO 버퍼는 해당 오디오 데이터 프레임으로부터 많은 양의 적응된 필터를 보유할 수 있으며, 여기서, 헤당 오디오 데이터 프레임은 오디오 데이터 스트림의 1 내지 2 초 (또는 다른 값)를 구성한다. 또한, 블록(558)에서 사용된 오디오 데이터 필터는 FIFO 버퍼의 헤드로부터의 것일 수 있으며, 이에 의해, 1 내지 2초 (또는 다른 값) 전에 오디오 데이터 프레임에 기초하여 적응된 적응 필터를 고려하여 필터링된 데이터 프레임을 생성하지만, 더 최근의 시간 오디오 데이터 프레임에는 적응되지 않는다. 따라서, 블록(558)에서 사용된 적응된(적응) 필터는 그 적용에서 (생성 및 해당 오디오 데이터 프레임과 관련해서) "지연(deferred)" 되고, 그에 따라 배경 노이즈가 감소된 필터링된 오디오 데이터 프레임을 생성하는 한편, 필터링된 오디오 데이터 프레임에서 잠재적으로 존재하는 트리거 음소(들)(또는 다른 구현에서 다른 타겟 특징(들))를 감소시킬 위험을 완화시킨다.
블록(558)에서, 시스템은 블록(560)으로 진행하여 호출 구문이 존재하는지를 결정하는데 학습된 음향 모델을 사용하여 필터링된 데이터 프레임을 프로세싱한다. 그 후, 시스템은 블록(560)으로 진행하여 블록(560)의 가장 최근 반복 및 블록 (560)의 하나 이상의 선행 반복에 기초할 수 있는 호출 구문이 존재하는지를 결정한다. 예를 들어, 블록(560)의 가장 최근 반복의 프로세싱에 기초하여 트리거 음소가 존재한다는 결정에 기초할 수 있고, 블록(560)의 이전 반복의 프로세싱에 기초하여 다른 트리거 음소가 존재한다는 결정에 기초할 수 있다. 시스템은 블록(562)에서 호출 구문이 존재한다고 결정되면 블록(564)으로 진행하고, 호출 구문이 존재하지 않는 것으로 결정되면 블록(552)으로 되돌아 간다.
블록(562)의 반복에서, 시스템이 블록(564)으로 진행하면, 시스템은 블록(564)에서 다음 오디오 데이터 프레임(들)(및/또는 그 필터링된 버전)의 추가 프로세싱을 수행되게 한다. 예를 들어, 시스템은 스트림으로부터 오디오 데이터 프레임을 프로세싱하지 않은 다음 오디오 데이터 프레임을 하나 이상의 원격 및/또는 로컬 자동 어시스턴트 엔진에 제공할 수 있다.
블록(562)의 반복에서, 시스템이 블록(552)으로 진행하면, 시스템은 블록(552)에서 다음 오디오 데이터 프레임을 수신하고, 다음 오디오 데이터 프레임에 기초하여 블록(554 및 558)으로 진행한다. 따라서, 방법(500)의 다수의 반복을 통해, 오디오 데이터 프레임의 스트림은 호출 음소(들)의 존재 여부를 결정함에 있어 음향 모델을 프로세싱하기 전에 현재 오디오 데이터 프레임을 필터링하기 위해 그들의 적응에서 연기된 적응된 필터를 사용하는 동안, 호출 구문의 존재에 대해 프로세싱 및 모니터링된다. 방법(500)을 수행함에 있어서 단일 음향 모델만이 이용될 수 있고, 제어기 모듈(126)은 생략될 수 있음에 유의한다.
방법(500)은 호출 구문의 존재를 검출하는 것과 관련하여 설명되었지만, 스피커 식별을 위한 음성 특징과 같은 대안적 특징의 존재를 검출하기 위해 추가로 또는 대안적으로 이용될 수 있다. 일부 구현들에서, NR 적응 모듈(127)은 도 5의 블록들(554 및 556)을 수행할 수 있고; NR 모듈(129)은 도 5의 블록(558)을 수행할 수 있고; 및/또는 호출 구문 모듈(128)은 블록(560, 562 및 564)을 수행할 수 있다.
도 6은 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 사용될 수 있는 예시적인 컴퓨팅 장치(610)의 블록도이다. 컴퓨팅 장치(610)는 전형적으로 버스 서브시스템(612)을 통해 다수의 주변 장치와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 장치는, 예를 들어, 메모리 서브시스템(625) 및 파일 저장(스토리지) 서브시스템(626), 사용자 인터페이스 출력 장치(620), 사용자 인터페이스 입력 장치(622) 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장 서브시스템(624)을 포함할 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(610)와의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 인터페이스를 제공하고 다른 컴퓨팅 장치에서 대응하는 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(622)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크로폰 및/또는 다른 유형의 입력 장치를 포함할 수 있다. 일반적으로, "입력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 정보를 컴퓨팅 장치(610) 또는 통신 네트워크에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치(620)는 디스플레이 서브시스템, 프린터, 팩스기, 또는 오디오 출력 장치와 같은 비 시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 투영 장치, 또는 가시 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 장치를 통한 것과 같은 비 시각적 디스플레이를 제공 할 수 있다. 일반적으로, "출력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 컴퓨팅 장치(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 방법을 포함하도록 의도된다.
저장(스토리지) 서브시스템(624)은 본 명세서에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 1에 도시된 다양한 컴포넌트를 구현하기 위해 도 5의 방법, 도 2a 및 2b의 방법의 선택된 양태를 수행하는 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(614)에 의해 단독으로 또는 다른 프로세서와의 조합으로 실행된다. 저장 서브시스템(624)에 사용되는 메모리(625)는 프로그램 실행 동안 명령 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정 명령이 저장된 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브 및 관련 이동식 매체, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 파일 저장 서브시스템(626)에 의해 저장 서브시스템(624) 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 장치(610)의 다양한 컴포넌트 및 서브시스템이 의도된대로 서로 통신하도록 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨팅 장치(610)의 설명은 일부 구현 예를 설명하기 위한 특정 예로서 만 의도된다. 컴퓨팅 장치(610)의 많은 다른 구성은 도 6에 도시된 컴퓨팅 장치보다 더 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에서 설명된 특정 구현이 사용자에 관한 개인 정보(예: 다른 전자 통신에서 추출된 사용자 데이터, 사용자의 소셜 네트워크에 대한 정보, 사용자의 위치, 사용자 시간, 사용자의 생체 정보 및 사용자의 활동 및 인구 통계 정보, 사용자 간의 관계 등)를 수집 또는 사용할 수 있는 상황에서, 사용자는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대한 정보 수집 방법, 저장 및 사용 방법을 제어할 수 있는 하나 이상의 기회를 제공받는다. 즉, 본 명세서에서 설명된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
예를 들어, 사용자는 프로그램 또는 기능이 특정 사용자 또는 프로그램 또는 기능과 관련된 다른 사용자에 대한 사용자 정보를 수집하는지 여부를 제어할 수 있다. 개인 정보를 수집할 각 사용자는 해당 사용자와 관련된 정보 수집을 제어하고 정보의 수집 여부와 정보의 어느 부분을 수집할 것인지에 대한 권한 또는 권한을 부여할 수 있는 하나 이상의 옵션이 제공받는다. 예를 들어, 통신 네트워크를 통해 사용자에게 하나 이상의 이러한 제어 옵션이 제공될 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 일례로서, 개인의 식별 가능한 정보가 결정될 수 없도록 사용자의 신원이 취급될 수 있다. 다른 예로서, 사용자의 지리적 위치는 더 큰 영역으로 일반화되어 사용자의 특정 위치가 결정될 수 없다.
일부 구현에서, 자동 어시스턴트에 대한 호출 구문을 검출하는 방법은 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되며, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계; 그리고 하나 이상의 대응하는 호출 음소의 존재의 하나 이상의 대응 확률을 나타내는 각각의 출력을 생성하기 위해 학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하는 단계를 포함한다. 이 방법은 스트림의 오디오 데이터 프레임을 오디오 데이터 프레임에 대한 출력 표시와 함께 버퍼에 저장하는 단계를 더 포함한다. 각각의 출력 표시는 오디오 데이터 프레임들 각각에 대한 것이고, 학습된 기계 학습 모델을 사용하여 오디오 데이터 프레임들 각각의 프로세싱에 기초하여 생성된 대응하는 출력에 기초한다. 방법은 제1 인스턴스에서, 제1 인스턴스에서의 버퍼에서의 출력 표시가 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임이 모두 하나 이상의 대응하는 호출 음소를 포함하지 못한다는 것을 나타내는 것을 결정하는 단계를 더 포함한다. 방법은 제1 인스턴스에서의 결정에 응답하여: 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임들 중 적어도 하나를 사용하는 단계를 더 포함한다. 방법은 제1 인스턴스 이후의 제 2 인스턴스에서, 제2 인스턴스에서의 버퍼에서의 출력 표시가 제 2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 하나 이상의 대응하는 호출 음소 중 적어도 하나를 포함한다는 것을 나타내는 것으로 결정하는 단계를 더 포함한다. 상기 방법은, 제2 인스턴스에서의 결정에 응답하여: 상기 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 상기 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 그리고 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 상기 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 존재를 나타내는지의 여부를 결정하는 단계를 더 포함한다. 상기 방법은, 필터링된 데이터 프레임이 호출 구문의 존재를 나타내는 것으로 결정된 것에 응답하여: 자동 어시스턴트의 하나 이상의 기능이 활성화되도록 하는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 다음 특징 중 하나 이상을 포함 할 수 있다.
일부 구현에서, 자동 어시스턴트의 적어도 하나의 기능이 활성화되도록 하는 단계는 스트림의 후속 수신된 오디오 데이터 프레임이 추가 프로세싱을 위해 하나 이상의 원격 자동 어시스턴트 서버로 전송되게 하는 단계를 포함한다. 추가 프로세싱은 예를 들어, 음성-텍스트 변환, 시맨틱 프로세싱 및 대화 상태 추적 중 하나 이상을 포함할 수 있다.
일부 구현에서, 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 적어도 하나의 오디오 데이터 프레임을 사용하는 단계는 버퍼로부터 단일 데이터 프레임을 제거하는 단계 및 노이즈 감소 필터를 적응시키기 위해 단일 데이터 프레임을 이용하는 단계를 포함한다.
일부 구현에서, 스트림의 오디오 데이터 프레임은 하나 이상의 마이크로폰 중 제1 마이크로폰에 기초한 적어도 제1 채널 및 하나 이상의 마이크로폰 중 제2 마이크로폰에 기초한 제2 채널을 포함한다. 이러한 구현 중 일부에서, 학습된 음향 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 각각의 출력을 생성하는 단계는 학습된 음향 모델을 사용하여 각 오디오 데이터 프레임의 제 1 채널만을 프로세싱하는 단계를 포함한다. 이러한 구현 중 일부에서, 노이즈 감소 필터는 다중 채널 노이즈 감소 필터이며, 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 오디오 데이터 프레임들 중 적어도 하나를 사용하는 단계는 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 적어도 하나의 오디오 데이터 프레임의 제1 채널 및 제2 채널을 모두 사용하는 단계를 포함한다. 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 오디오 데이터 프레임들 중 적어도 하나의 오디오 데이터 프레임 중 제 1 채널 및 제 2 채널을 모두 사용하는 단계는, 예를 들어, 노이즈 감소 필터를 업데이트하기 위한 에러를 결정할 때 제1 채널을 신호 소스로서 그리고 제2 채널을 노이즈 소스로서 사용하는 단계를 포함한다. 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계는 필터링된 데이터 프레임을 생성하는데 복수의 오디오 데이터 프레임의 제1 채널 및 제2 채널을 모두 사용하는 단계를 포함한다.
일부 구현에서, 제2 인스턴스에서의 버퍼에서의 출력 표시는 제2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 제1 임계치를 만족하지만 제2 임계치를 만족시키지 않는 해당 출력에 기초하여 하나 이상의 해당 호출 음소 중 적어도 하나를 포함한다는 것을 나타낸다.
일부 구현에서, 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은 클라이언트 장치의 자동 어시스턴트 클라이언트의 하나 이상의 기능이 비활성화되는 동안: 복수의 가장 최근에 프로세싱된 오디오 데이터 프레임들 및 각각의 오디오 데이터 프레임들 각각에 대응하는 복수의 출력 표시들을 포함하는 버퍼에 액세스하는 단계를 포함한다. 오디오 데이터 프레임은 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한다. 출력 표시는, 기계 학습(학습) 모델을 사용하여 각각의 오디오 데이터 프레임의 프로세싱에 기초하여 각각 결정되며, 각각의 하나의 오디오 데이터 프레임이 제1 임계치를 만족시키지 못하는 노이즈 프레임인지를 나타내며, 제1 임계치를 만족하지만 제2 임계치를 만족시키지 못하는 니어-트리거 프레임인지를 나타내며, 또는 상기 제1 임계치 및 상기 제2 임계치를 모두 만족시키는 트리거 프레임인지를 나타낸다. 이 방법은, 버퍼의 출력 표시가 버퍼의 모든 데이터 프레임이 노이즈 프레임임을 나타낼 때: 노이즈 감소 필터를 적응시키기 위해 버퍼 내의 오디오 데이터 프레임들 중 적어도 하나를 사용하는 단계를 포함한다. 상기 방법은, 버퍼의 출력 표시가 버퍼의 데이터 프레임이 적어도 하나의 니어 트리거 프레임을 포함하지만 트리거 프레임은 포함하지 않음을 나타낼 때: 노이즈 감소 필터를 이용하여 버퍼 내의 복수의 오디오 데이터 프레임들의 프로세싱에 기초하여 필터링된 데이터 프레임들을 생성하는 단계; 그리고 필터링된 데이터 프레임이 호출 구문의 존재를 나타내는지 여부를 결정하기 위해 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 필터링된 데이터 프레임을 프로세싱하는 단계를 더 포함한다. 이 방법은 필터링된 데이터 프레임이 호출 구문의 존재를 나타낼 때 자동 어시스턴트의 기능 중 하나 이상을 활성화시키는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현들에서, 방법은, 버퍼의 출력 표시들이 버퍼의 데이터 프레임들이 적어도 하나의 트리거 프레임을 포함한다는 것을 나타낼 때: 오디오 데이터 프레임이 호출 구문의 존재를 나타내는지 여부를 결정하기 위해 학습(학습)된 음향 모델 또는 추가 학습된 음향 모델을 사용하여 버퍼 내의 복수의 오디오 데이터 프레임을 프로세싱하는 단계; 그리고 오디오 데이터 프레임이 호출 구문의 존재를 나타낼 때 자동 어시스턴트의 기능 중 하나 이상을 활성화시키는 단계를 더 포함한다.
일부 구현에서, 노이즈 감소 필터를 사용하여 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계는 버퍼로부터 모든 오디오 데이터 프레임을 제거하는 단계 및 모든 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계를 포함한다. 이러한 구현 중 일부에서, 오디오 데이터 프레임이 호출 구문의 존재를 나타내는지 여부를 결정하기 위해 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 버퍼 내의 복수의 오디오 데이터 프레임을 프로세싱하는 단계는 오디오 데이터 프레임이 호출 구문의 존재를 나타내는지 여부를 결정하기 위해 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 버퍼로부터 모든 오디오 데이터 프레임을 제거하고 모든 오디오 데이터 프레임의 프로세싱을 수행하는 단계를 포함한다.
일부 구현에서, 자동 어시스턴트에 대한 호출 구문을 검출하는 방법은 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되며, 방법은, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임 그룹을 수신하는 단계; 그리고 학습된 기계 학습 모델을 사용하여 그룹의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 호출 음소의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계를 포함한다. 상기 방법은, 해당 확률 중 적어도 하나가 제1 임계치를 만족하지만 제2 임계치를 만족시키지 못하는 것에 응답하여: 노이즈 감소 필터를 사용하여 상기 그룹의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 상기 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 존재를 나타내는지 여부를 결정하는 단계; 그리고 필터링된 데이터 프레임이 호출 구문의 존재를 나타낸다는 결정에 응답하여 자동 어시스턴트의 적어도 하나의 기능을 활성화되게 하는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 방법은, 노이즈 감소 필터를 사용하여 필터링된 데이터 프레임을 생성하기 전에: 오디오 데이터 프레임 그룹에 선행하는 선행 오디오 데이터 프레임 그룹 중 적어도 하나의 오디오 데이터 프레임에 기초하여 노이즈 감소 필터를 적응시키는 단계를 더 포함한다. 이러한 구현 중 일부에서, 이 방법은 하나 이상의 해당 호출 음소의 존재의 하나 이상의 해당 선행 확률을 나타내는 각각의 출력을 생성하기 위해 학습된 기계 학습 모델을 사용하여 선행하는(preceding) 그룹의 각각의 오디오 데이터 프레임을 프로세싱하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 선행 그룹의 오디오 데이터 프레임 중 적어도 하나의 오디오 데이터 프레임에 기초하여 노이즈 감소 필터를 적응시키는 단계는 해당 선행 확률 중 어느 것도 제1 임계치 또는 제2 임계치를 만족시키지 않는다는 결정에 응답한다.
일부 구현에서, 상기 방법은, 노이즈 감소 필터를 사용하여 필터링된 데이터 프레임을 생성하기 전에: 오디오 데이터 프레임들의 그룹에 선행하는 선행 오디오 데이터 프레임에 기초하여 노이즈 감소 필터를 적응시키는 단계를 더 포함한다. 이러한 구현 중 일부에서, 상기 선행 오디오 데이터 프레임에 기초하여 노이즈 감소 필터를 적응시키는 것은: 학습된 기계 학습 모델을 사용하여 선행 오디오 데이터 프레임을 프로세싱하여 하나 이상의 호출 음소의 존재의 하나 이상의 선행 확률을 나타내는 선행 출력을 생성하는 것; 그리고 선행 확률 중 어느 것도 제1 임계치 또는 제2 임계치를 만족시키지 않는 것으로 결정하는 것에 기초하는 한다.
일부 구현에서, 활성화된 자동 어시스턴트의 적어도 하나의 기능은 로컬 또는 원격: 음성-텍스트(speech-to-text) 프로세싱, 시맨틱 프로세싱 및/또는 대화 상태 추적을 포함한다.
일부 구현에서, 자동 어시스턴트로 향하는 발화(음성 발화)에서 특징을 검출하는 방법은 하나 이상의 프로세서에 의해 구현되며, 방법은, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계; 학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 특징의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계; 그리고 오디오 데이터 프레임에 대한 출력 표시와 함께 스트림의 오디오 데이터 프레임을 버퍼에 저장하는 단계를 포함한다. 각각의 출력 표시는 오디오 데이터 프레임들 각각에 대한 것이고 그리고 학습된 기계 학습 모델을 사용하여 오디오 데이터 프레임들 각각의 프로세싱에 기초하여 생성된 해당 출력에 기초한다. 방법은 제1 인스턴스에서, 제1 인스턴스에서의 버퍼의 출력 표시가 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임이 모두 하나 이상의 해당 특징 중 어느 하나를 포함하지 못한다는 것을 나타내는 것을 결정하는 단계를 더 포함한다. 상기 방법은, 제1 인스턴스에서의 결정에 응답하여: 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 오디오 데이터 프레임들 중 적어도 하나를 사용하는 단계를 더 포함한다. 방법은, 제1 인스턴스 이후의 제2 인스턴스에서, 제2 인스턴스에서의 버퍼 내의 출력 표시가 제2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 하나 이상의 해당 특징 중 적어도 하나를 포함함을 나타낸다고 결정하는 단계를 더 포함한다. 상기 방법은, 제2 인스턴스에서의 결정에 응답하여: 상기 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 상기 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 필터링된 데이터 프레임이 특징의 존재를 나타내는지 여부를 결정하는 단계; 그리고 필터링된 데이터 프레임이 특징의 존재를 나타낸다는 결정에 응답하여 자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계를 더 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현들에서, 특징들(features)은 프로파일과 관련하여 저장된 음성 특성(characteristics)을 포함한다. 이러한 구현 중 일부에서, 자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계는 프로파일에 기초하여, 자동 어시스턴트에 의해 렌더링될 컨텐츠를 생성하는 단계를 포함하며, 특징의 존재를 나타내는 필터링된 데이터 프레임에 응답하여 프로파일에 기초하여 컨텐츠가 생성되고; 특징은 프로파일과 관련하여 저장된다.
일부 구현에서, 자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계는 자동 어시스턴트의 적어도 하나의 비활성 기능을 활성화시키는 단계를 더 포함한다. 비활성 기능 중 하나는 예를 들어 자연어 프로세싱 또는 대화(dialog) 상태 추적일 수 있다.
일부 구현에서, 자동 어시스턴트로 향하는 발화에 존재하는 적어도 하나의 특징을 검출하는 방법이 제공되며, 방법은, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임 그룹을 수신하는 단계; 그리고 학습된 기계 학습 모델을 사용하여 그룹의 각각의 오디오 데이터 프레임을 프로세싱하여, 적어도 하나의 특징의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계를 포함한다. 상기 방법은, 해당 확률 중 적어도 하나가 제1 임계치를 만족하지만 제2 임계치를 만족시키지 못하는 것에 응답하여: 노이즈 감소 필터를 사용하여 상기 그룹의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 그리고 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 필터링된 데이터 프레임이 적어도 하나의 특징의 존재를 나타내는지 여부를 결정하는 단계를 더 포함한다. 방법은 필터링된 데이터 프레임이 적어도 하나의 특징의 존재를 나타낸다는 결정에 응답하여: 자동 어시스턴트에 의해 수행된 프로세싱을 적응시키는 단계를 더 포함한다.
일부 구현에서, 자동 어시스턴트에 대한 호출 구문을 검출하는 방법은 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되며, 방법은, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계; 학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 호출 음소의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계; 제1 인스턴스에서, 오디오 데이터 프레임의 소정의 오디오 데이터 프레임에 대해 생성된 각각의 출력이 소정의 오디오 데이터 프레임이 하나 이상의 해당 호출 음소를 포함하지 못한다는 것을 나타내는 것으로 결정하는 단계; 제1 인스턴스에서의 결정에 응답하여: 노이즈 감소 필터를 적응시키기 위해 소정의 오디오 데이터 프레임을 사용하는 단계; 제1 인스턴스 이후의 제2 인스턴스에서, 소정의 오디오 데이터 프레임 이후에 수신된 하나 이상의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 하나 이상의 해당 호출 음소 중 적어도 하나를 포함하는 것으로 결정하는 단계; 제2 인스턴스에서의 결정에 응답하여: 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 하나 이상의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 상기 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 존재를 나타내는지 여부를 결정하는 단계; 필터링된 데이터 프레임이 호출 구문의 존재를 나타내는 결정에 응답하여: 자동 어시스턴트의 적어도 하나의 기능을 활성화되게 하는 단계를 포함한다.
일부 구현에서, 자동 어시스턴트에 대한 호출 구문을 검출하는 방법은 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되고, 방법은, 클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임 스트림의 제1 세트의 순차적 오디오 데이터 프레임의 각각의 오디오 데이터 프레임에 대해: 오디오 데이터 프레임에 기초하여 대응하는 노이즈 감소 필터를 생성하고, 해당 노이즈 감소 필터를 선입 선출 버퍼에 저장하는 단계를 포함한다. 상기 방법은, 제1 세트의 순차적 오디오 데이터 프레임에 이어지는 오디오 데이터 프레임 스트림의 소정의 오디오 데이터 프레임에 대해: 선입 선출(FIFO) 버퍼의 헤드에 있는 해당 노이즈 감소 필터를 사용하여 소정의 오디오 프레임을 프로세싱하는 것에 기초하여 필터링된 데이터 프레임을 생성하는 단계; 학습된 기계 학습 모델을 사용하여 상기 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 하나 이상의 음소의 존재를 나타내는지의 여부를 결정하는 단계를 더 포함한다. 이 방법은 필터링된 데이터 프레임이 호출 구문의 하나 이상의 음소의 존재를 나타내는지 여부에 기초하여 호출 구문이 오디오 데이터 프레임의 스트림에 존재하는지를 결정하는 단계를 더 포함한다.

Claims (29)

  1. 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되고, 자동 어시스턴트에 대한 호출 구문을 검출하는 방법으로서,
    클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계;
    학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 호출 음소의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계;
    오디오 데이터 프레임에 대한 출력 표시와 함께 상기 스트림의 오디오 데이터 프레임을 버퍼에 저장하는 단계 -각각의 출력 표시는 상기 오디오 데이터 프레임 각각에 대한 것이고, 상기 학습된 기계 학습 모델을 사용하여 상기 오디오 데이터 프레임 각각의 프로세싱에 기초하여 생성된 해당 출력에 기초함-;
    제1 인스턴스에서, 제1 인스턴스에서의 버퍼 내의 출력 표시가 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임이 모두 하나 이상의 해당 호출 음소를 포함하지 못함을 나타내는 것으로 결정하는 단계;
    제1 인스턴스에서의 결정에 응답하여:
    노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서 버퍼 내의 오디오 데이터 프레임 중 적어도 하나를 사용하는 단계;
    제1 인스턴스 이후의 제2 인스턴스에서, 제2 인스턴스에서의 버퍼 내의 출력 표시가 상기 제2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 상기 하나 이상의 해당 호출 음소 중 적어도 하나를 포함함을 나타내는 것으로 결정하는 단계;
    제2 인스턴스에서의 결정에 응답하여:
    상기 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 상기 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계;
    학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 존재를 나타내는지 여부를 결정하는 단계;
    필터링된 데이터 프레임이 호출 구문의 존재를 나타낸다는 결정에 응답하여: 자동 어시스턴트의 하나 이상의 기능이 활성화되게 하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  2. 제1항에 있어서, 상기 자동 어시스턴트의 적어도 하나의 기능이 활성화되게 하는 단계는 스트림의 후속으로 수신된 오디오 데이터 프레임이 추가 프로세싱을 위해 하나 이상의 원격 자동 어시스턴트 서버로 전송되게 하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  3. 제2항에 있어서, 추가 프로세싱은 음성-텍스트(speech-to-text) 변환, 시맨틱 프로세싱 및 대화 상태 추적 중 하나 이상을 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  4. 제1항에 있어서,
    노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 적어도 하나의 오디오 데이터 프레임을 사용하는 단계는 버퍼로부터 단일 데이터 프레임을 제거하는 단계 및 노이즈 감소 필터를 적응시키기 위해 단일 데이터 프레임을 이용하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  5. 제1항에 있어서,
    스트림의 오디오 데이터 프레임은 하나 이상의 마이크로폰 중 제1 마이크로폰에 기초한 적어도 제1 채널 및 하나 이상의 마이크로폰 중 제2 마이크로폰에 기초한 제2 채널을 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  6. 제5항에 있어서,
    학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 각각의 출력을 생성하는 단계는 학습된 기계 학습 모델을 사용하여 각 오디오 데이터 프레임의 제1 채널만을 프로세싱하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  7. 제 5 항에있어서,
    노이즈 감소 필터는 다중 채널 노이즈 감소 필터이며, 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나를 사용하는 단계는 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 적어도 하나의 오디오 데이터 프레임의 제1 채널 및 제2 채널을 모두 사용하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  8. 제7항에 있어서, 노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나의 제 1 채널 및 제 2 채널을 모두 사용하는 단계는, 노이즈 감소 필터를 업데이트하기 위한 에러를 결정할 때 제1 채널을 신호 소스로서 그리고 제2 채널을 노이즈 소스로서 사용하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  9. 제5항에 있어서,
    제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계는 필터링된 데이터 프레임을 생성할 때 복수의 오디오 데이터 프레임의 제1 채널 및 제2 채널을 모두 사용하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  10. 제1항에 있어서, 제2 인스턴스에서의 버퍼 내의 출력 표시는,
    제2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 제1 임계치를 만족하지만 제2 임계치를 만족하지 않는 해당 출력에 기초하여 하나 이상의 해당 호출 음소(nvocation phoneme) 중 적어도 하나를 포함한다는 것을 나타내는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  11. 자동 어시스턴트로 향하는 발화에서 특징을 검출하는 방법으로서, 상기 방법은 하나 이상의 프로세서에 의해 구현되며, 상기 방법은,
    클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계;
    학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 특징의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계;
    오디오 데이터 프레임에 대한 출력 표시와 함께 스트림의 오디오 데이터 프레임을 버퍼에 저장하는 단계 -각각의 출력 표시는 오디오 데이터 프레임 각각에 대한 것이고 그리고 학습된 기계 학습 모델을 사용하여 오디오 데이터 프레임 각각의 프로세싱에 기초하여 생성된 해당 출력에 기초함-;
    제1 인스턴스에서, 제1 인스턴스에서의 버퍼 내의 출력 표시가 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임이 모두 하나 이상의 해당 특징 중 어느 하나를 포함하지 못함을 나타내는 것을 결정하는 단계;
    제1 인스턴스에서의 결정에 응답하여:
    노이즈 감소 필터를 적응시키기 위해 제1 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나를 사용하는 단계;
    제1 인스턴스 이후의 제2 인스턴스에서, 제2 인스턴스에서의 버퍼 내의 출력 표시가 제2 인스턴스에서의 버퍼 내의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 하나 이상의 해당 특징 중 적어도 하나를 포함함을 나타낸다고 결정하는 단계;
    제2 인스턴스에서의 결정에 응답하여:
    상기 제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 상기 제2 인스턴스에서의 버퍼 내의 복수의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계;
    학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 필터링된 데이터 프레임이 상기 특징의 존재를 나타내는지 여부를 결정하는 단계;
    필터링된 데이터 프레임이 상기 특징의 존재를 나타낸다는 결정에 응답하여 자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트로 향하는 발화에서 특징을 검출하는 방법.
  12. 제11항에 있어서,
    상기 특징은 프로파일과 관련하여 저장된 음성 특성을 포함하며,
    자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계는 프로파일에 기초하여, 자동 어시스턴트에 의해 렌더링될 컨텐츠를 생성하는 단계를 포함하며,
    상기 특징의 존재를 나타내는 필터링된 데이터 프레임에 응답하여 프로파일에 기초하여 컨텐츠가 생성되고; 상기 특징은 프로파일과 관련하여 저장되는 것을 특징으로 하는 자동 어시스턴트로 향하는 발화에서 특징을 검출하는 방법.
  13. 제11항에 있어서,
    자동 어시스턴트에 의해 수행되는 프로세싱을 적응시키는 단계는 자동 어시스턴트의 적어도 하나의 비활성 기능을 활성화시키는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트로 향하는 발화에서 특징을 검출하는 방법.
  14. 제13항에 있어서,
    상기 비활성 기능 중 하나는 자연어 프로세싱 또는 대화 상태 추적인 것을 특징으로 하는 자동 어시스턴트로 향하는 발화에서 특징을 검출하는 방법.
  15. 자동 어시스턴트에 대한 호출 구문을 검출하는 방법으로서, 상기 방법은 클라이언트 장치의 하나 이상의 프로세서에 의해 구현되며, 상기 방법은,
    클라이언트 장치의 하나 이상의 마이크로폰으로부터의 출력에 기초한 오디오 데이터 프레임의 스트림을 수신하는 단계;
    학습된 기계 학습 모델을 사용하여 스트림의 각각의 오디오 데이터 프레임을 프로세싱하여 하나 이상의 해당 호출 음소의 존재의 하나 이상의 해당 확률을 나타내는 각각의 출력을 생성하는 단계;
    제1 인스턴스에서, 오디오 데이터 프레임의 소정의 오디오 데이터 프레임에 대해 생성된 각각의 출력이 상기 소정의 오디오 데이터 프레임이 하나 이상의 해당 호출 음소를 포함하지 못함을 나타내는 것으로 결정하는 단계;
    제1 인스턴스에서의 결정에 응답하여:
    노이즈 감소 필터를 적응시키기 위해 상기 소정의 오디오 데이터 프레임을 사용하는 단계;
    제1 인스턴스 이후의 제2 인스턴스에서, 소정의 오디오 데이터 프레임 이후에 수신된 하나 이상의 오디오 데이터 프레임 중 적어도 하나가 잠재적으로 하나 이상의 해당 호출 음소 중 적어도 하나를 포함하는 것으로 결정하는 단계;
    제2 인스턴스에서의 결정에 응답하여:
    제1 인스턴스에서의 결정에 응답하여 적어도 부분적으로 적응된 노이즈 감소 필터를 사용하여 하나 이상의 오디오 데이터 프레임의 프로세싱에 기초하여 필터링된 데이터 프레임을 생성하는 단계;
    학습된 기계 학습 모델 또는 추가 학습된 기계 학습 모델을 사용하여 상기 필터링된 데이터 프레임을 프로세싱하는 것에 기초하여 상기 필터링된 데이터 프레임이 상기 호출 구문의 존재를 나타내는지 여부를 결정하는 단계;
    필터링된 데이터 프레임이 호출 구문의 존재를 나타내는 결정에 응답하여:
    자동 어시스턴트의 적어도 하나의 기능을 활성화되게 하는 단계를 포함하는 것을 특징으로 하는 자동 어시스턴트에 대한 호출 구문을 검출하는 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020207023713A 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용 KR102193629B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207035933A KR102609430B1 (ko) 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862620885P 2018-01-23 2018-01-23
US62/620,885 2018-01-23
PCT/US2019/013479 WO2019147427A1 (en) 2018-01-23 2019-01-14 Selective adaptation and utilization of noise reduction technique in invocation phrase detection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035933A Division KR102609430B1 (ko) 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용

Publications (2)

Publication Number Publication Date
KR20200103846A KR20200103846A (ko) 2020-09-02
KR102193629B1 true KR102193629B1 (ko) 2020-12-21

Family

ID=65444326

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207035933A KR102609430B1 (ko) 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용
KR1020207023713A KR102193629B1 (ko) 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207035933A KR102609430B1 (ko) 2018-01-23 2019-01-14 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용

Country Status (6)

Country Link
US (3) US10706842B2 (ko)
EP (2) EP3680895B1 (ko)
JP (2) JP6839333B2 (ko)
KR (2) KR102609430B1 (ko)
CN (2) CN111742362B (ko)
WO (1) WO2019147427A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110741347B (zh) * 2017-10-03 2023-08-01 谷歌有限责任公司 车辆环境中的多个数字助理协调
EP3680895B1 (en) 2018-01-23 2021-08-11 Google LLC Selective adaptation and utilization of noise reduction technique in invocation phrase detection
CN112037773B (zh) * 2020-11-05 2021-01-29 北京淇瑀信息科技有限公司 一种n最优口语语义识别方法、装置及电子设备
CN112331186B (zh) * 2020-11-19 2022-03-25 思必驰科技股份有限公司 语音唤醒方法及装置
WO2022211504A1 (en) * 2021-03-31 2022-10-06 Samsung Electronics Co., Ltd. Method and electronic device for suppressing noise portion from media event
US11798533B2 (en) * 2021-04-02 2023-10-24 Google Llc Context aware beamforming of audio data
DE102021005206B3 (de) * 2021-10-19 2022-11-03 Mercedes-Benz Group AG Verfahren und Vorrichtung zur Bestimmung eines mehrteiligen Schlüsselwortes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503568A (ja) 2005-07-22 2009-01-29 ソフトマックス,インコーポレイテッド 雑音環境における音声信号の着実な分離
US20160379635A1 (en) 2013-12-18 2016-12-29 Cirrus Logic International Semiconductor Ltd. Activating speech process
WO2017069556A1 (ko) 2015-10-21 2017-04-27 삼성전자 주식회사 전자 장치, 그의 음성 인식 방법 및 비일시적 컴퓨터 판독가능 기록매체
US20170358294A1 (en) 2013-12-18 2017-12-14 Cirrus Logic International Semiconductor Ltd. Voice command triggered speech enhancement

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633846B1 (en) * 1999-11-12 2003-10-14 Phoenix Solutions, Inc. Distributed realtime speech recognition system
US7606714B2 (en) * 2003-02-11 2009-10-20 Microsoft Corporation Natural language classification within an automated response system
US7742914B2 (en) * 2005-03-07 2010-06-22 Daniel A. Kosek Audio spectral noise reduction method and apparatus
US8175291B2 (en) * 2007-12-19 2012-05-08 Qualcomm Incorporated Systems, methods, and apparatus for multi-microphone based speech enhancement
US8995625B2 (en) * 2009-09-30 2015-03-31 T-Mobile Usa, Inc. Unified interface and routing module for handling audio input
US9053697B2 (en) * 2010-06-01 2015-06-09 Qualcomm Incorporated Systems, methods, devices, apparatus, and computer program products for audio equalization
US8234111B2 (en) * 2010-06-14 2012-07-31 Google Inc. Speech and noise models for speech recognition
RU2605522C2 (ru) * 2010-11-24 2016-12-20 Конинклейке Филипс Электроникс Н.В. Устройство, содержащее множество аудиодатчиков, и способ его эксплуатации
US20140278389A1 (en) * 2013-03-12 2014-09-18 Motorola Mobility Llc Method and Apparatus for Adjusting Trigger Parameters for Voice Recognition Processing Based on Noise Characteristics
US10229697B2 (en) 2013-03-12 2019-03-12 Google Technology Holdings LLC Apparatus and method for beamforming to obtain voice and noise signals
US9552825B2 (en) 2013-04-17 2017-01-24 Honeywell International Inc. Noise cancellation for voice activation
US9697831B2 (en) * 2013-06-26 2017-07-04 Cirrus Logic, Inc. Speech recognition
US9418651B2 (en) * 2013-07-31 2016-08-16 Google Technology Holdings LLC Method and apparatus for mitigating false accepts of trigger phrases
US9548047B2 (en) * 2013-07-31 2017-01-17 Google Technology Holdings LLC Method and apparatus for evaluating trigger phrase enrollment
US9286897B2 (en) * 2013-09-27 2016-03-15 Amazon Technologies, Inc. Speech recognizer with multi-directional decoding
US10405786B2 (en) * 2013-10-09 2019-09-10 Nedim T. SAHIN Systems, environment and methods for evaluation and management of autism spectrum disorder using a wearable data collection device
US9936916B2 (en) * 2013-10-09 2018-04-10 Nedim T. SAHIN Systems, environment and methods for identification and analysis of recurring transitory physiological states and events using a portable data collection device
EP3120256B1 (en) * 2014-03-17 2020-02-12 Core Sports Technology Group Method and system for delivering biomechanical feedback to human and object motion
US20160012827A1 (en) * 2014-07-10 2016-01-14 Cambridge Silicon Radio Limited Smart speakerphone
KR102246900B1 (ko) * 2014-07-29 2021-04-30 삼성전자주식회사 전자 장치 및 이의 음성 인식 방법
US9830925B2 (en) * 2014-10-22 2017-11-28 GM Global Technology Operations LLC Selective noise suppression during automatic speech recognition
JP6754184B2 (ja) * 2014-12-26 2020-09-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音声認識装置及び音声認識方法
RU2698153C1 (ru) * 2016-03-23 2019-08-22 ГУГЛ ЭлЭлСи Адаптивное улучшение аудио для распознавания многоканальной речи
EP4365784A2 (en) * 2016-04-18 2024-05-08 Google LLC Automated assistant invocation of appropriate agent
CN110268471B (zh) * 2017-01-26 2023-05-02 赛伦斯运营公司 具有嵌入式降噪的asr的方法和设备
EP3680895B1 (en) 2018-01-23 2021-08-11 Google LLC Selective adaptation and utilization of noise reduction technique in invocation phrase detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503568A (ja) 2005-07-22 2009-01-29 ソフトマックス,インコーポレイテッド 雑音環境における音声信号の着実な分離
US20160379635A1 (en) 2013-12-18 2016-12-29 Cirrus Logic International Semiconductor Ltd. Activating speech process
US20170358294A1 (en) 2013-12-18 2017-12-14 Cirrus Logic International Semiconductor Ltd. Voice command triggered speech enhancement
WO2017069556A1 (ko) 2015-10-21 2017-04-27 삼성전자 주식회사 전자 장치, 그의 음성 인식 방법 및 비일시적 컴퓨터 판독가능 기록매체

Also Published As

Publication number Publication date
CN111742362A (zh) 2020-10-02
US20200294496A1 (en) 2020-09-17
JP7196214B2 (ja) 2022-12-26
KR102609430B1 (ko) 2023-12-04
EP3555881B1 (en) 2020-04-22
JP2021089438A (ja) 2021-06-10
KR20200103846A (ko) 2020-09-02
US11417324B2 (en) 2022-08-16
JP6839333B2 (ja) 2021-03-03
US20220392441A1 (en) 2022-12-08
WO2019147427A1 (en) 2019-08-01
CN111742362B (zh) 2024-04-09
US11984117B2 (en) 2024-05-14
EP3680895B1 (en) 2021-08-11
JP2021507315A (ja) 2021-02-22
EP3680895A1 (en) 2020-07-15
EP3555881A1 (en) 2019-10-23
KR20200142122A (ko) 2020-12-21
CN118314883A (zh) 2024-07-09
US10706842B2 (en) 2020-07-07
US20200066263A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
KR102193629B1 (ko) 호출 구문 검출에서 노이즈 감소 기술의 선택적 적응 및 활용
KR102535338B1 (ko) 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리
CN114041283B (zh) 利用事件前和事件后输入流来接洽自动化助理
US11699453B2 (en) Adaptive multichannel dereverberation for automatic speech recognition
EP3857544B1 (en) Speaker awareness using speaker dependent speech model(s)
KR20220088926A (ko) 온-디바이스 기계 학습 모델 트레이닝을 위한 자동화된 어시스턴트 기능의 수정 사용
CN114365216A (zh) 按讲话者进行语音识别的目标话音分离
US20230395066A1 (en) Hot-word free pre-emption of automated assistant response presentation
US20230230578A1 (en) Personalized speech query endpointing based on prior interaction(s)

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant