KR102404702B1 - 크로스-디바이스 핸드오프 - Google Patents

크로스-디바이스 핸드오프 Download PDF

Info

Publication number
KR102404702B1
KR102404702B1 KR1020227001205A KR20227001205A KR102404702B1 KR 102404702 B1 KR102404702 B1 KR 102404702B1 KR 1020227001205 A KR1020227001205 A KR 1020227001205A KR 20227001205 A KR20227001205 A KR 20227001205A KR 102404702 B1 KR102404702 B1 KR 102404702B1
Authority
KR
South Korea
Prior art keywords
computing device
assistant
conversation
user
assistant module
Prior art date
Application number
KR1020227001205A
Other languages
English (en)
Other versions
KR20220012409A (ko
Inventor
쉘팅가 안드레아 테르비스차 반
자히드 사부르
마이클 로이토프
프래틱 길다
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020227017861A priority Critical patent/KR102470185B1/ko
Publication of KR20220012409A publication Critical patent/KR20220012409A/ko
Application granted granted Critical
Publication of KR102404702B1 publication Critical patent/KR102404702B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • H04Q3/0033Provisions for intelligent networking customer-controlled
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0083Determination of parameters used for hand-off, e.g. generation or modification of neighbour cell lists
    • H04W36/0085Hand-off measurements
    • H04W36/0094Definition of hand-off measurement parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • H04W8/205Transfer to or from user equipment or user record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13547Indexing scheme relating to selecting arrangements in general and for multiplex systems subscriber, e.g. profile, database, database access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • H04W36/247Reselection being triggered by specific parameters by using coverage extension

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

제 1 컴퓨팅 디바이스는 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트와 사용자 사이의 대화의 적어도 일부인 사용자 입력의 표시를 수신할 수 있다. 디지털 어시스턴트 시스템에서 실행되는 제 1 어시스턴트 및/또는 어시스턴트는 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정할 수 있다. 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프하기로 결정한 것에 응답하여, 제 1 어시스턴트 및/또는 디지털 어시스턴트 시스템에서 실행되는 어시스턴트는 적어도 대화에 대한 표시를 포함하는, 대화를 핸드오프하라는 요청을 제 2 컴퓨팅 디바이스로 전송할 수 있다.

Description

크로스-디바이스 핸드오프{CROSS-DEVICE HADNOFFS}
본 발명은 컴퓨팅 디바이스들 간에 대화를 핸드오프하는 것에 관한 발명이다.
일부 컴퓨팅 플랫폼은 사용자가 가상 컴퓨팅 어시스턴트(예를 들어, "지능형 개인 어시스턴트", "대화형 어시스턴트" , "어시스턴트 모듈" 또는 간단히 "어시스턴트" 라고 지칭됨)와 채팅, 말하기 또는 다른 방식으로 통신할 수 있는 사용자 인터페이스를 제공할 수 있어, 어시스턴트가 정보를 출력하게 하거나, 사용자의 요청에 응답하게 하거나, 또는 사용자가 작업을 완료하는 것을 돕기 위해 특정 동작을 수행하게 할 수 있다. 일부 어시스턴트는 다른 기능을 가진 다양한 다른 컴퓨팅 플랫폼에서 실행될 수 있다. 예를 들어, 일부 컴퓨팅 플랫폼은 사용자와 어시스턴트 사이의 통신을 위한 오디오 기반 사용자 인터페이스만을 제공할 수 있는 반면, 다른 컴퓨팅 플랫폼은 사용자와 어시스턴트 간의 통신을 위해 오디오 기반 사용자 인터페이스(예를 들어, 마이크로폰 및 스피커) 뿐만 아니라 시각 기반 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스)를 제공할 수 있다.
일반적으로, 본 개시의 기술은 어시스턴트가 제 1 컴퓨팅 플랫폼에서 제 2 컴퓨팅 플랫폼으로 사용자와의 기존 대화를 핸드오프할 수 있게 하며, 따라서 핸드오프 전에 추론된 기존 대화의 콘텍스트가 핸드오프를 거쳐서 추적될 수 있다. 즉, 대화의 핸드오프를 수신하는 제 2 컴퓨팅 플랫폼의 어시스턴트는 핸드오프 이전에 발생한 기존 대화의 일부를 다시 참조하는 질의를 수신할 수 있다. 제 2 컴퓨팅 플랫폼의 어시스턴트는 어시스턴트에 의해 추론된 기존 대화의 추적된 콘텍스트에 기초하여 참조 콘텍스트를 결정할 수 있다. 따라서, 제 2 컴퓨팅 디바이스의 어시스턴트는 질의에 대한 관련 응답을 제공할 수 있다. 어시스턴트는 기존 대화를 핸드오프할 수 있을 뿐만 아니라, 어시스턴트는 사용자가 대화를 핸드오프하기 위한 명시적인 지시를 제공하지 않더라도 기존 대화를 핸드오프할지 여부를 결정할 수도 있다. 예를 들어, 제 1 컴퓨팅 플랫폼이 질의에 대한 응답을 제공하는 것을 도울 수 있는 컴포넌트들을 포함하지 않는 경우(예를 들어, 상기 질의가 소정 위치로 안내하는 내비게이션 명령일 때, 제 1 컴퓨팅 플랫폼이 디스플레이 디바이스에 동작가능하게 연결되지 않음), 어시스턴트는 제 1 컴퓨팅 플랫폼으로부터 제 2 컴퓨팅 플랫폼으로 대화를 핸드오프할 수 있고, 여기서 제 2 컴퓨팅 플랫폼은 이러한 컴포넌트(예를 들어, 내비게이션 방향이 오버레이된 지도를 표시할 수 있는 위한 디스플레이)를 포함한다.
따라서, 본 명세서에 설명된 기술들은 어시스턴트의 유용성을 향상시킬 수 있다. 대화를 핸드오프할지(명시적인 사용자 명령의 유무에 관계없이) 결정하고 대화를 계속하기에 보다 적합한 다른 컴퓨팅 시스템을 결정함으로써, 사용자는 제 1 컴퓨팅 플랫폼으로부터 제 2 컴퓨팅 플랫폼으로 대화를 핸드오프하도록 어시스턴트에게 지시할 필요가 없을 수 있다. 또한, 질의를 완료하기 위해서는 사용자가 다른 디바이스를 사용해야함을 나타내는 에러 또는 다른 메시지를 단순히 출력하는 것, 제 2 컴퓨팅 플랫폼에서 사용자가 상기 질의를 반복할 것을 요구하는 것 대신에, 어시스턴트는 간단하게 사용자가 제 2 컴퓨팅 플랫폼에서 대화를 계속하게 할 수 있다(사용자가 이전에 제 1 컴퓨팅 플랫폼에서 제공한 것과 동일한 사용자 상호작용들을 반복할 필요없이).
일 양상에서, 본 발명은 방법에 관한 것이다. 상기 방법은 컴퓨팅 시스템에 의해, 사용자로부터 제 1 컴퓨팅 디바이스에 의해 수신된 질의에 대한 표시를 수신하는 단계를 포함할 수 있고, 상기 질의는 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성한다. 상기 방법은 또한, 상기 컴퓨팅 시스템에 의해, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하는 단계를 포함할 수 있다. 상기 방법은 또한, 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프한다는 결정에 응답하여, 상기 컴퓨팅 시스템에 의해, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송하는 단계를 포함할 수 있다.
다른 양상에서, 본 발명은 시스템에 관한 것이다. 상기 시스템은 제 1 컴퓨팅 디바이스, 제 2 컴퓨팅 디바이스, 및 네트워크를 통해 상기 제 1 컴퓨팅 디바이스 및 제 2 컴퓨팅 디바이스에 연결된 디지털 어시스턴트 시스템을 포함한다. 상기 제 1 컴퓨팅 디바이스는, 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성하는 질의를 나타내는 사용자 입력을 수신하고, 상기 질의에 대한 표시를 상기 디지털 어시스턴트 시스템으로 전송하도록 구성된다. 상기 디지털 어시스턴트 시스템은, 상기 제 1 컴퓨팅 디바이스로부터 상기 질의에 대한 표시를 수신하고, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프할지의 여부를 결정하며, 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프한다는 결정에 응답하여, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송한다. 상기 제 2 컴퓨팅 디바이스는, 상기 디지털 어시스턴트 시스템으로부터 상기 대화에 대한 표시를 수신하고, 상기 대화의 일부로서 상기 질의에 대한 응답을 출력한다.
다른 양상에서, 본 발명은 명령들이 인코딩된 컴퓨터 판독가능 저장 매체에 관한 것으로, 상기 명령들은 실행될 때 컴퓨팅 시스템의 적어도 하나의 프로세서로 하여금, 사용자로부터 제 1 컴퓨팅 디바이스에 의해 수신된 질의에 대한 표시를 수신하게 하고, 상기 질의는 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성하고; 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하게 하고; 그리고 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프한다는 결정에 응답하여, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송하게 한다.
하나 이상의 실시예의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 본 개시의 다른 특징, 목적 및 이점은 상세한 설명 및 도면 및 청구 범위로부터 명백할 것이다.
도 1은 본 개시의 하나 이상의 양상에 따라 하나 이상의 예시적인 가상 어시스턴트를 실행하는 예시적인 시스템을 도시하는 개념도이다.
도 2는 본 개시의 하나 이상의 양상에 따라 예시적인 가상 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 3은 본 개시의 하나 이상의 양상에 따라 예시적인 가상 어시스턴트를 실행하도록 구성된 예시적인 디지털 어시스턴트 서버를 도시하는 블록도이다.
도 4는 본 개시의 하나 이상의 양상에 따라 하나 이상의 예시적인 가상 어시스턴트를 실행하는 하나 이상의 프로세서에 의해 수행되는 예시적인 동작을 도시하는 흐름도이다.
도 5는 본 개시의 하나 이상의 기술에 따라, 사용자와 예시적인 가상 어시스턴트 간의 대화의 핸드오프를 수행하기 위한 컴퓨팅 시스템의 예시적인 동작을 도시하는 흐름도이다.
도 1은 본 개시의 하나 이상의 양상들에 따라, 하나 이상의 예시적인 가상 어시스턴트를 실행하는 예시적인 시스템을 도시하는 개념도이다. 도 1의 시스템(100)은 네트워크(130)를 통해 컴퓨팅 디바이스들(110A 및 110B)(통칭하여, 컴퓨팅 디바이스들 110)와 통신하는 디지털 어시스턴트 서버(160)를 포함한다. 비록, 시스템(100)이 디지털 어시스턴트 서버(160)와 컴퓨팅 디바이스들(110) 사이에 분산된 것으로 도시되어 있지만, 다른 예들에서, 시스템(100)에 기인한 특징들 및 기술들은 컴퓨팅 디바이스(110)의 로컬 컴포넌트에 의해 내부적으로 수행될 수도 있다. 유사하게, 디지털 어시스턴트 서버(160)는 특정 컴포넌트들을 포함할 수 있으며, 이하의 설명에서 컴퓨팅 디바이스(110)에 기인하는 다양한 기술들을 수행할 수 있다. 비록, 도 1은 2개의 컴퓨팅 디바이스들(110A 및 110B)을 도시하고 있지만, 3개 이상의 임의의 적정한 개수의 컴퓨팅 디바이스들도 이용될 수 있다.
컴퓨팅 디바이스들(110)은 디지털 어시스턴트 서버(160)에 의해 제공되는 가상 어시스턴트 서비스에 액세스하기 위해 네트워크(130)를 통해 디지털 어시스턴트 서버(160)와 통신할 수 있다. 네트워크(130)는 임의의 공공 또는 사설 통신 네트워크, 예를 들어 셀룰러, Wi-Fi 및/또는 컴퓨팅 시스템들, 서버들 및 컴퓨팅 디바이스들 간에 데이터를 전송하기 위한 다른 유형의 네트워크를 나타낸다. 디지털 어시스턴트 서버(160)는 컴퓨팅 디바이스(110)가 네트워크(130)에 연결될 때 컴퓨팅 디바이스(110)가 액세스가능한 가상 어시스턴트 서비스를 제공하기 위해 네트워크(130)를 통해 데이터를 컴퓨팅 디바이스(110)와 교환할 수 있다.
네트워크(130)는 동작적으로 상호 결합되어 디지털 어시스턴트 서버(160)와 컴퓨팅 디바이스(110) 사이에 정보의 교환을 제공하는 하나 이상의 네트워크 허브, 네트워크 스위치, 네트워크 라우터 또는 임의의 다른 네트워크 장비를 포함할 수 있다. 컴퓨팅 디바이스(110) 및 디지털 어시스턴트 서버(160)는 임의의 적절한 통신 기술을 사용하여 네트워크(130)를 통해 데이터를 송신 및 수신할 수 있다. 컴퓨팅 디바이스(110) 및 디지털 어시스턴트 서버(160)는 각각의 네트워크 링크를 사용하여 네트워크(130)에 동작가능하게 결합될 수 있다. 컴퓨팅 디바이스(110)와 디지털 어시스턴트 서버(160)를 네트워크(130)에 연결하는 링크는 이더넷 또는 다른 유형의 네트워크 연결일 수 있으며, 이러한 연결은 무선 및/또는 유선 연결일 수 있다.
디지털 어시스턴트 서버(160)는 하나 이상의 데스크탑 컴퓨터, 랩탑 컴퓨터, 메인 프레임, 서버, 클라우드 컴퓨팅 시스템 등과 같은 네트워크와 정보를 주고받을 수 있는 임의의 적합한 원격 컴퓨팅 시스템을 나타낼 수 있다. 디지털 어시스턴트 서버(160)는 가상 어시스턴트 서비스를 호스팅한다(또는 적어도 액세스를 제공한다). 일부 예들에서, 디지털 어시스턴트 서버(160)는 클라우드를 통해 그들의 각각의 서비스에 대한 액세스를 제공하는 클라우드 컴퓨팅 시스템을 나타낼 수 있다.
제3자(3P) 서버 시스템(170)은 네트워크(130)와 같은 네트워크과 정보를 주고받을 수 있는 하나 이상의 데스크탑 컴퓨터, 랩톱 컴퓨터, 메인 프레임, 서버, 클라우드 컴퓨팅 시스템 등과 같은 임의의 적절한 원격 컴퓨팅 시스템을 나타낼 수 있다. 일부 예에서, 제3자 서버 시스템(170)은 클라우드를 통해 그들의 각각의 서비스에 대한 액세스를 제공하는 클라우드 컴퓨팅 시스템을 나타낼 수 있다. 제3자 서버 시스템(170)은 다양한 동작을 수행함에 있어서, 어시스턴트 모듈(122)을 보조할 수 있는 제3자 어플리케이션(172)을 호스팅한다(또는 적어도 액세스를 제공한다). 예를 들어, 제3자 어플리케이션(172)은 영화 티켓 구매 어플리케이션, 레스토랑 예약 어플리케이션 등을 포함할 수 있다. 어시스턴트 모듈(122)은 영화 티켓 구매 또는 레스토랑 예약과 같은 특정 동작을 수행하도록 지시하기 위해 제3자 애플리케이션(172)과 통신할 수 있다.
컴퓨팅 디바이스(110)는 네트워크(130)를 통해 제공되는 가상 어시스턴트 서비스에 액세스하도록 구성된 개별 모바일 또는 비모바일 컴퓨팅 디바이스를 나타낸다. 컴퓨팅 디바이스(110)의 예는 휴대폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크탑 컴퓨터, 서버, 메인 프레임, 셋톱 박스, 텔레비전, 웨어러블 디바이스(예를 들어, 컴퓨터화된 시계, 컴퓨터화된 안경, 컴퓨터화된 장갑 등), 홈 자동화 디바이스 또는 시스템(예를 들어, 지능형 온도조절기 또는 보안 시스템), 음성 인터페이스 또는 싱크대 홈 어시스턴트 디바이스, PDA(개인용 디지털 어시스턴트), 게임 시스템, 미디어 플레이어, 전자 책 리더, 모바일 텔레비전 플랫폼, 자동차 네비게이션 또는 인포테인먼트 시스템 또는 네트워크(130)와 같은 네트워크를 통해 가상 어시스턴트를 실행 또는 액세스하고 정보를 수신하도록 구성된 기타 다른 유형의 모바일, 비모바일, 웨어러블 및 비웨어러블 컴퓨팅 디바이스들을 포함한다.
도 1의 일례에서, 디지털 어시스턴트 서버(160)는 어시스턴트 모듈(122C) 및 사용자 정보 데이터 저장소(124C)를 포함한다. 컴퓨팅 디바이스(110A)는 사용자 인터페이스 컴포넌트(UIC: User Interface Component)(112A), 사용자 인터페이스(UI:User Interface) 모듈(120A), 어시스턴트 모듈(122A) 및 사용자 정보 데이터 저장소(124A)를 포함한다. 컴퓨팅 디바이스(110A)와 유사하게, 컴퓨팅 디바이스(110B)는 UIC(112B), UI 모듈(120B), 어시스턴트 모듈(122B) 및 사용자 정보 데이터 저장소(124B)를 포함할 수 있다.
모듈들(120A, 120B, 122A-122C 및 124A-124C)은 소프트웨어, 하드웨어, 펌웨어, 또는 컴퓨팅 디바이스(110A), 컴퓨팅 디바이스(110B) 및 디지털 어시스턴트 서버(160) 중 하나에 상주하거나 하나에서 실행될 수 있는 하드웨어, 소프트웨어 및 펌웨어의 혼합물을 사용하여 서술된 동작들을 수행할 수 있다. 컴퓨팅 디바이스(110A), 컴퓨팅 디바이스(110B) 및 디지털 어시스턴트 서버(160)는 다수의 프로세서들 또는 다수의 디바이스와 함께 모듈들(120A, 120B, 122A-122C, 및 124A-124C)을 실행할 수 있다. 컴퓨팅 디바이스(110A), 컴퓨팅 디바이스(110B) 및 디지털 어시스턴트 서버(160)는 기본 하드웨어 상에서 실행되는 가상 머신으로서 모듈(120A, 120B, 122A-122C 및 124A-124C)을 실행할 수 있다. 모듈(120A, 120B, 122A-122C 및 124A-124C)은 또한 운영 체제 또는 컴퓨팅 플랫폼의 하나 이상의 서비스로서 실행될 수 있으며, 컴퓨팅 플랫폼의 어플리케이션 계층에서의 하나 이상의 실행가능한 프로그램으로서 실행될 수도 있다.
컴퓨팅 디바이스(110)의 UIC(112)는 컴퓨팅 디바이스(110A)를 위한 입력 및/또는 출력 디바이스로서 기능할 수 있다. UIC(112)는 다양한 기술을 사용하여 구현될 수 있다. 예를 들어, UIC(112)는 저항성 터치스크린, 표면 탄성파 터치스크린 , 용량성 터치스크린, 투영 정전용량 터치스크린, 압력 감지 스크린, 음향 펄스 인식 터치스크린 또는 다른 존재 감지 디스플레이 기술과 같은 존재 감지 입력 스크린을 사용하는 입력 디바이스로서 기능할 수 있다.
UIC(112)는 마이크로폰 기술, 적외선 센서 기술, 또는 사용자 입력을 수신하는데 사용하기 위한 다른 입력 디바이스 기술을 사용하는 입력 디바이스로서 기능할 수 있다. 예를 들어, UIC(112)는 내장 마이크 기술을 사용하여 UI 모듈(120) 및/또는 어시스턴트 모듈(122)이 작업을 완료하기 위해 처리하는 음성 입력을 검출할 수 있다. 다른 예로서, UIC(112)는 컴퓨팅 디바이스(110)의 사용자로부터 촉각 입력을 수신할 수 있는 존재-감지 디스플레이를 포함할 수 있다. UIC(112)는 사용자로부터의 하나 이상의 제스처들을 검출함으로써 촉각 입력에 대한 표시를 수신할 수 있다(예를 들어, 사용자가 또는 손가락 또는 스타일러스 펜으로 UIC 112의 하나 이상의 위치를 터치하거나 가리킴).
UIC(112)는 출력(예를 들어, 디스플레이) 디바이스로서 기능할 수 있고 사용자에게 출력을 제시할 수 있다. UIC(112)는 액정 디스플레이(LCD), 도트 매트릭스 디스플레이, 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, e-잉크, 또는 시각적 정보를 컴퓨팅 디바이스(110)의 사용자에게 출력할 수 있는 유사한 흑백 또는 컬러 디스플레이와 같은 임의의 하나 이상의 디스플레이 디바이스를 사용하는 출력 디바이스로서 기능할 수 있다. UIC(112)는 스피커 기술, 햅틱 피드백 기술, 또는 정보를 사용자에게 출력하는데 사용되는 다른 출력 디바이스 기술을 사용하여 출력 디바이스로서 기능할 수 있다. UIC(112)는 어시스턴트 모듈(122)에 의해 제공되는 가상 어시스턴트와 관련된 사용자 인터페이스(예를 들어, 사용자 인터페이스 114)를 제시할 수 있다. UIC(112)는 컴퓨팅 플랫폼, 운영 체제, 어플리케이션 및/또는 컴퓨팅 디바이스(110)에서 실행되거나 및/또는 액세스가능한 서비스들(예를 들어, 이메일, 채팅, 온라인 서비스, 전화, 게임 등)의 다른 특징들과 관련된 사용자 인터페이스를 제시할 수 있다.
컴퓨팅 디바이스(110)의 UIC(112)는 동일하거나 상이한 세트의 입력 및/또는 출력 디바이스를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(110A)의 UIC(112A)는 디스플레이 디바이스 또는 존재-감지 입력 스크린을 포함하지 않을 수 있는 반면, 컴퓨팅 디바이스(110B)의 UIC(112B)는 디스플레이 디바이스 및 존재-감지 입력 스크린을 포함할 수 있다. 다른 예에서, 컴퓨팅 디바이스(110A)의 UIC(112A) 및 컴퓨팅 디바이스(110B)의 UIC(112B)는 모두 디스플레이 디바이스 또는 존재-감지 입력 스크린을 포함할 수 있지만, UIC(112A)에 포함된 디스플레이 디바이스는 UIC(112B) 보다 더 작은 크기(더 작은 가시 영역)를 가질 수 있다.
UI 모듈(120)은 UIC(112) 및 컴퓨팅 디바이스(110)의 다른 컴포넌트와의 사용자 상호작용을 관리할 수 있고, UIC(112)를 통해 어시스턴트 서비스를 제공하기 위해 디지털 어시스턴트 서버(160)와 상호작용할 수 있다. UIC(112)와 UI 모듈(120)은 서로 다른 시간들에서 그리고 사용자와 컴퓨팅 디바이스(110)가 서로 다른 위치에 있을 때, 사용자가 사용자 인터페이스와 상호작용함에 따라 사용자로부터의 입력(예를 들어, 음성 입력, 제스처 입력 등)의 하나 이상의 표시들을 수신할 수 있다. UI 모듈(120) 및 UIC(112)는 UIC(112)에서 검출된 입력을 해석할 수 있고, UIC(112)에서 검출된 입력에 관한 정보를 예를 들어, 컴퓨팅 디바이스(110)로 하여금 기능을 수행하게 하도록 어시스턴트 모듈(122) 및/또는 컴퓨팅 디바이스(110)에서 실행되는 하나 이상의 다른 관련 플랫폼, 운영 체제, 어플리케이션 및/또는 서비스에 중계할 수 있다.
UI 모듈(120)은 컴퓨팅 디바이스(110A)의 사용자가 UIC(112)에서 출력을보고 및/또는 입력을 제공하는 동안 UIC(112)가 사용자 인터페이스를 출력, 디스플레이 또는 다르게 제시하게 할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, UI 모듈(120B)은 UIC(112B)에 명령들을 전송할 수 있으며, 상기 명령들은 UIC(112B)로 하여금 UIC(112B)의 디스플레이 스크린에서 사용자 인터페이스(114)를 디스플레이하게할 수 있다. UI 모듈(120)은 또한 UIC(112)로 하여금 오디오 출력과 같은 비 시각적 형태로 사용자 인터페이스를 출력하게 할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, UI 모듈(120)은 UIC(112)로 하여금 음성 출력을 포함하는 오디오를 출력하게 하는 명령을 UIC(112)에 전송할 수 있다. 도 1의 예에서, 사용자 인터페이스(114)는 그래픽 사용자 인터페이스이다. 사용자 인터페이스(114)는 일부 예에서 가청 사용자 인터페이스 일 수 있다. 사용자 인터페이스(114)는 가청 사운드, 진동, 텍스트, 그래픽, 콘텐츠 카드, 이미지 등의 다양한 형태의 가상 어시스턴트 정보를 포함할 수 있다.
UI 모듈(120) 및 UIC(112)는 서로 다른 시간들에서 그리고 사용자와 컴퓨팅 디바이스(110A)가 다른 위치들에 있을 때 사용자가 사용자 인터페이스(114)와 상호작용함에 따라, 사용자로부터 입력(예를 들어, 음성 입력, 터치 입력, 비터치 입력 또는 존재 감지 입력, 비디오 입력, 오디오 입력 등)의 하나 이상의 표시들을 수신할 수 있다. UI 모듈(120) 및 UIC(112)는 UIC(112)에서 검출된 입력을 해석할 수 있고 UIC(112)에서 검출된 입력에 대한 정보를 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A) 및/또는 하나 이상의 다른 관련 플랫폼, 운영 체제, 어플리케이션 및/또는 서비스에 중계할 수 있다(예를 들어, 컴퓨팅 디바이스(110A)로 하여금 기능을 수행하게 하도록).
UI 모듈(120)은 컴퓨팅 디바이스(110A) 및/또는 어시스턴트 서버(160)와 같은 하나 이상의 원격 컴퓨팅 시스템에서 실행되는 하나 이상의 관련 플랫폼, 운영 체제, 어플리케이션 및/또는 서비스로부터 정보 및 명령을 수신할 수 있다. 또한, UI 모듈(120)은 컴퓨팅 디바이스(110A)에서 실행되는 하나 이상의 연관된 플랫폼, 운영 체제, 어플리케이션 및/또는 서비스와 컴퓨팅 디바이스(110A)의 다양한 출력 디바이스(예를 들어, 스피커, LED 표시기, 오디오) 사이의 중개자로서 작용하여, 컴퓨팅 디바이스(110A)와 함께 출력(예를 들어, 그래픽, 플래시 라이트, 사운드, 햅틱 응답 등)을 생성할 수 있다. 예를 들어, UI 모듈(120)은 UIC(112)로 하여금 UI 모듈(120)이 디지털 어시스턴트 서버(160)로부터 네트워크(130)를 통해 수신하는 데이터에 기초하여 사용자 인터페이스(114)를 출력하게 할 수 있다. UI 모듈(120)은 디지털 어시스턴트 서버(160) 및/또는 어시스턴트 모듈(122A)로부터의 입력으로서, 사용자 인터페이스(114)로서 제시하기 위한 정보(예를 들어, 오디오 데이터, 텍스트 데이터, 이미지 데이터 등) 및 명령을 수신할 수 있다.
어시스턴트 모듈(122A) 및 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)를 통해 액세스된 가상 어시스턴트 서비스의 일부로서 사용자 정보 데이터 저장소(124A 및 124C)를 협력적으로 유지할 수 있다. 이와 유사하게, 어시스턴트 모듈(122B) 및 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110B)를 통해 액세스되는 가상 어시스턴트 서비스의 일부로서 사용자 정보 데이터 저장소(124B 및 124C)를 협력적으로 유지할 수 있다.
명시적인 사용자 동의를 수신한 후, 어시스턴트 모듈(122)은 예를 들어 컴퓨팅 디바이스(110)의 사용자와의 대화를 지원하기 위한 동작을 실행하는 동안, 사용자와 관련된 정보를 자동으로 유지하거나, 사용자와 관련된 정보의 위치에 대한 포인터(예를 들어, 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160) 또는 네트워크(130)의 다른 곳에 위치한 임의의 다른 서버 또는 디바이스에 위치한 정보 소스에 의해 저장된다)를 수행할 수 있다. 어시스턴트 모듈(122)은 사용자 정보 데이터 저장소(124)로서 사용자와 관련된 정보 또는 정보에 대한 포인터를 유지할 수 있다. 데이터 저장소(124)는 어시스턴트 모듈(122)에 의해 실행된 어시스턴트가 어시스턴트에 의해 요구되는 사용자 정보에 신속하게 액세스하여 실세계의 작업, 가상 작업을 완성하게 하거나, 또는 컴퓨팅 디바이스(110)의 사용자의 순시 및/또는 미래 요구들에 응답할 수 있게 한다.
예를 들어, 사용자와 관련된 정보는 사용자와 어시스턴트 사이의 대화 중에 사용자로부터 허가를 받아 획득한 정보, 캘린더 정보, 연락처 정보, 사용자 관심사, 사용자 선호도 및 의미있는 정보를 사용자에게 제공하기 위해 어시스턴트 모듈(122)에 의해 사용될 수 있는 사용자와 관련된 임의의 다른 정보일 수 있다. 사용자와 관련된 정보 소스의 일례는 사용자와 관련된 컴퓨팅 디바이스, 지능형 내장 전자 메일 시스템(intelligence built in an e-mail system), 어시스턴트 모듈(122)과의 사용자 상호작용, 사용자와 관련된 디바이스들(예를 들어, 컴퓨팅 디바이스 110) 상에서의 사용자 상호작용 및 어플리케이션 사용예, 또는 기타 정보 소스를 포함할 수 있지만, 이에 제한되지는 않는다.
본 명세서 전반에 걸쳐 사용되는 "대화" 라는 용어는 초기 설정, 설치, 첫 사용, 기타 등등에 발생할 수 있는 상호작용과 반대로, 컴퓨팅 디바이스의 사용자와 컴퓨팅 디바이스에서 실행되거나 그로부터 액세스 가능한 어시스턴트 사이의 규칙적인(regular) 상호작용을 지칭한다. 달리 말하면, 사용자가 어시스턴트를 설정하는 것 이외의 작업을 수행하고 있는 것과 같이, 사용자가 어시스턴트를 일상적으로 사용하는 동안 상기 대화가 발생한다. 본 명세서에서 사용되는 대화는, 사용자가 앱을 설정하거나 사용자 인터페이스의 사전설정 필드(preset fields)를 채우기 위해 정보를 제공하는 것의 일부분으로서 사용자가 질문에 대답하거나 어시스턴트와 상호작용하는 것을 지칭하지는 않는다.
일부 예들에서, 대화는 사용자에 의해 어시스턴트 모듈(122)로 보내진 일련의(예를 들어, 하나 이상의) 질의들 또는 요청들과 어시스턴트 모듈(122)에 의해 생성되고 UIC(112)에 의해 출력되는 상기 질의들 또는 요청들에 대한 응답들을 포함할 수 있다. 질의들 또는 요청들의 일례는, 명령이나 질문 형태의 자연어 문구, 가령 "귀여운 강아지 사진을 인터넷에서 검색하라" , "작년 아카데미 상 수상자 명단을 보여줘" 또는 "오늘 비가 올 예정인가?" 등을 포함할 수 있다. 질의 또는 요청에 대한 응답의 일례는, 아카데미 상 수상자 목록의 출력과 같이 청각적으로 표시되는 목록의 출력, "오늘은 비가 올 것 같지 않습니다"과 같은 자연어 문구, 강아지에 대한 그래픽적 표현 또는 비디오, 기타 등등을 포함할 수 있으며, 이는 질의 또는 요청을 형성하는 명령 또는 질문에 대답하기 위해 UIC(112)에 의해 출력된다.
어시스턴트 모듈(122C) 및 사용자 정보 데이터 저장소(124C)는 예시적인 어시스턴트의 서버-측 또는 클라우드 구현예를 나타내는 반면, 어시스턴트 모듈(122A-122B) 및 사용자 정보 데이터 저장소(124A-124B)는 예시적인 어시스턴트의 클라이언트-측 또는 로컬 구현예를 나타낸다. 일부 예들에서, 어시스턴트 모듈(122A)에 기인한 일부 또는 모든 기능은 어시스턴트 모듈(122C)에 의해 수행될 수 있다. 유사하게, 일부 예들에서, 어시스턴트 모듈(122B)에 기인한 일부 또는 모든 기능은 어시스턴트 모듈(122C)에 의해 수행될 수 있다. 또한, 일부 예들에서, 어시스턴트 모듈(122C)에 기인한 기능의 일부 또는 전부는 어시스턴트 모듈(122A 및 122B)에 의해 수행될 수 있다.
어시스턴트 모듈들(122) 각각은 가령, 컴퓨팅 디바이스(110A) 또는 컴퓨팅 디바이스(110B)의 사용자와 같은 개인을 위해 작업들 또는 서비스들을 수행할 수 있는 지능형 개인 어시스턴트로서 실행하도록 구성된 각각의 소프트웨어 에이전트를 포함할 수 있다. 어시스턴트 모듈(122)은 사용자로부터 수신된 질의에 대한 응답을 생성하는 것의 일부로서 이러한 작업들 또는 서비스들을 수행할 수 있다. 어시스턴트 모듈(122)은 사용자 입력(예를 들어, UIC 112A 또는 UIC 112B에서 검출), 위치 인식(예를 들어, 콘텍스트에 기초하여), 및/또는 다양한 정보 소스들(예컨대, 컴퓨팅 디바이스(110) 또는 디지털 어시스턴트 서버(160)에 로컬로 저장되어 있거나, 검색 서비스를 통해 획득되거나, 제3자 어플리케이션(172)에 의해 획득되거나, 인터넷을 통해 다른 서비스나 정보 서비스에 액세스함으로써 획득됨) 중에서 다른 정보(예를 들어, 날씨 또는 교통 상황, 뉴스, 주가, 스포츠 스코어, 사용자 스케줄, 교통 스케줄, 소매 가격 등)에 액세스하는 능력에 기초하여 이들 작업 또는 서비스를 수행할 수 있다. 발음된(spoken) 사용자 입력에 기초하여 작업 또는 서비스를 수행하는 것은 본 명세서에서 사용자 발언(user utterance)를 만족시키는 것으로 지칭될 수 있다. 어시스턴트 모듈(122)은 사용자를 대신하여 하나 이상의 작업을 자동으로 식별하고 완료하도록, 인공 지능 및/또는 머신 러닝 기술을 수행할 수 있다.
일부 예에서, 어시스턴트 모듈(122)은 발음된 사용자 입력에 기초하여 작업 또는 서비스를 수행할 수 있다. UIC(112)의 하나 이상의 마이크로폰은 발음된 사용자 입력을 수신할 수 있고 그리고 어시스턴트 모듈(122)은 UIC(112)의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터(즉, UI 모듈(120A) 또는 UI 모듈(120B)로부터의)를 수신할 수 있다. 어시스턴트 모듈(122)은 수신된 오디오 데이터를 선택적으로 프로세싱하여, 음성 수신이 활성화될 때 발언들을 인식할 수 있다. 음성 수신은 다양한 방식으로 활성화될 수 있다. 일례로서, 어시스턴트 모듈(122)은 수신된 오디오 데이터에서 소정의 활성화 문구(예를 들어, "들어봐 어시스턴트(listen assistant)")를 인식하는 것에 응답하여 음성 수신을 활성화할 수 있다. 다른 예로서, UI 모듈(120)은 사용자가 컴퓨팅 디바이스들(110) 중 하나에서 음성 수신 버튼을 누르는 것에 응답하여 모듈들(122)로 하여금 음성 수신을 활성화하게 할 수 있다.
어시스턴트 모듈(122)은 작업을 수행하고 컴퓨팅 디바이스(110)의 하나 이상의 컴포넌트에 의해 제시되는 작업을 수행한 결과를 사용자 발언에 대한 응답으로서 출력함으로써 사용자 발언을 만족시킬 수 있다. 예를 들어, 어시스턴트 모듈(122)은 UIC(112)의 하나 이상의 컴포넌트들(예를 들어, 디스플레이, 스피커 등)로 하여금 출력을 생성하게 할 수 있다(예를 들어, 비디오를 디스플레이하고, 그래픽 사용자 인터페이스를 디스플레이하고, 사운드를 방출하고, 음성 출력을 방출하는 등). 일부 예들에서, 다른 컴퓨팅 디바이스들이 출력을 제공하게 함으로써 일부 사용자 발언를 만족시키는 것이 어시스턴트 모듈들(122)에게 바람직할 수도 있다. 예를 들어, 다른 컴퓨팅 디바이스가 사용자 발언를 만족시키기에 더 적합하다면, 어시스턴트 모듈(122)이 다른 컴퓨팅 디바이스를 통해 출력을 제공하는 것이 바람직할 수 있다.
본 발명의 하나 이상의 기술들에 따르면, 사용자로부터 질의를 나타내는 사용자 입력을 컴퓨팅 디바이스(110A)가 수신하는 것에 응답하여, 시스템(100)은 질의를 만족시키기 위해 하나 이상의 작업을 수행할 수 있으며 그리고 상기 질의에 반응하여 하나 이상의 작업를 수행한 결과인 응답이, 상기 질의를 수신한 동일한 컴퓨팅 디바이스(110A)에 의해 출력될 것인지, 또는 요청을 수신한 동일한 컴퓨팅 디바이스(110A)가 아닌 시스템(100)의 다른 컴퓨팅 디바이스(가령, 컴퓨팅 디바이스 110B)에 의해 출력될 것인지를 결정할 수 있다. 이러한 결정은, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)에 의해, 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)에 의해, 또는 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)의 조합에 의해 수행될 수 있다.
사용자로부터 컴퓨팅 디바이스(110A)에 의해 수신된 질의 뿐만 아니라, 사용자로부터 컴퓨팅 디바이스(110A)에 의해 수신된 과거의 질의들 및 컴퓨팅 디바이스(110A)에 의해 출력된 상기 질의들에 대한 과거의 응답들은, 상기 질의를 한 사용자와 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A) 사이의 대화의 적어도 일부를 형성한다. 질의들에 대한 응답들을 결정하기 위해, 어시스턴트 모듈(122A)이 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)과 통신하거나 다른 방식으로 상호작용할 수도 있겠지만, 컴퓨팅 디바이스(110A)에 의해 수신된 이러한 질의들 및 컴퓨팅 디바이스(110A)에 의해 출력된 대응하는 응답들은, 사용자와 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A) 사이의 대화를 구성하는 것으로 간주된다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이, 질의를 수신한 동일한 컴퓨팅 디바이스(110A) 이외의 컴퓨팅 디바이스(가령, 컴퓨팅 디바이스 110B) 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이의 대화를 컴퓨팅 디바이스(110B)로 핸드오프하고 있다고 판단하면. 이에 응답하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 핸드오프를 수행할 수 있으며, 따라서, 어시스턴트 모듈(122A)에 의해 수신된 질의에 대한 응답이 112B를 통해 컴퓨팅 디바이스(110B)에 의해 출력된다. 컴퓨팅 디바이스(110B)로 대화를 핸드오프함으로써, 컴퓨팅 디바이스(110B)는 추가 질의들을 수신할 수 있으며 그리고 이들 질의들에 대한 응답들을 어시스턴트 모듈(122B 및/또는 122C)을 통해 생성하여, 대화를 계속할 수 있다.
대화를 핸드오프하는 것은, 핸드오프하기 전의 대화의 의미적 의도(semantic intent), 콘텍스트 정보 등의 대화에 관한 정보를 어시스턴트 모듈(122B 및/또는 122C)이 이용가능하게 하는 것을 포함할 수 있다. 따라서, 어시스턴트 모듈(122B 및/또는 122C)은 컴퓨팅 디바이스(110B)에 의해 수신된 질의들에 대한 응답들을 만들기 위해 이러한 정보를 사용할 수 있다. 이러한 방식으로, 어시스턴트 모듈(122B 및/또는 122C)은, 컴퓨팅 디바이스(110B)에 의해 수신된 질의들에 대한 관련 응답들을 생성할 수 있다(이러한 질의들이 컴퓨팅 디바이스(110A)에서 발생한 대화의 일부분들을 다시 참조하는 경우에도).
컴퓨팅 디바이스(110A)는 사용자로부터의 질의를 포함하는 사용자 입력(예를 들어, 음성 입력, 텍스트 입력, 또는 임의의 다른 적절한 형태의 사용자 입력)을 수신할 수 있다. 컴퓨팅 디바이스(110A)의 어시스턴트 모듈(122A)은 사용자로부터 질의를 수신한 것에 응답하여, 사용자의 요청을 만족시키는 질의에 대한 응답 뿐만 아니라, 이러한 응답을 제시하는 형태까지도 결정할 수 있다. 예를 들어, 만일, 수신된 요청이 소정 위치로 가는 방향들에 대한 요청을 포함한다면, 어시스턴트 모듈(122A)은 상기 요청에 대한 응답이 요청된 방향들이라고 결정할 수 있으며 그리고 이러한 방향들이 디스플레이 디바이스에 의해 디스플레이되는 대화형 맵(interactive map)의 형태로 제시되어야한다고 결정할 수 있다. 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)가 상기 방향들을 대화형 맵으로서 시각적으로 제시할 수 있는지를 판별할 수 있는바, 가령, 컴퓨팅 디바이스(110A)가 디스플레이 디바이스에 동작가능하게 연결되어 있는지 또는 상기 방향들을 대화형 맵으로서 제시할 수 있는 대화형 매핑 소프트웨어를 컴퓨팅 디바이스(110A)가 포함하고 있는지를 판별함으로써, 컴퓨팅 디바이스(110A)가 상기 방향들을 대화형 맵으로서 시각적으로 제시할 수 있는지를 판별할 수 있다. 컴퓨팅 디바이스(110A)가 상기 방향들을 대화형 맵으로서 시각적으로 제시할 수 없다라고 어시스턴트 모듈(122A)이 결정한다면, 어시스턴트 모듈(122A)은, 디스플레이 디바이스를 포함하고 있거나 디스플레이 디바이스에 동작가능하게 연결된 다른 컴퓨팅 디바이스(예를 들어, 스마트폰)와 상기 사용자가 연관되어 있는지를 결정할 수 있다. 디스플레이 디바이스를 포함하는 컴퓨팅 디바이스(110B)와 사용자가 연관되어 있다라고 어시스턴트 모듈(122A)이 결정하면, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110B)의 어시스턴트 모듈(122B)에게 상기 요청을 핸드오프할 수 있고, 컴퓨팅 디바이스(110B)는 디스플레이 디바이스에 의해 표시되도록 상기 방향들을 맵 형태로 출력할 수 있다.
도 1의 예에서, 컴퓨팅 디바이스(110A)는 질의(126)를 포함하는 음성 입력 형태의 사용자 입력을 UIC(112A)를 통해 수신할 수 있다. 다시 말해, 컴퓨팅 디바이스(110A)는 하나 이상의 오디오 입력 디바이스들(가령, 마이크로폰)을 통해, "레스토랑에 어떻게 가지?"와 같은 사용자가 발언한 음성을 수신할 수 있다. 일반적으로, 컴퓨팅 디바이스(110A)에 대한 질의는 컴퓨팅 디바이스(110A)와의 사용자 상호작용(예를 들어, 사용자 입력)이 될 수 있으며, 이는 상기 질의에 응답하여 어시스턴트 모듈(122A) 및/또는 컴퓨팅 디바이스(110A)가 하나 이상의 동작들 또는 작업들을 수행할 것을 요구한다.
질의를 수신한 것에 응답하여, 컴퓨팅 디바이스(110C)에서 실행되는 어시스턴트 모듈(122A) 및/또는 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 하나 이상의 작업을 수행하고 질의에 대한 응답을 결정할 수 있다. 일부 일례들에서, 어시스턴트 모듈(122A)은 질의에 대한 표시를 디지털 어시스턴트 서버(160)로 전송함이 없이, 상기 질의에 대한 응답을 결정할 수 있다. 컴퓨팅 디바이스(110A)가 음성 입력의 형태로 사용자 입력을 수신하면, 어시스턴트 모듈(122A)은 발언를 인식하고, 질의의 의미론적 의도를 결정하고, 기타 등등을 위해 음성 입력을 분석함으로써 상기 질의를 프로세싱하여, 질의에 대한 응답을 만들수 있다.
일부 일례들에서, 어시스턴트 모듈(122A)은 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)을 활용하여 질의를 프로세싱할 수 있다. 컴퓨팅 디바이스(110A)는 적어도 질의에 대한 표시를 디지털 어시스턴트 서버(160)에 전송할 수 있으며, 따라서 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 발언을 인식하고, 질의의 의미론적 의도를 결정하여(기타 등등) 상기 질의를 프로세싱할 수 있다. 요청이 음성 입력의 형태인 일례에서, 그러한 요청의 표시는 요청의 음성 녹음 또는 음성-텍스트 전사일 수 있다. 요청이 텍스트 입력 형태(예를 들어, 키보드를 통한)인 다른 일례에서, 사용자로부터의 이러한 요청의 표시는 사용자에 의해 입력된 텍스트일 수 있다. 질의에 대한 표시와 함께, 어시스턴트 모듈(122A)은 또한, 추가 정보를 디지털 어시스턴트 서버(160)에 전송할 수 있는바, 가령 컴퓨팅 디바이스(110A)의 신원에 대한 표시, 질의를 발행한 사용자에 대한 표시 등을 전송할 수 있다. 따라서, 디지털 어시스턴트 서버(160)는 질의를 분석한 결과에 대한 표시를 적절한 컴퓨팅 디바이스로 다시 전송할 수 있다.
디지털 어시스턴트 서버(160)는 질의를 분석한 결과에 대한 표시를 컴퓨팅 디바이스(110A)로 다시 전송할 수 있다. 예를 들어, 디지털 어시스턴트 서버(160)는 인식된 발언에 대한 표시, 질의의 의미론적 의도에 대한 표시 등을 컴퓨팅 디바이스(110A)에 전송할 수 있다. 디지털 어시스턴트 서버(160)로부터 질의 분석 결과에 대한 표시를 수신한 것에 응답하여, 어시스턴트 모듈(122A)은 상기 질의 분석 결과에 대한 표시에 적어도 부분적으로 기초하여 질의에 대한 응답을 만들어낼 수 있다.
일부 일례에서, 디지털 어시스턴트 서버(160)는 어시스턴트 모듈(122A)의 유무에 관계없이 컴퓨팅 디바이스(110A)에 의해 수신된 질의에 대한 응답을 결정할 수 있다. 컴퓨팅 디바이스(110A)는 적어도 상기 요청에 대한 표시를 디지털 어시스턴트 서버(160)에 전송할 수 있으며, 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 질의를 프로세싱하여, 발언를 인식하고, 질의의 의미론적 의도를 결정하고, 질의에 응답하여 수행될 작업를 결정하고, 기타 등등을 수행할 수 있다. 요청이 음성 입력의 형태인 일례에서, 그러한 요청의 표시는 요청의 음성 녹음 또는 음성-텍스트 전사일 수 있다. 요청이 텍스트 입력 형태(예를 들어, 키보드를 통한)인 다른 일례에서, 사용자로부터의 이러한 요청의 표시는 사용자에 의해 입력된 텍스트일 수 있다. 질의를 프로세싱함에 응답하여, 어시스턴트 모듈(122C)은 질의에 대한 자신의 분석에 적어도 부분적으로 기초하여 질의에 대한 응답을 만들어낼 수 있다.
도시된 바와 같이, 어시스턴트 모듈(122A) 자체, 어시스턴트 모듈(122C) 자체 또는 어시스턴트 모듈들(122A 및 122C)의 조합은 어시스턴트 모듈(122A)에 의해 수신된 질의에 대한 응답을 결정할 수 있다. 그러므로, 본 개시에서 어시스턴트 모듈(122A)에 의해서 동작들이 수행되는 것으로 설명될 수 있지만, 이러한 동작들은 어시스턴트 모듈(122C) 또는 어시스턴트 모듈들(122A 및 122C)의 조합에 의해 동등하게 수행될 수 있음을 이해해야한다. 또한, 다음을 유의해야 하는바, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에 의해 수행되는 것으로 본 개시에 설명된 동작들은, 제3자 어플리케이션(172) 또는 다른 인터넷 서비스 등과 협력하여 오직 어시스턴트 모듈(122A)에 의해서만 수행되는 동작들, 오직 어시스턴트 모듈(122C)에 의해서만 수행되는 동작들, 어시스턴트 모듈들(122A 및 122C)의 조합에 의해 수행되는 동작들을 동일하게 포함할 수 있다.
어시스턴트 모듈(122A)에 의해 수신된 질의에 대한 응답을 결정하고, 다른 어시스턴트 모듈로 대화를 핸드오프할 것인지를 결정하는 것의 일부로서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 추적하여, 사용자와 어시스턴트 모듈(122A) 사이의 대화에서 사용된 단어들 및 문구들의 문맥을 결정하거나, 또는 사용자와 어시스턴트 모듈(122A) 사이의 다양한 상호작용들과 의미들을 연관시킴으로써 대화에 관한 또는 달리 연관된 콘텍스트 정보를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 구성하는 질의들 및/또는 응답들의 단어들 및 문구들과 같은 대화의 다양한 부분들을 장소, 날짜, 시간, 위치, 이벤트, 사람과 같은 개념들 및 카테고리들과 연관시킬 수 있으며 그리고 이러한 연관들을 사용자 정보 데이터 저장소(24A) 및/또는 사용자 정보 데이터 저장소(124C)에 저장할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화에 사용된 단어들 및 어구들의 문맥을 포함하는 콘텍스트 정보를 결정할 수 있으며, 그리고 머신 러닝, 딥 러닝 등과 같은 기술에 의해 대화의 부분들과 카테고리들 사이의 연관성을 결정할 수 있다. 이러한 방식으로, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 수신된 질의와 관련된 응답을 생성하기 위해, 사용자에 의해 사용된 다양한 단어들 및 문구들 또는 다른 사용자 입력의 의미론적 의도를 대화의 과거 부분들을 참조하여 결정할 수 있다.
일부 일례들에서, 어시스턴트 모듈(122C)은 대화에 관련된 이러한 콘텍스트 정보를 결정하고, 사용자 정보 데이터 저장소(124C)에 그러한 콘텍스트 정보를 저장할 수 있다. 일부 다른 예들에서, 어시스턴트 모듈(122A)은 대화에 관련된 콘텍스트 정보를 결정하고 이러한 콘텍스트 정보를 사용자 정보 데이터 저장소(124A)에 저장할 수 있다. 이러한 콘텍스트 정보가 사용자 정보 데이터 저장소(124A)에 저장되는 경우, 어시스턴트 모듈(122A)은 대화를 컴퓨팅 디바이스(110B) 또는 다른 컴퓨팅 디바이스로 핸드오프하는 것의 일부로서, 사용자 정보 데이터 저장소(124C)에 저장하기 위해서 어시스턴트 모듈(122C)에 콘텍스트 정보를 전송하거나 또는 사용자 정보 데이터 저장소(124B)에 저장하기 위해서 어시스턴트 모듈(122B)에 콘텍스트 정보를 전송할 수 있다.
도 1의 일례에서, 어시스턴트 모듈(122A)과 대화(132)에서, 사용자는 루이지(Luigi's)라는 이탈리아 레스토랑에서 오후 7시에 저녁 식사 예약을 하도록 어시스턴트 모듈(122A)에 요청한다. 이러한 질의에 응답하여, 어시스턴트 모듈(122A 및/또는 122C)은 제3자 어플리케이션(172)의 식당 예약 서비스와 상호작용하여 요청된 예약을 수행할 수 있고, 어시스턴트 모듈(122A)은 UIC(112A)를 통해 오후 7시에 루이지(Luigi's)에서의 예약이 완료되었다라는 확인(confirmation)을 출력할 수 있다. 또한, 어시스턴트 모듈(122A 및/또는 122C)은 저녁 식사 예약을 이벤트와 연관시킬 수 있고, 루이지(Louis)를 레스토랑 뿐만 아니라 위치에 연관시킬 수 있고, 오후 7시를 시간과 연관시킬 수 있으며 그리고 대화(132)와 관련된 콘텍스트 정보의 일부로서 이러한 연관들을 사용자 정보 데이터 저장소(124A) 및/또는 사용자 정보 데이터 저장소(124C)에 저장할 수 있다. 저장소(124A) 및/또는 사용자 정보 데이터 저장소(124C). 따라서, 만일, 사용자가 나중에 어시스턴트 모듈(122A)과 상호작용하여 "예약", "저녁 식사", "레스토랑" 등과 같은 단어를 포함하는 질의를 발행한다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 저장된 컨텍스트 정보에 기초하여, 이러한 단어들이 루이지에서의 오후 7시 저녁 식사 예약을 지칭하는 것으로 판단할 수 있는바, 왜냐하면 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화(132)를 추적하고 대화(132)의 문맥에서 이러한 단어들은 루이지에서의 오후 7시 예약을 지칭한다라고 판별했기 때문이다.
"내가 레스토랑에 가는 방법은" 이라는 질의(126)를 어시스턴트 모듈(122A)이 수신한 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화(132)로부터 결정된 콘텍스트 정보에 기초하여 질의(126)의 의미를 결정할 수 있고, 그리고 상기 질의(126)에서 "레스토랑"이라는 문구는 대화(132)에서 이전에 참조된 이탈리아 레스토랑 "루이지(Luigi's)"를 지칭하는 것으로 결정할 수 있다. 질의(126)의 "레스토랑" 이라는 단어를 특정 레스토랑(예컨대, 루이지)과 연관시킬 수 있기 때문에, 어시스턴트 모듈(122A)은 질의(126)에 대한 관련 응답이, 사용자의 현재 위치로부터 이탈리아 레스토랑 "루이지"의 위치까지의 방향이라고 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 상기 질의(126)가 "루이지"로의 방향들에 대한 요청이라고 결정할 수 있으며, "루이지"로의 방향들을 포함하는 응답을 만들어낼 수 있다.
질의에 대한 응답을 결정하는 것이 어시스턴트 모듈(122A)인지, 어시스턴트 모듈(122C)인지, 또는 어시스턴트 모듈들(122A 및 122C)의 조합인지에 상관없이, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C) 중 하나 또는 둘다는 또한, 사용자와 어시스턴트 모듈(122A) 간의 대화를 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)에서 실행되는 다른 어시스턴트 모듈(예를 들어, 어시스턴트 모듈 122B)로 핸드오프할지를 결정할 수 있다. 대화를 핸드오프할지의 여부를 결정하는 하나 이상의 어시스턴트 모듈(122)은, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이의 대화에서 질의에 대한 응답을 결정하는 하나 이상의 어시스턴트 모듈(122)과 동일하거나 상이할 수 있다.
만일, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 대화를 핸드오프한다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자로부터 질의를 수신한 컴퓨팅 디바이스(110A)가 아닌 다른 컴퓨팅 디바이스에게 지시하여 질의에 대한 응답을 출력하게 할 수 있다. 사용자와 어시스턴트 모듈(122A) 간의 대화를 다른 컴퓨팅 디바이스에서 실행되는 다른 어시스턴트로 핸드오프하는 것은, 핸드오프를 수신한 컴퓨팅 디바이스가, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)에 의해 수신된 질의에 대한 응답을 출력하게 할 수 있을 뿐만 아니라, 사용자와 어시스턴트 모듈(122A) 사이에서 발생하는 대화의 스레드를 알아챌 수(pick up) 있게 하므로, 사용자와 어시스턴트 모듈(122A) 사이에서 발생하였던 대화의 일부분들을 참조하는 질의들에 대한 응답들을 생성하는 것이 가능하다.
컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 간의 대화가 컴퓨팅 디바이스(110B)로 핸드오프되는 경우, 상기 대화는 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 핸드오프되며, 따라서 사용자는 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)을 대신하여 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)과 대화를 계속할 수 있다. 따라서, 사용자는 마이크로폰, 키보드, 또는 컴퓨팅 디바이스(110B)의 다른 입력 디바이스 등과 같은 UIC(112B)를 통해 어시스턴트 모듈(122B)에 질의를 전송함으로써 어시스턴트 모듈(122B)과 대화를 계속할 수 있고, 어시스턴트 모듈(122B)은 질의에 대한 응답을 결정하여 디스플레이 디바이스, 스피커 등과 같은 UIC(112B)를 통해 응답을 출력할 수 있다.
또한, 전술한 바와 같이, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 간의 대화가 컴퓨팅 디바이스(110B)로 핸드오프되는 경우, 시스템(100)은 컴퓨팅 디바이스(110B)로 핸드오프된 대화의 스레드를 보존할 수 있다. 다시 말해, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이에서 핸드오프 이전에 발생했던 대화의 일부분들을 다시 참조하는 질의들을, 사용자가 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)에게 발행한 경우, 어시스턴트 모듈(122B) 이러한 참조의 의도 및 의미를 추론하여, 질의들에 대한 관련 응답들을 결정할 수 있다. 특히, 어시스턴트 모듈(122B)은 어시스턴트 모듈(122A)과의 사용자 대화 동안 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에 의해 판별된 대화와 관련된 콘텍스트 정보를 활용하여, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이에서 발생되었던 대화의 일부분 동안 이전에 참조된 개념들, 요소들, 장소들, 시간들, 이벤트들 등과 사용자의 질의를 연결시킬 수 있다.
일부 일례들에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 질의의 일부로서, 대화를 다른 컴퓨팅 디바이스로 핸드오프하라는 명시적 명령들(예를 들어, 사용자로부터)을 수신할 수 있다. 예를 들어, 상기 질의(126)가 "레스토랑으로의 방향들을 내 전화기로 전송해라"라고 언급한 경우, 어시스턴트 모듈(122A 및/또는 122C)은 컴퓨팅 디바이스(110A) 및/또는 디지털 어시스턴트 서버(160)의 사용자 정보 데이터 저장소들(124)에 저장된 정보에 기초하여 또는 클라우드를 통해 저장 및/또는 액세스가능한 사용자와 관련된 컴퓨팅 디바이스들에 관한 정보에 기초하여, 사용자가 언급하고 있는 사용자와 관련된 전화기를 결정할 수 있다. 만일, 컴퓨팅 디바이스(110B)는 동일한 사용자와 연관된 스마트폰이며 그리고 컴퓨팅 디바이스(110B)가 대화의 핸드오프를 수신할 수 있다라고 어시스턴트 모듈(122A)이 결정한다면, 이에 응답하여 어시스턴트 모듈(122A 및/또는 122C)은 사용자의 명시적 명령을 따를 수 있으며, 상기 대화(132)를 컴퓨팅 디바이스(110B)로 핸드오프할 수 있다.
일부 일례들에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)는 미리 정의된 선호도에 기초하여 대화를 핸드오프할지의 여부를 결정할 수 있다. 미리 정의된 선호도는, 생성될 응답에 적어도 일부 기초하여 어시스턴트 모듈(122A)이 대화를 핸드오프할 수 있는 디바이스들에 관하여 사용자에 의해 이전에 정의된 선호도일 수 있다. 예를 들어, 사용자는 모든 음악은 사용자와 관련된 스마트 홈 시어터 시스템에 의해 재생되도록 또는 모든 사진들은 사용자와 관련된 디지털 미디어 디바이스(예를 들어, 텔레비전 셋톱 박스)에 의해서 디지털 미디어 디바이스에 연결된 텔레비전 세트로 출력되도록, 선호도를 미리 정의할 수 있다. 따라서, 질의에 대한 응답이 음악의 재생이라고 어시스턴트 모듈(122A)이 결정하는 경우, 어시스턴트 모듈(122A)은 사용자에 의해 정의된 바와 같이 스마트 홈 시어터 시스템으로 대화를 핸드오프할 수 있다(만일, 스마트 홈 시어터 시스템이 핸드오프를 수신할 수 있다면, 그리고 사용자가 음악을 재생할 수 있는 많은 다른 디바이스들 예컨대, 스마트폰과 연관되어있는 경우에도).
일부 예들에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자로부터 명시적 명령을 수신함이 없이 그리고 미리 정의된 선호도 없이도 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 예를 들어, 질의, 질의에 대한 응답, 사용자와 관련된 콘텍스트 정보(예를 들어, 사용자의 활동), 사용자와 관련된 컴퓨팅 디바이스들, 컴퓨팅 디바이스들의 능력들, 기타 등등과 같은 다양한 요인들에 기초하여, 사용자와 어시스턴트 모듈(122A) 사이의 대화를 다른 컴퓨팅 디바이스로 핸드오프할지 여부를 결정할 수 있을 뿐만 아니라, 대화가 핸드오프될 컴퓨팅 디바이스를 선택할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 핸드오프를 수신할 수 있는 컴퓨팅 디바이스만으로 대화를 핸드오프할 수도 있다.
컴퓨팅 디바이스의 전원이 켜져 있지 않거나, 핸드오프를 수신할 권한이 없거나, 사용자와 관련이 없는 경우, 컴퓨팅 디바이스는 핸드오프를 수신할 수 없을 수 있다. 일부 예에서, 사용자가 컴퓨팅 디바이스에 로그인한 경우, 사용자가 가상 어시스턴트 서비스(예를 들어, 디지털 어시스턴트 서버 160)에 로그인한 경우 및/또는 컴퓨팅 디바이스에 액세스하기 위해 사용자에게 달리 권한이 부여된 경우(예를 들어, 사용자 입력을 컴퓨팅 디바이스에 제공하고 컴퓨팅 디바이스로부터 출력을 수신함), 컴퓨팅 디바이스는 사용자와 연관된다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 컴퓨팅 디바이스들(예를 들어, 컴퓨팅 디바이스 110A 및 110B)의 기능적 능력들 및/또는 특징들에 적어도 일부 기초하여 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다. 기능적 능력은 하드웨어, 소프트웨어 또는 기타 기능에 있어서의 차이일 수 있다. 상이한 컴퓨팅 디바이스들은 상이한 기능적 능력, 특징 및 특성을 가질 수 있다. 이러한 기능적 능력들은 컴퓨팅 디바이스가 디스플레이 디바이스를 포함하는지 또는 작동가능하게 연결되어 있는지, 디스플레이 디바이스의 크기, 컴퓨팅 디바이스의 유형(예를 들어, 컴퓨팅 디바이스가 모바일 폰인 경우, 컴퓨팅 디바이스가 웨어러블 디바이스인 경우, 컴퓨팅 디바이스가 TV 셋톱 박스인 경우 등), 컴퓨팅 디바이스의 위치(예를 들어, 컴퓨팅 디바이스 110A에 대한 컴퓨팅 디바이스의 위치), 및/또는 다른 적절한 인자들을 포함할 수 있다.
예를 들어, 독립형 가상 어시스턴트 또는 스마트 스피커 시스템은 디스플레이 디바이스를 포함하지 않을 수 있는 반면에, 스마트폰은 디스플레이 디바이스를 포함한다. 자동차의 인포테인먼트 시스템은 디스플레이 디바이스를 포함할 수 있지만, 차량이 잠금해제되거나 시동될 때까지 응답을 출력하지 못할 수 있다. 스마트 워치와 같은 웨어러블 디바이스는 디스플레이 디바이스를 포함할 수 있지만, 이러한 디스플레이 디바이스는 스마트폰에 포함된 디스플레이 디바이스 보다 물리적으로 훨씬 작을 수 있다. 또한, 웨어러블 디바이스 및 스마트 폰은 거의 항상 휴대하거나 사용자 근처에 있을 수 있는 휴대용 디바이스인 반면에, 독립형 가상 어시스턴트는 동일한 방이나 위치에 있는 사용자만이 사용할 수 있는 고정 디바이스인 것이 일반적이다. 다른 한편으로, 자동차의 인포테인먼트 시스템은 사용자가 자동차 내에 있는 동안에만 사용될 수 있는 것이 일반적이다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 핸드오프할지를 결정할 때 및 대화가 핸드오프되는 컴퓨팅 디바이스를 결정할 때, 이들 및 임의의 다른 적절한 기능, 특징 및/또는 특성을 고려할 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 응답이 제시될 형태(예를 들어, 청각적으로, 시각적으로, 리스트로서, 맵으로서, 비디오로서, 기타 등등)를 결정할 수 있으며, 그리고 사용자와 관련된 컴퓨팅 디바이스들의 기능적 능력들에 적어도 일부 기초하여, 사용자와 관련된 컴퓨팅 디바이스들 중 어느 것이 핸드오프를 수신할 수 있는지 그리고 결정된 형식으로 응답을 제시할 수 있는 것은 어느 것인지를 결정할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)의 UIC(112A)가 결정된 형식으로 응답을 제시할 수 있는지를 판별할 수 있다. 컴퓨팅 디바이스(110A)의 UIC(112A)가 결정된 형식으로 응답을 제시할 수 있다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 핸드오프하는 것을 삼가하고(refrain) 대신에, 컴퓨팅 디바이스(110A)의 UIC(112A)를 통해 응답을 출력할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 컴퓨팅 디바이스(110A)의 UIC(112A)가 결정된 형식으로 응답을 제시할 수 없다고 결정하면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 관련된 이용가능한 컴퓨팅 디바이스들 중 다른 컴퓨팅 디바이스가 결정된 형식으로 응답을 제시할 수 있는지를 판별할 수 있다. 만일, 사용자와 연관된 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)가 결정된 형식으로 응답을 제시할 수 있다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 다른 컴퓨팅 디바이스로 핸드오프할 수 있다.
예를 들어, 응답이 시각적으로 제시될 것이라고(예를 들어, 디스플레이 디바이스에 디스플레이됨) 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 결정하는 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 UIC(112A)가 디스플레이 디바이스에 동작가능하게 연결되어 있는지를 결정할 수 있다. 동작가능하게 연결되어 있다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 핸드오프하는 것을 삼가하고, UI 모듈(120A)에게 지시하여 UIC(112A)가 응답을 시각적으로 제시하게할 수 있다. 한편, UIC(112A)가 디스플레이 디바이스를 포함하지 않으며 따라서 결정된 형식대로 응답을 제시할 수 없다라고 어시스턴트 모듈(122A 및/또는 112C)이 결정하면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)가 디스플레이 디바이스에 동작가능하게 연결되어 있는지를 결정할 수 있으며, 만일 그렇다면, 상기 대화를 다른 컴퓨팅 디바이스로 핸드오프하여, 다른 컴퓨팅 디바이스가 응답을 비디오로 출력하게할 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 질의를 발행한 사용자와 연관된 하나 이상의 컴퓨팅 디바이스들을 결정할 수 있을 뿐만 아니라, 상기 사용자와 연관된 하나 이상의 컴퓨팅 디바이스들의 특징들, 능력들 및/또는 특성들을 임의의 적절한 방식으로 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자 정보 데이터 저장소(124A), 사용자 정보 데이터 저장소(124C) 또는 다른 곳(예를 들어, 클라우드)에 저장된 사용자와 관련된 정보에 액세스할 수 있으며, 이는 사용자의 사용자 계정이 사인 온되거나 또는 달리 관련된 컴퓨팅 디바이스들을 특정할 수 있으며, 이들 하나 이상의 컴퓨팅 디바이스들의 특징, 성능 및/또는 특성도 특정할 수 있다. 다른 일례들에서, 사용자와 연관된 컴퓨팅 디바이스들은 그것의 능력들에 대한 표시를 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)로 통신할 수 있으며, 따라서 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)를 판단 할 수 있다.
또한, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 신뢰(trust)에 적어도 일부 기초하여, 컴퓨팅 디바이스(110A)가 대화를 핸드오프해야만 하는지 또는 다른 컴퓨팅 디바이스로 대화를 핸드오프하는 것을 삼가해야만 하는지를 결정할 수 있다. 만일, 핸드오프를 수신하기 위한 잠재적 타겟 디바이스가 사용자와 연관되는지 및/또한 사용자에 의해 승인되는지를 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 확인할 수 없다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 잠재적인 타겟 디바이스로 대화를 핸드오프하는 것을 삼가할 수 있다. 신뢰의 형태 중 하나는, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에 디바이스를 등록하는 것일 수 있다. 잠재적 타겟 디바이스가 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에 등록되지 않은 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 잠재적 타겟 디바이스가 대화의 핸드오프를 수신할 권한이 있음을 확인할 수 없을 수 있다. 신뢰의 다른 형태는 사용자가 잠재적인 타겟 디바이스에 로그인하거나 또는 사용자가 잠재적인 타겟 디바이스를 통해 가상 어시스턴트 서비스에 로그인하는 것이다. 따라서, 사용자가 잠재적 타겟 디바이스에 로그인하지 않았다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 잠재적 타겟 디바이스가 대화의 핸드오프를 수신할 권한이 있음을 확인할 수 없을 수 있다. 일부 일례들에서, 일부 대화들은 다른 디바이스로 핸드오프될 수 없는 것으로 명시적으로 마킹되거나 표시될 수 있다. 대화가 이와 같이 마킹되어있다라고 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 결정하면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 잠재적인 타겟 디바이스로 대화를 핸드오프하는 것을 삼가할 수 있다.
일부 예들에서, 사용자와 연관된 2 이상의 컴퓨팅 디바이스들은 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에 의해 결정된 형식대로 응답을 출력할 수 있다. 예를 들어, 사용자와 관련된 2 이상의 컴퓨팅 디바이스들은 시각적으로 응답을 출력할 수 있다. 이러한 경우에, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 다양한 인자에 기초하여, 결정된 형식대로 응답을 출력할 수 있는 사용자와 관련된 2 이상의 컴퓨팅 디바이스들 중에서 하나의 컴퓨팅 디바이스를 선택할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 2 이상의 컴퓨팅 디바이스들에 동작가능하게 연결된 디스플레이 디바이스들의 상대적 크기, 2 이상의 컴퓨팅 디바이스들의 위치, 및/또는 다른 적절한 요인들에 기초하여 이러한 선택을 수행할 수 있다. 예를 들어, 컴퓨팅 디바이스(110A)는 스마트 워치이고, 컴퓨팅 디바이스(110B)는 스마트폰인 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 응답의 크기를 결정할 수 있다(예를 들어, 제시될 이미지의 크기, 제시될 웹 사이트의 크기, 등). 응답의 크기가 비교적 크고, 컴퓨팅 디바이스(110B)가 컴퓨팅 디바이스(110A)에 동작가능하게 연결된 디스플레이 디바이스 보다 상대적으로 더 큰 시야 영역을 갖는 디스플레이 디바이스에 동작가능하게 연결된 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 컴퓨팅 디바이스(110B)로 핸드오프하기로 결정할 수 있다.
다른 일례에서, 어시스턴트 모듈(122A)은 사용자에 의해 수행중인 활동 또는 사용자에 의해 수행될 잠재적 활동을 결정하는 것에 적어도 일부로 기초하여, 대화를 핸드오프할 컴퓨팅 디바이스를 선택할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 수신된 요청에 대한 응답이 소정 위치로의 방향들이라고 판정하고, 사용자가 그의 차에 탑승 중이거나, 탑승했거나, 또는 탑승할 예정인 경우, 어시스턴트 모듈(122A)은 사용자의 자동차의 인포테인먼트 시스템에서 실행되는 어시스턴트로 대화를 핸드오프할 수 있으며, 인포테인먼트 시스템은 상기 소정 위치로의 방향들을 디스플레이할 수 있다. 예를 들어, 사용자가 자신의 차에 탑승하면서 전화기를 휴대하고 있다면, 사용자의 전화기는 차량과의 연결(예를 들어, 블루투스 연결)을 확립할 수 있다. 이러한 연결이 설정되면, 스마트 폰 및/또는 인포테인먼트 시스템은 그러한 연결을 디지털 어시스턴트 서버(160)에 보고할 수 있다. 이에 응답하여, 디지털 어시스턴트 서버(160)는 상기 위치에 대한 방향들을 스마트 폰 및/또는 인포테인먼트 시스템에 통신할 수 있거나, 또는 제3자 서버 시스템들(170) 중 하나에 지시하여 상기 위치에 대한 방향들을 컴퓨팅 디바이스(110B)로 통신하게 한다. 이러한 방식으로, 컴퓨팅 디바이스(110A)는 사용자의 현재 활동 또는 잠재적인 미래 활동에 기초하여 대화를 핸드오프하기로 결정할 수 있다.
다른 예에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 관련된 하나 이상의 다른 컴퓨팅 디바이스들의 위치들을 결정하는 것에 기초하여 대화를 핸드오프할 컴퓨팅 디바이스를 선택할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 응답이 시각적으로 제시될 것(예컨대, 디스플레이 디바이스에 표시됨)이라고 결정하고, UIC(112A)가 디스플레이 디바이스를 포함하지 않는 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 응답을 시각적으로 제시할 수 있는 사용자와 관련된 하나 이상의 컴퓨팅 디바이스(예를 들어, 디스플레이 디바이스를 포함하거나 동작가능하게 연결됨)를 결정할 수 있다. 하지만, 사용자는 시각적으로 응답을 제시할 수 있는 2 이상의 컴퓨팅 디바이스들과 연관될 수 있다. 예를 들어, 사용자는 하나 이상의 TV 셋탑 박스들, 컴퓨터들, 테블릿들, 스마트폰들, 기타 등등과 관련될 수 있으며, 이들 모두는 응답을 시각적으로 제시할 수 있다.
대화가 핸드오프되는 컴퓨팅 디바이스를 선택하는 다른 방법은 컴퓨팅 디바이스(110A)에 대한 컴퓨팅 디바이스의 근접성에 적어도 부분적으로 기초할 수 있다. 예를 들어, 2 이상의 컴퓨팅 디바이스들이 대화의 핸드오프를 수신할 수 있고 그리고 응답을 제시할 수 있는 능력이 있는 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 원하는 형식대로 응답을 제시할 수 있는 사용자와 관련된 컴퓨팅 디바이스들 중에서 컴퓨팅 디바이스(110A)에 물리적으로 가장 가까운 사용자와 관련된 컴퓨팅 디바이스로 대화를 핸드오프할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 컴퓨팅 디바이스들의 물리적 근접성을 다양한 방식으로 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스들에게 그들의 현재 위치를 질의할 수 있다. 또한, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)에 물리적으로 근접한 사용자와 연관된 컴퓨팅 디바이스들과의 직접 연결을 근거리 통신(예를 들어, 블루투스, 초음파 통신, 적외선 등)을 통해 시도할 수 있다. 사용자들은 자신에게 근접한 컴퓨팅 디바이스에 상대적으로 더 액세스할 가능성이 높기 때문에, 그리고 컴퓨팅 디바이스(110A)에 질의를 발행하기 위해 사용자가 컴퓨팅 디바이스(110A)에 물리적으로 근접할 가능성이 있기 때문에, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)에 물리적으로 근접한 컴퓨팅 디바이스로 대화를 핸드오프함으로써, 가까운 미래에 사용자가 액세스할 가능성이 적은 컴퓨팅 디바이스로 대화를 핸드오프하는 것을 방지할 수 있다.
다른 예에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 최근 활동에 적어도 부분적으로 기초하여 대화가 핸드오프되는 컴퓨팅 디바이스를 결정할 수 있다. 예를 들어, 2 개의 컴퓨팅 디바이스들 모두가 응답을 원하는 형식대로(예를 들어, 시각적으로) 출력하기 위한 동일하거나 유사한 기능적 능력을 갖는 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122)은 가장 최근에 활성화된(예를 들어, 사용자에 의해 가장 최근에 사용된) 컴퓨팅 디바이스를 대화가 핸드오프될 컴퓨팅 디바이스로 선택할 수 있다.
일부 예에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)과 함께 실행되는 제3자 어플리케이션들(172)은 다른 컴퓨팅 디바이스로 대화가 핸드오프되게 할 수 있거나, 그렇지 않으면 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)로 대화를 핸드오프하도록 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122B)에게 지시할 수 있다. 제3자 어플리케이션(172)은 요청된 작업을 수행하기 위하여 또는 질의에 대한 응답을 생성하기 위하여 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)과 상호작용하는 어플리케이션들 또는 서비스들일 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 어플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있는바, 제3자 어플리케이션(172)은 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)과 상호작용하기 위해 API에 액세스할 수 있다.
예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자가 어시스턴트 모듈(122A)에게 영화 티켓의 구매를 요청하는 대화 동안 제3자 서버 시스템(170)에서 실행되는 제3자 영화 티켓 구매 어플리케이션과 상호작용할 수 있다. 이러한 요청의 수신에 응답하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 어플리케이션이 영화 티켓을 구매하도록 지시하기 위해 제3자 영화 티켓 구매 어플리케이션과 통신할 수 있다. 이에 응답하여, 제3자 영화 티켓 구매 어플리케이션은 디스플레이 디바이스를 포함하거나 동작가능하게 연결된 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)로 대화를 핸드오프하기 위하여 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에게 요청을 능동적으로(proactively) 전송할 수 있으며, 따라서 다른 컴퓨팅 디바이스는 영화에 대한 좌석 차트의 시각적 표현을 출력할 수 있고, 이에 의해 사용자는 영화에 대한 이용가능한 좌석을 보고 선택할 수 있다. 상기 요청을 수신한 것에 응답하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 디스플레이 디바이스에 동작가능하게 연결된 컴퓨팅 디바이스로 대화를 핸드오프할 수 있다.
일부 예들에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 컴퓨팅 디바이스들의 기능적 능력들에 적어도 부분적으로 기초하여 응답의 형태를 결정할 수 있다. 보다 구체적으로, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자의 컴퓨팅 디바이스들 중 적어도 하나에 적합하게 될 응답의 형태를 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(110A)가 오늘 날씨에 대한 질의를 수신한다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 일기 예보를 제시할 형태를 결정할 수 있다. 질의를 발행한 사용자와 연관된 컴퓨팅 디바이스들 중 그 어느 것도 디스플레이 디바이스에 동작가능하게 연결되어 있지 않다면, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 일기 예보의 시각적 표현을 출력하기로 결정하는 것을 자제할 수 있다. 대신에, 사용자와 관련된 컴퓨팅 디바이스들 중 적어도 하나가 오디오 출력 디바이스(예를 들어, 스피커)에 동작가능하게 연결된 경우, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 일기 예보의 오디오 표현을 출력하도록 결정할 수 있다.
도 1의 일례에서, 상기 질의(126)가 방향들에 대한 요청이기 때문에, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 상기 질의(126)에 대한 응답이 대화형 맵 형태라고 결정할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 레스토랑으로 향하는 방향들에 대한 대화형 맵을 컴퓨팅 디바이스(110A)가 제시할 수 있는지를 결정할 수 있다.
예를 들어, 컴퓨팅 디바이스(110A)는 자신의 기능적 능력들 또는 자신의 신원에 대한 표시를 디지털 어시스턴트 서버(160)로 전송할 수 있으며 따라서, 어시스턴트 모듈(122C)은 이러한 정보를 이용하여, 레스토랑으로의 방향들을 대화형 맵으로 제시할 수 있는 디스플레이 디바이스에 컴퓨팅 디바이스(110A)가 동작가능하게 연결되어 있는지의 여부를 결정할 수 있다. 대안적으로, 디지털 어시스턴트 서버(160)는 컴퓨팅 디바이스(110A)의 능력에 관한 정보를 이미 저장했을 수 있으며, 어시스턴트 모듈(122C)은 이를 이용하여 레스토랑으로 가는 방향들을 대화형 맵으로 제시할 수 있는 디스플레이 디바이스에 컴퓨팅 디바이스(110A)가 동작가능하게 연결되는지를 결정할 수 있으며, 컴퓨팅 디바이스(110A)는 자신에 관한 정보를 디지털 어시스턴트 서버(160)로 전송할 필요가 없을 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은, 컴퓨팅 디바이스(110A)가 레스토랑으로 가는 방향들을 대화형 맵으로 제시할 수 없다라고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(110A)는 디스플레이 디바이스에 동작가능하게 연결되지 않은 독립형 어시스턴트 디바이스일 수 있다. 따라서, 레스토랑으로의 방향들을 대화형 맵으로 제시하는 것은, 사용자와 연관된 임의의 다른 컴퓨팅 디바이스들이 대화(132)의 핸드오프를 수신할 수 있고 레스토랑으로의 방향들을 대화형 맵으로 제시할 수 있는지를 결정할 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 컴퓨팅 디바이스들을 결정할 수 있을 뿐만 아니라 이들 컴퓨팅 디바이스들이 대화의 핸드오프를 다양한 방식으로 수신할 수 있는지를 결정할 수 있다. 예를 들어, 사용자 정보 데이터 저장소(124A) 및/또는 사용자 정보 데이터 저장소(124B)는 사용자와 연관된 컴퓨팅 디바이스들의 목록 뿐만 아니라 이들의 기능적 능력들 및/또는 이용가능한 상태를 저장할 수 있다. 대안적으로, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 그들의 이용가능한 상태 및/또는 그들의 기능적 능력을 결정하기 위해, 사용자와 연관된 컴퓨팅 디바이스들을 "핑(ping)"할 수 있다(예를 들어, 네트워크(130)를 통해 이들 컴퓨팅 디바이스와 간단히 통신함). 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 또한, 다른 관련 정보를 유사한 방식으로 결정할 수 있는바, 전술한 바와 같이 가령, 사용자와 관련된 컴퓨팅 디바이스들의 컴퓨팅 디바이스(110A)에 대한 근접성, 사용자와 관련된 컴퓨팅 디바이스들 중에서 가장 최근에 활성인 컴퓨팅 디바이스, 뿐만 아니라 핸드오프를 수신할 컴퓨팅 디바이스를 선택하는데 사용될 수 있는 다른 정보를 결정할 수 있다.
전술한 결정들 중 임의의 것 또는 전부에 기초하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 연관된 스마트 폰으로 핸드오프될 것이라고 결정할 수 있는바, 왜냐하면 스마트폰은 레스토랑으로의 방향들에 대한 대화형 맵을 제시할 수 있으며 그리고 스마트폰은 사용자에 의해 차량 내부로 운반되어 운전 경로에 사용될 수 있기 때문이다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110B)가 사용자와 연관된 스마트폰인 것으로 결정할 수 있으며, 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화(132)를 핸드오프할 수 있다.
일부 일례들에서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 핸드오프할지를 능동적으로 결정할 수 있다. 다시 말해서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)을 야기하는 질의를 수신하지 않고도 이러한 결정이 이루어질 수 있다. 대신에, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자와 어시스턴트 모듈(122A) 사이에서 지금까지 발생한 대화에 적어도 일부 기초하여 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다.
도 1의 일례에서, 레스토랑 루이지에서 예약을 하도록 사용자가 어시스턴트 모듈(122A)에게 요청하고, 어시스턴트 모듈(122A)이 대화(132)의 일부로서 요청된 예약을 수행한 이후 및 상기 질의(126) 이전에, 어시스턴트 모듈(122A) 및 어시스턴트 모듈(122C)은 다른 컴퓨팅 디바이스로 대화(132)를 핸드오프할지의 여부를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은, 상기 대화(132)의 내용에 기초하여 사용자에 의해 가까운 장래에 발생할 가능성이 있는 동작을 결정하는 것에 적어도 부분적으로 기초하여, 다른 컴퓨팅 디바이스로 대화(132)를 핸드오프할지의 여부를 능동적으로 결정할 수 있다.
대화(132)의 내용에 기초하여 사용자에 의해 가까운 미래에 발생할 가능성이있는 동작을 결정하는 것은, 사용자가 가까운 미래에 상호작용할 가능성이 있는 다른 컴퓨팅 디바이스를 결정하는 것을 포함할 뿐만 아니라, 사용자가 다른 컴퓨팅 디바이스와 상호작용할 때 사용자에게 유용할 가능성이 있는 정보를 결정하는 것을 포함할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자 정보 데이터 저장소(124A) 및/또는 사용자 정보 데이터 저장소(124)에 저장된 사용자 선호도 또는 사용자 이력을 분석하는 것과 같은 다양한 방식으로, 대화(132)의 내용에 기초하여 사용자에 의해 가까운 미래에 발생할 가능성이있는 행동을 결정할 수 있다. 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화(132)의 내용과 사용자와 어시스턴트 모듈(122A) 사이의 이전 대화를 비교할 수 있고, 그리고 어시스턴트 모듈(122A)과 대화한 후 사용자에 의해 취해진 이전의 사용자 행동들을 판별할 수 있다. 이러한 방식으로, 어시스턴트 모듈(122A)은 대화(132)를 핸드오프할지의 여부를 능동적으로 결정할 수 있을 뿐만 아니라 대화(132)가 핸드오프될 컴퓨팅 디바이스를 결정할 수 있다.
도 1의 일례에서, 레스토랑 루이지에 대한 예약을 요청하는 사용자의 표시들 뿐만 아니라 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 예약을 했다는 확인을 상기 대화(132)가 포함하고 있기 때문에, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은, 사용자가 자신의 스마트폰을 가져가서 레스토랑으로의 경로 탐색에 상기 스마트폰을 사용할 가능성이 있다라고 결정할 수 있다. 따라서, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화(132)가 사용자의 스마트폰(예를 들어, 컴퓨팅 디바이스(110B))으로 핸드오프되는 것으로 결정할 수 있다.
이로부터 대화가 핸드오프되는 컴퓨팅 디바이스(110A)의 어시스턴트 모듈(122A)은 대화가 다른 컴퓨팅 디바이스로 핸드오프될 것이라는 표시를 출력할 수 있다. 도 1에서, 다른 컴퓨팅 디바이스로 대화(132)가 핸드오프되어야한다고 결정하면, 어시스턴트 모듈(122A)은 어시스턴트 모듈(122A)이 대화(132)를 핸드오프해준 컴퓨팅 디바이스를 식별하는 메시지(127)를 UIC(112A)를 통해 출력함으로써, 다른 컴퓨팅 디바이스로 대화(132)를 핸드오프했음을 사용자에게 알릴 수 있으며, 상기 메시지는 식별된 컴퓨팅 디바이스가 질의(126)에 대한 응답을 출력할 것임을 또한 나타낼 수 있다.
어시스턴트 모듈(122A)로부터 어시스턴트 모듈(122B)로 대화(예를 들어, 대화 132)를 핸드오프하기 위해, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화의 핸드오프를 수신하라는 요청을 어시스턴트 모듈(122B)로 전송할 수 있으며, 어시스턴트 모듈(122B)은 대화의 핸드오프를 수신할지의 여부를 결정할 수 있다. 대화의 핸드오프를 수신할 것이라고 어시스턴트 모듈(122B)이 결정하면, 어시스턴트 모듈(122B)은 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)에게 대화의 핸드오프를 수락한다는 표시를 전송할 수 있다. 이에 응답하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 핸드오프된 대화에 대한 표시를 어시스턴트 모듈(122B)로 전송할 수 있다.
일부 구현예에서, 대화에 대한 표시는, 텍스트 형태, 해시 형태, 또는 임의의 다른 적합한 형태로 대화의 적어도 일부분을 포함할 수 있다. 대화의 이러한 일부분은, 대화 중에 컴퓨팅 디바이스(110B)에 의해 출력된 콘텐츠 뿐만 아니라 사용자로부터 컴퓨팅 디바이스(110A)(예를 들어, UIC 112A를 통해)에 의해 수신된 입력 콘텐츠의 전부 또는 적어도 일부를 포함하는, 컴퓨팅 디바이스와의 사용자 상호작용의 로그일 수 있다.
일부 예들에서, 대화에 대한 표시는 또한 핸드오프를 수신하는 컴퓨팅 디바이스에 대한 대화와 관련된 콘텍스트 정보의 적어도 일부를 포함할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 사용자 정보 데이터 저장소(124A) 및/또는 사용자 정보 데이터 저장소(124C)에 저장된 콘텍스트 정보의 적어도 일부를 사용자 정보 데이터 저장소(124B)에 저장하기 위해 컴퓨팅 디바이스(110B)로 전송할 수 있다. 따라서, 사용자가 대화를 계속하기 위해 컴퓨팅 디바이스(110B)에서 어시스턴트 모듈(122B)과 상호작용할 때, 어시스턴트 모듈(122B)은 컴퓨팅 디바이스(110A)의 어시스턴트 모듈(122A)과의 이전 사용자 상호작용에 기초하여, 자신이 수신하는 추가 질의를 해석하도록(예를 들어, 질의로부터 의미를 추론) 이러한 콘텍스트 정보를 사용할 수 있으며 따라서, 그러한 질의에 대한 관련 응답을 생성하기 위해 수신될 수 있습니다. 이러한 방식으로, 사용자는 대화의 일부로서 어시스턴트 모듈(122A)과의 이전 상호작용의 스레드를 상실함이 없이 컴퓨팅 디바이스(110B)에서 어시스턴트 모듈(122B)과 상호작용함으로써 원활한 대화를 계속할 수 있다.
대화에 대한 표시는 또한 질의에 대한 응답으로 컴퓨팅 디바이스(110B)에 의해 출력되는 응답에 대한 표시를 포함할 수 있다. 일 예에서, 수행될 동작에 대한 이러한 표시는 어시스턴트 모듈(122B)이 동작을 결정하고 수행할 수 있는 질의에 대한 표시를 포함할 수 있다. 이 경우, 어시스턴트 모듈(122B)은 특정 동작을 수행하기 위해, 컴퓨팅 디바이스(110A)의 지시를 받지않고 질의(126)에 대한 적절한 응답을 결정하도록 질의(126)를 자체적으로 분석해야만 할 수도 있다. 다른 예에서, 컴퓨팅 디바이스(110B)에 의해 출력될 응답에 대한 표시는 컴퓨팅 디바이스(110B)로 하여금 응답을 출력하게 하는 임의의 정보를 포함할 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)이 대화를 능동적으로 핸드오프하는 일례에서, 대화에 대한 표시는 컴퓨팅 디바이스(110B)에 의해 수행될 작업에 대한 표시를 포함하거나, 또는 컴퓨팅 디바이스(110B)에 의해 출력될 정보에 대한 표시, 가령, 레스토랑으로 안내하는 대화형 맵 등을 포함할 수 있다. 도 1의 일례에서, 어시스턴트 모듈(122A)이, 질의(126)를 분석함으로써, 사용자의 위치로부터 루이지 레스토랑으로 안내하는 시각적 맵을 출력하는 것이 적절한 응답이다라고 결정하는 경우, 어시스턴트 모듈(122A)은 어시스턴트 모듈(122B)에게 지시하여 컴퓨팅 디바이스(110B)로 하여금 사용자의 위치로부터 루이지 레스토랑으로 안내하는 시각적 맵을 출력하게 할 수 있다. 다른 일례에서, 어시스턴트 모듈(122A)은 어시스턴트 모듈(122B)에게 지시하여 컴퓨팅 디바이스(110B)로 하여금 사용자의 위치로부터 루이지 레스토랑으로 가는 방향들을 출력하게 할 수 있다(이들 방향들을 어떻게 출력하는지를 특정하지 않고). 이 경우, 어시스턴트 모듈(122B)은 이러한 방향들이 시각적으로 제시되어야한다고 결정할 수 있다.
컴퓨팅 디바이스(110B)의 어시스턴트 모듈(122B)은 질의에 응답하도록 컴퓨팅 디바이스(110B)에 의해 출력될 응답의 표시를 포함하는 대화(132)에 대한 표시를 수신하는 것을 포함하여, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)로부터 핸드오프를 수신할 수 있다. 도 1의 경우에, 어시스턴트 모듈(122B)은 사용자의 위치로부터 루이지 레스토랑까지의 방향들의 시각적 맵을 생성할 수 있다. 어시스턴트 모듈(122B)은 생성된 응답을 다양한 방식으로 출력할 수 있다. 예를 들어, 어시스턴트 모듈(122B)은 사용자 인터페이스(114)에서 통지(116)의 형태로 응답을 출력할 수 있다. UIC(112B)가 통지(116)를 활성화하는(가령, 통지(116)를 탭핑, 스와이핑 또는 달리 선택함으로써) 사용자 입력을 수신하면, UIC(112B)는 사용자 위치로부터 루이지 레스토랑까지의 방향들에 대한 시각적 맵을 출력할 수 있다. 다른 예에서, 대화(132)의 표시 및 질의(126)에 응답하기 위해 컴퓨팅 디바이스(110B)에 의해 출력될 응답의 표시를 수신하면, 컴퓨팅 디바이스(110B)는 사용자 개입없이 자동으로 맵 어플리케이션을 열어서 방향들의 시각적 맵을 디스플레이할 수 있다. 다른 예에서, 대화(132)의 표시 및 질의(126)에 응답하기 위해 컴퓨팅 디바이스(110B)에 의해 출력될 응답의 표시를 수신하면, 컴퓨팅 디바이스(110B)는 사용자 개입없이 자동으로 가상 어시스턴트 어플리케이션을 열어서 방향들의 시각적 맵을 디스플레이할 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로 대화의 핸드오프를 다양한 방식으로 수행할 수 있다. 전술한 바와 같이, 어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122C)은 대화를 핸드오프할지 여부를 결정하고, 핸드오프를 수신할 컴퓨팅 디바이스를 결정할 수 있다. 이와 유사하게, 어시스턴트 모듈(122A), 어시스턴트 모듈(122C), 또는 어시스턴트 모듈(122A)과 어시스턴트 모듈(122C)의 조합은 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로의 대화의 핸드오프를 수행할 수 있다.
일 예에서, 어시스턴트 모듈(122A)은 네트워크(130)(예를 들어, 인터넷)를 통해, 컴퓨팅 디바이스(110A)와 컴퓨팅 디바이스(110B) 간의 단거리 직접 통신(예를 들어, 블루투스)을 통해, 또는 네트워크(130)와 단거리 직접 통신의 조합을 통해, 어시스턴트 모듈(122B)과 직접 통신함으로써, 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로의 대화의 핸드오프를 수행할 수 있다. 다른 예에서, 어시스턴트 모듈(122C)은 네트워크(130)를 통해 어시스턴트 모듈(122B)과 통신함으로써 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로의 대화의 핸드오프를 수행할 수 있다.
대안적으로, 어시스턴트 모듈(122A)과 어시스턴트 모듈(122C)의 조합은 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로의 대화의 핸드오프를 수행할 수 있다. 어시스턴트 모듈(122A)은 네트워크(130)(예를 들어, 인터넷)를 통해, 컴퓨팅 디바이스(110A)와 컴퓨팅 디바이스(110B) 간의 단거리 직접 통신(예를 들어, 블루투스)을 통해, 또는 네트워크(130)와 단거리 직접 통신의 조합을 통해, 어시스턴트 모듈(122B)와 통신할 수 있으며, 반면에 어시스턴트 모듈(122C)은 네트워크(130)를 통해 어시스턴트 모듈(122B)과 통신할 수 있다.
대화(132)의 핸드오프를 수신한 후, 어시스턴트 모듈(122B)은, 단독으로 또는 어시스턴트 모듈(122C)와 함께, 대화(132)의 일부로서 사용자 상호작용을 계속 수신할 수 있으며 그리고 또한 이들 사용자 상호작용들에 대한 응답들을 생성할 수 있다. 예를 들어, 어시스턴트 모듈(122B)은 "그들에게 전화해" 라는 음성 입력을 질의(128)로서 수신할 수 있고, 어시스턴트 모듈(122B) 및/또는 어시스턴트 모듈(122C)은 질의(128)에 대한 응답을 생성할 수 있다.
만일, 어시스턴트 모듈(122B)이 어시스턴트 모듈(122C)과 함께 응답을 생성한다면, 어시스턴트 모듈(122B)은 어시스턴트 모듈(122C)에게 응답을 전송할 수 있으며, 어시스턴트 모듈(122C)은 단독으로, 또는 어시스턴트 모듈(122B)과 조합하여 응답을 생성할 수 있다. 어시스턴트 모듈(122B) 및/또는 어시스턴트 모듈(122C)이 사용자 정보 데이터 저장소(124B) 및/또는 사용자 정보 데이터 저장소(124C)에 저장된 대화(132)에 관련된 콘텍스트 정보에 액세스할 수 있기 때문에, 어시스턴트 모듈(122B) 및/또는 어시스턴트 모듈(122C)은 대화(132)의 핸드오프 이전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 일부분을 상기 질의(128)가 참조하는지의 여부를 결정할 수 있다.
예를 들어, 어시스턴트 모듈(122B) 및/또는 어시스턴트 모듈(122C)은 그러한 콘텍스트 정보로부터, 상기 질의(128)에서 "그들"은 루이지 레스토랑을 지칭하는 것이라고 추론할 수 있으며, 루이지 레스토랑은 대화(132)의 핸드오프 이전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 일부분으로부터 유래된 것이다. 따라서, 어시스턴트 모듈(122B)은 루이지 레스토랑과 관련된 전화 번호를 호출하기 위한 요청으로서 상기 질의(128)를 해석할 수 있다. 이와 같이, 어시스턴트 모듈(122B) 및/또는 어시스턴트 모듈(122C)은 질의(128)에 대한 관련 응답을 만들어낼 수 있다(formulate).
만일, 어시스턴트 모듈(122B)이 어시스턴트 모듈(122C)과 함께 응답을 생성한다면, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110B)의 UIC(112B)에 의해 출력하기 위해 어시스턴트 모듈(122B)에 응답의 표시를 전송할 수 있다. 따라서, 어시스턴트 모듈(122B)은 컴퓨팅 디바이스(110B)가 루이지의 식당과 관련된 전화 번호로 전화를 걸 수 있게하며 그리고 컴퓨팅 디바이스(110B)가 그러한 전화를 걸고 있다는 표시(129)를 출력하게할 수 있다.
이러한 방식으로, 컴퓨팅 디바이스(110A)의 어시스턴트 모듈(122A)은 디지털 어시스턴트 서버(160)의 어시스턴트 모듈(122C)과 함께, 사용자와 컴퓨팅 디바이스(110A) 사이에서 발생한 대화를 컴퓨팅 디바이스(110B)의 어시스턴트 모듈(122B)로 능동적으로 핸드오프할 수 있다. 대화의 핸드오프를 수신한 것에 응답하여, 컴퓨팅 디바이스(110B)의 어시스턴트 모듈(122B)은 컴퓨팅 디바이스(110A)의 어시스턴트 모듈(122A)에 의해 수신된 요청에 대한 응답을 출력할 수 있다. 어시스턴트 모듈(122B)은 대화와 관련된 콘텍스트 정보에 액세스할 수 있어서, 어시스턴트 모듈(122B)은 어시스턴트 모듈(122B)이 수신한 요청이, 사용자와 어시스턴트 모듈(122A) 사이에서 발생한 대화의 일부를 참조하는 경우를 결정할 수 있다.
도 1을 참조할 뿐만 아니라 명세서 전체에서 설명된 기술들은 컴퓨팅 디바이스(110A) 및 컴퓨팅 디바이스(110B)의 기능을 다양한 방식으로 개선할 수 있다. 예를 들어, 본 발명의 기술들은 명시적인 사용자 명령 없이도 컴퓨팅 디바이스(110A)가 대화를 컴퓨팅 디바이스(110B)로 핸드오프할 수 있게하기 때문에 컴퓨팅 디바이스(110A)와의 사용자 상호작용의 양을 감소시킬 수 있는바, 왜냐하면 대화를 컴퓨팅 디바이스(110B)로 핸드오프하도록 사용자가 컴퓨팅 디바이스(110A)에게 명시적으로 지시할 필요가 없기 때문이다.
또한, 질의를 완료하기 위해서는 사용자가 다른 디바이스를 사용해야함을 나타내는 에러 또는 다른 메시지를 단순히 출력하는 것, 사용자가 제 2 컴퓨팅 플랫폼에서 질의를 반복할 것을 요구하는 것, 기타 등등 대신에, 어시스턴트는 사용자가 제 2 컴퓨팅 플랫폼에서 대화를 계속하게 할 수 있다(사용자가 이전에 제 1 컴퓨팅 플랫폼에서 제공한 것과 동일한 사용자 상호작용들을 반복할 필요없이).
따라서, 본 명세서에 개시된 기술들은 또한 컴퓨팅 디바이스(110B)와의 사용자 상호작용의 양을 감소시킬 수 있다. 본 발명의 기술들은 컴퓨팅 디바이스(110A)가 컴퓨팅 디바이스(110B)로 대화를 능동적으로 핸드오프할 수 있게 하므로, 컴퓨팅 디바이스(110B)는 컴퓨팅 디바이스(110A)를 대신하여 응답을 출력하고, 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로 대화를 핸드오프하는 것의 일부로서 컴퓨팅 디바이스(110B)에 의해 출력된 동일한 응답을 수신하기 위해 사용자는 컴퓨팅 디바이스(110B)에 질의를 발행할 필요가 없다.
또한, 컴퓨팅 디바이스(110A)로부터 컴퓨팅 디바이스(110B)로 대화를 전달하는 단계는 대화의 콘텍스트 정보의 표시를 컴퓨팅 디바이스(110B)로 전달하는 단계를 포함하므로, 컴퓨팅 디바이스(110B)는 컴퓨팅 디바이스(110A)와 발생했던 대화의 일부를 다시 참조하는 사용자 입력을 더 정확하게 해석할 수 있다. 컴퓨팅 디바이스(110A)는 사용자 입력에 응답하여 동작을 수행하거나 응답을 출력할 수 있으므로(아마도 보다 유용하면서도 의미가 있는), 동일한 응답을 수신하기 위해 사용자가 컴퓨팅 디바이스(110B)에 질의를 발행할 필요성을 감소시킨다.
또한, 본 발명의 기술은 답변을 출력하기에 더 적합한 다른 디바이스들을 식별함으로써, 어시스턴트에 의해 제공되는 답변들에 대한 사용자 이해를 증가시킬 수 있다. 이러한 방식으로, 본 발명의 기술은 사용자가 답변을 수신하고 이해하는데 필요한 사용자 입력들의 개수를 감소시킬 수 있고, 그리고 어시스턴트가 컴퓨팅 디바이스에서 정보를 활동적으로 실행하고 처리하는 시간을 감소시킬 수 있다.
도 2는 본 개시의 하나 이상의 양상에 따라 예시적인 가상 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다. 도 2의 컴퓨팅 디바이스(210)는 도 1의 컴퓨팅 디바이스(110A) 및/또는(110B)의 일례로서 이하에서 설명된다. 도 2는 컴퓨팅 디바이스(210)의 하나의 특정 일례만을 도시한다. 컴퓨팅 디바이스(210)의 많은 다른 일례들이 다른 경우들에서 사용될 수 있으며, 예시적인 컴퓨팅 디바이스(210)에 포함된 컴포넌트들의 서브세트를 포함하거나 도 2에 도시되지 않은 추가 컴포넌트들을 포함할 수 있다.
도 2에 도시된 바와 같이, 컴퓨팅 디바이스(210)는 사용자 인터페이스 컴포넌트(UIC)(212), 하나 이상의 프로세서(240), 하나 이상의 통신 유닛(242) 및 하나 이상의 저장 컴포넌트(248)를 포함한다. UIC(212)는 출력 컴포넌트(202) 및 입력 컴포넌트(204)를 포함한다. 컴퓨팅 디바이스(210)의 저장 컴포넌트(248)는 UI 모듈(220), 어시스턴트 모듈(222), 사용자 정보 데이터 저장소(224), 하나 이상의 어플리케이션 모듈(226) 및 콘텍스트 모듈(230)을 포함한다.
통신 채널(250)은 컴포넌트 간 통신(물리적으로, 통신가능하게, 및/또는 동작가능하게)을 위해 컴포넌트들(212, 240, 242 및 248) 각각을 연결할 수 있다. 일부 예들에서, 통신 채널들(250)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조, 또는 데이터를 통신하기 위한 임의의 다른 방법을 포함할 수 있다.
컴퓨팅 디바이스(210)의 하나 이상의 통신 유닛(242)은 하나 이상의 네트워크 상에서 네트워크 신호를 송신 및/또는 수신함으로써 하나 이상의 유선 및/또는 무선 네트워크를 통해 외부 디바이스와 통신할 수 있다. 통신 유닛(242)의 예는 네트워크 인터페이스 카드(예를 들어, 이더넷 카드), 광 트랜시버, 무선 주파수 트랜시버, GPS(global positioning satellite) 수신기, 또는 정보를 송수신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 통신 유닛(242)의 다른 예는 단파 라디오, 셀룰러 데이터 라디오, 무선 네트워크 라디오, 및 범용 직렬 버스(USB) 제어기를 포함할 수 있다.
컴퓨팅 디바이스(210)의 하나 이상의 입력 컴포넌트(204)는 입력을 수신할 수 있다. 입력의 예는 촉각, 오디오 및 비디오 입력이다. 일 예에서, 컴퓨팅 디바이스(210)의 입력 컴포넌트(204)는 존재 감지 입력 디바이스(예를 들어, 터치 감지 스크린, PSD), 마우스, 키보드, 음성 응답 시스템, 비디오 카메라, 마이크로폰 또는 사람이나 기계의 입력을 감지하는 임의의 다른 유형의 디바이스를 포함한다. 일부 예에서, 입력 컴포넌트(204)는 하나 이상의 센서 컴포넌트, 하나 이상의 위치 센서(GPS 컴포넌트, Wi-Fi 컴포넌트, 셀룰러 컴포넌트), 하나 이상의 온도 센서, 하나 이상의 움직임 센서(예를 들어, 가속도계, 자이로), 하나 이상의 압력 센서(예: 기압계), 하나 이상의 주변 광 센서 및 하나 이상의 다른 센서(예: 마이크, 카메라, 적외선 근접 센서, 습도계 등)를 포함할 수 있다. 다른 센서는 몇몇 다른 비제한적인 일례로서, 심박수 센서, 자력계, 포도당 센서, 습도계 센서, 후각 센서, 나침반 센서, 스텝 카운터 센서를 포함할 수 있다.
컴퓨팅 디바이스(110)의 하나 이상의 출력 컴포넌트(202)는 출력을 생성할 수 있다. 출력의 예는 촉각, 오디오 및 비디오 출력이다. 일 예에서, 컴퓨팅 디바이스(210)의 출력 컴포넌트(202)는 PSD, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, 음극선관(CRT) 모니터, 액정 디스플레이(LCD), 또는 인간이나 기계에 출력을 생성하기 위한 임의의 다른 유형의 디바이스를 포함한다.
컴퓨팅 디바이스(210)의 UIC(212)는 컴퓨팅 디바이스(110A 및 110B)의 UIC(112A 및 112B)와 유사할 수 있고, 출력 컴포넌트(202) 및 입력 컴포넌트(204)를 포함한다. 출력 컴포넌트(202)는 UIC(212)에 의해 정보가 디스플레이되는 스크린과 같은 디스플레이 컴포넌트일 수 있다. 입력 컴포넌트(204)는 출력 컴포넌트(202)에서 및/또는 근처에서 객체를 검출하는 존재-감지 입력 컴포넌트일 수 있다. 출력 컴포넌트(202) 및 입력 컴포넌트(204)는 스피커 및 마이크로폰 쌍 또는 하나 이상의 입력 및 출력 컴포넌트들의 임의의 다른 조합일 수 있다. 도 2의 예에서, UIC(212)는 사용자 인터페이스(도 1의 사용자 인터페이스(114)와 같은)를 제공할 수 있다.
컴퓨팅 디바이스(210)의 내부 컴포넌트로서 도시되어 있지만, UIC(212)는 또한 입력 및 출력을 송수신하기 위해 컴퓨팅 디바이스(210)와 데이터 경로를 공유하는 외부 컴포넌트를 나타낼 수 있다. 예를 들어, 일례에서, UIC(212)는 컴퓨팅 디바이스(210)의 외부 패키징 내에 위치하고 물리적으로 연결된 컴퓨팅 디바이스(210)의 내장 컴포넌트를 나타낸다(예를 들어, 휴대 전화의 스크린). 다른 예에서, UIC(212)는 컴퓨팅 디바이스(210)의 패키징 또는 하우징의 외부에 위치하고 물리적으로 분리된 컴퓨팅 디바이스(210)의 외부 컴포넌트를 나타낸다(예를 들어, 컴퓨팅 디바이스(210)와 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터 등).
컴퓨팅 디바이스(210) 내의 하나 이상의 저장 컴포넌트(248)는 컴퓨팅 디바이스(210)의 동작 동안 프로세싱을 위한 정보를 저장할 수 있는바, 예를 들어, 컴퓨팅 디바이스(210)는 컴퓨팅 디바이스(210)의 실행 동안 모듈들(220, 222, 230 및 226) 및 데이터 저장소(224)에 의해 액세스되는 데이터를 저장할 수 있다. 일부 예들에서, 저장 컴포넌트(248)는 일시적 메모리이며, 이는 저장 컴포넌트(248)의 주요 목적이 장기 저장이 아님을 의미한다. 컴퓨팅 디바이스(210)의 저장 컴포넌트(248)는 휘발성 메모리로서 정보의 단기 저장을 위해 구성될 수 있고, 따라서 전원이 꺼지면 저장된 컨텐츠를 유지하지 않을 수 있다. 휘발성 메모리의 예는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 및 당 업계에 공지된 다른 형태의 휘발성 메모리를 포함한다.
일부 예에서, 저장 컴포넌트(248)는 또한 하나 이상의 컴퓨터 판독가능 저장 매체를 포함한다. 일부 예에서 저장 컴포넌트(248)는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 저장 컴포넌트들(248)은 휘발성 메모리에 의해 전형적으로 저장된 것보다 더 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 컴포넌트들(248)은 또한 비휘발성 메모리 공간으로서 정보를 장기간 저장하고 전원의 온/오프 사이클 후에도 정보를 유지하도록 구성될 수 있다. 비 휘발성 메모리의 예는 자기 하드 디스크, 광 디스크, 플로피 디스크, 플래시 메모리, 또는 전기적으로 프로그램가능한 메모리(Electrical Programmable Memory: EPROM) 또는 전기적으로 소거 및 프로그램가능한 메모리(Electrically Erasable and Programmable: EEPROM) 메모리의 형태를 포함한다. 저장 컴포넌트(248)는 모듈들(220, 222, 230, 226) 및 데이터 저장소(224)와 관련된 프로그램 명령 및/또는 정보(예를 들어, 데이터)를 저장할 수 있다. 저장 컴포넌트(248)는 모듈들(220, 222, 230, 226) 및 데이터 저장소(224)와 관련된 데이터 또는 다른 정보를 저장하도록 구성된 메모리를 포함할 수 있다.
하나 이상의 프로세서(240)는 컴퓨팅 디바이스(210)와 관련된 기능을 구현하고 및/또는 명령을 실행할 수 있다. 프로세서(240)의 예는 어플리케이션 프로세서, 디스플레이 제어기, 보조 프로세서, 하나 이상의 센서 허브 및 프로세서, 프로세싱 유닛 또는 프로세싱 디바이스로서 기능하도록 구성된 임의의 다른 하드웨어를 포함한다. 모듈들(220, 222, 230 및 226)은 컴퓨팅 디바이스(210)의 다양한 동작, 동작 또는 기능을 수행하기 위해 프로세서(240)에 의해 작동될 수 있다. 예를 들어, 컴퓨팅 디바이스(210)의 프로세서(240)는 저장 컴포넌트(248)에 의해 저장된 명령을 검색하고 실행할 수 있으며, 상기 명령은 프로세서(240)로 하여금 모듈들(220, 222, 230 및 226)을 동작들을 수행하게 할 수 있다. 상기 명령들은 프로세서(240)에 의해 실행될 때, 컴퓨팅 디바이스(210)로 하여금 저장 디바이스(248) 내에 예를 들어 데이터 저장소(224)에 정보를 저장하게 할 수 있다.
UI 모듈(220)은 도 1의 UI 모듈(120)의 모든 기능을 포함할 수 있고 컴퓨팅 디바이스(210)의 일부로서 어시스턴트를 실행하기 위해 UI 모듈(120)과 유사한 동작을 수행할 수 있다. UI 모듈(220)은 컴퓨팅 디바이스(210)의 UIC(212) 및 다른 컴포넌트들과의 사용자 상호작용을 관리할 수 있다. UI 모듈(220)은 컴퓨팅 디바이스(210)의 사용자가 UIC(212)에서 출력을 보거나 및/또는 입력을 제공할 때 UIC(212)로 하여금 사용자 인터페이스를 출력하게 할 수 있다.
사용자 정보 데이터 저장소(224)는 도 1의 사용자 정보 데이터 저장소(124A 및 124B)의 예이다. 어시스턴트 모듈(222)은 도 1의 어시스턴트 모듈(122A 및 122B)의 모든 기능을 포함할 수 있으며, 그리고 컴퓨팅 디바이스(210)의 일부로서 어시스턴트를 실행하고 사용자 정보 데이터 저장소(224)의 사용자 정보를 관리 및 액세스하도록 어시스턴트 모듈(122A 및 122A)과 유사한 동작을 수행할 수 있다. 일부 예에서, 어시스턴트 모듈(222)은 어시스턴트 기능을 제공하기 위해 로컬에서(예를 들어, 프로세서 240에서) 실행될 수 있다. 일부 예들에서, 어시스턴트 모듈(222)은 가령, 도 1에 도시된 바와 같은 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)과 같이, 컴퓨팅 디바이스(210)에 의해 액세스가능한 원격 어시스턴트 서비스에 대한 인터페이스로서 작용할 수 있다. 예를 들어, 어시스턴트 모듈(222)은, 도 1의 어시스턴트 모듈(122A) 및/또는 디지털 어시스턴트 서버(160)의 어시스턴트 모듈(122C)에 대한 인터페이스 또는 어플리케이션 프로그래밍 인터페이스(API)일 수 있다.
하나 이상의 어플리케이션 모듈(226)은 사용자에게 정보를 제공하고 및/또는 작업 또는 동작을 수행하기 위해 어시스턴트에 의해 액세스될 수 있는 컴퓨팅 디바이스(210)에서 실행되고 액세스가능한 모든 다양한 개별 어플리케이션 및 서비스를 나타낸다. 어플리케이션 모듈들(226)의 다수의 일례들이 존재할 수 있고 다음을 포함할 수 있는바, 예시로서 피트니스 어플리케이션, 캘린더 어플리케이션, 검색 어플리케이션, 맵 또는 네비게이션 어플리케이션, 여행 어플리케이션(예를 들어, 계획, 예약, 티켓팅 등), 소셜 미디어 어플리케이션, 게임 어플리케이션, 이메일 어플리케이션, 채팅 또는 메시징 어플리케이션, 인터넷 브라우저 어플리케이션, 레스토랑 예약 어플리케이션, 영화 티켓 어플리케이션 또는 컴퓨팅 디바이스(210)에서 실행될 수 있는 임의의 다른 어플리케이션을 포함할 수 있다. 컴퓨팅 디바이스(210)에서 실행되는 어시스턴트(가령, 어시스턴트 모듈 222)는 어플리케이션 모듈(226)로 하여금 어시스턴트와 관련된 복수의 동작들을 수행하기 위한 명령들을 실행하게 할 수 있다. 다시 말해, 어시스턴트는 어시스턴트를 대신하여 복수의 동작을 수행하기 위해 어플리케이션 모듈(226)에 의존할 수 있다.
개인 정보(예를 들어, 데이터 저장소 224에 저장된 정보)를 저장 및 사용하기 위해 사용자로부터 명시적 동의를 수신한 후, 콘텍스트 모듈(230)은 컴퓨팅 디바이스(210)와 관련된 콘텍스트 정보를 프로세싱 및 분석하여 컴퓨팅 디바이스(210)의 콘텍스트, 컴퓨팅 디바이스(210)의 사용자의 콘텍스트, 및/또는 어시스턴트 모듈(222)과 사용자 사이의 대화의 콘텍스트를 정의할 수 있다. 콘텍스트 모듈(230)은 개인 정보를 저장하거나 사용하기 전에 사용자의 실제 신원을 제거하도록 분석 및/또는 저장되는 정보를 암호화하거나 다르게 취급할 수 있다. 예를 들어, 프로세싱을 위해 원격 컴퓨팅 디바이스(예를 들어, 디지털 어시스턴트 서버 160)에 저장되거나 전송될 때 임의의 개인 식별 정보가 제거되도록 콘텍스트 모듈(230)에 의해 상기 정보가 처리될 수 있다. 콘텍스트 모듈(230)은 사용자가 그러한 정보의 사용 또는 수집에 긍정적으로 동의하는 경우 컴퓨팅 디바이스(210) 및/또는 컴퓨팅 디바이스(210)의 사용자와 관련된 정보만을 분석할 수 있다. 콘텍스트 모듈(230)은 사용자가 동의를 철회할 기회를 더 제공할 수 있고, 이 경우, 콘텍스트 모듈(230)은 컴퓨팅 디바이스(210) 또는 컴퓨팅 디바이스(210)의 사용자와 관련된 정보의 수집 또는 보유를 중단할 수 있다.
컴퓨팅 디바이스(210)의 콘텍스트는 다양한 위치들 및 시간들에서 컴퓨팅 디바이스(210) 및/또는 컴퓨팅 디바이스(210)의 사용자 그리고 상기 사용자의 물리적 및/또는 가상 환경과 관련된 하나 이상의 특성들을 지정할 수 있다. 예를 들어, 콘텍스트 모듈(230)은 컴퓨팅 디바이스(210)의 콘텍스트의 일부로서, 특정 시간으로부터의 컴퓨팅 디바이스(210)와 관련된 콘텍스트 정보에 기초하여, 상기 특정 시간에서 컴퓨팅 디바이스(210)와 관련된 물리적 위치를 결정할 수 있다. 콘텍스트 정보가 변화함에 따라(예를 들어, 시간에 따른 움직임을 나타내는 센서 정보에 기초하여), 콘텍스트 모듈(230)은 컴퓨팅 디바이스(210)의 결정된 콘텍스트에서 물리적 위치를 업데이트할 수 있다.
특정 위치 및/또는 시간에 대해 컴퓨팅 디바이스의 콘텍스트를 정의하는 정보의 유형은 나열하기에는 너무나 많다. 일부 예로서, 컴퓨팅 디바이스의 콘텍스트는 다양한 위치와 시간에서 음향 지문, 비디오 지문, 위치, 이동 궤적, 방향, 속도, 시설 이름, 거리 주소, 장소 유형, 건물, 기상 조건 및 교통 상황을 포함할 수 있다. 컴퓨팅 디바이스의 콘텍스트는 다양한 위치 및 시간과 관련된 회의 또는 이벤트를 정의하는 캘린더 정보, 다양한 위치 및 시간에서 시청한 웹 페이지 주소, 다양한 위치 및 시간에서 시청한 웹 페이지의 데이터 필드에서 작성된 텍스트 엔트리(예를 들어, 검색 또는 브라우징 히스토리), 그리고 다양한 위치 및 시간과 관련된 다른 어플리케이션 사용 데이터를 더 포함할 수 있다. 컴퓨팅 디바이스의 콘텍스트는 다양한 위치 및 시간에서 컴퓨팅 디바이스에 의해 액세스되거나 브로드 캐스트되고있는 오디오 및/또는 비디오 스트림에 대한 정보, 다양한 위치 및 시간에서 컴퓨팅 디바이스에 의해 액세스되거나 브로드 캐스트되고있는 텔레비전 또는 케이블/위성 방송에 대한 정보, 및 다양한 위치 및 시간에서 컴퓨팅 디바이스에 의해 액세스되는 다른 서비스들에 대한 정보를 더 포함할 수 있다.
콘텍스트 모듈(230)은 컴퓨팅 디바이스(210)의 콘텍스트를 어시스턴트 모듈(222)과 공유할 수 있고, 어시스턴트 모듈(222)은 공유된 콘텍스트를 이용하여 이벤트의 통지를 출력하는 것과 같은 동작을 수행할지 여부를 결정할 수 있다. 콘텍스트 모듈(230)은 사용자의 현재 상태 또는 콘텍스트를 특정하는 데이터를 어시스턴트 모듈(222)에 출력함으로써, 컴퓨팅 디바이스(210)와 연관된 현재 콘텍스트 또는 현재 상태에 대한 어시스턴트 모듈(222)로부터의 요청에 응답할 수 있다.
일부 예에서, 콘텍스트 모듈(230)은 어시스턴트 모듈(222)과 사용자 사이의 대화의 콘텍스트를 결정할 수 있다. 어시스턴트 모듈(222)과 사용자 사이의 대화의 콘텍스트는 어시스턴트 모듈(222)과 사용자 사이의 대화의 단어들 및 문구들과 관련된 하나 이상의 특징들일 수 있다. 어시스턴트 모듈(222)과 사용자 사이의 대화가 발생함에 따라, 콘텍스트 모듈(230)은 대화 중에 사용된 다양한 단어들 및 문구들을 분류하고 카테고리화하기 위해 대화를 추적할 수 있다. 대화로부터, 콘텍스트 모듈(230)은 대화 중에 사용된 다양한 단어들 및 문구들의 의미를 도출할 수 있고, 대화 중에 사용된 특정 단어들 또는 문구들을 분류 및/또는 카테고리화할 수 있다. 예를 들어, 콘텍스트 모듈(30)은 대화 중에 사용된 특정 단어들 또는 문구들을, 사람, 날짜 및 시간, 위치, 이벤트와 같은 개념들과 연관시킬 수 있다. 콘텍스트 모듈(230)은 대화와 관련된 콘텍스트 정보를 결정할 수 있고 이러한 콘텍스트 정보를 사용자 정보 데이터 저장소(224)와 같은 데이터 저장소에 저장할 수 있다.
콘텍스트 모듈(230)은 임의의 적절한 방식으로 콘텍스트 정보를 결정할 수 있다. 예를 들어, 콘텍스트 모듈(230)은 대화에 대한 의미론적 분석을 수행하여 다양한 단어 및 문구의 의미를 결정할 수 있다. 콘텍스트 모듈(230)은 또한 의미들을 대화의 특정 단어들 및/또는 문구들에 연관시킬 수 있고, 특정 단어들 및/또는 문구들과 특정 태그를 링크, 태깅 또는 다른 방식으로 연관시킬 수 있다. 본질적으로, 대화의 콘텍스트는 사용자 및/또는 어시스턴트 모듈(222)이 대화의 이전 부분을 다시 참조할 수 있게하고, 어시스턴트 모듈(222)이 대화의 이전 부분들에 대한 이러한 재참조를 정확하게 해석할 수 있게한다. 예를 들어, 대화에서 특정 지리적 위치(예컨대, 업체, 명소, 주소 등)가 언급되고, 나중에 대화에서 이전에 언급된 위치가 참조되는 경우, 어시스턴트 모듈(222)은 그러한 참조를 정확하게 해석할 수있다.
일부 일례에서, 어시스턴트 모듈(222)은 사용자와 대화의 일부로서 UIC(212)를 통해 사용자와 상호작용할 수 있다. 이러한 대화는 도 1의 대화(132)와 유사할 수 있다. 대화가 발생함에 따라, 콘텍스트 모듈(230)은 위해 대화를 분석하여 대화와 관련된 콘텍스트 정보를 결정할 수 있고, 이러한 콘텍스트 정보를 사용자 정보 데이터 저장소(224)에 저장할 수 있다. UIC(212)는 사용자와 어시스턴트 모듈(222) 사이의 대화의 적어도 일부인 사용자 입력에 대한 표시를 수신할 수 있다. 이러한 사용자 입력은 질의, 어시스턴트 모듈(222)이 특정 동작을 수행하도록 요청하는 것(예를 들어, 방향 조회, 레스토랑 예약, 영화 티켓 구매 등), 기타 등등일 수 있다.
질의를 수신함에 응답하여, 어시스턴트 모듈(222)은 질의에 응답하여 동작을 수행할지 또는 사용자와의 대화를 다른 컴퓨팅 디바이스(즉, 컴퓨팅 디바이스(210) 외부의 컴퓨팅 디바이스)로 핸드오프할지를 결정할 수 있다. 어시스턴트 모듈(222)은, 단독으로 또는 컴퓨팅 디바이스(210)에 액세스가능한 원격 어시스턴트 서비스(가령, 도 1에 도시된 디지털 어시스턴트 서버 160에서 실행되는 어시스턴트 모듈 122C) 와 협력하여, 질의에 응답하여 동작을 수행할지 또는 다른 컴퓨팅 디바이스로 사용자와의 대화를 핸드오프할지를 결정할 수 있다.
예를 들어, 어시스턴트 모듈(222)이 원격 어시스턴트 서비스와 협력하여 질의에 응답하여 동작을 수행할 것인지 또는 다른 컴퓨팅 디바이스로 사용자와의 대화를 핸드오프할 것인지의 여부를 결정하는 경우, 어시스턴트 모듈(222)은 사용자에 의해 수신된 질의의 표시를 통신 유닛(242)과 네트워크를 통해 원격 어시스턴트 서비스로 전송할 수 있다. 이에 응답하여, 어시스턴트 모듈은 통신 유닛(242)과 네트워크를 통해 원격 어시스턴트 서비스로부터, 질의에 대한 응답의 표시 또는 사용자와 어시스턴트 모듈(222) 사이의 대화가 원격 컴퓨팅 디바이스로 핸드오프될 것이라는 표시를 수신할 수 있다.
다른 예들에서, 어시스턴트 모듈(222)은 원격 어시스턴트 서비스를 사용함이 없이, 질의에 응답하여 동작을 수행할 것인지, 또는 사용자와의 대화를 원격 컴퓨팅 디바이스로 핸드오프할 것인지의 여부를 다양한 요인들에 기초하여 결정할 수 있다. 이러한 요인들의 일례는, 상기 요청, 요청에 응답하여 수행될 동작의 유형, 컴퓨팅 디바이스(210)의 능력, 사용자와 관련된 다른 컴퓨팅 디바이스의 능력, 사용자와 관련된 다른 컴퓨팅 디바이스들의 이용가능성, 사용자와 관련된 다른 컴퓨팅 디바이스들의 위치, 및/또는 컴퓨팅 디바이스(210)에 대한 이들의 근접성, 기타 등등 중 어느 하나 또는 임의의 조합을 포함할 수 있다.
어시스턴트 모듈(222)은 자신과 사용자 사이의 대화를 원격 컴퓨팅 디바이스로 핸드오프할지 여부를 결정하는 것의 일부로서, 사용자와 연관된 하나 이상의 그러한 원격 컴퓨팅 디바이스들의 능력을 결정할 수 있다. 일부 예에서, 어시스턴트 모듈(222)은 사용자 정보 데이터 저장소(224)에 저장된 정보에 기초하여 사용자와 연관된 원격 컴퓨팅 디바이스들의 능력을 결정할 수 있다. 사용자 정보 데이터 저장소(224)는 사용자와 관련된 원격 컴퓨팅 디바이스들 각각에 관한 정보를 저장할 수 있는바, 원격 컴퓨팅 디바이스의 기능적 능력, 원격 컴퓨팅 디바이스의 컴퓨팅 디바이스(210)에 대한 근접성, 원격 컴퓨팅 디바이스가 마지막으로 활성화된 시간, 원격 컴퓨팅 디바이스가 사용자에 의해 신뢰되는지 여부 등을 저장할 수 있지만 이에 제한되지는 않는다.
다른 예들에서, 어시스턴트 모듈(222)은 그러한 정보를 수신하기 위해 통신 유닛들(242)을 통해 원격 서버들(예를 들어, 클라우드)과 통신함으로써, 또는 가령, 통신 유닛들(242)을 통해 원격 컴퓨팅 디바이스들과 직접 통신함으로써, 사용자와 연관된 원격 컴퓨팅 디바이스들의 기능적 능력들을 결정할 수 있다. 예를 들어, 사용자와 연관된 원격 컴퓨팅 디바이스의 기능적 능력에 관한 정보가 원격 서버에 저장되어 있다면, 어시스턴트 모듈(222)은 그러한 정보를 원격 서버에 조회할 수 있다.
어시스턴트 모듈(222)은 또한 원격 컴퓨팅 디바이스와 기능적 능력을 질의하기 위해 원격 컴퓨팅 디바이스와 직접 통신할 수 있다. 또한, 어시스턴트 모듈(22)은 원격 컴퓨팅 디바이스와 직접 통신하여 이들 원격 컴퓨팅 디바이스의 다른 특징, 특성 또는 콘텍스트를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(222)은 블루투스 라디오 또는 임의의 다른 단거리 통신 유닛과 같은 통신 유닛(242)의 특징을 이용하여, 사용자와 연관된 원격 컴퓨팅 디바이스들 중 어느 것이 컴퓨팅 디바이스(210)에 근접한 것인지를 판단할 수 있다. 어시스턴트 모듈(222)은 단거리 신호를 브로드캐스트하기 위해 통신 유닛(242)을 이용할 수 있다. 통신 유닛(242)이 사용자와 연관된 원격 컴퓨팅 디바이스들 중 임의의 것으로부터 단거리 신호를 수신했다는 표시를 수신하면, 어시스턴트 모듈(222)은 이러한 원격 컴퓨팅 디바이스가 컴퓨팅 디바이스(210)에 근접하다고 결정할 수 있다.
전술한 다양한 요인들에 기초하여, 어시스턴트 모듈(222)은 자신과 사용자 사이의 대화를 다른 원격 컴퓨팅 디바이스로 핸드오프할 것인지를 결정할 수 있다. 요청에 응답하여 동작을 수행하기 위하여, 특정 원격 컴퓨팅 디바이스로 대화를 핸드오프해야만 한다라고 어시스턴트 모듈(222)이 결정하면, 어시스턴트 모듈(222)은 대화를 원격 컴퓨팅 디바이스로 핸드오프하기 위해 상기 원격 컴퓨팅 디바이스에 요청을 전송할 수 있다. 대화의 핸드오프를 수신하기 위한 확인(confirmation)을 어시스턴트 모듈(222)이 원격 컴퓨팅 디바이스로부터 수신하면, 어시스턴트 모듈(222)은 대화를 원격 컴퓨팅 디바이스로 핸드오프할 수 있다.
대화를 원격 컴퓨팅 디바이스로 핸드오프하기 위해, 어시스턴트 모듈(222)은 대화에 대한 표시를 전송할 수 있을 뿐만 아니라, 원격 컴퓨팅 디바이스에 의해 출력될 질의에 대한 응답의 표시를 전송할 수 있다. 대화에 대한 표시는 원격 컴퓨팅 디바이스에게 상기 대화를 식별시킬 수 있다. 예를 들어, 대화에 대한 표시는 원격 어시스턴트 시스템에 저장된 대화와 관련된 콘텍스트 정보와 관련된 대화 식별자를 포함할 수 있다. 원격 컴퓨팅 디바이스는 대화의 일부로서 수신하는 추가 질의에 대한 응답을 만들어 낼때, 상기 대화 식별자를 이용하여 대화와 관련된 이러한 콘텍스트 정보를 검색할 수 있다.
또한, 원격 컴퓨팅 디바이스로 전송되는 대화에 대한 표시는 대화의 부분적 또는 완전한 텍스트 전사(transcripts), 콘텍스트 모듈(230)에 의해 생성된 대화와 관련된 콘텍스트 정보, 요청의 표시, 요청에 응답하여 수행될 동작에 대한 표시, 등을 포함할 수 있다. 원격 컴퓨팅 디바이스는 대화와 관련된 이러한 콘텍스트 정보를 자체 데이터 저장소에 저장할 수 있고 그리고 대화의 일부로 수신되는 추가 질의들에 대한 응답을 만들어낼 때 이러한 콘텍스트 정보를 사용할 수 있다.
어시스턴트 모듈(222)은 원격 컴퓨팅 디바이스와 직접 또는 간접적으로 통신함으로써 원격 컴퓨팅 디바이스로 대화의 핸드오프를 수행할 수 있다. 일부 예에서, 어시스턴트 모듈(222)은 도 1의 디지털 어시스턴트 서버(160)와 유사한 원격 어시스턴트 시스템과 같은 하나 이상의 중개자들을 통해 대화의 핸드오프를 수행할 수 있다. 따라서 어시스턴트 모듈(222)은 대화를 핸드오프하는데 필요한 임의의 정보를 디지털 어시스턴트 서버로 전송할 수 있고, 그리고 디지털 어시스턴트 서버는 이와 같은 정보를 원격 컴퓨팅 디바이스로 전송할 수 있다. 다른 예들에서, 어시스턴트 모듈(222)은 임의의 적절한 직접 연결 기술을 통해 원격 컴퓨팅 디바이스와 직접 통신함으로써 대화의 핸드오프를 수행할 수 있다. 그러므로, 어시스턴트 모듈(222)은 대화를 핸드오프하는데 필요한 임의의 정보를 원격 컴퓨팅 디바이스로 직접 전송할 수 있다.
일부 예에서, 어시스턴트 모듈(222)은 원격 컴퓨팅 디바이스로부터의 대화의 핸드오프를 수신하기 위한 요청의 수신자가 될 수 있다. 핸드오프를 수신하는 것의 일부로서, 어시스턴트 모듈은 원격 컴퓨팅 디바이스로부터 대화에 대한 표시를 수신할 수 있다. 대화의 이러한 표시는 대화와 관련된 콘텍스트 정보의 표시를 포함할 수 있다. 대화의 이러한 표시는 또한 대화의 일부로서 원격 컴퓨팅 디바이스에 의해 수신된 요청에 응답하여 수행될 동작의 표시를 포함할 수 있다.
어시스턴트 모듈(222)은 이러한 수신된 정보를 사용자 정보 데이터 저장소(224)에 저장할 수 있다. 어시스턴트 모듈(222)은 또한 요청에 응답하도록 지시된 동작을 수행할 수 있다. 어시스턴트 모듈(222)은 다양한 방식으로 동작을 수행할 수 있다. 수행될 동작이 레스토랑 예약을 하는 것이라면, 어시스턴트 모듈(222)은 레스토랑 예약 어플리케이션(예를 들어, 어플리케이션 모듈들(226) 중 하나 또는 컴퓨팅 디바이스(210) 외부의 컴퓨팅 디바이스의 어플리케이션)과 통신하여 요청된 레스토랑 예약을 수행할 수 있다. 어시스턴트 모듈(222)에 의해 수행될 동작이 특정 위치로 가는 방향들을 출력하는 것이라면, 어시스턴트 모듈(222)은 출력 컴포넌트(202)로 하여금 상기 위치로 가는 방향들을 표시하게 할 수 있다.
일부 예들에서, 어시스턴트 모듈(222)은, 수행될 동작에 대한 표시를 수신함에 상관없이 또는 특정 동작을 수행하라는 명령을 수신함에 상관없이, 요청에 응답하기 위해 수행될 동작을 결정할 수 있다. 다시 말해, 어시스턴트 모듈(222)은 요청의 표시를 수신할 수 있고 그리고 요청에 응답하기 위해 어떤 동작을 수행할지를 결정할 수 있다. 어시스턴트 모듈(222)은 요청을 분석하여 요청의 의도된 의미를 결정할 수 있으며, 그리고 요청에 응답하기 위해 수행할 동작을 결정할 수 있다.
지시된 동작을 수행하는 것에 부가하여, 어시스턴트 모듈(222)은 원격 컴퓨팅 디바이스로부터 어시스턴트 모듈(222)로 핸드오프된 대화를 계속할 수 있다. 따라서, 어시스턴트 모듈(222)은 사용자와 상호작용을 계속하여 사용자 입력을 수신할 수 있으며 그리고 핸드오프된 대화의 전부 또는 일부로서 하나 이상의 동작을 수행함으로써 이러한 사용자 입력에 응답할 수 있다. 어시스턴트 모듈(222)은 원격 컴퓨팅 디바이스로부터 수신되고 사용자 정보 데이터 저장소(224)에 저장된 콘텍스트 정보에 기초하여, 수신된 사용자 입력을 해석할 수 있다. 따라서, 사용자 입력이 원격 컴퓨팅 디바이스에서 발생했던 대화의 이전 부분을 다시 참조하는 경우, 어시스턴트 모듈(222)은 사용자 정보 데이터 저장소(224)에 저장된 콘텍스트 정보를 이용하여 이러한 사용자 입력을 적절히 해석할 수 있다. 또한, 컨텍스트 모듈(230)은 어시스턴트 모듈(222)과 사용자 간의 대화를 계속 추적하고 분석하여 사용자와 관련된 추가 컨텍스트 정보를 생성할 수 있고, 이러한 컨텍스트 정보를 사용자 정보 데이터 저장소(224)에 저장할 수 있다.
도 3은 본 개시의 하나 이상의 양상에 따라 예시적인 가상 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 시스템을 도시하는 블록도이다. 도 3의 디지털 어시스턴트 서버(360)는 도 1의 디지털 어시스턴트 서버(160)의 예로서 이하에서 설명된다. 도 3은 디지털 어시스턴트 서버(360)의 하나의 특정 일례만을 도시하지만 많은 다른 일례들이 다른 경우들에서 사용될 수 있으며, 이러한 다른 일례들은 예시적인 디지털 어시스턴트 서버(360)에 포함된 컴포넌트들의 서브세트를 포함하거나 도 3에 도시되지 않은 추가 컴포넌트들을 포함할 수도 있다. 예를 들어, 디지털 어시스턴트 서버(360)는 서버들의 클러스터를 포함할 수 있고, 디지털 어시스턴트 서버(360)를 구성하는 서버 클러스터의 각각의 서버는 본 발명의 기술들을 수행하도록 도 3에 도시된 컴포넌트들의 전부 또는 일부를 포함할 수 있다.
도 3에 도시된 바와 같이, 디지털 어시스턴트 서버(360)는 하나 이상의 프로세서(340), 하나 이상의 통신 유닛(342) 및 하나 이상의 저장 디바이스(348)를 포함한다. 저장 디바이스(348)는 어시스턴트 모듈(322), 사용자 정보 데이터 저장소(324), 제3자 모듈(326) 및 콘텍스트 모듈(328)을 포함한다.
프로세서(340)는 도 2의 컴퓨팅 디바이스(210)의 프로세서(240)와 유사하다. 통신 유닛(342)은 도 2의 컴퓨팅 디바이스(210)의 통신 디바이스(242)와 유사하다. 저장 디바이스(348)는 도 2의 컴퓨팅 디바이스(210)의 저장 디바이스(248)와 유사하다. 통신 채널(350)은 도 2의 컴퓨팅 디바이스(210)의 통신 채널(250)과 유사하며, 따라서 컴포넌트 간 통신을 위해 컴포넌트(340, 342 및 348) 각각을 상호 연결할 수 있다. 일부 예들에서, 통신 채널들(350)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조, 또는 데이터를 통신하기 위한 임의의 다른 방법을 포함할 수 있다.
일부 예들에서, 저장 디바이스(348)는 일시적 메모리이며, 이는 저장 디바이스(348)의 주요 목적이 장기 저장이 아님을 의미한다. 저장 디바이스(348)는 휘발성 메모리로서 정보의 단기 저장을 위해 구성될 수 있고, 따라서 전원이 꺼지면 저장된 컨텐츠를 유지하지 않을 수 있다. 휘발성 메모리의 예는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 및 당 업계에 공지된 다른 형태의 휘발성 메모리를 포함한다.
일부 예에서, 저장 디바이스(348)는 또한 하나 이상의 컴퓨터 판독가능 저장 매체를 포함한다. 일부 예에서 저장 디바이스(348)는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 저장 디바이스(348)은 휘발성 메모리에 의해 전형적으로 저장된 것보다 더 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 디바이스(348)은 또한 비휘발성 메모리 공간으로서 정보를 장기간 저장하고 전원의 온/오프 사이클 후에도 정보를 유지하도록 구성될 수 있다. 비 휘발성 메모리의 예는 자기 하드 디스크, 광 디스크, 플로피 디스크, 플래시 메모리, 또는 전기적으로 프로그램가능한 메모리(EPROM) 또는 전기적으로 소거 및 프로그램가능한 메모리(EEPROM) 메모리의 형태를 포함한다. 저장 디바이스(348)는 모듈들(322, 326, 328) 및 사용자 정보 데이터 저장소(324)와 관련된 프로그램 명령 및/또는 정보(예를 들어, 데이터)를 저장할 수 있다. 저장 디바이스(348)는 모듈들(322, 326, 328) 및 사용자 정보 데이터 저장소(324)와 관련된 데이터 또는 다른 정보를 저장하도록 구성된 메모리를 포함할 수 있다.
사용자 정보 데이터 저장소(324)는 도 2의 사용자 정보 데이터 저장소(224)와 유사하고, 도 1의 사용자 정보 데이터 저장소(124C)의 예시일 수 있다. 사용자 정보 데이터 저장소(324)는 어시스턴트 모듈(322)에 의해 제공된 어시스턴트와 사용자 간의 대화 동안 컴퓨팅 디바이스의 사용자에 대하여 어시스턴트 모듈(322)이 학습한, 사용자와 연관된 정보를 저장하도록 구성될 수 있다. 또한, 사용자 정보 데이터 저장소(324)는 컨텍스트 모듈(328)에 의해 수집된 바와 같은 사용자와 어시스턴트 모듈(322) 및/또는 다른 컴퓨팅 디바이스의 어시스턴트 모듈들(예를 들어, 컴퓨팅 디바이스 110A에서 실행되는 어시스턴트 모듈 122A 또는 컴퓨팅 디바이스 110B에서 실행되는 어시스턴트 모듈 122B) 사이의 대화에 관한 정보를 저장할 수 있다. 어시스턴트 모듈(322)은 사용자 정보 데이터 저장소(324)에 저장된 정보에 의존하여, 대화 동안에 사용된 단어들 및 문구들의 문맥적 의미들을 결정하고, 질의들을 해석하고 그리고 질의에 대한 관련 응답을 생성할 수 있다. 특히, 대화가 제 1 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110A)로부터 제 2 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스 110B)로 대화가 핸드오프된 이후, 어시스턴트 모듈(322)은 사용자 정보 데이터 저장소(324)에 저장된 대화와 관련된 정보를 활용하여, 컴퓨팅 디바이스(110B)에 의해 수신된 질의들의 단어들, 문구들, 의도들 등을 핸드오프 이전에 발생한 대화의 일부분들의 사람, 장소, 사물, 위치, 이벤트, 날짜 및 시간 등과 같은 개념들과 연결시킬 수 있다.
어시스턴트 모듈(322)은 도 1의 어시스턴트 모듈(122C) 및 도 2의 컴퓨팅 디바이스(210)의 어시스턴트 모듈(222)의 일부 또는 모든 기능을 포함할 수 있다. 어시스턴트 모듈(322)은 네트워크(130)와 같은 네트워크를 통해 액세스 가능한 어시스턴트 서비스를 제공하기 위하여 어시스턴트 모듈(122C 및 222)과 유사한 동작을 수행할 수 있다. 즉, 어시스턴트 모듈(322)은 네트워크를 통해 디지털 어시스턴트 서버(360)와 통신하는 컴퓨팅 디바이스에 액세스가능한 원격 어시스턴트 서비스에 대한 인터페이스로서 작용할 수 있다. 예를 들어, 어시스턴트 모듈(322)은 도 1의 디지털 어시스턴트 서버(160)의 어시스턴트 모듈(122C)에 대한 인터페이스 또는 API일 수 있다.
동작시에, 어시스턴트 모듈(322)은 컴퓨팅 디바이스들의 어시스턴트 모듈들(예를 들어,도 1의 컴퓨팅 디바이스들(110A 및 110B)의 어시스턴트 모듈들(122A 및 122B))과 연계하여 작동하여, 이들 어시스턴트 모듈들이 사용자들과 대화를 수행할 때 질의에 대한 응답을 생성하고 대화들을 핸드오프할지를 결정하도록 이들 어시스턴트 모듈들을 도울 수 있으며, 그리고 어시스턴트 모듈들(122A 및 122B) 사이의 대화들을 핸드오프하는 것을 도울 수 있다. 어시스턴트 모듈(322)은 질의에 대한 응답을 만들어 내기 위해 질의를 분석함에 있어서 어시스턴트 모듈들(122A 및 122B)을 보조할 수 있다. 예를 들어, 어시스턴트 모듈(322)은 어시스턴트 모듈들(122A 및 122B)에 의해 수신된 음성 입력의 표시를 수신할 수 있고, 이러한 음성 입력에 대한 음성 인식을 수행할 수 있다. 다른 예에서, 어시스턴트 모듈(322)은 이들 어시스턴트 모듈들(122A 및 122B)에 의해 수신된 입력을 하나의 언어에서 다른 언어로 번역할 수 있다. 일반적으로, 디지털 어시스턴트 서버(360)는 서버 디바이스 또는 클라우드와 같은 서버 디바이스들의 클러스터 상에서 실행되기 때문에, 어시스턴트 모듈(322)이 음성 인식 및 번역과 같은 프로세싱 집중형 작업를 수행함으로써, 컴퓨팅 디바이스들의 어시스턴트 모듈들을 보조할 수 있다.
어시스턴트 모듈(322)은 사용자와 원격 컴퓨팅 디바이스에서 실행되는 어시스턴트 모듈 사이의 대화를 모니터링할 수 있다. 예를 들어, 어시스턴트 모듈(322)은 원격 컴퓨팅 디바이스에서 실행되는 어시스턴트 모듈에 의해 사용자로부터 수신된 질의의 표시 뿐만 아니라 질의에 대한 응답을 수신할 수 있다. 일부 예들에서, 어시스턴트 모듈(322)은 사용자와 원격 디바이스에서 실행되는 어시스턴트 모듈 사이의 대화에 참여할 수 있다. 어시스턴트 모듈(322)은 원격 컴퓨팅 디바이스에서 실행되는 어시스턴트 모듈에 의해 수신된 질의들에 대한 표시를 수신할 수 있다. 이에 응답하여, 어시스턴트 모듈(322)은 질의에 대한 응답을 결정할 수 있으며, 생성된 응답의 표시를 원격 디바이스에서 실행되는 어시스턴트 모듈에 전송할 수 있다.
개인 정보(예를 들어, 사용자 정보 데이터 저장소(324)에 저장되는 정보)를 저장하고 사용하기 위해 사용자로부터 명시적인 동의를 수신한 후, 콘텍스트 모듈(328)은 어시스턴트 모듈(322)에 의해 모니터링되는 대화 및/또는 어시스턴트 모듈(322)이 참여하는 대화와 관련된 콘텍스트 정보를 수집, 도출 또는 달리 결정하여 질의에 대한 응답을 생성할 수 있다. 콘텍스트 모듈(328)은 또한 어시스턴트 모듈(322)과 함께 작동하여 질의에 대한 응답을 생성하는 원격 컴퓨팅 디바이스와 관련된 콘텍스트 정보를 수집할 수 있다. 콘텍스트 모듈(328)은 이러한 정보를 저장하거나 사용하기 전에 사용자의 실제 신원을 노출시킬 수 있는 개인 정보 또는 임의의 다른 정보를 제거하기 위해 정보를 암호화하거나 달리 취급할 수 있다. 예를 들어, 상기 정보는 사용자 정보 데이터 저장소(324)에 저장될 때 임의의 개인 식별 정보가 제거되도록 콘텍스트 모듈(328)에 의해 처리될 수 있다. 콘텍스트 모듈(328)은 사용자가 그러한 정보의 사용 또는 수집에 긍정적으로 동의하는 경우에만 정보를 수집 또는 보유할 수 있다. 콘텍스트 모듈(328)은 사용자가 동의를 철회할 기회를 더 제공할 수 있으며, 이 경우 콘텍스트 모듈(328)은 그러한 정보의 수집 또는 유지를 중단할 수 있다.
원격 컴퓨팅 디바이스에서 실행되는 어시스턴트 모듈과 사용자 간의 대화 및/또는 어시스턴트 모듈(322)이 응답을 생성하기 위해 참여하는 대화와 관련된 콘텍스트 정보는 대화의 단어들 및 문구들과 관련된 가령, 사람, 장소, 사물, 위치, 이벤트, 날짜 및 시간 등을 포함하지만 이에 제한되지 않는 하나 이상의 특징들 또는 개념들을 포함할 수 있다.
대화가 발생함에 따라, 콘텍스트 모듈(328)은 대화 중에 사용된 다양한 단어들 및 문구들을 분류하고 카테고리화하기 위해 대화를 추적할 수 있다. 대화로부터, 콘텍스트 모듈(328)은 대화 중에 사용된 다양한 단어들 및 문구들의 의미를 도출할 수 있고, 대화 중에 사용된 특정 단어들 또는 문구들을 분류 및/또는 카테고리화할 수 있다. 콘텍스트 모듈(328)은 대화 중에 사용된 특정 단어들 또는 문구들을, 사람, 날짜 및 시간, 위치, 이벤트와 같은 개념들과 연관시킬 수 있다. 콘텍스트 모듈(328)은 대화와 관련된 콘텍스트 정보를 결정할 수 있고 이러한 콘텍스트 정보를 사용자 정보 데이터 저장소(324)와 같은 데이터 저장소에 저장할 수 있다. 예를 들어, 대화가 레스토랑 예약을 참조한다면, 콘텍스트 모듈(328)은 레스토랑, 레스토랑의 위치, 예약 날짜 및 시간 등과 같은 정보를 수집할 수 있고, 수집된 정보 각각을 장소, 날짜, 시간, 위치, 이벤트, 등과 같은 개념과 연관시킬 수 있다. 콘텍스트 모듈(328)은 다양한 개념들과 대화의 단어들 또는 문구들과의 연관성을 사용자 정보 데이터 저장소(324)에 저장할 수 있다.
콘텍스트 모듈(328)은 임의의 적절한 방식으로 콘텍스트 정보를 결정할 수 있다. 예를 들어, 콘텍스트 모듈(328)은 대화에 대한 의미론적 분석을 수행하여 다양한 단어들 및 문구들의 의미를 결정할 수 있다. 콘텍스트 모듈(328)은 또한 대화의 특정 단어 및/또는 문구에 의미를 연관시킬 수 있고, 특정 단어 및/또는 문구를 특정 태그와 태깅, 링크 또는 다른 방식으로 연관시키고 이러한 연관을 사용자 정보 데이터 저장소(324)에 저장할 수 있다. 본질적으로, 대화의 콘텍스트는 사용자 및/또는 어시스턴트 모듈들(예컨대, 어시스트 모듈 322)이 대화의 이전 부분을 다시 참조할 수 있게하고, 어시스턴트 모듈들이 대화의 이전 부분들에 대한 이러한 재참조를 정확하게 해석할 수 있게한다. 예를 들어, 대화에서 특정 지리적 위치(예컨대, 업체, 명소, 주소 등)가 언급되고, "거기로 가는 방향들을 나한테 줘" 와 같은 질의처럼, 나중의 대화에서 이전에 언급된 위치가 참조되는 경우, 어시스턴트 모듈(322)은 이전에 언급된 위치를 지칭하는 것으로서, 그러한 참조를 정확하게 해석할 수 있다.
일부 예들에서, 어시스턴트 모듈(322)은 원격 컴퓨팅 디바이스에서 실행되는 어시스턴트 모듈에 의해 수신된 질의에 대한 응답을 결정할 수 있고, 또한 제 1 원격 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 모듈과 사용자 사이의 대화를 제 2 원격 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트 모듈로 핸드오프할지 여부를 결정할 수 있다. 어시스턴트 모듈(322)은 본 출원 전반에 걸쳐 논의된 다양한 요인들에 기초하여 대화를 핸드오프할지 여부를 결정할 수 있다. 이러한 인자의 예는 요청, 요청에 응답하여 수행할 동작의 유형, 질의를 수신한 컴퓨팅 디바이스의 능력, 질의를 수신한 컴퓨팅 디바이스 이외의, 사용자와 관련된 컴퓨팅 디바이스의 능력, 사용자와 관련된 다른 컴퓨팅 디바이스의 이용가능성, 사용자와 관련된 다른 컴퓨팅 디바이스의 위치, 및/또는 질의를 수신한 컴퓨팅 디바이스에 대한 이들의 근접성, 기타 등등 중 어느 하나 또는 임의의 조합을 포함할 수 있다.
어시스턴트 모듈(322)은 대화를 핸드오프할지 여부를 결정하는 것의 일부로서, 사용자와 연관된 하나 이상의 원격 컴퓨팅 디바이스의 능력을 결정할 수 있다. 일부 예에서, 어시스턴트 모듈(322)은 사용자 정보 데이터 저장소(324)에 저장된 정보에 기초하여 사용자와 연관된 원격 컴퓨팅 디바이스의 능력을 결정할 수 있다. 사용자 정보 데이터 저장소(324)는 사용자와 관련된 원격 컴퓨팅 디바이스들 각각에 관한 정보를 저장할 수 있는바, 원격 컴퓨팅 디바이스의 기능적 능력, 질의를 수신한 컴퓨팅 디바이스에 대한 원격 컴퓨팅 디바이스의 근접성, 원격 컴퓨팅 디바이스가 마지막으로 활성화된 시간, 원격 컴퓨팅 디바이스가 사용자에 의해 신뢰되는지 여부, 기타 등등을 저장할 수 있지만, 이에 한정되는 것은 아니다.
다른 예에서, 어시스턴트 모듈(322)은 이러한 정보를 수신하도록 통신 유닛(342)을 통해 원격 서버(예를 들어, 클라우드)와 통신함으로써 또는 가령, 통신 유닛(342)을 통해 원격 컴퓨팅 디바이스들과 직접 통신함으로써, 사용자와 관련된 원격 컴퓨팅 디바이스들의 기능적 능력을 결정할 수 있다. 예를 들어, 사용자와 연관된 원격 컴퓨팅 디바이스들의 기능적 능력에 관한 정보가 원격 서버들에 저장되어 있다면, 어시스턴트 모듈(322)은 그러한 정보를 원격 서버들에 조회할 수 있다.
일부 예들에서, 어시스턴트 모듈(322)은 제3자 어플리케이션(예를 들어, 도 1에 도시된 제3자 어플리케이션 172)과 협력하여 대화를 핸드오프할지 여부를 결정할 수 있다. 디지털 어시스턴트 서버(360)의 제3자 모듈(326)은 디지털 어시스턴트 서버(360)를 대신하여 제3자 어플리케이션과 상호작용할 수 있다. 즉, 제3자 모듈(326)은 어시스턴트 모듈(322)을 대신하여 제3자 어플리케이션과 상호작용할 수 있다. 제3자 모듈(326)은 제3자 어플리케이션에 의해 액세스가능한 API 또는 인터페이스를 구현할 수 있으며, 따라서 어시스턴트 모듈(322)은 제3자 어플리케이션(172)을 활용하여, 질의에 대한 응답을 결정하는 것의 일부로서 및 대화를 핸드오프할지를 결정하는 것의 일부로서 작업를 수행할 수 있다.
일부 예들에서, 어시스턴트 모듈(332)은 제3자 모듈(326)을 통해, 제3자 어플리케이션으로부터 질의에 대한 응답의 표시, 대화를 핸드오프하라는 표시 및/또는 핸드오프를 수신할 컴퓨팅 디바이스의 표시를 수신할 수 있다. 이에 응답하여, 어시스턴트 모듈(332)은 상기 응답의 표시에 적어도 일부 기초하여 질의에 대한 응답을 결정할 수 있고, 대화를 핸드오프하라는 표시에 적어도 일부 기초하여 대화를 핸드오프할지의 여부를 결정할 수 있고, 및/또는 핸드오프를 수신할 컴퓨팅 디바이스의 표시에 적어도 일부 기초하여 핸드오프를 수신할 컴퓨팅 디바이스를 결정할 수 있다.
또한, 어시스턴트 모듈(322)은 하나의 컴퓨팅 디바이스로부터 다른 하나의 컴퓨팅 디바이스로(예를 들어, 도 1의 컴퓨팅 디바이스 110A로부터 컴퓨팅 디바이스 110B로) 대화를 핸드오프하는 것을 보조할 수 있다. 예를 들면, 어시스턴트 모듈(322)은 특정 사용자들과 연관된 컴퓨팅 디바이스들에 관한 정보를 사용자 정보 데이터 저장소(324)에 저장할 수 있다. 사용자와 관련된 컴퓨팅 디바이스에 관한 정보에 대한 요청을 수신함에 응답하여, 어시스턴트 모듈(322)은 이러한 정보에 대해 사용자 정보 데이터 저장소(324)에 액세스할 수 있으며, 그리고 사용자와 연관된 컴퓨팅 디바이스에 관한 정보를 반환할 수 있다.
전술한 다양한 요인들에 기초하여, 어시스턴트 모듈(322)은 다른 원격 컴퓨팅 디바이스로 대화를 핸드오프할지의 여부를 결정할 수 있으며, 대화의 핸드오프를 수신할 원격 컴퓨팅 디바이스를 선택할 수 있다. 일부 예들에서, 어시스턴트 모듈(322)은 대화를 핸드오프하는 프로세스에 관여하지 않을 수 있다. 이 경우, 어시스턴트 모듈(322)은 질의를 수신한 원격 컴퓨팅 디바이스에게, 다른 원격 컴퓨팅 디바이스로 대화를 핸드오프할 것이라는 표시를 전송할 수 있다. 이러한 표시는 핸드오프를 수신할 원격 컴퓨팅 디바이스에 대한 표시, 질의에 대한 응답의 표시, 등을 포함할 수 있다.
일부 예들에서, 어시스턴트 모듈(322)은 원격 컴퓨팅 디바이스로 대화의 핸드오프를 수행할 수 있다. 대화를 원격 컴퓨팅 디바이스로 핸드오프하기 위해, 어시스턴트 모듈(322)은 대화의 핸드오프를 수신하라는 요청을 원격 컴퓨팅 디바이스에 전송할 수 있다. 이러한 요청은 대화에 대한 표시, 원격 컴퓨팅 디바이스에 의해 출력될 질의에 대한 응답의 표시 등을 포함할 수 있다. 대화에 대한 표시는 원격 컴퓨팅 디바이스에 대한 대화를 식별할 수 있다. 예를 들어, 대화에 대한 표시는 사용자 정보 데이터 저장소(324)에 저장된 대화와 관련된 콘텍스트 정보와 관련된 대화 식별자를 포함할 수 있다. 원격 컴퓨팅 디바이스는, 대화의 일부로서 수신하는 추가 질의에 대한 응답을 만들어 낼때, 상기 대화 식별자를 활용하여 대화와 관련된 정보를 사용자 정보 데이터 저장소(324)로부터 검색할 수 있다.
도 4는 본 개시의 하나 이상의 양상에 따라 하나 이상의 예시적인 가상 어시스턴트를 실행하는 하나 이상의 프로세서에 의해 수행되는 예시적인 동작을 도시하는 흐름도이다. 도 4에 도시된 바와 같이, 동작들(404-410)은 도 1에 도시된 컴퓨팅 디바이스(110A)와 관련하여 아래에서 설명되고, 동작들(412-414 및 430)은 도 1에 도시된 디지털 어시스턴트 서버(160)와 관련하여 아래에 설명되고, 그리고 동작들(416-428)은 도 1에 도시된 컴퓨팅 디바이스(110B)와 관련하여 아래에서 설명된다.
예를 들어, 도 1에 도시된 어시스턴트 모듈(122A)은 본 개시의 하나 이상의 양상에 따라 동작 400-406을 수행하기 위해 컴퓨팅 디바이스(110A)의 하나 이상의 프로세서에서 실행될 수 있다. 도 1에 도시된 어시스턴트 모듈(122B)은 본 개시의 하나 이상의 양상들에 따라 동작들(416-428)을 수행하기 위해 컴퓨팅 디바이스(110B)의 하나 이상의 프로세서들에서 실행될 수 있다. 도 1에 도시된 어시스턴트 모듈(122C)은 본 개시의 하나 이상의 양상들에 따라 동작들(412, 414 및 430)을 수행하기 위해 디지털 어시스턴트 서버(160)의 하나 이상의 프로세서들에서 실행될 수 있다.
동작시에, 컴퓨팅 디바이스(110A)는 개인 정보를 사용 및 저장하기 전에 이러한 개인 정보를 사용 및 저장하기 위한 동의를 사용자로부터 수신할 수 있다(404). 예를 들어, 잠재적인 개인 정보를 식별하는 것에 응답하여, 어시스턴트 모듈(122A)은 UI 모듈(120A)로 하여금 어시스턴트 모듈(122A)과 사용자와의 상호작용 동안 획득된 개인 정보를 저장 및 사용하기 위한 허가를 사용자에게 요청하게 할 수 있다. 다음을 유의해야 하는바, 컴퓨팅 디바이스(110A)는 어시스턴트 모듈(122A)이 개인 정보를 이용하거나 저장하기를 원할 때마다 사용자가 동의할 것을 요구하지 않을 수도 있다. 예를 들어, 컴퓨팅 디바이스(110A)가 1 년에 한 번, 하루에 한 번, 또는 심지어 단 한 번만(예를 들어, 초기 제품 구매 후, 초기 설정 중 등) 동의를 수신하는 경우, 컴퓨팅 디바이스(110A)는 이러한 사전 동의를 미래에 개인 정보를 사용하고 저장하기 위한 동의로 취급할 수 있다. 사용자가 동의를 제공할 수 있는 방법의 일례로서, 사용자는 UIC(112A)에 의해 검출되는 "나에 관한 정보를 저장해도 괜찮다"라는 음성 입력을 제공할 수 있고, 이러한 음성 입력에 응답하여 어시스턴트 모듈(122A)은 데이터 저장소(124A)에 사용자에 대한 개인 기록들을 보관하기 시작할 수 있다. 사용자는 언제든지 이전에 제공된 권한을 명시적 또는 암시적으로 취소할 수 있음을 이해해야 한다.
컴퓨팅 디바이스(110A)는 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이의 대화의 적어도 일부를 형성하는 질의의 사용자 입력의 표시를 수신할 수 있다(406). 컴퓨팅 디바이스(110A)는 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)로부터 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다(408). 대화를 다른 컴퓨팅 디바이스로 핸드오프함으로써, 대화의 핸드오프를 수신한 컴퓨팅 디바이스는 컴퓨팅 디바이스(110A) 대신에 질의에 대한 응답을 출력할 수 있다.
일부 일례에서, 상기 질의가 다른 컴퓨팅 디바이스로 대화를 핸드오프하라는 명시적 명령을 포함하는 경우, 어시스턴트 모듈(122)은 명시적 명령에 따라, 질의에 의해 지정된 컴퓨팅 디바이스로 대화를 핸드오프할 수 있다. 다른 예들에서, 어시스턴트 모듈(122A)은 질의에 대한 응답을 결정할 수 있으며, 그리고 상기 질의에 대한 응답에 적어도 부분적으로 기초하여 대화를 다른 컴퓨팅 디바이스로 핸드오프할지 여부를 결정할 수 있다.
대화를 다른 컴퓨팅 디바이스로 핸드오프할지 여부를 결정하는 것은 질의에 대한 응답에 적어도 부분적으로 기초할 수 있으며, 보다 구체적으로는, 응답이 제시되는 형태를 결정하는 것일 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 응답이 청각적으로 출력되는지(예를 들어, 음성 출력으로), 시각적으로 출력되는지(예를 들어, 이미지 또는 비디오로), 대화형 GUI로서 출력되는지(예를 들어, 방향들의 대화형 맵으로 출력됨), 기타 등들을 결정할 수 있다. 만일, 컴퓨팅 디바이스(110A)가 결정된 형태로 응답을 제시할 수 없거나, 또는 컴퓨팅 디바이스(110A)가 결정된 형태로 응답을 제시하도록 최적화되지 않은 경우, 어시스턴트 모듈(122A)은, 결정된 형태로 응답을 제시할 수 있거나 및/또는 결정된 형태로 응답을 제시하도록 최적화된 다른 컴퓨팅 디바이스들과 사용자가 연관되어 있는지 여부를 결정할 수 있다.
결정된 형태로 응답을 제시할 수 있거나 및/또는 결정된 형태로 응답을 제시하도록 최적화된 다른 컴퓨팅 디바이스들과 사용자가 연관되어 있는지 여부를 결정하기 위하여, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)가 아닌 사용자와 연관된 컴퓨팅 디바이스들을 결정할 수 있을 뿐만 아니라, 대화의 핸드오프를 수신할 수 있는 사용자와 관련된 컴퓨팅 디바이스를 결정할 수 있다. 어시스턴트 모듈(122A)은 대화의 핸드오프를 수신할 수 있는 사용자와 관련된 컴퓨팅 디바이스들 중에서, 결정된 형태로 응답을 제시할 수 있는 능력을 갖는 하나 이상의 컴퓨팅 디바이스를 결정할 수 있다.
만일, 어시스턴트 모듈(122A)이 사용자와 연관된 다른 컴퓨팅 디바이스가 대화의 핸드오프를 수신할 수 있고, 그리고 결정된 형태로 응답을 제시할 수 있는 능력이 있다라고 판단하면, 어시스턴트 모듈(122A)은 대화가 상기 다른 컴퓨팅 디바이스로 핸드오프되어야 한다고 결정할 수 있다. 다시 말해, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)와 다른 컴퓨팅 디바이스 사이의 기능적 능력들의 차이에 적어도 부분적으로 기초하여 대화를 핸드오프할지 여부를 결정할 수 있다.
예를 들어, 어시스턴트 모듈(122A)이 질의에 대한 응답이 시각적으로 출력되어야한다고 결정하면, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)가 디스플레이 디바이스에 동작가능하게 연결되어 있는지의 여부를 결정할 수 있다. 컴퓨팅 디바이스(110A)가 디스플레이 디바이스에 동작가능하게 연결되어 있지 않으면, 어시스턴트 모듈(122A)은 사용자와 관련된 다른 컴퓨팅 디바이스가 디스플레이 디바이스에 동작가능하게 연결되어 있는지 여부를 결정할 수 있다. 사용자와 연관된 다른 컴퓨팅 디바이스가 디스플레이 디바이스에 동작가능하게 연결되어 있다면, 어시스턴트 모듈(122A)은 사용자와 연관된 상기 다른 컴퓨팅 디바이스로 대화가 핸드오프되어야 한다고 결정할 수 있다.
일부 예들에서, 어시스턴트 모듈(122A)은 질의에 대한 응답을 결정하기 위해 제3자 서버 시스템(170)에서 실행되는 제3자 어플리케이션(172)과 통신하거나 이용함으로써 질의에 대한 응답을 결정할 수 있다. 제3자 어플리케이션(172)은 질의에 대한 응답을 결정하기 위해, 티켓 구매 서비스, 탑승장 서비스 등과 같은 제3자 서비스에 액세스할 수 있는 어플리케이션들일 수 있다. 어시스턴트 모듈(122A)은 어시스턴트 모듈(122A)과 상호작용하기 위해 제3자 어플리케이션(172)이 액세스할 수 있는 API를 제공할 수 있다.
일부 예에서, 어시스턴트 모듈(122A)과 관련하여 질의에 대한 응답을 결정하기 위해 제3자 어플리케이션(172)이 실행함에 따라, 제3자 어플리케이션(172)은 제 1 컴퓨팅에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부에 대한 표시를 전송할 수 있다. 예를 들어, 질의가 어시스턴트 모듈(122A)이 콘서트 티켓을 구매하라는 요청 인 경우, 어시스턴트 모듈(122A)은 제3자 어플리케이션(172)이 콘서트 티켓을 구매하기 위해 티켓 구매 서비스에 액세스하도록 지시할 수 있다. 이에 응답하여, 제3자 어플리케이션(172)은 응답이 콘서트 장소의 좌석 차트의 시각적 표현이라는 표시를 어시스턴트 모듈(122A)로 전송할 수 있다.
이에 응답하여, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)가 콘서트 장소의 좌석 차트의 시각적 표현을 출력할 수 있는지를 결정할 수 있다. 만일, 컴퓨팅 디바이스(110A)가 콘서트 장소의 좌석 차트의 시각적 표현을 출력할 수 없는 경우, 어시스턴트 모듈(122)은 콘서트 장소의 좌석 차트를 시각적으로 제시할 수 있는 다른 컴퓨팅 디바이스로 통화를 핸드오프할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(110A)는 제3자 어플리케이션(172)으로부터 수신된 대화를 핸드오프할지의 여부에 대한 표시에 기초하여 대화를 핸드오프할지를 결정할 수 있다.
대화의 핸드오프를 수신할 수 있는 사용자와 관련된 2 이상의 컴퓨팅 디바이스들이 결정된 형태로 응답을 제시할 수 있는 기능을 갖는 경우, 어시스턴트 모듈(122A)은 핸드오프를 수신할 2 이상의 컴퓨팅 디바이스들 중 하나를 전술한 다양한 요인들에 기초하여 선택할 수 있다. 일례에서, 어시스턴트 모듈(122A)은 결정된 형태로 응답을 제시하도록 상대적으로 더 최적화된 컴퓨팅 디바이스를 선택할 수 있다. 예를 들어, 응답이 시각적으로 제시되어야 하고, 2 이상의 컴퓨팅 디바이스들 각각이 디스플레이 디바이스에 동작가능하게 결합된 경우, 어시스턴트 모듈(122A)은 상대적으로 더 큰 디스플레이 영역을 갖는 디스플레이 디바이스에 동작가능하게 연결된 컴퓨팅 디바이스를, 대화의 핸드오프를 수신하는 디바이스로 선택할 수 있다. 다른 예에서, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110A)에 대한 근접성(즉, 물리적 거리)에 기초하여 2 이상의 컴퓨팅 디바이스들 중 대화의 핸드오프를 수신하기 위한 하나의 컴퓨팅 디바이스를 선택할 수 있다. 도 4의 예에서, 어시스턴트 모듈(122A)은 대화의 핸드오프를 수신하도록 컴퓨팅 디바이스(110B)를 선택할 수 있다.
컴퓨팅 디바이스(110B)로 대화를 핸드오프하는 것은 다양한 방식으로 수행될 수 있다. 일례에서, 컴퓨팅 디바이스(110B)로 대화를 핸드오프하기로 결정한 것에 응답하여, 컴퓨팅 디바이스(110A)는 대화의 핸드오프를 수신하라는 요청을 컴퓨팅 디바이스(110B)에 전송할 수 있다(410). 대화의 핸드오프를 수신하라는 요청은 컴퓨팅 디바이스(110B)에 의해 출력될 질의에 대한 응답의 표시, 사용자와 어시스턴트 모듈(122A) 사이에서 지금까지 발생한 대화의 내용의 표시, 대화와 관련된 콘텍스트 정보, 기타 등등을 포함할 수 있다.
일부 예들에서, 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A) 대신에 또는 이와 협력하여, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)로부터 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(110A)가 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)과 사용자 사이의 대화의 적어도 일부를 형성하는 질의의 사용자 입력의 표시를 수신한 것에 응답하여(406), 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)은 질의의 표시를 디지털 어시스턴트 서버(160)로 전송할 수 있다.
디지털 어시스턴트 서버(160)는 컴퓨팅 디바이스(110A)로부터 상기 질의의 표시를 수신할 수 있다. 이에 응답하여, 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)로부터 다른 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정할 수 있다(412). 대화를 다른 컴퓨팅 디바이스로 핸드오프함으로써, 대화의 핸드오프를 수신한 컴퓨팅 디바이스는 컴퓨팅 디바이스(110A)를 대신하여 질의에 대한 응답을 출력할 수 있다.
어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A) 이외의 컴퓨팅 디바이스로 대화를 핸드오프할지 여부를 결정하기 위해 컴퓨팅 디바이스(110A)에 의해 수행된 것과 유사한 기술을 수행할 수 있다. 예를 들어, 질의가 대화를 다른 컴퓨팅 디바이스로 핸드오프하기 위한 명시적 명령을 포함하는 경우, 어시스턴트 모듈(122C)은 명시적 명령에 따라 질의에 의해 지정된 컴퓨팅 디바이스로 대화를 핸드오프할 수 있다.
또한, 어시스턴트 모듈(122C)이 다른 컴퓨팅 디바이스로 대화를 핸드오프할지의 여부를 결정하는 것은, 응답이 제시되는 형태를 결정하는 것에 적어도 부분적으로 기초할 수 있다. 예를 들어, 어시스턴트 모듈(122C)은 응답이 청각적으로 출력되는지(예를 들어, 음성 출력으로), 시각적으로 출력되는지(예를 들어, 이미지 또는 비디오로), 대화형 GUI로 출력되는지(예를 들어, 방향들의 대화형 맵으로서 출력됨), 기타 등등을 결정할 수 있다.
어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)가 결정된 형태로 응답을 제시할 수 있는지 여부를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122C)은 그러한 결정을 하기 위해 컴퓨팅 디바이스(110A)의 능력에 관한 저장된 정보를 이용할 수 있다. 다른 예에서, 어시스턴트 모듈(122C)은 그 능력에 관한 질의를 컴퓨팅 디바이스(110A)에 전송할 수 있고, 이에 응답하여 컴퓨팅 디바이스(110A)의 능력에 대한 표시를 수신할 수 있다. 컴퓨팅 디바이스(110A)가 결정된 형태로 응답을 제시할 수 없거나, 컴퓨팅 디바이스(110A)가 결정된 형태로 응답을 제시하도록 최적화되지 않은 경우, 어시스턴트 모듈(122C)은 결정된 형태로 응답을 제시할 수 있거나, 결정된 형태로 응답을 제시하도록 최적화된 다른 컴퓨팅 디바이스들과 사용자가 연관되어 있는지 여부를 결정할 수 있다.
결정된 형태로 응답을 제시할 수 있거나, 결정된 형태로 응답을 제시하도록 최적화된 다른 컴퓨팅 디바이스들과 사용자가 연관되어 있는지 여부를 결정하기 위해, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)가 아닌, 사용자와 연관된 컴퓨팅 디바이스들을 결정할 수 있을 뿐만 아니라, 대화 디바이스의 핸드오프를 수신할 수 있는 사용자와 관련된 컴퓨팅 디바이스들을 결정할 수 있다. 어시스턴트 모듈(122C)은 대화의 핸드오프를 수신할 수 있는 사용자와 연관된 컴퓨팅 디바이스들 중에서, 결정된 형태로 응답을 제시할 수 있는 능력을 가진 하나 이상의 컴퓨팅 디바이스를 결정할 수 있다.
만일, 어시스턴트 모듈(122C)이 사용자와 연관된 다른 컴퓨팅 디바이스가 대화의 핸드오프를 수신할 수 있고, 그리고 결정된 형태로 응답을 제시할 수 있는 능력이 있다라고 판단하면, 어시스턴트 모듈(122C)은 대화가 상기 다른 컴퓨팅 디바이스로 핸드오프되어야 한다고 결정할 수 있다. 다시 말해, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)와 다른 컴퓨팅 디바이스 사이의 기능적 능력들의 차이에 적어도 부분적으로 기초하여 대화를 핸드오프할지 여부를 결정할 수 있다.
예를 들어, 어시스턴트 모듈(122C)이 질의에 대한 응답이 시각적으로 출력되어야한다고 결정하면, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)가 디스플레이 디바이스에 동작가능하게 연결되어 있는지의 여부를 결정할 수 있다. 컴퓨팅 디바이스(110A)가 디스플레이 디바이스에 동작가능하게 연결되어 있지 않으면, 어시스턴트 모듈(122C)은 사용자와 관련된 다른 컴퓨팅 디바이스가 디스플레이 디바이스에 동작가능하게 연결되어 있는지 여부를 결정할 수 있다. 사용자와 연관된 다른 컴퓨팅 디바이스가 디스플레이 디바이스에 동작가능하게 연결되어 있다면, 어시스턴트 모듈(122C)은 사용자와 연관된 상기 다른 컴퓨팅 디바이스로 대화가 핸드오프되어야 한다고 결정할 수 있다.
일부 예들에서, 어시스턴트 모듈(122A)과 유사하게, 어시스턴트 모듈(122C)은 질의에 대한 응답을 결정하기 위해 제3자 서버 시스템(170)에서 실행되는 제3자 어플리케이션(172)과 통신하거나 이용함으로써 질의에 대한 응답을 결정할 수 있다. 제3자 어플리케이션(172)은 질의에 대한 응답을 결정하기 위해, 티켓 구매 서비스, 탑승장 서비스 등과 같은 제3자 서비스에 액세스할 수 있는 어플리케이션들일 수 있다. 어시스턴트 모듈(122C)은 어시스턴트 모듈(122C)과 상호작용하기 위해 제3자 어플리케이션(172)이 액세스할 수 있는 API를 제공할 수 있다.
일부 예에서, 어시스턴트 모듈(122C)과 관련하여 질의에 대한 응답을 결정하기 위해 제3자 어플리케이션(172)이 실행함에 따라, 제3자 어플리케이션(172)은 제 1 컴퓨팅에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부에 대한 표시를 전송할 수 있다. 예를 들어, 질의가 어시스턴트 모듈(122C)이 콘서트 티켓을 구매하라는 요청인 경우, 어시스턴트 모듈(122C)은 제3자 어플리케이션(172)이 콘서트 티켓을 구매하기 위해 티켓 구매 서비스에 액세스하도록 지시할 수 있다. 이에 응답하여, 제3자 어플리케이션(172)은 응답이 콘서트 장소의 좌석 차트의 시각적 표현이라는 표시를 어시스턴트 모듈(122C)로 전송할 수 있다.
이에 응답하여, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)가 콘서트 장소의 좌석 차트의 시각적 표현을 출력할 수 있는지를 결정할 수 있다. 만일, 컴퓨팅 디바이스(110A)가 콘서트 장소의 좌석 차트의 시각적 표현을 출력할 수 없는 경우, 어시스턴트 모듈(122C)은 콘서트 장소의 좌석 차트를 시각적으로 제시할 수 있는 다른 컴퓨팅 디바이스로 통화를 핸드오프할 수 있다. 이러한 방식으로, 어시스턴트 모듈(122C)는 제3자 어플리케이션(172)으로부터 수신된 대화를 핸드오프할지의 여부에 대한 표시에 기초하여 대화를 핸드오프할지를 결정할 수 있다.
대화의 핸드오프를 수신할 수 있는 사용자와 관련된 2 이상의 컴퓨팅 디바이스들이 결정된 형태로 응답을 제시할 수 있는 기능을 갖는 경우, 어시스턴트 모듈(122C)은 핸드오프를 수신할 2 이상의 컴퓨팅 디바이스들 중 하나를 전술한 다양한 요인들에 기초하여 선택할 수 있다. 일례에서, 어시스턴트 모듈(122C)은 결정된 형태로 응답을 제시하도록 상대적으로 더 최적화된 컴퓨팅 디바이스를 선택할 수 있다. 예를 들어, 응답이 시각적으로 제시되어야 하고, 2 이상의 컴퓨팅 디바이스들 각각이 디스플레이 디바이스에 동작가능하게 결합된 경우, 어시스턴트 모듈(122C)은 상대적으로 더 큰 디스플레이 영역을 갖는 디스플레이 디바이스에 동작가능하게 연결된 컴퓨팅 디바이스를, 대화의 핸드오프를 수신하는 디바이스로 선택할 수 있다. 다른 예에서, 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)에 대한 근접성(즉, 물리적 거리)에 기초하여 2 이상의 컴퓨팅 디바이스들 중 대화의 핸드오프를 수신하기 위한 하나의 컴퓨팅 디바이스를 선택할 수 있다. 도 4의 예에서, 어시스턴트 모듈(122C)은 대화의 핸드오프를 수신하도록 컴퓨팅 디바이스(110B)를 선택할 수 있다.
컴퓨팅 디바이스(110B)로 대화를 핸드오프하는 것은 다양한 방식으로 수행될 수 있다. 일례에서, 컴퓨팅 디바이스(110B)로 대화를 핸드오프하기로 결정한 것에 응답하여, 컴퓨팅 디바이스(110C)는 대화의 핸드오프를 수신하라는 요청을 컴퓨팅 디바이스(110B)에 전송할 수 있다(414). 대화의 핸드오프를 수신하라는 요청은 컴퓨팅 디바이스(110B)에 의해 출력될 질의에 대한 응답의 표시, 사용자와 어시스턴트 모듈(122A) 사이에서 지금까지 발생한 대화의 내용의 표시, 대화와 관련된 콘텍스트 정보, 기타 등등을 포함할 수 있다.
도 4에 도시된 바와 같이, 컴퓨팅 디바이스(110A) 및 디지털 어시스턴트 서버(160)는 둘다는 대화를 핸드오프할지 여부(즉, 동작 406 및 412) 뿐만 아니라 대화를 컴퓨팅 디바이스(110B)로 핸드오프하라는 요청을 전송할 수 있다(즉, 동작 410 및 414). 일부 예들에서, 대화를 컴퓨팅 디바이스(110B)로 핸드오프하기로 결정하는 동작(408)을 수행하는 것에 응답하여, 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)은 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)에게 지시하여 대화를 핸드오프하는 요청을 컴퓨팅 디바이스(110B)로 전송하는 동작(414)을 수행하게 할 수 있다. 이와 유사하게, 대화를 컴퓨팅 디바이스(110B)로 핸드오프하기로 결정하는 동작(412)을 수행하는 것에 응답하여, 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)은 컴퓨팅 디바이스(110A)에서 실행되는 어시스턴트 모듈(122A)에게 지시하여 대화를 핸드오프하는 요청을 컴퓨팅 디바이스(110B)로 전송하는 동작(410)을 수행하게 할 수 있다.
컴퓨팅 디바이스(110B)는 개인 정보를 이용하고 저장하기 위해 사용자로부터 동의를 수신할 수 있다(416). 예를 들어, 잠재적인 개인 정보를 식별하는 것에 응답하여, 어시스턴트 모듈(122B)은 UI 모듈(120B)로 하여금 어시스턴트 모듈(122B) 및 사용자와의 상호작용 중에 획득된 개인 정보를 저장하고 사용하도록 사용자에게 허가를 요청하게 할 수 있다. 컴퓨팅 디바이스(110B)는 어시스턴트 모듈(122B)이 개인 정보를 이용하거나 저장하기를 원할 때마다 사용자가 동의할 것을 요구하지 않을 수 있음을 이해해야한다. 예를 들어, 컴퓨팅 디바이스(110B)가 1 년에 한 번, 하루에 한 번, 또는 심지어 한 번만(예를 들어, 초기 제품 구매 후에, 설정 후에, 등) 동의를 받는 경우, 컴퓨팅 디바이스(110B)는 이러한 사전 동의를 미래에 개인 정보를 사용하고 저장하기 위한 동의로 취급할 수 있다. 사용자가 동의를 제공할 수 있는 방법의 일례로서, 사용자는 UIC(112B)에 의해 검출된 "나에 관한 정보를 저장해도 괜찮다"라는 음성 입력을 제공할 수 있고, 음성 입력에 응답하여 어시스턴트 모듈(122B)은 사용자 데이터 저장소(124B)에 개인 기록을 보관하기 시작할 수 있다. 사용자는 언제든지 이전에 제공된 권한을 철회할 수 있음을 이해해야 한다.
컴퓨팅 디바이스(110B)는 컴퓨팅 디바이스(110A)로부터 또는 디지털 어시스턴트 서버(160)로부터 대화의 핸드오프를 수신하라는 요청을 수신할 수 있다(418). 이러한 요청은 적어도 대화에 대한 표시, 컴퓨팅 디바이스(110B)에 의해 출력될 응답의 표시, 사용자와 어시스턴트 모듈(122A) 사이의 지금까지 대화 내용의 표시, 대화와 관련된 콘텍스트 정보, 기타 등등을 포함할 수 있다.
컴퓨팅 디바이스(110A) 또는 디지털 어시스턴트 서버(160)로부터 대화의 핸드오프를 수신하라는 요청을 수신한 것에 응답하여, 컴퓨팅 디바이스(110B)는 대화의 핸드오프를 수락할지 여부를 결정할 수 있다(420). 컴퓨팅 디바이스(110B)가 대화의 핸드오프를 수락하면, 컴퓨팅 디바이스(110B)는 응답을 출력할 수 있으며, 따라서 상기 응답은 이제 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)과 사용자 사이의 대화의 일부를 형성한다.
사용자는 사용자 입력을 제공하도록 컴퓨팅 디바이스(110B)의 UIC(112B)와 상호작용하여 어시스턴트 모듈(122B)과 대화를 계속할 수 있다. UIC(112B)는 사용자로부터의 질의를 나타내는 사용자 입력의 표시를 수신할 수 있다(424). 상기 질의는 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 이전 부분을 다시 참조할 수 있다.
어시스턴트 모듈(122B)은 질의에 대한 응답을 결정하고(426) 그리고 질의에 대한 응답을 UIC(112B)에서 출력할 수 있다(428). 상기 질의가 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 이전 부분을 다시 참조할 수 있기 때문에, 어시스턴트 모듈(122B)은 대화와 관련된 콘텍스트 정보를 이용하여, 질의에 대한 응답을 결정할 수 있다. 이러한 콘텍스트 정보는 대화의 핸드오프를 수행하는 것의 일부로서 컴퓨팅 디바이스(110A) 및/또는 디지털 어시스턴트 서버(160)로부터 컴퓨팅 디바이스(110B)에 의해 이미 수신되었을 수 있다. 예를 들어, 상기 질의가, 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 부분들에서 언급되었던 시간, 장소, 위치, 이벤트, 사람, 영화, TV 쇼, 노래 등을 다시 참조하는 경우, 어시스턴트 모듈(122B)은 대화와 관련된 콘텍스트 정보를 활용하여 상기 질의의 이러한 참조들을, 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 부분들에서 언급되었던 특정 시간, 장소, 위치, 이벤트, 사람, 영화, TV 쇼, 노래 등과 맵핑함으로써, 응답을 생성할 수 있다.
일부 예들에서, 질의에 대한 응답을 결정하는 대신에, 어시스턴트 모듈(122B)은 질의에 대한 표시를 디지털 어시스턴트 서버(160)에서 실행되는 어시스턴트 모듈(122C)로 전송할 수 있다. 어시스턴트 모듈(122B)과 유사하게, 어시스턴트 모듈(122C)은 대화에 관련된 콘텍스트 정보를 이용하여 질의에 대한 응답을 결정할 수 있다. 이러한 콘텍스트 정보는 사용자와 어시스턴트 모듈(122A) 사이의 대화를 모니터링하는 것의 일부로서 어시스턴트 모듈(122C)에 의해 이미 결정되었을 수도 있고, 또는 대화의 핸드오프를 수행하는 것의 일부로서 디지털 어시스턴트 서버(160)에 의해 수신될 수 있다. 예를 들어, 상기 질의가, 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 부분들에서 언급되었던 시간, 장소, 위치, 이벤트, 사람, 영화, TV 쇼, 노래 등을 다시 참조하는 경우, 어시스턴트 모듈(122C)은 대화와 관련된 콘텍스트 정보를 활용하여 상기 질의의 이러한 참조들을, 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 대화를 핸드오프하기 전에 사용자와 어시스턴트 모듈(122A) 사이에서 발생했던 대화의 부분들에서 언급되었던 특정 시간, 장소, 위치, 이벤트, 사람, 영화, TV 쇼, 노래 등과 맵핑함으로써, 응답을 생성할 수 있다.
질의에 대한 표시를 수신함에 응답하여, 어시스턴트 모듈(122C)은 질의에 대한 응답을 결정할 수 있으며(430) 그리고 응답에 대한 표시를 컴퓨팅 디바이스(110B)에서 실행되는 어시스턴트 모듈(122B)로 다시 전송할 수 있는바, 따라서 어시스턴트 모듈(122B)은 질의에 대한 응답을 UIC(112B)에서 출력할 수 있다(428).
도 5는 본 개시의 하나 이상의 기술에 따라, 사용자와 예시적인 가상 어시스턴트 간의 대화의 핸드오프를 수행하기 위한 컴퓨팅 시스템의 예시적인 동작을 도시하는 흐름도이다. 단지 예시의 목적으로, 도 5의 예시적인 동작들은 도 1 내지 4의 맥락 내에서 후술된다.
도 5의 예에서, 컴퓨팅 시스템은 사용자로부터 제 1 컴퓨팅 디바이스(110A)에 의해 수신된 질의에 대한 표시를 수신할 수 있으며, 여기서 질의는 사용자와 제 1 컴퓨팅 디바이스(110A)에서 실행하는 제 1 어시스턴트(122A) 사이의 대화의 적어도 일부를 형성한다(520). 컴퓨팅 시스템의 일례는 시스템(100), 디지털 어시스턴트 서버(160) 및/또는 컴퓨팅 디바이스(110B)를 포함할 수 있다. 컴퓨팅 시스템은 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지 여부를 결정할 수 있다(504). 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프하기로 결정한 것에 응답하여, 컴퓨팅 시스템은 대화의 표시를 제 2 컴퓨팅 디바이스(110B)로 송신할 수 있다(506).
일부 예들에서, 컴퓨팅 시스템은 제 1 컴퓨팅 디바이스(110A)와 제 2 컴퓨팅 디바이스(110B) 사이의 기능적 능력들의 차이에 적어도 일부 기초하여, 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지 여부를 결정할 수 있다.
일부 예들에서, 제 1 컴퓨팅 디바이스(110A)와 제 2 컴퓨팅 디바이스(110B) 사이의 기능적 능력들의 차이에 적어도 일부 기초하여 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지 여부를 결정하는 것은, 컴퓨텅 시스템이 질의에 대한 응답이 시각적으로 출력되어야 한다라고 결정하는 것, 그리고 제 1 컴퓨팅 디바이스(110A)는 제 1 디스플레이 디바이스에 동작가능하게 연결되지 않은 반면에 제 2 컴퓨팅 디바이스(110B)는 제 2 디스플레이 디바이스에 동작가능하게 연결되어 있다라는 결정에 응답하여, 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프하도록 결정하는 것을 더 포함한다.
일부 예들에서, 컴퓨팅 시스템은 대화의 핸드오프를 수신할 수 있는 사용자와 연관된 복수의 컴퓨팅 디바이스들 중에서 대화의 핸드오프를 수신하기 위해 제 2 컴퓨팅 디바이스(110B)를 선택할 수 있다. 일부 예들에서, 핸드오프를 수신하기 위해 제 2 컴퓨팅 디바이스(110B)를 선택하는 것은, 제 1 컴퓨팅 디바이스(110A)에 대한 제 2 컴퓨팅 디바이스(110B)의 물리적 근접성에 적어도 부분적으로 기초한다.
일부 예에서, 컴퓨팅 시스템은 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)와 사용자 간의 대화와 관련된 콘텍스트 정보를 결정할 수 있다. 사용자로부터 제 2 컴퓨팅 디바이스(110B)에 의해 수신된 제 2 질의에 대한 표시를 컴퓨팅 시스템이 수신할 수 있고, 여기서 질의는 제 1 질의를 포함한다. 컴퓨팅 시스템은 콘텍스트 정보에 적어도 부분적으로 기초하여, 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프하기 전에 발생했던 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)와 사용자 간의 대화의 이전 부분들을 상기 제 2 질의가 다시 참조한다라고 결정할 수 있다. 컴퓨팅 시스템은 사용자와 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A) 간의 대화와 관련된 콘텍스트 정보에 적어도 부분적으로 기초하여 제 2 질의에 대한 응답을 결정할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 제3자 어플리케이션(172)으로부터, 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지 여부에 대한 표시를 수신할 수 있다. 컴퓨팅 시스템은, 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지 여부에 대한 상기 표시에 기초하여, 제 1 컴퓨팅 디바이스(110A)에서 실행되는 제 1 어시스턴트(122A)로부터 제 2 컴퓨팅 디바이스(110B)에서 실행되는 제 2 어시스턴트(122B)로 대화를 핸드오프할지의 여부를 결정할 수 있다.
일부 예에서, 상기 질의는 대화를 핸드오프하라는 명시적 명령을 포함할 수 있다. 일부 예에서, 컴퓨팅 시스템은 제 1 컴퓨팅 디바이스(110A)로부터 질의에 대한 표시를 수신할 수 있다. 일부 예들에서, 제 1 컴퓨팅 디바이스는 질의를 나타내는 사용자 입력을 수신할 수 있다.
이해할 수 있는 바와 같이, 본 발명의 기술들은 전술한 장점들에 부가하여, 답변을 출력하기에 더 적합한 다른 디바이스들을 식별함으로써, 어시스턴트에 의해 제공되는 답변들의 사용자 이해를 증가시킬 수 있다. 이러한 방식으로, 본 발명의 기술은 사용자가 답변을 수신하고 이해하는데 필요한 사용자 입력들의 개수를 감소시킬 수 있고, 그리고 어시스턴트가 컴퓨팅 디바이스에서 정보를 활동적으로 실행하고 처리하는 시간을 감소시킬 수 있어, 결과적으로 어시스턴트가 실행되는 컴퓨팅 시스템의 전력 사용을 감소시킬 수 있다. 또한, 본 발명의 기술은 컴퓨팅 시스템에 적합하지 않은 방식으로 컴퓨팅 디바이스가 답변을 출력하는 횟수를 감소시키기 때문에, 본 발명의 기술은 컴퓨팅 시스템에 적합한 방식으로 컴퓨팅 시스템이 답변을 출력하는 빈도를 증가시킬 수 있으며, 따라서 컴퓨팅 시스템의 성능 및 기술적 동작들을 향상시킬 수 있다.
다음의 넘버링된 예제들은 본 발명의 하나 이상의 양상들을 예시할 수 있다.
예제 1. 방법으로서, 컴퓨팅 시스템에 의해, 사용자로부터 제 1 컴퓨팅 디바이스에 의해 수신된 질의에 대한 표시를 수신하는 단계, 상기 질의는 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성하고; 상기 컴퓨팅 시스템에 의해, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하는 단계; 및 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프한다는 결정에 응답하여, 상기 컴퓨팅 시스템에 의해, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송하는 단계를 포함한다.
예제 2. 예제 1에 있어서, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하는 단계는, 상기 제 1 컴퓨팅 디바이스와 상기 제 2 컴퓨팅 디바이스 간의 기능적 능력들의 차이에 적어도 일부 기초한다.
예제 3. 예제 2에 있어서, 상기 제 1 컴퓨팅 디바이스와 상기 제 2 컴퓨팅 디바이스 간의 기능적 능력들의 차이에 적어도 일부 기초하여, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하는 단계는, 상기 컴퓨팅 시스템에 의해, 상기 질의에 대한 응답이 시각적으로 출력될 것인지를 결정하는 단계; 및 상기 제 1 컴퓨팅 디바이스가 제 1 디스플레이 디바이스에 동작가능하게 연결되어 있지 않고, 상기 제 2 컴퓨팅 디바이스가 제 2 디스플레이 디바이스에 동작가능하게 연결되어 있다는 결정에 응답하여, 상기 컴퓨팅 시스템에 의해, 상기 대화를 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 핸드오프하도록 결정하는 단계를 더 포함한다.
예제 4. 예제 1-3 중 어느 하나에 있어서, 상기 컴퓨팅 시스템에 의해, 상기 사용자와 연관되며 상기 대화의 핸드오프를 수신할 수 있는 복수의 컴퓨팅 디바이스들 중에서, 상기 대화의 핸드오프를 수신하도록 상기 제 2 컴퓨팅 디바이스를 선택하는 단계를 더 포함한다.
예제 5. 예제 4에 있어서, 상기 대화의 핸드오프를 수신하도록 상기 제 2 컴퓨팅 디바이스를 선택하는 단계는, 상기 제 1 컴퓨팅 디바이스에 대한 상기 제 2 컴퓨팅 디바이스의 물리적 근접성에 적어도 일부 기초한다.
예제 6. 예제 1-5 중 어느 하나에 있어서, 상기 컴퓨팅 시스템에 의해, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화와 관련된 콘텍스트 정보를 결정하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 사용자로부터 상기 제 2 컴퓨팅 디바이스에 의해 수신된 제 2 질의에 대한 표시를 수신하는 단계, 상기 질의는 제 1 질의를 포함하며; 상기 컴퓨팅 시스템에 의해 그리고 상기 콘텍스트 정보에 적어도 일부 기초하여, 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프하기 전에 발생했던, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화의 이전 부분들을 상기 제 2 질의가 다시 참조하는지를 결정하는 단계; 및 상기 컴퓨팅 시스템에 의해, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화와 관련된 상기 콘텍스트 정보에 적어도 일부 기초하여, 상기 제 2 질의에 대한 응답을 결정하는 단계를 더 포함한다.
예제 7. 예제 1-6 중 어느 하나에 있어서, 상기 컴퓨팅 시스템에 의해, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 표시를 제3자 어플리케이션으로부터 수신하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 상기 표시에 기초하여, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하는 단계를 더 포함한다.
예제 8. 예제 1-7 중 어느 하나에 있어서, 상기 질의는 상기 대화를 핸드오프하기 위한 명시적인 명령을 포함한다.
예제 9. 예제 1-8 중 어느 하나에 있어서, 상기 컴퓨팅 시스템은 상기 질의에 대한 표시를 상기 제 1 컴퓨팅 디바이스로부터 수신한다.
예제 10. 예제 9에 있어서, 상기 제 1 컴퓨팅 디바이스는 상기 질의를 나타내는 사용자 입력을 수신한다.
예제 11. 시스템으로서, 제 1 컴퓨팅 디바이스; 제 2 컴퓨팅 디바이스; 및 네트워크를 통해 상기 제 1 컴퓨팅 디바이스 및 제 2 컴퓨팅 디바이스에 연결된 디지털 어시스턴트 시스템을 포함하고, 상기 제 1 컴퓨팅 디바이스는, 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성하는 질의를 나타내는 사용자 입력을 수신하고, 상기 질의에 대한 표시를 상기 디지털 어시스턴트 시스템으로 전송하도록 구성되며, 상기 디지털 어시스턴트 시스템은, 상기 제 1 컴퓨팅 디바이스로부터 상기 질의에 대한 표시를 수신하고, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프할지의 여부를 결정하며, 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프한다는 결정에 응답하여, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송하도록 구성되고, 상기 제 2 컴퓨팅 디바이스는, 상기 디지털 어시스턴트 시스템으로부터 상기 대화에 대한 표시를 수신하고, 상기 대화의 일부로서 상기 질의에 대한 응답을 출력하도록 구성된다.
예제 12. 예제 11에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 제 1 컴퓨팅 디바이스와 상기 제 2 컴퓨팅 디바이스 간의 기능적 능력들의 차이에 적어도 일부 기초하여, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프할지의 여부를 결정하도록 구성된다.
예제 13. 예제 12에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 질의에 대한 응답이 시각적으로 출력될 것인지를 결정하고; 그리고 상기 제 1 컴퓨팅 디바이스가 제 1 디스플레이 디바이스에 동작가능하게 연결되어 있지 않고, 상기 제 2 컴퓨팅 디바이스가 제 2 디스플레이 디바이스에 동작가능하게 연결되어 있다는 결정에 응답하여, 상기 대화를 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 핸드오프하도록 결정한다.
예제 14. 예제 12 또는 13에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 대화의 핸드오프를 수신하도록, 상기 사용자와 연관되며 상기 대화의 핸드오프를 수신할 수 있는 복수의 컴퓨팅 디바이스들 중에서, 상기 제 2 컴퓨팅 디바이스를 선택한다.
예제 15. 예제 11-14 중 어느 하나에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화와 관련된 콘텍스트 정보를 결정하고, 상기 제 2 컴퓨팅 디바이스는 또한, 상기 사용자로부터의 제 2 질의를 나타내는 제 2 사용자 입력을 수신하고, 상기 사용자 입력은 제 1 사용자 입력을 포함하고, 상기 질의는 제 1 질의를 포함하며, 상기 제 2 질의에 대한 표시를 상기 디지털 어시스턴트 시스템으로 전송하고, 상기 디지털 어시스턴트 시스템은 또한, 상기 콘텍스트 정보에 적어도 일부 기초하여, 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 상기 대화를 핸드오프하기 전에 발생하였던, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화의 이전 부분들을 상기 제 2 질의가 다시 참조하는지를 결정하고, 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 사이의 대화와 관련된 상기 콘텍스트 정보에 적어도 일부 기초하여, 상기 제 2 질의에 대한 제 2 응답을 결정하고, 상기 응답은 제 1 응답을 포함하며, 상기 제 2 질의에 대한 제 2 응답의 표시를 상기 제 2 컴퓨팅 디바이스로 전송하며, 상기 제 2 컴퓨팅 디바이스는 또한, 상기 디지털 어시스턴트 시스템으로부터 상기 제 2 질의에 대한 제 2 응답의 표시를 수신하고, 상기 제 2 질의에 대한 제 2 응답을 출력한다.
예제 16. 예제 11-15 중 어느 하나에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 표시를 제3자 어플리케이션으로부터 수신하고, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 상기 표시에 기초하여, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지를 결정한다.
예제 17. 예제 11-16 중 어느 하나에 있어서, 상기 디지털 어시스턴트 시스템은 또한, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 표시를 제3자 어플리케이션으로부터 수신하고; 그리고 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지의 여부에 대한 상기 표시에 기초하여, 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정한다.
예제 18. 예제 11-17 중 어느 하나에 있어서, 상기 질의는 상기 대화를 핸드오프하기 위한 명시적인 명령을 포함한다.
예제 19. 명령들이 인코딩된 컴퓨터 판독가능 저장 매체로서, 상기 명령들은 실행될 때, 컴퓨팅 시스템의 적어도 하나의 프로세서로 하여금, 사용자로부터 제 1 컴퓨팅 디바이스에 의해 수신된 질의에 대한 표시를 수신하게 하고, 상기 질의는 상기 사용자와 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 간의 대화의 적어도 일부를 형성하며; 상기 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트로부터 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프할지 여부를 결정하게 하고; 및 상기 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트로 대화를 핸드오프한다는 결정에 응답하여, 상기 대화에 대한 표시를 상기 제 2 컴퓨팅 디바이스로 전송하게 한다.
예제 20. 예제 19에 있어서, 상기 명령들은 실행될 때, 상기 컴퓨팅 시스템의 적어도 하나의 프로세서로 하여금, 또한, 응답이 출력될 형태를 결정하게 하고; 그리고 대화의 핸드오프를 수신할 수 있고 상기 결정된 형태로 응답을 출력할 수 있는 사용자와 연관된 복수의 컴퓨팅 디바이스들 중에서 대화의 핸드오프를 수신하도록 제 2 컴퓨팅 디바이스를 선택하게 한다.
예제 21. 예제 1-10의 임의의 조합인 방법.
예제 22. 예제 1-10의 임의의 조합인 방법을 수행하기 위한 수단을 포함하는 컴퓨팅 시스템.
예제 23. 예제 1-10의 임의의 조합인 방법을 수행하도록 구성된 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템.
예제 24. 명령들을 포함하는 비일시적인 컴퓨터 판독가능 매체로서, 상기 명령들은 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해서 실행될 때, 예제 1-10의 임의의 조합인 방법을 수행한다.
예제 25. 방법으로서, 제 2 컴퓨팅 디바이스에서 실행되는 제 2 어시스턴트 모듈에 의해, 사용자와 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 모듈 간의 대화의 핸드오프를 수신하기 위한 요청을 수신하는 단계, 상기 요청은 상기 대화에 대한 표시를 적어도 포함하고; 그리고 상기 대화의 핸드오프를 수신한 것에 응답하여, 상기 제 2 컴퓨팅 디바이스에 의해 상기 대화를 진전시키는 응답을 출력하는 단계를 포함한다.
예제 26. 예제 25에 있어서, 상기 대화의 핸드오프를 수신하기 위한 요청은 응답의 표시를 포함한다.
예제 27. 예제 25 및 26 중 어느 하나에 있어서, 상기 대화의 핸드오프를 수신하기 위한 요청은 대화로부터 결정된 콘텍스트 정보의 표시를 포함한다.
예제 28. 예제 25-27 중 어느 하나에 있어서, 요청의 표시를 포함하는 사용자 입력의 표시를 상기 제 2 컴퓨팅 디바이스에 의해 수신하는 단계, 상기 요청은 상기 제 2 컴퓨팅 디바이스가 대화의 핸드오프를 수신하기 전에 제 1 컴퓨팅 디바이스에서 실행되는 제 1 어시스턴트 모듈과 사용자 사이에서 발생했던 대화의 일부분을 참조하며; 그리고 콘텍스트 정보의 표시에 적어도 일부 기초하여 상기 제 2 요청에 대한 응답을 상기 제 2 컴퓨팅 디바이스에 의해 출력하는 단계를 더 포함한다.
예제 29. 예제 25-28의 임의의 조합인 방법.
예제 30. 예제 25-28의 임의의 조합인 방법을 수행하기 위한 수단을 포함하는 컴퓨팅 시스템.
예제 31. 예제 25-28의 임의의 조합인 방법을 수행하도록 구성된 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템.
예제 32. 명령들을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령들은 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 실행될 때 예제 25-28의 임의의 조합인 방법을 수행한다.
하나 이상의 예에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체에 하나 이상의 명령들 또는 코드들로서 저장되거나 전송될 수 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체를 포함할 수 있으며, 이는 데이터 저장 매체와 같은 유형 매체에 대응하거나 또는 예컨대 통신 프로토콜에 따라 컴퓨터 프로그램의 한 장소에서 다른 장소로의 이동을 용이하게 하는 임의의 매체를 포함하는 통신 매체에 대응한다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는(2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에서 설명된 기술들의 구현을 위해 명령, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 일례로서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크, 자기 디스크, 또는 다른 자기 저장 디바이스, 플래시 메모리 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 저장 매체를 포함할 수 있다. 또한, 모든 연결은 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(Digital Subscriber Line) 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 기타 원격 소스로부터 명령들이 전송되는 경우, 상기 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오, 및 마이크로파는 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적 매체를 포함하지 않지만, 일시적이지 않은 유형의 저장 매체로 지향된다는 것을 이해해야한다. 본 명세서에서 사용되는 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크(DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크(disk)는 자기적으로 데이터를 재생하는 반면에, 디스크(disc)는 레이저로 데이터를 광학적으로 재생한다. 전술한 것들의 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함될 수 있다.
명령들은 하나 이상의 프로세서들에 의해 실행될 수 있는바, 가령, 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그램가능 논리 어레이(FPGA), 또는 다른 등가의 통합 또는 이산 논리 회로들에 의해서 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 중 어느 하나 또는 본 명세서에 설명된 기술의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양상들에서, 여기에 설명된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 기술은 하나 이상의 회로 또는 논리 요소에서 완전히 구현될 수 있다.
본 발명의 기술들은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩 세트)를 포함하는 다양한 디바이스들 또는 장치들에서 구현될 수 있다. 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 측면들을 강조하기 위해 다양한 컴포넌트들, 모듈들 또는 유닛들이 본 명세서에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 전술한 바와 같이, 다양한 유닛들은 하드웨어 유닛으로 조합되거나 적절한 소프트웨어 및/또는 펌웨어와 함께 전술한 바와 같은 하나 이상의 프로세서를 포함하는 상호운용이 가능한 하드웨어 유닛의 컬렉션에 의해 제공될 수 있다.
다양한 실시예들이 설명되었다. 이들 및 다른 실시예들은 하기의 청구 범위의 범주 내에 속한다.

Claims (20)

  1. 제 1 컴퓨팅 디바이스의 하나 이상의 프로세서들을 이용하여 구현되는 방법으로서,
    제 1 컴퓨팅 디바이스의 사용자의 발음된(spoken) 사용자 입력을 캡처하는 오디오 데이터를 수신하는 단계, 상기 오디오 데이터는 제 1 컴퓨팅 디바이스의 하나 이상의 마이크로폰들을 통해 생성되고, 상기 발음된 사용자 입력은 제 1 컴퓨팅 디바이스에서 적어도 부분적으로 실행되는 어시스턴트를 향한 것이며;
    상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱함에 기초하여, 제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청(audible) 출력을 제공하기로 결정하는 단계;
    제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정함에 응답하여,
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 초음파 통신을 전송하는 단계, 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스는 제 1 컴퓨팅 디바이스와 통신하며;
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 전송된 초음파 통신에 기초하여,
    제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성 및 제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성을 결정하는 단계;
    적어도 제 2 물리적 근접성 및 제 3 물리적 근접성에 기초하여, 적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하는 단계; 및
    발음된 사용자 입력을 수신함에 응답하여, 상기 선택된 추가 컴퓨팅 디바이스로 하여금 가청 출력을 제공하게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하는 단계는,
    제 2 컴퓨팅 디바이스가 제 3 컴퓨팅 디바이스에 비하여 제 1 컴퓨팅 디바이스에 물리적으로 보다 근접함을 나타내는, 제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성 및 제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성에 기초하여 제 2 컴퓨팅 디바이스를 추가 컴퓨팅 디바이스로 선택하는 단계를 포함하는 것 특징으로 하는 방법.
  3. 제1항에 있어서,
    적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하는 단계는,
    제 2 컴퓨팅 디바이스의 제 2 현재 상태 및 제 3 컴퓨팅 디바이스의 제 3 현재 상태에 또한 기초하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    제 2 컴퓨팅 디바이스의 제 2 현재 상태는 제 2 컴퓨팅 디바이스가 파워 온 상태에 있는지에 대한 여부를 나타내고, 제 3 컴퓨팅 디바이스의 제 3 현재 상태는 제 3 컴퓨팅 디바이스가 파워 온 상태에 있는지에 대한 여부를 나타내는 것을 특징으로 하는 방법.
  5. 제3항에 있어서,
    제 2 컴퓨팅 디바이스의 제 2 현재 상태는 제 2 컴퓨팅 디바이스가 가청 출력을 제공할 능력이 있는지를 나타내고, 제 3 컴퓨팅 디바이스의 제 3 현재 상태는 제 3 컴퓨팅 디바이스가 가청 출력을 제공할 능력이 있는지를 나타내는 것을 특징으로 하는 방법.
  6. 제3항에 있어서,
    제 2 컴퓨팅 디바이스의 제 2 현재 상태는 제 2 컴퓨팅 디바이스가 가청 출력을 제공할 권한이 있는지를 나타내고, 제 3 컴퓨팅 디바이스의 제 3 현재 상태는 제 3 컴퓨팅 디바이스가 가청 출력을 제공할 권한이 있는지를 나타내는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정함에 응답하여,
    제 4 컴퓨팅 디바이스로 초음파 통신을 전송하는 단계; 및
    제 4 컴퓨팅 디바이스로 전송된 초음파 통신에 기초하여, 제 1 컴퓨팅 디바이스에 대한 제 4 컴퓨팅 디바이스의 제 4 물리적 근접성을 결정하는 단계
    를 더 포함하고,
    적어도 제 2 컴퓨팅 디바이스, 제 3 컴퓨팅 디바이스, 및 제 4 컴퓨팅 디바이스 중에서, 제 4 물리적 근접성에도 또한 기초하여 추가 컴퓨팅 디바이스가 선택되는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    제 2 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는 오디오 출력 디바이스를 포함하고,
    제 3 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는, 상기 오디오 출력 디바이스와는 별개인 추가 오디오 출력 디바이스를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱함에 기초하여, 제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정하는 단계는,
    추가 컴퓨팅 디바이스에서 가청 출력을 제공하기 위한 명시적인 사용자 커맨드를 상기 발음된 사용자 입력이 포함하고 있는지를 결정하기 위해 상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    추가 컴퓨팅 디바이스에서 가청 출력을 제공하기 위한 명시적인 사용자 커맨드는, 제 2 컴퓨팅 디바이스 또는 제 3 컴퓨팅 디바이스를 명시적으로 식별하지 않는 것을 특징으로 하는 방법.
  11. 제 1 컴퓨팅 디바이스로서,
    하나 이상의 제 1 컴퓨팅 디바이스 마이크로폰들;
    적어도 하나의 제 1 컴퓨팅 디바이스 프로세서; 및
    제 1 컴퓨팅 디바이스 명령들을 저장하는 제 1 컴퓨팅 디바이스 메모리
    를 포함하고,
    상기 제 1 컴퓨팅 디바이스 명령들은 실행될 때, 상기 적어도 하나의 제 1 컴퓨팅 디바이스 프로세서로 하여금,
    제 1 컴퓨팅 디바이스의 사용자의 발음된 사용자 입력을 캡처하는 오디오 데이터를 수신하게 하고, 상기 오디오 데이터는 상기 하나 이상의 제 1 컴퓨팅 디바이스 마이크로폰들을 통해 생성되고, 상기 발음된 사용자 입력은 제 1 컴퓨팅 디바이스에서 적어도 부분적으로 실행되는 어시스턴트를 향한 것이며;
    상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱함에 기초하여, 제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정하게 하고;
    제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정함에 응답하여,
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 초음파 통신을 전송하게 하고,
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 전송된 초음파 통신에 기초하여,
    제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성 및 제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성을 결정하게 하고;
    적어도 제 2 물리적 근접성 및 제 3 물리적 근접성에 기초하여, 적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하게 하고; 그리고
    발음된 사용자 입력을 수신함에 응답하여, 상기 선택된 추가 컴퓨팅 디바이스로 하여금 가청 출력을 제공하게 하는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  12. 제11항에 있어서,
    적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서 추가 컴퓨팅 디바이스를 선택하게 하는 제 1 컴퓨팅 디바이스 명령들은,
    제 2 컴퓨팅 디바이스가 제 3 컴퓨팅 디바이스에 비하여 제 1 컴퓨팅 디바이스에 물리적으로 보다 근접함을 나타내는, 제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성 및 제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성에 기초하여 제 2 컴퓨팅 디바이스를 추가 컴퓨팅 디바이스로 선택하게 하는 제 1 컴퓨팅 디바이스 명령들을 포함하는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  13. 제11항에 있어서,
    적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하는 것은,
    제 2 컴퓨팅 디바이스의 제 2 현재 상태 및 제 3 컴퓨팅 디바이스의 제 3 현재 상태에 또한 기초하는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  14. 제11항에 있어서,
    제 2 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는 오디오 출력 디바이스를 포함하고,
    제 3 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는, 상기 오디오 출력 디바이스와는 별개인 추가 오디오 출력 디바이스를 포함하는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  15. 제11항에 있어서,
    상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱함에 기초하여, 제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정하게 하는 제 1 컴퓨팅 디바이스 명령들은,
    추가 컴퓨팅 디바이스에서 가청 출력을 제공하기 위한 명시적인 사용자 커맨드를 상기 발음된 사용자 입력이 포함하고 있는지를 결정하기 위해 상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱하게 하는 제 1 컴퓨팅 디바이스 명령들을 포함하는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  16. 제15항에 있어서,
    추가 컴퓨팅 디바이스에서 가청 출력을 제공하기 위한 명시적인 사용자 커맨드는, 제 2 컴퓨팅 디바이스 또는 제 3 컴퓨팅 디바이스를 명시적으로 식별하지 않는 것을 특징으로 하는 제 1 컴퓨팅 디바이스.
  17. 컴퓨팅 디바이스들의 시스템으로서,
    제 1 컴퓨팅 디바이스, 제 2 컴퓨팅 디바이스, 및 제 3 컴퓨팅 디바이스를 적어도 포함하고,
    제 1 컴퓨팅 디바이스는,
    적어도 하나의 제 1 컴퓨팅 디바이스 프로세서; 및
    제 1 컴퓨팅 디바이스 명령들을 저장하는 제 1 컴퓨팅 디바이스 메모리
    를 포함하고,
    상기 제 1 컴퓨팅 디바이스 명령들은 실행될 때, 상기 적어도 하나의 제 1 컴퓨팅 디바이스 프로세서로 하여금,
    제 1 컴퓨팅 디바이스의 사용자의 발음된 사용자 입력을 캡처하는 오디오 데이터를 수신하게 하고, 상기 오디오 데이터는 제 1 컴퓨팅 디바이스의 하나 이상의 마이크로폰들을 통해 생성되고, 상기 발음된 사용자 입력은 제 1 컴퓨팅 디바이스에서 적어도 부분적으로 실행되는 어시스턴트를 향한 것이며;
    상기 발음된 사용자 입력을 제 1 컴퓨팅 디바이스에서 로컬로 프로세싱함에 기초하여, 제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정하게 하고;
    제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정함에 응답하여,
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 초음파 통신을 전송하게 하고,
    적어도 제 2 컴퓨팅 디바이스 및 제 3 컴퓨팅 디바이스로 전송된 초음파 통신에 기초하여,
    제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성 및 제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성을 결정하게 하고;
    적어도 제 2 물리적 근접성 및 제 3 물리적 근접성에 기초하여, 적어도 제 2 컴퓨팅 디바이스와 제 3 컴퓨팅 디바이스 중에서, 상기 추가 컴퓨팅 디바이스를 선택하게 하고; 그리고
    발음된 사용자 입력을 수신함에 응답하여, 상기 선택된 추가 컴퓨팅 디바이스로 하여금 가청 출력을 제공하게 하는 것을 특징으로 하는 시스템.
  18. 제17항에 있어서,
    제 2 컴퓨팅 디바이스는,
    적어도 하나의 제 2 컴퓨팅 디바이스 프로세서; 및
    제 2 컴퓨팅 디바이스 명령들을 저장하는 제 2 컴퓨팅 디바이스 메모리를 포함하고,
    상기 제 2 컴퓨팅 디바이스 명령들은 실행될 때, 상기 적어도 하나의 제 2 컴퓨팅 디바이스 프로세서로 하여금,
    제 1 컴퓨팅 디바이스로부터의 초음파 통신을 수신하게 하고,
    제 1 컴퓨팅 디바이스에 대한 제 2 컴퓨팅 디바이스의 제 2 물리적 근접성을 생성하게 하고,
    제 2 물리적 근접성을 제 1 컴퓨팅 디바이스로 전송하게 하며,
    제 3 컴퓨팅 디바이스는,
    적어도 하나의 제 3 컴퓨팅 디바이스 프로세서; 및
    제 3 컴퓨팅 디바이스 명령들을 저장하는 제 3 컴퓨팅 디바이스 메모리를 포함하고,
    상기 제 3 컴퓨팅 디바이스 명령들은 실행될 때, 상기 적어도 하나의 제 3 컴퓨팅 디바이스 프로세서로 하여금,
    제 1 컴퓨팅 디바이스로부터의 초음파 통신을 수신하게 하고,
    제 1 컴퓨팅 디바이스에 대한 제 3 컴퓨팅 디바이스의 제 3 물리적 근접성을 생성하게 하고,
    제 3 물리적 근접성을 제 1 컴퓨팅 디바이스로 전송하게 하는 것을 특징으로 하는 시스템.
  19. 제17항에 있어서,
    제 4 컴퓨팅 디바이스를 더 포함하고,
    제 1 컴퓨팅 디바이스와 통신하는 추가 컴퓨팅 디바이스에서 가청 출력을 제공하기로 결정함에 응답하여, 상기 제 1 컴퓨팅 디바이스 명령들은 또한 상기 적어도 하나의 제 1 컴퓨팅 디바이스 프로세서로 하여금,
    초음파 통신을 제 4 컴퓨팅 디바이스로 전송하게 하고, 제 4 컴퓨팅 디바이스는 제 1 컴퓨팅 디바이스와 통신하며;
    제 4 컴퓨팅 디바이스로 전송된 초음파 통신에 기초하여, 제 1 컴퓨팅 디바이스에 대한 제 4 컴퓨팅 디바이스의 제 4 물리적 근접성을 결정하게 하며,
    적어도 제 2 컴퓨팅 디바이스, 제 3 컴퓨팅 디바이스, 및 제 4 컴퓨팅 디바이스 중에서, 제 4 물리적 근접성에도 또한 기초하여 추가 컴퓨팅 디바이스가 선택되는 것을 특징으로 하는 시스템.
  20. 제17항에 있어서,
    제 2 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는 오디오 출력 디바이스를 포함하고,
    제 3 컴퓨팅 디바이스는 발음된 사용자 입력을 수신함에 응답하여 가청 출력을 제공할 수 있는, 상기 오디오 출력 디바이스와는 별개인 추가 오디오 출력 디바이스를 포함하는 것을 특징으로 하는 시스템.
KR1020227001205A 2017-05-16 2018-05-15 크로스-디바이스 핸드오프 KR102404702B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227017861A KR102470185B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201762507170P 2017-05-16 2017-05-16
US62/507,170 2017-05-16
US201762567600P 2017-10-03 2017-10-03
US62/567,600 2017-10-03
US15/802,568 US10009666B1 (en) 2017-05-16 2017-11-03 Cross-device handoffs
US15/802,568 2017-11-03
KR1020217024689A KR102352655B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
PCT/US2018/032788 WO2018213323A1 (en) 2017-05-16 2018-05-15 Cross-device handoffs

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024689A Division KR102352655B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227017861A Division KR102470185B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프

Publications (2)

Publication Number Publication Date
KR20220012409A KR20220012409A (ko) 2022-02-03
KR102404702B1 true KR102404702B1 (ko) 2022-06-02

Family

ID=62599012

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217024689A KR102352655B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
KR1020197036881A KR102288878B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
KR1020227017861A KR102470185B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
KR1020227001205A KR102404702B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020217024689A KR102352655B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
KR1020197036881A KR102288878B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프
KR1020227017861A KR102470185B1 (ko) 2017-05-16 2018-05-15 크로스-디바이스 핸드오프

Country Status (7)

Country Link
US (5) US10009666B1 (ko)
EP (2) EP3613036B1 (ko)
JP (3) JP6784853B2 (ko)
KR (4) KR102352655B1 (ko)
CN (1) CN110741431B (ko)
AU (3) AU2018270147A1 (ko)
WO (1) WO2018213323A1 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10929782B2 (en) 2016-06-11 2021-02-23 Apple Inc. Integrating restaurant reservation services into a navigation application
US10313461B2 (en) * 2016-11-17 2019-06-04 Facebook, Inc. Adjusting pacing of notifications based on interactions with previous notifications
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10009666B1 (en) * 2017-05-16 2018-06-26 Google Llc Cross-device handoffs
US10200746B1 (en) 2017-07-19 2019-02-05 Google Llc Video integration with home assistant
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11132681B2 (en) 2018-07-06 2021-09-28 At&T Intellectual Property I, L.P. Services for entity trust conveyances
US10802872B2 (en) 2018-09-12 2020-10-13 At&T Intellectual Property I, L.P. Task delegation and cooperation for automated assistants
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11481186B2 (en) * 2018-10-25 2022-10-25 At&T Intellectual Property I, L.P. Automated assistant context and protocol
US11830485B2 (en) * 2018-12-11 2023-11-28 Amazon Technologies, Inc. Multiple speech processing system with synthesized speech styles
US11315590B2 (en) * 2018-12-21 2022-04-26 S&P Global Inc. Voice and graphical user interface
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11973894B2 (en) 2019-04-30 2024-04-30 Apple Inc. Utilizing context information with an electronic device
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11056114B2 (en) 2019-05-30 2021-07-06 International Business Machines Corporation Voice response interfacing with multiple smart devices of different types
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11640469B2 (en) 2019-06-21 2023-05-02 Ventech Solutions, Inc. Method and system for cloud-based software security vulnerability diagnostic assessment
CN110457078B (zh) 2019-08-09 2020-11-24 百度在线网络技术(北京)有限公司 智能服务方法、装置及设备
US11170776B1 (en) * 2019-09-16 2021-11-09 Amazon Technologies, Inc. Speech-processing system
CN110995812A (zh) * 2019-11-26 2020-04-10 杜霄鹤 一种跨平台人工智能助理系统应用方案
CN113127609A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 语音控制方法、装置、服务器、终端设备及存储介质
US11676031B2 (en) 2020-02-25 2023-06-13 Ventech Solutions, Inc. Anatomical position monitoring for bodily pressure ulcers
US11651107B2 (en) * 2020-03-17 2023-05-16 Ventech Solutions, Inc. Securing personally identifiable and private information in conversational AI-based communication
US11568262B2 (en) 2020-03-25 2023-01-31 Ventech Solutions, Inc. Neural network based radiowave monitoring of fall characteristics in injury diagnosis
KR102523917B1 (ko) * 2020-05-11 2023-04-19 애플 인크. 디지털 어시스턴트 하드웨어 추출
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) * 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11120805B1 (en) * 2020-06-19 2021-09-14 Micron Technology, Inc. Intelligent microphone having deep learning accelerator and random access memory
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US20220319505A1 (en) * 2021-02-12 2022-10-06 Ashwarya Poddar System and method for rapid improvement of virtual speech agent's natural language understanding
US11595517B2 (en) * 2021-04-13 2023-02-28 Apple Inc. Digital assistant integration with telephony
US11917482B2 (en) 2021-04-23 2024-02-27 Zoom Video Communications, Inc. System and method for proximity-based session handover
CN115497470A (zh) * 2021-06-18 2022-12-20 华为技术有限公司 跨设备的对话业务接续方法、系统、电子设备和存储介质
US11922938B1 (en) 2021-11-22 2024-03-05 Amazon Technologies, Inc. Access to multiple virtual assistants

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173036A1 (en) 2012-12-13 2014-06-19 Motorola Mobility Llc System and Methods for Preventing Interruptions due to Battery Drain During Streaming Media Sessions Between Devices
US20140245140A1 (en) 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
US20140257807A1 (en) 2013-03-06 2014-09-11 Nuance Communications, Inc. Speech recognition and interpretation system
US20160155443A1 (en) 2014-11-28 2016-06-02 Microsoft Technology Licensing, Llc Device arbitration for listening devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015818B2 (en) * 2009-07-31 2015-04-21 Adobe Systems Incorporated Software application operational transfer
US9363691B1 (en) * 2010-01-13 2016-06-07 Sprint Communications Company L.P. Application transfer negotiation for a media device
US8494439B2 (en) * 2010-05-04 2013-07-23 Robert Bosch Gmbh Application state and activity transfer between devices
US8171137B1 (en) * 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
US8931016B2 (en) * 2011-09-15 2015-01-06 Verizon Patent And Licensing Inc. Program handoff between devices and program network offloading
US9507630B2 (en) * 2012-02-09 2016-11-29 Cisco Technology, Inc. Application context transfer for distributed computing resources
US9172747B2 (en) * 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US20140279889A1 (en) * 2013-03-14 2014-09-18 Aliphcom Intelligent device connection for wireless media ecosystem
US9804820B2 (en) * 2013-12-16 2017-10-31 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US10162593B2 (en) * 2014-01-22 2018-12-25 Apple Inc. Coordinated hand-off of audio data transmission
KR102342623B1 (ko) * 2014-10-01 2021-12-22 엑스브레인, 인크. 음성 및 연결 플랫폼
CN106796570B (zh) * 2014-10-27 2020-10-09 索尼公司 信息处理设备、信息处理方法和计算机程序
US9690542B2 (en) * 2014-12-22 2017-06-27 Microsoft Technology Licensing, Llc Scaling digital personal assistant agents across devices
US10567477B2 (en) * 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10331312B2 (en) * 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
CN105554283B (zh) * 2015-12-21 2019-01-15 联想(北京)有限公司 一种信息处理方法及电子设备
US10009666B1 (en) 2017-05-16 2018-06-26 Google Llc Cross-device handoffs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173036A1 (en) 2012-12-13 2014-06-19 Motorola Mobility Llc System and Methods for Preventing Interruptions due to Battery Drain During Streaming Media Sessions Between Devices
US20140245140A1 (en) 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
US20140257807A1 (en) 2013-03-06 2014-09-11 Nuance Communications, Inc. Speech recognition and interpretation system
US20160155443A1 (en) 2014-11-28 2016-06-02 Microsoft Technology Licensing, Llc Device arbitration for listening devices

Also Published As

Publication number Publication date
KR102470185B1 (ko) 2022-11-23
JP6784853B2 (ja) 2020-11-11
US10560761B2 (en) 2020-02-11
CN110741431B (zh) 2021-08-17
US20220060804A1 (en) 2022-02-24
EP3613036A1 (en) 2020-02-26
KR20220012409A (ko) 2022-02-03
US20230239596A1 (en) 2023-07-27
CN110741431A (zh) 2020-01-31
US20180338191A1 (en) 2018-11-22
KR20220080005A (ko) 2022-06-14
EP4152315A1 (en) 2023-03-22
US20200120401A1 (en) 2020-04-16
JP2021072137A (ja) 2021-05-06
JP2020521164A (ja) 2020-07-16
KR102288878B1 (ko) 2021-08-11
JP6834054B2 (ja) 2021-02-24
AU2018270147A1 (en) 2019-12-05
US11166087B2 (en) 2021-11-02
US11641535B2 (en) 2023-05-02
AU2022200656A1 (en) 2022-02-24
KR20200007908A (ko) 2020-01-22
AU2022200656B2 (en) 2023-02-02
AU2020273370A1 (en) 2020-12-17
AU2020273370B2 (en) 2021-11-25
JP2021007057A (ja) 2021-01-21
KR102352655B1 (ko) 2022-01-18
US10009666B1 (en) 2018-06-26
EP3613036B1 (en) 2022-11-16
KR20210099203A (ko) 2021-08-11
CN113783928A (zh) 2021-12-10
JP7216751B2 (ja) 2023-02-01
WO2018213323A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
KR102404702B1 (ko) 크로스-디바이스 핸드오프
US11380331B1 (en) Virtual assistant identification of nearby computing devices
CN113783928B (zh) 跨设备切换

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right