KR102415921B1 - 데이터를 전송하기 위한 피드백 컨트롤러 - Google Patents

데이터를 전송하기 위한 피드백 컨트롤러 Download PDF

Info

Publication number
KR102415921B1
KR102415921B1 KR1020217002298A KR20217002298A KR102415921B1 KR 102415921 B1 KR102415921 B1 KR 102415921B1 KR 1020217002298 A KR1020217002298 A KR 1020217002298A KR 20217002298 A KR20217002298 A KR 20217002298A KR 102415921 B1 KR102415921 B1 KR 102415921B1
Authority
KR
South Korea
Prior art keywords
processing system
data processing
content
input audio
characteristic
Prior art date
Application number
KR1020217002298A
Other languages
English (en)
Other versions
KR20210012049A (ko
Inventor
가우라브 바하야
로버트 스테츠
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210012049A publication Critical patent/KR20210012049A/ko
Application granted granted Critical
Publication of KR102415921B1 publication Critical patent/KR102415921B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/60Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for measuring the quality of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/69Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for evaluating synthetic or decoded voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/87Detection of discrete points within a voice signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/30Monitoring; Testing of propagation channels
    • H04B17/309Measuring or estimating channel quality parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/22Arrangements for supervision, monitoring or testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/22Arrangements for supervision, monitoring or testing
    • H04M3/2236Quality of speech transmission monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4931Directory assistance systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

음성이 활성화된 데이터 패킷에 기반한 컴퓨터 네트워크 환경에서 데이터를 전송하기 위한 피드백 제어 시스템이 제공된다. 시스템은 디바이스의 마이크로폰에 의해 검출된 오디오 신호들을 수신할 수 있다. 시스템은 오디오 신호를 파싱하여 트리거 키워드 및 요청을 식별할 수 있다. 시스템은 트리거 키워드 또는 요청을 사용하여 콘텐츠 아이템을 선택할 수 있다. 콘텐츠 아이템은 디바이스와 제3자 디바이스 사이의 통신 세션을 설정하도록 구성될 수 있다. 시스템은 통신 세션을 모니터링하여 통신 세션의 특성을 측정할 수 있다. 시스템은 측정된 특성에 기초하여 품질 신호를 생성할 수 있다.

Description

데이터를 전송하기 위한 피드백 컨트롤러{FEEDBACK CONTROLLER FOR DATA TRANSMISSIONS}
본 출원은 2016년 12월 30일자로 "FEEDBACK CONTROLLER FOR DATA TRANSMISSIONS(데이터를 전송하기 위한 피드백 컨트롤러)"라는 명칭으로 출원된 미국 특허출원 제15/395,694호의 이익을 주장하며, 이 특허출원은 그 전체가 모든 목적을 위해 본 출원에 참조로 인용된다.
컴퓨팅 디바이스들 사이에서 패킷 기반 또는 다른 방식의 네트워크 트래픽 데이터의 과도한 네트워크 전송들로 인해, 컴퓨팅 디바이스는 네트워크 트래픽 데이터를 적절히 처리하거나, 네트워크 트래픽 데이터와 관련된 동작을 완료하거나, 또는 네트워크 트래픽 데이터에 적시에 응답하지 못할 수 있다. 응답하는 컴퓨팅 디바이스가 자신의 처리 용량에 차거나 그 이상이 되면, 네트워크 트래픽 데이터의 과도한 네트워크 전송들로 인해 데이터 라우팅이 복잡해지거나 응답 품질이 저하될 수 있으며, 이것은 비효율적인 대역폭 사용을 초래할 수 있다. 콘텐츠 아이템 개체들에 대응하는 네트워크 전송들을 제어하는 것은 컴퓨팅 디바이스들 사이에서 네트워크 트래픽 데이터의 네트워크 전송들을 개시할 수 있는 다수의 콘텐츠 아이템 개체들에 의해 복잡해질 수 있다.
본 개시는 일반적으로 하나 이상의 인터페이스들 또는 하나 이상의 유형의 컴퓨터 네트워크들을 통해 데이터를 전송하기 위한 피드백 컨트롤러에 관한 것이다. 예를 들어, 컴퓨팅 시스템들은 제한된 수의 인터페이스들, 제한된 유형의 인터페이스들에 액세스할 수 있거나, 또는 주어진 시간에 이용 가능한 인터페이스의 수를 제한받을 수 있다. 특정 유형의 인터페이스들은 더 큰 컴퓨팅 자원들 또는 배터리를 소모할 수 있기 때문에 시스템이 현재 이용 가능한 인터페이스들에 대응하여 효율적으로 정보를 전송하는 것은 어려울 수 있다. 이질적인 컴퓨팅 자원이 음성 기반 컴퓨팅 환경에서 오디오 기반 명령어들을 효율적으로 처리하고, 일관성 있고 정확하게 파싱하는 것이 어렵기 때문에 이질적인 컴퓨팅 자원들을 통해 정보를 효율적이고, 신뢰할 수 있으며 정확하게 전달하는 것은 어려울 수 있다. 예를 들어, 이질적인 컴퓨팅 자원들은 동일한 음성 모델들에 액세스하지 못할 수 있거나, 아니면 오디오 기반 명령어들을 정확하고 일관성 있게 파싱하는 데 어려움을 겪게 할 수 있는 시대에 뒤진 것이거나 동기화되지 않은 음성 모델들에 액세스할 수 있다.
본 개시의 시스템들 및 방법들은 일반적으로 데이터를 전송하기 위한 피드백 컨트롤러에 관한 것이다. 데이터 프로세싱 시스템은 종합 음성(aggregate voice)에 기초하여 훈련된 음성 모델들을 사용하여 음성 기반 입력을 처리하여, 음성 기반 명령어들을 파싱하고 콘텐츠 선택기 컴포넌트에 의해 수행되는 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템들을 선택할 수 있다. 데이터 프로세싱 시스템은 선택된 콘텐츠 아이템을 클라이언트 컴퓨팅 디바이스에 전송하여 클라이언트 컴퓨팅 디바이스와 선택된 콘텐츠 아이템과 연관된 제3자 제공자 디바이스 사이의 통신 세션을 개시할 수 있다. 데이터 프로세싱 시스템은 통신 세션에 관한 정보를 모니터링하거나 그렇지 않으면 수신하여 통신 세션의 특성을 측정하고 품질 신호를 생성할 수 있다. 그 다음, 데이터 프로세싱 시스템은 실시간 콘텐츠 선택 프로세스에 영향을 주기 위해 품질 신호에 기초하여 콘텐츠 선택기 컴포넌트를 조정하거나 제어할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트가 낮은 품질의 통신 세션들과 연관된 콘텐츠 아이템 개체들을 선택하는 것을 차단 또는 방지하면 콘텐츠 아이템이 선택되어 통신 세션을 설정할 수 있게 하거나 이를 허용하는 것과 비교하여 낭비되는 자원 소비를 줄일 수 있다. 또한, 배터리 전력을 사용하는 클라이언트 디바이스들의 경우, 피드백 모니터 컴포넌트로 배터리 사용량을 절감할 수 있다.
적어도 하나의 양상은 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 피드백 제어 시스템에 관한 것이다. 시스템은 자연어 프로세서 및 콘텐츠 선택기 컴포넌트를 실행하는 데이터 프로세싱 시스템을 포함할 수 있다. 시스템은 피드백 모니터 컴포넌트를 포함할 수 있다. 자연어 프로세서 컴포넌트는 데이터 프로세싱 시스템의 인터페이스를 통해, 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신할 수 있다. 자연어 프로세서 컴포넌트는 입력 오디오 신호를 파싱하여 요청 및 요청에 대응하는 트리거 키워드를 식별할 수 있다. 데이터 프로세싱 시스템은 자연어 프로세서에 의해 식별된 트리거 키워드를 수신하고, 트리거 키워드에 기초하여 실시간 키워드 선택 프로세스를 통해 콘텐츠 아이템을 선택하는 콘텐츠 선택기 컴포넌트를 포함할 수 있다. 시스템은 피드백 모니터 컴포넌트를 포함할 수 있다. 피드백 모니터 컴포넌트는 클라이언트 디바이스와 콘텐츠 아이템과의 상호 작용에 응답하여 클라이언트 디바이스와 통신 세션을 설정하였던 대화형 애플리케이션 프로그래밍 인터페이스 사이에서 전송되는 청각 신호들을 반송하는 데이터 패킷들을 수신할 수 있다. 피드백 모니터는 청각 신호들에 기초하여 통신 세션의 특성을 측정할 수 있다. 피드백 모니터 컴포넌트는 측정된 특성에 기초하여 품질 신호를 생성할 수 있다. 콘텐츠 선택기 컴포넌트는 품질 신호에 기초하여 실시간 선택 프로세스를 조정할 수 있다.
적어도 하나의 양상은 피드백 제어 시스템을 사용하여 컴퓨터 네트워크를 통해 데이터를 전송하는 방법에 관한 것이다. 방법은 적어도 부분적으로, 자연어 프로세서 컴포넌트 및 콘텐츠 선택기 컴포넌트를 실행하는 데이터 프로세싱 시스템에 의해 수행될 수 있다. 방법은 적어도 부분적으로 피드백 모니터 컴포넌트에 의해 수행될 수 있다. 방법은 자연어 프로세서 컴포넌트가 데이터 프로세싱 시스템의 인터페이스를 통해, 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신하는 것을 포함할 수 있다. 방법은 데이터 프로세싱 시스템이 입력 오디오 신호를 파싱하여 요청 및 요청에 대응하는 트리거 키워드를 식별하는 것을 포함할 수 있다. 방법은 콘텐츠 선택기 컴포넌트가 자연어 프로세서에 의해 식별된 트리거 키워드를 수신하는 것을 포함할 수 있다. 방법은 콘텐츠 선택기 컴포넌트가 트리거 키워드에 기초하여, 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템을 선택하는 것을 포함할 수 있다. 방법은 피드백 모니터 컴포넌트가 클라이언트 디바이스와 콘텐츠 아이템과의 상호 작용에 응답하여 클라이언트 디바이스와 통신 세션을 설정하였던 대화형 애플리케이션 프로그래밍 인터페이스 사이에서 전송되는 청각 신호들을 반송하는 데이터 패킷들을 수신하는 것을 포함할 수 있다. 방법은 피드백 모니터 컴포넌트가 청각 신호들에 기초하여 통신 세션의 품질을 측정하는 것을 포함할 수 있다. 방법은 피드백 모니터 컴포넌트가 측정된 특성에 기초하여 품질 신호를 생성하는 것을 포함할 수 있다. 방법은 피드백 모니터 컴포넌트가 품질 신호에 기초하여 실시간 선택 프로세스를 조정하는 것을 포함할 수 있다.
이러한 양상들과 다른 양상들 및 구현들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양상들 및 구현들의 예시적인 예들을 포함하고 있으며, 청구된 양상들 및 구현들의 본질 및 특성을 이해하기 위한 개요 또는 체계를 제공한다. 도면들은 다양한 양상들 및 구현들을 예시하고 상세한 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부 도면들은 일정한 비율로 작성되게 하는 것은 아니다. 여러 도면들에서 동일한 참조 부호들 및 명칭들은 동일한 요소들을 나타낸다. 명확하게 하기 위해, 모든 도면들에서 모든 컴포넌트에 라벨이 붙는 것은 아니다.
도 1은 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 피드백 제어 시스템을 도시한다.
도 2는 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 피드백 제어 시스템의 동작을 도시한다.
도 3은 피드백 제어 시스템을 사용하여 컴퓨터 네트워크를 통해 데이터를 전송하는 방법을 도시한다.
도 4는 본 명세서에 기술되고 도시된 시스템들 및 방법들의 요소들을 구현하기 위해 사용될 수 있는 컴퓨터 시스템의 일반적인 아키텍처를 도시하는 블록도이다.
컴퓨터 네트워크를 통해 데이터를 전송하기 위한 방법들, 장치들 및 피드백 제어 시스템의 시스템들과 관련된 다양한 개념들 및 이들의 구현들에 관한 더 상세한 설명들이 아래에서 제시된다. 위에서 소개되고 아래에서보다 더 상세하게 논의되는 다양한 개념들은 임의의 다양한 방식들로 구현될 수 있다.
본 개시는 일반적으로 하나 이상의 인터페이스들 또는 하나 이상의 유형의 컴퓨터 네트워크들을 통해 데이터를 전송하기 위한 피드백 컨트롤러에 관한 것이다. 예를 들어, 컴퓨팅 시스템들은 제한된 수의 인터페이스들, 제한된 유형의 인터페이스들에 액세스할 수 있거나, 또는 주어진 시간에 사용 가능한 인터페이스의 수를 제한받을 수 있다. 특정 유형의 인터페이스들이 더 큰 컴퓨팅 자원들 또는 배터리를 소모할 수 있기 때문에 시스템이 현재 이용 가능한 인터페이스들에 대응하여 효율적으로 정보를 전송하는 것은 어려울 수 있다. 이질적인 컴퓨팅 자원이 음성 기반 컴퓨팅 환경에서 오디오 기반 명령어들을 효율적으로 처리하고, 일관성 있고 정확하게 파싱하는 것이 어렵기 때문에 이질적인 컴퓨팅 자원들을 통해 정보를 효율적이고, 신뢰할 수 있으며 정확하게 전달하는 것은 어려울 수 있다. 예를 들면, 이질적인 컴퓨팅 자원들은 동일한 음성 모델들에 액세스하지 못할 수 있거나, 아니면 오디오 기반 명령어들을 정확하고 일관성 있게 파싱하는 것을 어렵게 할 수 있는 오래되거나 동기화되지 않은 음성 모델들에 액세스할 수 있다.
본 개시의 시스템들 및 방법들은 일반적으로 데이터를 전송하기 위한 피드백 컨트롤러에 관한 것이다. 데이터 프로세싱 시스템은 음성 기반 입력을 종합 음성에 기초하여 훈련된 음성 모델들을 이용하여 처리하여, 음성 기반 명령어들을 파싱하고 콘텐츠 선택기 컴포넌트에 의해 수행되는 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템들을 선택할 수 있다. 데이터 프로세싱 시스템은 선택된 콘텐츠 아이템을 클라이언트 컴퓨팅 디바이스에 전송하여 클라이언트 컴퓨팅 디바이스와 선택된 콘텐츠 아이템과 연관된 제3자 제공자 디바이스 간의 통신 세션을 개시할 수 있다. 데이터 프로세싱 시스템은 통신 세션에 관한 정보를 모니터링하거나 그렇지 않으면 수신하여 통신 세션의 특성을 측정하고 품질 신호를 생성할 수 있다. 그런 다음 데이터 프로세싱 시스템은 실시간 콘텐츠 선택 프로세스에 영향을 주기 위해 품질 신호에 기초하여 콘텐츠 선택기 컴포넌트를 조정하거나 제어할 수 있다.
도 1은 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 예시적인 피드백 제어 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 선택 기반 구조(content selection infrastructure)를 포함할 수 있다.  시스템(100)은 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 콘텐츠 제공자 컴퓨팅 디바이스(106), 서비스 제공자 컴퓨팅 디바이스(108) 또는 클라이언트 컴퓨팅 디바이스(104) 중 하나 이상과 통신할 수 있다. 네트워크(105)는 컴퓨터 네트워크들, 예컨대, 인터넷, 근거리 네트워크, 광역 네트워크, 도시 네트워크 또는 다른 영역 네트워크들, 인트라넷들, 위성 네트워크들 및 음성 또는 데이터 이동 전화 네트워크들과 같은 다른 통신 네트워크들을 포함할 수 있다. 네트워크(105)는 적어도 하나의 컴퓨팅 디바이스(104), 예를 들면, 랩톱, 데스크톱, 태블릿, 개인 휴대 정보 단말기, 스마트 폰, 휴대형 컴퓨터 또는 스피커와 같은 적어도 하나의 컴퓨팅 디바이스(104) 상에 제시되거나, 출력되거나, 렌더링되거나 또는 디스플레이될 수 있는 웹 페이지들, 웹 사이트들, 도메인 네임들 또는 통합 자원 위치 표시자들(uniform resource locators)과 같은 정보 자원들에 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해, 컴퓨팅 디바이스(104)의 사용자는 서비스 제공자(108) 또는 콘텐츠 제공자(106)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다.
네트워크(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") 또는 범용 이동 통신 시스템(universal mobile telecommunications system, "UMTS")을 비롯한, 이동 디바이스들 사이에서 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 이동 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터가 상이한 프로토콜들을 통해 전송되거나, 동일한 유형의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해, 예를 들어, 컴퓨팅 디바이스(104), 콘텐츠 제공자 디바이스(106)(콘텐츠 제공자(106)) 또는 서비스 제공자 디바이스(또는 서비스 제공자(108))와 통신하는 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 계산 자원, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 센터에 위치하는 복수의 계산 자원들 또는 서버들을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 논리적으로 그룹화된 다수의 서버들을 포함할 수 있고 분산 컴퓨팅 기술들을 용이하게 할 수 있다. 서버들의 논리 그룹은 데이터 센터, 서버 팜 또는 머신 팜이라고 지칭될 수 있다. 서버들은 지리적으로 분산되어 있을 수 있다. 데이터 센터 또는 머신 팜은 단일의 엔티티로서 관리될 수 있거나, 머신 팜은 복수의 머신 팜들을 포함할 수 있다. 각 머신 팜 내의 서버들은 이기종 일 수 있으며, 서버들 또는 머신들 중 하나 이상은 운영 체제 플랫폼의 하나 이상의 유형에 따라 동작할 수 있다.
머신 팜 내의 서버들은 연관된 저장 시스템들과 함께 고밀도 랙 시스템들에 저장될 수 있고, 엔터프라이즈 데이터 센터에 위치할 수 있다. 예를 들어, 이러한 방식으로 서버들을 통합하게 되면 서버들 및 고성능 저장 시스템들이 지역화된 고성능 네트워크들에 배치됨으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능이 향상될 수 있다. 서버들 및 저장 시스템들을 비롯한, 데이터 프로세싱 시스템(102) 컴포넌트들의 전부 또는 일부를 중앙 집중화하고 이들을 고급 시스템 관리 툴들과 결합하면 서버 자원들을 더 효율적으로 사용할 수 있으며, 이로 인해 전력 및 처리에 필요한 것들을 절감하고 대역폭 사용을 줄일 수 있다.
시스템(100)은 적어도 하나의 서비스 제공자 디바이스(108)를 포함하거나, 액세스하거나, 그렇지 않으면 서비스 제공자 디바이스(108)와 상호 작용할 수 있다. 서비스 제공자 디바이스(108)는 네트워크(105)를 통해, 예를 들어, 컴퓨팅 디바이스(104), 데이터 프로세싱 시스템(102) 또는 콘텐츠 제공자(106)와 통신하는 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 서비스 제공자 디바이스(108)는 적어도 하나의 계산 자원, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 서비스 제공자 디바이스(108)는 적어도 하나의 데이터 센터에 위치하는 복수의 계산 자원들 또는 서버들을 포함할 수 있다. 서비스 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)의 하나 이상의 컴포넌트 또는 기능성을 포함할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 클라이언트 컴퓨팅 디바이스(104)에 의해 디스플레이를 위한 오디오 기반 콘텐츠 아이템들을 오디오 출력 콘텐츠 아이템으로서 제공할 수 있다. 콘텐츠 아이템은 "당신에게 택시를 불러드릴까요"라고 말하는 음성 기반 메시지와 같은 재화 또는 서비스의 제안을 포함할 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(155)는 음성 기반 질의(query)에 응답하여 제공될 수 있는 일련의 오디오 콘텐츠 아이템들을 저장하는 메모리를 포함할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 또한 오디오 기반 콘텐츠 아이템들(또는 다른 콘텐츠 아이템들)을 데이터 프로세싱 시스템(102)에 제공할 수 있으며, 데이터 프로세싱 시스템에서 이들 콘텐츠 아이템들은 데이터 저장소(124)에 저장될 수 있다. 데이터 프로세싱 시스템(102)은 오디오 콘텐츠 아이템들을 선택하고 오디오 콘텐츠 아이템들을 클라이언트 컴퓨팅 디바이스(104)에 제공할 수 있다(또는 콘텐츠 제공자 컴퓨팅 디바이스(104)에 제공하도록 명령할 수 있다). 오디오 기반 콘텐츠 아이템들은 배타적으로 오디오일 수 있거나, 아니면 텍스트, 이미지 또는 비디오 데이터와 조합될 수 있다.
서비스 제공자 디바이스(108)는 적어도 하나의 서비스 제공자 자연어 프로세서 컴포넌트(142) 및 서비스 제공자 인터페이스(144)를 포함하거나, 이들과 인터페이스하거나, 그렇지 않으면 이들과 통신할 수 있다. 서비스 제공자 컴퓨팅 디바이스(108)는 적어도 하나의 서비스 제공자 자연어 프로세서(natural language processor, NLP) 컴포넌트(142) 및 적어도 하나의 서비스 제공자 인터페이스(144)를 포함할 수 있다. 서비스 제공자 NLP 컴포넌트(142)(또는 서비스 제공자 컴퓨팅 디바이스(108)의 직접 행동(direct action) API와 같은 다른 컴포넌트들)는 (데이터 프로세싱 시스템(102)을 통해 또는 데이터 프로세싱 시스템(102)을 우회하여) 클라이언트 컴퓨팅 디바이스(104)와 연계하여 클라이언트 컴퓨팅 디바이스(104)와 서비스 제공자 컴퓨팅 디바이스(108) 사이에서 주고받는 실시간 음성 또는 오디오 기반 대화(예를 들어, 세션)를 생성할 수 있다. 서비스 제공자 NLP(142)는 데이터 프로세싱 시스템(102)의 NLP 컴포넌트(112)로서 하나 이상의 기능 또는 특징을 포함할 수 있다. 예를 들어, 서비스 제공자 인터페이스(144)는 데이터 프로세싱 시스템(102)의 직접 행동 API(116)에 대해 데이터 메시지를 수신 또는 제공할 수 있다. 서비스 제공자 컴퓨팅 디바이스(108) 및 콘텐츠 제공자 컴퓨팅 디바이스(106)는 동일한 엔티티와 연관될 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 차량 공유 서비스에 대한 콘텐츠 아이템들을 생성, 저장 또는 사용 가능할 수 있게 해줄 수 있으며, 서비스 제공자 컴퓨팅 디바이스(108)는 클라이언트 컴퓨팅 디바이스(106)와의 세션을 설정하여 클라이언트 컴퓨팅 디바이스(104)의 최종 사용자를 데려갈 차량 공유 서비스의 택시 또는 차량의 인도를 주선할 수 있다. 데이터 프로세싱 시스템(102)은 또한 예를 들어 차량 공유 서비스의 택시 또는 차량의 인도를 주선하기 위해, 직접 행동 API(116), NLP 컴포넌트(112) 또는 다른 컴포넌트를 통해, 서비스 제공자 컴퓨팅 디바이스(104)를 포함하거나 또는 우회하여, 클라이언트 컴퓨팅 디바이스와의 세션을 설정할 수 있다.
컴퓨팅 디바이스(104)는 적어도 하나의 센서(134), 변환기(136), 오디오 드라이버(138) 또는 프리-프로세서(140)를 포함하거나, 이들과 인터페이스하거나, 그렇지 않으면 이들과 통신할 수 있다. 센서(134)는 예를 들어, 주변 광센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 움직임 검출기, GPS 센서, 위치 센서, 마이크로폰 또는 터치 센서를 포함할 수 있다. 변환기(136)는 스피커 또는 마이크로폰을 포함할 수 있다. 오디오 드라이버(138)는 하드웨어 변환기(136)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 데이터 프로세싱 시스템(102)에 의해 제공된 오디오 파일 또는 다른 명령어들을 실행하여 대응하는 음향 파 또는 음파를 생성하도록 변환기(136)를 제어할 수 있다. 프리-프로세서(140)는 키워드를 검출하고 키워드에 기초하여 행동을 수행하도록 구성될 수 있다. 프리-프로세서(140)는 하나 이상의 용어들을 걸러내거나 용어들을 수정한 다음에 용어들을 추가 처리를 위해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 프리-프로세서(140)는 마이크로폰에 의해 검출된 아날로그 오디오 신호들을 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 반송하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 경우에 따라, 프리-프로세서(140)는 그러한 전송을 수행하라는 명령어의 검출에 응답하여 입력 오디오 신호의 일부 또는 전부를 반송하는 데이터 패킷들을 전송할 수 있다. 명령어는 예를 들어, 트리거 키워드 또는 입력 오디오 신호를 포함하는 데이터 패킷들을 데이터 프로세싱 시스템(102)에 전송하라는 다른 키워드 또는 승인을 포함할 수 있다.
클라이언트 컴퓨팅 디바이스(104)는 (센서(134)를 통해) 음성 질의들을 오디오 입력으로서 클라이언트 컴퓨팅 디바이스(104)에 입력하고 데이터 프로세싱 시스템(102)(또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 서비스 제공자 컴퓨터 디바이스(108))으로부터 클라이언트 컴퓨팅 디바이스(104)로 제공될 수 있는 컴퓨터에서 생성된 음성 형태의, 변환기(135)(예를 들면, 스피커)로부터 출력된, 오디오 출력을 수신하는 최종 사용자와 연관될 수 있다. 컴퓨터에서 생성된 음성은 실제 사람 또는 컴퓨터에서 생성된 언어로부터 녹음된 것들을 포함할 수 있다.
데이터 저장소(124)는 하나 이상의 로컬 또는 분산 데이터베이스들을 포함할 수 있으며, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(124)는 컴퓨터 데이터 저장 또는 메모리를 포함할 수 있고, 다른 데이터들 중에서도 하나 이상의 파라미터들(126), 하나 이상의 정책들(128), 콘텐츠 데이터(130) 또는 템플릿들(132)을 저장할 수 있다. 파라미터들(126), 정책들(128) 및 템플릿들(132)은 클라이언트 컴퓨팅 디바이스(104)와 데이터 프로세싱 시스템(102)(또는 서비스 제공자 컴퓨팅 디바이스(108)) 사이의 음성 기반 세션에 관한 규칙들과 같은 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 오디오 출력에 대한 콘텐츠 아이템 또는 연관된 메타 데이터들뿐만 아니라, 클라이언트 컴퓨팅 디바이스(104)와의 하나 이상의 통신 세션들의 일부일 수 있는 입력 오디오 메시지들을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 계산 자원 또는 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(110)를 포함하거나, 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 자연어 프로세서 컴포넌트(112)를 포함하거나, 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 직접 행동 애플리케이션 프로그래밍 인터페이스(application programming interface, "API")(116)를 포함하거나, 이를 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 세션 핸들러(114)를 포함하거나, 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 콘텐츠 선택기 컴포넌트(118)를 포함하거나, 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 피드백 모니터 컴포넌트(120)를 포함하거나, 인터페이스하거나, 그렇지 않으면 적어도 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 오디오 신호 발생기(122)를 포함하거나, 이를 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 저장소(124)를 포함하거나, 이를 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 적어도 하나의 데이터 저장소(124)는 하나 이상의 데이터 구조체들 또는 데이터베이스들, 파라미터들(126), 정책들(128), 콘텐츠 데이터(130) 또는 템플릿들(132)을 포함하거나 이곳에 저장할 수 있다. 파라미터들(126)은 예를 들어, 임계치들, 거리들, 시간 간격들, 지속 기간들, 점수들 또는 가중치들을 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어, 콘텐츠 제공자(106)에 의해 제공되는 또는 콘텐츠 선택을 용이하게 하기 위해 데이터 프로세싱 시스템에 의해 획득되거나 결정되는 콘텐츠 캠페인 정보, 콘텐츠 그룹들, 콘텐츠 선택 기준들, 콘텐츠 아이템 개체들 또는 다른 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어, 콘텐츠 캠페인의 이력 실적을 포함할 수 있다.
인터페이스(110), 자연어 프로세서 컴포넌트(112), 세션 핸들러(114), 직접 행동 API(116), 콘텐츠 선택기 컴포넌트(118), 피드백 모니터 컴포넌트(120) 또는 오디오 신호 발생기 컴포넌트(122)는 각기 적어도 하나의 프로세싱 유닛 또는 프로그래머블 로직 어레이 엔진과 같은 다른 로직 디바이스, 또는 데이터베이스 저장소 또는 데이터베이스(124)와 통신하도록 구성된 모듈을 포함할 수 있다. 인터페이스(110), 자연어 프로세서 컴포넌트(112), 세션 핸들러(114), 직접 행동 API(116), 콘텐츠 선택기 컴포넌트(118), 피드백 모니터 컴포넌트(120), 오디오 신호 발생기 컴포넌트(122) 및 데이터 저장소(124)는 별개의 컴포넌트들, 단일의 컴포넌트, 또는 데이터 프로세싱 시스템(102)의 일부일 수 있다. 시스템(100) 및 데이터 프로세싱 시스템(102)과 같은 시스템의 컴포넌트는 하나 이상의 프로세서들, 로직 디바이스들 또는 회로들과 같은 하드웨어 요소들을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 복수의 컴퓨팅 디바이스들(104)과 연관된 익명의 컴퓨터 네트워크 활동 정보를 획득할 수 있다. 컴퓨팅 디바이스(104)의 사용자는 사용자의 컴퓨팅 디바이스(104)에 대응하는 네트워크 활동 정보를 획득하기 위해 데이터 프로세싱 시스템(102)에 긍정적으로 권한을 부여할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 사용자에게 하나 이상의 유형의 네트워크 활동 정보를 얻기 위한 동의를 촉구할 수 있다. 컴퓨팅 디바이스(104)의 사용자의 신원은 익명으로 유지될 수 있으며, 컴퓨팅 디바이스(104)는 고유 식별자(예를 들면, 그 사용자의 고유 식별자 또는 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공되는 컴퓨팅 디바이스의 고유 식별자)와 연관될 수 있다. 데이터 프로세싱 시스템은 각각의 관찰 정보를 대응하는 고유 식별자와 연관시킬 수 있다.
콘텐츠 제공자(106)는 전자 콘텐츠 캠페인을 수립할 수 있다. 전자 콘텐츠 캠페인은 콘텐츠 데이터(130)로서 데이터 저장소(124)에 저장될 수 있다. 전자 콘텐츠 캠페인은 공통 테마에 해당하는 하나 이상의 콘텐츠 그룹들을 지칭할 수 있다. 콘텐츠 캠페인은 콘텐츠 그룹들, 콘텐츠 아이템 데이터 개체들 및 콘텐츠 선택 기준들을 포함하는 계층적 데이터 구조를 포함할 수 있다. 콘텐츠 캠페인을 생성하기 위해, 콘텐츠 제공자(106)는 콘텐츠 캠페인의 캠페인 레벨 파라미터들의 값들을 지정할 수 있다. 캠페인 레벨 파라미터들은 예를 들어, 캠페인 이름, 콘텐츠 아이템 개체들을 배치하는데 선호되는 콘텐츠 네트워크, 콘텐츠 캠페인에 사용되는 자원들의 값, 콘텐츠 캠페인의 시작 날짜와 종료 날짜, 콘텐츠 캠페인의 지속 기간, 콘텐츠 아이템 개체 배치들을 위한 스케줄, 언어, 지리적 위치들, 콘텐츠 아이템 개체들을 제공할 컴퓨팅 디바이스들의 유형을 포함할 수 있다. 경우에 따라, 노출 횟수(impression)는 콘텐츠 아이템 개체가 그의 소스(예를 들어, 데이터 프로세싱 시스템(102) 또는 콘텐츠 제공자(106))로부터 페치될 때를 말할 수 있으며, 노출 횟수는 셀 수 있다. 경우에 따라, 부정 클릭의 가능성으로 인해, 노출 횟수로서 로봇 활동은 필터링되고 제외될 수 있다. 그래서, 일부 경우에, 노출 횟수는 로봇 활동 및 오류 코드들로부터 필터링된 것으로, 컴퓨팅 디바이스(104) 상에 디스플레이될 콘텐츠 아이템 개체를 렌더링할 기회에 가능한 한 가까운 시점에 기록된, 브라우저의 페이지 요청에 대한 웹 서버의 응답들의 측정값이라고 지칭할 수 있다. 경우에 따라, 노출 횟수는 볼 수 있거나 들을 수 있는 노출 횟수를 지칭할 수 있는데, 예를 들면, 콘텐츠 아이템 개체는 클라이언트 컴퓨팅 디바이스(104)의 디스플레이 디바이스 상에서 적어도 부분적으로 (예를 들면, 20%, 30%, 30%, 40%, 50%, 60%, 70% 또는 그 이상) 볼 수 있거나 또는 컴퓨팅 디바이스(104)의 스피커(136)를 통해 들을 수 있다. 클릭 또는 선택은 들을 수 있는 노출 횟수, 마우스 클릭, 터치 상호작용, 제스처, 악수, 오디오 상호작용 또는 키보드 클릭에 대한 음성 응답과 같은 콘텐츠 아이템 개체와의 사용자 상호작용이라 말할 수 있다. 전환(conversion)은 사용자가 콘텐츠 아이템 이의 제기에 대해 원하는 행위, 예를 들면, 제품 또는 서비스 구매, 설문 조사 완료, 콘텐츠 아이템에 해당하는 실제 점포 방문 또는 전자 거래 완료를 취하는 것을 말할 수 있다.
콘텐츠 제공자(106)는 콘텐츠 캠페인을 위한 하나 이상의 콘텐츠 그룹을 더 구축할 수 있다. 콘텐츠 그룹은 하나 이상의 콘텐츠 아이템 개체들 및 대응 콘텐츠 선택 기준들, 예컨대, 키워드들, 단어들, 용어들, 문구들, 지리적 위치들, 컴퓨팅 디바이스의 유형, 현재 시간, 관심거리, 화제(topic) 또는 버티컬(vertical)을 포함한다. 동일한 콘텐츠 캠페인 하의 콘텐츠 그룹들은 동일한 캠페인 레벨 파라미터들을 공유할 수 있지만, 키워드들, (예를 들면, 주요 콘텐츠에 제외 키워드가 존재할 때 콘텐츠 아이템의 배치를 차단하는) 제외 키워드들, 키워드 입찰가들 또는 입찰가 또는 콘텐츠 캠페인과 연관된 파라미터들과 같은 특정 콘텐츠 그룹 레벨 파라미터들에 대한 맞춤형 사양들을 가질 수 있다.
새로운 콘텐츠 그룹을 생성하기 위해, 콘텐츠 제공자는 콘텐츠 그룹의 콘텐츠 그룹 레벨 파라미터들의 값들을 제공할 수 있다. 콘텐츠 그룹 레벨 파라미터들은, 예를 들어, 콘텐츠 그룹 이름이나 콘텐츠 그룹 테마, 및 상이한 콘텐츠 배치 기회들(예를 들면, 자동 배치 또는 관리형 배치) 또는 결과들(예를 들면, 클릭 수, 노출 횟수 또는 전환 수)의 입찰가들을 포함한다. 콘텐츠 그룹 이름 또는 콘텐츠 그룹 테마는 콘텐츠 그룹의 콘텐츠 아이템 개체들이 디스플레이를 위해 선택될 화제(topic) 또는 주제(subject matter)를 획득하기 위해 콘텐츠 제공자(106)가 사용할 수 있는 하나 이상의 용어들일 수 있다. 예를 들어, 자동차 판매점에서는 맡고 있는 차량의 브랜드별로 서로 다른 콘텐츠 그룹을 만들 수 있으며, 또한 맡고 있는 차량의 모델별로 서로 다른 콘텐츠 그룹을 만들 수 있다. 자동차 판매점이 사용할 수 있는 콘텐츠 그룹 테마들의 예는 예를 들면, "A 스포츠카 만들기", "B 스포츠카 만들기", "C 세단 만들기", "C 트럭 만들기", "C 하이브리드 만들기" 또는 "D 하이브리드 만들기"를 포함할 수 있다. 콘텐츠 캠페인 테마의 예는 "하이브리드"일 수 있으며 "C 하이브리드 만들기" 및 "D 하이브리드 만들기" 모두에 대한 콘텐츠 그룹들을 포함할 수 있다.
콘텐츠 제공자(106)는 하나 이상의 키워드들 및 콘텐츠 아이템 개체들을 각 콘텐츠 그룹에 제공할 수 있다. 키워드들은 콘텐츠 아이템 개체들과 연관되거나 콘텐츠 아이템 개체들에 의해 식별되는 제품 또는 서비스들과 관련 있는 용어들을 포함할 수 있다. 키워드는 하나 이상의 용어들 또는 문구들을 포함할 수 있다. 예를 들어, 자동차 판매점은 콘텐츠 그룹 또는 콘텐츠 캠페인의 키워드로서 "스포츠카", "V-6 엔진", "사륜 구동", "연료 효율성"을 포함할 수 있다. 경우에 따라, 제외 키워드들은 특정 용어들 또는 키워드들에 콘텐츠를 배치하는 것을 회피, 방지, 차단 또는 금지하기 위해 콘텐츠 제공자에 의해 명시될 수 있다. 콘텐츠 제공자는 콘텐츠 아이템 개체들을 선택하는데 사용되는 완전 매치(exact match), 문구 매치(phrase match) 또는 확장 매치(broad match)와 같은 매칭 유형을 명시할 수 있다.
콘텐츠 제공자(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)는 소프트웨어 컴포넌트들과 같은 다양한 컴포넌트들 사이에서 통신하기 위해 정의된 것들을 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호들을 데이터 프로세싱 시스템(102)의 인터페이스(110)에 전달하고 클라이언트 컴퓨팅 디바이스의 컴포넌트를 구동하여 출력 오디오 신호들을 렌더링하는 앱(app)과 같이 클라이언트 컴퓨팅 디바이스(104)에 설치된 애플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 오디오 입력 신호를 포함하거나 식별하는 데이터 패킷들 또는 다른 신호를 수신할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 오디오 신호를 수신 또는 획득하고 오디오 신호를 파싱하는 NLP 컴포넌트(112)를 실행 또는 구동할 수 있다. 예를 들어, NLP 컴포넌트(112)는 인간과 컴퓨터 간의 상호 작용을 제공할 수 있다. NLP 컴포넌트(112)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출할 수 있게 하는 기술들로 구성될 수 있다. NLP 컴포넌트(112)는 통계적 기계 학습과 같은 기계 학습에 기반한 기술을 포함하거나 그 기술로 구성될 수 있다. NLP 컴포넌트(112)는 결정 트리들, 통계 모델들 또는 확률 모델들을 활용하여 입력 오디오 신호를 파싱할 수 있다. NLP 컴포넌트(112)는 예를 들어, 명명된 엔티티 인식(예를 들어, 텍스트 스트림이 주어진 경우, 텍스트의 어느 아이템들이 사람들 또는 장소들과 같은 적절한 이름들에 매핑되는지, 그리고 그러한 각각의 이름의 유형이 사람, 장소 또는 조직과 같은 것인지를 결정하는 것), 자연어 생성(예를 들어, 컴퓨터 데이터베이스들 또는 의미론적 의도들의 정보를 이해 가능한 인간 언어로 변환하는 것), 자연어 이해(예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수 있는 일차 로직 구조들과 같은 더 형식적인 표현들로 변환하는 것), 기계 번역(예를 들어, 텍스트를 하나의 인간 언어에서 다른 언어로 자동 번역하는 것), 형태학적 분할(예를 들어, 단어들을 개별적인 형태소들로 분리하는 것 및 형태소들의 부류를 식별하는 것 - 이것은 고려되는 언어의 단어들의 형태학 또는 구조의 복잡성 때문에 어려울 수 있음), 질문에 응답(예를 들어, 특정하거나 개방적일 수 있는 인간 언어 질문에 대한 답변을 결정하는 것), 의미론적 처리(예를 들어, 단어를 식별하고 식별된 단어를 비슷한 의미들의 다른 단어들과 관련짓기 위해 단어의 의미를 인코딩한 이후에 발생할 수 있는 것을 처리하는 것)와 같은 기능들을 수행할 수 있다.
NLP 컴포넌트(112)는 (예를 들어, 데이터 저장소(124)에서) 저장되어 있는 대표적인 한 세트의 오디오 파형들에 대비하여 입력 신호를 비교하고 가장 근사한 매치들을 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환한다. 오디오 파형들의 세트는 데이터 저장소(124) 또는 데이터 프로세싱 시스템(102)에 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형들은 많은 세트의 사용자들을 통해 생성된 다음, 사용자의 음성 샘플들로 증강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(112)는 텍스트를 예를 들어, 사용자들 전체의 훈련을 통해 또는 매뉴얼의 사양을 통해, 데이터 프로세싱 시스템(102)이 제공할 수 있는 행동들과 연관된 단어들과 매칭시킨다.
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(104)의 센서(134) 또는 변환기(136)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기(136), 오디오 드라이버(138) 또는 다른 컴포넌트들을 통해, 클라이언트 컴퓨팅 디바이스(104)는 오디오 입력 신호를 (네트워크(105)를 통해) 데이터 프로세싱 시스템(102)에 제공할 수 있으며, 데이터 프로세싱 시스템에서 오디오 신호는 (예를 들어, 인터페이스(110)에 의해) 수신될 수 있고 NLP 컴포넌트(112)에 제공되거나 데이터 저장소(124)에 저장될 수 있다.
NLP 컴포넌트(112)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(112)는 적어도 하나의 요청 또는 그 요청에 대응하는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 나타낼 수 있다. 트리거 키워드는 취할 가능성 있는 행동 유형을 표시할 수 있다. 예를 들어, NLP 컴포넌트(112)는 입력 오디오 신호를 파싱하여 저녁 식사 및 영화에 참석하기 위해 저녁에 집을 떠나라는 적어도 하나의 요청을 식별할 수 있다. 트리거 키워드는 취할 행동을 표시하는 적어도 하나의 단어, 문구, 어근 단어나 부분 단어, 또는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호로부터 "go" 또는 "to go to"라는 트리거 키워드는 데려다 달라는 필요가 있다는 것을 표시할 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 직접적으로 데려다 달라는 의도를 표현하고 있지 않지만, 트리거 키워드는 데려다 달라는 것이 그 요청에 의해 표시되는 적어도 하나의 다른 행동에 대한 보조적인 행동이라는 것을 나타낸다.
NLP 컴포넌트(112)는 입력 오디오 신호를 파싱하여 요청 및 트리거 키워드를 식별, 결정, 검색, 그렇지 않으면 획득할 수 있다. 예를 들어, NLP 컴포넌트(112)는 의미론적 처리 기술을 입력 오디오 신호에 적용하여 트리거 키워드 또는 요청을 식별할 수 있다. NLP 컴포넌트(112)는 의미론적 처리 기술을 입력 오디오 신호에 적용하여 제1 트리거 키워드 및 제2 트리거 키워드와 같은 하나 이상의 트리거 키워드들을 포함하는 트리거 문구를 식별할 수 있다. 예를 들어, 입력 오디오 신호는 "I need someone to do my laundry and my dry cleaning(나의 세탁 및 드라이클리닝을 할 사람이 필요해)"라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 의미론적 처리 기술 또는 다른 자연어 처리 기술을 그 문장을 포함하는 데이터 패킷들에 적용하여 "do my laundry" 및 "do my dry cleaning"라는 트리거 문구들을 식별할 수 있다. 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", "some", "that", "could", " 또는 "help". 이들 용어들을 걸러냄으로써, NLP 컴포넌트(112)는 "go to the airport"와 같은 트리거 키워드들을 더 정확하고 신뢰할 수 있게 식별하고, 이것이 택시 또는 승차 공유 서비스의 요청이라고 결정할 수 있다.
경우에 따라, NLP 컴포넌트는 입력 오디오 신호를 반송하는 데이터 패킷들이 하나 이상의 요청을 포함하고 있다고 결정할 수 있다. 예를 들어, 입력 오디오 신호는 "I need someone to do my laundry and my dry cleaning."라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 이것이 세탁 서비스 및 드라이클리닝 서비스의 요청이라고 결정할 수 있다. NLP 컴포넌트(112)는 이것이 세탁 서비스들 및 드라이 클리닝 서비스들 모두 다를 제공할 수 있는 서비스 제공자에 대한 단일의 요청이라고 결정할 수 있다. NLP 컴포넌트(112)는 이것이 두 개의 요청들, 즉, 세탁 서비스들을 제공하는 서비스 제공자에 대한 제1 요청 및 드라이클리닝 서비스들을 제공하는 서비스 제공자에 대한 제2 요청이라는 것을 결정할 수 있다. 경우에 따라, NLP 컴포넌트(112)는 결정된 다수의 요청을 단일의 요청으로 결합할 수 있고, 그 단일의 요청을 서비스 제공자 디바이스(108)에게 전송할 수 있다. 어떤 경우에, NLP 컴포넌트(112)는 개개의 요청들을 각각의 서비스 제공자 디바이스들(108)에 전송하거나, 두 요청 모두 다를 동일한 서비스 제공자 디바이스(108)에 개별적으로 전송할 수 있다.
데이터 프로세싱 시스템(102)은 트리거 키워드에 기초하여 요청에 응답하는 행동 데이터 구조를 생성하도록 설계되고 구성된 직접 행동 API(116)를 포함할 수 있다. 데이터 프로세싱 시스템(102)의 프로세서들은 직접 행동 API(116)를 호출하여 차량 공유 서비스의 자동차와 같은 서비스 또는 제품을 요청하거나 주문하는 데이터 구조를 서비스 제공자 디바이스(108)에게 생성하는 스크립트들을 실행할 수 있다. 직접 행동 API(116)는 데이터 저장소(124)로부터 데이터뿐만 아니라, 위치, 시간, 사용자 계정들, 물류 또는 다른 정보를 결정하기 위해 클라이언트 컴퓨팅 디바이스(104)로부터 최종 사용자 승낙을 받은 수신된 데이터를 획득하여, 서비스 제공자 디바이스(108)가 차량 공유 서비스로부터 자동차를 예약하는 것과 같은 동작을 수행하게 할 수 있다. 직접 행동 API(116)를 사용하여, 이 예에서 데이터 프로세싱 시스템(102)은 또한 서비스 제공자 디바이스(108)와 통신하여 차량 공유 픽업을 예약하게 함으로써 전환을 완료할 수 있다.
직접 행동 API(116)는 데이터 프로세싱 시스템(102)에 의해 결정되는 것으로, 최종 사용자의 의도를 만족시키는 특정 행동을 실행할 수 있다. 입력들에 명시된 행동에 따라, 직접 행동 API(116)는 사용자 요청을 이행하는 데 필요한 파라미터들을 식별하는 코드 또는 대화 스크립트를 실행할 수 있다. 이러한 코드는 예를 들어, 데이터 저장소(124)에서 홈 자동화 서비스의 명칭과 같은 부가적인 정보를 검색할 수 있거나, 아니면 이러한 코드는 요청한 택시의 의도된 목적지와 같은 최종 사용자 질문들을 물어보기 위해 클라이언트 컴퓨팅 디바이스(104)에서 렌더링할 오디오 출력을 제공할 수 있다. 직접 행동 API(116)는 필요한 파라미터들을 결정할 수 있고 정보를 행동 데이터 구조에다 패키징할 수 있으며, 이후 행동 데이터 구조는 콘텐츠 선택기 컴포넌트(118)와 같은 다른 컴포넌트 또는 서비스 제공자 컴퓨팅 디바이스(108)로 전달되어 이행될 수 있다.
직접 행동 API(116)는 NLP 컴포넌트(112) 또는 데이터 프로세싱 시스템(102)의 다른 컴포넌트로부터 명령어 또는 커맨드를 수신하여, 행동 데이터 구조를 생성하거나 구성할 수 있다. 직접 행동 API(116)는 데이터 저장소(124)에 저장된 템플릿 저장소(132)로부터 템플릿을 선택하기 위해 행동 유형을 결정할 수 있다. 행동들의 유형은 예를 들어, 서비스들, 제품들, 예약들 또는 티켓들을 포함할 수 있다. 행동들의 유형은 또한 서비스들 또는 제품들의 유형을 포함할 수 있다. 예를 들어, 서비스들의 유형은 차량 공유 서비스, 음식 배달 서비스, 세탁 서비스, 가정부 서비스, 수리 서비스 또는 가사 서비스들을 포함될 수 있다. 제품들의 유형은 예를 들어, 의류들, 신발들, 장난감들, 전자 제품들, 컴퓨터들, 서적들 또는 보석류를 포함할 수 있다. 예약들의 유형은 예를 들어, 저녁 식사 예약들 또는 미용실 약속들을 포함할 수 있다. 티켓들의 유형은 예를 들어, 영화 티켓들, 스포츠 경기장 티켓들 또는 비행 티켓들을 포함할 수 있다. 일부 경우에, 서비스들, 제품들, 예약들 또는 티켓들의 유형은 가격, 위치, 운송 유형, 가용성 또는 기타 속성들에 따라 분류될 수 있다.
요청의 유형을 식별하면, 직접 행동 API(116)는 템플릿 저장소(132)로부터의 대응하는 템플릿에 액세스할 수 있다. 템플릿들은 서비스 제공자 디바이스(108)에게 요청되는 동작(예컨대, 최종 사용자를 픽업 위치에서 픽업할 택시를 보내고 최종 사용자를 목적지 위치까지 데려다 주는 작업)을 진행시키기 위해 직접 행동 API(116)에 의해 입력될 수 있는 구조화된 데이터 세트 내의 필드들을 포함할 수 있다. 직접 행동 API(116)는 템플릿 저장소(132)에서 검색을 수행하여 트리거 키워드 및 요청의 하나 이상의 특성에 부합하는 템플릿을 선택할 수 있다. 예를 들어, 요청이 목적지까지 차량 또는 승차의 요청에 대응하면, 데이터 프로세싱 시스템(102)은 차량 공유 서비스 템플릿을 선택할 수 있다. 차량 공유 서비스 템플릿은 다음과 같은 필드들: 디바이스 식별자, 픽업 위치, 목적지 위치, 승객 수 또는 서비스 유형 중 하나 이상을 포함할 수 있다. 직접 행동 API(116)는 필드들을 값들로 채울 수 있다. 필드들을 값들로 채우기 위해, 직접 행동 API(116)는 컴퓨팅 디바이스(104)의 하나 이상의 센서들(134) 또는 디바이스(104)의 사용자 인터페이스로부터 정보를 핑(ping), 폴링(poll) 또는 획득할 수 있다. 예를 들어, 직접 행동 API(116)는 GPS 센서와 같은 위치 센서를 사용하여 소스 위치를 검출할 수 있다. 직접 행동 API(116)는 설문 조사, 프롬프트 또는 질의를 컴퓨팅 디바이스(104)의 최종 사용자에게 제출함으로써 추가 정보를 획득할 수 있다. 직접 행동 API는 데이터 프로세싱 시스템(102)의 인터페이스(110) 및 컴퓨팅 디바이스(104)의 사용자 인터페이스(예를 들어, 오디오 인터페이스, 음성 기반 사용자 인터페이스, 디스플레이 또는 터치 스크린)를 통해 설문 조사, 프롬프트 또는 질의를 제출할 수 있다. 이렇게 하여, 직접 행동 API(116)는 트리거 키워드 또는 요청에 기초하여 행동 데이터 구조에 대한 템플릿을 선택하고, 하나 이상의 센서들(134)에 의해 검출되거나 사용자 인터페이스를 통해 획득된 정보로 템플릿 내의 하나 이상의 필드들을 채우며, 서비스 제공자 디바이스(108)에 의한 동작을 수행할 수 있게 하기 위해 행동 데이터 구조를 생성, 창출, 그렇지 않으면 구성할 수 있다.
데이터 프로세싱 시스템(102)은 예를 들어, 트리거 키워드, 요청, 제3자 제공자 디바이스(108), 제3자 제공자 디바이스(108)의 유형, 제3자 제공자 디바이스(108)가 정렬해 놓은 카테고리(예를 들어, 택시 서비스, 세탁 서비스, 꽃 배달 서비스 또는 음식 배달), 위치 또는 기타 센서 정보 중 하나 이상을 포함하는 다양한 인자들에 기초하여 템플릿 데이터 구조(132)로부터 템플릿을 선택할 수 있다.
트리거 키워드에 기초하여 템플릿을 선택하기 위해, 데이터 프로세싱 시스템(102)은 (예를 들어, 직접 행동 API(116)를 통해) 트리거 키워드를 사용하여 템플릿 데이터베이스(132)에 대해 검색 또는 다른 질의 동작을 수행하여, 트리거 키워드에 매핑하거나 그렇지 않으면 대응하는 템플릿 데이터 구조를 식별할 수 있다. 예를 들어, 템플리트 데이터베이스(132) 내의 각 템플리트는 템플리트가 트리거 키워드에 응답하여 제3자 제공 업체 디바이스(108)가 통신 세션을 설정하기 위해 처리할 수 있는 행동 데이터 구조를 생성하도록 구성되었음을 표시하는 하나 이상의 트리거 키워드와 연관될 수 있다.
경우에 따라, 데이터 프로세싱 시스템(102)은 트리거 키워드에 기초하여 제3자 제공자 디바이스(108)를 식별할 수 있다. 트리거 키워드에 기초하여 제3자 제공자(108)를 식별하기 위해, 데이터 프로세싱 시스템(102)은 데이터 저장소(124)에서 검색을 수행하여 트리거 키워드에 매핑하는 제3자 제공자 디바이스(108)를 식별할 수 있다. 예를 들어, 트리거 키워드가 “ride” 또는 “to go to” 을 포함하고 있으면, 데이터 프로세싱 시스템(102)은 (예를 들어, 직접 행동 API(116)를 통해) 제3자 제공자 디바이스(108)를 택시 서비스 회사 A에 대응하는 것으로서 식별할 수 있다. 데이터 프로세싱 시스템(102)은 식별된 제3자 디바이스(108)를 사용하여 템플릿 데이터베이스(132)로부터 템플릿을 선택할 수 있다. 예를 들어, 템플리트 데이터베이스(132)는 제3자 제공자 디바이스(108)가 통신 세션을 설정하기 위해 처리할 수 있는, 트리거 키워드에 응답하는 행동 데이터 구조를 생성하도록 구성된 템플리트들에 대해 제3자 제공자 디바이스(108) 또는 엔티티 간의 매핑 또는 상관을 포함할 수 있다. 일부 경우에, 템플릿은 제3자 제공업자 디바이스(108)에 대해 또는 제3자 제공자 디바이스들(108)의 범주에 대해 고객화될 수 있다. 데이터 프로세싱 시스템(102)은 제3자 제공자(108)에 대한 템플릿에 기초하여 행동 데이터 구조를 생성할 수 있다.
행동 데이터 구조를 구축하거나 생성하기 위해, 데이터 프로세싱 시스템(102)은 선택된 템플릿 내의 하나 이상의 필드들을 식별하여 값들로 채울 수 있다. 필드들은 숫자 값들, 문자열들, 유니코드 값들, 부울 로직, 이진값들, 16진수 값들, 식별자들, 위치 좌표들, 지리적 영역들, 타임스탬프들 또는 다른 값들로 채워질 수 있다. 필드들 또는 데이터 구조 자체는 데이터 보안을 유지하기 위해 암호화되거나 마스킹될 수 있다.
템플릿 내의 필드들을 결정하면, 데이터 프로세싱 시스템(102)은 필드들의 값들을 식별하여 템플릿의 필드들에 채워 행동 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소(124)에 대해 검색 또는 다른 질의 동작을 수행함으로써 필드들의 값들을 획득, 검색, 결정, 그렇지 않으면 식별할 수 있다.
경우에 따라, 데이터 프로세싱 시스템(102)은 필드들의 정보 또는 값들이 데이터 저장소(124)에 부재한 것을 결정할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소(124)에 저장된 정보 또는 값들이 시대에 뒤진 것, 만든 지 오래된 것 또는 그렇지 않으면 NLP 컴포넌트(112)에 의해 식별된 트리거 키워드 또는 요청에 응답하여 행동 데이터 구조를 구성하려는 목적에 적합하지 않다고 결정할 수 있다(예를 들면, 클라이언트 컴퓨팅 디바이스(104)의 위치가 예전의 위치이지 현재 위치가 아닐 수 있거나; 계정이 만료된 것일 수 있거나; 목적지 레스토랑이 새로운 위치로 이동되었을 수 있거나; 신체 활동 정보; 또는 교통 방식).
데이터 프로세싱 시스템(102)이 지금 데이터 프로세싱 시스템(102)의 메모리에서 템플릿의 필드에 대한 값들 또는 정보에 액세스하지 못한다고 결정하면, 데이터 프로세싱 시스템(102)은 값들 또는 정보를 획득할 수 있다. 데이터 프로세싱 시스템(102)은 클라이언트 컴퓨팅 디바이스(104)의 하나 이상의 이용 가능한 센서에 질의 또는 폴링하거나, 클라이언트 컴퓨팅 디바이스(104)의 최종 사용자에게 정보를 촉구하거나, 또는 HTTP 프로토콜을 사용하여 온라인 웹 기반 자원에 액세스함으로써 정보를 취득 또는 획득할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 템플릿의 필요한 필드일 수 있는, 클라이언트 컴퓨팅 디바이스(104)의 현재 위치를 갖고 있지 않다고 결정할 수 있다. 데이터 프로세싱 시스템(102)은 클라이언트 컴퓨팅 디바이스(104)에 위치 정보를 질의할 수 있다. 데이터 프로세싱 시스템(102)은 글로벌 포지셔닝 시스템 센서, WIFI 삼각 측량, 셀 타워 삼각 측량, 블루투스 비콘들, IP 어드레스 또는 다른 위치 감지 기술과 같은 하나 이상의 위치 센서들(134)을 사용하여 클라이언트 컴퓨팅 디바이스(104)에게 위치 정보를 제공할 것을 요청할 수 있다.
직접 행동 API(116)는 행동 데이터 구조를 제3자 제공자 디바이스(예를 들어, 서비스 제공자 디바이스(108))로 전송하여, 제3자 제공자 디바이스(108)로 하여금 대화형 애플리케이션 프로그래밍 인터페이스(예를 들어, 서비스 제공자 NLP 컴포넌트(142))를 호출하여 제3자 제공자 디바이스(108)와 클라이언트 컴퓨팅 디바이스(104) 간의 통신 세션을 설정하도록 할 수 있다. 서비스 제공자 디바이스(108)와 클라이언트 컴퓨팅 디바이스(1004) 사이의 통신 세션을 설정하는 것에 응답하여, 서비스 제공자 디바이스(108)는 데이터 패킷들을 네트워크(105)를 통해 직접 클라이언트 컴퓨팅 디바이스(104)에 전송할 수 있다. 경우에 따라, 서비스 제공자 디바이스(108)는 데이터 패킷들을 데이터 프로세싱 시스템(102) 및 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(104)에 전송할 수 있다.
경우에 따라, 제3자 제공자 디바이스(108)는 대화형 API(142)의 적어도 일부를 실행할 수 있다. 예를 들어, 제3자 제공자 디바이스(108)는 통신 세션의 특정 양상들 또는 질의들의 유형을 처리할 수 있다. 제3자 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)에 의해 실행되는 NLP 컴포넌트(112)를 적극 활용하여 통신 세션과 연관된 오디오 신호들을 처리하고 질의들에 대한 응답들을 생성하는 것을 용이하게 할 수 있다. 경우에 따라, 데이터 프로세싱 시스템(102)은 제3자 제공자(108)를 위해 구성된 대화형 API(142)를 포함할 수 있다. 경우에 따라, 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스와 제3자 제공자 디바이스 사이에서 데이터 패킷들을 라우팅하여 통신 세션을 설정한다. 데이터 프로세싱 시스템(102)은 제3자 제공자 디바이스(108)로부터, 제3자 제공자 디바이스가 클라이언트 디바이스(104)와 통신 세션을 설정했다는 표시를 수신할 수 있다. 표시는 클라이언트 컴퓨팅 디바이스(104)의 식별자, 통신 세션이 설정되었을 때에 대응하는 타임 스탬프, 또는 통신 세션과 연관된 다른 정보, 예컨대, 통신 세션과 관련된 행동 데이터 구조를 포함할 수 있다. 경우에 따라, 데이터 프로세싱 시스템(102)은 통신 세션을 관리하는 세션 핸들러 컴포넌트(114) 및 통신 세션의 특성을 측정하는 피드백 모니터 컴포넌트(120)를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이의 통신 세션을 설정하는 세션 핸들러 컴포넌트(114)를 포함하거나, 실행하거나, 액세스하거나 그렇지 않으면 세션 핸들러 컴포넌트와 통신할 수 있다. 통신 세션은 클라이언트 디바이스(104)의 센서(134)에 의해 검출된 입력 오디오 신호 및 데이터 프로세싱 시스템(102)에 의해 클라이언트 디바이스(104)에 전송된 출력 신호를 포함하는 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이의 하나 이상의 데이터 전송들을 지칭할 수 있다. 데이터 프로세싱 시스템(102)은 (예를 들어, 세션 핸들러 컴포넌트(114)를 통해) 입력 오디오 신호를 수신하는 것에 응답하여 통신 세션을 설정할 수 있다. 데이터 프로세싱 시스템(102)은 통신 세션을 위한 지속 기간을 설정할 수 있다. 데이터 프로세싱 시스템(102)은 통신 세션을 위해 설정된 지속 기간 동안 타이머 또는 카운터를 설정할 수 있다. 타이머의 만료에 응답하여, 데이터 프로세싱 시스템(102)은 통신 세션을 종료할 수 있다.
통신 세션은 클라이언트 디바이스(104)가 인증 정보 또는 자격 증명을 제공하여 세션을 설정하는 네트워크 기반 통신 세션을 지칭할 수 있다. 어떤 경우에, 통신 세션은 세션 중에 데이터 패킷들에 의해 반송되는 오디오 신호들의 화제 또는 맥락을 말한다. 예를 들어, 제1 통신 세션은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이에서 전송되는, 택시 서비스와 관련된 (예를 들어, 키워드들, 행동 데이터 구조들 또는 콘텐츠 아이템 개체들을 포함하는) 오디오 신호들을 지칭할 수 있으며; 제2 통신 세션은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이에서 전송되는, 세탁 및 드라이클리닝 서비스와 관련된 오디오 신호들을 지칭할 수 있다. 이 예에서, 데이터 프로세싱 시스템(102)은 (예를 들어, NLP 컴포넌트(112)를 통해) 오디오 신호들의 맥락이 상이하다는 것을 결정하고, 두 세트의 오디오 신호들을 상이한 통신 세션들로 분리할 수 있다. 세션 핸들러(114)는 드라이 클리닝 및 세탁 서비스와 관련된 하나 이상의 오디오 신호들을 식별하는 것에 응답하여 승차 서비스와 관련된 제1 세션을 종료시킬 수 있다. 이렇게 하여, 데이터 프로세싱 시스템(102)은 오디오 신호들의 맥락을 검출하는 것에 응답하여 드라이 클리닝 및 세탁 서비스와 관련된 오디오 신호들에 대한 제2 세션을 개시 또는 설정할 수 있다.
데이터 프로세싱 시스템(102)은 자연어 프로세서에 의해 식별된 트리거 키워드를 수신하고, 트리거 키워드에 기초하여, 실시간 키워드 선택 프로세스를 통해 콘텐츠 아이템을 선택하는 콘텐츠 선택기 컴포넌트(118)를 포함하거나, 실행하거나, 그렇지 않으면 콘텐츠 선택기 컴포넌트와 통신할 수 있다. 경우에 따라, 직접 행동 API(116)는 행동 데이터 구조를 콘텐츠 선택기 컴포넌트(118)에 전송하여 실시간 데이터 선택 프로세스를 수행하고 콘텐츠 제공자 디바이스(106) (또는 제3자 제공자 디바이스(108))와 클라이언트 컴퓨팅 디바이스(104) 사이의 통신 세션을 설정할 수 있다.
콘텐츠 선택 프로세스는 제3자 콘텐츠 제공자들(106)에 의해 제공된 협찬(sponsored) 콘텐츠 아이템 개체들을 선택하는 것을 지칭하거나 이를 포함할 수 있다. 콘텐츠 선택 프로세스는 컴퓨팅 디바이스(104)에 제공할 하나 이상의 콘텐츠 아이템들을 선택하기 위해 다수의 콘텐츠 제공자들에 의해 제공된 콘텐츠 아이템들이 파싱되거나, 처리되거나, 가중화되거나 또는 매칭되는 서비스를 포함할 수 있다. 콘텐츠 선택 프로세스는 실시간으로 또는 오프라인으로 수행될 수 있다. 콘텐츠 선택 프로세스를 실시간으로 수행하는 것은 클라이언트 컴퓨팅 디바이스(104)를 통해 수신된 콘텐츠의 요청에 응답하여 콘텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 콘텐츠 선택 프로세스는 요청을 수신하는 시간 간격(예를 들어, 5초, 10초, 20초, 30초, 1분, 2분, 3분, 5분, 10분 또는 20분) 내에서 수행할 수 있다(예를 들어, 개시되거나 완료될 수 있다). 실시간 콘텐츠 선택 프로세스는 클라이언트 컴퓨팅 디바이스(104)와 통신 세션 중에 또는 통신 세션이 종료된 이후의 시간 간격 내에서 수행될 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)은 콘텐츠 아이템 개체들을 선택하도록 설계되거나, 구축되거나, 구성되거나 또는 동작하는 콘텐츠 선택기 컴포넌트(118)를 포함할 수 있다. 음성 기반 환경에서 디스플레이하기 위한 콘텐츠 아이템들을 선택하기 위해, 데이터 프로세싱 시스템(102)은 (예를 들어, NLP 컴포넌트(112)를 통해) 입력 오디오 신호를 파싱하여 키워드들(예를 들어, 트리거 키워드)를 식별하고, 그 키워드들을 사용하여 확장 매치, 완전 매치 또는 문구 매치에 기초하여 매칭하는 콘텐츠 아이템을 선택할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트(118)는 후보 콘텐츠 아이템들의 주제를 분석하거나, 파싱하거나, 그렇지 않으면 처리하여 후보 콘텐츠 아이템들의 주제가 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰에 의해 검출된 입력 오디오 신호의 키워드들 또는 문구들의 주제에 대응하는지를 결정할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 이미지 처리 기술, 문자 인식 기술, 자연어 처리 기술 또는 데이터베이스 검색을 사용하여 후보 콘텐츠 아이템들의 음성, 오디오, 용어들, 문자들, 텍스트, 기호들 또는 이미지들을 식별하거나, 분석하거나 또는 인식할 수 있다. 후보 콘텐츠 아이템들은 후보 콘텐츠 아이템들의 주제를 나타내는 메타 데이터를 포함할 수 있으며, 이 경우 콘텐츠 선택기 컴포넌트(118)는 메타 데이터를 처리하여 후보 콘텐츠 아이템의 주제가 입력 오디오 신호에 대응하는지를 결정할 수 있다.
콘텐츠 제공자들(106)은 콘텐츠 아이템들을 포함하는 콘텐츠 캠페인을 구축할 때 부가적인 표시자들을 제공할 수 있다. 콘텐츠 제공자(106)는 콘텐츠 선택기 컴포넌트(118)가 후보 콘텐츠 아이템에 관한 정보를 사용하여 검색을 수행함으로써 식별할 수 있는 콘텐츠 캠페인 또는 콘텐츠 그룹 레벨에 있는 정보를 제공할 수 있다. 예를 들어, 후보 콘텐츠 아이템은 콘텐츠 그룹, 콘텐츠 캠페인 또는 콘텐츠 제공자와 매핑될 수 있는 고유 식별자를 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 데이터 저장소(124) 내의 콘텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여, 콘텐츠 제공자(106)에 관한 정보를 결정할 수 있다.
데이터 프로세싱 시스템(102)은 컴퓨터 네트워크를 통해, 컴퓨팅 디바이스(104)상에서 프레젠테이션하기 위한 콘텐츠의 요청을 수신할 수 있다. 데이터 프로세싱 시스템(102)은 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰에 의해 검출된 입력 오디오 신호를 처리함으로써 요청을 식별할 수 있다. 요청은 디바이스 유형, 위치 및 요청과 연관된 키워드와 같은 요청의 선택 기준들을 포함할 수 있다. 요청은 행동 데이터 구조 또는 행동 데이터 구조를 포함할 수 있다.
요청에 응답하여, 데이터 프로세싱 시스템(102)은 데이터 저장소(124) 또는 콘텐츠 제공자(106)와 연관된 데이터베이스로부터 콘텐츠 아이템 개체를 선택하고, 컴퓨팅 디바이스(104)를 통해 프레젠테이션을 위한 콘텐츠 아이템을 네트워크(105)를 통해 제공할 수 있다. 콘텐츠 아이템 개체는 서비스 제공자 디바이스(108)와 다른 콘텐츠 제공자 디바이스(108)에 의해 제공될 수 있다. 콘텐츠 아이템은 행동 데이터 구조의 서비스 유형과 상이한 서비스 유형에 대응할 수 있다(예를 들면, 택시 서비스 대 식품 배달 서비스). 컴퓨팅 디바이스(104)는 콘텐츠 아이템 개체와 상호 작용할 수 있다. 컴퓨팅 디바이스(104)는 콘텐츠 아이템에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)가 서비스 제공자(108)를 식별하게 하거나, 서비스 제공자(108)로부터 서비스를 요청하게 하거나, 서비스 제공자(108)에게 명령하여 서비스를 수행하게 하거나, 정보를 서비스 제공자(108)에 전송하게 하거나, 그렇지 않으면 서비스 제공자 디바이스(108)에게 질의하게 하는 또는 이를 허용하는, 콘텐츠 아이템 개체와 연관된, 하이퍼링크 또는 다른 버튼을 선택하는 표시를 수신할 수 있다.
데이터 프로세싱 시스템(102)은 출력 신호를 생성하는 오디오 신호 발생기 컴포넌트(122)를 포함하거나, 실행하거나 또는 오디오 신호 발생기 컴포넌트와 통신할 수 있다. 출력 신호는 하나 이상의 부분들을 포함할 수 있다. 예를 들어, 출력 신호는 제1 부분 및 제2 부분을 포함할 수 있다. 출력 신호의 제1 부분은 행동 데이터 구조에 대응할 수 있다. 출력 신호의 제2 부분은 실시간 콘텐츠 선택 프로세스 동안 콘텐츠 선택기 컴포넌트(118)에 의해 선택된 콘텐츠 아이템에 대응할 수 있다.
오디오 신호 발생기 컴포넌트(122)는 제1 데이터 구조에 대응하는 사운드를 갖는 제1 부분을 가진 출력 신호를 생성할 수 있다. 예를 들어, 오디오 신호 발생기 컴포넌트(122)는 직접 행동 API(116)에 의해 행동 데이터 구조의 필드들에 채워진 하나 이상의 값들에 기초하여 출력 신호의 제1 부분을 생성할 수 있다. 택시 서비스의 예에서, 필드들의 값들은 예를 들어, 픽업 위치의 경우 123 Main Street, 목적지 위치의 경우 1234 Main Street, 승객 수의 경우 2, 서비스 레벨의 경우 이코노미(economy)를 포함할 수 있다. 오디오 신호 발생기 컴포넌트(122)는 컴퓨팅 디바이스(104)의 최종 사용자가 서비스 제공자(108)로 계속하여 요청을 전송하기를 원한다는 것을 확인하기 위해 출력 신호의 제1 부분을 생성할 수 있다. 제1 부분은 다음과 같이 "Would you like to order an economy car from taxi service provider A to pick two people up at 123 Main Street and drop off at 1234 Main Street? (택시 서비스 제공자 A의 이코노미 자동차로 123 메인 스트리트에서 두 사람을 태워 1234 메인 스트리트에서 내려드릴 것을 주문하시겠습니까?)"라는 출력을 포함할 수 있다.
경우에 따라, 제1 부분은 서비스 제공자 디바이스(108)로부터 수신된 정보를 포함할 수 있다. 서비스 제공자 디바이스(108)로부터 수신된 정보는 행동 데이터 구조에 맞게 고객화 또는 맞춤화될 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 (예를 들어, 직접 행동 API(116)를 통해) 행동 데이터 구조를 서비스 제공자(108)에 전송한 다음 서비스 제공자(108)에게 동작을 수행할 것을 명령할 수 있다. 그 대신에, 데이터 프로세싱 시스템(102)은 서비스 제공자 디바이스(108)에게 행동 데이터 구조에 대해 초기 또는 예비 처리를 수행할 것을 명령하여 동작에 관한 예비 정보를 생성할 수 있다. 택시 서비스의 예에서, 행동 데이터 구조에 관한 예비 처리는 픽업 위치 주위에 있는 서비스 요건의 레벨을 만족하는 이용 가능한 택시들을 식별하는 것, 가장 가까운 이용 가능한 택시가 픽업 위치에 도달하는 데 필요한 시간 양을 추정하는 것, 목적지에 도착하는 시간을 추정하는 것, 및 택시 서비스의 가격을 추정하는 것을 포함한다. 추정된 예비 값들은 고정된 값, 다양한 조건들에 기초하여 변경될 수 있는 추정치 또는 값들의 범위를 포함할 수 있다. 서비스 제공자 디바이스(108)는 예비 정보를 데이터 프로세싱 시스템(102)으로 반환하거나 또는 네트워크(104)를 통해 직접 클라이언트 컴퓨팅 디바이스(104)로 반환할 수 있다. 데이터 프로세싱 시스템(102)은 서비스 제공자 디바이스(108)로부터의 예비 결과들을 출력 신호에 통합할 수 있고, 출력 신호를 컴퓨팅 디바이스(104)로 전송할 수 있다. 출력 신호는 예를 들면 "Taxi Service Company A can pick you up at 123 Main Street in 10 minutes, and drop you off at 1234 Main Street by 9 AM for $10. Do you want to order this ride? (택시 서비스 회사 A가 당신을 10분 내에 123 메인 스트리트에서 태워, 오전 9시까지 $10에 1234 메인 스트리트에서 내려드릴 수 있습니다. 이 승차 편을 주문하시겠습니까?)"를 포함할 수 있다. 이것은 출력 신호의 첫 부분을 형성할 수 있다.
경우에 따라, 데이터 프로세싱 시스템(102)은 출력 신호의 제2 부분을 형성할 수 있다. 출력 신호의 제2 부분은 실시간 콘텐츠 선택 프로세스 동안 콘텐츠 선택기 컴포넌트(118)에 의해 선택된 콘텐츠 아이템을 포함할 수 있다. 제1 부분은 제2 부분과 다를 수 있다. 예를 들어, 제1 부분은 클라이언트 컴퓨팅 디바이스(104)의 센서(134)에 의해 검출된 입력 오디오 신호를 반송하는 데이터 패킷들에 직접 응답하는 행동 데이터 구조에 대응하는 정보를 포함할 수 있는 반면, 제2 부분은 행동 데이터 구조에 약간 정도 관련될 수 있는 콘텐츠 선택기 컴포넌트(104)에 의해 선택된 콘텐츠 아이템을 포함할 수 있거나 또는 콘텐츠 제공자 디바이스(106)에 의해 제공된 협찬 콘텐츠를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(104)의 최종 사용자는 택시 서비스 회사 A의 택시를 요청할 수 있다. 데이터 프로세싱 시스템(102)은 택시 서비스 회사 A의 택시에 관한 정보를 포함하는 출력 신호의 제1 부분을 생성할 수 있다. 그러나, 데이터 프로세싱 시스템(102)은 키워드들 "택시 서비스" 및 행동 데이터 구조에 내포된 최종 사용자가 관심을 가질 수 있는 정보에 기초하여 선택된 콘텐츠 아이템을 포함하는 출력 신호의 제2 부분을 생성할 수 있다. 예를 들어, 제2 부분은 택시 서비스 회사 B와 같은 다른 택시 서비스 회사에 의해 제공된 콘텐츠 아이템 또는 정보를 포함할 수 있다. 사용자가 택시 서비스 회사 B를 명확히 요청하지 않았을 수 있지만, 데이터 프로세싱 시스템(102)은 그럼에도 불구하고 사용자가 택시 서비스 회사 B와의 작업을 수행할 수 있기 때문에 택시 서비스 회사 B로부터의 콘텐츠 아이템을 제공할 수 있다.
데이터 프로세싱 시스템(102)은 행동 데이터 구조로부터의 정보를 택시 서비스 회사 B로 전송하여 픽업 시간, 목적지 도착 시간 및 승차 가격을 결정할 수 있다. 데이터 프로세싱 시스템(102)은 이 정보를 수신하여 다음과 같은 출력 신호의 제2 부분을 생성할 수 있다: "Taxi Service Company B can pick you up at 123 Main Street in 2 minutes, and drop you off at 1234 Main Street by 8:52 AM for $15. Do you want this ride instead? (택시 서비스 회사 B가 당신을 2분 내에 123 메인 스트리트에서 태워, 오전 8시 52분까지 15달러에 1234 메인 스트리트에서 내려드릴 수 있습니다. 이 승차 편으로 대신하시겠습니까?)"  이후 컴퓨팅 디바이스(104)의 최종 사용자는 택시 서비스 회사 A에 의해 제공되는 승차 편 또는 택시 서비스 회사 B에 의해 제공되는 승차 편을 선택할 수 있다.
출력 신호의 제2 부분에서, 택시 서비스 회사 B에 의해 제공되는 서비스에 대응하는 협찬 콘텐츠 아이템을 제공하기 전에, 데이터 프로세싱 시스템(102)은 최종 사용자 컴퓨팅 디바이스에게 제2 부분이 (예를 들어, 콘텐츠 선택기 컴포넌트(118)에 의한) 실시간 콘텐츠 선택 프로세스 동안 선택된 콘텐츠 아이템 개체에 대응하는 것임을 통지할 수 있다. 그러나, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 최종 사용자에게 통지를 제공하는 상이한 유형들의 인터페이스들에 액세스하는 것을 제한받을 수 있다. 예를 들어, 컴퓨팅 디바이스(104)는 디스플레이 디바이스를 포함하지 않을 수도 있거나, 디스플레이 디바이스가 작동 불능이거나 꺼져있을 수도 있다. 컴퓨팅 디바이스(104)의 디스플레이 디바이스는 컴퓨팅 디바이스(104)의 스피커보다 많은 자원을 소비할 수 있으므로, 통보를 전달하기 위해 컴퓨팅 디바이스(104)의 스피커를 사용하는 것과 비교하여 컴퓨팅 디바이스(104)의 디스플레이 디바이스를 켜는 것이 덜 효율적일 수 있다. 그래서, 경우에 따라, 데이터 프로세싱 시스템(102)은 하나 이상의 인터페이스들 또는 하나 이상의 유형의 컴퓨터 네트워크들을 통한 정보 전송의 효율성 및 유효성을 개선할 수 있다. 예를 들면, 데이터 프로세싱 시스템(102)은 (예를 들어, 오디오 신호 발생기 컴포넌트(122)를 통해) 콘텐츠 아이템을 포함하는 출력 오디오 신호의 부분을 모듈화하여 출력 신호의 그 부분이 협찬 콘텐츠 아이템을 포함하고 있다는 표시 또는 통지를 최종 사용자에게 제공할 수 있다.
데이터 프로세싱 시스템(102)은 (예를 들어, 인터페이스(110) 및 네트워크(105)를 통해) 오디오 신호 발생기 컴포넌트(122)에 의해 생성된 출력 신호를 포함하는 데이터 패킷들을 전송할 수 있다. 출력 신호는 클라이언트 디바이스(104)의 오디오 드라이버 컴포넌트(138)가 또는 클라이언트 디바이스(104)에 의해 실행되는 오디오 드라이버 컴포넌트(138)가 클라이언트 디바이스(104)의 스피커(예를 들어, 변환기(136))를 구동하여 출력 신호에 대응하는 음향 파를 생성하게 할 수 있다.
데이터 프로세싱 시스템(102)은 피드백 모니터 컴포넌트(120)를 포함할 수 있다. 피드백 모니터 컴포넌트(120)는 통신 세션의 특성을 측정하는 하드웨어 또는 소프트웨어를 포함할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스(예를 들어, 컴퓨팅 디바이스(104))와 콘텐츠 아이템과의 상호 작용에 응답하여 클라이언트 디바이스와 통신 세션을 설정하였던 대화형 애플리케이션 프로그래밍 인터페이스(예를 들어, 데이터 프로세싱 시스템에 의해 실행되는 NLP 컴포넌트(112) 또는 서비스 제공자 디바이스(108), 제3자 제공자 디바이스 또는 콘텐츠 제공자 디바이스(106)에 의해 실행되는 서비스 NLP 컴포넌트(142)) 사이에서 전송되는 청각 신호들을 반송하는 데이터 패킷들을 수신할 수 있다. 경우에 따라, 콘텐츠 제공자 디바이스(106)는 서비스 제공자 NLP 컴포넌트(142) 또는 NLP 컴포넌트(112)의 하나 이상의 기능들 또는 컴포넌트들을 포함하는 NLP 컴포넌트를 실행할 수 있다. 서비스 제공자 디바이스(108) 또는 콘텐츠 제공자 디바이스(106)에 의해 실행되는 NLP 컴포넌트는 서비스 제공자 디바이스(108) 또는 콘텐츠 제공자 디바이스(106) 별로 고객화될 수 있다. NLP 컴포넌트를 고객화함으로써, NLP 컴포넌트는 일반 또는 표준 NLP 컴포넌트와 비교하여 대역폭 사용량과 요청-응답들을 줄일 수 있는데, 그 이유는 NLP 컴포넌트와 클라이언트 컴퓨팅 디바이스(104) 사이에서 왔다 갔다 하는 질의들 및 응답들이 줄어든 결과로 NLP 컴포넌트가 더 정확한 질의들 및 응답들로 구성될 수 있기 때문이다.
피드백 모니터 컴포넌트(120)는 청각 신호들에 기초하여 통신 세션의 특성을 측정할 수 있다. 피드백 모니터 컴포넌트(120)는 측정된 특성에 기초하여 품질 신호를 생성할 수 있다. 품질 신호는 품질 레벨, 품질 지표, 품질 점수 또는 품질 레벨을 포함하거나 지칭할 수 있다. 품질 신호는 숫자 점수(예를 들어, 0 내지 10으로, 0은 최저 품질이고 10은 최고 품질임 또는 그 반대로도 가능함), 문자 등급(예를 들어, A 내지 F로, A가 가장 우수한 품질임), 이진 값(예를 들어, 예/아니오; 좋음/나쁨, 1/0; 높음/낮음), 순위 또는 백분위 수를 포함할 수 있다. 품질 신호는 동일한 NLP 컴포넌트 또는 제공자 디바이스(106 또는 108)와 통신하는 복수의 클라이언트 디바이스들 사이의 통신 신호들로부터 결정된 평균 품질 신호를 포함할 수 있다.
피드백 모니터 컴포넌트(120)는 다양한 측정 기술들, 발견적 기법들, 정책들, 조건들 또는 시험들을 사용하여 통신 세션의 특성을 측정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스(104)와 콘텐츠 제공자 디바이스, 제3자 디바이스, 서비스 제공자 또는 데이터 프로세싱 시스템 사이에서 전송된 데이터 패킷들을 파싱하여 통신 세션의 특성을 결정할 수 있다. 품질은 데이터를 전송하는 데 사용되는 통신 채널의 품질 또는 통신 중인 데이터의 품질을 지칭할 수 있다. 예를 들어, 통신 채널의 품질은 신호 대 잡음비, 주변 잡음 레벨, 지연, 뒤처짐, 대기 시간, 불규칙성(choppiness), 에코 또는 끊어진 통화들과 관련 있을 수 있다. 통신 중인 데이터의 품질은 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 신호에 응답하고 있는 NLP 컴포넌트에 의해 생성된 응답들의 품질을 지칭할 수 있다. 데이터의 품질은 NLP 컴포넌트의 응답성, NLP 컴포넌트의 정확성, 또는 NLP 컴포넌트가 클라이언트 디바이스(104)로부터 오디오 신호 또는 질의를 수신하는 것과 응답을 전송하는 것 사이의 대기 시간에 기초할 수 있다.
피드백 모니터 컴포넌트(120)는 배경 잡음의 양 및 신호 레벨을 측정하여 신호 대 잡음(signal-to-noise, "SNR") 비율을 결정함으로써 통신 채널의 품질을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 측정된 또는 결정된 SNR을 문턱치와 비교하여 품질 레벨을 결정할 수 있다. 예를 들어, 10dB SNR이면 양호한 것으로 간주될 수 있다. 문턱치들은 기계 학습 모델을 통해(예를 들어, 복수의 디바이스들로부터의 피드백에 기초하여) 미리 결정되거나 결정될 수 있다.
피드백 모니터 컴포넌트(120)는 또한 클라이언트 디바이스(104)와 제공자 디바이스 또는 데이터 프로세싱 시스템 사이의 핑 시간에 기초하여 통신 채널의 품질을 결정할 수 있다. 데이터 프로세싱 시스템은 핑 시간(ping time)을 문턱치와 비교하여 품질 레벨을 결정할 수 있다. 예를 들어, 핑 문턱치는 20ms, 30ms, 50ms, 100ms, 200ms 또는 그 이상일 수 있다. 피드백 모니터 컴포넌트(120)는 오디오의 불규칙성(예를 들어, 오디오의 일시 정지들 또는 중단들; 오디오 차단)에 기초하여 통신 채널의 품질을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 통신 채널에서 에코를 식별하여 낮은 품질 레벨을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 시간 간격 동안 NLP 컴포넌트에서 끊긴 통화 횟수 또는 끊긴 통화 대 총 통화의 비율을 결정할 수 있고, 이것을 문턱치와 비교하여 품질 레벨을 결정할 수 있다. 예를 들어, 문턱치는 시간당 2번 끊긴 통화 또는 100번 통화당 1번 끊긴 통화일 수 있다.
피드백 모니터 컴포넌트(120)는 클라이언트 컴퓨팅 디바이스(104)와 통신하고 있는 NLP 컴포넌트(또는 대화형 API)에 의해 생성된 응답들의 품질에 기초하여 통신 세션의 품질을 결정할 수 있다. 응답들의 품질은 예를 들어, NLP 컴포넌트가 응답을 생성하는 데 걸리는 시간 양, 응답의 텍스트, 응답의 정확성, 응답의 관련성, 응답의 의미론적 분석, 또는 NLP 컴포넌트에 의해 제공된 응답에 응답하는 클라이언트 디바이스의 네트워크 활동을 포함하거나 이를 기초로 할 수 있다. 피드백 모니터 컴포넌트(120)는 NLP 컴포넌트가 클라이언트 디바이스(104)로부터 오디오 신호를 수신할 때에 대응하는 타임스탬프와, NLP가 응답을 전송할 때에 대응하는 타임 스탬프를 차감함으로써 NLP 컴포넌트가 응답을 생성하는 데 걸리는 시간 양을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스가 오디오 신호들을 전송할 때에 대응하는 타임스탬프와 클라이언트 디바이스가 NLP 컴포넌트로부터 응답을 수신할 때에 대응하는 타임스탬프를 차감함으로써 시간 양을 결정할 수 있다.
피드백 모니터 컴포넌트(120)는 응답을 포함하는 데이터 패킷들을 파싱함으로써 응답의 품질을 결정할 수 있다. 예를 들어, 피드백 모니터 컴포넌트(120)는 응답의 텍스트, 응답의 정확성 또는 클라이언트 디바이스로부터의 질의와 응답과의 관련성을 파싱하고 분석할 수 있다. 피드백 모니터 컴포넌트(120)는 질의를 다른 NLP 컴포넌트에 제공하고 두 개의 NLP 컴포넌트들로부터의 응답들을 비교함으로써 이러한 평가를 수행할 수 있다. 피드백 모니터 컴포넌트(120)는 질의 및 응답을 제3자 평가자에게 제공함으로써 이러한 평가를 수행할 수 있다. 피드백 모니터 컴포넌트(120)는 복수의 클라이언트 디바이스들에 의해 제공된 복수의 유사한 질의들에 대한 복수의 응답들을 비교함으로써 응답의 일관성을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스가 (예를 들어, 응답들이 클라이언트 디바이스가 제출한 질의에 완전하게 응답하지 않았음을 나타내는) 동일한 질의를 포함하는 오디오 신호들을 전송하는 횟수에 기초하여 응답의 품질을 결정할 수 있다.
피드백 모니터 컴포넌트(120)는 클라이언트 디바이스의 네트워크 활동에 기초하여 NLP에 의해 생성된 응답의 품질을 결정할 수 있다. 예를 들어, NLP 컴포넌트는 클라이언트 디바이스로부터 음성 질의를 수신하고, 음성 질의에 대한 응답을 생성하고, 응답을 반송하는 데이터 패킷들을 클라이언트 디바이스에 전송할 수 있다. 클라이언트 디바이스는, NLP 컴포넌트로부터 응답을 수신하면, 네트워크 활동을 수행하거나 네트워크 활동을 변경할 수 있다. 예를 들어, 클라이언트 디바이스는 통신 세션을 종료할 수 있는데, 이것은 NLP 컴포넌트가 클라이언트 디바이스에 완전하게 응답했다거나, 아니면 NLP가 클라이언트 디바이스에 성공적으로 응답하지 못했고 클라이언트 디바이스가 NLP 컴포넌트를 단념했다는 것을 표시할 수 있다. 피드백 모니터 컴포넌트는 NLP 컴포넌트에 의해 생성된 응답과 연관된 신뢰 점수에 기초하여 클라이언트 디바이스가 좋은 이유 또는 나쁜 이유 때문에 통화를 종료했는지를 결정할 수 있다. 신뢰 점수는 응답을 생성하는 데 사용되는 확률론적 또는 통계적 의미 분석과 연관될 수 있다.
피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 의해 오디오 신호들이 전송되지 않은 것에 기초하여 클라이언트 디바이스가 통신 세션을 종료했다고 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 의해 전송된 종료 또는 마침 명령에 기초하여 클라이언트 디바이스가 통신 세션을 종료했다고 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스로부터 상당량의 침묵(예를 들어, 오디오 신호들의 부재)에 기초하여 품질 레벨을 결정할 수 있다. 오디오 신호들의 부재는 클라이언트 디바이스의 SNR이 문턱치(예를 들어, 6dB, 3dB 또는 0dB)보다 작다는 것에 기초하여 식별할 수 있다. 피드백 모니터 컴포넌트는 통신 세션의 지속 기간에 기초하여 특성을 측정할 수 있다. 예를 들어, 문턱치보다 큰 지속 기간은 클라이언트 디바이스의 최종 사용자가 통신 세션에 만족했음을 표시할 수 있다. 그러나, 오디오 신호들의 증가한 진폭, 반복된 질의들 및 감소된 템포와 같은 다른 특성들과 조합된 오랜 지속 기간은 클라이언트의 사용자가 통신 세션과 연계된 연장된 시간 양을 불필요하거나 원하지 않게 소비했을 수 있기 때문에 낮은 품질을 표시할 수 있다.
NLP 컴포넌트는 NLP 컴포넌트가 응답을 생성하여 제공하더라도 클라이언트 디바이스가 반복적으로 동일 또는 유사한 질의들을 전송한 것을 결정하기 위해 클라이언트 디바이스에 의해 전송된 질의들에 대해 의미론적 분석을 수행할 수 있다. 피드백 모니터 컴포넌트(120)는 시간 간격 내에서 반복 질의들(또는 순차적으로 반복되는 질의들)의 횟수가 문턱치(예를 들어, 2, 3, 4, 5, 6, 7 또는 그 이상)를 초과함에 따라, 품질 레벨이 낮다고 결정할 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(120)는 통신 세션의 상이한 부분들(예를 들어, 시작, 중간 또는 끝; 또는 시간 간격들)에서 통신 세션의 품질을 결정할 수 있다. 예를 들어, 피드백 모니터 컴포넌트(120)는 통신 세션의 제1 부분 또는 제1 시간 간격의 품질; 및 제1 부분 또는 제1 시간 간격에 후속하는 통신 세션에서의 제2 부분 또는 제2 시간 간격의 품질을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 두 부분에서 품질을 비교하여 전체 통신 세션의 품질을 결정할 수 있다. 예를 들어, 두 부분 사이에서, 문턱치보다 큰 품질의 차이는 낮은 품질, 일관성 없는 품질 또는 신뢰할 수 없는 품질을 표시할 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(120)는 통신 세션의 특성 또는 적어도 그 일부분에 기초하여 품질을 결정할 수 있다. 특성은 예를 들어, 진폭, 주파수, 템포, 음색(tone) 및 피치(pitch) 중 적어도 하나를 포함할 수 있다. 예를 들어, 피드백 모니터 컴포넌트(120)는 특성을 사용하여 클라이언트 디바이스의 사용자의 상호 작용 또는 클라이언트의 사용의 감정을 결정할 수 있다. 예를 들어, NLP로부터의 각각의 응답 후에 클라이언트 디바이스에 의해 전송된 오디오 신호들의 진폭이 증가하면, 피드백 모니터는 최종 사용자가 NLP 컴포넌트에 의해 생성된 응답들 때문에 실망한 것으로 판정할 수 있다. 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 의해 검출된 오디오 신호들의 진폭을 문턱치 또는 동일한 통신 세션 또는 상이한 통신 세션 동안 클라이언트 디바이스에 의해 수신된 다른 오디오 신호들과 비교할 수 있다.
피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 의해 검출되어 NLP 컴포넌트에 전송되는 오디오 신호들의 템포 또는 피치와 같은 특성에 기초하여 품질을 결정할 수 있다. 피드백 모니터 컴포넌트(120)는, 예를 들어, 각 NLP 응답 이후의 템포(예를 들어, 시간 간격 당 말한 단어들의 비율)가 느려진다는 것은 최종 사용자가 NLP 컴포넌트에 의해 생성된 응답에 만족하지 않음을 표시할 수 있다고 결정할 수 있으며, 응답을 더 느리게 반복하여 NLP 컴포넌트가 오디오 신호들을 더 잘 파싱하고 응답을 개선하도록 한다. 어떤 경우에, 증가하는 또는 일정한 템포는 클라이언트 디바이스의 사용이 NLP에 의해 생성된 응답들에 만족하며 그 응답들을 신뢰한다는 것을 표시할 수 있다. 경우에 따라, 클라이언트 디바이스에 의해 검출된 오디오 신호들의 피치가 증가하는 것은 NLP로부터의 응답들의 품질이 좋지 않다는 것 또는 응답들의 신뢰가 부족하다는 것을 표시할 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 질의들을 전송하여 품질을 측정하거나 결정할 수 있다. 예를 들어, 피드백 모니터 컴포넌트(120)는 최종 사용자에게 통신 세션, NLP 컴포넌트 또는 제공자 디바이스의 품질에 관해 물어보든 설문 조사 질문들을 전송할 수 있다. 경우에 따라, 피드백 모니터 컴포넌트(120)는 제1 품질 신호가 문턱치 이하라고 결정하는 피드백 모니터 컴포넌트(120)에 응답하여 질의를 생성할 수 있다. 예를 들어, 피드백 모니터 컴포넌트(120)는 클라이언트 디바이스에 의해 검출된 오디오 신호들의 템포의 감소와 짝지어서 클라이언트 디바이스에 의해 검출된 오디오 신호들의 진폭의 증가와 같은 특성들을 사용하여 품질을 측정하는 것에 기초하여 제1 품질 신호를 결정할 수 있다. 피드백 모니터 컴포넌트(120)는 진폭 및 템포의 조합된 특성들에 기초하여 낮은 품질 레벨을 표시하는 품질 신호를 생성할 수 있다. 조합 특성에 기초하여 결정된 낮은 품질 신호에 응답하여, 피드백 모니터 컴포넌트(120)는 통신 세션의 품질에 관해 암시적으로 또는 명시적으로 문의하는 클라이언트 디바이스에게 질의들(예를 들면, How satisfied are you with the responses generated by the NLP component?; How satisfied are you with the communication session? (NLP 컴포넌트에 의해 생성된 응답들에 만족하십니까?; 통신 세션에 얼마나 만족하십니까?))을 생성하여 전송할 수 있다. 다른 예에서, 데이터 프로세싱 시스템은 서비스 제공자(108)가 요청된 서비스를 제공할 수 있는지에 기초하여 품질을 결정할 수 있다. 예를 들어, 최종 사용자는 제품 또는 서비스를 요청할 수 있지만, 서비스 제공자(108)는 서비스 제공자가 그 제품을 갖고 있지 않거나 그 서비스를 수행할 수 없다고 말하여 응답하는데, 이것은 최종 사용자가 서비스 제공자(108)로 인한 불만을 표시하게 만들 수 있다. 데이터 프로세싱 시스템(102)은 이러한 불만을 식별하고, 이에 따라 품질을 안배할 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(120)는 다수의 전자 표면들에서의 네트워크 활동에 기초하여 특성을 측정할 수 있고, 다수의 전자 표면들로부터 측정된 품질을 종합하여 합산된 품질 신호를 생성할 수 있다. 합산된 품질 신호는 평균, 가중 평균, 절대 합 또는 다른 조합된 품질 신호 값일 수 있다. 피드백 모니터 컴포넌트(120)는 또한 조합된 품질 신호 값에 대해 통계 자료를 생성할 수 있거나, 예컨대 표준 편차, 분산, 3 시그마 품질 또는 6 시그마 품질들을 결정하는 것과 같이 통계적 분석을 수행할 수 있다.
피드백 모니터 컴포넌트(120)는 콘텐츠 선택기 컴포넌트(118)에 의해 수행되는 실시간 콘텐츠 선택 프로세스를 조정할 수 있다. 실시간 콘텐츠 선택 프로세스를 조정한다는 것은 클라이언트 디바이스(104)와 통신 세션을 설정하는데 사용된 NLP 컴포넌트를 실행하였던 콘텐츠 제공자 디바이스(106) 또는 서비스 제공자 디바이스(108) 또는 제3자 제공자 디바이스(108)에 의해 제공된 콘텐츠 아이템을 선택하는데 사용되는 가중치를 조정하는 것을 말할 수 있다. 예를 들어, 콘텐츠 아이템이 낮은 품질 통신 세션을 초래하면, 피드백 모니터 컴포넌트(120)는 콘텐츠 아이템을 포함하는 콘텐츠 데이터(130)의 속성 또는 파라미터를 조정하여, 그 콘텐츠 아이템이 유사한 행동 데이터 구조들 또는 유사한 클라이언트 디바이스들(104)(또는 그 계정들 또는 프로파일들)로 인해 선택되는 가능성을 줄일 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(120)는 문턱치보다 작은 품질 신호에 응답하여, 실시간 선택 프로세스에서, 콘텐츠 선택기 컴포넌트(118)가 콘텐츠 아이템을 선택하는 것을 방지하거나 차단할 수 있다. 경우에 따라, 피드백 모니터 컴포넌트(120)는 임계치보다 크거나 같은 품질 신호에 응답하여, 실시간 선택 프로세스에서, 콘텐츠 선택기 컴포넌트(118)가 콘텐츠 아이템을 선택할 수 있게 하거나 이를 허용하게 할 수 있다.
도 2는 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 피드백 제어 시스템의 동작을 도시한다. 시스템은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트를 포함할 수 있다. 시스템(100)은 하나 이상의 클라이언트 컴퓨팅 디바이스들(104a-n)에 의해 실행되거나 제공되는 하나 이상의 전자 표면들(202a-n)을 포함할 수 있다. 전자 표면들(202a-n)의 예들은 오디오 인터페이스들, 음성 기반 인터페이스들, 디스플레이 스크린, HTML 콘텐츠 아이템들, 멀티미디어, 이미지들, 비디오, 텍스트 기반 콘텐츠 아이템들, SMS, 메시징 애플리케이션, 채팅 애플리케이션 또는 자연어 프로세서들을 포함할 수 있다.
ACT(204)에서, 클라이언트 컴퓨팅 디바이스(104)는 전자 표면(202)으로부터 또는 전자 표면(202)을 통해 피드백을 나타내는 데이터 패킷들, 신호들 또는 다른 정보를 수신할 수 있다. ACT(206)에서, 하나 이상의 클라이언트 컴퓨팅 디바이스들(104a-n), 하나 이상의 서비스 제공자 디바이스들(108a-n) 또는 하나 이상의 콘텐츠 제공자 디바이스들(106a-n)은 데이터 패킷들을 피드백 모니터 컴포넌트(124)로 전송할 수 있다. 데이터 패킷들은 클라이언트 디바이스(104)와 서비스 제공자 디바이스(108) 또는 콘텐츠 제공자 디바이스(106) 중 하나 이상의 디바이스 사이에 설정된 통신 세션과 연관될 수 있다. 데이터 패킷들은 각각의 디바이스로부터 피드백 모니터 컴포넌트(124)로 전송될 수 있다.
경우에 따라, 피드백 모니터 컴포넌트(124)는 디바이스(104, 106 또는 108)로부터 각각의 디바이스로 전송되는 데이터 패킷들을 인터셉트할 수 있다. 피드백 모니터 컴포넌트(124)는 인터셉트된 데이터 패킷을 분석하고 데이터 패킷을 의도된 목적지로 라우팅 또는 포워딩할 수 있다. 그래서, 피드백 모니터 컴포넌트(124)는 클라이언트 디바이스(104) 및 서비스/제3자 제공 디바이스(108) 또는 콘텐츠 제공자 디바이스(106)와의 중개자 역할을 할 수 있다.
ACT(208)에서, 피드백 모니터 컴포넌트(124)는 통신 세션으로부터 인터셉트되거나 수신된 데이터 패킷들을 NLP 컴포넌트(112)로 전송할 수 있다. ACT(210)에서, NLP 컴포넌트(112)는 데이터 패킷들의 의미론적 분석을 수행하고 이 패킷들을 다시 피드백 컴포넌트(124)로 제공할 수 있다. 경우에 따라, NLP 컴포넌트(112)는 통신 세션(206)으로부터의 오디오 신호들에 대해 자연어 처리를 수행하여 제공자 디바이스(106 또는 108)에 의해 생성된 NLP 컴포넌트의 응답들을 비교할 수 있다. 피드백 모니터 컴포넌트(124)는 제어 NLP 컴포넌트(112)에 의해 생성된 응답들을 비교하여 제3자 NLP 컴포넌트들이 비교 가능하거나 만족스러운 레벨에서 기능을 하고 있는지를 결정할 수 있다.
ACT(212)에서, 피드백 모니터 컴포넌트(124)는 통신 세션(206)에 대한 품질 신호를 결정할 수 있고, 콘텐츠 선택기 컴포넌트(118)에 의해 수행된 실시간 콘텐츠 선택 프로세스를 조정하여, 콘텐츠 선택기 컴포넌트(118)가 콘텐츠의 요청을 수신하는 다음 시간에, 콘텐츠 선택기 컴포넌트(118)가 콘텐츠 아이템이 선택되는 가능성을 늘리거나 줄이기 위해 통신 세션(206)과 연관된 콘텐츠 아이템(또는 콘텐츠 제공자)을 적절하게 가중하도록 할 수 있다. 예를 들어, 제공자(108)가 복수의 낮은 품질 통신 세션과 연관되면, 피드백 모니터 컴포넌트(124)는 콘텐츠 선택기 컴포넌트(118)에게 제공자(108)와 통신 세션의 설정을 초래할 수 있는 콘텐츠 아이템들을 선택하지 않게 할 것을 명령할 수 있다.
도 3은 패킷화된 오디오 신호들의 동적 변조를 수행하기 위한 예시적인 방법을 도시한다. 방법(300)은 시스템(100) 또는 시스템(400)의 하나 이상의 컴포넌트, 시스템 또는 요소에 의해 수행될 수 있다. 방법(300)은 데이터 프로세싱 시스템이 입력 오디오 신호를 수신하는 것을 포함할 수 있다(ACT(305)). 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스로부터 입력 오디오 신호를 수신할 수 있다. 예를 들어, 데이터 프로세싱 시스템에 의해 실행되는 자연어 프로세서 컴포넌트는 데이터 프로세싱 시스템의 인터페이스를 통해 클라이언트 컴퓨팅 디바이스로부터 입력 오디오 신호를 수신할 수 있다. 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스(또는 클라이언트 디바이스)의 센서에 의해 검출된 입력 오디오 신호를 반송 또는 포함하는 데이터 패킷들을 수신할 수 있다.
ACT(310)에서, 방법(300)은 데이터 프로세싱 시스템이 입력 오디오 신호를 파싱하는 것을 포함할 수 있다. 자연어 프로세서 컴포넌트는 입력 오디오 신호를 파싱하여 요청 및 그 요청에 대응하는 트리거 키워드를 식별할 수 있다. 예를 들어, 클라이언트 디바이스에 의해 검출된 오디오 신호는 "Okay device, I need a ride from Taxi Service Company A to go to 1234 Main Street. (오케이 디바이스, 1234 메인 스트리트로 이동할 택시 서비스 회사 A의 승차 편이 필요해.)"를 포함할 수 있다. 이 오디오 신호에서, 첫 트리거 키워드는 "okay device"를 포함할 수 있는데, 이것은 클라이언트 디바이스가 입력 오디오 신호를 데이터 프로세싱 시스템으로 전송한다는 것을 표시할 수 있다. 클라이언트 디바이스의 프리-프로세서는 "Okey device"라는 용어들을 걸러낸 다음 나머지 오디오 신호를 데이터 프로세싱 시스템에 전송할 수 있다. 경우에 따라, 클라이언트 디바이스는 부가적인 용어들을 걸러내거나 키워드들을 생성하여 추가 처리를 위해 데이터 프로세싱 시스템에 전송할 수 있다.
데이터 프로세싱 시스템은 입력 오디오 신호에서 트리거 키워드를 식별할 수 있다. 트리거 키워드는 예를 들어, "to go to" 또는 "ride" 또는 이러한 용어들의 변형들을 포함할 수 있다. 트리거 키워드는 서비스 또는 제품의 유형을 표시할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호에서 요청을 식별할 수 있다. 요청은 "I need"라는 용어들에 기초하여 결정될 수 있다. 트리거 키워드 및 요청은 의미론적 처리 기술 또는 다른 자연어 처리 기술을 사용하여 결정될 수 있다.
경우에 따라, 데이터 프로세싱 시스템은 행동 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템은 트리거 키워드, 요청, 제3자 제공자 디바이스 또는 다른 정보에 기초하여 행동 데이터 구조를 생성할 수 있다. 행동 데이터 구조는 요청에 응답할 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스의 최종 사용자가 택시 서비스 회사 A의 택시를 요청하면, 행동 데이터 구조에는 택시 서비스 회사 A의 택시 서비스를 요청하는 정보가 포함될 수 있다. 데이터 프로세싱 시스템은 택시 서비스 회사 A에 대한 템플릿을 선택할 수 있고, 택시 서비스 회사 A로 하여금 택시를 클라이언트 컴퓨팅 디바이스의 사용자에게 보내 사용자를 태우고 사용자를 요청한 목적지까지 데려다 주게 하는 값들로 템플릿의 필드들을 채울 수 있다.
ACT(315)에서, 데이터 프로세싱 시스템은 콘텐츠 아이템을 선택할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트는 트리거 키워드, 요청 또는 행동 데이터 구조를 수신하고 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템을 선택할 수 있다. 선택된 콘텐츠 아이템은 콘텐츠 제공자, 서비스 제공자 또는 다른 제3자 제공자에 대응할 수 있다. 클라이언트 디바이스는 콘텐츠 아이템과 상호 작용하여 콘텐츠 아이템 제공자 또는 콘텐츠 아이템과 연관된 다른 디바이스와 통신 세션을 설정할 수 있다. 콘텐츠 아이템과 연관된 디바이스는 NLP와 같은 대화형 API를 사용하여 클라이언트 디바이스와 상호 작용할 수 있다.
ACT(320)에서, 피드백 모니터 컴포넌트는 클라이언트 디바이스와 콘텐츠 아이템과의 상호 작용에 응답하여 클라이언트 디바이스와 통신 세션을 설정하였던 대화형 애플리케이션 프로그래밍 인터페이스 사이에서 전송되는 청각 신호들을 반송하는 데이터 패킷들을 수신할 수 있다. ACT(325)에서, 피드백 모니터 컴포넌트는 청각 신호들에 기초하여 통신 세션의 품질 또는 특성을 측정할 수 있고, 측정된 특성에 기초하여 품질 신호를 생성할 수 있다. ACT(330)에서, 피드백 모니터 컴포넌트 또는 데이터 프로세싱 시스템은 품질 신호에 기초하여 실시간 선택 프로세스를 조정할 수 있다.
도 4는 예시적인 컴퓨터 시스템(400)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(400)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은 시스템(100)의 컴포넌트들을 포함하거나 이를 구현하는데 사용될 수 있다. 데이터 프로세싱 시스템(102)은 지능형 개인용 보조기 또는 음성 기반 디지털 보조기를 포함할 수 있다. 컴퓨팅 시스템(400)은 정보를 전달하기 위한 버스(405) 또는 다른 통신 컴포넌트 및 버스(405)에 연결되어 정보를 처리하기 위한 프로세서(410) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(400)은 또한 버스에 연결되어 정보를 처리하기 위한 하나 이상의 프로세서들(410) 또는 프로세싱 회로를 포함할 수 있다. 컴퓨팅 시스템(400)은 또한 랜덤 액세스 메모리(random access memory, RAM) 또는 다른 동적 저장 디바이스와 같이, 버스(405)에 연결되어 정보 및 프로세서(410)에 의해 실행될 명령어들을 저장하기 위한 메인 메모리(415를 포함한다. 메인 메모리(415)는 데이터 저장소(145)일 수 있거나 데이터 저장소(145)를 포함할 수 있다. 메인 메모리(415)는 또한 프로세서(410)에 의한 명령어들의 실행 중에 위치 정보, 임시 변수들 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(400)은 버스(405)에 연결되어 정적 정보 및 프로세서(410)에 필요한 명령어들을 저장하기 위한 판독 전용 메모리(read only memory, ROM)(420) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 상태 디바이스, 자기 디스크 또는 광디스크와 같은 저장 디바이스(425)는 버스(405)에 연결되어 정보 및 명령어들을 영속적으로 저장할 수 있다. 저장 디바이스(425)는 데이터 저장소(145)를 포함할 수 있거나 데이터 저장소(145)의 일부일 수 있다.
컴퓨팅 시스템(400)은 정보를 사용자에게 디스플레이하기 위해, 버스(405)를 통해 액정 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(435)에 연결될 수 있다. 영숫자 및 다른 키들을 포함하는 키보드와 같은 입력 디바이스(430)는 프로세서(410)에 정보 및 명령 선택을 전달하기 위해 버스(405)에 연결될 수 있다. 입력 디바이스(430)는 터치 스크린 디스플레이(435)를 포함할 수 있다. 입력 디바이스(430)는 또한 방향 정보 및 선택된 커맨드들을 프로세서(410)에 전달하고 디스플레이(435)상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키들과 같은 커서 제어부를 포함할 수 있다. 디스플레이(435)는 예를 들어, 데이터 프로세싱 시스템(102), 클라이언트 컴퓨팅 디바이스(150) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스들, 시스템들 및 방법들은 프로세서(410)가 메인 메모리(415)에 담겨 있는 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(400)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(425)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(415) 내로 판독될 수 있다. 메인 메모리(415)에 담겨 있는 명령어들의 배열이 실행됨에 따라 컴퓨팅 시스템(400)은 본 명세서에서 기술된 예시적인 프로세스들을 수행하게 된다. 멀티 프로세싱 장치 내의 하나 이상의 프로세서들은 메인 메모리(415)에 담겨 있는 명령어들을 실행하기 위해 사용될 수도 있다. 하드-와이어드(hard-wired) 회로는 본 명세서에 기술된 시스템들 및 방법들과 함께 소프트웨어 명령어를 대신하여 또는 소프트 명령어와 합동하여 사용될 수 있다. 본 명세서에 기술된 시스템들 및 방법들은 하드웨어 회로 및 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 4에서 기술되었지만, 본 명세서에 기술된 동작들을 포함하는 주제는 다른 유형의 디지털 전자 회로에서 또는 본 명세서에 개시된 구조들 및 구조들의 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합들에서 구현될 수 있다.
본 명세서에 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 이용할 수 있는 상황들의 경우, 사용자들은 프로그램들 또는 기능들이 개인 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 행위들이나 활동들, 사용자의 선호도 또는 사용자 위치에 관한 정보)를 수집할 수 있는지를 통제할 기회 또는 콘텐츠 서버 또는 다른 데이터 프로세싱 시스템으로부터 사용자에게 더 관련이 있을 수 있는 콘텐츠를 수신할지 또는 어떻게 수신할지를 통제할 기회를 받을 수 있다. 또한, 특정 데이터는 이 데이터가 저장 또는 사용되기 전에 한 가지 이상의 방식들로 익명으로 처리될 수 있으므로, 파라미터들을 생성할 때 개인적으로 식별 가능한 정보는 제거된다. 예를 들어, 사용자의 신원이 익명으로 처리될 수 있으므로, 어떠한 개인적으로 식별 가능한 정보도 사용자를 알아낼 수 없거나, 아니면 사용자의 지리적 위치가 위치 정보를 획득된 곳(예를 들면, 도시, 우편 번호 또는 주(state)의 레벨)에서 포괄화되므로, 사용자의 특정 위치를 알아낼 수 없다. 이렇게 하여, 사용자는 정보가 사용자에 관해 수집되고 콘텐츠 서버에 의해 사용되는 방법을 통제할 수 있다.
본 명세서에 기술된 주제 및 동작들은 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조들 및 구조들의 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합들에서 구현될 수 있다. 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램들, 예를 들어, 데이터 프로세싱 장치들에 의한 실행을 위해 또는 데이터 프로세싱 장치들의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체상에 인코딩된, 컴퓨터 프로그램 명령어들의 하나 이상의 회로들로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령어들은 인위적으로 생성된 전파 신호 상에, 예를 들면, 적합한 수신기 장치에 전송하여 데이터 프로세싱 장치에 의해 실행하기 위한 정보를 인코딩하기 위해 생성된 머신에 의해 생성된 전기, 광 또는 전자기 신호상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이들에 포함될 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호에서 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 별개의 컴포넌트들 또는 매체들(예를 들어, 다수의 CD, 디스크들 또는 다른 저장 디바이스들)일 수 있거나 이들에 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스들 상에 저장된 데이터 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
"데이터 프로세싱 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 프로세싱 장치"라는 용어들은 예를 들어, 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩(system on a chip) 또는 전술한 것들 중 다수의 것들 또는 전술한 것들의 조합을 비롯한, 데이터를 처리하기 위한 다양한 장치들, 디바이스들 및 머신들을 망라한다. 장치는 특수 목적의 로직 회로, 예를 들면, FPGA(field programmable gate array, 필드 프로그래머블 게이트 어레이) 또는 ASIC(application specific integrated circuit, 주문형 집적 회로)를 포함할 수 있다. 장치는 또한 하드웨어 이외에, 논의되는 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 기반 구조들과 같은 다양한 여러 컴퓨팅 모델 기반 구조들을 실현할 수 있다. 예를 들어, 직접 행동 API(116), 콘텐츠 선택기 컴포넌트(118), 또는 NLP 컴포넌트(112) 및 다른 데이터 프로세싱 시스템(102) 컴포넌트들은 하나 이상의 데이터 프로세싱 장치들, 시스템들, 컴퓨팅 디바이스들 또는 프로세서들을 포함하거나 공유할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트, 또는 코드라고도 알려진) 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 비롯한 어떠한 형태의 프로그래밍 언어로도 작성될 수 있으며, 스탠드 얼론 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서 이들을 비롯한 어떤 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)을 보유하는 파일의 일부분에서, 논의되는 프로그램에 전용되는 단일의 파일에서, 또는 다수의 공동 작업 가능한 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들 또는 코드 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 있거나 여러 사이트들에 걸쳐 분산되어 통신 네트워크에 의해 상호 연결된 다수의 컴퓨터들에서 실행되도록 전개될 수 있다.
본 명세서에 기술된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 하나 이상의 컴퓨터 프로그램들(예를 들어, 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하여 행동들을 수행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)으로서 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들면, 내부의 하드 디스크들 또는 탈착 가능한 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 비롯한, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 또는 특수 목적 로직 회로에 통합될 수 있다.
본 명세서에 기술된 주제는 예를 들어, 데이터 서버로서 백 엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트, 예를 들면 애플리케이션 서버를 포함하는, 또는 프론트 엔드 컴포넌트, 예를 들면, 사용자가 본 명세서에 기술된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터, 또는 이러한 하나 이상의 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들면, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예는 근거리 네트워크(local area network, "LAN"), 광역 네트워크(wide area network, "WAN"), 인터-네트워크(inter-network)(예를 들면, 인터넷) 및 피어-투-피어(and peer-to-peer) 네트워크들(예를 들면, 애드 혹 피어-투-피어(ad hoc peer-to-peer) 네트워크들)을 포함한다.
시스템(100) 또는 시스템(400)과 같은 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 전형적으로 통신 네트워크(예를 들어, 네트워크(165))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 생긴다. 일부 구현들에서, 서버는 데이터(예를 들어, 콘텐츠 아이템을 나타내는 데이터 패킷들)를 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하려는 목적의) 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 클라이언트 디바이스로부터 서버에서 수신될 수 있다(예를 들어, 데이터 프로세싱 시스템(102)에 의해 컴퓨팅 디바이스(150) 또는 콘텐츠 제공자 컴퓨팅 디바이스(155) 또는 서비스 제공자 컴퓨팅 디바이스(160)로부터 수신될 수 있다).
동작들은 도면들에서 특정 순서로 도시되어 있지만, 이러한 동작들은 도시된 특정 순서 또는 순차적인 순서로 수행될 필요는 없으며, 도시된 동작들이 모두 수행될 필요는 없다. 본 명세서에 기술된 행동들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현들에서 분리를 요구하지 않으며, 기술된 프로그램 컴포넌트들은 단일의 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(110) 또는 콘텐츠 선택기 컴포넌트(125)는 단일의 컴포넌트, 앱, 또는 프로그램일 수 있거나, 또는 하나 이상의 프로세싱 회로들을 갖는 로직 디바이스일 수 있거나 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버들의 일부일 수 있다.
지금 일부 예시적인 구현들을 기술하였지만, 전술한 내용은 예시적이지 제한적인 것은 아니며, 예의 형태로 제시되었음이 명백하다. 특히, 본 명세서에 제시된 많은 예들이 방법 행위들 또는 시스템 요소들의 특정 조합을 포함하지만, 그러한 행위들 및 그러한 요소들은 동일한 목적들을 달성하는 다른 방식들에서 조합될 수 있다. 일 구현과 관련하여 논의된 행위들, 요소들 및 특징들은 다른 구현 또는 구현들에서 유사한 역할에서 배제되지 않을 것이라 의도되지는 않는다.
본 명세서에서 사용된 어구 및 전문 용어는 설명 목적을 위한 것이며 제한적인 것으로 간주되지 않아야 한다. "구비하는", "포함하는", "갖는", "담고 있는", "수반하는", "특징짓는", "특징으로 하는" 및 그 변형들을 사용하는 것은 이하에 열거된 아이템들, 그 등가물들 및 부가적인 아이템들은 물론이고, 배타적으로 이하에 열거된 아이템들로 구성되는 대안적인 구현들을 망라하는 것으로 의미한다. 일 구현에서, 본 명세서에 기술된 시스템들 및 방법들은 설명된 요소들, 행위들 또는 컴포넌트들 중 하나, 둘 이상 또는 모든 것의 각각의 조합으로 구성된다.
본 명세서에서 단수로 언급되는 시스템들 및 방법들의 구현들 또는 요소들 또는 행위들에 대해 언급하는 모든 것들 또한 복수의 이들 요소들을 포함하는 구현들을 포함할 수 있으며, 본 명세서에서 임의의 구현 또는 요소 또는 행위에 대해 복수로 언급하는 모든 것들 또한 단일의 요소만을 포함하는 구현들을 포함할 수 있다. 단수 또는 복수 형태로 언급하는 것들은 현재 개시된 시스템들 또는 방법들, 이들의 컴포넌트들, 행위들 또는 요소들을 단일 또는 복수의 구성들로 제한하려는 것이 아니다. 임의의 정보, 행위 또는 요소를 기초로 하는 임의의 행위 또는 요소에 대해 언급하는 것들은 그 행위 또는 요소가 적어도 부분적으로 임의의 정보, 행위 또는 요소에 기초하는 구현들을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실시예와 조합될 수 있으며, "구현", "일부 구현들", "일 구현" 등이라 언급한다 하여 반드시 상호 배타적인 것은 아니며, 구현과 관련하여 기술된 특정한 특징, 구조 또는 특성은 적어도 하나의 구현 또는 실시예에 포함될 수 있다. 본 명세서에서 사용된 이와 같은 용어들은 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 본 명세서에 개시된 양상들 및 구현들과 일관하는 임의의 방식으로, 포괄적으로 또는 배타적으로 임의의 다른 구현과 조합될 수 있다.
"또는"이라고 언급하는 것들은 "또는"을 사용하여 기술된 임의의 용어들이 기술된 용어들의 하나, 둘 이상 및 모두 중 임의의 것을 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어 "'A'와 'B' 중 적어도 하나"라고 언급하는 것은 'A'만, 'B'만을 포함할 뿐만 아니라 'A'와 'B' 둘 다를 포함할 수 있다. "포함하는" 또는 다른 개방적인 전문 용어와 함께 사용된 그렇게 언급된 것들은 부가적인 아이템들을 포함할 수 있다.
도면들, 상세한 설명 또는 임의의 청구항에서의 기술적 특징들에 참조 부호가 뒤에 붙어있는 경우, 참조 부호들은 도면들, 상세 설명 및 청구항들의 명료성을 높이고자 포함되었다. 따라서, 참조 부호들이 있건 없건 임의의 청구항 요소들의 범위에 어떠한 제한적인 영향도 미치지 않는다.
본 명세서에 기술된 시스템들 및 방법들은 그 특성들을 벗어나지 않으면서 다른 특정 형태들로 구현될 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 스레드(200)의 행동들의 시퀀스에서 이전 행동으로부터의 데이터, 예컨대 제2 행동(210)이 완료되거나 또는 막 시작하려는 것을 표시하는 제2 행동(210)으로부터의 데이터에 부분적으로 기초하여 후속 행동(예를 들면, 제3 행동(215))에 대한 콘텐츠 아이템을 선택할 수 있다. 전술한 구현들은 기술된 시스템들 및 방법들을 제한하기보다는 예시적이다. 따라서, 본 명세서에 기술된 시스템들 및 방법들의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 표시되며, 청구 범위의 등가물의 의미 및 범위에 속하는 변경들은 본원에 포함된다.

Claims (20)

  1. 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 시스템으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 프로세싱 시스템을 포함하며, 상기 데이터 프로세싱 시스템은:
    클라이언트 디바이스에 의해 제공된 전자 표면으로부터, 입력 오디오 신호를 포함하는 데이터 패킷을 수신하고;
    요청 및 상기 요청과 연관된 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱하고;
    상기 입력 오디오 신호에 기초하여 상기 입력 오디오 신호의 특성을 결정하고, 상기 특성은 진폭, 주파수, 템포, 음색(tone) 및 피치(pitch) 중 적어도 하나를 포함하며;
    상기 결정된 특성에 기초하여 품질 신호를 생성하고; 그리고
    상기 키워드 및 상기 품질 신호에 기초하여 콘텐츠 아이템을 선택하는, 시스템.
  2. 청구항 1에 있어서,
    상기 데이터 프로세싱 시스템은 상기 입력 오디오 신호에 응답하여 상기 클라이언트 디바이스와 통신 세션을 설정하는, 시스템.
  3. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 품질 신호에 기초하여 실시간 콘텐츠 선택 프로세스를 조정하고; 그리고
    상기 품질 신호에 기초하여 조정된 상기 실시간 콘텐츠 선택 프로세스를 통해 상기 요청 및 상기 키워드에 응답하여 상기 콘텐츠 아이템을 선택하는, 시스템.
  4. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    제1 시간 간격에서 상기 입력 오디오 신호의 제1 특성 및 상기 제1 시간 간격에 후속하는 제2 시간 간격에서 상기 클라이언트 디바이스로부터 수신된 제2 입력 오디오 신호의 제2 특성을 결정하고; 그리고
    상기 제1 특성과 상기 제2 특성을 비교하는, 시스템.
  5. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 클라이언트 디바이스로부터, 상기 입력 오디오 신호를 포함하는 복수의 입력 오디오 신호를 수신하고; 그리고
    상기 복수의 입력 오디오 신호의 비교에 기초하여 상기 특성을 결정하는, 시스템.
  6. 삭제
  7. 청구항 1에 있어서,
    상기 특성은 상기 클라이언트 디바이스와 연관된 사용자의 감정을 표시하는, 시스템.
  8. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    진폭, 주파수, 템포, 음색(tone) 및 피치(pitch) 중 적어도 하나에 기초하여 상기 특성을 결정하고; 그리고
    상기 특성에 기초하여, 상기 클라이언트 디바이스와 연관된 사용자의 감정을 결정하는, 시스템.
  9. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    복수의 음성 기반 쿼리를 상기 클라이언트 디바이스에 전송하고; 그리고
    상기 복수의 음성 기반 쿼리에 대한 응답에 기초하여 상기 특성을 측정하는, 시스템.
  10. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    임계치 미만인 상기 품질 신호에 기초하여 쿼리를 생성하고;
    상기 클라이언트 디바이스로부터 상기 쿼리에 대한 응답을 수신하고; 그리고
    상기 응답에 기초하여 제2 품질 신호를 생성하는, 시스템.
  11. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 클라이언트 디바이스와 상기 데이터 프로세싱 시스템 간의 통신 세션의 지속 기간에 기초하여 상기 특성을 측정하고, 상기 통신 세션은 상기 입력 오디오 신호를 포함하는, 시스템.
  12. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    다수의 전자 표면 상의 네트워크 활동에 기초하여 상기 특성을 측정하고; 그리고
    합산된 품질 신호를 생성하기 위해 상기 다수의 전자 표면으로부터 측정된 품질 신호를 집계(aggregate)하는, 시스템.
  13. 청구항 1에 있어서,
    상기 데이터 프로세싱 시스템은 임계치를 만족하는 상기 품질 신호에 응답하여 상기 콘텐츠 아이템의 선택을 허용하는, 시스템.
  14. 컴퓨터 네트워크를 통해 데이터를 전송하기 위한 방법에 있어서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 프로세싱 시스템에 의해, 클라이언트 디바이스에 의해 제공된 전자 표면으로부터, 입력 오디오 신호를 포함하는 데이터 패킷을 수신하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 요청 및 상기 요청과 연관된 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호에 기초하여 상기 입력 오디오 신호의 특성을 결정하는 단계, 상기 특성은 진폭, 주파수, 템포, 음색(tone) 및 피치(pitch) 중 적어도 하나를 포함하며;
    상기 데이터 프로세싱 시스템에 의해, 상기 결정된 특성에 기초하여 품질 신호를 생성하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 키워드 및 상기 품질 신호에 기초하여 콘텐츠 아이템을 선택하는 단계를 포함하는, 방법.
  15. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 품질 신호에 기초하여 실시간 콘텐츠 선택 프로세스를 조정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 품질 신호에 기초하여 조정된 상기 실시간 콘텐츠 선택 프로세스를 통해 상기 요청 및 상기 키워드에 응답하여 상기 콘텐츠 아이템을 선택하는 단계를 포함하는, 방법.
  16. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 클라이언트 디바이스로부터, 상기 입력 오디오 신호를 포함하는 복수의 입력 오디오 신호를 수신하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 입력 오디오 신호의 비교에 기초하여 상기 특성을 결정하는 단계를 포함하는, 방법.
  17. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 특성에 기초하여 상기 클라이언트 디바이스와 연관된 사용자의 감정을 결정하는 단계를 포함하는, 방법.
  18. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 복수의 음성 기반 쿼리를 상기 클라이언트 디바이스에 전송하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 음성 기반 쿼리에 대한 응답에 기초하여 상기 특성을 측정하는 단계를 포함하는, 방법.
  19. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 클라이언트 디바이스와 상기 데이터 프로세싱 시스템 간의 통신 세션의 지속 기간에 기초하여 상기 특성을 측정하는 단계를 포함하며, 상기 통신 세션은 상기 입력 오디오 신호를 포함하는, 방법.
  20. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 임계치를 만족하는 상기 품질 신호에 응답하여 상기 콘텐츠 아이템의 선택를 허용하는 단계를 포함하는, 방법.
KR1020217002298A 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러 KR102415921B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/395,694 2016-12-30
US15/395,694 US10431209B2 (en) 2016-12-30 2016-12-30 Feedback controller for data transmissions
KR1020197032040A KR102208990B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러
PCT/US2017/049766 WO2018125303A1 (en) 2016-12-30 2017-08-31 Feedback controller for data transmissions

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032040A Division KR102208990B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러

Publications (2)

Publication Number Publication Date
KR20210012049A KR20210012049A (ko) 2021-02-02
KR102415921B1 true KR102415921B1 (ko) 2022-07-01

Family

ID=59923556

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197032040A KR102208990B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러
KR1020217002298A KR102415921B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러
KR1020177031379A KR102040783B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197032040A KR102208990B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177031379A KR102040783B1 (ko) 2016-12-30 2017-08-31 데이터를 전송하기 위한 피드백 컨트롤러

Country Status (9)

Country Link
US (3) US10431209B2 (ko)
EP (2) EP4149097A1 (ko)
JP (3) JP6556865B2 (ko)
KR (3) KR102208990B1 (ko)
CN (2) CN112967716A (ko)
AU (2) AU2017386098B2 (ko)
DE (2) DE112017000131T5 (ko)
GB (1) GB2564921B (ko)
WO (1) WO2018125303A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630751B2 (en) 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US10956485B2 (en) 2011-08-31 2021-03-23 Google Llc Retargeting in a search environment
US10431209B2 (en) * 2016-12-30 2019-10-01 Google Llc Feedback controller for data transmissions
US9703757B2 (en) 2013-09-30 2017-07-11 Google Inc. Automatically determining a size for a content item for a web page
US10614153B2 (en) * 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US10929081B1 (en) * 2017-06-06 2021-02-23 United Services Automobile Association (Usaa) Context management for multiple devices
US11553082B2 (en) * 2017-12-29 2023-01-10 Trysit Nitidharmatut Simultaneous voice and data content driven commercial data platform
EP3596599A1 (en) 2018-05-07 2020-01-22 Google LLC Activation of remote devices in a networked system
JP2022529276A (ja) * 2019-04-17 2022-06-20 テンパス・ラボズ・インコーポレイテッド コラボレーティブ人工知能の方法およびシステム
CN111738007B (zh) * 2020-07-03 2021-04-13 北京邮电大学 一种基于序列生成对抗网络的中文命名实体识别数据增强算法
CN114065976A (zh) * 2020-07-29 2022-02-18 宝马股份公司 基于自然语言输入的用车服务预订方法和系统
US20220334890A1 (en) * 2021-04-14 2022-10-20 Nvidia Corporation Application programming interface to indicate increased resource usage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147388A1 (en) * 2006-12-19 2008-06-19 Mona Singh Methods And Systems For Changing A Communication Quality Of A Communication Session Based On A Meaning Of Speech Data
KR101029786B1 (ko) * 2006-09-13 2011-04-19 니뽄 덴신 덴와 가부시키가이샤 감정 검출 방법, 감정 검출 장치, 그 방법을 실장한 감정 검출 프로그램 및 그 프로그램을 기록한 기록 매체
US20160274864A1 (en) * 2015-03-20 2016-09-22 Google Inc. Systems and methods for enabling user voice interaction with a host computing device

Family Cites Families (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4603430A (en) 1984-09-21 1986-07-29 Hughes Aircraft Company Target discrimination utilizing median filters
EP0672277B1 (en) 1992-12-01 1998-05-13 Microsoft Corporation A method and system for in-place interaction with embedded objects
US5812935A (en) * 1993-04-17 1998-09-22 Hughes Electronics Cellular system employing base station transmit diversity according to transmission quality level
US5608727A (en) * 1995-05-02 1997-03-04 Motorola, Inc. Method and system for management of frequency spectrum among multiple applications on a shared medium
US6119101A (en) 1996-01-17 2000-09-12 Personal Agents, Inc. Intelligent agents for electronic commerce
DE19716445A1 (de) 1997-04-21 1998-10-22 Heidelberger Druckmasch Ag Verfahren zur Verbreiterung von Zeichen
US6529730B1 (en) * 1998-05-15 2003-03-04 Conexant Systems, Inc System and method for adaptive multi-rate (AMR) vocoder rate adaption
US6829646B1 (en) 1999-10-13 2004-12-07 L. V. Partners, L.P. Presentation of web page content based upon computer video resolutions
US20010016034A1 (en) 1998-12-08 2001-08-23 Sukhinder Singh Method and apparatus for obtaining and aggregating off-line user data for re-packaging and presentation to users over a data-packet-network
US7003729B1 (en) 1999-04-20 2006-02-21 I2 Technologies Us, Inc. Method and apparatus for supporting multiple alternative graphical user interfaces in computer-moderated electronic commerce
US6275806B1 (en) 1999-08-31 2001-08-14 Andersen Consulting, Llp System method and article of manufacture for detecting emotion in voice signals by utilizing statistics for voice signal parameters
US6684249B1 (en) 2000-05-26 2004-01-27 Sonicbox, Inc. Method and system for adding advertisements over streaming audio based upon a user profile over a world wide area network of computers
FI20001577A (fi) * 2000-06-30 2001-12-31 Nokia Mobile Phones Ltd Puheenkoodaus
US6857007B1 (en) 2000-08-30 2005-02-15 Bloomfield Enterprises, Llc Personal digital assistant facilitated communication system
WO2002086864A1 (en) * 2001-04-18 2002-10-31 Rutgers, The State University Of New Jersey System and method for adaptive language understanding by computers
US7219309B2 (en) 2001-05-02 2007-05-15 Bitstream Inc. Innovations for the display of web pages
AU2002305392A1 (en) 2001-05-02 2002-11-11 Bitstream, Inc. Methods, systems, and programming for producing and displaying subpixel-optimized images and digital content including such images
GB0118294D0 (en) 2001-07-27 2001-09-19 Ibm Method and system for deadlock detection and avoidance
GB2392595A (en) 2002-08-30 2004-03-03 Hewlett Packard Co Page composition
US20040056894A1 (en) 2002-09-19 2004-03-25 Igor Zaika System and method for describing and instantiating extensible user interfaces
US7296230B2 (en) 2002-11-29 2007-11-13 Nippon Telegraph And Telephone Corporation Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith
WO2004068320A2 (en) 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
WO2004072867A1 (en) 2003-02-14 2004-08-26 Access Co., Ltd. Browser program for performing table-layout
KR20040076649A (ko) 2003-02-26 2004-09-03 삼성전자주식회사 종횡비별 브라우저 그래픽 표시 장치 및 방법
KR100447526B1 (ko) 2003-03-18 2004-09-08 엔에이치엔(주) 인터넷 사용자의 접속 의도 판단 방법 및 이를 이용한인터넷 상의 광고 방법과 그 시스템
WO2004109557A1 (en) 2003-06-03 2004-12-16 Forbes Holten Norris, Iii Flexible, dynamic menu-based web-page architecture
JP3920818B2 (ja) 2003-07-22 2007-05-30 株式会社東芝 スケジューリング方法および情報処理システム
GB0320278D0 (en) 2003-08-29 2003-10-01 Hewlett Packard Development Co Constrained document layout
US7809843B1 (en) 2003-09-18 2010-10-05 Intel Corporation Globally unique identification in communications protocols and databases
NO20034724D0 (no) 2003-10-22 2003-10-22 Opera Software Asa Presentasjon av HTML-innhold på en skjermterminal
US7930206B2 (en) 2003-11-03 2011-04-19 Google Inc. System and method for enabling an advertisement to follow the user to additional web pages
KR100458461B1 (ko) 2004-03-04 2004-11-26 엔에이치엔(주) 지식 광고 방법 및 지식 광고 시스템
JP2005275601A (ja) * 2004-03-23 2005-10-06 Fujitsu Ltd 音声による情報検索システム
US7853255B2 (en) 2004-04-16 2010-12-14 Broadcom Corporation Digital personal assistance via a broadband access gateway
US20060103667A1 (en) 2004-10-28 2006-05-18 Universal-Ad. Ltd. Method, system and computer readable code for automatic reize of product oriented advertisements
US20060111971A1 (en) 2004-11-24 2006-05-25 Microsoft Corporation System and method for on-line and off-line advertising in content delivered to a display screen
EP1861800A1 (en) 2005-03-09 2007-12-05 Medio Systems, Inc. Method and system of bidding for advertisement placement on computing devices
US7730418B2 (en) 2005-05-04 2010-06-01 Workman Nydegger Size to content windows for computer graphics
WO2006132159A1 (ja) * 2005-06-09 2006-12-14 A.G.I. Inc. ピッチ周波数を検出する音声解析装置、音声解析方法、および音声解析プログラム
JP4665639B2 (ja) * 2005-07-19 2011-04-06 日本電気株式会社 通信品質監視システム、通信品質監視装置、通信品質劣化箇所特定装置、その装置における方法及びプログラム
JP2007080357A (ja) 2005-09-13 2007-03-29 Toshiba Corp 情報記憶媒体、情報再生方法、情報再生装置
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
FI118779B (fi) 2005-10-07 2008-03-14 Riku Rikkola Kortti, kortin vastaanottolaite ja järjestelmä sähköenergian välittämistä varten
JP2007115293A (ja) 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
US7904505B2 (en) 2005-11-02 2011-03-08 At&T Intellectual Property I, L.P. Service to push author-spoken audio content with targeted audio advertising to users
EP2523441B1 (en) 2006-02-10 2014-01-29 Nuance Communications, Inc. A Mass-Scale, User-Independent, Device-Independent, Voice Message to Text Conversion System
US7606875B2 (en) 2006-03-28 2009-10-20 Microsoft Corporation Detecting serving area of a web resource
CN101055577A (zh) 2006-04-12 2007-10-17 龙搜(北京)科技有限公司 可扩展标记语言集中器
US8582663B2 (en) 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
CN101529307B (zh) 2006-11-01 2012-03-28 日本电气株式会社 图像显示设备
US7742922B2 (en) * 2006-11-09 2010-06-22 Goller Michael D Speech interface for search engines
US7877696B2 (en) 2007-01-05 2011-01-25 Eastman Kodak Company Multi-frame display system with semantic image arrangement
US8107960B2 (en) 2007-01-23 2012-01-31 Toshiba America Research, Inc. Prioritized query
GB2451415B (en) 2007-02-13 2011-08-17 Vodafone Plc Content reproduction in telecommunications systems
US8413070B1 (en) 2007-05-07 2013-04-02 Adobe Systems Incorporated Declarative resizeable list in electronic form
JPWO2008146784A1 (ja) 2007-05-29 2010-08-19 株式会社Access 端末装置、ヒストリ管理方法、およびヒストリ管理の為のコンピュータ使用可能な記憶媒体
US20090085921A1 (en) 2007-10-01 2009-04-02 Lydia Mai Do Populate Web-Based Content Based on Space Availability
US8095865B2 (en) 2007-11-21 2012-01-10 Microsoft Corporation Layout manager
US8555193B2 (en) 2008-01-17 2013-10-08 Google Inc. System for intelligent automated layout and management of interactive windows
WO2009114634A1 (en) 2008-03-11 2009-09-17 Hongguag Bi Ad matching system and method thereof
US8453051B1 (en) 2008-03-31 2013-05-28 Amazon Technologies, Inc. Dynamic display dependent markup language interface
US20090279108A1 (en) 2008-05-12 2009-11-12 Nagayasu Hoshi Image Processing Apparatus
JP4547638B2 (ja) 2008-05-29 2010-09-22 ソニー株式会社 Webページ表示装置及びWebページ表示方法
US20090300120A1 (en) 2008-06-03 2009-12-03 Contec Innovations Inc. Method and system for producing a presentation message for a mobile device
CA2633177A1 (en) 2008-06-03 2009-12-03 Contec Innovations, Inc. Method and system for producing a presentation message for a mobile device
US9357075B1 (en) * 2008-06-05 2016-05-31 Avaya Inc. Conference call quality via a connection-testing phase
US8527339B2 (en) 2008-06-26 2013-09-03 Microsoft Corporation Quality based pricing and ranking for online ads
US8706547B2 (en) 2008-08-29 2014-04-22 Google Inc. Dynamic pricing for content presentations
US8438310B2 (en) 2008-10-01 2013-05-07 Adp Dealer Services, Inc. Systems and methods for configuring a website having a plurality of operational modes
US8938672B2 (en) 2008-11-04 2015-01-20 International Business Machines Corporation Amending the display property of grid elements
CN101437032B (zh) * 2008-12-19 2011-11-16 重庆邮电大学 基于sip协议的voip语音质量监测系统及检测方法
US8145561B1 (en) 2009-01-05 2012-03-27 Sprint Communications Company L.P. Phone usage pattern as credit card fraud detection trigger
JP4978629B2 (ja) 2009-01-19 2012-07-18 コニカミノルタビジネステクノロジーズ株式会社 項目設定装置、並びにその制御方法及び制御プログラム
JP5018794B2 (ja) 2009-01-20 2012-09-05 コニカミノルタビジネステクノロジーズ株式会社 印刷ジョブ出力装置、並びにその制御方法及び制御プログラム
JP4760921B2 (ja) 2009-01-28 2011-08-31 コニカミノルタビジネステクノロジーズ株式会社 項目設定装置、並びにその制御方法及び制御プログラム
US20100198694A1 (en) 2009-01-30 2010-08-05 Google Inc. Advertisement Slot Configuration
US8949582B2 (en) 2009-04-27 2015-02-03 Lsi Corporation Changing a flow identifier of a packet in a multi-thread, multi-flow network processor
US8448074B2 (en) 2009-05-01 2013-05-21 Qualcomm Incorporated Method and apparatus for providing portioned web pages in a graphical user interface
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
JP5299125B2 (ja) 2009-06-30 2013-09-25 富士ゼロックス株式会社 文書処理装置及びプログラム
JP5340088B2 (ja) 2009-09-07 2013-11-13 キヤノン株式会社 情報処理方法及び装置
JP5032543B2 (ja) 2009-09-16 2012-09-26 株式会社東芝 スケジューリング装置、方法及びプログラム
US8402379B2 (en) 2009-09-30 2013-03-19 SAP Portals Israel Limited Dynamic content layout for a user interface display
US9124642B2 (en) * 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
CN102043788A (zh) * 2009-10-21 2011-05-04 北京金石智博科技发展有限公司 基于内容比对的视频检索系统
CN102082879B (zh) * 2009-11-27 2014-07-30 华为技术有限公司 呼叫中心语音检测的方法、装置及系统
JP5186047B2 (ja) 2009-11-30 2013-04-17 楽天株式会社 オブジェクト表示装置、オブジェクト表示方法、オブジェクト表示制御プログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8428759B2 (en) * 2010-03-26 2013-04-23 Google Inc. Predictive pre-recording of audio for voice input
US8793598B2 (en) 2010-04-14 2014-07-29 Microsoft Corporation Cross-browser web dialog platform
US10467655B1 (en) 2010-04-15 2019-11-05 Quantcast Corporation Protected audience selection
US20110271194A1 (en) 2010-04-29 2011-11-03 Google Inc. Voice ad interactions as ad conversions
US9560206B2 (en) * 2010-04-30 2017-01-31 American Teleconferencing Services, Ltd. Real-time speech-to-text conversion in an audio conference session
US20130110601A1 (en) 2010-06-29 2013-05-02 Rakuten, Inc. Information processing device, information processing method, information processing program, and recording medium having information processing program recorded thereon
KR101731843B1 (ko) 2010-09-02 2017-05-02 삼성전자 주식회사 아이템 디스플레이하는 방법 및 장치
KR101045589B1 (ko) 2010-09-15 2011-07-01 주식회사 유비온 네트워크를 통해 수신한 컨텐츠의 표시장치 및 그 방법
JP2012073863A (ja) 2010-09-29 2012-04-12 Rakuten Inc 広告表示プログラム、広告表示装置、広告表示方法、記録媒体、および、広告表示システム
US10121163B2 (en) 2010-12-14 2018-11-06 Soorena Salari Apparatus, system, and method for a micro commerce ad
US20120158490A1 (en) 2010-12-16 2012-06-21 Yahoo! Inc. Sponsored search auction mechanism for rich media advertising
US20120159314A1 (en) 2010-12-16 2012-06-21 Microsoft Corporation Adaptive content layout
US8510237B2 (en) 2011-03-15 2013-08-13 Qualcomm Incorporated Machine learning method to identify independent tasks for parallel layout in web browsers
US20130007602A1 (en) 2011-06-29 2013-01-03 Apple Inc. Fixed layout electronic publications
US9396167B2 (en) 2011-07-21 2016-07-19 Flipboard, Inc. Template-based page layout for hosted social magazines
US8872855B2 (en) 2011-07-21 2014-10-28 Flipboard, Inc. Adjusting orientation of content regions in a page layout
US10630751B2 (en) 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US9020981B2 (en) 2011-09-30 2015-04-28 Comprehend Systems, Inc. Systems and methods for generating schemas that represent multiple data sources
US9760236B2 (en) 2011-10-14 2017-09-12 Georgia Tech Research Corporation View virtualization and transformations for mobile applications
US9542956B1 (en) 2012-01-09 2017-01-10 Interactive Voice, Inc. Systems and methods for responding to human spoken audio
EP2839391A4 (en) 2012-04-20 2016-01-27 Maluuba Inc CONVERSATION AGENT
WO2013162582A1 (en) * 2012-04-26 2013-10-31 Empire Technology Development Llc Multimedia application rental and billing
US9323443B2 (en) 2012-05-02 2016-04-26 International Business Machines Corporation Drilling of displayed content in a touch screen device
US20130305145A1 (en) 2012-05-09 2013-11-14 Ni Group Limited A Method of Publishing Digital Content
US20130305144A1 (en) 2012-05-09 2013-11-14 Ni Group Limited Method of Publishing Digital Content
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10607250B2 (en) 2012-06-04 2020-03-31 Facebook, Inc. Advertisement selection and pricing using discounts based on placement
US20140019462A1 (en) 2012-07-15 2014-01-16 Microsoft Corporation Contextual query adjustments using natural action input
US20140033228A1 (en) 2012-07-25 2014-01-30 Google Inc. Configuring content display dimensions
US9865008B2 (en) 2012-09-20 2018-01-09 Google Llc Determining a configuration of a content item display environment
US20140108941A1 (en) 2012-10-17 2014-04-17 Christopher Stephen Joel Method and Apparatus for Automatically Optimizing the Loading of Images in a Cloud-Based Proxy Service
US9164966B1 (en) 2012-10-24 2015-10-20 Google Inc. Determining sizes of content items
CN103873706B (zh) * 2012-12-18 2016-12-28 北京裕丰大通科技有限公司 动态智能语音识别ivr服务系统
JP6028556B2 (ja) * 2012-12-19 2016-11-16 富士通株式会社 対話制御方法及び対話制御用コンピュータプログラム
US20140180796A1 (en) 2012-12-21 2014-06-26 Sándor Sás Selecting and serving content items of different content item types for a content item slot
KR20140089876A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 대화형 인터페이스 장치 및 그의 제어 방법
CN103093752A (zh) * 2013-01-16 2013-05-08 华南理工大学 一种基于手机语音的情感分析方法及其系统
KR20140094336A (ko) * 2013-01-22 2014-07-30 삼성전자주식회사 사용자 감정 추출이 가능한 전자기기 및 전자기기의 사용자 감정 추출방법
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
KR102050897B1 (ko) * 2013-02-07 2019-12-02 삼성전자주식회사 음성 대화 기능을 구비한 휴대 단말기 및 이의 음성 대화 방법
US20140258849A1 (en) 2013-03-06 2014-09-11 Google Inc. Automatic Alignment of a Multi-Dimensional Layout
US11233841B2 (en) 2013-03-15 2022-01-25 Yottaa, Inc. Systems and methods for configuration-based optimization by an intermediary
US20140337127A1 (en) 2013-04-23 2014-11-13 Brightcove, Inc. Client bridge
US20140324582A1 (en) * 2013-04-30 2014-10-30 Google Inc. Social network enhanced content items responsive to search queries
EP2814244A1 (en) * 2013-06-11 2014-12-17 Alcatel Lucent A method and a system for improving communication quality of a video conference
US9483444B2 (en) 2013-07-09 2016-11-01 Flipboard, Inc. Dynamic layout engine for a digital magazine
US20150088970A1 (en) 2013-09-20 2015-03-26 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US10614153B2 (en) 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US10431209B2 (en) * 2016-12-30 2019-10-01 Google Llc Feedback controller for data transmissions
US9703757B2 (en) 2013-09-30 2017-07-11 Google Inc. Automatically determining a size for a content item for a web page
US10079897B2 (en) 2013-10-29 2018-09-18 Telefonaktiebolaget Lm Ericsson (Publ) Control of a chain of services
US20150278370A1 (en) * 2014-04-01 2015-10-01 Microsoft Corporation Task completion for natural language input
US10726831B2 (en) 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
US9350770B2 (en) * 2014-05-30 2016-05-24 Apple Inc. Redundant transmission channels for real-time applications on mobile devices
US9330433B2 (en) 2014-06-30 2016-05-03 Intel Corporation Data distribution fabric in scalable GPUs
US10108817B2 (en) 2014-09-26 2018-10-23 Microsoft Technology Licensing, Llc Privacy-preserving cookies for personalization without user tracking
WO2016054230A1 (en) 2014-10-01 2016-04-07 XBrain, Inc. Voice and connection platform
US9959129B2 (en) 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
US20160358367A1 (en) 2015-06-07 2016-12-08 Apple Inc. Animation based on Content Presentation Structures
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US9940929B2 (en) 2015-12-09 2018-04-10 Lenovo (Singapore) Pte. Ltd. Extending the period of voice recognition
CN105654950B (zh) * 2016-01-28 2019-07-16 百度在线网络技术(北京)有限公司 自适应语音反馈方法和装置
US11477139B2 (en) 2016-02-25 2022-10-18 Meta Platforms, Inc. Techniques for messaging bot rich communication
US9864732B2 (en) 2016-05-02 2018-01-09 Google Inc. User interfaces that facilitate management of formatting of digital content
CN106033476B (zh) 2016-05-19 2019-07-23 西安交通大学 一种云计算环境中分布式计算模式下的增量式图计算方法
CN106055662A (zh) * 2016-06-02 2016-10-26 竹间智能科技(上海)有限公司 基于情感的智能对话方法及系统
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US20180012595A1 (en) 2016-07-07 2018-01-11 Intelligently Interactive, Inc. Simple affirmative response operating system
US20180191798A1 (en) 2016-12-30 2018-07-05 Google Inc. Methods and systems for server-side rendering of native content for presentation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101029786B1 (ko) * 2006-09-13 2011-04-19 니뽄 덴신 덴와 가부시키가이샤 감정 검출 방법, 감정 검출 장치, 그 방법을 실장한 감정 검출 프로그램 및 그 프로그램을 기록한 기록 매체
US20080147388A1 (en) * 2006-12-19 2008-06-19 Mona Singh Methods And Systems For Changing A Communication Quality Of A Communication Session Based On A Meaning Of Speech Data
US20160274864A1 (en) * 2015-03-20 2016-09-22 Google Inc. Systems and methods for enabling user voice interaction with a host computing device

Also Published As

Publication number Publication date
CN108605076A (zh) 2018-09-28
JP2019174846A (ja) 2019-10-10
JP6839234B2 (ja) 2021-03-03
DE212017000030U1 (de) 2019-07-03
AU2020256315A1 (en) 2020-11-12
AU2020256315B2 (en) 2022-02-24
WO2018125303A1 (en) 2018-07-05
US20190371306A1 (en) 2019-12-05
US20180190271A1 (en) 2018-07-05
AU2017386098B2 (en) 2020-07-16
GB2564921A (en) 2019-01-30
GB201802156D0 (en) 2018-03-28
KR20190124822A (ko) 2019-11-05
AU2017386098A1 (en) 2019-05-30
DE112017000131T5 (de) 2018-09-13
JP2021089758A (ja) 2021-06-10
JP7044916B2 (ja) 2022-03-30
KR20210012049A (ko) 2021-02-02
CN112967716A (zh) 2021-06-15
EP4149097A1 (en) 2023-03-15
US10643608B2 (en) 2020-05-05
KR20180092823A (ko) 2018-08-20
US20200251103A1 (en) 2020-08-06
KR102040783B1 (ko) 2019-11-06
JP2019507397A (ja) 2019-03-14
JP6556865B2 (ja) 2019-08-07
US11475886B2 (en) 2022-10-18
KR102208990B1 (ko) 2021-01-28
EP3360313B1 (en) 2022-10-05
EP3360313A1 (en) 2018-08-15
CN108605076B (zh) 2021-02-05
US10431209B2 (en) 2019-10-01
GB2564921B (en) 2021-11-03

Similar Documents

Publication Publication Date Title
KR102415921B1 (ko) 데이터를 전송하기 위한 피드백 컨트롤러
US11627065B2 (en) Selective sensor polling
US11949733B2 (en) Audio-based data structure generation

Legal Events

Date Code Title Description
A107 Divisional application of patent
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant