KR20230147157A - 어시스턴트 명령(들)의 컨텍스트적 억제 - Google Patents

어시스턴트 명령(들)의 컨텍스트적 억제 Download PDF

Info

Publication number
KR20230147157A
KR20230147157A KR1020237031864A KR20237031864A KR20230147157A KR 20230147157 A KR20230147157 A KR 20230147157A KR 1020237031864 A KR1020237031864 A KR 1020237031864A KR 20237031864 A KR20237031864 A KR 20237031864A KR 20230147157 A KR20230147157 A KR 20230147157A
Authority
KR
South Korea
Prior art keywords
audio data
user
phrases
client device
specific words
Prior art date
Application number
KR1020237031864A
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 KR20230147157A publication Critical patent/KR20230147157A/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • G10L15/05Word boundary detection
    • 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/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • 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)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일부 구현은 어시스턴트 명령과 연관된 특정 단어(들) 및/또는 구(들)(예를 들어, 웜 워드)에 대응하는 오디오 데이터의 부분을 결정하기 위해, 웜 워드 모델(들)을 사용하여, 오디오 데이터 스트림을 처리하고, ASR 출력을 생성하기 위해, ASR(자동 스피치 인식) 모델을 사용하여, 오디오 데이터의 프리앰블 부분(예: 웜 워드에 선행하는) 및/또는 오디오 데이터의 포스트앰블 부분(예: 웜 워드에 후속하는)을 처리하며, ASR 출력 처리를 기초로, 사용자가 어시스턴트 명령을 수행하려고 의도했는지 여부를 결정한다. 추가 또는 대체 구현예에서 오디오 데이터가 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하고 해당 사용자가 어시스턴트 명령을 수행하도록 인증되었는지 여부를 결정하기 위하여 SID(화자 식별) 모델을 사용하여 오디오 데이터 스트림을 처리할 수 있다.

Description

어시스턴트 명령(들)의 컨텍스트적 억제
본 명세서에서 인간은 “자동화 어시스턴트”(“챗봇”, “대화형 개인 어시스턴트”, “지능형 개인 어시스턴트”, “개인 음성 어시스턴트”, “대화 에이전트” 등으로도 지칭됨)로 지칭되는 대화형 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동화 어시스턴트와 상호작용할 때 “사용자”로 지칭될 수 있음)은 자동화 어시스턴트에 제공될 수 있는 음성 자연어 입력(즉, 음성 발언), 일부 경우에는, 텍스트로 변환된 후 처리되는, 및/또는 텍스트(예: 타이팅된) 자연어 입력을 제공한다. 자동화 어시스턴트는 일반적으로 반응형 사용자 인터페이스 출력(예: 청각적 및/또는 시각적 사용자 인터페이스 출력)을 제공하고, 스마트 디바이스(들)를 제어하고, 및/또는 다른 액션(들)을 수행하여 음성 발언에 응답한다.
자동화 어시스턴트는 일반적으로 음성 발언을 해석하고 응답하는 구성 요소 파이프라인에 의존한다. 예를 들어, 자동 스피치 인식(ASR) 엔진은 상기 음성 발언의 전사(즉, 일련의 용어(들) 및/또는 기타 토큰(들))와 같은 ASR 출력을 생성하기 위하여 사용자의 음성 발언에 대응하는 오디오 데이터를 처리할 수 있다. 또한, 자연어 이해(NLU) 엔진은 음성 발언을 제공하는 사용자의 의도 및 선택적으로 의도와 연관된 파라미터(들)에 대한 슬롯 값(들)과 같은 NLU 출력을 생성하기 위하여 상기 ASR 출력을 처리할 수 있다. 또한 이행 엔진을 사용하여 NLU 출력을 처리하고 음성 발언에 대한 응답 콘텐츠를 얻기 위해 구조화된 요청과 같은 이행 출력을 생성할 수 있다.
일부 경우에, 이 구성 요소 파이프라인은 우회될 수 있다. 예를 들어, 일부 기계 학습(ML) 모델(“웜 워드 모델”이라고도 함)은 이행 출력에 직접 매핑되는 특정 단어 및/또는 문구(“웜 워드”라고도 함)를 검출하도록 트레이닝될 수 있다. 예를 들어, 사용자가 음악을 듣고 있을 때 “volume up” 음성 발언을 제공하는 경우 이러한 ML 모델 중 하나 이상이 오디오 데이터를 처리하고, 어떤 ASR 출력 및/또는 NLU 출력의 생성 없이 음악을 재생하는 장치의 볼륨을 높이도록 하는 구조화된 요청을 생성할 수 있다. 그러나 이러한 웜 워드는 일반적으로 일상 스피치에서 발생할 수 있는 일반적인 단어 및/또는 문구이다. 결과적으로 이러한 웜 워드와 관련된 어시스턴트 명령이 사용자에 의해 의도치 않게 촉발될 수 있으며, 이로 인해 계산 리소스가 낭비될 수 있다. 또한, 이러한 경우 중 일부에서는 사용자가 이러한 어시스턴트 명령 중 일부를 실행 취소해야 하므로 계산 리소스가 더 낭비될 수 있다.
본 명세서에 개시된 구현예는 하나 이상의 특정 단어 및/또는 문구를 포함하는 음성 발언을 제공한 사용자의 신원 및/또는 컨텍스트적 오디오 데이터를 기반으로 하나 이상의 특정 단어 및/또는 문구(예: 웜 워드)와 연관된 어시스턴트 명령의 수행(또는 실행)을 컨텍스트적으로 억제하는 것에 관한 것이다. 일부 구현예에서는 하나 이상의 웜 워드 모델을 사용하여, 어시스턴트 명령과 관련된 특정 단어 및/또는 문구에 대응하는 오디오 데이터의 일부를 결정하기 위하여 오디오 데이터 스트림을 처리한다. 이러한 구현예들 중 일부는, ASR(자동 스피치 인식) 모델을 사용하여, ASR 출력을 생성하기 위하여, 오디오 데이터의 프리앰블 부분(예를 들어, 특정 단어 및/또는 문구 중 하나 이상에 해당하는 오디오 데이터 부분보다 선행하는 오디오 데이터 부분) 및/또는 오디오 데이터의 포스트앰블 부분(예를 들어, 특정 단어 및/또는 문구 중 하나 이상에 해당하는 오디오 데이터 부분 후속하는 오디오 데이터 부분)을 처리한다. 더욱이, 이러한 구현예들 중 일부는 ASR 출력 처리에 기초하여, 오디오 데이터에 캡처된 음성 발언을 제공한 사용자가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하려고 의도했는지 여부를 결정한다. 추가 또는 대체 구현은 오디오 데이터가 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 사용자를 식별하는 데 충분한지 여부를 결정하기 위해 화자 식별(SID) 모델을 사용하여 오디오 데이터 스트림을 처리할 수 있고, 음성 발언을 제공한 사용자가 어시스턴트 명령을 수행하도록 인증되었는지 여부를 결정한다.
예를 들어, 사용자의 클라이언트 디바이스에 전화 통화가 수신되었다고 가정한다. 또한, 클라이언트 디바이스의 사용자가 클라이언트 디바이스에서 수신되는 전화 통화에 응답하여 음성 발언으로 “answer”를 제공한다고 가정한다. 이 예에서, “answer”가 클라이언트 디바이스에서 적어도 부분적으로 구현된 자동화 어시스턴트가 전화 통화에 응답하게 하는 어시스턴트 명령과 연관된 웜 워드라고 가정하면, 자동화 어시스턴트는 하나 이상의 웜 워드 모델을 사용하여 웜 워드 답변의 발생을 검출하는 것을 기초로 사용자를 대신하여 전화 통화에 “answer” 할 수 있다. 대조적으로, 클라이언트 디바이스의 사용자가 클라이언트 디바이스에서 수신되는 전화 통화에 대한 응답으로 “I don't want to answer that” 이라는 음성 발언을 대신 제공한다고 가정한다. 이 예에서, 자동화 어시스턴트는 하나 이상의 웜 워드 모델을 사용하여 “answer”의 웜 워드 발생을 검출함에도 불구하고 자동화 어시스턴트가 사용자를 대신하여 전화 통화에 응답해서는 안 된다는 것을 결정하기 위해 컨텍스트적 오디오 데이터를 처리할 수 있다.
일부 구현예에서, 웜 워드 모델 중 하나 이상을 활용하는 하나 이상의 자동화 어시스턴트 구성요소는 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여 활성화될 수 있다. 웜 워드 활성화 이벤트는 예를 들어 전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션 및/또는 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스가 제어되도록 하기 위해 사용자가 음성 발언을 제공할 수 있는 클라이언트 디바이스와 연관된 다른 이벤트를 포함할 수 있다. 특히 이러한 웜 워드 활성화 이벤트 중 일부는 개별 이벤트(예를 들어, 클라이언트 디바이스에서 전화 통화가 수신되고, 클라이언트 디바이스에서 문자 메시지가 수신되고, 클라이언트 디바이스에서 이메일이 수신되고, 클라이언트 디바이스에서 알람 또는 타이머가 울리는 경우 등)인 반면, 이러한 웜 워드 활성화 이벤트 중 일부는 연속 이벤트(예: 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션)이다. 또한 이러한 웜 워드 활성화 이벤트는 상호 배타적이지 않다는 점에 유의해야 한다. 다르게 말하면, 하나 이상의 자동화 어시스턴트 구성 요소가 여러 개의 서로 다른 웜 워드 활성화 이벤트를 기반으로 웜 워드를 적극적으로 모니터링하도록 여러 개의 웜 워드 활성화 이벤트가 주어진 시간 인스턴스에서 검출될 수 있다.
본 명세서에 설명된 웜 워드 모델은 하나 이상의 특정 단어 및/또는 검출되면 자동화 어시스턴트로 하여금 하나 이상의 특정 단어 및/또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 문구(예를 들어 웜 워드)를 검출하도록 트레이닝된 복수의 서로 다른 웜 워드 모델(예: 오디오 키워드 분류 모델)을 포함할 수 있다. 일부 구현예에서, 주어진 웜 워드 모델은 주어진 웜 워드 활성화 이벤트와 연관된 단어 및/또는 문구의 특정 서브셋을 검출하도록 트레이닝될 수 있다. 예를 들어, 클라이언트 디바이스 또는 클라이언트 디바이스(예: 스마트 스피커)와 통신하는 다른 클라이언트 디바이스에서 음악이 재생되고 있다고 가정한다. 이 예에서, 주어진 웜 워드 모델은 음악의 제어와 관련된 어시스턴트 명령이 수행되도록 하는 음악을 일시정지 시킬 수 있는 “pause” 웜 워드, 일시 정지된 후에 음악을 다시 시작하게 할 수 있는 “resume” 웜 워드, 음악의 볼륨을 높일 수 있는 “volume up” 웜 워드, 음악의 볼륨을 낮추게 할 수 있는 “volume down” 웜 워드, 음악이 다음 노래로 건너뛰게 할 수 있는 “next” 웜 워드, 그리고 음악과 연관된 기타 다른 특정 단어 및/또는 문구와 같은 특정 단어 및/또는 문구의 서브셋을 검출하도록 트레이닝될 수 있다. 따라서 이 예에서, 주어진 웜 워드 모델을 활용하는 현재 휴면 어시스턴트 기능 중 하나 이상이, 음악이 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 다른 클라이언트 디바이스에서 재생되고 있다는 결정에 응답하여 활성화될 수 있다.
추가적인 또는 대안적인 구현예에서, 주어진 웜 워드 활성화 이벤트와 연관된 단어 및/또는 문구의 서브셋을 검출하도록 다중 웜 워드 모델이 트레이닝될 수 있다. 위의 예를 계속하면, 제1 웜 워드 모델은 “pause” 웜 워드 및 “resume” 웜 워드와 같은 하나 이상의 제1 특정 단어 및/또는 문구를 검출하도록 트레이닝될 수 있고, 제2 웜 워드 모델은 “volume up” 웜 워드 및 “volume down” 웜 워드와 같은 하나 이상의 제2 특정 단어 및/또는 문구를 검출하도록 트레이닝될 수 있으며, 제3 웜 워드 모델은 “next” 웜 워드, 음악 웜 워드 활성화 이벤트와 관련된 다른 특정 단어 및/또는 문구에 대한 단어 등과 같은 하나 이상의 제3 특정 단어 및/또는 문구를 검출하도록 트레이닝될 수 있다. 따라서 이 예에서, 적어도 제1 웜 워드 모델, 제2 웜 워드 모델 및 제3 웜 워드 모델을 활용하는 현재 휴면 중인 어시스턴트 기능 중 하나 이상이 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 다른 클라이언트 디바이스에서 음악이 재생 중이라는 결정에 응답하여 활성화될 수 있다.
일부 구현예에서, 그리고 오디오 데이터의 스트림에서 검출되는 특정 단어 및/또는 문구 중 하나 이상에 응답하여, 음성 발언을 제공한 사용자가 실제로 검출된 특정 단어 및/또는 문구 중 하나 이상과 연관된 어시스턴트 명령이 수행되도록 의도했는지 여부를 결정하기 위해 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분이 처리될 수 있다. 예를 들어, 다시 사용자의 클라이언트 디바이스에서 전화 통화가 수신되었다고 가정하고, 클라이언트 디바이스의 사용자가 클라이언트 디바이스에 수신된 전화 통화에 대한 응답으로 “I don't want to answer that”라는 음성 발언을 제공한다고 가정한다. 이 예에서 오디오 데이터의 프리앰블 부분(예: “I don't want to”에 대응하는)은 클라이언트 디바이스의 오디오 버퍼에서 획득될 수 있으며 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 처리될 수 있다.
또한 ASR 출력은 NLU 출력을 생성하기 위해 NLU 모델을 사용하여 처리될 수 있다. 이 예에서 ASR 출력 및/또는 NLU 출력은 자동화 어시스턴트 장치가 사용자를 대신하여 전화 통화에 응답하도록 하기 위해 사용자가 “answer” 할 의도가 없었음을 나타낸다. 이러한 구현예의 일부 버전에서, 하나 이상의 특정 단어 및/또는 문구(예: “answer”에 해당)에 해당하는 오디오 데이터 부분은 추가로 또는 대안적으로 ASR 출력 및 NLU 출력을 생성하기 위해 오디오 데이터의 프리앰블 부분과 함께 처리될 수 있다. 이러한 구현예의 일부 버전에서, 오디오 데이터의 포스트앰블 부분(예를 들어 “that”에 대응하는)은 추가로 또는 대안적으로 ASR 출력 및 NLU 출력을 생성하기 위하여 오디오 데이터의 프리앰블 부분 및/또는 하나 이상의 특정 단어 및/또는 문구에 대응하는 오디오 데이터의 부분과 함께 처리될 수 있다.
이러한 구현예의 일부 버전에서, ASR 모델 및/또는 NLU 모델을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 구성 요소는 특정 단어 및/또는 문구 중 하나 이상에 추가되는 추가 목소리 활동을 검출하는 것에 대한 응답으로 활성화될 수 있다. 예를 들어, 추가 목소리 활동이 있는지 결정하기 위하여 VAD(목소리 활동 검출) 모델을 사용하여 오디오 데이터 스트림을 처리할 수 있다. 추가 목소리 활동이 검출되는 구현예에서, 오디오 데이터의 프리앰블 부분, 특정 단어 및/또는 문구 중 하나 이상에 해당하는 오디오 데이터 부분, 및/또는 오디오 데이터의 포스트앰블 부분을 처리하기 위하여, ASR 모델 및/또는 NLU 모델을 활용하는 현재 휴면 중인 자동화 어시스턴트 구성 요소 중 하나 이상이 활성화될 수 있다. 추가 목소리 활동이 검출되지 않는 구현예에서, ASR 모델 및/또는 NLU 모델을 활용하는 현재 휴면 중인 자동화 어시스턴트 구성요소 중 하나 이상은 휴면 상태로 유지될 수 있으며, 특정 목소리 활동 중 하나 이상과 연관된 어시스턴트 명령 단어 및/또는 문구를 수행할 수 있다.
다양한 구현예에서, 음성 발언을 제공한 사용자의 신원은 어시스턴트 명령을 수행하기 전에 검증되어야 한다. 예를 들어, 특정 웜 워드 활성화 이벤트, 특정 장치 및/또는 특정 소프트웨어 애플리케이션과 연관된 어시스턴트 명령은 사용자의 신원 검증을 요구할 수 있다. 예를 들어, 어시스턴트 명령으로 인해 자동화 어시스턴트가 전자 통신(예를 들어, 전화 통화, 문자 메시지, 이메일, 소셜 미디어 메시지 및/또는 기타 전자 통신)에 응답하게 되는 구현예에서, 음성 발언을 제공한 사용자는 자동화 어시스턴트가 전자 통신에 응답하기 전에 검증되어야 할 수도 있다. 또한, 예를 들어, 어시스턴트 명령으로 인해 자동화 어시스턴트가 특정 스마트 장치(예: 스마트 잠금 장치, 스마트 오븐, 스마트 차고문 등)를 제어하게 되는 구현예에서, 음성 발언을 제공한 사용자는 자동화 어시스턴트가 특정 스마트 장치를 제어하기 전에 검증되어야 할 수도 있다. 그러나 일부 어시스턴트 명령에서는 어시스턴트 명령을 수행하기 전에 사용자의 신원을 검증할 것을 요구하지 않을 수도 있다. 예를 들어, 어시스턴트 명령으로 인해 자동화 어시스턴트가 미디어(예: 음악, 비디오, TV 쇼 및/또는 기타 미디어)를 제어하게 되는 구현예에서, 음성 발언을 제공한 사용자는 자동화 어시스턴트가 전자 통신에 응답하기 전에 검증될 필요가 없을 수도 있다. 또한, 예를 들어, 어시스턴트 명령으로 인해 자동화 어시스턴트가 다른 특정 스마트 장치(예: 스마트 조명, 스마트 시계 등)를 제어하게 되는 구현예에서, 음성 발언을 제공한 사용자는 자동화 어시스턴트가 특정 스마트 장치를 제어하기 전에 될 필요가 없을 수도 있다.
위에서 언급한 것처럼 오디오 데이터 스트림은 음성 발언을 제공한 사용자의 신원을 검증하기 위해 SID 모델을 사용하여 처리될 수 있다. 이러한 구현예의 일부 버전에서, 이전에 생성된 하나 이상의 텍스트 종속(TD) 화자 임베딩이 사용자에 대한 하나 이상의 특정 단어 및/또는 문구에 대해 클라이언트 디바이스에서 액세스 가능하다고 가정하면, 특정 단어 및/또는 문구 중 하나 이상에 해당하는 오디오 데이터 부분은 TD 화자 임베딩을 생성하기 위해 TD SID 모델을 사용하여 처리될 수 있다. 생성된 TD 화자 임베딩은 음성 발언이 인증된 사용자의 것인지 여부를 결정하기 위하여, 클라이언트 디바이스에서 액세스할 수 있는 사용자를 위해 이전에 생성된 TD 화자 임베딩 중 하나 이상과 효과적으로 비교될 수 있다. 특히, TD SID의 하나 이상의 특정 단어 및/또는 문구는 자동화 어시스턴트를 호출하도록 구성된 하나 이상의 호출 문구(예: 핫 단어 및/또는 트리거 단어 예를 들어 “Hey Assistant”, “OK Assistant” 및/또는 “Assistant”) 또는 여기에 설명된 하나 이상의 웜 워드로 제한될 수 있다.
이러한 구현예의 일부 추가 또는 대체 버전에서, 이전에 생성된 하나 이상의 텍스트 독립(TI) 화자 임베딩이 사용자를 위해 클라이언트 디바이스에서 액세스 가능하다고 가정하면, 오디오 데이터 스트림에서 음성 발언에 해당하는 오디오 데이터는 TI 화자 임베딩을 생성하기 위하여 TI SID 모델을 사용하여 처리될 수 있다. 생성된 TI 화자 임베딩은 음성 발언이 인증된 사용자의 것인지 여부를 결정하기 위하여, 클라이언트 디바이스에서 액세스할 수 있는 사용자를 위해 이전에 생성된 TI 화자 임베딩 중 하나 이상과 효과적으로 비교될 수 있다. 특히, TD SID에서 TI는 이전에 생성된 하나 이상의 TI 화자 임베딩이 자동화 어시스턴트를 호출하도록 구성된 하나 이상의 호출 문구(예를 들어, “Hey Assistant”, “OK Assistant” 및/또는 “Assistant”와 같은 핫(hot) 단어 및/또는 트리거(trigger) 단어) 또는 여기서 설명된 하나 이상의 웜 워드로 제한되지 않을 수 있다.
따라서 이러한 구현예의 일부 버전에서는, 음성 발언이 TI SID를 수행하기에 충분한 길이인지 결정하기 위하여 오디오 데이터 스트림에 캡처된 음성 발언의 길이를 길이 임계값과 비교할 수 있다. 음성 발언의 길이가 TI SID를 수행하기에 충분한 경우, 사용자의 신원을 검증하기 위해 TI SID 모델 및/또는 TD SID 모델을 사용하여 음성 발언에 해당하는 오디오 데이터를 처리할 수 있다. 그러나 음성 발언의 길이가 TI SID를 수행하기에 부족하더라도, 음성 발언에 해당하는 오디오 데이터는 사용자의 신원을 검증하기 위해 TD SID 모델을 사용하여 계속 처리될 수 있다. 음성 발언의 길이가 TI SID를 수행하기에 충분하지 않다고 가정하면(및/또는 TI SID가 사용자의 신원을 검증하기에 충분하지 않음), TD SID가 사용자의 신원을 검증하기에 충분하지 않다고 가정하면, TI SID를 수행하기 위해 또는 이전에 생성된 하나 이상의 TD 화자 임베딩을 사용할 수 있는 특정 용어 및/또는 문구에 해당하는 예제 발화(여기서 예제 발화는 길이가 충분한 길이이다(또는 충분히 길다))를 포함하는 프롬프트가 사용자에게 제시되기 위해 제공될 수 있다. 추가적으로 또는 대안적으로, 프롬프트는 어시스턴트 명령이 수행되도록 사용자에게 다른 형태의 생체 인식 식별(예: 얼굴 지문 검증 및/또는 지문 인증)을 제공하도록 요청할 수 있다.
여기에 설명된 기술을 사용하면 하나 이상의 기술적 이점이 달성될 수 있다. 하나의 비제한적인 예로서, 여기에 설명된 기술을 통해 자동화 어시스턴트는 웜 워드에 대한 컨텍스트적 오디오 데이터 처리를 기반으로, 사용자가 실제로 어시스턴트 명령을 수행하기 위해 웜 워드의 발생을 의도하는지 여부를 결정할 수 있다. 결과적으로 웜 워드에 대한 잘못된 긍정의 양이 줄어들 수 있으므로 자동화 어시스턴트가 어시스턴트 명령을 수행하기 위해 하나 이상의 네트워크를 활용하는 경우들에 있어서 클라이언트 디바이스의 계산 리소스 및/또는 네트워크 리소스가 절약된다. 또한, 클라이언트 디바이스의 사용자가 임의의 어시스턴트 명령을 수정하거나 실행 취소하기 위한 조치를 취할 필요가 없으므로 사용자 입력의 양이 줄어들 수 있으며, 이에 따라 클라이언트 디바이스의 계산 리소스가 절약된다. 더욱이, 본 명세서에 설명된 다양한 자동화 어시스턴트 기능은 본 명세서에 설명된 바와 같이 필요할 때까지 휴면 상태로 유지될 수 있으며, 이에 따라 클라이언트 디바이스에서 계산 리소스를 절약할 수 있다. 다른 비제한적인 예로서, 본 명세서에 설명된 기술은 자동화 어시스턴트가 SID 및/또는 다른 기술을 사용하여 웜 워드를 포함하는 음성 발언을 제공하는 사용자의 신원을 검증할 수 있게 한다. 결과적으로 인증된 사용자만 특정 어시스턴트 명령을 수행할 수 있으므로 클라이언트 디바이스 사용자와 관련된 데이터의 데이터 보안이 향상된다.
위의 설명은 본 명세서에 개시된 일부 구현예의 개요로서 제공된다. 이러한 구현 및 다른 구현이 본 명세서에 추가로 자세히 설명되어 있다.
전술한 개념과 본 명세서에 더 자세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 발명의 일부인 것으로 고려된다는 것이 이해되어야 한다. 예를 들어, 본 개시의 마지막 부분에 나타나는 청구된 발명의 모든 조합은 본 명세서에 개시된 발명의 일부인 것으로 고려된다.
도 1은 본 개시의 다양한 측면을 설명하고 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도를 도시한다.
도 2는 다양한 구현 예에 따라 도 1의 다양한 구성요소를 사용하여 본 개시의 다양한 측면을 입증하는 예시적인 프로세스 흐름을 도시한다.
도 3은 다양한 구현 예에 따라 컨텍스트적 오디오 데이터에 기초하여 어시스턴트 명령이 수행되도록 할지 여부를 결정하는 예시적인 방법을 도시하는 흐름도를 도시한다.
도 4a, 도 4b 및 도 4c는 다양한 구현 예에 따라 어시스턴트 명령이 컨텍스트적 오디오 데이터에 기초하여 수행되도록 할지 여부를 결정하는 다양한 비제한적인 예를 도시한다.
도 5는 다양한 구현 예에 따라 어시스턴트 명령이 화자 식별에 기초하여 수행되도록 할지 여부를 결정하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 6a, 도 6b 및 도 6c는 다양한 구현 예에 따라 어시스턴트 명령이 화자 식별에 기초하여 수행되도록 할지 여부를 결정하는 다양한 비제한적인 예를 도시한다.
도 7은 다양한 구현에 따른 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
이제 도 1로 돌아가면, 본 개시의 다양한 측면을 입증하고 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도가 도시되어 있다. 예시적인 환경은 클라이언트 디바이스(110)와 웜 워드 시스템(180)을 포함한다. 일부 구현예에서, 웜 워드 시스템(180)은 클라이언트 디바이스(110)에서 로컬(local)로 구현될 수 있다. 추가적인 또는 대안적인 구현예에서, 웜 워드 시스템(180)은 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현될 수 있다. 이들 구현예에서, 클라이언트 디바이스(110) 및 웜 워드 시스템(180)은 하나 이상의 유선 또는 무선 근거리 네트워크(Wi-Fi LAN, 메시 네트워크, Bluetooth, 근거리 통신 등을 포함한 “LANs”) 또는 광역 네트워크(인터넷을 포함한 “WANs”)와 같은 하나 이상의 네트워크(199)를 통해 서로 통신 가능하게 결합될 수 있다.
클라이언트 디바이스(110)는 예를 들어 다음 중 하나 이상일 수 있다: 데스크톱 컴퓨터, 노트북 컴퓨터, 태블릿, 휴대폰, 차량의 컴퓨팅 장치(예: 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 독립형 대화형 스피커(선택적으로 디스플레이 보유), 스마트 TV와 같은 스마트 기기 및/또는 컴퓨팅 장치를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치). 추가 및/또는 대체 클라이언트 디바이스가 제공될 수 있다.
클라이언트 디바이스(110)는 자동 어시스턴트 클라이언트(114)를 실행할 수 있다. 자동 어시스턴트 클라이언트(114)의 인스턴스는 클라이언트 디바이스(110)의 운영 체제와 별개인(예를 들어, 운영 체제 “상에” 설치되는) 애플리케이션일 수 있거나, - 대안적으로 클라이언트 디바이스(110)의 운영 체제에 의해 직접 구현될 수 있다. 자동 어시스턴트 클라이언트(114)는 클라이언트 디바이스(110)에서 로컬 또는 도 1에 도시된 바와 같이 네트워크(199) 중 하나 이상을 통해 구현되는 웜 워드 시스템(180)과 상호작용할 수 있다. 자동화 어시스턴트 클라이언트(114)(그리고 선택적으로 다른 원격 시스템(예: 서버(들))과의 상호 작용을 통해)는 사용자의 관점에서 볼 때 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화 어시스턴트(115)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 자동화 어시스턴트(115)의 인스턴스가 도 1에 도시되어 있고, 클라이언트 디바이스(110)의 자동화 어시스턴트 클라이언트(114) 및 웜 워드 시스템(180)을 포함하는 점선으로 둘러싸여 있다. 따라서 클라이언트 디바이스(110)에서 실행되는 자동 어시스턴트 클라이언트(114)와 연계하는 사용자는 사실상 자동화 어시스턴트(115)(또는 가정이나 다른 사용자 그룹 사이에 공유되는 자동 어시스턴트(115)의 논리적 인스턴스)의 그 또는 그녀 자신의 논리적 인스턴스와 연계할 수 있다는 것이 이해되어야 한다. 간결함과 단순화를 위해, 본 명세서에 사용된 자동화 어시스턴트(115)는 클라이언트 디바이스(110) 및/또는 웜 워드 시스템(180)을 구현할 수 있는 하나 이상의 서버에서 실행되는 자동화 어시스턴트 클라이언트(114)를 지칭할 것이다.
다양한 구현예에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 입력 장치를 사용하여 클라이언트 디바이스(110)의 사용자에 의해 제공된 사용자 입력을 검출하도록 구성된 사용자 입력 엔진(111)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)의 환경에서 사용자의 음성 발언 또는 기타 소리에 대응하는 오디오 데이터와 같은 오디오 데이터를 캡처하는 하나 이상의 마이크가 장착될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 하나 이상의 비전 구성 요소의 시야에서 검출된 이미지 및/또는 움직임(예: 제스처)에 해당하는 비전 데이터를 캡처하도록 구성된 하나 이상의 비전 구성요소가 장착될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)에 대한 터치 입력에 대응하는 신호(들)를 캡처하도록 구성된 하나 이상의 터치 검출 구성요소(예: 키보드 및 마우스, 스타일러스, 터치 스크린, 터치 패널, 하나 이상의 하드웨어 버튼 등)가 장착될 수 있다.
다양한 구현예에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 출력 장치를 사용하여 클라이언트 디바이스(110)의 사용자에게 청각적 및/또는 시각적 제시를 위한 콘텐츠를 제공하도록 구성된 렌더링 엔진(112)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)를 통해 사용자에게 청각적 제시를 위해 컨텐츠가 제공될 수 있게 하는 하나 이상의 스피커가 장착될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)를 통해 사용자에게 시각적 제시를 위한 컨텐츠가 제공될 수 있게 하는 디스플레이 또는 프로젝터가 장착될 수 있다.
다양한 구현예에서, 클라이언트 디바이스(110)는 대응하는 사용자(들)로부터의 승인을 받아 검출된 존재, 특히 인간 존재를 나타내는 신호를 제공하도록 구성된 하나 이상의 존재 센서(113)를 포함할 수 있다. 이러한 구현 중 일부에서는, 자동화 어시스턴트(115)는 클라이언트 디바이스(110)에서(또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 장치에서)의 사용자의 존재에 적어도 부분적으로 기초하여 음성 발언을 만족시키기 위해 클라이언트 디바이스(110)(또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 장치)를 식별할 수 있다. 음성 발언은 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)에서 반응형 콘텐츠(responsive content)(예를 들어, 렌더링 엔진(112)을 통해)를 렌더링함으로써, 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)가 제어되도록 함으로써, 및/또는 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 관련된 다른 컴퓨팅 장치(들)가 음성 발언을 만족시키기 위해 임의의 다른 동작을 수행하게 함으로써 충족될 수 있다. 여기에 설명된 바와 같이, 자동화 어시스턴트(115)는 사용자가 근처에 있거나 최근에 근처에 있었던 곳에 기초하여 클라이언트 디바이스(110)(또는 기타 컴퓨팅 장치(들))를 결정할 때 존재 센서(113)에 기초하여 결정된 데이터를 활용할 수 있으며, 대응하는 명령을 클라이언트 디바이스(110)(또는 그 기타 컴퓨팅 장치(들))에만 제공한다. 일부 추가 또는 대체 구현예에서, 자동화 어시스턴트(115)는 임의의 사용자(들)(임의의 사용자 또는 특정 사용자)가 현재 클라이언트 디바이스(110)(또는 다른 컴퓨팅 장치(들))에 근접해 있는지 여부를 결정하는 데 존재 센서(113)에 기초하여 결정된 데이터를 활용할 수 있고, 클라이언트 디바이스(110)(또는 다른 컴퓨팅 장치(들))에 근접한 사용자(들)에 기초하여 클라이언트 디바이스(110)(또는 다른 컴퓨팅 장치(들))에게 및/또는 클라이언트 디바이스(들)로부터 데이터 제공을 선택적으로 억제할 수 있다.
존재 센서(113)는 다양한 형태로 나타날 수 있다. 예를 들어, 클라이언트 디바이스(110)는 사용자의 존재를 검출하기 위해 사용자 입력 엔진(111)에 대해 위에서 설명된 사용자 인터페이스 입력 구성요소 중 하나 이상을 활용할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 시야 내의 물체로부터 방사되는 적외선(“IR”) 광을 측정하는 수동 적외선(“PIR”) 센서와 같은 다른 유형의 광 기반 존재 센서(113)가 장착될 수 있다.
추가적으로 또는 대안적으로, 일부 구현예에서, 존재 센서(113)는 인간 존재 또는 장치 존재와 연관된 다른 현상을 검출하도록 구성될 수 있다. 예를 들어, 일부 실시 예에서, 클라이언트 디바이스(110)에는 예를 들어 사용자에 의해 운반/작동되는 다른 컴퓨팅 장치(예를 들어, 모바일 장치, 웨어러블 컴퓨팅 장치 등) 및/또는 다른 컴퓨팅 장치에 의해 방출되는 다양한 유형의 무선 신호(예를 들어, 라디오, 초음파, 전자기 등과 같은 파동. )를 검출하는 존재 센서(113)가 장착될 수 있다. 예를 들어, 클라이언트 디바이스(110)는 다른 컴퓨팅 장치(들)(예를 들어 초음파 가능 마이크와 같은 초음파/적외선 수신기를 통해)에 의해 검출될 수 있는 초음파 또는 적외선과 같이 인간이 검출할 수 없는 파동을 방출하도록 구성될 수 있다.
추가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 사용자에 의해 휴대/작동되는 다른 컴퓨팅 장치(들)(예를 들어, 모바일 장치, 웨어러블 컴퓨팅 장치 등)에 의해 검출될 수 있는 전파(예: Wi-Fi, 블루투스, 셀룰러 등)와 같은 다른 유형의 인간이 검출할 수 없는 파동을 방출할 수 있으며, 사용자의 특정 위치를 결정하는 데 사용된다. 일부 구현예에서는 예를 들어 클라이언트 디바이스(110)로의/로부터의 GPS 및/또는 Wi-Fi 신호를 기반으로 GPS 및/또는 Wi-Fi 삼각측량을 사용하여 사람의 위치를 검출할 수 있다. 다른 구현예에서, 비행시간, 신호 강도 등과 같은 다른 무선 신호 특성은 사용자가 휴대/작동하는 다른 컴퓨팅 장치(들)에서 방출되는 신호를 기반으로 특정 사람의 위치를 파악하기 위해 클라이언트 디바이스(110)에 의해 단독으로 또는 집합적으로 사용될 수 있다.
추가적으로 또는 대안적으로, 일부 구현예에서, 클라이언트 디바이스(110)는 (예를 들어, 사용자 검증 엔진(160)과 관련하여 설명된) 그들의 음성으로부터 사용자를 인식하기 위하여 화자 식별(SID)을 수행할 수 있다. 일부 구현예에서, 화자의 움직임은 예를 들어 클라이언트 디바이스(110)의 존재 센서(113)(및 선택적으로 클라이언트 디바이스(110)의 GPS 센서, Soli 칩 및/또는 가속도계)에 의해 결정될 수 있다. 일부 구현예에서는, 이렇게 검출된 움직임을 기반으로, 사용자의 위치를 예측할 수 있으며, 이 위치는 임의의 콘텐츠가 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 장치(들)에서 렌더링되게 되는 경우 사용자 위치에 대한 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 장치(들)의 근접성에 적어도 부분적으로 기초하여 사용자의 위치로 간주될 수 있다. 일부 구현예에서, 특히 마지막 참여 이후 시간이 많이 지나지 않은 경우, 사용자는 그 또는 그녀가 자동 어시스턴트(115)와 마지막으로 대화한 위치에 있는 것으로 간단하게 가정될 수 있다.
또한, 클라이언트 디바이스(110) 및/또는 웜 워드 시스템(180)은 데이터 및/또는 소프트웨어 애플리케이션(198)의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 소프트웨어 애플리케이션(198)을 실행하기 위한 하나 이상의 프로세서, 및/또는 하나 이상의 네트워크를 통한 통신을 용이하게 하는 기타 구성요소(199)를 포함할 수 있다. 일부 구현예에서는, 소프트웨어 애플리케이션(198) 중 하나 이상은 클라이언트 디바이스(110)에 로컬로 설치될 수 있다. 반면 다른 구현예에서는 소프트웨어 애플리케이션(198) 중 하나 이상이 원격(예를 들어 하나 이상의 서버에 의해)으로 호스팅될 수 있고 네트워크(199) 중 하나 이상을 통해 클라이언트 디바이스(110)에 의해 액세스될 수 있다. 클라이언트 디바이스(110), 다른 컴퓨팅 장치(들) 및/또는 자동화 어시스턴트(115)에 의해 수행되는 동작은 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 자동화 어시스턴트(115)는 예를 들어, 클라이언트 디바이스(110)에서 실행되는 컴퓨터 프로그램 및/또는 네트워크(예를 들어, 도 1의 네트워크(들)(199))를 통해 서로 연결된 하나 이상의 위치에 있는 하나 이상의 컴퓨터로서 구현될 수 있다.
일부 구현예에서, 자동 어시스턴트(115)에 의해 수행되는 동작은 자동 어시스턴트 클라이언트(114)를 통해 클라이언트 디바이스(110)에서 로컬로 구현될 수 있다. 도 1에 도시된 바와 같이, 자동화 어시스턴트 클라이언트(114)는 ASR(Automatic Speech Recognition) 엔진(120A1), NLU(Natural Language Understanding) 엔진(130A1) 및 TTS(Text-to-Speech) 엔진(140A1)을 포함할 수 있다. 일부 구현예에서, 자동화 어시스턴트(115)에 의해 수행되는 동작은 웜 워드 시스템(180)이 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현되는 경우와 같이 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 이러한 구현예에서, 자동화 어시스턴트(115)는 웜 워드 시스템(180)의 ASR 엔진(120A2), NLU 엔진(130A2) 및 TTS 엔진(140A2)을 추가적으로 또는 대안적으로 활용할 수 있다.
이들 엔진 각각은 하나 이상의 기능을 수행하도록 구성될 수 있다. 예를 들어, ASR 엔진(120A1 및/또는 120A2)은, ASR 출력을 생성하기 위해, 기계 학습(ML) 모델(들)(예를 들어 순환 신경망(RNN) 모델, 변환기 모델 및/또는 ASR을 수행할 수 있는 다른 유형의 ML 모델) 데이터베이스(115A)에 저장된 ASR 모델(들)을 사용하여 음성 발언을 캡처하고 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터를 처리할 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은, NLU 출력을 생성하기 위해, ML 모델(들)(예를 들어 LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) 및/또는 다른 유형의 RNN 또는 NLU를 수행할 수 있는 다른 ML 모델) 데이터베이스(115A)에 저장된 NLU 모델(들) 및/또는 문법 기반 규칙(들)을 이용하여 ASR 출력을 처리할 수 있다. 또한, TTS 엔진(140A1 및/또는 140A2)은, 컴퓨터 생성 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해, ML 모델(들) 데이터베이스(115A)에 저장된 TTS 모델(들)을 사용하여 텍스트 데이터(예를 들어, 자동화 어시스턴트(115)에 의해 공식화된 텍스트)를 처리할 수 있다.
다양한 구현예에서, ASR 출력에는 예를 들어 오디오 데이터에 캡처된 사용자의 음성 발언에 대응하는 것으로 예측되는 하나 이상의 스피치 가설(예를 들어, 용어 가설 및/또는 전사 가설), 하나 이상의 스피치 가설 각각에 대한 하나 이상의 대응하는 예측 값(예: 확률, 로그 우도 및/또는 기타 값), 오디오 데이터에 포착된 사용자의 음성 발언에 대응하는 것으로 예측되는 복수의 음소, 및/또는 기타 ASR 출력이 포함될 수 있다. 이러한 구현예의 일부 버전에서는, ASR 엔진(120A1 및/또는 120A2)은 스피치 가설 중 하나 이상을 음성 발언에 대응하는 인식된 텍스트로서(예를 들어, 대응하는 예측 값에 기초하여) 선택할 수 있다.
다양한 구현예에서, NLU 출력은 예를 들어, 인식된 텍스트의 용어 중 하나 이상(예를 들어, 모두)에 대해 인식된 텍스트의 하나 이상의 주석을 포함하는 주석이 달린 인식된 텍스트를 포함할 수 있다. 예를 들어, NLU 엔진(130A1 및/또는 130A2)은 그들의 문법적 역할로 용어에 주석을 달도록 구성된 스피치 태거(미도시)의 일부를 포함할 수 있다. 추가적으로 또는 대안적으로, NLU 엔진(130A1 및/또는 130A2)은 인식된 텍스트의 하나 이상의 세그먼트에서 예를 들어 사람(예: 문학 속 인물, 유명인, 공인 등 포함), 조직, 위치(실제 및 가상) 등에 대한 언급과 같은 엔티티 참조 주석을 달도록 구성된 엔티티 태거(도시되지 않음)를 포함할 수 있다. 일부 구현예에서, 엔티티에 관한 데이터는 지식 그래프(도시되지 않음)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현예에서, 지식 그래프는 알려진 엔티티(그리고 어떤 경우에는 엔티티 속성)를 나타내는 노드뿐만 아니라 노드를 연결하고 엔티티 간의 관계를 나타내는 에지를 포함할 수 있다. 엔티티 태거는 높은 수준의 세분성(예를 들어 사람과 같은 엔티티 클래스에 대한 모든 참조를 식별할 수 있도록) 및/또는 낮은 수준의 세분성(예를 들어, 특정 개인과 같은 특정 개체에 대한 모든 참조를 식별할 수 있도록)에서 엔티티에 대한 참조에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 내용에 의존할 수 있으며 및/또는 선택적으로 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 통신할 수 있다. 추가적으로 또는 대안적으로, NLU 엔진(130A1 및/또는 130A2)은 하나 이상의 컨텍스트적 단서에 기초하여 동일한 개체에 대한 참조를 그룹화하거나 “클러스터'화하도록 구성된 상호 참조 분석기(도시되지 않음)를 포함할 수 있다. 예를 들어, “buy them“입력을 수신하기 직전에 렌더링된 클라이언트 디바이스 알림에 언급된 “theatre tickets“을 기반으로 자연어 입력 “buy them“에서 용어 “them“을 “buy theatre tickets“으로 해석하기 위해 상호참조 해석기가 활용될 수 있다. 일부 구현예에서, NLU 엔진(130A1 및/또는 130A2)의 하나 이상의 구성요소는 NLU 엔진(130A1 및/또는 130A2)의 하나 이상의 다른 구성요소로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예에서 엔티티 태거는 특정 엔티티에 대한 모든 언급에 주석을 달 때 상호 참조 분석기의 주석에 의존할 수 있다. 또한, 예를 들어 일부 구현예에서 상호 참조 분석기는 동일한 엔티티에 대한 참조를 클러스터링할 때 엔티티 태거의 주석에 의존할 수 있다.
도 1은 단일 사용자를 갖는 단일 클라이언트 디바이스에 관해 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다. 예를 들어, 사용자의 하나 이상의 추가 클라이언트 디바이스도 여기에 설명된 기술을 구현할 수 있다. 예를 들어, 클라이언트 디바이스(110), 하나 이상의 추가적인 클라이언트 디바이스, 및/또는 사용자의 임의의 다른 컴퓨팅 장치는 본 명세서에 설명된 기술을 채용할 수 있는 장치들의 생태계를 형성할 수 있다. 이러한 추가적인 클라이언트 디바이스 및/또는 컴퓨팅 장치는 클라이언트 디바이스(110)와 (예를 들어, 네트워크(들)(199)를 통해) 통신할 수 있다. 또 다른 예로서, 특정 클라이언트 디바이스는 공유 설정(예: 사용자 그룹, 집)에서 여러 사용자가 활용할 수 있다.
본 명세서에 설명된 바와 같이, 자동화 어시스턴트(115)는 컨텍스트적 오디오 데이터를 기반으로 및/또는 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 화자의 신원을 기반으로, 오디오 데이터 스트림에서 웜 워드를 검출한 것에 응답하여 어시스턴트 명령이 수행되도록 할지 여부를 결정할 수 있다. 이러한 결정을 내릴 때, 자동화 어시스턴트는 웜 워드 엔진(150), 사용자 검증 엔진(160) 및/또는 음향 엔진(170)을 활용할 수 있다. 다양한 구현예에서, 그리고 도 1에 도시된 바와 같이, 웜 워드 엔진(150)은 웜 워드 활성화 이벤트 엔진(151), 웜 워드 검출 엔진(152) 및 웜 워드 검증 엔진(153)을 포함할 수 있다.
일부 구현예에서, 웜 워드 활성화 이벤트 엔진(151)은 웜 워드 활성화 이벤트의 발생을 모니터링할 수 있다. 웜 워드 활성화 이벤트에는 예를 들어, 클라이언트 디바이스(110)에서 전화 통화가 수신되는 것, 클라이언트 디바이스(110)에서 문자 메시지가 수신되는 것, 클라이언트 디바이스(110)에서 이메일이 수신되는 것, 클라이언트 디바이스(110)에서 알람이 울리는 것, 클라이언트 디바이스(110)에서 타이머가 울리는 것, 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110) 환경의 추가 클라이언트 디바이스에서 미디어가 재생되는 것, 클라이언트 디바이스(110)에서 알림(notification)이 수신되는 것, 클라이언트 디바이스(110)의 위치(예를 들어, 집, 직장 등의 사용자), 클라이언트 디바이스(110)에서 액세스 가능한 하나 이상의 소프트웨어 애플리케이션(198) 중 소프트웨어 애플리케이션, 및/또는 사용자가 음성 발언을 제공하여 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 추가 클라이언트 디바이스가 음성 발언에 기초하여 제어되도록 할 수 있는 클라이언트 디바이스(110)와 연관된 다른 이벤트를 포함할 수 있다. 이러한 구현예의 일부 버전에서, 웜 워드 활성화 이벤트 발생 검출에 대한 응답으로, 웜 워드 활성화 이벤트 엔진(151)은 ML 모델(들) 데이터베이스(115A)에 저장된 웜 워드 모델(들)을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능(예를 들어 저전력 디지털 신호 프로세서(DSP), 중앙 처리 장치(CPU) 등)이 활성화되게 할 수 있다. 웜 워드 모델(들)은 어시스턴트 명령과 각각 연관된 하나 이상의 특정 단어 또는 문구(본 명세서에서는 “웜 워드“라고도 함)를 검출하도록 트레이닝될 수 있다. 하나 이상의 특정 단어 또는 문구는 검출될 때 호출 단어나 문구(예: ”Assistant”, “Hey Assistant” 등), 호출 제스처, 또는 자동화 어시스턴트(115)를 호출하기 위한 다른 수단을 통해 자동 어시스턴트(115)가 자동 어시스턴트(115)를 명시적으로 호출하지 않고도 특정 작업이 수행되도록 어시스턴트 명령과 연관될 수 있다. 다른 말로 하면, 하나 이상의 특정 단어 또는 문구는 특정 의도, 특정 이행 데이터, 및/또는 클라이언트 디바이스(110)에서 액세스 가능한 하나 이상의 소프트웨어 애플리케이션(198) 중 특정 소프트웨어 애플리케이션에 매핑될 수 있으므로, 자동화 어시스턴트(115)로 하여금 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 실행하도록 다양한 어시스턴트 구성 요소(예를 들어, ASR 엔진(120A1 및/또는 120A2), NLU 엔진(130A1 및/또는 130A1), 및/또는 기타 자동화 어시스턴트 구성 요소)의 활용을 우회할 수 있다.
이러한 구현예의 일부 추가 버전에서, 웜 워드 모델(들)을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능이 하나 이상의 조건이 충족될 때까지 활성 상태를 유지할 수 있다. 하나 이상의 조건은 예를 들어 임계 지속 기간의 경과, 특정 단어 또는 문구 중 하나 이상의 검출, 웜 워드 활성화 이벤트가 종료되었는지를 결정, 및/또는 본 명세서에 설명된 다른 조건을 포함할 수 있다. 예를 들어, 웜 워드 활성화 이벤트가 클라이언트 디바이스(110)에서 울리는 타이머를 포함한다고 가정한다. 이 예에서, 웜 워드 모델(들)을 활용하는 현재 휴면 중인 자동 어시스턴트 기능 중 하나 이상은 사용자가 타이머 소리를 중지하기 위한 웜 워드를 제공할 때까지 또는 사용자가 타이머를 수동으로 중지할 때까지 활성 상태를 유지할 수 있다. 또 다른 예로서, 웜 워드 활성화 이벤트가 클라이언트 디바이스(110)에서 수신되는 알림(notification)을 포함한다고 가정한다. 이 예에서, 웜 워드 모델(들)을 활용하는 현재 휴면 중인 자동 어시스턴트 기능 중 하나 이상은 사용자가 알림과 상호작용하기 위한 웜 워드를 제공할 때까지, 사용자가 수동으로 알림을 해제할 때까지, 또는 임계 시간 기간(예: 30초, 60초 등)이 경과할 때까지 활성 상태를 유지할 수 있다. 또 다른 예로서, 웜 워드 활성화 이벤트가 클라이언트 디바이스(110)에서 수신되는 전화 통화를 포함한다고 가정한다. 이 예에서, 웜 워드 모델(들)을 활용하는 현재 휴면 중인 자동 어시스턴트 기능 중 하나 이상은 사용자가 전화 통화와 상호작용하기 위한 웜 워드를 제공할 때까지 또는 전화 통화 벨소리가 멈출 때까지 활성 상태를 유지할 수 있다. 따라서 일단 활성화되면, 여기에 설명된 웜 워드 모델(들)을 활용하는 현재 휴면 중인 자동화 어시스턴트 기능 중 하나 이상은 검출된 웜 워드 활성화 이벤트 및/또는 클라이언트 디바이스(110)의 사용자가 웜 워드 활성화 이벤트에 어떻게 응답하는지에 기초하여 정적 또는 동적 기간 동안 활성화될 수 있는 것으로 이해되어야 한다.
추가 또는 대체 구현예에서 웜 워드 모델(들)을 활용하는 하나 이상의 자동화 어시스턴트 기능이 항상 활성화될 수 있다. 달리 말하면, 웜 워드 모델(들)을 활용하는 일부 자동화 어시스턴트 기능은 웜 워드 활성화 이벤트 엔진(151)에 의해 웜 워드 활성화 이벤트가 검출되는지 여부에 관계없이 항상 활성화되어 있다. 예를 들어, 웜 워드 모델을 활용하는 하나 이상의 자동화 어시스턴트 기능은, 특정 쿼리와 관련된 특정 단어 또는 문구, “what’s the weather“, “what’s on my calendar“ 등과 같은 특정 어시스턴트 루틴과 관련된 특정 단어 또는 문구, “good morning“ 루틴, “good night“ 루틴 등과 같은 특정 장치와 관련된 특정 단어 또는 문구, “turn on the lights“, “turn on the [방/조명 식별자] lights“ 등과 같은 클라이언트 디바이스(110)에서 액세스 가능한 하나 이상의 소프트웨어 애플리케이션(198) 중 실행되거나 실행되지 않은 상태에 있는 특정 소프트웨어 응용 프로그램과 관련된 특정 단어 또는 문구, 내비게이션 애플리케이션이 시작되거나 시작되지 않은 상태일 때 “open first application”, “launch first application”, “directions to 123 Main St. ”, 카메라 애플리케이션이 실행된 상태일 때의 “cheese“ 등 및/또는 기타 특정 단어 또는 문구를 검출한다.
본 명세서에 설명된 웜 워드 모델(들)은, 검출되면 자동화 어시스턴트(115)가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는, 하나 이상의 특정 단어 또는 문구(예를 들어 웜 워드)를 검출하도록 트레이닝된 복수의 서로 다른 웜 워드 모델(예: 오디오 키워드 분류 모델)을 포함할 수 있다. 일부 구현예에서, 주어진 웜 워드 모델은 주어진 웜 워드 활성화 이벤트와 연관된 단어 또는 문구의 특정 서브세트를 검출하도록 트레이닝될 수 있다. 예를 들어, 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 다른 클라이언트 디바이스에서 음악이 재생되고 있다고 가정한다. 이 예에서, 주어진 웜 워드 모델은 음악 제어와 관련된 어시스턴트 명령이 수행되도록 하는, 음악을 일시정지 시킬 수 있는 “pause“ 웜 워드와 같은, 일시 정지된 후 음악을 다시 시작하게 할 수 있는 “resume“ 웜 워드와 같은, 음악의 볼륨을 높일 수 있는 “volume up“ 웜 워드와 같은, 음악의 볼륨을 낮출 수 있는 “volume down“ 웜 워드와 같은, 음악이 다음 노래로 건너뛰게 만드는 “next“ 웜 워드와 같은, 음악과 관련된 다른 특정 단어 또는 문구에 대해서도 마찬가지로 특정 단어 또는 문구의 서브셋을 검출하도록 트레이닝될 수 있다. 따라서 이 예에서, 주어진 웜 워드 모델을 활용하는 현재 휴면 중인 어시스턴트 기능 중 하나 이상은 음악이 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 다른 클라이언트 디바이스에서 재생되고 있다는 결정에 응답하여 활성화될 수 있다. 따라서 단일 시점에 하나 또는 다수의 웜 워드 모델이 클라이언트 디바이스(110)에서 활성화될 수 있다.
추가적인 또는 대안적인 구현예에서, 주어진 웜 워드 활성화 이벤트와 연관된 단어 또는 문구의 서브셋을 탐지하도록 다중 웜 워드 모델이 트레이닝될 수 있다. 위의 예를 계속하면, 제1 웜 워드 모델은 “pause“ 웜 워드 및 “resume“ 웜 워드와 같은 하나 이상의 제1 특정 단어 또는 문구를 검출하도록 트레이닝될 수 있고, 제2 웜 워드 모델은 “volume up“ 웜 워드 및 “volume down“ 웜 워드와 같은 하나 이상의 제2 특정 단어 또는 문구를 검출하도록 트레이닝될 수 있으며, 제3 웜 워드 모델은 “next“ 웜 워드와 같은 하나 이상의 제3 특정 단어 또는 문구를 검출하도록 트레이닝될 수 있고, 음악과 관련된 다른 특정 단어 또는 문구도 마찬가지이다. 이에 따라, 본 예에서는, 적어도 제1 웜 워드 모델, 제2 웜 워드 모델 및 제3 웜 워드 모델을 활용하는 현재 휴면 중인 어시스턴트 기능 중 하나 이상이, 음악이 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 다른 클라이언트 디바이스에서 재생되고 있다는 결정에 응답하여 활성화될 수 있다.
본 명세서에 설명된 웜 워드 모델(들)은 복수의 트레이닝 인스턴스에 기초하여 트레이닝될 수 있다. 복수의 트레이닝 인스턴스 각각은 트레이닝 인스턴스 입력 및 트레이닝 인스턴스 출력을 포함할 수 있다. 트레이닝 인스턴스 입력에는 오디오 데이터가 포함될 수 있다. 여기서 오디오 데이터의 일부는 주어진 웜 워드 모델이 검출하도록 트레이닝되는 특정 단어 또는 문구 중 하나 이상에 해당하고 트레이닝 인스턴스 출력에는 실측(ground truth) 출력이 포함될 수 있다. 여기서 실측(ground truth) 출력에는 트레이닝 인스턴스 입력의 오디오 데이터가 주어진 웜 워드 모델이 탐지하도록 트레이닝되는 특정 단어 또는 문구 중 하나 이상을 포함하는지 여부에 대한 표시가 포함된다. 예를 들어, 음악 재생과 관련하여 설명한 위의 예에서 주어진 웜 워드 모델을 트레이닝하는 데 있어서, 특정 트레이닝 인스턴스에 대한 트레이닝 인스턴스 입력에는 “turn the volume up“에 해당하는 오디오 데이터가 포함될 수 있고, 주어진 트레이닝 인스턴스에 대한 트레이닝 인스턴스 출력에는 오디오 데이터에 하나 이상의 특정 단어 또는 문구(예: “volume up“)가 포함되어 있음을 나타내는 실측(ground truth) 출력이 포함될 수 있다. 트레이닝 인스턴스 입력은 트레이닝 인스턴스 입력에 하나 이상의 특정 단어 또는 문구가 포함될 가능성을 나타내는 예측 출력(예를 들어 확률, 로그 우도, 이진 값 또는 기타 값과 같은 값)을 생성하기 위해 주어진 웜 워드 모델에 대한 입력으로 적용될 수 있다. 예측된 출력은 하나 이상의 손실(loss)을 생성하기 위해 트레이닝 인스턴스 입력의 실측(ground truth) 출력(예를 들어 이 예에서는 “1” 값과 같이, 실제로 하나 이상의 특정 단어 또는 문구를 포함하는 트레이닝 인스턴스의 오디오 데이터를 나타내는 값)과 비교되고, 주어진 웜 워드 모델은 하나 이상의 손실을 기반으로 업데이트될 수 있다. 이 예에서, 주어진 트레이닝 인스턴스는 트레이닝 인스턴스 입력이 주어진 웜 워드 모델이 검출하도록 트레이닝되는 오디오 데이터의 일부를 포함하기 때문에 긍정적인 트레이닝 인스턴스로 간주될 수 있다. 또한 이 예에서 주어진 웜 워드 모델은, 부정적인 트레이닝 인스턴스 또는 주어진 웜 워드 모델이 탐지하도록 트레이닝되는 하나 이상의 특정 단어 또는 문구를 포함하지 않는 오디오 데이터에 해당하는 트레이닝 인스턴스 입력을 갖는 트레이닝 인스턴스를 기반으로, 선택적으로 추가로 트레이닝될 수 있다.
예를 들어, 음악 재생과 관련하여 설명한 위의 예에서 주어진 웜 워드 모델을 트레이닝하는 데 있어서, 주어진 트레이닝 인스턴스에 대한 트레이닝 인스턴스 입력에는 “turn on the lights“에 해당하는 오디오 데이터가 포함될 수 있고, 주어진 트레이닝 인스턴스에 대한 트레이닝 인스턴스 출력에는 오디오 데이터에 포함된 특정 단어 또는 문구 중 하나 이상이 포함되어 있지 않음(예: “volume up“)을 나타내는 실측 출력이 포함될 수 있다. 트레이닝 인스턴스 입력에 하나 이상의 특정 단어 또는 문구가 포함될 가능성을 나타내는 예측 출력(예를 들어 확률, 로그 우도, 이진 값 또는 기타 값과 같은 값)을 생성하기 위해 트레이닝 인스턴스 입력은 주어진 웜 워드 모델에 대한 입력으로 적용될 수 있다. 예측된 출력은 하나 이상의 손실을 생성하기 위해 트레이닝 인스턴스 입력의 실측(ground truth) 출력(이 예에서 “0“ 값의 값과 같이, 실제로 하나 이상의 특정 단어 또는 문구를 포함하는 트레이닝 인스턴스 입력의 오디오 데이터를 나타내는 값)과 비교될 수 있고, 주어진 웜 워드 모델은 하나 이상의 손실을 기반으로 업데이트될 수 있다. 이 예에서, 트레이닝 인스턴스 입력에는 주어진 웜 워드 모델이 검출하도록 트레이닝되는 오디오 데이터의 어떤 부분(예를 들어 “volume up“ 또는 음악 제어에 해당하는 기타 오디오)도 포함되어 있지 않기 때문에 주어진 트레이닝 인스턴스는 부정적인 트레이닝 인스턴스로 간주될 수 있다.
일부 구현예에서 웜 워드 모델(들)을 활용하는 하나 이상의 자동화 어시스턴트 기능이 활성화되어 있다고 가정하면, 웜 워드 검출 엔진(152)은 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위해 웜 워드 모델(들)을 사용하여 클라이언트 디바이스의 마이크(들)에 의해 생성된 오디오 데이터 스트림을 처리할 수 있다. 예를 들어, 클라이언트 디바이스(110)에서 문자 메시지가 수신되었다고 가정한다. 또한, 웜 워드 활성화 이벤트 엔진(151)이 클라이언트 디바이스(110)에서 수신되고 있는 텍스트 메시지를 검출하고 하나 이상의 조건이 만족될 때까지 클라이언트 디바이스(110)에서 수신되는 문자 메시지의 웜 워드 활성화 이벤트에 대한 특정 단어 또는 문구(예: “reply”, “dismiss”, “show me” 등)를 검출하기 위해 하나 이상의 웜 워드 모델을 활용하는 하나 이상의 자동화 어시스턴트 구성 요소를 활성화한다고 가정한다. 이 예에서, 클라이언트 디바이스(110)의 사용자가 “reply that I’ll be there in five minutes“라는 음성 발언을 제공한다고 더 가정한다. 따라서 오디오 데이터의 스트림을 처리함에 있어서, 웜 워드 검출 엔진(152)은 오디오 데이터의 일부가 웜 워드 “reply“의 발생에 대응하는지 검출할 수 있다. 일부 구현예에서, 웜 워드 검출 엔진(152)은 ASR 모델(들) 및/또는 NLU 모델(들)(예를 들어, ASR 엔진(120A1 및/또는 120A2), NLU 엔진(130A1 및/또는 130A2) 및/또는 기타 자동화 어시스턴트 구성 요소)을 활용하는 하나 이상의 추가적인 현재 활성 자동화 어시스턴트 구성 요소가 웜 워드의 발생을 검출한 것에 응답하여 활성화되도록 할 수 있다.
아래에서 더 자세히 설명되는 바와 같이(예를 들어, 도 1 및 2와 관련하여. 2, 3, 4A-4C), ASR 엔진(120A1 및/또는 120A2)은 ASR 출력을 생성하기 위해, ML 모델(들) 데이터베이스(115A)에 저장된 ASR 모델(들)을 사용하여, 웜 워드의 발생에 해당하는 오디오 데이터 부분, 웜 워드(있는 경우)의 발생에 대응하는 오디오 데이터 부분보다 선행하는 오디오 데이터의 프리앰블 부분, 및/또는 웜 워드(있는 경우)의 발생에 해당하는 오디오 데이터 부분에 후속하는 오디오 데이터의 포스트앰블 부분을 처리할 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은 NLU 출력을 생성하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델(들) 및/또는 문법 기반 규칙(들)을 사용하여 ASR 출력을 처리할 수 있다. 이러한 구현예의 일부 버전에서, ASR 엔진(120A1 및/또는 120A2)은 클라이언트 디바이스(110)의 오디오 버퍼로부터, 이러한 부분(예를 들어, 오디오 데이터의 프리앰블 부분(있는 경우) 및/또는 오디오 데이터의 부분이 웜 워드의 발생에 대응함) 중 하나 이상을 얻을 수 있다. 다양한 구현예에서, ASR 출력은 웜 워드 모델(들)과 연관된 특정 용어(들) 및/또는 문구(들) 쪽으로 편향될 수 있다. 예를 들어, 웜 워드 활성화 이벤트가 미디어 이벤트(예를 들어, 클라이언트 디바이스(110)의 사용자가 클라이언트 디바이스(110)에서 음악을 듣고 있는 경우)에 해당하는 경우 ASR 출력은 아티스트, 노래, 음악 장르 등과 같은 음악 관련 용어(들) 및/또는 문구(들)에 편향될 수 있다.
예를 들어, 자동화 어시스턴트(115)는 오디오 데이터 스트림에서 캡처된 음성 발언에 대한 복수의 타임스탬프를 생성하기 위해, ML 모델(들) 데이터베이스(115A)에 저장된 엔드포인트 모델을 사용하여, 오디오 데이터의 스트림이 처리되도록 할 수 있다. 복수의 타임스탬프는 적어도 사용자가 음성 발언을 제공하기 시작한 제1 시간과 연관된 제1 타임스탬프, 사용자가 음성 발언에 포함된 하나 이상의 특정 단어 또는 문구를 제공하기 시작한 제2 시간, 즉 제1 시간 이후의 제2 시간과 연관된 제2 타임스탬프, 사용자가 음성 발언에 포함된 하나 이상의 특정 단어 또는 문구의 제공을 완료한 때, 즉 제2 시간 이후의 제3 시간과 연관된 제3 타임스탬프, 및 사용자가 음성 발언 제공을 완료한 때, 즉 제3 시간 이후의 제4 시간과 연관된 제4 타임스탬프를 포함할 수 있다. 이 예에서, 오디오 데이터의 프리앰블 부분은 제1 타임스탬프와 제2 타임스탬프 사이의 음성 발언에 대응하는 임의의 오디오 데이터를 포함하고, 제2 타임스탬프와 제3 타임스탬프 사이의 음성 발언에 대응하는 임의의 오디오 데이터를 포함하는 오디오 데이터 부분, 그리고 오디오 데이터의 포스트앰블 부분은 제3 타임스탬프와 제4 타임스탬프 사이의 음성 발언에 대응하는 임의의 오디오 데이터를 포함한다. 이 예는 설명의 목적으로 제공되며 제한하려는 의도가 아니라는 점에 유의해야 한다. 예를 들어, 음성 발언이 특정 단어 또는 문구 중 하나 이상만 포함하는 경우와 같은 일부 경우에는, 복수의 타임스탬프는 사용자가 음성 발언 제공을 시작한 제1 시간과 연관된 적어도 제1 타임스탬프를 포함할 수 있고, 사용자가 음성 발언 제공을 완료한 때, 즉 제1 시간 이후의 제2 시간과 연관된 제2 타임스탬프를 포함할 수 있다. 이 예에서, 오디오 데이터의 프리앰블 부분 또는 오디오 데이터의 포스트앰블 부분이 없을 수도 있다.
일부 구현예에서, 웜 워드 검증 엔진(153)은 어시스턴트 명령이 수행되도록 사용자가 하나 이상의 특정 단어 또는 문구를 의도했는지 여부를 결정하기 위하여 ASR 출력을 처리할 수 있다. 예를 들어, 웜 워드 검증 엔진(153)은 NLU 엔진(130A1 및/또는 130A2)이, NLU 출력을 생성하기 위하여, ML 모델 데이터베이스(115A)에 저장된 NLU 모델 또는 문법 기반 규칙을 사용하여 ASR 출력을 처리하도록 할 수 있다. 웜 워드 검증 엔진(153)은, ASR 출력 및/또는 NLU 출력을 기반으로, 어시스턴트 명령이 수행되도록 사용자가 하나 이상의 특정 단어 또는 문구를 의도했는지 여부를 결정할 수 있다. 웜 워드에 대한 응답으로 위의 예를 계속한다(예: “reply that I’ll be there in five minutes“라는 음성 발언을 캡처함). 위의 예를 계속해서, 오디오 데이터 스트림에서 웜 워드(예: “reply“)가 검출되는 경우, ASR 엔진(120A1 및/또는 120A2) 및/또는 NLU 엔진(130A1 및/또는 130A2)은 오디오 데이터 스트림(예를 들어 “reply that I’ll be there in five minutes“라는 음성 발언을 캡처한)에 대한 ASR 출력을 생성하기 위해 오디오 데이터 스트림을 처리하도록 활성화 및 활용될 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은 NLU 출력을 생성하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델(들)을 사용하여 ASR 출력을 처리할 수 있다. 이 예에서, 웜 워드 검증 엔진(153)은 클라이언트 디바이스(110)에서 수신된 문자 메시지에 “I’ll be there in five minutes“이라는 응답 메시지로 응답하기 위해 사용자가 “reply“를 의도한 것이라고 결정할 수 있다.
위의 예와 대조적으로, 클라이언트 디바이스(110)에서 문자 메시지가 수신될 때, 클라이언트 디바이스(110)의 사용자가 “I’ll reply to that later“라는 음성 발언을 대신 제공했다고 가정한다. 이 예에서, 웜 워드 활성화 이벤트 엔진(151)은 웜 워드 활성화 이벤트(예를 들어, 클라이언트 디바이스에서 수신되는 텍스트 메시지)의 발생을 검출하고, 웜 워드 모델을 활용하는 현재 휴면 중인 자동화 어시스턴트 기능 중 하나 이상이 활성화되도록 할 수 있다. 또한, 웜 워드 검출엔진(152)은, 웜 워드 활성화 이벤트에 대해 활성화된 하나 이상의 웜 워드 모델을 사용하여 오디오 데이터 스트림을 처리할 때, 위에서 설명한 방식과 동일하거나 유사하게 오디오 데이터의 일부에서 하나 이상의 특정 단어 또는 문구(예: “reply“)의 발생을 검출할 수 있다. 그러나 이 예에서, 자동화 어시스턴트(115)는 ASR 엔진(120A1 및/또는 120A2) 및/또는 NLU 엔진(130A1 및/또는 130A2)을 사용하여 오디오 데이터의 포스트앰블 부분(예를 들어 “to that later“에 해당하는 포스트앰블 부분)을 처리하는 것에 기초하여, 자동화 어시스턴트가 수신된 문자 메시지에 회신하게 만드는 특정 단어 또는 문구, “reply“를 사용자가 의도하지 않았는지를 결정할 수 있다. 따라서 이 예에서, 자동화 어시스턴트(115)는 비록 사용자가 제공한 음성 발언에, 일반적으로 어시스턴트 명령이 수행되도록 하는 하나 이상의 특정 단어 또는 문구(예: “reply“)가 포함되어 있더라도, 문자 메시지에 응답하는 어시스턴트 명령의 수행을 억제할 수 있다.
추가 또는 대체 구현예에서, 자동화 어시스턴트(115)는 사용자 검증 엔진(160)이 음성 발언을 제공한 사용자의 신원이 검증되고, 음성 발언을 제공한 사용자에게 어시스턴트 명령을 수행할 수 있도록 인증되었는지를 결정하는 경우에만 어시스턴트 명령이 수행되도록 할 수 있다. 이러한 구현예의 일부 버전에서, 어시스턴트 명령의 서브셋에서만 음성 발언을 제공한 사용자의 신원이 검증되고, 어시스턴트 명령이 수행되도록 음성 발언을 제공한 사용자가 인증될 것을 요구할 수 있다. 예를 들어, 전화 통화 웜 워드 활성화 이벤트, 문자 메시지 웜 워드 활성화 이벤트 및 이메일 웜 워드 활성화 이벤트와 연관된 어시스턴트 명령은 음성 발언을 제공한 사용자의 신원이 검증되고, 음성 발언을 제공한 사용자가 어시스턴트 명령이 수행되도록 인증될 것을 요구할 수 있다. 그러나 미디어 웜 워드 활성화 이벤트와 관련된 어시스턴트 명령은 음성 발언을 제공한 사용자의 신원이 검증되고, 어시스턴트 명령이 수행되도록 음성 발언을 제공한 사용자가 인증될 것을 요구하지 않을 수도 있다. 음성 발언을 제공한 사용자의 신원은 다양한 기법을 이용하여 검증될 수 있다.
이러한 구현예의 일부 버전에서, 사용자 검증 엔진(160)은, 음성 발언을 제공한 사용자에 대한 화자 임베딩을 생성하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 화자 식별(SID) 모델(들)을 사용하여 오디오 데이터의 스트림을 처리할 수 있다. 생성된 화자 임베딩은, 임베딩 공간에서, 클라이언트 디바이스(110)의 사용자에 대해 이전에 생성된 하나 이상의 화자 임베딩(예: 사용자의 사용자 프로필과 연결된 임베딩)과 비교될 수 있다. 예를 들어, 임베딩 공간에서의 비교에 기초하여 결정된, 생성된 화자 임베딩과 사용자에 대해 이전에 생성된 하나 이상의 화자 임베딩 사이의 거리 메트릭이 임계값을 만족하는 경우, 사용자는 음성 발언을 제공한 사용자로 검증될 수 있다. 사용자를 위해 이전에 생성된 하나 이상의 화자 임베딩은 (예를 들어 클라이언트 디바이스(110)를 처음 구성할 때) 사용자로부터의 음성 발언을 포함하는 오디오 데이터의 하나 이상의 인스턴스 처리에 기초하여 생성된 출력(들)에 기초하여 생성될 수 있다. 예를 들어, 이전에 생성된 하나 이상의 화자 임베딩은 클라이언트 디바이스 사용자의 대응하는 음성 발언을 포함하는 오디오 데이터의 대응하는 인스턴스의 처리에 기초하여 각각 생성된 복수의 서로 다른 임베딩의 평균(또는 다른 조합)에 기초할 수 있다. 이러한 구현예의 일부 버전에서, SID 모델은 텍스트 독립(TI) SID 모델일 수 있는 반면, 다른 구현예에서는 SID 모델이 텍스트 종속(TD) SID 모델일 수 있다.
TD SID에서는 이전에 생성된 사용자의 하나 이상의 화자 임베딩이 하나 이상의 특정 단어 또는 문구만 포함하는 음성 발언을 기반으로 생성된다. 더욱이, 사용 중에 사용자는 TD SID 모델을 사용하여 생성될, 음성 발언이 인증된 사용자(예를 들어, 클라이언트 디바이스(110)의 사용자 또는 클라이언트 디바이스(110)와 연관된 다른 사용자)로부터 나온 것인지 여부를 사용자가 결정하기 위해 이전에 생성된 하나 이상의 TD 화자 임베딩과 효과적으로 비교될 수 있는 하나 이상의 TD SID 화자 임베딩을 위해 하나 이상의 특정 단어 또는 문구를 말해야 한다. 예를 들어, TD 화자 인식의 하나 이상의 특정 단어 또는 문구는 자동화 어시스턴트(예를 들어 “Hey Assistant“, “OK Assistant“ 및/또는 “Assistant“와 같은 핫 단어 및/또는 트리거 단어)를 호출하도록 구성된 하나 이상의 호출 문구 또는 여기에 설명된 하나 이상의 웜 워드로 제한될 수 있다. 대조적으로, TI SID에서 TI SID 모델을 사용하여 처리된 음성 발언은 하나 이상의 특정 단어 또는 문구로 제한되지 않는다. 다시 말해서, 거의 모든 음성 발언을 기반으로 하는 오디오 데이터는, 음성 발언이 인증된 사용자(예를 들어, 클라이언트 디바이스(110)의 사용자 또는 클라이언트 디바이스(110)와 연관된 다른 사용자)로부터 나온 것인지 여부를 사용자가 결정하기 위해 이전에 생성된 하나 이상의 TD 화자 임베딩과 효과적으로 비교될 수 있는, TI SID 화자 임베딩을 생성하기 위해 TI SID 모델을 사용하여 처리될 수 있다. 또한, 다양한 구현예에서, TI SID에서 활용되는 사용자의 이전에 생성된 하나 이상의 TI 화자 임베딩은, 서로 다른 단어 및/또는 문구를 포함하며 호출 단어 및/또는 문구, 웜 워드 및/또는 기타 특정 음성 발언에만 국한되지 않는 음성 발언을 기반으로 생성된다.
이러한 구현예의 추가 버전 또는 대체 버전에서는 음성 발언을 제공한 사용자의 신원을 검증하기 위해 다른 생체 인식 정보를 활용할 수 있다. 사용자의 신원을 검증하는 데 사용되는 생체 정보에는 예를 들어 얼굴 지문 인증, 지문 인증 및/또는 기타 유형의 생체 정보가 포함될 수 있다. 예를 들어, 클라이언트 디바이스(110)의 존재 센서(113)의 비전 구성요소는 음성 발언을 제공한 사용자의 얼굴을 포함하는 비전 데이터를 캡처할 수 있다. 사용자 검증 엔진(160)은 음성 발언을 제공한 사용자의 얼굴 지문을 생성하기 위하여, ML 모델 데이터베이스(115A)에 저장된 얼굴 인증(FID) 모델을 사용하여 비전 데이터를 처리하여 음성 발언을 제공한 사용자의 얼굴 지문을 생성할 수 있다. 음성 발언을 제공한 사용자의 얼굴 지문은, 음성 발언을 제공한 사용자가 어시스턴트 명령을 수행하도록 인증되었는지 여부를 결정하기 위하여, 임베딩 공간 내에서, 클라이언트 디바이스의 사용자의 얼굴 지문에 대응하는 하나 이상의 이전에 생성된 임베딩과 비교될 수 있는 임베딩에 해당될 수 있다. 다른 예로, 존재 센서(113)의 지문 센서는 음성 발언을 제공한 사용자의 터치 입력을 수신할 수 있고, 음성 발언을 제공한 사용자가 어시스턴트 명령을 수행하도록 인증되었는지 여부를 결정하기 위하여 클라이언트 디바이스(110) 사용자의 알려진 지문과 검출된 지문을 비교할 수 있다.
추가적인 또는 대안적인 구현예에서, 음향 엔진(170)은 오디오 데이터와 연관된 하나 이상의 음향 특성을 생성하기 위하여 오디오 데이터를 처리할 수 있다. 이러한 구현예에서, 자동화 어시스턴트(115)는 오디오 데이터의 스트림에서 웜 워드를 검출한 것에 응답하여 어시스턴트 명령이 수행되도록 할지 여부를 결정할 때 오디오 데이터와 연관된 음향 특성 중 하나 이상을 추가적으로 또는 대안적으로 고려할 수 있다. 음향 엔진(170)은 오디오 데이터와 연관된 하나 이상의 음향 특성을 생성하기 위해 다양한 기술을 활용할 수 있다. 이러한 구현예의 일부 버전에서, 음향 엔진(170)은, 오디오 데이터에 하나 이상의 특정 단어 또는 문구에 대응하는 오디오 데이터 부분에 선행하는 오디오 데이터의 프리앰블 부분 및/또는 하나 이상의 특정 단어 또는 문구에 대응하는 오디오 데이터 부분에 후속하는 오디오 데이터의 포스트앰블 부분이 있는지 여부를 결정하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 목소리 활동 검출(VAD) 모델을 사용하여 오디오 데이터를 처리할 수 있다. 이러한 구현예의 일부 추가 버전에서, ASR 엔진(120A1 및/또는 120A2) 및/또는 NLU 엔진(130A1 및/또는 130A2) 만이 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분이 존재한다는 결정에 응답하여 활성화될 수 있다. 예를 들어, 클라이언트 디바이스(110)에서 알림이 수신될 때, 클라이언트 디바이스(110)의 사용자가 “view“라는 음성 발언을 제공했다고 가정한다. 이 예에서, 웜 워드 활성화 이벤트 엔진(151)은 웜 워드 활성화 이벤트의 발생(예를 들어, 알림이 클라이언트 디바이스에서 수신되고 있음)을 검출하고, 웜 워드 모델을 활용하는 현재 휴면 중인 자동 어시스턴트 기능 중 하나 이상이 활성화되도록 할 수 있다. 또한, 웜 워드 검출 엔진(152)은, 웜 워드 활성화 이벤트에 대해 활성화된 웜 워드 모델 중 하나 이상을 사용하여 오디오 데이터 스트림을 처리함에 있어서, 위에서 설명된 것과 동일하거나 유사한 방식으로 오디오 데이터의 일부에서 하나 이상의 특정 단어 또는 문구(예를 들어, “view“)의 발생을 검출할 수 있다. 그러나, 음향 엔진(170)은 VAD 모델을 사용하여 오디오 데이터의 스트림을 처리하는 것에 기초하여 오디오 데이터의 프리앰블 부분(예를 들어, 오디오 데이터 스트림에서 “view“ 에 선행하는 부분) 또는 오디오 데이터의 포스트앰블 부분(예: 오디오 데이터 스트림에서 “view“ 에 후속하는 부분)이 없다고 결정할 수 있다. 결과적으로, ASR 엔진(120A1 및/또는 120A2) 및/또는 NLU 엔진(130A1 및/또는 130A2)은 활성화되지 않을 수 있으며, 자동화 어시스턴트(115)는 (선택적으로 사용자가 알림을 볼 수 있도록 인증되었는지 결정하는 것에 기초하여) 사용자에게 제시하기 위해 알림이 제공되도록 할 수 있다.
이러한 구현예의 추가적인 또는 대체 버전에서, 음향 엔진(170)은 오디오 데이터에 캡처된 음성 발언의 언어를 결정하기 위하여 ML 모델(들) 데이터베이스(115A)에 저장된 언어 식별 모델을 사용하여 오디오 데이터를 처리할 수 있다. 이러한 구현예의 일부 버전에서, 음성 발언의 언어는 오디오 데이터의 일부에 대응하는 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 발생시킬지 여부를 자동화 어시스턴트(115)에 알리기 위해, 또는 오디오 데이터의 일부에 대응하는 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령이 수행되는 것을 억제하기 위해, 오디오 데이터의 프리앰블 부분 또는 오디오 데이터의 포스트앰블 부분 중 어느 것이 컨텍스트적 정보를 제공하는지에 대한 표시를 제공할 수 있다. 예를 들어, 영어에서는 어시스턴트 명령을 유발하는 것을 억제하는 것을 나타내는 특정 용어 또는 문구는 특정 단어 또는 문구(예를 들어 "won’t answer", "can’t view" 등) 중 하나 이상에 대응하는 오디오 데이터 부분(예를 들어 오디오 데이터의 프리앰블 부분에서)에 선행하는 경향이 있다. 그러나 다른 언어(예 : 독일어)에서는 어시스턴트 명령을 유발하는 것을 억제하는 것을 나타내는 특정 용어 또는 문구는 특정 단어 또는 문구 중 하나 이상에 대응하는 오디오 데이터 부분(예를 들어 오디오 데이터의 포스트앰블 부분에서)에 후속하는 경향이 있다.
추가적인 또는 대안적인 구현예에서, 음성 발언의 언어는 오디오 데이터의 스트림을 추가로 처리하기 위해 어떤 웜 워드 모델(들) 및/또는 어떤 ASR 모델(들)이 활용되어야 하는지에 대한 표시를 제공할 수 있다. 예를 들어, 언어 식별 모델을 통해 생성된 출력이 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 사용자가 영어를 말하고 있음을 나타낸다고 가정하면, 자동화 어시스턴트 구성 요소에 의해 이후에 활용되는 웜 워드 모델 및/또는 ASR 모델은 영어에 특정할 수 있다. 그러나 언어 식별 모델을 통해 생성된 출력이 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 사용자가 독일어(또는 다른 언어)를 말하고 있다고 가정하면, 자동화 어시스턴트 구성 요소에 의해 이후에 활용되는 웜 워드 모델 및/또는 ASR 모델은 독일어(또는 다른 언어)에 특정할 수 있다.
추가적인 또는 대안적인 구현예에서, 다른 언어로 된 하나 이상의 특정 단어 및/또는 문구를 탐지하도록 트레이닝된 웜 워드 모델(들)은 하나 이상의 활성 자동화 어시스턴트 구성 요소에 의해 활용될 수 있으며, 특정 단어 및/또는 문구 중 검출된 하나 이상의 언어에 기초하여 오디오 데이터 스트림을 추가로 처리하기 위한 하나 이상의 자동화 어시스턴트 구성 요소에 의해 어떤 ASR 모델(들)이 후속적으로 활용되어야 하는지가 결정될 수 있다. 예를 들어, 웜 워드 모델을 통해 생성된 출력이 검출된 웜 워드가 스페인어로 제공되었음을 나타낸다고 가정하면, 자동화 어시스턴트 구성 요소에 의해 이후에 활용되는 ASR 모델은 스페인어에만 해당될 수 있다. 그러나 웜 워드 모델을 통해 생성된 출력이 검출된 웜 워드가 영어(또는 다른 언어)로 제공되었음을 나타낸다고 가정하면, 자동화 어시스턴트 구성요소에 의해 이후에 활용되는 ASR 모델은 영어(또는 상기 다른 언어)에 특정할 수 있다.
이러한 구현예의 추가적인 또는 대체 버전에서, 음향 엔진(170)은, 오디오 데이터 스트림에서 캡처된 음성 발언의 하나 이상의 운율 속성을 결정하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 운율 속성 분류 모델을 사용하여, 오디오 데이터를 처리할 수 있다. 오디오 데이터 스트림에 캡처된 음성 발언의 운율적 속성은 예를 들어 다음 중 하나 이상을 포함할 수 있다: 억양, 어조, 강세, 리듬, 템포 및 일시 정지. 이러한 운율 속성 중 하나 이상은 자동화 어시스턴트(115)에게, 오디오 데이터의 부분에 대응하는 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 발생시키거나, 또는 오디오 데이터의 일부에 대응하는 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령이 수행되는 것을 억제할지 여부를 알릴 수 있다. 예를 들어, 오디오 데이터에 캡처된 음성 발언에 일시 중지가 포함되지 않고 특정 단어 또는 문구 중 하나 이상에 추가 강세가 가해지는 경우, 음성 발언의 운율적 속성 중 하나 이상은 사용자가 어시스턴트 명령이 수행되도록 의도했을 가능성이 더 높다는 것을 자동화 어시스턴트(115)에 알릴 수 있다. 반대로 오디오 데이터에 캡처된 음성에 일시 중지 및 불확실한 톤이 포함되어 있는 경우, 음성 발언의 운율적 속성 중 하나 이상은 사용자가 어시스턴트 명령이 수행되도록 의도하지 않았을 가능성이 높다는 것을 자동화 어시스턴트(115)에 알릴 수 있다.
추가 또는 대체 구현예에서, 자동화 어시스턴트(115)는 존재 센서(113) 중 하나 이상에 의해 생성된 센서 데이터의 인스턴스를 분석할 수 있다. 자동화 어시스턴트(115)는, 오디오 데이터 스트림에서 웜 워드를 검출한 것에 대한 응답으로 어시스턴트 명령을 수행할지 여부를 결정하는 데 있어서, 존재 센서(113) 중 하나 이상에 의해 생성된 센서 데이터의 인스턴스를 고려한다. 예를 들어, 클라이언트 디바이스(110)의 하나 이상의 비전 구성요소가 음성 발언을 제공한 사용자의 시선이 클라이언트 디바이스(110)를 향하지 않는다는 것을 나타내는 경우, 비전 데이터는 사용자가 어시스턴트 명령이 수행되도록 의도하지 않았을 가능성이 더 높다는 것을 자동화 어시스턴트(115)에 알릴 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)의 하나 이상의 가속도계가 클라이언트 디바이스(110)가 움직이고 있음을 나타내는 경우(선택적으로 사용자의 시선 부족과 결합됨), 비전 데이터는 사용자가 어시스턴트 명령이 수행되도록 의도하지 않았을 가능성이 더 높다는 것을 자동화 어시스턴트(115)에 알릴 수 있다.
이제 도 2를 참조하면, 도 1의 다양한 구성요소를 사용하여 본 개시의 다양한 측면을 입증하는 예시적인 프로세스 흐름이 도시된다. 웜 워드 활성화 이벤트 엔진(151)은 웜 워드 활성화 이벤트(251)의 발생을 모니터링할 수 있다. 웜 워드 이벤트의 발생이 검출되면 웜 워드 검출 엔진(152)은 활성화되고, ML 모델(들) 데이터베이스(115A)에 저장된 웜 워드 활성화 이벤트(251)와 연관된 웜 워드 모델(들)을 사용하여 클라이언트 디바이스(110)의 하나 이상의 마이크로폰(201)에 의해 생성된 오디오 데이터(201A)의 스트림의 처리가 시작될 수 있다. 블록(299A)에 표시된 바와 같이, 오디오 데이터가 하나 이상의 웜 워드에 대응하지 않는다는 결정에 응답하여, 웜 워드 검출 엔진(152)은 하나 이상의 조건이 만족될 때까지 웜 워드 중 하나 이상의 발생에 대한 모니터링을 계속할 수 있다.
그러나 블록(299A)에도 표시된 바와 같이, 오디오 데이터의 일부가 웜 워드 중 하나 이상에 대응한다는 결정에 응답하여, 웜 워드 검출 엔진(152)은 하나 이상의 웜 워드(있는 경우)에 대응하는 오디오 데이터 부분보다 선행하는 오디오 데이터(201B)의 프리앰블 부분 및/또는 하나 이상의 웜 워드(있는 경우)에 대응하는 오디오 데이터 부분에 후속하는 오디오 데이터(201C)의 포스트앰블 부분이 획득되도록 할 수 있다. 또한, 오디오 데이터의 일부가 웜 워드 중 하나 이상에 대응한다는 결정에 응답하여, 웜 워드 검출 엔진(152)은 ASR 엔진(120A1 및/또는 120A2) 및/또는 NLU 엔진(130A1 및/또는 130A2)이 활성화되도록 할 수 있다. ASR 엔진(120A1 및/또는 120A2)은, ASR 출력(220)(예를 들어 오디오 데이터에 포함된 사용자의 모든 스피치에 대해 인식된)을 생성하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 ASR 모델(들)을 사용하여, 오디오 데이터(201B)의 프리앰블 부분 및/또는 오디오 데이터(201C)(선택적으로 웜 워드 중 하나 이상에 해당하는 오디오 데이터 부분)의 포스트앰블 부분을 처리할 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은, NLU 출력(230)(예를 들어, 오디오 데이터에 포함된 사용자의 모든 스피치에 대해 인식된 주석이 추가된)을 생성하기 위하여, ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델(들)을 사용하여, ASR 출력(220)을 처리할 수 있다. 웜 워드 검증 엔진(153)은, ASR 출력(220) 및/또는 NLU 출력(230)에 기초하여, 사용자가 실제로 자동화 어시스턴트(115)가 어시스턴트 명령을 수행하도록 의도했는지 여부를 결정할 수 있다.
예를 들어, 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 추가 클라이언트 디바이스(예: 스마트 스피커)를 통해 음악을 듣는 동안 오디오 데이터(201A)가 “will you turn the volume up“라는 음성 발언을 캡처한다고 가정한다. 이 예에서 웜 워드 활성화 이벤트(251)는 미디어 이벤트에 해당할 수 있으며, 미디어 이벤트와 관련된 하나 이상의 웜 워드 모델을 사용하여 음성 발언을 캡처하는 오디오 데이터에서 웜 워드 “volume up“ 을 검출할 수 있다. 또한, ASR 엔진(120A1 및/또는 120A2)은, “will you Turn the“ 및/또는 “volume up“에 대응하는 인식된 텍스트(예: ASR 출력(220))를 생성하기 위하여, ASR 모델을 사용하여, “will you Turn the“에 대응하는 오디오 데이터(201B)의 프리앰블 부분 및/또는 “volume up“에 해당하는 오디오 데이터 부분을 처리할 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은, 다양한 주석으로 인식된 텍스트의 하나 이상의 용어에 주석을 추가하는 주석 달린 인식 텍스트(예를 들어, NLU 출력(230))를 생성하기 위하여, NLU 모델을 사용하여, “will you Turn the“ 및/또는 “volume up“에 해당하는 인식된 텍스트를 처리할 수 있다. 이 예에서, 블록(299B)에 표시된 대로, 자동화 어시스턴트(115)는, 인식된 텍스트 및/또는 주석이 달린 인식된 텍스트를 기반으로, 재생 중인 음악의 볼륨을 조절하는 어시스턴트 명령(215A)이 수행되어야 한다고 결정할 수 있고, 어시스턴트 명령(215A)이 수행(예를 들어, 클라이언트 디바이스(110)의 볼륨을 높임으로써 또는 클라이언트 디바이스(110)와 통신하는 추가 클라이언트 디바이스에 볼륨을 높이라는 요청을 전송함으로써)되도록 할 수 있다.
대조적으로, 오디오 데이터(201A)가 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)와 통신하는 추가 클라이언트 디바이스(예를 들어 스마트 스피커)를 통해 음악을 듣는 동안 “please don’t turn the volume up” 라는 음성 발언을 캡처한다고 가정한다. 이 예에서 웜 워드 활성화 이벤트(251)은 미디어 이벤트에 해당할 수 있으며, 미디어 이벤트와 관련된 하나 이상의 웜 워드 모델을 사용하여 음성 발언을 캡처하는 오디오 데이터에서 웜 워드 “volume up“를 검출할 수 있다. 또한, ASR 엔진(120A1 및/또는 120A2)은, “Please don't Turn the“ 및/또는 “volume up“에 대응하는 인식된 텍스트(예를 들어, ASR 출력(220))을 생성하기 위하여, ASR 모델을 사용하여, “please don’t turn the“에 대응하는 오디오 데이터(201B)의 프리앰블 부분 및/또는 “volume up“에 대응하는 오디오 데이터의 부분을 처리할 수 있다. 또한, NLU 엔진(130A1 및/또는 130A2)은, 다양한 주석으로 인식된 텍스트의 하나 이상의 용어에 주석을 추가하는 주석 달린 인식 텍스트(예를 들어, NLU 출력(230))를 생성하기 위하여, NLU 모델을 사용하여, “please don’t turn the” 및/또는 “volume up” 에 해당하는 인식된 텍스트를 처리할 수 있다. 이 예에서, 블록(299B)에 표시된 대로, 자동화 어시스턴트(115)는 인식된 텍스트 및/또는 주석이 달린 인식된 텍스트를 기반으로, 재생 중인 음악의 볼륨을 높이는 어시스턴트 명령이 수행되어서는 않아야 한다고 결정하고, 어시스턴트 명령의 수행을 억제할 수 있다. 이들 예 중 일부에서, 오디오 데이터(201A) 및/또는 오디오 데이터(201A)에 기초하여 생성된 임의의 다른 데이터는 215B에 표시된 바와 같이 폐기될 수 있다.
일부 구현예에서, 자동화 어시스턴트(115)가 어시스턴트 명령을 수행하도록 결정하는지 여부는 음성 발언을 제공한 사용자의 신원이 검증되었는지, 식별된 사용자에게 어시스턴트 명령을 수행하도록 인증되었는지 여부에 기초할 수 있다(예를 들어, 도 1, 5, 및 6A-6C와 관련하여 설명된 바와 같이 사용자 검증 엔진(160)을 사용하여 결정됨). 예를 들어, 웜 워드 활성화 이벤트가 클라이언트 디바이스(110)에서 수신되는 전자 통신(예: 전화 통화, 문자 메시지, 이메일, 소셜 미디어 메시지 등)에 대응하는 구현예에서, 사용자의 신원은 자동 어시스턴트(115)가 어시스턴트 명령을 수행하기 전에 수행되어야 할 수도 있다. 또 다른 예로서, 웜 워드 활성화 이벤트가 제어되는 특정 장치(예: 스마트 잠금 장치, 스마트 오븐과 같은 스마트 기기, 스마트 차고문 개폐기 등)에 대응하는 구현예에서, 사용자의 신원은 자동화 어시스턴트(115)가 어시스턴트 명령을 수행하기 전에 수행되어야 할 수도 있다.
특정 구현이 도 2의 프로세스 흐름과 관련하여 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 것이 이해되어야 한다. 예를 들어, 오디오 데이터(201A)가 “show me directions home”라는 음성 발언을 캡처한다고 가정한다. 이 예에서, 검출된 웜 워드 활성화 이벤트(251)는 클라이언트 디바이스(110)에서 액세스 가능한 네비게이션 애플리케이션에 대응할 수 있다. 이에 따라, 네비게이션 이벤트와 연관된 하나 이상의 웜 워드 모델은 네비게이션과 관련된 하나 이상의 웜 워드의 발생을 지속적으로 모니터링할 수 있다. 더욱이, 자동화 어시스턴트는 어시스턴트 명령이 수행되도록 할지 여부를 결정하는 데 추가 또는 대체 신호를 활용할 수 있다(예를 들어, 음향 엔진(170)과 관련하여 설명된 바와 같이).
여기에 설명된 기술을 사용하면 하나 이상의 기술적 이점이 달성될 수 있다. 하나의 비제한적인 예로서, 본 명세서에 설명된 기술은 자동화 어시스턴트가, 웜 워드에 대한 컨텍스트적 오디오 데이터 처리를 기반으로, 사용자가 실제로 어시스턴트 명령을 수행하기 위해 웜 워드의 발생을 의도하는지 여부를 결정할 수 있게 한다. 결과적으로 웜 워드에 대한 잘못된 긍정의 양이 줄어들 수 있으므로, 자동화 어시스턴트가 어시스턴트 명령을 수행할 때 하나 이상의 네트워크를 활용하는 경우, 클라이언트 디바이스 및/또는 네트워크 리소스의 계산 리소스가 절약된다. 또한, 클라이언트 디바이스의 사용자가 임의의 어시스턴트 명령을 수정하거나 실행 취소하기 위한 조치를 취할 필요가 없으므로 사용자 입력의 양이 줄어들 수 있으며, 이에 따라 클라이언트 디바이스의 계산 리소스가 절약된다. 더욱이, 본 명세서에 설명된 다양한 자동화 어시스턴트 기능은 본 명세서에 설명된 바와 같이 필요할 때까지 휴면 상태로 유지될 수 있으며, 이에 따라 클라이언트 디바이스에서 계산 리소스를 절약할 수 있다. 다른 비제한적인 예로서, 본 명세서에 설명된 기술은 자동 어시스턴트가 SID 및/또는 다른 기술을 사용하여 웜 워드를 포함하는 음성 발언을 제공하는 사용자의 신원을 검증할 수 있게 한다. 결과적으로 인증된 사용자만 특정 어시스턴트 명령을 수행할 수 있으므로 클라이언트 디바이스 사용자와 관련된 데이터의 데이터 보안이 향상된다.
이제 그림으로 넘어가서 도 3을 참조하면, 컨텍스트적 오디오 데이터에 기초하여 어시스턴트 명령이 수행되도록 할지 여부를 결정하는 예시적인 방법(300)을 나타내는 흐름도가 도시되어 있다. 편의상, 방법(300)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 하나 이상의 프로세서, 메모리, 및/또는 컴퓨팅 장치(들)(예를 들어, 도 1, 도 4a-4c 및 6a-6c의 클라이언트 디바이스(110) 및/또는 도 7의 컴퓨팅 장치(710), 하나 이상의 서버, 및/또는 다른 컴퓨팅 장치)의 다른 구성요소(들)를 포함한다. 더욱이, 방법(300)의 동작이 특정 순서로 도시되어 있지만, 이것이 제한되는 것을 의미하는 것은 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나, 추가될 수 있다.
블록(352)에서 시스템은 웜 워드 활성화 이벤트의 발생을 모니터링한다. 웜 워드 활성화 이벤트는 예를 들어, 전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션 및/또는 클라이언트 디바이스 또는 클라이언트 디바이스와 통신하는 추가 클라이언트 디바이스가 제어되도록 하기 위해 사용자가 음성 발언을 제공할 수 있는 클라이언트 디바이스와 연관된 다른 이벤트를 포함할 수 있다. 특히 이러한 웜 워드 활성화 이벤트 중 일부는 개별 이벤트(예를 들어, 전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것)인 반면, 이러한 웜 워드 활성화 이벤트 중 일부는 연속 이벤트(예를 들어 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션)이다. 또한 이러한 웜 워드 활성화 이벤트는 상호 배타적이지 않다는 점에 유의해야 한다. 다르게 말하면 시스템은 특정 시간에 여러 개의 웜 워드 활성화 이벤트를 검출할 수 있다. 블록(352)의 반복에서, 시스템이 웜 워드 활성화 이벤트의 발생을 검출하지 못하면, 시스템은 블록(352)에서 웜 워드 활성화 이벤트의 발생을 계속 모니터링할 수 있다. 블록(352)의 반복에서, 시스템이 웜 워드 활성화 이벤트의 발생을 검출하면 시스템은 블록(354)로 진행할 수 있다.
블록(354)에서, 시스템은 하나 이상의 특정 단어 및/또는 문구(예: 웜 워드)의 발생을 모니터링하기 위해 하나 이상의 웜 워드 모델을 사용하여 오디오 데이터 스트림을 처리한다. 블록(352)에서 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여, 시스템은 하나 이상의 웜 워드 모델을 활용하는 하나 이상의 자동화 어시스턴트 구성 요소를 발생시킬 수 있다. 오디오 데이터의 스트림을 처리하는 데 활용되는 하나 이상의 웜 워드 모델은 블록(352)에서 검출된 웜 워드 활성화 이벤트와 연관될 수 있다. 예를 들어, 블록(352)에서 검출된 웜 워드 활성화 이벤트가 클라이언트 디바이스에서 수신되는 전화 통화에 대응하는 경우, 전화 통화 이벤트와 관련된 하나 이상의 웜 워드 모델이 오디오 데이터 스트림을 처리하는 데 활용될 수 있다. 다른 예로서, 블록(352)에서 검출된 웜 워드 활성화 이벤트가 클라이언트 디바이스에서 재생 중인 미디어에 대응하는 경우, 미디어 이벤트와 관련된 하나 이상의 웜 워드 모델이 오디오 데이터 스트림을 처리하는 데 활용될 수 있다.
블록(356)에서, 시스템은 특정 단어 및/또는 문구 중 하나 이상의 발생이 오디오 데이터 스트림에서 검출되는지 여부를 결정한다. 시스템은 하나 이상의 조건이 충족될 때까지 특정 단어 및/또는 문구 중 하나 이상의 발생을 계속 모니터링할 수 있다. 하나 이상의 조건은 예를 들어 임계 지속 기간의 경과, 특정 단어 또는 문구 중 하나 이상의 검출, 웜 워드 활성화 이벤트가 종료되었는지 결정 및/또는 기타 조건을 포함할 수 있다. 블록(356)의 반복에서, 시스템이 하나 이상의 특정 단어 및/또는 문구의 발생을 검출하지 못하는 경우, 시스템은 블록(354)로 돌아가 하나 이상의 조건이 만족될 때까지 블록(356)에서 오디오 데이터의 스트림을 계속 처리하고 하나 이상의 특정 단어 및/또는 문구의 발생을 모니터링할 수 있다. 블록(356)의 반복에서 시스템이 특정 단어 및/또는 문구 중 하나 이상의 발생을 탐지한 경우, 시스템은 블록(358)으로 진행한다.
블록(358)에서, 시스템은 웜 워드에 추가되는(예를 들어, 웜 워드에 선행하거나 후속하는) 추가 목소리 활동이 있는지 여부를 결정한다. 시스템은, 오디오 데이터의 스트림이 특정 단어 및/또는 문구 중 하나 이상에 대응하는 오디오 데이터의 일부에 추가되는 임의의 추가 오디오 데이터를 캡처하는지 여부를 결정하기 위하여, VAD 모델을 사용하여, 오디오 데이터의 스트림을 처리할 수 있다. 다른 말로 하면, 시스템은, 사용자가, 하나 이상의 특정 단어 및/또는 문구를 해석하는 데 있어서 컨텍스트적 오디오 데이터(예를 들어, 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분)로서 활용될 수 있는 임의의 추가적인 스피치에 대응하는 오디오 데이터와 같은 하나 이상의 특정 단어 및/또는 문구에 추가되는, 추가적인 스피치를 제공하였는지 여부를 결정하기 위해 VAD 모델을 활용할 수 있다. 블록(358)의 반복에서, 시스템은 웜 워드 외에 추가 목소리 활동이 없다고 결정하고, 시스템은 블록(366)으로 진행하여 자동화 어시스턴트가 특정 단어 및/또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 한다. 특히, 블록(366)으로 진행하면서, 시스템은 ASR 및/또는 NLU를 우회할 수 있다. 블록(358)의 반복에서, 시스템이 웜 워드에 대한 추가 목소리 활동이 있다고 판단하면 시스템은 블록(360)으로 진행한다. 일부 구현예에서, 블록(358)의 동작은 생략될 수 있고, 시스템은 블록(360)으로 직접 진행할 수 있다.
블록(360)에서, 시스템은 ASR 출력을 생성하기 위하여 ASR 모델을 사용하여 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분을 처리한다. 시스템은 ASR 출력을 생성하는데 있어서 추가적으로 또는 대안적으로 ASR 모델을 사용하여 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분과 함께 웜 워드에 해당하는 오디오 데이터 부분(예를 들어 오디오 데이터의 단일 인스턴스로서)을 처리할 수 있다. ASR 모델을 활용하는 하나 이상의 자동 어시스턴트 구성요소는 블록(356)에서 특정 단어 및/또는 문구 중 하나 이상의 발생을 검출한 것에 응답하여 및/또는 블록(358)에서 추가 목소리 활동이 있다는 결정에 응답하여 활성화될 수 있다. 다양한 구현예에서, ASR 출력은 웜 워드 모델(들)과 연관된 하나 이상의 특정 단어 및/또는 문구 쪽으로 편향될 수 있다. 블록(362)에서, 시스템은 NLU 모델을 사용하여 ASR 출력을 처리하여 NLU 출력을 생성한다. 블록(360)에 관해 위에서 설명한 것과 유사하게, NLU 모델을 활용하는 하나 이상의 자동화 어시스턴트 구성요소는 블록(356)에서 특정 단어 및/또는 문구 중 하나 이상의 발생을 검출한 것에 응답하여 및/또는 블록(358)에서 추가 목소리 활동이 있다는 결정에 응답하여 활성화될 수 있다.
블록(364)에서, 시스템은 웜 워드를 포함하고 오디오 데이터의 스트림에 캡처된 음성 발언을 제공한 사용자가 블록(356)에서 검출된 웜 워드와 연관된 어시스턴트 명령을 자동화 어시스턴트에 의해 수행되도록 의도했는지 여부를 결정한다. 시스템은 블록(360)에서 생성된 ASR 출력 및/또는 블록(362)에서 생성된 NLU 출력에 기초하여 사용자가 어시스턴트 명령이 자동화 어시스턴트에 의해 수행되도록 의도했는지 여부를 결정할 수 있다. 블록(364)의 반복에서 시스템이 사용자가 어시스턴트 명령을 자동화 어시스턴트에 의해 수행되도록 의도했다고 결정하면, 시스템은 블록(366)으로 진행한다. 블록(366)에서, 시스템은 자동화 어시스턴트가 블록(356)에서 검출된 웜 워드와 연관된 어시스턴트 명령을 수행하도록 한다. 블록(364)의 반복에서 시스템이 사용자가 어시스턴트 명령이 자동화 어시스턴트에 의해 수행되도록 의도하지 않았다고 결정하면, 시스템은 블록(368)로 진행한다. 블록(368)에서, 시스템은 자동화 어시스턴트가 블록(356)에서 검출된 웜 워드와 연관된 어시스턴트 명령을 수행하도록 하는 것을 억제한다.
이제 도 4a, 4b 및 4c를 참조하면, 도 3의 방법(300)을 활용하여 컨텍스트적 오디오 데이터에 기초하여 어시스턴트 명령이 수행되도록 할지 여부를 결정하는 다양한 비제한적인 예가 도시되어 있다. 자동화 어시스턴트는 클라이언트 디바이스(110)(예를 들어, 도 1과 관련하여 설명된 자동화 어시스턴트(115))에서 적어도 부분적으로 구현될 수 있다. 자동화 어시스턴트는 어시스턴트 명령이 컨텍스트적 오디오 데이터에 기초하여 수행되도록 할지 여부를 결정하기 위해(예를 들어, 도 3의 방법(300)과 관련하여 설명된 바와 같이) 웜 워드 시스템(180)(예를 들어, 도 1과 관련하여 설명된 웜 워드 시스템(180))을 활용할 수 있다.
도 4A, 4B 및 4C에 도시된 클라이언트 디바이스(110)는 예를 들어, 음성 발언 및/또는 기타 가청 입력을 기반으로 오디오 데이터를 생성하는 마이크, 합성된 스피치를 청각적으로 렌더링하는 스피커 및/또는 기타 가청 출력 및 터치 입력을 수신하고/하거나 전사 및/또는 다른 시각적 출력을 시각적으로 렌더링하기 위한 디스플레이(190)를 포함하는 다양한 사용자 인터페이스 구성요소를 포함할 수 있다. 또한, 클라이언트 디바이스(110)의 디스플레이(190)는 클라이언트 디바이스(110)가 하나 이상의 동작(예를 들어, 도 6B 및 6C와 관련하여 설명된 바와 같이)을 수행하게 하기 위해 클라이언트 디바이스(110)의 사용자에 의해 상호작용할 수 있는 다양한 시스템 인터페이스 요소(예: 하드웨어 및/또는 소프트웨어 인터페이스 요소)를 포함한다. 도 4A-4C에 도시된 클라이언트 디바이스(110)는 모바일 장치이지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다.
구체적으로 도 4A를 참조하면, 클라이언트 디바이스(110)와 연관된 사용자(101)가 추가 사용자(102)와 함께 환경(400)에 공존한다고 가정한다. 또한, 클라이언트 디바이스(110)에서 전화 통화가 수신된다고 가정한다. 이 예에서, 자동화 어시스턴트는 클라이언트 디바이스(110)에서 수신되고 있는 전화 통화가 웜 워드 활성화 이벤트에 대응한다고 결정할 수 있다. 결과적으로, 자동화 어시스턴트는 전화 통화 이벤트와 연관된 하나 이상의 웜 워드 모델을 활용하는 하나 이상의 현재 휴면 중인 자동 어시스턴트 기능을 활성화할 수 있다. 전화 통화 이벤트와 관련된 하나 이상의 웜 워드 모델은 전화 통화 이벤트(예: '응답(answer)', '거절(decline)', '화면 통화(screen call)', 음성 메일(voicemail)로 보내기' 등)와 관련된, 검출되면 자동화 어시스턴트가 특정 단어 및/또는 문구와 관련된 특정 동작을 수행하게 하는, 특정 단어 및/또는 문구의 발생을 모니터링하기 위해 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터 스트림을 처리하는 데 활용될 수 있다.
예를 들어, 도 4a에 도시된 바와 같이, 클라이언트 디바이스(110)가 벨을 울리는 동안 클라이언트 디바이스(110)의 사용자(101)가 “Answer“라는 음성 발언(452A)을 제공한다고 가정한다. 이 예에서, 자동화 어시스턴트는 전화 통화 이벤트와 관련된 하나 이상의 웜 워드 모델을 사용하여 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터의 스트림을 처리할 때, 오디오 데이터가 검출되면 자동화 어시스턴트가 사용자(101)를 대신하여 전화 통화에 대답하게 하는 웜 워드 “Answer“에 대응하는지를 결정할 수 있다. 또한 자동화 어시스턴트는 VAD 모델을 사용하여 오디오 데이터 스트림을 처리하여 추가 목소리 활동이 있는지 여부를 결정할 수 있다. 이 예에서, VAD 모델을 사용하여 생성된 출력은 추가 목소리 활동이 없음을 나타내며, 결과적으로, 사용자(101)가 실제로 음성 발언(452A)으로 인해 전화 통화에 응답하도록 의도했는지 여부를 결정하기 위해 처리될 컨텍스트적 오디오 데이터가 없다. 결과적으로, 자동화 어시스턴트는 전화 통화가 클라이언트 디바이스(110)에서 응답되도록 할 것이다.
대조적으로, 도 4b에 도시된 바와 같이, 클라이언트 디바이스(110)가 벨을 울리는 동안, 클라이언트 디바이스(110)의 사용자(101)가 “I won’t answer it now, I’ll call them back later“라는 음성 발언(452B)을 제공했다고 가정한다. 이 예에서, 자동화 어시스턴트는, 전화 통화 이벤트와 연관된 하나 이상의 웜 워드 모델을 사용하여 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터 스트림을 처리할 때, 오디오 데이터의 일부가, 검출되면 자동 어시스턴트가 사용자(101)를 대신하여 전화 통화에 응답하게 하는, “Answer”라는 웜 워드에 해당하는지를 결정할 수 있다. 또한 자동화 어시스턴트는 추가 목소리 활동이 있는지 여부를 결정하기 위해 VAD 모델을 사용하여 오디오 데이터 스트림을 처리할 수 있다. 이 예에서 VAD 모델을 사용하여 생성된 출력은 추가 목소리 활동이 있음을 나타내며, 결과적으로, 사용자(101)가 실제로 음성 발언(452B)으로 인해 전화 통화에 응답하도록 의도했는지 여부를 결정하기 위해 처리될 컨텍스트적 오디오 데이터가 있다. 결과적으로, 자동화 어시스턴트는 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분이 획득되도록 할 것이다.
이 예에서, 오디오 데이터의 프리앰블 부분은 음성 발언(452B)의 “I won’t”에 대응한다. 자동화 어시스턴트는 오디오 데이터의 프리앰블 부분에 대한 ASR 출력을 생성하기 위해 ASR 모델(들)을 사용하여 오디오 데이터의 프리앰블 부분이 처리되도록 할 수 있다. 또한, 자동화 어시스턴트는 오디오 데이터의 프리앰블 부분에 대한 NLU 출력을 생성하기 위해 NLU 모델(들)을 사용하여 ASR 출력이 처리되도록 할 수 있다. 자동화 어시스턴트는 사용자(101)가 실제로 오디오 데이터의 프리앰블 부분에 대한 ASR 출력 및/또는 NLU 출력에 기초하여 전화 통화에 응답하도록 음성 발언(452B)을 의도했는지 여부를 결정할 수 있다. 예를 들어, 자동화 어시스턴트는 ASR 출력 및/또는 NLU 출력을 기반으로 “won’t”가 “Answer”라는 웜 워드를 부정하지 않을 것이라고 결정할 수 있다. 따라서, 이 예에서, 자동화 어시스턴트는 오디오 데이터의 프리앰블 부분을 처리하는 것에 기초하여 클라이언트 디바이스(110)에서 전화 통화가 응답되도록 하는 것을 억제할 것이다. 다양한 구현예에서, 여기에 설명된 웜 워드 모델에 추가하여 하나 이상의 부정적인 웜 워드 모델이 추가로 또는 대안적으로 활용될 수 있다. 이러한 구현예에서, 하나 이상의 부정적인 웜 워드 모델은 웜 워드를 부정하는 웜 워드(예를 들어 “won’t”, “can’t”, “don’t” 등,)에 근접한 다른 단어 및/또는 문구를 탐지하기 위해 활용될 수 있다. 또한, 이러한 부정적인 웜 워드 모델 중 하나 이상이 웜 워드에 근접한 다른 단어 및/또는 문구를 검출하는 경우, ASR 모델(들) 및/또는 NLU 모델(들)을 활용하는 하나 이상의 자동화 어시스턴트 구성요소가 휴면 상태를 유지할 수 있다.
일부 구현예에서, 그리고 자동 어시스턴트가 사용자(101)가 실제로 오디오 데이터의 프리앰블 부분 처리에 기초하여 전화 통화에 응답하도록 음성 발언(452B)을 의도했는지 여부를 결정할 수 없다고 가정하면, 자동화 어시스턴트는 오디오 데이터의 포스트앰블 부분(예를 들어, 음성 발언(452B)의 “I’ll call them back later”에 해당하는)에 대한 ASR 출력을 생성하기 위해 ASR 모델(들)을 사용하여 오디오 데이터의 포스트앰블 부분이 더 처리되도록 할 수도 있다. 또한, 자동화 어시스턴트는 오디오 데이터의 포스트앰블 부분에 대한 NLU 출력을 생성하기 위해 NLU 모델(들)을 사용하여 ASR 출력이 처리되도록 할 수 있다. 자동화 어시스턴트는 오디오 데이터의 포스트앰블 부분에 대한 ASR 출력 및/또는 NLU 출력에 기초하여, 전화 통화가 응답되도록 사용자(101)가 실제로 음성 발언(452B)을 의도했는지 여부를 결정할 수 있다. 예를 들어, 자동화 어시스턴트는 “I’ll call them back later”가 사용자(101)가 이 순간에 전화 통화에 응답할 의도가 없음을 나타내는 것으로 결정하여, ASR 출력 및/또는 NLU 출력을 기반으로 오디오 데이터의 포스트앰블 부분이 웜 워드 “Answer”를 무효화하도록 할 수 있다. 따라서 이 예에서, 자동화 어시스턴트는 오디오 데이터의 포스트앰블 부분의 추가 처리에 기초하여 클라이언트 디바이스(110)에서 전화 통화가 응답되도록 하는 것을 억제할 것이다.
또 다른 예로서, 도 4C에 도시된 바와 같이, 클라이언트 디바이스(110)가 벨을 울리는 동안, 클라이언트 디바이스(110)와 관련된 사용자(101)의 환경에 같은 위치에 있는 추가 사용자(102)가 “Are you going to answer that?”라는 음성 발언(452C)을 제공한다고 가정한다. 이 예에서는 자동화 어시스턴트가, 전화 통화 이벤트와 관련된 하나 이상의 웜 워드 모델을 사용하여 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터의 스트림을 처리할 때, 오디오 데이터가, 검출되면 자동 어시스턴트가 사용자(101)를 대신하여 전화 통화에 응답하게 하는 웜 워드 “Answer” 에 해당하는지 결정할 수 있다. 또한 자동화 어시스턴트는 VAD 모델을 사용하여 오디오 데이터 스트림을 처리하여 추가 목소리 활동이 있는지 여부를 결정할 수 있다. 이 예에서 VAD 모델을 사용하여 생성된 출력은 추가 목소리 활동이 있음을 나타내며 결과적으로 처리할 컨텍스트적 오디오 데이터가 있음을 나타낸다. 그러나 도 4a 및 도 4b의 예와는 대조적으로, 음성 발언(452C)은 클라이언트 디바이스(110)와 연관된 사용자(101)가 아닌 추가 사용자(102)에 의해 제공되었다.
추가적인 또는 대안적인 구현예에서, 그리고 도 5 및 6A-6C와 관련하여 설명된 바와 같이, 음성 발언(452A, 452B 및/또는 452C)을 제공한 사용자의 신원은 어시스턴트 명령이 수행되도록 하는 자동화 어시스턴트 이전에 검증될 필요가 있을 수 있다. 또한, 자동화 어시스턴트는 식별된 사용자가 어시스턴트 명령을 수행하도록 하는 인증되었는지를 추가적으로 또는 대안적으로 결정해야 할 수도 있다. 자동화 어시스턴트가 음성 발언을 제공한 사용자의 신원을 검증하고/하거나 사용자가 인증되었는지 여부를 결정하는 데 필요한 어시스턴트 명령은 특정 웜 워드 모델과 연관된 어시스턴트 명령, 클라이언트 디바이스(110)에서 액세스할 수 있는 특정 소프트웨어 애플리케이션과 연관된 어시스턴트 명령, 어시스턴트 명령에 따라 제어할 특정 장치와 연관된 어시스턴트 명령, 및/또는 어시스턴트 명령의 다른 서브 셋일 수 있다.
그럼에도 불구하고, 도 4c와 관련하여, 자동화 어시스턴트는 여전히 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분이 획득되도록 할 수 있다. 다르게 말하면, 자동화 어시스턴트는 음성 발언이 어시스턴트 명령이 수행되도록 의도되지 않은 경우 음성 발언(452C)을 제공한 추가 사용자(102)의 신원을 검증하려고 시도하지 않을 수 있다. 이 예에서, 오디오 데이터의 프리앰블 부분은 음성 발언(452C)의 “Are you going to”에 대응한다. 자동화 어시스턴트는 오디오 데이터의 프리앰블 부분이 위에서 설명한 것과 동일하거나 유사한 방식으로 처리되어 오디오 데이터의 프리앰블 부분에 대한 ASR 출력 및 NLU 출력을 생성하게 할 수 있다(그리고 선택적으로 하나 이상의 특정 용어 또는 문구 및/또는 오디오 데이터의 포스트앰블 부분에 해당하는 오디오 데이터(예를 들어 오디오 데이터의 단일 인스턴스 또는 오디오 데이터의 여러 개별 인스턴스) 부분과 결합하여). 또한, 자동화 어시스턴트는 추가 사용자(102)가 실제로 음성 데이터의 프리앰블 부분에 대한 ASR 출력 및/또는 NLU 출력에 기초하여 전화 통화에 응답하도록 음성 발언(452C)을 의도했는지 여부를 결정할 수 있다. 예를 들어, 자동화 어시스턴트는 ASR 출력 및/또는 NLU 출력에 기초하여 “are you going to”가 클라이언트 디바이스(110)와 관련된 사용자(101)에게 추가 사용자(102)에 의해 제기되는 질문에 대응하는지를 결정하고, 전화 통화에 응답하도록 의도되지 않은것으로 결정할 수 있다. 따라서 이 예에서, 자동화 어시스턴트는 오디오 데이터(및 선택적으로 음성 발언의 “that“에 대응하는 포스트앰블 오디오 데이터의 추가 처리(452C))의 프리앰블 부분을 처리하는 것에 기초하여 클라이언트 디바이스(110)에서 전화 통화가 응답되도록 하는 것을 억제할 것이다.
도 4A-4C에서는 특정 어시스턴트 명령이 수행되도록 하는 특정 웜 워드에 대해 설명하고 있지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다. 오히려, 도 4A-4C와 관련하여 설명된 기술이 임의의 웜 워드 활성화 이벤트를 검출, 웜 워드 활성화 이벤트와 관련된 웜 워드 모델을 사용하여 임의의 웜 워드를 검출, 및 어시스턴트 명령이 수행되도록 하는 데 활용될 수 있다는 것을 이해해야 한다.
이제 도 5를 참조하면, 화자 식별에 기초하여 어시스턴트 명령이 수행될지 여부를 결정하는 예시적인 방법(500)을 도시하는 흐름도가 도시되어 있다. 편의상, 방법(500)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(500)의 이 시스템은 하나 이상의 프로세서, 메모리, 및/또는 컴퓨팅 장치(예를 들어, 도 1, 4a-4c 및 6a-6c의 클라이언트 디바이스(110))의 다른 구성요소(들) 및/또는 도 7의 컴퓨팅 장치(710), 하나 이상의 서버, 및/또는 다른 컴퓨팅 장치). 더욱이, 방법(500)의 동작이 특정 순서로 도시되어 있지만, 이것이 제한되는 것을 의미하는 것은 아니다. 하나 이상의 동작이 재정렬되거나, 생략되거나, 추가될 수 있다.
블록(552)에서 시스템은 웜 워드 활성화 이벤트의 발생을 모니터링한다. 블록(552)의 반복에서 시스템이 웜 워드 활성화 이벤트의 발생을 검출하지 못하면 시스템은 블록(552)에서 웜 워드 활성화 이벤트의 발생에 대한 모니터링을 계속할 수 있다. 블록(552)의 반복에서 시스템이 웜 워드 활성화 이벤트의 발생을 검출하면 시스템은 블록(554)로 진행할 수 있다. 블록(554)에서, 시스템은 하나 이상의 웜 워드 모델을 사용하여 오디오 데이터 스트림을 처리하여 하나 이상의 특정 단어 및/또는 문구(예: 웜 워드)의 발생을 모니터링한다. 블록(356)에서, 시스템은 특정 단어 및/또는 문구 중 하나 이상의 발생이 오디오 데이터 스트림에서 검출되는지 여부를 결정한다. 블록(556)의 반복에서 시스템이 하나 이상의 특정 단어 및/또는 문구의 발생을 검출하지 못하는 경우, 시스템은 블록(554)으로 돌아가 하나 이상의 조건이 만족될 때까지 블록(556)에서 오디오 데이터의 스트림을 계속 처리하고 하나 이상의 특정 단어 및/또는 문구의 발생을 모니터링할 수 있다. 블록(556)의 반복에서 시스템이 특정 단어 및/또는 문구 중 하나 이상의 발생을 탐지한 경우, 시스템은 블록(558)으로 진행한다. 블록들(552, 554, 556)의 동작은 각각 도 3의 방법(300)의 블록들(352, 354, 356)에 대해 설명된 것과 동일하거나 유사한 방식으로 수행될 수 있다.
블록(558)에서, 시스템은 특정 단어 및/또는 문구 중 하나 이상을 포함하는 오디오 데이터 스트림에서 캡처된 음성 발언을 제공한 사용자의 신원을 검증할지 여부를 결정한다. 시스템은 특정 웜 워드 모델(들)과 연관된, 사용자의 클라이언트 디바이스에서 액세스할 수 있는 특정 소프트웨어 애플리케이션과 연관된, 어시스턴트 명령 및/또는 어시스턴트 명령의 다른 서브셋을 기반으로 제어될 특정 장치와 연관된 하나 이상의 특정 단어 및/또는 문구를 기반으로 음성 발언을 제공한 사용자의 신원을 검증할지 여부를 결정할 수 있다. 예를 들어, 어시스턴트 명령으로 인해 클라이언트 디바이스에서 미디어가 재생되거나 스마트 조명이 제어되는 구현예에서는 사용자의 신원을 검증할 필요가 없을 수도 있다. 그러나 어시스턴트 명령이 들어오는(incoming) 전자 통신(예: 전화 통화, 문자 메시지, 이메일, 소셜 미디어 메시지 등)에 대한 응답하게 하거나 스마트 잠금 장치를 제어하게 하는 구현예에서는 사용자의 신원을 검증해야 할 수도 있다. 블록(558)의 반복에서 시스템이 음성 발언을 제공한 사용자의 신원을 검증할 필요가 없다고 결정하면, 시스템은 도 3의 블록(358)으로 진행할 수 있고 도 2의 방법(300)의 수행을 계속할 수 있다. 블록(558)의 반복에서 시스템이 음성 발언을 제공한 사용자의 신원을 검증해야 한다고 결정하면 시스템은 블록(560)으로 진행할 수 있다.
블록(560)에서, 시스템은 오디오 데이터 스트림에 포함된 오디오 데이터가 TI SID를 수행하기에 충분한지 여부를 결정한다. 시스템은 오디오 데이터에 캡처된 음성 발언의 길이와 임계 길이를 비교함으로써 오디오 데이터 스트림에 포함된 오디오 데이터가 TI SID를 수행하기에 충분한지 여부를 결정할 수 있다. 시스템은 음성 발언이 임계 길이를 충족하는 경우 오디오 데이터가 TI SID를 수행하기에 충분하다고 판단할 수 있다. 블록(560)의 반복에서 시스템이 오디오 데이터가 TI SID를 수행하기에 충분하다고 결정하면, 시스템은 블록(562)으로 진행할 수 있다. 블록(562)에서 시스템은 TI SID 모델을 사용하여 오디오 데이터를 처리하여 사용자의 신원을 검증한다. 블록(566)에서, 블록(562)로부터, 시스템은 사용자의 신원이 검증되었는지 여부를 결정한다. 예를 들어, 시스템은 음성 발언을 제공한 사용자를 위한 TI 화자 임베딩을 생성하기 위하여, TI SID 모델을 사용하여 오디오 데이터를 처리할 수 있다. 또한, 시스템은 임베딩 공간에서 음성 발언을 제공한 사용자에 대한 TI 화자 임베딩을 클라이언트 디바이스의 한 명 이상의 사용자에 대해 이전에 생성된 하나 이상의 TI 화자 임베딩과 비교할 수 있다. 더욱이, 시스템은 상기 비교에 기초하여 결정된 거리 메트릭에 기초하여 TI 화자 임베딩이 이전에 생성된 TI 화자 임베딩 중 하나 이상에 대응하는지 여부를 결정할 수 있다. 블록(566)의 반복에서, 블록(562)으로부터, 시스템이 거리 메트릭이 거리 임계값을 만족한다고 결정하면, 음성 발언을 제공한 사용자의 신원은 클라이언트 디바이스와 연관된 사용자로 검증될 수 있고, 식별된 사용자가 어시스턴트 명령을 수행하도록 인증되었다고 가정하면, 블록(568)에서, 시스템은 자동화 어시스턴트가 어시스턴트 명령을 수행하도록 할 수 있다. 그러나 블록(562)으로부터 블록(566)의 반복에서 시스템이 거리 메트릭이 거리 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(570)에서 자동화 어시스턴트가 어시스턴트 명령을 수행하게 하기 위해 사용자의 신원에 대한 추가 검증을 위한 프롬프트를 생성 및 제공(예를 들어 음성 발언을 제공한 사용자에게 얼굴 지문 식별 또는 지문 식별을 제공하도록 요청)할 수 있다.
블록(560)의 반복에서 시스템이 오디오 데이터가 TI SID를 수행하기에 충분하지 않다고 결정하면, 시스템은 블록(564)으로 진행할 수 있다. 블록(564)에서, 시스템은 TD SID 모델을 사용하여 오디오 데이터를 처리하여 사용자의 신원을 검증한다. 블록(566)에서, 블록(562)에서, 시스템은 사용자의 신원이 검증되었는지 여부를 결정한다. 예를 들어, 시스템은 음성 발언을 제공한 사용자에 대한 TD 화자 임베딩을 생성하기 위하여 TD SID 모델을 사용하여 오디오 데이터를 처리할 수 있다. 또한, 시스템은 임베딩 공간에서 음성 발언을 제공한 사용자에 대한 TD 화자 임베딩을 클라이언트 디바이스의 한 명 이상의 사용자에 대해 이전에 생성된 하나 이상의 TI 화자 임베딩과 비교할 수 있다. 특히, TD 화자 임베딩은 하나 이상의 특정 단어 및/또는 문구(예를 들어 블록(556)에서 검출된 웜 워드에 해당하는 오디오 데이터 부분)에 대한 화자 임베딩에 해당한다. 더욱이, 시스템은 상기 비교에 기초하여 결정된 거리 메트릭에 기초하여, TD 화자 임베딩이 특정 단어 및/또는 문구 중 하나 이상에 대해 이전에 생성된 TD 화자 임베딩 중 하나 이상에 대응하는지 여부를 결정할 수 있다. 블록(566)의 반복에서 블록(564)으로부터 시스템이 거리 메트릭이 거리 임계값을 만족한다고 결정하면, 음성 발언을 제공한 사용자의 신원은 클라이언트 디바이스와 연관된 사용자로 검증될 수 있고, 식별된 사용자가 어시스턴트 명령을 수행하도록 인증되었다고 가정하면, 블록(568)에서, 시스템은 자동화 어시스턴트가 어시스턴트 명령을 수행하도록 할 수 있다. 그러나 블록(564)으로부터, 블록(566)의 반복에서, 시스템이 거리 메트릭이 거리 임계값을 만족하지 않는다고 결정하면, 시스템은 블록(570)에서 자동화 어시스턴트가 어시스턴트 명령을 수행하게 하기 위해 사용자의 신원에 대한 추가 검증을 위한 프롬프트를 생성 및 제공(예를 들어, 음성 발언을 제공한 사용자에게 TI SID 검증 또는 TD SID 검증을 위한 예시 발언을 제공하도록 요청하거나 음성 발언을 제공한 사용자에게 얼굴 지문 인증 또는 지문 인증을 제공하도록 요청)할 수 있다.
특히, 비록 도 5에서는 음성 발언을 제공한 사용자의 신원을 검증하기 위해 TI SID와 TD SID를 별도로 수행하는 것에 대해 설명하고 있으나, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다. 예를 들어, 음성 발언이 TI SID를 수행하기에 충분한 길이인 구현예에서, TI SID 및 TD SID 모두는 음성 발언을 제공한 사용자의 신원을 검증하기 위해 수행될 수 있다. 다른 예로서, 다양한 구현예에서, TD SID는 이전에 생성된 TD 화자 임베딩 중 하나 이상이 음성 발언에서 캡처된 하나 이상의 특정 단어 및/또는 문구에 대응한다고 결정되는 경우에만 수행될 수 있다. 또한, 이러한 기술은 동일한 사용자가 제공한 오디오 데이터 스트림에서 캡처된 음성 발언의 부분들을 검증하는 데 활용될 수 있다. 예를 들어, 오디오 데이터 스트림이 “don’t”라는 제1 사용자의 제1 음성 발언과 “answer“이라는 제2 사용자의 제2 음성 발언을 캡처한다고 가정한다. 또한, 제2 사용자가 클라이언트 디바이스와 연관되어 있고 인증된 답변이고, “answer“라는 음성 발언을 위해 제2 사용자에 대한 TD 화자 임베딩이 이전에 생성되어 클라이언트 디바이스에 저장되었다고 가정한다. 이 경우, TD SID 모델을 이용하여 생성된 TD 화자 임베딩은 클라이언트 디바이스에서 수신된 전화 통화에 응답하기 위하여 제2 사용자가 어시스턴트 명령을 수행하도록 인증된, 검증된 사용자임을 나타낼 수 있다. 또한, “don’t” 음성 발언 및 “answer” 음성 발언에 대한 다중 TI 화자 임베딩은 서로 다른 사용자가 오디오 데이터 스트림에 캡처된 음성 발언을 제공했음을 나타낼 수 있다. 따라서 이 예에서 시스템은 자동화 어시스턴트가 수신된 전화 통화에 응답하도록 할 수 있다.
이제 도 6A, 6B 및 6C를 참조하면, 도 5의 방법(500)을 활용한 화자 식별에 기초하여 어시스턴트 명령이 수행될지 여부를 결정하는 다양한 비제한적인 예가 도시되어 있다. 자동화 어시스턴트는 클라이언트 디바이스(110)에서 적어도 부분적으로 구현(예를 들어, 도 1과 관련하여 설명된 자동화 어시스턴트(115))될 수 있다. 자동화 어시스턴트는 어시스턴트 명령이 컨텍스트적 오디오 데이터()에 기초하여 수행되도록 할지 여부를 결정하기 위해 웜 워드 시스템(180)(예를 들어, 도 1과 관련하여 설명된 웜 워드 시스템(180))을 활용할 수 있다(예를 들어, 도 5의 방법(500)과 관련하여 설명된 바와 같이).
도 4A-4C에 도시된 클라이언트 디바이스와 유사하게, 도 6a 내지 도 6c에 도시된 클라이언트 디바이스(110)는, 예를 들어, 음성 발언 및/또는 기타 가청 입력을 기반으로 오디오 데이터를 생성하는 마이크(들), 합성된 스피치 및/또는 기타 가청 출력을 청각적으로 렌더링하는 스피커(들), 및 터치 입력을 수신하고/하거나 전사 및/또는 다른 시각적 출력을 시각적으로 렌더링하기 위한 디스플레이(190)를 포함하는 다양한 사용자 인터페이스 구성요소를 포함할 수 있다. 또한, 도 6B 및 6C에 도시된 바와 같이, 클라이언트 디바이스(110)의 디스플레이(190)는 클라이언트 디바이스(110)가 하나 이상의 동작을 수행하게 하기 위해 클라이언트 디바이스(110)의 사용자에 의해 상호작용될 수 있는 다양한 시스템 인터페이스 요소(191, 192, 193)(예: 하드웨어 및/또는 소프트웨어 인터페이스 요소)를 포함한다. 클라이언트 디바이스(110)의 디스플레이(190)는 사용자가 터치 입력(예를 들어, 사용자 입력을 디스플레이(190) 또는 그 부분(예를 들어, 텍스트 입력 상자(194) 또는 디스플레이(190)의 다른 부분)으로 지시함으로써) 및/또는 음성 입력(예를 들어 마이크 인터페이스 요소 195를 선택하거나 마이크 인터페이스 요소 195를 선택할 필요없이 단지 말하는 것으로(즉, 자동화 어시스턴트는 클라이언트 디바이스(110)에서 음성 입력을 활성화하기 위해 하나 이상의 특정 용어나 문구, 제스처(들) 시선(들), 입 움직임(들), 입술 움직임(들) 및/또는 기타 조건을 모니터링할 수 있다. ))에 의해 디스플레이(190) 상에 렌더링된 콘텐츠와 상호작용할 수 있게 한다. 도 6a 내지 도 6c에 도시된 클라이언트 디바이스(110)는 모바일 장치이지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 것이 이해되어야 한다.
구체적으로 도 6A를 참조하면, 클라이언트 디바이스(110)와 연관된 사용자(101)가 추가 사용자(102)와 함께 환경(600)에 공존한다고 가정한다. 또한, 클라이언트 디바이스(110)에서 전화 통화가 수신된다고 가정한다. 이 예에서, 자동화 어시스턴트는 클라이언트 디바이스(110)에서 수신되고 있는 전화 통화가 웜 워드 활성화 이벤트에 대응한다고 결정할 수 있다. 결과적으로, 자동화 어시스턴트는 전화 통화 이벤트와 연관된 하나 이상의 웜 워드 모델을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 활성화할 수 있다. 전화 통화 이벤트와 관련된 하나 이상의 웜 워드 모델은, 검출되면 자동화 어시스턴트가 특정 단어 및/또는 문구와 관련된 특정 작업을 수행하게 하는 전화 통화 이벤트와 관련된 특정 단어 및/또는 문구(예: '응답', '거절', '화면 통화', 음성 메일로 보내기' 등)의 발생을 모니터링하기 위해, 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터 스트림을 처리하는 데 활용될 수 있다.
예를 들어, 도 6A에 도시된 바와 같이, 클라이언트 디바이스(110)가 벨을 울리는 동안 추가 사용자(102)가 “Answer”라는 음성 발언(652A)을 제공한다고 가정한다. 특히, 도 4A와 대조적으로, “Answer“의 음성 발언(652A)은 클라이언트 디바이스(110)와 연관된 사용자(101)가 아닌 추가 사용자(102)에 의해 제공된다. 이 예에서, 자동화 어시스턴트는, 전화 통화 이벤트와 연관된 하나 이상의 웜 워드 모델을 사용하여 클라이언트 디바이스(110)의 마이크(들)에 의해 생성된 오디오 데이터 스트림을 처리할 때, 오디오 데이터가 검출되면 자동화 어시스턴트가 전화 통화에 응답하게 만드는 “Answer”라는 웜 워드에 해당하는지 결정할 수 있다. 또한, 음성 발언(652A)을 제공한 사용자(예를 들어, 추가 사용자(102))의 신원이 자동화 어시스턴트가 전화 통화에 응답하게 하기 위해 검증될 필요가 있다고 가정한다.
이 예에서, 자동화 어시스턴트는 음성 발언(652A)이 음성 발언을 제공한 사용자의 신원을 검증하기 위해 TI SID를 수행하기에 충분한 길이인지 여부를 결정할 수 있다. 이 예에서는 음성 발언(652A)이 TI SID를 수행하기에 충분한 길이가 아니라고 더 가정한다. 그러나 자동화 어시스턴트는 TD SID를 사용하여 음성 발언(652A)을 제공한 사용자의 신원을 검증하려고 시도할 수 있다(그리고 이전에 생성된 하나 이상의 TD 화자 임베딩이 “Answer“에 대해 존재한다고 가정하고, TI SID가 수행되는지 여부는 무시한다)). 예를 들어, 자동화 어시스턴트는 “Answer“에 대한 TD 화자 임베딩을 생성하기 위해 하나 이상의 특정 단어 및/또는 문구에 대응하는 오디오 데이터 부분을 TD SID 모델을 사용하여 처리할 수 있다. 또한, 자동 어시스턴트는 임베딩 공간에서 “Answer“에 대한 TD 화자 임베딩을 “Answer“에 대해 이전에 생성된 하나 이상의 화자 임베딩과 비교할 수 있다. 더욱이, 자동화 어시스턴트는 상기 비교에 기초하여 결정된 거리 메트릭에 기초하여, 음성 발언(652A)을 제공한 사용자가 클라이언트 디바이스(110)의 사용자(101)인지 여부를 결정할 수 있다. 이 예에서 자동화 어시스턴트는 “Answer“에 대한 TD 화자 임베딩이 “Answer“에 대해 이전에 생성된 하나 이상의 화자 임베딩과 일치하지 않는다는 것을 결정할 수 있다. 이에 따라, 자동화 어시스턴트는 음성 발언(652A)을 제공한 사용자(예를 들어, 추가 사용자(102))의 신원이 검증되지 않았으므로, 사용자(101)를 대신하여 전화에 응답하는 어시스턴트 명령이 수행되지 않도록 할 수 있다.
그러나 다양한 구현예에서 자동화 어시스턴트는 어시스턴트 명령이 수행되도록 하기 위해 사용자에게 추가 검증을 제공하도록 요청하는 제시(예를 들어, 시각적 및/또는 청각적)를 사용자(101)에게 제공할 프롬프트를 생성할 수 있다. 예를 들어, 구체적으로 도 6B를 참조하면, 자동화 어시스턴트는 “please say [example utterance] to verify your identity and answer the incoming call“이라는 프롬프트(652B)를 생성할 수 있고, 클라이언트 디바이스(110)에서 액세스 가능한 자동화 어시스턴트 애플리케이션(198A)을 통해 사용자에게 시각적 제시를 위해 프롬프트가 제공되도록 할 수 있다. 따라서 클라이언트 디바이스(110)의 사용자(101)는 사용자(101)가 실제로 자동 어시스턴트가 전화 통화에 응답하도록 의도했는지 여부를 검증하기 위해 프롬프트에 응답하여 추가 사용자 입력을 제공할 수 있다. 이 예에서, 자동화 어시스턴트는 사용자(101)가 예시 발언에 대해 TI SID를 수행하기에 충분한 길이의, 또는 클라이언트 디바이스(110)가 이전에 생성된 하나 이상의 TD 화자 임베딩에 액세스할 수 있는 또 다른 특정 용어 또는 문구에 해당하는, 예시 발언을 제공하도록 요청할 수 있다. 클라이언트 디바이스(110)의 사용자(101)가 자동화 어시스턴트가 전화 통화에 응답하게 하는 음성 발언을 제공하지 않았다고 가정하면(예를 들어, 도 6A의 예에서), 사용자(101)는 프롬프트(652B)를 무시하거나 묵살할 수 있다. 그러나 클라이언트 디바이스(110)의 사용자(101)가 자동화 어시스턴트가 전화 통화에 응답하도록 하기 위해 음성 발언을 제공했다고 가정하면(예를 들어, 도 4A의 예에서), 사용자(101)는 예시적인 발언을 제공할 수 있다.
또 다른 예로서, 구체적으로 도 6C를 참조하면, 자동화 어시스턴트는 “please provide face identification or fingerprint identification to answer the incoming call“이라는 프롬프트(652C)를 생성하고 클라이언트 디바이스(110)에서 액세스 가능한 자동화 어시스턴트 애플리케이션(198A)을 통해 사용자에게 시각적 제시를 위해 프롬프트가 제공되도록 할 수 있다. 따라서, 클라이언트 디바이스(110)의 사용자(101)는 사용자(101)가 실제로 자동화 어시스턴트가 전화 통화에 응답하도록 의도했는지 여부를 검증하기 위해 프롬프트에 응답하여 추가 사용자 입력을 제공할 수 있다. 이 예에서, 자동화 어시스턴트는 음성 발언을 제공한 사용자의 신원이 식별될 수 없는 경우에 사용자(101)에게 이러한 생체 식별 정보를 제공하도록 요청할 수 있다. 일부 경우에, 이 생체 인식 정보는 TD SID 및 TD SID가 음성 발언을 제공한 사용자를 식별하기에 불충분하다는 결정에 응답하여서만 요청될 수 있다. 클라이언트 디바이스(110)의 사용자(101)가 자동화 어시스턴트가 전화 통화에 응답하게 하는 음성 발언을 제공하지 않았다고 가정하면(예를 들어, 도 6A의 예에서), 사용자(101)는 프롬프트(652C)를 무시하거나 묵살할 수 있다. 그러나 클라이언트 디바이스(110)의 사용자(101)가 자동화 어시스턴트가 전화 통화에 응답하도록 하기 위해 음성 발언을 제공했다고 가정하면(예를 들어, 도 4A의 예에서), 사용자(101)는 생체 인식 정보를 제공할 수 있다.
도 6b 및 도 6c에 도시된 프롬프트(652B 및 652C)는 클라이언트 디바이스(110)에서 액세스 가능한 자동 어시스턴트 애플리케이션(198A)을 통해 사용자(101)에게 제시하기 위해 제공되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다. 예를 들어, 프롬프트(652B 및 652C)은 추가적으로 또는 대안적으로 클라이언트 디바이스(110)의 스피커(들)를 통해 사용자에게 제시하기 위해 청각적으로 렌더링, 클라이언트 디바이스(110)의 디스플레이(190)를 통해 사용자에게 표시하기 위한 알림(예: 팝업 알림, 배너 알림 등)으로 시각적으로 렌더링될 수 있다. 더욱이, 도 6A-6C는 특정 어시스턴트 명령이 수행되도록 하는 특정 웜 워드에 관해 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 것이 이해되어야 한다. 오히려, 도 6A-6C와 관련하여 설명된 기술이 웜 워드 활성화 이벤트를 검출하고, 웜 워드 활성화 이벤트와 관련된 웜 워드 모델을 사용하여 웜 워드를 검출하고, 음성 발언을 제공한 사용자의 신원이 인증된 사용자로 검증되면 어시스턴트 명령이 수행되도록 하기 위해 활용될 수 있다는 것이 이해되어야 한다.
이제 도 7을 참조하면, 여기에 설명된 기술의 하나 이상의 측면을 수행하기 위해 선택적으로 활용될 수 있는 예시적인 컴퓨팅 장치(710)의 블록도가 도시되어 있다. 일부 구현예에서, 하나 이상의 클라이언트 디바이스, 클라우드 기반 자동 어시스턴트 구성요소(들), 및/또는 다른 구성요소(들) 중 하나 이상은 예시적인 컴퓨팅 장치(710)의 하나 이상의 구성요소를 포함할 수 있다.
컴퓨팅 장치(710)는 일반적으로 버스 서브시스템(712)을 통해 다수의 주변 장치와 통신하는 적어도 하나의 프로세서(714)를 포함한다. 이러한 주변 장치는 예를 들어 메모리 서브시스템(725) 및 파일 저장 서브시스템(726)을 포함하는 저장 서브시스템(724), 사용자 인터페이스 출력 장치(720), 사용자 인터페이스 입력 장치(722) 및 네트워크 인터페이스 서브시스템(716)을 포함할 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(710)와의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(716)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 장치의 해당 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(722)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크 및/또는 기타 유형의 입력 장치를 포함할 수 있다. 일반적으로, “입력 장치(input device)“라는 용어의 사용은 컴퓨팅 장치(710) 또는 통신 네트워크에 정보를 입력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다. 사용자 인터페이스 출력 장치(720)는 디스플레이 서브시스템, 프린터, 팩스 장치, 또는 오디오 출력 장치와 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평면 패널 장치, 프로젝션 장치, 또는 가시 이미지를 생성하기 위한 일부 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 장치 등을 통해 비시각적 디스플레이를 제공할 수도 있다. 일반적으로, “출력 장치(output device)“라는 용어의 사용은 컴퓨팅 장치(710)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
저장 서브시스템(724)은 여기에 설명된 모듈 중 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(724)은 본 명세서에 개시된 방법의 선택된 측면을 수행할 뿐만 아니라 도 1 및 도 2에 도시된 다양한 구성요소를 구현하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(714)에 의해 단독으로 또는 다른 프로세서와 결합하여 실행된다. 저장 서브시스템(724)에 사용되는 메모리(725)는 프로그램 실행 동안 명령 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(730) 및 고정된 명령이 저장되는 읽기 전용 메모리(ROM)(732)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(726)은 프로그램 및 데이터 파일에 대한 영구 저장 장치를 제공할 수 있으며 하드 디스크 드라이브, 플로피 디스크와 마찬가지로 연관된 이동식 미디어, 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현예의 기능을 구현하는 모듈은 저장 서브시스템(724)의 파일 저장 서브시스템(726)에 의해 저장되거나 프로세서(들)(714)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(712)은 컴퓨팅 장치(710)의 다양한 구성요소 및 서브시스템이 의도한 대로 서로 통신할 수 있도록 하는 메커니즘을 제공한다. 버스 서브시스템(712)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브시스템(712)의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(710)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템이나 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터와 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 장치(710)에 대한 설명은 단지 일부 구현을 설명하기 위한 특정 예로서만 의도된 것이다. 도 7에 도시된 컴퓨팅 장치보다 더 많거나 더 적은 구성요소를 갖는 컴퓨팅 장치(710)의 많은 다른 구성이 가능하다.
여기에 설명된 시스템이 사용자에 대한 개인 정보를 수집 또는 모니터링하거나 개인 및/또는 모니터링된 정보를 사용할 수 있는 상황에서, 사용자에게는 프로그램이나 기능이 사용자 정보(예: 사용자의 소셜 네트워크, 사회적 활동이나 활동, 직업, 사용자 선호도, 사용자의 현재 지리적 위치에 대한 정보)를 수집하는지 여부를 제어하거나, 사용자에게 더 관련될 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 수신 방법을 제어할 수 있는 기회가 제공될 수 있다. 또한 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자에 대해 개인 식별 정보를 결정할 수 없도록 사용자의 신원이 처리될 수 있거나, 사용자의 특정 지리적 위치를 결정할 수 없도록 사용자의 지리적 위치가 지리적 위치 정보(예: 도시, 우편번호 또는 주 수준(state level))가 획득되는 곳으로 일반화될 수 있다. 따라서 사용자는 사용자에 관한 정보가 수집 및/또는 사용되는 방법을 제어할 수 있다.
일부 구현예에서, 하나 이상의 프로세서에 의해 구현되며 제공되는 방법은, 웜 워드 모델을 사용하여, 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위한 오디오 데이터 스트림을 처리하는 것, 상기 오디오 데이터 스트림은 사용자 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성되며, 그리고 상기 하나 이상의 특정 단어 또는 문구 각각은 어시스턴트 명령에 연관되며, 오디오 데이터의 일부가 특정 단어 또는 문구 중 하나 이상에 해당한다고 결정하는 것에 응답하여: ASR 출력을 생성하기 위하여, ASR(자동 스피치 인식) 모델을 사용하여, 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분을 처리하는 것; 및, ASR 출력 처리에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 상기 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것을 포함한다. 오디오 데이터의 프리앰블 부분은 하나 이상의 특정 단어 또는 문구에 대응하는 오디오 데이터 부분보다 선행하며, 오디오 데이터의 포스트앰블 부분은 하나 이상의 특정 단어 또는 문구에 대응하는 오디오 데이터 부분에 후속한다. 상기 방법은, 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도하지 않았다는 결정에 응답하여: 자동화 어시스턴트가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 억제하는 것; 및 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령의 수행하게 하는 것을 사용자가 의도하였다는 결정에 응답하여: 자동화 어시스턴트가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 더 포함한다.
본 명세서에 개시된 기술의 이러한 구현 및 다른 구현은 다음 특징 중 하나 이상을 선택적으로 포함할 수 있다.
일부 구현예에서, 상기 방법은 웜 워드 활성화 이벤트의 발생을 검출하는 것; 및 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여, 웜 워드 모델을 활용하는 현재 휴면 중인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 것을 더 포함할 수 있다. 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위해 웜 워드 모델을 사용하여 오디오 데이터의 스트림을 처리하는 것은, 웜 워드 모델을 활용하는 하나 이상의 현재 휴면 중인 자동 어시스턴트 기능을 활성화하는 것에 응답할 수 있다. 이러한 구현예의 일부 버전에서는 웜 워드 활성화 이벤트에 다음 중 하나 이상이 포함될 수 있다: 전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션.
일부 구현예에서는, NLU 출력을 생성하기 위하여, 자연어 이해(NLU) 모델을 사용하여, 상기 ASR 출력을 처리하는 것을 포함하는 상기 ASR 출력 처리에 기초하여 상기 하나 이상의 특정 단어 또는 문구에 연관된 어시스턴트 명령이 수행되도록 하는 상기 하나 이상의 특정 단어 또는 문구를 사용자가 의도하였는지 여부를 결정하는 것; 및, NLU 출력에 기초하여 상기 어시스턴트 명령이 수행되도록 하는 상기 하나 이상의 특정 단어 또는 문구를 사용자가 의도하였는지 여부를 결정하는 것. ASR 출력은 오디오 데이터의 프리앰블 부분을 기반으로 생성될 수 있지만 오디오 데이터의 포스트앰블 부분은 기반으로 생성되지 않을 수 있다. 이러한 구현예의 일부 버전에서, 상기 방법은 상기 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하기에는 NLU 출력이 불충분하다는 것을 결정하는 것에 응답하여: 추가적인 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 오디오 데이터의 포스트앰블 부분을 처리하는 것; 및 추가적인 ASR 출력의 처리에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하도록 하는 것을 사용자가 의도했는지 여부를 결정하는 것을 더 포함할 수 있다.
일부 구현예에서, ASR 출력의 처리에 기초하여 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것은 다음을 포함할 수 있다: NLU 출력을 생성하기 위해, NLU(자연어 이해) 모델을 사용하여 ASR 출력을 처리하는 것; 및 NLU 출력에 기초하여 하나 이상의 특정 단어 또는 문구가 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것. ASR 출력은 오디오 데이터의 프리앰블 부분과 오디오 데이터의 포스트앰블 부분 모두에 기초하여 생성될 수 있다. 이러한 구현예의 일부 버전에서 방법은, 하나 이상의 특정 단어 또는 문구가 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하기에는 NLU 출력이 불충분하다는 것을 결정하는 것에 응답하여: 추가적인 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 오디오 데이터의 추가 포스트앰블 부분을 처리하는 것; 및, 추가적인 ASR 출력의 처리에 기초하여, 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것을 더 포함할 수 있다. 오디오 데이터의 추가 포스트앰블 부분은 오디오 데이터의 포스트앰블 부분에 후속할 수 있다.
일부 구현예에서, 방법은, 엔드포인트 모델을 사용하여, 오디오 데이터 스트림에서 캡처되고, 하나 이상의 특정 단어 또는 문구를 포함하는 음성 발언에 대한 복수의 타임스탬프를 생성하기 위하여 오디오 데이터 스트림을 처리하는 것을 더 포함할 수 있다. 이러한 구현예의 일부 버전에서, 복수의 타임스탬프는 적어도 사용자가 음성 발언을 제공하기 시작한 제1 시간과 연관된 제1 타임스탬프, 사용자가 음성 발언에 포함된 하나 이상의 특정 단어 또는 문구를 제공하기 시작한 제2 시간, 즉 제1 시간 이후의 제2 시간과 연관된 제2 타임스탬프, 사용자가 음성 발언에 포함된 하나 이상의 특정 단어 또는 문구의 제공을 완료한 때, 즉 제2 시간 이후의 제3 시간과 연관된 제3 타임스탬프, 및 사용자가 음성 발언 제공을 완료한 때, 즉 제3 시간 이후의 제4 시간과 연관된 제4 타임스탬프를 포함할 수 있다. 이러한 구현예의 일부 추가 버전에서, 오디오 데이터의 프리앰블 부분은 제1 타임스탬프와 제2 타임스탬프 사이의 음성 발언에 대응하는 임의의 오디오 데이터를 포함할 수 있다. 이러한 구현예의 추가적인 또는 대안적인 버전에서, 오디오 데이터의 포스트앰블 부분은 제3 타임스탬프와 제4 타임스탬프 사이의 음성 발언에 대응하는 임의의 오디오 데이터를 포함할 수 있다.
일부 구현 예에서, 방법은 음성 발언이 특정 단어 또는 문구 중 하나 이상을 포함한다는 결정에 응답하여 ASR 모델을 활용하는 현재 휴면 중인 하나 이상의 자동 어시스턴트 기능을 활성화하는 것을 더 포함할 수 있다.
일부 구현예에서, 방법은, ASR 출력을 생성하기 위하여, ASR 모델을 사용하여 오디오 데이터의 프리앰블 부분 및/또는 오디오 데이터의 포스트앰블 부분과 함께 하나 이상의 특정 단어 또는 문구에 대응하는 오디오 데이터 부분을 처리하는 것을 포함한다.
일부 구현예에서, 방법은, 목소리 활동 검출(VAD) 모델을 사용하여, 오디오 데이터의 부분이 하나 이상의 특정 단어 또는 문구에 대응하기 전에 및/또는 오디오 데이터의 부분이 하나 이상의 특정 단어 또는 문구에 대응한 후에 추가 목소리 활동 발생을 모니터링하기 위해 오디오 데이터 스트림을 처리하는 것; 및, 추가 목소리 활동의 발생을 검출한 것에 응답하여: ASR 모델을 활용하는 현재 휴면 상태인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 것을 더 포함할 수 있다. 이러한 구현예의 일부 버전에서, 방법은 추가 목소리 활동이 발생하지 않음을 검출한 것에 응답하여: 자동화 어시스턴트가 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 것을 더 포함할 수 있다.
일부 구현예에서, 방법은 음성 발언의 하나 이상의 운율 속성을 결정하기 위해 음향 모델을 사용하여 오디오 데이터를 처리하는 단계를 더 포함할 수 있다. 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것은 음성 발언의 하나 이상의 운율 속성에 추가로 기초할 수 있다.
일부 구현예에서, 방법은 클라이언트 디바이스의 하나 이상의 센서로부터 센서 데이터의 인스턴스를 수신하는 것을 더 포함할 수 있다. 하나 이상의 특정 단어 또는 문구가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 것은 센서 데이터의 인스턴스에 더 기초할 수 있다. 이러한 구현예의 일부 버전에서 센서 데이터의 인스턴스에는 다음 중 하나 이상이 포함될 수 있다: 클라이언트 디바이스의 가속도계에 의해 생성된 가속도계 데이터, 클라이언트 디바이스의 하나 이상의 카메라 구성요소에 의해 생성된 이미지 데이터, 클라이언트 디바이스의 하나 이상의 모션 센서에 의해 생성된 모션 데이터.
일부 구현예에서, 방법은, 클라이언트 디바이스의 오디오 버퍼로부터 오디오 데이터의 프리앰블 부분을 획득하는 것; 및/또는 오디오 데이터 스트림으로부터 오디오 데이터의 포스트앰블 부분을 획득하는 것을 더 포함할 수 있다.
일부 구현예에서, 하나 이상의 프로세서에 의해 구현되며, 제공되는 방법은, 웜 워드 모델을 사용하여, 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위한 오디오 데이터 스트림을 처리하는 것, 상기 오디오 데이터 스트림은 사용자 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성되며, 그리고 상기 하나 이상의 특정 단어 또는 문구 각각은 어시스턴트 명령과 연관되며; 오디오 데이터의 일부가 특정 단어 또는 문구 중 하나 이상에 대응한다는 결정에 응답하여, 그리고 오디오 데이터에 해당하는 음성 발언을 제공한 사용자의 신원을 검증하는 결정에 응답하여: 오디오 데이터가 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하기 위하여, 화자 식별(SID) 모델을 사용하여 오디오 데이터를 처리하는 것; 오디오 데이터가 음성 발언을 제공한 사용자를 식별하는 데 충분하다는 결정에 응답하여, 그리고 음성 발언을 제공한 식별된 사용자가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하도록 인증되었다는 결정에 응답하여: 자동화 어시스턴트가 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것; 및, 오디오 데이터가 음성 발언을 제공한 사용자를 식별하기에 불충분하다는 결정에 응답하여: 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 프롬프트(prompt)를 생성하는 것; 및 클라이언트 디바이스에 제시(presentation)를 위한 프롬프트가 제공되도록 하는 것을 포함한다.
본 명세서에 개시된 기술의 이러한 구현 및 다른 구현은 다음 특징 중 하나 이상을 선택적으로 포함할 수 있다.
일부 구현예에서, 상기 방법은 웜 워드 활성화 이벤트의 발생을 검출하는 것; 및 상기 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여, 상기 웜 워드 모델을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 활성화하는 것을 포함한다. 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위해 웜 워드 모델을 사용하여 오디오 데이터의 스트림을 처리하는 것은 웜 워드 모델을 활용하는 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 활성화하는 것에 응답할 수 있다. 이러한 구현예의 일부 버전에서는 웜 워드 활성화 이벤트에 다음 중 하나 이상이 포함될 수 있다: 전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션.
일부 구현예에서, 방법은, 오디오 데이터의 일부가 특정 단어 또는 문구 중 하나 이상에 대응한다는 결정에 응답하여, 그리고 오디오 데이터에 해당하는 음성 발언을 제공한 사용자의 신원을 검증하지 않기로 결정한 것에 응답하여: 자동화 어시스턴트로 하여금 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 것을 더 포함할 수 있다.
일부 구현예에서, 오디오 데이터가 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하기 위해 오디오 데이터를 처리하는 것은 다음을 포함한다: TD 화자 임베딩을 생성하기 위하여 SID 모델로서 텍스트 종속(TD) SID 모델을 사용하여 특정 단어 또는 문구 중 하나 이상에 대응하는 오디오 데이터 부분을 처리하는 것. 오디오 데이터가 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 것은 임베딩 공간에서 클라이언트 디바이스에 로컬로 저장된 하나 이상의 저장된 TD 화자 임베딩과 TD 화자 임베딩을 비교하는 것; 및, TD 화자 임베딩을 하나 이상의 저장된 TD 화자 임베딩과 비교하는 것에 기초하여, 오디오 데이터의 부분이 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하는 것을 포함할 수 있다.
이러한 구현예의 일부 버전에서, TD 화자 임베딩을 생성하기 위해, TD SID 모델 사용하여, 특정 단어 또는 문구 중 하나 이상에 해당하는 오디오 데이터 부분을 처리하는 것은, 저장된 TD 화자 임베딩 중 하나 이상이 특정 단어 또는 문구에 대응하는지 여부를 결정하는 것을 포함할 수 있다. TD 화자 임베딩을 생성하기 위해 TD SID 모델 사용하여 하나 이상의 특정 단어 또는 문구에 해당하는 오디오 데이터 부분을 처리하는 것은, 저장된 TD 화자 임베딩 중 하나 이상이 특정 단어 또는 문구에 해당한다고 결정한 것에 대한 응답이다.
해당 구현예의 추가 또는 대체 버전에서, 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 프롬프트 생성하는 것은, 사용자에게 추가 음성 발언을 제공하도록 요청하는 프롬프트를 생성하는 것을 포함할 수 있으며, 상기 추가 음성 발언은 음성 발언을 제공한 사용자의 신원을 검증하는 데 활용하기 위해 TI SID를 수행하기에 충분한 길이이다.
이러한 구현예의 추가적인 또는 대체 버전에서, 방법은, 음성 발언이 TI SID를 수행하기에 충분한 길이라는 결정에 응답하여: TI 화자 임베딩을 생성하기 위해 TI SID 모델을 SID 모델로 사용하여 오디오 데이터 스트림을 처리하는 것을 더 포함할 수 있다. 오디오 데이터가 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 것은, 임베딩 공간에서 TI 화자 임베딩을 클라이언트 디바이스에 로컬로 저장된 하나 이상의 저장된 TI 화자 임베딩과 비교하는 것; 및 TI 화자 임베딩을 하나 이상의 저장된 TI 화자 임베딩과 비교하는 것에 기초하여, 오디오 데이터의 스트림이 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하는 것을 포함할 수 있다. 이러한 구현예의 일부 추가 버전에서, 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 프롬프트를 생성하는 것은 사용자의 신원을 검증하기 위해 추가 생체 인식 정보를 요청하는 프롬프트를 생성하는 것을 포함할 수 있다. 사용자의 신원을 검증하기 위해 추가 생체 인식을 요청하는 것은 다음 중 하나 이상을 요청하는 것을 포함할 수 있다: 지문 검증, 얼굴 지문 검증.
일부 구현예에서, 방법은, 클라이언트 디바이스에서 제시를 위해 제공되는 프롬프트에 응답하여 추가적인 사용자 입력을 수신하는 것; 추가적인 사용자 입력 수신에 대한 응답으로: 추가적인 사용자 입력이 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 것을 더 포함한다. 이러한 구현예의 일부 버전에서 방법은, 추가적인 사용자 입력이 음성 발언을 제공한 사용자를 식별하는 데 충분한지를 결정하는 것에 대한 응답으로: 자동화 어시스턴트가 대응하는 어시스턴트 명령을 수행하도록 하는 것을 더 포함한다.
게다가, 일부 구현은 하나 이상의 프로세서(예를 들어, 중앙 처리 장치(들)(CPU(들)), 그래픽 처리 장치(들)(GPU(들)), 및/또는 텐서 처리 장치(들)(TPU( s)) 하나 이상의 컴퓨팅 장치, 여기서 하나 이상의 프로세서는 관련 메모리에 저장된 명령을 실행하도록 작동 가능하며 명령은 전술한 방법 중 임의의 것을 수행하도록 구성된다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령을 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 명령을 포함하는 컴퓨터 프로그램 제품을 포함한다.

Claims (32)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    웜 워드 모델을 사용하여, 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위한 오디오 데이터 스트림을 처리하는 단계, 상기 오디오 데이터 스트림은 사용자의 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성되며, 그리고 상기 하나 이상의 특정 단어 또는 문구 각각은 어시스턴트 명령과 연관되며;
    상기 오디오 데이터의 일부가 상기 특정 단어 또는 문구 중 하나 이상에 대응한다는 결정에 응답하여:
    자동 스피치 인식(ASR) 모델을 사용하여, ASR 출력을 생성하기 위해, 상기 오디오 데이터의 프리앰블(preamble) 부분 및/또는 상기 오디오 데이터의 포스트앰블(postamble) 부분을 처리하는 단계,
    상기 오디오 데이터의 프리앰블 부분은 상기 하나 이상의 특정 단어 또는 문구에 대응하는 상기 오디오 데이터 부분에 선행하고, 그리고
    상기 오디오 데이터의 포스트앰블 부분은 상기 하나 이상의 특정 단어 또는 문구에 대응하는 상기 오디오 데이터의 부분에 후속하며; 및
    상기 ASR 출력 처리에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 상기 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계;
    상기 하나 이상의 특정 문구 또는 단어가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도하지 않았다는 결정에 응답하여:
    자동화 어시스턴트가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 억제하는 단계; 및
    상기 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했다는 결정에 응답하여:
    상기 자동화 어시스턴트가 하나 이상의 상기 특정 단어 또는 문구와 연관된 상기 어시스턴트 명령을 수행하게 하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    웜 워드 활성화 이벤트 발생을 검출하는 단계; 및
    상기 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여, 상기 웜 워드 모델을 활용하는 현재 휴면 중인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 단계를 더 포함하며,
    상기 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위해 상기 웜 워드 모델을 사용하여 상기 오디오 데이터의 스트림을 처리하는 단계는, 상기 웜 워드 모델을 활용하는 상기 현재 휴면 중인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 단계에 대한 응답인 방법.
  3. 제2항에 있어서, 웜 워드 활성화 이벤트는,
    전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션 중 하나 이상을 포함하는 방법.
  4. 선행하는 항들 중 어느 한 항에 있어서,
    상기 ASR 출력 처리에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 상기 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계는:
    자연어 이해(NLU, natural language understanding) 모델을 사용하여, NLU 출력을 생성하기 위해 상기 ASR 출력을 처리하는 단계, 상기 ASR 출력은 상기 오디오 데이터의 프리앰블 부분에 기초하여 생성되지만, 상기 오디오 데이터의 포스트앰블 부분에는 기초하지 않으며;
    상기 NLU 출력에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 특정 단어 또는 문구가 상기 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하기에 상기 NLU 출력이 불충분하다는 결정에 응답하여:
    추가 ASR 출력을 생성하기 위해, 상기 ASR 모델을 사용하여, 상기 오디오 데이터의 포스트앰블 부분을 처리하는 단계; 및
    상기 추가적인 ASR 출력의 처리에 기초하여, 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계를 더 포함하는 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 ASR 출력의 처리에 기초하여 상기 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 상기 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계는,
    자연어 이해(NLU, natural language understanding) 모델을 사용하여, NLU 출력을 생성하기 위해, 상기 ASR 출력을 처리하는 단계 - 상기 ASR 출력은 오디오 데이터의 프리앰블 부분과 오디오 데이터의 포스트앰블 부분 모두에 기초하여 생성됨; 및
    상기 NLU 출력에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 상기 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 하나 이상의 특정 단어 또는 문구가 상기 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하는 것을 사용자가 의도했는지 여부를 결정하기에 상기 NLU 출력이 불충분하다는 결정에 응답하여:
    추가적인 ASR 출력을 생성하기 위해, 상기 ASR 모델을 사용하여, 상기 오디오 데이터의 추가 포스트앰블 부분을 처리하는 단계 - 상기 오디오 데이터의 추가 포스트앰블 부분은 상기 오디오 데이터의 포스트앰블 부분에 후속함; 및,
    상기 추가적인 ASR 출력의 처리에 기초하여, 상기 하나 이상의 특정 단어 또는 문구가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하게 하는 것을 사용자가 의도했는지 여부를 결정하는 단계를 더 포함하는 방법.
  8. 선행하는 항들 중 어느 한 항에 있어서,
    엔드포인트 모델을 사용하여, 상기 오디오 데이터 스트림에서 캡처되고 상기 하나 이상의 특정 단어 또는 문구를 포함하는 음성 발언에 대한 복수의 타임스탬프를 생성하기 위해 상기 오디오 데이터 스트림을 처리하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 복수의 타임스탬프는,
    적어도 사용자가 상기 음성 발언을 제공하기 시작한 제1 시간과 연관된 제1 타임스탬프, 사용자가 상기 음성 발언에 포함된 상기 하나 이상의 특정 단어 또는 문구를 제공하기 시작한 제2 시간, 즉 상기 제1 시간 이후의 제2 시간과 연관된 제2 타임스탬프, 사용자가 상기 음성 발언에 포함된 상기 하나 이상의 특정 단어 또는 문구의 제공을 완료한 때, 즉 상기 제2 시간 이후의 제3 시간과 연관된 제3 타임스탬프, 및 사용자가 상기 음성 발언의 제공을 완료한 때, 즉 상기 제3 시간 이후의 제4 시간과 연관된 제4 타임스탬프를 포함하는 방법.
  10. 제9항에 있어서, 상기 오디오 데이터의 프리앰블 부분은 상기 제1 타임스탬프와 상기 제2 타임스탬프 사이의 상기 음성 발언에 대응하는 임의의 오디오 데이터를 포함하는 방법.
  11. 제9항 또는 제10항에 있어서, 상기 오디오 데이터의 포스트앰블 부분은 상기 제3 타임스탬프와 상기 제4 타임스탬프 사이의 상기 음성 발언에 대응하는 임의의 오디오 데이터를 포함하는 방법.
  12. 선행하는 항들 중 어느 한 항에 있어서,
    상기 음성 발언에 특정 단어 또는 문구 중 하나 이상이 포함되어 있다는 결정에 응답하여 상기 ASR 모델을 활용하는 현재 휴면 중인 하나 이상의 자동 어시스턴트 기능을 활성화하는 단계를 더 포함하는 방법.
  13. 선행하는 항들 중 어느 한 항에 있어서,
    상기 ASR 출력을 생성하기 위해, 상기 ASR 모델을 사용하여, 상기 오디오 데이터의 프리앰블 부분 및/또는 상기 오디오 데이터의 포스트앰블 부분과 함께, 상기 하나 이상의 특정 단어 또는 문구에 대응하는 상기 오디오 데이터 부분을 처리하는 단계를 더 포함하는 방법.
  14. 선행하는 항들 중 어느 한 항에 있어서,
    오디오 데이터의 일부가 하나 이상의 특정 단어 또는 문구에 해당하기 전에, 및/또는 오디오 데이터의 일부가 특정 단어 또는 문구 중 하나 이상에 대응한 후에, 추가 목소리 활동 발생을 모니터링하기 위해 VAD(목소리 활동 검출) 모델을 사용하여 오디오 데이터 스트림 처리하는 단계; 및,
    추가 목소리 활동의 발생을 검출한 것에 응답하여:
    ASR 모델을 활용하는 현재 휴면 중인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    추가 목소리 활동이 발생하지 않은 것에 응답하여:
    자동화 어시스턴트가 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하도록 하는 단계를 더 포함하는 방법.
  16. 선행하는 항들 중 어느 한 항에 있어서,
    음성 발언의 하나 이상의 운율적 특성을 결정하기 위해, 음향 모델을 사용하여 오디오 데이터를 처리하는 단계를 더 포함하며,
    상기 하나 이상의 특정 단어 또는 문구와 관련된 어시스턴트 명령을 수행을 야기하기 위해 사용자가 하나 이상의 특정 단어 또는 문구를 의도했는지 여부를 결정하는 단계는, 상기 음성 발언의 상기 하나 이상의 운율적 특성에 더 기초하는 방법.
  17. 선행하는 항들 중 어느 한 항에 있어서,
    클라이언트 디바이스의 하나 이상의 센서로부터 센서 데이터의 인스턴스를 수신하는 단계를 더 포함하고,
    상기 하나 이상의 특정 단어 또는 문구와 관련된 어시스턴트 명령을 수행을 야기하기 위해 사용자가 하나 이상의 특정 단어 또는 문구를 의도했는지 여부를 결정하는 단계는, 상기 센서 데이터의 상기 인스턴스에 더 기초하는 방법.
  18. 제17항에 있어서, 상기 센서 데이터의 인스턴스는,
    상기 클라이언트 디바이스의 가속도계에 의해 생성된 가속도계 데이터, 상기 클라이언트 디바이스의 하나 이상의 카메라 구성 요소에 의해 생성된 이미지 데이터, 상기 클라이언트 디바이스의 하나 이상의 모션 센서에 의해 생성된 모션 데이터 중 하나 이상을 포함하는 방법.
  19. 선행하는 항들 중 어느 한 항에 있어서,
    상기 클라이언트 디바이스의 오디오 버퍼로부터 상기 오디오 데이터의 프리앰블 부분을 획득하는 단계; 및/또는
    상기 오디오 데이터 스트림으로부터 상기 오디오 데이터의 포스트앰블 부분을 획득하는 단계를 더 포함하는 방법.
  20. 하나 이상의 프로세서에 의해 구현되는 방법에 있어서,
    웜 워드 모델을 사용하여, 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위한 오디오 데이터 스트림을 처리하는 단계, 상기 오디오 데이터 스트림은 사용자 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성되며, 그리고 상기 하나 이상의 특정 단어 또는 문구 각각은 어시스턴트 명령과 연관되며;
    상기 오디오 데이터의 일부가 특정 단어 또는 문구 중 하나 이상에 대응한다는 결정에 응답하여, 그리고 상기 오디오 데이터에 대응하는 음성 발언을 제공한 사용자의 신원을 검증하기로 결정한 것에 응답하여:
    상기 오디오 데이터가 상기 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하기 위해, 화자 식별(SID) 모델을 사용하여, 상기 오디오 데이터를 처리하는 단계;
    상기 오디오 데이터가 상기 음성 발언을 제공한 사용자를 식별하기에 충분하다는 결정에 응답하여, 그리고 상기 음성 발언을 제공한 식별된 사용자가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 어시스턴트 명령을 수행하도록 인증되었다는 결정에 응답하여:
    자동화 어시스턴트가 상기 특정 단어 또는 문구 중 하나 이상과 연관된 상기 어시스턴트 명령을 수행하게 하는 단계; 및,
    상기 오디오 데이터가 상기 음성 발언을 제공한 사용자를 식별하기에 불충분하다는 결정에 응답하여:
    상기 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 프롬프트를 생성하는 단계; 및,
    상기 클라이언트 디바이스에 제시를 위한 프롬프트가 제공되도록 하는 단계를 포함하는 방법.
  21. 제20항에 있어서,
    웜 워드 활성화 이벤트의 발생을 검출하는 단계; 및
    상기 웜 워드 활성화 이벤트의 발생을 검출한 것에 응답하여, 상기 웜 워드 모델을 활용하는 현재 휴면 중인 하나 이상의 자동화 어시스턴트 기능을 활성화하는 단계를 더 포함하고,
    상기 하나 이상의 특정 단어 또는 문구의 발생을 모니터링하기 위해 상기 웜 워드 모델을 사용하여 상기 오디오 데이터의 스트림을 처리하는 단계는 상기 웜 워드 모델을 활용하는 상기 하나 이상의 현재 휴면 중인 자동화 어시스턴트 기능을 활성화하기 위한 응답인 방법.
  22. 제21항에 있어서, 상기 웜 워드 활성화 이벤트는,
    전화 통화가 클라이언트 디바이스에서 수신되는 것, 문자 메시지가 클라이언트 디바이스에서 수신되는 것, 이메일이 클라이언트 디바이스에서 수신되는 것, 알람 또는 타이머가 클라이언트 디바이스에서 울리는 것, 미디어가 클라이언트 디바이스 또는 클라이언트 디바이스 환경의 추가 클라이언트 디바이스에서 재생되는 것, 알림이 클라이언트 디바이스에서 수신되는 것, 클라이언트 디바이스의 위치, 클라이언트 디바이스에서 액세스할 수 있는 소프트웨어 애플리케이션 중 하나 이상을 포함하는 방법.
  23. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 오디오 데이터의 일부가 상기 특정 단어 또는 문구 중 하나 이상에 대응한다는 결정에 응답하여, 그리고 상기 오디오 데이터에 대응하는 상기 음성 발언을 제공한 사용자의 신원을 검증하지 않기로 결정한 것에 응답하여:
    상기 자동화 어시스턴트가 상기 하나 이상의 특정 단어 또는 문구와 연관된 어시스턴트 명령을 수행하게 하는 단계를 더 포함하는 방법.
  24. 제20항 내지 제23항 중 어느 한 항에 있어서,
    오디오 데이터가 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하기 위해 오디오 데이터를 처리하는 단계는,
    TD 화자 임베딩을 생성하기 위해, SID 모델로서 텍스트 종속(TD) SID 모델을 사용하여, 상기 특정 단어 또는 문구 중 하나 이상에 대응하는 상기 오디오 데이터 부분을 처리하는 단계를 포함하고,
    상기 오디오 데이터가 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 단계는,
    임베딩 공간에서, 상기 TD 화자 임베딩을 상기 클라이언트 디바이스에 로컬로 저장된 하나 이상의 저장된 TD 화자 임베딩과 비교하는 단계; 및,
    상기 TD 화자 임베딩을 상기 하나 이상의 저장된 TD 화자 임베딩과 비교하는 것에 기초하여, 상기 오디오 데이터의 부분이 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하는 단계를 포함하는 방법.
  25. 제24항에 있어서,
    상기 TD SID 모델을 사용하여 상기 TD 화자 임베딩을 생성하기 위해 상기 특정 단어 또는 문구 중 하나 이상에 대응하는 상기 오디오 데이터의 부분을 처리하는 단계는,
    상기 저장된 TD 화자 임베딩 중 하나 이상이 상기 특정 단어 또는 문구에 대응하는지 여부를 결정하는 단계를 포함하고,
    상기 TD SID 모델을 사용하여 상기 TD 화자 임베딩을 생성하기 위해 상기 특정 단어 또는 문구 중 하나 이상에 대응하는 상기 오디오 데이터의 부분을 처리하는 단계는,
    상기 저장된 TD 화자 임베딩 중 하나 이상이 상기 특정 단어 또는 문구에 대응한다는 결정에 대한 응답인 방법.
  26. 제24항에 있어서,
    상기 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 상기 프롬프트를 생성하는 단계는,
    사용자에게 추가 음성 발언을 요청하는 상기 프롬프트를 생성하는 단계 - 상기 추가 음성 발언은 상기 음성 발언을 제공한 사용자의 신원을 검증하는 데 활용하기 위한 TI SID를 수행하기에 충분한 길이임 - 를 포함하는 방법.
  27. 제24항에 있어서,
    상기 음성 발언이 TI SID를 수행하기에 충분한 길이라는 결정에 응답하여:
    TI 화자 임베딩을 생성하기 위해, TI SID 모델을 SID 모델로 사용하여, 상기 오디오 데이터 스트림을 처리하는 단계를 더 포함하고,
    상기 오디오 데이터가 상기 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 단계는,
    임베딩 공간에서, 상기 TI 화자 임베딩을 상기 클라이언트 디바이스에 로컬로 저장된 하나 이상의 저장된 TI 화자 임베딩과 비교하는 단계; 및,
    상기 TI 화자 임베딩을 상기 하나 이상의 저장된 TI 화자 임베딩과 비교하는 것에 기초하여, 상기 오디오 데이터의 스트림이 상기 음성 발언을 제공한 사용자의 신원을 검증하기에 충분한지 여부를 결정하는 단계를 포함하는 방법.
  28. 제27항에 있어서,
    상기 음성 발언을 제공한 사용자의 신원에 대한 추가 검증을 요청하는 상기 프롬프트를 생성하는 단계는,
    사용자의 신원을 검증하기 위해 추가 생체 인식 정보를 요청하기 위한 상기 프롬프트를 생성하는 단계를 포함하며,
    상기 사용자의 신원을 검증하기 위해 추가 생체 인식 정보를 요청하는 단계는 지문 검증 또는 얼굴 지문 검증 중 하나 이상을 요청하는 단계를 포함하는 방법.
  29. 제20항 내지 제28항 중 어느 한 항에 있어서,
    상기 클라이언트 디바이스에서 제시를 위해 제공되는 프롬프트에 응답하여 추가 사용자 입력을 수신하는 단계; 및
    상기 추가 사용자 입력의 수신에 대한 응답으로:
    상기 추가 사용자 입력이 상기 음성 발언을 제공한 사용자를 식별하기에 충분한지 여부를 결정하는 단계를 더 포함하는 방법.
  30. 제29항에 있어서,
    상기 추가 사용자 입력이 상기 음성 발언을 제공한 사용자를 식별하는 데 충분하다는 결정에 대한 응답으로,
    상기 자동화 어시스턴트가 대응하는 어시스턴트 명령을 수행하도록 하는 단계를 더 포함하는 방법.
  31. 적어도 하나의 프로세서; 및
    실행될 때, 상기 적어도 하나의 프로세서가 제1항 내지 제30항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령을 저장하는 메모리를 포함하는 시스템.
  32. 실행될 때 적어도 하나의 프로세서가 제1항 내지 제30항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237031864A 2021-05-17 2021-12-14 어시스턴트 명령(들)의 컨텍스트적 억제 KR20230147157A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/321,994 2021-05-17
US17/321,994 US11557293B2 (en) 2021-05-17 2021-05-17 Contextual suppression of assistant command(s)
PCT/US2021/063359 WO2022245397A1 (en) 2021-05-17 2021-12-14 Contextual suppression of assistant command(s)

Publications (1)

Publication Number Publication Date
KR20230147157A true KR20230147157A (ko) 2023-10-20

Family

ID=80218631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031864A KR20230147157A (ko) 2021-05-17 2021-12-14 어시스턴트 명령(들)의 컨텍스트적 억제

Country Status (6)

Country Link
US (2) US11557293B2 (ko)
EP (1) EP4143821A1 (ko)
JP (1) JP2024510698A (ko)
KR (1) KR20230147157A (ko)
CN (1) CN116783650A (ko)
WO (1) WO2022245397A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816246B2 (en) * 2021-07-26 2023-11-14 Microsoft Technology Licensing, Llc Modeling techniques to classify data sets containing personal identifiable information comprising numerical identifiers

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116994A1 (en) * 2015-10-26 2017-04-27 Le Holdings(Beijing)Co., Ltd. Voice-awaking method, electronic device and storage medium
US10365887B1 (en) * 2016-03-25 2019-07-30 Amazon Technologies, Inc. Generating commands based on location and wakeword
US10276161B2 (en) * 2016-12-27 2019-04-30 Google Llc Contextual hotwords
US10102855B1 (en) * 2017-03-30 2018-10-16 Amazon Technologies, Inc. Embedded instructions for voice user interface
US10475449B2 (en) * 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10777195B2 (en) 2018-05-31 2020-09-15 International Business Machines Corporation Wake command nullification for digital assistance and voice recognition technologies
EP3753017B1 (en) * 2018-06-05 2023-08-02 Samsung Electronics Co., Ltd. A voice assistant device and method thereof
US11257487B2 (en) 2018-08-21 2022-02-22 Google Llc Dynamic and/or context-specific hot words to invoke automated assistant
US11423890B2 (en) 2018-08-21 2022-08-23 Google Llc Dynamic and/or context-specific hot words to invoke automated assistant
US11355098B1 (en) * 2018-12-13 2022-06-07 Amazon Technologies, Inc. Centralized feedback service for performance of virtual assistant
US10740371B1 (en) * 2018-12-14 2020-08-11 Clinc, Inc. Systems and methods for intelligently configuring and deploying a machine learning-based dialogue system
CN114041283B (zh) 2019-02-20 2024-06-07 谷歌有限责任公司 利用事件前和事件后输入流来接洽自动化助理
US11195518B2 (en) 2019-03-27 2021-12-07 Sonova Ag Hearing device user communicating with a wireless communication device
US10796104B1 (en) * 2019-07-03 2020-10-06 Clinc, Inc. Systems and methods for constructing an artificially diverse corpus of training data samples for training a contextually-biased model for a machine learning-based dialogue system
EP4004909B1 (en) 2019-07-31 2024-03-06 Sonos Inc. Locally distributed keyword detection
US11183175B2 (en) * 2020-02-20 2021-11-23 Clinc, Inc. Systems and methods implementing data query language and utterance corpus implements for handling slot-filling and dialogue intent classification data in a machine learning task-oriented dialogue system

Also Published As

Publication number Publication date
CN116783650A (zh) 2023-09-19
US20220366903A1 (en) 2022-11-17
WO2022245397A1 (en) 2022-11-24
US20230143177A1 (en) 2023-05-11
JP2024510698A (ja) 2024-03-11
US11557293B2 (en) 2023-01-17
EP4143821A1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
CN114041283B (zh) 利用事件前和事件后输入流来接洽自动化助理
US11810557B2 (en) Dynamic and/or context-specific hot words to invoke automated assistant
JP2022539675A (ja) 自動アシスタントによって応答アクションをトリガするためのホットコマンドの検出および/または登録
JP7418563B2 (ja) オンデバイスの機械学習モデルの訓練のための自動化アシスタントの機能の訂正の使用
US20230074406A1 (en) Using large language model(s) in generating automated assistant response(s
WO2023038654A1 (en) Using large language model(s) in generating automated assistant response(s)
US20230037085A1 (en) Preventing non-transient storage of assistant interaction data and/or wiping of stored assistant interaction data
CN111902865A (zh) 文本无关的说话者识别
KR20230062612A (ko) 자동화된 어시스턴트를 위한 자연스러운 대화 활성화
US20230143177A1 (en) Contextual suppression of assistant command(s)
US20230061929A1 (en) Dynamically configuring a warm word button with assistant commands
US12020703B2 (en) Enabling natural conversations with soft endpointing for an automated assistant
US20240078374A1 (en) System(s) and method(s) for causing contextually relevant emoji(s) to be visually rendered for presentation to user(s) in smart dictation
US11756533B2 (en) Hot-word free pre-emption of automated assistant response presentation
US20230053341A1 (en) Enabling natural conversations with soft endpointing for an automated assistant
KR20230158615A (ko) 자동화된 어시스턴트를 위한 소프트 엔드포인팅을 사용한 자연스러운 대화 활성화
KR20230153450A (ko) 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재
JP2024508209A (ja) アシスタントコマンドの実現についてのある特定の論拠づけの提供
CN117121100A (zh) 为自动化助理启用具有软端点的自然对话