KR20220166848A - 핫워드/키워드 검출을 위한 사용자 중재 - Google Patents

핫워드/키워드 검출을 위한 사용자 중재 Download PDF

Info

Publication number
KR20220166848A
KR20220166848A KR1020227039155A KR20227039155A KR20220166848A KR 20220166848 A KR20220166848 A KR 20220166848A KR 1020227039155 A KR1020227039155 A KR 1020227039155A KR 20227039155 A KR20227039155 A KR 20227039155A KR 20220166848 A KR20220166848 A KR 20220166848A
Authority
KR
South Korea
Prior art keywords
threshold
user
block
audio data
hotword
Prior art date
Application number
KR1020227039155A
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 KR20220166848A publication Critical patent/KR20220166848A/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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation
    • 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
    • G10L15/16Speech classification or search using artificial neural networks
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

자동화 어시스턴트 기능(들)이 개시되어야 하는지 여부를 결정하는데 이용되는 임계치 및 기계 학습 모델(들)의 성능을 개선하기 위한 기술이 본 명세서에 설명된다. 방법은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신하는 단계와; 하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 오디오 데이터를 처리하는 단계와; 예측 출력이 주(primary) 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 덜 나타내는 보조(secondary) 임계값을 충족하는지 결정하는 단계와; 예측 출력이 보조 임계값을 충족한다는 결정에 응답하여, 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트하는 단계와; 사용자로부터 프롬프에 대한 응답을 수신하는 단계와; 그리고 응답에 기초하여 주 임계값을 조정하는 단계를 포함한다.

Description

핫워드/키워드 검출을 위한 사용자 중재
인간은 본 명세서에서 "자동화 어시스턴트"("디지털 에이전트", "대화형 개인 비서", "지능형 개인 비서", "어시스턴트 애플리케이션", "대화 에이전트"라고도 함)로 지칭되는 대화형 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, (자동화 어시스턴트와 상호작용할 때 "사용자"로 지칭될 수 있는) 인간은 음성 자연어 입력(즉, 발언)을 사용하여 자동화 어시스턴트에 커맨드 및/또는 요청을 제공할 수 있으며, 이는 일부 경우 텍스트로 변환된 다음 (예를 들어 타이핑된) 텍스트 자연 언어 입력을 제공함으로써 및/또는 터치 및/또는 발화 없는 물리적 움직임(들)(예를 들어, 손 제스처(들), 시선, 얼굴 움직임 등)을 통해 처리될 수 있다. 자동화 어시스턴트는 반응형(responsive) 사용자 인터페이스 출력(예를 들어, 청각 및/또는 시각적 사용자 인터페이스 출력)을 제공하고, 하나 이상의 스마트 디바이스를 제어하고, 및/또는 자동화 어시스턴트를 구현하는 디바이스의 하나 이상의 기능(들)을 제어(예를 들어, 디바이스의 기타 애플리케이션(들) 제어)함으로써 요청에 응답한다.
위에서 언급한 바와 같이, 많은 자동화 어시스턴트는 음성 발언(spoken utterance)를 통해 상호작용하도록 구성된다. 사용자 프라이버시를 보호하고 및/또는 자원을 절약하기 위해, 자동화 어시스턴트는 자동화 어시스턴트를 (적어도 부분적으로) 구현하는 클라이언트 디바이스의 마이크로폰(들)을 통해 검출된 오디오 데이터에 존재하는 모든 음성 발언에 기초하여 하나 이상의 자동화 어시스턴트 기능을 수행하는 것을 삼가한다. 오히려, 음성 발언에 기초한 특정 처리는 특정 조건(들)이 존재한다고 결정하는것에 응답에서만 발생한다.
예를 들어, 자동화 어시스턴트를 포함하고 및/또는 그와 인터페이스하는 많은 클라이언트 디바이스는 핫워드 검출 모델을 포함한다. 이러한 클라이언트 디바이스의 마이크로폰(들)이 비활성화되지 않은 경우, 클라이언트 디바이스는 핫워드 검출 모델을 사용하여 마이크로폰을 통해 검출된 오디오 데이터를 지속적으로 처리하여, "헤이 어시스턴트(Hey Assistant)", "오케이 어시스턴트(OK Assistant)" 및/또는 "어시스턴트"와 같은 하나 이상의 핫워드(다중 단어 구문 포함)가 존재하는지 여부를 나타내는 예측(된) 출력을 생성할 수 있다. 예측 출력이 핫워드가 존재함을 나타내는 경우, 임계 시간 내에서 이어지는 모든 오디오 데이터(선택적으로 음성 활동을 포함하도록 결정됨)는 음성(speech) 인식 컴포넌트(들), 음성(voice) 활동 검출 컴포넌트(들) 등과 같은 하나 이상의 온-디바이스 및/또는 원격 자동화 어시스턴트 컴포넌트에 의해 처리될 수 있다. 게다가, (음성 인식 컴포넌트(들)로부터의) 인식된 텍스트는 자연어 이해 엔진(들)을 사용하여 처리될 수 있고 및/또는 동작(들)은 자연어 이해 엔진 출력에 기초하여 수행될 수 있다. 이 동작(들)은 예를 들어 응답을 생성 및 제공하는 것 및/또는 하나 이상의 애플리케이션(들) 및/또는 스마트 디바이스(들)를 제어하는 것을 포함할 수 있다. 그러나, 예측 출력이 핫워드가 존재하지 않음을 나타내는 경우, 해당 오디오 데이터는 추가 처리 없이 폐기되므로 자원과 사용자 프라이버시를 보호할 것이다.
일부 자동화 어시스턴트는 추가로 또는 대안적으로 활성화(enable)될 수 있는 계속 대화 모드(continued conversation mode)를 구현한다. 활성화될 때, 계속 대화 모드는 자동화 어시스턴트에게 지시된 이전 음성 발언의 임계값 시간 내 및/또는 자동 어시스턴트가 이전 음성 발언에 기초으로 동작(들)을 수행한 후 임계 시간 내에 클라이언트 디바이스의 마이크로폰(들)를 통해 검출된 모든 음성 입력을 처리할 수 있다. 이전 발언에 따라 행동을 수행했다. 예를 들어, 사용자는 처음에 (예를 들어, 핫워드, 하드웨어 또는 소프트웨어 버튼 등을 통해) 자동화 어시스턴트를 호출하고, "거실 조명 켜"라는 초기 발언을 제공한 다음 잠시 후 "주방 조명 켜"라는 후속 발언을 제공할 수 있다. 후속 발언은 사용자가 어시스턴트를 다시 호출할 필요 없이 계속 대화 모드가 활성화된 경우 자동화 어시스턴트에 의해 작동된다.
계속 대화 모드는 자동화 어시스턴트에 의해 처리되도록 의도된 사용자의 후속 발언 및 의도되지 않은 발언(들)(예를 들어, 대신에 다른 사람에게 지시된 발언)를 구별할 수 있다. 이렇게 함으로써, 후속 발언을 캡처하는 오디오 데이터는 선택적으로 후속 발언 및/또는 그의 표현(들)으로부터 인식된 텍스트(예를 들어, 인식된 텍스트에 기초하여 생성된 자연어 이해 데이터)와 함께 기계 학습 모델을 사용하여 처리될 수 있다. 예측 출력은 그 처리에 기초하여 생성되며 후속 발언이 자동화 어시스턴트를 위해 의도된 것인지 여부를 나타낸다. 추가 자동화 어시스턴트 기능은 예측 출력이 후속 발언이 자동화 어시스턴트를 위해 의도된 것임을 나타내는 경우에만 활성화된다. 그렇지 않으면, 추가 자동화 어시스턴트 기능(들)이 활성화되지 않으며, 후속 발언에 해당하는 데이터는 폐기된다. 추가 기능(들)은 예를 들어, 후속 발언이 자동화 어시스턴트를 위해 의도된 것이라는 추가 검증 및/또는 후속 발언에 기초하여 동작(action)(들)을 수행하는 것을 포함할 수 있다.
예측 출력이 자동화 어시스턴트 기능(들)의 활성화 여부를 지시하는 위에서 언급된 및/또는 다른 기계 학습 모델(예를 들어, 아래에서 설명되는 추가 기계 학습 모델)은 많은 상황에서 잘 수행된다. 그러나, 여기에서는 기계 학습 모델을 기반으로 한 거짓 부정(false negative) 결정 및 거짓 긍정(false positive) 결정이 여전히 발생한다.
거짓 부정의 경우, 오디오 데이터(및/또는 기타 데이터)가 예측 출력을 생성하도록 처리되어 해당 기능(들)을 활성화하는데 적합함에도 불구하고 예측 출력은 자동화 어시스턴트 기능(들)이 활성화되지 않도록 지시한다. 예를 들어, 핫워드 검출 모델을 사용하여 생성된 예측 출력이 확률이고 자동화 어시스턴트 기능(들)이 활성화되기 전에 확률이 0.85보다 커야 한다고 가정하자. 음성 발언에 실제로 핫워드가 포함되어 있지만 오디오 데이터 처리에 기초하여 생성된 예측 출력이 0.82에 불과한 경우, 그 기능(들)은 활성화되지 않을 것이며 이는 거짓 부정으로 간주될 것이다. 거짓 부정의 발생은 인간/자동화 어시스턴트 상호 작용을 연장하여 인간이 처음에 자동화 어시스턴트 기능을 활성화하기 위해 의도한 발언을 반복하도록(및/또는 기타 작업(들)을 수행하도록) 강제할 수 있다.
거짓 긍정의 경우, 오디오 데이터(및/또는 기타 센서 데이터)가 예측 출력을 생성하도록 처리되어 해당 기능(들)을 활성화하는데 부적절함에도 불구하고 예측 출력은 자동화 어시스턴트 기능(들)이 활성화되도록 지시한다. 예를 들어, 핫워드 검출 모델을 사용하여 생성된 예측 출력이 확률이고 자동화 어시스턴트 기능(들)이 활성화되기 전에 확률이 0.85보다 커야 한다고 가정하자. 음성 발언에 핫워드가 포함되어 있지 않지만 오디오 데이터 처리에 기초하여 생성된 예측 출력이 0.86인 경우, 그 기능(들)은 여전히 활성화될 것이며 이는 거짓 긍정으로 간주될 것이다. 프라이버시 문제 외에도, 거짓 긍정의 발생은 기능(들)을 불필요하게 활성화함으로써 네트워크 및/또는 계산 자원을 낭비할 수 있다.
본 명세서에 개시된 일부 구현은 자동화 어시스턴트 기능(들)이 개시되어야 하는지 여부를 결정하는데 이용되는 임계값의 자동 조정을 통해 기계 학습 모델(들)의 성능을 개선하는 것에 관한 것이다. 본 명세서에 더 자세히 설명되는 바와 같이, 이러한 기계 학습 모델은 예를 들어 핫워드 검출 모델 및/또는 기타 기계 학습 모델을 포함할 수 있다. 다양한 구현은 클라이언트 디바이스에서, 클라이언트 디바이스에 국부적으로 저장된 기계 학습 모델을 사용하여 오디오 데이터 및/또는 다른 센서 데이터를 처리하는 것에 기초하여 예측 출력을 생성한다. 이러한 구현은 예측 출력에 기초하여, 하나 이상의 자동화 어시스턴트 기능(들)을 개시할지 여부에 관한 결정을 더 내린다. 예를 들어, 이 결정은 예측 출력이 임계값을 충족하는지 여부에 기초하여 내려질 수 있다. 또한, 이러한 구현은 클라이언트 디바이스에서 국부적으로 그리고 추가 사용자 인터페이스 입력 및/또는 기타 데이터의 분석에 기초하여, 예측 출력에 기초하여 내려진 결정이 정확한지 여부를 결정한다. 결정이 부정확한 것으로 결정되는 경우(즉, 결정이 거짓 부정 또는 거짓 긍정인 경우), 해당 구현은 임계값을 자동으로 조정한다.
일부 구현에서, 자동 조정된 임계값은 지속되어 하나 이상의 자동화 어시스턴트 기능(들)을 개시할지 여부에 관한 하나 이상의 후속 결정에 사용될 수 있다. 예를 들어, 자동으로 조정된 임계값은 본 명세서에 설명된 방법 중 하나 이상에 따라 (예를 들어, 거짓 부정 또는 거짓 긍정에 응답하여) 자동 조정된 임계값을 추가로 조정하기로 결정될 때까지 사용될 수 있다. 일부 구현에서, 자동 조정된 임계값은 사용자 및/또는 환경 조건(예를 들어, 노이즈 발생기 또는 기타 배경 노이즈의 도입 또는 제거)에 적응하도록 시간이 지남에 따라 동적으로 조정될 수 있다. 이렇게 하면 예측 출력과 그에 따라 응답으로 낭비되는 계산 자원을 기반으로 하는 거짓 부정 및/또는 거짓 긍정의 발생을 줄임으로써 성능을 향상시킬 수 있다.
예에서, 임계값은 사용자가 여름철에 팬과 같은 시끄러운 기기를 사용하기 시작할 때 (예를 들어, 사용자가 시끄러운 기기를 사용하기 시작한 후 발생하는 하나 이상의 거짓 부정에 응답하여) 자동으로 낮아질 수 있다. 임계값을 자동으로 조정하는 프로세스는 거짓 긍정 및/또는 거짓 부정에 기초한 반복적인 조정을 통해 임계값을 미세 조정하는 반복적인 프로세스일 수 있다. 이 예에서, 임계값은 사용자가 시끄러운 기기를 사용하기 시작한 후 다수의 거짓 부정에 기초하여 자동으로 여러 번 낮아지고, 임계값이 여러 번 낮아진 후 거짓 긍정에 기초하여 자동으로 올라갈 수 있다. 자동으로 조정된 임계값은 거짓 긍정 및/또는 거짓 부정에 기초하여 추가 조정이 결정될 때까지 유지될 수 있다. 사용자가 시끄러운 기기의 사용을 중단할 때(예를 들어, 여름이 끝날 때), 임계값은 (예를 들어, 사용자가 시끄러운 기기의 사용을 중단한 후 발생하는 하나 이상의 거짓 긍정에 응답하여) 자동으로 올라갈 수 있다.
본 명세서에 설명된 다양한 구현은 "OK Computer", "Hey Computer", 및/또는 다른 호출 핫워드(들)와 같은 어시스턴트 호출 핫워드(들)를 검출하도록 트레이닝된 핫워드 검출 모델과 관련하여 설명된다. 이러한 구현들 중 일부에서, 대응하는 핫워드(들) 중 하나가 검출될 때, 그 핫워드를 뒤따르는 임의의 음성 단어(들)를 처리하기 위해 음성 인식이 활성화될 수 있다. 어시스턴트 호출 핫워드(들)를 검출하도록 트레이닝된 핫워드 검출 모델에 대한 임계값(들)을 조정하는 것 외에 또는 그 대신에, 일부 구현은 호출 핫워드(들) 이후의 핫워드(들)를 검출하도록 트레이닝되고 적어도 선택적으로 활성화되는 핫워드 검출 모델(들)에 대한 임계값(들)을 조정할 수 있다. 이러한 구현 중 일부에서, 이러한 모델의 대응하는 핫워드(들) 중 하나가 검출될 때, 선택적으로 음성 인식을 수행하지 않고 대응하는 동작(action)이 수행될 수 있다. 일 예로서, 핫워드 모델은 "중지(stop)" 및/또는 "중단(halt)"을 검출하도록 트레이닝될 수 있고, 타이머 알람이 렌더링되는 것과 같이 클라이언트 디바이스에서 특정 오디오가 렌더링되고 있을 때 적어도 클라이언트 디바이스에서 활성화될 수 있다. "중지" 및/또는 "중단"을 검출하는 것에 응답하여, 특정 오디오의 렌더링을 중단하는 대응하는 동작이 수행될 수 있다.
일부 구현에서, 결정이 부정확하다고 결정될 때, 예측 출력을 실측(ground truth) 출력(예를 들어, 임계값을 만족하는 실측 출력)과 비교하는 것에 기초하여 기울기(gradient)가 클라이언트 디바이스에서 국부적으로 생성된다. 일부 구현에서, 생성된 기울기는 클라이언트 디바이스의 하나 이상의 프로세서(들)에 의해, 생성된 기울기에 기초하여 기계 학습 모델의 하나 이상의 가중치를 업데이트하는데 사용된다. 예를 들어, 역전파 및/또는 다른 기술(들)이 기울기에 기초하여 가중치를 업데이트하는데 사용될 수 있다. 이것은 클라이언트 디바이스에 국부적으로 저장된 기계 학습 모델의 성능을 개선하여 기계 학습 모델을 사용하여 생성된 예측 출력에 기초한 거짓 부정 및/또는 거짓 긍정의 발생을 완화할 수 있다. 더욱이, 이것은 음성 발언을 캡처하는 오디오 데이터를 처리하는 기계 학습 모델(들)의 경우 톤, 억양, 악센트 및/또는 기타 음성 특성과 같은 클라이언트 디바이스의 사용자(들)의 속성(들)에 대한 온-디바이스 기계 학습 모델의 성능을 향상시킬 수 있다.
일부 구현에서, 생성된 기울기는 추가로 또는 대안적으로 클라이언트 디바이스에 의해 네트워크를 통해, 원격 시스템으로 전송된다. 이러한 구현에서, 원격 시스템은 연합 학습 기술을 사용하여 대응하는 전역(global) 기계 학습 모델의 전역 가중치를 업데이트하기 위해, 생성된 기울기 및 추가 클라이언트 디바이스로부터의 추가 기울기를 활용한다. 추가 클라이언트 디바이스로부터의 추가 기울기는 대응하는 결정이 부정확한(올바르지 않은 것으로 결정하는 것에 기초하여, 대응하는 추가 클라이언트 디바이스에서 국부적으로 유사하게 생성될 수 있다. 다양한 구현에서, 클라이언트 디바이스는 부정확한 것으로 결정된 예측 출력을 생성하는데 이용되었던 데이터(예를 들어, 오디오 데이터 및/또는 기타 센서 데이터)를 전송하지 않고, 그리고 예측 출력이 부정확한 것으로 결정하는데 사용되었던 데이터(예를 들어, 추가 사용자 인터페이스 입력)를 전송하지 않고 상기 생성된 기울기를 전송한다. 원격 시스템은 이러한 데이터를 참조하거나 사용하지 않고도 연합 학습 기술을 사용하여 전역 모델을 업데이트할 때 상기 생성된 기울기를 활용할 수 있다. 기울기만 전송하는 것은 예측 출력을 생성하고 예측 출력이 부정확하다고 결정하는데 사용되는 더 큰 데이터 사이즈 데이터를 전송하는 것보다 적은 네트워크 자원을 사용한다. 또한, 예측 출력을 생성할 때 및 예측 출력이 부정확하다고 결정할 때 사용되는 데이터는 기울기로부터 도출될 수 없기 때문에 기울기를 전송하는 것은 개인 데이터의 프라이버시 및 보안을 보존한다. 일부 구현에서, 하나 이상의 차등 프라이버시 기술(예를 들어, 가우시안 잡음 추가)은 이러한 데이터가 기울기로부터 도출될 수 없음을 추가로 보장하기 위해 활용될 수 있다.
원격 시스템이 음성 인식 모델의 전역 가중치를 업데이트하는 구현에서, 그 후 원격 시스템은 업데이트된 전역 가중치를 클라이언트 디바이스에 제공하여 클라이언트 디바이스로 하여금 자신의 온-디바이스 기계 학습 모델의 가중치를 업데이트된 전역 가중치로 대체하게 할 수 있다. 일부 구현에서, 원격 시스템은 업데이트된 기계 학습 모델을 클라이언트 디바이스에 추가로 또는 대안적으로 제공하여 클라이언트 디바이스로 하여금 온-디바이스 기계 학습 모델을 업데이트된 전역 기계 학습 모델로 대체하게 할 수 있다. 따라서 온-디바이스 성능이 업데이트된 전역 가중치 또는 업데이트된 전역 기계 학습 모델의 활용을 통해 향상된다.
다양한 기술이 현재 휴면(dormant) 자동화 어시스턴트 기능(들)을 개시할지 여부에 관한 결정(decision)이 부정확하다고 결정하는데 이용될 수 있다. 일부 구현에서, 결정이 부정확하다고 결정하는 것은 그 결정을 내리기 위해 이용된 센서 데이터에 후속하여 클라이언트 디바이스에서 수신되는 추가 사용자 인터페이스 입력에 기초할 수 있다. 예를 들어, 사용자는 프롬프트에 대한 응답으로 또는 프롬프트 없이 음성 발언에 핫워드가 포함되었는지 여부를 나타낼 수 있다. 다른 구현에서, 결정이 부정확하다고 결정하는 것은 그 결정을 내리기 위해 이용된 센서 데이터에 후속하여 클라이언트 디바이스에서 수신되고 그 결정과 (명시적으로 또는 묵시적으로) 모순되는 추가 사용자 인터페이스 입력에 기초할 수 있다. 이러한 구현에서, 결정이 부정확하다고 결정하는 것은 그 결정을 내리기 위해 이용된 센서 데이터를 수신하는 것과 추가 사용자 인터페이스 입력을 수신하는 것 사이의 지속기간(duration)에 기초할 수 있다. 예를 들어, 결정이 부정확하다고 결정할 가능성은 시간 지속 시간이 감소함에 따라 증가할 수 있고 및/또는 결정이 부정확하다고 결정하는 것은 지속 기간이 임계값 미만인 경우에 따라 달라질 수 있다. 이러한 구현에서, 결정이 부정확하고 결정하는 것은 추가 사용자 인터페이스 입력과 그 결정을 내리는데 사용된 센서 데이터 사이의 결정된 유사도 측정치에 추가로 또는 대안적으로 기초할 수 있다(유사도 측정치로 표시되는 유사도가 증가함에 따라 결정이 부정확하다고 결정할 가능성이 증가함). 예를 들어, 유사도의 측정치는 추가 사용자 인터페이스 입력의 지속시간과 그 결정을 내리는데 사용된 센서 데이터의 비교에 기초한 지속시간 유사도에 기초할 수 있다. 또한, 예를 들어, 추가 사용자 인터페이스 입력이 추가 음성 발언이고 그 결정을 내리는데 사용된 센서 데이터가 이전 음성 발언을 포함하는 경우, 유사도의 측정치는 음성 발언과 추가 음성 발언의 음성 특성의 비교에 기초한 음성 유사도 및 음성 발언과 추가 음성 발언의 인식된 텍스트의 비교에 기초한 텍스트 유사도에 기초할 수 있다.
다양한 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신하는 단계와; 하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 오디오 데이터를 처리하는 단계와; 예측 출력이 주(primary) 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 덜 나타내는 보조(secondary) 임계값을 충족하는지 결정하는 단계와; 예측 출력이 보조 임계값을 충족한다는 결정에 응답하여, 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트하는 단계와; 사용자로부터 프롬프하는 것에 대한 응답을 수신하는 단계와; 그리고 응답에 기초하여 주 임계값을 조정하는 단계를 포함한다.
일부 구현에서, 자동 어시스턴트 기능은 예측 출력이 주 임계값을 충족하는 것에 응답하여 개시작될 수 있다. 일부 구현에서, 기계 학습 모델은 핫워드 검출 모델일 수 있고, 연합 학습은 응답에 기초하여 핫워드 검출 모델을 훈련하는데 사용될 수 있다.
일부 구현에서, 예측 출력은 주 임계값을 충족하지 않고; 응답은 음성 발언이 핫워드를 포함하지 않음을 나타내고; 그리고 응답에 기초하여 주 임계값을 조정하는 단계는 주 임계값을 낮추는 단계를 포함한다. 일부 구현에서, 예측 출력은 주 임계값을 충족하고; 응답은 음성 발언이 핫워드를 포함하지 않음을 나타내며; 그리고 응답에 기초하여 주 임계값을 조정하는 단계는 주 임계값을 높이는 단계를 포함한다.
일부 구현에서, 프롬프트하는 단계는 사용자가 이전에 프롬프트된 횟수가 전송률 제한값(rate limit)을 초과하지 않는다는 결정에 추가로 응답한다. 일부 구현에서, 프롬프트하는 단계는 착신거부 상태(do not disturb state)가 비활성화되었다는 결정에 추가로 응답한다. 일부 구현에서, 프롬프하는 단계는 사용자가 사전 결정된 기간 동안 클라이언트 디바이스에 액세스하지 않았다는 결정에 추가로 응답한다.
일부 추가적 또는 대안적인 구현에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 판독가능 저장 매체에 집합적으로 저장된 프로그램 명령어를 갖는 하나 이상의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 프로그램 명령어는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신하고, 하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 오디오 데이터를 처리하고, 예측 출력이 임계값을 충족하는지 결정하고, 사용자로부터, 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하고, 그리고 예측 출력이 임계값을 충족한다고 결정하고 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 응답하여 임계값을 조정하도록 실행 가능할 수 있다.
일부 구현에서, 프로그램 명령어는 예측 출력이 임계값을 충족한다는 결정에 응답하여, 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하기 전에 자동화 어시스턴트 기능을 개시하도록 추가로 실행 가능하다. 일부 구현에서, 기계 학습 모델은 핫워드 검출 모델이고, 프로그램 명령어는 음성 발언이 핫워드를 포함하지 않는다는 표시에 기초하여 핫워드 검출 모델을 트레이닝하도록 추가로 실행 가능하다.
일부 구현에서, 임계값을 조정하는 것은 임계값을 높이는 것을 포함한다. 일부 구현에서, 프로그램 명령어는 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트하도록 추가로 실행 가능하고, 음성 발언이 핫워드를 포함하지 않는다는 표시는 프롬프트에 대한 응답으로서 수신된다.
일부 추가적 또는 대안적인 구현에서, 시스템은 프로세서, 컴퓨터 판독가능 메모리, 하나 이상의 컴퓨터 판독가능 저장 매체, 및 하나 이상의 컴퓨터 판독가능 저장 매체에 집합적으로 저장된 프로그램 명령어를 포함할 수 있다. 프로그램 명령어는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1 음성 발언을 캡처하는 제1 오디오 데이터를 수신하고; 하나 이상의 핫워드가 제1 오디오 데이터에 존재할 확률을 나타내는 제1 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제1 오디오 데이터를 처리하고; 제1 예측 출력이 임계값을 충족하지 않는다고 결정하고; 제1 예측 출력이 임계값을 충족하지 않는다는 결정에 응답하여, 임계값에 대한 제1 조정을 수행하고, 제1 조정을 수행하는 것에 후속하여: 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발언을 캡처하는 제2 오디오 데이터를 수신하고; 하나 이상의 핫워드가 제2 오디오 데이터에 존재할 확률을 나타내는 제2 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제2 오디오 데이터를 처리하고; 제2 예측 출력이 제1 조정에 따라 조정된 임계값을 충족하지 않는다고 결정하고; 그리고 제2 예측 출력이 제1 조정에 따라 조정된 임계값을 충족하지 않는다는 결정에 응답하여, 임계값에 대한 제2 조정을 수행하도록 실행 가능하다.
일부 구현에서, 임계값에 대한 제1 조정을 수행하는 것은 임계값을 낮추는 것을 포함하고, 사용자로부터 제1 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 추가로 응답하여; 그리고 임계값에 대한 제2 조정을 수행하는 것은 임계값을 더 낮추는 것을 포함하고, 사용자로부터 제2 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 추가로 응답한다.
일부 구현에서, 프로그램 명령어는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제3 음성 발언을 캡처하는 제3 오디오 데이터를 수신하고; 하나 이상의 핫워드가 제3 오디오 데이터에 존재할 확률을 나타내는 제3 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제3 오디오 데이터를 처리하고; 제3 예측 출력이 제1 조정 및 제2 조정에 따라 조정된 임계값을 충족한다고 결정하고; 그리고 제3 예측 출력이 제1 조정 및 제2 조정에 따라 조정된 임계값을 충족한다는 결정에 응답하여, 임계값에 대한 제3 조정을 수행하도록 실행 가능하다.
일부 구현에서, 임계값에 대한 제3 조정을 수행하는 것은 임계값을 높이는 것을 포함하고, 사용자로부터 제3 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 추가로 응답한다.
본 명세서에 기술된 하나 이상의 기술의 활용을 통해, 음성 발언(들)에 대응하는 오디오 데이터 및/또는 발언 없는 물리적 움직임(들)에 대응하는 센서 데이터에 기초하여, 거짓 부정 및/또는 거짓 긍정의 발생이 대응하는 클라이언트 디바이스에서 국부적으로 식별되고 라벨링될 수 있다. 또한, 임계값은 식별 및 라벨링된 거짓 긍정(들) 및 거짓 부정(들)을 사용하여 조정될 수 있다. 추가적으로, 기울기(gradients)는 대응하는 클라이언트 디바이스에서 국부적으로 식별되고 라벨링된 거짓 긍정(들) 및 부정(들)을 사용하여 선택적으로 생성될 수 있다. 기울기는 대응하는 클라이언트 디바이스에서 국부적으로 활용되어, 국부적으로 저장된 해당 기계 학습 모델을 업데이트하고 및/또는 해당 전역 모델을 업데이트하는데 사용하기 위해 원격 시스템으로 전송될 수 있다. 그 결과 국부적으로 저장된 해당 기계 학습 모델 및/또는 해당 전역 모델(사용을 위해 다양한 클라이언트 디바이스로 전송될 수 있음)의 성능이 향상된다. 추가적으로 또는 대안적으로, 해당 클라이언트 디바이스에서 국부적으로 거짓 긍정 및/또는 거짓 부정의 라벨링은 이러한 사용자 데이터가 해당 클라이언트 디바이스로부터 전송되지 않을 수 있으므로 사용자 데이터(예를 들어, 음성 발언 등)의 프라이버시를 유지할 수 있다.
위의 설명은 본 개시의 일부 구현의 개요로서 제공된다. 이러한 구현 및 다른 구현에 대한 추가 설명은 아래에서 더 자세히 설명된다.
다양한 구현은 본 명세서에 설명된 방법 중 하나 이상과 같은 방법을 수행하기 위해 하나 이상의 프로세서(예를 들어, 중앙 처리 장치(들)(CPU), 그래픽 처리 장치(들)(GPU), 디지털 신호 프로세서(들)(DSP), 및/또는 텐서 처리 장치(TPU)에 의해 실행 가능한 명령어를 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 다른 구현들은 본 명세서에 기재된 방법 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어를 실행하도록 동작 가능한 프로세서(들)를 포함하는 자동화 어시스턴트 클라이언트 디바이스(예를 들어, 클라우드 기반 자동화 어시스턴트 컴포넌트(들)과 인터페이스하기 위한 적어도 자동화 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스)를 포함할 수 있다. 또 다른 구현은 본 명세서에 설명된 방법 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어를 실행하도록 동작 가능한 하나 이상의 프로세서를 포함하는 하나 이상의 서버의 시스템을 포함할 수 있다.
도 1a 및 도 1b는 다양한 구현에 따른, 본 개시의 다양한 양태를 설명하는 예시적인 프로세스 흐름을 도시한다.
도 2는 도 1a 및 도 1b의 다양한 컴포넌트를 포함하고 본 명세서에 개시된 구현들이 구현될 수 있는 예시적인 환경의 블록도를 도시한다.
도 3은 다양한 구현에 따른, 거짓 부정 또는 거짓 긍정에 기초하여 클라이언트 디바이스에서 국부적으로 임계값을 조정하고, 기울기를 생성하고, 원격 서버로 기울기를 전송하고 및/또는 생성된 기울기를 이용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법을 도시하는 흐름도이다.
도 4는 다양한 구현에 따른, 거짓 긍정에 기초하여 클라이언트 디바이스에서 국부적으로 임계값을 조정하고, 기울기를 생성하고, 원격 서버로 기울기를 전송하고 및/또는 생성된 기울기를 이용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법을 도시하는 흐름도이다.
도 5는 다양한 구현에 따른, 거짓 부정에 기초하여 임계값을 조정하는 예시적인 방법을 도시하는 흐름도를 도시한다.
도 6은 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
도 1a 및 도 1b는 본 개시의 다양한 양태를 설명하는 예시적인 프로세스 흐름을 도시한다. 클라이언트 디바이스(110)는 도 1a에 도시되어 있으며, 클라이언트 디바이스(110)를 나타내는 도 1a의 박스 내에 포함된 컴포넌트들을 포함한다. 기계 학습 엔진(122A)은 클라이언트 디바이스(110)의 하나 이상의 마이크로폰을 통해 검출된 음성 발언에 대응하는 오디오 데이터(101) 및/또는 클라이언트 디바이스(110)의 하나 이상의 비-마이크로폰 센서 컴포넌트를 통해 검출된 발언 없는 물리적 움직임(들)(예를 들어, 손 제스처(들) 및 /또는 움직임(들), 몸 제스처(들) 및/또는 몸 움직임(들), 시선, 얼굴 움직임, 입 움직임 등)에 대응하는 다른 센서 데이터(102)를 수신할 수 있다. 하나 이상의 비-마이크로폰 센서는 카메라(들) 또는 기타 비전 센서(들), 근접 센서(들), 압력 센서(들), 가속도계(들), 자력계(들), 및/또는 기타 센서(들)를 포함할 수 있다. 기계 학습 엔진(122A)은 기계 학습 모델(152A)을 사용하여 오디오 데이터(101) 및/또는 다른 센서 데이터(102)를 처리하여 예측(된) 출력(103)을 생성한다. 본 명세서에 설명된 바와 같이, 기계 학습 엔진(122A)은 핫워드 검출 엔진(122B) 또는 음성 활동 검출기(VAD) 엔진, 엔드포인트 검출기 엔진, 및/또는 기타 엔진(들)과 같은 대안적인 엔진일 수 있다.
일부 구현에서, 기계 학습 엔진(122A)이 예측 출력(103)을 생성할 때, 그것은 온-디바이스 저장소(storage)(111)의 클라이언트 디바이스에 국부적으로 저장될 수 있고, 대응하는 오디오 데이터(101) 및/또는 기타 센서 데이터(102)와 선택적으로 연관되어 저장될 수 있다. 이러한 구현의 일부 버전에서, 예측 출력은 본 명세서에 설명된 하나 이상의 조건이 충족되는 경우와 같이 나중에 기울기(106)를 생성할 때 사용하기 위해 기울기 엔진(126)에 의해 검색될 수 있다. 온-디바이스 저장소(111)는, 예를 들어, ROM 및/또는 RAM을 포함할 수 있다. 다른 구현에서, 예측 출력(103)은 실시간으로 기울기 엔진(126)에 제공될 수 있다.
클라이언트 디바이스(110)는 예측 출력(103)이 블록(182)에서 임계값을 충족하는지 여부를 결정하는 것에 기초하여, 현재 휴면 상태인 자동화 어시스턴트 기능(들)(예를 들어, 도 2의 자동화 어시스턴트(295))을 개시할지, 현재 휴면 상태인 자동화 어시스턴트의 기능(들)을 개시하는 것을 억제할지 및/또는 어시스턴트 활성화 엔진(124)을 사용하여 현재 활성화된 자동화 어시스턴트의 기능(들)을 종료할지 여부에 대한 결정을 내릴 수 있다. 자동화된 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, 자연어 이해(natural language understanding: NLU) 출력을 생성하기 위한 NLU, 인식된 텍스트 및/또는 NLU 출력에 기초한 응답 생성, 원격 서버로의 오디오 데이터의 전송, 및/또는 원격 서버로의 인식된 텍스트의 전송을 포함할 수 있다. 예를 들어, 예측 출력(103)이 확률(예를 들어, 0.80 또는 0.90)이고 블록(182)에서 임계값이 임계 확률(예를 들어, 0.85)이라고 가정하고, 클라이언트 디바이스(110)가 블록(182)에서 예측 출력(103)(예를 들어, 0.90)이 임계값(예를 들어, 0.85)을 충족한다고 결정하면, 어시스턴트 활성화 엔진(124)은 현재 휴면 상태인 자동화 어시스턴트 기능(들)을 개시할 수 있다.
일부 구현에서, 도 1b에 도시된 바와 같이, 기계 학습 엔진(122A)은 핫워드 검출 엔진(122B)일 수 있다. 특히, 온-디바이스 음성 인식기(142), 온-디바이스 NLU 엔진(144) 및/또는 온-디바이스 이행 엔진(146)과 같은 다양한 자동화 어시스턴트 기능(들)은 현재 휴면 상태이다(즉, 점선으로 표시됨). 또한, 핫워드 검출 모델(152B)을 사용하여 생성되고 오디오 데이터(101)에 기초하여 생성된 예측 출력(103)이 블록(182)에서 임계값을 충족하고 음성 활동 검출기(128)가 클라이언트 디바이스(110)로 지시되는 사용자 음성(speech)을 검출한다고 가정한다.
이러한 구현의 일부 버전에서, 어시스턴트 활성화 엔진(124)은 온-디바이스 음성 인식기(142), 온-디바이스 NLU 엔진(144), 및/또는 온-디바이스 이행 엔진(146)을 현재 휴면 상태인 자동화 어시스턴트 기능(들)으로서 활성화한다. 예를 들어, 온-디바이스 음성 인식기(142)는 온-디바이스 음성 인식 모델(142A)을 사용하여 핫워드 "OK 어시스턴트" 및 그 핫워드 "OK 어시스턴트" 다음에 오는 추가 커맨드 및/또는 문구를 포함하는 음성 발언에 대한 오디오 데이터(101)를 처리하여 인식된 텍스트(143A)를 생성하고, 온-디바이스 NLU 엔진(144)은 온-디바이스 NLU 모델(144A)을 사용하여 상기 인식된 텍스트(143A)를 처리하여 NLU 데이터(145A)를 생성하고, 온-디바이스 이행 엔진(146)은 온-디바이스 이행 모델(146A)을 사용하여 NLU 데이터(145A)를 처리하여 이행 데이터(147A)를 생성하고, 클라이언트 디바이스(110)는 오디오 데이터(101)에 응답하는 하나 이상의 액션(동작)의 실행(150) 시 이행 데이터(147A)를 사용할 수 있다.
이러한 구현의 다른 버전에서, 어시스턴트 활성화 엔진(124)은 온-디바이스 음성 인식기(142) 및 온-디바이스 NLU 엔진(144)을 활성화하지 않고 단지 온-디바이스 이행 엔진(146)을 활성화하여, "아니오(No)", "중지(Stop)", "취소(Cancel)", 및/또는 온-디바이스 음성 인식기(142) 및 온-디바이스 NLU 엔진(144) 없이 처리될 수 있는 기타 커맨드와 같은 다양한 커맨드를 처리한다. 예를 들어, 온-디바이스 이행 엔진(146)은 온-디바이스 이행 모델(146A)을 사용하여 오디오 데이터(101)를 처리하여 이행 데이터(147A)를 생성하고, 클라이언트 디바이스(110)는 오디오 데이터(101)에 응답하는 하나 이상의 액션의 실행(150)에서 이행 데이터(147A)를 사용할 수 있다. 더욱이, 이러한 구현의 버전에서, 어시스턴트 활성화 엔진(124)은 초기에 현재 휴면 자동화 기능(들)을 활성화하여, 오디오 데이터(101)가 핫워드 "OK 어시스턴트"를 포함하는지를 결정하기 위해 처음에 온-디바이스 음성 인식기(142)만을 활성화함으로써 블록(182)에서 이루어진 결정이 옳았다는 것(예를 들어, 오디오 데이터(101)가 실제로 핫워드 "OK 어시스턴트"를 포함함)을 검증(확인)할 수 있다.하기 위해 현재 휴면 자동화 기능(들)을 초기에 활성화할 수 있고, 및/또는 어시스턴트 활성화 엔진(124)은 오디오 데이터(101)를 하나 이상의 서버(예를 들어, 원격 서버(160))로 전송하여 블록(182)에서 이루어진 결정이 옳았음을 검증할 수 있다(예를 들어, 오디오 데이터(101)는 실제로 핫워드 "OK 어시스턴트"를 포함한다).
도 1a로 돌아가서, 클라이언트 디바이스(110)가 블록(182)에서 예측 출력(103)(예를 들어, 0.80)이 임계값(예를 들어, 0.85)을 만족시키지 못한다고 결정하는 경우, 어시스턴트 활성화 엔진(124)은 현재 휴면 상태인 자동화 어시스턴트 기능(들)을 개시하는 것을 억제할 수 있고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)을 종료(shut down)할 수 있다. 또한, 클라이언트 디바이스(110)가 블록(182)에서 예측 출력(103)(예를 들어, 0.80)이 임계값(예를 들어, 0.85)을 만족시키지 못한다고 결정하는 경우, 클라이언트 디바이스(110)는 블록(184)에서 추가 사용자 인터페이스 입력이 수신되는지 결정할 수 있다. 예를 들어, 추가 사용자 인터페이스 입력은 핫워드를 포함하는 추가 음성 발언, 핫워드에 대한 프록시 역할을 하는 추가적인 발언 없는 물리적 움직임, 명시적인 자동화 어시스턴트 호출 버튼(예를 들어, 하드웨어 버튼 또는 소프트웨어 버튼), 클라이언트 디바이스(110)의 감지된 "압착(squeeze)"(예를 들어, 적어도 임계량의 힘(force)으로 클라이언트 장치(110)를 압착하는 경우 자동 어시스턴트가 호출됨), 및또는 기타 명시적인 자동화 어시스턴트 호출일 수 있다. 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 없다고 결정하면, 클라이언트 디바이스(110)는 수정(corrections) 식별을 중지하고 블록(190)에서 종료할 수 있다.
그러나, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 있다고 결정하는 경우, 시스템은 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(182)에서 이루어진 결정(예를 들어, 사용자 중재 또는 사용자 제공 수정)과 모순되는 수정(들)을 블록(186)에서 포함하는지 여부를 결정할 수 있다. 수정(들)은 (예를 들어, 도 3 및 도 5와 관련하여 더 상세히 설명된 바와 같이) 거짓 부정 또는 (예를 들어, 도 3 및 4와 관련하여 더 자세히 설명되는 바와 같이) 거짓 긍정을 식별할 수 있다. 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(186)에서의 수정을 포함하지 않는다고 결정하는 경우, 클라이언트 디바이스(110)는 수정 식별을 중지하고 블록(190)에서 종료할 수 있다. 그러나, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(182)에서 이루어진 초기 결정과 모순되는 블록(186)에서의 수정을 포함한다고 결정하는 경우, 클라이언트 디바이스(110)는 조정된 임계값(104) 및 실측 출력(105)을 결정할 수 있다.
거짓 부정의 하나의 비-제한적인 예로서, 기계 학습 엔진(122A)이 예측 출력(103)으로서 확률을 생성하도록 트레이닝되고, 클라이언트 디바이스(110)가 예측 출력(103)(예를 들어, 0.80)이 블록(182)에서 임계값(예를 들어, 0.85)을 충족하지 않는다고 잘못 결정하고, 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시하는 것을 억제하고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)을 종료했다고 가정한다. 또한, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력에 기초하여, 추가 사용자 인터페이스 입력이 블록(182)에서 이루어진 초기 결정과 모순되고, 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시해 하고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)을 종료하는 것을 억제해야 한다고 결정했다고 가정한다. 이 경우에, 조정된 임계값(104)은 블록(182)에서 사용된 임계값(예를 들어, 0.85)보다 낮은 임계값일 수 있다. 구현에서, 비-제한적인 예로서, 조정된 임계값(104)은 예측 출력(103)으로서 생성된 확률(예를 들어, 0.80)에 기초하여 결정될 수 있다. 다른 구현에서, 비-제한적인 예로서, 조정된 임계값(104)은 블록(182)에서 사용된 임계값을 사전 결정된 양(예를 들어, 0.85 - 0.03 = 0.82) 또는 사전 결정된 백분율(예를 들어, 0.85에서 5%만큼 낮춤 = 0.8075)만큼 낮춤으로써 결정될 수 있다. 추가적으로, 이 경우, 실측(ground trut) 출력(105)은 또한 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시했어야 하고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)을 종료하는 것을 억제했어야 함을 나타내는 확률(예를 들어, 1.00)일 수 있다.
거짓 긍정의 하나의 비-제한적인 예로서, 기계 학습 엔진(122A)이 예측 출력(103)으로서 확률을 생성하도록 훈련되고, 클라이언트 디바이스(110)가 예측 출력(103)(예를 들어, 0.90)이 블록(182)에서 임계값(예를 들어, 0.85)을 충족한다고 잘못 결정하고, 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시하고 및/또는 현재 활성화된 자동 어시스턴트 기능(들)을 종료하는 것을 억제했다고 가정한다. 또한, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력에 기초하여, 추가 사용자 인터페이스 입력이 블록(182)에서 이루어진 초기 결정과 모순되고, 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시하지 않아야 하고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)을 종료하는 것을 억제해서는 안된다고 결정했다고 가정한다. 이 경우에, 조정된 임계값(104)은 블록(182)에서 사용된 임계값(예를 들어, 0.85)보다 더 높은 임계값일 수 있다. 구현에서, 비-제한적인 예로서, 조정된 임계값(104)은 예측 출력(103)으로서 생성된 확률(예를 들어, 0.90)에 기초하여 결정될 수 있다. 다른 구현에서, 비-제한적인 예로서, 조정된 임계값(104)은 블록(182)에서 사용된 임계값을 사전 결정된 양(예를 들어, 0.85 + 0.03 = 0.88) 또는 사전 결정된 백분율(예를 들어, 0.85에서 5%만큼 증가 = 0.8925)만큼 증가시킴으로써 결정될 수 있다. 추가적으로 이 경우, 실측 출력(105)은 또한 클라이언트 디바이스(110)가 현재 휴면 자동화 어시스턴트 기능(들)을 개시하지 않았어야 하고 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)의 종료를 억제하지 않았어야 함을 나타내는 확률(예를 들어, 0.00)일 수 있다. 예측 출력(103), 블록(182)에서 사용된 임계값, 조정된 임계값(104), 및 실측 출력(105)이 본 명세서에서 확률인 것으로 설명되지만, 이는 제한하려는 것이 아니며 예측 출력(103), 블록(182)에서 사용된 임계값, 조정된 임계값(104), 및 실측 출력(105)은 라벨, 주석, 이진 값, 및/또는 기타 가능성 측정일 수 있음을 이해해야 한다.
일부 구현들에서, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 거짓 부정인 블록(186)에서의 수정을 포함한다고 결정하는 경우, 클라이언트 디바이스(110)의 어시스턴트 활성화 엔진(124)은 클라이언트 디바이스(110)의 마이크로폰을 활성화하고 사용자가 의도한 대로 하나 이상의 현재 휴면 상태인 자동화 어시스턴트 기능을 개시할 수 있다.
일부 구현에서, 기울기 엔진(126)은 실측 출력(105)에 대한 예측 출력(103)에 기초하여 기울기(106)를 생성할 수 있다. 예를 들어, 기울기 엔진(126)은 예측 출력(103)을 실측 출력(105)과 비교하는 것에 기초하여 기울기(106)를 생성할 수 있다. 이러한 구현의 일부 버전에서, 클라이언트 디바이스(110)는 예측 출력(103) 및 대응하는 실측 출력(105)을 온-디바이스 저장소(111)에 국부적으로 저장하고, 기울기 엔진(126)은 예측 출력(103) 및 대응하는 실측 출력(105)을 검색하여 하나 이상의 조건이 만족될 때 기울기(106)를 생성한다. 하나 이상의 조건은, 예를 들어, 클라이언트 디바이스가 충전 중인 것, 클라이언트 디바이스가 적어도 임계 충전 상태를 갖는 것, (하나 이상의 온-디바이스 온도 센서에 기초한) 클라이언트 디바이스의 온도가 임계값 미만인 것 및/또는 사용자가 클라이언트 디바이스를 들고 있는 것을 포함할 수 있다. 이러한 구현의 다른 버전에서, 클라이언트 디바이스(110)는 예측 출력(103) 및 실측 출력(105)을 실시간으로 기울기 엔진(126)에 제공하고, 기울기 엔진(126)은 실시간으로 기울기(106)를 생성한다.
더욱이, 기울기 엔진(126)은 생성된 기울기(106)를 온-디바이스 기계 학습 트레이닝 엔진(132A)에 제공할 수 있다. 온-디바이스 기계 학습 트레이닝 엔진(132A)은 기울기(106)를 수신할 때 그 기울기(106)를 사용하여 온-디바이스 기계 학습 모델(152A)을 업데이트한다. 예를 들어, 온-디바이스 기계 학습 트레이닝 엔진(132A)은 역전파 및/또는 기타 기술을 사용하여 온-디바이스 기계 학습 모델(152A)을 업데이트할 수 있다. 일부 구현에서, 온-디바이스 기계 학습 트레이닝 엔진(132A)은 배치 기술을 사용하여, 기울기(106) 및 추가 보정에 기초하여 클라이언트 디바이스(110)에서 국부적으로 결정된 추가 기울기에 기초하여 온-디바이스 기계 학습 모델(152A)을 업데이트할 수 있다.
또한, 클라이언트 디바이스(110)는 생성된 기울기(106)를 원격 시스템(160)으로 전송할 수 있다. 원격 시스템(160)이 기울기(106)를 수신할 때, 원격 시스템(160)의 원격 트레이닝 엔진(162)은 기울기(106) 및 추가 클라이언트 디바이스(170)로부터의 추가 기울기(107)를 사용하여 전역 음성 인식 모델(152A1)의 전역 가중치를 업데이트한다. 추가 클라이언트 디바이스(170)로부터의 추가 기울기(107)는 기울기(106)와 관련하여 위에서 설명된 것과 동일하거나 유사한 기술에 기초하여 (그러나 이러한 클라이언트 디바이스에 특정된 국부적으로 식별된 수정에 기초하여) 생성될 수 있다
업데이트 배포 엔진(164)은 충족되는 하나 이상의 조건에 응답하여, 클라이언트 디바이스(110) 및/또는 기타 클라이언트 디바이스(들)에, 108로 표시된 바와 같이 업데이트된 전역 가중치 및/또는 업데이트된 전역 음성 인식 모델 자체를 제공할 수 있다. 하나 이상의 조건은, 예를 들어, 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 지속기간 및/또는 트레이닝의 양을 포함할 수 있다. 하나 이상의 조건은 추가적으로 또는 대안적으로 예를 들어 업데이트된 음성 인식 모델에 대한 측정된 개선 사항 및/또는 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 지속기간의 경과를 포함할 수 있다. 업데이트된 가중치가 클라이언트 디바이스(110)에 제공되는 경우, 클라이언트 디바이스(110)는 온-디바이스 기계 학습 모델(152A)의 가중치를 업데이트된 가중치로 대체할 수 있다. 업데이트된 전역 음성 인식 모델이 클라이언트 디바이스(110)에 제공되는 경우, 클라이언트 디바이스(110)는 온-디바이스 기계 학습 모델(152A)을 업데이트된 전역 음성 인식 모델로 대체할 수 있다.
일부 구현에서, 온-디바이스 기계 학습 모델(152A)은 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자의 지리적 영역 및/또는 기타 속성에 기초하여 클라이언트 디바이스(110)에서의 저장 및 사용을 위해 (예를 들어, 원격 시스템(160) 또는 기타 컴포넌트(들)에 의해) 전송된다. 예를 들어, 온-디바이스 기계 학습 모델(152A)은 주어진 언어에 대해 N개의 이용 가능한 기계 학습 모델 중 하나일 수 있지만, 특정 지리적 영역에 특정된 보정에 기초하여 트레이닝될 수 있고 클라이언트 디바이스(110)가 특정 지리적 영역에 주로 위치하는 것에 기초하여 클라이언트 디바이스(110)에 제공될 수 있다.
이제 도 2를 참조하면, 클라이언트 디바이스(110)는 도 1a 및 도 1b의 다양한 온-디바이스 기계 학습 엔진이 자동화 어시스턴트 클라이언트(240)의 일부로서(또는 이와 통신하는) 포함되는 구현으로 도시된다. 개별 기계 학습 모델은 또한 도 1a 및 1b의 다양한 온-디바이스 기계 학습 엔진과 인터페이스하는 것으로 도시되어 있다. 도 1a 및 도 1b의 다른 컴포넌트는 단순화를 위해 도 2에 도시되지 않았다. 도 2는 도 1a 및 도 1b의 다양한 온-디바이스 기계 학습 엔진과 그들의 개별 기계 학습 모델이 다양한 액션을 수행할 때 자동화 어시스턴트 클라이언트(240)에 의해 활용될 수 있는 방법의 일 예를 도시한다.
도 2의 클라이언트 디바이스(110)는 하나 이상의 마이크로폰(211), 하나 이상의 스피커(212), 하나 이상의 카메라 및/또는 다른 비전 컴포넌트(213), 및 디스플레이(들)(214)(예를 들어, 터치 감지 디스플레이)으로 도시되어 있다. 클라이언트 디바이스(110)는 압력 센서(들), 근접 센서(들), 가속도계(들), 자력계(들), 및/또는 하나 이상의 마이크로폰(211)에 의해 캡처된 오디오 데이터에 추가하여 기타 센서 데이터를 생성하는데 사용되는 기타 센서를 더 포함할 수 있다. 클라이언트 디바이스(110)는 자동화 어시스턴트 클라이언트(240)를 적어도 선택적으로 실행한다. 자동화 어시스턴트 클라이언트(240)는, 도 2의 예에서, 온-디바이스 핫워드 검출 엔진(122B), 온-디바이스 음성 인식기(142), 온-디바이스 NLU(자연어 이해) 엔진(144), 및 온-디바이스 이행 엔진(146)을 포함한다. 자동화 어시스턴트 클라이언트(240)는 음성 캡처 엔진(242) 및 시각(visual) 캡처 엔진(244)을 더 포함한다. 자동화 어시스턴트 클라이언트(140)는 음성 활동 검출기(VAD) 엔진, 엔드포인트 검출기 엔진, 및/또는 기타 엔진(들)과 같은 추가적인 및/또는 대안적인 엔진을 포함할 수 있다.
하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(280)는 일반적으로 290로 표시된 하나 이상의 근거로 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(110)에 통신 가능하게 결합된 하나 이상의 컴퓨팅 시스템(통칭하여 "클라우드" 컴퓨팅 시스템으로 지칭됨)에서 선택적으로 구현될 수 있다. 클라우드 기반 자동화 어시스턴트 컴포넌트(280)는 예를 들어 고성능 서버의 클러스터를 통해 구현될 수 있다.
다양한 구현에서, 자동화 어시스턴트 클라이언트(240)의 인스턴스는 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(280)와의 상호작용을 통해, 사용자의 관점에서, 사용자가 인간 대 컴퓨터 상호작용(예를 들어, 음성 상호작용, 제스처 기반 상호작용, 및/또는 터치 기반 상호작용)에 참여할 수 있는 자동화 어시스턴트(295)의 논리적 인스턴스로 보이는 것을 형성할 수 있다.
클라이언트 디바이스(110)는 예를 들어, 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 이동 전화 컴퓨팅 디바이스, 사용자의 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 독립형 대화형 스피커, 스마트 텔레비전(또는 자동화 어시스턴트 기능이 있는 네트워크 동글이 장착된 표준 텔레비전)과 같은 스마트 기기, 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 디바이스(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가 및/또는 대체 클라이언트 디바이스가 제공될 수 있다.
하나 이상의 비전 컴포넌트(213)는 모노그래픽 카메라, 스테레오그래픽 카메라, 라이다(LIDAR) 컴포넌트(또는 기타 레이저 기반 컴포넌트(들)), 레이더 컴포넌트 등과 같은 다양한 형태를 취할 수 있다. 하나 이상의 비전 컴포넌트(213)는 클라이언트 디바이스(110)가 배치되는 환경의 비전 프레임(예를 들어, 이미지 프레임, 레이저 기반 비전 프레임)을 캡처하기 위해, 예를 들어 시각적 캡처 엔진(242)에 의해 사용될 수 있다. 일부 구현에서, 이러한 비전 프레임(들)은 사용자가 클라이언트 디바이스(110) 근처에 존재하는지 여부 및/또는 클라이언트 디바이스(110)에 대한 사용자(예를 들어, 사용자의 얼굴)의 거리를 결정하는데 활용될 수 있다. 이러한 결정(들)은 예를 들어 도 2에 도시된 다양한 온-디바이스 기계 학습 엔진 및/또는 기타 엔진(들)을 활성화할지 여부를 결정할 때 활용될 수 있다.
음성 캡처 엔진(242)은 사용자의 음성 및/또는 마이크로폰(들)(211)를 통해 캡처된 다른 오디오 데이터를 캡처하도록 구성될 수 있다. 또한, 클라이언트 디바이스(110)는 압력 센서(들), 근접 센서(들), 가속도계(들), 자력계(들), 및/또는 마이크로폰(들)(211)를 통해 캡처된 오디오 데이터에 추가하여 다른 센서 데이터를 생성하는데 사용되는 다른 센서(들)를 포함할 수 있다. 본 명세서에 설명된 바와 같이, 이러한 오디오 데이터 및 다른 센서 데이터는 핫워드 검출 엔진(122B) 및/또는 다른 엔진(들)에 의해 이용되어, 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 개시할지, 하나 이상의 현재 휴면중인 자동화 어시스턴트 기능을 개시하는 것을 억제할지, 및/또는 하나 이상의 현재 활성화된 자동화 어시스턴트 기능을 종료할지 여부를 결정할 수 있다. 자동화 어시스턴트 기능은 온-디바이스 음성 인식기(142), 온-디바이스 NLU 엔진(144), 온-디바이스 이행 엔진(146), 및 추가 및/또는 대체 엔진을 포함할 수 있다. 예를 들어, 온-디바이스 음성 인식기(142)는 온-디바이스 음성 인식 모델(142A)을 사용하여 음성 발언을 캡처하는 오디오 데이터를 처리하여 그 음성 발언에 대응하는 인식된 텍스트(143A)를 생성할 수 있다. 온-디바이스 NLU 엔진(144)은 인식된 텍스트(143A)에 대해 온-디바이스 NLU 모델(144A)을 선택적으로 활용하는 온-디바이스 자연어 이해를 수행하여 NLU 데이터(145A)를 생성한다. NLU 데이터(145A)는 예를 들어, 음성 발언에 대응하는 의도(들) 및 선택적으로 그 의도(들)에 대한 파라미터(들)(예를 들어, 슬롯 값)를 포함할 수 있다. 게다가, 온-디바이스 이행 엔진(146)은 NLU 데이터(145A)에 기초하여 온-디바이스 이행 모델(146A)을 선택적으로 활용하여 이행 데이터(147A)를 생성한다. 이 이행 데이터(147A)는 음성 발언에 대한 로컬 및/또는 원격 응답(예를 들어, 답변), 음성 발언에 기초하여 국부적으로 설치된 애플리케이션(들)과 수행하기 위한 상호작용(들), 음성 발언에 기초하여 사물 인터넷(IoT) 디바이스(들)에 (직접 또는 해당 원격 시스템(들)을 통해) 전송하는 커맨드(들), 및/또는 음성 발언에 기초하여 수행할 기타 해결 동작(resolution action)(들)을 정의할 수 있다. 그런 다음, 이행 데이터(147A)는 음성 발언을 해결하기 위해 상기 결정된 동작(들)의 로컬 및/또는 원격 수행/실행을 위해 제공된다. 실행에는 예를 들어 로컬 및/또는 원격 응답 렌더링(예를 들어, 시각적 및/또는 청각적 렌더링(선택적으로 로컬 텍스트-음성 변환 변환 모듈을 사용함)), 국부적으로 설치된 애플리케이션과의 상호 작용, IoT 디바이스(들)로의 커맨드(들) 전송, 및/또는 기타 동작(들)이 포함될 수 있다.
디스플레이(들)(214)는 온-디바이스 음성 인식기(122)로부터의 인식된 텍스트(143A) 및/또는 추가 인식된 텍스트(143B), 및/또는 실행(150)으로부터의 하나 이상의 결과를 디스플레이하는데 사용될 수 있다. 디스플레이(들)(214)는 추가로 자동화 어시스턴트 클라이언트(240)로부터, 응답의 시각적 부분(들)이 렌더링되는 사용자 인터페이스 출력 컴포넌트(들) 중 하나일 수 있다.
일부 구현에서, 클라우드 기반 자동화 어시스턴트 컴포넌트(들)(280)는 음성 인식을 수행하는 원격 ASR 엔진(281), 자연어 이해를 수행하는 원격 NLU 엔진(282), 및/또는 이행을 생성하는 원격 이행 엔진(283)을 포함할 수 있다. 로컬 또는 원격으로 결정된 이행 데이터에 기초하여 원격 실행을 수행하는 원격 실행 모듈도 선택적으로 포함될 수 있다. 추가 및/또는 대체 원격 엔진이 포함될 수 있다. 본 명세서에 기술된 바와 같이, 온-디바이스 음성 처리에 대한 다양한 구현에서, 온-디바이스 NLU, 온-디바이스 이행, 및/또는 온-디바이스 실행은 음성 발언을 해결할 때 제공하는 대기 시간(latency) 및/또는 네트워크 사용량 감소로 인해 적어도 우선 순위가 지정될 수 있다(음성 발언을 해결하는데 클라이언트-서버 왕복이 필요하지 않기 때문에). 그러나, 하나 이상의 클라우드 기반 자동화 어시스턴트 컴포넌트(들)(280)는 적어도 선택적으로 사용될 수 있다. 예를 들어, 이러한 컴포넌트(들)는 온-디바이스 컴포넌트(들)와 병렬로 사용될 수 있으며 이러한 컴포넌트의 출력은 로컬 컴포넌트(들)가 실패할 때 사용될 수 있다. 예를 들어, 온-디바이스 이행 엔진(146)은 (예를 들어, 클라이언트 디바이스(110)의 상대적으로 제한된 자원으로 인해) 특정 상황에서 실패할 수 있고, 원격 이행 엔진(283)은 클라우드의 보다 강건한 자원을 활용하여 그러한 상황에서 이행 데이터를 생성할 수 있다. 원격 이행 엔진(283)은 온-디바이스 이행 엔진(146) 및 온-디바이스 이행이 실패할 때 활용되는 그의 결과와 병렬로 작동되거나, 온-디바이스 이행 엔진(146)의 실패를 결정하는 것에 응답하여 호출될 수 있다.
다양한 구현에서, NLU 엔진(온-디바이스 및/또는 원격)은 인식된 텍스트의 하나 이상의 주석 및 자연어 입력의 용어들 중 하나 이상(예를 들어, 모두)을 포함하는 NLU 데이터를 생성할 수 있다. 일부 구현에서, NLU 엔진은 자연 언어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, NLU 엔진은 개별 단어를 형태소(morpheme)로 분리하고 및/또는 형태소에 예를 들어 클래스로 주석을 달 수 있는 형태학적 모듈을 포함할 수 있다. NLU 엔진은 또한 문법적 역할로 용어에 주석을 달도록 구성된 품사 태거를 포함할 수도 있다. 또한, 예를 들어, 일부 구현에서 NLU 엔진은 추가적으로 및/또는 대안적으로 자연어 입력에서 용어들 간의 구문 관계를 결정하도록 구성된 종속성 파서(dependency parser)를 포함할 수 있다.
일부 구현에서, NLU 엔진은 사람(예를 들어, 문학적 인물, 유명인, 공인 등을 포함), 조직, 위치(실제 및 가상) 등에 대한 참조와 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거를 추가적으로 및/또는 대안적으로 포함할 수 있다. 일부 구현에서, NLU 엔진은 하나 이상의 문맥적 큐(cue)에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 동일 지시어 분석기(coreference resolver)(도시되지 않음)를 추가로 및/또는 대안적으로 포함할 수 있다. 일부 구현에서, NLU 엔진의 하나 이상의 컴포넌트는 NLU 엔진의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다.
NLU 엔진은 또한 자동화 어시스턴트(295)와의 상호작용에 관여하는 사용자의 의도를 결정하도록 구성된 의도 매칭기를 포함할 수 있다. 의도 매칭기는 다양한 기술을 사용하여 사용자의 의도를 결정할 수 있다. 일부 구현에서, 의도 매칭기는 예를 들어 문법과 응답 의도 사이의 복수의 매핑을 포함하는 하나 이상의 로컬 및/또는 원격 데이터 구조에 액세스할 수 있다. 예를 들어, 매핑에 포함된 문법은 시간 경과에 따라 선택 및/또는 학습될 수 있으며 사용자의 공통 의도를 나타낼 수 있다. 예를 들어, 하나의 문법 "play <artist>"는 <artist>의 음악이 클라이언트 디바이스(110)에서 재생되도록 하는 응답 동작(responsive action)을 호출하는 의도에 매핑될 수 있다. 다른 문법인 "[weather|forcast] today"는 "오늘 날씨 어때?", "오늘 일기예보 어때?"와 같은 사용자 질의(query)에 매칭될 수 있다. 문법에 더하여 또는 대신에, 일부 구현에서, 의도 매칭기는 단독으로 또는 하나 이상의 문법과 조합하여 하나 이상의 트레이닝된 기계 학습 모델을 사용할 수 있다. 이러한 트레이닝된 기계 학습 모델은 예를 들어, 음성 발언으로부터의 인식된 텍스트를 축소된 차원 공간에 임베딩한 다음 다음, 예를 들어 유클리드 거리, 코사인 유사도 등과 같은 기술을 사용하여 가장 인접한 임베딩(따라서 의도)을 결정함으로써 의도를 식별하도록 트레이닝될 수 있다. 위의 "play <artist>"인 예시적인 문법에서 볼 수 있는 바와 같이, 일부 문법에는 슬롯 값(또는 "파라미터")으로 채워질 수 있는 슬롯(예를 들어, <artist>)이 있다. 슬롯 값은 다양한 방식으로 결정될 수 있다. 종종 사용자는 사전에 슬롯 값을 제공한다. 예를 들어, "Order me <topping> pizza" 문법에 대해, 사용자는 "order me sausage pizza"라는 문구를 말할 수 있으며, 이 경우 슬롯 <topping>은 자동으로 채워진다. 다른 슬롯 값(들)은 예를 들어 사용자 위치, 현재 렌더링된 컨텐츠, 사용자 선호도, 및/또는 기타 큐(들)에 기초하여 추론될 수 있다.
이행 엔진(로컬 및/또는 원격)은 NLU 엔진에 의해 출력되는 예측된/추정된 의도 뿐만 아니라 임의의 연관된 슬롯 값을 수신하고 의도를 이행(또는 "해결")하도록 구성될 수 있다. 다양한 구현에서, 사용자 의도의 이행(또는 "해결")은 다양한 이행 정보(이행 데이터라고도 지칭됨)가, 예를 들어 이행 엔진에 의해 생성되고/획득되도록 할 수 있다. 여기에는 음성 발언에 대한 로컬 및/또는 원격 응답(예를 들어, 답변), 음성 발언에 기초하여 수행할 국부적으로 설치된 애플리케이션과의 상호 작용, 음성 발언에 기초하여 사물 인터넷(IoT) 디바이스(들)에 (직접 또는 해당 원격 시스템(들)을 통해) 전송하는 커맨드, 및/또는 음성 발언에 기초하여 수행할 다른 해결 동작(들)이 포함될 수 있다. 그런 다음 온-디바이스 이행은 결정된 동작(들)의 로컬 및/또는 원격 수행/실행을 개시하여 음성 발언을 해결할 수 있다.
도 3은 거짓 부정 또는 거짓 긍정에 기초하여 클라이언트 디바이스에서 국부적으로 임계값을 조정하고 기울기를 생성하고, 기울기를 원격 서버로 전송하고 및/또는 생성된 기울기를 사용하여 온-디바이스 음성 인식 모델의 가중치(들)를 업데이트하는 예시적인 방법(300)을 도시하는 흐름도이다. 편의상, 방법(300)의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 클라이언트 디바이스의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(300)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작은 재정렬되거나 생략되거나 추가될 수 있다.
블록(305)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신한다.
블록(310)에서, 시스템은 기계 학습 모델을 사용하여 블록(305)에서 수신된 오디오 데이터를 처리하여 하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성한다. 기계 학습 모델은 예를 들어 온-디바이스 핫워드 검출 모델 및/또는 기타 기계 학습 모델일 수 있다. 또한, 생성된 출력은 예를 들어 확률 및/또는 기타 가능성(likelihood) 측정일 수 있다.
블록(315)에서, 시스템은 블록(310)에서 생성된 예측 출력이 주(primary) 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 덜 나타내는 보조(secondary) 임계값을 충족하는지 여부를 결정한다. 블록(315)의 반복에서, 시스템이 블록(310)에서 생성된 예측 출력이 보조 임계값을 충족하지 않는다고 결정하는 경우, 시스템은 블록(320)으로 진행하고 흐름이 종료된다. 반면에, 블록(315)의 반복에서, 시스템이 블록(310)에서 생성된 예측 출력이 보조 임계값을 충족한다고 결정하는 경우, 시스템은 블록(325)으로 진행한다.
여전히 블록(315)을 참조하면, 일 예에서, 블록(310)에서 생성된 예측 출력이 확률이고 그 확률은 블록(315)에서 보조 임계값을 충족시키기 위해 0.65보다 커야 하고, 예측 확률은 0.88이라고 가정한다. 0.65의 보조 임계값을 충족하는 0.88의 예측 확률에 기초하여 시스템은 블록(325)으로 진행한다.
블록(325)에서, 시스템은 블록(310)에서 생성된 예측 출력이 주 임계값을 만족하는지 여부를 결정한다. 블록(325)의 반복에서, 시스템이 블록(310)에서 생성된 예측 출력이 주 임계값을 만족하지 않는다고 결정하는 경우, 시스템은 블록(335)으로 진행한다. 반면에, 블록(325)의 반복에서, 시스템이 블록(310)에서 생성된 예측 출력이 주 임계값을 충족한다고 결정하는 경우, 시스템은 블록(330)으로 진행하고 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 개시한다. 일부 구현에서, 하나 이상의 자동화된 어시스턴트 기능에는 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 자연어 이해(NLU), 인식된 텍스트 및/또는 NLU 출력에 기초한 응답 생성, 원격 서버로의 오디오 데이터 전송 및/또는 원격 서버로의 인식된 텍스트 전송이 포함된다.
예에서, 여전히 블록(330)을 참조하면, 일 예에서, 블록(310)에서 생성된 예측 출력은 확률이고 그 확률은 블록(325)에서 주 임계값을 만족하고 블록(330)에서 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 활성화하기 위해 0.85보다 커야 하며 예측 확률은 0.88이라고 가정한다. 0.85의 임계값을 만족시키는 0.88의 예측 확률에 기초하여, 시스템은 블록(330)으로 진행하고 사용자가 의도한 대로 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 개시한다.
블록(335)에서, 시스템은 블록(305)에서 수신된 오디오 데이터에 의해 캡처된 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트한다. 구현에서, 프롬프트는 사용자가 핫워드를 발언했는지 여부를 묻는 (예를 들어, 텍스트-음성 변환 모듈을 사용하여 렌더링된) 오디오 프롬프트의 형태일 수 있다. 다른 구현에서, 프롬프트는 사용자가 핫워드를 발언했는지 여부를 묻는 메시지로서 디스플레이 상에 렌더링될 수 있다. 또 다른 구현에서, 프롬프트들 중 하나 이상은 자동화 어시스턴트 클라이언트(240)(예를 들어, 모바일 디바이스 상에서 실행되는 앱)와 관련된 애플리케이션 또는 웹사이트에 제시될 수 있다. 시스템은 블록(335)에서 발언에 매우 시간적으로 근접하여(예를 들어, 블록(305, 310, 315, 325)의 동작을 수행한 직후) 또는 이후 시점에서 사용자에게 프롬프트할 수 있다(예를 들어, 시스템은 사전 결정된 매일 또는 매주 시간에 복수의 발언과 관련된 복수의 프롬프트를 제시할 수 있다).
여전히 블록(335)을 참조하면, 구현에서, 프롬프트는 사용자가 이전에 프롬프트된 횟수가 전송률 제한값(rate limit)을 초과하지 않는다는 결정에 응답하여 추가로 수행될 수 있다. 전송률 제한값이 초과된 경우, 시스템은 프롬프트를 수행하는 것을 피하고 블록(340 내지 350)을 수행하지 않고 블록(305)으로 다시 진행할 수 있다.
여전히 블록(335)을 참조하면, 구현에서, 프롬프트는 착신거부 상태(do not disturb state)가 비활성화(disable)된다는 결정에 응답하여 추가로 수행될 수 있다. 착신거부 상태가 활성화(enable)된 경우, 시스템은 프롬프트를 수행하는 것을 회피하고 블록(340 내지 350)을 수행하지 않고 블록(305)으로 돌아갈 수 있다.
여전히 블록(335)을 참조하면, 구현에서, 프롬프트는 사용자가 사전 결정된 기간 동안 클라이언트 디바이스에 액세스하지 않았다는 결정에 응답하여 추가로 수행될 수 있다. 사용자가 사전 결정된 시간 동안 클라이언트 디바이스에 액세스한 경우, 시스템은 프롬프트를 수행하는 것을 피하고 블록(340 내지 350)을 수행하지 않고 블록(305)으로 돌아갈 수 있다.
블록(340)에서, 시스템은 사용자로부터, 블록(335)으로부터 프롬프트에 대한 응답을 수신한다. 구현에서, 응답은 블록(305)에서 수신된 오디오 데이터에 의해 캡처된 음성 발언이 핫워드를 포함하는지 여부에 대한 사용자로부터의 표시(indication)일 수 있다. 구현에서, 응답은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 수신된 오디오 데이터, 클라이언트 디바이스의 터치스크린을 통해 수신된 터치스크린 입력, 및/또는 키보드, 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿), 및/또는 기타 유형의 입력 디바이스로부터 수신된 입력의 형태일 수 있다.
여전히 블록(340)을 참조하면, 구현에서, 시스템은 블록(340)에서 사용자로부터 응답을 수신할 때 트리거링 이벤트를 기록(log)할 수 있다. 추가적으로, 구현들에서, 시스템은 블록(340)에서 사용자로부터 수신된 응답을 기록할 수 있으며, 이는 또한 무응답(즉, 응답의 결핍)일 수 있다.
블록(345)에서, 시스템은 블록(340)에서 수신된 응답에 기초하여 주 임계값을 조정한다. 구현에서, 예측 출력이 블록(325)에서 주 임계값을 충족하지 못하고 블록(340)에서 응답이 음성 발언이 핫워드를 포함하지 않음을 나타내는 거짓 부정의 경우, 그 응답에 기초하여 주 임계값을 조정하는 것은 주 임계값을 낮추는 것을 포함한다. 구현에서, 예측 출력이 블록(325)에서 주 임계값을 충족하고 블록(340)에서 응답이 음성 발언이 핫워드를 포함하지 않음을 나타내는 거짓 긍정의 경우, 그 응답에 기초하여 주 임계값을 조정하는 것은 주 임계값을 높이는 것을 포함한다.
여전히 블록(345)을 참조하면, 거짓 부정의 비-제한적인 예에서, 블록(310)에서 생성된 예측 출력이 확률이고 그 확률은 블록(315)에서 보조 임계값을 충족하기 위해 0.65보다 커야 하고 블록(325)에서 주 임계값을 충족하고 블록(330)에서 하나 이상의 현재 휴면 자동 어시스턴트 기능을 활성화하기 위해 0.85보다 커야 하며, 예측 확률은 0.80이라고 가정한다. 0.80의 예측 확률에 기초하여, 보조 임계값은 블록(315)에서 충족되지만 주 임계값은 블록(325)에서 충족되지 않으므로 하나 이상의 현재 휴면 자동 어시스턴트 기능은 활성화되지 않는다. 블록(305)에서 수신된 오디오 데이터에 캡처된 음성 발언이 핫워드를 포함하지 않음을 나타내는 응답을 블록(340)에서 수신하는 것에 응답하여, 주 임계값은 블록(310)에서 예측 출력으로서 생성된 확률(예를 들어, 0.80)에 기초하여 블록(345)에서 낮아진다. 다른 비제한적인 예에서, 주 임계값은 블록(345)에서 사전 결정된 양(예를 들어, 0.85 - 0.03 = 0.82) 또는 사전 결정된 백분율(예를 들어, 5%만큼 낮아진 0.85 = 0.8075)만큼 낮아진다.
여전히 블록(345)을 참조하면, 거짓 긍정의 비-제한적인 예에서, 블록(310)에서 생성된 예측 출력이 확률이고 그 확률은 블록(315)에서 보조 임계값을 충족하기 위해 0.65보다 크고 블록(325)에서 주 임계값을 충족하고 블록(330)에서 하나 이상의 현재 휴면 자동화 어시스턴트를 활성화하기 위해 0.85보다 커야 하며, 예측 확률은 0.90이라고 가정한다. 0.90의 예측 확률에 기초하여, 보조 임계값은 블록(315)에서 충족되고 주 임계값은 블록(325)에서 충족되므로 하나 이상의 현재 휴면 자동 어시스턴트 기능이 활성화된다. 블록(305)에서 수신된 오디오 데이터에 캡처된 음성 발언이 핫워드를 포함하지 않는다는 것을 나타내는 응답을 블록(340)에서 수신하는 것에 응답하여, 블록(310)에서 예측 출력으로서 생성된 확률(예를 들어, 0.90)에 기초하여 블록(345)에서 주 임계값이 높아진다. 다른 비-제한적 예에서, 주 임계값은 블록(345)에서 사전 결정된 양(예를 들어, 0.85 + 0.03 = 0.88) 또는 사전 결정된 백분율(예를 들어, 0.85에서 5%만큼 상승 = 0.8925)만큼 증가된다.
블록(350)에서, 시스템은 블록(340)에서 수신된 응답에 기초하여 핫워드 검출 모델을 트레이닝하기 위해 연합 학습을 사용한다. 구현에서, 시스템은 블록(310)에서 생성된 예측 출력을 실측 출력과 비교하는 것에 기초하여 기울기를 생성한다. 일부 구현에서, 실측 출력은 블록(325)에서 이루어진 결정의 수정(정정)을 나타내는 블록(340)에서 수신된 응답에 기초하여 생성된다. 예를 들어, 거짓 부정의 경우, 생성된 예측 출력이 0.80이고 임계값이 0.85이면, 시스템은 1.0의 실측 출력을 생성할 수 있다. 이러한 예에서, 기울기 생성은 0.80의 예측 출력을 1.0의 실측 출력과 비교하는 것에 기초할 수 한다.
여전히 블록(350)을 참조하면, 시스템은 생성된 기울기에 기초하여 온-디바이스 기계 학습 모델의 하나 이상의 가중치를 업데이트하고 및/또는 시스템은 (오디오 데이터, 센서 데이터, 및/또는 블록(340)에서 수신된 응답 중 어느 것도 전송하지 않고) 생성된 기울기를 (예를 들어, 인터넷 또는 기타 광역 네트워크를 통해) 원격 시스템으로 전송한다. 기울기가 원격 시스템으로 전송되면, 원격 시스템은 생성된 기울기 및 추가 클라이언트 디바이스들로부터의 추가 기울기를 활용하여 전역 음성 인식 모델의 전역 가중치를 업데이트한다. 블록(350) 이후에, 시스템은 블록(305)으로 다시 진행한다.
도 4는 임계값을 조정하고, 거짓 긍정에 기초하여 클라이언트 디바이스에서 국부적으로 기울기를 생성하고, 기울기를 원격 서버에 전송하고 및/또는 생성된 기울기를 활용하여 온-디바이스 음성 인식 모델의 가중치를 업데이트하는 예시적인 방법(400)을 나타내는 흐름도를 도시한다. 편의상, 방법(400)의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(400)의 이 시스템은 클라이언트 디바이스의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(400)의 동작들이 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작들이 재정렬되거나 생략되거나 추가될 수 있다.
블록(410)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신한다.
블록(420)에서, 시스템은 기계 학습 모델을 사용하여 블록(410)에서 수신된 오디오 데이터를 처리하여 하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성한다. 기계 학습 모델은 예를 들어 온-디바이스 핫워드 검출 모델 및/또는 기타 기계 학습 모델일 수 있다. 또한, 생성된 출력은 예를 들어 확률 및/또는 다른 가능성(likelihood, 우도) 측정치일 수 있다.
블록(430)에서, 시스템은 블록(420)에서 생성된 예측 출력이 임계값을 만족하는지 여부를 결정한다. 블록(430)의 반복에서, 시스템이 블록(420)에서 생성된 예측 출력이 임계값을 충족하지 않는다고 결정하는 경우, 시스템은 블록(410)으로 다시 진행한다. 반면에, 블록(430)의 반복에서, 시스템이 블록(420)에서 생성된 예측 출력이 임계값을 충족한다고 결정하면, 시스템은 블록(440)으로 진행하여 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 개시한다.
여전히 블록(430)을 참조하면, 일 예에서, 블록(420)에서 생성된 예측 출력은 확률이고 그 확률은 블록(430)에서 임계값을 충족시키기 위해 0.85보다 커야 하며 예측(된) 확률은 0.88이라고 가정한다. 0.85의 임계값을 충족하는 0.88의 예측 확률에 기초하여, 시스템은 블록(440)으로 진행하여 하나 이상의 현재 휴면 자동 어시스턴트 기능을 개시한다. 일부 구현에서, 하나 이상의 자동화 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 자연어 이해(NLU), 인식된 텍스트 및/또는 NLU 출력에 기초한 응답 생성, 원격 서버로의 오디오 데이터 전송 및/또는 원격 서버로의 인식된 텍스트의 전송을 포함한다.
블록(450)에서, 시스템은 사용자로부터, 블록(410)에서 수신된 오디오 데이터에 캡처된 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신한다. 구현에서, 시스템에 의해 수신된 이 표시는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 수신된 오디오 데이터, 클라이언트 디바이스의 터치스크린을 통해 수신된 터치스크린 입력, 및/또는 키보드, 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿) 및/또는 기타 유형의 입력 디바이스로부터 수신된 입력의 형태일 수 있다.
여전히 블록(450)을 참조하면, 구현에서, 시스템은 블록(410)에서 수신된 오디오 데이터에 캡처된 음성 발언에 핫워드가 포함되어 있는지 여부를 나타내도록 사용자에게 프롬프트할 수 있으며, 음성 발언이 핫워드에 포함되어 않지 않다는 표시는 프롬프트에 대한 응답으로서 블록(450)에서 수신된다. 구현에서, 프롬프트는 사용자가 핫워드를 발화했는지 여부를 묻는 오디오 프롬프트(예를 들어, 텍스트-음성 변환 모듈을 사용하여 렌더링됨)의 형태일 수 있다. 다른 구현에서, 프롬프트는 사용자가 핫워드를 발화했는지 여부를 묻는 메시지로서 디스플레이 상에 렌더링될 수 있다. 또 다른 구현에서, 프롬프트들 중 하나 이상은 자동화 어시스턴트 클라이언트(240)(예를 들어, 모바일 디바이스 상에서 실행되는 앱)와 관련된 애플리케이션 또는 웹사이트에 제시될 수 있다. 시스템은 블록(450)에서 발언에 시간적으로 매우 근접(예를 들어, 블록(410, 420, 430 및 440)의 액션을 수행한 직후)하거나 나중의 시점에 사용자에게 프롬프트할 수 있다(예를 들어, 시스템은 사전 결정된 매일 또는 매주 시간에 복수의 발언과 관련된 복수의 프롬프트를 제시할 수 있음).
여전히 블록(450)을 참조하면, 구현에서, 프롬프트하는 것은 사용자가 이전에 프롬프트된 횟수가 전송율 제한값(rate limit)을 초과하지 않는다는 결정에 응답하여 추가로 수행될 수 있다. 전송율 제한값이 초과된 경우, 시스템은 프롬프를 수행하는 것을 피하고 블록(460 및 470)을 수행하지 않고 블록(410)으로 다시 진행할 수 있다.
여전히 블록(450)을 참조하면, 구현에서, 착신거부(do not disturb) 상태가 비활성화된(disabled) 것으로 결정하는 것에 응답하여 프롬프팅이 추가로 수행될 수 있다. 착신거부 상태가 활성화된(enabled) 경우, 시스템은 프롬프트를 수행하는 것을 회피하고 블록(460 및 470)을 수행하지 않고 블록(410)으로 다시 진행할 수 있다.
여전히 블록(450)을 참조하면, 구현에서, 사용자가 사전 결정된 기간 동안 클라이언트 디바이스에 액세스하지 않았다는 결정에 응답하여 프롬프하는 것이 추가로 수행될 수 있다. 사용자가 사전 결정된 시간 동안 클라이언트 디바이스에 액세스한 경우, 시스템은 프롬프트를 수행하는 것을 피하고 블록(460 및 470)을 수행하지 않고 블록(410)으로 돌아갈 수 있다.
여전히 블록(450)을 참조하면, 다른 구현에서, 블록(410)에서 수신된 오디오 데이터에서 캡처된 음성 발언이 핫워드를 포함하지 않는다는 표시는 "아니오(no)", "중지(stop)", "취소(cancel)" 및/또는 블록(430)에서 이루어진 초기 결정과 모순되는 기타 음성 발언을 포함하는 후속 음성 발언을 캡처하는 추가 오디오 데이터이다. 구현에서, 블록(430)에서 이루어진 초기 결정은 예를 들어, 음성 발언과 추가 음성 발언 사이의 지속 기간이 시간 임계값을 충족하는지(예를 들어, 3.0초 이내) 결정하는 것, 초기 확률의 크기가 임계 확률에 대한 확률적 임계값을 충족하는지 결정하는것(예를 들어, 0.85의 0.20 이내), 본 명세서에 기술된 바와 같이 블록(430)에서 초기 결정에 대한 지속 기간 및 초기 확률의 함수, 및 /또는 블록(410)에서 수신된 오디오 데이터에서 캡처된 음성 발언이 핫워드를 포함하지 않는다는 표시인 기타 결정에 기초하여 부정확한(즉, 거짓 긍정) 것으로 분류될 수 있다. 다른 예에서, 추가 사용자 인터페이스 입력이 명시적 자동화 어시스턴트 호출 버튼(예를 들어, 하드웨어 버튼 또는 소프트웨어 버튼)의 작동(actuation), 디바이스의 감지된 "압박(squeeze)"(예를 들어, 디바이스를 적어도 임계량의 힘으로 압박하여 어시스턴트를 호출할 때), 및/또는 어시스턴트의 호출을 취소하는 다른 명시적 입력과 같은, 어시스턴트의 호출을 취소하는 대체 입력이라고 가정하면, 블록(430)에서 이루어진 초기 결정은 예를 들어 음성 발언과 대체 입력 취소 호출사이의 지속 기간이 시간 임계값을 충족하는지(예를 들어, 3.0초 이내) 결정하는 것, 초기 확률의 크기가 임계 확률에 대한 확률적 임계값을 만족하는지(예를 들어, 0.85의 0.20 이내) 결정하는 것, 본 명세서에 기술된 바와 같이 블록(430)에서의 초기 결정에 대한 지속 기간 및 초기 확률의 함수, 및 /또는 블록(410)에서 수신된 오디오 데이터에서 캡처된 음성 발언이 핫워드를 포함하지 않는다는 표시인 다른 결정에 기초하여 부정확한(즉, 거짓 긍정) 것으로 분류될 수 있다. 따라서, 이러한 경우에, 시스템은 블록(430)에서 이루어진 초기 결정이 부정확하다고 결정하는 것에 기초하여 현재 휴면중인 자동화 어시스턴트 기능(들)의 개시 및/또는 현재 활성화된 자동화 어시스턴트 기능(들)의 종료를 억제할 수 있다.
블록(460)에서, 예측 출력이 블록(430)에서 임계값을 충족한다고 결정하는 것 및 블록(450)에서 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 응답하여, 시스템은 임계값을 조정한다. 구현에서, 예측 출력이 블록(430)에서 임계값을 충족하고 블록(450)에서 수신된 표시가 핫워드가 음성 발언을 포함하지 않음을 나타내는 거짓 긍정의 경우, 응답에 기초하여 주 임계값을 조정하는 것은 주 임계값을 높이는 것을 포함한다.
여전히 블록(460)을 참조하면, 거짓 긍정의 비제한적인 예에서, 블록(420)에서 생성된 예측 출력이 확률이고 블록(430)에서 임계값을 충족하고 블록(440)에서 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 활성화하려면 확률이 0.85보다 커야 하며 예측 확률은 0.88이라고 가정한다. 0.88의 예측 확률에 기초하여, 임계값은 블록(430)에서 충족되고 따라서 하나 이상의 현재 휴면 자동화 어시스턴트 기능이 활성화된다. 음성 발언이 핫워드드를 포함하지 않는다는 표시 블록(450)을 수신하는 것에 응답하여, 블록(420)에서 예측 출력으로서 생성된 확률(예를 들어, 0.88)에 기초하여 임계값이 블록(460)에서 증가된다. 다른 비제한적인 예에서, 임계값은 블록(460)에서 사전 결정된 양(예를 들어, 0.85 + 0.03 = 0.88) 또는 사전 결정된 백분율(예를 들어, 0.85에서 5%만큼 0.85 증가 = 0.8925)만큼 상승된다.
블록(470)에서, 시스템은 블록(450)에서 수신된 표시에 기초하여 핫워드 검출 모델을 트레이닝하기 위해 연합 학습을 사용한다. 구현에서, 시스템은 블록(420)에서 생성된 예측 출력을 실측 출력과 비교하는 것에 기초하여 기울기를 생성한다. 일부 구현에서, 실측 출력은 블록(430)에서 이루어진 결정의 수정을 나타내는 블록(450)에서 수신된 표시에 기초하여 생성된다. 예를 들어 거짓 긍정의 경우, 생성된 예측 출력이 0.88이고 임계값이 0.85이면, 시스템은 0.0의 실측 출력을 생성할 수 있다. 이러한 예에서 기울기를 생성하는 것은 0.88의 예측 출력을 0.0의 실측 출력과 비교하는 것에 기초한다.
여전히 블록(470)을 참조하면, 시스템은 생성된 기울기에 기초하여 온-디바이스 기계 학습 모델의 하나 이상의 가중치를 업데이트하고 및/또는 시스템은 (예를 들어, 인터넷 또는 기타 광역 네트워크를 통해) 상기 생성된 기울기를 (오디오 데이터, 센서 데이터, 및/또는 블록(450)에서 수신된 표시 중 어느 것도 전송하지 않고) 원격 시스템으로 전송한다. 기울기가 원격 시스템으로 전송되면, 원격 시스템은 생성된 기울기 및 추가 클라이언트 디바이스로부터의 추가 기울기를 활용하여 전역 음성 인식 모델의 전역 가중치를 업데이트한다. 블록(470) 이후에, 시스템은 블록(410)으로 다시 진행한다.
도 5는 거짓 부정에 기초하여 임계값을 조정하는 예시적인 방법(500)을 나타내는 흐름도를 도시한다. 편의상, 방법(500)의 동작들은 그 동작들을 수행하는 시스템을 참조하여 설명된다. 방법(500)의 이 시스템은 클라이언트 디바이스의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(500)의 동작들은 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작이 재정렬되거나 생략되거나 추가될 수 있다.
블록(505)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1 음성 발언을 캡처하는 제1 오디오 데이터를 수신한다.
블록(510)에서, 시스템은 기계 학습 모델을 사용하여 블록(505)에서 수신된 제1 오디오 데이터를 처리하여 하나 이상의 핫워드가 제1 오디오 데이터에 존재할 확률을 나타내는 제1 예측 출력을 생성한다. 기계 학습 모델은 예를 들어 온-디바이스 핫워드 검출 모델 및/또는 기타 기계 학습 모델일 수 있다. 또한, 생성된 출력은 예를 들어 확률 및/또는 다른 가능성 측정치일 수 있다.
블록(515)에서, 시스템은 블록(510)에서 생성된 제1 예측 출력이 임계값을 충족하는지 여부를 결정한다. 블록(515)의 반복에서 시스템이 블록(510)에서 생성된 제1 예측 출력이 임계값을 충족한다고 결정하는 경우, 시스템은 블록(520)으로 진행한다. 한편, 블록(515)의 반복에서, 시스템이 블록(510)에서 생성된 제1 예측 출력이 임계값을 충족하지 않는다고 결정하는 경우, 시스템은 블록(525)으로 진행한다.
블록(520)에서, 시스템은 사용자가 의도한 대로 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 개시한다.
블록(525)에서, 블록(515)에서 제1 예측 출력이 임계값을 충족하지 않는다는 결정에 응답하여, 시스템은 임계값에 대한 제1 조정을 수행한다. 구현에서, 임계값에 대한 제1 조정을 하는 것은 (예를 들어, 도 3의 블록(315)에 대해 설명된 바와 같이) 임계값을 낮추는 것을 포함하고, 사용자로부터, 블록(505)에서 수신된 제1 오디오 데이터에서 캡처된 제1 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 추가로 응답한다.
블록(530)에서, 블록(525)에서 제1 조정을 수행한 후, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발언을 캡처하는 제2 오디오 데이터를 수신한다.
블록(535)에서, 시스템은 기계 학습 모델을 사용하여 블록(530)에서 수신된 제2 오디오 데이터를 처리하여 하나 이상의 핫워드가 제2 오디오 데이터에 존재할확률을 나타내는 제2 예측 출력을 생성한다.
블록(540)에서, 시스템은 블록(535)에서 생성된 제2 예측 출력이 블록(525)에서 제1 조정에 따라 조정된 임계값을 충족하는지 여부를 결정한다. 블록(540)의 반복에서, 블록(535)에서 생성된 제2 예측 출력이 블록(525)의 제1 조정에 따라 조정된 임계값을 충족한다고 시스템이 결정하는 경우, 시스템은 블록(520)으로 다시 진행한다. 한편, 블록(540)의 반복에서, 시스템은 블록(535)에서 생성된 제2 예측 출력이 블록(525)의 제1 조정에 따라 조정된 임계값을 충족하지 않는다고 결정하고, 시스템은 블록(545)으로 진행한다. .
블록(545)에서, 블록(540)에서 제2 예측 출력이 블록(525)에서 제1 조정에 따라 조정된 임계값을 충족하지 않는다는 결정에 응답하여, 시스템은 임계값에 대한 제2 조정을 한다. 구현에서, 임계값에 대한 제2 조정을 하는 것은 (예를 들어, 도 3의 블록(315)에 대해 설명된 바와 같이) 임계치를 더 낮추는 것을 포함하고, 또한 사용자로부터, 블록(530)에서 수신된 제2 오디오 데이터에서 캡처된 제2 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 더 응답한다.
블록(550)에서, 블록(545)에서 제2 조정을 수행한 후, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제3 음성 발언을 캡처하는 제3 오디오 데이터를 수신한다.
블록(555)에서, 시스템은 기계 학습 모델을 사용하여 블록(550)에서 수신된 제3 오디오 데이터를 처리하여 하나 이상의 핫워드가 제3 오디오 데이터에 존재할 확률을 나타내는 제3 예측 출력을 생성한다.
블록(560)에서, 시스템은 블록(555)에서 생성된 제3 예측 출력이 블록(525)에서의 제1 조정 및 블록(545)에서의 제2 조정에 따라 조정된 임계값을 충족하는지 여부를 결정한다. 블록(560)의 반복에서, 시스템이 블록(555)에서 생성된 제3 예측 출력이 블록(525)에서의 제1 조정 및 블록(545)에서의 제2 조정에 따라 조정된 임계값을 충족하지 않는다고 결정한 경우, 시스템은 블록(565)으로 진행하고 흐름이 종료된다. 한편, 블록(560)의 반복에서, 시스템은 블록(555)에서 생성된 제3 예측 출력이 블록(525)에서의 제1 조정 및 블록(545)에서의 제2 조정에 따라 조정된 임계값을 충족한다고 결정하는 경우, 시스템은 블록(570)으로 진행한다.
블록(570)에서, 시스템은 사용자가 의도한 하나 이상의 현재 휴면 자동화 어시스턴트 기능을 개시한다.
블록(575)에서, 블록(560)에서 제3 예측 출력이 블록(525)에서의 제1 조정 및 블록(545)에서의 제2 조정에 따라 조정된 임계값을 충족한다는 결정에 응답하여, 시스템은 임계값에 대한 제3 조정을 수행한다. 구현에서, 임계값에 대한 제3 조정을 하는 것은 (예를 들어, 도 3의 블록(315)에 대해 설명된 바와 같이) 임계값을 높이는 것을 포함하고, 사용자로부터, 블록(550)에서 수신된 제3 오디오 데이터에서 캡처된 제3 음성 발언에 핫워드가 포함되지 않다는 표시를 수신하는 것에 더 응답한다. 구현에서, 제3 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 응답하여, 시스템은 임의의 현재 활성화된 자동화 어시스턴트 기능(들)을 종료할 수 있다.
방법(300, 400, 500)의 다양한 구현에서, 오디오 데이터, 예측 출력, 프롬프트에 대한 응답, 추가 사용자 인터페이스 입력, 임계값(들) 및/또는 실측 출력은 클라이언트 디바이스에 국부적으로 저장될 수 있다.
또한, 방법(300, 400, 500)의 구현의 일부 버전에서, 기울기를 생성하는 단계, 온-디바이스 기계 학습 모델의 하나 이상의 가중치를 업데이트하는 단계, 및/또는 기울기를 원격 시스템으로 전송하는 단계는 클라이언트 디바이스의 현재 상태가 하나 이상의 조건을 충족한다는 결정에 응답하여 수행된다. 예를 들어, 하나 이상의 조건은 클라이언트 디바이스가 충전 중인 것, 클라이언트 디바이스가 적어도 임계 충전 상태를 갖는 것, 및/또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않음을 포함한다. 더욱이, 방법(300, 400, 500)의 구현의 일부 추가 또는 대체 버전에서, 기울기를 생성하는 단계, 온-디바이스 기계 학습 모델의 하나 이상의 가중치를 업데이트하는 단계, 및/또는 기울기를 원격 시스템으로 전송하는 단계는 실시간으로 수행된다. 이러한 방식 및 기타 방식으로, 임계값 및 온-디바이스 기계 학습 모델을 신속하게 조정하여 거짓 부정 및/또는 거짓 긍정의 발생을 완화할 수 있다. 더 나아가, 이것은 음성 발언을 캡처하는 음성 데이터를 처리하는 온-디바이스 기계 학습 모델의 경우 톤, 억양, 악센트 및/또는 기타 음성 특성(들)과 같은 클라이언트 디바이스의 사용자(들) 속성(들)에 대한 온-디바이스 기계 학습 모델의 성능 향상을 가능하게 한다.
도 6은 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(610)의 블록도이다. 일부 구현에서, 클라이언트 디바이스, 클라우드 기반 자동화 어시스턴트 컴포넌트(들) 및/또는 기타 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 디바이스(610)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(610)는 일반적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 디바이스는 예를 들어 메모리 서브시스템(625) 및 파일 저장 서브시스템(626), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622), 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장(storage) 서브시스템(624)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(610)와의 사용자 상호작용을 허용한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 디바이스의 대응하는 인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템, 마이크 및/또는 기타 유형의 입력 디바이스와 같은 오디오 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스 및 정보를 컴퓨팅 디바이스(610) 또는 통신 네트워크에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수도 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 1a 및 도 1b에 도시된 다양한 컴포넌트를 구현하는 것 뿐만 아니라 본 명세서에 개시된 방법의 선택된 양태를 수행하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(624)에 포함된 메모리 서브시스템(625)은 프로그램 실행 동안 명령 및 데이터의 저장을 위한 주 랜덤 액세스 메모리(RAM)(630) 및 고정 명령이 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장을 제공할 수 있고, 하드 디스크 드라이브, 관련 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브, 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 파일 저장 서브시스템(626)에 의해 저장 서브시스템(624) 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 디바이스(610)의 다양한 컴포넌트 및 서브시스템이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 디바이스(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨팅 디바이스(610)에 대한 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 디바이스(610)의 많은 다른 구성은 도 6에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트를 가질 수 있다.
본 명세서에 설명된 시스템이 사용자에 관한 개인 정보를 수집 또는 모니터링하거나 개인 및/또는 모니터링되는 정보를 사용할 수 있는 상황에서, 사용자에게는 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 관한 정보)를 수집하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠를 컨텐츠 서버로부터 수신할지 여부 및/또는 방법을 제어할 기회가 제공될 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 처리되거나 사용자의 지리적 위치는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치 정보를 얻은 곳에서 일반화할 수 있다(예를 들어, 도시, 우편 번호 또는 주 수준). 따라서, 사용자는 사용자에 대한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
여러 구현이 본 명세서에서 설명되고 예시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 명세서에 설명된 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 활용될 수 있으며, 이러한 변형 및/또는 수정 각각은 본 명세서에 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성은 그 교시가 사용되는 특정 애플리케이션 또는 애플리케이션들에 의존할 것임을 의미한다. 당업자는 일상적인 실험을 사용하여 본 명세서에 설명된 특정 구현에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현은 단지 예로서 제시되고 첨부된 청구범위 및 그에 대한 등가물의 범위 내에서 구현이 구체적으로 설명되고 청구된 것과 다르게 실행될 수 있음을 이해해야 한다. 본 개시의 구현은 본 명세서에 기재된 각각의 개별 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 두 가지 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 조합은 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 상호 모순되지 않는 경우 본 개시의 범위 내에 포함된다.

Claims (24)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신하는 단계와;
    하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 오디오 데이터를 처리하는 단계와;
    예측 출력이 주(primary) 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 덜 나타내는 보조(secondary) 임계값을 충족하는지 결정하는 단계와;
    예측 출력이 보조 임계값을 충족한다는 결정에 응답하여, 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트하는 단계와;
    사용자로부터 프롬프에 대한 응답을 수신하는 단계와; 그리고
    응답에 기초하여 주 임계값을 조정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서,
    예측 출력이 주 임계값을 충족하는 것에 응답하여 자동화 어시스턴트 기능을 개시하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 기계 학습 모델은 핫워드 검출 모델이고, 그리고
    응답에 기초하여 핫워드 검출 모델을 트레이닝하기 위해 연합 학습을 사용하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 선행하는 항들 중 어느 하나에 있어서,
    상기 예측 출력은 주 임계값을 충족하지 않고;
    상기 응답은 음성 발언이 핫워드를 포함하지 않음을 나타내고; 그리고
    상기 응답에 기초하여 주 임계값을 조정하는 단계는 주 임계값을 낮추는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 선행하는 항들 중 어느 하나에 있어서,
    상기 예측 출력은 주 임계값을 충족하고;
    상기 응답은 음성 발언이 핫워드를 포함하지 않음을 나타내고; 그리고
    상기 응답에 기초하여 주 임계값을 조정하는 단계는 주 임계값을 높이는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 선행하는 항들 중 어느 하나에 있어서,
    상기 프롬프트하는 단계는,
    사용자가 이전에 프롬프트된 횟수가 전송률 제한값(rate limit)을 초과하지 않는다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 선행하는 항들 중 어느 하나에 있어서,
    상기 프롬프트하는 단계는,
    착신거부 상태(do not disturb state)가 비활성화되었다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 선행하는 항들 중 어느 하나에 있어서,
    상기 프롬프하는 단계는,
    사용자가 사전 결정된 기간 동안 클라이언트 디바이스에 액세스하지 않았다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 음성 발언을 캡처하는 오디오 데이터를 수신하는 단계와;
    하나 이상의 핫워드가 오디오 데이터에 존재할 확률을 나타내는 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 오디오 데이터를 처리하는 단계와;
    예측 출력이 임계값을 충족하는지 결정하는 단계와;
    사용자로부터, 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 단계와; 그리고
    예측 출력이 임계값을 충족한다고 결정하고 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 응답하여, 임계값을 조정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 제9항에 있어서,
    예측 출력이 임계값을 충족한다는 결정에 응답하여, 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하기 전에 자동화 어시스턴트 기능을 개시하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 기계 학습 모델은 핫워드 검출 모델이고, 그리고
    프로그램 명령어는 음성 발언이 핫워드를 포함하지 않는다는 표시에 기초하여 핫워드 검출 모델을 트레이닝하도록 추가로 실행 가능한 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 임계값을 조정하는 단계는,
    임계값을 높이는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 음성 발언이 핫워드를 포함하는지 여부를 표시하도록 사용자에게 프롬프트하는 단계를 더 포함하고, 상기 음성 발언이 핫워드를 포함하지 않는다는 표시는 프롬프트에 대한 응답으로서 수신되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  14. 제13항에 있어서,
    상기 프롬프트하는 단계는,
    사용자가 이전에 프롬프트된 횟수가 전송률 제한값을 초과하지 않는다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  15. 제13항에 있어서,
    상기 프롬프트하는 단계는,
    착신거부 상태가 비활성화되었다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  16. 제13항에 있어서,
    상기 프롬프트하는 단계는,
    사용자가 사전 결정된 기간 동안 클라이언트 디바이스에 액세스하지 않았다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  17. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1 음성 발언을 캡처하는 제1 오디오 데이터를 수신하는 단계와;
    하나 이상의 핫워드가 제1 오디오 데이터에 존재할 확률을 나타내는 제1 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제1 오디오 데이터를 처리하는 단계와;
    제1 예측 출력이 임계값을 충족하지 않는다고 결정하는 단계와;
    제1 예측 출력이 임계값을 충족하지 않는다는 결정에 응답하여, 임계값에 대한 제1 조정을 수행하는 단계와;
    제1 조정을 수행하는 것에 후속하여:
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발언을 캡처하는 제2 오디오 데이터를 수신하는 단계와;
    하나 이상의 핫워드가 제2 오디오 데이터에 존재할 확률을 나타내는 제2 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제2 오디오 데이터를 처리하는 단계와;
    제2 예측 출력이 제1 조정에 따라 조정된 임계값을 충족하지 않는다고 결정하는 단계와; 그리고
    제2 예측 출력이 제1 조정에 따라 조정된 임계값을 충족하지 않는다는 결정에 응답하여, 임계값에 대한 제2 조정을 수행하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  18. 제17항에 있어서,
    상기 임계값에 대한 제1 조정을 수행하는 단계는,
    임계값을 낮추는 단계를 포함하고, 사용자로부터 제1 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 추가로 응답하고; 그리고
    상기 임계값에 대한 제2 조정을 수행하는 단계는,
    임계값을 더 낮추는 단계를 포함하고, 사용자로부터 제2 음성 발언이 핫워드를 포함한다는 표시를 수신하는 것에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  19. 제18항에 있어서,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제3 음성 발언을 캡처하는 제3 오디오 데이터를 수신하는 단계와;
    하나 이상의 핫워드가 제3 오디오 데이터에 존재할 확률을 나타내는 제3 예측 출력을 생성하기 위해 기계 학습 모델을 사용하여 제3 오디오 데이터를 처리하는 단계와;
    제3 예측 출력이 제1 조정 및 제2 조정에 따라 조정된 임계값을 충족하는지 결정하는 단계와; 그리고
    제3 예측 출력이 제1 조정 및 제2 조정에 따라 조정된 임계값을 충족한다는결정에 응답하여, 임계값에 대한 제3 조정을 수행하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  20. 제19항에 있어서,
    상기 임계값에 대한 제3 조정을 수행하는 단계는,
    임계값을 높이는 단계를 포함하고, 사용자로부터 제3 음성 발언이 핫워드를 포함하지 않는다는 표시를 수신하는 것에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  21. 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 제1항 내지 제20항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램 제품.
  22. 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 제1항 내지 제20항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.
  23. 제1항 내지 제20항 중 어느 한 항의 방법을 수행하기 위한 하나 이상의 프로세서를 포함하는 클라이언트 디바이스.
  24. 프로세서, 컴퓨터 판독 가능 메모리, 하나 이상의 컴퓨터 판독 가능 저장 매체, 및 하나 이상의 컴퓨터 판독 가능 저장 매체에 집합적으로 저장된 프로그램 명령어를 포함하는 시스템으로서, 프로그램 명령어는 제1항 내지 제20항 중 어느 한 항의 방법을 수행하도록 실행 가능한 것을 특징으로 하는 시스템.
KR1020227039155A 2020-09-03 2020-12-15 핫워드/키워드 검출을 위한 사용자 중재 KR20220166848A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/011,612 US11521604B2 (en) 2020-09-03 2020-09-03 User mediation for hotword/keyword detection
US17/011,612 2020-09-03
PCT/US2020/065053 WO2022050973A1 (en) 2020-09-03 2020-12-15 User mediation for hotword/keyword detection

Publications (1)

Publication Number Publication Date
KR20220166848A true KR20220166848A (ko) 2022-12-19

Family

ID=74186828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227039155A KR20220166848A (ko) 2020-09-03 2020-12-15 핫워드/키워드 검출을 위한 사용자 중재

Country Status (7)

Country Link
US (2) US11521604B2 (ko)
EP (1) EP4118644A1 (ko)
JP (1) JP2023530048A (ko)
KR (1) KR20220166848A (ko)
CN (1) CN115552515A (ko)
AU (2) AU2020466345B2 (ko)
WO (1) WO2022050973A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220088926A (ko) * 2019-11-08 2022-06-28 구글 엘엘씨 온-디바이스 기계 학습 모델 트레이닝을 위한 자동화된 어시스턴트 기능의 수정 사용
US11948569B2 (en) * 2021-07-05 2024-04-02 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11770268B2 (en) * 2022-02-14 2023-09-26 Intel Corporation Enhanced notifications for online collaboration applications
US20230395071A1 (en) * 2022-06-01 2023-12-07 Google Llc Biasing speech processing based on audibly rendered content, including dynamically adapting over duration of rendering
WO2024035424A1 (en) * 2022-08-08 2024-02-15 Google Llc Dynamically determining whether to perform candidate automated assistant action determined from spoken utterance

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7027842B2 (en) * 2002-09-24 2006-04-11 Bellsouth Intellectual Property Corporation Apparatus and method for providing hands-free operation of a device
KR100556365B1 (ko) 2003-07-07 2006-03-03 엘지전자 주식회사 음성 인식장치 및 방법
US9536528B2 (en) * 2012-07-03 2017-01-03 Google Inc. Determining hotword suitability
US9384738B2 (en) 2014-06-24 2016-07-05 Google Inc. Dynamic threshold for speaker verification
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
EP3647936B1 (en) * 2018-11-01 2024-02-21 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11232788B2 (en) 2018-12-10 2022-01-25 Amazon Technologies, Inc. Wakeword detection
EP4047506A1 (en) * 2019-10-16 2022-08-24 Sigma Technologies, S.L.U. Method and system to automatically train a chatbot using domain conversations
KR20220088926A (ko) * 2019-11-08 2022-06-28 구글 엘엘씨 온-디바이스 기계 학습 모델 트레이닝을 위한 자동화된 어시스턴트 기능의 수정 사용

Also Published As

Publication number Publication date
CN115552515A (zh) 2022-12-30
AU2020466345B2 (en) 2023-11-02
EP4118644A1 (en) 2023-01-18
US11521604B2 (en) 2022-12-06
US20230101572A1 (en) 2023-03-30
US20220068268A1 (en) 2022-03-03
WO2022050973A1 (en) 2022-03-10
JP2023530048A (ja) 2023-07-13
AU2020466345A1 (en) 2022-11-03
AU2024200652A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
KR20220166848A (ko) 핫워드/키워드 검출을 위한 사용자 중재
US11741953B2 (en) Using corrections, of automated assistant functions, for training of on-device machine learning models
US11972766B2 (en) Detecting and suppressing commands in media that may trigger another automated assistant
US20240055002A1 (en) Detecting near matches to a hotword or phrase
US20240021207A1 (en) Multi-factor audio watermarking
US20230169980A1 (en) Detecting and handling failures in other assistants