KR20200093029A - 보안 처리 환경에서의 데이터 전송 - Google Patents

보안 처리 환경에서의 데이터 전송 Download PDF

Info

Publication number
KR20200093029A
KR20200093029A KR1020207019191A KR20207019191A KR20200093029A KR 20200093029 A KR20200093029 A KR 20200093029A KR 1020207019191 A KR1020207019191 A KR 1020207019191A KR 20207019191 A KR20207019191 A KR 20207019191A KR 20200093029 A KR20200093029 A KR 20200093029A
Authority
KR
South Korea
Prior art keywords
party application
component
audio input
digital
digital assistant
Prior art date
Application number
KR1020207019191A
Other languages
English (en)
Other versions
KR102335090B1 (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 구글 엘엘씨
Publication of KR20200093029A publication Critical patent/KR20200093029A/ko
Application granted granted Critical
Publication of KR102335090B1 publication Critical patent/KR102335090B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • 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/53Network services using third party service providers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • G06Q30/0619Neutral agent
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Acoustics & Sound (AREA)
  • Marketing (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

보안 처리 환경에서의 데이터 전송이 제공된다. 디지털 어시스턴트는 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신할 수 있다. 디지털 어시스턴트는 오디오 입력에 기초하여 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정할 수 있다. 디지털 어시스턴트는 제3자 애플리케이션을 호출하기 로 결정한 것에 응답하여 패키지 데이터 객체를 생성할 수 있다. 디지털 어시스턴트는 컴퓨팅 디바이스의 보안 처리 환경에서 패키지 데이터 객체를 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 패키지 데이터 객체를 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 디지털 컴포넌트 요청에 응답하여 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하여, 패키지 데이터 객체에 기초하여 실시간 선택 프로세스를 실행할 수 있다.

Description

보안 처리 환경에서의 데이터 전송
컴퓨팅 디바이스는 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 시작(launch)할 수 있다. 컴퓨팅 디바이스에 의해 실행되는 애플리케이션은 하나 이상의 기능을 수행할 수 있다. 컴퓨팅 디바이스는 애플리케이션의 양상을 제한할 수 있다. 컴퓨팅 디바이스에 의해 애플리케이션에 부과된 제한으로 인해 애플리케이션이 특정 기능을 수행하는 것은 어려울 수 있다.
본 개시는 일반적으로 보안 처리 환경에서의 데이터 전송(transfer)에 관한 것이다. 컴퓨팅 디바이스들은 보안 처리 환경에서 실행되는 애플리케이션들의 액세스 또는 기능을 제한하는 샌드박스(sandboxed) 컴퓨팅 환경과 같은 보안 처리 환경을 구축할 수 있다. 예를 들어, 샌드박스 컴퓨팅 환경에서 실행되는 애플리케이션은 샌드박스 컴퓨팅 환경 외부의 메모리 주소에 액세스하는 것이 금지되거나 차단될 수 있다. 컴퓨팅 디바이스는 샌드박스 컴퓨팅 환경에서 제3자 애플리케이션을 실행하여 디바이스의 보안을 향상시킬뿐만 아니라 잠재적으로 악의적인 제3자 애플리케이션이 컴퓨팅 디바이스를 원하지 않는 방식으로 조작하거나 수정하지 못하게 할 수 있다. 그러나, 보안 컴퓨팅 환경에서 실행되는 제3자 애플리케이션은 보안 처리 환경 외부의 메모리 주소에 저장된 데이터에 액세스하거나 검색할 수 없기 때문에 특정 기능을 수행하지 못할 수 있다. 따라서, 샌드박스 컴퓨팅 환경에서 실행되는 제3의 애플리케이션이 샌드박스 컴퓨팅 환경 외부의 메모리 주소에 저장된 데이터를 포함하는 기능 또는 프로세스를 수행하는 것은 어렵거나 비효율적일 수 있다.
본 솔루션의 시스템 및 방법은 보안 처리 환경에서 데이터 전송을 제공한다. 예를 들어, 디지털 어시스턴트 컴포넌트는 음성을 포함할 수 있는 오디오 입력을 수신할 수 있다. 디지털 어시스턴트 컴포넌트는 오디오 입력에 응답하여 제3자 애플리케이션을 호출한다. 디지털 어시스턴트 컴포넌트는 제3자 애플리케이션의 호출을 야기한 오디오 입력 이전에 검출된 이전 오디오 입력을 추가로 식별하고, 이어서 이전 오디오 입력, 이전 오디오 입력에 대한 고유 식별자, 또는 이전 오디오 입력의 다른 표시를 갖는 패키지 데이터 객체를 생성한다. 디지털 어시스턴트 컴포넌트는 보안 처리 환경에서 실행을 위해 제3자 애플리케이션을 호출할 때, 제3자 애플리케이션이 이전 오디오 입력을 처리하거나 기능을 수행하기 위해 이전 오디오 입력을 전송할 수 있도록 이전 오디오 입력의 표시를 제3자 애플리케이션으로 전달할 수 있다.
적어도 하나의 양태는 보안 처리 환경에서 데이터를 전송하기 위한 시스템에 관한 것이다. 시스템은 데이터 처리 시스템을 포함할 수 있다. 데이터 처리 시스템은 하나 이상의 프로세서 및 메모리를 포함할 수 있다. 시스템은 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 디지털 어시스턴트 컴포넌트(또는 데이터 처리 시스템)는 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신할 수 있다. 디지털 어시스턴트 컴포넌트(또는 데이터 처리 시스템)는 오디오 입력에 기초하여 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정할 수 있다. 디지털 어시스턴트 컴포넌트(또는 데이터 처리 시스템)는 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 패키지 데이터 객체를 생성할 수 있다. 패키지 데이터 객체는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함할 수 있다. 디지털 어시스턴트 컴포넌트는, 컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출 된 제3자 애플리케이션으로, 패키지 데이터 객체를 포워딩할 수 있다. 제3자 애플리케이션은, 제3자 애플리케이션에서 트리거된 디지털 컴포넌트 요청에 응답하여, 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하여 그 패키지 데이터 객체에 기초하여 실시간 컨텐츠 선택 프로세스를 실행할 수 있다.
적어도 하나의 양태는 보안 처리 환경에서 데이터를 전송하는 방법에 관한 것이다. 이 방법은 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하는 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 디지털 어시스턴트 컴포넌트는 하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행될 수 있다. 이 방법은 데이터 처리 시스템이 오디오 입력에 기초하여, 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하는 단계를 포함할 수 있다. 이 방법은 데이터 처리 시스템이 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 패키지 데이터 객체를 생성하는 단계를 포함할 수 있다. 패키지 데이터 객체는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함할 수 있다. 이 방법은 데이터 처리 시스템이 컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 패키지 데이터 객체를 포워딩하는 단계를 포함할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 디지털 컴포넌트 요청에 응답하여, 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하여 패키지 데이터 객체에 기초하여 실시간 디지털 컴포넌트 선택 프로세스를 실행할 수 있다.
적어도 하나의 양태는 처리 환경에서 데이터를 전송하기 위한 시스템에 관한 것이다. 시스템은 하나 이상의 프로세서 및 메모리를 갖는 데이터 처리 시스템을 포함할 수 있다. 시스템은 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신할 수 있다. 데이터 처리 시스템은 오디오 입력에 기초하여 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정할 수 있다. 데이터 처리 시스템은 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 생성할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 고유 식별자를 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 고유 식별자를 데이터 처리 시스템으로 전송할 수 있다. 데이터 처리 시스템은 제3자 애플리케이션으로부터 수신된 고유 식별자를 사용하여, 이전 오디오 입력을 식별할 수 있다. 데이터 처리 시스템은 디지털 컴포넌트 선택기에, 실시간 디지털 컴포넌트 선택 프로세스에 대한 입력으로서 이전 오디오 입력을 제공할 수 있다.
적어도 하나의 양태는 처리 환경에서 데이터를 전송하는 방법에 관한 것이다. 이 방법은 하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트에 의해 수행될 수 있다. 이 방법은 디지털 어시스턴트 컴포넌트가 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하는 단계를 포함할 수 있다. 이 방법은 데이터 처리 시스템이 오디오 입력에 기초하여 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하는 단계를 포함할 수 있다. 이 방법은 데이터 처리 시스템이 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 생성하는 단계를 포함할 수 있다. 이 방법은 데이터 처리 시스템이 컴퓨팅 디바이스에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 고유 식별자를 포워딩하는 단계를 포함할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 고유 식별자를 데이터 처리 시스템으로 전송할 수 있다. 데이터 처리 시스템은 제3자 애플리케이션으로부터 수신된 고유 식별자를 사용하여 이전 오디오 입력을 식별할 수 있다. 데이터 처리 시스템은 디지털 컴포넌트 선택기에, 실시간 디지털 컴포넌트 선택 프로세스에 대한 입력으로서 이전 오디오 입력을 제공할 수 있다.
적어도 하나의 양태는 보안 처리 환경에서 데이터를 전송하기 위한 시스템에 관한 것이다. 시스템은 제3자 애플리케이션을 포함할 수 있다. 제3자 애플리케이션은 컴퓨팅 디바이스에 의해 관리되는 보안 처리 환경에서 실행될 수 있다. 컴퓨팅 디바이스는 하나 이상의 프로세서 및 메모리를 포함할 수 있다. 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트와 인터페이스하기 위한 응용 프로그래밍 인터페이스를 포함할 수 있다. 로컬 디지털 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신하여 입력 오디오 신호를 처리하여 제3자 애플리케이션을 호출할 수 있다. 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트로부터, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 수신할 수 있다. 제3자 애플리케이션은 보안 처리 환경에 이전 오디오 입력 표시를 저장할 수 있다. 제3자 애플리케이션은 이벤트에 응답하여 컨텐츠 요청을 생성할 수 있다. 제3자 애플리케이션은 이벤트에 응답하는 보안 처리 환경으로부터, 보안 처리 환경에 저장되고 응용 프로그래밍 인터페이스를 통해 로컬 디지털 어시스턴트로부터 수신된 이전 오디오 입력의 표시를 검색할 수 있다. 제3자 애플리케이션은 컨텐츠 요청 및 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기에 제공할 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 요청 및 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행할 수 있다.
적어도 하나의 양태는 처리 환경에서 데이터를 전송하는 방법에 관한 것이다. 이 방법은 제3자 애플리케이션에 의해 수행될 수 있다. 제3자 애플리케이션은 컴퓨팅 디바이스에 의해 관리되는 보안 처리 환경에서 실행될 수 있다. 컴퓨팅 디바이스는 하나 이상의 프로세서 및 메모리를 포함할 수 있다. 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트와 인터페이스하기 위한 응용 프로그래밍 인터페이스를 포함할 수 있다. 로컬 디지털 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신하여 입력 오디오 신호를 처리하여 제3자 애플리케이션을 호출할 수 있다. 이 방법은 제3자 애플리케이션이 로컬 디지털 어시스턴트 컴포넌트로부터, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 수신하는 단계를 포함할 수 있다. 이 방법은 제3자 애플리케이션이 보안 처리 환경에 이전 오디오 입력의 표시를 저장하는 단계를 포함할 수 있다. 이 방법은 제3자 애플리케이션이 이벤트에 응답하여 컨텐츠 요청을 생성하는 단계를 포함할 수 있다. 이 방법은 제3자 애플리케이션이 이벤트에 응답하여 보안 처리 환경으로부터, 보안 처리 환경에 저장되고 응용 프로그래밍 인터페이스를 통해 로컬 디지털 어시스턴트로부터 수신된 이전 오디오 입력의 표시를 검색하는 단계를 포함할 수 있다. 이 방법은 제3자 애플리케이션이 컨텐츠 요청 및 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기에 제공하는 단계를 포함할 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 요청 및 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행할 수 있다
적어도 하나의 양태는 보안 처리 환경에서 데이터를 전송하기 위한 시스템에 관한 것이다. 시스템은 하나 이상의 프로세서 및 메모리를 갖는 컴퓨팅 디바이스를 포함할 수 있다. 시스템은 컴퓨팅 디바이스의 메모리의 적어도 일부에서 하나 이상의 프로세서에 의해 관리되는 보안 처리 환경을 포함할 수 있다. 시스템은 컴퓨팅 디바이스의 하나 이상의 프로세서에 의해 실행되는 로컬 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 식별할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는 오디오 입력에 기초하여 컴퓨팅 디바이스상의 제3자 애플리케이션을 호출할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는, 제3자 애플리케이션의 호출에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 획득할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는 컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 로컬 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 이전 오디오 입력의 표시를 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기로 전송할 수 있다. 컨텐츠 선택기는 이전 오디오 입력의 표시에 기초하여 실시간 디지털 컴포넌트 선택 프로세스를 실행할 수 있다.
적어도 하나의 양태는 보안 처리 환경에서 데이터를 전송하는 방법에 관한 것이다. 이 방법은 하나 이상의 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스에 의해 수행될 수 있다. 이 방법은 컴퓨팅 디바이스가 컴퓨팅 디바이스의 메모리의 적어도 일부에 보안 처리 환경을 설정하는 단계를 포함할 수 있다. 이 방법은 컴퓨팅 디바이스에 의해 실행되는 로컬 디지털 어시스턴트 컴포넌트가 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 식별하는 단계를 포함할 수 있다. 이 방법은 로컬 디지털 어시스턴트 컴포넌트가 오디오 입력에 기초하여 컴퓨팅 디바이스상의 제3자 애플리케이션을 호출하는 단계를 포함할 수 있다. 이 방법은 로컬 디지털 어시스턴트 컴포넌트가 제3자 애플리케이션의 호출에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 획득하는 단계를 포함할 수 있다. 이 방법은 로컬 디지털 어시스턴트 컴포넌트가 컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 로컬 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 이전 오디오 입력의 표시를 포워딩하는 단계를 포함할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기로 전송할 수 있다. 디지털 컴포넌트 선택기는 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행할 수 있다.
적어도 하나의 양태는 가상 어시스턴트에서 사용자로부터 요청을 수신하는 단계를 포함하는 방법에 관한 것이다. 이 방법은 가상 어시스턴트에 의해 사용자와의, 요청에 관해 상호 작용하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해 상호 작용에 기초하여 사용자를 제1 리소스로 전송하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해, 전송으로 이끄는 사용자와의 상호 작용을 나타내는 데이터 객체를 생성하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해, 데이터 객체를 제1 리소스로 포워딩하는 단계를 포함할 수 있다.
적어도 하나의 양태는 가상 어시스턴트에서, 사용자로부터 요청을 수신하는 단계를 포함하는 방법에 관한 것이다. 이 방법은 가상 어시스턴트에 의해 사용자와의, 요청에 관해 상호 작용하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해 상호 작용에 기초하여 사용자를 제1 리소스로 전송하는 단계를 포함할 수 있다. 방법은 가상 어시스턴트에 의해, 전송으로 이어지는 사용자와의 상호 작용을 나타내는 데이터 객체를 생성하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해 상호 작용을 식별하는 식별자를 생성하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해 식별자를 제1 리소스로 전달하는 단계를 포함할 수 있다. 이 방법은 가상 어시스턴트에 의해, 데이터 객체를 리소스로부터 원격 서버로 포워딩하는 단계를 포함할 수 있다.
적어도 하나의 양태는 하나 이상의 포함하는 처리 시스템에 의해 실행될 때 처리 시스템으로 하여금 본 명세서에 기술된 임의의 양태 또는 구현에 따른 방법을 포함하는 동작들을 수행하게 하는 명령들을 저장하는 컴퓨터 판독 가능 매체(이 양태는 이것으로 제한되지 않지만 비-일시적 컴퓨터 판독 가능 매체일 수 있음)에 관한 것이다. 적어도 하나의 양태는, 하나 이상의 프로세서에 의해 실행될 때, 처리 시스템으로 하여금 본 명세서에 기술된 임의의 양태 또는 구현에 따른 방법을 포함하는 동작들을 수행하게 하는 명령들을 저장하는 메모리에 연결된 하나 이상의 프로세서를 포함하는 처리 시스템에 관한 것이다.
이들 및 다른 양태들 및 구현들이 아래에서 상세하게 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태 및 구현의 예시적인 예를 포함하고, 청구된 양태 및 구현의 특성 및 특성을 이해하기 위한 개요 또는 프레임 워크를 제공한다. 도면은 다양한 양태 및 구현에 대한 예시 및 추가 이해를 제공하며, 본 명세서에 포함되어 본 명세서의 일부를 구성한다.
첨부 도면은 실제 크기로 도시된 것은 아니다. 다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다. 명확성을 위해, 모든 도면에 모든 컴포넌트가 라벨링되는 것은 아니다.
도 1은 일 예에 따른 보안 처리 환경에서의 데이터 전송 시스템의 예시이다.
도 2는 일 예에 따른 보안 처리 환경에서의 데이터 전송 시스템의 동작의 예시이다.
도 3은 일 예에 따른 보안 처리 환경에서의 데이터 전송 시스템의 동작의 예시이다.
도 4는 일 예에 따른 보안 처리 환경에서의 데이터 전송 방법의 예시이다.
도 5는 일 예에 따른 보안 처리 환경에서의 데이터 전송 방법의 예시이다.
도 6은 일 예에 따른 보안 처리 환경에서의 데이터 전송 방법의 예시이다.
도 7은 일 예에 따른, 상태 정보를 정보 리소스에 제공하는 방법의 예시이다.
도 8은 일 예에 따른 보안 처리 환경에서의 데이터 전송 방법의 예시이다.
도 9는 예를 들어 도 1 내지 도 3에 도시된 시스템 및 도 4 내지 도 8에 도시된 방법을 포함하여 본 명세서에 기술되고 예시된 시스템 및 방법의 요소를 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 도시하는 블록도이다.
다음은 보안 처리 환경에서 데이터를 전송하는 방법, 장치 및 시스템에 관한 다양한 개념 및 구현에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 상세하게 논의되는 다양한 개념은 수많은 방식으로 구현될 수 있다.
본 발명은 일반적으로 보안 처리 환경에서의 데이터 전송에 관한 것이다. 컴퓨팅 디바이스는 보안 처리 환경에서 실행되는 애플리케이션의 액세스 또는 기능을 제한하는 샌드박스(sandboxed) 컴퓨팅 환경과 같은 보안 처리 환경을 구축할 수 있다. 예를 들어, 샌드박스 컴퓨팅 환경에서 실행되는 애플리케이션은 샌드박스 컴퓨팅 환경 외부의 메모리 주소에 액세스하는 것이 금지되거나 차단될 수 있다. 컴퓨팅 디바이스는 샌드 박스형 컴퓨팅에서 제3자 애플리케이션을 실행하여 디바이스의 보안을 향상시킬뿐만 아니라 잠재적으로 악의적인 제3자 애플리케이션이 컴퓨팅 디바이스를 원치 않는 방식으로 조작하거나 수정하지 못하게 할 수 있다. 그러나, 보안 컴퓨팅 환경에서 실행되는 제3자 애플리케이션은 보안 처리 환경 외부의 메모리 주소에 저장된 데이터에 액세스하거나 검색할 수 없기 때문에 특정 기능을 수행하지 못할 수 있다. 따라서, 샌드박스 컴퓨팅 환경에서 실행되는 제3자 애플리케이션이 샌드박스 컴퓨팅 환경 외부의 메모리 어드레스에 저장된 데이터를 포함하는 기능 또는 프로세스를 수행하는 것은 어렵거나 비효율적일 수 있다.
본 솔루션의 시스템 및 방법은 보안 처리 환경에서 데이터 전송을 제공한다. 예를 들어, 디지털 어시스턴트 컴포넌트는 음성을 포함할 수 있는 오디오 입력을 수신할 수 있다. 디지털 어시스턴트 컴포넌트는 오디오 입력에 응답하여 제3자 애플리케이션을 호출한다. 디지털 어시스턴트 컴포넌트는 제3자 애플리케이션의 호출을 야기한 오디오 입력 이전에 검출된 이전 오디오 입력을 추가로 식별할 수 있고, 그런 다음, 이전 오디오 입력, 이전 오디오 입력에 대한 고유 식별자, 또는 이전 오디오 입력의 다른 표시를 갖는 패키지 데이터 객체를 생성한다. 디지털 어시스턴트 컴포넌트는 보안 처리 환경에서 실행하기 위해 제3자 애플리케이션을 호출할 때, 제3자 애플리케이션이 이전 오디오 입력을 처리하거나 기능을 수행하기 위해 이전 오디오 입력을 전송할 수 있도록 이전 오디오 입력의 표시를 제3자 애플리케이션으로 전달할 수 있다.
예를 들어, 클라이언트 컴퓨팅 디바이스에 제공할 디지털 컴포넌트를 선택하는 것은 어려울 수 있다. 예를 들어, 레이턴시(대기시간)나 지연을 유발하지 않거나 과도한 계산 자원을 사용하지 않고 관련있는 디지털 컴포넌트를 실시간으로 선택하는 것은 어렵거나 비효율적일 수 있다. 실제로, 실시간 컨텐츠 선택을 수행하면 사용 가능한 많은 잠재적인 디지털 컴포넌트, 디지털 컴포넌트 선택 프로세스의 변수 및 데이터 처리 시스템의 분산 컴퓨팅 아키텍처로 인해 프로세서 및 메모리 자원, 네트워크 대역폭 또는 원격 프로시저 호출과 같은 과도한 컴퓨팅 자원을 활용할 수 있다. 더욱이, 개인 디지털 어시스턴트와 같은 음성 구동 컴퓨팅 환경에서, 데이터 처리 시스템은 웹 기반 검색 질의 환경에 비해 디지털 컴포넌트 선택 프로세스를 구동할 수 있는 입력에 대한 액세스가 제한될 수 있다. 정보에 대한 이러한 제한된 액세스는 샌드박스 컴퓨팅 환경을 실행하는 제3자 애플리케이션이 디지털 컴포넌트에 대한 요청을 하려고 시도할 때 더욱 감소될 수 있다.
본 기술 솔루션의 시스템 및 방법은 컴퓨팅 자원 이용률, 네트워크 대역폭 또는 원격 프로시저 호출을 줄이면서 관련 디지털 컴포넌트들의 실시간 선택을 향상시키는 보안 처리 환경에서 데이터 전송을 허용한다. 예를 들어, 본 기술 솔루션의 시스템 및 방법은 토큰화된 포멧으로 추가 오디오 컨텍스트를 제공하기 위해 샌드박스 컴퓨팅 환경에서 시작된(launched) 제3자 애플리케이션과 안전하게 인터페이스하여, 제3자 애플리케이션이 추가 오디오 컨텍스트를 포함하는 디지털 컴포넌트 요청을 생성할 수 있다. 디지털 어시스턴트가 제3자 애플리케이션을 시작할 때, 디지털 어시스턴트는 대화의 맥락을 따라 사용자를 제3자 애플리케이션으로 안내할 수 있다.
디지털 어시스턴트에 의해 시작된 제3자 애플리케이션은 제3자 애플리케이션의 시작을 야기하거나 제3자 애플리케이션의 시작전에 발생한 디지털 어시스턴트 컴포넌트와의 이전 상호 작용과 관련된 오디오 컨텍스트를 포함하는 디지털 컴포넌트에 대한 요청을 생성할 수 있다. 데이터 처리 시스템은 실시간 디지털 컴포넌트 선택 프로세스를 수행하기 위해 네트워크 활동, 이력적 네트워크 활동, 위치, 또는 제3자 애플리케이션 자체와 연관된 키워드와 같은 추가 선택 파라미터 또는 기준과 함께 이 오디오 컨텍스트를 사용할 수 있다.
예시적인 예에서, 사용자는 디지털 어시스턴트와 음성 구동 통신을 시작할 수 있다. 사용자의 첫 번째 질의(query)는“이번 일요일에 졸업식에서 입을 옷을 사야 해"이다. 디지털 어시스턴트는 "무엇을 사고 싶습니까?"라고 응답할 수 있다. 사용자는 "슈즈"을 질의할 수 있다. 디지털 어시스턴트는 "어떤 유형의 슈즈입니까 ?"로 응답한다. 사용자는“정식 드레스 슈즈 좀 보여줘”라고 말할 수 있다. 이 시점에서, 디지털 어시스턴트는 제3자 애플리케이션을 시작하거나 호출할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션 선택 프로세스를 수행하여 사용자의 질의에 응답하는 애플리케이션의 딥 링크(deep-link)를 식별할 수 있다. 제3자 애플리케이션은 다양한 유형의 의류(clothing) 및 의복(apparel)을 판매하는 대형 의류 소매 업체용 애플리케이션일 수 있다. 이때, 디지털 어시스턴트 컴포넌트는 제3자 애플리케이션의 시작을 야기한 오디오 입력의 표시뿐만 아니라 그 애플리케이션의 시작을 야기한 사용자 질의 이전에 발생한 이전 오디오 입력을 제3자 애플리케이션으로 전달할 수 있다. 오디오 입력의 이전 표시는 직렬화된 오페크(opaque) 토큰(예를 들어, 제3자 애플리케이션에 의해 파싱될 수 없는 데이터 구조), 고유 식별자(예를 들어, 해시 테이블을 통해 서버에 저장된 이전 오디오 컨텍스트에 매핑하는 고유 식별자), 대화에서 이벤트를 나타내는 이벤트 식별자 또는 대화 컨텍스트를 포함하는 패키지 데이터 객체일 수 있다. 예를 들어, 디지털 어시스턴트가 제3자 애플리케이션을 시작할 때 대화는 데이터 객체로 패키지될 수 있다. 그런 다음 대화는 직렬화하여 제3자 애플리케이션을 통해 컨텐츠 선택기로 직접 송신될 수 있다. 일부 예에서, 디지털 어시스턴트는 대화 또는 대화 컨텍스트를 서버로 전송하고 고유 식별자를 수신할 수 있다. 그런 다음 이 고유 식별자는 컨텐츠 요청과 함께 고유 식별자를 송신하는 제3자 애플리케이션으로 송신될 수 있다.
제3자 애플리케이션은 컨텐츠 요청 또는 보조 컨텐츠 요청과 같은 디지털 컴포넌트 요청을 트리거할 수 있다. 제3자 애플리케이션은 컨텐츠 요청과 함께, 디지털 컴포넌트 선택기(예를 들어, 컨텐츠 선택기)가 이전 오디오 입력을 이용하여(예를 들어, 졸업식, 일요일, 구매 또는 정식 드레스 슈즈와 같은 키워드에 기초하여) 컨텐츠 아이템 또는 보조 컨텐츠 아이템을 선택할 수 있게 하는 이전 오디오 입력의 표시를 포함할 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 아이템 또는 보조 컨텐츠 아이템을 선택할 때 이전 오디오 입력을 이용할 수 있는데, 이는 컨텐츠 아이템 또는 보조 컨텐츠 아이템을 선택할 때 시간 지연을 줄이고 컨텐츠 아이템 또는 보조 컨텐츠 아이템 선택시 소비되는 컴퓨팅 자원을 감소시킨다. 선택된 디지털 컴포넌트는 제3자 애플리케이션을 통한 프리젠테이션을 위해 컴퓨팅 디바이스에 제공될 수 있다. 선택된 디지털 컴포넌트와 사용자가 상호 작용해야 하는 경우, 데이터 처리 시스템은 상호 작용을 이전 오디오 입력을 제공한 디지털 어시스턴트에 귀속(attribute, 부여)하여, 디지털 어시스턴트의 성능을 나타낼 수 있다. 따라서, 노출 수, 클릭 수 및 전환 수와 같은 디지털 컴포넌트와의 상호 작용은 제3자 애플리케이션 외에도 디지털 어시스턴트로 인한 것일 수 있다.
도 1은 보안 처리 환경에서 데이터를 전송하기 위한 예시적인 시스템(100)을 도시한다. 시스템(100)은 디지털 컴포넌트 선택 인프라를 포함할 수 있다. 시스템(100)은 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 하나 이상의 디지털 컴포넌트 제공자 디바이스(106)(예를 들어, 컨텐츠 제공자 디바이스), 제3자 애플리케이션 개발자 디바이스(108) 또는 클라이언트 컴퓨팅 디바이스(104)와 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 광역, 메트로 또는 다른 영역 네트워크와 같은 컴퓨터 네트워크, 인트라넷, 위성 네트워크, 및 음성 또는 데이터 이동 전화 네트워크와 같은 다른 통신 네트워크를 포함할 수 있다. 네트워크(105)는 랩탑, 데스크탑, 태블릿, 디지털 어시스턴트, 개인용 디지털 어시스턴트, 스마트 워치, 웨어러블 디바이스, 스마트 폰, 휴대용 컴퓨터 또는 스피커와 같은 적어도 하나의 컴퓨팅 디바이스(104)상에 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름, 또는 URL과 같은 정보 리소스에 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 컴퓨팅 디바이스(104)의 사용자는 제3자 애플리케이션 개발자 디바이스(108) 또는 디지털 컴포넌트 제공자 디바이스(106)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다. 컴퓨팅 디바이스(104)는 디스플레이를 포함하거나 포함하지 않을 수 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우, 컴퓨팅 디바이스(104)의 주요 사용자 인터페이스는 마이크로폰 및 스피커일 수 있다.
네트워크(105)는 디스플레이 네트워크, 예를 들어, 컨텐츠 배치 또는 검색 엔진 결과 시스템과 관련되거나 제3자 디지털 컴포넌트를 포함할 수 있는 인터넷상에서 이용 가능한 정보 리소스의 서브 세트를 포함하거나 구성할 수 있다. 네트워크(105)는 데이터 처리 시스템(102)에 의해 사용되어, 클라이언트 컴퓨팅 디바이스(104)에 의해 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름, 또는 URL과 같은 정보 리소스에 액세스할 수 있다. 예를 들어, 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(104)의 사용자는 디지털 컴포넌트 제공자 디바이스(106) 또는 제3자 애플리케이션 개발자 디바이스(108)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다.
네트워크(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)를 통해, 예를 들어 컴퓨팅 디바이스(104), 디지털 컴포넌트 제공자 디바이스(106)(또는 컨텐츠 제공자 디바이스), 또는 제3자 애플리케이션 개발자 디바이스(108)(또는 제3자 애플리케이션 개발자)와 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 적어도 하나의 데이터 센터에 위치한 복수의 계산 리소스 또는 서버를 포함할 수 있다. 데이터 처리 시스템(102)은 다수의 논리적으로 그룹화된 서버를 포함하여 분산 컴퓨팅 기술을 용이하게 할 수 있다. 논리적 서버 그룹은 데이터 센터, 서버 팜 또는 머신 팜이라고 한다. 서버는 지리적으로 분산될 수도 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리되거나 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 이기종일 수 있고, 하나 이상의 서버 또는 머신이 하나 이상의 유형의 운영 체제 플랫폼에 따라 작동할 수 있다.
머신 팜의 서버들은 관련 저장 시스템과 함께 고밀도 랙 시스템에 저장될 수 있으며 기업 데이터 센터에 위치할 수 있다. 예를 들어, 이러한 방식으로 서버들을 통합하면 로컬화된 고성능 네트워크에 서버 및 고성능 저장 시스템을 배치하여 시스템 관리 효율성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하여 모든 또는 일부 데이터 처리 시스템 (102) 컴포넌트를 중앙 집중화하고 이를 고급 시스템 관리 툴과 결합하면 서버 자원을 보다 효율적으로 사용할 수 있으므로 전력 및 처리 요구 사항을 절약하고 대역폭 사용을 줄일 수 있다.
컴퓨팅 디바이스(104)는 적어도 하나 이상의 로컬 디지털 어시스턴트(134), 적어도 하나의 컴퓨팅 보안 컴포넌트(136), 적어도 하나의 센서(138), 적어도 하나의 변환기(140), 적어도 하나의 오디오 드라이버(142) 또는 적어도 하나의 디스플레이(144) 중 하나 이상을 포함하거나 인터페이스하거나 또는 이들과 통신할 수 있다. 센서(138)는 예를 들어 카메라, 주변 광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크로폰, 비디오, 이미지 검출 또는 터치 센서를 포함할 수 있다. 변환기(140)는 스피커 또는 마이크로폰을 포함하거나 그 일부일 수 있다. 오디오 드라이버(142)는 하드웨어 변환기(140)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버(142)는 데이터 처리 시스템(102)에 의해 제공된 오디오 파일 또는 다른 명령을 실행하여 대응하는 음향파 또는 음파를 생성하도록 변환기(140)를 제어할 수 있다. 디스플레이(144)는 발광 다이오드, 유기 발광 다이오드, 액정 디스플레이, 레이저 또는 디스플레이(935)와 같은 시각적 표시 또는 광(학) 출력을 제공하도록 구성된 하나 이상의 하드웨어 또는 소프트웨어 컴포넌트를 포함할 수 있다.
로컬 디지털 어시스턴트(134)는 하나 이상의 프로세서(예를 들어, 프로세서(910)), 로직 어레이 또는 메모리를 포함할 수 있다. 로컬 디지털 어시스턴트(134)는 키워드를 검출하고 키워드에 기초하여 동작을 수행할 수 있다. 로컬 디지털 어시스턴트(134)는 하나 이상의 용어를 필터링하거나 추가 처리를 위해 데이터 처리 시스템(102)(예를 들어, 원격 디지털 어시스턴트(112))으로 그 용어를 전송하기 전에 용어를 수정할 수 있다. 로컬 디지털 어시스턴트(134)는 마이크로폰에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 데이터 처리 시스템(102)으로 전송할 수 있다. 일부 경우, 로컬 디지털 어시스턴트(134)는 그러한 전송을 수행하기 위한 명령을 검출하는 것에 응답하여 입력 오디오 신호의 일부 또는 전부를 운반하는 데이터 패킷을 전송할 수 있다. 명령은 예를 들어, 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 처리 시스템(102)으로 전송하기 위한 트리거 키워드 또는 다른 키워드 또는 승인을 포함할 수 있다.
로컬 디지털 어시스턴트(134)는 입력 오디오 신호에 대해 사전-필터링 또는 전처리를 수행하여 오디오의 특정 주파수를 제거할 수 있다. 사전-필터링은 저역 통과 필터, 고역 통과 필터 또는 대역 통과 필터와 같은 필터를 포함할 수 있다. 필터들은 주파수 영역에서 적용될 수 있다. 필터들은 디지털 신호 처리 기술을 사용하여 적용할 수 있다. 필터는 인간 스피치의 전형적인 주파수를 벗어나는 주파수를 제거하면서 인간 음성(voice) 또는 인간 스피치에 해당하는 주파수를 유지하도록 구성될 수 있다. 예를 들어, 대역 통과 필터는 제1 임계값(예를 들어, 70Hz, 75Hz, 80Hz, 85Hz, 90Hz, 95Hz, 100Hz 또는 105Hz)이하 및 제2 임계값(예를 들어, 200Hz, 205Hz, 210Hz, 225Hz, 235Hz, 245Hz 또는 255Hz)이상의 주파수를 제거하도록 구성될 수 있다. 대역 통과 필터를 적용하면 다운 스트림 처리에서 컴퓨팅 자원 활용을 줄일 수 있다. 일부 경우, 컴퓨팅 디바이스(104)의 로컬 디지털 어시스턴트(134)는 입력 오디오 신호를 데이터 처리 시스템(102)으로 전송하기 전에 대역 통과 필터를 적용하여 네트워크 대역폭 이용을 감소시킬 수 있다. 그러나, 컴퓨팅 디바이스(104)에 이용 가능한 컴퓨팅 리소스 및 이용 가능한 네트워크 대역폭에 기초하여, 데이터 처리 시스템(102)이 필터링을 수행할 수 있도록 입력 오디오 신호를 데이터 처리 시스템(102)에 제공하는 것이 더 효율적일 수 있다.
로컬 디지털 어시스턴트(134)는 자연어 프로세서를 방해할 수 있는 주변 노이즈 레벨을 감소시키기 위해 노이즈 감소 기술과 같은 추가 전처리 또는 사전-필터링 기술을 적용할 수 있다. 노이즈 감소 기술은 자연어 프로세서의 정확도 및 속도를 향상시켜, 데이터 처리 시스템(102)의 성능을 향상시키고 디스플레이(144)를 통해 제공되는 그래픽 사용자 인터페이스의 렌더링을 관리할 수 있다.
로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)에서 애플리케이션을 호출 또는 시작하기로 결정할 수 있다. 로컬 디지털 어시스턴트(134)는 원격 디지털 어시스턴트(112)로부터 명령 또는 커맨드를 수신하여 컴퓨팅 디바이스(140)의 애플리케이션을 호출하거나 시작할 수 있다. 로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)상의 애플리케이션의 시작을 용이하게 하거나 컴퓨팅 디바이스(104)상의 애플리케이션을 실행하기 위해 딥 링크 또는 다른 정보를 수신할 수 있다.
로컬 디지털 어시스턴트(134)(또는 로컬 디지털 어시스턴트 컴포넌트)는 보안 처리 환경에서 애플리케이션을 시작할 수 있다. 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스에서 보안 처리 환경을 설정(구축), 관리 또는 유지하는 컴퓨팅 보안 컴포넌트(136)를 포함할 수 있다. 예를 들어, 컴퓨팅 보안 컴포넌트(136)는 샌드박스 환경, 제한된 데이터 공유 환경, 애플리케이션 격리 환경 또는 가상화된 환경으로 종종 지칭되는 사일로(siloed) 컴퓨팅 환경과 같은 보안 처리 환경을 설정, 관리 또는 유지할 수 있다. 컴퓨팅 보안 컴포넌트(136)에 의해 설정된 보안 처리 환경(예를 들어, 사일로 컴퓨팅 환경)에서 실행될 때, 애플리케이션은 메모리, 입/출력 버퍼 또는 네트워크 자원과 같은 컴퓨팅 자원에 대한 액세스가 제한되거나 한정될 수 있다. 보안(예를 들어, 사일로 또는 샌드 박스) 컴퓨팅 환경에서 실행되는 애플리케이션은 컴퓨팅 디바이스상에서 동시에 실행될 수 있는 하나 이상의 다른 애플리케이션 또는 심지어 동일한 애플리케이션의 하나 이상의 인스턴스와 상호 작용하는 것이 제한될 수 있다. 실행 동안, 보안(예를 들어, 사일로 또는 샌드 박스) 컴퓨팅 환경에서 실행되는 애플리케이션은 로컬 디지털 어시스턴트(134)와 상호 작용하거나, 컴퓨팅 디바이스(104)에 저장된 데이터 파일에 액세스하거나, 일부 유형의 데이터를 요청하는 것이 제한될 수 있다. 예를 들어, 애플리케이션의 각 사일로 인스턴스에는 자체 메모리 공간, 환경 설정, 레지스트리 설정, 캐시, 네트워크 소켓 등이 있을 수 있으며, 애플리케이션의 다른 인스턴스의 리소스에 액세스할 수 없거나 그에 대해 알아야야 할 소도 있다. 한정되거나 제한된 액세스 또는 동일한 애플리케이션의 이전 인스턴스와 관련된 다른 응용 프로그램이나 메모리 또는 파일과 상호 작용하는 기능으로 인해, 각 사일로 애플리케이션 또는 애플리케이션 인스턴스는 애플리케이션을 시작한 컨텍스트 또는 애플리케이션의 시작 전에 이전 컨텍스트 정보에 액세스하지 못할 수 있다. 따라서, 애플리케이션이 컨텐츠 아이템과 같은 디지털 컴포넌트에 대한 요청을 전송하는 경우, 데이터 처리 시스템(102)은 그 요청에 대한 응답을 생성하는데 사용될 수 있는 컨텍스트 정보를 획득하기 위해 추가적인 원격 프로시저 호출을 생성하거나 다른 리소스에 액세스해야 할 수 있다. 본 개시의 양태는 이러한 제약을 해결하여, 디지털 컴포넌트를 선택하는 프로세스를 보다 빠르고 자원 효율적으로 만든다.
보안 처리 환경은 제3자 애플리케이션에 부과된 액세스 제한을 지칭할 수 있다. 예를 들어, 제3자 애플리케이션에는 제한된 액세스, 권한 부여, 권한 또는 권리가 할당될 수 있다. 그렇지 않으면 제3자 애플리케이션은 처음에 제3자 애플리케이션의 시작을 야기한 이전 입력 오디오 또는 대화에 액세스할 수 없다. 예를 들어, 동작 순서로 인해, 이미 발생한 대화에 후속하여 제3자 애플리케이션이 호출되거나 시작될 수 있으므로, 제3자 애플리케이션이 대화 정보에 액세스하지 못할 수 있다. 일부 경우에 보안 처리 환경은 제3자 애플리케이션의 시작을 야기한 대화의 일부 또는 전부에 액세스할 수 없는 제3자 애플리케이션을 지칭할 수 있다.
컴퓨팅 디바이스(104)(또는 클라이언트 컴퓨팅 디바이스 또는 클라이언트 디바이스)는 (센서(138)를 통해) 클라이언트 컴퓨팅 디바이스(104)에 오디오 입력으로서 음성 질의를 입력하고, 데이터 처리 시스템(102)(또는 디지털 컴포넌트 제공자 디바이스(106) 또는 제3자 애플리케이션 개발자 디바이스(108))으로부터 클라이언트 컴퓨팅 디바이스(104)로 제공될 수 있고 변환기(140)로부터 출력될 수 있는 컴퓨터-생성 음성 형태의 오디오 출력을 수신하는 최종 사용자와 연관될 수 있다. 컴퓨터-생성 음성은 실제 사람 또는 컴퓨터 생성 언어의 레코딩을 포함할 수 있다. 클라이언트 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)에 통신 가능하게 연결된 디스플레이 디바이스(144)를 통해 시각적 출력을 제공할 수 있다.
클라이언트 컴퓨팅 디바이스(104)는(센서(138)를 통해) 클라이언트 컴퓨팅 디바이스(104)로의 입력으로서 질의를 나타낼 수 있는 이미지 또는 비디오를 제공하는 최종 사용자와 연관될 수 있다. 최종 사용자는 데이터 처리 시스템(102)(또는 디지털 컴포넌트 제공자 디바이스(106) 또는 제3자 애플리케이션 개발자 디바이스(108))으로부터 클라이언트 컴퓨팅 디바이스로(104)로 제공될 수 있고 변환기 (140)(예를 들어, 스피커)로부터 출력될 수 있는 컴퓨터 생성 음성 형태의 입력에 응답하여 오디오 출력을 수신할 수 있다. 최종 사용자는 디스플레이(144)로의 출력을 위해 데이터 처리 시스템(102)(또는 디지털 컴포넌트 제공자 디바이스(106) 또는 제3자 애플리케이션 개발자 디바이스(108))으로부터 클라이언트 컴퓨팅 디바이스로 제공될 수 있는 컴퓨터 생성 그래픽 사용자 인터페이스의 형태의 입력에 응답하여 시각적 출력을 수신할 수 있다. 하나 이상의 센서(134)에 의해 검출된 입력은 오디오 입력(예를 들어, 음향 신호), 시각적 입력(예를 들어, 이미지 또는 비디오 데이터), 모션 입력 또는 다른 입력 중 하나 이상을 포함할 수 있다. 컴퓨팅 디바이스(104)로의 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)은 디지털 파일로 변환되어, 추가 처리를 위해 또는 동작을 생성하기 위해 데이터 처리 시스템(102)에 제공될 수 있다. 예를 들어, 컴퓨팅 디바이스(104)로의 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)은 제3자 애플리케이션을 포함하는 컴퓨터 프로그램의 선택을 트리거할 수 있고, 제3자 애플리케이션은 생성된 질의에 응답하거나 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)에 대응하는 출력을 컴퓨팅 디바이스(104)에 제공할 수 있다.
컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)의 센서(138)(예를 들어, 마이크로폰)에 의해 검출된 입력 오디오 신호를 수신할 수 있다. 입력 오디오 신호는 예를 들어 질의, 질문, 커맨드, 명령 또는 언어로 제공되는 다른 진술을 포함할 수 있다. 입력 오디오 신호는 질문 또는 질의가 전달되는 제3자 애플리케이션의 식별자 또는 이름을 포함할 수 있다. 예를 들어, 질의는 데이터 처리 시스템(102)이 질의를 지정된 제3자 애플리케이션에 입력하도록 지시하기 위해 질의에 이어 제3자 애플리케이션의 이름을 포함할 수 있다. 예를 들어, 입력 오디오 신호는 "날씨 애플리케이션을 시작하여 샌프란시스코에 대한 예보를 보여 줘"를 포함할 수 있다. 일부 경우, 질의는 애플리케이션을 식별하지 않을 수 있지만, 대신 질의는 "샌프란시스코의 날씨는 어때"일 수 있고, 원격 디지털 어시스턴트(112)와 통신하는 로컬 디지털 어시스턴트(134)는 제3자 애플리케이션을 선택하여 컴퓨팅 디바이스(104)가 제3자 애플리케이션을 시작하도록 지시할 수 있다.
컴퓨팅 디바이스(104)는 디지털 어시스턴트 디바이스를 포함, 실행 또는 그로서 지칭될 수 있다. 디지털 어시스턴트 디바이스(또는 컴퓨팅 디바이스(104))는 컴퓨팅 디바이스(104)의 하나 이상의 컴포넌트를 포함할 수 있다. 디지털 어시스턴트 디바이스는 데이터 처리 시스템(102)으로부터 디스플레이 출력을 수신하고 디스플레이(132)에 디스플레이 출력을 렌더링할 수 있는 그래픽 드라이버를 포함할 수 있다. 그래픽 드라이버는 그래픽 또는 시각적 출력이 디스플레이(144)에 디스플레이되는 방법을 제어 또는 향상시키는 하드웨어 또는 소프트웨어 컴포넌트를 포함할 수 있다. 그래픽 드라이버는 예를 들어 그래픽 컴포넌트가 나머지 컴퓨팅 디바이스(104)(또는 디지털 어시스턴트)와 동작 하는 방법을 제어하는 프로그램을 포함할 수 있다. 로컬 디지털 어시스턴트(134)는 입력 오디오 신호를 필터링하여 필터링된 입력 오디오 신호를 생성하고, 그 필터링된 입력 오디오 신호를 데이터 패킷으로 변환하고, 그 데이터 패킷을 하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템으로 전송할 수 있다.
디지털 어시스턴트 디바이스는 오디오 드라이버(142) 및 스피커 컴포넌트(예를 들어, 변환기(140))를 포함할 수 있다. 전처리기 컴포넌트(140)는 디스플레이 출력의 표시를 수신하여, 스피커 컴포넌트(예를 들어, 변환기(140))가 디스플레이 출력의 표시에 대응하는 오디오 출력을 전송하게 하는 출력 오디오 신호를 생성하도록 오디오 드라이버(142)에 지시한다. 오디오 출력은 예를 들어 도 3의 텍스트 박스(312)에 도시된 텍스트의 텍스트-음성 변환 표현을 포함할 수 있다.
시스템(100)은 적어도 하나의 제3자 애플리케이션 개발자 디바이스(108)를 포함하거나 액세스하거나 이와 상호 작용할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 하나 이상의 서버를 포함할 수 있고 제3자 애플리케이션 서버로 지칭될 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 데이터 처리 시스템(102)과 통합되거나 또는 데이터 처리 시스템(102)에 의해 적어도 부분적으로 실행될 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 네트워크(105)를 통해, 예를 들어 컴퓨팅 디바이스(104), 데이터 처리 시스템(102) 또는 디지털 컴포넌트 제공자 디바이스(106)와 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 적어도 하나의 컴퓨팅 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 제3자 애플리케이션 개발자 디바이스(108)는 적어도 하나의 데이터 센터에 위치한 복수의 컴퓨팅 리소스 또는 서버를 포함할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 데이터 처리 시스템(102)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다.
제3자 애플리케이션 개발자 디바이스(108)는 컴퓨팅 디바이스(104)에 의해 실행되거나 이를 통해 사용될 수 있는 하나 이상의 애플리케이션을 형성하거나 제공하는 컴퓨터 프로그램을 설계, 개발, 관리 또는 유지하는 엔티티와 같은 앱 개발자를 포함하거나 지칭할 수 있다. 애플리케이션은 의류 앱, 게임 앱, 증강 현실 앱, 쇼핑 앱, 날씨 앱, 여행 앱, 소셜 네트워킹 앱, 내비게이션 앱, 챗봇, 비즈니스 앱, 교육 앱, 라이프 스타일 앱, 유틸리티 앱, 도서 앱, 건강 및 피트니스 앱 또는 음식 및 음료 앱과 같은 임의의 유형의 컴퓨터 프로그램을 포함할 수 있다.
제3자 애플리케이션 개발자 디바이스(108)는 데이터 처리 시스템(102)을 관리 또는 제공하는 엔티티와 상이한 엔티티의 하나 이상의 서버를 지칭할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 앱에 대한 컴퓨터 프로그램을 수신할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 컴퓨팅 디바이스(104)와 인터페이스하거나 통신하여 애플리케이션 기능을 제공할 수 있다. 예를 들어, 제3자 애플리케이션 개발자 디바이스(108)는 컴퓨팅 디바이스(104)의 사용자와 인터페이스하거나 상호 작용하기 위해 애플리케이션을 실행 또는 운영할 수 있다. 제3자 애플리케이션 개발자 디바이스(108)는 데이터 처리 시스템(102) 및 컴퓨팅 디바이스(104)에서 이격된 서버에서 실행될 수 있다.
데이터 처리 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 갖는 컨텐츠 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 인터페이스(110)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 원격 디지털 어시스턴트(112)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 원격 디지털 어시스턴트(112)는 적어도 하나의 자연어 프로세서 컴포넌트(114)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 원격 디지털 어시스턴트(112)는 적어도 하나의 원격 앱 런처(launcher)(116)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 원격 디지털 어시스턴트(112)는 적어도 하나의 오디오 패키징 컴포넌트(118)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 디지털 컴포넌트 선택기(120)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 속성 컴포넌트(122)를 포함하거나 인터페이스하거나 그와통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 데이터 저장소(124)를 포함하거나 인터페이스하거나 그와 통신할 수 있다. 적어도 하나의 데이터 저장소(124)는 하나 이상의 데이터 구조 또는 데이터베이스에, 딥 링크(126), 패키지 데이터(128), 이벤트 식별자(130) 또는 컨텐츠 데이터(132)를 포함하거나 저장할 수 있다. 데이터 저장소(124)는 하나 이상의 로컬 또는 분산을 포함할 수 있고, 데이터베이스 관리 시스템을 포함할 수 있다.
딥 링크(126)는 하나 이상의 데이터 구조 또는 데이터 파일에 저장될 수 있다. 딥 링크(126)는 테이블에 저장될 수 있다. 딥 링크(126)는 실행될 수 있는 애플리케이션의 링크, 포인트, 참조, 또는 다른 주소 또는 위치 정보를 포함할 수 있다. 애플리케이션에 대한 딥 링크는 특정 리소스, 웹 컨텐츠 또는 애플리케이션에 링크되는 URL 또는 하이퍼 링크를 지칭할 수 있다. 딥 링크는 특정 리소스나 애플리케이션을 포인팅하고 애플리케이션을 시작하는데 사용되는 정보를 포함할 수 있다. 일부 경우, 딥 링크에는 애플리케이션을 시작하는 것 외에도 모바일 애플리케이션 내의 특정 위치에 링크되는 URI(Uniform Resource Identifier)가 포함될 수 있다. 딥 링크(126) 데이터 구조는 애플리케이션의 이름 또는 애플리케이션의 뷰를 딥 링크에 매핑하는 해시 테이블을 포함할 수 있다.
패키지(된) 데이터(128)는 오디오 입력을 포함하거나 그에 기초할 수 있다. 패키지 데이터(128)는 오디오 입력에 대응하는 식별자 또는 고유 식별자를 포함할 수 있다. 패키지 데이터(128)는 최종 사용자와 디지털 어시스턴트(예를 들어, 로컬 디지털 어시스턴트(134) 및 원격 디지털 어시스턴트(112)) 간의 대화를 포함할 수 있다. 패키지 데이터(128)는 대화(예를 들어, 컴퓨팅 디바이스(104)의 센서(138)에 의해 검출된 오디오 입력 및 디지털 어시스턴트로부터의 응답)를 캡처하는 직렬화된 오페크 토큰을 포함할 수 있다. 패키지 데이터(128)는 구조화된 대화, 키워드, 용어 또는 문구를 포함할 수 있다. 패키지 데이터(128)는 타임 스탬프 또는 단어, 문구, 문장 또는 대화의 양태의 시퀀스를 포함할 수 있다. 패키지 데이터(128)는 암호화된 포멧 또는 암호화되지 않은 모멧으로 저장될 수 있다.
이벤트 식별자(130)는 대화의 양태을 지칭할 수 있다. 이벤트 식별자(130)는 온톨로지(ontology) 기반 자연어 처리 기술에 기초할 수 있다. 예를 들어, 자연어 텍스트는 자연어 텍스트의 의미의 표현으로 파싱되고 변환될 수 있으며, 이는 텍스트에서 언급되고 온톨로지 모델에 알려진 바와 같이 이벤트 및 참가자 주위에 구성될 수 있다. 그런 다음 텍스트에 있을 수 있는 순열을 예상하여 질의를 이 의미 표현과 매칭시킬 수 있다. 이러한 순열은 (예를 들어, 비-시맨틱 검색 엔진이 사용자에게 요구하는 모든 동의어를 나열하지는 않는) 규격에 대해, 보다 중요하게는 규격에 따라 중심부에 포함될 수 있다. 예를 들어, 이벤트는 의류를 구매하기 위한 사용자 질의 및 의류에 대한 옵션이 있는 질의에 대한 응답에 기초할 수 있다.
컨텐츠 데이터(132)는 예를 들어 컨텐츠 그룹, 컨텐츠 선택 기준, 디지털 컴포넌트 객체 또는 디지털 컴포넌트 제공자 디바이스(106)에 의해 제공되거나 컨텐츠 선택을 용이하게 하기 위해 데이터 처리 시스템에 의해 획득되거나 결정된 다른 정보를 포함할 수 있다. 컨텐츠 데이터(132)는 예를 들어 이력 성능 데이터를 포함할 수 있다. 컨텐츠 데이터(132)는 오디오 출력, 디스플레이 출력 또는 관련 메타 데이터뿐만 아니라 클라이언트 컴퓨팅 디바이스(104)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지를 위한 디지털 컴포넌트를 포함할 수 있다. 디지털 컴포넌트(또는 디지털 컴포넌트 객체)는 예를 들어 컨텐츠 아이템, 온라인 문서, 오디오, 이미지, 비디오, 멀티미디어 컨텐츠 또는 제3자 컨텐츠를 포함할 수 있다.
인터페이스(110), 원격 디지털 어시스턴트(112), 자연어 프로세서 컴포넌트(114), 원격 앱 런처(116), 오디오 패키징 컴포넌트(118), 디지털 컴포넌트 선택기(120) 및 속성 컴포넌트(122)는 각각 적어도 하나의 처리 유닛 또는 프로그램 가능 로직 어레이 엔진과 같은 다른 로직 디바이스, 또는 데이터베이스 저장소 또는 데이터베이스(124)와 통신하도록 구성된 모듈을 포함할 수 있다. 인터페이스(110), 원격 디지털 어시스턴트(112), 자연어 프로세서 컴포넌트(114), 원격 앱 런처 (116), 오디오 패키징 컴포넌트(118), 디지털 컴포넌트 선택기(120) 및 속성 컴포넌트(122) 및 데이터 저장소(124)는 개별 컴포넌트, 단일 컴포넌트, 또는 데이터 처리 시스템(102)의 일부일 수 있다. 데이터 처리 시스템(102)과 같은 시스템(100) 및 그 컴포넌트는 하나 이상의 프로세서, 로직 디바이스 또는 회로와 같은 하드웨어 요소를 포함할 수 있다.
데이터 처리 시스템(102)은 복수의 컴퓨팅 디바이스(104)와 관련된 익명의 컴퓨터 네트워크 활동 정보를 획득할 수 있다. 컴퓨팅 디바이스(104)의 사용자는 사용자의 컴퓨팅 디바이스(104)에 대응하는 네트워크 활동 정보를 획득하도록 데이터 처리 시스템(102)을 긍정적으로 인증할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)의 사용자에게 하나 이상의 유형의 네트워크 활동 정보를 얻기 위한 동의를 프롬프트할 수 있다. 컴퓨팅 디바이스(104)의 사용자의 신원은 익명으로 유지될 수 있고, 컴퓨팅 디바이스(104)는 고유 식별자(예를 들어, 데이터 처리 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공된 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 데이터 처리 시스템은 각 관측값을 대응하는 고유 식별자와 연관시킬 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 클라이언트 컴퓨팅 디바이스(104)에 의해 오디오 출력 디지털 컴포넌트 또는 시각적 출력 디지털 컴포넌트로서 프리젠테이션하기 위한 오디오, 시각 또는 멀티미디어 기반 디지털 컴포넌트를 제공할 수 있다. 디지털 컴포넌트는 디지털 컴포넌트이거나 이를 포함할 수 있다. 디지털 컴포넌트는 디지털 객체이거나 이를 포함할 수 있다. 디지털 컴포넌트에는 상품 또는 서비스의 브랜드 이름 또는 회사 이름이 포함될 수 있다. 디지털 컴포넌트는 파라 메트릭 방식으로 구동되는 텍스트-음성 변환 기술을 위해 구성될 수 있다. 디지털 컴포넌트는 일반 언어 텍스트를 음성으로 변환하는 TTS(text-to-speech) 구현을 위해 구성될 수 있다. 디지털 컴포넌트는 음성 합성 기능을 사용하여 텍스트를 다양한 언어, 악센트 및 음성으로 자연스러운 음성으로 합성하는 응용 프로그래밍 인터페이스에 입력할 수 있다. 디지털 컴포넌트는 일반 텍스트 또는 SSML(음성 합성 마크 업 언어)로 코딩될 수 있다. SSML에는 발음, 음량, 피치, 또는 음향 지문 또는 기본 음성을 형성할 수 있는 속도와 같은 음성의 양태를 제어하도록 설정할 수 있는 파라미터가 포함될 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 컨텐츠 선택 프로세스를 용이하게 하기 위해 값, 키워드, 개념 또는 다른 메타 데이터 또는 정보와 같은 디지털 컴포넌트에 대한 선택 기준을 제공할 수 있다. 디지털 컴포넌트 제공자 디바이스(106)는 또한 오디오 기반 디지털 컴포넌트(또는 다른 디지털 컴포넌트)를 데이터 처리 시스템(102)에 제공하여 이들을 데이터 저장소(124)에 저장할 수 있다. 데이터 처리 시스템(102)은 오디오 디지털 컴포넌트(또는 파라 메트릭 방식으로 구동되는 텍스트, 이미지 또는 비디오-음성 변환 기술을 위해 구성된 디지털 컴포넌트)를 선택하고, 오디오 디지털 컴포넌트를 클라이언트 컴퓨팅 디바이스(104)에 제공(또는 디지털 컴포넌트 제공자 디바이스(106)에게 제공하도록 지시)한다. 오디오 기반 디지털 컴포넌트는 오로지 오디오일 수 있거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 컨텐츠 데이터 데이터 구조(132) 내의 데이터 저장소(124)에 저장하기 위해 디지털 컴포넌트를 데이터 처리 시스템(102)에 제공할 수 있다. 데이터 처리 시스템(102)은 컨텐츠에 대한 요청 또는 디지털 컴포넌트를 제공하기로 한 결정에 응답하여 디지털 컴포넌트를 검색할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 디지털 컴포넌트 캠페인(또는 전자 컨텐츠 캠페인)을 설정할 수 있다. 디지털 컴포넌트 캠페인은 데이터 저장소(124)에 컨텐츠 데이터(132)로서 저장될 수 있다. 디지털 컴포넌트 캠페인은 공통 테마에 해당하는 하나 이상의 컨텐츠 그룹을 지칭할 수 있다. 컨텐츠 캠페인은 컨텐츠 그룹, 디지털 컴포넌트 데이터 객체(예를 들어, 디지털 컴포넌트 또는 디지털 객체) 및 컨텐츠 선택 기준을 포함하는 계층적 데이터 구조를 포함할 수 있다. 디지털 컴포넌트 캠페인을 생성하기 위해, 디지털 컴포넌트 제공자 디바이스(106)는 디지털 컴포넌트 캠페인의 캠페인 레벨 파라미터에 대한 값을 지정할 수 있다. 캠페인 레벨 파라미터는 예를 들어 캠페인 이름, 디지털 컴포넌트 객체를 배치하기 위한 선호 컨텐츠 네트워크, 디지털 컴포넌트 캠페인에 사용될 리소스의 가치, 컨텐츠 캠페인의 시작 및 종료 날짜, 디지털 컴포넌트 캠페인의 지속 기간, 디지털 컴포넌트 개체 배치 일정, 언어, 지리적 위치, 디지털 컴포넌트 개체를 제공할 컴퓨팅 디바이스 유형을 포함할 수 있다. 일부 경우, 노출(impression)은 디지털 컴포넌트 객체가 그의 소스(예를 들어, 데이터 처리 시스템(102) 또는 디지털 컴포넌트 제공자 디바이스(106))로부터 페치되어 카운트 가능한 시점을 의미할 수 있다. 따라서, 일부 경우 노출은 웹 서버로부터 브라우저의 페이지 요청에 대한 응답을 측정하는 것을 의미할 수 있는데, 이는 로봇 활동 및 에러 코드로부터 필터링되고, 컴퓨팅 디바이스(104)에 디스플레이하기 위해 디지털 컴포넌트 객체를 렌더링할 기회에 가능한 한 가까운 시점에 기록된다. 경우에 따라 노출은 시각적 또는 청각적 노출을 의미할 수 있는데, 예를 들어, 디지털 컴포넌트 객체 또는 디지털 컴포넌트는 클라이언트 컴퓨팅 디바이스(104)의 디스플레이 디바이스에서 적어도 부분적으로(예를 들어, 20%, 30%, 30%, 40%, 50%, 60%, 70% 이상) 가시적이거나 컴퓨팅 디바이스(104)의 스피커(136)를 들을 수 있다. 클릭 또는 선택은 가청 노출에 대한 음성 응답, 마우스 클릭, 터치 상호 작용, 제스처, 흔들기, 오디오 상호 작용 또는 키보드 클릭과 같은 디지털 컴포넌트 개체와의 사용자 상호 작용을 의미할 수 있다. 변환은 사용자가 디지털 컴포넌트 이의 제기와 관련하여 원하는 조치, 예를 들어, 제품 또는 서비스 구매, 설문 조사 완료, 디지털 컴포넌트에 해당하는 실제 매장 방문 또는 전자 거래 완료를 취하는 것을 지칭할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 디지털 컴포넌트 캠페인에 대한 하나 이상의 컨텐츠 그룹을 추가로 설정할 수 있다. 컨텐츠 그룹은 하나 이상의 디지털 컴포넌트 객체 및 대응하는 컨텐츠 선택 기준, 예를 들어 키워드, 단어, 용어, 문구, 지리적 위치, 컴퓨팅 디바이스의 유형, 하루 중 시간, 관심사, 토픽 또는 버티컬(vertical)을 포함한다. 동일한 컨텐츠 캠페인 하의 컨텐츠 그룹은 동일한 캠페인 레벨 파라미터를 공유할 수 있지만, 키워드, 제외 키워드(예를 들어, 메인 컨텐츠에 제외 키워드가 있을 경우 디지털 컴포넌트의 배치 차단) 또는 컨텐츠 캠페인과 관련된 파라미터와 같은 컨텐츠 그룹 레벨 파라미터에 대한 맞춤형 규격(사양)을 가질 수 있다.
새로운 컨텐츠 그룹을 생성하기 위해, 디지털 컴포넌트 제공자 디바이스(106)는 컨텐츠 그룹의 컨텐츠 그룹 레벨 파라미터에 대한 값을 제공할 수 있다. 컨텐츠 그룹 레벨 파라미터는 예를 들어 컨텐츠 그룹 이름 또는 컨텐츠 그룹 테마, 및 상이한 컨텐츠 배치 기회(예를 들어, 자동 배치 또는 선택 게재 위치)에 대한 입찰 또는 결과(예를 들어, 클릭, 노출 또는 전환)를 포함한다. 컨텐츠 그룹 이름 또는 컨텐츠 그룹 테마는 디지털 컴포넌트 제공자 디바이스(106)가 컨텐츠 그룹의 디지털 컴포넌트 객체가 디스플레이를 위해 선택될 토픽 또는 주제를 캡처하기 위해 사용할 수 있는 하나 이상의 용어일 수 있다. 예를 들어, 식음료 회사는 운송하는 각 브랜드의 음식 또는 음료 브랜드마다 상이한 컨텐츠 그룹을 생성할 수 있으며, 운송하는 차량의 각 모델마다 상이한 컨텐츠 그룹을 생성할 수 있다. 식음료 회사가 사용할 수 있는 컨텐츠 그룹 테마의 예는 예를 들어 "브랜드 A 콜라", "브랜드 B 진저에일", "브랜드 C 오렌지 주스", "브랜드 D 스포츠 음료" 또는 "브랜드 E 정제수"등을 포함한다. 예시적인 컨텐츠 캠페인 테마는 "소다"일 수 있고, 예를 들어 "브랜드 A 콜라" 및 "브랜드 B 진저에일" 둘 다에 대한 컨텐츠 그룹을 포함한다. 디지털 컴포넌트(또는 디지털 컴포넌트 객체 또는 디지털 컴포넌트)는 "브랜드 A", "브랜드 B", "브랜드 C", "브랜드 D" 또는 "브랜드 E"를 포함할 수 있다. 디지털 컴포넌트 객체 또는 디지털 컴포넌트는 파라메트릭방식으로 구동되는 텍스트-음성 변환 기술을 위해 구성된 디지털 컴포넌트를 지칭할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 하나 이상의 키워드 및 디지털 컴포넌트 객체를 각 컨텐츠 그룹에 제공할 수 있다. 키워드에는 디지털 컴포넌트 객체와 관련되거나 그에 의해 식별된 제품 또는 서비스와 관련된 용어들이 포함될 수 있다. 키워드는 하나 이상의 용어 또는 문구를 포함할 수 있다. 예를 들어, 식음 및 음료 회사는 브랜드가 제공하는 상품이나 서비스를 설명할 수 있는 컨텐츠 그룹 또는 컨텐츠 캠페인의 키워드로서 "소다", "콜라", "청량 음료"를 포함할 수 있다. 일부 경우, 제외어 키워드가 컨텐츠 제공 업체에 의해 지정되어 특정 용어 또는 키워드에 대한 컨텐츠 배치를 회피, 방지, 차단 또는 비활성화할 수 있다. 컨텐츠 제공자는 디지털 컴포넌트 객체를 선택하는데 사용되는 완전 매칭, 구문 매칭 또는 확장 매칭과 같은 매칭 유형을 지정할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 데이터 처리 시스템(102)에 의해 사용될 하나 이상의 키워드를 제공하여 디지털 컴포넌트 제공자 디바이스(106)에 의해 제공된 디지털 컴포넌트 객체를 선택할 수 있다. 디지털 컴포넌트 제공자 디바이스(106)는 데이터 처리 시스템(102)에 의해 사용될 추가 컨텐츠 선택 기준을 제공하여 디지털 컴포넌트 객체를 선택할 수 있다. 데이터 처리 시스템(102)은 전자 메시지의 키워드의 표시를 수신하는 것에 응답하여 다수의 컨텐츠 제공자(106)를 포함하는 컨텐츠 선택 프로세스를 실행할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 데이터 처리 시스템(102)에 의한 선택을 위해 하나 이상의 디지털 컴포넌트 객체를 제공할 수 있다. (예를 들어, 디지털 컴포넌트 선택기(120)를 통해) 데이터 처리 시스템(102)은 자원 할당, 컨텐츠 일정, 최대 입찰가, 키워드, 및 컨텐츠 그룹에 대해 지정된 다른 선택 기준과 매칭하는 컨텐츠 배치 기회가 이용 가능할 때 디지털 컴포넌트 객체를 선택할 수 있다. 음성 디지털 컴포넌트, 오디오 디지털 컴포넌트, 텍스트 디지털 컴포넌트, 이미지 디지털 컴포넌트, 비디오 디지털 컴포넌트, 멀티미디어 디지털 컴포넌트 또는 디지털 컴포넌트 링크와 같은 상이한 유형의 디지털 컴포넌트 객체가 컨텐츠 그룹에 포함될 수 있다. 디지털 컴포넌트를 선택할 때, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 디스플레이 디바이스에 프리젠테이션 또는 렌더링하기 위해 디지털 컴포넌트 객체를 전송할 수 있다. 프리젠테이션 또는 렌더링은 디스플레이 디바이스상에 디지털 컴포넌트를 디스플레이하는 것, 또는 컴퓨팅 디바이스(104)의 스피커를 통해 디지털 컴포넌트를 재생하는 것을 포함한다. 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104), 로컬 디지털 어시스턴트(134), 또는 컴퓨팅 디바이스(104)에 의해 실행되어 디지털 컴포넌트 객체를 제시하는 제3자 애플리케이션에 명령을 제공할 수 있다. 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104), 디스플레이(144) 또는 컴퓨팅 디바이스(104)의 오디오 드라이버(142)에게 오디오 신호, 음파 또는 시각적 출력을 생성하도록 지시할 수 있다. 예를 들어, 로컬 디지털 어시스턴트(134)는 제3자 애플리케이션이 컴퓨팅 디바이스(104)의 보안 처리 환경에서 실행되는 동안 오디오 출력을 통해 선택된 디지털 컴포넌트를 제시할 수 있다. 다른 예에서, 컴퓨팅 디바이스(104)의 보안 컴퓨팅 환경에서 실행되는 제3자 애플리케이션은 선택된 디지털 컴포넌트 객체를 제3자 애플리케이션의 그래픽 사용자 인터페이스를 통해 디스플레이할 수 있다. 또 다른 예에서, 컴퓨팅 디바이스(104)에서 실행되는 제3자 애플리케이션은 선택된 디지털 컴포넌트를 오디오 출력을 통해 제시할 수 있다.
데이터 처리 시스템(102)은 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 작성 또는 동작하는 인터페이스 컴포넌트(110)를 포함할 수 있다. 인터페이스(110)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(110)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(110)는 하나의 포맷에서 다른 포맷으로 데이터를 변환하거나 포맷하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(110)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트 사이에서 통신하기 위한 정의를 포함하는 응용 프로그래밍 인터페이스를 포함할 수 있다.
데이터 처리 시스템(102)은 입력 오디오 신호를 데이터 처리 시스템(102)의 인터페이스(110)로 전달하고 클라이언트 컴퓨팅 디바이스의 컴포넌트를 구동하여 출력 오디오 신호 또는 시각적 출력을 렌더링하기 위한 로컬 디지털 어시스턴트(134)와 같은 클라이언트 컴퓨팅 디바이스(104)에 설치된 애플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 처리 시스템(102)은 데이터 패킷, 디지털 파일, 또는 오디오 입력 신호(또는 입력 오디오 신호)를 포함하거나 식별하는 다른 신호를 수신할 수 있다. 컴퓨팅 디바이스(104)는 변환기(140)를 통해 오디오 신호를 검출하여, 아날로그-디지털 변환기를 통해 아날로그 오디오 신호를 디지털 파일로 변환할 수 있다. 예를 들어, 오디오 드라이버(142)는 아날로그-디지털 변환기 컴포넌트를 포함할 수 있다. 일부 경우에, 전처리기 컴포넌트(140)는 오디오 신호를 네트워크(105)를 통해 데이터 패킷을 통해 전송될 수 있는 디지털 파일로 변환할 수 있다.
데이터 처리 시스템(102)의 원격 디지털 어시스턴트(112)는 NLP 컴포넌트(114)를 실행 또는 운영하여, 컴퓨팅 디바이스(104)의 센서(138)에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신 또는 획득할 수 있다. 데이터 패킷은 디지털 파일을 제공할 수 있다. NLP 컴포넌트(114)는 오디오 신호를 포함하는 디지털 파일 또는 데이터 패킷을 수신 또는 획득하고 오디오 신호를 파싱할 수 있다. 예를 들어, NLP 컴포넌트(114)는 인간과 컴퓨터 간의 상호 작용을 제공할 수 있다. NLP 컴포넌트(114)는 자연어를 이해하고 데이터 처리 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출할 수 있게 하는 기술로 구성될 수 있다. NLP 컴포넌트(114)는 통계 기계 학습과 같은 기계 학습에 기초한 기술을 포함하거나 구성될 수 있다. NLP 컴포넌트(114)는 결정 트리, 통계 모델 또는 확률 모델을 이용하여 입력 오디오 신호를 분석할 수 있다. NLP 컴포넌트(114)는 예를 들어 명명된 엔티티 인식(예를 들어, 텍스트 스트림이 주어지면, 텍스트의 어떤 아이템이 사람이나 장소와 같은 적절한 이름에 매핑되는지, 그리고 사람, 위치 또는 조직과 같은 각 이름의 유형이 무엇인지를 결정함), 자연어 생성(예를 들어, 컴퓨터 데이터베이스 또는 시맨틱 의도의 정보를 이해할 수 있는 인간 언어로 변환), 자연어 이해(예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수 있는 1차 논리 구조와 같은 보다 공식적인 표현으로 변환), 기계 번역(예를 들어, 하나의 인간 언어에서 다른 언어로 텍스트를 자동으로 번역), 형태학적 분할(예를 들어, 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별하는데, 이는 고려되는 언어 단어의 형태 또는 구조의 복잡성에 기초하여 어려울 수 있음), 질문 답변(예를 들어, 구체적이거나 개방형일 수 있는 인간 언어 질문에 대한 답변 결정), 시맨틱 처리(예를 들어, 식별된 단어를 유사 의미를 갖는 다른 단어와 관련시키기 위해 단어를 식별하고 그 의미를 인코딩한 후 발생할 수 있는 처리)와 같은 기능을 수행할 수 있다.
NLP 컴포넌트(114)는 입력 신호를 (예를 들어, 데이터 저장소(124)에) 저장된 대표적인 오디오 파형 세트와 비교하여 가장 근접한 매칭을 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소(124) 또는 데이터 처리 시스템(102)에 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형은 다수의 사용자 세트에 걸쳐 생성된 다음, 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(114)는 예를 들어 데이터 처리 시스템(102)이 제공할 수 있는 동작과 함께, 예를 들어, 사용자를 통한 트레이닝 또는 수동 규격을 통해 연관된 단어와 텍스트를 매칭시킨다. NLP 컴포넌트(114)는 이미지 또는 비디오 입력을 텍스트 또는 디지털 파일로 변환할 수 있다. NLP 컴포넌트(114)는 이미지 또는 비디오 입력을 처리, 분석 또는 해석하여 동작을 수행하거나, 요청을 생성하거나, 데이터 구조를 선택 또는 식별할 수 있다.
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(104)의 센서(138) 또는 변환기(140)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기(140), 오디오 드라이버(142) 또는 다른 컴포넌트를 통해, 클라이언트 컴퓨팅 디바이스(104)는 오디오 입력 신호를 (예를 들어, 네트워크(105)를 통해) 데이터 처리 시스템(102)에 제공하느데, 여기서 오디오 입력 신호는 디지털 파일 또는 디지털 포맷으로 (예를 들어, 인터페이스(110)에 의해) 수신되어 NLP 컴포넌트(114)에 제공되거나 데이터 저장소(124)에 저장될 수있다. 일부 경우, 데이터 처리 시스템(102)은 입력 음향 신호에 부가하여 또는 그 대신에 이미지 또는 비디오 입력 신호를 수신할 수 있다. 데이터 처리 시스템(102)은 예를 들어 이미지 해석 기술, 컴퓨터 비전, 머신 러닝 엔진, 또는 이미지 또는 비디오를 디지털 파일로 변환하기 위해 이미지 또는 비디오를 인식 또는 해석하는 다른 기술을 사용하여 이미지 또는 비디오 입력 신호를 처리할 수 있다. 하나 이상의 이미지 해석 기술, 컴퓨터 비전 기술, 기계 학습 기술은 총괄적으로 이미징 기술로 지칭될 수 있다. 데이터 처리 시스템(102)(예를 들어, NLP 컴포넌트(114))은 오디오 처리 기술에 부가하여 또는 그 대신에 이미징 기술로 구성될 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(114)는 요청에 대응하는 적어도 하나의 요청 또는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 나타낼 수 있다. 트리거 키워드는 수행될 수 있는 동작 유형을 나타낼 수 있다. 예를 들어, NLP 컴포넌트(114)는 입력 오디오 신호를 분석하여, 저녁 식사 및 영화에 참석하기 위해 저녁에 집을 떠나는 적어도 하나의 요청을 식별할 수 있다. 트리거 키워드는 적어도 하나의 단어, 문구, 어근 또는 부분 단어 또는 수행할 동작을 나타내는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 전송이 필요함을 나타낼 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 전송 의도를 직접 표현하지 않지만, 트리거 키워드는 전송이 요청에 의해 표시되는 적어도 하나의 다른 동작에 대한 보조 동작임을 나타낸다.
NLP 컴포넌트(114)는 입력 오디오 신호를 분석하여 요청 및 트리거 키워드를 식별, 결정, 검색 또는 획득할 수 있다. 예를 들어, NLP 컴포넌트(114)는 시맨틱 처리 기술을 입력 오디오 신호에 적용하여 트리거 키워드 또는 요청을 식별할 수 있다. NLP 컴포넌트(114)는 시맨틱 처리 기술을 입력 오디오 신호에 적용하여, 제1 트리거 키워드 및 제2 트리거 키워드와 같은 하나 이상의 트리거 키워드를 포함하는 트리거 구문을 식별할 수 있다. 예를 들어, 입력 오디오 신호에는 "지루해, 재미있는 일을 제안해"라는 문장이 포함될 수 있다. NLP 컴포넌트(114)는 입력 오디오 신호가 엔터테인먼트 옵션을 식별하기 위한 요청을 포함한다고 결정할 수 있다. 데이터 처리 시스템(102)은 제1 출력 신호 "비디오 게임을 하시겠습니까?"로 응답할 수 있다. 제2 입력 오디오 신호는 "그래, 무엇을 제안할래?"일 수 있다. 제2 출력 오디오 신호는 "역할 게임, 레이싱 게임 또는 퍼즐 게임을 하시겠습니까?"일 수 있다. 제3 입력 오디오 신호는 "난 퍼즐 게임을 하고 싶어"일 수 있다. 제3 출력 오디오 신호는 "십자말 퍼즐이나 스도쿠(Sudoku)는 어떻습니까?"일 수 있다. 스도쿠는 논리 기반 조합 숫자 배치 퍼즐을 지칭할 수 있다. 제4 입력 오디오 신호는 "스도쿠 하자"일 수 있다. NLP 컴포넌트(114)는 제4 입력 오디오 신호가 애플리케이션 식별자 및 질의 또는 요청을 포함한다고 결정할 수 있다. 애플리케이션 식별자는 애플리케이션에 대한 링크에 매핑되는 애플리케이션 식별자 또는 이름을 지칭할 수 있다. NLP 컴포넌트(114)는 문장을 포함하는 데이터 패킷에 시맨틱 처리 기술 또는 다른 자연어 처리 기술을 적용하여, 애플리케이션 식별자 "스도쿠" 및 질의"하자(play)"를 식별할 수 있다. 데이터 처리 시스템(102)은 제4 오디오 입력이 애플리케이션의 시작을 야기했고, 제1, 제2 및 제3 오디오 입력 및 출력이 애플리케이션의 시작을 야기한 오디오 입력 이전에 발생한 이전 오디오 입력임을 결정할 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호를 필터링하여 애플리케이션 식별자 및 질의를 식별할 수 있다. 일부 경우, 입력 오디오 신호는 질의를 포함할 수 있지만 애플리케이션 식별자 또는 애플리케이션의 이름을 포함하지 않을 수 있다. 예를 들어, 입력 오디오 신호를 운반하는 데이터 패킷은 "근처에 좋은 식당을 찾는데 도움을 받을 수 있다면 좋겠어(It would be great if I could get help finding some good restaurants nearby)”, "를 포함할 수 있으며, 이 경우 NLP 컴포넌트(114)는 “it”, “would”, “be”, “great”, “if”, “I”, “could”, “get”, or “help”와 같이 하나 이상의 용어를 필터링할 수 있다. 이들 용어를 필터링함으로써, NLP 컴포넌트(114)는 "찾기" "좋은" "레스토랑" "근처"와 같은 질의 또는 키워드를 보다 정확하고 신뢰성있게 식별할 수 있고 이것이 식당 찾기 애플리케이션을 시작하기 위한 요청인지를 결정할 수 있다.
입력 오디오 신호는 원하는 애플리케이션의 식별자와 같은 애플리케이션 식별자를 포함할 수 있다. 입력 오디오 신호는 애플리케이션의 고유 식별자, 애플리케이션 이름, 또는 어떤 애플리케이션이 시작 또는 호출되는지에 대한 다른 표시를 포함할 수 있다. 예를 들어, 입력 오디오 신호에는 "의류 소매점 A"와 같은 애플리케이션 이름이 포함될 수 있다. 애플리케이션 식별자는 영숫자 식별자 일 수 있다.
따라서, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)의 센서(138) 또는 변환기(140)에 의해 검출된 음성 컨텐츠를 운반하는 입력 오디오 신호에 대응하는 데이터 패킷을 수신할 수 있다. 입력 오디오 신호는 컴퓨팅 디바이스(104)의 아날로그-디지털 변환기(예를 들어, 오디오 드라이버(142))에 의해 디지털 파일로 변환될 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 디지털 파일에 대응하는 데이터 패킷을 수신 한 다음, 그 데이터 패킷 또는 디지털 파일을 분석하여 애플리케이션을 포함하는 컴퓨터 프로그램을 선택할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 데이터 패킷 또는 디지털 파일에 응답하여, 컴퓨팅 디바이스(104)에 설정되어 유지되는 보안 처리 환경에서 컴퓨팅 디바이스(104)에 의한 실행을 위한 애플리케이션을 포함하는 컴퓨터 프로그램을 선택하도록 설계되고 구성된 원격 애플리케이션 런처(116)를 포함할 수 있다.
원격 애플리케이션 런처(116)(또는 원격 앱 런처)는 디지털 파일 또는 이전 오디오 입력에서 키워드, 토큰, 용어, 개념 또는 다른 정보를 식별할 수 있다. 원격 애플리케이션 런처(116)는 자연어 프로세서 컴포넌트(114)를 이용하여 디지털 파일에서 키워드, 토큰, 용어, 개념 또는 다른 정보를 식별할 수 있다. 자연어 프로세서 컴포넌트(114)는 파싱된 키워드, 토큰, 용어 또는 개념을 원격 애플리케이션 런처(116)에 제공할 수 있다. 원격 애플리케이션 런처(116)는 디지털 파일 또는 오디오 입력의 키워드 또는 개념에 응답하는 애플리케이션을 선택할 수 있다. 원격 애플리케이션 런처(116)는 입력 오디오 신호에 제공된 애플리케이션 식별자에 매핑되는 애플리케이션을 선택할 수 있다.
(예를 들어, NLP 컴포넌트(114) 또는 원격 애플리케이션 런처(116)를 통해) 데이터 처리 시스템(102)은 입력 오디오 신호가 애플리케이션 식별자 "의류 소매점 A"를 포함한다고 결정할 수 있다. NLP 컴포넌트(114) 또는 원격 애플리케이션 런처(116)는 입력 오디오 신호에서 질의를 추가로 식별할 수 있다. NLP 컴포넌트(114)는 애플리케이션 식별자를 원격 애플리케이션 런처(116)에 제공할 수 있다. 원격 애플리케이션 런처(116)는 딥 링크 데이터 구조(126)에서 조회를 수행하여 애플리케이션 식별자 "의류 소매점 A"에 매핑되는 애플리케이션을 식별할 수 있다. 일부 경우, 입력 오디오 신호는 애플리케이션 식별자를 포함하지 않을 수 있지만, 질의에 대한 응답을 제공할 수 있는 애플리케이션의 유형을 나타내는 질의를 포함할 수 있다. 예를 들어, 딥 링크 데이터 구조(126)는 각 애플리케이션에 대해, 애플리케이션이 제공할 수 있는 상품, 서비스 또는 기능(예를 들어, 식당 검색, 비디오 게임, 의류)을 설명하는 키워드 또는 다른 정보를 포함할 수 있다. 원격 애플리케이션 런처(116)는 딥 링크 데이터 구조(126)를 통해 결정된 식별자를 사용하여 대응하는 애플리케이션 또는 그의 인스턴스를 시작, 개시, 실행 또는 그렇지 않으면 활성화 또는 호출할 수 있다. 일부 경우, 식별자는 파일명 또는 파일 경로, 포인터, 웹 주소, 인터넷 프로토콜 주소, URL, 딥 링크 또는 애플리케이션에 대한 다른 식별 정보를 포함하거나 이와 관련될 수 있다. 예를 들어, 데이터 처리 시스템(102)은 의류 소매점 애플리케이션이 제3자 애플리케이션 개발자 디바이스(108)를 통해 제공되는 것을 결정할 수 있고, 제3자 애플리케이션 개발자 디바이스(108)에게 직접 또는 데이터 처리 시스템(102)(예를 들어, 원격 애플리케이션 런처(116))를 통해 컴퓨팅 디바이스(104)에서 실행하기 위한 의류 소매점 애플리케이션을 제공하도록 지시한다. 따라서, 데이터 처리 시스템(102)(또는 원격 디지털 어시스턴트(112) 또는 원격 앱 런처(116))은 데이터베이스의 조회을 통해 제3자 애플리케이션에 대한 딥 링크를 식별하고, 그 딥 링크를 사용하여 제3자 애플리케이션을 호출할 수 있다.
데이터 처리 시스템(102)은 입력 오디오 신호로부터 컴퓨팅 디바이스(104)를 호출할 애플리케이션을 결정할 수 있다. 데이터 처리 시스템(102)은 애플리케이션 또는 애플리케이션의 인스턴스를 시작, 실행 또는 호출하기 위해 컴퓨팅 디바이스(104)(예를 들어, 로컬 디지털 어시스턴트(134))에 명령 또는 커맨드를 제공할 수 있다. 일부 경우, 애플리케이션의 시작 또는 실행을 시작하거나 야기하기 전에, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)가 애플리케이션에 액세스할 권한이 있는지 여부를 결정할 수 있다. 데이터 처리 시스템(102)은(예를 들어, 원격 애플리케이션 런처(116)를 통해) 컴퓨팅 디바이스(104)의 식별자로 데이터 저장소 (124)(예를 들어, 딥 링크 데이터 구조(126))에서 조회를 수행하여, 컴퓨팅 디바이스(104)가 애플리케이션을 포함하는 컴퓨터 프로그램에 액세스할 권한을 부여받았는지 여부를 결정할 수 있다. 권한 인증은 가입, 계획, 제한, 리소스 요구 사항, 버전 관리 또는 디바이스 기능에 기초할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)가 사전 정의된 버전의 운영 체제로 구성된 경우 컴퓨팅 디바이스(104)에게 애플리케이션에 대한 액세스를 부여할 수 있다. 다른 예에서, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)가 유효한 계정 또는 프로파일과 연관된 경우 컴퓨팅 디바이스(104)에게 애플리케이션에 대한 액세스를 부여할 수 있다. 일부 경우, 데이터 처리 시스템(102)이 컴퓨팅 디바이스(102)가 애플리케이션에 액세스할 권한이 없다고 결정하면, 데이터 처리 시스템(102)은 스레드를 종료하고, 사용자에게 프롬프트하거나, 컴퓨팅 디바이스(104)가 액세스할 권한이 있는 다른 애플리케이션을 식별할 수 있다. 따라서, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)가 애플리케이션에 액세스할 권한이 있다는 결정에 응답하여 애플리케이션을 선택할 수 있다.
애플리케이션을 포함하는 컴퓨터 프로그램은 컴퓨팅 디바이스의 컴퓨팅 보안 컴포넌트(136)에 의해 유지되거나 설정되는 컴퓨팅 디바이스(104)의 보안 처리 환경에서 실행될 수 있다. 일부 경우, 애플리케이션은 컴퓨팅 디바이스(104)에서 부분적으로 실행될 수 있고 데이터 처리 시스템(102)에서 부분적으로 실행될 수 있다. 부분 실행은 추가 기능을 수행하기 위해 서버, 데이터 처리 시스템(102), 또는 제3자 애플리케이션 개발자 디바이스(108)에서 실행되는 백엔드 컴포넌트를 포함하는 한편, 특정 처리를 수행할 수 있고 컴퓨팅 디바이스(104)에 의해 실행되는 프론트 엔드 사용자 인터페이스를 포함할 수 있는 애플리케이션을 지칭할 수 있다. 따라서, 데이터 처리 시스템(102)은 컴퓨팅 디바이스가 보안 처리 환경에서 제3자 애플리케이션을 시작하도록 지시할 수 있으며, 여기서 보안 처리 환경은 초기에 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성될 수 있다. 이전 오디오 입력에 대한 액세스를 방지하도록 초기에 구성되는 것은 보안 처리 환경 자체가 이전 오디오 입력을 저장하는 메모리의 다른 부분에 액세스할 수 없는 잠긴 메모리(locked memory)에 있음을 지칭할 수 있다. 이전 오디오 입력에 대한 액세스를 방지하도록 초기에 구성되는 것은 이전의 오디오 입력에 액세스, 요청 또는 검색하기 위한 액세스 권한 또는 특권이 없는 보안 처리 환경 자체를 지칭할 수 있다. 샌드 박스 환경과 같은 보안 처리 환경은 컴퓨팅 디바이스(104)의 제조자, 컴퓨팅 디바이스(104)상에서 실행되는 운영 체제의 제조자, 컴퓨팅 디바이스(104)의 관리자, 또는 컴퓨팅 디바이스(104)의 사용자에 의해 초기에 구성될 수 있다. 그러나, 데이터 처리 시스템(102)은 애플리케이션의 시작시에 입력으로서 이전 오디오 입력의 표시를 전달 또는 포워딩하도록 구성될 수 있고, 이에 의해 이전 오디오 입력의 표시에 액세스하도록 초기에 구성되지 않은 보안 처리 환경에서 실행되는 애플리케이션으로 이전 오디오 입력의 표시를 전달 또는 포워딩할 수 있다.
제3자 애플리케이션을 호출하기로 결정한 것에 응답하여 이전 오디오 입력의 표시를 제3자 애플리케이션에 제공하기 위해, 데이터 처리 시스템(102)은 오디오 입력을 포함하는 패키지 데이터 객체 또는 오디오 입력을 포함하는 패키지 데이터 객체에 대한 식별자를 생성하도록 결정할 수 있다. 예를 들어, 원격 앱 런처(116)가 애플리케이션을 호출, 시작 또는 인스턴스화, 탐색, 오픈 또는 이용하기로 결정한 것에 응답하여, 데이터 처리 시스템(102)은 애플리케이션의 호출을 야기한 오디오 입력, 질의, 응답, 대화 또는 다른 컨텍스트뿐만 아니라 애플리케이션을 호출하기로 한 결정을 야기한 컨텍스트를 획득, 저장, 표시, 패키지 또는 식별하기로 결정할 수 있다. 데이터 처리 시스템(102)은 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 생성하도록 설계되고 구성된 오디오 패키징 컴포넌트(118)를 포함하거나 인터페이스하거나 액세스할 수 있다. 오디오 패키징 컴포넌트(118)는 원격 디지털 어시스턴트(112)의 컴포넌트일 수 있거나, 데이터 처리 시스템(102)의 하나 이상의 프로세서 또는 서버에 의해 실행되는 별도의 컴포넌트 또는 모듈 일 수 있다.
일부 경우, 제3자 애플리케이션은 보안 처리 환경 또는 다른 처리 환경 또는 구성에서 제3자 애플리케이션이 시작되거나 실행되어, 제3자 애플리케이션이 디지털 어시스턴트가 제3자 애플리케이션을 선택하거나 시작하게 한 컨텍스트 또는 대화와 관련된 정보에 액세스하거나 이를 획득하지 못하게 할 수 있다. 예를 들어, 제3자 애플리케이션은 컴퓨팅 디바이스(104)로부터 떨어진 하나 이상의 서버에서 실행될 수 있다. 제3자 애플리케이션은 데이터 처리 시스템(102)에서 실행될 수 있다. 제3자 애플리케이션은 제3자 애플리케이션 개발자 디바이스(108)와 연관된 서버와 같은 컴퓨팅 디바이스(104) 및 데이터 처리 시스템(102)으로부터 떨어진 하나 이상의 서버에서 실행될 수 있다. 제3자 애플리케이션은 소프트웨어에서 서비스 플랫폼, 웹 기반 애플리케이션 또는 클라우드 기반 애플리케이션으로 구성될 수 있다. 컴퓨팅 디바이스(104) 또는 데이터 처리 시스템(102) 중 적어도 하나로부터 떨어진 하나 이상의 서버 또는 데이터 센터에서 실행되는 제3자 애플리케이션은 디지털 어시스턴트(예를 들어, 원격 디지털 어시스턴트(112) 또는 로컬 디지털 어시스턴트 컴포넌트(134))가 제3자 애플리케이션을 선택하거나 시작하게 하는 컨텍스트 또는 대화와 관련된 정보에 액세스하거나 이를 획득하지 못하게 할 수 있다.
이러한 컨텍스트(상황)를 제공하기 위해, 데이터 처리 시스템(102)은 제3자 애플리케이션을 시작 또는 호출하기로 결정하기 전에 발생한 이전 오디오 입력 또는 대화에 관한 정보를 제공할 수 있다. 오디오 패키징 컴포넌트(118)는 패키지 데이터 객체 또는 이전 오디오 입력에 대응하는 고유 식별자와 같은 이전 오디오 입력의 표시를 생성할 수 있다. 예를 들어, 오디오 패키징 컴포넌트(118)는 구조화된 대화를 포함하는 패키지 데이터 객체를 생성하고, 직렬화된 오페크 토큰을 포함하는 패키지 데이터 객체를 생성하고, 이전 오디오 입력에서 이벤트를 나타내는 이벤트 식별자를 포함하는 패키지 데이터 객체를 생성하고, 질의로부터 형성된 이벤트 식별자 및 그 질의에 대한 응답을 포함하는 패키지 데이터 객체를 생성할 수 있다.
이전 오디오 입력은 제3자 애플리케이션의 시작 전에 컴퓨팅 디바이스(104)의 마이크로폰에 의해 검출된 오디오 입력을 지칭할 수 있다. 이전 오디오 입력은 로컬 디지털 어시스턴트(134) 또는 원격 디지털 어시스턴트(112)에 의해 처리된 오디오 입력을 지칭할 수 있다. 이전 오디오 입력은 사용자가 로컬 디지털 어시스턴트(134) 또는 원격 디지털 어시스턴트(112)가 처리, 파싱 또는 사용하도록 허가하거나 허용하는 오디오 입력을 지칭할 수 있다. 이전 오디오 입력은 제3자 애플리케이션을 시작하기 전에 사전 결정된 시간 간격 동안 발생한 오디오 입력을 지칭할 수 있다. 시간 간격은 고정 시간 간격 또는 동적 시간 간격일 수 있다. 예를 들어, 고정 시간 간격은 15초, 30초, 45초, 1분, 2분, 3분, 4분, 5분, 10분 이상일 수 있다. 동적 시간 간격은 하나 이상의 인자(factor)에 기초하여 동적으로 설정되거나 결정되는 시간 간격일 수 있다. 인자는 예를 들어 하루 중 시간, 위치, 애플리케이션 유형, 오디오 입력과 관련된 키워드, 오디오 입력의 빈도, 초당 발화된 단어, 문장 수, 버티컬, 토픽 또는 기타 인자 등을 포함할 수 있다. 예를 들어, 시작되는 애플리케이션이 의류 또는 의복과 관련되는 경우, 데이터 처리 시스템(102)은 구매할 홈(home)을 찾기 위해 시작될 수 있는 애플리케이션과 비교하여 더 짧은 시간 간격을 설정할 수 있다.
일부 경우, 지속 시간 또는 시간 간격은 대화 세션에 기초하여 설정될 수 있다. 데이터 처리 시스템(102)은 오디오 입력의 하나 이상의 특성에 기초하여 대화 세션을 결정하거나 식별할 수 있다. 예를 들어, 대화 세션은 토픽에 관해 디지털 어시스턴트(예를 들어, 134 또는 112)와 대화하는 사용자를 지칭할 수 있다. 대화는 하나 이상의 토픽을 지칭할 수 있지만, 서로 관련되거나 논리적으로 서로 관련되고 하나의 토픽에서 다른 토픽으로 진행하는 일련의 오디오 입력일 수 있다. 대화 세션은 대화를 개시한 초기 질의와 관련된 오디오 입력을 지칭할 수 있다.
예를 들어, 데이터 처리 시스템(102)은 "나 지루해, 어떻게 해야 하지?"라는 질의가 대화 세션의 시작 또는 개시인 것으로 결정할 수 있다. 데이터 처리 시스템(102)은 이 제1 입력 오디오 신호가 엔터테인먼트 옵션을 식별하기 위한 요청을 포함한다고 결정할 수 있다. 데이터 처리 시스템(102)은 제1 출력 신호 "비디오 게임을 하시겠습니까?"로 응답할 수 있다. 제2 입력 오디오 신호는 "그래, 무엇을 제안할래?"일 수 있다. 제2 출력 오디오 신호는 "역할 게임, 레이싱 게임 또는 퍼즐 게임을 하시겠습니까?"일 수 있다. 제3 입력 오디오 신호는 "난 퍼즐 게임을 하고 싶어"일 수 있다. 제3 출력 오디오 신호는 "십자말 퍼즐이나 스도쿠는 어떻습니까?"일 수 있다. 스도쿠는 논리 기반의 조합 숫자 배치 퍼즐을 지칭할 수 있다. 제4 입력 오디오 신호는 "스도쿠하자"일 수 있다. 애플리케이션이 시작되게 한 이 초기 질의 이후의 오디오 입력 및 응답은 동일한 대화와 관련될 수 있다. 데이터 처리 시스템(102)은 애플리케이션이 시작될 때까지 대화 세션의 시작으로부터의 오디오 입력 및 응답(예를 들어, 제1 입력 오디오, 제1 출력 오디오, 제2 입력 오디오, 제2 출력 오디오, 제3 입력 오디오, 제3 출력 오디오, 제4 입력 오디오)이 애플리케이션을 시작하기 위한 결과적인 결정을 둘러싼 컨텍스트를 제공한다고 결정할 수 있다. 따라서, 데이터 처리 시스템(102)은 입력 및 출력 응답을 이전 오디오 입력으로서 식별하고, 이 이전 오디오 입력의 표시를 제3자 애플리케이션의 시작시에 제3자 애플리케이션에 제공하도록 구성될 수 있다.
패키지 데이터 객체는 이전 오디오 입력 또는 대화에 대응하는 하나 이상의 컴포넌트를 포함할 수 있다. 패키지 데이터 객체의 컴포넌트는 예를 들어, 1) 텍스트 형태의 실제 직렬화된 대화, 2) 객체 지향 방식의 구조화된 대화 또는 3) 대화의 요약을 포함할 수 있다.
패키지 데이터 객체는 예를 들어, 직렬화된 포멧의 실제 대화(예를 들어, 제1 입력 오디오에 대응하는 텍스트, 제1 출력 오디오에 대응하는 텍스트, 제2 입력 오디오에 대응하는 텍스트, 제2 출력 오디오에 대응하는 텍스트, 제3 입력 오디오에 대응하는 텍스트, 및 제3 출력 오디오에 대응하는 텍스트)를 포함할 수 있다. 일부 경우, 패키지 데이터 객체는 입력 오디오에 대응하는 텍스트를 포함할 수 있지만, 출력 오디오에 대응하는 텍스트를 제외할 수 있다. 예를 들어, 대역폭, 데이터 파일 크기, 메모리 또는 다른 처리 또는 컴퓨터 이용을 줄이기 위해, 데이터 처리 시스템(102) 또는 로컬 디지털 어시스턴트(134)는 제1 입력 오디오, 제2 입력 오디오 및 제3 입력 오디오(또는 그의 텍스트)만을 포함하도록 패키지 데이터 객체에서 디지털 어시스턴트(예를 들어, 112 또는 134)의 출력을 필터링하거나 제외할 수 있다.
일부 경우, 데이터 처리 시스템(102)은 입력된 오디오와 출력 오디오가 발생한 시퀀스 또는 순서의 표시(예를 들어, 제1 입력, 이어서 제1 출력, 이어서 제2 입력, 이어서 제2 출력 등)를 포함하도록 패키지 데이터 객체의 실제 대화 컴포넌트를 생성할 수 있다. 데이터 처리 시스템(102)은 문장 부호와 같이 대화에서 텍스트의 구조를 포함하도록 실제 대화 컴포넌트를 생성할 수 있다. 데이터 처리 시스템(102)은 입력 오디오 및 출력 오디오와 관련된 타임 스탬프를 포함하도록 실제 대화 컴포넌트를 생성할 수 있다. 데이터 처리 시스템(102)은 여러 단어가 문구를 만들고, 여러 문구가 문장을 만들고, 문장이 아이디어를 전달할 수 있는 것과 같이 언어의 구조를 포함하거나 기초로 하는 실제 대화 컴포넌트를 생성할 수 있다. 데이터 처리 시스템(102)은 하나 이상의 어휘적 모호성(예를 들어, 단어가 다중 의미를 갖는 경우), 구문적 모호성(예를 들어, 문장이 다중 구문분석 트리를 갖는 경우), 의미적 모호성(문장이 다중 의미를 갖는 경우) 또는 아나포릭 모호성(예를 들어, 이전에 언급된 문구나 단어가 다른 의미를 갖는 경우) 중 하아 이상과 같은 모호성 없이 실제 대화 컴포넌트를 생성할 수 있다. 일부 경우, 패키지 데이터 개체의 실제 대화 컴포넌트를 생성하기 위해, 데이터 처리 시스템(102)은 대화의 일부 또는 청크(chunks)를 데이터 처리 시스템(102) 또는 다른 컴퓨터 프로그램 또는 컴포넌트에 의한 조작을 용이하게 하는 1차 로직 구조와 같은 공식적인 표현으로 변환할 수 있다.
데이터 처리 시스템(102)은 패키지 데이터 객체의 구조화된 컴포넌트를 생성하여 객체 지향 구조와 같은 구조화된 포맷으로 대화의 양상을 포함할 수 있다. 대화의 구조화된 컴포넌트는 대화에 표시된 제품 또는 서비스와 같은 관심 객체의 고유 식별자를 포함하거나 지칭하거나 나타낼 수 있다. 객체 지향 구조는, 예를 들어, 슈즈와 같이 대화 또는 이전 오디오 입력에서 언급된 제품에 대응하는 키워드 또는 고유 식별자, 또는 슈즈에에 매핑되는 고유한 영숫자 식별자일 수 있는 ABC_123을 포함할 수 있다. 따라서, 일부 경우, 대화 또는 패키지 데이터 객체의 구조화된 컴포넌트는 대화에 제품(예를 들어, 비디오 게임 또는 특정 비디오 게임) 또는 서비스(예를 들어, 승차 공유 서비스 또는 식료품 배달 서비스)와 같은 원하는 엔티티만을 포함할 수 있다. 구조화된 대화에 표시된 객체는 데이터 처리 시스템(102)이 추가 다운 스트림 처리를 수행하도록 구성될 수 있는 제품 또는 서비스와 같이 사전 결정된 관심 객체를 포함할 수 있다. 데이터 처리 시스템(102)이 추가 다운 스트림 처리를 수행하도록 구성된 패키지 데이터 객체의 구조화된 컴포넌트에 객체만을 포함시킴으로써, 데이터 처리 시스템(102)은 패키지 데이터 객체의 파일 크기를 감소시키고, 패키지 데이터 객체의 전송과 관련된 대역폭을 감소시킬뿐만 아니라, 데이터 처리 시스템(102)이 처리하도록 구성되지 않은 객체를 데이터 처리 시스템(102)이 파싱 또는 처리하려고 시도하는 것을 방지함으로써 다운 스트림 처리 또는 오류를 감소시킬 수 있다.
일부 경우에, 패키지 데이터 객체의 구조화된 컴포넌트는 이전 오디오 입력에서의 이벤트를 나타내는 이벤트 식별자를 포함할 수 있다. 이벤트 식별자는 질의 및 질의에 대한 응답으로부터 형성될 수 있다. 이벤트 식별자는 입력 질의, 출력 응답, 음성 동작(예를 들어, 예-아니오 질문, 내용 질문, 진술 또는 주장), 문장 간 관계(예를 들어, 정교화, 설명 또는 대비)와 같은 대화내의 이벤트 유형에 대해 설정될 수 있다.
데이터 처리 시스템(102)은 요약 컴포넌트를 포함하도록 패키지 데이터 객체를 생성할 수 있다. 요약 컴포넌트는 예를 들어 대화와 관련된 토픽 또는 버티컬 정보를 제공할 수 있다. 요약에는 대화와 관련된 키워드 또는 메타 데이터가 포함될 수 있다. 데이터 처리 시스템(102)은 시맨틱 분석 기술 또는 자연어 처리 기술을 사용하여 요약을 생성할 수 있다. 요약은 예를 들어 오락 또는 게임과 같이 시작된 애플리케이션과 관련된 카테고리를 표시할 수 있다. 요약은 오락을 찾는 사용자와 같이 대화가 개시된 이유를 포함하거나 나타낼 수 있다. 따라서, 데이터 처리 시스템(102)은 대화 또는 그의 양상을 하나 이상의 포맷으로 전달하는 하나 이상의 필드, 컴포넌트 또는 구조를 포함하도록 패키지 데이터 객체를 생성할 수 있다.
일부 경우, (예를 들어, 로컬 디지털 어시스턴트(134)를 통해) 데이터 처리 시스템(102)은 제3자 애플리케이션이 패키지 데이터 객체를 파싱 또는 처리하거나 패키지 데이터 객체의 내용을 식별하거나 활용할 수 없도록 패키지 데이터 객체를 구성하거나 포맷할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 직렬화된 오페크 토큰을 포함하도록 패키지 데이터 객체를 생성할 수 있거나, 패키지 데이터 개체는 직렬화된 오페크 토큰이거나 이를 포함할 수 있다. 직렬화된 오페크 토큰은 제3자 오디오 애플리케이션이 이전 오디오 입력을 파싱할 수 없고, 이전 오디오 입력을 파싱할 필요가 없도록 이전 오디오 입력의 표시를 제3자 애플리케이션으로 전달하기 위한 포멧을 지칭할 수 있다. 예를 들어, 토큰은 패키지 데이터 객체일 수 있으며, 토큰을 직렬화하는 것은 다수의 스레드 또는 애플리케이션이 그 토큰에 액세스할 수 있도록 토큰을 포멧팅 또는 구성하는 것을 지칭할 수 있다. 토큰은 하위 레벨 서브 시스템이 동일한 토큰을 보유할 수 있는 각 엔티티를 인식할 필요 없이 멀티 프로세서 안전 코드인 토큰이 작성될 수 있는 포멧으로 잠길 수 있다.
데이터 처리 시스템(102)은 제3자 애플리케이션에 의해 파싱, 오픈, 분석 또는 처리될 수 없는 암호화된 데이터 객체, 아이템 또는 파일로서 이전 오디오 입력을 제공할 수 있다. 데이터 처리 시스템(102)은 암호화 기술로 구성될 수 있고, 제3자 애플리케이션을 전달, 포워딩 또는 제공하기 위해 로컬 오디오 어시스턴트(134)에 이전 오디오 입력을 제공하기 전에 암호화 기술을 이전 오디오 입력에 적용할 수 있다. 제3자 애플리케이션은 이전 오디오 입력을 해독하기 위해 암호 해독 기술 또는 키로 구성되어 있지 않을 수 있다. 대신, 제3자 애플리케이션은 암호화된 이전 오디오 입력을 그 이전 오디오 입력을 해독 및 파싱하도록 허가, 허용 또는 구성되는 의도된 엔드 포인트로 포워딩할 수 있다.
패키지 데이터 객체는 데이터 처리 시스템(102), 원격 디지털 어시스턴트(112) 또는 로컬 디지털 어시스턴트(134)에 의해 생성될 수 있다. 일부 경우, 패키지 데이터 객체는 원격 디지털 어시스턴트(112)와 상호 작용하는 로컬 디지털 어시스턴트(134)에 의해 생성될 수 있다. 일부 경우, 패키지 데이터 객체는 로컬 디지털 어시스턴트 컴포넌트(134)와 상호 작용하는 원격 디지털 어시스턴트(112)에 의해 생성될 수 있다. 패키지 데이터 객체는 컴퓨팅 디바이스(104)에 로컬로 저장되거나 데이터 처리 시스템(102)상의 데이터 저장소(124)의 패키지 데이터 데이터 구조(128)에 원격으로 저장될 수 있다. 일부 경우, 컴퓨팅 디바이스(104)에 대한 처리 부담을 줄이기 위해, 데이터 처리 시스템(102)은 패키지 데이터 객체를 생성하여 패키지 데이터 객체를 데이터 저장소(128)에 저장하기로 결정할 수 있다.
일부 경우, 오디오 패키징 컴포넌트(118)는 생성된 패키지 데이터 객체를 패키지 데이터 데이터 구조(128)에 저장할 수 있다. 오디오 패키징 컴포넌트(118)는 패키지 데이터 객체에 고유 식별자(예를 들어, 패키지 식별자 또는 패키지 ID 또는 대화 식별자 또는 대화 ID)를 할당할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 해시 함수에 기초하여 고유 식별자를 생성하고, 그 고유 식별자를 패키지 데이터 객체에 할당할 수 있다. 데이터 처리 시스템(102)은 대응하는 패키지 데이터 객체에 대한 고유 식별자의 매핑을 테이블에 저장할 수 있다. 따라서, 데이터 처리 시스템은 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력(예를 들어, 패키지 데이터 객체)에 대응하는 고유 식별자를 생성할 수 있다.
일부 경우, 데이터 처리 시스템(102)은 고유 식별자를 이전 오디오 입력에 할당하고, 이전 오디오 입력을 데이터 저장소(124)에 저장할 수 있다. 데이터 처리 시스템(102)은 이전 오디오 입력을 이벤트 식별자, 구조화된 대화, 객체 식별자 또는 패키지 데이터 객체로 변환할 수 있다. 데이터 처리 시스템(102)은 임의의 포멧으로, 고유 식별자를 이전 오디오 입력에 할당할 수 있고, 고유 식별자 및 이전 오디오 입력을 데이터 저장소(124)에 저장할 수 있다.
데이터 처리 시스템(102)은 패키지 데이터 객체 또는 고유 식별자를 컴퓨팅 디바이스(104)로 포워딩할 수 있다. 데이터 처리 시스템(102)은 패키지 데이터 객체 또는 고유 식별자를 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로 전달하여 컴퓨팅 디바이스의 보안 처리 환경에서 실행할 수 있다. 데이터 처리 시스템(102)은 제3자 애플리케이션이 패키지 데이터 객체 또는 고유 식별자를 디지털 컴포넌트 선택기(120)로 전송하도록 패키지 데이터 객체 또는 고유 식별자를 제3자 애플리케이션에 제공할 수 있다.
일부 경우, 로컬 디지털 어시스턴트(134)는 보안 처리 환경에서 데이터 전송을 용이하게 하는 하나 이상의 기능을 수행할 수 있다. 예를 들어, 컴퓨팅 디바이스(104)는 컴퓨팅 보안 컴포넌트(136)를 통해. 컴퓨팅 디바이스(104)의 메모리의 적어도 일부에서 보안 처리 환경을 관리 또는 설정할 수 있다. 로컬 디지털 어시스턴트(134)(또는 로컬 디지털 어시스턴트 컴포넌트)는 통신 채널(예를 들어, 네트워크(105) 또는 핸드쉐이킹 프로토콜 또는 크리덴셜을 통해 설정된 보안 채널)을 통해 원격 디지털 어시스턴트(112)와 통신할 수 있다. 로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)의 마이크로폰(예를 들어, 센서(138))에 의해 검출된 오디오 입력을 식별할 수 있다. 로컬 디지털 어시스턴트(134)는 오디오 입력에 기초하여 컴퓨팅 디바이스상의 제3자 애플리케이션을 호출할 수 있다. 일부 경우, 로컬 디지털 어시스턴트(134)는 오디오 입력을 데이터 처리 시스템(102)으로 전송한 다음, 데이터 처리 시스템(102)(예를 들어, 원격 앱 런처(116))으로부터 명령을 수신하여 제3자 애플리케이션 또는 호출할 제3자를 애플리케이션을 호출할 수 있다. 로컬 디지털 어시스턴트(134)는 데이터 처리 시스템(102)으로부터 명령 또는 커맨드를 수신한 것에 응답하여 보안 처리 환경에서 제3자 애플리케이션을 호출할 수 있다. 일부 경우, 컴퓨팅 보안 컴포넌트(136)는 제3자 애플리케이션을 호출하기 위한 표시를 수신하는 것에 응답하거나 그에 후속하여 보안 처리 환경을 설정, 개시 또는 생성할 수 있다. 로컬 디지털 어시스턴트(134)는 제3자 애플리케이션의 호출에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 획득할 수 있다. 로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)의 메모리 또는 데이터 처리 시스템(102)으로부터 이전 오디오 입력의 표시를 수신할 수 있다. 이전 오디오 입력의 표시는 패키지 데이터 객체, 데이터 저장소(124)에 저장된 패키지 데이터 객체에 대응하는 고유 식별자, 또는 데이터 저장소(124)에 저장된 이전 오디오 입력에 대응하는 고유 식별자를 포함하거나 지칭할 수 있다. 로컬 디지털 어시스턴트(134)는 이전 오디오 입력의 표시를 제3자 애플리케이션으로 포워딩할 수 있다. 로컬 디지털 어시스턴트(134)는 제3자 애플리케이션을 시작할 때 이전 오디오 입력의 표시를 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행하기 위해 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기(120)에 전송하도록 구성될 수 있다.
제3자 애플리케이션은 컨텐츠를 요청하기로 결정할 수 있다. 제3자 애플리케이션은 컨텐츠 요청을 디지털 컴포넌트 선택기(120)로 전송할 수 있다. 디지털 컴포넌트 선택기(120)는 데이터 처리 시스템(102)의 일부이거나 데이터 처리 시스템(102)과 별개일 수 있다. 제3자 애플리케이션에는 컨텐츠 요청과 함께 패키지 데이터 개체 또는 고유 식별자가 포함될 수 있다. 디지털 컴포넌트 선택기(120)는 컨텐츠 요청 및 패키지 데이터 객체 또는 고유 식별자를 수신할 수 있다. 디지털 컴포넌트 선택기(120)가 고유 식별자를 수신하면, 디지털 컴포넌트 선택기(120)는 고유 식별자에 대응하는 패키지 데이터 객체(또는 이전 오디오 입력)를 데이터 저장소(124)로부터 검색하거나 요청할 수 있다. 데이터 처리 시스템(102)은 제3자 애플리케이션으로부터 수신된 고유 식별자를 사용하여, 이전 오디오 입력 또는 패키지 데이터 객체를 식별할 수 있다. 데이터 처리 시스템(102)은 실시간 컨텐츠 선택 프로세스를 위한 입력으로서 이전 오디오 입력(또는 패키지 데이터 객체)을 디지털 컴포넌트 선택기(120)에 제공할 수 있다. 디지털 컴포넌트 선택기(120)는 패키지 데이터 객체에 기초하여 패키지 데이터 객체를 사용하여 실시간 디지털 컴포넌트 선택 프로세스를 실행할 수 있다. 디지털 컴포넌트 선택기(120)는 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택할 수 있다.
일부 경우, 고유 식별자는 실제 대화가 아닌 대화와 관련된 키워드 또는 토픽에 매핑될 수 있다. 예를 들어, 패키지 데이터 객체는 대화와 관련된 하나 이상의 키워드 또는 의미론적(시맨틱) 토픽을 포함할 수 있다. 실제 대화 또는 구조화된 대화를 저장하거나 제공하는 대신에, 데이터 처리 시스템(102)은 의미론적 토픽, 개념 또는 하나 이상의 키워드를 포함하는 패키지 데이터 객체를 생성할 수 있다. 데이터 처리 시스템(102)은이 패키지 데이터 객체에 고유 식별자를 할당하고, 그 고유 식별자를 로컬 디지털 어시스턴트로 전달할 수 있다. 데이터 처리 시스템(102)은 이 패키지 데이터 객체를 디지털 컴포넌트 선택을 위해 디지털 선택기 컴포넌트(120)에 제공할 수도 있다.
실시간 디지털 컴포넌트 선택 프로세스는 제3자 컨텐츠 제공자(106)에 의해 제공되는 디지털 컴포넌트 객체(스폰서된 디지털 컴포넌트 객체들을 포함할 수 있음)를 선택하는 것을 지칭하거나 포함할 수 있다. 실시간 컨텐츠 선택 프로세스는 컴퓨팅 디바이스(104)에 제공할 하나 이상의 디지털 컴포넌트를 선택하기 위해 다수의 컨텐츠 제공자에 의해 제공된 디지털 컴포넌트가 패키지 데이터 객체에 기초하여 파싱, 처리, 가중화 또는 매칭되는 서비스를 포함할 수 있다. 디지털 컴포넌트 선택기(120)는 컨텐츠 선택 프로세스를 실시간으로 수행할 수 있다. 컨텐츠 선택 프로세스를 실시간으로 수행하는 것은 클라이언트 컴퓨팅 디바이스(104)를 통해 수신된 컨텐츠 요청에 응답하여 컨텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 컨텐츠 선택 프로세스는 요청을 수신하는 시간 간격(예를 들어, 5초, 10초, 20초, 30초, 1분, 2분, 3분, 5분, 10분 또는 20분) 내에서 수행(예를 들어, 개시 또는 완료)될 수 있다. 실시간 컨텐츠 선택 프로세스는 클라이언트 컴퓨팅 디바이스(104)와의 통신 세션 동안 또는 그 통신 세션이 종료된 후 시간 간격 내에 수행될 수 있다.
예를 들어, 디지털 컴포넌트 선택기(120)는 패키지 데이터 객체에 기초하여 디지털 컴포넌트 객체를 선택하도록 설계, 작성, 구성 또는 동작할 수 있다. 디지털 컴포넌트 선택기(120)는 이미지 처리 기술, 문자 인식 기술, 자연어 처리 기술 또는 데이터베이스 조회를 사용하여 후보 디지털 컴포넌트의 음성, 오디오, 용어, 문자, 텍스트, 기호 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 디지털 컴포넌트는 후보 디지털 컴포넌트의 주제를 나타내는 메타 데이터를 포함할 수 있으며, 이 경우 디지털 컴포넌트 선택기(120)는 메타 데이터를 처리하여 후보 디지털 컴포넌트의 주제가 패키지 데이터 객체에 대응하는지 여부를 결정할 수 있다.
디지털 컴포넌트 제공자 디바이스(106)는 디지털 컴포넌트를 포함하는 컨텐츠 캠페인을 설정할 때 추가 지시자를 제공할 수 있다. 디지털 컴포넌트 제공자 디바이스(106)는 후보 디지털 컴포넌트에 관한 정보를 사용하여 조회을 수행함으로써 디지털 컴포넌트 선택기(120)가 식별할 수 있는 컨텐츠 캠페인 또는 컨텐츠 그룹 레벨로 정보를 제공할 수 있다. 예를 들어, 후보 디지털 컴포넌트는 컨텐츠 그룹, 컨텐츠 캠페인 또는 컨텐츠 제공자에 매핑될 수 있는 고유 식별자를 포함할 수 있다. 디지털 컴포넌트 선택기(120)는 데이터 저장소(124)의 컨텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여 디지털 컴포넌트 제공자 디바이스(106)에 관한 정보를 결정할 수 있다.
데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)를 통해 제공하기 위한 컨텐츠 요청을 수신할 수 있다. 이 요청은 패키지 데이터 객체, 디바이스 유형 또는 위치와 같은 요청의 선택 기준을 포함할 수 있다.
요청에 응답하여, 데이터 처리 시스템(102)은 데이터 저장소(124)(예를 들어, 컨텐츠 데이터(132)) 또는 디지털 컴포넌트 제공자 디바이스(106)와 관련된 데이터베이스로부터 디지털 컴포넌트 객체를 선택하여, 네트워크(105)를 경유하여 컴퓨팅 디바이스(104)를 통해 프리젠테이션을 위해 디지털 컴포넌트를 제공할 수 있다. 디지털 컴포넌트 객체는 제3자 애플리케이션 개발자 디바이스(108)와 다른 디지털 컴포넌트 제공자 디바이스(106)에 의해 제공될 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트 객체와 상호 작용할 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)가 디지털 컴포넌트 제공자 디바이스(106)를 식별하게 하거나, 디지털 컴포넌트 제공자 디바이스(106)로부터 서비스를 요청하고, 디지털 컴포넌트 제공자 디바이스(106)가 서비스를 수행하도록 지시하고, 디지털 컴포넌트 제공자 디바이스(106)로 정보를 전송하거나 디지털 컴포넌트 제공자 디바이스(106)와 관련된 상품 또는 서비스를 식별하게 하는 디지털 컴포넌트 객체와 관련된 하이퍼 링크 또는 다른 버튼을 선택하기 위한 지시를 수신할 수 있다.
디지털 컴포넌트 선택기(120)는 텍스트-음성 변환 시스템에 의해 처리될 수 있거나 디스플레이를 통해 제시될 수 있는 텍스트, 문자열 또는 문자를 포함하는 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기(120)는 파라메트릭방식으로 구동되는 텍스트-음성 변환 기술을 위해 구성된 파라미터화된 포맷인 디지털 컴포넌트를 선택할 수 있다. 일부 경우, 다이얼로그 데이터 구조는 SSML 포멧이거나 음성 파라미터로 구성될 수 있다. 데이터 처리 시스템(102)은 디지털 컴포넌트가 고유(native) 음성, 이미지, 또는 음향 지문(예를 들어, 디지털 컴포넌트는 디지털 컴포넌트가 없는 다이얼로그 데이터 구조에 비해 동일하거나 유사한 음향 특성을 갖음)으로 컴퓨팅 디바이스(104)의 사용자에게 제시될 수 있도록 디지털 컴포넌트를 요청한 애플리케이션의 음성 파라미터와 일치하도록 디지털 컴포넌트의 음성 파라미터를 구성할 수 있다. 디지털 컴포넌트 선택기(120)는 디스플레이 디바이스(132)를 통한 디스플레이를 위해 구성된 포맷인 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기(120)는 애플리케이션의 고유 출력 포맷과 매칭하도록 재포맷될 수 있는 디지털 컴포넌트를 선택할 수 있다.
디지털 컴포넌트 선택기(120)는 실시간 컨텐츠 선택 프로세스를 통해 다수의 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기(120)는 디지털 컴포넌트를 스코어링하고 순위화할 수 있고, 출력 병합기 컴포넌트(120)가 최고 순위의 디지털 컴포넌트를 선택할 수 있도록 다수의 디지털 컴포넌트를 출력 병합기 컴포넌트(120)에 제공할 수 있다.
디지털 컴포넌트 선택기(120)는 프리젠테이션을 위해 선택된 디지털 컴포넌트를 컴퓨팅 디바이스(104) 또는 로컬 디지털 어시스턴트(134) 또는 컴퓨팅 디바이스(104)상에서 실행되는 애플리케이션에 제공할 수 있다. 따라서, 디지털 컴포넌트 선택기(120)는 제3자 애플리케이션으로부터 패키지 데이터 객체 및 컨텐츠 요청을 수신하고, 컨텐츠 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 통해, 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택하고, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 컴퓨팅 디바이스로 전송할 수 있다. 일부 경우에, 디지털 컴포넌트 선택기(120)는 선택된 디지털 컴포넌트를 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션이 아닌 로컬 디지털 어시스턴트(134) 자체에 의한 프리젠테이션을 위해 로컬 디지털 어시스턴트(134)로 전송할 수 있다. 예를 들어, 로컬 디지털 어시스턴트(134)는 선택된 디지털 컴포넌트에 대응하는 오디오 신호를 재생 또는 출력할 수 있다.
데이터 처리 시스템(102)은 선택되고 제시된 디지털 컴포넌트 객체와의 상호 작용을 식별할 수 있고, 그 상호 작용을 디지털 컴포넌트 객체를 선택하기 위해 디지털 컴포넌트 선택기(120)에 의해 사용된 패키지 데이터 객체의 생성 또는 제공을 용이하게 하는 디지털 어시스턴트에 귀속(attribute)할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 컴퓨팅 디바이스를 통해 제시된 선택된 디지털 컴포넌트와의 상호 작용의 표시를 수신하도록 설계되고 구성된 속성 컴포넌트(122)를 포함하거나 그와 인터페이스하거나 그에 액세스하고, 그 상호 작용을 디지털 어시스턴트 컴포넌트(112) 또는 디지털 어시스턴트(134)에 귀속할 수 있다.
일부 경우, 로컬 디지털 어시스턴트(134)는 원격 디지털 어시스턴트(112)와 다른 유형의 디지털 어시스턴트일 수 있다. 로컬 디지털 어시스턴트(134)는 데이터 처리 시스템(102), 원격 디지털 어시스턴트(112) 또는 디지털 컴포넌트 선택기(120)의 엔티티 또는 관리자와 상이한 엔티티 또는 제3자에 의해 제공될 수 있다. 디지털 어시스턴트는 버전 또는 구성과 연관될 수 있다. 따라서, 속성 컴포넌트(122)는 그 상호 작용을 디지털 컴포넌트를 선택하는데 사용된 패키지 데이터 객체에 대응하는 대화와 연관된 디지털 어시스턴트에 귀속할 수 있다.
귀속을 수행하기 위해, 일부 경우, 오디오 패키징 컴포넌트(118)는 패키지 데이터 객체에, 제3자 애플리케이션을 시작하게 한 이전 오디오 입력을 야기한 대화에 참여한 디지털 어시스턴트의 식별자를 포함할 수 있다. 데이터 처리 시스템(102)은 디지털 어시스턴트 식별자의 테이블을 포함할 수 있다. 디지털 컴포넌트 선택기(120)는 디지털 컴포넌트 객체를 선택할 때 식별자를 유지하고, 선택된 디지털 컴포넌트 객체와 함께 식별자를 전달할 수 있다. 디지털 컴포넌트 객체와의 상호 작용이 발생하는 경우, 디지털 컴포넌트 객체는 상호 작용의 표시를 대화와 관련된 디지털 어시스턴트 컴포넌트의 식별자와 함께 데이터 처리 시스템(102) 또는 다른 엔티티로 전송할 수 있다. 따라서, 데이터 처리 시스템(102)은 디지털 컴포넌트와의 상호 작용을 식별된 디지털 어시스턴트에 귀속할 수 있다.
일부 경우, 오디오 패키징 컴포넌트(118)는 속성 컴포넌트(122)에 질의하여 디지털 어시스턴트 컴포넌트에 대한 식별자를 획득할 수 있다. 오디오 패키징 컴포넌트(118)는 패키지 데이터 객체의 생성 이전 또는 생성 중에 속성 컴포넌트(122)에 질의할 수 있다. 오디오 패키징 컴포넌트(118)는 속성 컴포넌트(122)로부터. 패키지 데이터 객체에 기초하여 선택된 디지털 컴포넌트와의 상호 작용에 패키지 데이터 객체를 귀속하는 것을 용이하게 할 수 있는 식별자를 패키지 데이터 객체에 포함하도록 요청할 수 있다. 식별자는 예를 들어 타임 스탬프, 대화 지속 시간, 디바이스 식별자 또는 디지털 어시스턴트 식별자 중 하나 이상을 포함할 수 있는 해시 함수에 기초한 해시값이거나 이를 포함할 수 있다. 속성 컴포넌트(122)는 n-튜플을 형성하고, n-튜플에 기초하여 해시값을 생성하고, 해시값을 디지털 어시스턴트 식별자 또는 해시값을 생성하는데 사용되는 다른 정보에 대한 매핑을 해시 테이블에 저장할 수 있다.
예를 들어, 오디오 패키징 컴포넌트(118)는 속성 컴포넌트(122)에, 대화에 참여한 디지털 어시스턴트의 이름 또는 유형, 디바이스 식별자 및 날짜 및 타임 스탬프를 제공할 수 있다. 속성 컴포넌트(122)는 디지털 어시스턴트의 이름 및 타임 스탬프로부터 생성된 해시값에 기초하여 고유 식별자를 생성할 수 있다. 속성 컴포넌트(122)는 데이터 저장소(124)에 유지되는 해시 테이블에, 해시값에 대한 타임 스탬프 및 디지털 어시스턴트 이름의 매핑을 저장할 수 있다. 속성 컴포넌트(122)는 오디오 패키징 컴포넌트(118)로부터의 질의에 응답하여, 패키지 데이터 객체에 포함하기 위한 고유 표시자 또는 해시값을 제공할 수 있다. 제3자 애플리케이션은 패키지 데이터 객체(예를 들어, 직렬화된 오페크 토큰으로서)를 수신하고 이를 컨텐츠 요청과 함께 디지털 컴포넌트 선택기(120)에 제공할 수 있다. 디지털 컴포넌트 선택기(120)는 패키지 데이터 객체에서 해시 값을 식별한 다음 선택된 디지털 컴포넌트 객체에 해시값을 임베드할 수 있다. 디지털 컴포넌트 객체는 컴퓨팅 디바이스(104)를 통해 제시될 수 있다. 디지털 컴포넌트 객체와의 상호 작용은 그 상호 작용의 표시가 해시값과 함께 데이터 처리 시스템(102)으로 전달되게 할 수 있다. 데이터 처리 시스템(102)은 해시값을 사용하여 해시 테이블에서 조회을 수행하여, 해시값에 대응하는 디지털 어시스턴트, 디바이스 식별자, 또는 날짜 및 시간 스탬프를 식별할 수 있다. 데이터 처리 시스템(102)은 상호 작용을 식별된 디지털 어시스턴트에 귀속할 수 있다.
일부 경우, 속성 컴포넌트(122)는 디지털 컴포넌트를 선택하기 위해 디지털 컴포넌트 선택기(120)에 의해 사용되는 선택 프로토콜 또는 프로세스를 조정(tune), 수정 또는 가중화할 수 있다. 속성 컴포넌트(122)는 디지털 컴포넌트 선택기(120)의 조정을 용이하게 하는 피드백 루프를 제공하여 선택을 개선할 수 있다. 예를 들어, 속성 컴포넌트(122)는 패키지 데이터 객체에 기초하여 선택된 디지털 컴포넌트가 디지털 컴포넌트 객체와의 상호 작용 또는 원하는 상호 작용을 야기하는 경우 패키지 데이터 객체 또는 이전 오디오 입력에서의 귀속의 가중치를 증가시킬 수 있다. 다른 예에서, 속성 컴포넌트(122)는 패키지 데이터 객체를 생성하는데 사용된 대화를 용이하게 하는 디지털 어시스턴트 디바이스의 유형에 기초하여 귀속의 가중치를 증가시킬 수 있다. 일부 경우, 디지털 컴포넌트 선택기(120)는 속성 컴포넌트(122)로부터의 피드백에 기초하여 가중치를 조정함으로써 선택 프로세스를 조정할 수 있다. 디지털 컴포넌트 선택기(120) 또는 속성 컴포넌트(122)는 피드백 정보를 기계 학습 알고리즘에 대한 입력 또는 기계 학습 알고리즘을 트레이닐하기 위한 입력으로 사용하여 선택 프로세스의 성능을 향상시킬 수 있다. 피드백 및 패키지 데이터 객체를 사용하여 선택 프로세스를 개선하면 원하는 상호 작용을 수신하기 전에 컴퓨팅 디바이스로 전송되는 디지털 컴포넌트의 수를 줄임으로써 보다 효율적인 컨텐츠 선택이 이루어질 수 있다.
도 2는 보안 처리 환경에서 데이터를 전송하기 위한 시스템(200)의 동작을 도시한 것이다. 시스템(200)의 동작은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 예를 들어, 시스템(200)의 동작은 데이터 처리 시스템(102), 컴퓨팅 디바이스(104), 제3자 애플리케이션 개발자 디바이스(108) 또는 디지털 컴포넌트 제공자 디바이스(106)에 의해 또는 그와 함께 수행될 수 있다. 동작(202)에서, 컴퓨팅 디바이스(104)는 대화를 지칭할 수 있다. 동작(202)는 202a, 202b 또는 202c 중 하나 이상을 포함하는 대화를 지칭할 수 있다. 대화에는 입력 오디오 및 출력 오디오가 포함될 수 있다. 입력 오디오는 하나 이상의 부분을 포함할 수 있고, 출력 오디오는 하나 이상의 부분을 포함할 수 있다. 예를 들어, 대화는 제1 입력(202a)으로 시작할 수 있다. 제1 입력(202a)은 컴퓨팅 디바이스(104)의 사용자로부터의 음성 입력을 포함할 수 있다. 예시적인 예에서, 제1 입력(202a)은 "결혼식에 참석하기 위해 새로운 옷을 구입해야 해"일 수 있다. 로컬 디지털 어시스턴트(134)는 제1 입력(202a)을 전처리 또는 파싱할 수 있다. 로컬 디지털 어시스턴트(134)는 제1 입력(202a)을 텍스트 또는 오디오 데이터 파일로 변환할 수 있다.
동작(204)에서, 로컬 디지털 어시스턴트(134)는 네트워크(105)를 통해, 변환 또는 포맷팅된 제1 입력(202a)을 데이터 처리 시스템(102)에 의해 실행되는 원격 디지털 어시스턴트(112)로 전송할 수 있다. 원격 디지털 어시스턴트(112)는 제1 입력을 처리하여 응답을 생성할 수 있는 NLP 컴포넌트(114)를 포함할 수 있다. 제1 입력에 대한 응답은 제1 출력(202b)으로 지칭될 수 있다. 예시적인 예에서, 제1 출력(202b)은 "새로운 옷을 찾기 위해 의류 소매점 A 또는 의류 소매점 B의 앱을 시작하시겠습니까?"일 수 있다. 원격 디지털 어시스턴트(112)는 앱 런처 컴포넌트(116)와 상호 작용하여 제1 입력(202a)에 기초하여 제안할 애플리케이션을 식별할 수 있다. 앱 런처 컴포넌트(116)는 어떤 앱이 컴퓨팅 디바이스(104)에 설치되어 있는지, 어떤 앱이 컴퓨팅 디바이스(104)에 설치될 수 있는지, 또는 어떤 앱이 설치 유무에 관계없이 컴퓨팅 디바이스(104)를 통해 실행 가능한지에 기초하여 앱을 제안할 수 있다. 동작(206)에서, 데이터 처리 시스템(102)은 제1 입력에 응답하여 제1 출력을 네트워크(105)를 통해 로컬 디지털 어시스턴트(134)에 제공할 수 있다. 로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)를 통해, 데이터 처리 시스템(102)으로부터 수신된 제1 출력(202b)을 제공할 수 있다. 제1 입력(202a) 및 제1 출력(202b)은 대화의 일부일 수 있다.
사용자는 제2 입력(202c)을 제공함으로써 제1 출력에 응답할 수 있다. 제2 입력(202c)은 음성 입력일 수 있다. 제2 입력(202c)은 제1 출력(202b)에 응답하는 것일 수 있다. 제2 입력(202c)은 제1 출력(202b)에서 원격 디지털 어시스턴트(112)에 의해 제안된 애플리케이션들 중 하나의 선택일 수 있다. 예를 들어, 제2 입력 202c는 "그래, 의류 소매점 A로 해 보자"일 수 있다. 동작(208)에서, 로컬 디지털 어시스턴트(134)는 제2 입력을 원격 디지털 어시스턴트(112)에 제공할 수 있다.
원격 디지털 어시스턴트(112)는 애플리케이션을 시작하기 위한 표시를 포함하는 제2 입력(202c)을 수신한다. 동작(210)은, 제2 입력(202c)의 수신에 응답하여, 원격 디지털 어시스턴트(112)는 선택된 애플리케이션을 호출하고 이전 오디오 입력의 표시를 제공할 수 있다. 예를 들어, 제2 입력(202c)을 수신하는 것에 응답하여, 원격 디지털 어시스턴트(112)는 선택된 의류 애플리케이션을 호출하기 위한 명령 또는 커맨드 생성할 수 있다. 앱 런처 컴포넌트(116)를 이용하여, 원격 디지털 어시스턴트(112)는 선택된 애플리케이션에 대한 포인터, 어드레스 또는 딥 링크를 식별하고, 애플리케이션을 시작하기 위한 커맨드, 명령 또는 링크를 포함하는 하나 이상의 데이터 패킷을 생성할 수 있다. 앱 런처 컴포넌트(116)는 애플리케이션을 다운로드 및 설치하기 위한 커맨드, 명령 또는 링크를 제공할 수 있다. 앱 런처 컴포넌트(116)는 서비스 구성으로서 웹 뷰 또는 소프트웨어에서 애플리케이션을 시작할 수 있다.
동작(210)에서, 제2 입력(202c)의 수신에 응답하여, 원격 디지털 어시스턴트(112)는 애플리케이션을 시작하게 한 이전 오디오 입력의 표시를 생성할 수 있다. 이전 오디오 입력은 제2 입력(202c) 이전의 입력 오디오를 포함한다. 이전 오디오 입력은 데이터 처리 시스템(102)이 선택된 애플리케이션을 시작하도록 직접 지시한 입력 오디오보다 더 많은 컨텍스트를 포함할 수 있다. 이전 오디오 입력은 제1 입력(202a)을 포함할 수 있다. 이전 오디오 입력은 제1 출력(202b)을 포함할 수 있다. 이전 오디오 입력은 제1 입력(202a) 및 제1 출력(202b)을 포함할 수 있다. 이전 오디오 입력은 대화 중 발생한 입력 또는 출력 텍스트, 오디오 또는 기타 통신 정보의 일부 또는 전부를 포함할 수 있다. 대화는 시간적 윈도우, 토픽, 논리 흐름, 위치 등에 기초하여 로컬 디지털 어시스턴트(134) 또는 원격 디지털 어시스턴트(112)에 의해 식별될 수 있는 통신 세션을 지칭하거나 포함할 수 있다.
제2 입력(202c)을 수신하는 것에 응답하여, 원격 디지털 어시스턴트(112)는 패키지 데이터 객체로서 이전 오디오 입력의 표시를 생성할 수 있다. 패키지 데이터 객체는 하나 이상의 컴포넌트를 포함할 수 있다. 오디오 패키징 컴포넌트(118)는 제1 입력(202a), 제1 출력(202b) 또는 제2 입력(202c) 중 하나 이상을 포함하도록 패키지 데이터 객체를 생성할 수 있다.
동작(212)에서, 원격 디지털 어시스턴트(112)는 네트워크(105)를 통해 하나 이상의 데이터 패킷, 커맨드 또는 명령을 로컬 디지털 어시스턴트(134)로 전송할 수 있다. 원격 디지털 어시스턴트(112)는 선택된 애플리케이션을 호출하기 위한 커맨드를 송신할 수 있고, 또한 이전 오디오 입력의 표시를 제공할 수 있다. 예를 들어, 원격 디지털 어시스턴트(112)는 대화의 일부 또는 전부를 포함하는 패키지 데이터 객체를 제공할 수 있다. 동작(214)에서, 동작(212)에서 전송된 데이터 패킷은 컴퓨팅 디바이스가 보안 처리 환경에서 애플리케이션을 시작하게 할 수 있다. 동작(212)에서 데이터 패킷을 수신하는 것에 응답하여, 로컬 디지털 어시스턴트(134)는 컴퓨팅 디바이스(104)가 동작(214)의 보안 처리 환경에서 애플리케이션을 시작하게 할 수 있다. 또한, 동작(214)에서, 로컬 디지털 어시스턴트(134)는 원격 디지털 어시스턴트(112)로부터 수신된 패키지 데이터 객체를 컴퓨팅 디바이스(104)에서 시작되는 애플리케이션으로 입력할 수 있다. 따라서, 동작(214)는 애플리케이션을 시작하고 데이터 처리 시스템(102)으로부터 수신된 이전 오디오 입력(또는 다른 컨텍스트 정보)을 입력하는 것을 포함할 수 있다.
애플리케이션(또는 앱(218))은 컴퓨팅 디바이스(102)의 보안 처리 환경(216)에서 시작될 수 있다. 로컬 디지털 어시스턴트(134)는 보안 처리 환경에서 앱(218)의 실행 동안 그 앱이 패키지 데이터 객체(220)에 액세스하거나 저장하도록 패키지 데이터 객체를 앱(218)으로 전달할 수 있다.
예를 들어, 애플리케이션은 패키지 데이터 객체, 토큰, 직렬화된 토큰, 직렬화된 오페크 토큰 또는 고유 식별자과 같은 포맷으로 이전 오디오 입력을 입력할 수 있는 소프트웨어 개발 키트("SDK")로 구성될 수 있다. 일부 경우, 애플리케이션의 SDK는 이전 오디오 입력을 처리하도록 구성되고, 일부 경우 SDK는 이전 오디오 입력을 처리하지 않고 이전 오디오 입력을 수신하도록 구성되지만, 이전 오디오 입력을 디지털 컴포넌트 선택기(120)로 전송할 수 있다. 보안 처리 환경에서 시작된 애플리케이션은 보안 처리 환경 외부에 저장된 정보 또는 데이터에 액세스할 수 없거나 액세스가 금지될 수 있다. 따라서, 일부 경우에, 애플리케이션은 로컬 디지털 어시스턴트(134) 또는 다른 컴포넌트로부터 이전 오디오 입력을 수신하는 방식으로구성된 SDK의 결과로서 이전 오디오 입력을 수신하거나 획득한다. 일부 경우, 로컬 디지털 어시스턴트(134)는 보안 처리 환경 또는 애플리케이션에 의해 액세스가 허가된 메모리의 다른 부분에 이전 오디오 입력을 저장할 수 있다.
동작(222)에서, 컴퓨팅 디바이스(104)에서 실행되는 애플리케이션은 컨텐츠 요청 또는 디지털 컴포넌트에 대한 요청을 트리거할 수 있다. 예를 들어, 애플리케이션에서 실행되는 태그 또는 스크립트는 이벤트 또는 조건에 응답하여 컨텐츠 요청을 트리거할 수 있다. 애플리케이션은 동작(212)에서 데이터 처리 시스템(102)으로부터 수신된 이전 오디오 입력을 포함하기 위해 컨텐츠 요청을 생성할 수 있다. 애플리케이션은 컴퓨팅 디바이스(104)를 통해, 패키지 데이터 객체와 함께 컨텐츠 요청을 디지털 컴포넌트 선택기(120)로 전송할 수 있다. 디지털 컴포넌트 선택기(120)는 데이터 처리 시스템(102)의 일부이거나 별도의 서버 또는 엔티티의 일부일 수 있다. 디지털 컴포넌트 선택기(120)는 원격 디지털 어시스턴트(112) 또는 데이터 처리 시스템(102)과 분리될 수 있다. 디지털 컴포넌트 선택기(120)는 별도의 엔티티에 의해 유지되거나 관리될 수 있다. 디지털 컴포넌트 선택기(120)는 대화를 포함하는 패키지 데이터 객체를 수신할 수 있기 때문에, 디지털 컴포넌트 선택기(120)는 디지털 컴포넌트 선택기(120)가 대화에 참여한 컴퓨팅 디바이스 또는 엔티티와 분리되어 있어도 대화에 기초하여 선택 프로세스를 수행할 수 있다.
디지털 컴포넌트 선택기(102)는 요청 및 이전 오디오 입력을 수신하고, 이전 오디오 입력을 사용하여 요청에 응답하고 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기(120)는 실시간 컨텐츠 선택 프로세스를 수행할 수 있다. 실시간 컨텐츠 선택 프로세스는 컨텐츠 요청과 관련된 정보(예를 들어, 키워드, 디바이스 식별자, 위치 정보)뿐만 아니라 이전 오디오 입력(예를 들어, 제1 입력(202a), 제1 출력(202b), 또는 제2 입력(202c)과 관련된 정보를 사용할 수 있다. 예를 들어, 디지털 컴포넌트 선택기(120)는 실시간 컨텐츠 선택 프로세스에 입력하기 위해 "결혼식에 참석하기 위해 새로운 옷을 구입해야 해"라는 제1 입력(202a)으로부터 하나 이상의 키워드를 생성할 수 있다. 키워드에는 "옷" 및 "결혼식"이 포함될 수 있다. 키워드에는 "참석" 또는 "구입" 또는 "새로운"이 포함될 수 있다. 이들 키워드 및 컨텐츠 요청에 기초하여, 디지털 컴포넌트 선택기(120)는 여행, 호텔, 항공편, 선물 또는 카드와 같은 "결혼식"과 관련된 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기(120)는 동작(224)에서 선택된 컨텐츠 아이템을 제공할 수 있다.
동작(226)에서, 속성 컴포넌트(122)는 컨텐츠 아이템과의 상호 작용의 표시를 수신할 수 있다. 상호 작용의 표시는 오디오 입력, 음성 입력, 마우스, 터치 스크린, 제스처 또는 키보드와 같은 컴퓨팅 디바이스(104)의 입력 디바이스를 통한 디지털 컴포넌트와의 상호 작용을 포함할 수 있다. 상호 작용의 표시는 예를 들어, 컨텐츠 아이템이 제시되거나, 오디오 출력을 통해 재생되거나, 디스플레이를 위해 제시되거나, 선택되거나, 마우스 롤오버(rollover)되거나, 일시 중지되거나, 전환을 초래하거나, 또는 다른 상호 작용을 포함할 수 있다.
도 3은 보안 처리 환경에서 데이터를 전송하기 위한 시스템(300)의 동작의 예시이다. 시스템(300)의 동작은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 예를 들어, 시스템(200)의 동작은 데이터 처리 시스템(102), 컴퓨팅 디바이스(104), 제3자 애플리케이션 개발자 디바이스(108) 또는 디지털 컴포넌트 제공자 디바이스(106)에 의해 또는 그와 함께 수행될 수 있다. 시스템(300)의 동작은 도 2의 동작도(200)에 도시된 하나 이상의 동작 또는 단계를 포함할 수 있다. 예를 들어, 도 3에 도시된 동작(202, 204, 206 및 208)는 도 2에 도시된 대응하는 동작(202, 204, 206 및 208)과 유사할 수 있다. 시스템(300)은 디지털 컴포넌트 선택기(120)를 포함하는 데이터 처리 시스템(102)을 포함할 수 있다. 디지털 컴포넌트 선택기(120)는 데이터 저장소(124)에 액세스할 수 있다.
동작(302)에서, 로컬 디지털 어시스턴트(134)로부터 제2 입력(208)을 수신하는 것에 응답하여, 원격 디지털 어시스턴트(112)는 선택된 애플리케이션을 시작하기 위한 명령을 제공하도록 앱 런처(116)에게 지시하고, 대화에 대응하는 고유 식별자를 생성하도록 오디오 패키징 컴포넌트(118)에게 지시할 수 있다. 도 2에 도시된 바와 같이, 대화를 포함하는 패키지 데이터 객체를 제공하기보다는, 원격 디지털 어시스턴트(112)는 대화 또는 패키지 데이터 객체에 대응하는 고유 식별자를 생성할 수 있다. 원격 디지털 어시스턴트(112)는 대화 또는 패키지 데이터 객체를 데이터 저장소(124)에 저장하고, 고유 식별자를 저장된 대화 또는 패키지 데이터 객체에 할당하여 다운 스트림 처리를 용이하게 할 수 있다.
동작(304)에서, 원격 디지털 어시스턴트(112)는 데이터 패킷 명령을 로컬 디지털 어시스턴트(134)에 전송하여 애플리케이션을 호출할 수 있다. 원격 디지털 어시스턴트(112)는 또한 대화를 위한 고유 식별자("ID")를 로컬 디지털 어시스턴트(134)로 전송하거나 제공할 수 있다. 동작(306)에서, 로컬 디지털 어시스턴트(134)는 보안 처리 환경(216)에서 애플리케이션을 시작하고 애플리케이션에 고유 식별자(308)를 전달할 수 있다. 애플리케이션(또는 앱(218))은 보안 처리 환경(216)에서 실행되어 고유 ID(308)에 액세스하거나 고유 ID(308)를 저장할 수 있다. 고유 ID(308)는 데이터 저장소(124)에 저장된 대화 또는 패키지 데이터 객체에 대응할 수 있다. 패키지 데이터 객체 대신에 고유 ID를 로컬 디지털 어시스턴트(134)로 전달하는 것은 도 2에 도시된 바와 같이 네트워크(105)를 통해 패키지 데이터 객체(220)를 전달하는 것에 비해 네트워크(105)를 통한 대역폭 이용을 감소시킬 수 있다.
동작(310)에서, 앱(218)은 고유 ID를 가진 컨텐츠 요청을 디지털 컴포넌트 선택기(120)에 제공할 수 있다. 고유 ID 또는 토큰이 이미 존재할 수 있다. 예를 들어, 고유 ID는 데이터 저장소(124)에 이미 존재하는 패키지 데이터 객체에 할당될 수 있다. 컨텐츠 요청은 앱(218)의 이벤트, 조건, 태그 또는 스크립트에 응답하여 트리거될 수 있다. 고유 ID 자체가 패키지 데이터 객체 또는 대화를 포함하지 않기 때문에, 동작(312)에서 디지털 컴포넌트 선택기(120)는 데이터 저장소(124)로부터 대화 또는 패키지 데이터 객체를 검색할 수 있다. 또는 예를 들어, 디지털 컴포넌트 선택기(120)는 고유 ID를 사용하여 데이터 저장소(124)에서 조회을 수행할 수 있다. 디지털 컴포넌트 선택기(120)는 고유 ID를 사용하여 데이터 저장소(124)에 질의할 수 있다. 디지털 컴포넌트 선택기(120)는 원격 디지털 어시스턴트(112)에 질의할 수 있고, 이어서 패키지 데이터 객체 또는 대화를 위해 데이터 저장소(124)에 질의할 수 있다.
일부 경우, 디지털 컴포넌트 선택기(120)는 데이터 처리 시스템(102)의 일부이거나 이와 관련될 수 있다. 디지털 컴포넌트 선택기(120)는 대화 또는 패키지 데이터 객체를 사용하여 컨텐츠 선택 프로세스를 수행하고 디지털 컴포넌트를 선택할 수 있다. 동작(220)에서, 디지털 컴포넌트 선택기(120)는 선택된 디지털 컴포넌트 또는 컨텐츠 아이템을 보안 처리 환경(216)에서 실행되는 앱(218)에 제공할 수 있다. 동작(222)에서, 속성 컴포넌트(122)는 컨텐츠 아이템과의 상호 작용의 표시를 수신하고, 이 상호 작용을 디지털 컴포넌트 또는 컨텐츠 아이템을 선택하는데 사용되는 대화를 용이하게 하는 디지털 어시스턴트(134) 또는 원격 디지털 어시스턴트(112) 또는 둘 다에 귀속한다.
도 4는 보안 처리 환경에서 데이터를 전송하는 방법의 예시이다. 방법(400)은 도 1,도 2 또는 도 9에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법(400)은 동작(402)에서 오디오 입력을 수신하는 데이터 처리 시스템을 포함할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신할 수 있다. 예를 들어, 하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트는 오디오 입력을 수신할 수 있다. 오디오 입력은 디지털 어시스턴트에 의해 촉진된 대화를 포함할 수 있다. 대화에는 하나 이상의 입력 및 출력이 포함될 수 있다. 대화는 오디오 기반, 텍스트 기반 또는 오디오와 텍스트의 조합 일 수 있다. 오디오 입력은 텍스트 입력, 또는 대화 정보를 제공할 수 있는 다른 유형의 입력을 포함할 수 있다. 데이터 처리 시스템은 대화에 대응하는 세션에 대한 오디오 입력을 수신할 수 있다. 데이터 처리 시스템은 하나 이상의 부분 또는 대량(bulk) 또는 일괄(batch) 업로드(예를 들어, 전송 횟수를 줄이기 위해 단일 전송으로 업로드된 대화의 여러 부분)로 오디오 입력을 수신할 수 있다.
동작(404)에서, 데이터 처리 시스템은 애플리케이션을 호출하기로 결정할 수 있다. 데이터 처리 시스템은 오디오 입력에 기초하여 제3자 애플리케이션을 호출하기로 결정할 수 있다. 데이터 처리 시스템은 오디오 입력에 기초하여 애플리케이션을 선택할 수 있다. 제3자 애플리케이션은 데이터 처리 시스템을 관리하는 엔티티와 상이한 엔티티에 의해 개발된 애플리케이션을 의미할 수 있다. 제3자는 데이터 처리 시스템을 집행, 관리 또는 유지하는 엔티티와 상이한 임의의 엔티티를 지칭할 수 있다. 일부 경우, 데이터 처리 시스템은 데이터베이스의 조회를 통해, 제3자 애플리케이션에 대한 딥 링크를 식별할 수 있다. 데이터 처리 시스템은 딥 링크를 사용하여 제3자 애플리케이션을 호출할 수 있다.
동작(406)에서, 데이터 처리 시스템은 패키지 데이터 객체를 생성할 수 있다. 데이터 처리 시스템은 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여 패키지 데이터 객체를 생성할 수 있다. 패키지 데이터 객체는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력을 포함할 수 있다. 예를 들어, 이전 오디오 입력은 디지털 어시스턴트에 의해 촉진되는 대화의 일부 또는 전부를 포함할 수 있다. 디지털 어시스턴트에 의해 촉진된 대화는 선택된 제3자 애플리케이션을 시작하기로 한 결정을 야기했을 수 있다. 데이터 처리 시스템은 하나 이상의 컴포넌트로 패키지 데이터 객체를 생성할 수 있다. 패키지 데이터 객체는 하나 이상의 컴포넌트, 구조, 필드 또는 객체를 포함할 수 있다. 예를 들어, 패키지 데이터 객체는 실제 대화, 대화를위한 객체 지향 포멧, 구조화된 대화, 키워드, 구조화된 대화 또는 이벤트 식별자를 포함할 수 있다.
동작(408)에서, 데이터 처리 시스템은 패키지 데이터 객체를 포워딩할 수 있다. 데이터 처리 시스템은 패키지 데이터 개체를 제3자 애플리케이션으로 포워딩할 수 있다. 데이터 처리 시스템은 디지털 어시스턴트 컴포넌트(예를 들어, 제3자 애플리케이션 또는 원격 디지털 어시스턴트를 실행하는 컴퓨팅 디바이스에서 실행되는 로컬 디지털 어시스턴트)를 통해 패키지 데이터 객체를 제3자 애플리케이션으로 포워딩할 수 있다. 데이터 처리 시스템은 대화를 용이하게 하는 디지털 어시스턴트를 통해 패키지 데이터 객체를 제3자 애플리케이션으로 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하도록 구성될 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 요청 및 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기는 컴퓨팅 디바이스를 통한 프리젠테이션을 위해 선택된 디지털 컴포넌트를 제공할 수 있다. 컴퓨팅 디바이스는 선택된 디지털 컴포넌트를 로컬 디지털 어시스턴트 또는 제3자 애플리케이션을 통해 제시할 수 있다. 컴퓨팅 디바이스는 선택된 디지털 컴포넌트를 오디오 출력, 텍스트 출력, 이미지 출력, 비디오 출력 또는 다른 출력 기술을 사용하여 제시할 수 있다.
일부 경우에, 선택된 디지털 컴포넌트와의 상호 작용은 디지털 컴포넌트 객체의 선택을 용이하게 하는데 사용되는 패키지 데이터 객체를 형성하는 대화를 용이하게 하는 디지털 어시스턴트에 귀속될 수 있다. 상호 작용을 디지털 어시스턴트에 귀속하는 것은, 컴포넌트가 피드백에 기초하여 선택 프로세스, 알고리즘 또는 자연어 처리를 조정, 가중화 또는 트레이닝하도록 함으로써 디지털 어시스턴트, 디지털 컴포넌트 선택기 또는 데이터 처리 시스템의 성능을 향상시킬 수 있다.
도 5는 보안 처리 환경에서 데이터를 전송하는 방법의 예시이다. 방법(500)은 도 1, 도 3 또는 도 9에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법(500)은 동작(502)에서 오디오 입력을 수신하는 데이터 처리 시스템을 포함할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신할 수 있다. 예를 들어, 하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트는 오디오 입력을 수신할 수 있다. 오디오 입력은 디지털 어시스턴트에 의해 촉진되는 대화를 포함할 수 있다. 대화에는 하나 이상의 입력 및 출력이 포함될 수 있다. 대화는 오디오 기반, 텍스트 기반 또는 오디오와 텍스트의 조합일 수 있다. 오디오 입력은 텍스트 입력, 또는 대화 정보를 제공할 수 있는 다른 유형의 입력을 포함할 수 있다. 데이터 처리 시스템은 대화에 대응하는 세션에 대한 오디오 입력을 수신할 수 있다. 데이터 처리 시스템은 하나 이상의 부분 또는 대량 또는 일괄 업로드(예를 들어, 전송 횟수를 줄이기 위해 단일 전송으로 업로드된 대화의 다수의 부)로 오디오 입력을 수신할 수 있다.
동작(504)에서, 데이터 처리 시스템은 애플리케이션을 호출하기로 결정할 수 있다. 데이터 처리 시스템은 오디오 입력에 기초하여 제3자 애플리케이션을 호출하기로 결정할 수 있다. 데이터 처리 시스템은 오디오 입력에 기초하여 애플리케이션을 선택할 수 있다. 제3자 애플리케이션은 데이터 처리 시스템을 관리하는 엔티티와 상이한 엔티티에 의해 개발된 애플리케이션을 지칭할 수 있다. 제3자는 데이터 처리 시스템을 집행, 관리 또는 유지하는 엔티티와 상이한 임의의 엔티티를 지칭할 수 있다. 일부 경우, 데이터 처리 시스템은 데이터베이스 조회를 통해 제3자 애플리케이션에 대한 딥 링크를 식별할 수 있다. 데이터 처리 시스템은 딥 링크를 사용하여 제3자 애플리케이션을 호출할 수 있다.
동작(506)에서, 데이터 처리 시스템은 고유 식별자를 생성할 수 있다. 고유 식별자는 애플리케이션이 호출 또는 시작되게 한 디지털 어시스턴트에 의해 촉진된 이전 오디오 입력 또는 대화에 할당될 수 있다. 데이터 처리 시스템은 제3자 애플리케이션을 호출하기로 결정한 것에 응답하여 고유 식별자를 생성할 수 있다. 데이터 처리 시스템은 데이터 처리 시스템 또는 데이터 저장소에 하나 이상의 포맷으로 이전 오디오 입력을 저장하고, 이전 오디오 입력에 고유 식별자를 할당할 수 있다. 일부 경우, 디지털 어시스턴트 컴포넌트 또는 데이터 처리 시스템은 이전 오디오 입력에 대한 이벤트 식별자를 생성하고, 데이터 처리 시스템에 저장된 룩업 테이블에 이전 오디오 입력에 대한 이벤트 식별자를 고유 식별자에 맵핑할 수 있다.
동작(508)에서, 데이터 처리 시스템은 고유 식별자를 컴퓨팅 디바이스로 포워딩할 수 있다. 데이터 처리 시스템은 고유 식별자를 디지털 어시스턴트에 의해 호출되거나 시작된 제3자 애플리케이션으로 포워딩할 수 있다. 데이터 처리 시스템은 고유 식별자를 디지털 어시스턴트로 포워딩할 수 있다. 디지털 어시스턴트는 고유 식별자를 제3자 애플리케이션으로 전달할 수 있다. 예를 들어, 데이터 처리 시스템은 고유 식별자를 컴퓨팅 디바이스에서 실행되는 로컬 디지털 어시스턴트로 포워딩할 수 있고, 로컬 디지털 어시스턴트는 보안 처리 환경에서 시작되거나 실행되는 제3자 애플리케이션으로 고유 식별자를 전달할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 고유 식별자를 데이터 처리 시스템에 전송할 수 있다. 제3자 애플리케이션은 컨텐츠 요청과 함께 고유 식별자를 전송할 수 있다.
동작(510)에서, 데이터 처리 시스템은 이전 오디오 입력을 식별할 수 있다. 데이터 처리 시스템은 고유 식별자를 사용하여 이전 오디오 입력을 검색, 획득 또는 식별할 수 있다. 데이터 처리 시스템은 데이터베이스 또는 데이터 저장소에서 조회를 수행하여 이전 오디오 입력을 검색할 수 있다. 이전 오디오 입력은 패키지 데이터 객체 또는 텍스트 대화 형태일 수 있다.
동작(512)에서, 데이터 처리 시스템은 이전 오디오 입력을 디지털 컴포넌트 선택기에 제공할 수 있다. 디지털 컴포넌트 선택기는 이전 오디오 입력을 사용하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 요청 및 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택할 수 있다.
데이터 처리 시스템은 컴퓨팅 디바이스로부터 수신된 고유 식별자 및 컨텐츠 요청을 디지털 컴포넌트 선택기에 제공할 수 있다. 디지털 컴포넌트 선택기는 컨텐츠 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 통해, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 선택기는 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 컴퓨팅 디바이스로 전송할 수 있다.
데이터 처리 시스템은 컴퓨팅 디바이스를 통한 프리젠테이션을 위해, 선택된 디지털 컴포넌트를 이전 오디오 입력에 기초하여 전송할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스를 통해 제시된 디지털 컴포넌트와의 상호 작용의 표시를 수신할 수 있다. 데이터 처리 시스템은 디지털 컴포넌트와의 상호 작용을 디지털 어시스턴트 컴포넌트에 귀속할 수 있다.
도 6은 보안 처리 환경에서 데이터를 전송하는 방법의 예시이다. 방법(600)은 도 1, 도 2, 도 3 또는 도 9에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법(600)은 동작(602)에서 보안 처리 환경을 설정하는 컴퓨팅 디바이스를 포함할 수 있다. 컴퓨팅 디바이스는 컴퓨팅 디바이스의 메모리의 적어도 일부에 보안 처리 환경을 설정할 수 있다. 일부 경우, 보안 처리 환경을 설정하는 것은 액세스를 제한하도록 설계 또는 구성된 구성 설정을 식별, 획득, 액세스 또는 제공하는 것을 지칭할 수 있다. 예를 들어, 애플리케이션은 컴퓨팅 디바이스의 하나 이상의 기능 또는 데이터에 액세스하는 것이 제한될 수 있다. 애플리케이션이 액세스할 수 있는 것을 제한함으로써, 컴퓨팅 디바이스는 컴퓨팅 디바이스에 저장되거나 실행되는 다른 컴포넌트 또는 데이터를 보호할 수 있다.
동작(604)에서, 컴퓨팅 디바이스에 의해 실행되는 로컬 디지털 어시스턴트는 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 식별할 수 있다. 오디오 입력은 대화의 하나 이상의 부분을 포함할 수 있다. 오디오 입력은 단어, 문구, 소리, 키워드, 이벤트, 또는 대화와 관련된 기타 정보를 포함할 수 있다. 대화에는 커맨드, 질의, 명령 또는 요청이 포함될 수 있다. 오디오 입력에는 다이얼로그(대화 상자)가 포함될 수 있다. 오디오 입력은 음성 입력을 포함할 수 있다. 오디오 입력은 컴퓨팅 디바이스의 사용자와 디지털 어시스턴트 사이의 양방향 대화를 지칭할 수 있다. 디지털 어시스턴트는 로컬 디지털 어시스턴트일 수 있다. 디지털 어시스턴트는 서버 또는 데이터 처리 시스템에서 실행되거나 유지되는 원격 디지털 어시스턴트를 포함할 수 있다. 로컬 디지털 어시스턴트는 대화를 용이하게 하거나 수행하기 위해 원격 디지털 어시스턴트와 통신할 수 있다.
동작(606)에서, 로컬 디지털 어시스턴트는 애플리케이션을 호출할 수 있다. 로컬 디지털 어시스턴트는 오디오 입에 기초하여 애플리케이션을 호출할 수 있다. 로컬 디지털 어시스턴트는 원격 디지털 어시스턴트로부터 명령을 수신하여, 오디오 입력을 기반으로 애플리케이션을 호출할 수 있다. 로컬 디지털 어시스턴트 컴포넌트는 데이터 처리 시스템으로부터의 커맨드 또는 명령에 응답하여 애플리케이션(예를 들어, 제3자 애플리케이션)을 호출할 수 있다. 애플리케이션을 호출하는 것은 애플리케이션을 열거나 애플리케이션을 시작하거나 애플리케이션을 실행하는 것을 포함하거나 지칭할 수 있다. 로컬 디지털 어시스턴트는 보안 처리 환경에서 제3자 애플리케이션을 호출하여 제3자 애플리케이션이 컴퓨팅 디바이스의 특정 기능 또는 데이터에 액세스하거나 이를 사용하지 못하도록 제한할 수 있다.
동작(608)에서, 로컬 디지털 어시스턴트는 이전 오디오 입력의 표시를 획득할 수 있다. 로컬 디지털 어시스턴트는 제3자 애플리케이션의 호출에 응답하여 이전 오디오 입력의 표시를 획득할 수 있다. 이전 오디오 입력의 표시는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크에 의해 감지된 대화 또는 오디오 입력을 지칭할 수 있다. 예를 들어, 식별된 오디오 입력은 제1 부분 및 제2 부분을 포함할 수 있다. 제1 부분은 제2 부분 이전일 수 있다. 오디오 입력의 제2 부분은 애플리케이션을 시작하기 위한 커맨드 또는 사용자로부터의 요청을 포함할 수 있는 반면, 제1 부분은 애플리케이션을 시작하기 위한 명령 이전의 오디오 입력을 포함할 수 있다.
이전 오디오 입력의 표시는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 포함할 수 있다. 이전 오디오 입력의 표시는 데이터 처리 시스템의 데이터 저장소에 저장된 대화 또는 패키지 데이터 객체에 매핑되는 고유 식별자를 포함할 수 있다.
일부 경우, 로컬 디지털 어시스턴트 컴포넌트는 제3자 애플리케이션의 호출에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 생성할 수 있다. 로컬 디지털 어시스턴트는 패키지 데이터 객체 또는 고유 식별자를 생성하기 위해 데이터 처리 시스템의 하나 이상의 기능 또는 컴포넌트를 포함하거나 구성할 수 있다.
동작(610)에서, 로컬 디지털 어시스턴트는 이전 오디오 입력을 애플리케이션으로 포워딩할 수 있다. 로컬 디지털 어시스턴트는 이전 오디오 입력을 애플리케이션으로 전달할 수 있다. 로컬 디지털 어시스턴트는 이전 오디오 입력의 표시를 로컬 디지털 어시스턴트에 의해 호출된 제3자 애플리케이션으로 포워딩할 수 있다. 로컬 디지털 어시스턴트는 애플리케이션을 시작할 때, 애플리케이션을 시작하는 동안 또는 애플리케이션을 시작한 후 이전 오디오 입력 표시를 포워딩할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행하기 위해 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기로 전송할 수 있다.
도 7은 일 예에 따른 상태 정보를 정보 리소스에 제공하는 방법의 예시이다. 방법(700)은 도 1, 도 2, 도 3 또는 도 9에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법은 하나 이상의 프로세서 및 하나 이상의 메모리 디바이스에 의해 수행될 수 있으며, 하나 이상의 메모리 디바이스는 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 방법(700)은 하나 이상의 데이터 처리 시스템(102), 컴퓨팅 디바이스(104), 원격 디지털 어시스턴트(112), 디지털 컴포넌트 선택기(120), 로컬 디지털 어시스턴트(134), 제3자 애플리케이션 개발자 디바이스(108) 또는 디지털 컴포넌트 제공자 디바이스(106) 중 하나 이상에 의해 수행될 수 있다. 방법(700)은 사용자가 리소스를 방문할 때 웹 사이트와 같은 온라인 리소스에 상태 정보를 제공할 수 있다. 사용자가 웹 사이트를 방문할 때, 방문되는 웹 사이트는 하나 이상의 추가 리소스(디지털 컴포넌트 제공자, 컨텐츠 제공자, 맵 서버와 같은 정보 제공자 등)와 통신하여, 컴퓨팅 디바이스를 통해 사용자에게 제공하기 위해 웹 페이지를 구성(assemble)할 수 있다. 웹 사이트를 구성하기 위한 웹 사이트와 추가 리소스 간의 통신 및 웹 사이트를 사용자에게 제공하기 위해 웹 사이트와 사용자의 디바이스간의 통신은 네트워크 리소스와 전송 대역폭을 모두 소비한다. 또한, 사용자에게 제시된 웹 페이지가 사용자의 요구 사항을 만족시키지 않으면 사용자는 변경을 요청하는데, 이는 수정된 버전의 웹 페이지를 구성하기 위해 웹 사이트와 리소스 사이의 추가 통신 및 그 수정된 버전의 웹 페이지를 사용자의 디바이스에 다시 제시하는 것이 필요하게 되어 추가 네트워크 리소스가 소비된다.
동작(702)에서, 방법은 하나 이상의 프로세서에 의해 구현된 디지털 어시스턴트(또는 다른 가상 어시스턴트)에서, 사용자로부터 요청을 수신하는 단계를 포함한다. 디지털 어시스턴트는 사용자로부터 요청을 수신할 수 있다. 요청은 웹 사이트 또는 애플리케이션과 같은 리소스에 대한 것일 수 있다. 디지털 어시스턴트는 음성 구동 인터페이스를 통해 요청을 수신할 수 있다. 디지털 어시스턴트는 로컬 컴퓨팅 디바이스 또는 데이터 처리 시스템에서 실행될 수 있다. 디지털 어시스턴트는 로컬 디지털 어시스턴트 및 원격 디지털 어시스턴트 모두를 포함할 수 있다.
동작(704)에서, 방법은 요청에 관련하여 가상 어시스턴트에 의해 사용자와 상호 작용하는 단계를 포함한다. 디지털 어시스턴트는 요청에 기초하여 또는 요청에 추가로 사용자와 상호 작용할 수 있다. 상호 작용은 예를 들어 대화를 용이하게 하는 것을 포함할 수 있다. 상호 작용은 요청에 응답하여 피드백 또는 정보를 제공하는 것을 포함할 수 있다.
동작(706)에서, 방법은 디지털 어시스턴트에 의해 그리고 상호 작용에 기초하여, 사용자를 제1 리소스로 안내(direct)하는 단계를 포함한다. 디지털 어시스턴트는 리소스를 열거나 호출하거나 시작하거나 실행할 수 있다.
동작(708)에서, 방법은, 디지털 어시스턴트에 의해, 안내로 이끄는 사용자와의 상호 작용을 나타내고 그리고 디지털 어시스턴트가 사용자를 제1 리소스로 안내하기 전에 발생한 상호 작용에서의 적어도 하나의 이벤트를 나타내는 데이터 객체를 생성하는 단계를 포함한다. 데이터 객체는 사용자와 디지털 어시스턴트 간의 대화 또는 상호 작용의 패키지 데이터 객체를 지칭할 수 있다. 데이터 객체는 대화의 토큰 또는 고유 식별자를 포함할 수 있다.
동작(710)에서, 방법은 디지털 어시스턴트에 의해, 데이터 객체를 제1 리소스로 포워딩하는 단계를 포함한다. 디지털 어시스턴트는 데이터 객체(예를 들어, 패키지 데이터 객체, 토큰 또는 고유 ID)를 리소스(예를 들어, 애플리케이션)으로 전달하거나 포워딩할 수 있다. 그런 다음 제1 리소스는 데이터 객체로부터 상호 작용에 대한 정보를 획득할 수 있다. 제1 리소스는 제2 리소스와 통신하여, 데이터 객체의 정보에 기초하여 사용자에게 제시하기 위한 컨텐츠를 획득할 수 있다.
일부 경우에, 제2 리소스는 제1 리소스로부터 데이터 객체를 수신할 수 있다. 제2 리소스는 데이터 객체로부터 상호 작용에 관한 정보를 획득할 수 있다. 제2 리소스는 제1 리소스와 상이할 수 있다. 제2 리소스는 제1 리소스와 비교할 때 다른 애플리케이션 또는 웹 사이트일 수 있다. 데이터 객체는 제1 리소스가 상호 작용에 관한 정보를 식별하기 위해 데이터 객체를 분석하거나 처리할 수 없도록 제1 리소스에 대해 오페크할 수 있다.
예를 들어, 사용자는 사용자와 디지털 어시스턴트 사이의 상호 작용의 결과로서 제1 리소스를 방문할 수 있다. 상호 작용의 세부 사항은 사용자가 제1 리소스를 방문하는 이유에 대한 상태 정보를 제공할 수 있다. 상태 정보는 사용자를 리소스로 안내하게 한 선행 이벤트 또는 사용자 상호 작용에 관련된 정보를 포함하거나 지칭할 수 있다. 디지털 어시스턴트는 사용자와의 상호 작용을 나타내는 데이터 객체를 제공할 수 있다. 결과적으로, 사용자를 제1 리소스로 안내하게 하는 사용자의 상호 작용에 관한 정보는 제1 리소스 또는 하나 이상의 다른 리소스에 이용 가능하게될 수 있다. 이 정보는 예를 들어 웹 페이지를 구성하고 웹 페이지를 사용자에게 보다 효율적으로 제시하는 절차를 만드는데 사용될 수 있다. 웹 페이지를 구성하기 위해 이 정보를 사용하는 것은, 예를 들어, 제1 리소스 또는 다른 리소스(들)가 디지털 어시스턴트에 의해 제공되는 데이터 객체로부터 이 정보를 획득할 수 있기 때문에, 사용자 어시스턴트가 이미 디지털 어시스턴트에 제공한 정보를 사용자 디바이스가 다시 공급할 필요를 피할 수 있으므로, 필요한 네트워크 리소스의 감소를 제공할 수 있다. 부가적으로 또는 대안적으로, 웹 페이지를 구성하는데 필요한 제1 리소스와 다른 리소스 사이의 통신은 데이터 객체로부터의 정보를 이용함으로써 감소될 수 있다.
데이터 객체 또는 패키지 데이터 객체는 예를 들어 i) 상호 작용의 요약, ii) 컴팩트 버전의 상호 작용, iii) 상호 작용의 주요 이벤트 리스트, 또는 iv) 상호 작용의 완전하거나 실질적으로 완전한 기록 중 하나를 나타낼 수 있다.
일부 경우, 데이터 객체를 리소스에 제공하기 보다, 디지털 어시스턴트는 데이터 객체에 대응하는 고유 ID를 리소스에 제공할 수 있다. 디지털 어시스턴트는 데이터 객체를 데이터 저장소에 저장하고 그 데이터 객체를 고유 ID에 맵핑할 수 있다. 디지털 어시스턴트는 서버에서 데이터 객체를 검색할 수 있는 고유 식별자를 제1 리소스로 전송한다.
예를 들어, 방법은 디지털 어시스턴트에서, 사용자로부터 요청을 수신하는 단계와; 디지털 어시스턴트에 의해 사용자와, 요청과 관련하여 상호 작용하는 단계와; 디지털 어시스턴트에 의해 상호 작용에 기초하여, 사용자를 제1 리소스로 전송하는 단계와; 디지털 어시스턴트에 의해, 전송으로 이끄는 사용자와의 상호 작용을 나타내는 데이터 객체를 생성하는 단계와; 디지털 어시스턴트에 의해, 상호 작용을 식별하는 식별자를 생성하는 단계와; 디지털 어시스턴트에 의해, 식별자를 제1 리소스로 포워딩하는 단계와; 그리고 디지털 어시스턴트에 의해, 데이터 객체를 리소스로부터 원격 서버로 포워딩하는 단계를 포함한다.
방법은 식별자로부터 원격 서버를 식별하도 데이터 객체에 대한 요청을 원격 서버에 전송하는 제1 리소스을 포함할 수 있다. 제1 리소스는 데이터 객체로부터 상호 작용에 관한 정보를 획득할 수 있다. 제1 리소스는 제2 리소스와 통신하여 데이터 객체의 정보에 기초하여 사용자에게 제시하기 위한 컨텐츠를 획득할 수 있다.
일부 경우, 제2 리소스는 제1 리소스로부터 식별자를 수신하고, 그 식별자로부터 원격 서버를 식별할 수 있다. 제2 리소스는 원격 서버로부터 데이터 개체를 획득할 수 있다. 제2 리소스는 데이터 객체로부터 상호 작용에 관한 정보를 획득할 수 있다. 데이터 개체는 제1 리소스에 대해 오페크할 수 있다.
제2 리소스는 상호 작용에 관한 획득된 정보에 기초하여, 사용자에게 제시하기 위해 하나 이상의 컨텐츠 아이템을 제1 리소스로 전송할 수 있다. 컨텐츠 아이템은 웹 페이지 또는 다른 그래픽 사용자 인터페이스 또는 오디오 인터페이스에 포함될 수 있다.
도 8은 보안 처리 환경에서 데이터를 전송하는 방법의 예시이다. 방법(800)은 도 1, 도 2, 도 3 또는 도 9에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법(800)은 동작(802)에서 이전 오디오 입력의 표시를 수신하는 단계를 포함할 수 있다. 컴퓨팅 디바이스에서 실행되는 제3자 애플리케이션은 이전 오디오 입력의 표시를 수신할 수 있다. 제3자 애플리케이션은 컴퓨팅 디바이스에서 실행되는 로컬 디지털 어시스턴트로부터 이전 오디오 입력의 표시를 수신할 수 있다. 제3자 애플리케이션은 소프트웨어 개발 키트의 응용 프로그래밍 인터페이스로 구성하여 제3자 애플리케이션이 이전 오디오 입력 표시를 수신할 수 있도록 한다. 이전 오디오 입력은 제3자 애플리케이션을 호출하게 하는 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력에 대응할 수 있다.
로컬 디지털 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신하여, 입력 오디오 신호를 처리하여 제3자 애플리케이션을 호출할 수 있다. 예를 들어, 로컬 디지털 컴포넌트는 최종 사용자와의 대화를 용이하게 할 수 있다. 로컬 디지털 어시스턴트는 원격 디지털 어시스턴트와 통신하여 대화를 용이하게 할 수 있다. 예를 들어, 로컬 디지털 어시스턴트는 최종 사용자로부터의 오디오 입력을 검출하고, 질의를 생성하고, 그 질의를 원격 디지털 어시스턴트로 전송하고, 원격 디지털 어시스턴트로부터 질의에 대한 응답을 수신하고 그리고 최종 사용자에게 응답을 제시할 수 있다.
제3자 애플리케이션은 컴퓨팅 디바이스에 의해 관리되는 보안 처리 환경에서 컴퓨팅 디바이스상에서 실행될 수 있다. 일부 경우, 보안 처리 환경은 제3자 애플리케이션에 대한 액세스를 제한하도록 설계 또는 구성된 구성 설정을 식별, 획득, 액세스 또는 제공하는 것을 지칭할 수 있다. 예를 들어, 제3자 애플리케이션은 컴퓨팅 디바이스의 하나 이상의 기능이나 데이터에 액세스하지 못하도록 제한될 수 있다. 애플리케이션이 액세스할 수 있는 것을 제한함으로써, 컴퓨팅 디바이스는 컴퓨팅 디바이스에 저장되거나 실행되는 다른 컴포넌트 또는 데이터를 보호할 수 있다. 보안 처리 환경은 초기에 로컬 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성될 수 있다.
일부 경우, 이전 오디오 입력의 표시는 패키지 데이터 객체를 포함할 수 있다. 패키지 데이터 객체는 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함할 수 있다. 패키지 데이터 객체는 구조화된 대화, 직렬화된 오페크 토큰 또는 이벤트 식별자를 포함할 수 있다. 패키지 데이터 객체는 제3자 애플리케이션의 호출에 응답하여 로컬 디지털 어시스턴트 컴포넌트에 의해 생성될 수 있다.
일부 경우, 이전 오디오 입력의 표시는 이전 오디오 입력 또는 패키지 데이터 객체에 대응하는 고유 식별자를 포함할 수 있다. 예를 들어, 패키지 데이터 객체, 이전 오디오 입력 또는 대화는 데이터 처리 시스템과 같은 원격 서버에 저장될 수 있다. 데이터 처리 시스템은 고유 식별자의 이전 오디오 입력(또는 패키지 데이터 객체 또는 대화)에 대한 매핑을 포함할 수 있다. 데이터 처리 시스템은 패키지 데이터 개체가 아닌 고유 식별자를 제3자 애플리케이션에 제공할 수 있다. 대화 자체(또는 패키지 데이터 객체 또는 구조화된 대화)가 아닌 또는 대신에 고유 식별자를 제공하면 컴퓨팅 디바이스의 네트워크 대역폭 사용량 또는 메모리 사용량을 줄일 수 있다.
동작(804)에서, 제3자 애플리케이션은 이전 오디오 입력의 수신된 표시를 메모리에 저장할 수 있다. 제3자 애플리케이션은 수신된 이전 오디오 입력의 표시를 컴퓨팅 디바이스의 메모리에 저장할 수 있다. 일부 경우, 제3자 애플리케이션은 제3자 애플리케이션에서 사용하기 위해 특정 메모리만 할당한 보안 처리 환경에서 실행될 수 있으므로, 제3자 애플리케이션은 보안 처리 환경 또는 그의 메모리에 이전 오디오 입력의 표시를 저장할 수 있다.
동작(806)에서, 제3자 애플리케이션은 컨텐츠 요청을 생성할 수 있다. 제3자 애플리케이션은 이벤트에 응답하여 컨텐츠 요청을 생성할 수 있다. 이벤트는 제3자 애플리케이션에서 발생할 수 있다. 이벤트는 사용자 상호 작용을 포함하거나 지칭할 수 있다. 이벤트는 페이지, 레벨, 동작, 화면, 조건, 시간 조건, 지리적 조건, 센서 입력, 또는 제3자 애플리케이션의 기타 트리거가 포함되거나 지칭할 수 있다. 일부 경우, 제3자 애플리케이션 개발자는 이벤트를 구성, 구축 또는 설정할 수 있다. 제3자 애플리케이션에는 제3자 애플리케이션에 내장된 스크립트가 포함되어 이벤트에 응답하여 컨텐츠 요청을 트리거하거나 생성한다.
동작(808)에서, 제3자 애플리케이션은 이전 오디오 입력의 표시를 검색할 수 있다. 제3자 애플리케이션은 이벤트에 응답하여 이전 오디오 입력의 표시를 검색할 수 있다. 제3자 애플리케이션은 컨텐츠 요청의 생성에 응답하여 이전 오디오 입력의 표시를 검색할 수 있다. 제3자 애플리케이션은 메모리로부터 이전 오디오 입력 표시를 검색할 수 있다. 제3자 애플리케이션은 보안 처리 환경으로부터 이전 오디오 입력 표시를 검색할 수 있다.
일부 경우, 제3자 애플리케이션은 이전 오디오 입력의 표시를 검색하고 이전 오디오 입력의 표시를 포함하는 컨텐츠 요청을 생성할 수 있다. 예를 들어, 컨텐츠 요청을 생성하는 것은 이전 오디오 입력의 표시를 검색 한 다음, 그 표시를 컨텐츠 요청과 결합 또는 임베딩하거나, 컨텐츠 요청을 갖는 이전 오디오 입력의 표시를 포함하는 것을 포함할 수 있다.
동작(810)에서, 제3자 애플리케이션은 컨텐츠 요청 및 표시를 제공한다. 컨텐츠 요청은 이전 오디오 입력의 표시를 포함할 수 있다. 제3자 애플리케이션은 하나 이상의 전송 또는 데이터 패킷을 사용하여 컨텐츠 요청 및 이전 오디오 입력의 표시를 제공할 수 있다. 제3자 애플리케이션은 컨텐츠 요청 및 이전 오디오 입력의 표시를 디지털 컴포넌트 선택기에 제공할 수 있다. 컨텐츠 요청의 수신에 응답하여, 디지털 선택기는 컨텐츠 요청 및 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행할 수 있다.
일부 경우, 이전 오디오 입력의 표시는 고유 식별자를 포함할 수 있다. 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트로부터 이전 오디오 입력에 대응하는 고유 식별자를 수신할 수 있다. 제3자 애플리케이션은 제3자 애플리케이션에서 생성된 컨텐츠 요청에 응답하여, 고유 식별자를 디지털 컴포넌트 선택기에 제공할 수 있다. 제3자 애플리케이션은 고유 식별자와 컨텐츠 요청을 디지털 컴포넌트 선택기로 전송할 수 있다. 디지털 컴포넌트 선택기는 고유 식별자를 사용하여 데이터베이스에서 조회를 수행하여 이전 오디오 입력을 식별할 수 있다. 제3자 애플리케이션은 프리젠테이션을 위해 디지털 컴포넌트 선택기로부터, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신할 수 있다.
제3자 애플리케이션은 선택된 디지털 컴포넌트를 수신할 수 있다. 제3자 애플리케이션은 컨텐츠 요청의 전송 및 이전 오디오 입력의 표시에 후속하여 선택된 디지털 컴포넌트를 수신할 수 있다. 제3자 애플리케이션은 컴퓨팅 디바이스를 통해 디지털 컴포넌트를 제시할 수 있다. 제3자 애플리케이션은 컴퓨팅 디바이스의 오디오 출력을 통해 디지털 컴포넌트를 제공할 수 있다.
일부 경우, 제3자 애플리케이션은 선택되고 수신된 디지털 컴포넌트를 프리젠테이션을 위해 다른 애플리케이션 또는 디바이스로 전송할 수 있다. 예를 들어, 제3자 애플리케이션은 제1 컴퓨팅 디바이스에서 실행되는 첫 번째 제3자 애플리케이션일 수 있다. 첫 번째 제3자 애플리케이션은 두 번째 제3자 애플리케이션과 통신중일 수 있다. 두 번째 제3자 애플리케이션은 동일한 제1 컴퓨팅 디바이스 또는 제1 컴퓨팅 디바이스와 별개인 제2 컴퓨팅 디바이스에서 실행될 수 있다. 두 번째 제3자 애플리케이션은 첫 번째 제3자 애플리케이션에 비해 다른 유형의 애플리케이션일 수 있다. 첫 번째 및 두 번째 제3자 애플리케이션은 동일한 애플리케이션 개발자가 제공할 수 있다. 두 번째 제3자 애플리케이션은 첫 번째 제3자 애플리케이션과 관련될 수 있다. 두 번째 제3자 애플리케이션은 첫 번째 제3자 애플리케이션의 버전일 수 있다. 예를 들어, 첫 번째 제3자 애플리케이션은 스마트 폰용으로 구성될 수 있는 반면, 두 번째 제3자 애플리케이션은 랩탑 또는 스마트 워치용으로 구성될 수 있다.
첫 번째 제3자 애플리케이션은 수신된 디지털 컴포넌트를 두 번째 제3자 애플리케이션으로 전송하여 두 번째 제3자 애플리케이션이 디지털 컴포넌트를 제시하게 할 수 있다. 첫 번째 제3자 애플리케이션은 수신된 디지털 컴포넌트를 통신 채널을 통해 전송할 수 있다. 일부 경우, 첫 번째 제3자 애플리케이션은 명령을 컴퓨팅 디바이스, 로컬 디지털 어시스턴트, 원격 디지털 어시스턴트, 디지털 컴포넌트 선택기 또는 데이터 처리 시스템으로 전송할 수 있다. 명령은 선택된 디지털 컴포넌트를 두 번째 제3자 애플리케이션으로 전송하기 위한 명령을 포함할 수 있다. 예를 들어, 첫 번째 제3자 애플리케이션이 제2 컴퓨팅 디바이스의 두 번째 컴퓨팅 디바이스로 디지털 컴포넌트를 전송하는 대신, 첫 번째 제3자 애플리케이션은 데이터 처리 시스템이 제2 컴퓨팅 디바이스에 의해 실행된 두 번째 제3자 애플리케이션으로 디지털 컴포넌트를 전송하도록 지시할 수 있다.
일부 경우, 제3자 애플리케이션은 이전 오디오 입력의 표시를 사용하도록 권한 인증될 수 있다. 제3자 애플리케이션은 이전 오디오 입력의 표시(예를 들어, 대화의 양태)를 파싱하여 제3자 애플리케이션의 컨텐츠를 수정할 수 있다. 예를 들어, 제3자 애플리케이션은 이전 오디오 입력과 관련된 정보에 기초하여 테마, 논리 흐름, 화면, 포멧, 폰트, 주제, 토픽, 또는 기타 양상을 선택할 수 있다.
도 9는 예시적인 컴퓨터 시스템(900)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(900)는 시스템(100) 또는 데이터 처리 시스템(102)과 같은 그의 컴포넌트를 포함하거나 구현하는데 사용될 수 있다. 데이터 처리 시스템(102)은 지능형 개인 어시스턴트 또는 음성 기반 디지털 어시스턴트를 포함할 수 있다. 컴퓨팅 시스템(900)은 정보를 전달하기 위한 버스(905) 또는 다른 통신 컴포넌트 및 정보를 처리하기 위해 버스(905)에 결합된 프로세서(910) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(900)은 또한 정보를 처리하기 위해 버스에 결합된 하나 이상의 프로세서(910) 또는 처리 회로를 포함할 수 있다. 컴퓨팅 시스템(900)은 또한 정보를 저장하기 위해 버스(905)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(915) 및 프로세서(910)에 의해 실행될 명령을 포함한다. 메인 메모리(915)는 데이터 저장소(124)이거나 이를 포함할 수 있다. 메인 메모리(915)는 또한 프로세서(910)에 의한 명령의 실행 동안 위치 정보, 임시 변수 또는 다른 중개 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(900)은 프로세서(910)에 대한 정적 정보 및 명령을 저장하기 위해 버스(905)에 결합된 ROM(920) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(925)는 정보 및 명령을 지속적으로 저장하기 위해 버스(905)에 결합될 수 있다. 저장 디바이스(925)는 데이터 저장소(124)를 포함하거나 그의 일부일 수 있다.
컴퓨팅 시스템(900)은 버스(905)를 통해 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(935)에 결합될 수 있다. 알파벳 숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(930)는 정보 및 커맨드 선택을 프로세서(910)에 전달하기 위해 버스(905)에 결합될 수 있다. 입력 디바이스(930)는 터치 스크린 디스플레이(935)를 포함할 수 있다. 입력 디바이스(930)는 또한 방향 정보 및 커맨드 선택을 프로세서(910)로 전달하고 디스플레이(935)상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 컨트롤을 포함할 수 있다. 디스플레이(935)는 예를 들어 데이터 처리 시스템(102), 클라이언트 컴퓨팅 디바이스(150) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(910)가 메인 메모리(915)에 포함된 명령의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(900)에 의해 구현될 수 있다. 이러한 명령들은 저장 디바이스(925)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(915)로 판독될 수 있다. 메인 메모리(915)에 포함된 명령 배열의 실행은 컴퓨팅 시스템(900)이 본 명세서에 설명된 예시적인 프로세스를 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서가 또한 메인 메모리(915)에 포함된 명령을 실행하기 위해 사용될 수 있다. 하드 와이어드 회로가 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령 대신에 또는 하드웨어 명령과 조합하여 사용될 수 있다. 본 명세서에 기술된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 9에 설명되었지만, 본 명세서에 기술된 동작들을 포함하는 주제는 본 명세서에 개시된 구조를 포함하는 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있고, 그와 동등한 구조적 등가물, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에서 논의된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 이용할 수 있는 상황에서, 사용자는 개인 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 사용자의 선호 또는 사용자 위치에 대한 정보)를 수집할 수 있는 프로그램 또는 특징을 제어하거나, 컨텐츠 서버 또는 사용자와 더 관련될 수 있는 다른 데이터 처리 시스템으로부터 컨텐츠를 수신할지 여부 또는 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 개인 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 익명화될 수 있거나, 사용자의 특정 위치가 결정될 수 없도록 사용자의 지리적 위치는 위치 정보가 획득된 위치(예를 들어, 도시, 우편 번호 또는 주 수준)에 대해 일반화될 수 있다. 따라서, 사용자는 사용자에 관한 정보가 수집되고 컨텐츠 서버에 의해 사용되는 방법을 제어할 수 있다.
본 명세서에 기술된 주제 및 동작들은 본 명세서에 개시된 구조 및 이들의 구조적 등가물을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램, 예를 들어, 하나 이상의 컴퓨터 프로그램 명령의 회로로서 구현될 수 있고, 데이터 처리 장치에 의해 실행되거나 그 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체에 인코딩된다. 대안으로 또는 추가적으로, 프로그램 명령들은 인공적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의해 실행하기 위해 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 컴퓨터 저장 매체는 전파 신호는 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 그에 포함될 수 있다. 본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대한 데이터 처리 장치에 의해 수행되는 동작으로서 구현 될 수있다.
"데이터 처리 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 처리 장치"라는 용어는 예로서 프로그램 가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 다수의 것, 또는 전술한 것의 조합을 포함하여 데이터를 처리하기 위한 다양한 장치, 디바이스 및 머신을 포함한다. 장치는 특수 목적의 논리 회로, 예를 들어 FPGA (Field Programmable Gate Array) 또는 ASIC(application-specific integrated circuit)을 포함할 수 있다. 장치는 또한 하드웨어 외에, 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드일 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 예를 들어, 인터페이스(110), 원격 애플리케이션 런처(116), 디지털 컴포넌트 선택기(120), 또는 NLP 컴포넌트(114) 및 다른 데이터 처리 시스템(102) 컴포넌트는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 문제의 프로그램 전용의 단일 파일 또는 다수의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램(예를 들어, 데이터 처리 시스템(102)의 컴포넌트)을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)과 같은 특수 목적 논리 회로로서 구현될 수 있으며 장치 또한 특수 목적 논리 회로로서 구현될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 반도체 메모리 디바이스(예컨대, EPROM, EEPROM 및 플래시 메모리 디바이스)를 포함하여 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
본 명세서에 기술된 주제는 백엔드 컴포넌트(에컨대, 데이터 서버), 미들웨어 컴포넌트(예컨대, 애플리케이션 서버) 또는 프론트 엔드 컴포넌트(예컨대, 사용자가 본 명세서에 기술된 주제의 구현 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터), 또는 하나 이상의 이러한 백엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)를 포함할 수 있다.
시스템(100) 또는 시스템(900)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크(예를 들어, 네트워크(105))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 구현에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, 디지털 컴포넌트를 나타내는 데이터 패킷)를 클라이언트 장치로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 데이터 처리 시스템(102)에 의해 컴퓨팅 디바이스(104) 또는 디지털 컴포넌트 제공자 디바이스(106) 또는 제3자 애플리케이션 개발자 디바이스(108)로부터 수신된다).
동작들이 특정 순서로 도면에 도시되어 있지만, 이러한 동작은 도시된 특정 순서로 또는 순차적인 순서로 수행될 필요가 없으며, 도시된 모든 동작이 수행될 필요는 없다. 본 명세서에 설명된 동작들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트의 분리는 모든 구현에서 분리를 필요로하지 않으며, 설명된 프로그램 컴포넌트는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(114) 또는 디지털 컴포넌트 선택기(120)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 처리 회로를 갖는 로직 디바이스, 또는 데이터 처리 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
이제 몇몇 예시적인 구현을 설명하였지만, 전술한 것은 예시적인 것이며 제한적인 것이 아니라는 것이 명백하다. 특히, 본 명세서에 제시된 다수의 예는 방법 동작 또는 시스템 요소의 특정 조합을 포함하지만, 그러한 행위 및 요소는 동일한 목적을 달성하기 위해 다른 방식으로 조합될 수 있다. 하나의 구현과 관련하여 논의된 동작(Act), 요소 및 특징은 다른 구현 또는 구현에서 유사한 역할로부터 배제되도록 의도되지 않는다.
본 명세서에 사용된 어구 및 용어는 설명을 위한 것이며 제한하는 것으로 간주되어서는 안된다. "포함하는(including)" "포함하는(comprising)" "갖는 (having)" "포함하는(involving)" "로 특징지어진(characterized by)"및 "것을 특징으로 하는(characterized in that)" 및 그의 변형의 사용은 그 이후에 나열된 아이템, 그의 등가물 및 추가 아이템뿐만 아니라 이후에 배타적으로 나열된 아이템으로 구성된 대안적인 구현을 포함하는 것을 의미한다. 일 구현에서, 본 명세서에 설명된 시스템 및 방법은 하나 이상의 설명된 요소, 동작 또는 컴포넌트의 각각의 하나 이상의 조합으로 구성된다.
단수로 언급된 시스템 및 방법의 구현 또는 요소 또는 동작에 대한 임의의 참조는 또한 복수의 이들 요소를 포함하는 구현을 포함할 수 있고, 임의의 구현 또는 요소에 대한 복수의 임의의 참조 또는 본 명세서에서의 동작은 또한 단일 요소 만을 포함하는 구현을 포함할 수 있다. 단수 또는 복수 형태의 언급은 현재 개시된 시스템 또는 방법, 그의 컴포넌트, 동작 또는 요소를 단일 또는 복수 구성으로 제한하려는 것이 아니다. 정보, 동작 또는 요소에 기초한 임의의 동작 또는 요소에 대한 언급은 동작 또는 요소가 임의의 정보, 동작 또는 요소에 적어도 부분적으로 기초한 구현을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실시예와 결합될 수 있고, "구현", "일부 구현", "하나의 구현"등은 반드시 상호 배타적일 필요는 없으며, 구현과 관련하여 설명된 특정 특징, 구조 또는 특성이 적어도 하나의 구현 또는 실시예에 포함될 수 있음을 나타내도록 의도된다. 본 명세서에서 사용된 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 본 명세서에 개시된 양태 및 구현과 일치하는 임의의 방식으로 임의의 다른 구현과 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 언급은 "또는"을 사용하여 설명된 임의의 용어가 설명된 단일, 하나 이상 및 모든 용어 중 어느 하나를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어 "A와 B중 적어도 하나"에 대한 참조에는 단지 'A'와 단지'B'뿐만 아니라 'A'와 'B' 모두가 포함될 수 있다. "포함하는" 또는 다른 공개 용어와 함께 사용되는 이러한 참조는 추가 아이템을 포함할 수 있다.
도면, 상세한 설명 또는 임의의 청구 범위의 기술적 특징 뒤에 참조 부호가 오는 경우, 그 참조 부호는 도면의 명료도, 상세 설명 및 청구 범위를 증가시키기 위해 포함되었다. 따라서, 참조 부호나 그의 부재는 청구 범위의 범위에 제한적인 영향을 미치지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(104)는 패키지 데이터 객체를 생성하고 애플리케이션을 시작할 때 이를 제3자 애플리케이션으로 포워딩할 수 있다. 전술한 구현예는 설명된 시스템 및 방법을 제한하기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 전술한 설명이 아니라 첨부된 청구 범위에 의해 표시되며, 청구 범위의 의미 및 등가의 범위 내에 있는 변경이 그 안에 포함된다.

Claims (60)

  1. 보안 처리 환경에서 데이터를 전송하기 위한 시스템으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템과;
    데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트를 포함하여:
    컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하고;
    오디오 입력에 기초하여, 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하고;
    제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지(packaged) 데이터 객체를 생성하고; 그리고
    컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로 패키지 데이터 객체를 포워딩하고, 상기 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 패키지 데이터 객체에 기초하여 실시간 디지털 컴포넌트 선택 프로세스를 실행하기 위해 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  2. 제1항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    데이터베이스에서 조회를 통해, 제3자 애플리케이션에 대한 딥 링크 (deep-link)를 식별하고; 그리고
    딥 링크를 사용하여 제3자 애플리케이션을 호출하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  3. 제1항 또는 제2항에 있어서,
    디지털 컴포넌트 선택기는,
    패키지 데이터 객체 및 컨텐츠 요청을 수신하고;
    컨텐츠 요청에 응답하여, 실시간 컨텐츠 선택 프로세스를 통해, 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택하고; 그리고
    컴퓨팅 디바이스로, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 전송하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  4. 제1항 또는 제2항에 있어서,
    디지털 컴포넌트 선택기는,
    컨텐츠 요청에 응답하여, 실시간 컨텐츠 선택 프로세스를 통해, 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택하고; 그리고
    디지털 어시스턴트 컴포넌트로, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션과 분리된 디지털 어시스턴트 컴포넌트에 의한 프리젠테이션을 위해 디지털 어시스턴트를 전송하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  5. 임의의 선행하는 항에 있어서,
    데이터 처리 시스템은,
    컴퓨팅 디바이스를 통한 프리젠테이션을 위해, 패키지 데이터 객체에 기초하여 선택된 디지털 컴포넌트를 전송하고;
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스를 통해 제시된 디지털 컴포넌트와의 상호 작용의 표시를 수신하고; 그리고
    데이터 처리 시스템에 의해, 디지털 컴포넌트와의 상호 작용을 디지털 어시스턴트 컴포넌트로 귀속(attribute)하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  6. 임의의 선행하는 항에 있어서,
    데이터 처리 시스템은,
    보안 처리 환경에서 컴퓨팅 디바이스가 제3자 애플리케이션을 시작(launch)하도록 지시하고, 보안 처리 환경은 초기에 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  7. 제1항 내지 제6항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    구조화된 대화를 포함하는 패키지 데이터 객체를 생성하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  8. 제1항 내지 제6항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    직렬화된 오페크(opaque) 토큰을 포함하는 패키지 데이터 객체를 생성하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  9. 제1항 내지 제6항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    이전 오디오 입력에서의 이벤트를 나타내는 이벤트 식별자를 포함하는 패키지 데이터 객체를 생성하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  10. 제1항 내지 제6항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    질의(query)로부터 형성된 이벤트 식별자 및 그 질의에 대한 응답을 포함하는 패키지 데이터 객체를 생성하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  11. 보안 처리 환경에서 데이터를 전송하기 위한 방법으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트에 의해, 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하는 단계;
    데이터 처리 시스템에 의해 오디오 입력에 기초하여, 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하는 단계;
    제3자 애플리케이션을 호출하기로 결정한 것에 응답하여 데이터 처리 시스템에 의해, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 생성하는 단계; 및
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스의 보안 처리 환경에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로, 패키지 데이터 객체를 포워딩하는 단계를 포함하고, 상기 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 패키지 데이터 객체에 기초하여 실시간 컨텐츠 선택 프로세스를 실행하기 위해 패키지 데이터 객체를 디지털 컴포넌트 선택기로 전송하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  12. 제11항에 있어서,
    데이터 처리 시스템에 의해, 데이터베이스의 조회를 통해 제3자 애플리케이션에 대한 딥 링크를 식별하는 단계; 및
    데이터 처리 시스템에 의해, 딥 링크를 사용하여 제3자 애플리케이션을 호출하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  13. 제11항에 있어서,
    디지털 컴포넌트 선택기로, 패키지 데이터 객체 및 컨텐츠 요청을 제공하는 단계, 상기 디지털 컴포넌트 선택기는 컨텐츠 요청에 응답하여, 실시간 컨텐츠 선택 프로세스를 통해, 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택하도록 구성되고; 및
    데이터 처리 시스템을 통해 컴퓨팅 디바이스에, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 제공하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  14. 제11항에 있어서,
    디지털 컴포넌트 선택기에 의해, 컨텐츠 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 통해, 패키지 데이터 객체에 기초하여 디지털 컴포넌트를 선택하는 단계; 및
    디지털 컴포넌트 선택기에 의해 디지털 어시스턴트 컴포넌트로, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션과 분리된 디지털 어시스턴트 컴포넌트에 의한 프리젠테이션을 위해 디지털 어시스턴트를 전송하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  15. 제11항에 있어서,
    컴퓨팅 디바이스를 통한 프리젠테이션을 위해, 패키지 데이터 객체에 기초하여 선택된 디지털 컴포넌트를 전송하는 단계;
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스를 통해 제시된 디지털 컴포넌트와의 상호 작용의 표시를 수신하는 단계; 및
    데이터 처리 시스템에 의해, 디지털 컴포넌트와의 디지털 상호 작용을 디지털 어시스턴트 컴포넌트에 귀속하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  16. 제11항에 있어서,
    데이터 처리 시스템에 의해, 보안 처리 환경에서 컴퓨팅 디바이스가 제3자 애플리케이션을 시작하도록 지시하는 단계를 포함하고, 상기 보안 처리 환경은 초기에 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  17. 제11항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 구조화된 대화를 포함하는 패키지 데이터 객체를 생성하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  18. 제11항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 직렬화된 오페크 토큰을 포함하는 패키지 데이터 객체를 생성하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  19. 제11항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 이전 오디오 입력에서의 이벤트를 나타내는 이벤트 식별자를 포함하는 패키지 데이터 객체를 생성하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  20. 제11항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 질의로부터 형성된 이벤트 식별자 및 그 질의에 대한 응답을 포함하는 패키지 데이터 객체를 생성하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 방법.
  21. 처리 환경에서 데이터를 전송하기 위한 시스템으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템과;
    데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트를 포함하여:
    컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하고;
    오디오 입력에 기초하여, 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하고;
    제3자 애플리케이션을 호출하기로 결정한 것에 응답하여, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 생성하고;
    컴퓨팅 디바이스상에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로 고유 식별자를 포워딩하고, 상기 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여 고유 식별자를 데이터 처리 시스템으로 전송하도록 구성되고;
    제3자 애플리케이션으로부터 수신된 고유 식별자를 사용하여, 이전 오디오 입력을 식별하고; 그리고
    디지털 컴포넌트 선택기에, 이전 오디오 입력을 실시간 컨텐츠 선택 프로세스에 대한 입력으로 제공하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  22. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    데이터베이스에서 조회를 통해, 제3자 애플리케이션에 대한 딥 링크를 식별하고; 그리고
    딥 링크를 사용하여 제3자 애플리케이션을 호출하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  23. 제21항 또는 제22항에 있어서,
    디지털 컴포넌트 선택기는,
    컴퓨팅 디바이스로부터 고유 식별자 및 컨텐츠 요청을 수신하고;
    컨텐츠 요청에 응답하여, 실시간 컨텐츠 선택 프로세스를 통해, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택하고; 그리고
    컴퓨팅 디바이스로, 컴퓨팅 디바이스에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 전송하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  24. 제21항 또는 제22항에 있어서,
    디지털 컴포넌트 선택기는,
    컨텐츠 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 통해, 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택하고; 그리고
    디지털 어시스턴트 컴포넌트로, 컴퓨팅 디바이스에서 실행되는 제3자 애플리케이션과 분리된 디지털 어시스턴트 컴포넌트에 의한 프리젠테이션을 위해 디지털 어시스턴트를 전송하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  25. 제21항 내지 제24항 중 어느 하나에 있어서,
    데이터 처리 시스템은,
    컴퓨팅 디바이스를 통한 프리젠테이션을 위해, 이전 오디오 입력에 기초하여 선택된 디지털 컴포넌트를 전송하고;
    컴퓨팅 디바이스를 통해 제시된 디지털 컴포넌트와의 상호 작용의 표시를 수신하고; 그리고
    디지털 컴포넌트와의 상호 작용을 디지털 어시스턴트 컴포넌트에 귀속하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  26. 제21항 내지 제25항 중 어느 하나에 있어서,
    데이터 처리 시스템은,
    컴퓨팅 디바이스가 제3자 애플리케이션을 시작하도록 지시하고, 상기 제3자 애플리케이션은 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 제한하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  27. 제21항 내지 제26항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    이전 음성 입력을 구조화된 대화 데이터 객체로서 데이터 처리 시스템에 저장하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  28. 제21항 내지 제26항 중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    이전 오디오 입력에 대한 이벤트 식별자를 생성하고; 그리고
    이벤트 식별자를 데이터 처리 시스템의 메모리에 저장하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  29. 제21항 내지 제26항 중 어느 한 항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    데이터 처리 시스템에 저장하기 위해, 질의로부터 형성된 이벤트 식별자 및 그 질의에 대한 응답을 생성하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  30. 제21항 내지 제26 항중 어느 하나에 있어서,
    디지털 어시스턴트 컴포넌트는,
    이전 오디오 입력에 대한 이벤트 식별자를 생성하고; 그리고
    데이터 처리 시스템에 저장된 룩업 테이블에, 이전 오디오 입력에 대한 이벤트 식별자를 고유 식별자에 매핑하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하기 위한 시스템.
  31. 처리 환경에서 데이터를 전송하는 방법으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트에 의해, 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력을 수신하는 단계;
    데이터 처리 시스템에 의해 오디오 입력에 기초하여, 컴퓨팅 디바이스와 관련된 제3자 애플리케이션을 호출하기로 결정하는 단계;
    제3자 애플리케이션을 호출하기로 결정한 것에 응답하여 데이터 처리 시스템에 의해, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 생성하는 단계;
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스에서 실행하기 위해 디지털 어시스턴트 컴포넌트에 의해 호출된 제3자 애플리케이션으로 고유 식별자를 포워딩하는 단계, 상기 제3자 애플리케이션은 제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 고유 식별자를 데이터 처리 시스템으로 전송하도록 구성되고;
    제3자 애플리케이션으로부터 수신된 고유 식별자를 이용하여 데이터 처리 시스템에 의해, 이전 오디오 입력을 식별하는 단계; 및
    데이터 처리 시스템에 의해 디지털 컴포넌트 선택기로, 이전 오디오 입력을 실시간 컨텐츠 선택 프로세스에 대한 입력으로서 제공하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  32. 제31항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 데이터베이스에서 조회을 통해 제3자 애플리케이션에 대한 딥 링크를 식별하는 단계; 및
    디지털 어시스턴트 컴포넌트에 의해, 딥 링크를 사용하여 제3자 애플리케이션을 호출하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  33. 제31항에 있어서,
    디지털 컴포넌트 선택기에, 컴퓨팅 디바이스로부터의 고유 식별자 및 컨텐츠 요청을 제공하는 단계, 상기 디지털 컴포넌트 선택기는 컨텐츠 요청에 응답하여 실시간 컨텐츠 선택 프로세스를 통해, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택하도록 구성되고; 및
    컴퓨팅 디바이스로, 컴퓨팅 디바이스의 보안 처리 환경에서 실행되는 제3자 애플리케이션을 통한 프리젠테이션을 위해 디지털 컴포넌트를 전송하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  34. 제31항에 있어서,
    컨텐츠 요청에 응답하여 디지털 컴포넌트 선택기에 의해, 실시간 컨텐츠 선택 프로세스를 통해, 이전 오디오 입력에 기초하여 디지털 컴포넌트를 선택하는 단계; 및
    디지털 컴포넌트 선택기에 의해 디지털 어시스턴트 컴포넌트로, 컴퓨팅 디바이스상에서 실행되는 제3자 애플리케이션과 분리된 디지털 어시스턴트 컴포넌트에 의한 프리젠테이션을 위해 디지털 컴포넌트를 전송하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  35. 제31항에 있어서,
    컴퓨팅 디바이스를 통한 프리젠테이션을 위해, 이전 오디오 입력에 기초하여 선택된 디지털 컴포넌트를 전송하는 단계;
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스를 통해 제시된 디지털 컴포넌트와의 상호 작용의 표시를 수신하는 단계; 및
    데이터 처리 시스템에 의해, 디지털 컴포넌트와의 디지털 상호 작용을 디지털 어시스턴트 컴포넌트에 귀속하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  36. 제31항에 있어서,
    데이터 처리 시스템에 의해, 컴퓨팅 디바이스가 제3자 애플리케이션을 시작하도록 지시하는 단계를 포함하고, 상기 제3자 애플리케이션은 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 제한하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  37. 제31항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 이전 오디오 입력을 구조화된 대화 데이터 객체로서 데이터 처리 시스템에 저장하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  38. 제31항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 이전 오디오 입력에 대한 이벤트 식별자를 생성하는 단계; 및
    디지털 어시스턴트 컴포넌트에 의해, 이벤트 식별자를 데이터 처리 시스템의 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  39. 제31항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 데이터 처리 시스템에 저장하기 위해,질의로부터 형성된 이벤트 식별자 및 그 질의에 대한 응답을 생성하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  40. 제31항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 이전 오디오 입력에 대한 이벤트 식별자를 생성하는 단계; 및
    디지털 어시스턴트 컴포넌트에 의해, 데이터 처리 시스템에 저장된 룩업 테이블에, 이전 오디오 입력에 대한 이벤트 식별자를 고유 식별자에 매핑하는 단계를 포함하는 것을 특징으로 하는 처리 환경에서 데이터를 전송하는 방법.
  41. 보안 처리 환경에서 데이터를 전송하기 위한 시스템으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스에 의해 관리되는 보안 처리 환경에서 실행되는 제3자 애플리케이션과, 상기 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트와 인터페이스하기 위한 응용 프로그래밍 인터페이스를 포함하고, 상기 로컬 디지털 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신하여 제3자 애플리케이션을 호출하도록 입력 오디오 신호를 처리하고, 상기 제3자 애플리케이션은:
    로컬 디지털 어시스턴트 컴포넌트로부터, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 수신하고;
    보안 처리 환경에, 이전 오디오 입력의 표시를 저장하고;
    이벤트에 응답하여, 컨텐츠 요청을 생성하고;
    이벤트에 응답하여 보안 처리 환경으로부터, 보안 처리 환경에 저장되고 응용 프로그래밍 인터페이스를 통해 로컬 디지털 어시스턴트로부터 수신된 이전 오디오 입력의 표시를 검색하고; 그리고
    디지털 컴포넌트 선택기로, 컨텐츠 요청 및 이전 오디오 입력의 표시를 제공하고, 상기 디지털 컴포넌트 선택기는 컨텐츠 요청 및 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  42. 제41항에 있어서,
    이전 오디오 입력의 표시는,
    제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  43. 제41항에 있어서,
    이전 오디오 입력의 표시는,
    제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 포함하고, 상기 패키지 데이터 객체는 제3자 애플리케이션의 호출에 응답하여 로컬 디지털 어시스턴트 컴포넌트에 의해 생성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  44. 제41항에 있어서,
    이전 오디오 입력의 표시는 고유 식별자를 포함하고,
    제3자 애플리케이션은,
    로컬 디지털 어시스턴트 컴포넌트로부터, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 수신하고; 그리고
    제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여, 고유 식별자를 디지털 컴포넌트 선택기에 제공하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  45. 제41항에 있어서,
    이전 오디오 입력의 표시는 고유 식별자를 포함하고,
    제3자 애플리케이션은,
    로컬 디지털 어시스턴트 컴포넌트로부터, 이전 오디오 입력에 대응하는 고유 식별자를 수신하고;
    고유 식별자 및 컨텐츠 요청을 디지털 컴포넌트 선택기로 전송하고, 상기 디지털 컴포넌트 선택기는 고유 식별자를 사용하여 데이터베이스에서 조회을 수행하여 이전 오디오 입력을 식별하고; 그리고
    프리젠테이션을 위해 디지털 컴포넌트 선택기로부터, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  46. 제41항에 있어서,
    제3자 애플리케이션은,
    컨텐츠 요청 및 이전 오디오 입력의 표시의 전송에 후속하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 디지털 컴포넌트 선택기에 의해 선택된 디지털 컴포넌트를 수신하고; 그리고
    컴퓨팅 디바이스를 통해 디지털 컴포넌트를 제시하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  47. 제41항에 있어서,
    제3자 애플리케이션은,
    컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하고; 그리고
    컴퓨팅 디바이스에 의한 오디오 출력을 통해, 디지털 컴포넌트를 제시하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  48. 제41항에 있어서,
    제3자 애플리케이션은,
    컨텐츠 요청에 응답하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하고; 그리고
    컴퓨팅 디바이스와 통신하는 제2 컴퓨팅 디바이스에서 실행되는 제2의 제3자 애플리케이션으로 디지털 컴포넌트를 전송하고, 상기 제2의 제3자 애플리케이션은 디지털 컴포넌트를 제시하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  49. 제41항에 있어서,
    제3자 애플리케이션은 보안 처리 환경에서 시작되고, 상기 보안 처리 환경은 초기에 로컬 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  50. 제41항에 있어서,
    제3자 애플리케이션은 이전 오디오 입력의 표시에 기초하여 제3자 애플리케이션의 컨텐츠를 수정하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하기 위한 시스템.
  51. 보안 처리 환경에서 데이터를 전송하는 방법으로서,
    로컬 디지털 어시스턴트 컴포넌트로부터 제3자 애플리케이션에 의해, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 이전 오디오 입력의 표시를 수신하는 단계와, 상기 제3자 애플리케이션은 컴퓨팅 디바이스에 의해 관리되는 보안 처리 환경에서 실행되고, 상기 제3자 애플리케이션은 로컬 디지털 어시스턴트 컴포넌트와 인터페이스하기 위한 응용 프로그래밍 인터페이스를 포함하고, 상기 로컬 디지털 컴포넌트는 통신 채널을 통해 원격 디지털 어시스턴트 컴포넌트와 통신하여 제3자 애플리케이션을 호출하도록 입력 오디오 신호를 처리하고,
    제3자 애플리케이션에 의해, 보안 처리 환경에 이전 오디오 입력의 표시를 저장하는 단계와;
    제3자 애플리케이션에 의해, 이벤트에 응답하여 컨텐츠 요청을 생성하는 단계와;
    제3자 애플리케이션에 의해, 이벤트에 응답하여 보안 처리 환경의 제3자 애플리케이션으로부터, 보안 처리 환경에 저장되고 응용 프로그래밍 인터페이스를 통해 로컬 디지털 어시스턴트로부터 수신된 이전 오디오 입력의 표시를 검색하는 단계와; 그리고
    제3자 애플리케이션에 의해 디지털 컴포넌트 선택기에, 컨텐츠 요청 및 이전 오디오 입력의 표시를 제공하는 단계를 포함하고, 상기 디지털 컴포넌트 선택기는 컨텐츠 요청 및 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 실행하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  52. 제51항에 있어서,
    이전 오디오 입력의 표시는,
    제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  53. 제51항에 있어서,
    이전 오디오 입력의 표시는,
    제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력을 포함하는 패키지 데이터 객체를 포함하고, 상기 패키지 데이터 객체는 제3자 애플리케이션의 호출에 응답하여 로컬 디지털 어시스턴트 컴포넌트에 의해 생성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  54. 제51항에 있어서,
    이전 오디오 입력의 표시는 고유 식별자를 포함하고, 상기 방법은,
    로컬 디지털 어시스턴트 컴포넌트로부터 제3자 애플리케이션에 의해, 제3자 애플리케이션의 호출을 야기한 오디오 입력의 수신 전에 마이크로폰에 의해 검출된 이전 오디오 입력에 대응하는 고유 식별자를 수신하는 단계와; 그리고
    제3자 애플리케이션에서 트리거된 컨텐츠 요청에 응답하여 제3자 애플리케이션에 의해, 고유 식별자를 디지털 컴포넌트 선택기에 제공하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  55. 제51항에 있어서,
    이전 오디오 입력의 표시는 고유 식별자를 포함하고, 상기 방법은,
    제3자 애플리케이션에 의해 로컬 디지털 어시스턴트 컴포넌트로부터, 이전 오디오 입력에 대응하는 고유 식별자를 수신하는 단계와;
    제3자 애플리케이션에 의해, 고유 식별자 및 컨텐츠 요청을 디지털 컴포넌트 선택기로 전송하는 단계와, 상기 디지털 컴포넌트 선택기는 고유 식별자를 사용하여 데이터베이스에서 조회을 수행하여 이전 오디오 입력을 식별하고; 그리고
    제3자 애플리케이션에 의해, 프리젠테이션을 위해 디지털 컴포넌트 선택기로부터, 고유 식별자에 대응하는 이전 오디오 입력에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  56. 제51항에 있어서,
    제3자 애플리케이션에 의해 컨텐츠 요청 및 이전 오디오 입력의 표시의 전송에 후속하여, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 디지털 컴포넌트 선택기에 의해 선택된 디지털 컴포넌트를 수신하는 단계와; 그리고
    제3자 애플리케이션에 의해, 컴퓨팅 디바이스를 통해 디지털 컴포넌트를 제시하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  57. 제51항에 있어서,
    컨텐츠 요청에 응답하여 제3자 애플리케이션에 의해, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하는 단계와; 그리고
    제3자 애플리케이션에 의해, 컴퓨팅 디바이스에 의한 오디오 출력을 통해 디지털 컴포넌트를 제시하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  58. 제51항에 있어서,
    컨텐츠 요청에 응답하여 제3자 애플리케이션에 의해, 이전 오디오 입력의 표시에 기초하여 실시간 컨텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 수신하는 단계와; 그리고
    제3자 애플리케이션에 의해 컴퓨팅 디바이스와 통신하는 제2 컴퓨팅 디바이스에서 실행되는 제2의 제3자 애플리케이션으로, 디지털 컴포넌트를 전송하는 단계를 포함하고, 상기 제2의 제3자 애플리케이션은 디지털 컴포넌트를 제시하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  59. 제51항에 있어서,
    보안 처리 환경에서 제3자 애플리케이션을 시작하는 단계를 포함하고, 상기 보안 처리 환경은 초기에 로컬 디지털 어시스턴트 컴포넌트에 의해 처리된 이전 오디오 입력에 대한 액세스를 방지하도록 구성되는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
  60. 제51항에 있어서,
    제3자 애플리케이션에 의해, 이전 오디오 입력의 표시에 기초하여 제3자 애플리케이션의 컨텐츠를 수정하는 단계를 포함하는 것을 특징으로 하는 보안 처리 환경에서 데이터를 전송하는 방법.
KR1020207019191A 2018-03-21 2018-03-21 보안 처리 환경에서의 데이터 전송 KR102335090B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/023564 WO2019182586A1 (en) 2018-03-21 2018-03-21 Data transfer in secure processing environments

Publications (2)

Publication Number Publication Date
KR20200093029A true KR20200093029A (ko) 2020-08-04
KR102335090B1 KR102335090B1 (ko) 2021-12-03

Family

ID=61911735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207019191A KR102335090B1 (ko) 2018-03-21 2018-03-21 보안 처리 환경에서의 데이터 전송

Country Status (6)

Country Link
US (3) US11392688B2 (ko)
EP (1) EP3718041A1 (ko)
JP (1) JP7111818B2 (ko)
KR (1) KR102335090B1 (ko)
CN (1) CN111557002A (ko)
WO (1) WO2019182586A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230106805A (ko) * 2022-01-07 2023-07-14 주식회사 킨트 음성인식 매칭시스템

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6944594B2 (ja) * 2018-06-08 2021-10-06 株式会社Nttドコモ 対話装置
SE2050465A1 (en) * 2020-04-23 2021-10-24 Checkin Com Group Ab Method and system for generating a data collection process in a user device
US20220246145A1 (en) * 2021-01-29 2022-08-04 Zoom Video Communications, Inc. Systems and methods for suggesting user actions during a video conference
US20220301549A1 (en) * 2021-03-17 2022-09-22 Samsung Electronics Co., Ltd. Electronic device and method for providing voice recognition service
US11868748B2 (en) * 2021-07-30 2024-01-09 Informatica Llc Method, apparatus, and computer-readable medium for intelligent execution of a solution on a computer network
CN114417323B (zh) * 2022-01-21 2023-02-28 北京飞书科技有限公司 数据引用方法、装置、设备及介质
US11689486B1 (en) 2022-03-02 2023-06-27 Microsoft Technology Licensing, Llc Topic overlap detection in messaging systems
US20240087564A1 (en) * 2022-09-12 2024-03-14 Google Llc Restricting third party application access to audio data content
WO2024084522A1 (en) * 2022-10-22 2024-04-25 Prashant Huddar "voice assisted device for object updating and query processing"

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080038198A (ko) * 2005-09-01 2008-05-02 마이크로소프트 코포레이션 클라이언트에 포함된 샌드박스형 코드에 의한 자원으로의액세스를 관리하기 위한, 컴퓨터 구현 방법, 시스템, 및이들을 구현하는 명령어가 저장된 컴퓨터 판독가능 매체
US20100094707A1 (en) * 2008-10-10 2010-04-15 Carl Johan Freer Method and platform for voice and location-based services for mobile advertising
US20150026212A1 (en) * 2013-07-17 2015-01-22 Google Inc. Third party search applications for a search system
EP3179472A1 (en) * 2015-12-11 2017-06-14 Sony Mobile Communications, Inc. Method and device for recording and analyzing data from a microphone
KR20190090562A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 보안 기능을 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949902B1 (en) * 2001-02-06 2015-02-03 Rovi Guides, Inc. Systems and methods for providing audio-based guidance
US8180891B1 (en) * 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
JP5887162B2 (ja) * 2012-02-23 2016-03-16 株式会社Nttドコモ 通信端末、制御方法及びプログラム
WO2014076442A1 (en) * 2012-11-15 2014-05-22 Clearcast Limited A self-service facility for content providers
US20140172563A1 (en) * 2012-12-17 2014-06-19 Facebook, Inc. Targeting Objects to Users Based on Search Results in an Online System
CN103915095B (zh) * 2013-01-06 2017-05-31 华为技术有限公司 语音识别的方法、交互设备、服务器和系统
CN104937603B (zh) * 2013-01-10 2018-09-25 日本电气株式会社 终端、解锁方法和程序
CN103973441B (zh) * 2013-01-29 2016-03-09 腾讯科技(深圳)有限公司 基于音视频的用户认证方法和装置
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
US20150188956A1 (en) * 2013-12-27 2015-07-02 T-Mobile Usa, Inc. Unified Communication Device
US10194262B2 (en) * 2014-11-06 2019-01-29 At&T Intellectual Property I, L.P. Proximity-based item data communication
US10509829B2 (en) * 2015-01-21 2019-12-17 Microsoft Technology Licensing, Llc Contextual search using natural language
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
RU2018113724A (ru) * 2015-10-21 2019-11-21 ГУГЛ ЭлЭлСи Сбор параметров и автоматическая генерация диалога в диалоговых системах
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10055390B2 (en) 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US20180039478A1 (en) * 2016-08-02 2018-02-08 Google Inc. Voice interaction services
US20190034542A1 (en) * 2017-07-26 2019-01-31 Scripps Networks Interactive, Inc. Intelligent agent system and method of accessing and delivering digital files
US10789957B1 (en) * 2018-02-02 2020-09-29 Spring Communications Company L.P. Home assistant wireless communication service subscriber self-service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080038198A (ko) * 2005-09-01 2008-05-02 마이크로소프트 코포레이션 클라이언트에 포함된 샌드박스형 코드에 의한 자원으로의액세스를 관리하기 위한, 컴퓨터 구현 방법, 시스템, 및이들을 구현하는 명령어가 저장된 컴퓨터 판독가능 매체
US20100094707A1 (en) * 2008-10-10 2010-04-15 Carl Johan Freer Method and platform for voice and location-based services for mobile advertising
US20150026212A1 (en) * 2013-07-17 2015-01-22 Google Inc. Third party search applications for a search system
EP3179472A1 (en) * 2015-12-11 2017-06-14 Sony Mobile Communications, Inc. Method and device for recording and analyzing data from a microphone
KR20190090562A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 보안 기능을 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230106805A (ko) * 2022-01-07 2023-07-14 주식회사 킨트 음성인식 매칭시스템

Also Published As

Publication number Publication date
US20210357496A1 (en) 2021-11-18
US20240160723A1 (en) 2024-05-16
WO2019182586A1 (en) 2019-09-26
JP7111818B2 (ja) 2022-08-02
JP2021515256A (ja) 2021-06-17
KR102335090B1 (ko) 2021-12-03
US11907363B2 (en) 2024-02-20
EP3718041A1 (en) 2020-10-07
US20220335121A1 (en) 2022-10-20
CN111557002A (zh) 2020-08-18
US11392688B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
US11907363B2 (en) Data transfer in secure processing environments
US11582169B2 (en) Modification of audio-based computer program output
JP7459153B2 (ja) 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
US10600409B2 (en) Balance modifications of audio-based computer program output including a chatbot selected based on semantic processing of audio
US11893993B2 (en) Interfacing with applications via dynamically updating natural language processing
US11514896B2 (en) Interfacing with applications via dynamically updating natural language processing
EP3610375B1 (en) Platform selection for performing requested actions in audio-based computing environments
US10657173B2 (en) Validate modification of audio-based computer program output
US20180357309A1 (en) Balance modifications of audio-based computer program output
US20230352017A1 (en) Platform selection for performing requested actions in audio-based computing environments
KR102471071B1 (ko) 오디오 기반 컴퓨터 프로그램 출력의 수정

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant