KR102165262B1 - 서비스 제공자와의 세션 설정을 위한 자연어 처리 - Google Patents

서비스 제공자와의 세션 설정을 위한 자연어 처리 Download PDF

Info

Publication number
KR102165262B1
KR102165262B1 KR1020197024075A KR20197024075A KR102165262B1 KR 102165262 B1 KR102165262 B1 KR 102165262B1 KR 1020197024075 A KR1020197024075 A KR 1020197024075A KR 20197024075 A KR20197024075 A KR 20197024075A KR 102165262 B1 KR102165262 B1 KR 102165262B1
Authority
KR
South Korea
Prior art keywords
processing system
data processing
action
computing device
provider device
Prior art date
Application number
KR1020197024075A
Other languages
English (en)
Other versions
KR20190099350A (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 KR20190099350A publication Critical patent/KR20190099350A/ko
Application granted granted Critical
Publication of KR102165262B1 publication Critical patent/KR102165262B1/ko

Links

Images

Classifications

    • H04L67/327
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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
    • 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
    • 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
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/20
    • 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
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42348Location-based services which utilize the location information of a target
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • 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
    • 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

Abstract

음성으로 활성화된 데이터 패킷 기반의 컴퓨터 네트워크 환경에서 패킷화된 액션 라우팅이 제공된다. 시스템은 디바이스의 마이크로폰에 의해 감지된 오디오 신호를 수신할 수 있다. 시스템은 트리거 키워드 및 요청을 식별하도록 오디오 신호를 분석하여 액션 데이터 구조를 생성할 수 있다. 시스템은 액션 데이터 구조를 제3자 공급자 디바이스로 전송할 수 있다. 시스템은 통신 세션이 디바이스와 수립되었다는 인디케이션을 제3자 제공자 디바이스로부터 수신할 수 있다.

Description

서비스 제공자와의 세션 설정을 위한 자연어 처리{NATURAL LANGUAGE PROCESSING FOR SESSION ESTABLISHMENT WITH SERVICE PROVIDERS}
본 출원은 2016년 12월 30일자로 출원된 "오디오 기반의 데이터 구조 생성"이라는 명칭의 미국 특허 출원번호 제15/395,689호의 우선권 및 이점을 주장하고, 이는 모든 목적을 위해 그 전체가 본원에 참고로 인용된다.
컴퓨팅 디바이스간의 네트워크 트래픽 데이터의 패킷 기반 또는 다른 방식의 과도한 네트워크 전송은 컴퓨팅 디바이스가 네트워크 트래픽 데이터를 적절히 처리하거나, 네트워크 트래픽 데이터와 관련된 동작을 완료하거나, 또는 네트워크 트래픽 데이터에 적시에 응답하는 것을 방해할 수 있다. 네트워크 트래픽 데이터의 과도한 네트워크 전송은 또한 응답하는 컴퓨팅 디바이스가 처리 용량 이상인 경우 데이터 라우팅을 복잡하게 하거나 응답 품질을 저하시켜 비효율적인 대역폭 사용을 초래할 수 있다. 콘텐츠 아이템 오브젝트들에 대응하는 네트워크 전송들의 제어는 컴퓨팅 디바이스 간의 네트워크 트래픽 데이터의 네트워크 전송을 개시할 수 있는 다수의 콘텐츠 아이템 오브젝트들에 의해 복잡해질 수 있다.
본 발명은 일반적으로 이종 컴퓨팅 자원에 대한 정보 전송 및 처리의 효율성 및 효과를 개선하는 것에 관한 것이다. 이종 컴퓨팅 자원이 음성 기반 컴퓨팅 환경에서 오디오 기반 명령들을 효율적으로 처리하고 일관되고 정확하게 파싱하는 것은 어려운 일이다. 예를 들어, 이종 컴퓨팅 자원은 동일한 음성 모델을 액세스하지 못하거나 오래된 또는 비동기된 음성 모델에 액세스할 수 있어 오디오 기반 명령을 정확하고 일관되게 파싱하는 것을 어렵게 할 수 있다.
본 개시의 시스템 및 방법은 일반적으로 패킷화된 액션을 컴퓨터 네트워크를 통해 라우팅하는 데이터 처리 시스템에 관한 것이다. 데이터 처리 시스템은 음성 기반 명령을 분석하고 액션 데이터 구조를 생성하기 위해 집합 음성에 기초하여 훈련된 음성 모델을 사용하여 음성 기반 입력을 처리할 수 있다. 데이터 처리 시스템은 액션 데이터 구조를 데이터 처리 시스템 또는 제3자 공급자 디바이스의 하나 이상의 컴포넌트에 전송함으로써 제3자 공급자 디바이스가 음성 기반 입력을 처리할 필요없이 액션 데이터 구조를 처리하도록 한다. 복수의 제3자 제공자 디바이스에 대한 음성 기반 입력을 처리하여 데이터 처리 시스템은 음성 기반 명령이 처리되고 수행되는 신뢰도, 효율성 및 정확도를 향상시킬 수 있다.
적어도 하나의 양태는 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하는 시스템에 관한 것이다. 상기 시스템은 데이터 처리 시스템에 의해 실행되는 자연어 프로세서("NLP") 컴포넌트를 포함할 수 있다. NLP 컴포넌트는 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 처리 시스템의 인터페이스를 통해 수신할 수 있다. NLP 컴포넌트는 입력 오디오 신호를 파싱하여 요청과 그 요청에 해당하는 트리거 키워드를 식별할 수 있다. 데이터 처리 시스템은 다이렉트 액션 애플리케이션 프로그래밍 인터페이스( "API")를 포함할 수 있다. 다이렉트 액션 API는 트리거 키워드에 기초하여 요청에 응답하는 액션 데이터 구조를 생성할 수 있다. 다이렉트 액션 API는 액션 데이터 구조를 제3자 제공자 디바이스에 전송하여 제3자 제공자 디바이스가 대화식 애플리케이션 프로그래밍 인터페이스를 호출하게 하고 제3자 제공자 디바이스와 클라이언트 디바이스 사이의 통신 세션을 수립할 수 있다. 데이터 처리 시스템은 제3자 제공자 디바이스로부터 제3자 제공자 디바이스가 클라이언트 디바이스와 통신 세션을 수립했다는 인디케이션을 수신할 수 있다.
적어도 하나의 양태는 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하는 방법에 관한 것이다. 이 방법은 데이터 처리 시스템이 데이터 처리 시스템의 인터페이스를 통해 클라이언트 디바이스의 센서에 의해 검출된 입력 오디오 신호를 수신하는 단계를 포함할 수 있다. 상기 방법은 데이터 처리 시스템이 요청 및 요청에 해당하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 파싱하는 단계를 포함할 수 있다. 상기 방법은 데이터 처리 시스템이 트리거 키워드에 기초하여 요청에 응답하는 액션 데이터 구조를 생성하는 단계를 포함할 수 있다. 상기 방법은 데이터 처리 시스템이 액션 데이터 구조를 제3자 공급자 디바이스로 전송하여 제3자 공급자 디바이스가 대화식 응용 프로그래밍 인터페이스를 호출하게 하고 제3자 공급자 디바이스와 클라이언트 디바이스 사이의 통신 세션을 수립시키는 단계를 포함할 수 있다. 상기 방법은 데이터 처리 시스템이 제3자 제공자 디바이스로부터 제3자 제공자 디바이스가 클라이언트 디바이스와의 통신 세션을 수립했다는 인디케이션을 수신하는 단계를 포함할 수 있다.
이하, 이들 및 다른 양상들 및 구현 예들이 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양상 및 구현의 예시적인 실시예를 포함하고 청구 된 양상 및 구현의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 측면들 및 구현들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어이 명세서의 일부를 구성한다.
데이터 처리 시스템은 액션 데이터 구조를 데이터 처리 시스템 또는 제3자 공급자 디바이스의 하나 이상의 컴포넌트에 전송함으로써 제3자 공급자 디바이스가 음성 기반 입력을 처리할 필요없이 액션 데이터 구조를 처리하도록 한다. 복수의 제3자 제공자 디바이스에 대한 음성 기반 입력을 처리하여 데이터 처리 시스템은 음성 기반 명령이 처리되고 수행되는 신뢰도, 효율성 및 정확도를 향상시킬 수 있다.
첨부 도면은 실제 크기로 그려지는 것은 아니다. 다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 엘리먼트를 나타낸다. 명확하게 하기 위해 모든 컴포넌트가 모든 도면에 레이블로 표시되지는 않는다.
도 1은 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하기 위한 시스템을 도시하는 도면이다.
도 2는 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하기 위한 시스템 동작을 도시하는 도면이다.
도 3은 컴퓨터 네트워크를 통해 패킷화된 액션들을 라우팅하기 위한 시스템 동작을 도시하는 도면이다.
도 4는 컴퓨터 네트워크를 통해 패킷화된 액션을 라우팅하는 방법을 도시하는 도면이다.
도 5는 본 명세서에 설명되고 도시된 시스템 및 방법의 엘리먼트를 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 도시하는 도면이다.
이하는 컴퓨터 네트워크를 통해 패킷화된 액션들을 라우팅하는 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현의 보다 상세한 설명이다. 위에서 소개되고 아래에서보다 상세하게 논의되는 다양한 개념은 다양한 방법으로 구현될 수 있다.
본 개시는 일반적으로 이종 컴퓨팅 자원에 대한 정보 전송 및 처리의 효율성(efficiency) 및 효과(effectiveness)를 개선하는 것에 관한 것이다. 이종 컴퓨팅 자원이 음성 기반 컴퓨팅 환경에서 오디오 기반 명령을 효율적으로 처리하고 일관성있고 정확하게 파싱하는 것은 어려운 일이다. 예를 들어, 이종 컴퓨팅 자원은 동일한 음성 모델에 액세스하지 못하거나 오래된 또는 비동기된 음성 모델에 액세스할 수 있어 오디오 기반 명령을 정확하고 일관되게 파싱하는 것을 어렵게 할 수 있다.
본 개시의 시스템 및 방법은 일반적으로 패킷화된 액션(packetized actions)을 컴퓨터 네트워크를 통해 라우팅하는 데이터 처리 시스템에 관한 것이다. 데이터 처리 시스템은 통합(aggregate) 음성에 기초하여 훈련된 음성 모델을 특별히 사용하여 음성 기반 입력을 처리하여 음성 기반 명령을 분석(parse)하고 액션 데이터 구조를 생성할 수 있다. 데이터 처리 시스템은 액션 데이터 구조를 데이터 처리 시스템 또는 제3자 공급자 디바이스의 하나 이상의 컴포넌트로 전송하여, 제3자 공급자 디바이스가 음성 기반 입력을 처리할 필요없이 액션 데이터 구조를 처리할 수 있도록 한다. 복수의 제3자 제공자 디바이스를 위한 음성 기반 입력을 처리함으로써 데이터 처리 시스템은 음성 기반 명령이 처리되고 수행되는 신뢰도, 효율성 및 정확도를 향상시킬 수 있다.
본 솔루션은 최종 사용자로부터의 음성 기반 명령을 파싱하고, 템플릿을 이용하여 액션 데이터 구조를 구성하고, 및 액션 데이터 구조를 대응하는 제3자 공급자에게 파싱함으로써 스피커에 의해 소비되는 자원 소비, 프로세서 사용, 배터리 소비, 대역폭 사용, 오디오 파일의 크기 또는 시간 양을 감소시킬 수 있다.
도 1은 패킷화된 액션들을 컴퓨터 네트워크를 통해 라우팅하는 예시적인 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 선택 인프라구조를 포함할 수 있다. 시스템(100)은 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 하나 이상의 콘텐츠 제공자 컴퓨팅 디바이스(106), 서비스 제공자 컴퓨팅 디바이스(108) 또는 클라이언트 컴퓨팅 디바이스(104)와 통신할 수 있다. 네트워크(105)는 인터넷, 로컬(local), 광역(wide), 메트로(metro) 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크와 같은 컴퓨터 네트워크와, 음성 또는 데이터 이동 전화 네트워크와 같은 다른 통신 네트워크를 포함할 수 있다. 네트워크(105)는 랩탑, 데스크탑, 태블릿, 개인 휴대 정보 단말기, 스마트 폰, 휴대용 컴퓨터 또는 스피커와 같은 적어도 하나의 컴퓨팅 디바이스(104)에 제공(present), 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름, 또는 URL(uniform resource locator)과 같은 정보 자원을 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 컴퓨팅 디바이스(104)의 사용자는 서비스 제공자(108) 또는 콘텐츠 제공자(106)에 의해 제공된 정보 또는 데이터를 액세스할 수 있다. 컴퓨팅 디바이스(104)는 디스플레이를 포함할 수도 포함하지 않을 수도 있는데, 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우에서, 컴퓨팅 장치(104)의 주(primary) 사용자 인터페이스는 마이크로폰과 스피커일 수 있다.
네트워크(105)는 디스플레이 네트워크, 예를들어 콘텐츠 배치 또는 검색 엔진 결과 시스템과 연관되거나 또는 콘텐츠 아이템 배치 캠페인의 일부로서 제3자 콘텐츠 아이템을 포함할 자격이 있는 인터넷에서 이용 가능한 정보 자원의 서브 세트를 포함하거나 구성할 수 있다. 네트워크(105)는 데이터 처리 시스템(102)에 의해 사용되어, 웹 페이지, 웹 사이트, 도메인 이름 또는 클라이언트 컴퓨팅 장치 (104)에 의해 제공, 출력, 렌더링 또는 디스플레이될 수 있는 URL(uniform resource locator)과 같은 정보 자원을 억세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(104)의 사용자는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 서비스 제공자 컴퓨팅 디바이스(108)에 의해 제공된 정보 또는 데이터를 액세스할 수 있다.
네트워크(105)는 임의 유형 또는 형태의 네트워크일 수 있으며, 점대점 (point-to-point) 네트워크, 브로드 캐스트 네트워크, 광역 네트워크, 로컬 영역 네트워크, 원격 통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM (Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타(star) 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 진보된 모바일 전화 프로토콜("AMPS"), 시분할 다중 접속("TDMA"), 코드 분할 다중 접속("CDMA"), 이동 통신용 범용 시스템("GSM"), 범용 패킷 무선 서비스 ("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는, 모바일 디바이스들간의 통신에 사용된 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터가 상이한 프로토콜을 통해 전송되거나 동일한 유형의 데이터가 상이한 프로토콜을 통해 전송될 수 있다.
시스템(100)은 적어도 하나의 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 예를 들어 컴퓨팅 디바이스(104)와 네트워크(105)를 통해 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스, 콘텐츠 제공자 디바이스 (106)(콘텐츠 제공자 106) 또는 서비스 제공자 디바이스(108)(또는 서비스 제공자 108)과 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 계산 자원, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 적어도 하나의 데이터 센터에 위치된 복수의 계산 자원 또는 서버를 포함할 수 있다. 데이터 처리 시스템(102)은 논리적으로 그룹화된 다수의 서버를 포함할 수 있고 분산 컴퓨팅 기술을 용이하게 할 수 있다. 논리적 서버 그룹은 데이터 센터, 서버 팜(fam) 또는 기계 팜이라고 할 수 있다. 서버는 또한 지리적으로 분산될 수 있다. 데이터 센터 또는 기계 팜은 단일 엔터티(entity)로서 관리될 수 있거나 기계 팜은 복수의 기계 팜을 포함할 수 있다. 각 시스템 팜 내의 서버들은 하나 이상의 서버 또는 시스템이 하나 이상의 운영 체제 플랫폼 유형에 따라 작동할 수 있는 이종 서버일 수 있다.
기계 팜에 있는 서버들은 관련 저장 시스템과 함께 고밀도 랙(rack) 시스템에 저장될 수 있으며 기업(enterprise) 데이터 센터에 위치할 수 있다. 예를 들어 이러한 방식으로 서버를 통합하면 지역화된 고성능 네트워크 상에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성(manageability), 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하는 데이터 처리 시스템(102) 컴포넌트의 전부 또는 일부를 집중화하고, 이들을 통합(advanced) 시스템 관리 툴과 결합시키는 것은 서버 자원의 보다 효율적인 사용을 가능케 하므로 전력 및 처리 요구 사항을 절약하고 대역폭 사용을 줄일 수 있게 한다.
시스템(100)은 적어도 하나의 서비스 제공자 디바이스(108)를 포함하고, 액세스하고, 또는 상호 작용할 수 있다. 서비스 제공자 디바이스 (108)는 네트워크(105)를 통해 예를 들어, 컴퓨팅 디바이스(104), 데이터 처리 시스템 (102) 또는 콘텐츠 제공자(106)와 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 서비스 제공자 디바이스(108)는 적어도 하나의 계산 자원, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 서비스 제공자 디바이스(108)는 적어도 하나의 데이터 센터에 위치한 복수의 계산 자원 또는 서버를 포함할 수 있다. 서비스 제공자 디바이스(108)는 데이터 처리 시스템(102)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 클라이언트 컴퓨팅 디바이스(104)의 디스플레이를 위해 오디오 출력 콘텐츠 아이템으로서 오디오 기반 콘텐츠 아이템들을 제공할 수 있다. 콘텐츠 아이템은 "택시를 불러 드릴까요 ?" 라고 하는 음성 기반 메시지와 같은 상품(good) 또는 서비스를 위한 제안(offer)을 포함할 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(155)는 보이스 기반 질의에 응답하여 제공될 수 있는 일련의 오디오 콘텐츠 아이템들을 저장하기 위하여 메모리를 포함할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 또한 오디오 기반 콘텐츠 아이템(또는 다른 콘텐츠 아이템)을 데이터 처리 시스템(102)에 제공하여 데이터 저장소(124)에 저장될 수 있도록 할 수 있다. 데이터 처리 시스템(102)은 오디오 콘텐츠 아이템을 선택하여 오디오 콘텐츠 아이템을 클라이언트 컴퓨팅 디바이스(104)에 제공할 수 있다(또는 제공하도록 콘텐츠 제공자 컴퓨팅 디바이스(104)에 표시할 수 있다). 오디오 기반 콘텐츠 아이템들은 전적으로 오디오일 수 있거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다.
서비스 제공자 디바이스(108)는 적어도 하나의 서비스 제공자 자연어 프로세서 컴포넌트(142)와 서비스 제공자 인터페이스(144)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 서비스 제공자 컴퓨팅 디바이스(108)는 적어도 하나의 서비스 제공자 자연어 프로세서(NLP) 컴포넌트(142)와 적어도 하나의 서비스 제공자 인터페이스(144)를 포함할 수 있다. 서비스 제공자 NLP 컴포넌트(142)(또는 서비스 제공자 컴퓨팅 디바이스(108)의 다이렉트 액션 API와 같은 다른 컴포넌트들)는 클라이언트 컴퓨팅 디바이스(104)와 서비스 제공자 컴퓨팅 디바이스(108) 사이에서 전후 실시간 음성(back-and-forth real-time voice) 또는 오디오 기반 대화(예를 들어, 세션)를 생성하기 위하여 클라이언트 컴퓨팅 디바이스(104)(데이터 처리 시스템 102 또는 클라이언트 컴퓨팅 디바이스 104 바이패싱을 통해)와 협력할 수 있다. 서비스 제공자 NLP(142)는 데이터 처리 시스템(102)의 NLP 컴포넌트(112)로서 적어도 하나의 기능 또는 특징을 포함할 수 있다. 예를 들어, 서비스 제공자 인터페이스(144)는 데이터 처리 시스템(102)의 다이렉트 액션 API(116)에 데이터 메시지를 수신하거나 제공할 수 있다. 서비스 제공자 컴퓨팅 디바이스(108)와 콘텐츠 제공자 컴퓨팅 디바이스(106)는 동일한 엔터티와 연관될 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 차 공유(car sharing) 서비스에 대한 콘텐츠 아이템을 생성, 저장 또는 이용 가능하게 할 수 있으며, 서비스 제공자 컴퓨팅 디바이스(108)는 클라이언트 컴퓨팅 디바이스(106)와 세션을 수립(establish)하여, 클라이언트 컴퓨팅 디바이스(104)의 최종 사용자를 픽업하기 위한 차 공유 서비스의 택시 또는 자동차의 교부를 예약할 수 있다. 데이터 처리 시스템(102), NLP 컴포넌트(112) 또는 다른 컴포넌트들은 또한 다이렉트 액션 API(116)를 통해, 서비스 제공자 컴퓨팅 디바이스(104)를 포함하거나 바이패싱하는 클라이언트 컴퓨팅 디바이스와 세션을 수립하여 예를들어 차 공유 서비스의 택시 또는 자동차의 교부를 예약할 수 있다.
컴퓨팅 디바이스(104)는 적어도 하나의 센서(134), 변환기(transducer) (136), 오디오 드라이버(138) 또는 전처리부(140)를 포함할 수 있고, 인터페이스할 수 있고, 또는 통신할 수 있다. 센서(134)는 예를 들어 주변 광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 동작 감지기, GPS센서, 위치 센서, 마이크로폰 또는 터치 센서를 포함할 수 있다. 변환기(136)는 스피커 또는 마이크로폰을 포함할 수 있다. 오디오 드라이버는 소프트웨어 인터페이스를 하드웨어 변환기(136)로 제공할 수 있다. 오디오 드라이버는 대응하는 음향파(acoustic wave) 또는 음파(sound wave)를 발생하도록 변환기(136)를 제어하기 위해 데이터 처리 시스템(102)에 의해 제공된 오디오 파일 또는 다른 명령들을 실행할 수 있다. 전처리부(140)는 키워드를 검출하고 키워드에 기초하여 액션을 수행하도록 구성될 수 있다. 전처리부(140)는 하나 이상의 용어를 필터링하거나 추가 처리를 위하여 용어들을 데이터 처리 시스템(102)으로 전송하기 전에 용어들을 수정할 수 있다. 전처리부(140)는 마이크로폰에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환할 수 있고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 데이터 처리 시스템(102)으로 전송할 수 있다. 일부 경우에서, 전처리부(140)는 그러한 전송을 수행하라는 명령 검출에 반응하는 입력 오디오 신호의 일부 또는 전부를 운반하는 데이터 패킷을 전송할 수 있다. 명령은 예를 들어 트리거 키워드 또는 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 처리 시스템(102)으로 전송하기 위한 다른 키워드 또는 승인을 포함할 수 있다.
클라이언트 컴퓨팅 디바이스(104)는 변환기(136)(예를 들어, 스피커)로부터 출력된 오디오 입력으로서 음성 질의들을 클라이언트 컴퓨팅 디바이스(104)(센서 (134)를 통해)로 입력하여, 데이터 처리 시스템 (102)(또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 서비스 제공자 컴퓨팅 디바이스(108))으로부터 제공될 수 있는 컴퓨터 생성 음성의 형태로 오디오 출력을 수신하는 최종 사용자와 연관될 수 있다. 컴퓨터 생성 음성은 실제 사람 또는 컴퓨터가 생성한 언어의 녹음을 포함할 수 있다.
데이터 저장소(124)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있으며, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(124)는 컴퓨터 데이터 스토리지 또는 메모리를 포함할 수 있고, 다른 데이터 중에서 하나 이상의 파라미터(126), 하나 이상의 정책(policy)(128), 콘텐츠 데이터(130) 또는 템플릿(132)을 저장할 수 있다. 파라미터(126), 정책(128) 및 템플릿(132)은 클라이언트 컴퓨팅 디바이스(104)와 데이터 처리 시스템(102)(또는 서비스 제공자 컴퓨팅 디바이스(108)) 사이의 음성 기반 세션에 관한 규칙과 같은 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 클라이언트 컴퓨팅 디바이스(104)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지뿐만 아니라 오디오 출력 또는 관련 메타 데이터에 대한 콘텐츠 아이템을 포함할 수 있다.
데이터 처리 시스템(102)은 적어도 하나의 계산 자원 또는 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 인터페이스(110)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 자연어 프로세서 컴포넌트(112)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 다이렉트 액션 애플리케이션 프로그래밍 인터페이스("API")(116)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 세션 핸들러 (114)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템 (102)은 적어도 하나의 콘텐츠 선택기 컴포넌트(118)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 오디오 신호 발생기(122)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 데이터 저장소(124)를 포함하고, 인터페이스하고, 또는 통신할 수 있다. 적어도 하나의 데이터 저장소(124)는 적어도 하나의 데이터 구조 또는 데이터베이스에, 파라미터(126), 정책(128), 콘텐츠 데이터(130) 또는 템플릿 (132)을 포함하거나 저장할 수 있다. 파라미터(126)는 예를 들면, 임계값, 거리, 시간 간격, 지속 시간, 스코어 (score) 또는 웨이트(weight)를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어 콘텐츠 제공자(106)에 의해 제공되거나 콘텐츠 선택을 용이하게 하기 위해 데이터 처리 시스템에 의해 획득되거나 결정되는 콘텐츠 캠페인 정보, 콘텐츠 그룹, 콘텐츠 선택 기준(criteria), 콘텐츠 아이템 오브젝트 또는 다른 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어 콘텐츠 캠페인의 이력 성능(historical perfrormance)을 포함할 수 있다.
인터페이스(110), 자연어 프로세서 컴포넌트(112), 세션 핸들러(114), 다이렉트 액션 API(116), 콘텐츠 선택기 컴포넌트(118) 또는 오디오 신호 발생기 컴포넌트(122)는 각각 적어도 하나의 처리 유닛 또는 프로그래머블 로직 어레이 엔진과 같은 다른 로직 디바이스, 또는 데이터베이스 저장소 또는 데이터베이스(124)와 통신하도록 구성된 모듈을 포함할 수 있다. 인터페이스(110), 자연어 프로세서 컴포넌트(112), 세션 핸들러(114), 다이렉트 액션 API(116), 콘텐츠 선택기 컴포넌트 (118), 오디오 신호 생성기 컴포넌트(122) 및 데이터 저장소(124)는 개별 컴포넌트, 단일 컴포넌트 또는 데이터 처리 시스템(102)의 일부일 수 있다. 데이터 처리 시스템(102)과 같은 시스템(100) 및 그 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
데이터 처리 시스템(102)은 복수의 컴퓨팅 디바이스(104)와 관련된 익명의 컴퓨터 네트워크 액티비티(activity) 정보를 얻을 수 있다. 컴퓨팅 디바이스(104)의 사용자는 데이터 처리 시스템(102)을 긍정적으로 인증하여 사용자의 컴퓨팅 디바이스에 대응하는 네트워크 액티비티 정보를 획득할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)의 사용자에게 하나 이상의 유형의 네트워크 액티비티 정보를 얻기 위한 동의를 촉구할 수 있다. 컴퓨팅 디바이스(104)의 사용자 신원(identity)은 익명으로 유지될 수 있고, 컴퓨팅 디바이스(104)는 고유 식별자(예를 들어, 데이터 처리 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공된 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 데이터 처리 시스템은 각 관찰(observation)을 대응하는 고유 식별자와 연관시킬 수 있다.
콘텐츠 제공자(106)는 전자 콘텐츠 캠페인을 수립할 수 있다. 전자 콘텐츠 캠페인은 데이터 저장소(124)에 콘텐츠 데이터(130)로서 저장될 수 있다. 전자 콘텐츠 캠페인은 공통 테마에 대응하는 하나 이상의 콘텐츠 그룹을 지칭할 수 있다. 콘텐츠 캠페인은 콘텐츠 그룹, 콘텐츠 아이템 데이터 오브젝트 및 콘텐츠 선택 기준을 포함하는 계층적 데이터 구조가 포함될 수 있다. 콘텐츠 캠페인을 생성하기 위해, 콘텐츠 제공자(106)는 콘텐츠 캠페인의 캠페인 레벨 파라미터에 대한 값을 지정할 수 있다. 캠페인 레벨 파라미터는 예를 들어, 캠페인 이름, 콘텐츠 아이템 오브젝트를 배치하기 위한 선호(preferred) 콘텐츠 네트워크, 콘텐츠 캠페인에 사용될 자원의 값, 콘텐츠 캠페인의 시작 및 종료 날짜, 콘텐츠 캠페인의 지속 기간, 콘텐츠 아이템 오브젝트 배치를 위한 스케줄, 언어, 지리적 위치, 콘텐츠 아이템 오브젝트를 제공할 컴퓨팅 디바이스의 유형을 포함할 수 있다. 일부 경우에, 노출 (impression)은 콘텐츠 아이템 오브젝트가 소스(예를 들어, 데이터 처리 시스템(102) 또는 콘텐츠 제공자(106))로부터 인출된(fetched) 때를 지칭할 수 있으며, 카운트될 수 있다. 일부 경우에, 클릭 사기(click fraud)의 가능성으로 인해 로봇 액티비티는 노출로서 필터링되고 제외될 수 있다. 따라서, 일부 경우에 노출은 웹 서버에서 로봇의 액티비티 및 오류 코드로 필터링된 브라우저의 페이지 요청에 대한 응답의 측정을 지칭할 수 있으며, 컴퓨팅 디바이스(104)에 디스플레이하기 위한 콘텐츠 아이템 오브젝트를 렌더링할 수 있는 기회에 가능한 한 가까운 지점에 기록된다. 일부 경우에, 노출은 가시적(viewable) 또는 청각적(audiable) 노출을 지칭할 수 있는데, 예를 들어, 콘텐츠 아이템 오브젝트는 클라이언트 컴퓨팅 디바이스(104)의 디스플레이 디바이스상에서 적어도 부분적으로(예를 들어, 20%, 30%, 30%, 40%, 50%, 60%, 70% 또는 그 이상) 볼 수 있거나 컴퓨팅 디바이스(104)의 스피커(136)를 통해 들을 수 있다. 클릭 또는 선택은 청각적 노출에 대한 음성 응답, 마우스 클릭, 터치 인터랙션(interaction), 제스처, 흔들기, 오디오 인터랙션, 또는 키보드 클릭과 같은 콘텐츠 아이템 오브젝트와의 사용자 인터렉션을 지칭할 수 있다. 전환(conversion)은 콘텐츠 아이템 오브젝션에 대하여 원하는 액션을 취하는, 예를 들어 상품 또는 서비스 구매, 설문 조사 완료, 콘텐츠 아이템에 대응하는 물리적 매장 방문 또는 전자 결제를 수행하는 사용자를 지칭할 수 있다.
콘텐츠 제공자(106)는 콘텐츠 캠페인에 대한 하나 이상의 콘텐츠 그룹을 더 설정할 수 있다. 콘텐츠 그룹은 키워드, 단어, 용어, 구문, 지리적 위치, 컴퓨팅 디바이스의 유형, 시간, 관심 분야, 주제 또는 업종(vertical)과 같은 하나 이상의 콘텐츠 아이템 오브젝트 및 대응하는 콘텐츠 선택 기준을 포함한다. 동일한 콘텐츠 캠페인에 속한 콘텐츠 그룹은 동일한 캠페인 레벨 파라미터를 공유할 수 있지만, 키워드, 네거티브(negative) 키워드(예를 들어, 메인 콘텐츠 상에 네거티브 키워드가 있는 상태에서 콘텐츠 아이템 배치 차단하는 등), 키워드에 대한 입찰가, 또는 입찰가 또는 콘텐츠 캠페인과 관련된 파라미터와 같은, 특정 콘텐츠 그룹 레벨 파라미터에 대한 맞춤형 사양을 가질 수 있다.
새로운 콘텐츠 그룹을 생성하기 위해, 콘텐츠 제공자는 콘텐츠 그룹의 콘텐츠 그룹 레벨 파라미터에 대한 값을 제공할 수 있다. 콘텐츠 그룹 레벨 파라미터는 예를 들어, 콘텐츠 그룹명 또는 콘텐츠 그룹 테마, 및 상이한 콘텐츠 배치 기회 (예를 들어, 자동 배치 또는 관리 배치)에 대한 입찰가 또는 결과(예를 들어, 클릭 수, 노출 또는 전환)를 포함할 수 있다. 콘텐츠 그룹명 또는 콘텐츠 그룹 테마는 콘텐츠 그룹의 콘텐츠 아이템 오브젝트가 디스플레이를 위해 선택해야 하는 주제(topic) 또는 주제(subject matter)를 포착하기 위해 콘텐츠 제공자(106)가 사용할 수 있는 하나 이상의 용어 일 수 있다. 예를 들어, 자동차 대리점에서는 운반하는 차량 브랜드별로 상이한 콘텐츠 그룹을 만들 수 있고, 운반하는 차량 모델별로 상이한 콘텐츠 그룹을 더 만들 수 있다. 자동차 대리점이 사용할 수 있는 콘텐츠 그룹 테마의 예는 "A 스포츠카 만들기", "B 스포츠카 만들기", "C 세단 만들기", "C 트럭 만들기", "C 하이브리드 만들기" 또는 "D 하이브리드 만들기"를 예로 들 수 있다. 예시 콘텐츠 캠페인 테마는 "하이브리드"일 수 있으며, 예를 들어 "C 하이브리드 만들기" 및 "D 하이브리드 만들기" 모두에 대한 콘텐츠 그룹을 포함할 수 있다.
콘텐츠 제공자(106)는 하나 이상의 키워드 및 콘텐츠 아이템 오브젝트를 각 콘텐츠 그룹에 제공할 수 있다. 키워드는 콘텐츠 아이템 오브젝트와 관련되거나 콘텐츠 아이템 오브젝트에 의해 식별되는 제품 또는 서비스와 관련된 용어를 포함할 수 있다. 키워드는 하나 이상의 용어 또는 구를 포함할 수 있다. 예를 들어, 자동차 대리점은 콘텐츠 그룹 또는 콘텐츠 캠페인의 키워드로 "스포츠카", "V-6 엔진", "4륜 구동", "연료 효율"을 포함할 수 있다. 일부 경우에, 네거티브 키워드들이 특정 용어 또는 키워드에 대한 콘텐츠 배치를 회피, 방지, 차단 또는 디스에이블하기 위하여 콘텐츠 공급자에 의해 지정될 수 있다. 콘텐츠 공급자는 콘텐츠 아이템 오브젝트를 선택하는데 사용되는 완전 매치(exact match), 구문(phase) 매치 또는 브로드(broad) 매치와 같은 매칭 유형을 지정할 수 있다.
콘텐츠 제공자(106)는 콘텐츠 제공자(106)에 의해 제공된 콘텐츠 아이템 오브젝트를 선택하도록 데이터 처리 시스템(102)에 의해 사용될 하나 이상의 키워드를 제공할 수 있다. 콘텐츠 제공자(106)는 입찰할 하나 이상의 키워드를 식별할 수 있고, 다양한 키워드에 대해 입찰가를 더 제공할 수 있다. 콘텐츠 제공자(106)는 콘텐츠 아이템 오브젝트를 선택하기 위해 데이터 처리 시스템(102)에 의해 사용될 추가적인 콘텐츠 선택 기준을 제공할 수 있다. 다수의 콘텐츠 제공자(106)는 동일하거나 상이한 키워드에 입찰할 수 있고, 데이터 처리 시스템(102)은 전자 메시지의 키워드의 인디케이션을 수신하는 것에 응답하는 콘텐츠 선택 프로세스 또는 광고 경매(ad auction)를 실행할 수 있다.
콘텐츠 제공자(106)는 데이터 처리 시스템(102)의 선택을 위해 하나 이상의 콘텐츠 아이템 오브젝트를 제공할 수 있다. 데이터 처리 시스템(102)(예를 들어, 콘텐츠 선택기 컴포넌트(118)를 통해)은 콘텐츠 배치 기회가 이용 가능하고 자원 할당, 콘텐츠 일정, 최대 입찰가, 키워드, 및 콘텐츠 그룹에 대해 지정된 다른 선택 기준과 일치(match)할 때 콘텐츠 아이템 오브젝트를 선택할 수 있다. 상이한 유형의 콘텐츠 아이템 오브젝트가 음성 콘텐츠 아이템, 오디오 콘텐츠 아이템, 텍스트 콘텐츠 아이템, 이미지 콘텐츠 아이템, 비디오 콘텐츠 아이템, 멀티미디어 콘텐츠 아이템 또는 콘텐츠 아이템 링크와 같은 콘텐츠 그룹에 포함될 수 있다. 콘텐츠 아이템 선택시, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 디스플레이 디바이스 상에 렌더링하기 위하여 콘텐츠 아이템 오브젝트를 전송할 수 있다. 렌더링은 디스플레이 디바이스 상에 콘텐츠 아이템을 디스플레이하는 것 또는 컴퓨팅 디바이스(104)의 스피커를 경유하여 콘텐츠 아이템을 디스플레이하는 것을 포함할 수 있다. 데이터 처리 시스템(102)은 콘텐츠 아이템 오브젝트를 렌러딩하도록 컴퓨팅 디바이스(104)로 명령을 전송할 수 있다. 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 오디오 드라이버(138)에게 오디오 신호 또는 음향파를 생성하도록 명령할 수 있다.
데이터 처리 시스템(102)은 예를 들어 데이터 패킷들을 사용하여 정보를 수신하고 송신하도록 설계(designed)된, 구성(configured)된, 수립(constructed)된 또는 동작하는(operational) 인터페이스 컴포넌트(110)를 포함할 수 있다. 인터페이스(110)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신하고 전송할 수 있다. 인터페이스(110)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(110)는 하나의 포맷에서 다른 포맷으로 데이터를 변환(translating) 또는 포맷팅하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(110)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트 사이에서 통신하기 위한 정의(definition)들을 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다.
데이터 처리 시스템(102)은 입력 오디오 신호를 데이터 처리 시스템(102)의 인터페이스(110)로 전달하고 출력 오디오 신호를 렌더링하기 위해 클라이언트 컴퓨팅 디바이스의 컴포넌트를 구동시키는 애플리케이션과 같은, 클라이언트 컴퓨팅 디바이스(104)에 설치된 애플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 처리 시스템(102)은 데이터 패킷 또는 오디오 입력 신호를 포함하거나 식별하는 다른 신호를 수신할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 오디오 신호를 수신 또는 획득하여 오디오 신호를 파싱하도록 NLP 컴포넌트(112)를 실행 또는 구동할 수 있다. 예를 들어, NLP 컴포넌트(112)는 인간과 컴퓨터 간의 인터렉션(inteaction, 상호 작용)을 제공할 수 있다. NLP 컴포넌트(112)는 자연어를 이해하고 데이터 처리 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록하는 기술로 구성될 수있다. NLP 컴포넌트(112)는 통계적 기계 학습과 같은 기계 학습에 기초한 기술을 포함하거나 기술로 구성될 수 있다. NLP 컴포넌트(112)는 결정 트리, 통계 모델 또는 확률 모델을 이용하여 입력 오디오 신호를 분석할 수 있다. NLP 컴포넌트(112)는 예를 들어, 명명된 엔터티 인식(entity recognition)(예를 들어, 텍스트 스트림이 주어지면 텍스트 맵에서 어떤 아이템이 사람 또는 장소와 같은 이름에 적절한지 그리고 그러한 각 이름의 어떤 유형이 사람, 위치 또는 조직과 같은 것인지 결정하는 것), 자연어 생성(예를 들어, 정보를 컴퓨터 데이터베이스 또는 시맨틱 의도(semantic intents)로부터 이해 가능한 인간 언어로 변환), 자연어 이해(예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수있는 1차 논리 구조와 같은 보다 공식적인 표현(formal representation)으로 변환), 기계 번역(예를 들어, 한 언어에서 다른 언어로 텍스트 자동 번역), 형태학적 분할(morphological segmentation)(예를 들어, 단어를 개별적인 형태소(morpheme)로 분리하여, 모폴로지(morphology)의 복잡성 또는 고려될 언어의 단어 구조에 기초하여 도전할 수 있는 형태소의 클래스를 식별함), 질문 응답(예를 들어, 구체적이거나 개방적일 수 있는 인간어 질문에 대한 대답 결정), 시맨틱 처리(예를 들어, 식별된 단어를 유사한 의미의 다른 단어와 관련시키기 위해 단어를 식별하고 그 의미를 인코딩한 후에 발생할 수 있는 처리)와 같은 기능들을 수행할 수 있다.
NLP 컴포넌트(112)는 입력 신호를 저장된 대표 오디오 파형(예를 들어, 데이터 저장소(124)에서) 세트와 비교하여 가장 유사한 매칭을 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환한다. 오디오 파형의 세트는 데이터 저장소(124) 또는 데이터 처리 시스템(102)에 액세스할 수 있는 다른 데이터베이스에 저장될 수 있다. 대표 오디오 파형은 대규모(large) 사용자 세트를 통해 생성되고, 그런 다음 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(112)는 텍스트를, 예를 들어 사용자를 통한 또는 수동 사양 (manual specification)을 통한 훈련을 통해 데이터 처리 시스템(102)이 제공할 수 있는 액션과 연관된 단어에 매칭시킨다
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(104)의 센서(134) 또는 변환기(136)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기(136), 오디오 드라이버(138) 또는 다른 컴포넌트를 통해, 클라이언트 컴퓨팅 장치(104)는 수신될(예를 들어, 인터페이스(110)에 의해) 수 있고, NLP 컴포넌트(112)로 제공될 수 있거나 데이터 저장소(124)에 저장될 수 있는 오디오 입력 신호를 데이터 처리 시스템(102)(예를 들어, 네트워크(105)를 통해)으로 제공할 수 있다.
NLP 컴포넌트(112)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(112)는 적어도 하나의 요청 또는 요청에 대응하는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 나타낼 수 있다. 트리거 키워드는 취할 수 있는 액션의 유형을 나타낼 수 있다. 예를 들어, NLP 컴포넌트(112)는 저녁 식사 및 영화에 참석하기 위해 저녁에 집을 떠나기 위한 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 분석할 수 있다. 트리거 키워드는 취할 액션을 나타내는 적어도 하나의 단어, 구문, 루트 (root) 또는 부분(partial) 단어 또는 파생어가 포함될 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 이동의 필요성(need for transfort)을 나타낼 수 있다. 이 예에서 입력 오디오 신호(또는 식별된 요청)는 이동의 의도를 직접적으로 나타내지 않지만 트리거 키워드는 이동이 요청에 의해 표시되는 적어도 하나의 다른 액션에 대한 보조 액션임을 나타낸다.
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", "someone", "that", "could", or "help"와 같이 하나 이상의 용어를 필터링할 수 있다. 이 용어들을 필터링함으로써 NLP 컴포넌트(112)는 "go to the airport"("공항에 가다")와 같은 트리거 키워드를 보다 정확하고 신뢰성 있게 식별할 수 있고, 이것이 택시 또는 합승(ride sharing) 서비스를 요청하는 것인지 결정할 수 있다.
일부 경우, NLP 컴포넌트는 입력 오디오 신호를 운반하는 데이터 패킷이 하나 이상의 요청을 포함하는지 결정할 수 있다. 예를 들어, 입력 오디오 신호는 "I need someone to do my laundry and my dry cleaning"라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 이 문장이 세탁 서비스 및 드라이 클리닝 서비스에 대한 요청임을 결정할 수 있다. NLP 컴포넌트(112)는 이 문장이 세탁 서비스와 드라이 클리닝 서비스 모두를 제공할 수 있는 서비스 제공자에 대한 단일 요청임을 결정할 수 있다. NLP 컴포넌트(112)는 이 문장이 2개의 요청인, 세탁 서비스를 제공하는 서비스 제공자에 대한 제1요청과 드라이 클리닝 서비스를 제공하는 서비스 제공자에 대한 제2요청임을 결정할 수 있다. 일부 경우에, NLP 컴포넌트(112)는 다수의 결정된 요청을 단일 요청으로 결합하여 단일 요청을 서비스 제공자 디바이스(108)로 전송할 수 있다. 일부 경우에, NLP 컴포넌트(112)는 개별의 요청을 각각의 서비스 제공자 디바이스(108)에게 전송하거나 또는 두 개의 요청을 동일한 서비스 제공자 디바이스(108)에게 개별적으로 전송할 수 있다.
데이터 처리 시스템(102)은 트리거 키워드에 기초하여 요청에 응답한 액션 데이터 구조를 생성하도록 설계되고 구성된 다이렉트 액션 API(116)를 포함할 수 있다. 데이터 처리 시스템(102)의 프로세서들은 다이렉트 액션 API(116)를 호출하여 서비스 제공자 장치(108)에 데이터 구조를 생성하는 스크립트를 실행함으로써 차 공유 서비스로부터 자동차와 같은 서비스 또는 제품을 요청하거나 주문할 수 있다. 다이렉트 액션 API(116)는 위치, 시간, 사용자 계정, 물류 또는 다른 정보를 결정하기 위해 클라이언트 컴퓨팅 디바이스(104)로부터 최종 사용자의 동의하에 수신된 데이터뿐만 아니라 데이터 저장소(124)로부터 데이터를 획득하여, 서비스 제공자 디바이스(108)가 차 공유 서비스에서 자동차 예약과 같은 동작을 수행할 수 있도록 한다. 다이렉트 액션 API(116)를 사용하여, 데이터 처리 시스템(102)은 또한 서비스 제공자 디바이스(108)와 통신하여 이 예에서 차 공유를 예약함으로써 전환을 완료할 수 있다.
다이렉트 액션 API(116)는 데이터 처리 시스템(102)에 의해 결정된 최종 사용자의 의도를 만족시키도록 특정 액션을 실행할 수 있다. 해당 입력에 지정된 액션에 따라 다이렉트 액션 API(116)는 사용자 요청을 수행하는데 필요한 파라미터들을 식별하는 코드 또는 다이얼로그(dialog) 스크립트를 실행할 수 있다. 이러한 코드는 예를 들어 홈 자동화 서비스의 명칭과 같은 데이터 저장소(124)에 있는 추가 정보를 검색하거나 또는 클라이언트 컴퓨팅 디바이스(104)에서의 렌더링을 위한 오디오 출력을 제공하여, 요청된 택시의 목적지와 같은 질문을 최종 사용자에게 요청할 수 있다. 다이렉트 액션 API(116)는 필요한 파라미터를 결정할 수 있고, 콘텐츠 선택기 컴포넌트(118) 또는 서비스 제공자 컴퓨팅 디바이스(108)와 같은 다른 구성 요소로 전송되어 수행되도록 액션 데이터 구조에 정보를 패키징할 수 있다.
다이렉트 액션 API(116)는 NLP 컴포넌트(112) 또는 데이터 처리 시스템(102)의 다른 컴포넌트로부터 지시(instruction) 또는 명령(command)을 수신하여 액션 데이터 구조를 생성하거나 구성할 수 있다. 다이렉트 액션 API(116)는 액션의 유형을 결정하여 데이터 저장소(124)에 저장된 템플릿 저장소(132)로부터 템플릿을 선택할 수 있다. 액션 유형은 예를 들어 서비스, 제품, 예약 또는 티켓을 포함할 수 있다. 액션의 유형은 서비스 또는 제품의 유형을 더 포함할 수 있다. 예를 들어, 서비스 유형은 차 공유 서비스, 음식 배달 서비스, 세탁 서비스, 가정부 서비스, 수리 서비스 또는 가정용(household) 서비스를 포함할 수 있다. 제품 유형은 예를 들어 옷, 신발, 장난감, 전자 제품, 컴퓨터, 서적 또는 보석을 포함할 수 있다. 예약의 유형은 예를 들어, 저녁 식사 예약 또는 미용실 약속을 포함할 수 있다. 티켓의 유형은 예를 들어 영화 티켓, 스포츠 경기 티켓 또는 비행 티켓을 포함할 수 있다. 일부 경우에, 서비스, 제품, 예약 또는 티켓의 유형은 가격, 위치, 운송 유형, 가용성 또는 다른 속성에 기초하여 분류될 수 있다.
다이렉트 액션 API(116)는 요청의 유형을 식별할 때, 템플릿 저장소(132)로부터 대응하는 템플릿을 액세스할 수 있다. 템플릿들은 다이렉트 액션 API(116)에 의해 채워질 수 있는 구조화된 데이터 세트의 필드를 포함하여 서비스 제공자 디바이스(108)에 요청된 동작을 더 진행시킬 수 있다(픽업 위치에서 최종 사용자를 픽업하도록 택시를 보내서 최종 사용자를 목적지 위치로 이송하는 동작과 같은). 다이렉트 액션 API(116)는 템플릿 저장소(132)에서 탐색(lookup)을 수행하여 트리거 키워드 및 요청의 하나 이상의 특성에 매칭하는 템플릿을 선택할 수 있다. 예를 들어, 요청이 목적지로의 차량 또는 승차(ride)에 해당하면, 데이터 처리 시스템 (102)은 차량 공유 서비스 템플릿을 선택할 수 있다. 차 공유 서비스 템플릿은 디바이스 식별자, 픽업 위치, 목적지 위치, 승객 수 또는 서비스 유형 중 하나 이상을 포함할 수 있다. 다이렉트 액션 API(116)는 필드를 값으로 채울 수 있다. 필드를 값으로 채우기 위해, 다이렉트 액션 API(116)는 컴퓨팅 디바이스(104)의 하나 이상의 센서(134) 또는 디바이스(104)의 사용자 인터페이스로부터 정보를 핑 (ping), 폴(poll) 또는 획득할 수 있다. 예를 들어, 다이렉트 액션 API(116)는 GPS 센서와 같은 위치 센서를 사용하여 소스 위치를 검출할 수 있다. 다이렉트 액션 API(116)는 설문 조사(survey), 프롬프트(prompt) 또는 질의(query)를 컴퓨팅 디바이스(104)의 최종 사용자에게 제출하여 추가 정보를 얻을 수 있다. 다이렉트 액션 API는 데이터 처리 시스템(102)의 인터페이스(110)와 컴퓨팅 디바이스(104)의 사용자 인터페이스(예를 들어, 오디오 인터페이스, 음성 기반 사용자 인터페이스, 디스플레이 또는 터치 스크린)를 통해 설문 조사, 프롬프트 또는 질의를 제출할 수 있다. 따라서, 다이렉트 액션 API(116)는 트리거 키워드 또는 요청에 기초하여 액션 데이터 구조에 대한 템플릿을 선택하고, 하나 이상의 센서(134)에 의해 검출되거나 사용자 인터페이스를 통해 획득된 정보로 템플릿의 하나 이상의 필드를 채워서, 서비스 제공자 디바이스(108)에 의한 동작의 수행을 용이하게 하기 위해 액션 데이터 구조를 발생(generate), 생성(create) 또는 수립(construct)할 수 있다.
데이터 처리 시스템(102)은 예를 들어, 하나 이상의 트리거 키워드, 요청, 제3자 제공자 디바이스(108), 제3자 제공자 디바이스의 유형, 제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)의 카테고리에 대해 커스터마즈(customized)될 수 있다. 데이터 처리 시스템(102)은 제3자 제공자(108)에 대한 템플릿에 기초하여 액션 데이터 구조를 발생할 수 있다.
액션 데이터 구조를 수립하거나 발생하기 위하여, 데이터 처리 시스템(102)은 선택된 템플릿 내의 하나 이상의 필드를 식별하여 값으로 채울 수 있다. 필드는 숫자값, 문자열, 유니코드 값, 부울 논리(Boolean logic), 이진값, 16진수값, 식별자, 위치 좌표, 지리적 영역, 타임 스탬프 또는 다른 값으로 채워질 수 있다. 필드 또는 데이터 구조 자체는 데이터 보안을 유지하기 위하여 암호화되거나 마스크 (mask)될 수 있다.
템플릿 내의 필드를 결정하면, 데이터 처리 시스템(102)은 필드의 값을 식별하여 템플릿의 필드를 채워 액션 데이터 구조를 생성할 수 있다. 데이터 처리 시스템(102)은 데이터 저장소(124)상에서 탐색 또는 다른 질의 동작을 수행함으로써 필드에 대한 값을 획득, 검색, 결정 또는 식별할 수 있다.
일부 경우에서, 데이터 처리 시스템(102)은 필드에 대한 정보 또는 값이 데이터 저장소(124)에 없다는 것을 결정할 수 있다. 데이터 처리 시스템(102)은 데이터 저장소(124)에 저장된 정보 또는 값들이 구식이거나, 오래되었거나 또는 그렇지 않은 경우 NLP 컴포넌트(112)에 의해 식별된 트리거 키워드 및 요청에 응답하여 액션 데이터 구조를 구성할 목적으로 적당하지 않다고 결정할 수 있다(예를 들어, 클라이언트 컴퓨팅 장치(104)의 위치는 이전 위치일 수 있고 현재 위치가 아닐 수 있다; 계정이 만료될 수 있다; 목적지 레스토랑이 새로운 위치로 이전했을 수 있다; 신체 활동 정보; 또는 운송수단)
데이터 처리 시스템(102)이 데이터 처리 시스템(102)의 메모리에, 템플릿의 필드에 대한 값 또는 정보로의 액세스가 현재 없다고 결정하면, 데이터 처리 시스템(102)은 값 또는 정보를 획득할 수 있다. 데이터 처리 시스템(102)은 클라이언트 컴퓨팅 디바이스(104)의 하나 이상의 이용 가능한 센서를 질의 또는 폴링하고, 클라이언트 컴퓨팅 디바이스(104)의 최종 사용자에게 정보를 촉구(prompting)하거나 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)는 통신 세션의 특정 양상(aspect) 또는 질의 유형을 처리할 수 있다. 제3자 제공자 디바이스(108)는 데이터 처리 시스템(102)에 의해 실행된 NLP 컴포넌트(112)를 활용(leverage)하여 통신 세션과 관련된 오디오 신호를 처리하고 질의에 대한 응답을 발생하는 것을 용이하게 할 수 있다. 일부 경우에, 데이터 처리 시스템(102)은 제3자 제공자(108)를 위해 구성된 대화식 API(142)를 포함할 수 있다. 일부 경우에, 데이터 처리 시스템은 통신 세션을 수립하도록 클라이언트 컴퓨팅 디바이스와 제3자 공급자 디바이스간에 데이터 패킷을 라우팅한다. 데이터 처리 시스템(102)은 제3자 제공자 디바이스(108)로부터 제3자 제공자 디바이스가 클라이언트 디바이스(104)와 통신 세션을 수립했다는 인디케이션을 수신할 수 있다. 표시는 클라이언트 컴퓨팅 디바이스 (104)의 식별자, 통신 세션이 수립된 때에 해당하는 타임스탬프, 또는 통신 세션과 연관된 액션 데이터 구조와 같은 통신 세션과 연관된 다른 정보를 포함할 수 있다.
일부 경우에, 대화식 API는 제1 NLP(112)의 하나 이상의 컴포넌트 또는 기능을 포함하는 제2 NLP일 수 있다. 제2 NLP(142)는 제1 NLP(112)와 상호 작용하거나 제1 NLP(112)를 활용할 수 있다. 일부 경우에, 시스템은 데이터 처리 시스템(102)에 의해 실행되는 단일 NLP(112)를 포함한다. 단일 NLP(112)는 데이터 처리 시스템(102)과 제3자 서비스 제공자 디바이스(108) 모두를 지원할 수 있다. 일부 경우, 다이렉트 액션 API(116)는 서비스를 수행하는 것을 용이하게 하는 액션 데이터 구조를 발생 또는 수립하고, 대화식 API는 최종 사용자와의 통신 세션에 대한 응답 또는 쿼리를 생성하거나 최종 사용자의 경험 또는 서비스 성능을 향상시키거나 강화(enhance)시키는 추가 정보를 획득한다.
데이터 처리 시스템(102)은 클라이언트 디바이스(104)와 데이터 처리 시스템(102) 사이의 통신 세션을 수립하기 위해 세션 핸들러 컴포넌트(114)를 포함하고, 실행하고, 액세스하거나 그렇지 않으면 통신할 수 있다. 통신 세션은 클라이언트 디바이스(104)의 센서(134)에 의해 검출된 입력 오디오 신호 및 데이터 처리에 의해 클라이언트 디바이스(104)로 전송된 출력신호를 포함하는 클라이언트 디바이스(104)와 데이터 처리 시스템(102) 사이의 하나 이상의 데이터 전송을 지칭할 수있다. 데이터 처리 시스템(102)(예를 들어, 세션 핸들러 컴포넌트(114)를 통해)은 입력 오디오 신호를 수신하는 것에 응답하여 통신 세션을 수립할 수 있다. 데이터 처리 시스템(102)은 통신 세션에 대한 지속 시간(duration)을 설정할 수 있다. 데이터 처리 시스템(102)은 통신 세션을 위해 설정된 지속 시간에 대한 타이머 또는 카운터를 설정할 수 있다. 타이머의 만료에 응답하여, 데이터 처리 시스템(102)은 통신 세션을 종료할 수 있다.
통신 세션은 클라이언트 디바이스(104)가 세션을 수립하기 위해 인증 정보 또는 자격 증명(credentials)을 제공하는 네트워크 기반의 통신 세션을 지칭할 수 있다. 일부 경우, 통신 세션은 세션 동안 데이터 패킷에 의해 운반된 오디오 신호의 주제(topic) 또는 컨텍스트(context)를 지칭한다. 예를 들어, 제1통신 세션은 택시 서비스와 관련된(예를 들어, 키워드, 액션 데이터 구조 또는 콘텐츠 아이템 오브젝트를 포함하는) 클라이언트 디바이스(104)와 데이터 처리 시스템(102) 사이에서 전송된 오디오 신호를 지칭할 수 있으며, 제2통신 세션은 세탁 및 드라이 클리닝 서비스와 관련된 클라이언트 디바이스(104)와 데이터 처리 시스템(102) 사이에서 전송된 오디오 신호를 지칭할 수 있다. 이 예에서, 데이터 처리 시스템(102)은 오디오 신호들의 컨텍스트가 다르다는 것(예를 들어, NLP 컴포넌트(112)를 통해)을 결정할 수 있고, 오디오 신호의 두 세트를 상이한 통신 세션으로 분리할 수 있다. 세션 핸들러(114)는 세션 핸들러(114)는 드라이 클리닝 및 세탁 서비스에 관련된 하나 이상의 오디오 신호를 식별하는 것에 응답하여 탑승 서비스에 관련된 제 1세션을 종료할 수 있다. 따라서, 데이터 처리 시스템(102)은 오디오 신호의 컨텍스트를 검출하는 것에 응답하여 드라이 클리닝 및 세탁 서비스에 관련된 오디오 신호에 대한 제2세션을 개시 또는 획립할 수 있다.
데이터 처리 시스템(102)은 자연어 프로세서에 의해 식별된 트리거 키워드를 수신하고, 트리거 키워드에 기초하여 실시간 콘텐츠 선택 프로세스를 통해 콘텐츠 아이템을 선택하도록 콘텐츠 선택기 컴포넌트(118)를 포함, 실행 또는 그렇지 않으면 통신할 수 있다. 콘텐츠 선택 프로세스는 제3자 콘텐츠 제공자들(106)에 의해 제공된 스폰서(sponsored) 콘텐츠 아이템 오브젝트들을 참조하고, 포함하고, 선택할 수 있다. 실시간 콘텐츠 선택 프로세스는 컴퓨팅 디바이스(104)로 제공할 하나 이상의 콘텐츠 아이템을 선택하기 위하여 다수의 콘텐츠 제공자들에 의해 제공된콘텐츠 아이템들이 파싱, 처리, 가중화(weighted) 또는 매칭되는 서비스를 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 콘텐츠 선택 프로세스를 실시간으로 수행할 수 있다. 실시간으로 콘텐츠 선택 프로세스를 수행하는 것은 클라이언트 컴퓨팅 디바이스(104)를 통해 수신된 콘텐츠에 대한 요청에 응답하여 콘텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 콘텐츠 선택 프로세스는 요청을 수신한 시간 간격(예를 들어, 5 초, 10 초, 20 초, 30 초, 1 분, 2 분, 3 분, 5 분, 10 분 또는 20 분) 내에서 수행(예를 들어, 개시되거나 완료)될 수 있다. 실시간 콘텐츠 선택 프로세스는 클라이언트 컴퓨팅 디바이스(104)와의 통신 세션 동안 또는 통신 세션이 종료된 후 시간 간격 내에서 수행될 수 있다.
예를 들어, 데이터 처리 시스템(102)은 콘텐츠 아이템 오브젝트를 선택하도록 설계, 수립, 구성 또는 동작되는 콘텐츠 선택기 컴포넌트(118)를 포함할 수 있다. 음성 기반 환경에서 디스플레이하기 위한 콘텐츠 아이템을 선택하기 위해, 데이터 처리 시스템(102)(예를 들어, NLP 컴포넌트(112)를 통해)은 입력 오디오 신호를 파싱하여 키워드(예를 들어, 트리거 키워드)를 식별하여, 키워드를 사용하여 확장 매치, 완전 매치 또는 구문 매치에 근거하여 매칭 콘텐츠 아이템을 선택할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트(118)는 후보 콘텐츠 아이템의 주제를 해석(analyze), 분석(parse) 또는 처리하여, 후보 콘텐츠 아이템의 주제가 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰에 의해 감지된 입력 오디오 신호의 키워드 또는 구문의 주제에 해당하는지 결정할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 이미지 처리 기술, 문자 인식 기술, 자연 언어 처리 기술 또는 데이터베이스 룩업을 사용하여 후보 콘텐츠 아이템의 음성, 오디오, 용어, 문자, 텍스트, 심볼 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 콘텐츠 아이템은 후보 콘텐츠 아이템의 주제를 나타내는 메타 데이터를 포함할 수 있으며, 이 경우 콘텐츠 선택기 컴포넌트(118)는 메타 데이터를 처리하여 후보 콘텐츠 아이템의 주제가 입력 오디오 신호에 해당하는지를 결정할 수 있다.
콘텐츠 제공자(106)는 콘텐츠 아이템을 포함하는 콘텐츠 캠페인을 설정할 때 추가적인 인디케이터를 제공할 수 있다. 콘텐츠 제공자(106)는 콘텐츠 선택자 컴포넌트 (118)가 후보 콘텐츠 아이템에 관한 정보를 이용하여 탐색을 수행함으로써 식별할 수 있는 콘텐츠 캠페인 또는 콘텐츠 그룹 레벨에서 정보를 제공할 수 있다. 예를 들어, 후보 콘텐츠 아이템은 콘텐츠 그룹, 콘텐츠 캠페인 또는 콘텐츠 제공자에 맵핑될 수 있는 고유 식별자를 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 데이터 저장소(124)의 콘텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여 콘텐츠 제공자(106)에 관한 정보를 결정할 수 있다.
데이터 처리 시스템(102)은 컴퓨터 네트워크를 통해 컴퓨팅 디바이스(104)상의 프레젠테이션을 위해 콘텐츠에 대한 요청을 수신할 수 있다. 데이터 처리 시스템(102)은 클라이언트 컴퓨팅 디바이스(104)의 마이크로폰에 의해 검출된 입력 오디오 신호를 처리하여 요청을 식별할 수 있다 요청은 디바이스 유형, 위치 및 요청과 관련된 키워드와 같은 요청의 선택 기준을 포함할 수 있다. 요청은 액션 데이터 구조 또는 액션 데이터 구조를 포함할 수 있다.
요청에 응답하여, 데이터 처리 시스템(102)은 데이터 저장소(124) 또는 콘텐츠 제공자(106)와 연관된 데이터베이스로부터 콘텐츠 아이템 오브젝트를 선택하여, 네트워크(105)를 경유하여 컴퓨팅 디바이스(104)를 통해 프레젠테이션하기 위한 콘텐츠 아이템을 제공할 수 있다. 콘텐츠 아이템 오브젝트는 서비스 제공자 디바이스(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, 목적지 위치를 위한 메인 스트리트 1234, 승객 수 2 및 서비스 수준에 대한 경제(economy)가 포함될 수 있다. 오디오 신호 생성기 컴포넌트(122)는 컴퓨팅 디바이스(104)의 최종 사용자가 요청을 서비스 제공자(108)로 전송하는 것을 계속하기를 원한다는 것을 확인하기 위해 출력 신호의 제1부분을 발생할 수 있다. 제1부분은 다음 출력 "메인 스트리트 123에서 두 사람을 픽업하여 메인 스트리트 1234에서 하차시키는 택시 서비스 제공자 A의 경제 차(economy car)를 부르시겠습니까 ?".
일부 경우, 제1부분은 서비스 제공자 디바이스(108)로부터 수신된 정보를 포함할 수 있다. 서비스 제공자 디바이스(108)로부터 수신된 정보는 액션 데이터 구조에 대하여 커스터마이즈되거나 맞춤화(tailored)될 수 있다. 예를 들어, 데이터 처리 시스템(102)(예를 들어, 다이렉트 액션 API(116)를 통해)은 동작을 수행하도록 서비스 제공자(108)에게 지시하기 전에 액션 데이터 구조를 서비스 제공자(108)에게 전송할 수 있다. 대신에, 데이터 처리 시스템(102)은 서비스 제공자 장치 (108)에게 액션 데이터 구조에 대한 초기 또는 예비 처리를 수행하도록 지시하여 동작에 관한 예비 정보를 생성할 수 있다. 택시 서비스의 예에서, 액션 데이터 구조에 대한 예비 처리는 픽업 위치 주위에 위치하는 서비스 요구 레벨을 충족하는 이용 가능한 택시의 식별, 가장 가까운 이용 가능한 택시가 픽업 위치로 도달하는데 걸리는 시간 추정, 목적지 도착 시간 추정 및 택시 서비스에 대한 가격 추정을 포함한다. 추정된 예비값은 고정값, 다양한 조건에 기초하여 변경될 수 있는 추정치 또는 값의 범위를 포함할 수 있다. 서비스 제공자 디바이스(108)는 예비 정보를 데이터 처리 시스템(102)으로 리턴하거나 네트워크(104)를 통해 클라이언트 컴퓨팅 디바이스(104)로 직접 리턴할 수 있다. 데이터 처리 시스템(102)은 서비스 제공자 디바이스(108)로부터의 예비 결과를 출력 신호에 통합하여, 출력신호를 컴퓨팅 디바이스(104)로 전송할 수 있다. 출력 신호는 예를 들어, "택시 서비스 회사 A가 당신을 메인 스트리트 123에서 10분 내로 픽업하여 메인 스트리트 1234에 오전 9시까지 10달러에 하차시켜 드릴 수 있습니다. 이 승차를 주문하시겠습니까 ?". 이것은 출력 신호의 제1부분을 형성할 수 있다.
일부 경우들에서, 데이터 처리 시스템(102)은 출력 신호의 제2부분을 형성할 수 있다. 출력 신호의 제2부분은 실시간 콘텐츠 선택 프로세스 동안 콘텐츠 선택기 컴포넌트(118)에 의해 선택된 콘텐츠 아이템을 포함할 수 있다. 제1부분은 제2부분과 상이할 수 있다. 예를 들어, 제1부분은 클라이언트 컴퓨팅 디바이스(104)의 센서(134)에 의해 검출된 입력 오디오 신호를 전달하는 데이터 패킷에 직접 응답하는 액션 데이터 구조에 해당하는 정보를 포함할 수 있는 반면, 제2부분은 액션 데이터 구조에 약간(tangentially) 관련될 수 있는 콘텐츠 선택기 컴포넌트(104)에 의해 선택된 콘텐츠 아이템을 포함할 수 있거나 콘텐츠 제공자 디바이스(106)에 의해 제공된 스폰서 콘텐츠를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(104)의 최종 사용자는 택시 서비스 회사 A로부터 택시를 요청할 수 있다. 데이터 처리 시스템(102)은 출력 신호의 제1부분을 생성하여, 택시 서비스 회사 A로부터의 택시에 관한 정보를 포함할 수 있다. 그러나, 데이터 처리 시스템(102)은 출력 신호의 제2부분을 생성하여, 키워드 "택시 서비스" 및 최종 사용자가 관심을 가질만한 액션 데이터 구조에 포함된 정보에 기초하여 선택된 콘텐츠 아이템을 포함할 수 있다. 예를 들어, 제2부분은 택시 서비스 회사 B와 같은 다른 택시 서비스 회사에 의해 제공된 콘텐츠 아이템 또는 정보를 포함할 수 있다. 사용자가 택시 서비스 회사 B를 특별히 요구하지 않았지만, 데이터 처리 시스템(102)은 그럼에도 불구하고 사용자가 택시 서비스 회사 B와의 동작 수행을 선택할 수 있기 때문에 택시 서비스 회사 B의 콘텐츠 아이템을 제공한다.
데이터 처리 시스템(102)은 액션 데이터 구조로부터 택시 서비스 회사 B로 정보를 전송하여 픽업 시간, 목적지 도착 시간 및 승차를 위한 가격을 결정할 수 있다. 데이터 처리 시스템(102)은 이 정보를 수신하여 다음과 같이 출력 신호의 제2부분을 생성할 수 있다: "택시 서비스 회사 B가 2분 내에 메인 스트리트 123에서 당신을 픽업하여 메인 스트리트 1234에 오전 8시 52까지 15달러에 하차시켜 드릴 수 있습니다. 대신에 이 승차를 원합니까? ". 컴퓨팅 디바이스(104)의 최종 사용자는 택시 서비스 회사 A가 제공한 차량 또는 택시 서비스 회사 B가 제공한 승차를 선택할 수 있다.
택시 서비스 회사 B에 의해 제공된 서비스에 해당하는 스폰서 콘텐츠 아이템을 출력 신호의 제2부분에 제공하기 전에, 데이터 처리 시스템(102)은 제2부분이 실시간 콘텐츠 선택 프로세스(예를 들어, 콘텐츠 선택기 컴포넌트(118)에 의한) 동안 선택된 콘텐츠 아이템 오브젝트에 해당한다는 것을 최종 사용자 컴퓨팅 디바이스에게 통지할 수 있다. 그러나, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(104)의 최종 사용자에게 통지를 제공하기 위해 상이한 유형의 인터페이스에 대한 제한된 액세스를 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(104)는 디스플레이 디바이스를 포함하지 않을 수 있고, 또는 디스플레이 디바이스가 디스에이블되거나 꺼질 수 있다. 컴퓨팅 디바이스(104)의 디스플레이 디바이스는 컴퓨팅 디바이스(104)의 스피커보다 더 많은 자원을 소비할 수 있으므로, 통지를 전달하기 위해 컴퓨팅 디바이스(104)의 스피커를 사용하는 것과 비교하여 컴퓨팅 디바이스(104)의 디스플레이 디바이스를 켜는 것이 덜 효율적일 수 있다. 따라서, 몇몇 경우에, 데이터 처리 시스템(102)은 하나 이상의 인터페이스 또는 하나 이상의 컴퓨터 네트워크 유형을 통한 정보 전송의 효율성 및 효과를 향상시킬 수 있다. 예를 들어, 데이터 처리 시스템(102)(예를 들어, 오디오 신호 생성기 컴포넌트(122)를 통해)은 콘텐츠 아이템을 포함하는 출력 오디오 신호의 부분을 모듈화하여 출력 신호의 부분이 스폰서 콘텐츠 아이템을 포함한다는 인디케이션 또는 통지를 최종 사용자에게 제공할 수 있다.
데이터 처리 시스템(102)(예를 들어, 인터페이스(110) 및 네트워크(105)를 통해)은 오디오 신호 발생기 컴포넌트(122)에 의해 생성된 출력 신호를 포함하는 데이터 패킷을 전송할 수 있다. 출력신호는 클라이언트 디아비스(104)의 또는 클라이언트 디아비스(104)에 의해 실행된 오디오 드라이버 컴포넌트(138)로 하여금 클라이언트 디바이스(104)의 스피커(예를 들어, 변환기 (136))를 구동하여 출력 신호에 해당하는 음향파를 발생하도록 한다.
도 2는 컴퓨터 네트워크를 통해 패킷화된 액션들을 라우팅하기 위한 시스템(100)의 예시이다. 시스템은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트를 포함할 수 있다. 205에서, 클라이언트 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)의 마이크로폰 또는 다른 센서에 의해 검출된 입력 오디오 신호를 운반하는 데이터 패킷을 송신할 수 있다. 클라이언트 컴퓨팅 디바이스(104)는 입력 오디오 신호를 데이터 처리 시스템(102)으로 전송할 수 있다. 데이터 처리 시스템(102)은 입력 오디오 신호를 분석하여 요청에 응답하는 액션 데이터 구조를 생성하기 위해 키워드, 요청 또는 다른 정보를 식별할 수 있다.
ACT(210)에서, 데이터 처리 시스템(102)은 액션 데이터 구조를 서비스 제공자 디바이스(108)(또는 제3자 제공자 디바이스(108))로 전송할 수 있다. 데이터 처리 시스템(102)은 네트워크를 통해 액션 데이터 구조를 전송할 수 있다. 서비스 제공자 디바이스(108)는 데이터 처리 시스템(102)에 의해 전송된 액션 데이터 구조를 수신하고 처리하도록 구성된 인터페이스를 포함할 수 있다.
서비스 제공자 디바이스(108)(예를 들어, 대화식 API를 통해)는 ACT(215)에서 액션 데이터 구조에 응답할 수 있다. 서비스 제공자 디바이스(108)로부터의 응답은 액션 데이터 구조에 해당하는 수행할 서비스의 인디케이션을 포함할 수 있다. 응답은 동작 수행을 위한 확인을 포함할 수 있다. 응답은 액션 데이터 구조에 해당하는 동작을 수행하기 위한 추가 정보에 대한 요청을 포함할 수 있다. 예를 들어, 액션 데이터 구조는 승차를 위한 것일 수 있고, 서비스 제공자(108)는 승차를 위한 승객 수, 승객이 원하는 차의 유형, 차내 원하는 편의 시설 또는 선호 픽업 위치와 같은 추가 정보에 대한 요청에 응답할 수 있다. 추가 정보 요청은 액션 데이터 구조에 없을 수 있는 정보를 포함할 수 있다. 예를 들어, 액션 데이터 구조는 픽업 위치, 목적지 위치 및 승객 수와 같은 동작을 수행하기 위한 베이스라인(baseline) 정보를 포함할 수 있다. 베이스라인 정보는 택시 서비스 카테고리 내의 복수의 서비스 제공자(108)에 의해 사용된 표준 데이터 세트일 수 있다. 그러나, 특정 택시 서비스 제공자(108)는 클라이언트 컴퓨팅 디바이스(104)로부터 추가 정보 또는 선호도를 요청함으로써 동작을 커스터마이즈하고 향상시키는 것을 선택할 수 있다.
서비스 제공자 디바이스(108)는 ACT(215)에서 응답을 운반하는 하나 이상의 데이터 패킷을 데이터 처리 시스템(102)으로 전송할 수 있다. 데이터 처리 시스템(102)은 데이터 패킷을 분석하여 데이터 패킷의 소스와 데이터 패킷의 목적지를 식별할 수 있다. ACT(220)에서, 데이터 처리 시스템(102)은 따라서 클라이언트 컴퓨팅 디바이스(104)로 데이터 패킷을 라우팅 또는 포워딩할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 데이터 패킷을 라우팅하거나 포워딩할 수 있다.
ACT(225)에서, 클라이언트 컴퓨팅 디바이스(220)는 포워딩된 응답에 기초하여 데이터 처리 시스템(102)으로 명령(instruction) 또는 명령(command)을 전송할 수 있다. 예를 들어, 225에서 전달된 응답은 다수의 승객을 위한 요청 및 택시 승차 스케줄링을 진행하기 위한 확인이 될 수 있다. 225에서 명령은 승객수 및 픽업 스케줄링을 진행하기 위한 명령을 포함할 수 있다. 클라이언트 디바이스(104)는 명령을 운반하는 하나 이상의 데이터 패킷을 데이터 처리 시스템(102)으로 전송할 수 있다. 데이터 처리 시스템(102)은 명령을 운반하는 데이터 패킷을 ACT(230)에서 서비스 제공자 디바이스(108)로 라우팅하거나 포워딩할 수 있다.
일부 경우에, 데이터 처리 시스템(102)은 ACT(220) 또는 ACT(230)에서 데이터 패킷을 그대로 라우팅 또는 포워딩할 수 있다(예를 들어, 데이터 패킷을 조작하지 않고). 일부 경우에, 데이터 처리 시스템(102)은 데이터 패킷을 처리하여 정보를 필터링하거나, 데이터 패킷을 정보로 캡슐화하여 디바이스(108) 또는 클라이언트 컴퓨팅 디바이스(104)에 의한 데이터 패킷의 처리를 용이하게 할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 서비스 제공자 디바이스(108)로부터 클라이언트 컴퓨팅 디바이스(104)의 신원을 마스킹, 은익(hide) 또는 보호할 수 있다. 따라서, 데이터 처리 시스템(102)은 서비스 제공자(108)가 클라이언트 컴퓨팅 디바이스(104)의 디바이스 식별자 또는 사용자명을 직접적으로 식별할 수 없도록 해시 함수를 사용하여 식별 정보를 암호화할 수 있다. 데이터 처리 시스템(102)은 클라이언트 컴퓨팅 장치(104)의 식별자 또는 사용자 명에 대한, 통신 세션 동안 사용하기 위해 서비스 제공자 디바이스(108)로 제공된 프록시 식별자의 매핑을 유지할 수 있다.
도 3은 컴퓨터 네트워크를 통해 패킷화된 액션들을 라우팅하기 위한 시스템(100)의 예시이다. 시스템은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트를 포함할 수 있다. 305에서, 클라이언트 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)의 마이크로폰 또는 다른 센서에 의해 검출된 입력 오디오 신호를 운반하는 데이터 패킷을 전송할 수 있다. 클라이언트 컴퓨팅 디바이스(104)는 입력 오디오 신호를 데이터 처리 시스템(102)으로 송신할 수 있다. 데이터 처리 시스템(102)은 입력 오디오 신호를 분석하여 요청에 응답하는 동작 데이터 구조를 생성하도록 키워드, 요청 또는 다른 정보를 식별할 수 있다.
ACT(310)에서, 데이터 처리 시스템(102)은 액션 데이터 구조를 서비스 제공자 디바이스(108)(또는 제3자 제공자 디바이스(108))로 전송할 수 있다. 데이터 처리 시스템(102)은 네트워크를 통해 액션 데이터 구조를 전송할 수 있다. 서비스 제공자 디바이스(108)는 데이터 처리 시스템(102)에 의해 송신된 액션 데이터 구조를 수신하고 처리하도록 구성된 인터페이스를 포함할 수 있다.
서비스 제공자 디바이스(108)(예를 들어, 대화식 API를 통해)는 ACT (315)에서 액션 데이터 구조에 응답할 수 있다. 서비스 제공자 디바이스(108)로부터의 응답은 액션 데이터 구조에 대응하여 수행할 서비스의 인디케이션을 포함할 수 있다. 응답은 동작 수행을 확인하라는 메시지를 포함할 수 있다. 응답은 액션 데이터 구조에 대응하는 동작을 수행하기 위한 추가 정보에 대한 요청을 포함할 수 있다. 예를 들어, 액션 데이터 구조는 승차를 위한 것일 수 있고, 서비스 제공자(108)는 승차를 위한 승객 수, 승객이 원하는 차의 유형, 차내 원하는 편의 시설 또는 선호 픽업 위치와 같은 추가 정보에 대한 요청에 응답할 수 있다. 추가 정보에 대한 요청은 액션 데이터 구조에 없을 수 있는 정보를 포함할 수 있다. 예를 들어, 액션 데이터 구조는 픽업 위치, 목적지 위치 및 승객 수와 같은 동작을 수행하기 위한 베이스라인 정보를 포함할 수 있다. 베이스라인 정보는 택시 서비스 카테고리 내의 복수의 서비스 제공자(108)에 의해 사용된 표준 데이터 세트일 수 있다. 그러나, 특정 택시 서비스 제공자(108)는 클라이언트 컴퓨팅 디바이스(104)로부터 추가 정보 또는 선호도를 요청함으로써 동작을 커스터마이즈하고 향상시키는 것을 선택할 수 있다.
서비스 제공자 디바이스(108)는 응답을 운반하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(104)로 직접 전송할 수 있다. 예를 들어, 데이터 처리 시스템(102)을 통해 응답을 라우팅하는 대신에, 서비스 제공자 디바이스는 서비스 제공자 디바이스(108)에 의해 실행된 대화식 API를 통해 클라이언트 컴퓨팅 디바이스(104)에 직접 응답할 수 있다. 이는 서비스 제공자가 통신 세션을 커스터마이징할 수 있게 한다.
ACT(320)에서, 클라이언트 컴퓨팅 디바이스(104)는 응답에 기초하여 서비스 제공자 디바이스(108)로 지시 또는 명령을 전송할 수 있다. 예를 들어, 315에서 제공된 응답은 다수의 승객에 대한 요청 및 택시 승차 스케줄링을 위한 확인일 수 있다. 320에서의 지시는 승객의 수 및 픽업 스케줄링을 진행하기 위한 지시를 포함할 수 있다. 클라이언트 디바이스(104)는 데이터 처리 시스템(102)을 통해 데이터 패킷을 라우팅하는 대신에 명령을 운반하는 하나 이상의 데이터 패킷을 서비스 제공자 디바이스(108)로 전송할 수 있다.
데이터 처리 시스템(102)은 서비스 제공자 디바이스(108) 및 클라이언트 컴퓨팅 디바이스(104)가 각각의 디바이스로 통신 식별자를 전달함으로써 데이터 처리 시스템(102)과 독립적인 통신 세션을 수립하는 것을 용이하게 할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 디바이스(104)의 식별자를 디바이스(108)로 전송할 수 있고, 데이터 처리 시스템(102)은 디바이스(108)의 식별자를 디바이스(104)로 전송할 수 있다. 따라서, 디바이스(108)는 디바이스(104)와 직접 통신 세션을 수립할 수 있다.
일부 경우에, 디바이스(108) 또는 디바이스(104)는 통신 세션에 관한 상태 정보와 같은 정보를 데이터 처리 시스템(102)으로 개별적으로 포워딩할 수 있다. 예를 들어, 디바이스(108)는 디바이스(108)가 클라이언트 디바이스(104)와 통신 세션을 성공적으로 수립했다는 인디케이션을 데이터 처리 시스템으로 제공할 수 있다.
도 4는 패킷화된 오디오 신호의 동적 변조를 수행하기 위한 예시적인 방법을 나타낸다. 방법(400)은 시스템(100) 또는 시스템(500)의 하나 이상의 컴포넌트, 시스템 또는 엘리먼트에 의해 수행될 수 있다. 방법(400)은 입력 오디오 신호를 수신하는 데이터 처리 시스템을 포함할 수 있다(ACT 405). 데이터 처리 시스템은 클라이언트 컴퓨팅 디바이스로부터 입력 오디오 신호를 수신할 수 있다. 예를 들어, 데이터 처리 시스템에 의해 실행된 자연어 프로세서 컴포넌트는 데이터 처리 시스템의 인터페이스를 통해 클라이언트 컴퓨팅 디바이스로부터 입력 오디오 신호를 수신할 수 있다. 데이터 처리 시스템은 클라이언트 컴퓨팅 디바이스(또는 클라이언트 디바이스)의 센서에 의해 검출된 입력 오디오 신호를 운반하거나 포함하는 데이터 패킷을 수신할 수 있다.
ACT(410)에서, 방법(400)은 입력 오디오 신호를 파싱하는 데이터 처리 시스템을 포함할 수 있다. 자연어 프로세서 컴포넌트는 입력 오디오 신호를 파싱하여 요청 및 요청에 해당하는 트리거 키워드를 식별할 수 있다. 예를 들어, 클라이언트 디바이스에 의해 감지된 오디오 신호는 "Okay device, I need a ride from Taxi Service Company A to go to 1234 Main Street"라는 오디오 신호가 포함될 수 있다. 이 오디오 신호에서, 초기 트리거 키워드는 입력 오디오 신호를 데이터 처리 시스템에 송신하도록 클라이언트 장치에 지시할 수 있는 "okay device" 를 포함할 수 있다. 클라이언트 디바이스의 전처리기는 나머지 오디오 신호를 데이터 처리 시스템에 보내기 전에 "okay device"라는 용어를 필터링할 수 있다. 일부 경우, 클라이언트 디바이스는 추후 처리를 위해 추가 용어를 필터링하거나 키워드를 생성하여 데이터 처리 시스템으로 전송할 수 있다.
데이터 처리 시스템은 입력 오디오 신호에서 트리거 키워드를 식별할 수 있다. 트리거 키워드는 예를 들어 "to go to" 또는 "ride" 또는 이러한 용어들의 변형(variation)을 포함할 수 있다. 트리거 키워드는 서비스 또는 제품의 유형을 나타낼 수 있다. 데이터 처리 시스템은 입력 오디오 신호에 있는 요청을 식별할 수 있다. 요청은 "I need"라는 용어에 기초하여 결정될 수 있다. 트리거 키워드 및 요청은 시맨틱 처리 기술 또는 다른 자연어 처리 기술을 사용하여 결정될 수 있다.
ACT(415)에서, 방법(400)은 액션 데이터 구조를 생성하는 데이터 처리 시스템을 포함할 수 있다. 데이터 처리 시스템은 트리거 키워드, 요청, 제3자 제공자 디바이스 또는 다른 정보에 기초하여 액션 데이터 구조를 발생할 수 있다. 액션 데이터 구조는 요청에 응답할 수 있다. 예를 들어, 만약 클라이언트 컴퓨팅 디바이스의 최종 사용자가 택시 서비스 회사 A로부터 택시를 요청하면, 액션 데이터 구조는 택시 서비스 회사 A로부터 택시 서비스를 요청하는 정보를 포함할 수 있다. 데이터 처리 시스템은 택시 서비스 회사 A에 대한 템플릿을 선택하여 템플릿의 필드에 값을 입력하여, 택시 서비스 회사 A가 클라이언트 컴퓨팅 디바이스의 사용자에게 택시를 보내 사용자를 픽업하여 사용자를 요청된 목적지로 전송하도록 허용한다.
ACT(420)에서, 방법(400)은 제3자 제공자 디바이스로의 데이터 처리 시스템이 액션 데이터 구조에 의해 제3자 제공자 디바이스를 야기하도록 전송하는 단계를 포함할 수 있다. 제3자 디바이스는 수신된 액션 데이터 구조를 분석 또는 처리하여 대화식 API를 호출하고 제3자 제공자 디바이스와 클라이언트 디바이스 간의 통신 세션을 수립하도록 결정할 수 있다. 서비스 제공자 디바이스(108)는 액션 데이터 구조의 내용에 기초하여 대화식 API를 호출하거나 그렇지 않으면 실행하거나 이용하도록 결정할 수 있다. 예를 들어, 서비스 제공자 디바이스(108)는 추가 정보가 액션 데이터 구조에 대응하는 동작 수행을 용이하게 할 수 있다고 결정할 수 있다. 서비스 제공자 디바이스(108)는 클라이언트 컴퓨팅 디바이스(104)와 통신하는 것이 서비스수준을 향상 시키킬 수 있거나 동작의 성능 오류로 인한 자원 이용을 감소시킬 수 있다고 결정할 수 있다. 서비스 제공자 디바이스(108)는 추가 정보를 획득하여 클라이언트 컴퓨팅 디바이스(104)에 대한 동작을 커스터마이즈하도록 결정할 수 있다.
ACT(425)에서, 방법(400)은 제3자 공급자 디바이스가 클라이언트 디바이스와의 통신 세션을 수립했다는 인디케이션을 제3자 공급자 디바이스로부터 수신하는 데이터 처리 시스템을 포함할 수 있다. 인디케이션은 통신 세션이 수립된 때에 해당하는 타임 스탬프, 통신 세션의 고유 식별자(예를 들어, 디바이스 식별자, 통신 세션의 시간 및 날짜 스탬프, 및 서비스 제공자 디바이스의 식별자로 형성된 튜플(tuple))를 포함할 수 있다. .
도 5는 예시적인 컴퓨터 시스템(500)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(500)는 시스템(100) 또는 데이터 처리 시스템(102)과 같은 컴포넌트를 포함하거나 구현하는데 사용될 수 있다. 데이터 처리 시스템(102)은 지능형 개인 비서(intelligent personal assistant) 또는 음성 기반 디지털 비서를 포함할 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 컴포넌트와 정보를 처리하기 위해 버스(505)에 연결된 프로세서(510) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(500)은 또한 정보를 저장하기 위해 버스(505)에 결합된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(515), 및 프로세서(510)에 의해 실행될 명령을 포함한다. 메인 메모리(515)는 데이터 저장소(145)이거나 포함할 수 있다. 메인 메모리(515)는 또한 프로세서(510)에 의한 명령을 실행하는 동안에 위치 정보, 임시 변수 또는 다른 중간(intermediate) 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(500)은 ROM(read only memory) 또는 프로세서(510)를 위한 정적(static) 정보 및 명령을 저장하기 위해 버스(505)에 연결된 다른 정적 저장 디바이스를 포함할 수 있다. 고체 촬상 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(525)는 버스(505)에 연결되어 정보와 명령을 지속적으로 저장한다. 저장 디바이스(525)는 데이터 저장소(145)를 포함하거나 데이터 저장소(145)의 일부일 수 있다.
컴퓨팅 시스템(500)은 정보를 사용자에게 디스플레이하기 위해 버스(505)를 통해 액정 크리스털 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(535)에 연결될 수 있다. 영숫자(alphanumeric) 또는 다른 키들을 포함하는 키보드와 같은 입력 디바이스(530)는 정보 및 명령 선택을 프로세서(510)로 전송하기 위해 버스(505)에 연결될 수 있다. 입력 디바이스(530)는 터치 스크린 디스플레이(535)를 포함할 수 있다. 입력 디바이스(530)는 방향 정보와 명령 선택을 프로세서(510)로 전달하여 디스플레이(535)상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 컨트롤을 또한 포함할 수 있다. 디스플레이 (535)는 예를 들어 데이터 처리 시스템(102), 클라이언트 컴퓨팅 디바이스(150) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(510)가 메인 메모리(515)에 포함된 명령들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(500)에 의해 구현될 수 있다. 이러한 명령들은 저장 디바이스(525)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(515)로 판독될 수 있다. 메인 메모리(515)에 포함된 명령들의 배열의 실행은 컴퓨팅 시스템(500)이 여기에 기술된 예시적인 프로세스들을 수행하도록 한다. 다중 처리 장치(multi-processing arrangement)에 있는 하나 이상의 프로세서는 또한 메인 메모리 (515)에 포함된 명령을 실행하기 위해 사용될 수 있다. 하드 와이어(hard-wired) 회로는 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령 대신 또는 소프트웨어 명령과 함께 사용될 수 있다. 여기에 설명된 시스템 및 방법은 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되는 것은 아니다.
예시적인 컴퓨팅 시스템이 도 5에 기술되어 있지만, 본 명세서에서 기술된 동작들을 포함하는 주제는 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하는 다른 유형의 디지털 전자 회로, 또는 컴퓨터에서 소프트웨어, 펌웨어, 또는 하드웨어로 구현되거나, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
여기에서 논의된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 개인 정보(예를 들어, 사용자의 소셜 네트워크, 사회적 액션 또는 액티비티, 사용자의 선호도 또는 사용자의 위치)를 수집할 수 있는 프로그램 또는 기능(feature)의 사용 여부 또는 콘텐츠 서버 또는 다른 데이터 처리 시스템로부터 사용자에게 보다 관련성 높은 콘텐츠를 수신할지 여부 또는 방법을 제어할 수 있는 기회를 제공받을 수 있다. 게다가, 특정 데이터는 파라미터를 생성할 때 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방법으로 익명화될 수 있다. 예를 들어, 사용자의 신원은, 개인 식별 정보가 사용자에 대해 결정할 수 없거나, 사용자의 지리적 위치가 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준과 같이)으로 일반화되지 않으며, 사용자의 특정 위치가 결정될 수 없도록 익명으로 처리될 수 있다. 따라서 사용자는 자신에 대한 정보를 수집하는 방법을 제어할 수 있고 콘텐츠 서버가 정보를 사용하는 방법을 제어할 수 있다.
본 명세서에서 기술된 주제 및 동작은 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하는 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있거나, 또는 하나 이상의 그들의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램, 예를 들어, 데이터 처리 디바이스에 의한 실행을 위해 또는 그 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체상에 인코딩된, 컴퓨터 프로그램 명령들의 하나 이상의 회로들로서 구현될 수 있다. 택일적으로 또는 부가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 디바이스로의 전송을 위해 정보를 인코딩하기 위해 생성된 기계-생성 전기, 광학 또는 전자기적 신호 상에서 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함할 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 포함할 수 있다. 본 명세서에서 기술된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장된 데이터 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로서 구현될 수 있다.
본 명세서의 "데이터 처리 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 처리 장치"이라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 복수의 시스템, 또는 전술한 것의 조합을 포함하는, 데이터를 처리하기 위한 다양한 장치, 디바이스 및 기계를 포함한다. 장치는 특수 목적 논리 회로, 예를 들어 FPGA (filed programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 장치는 또한 하드웨어에 부가하여, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 위한 실행 환경을 생성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라구조와 같은 다양한 다른 컴퓨팅 모델 인프라구조를 실현할 수 있다. 예를 들어, 다이렉트 액션 API(116), 콘텐츠 선택기 컴포넌트(118), 또는 NLP 컴포넌트(112) 및 다른 데이터 처리 시스템(102) 컴포넌트는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 에플리케이션, 스크립트 또는 코드로 알려진)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있고, 독립형(stand-alone) 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 오브젝트 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있다. 컴퓨터 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크업 언어(markup language) 문서에 저장된 하나 이상의 스크립트)를 보유하고 있는 파일의 일부에, 문제의 프로그램 전용의 단일 파일에 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 있거나 여러 사이트에 분산되어 있으며, 통신 네트워크로 상호 연결된 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 운용하고 출력을 생성하도록 하나 이상의 컴퓨터 프로그램(예를 들어, 데이터 처리 시스템(102)의 컴포넌트)을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적의 논리 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크의 예로서 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
본 명세서에서 기술된 주제는 데이터 서버와 같은 백 엔드 컴포넌트를 포함하거나, 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 프론트 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있으며, 예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에서 기술된 주제의 구현과 상호 작용할 수 있는 웹 브라우저, 또는 하나 이상의 백 엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어 투 피어 네트워크(예를 들어, 피어 투 피어 네트워크)를 포함한다.
시스템(100) 또는 시스템(500)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있고, 전형적으로 통신 네트워크(예를 들어, 네트워크(165))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생합니다. 일부 구현 예들에서, 서버는 데이터(예를 들어, 콘텐츠 아이템을 나타내는 데이터 패킷)를 클라이언트 디바이스(예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용자로부터 입력을 수신할 목적으로)로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버의 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 컴퓨팅 디바이스(150) 또는 콘텐츠 제공자 컴퓨팅 디바이스 (155) 또는 서비스 제공자 컴퓨팅 디바이스(160)로부터 데이터 프로세싱 시스템 (102)에 의해 수신된).
동작들이 특정 순서로 도면들에 도시되었지만, 그러한 동작들은 도시된 특정 순서 또는 순차적인 순서로 수행될 필요가 없으며, 모든 도시된 동작들이 수행될 필요가 없다. 여기에 설명된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트의 분리는 모든 구현에서 분리를 요구하지 않으며, 기술된 프로그램 컴포넌트는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(112) 또는 콘텐츠 선택기 컴포넌트(118)는 단일 컴포넌트, 애플리케이션 또는 프로그램, 또는 하나 이상의 처리 회로를 갖는 논리 디바이스 또는 데이터 처리 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
이제 몇몇 예시적인 구현 예들을 설명하였지만, 상기 설명은 예시적이고 제한적인 것은 아니며, 예로서 제시되었다는 것이 명백하다. 특히, 본 명세서에 제시된 많은 예들은 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합 될 수 있다. 하나의 구현과 관련하여 논의된 동작, 엘리먼트 및 특징은 다른 구현 또는 구현에서의 유사한 역할로부터 배제되지 않는다.
여기에 사용된 어구 및 전문 용어는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어서는 안된다. "포함하는(including)" "구성하는(comprising)" "갖는(having)" "포함하는(containing)" "포함하는(involing)"에 의해 특징화된 (characterized by" "로 특징화된(characterized in that)" 및 그 변형은 이하에 열거된 아이템, 그 등가물 및 추가 아이템뿐만 아니라 그 이후에 열거된 아이템으로 구성된 대체 구현을 포함한다. 일 구현 예에서, 여기에 기술된 시스템 및 방법은 설명된 엘리먼트, 동작 또는 엘리먼트 중 하나 이상 또는 모두의 각각의 조합으로 구성된다.
단수로 언급된 시스템 및 방법의 구현 또는 엘리먼트 또는 동작에 대한 임의의 참조는 복수의 이들 엘리먼트를 포함하는 구현을 포함할 수도 있고, 임의의 구현 또는 엘리먼트 동작에 대한 복수의 참조는 또한 단일 엘리먼트만 포함하는 구현을 수용할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 컴포넌트, 동작 또는 엘리먼트를 단일 또는 복수 구성으로 제한하려는 것이 아니다. 정보, 행위 또는 엘리먼트에 기반한 행위 또는 엘리먼트에 대한 언급은 해당 행위 또는 엘리먼트가 적어도 부분적으로 정보, 행위 또는 엘리먼트에 기초한 구현을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실 예와 결합될 수 있으며, "구현", "일부 구현", "하나의 구현" 등은 반드시 상호 배타적인 것은 아니며, 특징, 구조 또는 특성은 적어도 하나의 구현 예 또는 실시 예에 포함될 수 있다. 본 명세서에 사용된 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 여기에 개시된 양태 및 구현 예와 일치하는 임의의 방식으로, 포함 또는 배타적으로 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 언급은 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어 중 하나, 둘 이상 및 모두를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어 'A'와 'B'중 적어도 하나는 단지 'A', 단지 'B'뿐 아니라 'A'와 'B'둘 다를 포함할 수 있다. "포함하는" 또는 다른 공개 용어와 관련하여 사용된 이러한 참조들은 추가 아이템을 포함할 수 있다.
도면, 상세한 설명 또는 청구 범위에 있는 기술적 특징이 참조 부호 뒤에 오는 경우, 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 참조 부호가 포함된다. 따라서, 참조 부호들 또는 그것들 부재는 어떠한 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
여기에 기술된 시스템 및 방법은 그 특성을 벗어나지 않으면서 다른 특정 형태로 구체화될 수 있다. 예를 들어, 데이터 처리 시스템(102)은 제2액션(210)이 완료되었거나 시작하려고 하는 것을 나타내는 제2동작(210)으로부터의 데이터와 같은 스레드(200)의 액션들의 시퀀스에서 이전 액션으로부터의 데이터에 부분적으로 기초하여 후속 액션(예를 들어, 제3액션(215))을 위한 콘텐츠 아이템을 선택할 수 있다. 전술한 구현 예들은 설명된 시스템 및 방법을 제한하기보다는 예시적인 것이다. 따라서, 본 명세서에 설명된 시스템 및 방법의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 표시되며, 청구 범위의 의미 및 범위 내에서의 변화가 포함된다.

Claims (20)

  1. 컴퓨터 네트워크를 통해 음성-기반 디지털 어시스턴트를 작동시키기 위해 패킷화된 액션을 라우팅하는 시스템으로서,
    대화식 애플리케이션 프로그래밍 인터페이스 및 하나 이상의 프로세서를 포함하는 데이터 처리 시스템을 포함하여,
    클라이언트 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신하고;
    키워드를 식별하도록 입력 오디오 신호를 분석(parse)하고;
    키워드에 기초하여 액션 데이터 구조를 생성하고;
    대화식 애플리케이션 프로그래밍 인터페이스를 호출하여 제3자 제공자 디바이스와 클라이언트 컴퓨팅 디바이스 사이의 통신 세션을 설정하기 위해 제3자 제공자 디바이스로 액션 데이터 구조를 전송하고; 그리고
    대화식 애플리케이션 프로그래밍 인터페이스를 통해 통신 세션을 설정하도록 클라이언트 컴퓨팅 디바이스와 제3자 제공자 디바이스 사이에서 데이터 패킷을 라우팅하는 패킷화된 액션을 라우팅하는 시스템.
  2. 제1항에 있어서,
    데이터 처리 시스템은,
    키워드에 기초하여 콘텐츠 아이템을 선택하고; 그리고
    통신 세션 동안, 클라이언트 컴퓨팅 디바이스를 통해 프리젠테이션을 위한 콘텐츠 아이템을 제공하는 패킷화된 액션을 라우팅하는 시스템.
  3. 제1항에 있어서,
    데이터 처리 시스템은,
    실시간 콘텐츠 선택 프로세스를 통해, 제3자 제공자 디바이스와 관련된 콘텐츠 아이템을 선택하고; 그리고
    클라이언트 컴퓨팅 디바이스로부터, 콘텐츠 아이템과 상호 작용하기 위한 표시를 수신하는 패킷화된 액션을 라우팅하는 시스템.
  4. 제1항에 있어서,
    데이터 처리 시스템은,
    실시간 콘텐츠 선택 프로세스를 통해, 제3자 제공자 디바이스와 다른 콘텐츠 제공자 디바이스에 의해 콘텐츠 아이템 제공자를 선택하는 패킷화된 액션을 라우팅하는 시스템.
  5. 제1항에 있어서,
    데이터 처리 시스템은,
    제3자 제공자 디바이스에 대해 구성된 대화식 애플리케이션 프로그래밍 인터페이스를 호출하는 패킷화된 액션을 라우팅하는 시스템.
  6. 제1항에 있어서,
    데이터 처리 시스템은,
    제3자 제공자 디바이스와 다른 제2 제3자 디바이스에 의해 제공된 콘텐츠 아이템을 선택하고; 그리고
    제3자 제공자 디바이스와의 통신 세션 동안 프리젠테이션을 위해 콘텐츠 아이템을 제공하는 패킷화된 액션을 라우팅하는 시스템.
  7. 제1항에 있어서,
    데이터 처리 시스템은,
    키워드 또는 제3자 제공자 디바이스의 유형에 기초하여, 템플릿을 선택하고;
    채울(populate) 템플리트 내의 필드를 식별하고;
    그 템플릿 내의 필드에 대해, 클라이언트 컴퓨팅 디바이스의 제2센서로부터 값을 획득하고; 그리고
    액션 데이터 구조를 생성하기 위해 클라이언트 컴퓨팅 디바이스의 제2 센서로부터의 값에 기초하여 액션 데이터 구조에 대해 템플릿을 채우는 패킷화된 액션을 라우팅하는 시스템.
  8. 제1항에 있어서,
    데이터 처리 시스템은,
    클라이언트 컴퓨팅 디바이스로부터, 액션 데이터 구조를 실행하라는 표시를 수신하고; 그리고
    그 표시에 응답하여, 제3자 제공자 디바이스에게 액션 데이터 구조를 실행하도록 지시하는 패킷화된 액션을 라우팅하는 시스템.
  9. 제1항에 있어서,
    데이터 처리 시스템은,
    제3자 제공자 디바이스가 액션 데이터 구조를 실행하게 하기 위해 제3자 제공자 디바이스에게 액션 데이터 구조를 제공하고,
    상기 제3자 제공자 디바이스는 액션 데이터 구조가 제공되지 않은 값을 요청하기로 결정하고, 액션 데이터 구조를 실행할 값을 요청하라는 결정에 응답하여 대화식 애플리케이션 인터페이스를 호출하는 패킷화된 액션을 라우팅하는 시스템.
  10. 제1항에 있어서,
    데이터 처리 시스템은,
    제3자 제공자 디바이스로부터, 제3자 제공자 디바이스가 클라이언트 컴퓨팅 디바이스와의 대화식 애플리케이션 프로그래밍 인터페이스를 통해 통신 세션을 확립했다는 표시를 수신하는 패킷화된 액션을 라우팅하는 시스템.
  11. 컴퓨터 네트워크를 통해 음성-기반 디지털 어시스턴트를 작동시키기 위한 패킷화된 액션을 라우팅하는 방법으로서,
    적어도 하나의 프로세서를 갖는 데이터 처리 시스템에 의해, 클라이언트 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신하는 단계;
    데이터 처리 시스템에 의해, 키워드를 식별하도록 입력 오디오 신호를 분석하는 단계;
    데이터 처리 시스템에 의해, 키워드에 기초하여 액션 데이터 구조를 생성하는 단계;
    데이터 처리 시스템에 의해, 대화식 애플리케이션 프로그래밍 인터페이스를 호출하여 제3자 제공자 디바이스와 클라이언트 컴퓨팅 디바이스 사이의 통신 세션을 설정하기 위해 제3자 제공자 디바이스로 액션 데이터 구조를 전송하는 단계; 및
    데이터 처리 시스템에 의해, 대화식 애플리케이션 프로그래밍 인터페이스를 통해 통신 세션을 설정하도록 클라이언트 컴퓨팅 디바이스와 제3자 제공자 디바이스 사이에서 데이터 패킷을 라우팅하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  12. 제11항에 있어서,
    키워드에 기초하여, 콘텐츠 아이템을 선택하는 단계; 및
    통신 세션 동안, 클라이언트 컴퓨팅 디바이스를 통해 프리젠테이션을 위한 콘텐츠 아이템을 제공하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  13. 제11항에 있어서,
    데이터 처리 시스템에 의해 실시간 콘텐츠 선택 프로세스를 통해, 제3자 제공자 디바이스와 관련된 콘텐츠 아이템을 선택하는 단계; 및
    데이터 처리 시스템에 의해 클라이언트 컴퓨팅 디바이스로부터, 콘텐츠 아이템과 상호 작용하기 위한 표시를 수신하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  14. 제11항에 있어서,
    실시간 콘텐츠 선택 프로세스를 통해, 제3자 제공자 디바이스와 다른 콘텐츠 제공자 디바이스에 의해 콘텐츠 아이템 제공자를 선택하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  15. 제11항에 있어서,
    제3자 제공자 디바이스에 대해 구성된 대화식 애플리케이션 프로그래밍 인터페이스를 호출하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  16. 제11항에 있어서,
    제3자 제공자 디바이스와 다른 제2 제3자 디바이스에 의해 제공된 콘텐츠 아이템을 선택하는 단계; 및
    제3자 제공자 디바이스와의 통신 세션 동안 프리젠테이션을 위해 콘텐츠 아이템을 제공하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  17. 제11항에 있어서,
    키워드 또는 제3자 제공자 디바이스의 유형에 기초하여, 템플릿을 선택하는 단계;
    채울 템플리트 내의 필드를 식별하는 단계;
    그 템플릿 내의 필드에 대해, 클라이언트 컴퓨팅 디바이스의 제2센서로부터 값을 획득하는 단계; 및
    액션 데이터 구조를 생성하기 위해 클라이언트 컴퓨팅 디바이스의 제2 센서로부터의 값에 기초하여 액션 데이터 구조에 대해 템플릿을 채우는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  18. 제11항에 있어서,
    클라이언트 컴퓨팅 디바이스로부터, 액션 데이터 구조를 실행하라는 표시를 수신하는 단계; 및
    그 표시에 응답하여, 제3자 제공자 디바이스에게 액션 데이터 구조를 실행하도록 지시하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
  19. 제11항에 있어서,
    제3자 제공자 디바이스가 액션 데이터 구조를 실행하게 하기 위해 제3자 제공자 디바이스로 액션 데이터 구조를 제공하는 단계를 포함하고,
    상기 제3자 제공자 디바이스는 액션 데이터 구조가 제공되지 않은 값을 요청하기로 결정하고, 액션 데이터 구조를 실행할 값을 요청하라는 결정에 응답하여 대화식 애플리케이션 인터페이스를 호출하는 패킷화된 액션을 라우팅하는 방법.
  20. 제11항에 있어서,
    제3자 제공자 디바이스로부터, 제3자 제공자 디바이스가 클라이언트 컴퓨팅 디바이스와의 대화식 애플리케이션 프로그래밍 인터페이스를 통해 통신 세션을 확립했다는 표시를 수신하는 단계를 포함하는 패킷화된 액션을 라우팅하는 방법.
KR1020197024075A 2016-12-30 2017-08-31 서비스 제공자와의 세션 설정을 위한 자연어 처리 KR102165262B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/395,689 US10972530B2 (en) 2016-12-30 2016-12-30 Audio-based data structure generation
US15/395,689 2016-12-30
PCT/US2017/049713 WO2018125299A1 (en) 2016-12-30 2017-08-31 Natural language processing for session establishment with service providers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031189A Division KR102015069B1 (ko) 2016-12-30 2017-08-31 오디오 기반의 데이터 구조 생성

Publications (2)

Publication Number Publication Date
KR20190099350A KR20190099350A (ko) 2019-08-26
KR102165262B1 true KR102165262B1 (ko) 2020-10-13

Family

ID=59895377

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197024075A KR102165262B1 (ko) 2016-12-30 2017-08-31 서비스 제공자와의 세션 설정을 위한 자연어 처리
KR1020177031189A KR102015069B1 (ko) 2016-12-30 2017-08-31 오디오 기반의 데이터 구조 생성

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177031189A KR102015069B1 (ko) 2016-12-30 2017-08-31 오디오 기반의 데이터 구조 생성

Country Status (8)

Country Link
US (2) US10972530B2 (ko)
EP (2) EP3360314B1 (ko)
JP (2) JP6563519B2 (ko)
KR (2) KR102165262B1 (ko)
CN (2) CN113918896A (ko)
DE (2) DE112017000122T5 (ko)
ES (1) ES2884090T3 (ko)
WO (1) WO2018125299A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972530B2 (en) 2016-12-30 2021-04-06 Google Llc Audio-based data structure generation
US8688514B1 (en) 2011-06-24 2014-04-01 Google Inc. Ad selection using image data
US11087424B1 (en) 2011-06-24 2021-08-10 Google Llc Image recognition-based content item selection
US10586127B1 (en) 2011-11-14 2020-03-10 Google Llc Extracting audiovisual features from content elements on online documents
US11093692B2 (en) 2011-11-14 2021-08-17 Google Llc Extracting audiovisual features from digital components
US11030239B2 (en) 2013-05-31 2021-06-08 Google Llc Audio based entity-action pair based selection
JP2019086903A (ja) * 2017-11-02 2019-06-06 東芝映像ソリューション株式会社 音声対話端末、および音声対話端末制御方法
US11900928B2 (en) 2017-12-23 2024-02-13 Soundhound Ai Ip, Llc System and method for adapted interactive experiences
WO2019125486A1 (en) * 2017-12-22 2019-06-27 Soundhound, Inc. Natural language grammars adapted for interactive experiences
US10942039B2 (en) 2018-08-06 2021-03-09 Comcast Cable Communications, Llc Methods and systems for managing communication sessions
CN109144967B (zh) * 2018-08-13 2021-01-12 爱智慧(广州)科技有限公司 一种用于改进分布式计算系统的维护系统及方法
CN111356999B (zh) * 2018-10-22 2023-10-03 谷歌有限责任公司 经由音频信号识别网络源
CN110310641B (zh) * 2019-02-26 2022-08-26 杭州蓦然认知科技有限公司 一种用于语音助手的方法及装置
KR20220017464A (ko) * 2019-07-17 2022-02-11 구글 엘엘씨 음향 기반 디지털 어시스턴트 애플리케이션에서 트리거 키워드를 검증하는 시스템 및 방법
FR3100206A1 (fr) * 2019-08-28 2021-03-05 Psa Automobiles Sa Dispositif pour mettre en œuvre un assistant personnel virtuel dans un véhicule automobile avec contrôle par la voix d’un utilisateur, et véhicule automobile l’incorporant
CN114600081A (zh) * 2019-11-27 2022-06-07 谷歌有限责任公司 经由动态更新自然语言处理与应用交互
CN111600926B (zh) * 2020-04-01 2021-03-23 北京创世云科技有限公司 一种数据处理方法、装置及电子设备
EP4150489A1 (en) * 2020-05-15 2023-03-22 Sanofi Information system and electronic device
CN113282833B (zh) * 2021-06-15 2023-03-24 支付宝(杭州)信息技术有限公司 车票处理方法及装置
US20230037961A1 (en) * 2021-08-05 2023-02-09 Lenovo (Singapore) Pte. Ltd. Second trigger phrase use for digital assistant based on name of person and/or topic of discussion

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002037470A2 (en) 2000-10-30 2002-05-10 Keen.Com An apparatus and method for specifying and obtaining services through voice commands
US20070123222A1 (en) * 2005-11-29 2007-05-31 International Business Machines Corporation Method and system for invoking push-to-service offerings
US20070174258A1 (en) * 2006-01-23 2007-07-26 Jones Scott A Targeted mobile device advertisements
US20130091453A1 (en) * 2011-10-11 2013-04-11 Microsoft Corporation Motivation of Task Completion and Personalization of Tasks and Lists
US20160315995A1 (en) * 2015-04-21 2016-10-27 UberGrape GmbH DBA ChatGrape Systems and methods for integrating external resources from third-party services

Family Cites Families (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69017107T2 (de) 1989-07-11 1995-10-12 Lee S Weinblatt Verfahren und Vorrichtung zur Überwachung der Werbewirksamkeit.
ATE190149T1 (de) 1993-04-30 2000-03-15 Ibm Bereich-layout in einer sicht auf einem grafischen anzeigeschirm
CA2140643C (en) 1993-05-21 2000-04-04 Atsushi Kitahara Image processing device and method
US5418713A (en) 1993-08-05 1995-05-23 Allen; Richard Apparatus and method for an on demand data delivery system for the preview, selection, retrieval and reproduction at a remote location of previously recorded or programmed materials
JP3419046B2 (ja) 1993-09-27 2003-06-23 セイコーエプソン株式会社 映像表示装置
US5498002A (en) 1993-10-07 1996-03-12 Gechter; Jerry Interactive electronic games and screen savers with multiple characters
US5760838A (en) 1994-09-30 1998-06-02 Intel Corporation Method and system for configuring a display
JPH08263251A (ja) 1995-03-23 1996-10-11 Fuji Photo Film Co Ltd 画像表示方法および装置
US5682511A (en) 1995-05-05 1997-10-28 Microsoft Corporation Graphical viewer interface for an interactive network system
US5845263A (en) 1995-06-16 1998-12-01 High Technology Solutions, Inc. Interactive visual ordering system
US20030040957A1 (en) 1995-07-27 2003-02-27 Willam Y. Conwell Advertising employing watermarking
KR100197835B1 (ko) 1995-09-01 1999-06-15 윤종용 더블스크린을 이용한 정보신호 표시장치
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5748173A (en) 1996-02-29 1998-05-05 University Of Pittsburgh Hybrid display for simultaneous side-by-side review of radiographs
US6018768A (en) 1996-03-08 2000-01-25 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5778181A (en) 1996-03-08 1998-07-07 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5774664A (en) 1996-03-08 1998-06-30 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5813014A (en) 1996-07-10 1998-09-22 Survivors Of The Shoah Visual History Foundation Method and apparatus for management of multimedia assets
US6570587B1 (en) 1996-07-26 2003-05-27 Veon Ltd. System and method and linking information to a video
CA2278709A1 (en) 1997-01-27 1998-08-13 Benjamin Slotznick System for delivering and displaying primary and secondary information
JP3673615B2 (ja) 1997-06-19 2005-07-20 キヤノン株式会社 画像処理装置及びその制御方法
WO1999008194A1 (en) 1997-08-08 1999-02-18 Pics Previews, Inc. Digital department system
US6026373A (en) 1997-10-30 2000-02-15 Ncr Corporation Method of sending messages to an electronic price label
US6185558B1 (en) 1998-03-03 2001-02-06 Amazon.Com, Inc. Identifying the items most relevant to a current query based on items selected in connection with similar queries
US6510553B1 (en) 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US6760916B2 (en) 2000-01-14 2004-07-06 Parkervision, Inc. Method, system and computer program product for producing and distributing enhanced media downstreams
GB9902235D0 (en) 1999-02-01 1999-03-24 Emuse Corp Interactive system
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
US6353398B1 (en) 1999-10-22 2002-03-05 Himanshu S. Amin System for dynamically pushing information to a user utilizing global positioning system
US7630986B1 (en) 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US7124101B1 (en) 1999-11-22 2006-10-17 Accenture Llp Asset tracking in a network-based supply chain environment
KR20000017807A (ko) 1999-12-16 2000-04-06 김강욱 네트워크를 기반으로 하는 광고 운영 시스템 및 그 방법
US6505169B1 (en) 2000-01-26 2003-01-07 At&T Corp. Method for adaptive ad insertion in streaming multimedia content
US6642940B1 (en) 2000-03-03 2003-11-04 Massachusetts Institute Of Technology Management of properties for hyperlinked video
US7870579B2 (en) 2000-04-07 2011-01-11 Visible Worl, Inc. Systems and methods for managing and distributing media content
AU2001259823A1 (en) 2000-05-03 2001-11-12 John Yeiser Method for promoting internet web sites
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
US20080021953A1 (en) 2000-08-24 2008-01-24 Jacob Gil Method and System for Automatically Connecting Real-World Entities Directly to Corresponding Network-Based Data Sources or Services
US6857007B1 (en) 2000-08-30 2005-02-15 Bloomfield Enterprises, Llc Personal digital assistant facilitated communication system
US6823495B1 (en) 2000-09-14 2004-11-23 Microsoft Corporation Mapping tool graphical user interface
JP4236372B2 (ja) 2000-09-25 2009-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 空間情報利用システムおよびサーバシステム
JP2002163109A (ja) * 2000-11-28 2002-06-07 Sanyo Electric Co Ltd ユーザ支援装置およびシステム
US7409700B1 (en) 2000-11-03 2008-08-05 The Walt Disney Company System and method for enhanced broadcasting and interactive
CA2327192A1 (en) 2000-11-30 2002-05-30 Ibm Canada Limited-Ibm Canada Limitee System and method for presenting marketing content on a web page
WO2002095527A2 (en) 2001-04-24 2002-11-28 Walker Digital, Llc Method and apparatus for generating and marketing supplemental information
US20050005308A1 (en) 2002-01-29 2005-01-06 Gotuit Video, Inc. Methods and apparatus for recording and replaying sports broadcasts
US20030018541A1 (en) 2001-07-17 2003-01-23 Nohr Steven Paul System and method for delivering virtual content associated with physical objects, images and events
EP1423825B1 (en) 2001-08-02 2011-01-26 Intellocity USA, Inc. Post production visual alterations
US7080394B2 (en) 2001-08-29 2006-07-18 Digeo, Inc. System and method for capturing video frames for focused navigation within a user interface
US20050188400A1 (en) 2001-08-31 2005-08-25 Drew Topel Process for modification of Ad content by localization
US6947531B1 (en) 2001-12-27 2005-09-20 Sprint Spectrum L.P. System and method for advertising supported communications
US6901411B2 (en) 2002-02-11 2005-05-31 Microsoft Corporation Statistical bigram correlation model for image retrieval
US20050114198A1 (en) 2003-11-24 2005-05-26 Ross Koningstein Using concepts for ad targeting
JP2004038252A (ja) * 2002-06-28 2004-02-05 Toshiba Solutions Corp 情報提供支援システム及び情報提供支援方法
US20040044569A1 (en) 2002-08-30 2004-03-04 Roberts William Anthony Systems and method for providing targeted message in a media player
WO2004038547A2 (en) 2002-10-21 2004-05-06 Ebay Inc. Listing recommendation in a network-based commerce system
US7302254B2 (en) 2002-11-08 2007-11-27 Openwave Systems Inc. MMS based photo album publishing system
US7944449B2 (en) 2003-05-14 2011-05-17 Pixar Methods and apparatus for export of animation data to non-native articulation schemes
US9117220B2 (en) 2003-06-16 2015-08-25 Meetup, Inc. Web-based interactive meeting facility with revenue generation through sponsorship
JP2005073236A (ja) 2003-08-06 2005-03-17 Matsushita Electric Ind Co Ltd 中継サーバ、中継サーバのサービス管理方法、サービス提供システム、およびプログラム
US7647242B2 (en) 2003-09-30 2010-01-12 Google, Inc. Increasing a number of relevant advertisements using a relaxed match
JP2005115867A (ja) 2003-10-10 2005-04-28 Sony Corp 私的情報蓄積装置及び私的情報蓄積方法、並びに、私的情報管理装置及び私的情報管理方法
JP2005149126A (ja) 2003-11-14 2005-06-09 Sony Corp 情報取得システム、情報取得方法、及び情報処理プログラム
US20050187823A1 (en) 2004-02-23 2005-08-25 Howes Jeffrey V. Method and system for geographically-targeted internet advertising
US20050220439A1 (en) 2004-03-19 2005-10-06 Carton Owen A Interactive multimedia system and method
US7853255B2 (en) 2004-04-16 2010-12-14 Broadcom Corporation Digital personal assistance via a broadband access gateway
US7707110B2 (en) 2004-05-04 2010-04-27 First Data Corporation System and method for conducting transactions with different forms of payment
US8065611B1 (en) 2004-06-30 2011-11-22 Google Inc. Method and system for mining image searches to associate images with concepts
US20050288096A1 (en) 2004-06-23 2005-12-29 Walker Digital, Llc Methods and apparatus for facilitating a payout at a gaming device using audio / video content
CA2571509A1 (en) 2004-06-24 2006-01-05 Amir Lavi System for facilitating search over a network
US20060004627A1 (en) 2004-06-30 2006-01-05 Shumeet Baluja Advertisements for devices with call functionality, such as mobile phones
WO2006036781A2 (en) 2004-09-22 2006-04-06 Perfect Market Technologies, Inc. Search engine using user intent
US8200231B2 (en) 2004-12-22 2012-06-12 Metro Enterprises, Inc. Process for dynamic routing of customer contacts to service providers in real time
US8141111B2 (en) 2005-05-23 2012-03-20 Open Text S.A. Movie advertising playback techniques
US20080109306A1 (en) 2005-06-15 2008-05-08 Maigret Robert J Media marketplaces
US7627515B2 (en) 2005-06-28 2009-12-01 Microsoft Corporation Price determination for items of low demand
JP2007072712A (ja) 2005-09-06 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> 利用情報を用いたサービス部品発見システム及び方法
US7548915B2 (en) 2005-09-14 2009-06-16 Jorey Ramer Contextual mobile content placement on a mobile communication facility
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US10657538B2 (en) 2005-10-25 2020-05-19 Sony Interactive Entertainment LLC Resolution of advertising rules
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
US7668821B1 (en) 2005-11-17 2010-02-23 Amazon Technologies, Inc. Recommendations based on item tagging activities of users
US8301499B2 (en) 2005-12-29 2012-10-30 Ebay Inc. Product-based advertising
US7523132B2 (en) 2006-02-06 2009-04-21 Itaggit, Inc. Data tag creation from a physical item data record to be attached to a physical item
EP2523441B1 (en) 2006-02-10 2014-01-29 Nuance Communications, Inc. A Mass-Scale, User-Independent, Device-Independent, Voice Message to Text Conversion System
JP4187011B2 (ja) 2006-06-01 2008-11-26 ソニー株式会社 情報処理システム、情報処理装置および方法、並びにプログラム
US7660815B1 (en) 2006-06-30 2010-02-09 Amazon Technologies, Inc. Method and system for occurrence frequency-based scaling of navigation path weights among online content sources
CN100456298C (zh) 2006-07-12 2009-01-28 百度在线网络技术(北京)有限公司 广告信息检索系统及广告信息检索方法
US7831472B2 (en) 2006-08-22 2010-11-09 Yufik Yan M Methods and system for search engine revenue maximization in internet advertising
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080066107A1 (en) 2006-09-12 2008-03-13 Google Inc. Using Viewing Signals in Targeted Video Advertising
US20080086368A1 (en) 2006-10-05 2008-04-10 Google Inc. Location Based, Content Targeted Online Advertising
US8090222B1 (en) 2006-11-15 2012-01-03 Google Inc. Selection of an image or images most representative of a set of images
US8635203B2 (en) 2006-11-16 2014-01-21 Yahoo! Inc. Systems and methods using query patterns to disambiguate query intent
US8126766B2 (en) 2006-11-29 2012-02-28 Yahoo! Inc. Interactive user interface for collecting and processing nomenclature and placement metrics for website design
WO2008101023A1 (en) 2007-02-13 2008-08-21 Google Inc. Identifying advertising specialist
US8650265B2 (en) 2007-02-20 2014-02-11 Yahoo! Inc. Methods of dynamically creating personalized Internet advertisements based on advertiser input
US20080222132A1 (en) 2007-03-07 2008-09-11 Jiangyi Pan Personalized shopping recommendation based on search units
US20080235087A1 (en) 2007-03-20 2008-09-25 Sbc Knowledge Ventures L.P. System and method for presenting alternative advertising data
US7774348B2 (en) 2007-03-28 2010-08-10 Yahoo, Inc. System for providing geographically relevant content to a search query with local intent
US20130290172A1 (en) 2007-04-02 2013-10-31 Alex Mashinsky System and method for crowdsourcing, selecting, transacting gifts and financial discounts in physical stores and e-commerce environments
US8667532B2 (en) 2007-04-18 2014-03-04 Google Inc. Content recognition for targeting video advertisements
US20080268876A1 (en) 2007-04-24 2008-10-30 Natasha Gelfand Method, Device, Mobile Terminal, and Computer Program Product for a Point of Interest Based Scheme for Improving Mobile Visual Searching Functionalities
US7970868B2 (en) 2007-04-26 2011-06-28 Rakesh Garg Customizable, smart-tag based content delivery and notification system, program, and method for connecting entities on the world wide web
US7890380B2 (en) 2007-05-07 2011-02-15 At&T Intellectual Property I, L.P. Method, system, and computer readable medium for implementing sales of products using a trace of an object
US7970649B2 (en) 2007-06-07 2011-06-28 Christopher Jay Wu Systems and methods of task cues
US7979459B2 (en) 2007-06-15 2011-07-12 Microsoft Corporation Scalable model-based product matching
US20080319844A1 (en) 2007-06-22 2008-12-25 Microsoft Corporation Image Advertising System
US20180300745A1 (en) 2007-08-16 2018-10-18 Google Inc. Advertising
JP2009048446A (ja) 2007-08-21 2009-03-05 Nippon Telegr & Teleph Corp <Ntt> 要求サービス提案装置、システム、方法、及びプログラム
US8588816B2 (en) 2007-12-21 2013-11-19 Qualcomm Incorporated Systems and methods for targeted advertising on wireless devices based on device location and current user interests
US10504124B2 (en) 2008-04-21 2019-12-10 Verizon Patent And Licensing Inc. Aggregation and use of information relating to a users context for personalized advertisements
US8452108B2 (en) 2008-06-25 2013-05-28 Gannon Technologies Group Llc Systems and methods for image recognition using graph-based pattern matching
US8391618B1 (en) 2008-09-19 2013-03-05 Adobe Systems Incorporated Semantic image classification and search
US20100153861A1 (en) 2008-09-26 2010-06-17 Deep Rock Drive Partners Inc. Interactive events
JP4496264B2 (ja) 2008-10-24 2010-07-07 株式会社東芝 電子機器及び映像表示方法
US8265167B2 (en) 2008-10-31 2012-09-11 Sprint Communications Company L.P. Application specific video format
US8145561B1 (en) 2009-01-05 2012-03-27 Sprint Communications Company L.P. Phone usage pattern as credit card fraud detection trigger
WO2010116333A1 (en) 2009-04-07 2010-10-14 Alon Atsmon System and process for builiding a catalog using visual objects
US8396287B2 (en) 2009-05-15 2013-03-12 Google Inc. Landmarks from digital photo collections
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8463783B1 (en) 2009-07-06 2013-06-11 Google Inc. Advertisement selection data clustering
US20150278878A1 (en) 2009-09-10 2015-10-01 Google Inc. System and method of displaying advertisements
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US20110208822A1 (en) 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
KR101597247B1 (ko) 2010-03-29 2016-02-25 네이버 주식회사 실시간 키워드 연동형 광고 노출 시스템 및 방법
JP5057184B2 (ja) 2010-03-31 2012-10-24 アイシン・エィ・ダブリュ株式会社 画像処理システム及び車両制御システム
US8533043B2 (en) 2010-03-31 2013-09-10 Yahoo! Inc. Clickable terms for contextual advertising
US9652462B2 (en) 2010-04-29 2017-05-16 Google Inc. Identifying responsive resources across still images and videos
US20110295847A1 (en) 2010-06-01 2011-12-01 Microsoft Corporation Concept interface for search engines
EP2596641A4 (en) 2010-07-21 2014-07-30 Thomson Licensing METHOD AND DEVICE FOR PROVIDING ADDITIONAL CONTENT IN A 3D COMMUNICATION SYSTEM
US20120059713A1 (en) 2010-08-27 2012-03-08 Adchemy, Inc. Matching Advertisers and Users Based on Their Respective Intents
US20120072280A1 (en) 2010-09-20 2012-03-22 Lin Jennifer W Tracking Conversions
US8606635B2 (en) 2010-10-15 2013-12-10 Google Inc. System and method for presenting content on a retailer's content page using manufacturers' product information
JP5587137B2 (ja) 2010-10-29 2014-09-10 キヤノン株式会社 測定装置及び測定方法
US20120150657A1 (en) 2010-12-14 2012-06-14 Microsoft Corporation Enabling Advertisers to Bid on Abstract Objects
US9130988B2 (en) 2010-12-21 2015-09-08 Microsoft Technology Licensing, Llc Scareware detection
US20120224768A1 (en) 2011-03-04 2012-09-06 Olive Root, LLC System and method for visual search
US8346815B2 (en) 2011-05-12 2013-01-01 Google Inc. Dynamic image display area and image display within web search results
US8553981B2 (en) 2011-05-17 2013-10-08 Microsoft Corporation Gesture-based visual search
US8583471B1 (en) 2011-06-13 2013-11-12 Facebook, Inc. Inferring household income for users of a social networking system
US10972530B2 (en) 2016-12-30 2021-04-06 Google Llc Audio-based data structure generation
US8688514B1 (en) 2011-06-24 2014-04-01 Google Inc. Ad selection using image data
US9811850B2 (en) 2012-04-08 2017-11-07 Microsoft Technology Licensing, Llc User task completion via open market of actions and/or providers
US9141196B2 (en) 2012-04-16 2015-09-22 Qualcomm Incorporated Robust and efficient learning object tracker
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US8943065B2 (en) 2012-05-23 2015-01-27 Oracle International Corporation Catalog performance and integrity analysis
KR101909250B1 (ko) * 2012-06-07 2018-10-17 주식회사 케이티 단말의 음성 정보에 기초하여 서비스 타입을 결정하는 음성 인식 서버, 서비스 타입에 따라 단말로 컨텐츠를 제공하는 컨텐츠 서버, 단말 및 방법
US9304738B1 (en) 2012-06-14 2016-04-05 Goolge Inc. Systems and methods for selecting content using weighted terms
ES2689471T3 (es) 2012-07-10 2018-11-14 Adeka Corporation Gránulo mixto
US20160063106A1 (en) 2012-08-08 2016-03-03 Google Inc. Related Entity Search
US20170323230A1 (en) 2012-08-21 2017-11-09 Google Inc. Evaluating keyword performance
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
US9535887B2 (en) 2013-02-26 2017-01-03 Google Inc. Creation of a content display area on a web page
US9305545B2 (en) * 2013-03-13 2016-04-05 Samsung Electronics Co., Ltd. Speech recognition vocabulary integration for classifying words to identify vocabulary application group
WO2014139120A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Search intent preview, disambiguation, and refinement
US20140278528A1 (en) * 2013-03-14 2014-09-18 Vikram Simha Apparatus and method for a digital medical assistant
US20150287410A1 (en) * 2013-03-15 2015-10-08 Google Inc. Speech and semantic parsing for content selection
US20140324851A1 (en) 2013-04-30 2014-10-30 Wal-Mart Stores, Inc. Classifying e-commerce queries to generate category mappings for dominant products
US20140351241A1 (en) 2013-05-24 2014-11-27 Sap Ag Identifying and invoking applications based on data in a knowledge graph
US10740396B2 (en) 2013-05-24 2020-08-11 Sap Se Representing enterprise data in a knowledge graph
US20160212455A1 (en) 2013-09-25 2016-07-21 Intel Corporation Dynamic product placement in media content
US10614153B2 (en) * 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US9830044B2 (en) * 2013-12-31 2017-11-28 Next It Corporation Virtual assistant team customization
US9195997B2 (en) 2014-01-10 2015-11-24 Google Inc. Generating content campaign snapshots
WO2015117268A1 (en) 2014-02-07 2015-08-13 Google Inc. Arbitrary size content item generation
US9172764B2 (en) 2014-03-05 2015-10-27 Ricoh Company, Ltd. Generating a platform for social interaction
CN105025051A (zh) * 2014-04-24 2015-11-04 深圳市赛格导航科技股份有限公司 一种云端语音服务提供方法和系统
US9659106B2 (en) 2014-06-19 2017-05-23 Go Daddy Operating Company, LLC Software application customized for target market
US9189514B1 (en) 2014-09-04 2015-11-17 Lucas J. Myslinski Optimized fact checking method and system
US10290028B2 (en) 2014-10-08 2019-05-14 Streamoid Technologies Private Limited Computer implemented system for managing advertisements and a method thereof
US9959129B2 (en) * 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
US20160210689A1 (en) 2015-01-16 2016-07-21 Google Inc. Content item configuration optimization
US11093971B2 (en) 2015-02-27 2021-08-17 Keypoint Technologies India Pvt Ltd. Contextual discovery
EP3269085A4 (en) * 2015-03-12 2018-11-07 Skrumble Technologies Inc. Cloud computing telecommunications platform
US9767483B2 (en) 2015-07-22 2017-09-19 Adobe Systems Incorporated Enabling access to third-party digital assets for systems that market content to target audiences
CN105141987B (zh) 2015-08-14 2019-04-05 京东方科技集团股份有限公司 广告植入方法和广告植入系统
US20170061515A1 (en) 2015-08-24 2017-03-02 Google Inc. Systems and methods for setting allocations and prices for content in an online marketplace
US10366404B2 (en) 2015-09-10 2019-07-30 The Nielsen Company (Us), Llc Methods and apparatus to group advertisements by advertisement campaign
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
US11100076B2 (en) * 2016-03-08 2021-08-24 Hartford Fire Insurance Company Processing system for automated electronic record creation and transmission
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US9875740B1 (en) 2016-06-20 2018-01-23 A9.Com, Inc. Using voice information to influence importance of search result categories
US10056078B1 (en) 2016-06-28 2018-08-21 Amazon Technology, Inc. Output of content based on speech-based searching and browsing requests
US9972318B1 (en) * 2016-09-21 2018-05-15 Amazon Technologies, Inc. Interpreting voice commands
US20180097940A1 (en) * 2016-09-30 2018-04-05 Genesys Telecommunications Laboratories, Inc. System and method for dynamic generation and optimization of process flows for a customer contact center
US10276263B2 (en) * 2016-10-27 2019-04-30 Snaps Solutions, Llc Systems and methods for surfacing contextually relevant content into the workflow of a third party system via a cloud-based micro-services architecture
US10068573B1 (en) 2016-12-21 2018-09-04 Amazon Technologies, Inc. Approaches for voice-activated audio commands
US10439977B2 (en) * 2016-12-27 2019-10-08 Facebook, Inc. Access controls for units of content in a messaging service
US10319375B2 (en) * 2016-12-28 2019-06-11 Amazon Technologies, Inc. Audio message extraction
US10565256B2 (en) 2017-03-20 2020-02-18 Google Llc Contextually disambiguating queries
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002037470A2 (en) 2000-10-30 2002-05-10 Keen.Com An apparatus and method for specifying and obtaining services through voice commands
US20070123222A1 (en) * 2005-11-29 2007-05-31 International Business Machines Corporation Method and system for invoking push-to-service offerings
US20070174258A1 (en) * 2006-01-23 2007-07-26 Jones Scott A Targeted mobile device advertisements
US20130091453A1 (en) * 2011-10-11 2013-04-11 Microsoft Corporation Motivation of Task Completion and Personalization of Tasks and Lists
US20160315995A1 (en) * 2015-04-21 2016-10-27 UberGrape GmbH DBA ChatGrape Systems and methods for integrating external resources from third-party services

Also Published As

Publication number Publication date
KR102015069B1 (ko) 2019-08-27
EP3360314A1 (en) 2018-08-15
EP3905653A1 (en) 2021-11-03
US11949733B2 (en) 2024-04-02
KR20190099350A (ko) 2019-08-26
DE112017000122T5 (de) 2018-10-31
EP3360314B1 (en) 2021-06-23
US10972530B2 (en) 2021-04-06
JP2019194918A (ja) 2019-11-07
ES2884090T3 (es) 2021-12-10
JP7163253B2 (ja) 2022-10-31
CN113918896A (zh) 2022-01-11
CN108551766A (zh) 2018-09-18
US20210160308A1 (en) 2021-05-27
JP2019506759A (ja) 2019-03-07
WO2018125299A1 (en) 2018-07-05
JP6563519B2 (ja) 2019-08-21
DE212017000029U1 (de) 2019-07-10
CN108551766B (zh) 2021-09-24
US20180191808A1 (en) 2018-07-05
KR20180090957A (ko) 2018-08-14

Similar Documents

Publication Publication Date Title
KR102165262B1 (ko) 서비스 제공자와의 세션 설정을 위한 자연어 처리
KR102125991B1 (ko) 선택적 센서 폴링
US11475886B2 (en) Feedback controller for data transmissions
JP2022009571A (ja) 登録されていないリソースによるオーディオベースのネットワークセッションの確立

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant