KR20220062360A - 동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스 - Google Patents

동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스 Download PDF

Info

Publication number
KR20220062360A
KR20220062360A KR1020227011840A KR20227011840A KR20220062360A KR 20220062360 A KR20220062360 A KR 20220062360A KR 1020227011840 A KR1020227011840 A KR 1020227011840A KR 20227011840 A KR20227011840 A KR 20227011840A KR 20220062360 A KR20220062360 A KR 20220062360A
Authority
KR
South Korea
Prior art keywords
application
digital assistant
component
natural language
input
Prior art date
Application number
KR1020227011840A
Other languages
English (en)
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 KR20220062360A publication Critical patent/KR20220062360A/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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/083Recognition networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting
    • 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)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

애플리케이션과의 동적 인터페이스가 제공된다. 예를 들어, 시스템은 제1 입력 오디오 신호를 수신한다. 시스템은 자연어 처리 기술을 통해 제1 입력 오디오 신호를 처리하여 애플리케이션을 식별한다. 시스템은 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화한다. 애플리케이션은 애플리케이션이 수행하도록 구성된 기능을 선언한다. 시스템은 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정한다. 시스템은 제2 입력 오디오 신호를 수신한다. 시스템은 수정된 자연어 처리 기술을 통해 제2 입력 오디오 신호를 처리하여 하나 이상의 파라미터를 검출한다. 시스템은 하나 이상의 파라미터가 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정한다. 시스템은 애플리케이션에 대한 액션 데이터 구조를 생성한다. 시스템은 액션 데이터 구조를 그 액션 데이터 구조를 실행하는 애플리케이션에 입력한다.

Description

동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스
컴퓨팅 디바이스는 애플리케이션을 실행할 수 있다. 애플리케이션은 입력 정보를 수신하고, 기능을 수행하고, 정보를 출력할 수 있는 사용자 인터페이스를 제공할 수 있다.
본 기술 솔루션은 일반적으로 동적으로 업데이트되는 자연어 처리("NLP") 또는 자연어 이해를 통해 제3자(3P) 애플리케이션과 같은 애플리케이션과 인터페이스하는 것에 관한 것이다. NLP를 동적으로 업데이트함으로써 본 기술 솔루션은 디지털 어시스턴트를 통해 (3P 애플리케이션을 포함하는) 애플리케이션과의 음성 기반(voice-based) 상호 작용을 용이하게 할 수 있다.
제한된 인터페이스를 가지거나 제한된 인터페이스를 사용하는 컴퓨팅 디바이스에서 액션을 실행하기 위해 애플리케이션과 인터페이스하는 것은 어려울 수 있다. 애플리케이션과 통신하기 위해 추가 인터페이스를 사용하는 것은 컴퓨팅 리소스 소비를 증가시키고, 과도한 인터페이스 사용을 수반하거나 지연시키고 애플리케이션에 의한 액션의 실행 및 완료에 지연을 도입할 수 있다.
따라서 본 기술 솔루션은 애플리케이션으로부터 선언을 수신하기 위해 프로토콜을 활용할 수 있다. 이 기술 솔루션은 선언을 사용하여, 음성 입력을 파싱(구문 분석)하거나 처리하는데 사용되는 자연어 이해 또는 처리 기술을 실시간으로(예를 들어, 애플리케이션의 호출 및 선언의 수신에 응답하여) 업데이트할 수 있다. 이 기술 솔루션은 업데이트된 NLP 기술을 사용하여 후속 음성 입력을 처리하여, 액션을 실행하기 위해 애플리케이션에 의해 사용된 입력 파라미터를 검출할 가능성, 정확성 및 신뢰성을 개선할 수 있다.
본 기술 솔루션의 적어도 하나의 양태는 애플리케이션과 동적으로 인터페이스하는 시스템에 관한 것이다. 시스템은 클라이언트 컴퓨팅 디바이스에 의해 실행되는 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 컴퓨팅 디바이스는 하나 이상의 프로세서 및 메모리를 포함할 수 있다. 디지털 어시스턴트 컴포넌트는 자연어 프로세서 컴포넌트, 애플리케이션 관리자 컴포넌트 및 다이렉트 액션 애플리케이션 프로그래밍 인터페이스("API")를 실행할 수 있다. NLP 컴포넌트는 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제1 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트는 자연어 처리 기술을 통해, 제1 입력 오디오 신호를 처리하여 애플리케이션의 표시를 식별할 수 있다. 애플리케이션 관리자 컴포넌트는 표시에 응답하여, 클라이언트 컴퓨팅 디바이스에서 실행할 애플리케이션을 활성화할 수 있다. 애플리케이션은 프로토콜을 통해 디지털 어시스턴트에게, 애플리케이션이 수행하도록 구성된 기능을 선언할 수 있다. NLP 컴포넌트는 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정할 수 있다. NLP 컴포넌트는 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트는 수정된 자연어 처리 기술을 통해, 제2 입력 오디오 신호를 처리하여 하나 이상의 파라미터를 검출할 수 있다. NLP 컴포넌트는 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스에서 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드의 입력에 대해 호환가능하다고 결정할 수 있다. 다이렉트 액션 API는 호환성 결정에 응답하고 하나 이상의 파라미터에 기초하여, 애플리케이션에 대한 액션 데이터 구조를 생성할 수 있다. 다이렉트 액션 API는 프로토콜을 통해 액션 데이터 구조를 애플리케이션에 입력하여 애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 할 수 있다.
본 기술 솔루션의 적어도 하나의 양태는 애플리케이션과 동적으로 인터페이스하는 방법에 관한 것이다. 방법은 클라이언트 컴퓨팅 디바이스에 의해 실행되는 디지털 어시스턴트 컴포넌트에 의해 수행될 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제1 입력 오디오 신호를 수신하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 애플리케이션의 표시를 식별하기 위해 자연어 처리 기술을 통해 제1 입력 오디오 신호를 처리하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 표시에 응답하여 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하는 단계를 포함할 수 있다. 애플리케이션은 프로토콜을 통해 디지털 어시스턴트에게 애플리케이션이 수행하도록 구성된 기능을 선언할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하는 단계를 포함할 수 있다. 이 방법은 디지털 어시스턴트 컴포넌트가 수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하기 위해 제2 입력 오디오 신호를 처리하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스상의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 호환성의 결정에 응답하고 하나 이상의 파라미터에 기초하여, 애플리케이션에 대한 액션 데이터 구조를 생성하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 프로토콜을 통해 애플리케이션에 액션 데이터 구조를 입력하는 단계를 포함할 수 있다.
적어도 하나의 양태는 애플리케이션과 동적으로 인터페이스하는 시스템에 관한 것이다. 시스템은 하나 이상의 프로세서와 메모리를 포함할 수 있다. 예를 들어, 시스템은 클라이언트 컴퓨팅 디바이스에 의해 실행되는 데이터 처리 시스템을 포함할 수 있다. 시스템은 하나 이상의 프로세서 및 메모리에 의해 실행되는 디지털 어시스턴트 컴포넌트를 포함할 수 있다. 디지털 어시스턴트 컴포넌트는 제1 입력 오디오에 응답하여, 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화할 수 있다. 애플리케이션의 활성화는 애플리케이션이 수행하도록 구성된 기능을 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 선언하도록 할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정할 수 있다. 디지털 어시스턴트 컴포넌트는 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신할 수 있다. 디지털 어시스턴트 컴포넌트는 수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하기 위해 제2 입력 오디오 신호를 처리할 수 있다. 디지털 어시스턴트 컴포넌트는 하나 이상의 파라미터와 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드로의 입력에 대해 호환가능하다고 결정할 수 있다. 디지털 어시스턴트 컴포넌트는 호환성의 결정에 응답하여 그리고 하나 이상의 파라미터에 기초하여 애플리케이션에 대한 액션 데이터 구조를 생성할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 프로토콜을 통해 애플리케이션에 액션 데이터 구조를 입력할 수 있다. 디지털 어시스턴트 컴포넌트는 컨텐츠 요청을 원격 데이터 처리 시스템으로 전송할 수 있다. 디지털 어시스턴트 컴포넌트는 원격 데이터 처리 시스템으로부터 컨텐츠 아이템의 수신에 응답하여 원격 데이터 처리 시스템에 의해 선택된 컨텐츠 아이템을 제시할 수 있다.
적어도 하나의 양태는 애플리케이션과 동적으로 인터페이스하는 방법에 관한 것이다. 이 방법은 하나 이상의 프로세서와 메모리에 의해 수행될 수 있다. 예를 들어, 방법은 클라이언트 컴퓨팅 디바이스에 의해 실행되는 데이터 처리 시스템에 의해 수행될 수 있다. 방법은 하나 이상의 프로세서 및 메모리에 의해 실행되는 디지털 어시스턴트 컴포넌트에 의해 수행될 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 제1 입력 오디오에 응답하여 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하는 단계를 포함할 수 있다. 애플리케이션의 활성화는 애플리케이션이 그 애플리케이션이 수행하도록 구성된 기능을 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 선언하도록 할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하는 단게를 포함할 수 있다. 이 방법은 디지털 어시스턴트 컴포넌트가 수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하기 위해 제2 입력 오디오 신호를 처리하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드의 입력에 대해 호환 가능하다고 결정하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 호환성의 결정에 응답하고 하나 이상의 파라미터에 기초하여, 애플리케이션에 대한 액션 데이터 구조를 생성하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 프로토콜을 통해 애플리케이션에 액션 데이터 구조를 입력하는 단계를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 컨텐츠 요청을 원격 데이터 처리 시스템으로 전송하는 단게를 포함할 수 있다. 방법은 디지털 어시스턴트 컴포넌트가 원격 데이터 처리 시스템으로부터 컨텐츠 아이템의 수신에 응답하여, 원격 데이터 처리 시스템에 의해 선택된 컨텐츠 아이템을 제시하는 단계를 포함할 수 있다.
이러한 양태와 다른 양태 및 구현은 아래에서 자세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태 및 구현의 예시적인 예를 포함하고 청구된 양태 및 구현의 특성 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태 및 구현에 대한 예시 및 추가 이해를 제공하고, 본 명세서에 통합되고 본 명세서의 일부를 구성한다.
첨부된 도면은 축척에 맞게 그려진 것이 아니다. 다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다. 명확성을 위해 모든 컴포넌트에 모든 도면에 라벨이 지정되지 않을 수 있다.
도 1은 구현에 따른 애플리케이션과 동적으로 인터페이스하는 시스템의 예시이다.
도 2는 구현에 따른, 애플리케이션과 동적으로 인터페이스하는 시스템의 동작의 예시이다.
도 3은 구현에 따른 애플리케이션과 동적으로 인터페이스하는 방법의 예시이다.
도 4는 도 1 및 도 2에 도시된 시스템의 엘리먼트 및 도 3에 도시된 방법을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 도시하는 블록도이다.
다음은 애플리케이션과 동적으로 인터페이스하는 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현에 대한 더 자세한 설명이다. 위에서 소개되고 아래에서 더 자세히 논의되는 다양한 개념은 다양한 방식으로 구현될 수 있다.
본 기술 솔루션은 일반적으로 제3자(3P) 애플리케이션과의 인터페이스에 관한 것이다. 본 기술 솔루션의 시스템 및 방법은 자연어 처리 기술(또는 자연어 이해)을 동적으로 업데이트함으로써 (3P) 애플리케이션과 인터페이스할 수 있다. 입력의 모드가 음성 입력(예를 들어, 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 오디오 입력 신호)에 기초하는 경우와 같은 음성 기반 컴퓨팅 환경에서는, 액션(동작)을 실행하기 위해 3P 애플리케이션과 인터페이스하는 것이 어려울 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰)에서 실행되는 디지털 어시스턴트는 음성 입력을 수신할 수 있다. 디지털 어시스턴트는 스마트폰에서 실행하기 위해(또는 스마트폰에서 적어도 부분적으로 실행하기 위해) 애플리케이션을 호출하거나 시작할 수 있다. 그러나, 애플리케이션은 음성 입력을 통해 입력 파라미터들을 수신할 수 있도록 음성 인터페이스(예를 들어, 음성 입력 또는 자연어 처리를 허용하는 사용자 인터페이스)로 구성되지 않을 수 있다. 입력 파라미터들이 없으면, 애플리케이션은 액션을 수행할 수 없거나 액션을 정확하고 안정적으로 수행할 수 없다. 일부 입력 파라미터 세트를 사용하면 애플리케이션이 액션을 잘못 수행하거나(예를 들어, 잘못된 결과 또는 원하지 않는 결과 출력), 액션을 부정확하게 수행(예를 들어, 잘못된 액션 수행)할 수 있다. 일부 경우, 애플리케이션은 비-음성 기반 인터페이스(예를 들어, 디스플레이 디바이스, 터치 입력 인터페이스, 제스처 인터페이스, 아이콘, 버튼, 드롭다운 메뉴, 키보드 또는 마우스)를 사용하여 액션을 수행하기 위해 추가 파라미터들을 요청할 수 있다. 따라서, 풀 세트의 파라미터 세트 없이는, 애플리케이션은 잘못된 액션을 수행하거나, 컴퓨팅 리소스 활용(예를 들어, 추가 전력 소비, 컴퓨팅 처리)을 낭비하고 애플리케이션의 액션 완료 또는 성능 지연을 유발할 수 있다(예를 들어, 추가 요청, 프롬프트, 입력 파라미터를 얻기 위한 원격 프로시저 호출).
따라서, 본 기술 솔루션의 시스템 및 방법은 일반적으로 동적으로 업데이트되는 자연어 처리("NLP") 또는 자연어 이해를 통해 제3자("3P") 애플리케이션과 인터페이스하는 것에 관한 것이다. NLP를 동적으로 업데이트함으로써 본 기술 솔루션은 디지털 어시스턴트를 통해 3P 애플리케이션과 음성 기반 상호 작용을 촉진할 수 있다. 음성 기반 상호 작용을 제공함으로써, 3P 애플리케이션에 대한 대체 상호 작용 방법(예를 들어, 터치)과 관련된 기술적 제한 사항이 극복될 수 있는데, 예를 들어 물리적 제약으로 인해 터치 인터페이스에 어려움을 겪을 수 있는 사용자는 이점을 얻을 수 있다. 본 기술 솔루션의 시스템 및 방법은 프로토콜을 활용하여 애플리케이션으로부터 선언을 수신할 수 있다. 이 기술 솔루션은 선언을 사용하여, 음성 입력을 파싱하거나 처리하는데 사용되는 자연어 이해 또는 처리 기술을 실시간으로(예를 들어, 애플리케이션 호출 및 선언의 수신에 응답하여) 업데이트할 수 있다. 기술 솔루션은 업데이트된 NLP 기술을 사용하여 후속 음성 입력을 처리하여, 액션을 실행하기 위해 애플리케이션에 의해 사용되는 입력 파라미터들을 검출할 가능성, 신뢰성 및 정확도를 개선할 수 있다.
예를 들어, 스마트폰으로 음성 입력에는 "Restaurant_Booking_App(레스토랑 예약 앱)에서 테이블을 예약해 줘"가 포함될 수 있다. 디지털 어시스턴트는 음성 입력에서 모바일 애플리케이션 Restaurant_Booking_App을 식별한 다음 스마트폰에서 Restaurant_Booking_App 모바일 애플리케이션을 개시(launch)할 수 있다. Restaurant_Booking_App 모바일 애플리케이션은 프로토콜을 통해 디지털 어시스턴트에게, 애플리케이션이 수행할 수 있는 기능 또는 애플리케이션의 사용자 인터페이스 상태를 선언할 수 있다. 해당 정보를 사용하여, 디지털 어시스턴트는 Restaurant_Booking_App 애플리케이션과 관련된 후속 음성 입력 또는 음성 질의(voice query)를 더 잘 이해할 수 있다. 예를 들어, 후속 음성 입력이 "at Example_Italian_Restaurant"이면, 디지털 어시스턴트는 해당 음성 입력이 Restaurant_Booking_App 애플리케이션을 통한 예약의 연속이라고 결정할 수 있다. 그런 다음 디지털 어시스턴트는 예약을 하기 위한 정보 또는 파라미터들을 갖는 액션 데이터 구조를 생성하고 그 액션 데이터 구조를 프로토콜을 통해Restaurant_Booking_App 애플리케이션으로 전송할 수 있다.
본 기술 솔루션은 애플리케이션의 현재 상태에 기초하여 애플리케이션의 컨텍스트를 결정하고, 애플리케이션의 현재 상태 또는 컨텍스트와 호환되는 후속 음성 입력에서 입력 파라미터들을 검출하는 디지털 어시스턴트의 능력을 개선하기 위해 NLP 기술을 수정하고, 그런 다음 이러한 파라미터들을 애플리케이션에 입력하여 애플리케이션이 액션들을 효율적이고 정확하며 안정적으로 실행할 수 있도록 할 수 있다. 액션을 수행하기 위해 애플리케이션에 의해 사용되는 입력 파라미터들을 제공함으로써, 본 기술 솔루션은 다양한 사용자 인터페이스(예를 들어, 디스플레이 디바이스, 터치 스크린, 제스처, 키보드 또는 마우스)의 사용을 제한하거나 제거하면서 애플리케이션의 입력에 대한 프롬프트 또는 요청의 수를 줄이거나 제거할 수 있다. 따라서 본 기술 솔루션의 시스템 및 방법은 음성 입력을 사용하여 애플리케이션을 시작하고 애플리케이션에 의한 액션을 실행하는 원활한 프로세스를 제공할 수 있다. 이러한 방식으로 음성 인터페이스의 유익한 측면이 애플리케이션에 제공될 수 있다.
도 1은 애플리케이션과 동적으로 인터페이스하는 예시적인 시스템(100)을 도시한다. 시스템(100)은 컨텐츠 선택 인프라를 포함할 수 있다. 시스템(100)은 데이터 처리 시스템(102)을 포함할 수 있다. 데이터 처리 시스템(102)은 컴퓨팅 디바이스(128)를 포함하거나 컴퓨팅 디바이스에서 실행될 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 3P 컨텐츠 제공자 디바이스(140), 원격 데이터 처리 시스템(142), 또는 3P 애플리케이션 서버(148) 중 하나 이상과 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 기타 영역 네트워크, 인트라넷, 위성 네트워크, 및 음성 또는 데이터 이동 전화 네트워크와 같은 다른 통신 네트워크와 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(105)는 랩탑, 데스크탑, 태블릿, 개인 휴대 정보 단말기, 스마트 폰, 휴대용 컴퓨터 또는 스피커와 같은 적어도 하나의 컴퓨팅 디바이스(128)에 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름 또는 URL과 같은 정보 리소스에 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 컴퓨팅 디바이스(128)의 사용자는 3P 컨텐츠 제공자 디바이스(140)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다. 컴퓨팅 디바이스(128)는 디스플레이를 포함하거나 포함하지 않을 수 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우, 컴퓨팅 디바이스(128)의 주 사용자 인터페이스는 마이크로폰 및 스피커일 수 있다. 컴퓨팅 디바이스(128)는 음성 기반 컴퓨팅 환경과 인터페이스하거나 이에 포함될 수 있다.
네트워크(105)는 클라이언트 컴퓨팅 디바이스(128)에 의해 제시, 출력, 렌더링 또는 디스플레이될 수 있는 애플리케이션, 웹 페이지, 웹 사이트, 도메인 이름 또는 URL과 같은 정보 리소스에 액세스하기 위해 데이터 처리 시스템(102)에 의해 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(128)의 사용자는 3P 컨텐츠 제공자 디바이스(140)에 의해 제공되는 정보 또는 데이터에 액세스할 수 있다. 네트워크(105)는 컨텐츠 배치 또는 검색 엔진 결과 시스템과 연관되거나 디지털 컴포넌트 배치 캠페인의 일부로서 제3자 디지털 컴포넌트를 포함할 수 있는 인터넷에서 이용 가능한 정보 리소스의 서브네트워크를 포함하거나 구성할 수 있다.
네트워크(105)는 임의의 유형 또는 형태의 네트워크일 수 있으며, 점대점 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 통신망, 통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(비동기 전송 모드) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크 중 하나를 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 별 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 진화된 이동 전화 프로토콜("AMPS"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA"), 이동 통신용 글로벌 시스템("GSM"), 일반 패킷 무선 서비스("GPRS" 포함) ") 또는 범용 이동 통신 시스템("UMTS")을 포함하여 모바일 디바이스 간에 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크를 포함할 수 있다. 서로 다른 유형의 데이터가 서로 다른 프로토콜을 통해 전송되거나 동일한 유형의 데이터가 서로 다른 프로토콜을 통해 전송될 수 있다.
시스템(100)은 3P 애플리케이션 서버(148)를 포함하거나, 이들과 인터페이스하거나, 통신하거나, 그렇지 않으면 액세스할 수 있다. 데이터 처리 시스템(102)은 네트워크(105)를 통해 3P 애플리케이션 서버(148)와 통신할 수 있다. 3P 애플리케이션 서버(148)는 데이터 처리 시스템(102), 원격 데이터 처리 시스템(142), 3P 디지털 컨텐츠 제공자 디바이스(140) 및 컴퓨팅 디바이스(128)로부터 원격에 있을 수 있고, 이와 상이할 수 있다. 3P 애플리케이션 서버(148)는 애플리케이션(118)의 개발자와 연관될 수 있다. 3P 애플리케이션 서버(148)는 애플리케이션(118)의 실행을 용이하게 할 수 있다. 예를 들어, 3P 애플리케이션 서버(148)는 애플리케이션(118)에 대한 백엔드 처리를 수행할 수 있다. 컴퓨팅 디바이스(128) 상에서 실행되는 애플리케이션(118)은 애플리케이션(118)의 프론트엔드 컴포넌트를 실행할 수 있고, 3P 애플리케이션 서버(148)는 애플리케이션(118)의 백엔드 컴포넌트를 실행할 수 있다. 컴퓨팅 디바이스(128) 상에서 실행되는 애플리케이션(118)은 원격 프로시저 호출 또는 다른 요청 또는 데이터를 3P 애플리케이션 서버(148)에 전송할 수 있다. 3P 애플리케이션 서버(148)는 데이터, 정보, 또는 기능을 수행하거나 액션을 실행하기 위해 애플리케이션(118)에 요청을 전송할 수 있다. 3P 애플리케이션 서버(148)는 애플리케이션(118)의 상태를 수정하거나 변경할 수 있으며, 이는 애플리케이션이 애플리케이션의 기능을 선언하거나 디지털 어시스턴트 컴포넌트(106)를 호출하게 할 수 있다.
시스템(100)은 적어도 하나의 원격 데이터 처리 시스템(142)을 포함할 수 있다. 원격 데이터 처리 시스템(142)은 네트워크(105)를 통해, 예를 들어 데이터 처리 시스템(102), 3P 컨텐츠 제공자 디바이스(140)(예를 들어, 컨텐츠 제공자)와 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 원격 데이터 처리 시스템(142)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 원격 데이터 처리 시스템(142)은 적어도 하나의 데이터 센터에 위치한 복수의 계산 리소스 또는 서버를 포함할 수 있다. 원격 데이터 처리 시스템(142)은 논리적으로 그룹화된 다수의 서버를 포함할 수 있고 분산 컴퓨팅 기술을 용이하게 한다. 서버의 논리적 그룹은 데이터 센터, 서버 팜 또는 머신 팜이라고 할 수 있다. 서버는 지리적으로 분산될 수도 있다. 데이터 센터 또는 머신 팜은 단일 엔티티로 관리될 수 있거나 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 이기종일 수 있으며, 하나 이상의 서버 또는 머신은 하나 이상의 운영 체제 플랫폼 유형에 따라 작동할 수 있다.
머신 팜에 있는 서버들은 관련 스토리지 시스템과 함께 고밀도 랙 시스템에 저장될 수 있으며 기업 데이터 센터에 위치할 수 있다. 예를 들어, 이러한 방식으로 서버들을 통합하면 로컬화된 고성능 네트워크에 서버와 고성능 스토리지 시스템을 배치하여 시스템 관리 용이성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하는 원격 데이터 처리 시스템(142) 컴포넌트의 전부 또는 일부를 중앙 집중화하고 이를 진화된 시스템 관리 툴과 결합하면 서버 리소스를 보다 효율적으로 사용할 수 있어 전력 및 처리 요구 사항을 절약하고 대역폭 사용을 줄일 수 있다.
원격 데이터 처리 시스템(142)은 디지털 어시스턴트 서버(144) 및 컨텐츠 선택기 컴포넌트(146)를 포함할 수 있다. 디지털 어시스턴트 서버(144)는 컴퓨팅 디바이스(128)의 디지털 어시스턴트 컴포넌트(106)와 통신하는 하나 이상의 기능을 수행하도록 설계, 구성 및 동작할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 3P 디지털 컨텐츠 제공자 디바이스(140)에 의해 제공되는 디지털 컴포넌트 아이템(예를 들어, 컨텐츠 아이템)을 선택하도록 설계, 구성 및 동작할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 컴퓨팅 디바이스(128)로부터의 컨텐츠 요청에 응답하여 컨텐츠 아이템을 선택할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 프레젠테이션(예를 들어, 오디오 출력, 시각적 출력, 또는 시청각 출력)을 위해 선택된 컨텐츠 아이템을 컴퓨팅 디바이스(128)로 전송할 수 있다.
시스템(100)은 적어도 하나의 3P 컨텐츠 제공자 디바이스(140)를 포함하거나, 액세스하거나, 그렇지 않으면 이와 상호작용할 수 있다. 3P 컨텐츠 제공자 디바이스(140)는 네트워크(105)를 통해, 예를 들어 컴퓨팅 디바이스(128), 데이터 처리 시스템(102) 또는 원격 데이터 처리 시스템(142)과 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 3P 컨텐츠 제공자 디바이스(140)는 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 3P 컨텐츠 제공자 디바이스(140)는 적어도 하나의 데이터 센터에 위치한 복수의 계산 리소스 또는 서버를 포함할 수 있다. 3P 컨텐츠 제공자 디바이스(140)는 서비스 제공자 디바이스 또는 상품 제공자 디바이스를 포함하거나 지칭할 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 오디오 출력 디지털 컴포넌트로서 컴퓨팅 디바이스(128)에 의한 프리젠테이션을 위한 오디오 기반 디지털 컴포넌트들을 제공할 수 있다. 디지털 컴포넌트는 검색 질의 또는 요청에 대한 응답을 포함할 수 있다. 디지털 컴포넌트에는 데이터베이스, 검색 엔진 또는 네트워크 리소스로부터의 정보가 포함될 수 있다. 예를 들어, 디지털 컴포넌트는 뉴스 정보, 날씨 정보, 스포츠 정보, 백과사전 항목, 사전 항목 또는 디지털 텍스트북으로부터의 정보를 포함할 수 있다. 디지털 컴포넌트는 "택시를 부를까요?"라는 음성 기반 메시지와 같은 상품 또는 서비스에 대한 제안(offer)이 포함될 수 있다. 3P 컨텐츠 제공자 디바이스(140)는 음성 기반 질의에 응답하여 제공될 수 있는 일련의 오디오 디지털 컴포넌트를 저장하기 위한 메모리를 포함할 수 있다. 3P 컨텐츠 제공자 디바이스(140)는 또한 오디오 기반 디지털 컴포넌트(또는 다른 디지털 컴포넌트)를 데이터 저장소(122)에 그들이 저장될 수 있는 데이터 처리 시스템(102)에 제공할 수 있다. 데이터 처리 시스템(102)은 오디오 디지털 컴포넌트를 선택하고 그 오디오 디지털 컴포넌트를 클라이언트 컴퓨팅 디바이스(128)에 제공(또는 제공하도록 컨텐츠 제공자 컴퓨팅 디바이스(140)에 지시)할 수 있다. 오디오 기반 디지털 컴포넌트는 오디오만 가능하거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다. 디지털 컴포넌트 또는 컨텐츠 아이템은 이미지, 텍스트, 비디오, 멀티미디어 또는 하나 이상의 포멧의 다른 유형의 컨텐츠를 포함할 수 있다.
원격 데이터 처리 시스템(142)은 적어도 하나의 계산 리소스 또는 서버를 갖는 컨텐츠 배치 시스템을 포함할 수 있다. 원격 데이터 처리 시스템(142)은 적어도 하나의 컨텐츠 선택기 컴포넌트(146)를 포함하거나, 인터페이스하거나, 통신할 수 있다. 원격 데이터 처리 시스템(142)은 적어도 하나의 디지털 어시스턴트 서버(144)를 포함하거나, 인터페이스하거나, 통신할 수 있다.
컨텐츠 선택기 컴포넌트(146) 및 디지털 어시스턴트 서버(144)는 각각 적어도 하나의 처리 유닛 또는 프로그래밍 가능한 로직 어레이 엔진과 같은 다른 논리 디바이스, 또는 서로 또는 다른 리소스 또는 데이터베이스와 통신하도록 구성된 모듈을 포함할 수 있다. 컨텐츠 선택기 컴포넌트(146) 및 디지털 어시스턴트 서버(144)는 개별 컴포넌트, 단일 컴포넌트, 또는 원격 데이터 처리 시스템(142)의 일부일 수 있다. 원격 데이터 처리 시스템(142)과 같은 시스템(100) 및 그의 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
원격 데이터 처리 시스템(142)은 복수의 컴퓨팅 디바이스(128)와 관련된 익명의 컴퓨터 네트워크 활동 정보를 획득할 수 있다. 컴퓨팅 디바이스(128)의 사용자는 사용자의 컴퓨팅 디바이스(128)에 대응하는 네트워크 활동 정보를 획득하기 위해 원격 데이터 처리 시스템(142)을 긍정적으로 승인할 수 있다. 예를 들어, 원격 데이터 처리 시스템(142)은 하나 이상의 유형의 네트워크 활동 정보를 획득하기 위한 동의를 컴퓨팅 디바이스(128)의 사용자에게 프롬프트할 수 있다. 컴퓨팅 디바이스(128)의 사용자의 신원은 익명으로 유지될 수 있고 컴퓨팅 디바이스(128)는 고유 식별자(예를 들어, 데이터 처리 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공되는 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 원격 데이터 처리 시스템(142)은 각각의 관찰을 대응하는 고유 식별자와 연관시킬 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 전자 컨텐츠 캠페인을 설정할 수 있다. 전자 컨텐츠 캠페인은 컨텐츠 선택기 컴포넌트(146)의 데이터 저장소에 컨텐츠 데이터로서 저장될 수 있다. 전자 컨텐츠 캠페인은 공통 테마에 해당하는 하나 이상의 컨텐츠 그룹일 수 있다. 컨텐츠 캠페인에는 컨텐츠 그룹, 디지털 컴포넌트 데이터 객체(objects) 및 컨텐츠 선택 기준을 포함하는 계층적 데이터 구조가 포함될 수 있다. 컨텐츠 캠페인을 생성하기 위해, 3P 디지털 컨텐츠 제공자 디바이스(140)는 컨텐츠 캠페인의 캠페인 레벨 파라미터들에 대한 값을 지정할 수 있다. 캠페인 레벨 파라미터는 예를 들어 캠페인 이름, 디지털 컴포넌트 객체들을 배치하기 위한 선호 컨텐츠 네트워크, 컨텐츠 캠페인에 사용할 리소스들의 값, 컨텐츠 캠페인 시작 및 종료 날짜, 컨텐츠 캠페인의 지속 시간, 디지털 컴포넌트 객체 배치일정, 언어, 지리적 위치, 디지털 컴포넌트 객체들을 제공하는 컴퓨팅 디바이스들의 유형을 포함할 수 있다. 일부 경우, 노출(impression)은 디지털 컴포넌트 객체가 그의 소스(예를 들어, 원격 데이터 처리 시스템(142)로부터 페치되어 카운트될 수 있는 때를 지칭할 수 있다. 일부 경우, 사기 클릭 가능성으로 인해 로봇 활동이 필터링되어 노출로서 제외될 수 있다. 따라서, 일부 경우, 노출은 브라우저로부터의 페이지 요청에 대한 웹 서버의 응답 측정을 지칭할 수 있으며, 이는 로봇 활동 및 오류 코드로부터 필터링되고 컴퓨팅 디바이스(128)에 디스플레이하기 위해 디지털 컴포넌트 객체를 렌더링할 기회에 가능한 한 가까운 지점에 기록된다. 일부 경우, 노출은 볼 수 있거나 들을 수 있는 노출을 지칭하는데, 예를 들어, 디지털 컴포넌트 객체는 클라이언트 컴퓨팅 디바이스(128)의 디스플레이 디바이스에서 적어도 부분적으로(예를 들어, 20%, 30%, 30%, 40%, 50%, 60%, 70% 이상) 볼 수 있거나, 컴퓨팅 디바이스(128)의 스피커(136)를 통해 들을 수 있다. 클릭 또는 선택은 가청 노출, 마우스 클릭, 터치 상호 작용, 제스처, 흔들기, 오디오 상호 작용 또는 키보드 클릭에 대한 음성 응답과 같은 디지털 컴포넌트 개체와의 사용자 상호 작용을 지칭할 수 있다. 전환은 사용자가 디지털 컴포넌트 이의 제기(objection)와 관련하여 원하는 액션, 예를 들어 제품 또는 서비스 구매, 설문 조사 완료, 디지털 컴포넌트에 해당하는 실제 매장 방문 또는 전자 거래 완료를 취하는 것을 지칭할 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 컨텐츠 캠페인을 위한 하나 이상의 컨텐츠 그룹을 더 설정할 수 있다. 컨텐츠 그룹은 키워드, 단어, 용어, 구, 지리적 위치, 컴퓨팅 디바이스 유형, 하루 중 시간, 관심사, 토픽 또는 버티컬(vertical)과 같은 하나 이상의 디지털 컴포넌트 rorcp 및 해당 컨텐츠 선택 기준을 포함한다. 동일한 컨텐츠 캠페인 하의 컨텐츠 그룹은 동일한 캠페인 레벨 파라미터들을 공유할 수 있지만, 키워드, (예를 들어, 메인 컨텐츠에 제외 키워드가 있는 경우 디지털 컴포넌트의 배치를 차단하는) 제외 키워드, 키워드의 입찰가 또는 입찰가 또는 컨텐츠 캠페인과 관련된 파라미터와 같은 특정 컨텐츠 그룹 레벨 파라미터들에 대한 맞춤형 사양을 가질 수 있다.
새로운 컨텐츠 그룹을 생성하기 위해, 3P 디지털 컨텐츠 제공자 디바이스(140)는 컨텐츠 그룹의 컨텐츠 그룹 레벨 파라미터들에 대한 값을 제공할 수 있다. 컨텐츠 그룹 레벨 파라미터에는 예를 들어 컨텐츠 그룹 이름 또는 컨텐츠 그룹 테마, 및 다양한 컨텐츠 배치 기회(예를 들어, 자동 배치 또는 선택 배치) 또는 결과(예를 들어, 클릭, 노출 또는 전환)에 대한 입찰가가 포함된다. 컨텐츠 그룹 이름 또는 컨텐츠 그룹 테마는 3P 디지털 컨텐츠 제공자 디바이스(140)가 컨텐츠 그룹의 디지털 컴포넌트 객체가 디스플레이를 위해 선택되는 토픽 또는 주제를 캡처하는데 사용할 수 있는 하나 이상의 용어일 수 있다. 예를 들어, 자동차 대리점은 운송하는 차량의 각 브랜드에 대해 상이한 컨텐츠 그룹을 생성할 수 있으며, 운송하는 차량의 각 모델에 대해 상이한 컨텐츠 그룹을 추가로 생성할 수 있다. 자동차 대리점이 사용할 수 있는 컨텐츠 그룹 테마의 예로는 "A사(Make A) 스포츠카" "B사 스포츠카", "C사 세단", "C사 트럭", "C사 하이브리드" 또는 " D사 하이브리드”를 포함할 수 있다. 예시적인 컨텐츠 캠페인 테마는 "하이브리드"일 수 있으며, 예를 들어 "C사 하이브리드" 및 "D사 하이브리드" 모두에 대한 컨텐츠 그룹을 포함할 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 하나 이상의 키워드 및 디지털 컴포넌트 객체들을 각 컨텐츠 그룹에 제공할 수 있다. 키워드에는 디지털 컴포넌트 개체와 관련되거나 디지털 컴포넌트 개체에 의해 식별되는 제품 또는 서비스와 관련된 용어가 포함될 수 있다. 키워드에는 하나 이상의 용어 또는 구문이 포함될 수 있다. 예를 들어, 자동차 대리점은 "스포츠카", "V-6 엔진", "사륜구동", "연비"를 컨텐츠 그룹 또는 컨텐츠 캠페인의 키워드로 포함할 수 있다. 일부 경우, 제외 키워드가 컨텐츠 제공자에 의해 지정되여 특정 용어나 키워드에 대한 컨텐츠 배치를 회피, 방지, 차단 또는 비활성화할 수 있다. 컨텐츠 제공자는 디지털 컴포넌트 객체를 선택하는데 사용되는 매칭 유형(예를 들어, 완전(exact) 매칭, 구문 매칭 또는 브로드 매칭)을 지정할 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 3P 디지털 컨텐츠 제공자 디바이스(140)에 의해 제공되는 디지털 컴포넌트 객체를 선택하기 위해 원격 데이터 처리 시스템(142)에 의해 사용될 하나 이상의 키워드를 제공할 수 있다. 3P 디지털 컨텐츠 제공자 디바이스(140)는 입찰할 하나 이상의 키워드를 식별하고 다양한 키워드에 대한 입찰 금액을 추가로 제공할 수 있다. 3P 디지털 컨텐츠 제공자 디바이스(140)는 디지털 컴포넌트 객체를 선택하기 위해 원격 데이터 처리 시스템(142)에 의해 사용될 추가 컨텐츠 선택 기준을 제공할 수 있다. 다수의 3P 디지털 컨텐츠 제공자 디바이스(140)는 동일하거나 상이한 키워드에 대해 입찰할 수 있고, 원격 데이터 처리 시스템(142)은 전자 메시지의 키워드의 표시를 수신하는 것에 응답하여 컨텐츠 선택 프로세스 또는 광고 경매를 실행할 수 있다.
3P 디지털 컨텐츠 제공자 디바이스(140)는 원격 데이터 처리 시스템(142)에 의한 선택을 위한 하나 이상의 디지털 컴포넌트 객체를 제공할 수 있다. 원격 데이터 처리 시스템(142)(예를 들어, 컨텐츠 선택기 컴포넌트(146)을 통해)는 리소스 할당, 컨텐츠 스케쥴, 최대 입찰가, 키워드 및 컨텐츠 그룹에 대해 지정된 기타 선택 기준과 매칭하는 컨텐츠 배치 기회를 사용할 수 있게 되면 디지털 컴포넌트 객체를 선택할 수 있다. 음성 디지털 컴포넌트, 오디오 디지털 컴포넌트, 텍스트 디지털 컴포넌트, 이미지 디지털 컴포넌트, 비디오 디지털 컴포넌트, 멀티미디어 디지털 컴포넌트 또는 디지털 컴포넌트 링크와 같은 다양한 유형의 디지털 컴포넌트 객체가 컨텐츠 그룹에 포함될 수 있다. 디지털 컴포넌트를 선택할 때, 데이터 처리 시스템(102)은 컴퓨팅 디바이스(128) 또는 컴퓨팅 디바이스(128)의 디스플레이 디바이스 상에서 렌더링되는 컴퓨팅 디바이스(128)를 통한 프리젠테이션을 위해 디지털 컴포넌트 객체를 전송할 수 있다. 렌더링은 디스플레이 디바이스에 디지털 컴포넌트를 디스플레이하거나 컴퓨팅 디바이스(128)의 스피커를 통해 디지털 컴포넌트를 재생하는 것을 포함할 수 있다. 원격 데이터 처리 시스템(142)은 디지털 컴포넌트 객체를 렌더링하기 위해 컴퓨팅 디바이스(128)에 명령을 제공할 수 있다. 원격 데이터 처리 시스템(142)은 컴퓨팅 디바이스(128)의 디지털 어시스턴트 컴포넌트(106) 또는 컴퓨팅 디바이스(128)의 오디오 드라이버(138)에 오디오 신호 또는 음파를 생성하도록 지시할 수 있다. 원격 데이터 처리 시스템(142)은 컴퓨팅 디바이스(128)에 의해 실행되는 애플리케이션(118)에 선택된 디지털 컴포넌트 객체를 제시하도록 지시할 수 있다. 예를 들어, 애플리케이션(118)은 디지털 컴포넌트 객체가 제시될 수 있는 슬롯(예를 들어, 컨텐츠 슬롯)(예를 들어, 오디오 슬롯 또는 시각적 슬롯)을 포함할 수 있다.
데이터 처리 시스템(102)은 자연어 프로세서에 의해 식별된 질의, 키워드 또는 트리거 키워드를 수신하고 트리거 키워드에 기초하여 디지털 컴포넌트를 선택하기 위해 컨텐츠 선택기 컴포넌트(146)를 포함하거나 실행하거나 통신할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 실시간 컨텐츠 선택 프로세스를 통해 디지털 컴포넌트를 선택할 수 있다. 컨텐츠 선택 프로세스는 예를 들어 검색 엔진을 통해 검색을 수행하거나 원격 서버 또는 3P 컨텐츠 제공자 디바이스(140)와 같은 디바이스에 저장된 데이터베이스에 액세스하는 것을 포함할 수 있다. 컨텐츠 선택 프로세스는 제3자 컨텐츠 제공자(140)에 의해 제공되는 후원 디지털 컴포넌트 객체를 선택하는 것을 지칭하거나 포함할 수 있다. 실시간 컨텐츠 선택 프로세스는 컴퓨팅 디바이스(128)에 제공할 하나 이상의 디지털 컴포넌트를 선택하기 위해 다수의 컨텐츠 제공자에 의해 제공되는 디지털 컴포넌트가 파싱, 처리, 가중 또는 매칭되는 서비스를 포함할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 실시간으로 컨텐츠 선택 프로세스를 수행할 수 있다. 실시간으로 컨텐츠 선택 프로세스를 수행하는 것은 클라이언트 컴퓨팅 디바이스(128)를 통해 수신된 컨텐츠 요청에 응답하여 컨텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 컨텐츠 선택 프로세스는 요청을 수신한 시간 간격(예를 들어, 1초, 2초, 5초, 10초, 20초, 30초, 1분, 2분, 3분, 5분, 10분 또는 20분) 내에 수행(예를 들어, 시작 또는 완료)될 수 있다. 실시간 컨텐츠 선택 프로세스는 클라이언트 컴퓨팅 디바이스(128)와의 통신 세션 동안, 또는 통신 세션이 종료된 후 시간 간격 내에서 수행될 수 있다. 데이터 처리 시스템(102)은 디지털 컴포넌트 선택 프로세스 또는 다른 디지털 작업의 완료에 후속하여 제공할 오디오 차임(audio chime)을 선택할 수 있다.
예를 들어, 데이터 처리 시스템(102)은 디지털 컴포넌트 객체들을 선택하도록 설계, 구성(construct), 구성(configure) 또는 동작하는 컨텐츠 선택기 컴포넌트(146)를 포함할 수 있다. 음성 기반 환경에서 디스플레이할 디지털 컴포넌트들을 선택하기 위해, 데이터 처리 시스템(102)(예를 들어, NLP 컴포넌트(108)을 통해)은 입력 오디오 신호를 파싱하여 질의, 키워드(예를 들어, 트리거 키워드)를 식별하고, 키워드를 사용하여 매칭하는 디지털 컴포넌트를 선택한다. 데이터 처리 시스템(102)은 브로드 매칭, 완전 매칭 또는 구문 매칭에 기초하여 매칭하는 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 컨텐츠 선택기 컴포넌트(146)는 후보 디지털 컴포넌트들의 주제가 클라이언트 컴퓨팅 디바이스(128)의 마이크로폰에 의해 검출된 입력 오디오 신호의 키워드들 또는 구문들의 주제에 대응하는지 여부를 결정하기 위해 후보 디지털 컴포넌트들의 주제를 분석, 파싱 또는 처리할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 이미지 처리 기술, 문자 인식 기술, 자연어 처리 기술, 또는 데이터베이스 룩업(조회)을 사용하여 후보 디지털 컴포넌트들의 음성, 오디오, 용어, 문자, 텍스트, 심볼 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 디지털 컴포넌트들은 후보 디지털 컴포넌트의 주제를 나타내는 메타데이터를 포함할 수 있고, 이 경우에 컨텐츠 선택기 컴포넌트(146)는 후보 디지털 컴포넌트의 주제가 입력 오디오 신호에 대응하는지 여부를 결정하기 위해 메타데이터를 처리할 수 있다.
3P 디지털 컨텐츠 제공자(140)는 디지털 컴포넌트를 포함하는 컨텐츠 캠페인을 설정할 때 추가 표시자를 제공할 수 있다. 컨텐츠 제공자는 컨텐츠 선택기 컴포넌트(146)가 후보 디지털 컴포넌트에 관한 정보를 사용하여 조회를 수행함으로써 식별할 수 있는 컨텐츠 캠페인 또는 컨텐츠 그룹 레벨에서 정보를 제공할 수 있다. 예를 들어, 후보 디지털 컴포넌트는 컨텐츠 그룹, 컨텐츠 캠페인 또는 컨텐츠 제공자에 매핑될 수 있는 고유 식별자를 포함할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 데이터 저장소(122)의 컨텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여, 3P 디지털 컨텐츠 제공자 디바이스(140)에 관한 정보를 결정할 수 있다.
원격 데이터 처리 시스템(142)은 컴퓨터 네트워크를 통해 컴퓨팅 디바이스(128)에 프리젠테이션하기 위한 컨텐츠 요청을 수신할 수 있다. 데이터 처리 시스템(102)은 클라이언트 컴퓨팅 디바이스(128)의 마이크로폰에 의해 검출된 입력 오디오 신호를 처리함으로써 요청을 식별할 수 있다. 요청은 디바이스 유형, 위치 및 요청과 관련된 키워드와 같은 요청의 선택 기준을 포함할 수 있다.
요청에 응답하여, 원격 데이터 처리 시스템(142)은 데이터 저장소 또는 3P 디지털 컨텐츠 제공자 디바이스(140)와 관련된 데이터베이스로부터 디지털 컴포넌트 객체를 선택할 수 있고, 네트워크(105)를 통해 컴퓨팅 디바이스(128)를 통한 프리젠테이션을 위해 디지털 컴포넌트를 제공할 수 있다. 컴퓨팅 디바이스(128)는 디지털 컴포넌트 객체와 상호 작용할 수 있다. 컴퓨팅 디바이스(128)는 디지털 컴포넌트에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(128)는 컴퓨팅 디바이스(128)가 서비스 제공자를 식별하도록 하거나, 서비스 제공자에게 서비스를 요청하고, 서비스 제공자에게 서비스를 수행하도록 지시하고, 서비스 제공자에게 정보를 전송하거나, 서비스 제공자 디바이스에 질의하도록 하는 디지털 컴포넌트 객체와 관련된 하이퍼링크 또는 기타 버튼을 선택하라는 표시를 수신할 수 있다.
컴퓨팅 디바이스(128)(또는 클라이언트 컴퓨팅 디바이스 또는 클라이언트 디바이스)는 데이터 처리 시스템(102)을 포함하거나 실행할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 인터페이스(104)를 포함하거나, 인터페이스하거나, 그렇지 않으면 이와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 디지털 어시스턴트 컴포넌트(106)를 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 자연어 프로세서("NLP") 컴포넌트(108)를 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 모델(110)을 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 기술(112)을 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 애플리케이션 관리자 컴포넌트(114)를 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 다이렉트 액션 애플리케이션 프로그래밍 인터페이스("API")(116)를 포함하거나, 인터페이스하거나, 그와 통신할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 애플리케이션(118)을 포함하거나, 인터페이스하거나, 통신하거나, 실행할 수 있다. 데이터 처리 시스템(102)은 적어도 하나의 애플리케이션(118)을 적어도 부분적으로 실행할 수 있다(예를 들어, 애플리케이션은 클라이언트 컴포넌트 및 서버 컴포넌트를 포함할 수 있다). 데이터 처리 시스템(102)은 적어도 하나의 데이터 저장소(122)를 포함하거나, 인터페이스하거나, 그와 통신할 수 있다.
데이터 저장소(122)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있고, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(122)는 컴퓨터 데이터 스토리지 또는 메모리를 포함할 수 있고, 다른 데이터 중에서 애플리케이션(124), 애플리케이션 데이터, 프로파일, 인덱스(126), 선호도를 저장할 수 있다. 데이터 저장소(122)의 애플리케이션(124)은 선언, 입력 필드, 상태, 컨텍스트 정보, 사용자 인터페이스, 입력 파라미터 또는 선호도와 같은 애플리케이션과 관련된 정보를 저장하는 데이터 구조 또는 데이터 파일을 참조하거나 포함할 수 있다. 애플리케이션(118)은 데이터 저장소(122)의 애플리케이션 데이터 구조(124)에 저장된 애플리케이션(118)에 관한 정보에 대응할 수 있는 활성화된, 게시된, 호출된 또는 실행된 애플리케이션(118)을 참조할 수 있다. 애플리케이션(124)은 실행 파일, 애플리케이션 패키지 파일, 구성 파일, 또는 애플리케이션의 실행을 용이하게 하는 다른 데이터를 포함할 수 있다.
데이터 저장소(122)는 인덱스(126)를 포함, 저장, 관리 또는 유지할 수 있다. 인덱스(126)는 키워드 또는 용어를 애플리케이션과 관련시키는 매핑, 연관 또는 링크를 포함할 수 있다. 인덱스(126)는 후보 애플리케이션과 매핑되는 키워드 또는 용어를 갖는 테이블을 포함할 수 있다. 인덱스(126)는 컴퓨팅 디바이스(128)에 설치된 애플리케이션의 목록을 포함할 수 있다. 인덱스(126)는 컴퓨팅 디바이스(128) 또는 그의 계정에 대해 승인되거나 액세스 가능한 애플리케이션의 목록을 포함할 수 있다. 인덱스(126)는 애플리케이션에 액세스하는데 사용되는 자격 증명 또는 인증 정보를 포함할 수 있다. 예를 들어, 인덱스는 컴퓨팅 디바이스(128)에 액세스 가능한 애플리케이션의 목록, 및 애플리케이션에 대한 액세스를 획득하는데 사용되는 계정 정보를 포함할 수 있다. 인덱스(126)는 입력 오디오 신호 또는 음성 입력에 응답하여 호출, 활성화 또는 시작하기 위해 애플리케이션을 식별하는 것을 용이하게 하는 애플리케이션 또는 기타 정보에 키워드 또는 용어를 링크할 수 있다.
인터페이스(104), 디지털 어시스턴트 컴포넌트(106), NLP 컴포넌트(108), 애플리케이션 관리자 컴포넌트(114), 다이렉트 액션 API 또는 데이터 처리 시스템(102)의 다른 컴포넌트는 각각은 적어도 하나의 처리 장치 또는 프로그램 가능한 논리 어레이 엔진과 같은 다른 논리 디바이스, 또는 서로 또는 다른 리소스 또는 데이터베이스와 통신하도록 구성된 모듈을 포함할 수 있다. 인터페이스(104), 디지털 어시스턴트 컴포넌트(106), NLP 컴포넌트(108), 애플리케이션 관리자 컴포넌트(114), 다이렉트 액션 API 또는 데이터 처리 시스템(102)의 다른 컴포넌트는 개별 컴포넌트, 단일 컴포넌트, 또는 데이터 처리 시스템(142)의 일부일 수 있다. 데이터 처리 시스템(102)과 같은 시스템(100) 및 그의 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
컴퓨팅 디바이스(128)는 적어도 하나의 센서(136), 변환기 (transducer)(132), 오디오 드라이버(138), 전처리기(130) 또는 디스플레이 디바이스(134)를 포함하거나, 인터페이스하거나 이와 통신할 수 있다. 센서(136)는 예를 들어 주변광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크로폰 또는 터치 센서를 포함할 수 있다. 변환기(132)는 스피커 또는 마이크로폰을 포함할 수 있다. 오디오 드라이버(138)는 하드웨어 변환기(132)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 대응하는 음향파 또는 음파를 생성하도록 변환기(132)를 제어하기 위해 데이터 처리 시스템(102)에 의해 제공된 오디오 파일 또는 다른 명령을 실행할 수 있다. 디스플레이 디바이스(134)는 도 4에 도시된 디스플레이(435)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 전처리기(130)는 트리거 키워드, 사전 결정된 핫 워드, 개시 키워드 또는 활성화 키워드를 검출하도록 구성될 수 있다. 일부 경우, 트리거 키워드는 액션을 수행하기 위한 요청을 포함할 수 있다. 일부 경우, 트리거 키워드는 컴퓨팅 디바이스(128)를 인에이블 또는 활성화하기 위한 사전 결정된 액션 키워드를 포함할 수 있고, 요청 키워드는 트리거 키워드 또는 핫 워드 다음에 올 수 있다. 전처리기(130)는 키워드를 검출하고 키워드에 기초하여 액션을 수행하도록 구성될 수 있다. 전처리기(130)는 깨우기 단어 또는 다른 키워드 또는 핫워드를 검출할 수 있고, 검출에 응답하여 컴퓨팅 디바이스(128)에 의해 실행되는 데이터 처리 시스템(102)의 디지털 어시스턴트 컴포넌트(106)를 호출할 수 있다. 일부 경우, 전처리기(130)는 추가 처리를 위해 원격 데이터 처리 시스템(142)에 용어를 전송하기 전에 하나 이상의 용어를 필터링하거나 그 용어들을 수정할 수 있다. 전처리기(130는 마이크로폰에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 데이터 처리 시스템(102) 또는 원격 데이터 처리 시스템(142)으로 전송하거나 제공할 수 있다. 일부 경우, 전처리기(130)는 입력 오디오 신호의 일부 또는 전부를 운반하는 데이터 패킷을 디지털 어시스턴트 컴포넌트(106) 또는 원격 데이터 처리 시스템(142)에, 이러한 전송을 수행하라는 명령을 검출하는 것에 응답하여 제공할 수 있다. 명령은 예를 들어 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 처리 시스템(102) 또는 원격 데이터 처리 시스템(142)으로 전송하기 위한 트리거 키워드 또는 다른 키워드 또는 승인을 포함할 수 있다.
클라이언트 컴퓨팅 디바이스(128)는 (센서(136)를 통해) 클라이언트 컴퓨팅 디바이스(128)에 오디오 입력으로서 음성 질의를 입력하고 그리고 변환기(132)(예를 들어, 스피커)로부터 출력된, 데이터 처리 시스템(102)(또는 3P 컨텐츠 제공자 디바이스(140))으로부터 클라이언트 컴퓨팅 디바이스(128)로 제공될 수 있는 컴퓨터 생성 음성의 형태로 오디오 출력을 수신하는 최종 사용자와 관련될 수 있다. 컴퓨터 생성 음성에는 실제 사람 또는 컴퓨터 생성 언어의 녹음이 포함될 수 있다.
데이터 처리 시스템(102)은 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 구성(constructed) 또는 작동하는 인터페이스(104)를 포함할 수 있다. 인터페이스(104)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(104)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(104)는 데이터를 하나의 포맷에서 다른 포맷으로 변환하거나 포맷팅하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(104)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트 사이에서 통신하기 위한 정의를 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다. 인터페이스(104)는 디지털 어시스턴트 컴포넌트(106), 애플리케이션(118) 및 데이터 저장소(122)와 같은 시스템(100)의 하나 이상의 컴포넌트 사이의 통신을 용이하게 할 수 있다.
데이터 처리 시스템(102)은 데이터 처리 시스템(102)의 인터페이스(104)에 입력 오디오 신호를 전달하고 출력 오디오 신호를 렌더링하기 위해 클라이언트 컴퓨팅 디바이스의 컴포넌트를 구동하기 위한 애플리케이션과 같은 클라이언트 컴퓨팅 디바이스(128)에 설치된 애플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 처리 시스템(102)은 오디오 입력 신호를 포함하거나 식별하는 데이터 패킷 또는 다른 신호를 수신할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 오디오 신호를 수신하거나 획득하고 오디오 신호를 파싱하기 위해 NLP 컴포넌트(108)를 실행하거나 실행(run)할 수 있다. 예를 들어, NLP 컴포넌트(108)는 인간과 컴퓨터 사이의 상호 작용을 제공할 수 있다. NLP 컴포넌트(108)는 자연어를 이해하고 데이터 처리 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 하는 기술로 구성될 수 있다. NLP 컴포넌트(108)는 통계적 기계 학습과 같은 기계 학습에 기초한 기술을 포함하거나 그 기술로 구성될 수 있다. NLP 컴포넌트(108)는 입력 오디오 신호를 파싱하기 위해 결정 트리, 통계 모델, 또는 확률 모델을 이용할 수 있다. NLP 컴포넌트(108)는 예를 들어, 명명된 엔티티 인식(예를 들어, 텍스트 스트림이 주어지면, 사람 또는 장소와 같은 고유명에 매핑되는 텍스트내의 아이템, 및 사람, 위치 또는 조직과 같은 각각의 이러한 이름의 유형 결정), 자연어 생성(예를 들어, 컴퓨터 데이터베이스 또는 의미론적 의도의 정보를 이해할 수 있는 인간 언어로 변환), 자연어 이해(예를 들어, 텍스트를 컴퓨터 모듈이 조작할 수 있는 1차 논리 구조와 같은 보다 형식적인 표현으로 변환), 기계 번역(예를 들어, 텍스트를 한 인간의 언어에서 다른 언어로 자동 번역), 형태학적 세분화(예를 들어, 형태의 복잡성이나 고려되는 언어 단어의 구조에 따라 어려울 수 있는 단어를 개별 형태소로 분리하고 형태소의 클래스 식별), 질문 답변(예를 들어, 구체적이거나 개방형일 수 있는 인간 언어 질문에 대한 답변 결정), 시맨틱 처리(예를 들어, 식별된 단어를 유사한 의미를 가진 다른 단어와 연관시키기 위해 단어를 식별하고 그 의미를 인코딩한 후 발생할 수 있는 처리)와 같은 기능을 수행할 수 있다.
NLP 컴포넌트(108)는 입력 신호를 저장된 대표 오디오 파형 세트(예를 들어, 모델(110) 또는 기술(112)과 비교하고 가장 가까운 매치를 선택함으로써 오디오 입력 신호를 인식된 텍스트로 변환한다. 오디오 파형 세트는 모델(110) 또는 데이터 처리 시스템(102)에 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표 파형은 대규모 사용자 세트에 걸쳐 생성된 다음 사용자의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(108)는 예를 들어 사용자에 걸쳐 트레이닝된 모델(110)을 사용하거나 수동 사양을 통해 데이터 처리 시스템(102)이 서비스할 수 있는 액션과 관련된 단어에 텍스트를 매칭시킨다.
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(128)의 센서(136) 또는 변환기(132)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 변환기(132), 오디오 드라이버(138), 또는 다른 컴포넌트를 통해, 클라이언트 컴퓨팅 디바이스(128)는 오디오 입력 신호를 데이터 처리 시스템(102)에 제공할 수 있고, 이는 (예를 들어, 인터페이스(104)에 의해) 수신되어 NLP 컴포넌트(108)에 제공되거나 데이터 저장소(122)에 저장될 수 있다.
NLP 컴포넌트(108)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(108)는 적어도 하나의 요청 또는 요청에 대응하는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 나타낼 수 있다. 트리거 키워드는 수행될 가능성이 있는 액션 유형을 나타낼 수 있다. 예를 들어, NLP 컴포넌트(108)는 애플리케이션을 호출하기 위한 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. NLP 컴포넌트(108)는 입력 오디오 신호를 파싱하여, 저녁 식사 및 영화에 참석하기 위해 저녁에 집을 떠나라는 요청과 같은 적어도 하나의 요청을 식별할 수 있다. 키워드는 수행할 액션을 나타내는 적어도 하나의 단어, 구문, 어근 또는 부분 단어 또는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호로부터 키워드 "go" 또는 "to go to"는 운송이 필요함을 나타낼 수 있다. 이 예에서 입력 오디오 신호(또는 식별된 요청)는 전송 의도를 직접 표현하지 않지만 키워드는 전송이 요청에 의해 표시된 적어도 하나의 다른 액션에 대한 보조 액션임을 나타낸다.
NLP 컴포넌트(108)는 입력 오디오 신호를 파싱하여 요청 및 키워드를 식별, 결정, 검색, 또는 획득할 수 있다. 예를 들어, NLP 컴포넌트(108)는 시맨틱(의미론적) 처리 기술(예를 들어, 기술(112))을 입력 오디오 신호에 적용하여 키워드 또는 요청을 식별할 수 있다. NLP 컴포넌트(108)는 시맨틱 처리 기술(112)을 입력 오디오 신호에 적용하여 제1 트리거 키워드 및 제2 트리거 키워드와 같은 하나 이상의 트리거 키워드를 포함하는 트리거 구문을 식별할 수 있다. 예를 들어, 입력 오디오 신호에는 "I need someone to do my laundry and my dry cleaning"라는 문장이 포함될 수 있다. NLP 컴포넌트(108)는 시맨틱 처리 기술(112), 또는 다른 자연어 처리 기술을 문장을 포함하는 데이터 패킷에 적용하여 트리거 구문 "do my laundry" 및 "do my dry cleaning"을 식별할 수 있다. NLP 컴포넌트(108)는 세탁 및 드라이 클리닝과 같은 다수의 트리거 키워드를 추가로 식별할 수 있다. 예를 들어, NLP 컴포넌트(108)는 트리거 구문이 트리거 키워드 및 제2 트리거 키워드를 포함한다고 결정할 수 있다.
NLP 컴포넌트(108)는 검색 또는 정보에 대한 다른 요청을 수행하는 것에 대응하는 검색 질의 또는 트리거 구문을 식별할 수 있다. NLP 컴포넌트(108)는 입력 오디오 신호가 토픽, 이벤트, 현재 이벤트, 뉴스 이벤트, 사전 정의, 이력적 이벤트, 사람, 장소 또는 사물에 대한 정보 요청에 대응한다고 결정할 수 있다. 예를 들어, NLP 컴포넌트(108)는 입력 오디오 신호가 "미국 혁명이 언제 일어났습니까?"와 같은 이력적 이벤트에 관한 정보에 대한 검색 질의에 대응한다고 결정할 수 있다. NLP 컴포넌트(108)는 입력 오디오 신호가 애플리케이션(118)을 호출, 시작 또는 활성화하기 위한 요청에 대응한다고 결정할 수 있다.
NLP 컴포넌트(108)는 입력 오디오 신호를 필터링하여 키워드, 검색 질의 또는 트리거 키워드를 식별할 수 있다. 예를 들어, 입력 오디오 신호를 전달하는 데이터 패킷은 "공항에 갈 수 있도록 도와 줄 수 있는 누군가를 얻을 수 있다면 좋을 텐데(It would be great if I could get someone that could help me go to the airport)"를 포함할 수 있으며, 이 경우 NLP 컴포넌트(108)는 "it", "would", "be", "great", "if", "I", "could", "get", "omeone", "hat", "could" 또는 "help"와 같이 하나 이상의 용어를 필터링할 수 있다. 이러한 용어를 필터링함으로써, NLP 컴포넌트(108)는 "go to the airport"와 같은 트리거 키워드를 보다 정확하고 신뢰성 있게 식별하고 이것이 택시 또는 승차 공유 서비스를 위한 요청인지 결정할 수 있다.
입력 오디오 신호의 처리 또는 파싱에 기초하여, NLP 컴포넌트(108)는 호출, 시작, 열기, 또는 활성화하기 위해 애플리케이션(118)을 식별할 수 있다. NLP 컴포넌트(108)는 용어, 키워드, 트리거 키워드 또는 구문을 식별하기 위해 입력 오디오 신호를 파싱하는 것에 기초하여 애플리케이션(118)을 식별할 수 있다. NLP 컴포넌트(108)는 애플리케이션(118)을 식별하기 위해 식별된 용어, 키워드, 트리거 키워드 또는 구문을 사용하여 인덱스(126)에서 조회를 수행할 수 있다. 일부 경우, 키워드는 "Application_Name_A" 또는 "Application_Name_B"와 같은 애플리케이션(118)의 식별자를 포함할 수 있다. 일부 경우, 키워드는 승차 공유 애플리케이션, 레스토랑 예약 애플리케이션, 영화 티켓 애플리케이션, 뉴스 애플리케이션, 날씨 애플리케이션, 내비게이션 애플리케이션, 스트리밍 음악 애플리케이션, 스트리밍 비디오 애플리케이션, 레스토랑 리뷰 애플리케이션과 같은 애플리케이션(118)의 유형 또는 카테고리, 또는 애플리케이션(118)의 다른 유형 또는 카테고리를 나타낼 수 있다.
입력 오디오 신호가 영숫자 식별자와 같이 애플리케이션에 해당하는 식별자를 포함하는 경우, NLP 컴포넌트(108)는 영숫자 식별자로 인덱스(126)에서 조회를 수행하여 애플리케이션(118)을 식별하고 활성화를 위해 애플리케이션 관리자 컴포넌트(114)에 표시를 제공할 수 있다. 표시는 애플리케이션(118)에 대한 고유 식별자, 참조, 포인터, 링크 또는 딥링크를 포함할 수 있다. 입력 오디오 신호가 애플리케이션(118)의 유형 또는 카테고리의 표시를 포함하는 경우, NLP 컴포넌트(108)는 컴퓨팅 디바이스(128)에 설치된 대응하는 애플리케이션(118)이 있는지 식별하기 위해 애플리케이션(118)의 유형 또는 카테고리로 인덱스(126)에서 조회를 수행할 수 있다. 예를 들어, 애플리케이션의 카테고리 또는 유형이 레스토랑 예약 예약 애플리케이션인 경우, 인덱스(126)는 "Restaurant_Booking_App"과 같은 이 카테고리와 관련된 애플리케이션에 대한 참조 또는 식별자를 포함할 수 있다. 입력 오디오 신호가 질의 또는 요청을 포함하는 경우, NLP 컴포넌트(108)는 질의 또는 요청의 유형을 결정할 수 있고, 그런 다음 질의 또는 요청을 수행하도록 구성되거나 가능한 인덱스(126)의 애플리케이션(118)을 식별할 수 있다. 일부 경우, NLP 컴포넌트(108)는 입력 오디오 신호에 응답하여 애플리케이션을 식별하고 선택하기 위해 원격 데이터 처리 시스템(142)과 통신할 수 있다.
디지털 어시스턴트 컴포넌트(106)가 인덱스(126)를 사용하여 입력 질의 또는 요청을 수행할 수 있는 컴퓨팅 디바이스(128)에 설치된 애플리케이션(118)을 식별할 수 없는 경우에도, 디지털 어시스턴트 컴포넌트(106)는 경고(alert) 또는 프롬프트를 생성할 수 있다. 경고 또는 프롬프트는 애플리케이션이 설치되지 않았고 디지털 어시스턴트 컴포넌트(106)가 요청 또는 질의를 이행할 수 없음을 나타낼 수 있다. 일부 경우, 프롬프트는 질의 또는 요청을 수행하도록 구성되지만 컴퓨팅 디바이스(128)에 설치되지 않거나 컴퓨팅 디바이스(128)에 액세스할 수 없는 애플리케이션(118)의 표시를 포함할 수 있다. 프롬프트는 컴퓨팅 디바이스(128)에 설치하기 위한 애플리케이션(118)을 제공할 수 있는 리소스에 대한 참조를 포함할 수 있다.
NLP 컴포넌트(108)는 하나 이상의 모델(110) 및 기술(110)을 사용하여 입력 오디오 신호를 처리할 수 있다. 모델(110)은 데이터에 기초하여 트레이닝된 기계 학습 모델(110)을 지칭하거나 포함할 수 있다. 모델(110)은 자연어 처리 또는 이해의 수행을 용이하게 하기 위해 다양한 가중치 또는 구성을 포함할 수 있다. 모델(110)은 예를 들어 자연어 이해를 수행하는 것을 용이하게 하기 위해 특정 가중치, 보정(calibrations) 또는 구성을 포함할 수 있다. 모델(110)은 특정 유형의 용어를 더 잘 검출하도록 보정될 수 있다. 예를 들어, NLP 컴포넌트(108)가 입력 요청이 애플리케이션을 활성화하는 것임을 검출하면, NLP 컴포넌트(108)는 컴퓨팅 디바이스(128)(예를 들어, 인덱스(126)에 설치된 모든 애플리케이션의 목록을 갖는 모델(110)을 사용할 수 있다. NLP 컴포넌트(108)는 애플리케이션의 목록으로부터 입력 요청에 대응하는 애플리케이션을 결정할 수 있다. 온라인 애플리케이션 마켓플레이스에 의해 제공될 수 있는 모든 애플리케이션 세트와 비교하여 컴퓨팅 디바이스(128)에 설치된 제한된 애플리케이션 세트를 갖는 모델(110)을 사용함으로써, NLP 컴포넌트(108)는 요청된 애플리케이션(118)을 정확하게 검출할 가능성을 향상시킬 수 있다. 또한, 모든 애플리케이션 세트와 비교하여 컴퓨팅 디바이스에 설치된 제한된 애플리케이션(118) 세트를 갖는 모델(110)을 사용함으로써, NLP 컴포넌트(108)는 애플리케이션 식별의 정확성과 신뢰성을 향상시키면서 컴퓨팅 자원 활용을 감소시밀 수 있다(예를 들어, 더 작은 모델(110)을 사용하면 더 적은 메모리를 차지하고 더 적은 처리를 사용할 수 있음).
NLP 컴포넌트(108)는 하나 이상의 기술(techniques)(112)을 사용하여 입력 오디오 신호를 파싱하거나 처리할 수 있다. 이 기술(112)은 규칙 기반 기술(112) 또는 통계 기술(112)을 포함할 수 있다. 기술(112)은 기계 학습 또는 심층 학습을 이용할 수 있다. 예시적인 기술(112)은 명명된 엔티티 인식, 감정 분석, 텍스트 요약, 측면 마이닝(aspect mining), 또는 토픽 마이닝을 포함할 수 있다. 기술(112)은 텍스트 임베딩(예를 들어, 문자열의 실제 값 벡터 표현), 기계 번역(예를 들어, 언어 분석 및 언어 생성), 또는 대화(dialogue) 및 대화(conversations)(예를 들어, 인공 지능에 의해 사용되는 모델)를 포함하거나 이에 기초할 수 있다. 기술(112)은 표제어, 형태학적 분할(segmentation), 단어 분할, 품사 태깅, 파싱, 문장 분리 또는 형태소 분석과 같은 구문 기술(예를 들어, 문법에 기초한 문장의 단어의 배열)을 결정하거나 활용하는 것을 포함할 수 있다. 기술(112)은 명명된 엔티티 인식(예를 들어, 애플리케이션(118), 사람 또는 장소의 이름과 같은 현재 그룹으로 식별 및 카테고리화될 수 있는 텍스트 부분 결정), 단어 의미 명확화 또는 자연어 생성과 같은 시맨틱(의미론적) 기술을 결정하거나 활용하는 것을 포함할 수 있다. 따라서, NLP 컴포넌트(108)는 클라이언트 컴퓨팅 디바이스(128)의 마이크로폰(센서(136))에 의해 검출된 제1 입력 오디오 신호를 수신할 수 있고, 자연어 처리 기술(112)을 통해 제1 입력 오디오 신호를 처리하여 애플리케이션의 표시를 식별할 수 있다.
컴퓨팅 디바이스(128)(또는 디지털 어시스턴트 컴포넌트(106))는 애플리케이션(118)을 활성화하도록 설계, 구성 및 동작하는 애플리케이션 관리자 컴포넌트(114)를 포함할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 NLP 컴포넌트(108)에 의해 식별된 애플리케이션(118)의 표시를 수신할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 영숫자 식별자, 또는 애플리케이션(118)의 다른 참조 또는 표시를 수신할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 인덱스(126)에서 조회를 수행하여 애플리케이션(118)이 컴퓨팅 디바이스(128) 상에서 활성화를 위해 이용 가능하거나 호환 가능하다는 것을 검증할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)을 활성화할 수 있다. 애플리케이션(118)을 활성화하는 것은 애플리케이션(118)을 컴퓨팅 디바이스(128)의 포어그라운드(foreground)으로 가져오는 것을 의미하거나 포함할 수 있다. 애플리케이션(118)을 활성화한은 것은 애플리케이션을 실행하는 것을 의미할 수 있다. 애플리케이션(118)을 활성화하는 것은 애플리케이션을 백그라운드 프로세스로부터 포어그라운드 프로세스로 가져오는 것을 의미할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)을 호출, 실행 또는 활성화하기 위한 명령, 스크립트, 프로세스 또는 다른 명령을 생성할 수 있다.
애플리케이션 관리자 컴포넌트(114)는 클라이언트 컴퓨팅 디바이스(128)의 인덱스(126)에서 조회을 수행하여 애플리케이션(118)이 클라이언트 컴퓨팅 디바이스(128)에 설치되었다고 결정할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)이 클라이언트 컴퓨팅 디바이스(128)에 설치되었다는 결정에 응답하여, 애플리케이션(118)을 활성화할 수 있다.
애플리케이션(118)을 시작(launching)하는 것은 애플리케이션이 정보를 디지털 어시스턴트 컴포넌트(106)에 선언하게 할 수 있다. 애플리케이션(118)은 애플리케이션(118)이 수행하도록 구성된 기능을 선언할 수 있다. 애플리케이션(118)이 수행하도록 구성된 기능을 선언하는 것은 기능 또는 작업(task)을 수행하기 위해 애플리케이션(118)이 입력으로서 수신할 수 있는 파라미터의 유형 또는 파라미터의 유형의 표시를 제공하는 것을 포함할 수 있다. 애플리케이션(118)은 현재 상태와 같은 애플리케이션(118)의 상태를 선언할 수 있다. 애플리케이션(118)은 애플리케이션(118)의 현재 컨텍스트를 선언할 수 있다. 애플리케이션(118)은 애플리케이션(118)이 수행할 수 있는 기능의 유형, 기능을 수행하는데 사용되는 입력의 유형, 또는 애플리케이션(118)이 작업을 수행하거나 액션을 실행하는 것을 용이하게 하는 다른 정보 또는 데이터를 선언할 수 있다.
예를 들어, 애플리케이션(118)은 레스토랑을 예약하기 위한 애플리케이션을 포함할 수 있다. 제1 입력 오디오 신호는 "Restaurant_Booking_App_1을 사용하여 예약하세요"와 같은 질의 또는 예약하기 위한 요청을 포함할 수 있다. NLP 기술(112) 및 모델(110)(예를 들어, 컴퓨팅 디바이스(128)에 설치된 애플리케이션으로 구성된 모델(110))을 사용하여, NLP 컴포넌트(108)는 애플리케이션(118)을 식별할 수 있고 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)(예를 들어, Restaurant_Booking_App_1)을 활성화할 수 있다.
애플리케이션(118)은 프로토콜(150)을 사용하여 정보를 선언할 수 있다. 프로토콜(150)은 양방향 통신 프로토콜을 포함할 수 있다. 프로토콜(150)은, 예를 들어, 전송 프로토콜, TCP/IP 프로토콜, 프로세스간 통신 프로토콜, 메시징 프로토콜 또는 임의의 다른 통신 기술을 포함할 수 있다. 프로토콜(150)은 애플리케이션(118)이 애플리케이션(118)에 의해 지원되는 기능 또는 의도, 의도 또는 기능에 대한 파라미터 유형 및 지원되는 파라미터 값을 선언할 수 있는 프로세스간 통신 프로토콜을 포함할 수 있다. 예를 들어, "BOOK_A_TABLE" 기능은 TableType 파라미터와 BookingTime 파라미터를 가질 수 있다. TableType 파라미터는 WindowSide(창가) 또는 LakeSide(호숫가) 값과 연관될 수 있다. BookingTime 파라미터는 "시간" 유형과 연관될 수 있다. 디지털 어시스턴트 컴포넌트(106)는 NLP 컴포넌트(108)에 의해 수행된 처리를 수정하기 위해 프로토콜(150)을 통해 이 정보를 수신하여 NLP 이해를 개선하고 사용자 질의에 대한 이행을 결정할 수 있다. 해당 디지털 어시스턴트 컴포넌트(106)는 동일한 프로토콜(150)을 사용하여 애플리케이션(118)으로 이행을 다시 보낼 수 있다(예를 들어, "TableType=LakeSide 설정").
애플리케이션(118)은 API, 예를 들어 다이렉트 액션 API 또는 소프트웨어 개발 키트("SDK")를 사용하여 정보를 선언할 수 있다. 애플리케이션(118)은 인터페이스(104)를 통해 디지털 어시스턴트 컴포넌트(106)와 인터페이스하도록 API 또는 SDK로 구성될 수 있다. 애플리케이션은 인터페이스(104)를 사용하여 디지털 어시스턴트 컴포넌트(106)의 하나 이상의 컴포넌트와 통신할 수 있고, 디지털 어시스턴트 컴포넌트(106)는 인터페이스(104)를 사용하여 애플리케이션(118)과 통신할 수 있다.
애플리케이션(118)은 선언들(120)로 구성될 수 있다. 애플리케이션(118)의 개발자는 선언들(120)을 제공할 수 있다. 애플리케이션(118)은 애플리케이션(118)의 현재 상태를 결정하기 위해 구성, 설계 및 동작할 수 있다. 애플리케이션(118)의 상태는 애플리케이션(118)이 현재 수신할 수 있는 입력을 지칭할 수 있다. 애플리케이션(118)의 상태는 애플리케이션(118)이 수행할 수 있는 액션을 지칭할 수 있다. 애플리케이션(118)의 상태는 애플리케이션(118)이 수행할 수 있는 기능을 지칭할 수 있다. 따라서, 애플리케이션(118)의 상태는 애플리케이션(118)이 수신할 수 있는 입력, 애플리케이션(118)이 수행할 수 있는 기능, 또는 애플리케이션(118)이 실행하도록 구성된 액션을 지칭하거나 포함하거나 이에 기초할 수 있다.
예시적인 선언에는 기능, 액션, 입력 값의 포멧, 입력 값의 유형, 텍스트의 카테고리 또는 유형, 이름, 시맨틱 정보, 숫자 값, 또는 음성 입력에서 입력 파라미터 검출을 용이하게 하는 기타 정보가 포함될 수 있다. 애플리케이션(118)은 애플리케이션(118)이 질의, 요청, 명령 또는 커멘드를 수신할 것으로 예상한다고 선언할 수 있다. 애플리케이션(118)은 애플리케이션(118)이 숫자 값 또는 단어, 구문, 고유 명사, 지리적 위치, 우편 번호, 주, 도시 또는 마을을 수신할 것으로 예상한다고 선언할 수 있다. 선언(120)은 관심 지점을 포함할 수 있다. 선언(120)은 통화(currency)를 포함할 수 있다. 따라서, 애플리케이션(118)은 애플리케이션(118)이 수행할 수 있는 기능, 또는 애플리케이션(118)이 현재 수신하고 기능 또는 액션을 수행하기 위해 처리할 수 있는 입력 파라미터를 나타낼 수 있는 애플리케이션(118)의 현재 컨텍스트 또는 상태와 관련된 선언(120)을 제공하도록 구성될 수 있다. 예시적인 기능에는 레스토랑 예약, 호텔 예약, 항공편 예약, 자동차 렌트, 상품 또는 서비스 구매, 테이크아웃 음식 주문, 승차 공유 주문 또는 택시 주문이 포함될 수 있다.
예를 들어, 애플리케이션(118)은 레스토랑을 예약하도록 설계, 구성 및 작동될 수 있다. 시작, 호출 또는 활성화되면, 애플리케이션(118)은 상태에 진입할 수 있다. 애플리케이션(118)은 디폴트 또는 홈 상태에 진입할 수 있다. 이 디폴트, 홈 또는 초기 상태에서, 애플리케이션(118)은 입력 텍스트 박스를 포함할 수 있다. 입력 텍스트 박스는 질의를 수신하도록 구성된 입력 검색 박스일 수 있다. 질의에는 레스토랑 유형, 위치 또는 레스토랑 이름에 대한 질의가 포함될 수 있다. 따라서, 애플리케이션(118)의 현재 상태는 애플리케이션(118)이 애플리케이션(118)의 사용자 인터페이스의 검색 필드에서 입력 질의를 수신할 수 있다는 것을 나타낼 수 있다.
애플리케이션(118)은 프로토콜(150)을 통해 NLP 컴포넌트(108)에, 애플리케이션(118)이 수행할 수 있는 기능이 레스토랑을 예약하는 것을 포함한다고 선언할 수 있다. 일부 경우, 애플리케이션(118)은 레스토랑 검색과 관련된 입력 질의와 같은 기능을 수행하기 위해 애플리케이션(118)이 수신할 수 있는 입력 유형을 선언할 수 있다. 애플리케이션(118)은 키워드, 텍스트, 이름, 레스토랑의 카테고리 또는 유형, 또는 레스토랑의 이름과 같은 입력에 대한 유형 또는 포멧을 추가로 선언할 수 있다. 애플리케이션(118)이 레스토랑 예약 기능을 수행할 수 있거나 레스토랑의 이름을 수신할 것으로 기대하고 있다고 NLP(108)에 선언함으로써, NLP(108)는 NLP(108)의 모델(110) 또는 기술(112)을 수정하여, 레스토랑을 예약하는 기능을 수행하는 애플리케이션(118)을 촉진하는 음성 입력에서 입력 정보를 검출하는 가능성, 정확성 및 신뢰성을 향상시킬 수 있다.
NLP 컴포넌트(108)는 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술(112) 또는 모델(110)을 수정할 수 있다. NLP 컴포넌트(108)는 NLP 처리 기술(112) 또는 모델(110)에 대한 동적 실시간 수정 또는 업데이트를 수행할 수 있다. NLP 컴포넌트(108)는 NLP 기술(112) 또는 모델(110)의 선언 기반 실시간 업데이트를 수행할 수 있다. NLP 컴포넌트(108)는 제3자 애플리케이션의 상태 또는 컨텍스트에 기초하여 실시간 자연어 이해를 수행하기 위해 선언을 사용할 수 있다. 실시간은 애플리케이션 활성화에 응답하여 NLP 처리를 업데이트하는 것을 의미할 수 있다. 실시간은 애플리케이션 활성화 후 제2 오디오 입력 신호를 수신하기 전에 NLP 처리를 업데이트하는 것을 의미할 수 있다. 실시간은 예를 들어 애플리케이션(118) 활성화의 1초 이내, 애플리케이션(118) 활성화의 2초 이내, 애플리케이션(118) 활성화의 3초 이내, 애플리케이션(118) 활성화의 5초 이내, 애플리케이션 활성화의 10초 이내, 애플리케이션(118) 활성화의 15초 이내 또는 애플리케이션(118) 활성화의 30초 이내에 NLP 처리 기술을 업데이트하는 것을 의미할 수 있다.
일부 경우, 모델(110)은 기능에 기초하여 업데이트될 수 있고, NLP 기술(112)은 업데이트된 모델(110)을 사용할 수 있다. NLP 컴포넌트(108)는 업데이트된 모델(110)을 NLP 기술(112)에 제공할 수 있다. NLP 컴포넌트(112)는 선언에 기초하여 모델(110) 또는 기술(112)의 유형을 선택할 수 있다. NLP 컴포넌트(112)는 후속 입력 오디오 신호에서 애플리케이션(118)에 의해 선언된 기능에 대한 입력 파라미터들을 검출하도록 조정(tune)되거나 보정된 모델(110) 또는 기술을 선택할 수 있다. 예를 들어, 선언이 애플리케이션(118)이 수행하는 기능이 지리적 영역을 포함하는 입력을 사용한다는 것을 나타내면, NLP 컴포넌트(112)는 주, 도시, 마을, 광장 또는 기타 지리적 영역과 같은 지리적 영역을 검출하도록 보정, 최적화 또는 조정되는 모델(110) 또는 기술(112)을 선택할 수 있다. 예를 들어, NLP 컴포넌트(108)는 선언된 기능을 위해 사전을 선택할 수 있다. 다른 예에서, 모델(110)은 숫자 값과 대조적으로, 선언된 것에 더 많이 대응하는 가중치 용어로 조정될 수 있다. 다른 예에서, 기술(112)은 숫자 값 또는 시맨틱 처리와 대조적으로 지리적 영역을 검출하도록 최적화될 수 있다. 따라서, 디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)의 활성화에 후속하여 애플리케이션(118)에 의해 선언된 기능에 기초하여 자연어 처리 기술(112)을 수정하여, 기능에 기초하여 수정되지 않은 자연어 처리 기술(112)에 대한 하나 이상의 파라미터의 검출 가능성을 증가시킬 수 있다(예를 들어, 업데이트된 기술(112) 또는 업데이트된 모델(110)을 사용하는 기술(112)을 사용하는 것은 입력 파라미터를 검출하기 위해 디폴트 기술(112) 또는 디폴트 모델(110)을 사용하는 것과 관련하여 기능에 대한 입력 파라미터를 검출할 가능성 또는 정확도 및 신뢰성에 대한 개선을 제공할 수 있다).
다른 예에서, 선언된 기능이 레스토랑 예약을 포함하는 경우, NLP 컴포넌트(108)는 레스토랑 이름과 같은 명사를 검출하도록 최적화된 모델(110) 또는 기술을 선택할 수 있다. 따라서, 애플리케이션에 의해 선언된 기능에 기초하여, NLP 컴포넌트(108)는 고유명사, 숫자, 단어, 구, 질문, 숫자 값, 화폐 금액 또는 지리적 위치와 같은 기능을 실행하거나 수행하는데 사용되는 입력 파라미터를 보다 안정적으로 검출하도록 보정, 조정, 최적화 또는 구성되는 모델(110) 또는 기술(112)을 선택할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 (예를 들어, NLP 컴포넌트(108)를 통해) 컴퓨팅 디바이스(128)의 마이크로폰(예를 들어, 센서(136))에 의해 검출된 제2 입력 오디오 신호를 수신할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 수정된 자연어 처리 기술(112) 또는 모델(110)을 통해, 제2 입력 오디오 신호를 처리하여 애플리케이션(118)에 의해 선언된 기능에 대응하는 하나 이상의 파라미터를 검출할 수 있다. NLP 컴포넌트(108)는 애플리케이션(118)에 의해 선언된 상태 정보(예를 들어, 애플리케이션(118)이 현재 상태에서 수행할 수 있는 기능을 나타내는 선언)를 사용하여 제2 입력 오디오 신호의 실시간 자연어 처리를 수행하여 하나 이상의 파라미터를 식별할 수 있다. 실시간 자연어 처리를 수행하는 것은 입력 파라미터를 검출하기 위해 입력 신호를 처리하도록 NLP 기술(112) 또는 모델(110)을 수정하거나 업데이트하기 위해 애플리케이션(118)에 의해 선언된 현재 컨텍스트 정보를 사용하여 제2 입력 오디오 신호를 처리하는 것을 지칭할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 애플리케이션(118)의 입력 필드의 입력에 대해 호환가능하다고 결정할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 검출된 입력 파라미터가 선언된 기능과 호환 가능하다고 결정할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 정책, 매칭 기술 또는 다른 기술을 사용하여 호환성을 결정할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 입력 파라미터의 유형을 기능이 수신하도록 구성되는 입력 파라미터의 유형과 비교할 수 있다. 유형에는 예를 들어 숫자 값, 지리적 위치, 고유 명사, 질문, 단어 또는 구가 포함될 수 있다. 유형은 입력 파라미터의 의미와 같은 시맨틱을 포함하거나 이에 기초할 수 있다. 유형은 입력 파라미터의 포멧이나 문법과 같은 구문(syntax)을 포함하거나 이에 기초할 수 있다. 예를 들어, 입력 파라미터는 지리적 위치일 수 있다. 디지털 어시스턴트 컴포넌트(106)는 입력 파라미터가 주소와 같은 지리적 위치임을 결정할 수 있고, 그런 다음 "주소" 유형을 선언된 기능에 대해 구성된 입력 값의 유형과 비교하여 매칭 또는 호환성을 결정할 수 있다.
다른 예에서, 디지털 어시스턴트 컴포넌트(106)는 입력 파라미터의 수, 가능한 입력 값의 범위, 또는 다수의 입력 파라미터 간의 일관성에 기초하여 호환성을 결정할 수 있다.
일부 경우, 디지털 어시스턴트 컴포넌트(106)는 템플릿을 사용하여 호환성을 결정할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 선언된 기능과 관련된 템플릿을 식별할 수 있다. 템플릿은 입력 파라미터의 유형, 입력 파라미터의 수, 입력 파라미터와 관련된 시맨틱 및 구문, 또는 예상되는 입력 파라미터와 관련된 임의의 기타 정보를 나타낼 수 있다. 디지털 어시스턴트 컴포넌트(106)는 템플릿을 사용하여, 검출된 입력 파라미터가 호환 가능한지 여부를 결정할 수 있다. 예를 들어, 템플릿이 예상되는 입력 파라미터가 지리적 위치 또는 주소임을 나타내지만, 검출된 입력 파라미터가 제품 유형인 경우, 디지털 어시스턴트 컴포넌트(106)는 입력 파라미터와 선언된 기능 사이의 비호환성을 결정할 수 있다. 비호환성을 결정하는 것에 응답하여, 디지털 어시스턴트 컴포넌트(106)는 호환되지 않는 검출된 입력 파라미터를 사용하여 액션 데이터 구조를 생성하지 않기로 결정할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)에 오작동이나 오류 또는 바람직하지 않은 결과가 발생할 수 있기 때문에 호환되지 않는 파라미터를 애플리케이션(118)에 입력하지 않도록 결정할 수 있다. 따라서, 비호환성을 검출하고 잘못된 입력 파라미터를 입력하지 않음으로써, 디지털 어시스턴트 컴포넌트(106)는 오류 및 낭비되는 컴퓨팅 자원 활용을 감소 또는 방지할 수 있다. 일부 경우, 오류 검출에 응답하여, 디지털 어시스턴트 컴포넌트(106)는 호환 가능한 입력 파라미터를 요청하는 프롬프트 또는 경고를 생성할 수 있다.
NLP 컴포넌트(108)는 프로토콜(150)을 통해 애플리케이션(118)에 의해 선언된 상태 정보를 수신할 수 있다. NLP 컴포넌트(108)는 수정된 자연어 처리 기술(112)(또는 모델(110))을 통해, 제2 입력 오디오 신호를 상태 정보에 매핑하여 요청을 식별할 수 있다. 예를 들어, 상태 정보는 애플리케이션(118)이 준비 상태에 있고 액션 유형을 수행하기 위한 요청을 수신하도록 열려 있음을 나타낼 수 있다. 액션 유형은 레스토랑 검색 수행, 레스토랑 대기자 명단에 추가, 레스토랑 예약 또는 레스토랑에 대한 리뷰 남기기까지 다양하다. 애플리케이션은 NLP 컴포넌트(108)에 사용 가능한 액션 유형을 선언할 수 있다. NLP 컴포넌트(108)는 제2 입력 오디오 신호를 파싱하여 레스토랑에 대한 리뷰를 남겨 달라는 요청((예를 들어, "레스토랑_A 별점 5개를 남겨주세요")을 결정할 수 있다. NLP 컴포넌트(108)는, 리뷰를 남기는 것이 호환 가능한 요청 중 하나임을 나타내는 선언된 상태 정보에 기초하여 리뷰를 남겨달라는 요청임을 보다 안정적이고 정확하게 검출하도록 조정된 기술(112) 또는 모델(110)을 사용하여, 이것이 이 레스토랑에 대한 리뷰를 남겨 달라는 요청임을 검출할 수 있다. NLP 컴포넌트(108)는 이 요청을 검출한 다음 기능 유형(예를 들어, 리뷰), 리뷰 중인 레스토랑의 이름(예를 들어, Restaurant_A), 리뷰 또는 평가가 무엇인지(예를 들어, 별 5개)를 포함하여 검출된 입력 파라미터를 제공할 수 있다. 다이렉트 액션 API(116)는 이들 3개의 입력 파라미터를 포함하는 행동 데이터 구조를 생성할 수 있다. 따라서, 디지털 어시스턴트 컴포넌트(106)는 활성화된 애플리케이션(118.d)의 선언된 컨텍스트 또는 상태에 기초하여 실시간으로 NLP 기술(112) 또는 모델(110)을 수정할 수 있는 NLP 컴포넌트(108)를 사용함으로써 이 액션을 실행하기 위해 다수의 대화 또는 화면에 대한 필요성을 방지하거나 회피할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 호환성의 결정에 응답하여 하나 이상의 파라미터에 기초하여, 애플리케이션(118)에 대한 액션 데이터 구조를 생성하도록 설계 및 구성된 다이렉트 액션 API(116)를 포함할 수 있다. 다이렉트 액션 API(116)는 액션 데이터 구조를 프로토콜(150)을 통해 애플리케이션(118)에 입력하여 애플리케이션(118)으로 하여금 액션 데이터 구조를 실행하여 애플리케이션(118)의 사용자 인터페이스 엘리먼트를 업데이트하게 할 수 있다. 컴퓨팅 디바이스(128)의 프로세서들은 다이렉트 액션 API(116)를 호출하여 애플리케이션(118)에 대한 데이터 구조를 생성하는 스크립트를 실행하여, 자동차 공유 서비스로부터의 자동차와 같은 서비스 또는 제품을 요청 또는 주문할 수 있거나 레스토랑을 예약할 수 있다. 다이렉트 액션 API(116)는 애플리케이션(118)이 3P 애플리케이션 서버(148)와 통신하여 레스토랑을 예약하거나 자동차 공유 서비스에서 자동차를 예약하는 것과 같은 액션 또는 동작을 수행할 수 있도록 위치, 시간, 사용자 계정, 물류 또는 기타 정보를 결정하기 위해 클라이언트 컴퓨팅 디바이스(128)로부터 최종 사용자 동의하에 수신된 데이터 뿐만 아니라 데이터 저장소(122) 및 NLP 컴포넌트(108)로부터 데이터를 획득할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 또한 3P 애플리케이션 서버(148)와 통신하여 이 예에서 예약을 하거나 자동차 공유 픽업 예약을 함으로써 전환(conversion)을 완료할 수 있다.
다이렉트 액션 API(116)는 지정된 액션을 실행하여 애플리케이션(118)에 입력을 제공하여 애플리케이션이 애플리케이션(118)에 의해 선언된 기능을 수행하기 위해 액션을 실행하게 할 수 있다. 입력에 지정된 액션에 따라, 다이렉트 액션 API(116)는 기능 또는 사용자 요청을 이행하는데 필요한 파라미터들을 식별하는 대화 스크립트 또는 코드를 실행할 수 있다. 이러한 코드는 예를 들어 데이터 저장소(122)에서, 홈 자동화 서비스의 이름과 같은 추가 정보를 조회할 수 있으며, 이는 요청된 택시의 의도된 목적지와 같은 최종 사용자 질문을 하기 위해 클라이언트 컴퓨팅 디바이스(128)에서 렌더링하기 위한 오디오 출력을 제공할 수 있다. 다이렉트 액션 API(116)는 필요한 파라미터들을 결정할 수 있고 정보를 액션 데이터 구조로 패키징할 수 있으며, 이는 실행을 위해 애플리케이션(118)으로 전송될 수 있다.
다이렉트 액션 API(116)는 NLP 컴포넌트(108) 또는 디지털 어시스턴트 컴포넌트(106)의 다른 컴포넌트로부터 명령 또는 커맨드를 수신하여 액션 데이터 구조를 생성하거나 구성할 수 있다. 다이렉트 액션 API(116)는 데이터 저장소(122)에 저장된 템플릿을 선택하기 위해 액션 유형을 결정할 수 있다. 액션 유형에는 예를 들어 서비스, 제품, 예약 또는 티켓이 포함될 수 있다. 액션 유형에는 서비스 또는 제품 유형이 포함될 수 있다. 예를 들어, 서비스 유형에는 자동차 공유 서비스, 음식 배달 서비스, 세탁 서비스, 가정부 서비스, 수리 서비스 또는 가사 서비스가 포함될 수 있다. 제품 유형에는 예를 들어 옷, 신발, 장난감, 전자 제품, 컴퓨터, 책 또는 보석이 포함될 수 있다. 예약 유형에는 예를 들어 저녁 식사 예약 또는 미용실 약속이 포함될 수 있다. 티켓 유형에는 예를 들어 영화 티켓, 스포츠 경기장 티켓 또는 비행기 티켓이 포함될 수 있다. 일부 경우, 서비스, 제품, 예약 또는 티켓의 유형은 가격, 위치, 배송 유형, 가용성 또는 기타 속성에 기초하여 카테고리화될 수 있다.
다이렉트 액션 API(116)는 요청 유형을 식별하면 데이터 저장소(예를 들어, 애플리케이션(124) 데이터 구조 또는 데이터베이스)에 저장된 템플릿 저장소로부터 대응하는 템플릿에 액세스할 수 있다. 템플릿은 3P 애플리케이션 서버(148)의 요청되는 동작(예를 들어, 픽업 위치에서 최종 사용자를 픽업하고 최종 사용자를 목적지 위치로 수송하기 위해 택시를 보내는 동작)을 추가하기 위해 다이렉트 액션 API(116)에 의해 채워질 수 있는 구조화된 데이터 세트의 필드들을 포함할 수 있다. 다이렉트 액션 API(116)는 선언된 기능의 하나 이상의 특성과 매칭하는 템플릿을 선택하기 위해 (예를 들어, 애플리케이션(124) 데이터 구조 또는 데이터베이스에 저장된) 템플릿 저장소에서 조회를 수행할 수 있다. 예를 들어, 선언된 기능이 목적지까지 자동차 또는 승차를 요청하는 것에 대응하는 경우, 데이터 처리 시스템(102)은 자동차 공유 서비스 템플릿을 선택할 수 있다. 자동차 공유 서비스 템플릿은 디바이스 식별자, 픽업 위치, 목적지 위치, 승객 수 또는 서비스 유형 필드 중 하나 이상을 포함할 수 있다. 다이렉트 액션 API(116)는 필드를 값으로 채울 수 있다. 필드를 값으로 채우기 위해, 다이렉트 액션 API(116)는 컴퓨팅 디바이스(128)의 하나 이상의 센서(136) 또는 컴퓨팅 디바이스(128)의 사용자 인터페이스로부터 정보를 핑(ping)하거나 폴링(polling)하거나 획득할 수 있다. 예를 들어, 다이렉트 액션 API(116)는 GPS 센서와 같은 위치 센서를 사용하여 소스 위치를 검출할 수 있다. 다이렉트 액션 API(116)는 컴퓨팅 디바이스(128)의 최종 사용자에게 설문 조사, 프롬프트 또는 질의를 제출함으로써 추가 정보를 얻을 수 있다. 다이렉트 액션 API는 데이터 처리 시스템(102)의 인터페이스(104) 및 컴퓨팅 디바이스(128)의 사용자 인터페이스(예를 들어, 오디오 인터페이스, 음성 기반 사용자 인터페이스, 디스플레이 또는 터치 스크린)를 통해 설문 조사, 프롬프트 또는 질의를 제출할 수 있다. 따라서, 다이렉트 액션 API(116)는 트리거 키워드 또는 요청에 기초하여 액션 데이터 구조에 대한 템플릿을 선택하고, 템플릿의 하나 이상의 필드를 하나 이상의 센서(136)에 의해 검출되거나 사용자 인터페이스를 통해 획득된 정보로 채우고, 3P 애플리케이션 서버(148)에 의한 동작의 수행을 용이하게 하기 위해 액션 데이터 구조를 발생, 생성 또는 구성한다.
데이터 처리 시스템(102)은 예를 들어, 애플리케이션, 키워드, 요청, 3P 애플리케이션 서버(148), 애플리케이션 유형, 애플리케이션(118)이 속하는 카테고리(예를 들어, 택시 서비스, 세탁 서비스, 꽃 서비스, 예약, 또는 음식 배달), 위치 또는 기타 정보로부터의 선언 중 하나 이상을 포함하는 다양한 인자(factor)에 기초하여 데이터 저장소(122)에 저장된(예를 들어, 애플리케이션(124) 데이터 구조 또는 데이터베이스에 저장된) 템플릿 데이터 구조로부터 템플릿을 선택할 수 있다.
선언들에 기초하여 템플릿을 선택하기 위해, 데이터 처리 시스템(102)은 (예를 들어, 다이렉트 액션 API(116)를 통해) 애플리케이션(118)으로부터의 선언 또는 입력 파라미터를 사용하여 데이터 저장소의 템플릿 데이터베이스(예를 들어, 애플리케이션(124) 데이터 구조 또는 데이터베이스에 저장됨)에 대한 조회 또는 다른 질의 동작을 수행하여, 선언 또는 입력 파라미터를 매핑하거나 이에 해당하는 템플릿 데이터 구조를 식별할 수 있다. 예를 들어, 템플릿 데이터베이스의 각 템플릿은 애플리케이션(118)이 액션을 실행하기 위해 처리할 수 있는 선언에 응답하여 템플릿이 액션 데이터 구조를 생성하도록 구성되었음을 나타내기 위해 하나 이상의 선언과 연관될 수 있다. 일부 경우, 데이터 처리 시스템(102)은 인덱스(126) 또는 애플리케이션(124)의 정보에 기초하여 애플리케이션(118)의 유형을 식별할 수 있다.
액션 데이터 구조를 구성하거나 생성하기 위해, 데이터 처리 시스템(102)은 업데이트되거나 수정된 NLP 기술(112) 또는 모델(110)을 사용하여 입력 오디오 신호에서 NLP 컴포넌트(108)에 의해 검출된 값들로 채우기 위해 선택된 템플릿의 하나 이상의 필드를 식별할 수 있다. 필드들은 숫자 값, 문자열, 유니코드 값, 부울 논리, 이진 값, 16진수 값, 식별자, 위치 좌표, 지리적 영역, 타임스탬프 또는 기타 값으로 채워질 수 있다. 필드 또는 데이터 구조 자체는 데이터 보안을 유지하기 위해 암호되하거나 마스킹될 수 있다.
템플릿의 필드들을 결정할 때, 데이터 처리 시스템(102)은 액션 데이터 구조를 생성하기 위해 템플릿의 필드를 채우도록 필드에 대한 값을 식별할 수 있다. 데이터 처리 시스템(102)은 업데이트되거나 수정된 NLP 기술(112) 또는 모델(110)을 사용하여 입력 오디오 신호를 파싱하거나 처리함으로써 필드들에 대한 값을 획득, 검색, 결정 또는 식별할 수 있다. 일부 경우, 데이터 처리 시스템(102)은 데이터 저장소(122) 또는 센서(136)와 같은 다른 소스로부터 값을 결정할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 클라이언트 컴퓨팅 디바이스(128)의 하나 이상의 이용 가능한 센서를 질의하거나 폴링하거나, 정보에 대해 클라이언트 컴퓨팅 디바이스(128)의 최종 사용자에게 프롬프트하거나, HTTP 프로토콜을 사용하여 온라인 웹 기반 리소스에 액세스함으로써 정보를 획득하거나 얻을 수 있다. 예를 들어, 데이터 처리 시스템(102)은 템플릿의 필요한 필드일 수 있는 클라이언트 컴퓨팅 디바이스(128)의 현재 위치를 가지고 있지 않다고 결정할 수 있다. 데이터 처리 시스템(102)은 위치 정보에 대해 클라이언트 컴퓨팅 디바이스(128)에 질의할 수 있다. 데이터 처리 시스템(102)은 GPS 센서, WIFI 삼각 측량, 셀 타워 삼각 측량, 블루투스 비콘, IP 주소, 또는 다른 위치 감지 기술과 같은 하나 이상의 위치 센서(136)를 사용하여 위치 정보를 제공하도록 클라이언트 컴퓨팅 디바이스(128)에 요청할 수 있다.
다이렉트 액션 API(116)는 프로토콜(150)을 사용하여 액션 데이터 구조를 애플리케이션(118)에 입력할 수 있다. 다이렉트 액션 API(116)는 애플리케이션(118)의 사용자 인터페이스 또는 애플리케이션(118)의 다른 인터페이스를 통해 액션 데이터 구조를 입력할 수 있다. 다이렉트 액션 API는 인터페이스(104)를 통해 액션 데이터 구조를 입력할 수 있다. 다이렉트 액션 API는 애플리케이션(118)의 헤드리스 인터페이스를 통해 액션 데이터 구조를 입력할 수 있다. 애플리케이션(118)은 액션 데이터 구조를 수신하면 액션 또는 기능을 수행하기 위해 액션 데이터 구조를 실행할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)으로부터 추가 선언을 수신할 수 있다. 액션 데이터 구조를 애플리케이션(118)에 입력한 후, 애플리케이션(118)의 현재 상태는 액션 데이터 구조의 처리 또는 실행에 기초하여 변경될 수 있다. 애플리케이션(118)은 액션 데이터 구조를 실행하고 애플리케이션의 상태를 변경하는 것에 응답하여 업데이트된 또는 새로운 선언을 제공할 수 있다. 새로운 또는 업데이트된 선언은 액션 데이터 구조의 수신, 액션 데이터 구조의 실행 또는 액션 데이터 구조의 부분 실행 이후의 애플리케이션의 현재 상태를 나타낼 수 있다. 업데이트된 선언은 사용자 인터페이스의 추가 입력 필드와 같은 사용자 인터페이스 변경을 나타낼 수 있다. NLP 컴포넌트(108)는 상태 변경의 표시에 응답하여, 애플리케이션에 의해 선언된 기능에 응답하여 이전에 수정된 자연어 처리 기술(112) 또는 모델(110)을 수정(예를 들어, 재수정 또는 다시 수정)할 수 있다. 수정 유형은 첫 번째 수정과 유사하지만 새로운 선언(예를 들어, 선언된 새로운 기능 또는 새로운 기능을 수행하는데 사용되는 입력, 또는 원래 기능 또는 액션의 수행을 용이하게 하기 위한 추가 입력 요청)에 맞게 조정된다. 디지털 어시스턴트 컴포넌트(106)는 NLP 기술(112) 또는 모델(110)의 재수정에 후속하여 제3 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트(108)는 상태 변경의 표시에 응답하여 수정된 자연어 처리 기술(112)(예를 들어, 수정되거나 상이한 모델(110)을 사용하는 수정된 기술(112) 또는 동일한 기술(112))을 통해, 제3 입력 오디오 신호를 처리하여 하나 이상의 제2 파라미터를 식별할 수 있다. 데이터 처리 시스템(102)은 하나 이상의 제2 파라미터에 기초하여 제2 액션 데이터 구조를 생성할 수 있다..
일부 경우, 애플리케이션(118)은 디지털 어시스턴트 컴포넌트(106)를 호출할 수 있다. 예를 들어, 애플리케이션(118)은 애플리케이션(118)의 상태 변경의 표시를 제공할 수 있다. 애플리케이션(118)은 프로토콜(150)을 통해 표시를 제공할 수 있다. 애플리케이션(118)은 애플리케이션(118)의 상태 변경, 또는 입력 요청 또는 액션 데이터 구조 요청을 나타내는 선언을 제공할 수 있다. 선언은 애플리케이션(118)이 준비 상태에 있거나 액션 데이터 구조를 실행하는데 이용 가능함을 나타낼 수 있다. 이 표시 또는 선언은 디지털 어시스턴트 컴포넌트(106)를 호출할 수 있다. 예를 들어, 표시는 디지털 어시스턴트 컴포넌트가 입력 오디오 신호를 검출하거나 처리하게 하기 위해 디지털 어시스턴트 컴포넌트(106)를 깨울 수 있다. 디지털 어시스턴트 컴포넌트(106)의 호출은 전처리기(130)가 검출하는 핫워드 또는 웨이크업 워드를 우회(bypass)하는 것을 지칭하거나 이를 포함할 수 있다. 호출은 디지털 어시스턴트 컴포넌트(106)가 컴퓨팅 디바이스(128)의 사용자로부터 입력을 요청하는 오디오 출력과 같은 프롬프트 또는 출력을 생성하게 할 수 있다.
호출은 디지털 어시스턴트 컴포넌트(106)가 애플리케이션(118)의 현재 사용자 인터페이스를 파싱하여 애플리케이션의 컨텍스트 또는 애플리케이션의 컨텍스트 정보 또는 애플리케이션의 현재 상태를 결정하게 할 수 있다. 애플리케이션(118)의 선언에 기초하여 애플리케이션의 상태 또는 컨텍스트를 결정하는 것 외에도, 디지털 어시스턴트 컴포넌트(106)는 (예를 들어, 애플리케이션 관리자 컴포넌트(114)를 통해) 애플리케이션(118)의 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스)를 파싱하여 애플리케이션의 상태를 결정할 수 있다. 애플리케이션(118)의 상태를 결정하는 것은 애플리케이션(118)이 수신할 수 있는 입력의 유형, 이용 가능한 입력에 대한 변경, 또는 애플리케이션(118)이 수행할 수 있는 액션 또는 기능의 유형을 결정하는 것을 지칭하거나 포함할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 변경의 표시에 응답하여 애플리케이션(118)의 현재 사용자 인터페이스를 파싱하여 애플리케이션(118)의 사용자 인터페이스 엘리먼트를 통해 제공된 하나 이상의 입력 필드를 식별할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 프로토콜(150)을 통해 전송된 선언에 의해 애플리케이션(118)에 의해 호출된 후 입력 오디오 신호(예를 들어, 제3 입력 오디오 신호)를 수신할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 선언된 하나 이상의 입력 필드에 기초하여 자연어 처리 기술을 사용하여 제3 입력 오디오 신호를 처리하여, 애플리케이션(118)의 상태 변경에 응답하여 애플리케이션(118)에 입력하기 위한 제3 입력 오디오 신호의 하나 이상의 제2 파라미터를 식별할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 애플리케이션이 비활성화되었다는 표시를 수신할 수 있다. 비활성화는 애플리케이션(118)이 종료되는 것, 닫히는 중, 비활성화되는 것, 꺼지는 것, 제거되는 것 또는 설치 해제되는 것, 대기 상태에 들어가는 것, 백그라운드 프로세스가 되는 것(예를 들어, 더 이상 포어그라운드에서 활발히 사용되지 않음), 또는 포어그라운드로 들어가는 또는 포그라운드 프로세스가 되는 다른 애플리케이션을 지칭할 수 있다. 애플리케이션(118)의 비활성화는 애플리케이션(118)이 현재 사용 중인 주 애플리케이션이 아니거나, 더 이상 주 애플리케이션이 컴퓨팅 디바이스(128)에서 사용되거나 실행되지 않음을 나타낼 수 있다.
디지털 어시스턴트 컴포넌트(106)는 수정된 자연어 처리 기술을 디폴트 자연어 처리 기술로 되돌릴 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션(118)의 비활성화에 응답하여 상기 수정된 NLP 기술(112) 또는 모델(110)을 디폴트 또는 초기 기술(112) 또는 모델(110)로 되돌릴 수 있다. 디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)이 디지털 어시스턴트 컴포넌트(106)에 선언한 기능에 기초하여 기술(112) 또는 모델(110)에 이루어진 수정을 자연어 처리 기술(112)(또는 모델(110))로부터 제거할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 NLP를 이전 상태 또는 디폴트 상태로 되돌릴 수 있다. 디지털 어시스턴트 컴포넌트(106)는 이루어진 수정 또는 조정을 삭제할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 수정된 기술(112) 또는 모델(110)을 비활성화할 수 있지만, 향후 사용을 위해 데이터 저장소(122)에 저장할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)이 비활성화되었기 때문에 애플리케이션(118)에 더 이상 입력을 제공하지 않는 후속 입력 오디오 신호에 대한 NLP를 용이하게 하기 위해 기술(112) 또는 모델(110)을 초기 상태 또는 디폴트 상태로 재설정할 수 있다. NLP를 재설정함으로써, 디지털 어시스턴트 컴포넌트(106)는 애플리케이션(118)에 의해 선언된 특정 기능에 대해 조정되거나 보정된 기술(112) 또는 모델(110)을 사용하지 않음으로써 오류가 있거나 부정확한 NLP를 방지하거나 줄일 수 있다. NLP는 애플리케이션(118)의 기능에 대한 특정 질의 또는 입력을 검출하도록 조정된 기술(112) 또는 모델(110)과 대조적으로, 질의 또는 입력을 일반적으로 검출하도록 조정된 기술(112) 또는 모델(110)을 사용하는 것으로 복귀할 수 있다.
디지털 어시스턴트 컴포넌트(106)는 컨텐츠 요청을 원격 데이터 처리 시스템(142)으로 전송할 수 있다. 디지털 어시스턴트 컴포넌트(106)는 액션 데이터 구조, 애플리케이션(118)에 의해 선언된 기능, 선언(120), 수정된 NLP 기술, 수정된 NLP 기술 또는 애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트를 사용하여제2 입력 오디오 신호에서 검출된 하나 이상의 파라미터에 기초하거나 이에 응답하여 컨텐츠 요청을 전송할 수 있다. 예를 들어, 요청은 애플리케이션(118)에 의해 선언된 기능, 선언(120), 수정된 NLP 기술, 수정된 NLP 기술 또는 애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트를 사용하여 제2 입력 오디오 신호에서 검출된 하나 이상의 파라미터에 관한 정보를 포함할 수 있다. 요청은 기능의 유형 또는 기능의 이름을 포함하거나 원격 데이터 처리 시스템(142)에 제공할 수 있다. 요청은 선언(120)을 포함하거나 원격 데이터 처리 시스템(142)에 제공할 수 있다. 요청은 NLP 기술에 적용된 가중치 또는 사용 중인 NLP 기술의 유형과 같이 NLP가 수정되는 방법의 표시를 포함하거나 원격 데이터 처리 시스템(142)에 제공할 수 있다. 요청은 수정된 NLP 처리 기술을 사용하여 제2 입력 오디오 신호에서 검출된 파라미터 또는 값에 관한 정보를 포함하거나 원격 데이터 처리 시스템(142)에 제공할 수 있다. 요청은 컨텐츠 아이템 슬롯과 같은 애플리케이션의 사용자 인터페이스 엘리먼트에 관한 정보(예를 들어, 컨텐츠 아이템이 시각적 디스플레이를 통해 제시되는 컨텐츠 아이템 슬롯의 크기 또는 위치, 또는 오디오 또는 비디오 컨텐츠 아이템의 시간 지속 시간과 같은 슬롯의 지속 시간)를 포함하거나 원격 데이터 처리 시스템(142)에 제공할 수 있다. 따라서, 정보에 기초하여 요청을 생성하는 것은 정보를 갖는 요청을 생성하는 것을 지칭하거나 포함할 수 있다. 일부 경우, 애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트에 기초하여 요청을 생성하는 것은 애플리케이션의 사용자 인터페이스 엘리먼트에서 사용 가능한 컨텐츠 슬롯을 식별하는 것에 응답하여 요청을 생성하는 것을 포함할 수 있다.
일부 경우, 애플리케이션(118)은 컨텐츠 요청을 생성하고 컨텐츠 요청을 원격 데이터 처리 시스템(142)에 직접 전송할 수 있다. 애플리케이션(118)은 액션 데이터 구조의 입력에 응답하여 컨텐츠 요청을 생성할 수 있다. 애플리케이션(118)은 컨텐츠 요청을 생성하고 원격 데이터 처리 시스템(142)으로 요청을 전송, 포워딩 또는 전달하기 위해 디지털 어시스턴트 컴포넌트(106)에 요청을 전송할 수 있다.
원격 데이터 처리 시스템(142)의 컨텐츠 선택기 컴포넌트(146)는 요청에 기초하거나 요청에 응답하여 컨텐츠 아이템(예를 들어, 디지털 컴포넌트 객체)을 선택할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 액션 데이터 구조, 애플리케이션(118)에 의해 선언된 기능, 선언(120), 수정된 NLP 기술, 또는 애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트에 기초하거나 응답하여 컨텐츠 아이템을 선택할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 실시간 컨텐츠 선택 프로세스에 액션 데이터 구조, 애플리케이션(118)에 의해 선언된 기능, 선언(120), 수정된 NLP 기술, 수정된 NLP 기술 또는 애플리케이션의 업데이트된 사용자 인터페이스를 사용하여 입력 오디오 신호에서 검출된 파라미터 또는 값과 관련된 정보를 입력할 수 있다. 컨텐츠 선택기 컴포넌트(146)는 액션 데이터 구조, 애플리케이션, 애플리케이션(118)에 의해 선언된 기능, 선언(120), 수정된 NLP 기술, 수정된 NLP 기술 파라미터를 사용하여 입력 오디오 신호에서 검출된 파라미터 또는 값이나 수정된 NLP 기술 파라미터를 사용하여 입력 오디오 신호에서 검출된 파라미터 또는 값, 또는 애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트와 연관된 정보와 관련되거나 매칭하는 컨텐츠 아이템을 선택할 수 있다. 예를 들어, 애플리케이션이 신발을 판매하는 전자상거래 애플리케이션인 경우, 컨텐츠 선택기 컴포넌트(146)는 운동화 유형의 컨텐츠 아이템을 선택할 수 있다. 다른 예에서, 수정된 입력 오디오 신호를 사용하여 검출된 제2 입력 오디오 신호가 레스토랑의 유형 또는 레스토랑의 테이블 유형에 대한 파라미터 또는 값을 포함하는 경우, 원격 데이터 처리 시스템(142)은 레스토랑과 관련된 컨텐츠 아이템(예를 들어, 레스토랑용 쿠폰)을 선택할 수 있다.
원격 데이터 처리 시스템(142)은 선택된 컨텐츠 아이템을 프리젠테이션을 위해 디지털 어시스턴트 컴포넌트(106)에 제공할 수 있다. 원격 데이터 처리 시스템(142)은 선택된 컨텐츠 아이템을 프리젠테이션을 위해 애플리케이션(118)에 제공할 수 있다. 원격 데이터 처리 시스템(142)은 선택된 컨텐츠 아이템을 디지털 어시스턴트 컴포넌트(106)에 제공하여 프리젠테이션을 위해 애플리케이션(118)에 제공할 수 있다. 컨텐츠 아이템은 시각적 컨텐츠 슬롯 또는 오디오 출력에서와 같이 애플리케이션(118)의 사용자 인터페이스를 통해 제시될 수 있다.
디지털 어시스턴트 컴포넌트(106)는 컨텐츠 아이템을 애플리케이션(118)과 별도로 또는 독립적으로 제시할 수 있다. 예를 들어, 디지털 어시스턴트 컴포넌트(106)는 컴퓨팅 디바이스(128)의 디스플레이 디바이스(134)를 통한 디스플레이를 위한 팝업 창 또는 배너 컨텐츠와 같은 별도의 사용자 인터페이스를 호출할 수 있다. 일부 경우, 디지털 어시스턴트 컴포넌트(106)는 오디오 출력으로서 컨텐츠 아이템을 제공할 수 있다. 오디오 출력은 애플리케이션(118)의 오디오 출력 이전에, 도중에, 또는 이후에 제시될 수 있다. 애플리케이션(118)이 오디오 출력을 제공하지 않는 경우, 디지털 어시스턴트 컴포넌트(106)는 애플리케이션에 의해 사용되는 인터페이스와 독립적인 오디오 출력을 통해 컨텐츠 아이템을 제공할 수 있다. 따라서, 데이터 처리 시스템(102)은 디지털 어시스턴트 컴포넌트(106)(예를 들어, 오디오 인터페이스) 또는 애플리케이션(118)(예를 들어, 그래픽 사용자 인터페이스)의 사용자 인터페이스를 통해 컨텐츠 아이템을 제시할 수 있다.
도 2는 애플리케이션과 동적으로 인터페이스하기 위한 시스템(100)의 동작(200)의 예시이다. 시스템은 도 1에 도시된 시스템(100) 또는 도 4에 도시된 시스템(400)의 하나 이상의 컴포넌트를 포함할 수 있다. 동작(200)에서, ACT(202)에서, 전처리기(130)(예를 들어, 컴퓨팅 디바이스(128)에 의해 실행됨)는 제1 음성 질의를 수신하거나 검출할 수 있다. 제1 음성 질의는 입력 오디오 신호를 포함할 수 있다. 전처리기(130)는 트리거 키워드, 핫워드, 웨이크업 단어, 경고 또는 디지털 어시스턴트 컴포넌트(106)를 호출하는 다른 표시를 검출할 수 있다. 전처리기(130)는 웨이크업 단어를 검출하는 것에 응답하여, ACT(204)에서 디지털 어시스턴트 컴포넌트(106)를 호출할 수 있다.
ACT(206)에서, 디지털 어시스턴트 컴포넌트(106)의 NLP 컴포넌트(108)는 제1 음성 질의를 파싱하여 애플리케이션을 식별할 수 있다. NLP 컴포넌트(108)는 하나 이상의 NLP 기술 또는 모델을 사용하여 애플리케이션을 식별할 수 있다. NLP 컴포넌트(108)는 ACT(208)에서 애플리케이션의 표시를 애플리케이션 관리자 컴포넌트(114)에 제공할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)이 컴퓨팅 디바이스(128)에 설치되어 있는지 또는 컴퓨팅 디바이스(128)에 액세스 가능한지 결정할 수 있다. 애플리케이션 관리자(114)는 ACT(210)에서 애플리케이션(118)을 시작하거나 활성화할 수 있다.
ACT(212)에서, 애플리케이션(118)은 애플리케이션(118)의 상태를 식별할 수 있다. 예를 들어, 애플리케이션(118)은 현재 사용자 인터페이스, 그래픽 사용자 인터페이스, 또는 애플리케이션(118)이 수행할 수 있는 기능, 또는 사용자 인터페이스의 입력 필드를 식별할 수 있다. 애플리케이션(118)은 프로토콜(150)을 통해 디지털 어시스턴트 컴포넌트(106)에 ACT(214)에서 애플리케이션(118)의 상태의 선언을 제공할 수 있다.
ACT(216)에서, NLP 컴포넌트(108)는 NLP의 선언 기반 실시간 업데이트를 수행할 수 있다. NLP의 선언 기반 실시간 업데이트는 NLP 컴포넌트(108)가 애플리케이션(118)에 의해 선언된 기능과 호환되는 후속 입력 오디오 신호에서 입력 파라미터를 검출할 수 있는 정확도 및 신뢰성을 개선하기 위해 NLP 기술(112) 또는 모델(110)을 업데이트, 수정, 조정 또는 보정하는 것을 지칭할 수 있다.
ACT(218)에서, 디지털 어시스턴트 컴포넌트(106)는 제2 음성 질의(218)를 수신할 수 있다. 전처리기(130)는 제2 음성 질의를 수신하고 제2 음성 질의를 디지털 어시스턴트 컴포넌트(106)에 제공할 수 있다. 일부 경우, 전처리기(130)에 의해 이전에 호출된 디지털 어시스턴트 컴포넌트(106)는 활성(active) 상태로 유지될 수 있고 ACT(220)에서 제2 음성 질의를 직접 수신하여 파싱할 수 있다. NLP 컴포넌트(108)는 ACT(220)에서 활성화되거나 시작된 애플리케이션(118)에 대한 파라미터들을 검출할 수 있다. ACT(222)에서, 디지털 어시스턴트 컴포넌트(106)는 검출된 파라미터들을 다이렉트 액션 API(116)에 제공할 수 있다. ACT(224)에서, 다이렉트 액션 API(116)는 템플릿 또는 다른 기술을 사용하여 입력 파라미터들로 액션 데이터 구조를 생성할 수 있다.
ACT(226)에서, 다이렉트 액션 API(116)는 애플리케이션(118)으로의 입력을 위한 액션 데이터 구조를 제공할 수 있다. ACT(228)에서, 애플리케이션(118)은 액션 데이터 구조를 실행할 수 있다. 애플리케이션(118)은 액션을 수행하거나 수신된 액션 데이터 구조를 처리하여 애플리케이션의 상태를 변경 또는 업데이트할 수 있다. 액션 데이터 구조는 애플리케이션(118)의 상태 변경을 야기할 수 있다. ACT(230)에서, 애플리케이션(118)은 상태를 업데이트한 다음 업데이트 상태를 선언할 수 있다. 애플리케이션(118)은 현재 상태 정보 또는 컨텍스트를 디지털 어시스턴트 컴포넌트(106)에 제공하기 위해 애플리케이션의 상태를 재선언할 수 있다. ACT(232)에서 애플리케이션은 업데이트된 상태에 해당하는 선언을 프로토콜을 통해 제공할 수 있다. ACT(234)에서, NLP 컴포넌트(108)는 ACT(232)로부터 선언을 수신하여 NLP 기술(112) 또는 모델(110)의 선언 기반 실시간 업데이트를 수행할 수 있다.
애플리케이션(118)은 ACT(236)에서 종료될 수 있다. 애플리케이션(118)은 ACT(236)에서 비활성화되거나 대기 상태에 들어갈 수 있다. 사용자는 ACT(236)에서 애플리케이션(118)을 닫거나 최소화하거나 숨길 수 있다. 애플리케이션(118)(또는 애플리케이션 관리자 컴포넌트(114))은 ACT(238)에서 비활성화 또는 종료의 표시를 제공할 수 있다. 애플리케이션 관리자 컴포넌트(114)는 애플리케이션(118)이 비활성화되었음을 검출할 수 있다. ACT(240)에서, NLP 컴포넌트(108)는 NLP 기술(112) 또는 모델(110)을 디폴트 상태로 재설정하여, 애플리케이션(118)의 종료 후에 수신된 입력 오디오 신호를 처리하기 위해 애플리케이션(118)의 선언된 기능에 대해 수정된 NLP를 사용하지 않도록 할 수 있다.
도 3은 애플리케이션과 동적으로 인터페이스하기 위한 예시적인 방법의 예시이다. 방법(300)은 예를 들어 컴퓨팅 디바이스, 데이터 처리 시스템, 디지털 어시스턴트 컴포넌트, NLP 컴포넌트, 다이렉트 액션 API 또는 애플리케이션 관리자 컴포넌트를 포함하여 시스템(100) 또는 시스템(400)의 하나 이상의 컴포넌트, 시스템 또는 엘리먼트에 의해 수행될 수 있다. 방법(300)은 302에서 입력 오디오 신호를 수신하는 단계를 포함할 수 있다. 입력 오디오 신호는 데이터 처리 시스템의 인터페이스를 통해 수신될 수 있다. 입력 오디오 신호는 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출될 수 있다. 입력 오디오 신호는 컴퓨팅 디바이스의 사용자로부터의 음성 질의, 명령 또는 커맨드를 포함할 수 있다.
ACT(304)에서, 데이터 처리 시스템은 NLP를 사용하여 입력 오디오 신호를 처리하여 애플리케이션을 식별할 수 있다. 데이터 처리 시스템은 입력 오디오 신호에서 애플리케이션 기반 용어, 키워드 또는 기타 정보를 식별할 수 있다. 결정 블록(308)에서, 데이터 처리 시스템은 애플리케이션이 컴퓨팅 디바이스에 설치되어 있는지 아니면 컴퓨팅 디바이스에 액세스 가능한지 여부를 결정할 수 있다. 데이터 처리 시스템은 컴퓨팅 디바이스(또는 그의 계정)가 애플리케이션에 액세스하거나 애플리케이션을 사용하도록 승인되었는지 여부를 결정할 수 있다. 결정 블록(308)에서, 데이터 처리 시스템이 애플리케이션이 승인되지 않은 것으로 결정되면, 데이터 처리 시스템은 경고(alert)를 제공하기 위해 ACT(310)로 진행할 수 있다. 경고에는 애플리케이션을 다운로드 및 설치하라는 표시, 애플리케이션을 사용할 수 없다는 표시 또는 다른 요청을 하라는 표시가 포함될 수 있다.
결정 블록(308)에서, 데이터 처리 시스템이 애플리케이션이 설치된 것으로 결정하면, 데이터 처리 시스템은 ACT(306)로 진행하여 애플리케이션을 활성화할 수 있다. 데이터 처리 시스템은 애플리케이션을 시작, 호출 또는 포그라운드로 가져올 수 있다. 일부 경우, 데이터 처리 시스템은 애플리케이션이 컴퓨팅 디바이스의 디스플레이 디바이스에 디스플레이하기 위한 그래픽 사용자 인터페이스 엘리먼트를 제시하지 않을 수 있는 헤드리스(headless) 상태에서 애플리케이션을 실행할 수 있다. 예를 들어, 데이터 처리 시스템은 음성 전용 모드에서 또는 오디오 입력 및 오디오 출력을 통한 인터페이스를 위해 애플리케이션을 실행할 수 있다. 일부 경우, 데이터 처리 시스템은 하이브리드 모드에서 애플리케이션을 활성화할 수 있으며, 여기서 애플리케이션은 디지털 어시스턴트 컴포넌트를 통해 음성 기반 인터페이스를 통하여 입력을 수신하면서 그래픽 사용자 인터페이스를 통해 출력을 제공할 수 있다. ACT(306)에서 애플리케이션을 활성화하면 애플리케이션으로 하여금 애플리케이션의 현재 상태를 선언하게 할 수 있다.
ACT(312)에서, 데이터 처리 시스템에 의해 실행되는 디지털 어시스턴트 컴포넌트는 활성화된 애플리케이션으로부터 선언을 수신하고 NLP를 수정할 수 있다. 디지털 어시스턴트 컴포넌트는 NLP 기술 또는 모델의 선언 기반 실시간 업데이트를 수행할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션으로부터 수신된 선언들에 응답하여 NLP를 업데이트할 수 있다.
ACT(314)에서, 데이터 처리 시스템은 제2 입력 오디오 신호를 수신할 수 있다. 디지털 어시스턴트 컴포넌트는 음성 입력과 같은 컴퓨팅 디바이스의 사용자로부터 제2 입력 오디오 신호를 수신할 수 있다. 제2 입력 오디오 신호는 제1 입력 오디오 신호의 연속일 수 있다. ACT(316)에서, 데이터 처리 시스템은 업데이트된 NLP를 사용하여 제2 입력 오디오 신호를 처리하여, 애플리케이션과 호환 가능한 입력 파라미터(예를 들어, 애플리케이션의 현재 상태 또는 애플리케이션 기능의 입력 필드)를 검출할 수 있다. 디지털 어시스턴트 컴포넌트는 하나 이상의 파라미터와 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스 상의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정할 수 있다.
ACT(318)에서, 디지털 어시스턴트 컴포넌트는 검출된 입력 파라미터 또는 요청에 기초하여 액션 데이터 구조를 생성할 수 있다. 디지털 어시스턴트 컴포넌트는 입력 파라미터가 애플리케이션의 기능 또는 상태와 호환 가능하다는 결정에 응답하여 액션 데이터 구조를 생성할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션으로의 입력을 위해 액션 데이터 구조를 제공할 수 있다. 애플리케이션은 액션 데이터 구조를 실행할 수 있다.
ACT(320)에서, 디지털 어시스턴트 컴포넌트는 액션 데이터 구조의 실행(또는 부분 실행)에 응답하여 애플리케이션의 새로운 상태에 기초하여 업데이트된 선언을 수신할 수 있다. 디지털 어시스턴트 컴포넌트는 새로운 선언에 기초하여 NLP를 업데이트할 수 있다.
결정 블록(322)에서, 데이터 처리 시스템은 3P 컨텐츠를 선택할지 여부를 결정할 수 있다. 3P 컨텐츠는 컨텐츠 아이템, 이미지, 비디오 컨텐츠 아이템 또는 오디오 컨텐츠 아이템과 같은 디지털 컴포넌트 객체를 지칭할 수 있다. 디지털 컴포넌트 객체는 광고를 지칭하거나 포함할 수 있다. 디지털 어시스턴트 컴포넌트는 정책, 선호도 또는 구성에 기초하여 3P 컨텐츠를 선택할지 여부를 결정할 수 있다. 예를 들어, 애플리케이션은 선언을 통해 컨텐츠 슬롯이 애플리케이션에서 이용가능하고 3P 컨텐츠 아이템에 대해 구성된다는 표시를 제공할 수 있다. 선언은 컨텐츠 슬롯의 유형(예를 들어, 오디오 컨텐츠 슬롯, 텍스트 컨텐츠 슬롯, 이미지 컨텐츠 슬롯, 비디오 컨텐츠 슬롯, 팝업 창 컨텐츠 슬롯 또는 배너 컨텐츠 슬롯)을 포함할 수 있다. 일부 경우, 컴퓨팅 디바이스는 3P 컨텐츠가 제공되도록 허용할지 여부에 대한 프로파일 또는 선호도를 포함할 수 있다. 경우에 따라, 디지털 어시스턴트 컴포넌트는 기능의 유형 또는 애플리케이션의 현재 상태에 기초하여 3P 컨텐츠를 선택할지 여부를 결정할 수 있다. 예를 들어, 애플리케이션 기능이 내비게이션과 관련된 경우, 디지털 어시스턴트 컴포넌트는 컨텐츠를 선택하지 않기로 결정할 수 있다. 기능이 레스토랑 예약과 관련된 경우, 디지털 어시스턴트 컴포넌트는 3P 컨텐츠를 선택하기로 결정할 수 있다.
디지털 어시스턴트 컴포넌트가 결정 블록(322)에서 3P 컨텐츠를 선택하기로 결정하면, 디지털 어시스턴트는 ACT(324)로 진행하여 3P 컨텐츠를 선택 및 제공할 수 있다. 디지털 어시스턴트 컴포넌트는 컨텐츠 선택기 컴포넌트를 갖는 원격 데이터 처리 시스템으로 컨텐츠 요청을 전송할 수 있다. 컨텐츠 선택기 컴포넌트는 실시간 컨텐츠 선택 프로세스를 용이하게 하는 정보와 함께 그 요청을 수신할 수 있다. 컨텐츠 선택기 컴포넌트는 선택된 컨텐츠 아이템을 디지털 어시스턴트 컴포넌트에 제공할 수 있다. 디지털 어시스턴트 컴포넌트는 컨텐츠 아이템을 수신하고 컨텐츠 아이템을 제시할 수 있거나(예를 들어, 오디오 컨텐츠 아이템을 재생하거나), 애플리케이션을 통해(예를 들어, 애플리케이션의 오디오 또는 시각적 컨텐츠 슬롯을 통해) 프레젠테이션하기 위해 애플리케이션(118)에 컨텐츠 아이템을 제공할 수 있다.
디지털 어시스턴트는 (예를 들어, ACT(324) 이후에 또는 결정 블록(322)이 부정적인 결과를 초래하는 경우, 또는 ACT(324) 또는 결정 블록(322)과 독립적으로) 결정 블록(326)에서 디폴트 상태로 NLP를 재설정할지 여부를 결정할 수 있다. 디지털 어시스턴트는 애플리케이션이 활성인지, 비활성화되었는지, 종료되었는지, 대기 상태인지 또는 제거되었는지 여부와 같은 애플리케이션의 상태에 기초하여 NLP를 재설정할지 여부를 결정할 수 있다. 디지털 어시스턴트가 NLP를 재설정하지 않기로 결정하는 경우, 디지털 어시스턴트 컴포넌트는 ACT(328)로 진행하여 NLP를 유지할 수 있다. 그러나, 결정 블록(326)에서 디지털 어시스턴트 컴포넌트가 NLP를 재설정하기로 결정하는 경우, 디지털 어시스턴트 컴포넌트는 ACT(330)로 진행하여 NLP에 대한 업데이트를 취소하여 NLP를 디폴트 또는 초기 상태(예를 들어, ACT(312)의 선언 기반 실시간 업데이트 이전)로 재설정할 수 있다.
따라서, 본 기술 솔루션은 LP 처리를 개선하여 음성 기반 컴퓨팅 환경에서 수신된 요청의 파라미터들에 대한 값을 검출하고 검출된 값들을 애플리케이션로의 입력을 위해 제공할 수 있다. 디지털 어시스턴트 컴포넌트는 애플리케이션으로부터 선언을 수신하여 파라미터 및 파라미터에 대한 값 유형을 식별한 다음 검출된 유형을 사용하여 음성 입력에 대한 NLP 처리를 수행할 수 있다. 예를 들어, 파라미터 또는 값의 유형은 "시간", "위치", 또는 "노점(booth)", "원탁" 및 "창 뷰"와 같은 관련 애플리케이션 정의 값이 있는 TableType과 같은 애플리케이션 정의 파라미터 유형일 수 있다. 다른 예에서, 파라미터 유형은 사람이나 지리적 영역의 이름이 아니라 음성 입력에서 레스토랑 이름을 식별하는 디지털 어시스턴트 컴포넌트를 용이하게 할 수 있는 레스토랑 이름일 수 있다.
도 4는 예시적인 컴퓨터 시스템(400)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(400)는 시스템(100), 또는 데이터 처리 시스템(102)과 같은 그의 컴포넌트를 포함하거나 구현하는데 사용될 수 있다. 컴퓨팅 시스템(400)은 정보를 전달하기 위한 버스(405) 또는 다른 통신 컴포넌트, 및 정보를 처리하기 위해 버스(405)에 연결된 프로세서(410) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(400)은 또한 정보를 처리하기 위해 버스에 연결된 하나 이상의 프로세서(410) 또는 처리 회로를 포함할 수 있다. 컴퓨팅 시스템(400)은 또한 정보를 저장하기 위해 버스(405)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(415), 및 프로세서(410)에 의해 실행될 명령들을 포함한다. 메인 메모리(415)는 데이터 저장소(122)이거나 이를 포함할 수 있다. 메인 메모리(415)는 또한 프로세서(410)에 의한 명령들의 실행 동안 위치 정보, 임시 변수, 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(400)은 프로세서(410)에 대한 정적 정보 및 명령을 저장하기 위해 버스(405)에 연결된 판독 전용 메모리(ROM)(420) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 상태 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(425)는 정보 및 명령을 지속적으로 저장하기 위해 버스(405)에 연결될 수 있다. 저장 디바이스(425)는 데이터 저장소(122)를 포함하거나 그의 일부일 수 있다.
컴퓨팅 시스템(400)은 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 능동 매트릭스 디스플레이와 같은 디스플레이(435)에 버스(405)를 통해연결될 수 있다. 영숫자 및 기타 키를 포함하는 키보드와 같은 입력 디바이스(430)는 정보 및 커맨드 선택을 프로세서(410)에 전달하기 위해 버스(405)에 연결될 수 있다. 입력 디바이스(430)는 터치 스크린 디스플레이(435)를 포함할 수 있다. 입력 디바이스(430)는 또한 방향 정보 및 커맨드 선택을 프로세서(410)에 전달하고 디스플레이(435) 상의 커서 이동을 제어하기 위한 마우스, 트랙볼, 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다. 디스플레이(435)는 예를 들어 데이터 처리 시스템(102), 클라이언트 컴퓨팅 디바이스(128) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 설명된 프로세스, 시스템 및 방법은 메인 메모리(415)에 포함된 명령 배열을 실행하는 프로세서(410)에 응답하여 컴퓨팅 시스템(400)에 의해 구현될 수 있다. 이러한 명령은 저장 디바이스(425)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(415)로 판독될 수 있다. 메인 메모리(415)에 포함된 명령 배열의 실행은 컴퓨팅 시스템(400)으로 하여금 본 명세서에 설명된 예시적인 프로세스를 수행하게 한다. 다중 처리 배열의 하나 이상의 프로세서는 또한 메인 메모리(415)에 포함된 명령들을 실행하기 위해 사용될 수 있다. 하드 와이어드 회로는 본 명세서에 설명된 시스템 및 방법과 함께 소프트웨어 명령 대신에 또는 이와 함께 사용될 수 있다. 본 명세서에 설명된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 특정 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 4에서 설명되었지만, 본 명세서에서 설명된 동작들을 포함하는 주제는 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어(본 명세서에 개시된 구조 및 그 구조적 등가물 포함), 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 설명된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 개인 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 사용자의 선호도 또는 사용자의 위치에 관한 정보)를 수집할 수 있는 프로그램 또는 기능을 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠 서버 또는 기타 데이터 처리 시스템으로부터 컨텐츠를 수신할지 여부 또는 수신 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식으로 익명화될 수 있으므로 파라미터를 생성할 때 개인 식별 정보가 제거된다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 확인될 수 없도록 익명화되거나, 사용자의 지리적 위치는 사용자의 특정 위치가 확인될 수 없도록 위치 정보가 획득된 곳으로 일반화될 수 있다(예를 들어, 도시, 우편 번호 또는 주 수준). 따라서, 사용자는 자신에 대한 정보를 수집하고 컨텐츠 서버에서 사용하는 방법을 제어할 수 있다.
본 명세서에서 설명하는 주제 및 동작들은 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제는 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체 상에 인코딩된, 하나 이상의 컴퓨터 프로그램, 예를 들어, 컴퓨터 프로그램 명령의 하나 이상의 회로로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령들은 인공적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하도록 생성된 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)이거나 이에 포함될 수 있다. 본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능한 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 처리 장치"라는 용어는 예로서 프로그램 가능한 프로세서, 컴퓨터, 시스템 온 칩(system on chip), 또는 다수의 것들 또는 이들의 조합을 포함하여 데이터를 처리하기 위한 다양한 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 디지털 어시스턴트 컴포넌트(106), 다이렉트 액션 API(116), 인터페이스(104), NLP 컴포넌트(108) 및 다른 데이터 처리 시스템(102) 컴포넌트는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다. 디지털 어시스턴트 서버(144) 및 컨텐츠 선택기 컴포넌트(146)는 하나 이상의 데이터 처리 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있다. 컴퓨터 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 하나 이상의 컴퓨터 프로그램(예를 들어, 데이터 처리 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행되어, 입력 데이터에 대해 동작하여 출력을 생성함으로써 동작들을 수행할 수 있다. 프로세스 및 논리 흐름은 또한 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)와 같은 특수 목적 논리 회로에 의해 수행될 수 있고 장치는 또한 이들로 구현될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
본 명세서에 설명된 주제는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나, 프론트엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 기술된 주제의 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터), 또는 하나 이상의 백엔드, 미들웨어 또는 프론트 엔드 컨포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 상호 네트워크(예를 들어, 인터넷) 및 피어 투 피어 네트워크(예를 들어, 애그 혹 피어- 투피어 네트워크)를 포함할 수 있다.
시스템(100) 또는 시스템(400)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크(예를 들어, 네트워크(105))를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 구현에서, 서버는 데이터(예를 들어, 디지털 컴포넌트를 나타내는 데이터 패킷)를 (예를 들어, 클라이언트 디바이스에 데이터를 디스플레이하고 클라이언트 디바이스와 상호 작용하는 사용자로부터 사용자 입력을 수신하기 위해) 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 컴퓨팅 디바이스(128) 또는 3P 컨텐츠 제공자 디바이스(140)의 디지털 어시스턴트 컴포넌트(106)로부터 디지털 어시스턴트 서버(144)에 의해 수신된다).
도면에 특정 순서로 동작들이 도시되어 있지만, 이러한 동작들은 도시된 특정 순서 또는 순차적인 순서로 수행될 필요는 없으며, 도시된 모든 동작이 수행될 필요도 없다. 본 명세서에 설명된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트의 분리는 모든 구현에서 분리를 필요로 하지 않으며, 설명된 프로그램 컴포넌트는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(108) 또는 다이렉트 액션 API(116)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 처리 회로를 갖는 논리 디바이스일 수 있거나, 데이터 처리 시스템(102)의 하나 이상의 프로세서에 의해 실행될 수 있다.
이제 일부 예시적인 구현을 설명했지만, 전술한 내용은 예시적인 것이며 제한적이지 않다는 것이 명백하다. 특히, 본 명세서에 제시된 많은 예가 방법 동작(act) 또는 시스템 엘리먼트의 특정 조합을 포함하지만, 이들 동작 및 해당 엘리먼트는 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현과 관련하여 논의된 동작, 엘리먼트 및 기능은 다른 구현 또는 구현에서 유사한 역할에서 제외되도록 의도되지 않는다.
본 명세서에서 사용된 어구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안 된다. "포함하는(including)", "포함하는(comprising)", "갖는(having)" "포함하는(containing), "포함하는(involving)", "~로 특징지어진 (characterized by)", "~인 것을 특징으로 하는(characterized in that" 및 이의 변형의 사용은 이후에 나열된 아이템, 그의 등가물, 추가 아이템은 물론 그 이후에 나열된 아이템으로 구성된 대체 구현을 포괄하는 의미이다. 일 구현에서, 본 명세서에 설명된 시스템 및 방법은 설명된 엘리먼트, 동작 또는 컴포넌트 중 하나 이상, 또는 모두의 각각의 조합으로 구성된다.
본 명세서에서 단수로 언급된 시스템 및 방법의 구현 또는 엘리먼트 또는 동작(act)에 대한 임의의 언급은 또한 복수의 이러한 엘리먼트를 포함하는 구현을 포함할 수 있고, 본 명세서에서 임의의 구현 또는 엘리먼트 또는 동작에 대한 복수의 언급은 또한 단일 엘리먼트를 포함하는 구현을 포함할 수 있다. 단수 또는 복수 형태의 언급은 현재 개시된 시스템 또는 방법, 그의 컴포넌트, 동작 또는 엘리먼트를 단일 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초하는 임의의 동작 또는 엘리먼트에 대한 언급은 그 동작 또는 엘리먼트가 정보, 동작 또는 엘리먼트에 적어도 부분적으로 기초하는 구현을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실시예와 결합될 수 있으며, "구현", "일부 구현", "하나의 구현" 등에 대한 언급은 반드시 상호 배타적이지 않으며 특정 구현과 관련하여 설명된 특징, 구조, 또는 특성이 적어도 하나의 구현 또는 실시예에 포함될 수 있음을 나타내기 위한 것이다. 본 명세서에 사용된 그러한 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 본 명세서에 개시된 양태 및 구현과 일치하는 임의의 방식으로 포괄적으로 또는 배타적으로 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 언급은 "또는"을 사용하여 설명된 모든 용어가 단일, 하나 이상 및 설명된 모든 용어 중 임의의 것을 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 용어의 결합 목록 중 적어도 하나에 대한 언급은 단일, 하나 이상, 및 설명된 모든 용어 중 임의의 것을 나타내기 위해 포괄적 OR로 해석될 수 있다. 예를 들어, "'A'와 'B' 중 적어도 하나"에 대한 언급은 'A'만 포함하고 'B'만 포함할 수 있음은 물론 'A'와 'B'를 모두 포함할 수 있다. "포함하는" 또는 기타 공개 용어와 함께 사용되는 이러한 언급에는 추가 아이템이 포함될 수 있다.
도면의 기술적 특징, 상세한 설명 또는 청구범위 뒤에 참조 부호를 붙인 경우에는 도면, 상세한 설명 및 청구범위의 명료성을 높이기 위해 참조 부호를 포함한다. 따라서, 참조 부호나 참조 부호의 부재는 청구항 엘리먼트의 범위를 제한하는 효과가 없다.
본 명세서에 설명된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 예를 들어, 3P 디지털 컨텐츠 제공자 디바이스(140)와 같은 3P 또는 제3자로 기술된 디바이스, 제품 또는 서비스는 부분적으로 또는 전체적으로 당사자(제1자) 디바이스, 제품 또는 서비스이거나 이를 포함할 수 있고, 데이터 처리 시스템(102), 디지털 어시스턴트 서버(144) 또는 기타 컴포넌트와 관련된 엔티티에 의해 공통으로 소유될 수 있다. 전술한 구현은 설명된 시스템 및 방법을 제한하는 것이 아니라 예시적이다. 따라서 본 명세서에 기재된 시스템 및 방법의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 표시되며, 청구 범위의 등가의 의미 및 범위 내에서 발생하는 변경이 여기에 포함된다.

Claims (40)

  1. 애플리케이션과 인터페이스하는 시스템으로서,
    하나 이상의 프로세서 및 메모리를 포함하는 클라이언트 컴퓨팅 디바이스에 의해 실행되는 디지털 어시스턴트 컴포넌트와;
    클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제1 입력 오디오 신호를 수신하고, 그리고
    자연어 처리 기술을 통해, 애플리케이션의 표시를 식별하기 위해 제1 입력 오디오 신호를 처리하는,
    디지털 어시스턴트 컴포넌트에 의해 실행되는 자연어 프로세서 컴포넌트와:
    표시에 응답하여, 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하고 애플리케이션이 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 그 애플리케이션이 수행하도록 구성된 기능을 선언하게 하는 디지털 어시스턴트 컴포넌트의 애플리케이션 관리자 컴포넌트와;
    상기 자연어 프로세서 컴포넌트는,
    애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하고,
    클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하고,
    수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하도록 제2 입력 오디오 신호를 처리하고, 그리고
    하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스 상의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정하며; 그리고
    호환성의 결정에 응답하여 하나 이상의 파라미터에 기초하여, 애플리케이션에 대한 액션 데이터 구조를 생성하고, 그리고
    애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 프로토콜을 통해 액션 데이터 구조를 애플리케이션에 입력하는,
    디지털 어시스턴트 컴포넌트에 의해 실행되는 다이렉트 액션 API를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  2. 제1항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    기능에 기초하여 모델을 업데이트하고; 그리고
    업데이트된 모델을 자연어 처리 기술에 제공하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  3. 제1항 또는 제2항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션의 활성화 이후에 애플리케이션에 의해 선언된 기능에 기초하여, 기능에 근거하여 수정되지 않은 자연어 처리 기술에 비해 하나 이상의 파라미터의 검출 가능성을 증가시키기 위해 자연어 처리 기술을 수정하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  4. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    프로토콜을 통해 애플리케이션에 의해 선언된 상태 정보를 수신하고; 그리고
    제2 입력 오디오 신호의 실시간 자연어 처리를 수행하여 하나 이상의 파라미터를 식별하기 위해 상태 정보를 사용하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  5. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    프로토콜을 통해 애플리케이션에 의해 선언된 상태 정보를 수신하고; 그리고
    수정된 자연어 처리 기술을 통해, 요청을 식별하기 위해 상태 정보에 제2 입력 오디오 신호를 매핑하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  6. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    액션 데이터 구조를 애플리케이션에 입력한 후, 애플리케이션의 상태 변경의 표시를 수신하고;
    상태 변경의 표시에 응답하여, 애플리케이션에 의해 선언된 기능에 응답하여 이전에 수정된 자연어 처리 기술을 수정하고;
    제3 입력 오디오 신호를 수신하고; 그리고
    상태 변경의 표시에 응답하여 수정된 자연어 처리 기술을 통해, 하나 이상의 제2 파라미터를 식별하기 위해 제3 입력 오디오 신호를 처리하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  7. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션으로부터 프로토콜을 통해, 애플리케이션의 상태 변경의 표시를 수신하고, 상기 상태 변경의 표시는 디지털 어시스턴트를 호출하고;
    애플리케이션의 사용자 인터페이스 엘리먼트를 통해 제공된 하나 이상의 입력 필드를 식별하기 위해 변경의 표시에 응답하여 애플리케이션의 현재 사용자 인터페이스를 파싱하고;
    제3 입력 오디오 신호를 수신하고; 그리고
    애플리케이션의 상태 변경에 응답하여 애플리케이션에 입력하기 위한 제3 입력 오디오 신호의 하나 이상의 제2 파라미터를 식별하기 위해 하나 이상의 입력 필드에 기초한 자연어 처리 기술을 사용하여 제3 입력 오디오 신호를 처리하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  8. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트는,
    애플리케이션이 클라이언트 컴퓨팅 디바이스에 설치되어 있는지 결정하기 위해 클라이언트 컴퓨팅 디바이스의 인덱스에서 조회(lookup)를 수행하고; 그리고
    애플리케이션이 클라이언트 컴퓨팅 디바이스에 설치되어 있다는 결정에 응답하여, 애플리케이션을 활성화하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  9. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트는,
    애플리케이션이 비활성화되었다는 표시를 수신하고; 그리고
    수정된 자연어 처리 기술을 디폴트 자연어 처리 기술로 되돌리는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  10. 선행하는 항들 중 어느 한 항에 있어서,
    디지털 어시스턴트는,
    애플리케이션이 비활성화되었다는 표시를 수신하고; 그리고
    자연어 처리 기술로부터, 기능에 기초한 수정 사항을 제거하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  11. 애플리케이션과 인터페이스하는 방법으로서,
    클라이언트 컴퓨팅 디바이스의 하나 이상의 프로세서에 의해 실행되는 디지털 어시스턴트 컴포넌트에 의해, 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제1 입력 오디오 신호를 수신하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 자연어 처리 기술을 사용하여, 애플리케이션의 표시를 식별하기 위해 제1 입력 오디오 신호를 처리하는 단계;
    표시에 응답하여 디지털 어시스턴트 컴포넌트에 의해, 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하고 애플리케이션이 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 그 애플리케이션이 수행하도록 구성된 기능을 선언하게 하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 수정된 자연어 처리 기술을 사용하여, 하나 이상의 파라미터를 검출하도록 제2 입력 오디오 신호를 처리하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 호환성의 결정에 응답하여, 하나 이상의 파라미터에 기초하여 애플리케이션에 대한 액션 데이터 구조를 생성하는 단계; 및
    디지털 어시스턴트 컴포넌트에 의해, 애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 액션 데이터 구조를 프로토콜을 통해 애플리케이션에 입력하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  12. 제11항에 있어서,
    기능에 기초하여 모델을 업데이트하는 단계; 및
    업데이트된 모델을 자연어 처리 기술에 제공하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  13. 제11항 또는 제12항에 있어서,
    애플리케이션의 활성화 이후에 애플리케이션에 의해 선언된 기능에 기초하여, 기능에 기반하여 수정되지 않은 자연어 처리 기술에 비해 하나 이상의 파라미터의 검출 가능성을 증가시키도록 자연어 처리 기술을 수정하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    프로토콜을 통해 애플리케이션에 의해 선언된 상태 정보를 수신하는 단계; 및
    제2 입력 오디오 신호의 실시간 자연어 처리를 수행하여 하나 이상의 파라미터를 식별하기 위해 상태 정보를 사용하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    프로토콜을 통해 애플리케이션에 의해 선언된 상태 정보를 수신하는 단계; 및
    수정된 자연어 처리 기술을 통해, 요청을 식별하기 위해 상태 정보에 제2 입력 오디오 신호를 매핑하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서,
    액션 데이터 구조를 애플리케이션에 입력한 후, 애플리케이션의 상태 변경의 표시를 수신하는 단계;
    상태 변경의 표시에 응답하여, 애플리케이션에 의해 선언된 기능에 응답하여 이전에 수정된 자연어 처리 기술을 수정하는 단계;
    제3 입력 오디오 신호를 수신하는 단계; 및
    상태 변경의 표시에 응답하여 수정된 자연어 처리 기술을 통해, 하나 이상의 제2 파라미터를 식별하기 위해 제3 입력 오디오 신호를 처리하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서,
    애플리케이션으로부터 프로토콜을 통해, 애플리케이션의 상태 변경의 표시를 수신하는 단계, 상기 상태 변경의 표시는 디지털 어시스턴트를 호출하고;
    애플리케이션의 사용자 인터페이스 엘리먼트를 통해 제공된 하나 이상의 입력 필드를 식별하기 위해 변경의 표시에 응답하여 애플리케이션의 현재 사용자 인터페이스를 파싱하는 단계;
    제3 입력 오디오 신호를 수신하는 단계; 및
    애플리케이션의 상태 변경에 응답하여 애플리케이션에 입력하기 위한 제3 입력 오디오 신호의 하나 이상의 제2 파라미터를 식별하기 위해 하나 이상의 입력 필드에 기초한 자연어 처리 기술을 사용하여 제3 입력 오디오 신호를 처리하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    애플리케이션이 클라이언트 컴퓨팅 디바이스에 설치되어 있는지 결정하기 위해 클라이언트 컴퓨팅 디바이스의 인덱스에서 조회를 수행하는 단계; 및
    애플리케이션이 클라이언트 컴퓨팅 디바이스에 설치되어 있다는 결정에 응답하여, 애플리케이션을 활성화하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    애플리케이션이 비활성화되었다는 표시를 수신하는 단계; 및
    수정된 자연어 처리 기술을 디폴트 자연어 처리 기술로 되돌리는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  20. 제11항 내지 제19항 중 어느 한 항에 있어서,
    애플리케이션이 비활성화되었다는 표시를 수신하는 단계; 및
    자연어 처리 기술로부터, 기능에 기초한 수정 사항을 제거하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  21. 애플리케이션과 인터페이스하는 시스템으로서,
    하나 이상의 프로세서 및 메모리;
    하나 이상의 프로세서 및 메모리에 의해 실행되는 디지털 어시스턴트 컴포넌트를 포함하고, 상기 디지털 어시스턴트 컴포넌트는,
    제1 입력 오디오에 응답하여, 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하고 애플리케이션이 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 그 애플리케이션이 수행하도록 구성된 기능을 선언하게 하고;
    애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하고;
    클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하고;
    수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하기 위해 제2 입력 오디오 신호를 처리하고;
    하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정하고;
    호환성의 결정에 응답하여 하나 이상의 파라미터에 기초하여, 애플리케이션에 대한 액션 데이터 구조를 생성하고;
    애플리케이션이 액션 데이터 구조를 실행하여 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 액션 데이터 구조를 프로토콜을 통해 애플리케이션에 입력하고;
    컨텐츠 요청을 원격 데이터 처리 시스템으로 전송하고; 그리고
    원격 데이터 처리 시스템으로부터 컨텐츠 아이템의 수신에 응답하여, 원격 데이터 처리 시스템에 의해 선택된 컨텐츠 아이템을 제시하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  22. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    액션 데이터 구조에 기초하여 요청을 생성하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  23. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션에 의해 선언된 기능에 기초하여 요청을 생성하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  24. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    수정된 자연어 처리 기술에 기초하여 요청을 생성하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  25. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션의 업데이트된 사용자 인터페이스 엘리먼트에 기초하여 요청을 생성하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  26. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션의 사용자 인터페이스를 통한 프리젠테이션을 위해 애플리케이션에 컨텐츠 아이템을 제공하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  27. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    오디오 출력을 통해 컨텐츠 아이템을 제시하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  28. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션의 사용자 인터페이스와 상이한 출력 인터페이스를 통해 컨텐츠 아이템을 제시하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  29. 제21항에 있어서,
    디지털 어시스턴트 컴포넌트는,
    애플리케이션의 사용자 인터페이스와 별개의 오디오 출력을 통해 컨텐츠 아이템을 제시하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  30. 제21항에 있어서,
    원격 데이터 처리 시스템은,
    실시간 컨텐츠 선택 프로세스 동안 컨텐츠 아이템을 선택하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  31. 제21항에 있어서,
    원격 데이터 처리 시스템은,
    애플리케이션에 의해 선언된 기능에 기초하여 컨텐츠 아이템을 선택하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  32. 제21항에 있어서,
    원격 데이터 처리 시스템은,
    제2 입력 오디오 신호에서 검출된 하나 이상의 파라미터에 기초하여 컨텐츠 아이템을 선택하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  33. 제21항에 있어서,
    원격 데이터 처리 시스템은,
    애플리케이션에 기초하여 컨텐츠 아이템을 선택하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  34. 제21항에 있어서,
    원격 데이터 처리 시스템은,
    애플리케이션에 입력된 액션 데이터 구조에 기초하여 컨텐츠 아이템을 선택하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 시스템.
  35. 애플리케이션과 인터페이스하는 방법으로서,
    하나 이상의 프로세서에 의해 실행되는 디지털 어시스턴트 컴포넌트에 의해, 제1 입력 오디오에 응답하여, 클라이언트 컴퓨팅 디바이스에서 실행하기 위한 애플리케이션을 활성화하고 애플리케이션이 프로토콜을 통해 디지털 어시스턴트 컴포넌트에 그 애플리케이션이 수행하도록 구성된 기능을 선언하게 하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 애플리케이션에 의해 선언된 기능에 응답하여 자연어 처리 기술을 수정하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 클라이언트 컴퓨팅 디바이스의 마이크로폰에 의해 검출된 제2 입력 오디오 신호를 수신하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 수정된 자연어 처리 기술을 통해, 하나 이상의 파라미터를 검출하기 위해 제2 입력 오디오 신호를 처리하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 하나 이상의 파라미터 및 애플리케이션에 의해 선언된 기능 간의 비교에 기초하여, 하나 이상의 파라미터가 클라이언트 컴퓨팅 디바이스의 디지털 어시스턴트에 의해 활성화된 애플리케이션의 입력 필드에 대한 입력과 호환 가능하다고 결정하는 단계;
    디지털 어시스턴트 컴포넌트에 의해 호환성의 결정에 응답하여, 하나 이상의 파라미터에 기초하여 애플리케이션에 대한 액션 데이터 구조를 생성하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 애플리케이션이 액션 데이터 구조를 실행하고 애플리케이션의 사용자 인터페이스 엘리먼트를 업데이트하게 하기 위해 프로토콜을 통해 애플리케이션에 액션 데이터 구조를 입력하는 단계;
    디지털 어시스턴트 컴포넌트에 의해, 컨텐츠 요청을 원격 데이터 처리 시스템으로 전송하는 단계; 및
    디지털 어시스턴트 컴포넌트에 의해 원격 데이터 처리 시스템으로부터 컨텐츠 아이템의 수신에 응답하여 원격 데이터 처리 시스템에 의해 선택된 컨텐츠 아이템을 제시하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  36. 제35항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 액션 데이터 구조에 기초하여 요청을 생성하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  37. 제35항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 애플리케이션의 사용자 인터페이스를 통한 프리젠테이션을 위해 애플리케이션에 컨텐츠 아이템을 제공하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  38. 제35항에 있어서,
    디지털 어시스턴트 컴포넌트에 의해, 오디오 출력을 통해 컨텐츠 아이템을 제시하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  39. 제35항에 있어서,
    원격 데이터 처리 시스템에 의해, 실시간 컨텐츠 선택 프로세스 동안 컨텐츠 아이템을 선택하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
  40. 제35항에 있어서,
    원격 데이터 처리 시스템에 의해, 애플리케이션에 의해 선언된 기능에 기초하여 컨텐츠 아이템을 선택하는 단계를 포함하는 것을 특징으로 하는 애플리케이션과 인터페이스하는 방법.
KR1020227011840A 2019-11-27 2019-11-27 동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스 KR20220062360A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/063648 WO2021107951A1 (en) 2019-11-27 2019-11-27 Interfacing with applications via dynamically updating natural language processing

Publications (1)

Publication Number Publication Date
KR20220062360A true KR20220062360A (ko) 2022-05-16

Family

ID=68966056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227011840A KR20220062360A (ko) 2019-11-27 2019-11-27 동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스

Country Status (5)

Country Link
US (1) US11514896B2 (ko)
EP (1) EP3847546A1 (ko)
KR (1) KR20220062360A (ko)
CN (1) CN114600081A (ko)
WO (1) WO2021107951A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074280B2 (en) * 2017-05-18 2021-07-27 Aiqudo, Inc Cluster based search and recommendation method to rapidly on-board commands in personal assistants
US11574634B2 (en) 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
US11570182B1 (en) * 2020-03-30 2023-01-31 Amazon Technologies, Inc. Compute-less authorization
US20230125036A1 (en) * 2021-10-14 2023-04-20 Microsoft Technology Licensing, Llc Natural language interface for virtual environment generation
WO2023234931A1 (en) * 2022-05-31 2023-12-07 Google Llc Human-in-the-loop voice automation system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10276170B2 (en) * 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10972530B2 (en) * 2016-12-30 2021-04-06 Google Llc Audio-based data structure generation
CA3023918C (en) 2011-09-30 2022-11-29 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9384732B2 (en) * 2013-03-14 2016-07-05 Microsoft Technology Licensing, Llc Voice command definitions used in launching application with a command
US9123345B2 (en) * 2013-03-14 2015-09-01 Honda Motor Co., Ltd. Voice interface systems and methods
US10249296B1 (en) * 2014-05-27 2019-04-02 Amazon Technologies, Inc. Application discovery and selection in language-based systems
US9548066B2 (en) * 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US10192549B2 (en) * 2014-11-28 2019-01-29 Microsoft Technology Licensing, Llc Extending digital personal assistant action providers
US9959129B2 (en) * 2015-01-09 2018-05-01 Microsoft Technology Licensing, Llc Headless task completion within digital personal assistants
US9508339B2 (en) * 2015-01-30 2016-11-29 Microsoft Technology Licensing, Llc Updating language understanding classifier models for a digital personal assistant based on crowd-sourcing
DK201670540A1 (en) * 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10600418B2 (en) 2016-12-07 2020-03-24 Google Llc Voice to text conversion based on third-party agent content
US11204787B2 (en) * 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11170768B2 (en) * 2017-04-17 2021-11-09 Samsung Electronics Co., Ltd Device for performing task corresponding to user utterance

Also Published As

Publication number Publication date
EP3847546A1 (en) 2021-07-14
US11514896B2 (en) 2022-11-29
WO2021107951A1 (en) 2021-06-03
CN114600081A (zh) 2022-06-07
US20210358489A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
EP3776175B1 (en) Action validation for digital assistant-based applications
US11893993B2 (en) Interfacing with applications via dynamically updating natural language processing
US11514896B2 (en) Interfacing with applications via dynamically updating natural language processing
US20240094994A1 (en) Generating and updating voice-based software applications using application templates
US11620143B2 (en) Interface and mode selection for digital action execution
US11935536B2 (en) Action validation for digital assistant-based applications
EP3796178A1 (en) Immersive web-based simulator for digital assistant-based applications
US11869504B2 (en) Systems and methods to verify trigger keywords in acoustic-based digital assistant applications
US20240221747A1 (en) Action validation for digital assistant-based applications