KR20230005966A - 거의 일치하는 핫워드 또는 구문 검출 - Google Patents

거의 일치하는 핫워드 또는 구문 검출 Download PDF

Info

Publication number
KR20230005966A
KR20230005966A KR1020227042196A KR20227042196A KR20230005966A KR 20230005966 A KR20230005966 A KR 20230005966A KR 1020227042196 A KR1020227042196 A KR 1020227042196A KR 20227042196 A KR20227042196 A KR 20227042196A KR 20230005966 A KR20230005966 A KR 20230005966A
Authority
KR
South Korea
Prior art keywords
hotword
audio data
threshold
block
failed
Prior art date
Application number
KR1020227042196A
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 KR20230005966A publication Critical patent/KR20230005966A/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/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
    • 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/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • 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/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • 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)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

실패한 핫워드 시도를 식별하기 위한 기술이 본 명세서에 개시된다. 방법은: 제1 오디오 데이터를 수신하는 단계; 제1 예측 출력을 생성하기 위해 제1 오디오 데이터를 프로세싱하는 단계; 제1 예측 출력이 2차 임계값을 만족하지만 1차 임계값을 만족하지 않는다고 결정하는 단계; 제2 오디오 데이터를 수신하는 단계; 제2 예측 출력을 생성하기 위해 상기 제2 오디오 데이터를 프로세싱하는 단계; 제2 예측 출력이 2차 임계값을 만족하지만 1차 임계값을 만족하지 않는다고 결정하는 단계; 제1 예측 출력 및 제2 예측 출력이 2차 임계값은 만족하지만 1차 임계값은 만족하지 않는 것에 응답하여, 그리고 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 실패한 핫워드 시도를 식별하는 단계; 실패한 핫워드 시도를 식별하는 것에 응답하여 실패한 핫워드 시도에 응답하는 힌트를 제공하는 단계를 포함한다.

Description

거의 일치하는 핫워드 또는 구문 검출
사람은 본 명세서에서 "자동화된 어시스턴트" ("디지털 에이전트", "인터랙티브 퍼스널 어시스턴트", "지능형 퍼스널 어시스턴트", "어시스턴트 애플리케이션", "대화 에이전트” 등으로도 지칭됨)로 지칭되는 대화형 소프트웨어 어플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 사람(자동화된 어시스턴트와 상호작용할 때 "사용자"라고 부를 수 있음)은 일부의 경우 텍스트로 변환된 다음 프로세싱될 수 있는 발화된 자연어 입력(즉, 발언)을 사용하여 텍스트(예를 들어, 타이핑된) 자연어 입력을 제공함으로써, 그리고/또는 터치 및/또는 발화 없는 물리적 움직임(예: 손 제스처(들), 시선 응시, 얼굴 움직임 등)을 통해서 자동화된 어시스턴트에 명령 및/요청을 제공할 수 있다. 자동화된 어시스턴트는 응답 사용자 인터페이스 출력(예: 가청 및/또는 시각적 사용자 인터페이스 출력)을 제공하고, 하나 이상의 스마트 디바이스를 제어하고, 그리고/또는 자동화된 어시스턴트를 구현하는 디바이스의 하나 이상의 기능(들), 예를 들어 디바이스의 다른 애플리케이션(들) 제어함으로써 요청에 응답한다.
상기 언급된 바와 같이, 많은 자동화된 어시스턴트는 음성 발화를 통해 상호작용하도록 구성된다. 사용자 개인정보를 보호하고 리소스를 보존하기 위해, 자동화된 어시스턴트는 (적어도 부분적으로는) 자동화된 어시스턴트를 구현하는 클라이언트 디바이스의 마이크로폰(들)을 통해 감지된 오디오 데이터에 포함된 모든 음성발화를 기반으로 하나 이상의 자동화된 어시스턴트 기능을 수행하지 않는다. 오히려, 음성 발화에 기초한 특정 프로세싱은 특정 조건(들)이 존재한다는 결정에 대한 응답으로만 발생한다.
예를 들어, 자동화된 어시스턴트를 포함 및/또는 인터페이스하는 많은 클라이언트 디바이스는 핫워드 검출 모델을 포함한다. 이러한 클라이언트 디바이스의 마이크로폰이 비활성화되지 않은 경우, 클라이언트 디바이스는 핫워드 검출 모델을 사용하여 마이크로폰(들)을 통해 검출된 오디오 데이터를 계속적으로 프로세싱하여, 하나 이상의 핫워드(다수 단어 문구 포함))("Hey Assistant", "OK Assistant" 및/또는 "Assistant"와 같은)가 존재하는지 여부를 표시하는 예측된 출력을 생성한다. 예측된 출력이 핫워드가 존재한다고 표시하면, 임계 시간 내에서 뒤따르는(및 선택적으로 음성 활동을 포함하는 것으로 결정된) 모든 오디오 데이터는 음성 인식 컴포넌트(들), 음성 활동 검출 컴포넌트(들) 등과 같은 하나 이상의 온-디바이스 및/또는 원격 자동화된 어시스턴트 컴포넌트에 의해 프로세싱될 수 있다. 또한, (음성 인식 컴포넌트(들)로부터) 인식된 텍스트는 자연어 이해 엔진(들)을 사용하여 프로세싱될 수 있고, 그리고/또는 액션(들)은 자연어 이해 엔진 출력에 기초하여 수행될 수 있다. 액션(들)은 예를 들어, 응답을 생성 및 제공하고 그리고/또는 하나 이상의 애플리케이션(들) 및/또는 스마트디바이스(들)를 제어하는 것을 포함할 수 있다. 다른 핫워드(예: "아니오", "중지", "취소", "볼륨 크게", "볼륨 작게", "다음 트랙", "이전 트랙" 등)은 다양한 명령에 매핑될 수 있으며, 예측된 출력이 이러한 핫워드 중 하나가 존재함을 나타내면 매핑된 명령이 클라이언트 디바이스에 의해 프로세싱될 수 있다. 그러나, 예측된 출력이 핫워드가 존재하지 않는다고 표시하는 경우, 대응 오디오 데이터는 추가 프로세싱 없이 폐기되어 리소스와 사용자 개인 정보를 보호한다.
위에서 언급된 및/또는 다른 기계 학습 모델(예를 들어, 아래에서 설명된 추가 기계 학습 모델)은 자동화된 어시스턴트 기능(들)이 활성화되었는지 여부를 예측된 출력이 지시하는 많은 상황에서 잘 수행된다. 그러나, 특정 상황에서, 자동화된 어시스턴트는 요청을 인식하지 못하거나 그리고/또는 요청에 대한 응답에 실패할 수 있다. 예를 들어, 사용자가 핫워드를 모르거나, 기억하지 못하거나, 잘못 기억하는 경우 사용자의 발화는 실패한 핫워드 시도를 구성할 수 있고, 이러한 경우 자동화된 어시스턴트는 실패한 핫워드 시도를 인식하지 못하거나 또는 응답에 실패할 수 있다.
일부 경우에, 자동화된 어시스턴트는 상이한 컨텍스트(예, 시간)에서 또는 실행 중인 애플리케이션(예 포그라운드 애플리케이션)에 기초하여 서로 다른 핫워드 세트를 인식할 수 있다. 예를 들어 음원 애플리케이션이 현재 음원 재생 중인 경우, 자동화된 어시스턴트는 " 음원 일시 정지(pause music)", "볼륨 크게(volume up)" 및 "볼륨 작게("volume down)"와 같은 추가 핫워드를 인식할 수 있다. 그러나 서로 다른 시간에 사용할 수 있는 서로 다른 핫워드 세트(예: "good morning"은 아침에만 활성화될 수 있음)는 사용자에게 혼란을 줄 수 있다. 특정 컨텍스트에서 사용자가 어떤 핫워드를 사용할지를 모르거나, 이를 기억하지 못하는 경우 또는 핫워드를 잘못 기억하는 경우, 사용자의 발언은 실패한 핫워드 시도를 구성할 수 있다. 이러한 경우, 자동화된 어시스턴트는 실패한 핫워드 시도를 인식하지 못하거나 또는 응답에 실패할 수 있다. 예를 들어, 사용자가 "volume up" 대신 "volume increase" 또는 "loudness up"이라고 말하면 자동화된 어시스턴트가 이 요청을 인식하고 응답하지 않을 수 있다.
사용자가 핫워드를 모르거나, 기억하지 못하거나, 잘못 기억하여 자동화된 어시스턴트가 요청을 인식하고 응답하지 않는 상황에서, 자동화된 어시스턴트는 사용자에게 피드백을 제공하지 않을 수 있다. 결과적으로, 사용자는 자동화된 어시스턴트가 사용자의 발화를 인식하지 못했는지 또는 사용자의 발화가 지원되지 않는 단어나 구를 포함했는지(예를 들어, 잠재적으로 사용자가 지원되는 핫워드(들)를 알지 못하거나, 기억하지 못하거나, 잘못 기억하여 핫워드가 아닌 단어나 구를 포함했는지) 여부를 결정하기 어려울 수 있다. 사용자의 발화에 지원되지 않는 단어나 구가 포함된 경우, 사용자는 자동화된 어시스턴트가 사용자의 발화를 인식하지 못한다고 잘못 인식할 수 있고, 그에 따라 하나 이상의 후속 발화나 짧은 연속 발언에서 지원되지 않는 동일 단어나 구를 반복할 수 있다. 그러나, 이 경우 지원되는 핫워드를 포함하지 않고 지원되지 않는 같은 단어나 구의 반복만을 포함하므로, 자동화된 어시스턴트는 후속 발화에 응답하지 못할 수 있다.
실패한 핫워드 시도가 발생하면 사람과 자동화된 어시스턴트 간의 상호작용이 길어질 수 있고, 자동화된 어시스턴트 기능을 활성화하기 위해 최초 의도했던 발화를 반복(및/또는 다른 액션(들)을 수행)하도록 강요할 수 있다. 또한, 실패한 핫워드 시도가 발생하면 네트워크 및/또는 계산 리소스가 낭비될 수 있다.
본 명세서에 개시된 일부 구현예는 실패한 핫워드 시도의 자동 식별을 통해 기계 학습 모델(들)의 성능을 개선하는 것에 관한 것이다. 본 명세서에서 더 자세히 설명되는 바와 같이, 이러한 기계 학습 모델은 예를 들어 핫워드 검출 모델 및/또는 다른 기계 학습 모델을 포함할 수 있다. 다양한 구현예는 사용자가 핫워드를 트리거하려고 시도하지만 실패한 상황(즉, 실패한 핫워드 시도)을 감지한다. 이러한 상황을 감지하면 시스템은 사용 가능한 핫워드에 대한 힌트를 사용자에게 제공할 수 있다. 다른 구현예에서, 시스템은 사용 가능한 핫워드(들)에 사용자가 선호하는 단어 또는 구를 추가하도록 조정할 수 있다.
일부 구현예에서, 시스템은 핫워드와 거의 일치하는 것을 검출할 수 있다. 예를 들어, 자동화된 어시스턴트는 "볼륨 크게", "볼륨 작게", "다음 트랙" 및 "이전 트랙"을 비롯한 다양한 특정 미디어 재생 명령을 지원할 수 있다. 사용자는 이러한 명령 중 하나를 잘못 기억하여 "이전 트랙" 대신 "이전 노래"라고 말할 수 있다. 기존 시스템은 무엇이 잘못되었는지 또는 올바른 문구가 무엇인지에 대한 피드백을 제공하지 않을 수 있다. 다양한 구현예는 하나 이상의 지원되는 핫워드와 관련하여 사용자에게 힌트를 제공함으로써 사용자가 특정 시점에 어떤 구를 말할 수 있는지 명확하지 않을 수 있는 이러한 어휘 문제를 해결할 수 있다. 또한, 구현예는 사용자 지정 핫워드를 훈련하는 메커니즘을 사용자에게 제공할 수 있다.
일부 구현예에서, 시스템은 일련의 약한(weak) 핫워드 모델 트리거를 검출할 수 있다. 예를 들어, 사용자가 지원되는 핫워드를 말하면 핫워드 감지 모델은 그 핫워드에 대해 높은 신뢰도 검출을 나타내는 예측 출력을 생성할 수 있다. 사용자가 핫워드의 변형 또는 거의 일치하게 발화한 경우, 핫워드 감지 모델은 그 핫워드(예: 핫워드와 음향적으로 유사하지만 지원되는 핫워드가 아닌 단어 또는 구)에 중간 신뢰도 검출, 예를 들어, 기준 수준보다 높지만 사용자가 지원되는 핫워드를 말할 때의 높은 신뢰도 예측 출력보다 낮은 신뢰도 수준을 나타내는 예측 출력을 생성할 수 있다. 이 경우 중간 신뢰도 검출은 시스템이 핫워드가 발화되었다고 판단할 만큼 충분히 높지 않을 수 있다. 예를 들어, 신뢰도 수준이 기본 임계값보다 낮을 수 있다. 구현 예에서, 시스템은 거의 일치하는 유사 트리거들을 연속하여 찾고 이러한 유사 트리거들을 기반으로 실패한 핫워드 시도를 자동으로 식별한다. 따라서, 이는 자동화된 어시스턴트가 거의 일치하는 트리거에 대해 응답하도록 허용하고, 자동화된 어시스턴트에서 프로세싱 및 전력 사용량을 줄이고, 사용자가 이해하기 위해 시도해야 하는 횟수를 줄임으로써 성능과 유연성을 향상시킬 수 있다. 예를 들어, 구현예에서 자동화된 어시스턴트는 지원되는 핫워드에서 약간의 음향 변형된 명령에 대해 응답할 수 있다.
일부 구현예에서, 실패한 핫워드 시도가 식별될 때, 클라이언트 디바이스에서 로컬적으로 예측된 출력과 실제 출력(예를 들어, 임계값을 만족하는 실제 출력)의 비교에 기초하여 기울기 세트를 생성한다. 일부 구현예에서, 생성된 기울기는 생성된 기울기 기초하여 기계 학습 모델의 하나 이상의 가중치를 업데이트하기 위해 클라이언트 디바이스의 하나 이상의 프로세서(들)에 의해 사용된다. 예를 들어, 역전파(backpropagation) 및/또는 다른 기법(들) 은 기울기에 기초하여 가중치를 업데이트하는데 사용될 수 있다. 이러한 방식으로, 시스템은 사용 가능한 핫워드에 사용자가 선호하는 단어나 구를 추가하여 적응할 수 있다. 이는 클라이언트 디바이스에 로컬적으로 저장된 기계 학습 모델의 성능을 향상시켜, 기계 학습 모델을 사용하여 생성된 예측 출력을 기반으로 실패한 핫워드 시도의 발생을 완화할 수 있다.
일부 구현예에서, 생성된 기울기는 추가로 또는 대안적으로 클라이언트 디바이스에 의해, 네트워크를 통해 원격 시스템에 전송된다. 이러한 구현예에서, 원격 시스템은 상기 생성된 기울기 및 추가 클라이언트 디바이스로부터의 추가 기울기를 활용하여, 대응하는 글로벌 기계 학습 모델의 글로벌 가중치를 업데이트한다. 추가 클라이언트 디바이스로부터 추가 기울기는 대응하는 추가 클라이언트 디바이스에서 로컬적으로 유사하게 생성될 수 있다. 다양한 구현예에서, 클라이언트 디바이스는 예측된 출력을 생성하기 위해 활용되었던 데이터(예를 들어, 오디오 데이터 및/또는 다른 센서 데이터) 중 어느 것도 전송하지 않고, 그리고 실패한 핫워드 시도를 식별하는데 활용되었던 데이터(예: 추가사용자 인터페이스 입력) 중 어느 것도 전송하지 않고, 생성된 기울기를 전송한다. 원격 시스템은 이러한 데이터를 참조하거나 사용하지 않고 글로벌 모델을 업데이트할 때 생성된 기울기를 사용할 수 있다. 기울기만 전송하는 것은 예측된 출력을 생성하고, 실패한 핫워드 시도를 식별하기 위해 사용되는 더 큰 데이터 크기의 데이터를 전송하는 것보다 적은 네트워크 리소스를 사용한다. 또한, 예측 출력을 생성하고, 실패한 핫워드 시도를 식별하는데 활용된 데이터가 기울기에서 도출될 수 없기 때문에, 기울기의 전송은 개인 데이터의 프라이버시 및 보안을 보호한다. 일부 구현예에서, 이러한 데이터가 기울기로부터 도출될 수 없음을 추가로 보장하기 위해 하나 이상의 차등 프라이버시 기법(예를 들어, 가우시안 노이즈 추가)이 활용될 수 있다.
원격 시스템이 음성 인식 모델의 글로벌 가중치를 업데이트하는 구현예에서, 그 후 원격 시스템은 업데이트된 글로벌 가중치를 클라이언트 디바이스에 제공하여, 클라이언트 디바이스가 그들의 온-디바이스 기계 학습 모델의 가중치를 업데이트된 글로벌 가중치로 교체하게 할 수 있다. 일부 구현예에서, 원격 시스템은 추가적으로 또는 대안적으로 업데이트된 기계 학습 모델을 클라이언트 디바이스에 제공하여, 클라이언트 디바이스들이 그들의 온-디바이스 기계 학습 모델들을 업데이트된 글로벌 기계 학습 모델로 교체하게 할 수 있다. 따라서 업데이트된 글로벌 가중치 또는 업데이트된 글로벌 기계 학습 모델을 활용하여 온-디바이스 성능이 향상된다.
다양한 구현예에서, 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제1 음성 발화를 캡처하는 제1오디오 데이터가 수신될 수 있다; 상기 제1 오디오 데이터는 제1 오디오 데이터에 존재하는 하나 이상의 핫워드의 확률을 나타내는 제1 예측 출력을 생성하기 위해 하나 이상의 기계 학습 모델을 사용하여 프로세싱될 수 있고; 상기 제1 예측 출력은 1차 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 더 적게 나타내는 2차 임계값은 충족하지만 1차 임계값은 만족하지 않는 것으로 결정될 수 있다; 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제2 음성 발화를 캡처하는 제2 오디오 데이터가 수신될 수 있다; 상기 제2 오디오 데이터는 제2 오디오 데이터에 존재하는 하나 이상의 핫워드의 확률을 나타내는 제2 예측 출력을 생성하기 위해 하나 이상의 기계 학습 모델을 사용하여 프로세싱될 수 있고; 상기 제2 예측 출력은 2차 임계값을 만족하지만 1차 임계값을 만족하지 않는 것으로 결정될 수 있고; 상기 제1 예측 출력 및 제2 예측 출력이 2차 임계값은 만족하지만 1차 임계값은 만족하지 않는 것에 응답하여, 그리고 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 실패한 핫워드 시도가 식별될 수 있고; 실패한 핫워드 시도를 식별하는 것에 응답하여, 실패한 핫워드 시도에 응답하는 힌트가 제공될 수 있다.
일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 음성 발화와 제2 음성 발화 사이의 유사성이 유사성 임계치를 초과한다는 결정에 추가로 응답할 수 있다. 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 예측 출력에 의해 표시된 확률 및 제2 예측 출력에 의해 표시된 확률이 하나 이상의 핫워드 중 동일한 핫워드에 대응한다는 결정에 추가로 응답할 수 있다. 일부 구현예에서, 제1 오디오 데이터 및 제2 오디오 데이터가 명령을 포함하는지를 결정하기 위해 음향 특징에 조건화된 모델이 사용될 수 있고, 실패한 핫워드 시도를 식별하는 것은 그 명령을 포함하는 제1 오디오 데이터 및 제2 오디오 데이터에 추가로 응답할 수 있다.
일부 구현예에서, 실패한 핫워드 시도에 대응하는 의도된 핫워드가 결정될 수 있다. 일부 구현예에서, 의도된 핫워드는 제1 오디오 데이터의 적어도 일부, 제2 오디오 데이터의 적어도 일부, 및 의도된 핫워드 사이의 음향 유사성에 기초하여 결정될 수 있다. 이는 암묵적 음향 유사성(예: 핫워드 모델의 확률을 통해 획득됨)일 수 있다. 일부 구현예에서, 힌트를 제공하는 것은 클라이언트 디바이스의 디스플레이에 의도된 핫워드를 표시하는 것 또는 클라이언트 디바이스에 의해, 의도된 핫워드를 포함하는 오디오 응답을 제공하는 것을 포함할 수 있다. 일부 구현예에서, 의도된 핫워드에 대응하는 액션이 수행될 수 있다.
일부 추가적 또는 대안적 구현예에서, 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1음성 발화를 캡처하는 제1오디오 데이터가 수신될 수 있다. 제1 오디오 데이터는 기계 학습 모델의 복수의 클래스 각각을 사용하여 프로세싱되어 제1 오디오 데이터와 연관된 대응 확률을 생성할 수 있고, 클래스 각각은 복수의 핫워드 중 대응하는 핫워드와 연관되고, 각각의 대응 확률은 제1 오디오 데이터에 존재하는 대응하는 핫워드의 확률과 연관된다; 복수의 핫워드 중 하나가 제1 오디오 데이터에 존재할 확률이 2차 임계값을 만족시키지만 1차 임계값을 만족시키지 않는 것으로 결정하고, 이때 상기 2차 임계값은 상기 1차 임계값 보다 오디오 데이터에 존재하는 복수의 핫워드 중 하나를 덜 나타내고; 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2음성 발화를 캡처하는 제2오디오 데이터가 수신될 수 있고; 상기 제2 오디오 데이터는 기계 학습 모델의 복수의 클래스 각각을 사용하여 프로세싱되어 제2 오디오 데이터와 연관된 대응 확률을 생성할 수 있고, 대응 확률 각각은 제2 오디오 데이터에 존재하는 대응 핫워드의 확률과 연관된다; 복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률은 2차 임계값을 만족하지만 1차 임계값은 만족하지 않도록 결정될 수 있고; 복수의 핫워드 중 하나가 2차 임계값을 만족하지만 1차 임계값을 만족하지 않도록 제1 오디오 데이터에 존재할 확률과 복수의 핫워드 중 하나가 2차 임계값을 만족하지만 1차 임계값을 만족하지 않도록 제2 오디오 데이터에 존재할 확률에 응답하여, 그리고 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 실패한 핫워드 시도가 식별될 수 있고; 실패한 핫워드 시도를 식별하는 것에 응답하여, 실패한 핫워드 시도에 응답하는 힌트가 제공될 수 있다.
일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 음성 발화와 제2 음성 발화 사이의 유사성이 유사성 임계치를 초과한다는 결정에 추가로 응답할 수 있다. 일부 구현예에서, 제1 오디오 데이터 및 제2 오디오 데이터는 명령을 포함하도록 음향 특징(예를 들어, 운율, 비언어적 발성 또는 다른 유형의 추론된 오디오 명령 속성)에 조건화된 모델을 사용하여 결정될 수 있고; 실패한 핫워드 시도는 명령을 포함하는 제1 오디오 데이터 및 제2 오디오 데이터에 응답하여 추가로 식별될 수 있다.
일부 구현예에서, 실패한 핫워드 시도에 대응하는 의도된 핫워드가 결정될 수 있다. 일부 구현예에서, 의도된 핫워드는 제1 오디오 데이터의 적어도 일부, 제2 오디오 데이터의 적어도 일부, 및 의도된 핫워드 사이의 음향 유사성에 기초하여 결정될 수 있다.
일부 구현예에서, 힌트를 제공하는 것은 클라이언트 디바이스의 디스플레이에 의도된 핫워드를 표시하는 것 또는 클라이언트 디바이스에 의해, 의도된 핫워드를 포함하는 오디오 응답을 제공하는 것을 포함할 수 있다. 일부 구현예에서, 의도된 핫워드에 대응하는 액션이 수행될 수 있다.
본 명세서에 기술된 하나 이상의 기법의 활용을 통해, 실패한 핫워드 시도의 발생은 대응하는 클라이언트 디바이스에서 로컬적으로 식별될 수 있다. 또한, 실패한 핫워드 시도에 응답하는 힌트가 제공될 수 있고 실패한 핫워드 시도에 대응되는 액션이 수행될 수 있다. 구현예에서, 시스템은 거의 일치하는 유사 트리거들을 연속하여 찾고 이러한 유사 트리거들을 기반으로 실패한 핫워드 시도를 자동으로 식별한다. 그 결과, 자동화된 어시스턴트가 핫워드에 대한 힌트를 제공하고 거의 일치하는 트리거에 대해 응답하도록 허용하여, 자동화된 어시스턴트에서의 프로세싱 및 전력 사용량을 줄이고 사용자가 이해하기 위해 시도해야 하는 횟수를 줄임으로써 성능과 유연성을 향상시킬 수 있다.
상기 설명은 본 개시의 일부 구현예의 개요로서 제공된다. 이러한 구현예 및 기타 구현예에 대한 추가 설명은 아래에서 더 자세히 설명된다.
다양한 구현예는 하나 이상의 프로세서(예를 들어, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 디지털 신호 프로세서(DSP) 및/또는 텐서 프로세싱 유닛(TPU))에 의해 실행가능한 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있으며, 상기 명령어들은 본 명세서에 기술된 하나 이상의 방법들과 같은 방법을 수행한다. 다른 구현예는 본 명세서에 기술된 방법들 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어를 실행하도록 동작 가능한 프로세서(들)를 포함하는 자동화된 어시스턴트 클라이언트 디바이스(예를 들어, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들)과 인터페이싱하기 위한 적어도 자동화된 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스)를 포함할 수 있다. 또 다른 구현예는 본 명세서에 기술된 방법들 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어들을 실행하도록 동작가능한 하나 이상의 프로세서를 포함하는 하나 이상의 서버의 시스템을 포함할 수 있다.
도 1a 및 도 1b는 다양한 구현에 따라 본 개시의 다양한 양태를 보여주는 예시적 프로세스 흐름을 도시한다.
도 2는 본 명세서에 개시된 구현예가 구현될 수 있는 도 1a 및 도 1b의 다양한 컴포넌트를 포함하는 예시적 환경의 블록도를 도시한다.
도 3은 다양한 구현예에 따라 실패한 핫워드 시도를 식별하는 예시적 방법을 도시하는 흐름도를 도시한다.
도 4는 다양한 구현예에 따라 실패한 핫워드 시도를 식별하는 예시적 방법을 도시하는 흐름도를 도시한다.
도 5는 컴퓨팅 디바이스의 예시적 아키텍처를 예시한다.
도 1a 및 1b는 본 개시의 다양한 양태를 보여주는 예시적 프로세스 흐름을 도시한다. 클라이언트 디바이스(110)가 도 1a에 도시되며, 클라이언트 디바이스(110)를 나타내는 도 1a의 박스 내에 포함된 컴포넌트를 포함한다. 기계 학습 엔진(122A)은 클라이언트 디바이스(110)의 하나 이상의 마이크로폰을 통해 검출된 음성 발화에 대응하는 오디오 데이터(101) 및/또는 클라이언트 디바이스(110)의 하나 이상의 비-마이크로폰 센서 컴포넌트를 통해 검출된 발화 없는 물리적 움직임(들)(예를 들어, 손 제스처(들) 및/또는 움직임(들), 몸 제스처(들) 및/또는 몸 움직임(들), 시선, 얼굴 움직임, 입 움직임 등)에 대응하는 기타 센서 데이터(102)를 수신할 수 있다. 하나 이상의 비-마이크로폰 센서는 카메라(들) 또는 기타 비전 센서(들), 근접 센서(들), 압력 센서(들), 가속도 계(들), 자력계(들) 및/또는 기타 센서(들)를 포함할 수 있다. 기계 학습 엔진(122A)은 예측 출력(103)을 생성하기 위해 기계 학습 모델(152A)을 사용하여 오디오 데이터(101) 및/또는 다른 센서 데이터(102)를 프로세싱한다. 본 명세서에 기술된 바와 같이, 기계 학습 엔진(122A)은 핫워드 검출 엔진(122B) 또는 음성 활동 검출기(VAD) 엔진, 엔드포인트 검출기 엔진 및/또는 기타 엔진(들)과 같은 대안적 엔진일 수 있다.
일부 구현예에서, 기계 학습 엔진(122A)이 예측된 출력(103)을 생성할 때, 그것은 클라이언트 디바이스의 온-디바이스 저장소(111)에 로컬적으로 저장될 수 있고, 선택적으로 대응하는 오디오 데이터(101) 및/또는 다른 센서데이터(102)와 연관되어 저장될 수 있다. 상기 구현예 중 일부 버전에서, 예측된 출력은 본 명세서에 기술된 하나 이상의 조건이 만족되는 경우와 같이 나중에 기울기(106)를 생성하는데 활용하기 위해 기울기 엔진(126)에 의해 검색될 수 있다. 온-디바이스 저장소(111)는, 예를 들어, ROM(read-only memory) 및/또는 RAM(randomaccess memory)을 포함할 수 있다. 다른 구현예에서, 예측된 출력(103)은 실시간으로 기울기 엔진(126)에 제공될 수 있다.
클라이언트 디바이스(110)는 예측된 출력(103)이 블록(182)에서 임계값을 만족하는지 여부를 결정하는 것에 기 초하여, 현재 휴면 자동화된 어시스턴트 기능(들)(예를 들어, 도 2의 자동화된 어시스턴트(295))을 개시할지 여부, 현재 휴면 자동화된 어시스턴트 기능(들)을 개시하는 것을 금지할지 여부 및/또는 어시스턴트 활성화 엔진 (124)을 사용하는 현재 활성 자동화된 어시스턴트 기능(들)을 종료할지 여부에 관한 결정을 내린다. 자동화된 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, 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)로 향하는 사용자 음성을 검출한다고 가정한다. 이들 구현예의 일부 버전에서, 어시스턴트 활성화 엔진(124)은 현재 휴면 자동화된 어시스턴트 기능(들)으로서 온-디바이스 음성 인식기(142), 온-디바이스 NLU 엔진(144) 및/또는 온-디바이스 이행 엔진(146)을 활성화한다. 예를 들어, 온-디바이스 음성 인식기(142)는 온-디바이스 음성 인식 모델(142A)을 사용하여, 핫워드 "OK Assistant" 및 핫워드 "OK Assistant"에 뒤따르는 추가 명령 및/또는 문구를 포함하는 음성 발화에 대한 오디오 데이터(101)를 프로세싱하여, 인식된 텍스트(143A)를 생성하고, 온-디바이스 NLU 엔진(144)은 온-디바이스 NLU 모델(144A)을 사용하여, 인식된 텍스트(143A)를 프로세싱하여 NLU 데이터(145A)를 생성하고, 온-디바이스 이행 엔진(146)은 온-디바이스 이행 모델(146A)을 사용하여, NLU 데이터(145A)를 프로세싱하여 이행 데이터(147A)를 생성하고, 그리고 클라이언트 디바이스(110)는 오디오 데이터(101)에 응답하는 하나 이상의 액션의 실행(150)에서 이행 데이터(147A)를 사용할 수 있다.
이러한 구현예의 다른 버전에서, 어시스턴트 활성화 엔진(124)은 "No", "Stop", "Cancel", Volume Up", "Volume Down", "Next Track", "Previous Track" 및/또는 온-디바이스 음성 인식기(142) 및 온-디바이스 NLU 엔진(144) 없이 프로세싱될 수 있는 다른 명령과 같은 다양한 명령을 프 로세싱하기 위해 온-디바이스 음성 인식기(142) 및 온-디바이스 NLU 엔진(144)을 활성화하지 않고 온-디바이스 이행 엔진(146)만을 활성화한다. 예를 들어, 온-디바이스 이행 엔진(146)은 온-디바이스 이행 모델(146A)을 사용하여 오디오 데이터(101)를 프로세싱하여 이행 데이터(147A)를 생성하고, 클라이언트 디바이스(110)는 오디오 데이터(101)에 응답하는 하나 이상의 액션의 실행(150)에서 이행 데이터(147A)를 사용할 수 있다. 더욱이, 이들 구현예의 버전에서, 어시스턴트 활성화 엔진(124)은 오디오 데이터(101)가 핫워드 "OK Assistant"를 포함한다고 결정하기 위해 온-디바이스 음성 인식기(142)만 활성화함으로써 블록(182)에서 이루어진 결정이 정확한지 검증하기 위해 현재 휴면 자동화 기능(들)을 초기에 활성화할 수 있고(예: 오디오 데이터(101)는 실제로 핫워드 "OK Assistant"를 포함한다), 그리고/또는 어시스턴트 활성화 엔진(124)은 오디오 데이터(101)를 하나 이상의 서버 (예: 원격 서버(160))에 전송하여, 블록(182)에서 이루어진 결정이 정확했는지(예: 오디오 데이터(10 1)는 실제로 핫워드 "OK Assistant"를 포함하는지) 검증한다.
다시 도 1a로 돌아가서, 클라이언트 디바이스(110)가 블록(182)에서 예측된 출력(103)(예: 0.80)이 임계값(예: 0.85)을 만족하지 못한다고 결정하면, 어시스턴트 활성화 엔진(124)은 현재 휴면 자동화된 어시스턴트 기능 (들)의 개시를 억제하고 그리고/또는 현재 활성 자동화된 어시스턴트 기능(들)을 종료할 수 있다. 또한, 클라이언트 디바이스(110)가 블록(182)에서 예측된 출력(103)(예: 0.80)이 임계값(예: 0.85)을 만족하지 못한다고 결정하면, 클라이언트 디바이스(110)는 블록(184)에서 추가 사용자 인터페이스 입력이 수신되는지를 결정할 수 있다. 예를 들어, 추가 사용자 인터페이스 입력은 핫워드를 포함하는 추가 음성 발화, 핫워드에 대한 프록시 역 할을 하는 추가 발화 없는 물리적 움직임(들), 명시적 자동화된 어시스턴트 호출 버튼(예: 하드웨어 버튼 또는 소프트웨어 버튼)의 작동, 클라이언트 디바이스(110) 디바이스의 감지된 "꾹누름"(예를 들어, 적어도 임계량의 힘으로 클라이언트 디바이스(110)를 누르는 경우 자동화된 어시스턴트가 호출됨) 및/또는 다른 명시적 자동화된 어시스턴트 호출일 수 있다. 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 없다고 결정하면, 클라이언트 디바이스(110)는 수정 식별을 중지하고 블록(190)에서 종료할 수 있다.
그러나, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 있다고 결정하면, 시스템은 블록(184)에서 임계값을 만족시키지 못한 이전에 수신된 추가 사용자 인터페이스 입력과 함께, 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 실패한 핫워드 시도를 나타내는지 여부를 블록(186)에서 결정할 수 있다. 실패한 핫워드 시도는 사용자가 핫워드는 아니지만 핫워드와 거의 일치하는(예: 음향적으로 유사한) 단어 또는 구를 사용하여 어시스턴트(또는 어시스턴트에 의한 특정 액션)를 호출하려고 시도한 결과일 수 있다. 실패한 핫워드 시도는 사용자가 핫워드는 아니지만 의미론적으로 핫워드와 유사한 단어나 구를 사용하여 어시스턴트(또는 어시스턴트에 의한 특정 액션)를 호출하려고 시도한 결과일 수도 있다.
클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(186)에서 실패한 핫워드 시도를 나타내지 않는다고 결정하면, 클라이언트 디바이스(110)는 블록(190)에서 종료할 수 있다. 그러나, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(186)에서 실패한 핫워드 시도를 나타낸다고 결정하면, 클라이언트 디바이스(110)는 의도된 핫워드(104)를 결정하고 힌트(105)를 제공할 수 있다. 일부 구현예에서, 클라이언트 디바이스(110)는 또한 클라이언트 디바이스(110)가 현재 휴면 자동화된 어시스턴트 기능(들)을 개시했어야 하고 그리고/또는 현재 활성 자동화된 어시스턴트 기능(들)의 종료를 억제했어야 함을 나타내는 확률(예: 1.00)일 수 있는 실제 출력(109)을 결정할 수 있다.
일부 구현예에서, 클라이언트 디바이스(110)가 블록(184)에서 수신된 추가 사용자 인터페이스 입력이 블록(186)에서 실패한 핫워드 시도를 나타낸다고 결정하면, 클라이언트 디바이스(110)의 어시스턴트 활성화 엔진(124)은 현재 하나 이상의 휴면 자동화된 어시스턴트 기능을 사용자가 의도한 대로(예를 들어, 의도된 핫워드(104)에 기초하여) 개시할 수 있다.
일부 구현예에서, 기울기 엔진(126)은 실제 출력(105)에 대한 예측된 출력(103)에 기초하여 기울기(106)를 생성 할 수 있다. 예를 들어, 기울기 엔진(126)은 예측된 출력(103)을 실제 출력(105)과 비교하는 것에 기초하여 기울기(106)를 생성할 수 있다. 이러한 구현예 중 일부 버전에서, 클라이언트 디바이스(110)는 온-디바이스 저장 소(111)에 로컬적으로 예측된 출력(103) 및 대응하는 실제 출력(105)을 저장하고, 기울기 엔진(126)은 예측된 출력(103) 및 대응하는 실제 출력(105)을 검색하여 하나 이상의 조건이 만족되면 기울기(106)를 생성한다. 하나 이상의 조건은, 예를 들어, 클라이언트 디바이스가 충전 중이라는 것, 클라이언트 디바이스가 적어도 임계 충전 상태를 갖고 있다는 것, 클라이언트 디바이스의 온도(하나 이상의 온-디바이스 온도 센서에 기초함)가 임계값 미만인 것 그리고/또는 클라이언트 디바이스가 사용자에 의해 휴대되고 있지 않은 것을 포함할 수 있다. 이러한 구현예의 다른 버전에서, 클라이언트 디바이스(110)는 예측된 출력(103) 및 실제 출력(105)을 실시간으로 기울기 엔진(126)에 제공하고 기울기 엔진(126)은 실시간으로 기울기(106)를 생성한다.
더욱이, 기울기 엔진(126)은 생성된 기울기(106)를 온-디바이스 기계 학습 트레이닝 엔진(132A)에 제공할 수 있다. 온-디바이스 기계 학습 트레이닝 엔진(132A)은 기울기(106)를 수신하면, 기울기(106)를 사용하여 온-디바이스 기계 학습 모델(152A)을 업데이트한다. 예를 들어, 온-디바이스 기계 학습 트레이닝 엔진(132A)은 역전파 및 /또는 다른 기법을 활용하여 온-디바이스 기계 학습 모델(152A)을 업데이트할 수 있다. 일부 구현예에서, 온-디 바이스 기계 학습 트레이닝 엔진(132A)은 추가적인 실패한 핫원드 시도에 기초하여 클라이언트 디바이스(110)에서 로컬로 결정된 기울기(106) 및 추가 기울기에 기반하여 온-디바이스 머신 러닝 모델(152A)을 업데이트하기 위해 배치 기법을 활용할 수 있다.
또한, 클라이언트 디바이스(110)는 생성된 기울기(106)를 원격 시스템(160)에 전송할 수 있다. 원격 시스템 (160)이 기울기(106)를 수신하면, 원격 시스템(160)의 원격 트레이닝 엔진(162)은 기울기(106) 및 추가 클라이언트 디바이스(170)로부터의 추가 기울기(107)를 사용하여 글로벌 음성 인식 모델(152A1)의 글로벌 가중치를 업데이트한다. 추가 클라이언트 디바이스들(170)로부터의 추가 기울기(107)는 기울기(106)와 관련하여 위에서 설명된 것과 동일하거나 유사한 기법에 기초하여 각각 생성될 수 있다(그러나 그러한 클라이언트 디바이스들에 특정한 로컬적으로 식별된 수정들에 기초함).
업데이트 배포 엔진(164)은 충족되는 하나 이상의 조건에 응답하여, (108)로 표시된 바와 같이 업데이트된 글로벌 가중치 및/또는 업데이트된 글로벌 핫워드 모델 자체를 클라이언트 디바이스(110) 및/또는 다른 클라 이언트 디바이스(들)에 제공할 수 있다. 하나 이상의 조건은, 예를 들어, 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 기간 및/또는 트레이닝의 양을 포함할 수 있다. 하나 이상 의 조건은 추가로 또는 대안적으로, 예를 들어 업데이트된 음성 인식 모델에 대한 측정된 개선 및/또는 업데이트된 가중치 및/또는 업데이트된 음성 인식 모델이 마지막으로 제공된 이후의 임계 시간 기간의 경과를 포함할 수 있다. 업데이트된 가중치가 클라이언트 디바이스(110)에 제공되면, 클라이언트 디바이스(110)는 온-디바이스 기계 학습 모델(152A)의 가중치를 업데이트된 가중치로 교체할 수 있다. 업데이트된 글로벌 핫워드 모델이 클라이언트 디바이스(110)에 제공되면, 클라이언트 디바이스(110)는 온-디바이스 기계 학습 모델(152A)을 업데이트된 글로벌 핫워드 모델로 교체할 수 있다. 다른 구현예에서, 클라이언트 디바이스(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) 및 시각적 캡처 엔진(244)을 더 포함한다. 자동화된 어시스턴트 클라이언 트(140)는 음성 활동 검출기(VAD) 엔진, 엔드포인트 검출기 엔진 및/또는 다른 엔진(들)과 같은 추가적인 및/또 는 대안적인 엔진을 포함할 수 있다.
하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(280)는 일반적으로 (290)에 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예를 들어, 인터넷)를 통해 클라이언트 디바이스(110)에 통신가능하게 연결된 하나 이상의 컴퓨팅 시스템(집합적으로 "클라우드" 컴퓨팅 시스템으로 통칭함)에서 선택적으로 구현될 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트(280)는 예를 들어 고성능 서버의 클러스터를 통해 구현될 수 있다.
다양한 구현예에서, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(280)와의 인터렉션에 의한 자동화된 어시스턴트 클라이언트(240)의 인스턴스는 사용자의 관점에서 사용자가 인간-대-컴퓨터 인터렉션(예: 발화된 인터렉션, 제스처 기반 인터렉션 및/또는 터치 기반 인터렉션)에 참여할 수 있게 하는 자동화된 어시스턴 트(295)의 논리적 인스턴스로 보이는 것을 형성할 수 있다.
클라이언트 디바이스(110)는 예를 들어, 데스크톱 컴퓨터 디바이스, 랩톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일폰 컴퓨팅 디바이스, 사용자의 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템), 단독형 인터렉티브 스피커, 스마트 텔레비전(또는 자동화된 어시스턴트 기능을 갖는 네트워크 동글이 장착된 표준 텔레비전)과 같은 스마트 장비 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 구비한 사용자의 시계, 컴퓨팅 디바이스를 구비한 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가적 및/또는 대안적 클라이언트 디바이스가 제공될 수 있다.
하나 이상의 비전 컴포넌트(213)는 모노 그래픽 카메라, 입체 카메라, LIDAR 컴포넌트 (또는 기타 레이저 기반 컴포넌트(들)), 레이더 컴포넌트 등과 같은 다양한 형태를 취할 수 있다. 하나 이상의 비전 컴포넌트(213)는 예를 들어, 비주얼 캡처 엔진(242)에 의해 사용되어, 클라이언트 디바이스(110)가 배치되는 환경의 비전 프레임 (예: 이미지 프레임, 레이저 기반 비전 프레임)을 캡처한다. 일부 구현예에서, 이러한 비전 프레임(들)은 사용 자가 클라이언트 디바이스(110) 근처에 존재하는지 그리고/또는 클라이언트 디바이스(110)에 대한 사용자의 거리(예를 들어, 사용자의 얼굴)를 결정하기 위해 활용될 수 있다. 이러한 결정(들)은 예를 들어 도 2에 도시된 다양한 온-디바이스 기계 학습 엔진 및/또는 다른 엔진(들)을 활성화할지 여부를 결정하는데 이용될 수 있다.
음성 캡처 엔진(242)은 사용자의 음성 및/또는 마이크로폰(들)(211)을 통해 캡처된 다른 오디오 데이터를 캡처하도록 구성될 수 있다. 또한, 클라이언트 디바이스(110)는 압력 센서(들), 근접 센서(들), 가속도계(들), 자력계(들) 및/또는 마이크로폰(들)(211)을 통해 캡처된 오디오 데이터에 부가적인 다른 센서 데이터를 생성하는데 사용되는 다른 센서(들)를 포함할 수 있다. 본 명세서에 기술된 바와 같이, 이러한 오디오 데이터 및 기타 센서 데이터는 핫워드 검출 엔진(122B) 및/또는 다른 엔진(들)에 의해 활용되어 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시할지, 하나 이상의 현재 휴면 자동화된 어시스턴트 기능의 개시를 억제할지 및/또는 하나 이상의 현재 활성 자동화된 어시스턴트 기능을 종료할지 여부를 결정한다. 자동화된 어시스턴트 기능은 온-디바이스 음성 인식기(142), 온-디바이스 NLU 엔진 (144), 온-디바이스 이행 엔진(146) 및 추가 및/또는 대안적 엔진을 포함할 수 있다. 예를 들어, 온-디바이스 음성 인식기(142)는 음성 발화에 대응하는 인식된 텍스트(143A)를 생성하기 위해 온-디바이스 음성 인식 모델 (142A)을 활용하여 음성 발화를 캡처하는 오디오 데이터를 프로세싱할 수 있다. 온-디바이스 NLU 엔진(144)은NLU 데이터(145A)를 생성하기 위해 인식된 텍스트(143A)에 대해 온-디바이스 NLU 모델(144A)을 선택적으로 활용하여 온-디바이스 자연어 이해를 수행한다. NLU 데이터(145A)는 예를 들어, 음성 발화에 대응하는 의도(들) 그리고 선택적으로 의도(들)에 대한 파라미터(들)(예를 들어, 슬롯 값)를 포함할 수 있다. 또한, 온-디바이스 이행 엔 진(146)은 NLU 데이터(145A)에 기초하여 온-디바이스 이행 모델(146A)을 선택적으로 활용하여 이행 데이터 (147A)를 생성한다. 이 이행 데이터(147A)는 음성 발화에 대한 로컬 및/또는 원격 응답(예: 답변), 음성 발화에 기초하여 로컬적으로 설치된 애플리케이션(들)과 수행할 인터렉션(들), 음성 발화에 기초하여 사물 인터넷(IoT) 디바이스(들)에 전송할 명령(들)(직접 또는 대응 원격 시스템(들)을 통해) 및/또는 음성 발화에 기초하여 수행할 다른 해결 액션(들)을 정의할 수 있다. 그 다음, 이행 데이터(147A)는 음성 발화를 해결하기 위해 결정된 액션(들)의 로컬 및/또는 원격 수행/실행을 위해 제공된다. 실행은 예를 들어 로컬 및/또는 원격 응답 렌더링(예: 시각적 및/또는 청각적 렌더링(선택적으로 로컬 텍스트 음성 변환 모듈 사용)), 로컬적으로 설치된 애플리케이션과의 인터렉션, IoT 디바이스(들)에 명령 전송 및/또는 기타 액션(들)을 포함할 수 있다.
디스플레이(들)(214)는 온-디바이스 음성 인식기(122)로부터의 인식된 텍스트(143A) 및/또는 추가로 인식된 텍스트(143B), 및/또는 힌트(105)(의도된 핫워드(104)를 포함할 수 있음), 및/또는 실행(150)으로부터의 하나 이상의 결과를 디스플레이하는데 활용될 수 있다. 또한, 디스플레이(들)(214)는 자동화된 어시스턴트 클라이언트(240)로부터의 응답의 시각적 부분(들)이 렌더링되는 사용자 인터페이스 출력 컴포넌트(들) 중 하나일 수 있다.
일부 구현예에서, 하나 이상의 스피커(들)(212)는 의도된 핫워드(104)를 포함하는 오디오 응답일 수 있는 힌트(105)를 제공하는데 사용될 수 있다.
일부 구현예에서, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들)(280)는 음성 인식을 수행하는 원격 ASR 엔 진(281), 자연어 이해를 수행하는 원격 NLU 엔진(282), 및/또는 이행을 생성하는 원격 이행 엔진(284)을 포함할 수 있다. 로컬 또는 원격으로 결정된 이행 데이터에 기초하여 원격 실행을 수행하는 원격 실행 모듈도 선택적으로 포함될 수 있다. 추가적 및/또는 대안적 원격 엔진이 포함될 수 있다. 본 명세서에 설명된 바와 같이, 다양 한 구현예에서, 온-디바이스 음성 프로세싱, 온-디바이스 NLU, 온-디바이스, 이행 및/또는 온-디바이스 실행은 적어도 음성 발화를 분석할 때 제공하는 대기 시간 및/또는 네트워크 사용 감소로 인하여 우선 순위화될 수 있다 (음성 발화를 분석하는데 클라이언트-서버 왕복이 필요하지 않기 때문에). 그러나, 하나 이상의 클라우드 기반의 자동화된 어시스턴트 컴포넌트(들)(280)는 적어도 선택적으로 활용될 수 있다. 예를 들어, 그러한 컴포넌트 (들)는 온-디바이스 컴포넌트(들) 및 로컬 컴포넌트(들)가 실패할 때 활용되는 그러한 컴포넌트(들)의 출력과 병렬로 활용될 수 있다. 예를 들어, 온-디바이스 이행 엔진(146)은 (예를 들어, 클라이언트 디바이스(110)의 상대적으로 제한된 리소스로 인해) 특정 상황에서 실패할 수 있고, 원격 이행 엔진(283)은 그러한 상황에서 이행 데이터를 생성하기 위해 클라우드의 보다 강력한 리소스를 활용할 수 있다. 원격 이행 엔진(283)은 온-디바이스 이행 엔진(246) 및 온-디바이스 이행이 실패할 때 활용되는 그 결과와 병렬로 작동될 수 있거나, 온-디바이스 이행 엔진(246)의 실패를 결정하는 것에 응답하여 호출될 수 있다.
다양한 구현예에서, NLU 엔진(온-디바이스 및/또는 원격)은 인식된 텍스트의 하나 이상의 주석 및 자연어 입력의 용어 중 하나 이상(예를 들어, 모두)을 포함하는 NLU 데이터를 생성할 수 있다. 일부 구현예에서, NLU 엔진은 자연어 입력에서 문법적 정보의 다양한 유형들을 식별하고 주석을 달도록 구성된다. 예를 들어, NLU 엔진은 개별 단어를 형태소로 분리하고 및/또는 형태소에 예를 들어, 그들의 클래스에 주석을 달 수 있는 형태소 모듈을 포함할 수 있다. NLU 엔진 용어들에 그들의 문법적 역할들로 주석을 달도록 구성된 품사 태거(a part of speech tagger)를 포함할 수 있다. 또한, 예를 들면, 일부 구현예에서, NLU 엔진은 추가적으로 및/또는 대안적으로 자연어 입력에서 용어들 간의 구문론적 관계들을 결정하도록 구성된 종속성 파서(dependency parser)를 포함할 수 있다.
일부 구현예에서, NLU 엔진은 추가적으로 및/또는 대안적으로 사람들(예를 들어, 문학적 캐릭터, 유명인, 공인 등을 포함), 조직들, 위치들(실제 및 가상) 등에 대한 참조들과 같은 하나 이상의 세그먼트들에서 엔터티 참조들을 주석을 달도록 구성된 엔터티 태거(entity tagger)를 포함할 수 있다. 일부 구현예에서, NLU 엔진은 추 가적으로 및/또는 대안적으로 하나 이상의 컨텍스트적 큐(cue)들에 기초하여 동일한 엔터티에 대한 참조인 그룹 또는 "클러스터"로 구성된 공동참조 리졸버(coreference resolver)(도시되지 않음)를 포함할 수 있다. 일부 구 현예에서, NLU 엔진의 하나 이상의 컴포넌트들은 NLU 엔진의 하나 이상의 다른 컴포넌트들로부터의 주석들에 의존할 수 있다.
NLU 엔진은 또한 자동화된 어시스턴트(295)와의 인터렉션에 참여한 사용자의 의도를 결정하도록 구성된 의도 매칭기를 포함할 수 있다. 의도 매칭기는 다양한 기법을 사용하여 사용자의 의도를 결정할 수 있다. 일부 구현예에서, 의도 매칭기는 예를 들어 문법과 응답 의도 사이의 복수의 매핑을 포함하는 하나 이상의 로컬 및/또는 원격 데이터 구조에 액세스할 수 있다. 예를 들어, 매핑에 포함된 문법은 시간이 지남에 따라 선택 및/또는 학습될 수 있으며 사용자의 공통 의도를 표현할 수 있다. 예를 들어, 하나의 문법 "play <artist>"는 <artist>의 음악이 클라이언트 디바이스(110)에 의해 재생되게 하는 응답 액션을 호출하는 의도에 매핑될 수 있다. 또 다른 문법, "[날씨|예보] 오늘"은 " 오늘 날씨가 어때?(what's the weather today?)" 및 " 오늘 예보가 어때?(what's the forecast for today?)"와 같은 사용자 쿼리와 일치할 수 있다. 문법에 추가하거나 문법 대신, 일부 구현예에서는, 의도 일치자가 하나 이상의 훈련된 기계 학습 모델을 단독으로 또는 하나 이상의 문법과 함께 사용할 수 있다. 이렇게 훈련된 기계 학습 모델은, 예를 들어 구어 발화에서 인식된 텍스트를 감소된 차원 공간에 삽입한 다음, 예를 들어 유클리드 거리, 코사인 유사성 등과 같은 기법을 사용하여 어떤 다른 삽입(및 의도)이 가장 근접한지를 결정함으로써 의도를 식별하도록 훈련될 수 있다. 위의 "play <artist>" 예제 문법에서 볼 수 있듯이, 일부 문법에는 슬롯 값(또는 "매개 변수")으로 채워질 수 있는 슬롯(예: <artist>)이 있다. 슬롯 값은 다양한 방법으로 결정될 수 있다. 종종 사용자는 사전에 슬롯 값을 제공한다. 예를 들어, " <토핑 >피자 주문, "이라는 문법의 경우 사용자는 " 소시지 피자 주문,"이라는 문구를 말할 수 있고, 이 경우 슬롯 <토핑 > 이 자동으로 채워진다. 다른 슬롯 값(들)은 예를 들어 사용자 위치, 현재 렌더링된 콘텐츠, 사용자 선호도 및/또는 다른 큐(들)에 기초하여 추론될 수 있다.
이행 엔진(로컬 및/또는 원격)은 NLU 엔진에 의해 출력되는 예측/추정 의도와 임의의 연관된 슬롯 값을 수신하고 의도를 이행(또는 "해결")하도록 구성될 수 있다. 다양한 구현예에서, 사용자 의도의 이행(또는 "해결")은 다양한 이행 정보(이행 데이터라고도 함)가 예를 들어 이행 엔진에 의해 생성/획득되게 할 수 있다. 이는 음성 발화에 대한 로컬 및/또는 원격 응답(예: 답변), 음성 발화에 기초하여 수행할 로컬적으로 설치된 애 플리케이션(들)과의 인터렉션(들), 음성 발화에 기초하여 사물 인터넷(IoT) 디바이스(들)에 (직접 또는 대응 원격 시스템(들)을 통해) 전송할 명령(들), 및/또는 음성 발화에 기초하여 수행할 다른 해결 액션(들)을 결정하는 것을 포함할 수 있다. 그런 다음, 온-디바이스 이행은 음성 발화를 해결하기 위해 결정된 액션(들)의 로컬 및/ 또는 원격 수행/실행을 개시할 수 있다.
도 3은 실패한 핫워드 시도를 식별하는 예시적 방법(300)을 도시하는 흐름도를 도시한다. 편의상, 방법(300)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 하나 이상의 프로세서 및/또는 클라이언트 디바이스의 다른 구성요소(들)를 포함한다. 또한, 방법(300)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작들이 재정렬, 생략 또는 추가될 수 있다.
블록(305)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제1 음성 발화를 캡처하는 제1 오디오 데이터를 수신한다.
블록(310)에서, 시스템은 하나 이상의 기계 학습 모델을 사용하여 블록(305)에서 수신된 제1 오디오 데이터를 프로세싱하여, 제1 오디오 데이터에 하나 이상의 핫워드가 존재할 확률을 나타내는 제1 예측 출력을 생성한다. 하나 이상의 기계 학습 모델은 예를 들어 온-디바이스 핫워드 검출 모델 및/또는 다른 기계 학습 모델일 수 있다. 각각의 기계 학습 모델은 심층 신경망 또는 다른 유형의 모델일 수 있고, 하나 이상의 핫워드를 인식하도록 훈련될 수 있다. 또한, 생성된 출력은 예를 들어 확률 및/또는 기타 우도 측정값(likelihood measures)일 수 있다.
계속 블록(310)을 참조하면, 구현예에서, 기계 학습 모델은 단일 클래스로서 다수의 단어를 포함하는 핫워드를 인식하도록 훈련된 핫워드 모델일 수 있다. 제1 오디오 데이터가 "다음 노래"라는 단어를 포함하고 기계 학습 모델이 "다음 트랙"을 인식하도록 훈련된 경우, 기계 학습 모델은 "다음 노래"와 "다음 트랙" 사이에 일정 수준의 음향 유사성이 있기 때문에, 제1 예측 출력으로 0.5를 생성할 수 있다. 다른 구현예에서, 다중 클래스를 갖는 단일 기계 학습 모델이 사용될 수 있고, 각 클래스는 특정 핫워드 세트에서 개별 단어를 감지할 수 있다. 또는, 여러 기계 학습 모델을 사용할 수 있으며 각 모델은 특정 핫워드 세트에서 개별 단어를 감지할 수 있다. 이 예에서, 시스템은 "다음" 클래스에 대해 높은 신뢰도 매칭을 생성하고 나머지는 매칭하지 않을 수 있다.
블록(315)에서, 시스템은 블록(310)에서 생성된 제1 예측 출력이 1차 임계값보다 오디오 데이터에 존재하는 하나 이상의 핫워드를 덜 나타내는 2차 임계값을 만족하는지 여부를 결정한다 (예를 들어, 2차 임계값은 중간 신뢰 임계값알 수 있고, 1차 임계값은 높은 신뢰 임계값일 수 있다). 블록(315)의 반복에서, 시스템이 블록(310)에서 생성된 제1 예측 출력이 2차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(320)으로 진행하고 흐름도는 종료된다. 한편, 블록(315)의 반복에서, 시스템이 블록(310)에서 생성된 제1 예측 출력이 2차 임계값을 만족한다고 결정하면, 시스템은 블록(325)으로 진행한다. 구현예에서, 1차 및 2차 임계값은 핫워드, 명령, 디바이스, 및/또는 컨텍스트에 따라 달라질 수 있다.
계속 블록(315)을 참조하면, 구현예에서, 블록(310)에서 생성된 제1 예측 출력은 확률이고, 확률이 블록(315)에서 2차 임계값을 만족시키기 위해 0.65보다 커야만 하고, 그 예측 확률은 0.88이라고 가정한다. 2차 임계값 0.65를 만족시키는 0.88의 예측 확률에 기초하여, 시스템은 블록(325)로 진행한다.
블록(325)에서, 시스템은 블록(310)에서 생성된 제1 예측 출력이 1차 임계값을 만족하는지 여부를 결정한다. 블록(325)의 반복에서, 시스템이 블록(310)에서 생성된 제1 예측 출력이 1차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(335)으로 진행한다. 반면, 블록(325)의 반복에서, 시스템이 블록(310)에서 생성된 제1 예측 출력이 1차 임계값을 만족한다고 결정하면, 시스템은 블록(330)으로 진행하고 하나 이상의 현재 휴면 자동화된 어시스턴트 기능(들)을 초기화한다. 일부 구현예에서, 하나 이상의 자동 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 제1 오디오 데이터에 응답하는 하나 이상의 액션(들)(예: 디바이스 볼륨 변경과 같은 통상의 작업)을 직접 트리거하는 것을 포함한다.
계속해서 블록(330)을 참조하면, 구현예에서, 블록(310)에서 생성된 제1 예측 출력이 확률이고 확률이 블록(325)에서 1차 임계값을 만족시키고 하나 이상의 현재 휴면 자동화된 어시스턴트를 활성화하기 위해 0.85보다 커야만 하고, 그 예측 확률은 0.88이라고 가정한다. 0.85의 임계값을 만족시키는 0.88의 예측 확률에 기초하여, 시스템은 블록(330)으로 진행하고, 사용자가 의도한 바와 같이 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다.
블록(335)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발화를 캡처하는 제2 오디오 데이터를 수신한다.
블록(340)에서, 시스템은 하나 이상의 기계 학습 모델을 사용하여 블록(335)에서 수신된 제2 오디오 데이터를 프로세싱하여 하나 이상의 핫워드가 제2 오디오 데이터에 존재할 확률을 나타내는 제2 예측 출력을 생성한다. 하나 이상의 기계 학습 모델은 예를 들어 온-디바이스 핫워드 검출 모델 및/또는 다른 기계 학습 모델일 수 있다. 또한, 생성된 출력은 예를 들어 확률 및/또는 기타 우도 측정값일 수 있다.
블록(345)에서, 시스템은 블록(340)에서 생성된 제2 예측 출력이 2차 임계값을 만족하는지 여부를 결정한다. 블록(345)의 반복에서, 시스템이 블록(340)에서 생성된 제2 예측 출력이 2차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(320)으로 진행하고 흐름도는 종료된다. 한편, 블록(345)의 반복에서, 시스템이 블록(340)에서 생성된 제2 예측 출력이 2차 임계값을 만족한다고 결정하면, 시스템은 블록(350)으로 진행한다.
계속 블록(345)을 참조하면, 구현예에서, 블록(340)에서 생성된 제2 예측 출력이 확률이고 확률은 블록(345)에서 2차 임계값을 만족시키기 위해 0.65보다 커야만 하고, 예측 확률은 0.88이라고 가정한다. 2차 임계값 0.65를 만족시키는 0.88의 예측 확률에 기초하여, 시스템은 블록(350)으로 진행한다.
블록(350)에서, 시스템은 블록(340)에서 생성된 제2 예측 출력이 1차 임계값을 만족하는지 여부를 결정한다. 블록(350)의 반복에서, 시스템이 블록(340)에서 생성된 제2 예측 출력이 1차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(360)으로 진행한다. 반면, 블록(350)의 반복에서, 시스템이 블록(340)에서 생성된 제2 예측 출력이 1차 임계값을 만족한다고 결정하면, 시스템은 블록(355)으로 진행하고 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다. 일부 구현예에서, 하나 이상의 자동화된 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 제2오디오 데이터에 응답하는 하나 이상의 액션(들)(예: 디바이스 볼륨 변경과 같은 통상의 작업)을 직접 트리거하는 것을 포함한다.
블록(350)을 참조하면, 다른 구현예에서는, 블록(350)의 반복에서 시스템이 블록(340)에서 생성된 예측 출력이 1차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(335)으로 한번 이상 회귀할 수 있고, 블록(335 내지 350)은 사용자의 제3 음성 발화를 캡처하는 제3 오디오 데이터 등을 사용하여 반복될 수 있다.
블록(355)을 참조하면, 일 예에서, 블록(340)에서 생성된 제2 예측 출력이 확률이고 확률은 블록(350)에서 1차 임계값을 만족하고 블록(355)에서 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 활성화하기 위해 0.85보다 커야만 하고, 예측 확률은 0.88이라고가정한다. 임계값 0.85을 만족시키는 0.88의 예측 확률에 기초하여, 시스템은 블록(355)으로 진행하고, 사용자가 의도한 바와 같이 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다.
블록(360)에서, 시스템은 블록(305)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화 및 블록(335)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 서로에 대한 하나 이상의 시간적 기준(예: 발언이 10초 미만으로 분리됨)을 만족하는지 여부를 결정한다. 블록(360)의 반복에서, 시스템이 블록(305)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화 및 블록(335)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2음성 발화가 서로에 대해 하나 이상의 시간적 기준을 충족하는 경우가 아니라고 결정하면, 시스템은 블록(320)으로 진행하고 흐름도는 종료된다. 한편, 블록(360)의 반복에서, 시스템은 블록(305)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화 및 블록(335)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 서로에 대해 하나 이상의 시간적 기준을 만족하는 것으로 결정하면, 시스템은 블록 (365)로 진행한다.
블록(365)에서, (블록 (315) 및 블록 (345)에서 각각 결정된 바와 같이) 2차 임계값은 만족하지만 (블록(325) 및 블록(350)에서 각각 결정된 바와 같이) 1차 임계값은 만족하지 않는 제1 예측 출력 및 제2 예측 출력에 응답하여, 그리고 블록(305)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화 및 블록(335)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 (블록(360)에서 결정된 바와 같이) 서로에 대해 하나 이상의 시간적 기준을 만족하는 것에 응답하여, 시스템은 실패한 핫워드 시도를 식별한다(예를 들어, 시스템은 사용자가 핫워드가 아닌 단어 또는 구를 사용하여 어시스턴트를 호출하려는 시도가 실패했다고 결정한다).
계속 블록(365)을 참조하면, 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 음성 발화와 제2 음성 발화 사이의 유사성이 유사성 임계치를 초과한다는 결정에 추가로 응답한다. 핫워드 시도가 여러 번 실패한 후, 사용자가 단어나 구문의 다른 변형을 시도할 수 있으므로 시스템은 약간의 변형을 허용할 수 있다. 추가로, 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 예측 출력에 의해 표시된 확률과 제2 예측 출력에 의해 표시된 확률이 하나 이상의 핫워드 중 동일 핫워드(예를 들어, 이들은 모두 동일한 핫워드 클래스에 가깝다)에 대응한다는 결정에 추가로 응답한다.
계속 블록(365)을 참조하면, 일부 구현예에서, 시스템은 제1 오디오 데이터 및 제2 오디오 데이터가 명령을 포함하는지를 결정하기 위해 음향 특징(예를 들어, 운율, 비언어적 발성 또는 다른 유형의 추론된 오디오 명령 속성)에 조건화된 모델을 사용한다. 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 오디오 데이터와 제2 오디오 데이터가 명령을 포함한다는 결정에 추가로 응답한다.
블록(370)에서, 시스템은 블록(365)에서 식별된 실패한 핫워드 시도에 대응하는 의도된 핫워드를 결정한다. 일부 구현예에서, 의도된 핫워드는 제1 오디오 데이터의 적어도 일부, 제2 오디오 데이터의 적어도 일부, 및 의도된 핫워드 사이의 음향 유사성에 기초하여 결정될 수 있다. 다른 구현예에서, 시스템은 더 높은 전력 상태(예를 들어, 웨이크업)에 들어가고 온-디바이스 음성 인식 엔진을 사용하여 제1 오디오 데이터 및 제2 오디오 데이터에 대하여 2단계 음성 프로세싱을 수행할 수 있다. 이 경우, 시스템은 예를 들어, 제1 오디오 데이터의 전사, 제2 오디오 데이터의 전사, 및 지원되는 핫워드 사이의 유사성을 임베딩하는 텍스트에 기초하여 의도된 핫워드를 결정하기 위해 자연어 이해를 사용할 수 있다.
블록(375)에서는, 블록(365)에서 실패한 핫워드 시도를 식별하는 것에 응답하여 시스템이 실패한 핫워드 시도에 응답하는 힌트를 제공한다. 일부 구현예에서, 힌트를 제공하는 것은 의도된 핫워드(블록(370)에서 결정됨)를 클라이언트 디바이스의 디스플레이에 표시하는 것 또는 의도된 핫워드를 포함하는 오디오 응답을 클라이언트 디바이스에 의해 제공하는 것을 포함한다. 힌트는 사용 가능한 어휘(즉, 지원되는 핫워드)를 명확히 할 수 있다. 힌트는 사용자가 특정 지원 핫워드(예를 들어, 블록(370)에서 결정된 의도된 핫워드)를 말하려고 시도할 수 있다고 시스템이 결정했음을 나타낼 수 있다. 실패한 핫워드 시도(예: "볼륨 증가(volume increase)")가 지원되는 여러 핫워드(예: "볼륨 크게(volume up)" 및 "볼륨 작게(volume down)")와 유사한 경우, 힌트에는 지원되는 여러 핫워드가 포함될 수 있다. 다른 구현예에서, 시스템은 블록(375)에서 힌트를 제공하지 않을 수 있고, 대신에 블록(370)에서 블록(380)으로 바로 진행할 수 있다.
블록(380)에서, 시스템은 블록(370)에서 결정된 의도된 핫워드에 대응하는 액션을 수행한다. 예를 들어, 시스템은 하나 이상의 현재 휴먼 자동화된 어시스턴트 기능을 개시할 수 있다. 일부 구현예에서, 하나 이상의 자동 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 의도한 핫워드에 기초하여 하나 이상의 액션을 바로 트리거하는 것(예: 디바이스의 볼륨 변경, 다음 트랙으로 이동, 일시 중지, 등.)을 포함한다. 일부 구현예에서, 서로 다른 의도된 핫워드는 서로 다른 액션에 대응할 수 있다(예를 들어, "볼륨 크게(volume up)" 핫워드는 볼륨을 증가시키는 액션에 대응할 수 있고, "볼륨 작게(volume down)" 핫워드는 볼륨을 감소시키는 액션에 대응할 수 있다).
계속 블록(380)을 참조하면, 일부 구현예에서, 시스템은 블록(370)에서 의도된 핫워드의 결정과 관련된 신뢰도 수준을 결정할 수 있고, 시스템은 신뢰도 수준이 임계 수준을 초과하고 그리고/또는 의도된 핫워드가 블록(370)에서 결정된 경우에만 블록(380)에서 액션을 수행할 수 있다. 추가로, 일부 구현예에서, 시스템은 의도된 핫워드가 지원되는 핫워드의 특정 서브세트가 경우에만 블록(380)에서 액션을 수행할 수 있다.
블록(380) 이후, 시스템은 블록(305)으로 회귀한다.
도 4는 실패한 핫워드 시도를 식별하는 예시적 방법(400)을 도시하는 흐름도를 도시한다. 편의상, 방법(400)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(400)의 시스템은 하나 이상의 프로세서 및/또는 클라이언트 디바이스의 다른 구성요소(들)를 포함한다. 또한, 방법(400)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 작업이 재정렬, 생략, 또는 추가될 수 있다.
블록(405)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제1 음성 발화를 캡처하는 제1오디오 데이터를 수신한다.
블록(410)에서, 시스템은 기계 학습 모델의 복수의 클래스 각각을 사용하여 블록(405)에서 수신된 제1 오디오 데이터를 프로세싱하여 제1 오디오 데이터와 연관된 대응 확률을 생성한다. 구현예에서, 각각의 클래스는 복수의 핫워드 중 대응하는 핫워드와 연관되고 각각의 대응 확률은 제1 오디오 데이터에 존재하는 대응하는 핫워드의 확률과 연관된다. 기계 학습 모델은 예를 들어 온-디바이스 핫워드 감지 모델 및/또는 다른 기계 학습 모델일 수 있다.
계속 블록(410)을 참조하면, 구현예에서, 기계 학습 모델의 제1 클래스는 핫워드 "다음 트랙(next track)"에 대응할 수 있고, 기계 학습 모델의 제2 클래스는 핫워드 "이전 트랙(previous track)"에 대응할 수 있으며, 기계 학습 모델의 제3 클래스는 핫워드 "일시 중지(pause)"에 대응할 수 있다. 구현예에서, 시스템은 기계 학습 모델에서 복수의 클래스의 활성 서브세트에 대해 오디오 데이터를 선택적으로 프로세싱할 수 있다. 활성 하위 집합은 특정 컨텍스트에서 활성화되는 핫워드에 대응되는 클래스를 포함할 수 있다(예: "다음 트랙", "이전 트랙" 및 "일시 중지"에 대응하는 기계 학습 모델의 클래스는 오디오 및/또는 비디오가 활발하게 렌더링되고 있는 경우에 활성 서브세트로 포함될 수 있다).
다른 구현예에서, 방법(400)에서, 복수의 클래스를 포함하는 기계 학습 모델을 사용하는 대신, 시스템이 복수의 기계 학습 모델을 사용할 수 있고, 각 기계 학습 모델은 복수의 핫워드 중 대응하는 핫워드와 연관될 수 있다.
블록(415)에서, 시스템은 복수의 핫워드 중 하나(또는 그 이상)가 (블록(410)에서 생성된) 제1 오디오 데이터에 존재할 확률이 2차 임계값을 만족시키지만 1차 임계값을 만족시키는지 여부를 결정하고, 상기 2차 임계값은 상기 1차 임계값 보다 오디오 데이터에 존재하는 복수의 핫워드 중 하나를 덜 나타낸다. 블록(415)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제1 오디오 데이터에 존재할 확률이 2차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(420)으로 진행하고, 흐름도를 종료한다. 반면, 블록(415)의 반복에서, 시스템이 복수의 핫워드 중 하나가 블록(410)에서 생성된 제1 오디오 데이터에 존재할 확률이 2차 임계값을 만족한다고 결정하면, 시스템은 블록(425)으로 진행한다.
계속 블록(415)을 참조하면, 구현예에서, (블록(410)에서 생성된) 제1 오디오 데이터에 존재하는 복수의 핫워드 중 하나의 확률이 0.88이고, 확률은 블록(415)에서 2차 임계값을 만족시키기 위해 0.65보다 커야한다고 가정한다. 그러면, 0.65의 2차 임계값을 만족시키는 0.88의 확률에 기초하여, 시스템은 블록(425)으로 진행한다.
블록(425)에서, 시스템은 (블록(410)에서 생성된) 제1 오디오 데이터에 존재하는 복수의 핫워드 중 하나의 확률이 1차 임계값을 만족하는지 여부를 결정한다. 블록(425)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제1 오디오 데이터에 존재할 확률이 1차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(435)으로 진행한다. 반면, 블록(425)의 반복에서, 시스템이 복수의 핫워드 중 하나가 블록(410)에서 생성된 제1 오디오 데이터에 존재할 확률이 1차 임계값을 만족한다고 결정하면, 시스템은 블록(430)으로 진행하고 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다. 일부 구현예에서, 하나 이상의 자동화된 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 제1 오디오 데이터에 응답하는 하나 이상의 액션(들)(예: 디바이스 볼륨 변경과 같은 통상의 작업)을 직접 트리거하는 것을 포함한다.
계속해서 블록(430)을 참조하면, 구현예에서, 복수의 핫워드 중 하나가 (블록(410)에서 생성된) 제1 오디오 데이터에 존재할 확률이 0.88이고, 그 확률은 블록(425)에서 1차 임계값을 만족시키고 블록(430)에서 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 활성화하기 위해 0.85보다 커야한다고 가정한다. 시스템은, 0.85의 임계값을 만족시키는 0.88의 확률에 기초하여 블록(430)으로 진행하고, 사용자가 의도한 대로 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다.
블록(435)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 사용자의 제2 음성 발화를 캡처하는 제2 오디오 데이터를 수신한다.
블록(440)에서, 시스템은 기계 학습 모델의 복수의 클래스 각각을 사용하여 블록(435)에서 수신된 제2 오디오 데이터를 프로세싱하여 제2 오디오 데이터와 연관된 대응 확률을 생성한다. 구현예에서, 각각의 대응 확률은 제2 오디오 데이터에 존재하는 대응하는 핫워드의 확률과 연관된다. 구현예에서, 생성된 출력은 예를 들어 확률 및/또는 기타 우도 측정값일 수 있다.
블록(445)에서, 시스템은 복수의 핫워드 중 하나(또는 그 이상)가 제2 오디오 데이터(블록(440)에서 생성됨)에 존재할 확률이 2차 임계값을 만족하는지 여부를 결정한다. 블록(445)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률이 2차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(420)으로 진행하고, 흐름도는 종료된다. 반면, 블록(445)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률이 2차 임계값을 만족한다고 결정하면, 시스템은 블록(450)으로 진행한다.
계속 블록(445)을 참조하면, 구현예에서, (블록(440)에서 생성된) 제2 오디오 데이터에 복수의 핫워드 중 하나가 존재할 확률이 0.88이고, 확률이 블록(445)에서 2차 임계값을 만족시키기 위해 0.65 보다 커야한다고 가정한다. 보조 임계값 0.65를 충족하는 0.88의 확률에 기초하여, 시스템이 블록(450)으로 진행한다.
블록(450)에서, 시스템은 복수의 핫워드 중 하나가 (블록(440)에서 생성된) 제2 오디오 데이터에 존재할 확률이 1차 임계값을 만족하는지 여부를 결정한다. 블록(450)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률이 1차 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(460)으로 진행한다. 반면, 블록(450)의 반복에서, 시스템이 복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률이 1차 임계값을 만족한다고 결정하면, 시스템은 블록(455)으로 진행하고 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 개시한다. 일부 구현예에서, 하나 이상의 자동화된 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 제2오디오 데이터에 응답하는 하나 이상의 액션(들)(예: 디바이스 볼륨 변경과 같은 통상의 작업)을 직접 트리거하는 것을 포함한다.
계속 블록(450)을 참조하면, 구현예에서, 복수의 핫워드 중 하나가 (블록(440)에서 생성된) 제2 오디오 데이터에 존재할 확률이 0.88이고, 확률은 블록(450)에서 1차 임계값을 만족하고 블록 (455)에서 하나 이상의 현재 휴면 자동화된 어시스턴트 기능을 활성화하기 위해 0.85보다 커야한다고 가정한다. 시스템은, 0.85의 임계값을 만족시키는 0.88의 확률에 기초하여 블록(455)으로 진행하고, 사용자가 의도한 대로 하나 이상의 현재 휴면 자동화된 어시스턴트 기능이 개시된다.
블록(460)에서, 시스템은 블록(405)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화와 블록(435)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 서로에 대해 하나 이상의 시간적 기준을 만족하는지 여부를 결정한다. 블록(460)의 반복에서, 시스템이 블록(405)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화 및 블록(435)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 서로에 대해 하나 이상의 시간적 기준을 만족하지 않는다고 결정하면, 시스템은 블록(420)으로 진행하고 흐름도는 종료된다. 반면, 블록(360)의 반복에서, 시스템이 블록(405)에서 수신된 제1 오디오 데이터에 의해 캡처된 제1 음성 발화와 블록(435)에서 수신된 제2 오디오 데이터에 의해 캡처된 제2 음성 발화가 서로에 대해 하나 이상의 시간적 기준을 만족한다고 결정하면, 시스템은 블록(465)으로 진행한다.
블록(465)에서, 복수의 핫워드 중 하나가 (블록(415)에서 결정된 바와 같이) 2차 임계값을 만족하지만 (블록(425)에서 결정된 바와 같이) 1차 임계값을 만족하지 않도록 제1 오디오 데이터에 존재할 확률과 복수의 핫워드 중 하나가 (블록(445)에서 결정된 바와 같이) 2차 임계값을 만족하지만 (블록(450)에서 결정된 바와 같이) 1차 임계값을 만족하지 않도록 제2 오디오 데이터에 존재할 확률에 응답하여, 그리고 (블록(460)에서 결정된 바와 같이) 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 시스템은 실패한 핫워드 시도를 식별한다(예를 들어, 시스템은 사용자가 핫워드가 아닌 단어 또는 구를 사용하여 어시스턴트를 호출하려는 시도가 실패했다고 결정한다).
계속 블록(465)을 참조하면, 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 음성 발화와 제2 음성 발화 사이의 유사성이 유사성 임계치를 초과한다는 결정에 추가로 응답한다. 일부 구현예에서, 시스템은 제1 오디오 데이터 및 제2 오디오 데이터가 명령을 포함하는지를 결정하기 위해 음향 특징에 조건화된 모델을 사용한다. 일부 구현예에서, 실패한 핫워드 시도를 식별하는 것은 제1 오디오 데이터 및 제2 오디오 데이터가 명령을 포함한다는 결정에 추가로 응답한다.
블록(470)에서, 시스템은 블록(465)에서 식별된 실패한 핫워드 시도에 대응하는 의도된 핫워드를 결정한다. 일부 구현예에서, 의도된 핫워드는 제1 오디오 데이터의 적어도 일부, 제2 오디오 데이터의 적어도 일부, 및 의도된 핫워드 사이의 음향 유사성에 기초하여 결정될 수 있다.
블록(475)에서, 블록(465)에서 실패한 핫워드 시도를 식별하는 것에 응답하여, 시스템은 실패한 핫워드 시도에 응답하는 힌트를 제공한다. 일부 구현예에서, 힌트를 제공하는 것은 클라이언트 디바이스의 디스플레이에 (블록(470)에서 결정된) 의도된 핫워드를 표시하거나 또는 의도된 핫워드를 포함하는 오디오 응답을 클라이언트 디바이스를 통해 제공하는 것을 포함한다. 일부 구현예에서, 시스템은 블록(475)에서 힌트를 제공하지 않고, 그 대신 블록(470)에서 블록(480)으로 바로 진행할 수 있다.
블록(480)에서, 시스템은 (블록(470)에서 결정된) 의도된 핫워드에 대응하는 액션을 수행한다. 예를 들어, 시스템은 하나 이상의 현재 휴면 자동 어시스턴트 기능을 개시할 수 있습니다. 일부 구현예에서, 하나 이상의 자동 어시스턴트 기능은 인식된 텍스트를 생성하기 위한 음성 인식, NLU 출력을 생성하기 위한 NLU(자연어 이해), 인식된 텍스트 및/또는 NLU 출력에 기반한 응답 생성, 오디오 데이터의 원격 서버로의 전송, 인식된 텍스트의 원격 서버로의 전송, 및/또는 의도된 핫워드에 기초하여 하나 이상의 액션(들)(예: 디바이스 볼륨 변경과 같은 통상의 작업)을 직접 트리거하는 것을 포함한다. 블록(480) 이후, 시스템은 다시 블록(405)로 진행한다.
구현예에서, 시스템은 실패한 핫워드 시도의 오디오 데이터에 기초하여, 핫워드로서 모델에 추가할 새로운 단어를 식별할 수 있다. 예를 들어, 시스템은 실패한 핫워드 시도와 관련된 오디오 데이터에서 캡처된 발화를 기반으로 로컬에서 핫워드 모델(들)을 훈련/미세 조정할 수 있다. 다른 구현예에서, 시스템은 사용자가 실패한 핫워드 시도에서 핫워드로 사용하려고 시도했던 발화의 단어 또는 구를 포함하는 업데이트된 핫워드 모델(들)을 얻기 위해 서버측 시스템을 호출할 수 있다(예: 시스템은 사용자가 말할 것으로 예상되는 명령 유형에 따라 서버에서 더 적합한 핫워드 모델(또는 모델들)을 다운로드할 수 있다.) 일부 구현예에서, 시스템은 (예를 들어, 핫워드의 사용자의 억양/발음을 허용하기 위해) 실패한 핫워드 시도에 기초하여, 하나 이상의 핫워드 임계값을 감소시킬 수 있다.
구현예에서, 핫워드가 컨텍스트에 따라 활성화되는 경우, 시스템은 실패한 핫워드 시도를 사용하여 이러한 새로운 컨텍스트에서 핫워드가 활성화되도록 할 수 있다. 시스템은 특정 핫워드가 미래에 현재 컨텍스트(예: 현재 시간, 애플리케이션 실행 등)에서 작동할 것임을 나타내는 피드백을 힌트로 제공할 수 있다.
다른 구현예에서, 가까운 시간적 근접성 내에서 음향적으로 유사한 다수의 발언을 포함하는 오디오 데이터를 수신하는 것에 응답하여, 시스템은 온-디바이스 음성 인식 엔진을 사용하여 오디오 데이터를 프로세싱하여 텍스트를 생성할 수 있다. 이 경우, 시스템은 예를 들어 음성 인식 엔진에 의해 생성된 텍스트와 지원되는 핫워드 사이의 의미론적 유사성에 기초하여, 의도된 핫워드를 결정하기 위해 자연어 이해를 사용할 수 있다.
방법(300 및 400)의 다양한 구현예에서, 제1 오디오 데이터, 제2 오디오 데이터, 제1 예측 출력, 제2 예측 출력, 확률, 1차 임계값, 2차 임계값, 및/또는 의도한 핫워드는 클라이언트 디바이스에 로컬로 저장될 수 있다. 이러한 방식 및 기타 방식으로 실패한 핫워드 시도의 발생을 완화할 수 있다. 또한, 이를 통해 사용자가 핫워드를 잘못 기억하는 경우 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 온디바이스 기계 학습 모델의 성능을 향상시킬 수 있다.
도 5는 본 명세서에서 설명되는 기법들의 하나 이상의 실시 형태들을 수행하기 위해 선택에 따라 이용될 수 있는 예시적 컴퓨팅 디바이스(510)의 블록도이다. 일부 구현예들에서, 클라이언트 디바이스, 클라우드-기반 자동화된 어시스턴트 컴포넌트(들), 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적 컴퓨팅 디바이스(510)의 하나 이 상의 컴포넌트들을 포함할 수 있다.
컴퓨팅 디바이스(510)는 전형적으로 버스 서브시스템(bus subsystem)(512)을 통해 다수의 주변 디바이스(peripheral device)들과 통신하는 적어도 하나의 프로세서(514)를 포함한다. 이러한 주변 디바이스들은, 예컨대, 메모리 서브시스템(memory subsystem)(525) 및 파일 저장 서브시스템(526)을 포함하는 저장 서브시스템 (storage subsystem)(524), 사용자 인터페이스 출력 디바이스(user interface output device)들(520), 사용자 인터페이스 입력 디바이스(user interface input device)들(522), 그리고 네트워크 인터페이스 서브시스템 (network interface subsystem)(516)을 포함할 수 있다. 입력 및 출력 디바이스들은 컴퓨팅 디바이스(510)와의 사용자 상호작용을 가능하게 한다. 네트워크 인터페이스 서브시스템(516)은 외부 네트워크들에 대한 인터페이스를 제공하고, 그리고 다른 컴퓨팅 디바이스들 내의 대응하는 인터페이스 디바이스들에 결합된다.
사용자 인터페이스 입력 디바이스들(522)은, 키보드(keyboard), 마우스(mouse)와 같은 포인팅 디바이스 (pointing device)들, 트랙볼(trackball), 터치패드(touchpad), 또는 그래픽 태블릿(graphics tablet), 스캐너 (scanner), 디스플레이에 통합된 터치스크린(touchscreen), 목소리 인식 시스템들과 같은 오디오 입력 디바이스들, 마이크로폰들, 그리고/또는 입력 디바이스들의 다른 타입들을 포함할 수 있다. 일반적으로, 용어 "입력 디바이스"의 사용은 컴퓨팅 디바이스(510)에 혹은 통신 네트워크에 정보를 입력하기 위한 디바이스들 및 방식들의 모든 가능한 타입들을 포함하도록 의도된 것이다.
사용자 인터페이스 출력 디바이스들(520)은, 디스플레이 서브시스템(display subsystem), 프린터(printer), 팩스 머신(fax machine), 또는 오디오 출력 디바이스들과 같은 비-시각적 디스플레이( or non-visual display)들을 포함할 수 있다. 디스플레이 서브시스템은, 음극선관(Cathode Ray Tube, CRT), 액정 디스플레이(Liquid Crystal Display, LCD)와 같은 평면-패널 디바이스(flat-panel device), 프로젝션 디바이스(projection device), 또는 시각적 이미지를 생성하기 위한 어떤 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 예를 들어, 오디오 출력 디바이스들을 통해 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 " 출력 디바이스"의 사용은 컴퓨팅 디바이스(510)로부터의 정보를 사용자에게 혹은 또 하나의 다른 머신 또는 컴 퓨팅 디바이스에게 출력하기 위한 디바이스들 및 방식들의 모든 가능한 타입들을 포함하도록 의도된 것이다.
저장 서브시스템(524)은 본 명세서에서 설명되는 모듈들 중 일부 혹은 모두의 기능을 제공하는 프로그래밍 및 데이터 구조들을 저장한다. 예를 들어, 저장 서브시스템(524)은 본 명세서에 개시된 방법의 선택된 양태를 수행할 뿐만 아니라, 도 1a 및 도 1b에 도시된 다양한 컴포넌트들을 구현하는 것을 행하기 위한 로직(logic)을 포함할 수 있다.
이러한 소프트웨어 모듈들은 일반적으로 프로세서(514)에 의해 단독으로 혹은 다른 프로세서들과 결합되어 실행된다. 저장 서브시스템(524)에서 사용되는 메모리 서브시스템(525)은, 프로그램 실행 동안 명령들 및 데이터를 저장하기 위한 메인 랜덤 액세스 메모리(Random Access Memory, RAM)(530)와 그리고 고정된 명령들이 저장된 판독 전용 메모리(Read Only Memory, ROM)(532)를 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(526) 은 프로그램 및 데이터 파일들을 위한 지속적인 저장을 제공할 수 있고, 그리고 하드 디스크 드라이브(hard disk drive), (관련된 탈착가능 매체들(removable media)과 함께) 플로피 디스크 드라이브(floppy disk drive), CD-ROM 드라이브, 광학 드라이브(optical drive), 또는 탈착가능 매체 카트리지(removable media cartridge)들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 저장 서브시스템(524) 내에 파일 저장 서브시스템(526)에 의해 저장될 수 있고, 또는 프로세서(들)(514)에 의해 액세스가능한 다른 머신들 내에 저장될 수 있다.
버스 서브시스템(512)은 컴퓨팅 디바이스(510)의 다양한 컴포넌트들 및 서브시스템들이 의도된 대로 서로 통신 하도록 하기 위한 메커니즘을 제공한다. 비록 버스 서브시스템(512)이 단일 버스로서 도식적으로 보여지지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(510)는, 워크스테이션(workstation), 서버(server), 컴퓨팅 클러스터(computing cluster), 블레이드 서버(blade server), 서버 팜(server farm), 또는 임의의 다른 데이터 프로세싱 시스템 혹은 컴퓨팅 디바이스를 포함하는 다양한 타입들을 가질 수 있다. 컴퓨터들 및 네트워크들의 항상-변하는 특성으로 인해, 도 5에 도시된 컴퓨팅 디바이스(510)의 설명은 단지 일부 구현예들을 예시할 목적으로 특정 예로서만 의도된 것이다. 도 5에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트들을 갖는 컴퓨팅 디바이스(510)의 다수의 다른 구성들이 가능하다.
본 명세서에서 설명되는 시스템들이 사용자들에 대한 개인적 정보를 수집하거나 그렇지 않으면 모니터링하는 상황들에서 또는 개인적 정보 및/또는 모니터링된 정보를 이용할 수 있는 상황들에서, 사용자들은, 프로그램들 혹 은 특징들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크(social network), 소셜 액션들 혹은 활동들, 직업 (profession), 사용자의 선호도(preference)들, 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집할지 여부를 제어할 기회를 제공받을 수 있고, 또는 사용자와 더 관련이 있을 수 있는 콘텐츠를 콘텐츠 서버로부터 수신할지 여부 및/또는 그 수신 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 혹은 사용되기 전에 하나 이상의 방식들로 처리될 수 있고, 이에 따라 개인적 식별가능 정보는 제거되게 된다. 예를 들어, 사 용자의 신원(identity)은 사용자에 대한 어떠한 개인적 식별가능 정보도 결정될 수 없도록 처리될 수 있고, 또는 지리적 위치 정보가 획득되는 사용자의 지리적 위치는 (예를 들어, 도시 수준으로, ZIP 코드 수준으로, 또는 주(stat) 수준으로) 일반화될 수 있고, 이에 따라 사용자의 특정 지리적 위치는 결정될 수 없게 된다. 따라서, 사용자는 사용자에 대한 어떤 정보가 수집되고 그리고/또는 사용되는지에 관한 제어를 가질 수 있다.
여러 구현이 여기에 설명되고 예시되었지만, 기능을 수행하고 및/또는 여기에 설명된 결과 및/또는 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 활용될 수 있으며, 각각의 이러한 변형 및/또는 수정은 여기에 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성은 교시가 사용되는 특정 응용 또 는 응용에 의존할 것이라는 것을 의미한다. 당업자는 단지 일상적인 실험을 사용하여 본 명세서에 설명된 특정 구현에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현은 단지 예로서 제시된 것이며, 첨부된 청구 범위 및 그 균등물의 범위 내에서 구현이 구체적으로 설명되고 청구된 것과 달리 실행될 수 있다는 것을 이해해야 한다. 본 개시 내용의 구현은 본원에 기재된 각각의 개별적 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 둘 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합(이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하지 않는 경우)은 본 개시의 범위 내에 포함된다.

Claims (18)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1 음성 발화를 캡쳐하는 제1 오디오 데이터를 수신하는 단계;
    하나 이상의 기계 학습 모델을 사용하여 상기 제1 오디오 데이터를 프로세싱하여 하나 이상의 핫워드가 제1 오디오 데이터에 존재할 확률을 나타내는 제1 예측 출력을 생성하는 단계;
    상기 제1 예측 출력이 2차 임계값은 만족하지만 1차 임계값은 만족하지 않는 것으로 결정하는 단계 -상기 2차 임계값은 오디오 데이터에 존재하는 하나 이상의 핫워드를 상기 1차 임계값 보다 덜 나타냄-;
    상기 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발화를 캡쳐하는 제2 오디오 데이터를 수신하는 단계;
    상기 하나 이상의 기계 학습 모델을 사용하여 상기 제2 오디오 데이터를 프로세싱하여 상기 하나 이상의 핫워드가 상기 제2 오디오 데이터에 존재할 확률을 나타내는 제2 예측 출력을 생성하는 단계;
    상기 제2 예측 출력이 상기 2차 임계값을 만족하지만 상기 1차 임계값을 만족하지 않는 것으로 결정하는 단계;
    상기 제1 예측 출력과 상기 제2 예측 출력이 상기 2차 임계값은 만족하지만 상기 1차 임계값은 만족하지 않는 것에 응답하여, 그리고 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 실패한 핫워드 시도를 식별하는 단계; 그리고
    상기 실패한 핫워드 시도의 식별에 대한 응답으로, 상기 실패한 핫워드 시도에 응답하는 힌트를 제공하는 단계를 포함하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  2. 제1항에 있어서,
    상기 실패한 핫워드 시도를 식별하는 단계는,
    상기 제1 음성 발화 및 상기 제2 음성 발화 사이의 유사성이 유사성 임계치를 초과한다고 결정하는 것에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 실패한 핫워드 시도를 식별하는 단계는,
    상기 제1 예측 출력에 의해 표시된 확률과 상기 제2 예측 출력에 의해 표시된 확률이 하나 이상의 핫워드 중 동일한 핫워드에 대응한다고 결정하는 것에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 방법은,
    음향 특징에 조건화된 모델을 사용하여 상기 제1 오디오 데이터 및 상기 제2 오디오 데이터가 명령을 포함한다고 결정하는 단계를 더 포함하고,
    상기 실패한 핫워드 시도를 식별하는 단계는 상기 명령을 포함하는 제1 오디오 데이터 및 제2 오디오 데이터에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 방법은,
    상기 실패한 핫워드 시도에 대응하는 의도된 핫워드를 결정하는 단계를 더 포함하는 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  6. 제5항에 있어서,
    상기 의도된 핫워드는 상기 제1 오디오 데이터의 적어도 일부, 상기 제2 오디오 데이터의 적어도 일부, 및 상기 의도된 핫워드 사이의 음향 유사도에 기초하여 결정되는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 힌트를 제공하는 단계는,
    상기 클라이언트 디바이스의 디스플레이 상에 상기 의도된 핫워드를 표시하거나 또는 상기 클라이언트 디바이스에 의해 상기 의도된 핫워드를 포함한 오디오 응답을 제공하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 방법은,
    의도한 핫워드에 대응하는 액션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  9. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제1 음성 발화를 캡쳐하는 제1 오디오 데이터를 수신하는 단계;
    기계 학습 모델의 복수의 클래스 각각을 사용하여 상기 제1 오디오 데이터를 프로세싱하여 상기 제1 오디오 데이터와 연관된 대응 확률을 생성하는 단계, 상기 클래스 각각은 복수의 핫워드 중 대응하는 핫워드와 연관되며 각각의 대응 확률은 상기 제1 오디오 데이터에 존재하는 대응하는 핫워드의 확률과 연관되고;
    복수의 핫워드 중 하나가 상기 제1 오디오 데이터에 존재할 확률이 2차 임계값을 만족하지만 1차 임계값은 만족시키지 않는 것으로 결정하는 단계 -상기 2차 임계값은 오디오 데이터에 존재하는 복수의 핫워드 중 하나를 상기 1차 임계값 보다 덜 나타냄-;
    상기 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해, 사용자의 제2 음성 발화를 캡쳐하는 제2 오디오 데이터를 수신하는 단계;
    기계 학습 모델의 복수의 클래스 각각을 사용하여 상기 제2 오디오 데이터를 프로세싱하여 상기 제2 오디오 데이터와 연관된 대응 확률을 생성하는 단계 -상기 각각의 대응 확률은 상기 제2 오디오 데이터에 존재하는 대응하는 핫워드의 확률과 연관됨-;
    복수의 핫워드 중 하나가 제2 오디오 데이터에 존재할 확률이 상기 2차 임계값을 만족하지만 상기 1차 임계값을 만족하지 않는 것으로 결정하는 단계;
    복수의 핫워드 중 하나가 2차 임계값을 만족하지만 1차 임계값을 만족하지 않도록 제1 오디오 데이터에 존재할 확률 및 복수의 핫워드 중 하나가 2차 임계값을 만족하지만 1차 임계값을 만족하지 않도록 제2 오디오 데이터에 존재할 확률에 응답하여, 그리고 서로에 대해 하나 이상의 시간적 기준을 만족하는 제1 음성 발화 및 제2 음성 발화에 응답하여, 실패한 핫워드 시도를 식별하는 단계; 및
    상기 실패한 핫워드 시도의 식별에 대한 응답으로, 상기 실패한 핫워드 시도에 응답하는 힌트를 제공하는 단계를 포함하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  10. 제9항에 있어서,
    상기 실패한 핫워드 시도를 식별하는 단계는,
    상기 제1 음성 발화와 상기 제2 음성 발화 간의 유사성이 유사성 임계치를 초과한다는 결정에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  11. 제9항 또는 제10항에 있어서, 상기 방법은,
    음향 특징에 조건화된 모델을 사용하여 상기 제1 오디오 데이터 및 상기 제2 오디오 데이터가 명령을 포함한다는 것을 결정하는 단계를 더 포함하고,
    상기 실패한 핫워드 시도를 식별하는 단계는 상기 명령을 포함하는 제1 오디오 데이터 및 제2 오디오 데이터에 추가로 응답하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 방법은,
    상기 실패한 핫워드 시도에 대응하는 의도된 핫워드를 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  13. 제12항에 있어서,
    상기 의도된 핫워드는 상기 제1 오디오 데이터의 적어도 일부, 상기 제2 오디오 데이터의 적어도 일부, 및 상기 의도된 핫워드 사이의 음향 유사도에 기초하여 결정되는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  14. 제12항 또는 제13항에 있어서,
    상기 힌트를 제공하는 단계는, 상기 클라이언트 디바이스의 디스플레이 상에 상기 의도된 핫워드를 표시하거나 또는 상기 클라이언트 디바이스에 의해 상기 의도된 핫워드를 포함한 오디오 응답을 제공하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 의도한 핫워드에 해당하는 액션을 수행하도록 실행가능한 프로그램 명령어를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  16. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제15항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램 제품.
  17. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제15항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독 가능 저장 매체.
  18. 시스템으로서,
    프로세서, 컴퓨터-판독가능 메모리, 하나 이상의 컴퓨터-판독가능 저장 매체, 및 상기 하나 이상의 컴퓨터-판독가능 저장 매체에 집합적으로 저장된 프로그램 명령어를 포함하며, 상기 프로그램 명령어는 제1항 내지 제15항 중 어느 하나의 방법을 수행하도록 실행가능한 것을 특징으로 하는 시스템.
KR1020227042196A 2020-10-13 2021-10-12 거의 일치하는 핫워드 또는 구문 검출 KR20230005966A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063091237P 2020-10-13 2020-10-13
US63/091,237 2020-10-13
US17/081,645 2020-10-27
US17/081,645 US11830486B2 (en) 2020-10-13 2020-10-27 Detecting near matches to a hotword or phrase
PCT/US2021/054606 WO2022081590A1 (en) 2020-10-13 2021-10-12 Detecting near matches to a hotword or phrase

Publications (1)

Publication Number Publication Date
KR20230005966A true KR20230005966A (ko) 2023-01-10

Family

ID=81078282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042196A KR20230005966A (ko) 2020-10-13 2021-10-12 거의 일치하는 핫워드 또는 구문 검출

Country Status (5)

Country Link
US (2) US11830486B2 (ko)
EP (1) EP4133480A1 (ko)
KR (1) KR20230005966A (ko)
CN (1) CN115699166A (ko)
WO (1) WO2022081590A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11557278B2 (en) * 2020-12-10 2023-01-17 Google Llc Speaker dependent follow up actions and warm words

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255386A (en) * 1990-02-08 1993-10-19 International Business Machines Corporation Method and apparatus for intelligent help that matches the semantic similarity of the inferred intent of query or command to a best-fit predefined command intent
TW323364B (ko) * 1993-11-24 1997-12-21 At & T Corp
FI116991B (fi) * 1999-01-18 2006-04-28 Nokia Corp Menetelmä puheen tunnistamisessa, puheentunnistuslaite ja puheella ohjattava langaton viestin
US7920682B2 (en) * 2001-08-21 2011-04-05 Byrne William J Dynamic interactive voice interface
US8719039B1 (en) 2013-12-05 2014-05-06 Google Inc. Promoting voice actions to hotwords
US10650802B2 (en) * 2017-07-05 2020-05-12 Panasonic Intellectual Property Management Co., Ltd. Voice recognition method, recording medium, voice recognition device, and robot
US11348581B2 (en) * 2019-07-12 2022-05-31 Qualcomm Incorporated Multi-modal user interface

Also Published As

Publication number Publication date
US11830486B2 (en) 2023-11-28
WO2022081590A1 (en) 2022-04-21
CN115699166A (zh) 2023-02-03
US20220115011A1 (en) 2022-04-14
US20240055002A1 (en) 2024-02-15
EP4133480A1 (en) 2023-02-15

Similar Documents

Publication Publication Date Title
US11817080B2 (en) Using corrections, of predicted textual segments of spoken utterances, for training of on-device speech recognition model
US11741953B2 (en) Using corrections, of automated assistant functions, for training of on-device machine learning models
AU2020466345B2 (en) User mediation for hotword/keyword detection
US11972766B2 (en) Detecting and suppressing commands in media that may trigger another automated assistant
US20240021207A1 (en) Multi-factor audio watermarking
US20240055002A1 (en) Detecting near matches to a hotword or phrase
AU2024200224A1 (en) Detecting and handling failures in automated voice assistants
US12014739B2 (en) Using corrections, of automated assistant functions, for training of on-device machine learning models
US20240112673A1 (en) Identifying and correcting automatic speech recognition (asr) misrecognitions in a decentralized manner