KR20200057806A - 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리 - Google Patents

패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리 Download PDF

Info

Publication number
KR20200057806A
KR20200057806A KR1020207014345A KR20207014345A KR20200057806A KR 20200057806 A KR20200057806 A KR 20200057806A KR 1020207014345 A KR1020207014345 A KR 1020207014345A KR 20207014345 A KR20207014345 A KR 20207014345A KR 20200057806 A KR20200057806 A KR 20200057806A
Authority
KR
South Korea
Prior art keywords
action
data processing
processing system
computing device
content item
Prior art date
Application number
KR1020207014345A
Other languages
English (en)
Other versions
KR102270132B1 (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 구글 엘엘씨
Priority to KR1020217019278A priority Critical patent/KR20210079422A/ko
Publication of KR20200057806A publication Critical patent/KR20200057806A/ko
Application granted granted Critical
Publication of KR102270132B1 publication Critical patent/KR102270132B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • 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
    • 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/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/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들(sequence dependent operations)의 최적화가 제공된다. 자연 언어 프로세서 컴포넌트는 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 예측 컴포넌트는 상기 트리거 키워드 및 상기 요청에 기초하여 스레드를 결정할 수 있고, 제 1 액션, 상기 제 1 액션에 후속하는 제 2 액션 및 상기 제 2 액션에 후속하는 제 3 액션을 포함한다. 컨텐트 선택기 컴포넌트는 상기 제 3 액션 및 상기 트리거 키워드에 기초하여, 컨텐트 항목을 선택할 수 있다. 오디오 신호 생성기 컴포넌트는 상기 컨텐트 항목을 포함하는 출력 신호를 생성할 수 있다. 인터페이스는 클라이언트 컴퓨팅 기기로 하여금 스피커를 구동시켜, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 생성할 수 있다.

Description

패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리{SEQUENCE DEPENDENT OPERATION PROCESSING OF PACKET BASED DATA MESSAGE TRANSMISSIONS}
출원과 관련된 상호 참조
본 출원은 2016년 12월 30일자로 출원되고 "패킷 기반 데이터 메시지 전송들의 시퀀스 의존 동작 처리(SEQUENCE DEPENDENT OPERATION PROCESSING OF PACKET BASED DATA MESSAGE TRANSMISSIONS)"라는 명칭의 미국 특허 출원 제15/395,682호의 우선권의 이익을 주장하며, 이는 모든 목적을 위해 전체로서 참조에 의해 본원에 통합된다.
본 발명은 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리에 관한 것이다.
컴퓨팅 기기들 간의 네트워크 트래픽 데이터의 패킷 기반 또는 다른 방식의 과도한 네트워크 전송으로 인해, 컴퓨팅 기기가 네트워크 트래픽 데이터를 적절히 처리하거나, 네트워크 트래픽 데이터와 관련된 동작을 완료하거나, 또는 네트워크 트래픽 데이터에 적시에 응답하지 못하게 될 수 있다. 네트워크 트래픽 데이터의 과도한 네트워크 전송으로 인해 응답 컴퓨팅 기기가 처리할 수 있는 용량 이상인 경우, 데이터 라우팅을 복잡하게 하거나 응답 품질을 저하시켜 비효율적인 대역폭 사용을 초래할 수 있다. 컴퓨팅 기기들 간의 네트워크 트래픽 데이터의 네트워크 전송을 개시할 수 있는 다수의 컨텐트 항목 객체들에 의해 컨텐트 항목 객체들에 대응하는 네트워크 전송들의 제어가 복잡해질 수 있다.
적어도 하나의 양상은 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속적 동작들(sequence dependent operations)의 처리를 최적화하는 시스템에 관한 것이다. 데이터 처리 시스템에 의해 실행되는 자연 언어 프로세서 컴포넌트가 데이터 패킷들을 수신할 수있다. 데이터 패킷은 클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함할 수 있다. 자연 언어 프로세서 컴포넌트는 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱할 수 있다. 예측 컴포넌트는 상기 트리거 키워드 및 상기 요청에 기초하여 스레드를 결정할 수 있다. 상기 스레드는 제 1 액션, 상기 제 1 액션에 후속하는 제 2 액션 및 상기 제 2 액션에 후속하는 제 3 액션을 포함할 수 있다. 상기 예측 컴포넌트는, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 제 3 액션의 지시를 상기 데이터 처리 시스템의 컨텐트 선택기 컴포넌트에 제공할 수 있다. 상기 컨텐트 선택기 컴포넌트는 상기 자연 언어 프로세서에 의해 식별된 상기 제 3 액션 및 상기 트리거 키워드에 기초하여, 실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 선택할 수 있다. 오디오 신호 생성기 컴포넌트는 상기 컨텐트 항목을 포함하는 출력 신호를 생성하기 위해 상기 데이터 처리 시스템에 의해 실행된다. 상기 데이터 처리 시스템의 인터페이스는 상기 오디오 신호 생성기 컴포넌트에 의해 생성된 상기 출력 신호를 포함하는 데이터 패킷들을 전송하고 상기 클라이언트 컴퓨팅 기기에 의해 실행되는 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기의 스피커를 구동시켜, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 생성할 수 있다.
적어도 하나의 양상은 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들(sequence dependent operations)을 위한 액션을 호출하는 방법에 관한 것이다. 상기 방법은 클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 데이터 처리 시스템에 의해 실행되는 자연 언어 프로세서 컴포넌트에 의해 수신하는 단계를 포함한다. 상기 방법은 상기 자연 언어 프로세서 컴포넌트에 의해, 상기 입력 오디오 신호에 기초하여, 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하는 단계를 포함한다. 상기 방법은 상기 트리거 키워드 및 상기 요청에 기초하여 스레드를 예측 컴포넌트에 의해 결정하는 단계를 포함한다. 상기 스레드는 제 1 액션, 상기 제 1 액션에 후속하는 제 2 액션 및 상기 제 2 액션에 후속하는 제 3 액션을 포함할 수 있다. 상기 방법은 상기 예측 컴포넌트에 의해, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 제 3 액션의 지시를 상기 데이터 처리 시스템의 컨텐트 선택기 컴포넌트에 제공하는 단계를 포함할 수 있다. 상기 방법은 상기 자연 언어 프로세서에 의해 식별된 상기 제 3 액션 및 상기 트리거 키워드에 기초하여, 실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 상기 컨텐트 선택기 컴포넌트에 의해 선택하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 처리 시스템에 의해 실행되는 오디오 신호 생성기 컴포넌트에 의해, 상기 컨텐트 항목을 포함하는 출력 신호를 획득하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 처리 시스템의 인터페이스를 통해, 상기 오디오 신호 생성기 컴포넌트에 의해 획득된 출력 신호를 포함하는 데이터 패킷을 전송하여 상기 클라이언트 컴퓨팅 기기에 의해 실행되는 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기 및 제2 클라이언트 컴퓨팅 기기 중 적어도 하나의 스피커를 구동시켜, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 생성하는 단계를 포함할 수 있다.
적어도 하나의 양상은 하나 이상의 데이터 프로세서에 의해 실행되는 경우 하나 이상의 데이터 프로세서로 하여금 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 의존 동작들(sequence dependent operations)을 선택하는 동작들을 수행하게 하는 명령들을 저장하는 컴퓨터 판독 가능 저장 매체에 관한 것이다. 상기 동작들(operations)은 클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 데이터 처리 시스템에 의해 실행되는 자연 언어 프로세서 컴포넌트에 의해 수신할 수 있다. 상기 동작들은 상기 자연 언어 프로세서 컴포넌트에 의해, 상기 입력 오디오 신호에 기초하여, 요청 및 상기 요청에 대응하는 트리거 키워드를 식별할 수 있다. 상기 동작들은 상기 트리거 키워드 및 상기 요청에 기초하여 스레드를 예측 컴포넌트에 의해 결정할 수 있다. 상기 스레드는 제 1 액션, 상기 제 1 액션에 후속하는 제 2 액션 및 상기 제 2 액션에 후속하는 제 3 액션을 포함할 수 있다. 상기 동작들은 상기 예측 컴포넌트에 의해, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 제 3 액션의 지시를 상기 데이터 처리 시스템의 컨텐트 선택기 컴포넌트에 제공할 수 있다. 상기 동작들은 상기 자연 언어 프로세서에 의해 식별된 상기 제 3 액션 및 상기 트리거 키워드에 기초하여, 실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 상기 컨텐트 선택기 컴포넌트에 의해 선택할 수 있다. 상기 동작들은 상기 데이터 처리 시스템에 의해 실행되는 오디오 신호 생성기 컴포넌트에 의해, 상기 컨텐트 항목을 포함하는 출력 신호를 생성할 수 있다. 상기 동작들은 상기 데이터 처리 시스템의 인터페이스를 통해, 상기 오디오 신호 생성기 컴포넌트에 의해 획득된 출력 신호를 포함하는 데이터 패킷을 전송하여 상기 클라이언트 컴퓨팅 기기에 의해 실행되는 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기 및 제2 클라이언트 컴퓨팅 기기 중 적어도 하나의 스피커를 구동시켜, 상기 제 1 액션 및 상기 제 2 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 생성할 수 있다.
이러한 양상들과 다른 양상들 및 구현들이 아래에서 상세히 논의된다. 전술 한 정보 및 다음의 상세한 설명은 다양한 양상 및 구현의 예시적인 실시 예를 포함하고, 청구된 양상 및 구현의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양상들 및 구현들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부된 도면은 스케일링되어 작성되도록 의도되는 것은 아니다. 다양한 도면에서 동일한 참조 부호들 및 명칭은 동일한 요소를 나타낸다. 명확성을 위해, 모든 컴포넌트들이 모든 도면에 라벨링되는 것은 아니다. 상기 도면에서:
도 1은 음성 활성화 컴퓨터 네트워크 환경에서 시퀀스 종속 동작의 처리를 최적화하는 시스템을 도시한다.
도 2는 시퀀스 종속 동작을 포함하는 스레드의 기능적 다이어그램을 도시한다.
도 3은 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작에 대한 동작을 호출하는 방법을 도시한다.
도 4는 본원에 설명되고 예시된 시스템 및 방법의 요소를 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 나타내는 블록도이다.
음성 활성 컴퓨터 네트워크 환경에서 시퀀스 종속 동작의 처리를 최적화하기 위한 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현의 보다 상세한 설명이 이하에서 후속된다. 위에서 도입되고 아래에서보다 상세하게 논의되는 다양한 개념은 다양한 방법으로 구현될 수 있다.
본 개시의 시스템 및 방법은 일반적으로 음성 활성 컴퓨터 네트워크 환경에서 데이터 패킷 기반 송신을 통해 시퀀스 의존 동작을 처리하는 순서를 최적화하거나 동적으로 조정하는 데이터 처리 시스템에 관한 것이다. 데이터 처리 시스템은, 예를 들어, 비동기적으로, 순서를 벗어나거나, 복수의 시퀀스 종속적인 동작들로부터 동작들을 동적으로 선택함으로써, 하나 이상의 컴퓨터 네트워크들에 걸친 데이터 패킷 전송의 효율 및 유효성을 향상시킬 수 있다. 다수의 컴퓨팅 기기들 사이의 컴퓨터 네트워크를 통해 선택된 동작들에 대응하는 데이터 패킷들 또는 다른 프로토콜 기반 신호들이 라우팅될 수 있다. 데이터 처리 시스템은 시퀀스 종속 동작 세트의 초기 동작을 일시적으로 또는 영구적으로 스킵할 수 있고, 대신에 후속 동작 또는 최종 동작에 대응하는 동작으로 진행할 수 있다. 복수의 시퀀스 종속 동작 중 초기(early) 동작에 대응하는 다른 프로토콜 기반의 데이터 송신들 또는 패킷을 바이패싱하고, 그 대신에 일련의 동작으로 후단 동작을 위한 패킷 기반 데이터 전송으로 직접 진행함으로써, 데이터 처리 시스템은 초기 단계 작업과 연관된 데이터 처리를 감소, 지연, 또는 제거할 수 있다. 이는 처리 전력 및 메모리와 같은 다른 연산 자원을 절약하고, 데이터 처리 시스템에 의한 전력 소비를 감소시키며, 컴퓨터 네트워크를 통한 감소된 데이터 전송은 데이터 처리 시스템의 대역폭 요구 사항 및 사용을 감소시킨다.
본원에 기술된 시스템 및 방법은 입력 오디오 쿼리(query)를 수신하는 데이터 처리 시스템을 포함할 수 있다. 입력 오디오 쿼리로부터, 데이터 처리 시스템은 요청 및 요청에 대응하는 트리거 키워드를 식별할 수 있다. 트리거 키워드 또는 요청에 기초하여, 데이터 처리 시스템은 복수의 시퀀스 종속 동작을 나타내는 스레드를 결정할 수 있다. 예를 들어 스레드는 제 1 액션, 제 1 액션에 후속하는 제 2 액션 및 제 2 액션에 후속하는 제 3 액션을 나타낼 수 있다. 이 예에서, 시퀀스 종속 동작의 스레드에서의 마지막 동작인 제 3 액션은 데이터 처리 시스템에 의해 제 1 액션이 발생하기 이전 및 제 2 액션이 발생하기 이전에 컨텐트 항목을 선택하는데 사용될 수 있다. 적어도 일부 데이터 처리 동작을 수행하기 이전에 또는 수행하지 않고, 제 1 액션 또는 제 2 액션에 기초하여 이는 수행될 수 있다. 이러한 처리 동작을 바이패스하여, 바이패스가 없는 경우보다 적은 데이터 처리 및 전력 사용량으로 제 3 액션에 대한 컨텐트 항목이 선택된다.
컨텐트 항목은 출력 신호를 포함할 수 있다. 데이터 처리 시스템은 컴퓨터 네트워크를 통해 클라이언트 컴퓨팅 기기로 다른 프로토콜 기반의 데이터 메시지 전송 또는 패킷에 의한 출력 신호를 포함하는 컨텐트 항목을 제공할 수 있다. 출력 신호는 클라이언트 컴퓨팅 기기의 오디오 드라이버 컴포넌트로 하여금 클라이언트 컴퓨팅 기기로부터 출력될 수 있는 음향 파, 예를 들어 오디오 출력을 생성하게 할 수 있다. 오디오 출력은 제 3 (예를 들어, 마지막 또는 가장 최근의) 동작에 대응하고, 제 1 액션의 발생 이전 또는 제 2 액션의 발생 이전에 클라이언트 컴퓨팅 기기로부터의 출력에 의해 수행될 수 있다. 제 1 및 제 2 시퀀스 의존 동작들의 발생 전에 제 3 액션에 대응하는 컨텐트 항목을 먼저 선택하여 전송하기 위한 제 1 및 제 2 액션들의 바이패스(또는 이들 동작들에 대응하는 컨텐트 항목들의 선택 및 제공의 바이패스)는 바이패스가 없는 경우보다 더 적은 데이터 처리 작업, 더 적은 메모리 사용량 및 더 적은 네트워크 대역폭 이용을 발생시킨다.
도 1은 음성 활성 데이터 패킷(또는 다른 프로토콜) 기반 컴퓨터 네트워크 환경에서 시퀀스 종속적인 동작들의 처리를 최적화하기위한 예시적인 시스템(100)을 도시한다. 시스템(100)은 적어도 하나의 데이터 처리 시스템(105)을 포함할 수 있다. 데이터 처리 시스템(105)은 적어도 하나의 프로세서를 갖는 적어도 하나의 서버를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 적어도 하나의 데이터 센터 또는 서버 팜에 위치한 복수의 서버를 포함할 수 있다. 데이터 처리 시스템(105)은 오디오 입력 신호로부터 요청 및 그 요청과 관련된 트리거 키워드를 결정할 수 있다. 요청 및 트리거 키워드에 기초하여, 데이터 처리 시스템(105)은 복수의 시퀀스 종속 동작을 포함하는 스레드를 결정 또는 선택할 수 있고, 예를 들어 음성으로 활성화된 통신 또는 플래닝 시스템의 일부로 종속 동작들의 시퀀스와 매치하지 않는 순서로 컨텐트 항목을 선택할 수 있다(그리고, 본 명세서에 기술된 바와 같은 다른 동작을 개시할 수 있다). 컨텐트 항목들은 렌더링될 때 오디오 출력 또는 음향 파를 제공하는 하나 이상의 오디오 파일들을 포함할 수 있다. 컨텐트 항목들은 오디오 컨텐트에 추가로 또는 오디오 컨텐트 대신에 다른 컨텐트(예를 들어, 텍스트, 비디오 또는 이미지 컨텐트)를 포함할 수 있다. 예를 들어, 컨텐트 항목은 오디오 파일을 포함하지 않고 오디오 출력을 렌더링하지 않는 텍스트 또는 이미지 파일, 또는 이들의 조합을 포함할 수 있다.
데이터 처리 시스템(105)은 논리적으로 그룹화된 다수의 서버를 포함할 수 있고 분산 컴퓨팅 기술을 용이하게 한다. 논리적인 서버 그룹은 데이터 센터, 서버 팜 또는 컴퓨터 팜이라고할 수 있다. 서버는 지리적으로 분산되어있을 수 있다. 데이터 센터 또는 머신 팜은 단일 엔티티로 관리되거나 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 시스템 팜 내의 서버는 이기종(heterogeneous) 일 수 있다 ― 하나 이상의 서버 또는 머신들이 하나 이상의 운영 체제 플랫폼 유형에 따라 동작할 수 있다. 데이터 처리 시스템(105)은 예를 들어 기업 데이터 센터에 위치된 연관된 저장 시스템과 함께 하나 이상의 고밀도 랙 시스템에 저장되는 데이터 센터의 서버를 포함할 수 있다. 이러한 방식으로 통합 서버를 갖춘 데이터 처리 시스템(105)은 서버 및 고성능 저장 시스템을 로컬 고성능 네트워크상에 위치시킴으로써 시스템 관리 가능성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 스토리지 시스템을 포함하는 데이터 처리 시스템(105) 컴포넌트의 전부 또는 일부를 중앙 집중화하고 이들을 고급 시스템 관리 툴과 결합시킴으로써 서버 자원을 보다 효율적으로 사용할 수 있게 되어 전력 및 처리 요구 사항을 절약하고 대역폭 사용을 감소시킨다.
데이터 처리 시스템(105)은 적어도 하나의 자연 언어 프로세서(NLP:natural language processor) 컴포넌트(110), 적어도 하나의 인터페이스(115), 적어도 하나의 예측 컴포넌트(120), 적어도 하나의 컨텐트 선택기 컴포넌트(125), 적어도 하나의 오디오 신호 생성기 컴포넌트(130), 적어도 하나의 직접 동작 어플리케이션 프로그래밍 인터페이스(API)(135), 및 적어도 하나의 세션 핸들러 컴포넌트(140), 및 적어도 하나의 데이터 저장소(145)를 포함한다. 자연 언어 프로세서 컴포넌트(110), 인터페이스(115), 예측 컴포넌트(120), 컨텐트 선택기 컴포넌트(125), 오디오 신호 생성기 컴포넌트(130), 다이렉트 액션 API(135) 및 세션 핸들러 컴포넌트(140)는 적어도 하나의 컴퓨터 네트워크(165)를 통해 데이터 저장소(145)와 함께, 및 다른 컴퓨팅 기기들 (예를 들어, 클라이언트 컴퓨팅 기기(150), 컨텐트 제공자 컴퓨팅 기기(155), 또는 서비스 제공자 컴퓨팅 기기(160))과 함께 통신하도록 구성된 적어도 하나의 처리 유닛, 서버, 가상 서버, 회로, 엔진, 에이전트, 어플라이언스, 또는 프로그래머블 로직 어레이들과 같은 다른 로직 기기를 각각 포함할 수 있다. 네트워크(165)는 인터넷과 같은 컴퓨터 네트워크, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 이동 전화 통신 네트워크와 같은 다른 컴퓨터 네트워크와 같은 컴퓨터 네트워크, 및 이들의 조합을 포함할 수 있다.
네트워크(165)는 컨텐트 배치 또는 검색 엔진 결과 시스템과 연관되거나, 또는 컨텐트 항목 배치 캠페인의 일부로서 제 3 자 컨텐트 항목들을 포함할 자격이 있는 디스플레이 네트워크, 예컨대, 인터넷 상에 이용가능한 자원들의 정보의 집합을 포함하거나 또는 구성할 수 있다. 네트워크(165)는 클라이언트 컴퓨팅 기기(150)에 의해 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 명칭 또는 유니폼 자원 로케이터와 같은 정보 자원에 액세스하기 위해 데이터 처리 시스템(105)에 의해 사용될 수 있다. 예를 들어, 네트워크(165)를 통해 클라이언트 컴퓨팅 기기(150)의 사용자는 컨텐트 제공자 컴퓨팅 기기(155) 또는 서비스 제공자 컴퓨팅 기기(160)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다.
네트워크(165)는 예를 들어 점-대-점 네트워크, 방송 네트워크, 광역 네트워크, 로컬 영역 통신망, 통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode:비동기 전송 모드) 네트워크, SONET(Synchronous Optical Network:동기 광 네트워크) 네트워크, SDH(Synchronous Digital Hierarchy: 동기 디지털 계층) 네트워크, 무선 네트워크 또는 유선 네트워크, 및 이들의 조합을 포함할 수 있다. 네트워크(165)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(165)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크(165)는 어드밴스드 이동 전화 프로토콜("AMPS"), 시분할 다중 접속("TDMA"), 코드 분할 다중 접속("CDMA"), 모바일 통신을 위한 글로벌 시스템("GSM"), 글로벌 패킷 무선 서비스(GPRS) 또는 범용 이동 통신 시스템( "UMTS")를 포함하는, 모바일 기기들 간에 통신하기 위해 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일과 같은 모바일 전화 네트워크에 적용될 수 있다. 다른 유형의 데이터가 다른 프로토콜을 통해 전송되거나 또는 동일한 유형의 데이터가 다른 프로토콜을 통해 전송될 수 있다.
클라이언트 컴퓨팅 기기(150), 컨텐트 제공자 컴퓨팅 기기(155) 및 서비스 제공자 컴퓨팅 기기(160)는 네트워크(165)를 통해 데이터 처리 시스템(105)과 또는 상호 간에 통신하기 위한 프로세서를 갖는 컴퓨팅 기기와 같은 적어도 하나의 논리 장치를 각각 포함할 수 있다. 클라이언트 컴퓨팅 기기(150), 컨텐트 제공자 컴퓨팅 기기(155) 및 서비스 제공자 컴퓨팅 기기(160)는 각각 적어도 하나의 서버, 프로세서 또는 메모리, 또는 적어도 하나의 데이터 센터에 위치하는 서버들 또는 복수의 연산 자원을 포함할 수 있다. 클라이언트 컴퓨팅 기기(150), 컨텐트 제공자 컴퓨팅 기기(155) 및 서비스 제공자 컴퓨팅 기기(160)는 각각 데스크톱 컴퓨터, 랩탑, 태블릿, 개인 휴대 정보 단말기, 스마트 폰, 휴대용 컴퓨터, 서버, 씬(thin) 클라이언트 컴퓨터, 가상 서버 또는 다른 컴퓨팅 기기를 포함할 수 있다.
클라이언트 컴퓨팅 기기(150)는 적어도 하나의 센서(151), 적어도 하나의 트랜스듀서(152), 적어도 하나의 오디오 드라이버(153) 및 적어도 하나의 스피커(154)를 포함할 수 있다. 센서(151)는 마이크로폰 또는 오디오 입력 센서를 포함할 수 있다. 트랜스듀서(152)는 오디오 입력을 전자 신호로 변환할 수 있다. 오디오 드라이버(153)는 클라이언트 컴퓨팅 기기(150)의 하나 이상의 프로세서에 의해 실행되는 스크립트 또는 프로그램을 포함하여, 클라이언트 컴퓨팅 기기(150)의 다른 컴포넌트들 중에서 센서(151), 트랜스듀서(152) 또는 오디오 드라이버(153)를 제어하여 오디오 입력을 처리하거나 또는 오디오 출력을 제공할 수 있다. 스피커(154)는 오디오 출력 신호를 전송할 수 있다.
클라이언트 컴퓨팅 기기(150)는 (센서(151)를 통해) 클라이언트 컴퓨팅 기기(150)에 오디오 입력으로서 음성 쿼리를 입력하는 최종 사용자(end user)와 연관될 수 있고, 데이터 처리 시스템(105)(또는 컨텐트 제공자 컴퓨팅 기기(155) 또는 서비스 제공자 컴퓨팅 기기(160))으로부터 클라이언트 컴퓨팅 기기(150)로 제공될 수 있고, 스피커(154)로부터 출력될 수있는 컴퓨터 생성 음성의 형태로 오디오 출력을 수신할 수 있다. 컴퓨터 생성 음성은 실제 사람 또는 컴퓨터 생성 언어로부터의 녹음들을 포함할 수 있다.
컨텐트 제공자 컴퓨팅 기기(155)는 클라이언트 컴퓨팅 기기(150)에 의한 디스플레이용 오디오 기반 컨텐트 항목을 오디오 출력 컨텐트 항목으로서 제공할 수 있다. 컨텐트 항목은 "당신은 제가 택시를 호출하기를 원하십니까? (Would you like me to order you a taxi?)"라고 말하는 음성 기반 메시지와 같은, 물품 또는 서비스에 대한 제안을 포함할 수 있다. 예를 들어, 컨텐트 제공자 컴퓨팅 기기(155)는 음성 기반의 쿼리에 응답하여 제공될 수 있는 일련의 오디오 컨텐트 항목들을 저장하기 위한 메모리를 포함할 수 있다. 컨텐트 제공자 컴퓨팅 기기(155)는 오디오 기반 컨텐트 항목(또는 다른 컨텐트 항목)을 또한 데이터 처리 시스템(105)에 제공할 수 있고, 이들은 데이터 저장소(145)에 저장될 수 있다. 데이터 처리 시스템(105)은 오디오 컨텐트 항목들을 선택할 수 있고 오디오 컨텐트 항목들을 클라이언트 컴퓨팅 기기(150)에 제공할 수 있다 (또는 컨텐트 제공자 컴퓨팅 기기(155)가 제공하도록 지시할 수 있다). 오디오 기반 컨텐트 항목들은 전적으로 오디오일 수 있거나 텍스트, 이미지, 또는 비디오 데이터와 결합될 수 있다.
서비스 제공자 컴퓨팅 기기(160)는 적어도 하나의 서비스 제공자 자연 언어 프로세서(NLP) 컴포넌트(161) 및 적어도 하나의 서비스 제공자 인터페이스(162)를 포함할 수 있다. 서비스 제공자 NLP 컴포넌트(161) (또는 서비스 제공자 컴퓨팅 기기(160)의 다이렉트 액션 API와 같은 다른 컴포넌트들)은 (데이터 처리 시스템(105)을 통해 또는 데이터 처리 시스템(105)을 바이패스하여) 클라이언트 컴퓨팅 기기(150)와 연동하여 클라이언트 컴퓨팅 기기(150)와 서비스 제공자 컴퓨팅 기기(160) 간에 전후 실시간 음성(back-and-forth real-time voice) 또는 오디오 기반 대화 (예컨대, 세션)을 생성할 수 있다. 예를 들어, 서비스 제공자 인터페이스(162)는 데이터 메시지를 수신하거나 또는 데이터 처리 시스템(105)의 다이렉트 액션 API(135)에 제공할 수 있다. 서비스 제공자 컴퓨팅 기기(160) 및 컨텐트 제공자 컴퓨팅 기기(155)는 동일한 엔티티와 연관될 수 있다. 예를 들어, 컨텐트 제공자 컴퓨팅 기기(155)는 차량 공유 서비스에 대한 컨텐트 항목을 생성, 저장 또는 생성할 수 있고, 서비스 제공자 컴퓨팅 기기(160)는 클라이언트 컴퓨팅 기기(150)와 세션을 설정하여 클라이언트 컴퓨팅 기기(150)의 최종 사용자를 픽업하기 위해 택시 또는 차량 공유 서비스의 차량 제공을 준비할 수 있다. 다이렉트 액션 API(135), NLP 컴포넌트(110) 또는 다른 컴포넌트를 통해, 데이터 처리 시스템(105)은 택시 또는 차량 공유 서비스의 차량 제공을 준비하기 위해, 예를 들어, 또한 서비스 제공자 컴퓨팅 기기(160)를 포함하거나 또는 바이패스하여, 연산 컴퓨팅 기기와 세션을 또한 구축할 수 있다.
데이터 저장소(145)는 하나 이상의 로컬 데이터베이스 또는 분산 데이터베이스를 포함할 수 있으며 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(145)는 컴퓨터 데이터 스토리지 또는 메모리를 포함할 수 있고 다른 데이터 간에 하나 이상의 파라미터(146), 하나 이상의 정책(147), 컨텐트 데이터(148) 또는 템플릿(149)을 저장할 수 있다. 파라미터(146), 정책(147) 및 템플릿(149)은 클라이언트 컴퓨팅 기기(150)와 데이터 처리 시스템(105)(또는 서비스 제공자 컴퓨팅 기기(160)) 간의 음성 기반 세션에 관한 규칙과 같은 정보를 포함할 수 있다. 컨텐트 데이터(148)는 오디오 출력 또는 관련 메타 데이터뿐만 아니라 클라이언트 컴퓨팅 기기(150)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지에 대한 컨텐트 항목을 포함할 수 있다.
시스템(100)은 음성 활성 데이터 패킷(또는 다른 프로토콜) 환경에서 시퀀스 종속적인 동작들의 처리를 최적화할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 음성 활성 보조 서비스, 음성 명령 기기, 지능형 개인 비서, 지식 네비게이터, 이벤트 플래닝, 또는 다른 보조 프로그램을 포함할 수 있다. 데이터 처리 시스템(105)은 이러한 입력 오디오 신호에 관련된 태스크를 달성하기 위해 클라이언트 컴퓨팅 기기(150)로부터의 디스플레이용 오디오 출력의 하나 이상의 인스턴스들을 제공할 수 있다. 태스크는 예를 들어 저녁 식사 예약을 하거나 영화 티켓을 구매하기 위해 서비스 제공자 컴퓨팅 기기(160) 또는 다른 제 3 자 컴퓨팅 기기와 통신하는 것을 포함할 수 있다. 예를 들어, 최종 사용자는 "좋아, 오늘 저녁에 가서 저녁 먹고 싶다(OK, I would like to go to go dinner and then a movie tonight)"의 입력 오디오 신호를 클라이언트 컴퓨팅 기기(150)로 입력할 수 있다.
시퀀스 종속 동작은 알려진, 제안된, 요구되는, 또는 특정 순서로 발생하는 다수의 동작들을 포함할 수 있다. 예를 들어 집에서 영화관으로 가고, 집에 돌아가는 것은 세 가지 시퀀스 종속 동작들 또는 동작들(actions)이 포함될 수 있다. 이러한 예에서 제 1 액션은 집에서 영화관으로 이동하는 것을 포함한다. 제 2 액션은 극장에서 영화를 감상하는 것을 포함한다. 제 3 액션은 극장에서 집으로 돌아오는 것을 포함한다. 이러한 예에서 시퀀스의 제 2 액션 (영화 감상)은 제 1 액션 (저녁 식사하러 가기)에 후속하고 종속적이며 제 3 액션 (집에 돌아가기)은 제 1 액션 및 제 2 액션에 후속하고 종속적이다. 제 3 액션은 제 2 액션에 후속하는 것으로 간주될 수 있으며, 이를 수행할 의도를 표현한 바와 같이, 데이터 처리 시스템(105)은 최종 사용자가 집에 돌아가기 이전에 극장에서 영화를 감상할 것으로 예측한다.
데이터 처리 시스템(105)은 입력 오디오 신호를 데이터 처리 시스템(105)의 인터페이스(115)에 전달하고 출력 오디오 신호를 렌더링할 클라이언트 컴퓨팅 기기의 컴포넌트를 구동시키기 위해 애플리케이션과 같이 클라이언트 컴퓨팅 기기(150)에 설치된 애플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 처리 시스템(105)은 오디오 입력 신호를 포함하거나 식별하는 다른 신호 또는 데이터 패킷울 수신할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 NLP 컴포넌트(110)를 실행 하여 오디오 입력 신호를 수신할 수 있다.
NLP 컴포넌트(110)는 입력 신호를(예를 들어, 데이터 저장소(145)에) 저장된 대표 세트의 오디오 파형들과 비교하고 가장 가까운 매치(match)를 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환할 수 있다. 대표 파형들은 많은 사용자 집합을 통해 생성되며 음성 샘플을 이용하여 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(110)는 예를 들어 메뉴얼 문서를 통해 사용자들에 대한 트레이닝을 통해 데이터 처리 시스템(105)이 제공할 수 있는 동작과 연관된 단어와 텍스트를 매칭시킬 수 있다.
오디오 입력 신호는 클라이언트 컴퓨팅 기기의 센서(151)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 트랜스듀서(152), 오디오 드라이버(153) 또는 다른 컴포넌트를 통해 클라이언트 컴퓨팅 기기(150)는 오디오 입력 신호를 데이터 처리 시스템(105)에 제공할 수 있고, 이는 (예를 들어, 인터페이스(115)에 의해) 수신될 수고 NLP 컴포넌트(110)로 제공될 수 있거나 또는 컨텐트 데이터(148)로서 데이터 저장소(145)에 저장될 수 있다.
NLP 컴포넌트(110)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(110)는 적어도 하나의 요청 또는 요청에 대응하는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 나타낼 수 있다. 트리거 키워드는 선택될 작업 유형을 나타낼 수 있다. 예를 들어, NLP 컴포넌트(110)는 입력 오디오 신호를 파싱하여 저녁 식사 및 영화에 참석할 저녁에 집에서 외출할 적어도 하나의 요청을 식별할 수 있다. 트리거 키워드에는 선택할 동작을 나타내는 적어도 하나의 단어, 구문, 루트 또는 부분 단어 또는 파생어가 포함될 수 있다. 예를 들어 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 전달(transport)의 필요성을 나타낼 수 있다. 이 예에서 입력 오디오 신호(또는 식별된 요청)는 전달 의도를 직접 나타내지 않지만 트리거 키워드는 전달이 요청에 의해 지시되는 적어도 하나의 다른 동작에 대한 보조 동작임을 나타낸다.
예측 컴포넌트(120)(또는 데이터 처리 시스템(105)의 다른 메커니즘)는 요청 또는 트리거 키워드에 기초하여 입력 오디오 신호와 연관된 적어도 하나의 스레드를 결정할 수 있다. 스레드는 일련의 동작과 같은 일련의 종속 동작들을 나타낼 수 있다. 스레드는 제 1 액션, 제 2 액션 및 제 3 액션과 같은 두 개 이상의 동작들을 포함할 수 있다. 예를 들어, 입력된 오디오 신호 "OK, 저녁 식사를 하러 가고 오늘 밤 영화관에 간다 (OK, I would like to go to go dinner and then a movie tonight)"는 저녁 식사와 영화에 관심을 나타내는 적어도 하나의 요청과 적어도 하나의 트리거 키워드, 이동 수단(transportation)에 대한 필요를 나타내는, 예컨대 "go"를 포함할 수 있다. 예측 컴포넌트(120)는 디너 동작(제 1 액션), 영화 동작(제 2 액션) 및 집으로 이동 동작(제 3 액션)과 같은 적어도 3 개의 동작을 갖는 스레드를 식별할 수 있다. 이러한 예에서, 요청 또는 트리거 키워드로부터, 예측 컴포넌트(120)는 3 개의 동작을 예측, 추정 또는 결정한다. 스레드는 저녁 식사 동작에 대한 초기 이동과 같은, 다른 동작들을 포함할 수 있다.
예측 컴포넌트(120)와 같은 데이터 처리 시스템(105) 또는 그 컴포넌트는 스레드의 동작들이 시퀀스 종속적인 동작들인 것으로 결정할 수 있다. 예를 들어, 예측 컴포넌트는 영화를 보는 제 2 액션이 저녁 식사를 하는 제 1 액션에 후속하고, 영화관에서 집으로 이동하는 제 3 액션이 영화를 보는 제 2 액션 이후임을 결정할 수 있다. 예측 컴포넌트(120)는 데이터 저장소(145) 내의 파라미터(146) 또는 정책(147)에 액세스하여 시퀀스 종속 동작들의 순서를 결정하거나 그렇지 않으면 추정할 수 있다. 예를 들어, 파라미터(146) 또는 정책(147)은 이동 동작 (예를 들어, 집으로 택시를 타고 이동)이 이벤트 동작 (예를 들어, 영화 감상) 이후에 발생할 수 있다는 것을 나타낼 수 있다.
컨텐트 선택기 컴포넌트(125)는 스레드의 동작들 중 임의의 동작의 지시를 획득할 수 있다. 예를 들어, 예측 컴포넌트(120)는 컨텐트 선택기 컴포넌트(125)에제 제 3 (또는 임의의 다른) 동작의 지시를 직접 또는 간접적으로(예를 들어, 데이터 저장소(145)를 통해) 제공할 수 있다. 컨텐트 선택기 컴포넌트(125)는 데이터 저장소(148)로부터 이러한 정보를 획득할 수 있고, 이는 컨텐트 데이터(148)의 일부로서 저장될 수 있다. 제 3 액션의 지시는 컨텐트 선택기 컴포넌트(125)에 영화 관의 위치로부터 최종 목적지로의 승차와 같은, 클라이언트 컴퓨팅 기기(150)에 의해 결정되거나 또는 지시되는 바와 같은 위치로의 이동에 대한 필요를 통지할 수 있다.
컨텐트 선택기 컴포넌트(125)는 적어도 하나의 이전 동작의 발생 이전에 스레드로 후속 동작의 지시를 얻을 수 있다. 예를 들어, 컨텐트 선택기 컴포넌트(125)는 영화관에서 영화가 상영(제 2 액션)되기 전에, 또는 입력 오디오 신호를 클라이언트 컴퓨팅 기기(150)에 입력한 사람이 식당에서 저녁 식사를 하기(제 1 액션) 이전에 제 3 액션(예를 들어, 영화관에서부터 승차에 대한 필요)의 지시를 수신할 수 있다. 컨텐트 선택기 컴포넌트(125)는 스레드의 적어도 하나의 동작이 완료되기 전에 스레드의 적어도 하나의 동작의 지시를 얻을 수 있다.
컨텐트 선택기 컴포넌트(125)에 의해 수신된 정보, 예를 들어, 시퀀스 종속적인 스레드에서 적어도 하나의 이전 동작의 발생 이전에 제 3 액션의 지시로부터, 컨텐트 선택기 컴포넌트(125)는 적어도 하나의 컨텐트 항목을 식별할 수 있다. 컨텐트 항목은 제 3 액션에 응답하거나 또는 관련될 수 있다. 예를 들어, 컨텐트 항목은 이동에 대한 필요를 나타내는 제 3 액션에 응답하여, 차량 공유 회사의 오디오 메시지 제공 서비스들을 포함할 수 있다. 컨텐트 선택기 컴포넌트(125)는 데이터 저장소(145)에 쿼리하여, 예를 들어 컨텐트 데이터(148)로부터 컨텐트 항목을 선택하거나 또는 그렇지 않으면 식별하도록 할 수 있다. 컨텐트 선택기 컴포넌트(125)는 또한 컨텐트 제공자 컴퓨팅 기기(155)로부터 컨텐트 항목을 선택할 수 있다. 예를 들어, 데이터 처리 시스템(105)으로부터 수신된 쿼리에 응답하여, 컨텐트 제공자 컴퓨팅 기기(155)는 클라이언트 컴퓨팅 기기(150)에 의한 최종 출력을 위해 컨텐트 항목을 데이터 처리 시스템(105)(또는 그 컴포넌트)에 제공할 수 있다.
오디오 신호 생성기 컴포넌트(130)는 제 3 액션에 응답하여 컨텐트 항목을 포함하는 출력 신호를 생성하거나 또는 그렇지 않으면 획득할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 오디오 신호 생성기 컴포넌트를 실행하여 컨텐트 항목에 대응하는 출력 신호를 발생(generate)시키거나 또는 생성(create)할 수 있다. 데이터 처리 시스템(105)의 인터페이스(115)는 컴퓨터 네트워크(165)를 통해 출력 신호를 포함하는 하나 이상의 데이터 패킷을 클라이언트 컴퓨팅 기기(150)에 전송하도록 제공할 수 있다. 인터페이스(115)는, 예를 들어 데이터 패킷을 사용하여 정보를 수신하고 전송하도록 설계, 구성, 구축, 또는 동작될 수 있다. 인터페이스(115)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신하고 전송할 수 있다. 인터페이스(115)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(115)는 하나의 포맷으로부터 다른 포맷으로 데이터를 변환 또는 포맷팅하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(115)는 시스템(100)의 소프트웨어 컴포넌트와 같은, 다양한 컴포넌트들 사이에서 통신하기 위한 정의들을 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다.
예를 들어, 데이터 처리 시스템(105)은 데이터 저장소(145) 또는 오디오 신호 생성기 컴포넌트(130)로부터의 출력 신호를 클라이언트 컴퓨팅 기기(150)에 제공할 수 있다. 데이터 처리 시스템(105)은 데이터 패킷 송신을 통해, 컨텐트 제공자 컴퓨팅 기기(155) 또는 서비스 제공자 컴퓨팅 기기(160)로 하여금 또한 클라이언트 컴퓨팅 기기(150)로 출력 신호를 제공하도록 지시할 수 있다. 출력 신호는 획득, 생성, 변환될 수 있거나, 또는 데이터 처리 시스템(105) (또는 다른 컴퓨팅 기기)으로부터 클라이언트 컴퓨팅 기기(150)로 하나 이상의 데이터 패킷들 (또는 다른 통신 프로토콜)로 전송될 수 있다.
이러한 예에서, 컨텐트 선택기 컴포넌트(125)는 시퀀스 종속 동작들의 세트에서 후속 (예를 들어, 제 3) 동작으로 스킵하여, 제 3 액션에 대응하는 활동에 대한 발생 이전에 (그리고 즉각적인 필요 이전에) 제 3 액션에 대한 컨텐트 항목을 선택한다. 후속하는 일련의 동작으로 스킵하여, 데이터 처리 시스템(105)은 제 1 액션 또는 제 2 액션과 관련된 정보를 처리하여 이러한 동작들에 대한 컨텐트 항목을 선택하도록 요구되는 것은 아니다. 이로 인해, 제 3 액션에 대한 컨텐트 항목을 선택하기 전에 (제 1 액션에 대한) 컨텐트 항목 또는 (제 2 액션에 대한) 컨텐트 항목을 선택하는 것과 연관되었을 데이터 전송으로부터의 프로세서 이용, 전력 소비 및 대역폭을 감소시킨다.
컨텐트 선택기 컴포넌트(125)는 실시간 컨텐트 선택 프로세스의 일부로서 (후속하는 또는 이후의) 제 3 액션에 대한 컨텐트 항목을 선택할 수 있다. 예를 들어, 입력 오디오 신호에 직접 응답하여 대화식으로 오디오 출력으로서 전송하기 위해 컨텐트 항목이 클라이언트 컴퓨팅 기기에 제공될 수 있다. 컨텐트 항목을 식별하고 클라이언트 컴퓨팅 기기(150)에 컨텐트 항목을 제공하기 위한 실시간 컨텐트 선택 프로세스는 입력 오디오 신호의 시간으로부터 1 분 이내에 발생할 수 있고, 이는 실시간으로 간주될 수 있다.
예를 들어, 인터페이스(115) 및 컴퓨터 네트워크(165)를 통해 클라이언트 컴퓨팅 기기(150)로 송신되어 오디오 신호 생성기 컴포넌트(130)에 의해 획득되거나 생성된 컨텐트 항목에 대응하는 출력 신호는, 클라이언트 컴퓨팅 기기(150)가 오디오 드라이버(153)를 실행하여 스피커(154)를 구동하여 출력 신호에 대응하는 음향 파를 생성할 수 있다. 음향 파는 제 3 액션에 대한 컨텐트 항목의 단어 또는 그에 대응하는 단어를 포함할 수 있다. 컨텐트 항목에 대응하는 출력 신호는 또한 입력 오디오 신호의 소스인 클라이언트 컴퓨팅 기기(150) 상에서 또는 오디오 엘리먼트없이 렌더링할 수 있는 텍스트 또는 이미지 메시지들로서 다른 클라이언트 컴퓨팅 기기(150)(예를 들어, 웨어러블 디바이스 컴퓨팅 기기) 상에서 렌더링되는 비-가청 컨텐트를 또한 포함할 수 있다.
음향 파는 제 1 액션 또는 제 2 액션의 발생 이전에 클라이언트 컴퓨팅 기기(150)로부터 출력될 수 있다. 예를 들어, 음향 파는 "영화 이후에 당신을 기다리는 택시를 원하십니까? (Would you like a taxi waiting for you after the movie?)"라는 오디오 출력을 포함할 수 있다. 이러한 예에서, 데이터 처리 시스템(105)은 예를 들어 "오케이, 저녁 식사하러 가고 오늘 밤에 영화 감상하고 싶어 (OK, I would like to go to go dinner and then a movie tonight)"의 입력 오디오 신호를 획득한다. 이러한 정보로부터 NLP 컴포넌트(110)는 적어도 하나의 요청 또는 적어도 하나의 트리거 키워드를 식별하고, 예측 컴포넌트(120)는 요청(들) 또는 트리거 키워드(들)를 사용하여 적어도 하나의 스레드를 식별한다. 스레드는 일련의 시퀀스 의존 동작들, 예를 들어 제 1 저녁 식사 동작, 제 2 영화 동작, 및 제 3 이동 동작을 포함한다. 예측 컴포넌트(120)는 이러한 동작들이 순차적 순서로 발생할 것이라고 (예를 들어, 적어도 75% 신뢰도와 같은 임계 수준의 신뢰 수준으로) 결정할 수 있고, 여기서 클라이언트 컴퓨팅 기기(150)의 최종 사용자는 처음으로 저녁 식사를 할 것이고, 저녁 식사 이후 영화관에 가고, 저녁 식사 이후 집으로 교통 수단을 타거나 또는 영화관에서 나올 것이다. 컨텐트 선택기 컴포넌트(125)는 예를 들어, 제 1 액션 및 제 2 액션에 대한 컨텐트 항목 선택과 연관된 처리를 바이패스할 수 있고, 대신에 제 3 액션에 대한 컨텐트 항목, 예를 들어, 영화관의 픽업 위치로 이동을 준비할 수 있다. 데이터 처리 시스템(105) 또는 그 컴포넌트, 예컨대 오디오 신호 발생기 컴포넌트(130)는 제 3 액션에 대한 컨텐트 항목을 클라이언트 컴퓨팅 기기(150)에 제공할 수 있다. 음향 파는 제 1 액션 이후, 제2 동작 발생 이전에, 예를 들어 스레드의 이전 동작들 사이에 클라이언트 컴퓨팅 기기(150)로부터 출력될 수 있다.
제 1 액션 또는 제 2 액션이 발생하기 전에 클라이언트 컴퓨팅 기기(150)로부터의 오디오 출력으로 제 3 항목에 대한 컨텐트 항목이 적어도 부분적으로 렌더링될 수 있다. 예를 들어, 제 3 액션에 대한 컨텐트 항목을 포함하는 출력 신호는 "영화관에서 집으로 가기를 원하니? (Would you like a ride home from the movie theater?)"라고 말하는 인간 또는 자동화된 음성으로서 렌더링될 수 있다. 데이터 처리 시스템(105)은 이전의 동작들 중 하나, 하나 이상, 또는 전부의 발생 이전에 지정된 동작들의 시퀀스로 제 3 액션에 대한 컨텐트 항목에 대한 응답을 수신할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 최종 사용자가 저녁 식사를 하기 전에 또는 최종 사용자가 영화를 관람하기 전에, 예를 들어 인터페이스(115)를 통해, 렌더링을 위한 컨텐트 항목을 제공하고, 응답을 수신할 수 있다. 데이터 처리 시스템(105)은 "오케이, 저녁 식사하러 가고, 오늘 밤 영화관에 가고 싶다 (OK, I would like to go to go dinner and then a movie tonight)"라는 입력 오디오 신호에 직접 또는 실시간 응답으로 컨텐트 항목을 포함하는 출력 신호를 제공함으로써 데이터 처리 시스템(105)과 클라이언트 컴퓨팅 기기(150) 사이의 통신 세션의 일부인 컴퓨터 네트워크(165)를 통한 패킷 기반 데이터 전송은 실시간 개인 대 개인 대화의 흐름(flow) 및 느낌(feel)을 갖는다. 이러한 패킷 기반 데이터 전송 통신 세션은 또한 컨텐트 제공자 컴퓨팅 기기(155) 또는 서비스 제공자 컴퓨팅 기기(160)를 포함할 수 있다.
컨텐트 선택기 컴포넌트(125)는 시퀀스 내의 임의의 이전 동작에 대한 임의의 컨텐트 항목을 선택하기 전에 시퀀스 종속적 동작 세트에서 제 3 (또는 임의의 비-제 1) 동작에 응답하여 제공된 컨텐트 항목을 선택할 수 있다. 이는 이전 동작들에 대응하는 데이터의 적어도 일부를 처리할 필요가 없게 하여, 제 3 컨텐트 항목이 일련의 동작들의 순서와 매칭된 순서로 컨텐트 항목들이 선택되었을 때 발생하는 것보다 감소된 처리 동작 수로 선택되도록 한다. 이전 (예를 들어, 제 1 및 제 2) 동작에 대한 컨텐트 항목들은, 예를 들어 제 3 액션에 대한 컨텐트 항목의 선택 이후에 선택될 수도 있고 선택되지 않을 수도 있다.
컨텐트 선택기 컴포넌트(125)는 동일한 스레드의 하나 이상의 요청들의 주제와 다른 주제를 나타내는 스레드의 적어도 하나의 트리거 키워드에 기초하여(예를 들어, 제 3 액션에 대한) 컨텐트 항목을 선택할 수 있다. 예를 들어, "오케이, 저녁 식사하러 가서 오늘 밤에 영화를 보러 가고 싶다 (OK, I would like to go to go dinner and then a movie tonight)"는 질문에 대한 스레드의 요청은 저녁 식사 요청의 주제(첫 번째 액션)와 영화 요청의 주제(두 번째 액션)를 지시할 수 있다. 이러한 주제는 이동 요청을 나타내지 않다. 그러나, NLP 컴포넌트(110) 또는 예측 컴포넌트(120)(또는 다이렉트 액션 API(135)의 일부로서 실행하는 다른 데이터 처리 시스템(105) 컴포넌트)는 트리거 키워드 "go"를 "go to" 또는 "to go to" 트리거 키워드에 적어도 부분적으로 기초한 이동 요청(제 3 액션)을 결정할 수 있다. 따라서, 데이터 처리 시스템(105)은 입력 오디오 신호의 주제 또는 제 1 요청이 아닌 제 2 요청인 동작을 입력 오디오 신호로부터 추론할 수 있다.
데이터 처리 시스템(105)은 컨텐트 항목을 포함하는 출력 신호의 송신을 방지하거나 지연할 수 있다. 예를 들어, 다이렉트 액션 API(135)를 통해 실행되는 인터페이스(115) 또는 스크립트는 트리거링 이벤트까지 컨텐트 항목에 대응하는 출력 신호를 포함하는 데이터 패킷의 송신을 방지할 수 있다. 트리거링 이벤트는 2 시간과 같은, 미리 결정된 시간주기의 만료, 또는 영화의 예정된 종료 시간과 같은, 스레드에서의 이전 동작의 발생과 일치하는 시간을 포함할 수 있다. 트리거링 이벤트는 또한 클라이언트 컴퓨팅 기기(150)로부터 데이터 처리 시스템(105)에 의해 수신된 인증 지시를 포함할 수 있다. 인증 지시는 스레드와 연관된 후속 오디오 입력으로서 발생할 수 있지만 입력 오디오 신호, 텍스트 기반 또는 다른 비-가청 신호에 후속하여 데이터 처리 시스템에 의해 수신될 수 있거나, 또는 클라이언트 컴퓨팅 기기(150)에 의한 컨텐트 항목의 수신을 인증하는 클라이언트 컴퓨팅 기기(150)의 설정의 지시를 포함할 수 있다.
데이터 처리 시스템(105)은 또한 처리 이용을 최적화하기 위해 스레드의 제 2 액션과 연관되거나 또는 제 2 액션에 후속하는 컨텐트 항목의 전송을 지연시킬 수 있다. 예를 들어, 데이터 처리 시스템(105)은 데이터 센터의 오프-피크 또는 비-피크 기간까지 컨텐트 항목 전송을 지연시킬 수 있고, 이는 피크 대역폭 사용, 열 출력 또는 냉각 요구사항을 감소시킴으로써 데이터 센터의 보다 효율적인 이용을 가능하게 한다. 데이터 처리 시스템(105)은 네트워크(165)의 또는 데이터 처리 시스템(105)의 데이터를 포함하는 데이터 센터의 데이터 센터 이용율 또는 대역폭 메트릭 또는 요구 사항에 기초하여, 차량 서비스의 순서와 같은, 컨텐트 항목과 연관된 전환 또는 다른 활동을 또한 개시할 수 있다.
컨텐트 항목들은 스레드의 동작들에 대응할 수 있고, 컨텐트 선택기 컴포넌트(125)는 스레드의 동작들 중 하나, 둘 이상, 또는 전부에 대한 컨텐트 항목을 선택할 수 있다. 예측 컴포넌트(120)는 예를 들어 "저녁 식사" (제 1 액션), "영화" (제 2 액션) 및 "영화 위치로부터의 이동" (제 3 액션)의, 시퀀스 의존적 스레드의 동작들을 식별할 수 있다. 다이렉트 액션 API(135)는 예를 들어 NLP 컴포넌트(110), 예측 컴포넌트(120) 또는 컨텐트 선택기 컴포넌트(125)로부터 프로그램 또는 스크립트를 실행하여 이들 동작 중 하나 이상에 대하여 컨텐트 항목을 식별할 수 있다. 다이렉트 액션 API(135)는 데이터 처리 시스템(105)에 의해 결정된 최종 사용자의 의도를 만족시키기 위해 특정 동작을 실행할 수 있다. 입력에서 특정된 동작에 따라, 다이렉트 액션 API(135)는 사용자 요청을 충족시키기 위해 요구되는 파라미터들을 식별하는 코드 또는 대화 스크립트를 실행할 수 있다. 이러한 코드는, 예를 들어 홈 자동화 서비스의 명칭과 같은, 예를 들어 데이터 저장소(145) 내의 추가 정보를 검색(lookup) 할 수 있거나 또는 클라이언트 컴퓨팅 기기(150)에서 렌더링을 위한 오디오 출력을 제공하여 최종 사용자에게 의도된 목적지와 같은 질문을 요청할 수 있다. 다이렉트 액션 API(135)는 필요한 파라미터를 결정할 수 있고, 정보를 동작 데이터 구조로 패키징할 수 있고, 충족될 필요가 있는 서비스 제공자 컴퓨팅 기기로 또는 컨텐트 선택기 컴포넌트(125)와 같은 다른 컴포넌트로 전송될 수 있다.
데이터 처리 시스템(105)의 다이렉트 액션 API(135)는 요청 또는 트리거 키워드에 기초하여 스레드의 동작에 대한 데이터 구조를 생성할 수 있다. 동작 데이터 구조는 요청에 따라 생성될 수 있다. 동작 데이터 구조는 서비스 제공자 컴퓨팅 기기(160)에 의해 송신되거나 수신되는 메시지에 포함될 수 있다. NLP 컴포넌트(110)에 의해 파싱된 요청에 기초하여, 다이렉트 액션 API(135)는 복수의 서비스 제공자 컴퓨팅 기기(160) 중 어느 기기로 메시지가 전송되어야 하는 지를 결정할 수 있다. 예를 들어, 입력 오디오 신호가 "택시를 호출(order a taxi)"를 포함하면, NLP 컴포넌트(110)는 트리거 단어 "호출(order)"및 택시에 대한 요청을 식별할 수 있다. 다이렉트 액션 API(135)는 택시 서비스의 서비스 제공자 컴퓨팅 기기(160)에 메시지로서 전송하기 위한 동작 데이터 구조에 요청을 패키징할 수 있다. 메시지는 또한 컨텐트 선택기 컴포넌트(125)로 전달될 수 있다. 동작 데이터 구조는 요청을 완료하기 위한 정보를 포함할 수 있다. 이러한 예에서 정보는 픽업 위치 및 목적지 위치를 포함할 수 있다. 다이렉트 액션 API(135)는 저장소(145)로부터 템플릿(149)을 검색하여 동작 데이터 구조에 어떤 필드를 포함할지를 결정할 수 있다. 다이렉트 액션 API(135)는 저장소(145)로부터 컨텐트를 검색(retrieve)하여 데이터 구조의 필드에 대한 정보를 얻을 수 있다. 다이렉트 액션 API(135)는 그 정보로 템플릿의 필드를 채워(populate) 데이터 구조를 생성할 수 있다. 다이렉트 액션 API(135)는 입력 오디오 신호로부터의 데이터로 필드를 또한 채울 수 있다. 템플릿(149)은 서비스 제공자의 카테고리에 대해 표준화될 수 있거나 특정 서비스 제공자에 대해 표준화될 수 있다. 예를 들어, 승차 공유 서비스 제공자는 다음 표준화된 템플릿 149를 사용하여 데이터 구조: {클라이언트_기기_식별자(client_device_identifier); 인증_크리덴셜(authentication_credentials); 픽업_위치(pick_up_location); 목적지_위치(destination_location); 승객_없음(no_passengers); 서비스_레벨(service_level)}을 생성할 수 있다.
예를 들어, 오디오 입력 신호에 응답하여 "영화관에서 집으로의 승차를 원하십니까? (Would you like a ride home from the movie theater?)"라고 말하는 오디오 응답으로서 클라이언트 컴퓨팅 기기(150)에서 렌더링하기 위하여 제 3 액션에 대한 컨텐트 항목이 제공될 수 있다. 이러한 렌더링에 후속하여 또는 그 이전에, 데이터 처리 시스템(105)은 제 1 액션(저녁 식사)을 위한 컨텐트 항목, 예를 들어 "도심 이탈리안 레스토랑은 오늘 밤 7시에 오프닝을 합니까? (the Italian restaurant downtown has an opening for 7pm tonight?)"를 선택 또는 제공할 수 있고, 제 2 액션 (영화)에 대하여 다른 컨텐트 항목(예를 들어, "도심 영화관에서 오후 9시 영화 티켓을 구매 하시겠습니까? (would you like tickets to the 9pm movie at the downtown theater?)")를 선택할 수 있다. 데이터 처리 시스템(105)은 오디오 출력 컨텐트 항목들로서 클라이언트 컴퓨팅 기기(150)에 의해 렌더링하기 위하여 입력 오디오 신호에 응답하여 이러한 컨텐트 항목들을 제공할 수 있다 (이는 컨텐트 제공자 컴퓨팅 기기(155)로 하여금 제공하도록 지시하는 것을 포함한다). 데이터 처리 시스템(105)은, 인터페이스(115)를 통해, 클라이언트 컴퓨팅 기기(150)에 임의의 순서로 이러한 컨텐트 항목을 선택하거나 제공할 수 있다. 예를 들어, 제 3 (예를 들어, 최종) 동작을 위한 컨텐트 항목은 스레드의 다른, 초기 동작들에 대응하는 컨텐트 항목 이전에, 먼저 선택되거나 제공될 수 있다.
데이터 처리 시스템(105)은 컨텐트 항목 "영화관에서 집으로의 승차를 원하십니까?" (would you like a ride home from the movie theater?)에 대한 응답을 수신할 수 있다. 응답은 입력 오디오 신호, 예를 들어, 데이터 처리 시스템(105)에 의해 수신되었고, 최종 사용자에 의해 클라이언트 컴퓨팅 기기(150)에 입력되었던 "예 부탁합니다(yes please)"를 포함할 수 있다. 이러한 응답에 기초하여, 영화가 끝나는 시간에 영화관의 위치에 대한 택시 또는 차량 공유를 주문하기 위해, 다이렉트 액션 API(135)는 (차량 공유 회사와 같은, 컨텐트 항목과 연관될 수 있는) 서비스 제공자 컴퓨팅 기기(160)와 통신할 수 있다. 데이터 처리 시스템(105)은 데이터 저장소(145), 또는 서비스 제공자 컴퓨팅 기기(160) 또는 컨텐트 제공자 컴퓨팅 기기(155)와 같은 다른 소스로부터, 클라이언트 컴퓨팅 기기(150)와의 데이터 패킷 (또는 다른 프로토콜) 기반 메시지 연동의 일부로서 이러한 위치 또는 시간 정보를 획득할 수 있다. 이러한 주문(또는 다른 변환)의 확인이, "좋습니다, 영화관 밖에서 오후 11시에 차량이 당신을 기다리고 있을 것입니다. (great, you will have a car waiting for you at 11pm outside the theater.)"와 같은 오디오 출력을 렌더링하도록 클라이언트 컴퓨팅 기기(150)를 구동하는 데이터 처리 시스템(105)으로부터의 출력 신호의 형태로 데이터 처리 시스템(105)으로부터 클라이언트 컴퓨팅 기기(150)로 오디오 통신으로 제공될 수 있다. 다이렉트 액션 API(135)를 통해, 데이터 처리 시스템(105)은 차량에 대한 주문을 확인하기 위해 클라이언트 컴퓨팅 기기(150)와 통신할 수 있다.
데이터 처리 시스템(105)은 컨텐트 항목 (예를 들어, "영화관에서 집으로의 승차를 원하십니까? (would you like a ride home from the movie theater?)")에 대한 응답 (예를 들어, "예 부탁합니다 (yes please)")을 얻을 수 있고, 패킷 기반 데이터 메시지를 서비스 제공자 NPL 컴포넌트(161)(또는 서비스 제공자 컴퓨팅 기기의 다른 컴포넌트)로 라우팅할 수 있다. 이러한 패킷 기반 데이터 메시지는 서비스 제공자 컴퓨팅 기기(160)로 하여금 예를 들어, 영화관 밖에서 차량 픽업 예약을 하도록 하는 변환을 일으킬 수 있다. 이러한 변환 - 또는 확인된 순서(또는 스레드의 다른 동작의 임의의 다른 변환)는 영화 완료 전과 같은, 스레드의 하나 이상의 동작이 완료되기 전뿐만 아니라, 저녁 식사에 후속하는 것과 같은, 스레드의 하나 이상의 동작의 완료에 후속하여 발생할 수 있다.
시퀀스 종속 스레드로 제 3의 최종 동작을 위한, "영화관에서 집으로의 승차를 원하십니까 (would you like a ride home from the movie theater)"라는 컨텐트 항목에 대한 응답 "예 부탁합니다 (yes please)"와 같은, 스레드에서의 후속 동작을 위한 컨텐트 항목에 대한 응답에 기초하여, 데이터 처리 시스템(105)은 변환 또는 동작을 개시할 수 있다. 이는 최종 사용자가 예를 들어, 저녁 식사 전이나 영화가 끝나기 전에, 스레드와 연관된 활동을 시작하기 전에 발생할 수 있다. 데이터 처리 시스템(105)의 프로세서들은 직접 작용 API(135)를 호출(invoke)하여 차량 공유 서비스에서 차량을 주문하는 스크립트를 실행할 수 있다. 다이렉트 액션 API(135)는 클라이언트 컴퓨팅 기기(150)로부터 최종 사용자의 동의하에 수신된 데이터뿐만 아니라 데이터 저장소(145)로부터 컨텐트 데이터(148)(또는 파라미터들(146) 또는 정책들(147))를 획득하여, 위치, 시간, 사용자 계정들, 차량 공유 서비스에서 차량을 예약하기 위한 기타 정보를 결정할 수 있다. 다이렉트 액션 API(135)를 사용하여, 데이터 처리 시스템(105)은 서비스 제공자 컴퓨팅 기기(160)와 또한 통신하여, 이러한 예에서 차량 공유 픽업 예약을 완전히 수행하여 변환을 완료할 수 있다.
스레드의 동작 중 하나를 완료 한 후 임계 시간 주기까지(예를 들어, 제 2 액션의 영화 감상의 종료 이후에 15분이 될 때까지), 다이렉트 액션 API(135)는 데이터 처리 시스템(105)에 의한 스레드와 연관된 제 1 입력 오디오 신호 (예를 들어, 저녁 식사하러 가서 오늘 밤에 영화관에 가고 싶다 (OK, I would like to go to go dinner and then a movie tonight)")의 수신으로부터의 시간 주기 동안 임의의 시간에서 스레드의 동작을 달성하기 위해 변환 또는 활동을 개시할 수 있다. 데이터 처리 시스템(110)은 최종 사용자가, 예를 들어, 집으로 돌아왔거나 또는 더 이상 영화관에 있지 않다는, 스레드의 동작을 완료했다는 지시와 같은, 다른 인자에 기초하여, 또한 이러한 시간 주기의 종료를 결정할 수 있다. 데이터 처리 시스템(105)은 스레드가 취소되거나 또는 휴면 중(dormant)이거나 최종 사용자가 스레드의 동작을 취소 또는 완료했다는 지시를 또한 클라이언트 컴퓨팅 기기(150)(네트워크(165)를 통해 전송된 데이터 메시지)로부터 얻을 수 있다.
다이렉트 액션 API(135)는 스레드의 다른 동작의 완료 또는 완료 시간에 기초하여 스레드의 동작을 달성하기 위한 변환 또는 활동을 개시할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 스레드에서 이전 동작의 종료의 임계 시간 내에 서비스 제공자 컴퓨팅 기기(160)와의 통신에 의해 또는 직접 물품 또는 서비스 (차량 공유 픽업)를 주문할 수 있다. 영화의 예정된 또는 실제 종료(제 2 액션) 이전 또는 이후의 5 분(또는 다른 시간 기간) 내에, 데이터 처리 시스템(105)은 차량 공유 서비스를 확인 또는 주문하여 차량을 보내 (제 3 액션에 후속하여) 최종 사용자를 영화 관에서 픽업할 수 있다. 이러한 시간 주기 동안 최종 사용자 컴퓨팅 기기(150)로부터 수신된 입력이 없거나, 또는 이러한 시간 주기 동안 최종 사용자 컴퓨팅 기기(150)로부터 수신된 프롬프트에 응답하여 이는 발생할 수 있다.
다이렉트 액션 API(135)는 스레드의 시퀀스 종속 동작과 연관된 변환 또는 다른 활동을 임의의 순서로 개시할 수 있다. 예를 들어, 다이렉트 액션 API(135)(또는 다른 데이터 처리 시스템(105) 컴포넌트)는 (예를 들어, 저녁 식사 예약 전이나 영화 티켓 주문 전) 시퀀스의 초기 스레드에 대응하는 활동을 개시하기 이전에, 최종 동작 (예를 들어, 택시를 호출하는 것과 같은 3가지 동작 스레드에서의 제 3 액션)에 대응하는 활동을 개시할 수 있다. 이러한 예에서, 데이터 처리 시스템(105)은 후속(예를 들어, 제 3) 동작에 대한 활동의 개시에 후속하여 이전 (예를 들어, 제 2) 동작에 대한 활동을 개시한다.
컨텐트 선택기 컴포넌트(125)는 다중 컨텐트 선택 프로세스들로부터 발생하는 다수의 컨텐트 항목들을 식별, 선택 또는 획득할 수 있다. 컨텐트 선택 프로세스는 예컨대 스레드와 관련된 데이터 처리 시스템(105)과 클라이언트 컴퓨팅 기기(150) 사이의 동일한 대화, 통신 세션 또는 일련의 통신 세션들의 일부로, 실시간일 수 있다. 대화에는 예를 들어, 수 시간이나 며칠 주기로 상호 간에 분리된 비동기 통신이 포함될 수 있다. 제 1 입력 오디오 신호의 수신으로부터 스레드의 최종 동작의 추정된 또는 알려진 종료, 스레드의 종료의 지시에 대한 데이터 처리 시스템(105)에 의한 수신까지의 시간 동안, 대화 또는 통신 세션은 지속될 수 있다. 이는 스레드의 활성 시간 기간이라고 할 수 있다. 예를 들어, 3 개의 동작(예를 들어, 저녁 식사, 영화 및 집으로 이동)을 갖는 스레드에 대하여, 컨텐트 선택기 컴포넌트(125)는 각 동작에 대해 적어도 하나의 컨텐트 항목을 선택할 수 있다. 컨텐트 항목 선택기 컴포넌트(125)는 각 동작에 대한 상이한 컨텐트 선택 프로세스로부터 결과들을 실행하거나 획득할 수 있다. 컨텐트 선택 프로세스에서, 컨텐트 제공자 컴퓨팅 기기(150)는 컨텐트 선택기 컴포넌트(125)에 의한 선택을 위한 컨텐트 항목들을 지정할 수 있다. 적어도 3 개의 동작을 갖는 스레드에 대해, 컨텐트 항목 선택기 컴포넌트는 제 1 컨텐트 선택 프로세스를 통해 제 1 액션에 대한 제 1 컨텐트 항목, 제 2 컨텐트 선택 프로세스를 통해 제 2 액션에 대한 제 2 컨텐트 항목, 및 제 3 컨텐트 선택 프로세스를 통해 제 3 액션에 대한 제 3 컨텐트 항목을 선택하거나 또는 그렇지 않으면 식별할 수 있다. 스레드의 활성 시간 주기 동안 클라이언트 컴퓨팅 기기(150)에 의해 렌더링하기 위해 이들 컨텐트 항목을 제공하는 데이터 처리 시스템(105)은 실시간으로 동작하는 것으로 간주될 수 있다. 이러한 예에서 컨텐트 선택 프로세스 및 컨텐트 항목의 렌더링은 실시간으로 발생한다.
데이터 처리 시스템(105)은 컨텐트 항목과 연관된 동작을 취소할 수 있다. 예를 들어 차량 서비스를 주문한 후, 최종 사용자는 영화를 보았지만 집으로 걸어가거나, 또는 차량을 타고 집으로 가는 대신 영화를 본 이후에 디저트를 먹기로 결정할 수도 있다. 데이터 처리 시스템(105)의 일부로서 클라이언트 컴퓨팅 기기(150)에서 실행하는 앱 또는 다른 프로그램은 "집으로 승차를 취소(cancel my ride home)"의 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트(110)는 예를 들어 하나 이상의 패킷 기반 데이터 메시지로서 이러한 입력 오디오 신호를 수신할 수 있고, 이러한 입력 오디오 신호가 기존의 스레드(예를 들어, 저녁 식사, 영화, 집으로 이동)와 관련되고 동일한 대화 또는 통신의 일부인지를 결정할 수 있다. 예를 들어, NLP 컴포넌트(110)(또는 다른 데이터 처리 시스템(105) 컴포넌트)는 데이터 저장소의 컨텐트 데이터(148)로부터 스레드의 과거, 현재 또는 예정된 동작과 같은 시간 데이터, 위치 데이터 및 기존 스레드 데이터를 평가하여, 입력 오디오 신호가 기존의 스레드와 관련이 있는지를 결정할 수 있다. 예를 들어, 요청 "승차(ride)" 또는 트리거 키워드 "취소(cancle)"에 기초하여, NLP 컴포넌트(110)는 입력 오디오 신호 "집으로 승차를 취소(cancel my ride home)"가 컨텐트 항목 "영화관에서 집으로의 승차를 원하십니까? (would you like a ride home from the movie theater?)에 관련된다고 결정할 수 있다. 다이렉트 액션 API(135) (또는 다른 컴포넌트)는 데이터 처리 시스템(105)이 인터페이스(115)를 통해 서비스 제공자 컴퓨팅 기기(160)와 통신하도록 하여 영화 종료 시에 영화관 밖에서 차량이 최종 사용자를 기다리도록 하는 차량 공유 서비스 또는 택시에 대한 주문을 취소할 수 있다.
NLP 컴포넌트(135)는 스레드의 임의 동작의 완료 이전 또는 이후에 스레드의 동작을 취소하기 위해 데이터 패킷 또는 다른 프로토콜 기반 메시지를 수신할 수 있다. NLP 컴포넌트(135)는 스레드의 이전 동작에 의해 트리거된 시간 간격 내에서 스레드의 동작을 취소하기 위해 클라이언트 컴퓨팅 기기(150)로부터 데이터 메시지 (인바운드 오디오 신호)를 수신(또는 데이터 저장소(145)로부터 획득)할 수 있다. 예를 들어, 저녁 식사, 영화, 이동의 3 가지 동작을 갖는 시퀀스 의존 스레드에서, 데이터 처리 시스템(105)은 영화 종료 5 분(또는 다른 시간 주기) 내에 이동 취소 데이터 메시지를 수신할 수 있다. 데이터 처리 시스템(105)은 스레드의 동작과 관련된 제품 또는 서비스의 확인을 촉구(prompt)할 수 있다. 예를 들어, 제 1 액션과 제 2 액션 사이의 시간 동안(예를 들어, 저녁 식사 후 및 영화 이전), 데이터 처리 시스템(105)은 클라이언트 컴퓨팅 기기(150)에 데이터 메시지를 전송할 수 있으며, 클라이언트 컴퓨팅 기기(150)는 "영화가 끝난 후에 차량이 당신을 계속 기다리기를 원하는지를 확인하세요 (just confirming that you still want a car waiting for you after the movie.)"이라는 오디오 또는 문자 메시지를 출력한다. 데이터 처리 시스템(105)은 "예, 확인 (yes, confirmed)" 또는 "아니오, 차량을 취소 (no, cancel the car)"와 같은 응답을 수신할 수 있다. 다이렉트 액션 API(135)는 스크립트를 실행하여 이러한 정보를 처리할 수 있고, 서비스 제공자 컴퓨팅 기기(160)와 통신하여 확인 또는 취소를 나타낼 수 있다.
도 2는 제 1 액션(205), 제 2 액션(210) 및 제 3 액션(215)을 포함하는 시퀀스 종속 동작을 갖는 스레드(200)의 기능도를 도시한다. 스레드(200)는 예측 컴포넌트(120)와 같은 데이터 처리 시스템(105)의 컴포넌트에 의해 결정될 수 있다. 데이터 처리 시스템(105)은 예를 들어, 시간 T-0(T-제로)에서 인터페이스(115)를 통해, 데이터 패킷들로서 입력 오디오 신호를 수신할 수 있다. 데이터 처리 시스템(105)은 시간 T-0이 스레드(200)의 활성 시간 주기(220)의 시작임을 결정할 수 있다.
입력 오디오 신호로부터 획득된 요청 또는 트리거 키워드(예를 들어, "오케이, 저녁 식사를 하러 가서 오늘 밤에 영화를 보고 싶다 (OK, I would like to go to go dinner and then a movie tonight)")에 기초하여, 이러한 순서로 발생할 것으로 예측되고 적어도 하나의 동작이 적어도 하나의 이전 동작의 발생에 의존적인, 제 1 액션(205) (예를 들어, 저녁 식사), 제 2 액션(210)(예를 들어, 영화), 제 3 액션 (215) (예를 들어, 영화 이후에 집으로 승차)과 같은 복수의 시퀀스 종속 동작을 예측 컴포넌트가 식별할 수 있다. 예를 들어, 제 3 액션(215)(영화관에서 집으로 승차)은 제 2 액션(최종 사용자가 영화를 보러 영화관에 도착)의 발생 여부에 따라 달라진다.
데이터 처리 시스템(105) 및 컨텐트 선택기 컴포넌트(125) 및 인터페이스(115)와 같은 컴포넌트는 클라이언트 컴퓨팅 기기(150)에 의해 오디오 출력으로 렌더링하기 위한 컨텐트 항목을 스레드(200)의 활성 시간 기간(220) 동안 제공할 수 있다. 예를 들어, 데이터 처리 시스템(105)은 시간 주기 T-1 동안 제 3 액션(215)에 대한 컨텐트 항목(예를 들어, "영화관에서 집으로의 승차를 원하십니까? (would you like a ride home from the movie theater?)")을 선택하여 제공할 수 있으며, 이는 제 1 액션(205)의 시작까지의 활성 시간 주기(220)(예를 들어, 저녁 식사 예약 시간)이다. 데이터 처리 시스템(105)는 활성 시간 주기(220) 동안 임의의 시간에 임의의 동작들과 연관된 임의의 컨텐트 항목들을 선택하거나 제공할 수 있다. 예를 들어,(제 3 액션(215)에 대한) 제 1 컨텐트 항목 또는 제 3 액션(210)에 대한 상이한 컨텐트 항목(예를 들어, 영화 추천 또는 영화 티켓 구매에 대한 제안)은 시간 주기 T-1 또는 활성 시간 주기(220)의 임의의 다른 시간 주기 동안 제공될 수 있다. 데이터 처리 시스템(105)은 또한 컨텐트 항목이 타임 아웃되었음을 또한 결정할 수 있고, 활성 시간 주기 T1 동안 임의의 추가적인 렌더링들에 대하여 이러한 컨텐트 항목을 제공하지 않을 것이다. 예를 들어, 데이터 처리 시스템(105)은 제 2 액션(210)(예를 들어, 시간 T-4에서의 영화)이 시작되었다고 데이터 처리 시스템(105)에 의해 결정된 이후에, 제 1 액션(205) (예를 들어, 시간 T-2에서의 저녁 식사)에 대한 컨텐츠 항목을 제공하지 않기로 결정할 수 있다. 이러한 예에서, 제 1 액션(205)에 대한 컨텐트 항목은 시간 T-1(제 1 액션(205) 이전)과 제 1 액션(205) 및 제 2 액션(210) 사이의 T-3 사이에서 클라이언트 컴퓨팅 기기에 제공될 수 있다.
시간 T-1 내지 T-6 동안, 그리고 시간 T-7, 예를 들어 데이터 처리 시스템(105)이 영화가 끝났다고 결정하지만, 최종 사용자가 저녁 동안 밖에 계속 있다는 것을 최종 사용자가 데이터 처리 시스템(105)에게 지시하기로 선택한 이후에도, 제 3 액션(215) (예를 들어, 집으로 승차)에 대한 적어도 하나의 컨텐트 항목이 여전히 제공될 수 있다. 제 2 액션(210)과 제 3 액션(215) 사이인, 시간 주기 T-5, 또는 (제 3 액션(215) 중인) T-6 또는 (제 3 액션 후인) T-7과 같은 활성 시간 주기(220)의 임의의 다른 시간 주기 동안, 차량 공유 서비스의 예약된 차량의 확인과 같은 동작의 확인을 촉구하거나, 또는 재판매(remarket)하도록 데이터 처리 시스템(105)이 제 3 액션(215)과 관련된 컨텐트 항목들을 제공할 수 있다.
도 3은 시스템(100)과 같은 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작에 대한 동작을 호출하는 방법(300)을 도시한다. 상기 방법은 데이터 패킷을 수신할 수 있다(ACT(305)). 예를 들어, 데이터 처리 시스템(105)은 클라이언트 컴퓨팅 기기(150)로부터 네트워크를 통해 패킷 또는 다른 프로토콜 기반 송신들을 수신하기 위해 NLP 컴포넌트(110)를 실행, 착수 또는 호출할 수 있다. 데이터 패킷은 검출된 입력 오디오 신호 최종 사용자가 "오케이, 저녁 식사하러 가서 오늘 밤에 영화 보고 싶다 (OK, I would like to go to go dinner and then a movie tonight)"라고 스마트폰에 말하는 것과 같은, 센서(151)에 의해 검출되는 입력 오디오 신호를 포함하거나 또는 이에 대응될 수 있다.
방법(300)은 입력 오디오 신호로부터 적어도 하나의 요청 또는 적어도 하나의 트리거 키워드를 식별할 수 있다(ACT(310)). 예를 들어, NLP 컴포넌트(110)는 요청 ("저녁 식사" 또는 "영화")뿐만 아니라 요청에 대응하거나 관련된 트리거 키워드들 "go to" 또는 "to go to"를 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 방법(300)은 요청 또는 트리거 키워드에 기초하여 적어도 하나의 스레드를 결정(ACT(315))할 수 있다. 스레드는 데이터 처리 시스템(100)이 스레드(200)와 같은, 설정된 순서로 발생할 것이라고 결정하는 일련의 시퀀스 의존 동작들을 포함할 수 있고, 여기서 시간 T-2에서 발생하는 제 1 액션에 후속하여, 시간 T-4에서 제 2 액션(210)이 발생하고, 제 1 액션(205)에 후속하고, 제 2 액션(210)에 후속하는, 시간 T-6에서 제 3 액션(215)이 발생한다.
방법(300)은 제 3 액션의 지시를 컨텐트 선택기 컴포넌트(125)에 제공할 수 있다(ACT(320)). 예를 들어, 컨텐트 선택기 컴포넌트(125)는 (시간 T-2 이전에) 제 1 액션(205)의 발생 이전에 또는(시간 T-4 이전에) 제 2 액션(210)의 발생 이전에 제 3 액션(215)의 지시를 수신할 수 있다. 제 3 액션의 지시에 응답하거나, 또는 요청 및 트리거 키워드에 기초하여, 컨텐트 선택기 컴포넌트는 제 3 액션에 대응하는 적어도 하나의 컨텐트 항목을 선택(ACT(325))할 수 있다. 방법(300)은 컨텐트 항목에 대응하는 적어도 하나의 출력 신호를 생성(ACT(330))할 수 있고 클라이언트 컴퓨팅 기기(150)에 출력 신호를 제공(ACT(335))할 수 있다. 예를 들어, 인터페이스(115)는 데이터 처리 시스템(105)에서 클라이언트 컴퓨팅 기기(150)로 출력 신호를 포함하는 데이터 패킷들을 전송할 수 있다. 데이터 처리 시스템(105)이 시간 주기 T1 내지 T7 중 하나의 만료와 같은, 조건의 발생을 검출할 때까지, 또는 클라이언트 컴퓨팅 기기(150)로부터 인증이 수신될 때까지, 데이터 처리 시스템(105)은 데이터 패킷의 전송을 지연 또는 방지할 수 있다.
출력 신호는 클라이언트 컴퓨팅 기기(150)로 하여금 (예를 들어, 클라이언트 컴퓨팅 기기(150)에 머무르고(reside) 실행되는 데이터 처리 시스템(105)의 앱 또는 다른 컴포넌트로 하여금) 출력 신호에 (및 컨텐트 항목에) 대응하는 음향 파를 생성하도록 스피커(154)를 구동하게 할 수 있다. 제 1 액션(205)의 발생 이전에 (예를 들어, 시간 T2 이전에) 또는 제 2 액션(210)의 발생 이전에 (예를 들어, 시간 T-4 이전에) 클라이언트 컴퓨터 디바이스(150)로부터의 컨텐트 항목의 이러한 오디오 출력이 발생할 수 있다. 방법(300)은 컨텐트 항목에 대한 응답을 클라이언트 컴퓨팅 기기(150)로부터 수신할 수 있다(ACT(340)). 예를 들어, 데이터 처리 시스템(105)은 택시를 예약하거나 또는 예약 이벤트 티켓을 구매하기 위한 요청과 같은 동작이 개시되거나 선택되도도록 요청하는 클라이언트 컴퓨팅 기기로의 오디오 입력으로부터 생성된 응답 신호를 수신(ACT(340))할 수 있다. 다이렉트 액션 API(135)는 요청된 동작을 선택하거나 또는 개시하기 위하여 프로그램을 호출할 수 있다. 이러한 동작은 응답 신호의 수신(ACT(340))에 기초한 다이렉트 액션 API에 의해서 뿐만 아니라 동작의 완료 시간, 동작의 종료 시, 예를 들어, 시간 T-4 및 시간 T-5 사이의 경계에서 제 2 액션(210)의 종료와 같은, 다른 요소들에 의해 개시될 수 있다. 이러한 동작은 또한 취소될 수도 있다. 예를 들어, 응답 신호를 수신(ACT(340))한 이후에, 데이터 처리 시스템(105)은 스레드의 동작의 취소 또는 종료, 스레드에 대한 변경, 또는 데이터 처리 시스템(105)에 의한 취소 요청을 클라이언트 컴퓨팅 기기(150)로부터 수신한다.
도 4는 예시적인 컴퓨터 시스템(400)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 기기(400)는 시스템(100) 또는 데이터 처리 시스템(105)과 같은 자신의 컴포넌트를 포함하거나, 또는 이들을 구현하기 위해 사용될 수 있다. 연산 시스템(400) 은 정보를 통신하기 위한 버스 또는 다른 통신 컴포넌트 및 정보를 처리하기 위하여 버스(405)에 결합된 프로세서(410) 또는 처리 회로를 포함한다. 연산 시스템(400)은 또한 정보를 처리하기 위해 버스에 결합된 하나 이상의 프로세서(410) 또는 처리 회로를 포함할 수 있다. 연산 시스템(400)은 프로세서(410)에 의해 실행될 정보, 및 명령들을 저장하기 위하여 버스(405)에 결합된, 랜덤 액세스 메모리(RAM) 또는 다른 동적 스토리지 기기와 같은, 메모리(415)를 더 포함한다. 메인 메모리(415)는 데이터 저장소(145)일 수 있거나, 또는 이를 포함할 수 있다. 메인 메모리(415)는 또한 프로세서(410)에 의한 명령들의 실행 중에 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 연산 시스템(400)은 프로세서(410)에 대한 정적 정보 및 명령들을 저장하기 위해 버스(405)에 결합된 판독 전용 메모리(ROM)(410) 및 다른 정적 스토리지 기기를 포함할 수 있다. 고체 상태 기기, 자기 디스크 또는 광학 디스크와 같은 스토리지 기기(425)는 정보 및 명령들을 영구적으로 저장하기 위해 버스(405)에 결합될 수 있다. 스토리지 기기(425)는 데이터 저장소(145)의 일부를 포함할 수 있거나, 또는 이의 일부일 수 있다.
컴퓨팅 시스템(400)은 정보를 사용자에게 디스플레이하기 위해 버스(405)를 통해 액정 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(435)에 연결될 수 있다. 문자 숫자식(alphanumeric) 및 다른 키들을 포함하는 키보드와 같은, 입력 기기(430)는 정보 및 명령 선택을 프로세서(410)에 전달하기 위해 버스(405)에 연결될 수 있다. 입력 기기(430)는 터치 스크린 디스플레이(435)를 포함할 수 있다. 입력 기기(430)는 방향 정보 및 명령 선택을 프로세서(410)에 전달하고 디스플레이(435)상의 커서 이동을 제어하기 위한, 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 또한 포함한다. 디스플레이(435)는 예를 들어, 데이터 처리 시스템(105), 클라이언트 컴퓨팅 기기(150) 또는 도 1의 다른 컴포넌트를 포함할 수 있다.
본 명세서에 설명된 프로세스, 시스템 및 방법은 프로세서(410)가 메인 메모리(415)에 포함된 명령어의 배치를 실행하는 것에 응답하여 컴퓨팅 시스템(400)에 의해 구현될 수 있다. 이러한 명령어들은 스토리지 기기(425)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(415)로 판독될 수 있다. 메인 메모리(415)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(400)으로 하여금 본원에 설명된 예시적인 프로세스들을 수행하게 한다. 다중 처리 배치의 하나 이상의 프로세서가 메인 메모리(415)에 포함된 명령을 실행하기 위해 사용될 수도 있다. 하드-와이어드 회로는 본원에 설명된 시스템 및 방법과 함께 소프트웨어 명령 대신 또는 그 명령과 함께 사용될 수 있다. 본원에 설명된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 특정 조합으로 제한되는 것은 아니다.
예시적인 컴퓨팅 시스템이 도 4에 도시되었지만, 본원에서 설명된 동작을 포함하는 주제는 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하는 다른 유형의 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본원에서 논의된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 개인 정보를 수집할 수 있는 프로그램 또는 특징(feature)들 (예를 들어, 사용자의 소셜 네트워크, 사회적 행동 또는 활동, 사용자의 선호 또는 사용자의 위치)를 제어하거나, 컨텐트 서버 또는 다른 데이터 처리 시스템으로부터 사용자에게 더 관련된 컨텐트를 수신할지 또는 어떻게 수신할지를 제어할 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명화될 수 있으므로 파라미터를 생성할 때 개인 식별 정보가 제거된다. 예를 들어, 사용자에 대해 개인 식별 정보를 결정할 수 없거나 사용자의 지리적 위치를 위치 정보가 획득된 장소 (예를 들어, 도시, 우편 번호 또는 주(state) 수준)를 일반화할 수 없도록 사용자의 신원을 익명으로 처리할 수 있으므로, 사용자의 특정 위치를 결정할 수 없다. 따라서, 사용자는 컨텐트 서버에 의해 자신에 관한 정보가 어떻게 수집되는지에 대해 제어할 수 있다.
본원에서 설명된 주제 및 동작은 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 본원에서 설명된 주제는 하나 이상의 컴퓨터 프로그램, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 또는 그 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체를 통해 인코딩된, 컴퓨터 프로그램 명령들의 하나 이상의 회로들로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 머신-생성 전기, 광학 또는 전자기 신호를 통해 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 기기, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 기기, 또는 이들 중 하나 이상의 조합일 수 있거나, 또는 이들을 포함할 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지 일 수 있다. 컴퓨터 저장 매체는 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 기기) 일 수 있거나 또는 이를 포함할 수 있다. 본원에서 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 기기 상에 저장되거나 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 처리 기기에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 시스템" "컴퓨팅 기기" "컴포넌트" 또는 "데이터 처리 장치"라는 용어는 데이터를 처리하기 위한 다양한 장치, 기기 및 기계를 포함하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩, 또는 복수의 것들, 또는 전술한 것의 조합 일 수 있다. 이러한 장치는 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(어플리케이션 특정 집적 회로)을 포함할 수 있다. 또한, 장치는 하드웨어에 부가하여, 당해 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 -플랫폼 런타임(cross-platform runtime) 환경, 가상 시스템 또는 이들 중 하나 이상의 조합으로 구성되는 실행 환경을 생성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 다이렉트 액션 API(135), 컨텐트 선택기 컴포넌트(125), 예측 컴포넌트(120) 또는 NLP 컴포넌트(110) 및 다른 데이터 처리 시스템(105) 컴포넌트는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 기기 또는 프로세서를 포함하거나 공유할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 애플리케이션, 스크립트 또는 코드로도 알려져 있는) 컴퓨터 프로그램은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떤 형태로든 사용할 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 당해 프로그램 전용 싱글 파일 또는 여러 개의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)로, 다른 프로그램이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)을 보유하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 있는 여러 컴퓨터들 상에서 실행되도록 배치되거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명되는 프로세스 및 로직 흐름들은 입력 데이터를 조작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램(예를 들어, 데이터 처리 시스템(105)의 컴포넌트)을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름들은 또한 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(어플리케이션 특정 집적 회로)과 같은 특수 목적의 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적의 논리 회로로 구현될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 기기들은 예를 들어 EPROM, EEPROM 및 플래시 메모리 기기들과 같은 반도체 메모리 기기들;내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비-휘발성 메모리, 매체 및 메모리 기기들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 내부에 포함될 수 있다.
본원에서 설명된 주제는, 예를 들어 데이터 서버와 같은 백-엔드 컴포넌트를 포함하거나, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나 , 또는 예를 들어, 사용자가 본 명세서에서 설명된 주제의 구현을 이용하여 이를 통해 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 가는 클라이언트 컴퓨터와 같은 프론트-엔트 컴포넌트, 또는 하나 이상의 이러한 백-엔드, 미들웨어, 또는 프론트-엔트 컴포넌트들의 조합을 포함하는, 연산 시스템으로 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어,피어-투-피어 네트워크)를 포함할 수 있다.
시스템(100) 또는 시스템(400)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있고 전형적으로 통신 네트워크(예를 들어, 네트워크(165))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 기인하여 발생한다. 일부 구현에서, 서버는 (예를 들어, 클라이언트 장치와 상호 작용하는 사용자에게 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위한 목적으로) 클라이언트 기기에 데이터 (예를 들어, 컨텐트 항목을 나타내는 데이터 패킷)를 송신한다. 클라이언트 기기에서 생성된 데이터 (예를 들어, 사용자 상호 작용의 결과)는 클라이언트 기기로부터 서버에서 수신 (예를 들어, 컴퓨팅 기기(150) 또는 컨텐트 제공자 컴퓨팅 기기(155) 또는 서비스 제공자 계산 장치(160)로부터 데이터 처리 시스템(105)에 의해 수신)될 수 있다.
동작들이 특정 순서로 도면들에 도시되어 있지만, 그러한 동작들은 도시된 특정 순서 또는 순차적인 순서로 수행될 필요는 없으며, 도시된 모든 동작들이 수행될 필요가 없다. 여기에 설명된 작업은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트의 분리에 있어서, 모든 구현 예에서 분리를 요구하는 것은 아니며, 설명된 프로그램 컴포넌트는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(110), 컨텐트 선택기 컴포넌트(125), 또는 예측 컴포넌트(120)는 단일 컴포넌트, 어플리케이션 또는 프로그램, 또는 하나 이상의 처리 회로를 갖는 로직 디바이스 일 수 있거나, 데이터 처리 시스템(105)의 하나 이상의 서버들 중 일부일 수 있다.
지금까지 몇몇 예시적인 구현을 설명하였지만, 이러한 설명은 예시적이고 제한적이지 않고, 예시로서 제시된 것임이 명백하다. 특히, 본원에서 제시된 많은 예들이 방법 동작들 또는 시스템 요소들의 특정 조합을 포함하지만, 그러한 동작들 및 요소들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 일 구현과 관련하여 논의된 동작, 요소 및 특징은 다른 구현 또는 구현에서의 유사한 역할로부터 배제되도록 의도되는 것은 아니다.
본원에 사용된 어구 및 전문 용어는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어서는 안된다. "포함하는(including)" "포함하는(comprising)" "구비하는(having)" "포함하는(containing)" "관련된(involving)" "에 의해 특정되는(characterized by)" "특징으로 하는(characterized in that)" 및 그 변형은 이하에 열거된 항목, 그 등가물 및 추가 항목을 포함하는 것을 의도할 뿐만 아니라, 이후에 전적으로 나열된 항목들로 구성된 대체 구현을 포함하는 것을 의도한다. 일 구현 예에서, 본원에서 설명된 시스템 및 방법은 설명된 컴포넌트, 동작 또는 컴포넌트 중 하나 이상, 또는 모두의 각각의 조합으로 구성된다.
단수로 언급된 시스템 및 방법의 구현 또는 엘리먼트 또는 액션들에 대한 임의의 참조는 복수의 이들 요소를 포함하는 구현을 포함할 수 있으며, 임의의 구현 또는 요소 또는 동작에 대한 복수의 임의의 참조는 또한 단일 요소만을 포함하는 구현 들을 포함할 수도 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 컴포넌트, 동작 또는 요소를 단일 또는 복수 구성으로 제한하려는 것이 아니다. 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 요소에 대한 참조들은 해당 동작 또는 요소가 적어도 부분적으로 임의의 정보, 동작 또는 요소에 기초하는 구현들을 포함할 수 있다.
본원에서 개시된 임의의 구현은 임의의 다른 구현 또는 실시 예와 결합될 수 있으며, "구현", "일부 구현들", "일 구현" 등은 반드시 상호 배타적인 것은 아니며, 특징, 구조 또는 특성이 적어도 하나의 구현 예 또는 실시 예에 포함될 수 있다. 본원에서 사용된 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 본원에서 개시된 측면 및 구현과 일관된 방식으로 임의의 구현이 다른 구현과 포괄적으로 또는 독점적으로 결합될 수 있다.
"또는(or)"에 대한 참조들은 "또는"을 사용하여 설명된 임의의 용어가 설명된 용어 중 하나, 둘 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어 'A'와 'B'중 적어도 하나는 'A'와 'B'뿐 아니라 'A'와 'B' 전부를 포함할 수 있다. "포함하는(comprising)" 또는 다른 개방형태 용어(open terminology)와 관련하여 사용된 이러한 참조들은 추가 항목을 포함할 수 있다.
도면, 상세한 설명 또는 임의의 청구 범위의 기술적 특징이 참조 부호에 의해 후속되는 경우, 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 참조 부호가 포함되었다. 따라서, 참조 부호들 또는 이들의 부재는 어떠한 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 갖지 않는다.
본원에 설명된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 예를 들어, 데이터 처리 시스템(105)은 스레드(200)의 동작들의 시퀀스에서의 이전 동작으로부터의 데이터에 부분적으로 기초하여 후속 동작 (예를 들어, 제 3 액션(215)에 대한)에 대한 컨텐트 항목을 선택할 수 있고, 예를 들어, 제 2 액션(210)은 제 2 액션(210)이 완료되었거나 시작하려고 함을 나타낸다. 전술 한 구현들은 설명된 시스템 및 방법을 제한하기보다는 예시적인 것이다. 따라서, 본원에서 설명된 시스템 및 방법의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 지시되며, 청구 범위의 의미 및 범위 내에서 일어나는 변경들은 본원에 포함된다.

Claims (20)

  1. 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템으로서,
    클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함하는 입력 데이터 패킷을 수신하기 위해 데이터 처리 시스템에 의해 실행되는 자연 언어 프로세서 컴포넌트 -상기 자연 언어 프로세서 컴포넌트는 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱함-;
    키워드에 기초하여 스레드를 결정하기 위한 예측 컴포넌트 -상기 스레드는 제1 액션, 제1 액션에 후속하는 제2 액션, 및 제2 액션에 후속하는 제3 액션을 포함하고; 상기 예측 컴포넌트는 상기 제1 액션 및 상기 제2 액션 중 적어도 하나의 발생 이전에 상기 제3 액션의 지시를 상기 데이터 처리 시스템의 컨텐트 선택기 컴포넌트에 제공하고; 상기 컨텐트 선택기 컴포넌트는 상기 제3 액션 및 상기 자연 언어 프로세서 컴포넌트에 의해 식별된 키워드에 기초하여 컨텐트 항목을 식별함-;
    클라이언트 컴퓨팅 기기로 하여금 상기 컨텐트 항목을 제시하게 하는 컨텐트 항목을 포함하는 데이터 패킷을 전송하기 위한 데이터 처리 시스템의 인터페이스를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  2. 제1항에 있어서,
    컨텐트 선택기 컴포넌트는 실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 식별하는 것을 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  3. 제1항에 있어서,
    자연 언어 프로세서 컴포넌트는 입력 오디오 신호를 파싱하여 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  4. 제1항에 있어서, 상기 데이터 처리 시스템은,
    컨텐트 항목을 포함하는 출력 신호를 생성하고;
    상기 클라이언트 컴퓨팅 기기에 의해 실행된 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기의 스피커를 구동시켜, 상기 제1 액션 및 상기 제2 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 발생 시키도록 상기 출력 신호를 전송하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  5. 제1항에 있어서, 상기 데이터 처리 시스템은,
    제1 액션의 발생에 후속하는 제2 컨텐트 항목을 식별하고; 그리고
    클라이언트 컴퓨팅 기기로 하여금 제3 액션의 발생 전에 제2 컨텐트 항목을 제시하게 하기 위해 제2 컨텐트 항목을 전송하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  6. 제1항에 있어서, 상기 데이터 처리 시스템은,
    컨텐트 아이템을 포함하는 출력 신호를 생성하고; 그리고
    상기 클라이언트 컴퓨팅 기기에 의해 실행된 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기의 스피커를 구동시켜, 상기 제1 액션의 발생에 후속하여 그리고 제2 액션의 발생 전에 상기 출력 신호에 대응하는 음향 파를 발생 시키도록 상기 출력 신호를 포함하는 데이터 패킷을 전송하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  7. 제1항에 있어서, 상기 데이터 처리 시스템은,
    클라이언트 컴퓨팅 기기로부터, 제1 액션 또는 제2 액션 중 적어도 하나의 발생 이전에 컨텐트 항목에 대한 응답을 포함하는 데이터 메시지를 수신하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  8. 제1항에 있어서, 상기 데이터 처리 시스템은,
    제1 액션의 완료 시간 및 제2 액션의 완료 시간 중 하나에 기초하여 제3 액션을 개시하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  9. 제1항에 있어서, 상기 시스템은,
    상기 제1 액션 및 상기 제2 액션 중 적어도 하나의 완료 후 상기 제3 액션을 개시하기 위한 상기 데이터 처리 시스템의 직접 액션 애플리케이션 프로그래밍 인터페이스를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하기 위한 시스템.
  10. 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장(expand)하기 위한 시스템으로서,
    클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함하는 입력 데이터 패킷을 수신하기 위해 데이터 처리 시스템에 의해 실행되는 자연 언어 프로세서 컴포넌트 -상기 자연 언어 프로세서 컴포넌트는 요청 및 상기 요청에 대응하는 트리거 키워드를 식별하기 위해 상기 입력 오디오 신호를 파싱하고; 상기 데이터 처리 시스템은 트리거 키워드 및 요청에 기초하여 스레드를 결정하고; 상기 스레드는 제1 액션, 제1 액션에 후속하는 제2 액션, 및 제2 액션에 후속하는 제3 액션을 포함함-;
    상기 스레드에 대응하는 컨텐트 항목을 포함하는 출력 신호를 생성하기 위해 상기 데이터 처리 시스템에 의해 실행되는 오디오 신호 생성기 컴포넌트; 그리고
    오디오 신호 생성기 컴포넌트에 의해 생성된 출력 신호를 포함하는 데이터 패킷을 전송하고, 클라이언트 컴퓨팅 기기에 의해 실행된 오디오 드라이버 컴포넌트로 하여금 클라이언트 컴퓨팅 기기의 스피커를 구동시켜,
    제1 액션, 제2 액션 또는 제3 액션 중 적어도 하나의 발생 이전에 상기 출력 신호에 대응하는 음향 파를 생성하게 하는 데이터 처리 시스템의 인터페이스를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  11. 제10항에 있어서,
    컨텐트 선택기 컴포넌트는 실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 식별하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  12. 제10항에 있어서, 상기 데이터 처리 시스템은,
    제1 액션의 발생에 후속하는 제2 컨텐트 항목을 식별하고; 그리고
    클라이언트 컴퓨팅 기기로 하여금 제3 액션의 발생 전에 제2 컨텐트 항목을 제시하게 하기 위해 제2 컨텐트 항목을 전송하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  13. 제10항에 있어서, 상기 데이터 처리 시스템은,
    상기 클라이언트 컴퓨팅 기기에 의해 실행된 오디오 드라이버 컴포넌트로 하여금 상기 클라이언트 컴퓨팅 기기의 스피커를 구동시켜, 상기 제1 액션의 발생에 후속하여 그리고 제2 액션의 발생 전에 상기 출력 신호에 대응하는 음향 파를 발생 시키도록 상기 출력 신호를 포함하는 데이터 패킷을 전송하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  14. 제10항에 있어서, 상기 데이터 처리 시스템은,
    클라이언트 컴퓨팅 기기로부터, 제1 액션 또는 제2 액션 중 적어도 하나의 발생 이전에 컨텐트 항목에 대한 응답을 포함하는 데이터 메시지를 수신하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  15. 제10항에 있어서, 상기 데이터 처리 시스템은,
    제1 액션의 완료 시간 및 제2 액션의 완료 시간 중 하나에 기초하여 제3 액션을 개시하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  16. 제10항에 있어서, 상기 시스템은,
    상기 제1 액션 및 상기 제2 액션 중 적어도 하나의 완료 후 상기 제3 액션을 개시하기 위한 상기 데이터 처리 시스템의 직접 액션 애플리케이션 프로그래밍 인터페이스를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  17. 제10항에 있어서, 상기 시스템은,
    상기 제3 액션에 대응하는 활동을 개시하고 이어서 상기 제2 액션에 대응하는 활동을 개시하는 데이터 처리 시스템의 직접 액션 애플리케이션 프로그래밍 인터페이스를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  18. 제10항에 있어서, 상기 데이터 처리 시스템은,
    제1 액션에 대해, 제2 실시간 컨텐트 선택 프로세스를 통해 제2 컨텐트 항목을 선택하고,
    제2 액션에 대해, 제3 실시간 선택 프로세스를 통해 제3 컨텐트 아이템을 선택하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 확장하기 위한 시스템.
  19. 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하는 방법으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 데이터 처리 시스템에 의해, 클라이언트 컴퓨팅 기기의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷을 수신하는 단계;
    데이터 처리 시스템에 의해, 키워드를 식별하기 위해 입력 오디오 신호를 파싱하는 단계;
    데이터 처리 시스템에 의해, 키워드에 기초하여 스레드를 결정하는 단계 -상기 스레드는 제1 액션, 제1 액션에 후속하는 제2 액션, 및 제2 액션에 후속하는 제3 액션을 포함함-;
    데이터 처리 시스템에 의해, 상기 제1 액션 및 상기 제2 액션 중 적어도 하나의 발생 이전에 상기 제3 액션의 지시를 제공하는 단계;
    데이터 처리 시스템에 의해, 상기 제3 액션 및 상기 데이터 처리 시스템에 의해 식별된 키워드에 기초하여, 컨텐트 항목을 식별하는 단계; 그리고
    데이터 처리 시스템에 의해, 상기 클라이언트 컴퓨팅 기기로 하여금 상기 컨텐트 항목을 제시하게 하는 컨텐트 항목을 포함하는 데이터 패킷을 전송하는 단계를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하는 방법.
  20. 제19항에 있어서, 상기 방법은,
    실시간 컨텐트 선택 프로세스를 통해 컨텐트 항목을 식별하는 단계를 포함하는 것을 특징으로 하는 음성 활성 데이터 패킷 기반 컴퓨터 네트워크 환경에서 시퀀스 종속 동작들을 처리하는 방법.
KR1020207014345A 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리 KR102270132B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217019278A KR20210079422A (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/395,682 US10013978B1 (en) 2016-12-30 2016-12-30 Sequence dependent operation processing of packet based data message transmissions
US15/395,682 2016-12-30
PCT/US2017/049709 WO2018125298A1 (en) 2016-12-30 2017-08-31 Sequence dependent operation processing of packet based data message transmissions
KR1020177031607A KR102115540B1 (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031607A Division KR102115540B1 (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217019278A Division KR20210079422A (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Publications (2)

Publication Number Publication Date
KR20200057806A true KR20200057806A (ko) 2020-05-26
KR102270132B1 KR102270132B1 (ko) 2021-06-28

Family

ID=59966825

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020217019278A KR20210079422A (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리
KR1020207014345A KR102270132B1 (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리
KR1020177031607A KR102115540B1 (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217019278A KR20210079422A (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177031607A KR102115540B1 (ko) 2016-12-30 2017-08-31 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리

Country Status (9)

Country Link
US (3) US10013978B1 (ko)
EP (1) EP3365801B1 (ko)
JP (3) JP6615909B2 (ko)
KR (3) KR20210079422A (ko)
CN (2) CN108541314B (ko)
AU (3) AU2017386093B2 (ko)
DE (2) DE212017000059U1 (ko)
GB (1) GB2572133A (ko)
WO (1) WO2018125298A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013978B1 (en) * 2016-12-30 2018-07-03 Google Llc Sequence dependent operation processing of packet based data message transmissions
US10957002B2 (en) 2010-08-06 2021-03-23 Google Llc Sequence dependent or location based operation processing of protocol based data message transmissions
US10614801B2 (en) 2012-06-25 2020-04-07 Google Llc Protocol based computer network exposure interval content item transmission
US9767479B2 (en) 2012-06-25 2017-09-19 Google Inc. System and method for deploying ads based on a content exposure interval
US11218434B2 (en) 2013-06-12 2022-01-04 Google Llc Audio data packet status determination
KR102455199B1 (ko) * 2017-10-27 2022-10-18 엘지전자 주식회사 인공지능 디바이스
EP3669283B1 (en) * 2018-10-22 2021-04-07 Google LLC Network source identification via audio signals
US11410651B2 (en) 2018-10-22 2022-08-09 Google Llc Network source identification via audio signals
CN111435545B (zh) * 2019-04-16 2020-12-01 北京仁光科技有限公司 标绘处理方法、共享图像标绘方法及标绘再现方法
KR20210147678A (ko) * 2020-05-29 2021-12-07 엘지전자 주식회사 인공 지능 장치
CN112530440B (zh) * 2021-02-08 2021-05-07 浙江浙达能源科技有限公司 一种基于端到端模型的配电网调度任务智能语音识别系统
US11770268B2 (en) * 2022-02-14 2023-09-26 Intel Corporation Enhanced notifications for online collaboration applications
US11676173B1 (en) * 2022-04-27 2023-06-13 Content Square SAS Webpage zone exposure rate optimization
CN115083413B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080072673A (ko) * 2005-11-30 2008-08-06 마이크로소프트 코포레이션 의도-동작 매핑을 용이하게 해주는 시스템, 자연어 입력에기초하여 동작을 추론하는 방법 및 자연어 입력을 실행되는동작으로 변환하는 시스템
KR20120110751A (ko) * 2011-03-30 2012-10-10 포항공과대학교 산학협력단 음성 처리 장치 및 방법
KR20120137425A (ko) * 2010-01-18 2012-12-20 애플 인크. 지능형 자동화 어시스턴트에 대한 서비스 오케스트레이션
US9424840B1 (en) * 2012-08-31 2016-08-23 Amazon Technologies, Inc. Speech recognition platforms

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044347A (en) * 1997-08-05 2000-03-28 Lucent Technologies Inc. Methods and apparatus object-oriented rule-based dialogue management
US6907566B1 (en) 1999-04-02 2005-06-14 Overture Services, Inc. Method and system for optimum placement of advertisements on a webpage
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
US6732080B1 (en) * 1999-09-15 2004-05-04 Nokia Corporation System and method of providing personal calendar services
US20040193488A1 (en) 2000-01-19 2004-09-30 Denis Khoo Method and system for advertising over a data network
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
US6857007B1 (en) 2000-08-30 2005-02-15 Bloomfield Enterprises, Llc Personal digital assistant facilitated communication system
US20060015904A1 (en) 2000-09-08 2006-01-19 Dwight Marcus Method and apparatus for creation, distribution, assembly and verification of media
US20020116287A1 (en) 2000-10-23 2002-08-22 Schubert Timothy D. Multi-faceted, tier driven electronic commerce facilitator
US20020116313A1 (en) 2000-12-14 2002-08-22 Dietmar Detering Method of auctioning advertising opportunities of uncertain availability
US20020102988A1 (en) 2001-01-26 2002-08-01 International Business Machines Corporation Wireless communication system and method for sorting location related information
JP2003303255A (ja) * 2002-04-08 2003-10-24 Ntt Data Corp プレゼンス対応型情報連動予定通知並びに変更システム及びそのプログラム
JP2003345806A (ja) * 2002-05-23 2003-12-05 Hitachi Software Eng Co Ltd スケジュール関連情報の取得システム、方法及びプログラム
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7092724B2 (en) 2002-06-13 2006-08-15 International Business Machines Corporation Method and apparatus for waypoint services navigational system
NZ538377A (en) 2002-07-22 2006-09-29 Mediaone Network Inc Internet based delivery system for delivering auxiliary content such as advertisements
US7668754B1 (en) 2003-07-21 2010-02-23 Symbol Technologies, Inc. Architecture for secure reverse mobile commerce
US7979877B2 (en) 2003-12-23 2011-07-12 Intellocity Usa Inc. Advertising methods for advertising time slots and embedded objects
US7853255B2 (en) 2004-04-16 2010-12-14 Broadcom Corporation Digital personal assistance via a broadband access gateway
KR100481141B1 (ko) 2004-04-17 2005-04-07 엔에이치엔(주) 소정의 검색 요청에 의해 검색 목록순을 추출하는 검색어광고 제공 시스템 및 검색어 광고 제공 방법
US20060224445A1 (en) 2005-03-30 2006-10-05 Brian Axe Adjusting an advertising cost, such as a per-ad impression cost, using a likelihood that the ad will be sensed or perceived by users
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US8370197B2 (en) 2005-09-30 2013-02-05 Google Inc. Controlling the serving of advertisements, such as cost per impression advertisements for example, to improve the value of such serves
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
JP2007179239A (ja) * 2005-12-27 2007-07-12 Kenwood Corp スケジュール管理装置及びプログラム
IL174107A0 (en) 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
WO2007091096A1 (en) 2006-02-10 2007-08-16 Spinvox Limited A mass-scale, user-independent, device-independent, voice message to text conversion system
US9101279B2 (en) 2006-02-15 2015-08-11 Virtual Video Reality By Ritchey, Llc Mobile user borne brain activity data and surrounding environment data correlation system
US20070197239A1 (en) * 2006-02-17 2007-08-23 Global Wireless Unified Messaging Systems, Llc Global wireless unified messaging system and method
US20070281716A1 (en) 2006-06-01 2007-12-06 Flipt, Inc Message transmission system for users of location-aware mobile communication devices in a local area network
US7747445B2 (en) * 2006-07-12 2010-06-29 Nuance Communications, Inc. Distinguishing among different types of abstractions consisting of plurality of commands specified by particular sequencing and or timing or no timing and sequencing using voice commands
US9514436B2 (en) 2006-09-05 2016-12-06 The Nielsen Company (Us), Llc Method and system for predicting audience viewing behavior
US8831987B2 (en) 2006-12-19 2014-09-09 The Rubicon Project Managing bids in a real-time auction for advertisements
US7743394B2 (en) 2007-04-03 2010-06-22 Google Inc. Log processing of channel tunes and channel tune times generated from a television processing device
US8229458B2 (en) 2007-04-08 2012-07-24 Enhanced Geographic Llc Systems and methods to determine the name of a location visited by a user of a wireless device
US8682724B2 (en) 2007-09-10 2014-03-25 Yahoo! Inc. System and method using sampling for scheduling advertisements in slots of different quality in an online auction with budget and time constraints
US8165886B1 (en) * 2007-10-04 2012-04-24 Great Northern Research LLC Speech interface system and method for control and interaction with applications on a computing system
US8666807B1 (en) 2008-01-08 2014-03-04 Clear Channel Management Services, Inc. System and method for creating and managing media advertising proposals
US20090192929A1 (en) 2008-01-24 2009-07-30 Jonathan William Hoeflinger Systems and Methods for Distributing Electronic Media
US8099289B2 (en) * 2008-02-13 2012-01-17 Sensory, Inc. Voice interface and search for electronic devices including bluetooth headsets and remote systems
US8725492B2 (en) * 2008-03-05 2014-05-13 Microsoft Corporation Recognizing multiple semantic items from single utterance
US20090292587A1 (en) 2008-04-17 2009-11-26 Arbitron, Inc. Cross-media interactivity metrics
CN101599059A (zh) * 2008-06-06 2009-12-09 佛山市顺德区顺达电脑厂有限公司 语音输入的翻译装置与方法
US8135616B2 (en) 2008-06-26 2012-03-13 Microsoft Corporation Browsing and quality of service features
US20100010890A1 (en) 2008-06-30 2010-01-14 Eyeblaster, Ltd. Method and System for Measuring Advertisement Dwell Time
AU2009274007A1 (en) 2008-07-22 2011-06-23 Contextweb, Inc. New open insertion order system to interface with an exchange for internet ad media
US8799200B2 (en) 2008-07-25 2014-08-05 Liveperson, Inc. Method and system for creating a predictive model for targeting webpage to a surfer
KR101012165B1 (ko) 2008-08-05 2011-02-07 엔에이치엔비즈니스플랫폼 주식회사 광고 트래픽에 따라 단위시간 입찰가를 조절하여 광고를제공하는 방법 및 시스템
US8407609B2 (en) 2008-08-21 2013-03-26 Linqware Inc. System and method for providing and tracking the provision of audio and visual presentations via a computer network
US8706547B2 (en) 2008-08-29 2014-04-22 Google Inc. Dynamic pricing for content presentations
US20100057639A1 (en) 2008-08-30 2010-03-04 Yahoo! Inc. System and method for utilizing time measurements in advertising pricing
CN101377797A (zh) * 2008-09-28 2009-03-04 腾讯科技(深圳)有限公司 一种应用语音控制游戏系统的方法和游戏系统
US20110185382A2 (en) 2008-10-07 2011-07-28 Google Inc. Generating reach and frequency data for television advertisements
US9094721B2 (en) * 2008-10-22 2015-07-28 Rakuten, Inc. Systems and methods for providing a network link between broadcast content and content located on a computer network
US8145561B1 (en) 2009-01-05 2012-03-27 Sprint Communications Company L.P. Phone usage pattern as credit card fraud detection trigger
US20100176985A1 (en) 2009-01-13 2010-07-15 Lucent Technologies Inc. Systems and methods of global positioning systems using wireless networks
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9852193B2 (en) 2009-08-10 2017-12-26 Ebay Inc. Probabilistic clustering of an item
US20110066942A1 (en) * 2009-09-14 2011-03-17 Barton James M Multifunction Multimedia Device
US20110078014A1 (en) 2009-09-30 2011-03-31 Google Inc. Online resource assignment
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
JP2011210238A (ja) 2010-03-10 2011-10-20 Dainippon Printing Co Ltd 広告効果測定装置及びコンピュータプログラム
US8229786B2 (en) 2010-04-06 2012-07-24 Yahoo! Inc. Click probability with missing features in sponsored search
WO2011163060A2 (en) 2010-06-23 2011-12-29 Managed Audience Share Solutions LLC Methods, systems, and computer program products for managing organized binary advertising asset markets
US8849694B1 (en) 2010-08-06 2014-09-30 Google Inc. Predicting promotional message response based on device distance
US10013978B1 (en) * 2016-12-30 2018-07-03 Google Llc Sequence dependent operation processing of packet based data message transmissions
CN102374864B (zh) * 2010-08-13 2014-12-31 国基电子(上海)有限公司 语音导航设备及语音导航方法
US20120130798A1 (en) 2010-11-23 2012-05-24 Cooley Robert W Model sequencing for managing advertising pricing
US8666796B2 (en) 2011-02-04 2014-03-04 Google Inc. Content item allocation
US20130066725A1 (en) 2011-09-09 2013-03-14 Dennoo Inc. Methods and systems for acquiring advertisement impressions
CA2851268A1 (en) 2011-10-06 2013-04-11 Infersystems Corp. Automated allocation of media via network
US20130151332A1 (en) 2011-12-10 2013-06-13 Rong Yan Assisted adjustment of an advertising campaign
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9275411B2 (en) * 2012-05-23 2016-03-01 Google Inc. Customized voice action system
JP5819261B2 (ja) 2012-06-19 2015-11-18 株式会社Nttドコモ 機能実行指示システム、機能実行指示方法及び機能実行指示プログラム
US9767479B2 (en) 2012-06-25 2017-09-19 Google Inc. System and method for deploying ads based on a content exposure interval
US20140067455A1 (en) 2012-08-30 2014-03-06 Palo Alto Research Center Incorporated Method and apparatus for automatically managing user activities using contextual information
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
KR101370539B1 (ko) 2013-03-15 2014-03-06 포항공과대학교 산학협력단 지시 표현 처리에 기반한 대화 처리 방법 및 장치
CN104239363A (zh) * 2013-06-24 2014-12-24 上海能感物联网有限公司 非特定人外语语音现场实时查询指路机信息的方法
US20150193379A1 (en) 2014-01-06 2015-07-09 Apple Inc. System and method for cognizant time-based reminders
EP2891974A1 (en) * 2014-01-06 2015-07-08 Samsung Electronics Co., Ltd Display apparatus which operates in response to voice commands and control method thereof
US20150302458A1 (en) 2014-04-16 2015-10-22 Ebay Inc. Identifying advertisements based on audio data and performing associated tasks
US20150363748A1 (en) 2014-06-11 2015-12-17 Here Global B.V. Method and apparatus for time-based notification during an event
US10068256B2 (en) 2014-10-08 2018-09-04 Microsoft Technology Licensing, Llc User directed information collections
US20160357519A1 (en) 2015-06-05 2016-12-08 Microsoft Technology Licensing, Llc Natural Language Engine for Coding and Debugging
WO2017019646A1 (en) 2015-07-24 2017-02-02 Videoamp, Inc. Sequential delivery of advertising content across media devices
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10089647B2 (en) 2016-06-21 2018-10-02 Sulvo, LLC Systems and methods for online ad pricing
US20180052573A1 (en) * 2016-08-17 2018-02-22 Microsoft Technology Licensing, Llc Interaction with a file storage service through a messaging bot

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080072673A (ko) * 2005-11-30 2008-08-06 마이크로소프트 코포레이션 의도-동작 매핑을 용이하게 해주는 시스템, 자연어 입력에기초하여 동작을 추론하는 방법 및 자연어 입력을 실행되는동작으로 변환하는 시스템
KR20120137425A (ko) * 2010-01-18 2012-12-20 애플 인크. 지능형 자동화 어시스턴트에 대한 서비스 오케스트레이션
KR20120110751A (ko) * 2011-03-30 2012-10-10 포항공과대학교 산학협력단 음성 처리 장치 및 방법
US9424840B1 (en) * 2012-08-31 2016-08-23 Amazon Technologies, Inc. Speech recognition platforms

Also Published As

Publication number Publication date
AU2017386093A1 (en) 2019-05-30
DE112017000092T5 (de) 2018-08-23
US20180190276A1 (en) 2018-07-05
WO2018125298A1 (en) 2018-07-05
US10013978B1 (en) 2018-07-03
JP7035235B2 (ja) 2022-03-14
AU2020201889B2 (en) 2020-10-08
JP2021077404A (ja) 2021-05-20
KR20180091709A (ko) 2018-08-16
DE212017000059U1 (de) 2018-09-13
JP2019507396A (ja) 2019-03-14
AU2017386093B2 (en) 2019-12-19
AU2021200037A1 (en) 2021-03-11
EP3365801A1 (en) 2018-08-29
JP2020038691A (ja) 2020-03-12
KR102115540B1 (ko) 2020-05-26
AU2021200037B2 (en) 2022-06-02
CN108541314A (zh) 2018-09-14
US20210097997A1 (en) 2021-04-01
JP6615909B2 (ja) 2019-12-04
AU2020201889A1 (en) 2020-04-02
US20180308484A1 (en) 2018-10-25
US10854198B2 (en) 2020-12-01
JP6833951B2 (ja) 2021-02-24
KR102270132B1 (ko) 2021-06-28
GB2572133A (en) 2019-09-25
EP3365801B1 (en) 2023-02-22
CN108541314B (zh) 2022-02-08
GB201802686D0 (en) 2018-04-04
KR20210079422A (ko) 2021-06-29
CN114579694A (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
KR102115540B1 (ko) 패킷 기반 데이터 메시지 전송의 시퀀스 의존 동작 처리
KR102015071B1 (ko) 음성 활성 데이터 패킷의 데이터 구조 풀링
JP6932827B2 (ja) 音声起動されたコンピュータネットワーク環境におけるシーケンス依存データメッセージ統合

Legal Events

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