KR20230118959A - 어시스턴트 명령의 이행과 관련하여 특정한 이유 제공 - Google Patents
어시스턴트 명령의 이행과 관련하여 특정한 이유 제공 Download PDFInfo
- Publication number
- KR20230118959A KR20230118959A KR1020237023808A KR20237023808A KR20230118959A KR 20230118959 A KR20230118959 A KR 20230118959A KR 1020237023808 A KR1020237023808 A KR 1020237023808A KR 20237023808 A KR20237023808 A KR 20237023808A KR 20230118959 A KR20230118959 A KR 20230118959A
- Authority
- KR
- South Korea
- Prior art keywords
- assistant
- automated assistant
- specific
- command
- user
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000004044 response Effects 0.000 claims abstract description 58
- 230000007704 transition Effects 0.000 claims description 104
- 238000012545 processing Methods 0.000 claims description 70
- 230000009471 action Effects 0.000 claims description 67
- 230000015654 memory Effects 0.000 claims description 11
- 238000009877 rendering Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 12
- 230000001939 inductive effect Effects 0.000 abstract 1
- 239000011435 rock Substances 0.000 description 64
- 238000010801 machine learning Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- IJJWOSAXNHWBPR-HUBLWGQQSA-N 5-[(3as,4s,6ar)-2-oxo-1,3,3a,4,6,6a-hexahydrothieno[3,4-d]imidazol-4-yl]-n-(6-hydrazinyl-6-oxohexyl)pentanamide Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)NCCCCCC(=O)NN)SC[C@@H]21 IJJWOSAXNHWBPR-HUBLWGQQSA-N 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 230000026676 system process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013518 transcription Methods 0.000 description 2
- 230000035897 transcription Effects 0.000 description 2
- 238000002604 ultrasonography Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/55—Rule-based translation
- G06F40/56—Natural language generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
여기에 설명된 구현은 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행 및/또는 대체 이행을 수행한(또는 수행하지 않은) 이유에 대한 특정 추론을 유발하는 것과 관련된다. 예를 들어 구현은 어시스턴트 명령을 포함하는 사용자 입력을 수신하고, 어시스턴트 명령의 특정 이행 또는 대체 이행의 수행에 사용될 데이터를 결정하기 위해 사용자 입력을 프로세싱하고, 자동화된 어시스턴트가 데이터를 사용하여 어시스턴트 명령의 특정 이행 또는 대체 이행을 수행하도록 한다. 일부 구현에서, 특정 추론을 포함하는 출력은 특정 추론을 요청하는 추가 사용자 입력에 응답하여 사용자에게 프레젠테이션하기 위해 제공될 수 있다. 일부 구현에서, 선택 가능한 요소는 시각적으로 렌더링될 수 있고, 사용자에 의해 선택될 때 특정 추론을 포함하는 출력이 사용자에게 프레젠테이션하기 위해 제공될 수 있다.
Description
본 명세서는 어시스턴트 명령의 이행과 관련하여 특정한 이유를 제공하는 것에 관한 것이다.
인간은 여기에서 "자동화된 어시스턴트"("챗봇", "대화형 개인 어시스턴트", "지능형 개인 어시스턴트", "개인 음성 어시스턴트", "대화 에이전트" 등으로도 불림)라고 하는 대화형 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동화된 어시스턴트와 상호 작용할 때 "사용자"라고 부를 수 있음)은 음성 자연어 입력(즉, 음성 발화)을 자동화된 어시스턴트에 제공할 수 있으며, 이는 경우에 따라 텍스트로 변환된 다음 프로세싱될 수 있고 및/또는 텍스트(예: 타이핑된) 자연어 입력 또는 터치 입력을 제공함으로써 가능하다. 자동화된 어시스턴트는 일반적으로 반응형 사용자 인터페이스 출력(예: 청각적 및/또는 시각적 사용자 인터페이스 출력)을 제공하고, 스마트 네트워크 장치를 제어하고/하거나 다른 작업을 수행함으로써 어시스턴트 명령을 포함하는 이러한 사용자 입력에 응답한다.
자동화된 어시스턴트는 일반적으로 어시스턴트 명령을 포함하는 이러한 사용자 입력을 해석하고 이에 응답하는 파라미터의 파이프라인에 의존한다. 예를 들어, 자동 음성 인식(ASR) 엔진은 음성 발화의 전사(즉, 용어 및/또는 기타 토큰의 시퀀스)와 같은 ASR 출력을 생성하기 위해 사용자의 음성 발화에 대응하는 오디오 데이터를 프로세싱할 수 있다. 또한, 자연어 이해(NLU) 엔진은 음성 발화를 제공하는 사용자의 의도 및 선택적으로 의도와 연관된 파라미터(들)에 대한 슬롯 값(들)과 같은 NLU 출력을 생성하기 위해 ASR 출력을 프로세싱할 수 있다. 더욱이, 이행 엔진은 NLU 출력을 프로세싱하고, 음성 발화에 응답하는 콘텐츠를 얻기 위한 및/또는 음성 발화에 응답하는 동작을 수행하기 위한 구조화된 요청과 같은 이행 출력(fulfillment output)을 생성하는 데 사용될 수 있다.
경우에 따라 사용자는 자동화된 어시스턴트가 특정 응답 콘텐츠를 제공하고/하거나 어시스턴트 명령을 포함하는 이러한 사용자 입력 수신에 대한 응답으로 특정 액션을 수행하는 이유를 이해하지 못할 수 있다. 이러한 오해는 자동화된 어시스턴트가 특정 응답 콘텐츠를 제공하지 않거나 이러한 사용자가 사용자 입력을 제공할 때 의도한 특정 액션을 수행하지 않을 때 악화될 수 있다. 예를 들어, 특정 사용자가 자동화된 어시스턴트가 음악을 재생하도록 요청하는 자동화된 어시스턴트로 향하는 사용자 입력을 제공하는 경우, 그러나 자동화된 어시스턴트가 원하지 않는 소프트웨어 애플리케이션을 사용하여 음악을 재생하거나 사용자 입력에 응답하여 검색 결과를 제공하는 경우, 특정 사용자는 자동화된 어시스턴트가 원하는 방식으로 음악을 재생하지 않은 이유에 대해 혼란스러워할 수 있다. 그 결과, 특정 사용자는 동일한 사용자 입력의 다른 인스턴스 또는 원하는 소프트웨어 애플리케이션을 사용하여 음악이 재생되도록 하는 다른 사용자 입력을 포함하는 추가 사용자 입력을 제공할 수 있다. 따라서 특정 사용자와 자동화된 어시스턴트 사이의 사람과 컴퓨터 간의 대화 시간을 연장한다. 또한 자동화된 어시스턴트가 원하는 소프트웨어 애플리케이션을 사용하여 음악을 재생하도록 한 경우에도, 특정 사용자는 자동화된 어시스턴트가 원하는 소프트웨어 애플리케이션을 사용하여 음악이 재생되도록 할 수 있었던 방법을 사용자가 알지 못할 수 있고 자신의 데이터 보안에 대해 우려할 수 있기 때문에 자동화된 어시스턴트를 염려할 수 있다. 따라서, 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행하게 하는 이유를 특정 사용자가 이해할 수 있는 메커니즘을 제공하는 것이 유익할 수 있다.
본 명세서에 개시된 구현은 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행 및/또는 대체 이행을 수행한(또는 수행하지 않은) 이유에 대한 특정 추론을 야기하는 것에 관한 것이다. 예를 들어, 구현은 어시스턴트 명령을 포함하는 사용자 입력을 수신하고, 어시스턴트 명령의 특정 이행 또는 대체 이행의 수행에 사용될 데이터를 결정하기 위해 사용자 입력을 프로세싱하고, 자동화된 어시스턴트가 데이터를 사용하여 어시스턴트 명령의 특정 이행 또는 대체 이행을 수행하도록 한다. 일부 구현에서, 특정 추론을 포함하는 출력은 특정 추론을 요청하는 추가 사용자 입력에 응답하여 사용자에게 프레젠테이션하기 위해 제공될 수 있다. 일부 구현에서, 하나 이상의 선택 가능한 요소가 시각적으로 렌더링될 수 있고, 하나 이상의 선택 가능한 요소 중 특정 하나가 사용자에 의해 선택될 때, 특정 추론을 포함하는 출력이 사용자에게 프레젠테이션하기 위해 제공될 수 있다.
예를 들어, 클라이언트 장치의 사용자가 "play rock music(록 음악 재생)"라는 음성 발화를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 음성 발화를 캡처하는 오디오 데이터가 자동 음성 인식(ASR) 모델을 사용하여 프로세싱되도록 하고, 음성 발화에 대응하는 것으로 예측된 음성 가설, 음성 발화에 대응하는 것으로 예측되는 예측 음소와 같은 ASR 출력 및/또는 다른 ASR 출력 및 선택적으로 각각의 음성 가설, 예측된 음소 및/또는 다른 ASR 출력과 관련된 ASR 메트릭을 생성할 수 있다(예: 특정 음성 가설 또는 특정 예상 음소가 음성 발화에 해당할 가능성을 나타냄). 또한, 자동화된 어시스턴트는 자연어 이해(NLU) 모델을 사용하여 ASR 출력을 프로세싱하여 음성 발화를 제공할 때 사용자의 하나 이상의 예상된 의도, 하나 이상의 예측된 의도 각각과 연관된 대응하는 파라미터에 대한 하나 이상의 슬롯 값과 같은 NLU 출력을 생성하거나, 및/또는 다른 NLU 출력 및 선택적으로 각각의 의도, 슬롯 값 및/또는 다른 NLU 출력과 연관된 NLU 메트릭을 생성한다(예를 들어, 특정 의도 및/또는 특정 슬롯 값이 음성 발화를 제공할 때 실제 의도 및/또는 원하는 슬롯 값에 대응할 가능성을 나타내는 것). 이 예에서 자동화된 어시스턴트는 사용자가 특정 음악 장르(예: 록)만 지정했기 때문에 음악 의도와 연관된 아티스트 파라미터에 대한 아티스트 슬롯 값, 음악 의도와 연관된 노래 파라미터에 대한 노래 슬롯 값, 소프트웨어 애플리케이션에 대한 소프트웨어 애플리케이션 또는 스트리밍 서비스 슬롯 값 또는 음악과 연관된 스트리밍 서비스 파라미터 의도 등과 같이, 하나 이상의 슬롯 값을 추론할 수 있다. 유추된 슬롯 값의 변형으로 인해 음성 발화에 대한 하나 이상의 해석이 발생할 수 있다. 다양한 구현에서, 그리고 자동화된 어시스턴트가 클라이언트 장치 사용자의 하나 이상의 사용자 프로필에 액세스할 수 있다고 가정하면, 자동화된 어시스턴트는 하나 이상의 슬롯 값을 추론하는 데 사용자 프로필 데이터를 사용할 수 있다. 그렇지 않으면 자동화된 어시스턴트가 하나 이상의 기본 슬롯 값을 사용할 수 있다.
또한, 자동화된 어시스턴트는 음성 발화를 만족시킬 수 있는 하나 이상의 이행자(예: 소프트웨어 애플리케이션, 서버 등)에게 전송될 하나 이상의 구조화된 요청과 같은, 하나 이상의 이행 규칙(들) 및/또는 이행 모델(들)을 사용하여 NLU 출력이 프로세싱되도록 하여 이행 출력을 생성할 수 있다. 하나 이상의 구조화된 요청을 전송할 때, 하나 이상의 이행자는 하나 이상의 이행 후보를 생성할 수 있고, 하나 이상의 이행 후보를 자동화된 어시스턴트로 다시 전송할 수 있다. 자동화된 어시스턴트는
자동화된 어시스턴트가 클라이언트 장치의 사용자의 하나 이상의 사용자 프로파일에 액세스할 수 있다고 가정하는 사용자 프로파일 데이터에 기초하여 수신되는 하나 이상의 이행 후보에 응답하여 하나 이상의 이행 후보 각각과 연관된 이행 메트릭을 생성할 수 있다(예를 들어, 하나 이상의 이행 후보 중 특정 이행 후보가 구현된 경우 음성 발화를 만족시킬 가능성을 나타냄). 자동화된 어시스턴트는 ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭에 기초하여 하나 이상의 이행 후보의 순위를 매길 수 있고, 그 순위에 따라 특정 이행 후보를 선택한다. 또한, 자동화된 어시스턴트는 음성 발화를 만족시키려는 시도에서 선택된 특정 이행 후보가 구현되도록 할 수 있다.
예를 들어, 이 예에서, 자동화된 어시스턴트가 음악 의도와 연관된 아티스트 파라미터에 대한 "아티스트 1"의 아티스트 슬롯 값, 음악 의도와 연관된 노래 파라미터에 대한 "노래 1"의 노래 슬롯 값, 음악 의도와 관련된 소프트웨어 애플리케이션 또는 스트리밍 서비스 파라미터에 대한 "애플리케이션 1"의 소프트웨어 애플리케이션 또는 스트리밍 서비스 슬롯 값을 갖는 음악 의도를 포함하는 "play rock music(록 음악 재생)"의 음성 발화의 제1 해석을 결정했다고 가정한다. 또한 자동화된 어시스턴트가 음악 의도와 연관된 아티스트 파라미터에 대해 "아티스트 1"의 아티스트 슬롯 값, 음악 의도와 연관된 노래 파라미터에 대한 "노래 1"의 노래 슬롯 값, 음악 의도와 연관된 소프트웨어 애플리케이션 또는 스트리밍 서비스 파라미터에 대한 "애플리케이션 2"의 소프트웨어 애플리케이션 또는 스트리밍 서비스 슬롯 값을 갖는 음악 의도를 포함하는 "록 음악 재생"의 음성 발화의 제1 해석을 결정했다고 가정한다. 이 경우 "애플리케이션 1" 및 "애플리케이션 2"는 발화를 만족시킬 수 있는 하나 이상의 이행자로 간주될 수 있다. 따라서, 자동화된 어시스턴트는 하나 이상의 이행 후보를 얻기 위해 "애플리케이션 1" 및 "애플리케이션 2"(및 선택적으로 음성 발화를 만족시킬 수 있는 다른 이행자)에 하나 이상의 구조화된 요청을 전송할 수 있다. 또한, 자동화된 어시스턴트는 하나 이상의 이행 후보의 순위를 매기고 특정 이행 후보를 선택하여 음성 발화에 응답하여 특정 이행이 수행되도록 할 수 있다. 이 예에서, 또한 자동화된 어시스턴트가 제1 해석과 연관된 이행 후보를 선택한다고 가정한다. 따라서, 자동화된 어시스턴트는 "아티스트 1"의 "노래 1"이 음성 발화의 특정 이행으로서 클라이언트 장치(또는 클라이언트 장치와 통신하는 추가 클라이언트 장치)의 스피커(들)를 통해 "애플리케이션 1"을 사용하여 재생되게 할 수 있다.
일부 구현에서, 특정 이행이 수행되도록 하는 자동화된 어시스턴트에 이어, 클라이언트 장치의 사용자는 자동화된 어시스턴트가 특정 이행이 수행된 이유 및/또는 대체 이행이 수행되지 않은 이유에 대한 특정 추론을 제공하도록 요청하는 추가 사용자 입력을 제공할 수 있다. 이러한 구현의 일부 버전에서 특정 추론에 대한 요청은 특정 추론에 대한 일반적인 요청일 수 있으며(예: "why did you do that?(왜 그랬어?)"), 반면 다른 구현에서 특정 추론에 대한 요청은 특정 추론에 대한 특정 요청일 수 있다(예: "why did you play the music using application 1?(어플리케이션 1을 사용하여 음악을 재생한 이유는 무엇입니까?)", "why didn't you use application 2?(어플리케이션 2를 사용하지 않은 이유는 무엇입니까?)", "why did you select artist 1?(아티스트 1을 선택한 이유는 무엇입니까?)", 등). 예를 들어, 사용자가 "why did you do that?(왜 그렇게 했습니까?)"라는 추가 음성 발화를 제공한다고 가정한다. 이 예에서, 요청은 특정 추론에 대한 일반적인 요청이며, 자동화된 어시스턴트는 일반 요청에 응답하는 출력을 생성하기 위해 음성 발화의 제1 해석과 연관된 추가 데이터를 결정할 수 있다(예: "You use application 1 the most to listen to music, you have listened to artist 1 in the past, and song 1 is artist 1's most popular song(당신은 음악을 듣기 위해 애플리케이션 1을 가장 많이 사용하고, 과거에 아티스트 1을 들었고, 노래 1은 아티스트 1의 가장 인기 있는 노래입니다)" 등). 대조적으로, 사용자가 "애플리케이션 2를 사용하지 않은 이유는 무엇입니까?"라는 추가 음성 발화를 제공한다고 가정한다. 이 예에서, 요청은 특정 추론에 대한 특정 요청이며, 자동화된 어시스턴트는 일반적인 요청에 응답하는 출력을 생성하기 위해 음성 발화의 제1 해석 및/또는 제2 해석과 연관된 추가 데이터를 결정할 수 있다(예: "음악을 듣기 위해 애플리케이션 2보다 애플리케이션 1을 더 많이 사용한다" 등). 그러나 특정 요청이 포함된 이 예에서는 사용자가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스 권한을 부여하지 않았다고 가정한다. 이 예에서, 자동화된 어시스턴트는 추가로 또는 대안적으로 추천된 액션과 연관된 추천 데이터를 결정할 수 있고, 추천된 액션을 포함하는 추천 데이터에 기초하여 프롬프트를 생성할 수 있다(예: "애플리케이션 2를 사용할 수 있는 액세스 권한을 부여하지 않았습니다. 액세스 권한을 부여하시겠습니까?" 등). 따라서, 자동화된 어시스턴트는 이행의 특정 에스펙트(aspects)에 대한 특정 추론을 제공할 수 있을 뿐만 아니라, 자동화된 어시스턴트가 어시스턴트 명령을 포함하는 사용자 입력 수신에 응답하여 사용자가 현재 및/또는 미래 이행을 적응하도록 프롬프트할 수도 있다.
추가 또는 대체 구현에서 그리고 특정 이행을 수행하도록 하는 자동화된 어시스턴트 이후에, 자동화된 어시스턴트는 특정 추론과 연관된 하나 이상의 선택 가능한 요소가 클라이언트 장치의 디스플레이를 통해 사용자에게 제공되도록 능동적으로 야기할 수 있다. 예를 들어, 특정 추론에 대한 일반적인 요청과 연관된 제1 선택 가능한 요소는 사용자에게 프레젠테이션하기 위해 제공될 수 있으며, 선택되면 자동화된 어시스턴트가 일반 요청에 응답하는 특정 추론을 제공하게 할 수 있다. 또한, 특정 추론에 대한 제1 특정 요청과 연관된 제2 선택 가능 요소는 추가로 또는 대안적으로 사용자에게 프레젠테이션하기 위해 제공될 수 있고, 선택될 때 자동화된 어시스턴트로 하여금 제1 특정 요청에 응답하는 특정 추론을 제공하게 할 수 있다. 더욱이, 특정 추론에 대한 제2 특정 요청과 연관된 제3 선택가능 요소는 추가로 또는 대안적으로 사용자에게 프레젠테이션하기 위해 제공될 수 있고, 선택될 때 자동화된 어시스턴트로 하여금 제2 특정 요청에 응답하는 특정 추론을 제공하게 할 수 있다. 이러한 구현의 일부 버전에서, 자동화된 어시스턴트는 ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭이 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행에 대해 그다지 확신하지 못한다는 것을 나타내는 임계값을 만족하지 못하는 결정에 응답하여 하나 이상의 선택 가능한 요소가 사용자에게 제공되도록 할 수 있다. 그러한 구현의 일부 버전에서, 자동화된 어시스턴트는 ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭에 관계없이 사용자에게 프레젠테이션하기 위해 하나 이상의 선택 가능한 요소가 제공되도록 할 수 있다.
위의 예는 자동화된 어시스턴트가 음악이 재생되도록 하기 위해 특정 소프트웨어 애플리케이션(예: "애플리케이션 1")을 선택한 이유에 대한 특정 추론을 제공하는 것과 관련하여 설명되었지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 본 명세서에 기술된 바와 같이, 본 명세서에 기술된 기술은 특정 컴퓨팅 장치가 어시스턴트 명령의 이행에 사용되도록 선택된 이유, 해당 파라미터에 대한 특정 슬롯 값이 선택된 이유, 자동화된 어시스턴트가 대체 이행을 수행할 수 없는 이유, 및/또는 여기에 설명된 임의의 다른 에스펙트와 같은 이행의 임의의 에스펙트에 대한 특정 추론을 제공하기 위해 사용될 수 있다. 또한, 위의 예에서 설명된 추천된 액션에는 특정 소프트웨어 애플리케이션(예: "애플리케이션 2")에 대한 자동화된 어시스턴트 액세스를 허용하는 사용자가 포함되지만, 이는 또한 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 여기에 설명된 기술은 클라이언트 장치에서 소프트웨어 애플리케이션을 다운로드하는 것, 추가 클라이언트 장치를 네트워크를 통해 클라이언트 장치와 통신적으로 연결하는 것, 및/또는 여기에 설명된 임의의 다른 추천된 액션와 같은, 어시스턴트 명령의 이행에 적응하기 위해 임의의 추천된 액션을 제공하는 데 사용될 수 있다.
여기에 설명된 기술을 사용함으로써 하나 이상의 기술적 이점을 획득할 수 있다. 비제한적인 예로서, 여기에 설명된 기술은 자동화된 어시스턴트가 이행의 특정 에스펙트(또는 이행 부족)에 대한 특정 추론을 제공할 수 있도록 한다. 따라서 클라이언트 장치의 사용자는 자신의 데이터가 언제 사용되고 있으며 특정 추론을 제공함으로써 자신의 데이터가 어떻게 사용되고 있는지 이해할 수 있다. 더 나아가, 여기에 설명된 기술은 자동화된 어시스턴트가 사용자 데이터의 개인 정보 설정을 빠르고 효율적으로 조정할 수 있도록 한다. 사용자가 다양한 인터페이스를 탐색하여 사용자 데이터의 개인 정보 설정을 수동으로 변경해야 할 필요성을 제거하여 사용자 입력의 양을 줄인다. 결과적으로 사용자 데이터의 보안이 강화되고 클라이언트 장치의 계산 리소스가 절약될 수 있다. 또 다른 비제한적 예로서, 수행할 추천된 액션을 제공하고 사람과 컴퓨터 간의 대화를 계속함으로써 자동화된 어시스턴트가 그렇지 않으면 낭비될 사용자 상호 작용을 구제할 수 있다. 예를 들어,
사용자가 하나 이상의 스마트 조명을 제어하기 위해 "turn on the lights(조명 켜)"라는 음성 발화를 제공하지만 사용자가 스마트 조명을 제어하기 위한 소프트웨어 애플리케이션에 대한 자동화된 어시스턴트 액세스 권한을 부여하지 않은 경우, 자동화된 어시스턴트는 자동화된 어시스턴트가 특정 시간에 조명을 제어할 수 없다는 것을 단순히 나타내기보다는 스마트 조명을 제어하기 위한 소프트웨어 애플리케이션에 대한 액세스 권한을 사용자에게 프롬프트할 수 있다. 그 결과, 계산 및/또는 네트워크 리소스는 여기에 설명된 기술을 사용하여 보존될 수 있다.
상기 설명은 본 명세서에 개시된 일부 구현의 개요로서 제공된다. 이러한 구현 및 기타 구현은 여기에서 추가로 자세히 설명된다.
전술한 개념 및 본 명세서에 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 말미에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 간주된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 본 개시의 다양한 에스펙트를 입증하는 예시적인 환경의 블록도를 도시한다.
도 2는 사용자 입력에 포함되고 자동화된 어시스턴트가 수행되도록 하는 어시스턴트 명령의 특정 이행을 야기하고, 다양한 구현에 따라 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 제공하게 한 이유에 대한 특정 추론을 야기하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 3은 사용자 입력에 포함되고 자동화된 어시스턴트로 향하는 어시스턴트 명령의 특정 이행이 수행될 수 없다고 결정하고, 다양한 구현에 따라 자동화된 어시스턴트가 제공될 특정 추론을 수행할 수 없는 이유에 대해 특정 추론을 야기하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 4a, 도 4b 및 도 4c는 다양한 구현에 따라 제공될 어시스턴트 명령의 이행에 관한 특정 추론을 유발하는 다양한 비제한적 예를 도시한다.
도5a 및 5b는 다양한 구현에 따라 제공될 어시스턴트 명령의 이행에 관한 특정 추론을 유발하는 다양한 추가적인 비제한적 예를 도시한다.
도 6은 다양한 구현에 따른 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 2는 사용자 입력에 포함되고 자동화된 어시스턴트가 수행되도록 하는 어시스턴트 명령의 특정 이행을 야기하고, 다양한 구현에 따라 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 제공하게 한 이유에 대한 특정 추론을 야기하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 3은 사용자 입력에 포함되고 자동화된 어시스턴트로 향하는 어시스턴트 명령의 특정 이행이 수행될 수 없다고 결정하고, 다양한 구현에 따라 자동화된 어시스턴트가 제공될 특정 추론을 수행할 수 없는 이유에 대해 특정 추론을 야기하는 예시적인 방법을 예시하는 흐름도를 도시한다.
도 4a, 도 4b 및 도 4c는 다양한 구현에 따라 제공될 어시스턴트 명령의 이행에 관한 특정 추론을 유발하는 다양한 비제한적 예를 도시한다.
도5a 및 5b는 다양한 구현에 따라 제공될 어시스턴트 명령의 이행에 관한 특정 추론을 유발하는 다양한 추가적인 비제한적 예를 도시한다.
도 6은 다양한 구현에 따른 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 1을 참조하면, 본 발명의 다양한 양태를 나타내고 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도가 도시되어 있다. 예시적인 환경은 클라이언트 장치(110), 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115), 하나 이상의 제1-파티 서버(191) 및 하나 이상의 제3-파티 서버(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-파티 서버(192)와 통신 가능하게 결합될 수 있다. 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와 제1-파티(first-party) 서버(191) 중 하나 이상의 통신 연결은 일반적으로 도 1의 1992로 표시된다. 또한, 하나 이상의 제3-파티(third-party) 서버(192)와 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)의 통신 연결은 일반적으로 도 1의 1993으로 표시된다. 일부 구현에서, 비록 도 1에 명시적으로 도시되지는 않았지만. 클라이언트 장치(110)는 추가로 또는 대안적으로 하나 이상의 네트워크(예: LAN, WAN 및/또는 기타 네트워크)를 통해 하나 이상의 제1-파티 서버(191) 및/또는 하나 이상의 제3-파티 서버(192)와 통신 가능하게 결합될 수 있다. 또한, 하나 이상의 네트워크(1991, 1992, 1993)는 간략화를 위해 이하 "네트워크(들)(199)"로 총칭한다.
자동화된 어시스턴트 클라이언트(113)는 클라우드 기반 자동화된 어시스턴트 컴포넌트(115) 중 하나 이상과의 상호 작용을 통해 사용자 관점에서 클라이언트 장치(110)의 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화된 어시스턴트(120)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 예를 들어, 점선으로 둘러싸인 자동화된 어시스턴트(120)의 인스턴스는 클라이언트 장치(110)의 자동화된 어시스턴트 클라이언트(113) 및 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)를 포함한다. 따라서 클라이언트 장치(110)에서 실행되는 자동화된 어시스턴트 클라이언트(113)와 관여하는 각각의 사용자는 사실상 자동화된 어시스턴트(120)의 그 자신의 논리적 인스턴스와 관여할 수 있다는 것을 이해해야 한다(또는 가정 또는 다른 사용자 그룹 간에 공유되는 및/또는 복수의 자동화된 어시스턴트 클라이언트(113) 간에 공유되는 자동화된 어시스턴트(120)의 논리적 인스턴스). 도 1에는 클라이언트 장치(110)만이 도시되어 있지만, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)가 추가로 클라이언트 장치의 많은 추가 그룹에 서비스를 제공할 수 있다는 것이 이해된다. 더욱이, 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)가 도 1에 도시되어 있지만, 다양한 구현에서, 자동화된 어시스턴트(120)는 클라이언트 장치(110)에서만 구현될 수 있음을 이해해야 한다.
본 명세서에서 사용되는 바와 같이, 제1-파티 장치 또는 시스템(예를 들어, 하나 이상의 제1-파티 서버(191), 하나 이상의 제1-파티 소프트웨어 애플리케이션 등)은 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 파티(party)와 동일한 파티에 의해 제어되는 시스템을 참조한다. 예를 들어, 하나 이상의 제1-파티 서버(191)는 검색 엔진 서비스, 통신 서비스(예: 이메일, SMS 메시징 등), 내비게이션 서비스, 음악 서비스, 문서 편집 또는 공유 서비스, 및/또는 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 제1-파티와 동일한 제1-파티가 제어하는 다른 서비스를 호스팅하는 시스템을 참조할 수 있다. 대조적으로, 제3-파티 장치(디바이스) 또는 시스템(예를 들어, 하나 이상의 제3-파티 서버(192), 하나 이상의 제3-파티 소프트웨어 애플리케이션 등)은 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 제1-파티와 별개의 제1-파티에 의해 제어되는 시스템을 참조한다. 예를 들어, 하나 이상의 제3-파티 서버(192)는 동일한 서비스를 호스팅하는 시스템을 참조할 수 있지만, 이러한 서비스는 본 명세서에서 참조되는 자동화된 어시스턴트(120)를 제어하는 제1-파티와 다른 제1-파티에 의해 제어된다.
클라이언트 장치(110)는 예를 들어, 데스크탑 컴퓨팅 장치, 랩탑 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 휴대폰 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예: 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 대화형 독립형 스피커(예: 디스플레이 포함 또는 제외), 스마트 기기, 스마트 텔레비전, 스마트 조명 또는 스마트 세탁기/건조기 등과 같은 스마트 네트워크 장치, 컴퓨팅 장치, 및/또는 자동화된 어시스턴트(120)로 향하는 사용자 입력을 수신할 수 있는 임의의 IoT 장치를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 장치를 가진 사용자의 시계, 컴퓨팅 장치를 가진 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치) 중 하나 이상을 포함할 수 있다. 추가 및/또는 대체 클라이언트 장치가 제공될 수 있다.
다양한 구현에서, 클라이언트 장치(110)는 클라이언트 장치(110)의 사용자로부터의 승인으로 검출된 존재, 특히 인간 존재를 나타내는 신호를 제공하도록 구성되는 하나 이상의 존재 센서(111)를 포함할 수 있다. 그러한 구현들 중 일부에서, 자동화된 어시스턴트(120)는 클라이언트 장치(110)(또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치에서)에서의 사용자의 존재의 적어도 일부에 기초하여 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)를 만족시키기 위해 클라이언트 장치(110)(또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치)를 식별할 수 있다. 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)는 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)가 제어되게 함으로써, 및/또는 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)로 하여금 음성 발화(또는 자동화된 어시스턴트(120)로 향하는 다른 입력)를 만족시키기 위해 임의의 다른 동작을 수행하게 함으로써, 클라이언트 장치(110) 및/또는 클라이언트 장치(110)의 사용자와 연관된 다른 컴퓨팅 장치(들)에서 반응형 콘텐츠를 렌더링(예: 청각 및/또는 시각적으로)함으로써 충족될 수 있다. 본 명세서에 기술된 바와 같이, 자동화된 어시스턴트(120)는 사용자가 어디에 가까이 있는지 또는 최근에 근처에 있었는지에 기초하여 클라이언트 장치(110)(또는 다른 컴퓨팅 장치)를 결정할 때 존재 센서(111)에 기초하여 결정된 데이터를 사용할 수 있고, 대응하는 명령을 클라이언트 장치(110)(또는 다른 컴퓨팅 장치)에만 제공할 수 있다. 일부 추가 또는 대체 구현에서, 자동화된 어시스턴트(120)는 임의의 사용자(들) 여부를 결정할 때 존재 센서(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 신호에 기초하여 사람의 위치를 검출하는 데 사용될 수 있다. 다른 구현에서, TOF(time-of-flight), 신호 강도 등과 같은 다른 무선 신호 특성은 사용자에 의해 휴대/작동되는 다른 컴퓨팅 장치(들)에 의해 방출된 신호에 기초하여 특정 사람의 위치를 결정하기 위해 클라이언트 장치(110)에 의해 단독으로 또는 집합적으로 사용될 수 있다.
추가로 또는 대안적으로, 일부 구현에서, 클라이언트 장치(110)는 음성 인식을 수행하여 음성으로부터 사용자를 인식할 수 있다. 예를 들어, 자동화된 어시스턴트(120)의 일부 인스턴스는 예를 들어 다양한 리소스에 대한 액세스를 제공/제한하기 위해 사용자의 프로필에 음성을 일치시키도록 구성될 수 있다. 일부 구현에서, 화자의 움직임은 예를 들어 클라이언트 장치(110)의 존재 센서(111)(및 선택적으로 GPS 센서 및/또는 가속도계)에 의해 결정될 수 있다. 일부 구현에서, 이렇게 검출된 움직임에 기초하여, 사용자의 위치가 예측될 수 있고, 이 위치는 사용자의 위치에 대한 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)에서 적어도 부분적으로 근접성에 기초하여 클라이언트 장치(110) 및/또는 다른 컴퓨팅 장치(들)에서 임의의 콘텐츠가 렌더링되게 할 때 사용자의 위치로 가정될 수 있다. 일부 구현에서, 사용자는 특히 마지막 참여 이후 많은 시간이 경과하지 않은 경우 자동화된 어시스턴트(120)와 참여했던 마지막 위치에 있는 것으로 간단하게 가정될 수 있다.
클라이언트 장치(110)는 하나 이상의 사용자 인터페이스 입력 장치 (예: 마이크로폰, 터치스크린, 키보드 및/또는 기타 입력 장치) 및/또는 하나 이상의 사용자 인터페이스 출력 장치(예: 디스플레이, 스피커, 프로젝터 및/또는 기타 출력 장치)를 포함할 수 있는 사용자 인터페이스 컴포넌트(들)(112)를 더 포함한다. 더 나아가, 클라이언트 장치(110) 및/또는 임의의 다른 컴퓨팅 장치(들)는 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터 액세스 및 애플리케이션 실행을 위한 하나 이상의 프로세서, 네트워크(들)(199)를 통한 통신을 용이하게 하는 기타 파라미터를 포함한다. 일부 구현에서, 클라이언트 장치(110), 다른 컴퓨팅 장치(들) 및/또는 자동화된 어시스턴트(120)에 의해 수행되는 동작은 여러 컴퓨터 시스템에 걸쳐 분산될 수 있으며, 다른 구현에서, 본 명세서에 기술된 동작은 클라이언트 장치(110) 또는 원격 시스템에서 배타적으로 수행될 수 있다. 자동화된 어시스턴트(120)는 예를 들어 네트워크(예를 들어, 도 1의 네트워크(들)(199))를 통해 서로 연결된 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램으로 구현될 수 있다.
전술한 바와 같이, 다양한 구현에서, 클라이언트 장치(110)는 자동화된 어시스턴트 클라이언트(113)를 작동시킬 수 있다. 다양한 실시예에서, 자동화된 어시스턴트 클라이언트(113)는 음성 캡처/자동 음성 인식(ASR: automatic speech recognition)/자연어 이해(NLU: natural language understanding)/TTS(text-to-speech)/이행 모듈(fulfillment module)(114)을 포함할 수 있다. 다른 구현에서, 각각의 음성 캡처/ASR/NLU/TTS/이행 모듈(114)의 하나 이상의 에스펙트(aspect)는 자동화된 어시스턴트 클라이언트(113)와 별도로 구현될 수 있다(예를 들어, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)에 의해).
음성 캡처/ASR/NLU/TTS/이행 모듈(114)은 예를 들어 사용자의 음성을 캡처(음성 캡처, 예를 들어 각각의 마이크로폰(들)을 통해)하고(어떤 경우에는 존재 센서(111) 중 하나 이상을 포함할 수 있음)); 기계 학습(ML) 모델(들) 데이터베이스(120A)에 저장된 ASR 모델(들)을 사용하여 캡처된 오디오를 인식된 텍스트 및/또는 다른 표현 또는 임베딩으로 변환하고; ML 모델(들) 데이터베이스(120A)에 저장된 NLU 모델(들)을 사용하여 인식된 텍스트를 파싱 및/또는 주석을 달고(annotate); 및/또는 데이터를 얻고 및/또는 ML 모델(들) 데이터베이스(120A)에 저장된 하나 이상의 이행 규칙(들) 및/또는 이행 모델(들)을 사용하여 사용자의 말에 응답하여 ㅇo액션(들)이 수행되게 하기 위해 구조화된 요청을 생성하는 데 사용할 이행 데이터(fulfillment data)를 결정하는 것을 포함하는 하나 이상의 기능을 수행하도록 구성될 수 있다. 또한, 음성 캡처/ASR/NLU/TTS/이행 모듈(114)은 ML 모델(들) 데이터베이스(120A)에 저장된 TTS 모델(들)을 사용하여 텍스트를 음성으로 변환하고, TTS 변환에 기초하여 합성된 음성을 캡처하는 합성된 음성 오디오 데이터는 클라이언트 장치(110)의 스피커(들)을 통해 클라이언트 장치(110)의 사용자에게 가청적인 프레젠테이션을 위해 제공될 수 있다. 이러한 ML 모델(들)의 인스턴스(들)는 클라이언트 장치(110)에 로컬로 저장될 수 있고 및/또는 도 1의 네트워크(들)(199)를 통해 클라이언트 장치(110)에 의해 액세스 가능할 수 있다. 일부 구현에서, 클라이언트 장치(110)는 컴퓨팅 리소스(예: 프로세서 주기, 메모리, 배터리 등) 측면에서 상대적으로 제약을 받을 수 있으므로, 클라이언트 장치(110)에 로컬인 각각의 음성 캡처/ASR/NLU/TTS/이행 모듈(114)은 음성 인식 모델(들)을 사용하여 한정된 수의 서로 다른 음성 발화를 텍스트(또는 저차원 임베딩(lower dimensionality embedding)과 같은 다른 형식으로)로 변환하도록 구성될 수 있다.
일부 음성 입력은 하나 이상의 클라우드 기반 자동화된 어시스턴트 파라미터(115)로 전송될 수 있으며, 이는 클라우드 기반 ASR 모듈(116), 클라우드 기반 NLU 모듈(117), 클라우드 기반 TTS 모듈(118) 및/또는 클라우드 기반 이행 모듈(119)을 포함할 수 있다. 이러한 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)는 클라이언트 장치(110)에 로컬인 음성 캡처/ASR/NLU/TTS/이행 모듈(114)과 관련하여 설명된 동일하거나 유사한 기능을 수행하기 위해 클라우드의 거의 무한한 리소스를 사용하고, 그러나 음성 캡처/ASR/NLU/TTS/이행 모듈(114)은 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)와 상호 작용하지 않고 클라이언트 장치(110)에서 로컬로 이 기능을 수행할 수 있다는 점에 유의해야 한다.
도 1은 단일 사용자를 갖는 단일 클라이언트 장치에 대해 설명되며, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 사용자의 하나 이상의 추가 클라이언트 장치는 또한 여기에 설명된 기술을 구현할 수 있다. 이러한 추가적인 클라이언트 장치는 (예를 들어, 네트워크(들)(199)를 통해) 클라이언트 장치(110)와 통신할 수 있다. 다른 예로서, 클라이언트 장치(110)는 공유 설정(예를 들어, 사용자 그룹, 가정, 호텔 방, 회사의 공유 공간 등)에서 복수의 사용자에 의해 사용될 수 있다.
일부 구현에서, 클라이언트 장치(110)는 사용자 입력에 포함되고 그리고 특정 추론을 요청하는 추가 사용자 입력에 대한 응답으로 클라이언트 장치(110)의 사용자에게 프레젠테이션하기 위해 제공될 자동화된 어시스턴트(120)로 향하는 어시스턴트 명령의 이행에 대한 특정 추론(reasoning)을 야기하는 데 사용되는 다양한 엔진을 더 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 클라이언트 장치(110)는 요청 엔진(130) 및 추론 엔진(140)을 더 포함할 수 있다. 클라이언트 장치(110)는 사용자 프로파일(들) 데이터베이스(110A), ML 모델(들) 데이터베이스(120A) 및 메타데이터 데이터베이스(140A)를 포함하는 온-디바이스 메모리를 더 포함할 수 있다. 일부 구현에서, 이러한 다양한 엔진은 클라이언트 장치(110)에서만 독점적으로 실행될 수 있다. 추가 또는 대체 구현에서, 이들 다양한 엔진 중 하나 이상이 클라이언트 장치(110)로부터 원격으로 실행될 수 있다(예를 들어, 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)의 일부로서). 예를 들어, 어시스턴트 명령이 클라이언트 장치(110)에서 로컬로 수행되는 구현에서, 이들 다양한 엔진의 온-디바이스 인스턴스가 여기에서 설명된 동작을 수행하는 데 사용될 수 있다. 그러나, 어시스턴트 명령(assistant command)이 (예를 들어, 클라우드 기반 자동화된 어시스턴트 컴포넌트(115)의 일부로서) 클라이언트 장치(110)로부터 원격으로 이행되는 구현에서, 이러한 다양한 엔진의 원격 인스턴스가 본 명세서에 설명된 동작을 수행하기 위해 사용될 수 있다.
일부 구현에서, 클라이언트 장치의 사용자 인터페이스 컴포넌트(들)(112)를 통해 검출되고 자동화된 어시스턴트(120)로 향하는 사용자 입력에 포함된 어시스턴트 명령을 이행한 후, 요청 엔진(130)은 추가 사용자 입력이 요청을 포함하는지 여부를 결정하기 위해 추가 사용자 입력이 프로세싱되게 할 수 있다(예를 들어, 음성 캡처/ASR/NLU/TTS/이행 모듈(114)의 하나 이상의 에스펙트를 사용하여). 예를 들어, 클라이언트 장치(110)의 사용자가 클라이언트 장치(110) 사용자의 집에 있는 조명이 꺼진 상태에서 켜진 상태로 켜지도록 "turn on the lights(조명 켜)"라는 음성 발화를 제공한다고 가정한다. 도 2 및 도 3과 관련하여 더 상세히 기술된 바와 같이, 음성 발화를 캡처하는 오디오 데이터는 ASR 출력(선택적으로 ASR 메트릭 포함)을 생성하기 위해 ML 모델(들) 데이터베이스(120A)에 저장된 ASR 모델(들)을 사용하여 프로세싱될 수 있고, ASR 출력은 NLU 출력(선택적으로 NLU 메트릭 포함)을 생성하기 위해 ML 모델(들) 데이터베이스(120A)에 저장된 NLU 모델(들)을 사용하여 프로세싱될 수 있고, NLU 출력은 이행 출력(fulfillment output)을 생성하기 위해 ML 모델(들) 데이터베이스(120A)에 저장된 이행 규칙(들) 및/또는 이행 모델(들)을 사용하여 프로세싱될 수 있다. 이행 출력과 연관된 구조화된 요청(들)은 클라이언트 장치(110)에서 로컬로 및/또는 제1-파티 서버(들)(191) 및/또는 제3-파티 서버(들)(192)에서 원격으로 실행되는 다양한 소프트웨어 애플리케이션과 같은 하나 이상의 이행자(fulfiller)에게 전송될 수 있고 그리고 하나 이상의 이행 후보들이 구조화된 요청(들)에 응답하여 생성될 수 있다(각 이행 메트릭은 하나 이상의 해당 이행 측정과 연관될 수 있음). 자동화된 어시스턴트(120)는 하나 이상의 이행 후보가 ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭에 기초하여 순위가 매겨지게 할 수 있다. ASR 메트릭, NLU 메트릭, 이행 메트릭, 및/또는 음성 발화의 이행과 연관된 임의의 다른 데이터는 메타데이터 데이터베이스(140A)에 저장될 수 있다. 이 데이터는 이후에 (예를 들어, 도 2, 3, 4a-4c 및 5a-5b와 관련하여) 본 명세서에 기술된 바와 같이 어시스턴트 명령의 이행을 위한 특정 추론을 제공하는 것과 연관된 데이터를 결정하기 위해 자동화된 어시스턴트(120)에 의해 액세스될 수 있다.
그러나, 이 예에서, 클라이언트 장치(110)의 사용자가 클라이언트 장치 사용자의 거주지에서 조명을 제어하는 것과 연관된 소프트웨어 애플리케이션 또는 서비스에 대한 자동화된 어시스턴트(120) 액세스를 허가하지 않았다고 가정한다. 따라서, 이 예에서 하나 이상의 이행 후보는 조명을 켜는 데 사용되는 데이터기 이러한 이행자 중 하나 이상에 대한 액세스 부족으로 인해 적어도 결정할 수 없기 때문에 클라이언트 장치(110)에서 또는 음성 발화를 만족시킬 수 있는 서버(예를 들어, 제1-파티 서버(들)(191) 및/또는 제3-파티 서버)에서 액세스 가능한 소프트웨어 애플리케이션이 없음을 나타낼 수 있다. 그 결과, 자동화된 어시스턴트(120)는 클라이언트 장치(110)의 사용자에게 자동화된 어시스턴트(120)가 음성 발화를 만족시킬 수 없음을 통지하는데 사용될 대체 데이터를 결정할 수 있다. 따라서, 자동화된 어시스턴트(120)는 음성 캡처/ASR/NLU/TTS/이행 모듈(114)을 사용하여 대체 데이터를 기반으로 예를 들어 "Sorry, but I cannot turn on the lights(미안하지만 조명을 켤 수 없습니다)"와 같은 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 생성하고 그리고 클라이언트 장치(110)의 스피커를 통한 가청적인 프레젠테이션을 위해 합성된 음성이 제공되도록 한다.
일부 구현에서, 클라이언트 장치(110)의 사용자가 자동화된 어시스턴트(120)가 어시스턴트 명령의 특정 이행이 수행되게 한 이유에 대한 특정 추론을 제공하도록 요청하는 추가 사용자 입력을 제공한다고 가정하면, 요청 엔진(130)은 요청이 이행에 대한 특정 추론에 대한 일반적인 요청인지 또는 이행에 대한 특정 추론에 대한 특정 요청인지를 결정할 수 있다. 요청 엔진(130)은 추가 사용자 입력 프로세싱에 기초하여 생성된 적어도 NLU 출력에 기초하여 요청이 이행에 대한 특정 추론에 대한 일반 요청인지 또는 이행에 대한 특정 추론에 대한 특정 요청인지를 결정할 수 있고, 추론 엔진(140)은 요청 유형에 기초하여 특정 추론을 제공하는 데 사용되는 것으로 결정된 추가 데이터를 적응시킬 수 있다(예를 들어, 도 2, 3, 4a-4c 및 5a-5b와 관련하여 기술된 바와 같이). 추가적인 또는 대안적인 구현에서, 자동화된 어시스턴트(120)는 수행될 때 자동화된 어시스턴트(120)가 어시스턴트 명령의 특정 이행을 야기할 수 있게 하는 추천된 액션을 결정하기 위해 추천 데이터를 획득할 수 있다. 이 예에서, 추천된 액션은 자동화된 어시스턴트(120)가 조명을 제어하게 할 수 있는 소프트웨어 애플리케이션 또는 서비스에 대한 액세스를 승인하는 것을 포함할 수 있다. 따라서, 자동화된 어시스턴트(120)는 음성 캡처/ASR/NLU/TTS/이행 모듈(114)을 사용하여 추천 데이터를 기반으로 예를 들어 "I would be able to control the lights if you granted me access to lights application(당신이 허락했다면 조명을 제어할 수 있을 것입니다.)"와 같은 합성된 음성을 포함하는 추가 합성 음성 오디오 데이터를 생성할 수 있으며, 합성된 음성이 클라이언트 장치(110)의 스피커(들)를 통해 가청적인 프레젠테이션을 위해 제공되도록 한다. 위의 설명은 예시를 위해 제공되고 제한하려는 의도가 아님을 이해해야 하며, 여기에 설명된 기술의 추가 설명이 도 2, 3, 4a-4c 및 5a-5b와 관련하여 아래에 제공된다는 점에 유의해야 한다.
도 2를 참조하면, 사용자 입력에 포함되고 수행될 자동화된 어시스턴트로 향하는 어시스턴트 명령의 특정 이행을 야기하는 예시적인 방법(200)을 예시하는 흐름도가 묘사된다. 편의상, 방법(200)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(200)의 이러한 시스템은 하나 이상의 프로세서, 메모리, 및/또는 컴퓨팅 장치(들)의 다른 컴포넌트(들)를 포함한다(예를 들어, 도 1의 클라이언트 장치(110), 도 4a-4c의 클라이언트 장치(410), 도 5a-5b의 클라이언트 장치(510), 도 6의 컴퓨팅 장치(610), 하나 이상의 서버 및/또는 다른 컴퓨팅 장치). 더욱이, 방법(200)의 동작이 특정 순서로 도시되어 있지만, 이는 제한을 의미하지 않는다. 하나 이상의 작업을 재정렬, 생략 및/또는 추가할 수 있다.
블록(252)에서, 시스템은 어시스턴트 명령을 포함하고 자동화된 어시스턴트로 향하는 사용자 입력을 클라이언트 장치의 사용자로부터 수신한다. 일부 구현에서, 사용자 입력은 클라이언트 장치의 마이크로폰(들)에 의해 생성된 오디오 데이터에서 캡처된 음성 발화에 대응할 수 있다. 추가적인 또는 대안적인 구현에서, 사용자 입력은 클라이언트 장치의 디스플레이 또는 클라이언트 장치의 다른 입력 장치(예를 들어, 키보드 및/또는 마우스)를 통해 수신된 터치 입력 또는 타이핑된 입력에 대응할 수 있다.
블록(254)에서, 시스템은 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터를 결정하기 위해 사용자 입력을 프로세싱한다. 사용자 입력이 음성 발화에 해당하는 구현에서, 음성 발화를 캡처하는 오디오 데이터는 ASR 모델(들)을 사용하여 프로세싱되어 ASR 출력(예: 음성 가설(들), 음소(들) 및/또는 기타 ASR 출력) 및 선택적으로 ASR 출력과 연관된 ASR 메트릭을 생성할 수 있다. 또한 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력(예: ASR 출력에 기초하여 결정된 의도, ASR 출력에 기초하여 결정된 의도와 연관된 파라미터에 대한 슬롯 값 등) 및 선택적으로 NLU 출력과 연관된 NLU 메트릭을 생성할 수 있다. 또한, NLU 출력은 어시스턴트 명령의 이행에 사용되는 데이터를 얻기 위해 전송될 요청을 생성하는데 사용되는 이행 출력을 생성하기 위해 및/또는 이행 출력 및 선택적으로 이행 데이터와 연관된 이행 메트릭에 기초하여 액션(들)이 수행되도록(예를 들어, 도 1의 제1-파티 서버(들)(191), 도 1의 제3-파티 서버(들)(192), 클라이언트 장치에서 로컬로 구현된 제1-파티 소프트웨어 애플리케이션(들), 제3-파티 클라이언트 장치 등에서 로컬로 구현된 소프트웨어 애플리케이션) 이행 규칙 및/또는 이행 모델을 사용하여 프로세싱될 수 있다. 사용자 입력이 터치 입력 또는 타이핑된 입력에 해당하는 구현에서, 터치 입력 또는 타이핑된 입력에 해당하는 텍스트는 NLU 모델을 사용하여 NLU 출력 및 선택적으로 NLU 출력과 연관된 NLU 메트릭을 생성하여 프로세싱될 수 있다. 또한 NLU 출력은, 어시스턴트 명령의 이행 수행에 사용되는 데이터를 얻기 위해 전송될 요청을 생성하는 데 사용되는 이행 출력을 생성하기 위해 및/또는 어시스턴트 명령의 이행 수행 시 이행 출력에 따라 액션(들)이 수행되도록, 이행 규칙 및/또는 이행 모델을 사용하여 프로세싱될 수 있다.
블록(256)에서, 시스템은 자동화된 어시스턴트가 데이터를 사용하여 어시스턴트 명령의 특정 이행을 수행하게 한다. 특히, 이행 출력은 결과적으로 하나 이상의 이행 후보를 생성하는, 도 1의 제1-파티 서버(들)(191), 도 1의 제3-파티 서버(들)(192), 클라이언트 장치에서 로컬로 구현된 제1-파티 소프트웨어 애플리케이션(들), 클라이언트 장치에 로컬로 구현된 제3-파티 소프트웨어 애플리케이션 중 하나 이상에 전송된 데이터를 포함할 수 있다. 시스템은 예를 들어 ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭에 기초하여 어시스턴트 명령의 특정 이행을 수행하기 위해 하나 이상의 이행 후보 중에서 특정 이행 후보를 선택할 수 있다. 예를 들어, 클라이언트 장치의 사용자가 "play rock music(록 음악 재생)"라는 음성 발화를 제공한다고 가정한다. 이 예에서, 음성 발화를 캡처하는 오디오 데이터는 ASR 모델(들)을 사용하여 프로세싱되어, ASR 출력으로서, 제1 ASR 메트릭과 연관된 "록 음악 재생"의 제1 음성 가설(예를 들어, 제1 음성 가설이 확률, 이진 값, 로그 우도 등과 같이, 음성 발화에 포함된 용어(들) 및/또는 구(들)에 대응할 가능성) 및 제2 ASR 메트릭과 연관된 "play Bach music(바흐 음악 재생)"의 제2 음성 가설, 및/또는 다른 음성 가설 및 해당 메트릭을 생성할 수 있다. 또한, 각각의 음성 가설은 NLU 모델(들)을 사용하여 프로세싱되어, NLU 데이터로서, 제1 NLU 메트릭과 연관된 장르 파라미터에 대해 "록"의 슬롯 값을 갖는 "play music(음악 재생)"의 제1 의도(intent)(예를 들어, 제1 의도 및 슬롯 값(들)이 확률, 이진 값, 로그 우도 등과 같은 사용자의 원하는 의도에 대응할 가능성) 및 제2 NLU 메트릭과 연관된 아티스트 파라미터에 대한 슬롯 값("Bach")을 갖는 "play music(음악 재생)"의 제2 의도를 생성할 수 있다.
더욱이, 이 예에서, 하나 이상의 이행 후보는 예를 들어, 제1 이행 메트릭과 연관된 제1-파티 미디어 애플리케이션을 사용하여 록 음악을 재생하는 제1 이행 후보(예: 시스템의 이행 요청에 응답하는 제1-파티 미디어 애플리케이션에 의해 시스템으로 반환됨), 제2 이행 메트릭과 연관된 제3-파티 미디어 애플리케이션을 사용하여 록 음악을 재생하는 제2 이행 후보(예: 시스템의 이행 요청에 응답하는 제3-파티 미디어 애플리케이션에 의해 시스템으로 반환됨), 제3 이행 메트릭과 연관된 제1-파티 미디어 애플리케이션을 사용하여 "바흐(Bach)" 음악을 재생하는 제3 이행 후보(예: 시스템의 이행 요청에 응답하는 제1-파티 미디어 애플리케이션에 의해 시스템으로 반환됨), 제4 이행 메트릭과 연관된 제3-파티 미디어 애플리케이션을 사용하여 바흐 음악을 재생하는 제4 이행 후보(예: 시스템의 이행 요청에 응답하는 제3-파티 미디어 애플리케이션에 의해 시스템으로 반환됨) 및/또는 다른 이행 후보를 포함할 수 있다. 이 예에서, ASR 메트릭, NLU 메트릭 및/또는 이행 메트릭이 제1-파티 미디어 애플리케이션을 사용하여 록 음악을 재생하는 제1 이행 후보가 음성 발화를 충족할 가능성이 가장 높다는 것을 나타낸다고 가정하면, 자동화된 어시스턴트는 어시스턴트 명령의 특정 이행으로 제1-파티 미디어 애플리케이션이 록 음악을 재생하도록 할 수 있다. 이 예에서, 시스템은, "음악 재생" 의도와 연관된 다른 파라미터 및 두 가지 해석(예: NLU 출력의 일부)에 대한 슬롯 값을 추론할 수 있다. 예를 들어, "록 음악 재생"의 제1 해석과 관련하여, 시스템은, 시스템에서 액세스할 수 있는 경우 사용자 프로필 데이터(예를 들어, 도 1의 클라이언트 장치(110)의 사용자 프로파일(들) 데이터베이스(110A)에 저장됨)를 기반으로, 아티스트 파라미터(예: 사용자가 가장 많이 듣는 록 아티스트)에 대한 아티스트 슬롯 값을 추론하고, 소프트웨어 애플리케이션 파라미터(예: 사용자가 음악을 듣기 위해 가장 많이 사용하는 애플리케이션)에 대한 소프트웨어 애플리케이션 슬롯 값을 추론하고, 노래 파라미터 등(예: 사용자가 가장 많이 들은 록 곡 또는 가장 많이 들은 바흐 작곡)에 대한 노래 슬롯 값을 추론할 수 있다. 그렇지 않으면 시스템이 이러한 파라미터 중 하나 이상에 대해 기본 슬롯 값을 사용할 수 있다. 다른 예에서, 사용자는 특정 아티스트, 특정 아티스트, 특정 소프트웨어 애플리케이션 등과 같은 이러한 파라미터 중 하나 이상에 대한 슬롯 값을 지정할 수 있다.
일부 구현에서, 블록(256)은 서브-블록(256A)을 포함할 수 있다. 포함된다면, 서브-블록(256A)에서, 시스템은 특정 이행에 대한 특정 추론과 연관된 하나 이상의 선택 가능한 요소가 사용자에게 제공되도록 한다. 특정 이행에 대한 특정 추론은 예를 들어, 사용자 입력에 응답하는 것으로서 하나 이상의 이행 후보 중에서 특정 이행 후보가 선택된 하나 이상의 이유를 포함할 수 있다. 클라이언트 장치의 사용자로부터, 특정 선택 가능한 요소, 하나 이상의 선택 가능한 요소에 대한 사용자 선택을 수신하는 것에 응답하여, 시스템은 클라이언트 장치의 사용자에게 프레젠테이션하기 위해 특정 추론이 제공되도록 할 수 있다. 이러한 구현의 일부 버전에서, 시스템은 ASR 메트릭, NLU 메트릭, 및/또는 선택된 특정 이행 후보와 연관된 이행 메트릭이 메트릭 임계값을 충족하지 못한다는 결정에 응답하여 특정 이행에 대한 특정 추론과 관련된 하나 이상의 선택 가능한 요소가 사용자에게 제공되도록 할 수 있다. 달리 말하면, 선택된 특정 이행 후보가 사용자가 의도한 것일 가능성이 가장 높지만 시스템이 선택된 특정 이행 후보에 대해 그다지 확신하지 못한다고 시스템이 결정하는 것에 응답하여, 시스템은 특정 이행에 대한 특정 추론과 관련된 하나 이상의 선택 가능한 요소가 사용자에게 제공되도록 할 수 있다. 이러한 구현의 다른 버전에서, 시스템은 ASR 메트릭, NLU 메트릭 및/또는 선택된 특정 이행 후보와 연관된 이행 메트릭에 관계없이 특정 이행에 대한 특정 추론과 관련된 하나 이상의 선택 가능한 요소가 사용자에게 제공되도록 할 수 있다. 여기에 설명된 바와 같이(예를 들어, 도 5b와 관련하여), 하나 이상의 선택 가능한 요소는 일반적인 요청(general request) 또는 하나 이상의 대응하는 특정 요청(particular request)과 연관될 수 있다.
블록(258)에서, 시스템은 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 대한 특정 추론의 요청이 클라이언트 장치에서 수신되는지 여부를 결정한다. 일부 구현에서, 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 대한 특정 추론의 요청은 클라이언트 장치에서 수신되는 추가 사용자 입력에 포함될 수 있다. 이러한 구현의 일부 버전에서, 시스템은 추가 사용자 입력이 특정 추론에 대한 요청을 포함하는지 여부를 결정하기 위해 블록(252)과 관련하여 설명된 것과 동일하거나 유사한 방식으로, ASR 모델(들)을 사용하여 추가 사용자 입력을 프로세싱하여 ASR 출력을 생성하고, NLU 모델(들)을 사용하여 NLU 데이터를 생성하고, 이행 규칙(들) 또는 모델(들)을 사용하여 이행 출력을 생성할 수 있다. 예를 들어, 추가 사용자 입력이 음성 발화 또는 타이핑된 입력인지 여부에 관계없이 추가 사용자를 프로세싱하여 NLU 출력을 생성할 수 있으며, 시스템은 자동화된 어시스턴트가 NLU 출력(예: 특정 추론에 대한 요청과 연관된 의도)에 기초하여 특정 이행을 수행하게 한 이유에 대한 특정 추론의 요청이 추가 사용자 입력에 포함되어 있는지 여부를 결정할 수 있다. 이러한 구현의 추가 또는 대체 버전에서, 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청은 클라이언트 장치에서 수신되는 하나 이상의 선택 가능한 요소의 사용자 선택에 포함될 수 있다(예를 들어, 서브-블록(256A)에 대해 전술한 바와 같이). 블록(258)의 반복에서, 시스템은 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청이 클라이언트 장치에서 수신되지 않는다고 결정하면, 시스템은 자동화된 어시스턴트가 블록 258에서 특정 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청을 계속 모니터링한다(그리고 선택적으로 특정 이행이 수행되게 한 후 임계 기간 동안(예를 들어, 5초, 10초, 15초, 및/또는 임의의 다른 임계 기간 동안)). 블록(258)의 반복에서, 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청이 클라이언트 장치에서 수신되었다고 시스템이 결정하면, 시스템은 블록(260)으로 진행한다.
블록(260)에서, 시스템은 특정 추론(reasoning)을 제공하는 데 사용될 추가 데이터를 결정하기 위한 요청을 포함하는 추가 사용자 입력을 프로세싱한다. 특정 추론을 제공하는 데 사용될 것으로 결정된 추가 데이터는 예를 들어 추가 사용자 입력에 포함된 요청의 유형에 기초할 수 있다. 따라서, 블록(262)에서, 시스템은 특정 추론에 대한 요청 유형을 결정한다. 요청 유형은 예를 들어, 자동화된 어시스턴트가 특정 이행(fulfillment)을 수행하게 한 이유에 관한 특정 추론에 대한 일반적인 요청(예: "why did you do that?(왜 그랬어?)") 또는 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 관한 특정 추론에 대한 특정 요청(예: "why did you select the first-party music application?(제1-파티 음악 애플리케이션을 선택한 이유는 무엇입니까?)", "why didn’t you select the third-party music application?(제3-파티 음악 애플리케이션을 선택하지 않은 이유는 무엇입니까?)", "why did you select the certain artist?(특정 아티스트를 선택한 이유는 무엇입니까?)", "why did you select the certain artist’s most popular song?(특정 아티스트의 가장 인기 있는 곡을 선택한 이유는 무엇입니까?)) 및/또는 기타 특정 요청이 될 수 있다. 예를 들어, 추가 사용자는 NLU 출력을 생성하도록 프로세싱될 수 있으며, 시스템은 자동화된 어시스턴트가 NLU 출력에 기초하여 특정 이행을 수행하게 한 이유와 관련하여 추가 사용자 입력이 특정 추론에 대한 요청을 포함하는지 여부를 결정할 수 있다(예: 특정 추론에 대한 일반적인 요청과 연관된 의도 및/또는 특정 추론에 대한 특정 요청과 연관된 의도).
블록 262의 반복에서, 시스템이 특정 추론에 대한 요청 유형이 특정 추론에 대한 일반적인 요청이라고 결정하면 시스템은 블록 264로 진행한다. 블록 264에서, 시스템은 특정 추론을 제공할 때 추가 데이터로서 제1 추가 데이터를 결정한다. 위의 "play rock music(록 음악 재생)"의 예에서, 특정 추론에 대한 일반적인 요청은 예를 들어 "why did you do that?"라는 요청으로 구체화될 수 있으며, 여기서 "that"은 특정 록 아티스트 및 선택된 특정 록 노래와 함께 제1-파티 미디어 애플리케이션을 사용하여 록 음악을 재생하는 것과 같이 선택된 특정 이행 후보를 나타낸다. 요청 유형을 일반 요청으로 결정하는 응답으로, 시스템은 예를 들어 "I selected the first-party application because you share your application usage with me and use it the most to listen to music(애플리케이션 사용을 공유하고 음악을 듣는 데 가장 많이 사용하기 때문에 퍼스트 파티 애플리케이션을 선택했습니다.)", "I selected a certain artist because you share your music preferences with me and you listen to the certain artist the most(음악 취향이 비슷하시고 특정 아티스트의 음악을 가장 많이 들으셔서 특정 아티스트를 선택했습니다.)", "I selected a certain song by the certain artist because it the certain artist’s most popular song(특정 아티스트의 노래가 가장 인기가 많아서 특정 아티스트의 노래를 선택했습니다.)"의 출력에 해당하는 추가 데이터로서 특정 이행 후보와 연관된 제1 데이터를 획득하거나 및/또는 사용자 입력에 응답하여 시스템이 특정 이행 후보(또는 추론된 특정 슬롯 값)를 선택한 이유와 연관된 다른 추론을 획득할 수 있다.
블록 262의 반복에서, 시스템이 특정 추론에 대한 요청 유형이 특정 추론에 대한 특정 요청이라고 결정하면 시스템은 블록 266으로 진행한다. 블록 266에서, 시스템은 특정 추론을 제공하는 데 있어 추가 데이터로 제2 추가 데이터를 결정한다. 위의 "록 음악 재생"의 예에서, 특정 추론에 대한 특정 요청은 예를 들어 "why did you select the first-party music application?(제1-파티 음악 애플리케이션을 선택한 이유는 무엇입니까?", "why didn’t you select the third-party music application?(왜 제3-파티 음악 애플리케이션을 선택하지 않았습니까?)", "why did you select the certain artist?(특정 아티스트를 선택한 이유는?)"와 같은 요청으로 구체화되거나, 및/또는 기타 특정 요청으로 구체화될 수 있다. 요청 유형이 특정 요청이라는 결정에 응답하여, 시스템은 예를 들어, "I selected the first-party application because you share your application usage with me and use it the most to listen to music(애플리케이션 사용을 공유하고 음악을 듣는 데 가장 많이 사용하기 때문에 제1-파티 애플리케이션을 선택했습니다)", "I did not select the third-party application because you have not provided me with access to the third-party application("제3-파티 애플리케이션에 대한 액세스 권한을 제공하지 않았기 때문에 제3-파티 애플리케이션을 선택하지 않았습니다.)", "I selected a certain artist because you share your music preferences with me and you listen to the certain artist the most(음악 취향이 비슷하시고 특정 아티스트의 음악을 가장 많이 들으셔서 특정 아티스트를 선택했습니다.)", " selected a certain song by the certain artist because it the certain artist’s most popular song(“어떤 가수의 노래가 그 가수의 가장 인기 있는 곡이라 그 가수의 노래를 선택했습니다)"의 출력에 해당하는 추가 데이터로서 특정 이행 후보 또는 하나 이상의 이행 후보에 포함된 대체 이행 후보와 연관된 제2 데이터를 획득할 수 있거나, 및/또는 사용자 입력에 응답하여 시스템이 특정 이행 후보를 선택하거나 특정 대체 이행 후보를 선택하지 않은 이유와 연관된 기타 추론을 획득할 수 있다.
블록(268)에서, 시스템은 자동화된 어시스턴트가 특정 추론을 포함하는 출력을 사용자에게 프레젠테이션하기 위해 추가 데이터를 사용하도록 한다. 일부 구현에서, 특정 추론을 포함하는 출력은 추가 데이터를 특징으로 하는 특정 추론을 캡처하는 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 포함할 수 있다. 이러한 구현의 일부 버전에서, 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델(들)(예를 들어, 도 1의 ML 모델(들) 데이터베이스(120A)에 저장됨)을 사용하여 하나 이상의 이행 후보와 연관된 메타데이터를 기반으로 시스템에 의해 생성되는 특정 추론에 해당하는 텍스트가 프로세싱될 수 있으며, 합성된 음성 오디오 데이터는 클라이언트 장치 또는 클라이언트 장치와 통신하는 추가 클라이언트 장치의 스피커(들)를 통해 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다. 추가적인 또는 대안적인 구현에서, 특정 추론을 포함하는 출력은 클라이언트 장치 또는 클라이언트 장치와 통신하는 추가 클라이언트 장치의 디스플레이를 통해 사용자에게 프레젠테이션하기 위해 시각적으로 렌더링되는 텍스트 또는 기타 그래픽 콘텐츠를 포함할 수 있다. 시스템은 블록(252)으로 돌아가서 추가 어시스턴트 명령을 포함하고 자동화된 어시스턴트로 향하는 추가 사용자 입력을 수신하는 것에 응답하여 도 2의 방법(200)의 추가적인 반복을 수행할 수 있다.
도 3을 참조하면, 사용자 입력에 포함되고 자동화된 어시스턴트로 향하는 어시스턴트 명령의 특정 이행이 수행될 수 없다고 결정하는 예시적인 방법(300)을 예시하는 흐름도가 묘사된다. 편의상, 방법(300)의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 방법(300)의 이 시스템은 하나 이상의 프로세서, 메모리, 및/또는 컴퓨팅 장치(들)(예를 들어, 도 1의 클라이언트 장치(110), 도 4a-4c의 클라이언트 장치(410), 도 5a-5b의 클라이언트 장치(510), 도 6의 컴퓨팅 장치(610), 하나 이상의 서버 및/또는 다른 컴퓨팅 장치)의 다른 컴포넌트(들)를 포함한다. 더욱이, 방법(300)의 동작이 특정 순서로 도시되어 있지만, 이는 제한을 의미하지 않는다. 하나 이상의 동작은 재정렬, 생략 및/또는 추가될 수 있다.
블록(352)에서, 시스템은 어시스턴트 명령을 포함하고 자동화된 어시스턴트로 향하는 사용자 입력을 클라이언트 장치의 사용자로부터 수신한다. 일부 구현에서, 사용자 입력은 클라이언트 장치의 마이크로폰(들)에 의해 생성된 오디오 데이터에서 캡처된 음성 발화에 대응할 수 있다. 추가적인 또는 대안적인 구현에서, 사용자 입력은 클라이언트 장치의 디스플레이 또는 클라이언트 장치의 다른 입력 장치(예를 들어, 키보드 및/또는 마우스)를 통해 수신된 터치 입력 또는 타이핑된 입력에 대응할 수 있다.
블록(354)에서, 시스템은 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 있는지 여부를 결정한다. 사용자 입력이 음성 발화에 해당하는 구현에서, 음성 발화를 캡처하는 오디오 데이터는 ASR 모델(들)을 사용하여 프로세싱되어 ASR 출력(예: 음성 가설(들), 음소(들) 및/또는 기타 ASR 출력) 및 선택적으로 ASR 출력과 연관된 ASR 메트릭을 생성할 수 있다. 또한 NLU 모델을 사용하여 ASR 출력을 프로세싱하여 NLU 출력(예: ASR 출력에 기초하여 결정된 의도(intent), ASR 출력에 기초하여 결정된 의도와 연관된 파라미터에 대한 슬롯 값 등) 및 선택적으로 NLU 출력과 연관된 NLU 메트릭을 생성할 수 있다. 또한, 이행 규칙(들) 및/또는 이행 모델(들)을 사용하여 NLU 출력이 프로세싱되어 어시스턴트 명령의 이행 수행에 사용될 이행 데이터를 생성하고, 선택적으로 이행 데이터와 연관된 이행 메트릭을 생성할 수 있다. 사용자 입력이 터치 입력 또는 타이핑된 입력에 해당하는 구현에서, 터치 입력 또는 타이핑된 입력에 해당하는 텍스트는 NLU 모델을 사용하여 NLU 출력 및 선택적으로 NLU 출력과 연관된 NLU 메트릭을 생성하기 위해 프로세싱될 수 있다. 또한 NLU 출력은 어시스턴트 명령의 이행에 사용되는 데이터를 얻기 위해 전송될 요청을 생성하는 데 이용되는 이행 출력을 생성하기 위해 및/또는 어시스턴트의 이행을 수행할 때 이행 출력에 기초하여 액션이 수행되게 하도록 하기 위해, 이행 규칙 및/또는 이행 모델을 사용하여 프로세싱될 수 있다.
시스템은 어시스턴트 명령의 이행 수행에서 이행 출력에 기초하여 액션(들)이 수행되게 하기 위해 및/또는 어시스턴트 명령의 이행 수행에 사용되는 데이터를 획득하기 위해 전송되는 이행 출력에 응답하여 수신된 데이터에 기초하여 어시스턴트 명령의 특정 이행의 수행에 사용될 데이터가 결정될 수 있는지 여부를 결정할 수 있다. 도 2에 도시된 바와 같이, 이행 출력에 응답하여 획득할 수 있는 데이터는 하나 이상의 이행 후보를 포함할 수 있다. 시스템은 예를 들어, ASR 메트릭, NLU 메트릭, 및/또는 사용자 입력과 연관된 이행 메트릭에 기초하여 어시스턴트 명령의 특정 이행을 수행하기 위해, 하나 이상의 이행 후보 중에서 특정 이행 후보를 선택할 수 있다. 예를 들어, 클라이언트 장치의 사용자가 "turn on the lights(조명을 켜)"라는 음성 발화를 제공한다고 가정한다. 이 예에서 음성 발화를 캡처하는 오디오 데이터는 ASR 메트릭과 연관된 "turn on the lights"라는 음성 가설을 ASR 출력으로 생성하기 위해, ASR 모델(들)을 사용하여 프로세싱될 수 있다(예를 들어, 제1 음성 가설이 음성 발화에 포함된 용어(들) 및/또는 구(들)에 대응할 가능성, 예를 들어 확률, 이진 값, 로그 우도 등). 또한, 각각의 음성 가설은 NLU 메트릭과 연관된 "turn on lights"의 의도를 NLU 데이터로서 생성하기 위해 NLU 모델(들)을 사용하여 프로세싱될 수 있다(예를 들어, 제1 의도 및 슬롯 값(들)이 확률, 이진 값, 로그 우도 등과 같은 사용자의 원하는 의도에 대응할 가능성). 또한 이행 출력에는 예를 들어 하나 이상의 소프트웨어 애플리케이션(예: 조명을 켤 수 있는 제1-파티 소프트웨어 애플리케이션 및/또는 제3-파티 소프트웨어 애플리케이션)에 대한 요청이 포함될 수 있다. 그러나 이 예에서는 자동화된 어시스턴트가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 액세스할 수 없다고 가정한다. 따라서, 이 예에서, 시스템은 이행 출력을 소프트웨어 애플리케이션으로 전송하지 못할 수 있으며 하나 이상의 이행 후보는 자동화된 어시스턴트가 소프트웨어 애플리케이션과 상호 작용하여 조명을 제어할 수 없기 때문에 음성 발화를 이행할 수 없음을 나타내는 널(null) 이행 후보만 포함한다. 반대로, 자동화된 어시스턴트가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 액세스할 수 있다고 가정하면, 시스템은 자동화된 어시스턴트가 조명을 제어하기 위해 소프트웨어 애플리케이션과 상호작용할 수 있기 때문에 어시스턴트 명령의 특정 이행의 수행에 사용될 데이터가 결정될 수 있다고 결정할 수 있고, 하나 이상의 실행 후보에는 실행될 때 조명이 제어되도록 하는 하나 이상의 어시스턴트 명령이 포함될 수 있다.
블록 354의 반복에서, 시스템이 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터가 결정될 수 있다고 결정하면, 시스템은 도 2의 블록(256)으로 진행하며, 도 2의 방법(200)의 반복을 계속한다. 예를 들어, 자동화된 어시스턴트가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 액세스할 수 있는 위의 예에서, 시스템은 도 2의 블록(256)으로 진행할 수 있고, 블록(256)으로부터 전술한 도 2의 방법(200)의 반복을 계속하여 어시스턴트 명령의 특정 이행이 수행되게 하고, 그리고 도 2와 관련하여 전술한 바와 같이 요구되는 경우 특정 이행에 대한 특정 추론을 제공한다. 블록(354)의 반복에서, 시스템이 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 없다고 결정하면, 시스템은 블록(356)으로 진행한다. 예를 들어, 자동화된 어시스턴트가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 액세스할 수 있는 위의 예에서, 시스템은 블록(356)으로 진행할 수 있다.
블록(356)에서, 시스템은 어시스턴트 명령의 대체 이행을 수행하는데 사용될 대체 데이터가 결정될 수 있는지 여부를 결정한다. 예를 들어, 시스템은 하나 이상의 대체 이행 후보가 있는지 여부를 결정하기 위해 하나 이상의 이행 후보를 분석할 수 있다. 블록(356)의 반복에서, 시스템이 어시스턴트 명령의 대체 이행을 수행하는데 사용될 대체 데이터가 결정될 수 없다고 결정하면, 시스템은 블록(358)으로 진행한다. 예를 들어, 클라이언트 장치의 사용자가 "turn on the lights"라는 음성 발화를 제공하고 자동화된 어시스턴트가 조명을 제어하기 위한 소프트웨어 애플리케이션에 액세스할 수 없는 위의 예를 계속 진행하면, 시스템은 하나 이상의 이행 후보에 포함된 대체 이행 후보가 없음을 결정할 수 있다(예: 널(null) 이행 후보에만 해당). 이 경우, 시스템은 블록 358로 진행하기로 결정할 수 있다.
블록(358)에서, 시스템은 자동화된 어시스턴트가 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는데 사용될 추천 데이터를 결정하기 위해 사용자 입력을 프로세싱한다. 위의 예에서 계속해서, 시스템은 "turn on the lights"라는 음성 발화에 대한 조명 응답을 제어하는 특정 이행이 수행될 수 있지만 사용자가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 대한 자동화된 어시스턴트 액세스 권한을 부여하지 않았다는 사실을 결정할 수 있다. 따라서, 이 예에서, 추천된 액션은 사용자가 조명을 제어하는데 사용되는 소프트웨어 애플리케이션에 대한 자동화된 어시스턴트 액세스를 승인해야 한다는 표시를 포함할 수 있다. 또 다른 예로서, 조명을 제어하기 위한 클라이언트 장치에 소프트웨어 애플리케이션이 설치되어 있지 않다고 가정하면, 시스템은 "turn on the lights"라는 음성 발화에 대한 조명 제어의 특정 이행이 수행될 수 있지만 사용자가 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션을 설치하지 않았다는 사실을 결정할 수 있고, 사용자는 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 대한 자동화된 어시스턴트 액세스 권한을 부여해야 한다고 결정할 수 있다.
블록(360)에서, 시스템은 자동화된 어시스턴트가 추천 데이터를 사용하여 사용자에게 프레젠테이션하기 위해 추천된 액션을 포함하는 출력을 제공하게 한다. 추천된 액션을 포함하는 출력은 (예를 들어, 도 2의 블록 268과 관련하여 설명된 바와 같이) 사용자에게 프레젠테이션하기 위해 청각적으로 및/또는 시각적으로 렌더링될 수 있다. 일부 구현에서, 추천된 액션을 포함하는 출력은 자동화된 어시스턴트가 추천된 액션을 자동으로 수행하게 하는 추가 입력을 사용자가 제공할 수 있게 하는 프롬프트(prompt)를 포함할 수 있다. 위의 예에서 시스템은 "I cannot turn on the lights right now, but I can if you grant me access to the software application utilized to control the lights, would you like to grant me access?(지금은 조명을 켤 수 없지만 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 대한 액세스 권한을 부여하면 조명을 켤 수 있습니다. 액세스 권한을 부여하시겠습니까?)"라는 출력을 생성할 수 있다. 따라서, 추천된 액션을 포함하는 사용자에게 프레젠테이션하기 위해 제공되는 출력은 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법 중 하나 이상을 나타낼 수 있고(예: "I cannot turn on the lights right now, but I can if you grant me access to the software application utilized to control the lights(지금은 조명을 켤 수 없지만 조명을 제어하는 데 사용되는 소프트웨어 애플리케이션에 대한 액세스 권한을 부여하면 할 수 있다.)"), 어시스턴트 명령의 특정 이행을 수행하도록 사용자에게 프롬프트할 수 있다(예: "would you like to grant me access?(접근 권한을 부여하시겠습니까?)"). 추가 또는 대체 구현에서, 추천된 액션을 포함하는 출력에는 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행할 수 있도록 사용자가 따라야 하는 단계별 명령어가 포함될 수 있다(예: "(1) 설정 열기, (2) 소프트웨어 애플리케이션 공유 설정 열기, (3) 조명 애플리케이션에 대한 소프트웨어 애플리케이션 설정 공유"). 시스템은 블록(352)으로 돌아가서 추가 어시스턴트 명령을 포함하고 자동화된 어시스턴트로 향하는 추가 사용자 입력을 수신하는 것에 응답하여 도 3의 방법(300)의 추가적인 반복을 수행할 수 있다.
블록(356)의 반복에서, 시스템이 어시스턴트 명령의 대체 이행의 수행에 사용될 대체 데이터가 결정될 수 있다고 결정하면, 시스템은 블록(362)으로 진행한다. 사용자가 "turn on the lights"라는 음성 발화를 제공하는 예와 대조적으로, 사용자가 블록 352에서 수신되는 "play rock music using application 2(애플리케이션 2를 사용하여 록 음악 재생)"이라는 음성 발화를 제공한다고 가정한다. 또한 사용자가 "application 2(애플리케이션 2)"에 대한 자동화된 어시스턴트 액세스 권한을 부여하지 않았다고 가정한다. 따라서, 이 예에서, "애플리케이션 2"에서 록 음악 재생의 특정 이행은 블록 354의 인스턴스에서 수행될 수 없다. 그러나, 블록(356)의 인스턴스에서, 시스템은 이전 예에서와 달리 대체 이행 후보가 있다고 결정할 수 있다. 예를 들어, 이 예에서 사용자가 자동화된 어시스턴트가 록 음악을 재생하기 위해 "애플리케이션 1"을 대안적으로 사용할 수 있도록 "애플리케이션 1"에 대한 자동화된 어시스턴트 액세스를 승인했다고 가정한다.
블록(362)에서, 시스템은 어시스턴트 명령의 대안적인 이행(대체 이행)에 사용될 대안적인 데이터(대체 데이터)를 결정하기 위해 사용자 입력을 프로세싱한다. 사용자가 "애플리케이션 2를 사용하여 록 음악 재생"이라는 음성 발화를 제공하는 위의 예를 계속하면, 록 음악 재생에 대한 구조화된 요청을 포함하는 이행 출력이 처음에 적어도 "애플리케이션 2"로 전송될 수 있다. 일부 구현에서, 이행 출력을 "애플리케이션 2"로 전송하는 것에 응답하여, 시스템은 사용자가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 승인하지 않았기 때문에 널 이행 후보(null fulfillment candidate)의 표시를 수신할 수 있다. 추가적인 또는 대안적인 구현에서, 시스템은 사용자가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 승인하지 않았음을 결정할 수 있고, 시스템은 "애플리케이션 2"에 대한 요청 전송을 보류하고 사용자가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스 권한을 부여하지 않았기 때문에 널 이행 후보를 결정할 수 있다. 그러나 음악 재생 요청을 이행하려는 시도에서, 시스템은 이행 출력을 "애플리케이션 1"로 전송할 수 있으며(그리고 선택적으로 "애플리케이션 2"가 널 이행 후보와 연관되어 있다는 결정에 대한 응답으로), 사용자가 "애플리케이션 1"에 대한 자동화된 어시스턴트 액세스 권한을 부여했기 때문에 "애플리케이션 1"을 사용하여 록 음악을 재생하는 대체 이행 후보와 연관된 대체 데이터를 결정한다. 따라서 대체 이행 후보가 사용자 입력에 포함된 어시스턴트 명령의 특정 이행이 아니더라도(예: 대체 이행 후보는 사용자 요청에 따라 "애플리케이션 2"가 아닌 "애플리케이션 1"과 연결되기 때문에), 시스템은 대체 이행 후보를 사용하여 어시스턴트자 명령 이행을 시도할 수 있다.
블록(364)에서, 시스템은 자동화된 어시스턴트가 어시스턴트 명령의 대체 이행을 수행하기 위해 대체 데이터를 사용하게 한다. 위의 예에서 계속해서, 시스템은 "애플리케이션 1"이 클라이언트 장치의 스피커(들) 또는 클라이언트 장치와 통신하는 추가 컴퓨팅 장치의 스피커(들)(예: 클라이언트 장치, 다른 클라이언트 장치 등과 통신하는 스마트 스피커)를 통해 록 음악 재생을 시작하게 할 수 있다. 일부 구현에서, 그리고 도 2의 서브-블록(256A)과 유사하게, 시스템은 특정 추론과 연관된 하나 이상의 선택 가능한 요소(selectable elements)가 사용자에게 제공되도록 할 수 있다. 그러나, 도 2의 서브-블록(256A)의 상기 동작과는 대조적으로, 대체 이행이 수행된 이유(예: "애플리케이션 1"을 사용하여 록 음악이 재생된 이유") 또는 특정 이행이 수행되지 않은 이유(예: "애플리케이션 2"를 사용하여 록 음악이 재생되지 않은 이유)에 대한 특정 추론이 제공될 수 있다. 이러한 구현에서, 대체 이행에 대한 특정 추론은 예를 들어 대체 이행 후보가 하나 이상의 이행 후보 중에서 사용자 입력에 응답하는 것으로 선택된 하나 이상의 이유를 포함할 수 있다.
블록 366에서, 시스템은 자동화된 어시스턴트가 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청이 클라이언트 장치에서 수신되는지 여부를 결정한다. 일부 구현에서, 자동화된 어시스턴트가 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청은 클라이언트 장치에서 수신되는 추가 사용자 입력에 포함될 수 있다. 이러한 구현의 일부 버전에서, 시스템은 ASR 모델을 사용하여 추가 사용자 입력을 프로세싱하여 ASR 출력을 생성하고, NLU 모델을 사용하여 NLU 데이터를 생성하고, 이행 규칙 또는 모델을 사용하여 추가 사용자 입력이 특정 추론에 대한 요청을 포함하는지 여부를 결정하기 위해 블록(252)과 관련하여 설명된 것과 동일하거나 유사한 방식으로 이행 출력을 생성할 수 있다. 예를 들어, 추가 사용자 입력이 음성 발화 또는 타이핑된 입력인지 여부에 관계없이 추가 사용자를 프로세싱하여 NLU 출력을 생성할 수 있으며, 시스템은 자동화된 어시스턴트가 NLU 출력에 기초하여 대체 이행을 수행하게 한 이유와 관련하여 추가 사용자 입력에 특정 추론에 대한 요청이 포함되어 있는지 여부를 결정할 수 있다(예: 특정 추론에 대한 요청과 연관된 의도). 이러한 구현의 추가 또는 대체 버전에서, 자동화된 어시스턴트가 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청은 클라이언트 장치에서 수신되는 하나 이상의 선택 가능한 요소의 사용자 선택에 포함될 수 있다(예를 들어, 서브-블록(256A)에 대해 전술한 바와 같이). 만일, 블록 366의 반복에서, 시스템이 자동화된 어시스턴트가 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청이 클라이언트 장치에서 수신되지 않는다고 결정하면, 시스템은 자동화된 어시스턴트가 블록 366에서 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청을 계속 모니터링한다(선택적으로 특정 이행이 수행된 후 임계 시간(예를 들어, 15초, 20초, 30초 및/또는 임의의 다른 임계 지속 시간) 동안). 블록(366)의 반복에서, 자동화된 어시스턴트가 대체 이행을 수행하게 한 이유에 관한 특정 추론에 대한 요청이 클라이언트 장치에서 수신되었다고 시스템이 결정하면, 시스템은 블록(368)으로 진행한다. 일부 구현에서, 그리고 도 2의 블록 262와 유사하게, 시스템은 특정 추론에 대한 요청 유형(예: 일반 요청, 제1 특정 요청, 제2 특정 요청 등)을 결정할 수 있다.
블록(368)에서, 시스템은 특정 추론을 제공하는데 사용될 추가 데이터를 결정하기 위한 요청을 포함하는 추가 사용자 입력을 프로세싱한다. 위의 "play rock music using application 2(애플리케이션 2를 사용하여 록 음악 재생)" 예를 계속 진행하면, 특정 추론에 대한 일반적인 요청은 예를 들어 "why did you do that?(왜 그렇게 했습니까?)"라는 요청으로 구체화될 수 있으며, 여기서 "that"은 특정 록 아티스트 및 선택된 특정 록 노래(예를 들어, 도 2와 관련하여 전술한 바와 같은 추론된 슬롯 값)와 함께 "애플리케이션 1"(사용자가 요청한 "애플리케이션 2" 대신)을 사용하여 록 음악을 재생하는 것과 같이 선택된 대체 이행 후보를 나타낸다. 요청 유형이 일반 요청이라는 결정에 응답하여, 시스템은 일반 요청에 응답하는 출력에 대응하는 추가 데이터와 연관된 추가 데이터를 획득할 수 있다(예를 들어, 도 2와 관련하여 설명됨). 또한 위의 "play rock music(록 음악 재생)"의 예를 계속 사용하면, 특정 추론에 대한 특정 요청은 예를 들어 "why did you use application 1 instead of application 2 like I requested?(내가 요청한 애플리케이션 2 대신 애플리케이션 1을 사용한 이유는 무엇입니까?)", "why did you select the certain artist?(특정 아티스트를 선택한 이유는?)", "why did you select the certain artist's most popular song?(왜 특정 아티스트의 가장 인기 있는 노래를 선택했습니까?)"와 같은 요청 및/또는 기타 특정 요청으로 구체화될 수 있다. 요청 유형이 특정 요청이라는 결정에 응답하여, 시스템은 특정 요청에 응답하는 출력에 대응하는 추가 데이터를 획득할 수 있다(예를 들어, 도 2와 관련하여 설명됨).
블록(370)에서, 시스템은 자동화된 어시스턴트가 특정 추론을 포함하는 출력을 사용자에게 프레젠테이션하기 위해 추가 데이터를 사용하게 한다. 일부 구현에서, 특정 추론을 포함하는 출력은 추가 데이터를 특징으로 하는 특정 추론을 캡처하는 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 포함할 수 있다. 이러한 구현의 일부 버전에서, 하나 이상의 이행 후보와 연관된 메타데이터를 기반으로 시스템에 의해 생성된 특정 추론에 해당하는 텍스트는 합성된 음성 오디오 데이터를 생성하기 위해 TTS 모델(들)(예를 들어, 도 1의 ML 모델(들) 데이터베이스(120A)에 저장됨)을 사용하여 프로세싱될 수 있으며, 합성된 음성 오디오 데이터는 클라이언트 장치 또는 클라이언트 장치와 통신하는 추가 클라이언트 장치의 스피커(들)를 통해 사용자에게 프레젠테이션하기 위해 가청적으로 렌더링될 수 있다. 추가적인 또는 대안적인 구현에서, 특정 추론을 포함하는 출력은 클라이언트 장치 또는 클라이언트 장치와 통신하는 추가 클라이언트 장치의 디스플레이를 통해 사용자에게 프레젠테이션하기 위해 시각적으로 렌더링되는 텍스트 또는 기타 그래픽 콘텐츠를 포함할 수 있다. 시스템은 블록(352)으로 돌아가서 추가 어시스턴트 명령을 포함하고 자동화된 어시스턴트로 향하는 추가 사용자 입력을 수신하는 것에 응답하여 도 3의 방법(300)의 추가적인 반복을 수행할 수 있다.
도 4a 내지 도 4c에서, 제공될 어시스턴트 명령의 이행에 대한 특정 추론을 유발하는 다양한 비제한적 예가 도시된다. 클라이언트 장치(410)(예를 들어, 도 1의 클라이언트 장치(110)의 인스턴스)는 예를 들어, 음성 발화 및/또는 다른 가청 입력에 기초하여 오디오 데이터를 생성하는 마이크로폰(들) 및/또는 합성된 음성 및/또는 다른 가청 출력을 들을 수 있게 렌더링하는 스피커(들)를 포함하는 다양한 사용자 인터페이스 컴포넌트를 포함한다. 도 4a 내지 도 4c에 도시된 클라이언트 장치(410)는 디스플레이가 없는 독립형 스피커이며, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 클라이언트 장치(410)는 디스플레이가 있는 독립형 스피커, 휴대폰(예를 들어, 도 5a 및 5b와 관련하여 설명된 바와 같이), 홈 오토메이션 장치, 차량 내 시스템, 랩탑, 데스크탑 컴퓨터 및/또는 클라이언트 장치(410)의 사용자(401)와 인간 대 컴퓨터 대화 세션에 참여하기 위해 자동화된 어시스턴트를 실행할 수 있는 임의의 다른 장치일 수 있다.
구체적으로 도 4a에서, 클라이언트 장치(410)의 사용자(401)가 "Assistant, play rock music(어시스턴트, 록 음악 틀어 줘)"라는 음성 발화(452A)를 제공한다고 가정한다. 음성 발화(452A)를 수신하는 것에 응답하여, 자동화된 어시스턴트는 ASR 모델(들)을 사용하여 음성 발화(452A)를 캡처하는 오디오 데이터가 프로세싱되도록 하여, 예를 들어 음성 발화(452A)에 대응하는 것으로 예측되는 하나 이상의 음성 가설(예: 용어 가설(들) 및/또는 전사 가설(들)), 음성(452A)에 대응하는 것으로 예측되는 하나 이상의 예측된 음소를 포함하는 ASR 출력 및/또는 다른 ASR 출력을 생성할 수 있다. ASR 출력을 생성 시, ASR 모델(들)은 선택적으로 하나 이상의 음성 가설, 예측 음소와 연관된 ASR 메트릭을 생성하고, 및/또는 하나 이상의 음성 가설, 예측된 음소, 및/또는 다른 ASR 출력이 음성 발화(452A)에 대응할 가능성을 나타내는 다른 ASR 출력을 생성할 수 있다. 더 나아가, ASR 출력은 NLU 모델을 사용하여 프로세싱되어, 예를 들어 ASR 출력에 기초하여 결정된 하나 이상의 의도, ASR 출력에 기초하여 결정된 하나 이상의 의도 각각과 연관된 하나 이상의 대응 파라미터에 대한 하나 이상의 슬롯 값을 포함하는 NLU 출력 및/또는 다른 NLU 출력을 생성할 수 있다. NLU 출력 생성 시, NLU 모델(들)은 선택적으로 하나 이상의 의도 각각과 연관된 NLU 메트릭, 의도와 연관된 해당 파라미터에 대한 하나 이상의 슬롯 값, 및/또는 하나 이상의 의도, 의도와 관련된 해당 파라미터에 대한 하나 이상의 슬롯 값 및/또는 다른 NLU 출력이 음성 발화(452A)를 제공할 때 사용자(401)의 실제 의도에 대응할 가능성을 나타내는 다른 NLU 출력을 생성할 수 있다.
특히, 자동화된 어시스턴트는 하나 이상의 의도 각각과 연관된 대응하는 파라미터에 대한 슬롯 값 중 하나 이상을 추론할 수 있으며, 그 결과 음성 발화(452A)의 하나 이상의 해석(interpretation)이 발생하며, 여기서 하나 이상의 해석 각각은 특정 대응 파라미터에 대한 적어도 하나의 고유한 슬롯 값을 포함한다. 따라서, 도 4a의 예에서, 제1 해석은 "play music(음악 재생)" 의도와 연관된 애플리케이션 파라미터에 대한 "애플리케이션 1"의 슬롯 값, "음악 재생" 의도와 연관된 아티스트 파라미터에 대한 "artist 1(아티스트 1)"의 슬롯 값, 및 "음악 재생" 의도와 연관된 노래 파라미터에 대한 "song 1(노래 1)"의 슬롯 값을 갖는 "음악 재생" 의도를 포함할 수 있고; 제2 해석은 "음악 재생" 의도와 연관된 애플리케이션 파라미터에 대한 "애플리케이션 2"의 슬롯 값, "음악 재생" 의도와 연관된 아티스트 파라미터에 대한 "아티스트 1"의 슬롯 값 및 "음악 재생" 의도와 연관된 노래 파라미터에 대한 "노래 1"의 슬롯 값을 갖는 "음악 재생" 의도를 포함할 수 있고; 제3 해석은 "음악 재생" 의도와 연관된 애플리케이션 파라미터에 대한 "애플리케이션 1"의 슬롯 값, "음악 재생" 의도와 연관된 아티스트 파라미터에 대한 "아티스트 2"의 슬롯 값, 및 "음악 재생" 의도와 연관된 노래 파라미터에 대한 "노래 2"의 슬롯 값을 갖는 "음악 재생" 의도를 포함할 수 있다.
더욱이, 자동화된 어시스턴트는 NLU 출력이 이행 규칙(들) 및/또는 이행 모델(들)을 사용하여 프로세싱되도록 하여 이행 출력을 생성할 수 있다. 이행 출력은 예를 들어 복수의 해석에 기초하여(예: NLU 출력에 따라 결정됨) 생성되고, 도 1의 제1-파티 서버(들)(191), 도 1의 제3-파티 서버(들)(192), 클라이언트 장치(410)에서 액세스 가능한 제1-파티 소프트웨어 애플리케이션(들), 클라이언트 장치(410)에서 액세스 가능한 제3-파티 소프트웨어 애플리케이션(들), 및/또는 음성 발화(452A)를 이행할 수 있는 임의의 다른 이행자와 같은 하나 이상의 이행자(fulfillers)로 전송될 하나 이상의 구조화된 요청을 포함할 수 있다. 도 4a의 예에서, 자동화된 어시스턴트는 대응하는 구조화된 요청이 NLU 출력에 의해 표시되는 음성 발화(452A)를 만족시킬 수 있는 것으로 식별되는 이들 소프트웨어 애플리케이션에 기초하여 적어도 "애플리케이션 1" 및 "애플리케이션 2"로 전송되게 할 수 있다. 이러한 구조화된 요청 전송에 대한 응답으로 자동화된 어시스턴트는 "애플리케이션 1" 및 "애플리케이션 2"로부터 하나 이상의 이행 후보를 수신할 수 있다. 예를 들어, 자동화된 어시스턴트는 "애플리케이션 1"이 복수의 해석에 기초하여 생성된 하나 이상의 구조화된 요청을 이행할 수 있는지 여부를 나타내는 하나 이상의 이행 후보를 "애플리케이션 1"로부터 수신할 수 있고, "애플리케이션 2"가 복수의 해석에 기초하여 생성된 하나 이상의 구조화된 요청을 이행할 수 있는지 여부를 나타내는 하나 이상의 이행 후보를 "애플리케이션 2"로부터 수신할 수 있다. 하나 이상의 이행 후보는 선택적으로 하나 이상의 이행 후보 각각이 음성 발화(452A)를 만족시킬 가능성을 나타내는 이행 메트릭(fulfillment metric)을 포함할 수 있다.
자동화된 어시스턴트는 ASR 메트릭, NLU 메트릭 및/또는 이행에 기초하여 하나 이상의 이행 후보의 순위를 매길 수 있고, 순위를 기반으로 하나 이상의 이행 후보 중에서 특정 이행 후보를 선택할 수 있다. 예를 들어, 도 4a의 예에서, 자동화된 어시스턴트가 순위를 기반으로, 애플리케이션 파라미터에 대한 "애플리케이션 1"의 슬롯 값, 아티스트 파라미터에 대한 "아티스트 1"의 슬롯 값 및 위에서 설명한 대로 노래 파라미터에 대한 "노래 1"의 슬롯 값을 갖는 "음악 재생" 의도를 포함하는 제1 해석과 연관된 특정 이행 후보를 선택한다고 가정한다. 또한 사용자(401)가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 허용하지 않았고, 그 결과, "애플리케이션 1"로 전송된 하나 이상의 구조화된 요청에 기초하여 결정된 하나 이상의 이행 후보가 널 이행 후보라고 가정한다. 추가 또는 대체 구현에서, 자동화된 어시스턴트는
사용자(401)가 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 승인하지 않았다는 것을 알고 있기 때문에 컴퓨팅 및/또는 네트워크 리소스를 절약하기 위해 "애플리케이션 2"에 대한 임의의 구조화된 요청 전송을 보류할 수 있고, "애플리케이션 2"로 전송될 수 있는 잠재적 구조적 요청에 대한 널 이행 후보를 자동으로 결정할 수 있다. 제1 해석과 연관된 특정 이행 후보 선택에 대한 응답으로, 자동화된 어시스턴트는 클라이언트 장치(410)의 스피커(들)을 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 "Okay, playing rock music using application 1(좋아, 애플리케이션 1을 사용하여 록 음악을 재생해)"의 합성된 음성(454A1)을 제공하게 할 수 있고, 음성 발화(452A)를 만족시키기 위해 특정 이행 후보와 연관된 제1 해석에 기초하여 결정된 어시스턴트 명령이 454A2(예: "plays song 1 by artist 1 using application 1(애플리케이션 1을 사용하여 아티스트 1의 노래 1 재생)")에 의해 표시된 바와 같이 구현되게 한다.
그러나, 추가로 사용자(401)가 "Why did you do that?(왜 그렇게 했습니까?)"라는 추가 음성 발화(456A)를 제공한다고 가정한다. 추가 음성 발화(456A) 수신에 응답하여, 자동화된 어시스턴트는 음성 발화(452A)를 프로세싱하는 것과 관련하여 전술한 것과 동일하거나 유사한 방식으로 ASR 출력을 생성하기 위해 ASR 모델(들)을 사용하여 추가 음성(456A)을 캡처하는 오디오 데이터가 프로세싱되도록 할 수 있다. 또한, ASR 출력은 NLU 모델(들)을 사용하여 프로세싱되어 음성 발화(452A)를 프로세싱하는 것과 관련하여 위에서 설명한 것과 동일하거나 유사한 방식으로 NLU 출력을 생성할 수 있다. 자동화된 어시스턴트는 ASR 출력 및/또는 NLU 출력에 기초하여, 추가 음성 발화(456A)가 음성 발화(452A)에 포함된 어시스턴트 명령의 특정 이행이 수행된 이유에 대한 특정 추론을 제공하기 위한 자동화된 어시스턴트에 대한 요청을 포함하는지 여부를 결정할 수 있다. 일부 구현에서, 자동화된 어시스턴트는 ASR 출력 및/또는 NLU 출력에 기초하여, 특정 추론에 대한 요청이 특정 추론에 대한 일반적인 요청인지 또는 특정 추론에 대한 하나 이상의 특정 요청인지 여부를 추가로 또는 대안적으로 결정할 수 있다.
예를 들어, 도 4a의 예에서, 자동화된 어시스턴트는 추가 음성 발화(456A)의 프로세싱에 기초하여 생성된 ASR 출력 및/또는 NLU 출력에 기초하여, 특정 추론에 대한 요청이 사용자가 특정 이행의 특정 에스펙트에 대해 문의하지 않았기 때문에 일반적인 요청이라고 결정할 수 있다(예를 들어, 도 4b와 관련하여 아래에 설명됨). 오히려, 추가 음성 발화(456A)는 일반적으로 자동화된 어시스턴트가 왜 "애플리케이션 1"이 "아티스트 1"에 의한 "노래 1"을 재생하게 했는지 설명할 것을 요청한다. 따라서, 자동화된 어시스턴트는 추가 음성 발화(456A)에 응답하여 출력을 생성하는데 사용될 추가적인 데이터를 결정하기 위해 선택된 특정 이행 후보와 연관된 메타데이터를 획득할 수 있다. 추가 데이터를 기반으로 자동화된 어시스턴트는 "You share your application usage with me, and it looks like you use application 1 the most for listening to music, you have listened to artist 1 in the past, and song 1 is a new song by artist 1(당신은 저와 당신의 애플리케이션 사용을 공유했고, 당신은 음악을 듣기 위해 애플리케이션 1을 가장 많이 사용하는 것 같습니다. 당신은 과거에 아티스트 1을 들었고, 노래 1은 아티스트 1의 신곡입니다.)"의 추가 합성된 음성(458A1)이 클라이언트 장치(410)의 스피커(들)를 통해 사용자(401)에게 가청적인 프레젠테이션을 제공하도록 할 수 있다. 일부 구현에서, 자동화된 어시스턴트는 예를 들어 선택적으로 사용자(401)에게 "Use application 2, but only for rock music(록 음악에만 애플리케이션 2를 사용해)"라는 추가 음성 발화(460A)를 제공하도록 요청하는 것과 같이 사용자(401)가 자동화된 어시스턴트가 일부 대체 이행 후보를 수행하기를 원하는 경우, 사용자(401)에게 추가 음성 발화를 제공하도록 요청하는 클라이언트 장치(410)의 스피커(들)를 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 "Would you prefer me to do something else?(내가 다른 일을 하길 원하십니까?)"라는 프롬프트(458A2)가 제공되도록 할 수 있다.
특히, 추가 음성 발화(460A)는 음성 발화(452A) 및 자동화된 어시스턴트가 록 음악을 재생하기 위한 어시스턴트 명령을 포함하는 음성 발화의 미래 인스턴스에 응답하여 사용될 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 암시적으로 부여할 수 있다. 일부 구현에서, 추가 음성 발화(460A)는 암묵적으로 록 음악을 재생하기 위해서만 사용될 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 허용할 수 있다. 추가적인 또는 대안적인 구현에서, 추가 음성 발화(460A)는 임의의 장르의 음악을 재생하기 위해 사용될 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 암시적으로 허용할 수 있다. 또한, 일부 구현에서, 자동화된 어시스턴트는 자동화된 어시스턴트에게 "애플리케이션 2"에 대한 액세스를 허용하는 추가 음성 발화(460A)를 수신하는 것에 응답하여 "애플리케이션 1"을 사용하여 "아티스트 1"에 의한 "노래 1"을 재생하는 것에서(예: 위에서 설명한 제1 해석에 따른 어시스턴트 명령) "애플리케이션 2"를 사용하여 "아티스트 1"에 의한 "노래 1"을 재생하는 것으로(예: 위에서 설명한 제2 해석에 따른 어시스턴트 명령) 전환할 수 있다.
구체적으로 도 4b와 관련하여, 도 4a에서 설명된 특정 추론에 대한 일반적인 요청과 대조적으로, 다시 사용자가 "Assistant, play rock music(어시스턴트, 록 음악 재생해)"라는 동일한 음성 발화(452B)를 제공한다고 가정하고, 자동화된 어시스턴트는 클라이언트 장치(410)의 스피커(들)을 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 "Okay, playing rock music using application 1(좋아, 애플리케이션 1을 사용하여 록 음악을 재생해)"의 합성된 음성(454B1)을 제공하게 하고,
특정 이행 후보와 연관된 제1 해석에 기초하여 결정된 어시스턴트 명령이 454B2로 표시된 바와 같이(예: "plays song 1 by artist 1 using application 1(애플리케이션 1을 사용하여 아티스트 1의 노래 1 재생해)") 구현되어 발화(45BA)를 만족시키게 한다. 그러나, 도 4b의 예에서, 사용자(401)가 "Why did you use application 1?(왜 애플리케이션 1을 사용했습니까?)"라는 추가 음성 발화를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는, 추가 음성 발화(456B)의 프로세싱에 기초하여 생성된 ASR 출력 및/또는 NLU 출력에 기초하여, 사용자가 특정 이행의 특정 에스펙트에 대해 문의하고 있기 때문에 특정 추론에 대한 요청이 특정 요청임을 결정할 수 있다(예: why the automated assistant selected "application 1" to play "song 1" by "artist 1(자동화된 어시스턴트가 "아티스트 1"의 "노래 1"을 재생하기 위해 "애플리케이션 1"을 선택한 이유)). 따라서, 자동화된 어시스턴트는 추가 음성 발화(456A)에 응답하여 출력을 생성하는데 사용될 추가적인 데이터를 결정하기 위해 선택된 특정 이행 후보와 연관된 메타데이터를 획득할 수 있다. 특히, 도 4b의 예에서, 추가 데이터는 도 4b의 예에서 사용된 추가 데이터가 특히 "어플리케이션 1"이 선택된 이유를 묻는 사용자(401)의 특정 요청에 맞춰지거나 적응될 수 있다는 점에서 도 4b의 예의 추가 데이터와 다를 수 있다. 추가 데이터를 기반으로, 자동화된 어시스턴트는 "You share your application usage with me, and it looks like you use application 1 the most for listening to music(저와 애플리케이션 사용량을 공유하셨는데, 음악 감상에 애플리케이션 1을 가장 많이 사용하시는 것 같습니다.))"와 같은 추가 합성된 음성(458B1)을 야기할 수 있으며, 이는 클라이언트 장치(410)의 스피커(들)를 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 제공되는 음악 듣기를 위해 애플리케이션 1을 가장 많이 사용하는 것처럼 보인다. 일부 구현에서, 자동화된 어시스턴트는 선택적으로 예를 들어 사용자(401)에게 "Use application 2, but only for rock music(애플리케이션 2를 사용하되 록 음악에만 사용)"라는 추가 음성 발화(460B)를 제공하도록 요청하는 것과 같이, 사용자(401)가 일부 대체 이행 후보를 자동화된 어시스턴트가 수행하기를 원하는 경우, 사용자(401)에게 추가 음성 발화를 제공하도록 요청하는 클라이언트 장치(410)의 스피커(들)를 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 "Would you prefer me to do something else?(내가 다른 일을 하길 원하십니까?)"라는 프롬프트(458B2)(예: 추천 데이터를 기반으로 결정됨)가 제공되게 할 수 있다. 도 4a에 관하여 전술한 바와 유사하게, 추가 음성 발화(460B)는 음성 발화(452B) 및 자동화된 어시스턴트가 록 음악을 재생하기 위한 어시스턴트 명령을 포함하는 음성 발화의 미래 인스턴스에 응답하여 사용될 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 암시적으로 부여할 수 있다.
구체적으로 도 4c를 참조하면, 도 4a 및 도 4b와 대조적으로, 사용자가 "Assistant, play rock music(어시스턴트, 록 음악 재생해)"라는 동일한 음성 발화(452C)를 제공한다고 가정한다. 그러나, 도 4c의 예에서, 사용자(401)가 음악을 재생할 수 있는 임의의 소프트웨어 애플리케이션 또는 서비스(예를 들어, 도 1의 제1-파티 서버(들)(191) 및/또는 도 1의 제3-파티 서버(들)(192) 중 하나 이상에 의해 구현되는 스트리밍 서비스)에 대한 자동화된 어시스턴트 액세스를 승인하지 않았다고 가정한다. 따라서 "애플리케이션 1", "애플리케이션 2" 또는 기타 소프트웨어 애플리케이션이나 서비스와 연관된 하나 이상의 이행 후보에 포함된 이행 후보는 널 이행 후보와 연관될 수 있다. 그럼에도 불구하고 발화(452C)를 만족시키려는 시도에서, 자동화된 어시스턴트는 상호작용을 위한 연산 자원의 낭비를 피하기 위해 "rock music(록 음악)"에 대한 검색 결과와 같은 음성 발화(452C)에 응답하는 콘텐츠를 얻기 위해 예를 들어 웹 브라우저에 구조화된 요청을 전송할 수 있다. 도 4c에 도시된 바와 같이, 자동화된 어시스턴트는 클라이언트 장치(410)의 스피커(들)를 통해 "Rock music is a broad genre of popular music that originated as ‘rock and roll’ …(록 음악은 '로큰롤'에서 유래한 광범위한 대중 음악 장르입니다...)"의 합성된 음성(454C)이 사용자(401)에게 가청적인 프레젠테이션을 위해 제공되게 할 수 있다.
그러나, 추가로 사용자(401)가 "Why didn't you play music?(왜 음악을 재생하지 않았습니까?)"라는 추가 음성 발화(456C)를 제공한다고 가정한다. 추가 발화(456C)를 수신하는 것에 응답하여, 자동화된 어시스턴트는 ASR 모델(들)을 사용하여 추가 음성 발화(456C)를 캡처하는 오디오 데이터가 프로세싱되도록 하여 도 4의 음성 발화(452A)를 프로세싱하는 것과 관련하여 전술한 동일하거나 유사한 방식으로 ASR 출력을 생성하게 할 수 있다. 또한, ASR 출력은 NLU 모델(들)을 사용하여 프로세싱되어 도 4a의 음성 발화(452A)를 프로세싱하는 것과 관련하여 위에서 설명한 것과 동일하거나 유사한 방식으로 NLU 출력을 생성할 수 있다. 자동화된 어시스턴트는 ASR 출력 및/또는 NLU 출력에 기초하여, 추가 음성 발화(456C)가 음성 발화(452A)에 포함된 어시스턴트 명령의 특정 이행이 수행된 이유에 대한 특정 추론을 제공하라는 자동화된 어시스턴트에 대한 요청을 포함하는지 여부를 결정할 수 있다. 특히, 도 4c의 예에서, 사용자(401)가 자동화된 어시스턴트가 특정 이행을 수행하게 한 이유에 대해 문의하는 대신, 사용자(401)는 자동화된 어시스턴트가 특정 이행을 수행하지 않은 이유에 대해 질문하고 있다.
따라서, 도 4c의 예에서, 자동화된 어시스턴트는, 추가 음성 발화(456A)의 프로세싱에 기초하여 생성된 ASR 출력 및/또는 NLU 출력에 기초하여, 사용자가 특정 이행의 특정 에스펙트에 대해 문의하고 있기 때문에 특정 추론에 대한 요청이 특정 요청이라고 결정할 수 있다(예: 자동화된 어시스턴트가 음악을 재생하지 않는 이유). 따라서, 자동화된 어시스턴트는 추가 음성 발화(456C)에 응답하여 출력을 생성하는 데 사용될 추가 데이터를 결정하기 위해 선택되지 않은 하나 이상의 대체 이행 후보와 연관된 메타데이터를 획득할 수 있다. 특히, 도 4c의 예에서, 추가 데이터는 도 4c의 예에서 사용된 추가 데이터가 특히 음악이 재생되지 않은 이유를 묻는 사용자(401)의 특정 요청에 맞춰지거나 적응될 수 있다는 점에서 도 4a 및 4b의 예의 추가 데이터와 다를 수 있다. 추가 데이터를 기반으로, 자동화된 어시스턴트는 클라이언트 장치(410)의 스피커(들)을 통해 사용자(401)에게 가청적인 프레젠테이션을 위해 “You have not granted me access to any applications or services that I can use to play music(음악을 재생하는 데 사용할 수 있는 애플리케이션이나 서비스에 대한 액세스 권한을 부여하지 않았습니다)”와 같은 추가 합성된 음성(458C1)이 제공되게 할 수 있다. 일부 구현에서, 자동화된 어시스턴트는, 예를 들어 사용자(401)에게 "Yes, use application 2, but only for rock music(예, 애플리케이션 2를 사용하지만 록 음악에만 해당됩니다)"와 같은 추가 음성 발화(460C)를 제공하도록 요청하는 것과 같이, 사용자(401)가 하나 이상의 소프트웨어 애플리케이션 또는 서비스를 사용하여 음악을 재생하기를 원하는 경우, 클라이언트 장치(410)의 스피커(들)를 통해 사용자(401)에게 추가 음성 발화를 제공하도록 요청하는 "Would you like to grant me permission to an application or service?(애플리케이션 또는 서비스에 대한 권한을 부여하시겠습니까?)"와 같은 프롬프트(458C2)(예: 추천 데이터를 기반으로 결정됨)가 사용자(401)에게 청각적으로 프레젠테이션을 위해 제공되도록 선택적으로 할 수 있다. 도 4c의 예에서, 추가 음성 발화(460C)는 음성 발화(452C) 및 자동화된 어시스턴트가 록 음악을 재생하기 위한 어시스턴트 명령을 포함하는 음성 발화의 미래 인스턴스(future instances)에 응답하여 사용될 "애플리케이션 2"에 대한 자동화된 어시스턴트 액세스를 명시적으로 부여할 수 있다.
도 5a 내지 도 5b는 제공될 어시스턴트 명령의 이행에 대한 특정 추론을 유발하는 다양한 추가적인 비제한적 예를 도시한다. 클라이언트 장치(510)(예를 들어, 도 1의 클라이언트 장치(110)의 인스턴스)는 예를 들어 음성 발화 및/또는 기타 가청 입력을 기반으로 오디오 데이터를 생성하는 마이크로폰(들), 합성된 음성 및/또는 기타 가청 출력을 들을 수 있게 렌더링하는 스피커(들) 및/또는 시각적 출력을 시각적으로 렌더링하는 디스플레이(580)을 포함하는 다양한 사용자 인터페이스 컴포넌트를 포함할 수 있다. 또한, 클라이언트 장치(510)의 디스플레이(580)는 클라이언트 장치(510)가 하나 이상의 동작을 수행하게 하기 위해 클라이언트 장치(510)의 사용자와 상호 작용할 수 있는 다양한 시스템 인터페이스 요소(581, 582, 583)(예: 하드웨어 및/또는 소프트웨어 인터페이스 요소)를 포함할 수 있다. 클라이언트 장치(510)의 디스플레이(580)는 사용자가 터치 입력(예를 들어, 사용자 입력을 디스플레이(580) 또는 그 일부(예를 들어, 텍스트 입력 상자(미도시), 키보드(미도시), 또는 디스플레이(580)의 다른 부분으로 지시함으로써) 및/또는 음성 입력(예를 들어, 마이크로폰 인터페이스 요소(584)를 선택함으로써 또는 클라이언트 장치(510)에서 반드시 마이크로폰 인터페이스 요소(584)를 선택하지 않고 말함으로써(즉, 자동화된 어시스턴트는 하나 이상의 용어 또는 구, 제스처(들) 응시(들), 입 움직임(들), 입술 움직임(들) 및/또는 음성 입력을 활성화하기 위한 기타 조건을 모니터링할 수 있다))에 의해 디스플레이(580) 상에 렌더링된 콘텐츠와 상호작용할 수 있게 한다. 도 5a-5b에 도시된 클라이언트 장치(510)는 이동 전화기이며, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 클라이언트 장치(510)는 디스플레이가 있는 독립형 스피커, 디스플레이가 없는 독립형 스피커(예를 들어, 도 4a-4c와 관련하여 설명된 바와 같이), 홈 오토메이션 장치, 차량 내 시스템, 랩탑, 데스크탑 컴퓨터 및/또는 클라이언트 장치(510)의 사용자와 인간 대 컴퓨터 대화 세션에 참여하기 위해 자동화된 어시스턴트를 실행할 수 있는 임의의 다른 장치일 수 있다.
구체적으로 도 5a에 도시된 바와 같이, 클라이언트 장치(510)의 사용자가 "Play some rock music(록 음악 좀 틀어 줘)"라는 음성 발화(552A)를 제공한다고 가정하자. 음성 발화(552A)를 수신하는 것에 응답하여, 자동화된 어시스턴트는 ASR 출력을 생성하기 위해 ASR 모델(들)을 사용하여 음성 발화(552A)를 캡처하는 오디오 데이터가 프로세싱되도록 할 수 있고, NLU 모델(들)을 사용하여 ASR 출력이 NLU 출력을 생성하도록 프로세싱되도록 할 수 있고, 이행 규칙 및/또는 이행 모델을 사용하여 NLU 출력을 프로세싱하여 동일하거나 유사한 방식으로 이행 출력을 생성한다. 또한, 사용자의 클라이언트 장치(510)가 클라이언트 장치(510)보다 더 강력한 스피커를 갖고 록 음악을 재생할 수 있는 스마트 스피커(예: 거실 스피커)와 통신적으로 결합되어 있다고 자동화된 어시스턴트가 결정한다고 가정한다. 따라서, 음성 발화(552A)를 프로세싱하는 것에 기초하여, 자동화된 어시스턴트는 록 음악이 거실 스피커에서 재생되도록 하고 그리고 “Okay, playing rock music on the living room speaker(알겠습니다. 거실 스피커에서 록 음악을 재생합니다)"와 같은 합성된 음성(554A)이 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 가청적인 프레젠테이션을 위해 제공되도록 결정할 수 있고 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적으로 제시하기 위해 거실 스피커에서 록 음악을 재생하도록 결정할 수 있다.
그러나, 추가로 클라이언트 장치(510)의 사용자가 "Why did you decide to play the music on the living room speaker?(거실 스피커에서 음악을 재생하기로 결정한 이유는 무엇입니까?)"라는 추가 음성 발화(556A)를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는, 추가 음성 발화(556A)의 프로세싱에 기초하여 생성된 ASR 출력 및/또는 NLU 출력에 기초하여, 특정 추론에 대한 요청이 추가 음성 발화에 포함되어 있고 그리고 사용자가 특정 이행의 특정 에스펙트에 대해 문의하고 있기 때문에 요청이 특정 요청이라는 것을 결정할 수 있다(예: 자동화된 어시스턴트가 록 음악을 재생하기 위해 "거실 스피커"를 선택한 이유). 이 예에서, 자동화된 어시스턴트는 클라이언트 장치(510) 또는 클라이언트 장치(510)에 통신 가능하게 결합되고 음악을 재생할 수 있는 다른 컴퓨팅 장치가 아니라(예: 주방 스피커, 서재 스피커 등), 자동화된 어시스턴트가 거실 스피커에서 음악을 재생하기로 결정한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 선택된 이행 후보와 연관된 메타데이터를 획득할 수 있다. 추가 데이터를 기반으로, 자동화된 어시스턴트는 “The living room speaker is more robust than your phone’s speaker("거실 스피커는 휴대폰 스피커보다 더 로버스트합니다)”와 같은 추가 합성된 음성(558A1)이 (그리고 선택적으로 (예를 들어, 도 1의 클라이언트 장치(110)의 존재 센서(들)(111)를 통해) 거실에서 클라이언트 장치(510)의 사용자의 검출된 존재에 기초하여) 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 가청적으로 제공되도록 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적으로 제공되도록 할 수 있다. 일부 구현에서, 자동화된 어시스턴트는, 예를 들어 록 음악을 재생하기 위해 클라이언트 장치(510)를 사용하는 것, 음악을 재생하기 위해 클라이언트 장치(510)에 의해 액세스 가능한 상이한 소프트웨어 애플리케이션을 사용하는 것, 자동화된 어시스턴트가 아티스트/노래를 전환하게 하는 것 등과 같이 사용자가 대체 이행 후보를 자동화된 어시스턴트가 수행하기를 원하는 경우, 선택적으로 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 청각적으로 프레젠테이션하기 위해 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적으로 프레젠테이션하기 위해 사용자가 추가 음성 발화를 제공하도록 요청하는 “Would you prefer me to play the rock music on your phone or another device?(휴대전화로 록 음악을 틀어드릴까요, 아니면 다른 기기에서 틀어드릴까요?)”와 같은 프롬프트(558A2)(예: 추천 데이터를 기반으로 결정됨)가 제공되도록 할 수 있다. 사용자가 추가 입력을 제공하면 자동화된 어시스턴트가 그에 따라 음악 재생을 조정할 수 있다.
추가적인 또는 대안적인 구현에서, 클라이언트 장치(510)의 사용자가 특정 추론에 대한 요청을 포함하는 임의의 추가 사용자 입력(556A)을 제공하기를 기다리는 것과 대조적으로, 자동화된 어시스턴트는 특정 추론과 연관된 하나 이상의 선택 가능한 요소를 능동적으로 제공할 수 있다. 예를 들어, 특히 도 5b를 참조하면, 클라이언트 장치(510)의 사용자가 "Play some rock music(록 음악 좀 틀어 줘)"라는 음성 발화(552B)를 제공한다고 가정하자. 음성 발화(552B)를 수신하는 것에 응답하여, 자동화된 어시스턴트는 음성 발화(552B)를 캡처하는 오디오 데이터가 ASR 모델(들)을 사용하여 프로세싱되게 하여 ASR 출력을 생성하게 하고, ASR 출력이 NLU 모델(들)을 사용하여 프로세싱되게 하여 NLU 출력을 생성하게 하고, 이행 규칙 및/또는 이행 모델을 사용하여 NLU 출력을 프로세싱하여 동일하거나 유사한 방식으로 이행 출력을 생성한다. 사용자의 클라이언트 장치(510)가 클라이언트 장치(510)보다 더 로버스트한 스피커를 갖고 록 음악을 재생할 수 있는 스마트 스피커(예: 거실 스피커)와 통신적으로 결합되어 있다고 자동화된 어시스턴트가 결정한다고 가정한다. 따라서, 발화(552B) 프로세싱에 기초하여, 자동화된 어시스턴트는 거실 스피커에서 록 음악을 재생하도록 결정할 수 있고 그리고 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 가청적 프레젠테이션을 위해 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적 프레젠테이션을 위해 "Okay, playing rock music on the living room speaker(알겠습니다. 거실 스피커에서 록 음악을 재생합니다)”와 같은 합성된 음성(554B)이 제공되도록 결정할 수 있고, 거실 스피커에서 록 음악이 재생되도록 할 수 있다.
그러나, 도 5b의 예에서, 또한 클라이언트 장치(510)의 사용자가 임의의 추가적인 음성 발화 또는 다른 사용자 입력을 제공하지 않고 특정 추론과 연관된 하나 이상의 선택 가능한 요소를 능동적으로 자동화된 어시스턴트가 제공한다고 가정한다. 예를 들어, 도 5b에 도시된 바와 같이, 자동화된 어시스턴트는 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 일반적으로 수행한 이유에 대한 일반 요청과 연관된 "Why did you do that?(왜 그랬어?)"라는 제1 선택 가능한 요소(556B1)를 야기할 수 있고, 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 거실 스피커를 사용하여 수행한 이유에 대한 특정 요청과 연관된 “Why did you use the living room speaker?(거실 스피커는 왜 사용했습니까?)”와 같은 제2 선택 가능 요소(556B2)를 야기할 수 있다. 클라이언트 장치의 사용자로부터, 제1 선택가능 요소(556B1)의 사용자 선택(예: 터치 입력 또는 음성 입력을 통해)에 응답하여, 자동화된 어시스턴트는 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 사용자 선택(예를 들어, 제1 선택 가능 요소(556B1)의 사용자 선택 또는 제2 선택 가능 요소(556B2)의 사용자 선택)에 기초하여 어시스턴트 명령의 특정 이행과 연관된 메타데이터를 획득할 수 있다. 예를 들어, 제1 선택가능 요소(556B1)의 사용자 선택을 수신하는 것에 응답하여, 자동화된 어시스턴트는 자동화된 어시스턴트가 록 음악을 재생하기 위해 특정 애플리케이션을 왜 선택했는지(예를 들어, 도 4a-4c와 관련하여 전술한 바와 같이 "애플리케이션 1" 대 "애플리케이션 2"), 특정 아티스트를 왜 선택했는지(예를 들어, 도 4a-4c와 관련하여 전술한 바와 같이), 특정 아티스트의 특정 노래를 왜 선택했는지(예를 들어, 도 4a-4c와 관련하여 전술한 바와 같이), 거실 스피커에서 음악을 왜 재생했는지(예를 들어, 도 5a와 관련하여 전술한 바와 같이), 및/또는 특정 이행의 다른 에스펙트과 연관된 특정 추론에 대한 추가 데이터를 결정할 수 있다. 또한, 예를 들어, 제2 선택 가능 요소(556B2)의 사용자 선택을 수신하는 것에 응답하여, 자동화된 어시스턴트는 클라이언트 장치(510) 또는 클라이언트 장치(510)에 통신 가능하게 연결되고 음악을 재생할 수 있는 다른 컴퓨팅 장치(예: 주방 스피커, 서재 스피커 등)에서가 아니라 거실 스피커에서 음악을 재생하기로 결정한 이유에 대한 추가 데이터를 결정할 수 있다.
예를 들어, 도 5b의 예에서, 클라이언트 장치(510)의 사용자가 제2 선택 가능 요소(556B2)의 사용자 선택을 제공한다고 가정한다. 제2 선택 가능 요소(556B2)의 사용자 선택에 기초하여 결정된 추가 데이터에 기초하여, 자동화된 어시스턴트는, (그리고 선택적으로 (예를 들어, 도 1의 클라이언트 장치(110)의 존재 센서(들)(111)를 통해) 거실에서 클라이언트 장치(510)의 사용자의 검출된 존재에 기초하여) “The living room speaker is more robust than your phone’s speaker(거실 스피커는 휴대폰 더 로버스트합니다)”와 같은 추가 합성된 음성(558B1)이 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 청각적으로 제공되도록 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적으로 제공되도록 할 수 있다. 일부 구현에서, 자동화된 어시스턴트는 록 음악을 재생하기 위해 클라이언트 장치(510)를 사용하는 것, 음악을 재생하기 위해 클라이언트 장치(510)에 의해 액세스 가능한 상이한 소프트웨어 애플리케이션을 사용하는 것, 자동 어시스턴트가 아티스트/노래를 전환하게 하는 것 등과 같이 사용자가 자동화된 어시스턴트가 대체 이행 후보를 수행하기를 원하는 경우, 클라이언트 장치(510)의 스피커(들)를 통해 사용자에게 청각적으로 프레젠테이션하기 위해 및/또는 클라이언트 장치(510)의 디스플레이(580)를 통해 사용자에게 시각적으로 프레젠테이션하기 위해 “Would you prefer me to play the rock music on your phone or another device?(휴대전화로 록 음악을 틀어드릴까요, 아니면 다른 기기에서 틀어드릴까요?)”와 같은 프롬프트(558B2)(예: 추천 데이터를 기반으로 결정됨)가 선택적으로 제공되도록 할 수 있으며, 이는 사용자에게 추가 음성 발화를 제공하도록 요청한다. 사용자가 추가 입력을 제공하면 자동화된 어시스턴트가 그에 따라 음악 재생을 조정할 수 있다.
비록 도 4a-4c 및 5a-5b의 예들은 자동화된 어시스턴트가 미디어 애플리케이션 또는 미디어 서비스에 대한 특정 음성 발화에 기초하여 이행을 수행하게 하고 추가적인 특정 음성 발화에 응답하여 이행을 위한 특정 추론을 제공하는 것과 관련하여 설명되었지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 본 명세서에 기술된 기술은 자동화된 어시스턴트에 의해 수행되는 임의의 이행의 임의의 에스펙트에 대해 및/또는 자동화된 어시스턴트에 의해 선택되거나 선택되지 않는 임의의 이행 후보에 대해 특정 추론을 제공하기 위해 사용될 수 있다. 더욱이, 도 4a-4c 및 5a-5b의 상기 예들이 비록 특정 추천 데이터에 기초하여 결정된 특정 추천된 액션을 제공하는 것과 관련하여 설명되지만(예: 미디어 재생을 위한 특정 소프트웨어 애플리케이션에 대한 자동화된 어시스턴트 액세스 권한 부여), 이는 또한 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 일부 비제한적 예로서, 본 명세서에 기술된 추천된 액션은 임의의 소프트웨어 애플리케이션, 임의의 사용자 계정, 사용자와 연관된 임의의 컴퓨팅 장치, 이력 쿼리 활동, 및/또는 어시스턴트 명령을 이행하는 방법을 결정할 때 자동화된 어시스턴트가 활용할 수 있는 기타 모든 사용자 데이터에 대한 자동화된 어시스턴트 액세스 권한 부여를 포함할 수 있다.
도 6은 본 명세서에 기술된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 사용될 수 있는 예시적인 컴퓨팅 장치(610)의 블록도이다. 일부 구현에서, 클라이언트 장치, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 장치(610)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 장치(610)는 전형적으로 버스 서브시스템(612)을 통해 복수의 주변 장치와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이들 주변 장치는, 예를 들어, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626), 사용자 인터페이스 출력 장치들(620), 사용자 인터페이스 입력 장치들(622) 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장 서브시스템(624)을 포함한다. 입력 및 출력 장치는 사용자가 컴퓨팅 장치(610)와 상호 작용할 수 있도록 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨팅 장치의 대응하는 인터페이스 장치에 결합된다.
사용자 인터페이스 입력 장치들(622)은, 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크로폰 및/또는 기타 유형의 입력 장치를 포함할 수 있다. 일반적으로, 입력 장치라는 용어의 사용은 정보를 컴퓨팅 장치(610) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치들(620)은 디스플레이 서브시스템, 프린터, 팩스 또는 오디오 출력 장치와 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평면 패널 장치, 프로젝션 장치 또는 가시 이미지를 생성하기 위한 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 오디오 출력 장치와 같은 비시각적 디스플레이를 제공할 수도 있다. 일반적으로, 출력 장치라는 용어의 사용은 컴퓨팅 장치(610)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하기 위한 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 기술된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 도 1 및 도2에 도시된 다양한 컴포넌트를 구현하는 것뿐만 아니라 본 명세서에 개시된 방법의 선택된 양상을 수행하기 위한 로직(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))가 획득되는 경우 사용자의 지리적 위치가 일반화되어 사용자의 특정 지리적 위치가 결정될 수 없다. 따라서 사용자는 사용자에 대한 정보 수집 및/또는 사용 방법을 제어할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 상기 특정 이행을 수행하게 하는 단계; 상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는, 자동 음성 인식(ASR) 모델을 사용하여, 상기 어시스턴트 명령을 포함하는 상기 사용자 입력을 캡처한 오디오 데이터를 프로세싱하여 ASR 출력을 생성하는 단계; 자연어 이해(NLU) 모델을 사용하여, 상기 ASR 출력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고 상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하는 단계를 포함할 수 있다.
일부 구현들에서, 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는, 자연어 이해(NLU) 모델을 사용하여, 상기 타이핑된 입력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고 상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 생성하는 단계를 포함한다.
일부 구현에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청은, 상기 자동화된 어시스턴트가 상기 특정 이행을 수행하는 데 사용된, 복수의 서로 다른 소프트웨어 애플리케이션들 중에서, 특정 소프트웨어 애플리케이션을 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청이다. 이러한 구현의 일부 버전에서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는, 상기 특정 이행을 수행하는 데 사용된 상기 특정 소프트웨어 애플리케이션과 연관된 메타데이터를 획득하는 단계; 그리고 상기 특정 소프트웨어 애플리케이션과 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함한다.
일부 구현에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은, 상기 자동화된 어시스턴트가 특정 이행을 수행하는 데 사용된, 상기 사용자 입력의 복수의 서로 다른 해석(disparate interpretations) 중에서, 상기 사용자 입력의 특정 해석을 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청이다. 이러한 구현의 일부 버전에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는, 상기 특정 이행을 수행하는 데 사용된 상기 사용자 입력의 특정 해석과 연관된 메타데이터를 획득하는 단계; 그리고 상기 사용자 입력의 특정 해석과 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함한다.
일부 구현에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은, 상기 자동화된 어시스턴트가 특정 이행을 수행하는 데 사용된, 상기 사용자의 클라이언트 장치 대신에, 상기 사용자의 추가 클라이언트 장치를 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청이다. 이러한 구현의 일부 버전에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 추가 사용자 입력을 프로세싱하는 단계는, 상기 특정 이행을 수행하는 데 사용된 상기 추가 클라이언트 장치와 연관된 메타데이터를 획득하는 단계; 그리고 상기 추가 클라이언트 장치와 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함한다.
일부 구현에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은, 상기 자동화된 어시스턴트가 상기 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 일반적인 요청을 포함한다. 이러한 구현의 일부 버전에서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 추가 사용자 입력을 프로세싱하는 단계는, (i) 상기 특정 이행을 수행하는 데 사용된, 복수의 서로 다른 소프트웨어 애플리케이션 중에서, 특정 소프트웨어 애플리케이션, (ii) 상기 특정 이행을 수행하는 데 사용된, 상기 사용자 입력에 대한 복수의 서로 다른 해석 중에서, 상기 사용자 입력에 대한 특정 해석, 또는 (iii) 상기 특정 이행을 수행하는 데 사용된, 상기 사용자의 클라이언트 장치 대신에, 상기 사용자의 추가 클라이언트 장치 중 하나 이상과 연관된 해당 메타데이터를 획득하는 단계: 그리고 상기 해당 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함한다.
일부 구현에서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계는, TTS(text-to-speech) 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론에 대응하는 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 생성하도록 상기 추가 데이터를 프로세싱하는 단계를 포함한다.
일부 구현에서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계는, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력이 상기 클라이언트 장치의 디스플레이에서 시각적으로 렌더링되게 하는 단계를 포함한다. 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는 상기 추가 사용자 입력에 포함된 요청에 기초하여, 미리 생성된 데이터의 복수의 서로 다른 인스턴스 중에서 상기 추가 데이터를 선택하는 단계를 포함한다.
일부 구현들에서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는 상기 추가 사용자 입력에 포함된 요청에 기초하여, 상기 추가 데이터를 생성하는 단계를 포함한다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터가 결정될 수 있는지 여부를 결정하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 없다는 결정에 응답하여: 상기 어시스턴트 명령의 대체 이행을 수행하는 데 사용될 대체 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 그리고 상기 자동화된 어시스턴트로 하여금 상기 어시스턴트 명령의 대체 이행을 수행하기 위해 상기 대체 데이터를 사용하게 하는 단계; 상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트의 특정 이행 대신에 상기 어시스턴트 명령의 상기 대체 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현들에서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는 데 사용된 추천 데이터를 생성하도록 상기 추가 사용자 입력을 프로세싱하는 단계를 더 포함한다. 이러한 구현의 일부 버전에서, 상기 출력은 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 가능하게 할 수 있는 방법에 대한 상기 추천된 액션을 더 포함할 수 있다. 이러한 구현의 일부 추가 버전에서, 상기 추천된 액션은 선택될 때 상기 자동화된 어시스턴트로 하여금 상기 추천된 액션을 수행하게 하는 프롬프트를 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터가 결정될 수 있는지 여부를 결정하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 없다는 결정에 응답하여: 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는데 사용될 추천 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 그리고 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 가능하게 할 수 있는 방법에 대한 추천된 액션을 포함하고, 그리고 선택될 때 상기 자동화된 어시스턴트가 상기 추천된 액션을 수행하도록 하는 프롬프트를 포함하는 출력을 제공하도록 추천 데이터를 사용하도록 하는 단계; 그리고 상기 클라이언트 장치의 사용자로부터, 상기 프롬프트의 사용자 선택을 포함하는 추가 사용자 입력을 수신하는 것에 응답하여: 상기 자동화된 어시스턴트로 하여금 상기 어시스턴트 명령의 특정 이행을 수행할 수 있도록 상기 추천된 액션을 수행하도록 하는 단계를 포함한다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는데 사용될 추천 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 것은 상기 어시스턴트 명령의 대체 이행이 없다는 결정에 응답할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 특정 이행을 수행하게 하는 단계; 상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 상기 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법이 제공되며, 방법은, 클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계; 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 특정 이행을 수행하게 하는 단계; 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행하는 동안: 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 선택될 때 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하게 하는 선택 가능한 요소를 시각적으로 렌더링하게 하는 단계; 그리고 상기 선택 가능한 요소의 사용자 선택을 포함하는 추가 사용자 입력을 상기 클라이언트 장치의 사용자로부터 수신하는 것에 응답하여: 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하게 하는 단계를 포함할 수 있다.
본 명세서에 개시된 기술의 이들 및 다른 구현은 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 자동화된 어시스턴트로 향하는 어시스턴트 명령을 포함하는 사용자 입력은 클라이언트 장치의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터에서 캡처될 수 있다. 이러한 구현의 일부 버전에서, 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는, 자동 음성 인식(ASR) 모델을 사용하여, 상기 어시스턴트 명령을 포함하는 상기 사용자 입력을 캡처한 오디오 데이터를 프로세싱하여 ASR 출력을 생성하는 단계; 자연어 이해(NLU) 모델을 사용하여, 상기 ASR 출력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고 상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 상기 데이터를 결정하는 단계를 포함할 수 있다. 이러한 구현의 일부 추가 버전에서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 선택될 때 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하게 하는 선택 가능한 요소를 시각적으로 렌더링하게 하는 것은 상기 NLU 출력과 연관된 NLU 메트릭이 NLU 메트릭 임계값을 충족하지 못한다는 결정에 응답할 수 있다.
또한, 일부 구현에는 하나 이상의 프로세서(예: 중앙 프로세싱 장치(들)(CPU(들)), 그래픽 프로세싱 장치(들)(GPU(들) 및/또는 텐서 프로세싱 장치(들))가 포함되며, 하나 이상의 컴퓨팅 장치에서 하나 이상의 프로세서는 관련 메모리에 저장된 명령어를 실행하도록 동작 가능하고 명령어는 전술한 방법 중 임의의 방법의 성능을 유발하도록 구성된다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 컴퓨터 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램 제품을 포함한다.
Claims (30)
- 하나 이상의 프로세서에 의해 구현되는 방법으로서,
클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계;
상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 상기 특정 이행을 수행하게 하는 단계;
상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계;
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고
상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서, 상기 어시스턴트 명령을 포함하고 그리고 상기 자동화된 어시스턴트로 향하는 사용자 입력은 상기 클라이언트 장치의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터에서 캡처되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
- 제2항에 있어서, 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는,
자동 음성 인식(ASR) 모델을 사용하여, 상기 어시스턴트 명령을 포함하는 상기 사용자 입력을 캡처한 오디오 데이터를 프로세싱하여 ASR 출력을 생성하는 단계;
자연어 이해(NLU) 모델을 사용하여, 상기 ASR 출력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고
상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트에 대한 어시스턴트 명령을 포함하는 상기 사용자 입력은 상기 클라이언트 장치의 디스플레이를 통해 검출된 타이핑된 입력에서 캡처되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
- 제4항에 있어서, 상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는,
자연어 이해(NLU) 모델을 사용하여, 상기 타이핑된 입력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고
상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청은,
상기 자동화된 어시스턴트가 상기 특정 이행을 수행하는 데 사용된, 복수의 서로 다른 소프트웨어 애플리케이션들 중에서, 특정 소프트웨어 애플리케이션을 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제6항에 있어서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는,
상기 특정 이행을 수행하는 데 사용된 상기 특정 소프트웨어 애플리케이션과 연관된 메타데이터를 획득하는 단계; 그리고
상기 특정 소프트웨어 애플리케이션과 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은,
상기 자동화된 어시스턴트가 특정 이행을 수행하는 데 사용된, 상기 사용자 입력의 복수의 서로 다른 해석(disparate interpretations) 중에서, 상기 사용자 입력의 특정 해석을 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제8항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는,
상기 특정 이행을 수행하는 데 사용된 상기 사용자 입력의 특정 해석과 연관된 메타데이터를 획득하는 단계; 그리고
상기 사용자 입력의 특정 해석과 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은,
상기 자동화된 어시스턴트가 특정 이행을 수행하는 데 사용된, 상기 사용자의 클라이언트 장치 대신에, 상기 사용자의 추가 클라이언트 장치를 선택한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 특정 요청인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제10항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 추가 사용자 입력을 프로세싱하는 단계는,
상기 특정 이행을 수행하는 데 사용된 상기 추가 클라이언트 장치와 연관된 메타데이터를 획득하는 단계; 그리고
상기 추가 클라이언트 장치와 연관된 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 자동화된 어시스턴트에 대한 요청은,
상기 자동화된 어시스턴트가 상기 특정 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 일반적인 요청인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제12항에 있어서, 상기 자동화된 어시스턴트가 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 추가 사용자 입력을 프로세싱하는 단계는,
(i) 상기 특정 이행을 수행하는 데 사용된, 복수의 서로 다른 소프트웨어 애플리케이션 중에서, 특정 소프트웨어 애플리케이션, (ii) 상기 특정 이행을 수행하는 데 사용된, 상기 사용자 입력에 대한 복수의 서로 다른 해석 중에서, 상기 사용자 입력에 대한 특정 해석, 또는 (iii) 상기 특정 이행을 수행하는 데 사용된, 상기 사용자의 클라이언트 장치 대신에, 상기 사용자의 추가 클라이언트 장치 중 하나 이상과 연관된 해당 메타데이터를 획득하는 단계: 그리고
상기 해당 메타데이터에 기초하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 상기 추가 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계는,
TTS(text-to-speech) 모델을 사용하여, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론에 대응하는 합성된 음성을 포함하는 합성된 음성 오디오 데이터를 생성하도록 상기 추가 데이터를 프로세싱하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계는,
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력이 상기 클라이언트 장치의 디스플레이에서 시각적으로 렌더링되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는,
상기 추가 사용자 입력에 포함된 요청에 기초하여, 미리 생성된 데이터의 복수의 서로 다른 인스턴스 중에서 상기 추가 데이터를 선택하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 선행하는 청구항 중 어느 한 항에 있어서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는,
상기 추가 사용자 입력에 포함된 요청에 기초하여, 상기 추가 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 하나 이상의 프로세서에 의해 구현되는 방법으로서,
클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터가 결정될 수 있는지 여부를 결정하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 없다는 결정에 응답하여:
상기 어시스턴트 명령의 대체 이행을 수행하는 데 사용될 대체 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 그리고
상기 자동화된 어시스턴트로 하여금 상기 어시스턴트 명령의 대체 이행을 수행하기 위해 상기 대체 데이터를 사용하게 하는 단계;
상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트의 특정 이행 대신에 상기 어시스턴트 명령의 상기 대체 이행을 수행한 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계;
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고
클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제18항에 있어서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행한 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계는,
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는 데 사용된 추천 데이터를 생성하도록 상기 추가 사용자 입력을 프로세싱하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제19항에 있어서, 상기 출력은 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 가능하게 할 수 있는 방법에 대한 상기 추천된 액션을 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
- 제20항에 있어서, 상기 추천된 액션은 선택될 때 상기 자동화된 어시스턴트로 하여금 상기 추천된 액션을 수행하게 하는 프롬프트를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
- 하나 이상의 프로세서에 의해 구현되는 방법으로서,
클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터가 결정될 수 있는지 여부를 결정하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는데 사용될 데이터가 결정될 수 없다는 결정에 응답하여:
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는데 사용될 추천 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계; 그리고
상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 가능하게 할 수 있는 방법에 대한 추천된 액션을 포함하고, 그리고 선택될 때 상기 자동화된 어시스턴트가 상기 추천된 액션을 수행하도록 하는 프롬프트를 포함하는 출력을 제공하도록 추천 데이터를 사용하도록 하는 단계; 그리고
상기 클라이언트 장치의 사용자로부터, 상기 프롬프트의 사용자 선택을 포함하는 추가 사용자 입력을 수신하는 것에 응답하여:
상기 자동화된 어시스턴트로 하여금 상기 어시스턴트 명령의 특정 이행을 수행할 수 있도록 상기 추천된 액션을 수행하도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제22항에 있어서, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행할 수 있는 방법에 대한 추천된 액션을 생성하는데 사용될 추천 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 것은,
상기 어시스턴트 명령의 대체 이행이 없다는 결정에 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 하나 이상의 프로세서에 의해 구현되는 방법으로서,
클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계;
상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 특정 이행을 수행하게 하는 단계;
상기 클라이언트 장치의 사용자로부터, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 제공하도록 하는 상기 자동화된 어시스턴트에 대한 요청을 포함하는 추가 사용자 입력을 수신하는 단계;
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 상기 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고
상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 포함하는 출력을 제공하도록 상기 추가 데이터를 사용하도록 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 하나 이상의 프로세서에 의해 구현되는 방법으로서,
클라이언트 장치의 사용자로부터, 어시스턴트 명령을 포함하고 그리고 상기 클라이언트 장치에서 적어도 부분적으로 실행하는 자동화된 어시스턴트로 향하는 사용자 입력을 수신하는 단계;
상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계;
상기 자동화된 어시스턴트로 하여금 상기 데이터를 사용하여 상기 어시스턴트 명령의 특정 이행을 수행하게 하는 단계;
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행하는 동안:
상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 선택될 때 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하게 하는 선택 가능한 요소를 시각적으로 렌더링하게 하는 단계; 그리고
상기 선택 가능한 요소의 사용자 선택을 포함하는 추가 사용자 입력을 상기 클라이언트 장치의 사용자로부터 수신하는 것에 응답하여:
상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행 대신에 상기 어시스턴트 명령의 대체 이행을 수행하지 않은 이유에 대한 특정 추론을 제공하는 데 사용될 추가 데이터를 결정하기 위해 상기 추가 사용자 입력을 프로세싱하는 단계; 그리고
상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 포함하는 출력을 제공하게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제25항에 있어서, 상기 자동화된 어시스턴트에 대한 어시스턴트 명령을 포함하는 상기 사용자 입력은 상기 클라이언트 장치의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터에서 캡처되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
- 제26항에 있어서, 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 데이터를 결정하기 위해 상기 사용자 입력을 프로세싱하는 단계는,
자동 음성 인식(ASR) 모델을 사용하여, 상기 어시스턴트 명령을 포함하는 상기 사용자 입력을 캡처한 오디오 데이터를 프로세싱하여 ASR 출력을 생성하는 단계;
자연어 이해(NLU) 모델을 사용하여, 상기 ASR 출력을 프로세싱하여 NLU 출력을 생성하는 단계; 그리고
상기 NLU 출력에 기초하여 상기 어시스턴트 명령의 특정 이행을 수행하는 데 사용될 상기 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제27항에 있어서, 상기 클라이언트 장치의 사용자에게 프레젠테이션하기 위해, 상기 자동화된 어시스턴트로 하여금, 선택될 때 상기 자동화된 어시스턴트가 상기 어시스턴트 명령의 특정 이행을 수행한 이유에 대한 특정 추론을 제공하게 하는 선택 가능한 요소를 시각적으로 렌더링하게 하는 것은,
상기 NLU 출력과 연관된 NLU 메트릭이 NLU 메트릭 임계값을 충족하지 못한다는 결정에 응답하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 시스템으로서,
적어도 하나의 프로세서; 그리고
실행될 때 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제28항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령어를 저장한 메모리를 포함하는 것을 특징으로 하는 시스템. - 비일시적 컴퓨터 판독 가능 저장 매체로서,
실행될 때 적어도 하나의 프로세서로 하여금 제1항 내지 제28항 중 어느 한 항에 대응하는 동작을 수행하게 하는 명령어를 저장한 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163226961P | 2021-07-29 | 2021-07-29 | |
US63/226,961 | 2021-07-29 | ||
US17/532,759 | 2021-11-22 | ||
US17/532,759 US20230031461A1 (en) | 2021-07-29 | 2021-11-22 | Providing certain reasoning with respect to fulfillment of an assistant command |
PCT/US2021/060986 WO2023009156A1 (en) | 2021-07-29 | 2021-11-29 | Providing certain reasoning with respect to fulfillment of an assistant command |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230118959A true KR20230118959A (ko) | 2023-08-14 |
Family
ID=79165039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237023808A KR20230118959A (ko) | 2021-07-29 | 2021-11-29 | 어시스턴트 명령의 이행과 관련하여 특정한 이유 제공 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4150536A1 (ko) |
JP (1) | JP2024508209A (ko) |
KR (1) | KR20230118959A (ko) |
WO (1) | WO2023009156A1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11069351B1 (en) * | 2018-12-11 | 2021-07-20 | Amazon Technologies, Inc. | Vehicle voice user interface |
US11170774B2 (en) * | 2019-05-21 | 2021-11-09 | Qualcomm Incorproated | Virtual assistant device |
US12051409B2 (en) * | 2019-10-24 | 2024-07-30 | Capital One Services, Llc | Systems and methods for automated discrepancy determination, explanation, and resolution with personalization |
JP2023538923A (ja) * | 2020-08-21 | 2023-09-12 | オラクル・インターナショナル・コーポレイション | テキスト分類についての説明を与えるための技術 |
-
2021
- 2021-11-29 KR KR1020237023808A patent/KR20230118959A/ko unknown
- 2021-11-29 JP JP2023537164A patent/JP2024508209A/ja active Pending
- 2021-11-29 WO PCT/US2021/060986 patent/WO2023009156A1/en active Application Filing
- 2021-11-29 EP EP21835012.2A patent/EP4150536A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023009156A1 (en) | 2023-02-02 |
EP4150536A1 (en) | 2023-03-22 |
JP2024508209A (ja) | 2024-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11763813B2 (en) | Methods and systems for reducing latency in automated assistant interactions | |
US11749284B2 (en) | Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests | |
CN112313606B (zh) | 为自动助理扩展物理运动手势词典 | |
US11823684B2 (en) | Generating and/or utilizing voice authentication biasing parameters for assistant devices | |
JP7554921B2 (ja) | 自動アシスタントに関する自然な会話を可能にすること | |
KR20230147157A (ko) | 어시스턴트 명령(들)의 컨텍스트적 억제 | |
US20230031461A1 (en) | Providing certain reasoning with respect to fulfillment of an assistant command | |
US12020703B2 (en) | Enabling natural conversations with soft endpointing for an automated assistant | |
US20230061929A1 (en) | Dynamically configuring a warm word button with assistant commands | |
KR20230118959A (ko) | 어시스턴트 명령의 이행과 관련하여 특정한 이유 제공 | |
KR20230156929A (ko) | 적응적 사용자 상호 작용을 갖는 로봇형 컴퓨팅 디바이스 | |
CN116711283A (zh) | 提供关于履行助理命令的确定性推理 | |
US20240312460A1 (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 | |
US20240111811A1 (en) | Selecting a device to respond to device-agnostic user requests | |
CN117121100A (zh) | 为自动化助理启用具有软端点的自然对话 | |
KR20240096889A (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 | |
CN118339609A (zh) | 自动化助理装置之间的暖词仲裁 | |
KR20230153450A (ko) | 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재 | |
CN116670637A (zh) | 在用户迭代地提供口头话语或口头话语序列时由自动化助理对图形用户界面元素的动态适配 |