KR20230117239A - 자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기위한 방법 및 시스템 - Google Patents

자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기위한 방법 및 시스템 Download PDF

Info

Publication number
KR20230117239A
KR20230117239A KR1020237024082A KR20237024082A KR20230117239A KR 20230117239 A KR20230117239 A KR 20230117239A KR 1020237024082 A KR1020237024082 A KR 1020237024082A KR 20237024082 A KR20237024082 A KR 20237024082A KR 20230117239 A KR20230117239 A KR 20230117239A
Authority
KR
South Korea
Prior art keywords
assistant
user
content
latency
client device
Prior art date
Application number
KR1020237024082A
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 KR20230117239A publication Critical patent/KR20230117239A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/027Concept to speech synthesisers; Generation of natural phrases from machine-based concepts
    • 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/083Recognition networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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
    • 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/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

여기에 설명된 구현은 자동화된 어시스턴트 상호 작용에서 레이턴시를 줄이는 것과 연관된다. 일부 구현에서 클라이언트 장치는 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신할 수 있다. 오디오 데이터는 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하기 위해 프로세싱될 수 있다. 어시스턴트 명령을 이행하기 위한 예측된 레이턴시를 생성하기 위해 레이턴시 예측 모델을 사용하여 어시스턴트 명령을 프로세싱할 수 있다. 또한, 클라이언트 장치(또는 자동화된 어시스턴트)는 예측된 레이턴시에 기초하여 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정할 수 있다. 미리 캐싱된 콘텐츠는 어시스턴트 명령에 테일러드될 수 있고 콘텐츠가 획득되는 동안 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있고, 콘텐츠는 미리 캐싱된 콘텐츠 이후에 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다.

Description

자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기 위한 방법 및 시스템
본 명세서는 자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기 위한 방법 및 시스템에 관한 것이다.
인간은 여기에서 "자동화된 어시스턴트"("챗봇", "대화형 개인 어시스턴트", "지능형 개인 어시스턴트", "개인 음성 어시스턴트", "대화 에이전트" 등으로도 불림)라고 하는 대화형 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동화된 어시스턴트와 상호 작용할 때 "사용자"라고 부를 수 있음)은 음성 자연어 입력(즉, 음성 발화)을 자동화된 어시스턴트에 제공할 수 있으며, 이는 경우에 따라 텍스트로 변환된 다음 프로세싱될 수 있고 및/또는 텍스트(예: 타이핑된) 자연어 입력을 제공함으로써 가능하다. 자동화된 어시스턴트는 일반적으로 반응형 사용자 인터페이스 출력(예: 청각적 및/또는 시각적 사용자 인터페이스 출력)을 제공하고, 스마트 네트워크 장치를 제어하고/하거나 다른 동작을 수행함으로써 어시스턴트 명령을 포함하는 이러한 사용자 입력에 응답한다.
자동화된 어시스턴트는 일반적으로 사용자 요청을 해석하고 응답할 때 컴포넌트 파이프라인에 의존한다. 예를 들어, 자동 음성 인식(ASR) 엔진은 사용자의 음성 발화에 해당하는 오디오 데이터를 프로세싱하고 음성 발화의 전사(즉, 용어 및/또는 기타 토큰의 시퀀스)와 같은 ASR 출력을 생성하는 데 사용될 수 있다. 또한, NLU(자연어 이해) 엔진은 ASR 출력을 프로세싱하도록 사용되고, 음성 발화를 제공하는 사용자의 의도 및 선택적으로 의도와 연관된 파라미터(들)에 대한 슬롯 값(들)과 같은, NLU 출력을 생성할 수 있다. 또한 이행 엔진을 사용하여 NLU 출력을 프로세싱하고 음성 발화에 응답하는 콘텐츠를 획득하기 위한 구조화된 요청과 같은 이행 출력을 생성할 수 있다. 이 컴포넌트 파이프라인은 사용자 요청을 해석하고 응답하는 데 레이턴시를 유발할 수 있으며, 이는 사용자 요청의 복잡성 및/또는 사용자 요청 유형에 따라 다양한 정도로 악화될 수 있다. 결과적으로, 사용자는 자동화된 어시스턴트가 사용자의 음성 발화를 듣지 못했다고 생각하여 동일한 음성 발화를 반복하거나, 자동화된 어시스턴트가 음성 발화에 응답하는 콘텐츠를 렌더링하기 전에 응답 콘텐츠가 수신될 때까지 대기함으로써 인간 대 컴퓨터 대화를 연장하거나 추가 계산 리소스를 소비할 수 있다.
본 명세서에 개시된 구현은 자동화된 어시스턴트 상호작용을 더 빠르고 더 효율적인 방식으로 종결함으로써 자동화된 어시스턴트 상호작용에서의 레이턴시를 감소시키는 것과, 자동화된 어시스턴트로 향하는 사용자 입력이 클라이언트 장치에서 반복되는 발생의 양을 감소시키는 것에 관한 것이다. 일부 구현에서 클라이언트 장치는 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신할 수 있다. 오디오 데이터는 클라이언트 장치의 마이크로폰에서 생성할 수 있다. 또한, 오디오 데이터는 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하기 위해 프로세싱될 수 있다. 어시스턴트 명령을 이행하기 위한 예측된 레이턴시를 생성하기 위해 레이턴시 예측 모델을 사용하여 어시스턴트 명령을 프로세싱할 수 있다. 또한, 클라이언트 장치(또는 자동화된 어시스턴트)는 예측된 레이턴시에 기초하여 사용자에게 프레젠테이션하기 위해 음성 발화에 응답하는 콘텐츠를 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 렌더링할지 여부를 결정할 수 있다. 음성 발화에 응답하는 콘텐츠 이전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 렌더링하기로 결정하는 것에 응답하여, 미리 캐싱된 콘텐츠는 어시스턴트 명령에 테일러드될 수 있으며, 클라이언트 장치(또는 자동화된 어시스턴트)가 음성 발화에 응답하는 콘텐츠를 획득하는 동안 사용자에게 프레젠테이션하기 위해 렌더링될 수 있다. 또한, 음성 발화를 제공한 사용자의 관점에서 미리 캐싱된 콘텐츠 및 콘텐츠가 단일 출력(예를 들어, 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링된 합성된 음성의 단일 인스턴스 및/또는 스트리밍 방식으로 사용자에게 프레젠테이션하기 위해 시각적으로 렌더링된 단일 전사)인 것처럼 보이도록 콘텐츠는 미리 캐싱된 콘텐츠 다음에 사용자에게 프레젠테이션하기 위해 렌더링될 수 있다.
예를 들어, 사용자가 "What's the weather in Louisville?(루이빌의 날씨는 어떻습니까?)"라는 음성 발화를 제공하고 그리고 사용자의 클라이언트 장치의 마이크로폰(들)이 음성 발화를 캡처하는 오디오 데이터를 생성한다고 가정한다. 오디오 데이터는 자동 음성 인식(ASR) 모델을 사용하여 프로세싱되어 ASR 출력을 생성할 수 있고, ASR 출력은 자연어 이해(NLU) 모델을 사용하여 프로세싱되어 NLU 출력을 생성할 수 있다. 이 예에서 어시스턴트 명령은 날씨 명령으로 ASR 출력 및/또는 NLU 출력을 기반으로 식별할 수 있다. 또한, 클라이언트 장치에서 실행되는 자동화된 어시스턴트가 음성 발화에 응답하는 콘텐츠(예: "55도 및 맑음"의 현재 일기 예보)를 획득하기 위한 요청을 생성하고 콘텐츠를 얻기 위해 원격 시스템에 요청을 전송할 수 있다. 자동화된 어시스턴트는 콘텐츠를 얻기 위해 원격 시스템에 요청을 생성하고 전송하므로, 자동화된 어시스턴트는 음성 발화가 클라이언트 장치에서 수신되었을 때 레이턴시 예측 모델, ASR 출력, NLU 출력 및/또는 클라이언트와 연관된 장치 신호(들)를 사용하여 프로세싱함으로써 날씨 명령을 이행하기 위해 자동화된 어시스턴트에 대한 예측된 레이턴시를 동시에 생성할 수 있다. 또한, 자동화된 어시스턴트는 요청에 응답하는 콘텐츠(예를 들어, 현재 일기 예보)를 렌더링하기 전에 미리 캐싱된 콘텐츠를 렌더링할지 여부를 예측된 레이턴시에 기초하여 결정할 수 있다.
자동화된 어시스턴트가 요청에 응답하는 콘텐츠를 렌더링하기 전에 미리 캐싱된 콘텐츠를 렌더링하기로 결정했다고 가정하면, 자동화된 어시스턴트는 어시스턴트 명령에 테일러(tailor)하기 위해 날씨 명령에 대한 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 세그먼트를 선택할 수 있다(예: "Hi [NAME], [LOCATION] weather [TIME] is ...(하이 [이름], [위치] 날씨 [시간]은..."). 또한, 자동화된 어시스턴트는 미리 캐싱된 콘텐츠에 대한 미리 캐싱된 콘텐츠의 선택된 세그먼트를 어시스턴트 명령에 테일러하여 미리 캐싱된 콘텐츠의 테일러드(tailored)된 세그먼트를 생성할 수 있다(예: “Hi John, Louisville weather right now is ...(하이, 존, 지금 루이빌 날씨는 …”). 자동화된 어시스턴트가 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠의 테일러드된 세그먼트를 렌더링하므로 요청(예: 현재 일기 예보)에 응답하는 콘텐츠가 클라이언트 장치에서 수신되어야 한다. 수신된 콘텐츠는 미리 캐싱된 콘텐츠와 동기화될 수 있으며, 따라서 사용자의 관점에서 "Hi John, Louisville weather right now is 55 degrees and sunny(하이, 존, 루이빌 날씨는 지금 55도이고 화창하다)"라는 합성된 음성의 단일 인스턴스가 표시된다. 따라서, 자동화된 어시스턴트 상호작용이 더 빨리 종료되기 때문에 콘텐츠 이전에 미리 캐싱된 콘텐츠를 렌더링함으로써 자동화된 어시스턴트 상호작용에서의 레이턴시가 감소될 수 있으며, 이에 따라 클라이언트 장치에서 연산 리소스가 절약된다. 더욱이, 콘텐츠 이전에 미리 캐싱된 콘텐츠를 렌더링함으로써 사용자가 음성 발화를 반복하는 발생 횟수를 줄일 수 있으며, 그에 따라 클라이언트 장치에서 더 적은 사용자 입력이 수신되기 때문에 연산 리소스를 절약할 수 있다.
일부 구현에서, 레이턴시 예측 모델은 복수의 트레이닝 인스턴스를 기반으로 트레이닝되는 기계 트레이닝(ML) 모델(예: 분류 모델, 의사 결정 트리(decision tree) 및/또는 예측된 레이턴시를 생성하도록 트레이닝할 수 있는 기타 ML 모델)일 수 있다. 각 트레이닝 인스턴스에는 트레이닝 인스턴스 입력 및 트레이닝 인스턴스 출력이 포함될 수 있다. 복수의 트레이닝 인스턴스의 특정 트레이닝 인스턴스에 대한 트레이닝 인스턴스 입력은 예를 들어 특정 어시스턴트 명령에 대한 NLU 데이터(예: 의도(intent), 의도와 연관된 파라미터의 슬롯 값 및/또는 기타 NLU 데이터), 특정 어시스턴트 명령에 대한 ASR 데이터(예: 음성 가설(들) 및/또는 기타 ASR 데이터), 및/또는 특정 어시스턴트 명령이 수신되었을 때 클라이언트 장치와 연관된 하나 이상의 장치 신호(예를 들어, 클라이언트 장치의 위치, 클라이언트 장치의 유형, 클라이언트 장치의 네트워크 연결 유형, 및/또는 기타 신호)를 포함할 수 있다. 또한 트레이닝 인스턴스 출력에는 자동화된 어시스턴트가 특정 어시스턴트 명령을 이행하는 것과 연관된 실측(ground truth) 레이턴시가 포함될 수 있다.
특정 트레이닝 인스턴스에 기초한 레이턴시 예측 모델을 트레이닝할 때, 트레이닝 인스턴스 입력은 특정 어시스턴트 명령의 이행과 연관된 예측된 레이턴시를 생성하기 위해 레이턴시 예측 모델을 사용하여 프로세싱될 수 있다. 또한, 트레이닝 인스턴스 입력 프로세싱를 기반으로 생성된 예측된 레이턴시는 특정 어시스턴트 명령의 이행과 연관된 실측 레이턴시와 비교되어 하나 이상의 손실을 생성할 수 있다. 레이턴시 예측 모델은 특정 트레이닝 인스턴스에 대한 하나 이상의 손실을 기반으로 업데이트될 수 있다(예: 레이턴시 예측 모델에서 하나 이상의 손실을 역전파하여). 레이턴시 예측 모델은 하나 이상의 트레이닝 조건이 충족될 때까지 이러한 방식으로 트레이닝될 수 있다. 트레이닝 조건은 예를 들어 퍼포먼스 임계값(performance threshold)을 충족하는 레이턴시 예측 모델의 퍼포먼스, 트레이닝 인스턴스의 임계값 수량(threshold quantity)을 기반으로 트레이닝되는 레이턴시 예측 모델, 레이턴시 예측 모델을 트레이닝하는 시간의 임계 기간, 및/또는 다른 트레이닝 조건을 포함할 수 있다. 레이턴시 예측 모델은 하나 이상의 트레이닝 조건이 충족될 때 클라이언트 장치에서 사용할 수 있도록 배포될 수 있다.
일부 구현에서, 레이턴시 예측 모델은 클라이언트 장치에서 사용하기 위해 배포된 후 클라이언트 장치에서 로컬로 업데이트될 수 있다. 예를 들어, 자동화된 어시스턴트는 특정 어시스턴트 명령의 이행과 연관된 실제 레이턴시를 결정할 수 있고 실제 레이턴시를 특정 어시스턴트 명령의 이행과 연관된 예상 레이턴시와 비교하여 하나 이상의 손실을 생성할 수 있다. 레이턴시 예측 모델은 특정 어시스턴트 명령에 대한 하나 이상의 손실에 기초하여 업데이트될 수 있다(예를 들어, 레이턴시 예측 모델에 걸쳐 하나 이상의 손실을 역전파함으로써). 따라서, 레이턴시 예측 모델은 클라이언트 장치에서 이행되는 어시스턴트 명령에 기초하여 및/또는 클라이언트 장치에 특유한 장치 신호(들)에 기초하여 클라이언트 장치에서 개인화될 수 있다.
일부 구현에서, 미리 캐싱된 콘텐츠의 세그먼트가 선택되는 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트는 이종 유형의 어시스턴트 명령에 대한 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 각각이 서로 다른 기간 동안 렌더링될 수 있도록 상이한 길이일 수 있다. 예를 들어, 미리 캐싱된 콘텐츠의 제1 세그먼트는 제1 길이일 수 있고 그리고 클라이언트 장치에서 사용자에게 프레젠테이션하기 위해 렌더링되는 데 제1 기간이 걸릴 수 있고(예, [LOCATION] weather [TIME] is ...), 미리 캐싱된 콘텐츠의 제2 세그먼트는 제2 길이일 수 있고 그리고 클라이언트 장치에서 사용자에게 프레젠테이션하기 위해 렌더링되는 데 제2 기간이 걸릴 수 있고(예, Hi [NAME], [LOCATION] weather [TIME] is ...), 미리 캐싱된 콘텐츠의 제3 세그먼트는 제3 길이일 수 있으며 그리고 사용자에게 프레젠테이션하기 위해 렌더링되는 데 제3 기간이 걸릴 수 있다(예, Hi [NAME], the radar for [LOCATION] says the weather [TIME] is ...). 이 예에서, 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 길이는 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 길이보다 길 수 있고, 그 결과, 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 기간은 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 기간보다 더 길 수 있다. 또한, 미리 캐싱된 콘텐츠의 제3 세그먼트와 연관된 제3 길이는 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 길이보다 길 수 있고, 결과적으로, 미리 캐싱된 콘텐츠의 제3 세그먼트와 연관된 제3 기간은 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 기간 및 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 기간 모두보다 더 길수 있다.
이러한 구현의 일부 버전에서, 자동화된 어시스턴트는 예측된 레이턴시를 하나 이상의 레이턴시 임계값과 비교하여 미리 캐싱된 콘텐츠의 지정된 세그먼트를 선택할 수 있다. 예를 들어, 자동화된 어시스턴트는, 예측된 레이턴시가 제1 레이턴시 임계값을 충족하지 못하는 경우 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택할 수 있고, 예측된 레이턴시가 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값을 충족하지 못하는 경우 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택하고, 예측된 레이턴시가 제1 레이턴시 임계값과 제2 레이턴시 임계값을 충족할 때 미리 캐싱된 콘텐츠의 제3 세그먼트를 선택할 수 있다. 따라서, 자동화된 어시스턴트는 어시스턴트 명령을 이행하기 위해 자동화된 어시스턴트에 대한 예측된 레이턴시에 기초하여 어시스턴트 명령에 테일러(tailor)하기 위해 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 동적으로 선택할 수 있다. 다시 말해서, 자동화된 어시스턴트는 요청에 응답하는 콘텐츠가 미리 캐싱된 콘텐츠의 렌더링 동안 수신될 수 있고 그리고 적시에 미리 캐싱된 콘텐츠의 렌더링에 추가될 수 있도록, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택할 수 있다.
이러한 구현의 일부 버전에서, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트는 어시스턴트 명령에 특정될 수 있다. 달리 말하면, 서로 다른 유형의 어시스턴트 명령이 미리 캐싱된 콘텐츠의 대응하는 복수의 이종 세그먼트와 연관될 수 있다. 예를 들어, 날씨 명령은 서로 다른 제1 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 사물 인터넷(IoT) 장치 제어 명령은 제2의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 미디어 명령은 제3의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 검색 쿼리 명령은 제4의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 어시스턴트 루틴 명령은 제5의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 내비게이션 명령은 제6의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있고, 소프트웨어 애플리케이션 제어 명령은 제7의 서로 다른 복수의 미리 캐싱된 세그먼트와 연관될 수 있으며, 복수의 다른 유형의 어시스턴트 명령에 대해서도 마찬가지이다. 이러한 구현의 일부 추가 버전에서, 미리 캐싱된 콘텐츠의 복수의 대응하는 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택하는 데 사용되는 레이턴시 임계값은 다른 유형의 어시스턴트 명령 각각에 대해 달라지는 반면, 다른 구현에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택하는 데 사용되는 레이턴시 임계값은 동일할 수 있다.
일부 구현에서, 자동화된 어시스턴트는 음성 발화에 기초하여 결정된 정보, 음성 발화로부터 추론된 정보, 및/또는 알려진 정보에 기초하여 선택된 미리 캐싱된 세그먼트를 어시스턴트 명령에 테일러(tailor)할 수 있다. 사용자가 "What's the weather in Louisville?(루이빌의 날씨는 어떻습니까?)"라는 음성 발화를 제공한 위의 예에서, 미리 캐싱된 콘텐츠의 선택된 세그먼트에는 [이름], [위치] 및 [시간]의 세 가지 파라미터가 포함된다. 자동화된 어시스턴트는 사용자가 자동화된 어시스턴트를 구성할 때 자신의 이름을 제공한 시기와 같이 알려진 사용자 정보를 기반으로 [이름] 파라미터의 값을 결정할 수 있다. 또한, 자동화된 어시스턴트는 "루이빌(Louisville)"이 날씨 명령의 위치 파라미터에 대한 슬롯 값임을 나타내는 음성 발화에 기초하여 생성된 NLU 출력에 기초하여 [위치] 파라미터에 대한 값을 결정할 수 있다. 또한, 자동화된 어시스턴트는 "현재 시간"이 날씨 명령의 시간 파라미터에 대한 슬롯 값임을 나타내는 음성 발화에 기초하여 생성된 NLU 출력에 기초하여 [위치] 파라미터에 대한 값을 추론할 수 있다.
일부 구현에서, 콘텐츠를 획득하기 위한 요청을 전송할 때(예를 들어, 원격 시스템으로부터 및/또는 클라이언트 장치에서 액세스 가능한 소프트웨어 애플리케이션으로), 요청은 축소된 데이터가 클라이언트 장치로 다시 전송될 필요가 있다는 표시를 포함할 수 있다. 사용자가 "루이빌의 날씨는 어떻습니까?"라는 음성 발화를 제공한 위의 예에서, 원격 시스템으로 전송되는 요청은 원격 시스템이 온도(예: 55도) 및 날씨를 설명하는 형용사(예: 맑음)를 제공하도록 요청할 수 있다. 즉, 요청은 콘텐츠 이전에 렌더링되는 미리 캐싱된 콘텐츠가 이 콘텐츠의 대부분을 포함하기 때문에 원격 시스템이 콘텐츠의 구조화된 세그먼트를 다시 전송할 필요가 없다는 표시를 포함할 수 있다(예: "루이빌 날씨는 지금 55도이고 화창한다."). 이를 통해 요청의 크기를 줄일 수 있으므로 하나 이상의 네트워크를 통해 요청 및/또는 콘텐츠를 전송할 때 네트워크 리소스를 절약할 수 있다.
위의 예는 어시스턴트 명령에 응답하는 콘텐츠를 렌더링하는 것과 관련하여 설명되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 추가적인 또는 대안적인 구현에서, 본 명세서에 기술된 기술은 어시스턴트 명령이 장치를 제어할 때(예: 미디어 명령, IoT 장치 제어 명령 등)와 같이 콘텐츠 자체가 없을 때 미리 캐싱된 콘텐츠를 렌더링하는 데 활용될 수 있다. 또한, 위의 예는 단일 어시스턴트 명령에 응답하는 콘텐츠를 렌더링하는 것과 관련하여 설명되었지만, 이는 또한 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 추가적인 또는 대안적인 구현에서, 본 명세서에 기술된 기술은 음성 발화가 어시스턴트 루틴을 시작할 때(예: 좋은 아침 루틴, 좋은 밤 루틴 및/또는 기타 어시스턴트 루틴)와 같이 음성 발화가 복수의 어시스턴트 명령을 포함할 때 미리 캐싱된 콘텐츠를 렌더링하는 데 활용될 수 있다. 이러한 구현에서, 어시스턴트 루틴에 전체적으로 또는 어시스턴트 루틴에 포함된 개별 어시스턴트 명령 중 하나 이상에 대해 예측된 레이턴시가 생성될 수 있다. 예를 들어, 특정 어시스턴트 루틴이 시간 명령, 교통 명령 및 날씨 명령을 포함한다고 가정한다. 이 경우 각 명령에 대해 전체적으로 또는 개별 수준에서 예측된 레이턴시를 생성할 수 있다.
여기에 설명된 기술을 사용함으로써 하나 이상의 기술적 이점을 획득할 수 있다. 비제한적인 예로서, 본 명세서에 기술된 기술은 자동화된 어시스턴트가 콘텐츠를 획득하는 동안 어시스턴트 명령에 테일러드된(tailored) 미리 캐싱된 콘텐츠를 렌더링할 수 있게 하여, 자동화된 어시스턴트와 사용자 사이의 인간 대 컴퓨터 대화를 더 빠르고 더 효율적인 방식으로 결론짓는다. 예를 들어, 자동화된 어시스턴트는 음성 발화에 응답하는 특정 콘텐츠가 클라이언트 장치에서 획득되기를 기다리기 전에, 어시스턴트 명령에 테일러드된(tailored) 미리 캐싱된 콘텐츠로 음성 발화에 포함된 어시스턴트 명령에 응답하기 시작할 수 있다. 다른 비제한적 예로서, 본 명세서에 기술된 기술은 자동화된 어시스턴트가 빠르고 효율적인 방식으로 어시스턴트 명령을 수신했다는 표시를 사용자에게 제공할 수 있게 하여, 사용자가 어시스턴트 명령을 포함하는 음성 발화를 반복할 발생의 양을 감소시킨다. 다른 비제한적 예로서, 어시스턴트 명령에 응답하는 콘텐츠에 대한 요청은 더 적은 정보를 요청할 수 있으므로, 하나 이상의 네트워크를 통해 전송되는 정보의 크기를 줄이고 더 적은 네트워크 리소스를 소비한다.
상기 설명은 본 명세서에 개시된 일부 구현의 개요로서 제공된다. 이러한 구현 및 기타 구현은 여기에서 추가로 자세히 설명된다.
전술한 개념 및 본 명세서에 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 말미에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 본 개시의 다양한 양태를 입증하는 예시적인 환경의 블록도를 도시한다.
도 2는 다양한 구현에 따라 본 발명의 다양한 양태를 입증하는 예시적인 프로세스 흐름을 도시한다.
도 3은 다양한 구현에 따라, 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 4는 다양한 구현에 따라 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여 사용자에게 제공될 미리 캐싱된 콘텐츠를 선택하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 5a, 도 5b, 및 도 5c는 다양한 구현에 따라 자동화된 어시스턴트가 다양한 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하는 클라이언트 장치의 다양한 비제한적 예를 묘사한다.
도 6은 다양한 구현에 따른 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 1을 참조하면, 본 발명의 다양한 양태를 나타내고 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도가 도시되어 있다. 예시적인 환경은 클라이언트 장치(110), 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115), 하나 이상의 제1-파티(first-party) 서버(191) 및 하나 이상의 제3-파티(third-party) 서버(192)를 포함한다.
클라이언트 장치(110)는 자동화된 어시스턴트 클라이언트(113)를 실행할 수 있다. 자동화된 어시스턴트 클라이언트(113)는 클라이언트 장치(110)의 운영 체제(예: 운영 체제 "탑(on top)"에 설치됨)와 별개인 애플리케이션일 수 있거나 대안적으로 클라이언트 장치(110)의 운영 체제에 의해 직접 구현될 수 있다. 아래에 추가로 설명된 바와 같이, 자동화된 어시스턴트 클라이언트(113)는 선택적으로 클라이언트 장치(110)의 사용자 인터페이스 컴포넌트(들)(112)에 의해 제공되는 다양한 요청에 응답하여 클라우드 기반 자동화된 어시스턴트 컴포넌트(115) 중 하나 이상과 상호작용할 수 있다. 또한, 또한 아래에서 설명되는 바와 같이, 클라이언트 장치(110)의 다른 엔진(들)은 선택적으로 클라우드 기반 자동화된 어시스턴트 컴포넌트(115) 중 하나 이상과 상호작용할 수 있다.
하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)는 하나 이상의 로컬 영역 네트워크(Wi-Fi LAN, Bluetooth 네트워크, 근거리 통신 네트워크, 메시 네트워크 등을 포함한 "LAN"), 광역 네트워크(인터넷 등을 포함한 "WAN") 및/또는 다른 네트워크를 통해 클라이언트 장치(110)에 통신 가능하게 연결된 하나 이상의 컴퓨팅 시스템(예: 집합적으로 "클라우드" 또는 "원격" 컴퓨팅 시스템이라고 하는 서버)에서 구현될 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와 클라이언트 장치(110)의 통신 연결은 일반적으로 도 1의 1991로 표시된다. 또한, 일부 구현에서, 클라이언트 장치(110)는 하나 이상의 네트워크(예를 들어, LAN 및/또는 WAN)를 통해 다른 클라이언트 장치(미도시)와 통신 가능하게 결합될 수 있다.
하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)는 또한 하나 이상의 네트워크(예: LAN, WAN 및/또는 기타 네트워크)를 통해 하나 이상의 제1-파티 서버(191) 및/또는 하나 이상의 제3-파티 서버와 통신 가능하게 결합될 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와 제1-파티 서버(191) 중 하나 이상의 통신 연결은 일반적으로 도 1의 1992로 표시된다. 또한, 하나 이상의 제3-파티 서버(192)와 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)의 통신 연결은 일반적으로 도 1의 1993으로 표시된다. 일부 구현에서, 비록 도 1에 명시적으로 도시되지는 않았지만, 클라이언트 장치(110)는 추가로 또는 대안적으로 하나 이상의 네트워크(예: LAN, WAN 및/또는 기타 네트워크)를 통해 하나 이상의 제1-파티 서버(191) 및/또는 하나 이상의 제3-파티 서버(192)와 통신 가능하게 결합될 수 있다.
자동화된 어시스턴트 클라이언트(113)는 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와의 상호작용을 통해, 사용자 관점에서 클라이언트 장치(110)의 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화된 어시스턴트(120)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 예를 들어, 점선으로 둘러싸인 자동화된 어시스턴트(120)의 인스턴스는 클라이언트 장치(110)의 자동화된 어시스턴트 클라이언트(113) 및 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)를 포함한다. 따라서 클라이언트 장치(110)에서 실행되는 자동화된 어시스턴트 클라이언트(113)와 관여하는 각각의 사용자는 사실상 자동화된 어시스턴트(120)의 그 자신의 논리적 인스턴스와 관여할 수 있다는 것을 이해해야 한다(또는 가정 또는 다른 사용자 그룹 간에 공유되는 및/또는 복수의 자동화된 어시스턴트 클라이언트(113) 간에 공유되는 자동화된 어시스턴트(120)의 논리적 인스턴스). 도 1에는 클라이언트 장치(110)만이 도시되어 있지만, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)가 추가로 클라이언트 장치의 많은 추가 그룹에 서비스를 제공할 수 있다는 것이 이해된다. 더욱이, 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)가 도 1에 도시되어 있지만, 다양한 구현에서, 자동화된 어시스턴트(120)는 클라이언트 장치(110)에서만 구현될 수 있다는 것이 이해된다.
본 명세서에서 사용되는 바와 같이, 제1-파티 장치 또는 시스템(예를 들어, 하나 이상의 제1-파티 서버(191))은 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 파티(party)와 동일한 파티에 의해 제어되는 시스템을 참조한다. 예를 들어, 하나 이상의 제1-파티 서버(191)는 검색 엔진 서비스, 통신 서비스(예: 이메일, SMS 메시징 등), 내비게이션 서비스, 음악 서비스, 문서 편집 또는 공유 서비스 및/또는 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 파티와 동일한 파티를 제어하는 다른 서비스를 호스팅하는 시스템을 참조할 수 있다. 대조적으로, 제3-파티 장치 또는 시스템(예를 들어, 하나 이상의 제3-파티 서버(192))은 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 파티와 구별되는 파티에 의해 제어되는 시스템을 참조한다. 예를 들어, 하나 이상의 제3-파티 서버(192)는 동일한 서비스를 호스팅하는 시스템을 참조할 수 있지만, 이러한 서비스는 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 파티와 다른 파티에 의해 제어된다.
클라이언트 장치(110)는 예를 들어 데스크탑 컴퓨팅 장치, 랩탑 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 모바일 폰 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예: 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 대화형 독립형 스피커(예: 디스플레이 포함 또는 제외), 스마트 텔레비전 또는 스마트 세탁기/건조기와 같은 스마트 기기, 컴퓨팅 장치를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치), 및/또는 자동화된 어시스턴트(120)로 향하는 사용자 입력을 수신할 수 있는 임의의 IoT 장치 중 하나 이상을 포함할 수 있다. 추가 및/또는 대체 클라이언트 장치가 제공될 수 있다.
다양한 구현에서, 클라이언트 장치(110)는 대응하는 사용자(들)로부터의 승인으로 검출된 존재, 특히 인간 존재를 나타내는 신호를 제공하도록 구성된 하나 이상의 존재 센서(111)를 포함할 수 있다. 그러한 구현들 중 일부에서, 자동화된 어시스턴트(120)는 클라이언트 장치(110)(또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치)에서의 사용자의 존재의 적어도 일부에 기초하여 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)를 충족시키기 위해 클라이언트 장치(110)(또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치에서)를 식별할 수 있다. 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)는 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)를 제어하게 함으로써, 및/또는 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)로 하여금 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)를 충족시키기 위해 임의의 다른 동작을 수행하게 함으로써, 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)에서 응답형 콘텐츠(responsive content)(예: 가청적 및/또는 시각적)를 렌더링함으로써 충족될 수 있다. 본 명세서에 기술된 바와 같이, 자동화된 어시스턴트(120)는 사용자가 근처에 있거나 최근에 근처에 있었던 위치에 기초하여 클라이언트 장치(110)(또는 다른 컴퓨팅 장치)를 결정하는 데 존재 센서(111)에 기초하여 결정된 데이터를 활용할 수 있고, 대응하는 명령을 클라이언트 장치(110)(또는 다른 컴퓨팅 장치)에만 제공할 수 있다. 일부 추가 또는 대체 구현에서, 자동화된 어시스턴트(120)는 임의의 사용자(들)(모든 사용자 또는 특정 사용자)가 현재 클라이언트 장치(110)에 근접해 있는지 여부를 결정할 때 존재 센서(111)에 기초하여 결정된 데이터를 활용할 수 있고, 선택적으로 클라이언트 장치(110)(또는 다른 컴퓨팅 장치)에 근접한 사용자(들)에 기초하여 클라이언트 장치(110)(또는 다른 컴퓨팅 장치(들))로 및/또는 그로부터 데이터의 제공을 억제할 수 있다.
존재 센서(111)는 다양한 형태를 가질 수 있다. 예를 들어, 클라이언트 장치(110)에는 그들의 시야에서 감지된 움직임을 나타내는 신호(들)를 캡처하고 제공하도록 구성된 하나 이상의 디지털 카메라가 장착될 수 있다. 추가로 또는 대안적으로, 클라이언트 장치(110)는 그들의 시야 내에 있는 물체로부터 방사되는 적외선("IR") 광을 측정하는 수동 적외선("PIR") 센서와 같은 다른 유형의 광 기반 존재 센서(111)를 구비할 수 있다. 추가적으로 또는 대안적으로 클라이언트 장치(110)는 하나 이상의 마이크로폰과 같은 음향(또는 압력) 파동을 검출하는 존재 센서(111)를 구비할 수 있다.
추가적으로 또는 대안적으로, 일부 구현에서, 존재 센서(111)는 인간 존재 또는 장치 존재와 연관된 다른 현상을 검출하도록 구성될 수 있다. 예를 들어, 일부 실시예에서, 클라이언트 장치(110)는 예를 들어 사용자에 의해 휴대/작동되는 다른 컴퓨팅 장치(예: 모바일 장치, 웨어러블 컴퓨팅 장치 등) 및/또는 다른 컴퓨팅 장치에 의해 방출되는 다양한 유형의 무선 신호(예: 라디오, 초음파, 전자파 등의 전파)를 검출하는 존재 센서(111)를 구비할 수 있다. 예를 들어, 클라이언트 장치(110)는 (예: 초음파 가능 마이크로폰와 같은 초음파/적외선 수신기를 통해) 다른 컴퓨팅 장치(들)에 의해 검출될 수 있는 초음파 또는 적외선과 같이 인간이 인지할 수 없는 파동을 방출하도록 구성될 수 있다.
추가적으로 또는 대안적으로, 클라이언트 장치(110)는 사용자에 의해 휴대/작동되는 다른 컴퓨팅 장치(들)(예: 모바일 장치, 웨어러블 컴퓨팅 장치 등)에 의해 검출될 수 있고 사용자의 특정 위치를 결정하는 데 사용될 수 있는 전파(예: Wi-Fi, Bluetooth, 셀룰러 등)와 같은 다른 유형의 사람이 인지할 수 없는 파동을 방출할 수 있다. 일부 구현에서, GPS 및/또는 Wi-Fi 삼각 측량은 예를 들어 클라이언트 장치(110)로/로부터의 GPS 및/또는 Wi-Fi 신호에 기초하여 사람의 위치를 검출하는 데 사용될 수 있다. 다른 구현에서, 비행 시간(time-of-flight), 신호 강도 등과 같은 다른 무선 신호 특성은 사용자에 의해 휴대/작동되는 다른 컴퓨팅 장치(들)에 의해 방출된 신호에 기초하여 특정 사람의 위치를 결정하기 위해 클라이언트 장치(110)에 의해 단독으로 또는 집합적으로 사용될 수 있다.
추가로 또는 대안적으로, 일부 구현에서, 클라이언트 장치(110)는 음성 인식을 수행하여 음성으로부터 사용자를 인식할 수 있다. 예를 들어, 자동화된 어시스턴트(120)의 일부 인스턴스는 예를 들어 다양한 리소스에 대한 액세스를 제공/제한하기 위해 사용자의 프로필에 음성을 일치시키도록 구성될 수 있다. 일부 구현에서, 화자의 움직임은 예를 들어 클라이언트 장치(110)의 존재 센서(111)(및 선택적으로 GPS 센서 및/또는 가속도계)에 의해 결정될 수 있다. 일부 구현에서, 그러한 검출된 움직임에 기초하여 사용자의 위치가 예측될 수 있고, 이 위치는 사용자의 위치에 대한 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)의 근접성에 적어도 부분적으로 기초하여, 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)에서 임의의 콘텐츠가 렌더링되게 할 때 사용자의 위치로 가정될 수 있다. 일부 구현에서, 사용자는 특히 마지막 참여 이후 많은 시간이 경과하지 않은 경우 자동화된 어시스턴트(120)와 참여했던 마지막 위치에 있는 것으로 간단하게 가정될 수 있다.
클라이언트 장치(110)는 하나 이상의 사용자 인터페이스 입력 장치(예: 마이크로폰, 터치스크린, 키보드 및/또는 기타 입력 장치) 및/또는 하나 이상의 사용자 인터페이스 출력 장치(예: 디스플레이, 스피커, 프로젝터 및/또는 기타 출력 장치)를 포함할 수 있는 사용자 인터페이스 컴포넌트(들)(112)를 더 포함한다. 또한, 클라이언트 장치(110) 및/또는 임의의 다른 컴퓨팅 장치(들)는 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터 액세스 및 애플리케이션 실행을 위한 하나 이상의 프로세서, 및 네트워크를 통한 통신을 용이하게 하는 기타 컴포넌트를 포함할 수 있다. 클라이언트 장치(110), 다른 컴퓨팅 장치(들) 및/또는 자동화된 어시스턴트(120)에 의해 수행되는 동작은 여러 컴퓨터 시스템에 걸쳐 분산될 수 있다. 자동화된 어시스턴트(120)는 예를 들어 네트워크(예를 들어, 도 1의 네트워크(들)(199))를 통해 서로 연결된 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램으로 구현될 수 있다.
전술한 바와 같이, 다양한 구현에서, 클라이언트 장치(110)는 자동화된 어시스턴트 클라이언트(113)를 작동시킬 수 있다. 다양한 실시예에서, 자동화된 어시스턴트 클라이언트(113)는 음성 캡처/자동 음성 인식(ASR: automatic speech recognition)/자연어 이해(NLU: natural language understanding)/TTS(text-to-speech) 모듈(114)을 포함할 수 있다. 다른 구현에서, 각각의 음성 캡처/ASR/NLU/TTS 모듈(114)의 하나 이상의 양태는 자동화된 어시스턴트 클라이언트(113)와 별도로 (예를 들어, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)에 의해) 구현될 수 있다.
음성 캡처/ASR/NLU/TTS 모듈(114)은 예를 들어, 사용자의 음성을 캡처하는 것(음성 캡처, 예를 들어, 각각의 마이크로폰(들)(어떤 경우에는 존재 센서(105) 중 하나 이상을 포함할 수 있음)를 통해); 기계 트레이닝(ML: machine learning) 모델(들) 데이터베이스(110A)에 저장된 ASR 모델(들)을 사용하여 캡처된 오디오를 인식된 텍스트 및/또는 다른 표현 또는 임베딩으로 변환하는 것; ML 모델(들) 데이터베이스(110A)에 저장된 NLU 모델(들)을 사용하여 인식된 텍스트를 파싱 및/또는 주석을 다는 것; 및/또는 ML 모델(들) 데이터베이스(110A)에 저장된 TTS 모델(들)을 사용하여 텍스트를 음성으로 변환하는 것을 포함하는 하나 이상의 기능을 수행하도록 구성될 수 있다. 이러한 ML 모델(들)의 인스턴스(들)는 클라이언트 장치(110)에 로컬로 저장될 수 있고 및/또는 도 1의 네트워크(들)(199)를 통해 클라이언트 장치(110)에 의해 액세스 가능할 수 있다. 일부 구현에서, 클라이언트 장치(110)는 컴퓨팅 리소스(예를 들어, 프로세서 사이클, 메모리, 배터리 등) 측면에서 상대적으로 제약을 받을 수 있기 때문에, 클라이언트 장치(110)에 로컬인 각각의 음성 캡처/ASR/NLU/TTS 모듈(114)은 음성 인식 모델(들)을 사용하여 한정된 수의 서로 다른 구어를 텍스트(또는 저차원 임베딩과 같은 다른 형식)로 변환하도록 구성되어야 한다. 일부 음성 입력은 클라우드 기반 ASR 모듈(116), 클라우드 기반 NLU 모듈(117) 및/또는 클라우드 기반 TTS 모듈(118)을 포함할 수 있는 클라우드 기반 자동화된 어시스턴트 컴포넌트(115) 중 하나 이상으로 전송될 수 있다.
클라우드 기반 ASR 모듈(116)은 ML 모델(들) 데이터베이스(110A)에 저장된 ASR 모델(들)을 사용하여 음성 캡처/ASR/NLU/TTS 모듈(114)에 의해 캡처된 오디오 데이터를 텍스트로 변환하기 위해 클라우드의 사실상 무제한 리소스를 활용하도록 구성될 수 있으며, 이는 그 다음 클라우드 기반 NLU 모듈(117)에 제공될 수 있다. 클라우드 기반 TTS 모듈(118)은 ML 모델(들) 데이터베이스(110A)에 저장된 음성 합성 모델(들)을 사용하여 텍스트 데이터(예를 들어, 자동화된 어시스턴트(120)에 의해 공식화된 텍스트)를 컴퓨터 생성 합성된 음성으로 변환하기 위해 클라우드의 거의 무한한 리소스를 활용하도록 구성될 수 있다. 일부 구현에서, 클라우드 기반 TTS 모듈(118)은 예를 들어, 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)의 스피커(들)를 사용하여 직접 출력될 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)에 컴퓨터 생성 음성 출력(computer-generated speech output)을 제공한다. 다른 구현에서, 클라우드 기반 TTS 모듈(118)을 사용하여 자동화된 어시스턴트(120)에 의해 생성된 텍스트 데이터(예를 들어, 명령에 포함된 클라이언트 장치 알림)는 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)의 음성 캡처/ASR/NLU/TTS 모듈(114)에 제공될 수 있고, 그런 다음 ML 모델(들) 데이터베이스(110A)에 저장된 음성 합성 모델(들)을 사용하여 텍스트 데이터를 컴퓨터 생성 음성으로 로컬 변환할 수 있으며, 컴퓨터 생성 음성이 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)의 스피커(들)를 통해 렌더링되도록 한다.
클라우드 기반 NLU 모듈(117)은 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)의 사용자 인터페이스 컴포넌트(들)(112)를 통해 사용자에 의해 생성된 자연어 입력을 프로세싱하고, 자동화된 어시스턴트(120)의 하나 이상의 다른 컴포넌트에 의해 사용하기 위해 주석이 달린 출력을 생성할 수 있다. 예를 들어, 클라우드 기반 NLU 모듈(117)은 클라이언트 장치(110)의 사용자 인터페이스 컴포넌트(들)(112)를 통해 사용자에 의해 생성된 자연어 자유 형식 입력(예를 들어, 음성 입력 및/또는 타이핑된 입력)을 프로세싱할 수 있다. 자연어 자유 형식 입력 프로세싱에 기초하여 생성된 주석 출력은 자연어 입력의 하나 이상의 주석 및 선택적으로 자연어 입력의 용어 중 하나 이상(예를 들어, 모두)을 포함할 수 있다. 이러한 주석(annotation)에는 예를 들어 자연어 입력 프로세싱를 기반으로 결정된 의도(들), 결정된 의도(들)와 연관된 파라미터(들)에 대한 슬롯 값(들), 엔티티에 대한 자연어 입력에 포함된 엔티티에 해당하는 레이블, 품사 및/또는 자연어 입력에 포함된 기타 정보 및/또는 기타 주석이 포함될 수 있다.
일부 구현에서, 클라우드 기반 NLU 모듈(117)은 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 클라우드 기반 NLU 모듈(117)은 문법적 역할로 용어에 주석을 달도록 구성된 음성 태거(speech tagger)의 일부를 포함할 수 있다. 일부 구현에서, 클라우드 기반 NLU 모듈(117)은 사람(예를 들어 문학적 인물, 유명인사, 공인 등 포함), 조직, 위치(실제 및 가상) 등에 대한 참조와 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(미도시)를 추가적으로 및/또는 대안적으로 포함할 수 있다. 일부 구현에서, 엔티티에 대한 데이터는 지식 그래프(미도시)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현에서, 지식 그래프는 알려진 엔터티(및 경우에 따라 엔터티 속성)를 나타내는 노드와 노드를 연결하고 엔터티 간의 관계를 나타내는 에지를 포함할 수 있다. 클라우드 기반 NLU 모듈(117)의 엔티티 태거는 상위 레벨의 입도(granularity)(예: 사람과 같은 엔터티 클래스에 대한 모든 참조를 식별할 수 있도록 하기 위해) 및/또는 하위 레벨의 입도(예: 특정 개인과 같은 특정 엔터티에 대한 모든 참조를 식별할 수 있도록 하기 위해)에서 엔티티에 대한 참조에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 내용에 의존할 수 있고 및/또는 선택적으로 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 통신할 수 있다.
일부 구현에서, 클라우드 기반 NLU 모듈(117)은 추가로 및/또는 대안적으로 하나 이상의 컨텍스트 단서에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터(cluster)"하도록 구성된 공동 참조 리졸버(미도시)를 포함할 수 있다. 예를 들어, 자연어 입력 "lock it"를 수신하기 직전에 렌더링된 클라이언트 장치 알림에 언급된 "front door lock(현관 도어 잠금)"을 기반으로, 자연어 입력 "lock it"에서 "it"이라는 용어를 "front door lock"으로 해석하기 위해 상호 참조 리졸버를 사용할 수 있다.
일부 구현에서, 클라우드 기반 NLU 모듈(117)의 하나 이상의 컴포넌트는 클라우드 기반 NLU 모듈(117)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현에서 명명된 엔터티 태거는 특정 엔터티에 대한 모든 언급에 주석을 달 때 상호 참조 리졸버(coreference resolver) 및/또는 종속성 파서(dependency parser)의 주석에 의존할 수 있다. 또한, 예를 들어 일부 구현에서 상호 참조 리졸버는 동일한 엔터티에 대한 클러스터링 참조에서 종속성 파서의 주석에 의존할 수 있다. 일부 구현에서, 특정 자연어 입력을 프로세싱할 때, 클라우드 기반 NLU 모듈(117)의 하나 이상의 컴포넌트는 (예를 들어, 알림을 기반으로 하는 자연어 입력을 수신하기 직전에 클라이언트 장치(110)에서 자동화된 어시스턴트(120)에 의해 렌더링된 알림과 같은) 하나 이상의 주석을 결정하기 위해 특정 자연어 입력 외부의 관련 데이터를 사용할 수 있다.
하나 이상의 클라우드 기반 컴포넌트(115)(예를 들어, 클라우드 기반 ASR 모듈(115), 클라우드 기반 NLU 모듈(117) 및 클라우드 기반 TTS 모듈(118))에 의해 수행되는 것과 관련하여 특정 기능이 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 다양한 구현에서, 음성 캡처/ASR/NLU/TTS 모듈(114)은 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와 상호 작용하지 않고 클라이언트 장치(110)에서 로컬로 동일하거나 유사한 기능을 수행할 수 있다.
비록 도 1은 단일 사용자를 갖는 단일 클라이언트 장치에 대해 설명되지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 사용자의 하나 이상의 추가 클라이언트 장치는 또한 여기에 설명된 기술을 구현할 수 있다. 이러한 추가적인 클라이언트 장치는 (예를 들어, 네트워크(들)(199)를 통해) 클라이언트 장치(110)와 통신할 수 있다. 다른 예로서, 특정 클라이언트 장치는 공유 설정(예를 들어, 사용자 그룹, 가정)에서 복수의 사용자에 의해 활용될 수 있다.
다양한 구현에서, 클라이언트 장치(110)는 사용자 인터페이스 컴포넌트(들)(112)를 통해 클라이언트 장치(110)에서 수신된 다양한 사용자 입력을 프로세싱하는데 사용되는 다양한 엔진을 더 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 클라이언트 장치(110)는 레이턴시 예측 엔진(latency prediction engine)(130), 프리캐시 엔진(pre-cache engine)(140), 필러 엔진(filler engine)(150), 이행 엔진(fulfillment engine)(160) 및 업데이트 엔진(170)을 더 포함할 수 있다. 클라이언트 장치(110)는 ML 모델(들) 데이터베이스(110A) 및 미리 캐싱된(프리캐싱된(pre-cached)) 콘텐츠 데이터베이스(140A)를 포함하는 온-디바이스 메모리를 더 포함할 수 있다. 일부 구현에서, 이러한 다양한 엔진은 클라이언트 장치(110)에서만 독점적으로 실행될 수 있다. 추가적인 또는 대안적인 구현에서, 이들 다양한 엔진 중 하나 이상이 클라이언트 장치(110)로부터 원격으로 실행될 수 있다(예를 들어, 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)의 일부로서).
본 명세서에 기술된 바와 같이, 클라이언트 장치(110)는 이러한 다양한 엔진을 활용하여 사용자 요청에 응답하는 레이턴시를 줄이고 및/또는 클라이언트 장치(110)에서 수신되는 사용자 입력의 양을 줄일 수 있고, 따라서 더 빠르고 더 효율적인 방식으로 인간 대 컴퓨터 대화 세션을 종료하고/하거나 사용자가 동일한 사용자 요청을 반복하는 발생 횟수를 줄임으로써 계산 리소스를 절약한다. 예를 들어, 도 2를 참조하면, 본 발명의 다양한 양태를 입증하는 예시적인 프로세스 흐름이 묘사된다. 도 2에 도시된 프로세스 흐름도는 도 1의 예시적인 환경에 도시된 클라이언트 장치(110)의 다양한 엔진에 의해 수행될 수 있다.
예를 들어, 음성 캡처/ASR/NLU/TSS 모듈(114)의 음성 캡처 엔진(114A)이 클라이언트 장치(110)의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터(114A1)를 검출한다고 가정한다. 오디오 데이터는 클라이언트 장치(110)의 사용자의 음성 발화를 캡처할 수 있다. 음성 캡처/ASR/NLU/TSS 모듈(114)의 ASR 엔진(114B)은 ML 모델(들) 데이터베이스(110A)에 저장된 ASR 모델을 사용하여 오디오 데이터(114A1)를 프로세싱하여 ASR 출력(114B1)을 생성할 수 있다. ASR 출력(114B1)은 예를 들어 오디오 데이터(114A1)에 캡처된 사용자의 음성 발화에 대응하는 것으로 예측되는 하나 이상의 음성 가설, 하나 이상의 음성 가설 각각에 대한 하나 이상의 해당 예측 값(예: 확률, 로그 가능성 및/또는 기타 값), 오디오 데이터(114A1)에 캡처된 사용자의 음성 발화에 대응할 것으로 예측되는 복수의 음소 및/또는 기타 ASR 출력을 포함할 수 있다.
일부 구현에서, ASR 엔진(114B)은 자동화된 어시스턴트(120)가 호출되었다는 결정에 응답하여 오디오 데이터(114A1)만을 프로세싱할 수 있다. 자동화된 어시스턴트(120)는, 오디오 데이터(114A1)가 자동화된 어시스턴트(120)를 호출하는 하나 이상의 특정 단어 또는 구문("Assistant(어시스턴트)", "Hey Assistant(헤이 어시스턴트)" 등)을 포함하는지를 결정(예를 들어, ML 모델(들) 데이터베이스(110A)에 저장된 핫워드 모델을 사용하여 결정됨)하는 것에 응답하여 호출될 수 있고, 클라이언트 장치(110)의 하나 이상의 비전 컴포넌트에 의해 검출된 특정 손 움직임, 자동화된 어시스턴트(120)를 향한 시선 및/또는 입술 움직임(예를 들어, ML 모델(들) 데이터베이스(110A)에 저장된 핫워드 없는 모델을 사용하여 결정됨) 등과 같은 자동화된 어시스턴트(120)를 호출하는 호출 제스처에 후속하여 오디오 데이터(114A1)가 수신된다는 결정에 응답하여 호출될 수 있고, 자동화된 어시스턴트(120)를 호출하는 버튼(예: 하드웨어 또는 소프트웨어 버튼) 누름에 후속하여 오디오 데이터(114A1)가 수신된다는 및/또는 임의의 다른 수단에 의해 수신된다는 결정에 응답하여 호출될 수 있다. 추가 또는 대체 구현에서, ASR 엔진(114B)은 클라이언트 장치(110)의 마이크로폰 중 하나 이상에 의해 생성된 오디오 데이터(114A1)를 지속적으로 프로세싱할 수 있다(클라이언트 장치(110)의 사용자가 오디오 데이터(114A1)의 지속적인 프로세싱에 동의했다고 가정).
또한, 음성 캡처/ASR/NLU/TSS 모듈(114)의 NLU 엔진(114C)은 음성 캡처/ASR/NLU/TSS 모듈(114)의 NLU 모델을 사용하여 ASR 출력(114B1)을 프로세싱하여 NLU 출력(114C1)을 생성할 수 있다. NLU 출력(114C1)은 예를 들어 사용자의 음성 발화에 대한 하나 또는 후보 의도, 하나 이상의 후보 의도 각각에 대한 하나 이상의 대응하는 예측 값(예: 확률, 로그 가능성 및/또는 기타 값), 하나 이상의 후보 의도와 연관된 하나 이상의 해당 파라미터에 대한 하나 이상의 슬롯 값, 및/또는 다른 NLU 출력을 포함할 수 있다. 또한, 자동화된 어시스턴트(120)는 NLU 출력(114C1)에 기초하여 클라이언트 장치(110)의 사용자를 대신하여 수행될 어시스턴트 명령을 결정할 수 있다. 동작 예로서, 사용자가 "Assistant, what is the weather in Louisville?(어시스턴트, 루이빌의 날씨는 어때?)"라는 음성 발화를 제공했다고 가정한다. 이 예에서, 도 2의 프로세스 흐름은 (예를 들어, 음성 발화가 용어 "어시스턴트"를 포함하는지를 결정하는 것에 기초하여) 자동화된 어시스턴트(120)에 대한 음성 발화를 결정하는 데 사용될 수 있고, 음성 발화가 날씨 의도와 연관된 위치 파라미터에 대한 [Louisville, KY]의 제1 슬롯 값과 날씨 의도와 연관된 시간 파라미터에 대한 [current time(현재 시간)]의 제2 슬롯 값을 갖는 날씨 의도를 포함하는지 결정할 수 있다. 따라서, 자동화된 어시스턴트(120)는 사용자의 음성 발화를 캡처하는 오디오 데이터(114A1)의 프로세싱에 기초하여 클라이언트 장치(110)의 사용자를 대신하여 수행될 어시스턴트 명령을 결정할 수 있다.
일부 구현에서, 레이턴시 예측 엔진(130)은 레이턴시 예측 모델을 사용하여 NLU 출력(114C1)을 프로세싱하여 자동화된 어시스턴트(120)가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시(130A)을 생성할 수 있다. 자동화된 어시스턴트(120)는 클라이언트 장치(110)를 제어하게 함으로써, 사용자의 다른 클라이언트 장치를 제어하게 함으로써, 및/또는 다른 이행을 수행함으로써, 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위한 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링함으로써 어시스턴트 명령을 이행할 수 있다. 본 명세서에 기술된 바와 같이, 예측된 레이턴시(130A)은 예를 들어 자동화된 어시스턴트(120)가 이행 요청을 생성하고, 이행 요청을 적절한 파티(예를 들어, 클라이언트 장치(110), 하나 이상의 제1-파티 서버(191), 하나 이상의 제3-파티 서버(192) 등이 액세스할 수 있는 하나 이상의 소프트웨어 애플리케이션(110B))에 전송하고, 이행이 수행되게 하는(예를 들어, 클라이언트 장치(110)가 제어되게 함으로써, 사용자의 다른 클라이언트 장치가 제어되게 함으로써, 및/또는 다른 이행을 수행함으로써, 클라이언트 장치(110)의 사용자에게 제공하기 위한 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링) 예측된 기간일 수 있다. 예를 들어, 레이턴시 예측 엔진(130)은 레이턴시 예측 모델을 사용하여 NLU 출력(114C1)에 포함된 의도(인텐트)를 프로세싱하여 예측된 레이턴시(130A)를 생성할 수 있다. 그 예 중 일부에서, 레이턴시 예측 엔진(130)은 레이턴시 예측 모델을 사용하여 NLU 출력(114C1)에 포함된 의도와 함께 NLU 출력(114C1)에도 포함된 의도와 연관된 하나 이상의 해당 파라미터에 대한 하나 이상의 슬롯 값을 프로세싱할 수 있다.
일부 추가 또는 대체 구현에서, 레이턴시 예측 엔진(130)은 레이턴시 예측 모델을 사용하여 NLU 출력(114C1)과 함께 ASR 출력(114B1)(예를 들어, ASR 출력(114B1)에서 레이턴시 예측 엔진(130)까지 점선으로 표시된 바와 같이)을 프로세싱하여 자동화된 어시스턴트(120)가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시(130A)을 생성할 수 있다. 일부 추가적인 또는 대안적인 구현에서, 레이턴시 예측 엔진(130)은 레이턴시 예측 모델을 사용하여 NLU 출력(114C1)과 함께 클라이언트 장치에 의해 생성된 하나 이상의 장치 신호(110C)를 프로세싱할 수 있다. 하나 이상의 장치 신호(110C)는 예를 들어 클라이언트 장치(110)의 하나 이상의 위치 센서에 의해 생성된 클라이언트 장치(110)의 위치, 클라이언트 장치(110)의 유형 (예: 모바일 장치, 차량 내 장치, 독립형 대화형 스피커 등), 클라이언트 장치(110)의 네트워크 연결 유형 및/또는 클라이언트 장치(110)의 환경 컨텍스트를 제공하는 다른 장치 신호를 포함할 수 있다.
다양한 구현에서, 레이턴시 예측 모델은 복수의 트레이닝 인스턴스를 기반으로 트레이닝된 ML 모델(예를 들어, 분류 모델, 결정 트리, 및/또는 예측된 레이턴시(130A)을 생성하도록 트레이닝될 수 있는 다른 ML 모델)일 수 있다. 각 트레이닝 인스턴스에는 트레이닝 인스턴스 입력 및 트레이닝 인스턴스 출력이 포함될 수 있다. 복수의 트레이닝 인스턴스의 특정 트레이닝 인스턴스에 대한 트레이닝 인스턴스 입력은 예를 들어, 특정 어시스턴트 명령에 대한 NLU 데이터(예를 들어, 의도, 의도와 연관된 파라미터(들)에 대한 슬롯 값(들) 및/또는 다른 NLU 데이터), 특정 어시스턴트 명령에 대한 ASR 데이터(예: 음성 가설(들) 및/또는 기타 ASR 데이터), 및/또는 특정 어시스턴트 명령이 수신되었을 때 클라이언트 장치(예를 들어, 클라이언트 장치(110) 및/또는 다른 클라이언트 장치)와 연관된 하나 이상의 장치 신호를 포함할 수 있다. 또한 트레이닝 인스턴스 출력에는 특정 어시스턴트 명령의 이행과 연관된 실측 레이턴시(ground truth latency)가 포함될 수 있다. 특정 트레이닝 인스턴스를 기반으로 레이턴시 예측 모델을 트레이닝함에 있어서, 트레이닝 인스턴스 입력은 레이턴시 예측 모델을 사용하여 프로세싱되어 특정 어시스턴트 명령의 이행과 연관된 예측된 레이턴시를 생성할 수 있다. 또한, 트레이닝 인스턴스 입력 프로세싱를 기반으로 생성된 예측된 레이턴시는 특정 어시스턴트 명령의 이행과 연관된 실측 레이턴시와 비교되어 하나 이상의 손실을 생성할 수 있다. 레이턴시 예측 모델은 특정 트레이닝 인스턴스에 대한 하나 이상의 손실을 기반으로 업데이트될 수 있다(예: 레이턴시 예측 모델에서 하나 이상의 손실을 역전파하여). 레이턴시 예측 모델은 하나 이상의 트레이닝 조건이 충족될 때까지 이러한 방식으로 트레이닝될 수 있다. 트레이닝 조건은 예를 들어 퍼포먼스 임계값(performance threshold)을 충족하는 레이턴시 예측 모델의 퍼포먼스(레이턴시 예측 모델은 트레이닝 인스턴스의 임계값 수량을 기반으로 트레이닝됨), 레이턴시 예측 모델을 트레이닝하는 시간의 임계 기간, 및/또는 다른 트레이닝 조건을 포함할 수 있다. 레이턴시 예측 모델은 하나 이상의 트레이닝 조건이 충족될 때 클라이언트 장치(110) 및/또는 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)에 의한 사용을 위해 배치될 수 있다.
프리캐시 엔진(140)은 이행 요청에 응답하는 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링하기 전에, 클라이언트 장치(110)에 의해 수행되는 동작 이전 및/또는 사용자의 다른 클라이언트 장치에서 동작을 수행하기 전에, 예측된 레이턴시(130A)에 기초하여 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링할지 여부를 결정할 수 있다. 또한, 프리캐시 엔진(140)이 미리 캐싱된 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링하기로 결정한다고 가정하면, 프리캐시 엔진(140)은 예측된 레이턴시(130A)에 기초하여 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위해 어떤 미리 캐싱된 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링할지 결정할 수 있다. 미리 캐싱된 콘텐츠는 클라이언트 장치(110)에 로컬로 저장될 수 있는(예를 들어, 미리 캐싱된 콘텐츠 데이터베이스(140A)에서) 반면, 이행 요청에 응답하는 콘텐츠는 클라이언트 장치(110)에서 로컬로 획득되고(예를 들어, 하나 이상의 소프트웨어 애플리케이션(110B)을 통해) 및/또는 원격 시스템(예를 들어, 제1-파티 서버(191) 및/또는 제3-파티 서버(192) 중 하나 이상)으로부터 획득될 수 있다.
일부 구현에서, 미리 캐싱된 콘텐츠 데이터베이스(140A)는 이종 유형(disparate types)의 어시스턴트 명령을 위한 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트를 포함할 수 있다. 이종 유형의 어시스턴트 명령에 대한 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 각각은 상이한 기간(durations of time)에 동안 렌더링될 수 있다. 즉, 상이한 유형의 어시스턴트 명령에 대한 미리 캐싱된 콘텐츠의 복수의 상이한 세그먼트 각각은 상이한 길이일 수 있고 예측된 레이턴시(130A)에 기초하여 선택될 수 있다. 예를 들어 날씨 명령의 경우, 미리 캐싱된 콘텐츠 데이터베이스(140A)는 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 기간이 걸리는 미리 캐싱된 콘텐츠의 제1 세그먼트를 포함할 수 있고, 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 기간보다 긴 제2 기간이 걸리는 미리 캐싱된 콘텐츠의 제2 세그먼트, 클라이언트 장치(110)에서 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 및 제2 기간 모두보다 더 긴 제3 기간이 걸리는 미리 캐싱된 콘텐츠의 제3 세그먼트 등을 포함할 수 있다. 이 예에서, 미리 캐싱된 콘텐츠의 제1 세그먼트는 예측된 레이턴시(130A)이 제1 레이턴시 임계값을 충족하지 못할 때 선택될 수 있고, 미리 캐싱된 콘텐츠의 제2 세그먼트는 예측된 레이턴시(130A)이 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값을 충족하지 못할 때 선택될 수 있고, 미리 캐싱된 콘텐츠의 제3 세그먼트는 예측된 레이턴시(130A)이 제1 레이턴시 임계값 및 제2 레이턴시 임계값 등을 충족할 때 선택될 수 있다.
다른 유형의 어시스턴트 명령은 미리 캐싱된 다른 콘텐츠와 연관될 수 있다. 예를 들어 IoT 장치 제어 명령의 경우, 미리 캐싱된 콘텐츠 데이터베이스(140A)는 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 기간이 걸리는 미리 캐싱된 콘텐츠의 제1 대체 세그먼트(예: 날씨 명령의 제1 기간이 같을 수도 있고 그렇지 않을 수도 있음), 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 기간보다 더 긴 제2 기간이 걸리는 미리 캐싱된 콘텐츠의 제2 대체 세그먼트(예: 날씨 명령에 대해 동일한 제2 기간일 수도 있고 아닐 수도 있음), 클라이언트 장치(110)에서 가청적으로 렌더링되는 데 제1 기간 및 제2 기간 모두보다 더 긴 제3 기간이 걸리는 미리 캐싱된 콘텐츠의 제3 대체 세그먼트 등(예: 날씨 명령에 대해 동일한 제3 기간일 수도 있고 아닐 수도 있음)을 포함할 수 있다. 이 예에서, 미리 캐싱된 콘텐츠의 제1 대체 세그먼트는 예측된 레이턴시(130A)이 제1 레이턴시 임계값을 충족하지 못할 때 선택될 수 있고(예: 날씨 명령에 대한 제1 레이턴시 임계값이 같을 수도 있고 아닐 수도 있음), 예측된 레이턴시(130A)이 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값을 충족하지 못하는 경우 미리 캐싱된 콘텐츠의 제2 대체 세그먼트가 선택될 수 있고(예: 날씨 명령에 대한 동일한 제2 레이턴시 임계값일 수도 있고 아닐 수도 있음), 미리 캐싱된 콘텐츠의 제3 세그먼트는 예측된 레이턴시(130A)이 제1 레이턴시 임계값 및 제2 레이턴시 임계값 등을 충족할 때 선택될 수 있다.
위의 동작 예에서 계속해서, 날씨 명령에 대해, 미리 캐싱된 콘텐츠의 제1 세그먼트는 "[LOCATION] weather [TIME] is [FULFILLMENT INFORMATION]([위치] 날씨 [시간]은 [이행 정보]입니다)"에 해당하고, 미리 캐싱된 콘텐츠의 제2 세그먼트는 "The weather in beautiful [LOCATION] [TIME] is [FULFILLMENT INFORMATION](아름다운 [장소] [시간]의 날씨는 [이행 정보]입니다"에 해당하고, 미리 캐싱된 콘텐츠의 제3 세그먼트는 "Okay, the radar shows that the weather in [LOCATION] [TIME] is [FULFILLMENT INFORMATION](오케이, 레이더는 [위치] [시간]의 날씨는 [이행 정보]임을 보여줍니다)에 해당한다고 가정한다. 이 예에서, "[LOCATION] weather [TIME] is [FULFILLMENT INFORMATION]"에 해당하는 제1 미리 캐싱된 세그먼트는 예측된 레이턴시(130A)가 제1 레이턴시 임계값을 충족하지 못한다고 가정하여 선택될 수 있으며, "The weather in beautiful [LOCATION] [TIME] is [FULFILLMENT INFORMATION]"에 해당하는 제2 미리 캐싱된 세그먼트는 예측된 레이턴시(130A)가 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값은 충족하지 않는다고 가정하여 선택될 수 있고, "Okay, the radar shows that the weather in [LOCATION] [TIME] is [FULFILLMENT INFORMATION]"에 해당하는 제3 미리 캐싱된 세그먼트는 예측된 레이턴시(130A)가 제1 레이턴시 임계값 및 제2 레이턴시 임계값 모두를 충족한다고 가정하여 선택될 수 있다. 예를 들어, 예측된 레이턴시(130A)가 수신된 날씨 명령에 대한 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족한다고 가정하고, "Okay, the radar shows that the weather in [LOCATION] [TIME] is [FULFILLMENT INFORMATION]"에 해당하는 제3 미리 캐싱된 세그먼트가 클라이언트 장치(110)의 사용자에게 청각적(가청적) 및/또는 시각적 프레젠테이션을 위한 미리 캐싱된 콘텐츠(140A)로서 선택되도록 한다.
필러 엔진(150)은 선택된 미리 캐싱된 콘텐츠(140A)의 하나 이상의 파라미터를 음성 발화에 기초하여 결정되고 및/또는 음성 발화에 기초하여 추론된 슬롯 값으로 채움으로써(filling) 미리 캐싱된 콘텐츠(140A)를 어시스턴트 명령에 테일러(tailor)한다. 다시 말해서, 필러 엔진(150)은 음성 발화에서 하나 이상의 용어를 식별하고 그리고 미리 캐싱된 콘텐츠에 이러한 용어를 삽입하여, 선택된 미리 캐싱된 콘텐츠(140A)가 음성 발화에 기초하여 결정된 어시스턴트 명령에 테일러드(tailored)될 수 있도록 한다. 미리 캐싱된 콘텐츠에 삽입되는 용어는 음성 발화에 포함된 어시스턴트 명령을 기반으로 할 수 있다. 동작 예제를 계속하면, 필러 엔진(150)은 [LOCATION]가 "루이빌(Louisville)"에 해당하고, 그리고 [TIME]이 "현재 시간"에 해당함을 결정할 수 있으며, 그 결과 "Okay, the radar shows that the weather in Louisville right now is [FULFILLMENT INFORMATION]"의 미리 캐싱된 콘텐츠(150A)가 채워진다.
일부 구현에서, 음성 캡처/ASR/NLU/TSS 모듈(114)의 TTS 엔진(114D)은 ML 모델(들) 데이터베이스(110A)에 저장된 TTS 모델을 사용하여, 채워진 미리 캐싱된 콘텐츠(150A)에 대응하는 합성된 음성(114D1)을 포함하는 합성된 음성 오디오 데이터를 생성하기 위해 채워진 미리 캐싱된 콘텐츠(150A)를 프로세싱한다. 채워진 미리 캐싱된 콘텐츠(150A)를 포함하는 합성된 음성(114D1)은 채워진 미리 캐싱된 콘텐츠(150A)가 생성될 때 클라이언트 장치(110)의 하나 이상의 스피커를 통해 가청적으로 렌더링될 수 있다. 추가적인 또는 대안적인 구현에서, 전사(transcription) 엔진(미도시)은 채워진 미리 캐싱된 콘텐츠(150A)가 생성될 때 채워진 미리 캐싱된 콘텐츠(150A)에 대응하는 전사가 클라이언트 장치(110)의 디스플레이를 통해 시각적으로 렌더링되게 할 수 있다.
특히, 채워진 미리 캐싱된 콘텐츠(150A)를 생성하기 위해 NLU 출력(114C1)이 전술한 다양한 엔진에 의해 프로세싱됨에 따라 NLU 출력(114C1)은 이행 엔진(160)에 의해 병렬로 프로세싱될 수 있다. 이행 엔진(160A)은 NLU 출력(114C1)을 프로세싱하여 이행 데이터(160A)를 생성할 수 있다. 이행 엔진(160A)은 클라이언트 장치(110), 하나 이상의 제1-파티 서버(191) 및/또는 하나 이상의 제3-파티 서버(192)에 의해 액세스 가능한 하나 이상의 소프트웨어 애플리케이션(110B)에 이행 데이터(160A)를 전송할 수 있다. NLU 출력(114C1)에 기초하여 생성된 이행 데이터(160A)는 (예를 들어, ASR 엔진(114B)을 사용하여 생성된) 어시스턴트 명령에 대응하는 텍스트, 어시스턴트 명령의 의도(예를 들어, NLU 엔진(114C)를 사용하여 결정됨), (예를 들어, NLU 엔진(114C)을 사용하여 결정된) 어시스턴트 명령의 의도와 연관된 파라미터(들)에 대한 슬롯 값(들) 및/또는 다른 데이터와 같은, 어시스턴트 명령을 나타내는 데이터를 포함할 수 있다. 동작 예제를 계속하면, 자동화된 어시스턴트(120)는 이행 데이터(160A)가 날씨 서비스 엔진(예를 들어, 하나 이상의 소프트웨어 애플리케이션(110B), 제1-파티 서버(191) 및/또는 하나 이상의 제3-파티 서버(192)에서 실행)으로 전송되게 하여 음성 발화에 응답하여 사용자에게 제시될 콘텐츠(160B)를 획득할 수 있다. 콘텐츠(160B)는 동작 예의 선택된 미리 캐싱된 콘텐츠(140A)에 포함된 [FULFILLMENT INFORMATION]에 대응할 수 있다. 다양한 구현에서, 이행 데이터(160A)는 채워진 미리 캐싱된 콘텐츠(150A)가 현재 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위해 가청적으로 및/또는 시각적으로 렌더링되고 있고 그리고 콘텐츠(160B)가 더 간결할 수 있다는 표시(예: [LOCATION] 또는 [TIME] 정보를 포함하지 않고 온도 및 기타 날씨 정보만 다시 전송)와 함께 전송될 수 있다.
일부 구현에서, 음성 캡처/ASR/NLU/TSS 모듈(114)의 TTS 엔진(114D)은, ML 모델(들) 데이터베이스(110A)에 저장된 TTS 모델을 사용하여, 콘텐츠(160A)를 프로세싱하여, 클라이언트 장치(110)의 하나 이상의 스피커를 통해 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위해 현재 렌더링되고 있는 합성된 음성(114D1)에 콘텐츠(160B)를 추가하는 추가적인 합성된 음성 오디오 데이터를 생성할 수 있다. 따라서, 채워진 미리 캐싱된 콘텐츠(150A)(예, “Okay, the radar shows that the weather in Louisville right now is …”)를 포함하는 합성된 음성(114D1)의 초기 부분이 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될때까지, 콘텐츠(160B)(예: "… 55도(55 degrees) 및 맑음(sunny)")를 포함하는 합성된 음성(114D1)의 후속 부분은 합성된 음성(114D1)의 초기 부분과 합성된 음성(114D1)의 후속 부분이 사용자의 관점에서 자동화된 어시스턴트(120)로부터의 합성된 음성의 단일 인스턴스로 나타나도록 초기 부분 바로 다음에 가청적으로 렌더링되어야 한다. 추가적인 또는 대안적인 구현에서, 전사 엔진(미도시)은 콘텐츠(160B)에 대응하는 전사가 채워진 미리 캐싱된 콘텐츠(150A)의 전사 직후에 클라이언트 장치(110)의 디스플레이를 통해 시각적으로 렌더링되게 할 수 있다.
일부 구현들에서, 이행 엔진(160)은 음성 발화에 포함된 어시스턴트 명령을 이행하는 것과 연관된 실제 레이턴시(160B)을 결정할 수 있다. 업데이트 엔진(170)은 레이턴시 예측 모델에 대한 업데이트(170A)를 결정하기 위해 예측된 레이턴시(160A)를 실제 레이턴시(160B)와 비교할 수 있다. 업데이트(170A)는 예를 들어 레이턴시 예측 모델을 트레이닝하기 위한 하나 이상의 손실을 생성하는 것과 관련하여 위에서 설명한 것과 동일하거나 유사한 방식으로 생성되는 레이턴시 예측 모델에 대한 하나 이상의 손실일 수 있다. 업데이트 엔진(170)은 후속적으로 레이턴시 예측 모델이 업데이트(170A)에 기초하여 업데이트되게 할 수 있다(예를 들어, 레이턴시 예측 모델에 걸쳐 하나 이상의 손실을 역전파함으로써).
도 2는 날씨 명령을 프로세싱하는 것과 관련하여 본 명세서에서 설명되지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 본 명세서에 기술된 기술은 공개 및/또는 개인 정보에 대한 검색 쿼리 명령, IoT 장치 제어 명령, 어시스턴트 루틴 명령, 내비게이션 명령, 미디어 명령, 소프트웨어 애플리케이션 제어 명령 및/또는 자동화된 어시스턴트에게 전달되는 기타 어시스턴트 명령을 포함하는(이에 제한되지 않음), 특정 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여 임의의 어시스턴트 명령의 이행 전에 미리 캐싱된 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링하는 데 사용될 수 있다.
여기에 설명된 기술을 사용함으로써 하나 이상의 기술적 이점을 획득할 수 있다. 비제한적인 예로서, 본 명세서에 기술된 기술은 자동화된 어시스턴트가 콘텐츠를 획득하는 동안 어시스턴트 명령에 테일러드된(tailored) 미리 캐싱된 콘텐츠를 렌더링할 수 있게 하며, 따라서 자동화된 어시스턴트와 사용자 간의 인간 대 컴퓨터 대화를 더 빠르고 효율적인 방식으로 마무리한다. 예를 들어, 자동화된 어시스턴트는 음성 발화에 응답하는 특정 콘텐츠가 클라이언트 장치에서 획득되기를 기다리기 전에, 어시스턴트 명령에 테일러드된(tailored) 미리 캐싱된 콘텐츠로 음성 발화에 포함된 어시스턴트 명령에 응답하기 시작할 수 있다. 다른 비제한적 예로서, 본 명세서에 기술된 기술은 자동화된 어시스턴트가 빠르고 효율적인 방식으로 어시스턴트 명령을 수신했다는 표시를 사용자에게 제공할 수 있게 하며, 따라서 사용자가 어시스턴트 명령을 포함하는 음성 발화를 반복하는 발생 횟수를 줄인다. 다른 비제한적 예로서, 어시스턴트 명령에 응답하는 콘텐츠에 대한 요청은 더 적은 정보를 요청할 수 있으므로, 하나 이상의 네트워크를 통해 전송되는 정보의 크기를 줄이고 더 적은 네트워크 리소스를 소비한다.
도 3을 참조하면, 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 예시적인 방법(300)을 예시하는 흐름도가 묘사된다. 편의상, 방법(300)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 하나 이상의 프로세서, 메모리, 및/또는 컴퓨팅 장치(들)(예를 들어, 도 1의 클라이언트 장치(110), 도 5a, 5b 및 5c의 클라이언트 장치(510) 및/또는 도 6의 컴퓨팅 장치(610), 하나 이상의 서버 및/또는 다른 컴퓨팅 장치)의 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(300)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한을 의미하지 않는다. 하나 이상의 동작을 재정렬, 생략 및/또는 추가할 수 있다.
블록(352)에서, 시스템은 사용자의 음성 발화(spoken utterance)를 캡처하는 오디오 데이터를 수신하며, 오디오 데이터는 사용자의 클라이언트 장치의 하나 이상의 마이크로폰에 의해 생성된다. 블록(354)에서, 시스템은 오디오 데이터 프로세싱에 기초하여 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정한다. 예를 들어, 시스템은 ASR 모델을 사용하여 음성 발화를 캡처한 오디오 데이터를 프로세싱하여 ASR 출력을 생성할 수 있고, 시스템은 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력을 생성할 수 있다. 시스템은 ASR 출력 및/또는 NLU 출력을 기반으로 어시스턴트 명령을 결정할 수 있다. 일부 구현에서, 시스템은 자동화된 어시스턴트가 호출된 후에 오디오 데이터가 수신되었다는 결정에 응답하여 오디오 데이터를 프로세싱할 수 있다.
블록(356)에서, 시스템은 레이턴시 예측 모델을 사용하여, 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하기 위해 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 프로세싱한다. 자동화된 어시스턴트는 클라이언트 장치를 제어하게 함으로써, 사용자의 다른 클라이언트 장치를 제어하게 함으로써, 및/또는 다른 이행을 수행함으로써, 클라이언트 장치의 사용자에게 프레젠테이션하기 위한 콘텐츠를 가청적으로 및/또는 시각적으로 렌더링함으로써 어시스턴트 명령을 이행할 수 있다. 예측된 레이턴시는 예를 들어 자동화된 어시스턴트가 이행 요청을 생성하고 이행 요청을 적절한 파티(예: 클라이언트 장치에서 액세스할 수 있는 하나 이상의 소프트웨어 애플리케이션, 하나 이상의 원격 시스템 등)에게 전송하고 이행이 수행되도록 하는 예측된 기간(duration of time)일 수 있다. 예를 들어, 시스템은 레이턴시 예측 모델을 사용하여, 예측된 레이턴시를 생성하기 위해 음성 발화가 수신되었을 때 ASR 출력, NLU 출력, 및/또는 클라이언트 장치와 연관된 하나 이상의 장치 신호를 프로세싱할 수 있다.
블록(358)에서, 시스템은 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정한다. 미리 캐싱된 콘텐츠는 사용자의 클라이언트 장치에 로컬로 저장할 수 있다. 음성 발화에 응답하는 콘텐츠는 클라이언트 장치 및/또는 하나 이상의 원격 시스템(예를 들어, 도 1의 제1-파티 서버(191) 또는 제3-파티 서버(192) 중 하나 이상)에서 액세스할 수 있는 하나 이상의 소프트웨어 애플리케이션에서 획득할 수 있다. 일부 구현에서, 시스템은 블록 356에서 생성된 예측된 레이턴시에 기초하여 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정할 수 있다. 예를 들어, 시스템은 하나 이상의 레이턴시 임계값을 충족하지 못하는 블록(356)에서 생성된 예측된 레이턴시에 기초하여 및/또는 레이턴시 임계값 중 하나 이상을 충족시키는 블록(356)에서 생성된 예측된 레이턴시에 기초하여 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하도록 결정할 수 있다. 블록(358)의 반복에서, 시스템이 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하면, 시스템은 블록(360)으로 진행할 수 있다.
블록(360)에서, 시스템은 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 세그먼트를 선택한다. 특히, 미리 캐싱된 콘텐츠의 세그먼트가 선택되는 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트는 어시스턴트 명령에 특정될 수 있다. 즉, 각각의 유형의 어시스턴트 명령은 미리 캐싱된 콘텐츠의 복수의 해당 이종 세그먼트와 연관될 수 있다. 예를 들어, 날씨 명령은 미리 캐싱된 콘텐츠의 제1 복수의 이종(서로 다른) 세그먼트와 연관될 수 있고, IoT 장치 제어 명령은 미리 캐싱된 콘텐츠의 제2 복수의 서로 다른 세그먼트와 연관될 수 있ㄱ고, 검색 쿼리 명령은 미리 캐싱된 콘텐츠의 제3 복수의 서로 다른 세그먼트 등과 연관될 수 있다.
블록(360)의 동작의 비제한적인 일례로서, 도 4를 참조하면, 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여 사용자에게 제시될 미리 캐싱된 콘텐츠를 선택하는 예시적인 방법(360A)이 묘사된다. 블록(452)에서, 시스템은 예측된 레이턴시가 제1 레이턴시 임계값을 충족하는지 여부를 결정한다. 블록(452)의 반복에서, 시스템이 예측된 레이턴시가 제1 레이턴시 임계값을 충족하지 않는다고 결정하면, 시스템은 블록(454)으로 진행한다. 블록(454)에서, 시스템은 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 복수의 세그먼트 중에서 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택한다. 미리 캐싱된 콘텐츠의 제1 세그먼트는 미리 캐싱된 콘텐츠의 제1 세그먼트가 사용자에게 프레젠테이션하기 위해 가청적으로 및/또는 시각적으로 렌더링하는 데 제1 기간이 걸리도록 제1 길이를 가질 수 있다. 일부 구현에서, 미리 캐싱된 콘텐츠의 제1 세그먼트는 "Okay, [FULFILLMENT INFORMATION]"와 같은 미리 캐싱된 콘텐츠의 기본 세그먼트일 수 있다. 블록 452의 반복에서, 시스템이 예측된 레이턴시가 제1 레이턴시 임계값을 충족한다고 결정하면 시스템은 블록 456으로 진행한다.
블록(456)에서, 시스템은 예측된 레이턴시가 제2 레이턴시 임계값을 충족하는지 여부를 결정한다. 블록(456)의 반복에서, 시스템이 예측된 레이턴시가 제2 레이턴시 임계값을 충족하지 않는다고 결정하면, 시스템은 블록(458)으로 진행한다. 블록(458)에서, 시스템은 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 복수의 세그먼트 중에서 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택한다. 미리 캐싱된 콘텐츠의 제2 세그먼트는 미리 캐싱된 콘텐츠의 제2 세그먼트가 사용자에게 프레젠테이션하기 위해 가청적으로 및/또는 시각적으로 렌더링하는 데 제2 기간이 걸리도록 제2 길이를 가질 수 있다. 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 길이는 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 길이보다 길 수 있다. 그 결과, 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠의 제2 세그먼트를 가청적으로 및/또는 시각적으로 렌더링하는 제2 기간은 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 기간보다 길 수 있다. 블록(456)의 반복에서, 시스템이 예측된 레이턴시가 제2 레이턴시 임계값을 충족한다고 결정하면, 시스템은 블록(460)으로 진행한다.
블록(460)에서, 시스템은 미리 캐싱된 콘텐츠의 복수의 세그먼트 중에서 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제3 세그먼트를 선택한다. 미리 캐싱된 콘텐츠의 제3 세그먼트는 미리 캐싱된 콘텐츠의 제3 세그먼트가 사용자에게 프레젠테이션하기 위해 가청적으로 및/또는 시각적으로 렌더링하는 데 제3 기간이 걸리도록 제3 길이일 수 있다. 미리 캐싱된 콘텐츠의 제3 세그먼트와 연관된 제3 길이는 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 길이 및 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 길이보다 길 수 있다. 결과적으로, 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠의 제3 세그먼트를 가청적으로 및/또는 시각적으로 렌더링하는 제3 기간(duration of time)은 미리 캐싱된 콘텐츠의 제1 세그먼트와 연관된 제1 기간 및 미리 캐싱된 콘텐츠의 제2 세그먼트와 연관된 제2 기간보다 길수 있다.
도 4의 방법(360A)이 특정 레이턴시 임계값(예를 들어, 제1 레이턴시 임계값 및 제2 레이턴시 임계값)와 관련하여 설명되지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 미리 캐싱된 콘텐츠의 세그먼트를 선택하는 데 임의의 양의 레이턴시 임계값을 활용할 수 있다. 또한 이러한 레이턴시 임계값은 서로 다른 어시스턴트 명령에 대해 동일하거나 다를 수 있다. 예를 들어, 날씨 명령에 대한 제1 레이턴시 임계값은 500밀리초일 수 있는 반면, IoT 장치 제어 명령에 대한 제1 레이턴시 임계값은 750밀리초일 수 있다. 다른 예로서, 날씨 명령과 IoT 장치 제어 명령 모두에 대한 제1 레이턴시 임계값은 둘 다 500밀리초일 수 있다. 따라서, 시스템은 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여 어시스턴트 명령에 테일러(tailor)하기 위해 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 동적으로 선택할 수 있다.
도 3을 참조하면, 블록(362)에서, 시스템은 미리 캐싱된 콘텐츠의 선택된 세그먼트가 어시스턴트 명령에 테일러드되도록 한다. 미리 캐싱된 콘텐츠의 선택된 세그먼트는 어시스턴트 명령에 기초하여 결정되고 및/또는 어시스턴트 명령에 기초하여 추론되는 슬롯 값으로 채워질 수 있는 하나 이상의 파라미터를 포함할 수 있다(예를 들어, 도 2와 관련하여 설명된 동작 예에 대한 [LOCATION] 및 [TIME]의 파라미터). 시스템은 이러한 슬롯 값(들)을 파라미터(들)에 삽입할 수 있으므로 미리 캐싱된 콘텐츠의 테일러드(tailored)(또는 채워진(filled)) 선택된 세그먼트가 생성된다.
블록(364)에서, 시스템은 미리 캐싱된 콘텐츠의 테일러드(tailored) 선택된 세그먼트가 사용자에게 프레젠테이션하기 위해 렌더링되게 한다. 일부 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트는 클라이언트 장치 또는 추가 클라이언트 장치의 하나 이상의 스피커를 통해 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다. 이러한 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트는 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트에 대응하는 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델을 사용하여 프로세싱될 수 있다. 추가적인 또는 대안적인 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트는 클라이언트 장치 또는 추가 클라이언트 장치의 디스플레이를 통해 사용자에게 프레젠테이션하기 위해 시각적으로 렌더링될 수 있다. 이러한 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트에 대응하는 전사가 클라이언트 장치에서의 디스플레이를 위해 제공될 수 있다(그리고 선택적으로 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트에 해당하는 임의의 합성된 음성이 들을 수 있도록 스트리밍 방식으로 동시에 렌더링됨).
블록(358)의 반복에서, 시스템이 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하지 않기로 결정하면, 시스템은 블록(366)으로 진행할 수 있다. 블록(366)에서, 시스템은 클라이언트 장치 및/또는 원격 시스템으로부터 음성 발화에 응답하는 콘텐츠를 획득한다. 시스템은 콘텐츠를 획득하기 위한 요청을 생성하고 어시스턴트 명령에 따라 적절한 채널(예: 클라이언트 장치에서 액세스할 수 있는 하나 이상의 소프트웨어 애플리케이션, 하나 이상의 제1-파티 서버, 하나 이상의 제3-파티 서버 등)로 요청을 전송하고 적절한 채널에서 콘텐츠를 수신할 수 있다. 특히, 시스템이 음성 발화에 응답하는 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정할 때에도, 시스템은 블록 360에서 블록 366으로 진행할 수 있다. 따라서, 시스템이 음성 발화에 응답하는 콘텐츠를 획득할 때 시스템은 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠의 테일러드로(tailored) 선택된 세그먼트를 선택하고 렌더링할 수 있다.
블록 368에서, 시스템은 콘텐츠가 사용자에게 프레젠테이션하기 위해 렌더링되게 한다. 일부 구현에서, 콘텐츠는 클라이언트 장치 또는 추가 클라이언트 장치의 하나 이상의 스피커를 통해 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다. 이러한 구현에서, TTS 모델을 사용하여 콘텐츠를 프로세싱하여 콘텐츠에 대응하는 합성된 음성을 포함하는 추가 합성된 음성 오디오 데이터를 생성할 수 있다. 추가적인 또는 대안적인 구현에서, 콘텐츠는 클라이언트 장치 또는 추가적인 클라이언트 장치의 디스플레이를 통해 사용자에게 프레젠테이션하기 위해 시각적으로 렌더링될 수 있다. 이러한 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트에 대응하는 전사가 클라이언트 장치에서의 디스플레이를 위해 제공될 수 있다(그리고 선택적으로 미리 캐싱된 콘텐츠의 테일러드(tailored) 선택된 세그먼트에 해당하는 임의의 합성된 음성이 들을 수 있도록 스트리밍 방식으로 동시에 렌더링됨).
특히, 블록(364)에서 사용자에게 프레젠테이션하기 위해 렌더링된 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트 및 블록(368)에서 사용자에게 프레젠테이션하기 위해 렌더링된 콘텐츠는 사용자의 관점에서 콘텐츠의 단일 인스턴스로 나타나도록 렌더링될 수 있다(예: 점선 상자로 표시된 대로). 예를 들어, 예측된 레이턴시를 기반으로 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 세그먼트를 선택함으로써, 시스템은 미리 캐싱된 콘텐츠의 테일러드된 세그먼트가 사용자에게 프레젠테이션하기 위해 렌더링을 완료할 때까지 적절한 채널에서 콘텐츠를 획득해야 하며, 미리 캐싱된 콘텐츠의 미리 캐싱된 테일러드된 세그먼트 및 콘텐츠가 콘텐츠의 단일 세그먼트인 것처럼 보이는 방식으로 콘텐츠가 합성된 음성 및/또는 전사에 추가될 수 있다.
일부 구현에서, 시스템은 사용자가 음성 발화를 완료했다는 결정에 응답하여 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트가 렌더링되어 사용자에게 표시되도록 할 수 있다. 시스템은 예를 들어 사용자가 음성 발화를 제공하는 것을 완료한 시점을 결정하도록 트레이닝된 종단 포인팅(end pointing) 모델을 사용하여 사용자가 발화를 완료했는지 결정할 수 있다. 이러한 구현의 일부 버전에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트의 렌더링을 시작하기 전에 콘텐츠가 블록(366)에서 획득되면, 그런 다음 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트는 폐기될 수 있고 콘텐츠는 인간 대 컴퓨터 대화의 길이를 줄이기 위해 렌더링될 수 있다.
블록(370)에서, 시스템은 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 실제 레이턴시에 기초하여 레이턴시 예측 모델이 업데이트되게 한다. 예를 들어, 자동화된 어시스턴트가 어시스턴트 명령을 수행하는 데 예상되는 레이턴시는 900밀리초이지만 자동화된 어시스턴트가 어시스턴트 명령을 수행하는 실제 레이턴시는 500밀리초에 불과하다고 가정한다. 이 예에서 예측된 레이턴시는 하나 이상의 손실을 생성하기 위해 실제 레이턴시와 비교될 수 있으며 레이턴시 예측 모델은 하나 이상의 손실을 기반으로 업데이트될 수 있다. 특히, 이 예에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트가 사용자에게 프레젠테이션하기 위해 완전히 렌더링되기 전에 콘텐츠가 획득될 수 있다. 일부 구현에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트의 렌더링은 콘텐츠를 렌더링하기 위해 중단될 수 있는 반면, 다른 구현에서는 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트의 렌더링이 콘텐츠를 렌더링하기 위해 중단되지 않을 수 있다. 또 다른 예로, 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 예상 레이턴시는 500밀리초에 불과하지만 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위한 실제 레이턴시는 900밀리초라고 가정한다. 이 예에서, 예측된 레이턴시는 하나 이상의 손실을 생성하기 위해 실제 레이턴시와 비교될 수 있으며 레이턴시 예측 모델은 하나 이상의 손실을 기반으로 업데이트될 수 있다. 특히, 이 예에서, 미리 캐싱된 콘텐츠의 테일러드 선택된 세그먼트(tailored selected segment)가 사용자에게 프레젠테이션하기 위해 이미 충분히 렌더링된 후에 콘텐츠가 획득될 수 있다. 일부 구현에서, 미리 캐싱된 콘텐츠의 추가적인 테일러드 선택된 세그먼트는 콘텐츠 렌더링에서 임의의 원치 않는 갭을 채우기 위해 여기에 설명된 것과 동일하거나 유사한 방식으로 생성될 수 있는 반면에, 다른 구현에서, 콘텐츠의 렌더링은 미리 캐싱된 콘텐츠의 추가적인 테일러드 선택된 세그먼트를 생성하지 않고 수신될 때 제공될 수 있다. 시스템은 블록(352)으로 돌아가서 사용자의 추가 음성 발화를 캡처하는 추가 오디오 데이터를 수신하면 방법(300)의 후속 반복을 수행할 수 있다.
도 3의 방법(300)은 음성 발화에 응답하는 콘텐츠를 렌더링하는 것과 관련하여 기술되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어 사용자가 "Hypothetical Cafe"라는 가상 레스토랑의 레스토랑 예약 페이지와 같은 특정 상태에 레스토랑 예약 애플리케이션을 시작하기 위해 음성 발화를 제공한다고 가정한다. 이 예에서, 테일러드 선택된 세그먼트는 예를 들어 "Okay, launching the restaurant reservation application to Hypothetical Cafe(오케이, 가상 카페에 대한 레스토랑 예약 애플리케이션을 실행)"일 수 있고 사용자에게 프레젠테이션하기 위해 렌더링될 콘텐츠는 로드된 레스토랑 예약 페이지일 수 있다. 또 다른 예로, 사용자가 화씨 375도와 같은 특정 온도로 스마트 오븐을 예열하기 위해 음성 발화를 제공한다고 가정한다. 이 예에서, 테일러드 선택된 세그먼트는 예를 들어 "Preheating the oven to 375 degrees Fahrenheit for you(당신을 위해 오븐을 화씨 375도로 예열하기)"일 수 있고, 사용자에게 프레젠테이션하기 위해 렌더링될 콘텐츠는 스마트 오븐에서 원하는 온도로 예열을 시작했다는 가청 표시(audible indication)일 수 있다.
도 5a, 5b 및 5c에 도시된 바와 같이, 자동화된 어시스턴트가 다양한 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여 사용자(501)에게 프리젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하는 클라이언트 장치(510)의 다양한 비제한적인 예가 묘사된다. 클라이언트 장치(510)는 음성 발화 및/또는 다른 가청 입력(audible input)에 기초하여 오디오 데이터를 생성하기 위한 마이크로폰(들), 합성된 음성 및/또는 기타 가청 출력을 가청적으로 렌더링하는 스피커(들) 및/또는 전사 및/또는 다른 시각적 출력을 시각적으로 렌더링하는 디스플레이(580)를 포함할 수 있다. 도 5a, 5b 및 도 5c에 도시된 클라이언트 장치(510)는 디스플레이를 갖는 독립형 클라이언트 장치이고, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 클라이언트 장치(510)는 모바일 장치, 디스플레이가 없는 독립형 스피커, 홈 오토메이션 장치, 차량 내 시스템, 랩탑, 데스크탑 컴퓨터, 및/또는 사용자(501)와의 인간 대 컴퓨터 대화 세션에 참여하기 위해 자동화된 어시스턴트를 실행할 수 있는 임의의 다른 장치일 수 있다.
도 5a에서, 사용자(501)가 "Assistant, how's the weather looking for my trip to Estes Park in three weeks?(어시스턴트, 3주 후 에스테스 파크로의 여행을 위한 날씨는 어떻습니까?)"의 음성 발화(552A1)를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 음성 발화(552A1)를 캡처하는 오디오 데이터가 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 프로세싱되게 할 수 있다. 또한 자동화된 어시스턴트는 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력을 생성할 수 있다. 또한 자동화된 어시스턴트는 이행 데이터를 생성하기 위해 NLU 출력을 프로세싱하도록 할 수 있다. 자동화된 어시스턴트는 이행 데이터를 기반으로 음성 발화에 응답하는 콘텐츠에 대한 요청을 생성할 수 있다. 이 예에서, 요청은 "CO", "Estes Park"의 값을 갖는 [LOCATION] 파라미터 및 3주 값을 갖는 [TIME] 파라미터와 연관된 날씨 요청일 수 있다. 요청은 552A2로 표시된 적절한 채널로 전송될 수 있다. 도 5a의 예에서, 적절한 채널은 원격 시스템(예를 들어, 도 1의 하나 이상의 제3-파티 서버(192))에 의해 호스팅되는 날씨 서비스일 가능성이 있다.
요청에 응답하는 클라이언트 장치(510)에서 콘텐츠가 수신되기를 기다리는 동안, 자동화된 어시스턴트는 동시에 자동화된 어시스턴트가 날씨 명령을 이행하기 위한 예상 기간과 연관된 예상 레이턴시를 결정할 수 있으며, 예측된 레이턴시에 기초하여 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되게 할지 여부를 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 레이턴시 예측 모델을 사용하여, 음성 발화(552A1)에 기초하여 생성된 ASR 출력, 음성 발화(552A1)에 기초하여 생성된 NLU 출력, 및/또는 클라이언트 장치(510)와 연관된 장치 신호(들)가 예측된 레이턴시를 결정하도록 프로세싱되게 할 수 있다. 자동화된 어시스턴트는 예측된 레이턴시에 기초하여 날씨 명령과 연관된 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택할 수 있다. 또한, 자동화된 어시스턴트는 미리 캐싱된 콘텐츠의 선택된 특정 세그먼트가 음성 발화(552A1)에 테일러드되도록 할 수 있다.
도 5a의 예에서, 자동화된 어시스턴트가 예측된 레이턴시에 기초하여, 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되도록 결정한다고 가정한다. 또한 자동화된 어시스턴트가, 예측된 레이턴시를 하나 이상의 레이턴시 임계값과 비교하는 것에 기초하여, "The radar shows that the weather in [LOCATION] [TIME] is [FULFILLMENT INFORMATION](레이더가 [위치] [시간]의 날씨가 [이행 정보]임을 보여줍니다)"라는 미리 캐싱된 콘텐츠 세그먼트를 선택한다고 가정한다. 또한 자동화된 어시스턴트가 음성 발화(552A1)을 기반으로 결정된 정보로 미리 캐싱된 콘텐츠의 선택된 세그먼트의 파라미터(예: [위치] 및 [시간])를 채우고, 결과적으로 “The radar shows that the weather in Estes Park when you arrive in three weeks is …”의 미리 캐싱된 콘텐츠의 테일러드된 세그먼트를 생성한다고 가정한다. 자동화된 어시스턴트는 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 합성된 음성(554A1)을 포함하는 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델을 사용하여 미리 캐싱된 콘텐츠의 테일러드된 세그먼트가 프로세싱되도록 할 수 있고, 합성된 음성(554A1)은 클라이언트 장치(510)의 스피커(들)를 통해 사용자(501)에게 가청 프레젠테이션을 위해 렌더링될 것이다. 추가로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 전사를 스트리밍할 수 있다.
더욱이, 음성 발화(552A1)에 응답하는 콘텐츠가 수신되는 동안 합성된 음성(554A1)이 554A2로 표시된 바와 같이 사용자(501)에게 프레젠테이션제시하기 위해 렌더링되고 있다고 가정한다. 발화(552A1)에 응답하는 콘텐츠의 표시(554A2)는 합성된 음성(554A1)의 렌더링 후에 수신되는 것으로 도시되지만, 이는 명확성을 위한 것으로 이해되어야 한다. 발화(552A1)에 응답하는 콘텐츠가 클라이언트 장치(510)에서 수신되면, 자동화된 어시스턴트는 콘텐츠에 대응하는 "55 degrees and sunny(55도 및 맑음)"의 합성된 음성(554A3)을 포함하는 추가적인 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델을 사용하여 콘텐츠가 프로세싱되도록 할 수 있고, 합성된 음성(554A3)가 클라이언트 장치(510)의 스피커(들)를 통해 사용자(501)에게 가청적인 프레젠테이션을 위해 렌더링되게 한다. 추가적으로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 콘텐츠에 대응하는 전사를 스트리밍할 수 있다.
특히, 합성된 음성(554A1)의 렌더링 및 합성된 음성(552A3)의 렌더링은 동기화되어, 사용자(501)의 관점에서, 합성된 음성(554A1)이 이미 렌더링되고 있을 때까지 자동화된 어시스턴트가 콘텐츠(예: "55도 및 맑음")를 수신하지 않았을지라도 합성된 음성(554A1) 및 합성된 음성(552A3)은 자동화된 어시스턴트로부터의 단일 연속 스트림인 것으로 보인다(예, "The radar shows that the weather in Estes Park when you arrive in three weeks is 55 degrees and sunny(레이더에 따르면 Estes Park의 날씨는 3주 후에 도착할 때 화씨 55도이며 화창합니다)"). 따라서, 자동화된 어시스턴트는 합성된 음성(554A1)가 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 때 이미 콘텐츠를 획득할 필요가 없다. 그 결과, 사용자(501)와 자동화된 어시스턴트 사이의 인간 대 컴퓨터 대화 세션이 더 빠르고 더 효율적인 방식으로 종결될 수 있다.
도 5a의 예는 적절한 채널로부터 콘텐츠를 획득하고 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되게 하는 것과 관련하여 설명되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 도 5b에 도시된 바와 같이, 본 명세서에 기술된 기술은 소프트웨어 애플리케이션 및/또는 다른 장치를 제어하는데 사용될 수 있다. 예를 들어, 사용자(501)가 "Assistant, Play Example Song"의 음성 발화(552B1)를 제공하고, "Example Song"이 가상 아티스트 "John Doe"의 가상 노래라고 가정한다. 이 예에서, 자동화된 어시스턴트는 음성 발화(552B1)를 캡처하는 오디오 데이터가 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 프로세싱되게 할 수 있다. 또한 자동화된 어시스턴트는 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력을 생성할 수 있다. 또한 자동화된 어시스턴트는 이행 데이터를 생성하기 위해 NLU 출력을 프로세싱하도록 할 수 있다. 자동화된 어시스턴트는 이행 데이터를 기반으로 음성 발화에 응답하는 콘텐츠에 대한 요청을 생성할 수 있다. 이 예에서 요청은 "Example Song"의 값을 갖는 [SONG] 파라미터 및 "John Doe"의 값을 갖는 [ARTIST] 파라미터와 연관된 음악 요청일 수 있다. 요청은 552B2로 표시된 적절한 채널로 전송될 수 있다. 도 5b 예에서, 적절한 채널은 클라이언트 장치(510)에 의해 액세스 가능한 음악 애플리케이션 또는 원격 시스템(예를 들어, 도 1의 제1-파티 서버(191) 및/또는 제3-파티 서버(192) 중 하나 이상)에 의해 호스팅되는 음악 스트리밍 서비스일 수 있다.
요청에 대한 응답으로 노래가 재생되기 시작하기를 기다리는 동안, 자동화된 어시스턴트는 동시에 자동화된 어시스턴트가 음악 명령을 이행하기 위한 예상 기간과 연관된 예상 레이턴시를 결정할 수 있으며, 예측된 레이턴시에 기초하여 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되게 할지 여부를 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 레이턴시 예측 모델을 사용하여, 음성 발화(552B1)에 기초하여 생성된 ASR 출력, 음성 발화(552B1)에 기초하여 생성된 NLU 출력, 및/또는 클라이언트 장치(510)와 연관된 장치 신호(들)가 예측된 레이턴시를 결정하도록 프로세싱되게 할 수 있다. 자동화된 어시스턴트는 예측된 레이턴시에 기초하여 음악 명령과 연관된 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택할 수 있다. 또한, 자동화된 어시스턴트는 미리 캐싱된 콘텐츠의 선택된 특정 세그먼트가 음성 발화(552B1)에 테일러드되도록 할 수 있다.
도 5b의 예에서, 자동화된 어시스턴트가 예측된 레이턴시에 기초하여 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되도록 결정한다고 가정한다. 또한 자동화된 어시스턴트가 예측된 레이턴시를 하나 이상의 레이턴시 임계값과 비교하는 것에 기초하여, "Alright, streaming [SONG] by [ARTIST] to [DEVICE](좋아, [아티스트]의 [노래]을 [장치]로 스트리밍)"이라는 미리 캐싱된 콘텐츠 세그먼트를 선택한다고 가정한다. 또한 자동화된 어시스턴트가 미리 캐싱된 콘텐츠의 선택된 세그먼트의 파라미터(예, [노래], [아티스트], 그리고 [장치]) 를 음성 발화(552A1)에 기초하여 결정된 정보로 채우고, 결과적으로 “Alright, streaming Example Song by John Doe to your living room device(알겠습니다. "John Doe"의 "Example Song"을 거실 장치로 스트리밍합니다)”의 미리 캐싱된 콘텐츠의 테일러드된 세그먼트를 생성한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 거실 장치의 기능(예: 거실 장치의 스피커 유형), 거실에 있는 사용자(501)의 존재(예를 들어, 도 1의 존재 센서(들)(111)에 대해 설명됨), 및/또는 다른 기준과 같은 하나 이상의 기준에 기초하여 거실 장치에서 노래를 재생하도록 결정할 수 있다. 자동화된 어시스턴트는 TTS 모델을 사용하여, 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 합성된 음성(554B1)을 포함하는 합성된 음성 오디오 데이터를 생성하기 위해 미리 캐싱된 콘텐츠의 테일러드된 세그먼트가 프로세싱되도록 할 수 있고, 합성된 음성(554B1)가 클라이언트 장치(510)의 스피커(들)를 통해 사용자(501)에게 가청적인 프레젠테이션을 하기 위해 렌더링되게 한다. 추가로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 전사를 스트리밍할 수 있다.
더욱이, 클라이언트 장치(510)는 음악이 거실 장치에서 재생될 준비가 되었다는 표시를 수신하고, 합성된 음성(554B1)가 554B2로 표시된 바와 같이 사용자(501)에게 프레젠테이션하기 위해 렌더링되고 있고 노래가 554B3로 표시된 대로 스트리밍을 시작한다고 가정한다(여기서 표시(554B2 및 554B3)는 클라이언트 장치(510)로의 단일 전송 또는 개별 전송의 일부로서 수신될 수 있음). 표시(554B2 및 554B3)는 합성된 음성(554B1)의 렌더링 후에 수신되는 것으로 도시되지만, 명확성을 위한 것임을 이해해야 한다. 일부 구현에서, 이러한 표시(554B2 및 554B3)가 클라이언트 장치(510)에서 수신될 때, 자동화된 어시스턴트는 추가 콘텐츠에 대응하는 "now(지금)"의 합성된 음성(554A4)을 포함하는 추가 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델을 사용하여 추가 콘텐츠가 프로세싱되게 할 수 있고, 사용자(501)에게 가청적인 프레젠테이션을 위해 합성된 음성(554A4)가 클라이언트 장치(510)의 스피커(들)를 통해 렌더링되게 한다. 추가로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 추가 콘텐츠에 대응하는 전사를 스트리밍할 수 있다. 추가적인 또는 대안적인 구현에서, 자동화된 어시스턴트는 사용자(501)에게 프레젠테이션하기 위해 임의의 추가적인 콘텐츠가 렌더링되게 하지 않을 수 있다.
특히, 합성된 음성(554B1)의 렌더링은 자동화된 어시스턴트가 예제 노래가 스트리밍될 것이라는 어떠한 표시도 수신하지 않았을 수 있지만 제공될 수 있다. 그럼에도 불구하고, 자동화된 어시스턴트는 노래가 사용자(501)와 연관된 하나 이상의 장치에서 스트리밍될 것이라는 예상으로 합성된 음성(554B1)이 사용자(501)에게 프레젠테이션하기 위해 렌더링되게 할 수 있다. 결과적으로, 사용자(501)와 자동화된 어시스턴트 사이의 사람 대 컴퓨터 대화 세션 동안 자동화된 어시스턴트가 어시스턴트 명령(예를 들어, 도 5b의 예에서 음악 명령)을 이행하는 동안 사용자(501)가 음성 발화(552B1)를 반복하는 발생 횟수가 감소하고, 따라서 클라이언트 장치(510)에서 연산 리소스를 보존한다.
비록 도 5a 및 5b의 예가 단일 동작을 수행하는 자동화된 어시스턴트에 대해 설명되지만(예를 들어, 도 5a에서 날씨 콘텐츠를 획득하고, 도 5b에서 노래 재생), 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 구체적으로 도 5c에 도시된 바와 같이, 본 명세서에 기술된 기술은 복수의 어시스턴트 명령을 포함하는 어시스턴트 루틴을 실행하는데 사용될 수 있다. 예를 들어, 사용자(501)가 "Assistant, good morning(어시스턴트, 좋은 아침)"의 음성 발화(552C1)를 제공한다고 가정하고, 여기서 "좋은 아침"은 시간 명령, 교통 명령, 날씨 명령, 뉴스 명령 및/또는 다른 어시스턴트 명령을 포함하는 보조 루틴을 호출한다. 이 예에서, 자동화된 어시스턴트는 ASR 출력을 생성하기 위해 ASR 모델을 사용하여 음성 발화(552C1)를 캡처하는 오디오 데이터가 프로세싱되도록 할 수 있다. 또한 자동화된 어시스턴트는 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력을 생성할 수 있다. 또한 자동화된 어시스턴트는 이행 데이터를 생성하기 위해 NLU 출력을 프로세싱하도록 할 수 있다. 자동화된 어시스턴트는 이행 데이터를 기반으로 음성 발화에 응답하는 콘텐츠에 대한 여러 요청을 생성할 수 있다. 이 예에서, 요청은 현재 시간의 값을 갖는 [TIME] 파라미터와 연관된 시간 요청, 동작 경로의 값을 갖는 [ROUTE] 파라미터와 연관된 트래픽 요청, "Louisville, KY"의 값을 갖는 [LOCATION] 파라미터(사용자(501)가 켄터키 주(KY) 루이빌에 있다고 가정) 및 현재 시간의 값을 갖는 [TIME] 파라미터를 갖는 날씨 명령 및/또는 다른 요청일 수 있다. 다중 요청은 552C2로 표시된 대로 해당하는 적절한 채널로 전송될 수 있다. 도 5c의 예에서, 시간 요청에 대응하는 적절한 채널은 클라이언트 장치(510)의 시계 애플리케이션일 수 있으며, 트래픽 요청에 대응하는 적절한 채널은 클라이언트 장치(510)의 내비게이션 애플리케이션일 수 있으며, 날씨 요청에 대한 해당 적절한 채널은 원격 시스템(예를 들어, 도 1의 제3-파티 서버 중 하나 이상)에 의해 호스팅되는 날씨 서비스 및/또는 굿모닝 루틴(good morning routing)에 대한 어시스턴트 명령에 기반한 다른 적절한 채널일 수 있다.
복수의 요청 중 하나 이상에 응답하는 클라이언트 장치(510)에서 콘텐츠가 수신되기를 기다리는 동안, 자동화된 어시스턴트는 동시에, 자동화된 어시스턴트가 굿모닝 루틴의 어시스턴트 명령 중 하나 이상을 이행하기 위해 예측된 기간과 연관된 예측된 레이턴시를 결정할 수 있고, 예측된 레이턴시에 기초하여 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되게 할지 여부를 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 레이턴시 예측 모델을 사용하여, 음성 발화(552C1)에 기초하여 생성된 ASR 출력, 음성 발화(552C1)에 기초하여 생성된 NLU 출력, 및/또는 클라이언트 장치(510)와 연관된 장치 신호(들)가 예측된 레이턴시를 결정하도록 프로세싱되게 할 수 있다. 자동화된 어시스턴트는 예측된 레이턴시에 기초하여 날씨 명령과 연관된 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트(disparate segment) 중에서 미리 캐싱된 콘텐츠의 특정 세그먼트를 선택할 수 있다. 또한, 자동화된 어시스턴트는 미리 캐싱된 콘텐츠의 선택된 특정 세그먼트가 음성 발화(552C1)에 테일러드되도록 할 수 있다. 여러 요청(예: 어시스턴트 루틴)이 있는 구현에서, 자동화된 어시스턴트는 루틴에 포함된 어시스턴트 명령 각각 및/또는 루틴에 포함된 어시스턴트 명령의 서브세트에 대한 예측된 레이턴시를 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 시간 명령에 응답하는 콘텐츠가 먼저 렌더링되기 때문에 시간 명령과 연관된 예측된 레이턴시만 고려할 수 있다고, 자동화된 어시스턴트는 시간 요청과 연관된 콘텐츠를 렌더링하는 동안 루틴에 포함된 다른 어시스턴트 명령에 응답하는 추가 콘텐츠를 획득할 수 있다. 또 다른 예로서, 자동화된 어시스턴트는 루틴에 포함된 하나 이상의 어시스턴트 명령과 연관된 가장 긴 예상 레이턴시만을 고려할 수 있다.
도 5c의 예에서, 자동화된 어시스턴트가 예측된 레이턴시에 기초하여, 미리 캐싱된 콘텐츠가 사용자(501)에게 프레젠테이션하기 위해 렌더링되도록 결정한다고 가정한다. 또한 자동화된 어시스턴트가 예측된 레이턴시를 하나 이상의 레이턴시 임계값과 비교하는 것에 기초하여, "Hi [NAME], good morning to you as ..."의 미리 캐싱된 콘텐츠의 세그먼트를 선택한다고 가정한다. 또한 자동화된 어시스턴트가 미리 캐싱된 콘텐츠의 선택된 세그먼트의 파라미터(예: [NAME])를 정보로 채우고, 결과적으로 “Hi John, good morning to you as well …(하이 존, 좋은 아침입니다..)”라는 미리 캐싱된 콘텐츠의 테일러드된 세그먼트를 생성한다고 가정한다. 자동화된 어시스턴트는 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 합성된 음성(554C1)을 포함하는 합성된 음성 오디오 데이터를 생성하기 위해, TTS 모델을 사용하여, 미리 캐싱된 콘텐츠의 테일러드된 세그먼트가 프로세싱되도록 할 수 있고, 합성된 음성(554C1)가 클라이언트 장치(510)의 스피커(들)를 통해 사용자(501)에게 가청적인 프레젠테이션을 위해 렌더링되게 한다. 추가로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 미리 캐싱된 콘텐츠의 테일러드된 세그먼트에 대응하는 전사를 스트리밍할 수 있다.
더욱이, 합성된 음성(554X1)이 554C2로 표시된 바와 같이 사용자(501)에게 프레젠테이션하기 위해 렌더링되는 동안 음성 발화(552C1)에 응답하는 콘텐츠가 수신된다고 가정한다. 발화(552C1)에 응답하는 콘텐츠의 표시(554C2)는 합성된 음성(554C1)의 렌더링 후에 수신되는 것으로 도시되지만, 이는 명확성을 위한 것으로 이해되어야 한다. 발화(552C1)에 응답하는 콘텐츠가 클라이언트 장치(510)에서 수신되면, 자동화된 어시스턴트는 TTS 모델을 사용하여, 콘텐츠에 대응하는 “The time is 7:00 AM, traffic along your commute to work is light …”의 합성된 음성(554C3)을 포함하는 추가 합성된 음성 오디오 데이터를 생성하도록 콘텐츠가 프로세싱되게 할 수 있고, 그리고 사용자(501)에게 가청적인 프레젠테이션을 위해 합성된 음성(554C3)가 클라이언트 장치(510)의 스피커(들)를 통해 렌더링되게 한다. 추가적으로 또는 대안적으로, 자동화된 어시스턴트는 클라이언트 장치(510)의 디스플레이(580) 상의 콘텐츠에 대응하는 전사를 스트리밍할 수 있다.
특히, 합성된 음성(554C1)의 렌더링 및 합성된 음성(552C3)의 렌더링은 합성된 음성(554C1)이 이미 렌더링될 때까지 자동화된 어시스턴트가 콘텐츠(예, "The time is 7:00 AM, traffic along your commute to work is light …(시간은 오전 7시이고, 출퇴근 길은 교통량이 적습니다..)")를 수신하지 않았을지라도 사용자(501)의 관점(perspective)에서, 합성된 음성(554C1) 및 합성된 음성(552C3)이 자동화된 어시스턴트로부터의 단일 연속 스트림인 것처럼 보이도록 동기화될 수 있다(예, "Hi John, good morning to you as well. The time is 7:00 AM, traffic along your commute to work is light …(하이 존, 좋은 아침입니다. 시간은 오전 7시이고 출퇴근길 교통량이 적습니다...)"). 따라서, 자동화된 어시스턴트는 합성된 음성(554C1)가 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 때 이미 콘텐츠를 획득할 필요가 없다. 그 결과, 자동화된 어시스턴트가 복수의 어시스턴트 명령을 수행하는 경우에도 사용자(501)와 자동화된 어시스턴트 사이의 인간 대 컴퓨터 대화 세션이 더 빠르고 더 효율적인 방식으로 종결될 수 있다.
도 6은 본 명세서에 기술된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 사용될 수 있는 예시적인 컴퓨팅 장치(610)의 블록도이다. 일부 구현에서, 클라이언트 장치, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 장치(610)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 장치(610)는 전형적으로 버스 서브시스템(612)을 통해 복수의 주변 장치와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이들 주변 장치는, 예를 들어, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626), 사용자 인터페이스 출력 장치들(620), 사용자 인터페이스 입력 장치들(622) 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장 서브시스템(624)을 포함한다. 입력 및 출력 장치는 사용자가 컴퓨팅 장치(610)와 상호 작용할 수 있도록 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 장치의 대응하는 인터페이스 장치에 결합된다.
사용자 인터페이스 입력 장치들(622)은, 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크로폰 및/또는 기타 유형의 입력 장치를 포함할 수 있다. 일반적으로, 입력 장치라는 용어의 사용은 정보를 컴퓨팅 장치(610) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치들(620)은 디스플레이 서브시스템, 프린터, 팩스 또는 오디오 출력 장치와 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평면 패널 장치, 프로젝션 장치 또는 가시 이미지를 생성하기 위한 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 장치와 같은 비시각적 디스플레이를 제공할 수도 있다. 일반적으로, 출력 장치라는 용어의 사용은 컴퓨팅 장치(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하기 위한 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 기술된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 1에 도시된 다양한 컴포넌트를 구현하는 것뿐만 아니라 본 명세서에 개시된 방법의 선택된 양상을 수행하기 위한 로직(logic)을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(624)에 포함된 메모리 서브시스템(625)은 프로그램 실행 동안 명령 및 데이터 저장을 위한 주 RAM(random access memory)(630) 및 고정 명령이 저장되는 ROM(Read Only Memory)(632)를 포함하는 복수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장 장치를 제공할 수 있고, 하드 디스크 드라이브, 관련 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈들은 저장 서브시스템(624)의 파일 저장 서브시스템(626), 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 머신들에 저장될 수 있다.
버스 서브시스템(612)은, 컴퓨팅 장치(610)의 다양한 컴포넌트 및 서브시스템이, 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 개략적으로 단일 버스로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨팅 장치(610)의 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된 것이다. 컴퓨팅 장치(610)의 많은 다른 구성이 도 6에 도시된 컴퓨팅 장치보다 더 많거나 더 적은 컴포넌트를 갖는 것이 가능하다.
여기에 설명된 시스템이 사용자에 대한 개인 정보를 수집 또는 모니터링하거나 개인 및/또는 모니터링된 정보를 사용할 수 있는 상황에서), 사용자는 프로그램 또는 기능이 사용자 정보(예: 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 방법을 제어할 수 있는 기회를 제공받을 수 있다. 또한 특정 데이터는 저장되거나 사용되기 전에 하나 이상의 방식으로 프로세싱되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자에 대한 개인 식별 정보가 결정될 수 없도록 사용자의 신원이 프로세싱될 수 있거나, 지리적 위치 정보(예: 도시, 우편번호(ZIP code) 또는 주 레벨(state level))가 획득되는 경우 사용자의 지리적 위치가 일반화되어 사용자의 특정 지리적 위치가 결정될 수 없다. 따라서 사용자는 사용자에 대한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨 -; 상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계; 레이턴시(latency) 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계; 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 상기 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되며, 그리고 상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-; 그리고 상기 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 상기 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여: 상기 미리 캐싱된 콘텐츠가 상기 어시스턴트 명령에 테일러드(tailored)되도록 하는 단계; 그리고 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 상기 미리 캐싱된 콘텐츠가 가청적으로 렌더링되도록 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현들에서, 상기 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계는, 자동 음성 인식(ASR) 모델을 사용하여, ASR 출력을 생성하도록 상기 사용자의 음성 발화를 캡처하는 상기 오디오 데이터를 프로세싱하는 단계; 자연어 이해(NLU) 모델을 사용하여, NLU 출력을 생성하도록 상기 ASR 출력을 프로세싱하는 단계; 그리고 상기 NLU 출력에 기초하여 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 결정하는 단계를 포함한다.
이러한 구현의 일부 버전에서, 레이턴시 예측 출력을 생성하기 위해 레이턴시 예측 모델을 사용하여 어시스턴트 명령을 프로세싱하는 단계는 상기 레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 상기 예측된 레이턴시를 생성하도록 상기 NLU 출력을 프로세싱하는 단계를 포함할 수 있다. 이러한 구현의 일부 추가 버전에서, 상기 레이턴시 예측 출력을 생성하기 위해 상기 레이턴시 예측 모델을 사용하여 상기 어시스턴트 명령을 프로세싱하는 단계는, 상기 레이턴시 예측 모델을 사용하여, 그리고 상기 NLU 출력과 함께, 하나 이상의 클라이언트 장치 신호를 프로세싱하여 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하도록 상기 예측된 레이턴시를 생성하는 단계를 더 포함하며, 상기 하나 이상의 클라이언트 장치 신호는 상기 사용자의 클라이언트 장치의 위치, 상기 사용자의 클라이언트 장치의 유형, 또는 상기 사용자의 클라이언트 장치의 네트워크 연결 유형 중 하나 이상을 포함할 수 있다. 이러한 구현의 일부 버전에서, NLU 출력은 사용자의 의도(인텐트)를 포함할 수 있다. 그러한 구현의 일부 추가 버전에서, NLU 출력은 사용자의 의도와 연관된 하나 이상의 해당 파라미터에 대한 하나 이상의 슬롯 값을 더 포함할 수 있다.
일부 구현에서, 방법은 미리 캐싱된 콘텐츠를 획득하는 단계를 더 포함할 수 있다. 상기 미리 캐싱된 콘텐츠를 획득하는 단계는, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 그리고 상기 어시스턴트 명령에 기초하여, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠를 선택하는 단계를 포함할 수 있다.
이러한 구현의 일부 버전에서, 방법은 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족하지 못한다는 결정에 응답하여, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제1 세그먼트는 제1 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다. 이러한 구현의 일부 추가 버전에서, 방법은 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값을 충족하지 못한다는 결정에 응답하여, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제2 세그먼트는 제2 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제2 기간은 상기 제1 기간과는 다를 수 있다. 그러한 구현의 또 다른 버전에서, 방법은 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족한다는 결정에 응답하여, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제3 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제3 세그먼트는 제3 기간 동안 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제3 기간은 상기 제1 기간 및 제2 기간 모두와 다를 수 있다.
일부 구현에서, 방법은 원격 시스템으로부터 원격 콘텐츠를 획득하는 단계를 더 포함할 수 있다. 원격 시스템으로부터 원격 콘텐츠를 획득하는 단계는, 상기 어시스턴트 명령에 기초하여 상기 원격 콘텐츠에 대한 요청을 생성하는 단계; 상기 클라이언트 장치로부터 그리고 하나 이상의 네트워크를 통해, 상기 원격 콘텐츠에 대한 요청을 상기 원격 시스템으로 전송하는 단계; 그리고 상기 클라이언트 장치에서 그리고 하나 이상의 네트워크를 통해, 상기 요청을 전송하는 것에 응답하여 상기 원격 시스템으로부터 상기 원격 콘텐츠를 수신하는 단계를 포함할 수 있다.
이러한 구현의 일부 버전에서, 방법은 상기 원격 시스템으로부터 상기 원격 콘텐츠를 획득하는 것에 기초하여 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 결정하는 단계를 더 포함할 수 있다. 그러한 구현의 일부 추가 버전에서, 방법은 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시와 상기 어시스턴트 명령을 이행하기 위한 상기 실제 레이턴시를 비교하는 것을 기반으로 상기 레이턴시 예측 모델을 업데이트하는 단계를 더 포함할 수 있다.
일부 구현에서, 방법은 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하게 한 후: 상기 원격 콘텐츠가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되도록 하는 단계를 더 포함할 수 있다. 상기 어시스턴트에 테일러드된 미리 캐싱된 콘텐츠 및 상기 어시스턴트 명령에 응답하는 상기 원격 콘텐츠는 합성된 음성의 동일한 인스턴스의 일부로서 가청적으로 렌더링된다.
일부 구현들에서, 미리 캐싱된 콘텐츠가 어시스턴트 명령에 테일러드되도록 하는 단계는 상기 어시스턴트 명령에 기초하여 미리 캐싱된 콘텐츠에 대한 하나 이상의 슬롯 값이 채워지게 하는 단계를 포함할 수 있다.
일부 구현들에서, 방법은 사용자에게 가청적인 프리젠테이션을 위해 제공될 상기 출력을 수정하지 않기로 결정한 것에 응답하여: 상기 어시스턴트 명령에 기초하여 상기 원격 콘텐츠에 대한 요청을 생성하는 단계; 상기 클라이언트 장치로부터 그리고 하나 이상의 네트워크를 통해, 상기 원격 콘텐츠에 대한 요청을 상기 원격 시스템으로 전송하는 단계; 상기 클라이언트 장치에서 그리고 하나 이상의 네트워크를 통해, 상기 요청을 전송하는 것에 응답하여 상기 원격 시스템으로부터 상기 원격 콘텐츠를 수신하는 단계; 그리고 상기 사용자에게 가청적인 프레젠테이션을 위해 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 원격 콘텐츠가 제공되도록 하는 단계를 더 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-; 상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계; 레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계; 원격 시스템으로부터, 상기 어시스턴트 명령을 이행하도록 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링할 원격 콘텐츠를 획득하는 단계 -상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여, 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장됨-; 그리고 원격 콘텐츠를 가청적으로 렌더링하기 전에 그리고 원격 시스템으로부터 원격 콘텐츠를 획득하는 동안, 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여: 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 상기 미리 캐싱된 콘텐츠를 선택하는 단계 -상기 선택된 미리 캐싱된 콘텐츠는 상기 어시스턴트 명령에 테일러드됨-; 상기 클라이언트 장치의 하나 이상의 스피커를 통해, 상기 미리 캐싱된 콘텐츠가 합성된 음성의 제1 부분으로서 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계; 그리고 상기 원격 시스템에서 상기 원격 콘텐츠를 획득하는 것에 응답하여, 상기 클라이언트 장치의 하나 이상의 스피커를 통해, 원격 콘텐츠가 상기 합성된 음성의 제2 부분으로서 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계를 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-; 상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계; 레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계; 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되고, 그리고 상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-; 그리고 상기 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여: 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 또는 제2 레이턴시 임계값을 충족하는지 여부를 결정하는 단계; 상기 자동화된 어시스턴트에 대한 상기 예측된 레이턴시가 상기 제1 레이턴시 임계값을 충족하지만 상기 제2 레이턴시 임계값은 충족하지 않는다는 결정에 응답하여: 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택하는 단계 -상기 미리 캐싱된 콘텐츠의 제1 세그먼트는 제1 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링됨-; 그리고 상기 미리 캐싱된 콘텐츠의 제1 세그먼트가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계; 그리고 상기 자동화된 어시스턴트에 대한 상기 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족한다는 결정에 응답하여: 상기 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택하는 단계 -상기 미리 캐싱된 콘텐츠의 제2 세그먼트는 제2 기간에 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제2 기간은 상기 제1 기간과는 다름-; 그리고 상기 미리 캐싱된 콘텐츠의 제2 세그먼트가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계를 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-; 상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계; 레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 상기 사용자에게 프레젠테이션하기 위해 온-디바이스 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되고, 상기 온-디바이스 콘텐츠는 상기 음성 발화에 응답하여 상기 클라이언트 장치에서 로컬로 생성됨-; 상기 온-디바이스 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여: 상기 미리 캐싱된 콘텐츠가 상기 어시스턴트 명령에 테일러드되도록 하는 단계; 그리고 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 미리 캐싱된 콘텐츠가 가청적으로 렌더링되도록 하는 단계를 포함할 수 있다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 클라이언트 장치에서 로컬로 상기 온-디바이스 콘텐츠를 생성하는 단계는, 상기 어시스턴트 명령에 기초하여 상기 온-디바이스 콘텐츠에 대한 요청을 생성하는 단계; 상기 온-디바이스 콘텐츠에 대한 요청을 상기 클라이언트 장치에서 액세스 가능한 하나 이상의 소프트웨어 애플리케이션으로 전송하는 단계; 그리고 상기 요청을 전송하는 것에 응답하여 상기 하나 이상의 소프트웨어 애플리케이션으로부터 상기 온-디바이스 콘텐츠를 수신하는 단계를 포함할 수 있다. 이러한 구현의 일부 버전에서, 방법은 상기 클라이언트 장치에서 로컬로 온-디바이스 콘텐츠를 생성하는 것에 기초하여 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 결정하는 단계를 더 포함할 수 있다. 그러한 구현의 일부 추가 버전에서, 방법은 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시와 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 비교하는 것을 기반으로 상기 레이턴시 예측 모델을 업데이트하는 단계를 더 포함할 수 있다.
또한, 일부 구현에는 하나 이상의 프로세서(예: 중앙 프로세싱 장치(들)(CPU(들)), 그래픽 프로세싱 장치(들)(GPU(들) 및/또는 텐서 프로세싱 장치(들))가 포함되며, 하나 이상의 컴퓨팅 장치에서 하나 이상의 프로세서는 관련 메모리에 저장된 명령어를 실행하도록 동작 가능하고 명령어는 전술한 방법 중 임의의 방법의 퍼포먼스을 유발하도록 구성된다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램 제품을 포함한다.

Claims (25)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨 -;
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계;
    레이턴시(latency) 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계;
    상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 상기 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되며, 그리고 상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-; 그리고
    상기 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 상기 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여:
    상기 미리 캐싱된 콘텐츠가 상기 어시스턴트 명령에 테일러드(tailored)되도록 하는 단계; 그리고
    상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 상기 미리 캐싱된 콘텐츠가 가청적으로 렌더링되도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서, 상기 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계는,
    자동 음성 인식(ASR) 모델을 사용하여, ASR 출력을 생성하도록 상기 사용자의 음성 발화를 캡처하는 상기 오디오 데이터를 프로세싱하는 단계;
    자연어 이해(NLU) 모델을 사용하여, NLU 출력을 생성하도록 상기 ASR 출력을 프로세싱하는 단계; 그리고
    상기 NLU 출력에 기초하여 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제2항에 있어서, 레이턴시 예측 출력을 생성하기 위해 레이턴시 예측 모델을 사용하여 어시스턴트 명령을 프로세싱하는 단계는,
    상기 레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 상기 예측된 레이턴시를 생성하도록 상기 NLU 출력을 프로세싱하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 제3항에 있어서,
    상기 레이턴시 예측 출력을 생성하기 위해 상기 레이턴시 예측 모델을 사용하여 상기 어시스턴트 명령을 프로세싱하는 단계는,
    상기 레이턴시 예측 모델을 사용하여, 그리고 상기 NLU 출력과 함께, 하나 이상의 클라이언트 장치 신호를 프로세싱하여 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하도록 상기 예측된 레이턴시를 생성하는 단계를 더 포함하며, 상기 하나 이상의 클라이언트 장치 신호는 상기 사용자의 클라이언트 장치의 위치, 상기 사용자의 클라이언트 장치의 유형, 또는 상기 사용자의 클라이언트 장치의 네트워크 연결 유형 중 하나 이상을 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 제2항에 있어서, 상기 NLU 출력은 상기 사용자의 의도를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 제5항에 있어서, 상기 NLU 출력은 상기 사용자의 의도와 연관된 하나 이상의 해당 파라미터에 대한 하나 이상의 슬롯 값을 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    상기 미리 캐싱된 콘텐츠를 획득하는 단계를 더 포함하며,
    상기 미리 캐싱된 콘텐츠를 획득하는 단계는,
    상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 그리고 상기 어시스턴트 명령에 기초하여, 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠를 선택하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 제7항에 있어서, 상기 방법은,
    상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족하지 못한다는 결정에 응답하여,
    미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제1 세그먼트는 제1 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 제8항에 있어서, 상기 방법은,
    상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값을 충족하지만 제2 레이턴시 임계값을 충족하지 못한다는 결정에 응답하여,
    미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제2 세그먼트는 제2 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제2 기간은 상기 제1 기간과는 다른 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 제9항에 있어서, 상기 방법은,
    상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족한다는 결정에 응답하여,
    미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제3 세그먼트를 선택하는 단계를 더 포함하며, 상기 미리 캐싱된 콘텐츠의 제3 세그먼트는 제3 기간 동안 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제3 기간은 상기 제1 기간 및 제2 기간 모두와 다른 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    원격 시스템으로부터 상기 원격 콘텐츠를 획득하는 단계를 더 포함하며,
    원격 시스템으로부터 원격 콘텐츠를 획득하는 단계는,
    상기 어시스턴트 명령에 기초하여 상기 원격 콘텐츠에 대한 요청을 생성하는 단계;
    상기 클라이언트 장치로부터 그리고 하나 이상의 네트워크를 통해, 상기 원격 콘텐츠에 대한 요청을 상기 원격 시스템으로 전송하는 단계; 그리고
    상기 클라이언트 장치에서 그리고 하나 이상의 네트워크를 통해, 상기 요청을 전송하는 것에 응답하여 상기 원격 시스템으로부터 상기 원격 콘텐츠를 수신하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  12. 제11항에 있어서, 상기 방법은,
    상기 원격 시스템으로부터 상기 원격 콘텐츠를 획득하는 것에 기초하여 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  13. 제12항에 있어서, 상기 방법은,
    상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시와 상기 어시스턴트 명령을 이행하기 위한 상기 실제 레이턴시를 비교하는 것을 기반으로 상기 레이턴시 예측 모델을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  14. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하게 한 후:
    상기 원격 콘텐츠가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되도록 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  15. 제14항에 있어서, 상기 어시스턴트에 테일러드된 미리 캐싱된 콘텐츠 및 상기 어시스턴트 명령에 응답하는 상기 원격 콘텐츠는 합성된 음성의 동일한 인스턴스의 일부로서 가청적으로 렌더링되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  16. 선행하는 청구항 중 어느 한 항에 있어서, 미리 캐싱된 콘텐츠가 어시스턴트 명령에 테일러드되도록 하는 단계는,
    상기 어시스턴트 명령에 기초하여 미리 캐싱된 콘텐츠에 대한 하나 이상의 슬롯 값이 채워지게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  17. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    사용자에게 가청적인 프리젠테이션을 위해 제공될 상기 출력을 수정하지 않기로 결정한 것에 응답하여:
    상기 어시스턴트 명령에 기초하여 상기 원격 콘텐츠에 대한 요청을 생성하는 단계;
    상기 클라이언트 장치로부터 그리고 하나 이상의 네트워크를 통해, 상기 원격 콘텐츠에 대한 요청을 상기 원격 시스템으로 전송하는 단계;
    상기 클라이언트 장치에서 그리고 하나 이상의 네트워크를 통해, 상기 요청을 전송하는 것에 응답하여 상기 원격 시스템으로부터 상기 원격 콘텐츠를 수신하는 단계; 그리고
    상기 사용자에게 가청적인 프레젠테이션을 위해 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 원격 콘텐츠가 제공되도록 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  18. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-;
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계;
    레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계;
    원격 시스템으로부터, 상기 어시스턴트 명령을 이행하도록 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링할 원격 콘텐츠를 획득하는 단계 -상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-;
    상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위한 예측된 레이턴시에 기초하여, 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장됨-; 그리고
    원격 콘텐츠를 가청적으로 렌더링하기 전에 그리고 원격 시스템으로부터 원격 콘텐츠를 획득하는 동안, 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여:
    미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서 상기 미리 캐싱된 콘텐츠를 선택하는 단계 -상기 선택된 미리 캐싱된 콘텐츠는 상기 어시스턴트 명령에 테일러드됨-;
    상기 클라이언트 장치의 하나 이상의 스피커를 통해, 상기 미리 캐싱된 콘텐츠가 합성된 음성의 제1 부분으로서 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계; 그리고
    상기 원격 시스템에서 상기 원격 콘텐츠를 획득하는 것에 응답하여,
    상기 클라이언트 장치의 하나 이상의 스피커를 통해, 원격 콘텐츠가 상기 합성된 음성의 제2 부분으로서 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  19. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-;
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계;
    레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계;
    상기 자동화된 어시스턴트가 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 사용자에게 프레젠테이션하기 위해 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되고, 그리고 상기 원격 콘텐츠는 상기 음성 발화에 응답하여 원격 시스템에 의해 생성됨-; 그리고
    상기 원격 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여:
    상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시가 제1 레이턴시 임계값 또는 제2 레이턴시 임계값을 충족하는지 여부를 결정하는 단계;
    상기 자동화된 어시스턴트에 대한 상기 예측된 레이턴시가 상기 제1 레이턴시 임계값을 충족하지만 상기 제2 레이턴시 임계값은 충족하지 않는다는 결정에 응답하여:
    미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제1 세그먼트를 선택하는 단계 -상기 미리 캐싱된 콘텐츠의 제1 세그먼트는 제1 기간 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링됨-; 그리고
    상기 미리 캐싱된 콘텐츠의 제1 세그먼트가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계; 그리고
    상기 자동화된 어시스턴트에 대한 상기 예측된 레이턴시가 제1 레이턴시 임계값 및 제2 레이턴시 임계값을 충족한다는 결정에 응답하여:
    상기 미리 캐싱된 콘텐츠의 복수의 이종 세그먼트 중에서, 상기 어시스턴트 명령에 테일러드될 미리 캐싱된 콘텐츠의 제2 세그먼트를 선택하는 단계 -상기 미리 캐싱된 콘텐츠의 제2 세그먼트는 제2 기간에 동안 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되고, 상기 제2 기간은 상기 제1 기간과는 다름-; 그리고
    상기 미리 캐싱된 콘텐츠의 제2 세그먼트가 상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  20. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    사용자의 음성 발화를 캡처하는 오디오 데이터를 수신하는 단계 -상기 오디오 데이터는 상기 사용자의 클라이언트 장치의 하나 이상의 마이크로폰으로 생성됨-;
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트에 의해 수행될 어시스턴트 명령을 결정하는 단계;
    레이턴시 예측 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시를 생성하도록 상기 자동화된 어시스턴트에 의해 수행될 상기 어시스턴트 명령을 프로세싱하는 단계;
    상기 자동화된 어시스턴트가 상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시에 기초하여, 상기 사용자에게 프레젠테이션하기 위해 온-디바이스 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링할지 여부를 결정하는 단계 -상기 미리 캐싱된 콘텐츠는 상기 클라이언트 장치에 로컬로 저장되고, 상기 온-디바이스 콘텐츠는 상기 음성 발화에 응답하여 상기 클라이언트 장치에서 로컬로 생성됨-;
    상기 온-디바이스 콘텐츠를 가청적으로 렌더링하기 전에 상기 사용자에게 프레젠테이션하기 위해 미리 캐싱된 콘텐츠를 가청적으로 렌더링하기로 결정하는 것에 응답하여:
    상기 미리 캐싱된 콘텐츠가 상기 어시스턴트 명령에 테일러드되도록 하는 단계; 그리고
    상기 클라이언트 장치의 하나 이상의 스피커를 통해 상기 사용자에게 프리젠테이션을 위해 미리 캐싱된 콘텐츠가 가청적으로 렌더링되도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  21. 제20항에 있어서, 상기 클라이언트 장치에서 로컬로 상기 온-디바이스 콘텐츠를 생성하는 단계는,
    상기 어시스턴트 명령에 기초하여 상기 온-디바이스 콘텐츠에 대한 요청을 생성하는 단계;
    상기 온-디바이스 콘텐츠에 대한 요청을 상기 클라이언트 장치에서 액세스 가능한 하나 이상의 소프트웨어 애플리케이션으로 전송하는 단계; 그리고
    상기 요청을 전송하는 것에 응답하여 상기 하나 이상의 소프트웨어 애플리케이션으로부터 상기 온-디바이스 콘텐츠를 수신하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  22. 제21항에 있어서, 상기 방법은,
    상기 클라이언트 장치에서 로컬로 온-디바이스 콘텐츠를 생성하는 것에 기초하여 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  23. 제22항에 있어서, 상기 방법은,
    상기 어시스턴트 명령을 이행하기 위해 예측된 레이턴시와 상기 어시스턴트 명령을 이행하기 위한 실제 레이턴시를 비교하는 것을 기반으로 상기 레이턴시 예측 모델을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  24. 시스템으로서,
    적어도 하나의 프로세서; 그리고
    실행될 때 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제23항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령어를 저장한 메모리를 포함하는 것을 특징으로 하는 시스템.
  25. 실행될 때 적어도 하나의 프로세서로 하여금 제1항 내지 제23항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령어를 저장한 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237024082A 2021-04-28 2021-12-13 자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기위한 방법 및 시스템 KR20230117239A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/243,232 US11763813B2 (en) 2021-04-28 2021-04-28 Methods and systems for reducing latency in automated assistant interactions
US17/243,232 2021-04-28
PCT/US2021/063104 WO2022231660A1 (en) 2021-04-28 2021-12-13 Methods and systems for reducing latency in automated assistant interactions

Publications (1)

Publication Number Publication Date
KR20230117239A true KR20230117239A (ko) 2023-08-07

Family

ID=79602018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237024082A KR20230117239A (ko) 2021-04-28 2021-12-13 자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기위한 방법 및 시스템

Country Status (5)

Country Link
US (2) US11763813B2 (ko)
EP (1) EP4139787A1 (ko)
KR (1) KR20230117239A (ko)
CN (1) CN116745843A (ko)
WO (1) WO2022231660A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11367429B2 (en) * 2019-06-10 2022-06-21 Microsoft Technology Licensing, Llc Road map for audio presentation of communications
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
US20240070025A1 (en) * 2022-08-29 2024-02-29 Micron Technology, Inc. Apparatuses, systems, and methods for module level error correction

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384736B2 (en) * 2012-08-21 2016-07-05 Nuance Communications, Inc. Method to provide incremental UI response based on multiple asynchronous evidence about user input
US9646601B1 (en) * 2013-07-26 2017-05-09 Amazon Technologies, Inc. Reduced latency text-to-speech system
JP5958475B2 (ja) * 2014-01-17 2016-08-02 株式会社デンソー 音声認識端末装置、音声認識システム、音声認識方法
JP6024675B2 (ja) 2014-01-17 2016-11-16 株式会社デンソー 音声認識端末装置、音声認識システム、音声認識方法
US10079021B1 (en) * 2015-12-18 2018-09-18 Amazon Technologies, Inc. Low latency audio interface
US10585891B2 (en) * 2016-11-03 2020-03-10 Soundhound, Inc. Dynamic choice of data sources in natural language query processing
JP6818280B2 (ja) 2017-03-10 2021-01-20 日本電信電話株式会社 対話システム、対話方法、対話装置、およびプログラム
US11048995B2 (en) 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
US10777203B1 (en) * 2018-03-23 2020-09-15 Amazon Technologies, Inc. Speech interface device with caching component
US10984799B2 (en) * 2018-03-23 2021-04-20 Amazon Technologies, Inc. Hybrid speech interface device
US11817087B2 (en) * 2020-08-28 2023-11-14 Micron Technology, Inc. Systems and methods for reducing latency in cloud services

Also Published As

Publication number Publication date
US20230410803A1 (en) 2023-12-21
WO2022231660A1 (en) 2022-11-03
CN116745843A (zh) 2023-09-12
EP4139787A1 (en) 2023-03-01
US20220351720A1 (en) 2022-11-03
US11763813B2 (en) 2023-09-19

Similar Documents

Publication Publication Date Title
JP7386878B2 (ja) アシスタントの応答を動的に適応させること
JP7418526B2 (ja) 自動アシスタントを起動させるための動的および/またはコンテキスト固有のホットワード
KR20220024557A (ko) 자동화된 어시스턴트에 의한 응답 액션을 트리거하기 위한 핫 명령의 검출 및/또는 등록
KR102599607B1 (ko) 자동화된 어시스턴트를 호출하기 위한 다이내믹 및/또는 컨텍스트 특정 핫워드
KR20230117239A (ko) 자동화된 어시스턴트 상호작용에서 레이턴시를 줄이기위한 방법 및 시스템
KR102621636B1 (ko) 루틴 실행 중에 클라이언트 디바이스간 자동화 어시스턴트 루틴 전송
CN110050303B (zh) 基于第三方代理内容的语音到文本转换
JP2021522636A (ja) ユーザと自動化されたアシスタントインターフェースとの間の距離に応じて自動化されたアシスタントのコンテンツを生成するおよび/または適応させること
JP2021521497A (ja) 検出された口運動および/または注視に基づく自動化アシスタントの適応
JP2024019405A (ja) 2パスエンドツーエンド音声認識
JP7017643B2 (ja) テキスト非依存話者認識
CN112334976A (zh) 利用本地文本响应映射呈现对用户的口头话语的响应
US20240203400A1 (en) Speaker awareness using speaker dependent speech model(s)
WO2021142055A1 (en) Preventing non-transient storage of assistant interaction data and/or wiping of stored assistant interaction data
KR20230062612A (ko) 자동화된 어시스턴트를 위한 자연스러운 대화 활성화
US20230031461A1 (en) Providing certain reasoning with respect to fulfillment of an assistant command
KR20230147157A (ko) 어시스턴트 명령(들)의 컨텍스트적 억제
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
US12020703B2 (en) Enabling natural conversations with soft endpointing for an automated assistant
US20230230578A1 (en) Personalized speech query endpointing based on prior interaction(s)
US20230053341A1 (en) Enabling natural conversations with soft endpointing for an automated assistant
KR20230153450A (ko) 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재
KR20230118959A (ko) 어시스턴트 명령의 이행과 관련하여 특정한 이유 제공
WO2024054271A1 (en) System(s) and method(s) for causing contextually relevant emoji(s) to be visually rendered for presentation to user(s) in smart dictation