KR20210018532A - 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 - Google Patents
스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 Download PDFInfo
- Publication number
- KR20210018532A KR20210018532A KR1020217003690A KR20217003690A KR20210018532A KR 20210018532 A KR20210018532 A KR 20210018532A KR 1020217003690 A KR1020217003690 A KR 1020217003690A KR 20217003690 A KR20217003690 A KR 20217003690A KR 20210018532 A KR20210018532 A KR 20210018532A
- Authority
- KR
- South Korea
- Prior art keywords
- profile
- processing system
- data processing
- data structure
- computing device
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 352
- 230000009471 action Effects 0.000 claims abstract description 133
- 230000005236 sound signal Effects 0.000 claims abstract description 106
- 238000000034 method Methods 0.000 claims description 111
- 230000004044 response Effects 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 11
- 238000003058 natural language processing Methods 0.000 description 37
- 239000008186 active pharmaceutical agent Substances 0.000 description 33
- 238000004891 communication Methods 0.000 description 14
- 238000005108 dry cleaning Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 238000013515 script Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000000153 supplemental effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037081 physical activity Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000017280 response to inactivity Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/22—Interactive procedures; Man-machine interfaces
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
스택 데이터 구조들을 프로세싱함이 제공되었다. 시스템은 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 수신하고, 음향 신호를 식별하며, 상기 음향 서명에 대응하는 전자 계정을 식별한다. 상기 시스템은 세션 및 프로필 스택 데이터 구조를 설정(establish)하고, 상기 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스에 의해 구성된 정책들을 갖는 제1 프로필 계층을 포함한다. 상기 시스템은, 상기 프로필 스택 데이터 구조에, 상기 전자 계정으로부터 검색(retrieve)된 제2 프로필 계층을 푸싱한다. 상기 시스템은, 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱한다. 상기 시스템은 상기 트리거 키워드 및 상기 제2 프로필 계층에 기초하여, 제1 프로필 계층과 호환 가능한 제1 액션 데이터 구조를 생성한다. 상기 시스템은 실행을 위한 상기 제1 액션 데이터 구조를 제공한다. 상기 시스템은 상기 프로필 스택 데이터 구조로부터 상기 제1 프로필 계층 또는 상기 제2 프로필 계층 중 하나를 제거하도록 상기 프로필 스택 데이터 구조를 분해한다.
Description
공공 장소(public space)에 위치된 컴퓨팅 디바이스들은 비보안(unsecure)될 수 있다. 다양한 엔티티들이 공공 컴퓨팅 디바이스에 액세스하거나 이를 활용할 수 있다. 상이한 엔티티들이 공공 컴퓨팅 디바이스에 액세스하거나 이를 활용하면, 상이한 엔티티들에 대한 정책들과 연관된 모호성들로 인해 특정 엔티티에 대한 원격 프로시저 호출들, 애플리케이션들 또는 스크립트들을 정확하게 프로세싱하는 것이 어려울 수 있으며, 그로 인해 네트워크 및 프로세싱 리소스들의 낭비로 이어지는 잘못된 네트워크 전송들, 애플리케이션 호출들, 원격 프로시저 호출들을 유발한다.
본 출원은 일반적으로 공공 장소에서의 디지털 어시스턴트의 효율을 개선하기 위해 스택 데이터 구조를 프로세싱하는 것에 관한 것이다. 데이터 프로세싱 시스템은 전자 계정을 식별하기 위해 화자 인식을 수행할 수 있고, 그 후 화자와 연관된 프로필을 프로필 스택 데이터 구조로 푸싱할 수 있으며, 상기 프로필 스택 데이터 구조는 공공 장소와 연관된 제3 자 엔티티에 의해 설정된 기준 프로필을 갖는 제1 계층을 포함한다. 데이터 프로세싱 시스템은 트리거 이벤트에 응답하여 프로필 스택 데이터 구조를 분해할 수 있으며, 그로 인해 보안성을 유지하고 잘못된 원격 프로시저 호출들을 줄인다.
적어도 하나의 양태는 스택 데이터 구조들을 프로세싱하는 시스템으로 유도되었다. 시스템은 자연어 프로세서 컴포넌트, 인터페이스, 화자 인식 컴포넌트 및 직동식 애플리케이션 프로그래밍 인터페이스를 실행하기 위해 하나 이상의 프로세서들 및 메모리를 갖는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 인터페이스는 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신할 수 있다. 상기 데이터 프로세싱 시스템은 상기 입력 오디오 신호로부터 음향 신호를 식별할 수 있다. 상기 데이터 프로세싱 시스템은 상기 음향 서명에 대응하는 전자 계정을, 데이터 저장소 내의 룩업(lookup)에 기초하여 식별할 수 있다. 상기 데이터 프로세싱 시스템은 상기 전자 계정의 식별에 응답하여, 세션 및 상기 세션에서 사용하기 위해 프로필 스택 데이터 구조를 설정할 수 있다. 상기 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함할 수 있다. 상기 데이터 프로세싱 시스템은 상기 세션을 위해 설정된 상기 프로필 스택 데이터 구조에, 상기 전자 계정으로부터 검색된 제2 프로필 계층을 푸싱할 수 있다. 상기 데이터 프로세싱 시스템은 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱할 수 있다. 상기 데이터 프로세싱 시스템은 상기 트리거 키워드 및 상기 프로필 스택 데이터 구조에 푸싱된 상기 제2 프로필 계층에 기초하여, 상기 프로필 스택 데이터 구조의 상기 제1 프로필 계층과 호환 가능한 상기 요청에 응답하여 제1 액션 데이터 구조를 생성할 수 있다. 상기 데이터 프로세싱 시스템은 실행을 위해 상기 제1 액션 데이터 구조를 제공할 수 있다. 상기 데이터 프로세싱 시스템은 트리거 이벤트의 검출에 응답하여, 상기 프로필 스택 데이터 구조로부터 상기 제1 프로필 계층 또는 상기 제2 프로필 계층 중 하나를 제거하도록 상기 프로필 스택 데이터 구조를 분해할 수 있다.
적어도 하나의 양태는 스택 데이터 구조들을 프로세싱하는 방법으로 유도되었다. 상기 방법은 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신하는 상기 데이터 프로세싱 시스템의 인터페이스를 포함할 수 있다. 상기 방법은 상기 입력 오디오 신호로부터 음향 신호를 식별하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 음향 서명에 대응하는 전자 계정을, 데이터 저장소 내의 룩업에 기초하여 식별하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 전자 계정의 식별에 응답하여 세션 및 상기 세션에서 사용하기 위해 프로필 스택 데이터 구조를 설정하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함할 수 있다. 상기 방법은 상기 세션을 위해 설정된 상기 프로필 스택 데이터 구조에 상기 데이터 프로세싱 시스템에 의해, 상기 전자 계정으로부터 검색된 제2 프로필 계층을 푸싱하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호를 파싱하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 트리거 키워드 및 상기 프로필 스택 데이터 구조에 푸싱된 상기 제2 프로필 계층에 기초하여, 상기 데이터 프로세싱 시스템에 의해, 상기 프로필 스택 데이터 구조의 상기 제1 프로필 계층과 호환 가능한 상기 요청에 응답하여 제1 액션 데이터 구조를 생성하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 실행을 위해 상기 제1 액션 데이터 구조를 제공하는 상기 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 트리거 이벤트의 검출에 응답하여, 상기 데이터 프로세싱 시스템에 의해, 상기 프로필 스택 데이터 구조로부터 상기 제1 프로필 계층 또는 상기 제2 프로필 계층 중 하나를 제거하도록 상기 프로필 스택 데이터 구조를 분해하는 상기 데이터 프로세싱 시스템을 포함할 수 있다.
적어도 하나의 양태는 디지털 어시스턴트 디바이스로 유도되었다. 상기 디지털 어시스턴트 디바이스는 오디오 드라이버, 변환기, 입력 오디오 신호를 검출하기 위해 센서 및 상기 오디오 드라이버, 상기 변환기, 및 상기 센서에 결합된 사전-프로세서 컴포넌트를 포함할 수 있다. 상기 사전-프로세서 컴포넌트는 필터링된 입력 오디오 신호를 제작하기 위해 상기 입력 오디오 신호를 필터링할 수 있다. 상기 사전-프로세서 컴포넌트는 상기 필터링된 입력 오디오 신호를 데이터 패킷들로 변환할 수 있다. 상기 사전-프로세서 컴포넌트는 상기 데이터 패킷들을, 자연어 프로세서 컴포넌트, 인터페이스, 화자 인식 컴포넌트, 및 직동식 애플리케이션 프로그래밍 인터페이스를 실행하기 위해 하나 이상의 프로세서들 및 메모리를 포함하는 데이터 프로세싱 시스템에 전송할 수 있다. 상기 데이터 프로세싱 시스템은 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을, 상기 인터페이스를 통해, 수신할 수 있다. 상기 데이터 프로세싱 시스템은 상기 입력 오디오 신호로부터 음향 신호를 식별할 수 있다. 상기 데이터 프로세싱 시스템은 상기 음향 서명에 대응하는 전자 계정을, 데이터 저장소 내의 룩업에 기초하여 식별할 수 있다. 상기 데이터 프로세싱 시스템은 상기 전자 계정의 식별에 응답하여, 세션 및 상기 세션에서 사용하기 위해 프로필 스택 데이터 구조를 설정할 수 있다. 상기 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함할 수 있다. 상기 데이터 프로세싱 시스템은 상기 세션을 위해 설정된 상기 프로필 스택 데이터 구조에, 상기 전자 계정으로부터 검색된 제2 프로필 계층을 푸싱할 수 있다. 상기 데이터 프로세싱 시스템은 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱할 수 있다. 상기 데이터 프로세싱 시스템은 상기 트리거 키워드 및 상기 프로필 스택 데이터 구조에 푸싱된 상기 제2 프로필 계층에 기초하여, 상기 프로필 스택 데이터 구조의 상기 제1 프로필 계층과 호환 가능한 상기 요청에 응답하여 제1 액션 데이터 구조를 생성할 수 있다. 상기 데이터 프로세싱 시스템은 실행을 위해 상기 제1 액션 데이터 구조를 제공할 수 있다. 상기 데이터 프로세싱 시스템은 트리거 이벤트의 검출에 응답하여, 상기 프로필 스택 데이터 구조로부터 상기 제1 프로필 계층 또는 상기 제2 프로필 계층 중 하나를 제거하도록 상기 프로필 스택 데이터 구조를 분해할 수 있다. 상기 데이터 프로세싱 시스템은 상기 사전-프로세서 컴포넌트에, 상기 프로필 스택 데이터 구조의 상태를 제공할 수 있다. 상기 오디오 드라이버는 상기 프로필 스택 데이터 구조의 상기 상태의 표시를 더 수신하고, 그리고 상기 표시에 기초하여 출력 신호를 더 생성할 수 있다. 상기 변환기는 상기 오디오 드라이브에 의해 생성된 상기 출력 신호에 기초하여 사운드를 더 생성할 수 있다.
이러한 양태들 및 다른 양태들과 구현예들은 아래에서 자세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들을 나타내는(illustrate) 예시들을 포함하고, 그리고 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위해 개요(overview) 또는 프레임워크를 제공한다. 도면들은 다양한 양태들 및 구현예들의 도시 및 추가 이해를 제공하며, 본 명세서에 통합되어 명세서의 일부를 구성한다.
첨부된 도면들은 실제 크기대로 그려지도록 의도되지 않았다. 다양한 도면들에서 동일한 참조 번호들 및 지정들은 동일한 요소들을 표시한다. 명확성을 위해, 모든 컴포넌트가 모든 도면에 라벨링(label)될 수 없다.
도 1은 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템의 도시이다.
도 2는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 3은 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 4는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 5는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 방법의 도시이다.
도 6은 본 명세서에 기술되고 나타낸 시스템들 및 방법들의 요소들을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 나타내는 블록도이다.
도 1은 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템의 도시이다.
도 2는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 3은 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 4는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 시스템 동작의 도시이다.
도 5는 컴퓨터 네트워크를 통해 스택 데이터 구조를 프로세싱하는 방법의 도시이다.
도 6은 본 명세서에 기술되고 나타낸 시스템들 및 방법들의 요소들을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 나타내는 블록도이다.
이하는 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하는 방법들, 장치들 및 시스템들과 관련된 다양한 개념들과 구현예들의 보다 상세한 설명이다. 위에서 소개되고 아래에서 보다 상세하게 논의되는 다양한 개념들은 수많은 방법들 중 임의의 것으로 구현될 수 있다.
본 출원은 일반적으로 공공 장소에서 디지털 어시스턴트의 효율을 개선하고 동작시키기 위해 스택 데이터 구조들을 프로세싱하도록 일반적으로 유도되었다. 데이터 프로세싱 시스템은 전자 계정을 식별하도록 화자 인식을 수행할 수 있으며, 그 후 공공 장소와 관련된 제3 자 엔티티에 의해 설정된 기준 프로필을 갖는 제1 계층을 포함하는 프로필 스택 데이터 구조로 화자와 연관된 프로필을 푸싱할 수 있다. 데이터 프로세싱 시스템은 트리거 이벤트에 응답하여 프로필 스택 데이터 구조를 분해할 수 있으며, 그로 인해 보안성을 유지하고 잘못된 원격 프로시저 호출들을 줄인다.
최종 사용자로부터의 음성-기반 명령어들을 파싱하고, 음향 서명을 식별하고, 대응하는 프로필을 선택하고, 제1 계층의 디폴트 프로필을 포함하는 프로필 스택에 상기 프로필을 푸싱하며, 상기 선택된 프로필을 사용하여 액션 데이터 구조를 구축하고, 액션 데이터 구조가 디폴트 프로필을 따르는지 여부를 결정하며, 대응하는 디바이스로 액션 데이터 구조를 라우팅하고, 그리고 그 후 트리거 이벤트에 응답하여 프로필 스택을 분해함으로써 현재 솔루션은 리소스 소모, 프로세서 활용, 배터리 소모, 대역폭 활용, 오디오 파일 크기, 또는 스피커에 의해 소비된 시간의 양을 줄일 수 있다.
현재 솔루션의 시스템들 및 방법들은 호텔 룸과 같은 공공 세팅(public setting)에서의 사용을 위해 디지털 어시스턴트를 구성하거나, 게스트들이 임시 사용을 위해 디지털 어시스턴트에 사인하도록 허용할 수 있다 (예를 들어, 10분, 30분, 1시간, 2시간, 24시간, 48시간, 72시간). 상기 솔루션은 디지털 어시스턴트 프로그램이 이전 구성으로 돌아가고 모든 세션 정보를 지우거나 보호함으로써 계정으로부터 지능적으로 탈부착하는 것을 허용할 수 있다. 디지털 어시스턴트는 임의의 제3 자 디바이스들 또는 인터페이스들과의 링크들 또는 세션들을 더 설정함으로써 지능적으로 부착할 수 있다. 디지털 어시스턴트는 빠른 응답 코드, 광학 코드, 바코드 또는 지문을 제공할 수 있는 다른 시각적 또는 청각적 신호을 보여주는 것과 같은, 서비스에 올바른 디바이스가 활용되는 것을 보장하는데 도움이 되도록 보안된 인증 메커니즘들을 제공할 수 있다. 디지털 어시스턴트를 공장 세팅들로 다시 세팅하고, 탈착을 자동으로 트리거하며, 적절한 탈착을 보장하기 위해 여분의 메커니즘들을 제공함으로써 솔루션은 탈착할 수 있다. 이 솔루션은 디지털 어시스턴트 또는 디지털 어시스턴트에 의해 제공되는 디지털 콘텐츠의 커스터마이제이션을 또한 허용한다. 예를 들어, 디지털 어시스턴트를 제공하는 호텔에 대한 디지털 컴포넌트들은 호텔에 대한 브랜딩(branding)을 제공하기 위해 보다 무겁게 가중될 수 있다. 또한, 사용자가 아직 디지털 어시스턴트를 가지고 있지 않은 경우 디지털 어시스턴트에 디지털 컴포넌트들이 제공될 수 있다.
도 1은 프로필 스택을 프로세싱하기 위해 예시적인 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 선택 기반구조를 포함할 수 있다. 시스템(100)은 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 콘텐츠 제공자 컴퓨팅 디바이스(106), 제3 자 디바이스(146) 또는 로컬 컴퓨팅 디바이스(104) 중 하나 이상과 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크들, 인트라넷들, 위성 네트워크들, 및 음성 또는 데이터 모바일 전화 네트워크들과 같은 다른 통신 네트워크들과 같은 컴퓨터 네트워크들을 포함할 수 있다. 네트워크(105)는 웹 페이지들, 웹 사이트들, 도메인 이름들 또는 유니폼 리소스 로케이터들과 같은 정보 리소스들에 액세스하는데 사용될 수 있으며, 그것들은 랩탑, 데스크탑, 태블릿, 디지털 어시스턴트 디바이스, 스마트 폰, 휴대용 컴퓨터들 또는 스피커와 같은 적어도 하나의 로컬 컴퓨팅 디바이스(104) 상에 제시되거나, 출력되거나, 렌더링되거나 또는 디스플레이될 수 있다. 예를 들어, 로컬 컴퓨팅 디바이스(104)의 사용자는 콘텐츠 제공자(106)에 의해 제공된 정보 또는 데이터에 네트워크(105)를 통해 액세스할 수 있다. 컴퓨팅 디바이스(104)는 디스플레이를 포함하거나 포함하지 않을 수 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은, 제한된 타입의 사용자 인터페이스들을 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스(104)의 주요 사용자 인터페이스는 마이크로폰 및 스피커, 또는 음성 인터페이스일 수 있다.
로컬 컴퓨팅 디바이스(104)는 공공 장소(202)와 같은 공공 세팅, 또는 개인 장소(402)와 같은 개인 세팅에 위치한 컴퓨팅 디바이스 또는 클라이언트 디바이스를 지칭할 수 있다. 로컬이라는 용어는 사용자가 음성 입력 또는 다른 입력을 사용하여 컴퓨팅 디바이스와 인터랙팅할 수 있는 곳에 위치한 컴퓨팅 디바이스를 지칭할 수 있다. 로컬 컴퓨팅 디바이스는 데이터 프로세싱 시스템(102)과 같은 원격 서버로부터 떨어져 위치될 수 있다. 즉, 로컬 컴퓨팅 디바이스(104)는 사용자가 음성 입력을 사용하여 로컬 컴퓨팅 디바이스(104)와 인터랙팅할 수 있는 호텔 룸, 몰, 큐비클, 또는 다른 건물 또는 거주지에 포지션될 수 있는 반면에, 데이터 프로세싱 시스템(102)은 예를 들어, 멀리 떨어져서 데이터 센터에 위치할 수 있다. 로컬 컴퓨팅 디바이스(104)는 디지털 어시스턴트 디바이스로 지칭될 수 있다.
네트워크(105)는 예를 들어, 콘텐츠 배정 또는 검색 엔진 결과들 시스템과 연관되었거나, 또는 디지털 컴포넌트 배치 캠페인의 일부로써 제3 자 디지털 컴포넌트들을 포함할 자격이 있는, 인터넷 상에서 이용 가능한 정보 자원들의 서브 세트인, 디스플레이 네트워크를 포함하거나 구성할 수 있다. 네트워크(105)는 로컬 클라이언트 컴퓨팅 디바이스(104)에 의해 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지들, 웹 사이트들, 도메인 이름들 또는 유니폼 리소스 로케이터들과 같은 정보 리소스들에 액세스하도록 데이터 프로세싱 시스템(102)에 의해 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 로컬 클라이언트 컴퓨팅 디바이스(104)의 사용자는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 서비스 제공자 컴퓨팅 디바이스(108)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다.
네트워크(105)는 임의의 타입 또는 형태의 네트워크일 수 있고 다음 중 임의의 것을 포함할 수 있다: 포인트-투-포인트 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 로컬 영역 네트워크, 텔레커뮤니케이션 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 유선 네트워크 및 무선 네트워크. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 모바일 디바이스간들에 통신하는데 사용되는 프로토콜들 또는 임의의 프로토콜을 사용하는 모바일 전화 네트워크들을 포함할 수 있으며, advanced mobile phone protocol (“AMPS”), time division multiple access (“TDMA”), code-division multiple access (“CDMA”), global system for mobile communication (“GSM”), general packet radio services (“GPRS”) or universal mobile telecommunications system (“UMTS”)을 포함한다. 상이한 타입의 데이터가 상이한 프로토콜들을 통해 전송되거나, 동일한 타입의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 예를 들어, 컴퓨팅 디바이스(104), 콘텐츠 제공자 컴퓨팅 디바이스(106) (콘텐츠 제공자(106)), 또는 제3 자 디바이스(146) (또는 제3 자(146)), 와 통신하기 위해 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 센터에 위치된 복수의 계산 리소스들 또는 서버들을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 논리적으로-그룹화된 다수의 서버들을 포함할 수 있고 분산 컴퓨팅 기법들을 용이하게 할 수 있다. 서버들의 논리적인 그룹은 데이터 센터, 서버 팜(farm) 또는 기계 팜이라고 지칭될 수 있다. 서버들은 지리적으로 또한 흩어질 수 있다. 데이터 센터 또는 기계 팜은 단일 엔티티로 운영(administer)되거나, 또는 기계 팜은 복수의 머신 팜들을 포함할 수 있다. 각 기계 팜 내의 서버들은 이종(heterogeneous)일 수 있다-서버들 또는 기계들 중 하나 이상은 하나 이상의 운영 체제 플랫폼 타입에 따라 동작할 수 있다.
기계 팜 내의 서버들은 연관된 스토리지 시스템들과 함께, 고밀도 랙 시스템들에 저장될 수 있으며, 엔터프라이즈 데이터 센터에 위치될 수 있다. 예를 들어, 이러한 방식으로 서버들을 통합하는 것은 지역화된 고성능 네트워크들 상에 서버들 및 고성능 스토리지 시스템들을 위치시킴으로써 시스템 관리성, 데이터 보안성, 시스템의 물리적 보안성 및 시스템 성능을 개선할 수 있다. 서버들 및 저장 시스템들을 포함하고, 이들을 진보한 시스템 관리 툴들과 결합하는 데이터 프로세싱 시스템(102) 컴포넌트들의 전부 또는 일부의 중앙 집중화는 서버 리소스들의 보다 효율적으로 사용하게 하며, 그것은 이는 전력 및 프로세싱 요청들을 줄이고 대역폭 사용을 감소시킨다.
시스템(100)은 적어도 하나의 제3 자 디바이스(146)를 포함하거나, 액세스하거나, 그렇지 않으면 제3 자 디바이스(146)와 인터랙팅할 수 있다. 제3 자 디바이스(146)는 네트워크(105)를 통해 예를 들어, 컴퓨팅 디바이스(104), 데이터 프로세싱 시스템(102), 또는 콘텐츠 제공자(106)와 통신하기 위해 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 제3 자 디바이스(146)는 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 제3 자 디바이스(146)는 적어도 하나의 데이터 센터에 위치된 복수의 계산 리소스들 또는 서버들을 포함할 수 있다.
콘텐츠 제공자 디바이스(106)는 오디오 출력 디지털 컴포넌트로써 로컬 컴퓨팅 디바이스(104)에 의한 디스플레이용 오디오 기반 디지털 컴포넌트들을 제공할 수 있다. 디지털 컴포넌트는 다음과 같은 내용의 음성 기반 메시지와 같은 서비스 또는 선행(good)에 대한 오퍼를 포함할 수 있다: “택시를 불러 드릴까요?”. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 오디오 기반 쿼리에 응답하여 제공될 수 있는 일련의 오디오 디지털 컴포넌트들을 저장하는 메모리를 포함할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 또한 데이터 프로세싱 시스템(102)에 오디오 기반 디지털 컴포넌트들 (또는 다른 디지털 컴포넌트들)을 제공할 수 있으며, 그들은 데이터 저장소(124)에 저장될 수 있다. 데이터 프로세싱 시스템(102)은 오디오 디지털 컴포넌트들을 선택하고 로컬 클라이언트 컴퓨팅 디바이스(104)에 오디오 디지털 컴포넌트들을 제공 (또는 제공하도록 콘텐츠 제공자 컴퓨팅 디바이스(104)에 명령)할 수 있다. 오디오 기반 디지털 컴포넌트들은 배타적 오디오거나 또는 텍스트, 이미지 또는 비디오 데이터와 결부(combine)될 수 있다.
제3 자 디바이스(146)는 데이터 프로세싱 시스템(102)을 포함, 인터페이스할 수 있거나, 그렇지 않으면 데이터 프로세싱 시스템(102)과 통신할 수 있다. 제3 자 디바이스(146)는 로컬 컴퓨팅 디바이스(104)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 로컬 컴퓨팅 디바이스(104)와 통신할 수 있다. 제3 자 디바이스(146)는 콘텐츠 제공자 디바이스(106)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 콘텐츠 제공자 디바이스(106)와 통신할 수 있다. 예를 들어, 제3 자 디바이스(106)는 데이터 프로세싱 시스템(102)으로 하여금 로컬 컴퓨팅 디바이스(104)와 연관된 요청들에 대한 응답들을 생성하는데 사용되는 스택 프로필 데이터 구조를 업데이트하도록 데이터 프로세싱 시스템(102)에 프로필을 제공할 수 있다. 제3 자 디바이스(106)는 로컬 컴퓨팅 디바이스(104)에 대한 구성 정보 또는 세팅들을 제공할 수 있다.
로컬 컴퓨팅 디바이스(104)는 적어도 하나의 센서(134), 변환기(136), 오디오 드라이버(138), 또는 사전-프로세서(140)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 이들과 통신할 수 있다. 로컬 컴퓨팅 디바이스(104)는 광 지시기, light emitting diode (“LED”), organic light emitting diode (“OLED”), 또는 시각적 또는 광 출력을 제공하도록 구성된 다른 시각 표시기와 같은 광원(148)을 포함할 수 있다. 센서(134)는 예를 들어, 주변 광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크로폰 또는 터치 센서를 포함할 수 있다. 변환기(136)는 스피커 또는 마이크로폰을 포함할 수 있다. 오디오 드라이버(138)는 하드웨어 변환기(136)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 대응하는 음향파 또는 음파를 생성하도록 변환기(136)를 제어하기 위해 데이터 프로세싱 시스템(102)에 의해 제공된 오디오 파일 또는 다른 명령어들을 실행할 수 있다. 사전-프로세서(140)는 키워드를 검출하고 키워드에 기초하여 액션을 수행하도록 구성된 하드웨어를 갖는 프로세싱 유닛을 포함할 수 있다. 사전-프로세서(140)는 추가 프로세싱을 위해 데이터 프로세싱 시스템(102)에 용어들을 전송하기 전에 하나 이상의 용어들을 걸러내거나 용어들을 수정할 수 있다. 사전-프로세서(140)는 마이크로폰에 의해 검출된 아날로그 오디오 신호들을 디지털 오디오 신호로 변환할 수 있고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷들을 네트워크(105)를 통해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 일부 경우들에서, 사전-프로세서(140)는 이러한 전송을 수행하라는 명령어의 검출에 응답하여 입력 오디오 신호의 일부 또는 전부를 운반하는 데이터 패킷들을 전송할 수 있다. 명령어는, 예를 들어, 트리거 키워드 또는 다른 키워드 또는 입력 오디오 신호를 포함하는 데이터 패킷들을 데이터 프로세싱 시스템(102)에 전송하기 위한 승인을 포함할 수 있다.
로컬 클라이언트 컴퓨팅 디바이스(104)는(센서(134)를 통해) 로컬 클라이언트 컴퓨팅 디바이스(104)에 오디오 입력으로써 음성 쿼리들을 입력하는 최종 사용자와 연관될 수 있으며, 변환기(136) (예를 들어, 스피커)로부터 출력된, 데이터 프로세싱 시스템(102) (또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 서비스 제공자 컴퓨팅 디바이스(108))로부터 로컬 클라이언트 컴퓨팅 디바이스(104)에 제공될 수 있는 컴퓨터로 생성된 음성 형태로, 오디오 출력을 수신할 수 있다. 컴퓨터에서 생성된 음성은 실제 사람이나 컴퓨터로 생성된 언어의 레코딩들을 포함할 수 있다.
데이터 저장소(124)는 하나 이상의 로컬 또는 분산 데이터베이스들을 포함할 수 있으며, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(124)는 컴퓨터 데이터 저장 또는 메모리를 포함할 수 있고 다른 데이터 중에서 하나 이상의 파라미터들(126), 하나 이상의 정책들(128), 콘텐츠 데이터(130), 서명들 및 계정들(132) 또는 프로필 스택(142)을 저장할 수 있다. 파라미터들(126), 정책들(128) 및 서명들(132) 또는 프로필 스택(142)은 로컬 클라이언트 컴퓨팅 디바이스(104)와 데이터 프로세싱 시스템(102) (또는 제3 자 디바이스(146)) 사이의 음성 기반 세션에 관한 규칙들과 같은 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 로컬 클라이언트 컴퓨팅 디바이스(104)와의 하나 이상의 통신 세션들 중 일부일 수 있는 입력 오디오 메시지뿐만 아니라, 오디오 출력 또는 연관된 메타데이터에 대한 디지털 컴포넌트들을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(110)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 자연어 프로세서 컴포넌트(112)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 스태킹 엔진 컴포넌트(114)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 직동식(direct action) 애플리케이션 프로그래밍 인터페이스("API")(116)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 콘텐츠 선택기 컴포넌트(118)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 화자 인식 컴포넌트(120)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 저장소(124)를 포함, 인터페이스할 수 있거나, 그렇지 않으면 그것과 통신할 수 있다. 적어도 하나의 데이터 저장소(124)는 하나 이상의 데이터 구조들 또는 데이터베이스들에, 파라미터들(126), 정책들(128), 콘텐츠 데이터(130), 서명들(132), 또는 프로필 스택(142)을 저장 또는 포함할 수 있다. 파라미터들(126)은 예를 들어 임계치들, 거리들, 시간 간격들, 지속 기간들, 스코어들 또는 가중치들을 포함할 수 있다. 콘텐츠 데이터(130)는 콘텐츠 제공자(106)에 의해 제공되거나 콘텐츠 선택을 용이하게 하기 위해 데이터 프로세싱 시스템에 의해 획득되거나 결정되는 예를들어, 콘텐츠 캠페인 정보, 콘텐츠 그룹들, 콘텐츠 선택 기준, 디지털 컴포넌트 객체들 또는 다른 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어, 콘텐츠 캠페인의 히스토리 성능을 포함할 수 있다. 정책들(128)은 예를 들어, 로컬 컴퓨팅 디바이스(104)에서 일정 타입의 액션들 또는 콘텐츠 전달을 허용 또는 차단하는 정책을 포함할 수 있다. 서명들(132)은 음향 또는 오디오 서명들을 포함할 수 있다. 서명들(132)은 오디오 샘플을 식별하거나 오디오 데이터베이스에서 유사 아이템들을 신속하게 찾아내는데 사용될 수 있는, 오디오 신호로부터 결정론적으로 생성된 응축된 디지털 요약, 지문을 포함할 수 있는, 음향 지문을 지칭할 수 있다. 서명들(132)은 화자 인식 컴포넌트(120)에 의해 프로필을 식별하는 것을 용이하게 하기 위해 데이터를 포함할 수 있다. 프로필 스택 데이터 구조(142)는 계층화된, 스택 또는 병합되고 로컬 컴퓨팅 디바이스(104)에서의 입력 오디오 신호들을 프로세싱하기 위해 적용되고 있는 하나 이상의 프로필들을 포함할 수 있다.
인터페이스(110), 자연어 프로세서 컴포넌트(112), 스태킹 엔진 컴포넌트(114), 직동식 API(116), 콘텐츠 선택기 컴포넌트(118) 또는 화자 인식 컴포넌트(120) 각각은 데이터베이스 저장소 또는 데이터베이스(124)와 통신하도록 구성된 모듈, 또는 프로그램 가능한 논리 어레이 엔진과 같은 적어도 하나의 다른 논리 디바이스 또는 프로세싱 유닛을 포함할 수 있다. 인터페이스(110), 자연어 프로세서 컴포넌트(112), 스태킹 엔진 컴포넌트(114), 직동식 API(116), 콘텐츠 선택기 컴포넌트(118), 또는 화자 인식 컴포넌트(120) 및 데이터 저장소(124)는 개별 컴포넌트들, 단일 컴포넌트 또는 데이터 프로세싱 시스템(102)의 부분일 수 있다. 데이터 프로세싱 시스템(102)과 같은, 시스템(100) 및 그것의 컴포넌트들은 하나 이상의 프로세서들, 논리 디바이스들 또는 회로들과 같은 하드웨어 요소들을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 복수의 컴퓨팅 디바이스들(104)과 연관된 익명의 컴퓨터 네트워크 액티비티 정보를 획득할 수 있다. 로컬 컴퓨팅 디바이스(104) 또는 모바일 컴퓨팅 디바이스(144)의 사용자는 로컬 컴퓨팅 디바이스(104) 또는 모바일 컴퓨팅 디바이스(144)에 대응하는 네트워크 활동 정보를 획득하기 위해 데이터 프로세싱 시스템(102)을 긍정적으로 인증할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 사용자에게 하나 이상 타입의 네트워크 액티비티 정보를 획득하기 위해 동의를 촉구할 수 있다. 모바일 컴퓨팅 디바이스(144) 또는 로컬 컴퓨팅 디바이스(104)의 사용자의 신원은 익명으로 남을 수 있고 컴퓨팅 디바이스들(104 또는 144)은 고유 식별자 (예를 들어, 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스에 의해 제공된 컴퓨팅 디바이스 또는 사용자에 대한 고유 식별자)와 연관될 수 있다. 데이터 프로세싱 시스템은 각 관찰을 대응하는 고유 식별자와 연관시킬 수 있다.
콘텐츠 제공자(106)는 전자 콘텐츠 캠페인을 설정할 수 있다. 전자 콘텐츠 캠페인은 데이터 저장소(124)에 콘텐츠 데이터(130)로 저장될 수 있다. 전자 콘텐츠 캠페인은 공통 테마에 대응하는 하나 이상의 콘텐츠 그룹들을 지칭할 수 있다. 콘텐츠 캠페인은 콘텐츠 그룹들, 디지털 컴포넌트 데이터 객체들 및 콘텐츠 선택 기준을 포함하는 계층적 데이터 구조를 포함할 수 있다. 콘텐츠 캠페인을 제작하기 위해, 콘텐츠 제공자(106)는 콘텐츠 캠페인의 캠페인 레벨 파라미터들에 대한 값들을 특정할 수 있다. 캠페인 레벨 파라미터들은 예를 들어, 캠페인 이름, 디지털 컴포넌트 객체들을 배치하기 위해 선호되는 콘텐츠 네트워크, 콘텐츠 캠페인을 위해 사용될 리소스들의 값, 콘텐츠 캠페인에 대한 시작 및 종료 날짜들, 콘텐츠 캠페인의 지속 기간, 디지털 컴포넌트 객체 배치들에 대한 스케줄, 언어, 지리적 위치들, 디지털 컴포넌트 객체들을 제공할 컴퓨팅 디바이스들 타입을 포함할 수 있다. 일부 경우들에서, 인상(impression)은 디지털 컴포넌트 객체가 그것의 소스 (예를 들어, 데이터 프로세싱 시스템(102) 또는 콘텐츠 제공자(106))로부터 인출될 때 참조될 수 있고, 셀 수 있다. 일부 경우들에서, 클릭 사기의 가능성으로 인해, 로봇 액티비티는 인상으로 필터링될 수 있고 제외될 수 있다. 즉, 일부 경우들에서, 인상은 브라우저의 페이지 요청에 대한 웹 서버로부터의 응답들의 측정을 지칭할 수 있으며, 그것은 로봇 액티비티 및 에러 코드들로부터 필터링되며, 컴퓨팅 디바이스(104) 상의 디스플레이를 위해 디지털 컴포넌트 객체를 렌더링할 기회에 가능한 가까운 지점에 기록된다. 일부 경우들에서, 인상은 볼 수 있거나 들을 수 있는 인상을 지칭할 수 있다; 예를 들어, 디지털 컴포넌트 객체는 로컬 클라이언트 컴퓨팅 디바이스(104)의 디스플레이 디바이스 상에서 적어도 부분적으로 (예를 들어, 20%, 30%, 40%, 50%, 60%, 70% 또는 그 이상) 볼 수 있거나, 컴퓨팅 디바이스(104)의 스피커(136)를 통해 들을 수 있다. 클릭 또는 선택은 들을 수 있는 인상, 마우스 클릭, 터치 인터랙션, 제스처, 진동, 오디오 인터랙션 또는 키보드 클릭에 대한 음성 응답과 같은, 디지털 컴포넌트 객체와의 사용자 인터랙션을 지칭할 수 있다. 변환은 디지털 컴포넌트 객체와 관련하여 원하는 액션을 취하는 사용자를 지칭할 수 있다; 예를 들어, 제품 또는 서비스를 구매하거나, 조사를 완료하거나, 디지털 컴포넌트에 대응하는 실제 매장을 방문하거나, 또는 전자 거래를 완료.
콘텐츠 제공자(106)는 콘텐츠 캠페인에 대한 하나 이상의 콘텐츠 그룹들을 더 설정할 수 있다. 콘텐츠 그룹은 키워드들, 단어들, 용어들, 구문들, 지리적 위치들, 컴퓨팅 디바이스의 타입, 시간, 관심 분야, 토픽 또는 업종과 같은, 대응하는 콘텐츠 선택 기준 및 하나 이상의 디지털 컴포넌트 객체들을 포함한다. 동일한 콘텐츠 캠페인에 속한 콘텐츠 그룹들은 동일한 캠페인 레벨 파라미터들을 공유할 수 있지만, 키워드들, 네거티브 키워드들 (예를 들어, 메인 콘텐츠에 네거티브 키워드가 존재할 시 디지털 컴포넌트의 배치를 차단하는), 키워드들에 대한 입찰들, 또는 입찰 또는 콘텐츠 캠페인과 연관된 파라미터들과 같은, 특정한 콘텐츠 그룹 레벨 파라미터들에 대한 사양(specification)들을 테일러링(tailor) 했을 수 있다.
새 콘텐츠 그룹을 제작하기 위해, 콘텐츠 제공자는 콘텐츠 그룹의 콘텐츠 그룹 레벨 파라미터들에 대한 값들을 제공할 수 있다. 콘텐츠 그룹 레벨 파라미터들은 예를 들어, 콘텐츠 그룹 이름 또는 콘텐츠 그룹 테마, 및 상이한 콘텐츠 배치 기회들에 대한 입찰들 (예를 들어, 자동 배치 또는 관리된 배치) 또는 결과들(outcome) (예를 들어, 클릭들, 인상들 또는 변환들)을 포함한다. 콘텐츠 그룹 이름 또는 콘텐츠 그룹 테마는 하나 이상의 용어들일 수 있으며, 상기 용어들은 콘텐츠 제공자(106)가 콘텐츠 그룹의 디지털 컴포넌트 객체들이 디스플레이를 위해 선택되어야 하는 주제 또는 토픽를 캡쳐하기 위해 사용할 수 있다. 예를 들어 자동차 대리점은 휴대하고 있는 차량의 각 브랜드에 대해 상이한 콘텐츠 그룹을 제작할 수 있으며, 휴대하고 있는 차량의 각 모델에 대해 상이한 콘텐츠 그룹을 더 제작할 수 있다. 자동차 대리점이 사용할 수 있는 콘텐츠 그룹 테마들의 예시들은 예를 들어, “A 스포츠카 만들기”, “B 스포츠카 만들기”, “C 세단 만들기”, “C 트럭 만들기”, “C 하이브리드 만들기”, 또는 “D 하이브리드 만들기"를 포함한다. 콘텐츠 캠페인 테마의 예시는 예를 들어, '하이브리드'일 수 있으며 'C 하이브리드 만들기' 및 'D 하이브리드 만들기' 둘 모두에 대한 콘텐츠 그룹들을 포함할 수 있다.
콘텐츠 제공자(106)는 하나 이상의 키워드들 및 디지털 컴포넌트 객체들을 각 콘텐츠 그룹에 제공할 수 있다. 키워드들은 디지털 컴포넌트 객체들과 연관되거나 디지털 컴포넌트 객체들에 의해 식별되는 제품 또는 서비스들과 관련된 용어들을 포함할 수 있다. 키워드는 하나 이상의 용어들 또는 구문들을 포함할 수 있다. 예를 들어, 자동차 대리점은 콘텐츠 그룹 또는 콘텐츠 캠페인의 키워드들로써 "스포츠카", "V-6 엔진", "4-륜 구동", "연료 효율성"을 포함할 수 있다. 일부 경우들에서, 일정 용어들 또는 키워드들에 대한 콘텐츠 배치를 불능, 차단, 회피 또는 예방하기 위해 콘텐츠 제공자에 의해 네거티브 키워드가 특정될 수 있다. 콘텐츠 제공자는 디지털 컴포넌트 객체들을 선택하는데 사용되는 정확한 일치, 구문 일치, 또는 폭넓은 일치와 같은, 일치 타입을 특정할 수 있다.
콘텐츠 제공자(106)는 콘텐츠 제공자(106)에 의해 제공된 디지털 컴포넌트 객체를 선택하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 하나 이상의 키워드들 제공할 수 있다. 콘텐츠 제공자(106)는 입찰할 하나 이상의 키워드들을 식별할 수 있고, 다양한 키워드들에 대한 입찰가들을 더 제공할 수 있다. 콘텐츠 제공자(106)는 디지털 컴포넌트 객체들을 선택하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 추가적인 콘텐츠 선택 기준을 제공할 수 있다. 다수의 콘텐츠 제공자들(106)은 동일하거나 상이한 키워드들에 입찰할 수 있고, 데이터 프로세싱 시스템(102)은 전자 메시지의 키워드의 표시를 수신하는 것에 응답하여 콘텐츠 선택 프로세스 또는 광고 옥션을 작동할 수 있다.
콘텐츠 제공자(106)는 데이터 프로세싱 시스템(102)에 의한 선택을 위해 하나 이상의 디지털 컴포넌트 객체들을 제공할 수 있다. 데이터 프로세싱 시스템(102)은 (예를 들어, 콘텐츠 선택기 컴포넌트(118)를 통해) 리소스 할당, 콘텐츠 스케줄, 최대 입찰가, 키워드들 및 콘텐츠 그룹에 대해 특정된 다른 선택 기준과 일치하는 콘텐츠 배치 기회가 사용 가능하게 될 때, 디지털 컴포넌트 객체들을 선택할 수 있다. 음성 디지털 컴포넌트, 오디오 디지털 컴포넌트, 텍스트 디지털 컴포넌트, 이미지 디지털 컴포넌트, 비디오 디지털 컴포넌트, 멀티미디어 디지털 컴포넌트 또는 디지털 컴포넌트 링크와 같은, 다양한 유형의 디지털 컴포넌트 객체들이 콘텐츠 그룹에 포함될 수 있다. 디지털 컴포넌트 객체 (또는 디지털 컴포넌트)는 예를 들어, 콘텐츠 아이템, 온라인 문서, 오디오, 이미지들, 비디오, 멀티미디어 콘텐츠 또는 후원 콘텐츠를 포함할 수 있다. 디지털 컴포넌트를 선택하면, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 디스플레이 디바이스 상에 렌더링을 위해 디지털 컴포넌트 객체를 전송할 수 있다. 렌더링은 디스플레이 디바이스 상에 디지털 컴포넌트를 디스플레이하거나 컴퓨팅 디바이스(104)의 스피커를 통해 디지털 컴포넌트를 재생하는 것을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 디지털 컴포넌트 객체를 렌더링하기 위해 컴퓨팅 디바이스(104)에 명령어들을 제공할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 오디오 드라이버(138)에 오디오 신호들 또는 음향 파들을 생성하도록 명령할 수 있다.
데이터 프로세싱 시스템(102)은 예를 들어, 데이터 패킷들, 을 사용하여 정보를 수신하고 전송하도록 디자인된, 구성된, 구축된 또는 동작하는 인터페이스 컴포넌트(110)를 포함할 수 있다. 인터페이스(110)는 네트워크 프로토콜과 같은, 하나 이상의 프로토콜들을 사용하여 정보를 수신하고 전송할 수 있다. 인터페이스(110)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(110)는 데이터를 하나의 포맷으로부터 다른 포맷으로 변환 또는 포맷팅하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(110)는 소프트웨어 컴포넌트들과 같은, 다양한 컴포넌트들 간의 통신을 위해 정의들을 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다. 인터페이스(110)는 네트워크(105)를 통해 로컬 컴퓨팅 디바이스(104), 콘텐츠 제공자 디바이스(106), 제3 자 디바이스(146) 또는 모바일 컴퓨팅 디바이스(144) 중 하나 이상과 통신할 수 있다.
데이터 프로세싱 시스템(102)은 로컬 클라이언트 컴퓨팅 디바이스(104)에 설치된, 데이터 프로세싱 시스템(102)의 인터페이스(110)에 입력 오디오 신호들을 전달하고 출력 오디오 신호들을 렌더링하기 위해 로컬 클라이언트 컴퓨팅 디바이스의 컴포넌트들을 구동하는 애플리케이션과 같은, 애플리케이션, 스크립트 또는 프로그램과 인터페이스할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 패킷들 또는 오디오 입력 신호를 포함하거나 식별하는 다른 신호를 수신할 수 있다.
데이터 프로세싱 시스템(102)은 로컬 컴퓨팅 디바이스(104)에 의해 검출된 오디오 입력 신호를 수신하고, 음향 서명을 식별하고, 음향 서명에 대응하는 전자 계정을 식별하도록 디자인된, 구축된 및 동작하는 화자 인식 컴포넌트(120)를 포함할 수 있다. 화자 인식 컴포넌트(120)는 로컬 컴퓨팅 디바이스(104)의 센서(134) 또는 변환기(136)에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 인터페이스(110)를 통해 수신할 수 있다. 화자 인식 컴포넌트(120)는 입력 오디오 신호로부터 음향 서명을 식별할 수 있다. 화자 인식 컴포넌트(120)는 데이터 저장소(124) 내의 룩업에 기초하여, 음향 서명에 대응하는 전자 계정을 식별할 수 있다.
화자 인식 컴포넌트(120)는 입력 오디오 신호들을 운반하는 페이로드를 갖는 데이터 패킷들을 수신할 수 있다. 화자 인식 컴포넌트(120)는 일정 오디오 주파수들을 제거하기 위해 입력 오디오 신호에 대한 사전-필터링 또는 사전-프로세싱을 수행할 수 있다. 사전-필터링은 저역 통과 필터, 고역 통과 필터 또는 대역 통과 필터와 같은 필터들을 포함할 수 있다. 필터들은 주파수 도메인에서 적용될 수 있다. 필터들은 디지털 신호 프로세싱 기술을 사용하여 적용될 수 있다. 필터는 인간의 음성 또는 인간의 음성에 대응하는 주파수들을 유지하면서, 사람의 음성의 전형적인 주파수들을 벗어나는 주파수들을 제거하도록 구성될 수 있다. 예를 들어, 대역 통과 필터는 제1 임계치 (예를 들어, 70 Hz, 75 Hz, 80 Hz, 85 Hz, 90 Hz, 95 Hz, 100 Hz 또는 105 Hz) 이하 및 제2 임계치(200 Hz, 205 Hz, 210 Hz, 225 Hz, 235 Hz, 245 Hz 또는 255 Hz) 이상의 주파수들을 제거하도록 구성될 수 있다. 대역 통과 필터를 적용하는 것은 다운스트림 프로세싱에서 컴퓨팅 리소스 활용을 감소시킬 수 있다. 일부 경우들에서, 로컬 컴퓨팅 디바이스(104) 상의 사전-프로세서(140)는 입력 오디오 신호를 데이터 프로세싱 시스템(102)에 전송하기 전에 대역 통과 필터를 적용할 수 있고, 이로써 네트워크 대역폭 활용을 감소시킨다. 그러나, 로컬 컴퓨팅 디바이스(104)에 사용 가능한 컴퓨팅 리소스들에 기초하여, 데이터 프로세싱 시스템(102)이 필터링을 수행할 수 있도록 데이터 프로세싱 시스템(102)에 입력 오디오 신호를 제공하는 것이 보다 효율적일 수 있다.
화자 인식 컴포넌트(120)는 화자에 대응하는 전자 계정을 식별하는 것을 용이하게 하기 위해 추가적인 사전-프로세싱 또는 사전-필터링 기버들을 적용할 수 있다. 예를 들어, 화자 인식 컴포넌트(120)는 화자 인식을 방해할 수 있는 주변 노이즈 레벨들을 감소시키기 위해 노이즈 감소 기법들을 적용할 수 있다. 노이즈 감소 기법들은 화자 인식의 정확성 및 스피드를 개선시킬 수 있으며, 이로써 전자 계정을 식별하는데 데이터 프로세싱 시스템(102)의 성능을 개선한다.
화자 인식 컴포넌트(120)는 데이터 저장소(124)에 저장된 서명들 (132)을 액세스할 수 있다. 화자 인식 컴포넌트(120)는 서명을 식별하고, 전자 서명을 식별하기 위해 상기 서명을 사용하기 위해 필터링된 입력 오디오 신호를 분석할 수 있다. 즉, 화자 인식 컴포넌트(120)는 입력 오디오 신호의 서명에 대응하는 전자 계정을 식별하기 위해 화자 인식 또는 음성 인식을 수행할 수 있다.
화자 인식 컴포넌트(120)는 패턴 인식과 같은 하나 이상의 화자 인식 기법들로 구성될 수 있다. 화자 인식 컴포넌트(120)는 텍스트-독립적 화자 인식 프로세스로 구성될 수 있다. 텍스트-독립적 화자 인식 프로세스에서, 전자 계정를 설정하기 위해 사용된 텍스트는 나중에 화자를 인식하기 위해 사용된 텍스트와 상이할 수 있다.
예를 들어, 화자 인식 컴포넌트(120)는 입력 음성 소스들 사이에서 상이한 입력 오디오 신호 내의 음향 특징(feature)들을 식별할 수 있다. 음향 특징들은 고유한 입력 음성 소스에 대응할 수 있는 실제 또는 학습된 패턴들을 반영할 수 있다. 음향 특징들은 예를 들어, 음성 피치(pitch) 또는 발화 스타일을 포함할 수 있다. 서명들을 식별, 프로세싱 및 저장하는데 사용되는 기법들은, 주파수 평가 (예를 들어, 즉각적인 기본 주파수, 또는 이산 에너지 분리 알고리즘) 숨겨진 마르코프 모델들 (예를 들어, 랜덤하게 변화하는 시스템들을 모델링하기 위해 사용되는 확률론적 모델, 언급된 미래는 현재의 상태에 달려 있으며, 모델링되고 있는 시스템이 관찰되지 않았던 상태들이다), 가우시안 혼합 모델들 (예를 들어, 가우시안 컴포넌트 밀도들의 가중된 합으로 표현되는 파라메트릭 확률 밀도 함수), 패턴 일치 알고리즘들, 신경 네트워크들, 행렬 표현, 벡터 양자화 (예를 들어, 프로토타입 벡터들의 분포에 의한 확률 밀도 함수들의 모델링을 허용하는 신호 프로세싱으로부터의 양자화 기법) 또는 의사 결정 트리들을 포함할 수 있다. 추가 기법들은 코호트 모델들 및 월드 모델들과 같은, 반-화자 기법들을 포함할 수 있다. 화자 인식 컴포넌트(120)는 패턴 인식을 용이하게 하거나 화자 특성들에 적응하기 위해 기계 학습 모델로 구성될 수 있다.
입력 오디오 신호 내의 음향 서명을 식별하면, 화자 인식 컴포넌트(120)는 데이터 저장소(124) 또는 서명 데이터 구조(132)에서 룩업을 수행할 수 있다. 서명 데이터 구조(132)에 저장된 서명들은 전자 계정의 식별자에 매핑될 수 있다. 화자 인식 컴포넌트(120)는 입력 오디오의 서명에 대응하는 전자 계정을 검색하기 위해 입력 오디오 신호에서 식별된 서명을 사용하여 서명 데이터 구조(132)에서 룩업을 수행할 수 있다.
일부 경우들에서, 화자 인식 컴포넌트(120)는, 룩업에 기초하여, 음향 서명에 대응하는 전자 계정의 부재를 결정할 수 있다. 예를 들어, 서명은 서명 데이터 구조(132)에 저장되지 않을 수 있거나 또는 서명에 대한 전자 계정이 아직 설정되지 않았을 수 있다. 룩업은 null값 또는 빈 집합을 리턴할 수 있다. 서명 또는 전자 계정의 부재를 결정하는 것에 응답하여, 화자 인식 컴포넌트(120)는 데이터 저장소에 전자 계정을 제작할 수 있다. 화자 인식 컴포넌트(120)는 입력 오디오 신호 및 대응하는 전자 계정으로부터 구축된 새로운 서명을 포함하도록 서명 데이터 구조(132)를 업데이트할 수 있다. 화자 인식 컴포넌트(120)는 전자 계정을 새로운 음향 서명으로 매핑할 수 있다.
데이터 프로세싱 시스템(102)은 세션을 설정하고 세션 동안 사용하기 위해 하나 이상의 프로필들을 결부하도록 디자인된, 구축된 및 동작하는 스태킹 엔진 컴포넌트(114)와 인터페이스하거나 그렇지 않으면 액세스할 수 있다. 스태킹 엔진 컴포넌트(114)는 화자 인식 컴포넌트(120)로부터 전자 계정의 표시를 수신할 수 있다. 스태킹 엔진 컴포넌트(114)는 서명들 및 계정 데이터 구조(132)로부터 전자 계정과 연관된 정보를 검색할 수 있다. 전자 계정은 입력 오디오 쿼리들의 프로세싱 및 응답들의 생성을 용이하게 하는 정보를 저장할 수 있다. 전자 계정은 입력 오디오 신호를 제공한 화자에 대응하는 프로필을 포함할 수 있다. 프로필은 라벨들, 규칙들, 선호도들, 식별자들, 구독들, 계정 세팅들, 또는 디바이스 구성 세팅들을 포함할 수 있다. 프로필은 전자 계정과 연관된 모바일 컴퓨팅 디바이스(144) 또는 전자 계정과 연관된 다른 네트워크 디바이스들과 같은, 다른 원격 디바이스들과 인터랙팅하는 구성들 정보를 포함할 수 있다.
예를 들어, 전자 계정은 네트워크(105)와 인터페이스하도록 구성된 서모스탯(thermostat)과 같은, 네트워크 디바이스용 라벨을 포함할 수 있다. 서모스탯은 전자 계정에 대응하는 화자와 연관된 제1 위치 (예를 들어, 거주지)에 위치될 수 있다. 프로필에서, 서모스탯은 "거실" 서모스탯의 라벨을 가질 수 있다. 데이터 프로세싱 시스템(102)이 입력 쿼리 "거실의 온도가 무엇인가" 또는 "거실의 온도를 70도로 세팅"을 수신하면, 데이터 프로세싱 시스템(102)은, 프로필을 통해, 전자 계정은 "거실"이라는 라벨을 갖는 서모스탯에 링크되었다고 결정할 수 있으며, 그 후 "거실"이라고 라벨링된 서모스탯에 대응하는 액션 데이터 구조를 생성하기 위해 직동식 API(116)에 라벨을 제공한다.
그러나, 입력 오디오 신호를 검출하는 로컬 컴퓨팅 디바이스(104)는 제1 위치에 위치하지 않을 수 있다. 오히려, 로컬 컴퓨팅 디바이스(104)는 물리적으로 및 지리적으로 제1 위치로부터 분리된 제2 위치에 위치될 수 있다. 제2 위치는 제3 자 디바이스와 연관된 제3 자 엔티티에 의해 관리되거나, 운영되거나, 제어되거나, 그렇지 않으면 유지되는 위치일 수 있다. 제2 위치는 호텔 룸, 미팅룸, 컨퍼런스 룸, 소매점, 임대 차량, 게스트 룸, 호스틸 또는 기숙사와 같이, 비보안된 장소, 공공 장소 또는 임시 장소일 수 있다.
공공 장소 또는 비보안된 장소를 유지하는 제3 자 디바이스(146)는 로컬 컴퓨팅 디바이스(104)를 설정하고 유지할 수 있다. 제3 자 디바이스(146)는 로컬 컴퓨팅 디바이스(104)에 대한 기준 또는 디폴트 프로필을 설정할 수 있다. 제3 자 디바이스(146)는 제1 프로필을 제공할 수 있다. 제1 프로필은 기준 프로필, 디폴트 프로필 또는 제3 자 프로필일 수 있다. 제3 자 디바이스(146)는 제1 프로필을 설정할 수 있다. 제1 프로필은 제3 자 디바이스(146)에 의해 설정된 하나 이상의 정책들 또는 규칙들을 포함할 수 있다. 예를 들어, 제3 자 디바이스(146)는 다른 타입의 액티비티들 또는 액션들을 더 무겁게 가중하는 동안, 일정 타입의 액티비티들 또는 액션들을 차단하거나 예방하는 정책들, 규칙들 또는 세팅들을 제공할 수 있다. 정책은 제1 프로필에 저장될 수 있다.
제1 프로필은 인터넷 연결된 디바이스들용 라벨들을 포함할 수 있다. 제1 프로필의 라벨들은 제3 자 디바이스(146)에 의해 설정되거나 제공될 수 있다. 예를 들어, 라벨들은 인터넷 연결된 디바이스들 (예를 들어, 인터넷 연결된 서모스탯, 인터넷 연결된 광원, 인터넷 연결된 연기 알람, 인터넷 연결된 기기, 인터넷 연결된 디스플레이, 인터넷 연결된 TV 또는 인터넷 연결된 스피커)에 대응할 수 있다. 이러한 인터넷 연결된 디바이스들용 라벨들은 제3 자 엔티티에 의해 제공될 수 있다. 예를 들어, 라벨은 "호텔 서모스탯" 또는 "BrandA Hotel 서모스탯"일 수 있다.
제3 자 디바이스(146)는 데이터 프로세싱 시스템(102)으로 하여금 제1 프로필을 로컬 컴퓨팅 디바이스(104)와 연관된 세션에 대해 개시된 프로필 스택으로 푸싱하도록 하기 위해 데이터 프로세싱 시스템(102)에 제1 프로필을 제공할 수 있다. 스태킹 엔진 컴포넌트(114)는 세션에 대해 설정된 프로필 스택 내의 제1 프로필 계층에 제1 프로필을 저장, 배치 또는 스택할 수 있다. 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스 (예를 들어, 제3 자 디바이스(146))에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함할 수 있다.
스태킹 엔진 컴포넌트(114)는, 전자 계정의 식별에 응답하여, 세션을 설정할 수 있다. 세션은 통신 세션, 디지털 어시스턴트 세션, 직동식 세션, 콘텐츠 선택 세션, 디지털 컴포넌트 선택 세션, 또는 프로필 세션을 지칭할 수 있다. 세션은 지속 기간을 가질 수 있다. 종료 이벤트 또는 조건이 발생할 때까지 세션은 계속될 수 있다. 종료 이벤트는 세션으로 하여금 종료되도록 할 수 있다. 종료시 세션의 상태는 저장될 수 있다. 프로필 스택 내의 프로필은 세션이 종료되면 업데이트될 수 있다.
스태킹 엔진 컴포넌트(114)는 세션에서 사용하기 위해 프로필 스택 데이터 구조를 설정할 수 있다. 스태킹 엔진 컴포넌트(114)는 제3 자 디바이스(146)에 의해 제공된 제1 프로필을 포함하도록 프로필 스택 데이터 구조를 초기화할 수 있다.
스태킹 엔진 컴포넌트(114)는 프로필 스택 내의 제1 계층으로 제1 프로필 (예를 들어, 로컬 컴퓨팅 디바이스(104)에 대한 디폴트 프로필)을 푸싱할 수 있다. 예를 들어, 스태킹 엔진 컴포넌트(114)는 디폴트 프로필이 로컬 컴퓨팅 디바이스(104)를 유지, 소유, 관리 또는 운영하는 동일한 제3 자와 연관된 제3 자 디바이스(146)에 의해 제공됨을 결정할 수 있다.
스태킹 엔진 컴포넌트(114)는 그 후 전자 계정 및 서명에 대응하는 제2 프로필을 검색할 수 있다. 스태킹 엔진 컴포넌트(114)는 제2 프로필을 프로필 데이터 구조에 푸싱할 수있다. 예를 들어, 제1 프로필 계층은 제1 프로필을 포함할 수 있고, 제2 프로필 계층은 제2 프로필을 포함할 수 있다.
스태킹 엔진 컴포넌트(114)는 추가 프로세싱을 위해 데이터 프로세싱 시스템(102)의 하나 이상의 컴포넌트들에게 제1 프로필 계층 및 제2 프로필 계층을 포함하는 프로필 스택을 제공할 수 있다. 일부 경우들에서, 스태킹 엔진 컴포넌트(114)는 단일 프로필 계층을 제작하기 위해 제1 프로필 레이이와 제2 프로필 계층을 융합, 병합 또는 그렇지 않으면 결부할 수 있다. 일부 경우들에서, 스태킹 엔진 컴포넌트(114)는 추가 프로세싱을 위해 2개의 프로필 계층들을 갖는 프로필 스택을 직동식 API(116) 또는 콘텐츠 선택기 컴포넌트(118)에 제공할 수 있다.
제2 프로필 계층 및 제1 프로필 계층을 갖는 프로필 스택 데이터 구조를 설정하는 것은 제1 프로필 계층 및 제2 프로필 계층에 연관되거나 표시된 하나 이상의 제3 자 디바이스들, 인터넷 연결된 디바이스들, 세션들, 인터페이스들과 연동하는 것을 포함할 수 있다. 예를 들어, 제1 프로필 계층은 도 2의 보안된 공공 세팅(202)에 도시된 인터넷 접속된 디바이스들(204, 206, 208, 210 및 212)을 포함할 수 있으며, 제2 프로필 계층은 도 4의 개인 세팅(402)에 도시된 인터넷 연결된 디바이스들(204, 206, 208, 210 및 212)을 포함할 수 있다. 공공 세팅(202)의 인터넷 연결된 디바이스들은 개인 세팅(402)의 인터넷 연결된 디바이스들과 비교하여 상이한 식별자들을 가질 수 있다. 데이터 프로세싱 시스템(102)은, 프로필 스택 데이터 구조를 설정할 때, 상태 체크를 수행하거나 준비 상태로 들어가기 위해 인터넷 연결된 디바이스들 각각에 핑(ping), 폴(poll) 또는 그렇지 않으면 쿼리할 수 있다.
데이터 프로세싱 시스템(102)은 로컬 컴퓨팅 디바이스(104)로부터의 입력 오디오 신호들을 통해 수신된 쿼리들 또는 액션들을 프로세싱하기 위해 프로필 스택을 사용할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호에서 쿼리를 식별하기 위해 NLP 컴포넌트(112)를 사용할 수 있으며, 그 후 직동식 API(116)는 프로필 스택을 따르고, 프로필 스택에 부합하는 액션 데이터 구조를 생성하기 위해 입력 쿼리를 프로세싱하도록 프로필 스택을 사용할 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)은 오디오 신호를 수신 또는 획득하고 오디오 신호를 파싱하기 위해 NLP 컴포넌트(112)를 실행 또는 작동할 수 있다. 예를 들어, NLP 컴포넌트(112)는 인간과 컴퓨터 간의 인터랙션들을 제공할 수 있다. NLP 컴포넌트(112)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 허용하는 기법들로 구성될 수 있다. NLP 컴포넌트(112)는 통계적 기계 학습과 같은, 기계 학습에 기초한 기법을 포함하거나 상기 기법으로 구성될 수 있다. NLP 컴포넌트(112)는 입력 오디오 신호를 파싱하기 위해 결정 트리들, 통계적 모델들, 또는 확률론적 모델들을 활용할 수 있다. NLP 컴포넌트(112)는 예를 들어, 명명된 엔티티 인식 (예를 들어, 텍스트 스트림이 주어지면, 텍스트 맵에서 어떤 아이템들이 사람 또는 장소들과 같은 적절한 이름들로 결정되는지, 그리고 사람, 플레이스들(place), 또는 조직과 같은 그러한 이름 각각은 어떤 타입인지를 결정), 자연어 생성 (예를 들어, 컴퓨터 데이터베이스들 또는 의미론적 인텐트들로부터의 정보를 이해 가능한 인간 언어로 변환), 자연어 이해 (예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수 있는 1차 논리 구조와 같은 보다 형식적인 표현들로 변환), 기계 번역 (예를 들어, 하나의 언어에서 다른 언어로 자동으로 텍스트를 번역), 형태학적 분류 (예를 들어, 단어들을 개별적인 형태소들로 분리하고, 형태소들의 클래스를 식별하며, 이는 고려되고 있는 언어의 단어들의 형태 또는 구조의 복잡성에 기초하여 도전적일 수 있다), 질문 대답 (예를 들어, 인간-언어 질문에 대한 대답을 결정하고, 이는 특정적 또는 개방적일 수 있다), 의미론적 프로세싱 (예를 들어, 식별된 단어를 유사한 의미들을 갖는 다른 단어들과 관련시키기 위해, 단어를 식별하고 그 의미를 인코딩한 후에 발생할 수 있는 프로세싱)를 포함할 수 있다.
NLP 컴포넌트(112)는 입력 신호를, 저장되고 대표적인 오디오 파형들의 집합 (예를 들어, 데이터 저장소(124)에 있는)과 비교하여, 가장 가까운 일치들을 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환한다. 오디오 파형들의 집합은 데이터 저장소(124) 또는 데이터 프로세싱 시스템(102)에 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형들이 많은 사용자들의 집합에 걸쳐서 생성되며, 그 후 사용자로부터의 음성 샘플들로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(112)는 텍스트를 예를 들어, 사용자들에 대한 트레이닝 또는 매뉴얼 사양을 통해, 데이터 프로세싱 시스템(102)이 서비스할 수 있는 액션들과 연관된 단어들과 일치시킨다.
오디오 입력 신호는 로컬 클라이언트 컴퓨팅 디바이스(104)의 센서(134) 또는 변환기(136) (예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기(136), 오디오 드라이버(138), 또는 다른 컴포넌트들을 통해 로컬 클라이언트 컴퓨팅 디바이스(104)는 데이터 프로세싱 시스템(102)에 오디오 입력 신호를 (예를 들어, 네트워크(105)를 통해) 제공할 수 있으며, 그것은 수신될 수 있고 (예를 들어, 인터페이스(110)에 의해) NLP컴포넌트(112)에 제공되거나 데이터 저장소(124)에 저장될 수 있다.
NLP 컴포넌트(112)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(112)는 적어도 하나의 요청 또는 요청에 대응하는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 주제 또는 인텐트를 표시할 수 있다. 트리거 키워드는 취할 수 있는 액션 타입을 표시할 수 있다. 예를 들어, NLP 컴포넌트(112)는 저녁 식사 및 영화에 참석하기 위해 밤에 집을 떠나기 위한 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 트리거 키워드는 취할 액션를 표시하는 적어도 하나의 단어, 구문, 루트 또는 부분 단어 또는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 전송의 필요성을 표시할 수 있다. 이 예시에서, 입력 오디오 신호 (또는 식별된 요청)은 전송에 대한 인텐트를 직접 표현하지 않지만, 트리거 키워드는 전송이 요청에 의해 표시되는 적어도 하나의 다른 액션에 대한 보조적 액션(ancillary action)임을 표시한다.
NLP 컴포넌트(112)는 요청 및 트리거 키워드를 식별, 결정, 검색 또는 그렇지 않으면 획득하기 위해 입력 오디오 신호를 파싱할 수 있다. 예를 들어, NLP 컴포넌트(112)는 트리거 키워드 또는 요청을 식별하기 위해 입력 오디오 신호에 의미론적 프로세싱 기법을 적용할 수 있다. NLP 컴포넌트(112)는 제1 트리거 키워드 및 제2 트리거 키워드와 같은, 하나 이상의 트리거 키워드들을 포함하는 트리거 구문을 식별하기 위해 입력 오디오 신호에 의미론적 프로세싱 기법을 적용할 수 있다. 예를 들어, 입력 오디오 신호는 "세탁 및 드라이 클리닝을 할 누군가가 필요합니다."라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 트리거 구문들 "세탁하기" 및 "드라이 클리닝 하기"를 식별하기 위해, 문장을 포함하는 데이터 패킷들에 의미론적 프로세싱 기법 또는 다른 자연어 프로세싱 기법을 적용할 수 있다. NLP 컴포넌트(112)는 세탁 및 드라이 클리닝과 같은, 다수의 트리거 키워드들을 더 식별할 수 있다. 예를 들어, NLP 컴포넌트(112)는 트리거 구문이 트리거 키워드 및 제2 트리거 키워드를 포함한다고 결정할 수 있다.
NLP 컴포넌트(112)는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 필터링할 수 있다. 예를 들어, 입력 오디오 신호를 운반하는 데이터 패킷들은 "It would be great if I could get someone that could help me go to the airport"을 포함할 수 있으며, 이 경우 NLP 컴포넌트(112)는 다음과 같이 하나 이상의 용어들을 걸러낼 수 있다: “it”,“would”,“be”,“great”,“if”,“I”,“could”,“get”,“someone”,“that”, "could”또는 “help” 이들 용어를 필터링함으로써, NLP 컴포넌트(112)는 "go to the airport"와 같은 트리거 키워드를 보다 정확하고 신뢰성 있게 식별하고, 이것이 택시 또는 라이드 쉐어링 서비스(ride sharing service)에 대한 요청임을 결정할 수 있다.
일부 경우들에서, NLP 컴포넌트는 입력 오디오 신호를 운반하는 데이터 패킷들이 하나 이상의 요청들을 포함한다고 결정할 수 있다. 예를 들어, 입력 오디오 신호는 "세탁 및 드라이 클리닝을 할 누군가가 필요합니다”라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 이것이 세탁 서비스 및 드라이 클리닝 서비스에 대한 요청임을 결정할 수 있다. NLP 컴포넌트(112)는 이것이 세탁 서비스들 및 드라이 클리닝 서비스들 모두를 제공할 수 있는 서비스 제공자에 대한 단일 요청임을 결정할 수 있다. NLP 컴포넌트(112)는 이것이 2개의 요청들임을 결정할 수 있다: 세탁 서비스들을 수행하는 서비스 제공자에 대한 제1 요청, 및 드라이 클리닝 서비스들을 제공하는 서비스 제공자에 대한 제2 요청. 일부 경우들에서, NLP 컴포넌트(112)는 다수의 결정된 요청들을 단일 요청으로 결부할 수 있고, 단일 요청을 제3 자 디바이스(146)로 전송할 수 있다. 일부 경우들에서, NLP 컴포넌트(112)는 각각의 요청들을 다른 서비스 제공자 디바이스에 전송하거나, 둘 모두의 요청들을 동일한 제3 자 디바이스(146)에 개별적으로 전송할 수 있다.
데이터 프로세싱 시스템(102)은, 트리거 키워드에 기초하여, 요청에 응답하여 액션 데이터 구조를 생성하도록 디자인되고 구축된 직동식 API(116)를 포함할 수 있다. 데이터 프로세싱 시스템(102)의 프로세서들은, 제3 자 디바이스(146)에 제공하기 위해 데이터 구조를 생성하는 스크립트들을 실행하도록 직동식 API(116)를 호출하거나 자동차 쉐어 서비스에서 차와 같은 제품 또는 서비스를 주문하기 위해 다른 제공자를 호출할 수 있다. 직동식 API(116)는 제3 자 디바이스(146)가 자동차 쉐어 서비스로부터 자동차 예약하기와 같은 동작을 수행하는 것을 허용하도록, 위치, 시간, 사용자 계정들, 또는 다른 정보를 결정하기 위해 로컬 클라이언트 컴퓨팅(104)로부터 최종 사용자의 동의 하에 수신된 데이터뿐만 아니라, 데이터 저장소(124)로부터 데이터를 획득할 수 있다. 직동식 API(116)를 사용하여, 데이터 프로세싱 시스템(102)은 이 예시에서 자동차 쉐어 픽업 예약을 함으로써 변환을 완료하기 위해 제3 자 디바이스(146)와 또한 통신할 수 있다.
직동식 API(116)는 세션에 대한 스태킹 엔진 컴포넌트(114)에 의해 구축된 프로필 스택을 수신할 수 있다. 직동식 API(116)는 데이터 프로세싱 시스템(102)에 의해 결정된 최종 사용자의 인텐션을 만족시키기 위해 특정된 액션을 실행할 때, 프로필 스택으로부터 하나 이상의 정책들을 적용할 수 있다. 입력들에 특정된 액션 및 세션에 대한 스태킹 엔진 컴포넌트(114)에 의해 구축된 프로필 스택 내의 정책들 및 계층화된 프로필들에 따라, 직동식 API(116)는 사용자 요청을 수행하는데 필요한 파라미터들을 식별하는 코드 또는 다이얼로그 스크립트를 실행할 수 있다. 그러한 코드는 홈 자동화 서비스의 이름 또는 제3 자 서비스와 같은, 예를 들어 데이터 저장소(124)에서, 추가 정보를 조사할 수 있거나, 또는 요청된 택시의 의도된 목적지와 같은 물음들을 최종 사용자에게 질문하기 위해 로컬 클라이언트 컴퓨팅 디바이스(104)에서의 렌더링을 위해 오디오 출력을 제공할 수 있다. 직동식 API(116)는 파라미터들을 결정할 수 있고, 그 정보를 액션 데이터 구조에 패키징할 수 있으며, 그 후 그것은 콘텐츠 선택기 컴포넌트(118) 또는 서비스 제공자 컴퓨팅 디바이스(108)와 같은 다른 컴포넌트로 보내질 수 있다.
직동식 API(116)는 액션 데이터 구조를 생성하거나 구축하기 위해 NLP 컴포넌트(112) 또는 데이터 프로세싱 시스템(102)의 다른 컴포넌트로부터 명령어 또는 명령을 수신할 수 있다. 직동식 API(116)는 데이터 저장소 (124)에 저장된 템플릿 저장소(122)로부터 템플릿을 선택하기 위해 액션의 타입을 결정할 수 있다. 액션들의 타입들은 예를 들어, 서비스들, 제품들, 예약들 또는 티켓들을 포함할 수 있다. 액션들의 타입들은 서비스 또는 제품의 타입들을 더 포함할 수 있다. 서비스들의 타입들은 예를 들어, 자동차 쉐어 서비스들, 식품 배달 서비스들, 세탁 서비스들, 가정부 서비스들, 수리 서비스들, 가정용 서비스들, 디바이스 자동화 서비스들 또는 매체 스트리밍 서비스들을 포함할 수 있다. 제품들의 타입들은 예를 들어, 옷들, 신발들, 장난감들, 전자 제품들, 컴퓨터들, 서적들 또는 보석 등을 포함할 수 있다. 예약들의 타입들은 예를 들어, 저녁 식사 예약들 또는 미용실 약속들을 포함할 수 있다. 티켓들의 타입들은 예를 들어, 영화 티켓들, 스포츠 경기 티켓들 또는 비행 티켓들을 포함할 수 있다. 일부 경우들에서, 서비스들, 제품들, 예약들 또는 티켓들의 타입들은 가격, 위치, 배송(shipping) 타입, 가용성 또는 다른 속성들에 기초하여 카테고라이징될 수 있다.
NLP 컴포넌트(112)는 요청 및 요청에 대응하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 파싱하고 NLP 컴포넌트(112)는 직동식 API로 하여금, 프로필 스택 데이터 구조에 푸싱된 제2 프로필 계층 및 트리거 키워드에 기초하여, 프로필 스택 데이터 구조의 제1 프로필 계층과 호환 가능한 요청에 응답하여 제1 액션 데이터 구조를 생성하도록 하기 위해, 상기 요청 및 상기 트리거 키워드를 직동식 API(116)에 제공할 수 있다.
직동식 API(116)는, 요청 타입을 식별할 때, 템플릿 저장소(122)로부터 대응하는 템플릿에 액세스할 수 있다. 템플릿들은 제3 자 디바이스(146)의 로컬 컴퓨팅 디바이스(104)에 의해 검출된 입력 오디오를 통해 요청된 동작을 진전시키기(further) 위해 직동식 API(116)에 의해 채워질(populate) 수 있는 데이터 집합 내의 필드들을 포함할 수 있다(픽업 위치에서 최종 사용자를 픽업하고 최종 사용자를 목적지 위치로 이송하는 택시를 보내는 동작과 같은). 직동식 API(116)는 트리거 키워드 및 요청의 하나 이상의 특성과 일치하는 템플릿을 선택하기 위해 템플릿 저장소(122) 내의 룩업을 수행할 수 있다. 예를 들어, 요청이 자동차에 대한 요청 또는 목적지까지의 탑승에 대응한다면, 데이터 프로세싱 시스템(102)은 자동차 쉐어링 서비스 템플릿을 선택할 수 있다. 자동차 쉐어링 서비스 템플릿은 다음 필드들 중 하나 이상을 포함할 수 있다: 디바이스 식별자, 픽업 위치, 목적지 위치, 승객들 수 또는 서비스 타입. 직동식 API(116)는 값들로 필드들을 채울 수 있다. 값들로 필드들을 채우기 위해, 직동식 API(116)는 컴퓨팅 디바이스(104)의 하나 이상의 센서들(134) 또는 디바이스(104)의 사용자 인터페이스로부터 정보를 핑, 폴 또는 그렇지 않으면 획득할 수 있다. 예를 들어, 직동식 API(116)는, GPS 센서와 같은, 위치 센서를 사용하여 소스 위치를 검출할 수 있다. 직동식 API(116)는 조사, 프롬프트 또는 쿼리를 컴퓨팅 디바이스(104)의 사용자 말미에 제출함으로써 추가 정보를 획득할 수 있다. 직동식 API는 데이터 프로세싱 시스템(102)의 인터페이스(110) 및 컴퓨팅 디바이스(104)의 사용자 인터페이스를 통해 조사, 프롬프트 또는 쿼리를 제출할 수 있다 (예를 들어, 오디오 인터페이스, 음성-기반 사용자 인터페이스, 디스플레이 또는 터치 화면). 즉, 직동식 API(116)는 트리거 키워드 또는 요청에 기초하여 액션 데이터 구조에 대한 템플릿을 선택할 수 있고, 하나 이상의 센서들(134)에 의해 검출되거나 사용자를 통해 획득된 정보로 템플릿의 하나 이상의 필드들을 채울 수 있으며, 제3 자 디바이스(146)에 의한 동작의 수행을 용이하게 하기 위해 액션 데이터 구조를 생성, 제작 또는 그렇지 않으면 구축할 수 있다.
액션 데이터 구조를 생성하거나 구축하기 위해, 데이터 프로세싱 시스템(102)은 선택된 템플릿 내의 하나 이상의 필드들을 식별하여 값들로 채울 수 있다. 필드들은 숫자 값들, 문자열들, 유니 코드 값들, 부울 논리, 이진 값들, 16진수 값들, 식별자들, 위치 좌표들, 지리적 영역들, 타임스탬프들 또는 다른 값들로 채워질 수 있다. 필드들 또는 데이터 구조 자체는 데이터 보안성을 유지하기 위해 암호화되거나 마스크될 수 있다.
템플릿 내의 필드들을 결정할 때, 데이터 프로세싱 시스템(102)은 액션 데이터 구조를 제작하기 위해 템플릿의 필드들을 채우도록 필드들에 대한 값들을 식별할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소(124) 상에서 룩업 또는 다른 쿼리 동작을 수행함으로써 필드들에 대한 값들을 획득, 검색, 결정 또는 그렇지 않으면 식별할 수 있다.
일부 경우들에서, 데이터 프로세싱 시스템(102)은 필드들에 대한 정보 또는 값들이 데이터 저장소(124)에 부재함을 결정할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소(124)에 저장된 정보 또는 값들이 시대에 뒤쳐졌거나, 낡았거나 또는 그렇지 않으면 NLP 컴포넌트(112)에 의해 식별된 트리거 키워드 및 요청에 응답하여 액션 데이터 구조를 구축할 목적으로 적합하지 않다고 결정할 수 있다 (예를 들어, 로컬 클라이언트 컴퓨팅 디바이스(104)의 위치는 오래된 위치일 수 있고 현재 위치가 아닐 수 있다; 계정이 만료될 수 있다; 목적지 레스토랑이 새로운 위치로 이전했었을 수 있다; 물리적 액티비티 정보; 또는 운송 모드).
데이터 프로세싱 시스템(102)이, 데이터 프로세싱 시스템(102)의 메모리에서, 그것이 템플릿의 필드의 값들 또는 정보에 대한 액세스를 현재 가지고 있지 않다고 결정하면, 데이터 프로세싱 시스템(102)은 값들 또는 정보를 취득할 수 있다. 데이터 프로세싱 시스템(102)은 로컬 클라이언트 컴퓨팅 디바이스(104)의 하나 이상의 사용 가능한 센서들에 쿼리하거나 센서들을 폴하거나, 로컬 클라이언트 컴퓨팅 디바이스(104)의 최종 사용자에게 정보를 촉구하거나, 또는 HTTP 프로토콜을 사용하여 온라인 웹-기반 리소스에 액세스함으로써 정보를 취득하거나 획득할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 템플릿의 필요한 필드일 수 있는 로컬 클라이언트 컴퓨팅 디바이스(104)의 현재 위치를 가지고 있지 않음을 결정할 수 있다. 데이터 프로세싱 시스템(102)은 로컬 클라이언트 컴퓨팅 디바이스(104)에 위치 정보를 쿼리할 수 있다. 데이터 프로세싱 시스템(102)은 Global Positioning System 센서, WIFI 삼각 측량, 셀 타워 삼각 측량, 블루투스 비콘들(beacon), IP 주소, 또는 다른 위치 감지 기법과 같은, 하나 이상의 위치 센서들(134)을 사용하여 위치 정보를 제공하도록 로컬 클라이언트 컴퓨팅 디바이스(104)에 요청할 수 있다.
일부 경우들에서, 데이터 프로세싱 시스템(102)은 제2 프로필을 사용하여 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 제2 프로필을 사용하여 생성된 액션 데이터 구조가 제1 프로필에 부합하는지 여부를 결정할 수 있다. 예를 들어, 제1 프로필은 로컬 컴퓨팅 디바이스(104)를 통해 전자 온라인 소매점으로부터 제품을 구매하는 것과 같은, 액션 데이터 구조의 타입을 차단하는 정책을 포함할 수 있다. 로컬 컴퓨팅 디바이스(104)에 의해 검출된 입력 오디오는 전자 온라인 소매점으로부터 제품을 구매하기 위한 요청을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 전자 온라인 소매점과 연관된 계좌 정보를 식별하기 위해 제2 프로필을 사용할 수 있었고, 그 후 제품을 구매하기 위해 액션 데이터 구조를 생성할 수 있었다. 액션 데이터 구조는 화자 인식 컴포넌트(120)에 의해 식별된 음향 서명과 연관된 전자 계정에 대응하는 계정 식별자를 포함할 수 있다.
액션 데이터 구조를 생성할 때, 직동식 API(116)는 액션 데이터 구조를 전자 온라인 소매점에 전송하려고 시도할 수 있다. 그러나, 스태킹 엔진 컴포넌트(114)는 액션 데이터 구조를 인터셉트할 수 있다. 스태킹 엔진 컴포넌트(114)는 세션에 대해 설정된 프로필 스택 내의 제1 프로필 계층의 하나 이상의 정책들을 준수하는지 여부를 결정하기 위해 액션 데이터 구조를 분석할 수 있다. 스태킹 엔진 컴포넌트(114)가 전자 소매점으로부터 제품을 구매하기 위해 액션 데이터 구조가 부합한다고 결정하면, 그 후 스태킹 엔진 컴포넌트(114)는 액션 데이터 구조를 풀어줄 수 있다. 그러나, 스태킹 엔진 컴포넌트가 액션 데이터 구조가 제1 프로필 계층에 상반되거나 또는 제1 프로필 계층에 부합하지 않는다고 결정하면, 스태킹 엔진 컴포넌트(114)는 액션 데이터 구조를 차단할 수 있다.
일부 경우들에서, 직동식 API(116)는 프로필 스택을 검색하여 제1 프로필 계층 및 제2 프로필 계층을 식별할 수 있으며, 제2 프로필 계층은 후속적으로 푸싱된 제2 프로필에 대응한다. 직동식 API(116)는 제2 프로필과 같은, 마지막으로 푸싱된 프로필을 사용하여 액션 데이터 구조를 생성할 수 있다. 직동식 API(116)는 그 후 제2 프로필을 사용하여 생성된 액션 데이터 구조를 제1 프로필에 포함된 하나 이상의 정책들과 비교할 수 있다. 정책들을 사용하는 상기 비교에 기초하여, 직동식 API(116)는 액션 데이터 구조를 승인할지 또는 액션 데이터 구조를 차단할지 여부를 결정할 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)은 트리거 키워드 및 프로필 스택에 푸싱된 제2 프로필 계층에 기초하여 제1 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호의 요청에 응답하여 제1 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 제1 액션 데이터 구조를 제1 프로필 계층의 하나 이상의 정책들과 비교할 수 있으며, 제1 프로필 계층은 디폴트 프로필 계층 또는 기준 프로필 계층에 대응한다. 데이터 프로세싱 시스템(102)은, 제1 액션 데이터 구조와 제1 프로필 계층의 하나 이상의 정책들의 비교에 기초하여, 제1 액션 데이터 구조가 제1 프로필 계층과 호환 가능하다고 결정할 수 있다. 제1 프로필 계층과 호환 가능하다고 결정된 제1 액션 데이터 구조에 응답하여, 데이터 프로세싱 시스템(102)은 실행을 위해 제1 액션 데이터 구조를 제공할 수 있다.
제1 프로필 계층 내의 정책들은 액션 데이터 구조의 타입을 차단하는 정책을 포함할 수 있다. 차단될 수 있는 액션 데이터 구조의 타입들은, 예를 들어, 제3 자의 경쟁자 엔티티로부터 제품 또는 서비스를 구매하기 위해 액션 데이터 구조, 불한전한 액션, 또는 네트워크 대역폭 집중적인 액션들을 포함할 수 있다 (예를 들어, 4K 해상도 멀티미디어 콘텐츠 스트리밍, 50 메가바이트, 100 메가바이트 또는 그 이상의 대형 데이터 파일 다운로드). 데이터 프로세싱 시스템은 제1 액션 데이터 구조가 제1 프로필 계층과 호환 가능한지 여부를 결정하기 위해 제1 액션의 타입을 제1 프로필 계층의 하나 이상의 정책들에 의해 표시된 액션 데이터 구조의 타입과 비교할 수 있다. 제1 액션 데이터 구조가 정책에 의해 허용되면 (예를 들어, 정책에 의해 차단되지 않음), 그 후 데이터 프로세싱 시스템(102)은 제1 액션 데이터 구조를 승인할 수 있다.
일부 경우들에서, 데이터 프로세싱 시스템(102)은 스택 데이터 구조 및 자연어 프로세서에 의해 식별된 트리거 키워드를 수신할 수 있다. 데이터 프로세싱 시스템(102)은, 트리거 키워드 및 프로필 스택 데이터 구조에 기초하여, 제1 프로필 계층 및 제2 프로필 계층 모두와 호환 가능한 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트는 보충 디지털 컴포넌트를 지칭할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 자연어 프로세서에 의해 식별된 트리거 키워드를 수신하고, 트리거 키워드에 기초하여, 실시간 콘텐츠 선택 프로세스를 통해 디지털 컴포넌트를 선택하기 위해 콘텐츠 선택기 컴포넌트(118)를 포함하거나, 실행하거나, 또는 그렇지 않으면 콘텐츠 선택기 컴포넌트(118)와 통신할 수 있다. 콘텐츠 선택 프로세스는 제3 자 콘텐츠 제공자들(106)에 의해 제공된 후원 디지털 컴포넌트 객체들을 선택하는 것을 지칭, 또는 포함할 수 있다. 실시간 콘텐츠 선택 프로세스는 서비스를 포함할 수 있으며, 상기 서비스에서는 컴퓨팅 디바이스(104)에 제공하기 위해 하나 이상의 디지털 컴포넌트들을 선택하기 위해 다수의 콘텐츠 제공자들에 의해 제공된 디지털 컴포넌트들이 파싱, 프로세싱, 가중화 또는 일치된다. 콘텐츠 선택기 컴포넌트(118)는 콘텐츠 선택 프로세스를 실시간으로 수행할 수 있다. 실시간으로 콘텐츠 선택 프로세스를 수행하는 것은 로컬 클라이언트 컴퓨팅 디바이스(104)를 통해 수신된 콘텐츠에 대한 요청에 응답하여 콘텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 콘텐츠 선택 프로세스는 요청을 수신한 시간 간격 (예를 들어, 5초, 10초, 20초, 30초, 1분, 2분, 3분, 5분) 내에 수행될 수 있다 (예를 들어, 개시되거나 완료됨). 실시간 콘텐츠 선택 프로세스는 로컬 클라이언트 컴퓨팅 디바이스(104)와의 통신 세션 동안 또는 통신 세션이 종료된 후 시간 간격 내에서 수행될 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)은 디지털 컴포넌트 객체를 선택하도록 디자인된, 구축된, 구성된 또는 동작하는 콘텐츠 선택기 컴포넌트(118)를 포함할 수 있다. 음성-기반 환경 내의 디스플레이를 위한 디지털 컴포넌트들을 선택하기 위해, 데이터 프로세싱 시스템(102)은 (예를 들어, NLP 컴포넌트(112)를 통해) 입력 오디오 신호를 파싱할 수 있으며, 상기 파싱은 키워드들 (예를 들어, 트리거 키워드)를 식별하고, 폭넓은 일치, 정확한 일치, 또는 구문 일치에 기초하여 일치하는 디지털 컴포넌트를 선택하도록 상기 키워드들을 사용하기 위한 것이다. 예를 들어, 콘텐츠 선택기 컴포넌트(118)는 후보 디지털 컴포넌트의 주제를 분석, 파싱, 또는 그렇지 않으면 프로세싱하여, 후보 디지털 컴포넌트의 주제가 로컬 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰 의해 검출된 입력 오디오 신호의 키워드들 또는 구문들의 주제에 대응하는지 여부를 결정할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 이미지 프로세싱 기법, 문자 인식 기법, 자연어 프로세싱 기법 또는 데이터베이스 룩업을 사용하여 후보 디지털 컴포넌트들의 음성, 오디오, 용어들, 문자들, 텍스트, 심볼들 또는 이미지들을 식별, 분석 또는 인식할 수 있다. 후보 디지털 컴포넌트들은 후보 디지털 컴포넌트들의 주제를 표시하는 메타데이터를 포함할 수 있으며, 그러한 경우에 콘텐츠 선택기 컴포넌트(118)는 후보 디지털 컴포넌트의 주제가 입력 오디오 신호에 대응하는지 여부를 결정하기 위해 메타데이터를 프로세싱할 수 있다.
콘텐츠 선택기 컴포넌트(118)는 콘텐츠 선택을 제공하기 위해 프로필 스택 내의 제공된 정보를 더 활용할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 제2 프로필 계층을 활용할 수 있으며, 상기 제2 프로필 계층은 로컬 컴퓨팅 디바이스(104)에 의해 검출된 입력 오디오 신호를 제공했던 화자와 연관된 전자 계정에 대응할 수 있다. 콘텐츠 선택기(118)는 제3 자 디바이스(146)에 의해 제공되었던 디폴트 프로필 계층에 대응할 수 있는, 제1 프로필 계층과 연관된 정보를 또한 사용할 수 있다. 콘텐츠 제공자(106)에 의해 제공된 콘텐츠 캠페인은 데이터 프로세싱 시스템(102)이 제1 프로필 계층 또는 제2 프로필 계층에 표시된 기준과 일치할 수 있는 콘텐츠 선택 기준을 포함할 수 있다.
프로필 계층은 디지털 컴포넌트를 선택하기 위해, 콘텐츠 선택기 컴포넌트(118)에 의해 사용된 가중치들 또는 스코어들을 변경할 수 있다. 예를 들어, 제3 자 디바이스에 의해 설정된 제1 프로필 계층은 제3 자 엔터티에 의해 제공된 제품들 또는 서비스들에 대한 또는 묘사하는 디지털 컴포넌트들에 대한 가중치 또는 스코어를 높일 수 있는 반면에, 제3 자 엔터티의 경쟁자에 의해 제공된 제품들 또는 서비스들에 대한 가중치 또는 스코어를 낮출 수 있다. 로컬 컴퓨팅 디바이스(104)는 제3 자 엔티티에 의해 제어되는 세팅에 위치될 수 있기 때문에, 제3 자 엔티티는 콘텐츠 선택 동안 콘텐츠 선택기 컴포넌트(118)에 의해 활용될 제1 프로필 계층에서 콘텐츠 선택 규칙들, 정책들 또는 가중치를 설정할 수 있다.
디지털 컴포넌트들을 선택하기 위해 제2 프로필 계층을 사용함으로써, 콘텐츠 선택기 컴포넌트(118)는 제1 프로필 계층뿐만 아니라 제2 프로필 계층에 기초하여 디지털 컴포넌트를 보다 정확하게 선택함으로써 디지털 컴포넌트들의 과도한 전송들을 감소시킬 수 있다. 제1 계층 (또는 디폴트 계층) 또는 제2 계층 (전자 계정과 연관된 프로필)을 사용하여 디지털 컴포넌트들을 선택하는 것과 달리, 다수의 프로필들로부터 구축된 프로필 스택을 사용하여 디지털 컴포넌트를 하는 것은 잘못되거나 관련성 없는 디지털 컴포넌트 선택을 초래할 수 있다. 제1 프로필 계층은 콘텐츠 선택을 용이하게 하거나, 잘못된 콘텐츠 선택을 차단할 수 있는 로컬 컴퓨팅 디바이스(104)가 위치하는 비보안된 장소 또는 공공 장소 또는 제3 자 엔티티와 연관된 정보를 제공할 수 있다. 예를 들어, 입력 오디오 신호는 드라이 클리닝 서비스에 대한 요청을 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 요청을 수신하고 콘텐츠 제공자 디바이스(106)에 의해 제공되는 보충 디지털 컴포넌트를 식별하려고 시도할 수 있다. 보충 콘텐츠 제공자를 식별하기 위해, 콘텐츠 선택기 컴포넌트(118)는 요청과 연관된 하나 이상의 특성들을 사용하여 실시간 콘텐츠 선택 프로세스를 실행할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 제2 프로필 계층으로부터 획득된 정보를 더 입력할 수 있다. 제2 프로필 계층으로부터의 정보를 사용하여, 콘텐츠 선택기 컴포넌트(118)는 드라이 클리닝 서비스 제공자에 대응하는 디지털 컴포넌트를 선택할 수 있다. 그러나, 제1 프로필 계층을 설정했던 제3 자 엔티티가 선호되는 드라이 클리닝 서비스들을 제공할 수 있기 때문에, 제1 프로필 계층은 드라이 클리닝 서비스 제공자들과 관련된 보충 디지털 컴포넌트들의 제공을 차단하는 정책을 포함할 수 있다. 제3 자 엔티티가 자신의 드라이 클리닝 서비스들에 대한 콘텐츠 캠페인을 설정하지 않았었기 때문에, 콘텐츠 선택기 컴포넌트(118)은 제3 자 엔티티에 의해 제공된 드라이 클리닝 서비스들에 대한 디지털 컴포넌트를 선택하지 않았을 수 있다. 즉, 제1 프로필 계층 및 제2 프로필 계층 모두를 포함하는 프로필 스택을 활용하지 않고, 선호하는 디지털 컴포넌트가 제1 프로필 계층에서 식별된, 제3 자 엔티티에 의해 제공되는 드라이 클리닝 서비스에 대응할 때 데이터 프로세싱 시스템(102)은 드라이 클리닝 서비스 제공자에 대응하는 보충 디지털 컴포넌트를 잘못 제공했을 수 있다. 따라서, 데이터 프로세싱 시스템(102)은 선택된 디지털 컴포넌트를 제1 프로필 계층 (또는 디폴트 프로필 계층)을 통해 표시된 선호되는 디지털 컴포넌트로 덮어쓰거나 대체할 수 있다.
일부 경우들에서, 콘텐츠 선택기 컴포넌트(118)는 제1 프로필 계층이 디지털 컴포넌트 타입의 선택을 차단하는 정책 또는 정보를 포함하는지 여부를 결정하기 위해 제1 프로필 계층을 파싱할 수 있고, 실시간 콘텐츠 선택 프로세스의 실행을 예방할 수 있으며, 이로써 컴퓨팅 리소스들의 활용을 감소시킬 뿐만 아니라 입력 오디오 신호에 포함된 요청에 응답하여 디지털 컴포넌트를 제공할 때 지연 또는 대기시간을 잠재적으로 감소시킨다.
콘텐츠 제공자(106)는 디지털 컴포넌트들을 포함하는 콘텐츠 캠페인을 세팅할 때 추가적인 표시자들을 제공할 수 있다. 콘텐츠 제공자(106)는 콘텐츠 선택기 컴포넌트(118)가 후보 디지털 컴포넌트에 관한 정보를 사용하여 룩업을 수행함으로써 식별할 수 있는 콘텐츠 캠페인 또는 콘텐츠 그룹 레벨에서 정보를 제공할 수 있다. 예를 들어, 후보 디지털 컴포넌트는 콘텐츠 그룹, 콘텐츠 캠페인 또는 콘텐츠 제공자에 맵핑할 수 있는 고유한 식별자를 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는, 데이터 저장소(124)의 콘텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여, 콘텐츠 제공자(106)에 관한 정보를 결정할 수 있다.
데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 상의 제시를 위해 콘텐츠에 대한 요청을 컴퓨터 네트워크를 통해 수신할 수 있다. 데이터 프로세싱 시스템(102)은 로컬 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰에 의해 검출된 입력 오디오 신호를 프로세싱함으로써 요청을 식별할 수 있다. 요청은 디바이스 타입, 위치 및 요청과 연관된 키워드와 같은, 요청의 선택 기준을 포함할 수 있다. 요청은 액션 데이터 구조 또는 액션 데이터 구조를 포함할 수 있다.
요청에 응답하여, 데이터 프로세싱 시스템(102)은 데이터 저장소(124) 또는 콘텐츠 제공자(106)와 연관된 데이터베이스로부터 디지털 컴포넌트 객체를 선택하고, 네트워크(105)를 통해 컴퓨팅 디바이스(104)를 통해 제시를 위해 디지털 컴포넌트를 제공할 수 있다. 디지털 컴포넌트 객체는 제3 자 디바이스(146)와 상이한 콘텐츠 제공자 디바이스(108)에 의해 제공될 수 있다. 디지털 컴포넌트는 액션 데이터 구조 (예를 들어, 택시 서비스 VS 음식 배달 서비스)의 서비스 타입과 상이한 서비스 타입에 대응할 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트 객체와 인터랙팅할 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)로 하여금 서비스 제공자(108)의 식별을 허용하거나 식별하게 하는 디지털 컴포넌트 객체와 연관된 다른 버튼 또는 하이퍼링크를 선택하기 위해 표시를 수신할 수 있고, 서비스 제공자(108)로부터 서비스를 요청하거나, 서비스 제공자(108)에게 서비스를 수행할 것을 명령하거나, 서비스 제공자(108)에 정보를 전송하거나, 제3 자 디바이스(146)에 쿼리할 수 있다.
데이터 프로세싱 시스템(102)은 (예를 들어, 인터페이스(110) 및 네트워크(105)를 통해) 입력 오디오 신호, 또는 요청에 응답하여 출력 신호, 또는 그것의 쿼리를 포함하는 데이터 패킷들을 전송할 수 있다. 출력 신호에 대응하는 음향 파를 생성하기 위해, 출력 신호는 클라이언트 디바이스(104)의 또는 클라이언트 디바이스(104)에 의해 실행된 오디오 드라이버 컴포넌트(138)로 하여금 로컬 컴퓨팅 디바이스(104)의 스피커 (예를 들어, 변환기(136))를 구동하게 할 수 있다.
데이터 프로세싱 시스템(102)은 (예를 들어, 스태킹 엔진 컴포넌트(114)를 통해) 프로필 스택 데이터 구조로부터 제1 프로필 계층 또는 제2 프로필 계층 중 하나를 제거하기 위해 프로필 스택 데이터 구조를 분해할 수 있다. 데이터 프로세싱 시스템은 이전 구성 또는 디폴트 구성으로 되돌아 가서 세션 및 전자 계정과 연관된 모든 정보를 소거 또는 보호함으로써 전자 계정으로부터 탈착할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 로컬 컴퓨팅 디바이스(104)에 대해 구성된 프로필 스택 데이터 구조로부터 제2 프로필 계층을 제거하거나 삭제할 수 있다. 데이터 프로세싱 시스템(102)은 로컬 컴퓨팅 디바이스(104)를 공장 세팅 또는 디폴트 구성으로 되 돌리거나 다시 세팅할 수 있다. 데이터 프로세싱 시스템(102)은 임의의 세션 관련 정보를 데이터 프로세싱 시스템(102)에 저장된 제2 프로필에 업로드하고, 제2 프로필과 연관된 정보의 임의의 로컬 복사본을 제거 또는 소거할 수 있다.
데이터 프로세싱 시스템(102)은 트리거 이벤트의 검출에 응답하여 프로필 스택으로부터 제1 또는 제2 프로필 계층들 중 하나를 제거할 수 있다. 트리거 이벤트는 시간 간격, 명령어, 이벤트, 위치, 지오펜스(geofence), 무단 사용, 사기 검출 또는 새 화자 인식에 기초할 수 있다. 데이터 프로세싱 시스템(102)은 트리거 이벤트의 타입에 기초하여 제1 프로필 또는 제2 프로필 중 하나를 제거하는 것을 결정할 수 있다.
데이터 프로세싱 시스템(102)은 (예를 들어, 스피커 인식 컴포넌트(120)를 통해) 상이한 사용자가 로컬 컴퓨팅 디바이스(104)에 입력 오디오 신호를 제공하고 있다고 결정할 수 있다. 상이한 사용자는 제1 사용자와는 동일하지 않은 제2 사용자일 수 있다. 제2 사용자는 상이한 음향 서명을 가질 수 있다. 화자 인식 컴포넌트(120)는 제2 음향 서명을 검출하고, 상이한 사용자가 있다고 결정한 다음, 제1 사용자와의 세션을 종료할 수 있다. 화자 인식 컴포넌트(120)는 프로필 스택으로부터 제2 프로필 계층을 제거할 수 있는, 스태킹 엔진 컴포넌트(114)에 제2 상이한 사용자의 표시를 제공할 수 있다. 스태킹 엔진 컴포넌트(114)는, 제1 사용자와 상이한 제2 사용자의 표시를 수신하는 것에 응답하여, 프로필 스택 데이터 구조를 클리어(clear) 하거나 제1 사용자에 대응하는 제2 프로필 계층을 제거할 수 있다.
데이터 프로세싱 시스템(102)은, 인터페이스(110)를 통해, 클라이언트 디바이스 (예를 들어, 로컬 컴퓨팅 디바이스(104))의 센서(134)에 의해 검출된 제2 입력 오디오 신호를 포함하는 제 2 데이터 패킷들을 수신한다. 제2 입력 오디오 신호는 오디오 신호에 후속하여 검출될 수 있다. 데이터 프로세싱 시스템(102)은 (예를 들어, 화자 인식 컴포넌트(120)) 제2 입력 오디오 신호로부터 제2 음향 서명을 식별할 수 있다. 제2 음향 서명은 제1 음향 서명과 상이할 수 있다. 데이터 프로세싱 시스템(102)은 제1 음향 서명과 상이한 제2 음향 서명의 식별에 기초하여 트리거 이벤트를 결정할 수 있다.
스태킹 엔진 컴포넌트(114)는 시간 간격 동안의 비활성(inactivity)에 응답하여 프로필 스택을 클리어하거나 제2 프로필 계층을 제거할 수 있다. 스태킹 엔진 컴포넌트(114)는 5분, 10분, 15분, 20분, 25분, 30분, 1시간 또는 그 이상과 같은, 시간 간격 동안 어떠한 음성 입력도 제공하지 않는 제2 프로필 계층에 대응하는 사용자에 응답하여 프로필 스택 또는 제2 프로필 계층을 클리어할 수 있다. 프로필 스택을 클리어하거나 제2 프로필 계층을 제거하는 것은 증가된 보안성을 제공할 수 있을 뿐만 아니라 메모리에 최소 프로필 스택을 유지할 수 있다.
스태킹 엔진 컴포넌트(114)는 제2 프로필 계층에 대응하는 사용자가 로컬 컴퓨팅 디바이스(104) 또는 제3 자 엔티티에 대응하는 공공 장소 또는 비보안된 장소를 떠났었다고 결정함에 응답하여 프로필 스택을 클리어할 수 있다. 스태킹 엔진 컴포넌트(114)는, 사용자에 의해 운반될 수 있는, 모바일 컴퓨팅 디바이스(144)로부터 표시를 수신할 수 있으며, 상기 모바일 컴퓨팅 디바이스(144)는 로컬 컴퓨팅 디바이스(104)로부터 임계치 거리 이상으로 떨어져 있다. 임계치 거리는 20미터, 25미터, 50미터, 100미터, 200미터, 500미터, 750미터, 1000미터 또는 그 이상일 수 있다. 예를 들어, 스태킹 엔진 컴포넌트(114)는 로컬 컴퓨팅 디바이스(104) 주위에 지리적 펜스를 설정할 수 있다. 지리적 펜스는 Global Positioning System("GPS") 또는 radio frequency identification("RFID") 또는 근거리 통신 비콘들(near field communication beacons)에 의해 정의되는, 가상 지리적 경계를 지칭할 수 있으며, 모바일 디바이스가 로컬 컴퓨팅 디바이스(104) 주위의 특정한 영역에 들어가거나 떠날 때 소프트 웨어가 응답을 트리거 하는 것을 허용한다. 즉, 사용자들이 자신의 모바일 컴퓨팅 디바이스(144)를 가지고 호텔 룸을 떠날 때, 데이터 프로세싱 시스템(102)은 로컬 컴퓨팅 디바이스(104)에 의해 검출된 음성 입력을 프로세싱하는데 사용되는 프로필 스택으로부터 제2 프로필 계층을 자동으로 제거할 수 있다.
프로필 스택을 클리어하거나 제2 프로필 계층을 제거하기 위해 스태킹 엔진 컴포넌트(114)는 제3 자 디바이스(146)와 인터페이스하고 제3 자 디바이스(146)로부터 표시를 수신할 수 있다. 예를 들어, 제3 자 디바이스(146)는 제2 프로필 계층과 연관된 사용자가 호텔 룸에서 체크아웃 했었다는 표시를 수신하는 전자 호텔 게스트 관리 시스템을 포함할 수 있다. 게스트가 체크아웃 했었다는 표시를 수신하는 것에 응답하여, 제3 자 디바이스(146)는 상기 표시를 데이터 프로세싱 시스템(102)에 포워딩할 수 있다. 데이터 프로세싱 시스템(102) (예를 들어, 스태킹 엔진 컴포넌트(114))는 게스트가 체크아웃 했었다는 표시를 수신하고, 상기 수신에 응답하여, 로컬 컴퓨팅 디바이스(104)와 연관된 음성 입력을 프로세싱하는데 사용되는 프로필 스택으로부터 제2 프로필 계층을 제거할 수 있으며, 이로써 프로필 스택을 분해한다.
프로필 스택 데이터 구조를 분해하는 것은 프로필 스택으로부터 하나 이상의 프로필들을 제거 또는 클리어하는 것을 포함할 수 있다. 프로필 스택을 분해하는 것은 제1 프로필 층만을 제거하거나, 제2 프로필 층만을 제거하거나, 제1 프로필 층 및 제2 프로필 층 모두를 제거하는 것을 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 디폴트 프로필 계층에 대응하는 제1 프로필 계층을 유지하면서, 음향 서명에 대응하는 전자 계정에 대응하는 제2 프로필 계층을 제거할 수 있다.
도 2는 프로필 스택을 프로세싱하는 시스템(100)의 동작에 대한 도시이다. 환경(200)은 도 1에 도시된 시스템(100) 또는 도 6에 도시된 시스템(600)의 하나 이상의 컴포넌트를 포함할 수 있다. 환경(200)은 보안된 공공 장소(202)를 포함할 수 있다. 보안된 공공 장소(202)는 공공 장소를 지칭할 수 있다. 공공 장소는 동일한 시간 또는 상이한 시간에 다수의 사용자들에 의해 차지될 수 있는, 또는 다수의 사용자들에 의해 액세스될 수 있는 플레이스, 장소, 건물, 집, 룸 또는 다른 구조물을 지칭할 수 있다. 예를 들어, 공공 플레이스 또는 공공 장소는 호텔 룸, 모텔 룸, 게스트 룸, 렌트카, 실제 소매점, 몰, 공원, 사무실 또는 큐비클을 포함할 수 있다. 이 예시에서, 보안된 공공 장소(202)는 호텔 룸일 수 있다. 모바일 컴퓨팅 디바이스(144)가 장소(202) 내에 위치될 수 있기 때문에 공공 장소(202)는 보안될 수 있으며, 이로써 사용자가 존재할 수 있음을 표시한다. 그러나, 시스템은 모바일 컴퓨팅 디바이스(144)가 장소(202) 내에 위치하는지의 여부에 상관없이, 액티비티가 없는 시간 간격 또는 트리거 이벤트에 기초하여 장소(202)가 비보안된다고 간주할 수 있다.
호텔 룸 (또는 보안된 공공 장소(202))는 연결된 텔레커뮤니케이션 디바이스(204) (예를 들어, 연결된 전화기), 연결된 서모스탯(206), 연결된 램프(208), 연결된 스피커(210)(또는 사운드 시스템)(212), 연결된 멀티미디어 디스플레이(212)(또는 스마트 텔레비전)과 같은, 몇몇 인터넷 연결된 디바이스들을 포함할 수 있다. 인터넷 연결된 디바이스들(204, 206, 208, 210, 또는 212)은, 네트워크(105)에 액세스를 제공할 수 있는, 무선 게이트웨이 (214) (예를 들어, 네트워크 라우터, 무선 라우터 또는 모뎀)를 통해 네트워크 (105)에 연결할 수 있다. 인터넷 연결된 디바이스들(204, 206, 208, 210 또는 212)은 데이터 프로세싱 시스템(102)을 통해 모니터링, 관리 또는 제어될 수 있다. 일부 경우들에서, 인터넷 연결된 디바이스들(204, 206, 208, 210 또는 212)은 데이터 프로세싱 시스템(102)을 통해 제3 자 디바이스(146)에 의해 모니터링, 관리 또는 제어될 수 있다.
도 2에 도시된 예증적 환경(200)에서, 모바일 컴퓨팅 디바이스(144)는 호텔 룸 또는 보안된 공공 장소(202)에 위치된다. 로컬 컴퓨팅 디바이스(104) 또한 보안된 공공 장소(202)에 위치된다. 로컬 컴퓨팅 디바이스(104)는 호텔 룸에 위치된 사용자로부터 음성 입력을 수신할 수 있다. 로컬 컴퓨팅 디바이스(104)는 입력 오디오를 포함하는 데이터 패킷들을 생성할 수 있고, 무선 게이트웨이(214) 및 네트워크(105)를 통해 데이터 프로세싱 시스템(102)에 데이터 패킷들을 전송할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호로부터 음향 서명을 식별하기 위해 데이터 패킷들을 수신하고 화자 인식을 수행할 수 있다. 데이터 프로세싱 시스템(102)은 그 후 음향 서명에 대응하는 전자 계정을 식별할 수 있다. 데이터 프로세싱 시스템(102)은 전자 계정에 대응하는 프로필을 선택하고, 그 후 프로필을 로컬 컴퓨팅 디바이스(104)에 대한 프로필 스택 데이터 구조(142)로 푸싱할 수 있다. 프로필 스택 데이터 구조(142)는 로컬 컴퓨팅 디바이스(104)에 특정될 수 있다. 예를 들어, 각각의 로컬 컴퓨팅 디바이스(104)는 각각의 프로필 스택 데이터 구조(142)를 가질 수 있다. 프로필 스택 데이터 구조(142)를 사용하여 프로세싱을 용이하게 하기 위해 로컬 컴퓨팅 디바이스(104)에 대한 프로필 스택 데이터 구조(142)는 데이터 프로세싱 시스템(102) 상에(예를 들어, 데이터 프로세싱 시스템(102)의 메모리 또는 데이터 저장소에) 저장되거나 유지될 수 있다. 일부 경우들에서, 프로필 스택 데이터 구조(142)는 로컬 컴퓨팅 디바이스(104)상의 메모리에 국부적으로 저장될 수 있다.
프로필 스택 데이터 구조(142)는 제3 자 디바이스(146)에 의해 설정된 기준 프로필 또는 디폴트 프로필에 대응하는 제1 프로필 계층 "계층 1"을 포함할 수 있다. 제3 자 디바이스(146)는 프로필 스택 데이터 구조(142) 내의 배치를 위해 데이터 프로세싱 시스템(102)에 계층 1 프로필을 제공할 수 있다. 데이터 프로세싱 시스템(102)은, 음향 서명을 검출함에 응답하여, 제2 프로필 계층 "계층 2" 내의 배치를 위해 프로필 스택 데이터 구조(142)에 전자 계정에 대응하는 제2 프로필을 푸싱할 수 있다.
계층 1 프로필은 인터넷 연결된 디바이스들(204, 206, 208, 210 또는 212)에 대한 미리 결정된 라벨들을 포함할 수 있다. 라벨들은 제3 자 디바이스(146)를 통해 설정될 수 있다. 제3 자 디바이스(146)는 보안된 공공 장소(202) (예를 들어, 호텔)을 관리, 소유 또는 운영하는 제3 자 엔티티와 연관될 수 있다.
계층 2 내의 제2 프로필 계층은 음향 서명에 대응하는 사용자의 전자 계정과 연관된 프로필 정보를 포함할 수 있다. 제2 프로필은 인터넷 연결된 디바이스들(204, 206, 208, 210 또는 212)에 대한 라벨들을 포함하거나 포함하지 않을 수 있다. 제2 프로필이 계층 1 내에 제공된 라벨과 유사한 인터넷 연결된 디바이스에 대한 라벨을 포함하는 경우, 계층 1의 라벨들이 계층 2의 라벨들보다 높은 우선 순위가 되거나 높은 랭킹이 될 수 있기 때문에 데이터 프로세싱 시스템(102)은 계층 1 라벨을 사용하기로 결정할 수 있다. 일부 경우들에서, 데이터 프로세싱 시스템(102)은 명확화를 용이하게 하고 인터넷 연결된 디바이스들에 전송된 액션 데이터 구조들의 수를 감소 시키기 위해, 어떤 인터넷 연결된 디바이스가 참조되고 있는지를 분명히 하도록 사용자에게 프롬프트를 제공할 수 있으며, 이로써 의도되지 않은 인터넷 연결된 디바이스들에 의한 컴퓨팅 리소스 활용뿐만 아니라 네트워크 대역폭 활용을 감소시킨다.
예를 들어, 입력 오디오는 "turn on my living room lamp" 요청을 포함할 수 있다. 프로필 스택 데이터 구조가 계층 1 프로필만을 포함 했었다면, 그 후 데이터 프로세싱 시스템(102)은 호텔 룸(202)에 하나의 연결된 램프만이 있기 때문에 램프가 연결된 램프(208)에 대응한다고 결정할 수 있다. 데이터 프로세싱 시스템(102)은 그 후 네트워크(105)를 통해 연결된 램프(208)에 명령어를 포함하는 액션 데이터 구조를 보냄으로써 연결된 램프(208)를 켤 수 있다. 그러나, 프로필 스택 데이터 구조(142)에 로딩된 계층 2 프로필이 있는 경우, 데이터 프로세싱 시스템(102)은 그것이 "living room lamp"라는 라벨을 포함하는지 여부를 결정하기 위해 제2 프로필을 파싱할 수 있다. "living room lamp"라는 라벨은 전자 계정과 연관된 개인 거주지의 램프에 대응할 수 있다. 데이터 프로세싱 시스템(102)이 "living room lamp" 라는 라벨을 검출하면, 그 후 데이터 프로세싱 시스템(102)은 개인 주거지에 위치된 연결된 거실 램프에 명령어를 포함하는 액션 데이터 구조를 전송할 수 있다.
로컬 컴퓨팅 디바이스(104)는 오디오 드라이버(138), 변환기(136), 센서(134) 및 사전-프로세서 컴포넌트(140)를 포함할 수 있다. 센서(134)는 입력 오디오 신호(예를 들어, 음성 입력)을 수신 또는 검출할 수 있다. 사전-프로세서 컴포넌트(140)는 오디오 드라이버, 변환기, 및 센서에 결합될 수 있다. 사전-프로세서(140)는 필터링된 입력 오디오 신호(예를 들어, 일정 주파수들을 제거하거나 노이즈를 억제함으로써) 를 제작하기 위해 입력 오디오 신호를 필터링할 수 있다. 사전-프로세서 컴포넌트(140)는 필터링된 입력 오디오 신호를 데이터 패킷들로 변환할 수 있다(예를 들어, 소프트웨어 또는 하드웨어 디지털-투-아날로그 변환기를 사용함으로써). 일부 경우들에서, 사전-프로세서 컴포넌트(140)는 필터링되지 않은 입력 오디오 신호를 데이터 패킷들로 변환할 수 있고 데이터 패킷들을 데이터 프로세싱 시스템(102)에 전송할 수 있다. 사전-프로세서 컴포넌트(140)는 자연어 프로세서 컴포넌트, 인터페이스, 화자 인식 컴포넌트 및 직동식 애플리케이션 프로그래밍 인터페이스를 실행하는 하나 이상의 프로세서들 및 메모리를 포함하는 데이터 프로세싱 시스템(102)에 데이터 패킷들을 전송할 수 있다.
데이터 프로세싱 시스템(102)은, 센서에 의해 검출된 필터링된(또는 필터링되지 않은) 입력 오디오 신호를 포함하는 데이터 패킷들을, 사전-프로세서 컴포넌트로부터, 인터페이스를 통해 수신할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호로부터 음향 서명을 식별할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소의 룩업에 기초하여 (예를 들어, 데이터베이스에 쿼리하는 것) 음향 서명에 대응하는 전자 계정을 식별할 수 있다. 데이터 프로세싱 시스템(102)은, 전자 계정의 식별에 응답하여, 세션 및 세션 내의 사용을 위해 프로필 스택 데이터 구조를 설정할 수 있다. 프로필 스택 데이터 구조는 제3 자 엔티티의 디바이스에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함한다. 데이터 프로세싱 시스템(102)은, 세션에 대해 설정된 프로필 스택 데이터 구조에, 전자 계정으로부터 검색된 제2 프로필 계층을 푸싱할 수 있다. 데이터 프로세싱 시스템(102)은 요청 및 요청에 대응하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 데이터 프로세싱 시스템(102)은, 트리거 키워드 및 프로필 스택 데이터 구조에 푸싱된 제2 프로필 계층에 기초하여, 프로필 스택 데이터 구조의 제1 프로필 계층과 호환 가능한 요청에 응답하여 제1 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 실행을 위해 제1 액션 데이터 구조를 제공할 수 있다. 데이터 프로세싱 시스템(102)은, 트리거 이벤트의 검출에 응답하여, 프로필 스택 데이터 구조로부터 제1 프로필 계층 또는 제2 프로필 계층 중 하나를 제거하기 위해 프로필 스택 데이터 구조를 분해할 수 있다.
데이터 프로세싱 시스템(102)은, 로컬 컴퓨팅 디바이스(104)의 사전-프로세서 컴포넌트에, 프로필 스택 데이터 구조의 상태를 제공할 수 있다. 상태는 제2 프로필 계층이 프로필 스택으로 푸싱되었었음을 표시할 수 있다. 상태는 제1 프로필 계층과 제2 프로필 계층이 모두 프로필 스택에 있음을 표시할 수 있다. 상태는 제2 프로필 계층이 프로필 스택에서 제거되었었음을 표시할 수 있다. 상태는 프로필 스택이 클리어되었었거나 디폴트 상태로 리턴했었음을 표시할 수 있다 (예를 들어. 프로필 스택 내의 제1 프로필 계층만 있는 경우). 다양한 용어들이 예를 들어, "보안 세팅"; “공공 세팅”; “<전자 계정의 식별자>”; 또는 “준비”를 포함하여, 상태를 표시하기 위해 사용될 수 있다.
로컬 컴퓨팅 디바이스(104)는 상태 표시를 수신할 수 있다. 오디오 드라이버는 프로필 스택 데이터 구조의 상태 표시를 수신할 수 있고, 상기 표시에 기초하여 출력 신호를 생성할 수 있다. 오디오 드라이버는 표시를 사운드 신호 또는 음향 출력 신호와 같은, 출력 신호로 변환할 수 있다. 오디오 드라이버는 오디오 드라이브에 의해 생성된 출력 신호에 기초하여 사운드를 생성하도록 변환기(136) (예를 들어, 스피커)를 구동할 수 있다.
일부 경우들에서, 로컬 컴퓨팅 디바이스(104)는 광원을 포함할 수 있다. 광원은 하나 이상의 LED들, 조명들, 디스플레이, 또는 광학 또는 시각적 출력을 제공하도록 구성된 다른 컴포넌트 또는 디바이스를 포함할 수 있다. 사전-프로세서 컴포넌트는 광원으로 하여금 프로필 스택 데이터 구조의 상태에 대응하는 시각적 표시를 제공하도록 할 수 있다. 예를 들어, 시각적 표시는 켜지는 상태 표시기 조명, 조명의 컬러 변경, 하나 이상의 컬러들이 있는 조명 패턴, 또는 텍스트 나 이미지들의 시각적 디스플레이일 수 있다.
도 3은 프로필 스택을 프로세싱하기 위한 시스템(100)의 동작의 도시이다. 시스템(100)은 도 1에 도시된 시스템(100), 도 2에 도시된 환경(200), 또는 도 6에 도시된 시스템(600)의 하나 이상의 컴포넌트를 포함할 수 있는 환경(300)에서 동작할 수 있다. 환경(300)은 도 2에 도시된 동일한 장소(202)를 포함할 수 있지만, 상기 장소는 보안된 공공 장소(202)와 대조적으로, 비보안된 공공 장소(302)가 아닐 수 있다. 모바일 컴퓨팅 디바이스(144)가 보안된 공공 장소 외부(304)에 위치되기 때문에 공공 장소는 비보안된 공공 장소(302)일 수 있다. 보안된 장소의 외부(304)는 지리적 펜스 외부에 있거나 또는 로컬 컴퓨팅 디바이스(104)로부터의 거리 임계치 이상인 것으로 지칭할 수 있다. 비보안된 공공 장소(302) 내의 인터넷 연결된 디바이스들(204, 206, 208, 210 및 212)은 보안된 공공 장소(202) 내의 인터넷 연결된 디바이스들과 동일할 수 있다. 그러나, 장소(302)를 떠나는 모바일 컴퓨팅 디바이스(144)는 데이터 프로세싱 시스템(102)으로 하여금 프로필 스택 데이터 구조(142)를 분해하게 하는 종료 이벤트를 트리거할 수 있다. 프로필 스택 데이터 구조(142)를 분해하는 것은, 계층 1에 제1 프로필을 남기면서, 계층 2 내의 제2 프로필을 제거하는 것을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 프로필 스택 데이터 구조(142)를 제3 자에 의해 설정된 로컬 컴퓨팅 디바이스(104)에 대해 구성된 디폴트 상태로 리턴할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 프로필 스택 데이터 구조(142)로부터 계층 2를 제거하기 위해 명령어(306)를 전송할 수 있다.
도 4는 프로필 스택을 프로세싱하기 위한 시스템(100)의 동작의 도시이다. 시스템(100)은 도 1에 도시된 시스템(100), 또는 도 6에 도시된 시스템(600)의 하나 이상의 컴포넌트를 포함할 수 있는 환경(400)에서 동작할 수 있다. 환경(400)은 제2 프로필과 연관된 음향 서명을 갖는 전자 계정과 연관된 사용자에 대응하는 개인 거주지와 같은, 보안된 개인 장소(402)를 포함할 수 있다. 보안된 개인 장소(402)는 데이터 프로세싱 시스템(102)에 의해 관리, 모니터링 또는 제어될 수 있는 몇몇 인터넷 연결된 디바이스들을 포함할 수 있다. 인터넷 연결된 디바이스들은 예를 들어, 연결된 텔레커뮤니케이션 디바이스(204), 연결된 서모스탯(206), 연결된 램프(208), 연결된 스피커(210) 및 연결된 멀티미디어 디스플레이(212)를 포함할 수 있다. 보안된 개인 장소(402)는 로컬 컴퓨팅 디바이스(104)를 또한 포함할 수 있다. 로컬 컴퓨팅 디바이스는 로컬 컴퓨팅 디바이스(104)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 보안된 개인 장소(402)는 도 2에 도시된 공공 장소(202)에 위치된 무선 게이트웨이(214)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있는, 무선 게이트웨이(214)를 또한 포함할 수 있다.
보안된 개인 장소(402)에 위치된 연결된 텔레커뮤니케이션 디바이스(204)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 텔레커뮤니케이션 디바이스(204)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 그러나, 보안된 개인 장소(402)에 위치된 연결된 텔레커뮤니케이션 디바이스(204)는 도 2 도시된 공공 장소(202)에 위치된 연결된 텔레커뮤니케이션 디바이스(204)와 비교하여 상이한 구성 세팅들 또는 식별자들을 포함할 수 있다.
보안된 개인 장소(402)에 위치된 연결된 서모스탯(206)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 서모스탯(206)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 그러나, 보안된 개인 장소(402)에 위치된 연결된 서모스탯(206)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 서모스탯(206)과 비교하여 상이한 구성 세팅들 또는 식별자들을 포함할 수 있다.
보안된 개인 장소(402)에 위치된 연결된 램프(208)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 램프(208)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 그러나, 보안된 개인 장소(402)에 위치된 연결된 램프(208)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 램프(208)와 비교하여 상이한 구성 세팅들 또는 식별자들을 포함할 수 있다.
보안된 개인 장소(402)에 위치된 연결된 스피커(210)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 스피커(210)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 그러나, 보안된 개인 장소(402)에 위치된 연결된 스피커(210)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 스피커(210)와 비교하여 상이한 구성 세팅들 또는 식별자들을 포함할 수 있다.
보안된 개인 장소(402)에 위치된 연결된 멀티미디어 디스플레이(212)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 멀티미디어 디스플레이(212)로써 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 그러나, 보안된 개인 장소(402)에 위치된 연결된 멀티미디어 디스플레이(212)는 도 2에 도시된 공공 장소(202)에 위치된 연결된 멀티미디어 디스플레이(212)와 비교하여 상이한 구성 세팅들 또는 식별자들을 포함할 수 있다.
보안된 개인 장소(402)는 사용자의 개인 거주지, 집 또는 아파트를 지칭할 수 있다. 보안된 개인 장소(402) 내의 로컬 컴퓨팅 디바이스(104)는 제3 자 디바이스(146)에 의해 제공된 디폴트 또는 기준 프로필을 활용하지 않을 수 있다. 즉, 데이터 프로세싱 시스템(102)은 제2 사용자의 전자 계정과 연관된 계층 2 프로필만을 추가할 수 있다. 보안된 개인 장소(402)에 위치된 로컬 컴퓨팅 디바이스(104)에 대한 프로필 스택 데이터 구조(142)(프로필 스택 데이터 구조(142)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있음)는 제3 자 디바이스에 의해 설정된 계층 1 프로필을 포함하지 않을 수 있다. 즉, 데이터 프로세싱 시스템(102)은 계층 2(404)만을 프로필 스택 데이터 구조(142)에 추가할 수 있다.
그러나, 제2 사용자가 보안된 개인 장소(402)에 들어가서 로컬 컴퓨팅 디바이스(104)에 의해 검출된 음성 입력을 제공하면, 데이터 프로세싱 시스템(102)은 제2 사용자에 대응하는 제3 프로필을 선택할 수 있고, 그 후 계층 3으로써 프로필 스택 데이터 구조(142)에 제3 프로필을 푸싱한다 (프로필 스택 데이터 구조(142)와 일치하는 계층화 구조를 나타내기 위해 도시된 계층 1이 없는)
일부 경우들에서, 보안된 개인 장소(402) 내의 로컬 컴퓨팅 디바이스(104) 및 데이터 프로세싱 시스템(102)은 하나 이상의 추가 프로필 계층들을 프로필 스택 데이터 구조(142)에 푸싱할 수 있다. 예를 들어, 보안된 개인 장소(402)의 게스트는 로컬 컴퓨팅 디바이스(104)에 의해 검출될 수 있는 음성 입력을 제공할 수 있다. 로컬 컴퓨팅 디바이스(104)는, 음성 입력 또는 입력 오디오 신호를 검출할 때, 입력 오디오 신호에 대한 사전-프로세싱을 수행하고, 추가 프로세싱을 위해 입력 오디오 신호에 대응하는 데이터 패킷들을 데이터 프로세싱 시스템(102)에 전송할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호로부터 음향 서명를 검출하려고 시도할 수 있다. 데이터 프로세싱 시스템(102)은 음향 서명을 식별한 다음 게스트에 대한 대응하는 전자 계정을 식별하려고 시도할 수 있다. 그러나, 데이터 프로세싱 시스템(102)은 게스트에 대한 대응하는 전자 계정을 식별할 수 없거나 - 또는 데이터 프로세싱 시스템(102)이 음향 서명을 식별할 수 없을 수 있다. 어느 경우 에서나, 데이터 프로세싱 시스템(102)은 입력 오디오 신호 또는 그것의 음향 서명에 응답하여 프로필 계층에 액세스하거나 프로필 계층을 선택할 수 없다. 이 경우, 데이터 프로세싱 시스템(102)은 별도의 프로세싱 흐름을 활용할 수 있다.
예를 들어, 입력 오디오 신호를 제공했던 게스트 사용자는 데이터 프로세싱 시스템(102)에 의해 설정된 프로필 또는 전자 계정을 가지지 않을 수 있다. 게스트는 모바일 컴퓨팅 디바이스(144)를 가질 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호에 대응하는 전자 계정의 부재를 결정할 수 있다. 일부 경우들에서, 데이터 프로세싱 시스템(102)은 새로운 프로필을 제작하라는 프롬프트 또는 요청을 생성할 수 있다. 그러나, 게스트 사용자가 새로운 프로필을 제작하라는 프롬프트 또는 요청을 거부하거나, 데이터 프로세싱 시스템(102)이 프로필을 제작하지 않고 프로세싱 흐름을 진행하기로 결정하는 경우, 데이터 프로세싱 시스템(102)은 프로필-없는 흐름을 개시하거나 또는 게스트-모드로 들어간다. 게스트-모드에서, 데이터 프로세싱 시스템(102)은 별도의 인증 메커니즘을 활용할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은, 로컬 컴퓨팅 디바이스(104)에 결합된 디스플레이 디바이스를 통해, QR 코드와 같은 광 코드를 제시할 수 있다 (또는 계정의 고유 식별자, 식별자 또는 재정적인 기구와 같은, 일부 다른 코드). 고유 식별자 또는 QR 코드는 게스트가 프로필 또는 전자 계정의 제작을 유발하지 않는 임시 세션을 설정하는 것을 허용한다. 데이터 프로세싱 시스템(102)은 임시 세션을 통해 액션 데이터 구조를 구축하거나 다른 작업들을 수행하는 것을 진행할 수 있다.
일부 경우들에서, 데이터 프로세싱 시스템(102)은, 로컬 컴퓨팅 디바이스(104) 자체와 같은, 제품을 구매하기 위해 게스트의 모바일 컴퓨팅 디바이스(144)에 디지털 컴포넌트를 전송할 수 있다.
도 5는 컴퓨터 네트워크를 통해 스택 데이터 구조들의 프로세싱에 대한 방법의 도시이다. 방법(500)은 도 1에 도시된 시스템(100), 또는 도 6에 도시된 시스템(600)의 하나 이상의 컴포넌트, 시스템 또는 요소에 의해 수행될 수 있다. 방법(500)은 도 2에 도시된 환경(200), 도 3에 도시된 환경(300), 도 4에 도시된 환경(400)에서 수행될 수 있다. 방법(500)은 ACT(502)에서 입력 오디오 신호를 수신하는 데이터 프로세싱 시스템을 포함할 수 있다. 데이터 프로세싱 시스템은 인터페이스를 통해 입력 오디오 신호를 포함하는 데이터 패킷들을 수신한다. 입력 오디오 신호는, 마이크로폰과 같은, 로컬 컴퓨팅 디바이스의 센서에 의해 검출될 수 있었다. 로컬 컴퓨팅 디바이스는 호텔과 같은 공공 장소에 위치할 수 있다. 일부 경우들에서, 로컬 컴퓨팅 디바이스는 거주지와 같은 보안된 개인 장소에 위치에 위치될 수 있다. 로컬 컴퓨팅 디바이스는 음성 입력을 검출하고, 음성 입력을 사전-프로세싱하고, 음성 입력 중 적어도 일부를 포함하는 데이터 패킷들을 생성하며, 데이터 패킷들을 데이터 프로세싱 시스템에 전송할 수 있다. 로컬 컴퓨팅 디바이스는 음성 입력을 검출하고, 음성 입력을 디지털 데이터 패킷들로 변환하고, 추가 프로세싱을 위해 디지털 데이터 패킷들을 데이터 프로세싱 시스템에 전송하기 위해 표시하는 트리거 키워드를 식별함에 응답하여 데이터 패킷들을 로컬 컴퓨팅 디바이스에 전송할 수 있다.
ACT(504)에서, 데이터 프로세싱 시스템은 서명을 식별한다. 데이터 프로세싱 시스템은 입력 오디오 신호로부터 음향 서명를 식별할 수 있다. 데이터 프로세싱 시스템은 화자 인식 기법들, 음향 서명을 식별하기 위한 패턴 인식 또는 다른 기법들을 적용할 수 있다. 데이터 프로세싱 시스템은 하나 이상의 음향 서명들을 식별할 수 있다. 일부 경우들에서, 데이터 프로세싱 시스템은 패스코드, 패스워드, 핀, 패스프레이즈(passphrase), 다른 생체 인증 또는 모바일 디바이스로 전송되는 보안 코드를 통해서와 같이, 사용자에게 멀티팩터 인증(multi-factor authentication)을 촉구할 수 있다.
ACT(506)에서, 데이터 프로세싱 시스템은 계정을 식별한다. 데이터 프로세싱 시스템은 전자 계좌를 식별하기 위해 음향 서명을 사용하여(using의 오타인듯)데이터 저장소 내의 룩업을 수행할 수 있다. 데이터 프로세싱 시스템은 음향 서명에 기초한 인증 또는 멀티팩터 인증이 만족되는 것에 응답하여 룩업을 수행할 수 있다. 전자 계정은 선호도들, 라벨들, 정책들, 규칙들, 또는 잘못되거나 낭비되는 원격 프로시저 호출 또는 데이터 전송들을 줄일 수 있는 다른 정보와 같은, 프로필 정보를 포함할 수 있다.
일부 경우들에서, 데이터 프로세싱 시스템은 음향 서명을 사용하지 않고 계정을 식별할 수 있다. 데이터 프로세싱 시스템은 다양한 입력, 센서들 또는 인터페이스들을 사용하여 계정을 식별할 수 있다. 예를 들어, 음향 서명을 사용하여 계정을 식별하기 보다는, 데이터 프로세싱 시스템은 사용자가 소유 한 모바일 디바이스에 기초하여 계정을 식별할 수 있다. 모바일 디바이스는 로컬 컴퓨팅 디바이스와 통신하거나 인터랙팅할 수 있다. 사용자는 계정을 사용하여 모바일 디바이스에 로그인할 수 있다. 계정을 사용하여 모바일 디바이스에 로그인하는 것은 사용자이름 (또는 다른 계정 식별자) 및 패스워드 (또는 다른 토큰, 키 또는 생체 패스워드)와 같은 증명서들(credential)을 모바일 디바이스에서 실행되는 소프트웨어 애플리케이션 또는 운영 체제에 입력하고, 증명서들을 인증하는 것을 지칭할 수 있다. 모바일 디바이스는 로컬 컴퓨팅 디바이스에 계정 정보 (예를 들어, 사용자이름)를 통보(communicate)할 수 있고, 계정이 모바일 디바이스 상에서 인증되었었음을 표시할 수 있다. 로컬 컴퓨팅 디바이스는, 데이터 프로세싱 시스템에, 계정 식별자의 표시와 계정 식별자가 인증 또는 유효화되었었다는 것을 전송할 수 있다. 데이터 프로세싱 시스템은 로컬 컴퓨팅 디바이스로부터 계정 식별자를 수신하고, 대응하는 전자 계정에 액세스하고, 대응하는 프로필을 검색할 수 있다. 즉, 데이터 프로세싱 시스템은 음향 서명의 사용을 포함하거나 포함하지 않을 수 있는 하나 이상의 기법들을 사용하여 사용자와 연관된 계정을 식별할 수 있다. 다른 기법들은 광학 코드 (예를 들어, 빠른 참조 코드), 생체 (예를 들어, 지문, 홍채 스캐너, 또는 안면 인식), 계정 식별자를 타이핑하도록 키보드, 마우스 또는 터치 인터페이스를 사용, 또는 계정 식별자를 제공하도록 음성 입력을 사용하는 것을 포함할 수 있다.
ACT(508)에서, 데이터 프로세싱 시스템은 세션 및 프로필 스택을 설정한다. 데이터 프로세싱 시스템은 세션 및 세션 내의 사용을 위해 프로필 스택 데이터 구조를 설정할 수 있다. 데이터 프로세싱 시스템은 전자 계정의 식별 또는 인증 프로시저 (예를 들어, 음향 서명-기반 인증, 또는 멀티팩터 인증, 또는 추가 생체 인증)의 완료에 응답하여 세션 및 프로필 스택 데이터 구조를 설정할 수 있다. 프로필 스택 데이터 구조는 제3 자에 의해 유지되는 공공 장소에 위치된 로컬 컴퓨팅 디바이스를 위한 것일 수 있으므로, 프로필 스택 데이터 구조는 제3 자 엔티티 (예를 들어, 호텔 운영자, 몰 운영자 또는 렌터카 운영자)의 디바이스에 의해 구성된 하나 이상의 정책들을 갖는 제1 프로필 계층을 포함할 수 있다.
ACT(510)에서, 데이터 프로세싱 시스템은 제2 프로필을 푸싱한다. 데이터 프로세싱 시스템은 세션에 대해 설정된 프로필 스택 데이터 구조 상에 제2 프로필 계층으로써 제 2 프로필을 푸싱할 수 있다. 제1 프로필 계층은 제2 프로필 계층보다 우선 순위를 갖는 일정 라벨들 또는 정책들을 가질 수 있다. 제2 프로필 계층이 디지털 컴포넌트들을 선택하고 액션 데이터 구조를 생성하기 위해 활용될 수 있는 반면에, 제1 프로필 계층은 일정 타입들의 디지털 컴포넌트들 또는 액션 데이터 구조가 실행되는 것을 차단할 수 있다 (예를 들어, 사용자에게 제시를 위해 전달되거나, 의도된 인터넷 연결된 디바이스에 전송, 또는 라이드 쉐어링 서비스와 같은 서비스 제공자에게 전송).
ACT(512)에서, 데이터 프로세싱 시스템은 요청을 식별한다. 데이터 프로세싱 시스템은 요청 및 요청에 대응하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 데이터 프로세싱 시스템은 음향 서명, 전자 계정, 및 제2 프로필을 식별하기 위해 사용되는 것과 동일한 입력 오디오 신호를 파싱할 수 있다. 일부 경우들에서, 데이터 프로세싱 시스템은 전자 계정 및 프로필을 식별하기 위해 사용되는 제1 입력 오디오 신호에 후속하여 수신된 제2 입력 오디오 신호를 프로세싱할 수 있다. 데이터 프로세싱 시스템은 제2 입력 오디오 신호에서 요청 및 트리거 키워드를 식별할 수 있다.
ACT(514)에서, 데이터 프로세싱 시스템은 액션 데이터 구조를 생성하고 제공한다. 데이터 프로세싱 시스템은 요청, 트리거 키워드, 및 프로필 스택 데이터 구조에 푸싱된 제2 프로필 계층에 기초하여 액션 데이터 구조를 생성할 수 있다. 액션 데이터 구조는 요청에 응답하여 생성될 수 있다. 액션 데이터 구조는 프로필 스택 데이터 구조의 제1 프로필 계층과 호환될 수 있다. 액션 데이터 구조가 음향 서명과 연관된 전자 계정과 연관된 제2 프로필을 사용하여 생성될 수 있는 반면에, 데이터 프로세싱 시스템은 생성된 액션 데이터 구조가 제1 프로필 계층과 호환가능한지 또는 제1 프로필 계층에 부합하는지 여부를 결정하기 위해 에러 체크를 수행할 수 있다. 예를 들어, 제1 프로필 계층은 잘못된, 또는 과도한 네트워크 대역폭 또는 컴퓨팅 리소스들을 소비할 수 있는, 일정 타입의 액션 데이터 구조들을 차단, 예방 또는 금지할 수 있다.
액션 데이터 구조가 제1 프로필 계층에 부합한다고 결정하면, 데이터 프로세싱 시스템은 실행을 위한 제1 액션 데이터 구조를 제공할 수 있다. 실행을 위한 액션 데이터 구조를 제공하는 것은 액션을 수행하거나 명령어를 제공하기 위해 인터넷 연결된 디바이스에 액션 데이터 구조를 전송하는 것; 서비스 제공자에게 액션 데이터 구조를 전송하는 것; 또는 디지털 컴포넌트를 수신하기 위해 콘텐츠 선택기 컴포넌트에 액션 데이터 구조를 제공하는 것을 포함할 수 있다.
ACT(516)에서, 데이터 프로세싱 시스템은 프로필 스택(514)을 분해한다. 데이터 프로세싱 시스템은 트리거 이벤트의 검출에 응답하여 프로필 스택을 분해할 수 있다. 데이터 프로세싱 시스템은 프로필 스택 데이터 구조로부터 제1 프로필 계층 또는 제2 프로필 계층 중 하나를 제거함으로써 프로필 스택 데이터 구조를 분해할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 음향 서명에 대응하는 제2 프로필을 제거함으로써 프로필 스택을 디폴트 세팅으로 다시 세팅할 수 있다. 트리거 이벤트는 시간 간격 (예를 들어, 사용자에 의해 세팅된 커스텀 시간 간격, 또는 10분, 20분, 30분, 1시간, 12시간 또는 24시간과 같이, 미리 결정된 시간 간격)을 포함할 수 있다. 트리거 이벤트는 지리적 펜스 또는 제1 사용자와 상이한 제2 사용자의 검출을 포함할 수 있다.
프로필 스택 데이터 구조를 사용함으로써, 데이터 프로세싱 시스템은 로컬 컴퓨팅 디바이스에 의해 수신된 명령들을 명확하게 함을 용이하게 할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 문법 "lights at home"를 갖는 명령을 수신할 수 있다. 데이터 프로세싱 시스템은 "lights at home"에 대응하는 하나 이상의 인터넷 연결된 디바이스들을 식별하기 위해 제2 프로필을 체크할 수 있다. 그러나, 제1 프로필 계층은 "lights at home"에 대응하는 라벨을 또한 포함할 수 있다. 데이터 프로세싱 시스템은 어느 인터넷 연결된 디바이스가 제어되어야 하는지를 판독하기 위해 사용자에게 프롬프트를 제공할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 제2 프로필에 기초하여 액션 데이터 구조를 생성할 수 있고, 그 후 생성된 액션 데이터 구조가 제1 프로필에 부합하는지 여부를 결정하기 위해 액션 데이터 구조와 제1 프로필 내의 정책 또는 규칙을 비교한다. 일부 경우들에서, 데이터 프로세싱 시스템은 라벨이 제1 프로필의 라벨과 오버랩핑(overlap)하기 때문에 액션 데이터 구조가 부합하지 않는다고 결정할 수 있으며, 그리고, 따라서, 추가 프롬프트 없이 액션 데이터 구조의 전송 또는 실행을 차단한다.
도 6은 예시적인 컴퓨터 시스템(600)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(600)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은, 그 컴포넌트들을 포함하거나 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은, 그 컴포넌트들을 구현하기 위해 사용될 수 있다. 데이터 프로세싱 시스템(102)은 지능형 개인 어시스턴트 또는 음성-기반 디지털 어시스턴트를 포함할 수 있다. 컴퓨팅 시스템(600)은 정보를 통보하기 위한 버스(605) 또는 다른 통신 컴포넌트, 및 정보를 프로세싱하기 위해 버스(605)에 결합된 프로세서(610) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(600)은 정보를 프로세싱하기 위해 버스에 결합된 하나 이상의 프로세서들(610) 또는 프로세싱 회로들을 또한 포함할 수 있다. 컴퓨팅 시스템(600)은 정보, 및 프로세서(610)에 의해 실행될 명령어들을 저장하도록 버스(605)에 결합된, 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은, 메인 메모리(615)를 또한 포함한다. 메인 메모리(615)는 데이터 저장소(145)일 수 있거나 데이터 저장소(145)를 포함할 수 있다. 메인 메모리(615)는 프로세서(610)에 의한 명령어들의 실행 동안 포지션 정보, 임시 변수들, 또는 다른 중간 정보를 저장하기 위해 또한 사용될 수 있다. 컴퓨팅 시스템(600)은 프로세서(610)에 대한 명령어들 및 정적 정보를 저장하기 위해 버스(605)에 결합된 읽기 전용 메모리(ROM)(620) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 상태 디바이스, 자기 디스크, 또는 광 디스크와 같은, 저장 디바이스(625)는 지속적으로 정보 및 명령어들을 저장하기 위해 버스(605)에 결합될 수 있다. 저장 디바이스(625)는 데이터 저장소(145)를 포함할 수 있거나 데이터 저장소(145)의 일부일 수 있다.
컴퓨팅 시스템(600)은, 사용자에게 정보를 디스플레이하기 위해, LCD 또는 액티브 매트릭스 디스플레이와 같은, 디스플레(635)에 버스(605)를 통해 결합될 수 있다. 영숫자 및 다른 키들을 포함하는 키보드와 같은, 입력 디바이스(630)는 정보 및 명령 선택들을 프로세서(610)에 통보하기 위해 버스(605)에 결합될 수 있다. 입력 디바이스(630)는 터치 스크린 디스플레이(635)를 포함할 수 있다. 입력 디바이스(630)는 프로세서(610)에 방향 정보 및 명령 선택들을 통보하고 디스플레이(635) 상의 커서 이동을 제어하기 위해 마우스, 트랙볼, 또는 커서 방향 키들과 같은, 커서 제어를 포함할 수 있다. 예를 들어, 디스플레이(635)는 도 1의 다른 컴포넌트, 데이터 프로세싱 시스템(102), 또는 클라이언트 컴퓨팅 디바이스(150)의 일부일 수 있다.
본 명세서에 기술된 프로세스들, 시스템들, 및 방법들은 메인 메모리(615)에 포함된 명령어들의 배열을 실행하는 프로세서(610)에 응답하여 컴퓨팅 시스템(600)에 의해 구현될 수 있다. 이러한 명령어들은, 저장 디바이스(625)와 같은, 다른 컴퓨터-판독가능 매체로부터 메인 메모리(615)로 판독(read into)될 수 있다. 메모리(615)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(600)으로 하여금 본 명세서에 기술된 예증적 프로세스들을 수행하게 한다. 멀티-프로세싱 장치 내의 하나 이상의 프로세서들은 메인 메모리(615)에 포함된 명령어들 실행하기 위해 또한 이용(employ)될 수 있다. 하드-와이어드 회로는 본 명세서에 기술된 시스템들 및 방법들을 포함하여 소프트웨어 명령어들 대신 또는 소프트웨어 명령어들과 함께 사용될 수 있다. 본 명세서에 기술된 시스템들 및 방법들은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
예시적 컴퓨팅 시스템이 도 6에 기술되었을지라도, 본 명세서에 기술된 동작들을 포함하는 발명은, 본 명세서에 게시된 구조들 및 그들의 구조적 등가물들을 포함하는 하드웨어, 펌웨어, 컴퓨터 소프트웨어에서, 또는 다른 타입의 디지털 전자 회로에서, 또는 그들 중 하나 이상의 조합들에서 구현될 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황들에서, 사용자들은 개인 정보 (예를 들어, 사용자의 소셜 네트워크에 관한 정보, 소셜 행동들 또는 활동들, 사용자의 선호도들 또는 사용자의 위치)를 수집할 수 있는 프로그램들 또는 구성들을 제어하거나, 콘텐츠 서버 또는 다른 데이터 프로세싱 시스템으로부터 사용자에게 보다 관련 있는 콘텐츠를 수신할지 또는 어떻게 수신할지를 제어할 기회를 제공받을 수 있다. 추가로, 일정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식들로 익명화 될 수 있어, 파라미터들을 생성할 때 개인 식별 정보는 제거된다. 예를 들어, 사용자의 신원이 익명화되어 사용자에 대해 개인 식별 정보가 결정될 수 없거나, 또는 사용자의 지리적 위치가 위치 정보가 획득된 곳(도시, 우편 번호 또는 주 레벨과 같은)으로 일반화될 수 있어, 사용자의 특정한 위치가 결정되지 못할 수 있다. 따라서, 사용자는 사용자에 관한 정보가 콘텐츠 서버에 의해 어떻게 수집되고 사용되는지를 제어할 수 있다.
본 명세서에서 기술된 발명 및 동작들은 본 명세서에 게시된 구조들 및 그들의 구조적 등가물들을 포함하는 하드웨어, 펌웨어, 컴퓨터 소프트웨어에서, 또는 디지털 전자 회로에서, 또는 그들 중 하나 이상의 조합들에서 구현될 수 있다. 본 명세서에 기술된 발명은 하나 이상의 컴퓨터 프로그램들, 예를 들어, 데이터 프로세싱 장치들에 의한 실행을 위해 또는 데이터 프로세싱 장치들의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체 상에 인코딩된, 컴퓨터 프로그램 명령어들의 하나 이상의 회로들, 로써 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 인위적으로 생성된 전파된 신호, 예를 들어 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성된 기계로-생성된 전기, 광학 또는 전자기 신호, 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아닌 반면에, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호로 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트들 또는 매체 (예를 들어, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)일 수 있거나 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장되거나 다른 소스들로부터 수신된 데이터에 대한 데이터 프로세싱 장치에 의해 수행되는 동작들로써 구현될 수 있다.
용어들 "데이터 프로세싱 시스템" "컴퓨팅 디바이스" "컴포넌트" 또는 "데이터 프로세싱 장치"는 예를 들어, 프로그램 가능한 프로세서, 컴퓨터, 칩 상의 시스템, 또는 다수의 것들, 또는 이들의 조합들을 포함하는, 데이터를 프로세싱하기 위한 다양한 장치들, 디바이스들 및 기계들을 아우(encompass)른다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 상기 장치는, 하드웨어 이외에, 문제의 컴퓨터 프로그램을 위한 실행 환경을 제작하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 기계, 또는 그들 중 하나 이상의 조합을 구성하는 코드, 를 또한 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 기반구조들과 같은, 다양한 상이한 컴퓨팅 모델 기반구조들을 실현할 수 있다. 예를 들어, 직동식 API(116), 콘텐츠 선택기 컴포넌트(118), 또는 NLP 컴포넌트(112) 및 다른 데이터 프로세싱 시스템(102) 컴포넌트들은 하나 이상의 데이터 프로세싱 장치들, 시스템들, 컴퓨팅 디바이스들, 또는 프로세서들을 포함하거나 공유할 수 있다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트, 또는 코드로 또한 알려짐)은 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램을 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용을 위해 적합한 다른 유닛을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일과 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터 (예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들), 문제의 프로그램 전용의 단일 파일, 또는 다수의 조정된 파일들 (예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 일부들을 저장하는 파일들)을 보유하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 자리(site)에 위치되거나 또는 다수의 자리들에 분산되고 그리고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들 상에도 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작시키고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들 (예를 들어, 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어, FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)에 의해 또한 수행될 수 있으며, 장치들 또한 특수 목적 논리회로에 의해 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 모든 형태의 비-휘발성 메모리, 매체, 메모리 디바이스들을 포함하며, 상기 메모리 디바이스들은 반도체 메모리 디바이스들 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 분리성 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들이다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함(incorporate)될 수 있다.
본 명세서에 기술된 발명은 컴퓨팅 시스템 내에서 구현될 수 있으며, 상기 컴퓨팅 시스템은 백 엔드 컴포넌트, 예를 들어 데이터 서버, 를 포함하거나 미들웨어 컴포넌트, 예를 들어 애플리케이션 서버, 를 포함하거나 프론트 엔드 컴포넌트, 예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 기술된 발명의 구현과 인터랙팅할 수 있는 웹 브라우저, 를 포함하거나 또는 하나 이상의 그러한 백 엔드, 미들웨어, 프론트 엔드 컴포넌트들의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신 예를 들어, 통신 네트워크, 의 임의의 형태 또는 매체에 의해 상호연결 될 수 있다. 통신 네트워크들의 예시들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크 (예를 들어, 인터넷) 및 피어-투-피어 네트워크들 (예를 들어, 알맞은 피어-투-피어 네트워크들)을 포함할 수 있다.
시스템(100) 또는 시스템(600)과 같은 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있고 전형적으로 통신 네트워크(예를 들어, 네트워크(105))를 통해 인터랙팅한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 작동하고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해서 발생한다. 일부 구현예들에서, 서버는 데이터 (예를 들어, 디지털 컴포넌트를 표현하는 데이터 패킷들) 을 클라이언트 디바이스에 전송한다 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위한 목적으로). 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 인터랙션의 결과)는 서버의 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 로컬 컴퓨팅 디바이스(104) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 제3 자 디바이스(146)로부터 데이터 프로세싱 시스템(102)에 의해 수신).
동작들이 도면들에 특정한 순서로 도시되어 있지만, 이러한 동작들은 도시된 특정한 순서 또는 순차적 순서로 수행될 필요는 없으며, 예시된 모든 동작들이 수행될 필요는 없다. 본 명세서에 기술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현들 내의 분리를 요청하지 않으며, 기술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(112) 또는 콘텐츠 선택기 컴포넌트(118)는 단일 컴포넌트, 앱, 또는 프로그램, 또는 하나 이상의 프로세싱 회로들을 갖는 논리 디바이스, 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버들의 일부일 수 있다.
몇몇 예증적 구현예들을 기술하였지만, 상기 기술들은 예시적이며 제한적인 것은 아니며, 예시로써 제시되었다. 특히, 비록 본 명세서에 제시된 많은 예시들이 방법 행동들 또는 시스템 요소들의 특정 조합들을 포함하지만, 그러한 행동들 및 요소들은 동일한 목적들을 달성하기 위해 다른 방식들로 결합될 수 있다. 하나의 구현과 관련하여 논의된 행동들, 요소들 및 구성들은 다른 구현예들 또는 구현예들의 유사한 역할로부터 배제되도록 의도되지 않는다.
본 명세서에 사용된 어구 및 전문 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. 본 명세서의 “포함하는(including)”“포함하는(comprising)”“가지는(having)”“내포하는(containing)”“포함하는(involving)”“특징으로 하는(characterized by)”“특징으로 하는(characterized in that)” 및 그 변형들의 사용은, 이후에 배타적으로 열거된 항목들로 구성된 대체 구현예들 뿐만 아니라 이후에 열거된 항목들, 그 등가물, 및 추가 항목들을 아우르는 것을 의미한다. 하나의 구현예에서, 본 명세서에 기술된 시스템들 및 방법들은 기술된 컴포넌트들, 요소들 또는 행동들 중 하나 이상, 또는 모두의 각각의 조합으로 구성된다.
단수로 지칭된 본 명세서의 시스템들 및 방법들의 구현예들 또는 요소들 또는 행동들에 대한 임의의 참조들은 복수의 이들 요소들을 포함하는 구현예들을 또한 포함할 수 있으며, 임의의 구현예 또는 요소 또는 행동에 대한 임의의 복수의 참조들은 또한 단일 요소만을 포함하는 구현예들을 또한 포함할 수 있다. 단수 또는 복수 형태의 참조들은 현재 게시된 시스템들 또는 방법들, 그들의 컴포넌트들, 행동들 또는 요소들을 단일 또는 복수 구성들로 제한하도록 의도된 것이 아니다. 정보, 행동 또는 요소에 기초하고 있는 임의의 행동 또는 요소에 대한 참조들은 행동 또는 요소가 임의의 정보, 행동 또는 요소에 적어도 부분적으로 기초한 구현예들을 포함할 수 있다.
본 명세서에 게시된 임의의 구현예는 임의의 다른 구현예 또는 실시예와 결합될 수 있고, "구현예", "일부 구현예들", "하나의 구현예"를 지칭하며, 그와 같은 것들은 반드시 상호 배타적인 것은 아니며 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성은 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 표시하도록 의도되었다. 본 명세서에 사용된 이러한 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현은 본 명세서에 게시된 양태들 및 구현예들과 일치하는 임의의 방식으로 다른 구현과, 포괄적으로 또는 배타적으로, 결합될 수 있다.
"또는" 에 대한 참조들은 포괄적인 것으로 해석될 수 있어, "또는"을 사용하여 기술된 임의의 용어들은 기술된 용어들 중 임의의 단일, 하나 이상, 및 모두를 표시할 수 있다. 예를 들어 참조 “'A' 와 'B' 중 적어도 하나”는 'A' 만, 'B' 만 뿐만 아니라, 'A' 와 'B' 둘 모두를 포함할 수 있다. "포함하는" 또는 다른 공개 전문용어와 함께 사용된 이러한 참조들은 추가 항목들을 포함할 수 있다.
도면들, 상세한 설명 또는 임의의 청구항의 기법적 구성들이 참조 부호들 뒤에 있는 경우, 도면들, 상세한 설명 및 청구항들의 명료성을 높이기 위해 상기 참조 부호들이 포함되었다. 따라서, 참조 부호들 또는 그것들 부재는 임의의 청구항 요소들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템들 및 방법들은 그 특성들로부터 벗어남 없이 다른 특정 형태들로 구현될 수 있다. 전술한 구현예들은 기술된 시스템들 및 방법들의 제한보다는 예증적인 것이다. 본 명세서에 기술된 시스템들 및 방법들의 범위는 따라서, 전술한 설명보다는 첨부된 청구항들에 의해 표시되며, 청구항들의 의미 및 균등범위 내에서의 변화들이 그 안에 포함된다.
Claims (20)
- 시스템으로서,
하나 이상의 프로세서를 포함하는 데이터 처리 시스템을 포함하고, 상기 하나 이상의 프로세서는:
데이터 처리 시스템의 인터페이스를 통해, 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신하고;
입력 오디오 신호로부터 음향 서명을 식별하고;
데이터 저장소에서의 조회(lookup)에 기초하여, 음향 서명에 대응하는 전자 계정을 식별하고;
전자 계정의 식별에 응답하여, 세션 그리고 하나 이상의 프로필 계층을 갖는 프로필 스택 데이터 구조를 설정하고;
요청 및 그 요청에 대응하는 키워드를 식별하도록 입력 오디오 신호를 파싱하고;
상기 요청에 응답하고 상기 프로필 스택 데이터 구조내의 하나 이상의 프로필 계층 각각과 호환되는 제1 액션 데이터 구조를 생성하고;
실행을 위해 제1 액션 데이터 구조를 제공하고; 그리고
트리거 이벤트의 검출에 응답하여, 프로필 스택 데이터 구조로부터 하나 이상의 프로필 계층 중 적어도 하나를 제거하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
하나 이상의 정책을 갖는 전자 계정의 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 것을 특징으로 하는 시스템. - 제2항에 있어서,
상기 데이터 처리 시스템은,
트리거 이벤트에 응답하여 프로필 스택 데이터 구조로부터 프로필 계층을 제거하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
전자 계정과 상이한 제3자의 디바이스에 의해 설정된 디폴트 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
하나 이상의 정책을 갖는 전자 계정의 프로필 계층 및 그 전자 계정과 상이한 제3자의 디바이스에 의해 설정된 디폴트 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
트리거 이벤트에 응답하여, 프로필 스택 데이터 구조를 디폴트 상태로 되돌리는(return) 것을 특징으로 하는 시스템. - 제6항에 있어서,
상기 디폴트 프로필 계층은 프로필 계층의 제2 라벨보다 우선 순위가 높은 제1 라벨을 포함하며, 상기 데이터 처리 시스템은,
요청에 응답하여 프로필 계층의 제2 라벨을 식별하고;
요청에 응답하여 디폴트 프로필 계층의 제1 라벨을 식별하고;
디폴트 프로필 계층의 제1 라벨이 프로필 계층의 제2 라벨보다 높은 우선 순위를 갖음을 결정하고; 그리고
제1 라벨이 제2 라벨보다 더 높은 우선 순위를 갖는다는 결정에 응답하여 디폴트 프로필 계층의 제1 라벨을 갖는 제1 액션 데이터 구조를 생성하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
요청에 응답하여 제2 액션 데이터 구조를 식별하고;
제2 액션 데이터 구조가 하나 이상의 프로필 계층의 프로필 계층과 호환되지 않음을 결정하고; 그리고
제2 액션 데이터 구조가 프로필 계층과 호환되지 않음을 나타내는 상태 표시를 로컬 컴퓨팅 디바이스에 제공하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
요청에 응답하여, 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템을 선택하고; 그리고
그 콘텐츠 아이템에 제1 액션 데이터 구조를 제공하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 데이터 처리 시스템은,
실시간 콘텐츠 선택 프로세스를 통해, 전자 계정에 기초하여 콘텐츠 아이템을 선택하고; 그리고
로컬 컴퓨팅 디바이스의 오디오 출력을 통한 프레젠테이션을 위해 상기 콘텐츠 아이템을 제공하는 것을 특징으로 하는 시스템. - 방법으로서,
하나 이상의 프로세서를 포함하는 데이터 처리 시스템에 의해, 그 데이터 처리 시스템의 인터페이스를 통해, 로컬 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신하는 단계;
데이터 처리 시스템에 의해, 입력 오디오 신호로부터 음향 서명을 식별하는 단계;
데이터 저장소에서의 조회에 기초하여 데이터 처리 시스템에 의해, 음향 서명에 대응하는 전자 계정을 식별하는 단계;
전자 계정의 식별에 응답하여 데이터 처리 시스템에 의해, 세션 그리고 하나 이상의 프로필 계층을 갖는 프로필 스택 데이터 구조를 설정하는 단계;
데이터 처리 시스템에 의해, 요청 및 그 요청에 대응하는 키워드를 식별하도록 입력 오디오 신호를 파싱하는 단계;
데이터 처리 시스템에 의해, 상기 요청에 응답하고 상기 프로필 스택 데이터 구조내의 하나 이상의 프로필 계층 각각과 호환되는 제1 액션 데이터 구조를 생성하는 단계;
데이터 처리 시스템에 의해, 실행을 위해 제1 액션 데이터 구조를 제공하는 단계; 및
트리거 이벤트의 검출에 응답하여 데이터 처리 시스템에 의해, 프로필 스택 데이터 구조로부터 하나 이상의 프로필 계층 중 적어도 하나를 제거하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
데이터 처리 시스템에 의해, 하나 이상의 정책을 갖는 전자 계정의 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 단계를 포함하는 것을 특징으로 하는 방법. - 제12항에 있어서,
데이터 처리 시스템에 의해, 트리거 이벤트에 응답하여 프로필 스택 데이터 구조로부터 프로필 계층을 제거하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
데이터 처리 시스템에 의해, 전자 계정과 상이한 제3자의 디바이스에 의해 설정된 디폴트 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
데이터 처리 시스템에 의해, 하나 이상의 정책을 갖는 전자 계정의 프로필 계층 및 그 전자 계정과 상이한 제3자의 디바이스에 의해 설정된 디폴트 프로필 계층으로 상기 프로필 스택 데이터 구조를 설정하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
상기 데이터 처리 시스템은,
트리거 이벤트에 응답하여, 프로필 스택 데이터 구조를 디폴트 상태로 되돌리는 것을 특징으로 하는 방법. - 제16항에 있어서,
상기 디폴트 프로필 계층은 상기 프로필 계층의 제2 라벨보다 더 높은 우선 순위를 갖는 제1 라벨을 포함하고,
데이터 처리 시스템에 의해, 요청에 응답하여 프로필 계층의 제2 라벨을 식별하는 단계;
데이터 처리 시스템에 의해, 요청에 응답하여 디폴트 프로필 계층의 제1 라벨을 식별하는 단계;
데이터 처리 시스템에 의해, 디폴트 프로필 계층의 제1 라벨이 프로필 계층의 제2 라벨보다 더 높은 우선 순위를 갖음을 결정하는 단계; 및
데이터 처리 시스템에 의해, 제1 라벨이 제2 라벨보다 더 높은 우선 순위를 갖는다는 결정에 응답하여 디폴트 프로필 계층의 제1 라벨을 갖는 제1 액션 데이터 구조를 생성하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
데이터 처리 시스템에 의해, 요청에 응답하여 제2 액션 데이터 구조를 식별하는 단계;
데이터 처리 시스템에 의해, 제2 액션 데이터 구조가 하나 이상의 프로필 계층의 프로필 계층과 호환되지 않음을 결정하는 단계; 및
데이터 처리 시스템에 의해, 제2 액션 데이터 구조가 프로필 계층과 호환되지 않음을 나타내는 상태 표시를 로컬 컴퓨팅 디바이스에 제공하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
요청에 응답하여 데이터 처리 시스템에 의해, 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템을 선택하는 단계; 및
데이터 처리 시스템에 의해, 콘텐츠 아이템에 제1 액션 데이터 구조를 제공하는 단계를 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
데이터 처리 시스템에 의해 실시간 콘텐츠 선택 프로세스를 통해, 전자 계정에 기초하여 콘텐츠 아이템을 선택하는 단계; 및
데이터 처리 시스템에 의해, 로컬 컴퓨팅 디바이스의 오디오 출력을 통한 프리젠테이션을 위해 상기 콘텐츠 아이템을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/065464 WO2019112626A1 (en) | 2017-12-08 | 2017-12-08 | System for securing a personal digital assistant with stacked data structures |
KR1020207010069A KR102216034B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207010069A Division KR102216034B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210018532A true KR20210018532A (ko) | 2021-02-17 |
KR102279121B1 KR102279121B1 (ko) | 2021-07-19 |
Family
ID=60972342
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187014244A KR102100976B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
KR1020217003690A KR102279121B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
KR1020207010069A KR102216034B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187014244A KR102100976B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207010069A KR102216034B1 (ko) | 2017-12-08 | 2017-12-08 | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10580412B2 (ko) |
EP (1) | EP3529802A1 (ko) |
JP (1) | JP6797916B2 (ko) |
KR (3) | KR102100976B1 (ko) |
CN (2) | CN110149806B (ko) |
AU (2) | AU2017442245B2 (ko) |
WO (1) | WO2019112626A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556500B2 (en) | 2017-09-29 | 2023-01-17 | Oracle International Corporation | Session templates |
CN110149806B (zh) | 2017-12-08 | 2023-08-08 | 谷歌有限责任公司 | 堆栈数据结构的数字助理处理 |
US10665236B2 (en) | 2017-12-08 | 2020-05-26 | Google Llc | Digital assistant processing of stacked data structures |
US10649727B1 (en) * | 2018-05-14 | 2020-05-12 | Amazon Technologies, Inc. | Wake word detection configuration |
GB2577879B (en) | 2018-10-08 | 2022-08-24 | B & W Group Ltd | Content playback system |
GB2579554A (en) * | 2018-12-03 | 2020-07-01 | Audiogum Uk Ltd | Content playback system |
US10839167B2 (en) * | 2018-12-04 | 2020-11-17 | Verizon Patent And Licensing Inc. | Systems and methods for dynamically expanding natural language processing agent capacity |
US10789266B2 (en) | 2019-02-08 | 2020-09-29 | Innovaccer Inc. | System and method for extraction and conversion of electronic health information for training a computerized data model for algorithmic detection of non-linearity in a data |
US11106934B2 (en) | 2019-02-11 | 2021-08-31 | Innovaccer Inc. | Automatic visual display overlays of contextually related data from multiple applications |
US10706045B1 (en) * | 2019-02-11 | 2020-07-07 | Innovaccer Inc. | Natural language querying of a data lake using contextualized knowledge bases |
US10484367B1 (en) * | 2019-06-06 | 2019-11-19 | Capital One Services, Llc | Utilizing natural language processing to automatically perform multi-factor authentication |
CN110691446B (zh) * | 2019-09-12 | 2021-11-19 | 深圳市云慧联科技有限公司 | Id信息二次生成方法及装置 |
US11936739B2 (en) * | 2019-09-12 | 2024-03-19 | Oracle International Corporation | Automated reset of session state |
US10789461B1 (en) | 2019-10-24 | 2020-09-29 | Innovaccer Inc. | Automated systems and methods for textual extraction of relevant data elements from an electronic clinical document |
US11158308B1 (en) * | 2019-11-27 | 2021-10-26 | Amazon Technologies, Inc. | Configuring natural language system |
US20220229987A1 (en) * | 2021-01-21 | 2022-07-21 | Servicenow, Inc. | System and method for repository-aware natural language understanding (nlu) using a lookup source framework |
US11650980B2 (en) | 2021-01-29 | 2023-05-16 | Walmart Apollo, Llc | Methods and apparatus for retrieving information via an intermediate representation |
US11538480B1 (en) * | 2021-03-30 | 2022-12-27 | Amazon Technologies, Inc. | Integration of speech processing functionality with organization systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839410B2 (en) * | 1998-09-01 | 2005-01-04 | At&T Corp. | Method and apparatus for setting user communication parameters based on voice identification of users |
JP2014225236A (ja) * | 2013-03-15 | 2014-12-04 | フィッシャー−ローズマウント システムズ,インコーポレイテッド | モバイル制御室におけるユーザインターフェースデバイス間でシームレスに状態を伝達するための方法及び装置 |
KR20150104615A (ko) * | 2013-02-07 | 2015-09-15 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US20170133012A1 (en) * | 2015-11-05 | 2017-05-11 | Acer Incorporated | Voice control method and voice control system |
KR20170085485A (ko) * | 2014-09-13 | 2017-07-24 | 어드밴스드 엘리멘탈 테크놀로지스 인코포레이티드 | 보안 및 신뢰성있는 아이덴티티 기반 컴퓨팅을 위한 방법들 및 시스템들 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872850A (en) * | 1996-02-02 | 1999-02-16 | Microsoft Corporation | System for enabling information marketplace |
US6055637A (en) * | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US6088679A (en) * | 1997-12-01 | 2000-07-11 | The United States Of America As Represented By The Secretary Of Commerce | Workflow management employing role-based access control |
US6327346B1 (en) * | 1998-09-01 | 2001-12-04 | At&T Corp. | Method and apparatus for setting user communication parameters based on voice identification of users |
IL140805A0 (en) * | 1998-10-02 | 2002-02-10 | Ibm | Structure skeletons for efficient voice navigation through generic hierarchical objects |
US20170237801A1 (en) * | 2004-06-30 | 2017-08-17 | Google Inc. | Device configuration-based function delivery |
AU2006275920B2 (en) * | 2005-07-27 | 2011-02-24 | Shea Writer | Methods and systems for improved security for financial transactions through a trusted third party entity |
WO2009111408A1 (en) * | 2008-03-04 | 2009-09-11 | Apple Inc. | System and method of authorizing execution of software code based on at least one installed profile |
US20100005085A1 (en) * | 2008-07-03 | 2010-01-07 | Oracle International Corporation | Creating relationship maps from enterprise application system data |
US8938808B1 (en) * | 2010-03-01 | 2015-01-20 | Symantec Corporation | Systems and methods for using virtualization to implement information rights management |
US8458802B2 (en) * | 2011-04-02 | 2013-06-04 | Intel Corporation | Method and device for managing digital usage rights of documents |
US9493130B2 (en) * | 2011-04-22 | 2016-11-15 | Angel A. Penilla | Methods and systems for communicating content to connected vehicle users based detected tone/mood in voice input |
US20140309876A1 (en) * | 2013-04-15 | 2014-10-16 | Flextronics Ap, Llc | Universal vehicle voice command system |
US9117451B2 (en) * | 2013-02-20 | 2015-08-25 | Google Inc. | Methods and systems for sharing of adapted voice profiles |
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 |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10380208B1 (en) * | 2015-12-28 | 2019-08-13 | Amazon Technologies, Inc. | Methods and systems for providing context-based recommendations |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10418026B2 (en) | 2016-07-15 | 2019-09-17 | Comcast Cable Communications, Llc | Dynamic language and command recognition |
CN108075892B (zh) * | 2016-11-09 | 2021-07-27 | 斑马智行网络(香港)有限公司 | 一种语音处理的方法、装置和设备 |
WO2019022698A1 (en) * | 2017-07-24 | 2019-01-31 | Visa International Service Association | SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT FOR AUTHENTICATING A TRANSACTION |
CN110149806B (zh) | 2017-12-08 | 2023-08-08 | 谷歌有限责任公司 | 堆栈数据结构的数字助理处理 |
US10157042B1 (en) | 2018-02-06 | 2018-12-18 | Amazon Technologies, Inc. | Audio output control |
US10747894B1 (en) * | 2018-09-24 | 2020-08-18 | Amazon Technologies, Inc. | Sensitive data management |
US10839167B2 (en) | 2018-12-04 | 2020-11-17 | Verizon Patent And Licensing Inc. | Systems and methods for dynamically expanding natural language processing agent capacity |
-
2017
- 2017-12-08 CN CN201780004310.2A patent/CN110149806B/zh active Active
- 2017-12-08 KR KR1020187014244A patent/KR102100976B1/ko active IP Right Grant
- 2017-12-08 CN CN202310923755.8A patent/CN117059087A/zh active Pending
- 2017-12-08 JP JP2018526062A patent/JP6797916B2/ja active Active
- 2017-12-08 WO PCT/US2017/065464 patent/WO2019112626A1/en unknown
- 2017-12-08 EP EP17829378.3A patent/EP3529802A1/en active Pending
- 2017-12-08 KR KR1020217003690A patent/KR102279121B1/ko active IP Right Grant
- 2017-12-08 KR KR1020207010069A patent/KR102216034B1/ko active IP Right Grant
- 2017-12-08 US US15/771,613 patent/US10580412B2/en active Active
- 2017-12-08 AU AU2017442245A patent/AU2017442245B2/en active Active
-
2020
- 2020-02-24 US US16/799,307 patent/US11557302B2/en active Active
- 2020-06-11 AU AU2020203865A patent/AU2020203865B2/en active Active
-
2023
- 2023-01-13 US US18/154,448 patent/US20230186920A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839410B2 (en) * | 1998-09-01 | 2005-01-04 | At&T Corp. | Method and apparatus for setting user communication parameters based on voice identification of users |
KR20150104615A (ko) * | 2013-02-07 | 2015-09-15 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
JP2014225236A (ja) * | 2013-03-15 | 2014-12-04 | フィッシャー−ローズマウント システムズ,インコーポレイテッド | モバイル制御室におけるユーザインターフェースデバイス間でシームレスに状態を伝達するための方法及び装置 |
KR20170085485A (ko) * | 2014-09-13 | 2017-07-24 | 어드밴스드 엘리멘탈 테크놀로지스 인코포레이티드 | 보안 및 신뢰성있는 아이덴티티 기반 컴퓨팅을 위한 방법들 및 시스템들 |
US20170133012A1 (en) * | 2015-11-05 | 2017-05-11 | Acer Incorporated | Voice control method and voice control system |
Also Published As
Publication number | Publication date |
---|---|
US11557302B2 (en) | 2023-01-17 |
WO2019112626A1 (en) | 2019-06-13 |
AU2020203865A1 (en) | 2020-07-02 |
US20190180757A1 (en) | 2019-06-13 |
KR20190087962A (ko) | 2019-07-25 |
KR102100976B1 (ko) | 2020-05-15 |
KR102279121B1 (ko) | 2021-07-19 |
KR20200086660A (ko) | 2020-07-17 |
AU2017442245B2 (en) | 2020-03-26 |
JP6797916B2 (ja) | 2020-12-09 |
CN110149806A (zh) | 2019-08-20 |
US20200194005A1 (en) | 2020-06-18 |
US20230186920A1 (en) | 2023-06-15 |
AU2020203865B2 (en) | 2022-05-12 |
KR102216034B1 (ko) | 2021-02-16 |
EP3529802A1 (en) | 2019-08-28 |
US10580412B2 (en) | 2020-03-03 |
AU2017442245A1 (en) | 2019-07-11 |
CN117059087A (zh) | 2023-11-14 |
JP2020507134A (ja) | 2020-03-05 |
CN110149806B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102216034B1 (ko) | 스택 데이터 구조 백그라운드의 디지털 어시스턴트 프로세싱 | |
US11508371B2 (en) | Digital assistant processing of stacked data structures | |
US11855988B2 (en) | Synchronizing access controls between computing devices | |
KR20180090957A (ko) | 오디오 기반의 데이터 구조 생성 | |
JP6995966B2 (ja) | スタック形式のデータ構造のデジタルアシスタント処理 | |
CN115812193A (zh) | 经由数字助理传递兼容的补充内容 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |