KR20240023435A - 제2 디바이스(eg tv)를 제어하기 위해 제1 디바이스에서 가상 원격 제어 - Google Patents

제2 디바이스(eg tv)를 제어하기 위해 제1 디바이스에서 가상 원격 제어 Download PDF

Info

Publication number
KR20240023435A
KR20240023435A KR1020247001862A KR20247001862A KR20240023435A KR 20240023435 A KR20240023435 A KR 20240023435A KR 1020247001862 A KR1020247001862 A KR 1020247001862A KR 20247001862 A KR20247001862 A KR 20247001862A KR 20240023435 A KR20240023435 A KR 20240023435A
Authority
KR
South Korea
Prior art keywords
computing device
communication channel
target
content
source
Prior art date
Application number
KR1020247001862A
Other languages
English (en)
Inventor
보 왕
마누엘 앙헬 우레노
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20240023435A publication Critical patent/KR20240023435A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/4222Remote control device emulator integrated into a non-television apparatus, e.g. a PDA, media center or smart toy
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • H04N21/41265The peripheral being portable, e.g. PDAs or mobile phones having a remote control device for bidirectional communication between the remote control device and client device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/42225User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details characterized by types of remote control, e.g. universal remote control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data

Abstract

디지털 어시스턴트 디바이스 간 가상 원격 제어가 제공된다. 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스를 검출하고 제2 컴퓨팅 디바이스의 성능을 결정한다. 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 제어할 수 있음을 나타내는 프롬프트를 생성한다. 제1 컴퓨팅 디바이스는 프롬프트에 응답하여, 제2 컴퓨팅 디바이스를 제어하라는 명령을 수신한다. 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스와의 통신 채널을 설정한다. 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스의 가상 컨트롤러를 호출한다. 가상 컨트롤러는 제2 컴퓨팅 디바이스를 제어하기 위해 제1 컴퓨팅 디바이스에 의해 수신된 질의를 통신 채널을 통해 제2 컴퓨팅 디바이스로 포워딩한다.

Description

제2 디바이스(EG TV)를 제어하기 위해 제1 디바이스에서 가상 원격 제어
텔레비전과 같은 컴퓨팅 디바이스는 컴퓨팅 디바이스 전용인 리모콘으로부터 명령을 수신할 수 있다. 그러나, 컴퓨팅 디바이스나 리모콘은 제한된 기능이나 제한된 인터페이스를 가질 수 있다.
본 개시는 일반적으로 디지털 어시스턴트 디바이스 간의 가상 원격 제어에 관한 것이다. 물리적 위치에는 다수의 컴퓨팅 디바이스가 있거나 포함될 수 있다. 컴퓨팅 디바이스들은 서로 다른 프로그램을 실행하여 하나의 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스와 통신하는 것이 어렵거나 불가능한 단편적인 사일로형(silo-like) 환경을 형성할 수 있다. 예를 들어, 각 컴퓨팅 디바이스는 특정 컴퓨팅 디바이스에 대해 맞춤화되거나 구성되는 다양한 유형의 하드웨어 및 운영 체제를 가질 수 있다. 또한, 어떤 컴퓨팅 디바이스에 어떤 기능이 있는지 추적하거나 결정하는 것이 어려울 수 있으며, 이로 인해 사용자 경험이 저하되거나 디바이스의 성능(capability) 부족으로 인해 특정 기능을 효율적으로 수행할 수 없게 될 수 있다. 예를 들어, 디지털 어시스턴트 디바이스로 구성된 스마트 TV나 모니터는 모니터는 물리적 리모콘으로 제어될 수 있다. 그러나, 리모컨을 사용할 수 없거나 분실했거나 작동하지 않는 경우, 스마트 TV나 모니터를 제어하는 것이 어려울 수 있다. 또한, 스마트 텔레비전이나 모니터는 제한된 인터페이스를 갖거나 열악한 사용자 인터페이스로 구성될 수 있다.
본 기술 솔루션의 시스템 및 방법은 디지털 어시스턴트 디바이스 간의 가상 원격 제어를 제공한다. 예시적인 예에서, 스마트 워치와 같은 웨어러블 컴퓨팅 디바이스는 프레즌스(presence, 존재) 신호를 브로드캐스팅하고 있는 스마트 텔레비전 컴퓨팅 디바이스 근처로 가져갈 수 있다. 웨어러블 컴퓨팅 디바이스는 스마트 텔레비전의 프레즌스 신호를 검출한 후 스마트 텔레비전의 성능을 결정할 수 있다. 스마트 워치는 스마트 워치에서 스마트 TV를 제어하는 기능을 나타내는 아이콘을 표시할 수 있다. 사용자로부터의 입력에 응답하여 스마트 워치는 핸드셰이킹 프로세스를 수행하여 스마트 TV와의 통신 채널을 설정하고 스마트 워치 상의 가상 컨트롤러를 호출할 수 있다. 그러면 스마트 워치는 스마트 워치 사용자로부터 음성 질의 또는 기타 입력을 수신할 수 있으며, 이는 처리를 위해 스마트 TV로 포워딩될 수 있다. 스마트 TV는 스마트 워치로부터 질의를 수신하고 그 질의가 스마트 TV에 의해 직접 수신된 것처럼 해당 질의를 처리하여 스마트 워치를 통해 스마트 TV의 원활한 가상 제어를 제공할 수 있다. 스마트 워치가 스마트 TV와 페어링되는 동안, 스마트 워치는 활성 통신 채널과 가상 컨트롤러를 나타내기 위해 스마트 워치에 지속성(persistent)을 디스플레이할 수 있다.
적어도 하나의 양태는 디바이스의 동적 원격 제어를 위한 시스템에 관한 것이다. 시스템은 하나 이상의 프로세서와 메모리를 갖는 제1 컴퓨팅 디바이스를 포함할 수 있다. 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스의 범위 내에 위치하는 제2 컴퓨팅 디바이스를 검출할 수 있다. 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스를 검출하는 것에 응답하여, 제2 컴퓨팅 디바이스의 성능을 결정할 수 있다. 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스의 성능에 기초하여, 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 제어할 수 있음을 나타내는 프롬프트를 생성할 수 있다. 제1 컴퓨팅 디바이스는 프롬프트에 응답하여 제2 컴퓨팅 디바이스를 제어하라는 명령을 수신할 수 있다. 제1 컴퓨팅 디바이스는 명령에 응답하여 제2 컴퓨팅 디바이스와의 통신 채널을 설정할 수 있다. 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스 상의 가상 컨트롤러를 호출할 수 있다. 가상 컨트롤러는 제2 컴퓨팅 디바이스를 제어하기 위해 제1 컴퓨팅 디바이스에 의해 수신된 질의를 통신 채널을 통해 제2 컴퓨팅 디바이스로 포워딩할 수 있다.
적어도 하나의 양태는 디바이스의 동적 원격 제어 방법에 관한 것이다. 방법은 하나 이상의 프로세서 및 메모리를 갖는 제1 컴퓨팅 디바이스에 의해 수행될 수 있다. 방법은 제1 컴퓨팅 디바이스가 제1 컴퓨팅 디바이스의 범위 내에 위치된 제2 컴퓨팅 디바이스를 검출하는 단계를 포함할 수 있다. 방법은 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 검출하는 것에 응답하여, 제2 컴퓨팅 디바이스의 성능을 결정하는 단계를 포함할 수 있다. 방법은 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스의 성능에 기초하여, 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 제어할 수 있음을 나타내는 프롬프트를 생성하는 단계를 포함할 수 있다. 방법은 제1 컴퓨팅 디바이스가 프롬프트에 응답하여, 제2 컴퓨팅 디바이스를 제어하라는 명령을 수신하는 단계를 포함할 수 있다. 방법은 제1 컴퓨팅 디바이스가 명령에 응답하여, 제2 컴퓨팅 디바이스와의 통신 채널을 설정하는 단계를 포함할 수 있다. 방법은 제1 컴퓨팅 디바이스가 제1 컴퓨팅 디바이스 상의 가상 컨트롤러를 호출하는 단계를 포함할 수 있다. 가상 컨트롤러는 제2 컴퓨팅 디바이스를 제어하기 위해 제1 컴퓨팅 디바이스에 의해 수신된 질의를 통신 채널을 통해 제2 컴퓨팅 디바이스로 포워딩할 수 있다.
이러한 양태와 다른 양태 및 구현에 대해서는 아래에서 자세히 설명한다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태 및 구현의 예시를 포함하고, 청구된 양태 및 구현의 성격과 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태와 구현에 대한 설명과 추가 이해를 제공하며 본 명세서에 포함되어 일부를 구성한다.
첨부된 도면은 일정한 비율로 그려지도록 의도된 것은 아니다. 다양한 도면에서 유사한 참조 번호 및 지정은 유사한 요소를 나타낸다. 명확성을 위해, 모든 도면에서 모든 구성요소에 라벨을 지정되지는 않는다.
도 1은 구현에 따른 디지털 어시스턴트 디바이스 간의 가상 원격 제어를 위한 예시적인 시스템의 예시이다.
도 2는 구현에 따른 디지털 어시스턴트 디바이스 간의 가상 원격 제어를 위한 시스템의 예시적인 동작의 예시이다.
도 3은 구현에 따른 디지털 어시스턴트 디바이스 간의 가상 원격 제어의 예시적인 방법의 예시이다.
도 4는 예를 들어, 도 1 및 2에 도시된 시스템과 도 3에 도시된 방법을 포함하여 본 명세서에 설명되고 예시된 시스템 및 방법의 요소를 구현하기 위해 채용될 수 있는 컴퓨터 시스템에 대한 아키텍처를 도시하는 블록도이다.
다음은 디지털 어시스턴트 디바이스 중 가상 원격 제어의 방법, 장치 및 시스템과 관련된 다양한 개념과 구현에 대한 더 자세한 설명이다. 위에서 소개되고 아래에서 더 자세히 논의되는 다양한 개념은 다양한 방식으로 구현될 수 있다.
본 기술 솔루션은 일반적으로 디지털 어시스턴트 디바이스 간의 가상 원격 제어에 관한 것이다. 예를 들어, 디지털 어시스턴트는 전 세계 10억 개 이상의 컴퓨팅 디바이스에서 사용될 수 있다. 그러나, 이러한 컴퓨팅 디바이스에는 다양한 하드웨어와 소프트웨어가 포함되어 있어 디바이스 간의 큰 조각화(fragmentation)를 유발하고 디바이스가 수행할 수 있는 기능을 수행하기 위해 디바이스 간에 효과적으로 통신할 수 없게 된다. 따라서, 본 기술 솔루션은 마치 사용자가 물리적 원격 제어, 터치 또는 타겟 디바이스의 기타 디폴트 인터페이스를 사용하여 타겟 디바이스와 물리적으로 직접 상호 작용한 것처럼 동일한 사용자 인터페이스 및 사용자 경험을 제공하는 방식으로 사용자의 개인 디바이스(예를 들어, 모바일 디바이스, 전화기, 시계, 스피커 또는 헤드셋)로 다른 디바이스(예를 들어, 텔레비전, 스마트 디스플레이, 자동차 또는 사물 인터넷("IOT") 디바이스)를 원활하게 제어할 수 있도록 설계, 구성 및 작동하는 가상 컨트롤러를 제공할 수 있다.
다양한 액션 순서나 중요한 사용자 여정(journey)을 수행하기 위해 교차 디바이스(cross device, 디바이스 간) 제어를 제공하는 것은 어려울 수 있다. 교차 디바이스 제어를 위해 구성된 사전 정의된 제한된 중요 사용자 여정 세트가 있을 수 있다. 액션 세트를 수행하도록 타겟 디바이스가 구성될 수 있는 반면, 해당 액션들 중 일부만 타겟 디바이스와 상이한 소스 디바이스에 의해 그 타겟 디바이스상에서 수행될 수 있다. 예를 들어, 타겟 디바이스는 "액션 영화 보여 줘; 오늘 날씨 보여 줘; 내 사진 보여 줘. Movie_Name 재생해 줘; 일시 중지(pause)/재개(resume); TV 켜 줘"와 같은 질의들을 수행할 수 있다. 그러나, 타겟 디바이스는 질의가 다른 디바이스(예를 들어, 소스 디바이스)에 의해 처음 수신된 후 소스 디바이스가 타겟 디바이스를 제어하려고 시도하는 경우에만 그 질의들의 서브세트를 수행할 수 있다. 예를 들어, 소스 디바이스는 타겟 디바이스에서 :내 TV에 액션 영화를 보여 줘; 내 TV에 오늘 날씨를 보여 줘; 및 내 TV에 내 사진을 보여 줘와 같은 기능을 실행하지 못할 수 있다. 또한, 이러한 교차 디바이스 제어가 제대로 작동하려면 추가 또는 과도한 입력이 필요할 수 있다. 예를 들어, 사용자는 각 질의와 함께 타겟 디바이스의 이름을 입력해야 할 수 있다. 이는 사용자가 추가 입력을 제공하도록 요구할 수 있을 뿐만 아니라 소스 컴퓨팅 디바이스 또는 기타 컴퓨팅 디바이스가 추가 자연어 처리 또는 기타 처리를 수행하여 질의를 파싱(분석)하고 타겟 디바이스의 이름을 식별하도록 요구할 수도 있다. 게다가, 교차 디바이스와 타겟 디바이스는 사일로(silo)로 구축되므로 동일하거나 유사한 기능을 수행하는 중복된 스택을 가질 수 있으며, 이로 인해 좋은 사용자 경험을 제공하거나 저하시키지 않으면서 스택을 불필요하게 복잡하게 만들고 기술 부채(technology debt)를 축적하게 된다. .
따라서, 본 기술 솔루션의 시스템 및 방법은 원활한 교차 디바이스 제어를 제공할 수 있는 가상 컨트롤러를 제공할 수 있다. 이 기술 솔루션의 가상 컨트롤러는 어떤 디바이스가 가상 컨트롤러가 호출되는 소스 디바이스인지에 관계없이 타겟 디바이스에서 동일한 사용자 경험을 제공할 수 있다. 가상 컨트롤러는 사용자가 새로운 사용자 인터페이스를 배울 필요 없이 다른 타겟 디바이스에 액세스하도록 안내하는 사전 예방적 사용자 인터페이스를 제공함으로써 쉽게 사용할 수 있다. 이 기술 솔루션의 가상 컨트롤러는 단일의 통합된 수평 스택을 활용하여 다수의 디지털 표면 및 타겟 디바이스에서 동일한 경험을 제공할 수 있다.
도 1은 구현에 따른 디지털 어시스턴트 디바이스 간의 가상 원격 제어를 위한 예시적인 시스템(100)을 예시한다. 시스템(100)은 컨텐츠 선택 인프라를 포함할 수 있다. 시스템(100)은 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 소스 컴퓨팅 디바이스(112), 타겟 컴퓨팅 디바이스(132), 또는 보조(supplemental) 디지털 컨텐츠 제공자 디바이스(144) 중 하나 이상과 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 광역, 메트로, 또는 기타 영역 네트워크, 인트라넷, 위성 네트워크, 및 음성 또는 데이터 이동 전화 네트워크와 같은 기타 통신 네트워크와 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(105)는 적어도 하나의 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132) 상에 제공, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름 또는 URL과 같은 정보 리소스에 액세스하는데 사용될 수 있다. 소스 컴퓨팅 디바이스(112)는 예를 들어 랩탑, 데스크탑, 태블릿, 디지털 어시스턴트 디바이스, 스마트폰, 이동 통신 디바이스, 휴대용 컴퓨터, 스마트 워치, 헤드셋 또는 스피커를 포함할 수 있다. 타겟 컴퓨팅 디바이스(132)는 예를 들어 텔레비전, 스마트 디스플레이, 자동차 장치(unit), 또는 네트워크 연결 디바이스(예를 들어, 사물 인터넷("IoT") 디바이스)를 포함할 수 있다. 예를 들어, 네트워크(105)를 통해 소스 컴퓨팅 디바이스(112) 또는 대상 컴퓨팅 디바이스(132)의 사용자는 보조 디지털 콘텐츠 제공자 디바이스(144)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다. 일부 경우, 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)는 디스플레이를 포함할 수도 있고 포함하지 않을 수도 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우, 컴퓨팅 디바이스(112 또는 132)의 주요 사용자 인터페이스는 마이크로폰 및 스피커 또는 음성 인터페이스일 수 있다. 일부 경우, 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)에 연결된 디스플레이 디바이스(122)를 포함하고, 컴퓨팅 디바이스(112)의 주요 사용자 인터페이스는 디스플레이 디바이스(122)를 활용할 수 있다. 타겟 컴퓨팅 디바이스(132)는 디스플레이 디바이스 또는 스피커와 같은 하나 이상의 출력 인터페이스를 포함할 수 있다.
소스 컴퓨팅 디바이스(112)는 사용자가 사용하고 있거나 사용자가 소유하고 있는 컴퓨팅 디바이스를 지칭할 수 있다. 소스 컴퓨팅 디바이스(112)는 웨어러블 디바이스 또는 모바일 디바이스일 수 있다. 소스 컴퓨팅 디바이스(112)는 사용자가 한 위치에서 다른 위치로 여행하거나 이동할 때 사용자와 함께 위치할 수 있다. 소스 컴퓨팅 디바이스(112)는 고정된 디바이스일 수도 있고 특정 기간 동안 동일한 위치에 유지되는 디바이스일 수도 있다. 타겟 컴퓨팅 디바이스(132)는 거주지, 주거용 주택(residential dwelling), 주택(home), 아파트, 콘도미니엄과 같은 개인 환경에 위치한 컴퓨팅 디바이스 또는 클라이언트 디바이스를 지칭할 수 있다. 타겟 컴퓨팅 디바이스(132)는 호텔, 사무실, 레스토랑, 소매점, 쇼핑몰 또는 공원과 같은 공공 장소에 위치할 수 있다.
소스 컴퓨팅 디바이스(112)는 크로스 디바이스(cross device)로 지칭될 수 있다. 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)를 제어하기 위해 사용자가 인터페이스하는 디바이스를 지칭할 수 있다. 타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)에 의해 제어되는 디바이스를 지칭할 수 있다.
네트워크(105)는 디스플레이 네트워크, 예를 들어 컨텐츠 배치 또는 검색 엔진 결과 시스템과 관련되거나 디지털 구성요소 배치 캠페인의 일부로서 제3자 디지털 구성요소를 포함할 수 있는 인터넷에서 이용 가능한 정보 리소스의 서브세트를 포함하거나 구성할 수 있다. 네트워크(105)는 데이터 처리 시스템(102)에 의해 사용되어, 소스 클라이언트 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 의해 제공, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름 또는 URL과 같은 정보 리소스에 액세스할 수 있다. 예를 들어, 네트워크(105)를 통해 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 사용자는 보조 디지털 컨텐츠 제공자 디바이스(144)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다.
네트워크(105)는 임의의 유형 또는 형태의 네트워크일 수 있고, 점대점 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 통신망, 통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크 중 임의의 것을 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타, 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 고급 휴대 전화 프로토콜("AMPS"), 시분할 다중 접속("TDMA"), 코드 분할 다중 접속("CDMA"), 이동통신용 글로벌 시스템("GSM"), 일반 패킷 무선 서비스("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 비롯하여 모바일 디바이스 간 통신에 사용되는 임의의 프로토콜을 사용하는 모바일 전화 네트워크를 포함할 수 있다. 서로 다른 유형의 데이터가 서로 다른 프로토콜을 통해 전송될 수 있으며, 동일한 유형의 데이터가 서로 다른 프로토콜을 통해 전송될 수 있다.
시스템(100)은 적어도 하나의 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 예를 들어, 소스 컴퓨팅 디바이스(112), 타겟 컴퓨팅 디바이스(132) 또는 보조 디지털 컨텐츠 제공자 디바이스(144)(또는 제3자 컨텐츠 제공자 디바이스, 컨텐츠 제공자 디바이스)와 통해 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 적어도 하나의 데이터 센터에 위치한 복수의 계산 리소스 또는 서버를 포함할 수 있다. 데이터 처리 시스템(102)은 논리적으로 그룹화된 다수의 서버를 포함할 수 있고 분산 컴퓨팅 기술을 용이하게 할 수 있다. 서버의 논리적 그룹은 데이터 센터, 서버 팜 또는 머신 팜이라고 지칭될 수 있다. 서버는 지리적으로 분산될 수도 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리될 수 있으며, 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 이기종일 수 있다. 즉, 하나 이상의 서버 또는 머신은 하나 이상의 운영 체제 플랫폼의 유형에 따라 작동할 수 있다.
머신 팜의 서버는 관련 스토리지 시스템과 함께 고밀도 랙 시스템에 저장될 수 있으며 기업 데이터 센터에 위치할 수 있다. 예를 들어, 이러한 방식으로 서버를 통합하면 지역화된 고성능 네트워크에 서버와 고성능 스토리지 시스템을 배치하여 시스템 관리 효율성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하는 데이터 처리 시스템(102) 구성요소의 전부 또는 일부를 중앙 집중화하고 이들을 고급 시스템 관리 도구와 결합하면 서버 리소스를 보다 효율적으로 사용할 수 있으며, 이는 전력 및 처리 요구 사항을 절약하고 대역폭 사용량을 줄인다.
시스템(100)은 보조 디지털 컨텐츠 제공자 디바이스(144) 또는 서비스 제공자 디바이스와 같은 적어도 하나의 제3자 디바이스를 포함하거나, 액세스하거나, 이와 상호작용할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144) 또는 다른 서비스 제공자 디바이스는 예를 들어, 소스 컴퓨팅 디바이스(112), 데이터 처리 시스템(102) 또는 타겟 컴퓨팅 디바이스(132)와 네트워크(105)를 통해 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 오디오 출력 디지털 구성요소로서 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 의한 디스플레이를 위한 오디오 기반 디지털 구성요소를 제공할 수 있다. 디지털 구성요소는 제3자 스폰서에 의해 제공되므로 후원(sponsored) 디지털 구성요소라고 할 수 있다. 디지털 구성요소에는 "택시를 불러드릴까요?"라는 음성 기반 메시지와 같은 상품이나 서비스에 대한 제안이 포함될 수 있다. 예를 들어, 보조 디지털 컨텐츠 제공자 디바이스(144)는 음성 기반 질의에 응답하여 제공될 수 있는 일련의 오디오 디지털 구성요소를 저장하는 메모리를 포함할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144)는 또한 오디오 기반 디지털 구성요소(또는 다른 디지털 구성요소)를 데이터 처리 시스템(102)에 제공할 수 있으며, 여기서 이들은 데이터 처리 시스템(102)의 데이터 저장소에 저장될 수 있다. 데이터 처리 시스템(102)은 오디오 디지털 구성요소를 선택하고 그 오디오 디지털 구성요소를 소스 컴퓨팅 디바이스(112)에 제공(또는 보조 디지털 컨텐츠 제공자 디바이스(144)에 제공하도록 지시)할 수 있다. 오디오 기반 디지털 구성요소는 오디오로만 구성되거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다.
데이터 처리 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 갖는 컨텐츠 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 인터페이스(104)를 포함하거나, 적어도 하나의 인터페이스(104)와 인터페이스하거나 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 자연어 프로세서(106)(또는 자연어 프로세서 구성요소)를 포함하거나, 그와 인터페이스하거나 통신할 수 있다. 인터페이스(104) 또는 자연어 프로세서(106)는 서버 디지털 어시스턴트 구성요소를 형성하거나 그 구성요소로 지칭될 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 서버 디지털 어시스턴트(108)(또는 서버 디지털 어시스턴트 구성요소)를 포함하거나, 그와 인터페이스하거나 통신할 수 있다. 서버 디지털 어시스턴트(108)는 데이터를 제공하거나 데이터를 수신하거나 다른 기능을 수행하기 위해 하나 이상의 음성 기반 인터페이스 또는 다양한 디지털 어시스턴트 디바이스 또는 표면과 통신하거나 인터페이싱할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 컨텐츠 선택기(110)(또는 컨텐츠 선택기 구성요소)를 포함할 수 있다.
데이터 처리 시스템(102), 인터페이스(104), NLP(106) 또는 컨텐츠 선택기(110)는 적어도 하나의 처리 유닛 또는 프로그래밍 가능한 논리 어레이 엔진과 같은 다른 논리 디바이스, 또는 데이터 처리 시스템(102)의 데이터 저장소 또는 데이터베이스와 통신하도록 구성된 모듈을 각각 포함할 수 있다. 인터페이스(104), NLP(106), 또는 컨텐츠 선택기(110)는 개별 구성요소, 단일 구성요소, 또는 데이터 처리 시스템(102)의 일부일 수 있다. 데이터 처리 시스템(102)과 같은 시스템(100) 및 그의 구성요소는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 요소를 포함할 수 있다.
데이터 처리 시스템(102)은 복수의 소스 컴퓨팅 디바이스(112)(또는 컴퓨팅 디바이스 또는 디지털 어시스턴트 디바이스) 또는 타겟 컴퓨팅 디바이스(132)와 연관된 익명의 컴퓨터 네트워크 활동 정보를 얻을 수 있다. 소스 컴퓨팅 디바이스(112) 또는 모바일 컴퓨팅 디바이스의 사용자는 소스 컴퓨팅 디바이스(112) 또는 모바일 컴퓨팅 디바이스에 대응하는 네트워크 활동 정보를 획득하기 위해 데이터 처리 시스템(102)에 긍정적인 권한을 부여할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 소스 컴퓨팅 디바이스(112)의 사용자에게 하나 이상의 유형의 네트워크 활동 정보를 얻는데 동의하도록 프롬프트할 수 있다. 소스 컴퓨팅 디바이스(112)는 스마트폰, 태블릿, 스마트워치 또는 웨어러블 디바이스와 같은 모바일 컴퓨팅 디바이스를 포함할 수 있다. 소스 컴퓨팅 디바이스(112)의 사용자 신원은 익명으로 유지될 수 있고, 소스 컴퓨팅 디바이스(112)는 고유 식별자(예를 들어, 데이터 처리 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공되는 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 데이터 처리 시스템(102)은 각 관찰을 대응하는 고유 식별자와 연관시킬 수 있다.
데이터 처리 시스템(102)은 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 형성 또는 동작하는 인터페이스(104)(또는 인터페이스 구성요소)를 포함할 수 있다. 인터페이스(104)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(104)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스, 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(104)는 데이터를 한 형식에서 다른 형식으로 변환하거나 포맷하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(104)는 소프트웨어 구성요소와 같은 다양한 구성요소 사이의 통신을 위한 정의를 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다. 인터페이스(104)는 네트워크(105)를 통해 소스 컴퓨팅 디바이스(112), 보조 디지털 컨텐츠 제공자 디바이스(144), 또는 타겟 컴퓨팅 디바이스(132) 중 하나 이상과 통신할 수 있다.
데이터 처리 시스템(102)은 입력 오디오 신호를 데이터 처리 시스템(102)의 인터페이스(104)에 전달하고 소스 클라이언트 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 구성요소를 구동하여 출력 시각적 또는 오디오 신호를 렌더링하는 앱과 같은 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 설치된 애플리케이션, 스크립트 또는 프로그램과 인터페이스할 수 있다. 데이터 처리 시스템(102)은 오디오 입력 신호를 포함하거나 식별하는 데이터 패킷 또는 다른 신호를 수신할 수 있다.
데이터 처리 시스템(102)은 자연어 프로세서("NLP")(106)를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 수신된 입력 오디오 신호 또는 질의를 분석하기 위해 NLP(106)를 실행하거나 실행할 수 있다. 예를 들어, NLP(106)는 인간과 컴퓨터 간의 상호 작용을 제공할 수 있다. NLP(106)는 자연어를 이해하고 데이터 처리 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출할 수 있도록 하는 기술로 구성될 수 있다. NLP(106)는 통계적 기계 학습과 같은 기계 학습 기반 기술을 포함하거나 구성될 수 있다. NLP(106)는 결정 트리, 통계 모델 또는 확률 모델을 활용하여 입력 오디오 신호를 분석할 수 있다. NLP(106)는 예를 들어 명명된 개체(entity) 인식(예를 들어, 텍스트 스트림이 주어지면 텍스트 맵의 어떤 항목이 사람이나 장소와 같은 적절한 이름에 매핑되는지, 그리고 사람, 위치, 조직과 같은 각 이름의 유형이 무엇인지 결정), 자연어 생성(예를 들어, 컴퓨터 데이터베이스나 의미론적 의도의 정보를 이해할 수 있는 인간 언어로 변환), 자연어 이해(예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수 있는 1차(first-order) 논리 구조와 같은 보다 형식적인 표현으로 변환), 기계 번역(예를 들어, 텍스트를 한 인간 언어에서 다른 언어로 자동 번역), 형태학적 분할(예를 들어, 고려되는 언어 단어의 형태나 구조의 복잡성에 따라 어려울 수 있는 단어를 개별 형태소로 분리하고 형태소 클래스를 식별함), 질문 답변(예를 들어, 구체적이거나 개방형일 수 있는 인간 언어 질문에 대한 답변 결정), 시맨틱(의미론적) 처리(예를 들어, 식별된 단어를 유사한 의미를 가진 다른 단어와 연관시키기 위해 단어를 식별하고 그 의미를 인코딩한 후에 발생할 수 있는 처리)와 같은 기능을 수행할 수 있다.
NLP(106)는 입력 신호를 저장된 대표 오디오 파형 세트와 비교하고 가장 가까운 일치(match) 항목을 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소 또는 데이터 처리 시스템(102)에 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표 파형은 대규모 사용자 세트에 걸쳐 생성된 다음 사용자의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP(106)는 예를 들어 사용자에 대한 트레이닝을 통해 또는 수동 사양을 통해 데이터 처리 시스템(102)이 제공할 수 있는 액션과 연관된 단어에 텍스트를 매칭시킨다. NLP(106)의 양태 또는 기능은 데이터 처리 시스템(102), 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 의해 수행될 수 있다. 예를 들어, NLP 구성요소는 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에서 실행되어 입력 오디오 신호를 텍스트로 변환하고 추가 자연어 처리를 위해 텍스트를 데이터 패킷을 통해 데이터 처리 시스템(102)으로 전송하는 양태를 수행할 수 있다.
오디오 입력 신호는 소스 클라이언트 컴퓨팅 디바이스(112)의 센서 또는 변환기(transducer)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기, 오디오 드라이버 또는 기타 구성요소를 통해, 소스 컴퓨팅 디바이스(112)는 오디오 입력 신호를 (예를 들어, 네트워크(105)를 통해) 데이터 처리 시스템(102)에 제공할 수 있으며, 여기서 오디오 입력 신호는 (예를 들어, 인터페이스(104)에 의해) 수신되어 NLP(106)에 제공되거나 데이터 저장소에 저장될 수 있다.
데이터 처리 시스템(102)은 인터페이스(104)를 통해 소스 컴퓨팅 디바이스(112)의 마이크로폰 또는 타겟 컴퓨팅 디바이스(132)의 마이크로폰에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신할 수 있다. 데이터 처리 시스템(102)은 마이크로폰에 의해 검출된 입력 오디오 신호에 기초하여 생성된 데이터 패킷을 수신할 수 있다. 데이터 패킷은 필터링되거나 필터링되지 않을 수 있다. 데이터 패킷은 검출된 입력 오디오 신호의 디지털화된 버전일 수 있다. 데이터 패킷은 검출된 입력 오디오 신호에 기초하여 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 의해 생성된 텍스트를 포함할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)의 소스 디지털 어시스턴트(114) 또는 타겟 컴퓨팅 디바이스(132)의 타겟 디지털 어시스턴트(142)는 검출된 입력 오디오 신호를 처리하고 추가 처리를 위해 또는 액션을 수행하기 위해 처리된 입력 오디오 신호에 기초하여 데이터 패킷을 서버 디지털 어시스턴트(108)로 전송할 수 있다.
데이터 처리 시스템(102)은 서버 디지털 어시스턴트(108)를 포함할 수 있다. 서버 디지털 어시스턴트(108) 및 NLP(106)는 단일 구성요소일 수 있거나, 서버 디지털 어시스턴트(108)는 NLP(106)의 하나 이상의 구성요소 또는 기능을 포함할 수 있다. 서버 디지털 어시스턴트(108)는 NLP(106)와 인터페이스할 수 있다. 데이터 처리 시스템(102)(예를 들어, 서버 디지털 어시스턴트(108))는 액션을 수행하거나 음성 입력에 응답하기 위해 데이터 패킷을 처리할 수 있다. 일부 경우, 데이터 처리 시스템(102)은 입력 오디오 신호로부터 음향 서명(acoustic signature)을 식별할 수 있다. 데이터 처리 시스템(102)은 데이터 저장소에서의 조회(예를 들어, 데이터베이스 질의)에 기초하여 음향 서명에 대응하는 전자 계정을 식별할 수 있다. 데이터 처리 시스템(102)은 전자 계정의 식별에 응답하여, 세션 및 그 세션에서 사용할 계정을 설정할 수 있다. 계정에는 하나 이상의 정책이 있는 프로필이 포함될 수 있다. 데이터 처리 시스템(102)은 요청 및 그 요청에 대응하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 분석할 수 있다.
NLP(106)는 입력 오디오 신호를 획득할 수 있다. 데이터 처리 시스템(102)의 NLP(106)는 디지털 어시스턴트가 트리거 키워드를 검출하는 것에 응답하여 음성 입력 또는 입력 오디오 신호가 포함된 데이터 패킷을 수신할 수 있다. 트리거 키워드는 후속 오디오 입력을 텍스트로 변환하고 추가 처리를 위해 텍스트를 데이터 처리 시스템(102)에 전송하도록 소스 컴퓨팅 디바이스(112)에 표시하는 웨이크업 신호 또는 핫워드일 수 있다.
입력 오디오 신호를 수신하면, NLP(106)는 적어도 하나의 요청 또는 요청에 대응하는 적어도 하나의 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도나 주제를 나타낼 수 있다. 키워드는 취해질 가능성이 있는 액션의 유형을 나타낼 수 있다. 예를 들어, NLP(106)는 입력 오디오 신호를 분석하여 저녁 식사와 영화 관람을 위해 저녁 시간에 집을 나서라는 적어도 하나의 요청을 식별할 수 있다. 트리거 키워드에는 취해야 할 액션을 나타내는 적어도 하나의 단어, 구문, 어근 또는 부분 단어, 파생어가 포함될 수 있다. 예를 들어, 입력 오디오 신호의 트리거 키워드 "go" 또는 "to go to"는 운송(transport)이 필요함을 나타낼 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 운송 의도를 직접적으로 표현하지 않지만, 트리거 키워드는 운송이 요청에 의해 표시된 적어도 하나의 다른 액션에 대한 보조 액션임을 나타낸다. 또 다른 예에서, 음성 입력에는 "내 근처 일자리 찾기"와 같은 검색 질의가 포함될 수 있다.
NLP(106)는 입력 오디오 신호를 분석하여 요청 및 요청과 관련된 하나 이상의 키워드를 식별, 결정, 검색 또는 획득할 수 있다. 예를 들어, NLP(106)는 입력 오디오 신호에 시맨틱 처리 기술을 적용하여 키워드 또는 요청을 식별할 수 있다. NLP(106)는 의미론적 처리 기술을 입력 오디오 신호에 적용하여 제1 키워드 및 제2 키워드와 같은 하나 이상의 키워드를 포함하는 키워드 또는 문구를 식별할 수 있다. 예를 들어, 입력 오디오 신호에는 "오디오북을 구매하고 싶어"라는 문장이 포함될 수 있다. NLP(106)는 문장을 구성하는 데이터 패킷에 시맨틱 처리 기술 또는 다른 자연어 처리 기술을 적용하여 "구매하고 싶은" 및 "오디오북"이라는 키워드나 문구를 식별할 수 있다. NLP(106)는 구매 및 오디오북과 같은 다수의 키워드를 추가로 식별할 수 있다. 예를 들어, NLP(106)는 문구가 제1 및 제2 키워드를 포함한다고 결정할 수 있다.
NLP(106)는 입력 오디오 신호를 필터링하여 트리거 키워드를 식별할 수 있다. 예를 들어, 입력 오디오 신호를 전달하는 데이터 패킷에는 "공항에 가는데 나에게 도움을 줄 수 있는 사람이 있다면 좋을 것 같아(It would be great if I could get someone that could help me go to the airport)"가 포함될 수 있으며, 이 경우 NLP(106)는 "it", "would", "be", "great", "if", "I", "could", "get", "someone", "that", "could", or "help"와 같은 하나 이상의 용어를 필터링할 수 있다. 이들 용어를 필터링함으로써, NLP(106)는 "go to the airport(공항에 가다)"와 같은 트리거 키워드를 보다 정확하고 안정적으로 식별하고 이것이 택시 또는 차량 공유 서비스에 대한 요청인지 결정할 수 있다.
일부 경우, NLP(106)는 입력 오디오 신호를 전달하는 데이터 패킷이 하나 이상의 요청을 포함한다고 결정할 수 있다. 예를 들어, 입력 오디오 신호에는 "액션 영화를 보여 줘"라는 문장이 포함될 수 있다. NLP(106)는 이것이 액션 영화를 재생하라는 요청이라고 결정할 수 있다. 서버 디지털 어시스턴트(108)는 입력 오디오 신호에 기초하여 컨텐츠 선택기(110)로 컨텐츠에 대한 요청을 전송할 수 있다. 서버 디지털 어시스턴트(108)는 제3자 컨텐츠 제공자로부터 보조 컨텐츠 또는 후원 컨텐츠에 대한 요청을 전송할 수 있다. 컨텐츠 선택기(110)는 컨텐츠 선택 프로세스를 수행하여 음성 질의의 액션에 기초하여 보조 컨텐츠 항목 또는 후원 컨텐츠 항목을 선택할 수 있다. 컨텐츠 항목은 후원 또는 보조 디지털 구성요소 객체일 수 있다. 컨텐츠 항목은 보조 디지털 컨텐츠 제공자 디바이스(144)와 같은 제3자 컨텐츠 제공자에 의해 제공될 수 있다. 보조 컨텐츠 항목에는 상품이나 서비스에 대한 광고가 포함될 수 있다. 컨텐츠 선택기(110)는 서버 디지털 어시스턴트(108)로부터 컨텐츠에 대한 요청을 수신하는 것에 응답하여 컨텐츠 선택 기준을 사용하여 컨텐츠 항목을 선택할 수 있다.
서버 디지털 어시스턴트(108)는 컨텐츠 선택기(110)로부터 보조 또는 후원 컨텐츠 아이템을 수신할 수 있다. 서버 디지털 어시스턴트(108)는 요청에 응답하여 컨텐츠 아이템을 수신할 수 있다. 서버 디지털 어시스턴트(108)는 컨텐츠 선택기(110)로부터 컨텐츠 아이템을 수신하고, 오디오 출력 또는 시각적 출력을 통해 컨텐츠 아이템을 제시할 수 있다. 서버 디지털 어시스턴트(108)는 타겟 컴퓨팅 디바이스(132) 또는 타겟 컴퓨팅 디바이스(132)와 통신 가능하게 연결된 소스 컴퓨팅 디바이스(112)를 통해 프리젠테이션을 위한 컨텐츠 아이템을 제공할 수 있다.
데이터 처리 시스템(102)은 보조 컨텐츠 항목(또는 후원 컨텐츠 항목 또는 디지털 구성요소 객체)을 선택하도록 설계, 구성 또는 동작하는 컨텐츠 선택기(110)를 포함할 수 있다. 후원 컨텐츠 항목 또는 디지털 구성요소를 선택하기 위해, 컨텐츠 선택기(110)는 생성된 컨텐츠 선택 기준을 사용하여 확장 일치(broad match), 완전 일치(exact match) 또는 구문 일치(phrase match)에 기초하여 일치하는 후원 컨텐츠 항목을 선택할 수 있다. 예를 들어, 컨텐츠 선택기(110)는 후보 후원 컨텐츠 아이템의 주제를 분석, 분석 또는 처리하여 그 후보 후원 컨텐츠 아이템의 주제가 컨텐츠 선택 기준의 키워드 또는 문구의 주제(예를 들어 액션이나 의도)에 대응하는지 여부를 결정할 수 있다. 컨텐츠 선택부(110)는 이미지 처리 기술, 문자 인식 기술, 자연어 처리 기술, 데이터베이스 조회 등을 이용하여 후보 디지털 구성요소의 음성, 오디오, 용어, 문자, 텍스트, 기호 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 후원 컨텐츠 아이템은 후보 디지털 구성요소의 주제를 나타내는 메타데이터를 포함할 수 있으며, 이 경우 컨텐츠 선택기(110)는 메타데이터를 처리하여 후보 디지털 구성요소의 주제가 입력 오디오 신호에 대응하는지 여부를 결정할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144)에 의해 제공되는 컨텐츠 캠페인은 데이터 처리 시스템(102)이 제2 프로필 계층 또는 제1 프로필 계층에 표시된 기준과 일치할 수 있는 컨텐츠 선택 기준을 포함할 수 있다.
보조 디지털 컨텐츠 제공자는 디지털 구성요소를 포함하는 컨텐츠 캠페인을 설정할 때 추가 표시자를 제공할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144)는 컨텐츠 선택기(110)가 후보 디지털 구성요소에 관한 정보를 사용하여 조회를 수행함으로써 식별할 수 있는 컨텐츠 캠페인 또는 컨텐츠 그룹 수준에서 정보를 제공할 수 있다. 예를 들어, 후보 디지털 구성요소는 컨텐츠 그룹, 컨텐츠 캠페인 또는 컨텐츠 제공자에 매핑될 수 있는 고유 식별자를 포함할 수 있다.
요청에 응답하여, 컨텐츠 선택기(110)는 보조 디지털 컨텐츠 제공자 디바이스(144)와 연관된 디지털 구성요소 객체를 선택할 수 있다. 보조 디지털 컨텐츠는 보조 디지털 컨텐츠 제공자에 의해 제공될 수 있다. 보조 디지털 컨텐츠는 액션 데이터 구조의 서비스 유형(예를 들어, 택시 서비스 대 음식 배달 서비스)과 상이한 서비스 유형에 해당할 수 있다. 컴퓨팅 디바이스(112 또는 132)는 보조 디지털 컨텐츠와 상호작용할 수 있다. 컴퓨팅 디바이스(112 또는 132)는 디지털 구성요소에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(112 또는 132)는 컴퓨팅 디바이스(112 또는 132)가 보조 디지털 컨텐츠 제공자 디바이스(144)를 식별하고, 보조 디지털 콘텐츠 제공자 디바이스(144)로부터 서비스를 요청하고, 보조 디지털 콘텐츠 제공자 디바이스(144)에게 서비스를 수행하도록 지시하고, 보조 디지털 콘텐츠 제공자 디바이스(144)에 정보를 전송하거나, 그렇지 않으면 보조 디지털 콘텐츠 제공자 디바이스(144)에 질의하게 하거나 허용하는 디지털 구성요소 객체와 연관된 하이퍼링크 또는 다른 버튼을 선택하라는 표시를 수신할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 전자 컨텐츠 캠페인을 설정할 수 있다. 전자 컨텐츠 캠페인은 공통 주제에 해당하는 하나 이상의 컨텐츠 그룹을 지칭할 수 있다. 컨텐츠 캠페인에는 컨텐츠 그룹, 디지털 구성요소 데이터 객체, 컨텐츠 제공자가 제공하는 컨텐츠 선택 기준을 포함하는 계층적 데이터 구조가 포함될 수 있다. 컨텐츠 제공자 디바이스(144)에 의해 제공되는 컨텐츠 선택 기준에는 디지털 어시스턴트 컨텐츠 유형, 검색 컨텐츠 유형, 스트리밍 비디오 컨텐츠 유형, 스트리밍 오디오 컨텐츠 유형, 또는 상황별 컨텐츠 유형과 같은 컨텐츠 유형이 포함된다. 컨텐츠 캠페인을 생성하기 위해, 보조 디지털 컨텐츠 제공자 디바이스(144)는 컨텐츠 캠페인의 캠페인 레벨 파라미터에 대한 값을 지정할 수 있다. 캠페인 수준 파라미터에는 캠페인 이름, 디지털 구성요소 객체를 배치하기 위해 선호하는 컨텐츠 네트워크, 컨텐츠 캠페인에 사용할 리소스 값, 컨텐츠 캠페인의 시작 및 종료 날짜, 컨텐츠 기간, 디지털 구성요소 객체 배치 일정, 언어, 지리적 위치, 디지털 구성요소 객체를 제공할 컴퓨팅 디바이스 유형 등이 포함될 수 있다. 일부 경우, 노출은 디지털 구성요소 객체가 소스(예를 들어, 데이터 처리 시스템(102) 또는 보조 디지털 컨텐츠 제공자 디바이스(144))로부터 페치되는 시점을 지칭할 수 있으며 카운트될 수 있다. 일부 경우, 클릭 사기의 가능성으로 인해, 로봇 활동이 필터링되어 노출로서 제외될 수 있다. 따라서, 경우에 따라, 노출은 브라우저의 페이지 요청에 대한 웹 서버의 응답 측정을 의미할 수 있으며, 이는 로봇 활동 및 오류 코드에서 필터링되고 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 디스플레이하기 위해 디지털 구성요소 객체를 렌더링할 기회에 최대한 가까운 지점에 기록된다. 일부 경우, 노출은 가시적이거나 가청 노출을 의미할 수 있는데, 예를 들어, 디지털 구성요소 객체는 컴퓨팅 디바이스의 디스플레이 디바이스 상에서 적어도 부분적으로(예를 들어, 20%, 30%, 30%, 40%, 50%, 60%, 70% 이상) 볼 수 있거나 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 스피커를 통해 들을 수 있다. 클릭 또는 선택은 가청 노출에 대한 음성 응답, 마우스 클릭, 터치 상호 작용, 제스처, 흔들기, 오디오 상호 작용 또는 키보드 클릭과 같은 디지털 구성요소 객체와의 사용자 상호 작용을 지칭할 수 있다. 전환은 디지털 구성요소 이의제기(objection)와 관련하여 사용자가 원하는 액션, 예를 들어 제품이나 서비스 구매, 설문조사 완료, 디지털 구성요소에 해당하는 실제 매장 방문, 전자 거래 완료 등을 취하는 것을 지칭할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 컨텐츠 캠페인을 위한 하나 이상의 컨텐츠 그룹을 추가로 설정할 수 있다. 컨텐츠 그룹에는 하나 이상의 디지털 구성요소 객체와 해당 컨텐츠 선택 기준(예를 들어, 키워드, 단어, 용어, 문구, 지리적 위치, 컴퓨팅 디바이스의 유형, 하루 중 시간, 관심 분야, 주제 또는 업종)이 포함된다. 동일한 컨텐츠 캠페인에 속한 컨텐츠 그룹은 동일한 캠페인 수준 파라미터를 공유할 수 있지만, 키워드, 제외(negative) 키워드(예를 들어, 메인 컨텐츠에 제외 키워드가 있는 경우 디지털 구성요소 배치를 차단하는 키워드), 키워드 입찰 또는 입찰 또는 컨텐츠 캠페인과 관련된 파라미터와 같은 특정 컨텐츠 그룹 수준 파라미터에 대한 맞춤형 사양을 갖을 수 있다.
새로운 컨텐츠 그룹을 생성하기 위해, 컨텐츠 제공자는 컨텐츠 그룹의 컨텐츠 그룹 수준 파라미터에 대한 값을 제공할 수 있다. 컨텐츠 그룹 수준 파라미터에는 컨텐츠 그룹 이름이나 컨텐츠 그룹 테마, 다양한 컨텐츠 배치 기회(예를 들어, 자동 배치 또는 관리 배치) 또는 결과(예를 들어, 클릭, 노출 또는 전환)에 대한 입찰 등이 포함된다. 컨텐츠 그룹 이름 또는 컨텐츠 그룹 테마는 보조 디지털 컨텐츠 제공자 디바이스(144)가 컨텐츠 그룹의 디지털 구성요소 객체가 디스플레이를 위해 선택되는 토픽 또는 주제를 캡처하는데 사용할 수 있는 하나 이상의 용어일 수 있다. 예를 들어, 자동차 판매점은 자신이 취급하는 차량 브랜드별로 서로 다른 컨텐츠 그룹을 생성할 수 있으며, 또한 취급하는 차량 모델별로 서로 다른 컨텐츠 그룹을 생성할 수도 있다. 자동차 판매점이 사용할 수 있는 컨텐츠 그룹 테마의 예로는 예를 들어 "A사(Make A) 스포츠카", "B사 스포츠카", "C사 세단", "C사 트럭", "C사 하이브리드" 또는 "D사 하이브리드"가 포함될 수 있다. 컨텐츠 캠페인 테마의 예는 '하이브리드'일 수 있으며, 예를 들어 'C사 하이브리드'와 'D사 하이브리드'에 대한 컨텐츠 그룹을 모두 포함할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 하나 이상의 키워드 및 디지털 구성요소 객체를 각 컨텐츠 그룹에 제공할 수 있다. 키워드에는 디지털 구성요소 객체와 연관되거나 식별되는 제품 또는 서비스와 관련된 용어들이 포함될 수 있다. 키워드에는 하나 이상의 용어나 문구가 포함될 수 있다. 예를 들어, 자동차 판매점에서는 컨텐츠 그룹이나 컨텐츠 캠페인의 키워드로 '스포츠카', 'V-6 엔진', '4륜 구동', '연비'를 포함할 수 있다. 일부 경우, 컨텐츠 공급자는 특정 용어나 키워드에 대한 컨텐츠 배치를 방지, 예방, 차단 또는 비활성화하기 위해 제외 키워드를 지정할 수 있다. 컨텐츠 제공자는 디지털 구성요소 객체를 선택하는데 사용되는 정확한 일치, 구문 일치, 확장 일치 등의 일치 유형을 지정할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 데이터 처리 시스템(102)에 의해 사용될 하나 이상의 키워드를 제공하여 보조 디지털 컨텐츠 제공자 디바이스(144)에 의해 제공되는 디지털 구성요소 객체를 선택할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144)는 입찰할 하나 이상의 키워드를 식별하고 추가로 다양한 키워드에 대한 입찰 금액을 제공할 수 있다. 보조 디지털 컨텐츠 제공자 디바이스(144)는 데이터 처리 시스템(102)에 의해 사용될 추가 컨텐츠 선택 기준을 제공하여 디지털 구성요소 객체를 선택할 수 있다. 다수의 보조 디지털 컨텐츠 제공자 디바이스(144)는 동일하거나 다른 키워드에 입찰할 수 있으며, 데이터 처리 시스템(102)은 전자 메시지의 키워드 표시를 수신하는 것에 응답하여 컨텐츠 선택 프로세스 또는 광고 경매를 실행할 수 있다.
보조 디지털 컨텐츠 제공자 디바이스(144)는 데이터 처리 시스템(102)에 의한 선택을 위해 하나 이상의 디지털 구성요소 객체를 제공할 수 있다. 데이터 처리 시스템(102)은 (예를 들어, 컨텐츠 선택기(110)를 통해) 리소스 할당, 컨텐츠 일정, 최대 입찰, 키워드 및 컨텐츠 그룹에 대해 지정된 다른 선택 기준과 일치하는 컨텐츠 배치 기회가 이용 가능해질 때 디지털 구성요소 객체를 선택할 수 있다. 음성 디지털 구성요소, 오디오 디지털 구성요소, 텍스트 디지털 구성요소, 이미지 디지털 구성요소, 비디오 디지털 구성요소, 멀티미디어 디지털 구성요소, 디지털 구성요소 링크 또는 어시스턴트 애플리케이션 구성요소와 같은 다양한 유형의 디지털 구성요소 객체가 콘텐츠 그룹에 포함될 수 있다. 디지털 구성요소 객체(또는 디지털 구성요소, 보조 컨텐츠 항목 또는 후원 컨텐츠 항목)는 예를 들어 컨텐츠 항목, 온라인 문서, 오디오, 이미지, 비디오, 멀티미디어 컨텐츠, 후원 컨텐츠 또는 보조 애플리케이션을 포함할 수 있다. 디지털 구성요소를 선택할 때, 데이터 처리 시스템(102)은 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132) 또는 그의 디스플레이 디바이스에 렌더링하기 위해 디지털 구성요소 객체를 전송할 수 있다. 렌더링은 디스플레이 디바이스에 디지털 구성요소를 디스플레이하는 것, 챗봇 또는 대화형 봇과 같은 애플리케이션을 실행하는 것, 또는 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 스피커를 통해 디지털 구성요소를 재생하는 것을 포함할 수 있다. 데이터 처리 시스템(102)은 디지털 구성요소 객체를 렌더링하기 위해 타겟 컴퓨팅 디바이스(132)에 명령을 제공할 수 있다. 데이터 처리 시스템(102)은 오디오 신호 또는 음파를 생성하도록 타겟 컴퓨팅 디바이스(132)에 명령할 수 있다.
컨텐츠 선택기(110)는 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 수행할 수 있다. 실시간 컨텐츠 선택은 요청에 응답하여 컨텐츠 선택을 수행하는 것을 지칭하거나 포함할 수 있다. 실시간이란 요청을 받은 후 0.2초, 0.3초, 0.4초, 0.5, 0.6초, 1초 이내에 컨텐츠를 선택하는 것을 지칭하거나 포함할 수 있다. 실시간은 타겟 컴퓨팅 디바이스(132)로부터 입력 오디오 신호를 수신하는 것에 응답하여 컨텐츠를 선택하는 것을 지칭할 수 있다.
컨텐츠 선택기(110)는 다수의 후보 보조 컨텐츠 항목을 식별할 수 있다. 컨텐츠 선택기(110)는 컴퓨팅 디바이스에 제공할 최고 순위의 보조 컨텐츠 항목을 선택하기 위해 다수의 후보 보조 컨텐츠 항목 각각에 대한 점수 또는 순위를 결정할 수 있다.
시스템(100)은 타겟 컴퓨팅 디바이스(132)를 포함하거나, 그와 인터페이스하거나 통신할 수 있다. 타겟 컴퓨팅 디바이스(132)는 타겟 디지털 어시스턴트(142)를 포함할 수 있다. 타겟 디지털 어시스턴트(142)는 서버 디지털 어시스턴트(108)와 인터페이스할 수 있다. 타겟 디지털 어시스턴트(142)는 서버 디지털 어시스턴트(108)의 하나 이상의 구성요소 또는 기능을 포함할 수 있다. 예를 들어, 타겟 디지털 어시스턴트(142)는 입력 음성 질의를 수신하고, 액션을 수행함으로써 그 질의 또는 요청을 이행할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)는 텔레비전 또는 스마트 디스플레이일 수 있다. 타겟 디지털 어시스턴트(142)는 "볼륨을 높여줘", "볼륨을 낮춰줘", "채널 변경해 줘", "액션 영화 재생해 줘", "일시 중지", "재개" 또는 "텔레비전 켜 줘"와 같은 질의 또는 요청이 포함된 입력 오디오 신호를 수신할 수 있다. 타겟 디지털 어시스턴트(142)는 입력 질의 수신시 컨트롤러(138) 또는 질의 프로세서(134) 중 하나 이상과 인터페이싱하여 질의를 분석하고 대응 액션을 수행할 수 있다. 타겟 디지털 어시스턴트(142)는 질의 프로세서(134)의 하나 이상의 구성요소 또는 기능을 포함할 수 있다.
타겟 컴퓨팅 디바이스(132)는 타겟 컴퓨팅 디바이스(132)의 하나 이상의 기능을 제공하도록 설계, 구성 및 동작하는 플랫폼(136)을 포함할 수 있다. 플랫폼(136)은 타겟 컴퓨팅 디바이스(132)의 운영 체제를 지칭할 수 있다. 플랫폼(136)은 타겟 컴퓨팅 디바이스(132)에 의해 제공되거나 제시되는 그래픽 사용자 인터페이스를 포함할 수 있다. 플랫폼(136)은 임의의 유형일 수 있으며, 타겟 컴퓨팅 디바이스(132)의 하드웨어와 인터페이스할 수 있다. 플랫폼(136)은 요청을 제공하기 위해 질의 프로세서(134)와 인터페이스할 수 있다. 플랫폼(136)은 타겟 컴퓨팅 디바이스(132)에 스트리밍 멀티미디어 애플리케이션, 비디오 게임, 음악 애플리케이션 또는 날씨 애플리케이션과 같은 애플리케이션을 포함하거나 호출하거나 실행할 수 있다.
타겟 컴퓨팅 디바이스(132)는 타겟 컴퓨팅 디바이스(132)의 기능 또는 양태를 제어하도록 설계되고, 구성되고 동작하는 컨트롤러(138)를 포함할 수 있다. 컨트롤러(138)는 타겟 컴퓨팅 디바이스(132)의 원격 제어를 제공할 수 있다. 컨트롤러(138)는 타겟 컴퓨팅 디바이스(132)와 함께 사용하도록 구성된 하드웨어, 물리적 원격 제어로부터 신호 또는 명령을 수신할 수 있다. 컨트롤러(138)는 소스 컴퓨팅 디바이스(112)의 가상 컨트롤러(120)와 통신 채널을 설정하고, 가상 컨트롤러(120)로부터 질의를 수신할 수 있다.
컨트롤러(138)는 로컬 WIFI 네트워크와 같은 네트워크(105)를 통해 입력을 수신하는 gRPC 서비스를 포함할 수 있다. 컨트롤러(138)는 질의 또는 상호 작용을 수신하고 추가 처리 또는 이행을 위해 질의 또는 상호 작용을 질의 프로세서(134)에 포워딩할 수 있다. 질의 프로세서(134)는 질의를 분석하고, 수행할 액션을 결정한 후, 그 액션을 수행할 수 있다. 예를 들어, 질의 프로세서(134)는 플랫폼(136)과 인터페이스허여 타겟 컴퓨팅 디바이스(132)에 디스플레이되는 내용을 제어할 수 있다. 질의 프로세서(134)는 데이터 처리 시스템(102)과 인터페이스하여 취해져야 할 액션을 결정할 수 있다. 질의 프로세서(134)는 타겟 디지털 어시스턴트(142)와 인터페이스하여 액션을 수행할 수 있다.
질의 프로세서(134)는 질의를 분석하고 이행하기 위해 타겟 디지털 어시스턴트(142) 또는 NLP(106)의 하나 이상의 구성요소 또는 기능을 포함할 수 있다. 질의 프로세서(134)는 컨트롤러(138), 플랫폼(136), 또는 타겟 디지털 어시스턴트(142)로부터 질의를 수신할 수 있다.
타겟 컴퓨팅 디바이스(132)는 무선 신호를 브로드캐스트하도록 설계, 구성 및 동작하는 신호 브로드캐스터(140)를 포함할 수 있다. 신호 브로드캐스터(140)는 하나 이상의 무선 프로토콜을 사용하여 무선 신호를 브로드캐스트할 수 있다. 신호 브로드캐스터(140)는 블루투스와 같은 근거리 무선 프로토콜을 이용하여 신호를 브로드캐스트할 수 있다. 신호 브로드캐스터(140)는 근거리 통신 프로토콜을 이용하여 신호를 브로드캐스트할 수 있다. 신호 브로드캐스터(140)는 WIFI 프로토콜을 이용하여 신호를 브로드캐스트할 수 있다. 신호 브로드캐스터(140)는 지그비 또는 다른 무선 프로토콜을 사용하여 신호를 브로드캐스트할 수 있다.
신호 브로드캐스터(140)는 연속적으로 또는 시간 간격을 두고 신호를 브로드캐스트하거나 전송할 수 있다. 예를 들어, 신호 브로드캐스터(140)는 0.1초, 0.2초, 0.3초, 0.5초, 1초, 2초, 3초, 4초 또는 기타 시간 간격마다 신호를 브로드캐스트할 수 있다.
신호 브로드캐스터(140)는 트리거 조건 또는 이벤트에 응답하여 신호를 브로드캐스트할 수 있다. 예를 들어, 신호 브로드캐스터(140)는 모션 검출에 응답하여 또는 타겟 컴퓨팅 디바이스(132)에 대한 근접에 응답하여 신호를 브로드캐스트할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)는 근접 센서를 포함하거나 근접 센서에 연결될 수 있다. 근접 센서는 전자기장 또는 전자기 방사선 빔(예를 들어, 적외선)을 사용하여 물리적 접촉 없이 근처에 있는 객체들의 존재를 검출하고 전자기장 또는 반사 신호의 변화를 식별할 수 있다. 전자기장 또는 반사의 변화를 검출하는 것에 응답하여, 근접 센서는 신호를 브로드캐스트하라는 표시를 신호 브로드캐스터(140)에 제공할 수 있다.
신호 브로드캐스터(140)는 정보를 포함하는 신호를 브로드캐스트할 수 있다. 정보는 타겟 컴퓨팅 디바이스(132) 및 타겟 컴퓨팅 디바이스(132)의 성능을 식별할 수 있다. 정보는 타겟 컴퓨팅 디바이스(132)의 이름(예를 들어, 식별자) 또는 유형을 식별할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)의 이름은 "거실 TV", "침실 TV", "덴(den) TV", "회의실 A 디스플레이" 또는 타겟 컴퓨팅 디바이스(132)d의 관리자, 사용자 또는 소유자에 의해 설정된 기타 이름 또는 라벨일 수 있다. 정보는 타겟 컴퓨팅 디바이스(132)의 성능(capability)을 포함하거나 나타낼 수 있다. 성능은 타겟 컴퓨팅 디바이스(132)가 수행할 수 있는 기능의 유형을 나타낼 수 있다. 성능은 타겟 컴퓨팅 디바이스(132)가 어떤 유형의 디바이스인지를 나타낼 수 있다. 예를 들어, 성능은 스마트 디스플레이, 스마트 TV, 자동차 유닛, 네트워크 연결 디바이스 또는 IoT 디바이스일 수 있다. 예를 들어, 성능은 멀티미디어 스트리밍, 영화 서비스, 음악 서비스, 가전 제품 기능 또는 자동차 기능과 같은 기능을 나타낼 수 있다. 신호 브로드캐스터(140)는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)를 식별하는 것을 용이하게 할 수 있는 추가 정보를 브로드캐스트할 수 있다.
시스템(100)은 소스 컴퓨팅 디바이스(112)를 포함하거나, 이와 인터페이스하거나 통신할 수 있다. 소스 컴퓨팅 디바이스(112)는 전화기, 시계, 웨어러블 디바이스, 스피커, 헤드셋 또는 기타 유형의 디바이스를 포함하거나 이를 지칭할 수 있다. 소스 컴퓨팅 디바이스(112)는 소스 디지털 어시스턴트(114)를 포함할 수 있다. 소스 디지털 어시스턴트(114)는 서버 디지털 어시스턴트(108), 타겟 디지털 어시스턴트(142), 또는 NLP(106)의 하나 이상의 구성요소 또는 기능을 포함할 수 있다. 소스 디지털 어시스턴트(114)는 서버 디지털 어시스턴트(108)와 인터페이스하거나 통신하여 소스 컴퓨팅 디바이스(112)에 의해 수신되거나 검출된 음성 기반 질의에 응답하여 액션들을 수행하거나 이행할 수 있다.
소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)는 센서, 마이크로폰, 스피커, 디스플레이 디바이스, 변환기 또는 오디오 드라이버 중 하나 이상을 포함하거나 이와 인터페이스하거나 액세스할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 디스플레이 디바이스(122) 및 마이크로폰(124)을 포함할 수 있다. 디스플레이 디바이스(122)는 예를 들어 광 표시기, 발광 다이오드("LED"), 유기 발광 다이오드("OLED"), 또는 시각적 또는 광학적 출력을 제공하도록 구성된 다른 시각적 표시기를 포함할 수 있다. 일부 경우, 타겟 컴퓨팅 디바이스(132)는 텔레비전 디스플레이와 같은 디스플레이 디바이스를 포함할 수 있다. 센서는 예를 들어 주변 광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크 또는 터치 센서를 포함할 수 있다. 변환기에는 스피커나 마이크로폰이 포함될 수 있다. 오디오 드라이버는 하드웨어 변환기에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 오디오 파일이나 기타 명령을 실행하여 변환기를 제어하여 해당 음향파 또는 음파를 생성할 수 있다.
센서는 입력 오디오 신호(예를 들어, 음성 입력)를 수신하거나 검출할 수 있다. 디지털 어시스턴트(예를 들어, 소스 디지털 어시스턴트(114) 또는 타겟 디지털 어시스턴트(142))는 오디오 드라이버, 변환기 및 센서에 연결될 수 있다. 디지털 어시스턴트는 입력 오디오 신호를 필터링하여 (예를 들어, 특정 주파수를 제거하거나 잡음을 억제함으로써) 필터링된 입력 오디오 신호를 생성할 수 있다. 디지털 어시스턴트는 (예를 들어, 소프트웨어 또는 하드웨어 디지털-아날로그 변환기를 사용하여) 필터링된 입력 오디오 신호를 데이터 패킷으로 변환할 수 있다. 일부 경우에, 디지털 어시스턴트는 필터링되지 않은 입력 오디오 신호를 데이터 패킷으로 변환하고 데이터 패킷을 데이터 처리 시스템(102)으로 전송할 수 있다. 디지털 어시스턴트는 자연어 프로세서 구성요소를 실행하는 메모리와 하나 이상의 프로세서를 포함하는 데이터 처리 시스템(102)으로 데이터 패킷을 전송할 수 있다. 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 하나 이상의 구성요소는 각각 적어도 하나의 처리 디바이스 또는 프로그래밍 가능 논리 어레이 엔진, 구성요소 또는 모듈과 같은 다른 논리 디바이스를 포함할 수 있다. 시스템(100) 및 그의 구성요소는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 요소를 포함할 수 있다.
소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)는 적어도 하나의 애플리케이션을 포함하거나, 이에 인터페이스하거나 통신할 수 있다. 애플리케이션은 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)에 설치될 수 있다. 애플리케이션은 데이터 처리 시스템(102)에 의해 제공되는 온라인 마켓플레이스와 같은 온라인 애플리케이션 마켓플레이스로부터 다운로드될 수 있다. 애플리케이션은 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 제조업체에 의해 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)의 운영 체제에 설치된 네이티브 애플리케이션을 포함할 수 있다. 애플리케이션에는 리소스나 서비스를 제공할 수 있는 임의의 유형의 애플리케이션이 포함될 수 있다. 예를 들어, 애플리케이션은 운동 루틴 애플리케이션, 음식 주문 애플리케이션, 차량 호출 애플리케이션, 날씨 애플리케이션, 문서 처리 애플리케이션, 내비게이션 애플리케이션, 메시징 애플리케이션, 전화 애플리케이션, 스트리밍 미디어 애플리케이션, 소셜 네트워크 애플리케이션, 캘린더 애플리케이션, 카메라 애플리케이션, 티켓 구매 애플리케이션, 전자상거래 애플리케이션, 은행 애플리케이션, 금융 서비스 애플리케이션 등일 수 있다.
소스 컴퓨팅 디바이스(112)는 데이터 저장소(126)를 포함할 수 있다. 데이터 저장소(126)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있다. 데이터 저장소(126)는 컴퓨터 데이터 저장소 또는 메모리를 포함할 수 있고 프로필(128) 또는 UI 템플릿(130) 중 하나 이상을 저장할 수 있다. 프로필(128)은 사용자 프로필, 선호도, 자격증명, 토큰, 또는 기능 수행이나 질의 또는 응답 이행을 용이하게 하는 기타 정보를 포함할 수 있다. UI 템플릿(130)은 디스플레이 디바이스(122)에 디스플레이하기 위한 프롬프트를 생성하는데 사용될 수 있는 시각적 또는 그래픽 사용자 인터페이스 요소를 포함할 수 있다.
소스 컴퓨팅 디바이스(112)는 소스 디지털 어시스턴트(114)를 포함할 수 있다. 소스 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)의 센서에 의해 검출된 음성 질의 또는 다른 오디오 입력을 수신하고, 음성 입력에 기초하여 의도 또는 액션을 결정하고, 해당 액션의 이행을 용이하게 하도록 설계, 구성 및 동작하는 디지털 어시스턴트(114)를 포함할 수 있다. 디지털 어시스턴트(114)는 NLP(106)의 하나 이상의 구성요소 또는 기능을 포함하거나 NLP(106)와 인터페이스할 수 있다. 예를 들어, 소스 디지털 어시스턴트(114)는 데이터 처리 시스템(102)의 NLP(106)와 인터페이스하거나 통신하여 음성 입력 또는 오디오 입력을 분석하거나 처리할 수 있다. 일부 경우, 소스 디지털 어시스턴트(114)는 데이터 처리 시스템(102)의 NLP(106)와 인터페이스하거나 통신하지 않고 음성 입력을 처리하거나 분석하도록 구성될 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 네트워크(105)를 통해 데이터 처리 시스템(102)과 통신하지 않고도 디지털 어시스턴트 기능을 수행할 수 있다. 소스 컴퓨팅 디바이스(112)는 음성 질의를 수신하고, 음성 질의를 분석하고, 액션을 식별하고, 소스 컴퓨팅 디바이스(112)에서 애플리케이션을 호출하여 네트워크(105)를 통해 데이터 처리 시스템(102)과 통신하지 않고 액션을 수행할 수 있다.
소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)를 검출하도록 설계, 구성 및 동작하는 프레즌스 애플리케이션 프로그래밍 인터페이스("API")(116)를 포함할 수 있다. 프레즌스 API(116)는 타겟 컴퓨팅 디바이스(132)의 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호를 검출하거나 감지할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 제1 컴퓨팅 디바이스로 지칭될 수 있고, 타겟 컴퓨팅 디바이스(132)는 제2 컴퓨팅 디바이스로 지칭될 수 있다.
프레즌스 API(116)는 시간 간격에 기초하여, 또는 이벤트, 조건 또는 트리거에 응답하여 연속적으로, 주기적으로 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호를 청취하도록 구성될 수 있다. 예를 들어, 프레즌스 API(116)는 0.5초, 1초, 2초 또는 기타 시간 간격마다 깨어나거나 통신 포트를 열거나 신호를 검색할 수 있다. 다른 예에서, 프레즌스 API(116)는 소스 컴퓨팅 디바이스(112)의 사용자 또는 착용자에 의해 이루어진 제스처 또는 모션에 응답하여 브로드캐스트 신호를 청취할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 시계일 수 있고, 사용자는 프레즌스 API(116)가 깨우거나 브로드캐스트 신호를 청취하도록 유발하거나 트리거하는 방식으로 시계를 착용하고 있는 손목을 올리거나 손목을 흔들 수 있다.
프레즌스 API(116)는 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호를 검출할 수 있다. 신호를 검출하는 것에 응답하여, 프레즌스 API(116)는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)의 범위 내에 있는지 결정할 수 있다. 프레즌스 API(116)는 소스 컴퓨팅 디바이스(112)가 목표 컴퓨팅 디바이스(132)의 원하는 범위, 임계 범위 또는 다른 사전 결정된 범위 내에 있는지 결정할 수 있다. 프레즌스 API(116)는 다양한 기술에 기초하여 소스 컴퓨팅 디바이스(112)와 타겟 컴퓨팅 디바이스 사이의 범위 또는 거리를 결정할 수 있다. 예를 들어, 프레즌스 API(116)는 신호 브로드캐스터(140)에 의해 브로드캐스트되는 신호의 강도에 기초하여 타겟 컴퓨팅 디바이스(132)로부터의 거리 또는 범위를 결정할 수 있다. 소스 컴퓨팅 디바이스(112)에 의해 수신되거나 검출된 신호의 강도가 강할수록, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)에 더 가까워질 수 있다. 소스 컴퓨팅 디바이스(112)에서 검출된 신호 강도가 강도 임계값(예를 들어, 진폭 또는 전력)을 충족하는 경우, 프레즌스 API(116)는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)의 범위 내에 있다고 결정할 수 있다. 일부 경우, 소스 컴퓨팅 디바이스(112) 및 타겟 컴퓨팅 디바이스(132)는 신호를 교환하여 (예를 들어, 신호의 전송 및 수신과 관련된 타임 스탬프를 비교함으로써) 신호가 한 디바이스에서 다른 디바이스로 이동하는데 걸리는 시간에 기초하여 두 디바이스 사이의 거리를 계산한다. 일부 경우, 프레즌스 API(116)는 사용되는 무선 프로토콜의 유형 및 소스 컴퓨팅 디바이스(112)가 신호를 분석할 수 있었는지 여부에 기초하여 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)의 범위 내에 있는지 결정할 수 있다. 예를 들어, 신호를 전송하기 위해 신호 브로드캐스터(140)에 의해 사용된 무선 프로토콜이 근거리 통신 프로토콜이고, 소스 컴퓨팅 디바이스(112)가 신호를 처리하거나 분석할 수 있었다면, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)가 만족스러운 범위 내에 있다고 결정할 수 있다.
프레즌스 API(116)는 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호를 식별하기 위해 소스 컴퓨팅 디바이스(112)의 하나 이상의 통신 포트 또는 센서로 구성되거나 이에 액세스할 수 있다. 프레즌스 API(116)는 신호를 파싱, 처리 또는 분석할 수 있다. 프레즌스 API(116)는 신호를 분석하거나 처리하여 타겟 컴퓨팅 디바이스(132)를 식별할 수 있다. 예를 들어, 프레즌스 API(116)는 신호를 분석하여 타겟 컴퓨팅 디바이스(132)의 이름과 같은 타겟 컴퓨팅 디바이스(132)의 식별자를 결정할 수 있다. 신호에는 헤더와 페이로드가 있는 하나 이상의 데이터 패킷이 포함될 수 있다. 페이로드는 신호를 브로드캐스트한 타겟 컴퓨팅 디바이스(132)에 관한 정보를 포함할 수 있다. 신호 브로드캐스터(140)는 브로드캐스트되는 신호에 정보를 내장하거나 포함하도록 구성될 수 있다. 프레즌스 API(116)는 신호를 분석하여 타겟 컴퓨팅 디바이스(132)의 이름, 타겟 컴퓨팅 디바이스(132)의 유형, 또는 타겟 컴퓨팅 디바이스(132)의 성능 중 하나 이상을 결정할 수 있다.
프레즌스 API(116)는 소스 컴퓨팅 디바이스(112)에 디스플레이하기 위한 프롬프트를 생성하기로 결정할 수 있다. 프롬프트는 시각적 프롬프트, 햅틱 프롬프트 또는 오디오 프롬프트 중 하나 이상을 포함할 수 있다. 프롬프트에는 하나 이상의 오디오 프롬프트(예를 들어, 경고음 또는 음성 출력) 또는 햅틱 피드백과 함께 디스플레이 아이콘이 포함될 수 있다. 프레즌스 API(116)는 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호의 정보에 기초하여 프롬프트 유형을 선택할 수 있다. 프레즌스 API(116)는 UI 템플릿(130) 데이터 구조에 액세스하여 프롬프트에 사용할 디자인이나 템플릿을 식별한 다음 그 템플릿에 기초하여 프롬프트를 생성할 수 있다. UI 템플릿(130)은 다양한 유형의 디바이스 또는 기능에 대한 다양한 아이콘을 포함할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)가 타겟 디지털 어시스턴트(142)를 갖는다면, UI 템플릿(130)은 디지털 어시스턴트 기능을 갖춘 타겟 컴퓨팅 디바이스(132)에 대한 마이크로폰 아이콘을 사용하도록 표시하는 태그 또는 메타데이터가 있는 마이크로폰에 대한 아이콘을 포함할 수 있다.
신호 브로드캐스터(140)는 생성할 프롬프트의 유형에 관한 정보를 신호에 포함할 수 있다. 예를 들어, 신호는 타겟 컴퓨팅 디바이스(132)의 유형에 대응하는 시각적 아이콘에 대한 데이터를 포함할 수 있다. 일부 경우, 프레즌스 API(116)는 컴퓨팅 디바이스의 유형 또는 신호와 연관된 기타 정보에 기초하여 디스플레이할 프롬프트 유형 또는 시각적 아이콘을 결정할 수 있다.
예를 들어, 프레즌스 API(116)는 타겟 컴퓨팅 디바이스(132)의 성능을 결정할 수 있다. 성능에는 예를 들어 타겟 컴퓨팅 디바이스(132)가 하나 이상의 스트리밍 서비스로부터 스트리밍 미디어 컨텐츠를 재생할 수 있고, 날씨를 제공할 수 있고, 데이터 처리 시스템(102)에 액세스할 수 있고, 타겟 디지털 어시스턴트(142), 컨트롤러(138), 질의 프로세서(134)로 구성되고, 스피커 또는 기타 성능 정보를 포함하는 텔레비전이라는 점을 포함할 수 있다. 프레즌스 API(116)는 신호의 정보에 기초하거나 타겟 컴퓨팅 디바이스(132)로부터 획득된 정보에 기초하여 프롬프트를 생성할지 여부를 결정할 수 있다. 예를 들어, 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호는 타겟 컴퓨팅 디바이스(132)가 컨트롤러(138), 타겟 디지털 어시스턴트(142) 또는 질의 프로세서(134) 중 하나 이상을 포함한다는 것을 나타내는 정보를 신호에 포함함으로써 타겟 컴퓨팅 디바이스(132)의 성능을 나타낼 수 있다. 프레즌스 API(116)는 타겟 컴퓨팅 디바이스(132)가 컨트롤러(138), 타겟 디지털 어시스턴트(142), 또는 질의 프로세서(134) 중 하나 이상을 포함한다는 결정에 응답하여 프롬프트를 생성하기로 결정할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)가 컨트롤러(138) 및 질의 프로세서(134)를 포함한다는 결정에 응답하여, 프레즌스 API(116)는 타겟 컴퓨팅 디바이스(132)와 연결할지 아니면 페어링할지 여부를 사용자에게 묻는 요청과 함께 프롬프트가 포함된 아이콘을 생성하기로 결정할 수 있다.
프레즌스 API(116)는 타겟 컴퓨팅 디바이스(132)의 성능에 기초하여, 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)를 제어할 수 있음을 나타내는 프롬프트를 생성할 수 있다. 타겟 컴퓨팅 디바이스(132)가 컨트롤러(138)와 질의 프로세서(134)를 포함하는 경우, 프레즌스 API(116)는 마치 질의가 타겟 디지털 어시스턴트(142) 및 타겟 컴퓨팅 디바이스(132)의 마이크로폰에 의해 검출된 것처럼 질의 프로세서(134)에 의해 처리될 수 있는 컨트롤러(138)에 질의를 포워딩할 수 있는 가상 컨트롤러(120)를 소스 컴퓨팅 디바이스(112)가 호출할 수 있다고 결정할 수 있다.
소스 컴퓨팅 디바이스(112)는 프롬프트에 응답하여, 타겟 컴퓨팅 디바이스(132)를 제어하기 위한 명령을 수신할 수 있다. 명령은 소스 컴퓨팅 디바이스(112)의 사용자 인터페이스를 통해 수신될 수 있다. 명령은 프롬프트와 상호작용하는 사용자를 통해 수신될 수 있다. 사용자는 소스 컴퓨팅 디바이스(112)의 터치 인터페이스를 통해 프롬프트와 상호작용할 수 있다. 사용자는 음성 입력을 통해 프롬프트와 상호작용할 수 있다. 사용자는 제스처를 통해 프롬프트와 상호 작용할 수 있다. 예를 들어, 프롬프트는 사용자가 소스 컴퓨팅 디바이스(112)의 터치 인터페이스를 사용하여 선택하거나 클릭할 수 있는 버튼 또는 다른 사용자 인터페이스 요소일 수 있다.
사용자가 프롬프트와 상호작용하지 않거나, 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)를 제어하라는 명령을 수신하지 못하는 경우, 소스 컴퓨팅 디바이스(112)는 프롬프트를 제거하거나 숨기기로 결정할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 지속 시간 동안 프롬프트를 디스플레이할 수 있으며, 사용자가 지속 시간 또는 시간 간격 내에 타겟 컴퓨팅 디바이스(132)를 제어하라는 명령을 제공하지 않는 경우, 소스 컴퓨팅 디바이스(112)는 사용자가 타겟 컴퓨팅 디바이스(132)를 제어하는데 관심이 없다고 판단하고 그에 따라 아이콘을 제거할 수 있다. 사용자가 타겟 컴퓨팅 디바이스(132)를 제어하기를 원하지 않는 경우 아이콘을 제거함으로써, 소스 컴퓨팅 디바이스(112)는 배터리 또는 프로세서 소모와 같은 자원 소모를 줄일 수 있다.
소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)와 페어링하도록 설계, 구성 및 동작하는 페어링 구성요소(118)를 포함할 수 있다. 페어링 구성요소(118)는 핸드쉐이킹 프로세스를 수행하여 타겟 컴퓨팅 디바이스(132)와 페어링할 수 있다. 페어링 구성요소(118)는 타겟 컴퓨팅 디바이스(132)를 제어하기 위한 명령을 수신하는 것에 응답하여 타겟 컴퓨팅 디바이스(132)와 페어링할 수 있으며, 이 명령은 프레즌스 API(116)에 의해 생성된 프롬프트에 응답하여 수신될 수 있다. 페어링 구성요소(118)는 명령에 응답하여 타겟 컴퓨팅 디바이스(132)와의 통신 채널을 설정할 수 있다.
페어링 구성요소(118)는 하나 이상의 기술을 사용하여 통신 채널을 설정할 수 있다. 페어링 구성요소(118)는 타겟 컴퓨팅 디바이스(132)의 하나 이상의 구성요소와 통신 채널을 설정할 수 있다. 페어링 구성요소(118)는 타겟 컴퓨팅 디바이스(132)의 컨트롤러(138)와의 통신 채널을 설정할 수 있다. 예를 들어, 컨트롤러(138)는 웹소켓 프로토콜을 제공할 수 있다. 웹소켓 프로토콜은 전송 제어 프로토콜("TCP")을 통해 전이중 통신 채널을 제공하도록 구성된 통신 프로토콜을 의미하거나 포함할 수 있다. 웹소켓 프로토콜은 OSI(Open Systems Interconnection) 모델의 계층 7에 위치할 수 있다. 컨트롤러(138)는 웹소켓 프로토콜 및 HTTP 포트(443 및 80)와 같은 통신 포트를 사용하여 소스 컴퓨팅 디바이스(112)와 통신하도록 구성될 수 있다. 웹소켓 프로토콜은 실시간 데이터 전송을 용이하게 할 수 있다.
일부 경우, 컨트롤러(138)는 gRPC 원격 프로시저 호출과 같은 원격 프로시저 호출을 사용하도록 구성될 수 있다. gRPC는 인터페이스 설명 언어로 전송 및 프로토콜 버퍼용 HTTP/2를 사용하여 통신할 수 있는 오픈 소스 원격 프로시저 호출을 지칭할 수 있다. gRPC는 인증, 양방향 스트리밍 및 흐름 제어, 차단 또는 비차단 바인딩, 취소 및 시간 초과(timeout)를 제공할 수 있다. gRPC 프로토콜을 사용하는 컨트롤러(138)는 다양한 프로그래밍 언어에 대한 크로스 플랫폼 클라이언트 및 서버 바인딩을 생성할 수 있다. 따라서, 페어링 구성요소(118)는 무선 프로토콜을 통한 양방향 전이중 통신 계층으로서 통신 채널을 설정할 수 있다.
페어링 구성요소(118)는 컨트롤러(138)와 핸드셰이킹 프로세스를 수행하여 통신 채널을 설정할 수 있다. 핸드셰이킹 프로세스 동안, 페어링 구성요소(118)는 사용자 이름, 비밀번호, 보안 토큰, 디지털 인증서 또는 기타 인증 정보와 같은 인증 자격 증명을 제공할 수 있다. 컨트롤러(138)는 자격 증명을 사용하여 프록시로서 데이터 처리 시스템(102)과의 연결을 설정할 수 있다. 예를 들어, 타겟 디지털 어시스턴트(142)는 인증 자격 증명을 사용하여 소스 컴퓨팅 디바이스(112)의 사용자를 대신하여 서버 디지털 어시스턴트(108)와의 연결을 설정함으로써 타겟 디지털 어시스턴트(142)를 소스 컴퓨팅 디바이스(112)의 소스 디지털 어시스턴트(114)로 변환할 수 있다. 그렇게 함으로써, 타겟 디지털 어시스턴트(142)는 소스 컴퓨팅 디바이스(112)의 사용자로부터의 질의에 응답하고 이를 이행할 수 있다. 예를 들어, 인증 자격 증명을 사용하는 타겟 디지털 어시스턴트(142)는 데이터 처리 시스템(102)의 클라우드 저장 시스템에 저장된 사용자의 사진에 액세스하고 타겟 컴퓨팅 디바이스(132)를 통해 사진을 제시함으로써 "내 사진을 보여 줘"와 같은 질의에 응답할 수 있다.
타겟 컴퓨팅 디바이스(132)는 타겟 디지털 어시스턴트(142)를 맞춤화하거나 타겟 디지털 어시스턴트(142)가 사용자로부터의 질의에 응답하도록 구성하기 위해 자격 증명을 사용하여 소스 컴퓨팅 디바이스(112)의 사용자의 프로필(128)을 로드할 수 있다. 프로필(128) 정보는 예를 들어 음악 정보, 미디어 스트리밍 정보, 사진, 선호도, 애플리케이션 선호도, 설정 또는 연락처 정보를 포함하여 소스 컴퓨팅 디바이스(112)의 사용자에 의해 설정된 임의의 프로필 정보를 포함할 수 있다.
소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)와 페어링되거나 타겟 컴퓨팅 디바이스(132)와 통신 채널을 설정한 후, 소스 컴퓨팅 디바이스(112)는 활성 통신 채널 또는 통신 세션을 나타내는 아이콘을 디스플레이 디바이스(122) 상에 생성하고 제시할 수 있다.
소스 컴퓨팅 디바이스(112)는 활성 세션을 나타내는 아이콘을 디스플레이 디바이스(122)에 유지할 수 있다. 아이콘은 통신 세션이 활성 상태(active)에 있는 동안 디스플레이 디바이스(122)에 계속 표시되는 지속적인 아이콘일 수 있다. 아이콘은 디스플레이 디바이스(122)에 제시될 수 있는 다른 그래픽 사용자 인터페이스 요소 위에 오버레이될 수 있다. 소스 컴퓨팅 디바이스(112)는 가상 컨트롤러(120)가 통신 채널을 통해 질의를 포워딩하기 위해 활성 상태임을 나타내는 아이콘을 디스플레이 디바이스(122) 상에 유지할 수 있다.
통신 채널 또는 세션을 설정하는 것에 응답하여, 소스 컴퓨팅 디바이스(112) 또는 페어링 구성요소(118)는 소스 컴퓨팅 디바이스(112)에서 수신된 질의를 통신 채널을 통해 타겟 컴퓨팅 디바이스(132)로 포워딩하여 타겟 컴퓨팅 디바이스(132)를 제어하기 위해 소스 컴퓨팅 디바이스(112)에서 가상 컨트롤러(120)를 호출할 수 있다. 소스 컴퓨팅 디바이스(112)는 페어링 구성요소(118)에 의해 설정된 통신 세션 또는 채널을 통해 타겟 컴퓨팅 디바이스(132)의 컨트롤러(138)에 질의를 포워딩하도록 설계되고 구성되고 동작하는 가상 컨트롤러(120)를 포함할 수 있다. 가상 컨트롤러(120)는 소스 컴퓨팅 디바이스(112)의 사용자로부터 질의를 수신하거나 검출할 수 있다. 질의는 마이크로폰(124)에 의해 검출된 음성 입력 질의일 수 있다.
일부 경우, 소스 디지털 어시스턴트(114)는 음성 입력을 검출하고 음성 입력을 분석할 수 있다. 소스 디지털 어시스턴트(114)는 음성 입력을 분석하여 요청 또는 질의를 식별할 수 있다. 소스 디지털 어시스턴트(114)는 가상 컨트롤러(120)에 질의하여 타겟 컴퓨팅 디바이스(132)와의 활성 통신 세션이 있는지 여부를 결정할 수 있다. 소스 디지털 어시스턴트(114)는 (예를 들어, 신호 브로드캐스터(140)에 의해 이전에 브로드캐스팅된 신호에 기초하여) 타겟 컴퓨팅 디바이스(132)의 성능을 결정할 수 있다. 소스 디지털 어시스턴트(114)는 타겟 컴퓨팅 디바이스(132)가 요청 또는 질의를 이행할 수 있다고 결정할 수 있다. 소스 디지털 어시스턴트(114)는 음성 입력 질의를 가상 컨트롤러(120)로 포워딩할 수 있고 가상 컨트롤러(120)에게 질의를 컨트롤러(138)로 포워딩하도록 지시할 수 있다. 컨트롤러(138)는 가상 컨트롤러(120)로부터 질의를 수신하면 타겟 컴퓨팅 디바이스(132)의 질의 프로세서(134)로 질의를 포워딩할 수 있다. 질의 프로세서(134)는 질의가 타겟 컴퓨팅 디바이스(132)의 구성요소에 의해 검출된 것처럼 질의를 처리할 수 있다. 따라서, 타겟 컴퓨팅 디바이스(132)는 마치 타겟 컴퓨팅 디바이스(132)가 처음에 질의 자체를 검출한 것처럼 소스 컴퓨팅 디바이스(112)에 의해 검출된 음성 입력을 원활하게 처리할 수 있다.
일부 경우, 가상 컨트롤러(120)는 가상 컨트롤러(120)와 컨트롤러(138) 사이에 활성 통신 세션이 있는 동안 자동으로 또는 디폴트로 소스 컴퓨팅 디바이스(112)에 의해 수신된 모든 질의를 컨트롤러(138)로 포워딩할 수 있다. 일부 경우, 가상 컨트롤러(120)는 사용자에게 질의를 포워딩할 것인지 묻는 질의를 검출하는 것에 응답하여 프롬프트를 제공할 수 있다. 일부 경우, 가상 컨트롤러(120)는 사용자가 컨트롤러(138)로의 질의 포워딩을 중지하거나 차단할 수 있도록 허용하지만 디폴트로 질의 포워딩하는 타이머를 사용하여 프롬프트를 생성할 수 있다. 따라서, 가상 컨트롤러(120)는 활성 통신 세션 동안 질의의 원활한 포워딩을 제공할 수 있고, 질의 프로세서(134)는 마치 질의가 타겟 컴퓨팅 디바이스(132) 자체에 의해 처음에 검출되거나 수신된 것처럼 질의를 원활하게 처리할 수 있다. 타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)로부터 포워딩된 질의를 수신하고, 질의를 처리하여 타겟 컴퓨팅 디바이스(132)의 기능을 제어할 수 있다.
소스 컴퓨팅 디바이스(112)는 마이크로폰(124)을 통해 질의를 포함하는 오디오 입력을 검출할 수 있다. 소스 컴퓨팅 디바이스(112)는 오디오 입력을 통신 채널을 통해 타겟 컴퓨팅 디바이스(132)로 포워딩할 수 있다. 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)와의 활성 통신 세션이 있는 동안 모든 질의를 자동으로 포워딩하기로 결정할 수 있다. 타겟 컴퓨팅 디바이스(132)는 오디오 입력을 수신하고, 오디오 입력을 분석하여 질의를 식별하고, 질의를 처리하여 타겟 컴퓨팅 디바이스(132)의 기능을 제어할 수 있다. 예를 들어, 질의는 액션 영화 재생, 특정 영화 재생, 사용자 사진 표시, 날씨 제공 등이 될 수 있다. 질의 프로세서(134)는 입력 오디오를 수신하고, 입력 오디오를 분석하여 질의를 식별하고, 핸드셰이킹 프로세스 동안 수신된 인증 자격 증명에 응답하여 타겟 컴퓨팅 디바이스(132)에 의해 수신되거나 액세스되는 프로필 정보(128)에 기초하여 질의를 이행할 수 있다. 일부 경우, 질의를 이행하기 위해, 질의 프로세서(134)는 프로필 정보를 사용하여 데이터 처리 시스템(102)과 통신할 수 있다. 데이터 처리 시스템(102)은 예를 들어 프리젠테이션을 위해 타겟 컴퓨팅 디바이스(132)에 사진을 제공할 수 있다.
데이터 처리 시스템(102)은 보조 디지털 컨텐츠 제공자(144)로부터 컨텐츠 아이템을 선택하고 제공할 수 있다. 데이터 처리 시스템(102)은 보조 컨텐츠 항목에 대한 요청을 생성할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 타겟 컴퓨팅 디바이스(132)로부터 컨텐츠에 대한 요청을 수신할 수 있다. 컨텐츠 요청에는 사진, 날씨, 여행 정보, 차량 공유 요청, 멀티미디어 스트리밍 또는 기타 요청이 포함될 수 있다. 데이터 처리 시스템(102)은 질의 프로세서(134) 또는 타겟 디지털 어시스턴트(142)로부터 요청을 수신할 수 있다. 타겟 컴퓨팅 디바이스(132)는 활성 통신 세션 동안 가상 컨트롤러(120)로부터 포워딩된 질의를 수신하는 것에 응답하여 컨텐츠에 대한 요청을 생성하고 제공할 수 있다.
데이터 처리 시스템(102)은 보조 컨텐츠 항목에 대한 두 번째 또는 새로운 요청을 생성할 수 있다. 데이터 처리 시스템(102)은 타겟 컴퓨팅 디바이스(132)로부터 요청을 수신하는 것에 응답하여 새로운 요청을 생성할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)에 의해 요청된 컨텐츠(예를 들어, 사용자의 사진)를 제공하는 것 외에, 데이터 처리 시스템(102)은 광고 디지털 객체와 같은 보조 컨텐츠에 대한 새로운 보조 요청을 생성할 수 있다. 데이터 처리 시스템(102)은 컨텐츠 선택기(110)에 새로운 보조 요청을 제공할 수 있다. 컨텐츠 선택기(110)는 타겟 컴퓨팅 디바이스(132)로부터 수신된 오리지널 요청과 연관된 정보 또는 소스 컴퓨팅 디바이스(112)의 프로필(128)과 연관된 프로필 정보를 사용하여 실시간 컨텐츠 선택 프로필을 수행할 수 있다. 컨텐츠 선택기(110)는 보조 디지털 컨텐츠에 대한 제2 요청에 응답하여, 제2 요청에 응답하여 그리고 소스 컴퓨팅 디바이스(112)와 타겟 컴퓨팅 디바이스(132) 사이의 통신 채널이 활성 상태인 것에 응답하여 소스 컴퓨팅 장치(112)와 연관된 프로파일 정보에 기초하여 보조 컨텐츠 항목을 선택할 수 있다. 데이터 처리 시스템(102)은 타겟 컴퓨팅 디바이스(132)에 디스플레이하기 위해, 요청의 컨텐츠와 다른 보조 컨텐츠 항목을 제공할 수 있다. 따라서, 타겟 컴퓨팅 디바이스(132)는 가상 컨트롤러(120)에 의해 포워딩된 요청에 응답하는 컨텐츠(예를 들어, 날씨 정보)뿐만 아니라 보조 컨텐츠 항목(예를 들어, 광고)도 제시할 수 있다. 보조 컨텐츠 항목은 오리지널 요청, 프로필 정보 또는 기타 정보와 관련될 수 있다.
소스 컴퓨팅 디바이스(112)와 타겟 컴퓨팅 디바이스(132) 사이의 통신 세션 또는 채널은 종료되거나 연결 해제될 수 있다. 통신 채널 또는 세션을 종료하거나 연결 해제하는 것은 채널을 끊는 것, 통신 세션을 종료하는 것, 추가 통신을 차단하여 추가 통신을 방지하는 것, 또는 소스 컴퓨팅 디바이스(112)와 타겟 컴퓨팅 디바이스(132) 사이의 데이터 통신을 중지하는 것을 지칭할 수 있다. 그러나 일부 경우, 통신 세션을 종료해도 신호 브로드캐스터(140)가 프레즌스 API(116)에 의해 수신되거나 검출될 수 있는 신호를 브로드캐스팅하는 것을 중지하거나 방지할 수 없다. 예를 들어, 통신 세션을 종료하면 소스 컴퓨팅 디바이스(112)에서 타겟 컴퓨팅 디바이스(132)로의 질의 포워딩이 중지될 수 있다.
소스 컴퓨팅 디바이스(112), 타겟 컴퓨팅 디바이스(132), 또는 데이터 처리 시스템(102) 중 하나 이상은 통신 채널을 끝내거나 종료할 수 있다. 통신 채널은 통신 채널 종료 요청에 응답하여 종료될 수 있다. 통신 채널은 이벤트, 조건 또는 트리거에 기초하거나 그에 응답하여 종료될 수 있다. 예를 들어, 통신 채널은 시간 간격 또는 지속 시간(예를 들어, 10분, 15분, 20분, 30분 또는 1시간)에 기초하여 종료될 수 있다. 통신 채널은 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)로부터 멀어지거나 더 이상 타겟 컴퓨팅 디바이스(132)의 범위 내에 있지 않을 때 종료될 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)가 만족스러운 신호 강도(또는 진폭 또는 전력)로 신호 브로드캐스터(140)에 의해 브로드캐스팅된 신호를 더 이상 검출할 수 없는 경우 통신 채널을 종료할 수 있다. 통신 채널은 질의가 이행된 후 종료될 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)는 질의가 완료되었다는 신호를 소스 컴퓨팅 디바이스(112)로 전송할 수 있고, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)와의 연결을 끊기로 결정할 수 있다. 일부 경우, 소스 컴퓨팅 디바이스(112)는 사용자가 통신 채널을 종료하라는 명령을 제공하거나 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)로부터 범위 밖으로 이동할 때까지 타겟 컴퓨팅 디바이스(132)에 대한 연결을 유지하거나 지속적인 통신 채널을 유지할 수 있다. 일부 경우, 타겟 컴퓨팅 디바이스(132) 또는 소스 컴퓨팅 디바이스(112)는 유휴 타임아웃(시간초과) 조건에 응답하여 통신 채널을 종료하기로 결정할 수 있다. 예를 들어, 가상 컨트롤러(120)가 시간 간격(예를 들어, 10분, 15분, 20분, 30분, 1시간 또는 기타 시간 간격) 동안 컨트롤러(138)에 어떤 질의도 포워딩하지 않는 경우, 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)는 통신 채널이 타임아웃되었다고 결정할 수 있다. 사용하지 않는 경우 통신 채널을 종료하면 보안 취약성과 리소스 활용도(예를 들어, 프로세서, 메모리 또는 배터리 활용도)를 줄일 수 있다.
통신 채널을 종료하거나 통신 채널이 타임아웃되면, 타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)로부터 수신된 임의의 인증 자격 증명 또는 프로필 정보를 제거할 수 있다. 타겟 컴퓨팅 디바이스(132)는 통신 채널 동안 소스 컴퓨팅 디바이스(112)로부터 수신된 임의의 프로필 정보 또는 기타 정보를 삭제, 취소(scrub) 또는 제거할 수 있다. 타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)로부터 수신된 질의를 이행하기 위해 데이터 처리 시스템(102)으로부터 수신된 임의의 정보를 추가로 삭제, 취소 또는 제거할 수 있다. 예를 들어, 타겟 컴퓨팅 디바이스(132)는 사진을 보여주기 위한 사용 질의에 응답하여 데이터 처리 시스템(102)으로부터 수신되었을 수 있는 사진을 삭제할 수 있다. 따라서, 타겟 컴퓨팅 디바이스(132)는 통신 채널의 설정에 따라 수신되거나 통신 채널의 설정 이후에 수신된 임의의 사용자 정보를 제거할 수 있다.
도 2는 구현에 따른, 디바이스의 동적 원격 제어를 위한 시스템의 예시적인 동작을 도시한다. 동작(200)은 예를 들어 소스 컴퓨팅 디바이스(112), 타겟 컴퓨팅 디바이스(132) 또는 데이터 처리 시스템(102)을 포함하여 도 1에 도시된 하나 이상의 시스템 또는 구성요소에 의해 수행될 수 있다. 소스 컴퓨팅 디바이스(112)는 스마트폰과 같은 모바일 디바이스일 수 있다. 타겟 컴퓨팅 디바이스(132)는 스마트 디스플레이 또는 텔레비전일 수 있다.
소스 컴퓨팅 디바이스(112)는 202에서 초기 상태에 있을 수 있다. 초기 상태는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)에 근접하지 않거나 타겟 컴퓨팅 디바이스(132)의 범위 내에 있지 않은 상태를 지칭할 수 있다. 초기 상태 동안, 소스 컴퓨팅 디바이스(112)와 타겟 컴퓨팅 디바이스(132) 사이에는 통신 채널이 없을 수 있다. 초기 상태(202) 동안, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)의 신호 브로드캐스터에 의해 브로드캐스팅된 신호를 수신하지 않을 수 있다. 예를 들어, 초기 상태(202) 동안, 소스 컴퓨팅 디바이스(112)는 다른 방, 층 또는 건물과 같이 타겟 컴퓨팅 디바이스(132)로부터 멀리 떨어져 있을 수 있다.
소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)를 향해 이동될 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)의 사용자는 타겟 컴퓨팅 디바이스(132)에 가깝게 또는 타겟 컴퓨팅 디바이스(132)에 의해 브로드캐스트되는 신호 범위 내에서 소스 컴퓨팅 디바이스(112)를 휴대할 수 있다. 204에서, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)에 의해 브로드캐스팅된 신호를 검출할 수 있다. 소스 컴퓨팅 디바이스(112)는 예를 들어 프레즌스 API를 통해 신호를 검출할 수 있다. 신호 및 그 신호와 연관된 대응 정보를 검출하는 것에 응답하여 소스 컴퓨팅 디바이스(112)는 프롬프트(206)를 생성할 수 있다. 프롬프트는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)를 제어하는데 사용될 수 있음을 나타낼 수 있다. 프롬프트는 예를 들어 "TV를 제어하세요"일 수 있으며, 여기서 TV는 텔레비전 또는 타겟 컴퓨팅 디바이스(132)를 지칭할 수 있다.
소스 컴퓨팅 디바이스(112)의 사용자는 프롬프트를 선택하거나 입력을 제공함으로써 프롬프트(206)에 응답할 수 있다. 입력은 소스 컴퓨팅 디바이스(112)가 208에서 통신 채널을 설정하게 할 수 있다. 예를 들어, 사용자는 프롬프트(206)를 클릭할 수 있고, 그 선택에 응답하여, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)와 핸드쉐이킹 프로세스를 수행하여 통신 채널(208)을 설정할 수 있다.
통신 채널을 설정할 때, 일부 경우, 소스 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)가 타겟 컴퓨팅 디바이스(132)와의 활성 통신 세션을 가지고 있음을 나타내는 지속(persistent) 아이콘(210)을 생성하고 제시할 수 있다. 아이콘은 타겟 컴퓨팅 디바이스(132)가 음성 입력을 수신하고 음성 입력을 처리하는 능력을 갖고 있는 경우 마이크로폰일 수 있다. 일부 경우, 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132)가 수행할 수 있는 기능의 유형에 관한 제안(212)을 제공할 수 있다. 제안(212)은 타겟 컴퓨팅 디바이스(132)의 성능 또는 기능에 기초하여 생성될 수 있다. 소스 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)의 메모리에 저장된 UI 템플릿에 기초하여 제안을 생성할 수 있다. 소스 컴퓨팅 디바이스(112)는 타겟 컴퓨팅 디바이스(132) 또는 데이터 처리 시스템(102)으로부터 제안을 수신할 수 있다.
214에서, 소스 컴퓨팅 디바이스(112)는 소스 컴퓨팅 디바이스(112)의 마이크로폰으로부터 질의를 수신할 수 있다. 질의는 "내 사진을 보여 줘"일 수 있다. 216에서, 소스 컴퓨팅 디바이스(112)는 그 질의를 타겟 컴퓨팅 디바이스(132)로 퍼워딩하기로 결정할 수 있다. 예를 들어, 소스 컴퓨팅 디바이스(112)는 입력 질의 및 활성 통신 세션을 검출하고 이어서 그 질의를 타겟 컴퓨팅 디바이스(132)의 컨트롤러로 포워딩하기로 결정할 수 있는 가상 컨트롤러를 포함할 수 있다.
타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)로부터 포워딩된 질의를 수신할 수 있다. 타겟 컴퓨팅 디바이스(132)는 설정된 통신 채널로 인해 마치 타겟 컴퓨팅 디바이스(132)가 가상 컨트롤러로부터가 아닌 사용자로부터 직접 음성 질의를 수신한 것처럼 해당 질의를 처리할 수 있다. 타겟 컴퓨팅 디바이스(132)는 소스 컴퓨팅 디바이스(112)의 계정 또는 프로필과 연관된 사진(220)의 디스플레이를 사용하여 디폴트 또는 현재 디스플레이(218)(예를 들어, 화면 보호기, 텔레비전 쇼 또는 현재 텔레비전에 제시되는 기타 미디어)를 변경할 수 있다. .
도 3은 구현에 따른 디바이스의 동적 원격 제어 방법의 예시를 도시한다. 방법(300)은 예를 들어 데이터 처리 시스템, 소스 컴퓨팅 디바이스, 또는 타겟 컴퓨팅 디바이스를 포함하여 도 1에 도시된 하나 이상의 시스템 또는 구성요소에 의해 수행될 수 있다. 302에서, 소스 디바이스는 타겟 디바이스의 존재를 검출할 수 있다. 소스 디바이스는 스마트폰, 스마트 워치 등의 모바일 컴퓨팅 디바이스 또는 기타 컴퓨팅 디바이스를 포함할 수 있다. 소스 디바이스는 타겟 디바이스에 의해 전송되거나 브로드캐스트되는 신호를 검출함으로써 존재 여부를 검출할 수 있다. 타겟 디바이스는 예를 들어 스마트 TV나 디스플레이, 스피커, IoT 디바이스(예를 들어, 스마트 기기, 스피커 또는 자동차)와 같은 네트워크 연결 디바이스를 포함할 수 있다.
304에서, 소스 디바이스는 타겟 디바이스의 성능을 결정할 수 있다. 소스 디바이스는 질의가 소스 디바이스에 의해 포워딩될 수 있는 컨트롤러를 타겟 디바이스가 포함하는지 결정(확인)할 수 있다. 소스 디바이스는 타겟 디바이스가 디지털 어시스턴트 디바이스로 구성되는지 결정할 수 있다. 소스 디바이스는 브로드캐스팅된 신호에 존재하는 정보에 기초하거나 디바이스 식별자 또는 유형을 사용하여 조회 또는 웹 검색을 수행하는 등의 다른 기술을 사용하여 기능을 결정할 수 있다.
306에서, 소스 디바이스는 타겟 디바이스가 소스 디바이스와 호환되는지 여부를 결정할 수 있다. 소스 디바이스는 소스 디바이스가 이행을 위해 질의를 타겟 디바이스에 퍼워딩할 수 있도록 하는 소스 디바이스의 조건이나 사양에 기초하여 호환성 일치(compatibility match)를 결정할 수 있다. 예를 들어, 타겟 디바이스가 소스 디바이스의 가상 컨트롤러로부터 질의를 수신하도록 구성된 컨트롤러를 포함하는 경우, 소스 디바이스는 타겟 디바이스가 소스 디바이스와 호환된다고 결정할 수 있다. 일부 경우, 호환성 일치는 소스 디바이스 또는 타겟 디바이스에 설치된 소프트웨어 애플리케이션 또는 프로그램의 버전을 참조하거나 이를 기반으로 할 수 있다. 일부 경우, 호환성 일치는 사용자 선호도(기본 설정)에 기초할 수 있다. 예를 들어, 소스 디바이스에 저장된 프로필에는 통신 세션을 설정할 타겟 디바이스 유형에 대한 설정이나 선호도가 포함될 수 있다. 사용자는 프로필에 스마트 디스플레이 또는 스마트 TV와의 통신 세션만 설정하도록 표시할 수 있다. 따라서, 타겟 디바이스가 스마트 디스플레이 또는 스마트 텔레비전인 경우, 소스 디바이스는 306에서 호환성 일치가 있다고 결정할 수 있다. 호환성 일치가 없는 경우(예를 들어, 디바이스 유형이 설정과 일치하지 않거나 타겟 디바이스에 소스 디바이스와 호환되는 컨트롤러 또는 디지털 어시스턴트 디바이스가 없는 경우), 방법은 타겟 디바이스의 추가 존재 검출을 차단하기 위해 블록(308)으로 진행할 수 있다.
그러나 소스 디바이스가 306에서 타겟 디바이스가 소스 디바이스와 호환된다고 결정하면, 소스 디바이스는 310으로 진행하여 프롬프트를 생성하고 제공할 수 있다. 소스 디바이스는 타겟 디바이스의 호환성이나 성능(capability)에 기초하여 프롬프트를 제공할 수 있다. 예를 들어, 타겟 디바이스가 음성 질의를 처리할 수 있는 디지털 어시스턴트 디바이스 또는 질의 프로세서를 포함하는 경우, 프롬프트에는 마이크로폰이 포함될 수 있다. 프롬프트는 사용자에게 타겟 디바이스와의 통신 채널 또는 통신 세션을 설정하기 위한 인증을 요청할 수 있다. 소스 디바이스는 소스 디바이스의 디스플레이를 통해 프롬프트를 제시할 수 있다. 일부 경우, 프롬프트는 오디오 프롬프트, 시각적 프롬프트, 햅틱 프롬프트 또는 사용자의 주의를 끄는 기타 유형의 프롬프트를 포함하거나 연관될 수 있다.
312에서, 소스 디바이스는 타겟 디바이스를 제어하라는 명령을 수신할 수 있다. 명령은 소스 디바이스의 사용자 입력을 통해 수신되고 프롬프트에 대한 응답일 수 있다. 명령은 타겟 디바이스를 제어하려는 욕구를 나타내는 터치 입력 또는 음성 입력일 수 있다. 타겟 디바이스를 제어하는 것은 예를 들어 타겟 디바이스에서 비디오 또는 음악을 재생하는 것, 타겟 디바이스를 통해 정보에 액세스하는 것, 타겟 디바이스에서 사진을 재생하는 것, 또는 기타 타겟 디바이스의 기능이나 성능을 사용하는 것을 포함할 수 있다. 사용자가 디바이스를 제어하라는 명령을 입력하지 않거나, 타겟 디바이스를 제어하지 말라는 표시를 제공하는 경우, 방법은 314로 진행하여 통신 채널 설정을 차단할 수 있다. 일부 경우, 소스 디바이스는 프롬프트를 수정할 수 있다. 프롬프트 수정은 프롬프트 제거, 프롬프트 숨기기 또는 프롬프트 변경을 의미하거나 포함할 수 있다. 예를 들어, 사용자가 통신 채널을 개설하지 않겠다고 표시하거나, 프롬프트가 발생한 후 일정 시간(예를 들어, 1분, 2분, 3분, 4분 등) 동안 아무런 입력도 하지 않는 경우, 소스 디바이스는 프롬프트를 더 작게 만들거나 흐리게 만들거나 디스플레이의 배경으로 이동할 수 있다.
그러나, 사용자가 프롬프트에 응답하여 타겟 디바이스와의 통신 채널을 설정하도록 지시한 경우, 방법은 316으로 진행하여 타겟 디바이스와 통신 채널을 설정할 수 있다. 통신 채널 설정에는 핸드셰이킹 프로세스 수행, 인증 자격 증명 공유 또는 프로필 공유가 포함될 수 있다. 통신 채널은 gRPC 세션이거나 다른 유형의 프로토콜일 수 있다.
318에서, 소스 디바이스는 가상 컨트롤러를 호출할 수 있다. 소스 디바이스는 타겟 디바이스와 설정된 통신 세션에 응답하여 가상 컨트롤러를 호출하거나 구성할 수 있다. 가상 컨트롤러는 타겟 디바이스에 대한 프록시 입력 인터페이스 역할을 할 수 있다. 예를 들어, 가상 컨트롤러는 소스 디바이스에 의해 수신된 음성 입력이나 질의를 검출한 다음 그 질의를 타겟 디바이스로 포워딩할 수 있다. 타겟 디바이스는 전달된 질의 수신 시, 질의가 사용자로부터 타겟 디바이스에 직접 수신된 것처럼 처리할 수 있으므로 소스 디바이스를 통해 타겟 디바이스에 대한 원활한 가상 제어를 제공할 수 있다.
도 4는 예시적인 컴퓨터 시스템(400)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(400)는 시스템(100), 또는 데이터 처리 시스템(102), 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)와 같은 그의 구성요소를 포함하거나 구현하는데 사용될 수 있다. 데이터 처리 시스템(102), 소스 컴퓨팅 디바이스(112) 또는 타겟 컴퓨팅 디바이스(132)는 지능형 개인 어시스턴트 또는 음성 기반 디지털 어시스턴트를 포함할 수 있다. 컴퓨팅 시스템(400)은 정보를 전달하기 위한 버스(405) 또는 다른 통신 구성요소 및 정보를 처리하기 위해 버스(405)에 연결된 프로세서(410) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(400)은 또한 정보를 처리하기 위해 버스에 연결된 하나 이상의 프로세서(410) 또는 처리 회로를 포함할 수 있다. 컴퓨팅 시스템(400)은 또한 정보를 저장하기 위해 버스(405)에 연결된 RAM(Random Access Memory) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(415), 및 프로세서(410)에 의해 실행되는 명령들을 포함한다. 메인 메모리(415)는 데이터 저장소이거나 이를 포함할 수 있다. 메인 메모리(415)는 또한 프로세서(410)에 의한 명령 실행 중에 위치 정보, 임시 변수 또는 기타 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(400)은 프로세서(410)에 대한 정적 정보 및 명령을 저장하기 위해 버스(405)에 연결된 판독 전용 메모리(ROM)(420) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 상태 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(425)는 정보 및 명령을 지속적으로 저장하기 위해 버스(405)에 연결될 수 있다. 저장 디바이스(425)는 데이터 저장소를 포함하거나 그의 일부일 수 있다.
컴퓨팅 시스템(400)은 사용자에게 정보를 디스플레이하기 위해 버스(405)를 통해 액정 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(435)에 연결될 수 있다. 영숫자 및 기타 키를 포함하는 키보드와 같은 입력 디바이스(430)는 정보 및 명령 선택을 프로세서(410)에 전달하기 위한 버스(405)에 연결될 수 있다. 입력 디바이스(430)는 터치 스크린 디스플레이(435)를 포함할 수 있다. 입력 디바이스(430)는 또한 방향 정보 및 명령 선택을 프로세서(410)에 전달하고 디스플레이(435) 상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 컨트롤을 포함할 수 있다. 디스플레이(435)는 예를 들어 데이터 처리 시스템(102), 소스 컴퓨팅 디바이스(112), 타겟 컴퓨팅 디바이스(132), 또는 도 1의 다른 구성요소의 일부일 수 있다.
본 명세서에 설명된 프로세스, 시스템 및 방법은 프로세서(410)가 메인 메모리(415)에 포함된 명령 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(400)에 의해 구현될 수 있다. 이러한 명령들은 저장 디바이스(425)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(415)로 판독될 수 있다. 메인 메모리(415)에 포함된 명령 배열의 실행은 컴퓨팅 시스템(400)으로 하여금 본 명세서에 설명된 예시적인 프로세스를 수행하게 한다. 다중 처리 배열의 하나 이상의 프로세서가 메인 메모리(415)에 포함된 명령을 실행하는 데에도 사용될 수 있다. 하드 배선(Hard-wired) 회로는 본 명세서에 설명된 시스템 및 방법과 함께 소프트웨어 명령 대신 또는 이와 결합하여 사용될 수 있다. 본 명세서에 설명된 시스템과 방법은 하드웨어 회로와 소프트웨어의 특정 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 4에 설명되었지만, 본 명세서에 설명된 동작들을 포함하는 주제는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 다른 유형의 디지털 전자 회로, 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 설명된 시스템이 사용자에 대한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황의 경우, 사용자에게는 개인 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션이나 활동, 사용자의 선호도, 사용자의 위치에 관한 정보)를 수집할 수 있는 프로그램이나 기능을 제어할 수 있는 기회가 제공되거나, 사용자에게 더 관련성이 있을 수 있는 컨텐츠 서버나 기타 데이터 처리 시스템으로부터 컨텐츠를 수신할지 여부 또는 수신 방법을 제어할 수 있는 기회가 제공될 수 있다. 또한, 특정 데이터는 파리미터 생성 시 개인 식별 정보가 제거되도록 저장 또는 사용되기 전에 하나 이상의 방법으로 익명화될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 확인될 수 없도록 익명화되거나 사용자의 지리적 위치는 사용자의 특정 위치가 확인될 수 없도록 위치 정보가 획득된 곳(예를 들어, 도시, 우편번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 자신에 대한 정보가 수집되고 컨텐츠 서버에 의해 사용되는 방법을 제어할 수 있다.
본 명세서에 설명된 주제와 동작들은 본 명세서에 개시된 구조와 그의 구조적 등가물을 포함하는 디지털 전자 회로, 컴퓨터 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제는 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체에 인코딩된 하나 이상의 컴퓨터 프로그램, 예를 들어 컴퓨터 프로그램 명령의 하나 이상의 회로로 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 디바이스로 전송하기 위해 정보를 인코딩하도록 생성된 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합이거나 이들에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호는 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 구성요소 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)이거나 이들에 포함될 수 있다. 본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로으로 구현될 수 있다.
"데이터 처리 시스템", "컴퓨팅 디바이스", "구성요소" 또는 "데이터 처리 장치"라는 용어는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 여러 시스템 또는 이들의 조합을 포함하여 데이터를 처리하기 위한 다양한 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 예를 들어, 프레즌스 API(116), 페어링 구성요소(118), 가상 컨트롤러(120), 또는 다른 구성요소는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트 또는 코드라고도 함)은 컴파일되거나 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 구성요소, 서브루틴, 개체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있다. 컴퓨터 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용의 단일 파일, 또는 다수의 조정된 파일(예를 들어, 예를 들어 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 걸쳐 분산되고 통신 네트워크로 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램(예를 들어, 데이터 처리 시스템(102)의 구성요소)을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA 또는 ASIC에 의해 수행될 수 있고 장치도 특수 목적 논리 회로로 구현될 수도 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 디바이스는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광자기 디스크; CD ROM 및 DVD-ROM 디스크를 포함한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로로 보완되거나 통합될 수 있다.
본 명세서에 설명된 주제는 백 엔드 구성요소(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 구성요소(예를 들어, 애플리케이션 서버)를 포함하거나, 프런트 엔드 구성요소(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖춘 클라이언트 컴퓨터)를 포함하거나, 이러한 백엔드, 미들웨어 또는 프런트엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성요소는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태나 매체를 통해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 상호 네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)가 포함된다.
시스템(100) 또는 시스템(400)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크(예를 들어, 네트워크(105))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 구현에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호작용하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위한 목적으로) 클라이언트 디바이스로 데이터(예를 들어, 디지털 구성요소를 나타내는 데이터 패킷)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호작용의 결과)는 서버의 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 소스 컴퓨팅 디바이스(112) 또는 보조 디지털 컨텐츠 제공자 디바이스(144)로부터 데이터 처리 시스템(102)에 의해 수신됨) ).
도면에는 동작들이 특정 순서로 도시되어 있지만, 이러한 동작들은 도시된 특정 순서 또는 순차적인 순서로 수행될 필요는 없으며 설명된 모든 동작이 수행될 필요는 없다. 여기에 설명된 동작들은 다른 순서로 수행될 수 있다.
다양한 시스템 구성요소의 분리는 모든 구현에서 분리를 요구하지 않으며, 설명된 프로그램 구성요소는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, 자연어 프로세서(106) 및 인터페이스(104)는 단일 구성요소, 앱, 또는 프로그램, 또는 하나 이상의 처리 회로를 갖는 논리 디바이스이거나 데이터 처리 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
이제 일부 예시적인 구현을 설명했지만, 전술한 내용은 예시적인 것이며 제한하는 것이 아니며 예로서 제공되었음이 명백하다. 특히, 본 명세서에 제시된 많은 예가 방법 동작(acts) 또는 시스템 요소의 특정 조합을 포함하지만, 해당 동작과 해당 요소는 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현과 관련하여 논의된 동작, 요소 및 기능은 다른 구현 또는 구현의 유사한 역할에서 제외되도록 의도되지 않았다.
본 명세서에 사용된 어법 및 용어는 설명을 위한 것이며 제한하는 것으로 간주되어서는 안 된다. 본 명세서에서 "포함하는(including)", "포함하는 (comprising)", "갖는(having)", "포함하는(containing)", "포함하는(involving)", "~로 특징지어지는", "~을 특징으로 하는"의 사용 및 그의 변형은 이후 나열된 항목, 그의 등가물 및 추가 항목뿐만 아니라 이후 나열된 항목으로만 구성된 대체 구현을 포함하는 것을 의미한다. 일 구현에서, 본 명세서에 설명된 시스템 및 방법은 설명된 요소, 동작 또는 구성요소 중 하나, 하나 이상 또는 모든 조합으로 구성된다.
본 명세서에서 단수형으로 언급된 시스템 및 방법의 구현, 요소 또는 동작에 대한 모든 언급은 또한 복수의 이러한 요소를 포함하는 구현을 포함할 수 있으며, 여기에서 임의의 구현이나 요소 또는 동작에 대한 복수의 참조는 단일 요소만을 포함하는 구현도 포함할 수 있다. 단수 또는 복수 형태의 언급은 현재 개시된 시스템 또는 방법, 그의 구성요소, 동작 또는 요소를 단일 또는 복수 구성으로 제한하려는 의도가 아니다. 임의의 정보, 동작 또는 요소에 기초한 임의의 동작 또는 요소에 대한 언급은 동작 또는 요소가 임의의 정보, 동작 또는 요소에 적어도 부분적으로 기초하는 구현을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실시예와 결합될 수 있으며, "구현", "일부 구현", "하나의 구현" 등에 대한 언급은 반드시 상호 배타적일 필요는 없으며 구현과 관련하여 설명된 특정 특징, 구조 또는 특성이 적어도 하나의 구현 또는 실시예에 포함될 수 있음을 나타내기 위한 것이다. 본 명세서에 사용된 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 본 명세서에 개시된 양태 및 구현과 일치하는 방식으로, 포괄적으로 또는 배타적으로 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 언급은 "또는"을 사용하여 설명된 모든 용어가 설명된 단일 용어, 둘 이상 및 전체 용어 중 어느 하나를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 결합된 용어 목록 중 하나 이상에 대한 언급은 설명된 단일 용어, 둘 이상 및 모든 용어 중 하나를 나타내는 포괄적인 OR로 해석될 수 있다. 예를 들어, 'A'와 'B' 중 적어도 하나'라는 언급에는 'A'만, 'B'만 포함될 수 있을 뿐만 아니라 'A'와 'B'가 모두 포함될 수 있다. "포함하는" 또는 다른 개방형 용어와 함께 사용되는 이러한 언급에는 추가 항목이 포함될 수 있다.
도면, 상세한 설명 또는 임의의 청구범위의 기술적 특징 뒤에 참조 부호가 오는 경우, 참조 부호는 도면, 상세한 설명 및 청구범위의 이해도를 높이기 위해 포함되었다. 따라서, 참조 기호나 그의 부재 모두 청구범위 요소의 범위를 제한하는 영향을 미치지 않는다.
본 명세서에 설명된 시스템 및 방법은 그의 특성을 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 전술한 구현은 설명된 시스템 및 방법을 제한하기보다는 예시적이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 전술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미와 균등 범위 내에 있는 변경이 본 명세서에 포함된다.

Claims (20)

  1. 디바이스의 원격 제어 시스템으로서,
    하나 이상의 프로세서와 메모리를 포함하는 제1 컴퓨팅 디바이스로서:
    제1 컴퓨팅 디바이스의 범위 내에 위치된 제2 컴퓨팅 디바이스를 검출하고;
    제2 컴퓨팅 디바이스를 검출하는 것에 응답하여, 제2 컴퓨팅 디바이스의 성능(capability)을 결정하고;
    제2 컴퓨팅 디바이스의 성능에 기초하여, 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 제어할 수 있음을 나타내는 프롬프트를 생성하고;
    프롬프트에 응답하여, 제2 컴퓨팅 디바이스를 제어하라는 명령을 수신하고;
    명령에 응답하여, 제2 컴퓨팅 디바이스와의 통신 채널을 설정하고; 그리고
    제2 컴퓨팅 디바이스를 제어하기 위해 제1 컴퓨팅 디바이스에 의해 수신된 질의를 통신 채널을 통해 제2 컴퓨팅 디바이스에 포워딩하기 위해 제1 컴퓨팅 디바이스의 가상 컨트롤러를 호출하는, 디바이스의 원격 제어 시스템.
  2. 제1항에 있어서,
    제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 관한 정보를 브로드캐스팅하고, 제1 컴퓨팅 디바이스는,
    제2 컴퓨팅 디바이스에 의해 브로드캐스팅된 정보를 수신하고; 그리고
    정보에 기초하여 제2 컴퓨팅 디바이스의 성능을 결정하는, 디바이스의 원격 제어 시스템.
  3. 제1항 또는 제2항에 있어서,
    제1 컴퓨팅 디바이스는 통신 채널을 설정하기 위해 하나 이상의 보안 자격증명을 사용하여 제2 컴퓨팅 디바이스와 핸드셰이킹(handshaking) 프로세스를 수행하는, 디바이스의 원격 제어 시스템.
  4. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 디바이스는 가상 컨트롤러가 통신 채널을 통해 질의를 포워딩하기 위해 활성 상태(active)임을 나타내는 아이콘을 제1 컴퓨팅 디바이스의 디스플레이 디바이스에 유지하는, 디바이스의 원격 제어 시스템.
  5. 임의의 선행하는 항에 있어서,
    제2 컴퓨팅 디바이스는 통신 채널의 설정에 응답하여 제1 컴퓨팅 디바이스와 연관된 프로파일에 액세스하는, 디바이스의 원격 제어 시스템.
  6. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스와의 연결을 끊고 통신 채널을 종료하고, 제2 컴퓨팅 디바이스는 통신 채널의 설정 이후에 제1 컴퓨팅 디바이스로부터 수신된 임의의 프로파일 정보를 제거하는, 디바이스의 원격 제어 시스템.
  7. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 디바이스는 무선 프로토콜을 통한 양방향 통신 계층으로서 통신 채널을 설정하는, 디바이스의 원격 제어 시스템.
  8. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 디바이스는 웹소켓 프로토콜을 사용하여 제2 컴퓨팅 디바이스와 통신 채널을 설정하는, 디바이스의 원격 제어 시스템.
  9. 임의의 선행하는 항에 있어서,
    제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터 포워딩된 질의를 수신하고, 질의를 처리하여 제2 컴퓨팅 디바이스의 기능을 제어하는, 디바이스의 원격 제어 시스템.
  10. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스의 마이크로폰을 통해, 질의를 포함하는 오디오 입력을 검출하고, 통신 채널을 통해 오디오 입력을 제2 컴퓨팅 디바이스로 포워딩하고; 그리고
    제2 컴퓨팅 디바이스는 오디오 입력을 수신하고, 오디오 입력을 분석하여 질의를 식별하고, 질의를 처리하여 제2 컴퓨팅 디바이스의 기능을 제어하는, 디바이스의 원격 제어 시스템.
  11. 임의의 선행하는 항에 있어서,
    제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스로부터 원격인 데이터 처리 시스템으로 컨텐츠에 대한 요청을 전송하고; 그리고
    데이터 처리 시스템은,
    컨텐츠에 대한 요청에 응답하여, 그 요청의 컨텐츠와 다른 보조 디지털 컨텐츠에 대한 제2 요청을 생성하고;
    보조 디지털 컨텐츠에 대한 제2 요청에 응답하여, 제2 요청에 응답하여 그리고 활성 상태인 제1 컴퓨팅 디바이스와 제2 컴퓨팅 디바이스 사이의 통신 채널에 응답하여 제1 컴퓨팅 디바이스와 연관된 프로필 정보에 기초하여 보조 컨텐츠 항목을 선택하고; 그리고
    제2 컴퓨팅 디바이스에 디스플레이하기 위해, 그 요청의 컨텐츠와 다른 보조 컨텐츠 항목을 제공하는 것을 특징으로 하는 디바이스의 원격 제어 시스템.
  12. 디바이스의 원격 제어 방법으로서,
    하나 이상의 프로세서와 메모리를 포함하는 제1 컴퓨팅 디바이스에 의해, 제1 컴퓨팅 디바이스의 범위 내에 위치된 제2 컴퓨팅 디바이스를 검출하는 단계;
    제1 컴퓨팅 디바이스에 의해 제2 컴퓨팅 디바이스를 검출하는 것에 응답하여, 제2 컴퓨팅 디바이스의 성능을 결정하는 단계;
    제1 컴퓨팅 디바이스에 의해 제2 컴퓨팅 디바이스의 성능에 기초하여, 제1 컴퓨팅 디바이스가 제2 컴퓨팅 디바이스를 제어할 수 있음을 나타내는 프롬프트를 생성하는 단계;
    제1 컴퓨팅 디바이스에 의해 프롬프트에 응답하여, 제2 컴퓨팅 디바이스를 제어하라는 명령을 수신하는 단계;
    제1 컴퓨팅 디바이스에 의해 명령에 응답하여, 제2 컴퓨팅 디바이스와의 통신 채널을 설정하는 단계; 및
    제1 컴퓨팅 디바이스에 의해, 제2 컴퓨팅 디바이스를 제어하기 위해 제1 컴퓨팅 디바이스에 의해 수신된 질의를 통신 채널을 통해 제2 컴퓨팅 디바이스에 포워딩하기 위해 제1 컴퓨팅 디바이스 상의 가상 컨트롤러를 호출하는 단계를 포함하는, 디바이스의 원격 제어 방법.
  13. 제12항에 있어서,
    제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 관한 정보를 브로드캐스트하며,
    제1 컴퓨팅 디바이스에 의해, 제2 컴퓨팅 디바이스에 의해 브로드캐스팅된 정보를 수신하는 단계; 및
    제1 컴퓨팅 디바이스에 의해, 정보에 기초하여 제2 컴퓨팅 디바이스의 성능을 결정하는 단계를 포함하는, 디바이스의 원격 제어 방법.
  14. 제12항 또는 제13항에 있어서,
    제1 컴퓨팅 디바이스에 의해, 통신 채널을 설정하기 위해 하나 이상의 보안 자격증명을 사용하여 제2 컴퓨팅 디바이스와의 핸드셰이킹 프로세스를 수행하는, 디바이스의 원격 제어 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    제1 컴퓨팅 디바이스에 의해, 통신 채널을 통해 질의를 포워딩하기 위해 가상 컨트롤러가 활성 상태임을 나타내는 아이콘을 제1 컴퓨팅 디바이스의 디스플레이 디바이스에 유지하는 단계를 포함하는, 디바이스의 원격 제어 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    제2 컴퓨팅 디바이스에 의해 통신 채널의 설정에 응답하여, 제1 컴퓨팅 디바이스와 연관된 프로파일에 액세스하는 단계를 포함하는, 디바이스의 원격 제어 방법.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서,
    제1 컴퓨팅 디바이스에 의해, 제2 컴퓨팅 디바이스와의 연결을 끊고 통신 채널을 종료하는 단계와, 제2 컴퓨팅 디바이스는 통신 채널의 설정 이후에 제1 컴퓨팅 디바이스로부터 수신된 임의의 프로파일 정보를 제거하는, 디바이스의 원격 제어 방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    제1 컴퓨팅 디바이스에 의해, 무선 프로토콜을 통한 양방향 통신 계층으로서 통신 채널을 설정하는 단계를 포함하는, 디바이스의 원격 제어 방법.
  19. 제12항 내지 제18항 중 어느 한 항에 있어서,
    제1 컴퓨팅 디바이스에 의해, 웹소켓 프로토콜을 사용하여 제2 컴퓨팅 디바이스와의 통신 채널을 설정하는 단계를 포함한는, 디바이스의 원격 제어 방법.
  20. 제12항 내지 제19항 중 어느 한 항에 있어서,
    제2 컴퓨팅 디바이스에 의해, 제1 컴퓨팅 디바이스로부터 포워딩된 질의를 수신하고, 질의를 처리하여 제2 컴퓨팅 디바이스의 기능을 제어하는 단계를 포함하는, 디바이스의 원격 제어 방법.
KR1020247001862A 2021-07-02 2021-07-02 제2 디바이스(eg tv)를 제어하기 위해 제1 디바이스에서 가상 원격 제어 KR20240023435A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/040336 WO2023277928A1 (en) 2021-07-02 2021-07-02 Virtual remote control on first device to control second device, eg tv

Publications (1)

Publication Number Publication Date
KR20240023435A true KR20240023435A (ko) 2024-02-21

Family

ID=77155877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247001862A KR20240023435A (ko) 2021-07-02 2021-07-02 제2 디바이스(eg tv)를 제어하기 위해 제1 디바이스에서 가상 원격 제어

Country Status (4)

Country Link
EP (1) EP4150893A1 (ko)
KR (1) KR20240023435A (ko)
CN (1) CN115868151A (ko)
WO (1) WO2023277928A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013012107A1 (ko) * 2011-07-19 2013-01-24 엘지전자 주식회사 전자 기기 및 그 제어 방법
US10469474B2 (en) * 2017-05-23 2019-11-05 Google Llc Mobile assisted television sign in using discovery and launch protocol

Also Published As

Publication number Publication date
EP4150893A1 (en) 2023-03-22
WO2023277928A1 (en) 2023-01-05
CN115868151A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
US11949733B2 (en) Audio-based data structure generation
KR102125991B1 (ko) 선택적 센서 폴링
KR102389331B1 (ko) 컴퓨팅 디바이스간의 액세스 제어 동기화
JP7121052B2 (ja) イメージデータに少なくとも部分的に基づく、アクションを実行するためのエージェントの決定
JP6839234B2 (ja) データ送信のためのフィードバックコントローラ
WO2018157721A1 (zh) 信息获取方法、提供方法、装置及系统、存储介质
US11893993B2 (en) Interfacing with applications via dynamically updating natural language processing
US11514896B2 (en) Interfacing with applications via dynamically updating natural language processing
KR102421669B1 (ko) 미등록 리소스를 사용한 오디오-기반의 네트워크 세션 수립
KR20240023435A (ko) 제2 디바이스(eg tv)를 제어하기 위해 제1 디바이스에서 가상 원격 제어
WO2022245339A1 (en) Indexing application actions for voice-based execution
JP2022009571A (ja) 登録されていないリソースによるオーディオベースのネットワークセッションの確立