KR20210024224A - 음성 액션 검색 가능 시스템 - Google Patents

음성 액션 검색 가능 시스템 Download PDF

Info

Publication number
KR20210024224A
KR20210024224A KR1020217005450A KR20217005450A KR20210024224A KR 20210024224 A KR20210024224 A KR 20210024224A KR 1020217005450 A KR1020217005450 A KR 1020217005450A KR 20217005450 A KR20217005450 A KR 20217005450A KR 20210024224 A KR20210024224 A KR 20210024224A
Authority
KR
South Korea
Prior art keywords
voice action
user device
voice
searchable
application
Prior art date
Application number
KR1020217005450A
Other languages
English (en)
Other versions
KR102273095B1 (ko
Inventor
보 왕
수닐 베무리
바나비 존 제임스
프라비르 쿠말 굽타
니틴 망게쉬 쉐티
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210024224A publication Critical patent/KR20210024224A/ko
Application granted granted Critical
Publication of KR102273095B1 publication Critical patent/KR102273095B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • 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
    • G06F9/453Help systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/72Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for transmitting results of analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Abstract

본 발명은 음성 액션 시스템에 의해, 음성 액션을 수행하기 위해 애플리케이션을 트리거하는 트리거 용어들을 지정하는 데이터 및 상기 음성 액션이 트리거될 수 있을 때 애플리케이션의 상태를 지정하는 컨텍스트를 수신하는 방법들, 시스템들 및 장치들을 개시한다. 음성 액션 시스템은 애플리케이션의 상태가 지정된 컨텍스트를 만족할 때 음성 액션을 수행하도록 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함하는 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 수신한다. 음성 액션 시스템은 애플리케이션이 설치된 사용자 디바이스로부터 애플리케이션에 대한 검색 가능 예제들에 대한 요청을 수신하고, 그 요청에 응답하여 검색 가능 예제들을 정의하는 데이터를 사용자 디바이스로 제공한다. 사용자 디바이스는 애플리케이션의 상태가 지정된 컨텍스트를 만족할 때 하나 이상의 트리거 용어에 대한 통지를 제공하도록 구성된다.

Description

음성 액션 검색 가능 시스템{VOICE ACTION DISCOVERABILITY SYSTEM}
본 발명은 2016년 6월 6일자로 출원된 미국 특허 출원 제15/173,823호의 계속 출원으로 그의 우선권을 주장하며, 그 개시 내용은 그 전체가 참고로 본 출원에 포함된다.
본 발명은 음성 액션과 관련된 것으로, 특정 구현예는 음성 액션들을 구성하는 것 및 음성 액션들을 사용하는 방법을 사용자에게 교육하는 것에 관한 것이다.
애플리케이션의 태스크(task)는 사용자가 특정 과제(job)를 수행하도록 상호 작용하는 소프트웨어로 정의된 하나 이상의 활동(activity)을 포함할 수 있다. 활동은 태스크 실행의 라이프 사이클을 제어하는 클래스이고, 태스크 내에서 수행되는 이러한 다수의 활동은 사용자가 과제를 수행하도록 허용할 수 있다. 일부 구현예에서, 명령(command)은 활동 또는 활동과 관련된 액션과 관련될 수 있어, 커맨드의 사용자 제출은 활동 또는 액션을 트리거할 수 있다. 특정 의도가 활동의 시작 또는 핵션의 수행을 트리거하도록 발화(fire)될 수 있다. 따라서, 활동의 시작 또는 액션의 수행을 트리거 하기 위해, 사용자는 활동 또는 액션에 해당하는 의도를 발화하는데 사용된 활동 또는 액션과 관련된 명령에 대한 지식이 있어야 한다.
본 발명은 애플리케이션 개발자가 이전에 설치된 소프트웨어 애플리케이션에 대한 새로운 음성 액션들을 배포하고 상기 배포된 음성 액션들을 사용하는 방법을 사용자에게 알리는 검색 가능 예제를 구현할 수 있는 플랫폼을 기술한다. 일반적으로 플랫폼을 사용하여 애플리케이션 개발자는 새로운 음성 액션을 정의하는 정보(여기서 정보는 애플리케이션을 특정함), 새로운 음석 액션이 트리거링으로 유도되는 액션, 액션을 트리거하기 위한 트리거 용어 및 트리거 용어가 애플리케이션에서 액션을 트리거하는데 효과적인 컨텍스트를 제출할 수 있다. 애플리케이션 개발자는 또한 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 정보를 제출하여, 애플리케이션의 사용자에게 액션을 트리거할 수 있는 방법을 나타내는 적절한 검색 가능 예제를 제시할 수 있다.
애플리케이션 개발자에 의해 제출된 컨텍스트는 음성 액션이 애플리케이션에서 액션을 트리거하는데 효과적일 때 사용자 디바이스 상태를 특정할 수 있다. 디바이스 상태는 예를 들어 어떤 애플리케이션(들)이 포어그라운드(즉, 디바이스의 사용자 인터페이스에서 현재 활성) 또는 백그라운드(즉, 디바이스의 사용자 인터페이스에서 현재 보이지 않는)에서 작동하는지 또는 애플리케이션들에 관한 특정 정보(예컨대, 현재 실행중인 활동들, 실행중인 활동들의 상태)를 포함할 수 있다.
애플리케이션 개발자가 새로운 음성 액션을 정의하는 정보를 제출하면, 서비스 또는 툴로 설계된 상기 플랫폼은 새로운 음성 액션을 정의하는 정보의 유효성을 검사하여 상기 새로운 음성 액션이 애플리케이션과 호환되는지 여부를 결정하거나 그렇지 않으면 상기 새로운 음성 액션이 구현될 수 있는지 여부를 결정할 수 있다. 만약 새로운 음성 액션이 유효한 경우, 상기 새로운 음성 액션을 정의하는 정보를 유도함으로써 상기 음성 액션에 대해, 의도(intent)라고 불리고 특정 포멧을 갖는 수동 데이터 구조의 새로운 인스턴스가 생성될 수 있다. 상기 의도는 애플리케이션, 트리거 용어, 트리거 용어를 감지하는 것에 응답하여 트리거될 활동 또는 액션, 및 트리거 용어가 활동 또는 액션을 트리거하는데 필요한 컨텍스트와 같은 새로운 음성 액션을 정의하는 정보의 일부 또는 전부를 특정할 수 있다. 그런 다음, 음성 액션은 애플리케이션에 배포됨으로써 음성 액션은 음성 액션을 지원하기 위해 애플리케이션 코드에 부가적인 변경을 가하지 않고도 애플리케이션에 대해 인에이블된 음성 액션이될 수 있다.
일단 음성 액션이 배포되면, 사용자 디바이스를 운용하는 사용자는 음성 입력을 제공할 수 있다. 사용자 디바이스는 사용자 디바이스에 대한 컨텍스트 정보를 제출할 수 있으며, 컨텍스트 정보 및 음성 입력의 전사가 의도를 식별하고 그 식별된 의도를 트리거하는데 사용될 수 있다. 상기 의도가 트리거되면, 활동 또는 액션을 실행하기 위한 데이터가 결정되어, 음성 입력에 응답하여 활동 또는 액션을 실행하기 위해 사용자 디바이스로 전송된다.
예를 들어, 미디어 플레이어 애플리케이션의 애플리케이션 개발자는 트리거 용어 "앞으로 건너 뛰기(skip ahead)"를 사용하는 사전 결정된 시간만큼 노래에서 앞으로 건너 뛰기 위한 새로운 음성 액션을 정의할 수 있다. 예를 들어, 애플리케이션 개발자는 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 30초, 60초 또는 다른 사전 결정된 시간만큼 앞으로 건너 뛰기 위한 새로운 음성 액션을 정의할 수 있다. 애플리케이션 개발자는 "skip ahead" 음성 액션이 인에이블되어야 할 때의 컨텍스트를 지정할 수 있다. 예를 들어, 애플리케이션 개발자는 "skip ahead" 음성 액션이 미디어 플레이어 애플리케이션으로 하여금 포어그라운드에서 실행 중이고 미디어 플레이어 애플리케이션이 오디오 플레이어로서 동작하게 하는 모드에 있을 때 상기 노래에서 사전 결정된 시간만큼 앞으로 건너 뛸 수 있도록 해야한다고 지정할 수 있다. 상기 음성 액션이 애플리케이션 개발자에 의해 배치된 후 사용자 디바이스상에 이전에 설치된 미디어 플레이어 애플리케이션을 갖는 사용자는 음성 입력 "skip ahead"를 제출할 수 있다. 사용자 디바이스는, 미디어 디바이스 애플리케이션이 포어그라운드에서 실행 중이고 오디오 플레이어 모드에 있음을 나타내는 컨텍스트 정보와 같이, 사용자 디바이스 또는 사용자 디바이스 상에 설치된 애플리케이션들의 상태를 나타내는 컨텍스트 정보를 제출할 수 있다. 음성 입력 "skip ahead" 및 컨텍스트를 지정하는 정보를 수신하는 것에 응답하여, 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 상기 미디어 플레이어 애플리케이션이 사전 결정된 시간만큼 앞으로 건너 뛰게 하는 데이터가 사용자 디바이스로 전송될 수 있다. 대조적으로, 상기 음성 입력이 "skip ahead"라고 결정되었지만 컨텍스트 정보가 소셜 네트워킹 애플리케이션이 미디어 플레이어 애플리케이션 대신에 사용자 디바이스의 포어그라운드에서 실행 중임을 나타내면, "skip ahead" 음성 입력은 어떠한 영향도 미치지 않거나 사용자 디바이스에서 다른 동작이 수행되게 할 수 있다.
애플리케이션 개발자들은 이전에 설치된 애플리케이션에 대해 임의의 수의 새로운 음성 액션을 배치할 수 있으며, 이러한 새로운 음성 액션들은 많은 다른 컨텍스트에서 사용자가 사용할 수 있으므로, 플랫폼은 애플리케이션 개발자들이 특정 컨텍스트에 대해 사용 가능한 음성 액션들을 사용자들에게 알리기 위해 사용자들에게 제시할 수 있는 검색 가능성 예제들을 정의할 수 있다. 새로운 음성 액션을 정의하는 정보를 제출할 때, 애플리케이션 개발자는 새로운 음성 액션에 대한 하나 이상의 검색 가능 예제를 정의하는 정보를 포함할 수 있다. 검색 가능 예제들에는음성 액션이 현재 컨텍스트에서 사용 가능하다는 것과 사용자가 어떻게 새로운 음성 액션을 트리거할 수 있는지를 사용자에게 알리기 위해 소프트웨어 애플리케이션의 사용자에게 제시될 수 있는 텍스트, 이미지, 비디오 또는 오디오 통지와 같은 통지가 포함될 수 있다.
검색 가능 예제를 정의하는 애플리케이션 개발자가 제출한 정보는 플랫폼에 의해 수신되어, 검색 가능 예제를 정의하는 데이터를 생성하는데 사용될 수 있다. 일부 구현예에서, 상기 생성된 데이터는 그 후 애플리케이션이 설치된 사용자 디바이스들로 제공되어 각각의 사용자 디바이스들에 저장될 수 있다. 상기 생성된 데이터를 사용자 디바이스에 저장하는 것은 사용자 디바이스가 검색 가능 예제들을 오프라인으로 제공할 수 있게 한다. 따라서, 클라이언트 디바이스의 사용자가 주어진 컨텍스트에서 검색 가능 예제들을 요청하면, 사용자 디바이스는 컨택스트를 결정하고 상기 컨텍스트에 기초하여 제공하기 위해 디바이스에 저장된 검색 가능 예제들을 선택할 수 있으며, 여기서 상기 선택된 검색 가능 예제들은 현재 컨텍스트에서 트리거될 수 있는 음성 액션들에 해당한다.
예를 들어, "skip ahead" 음성 액션을 정의할 때, 애플리케이션 개발자는 텍스트 통지 "'Skip Ahead'라고 말하세요"를 포함하는 "skip ahead" 음성 액션에 대한 검색 가능 예제를 또한 정의할 수 있다. 플랫폼은 검색 가능 예제를 정의하는 데이터를 생성할 수 있고 미디어 플레이어 애플리케이션이 설치된 하나 이상의 사용자 디바이스로 상기 생성된 데이터를 전송할 수 있다. 상기 생성된 데이터는 하나 이상의 사용자 디바이스에 저장될 수 있다. 후속적으로, 미디어 플레이어가 설치된 사용자 디바이스의 사용자는 예를 들어 "내가 어떤 음성 명령을 말할 수 있지?"를 포함하는 음성 입력을 사용자 디바이스로 제공함으로써 현재 컨텍스트에 대한 검색 가능 예제들을 요청할 수 있다. 사용자 디바이스는 이러한 음성 입력을 검색 가능 예제들에 대한 요청으로 해석할 수 있고, 사용자 디바이스 및 미디어 플레이어 애플리케이션에 대한 컨텍스트를 결정할 수 있다. 상기 컨텍스트가 "skip ahead" 음성 액션과 관련된 검색 가능 예제들에 대한 컨텍스트와 매칭된다고 결정하는 것에 기초하여, 사용자 디바이스는 검색 가능 예제에 대한 정보를 액세스할 수 있고, 검색 가능 예제의 텍스트 "'Skip Ahead'라고 말하세요"를 포함하는 텍스트 통지를 사용자 디바이스에 제공할 수 있다. 사용자는 사용자 디바이스 또는 미디어 플레이어 애플리케이션의 현재 컨텍스트가 주어진 사용자 디바이스가 이용할 수 있는 음성 액션들을 결정할 때 이러한 검색 가능 예제에 의존할 수 있다.
본 명세서에 기술된 주제의 혁신적인 양태는 방법들, 시스템들 및 동작들을수행하는 비 일시적 컴퓨터 판독 가능 저장 디바이스들에서 구현될 수 있으며, 음성 액션 시스템에 의해, 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 트리거 용어들을 지정하는 데이터 및 상기 새로운 음성 액션이 트리거될 수 있을 때 소프트웨어 애플리케이션의 상태를 지정하는 컨텍스트를 수신하는 단계와, 상기 음성 액션 시스템에 의해, 상기 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 수신하는 단계와, 상기 검색 가능 예제를 정의하는 데이터는 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함하고, 소프트웨어 애플리케이션이 설치된 사용자 디바이스로부터 상기 음성 액션 시스템에 의해, 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 위한 요청을 수신하는 단계와, 그리고 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 검색 가능 예제를 정의하는 데이터를 상기 사용자 디바이스로 제공하는 단계를 포함하고, 상기 사용자 디바이스는 상기 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성될 수 있다.
이들 및 다른 실시예들은 각각 선택적으로 하나 이상의 다음 특징을 포함할 수 있다. 다양한 예들에서, 이들 및 다른 실시예들은 각각 선택적으로 상기 음성 액션 시스템에 의해, 상기 하나 이상의 트리거 용어의 통지로서 사용자 디바이스에서 제시 가능한 컨텐츠에 대응하는 데이터를 수신하는 단계 및 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 컨텐츠에 대응하는 데이터를 상기 사용자 디바이스로 제공하는 단계를 포함하는 특징들을 포함할 수 있으며, 상기 사용자 디바이스는 대응하는 상기 데이터에 적어도 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 하나 이상의 트리거 용어의 통지로서 상기 컨텐츠를 제시하도록 구성된다. 다양한 예들에서, 이들 및 다른 실시예들은 각각 선택적으로 상기 음성 액션 시스템에 의해, 상기 새로운 음성 액션에 대한 하나 이상의 고유한 후보 검색 가능 예제를 정의하는 데이터를 생성하는 단계와, 상기 하나 이상의 고유한 후보 검색 가능 예제들 각각을 정의하는 데이터는 하나 이상의 트리거 용어를 포함하고, 상기 음성 액션 시스템에 의해, 상기 하나 이상의 고유한 후보 검색 가능 예제들 중에서 특정 후보 검색 가능 예제의 선택을 나타내는 데이터를 수신하는 단계와, 그리고 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 특정 후보 검색 가능 예제를 정의하는 데이터를 사용자 디바이스로 제공하는 단계를 포함하는 특징들을 포함할 수 있으며, 상기 사용자 디바이스는 상기 특정 후보 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 특정 후보 검색 가능 예제에 대응하는 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성될 수 있다.
다양한 예들에서, 이들 및 다른 실시예들은 각각 선택적으로 상기 소프트웨어 애플리케이션이 설치된 상기 사용자 디바이스로부터 상기 음성 액션 시스템에 의해, 소프트웨어 애플리케이션의 상태를 나타내는 데이터를 수신하는 단계와, 상기 음성 액션 시스템에 의해 그리고 소프트웨어 애플리케이션의 상태를 나타내는 데이터에 기초하여, 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족시키는지를 결정하는 단계와, 그리고 상기 음성 액션 시스템에 의해, 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족한다는 결정에 응답하여 상기 사용자 디바이스로 상기 검색 가능 예제를 정의하는 데이터를 제공하는 단계를 포함하는 특징들을 포함할 수 있고, 상기 사용자 디바이스는 상기 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 검색 가능 예제를 수신하고 상기 검색 가능 예제를 수신하는 것에 응답하여 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성될 수 있다.
다양한 예들에서, 상기 지정된 컨텍스트는 소프트웨어 애플리케이션이 특정 활동(activity))을 수행하고 있음을 나타내고, 상기 지정된 컨텍스트는 소프트웨어 애플리케이션이 수행하고 있는 특정 활동이 특정 활동 상태에 있음을 나타내고, 상기 지정된 컨텍스트는 소프트웨어 애플리케이션이 소프트웨어 애플리케이션이 설치된 사용자 디바이스의 포어그라운드(foreground)에서 동작하고 있음을 나타내며, 상기 지정된 컨텍스트는 소프트웨어 애플리케이션이 소프트웨어 애플리케이션이 설치된 사용자 디바이스의 백그라운드에서 동작하고 있음을 나타낼 수 있다.
다양한 예들에서, 이들 및 다른 실시예들은 각각 선택적으로 상기 음성 액션 시스템에 의해, (i) 제2 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 트리거 용어들 및 (ii) 상기 지정된 컨텍스트를 지정하는 데이터를 수신하는 단계와, 상기 음성 액션 시스템에 의해, 상기 제2 새로운 음성 액션에 대한 제2 검색 가능 예제를 정의하는 데이터를 단계와, 상기 제2 검색 가능 예제를 정의하는 데이터는 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 제2 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어를 포함하고, 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 제2 검색 가능 예제를 정의하는 데이터를 사용자 디바이스로 제공하는 단계를 포함하는 특징들을 포함할 수 있고, 상기 사용자 디바이스는 상기 제2 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어의 통지 및 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 제2 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성될 수 있다.
다양한 예들에서, 상기 소프트웨어 애플리케이션의 상태는 음성 액션들을 수행하도록 소프트웨어 애플리케이션을 트리거하는 트리거 용어들의 통지를 요청하는 상기 사용자 디바이스에서의 사용자 입력을 검출하는 것에 응답하여 결정되고, 상기 소프트웨어 애플리케이션의 상태는 소프트웨어 애플리케이션의 상태가 변경되었다는 결정에 응답하여 결정되고, 상기 소프트웨어 애플리케이션의 상태는 소프트웨어 애플리케이션이 사용자 디바이스에서 개시(launch)되었다는 결정에 응답하여 결정되며, 상기 하나 이상의 트리거 용어의 통지는 텍스트 통지, 이미지 통지, 비디오 통지 또는 오디오 통지 중 하나이다. 다양한 예들에서, 이들 및 다른 실시예들은 각각 선택적으로 상기 음성 액션 시스템에서, 하나 이상의 다른 검색 가능 예제를 정의하는 데이터를 포함하는 데이터베이스에 상기 검색 가능 예제를 정의하는 데이터를 저장하는 단계를 포함하는 특징들을 포함할 수 있으며, 상기 하나 이상의 다른 검색 가능 예제들 중 적어도 하나는 상이한 음성 액션에 대한 검색 가능 예제이다.
다양한 예들에서, 상기 사용자 디바이스는 소프트웨어 애플리케이션의 상태가 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족시키는 지를 결정하고, 상기 2개 이상의 상이한 음성 액션에 대해 정의된 검색 가능 예제들을 식별하고, 상기 검색 가능 예제들 각각은 상기 2개 이상의 상이한 음성 액션들 중 하나를 수행하도록 소프트웨어 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함하고, 상기 검색 가능 예제들의 서브 세트를 선택하고, 그리고 상기 서브 세트에 포함된 상기 검색 가능 예제들 각각의 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다. 다양한 예들에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는 상기 2개 이상의 상이한 음성 액션에 대해 정의된 상기 검색 가능 예제들을 랭킹하는 단계와, 그리고 상기 랭킹에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다. 다양한 예들에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 상기 컨텍스트에 대한 상기 2개 이상의 상이한 음성 액션들의 각각의 관련성을 결정하는 단계와, 그리고 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 상기 컨텍스트에 대한 상기 2개 이상의 상이한 음성 액션들의 각각의 상기 결정된 관련성에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다. 다양한 예들에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는 소프트웨어 애플리케이션의 상태가 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족할 때 상기 사용자 디바이스에서 과거의 사용자 활동을 나타내는 정보에 액세스하는 단계와, 그리고 소프트웨어 애플리케이션의 상태가 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족할 때 상기 사용자 디바이스에서 과거의 사용자 활동을 나타내는 상기 액세스된 정보에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 주제의 다른 잠재적인 특징, 양태 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1a 내지 1c는 음성 액션 개발 시스템 및 서비스에 대한 예시적인 시스템을 나타낸다.
도 2는 음성 액션 개발 시스템 및 서비스를 사용하여 음성 액션들에 대한 검색 가능 예제들을 생성하기 위한 예시적인 시스템을 나타낸다.
도 3은 음성 액션들에 대한 검색 가능 예제를 제공하기 위한 예시적인 시스템을 나타낸다.
도 4는 음성 액션 개발 시스템 및 서비스와 관련된 예시적인 프로세스의 흐름도이다.
다양한 도면에서 동일한 참조 부호는 동일한 요소를 나타낸다.
도 1a는 음성 액션 시스템(100)의 예를 나타낸다. 음성 액션 시스템(100)은 애플리케이션 개발자가 이전에 다른 사용자의 디바이스에 설치되었던 애플리케이션에 대해 새로운 음성 액션을 설정할 수 있는 플랫폼 및 서비스를 제공한다. 그 후, 디바이스에 설치된 애플리케이션을 갖는 애플리케이션의 사용자는 음성 명령을 사용하여 애플리케이션이 새로운 음성 액션에 의해 지정된 특정 동작들(operations)을 수행하게 할 수 있다. 음성 액션 시스템(100)은 또한 도 1b 및 도 1c와 관련하여 더 상세히 논의되는 플랫폼 및 서비스를 제공할 수 있으며, 이에 의해 애플리케이션 개발자는 음성 액션에 대한 검색 가능 예제들(discoverability examples)을 설정(establish)할 수 있다. 상기 검색 가능 예제는 사용자에게 제공되어, 사용 가능한 음성 액션 및 이러한 음성 액션이 트리거될 수 있는 방법을 알릴 수 있다.
음성 액션 시스템(100)은 단말기(102a~102n)로부터 애플리케이션 개발자 (101a~101n)가 제출한 새로운 음성 액션들을 정의하는 데이터를 수신하는데, 여기서 새로운 음성 액션은 하나 이상의 상이한 애플리케이션에 대한 것이다. 음성 액션 시스템(100)은 각각의 새로운 음성 액션이 유효한 음성 액션인지 여부를 결정할 수 있다. 유효한 것으로 결정된 각각의 새로운 음성 액션은 새로운 음성 액션에 대응하는 의도(intent)를 생성하도록 유도(induct)될 수 있고, 상기 새로운 음성 액션에 대응하는 의도는 음성 액션 시스템(100)의 애플리케이션 음성 액션 데이터베이스(110)에 저장될 수 있다.
예를 들어, 음성 액션 시스템(100)은 새로운 음성 액션을 정의하는 데이터를 수신하여 유효성을 검사하는 검증 엔진을 가질 수 있다. 데이터 검증은 음성 액션을 정의하는 데이터의 포맷팅이 요구 사항에 부합하는지를 결정하는 것, 새로운 음성 액션이 지정된 애플리케이션과 호환되는지를 결정하는 것, 또는 그렇지 않으면 음성 액션이 애플리케이션 개발자(101a~101n)로부터 수신된 데이터에 기초하여 설정될 수 있다고 결정하는 것을 포함할 수 있다.
음성 액션 시스템(100)의 표시 엔진은 새로운 음성 액션을 정의하는 상기 검증된 데이터를 수신할 수 있고, 새로운 음성 액션에 대응하는 의도를 생성하도록 상기 데이터를 유도할 수 있다. 그 후, 상기 의도는 애플리케이션 음성 액션 데이터베이스(110)에 저장될 수 있다.
애플리케이션 음성 액션 데이터베이스(110)는 다수의 상이한 소프트웨어 애플리케이션 내에서 수행될 수 있는 활동 또는 액션에 관련된 음성 액션들을 저장할 수 있다. 애플리케이션 음성 액션 데이터베이스(110)에 포함된 음성 액션들은 애플리케이션이 내장(built)되었을 때 애플리케이션 개발자(101a~101n)에 의해 제출된 내장(built-in) 음성 액션들뿐만 아니라 애플리케이션이 지원하는 동작을 위해 애플리케이션이 내장된 후 애플리케이션 개발자(101a~101n)에 의해 제출된 음성 액션들을 포함할 수 있다.
음성 액션들은 또한 운영 체제가 디폴트로 지원하는 애플리케이션-특정 음성 액션도 포함할 수 있다. 이러한 사전 지원된 음성 액션들은 애플리케이션 개발자(101a~101n)에 의해 음성 액션 시스템(100)로 제출될 필요없이 애플리케이션에서 구현될 수 있는 음성 액션일 수 있다. 예를 들어, 포어그라운드에서 실행중인 작업 또는 활동을 종료하기 위한 음성 액션 "애플리케이션 종료(exit application)"는 모든 애플리케이션에 대해 자동으로 이용 가능할 수 있고, 애플리케이션 개발자(101a~101n)가 음성 액션 시스템(100)으로 정보를 제출하여 "애플리케이션 종료" 음성 액션을 정의할 필요 없이 각 애플리케이션에 대한 애플리케이션 음성 액션 데이터베이스(110)에 포함될 수 있다.
애플리케이션 음성 액션 데이터베이스(110)에 부가하여, 음성 액션 시스템(100)은 임의의 특정 애플리케이션 또는 컨텍스트와 관련되지 않은 음성 액션들을 저장하는 운영 체제(OS) 음성 액션 데이터베이스(120)를 포함할 수 있다. 예를 들어, 디바이스가 잠금 상태에 진입하게 하는 "폰 잠금(lock phone)" 음성 액션은 특정 애플리케이션과 관련되지 않거나 보편적으로 액세스 가능한(즉 "디바이스 잠금(lock device)" 음성 액션이 감지될 때 디바이스의 상태와 관계없이) 음성 액션으로서 OS 음성 액션 데이터베이스(120)에 지정된 음성 액션일 수 있다. 일반적으로, OS 음성 액션 데이터베이스(120)에 저장된 음성 액션은 음성 액션을 정의하는 애플리케이션 개발자(101a~101n)에 기초하여 생성되지 않은 음성 액션인데, 이는 OS 음성 액션 데이터베이스(120)에 저장된 음성 액션들이 사용자 디바이스 동작 환경에 대해 범용(generic)이고 제3자 애플리케이션 개발자(101a~101n)에 의해 생성된 임의의 특정 애플리케이션이 아니기 때문이다.
음성 액션 시스템(100)은 사용자 디바이스(104)를 갖는 사용자(105)가 자신의 사용자 디바이스(104)에 발화된 음성 입력을 제공하여 액션들이 사용자 디바이스(104) 또는 사용자 디바이스(104)상에서 동작하는 애플리케이션들에 의해 수행되도록할 수 있다. 예를 들어, 사용자 디바이스(104)를 갖는 사용자(105)는 자신의 사용자 디바이스(104)상에서 실행중인 미디어 플레이어 애플리케이션을 사용하며, 상기 미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 실행되고 오디오 플레이어 모드에서 미디어 플레이어 애플리케이션이 동작되는 동안 발화 입력 "앞으로 건너 뛰기(skip ahead)"를 제공한다.
사용자 디바이스(104)에서 실행중인 애플리케이션들의 상태를 포함하여, 사용자 디바이스(104)의 상태를 지정하는 발화 입력 및 컨텍스트 정보에 대응하는 오디오 데이터는 음성 액션 시스템(100)으로 전송된다. 구체적으로는, 도 1a에 도시 된 예에 대해, 음성 입력 "skip ahead"에 대응하는 오디오 데이터는 음성 액션 시스템(100)의 음성 인식(speech recognition) 엔진(130)에 의해 수신되고, 사용자 디바이스(104)의 상태를 나타내는 컨텍스트 정보는 음성 액션 시스템(100)의 컨텍스트 분석 엔진(140)에 의해 수신된다. 상기 컨텍스트 정보는, 미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 실행 중이고 상기 미디어 플레이어 애플리케이션은 현재 오디오 플레이어 모드에 있음을 나타낼 수 있고, 사용자 디바이스(104) 및 사용자 디바이스(104)상에 설치된 애플리케이션들의 상태에 관한 다른 정보를 나타낼 수 있다.
음성 인식 엔진(130)은 음성 입력에 대응하는 오디오 데이터를 수신하여, 음성 입력의 전사를 생성하고, 음성 입력의 전사를 음성 액션 선택기(150)로 제공한다. 컨텍스트 분석 엔진(140)은 사용자 디바이스(104)로부터 컨텍스트 정보를 수신하여, 관련 컨텍스트 정보를 결정하도록 컨텍스트 정보를 처리한다. 예를 들어, 컨텍스트 분석 엔진(140)은 컨텍스트 정보를 분석하여 사용자 디바이스(104) 상에 설치된 애플리케이션들을 식별할 수 있고, 이들 각각의 애플리케이션과 관련된 메타 데이터는, 주어진 디바이스 상태에 대해 어떤 음성 액션이 인에이블될 수 있는지를결정하는 것과 관련된 애플리케이션 및 컨텍스트에 대해 이용 가능한 음성 액션들을 특정할 수 있다. 일부 경우에서, 상기 분석에 기초하여, 컨텍스트 분석 엔진(140)은 어떤 음성 액션이 사용자 디바이스(104)의 특정 상태에 대해 인에이블되어야 하는지를 식별하기 위해 추가 컨텍스트 정보가 요구되는지를 결정할 수 있고, 따라서 컨텍스트 분석 엔진(140)은 사용자 디바이스(104)로부터 추가 컨텍스트 정보를 요청할 수 있다. 컨텍스트 분석 엔진 140)은 처리된 컨텍스트 정보를 음성 액션 선택기(150)로 포워딩한다.
예를 들어, 도 1a에 도시된 바와 같이, 음성 인식 엔진(130)은 음성 입력 "skip ahead"에 대응하는 오디오 데이터를 수신하여, 음성 입력의 전사를 획득할 수 있다. 컨텍스트 분석 엔진(140)은 미디어 플레이어 애플리케이션이 포어그라운드에서 실행중이고 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에서 동작중임을 특정하고, 사용자 디바이스(104)에 관한 다른 정보를 지정하는 컨텍스트 정보를 사용자 디바이스(104)로부터 수신한다. 예를 들어, 컨텍스트 정보는 또한 소셜 네트워크 애플리케이션이 사용자 디바이스(104)의 백그라운드에서 동작중이고 사용자 디바이스(104)의 배터리 수명이 현재 50%임을 나타낼 수 있다. 컨텍스트 분석 엔진(150)은 사용자 디바이스(104)가 미디어 플레이어 및 소셜 네트워크 애플리케이션 모두를 설치했음을 나타내는 정보를 수신할 수 있고, 미디어 플레이어 애플리케이션 또는 소셜 네트워크 애플리케이션 모두 디바이스 배터리 수명을 나타내는 컨텍스트 정보에 기초하여 음성 액션들을 인에이블하지 않는다고 결정할 수 있다. 따라서, 컨텍스트 분석 엔진(140)은 미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 동작중이고, 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에 있으며, 소셜 네트워크 애플리케이션이 사용자 디바이스(104)의 백그라운드에서 동작중임을 단지 나타내도록 컨텍스트 정보를 필터링할 수 있다. 그런 다음 필터링된 컨텍스트 정보 및 음성 입력 "skip ahead"의 전사는 음성 액션 선택기(150)로 제공될 수 있다.
음성 액션 선택기(150)는 음성 인식 엔진(130)으로부터의 발화 입력의 전사 및 처리된 컨텍스트 정보를 포함하는 컨텍스트 분석 엔진(140)으로부터의 컨텍스트를 수신한다. 음성 액션 선택기(150)는 전사 및 컨텍스트를 사용하여 사용자 디바이스(104)에서 트리거할 특정 음성 액션과 관련된 특정 의도를 식별한다. 예를 들어, 음성 액션 선택기(150)는 애플리케이션 음성 액션 데이터베이스(110) 및 OS 음성 액션 데이터베이스(120)를 액세스하여 사용자 디바이스(104)의 현재 컨텍스트에 대해 인에이블된 후보 음성 액션들의 세트를 식별할 수 있다. 상기 후보 음성 액션들의 세트를 식별하는 것은 음성 액션 선택기(150)에 의해 수신된 컨텍스트와 매칭하는 컨텍스트들을 지정하는 애플리케이션 음성 액션 데이터베이스(110) 또는 OS 음성 액션 데이터베이스(120)에 저장된 의도들의 세트를 식별하는 것을 포함할 수 있다.
제시된 컨텍스트에 대해 인에이블된 후보 음성 액션들의 세트를 식별하면, 음성 액션 선택기(150)는 상기 음성 입력의 전사를 상기 인에이블된 음성 액션들 각각과 관련된 하나 이상의 트리거 구문(trigger phrases)와 비교할 수 있다. 일반적으로, 트리거 구문은 하나 이상의 트리거 용어를 포함할 수 있고, 특정 트리거 구문의 하나 이상의 용어의 검출이 특정 트리거 구문에 대응하는 음성 액션의 식별 및 트리거링을 유발하도록 음성 액션에 대한 식별자로서 작용할 수 있다. 예를 들어, 음성 액션 선택기(150)는 상기 전사를 상기 인에이블된 음성 액션들의 의도와 관련된 각각의 트리거 구문과 비교할 수 있다. 음성 액션 선택기(150)는 상기 전사가 상기 특정 음성 액션과 관련된 의도에 의해 지정된 트리거 용어와 매치한다고 결정하는 것에 기초하여 특정 음성 액션에 대한 특정 의도를 식별한다.
예를 들어, 음성 액션 선택기(150)는 음성 입력 "skip ahead"의 전사와 상기 사용자 디바이스(104)에 대한 컨텍스트를 수신하고, 상기 수신된 컨텍스트를 사용하여 사용자 디바이스(104) 사용자 디바이스(104)의 현재 상태에 기초하여 사용자 디바이스(104)에서 개시하기 위한 후보 음성 액션들, 즉 사용자 디바이스(104)의 현재 상태에 기초하여 사용자 디바이스(104)에서 개시될 수 있는 음성 액션들을 식별할 수 있다. 사용자 디바이스(104)의 컨텍스트에 대한 후보 음성 액션들의 세트가 결정된 후, 음성 액션 선택기(150)는 음성 입력 "skip ahead"의 전사를 상기 후보 음성 액션들의 의도들에 의해 지정된 트리거 구문들과 비교한다. 음성 액션 선택기(150)는 "skip ahead" 전사가 미디어 플레이어 애플리케이션에 대한 "skip ahead" 음성 액션의 의도에 의해 지정된 트리거 매칭하는지 여부를 결정할 수 있다.
상기 "skip ahead" 음성 액션은 미디어 플레이어 애플리케이션이 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너 뛰기 위한 음성 액션일 수 있다. 예를 들어, "skip ahead" 음성 액션은 미디어 플레이어 애플리케이션이 예컨대 애플리케이션 개발자(101a~101n) 또는 사용자(105)에 의해 지정된 30초, 60초 또는 다른 시간량과 같은 사전 결정된 시간량만큼 빨리 감기하도록할 수 있다. 따라서, 미디어 플레이어 애플리케이션이 노래를 재생중이고 상기 "skip ahead" 음성 액션을 수신할 때 노래에서 1 분 15초이면, 미디어 플레이어 애플리케이션은 노래에서 1 분 45초 지점으로 건너 뛸 수 있다. 일부 예에서, 상기 "skip ahead" 음성 액션이 수신될 때 노래에 남아있는 시간이 사전 결정된 시간보다 적으면, 미디어 플레이어 애플리케이션은 미디어 플레이어 애플리케이션이 다음 노래로 건너 뛰기하도록 할 수 있다.
전사는 전사의 적어도 일부가 트리거 구문의 하나 이상의 용어와 매칭한다는 결정에 기초하여 트리거 구문을 매칭하는 것으로 식별된다. 예를 들어, 전사와 트리거 구문 사이의 매칭은 트리거 구문의 용어들 각각과 매칭하는 전사의 용어들 각각에 기초하여 식별될 수 있다. 일부 구현예에서, 매칭은 전사의 모든 용어보다 적은 용어들이 트리거 구문과 매칭한다는 결정에 기초하여 식별될 수 있다. 예를 들어, 비록 트리거 구문의 일부 용어들이 전사에 없더라도, 전사가 트리거 구문의 용어들 이외에 용어들을 포함하거나 또는 전사의 하나 이상의 용어가 트리거 구문의 용어들과 상이하면, 전사는 트리거 구문과 매칭될 수 있다. 따라서, 전사들 "new email", "send new email" 또는 "open up new email" 각각은, 상기 전사들 각각이 트리거 구문과 정확하게 일치하지 않더라도, 트리거 구문 "open new email"과 매칭하는 것으로 식별될 수 있다. 일부 예에서, 전사가 트리거 구문에 의해 지정된 순서와 다른 순서로 트리거 구문의 일부 또는 모든 용어를 포함하는 경우, 전사는 트리거 구문과 매칭하는 것으로 식별될 수 있다. 예를 들어, 전사 "lock phone"은 "phone lock" 트리거 구문과 매칭하는 것으로 식별될 수 있다. 일부 예에서, 전사가 트리거 구문의 용어들에 대한 하나 이상의 동의어 또는 대체 용어를 포함한다는 결정에 기초하여 전사는 트리거 구문과 일치하는 것으로 식별될 수 있다. 따라서, 전사들 "draft new email(새 이메일 쓰기)" 또는 "open new email"은, "write"의 동의어인 "draft" 및 "write"에 대한 식별된 대체 용어인 "open"에 기초하여 트리거 구문 "write new email"과 일치하는 것으로 식별될 수 있다.
특정 음성 액션이 식별되면, 음성 액션 선택기(150)는 특정 음성 액션과 관련된 활동 또는 액션이 개시되도록 하는 액션 트리거 데이터를 사용자 디바이스(104)로 제공한다. 그렇게하기 위해, 음성 액션 선택기(150)는 사용자 디바이스(104)를 제어하기 위한 정보를 획득하여 선택된 음성 액션과 관련된 액션 또는 활동을 수행할 수 있다. 일부 예에서, 선택된 음성 액션과 관련된 액션 또는 활동을 수행하도록 사용자 디바이스(104)를 제어하는 것은, 선택된 음성 액션의 의도를 발화(firing)하는 것을 포함할 수 있다. 선택된 음성 액션의 의도를 발화시키면 선택된 음성 액션과 관련된 활동 또는 액션을 개시하기 위한 정보가 사용자 디바이스(104)에 제공될 수 있다.
예를 들어, 선택된 음성 액션에 대한 의도는 음성 액션과 연관된 애플리케이션에 의해 수행될 음성 액션과 관련된 액션 또는 활동을 유발하는 데이터를 포함할 수 있다. 선택된 의도는 사용자 디바이스(104)로 전송될 수 있어, 사용자 디바이스(104)에 의한 의도의 수신은 요청으로서 동작하거나 음성 액션과 관련된 액션 또는 활동의 수행을 트리거할 수 있다. 대안적으로, 음성 액션 선택기(150)는 상기 선택된 음성 액션이 사용자 디바이스(104)에서 수행되게 하고 사용자 디바이스(104)로 정보를 전송할 수 있는 액션 트리거 데이터로서 동작할 다른 데이터를 결정할 수 있다. 예를 들어, 의도는 음성 액션을 수행하기 위해 사용자 디바이스(104)에 의해 수행될 액션 또는 활동만을 식별할 수 있으며, 음성 액션 선택기(150)는 사용자 디바이스(104)상의 애플리케이션을 제어하여 음성 액션과 관련된 액션 또는 활동을 수행할 수 있는 액션 트리거 데이터를 결정할 수 있다. 결정된 액션 트리거 데이터는 액션 트리거 데이터가 음성 액션과 관련된 액션 또는 활동을 수행하게 하도록 사용자 디바이스(104)로 전송될 수 있다.
예를 들어, 후보 음성 액션들의 세트 중에서 "skip ahead" 음성 액션을 선택한 후, 음성 액션 선택기(150)는 "skip ahead" 음성 액션에 대한 의도를 사용자 디바이스(104)로 전송하거나, 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 건너 뛰도록 사용자 디바이스(104)상에서 실행중인 미디어 플레이어 애플리케이션을 제어하기 위한 다른 정보를 획득한다. 음성 액션 선택기(150)는 노래에서 사전 결정된 시간만큼 건너 뛰도록 미디어 플레이어 애플리케이션을 제어하기 위한 데이터를 사용자 디바이스(104)로 전송하여, 사용자 디바이스(104)상에서 실행중인 미디어 플레이어 애플리케이션을 위한 프로세스를 차례로 개시하여 예를 들어 데이비드 보위의 노래 "페임(Fame)"에서 사전 결정된 시간만큼 건너 뛰도록 노래에서 사전 결정된 시간만큼 앞으로 건너 뛰게 한다.
간략하게, 논의된 바와 같이, 도 1a의 시스템은 하나 이상의 애플리케이션 개발자(101a~101n)에 대응하는 하나 이상의 단말기(102a~102n)를 포함한다. 단말기(102a~102n)는 각각 음성 액션 시스템(100)과, 예를 들어 하나 이상의 유선 또는 무선 네트워크를 통해 통신할 수 있다. 단말기들(102a-102n) 각각은 셀룰러 전화, 스마트 폰, 태블릿 컴퓨터, 랩탑 컴퓨터, PDA(personal digital assistant), 넷북 컴퓨터 또는 다른 모바일 컴퓨팅 디바이스와 같은 모바일 디바이스 일 수 있거나, 데스크탑 컴퓨터 또는 다른 고정형 컴퓨터와 같은 임의의 고정형 컴퓨팅 디바이스일 수 있다. 사용자(105)와 관련된 사용자 디바이스(104)는 또한 하나 이상의 유선 또는 무선 네트워크를 통해 음성 액션 시스템(100)과 통신할 수 있으며, 여기서 사용자 디바이스(104)는 또한 셀룰러 폰, 스마트 폰, 태블릿 컴퓨터, 넷북, PDA, 랩탑 컴퓨터, 데스크탑 컴퓨터 또는 다른 컴퓨팅 디바이스일 수 있다.
도 1a에 도시된 예시적인 음성 액션 시스템(100)은 애플리케이션 음성 액션 데이터베이스(110), 운영 체제(OS) 음성 액션 데이터베이스(120), 음성 인식 엔진(130), 컨텍스트 분석 엔진(140) 및 음성 액션 선택기(150)를 포함한다. 상기 애플리케이션 음성 액션 데이터베이스(110), OS 음성 액션 데이터베이스(120), 음성 인식 엔진(130), 컨텍스트 분석 엔진(140) 및 음성 액션 선택기(150)를 포함하는 음성 액션 시스템(100)의 각각의 구성 요소는, 전자 통신의 교환을 가능하게 하는 하나 이상의 유선 또는 무선 데이터 경로를 통해 음성 액션 시스템(100)의 하나 이상의 다른 구성 요소들과 통신할 수 있다. 일부 구현예에서, 음성 액션 시스템(100)의 하나 이상의 구성 요소는 그의 기능들이 단일 구성 요소에 의해 수행되도록 결합될 수 있거나, 또는 그의 기능들이 2개 이상의 구성 요소에 걸쳐 분산되도록 2개 이상의 구성 요소에 의해 표현될 수 있다. 음성 액션 시스템(100)의 구성 요소들은 단일 서버 시스템과 같은 단일 컴퓨팅 디바이스 상에 구현될 수 있거나, 구성 요소들 간의 전자 통신의 교환을 가능하게 하는 하나 이상의 유선 또는 무선 데이터 경로를 통해 통신하는 다수의 컴퓨팅 디바이스 상에 구현될 수 있다.
도 1b는 애플리케이션 개발자가 음성 액션에 대한 검색 가능 예제들을 설정하고 적절한 검색 가능 예제들을 사용자에게 제공할 수있게 하는 음성 액션 시스템(100)을 도시한다. 애플리케이션 개발자에 의해 제출된 검색 가능 예제들은 특정 애플리케이션에 대해 애플리케이션 개발자가 설정한 새로운 음성 액션과 관련될 수 있으며, 새로운 음성 액션을 트리거하는 방법을 사용자들에게 알리기 위해 애플리케이션이 설치된 사용자 디바이스들에 제시될 수 있다.
도 1b에 도시된 바와 같이, 음성 액션 시스템(100)은 애플리케이션 개발자(110a~110n)에 의해 제출된 검색 가능 예제들을 지정하는 데이터를 단말기(102a~102n)로부터 수신한다. 애플리케이션 개발자(101a~101n)에 의해 음성 액션 시스템(100)으로 제출된 각각의 검색 가능 예제들은 특정 소프트웨어 애플리케이션을 위해 애플리케이션 개발자(101a~110n)에 의해 제출된 새로운 음성 액션에 관련될 수 있다. 애플리케이션 개발자에 의해 제출된 검색 가능 예제들은 음성 액션 시스템(100)의 음성 액션 검색 가능 예제 데이터베이스(170)에 저장될 수 있다.
예를 들어, 일부 구현예에서, 애플리케이션 개발자(10a~11n)는 음성 액션 시스템(100)으로 정보를 제출하여, 도 1a과 관련하여 설명된 바와 같이 새로운 음성 액션을 정의할 수 있다. 새로운 음성 액션을 정의하는 정보에 부가하여, 애플리케이션 개발자(10a~11n)는 새로운 음성 액션을 트리거하는 방법을 소프트웨어 애플리케이션의 사용자에게 알릴 수 있는 하나 이상의 검색 가능 예제들을 지정하는 정보를 제출할 수 있다. 일부 구현예에서, 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 정보는 상기 검색 가능 예제가 관련된 새로운 음성 액션을 특정할 수 있고, 새로운 음성 액션이 사용자에게 이용 가능할 때의 컨텍스트를 특정할 수 있고, 새로운 음성 액션을 트리거하는데 사용되는 하나 이상의 트리거 용어를 특정하거나 다른 정보를 포함할 수 있다. 일부 구현예에서, 애플리케이션 개발자(101a~101n)에 의해 음성 액션 시스템(100)으로 제출된 검색 가능 예제를 지정하는 정보는 검색 가능 예제의 컨텐츠를 포함할 수 있다. 예를 들어, 음성 액션 시스템(100)으로 전송된 정보는 음성 액션을 트리거하는 방법을 사용자에게 알리기 위해 사용자들에게 제공될 수 있는 텍스트 통지 또는 메시지, 이미지, 비디오, 오디오 데이터 또는 다른 컨텐츠를 포함할 수 있다. 애플리케이션 개발자(101a~110n)는 동일한 음성 액션에 대해 다수의 검색 가능 예제를 정의하는 정보를 제공할 수 있는데, 상이한 검색 가능 예제는 상이한 사용자, 상이한 유형의 사용자 디바이스 또는 상이한 상황 하에 대한 프리젠테이션을 위한 것일 수 있다.
예를 들어, 미디어 플레이어 애플리케이션에 대한 "skip ahead"라는 음성 액션을 개발하는 애플리케이션 개발자(101a~110n)는 상기 "skip ahead" 음성 액션에 대한 검색 가능 예제를 정의하는 단말기(102a-102n)를 사용하여 정보를 제출할 수 있다. 상기 "skip ahead" 음성 액션에 대한 검색 가능 예제를 정의하기 위해, 애플리케이션 개발자(101a~10n)는 "skip ahead" 음성 액션을 트리거하는데 사용된 하나 이상의 트리거 용어들을 지정하는 정보 및 상기 "skip ahead" 음성 액션이 사용자에 의해 트리거될 수 있을 때의 컨텍스트를 지정하는 정보를 제출할 수 있다. 예를 들어, 검색 가능 예제를 정의하는 상기 제출된 정보는 트리거 용어 "skip ahead"뿐만 아니라 미디어 플레이어 애플리케이션이 사용자 디바이스의 포어그라운드에서 동작하고 오디오 플레이어 모드에서 동작중일 때 음성 액션이 수행될 수 있음을 지정하는 컨텍스트를 특정할 수 있다. 추가 또는 다른 정보가 검색 가능 예제를 설정하도록 애플리케이션 개발자(101a~110n)에 의해 제출될 수도 있다. 예를 들어, 애플리케이션 개발자(101a~101n)는 사용자들에게 제시될 메시지 "skip ahead라고 말하세요("Try Saying 'Skip Ahead'")"와 같은 검색 가능 예제의 컨텐츠를 지정하는 정보를 제출할 수 있다. 다른 예에서, 애플리케이션 개발자(101a~101n)는 음성 액션 시스템(100)에 의해 생성될 음성 액션에 대한 검색 가능 예제를 위해 새로운 음성 액션을 지정하는 정보를 제공하면 된다. 일부 구현예에서, 애플리케이션 개발자(101a~101n)는 "skip ahead"라는 음성 액션에 대한 다수의 검색 가능 예제를 정의하는 정보를 제출할 수 있다. 예를 들어, 애플리케이션 개발자(101a~101n)는 " 'Skip Ahead'라고 말하세요" 메시지와 같은 "skip ahead" 음성 액션을 위한 텍스트 검색 가능 예제에 대한 정보뿐만 아니라 "Skip Ahead'라고 말하세요"라는 음성의 레코딩과 같은 "skip ahead"라는 음성 액션에 대한 오디오 검색 가능 예제에 대한 정보를 제출할 수 있다.
다른 구현예에서, 상기 음성 액션 시스템(100)은 애플리케이션 개발자(101a~101n))가 제안된 검색 가능 예제들 중에서 단지 선택할 수 있도록 애플리케이션 개발자(101a~101n)에게 검색 가능 예제들을 제안할 수 있다. 예를 들어, 애플리케이션 개발자(110-110n)가 애플리케이션에 대한 새로운 음성 액션을 설정할 때, 음성 액션 시스템(100)은 새로운 음성 액션에 대한 하나 이상의 후보 검색 가능 예제를 생성하도록 구성될 수 있다. 음성 액션 시스템(100)은 애플리케이션 개발자(101a~101n)가 새로운 음성 액션에 대해 설정할 하나 이상의 검색 가능 예제를 선택할 수 있게 하는 애플리케이션 개발자(101a~110n)의 단말기(102a~102n)로 정보를 제공한다. 그 후, 애플리케이션 개발자(101a~101n)의 선택을 나타내는 데이터가 단말기(102a~102n)에 의해 음성 액션 시스템(100)으로 제공될 수 있다.
예를 들어, 애플리케이션 개발자(101a~101n)가 도 1a와 관련하여 기술된 바와 같이 "skip ahead" 음성 액션을 정의하는 정보를 제출할 때, 음성 액션 시스템(100)은 "skip ahead" 음성 액션에 대한 하나 이상의 후보 검색 가능 예제를 생성할 수 있다. 후보 검색 가능 예제들은 예를 들어 텍스트 메시지 "'Skip Ahead'라고 말하세요", 텍스트 메시지 "30초 빨리 감기로 'Skip Ahead'라고 말하세요"("Say 'Skip Ahead' to Fast Forward 30 Seconds") 및 "'Skip Ahead'라고 말하세요"라는음성의 레코딩을 포함할 수 있다. 음성 액션 시스템(100)은 후보 검색 가능 예제들을 애플리케이션 개발자(110a~110n)의 단말기(102a~102n)로 제공할 수 있고, 애플리케이션 개발자(110a~110n)는 하나 이상의 후보 검색 가능 예제를 선택하도록 단말기(102a~102n)에게 입력을 제공할 수 있다.
음성 액션 시스템(100)은 검색 가능 예제를 특정하거나 선택하는 정보를 애플리케이션 개발자(110a~110n)의 단말기(102a~102n)로부터 수신할 수 있고, 수신된 정보에 기초하여 검색 가능 예제에 대한 데이터를 생성할 수 있다. 예를 들어, 음성 액션 시스템(100)은 검색 가능 예제를 정보를 수신할 수 있고, 상기 수신된 데이터를 유도하여 특정 데이터 유형 또는 포맷으로 검색 가능 예제를 생성할 수 있다. 음성 액션 시스템(100)이 선택을 위해 애플리케이션 개발자(110a~110n)에게 대한 검색 가능 예제들을 제안하는 일부 구현예에서, 음성 액션 시스템은 애플리케이션 개발자(101a~101n)에게 제안들을 제공하기 전에, 특정 데이터 유형 또는 포맷의 검색 가능 예제를 생성할 수 있다. 이러한 구현예에서, 특정의 제안된 검색 가능 예제에 대한 사용자 선택이 수신되면, 음성 액션 시스템(100)은 음성 액션 시스템(100)이 생성한 선택되지 않은 검색 가능 예제들을 폐기할 수 있고, 선택된 검색 가능 예제는 저장을 위해 유지할 수 있다. 대안적으로, 음성 액션 시스템(100)은 제안된 검색 가능 예제들에 대응하는 검색 가능 예제들을 생성하지 않고 애플리케이션 개발자(110a~110n)에게 검색 가능 예제들을 제공할 수 있다. 따라서, 애플리케이션 개발자(110a~110n)에게 제공된 제안은 잠재적 검색 가능 예제들일 수 있다. 특정의 제안된 검색 가능 예제의 선택이 수신되면, 음성 액션 시스템(100)은 특정 데이터 유형 또는 포맷의 검색 가능 예제를 생성할 수 있다.
검색 가능 예제를 지정하는 정보를 유도하는 것은 사용자 디바이스에서 검색 가능 예제의 프리젠테이션에 필요할 수 있는 특정 데이터 유형 또는 포멧의 검색 가능 예제를 생성하며, 유사한 방식으로 새로운 음성 액션을 정의하는 정보를 유도하면 새로운 음성 액션을 트리거하기 위한 의도가 생성된다. 예를 들어, 애플리케이션 개발자(101a~101n)가 새로운 음성 액션을 트리거하는데 사용된 트리거 용어 및 새로운 음성 액션이 트리거될 수 있을 때의 컨텍스트만을 지정하는 정보를 제출할 때, 음성 액션 시스템(100)은, 사용자에게 제시될 텍스트 메시지의 생성 및 포멧팅, 특정 검색 가능 예제와 호환 가능한 디바이스들을 나타내는 정보 또는 사용자 디바이스에서 검색 가능 예제를 프리젠테이션하는데 필요한 정보와 같이, 검색 가능 예제를 프리젠테이션하는데 필요한 정보를 지정하는 특정 데이터 유형 또는 포맷의 아이템을 생성하기 위한 정보를 포함할 수 있다.
유도된 검색 가능 예제는 음성 액션 검색 가능 예제 데이터베이스(170)에 저장될 수 있다. 예를 들어, 음성 액션 검색 가능 예제 데이터베이스(170)는 하나 이상의 상이한 애플리케이션, 운영 체제 또는 디바이스들에 대해 수행될 수 있는 하나 이상의 상이한 음성 액션에 관한 검색 가능 예제들을 포함할 수 있으며, 유도된 검색 가능 예제는 음성 액션 검색 가능 예제 데이터베이스(170)에 저장될 수 있다. 음성 액션 검색 가능 예제 데이터베이스(170)는 음성 액션 시스템(100)에 포함될 수 있거나, 하나 이상의 유선 또는 무선 데이터 경로를 통해 음성 액션 시스템(100)에 의해 액세스될 수 있다.
도 1b에 도시된 바와 같이, 음성 액션 시스템(100)은 또한 사용자 디바이스(104)로부터 수신된 검색 가능 예제들에 대한 요청을 처리할 수 있고, 하나 이상의 검색 가능 예제가 사용자(105)에게 제시되도록 하는 정보를 사용자 디바이스(104)에 제공함으로써 요청에 응답할 수 있다. 예를 들어, 새로운 음성 액션에 대한 검색 가능 예제가 음성 액션 검색 가능 예제 데이터베이스(170)에 저장된 후에, 음성 액션 시스템(100)은 사용자 디바이스(104)로부터 수신된 검색 가능 예제들에 대한 요청을 검출할 수 있고, 이에 응답하여 사용자 디바이스(104)에 제공할 검색 가능 예제들을 식별할 수 있다.
도 1b에 도시된 바와 같이, 하나의 예에서, 사용자(105)는 "내가 어떤 음성 명령을 말할 수 있지?"라는 음성 입력을 사용자 디바이스(104)로 제공하여 검색 가능 예제들을 요청할 수 있다. 사용자 디바이스(104)는 하나 이상의 유선 또는 무선 데이터 경로를 통해 음성 액션 시스템(100)으로의 접속을 가질 수 있고, 음성 입력에 대응하는 오디오 데이터를 음성 인식 엔진(130)에 의해 그것이 수신되는 음성 액션 시스템으로 전송할 수 있다. 음성 인식 엔진(130)은 수신된 오디오 데이터에 기초하여 음성 입력의 전사를 생성할 수 있다. 예를 들어, 사용자(105)의 음성 입력에 대응하는 오디오 데이터를 수신하면, 음성 인식 엔진(130)은 "내가 어떤 음성 명령을 말할 수 있지?"라는 전사를 생성할 수 있고 음성 액션 시스템(100)의 검색 가능 예제 선택기(160)로 해당 전사를 제공할 수 있다.
검색 가능 예제들에 대한 요청은 다른 방식으로 음성 액션 시스템(100)으로 제공될 수 있다. 예를 들어, 사용자 디바이스(104)는, 예를 들어, 사용자 디바이스(104)에서 특정 키 또는 심볼을 누름으로써 도움말(help) 요청 입력을 제공하거나 검색 가능 예제들을 요청하는 사용자에 응답하여 음성 액션 시스템(100)으로부터 검색 가능 예제들을 요청할 수 있다. 사용자 디바이스(104)는 또한 명시적인 사용자 입력을 요구하지 않고 음성 액션 시스템(100)으로부터 검색 가능 예제들을 요청할 수 있다. 예를 들어, 사용자 디바이스(104)는 새로운 애플리케이션이(예를 들어, 사용자 디바이스(104)의 포어그라운드로 가져온) 사용자 디바이스(104)에서 론칭되거나 재개었음을 결정할 수 있거나, 애플리케이션 또는 사용자 디바이스(104)의 상태가 변경되었음을 결정할 수 있거나, 사용자 디바이스(104)에 디스플레이된 컨텐츠가 변경되었음을 결정할 수 있고, 그 결정에 응답하여 음성 액션 시스템(100)으로부터 검색 가능 예제들을 요청할 수 있다.
검색 가능 예제들을 요청하기 위해, 예를 들어 사용자(105)의 음성 입력에 응답하여, 사용자 디바이스(104)는 또한 사용자 디바이스(104) 및 사용자 디바이스(104)상에서 동작하는 애플리케이션들의 컨텍스트를 결정할 수 있다. 사용자 디바이스(104)는 컨텍스트 정보를 컨텍스트 분석 엔진(140)에 의해 그것이 수신되는 음성 액션 시스템(100)으로 전송할 수 있다. 컨텍스트 분석 엔진(140)은 수신된 컨텍스트 정보를 처리하여 검색 가능 예제들을 식별하는 것과 관련된 컨텍스트를 결정할 수 있다.
예를 들어, 도 1a와 관련하여 논의된 바와 같이, 컨텍스트 분석 엔진(140)은 사용자 디바이스(104)로부터 다양한 컨텍스트 정보를 수신할 수 있고, 사용자 디바이스(104)의 사용자(105)에게 제시되어야 하는 검색 가능 예제를 식별하는 것과 관련된 컨텍스트 정보의 서브 세트를 결정할 수 있다. 예를 들어, 컨텍스트 분석 엔진(140)은 미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 동작중이고, 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에서 동작중임이며, 사용자 디바이스(104)의 배터리 수명이 50%임을 나타내는 컨텍스트 정보를 사용자 디바이스(104)로부터 수신할 수 있다. 컨텍스트 분석 엔진(140)은 배터리 수명 정보가 사용자(105)에게 제시할 검색 가능 예제들을 결정하는 것과 관련이 없다고 결정할 수 있으며, 따라서 미디어 플레이어 애플리케이션이 사용자 디바이스(140)의 포어그라운드에서 동작중이고 오디오 플레이어 모드에서 동작중임을 나타내는 컨텍스트 정보만 검색 가능 예제 선택기(160)로 제공될 수 있다.
검색 가능 예제 선택기(160)는 음성 인식 엔진(130)으로부터 사용자(104)의 음성 입력의 전사를 수싱하고 컨텍스트 분석 엔진(140)으로부터 상기 관련 컨텍스트를 수신하여, 수신된 정보에 기초하여 사용자(105)로의 출력을 위해 사용자 디바이스(104)에게 제공할 하나 이상의 검색 가능 예제를 식별할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 전사에 기초하여 사용자(105)의 음성 입력이 검색 가능 예제를 위한 요청인지를 결정할 수 있다.
음성 입력이 검색 가능 예제를 위한 요청이라는 결정에 기초하여, 검색 가능 예제 선택기(160)는 컨텍스트 분석 엔진(140)으로부터 수신된 컨텍스트를 만족하는 컨텍스트들과 관련된 검색 가능 예제들을 식별하기 위해 음성 액션 검색 가능 예제 데이터베이스(170)를 액세스할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 동작중이고 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에서 동작중인을 나타내는 컨텍스트 정보를 수신할 수 있으며, 따라서 디바이스의 포어그라운드에서 작동하고 오디오 플레이어 모드에 있는 미디어 플레이어 애플리케이션을 포함하는 컨텍스트를 또한 지정하는 음성 액션 검색 가능 예제 데이터베이스(170)에 저장된 검색 가능 예제들을 식별할 수 있다. 검색 가능 예제들을 식별하기 위해, 검색 가능 예제 선택기(160)는 컨텍스트 분석 엔진(140)으로부터 수신된 컨텍스트를 음성 액션 검색 가능 예제 데이터베이스(170)에 포함된 검색 가능 예제들 각각과 비교하거나, 또는 수신된 컨텍스트를 음성 액션 검색 가능 예제 데이터베이스(170)에 저장된 검색 가능 예제들의 서브 세트와 비교할 수 있다. 상기 비교에 기초하여, 검색 가능 예제 선택기(160)는 사용자(105)로의 프리젠테이션을 위해 사용자 디바이스(104)에게 제공할 하나 이상의 검색 가능 예제를 식별할 수 있다.
도 1b에 도시된 예에서, 검색 가능 예제 선택기(160)는 "skip ahead"라는 음성 액션에 대해 애플리케이션 개발자(110a~110n)에 의해 설정된 검색 가능 예제에 의해 지정된 컨텍스트가 컨텍스트 분석 엔진(140)으로부터 수신된 컨텍스트와 매칭하는지 결정할 수 있다. 이 결정에 응답하여, 검색 가능 예제 선택기(160)는 "skip ahead"라는 음성 액션에 대한 검색 가능 예제가 출력되게 하는 정보를 사용자 디바이스(104)로 전송할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 특정 데이터 타입 또는 포맷의 "skip ahead" 음성 액션에 대한 상기 유도된 검색 가능 예제를 사용자 디바이스(104)로 전송할 수 있고, 유도된 정보가 수신되면 사용자 디바이스(104)는 출력을 위해 "skip ahead" 음성 액션에 대한 검색 가능 예제를 제공할 수 있다. 예를 들어, 사용자 디바이스(104)는 "skip ahead" 음성 액션에 대한 검색 가능 예제에 대응하는 상기 유도된 정보를 수신할 수 있고, 수신된 정보는 "Try Saying 'Skip Ahead"라는 텍스트 통지를 디스플레이하도록 사용자 디바이스(104)를 제어할 수 있다. 제어할 수 있다. 사용자(105)에게 "Try Saying 'Skip Ahead"라는 검색 가능 예제의 프리젠테이션은 "skip ahead"라는 음성 액션이 사용자 디바이스(104) 및 그 위에서 실행중인 애플리케이션들의 현재 상태에 대한 이용 가능한 음성 액션임을 사용자에게 알릴 수 있다. 따라서, 사용자(105)는 이후에 음성 입력 "skip ahead"를 제공할 수 있으며, 상기 음성 입력은 도 1a와 관련하여 논의된 바와 같이 처리되어, 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너 뛸 수 있다.
일부 구현예에서, 검색 가능 예제 선택기(160)는 사용자 디바이스(104)에서의 프리젠 테이션을 위한 다수의 검색 가능 예제를 선택할 수 있고, 선택된 다수의 검색 가능 예제에 대응하는 정보를 사용자 디바이스(104)로 전송할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 컨텍스트 분석 엔진(140)으로부터 수신된 컨텍스트가 "skip ahead" 음성 액션에 대한 검색 가능 예제에 의해 지정된 컨텍스트를 만족할뿐만 아니라 미디어 플레이어 애플리케이션을 제어하기 위한 "일시 정지(pause)"라는 음성 액션 및 사용자 디바이스(104)가 홈 스크린으로 복귀하게 하는 사용자 디바이스(104)의 동작돠 관련된 "홈(home)"이라는 음성 액션에 대한 검색 가능 예제에 의해 지정된 컨텍스트를 만족하는지 결정할 수 있다. 검색 가능 예제 선택기(160)는 검색 가능 예제들 각각에 대한 데이터를 사용자 디바이스(104)로 제공하여 상기 검색 가능 예제들 3개 모두가 제시되거나 사용자(105)에게 제시되거나 제시되도록 이용 가능할 수 있다.
도 1c는 애플리케이션 개발자들이 음성 액션들에 대한 검색 가능 예제들을 설정하고 검색 가능 예제들이 사용자들에게 제공될 수 있게 하는 음성 액션 시스템(100)을 나타낸다. 아래에서 논의되는 바와 같이, 도 1c는 도 1b과 관련하여 논의된 많은 동일한 동작들을 수행한다. 그러나, 도 1c에서, 이러한 동작들 중 다수는 음성 액션 시스템(100)과 반대로 사용자 디바이스(104)에서 수행된다. 도 1b의 음성 액션 시스템(100)에 의해 수행된 구성 요소들 및 동작들 중 일부를 사용자 디바이스(104)에게 위임함으로써, 검색 가능 예제들은 사용자 디바이스(104)가 오프라인이더라도 사용자 디바이스(104)에게 제공될 수 있다. 이러한 구현은 또한 검색 가능 예제들이 사용자 디바이스(104)에서 출력될 때마다 음성 액션 시스템(100)에 접촉(contact)하기 위한 사용자 디바이스(104)의 요구를 감소시킴으로써 사용자 디바이스(104)에 의해 사용되는 네트워크 대역폭을 감소시킨다. 네트워크에 액세스하지 않고 검색 가능 예제들을 제공하는 기능(ability)은 또한 검색 가능 예제들을 제공함으로써 발생하는 전력 소비를 줄일 수 있고 사용자들에게 보다 신속하게 검색 가능 예제들을 제공할 수 있게 한다.
도 1c에 도시 된 바와 같이, 애플리케이션 개발자(110a~110n)는 도 1b에서와 같이 단말기(102a~102n)를 사용하여 음성 액션 시스템(100)으로 새로운 음성 액션들에 대한 검색 가능 예제들을 지정하는 정보를 각각 제출할 수 있다. 제출된 각각의 검색 가능 예제를 지정하는 정보는 특정 소프트웨어 애플리케이션에 대한 음성 액션에 대응할 수 있다. 음성 액션에 대응하는 새로운 검색 가능 예제를 위해 음성 액션 시스템(100)으로 제출된 정보는, 예를 들어, 음성 액션을 트리거하는데 사용된 하나 이상의 트리거 용어를 지정하는 정보, 음성 액션에 대해 지정된 컨텍스트, 검색 가능 예제가 출력될 때 사용자에게 제시될 통지 컨텐츠 또는 기타 정보를 포함할 수 있다. 대안적으로, 음성 액션 시스템(100)은 새로운 음성 액션을 설정하기 위해 애플리케이션 개발자(101a~101n)로부터 정보를 수신할 수 있으며, 음성 액션 시스템(100)은 애플리케이션 개발자(101a~101n)가 선택할 수 있는 후보 검색 가능 예제들을 생성할 수 있다. 이러한 구현예에서, 음성 액션 시스템(100)은 후보 검색 가능 예제들을 그들의 대응하는 단말기(102a~102n)에서 애플리케이션 개발자(101a~101n)에게 제시할 수 있고, 후보 검색 가능 예제들 중 하나 이상의 선택을 나타내는 정보를 수신할 수 있다.
수신된 정보에 기초하여, 음성 액션 시스템(100)은 검색 가능 예제들을 생성하여 음성 액션 검색 가능 예제 데이터베이스(170)에 저장한다. 음성 액션검색 가능 예제 데이터베이스(170)는 하나 이상의 상이한 애플리케이션, 운영 체제 또는 디바이스들을 제어하기 위한 음성 액션들에 대응하는 검색 가능 예제들을 포함할 수 있다.
도 1c에 도시된 바와 같이, 음성 액션 검색 가능 예제 데이터베이스(170)에 저장된 적절한 검색 가능 예제들이 사용자 디바이스에 제공되고, 여기서 이들은 각 디바이스에 고유한 애플리케이션 메타 데이터 백엔드에 저장된다. 예를 들어, 사용자 디바이스(104)는 사용자 디바이스(104) 및 애플리케이션 또는 사용자 디바이스(104)상에 설치된 운영 체제와 관련된 검색 가능 예제들을 저장하도록 구성된 애플리케이션 메타 데이터 백엔드(180)를 포함할 수 있다. 사용자 디바이스(104)는 하나 이상의 유선 또는 무선 데이터 경로를 통해 음성 액션 시스템(100)과 정기적으로 통신하여 사용자 디바이스(104), 사용자 디바이스(104)상에 설치된 애플리케이션들 및/또는 사용자 디바이스(104)의 운영 체제와 관련된 검색 가능 예제들을 식별할 수 있다. 상기 사용자 디바이스(104), 사용자 디바이스(104)상에 설치된 애플리케이션들 및/또는 사용자 디바이스(104)의 운영 체제와 관련되는 것으로 식별된 검색 가능 예제들은 음성 액션 검색 가능 예제 데이터베이스(170)로부터 검색되어 사용자 디바이스(104)의 애플리케이션 메타 데이터 백엔드(180)에 저장될 수 있다.
예를 들어, 일부 구현예에서, 상기 사용자 디바이스(104)는, 사용자 디바이스(104), 사용자 디바이스(104)상에 설치된 애플리케이션들 및/또는 사용자 디바이스(104)의 운영 체제와 관련되는 것으로 식별되는 음성 액션 검색 가능 예제 데이터베이스(170)에 저장된 검색 가능 예제들을 수신하도록 구성된 애플리케이션 인터페이스(190)를 구비할 수 있다. 애플리케이션 인터페이스(190)는 식별된 검색 가능 예제들을 음성 액션 검색 가능 예제 데이터베이스(170)로부터 획득하여 상기 식별된 검색 가능 예제들을 애플리케이션 메타 데이터 백엔드(180)에 저장할 수 있다. 음성 액션 시스템(100)은 사용자 디바이스(104) 또는 사용자 디바이스(104)상에 설치된 소프트웨어와 관련된 검색 가능 예제들을 자동으로 식별하여, 관련(relevant) 검색 가능 예제들을 사용자 디바이스(104)에 제공하도록 구성될 수 있다. 예를 들어, 음성 액션 시스템(100)은 검색 가능 예제들이 업데이트되도록 요청하는 사용자 입력에 응답하여, 사용자 디바이스(104)의 상태가 변경되었다고 결정한 것에 응답하여, 상이한 애플리케이션들 또는 애플리케이션들의 버전들이 사용자 디바이스(104)상에 설치되어 있다고 결정한 것에 응답하여, 상이한 운영 체제 또는 운영 체제의 버전이 사용자 디바이스(104)상에서 동작하는 것으로 결정한 것에 응답하여 또는 다른 이벤트들에 응답하여, 주기적으로 애플리케이션 메타 데이터 백엔드(180)에서의 저장을 위해 관련 검색 가능 예제들을 사용자 디바이스(104)에 제공할 수 있다.
사용자 디바이스(104)에서 검색 가능 예제들을 저장하는 것에 부가하여, 도 1c의 시스템은 사용자 디바이스(104)에서, 사용자(105)에게 검색 가능 예제들을 제시하기 위해 도 1b과 관련하여 논의된 구성 오소들을 포함한다. 예를 들어, 도 1c에 도시된 사용자 디바이스(104)는 도 1a 및 도 1b의 컨텍스트 분석 엔진(140)과 유사한 컨텍스트 분석 엔진(140)뿐만 아니라 도 1b의 검색 가능 예제 선택기(160)와 유사한 검색 가능 예제 선택기(160)를 포함한다. 부가적으로, 사용자 디바이스(104)는 도 1b의 음성 인식 엔진(130)과 유사한 방식으로 음성 입력들의 전사를 생성할 수 있다..
애플리케이션 인터페이스(190) 또는 사용자 디바이스(104)의 다른 구성 요소는 검색 가능 예제들이 사용자 디바이스(104)에서 출력을 위해 제공되어야 하는 때를 결정할 수 있다. 예를 들어, 사용자 디바이스(104)의 사용자(105)는 "내가 말할 수 있는 음성 명령은 무엇이지?"라는 음성 입력을 제공할 수 있고 사용자 디바이스(104)는 음성 입력의 전사를 생성할 수 있다. 애플리케이션 인터페이스(190)는 음성 입력의 전사를 수신하여 음성 입력이 검색 가능 예제들에 대한 요구인지를 결정할 수 있다. 대안적으로, 애플리케이션 개발자(190)는 그렇지 않으면 사용자 디바이스(104)에서 출력하기 위한 검색 가능 예제들을 제공하도록 결정할 수 있다. 예를 들어, 애플리케이션 인터페이스(190)는, 사용자 디바이스(104)의 현재 상태 또는 사용자 디바이스(104)상에서 동작하는 애플리케이션 또는 운영 체제에 대한 검색 가능 예제들을 요청하는 사용자 디바이스(104)의 버튼 상의 프레스 앤 홀드(press and hold) 기능(feature)과 같은, 사용자가 사용자 디바이스(104)에 다른 입력을 제공하였는지를 결정할 수 있다. 애플리케이션 인터페이스(190)는 또한 사용자 디바이스(104)의 상태, 사용자 디바이스(104)상에 설치된 애플리케이션 또는 사용자 디바이스(104)의 운영 체제가 변경되었다는 결정에 기초하여 검색 가능 예제들을 제공하기로 결정할 수 있다. 일부 예에서, 검색 가능 예제들은, 사용자(105)의 이전 음성 입력이 음성 액션에 대한 임의의 공지된 트리거 용어와 매칭하지 않는다는 결정에 응답하여, 사용자 디바이스(104)에게 제공되어, 사용자(105)에게 사용될 수 있는 트리거 용어들을 알릴 수 있다.
애플리케이션 인터페이스(190)에 의해 수행되는 것으로 위에서 기술되었지만, 일부 구현예에서, 사용자 디바이스(104)의 다른 구성 요소가 검색 가능 예제들이 사용자 디바이스(104)에서의 출력을 위해 제공되어야 한다고 결정할 수 있다. 예를 들어, 도 1c에 도시된 바와같이, 음성 입력 "내가 말할 수 있는 음성 명령은 무엇이지?"의 전사가 검색 가능 예제 선택기(160)로 제공될 수 있고, 전사에 기초하여 검색 가능 예제 선택기(160)는 검색 가능 예제들이 사용자 디바이스(104)에서출력하기 위해 제공되어야 한다고 결정할 수 있다. 유사하게, 검색 가능 예제 선택기(160)는, 사용자 디바이스(104)에서의 다른 사용자 입력을 나타내는 정보와 같은 다른 정보에 기초하여 또는 사용자 디바이스(104)의 상태, 사용자 디바이스(104)상에 설치된 및/또는 실행중인 애플리케이션 및/또는 사용자 디바이스(104)의 운영 체제가 변경되었음을 검출하는 것에 기초하여 사용자 디바이스(104)에서 검색 가능 예제들을 제시하도록 결정할 수 있다.
애플리케이션 인터페이스(190)가 사용자 디바이스(104)에서 출력하기 위한 검색 가능 예제들을 제공하도록 결정할 때, 애플리케이션 인터페이스는 사용자 디바이스(104)의 상태, 사용자 디바이스(104)상에 설치된 및/또는 실행중인 하나 이상의 애플리케이션 및/또는 사용자 디바이스(104)의 운영 체제를 나타내는 사용자 디바이스(104)에 대한 컨텍스트 정보를 획득할 수 있다. 도 1b와 관련하여 논의된 구현과 유사하게, 컨텍스트 정보를 획득할 때, 애플리케이션 인터페이스(190)는 컨텍스트 정보가 처리되는 컨텍스트 분석 엔진(140)에게 컨텍스트 정보를 제공할 수 있다.
컨텍스트 분석 엔진(140)은 컨텍스트 정보를 획득하고, 해당 정보를 처리하여 사용자 디바이스(104)에서 출력하기 위한 검색 가능 예제들을 식별하는 것과 관련된 컨텍스트를 식별할 수 있다. 예를 들어, 컨텍스트 분석 엔진(140)이 미디어 플레이어 애플리케이션이 현재 사용자 디바이스(104)의 포어그라운드에서 실행 중이고, 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에 있으며, 사용자 디바이스(104)의 배터리 수명이 현재 50%임을 나타내는 컨텍스트 정보를 애플리케이션 인터페이스(190)로부터 수신하면, 컨텍스트 분석 엔진(140)은 미디어 플레이어 애플리케이션이 포어그라운드에서 실행 중이고 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에 있다는 것을 나타내는 컨텍스트 정보만이 사용자 디바이스(104)에 제시할 검색 가능 예제들을 선택하는 것과 관련이 있다고 결정할 수 있다. 따라서, 컨텍스트 분석 엔진(140)은 사용자 디바이스(104)상에 설치된 미디어 플레이어 애플리케이션이 포어그라운드에서 동작하고 오디오 플레이어 모드에 있다는 것은 나타내고 사용자 디바이스(104)의 배터리 수명은 나타내지 않는 컨텍스트를 검색 가능 예제 선택기(160)로 제공할 수 있다.
검색 가능 예제 선택기(160)는 컨텍스트 분석 엔진(140)으로부터 컨텍스트를 수신하고, 상기 수신된 컨텍스트를 사용하여 출력을 제공하기 위해 애플리케이션 메타 데이터 백엔드(180)에 저장된 검색 가능 예제들을 식별할 수 있다. 예를 들어, 도 1b와 관련하여 논의된 바와 같이, 검색 가능 예제 선택기(160)는 수신된 컨텍스트를 애플리케이션 메타 데이터 백엔드(180)에 저장된 검색 가능 예제들에 의해 지정된 컨텍스트들과 비교하여, 출력을 제공하기 위한 하나 이상의 검색 가능 예제를 식별할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 컨텍스트 분석 엔진(140)으로부터 수신된 컨텍스트가 "skip ahead" 음성 액션에 대한 검색 가능 예제의 컨텍스트와 일치한다고 결정하는 것에 기초하여 "skip ahead" 음성 액션에 대한 검색 가능 예제를 식별할 수 있다. 일부 구현예에서, 검색 가능 예제 선택기(160)는 사용자 디바이스(104)에서 출력을 위해 제공할 다수의 검색 가능 예제를 식별할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 "skip ahead" 음성 액션, 미디어 플레이어 애플리케이션을 제어하기 위한 "pause" 음성 액션 및 홈 스트린으로 복귀하도록 사용자 디바이스(104)를 제어하기 위한 "home" 음성 액션에 대한 검색 가능 예제들을 선택할 수 있다.
검색 가능 예제 선택기(160)는 선택된 검색 가능 예제들을 사용자 디바이스(104)에서 출력하기 위해 제공할 수 있다. 예를 들어, 검색 가능 예제 선택기(160)는 애플리케이션 인터페이스(190)를 통해 출력을 위해 상기 선택된 검색 가능 예제들을 제공할 수 있다. 도 1c에 도시된 바와 같이, 예를 들어, "skip ahead" 음성 액션에 대한 상기 선택된 검색 가능 예제가 사용자 디바이스(104)에서 출력될 수 있고, 이에 따라 텍스트 통지 "'Skip Ahead'라고 말하세요"가 사용자 디바이스(104)의 디스플레이에서 출력되도록 한다.
도 2는 음성 액션들 및 음성 액션들에 대한 검색 가능 예제들의 설정을 가능하게 하도록 구성된 예시적인 음성 액션 시스템(200)을 나타낸다. 간략히, 음성 액션 시스템(200)은 검증 기준(215), 검색 가능 예제 유도 엔진(220) 및 검색 가능 예제들을 저장하도록 구성된 음성 액션 검색 가능 예제 데이터베이스(235)에 대한 액세스를 갖는 검증 엔진(210)을 포함한다. 음성 액션 시스템(200)은 단말기(202)를 통해 음성 액션들 및 음성 액션들에 대한 검색 가능 예제들을 애플리케이션 개발자(201)가 설정할 수 있게 하는 서비스 또는 툴을 제공하는 플랫폼으로서 동작할 수 있다. 일부 구현예에서, 애플리케이션 개발자(201)는 2016년 3월 1일자로 출원 된 미국 특허 출원 제15/057,453호에 개시된 방법에 따라 음성 액션들을 설정할 수 있으며, 이는 본 명세서에 그 전체가 참고로 포함된다.
도 2에 도시된 바와 같이, 애플리케이션 개발자(201)는 음성 액션 시스템(200)에 정보를 제출하여 새로운 음성 액션을 정의할 수 있다. 일부 예들에서, 음성 액션을 정의하는 정보는 음성 액션에 대한 의도를 생성하기 위해 음성 액션 시스템(200)이 처리할 수 있는 포맷의 문법으로서 제출될 수 있다. 예를 들어, 애플리케이션 개발자(201)는 미디어 플레이어 애플리케이션에 대해 새로운 음성 액션이 설정되어야 한다는 것을 지정하는 정보를 단말기(202)에 입력할 수 있다. 애플리케이션 개발자(201)는 새로운 음성 액션이 트리거 구문인 "skip ahead"를 사용하여 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 스킵하도록 미디어 플레이어 애플리케이션을 제어하도록 지정할 수 있다. 애플리케이션 개발자(201)는 "skip ahead" 음성 액션이, 미디어 플레이어 애플리케이션이 사용자 디바이스의 포어그라운드에서 동작하고 오디오 플레이어 모드에서 동작할 때만 단지 트리거될 수 있도록 "skip ahead" 음성 액션에 대한 컨텍스트를 추가로 지정할 수 있다. 애플리케이션 개발자(201)에 의해 제출된 정보는 음성 액션 시스템(200)에 의해 처리될 수 있는 문법의 형태(form)일 수 있거나, 애플리케이션 개발자(201)에 의해 제출된 정보는 음성 액션 시스템(200)에 제출하기 위한 문법 포맷으로 변환될 수 있다.
새로운 음성 액션을 정의하는 정보는 하나 이상의 유선 또는 무선 데이터 경로를 통해 단말기(202)에 의해 음성 액션 시스템(200)으로 제출될 수 있다. 음성 액션 시스템(200)은 애플리케이션 개발자들에 의해 제출된 새로운 음성 액션들을 검증하도록 구성된 검증 엔진(210)에서 새로운 음성 액션을 정의하는 상기 정보를 수신할 수 있다. 예를 들어, 검증 엔진(210)은 애플리케이션 개발자(201)에 의해 제출된 새로운 음성 액션을 정의하는 문법을 수신할 수 있다. 새로운 음성 액션을 검증하기 위해, 검증 엔진(210)은 새로운 음성 액션을 정의하는 것과 관련된 하나 이상의 규칙을 포함할 수 있는 하나 이상의 검증 기준(215)을 액세스할 수 있다. 검증 엔진(210)은 액세스된 검증 기준(215)의 관점에서 새로운 음성 액션을 정의하는 정보를 평가할 수 있다.
예를 들어, 도 2에 도시된 "skip ahead" 음성 액션에 대해, 검증 엔진(210)은 미디어 플레이어 애플리케이션이 기존의 애플리케이션인지 여부를 결정하여, 상기 지정된 애플리케이션에 대해 새로운 음성 액션들이 생성될 수 있도록할 수 있다. 검증 엔진(210)은 트리거 구문이 길이가 한 발화 음절 이상이어야 함을 지정하는 규칙을 액세스할 수 있고, 트리거 구문이 "skip ahead"가 한 발화 음절보다 길다고 결정하는 것에 기초하여 트리거 구문 "skip ahead"를 검증할 수 있다. 상기 검증 규칙은 미디어 플레이어 애플리케이션이 수행할 수 있는 가능한 액션들의 리스트를 특정할 수 있으며, 미디어 플레이어 애플리케이션이 현재 애플리케이션에서 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너뛸 수 있다고 결정하는 것에 기초하여 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너뛰도록 상기 지정된 액션을 검증할 수 있다. 검증 엔진(210)은 문법에 의해 지정된 컨텍스트를 검증하여 해당 컨텍스트가 모순을 포함하지 않도록 보장할 수 있다. 예를 들어, 검증 엔진은 두 조건 중 하나만 만족할 수 있으므로 지정된 컨텍스트가 애플리케이션이 포어그라운드에서 동작하고 또한 새로운 음성 액션이 활성화되도록 백그라운드에서 동작하지 않도록할 수 있다. 다른 검증 기준(215)이, 애플리케이션 개발자(201)에 의해 제출된 새로운 음성 액션이 유효하고 새로운 음성 액션에 대한 의도를 생성하도록 유도될 수 있는지 여부를 결정하기 위해, 새로운 음성 액션을 정의하는 정보에 적용될 수 있다.
검증의 다른 형태가 검증 엔진(210)에 의해 수행될 수 있다. 예를 들어, 검증 엔진(210)은 애플리케이션 개발자(201)가 상기 지정된 애플리케이션에 대한 새로운 음성 액션들을 생성할 권한이 있는지 여부를 결정할 수 있고, 새로운 음성 액션을 생성하는데 필요한 요금이 지불되었는지 여부를 결정할 수 있거나, 그렇지 않으면 애플리케이션 개발자(201)에 의해 제출된 문법이 새로운 음성 액션에 대한 의도를 생성할 수 있는지 여부를 결정할 수 있다.
애플리케이션 개발자(201)에 의해 제출된 새로운 음성 액션을 정의하는 문법 또는 다른 정보가 유효한 것으로 결정한 것에 기초하여, 음성 액션 시스템(200)은 음성 액션을 정의하는 정보를 유도하여 도 1a와 관련하여 논의된 바와 같이 새로운 음성 액션에 대한 의도를 생성할 수 있다. 생성된 의도는 애플리케이션 음성 액션 데이터베이스(110)와 유사한 음성 액션 데이터베이스에 저장될 수 있으며, 그런 다음 음성 액션은 애플리케이션 개발자(201)에 의해 배치(deploy)되어 사용자 디바이스상에 애플리케이션이 설치된 사용자들에게 애플리케이션을 사용 가능하게할 수 있다. 예를 들어, "skip ahead" 음성 액션을 정의하는 문법 또는 다른 정보는 음성 액션 시스템(200)에 의해 유도되어, "skip ahead"음성 액션에 대한 의도를 생성할 수 있으며, "skip ahead" 음성 액션에 대한 의도는 애플리케이션 음성 액션 데이터베이스에 저장될 수 있다. 애플리케이션 개발자(201)는 "skip ahead" 음성 액션을 배치하여 사용자 디바이스 상에 미디어 플레이어 애플리케이션이 설치된 사용자들에게 "skip ahead" 음성 액션을 사용 가능하게할 수 있다.
도 2에 도시된 바와 같이, 새로운 음성 액션에 대한 의도를 생성하는 것에 부가하여, 음성 액션 시스템(200)은 또한 상기 새로운 음성 액션을 정의하는 정보를 유도하여, 새로운 음성 액션에 대한 하나 이상의 후보 검색 가능 예제를 생성할 수 있다. 예를 들어, 새로운 음성 액션을 정의하는 상기 검증된 정보는 검색 가능 예제 유도 엔진(220)으로 제출될 수 있고, 검색 가능 예제 유도 엔진(220)은 새로운 음성 액션을 정의하는 정보를 유도하여 새로운 음성 액션에 대한 하나 이상의 후보 검색 가능 예제를 생성할 수 있다.
일부 구현예에서, 검색 가능 예제 유도 엔진(220)은 하나 이상의 후보 검색 가능 예제를 생성하기 위해 새로운 음성 액션을 정의하는 정보를 유도할 수 있다. 후보 검색 가능 예제들은 사용자 디바이스로 제공될 때, 사용자 디바이스에서 출력될 검색 가능 예제에 의해 지정된 통지를 사용자 디바이스가 제공하도록 제어 또는 인에이블할 수 있는 포맷일 수 있다. 예를 들어, 음성 액션을 정의하는 데이터를 유도하는 것은, 사용자 디바이스에 의해 수신되거나 사용자 디바이스에서 트리거될 때, 사용자 디바이스에서 관련 음성 액션을 트리거하는데 사용될 수 있는 트리거 용어들을 디바이스의 사용자에게 알리기 위해 텍스트, 이미지, 비디오, 오디오 또는 출력에 대한 다른 통지를 제시하도록 사용자 디바이스를 제어하는 특정 데이터 아이템 또는 특정 포멧의 데이터 아이템을 생성할 수 있다.
일부 구현예에서, 후보 의도를 생성하기 위해 새로운 음성 액션을 정의하는 데이터를 유도하는 것은, 관련 음성 액션을 트리거하기 위한 트리거 구문을 지정하는 하나 이상의 텍스트 구문, 발화된 음성 구문, 이미지 또는 비디오를 생성하는 것을 포함할 수 있다. 예를 들어, 검색 가능 예제 유도 엔진(220)은 새로운 음성 액션에 대한 트리거 구문을 나타내는 데이터를 수신하여, 하나 이상의 후보 검색 가능 예제들에 대응하는 하나 이상의 후보 구문을 생성할 수 있다. 도 2에 도시된 예에서, 검색 가능 예제 유도 엔진(220)은 "'Skip Ahead'라고 말하세요", "30초 빨리 감기로 'Skip Ahead'라고 말하세요"("Say 'Skip Ahead' to Fast Forward 30 Seconds"), "오케이, 컴퓨터, Skip Ahead'라고 말하세요"("Say, 'Okay Computer, Skip Ahead")와 같은 후보 구문을 생성할 수 있다. 검색 가능 예제 유도 엔진(22)은 또한 후보 검색 가능 예제들에 대한 후보 통지들로서, 후보 구문들의 발화 버전들, 새로운 음성 액션과 관련된 트리거 구문 "skip ahead"를 나타내는 후보 이미지들 또는 트리거 구문 "skip ahead"를 나타내는 후보 비디오들을 생성할 수 있다.
일부 구현예에서, 음성 액션에 대한 트리거 구문은 하나 이상의 열거 유형과 같은 하나 이상의 플레이스홀더를 포함할 수 있으며, 검색 가능 예제 유도 엔진(22)은 플레이스홀더들을 포함하는 통지들과 관련된 후보 검색 가능 예제들 생성할 수 있다. 예를 들어, 음성 명령은 트리거 구문인 "즐겨찾기에 %현재 노래를 추가"("add %CurrentSong to favorites")와 관련될 수 있으며, 여기서 "%CurrentSong"은 미디어 플레이어 애플리케이션에서 현재 재생중인 노래를 나타내는 플레이스홀더이다. 검색 가능 예제 유도 엔진(22)은 구문 "'즐겨찾기에 '%현재 노래 추가'라고 말하세요"("Try Saying, 'Add %CurrentSong to Favorites'")을 포함하는 후보 검색 가능 예제를 생성할 수 있으며, 여기서 플레이스홀더는 구문이 출력을 위해 제공될 때 미디어 플레이어 애플리케이션에서 현재 재생하고 있는 노래의 명칭으로 대체될 수 있다.
일부 구현예에서, 검색 가능 예제 유도 엔진(22)에 의해 생성된 후보 검색 가능 예제들은 또한 새로운 음성 액션이 트리거될 수 있을 때 각각 컨텍스트를 지정하여, 사용자 디바이스의 상태, 사용자 디바이스상에서 실행중인 애플리케이션 또는 사용자 디바이스의 운영 체제가 상기 대응하는 음성 액션에 의해 지정된 컨텍스트와 매칭할 때만 사용자 디바이스에서 새로운 음성 액션에 대한 검색 가능 예제들이 출력될 수 있도록 한다. 이러한 방식으로, 특정 상황에서 사용자들에게 제공되는 검색 가능 예제들은 해당 시점에 트리거될 수 있는 음성 액션들의 검색 가능 예제들로 제한된다.
이전에 논의된 바와 같이, 컨텍스트는 음성 액션이 인에이블되기 위해 만족되어야 하는 하나 이상의 조건, 즉 컨텍스트가 만족되지 않으면 음성 액션이 음성 액션과 연관된 트리거 구문에 의해 트리거되지 않도록 하는 조건을 특정한다. 애플리케이션 개발자(201)는 하나 이상의 다른 요구 사항 또는 조건을 갖는 컨텍스트를 정의할 수 있다.
일부 경우들에서, 컨텍스트는 사용자 디바이스의 특정 상태를 요구할 수 있거나, 사용자 디바이스가 특정 속성들을 가질 것을 요구할 수 도 있다. 예를 들어, 컨텍스트는 사용자 디바이스가 켜지는지(파워 온) 또는 잠기는지(locked), 또는 사용자 디바이스가 카메라, 자이로 스코프, 기압계 또는 다른 구성 요소 또는 피터를 갖는지 여부를 특정할 수 있다. 따라서, 예를 들어, 사용자 디바이스에 설치된 애플리케이션을 사용하여 사진을 촬영하기 위한 음성 액션은 사용자 디바이스로부터 수신된 컨텍스트 정보가 사용자 디바이스가 카메라를 가지고 있지 않음을 나타내는 경우에는 인에이블되지 않을 수 있다.
다른 예들에서, 컨텍스트는 특정 애플리케이션들이 사용자 디바이스의 포어그라운드 또는 백그라운드에서 동작할 것을 요구할 수 있다. 예를 들어, 도 2에 도시 된 바와 같이, "skip ahead" 음성 액션은 미디어 플레이어 애플리케이션이 사용자 디바이스(204)의 포어그라운드에서 동작하고 있을 때만 인에이블될 수 있지만, 미디어 플레이어 애플리케이션이 닫혀있거나 사용자 디바이스(204)의 백그라운드에서 동작하지 않는 경우에는 인에이블되지 않을 수 있다. 다른 예들에서, 음성 액션은 애플리케이션이 백그라운드에서 동작할 때 음성 액션을 인에이블하는 컨텍스트로 정의될 수 있다. 예를 들어, 소셜 네트워크 애플리케이션은 다른 사용자와의 연결 요청을 수락하는 연관된 음성 액션을 가질 수 있으며, 사용자는 소셜 네트워크 애플리케이션이 사용자 디바이스의 백그라운드에서만 동작하는 경우에도 음성 액션을 트리거하여 다른 사용자와의 접속 요청을 수락할 수 있다. .
컨텍스트는 부가적으로 또는 대안적으로 특정 애플리케이션이 음성 액션이 인에이블될 음성 액션에 대해 특정 모드에서 동작하도록 요구할 수 있다. 모드는 애플리케이션이 실행중인 특정 활동 또는 태스크일 수 있다. 예를 들어, 이메일 애플리케이션은 이메일 작성 모드에 있다고 결정될 수 있고, 미디어 플레이어 애플리케이션은 오디오 플레이어 모드에 있는 것으로 결정될 수 있고, 카메라 애플리케이션은 카메라 모드 또는 사진 앨범 뷰어 모드에 있다고 결정될 수 있다. 사용자 디바이스는 특정 애플리케이션이 어떤 모드에서 동작되는지를 결정할 수 있고, 특정 음성 액션이 인에이블되는지 여부를 결정하는데 사용되는 컨텍스트 정보에 그 정보를 포함할 수 있다.
또한, 일부 경우에서, 컨텍스트는 애플리케이션 모드가 특정 상태를 갖을 것을 요구할 수 있다. 예를 들어, 컨텍스트는 미디어 플레이어 애플리케이션이 영화 플레이어 모드에 있을 때 그리고 영화 플레이어 모드에서 애플리케이션의 상태가 애플리케이션이 현재 영화를 재생 중일 때만 영화를 "일시 정지(pause)"하는 음성 액션이 인에이블될 수 있음을 나타낼 수 있다. 일부 경우에서, 사용자 디바이스는 특정 모드에서 동작하는 애플리케이션의 상태를 결정할 수 없을 수도 있다. 이러한 경우, 특정 모드에서 애플리케이션의 상태를 나타내는 정보를 제공하도록 애플리케이션을 구성해야할 수도 있다. 따라서, 특정 애플리케이션에 대한 컨텍스트에서 그러한 조건을 지정하는 것은, 사용자 디바이스에 의해 제공된 컨텍스트 정보가 필요한 상태 정보를 포함하도록 하기 위해 애플리케이션 자체에 대한 수정을 필요로할 수 있다.
일부 예들에서, 음성 액션에 대해 지정된 컨텍스트는 음성 액션을 인에이블하기 위해 특정 객체들 또는 객체들의 유형이 사용자 디바이스의 스크린 상에 디스플레이될 것을 요구할 수 있다. 예를 들어, 컨텍스트는 이미지가 사용자 디바이스의 디스플레이에서 출력되는 경우에만 "이미지 저장(save image)" 음성 액션이 인에이블되도록 지정하거나, 텍스트가 디스플레이상에 제시되는 경우에만 "하이라이트" 음성 액션이 인에이블되도록 지정할 수 있다. 다른 예에서, 컨텍스트 정보가 숫자 "1" 또는 글 머리 기호(bullet point)가 사용자 디바이스의 디스플레이상에서 제시되고 있음을 나타내거나 또는 디스플레이에 제시되는 아이템들의 리스트가 존재하는 경우에만 음성 액션 "첫번째 것을 선택(pick the first one)"과 같은 리스트내의 특정 아이템을 선택하기 위한 음성 액션이 사용 가능할 수 있다. 일부 예에서, 사용자 디바이스는 주어진 순간, 예를 들어 애플리케이션이 디스플레이를 제어할 때 어떤 정보가 그의 디스플레이에서 제시되고 있는지를 결정할 수 없을 수도 있다. 따라서, 음성 액션이 인에이블되도록 특정 정보 또는 정보의 유형이 디스플레이에서 출력되어야 한다고 컨텍스트가 지정하면, 해당 정보를 제공하기 위해 애플리케이션을 수정해야할 수도 있다. 그런 다음 사용자 디바이스는 특정 음성 액션이 인에이블되어야 하는지 여부를 결정하는데 사용되는 컨텍스트 정보로 사용자 디바이스의 디스플레이에서 무엇이 출력되고 있는지를 나타내는 정보를 포함할 수 있다.
다른 예에서, 컨텍스트는 통지 또는 특정 유형의 통지가 사용자 디바이스에서 출력되도록 요구할 수 있다. 예를 들어, 새로운 이메일이 수신되었을 때 사용자에게 팝-업 통지를 제공하는 이메일 애플리케이션은 새로운 이메일 통지가 애플리케이션에 의해 사용자 디바이스의 디스플레이로 출력될 때 인에이블되는 "이메일 읽기(read email)"와 관련된 음성 액션을 가질 수 있다. 따라서, 컨텍스트 정보는 통지가 사용자 디바이스의 디스플레이로 출력되고 있는지를 나타낼 수 있고, 그 정보는 "이메일 읽기" 음성 액션이 인에이블되어야하는지 여부를 결정하는데 사용될 수 있다.
일부 예에서, 컨텍스트는 음성 액션이 인에이블되도록 사용자 디바이스가 특정 지리적 위치에 있을 것을 요구할 수 있다. 사용자 디바이스는 GPS(Global Positioning System) 기술을 사용하거나 다른 수단을 사용하여 특정 지리적 위치와 관련된 인터넷 연결에 액세스하는 것에 기초하여, 셀룰러 타워 삼각 측량을 사용하여 그의 지리적 위치를 결정할 수 있다. 사용자 디바이스는 컨텍스트 정보에 그의 지리적 위치를 나타내는 정보를 포함할 수 있고, 음성 액션은 컨텍스트의 지리적 위치 요구 사항을 만족시키는 지리적 위치에 기초하여 인에이블될 수 있다. 예를 들어, 소매업자의 애플리케이션에 대한 음성 액션과 관련된 컨텍스트는 소매업자 애플리케이션을 갖는 사용자 디바이스가 소매업자의 상점들 중 하나의 범위 내에 있는 경우에만 특정 음성 액션이 처리되어야 함을 특정할 수 있다. 소매업자 애플리케이션에 대한 음성 액션은 사용자 디바이스의 지리적 위치가 소매업자의 상점들 중 하나의 범위 내에 있는 지리적 위치에 대응함을 표시하는 사용자 디바이스로부터의 컨텍스트 정보에 기초하여 인에이블될 수 있다.
애플리케이션 개발자가 정의한 컨텍스트는 컨텍스트와 관련된 음성 액션이 특정 시간, 날짜, 월, 계절 또는 다른 일시적인 조건이 충족되는 경우에만 활성화된다는 것을 나타낼 수도 있다. 예를 들어, 컨텍스트는 사용자 디바이스 또는 다른 정보 소스로부터 수신된 컨텍스트 정보가 시간 조건을 만족하는 경우에만 특정 음성 액션이 인에이블된다는 것을 지정할 수 있다. 예를 들어, 컨텍스트 정보가 음성 액션이 제출된 시간이 오전 6시에서 오후 10시 사이임을 나타내는 경우에만 음성 액션이 인에이블될 수 있도록 뱅킹 애플리케이션에 대한 음성 액션은 일시적인 조건을 포함하는 컨텍스트와 연관될 수 있다.
컨텍스트는 음성 액션이 트리거될 수 있도록 인에이블하는 다른 요구 사항을 지정할 수 있다. 예를 들어, 음성 액션 시스템(200)은 사용자 디바이스 이외의 소스들로부터의 정보에 액세스할 수 있거나, 하나 이상의 정보 소스들로부터 획득된 사용자 디바이스로부터 정보를 수신할 수 있다. 다른 소스들로부터 수신된 정보는 음성 액션을 인에이블하기 위한 컨텍스트 정보일 수 있다. 이러한 정보는 예를 들어 날씨 정보, 사용자의 감정 정보, 뉴스 정보, 주식 시장 정보 또는 기타 정보를 포함할 수 있다. 예를 들어, 음성 액션 시스템(200)은 하나 이상의 유선 또는 무선 네트워크 접속, 예컨대 인터넷 접속 또는 서버 시스템에 대한 다른 네트워크 접속을 통해 다른 정보 소스들에 액세스할 수 있다. 음성 액션에 대한 컨텍스트는 관련 사용자 디바이스의 위치에 대응하는 지리적 영역에 대한 날씨 정보가 해당 위치에서 비가오고 있음을 나타내는 경우에만 음성 액션이 인에이블됨을 특정할 수 있다. 컨텍스트 조건이 충족되는지 여부를 체크하기 위해, 음성 액션 시스템(200)은 하나 이상의 네트워크 접속을 통해 사용자 디바이스의 알려진 위치에 대한 날씨 정보에 액세스할 수 있다.
일부 구현예에서, 검색 가능 예제 유도 엔진(220)은 상이한 운영 체제, 상이한 유형의 사용자 디바이스, 또는 애플리케이션의 상이한 버전에 대응하는 후보 검색 가능 예제에 대한 다수의 버전을 생성할 수 있다. 하나의 특정 데이터 유형 또는 포맷이 모든 유형의 디바이스, 운영 체제 또는 애플리케이션의 버전에서 검색 가능 예제들을 출력하는데 사용되지 않을 수 있기 때문에, 검색 가능 예제 유도 엔진(220)은 검색 가능 예제의 다수의 버전을 생성할 수 있다. 따라서, 검색 가능 예제의 정확한 버전이 다른 사용자 디바이스들에 제공되어 해당 사용자 디바이스에서 검색 가능 예제의 올바른(proper) 출력을 보장한다. 부가적으로 또는 대안적으로, 일부 구현예에서, 검색 가능 예제는 상이한 사용자 디바이스, 운영 체제 또는 애플리케이션 버전에서의 제공을 위해 수정될 수 있다. 예를 들어, 생성된 검색 가능 예제는 예를 들어 특정 크기, 해상도, 컬러 맵 등을 사용하여 하나의 포맷의 이미지 통지를 포함할 수 있고, 상기 이미지 통지는 상이한 유형의 사용자 디바이스, 상이한 운영 체제 또는 애플리케이션의 상이한 버전내에서의 프리젠테이션을 위해 수정되거나 포맷될 수 있다,
일부 구현예에서, 후보 검색 가능 예제들은 선택을 위해 애플리케이션 개발자(201)에게 제시될 수 있다. 예를 들어, 애플리케이션 개발자(201)에 의해 제출 된 새로운 음성 액션에 대한 후보 검색 가능 예제들을 생성할 때, 음성 액션 시스템(200)은 애플리케이션 개발자(201)가 새로운 음성 액션을 위해 구현하고자 하는 특정 검색 가능 예제들을 선택할 수 있게 하는 애플리케이션 개발자(201)의 단말기(202)에 정보를 제공할 수 있다. 도 2에 도시된 예에서, 검색 가능 예제 유도 엔진(220)은 후보 구문들 "Try Saying 'Skip Ahead'", "Say 'Skip Ahead' to Fast Forward 30 Seconds" 및 "Say, 'Okay Computer, Skip Ahead"을 나타내는 정보를 단말기(202)에서 제시할 수 있고, 애플리케이션 개발자(201)는 하나 이상의 후보 구문을 선택할 수 있다. 예를 들어, 애플리케이션 개발자는 후보 구문 "Try Saying 'Skip Ahead"을 선택하여 "skip ahead" 음성 액션에 대한 검색 가능 예제가 "Try Saying 'Skip Ahead"라는 사용자에게 출력되는 텍스트 통지가 되기를 원한다는 것을 나타낼 수 있다.
부가적으로 또는 대안적으로, 애플리케이션 개발자(201)는 음성 액션에 대한 검색 가능 예제들을 정의하는 정보를 제출할 수 있다. 예를 들어, 도 1b 및 도 1c와 관련하여 논의된 바와 같이, 애플리케이션 개발자(201)는 음성 액션에 대한 검색 가능 예제를 정의하는 정보를 음성 액션 시스템(200)으로 제출할 수 있다. 검색 가능 예제를 정의하는 제출된 정보는 "skip ahead" 음성 액션을 지정하는 정보와 같이 검색 가능 예제가 속하는 음성 액션을 지정할 수 있고, 검색 가능 예제가 "skip ahead" 음성 액션에 대해 지정된 컨텍스트와 같이 사용자 디바이스들에서 출력할 수 있어야 하는 경우 컨텍스트를 저장할 수 있고, 그리고 음성 액션에 대한 검색 가능 예제로서 제시될 트리거 용어를 포함하는 통지에 대한 컨텐츠를 제출할 수 있다. 도 2에 도시된 예에서, 애플리케이션 개발자(201)는 "skip ahead" 음성 액션을 지정하는 정보, "skip ahead" 음성 액션에 대한 검색 가능 예제는 미디어 플레이어 애플리케이션이 포어그라운드에서 동작하고 오디오 플레이어 모드에 있을 때만 출력할 수 있어야 한다는 컨텍스트를 음성 액션 시스템(201)으로 제출할 수 잇고, 음성 액션 시스템(200)으로 "Try Saying 'Skip Ahead'"라는 오디오 클립을 제출할 수 있다. 사용자 디바이스에서 출력하기 위해 제공될 수 있는 텍스트 구문, 이미지, 비디오 또는 기타 컨텐츠와 같은 다른 컨텐츠가 애플리케이션 개발자(201)에 의해 제출될 수 있으며, 이는 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너뛰기할 음성 액션이 "skip ahead"라는 음성 입력을 제공함으로써 트리거될 수 있다는 것을 디바이스의 사용자에게 알릴 수 있다. 일부 예에서, 애플리케이션 개발자(201)가 검색 가능 예제를 지정하는데 보다 적은, 추가 또는 상이한 정보가 필요할 수 있다. 예를 들어, 애플리케이션 개발자(201)는 음성 액션을 나타내는 정보 및 검색 가능 예제와 관련된 통지로서 출력될 컨텐츠만을 제출할 것을 요구할 수 있다.
음성 액션 시스템(200)은 애플리케이션 개발자(201)에 의해 선택된 후보 검색 가능 예제들을 나타내는 데이터를 수신할 수 있고, 선택된 후보 검색 가능 예제들을 음성 액션 검색 가능 예제 데이터베이스(235)에 저장할 수 있다. 음성 액션 시스템(200)은 또한 애플리케이션 개발자(201)에 의해 정의된 하나 이상의 검색 가능 예제를 정의하는 데이터를 수신할 수 있고, 적절한 검색 가능 예제 포맷으로 데이터 아이템들을 생성하기 위해 하나 이상의 검색 가능 예제를 정의하는 데이터를 유도할 수 있으며, 유도 프로세스에 의해 생성된 검색 가능 예제들을 음성 액션 검색 가능 예제 데이터베이스(235)에 저장할 수 있다.
예를 들어, 텍스트 구문 "Try Saying 'Skip Ahead"를 포함하는 검색 가능 예제의 선택을 나타내는 데이터를 수신하는 것에 기초하여, 음성 액션 시스템은 상기 검색 가능 예제를 음성 액션 검색 가능 예제 데이터베이스(235)에 저장할 수 있다. 도 2에 도시된 바와 같이, 저장된 검색 가능 예제는 특정 데이터 아이템 또는 "skip ahead" 음성 액션를 지정하는 "예제 Y(Example Y)"로 명명된 특정 포멧의 데이터, 음성 액션에 대한 트리거 구문 "skip ahead", 검색 가능 예제가 트리거될 때 출력을 위해 제공되는 통지 "Try Saying ' Skip Ahead'" 및 검색 가능 예제가 미디어 플레이어 애플리케이션이 포어그라운드에서 동작하고 오디오 플레이어 모드에 있어야 하는 출력에 사용 가능할 때의 컨텍스트일 수 있다.
유사하게, 애플리케이션 개발자(201)에 의해 정의된 검색 가능 예제는 검색 가능 예제에 대한 특정 포맷의 데이터 아이템을 생성하도록 유도될 수 있다. 일부 예에서, 애플리케이션 개발자(201)에 의해 정의된 검색 가능 예제는 음성 액션이 관련된 애플리케이션들의 상이한 버전들, 상이한 디바이스들 또는 상이한 운영 체제에 대응하는 검색 가능 예제의 버전들과 같은 검색 가능 예제의 하나 이상의 버전을 생성하도록 유도될 수 있다. 검색 가능 예제 유도 엔진(220)에 의해 수행된 유도 프로세스 동안 생성된 하나 이상의 검색 가능 예제가 제공되어 음성 액션 검색 가능 예제 데이터베이스(235)에 저장될 수 있다. 예를 들어, 애플리케이션 개발자(201)에 의해 정의되고 검색 가능 예제를 생성하기 위해 유도된 검색 가능 예제는 "예제 X"로서 음성 액션 검색 가능 예제 데이터베이스(235)에 저장될 수 있다.
음성 액션 검색 가능 예제 데이터베이스(235)는 하나 이상의 애플리케이션에 대한 하나 이상의 음성 액션에 대응하는 다수의 검색 가능 예제를 저장할 수 있다. 예를 들어, 음성 액션 검색 가능 예제 데이터베이스(235)는 다수의 상이한 애플리케이션, 디바이스들 또는 운영 체제들에 대해 개발된 다수의 상이한 음성 액션 각각에 대한 다수의 검색 가능 예제를 포함할 수 있다. 음성 액션 검색 가능 예제 데이터베이스(235)는 룩업 테이블, 링크된 리스트, 노드들 및 노드들사이의 에제들을 포함하는 그래프와 같은 구조화된 테이블일 수 있거나, 검색 가능 예제들이 나중에 식별되어 사용자 디바이스, 운영 체제 또는 애플리케이션의 적절한 상태를 위해 제공될 수 있는 검색 가능 예제들을 저장할 수 있는 임의의 다른 데이터 구조일 수 있다. 일부 경우에서, 음성 액션 검색 가능 예제 데이터베이스(235)의 각 검색 가능 예제는 검색 가능 예제가 관련된 애플리케이션을 지정하는 정보, 검색 가능 예제가 호환 가능한 애플리케이션의 버전, 검색 가능 예제가 호환 가능한 디바이스 또는 디바이스들, 검색 가능 예제가 호환 가능한 운영 체제 또는 운영 체체들, 또는 적절한 검색 가능 예제들이 이러한 정보에 대한 검색 가능 예제 자체에 포함된 데이터를 파싱할 필요없이 음성 액션 검색 가능 예제 데이터베이스(235)에서 식별될 수 있도록 특정 검색 가능 예제를 선택하는 것과 관련된 다른 정보와 연관될 수 있다. 이러한 배열은 출력을 제공하기 위해 적절한 검색 가능 예제들의 신속한 식별을 가능하게할 수 있다.
음성 액션 검색 가능 예제 데이터베이스(235)에 저장된 검색 가능 예제들은 사용자 디바이스들에 제공되어 사용자 디바이스들이 검색 가능 예제들을 출력하도록 제어하거나 가능하게할 수 있다. 예를 들어, 도 1b의 구현예서, 음성 액션 검색 가능 예제 데이터베이스(235)에 저장된 하나 이상의 검색 가능 예제는 사용자 디바이스로부터 검색 가능 예제들에 대한 요청을 수신하는 것에 응답하여 출력을 위해 사용자 디바이스에 제공될 수 있다. 또는, 도 1c의 구현예에 도시된 바와 같이, 음성 액션 검색 가능 예제 데이터베이스(235) 내의 하나 이상의 검색 가능 예제들은 사용자 디바이스로 제공되어 사용자 디바이스에서 출력되도록 트리거될 수 있도록 사용자 디바이스에 저장될 수 있다.
일부 구현예에서, 검색 가능 예제가 사용자 디바이스에서 출력을 위해 제공될 수 있기 전에, 애플리케이션 개발자(201)는 새로운 검색 가능 예제를 테스트할 수 있고, 검색 가능 예제를 승인한 후에 검색 가능 예제를 배치하여 검색 가능 예제가 사용자 디바이스에서 출력을 위해 제공될 수 있도록할 수 있다. 예를 들어, 애플리케이션 개발자(201)는 단말기(202)에서 테스트를 수행하는 것을 테스트할 수 있는데, 애플리케이션 개발자(201)는 검색 가능 예제의 통지가 사용자 디바이스의 디스플레이에 어떻게 나타(apear)날지 또는 사용자 디바이스에 의해 재생될 때 어떻게 소리를 낼지와 같은, 검색 가능 예제가 사용자 디바이스에서의 출력을 위해 어떻게 제공될지의 예를 보여줄 수 있다. 일부 구현예에서, 애플리케이션 개발자(201)는 검색 가능 예제가 테스트될 수 있는 단말기(202)와 별개인 하나 이상의 다른 사용자 디바이스를 지정하여, 상이한 사용자 디바이스들에서 제시될 때 검색 가능 예제가 어떻게 표시되는지 또는 어떻게 소리가 나는지를 결정할 수 있다. 만약 애플리케이션 개발자(201)가 검색 가능 예제를 승인하면, 애플리케이션 개발자(201)는 검색 가능 예제를 배치하도록 단말기(202)에서 입력을 제공함으로써 검색 가능 예제가 사용자 디바이스들에서 출력될 수 있게 한다. 또한, 일부 구현예에서, 애플리케이션 개발자(201)는 검색 가능 예제가 사용자 디바이스들에서 출력을 위해 더 이상 제공될 수 없도록 검색 가능 예제의 배치를 해제할 수 있다.
도 3은 음성 액션들을 트리거할 수 있는 트리거 구문들을 사용자 디바이스(304)의 사용자(305)에게 알리기 위해 사용자 디바이스(304)에서 검색 가능 예제들을 제시하도록 구성된 음성 액션 시스템(300)을 나타낸다. 일부 구현예에서, 음성 액션 시스템(300)은 사용자 디바이스(304)에 포함될 수 있어, 사용자 디바이스(304)는 다른 시스템과 통신하지 않고 사용자(305)에게 출력하기 위한 검색 가능 예제들을 제공할 수 있다. 다른 예들에서, 음성 액션 시스템(300)은 사용자 디바이스(304)와 별개일 수 있으며, 사용자 디바이스(304)는 출력을 위한 검색 가능 예제들을 제공할 때 하나 이상의 유선 또는 무선 데이터 경로를 통해 음성 액션 시스템(300)과 통신할 수 있다.
간략하게, 음성 액션 시스템(300)은 도 1a 및 1b의 음성 인식 엔진(130)과 유사한 음성 인식 엔진(330), 도 1a 내지 1c의 컨텍스트 분석 엔진(140)과 유사한 컨텍스트 분석 엔진(340), 매처(matcher)(350), 명확화(disambiguation) 엔진(360) 및 포맷팅 엔진(380)을 포함한다. 매처(350)는 사용자 디바이스(304)에서의 출력을 위해 제공될 수 있는 하나 이상의 검색 가능 예제를 포함하는 애플리케이션 메타 데이터 백엔드(310)에 대한 액세스를 가질 수 있다. 명확화 엔진(360)은 사용자 디바이스(304)에서 수행된 과거 동작들을 나타내는 정보를 포함하는 사용자 활동 이력(370)에 대한 액세스를 가질 수 있다. 또한, 포맷팅 엔진(380)은 사용자 디바이스(304)에서 출력하기 위한 검색 가능 예제에 대한 포맷팅과 관련된 정보를 나타내는 사용자 디바이스 정보(390)에 대한 액세스를 가질 수 있다. 음성 액션 시스템(300)이 사용자 디바이스(104)에 포함되는 경우와 같은 일부 구현예에서, 음성 액션 시스템(300)은 도 1c의 애플리케이션 인터페이스(190)와 유사한 애플리케이션 인터페이스(미도시)를 포함할 수 있다.
검색 가능 예제들은 사용자(305)가 검색 가능 예제들 요청한 것으로 결정한 것에 응답하여 또는 출력을 위한 검색 가능 예제들을 제공하는 것과 관련된 조건이 충족되었다는 결정에 응답하여 사용자 디바이스(304)에서의 출력을 위해 제공될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 사용자(305)는 "내가 어떤 음성 명령을 말할 수 있지?"라는 음성 입력을 사용자 디바이스(304)로 제공할 수 있다. 음성 입력에 대응하는 오디오 데이터가 음성 인식 엔진(330)으로 제공되어, 전사 "내가 어떤 음성 명령을 말할 수 있지?"가 오디오 데이터에 기초하여 생성될 수 있다. 상기 전사 "내가 어떤 음성 명령을 말할 수 있지?"는 예를 들어, 음성 액션 시스템(300)의 매처(350)에 의해, 검색 가능 예제들에 대한 요청으로 해석될 수 있다.
다른 예에서, 상이한 음성 입력, "도움말" 버튼의 선택, 사용자 디바이스(304)의 제어에서의 프레스-앤드-홀드 입력, 또는 다른 사용자 입력과 같은 상이한 사용자 입력은 음성 액션 시스템이 사용자 디바이스(304)에서의 출력을 위한 검색 가능 예제들을 제공하도록 결정할 수도 있다. 또 다른 예에서, 다른 정보는 음성 액션 시스템(300)으로 하여금 사용자 디바이스(304)의 상태, 사용자 디바이스(304)상에서 동작하는 애플리케이션 또는 사용자 디바이스(304)의 운영 체제가 변경되었음을 나타내는 정보와 같은 검색 가능 예제들을 제공하도록 결정하게 한다. 일부 예에서, 검색 가능 예제들은 사용자(305)가 임의의 특정 음성 액션 트리거 구문과 매칭하지 않는 음성 입력을 사용자 디바이스(304)에 제공한 것으로 결정한 것에 기초하여 사용자 디바이스(304)에서의 출력을 위해 제공될 수 있다. 이러한 예에서, 사용자(305)에게 제공된 검색 가능 예제들은, 검색 가능 예제들이 사용자(305)가 사용자 디바이스(304)에서 수행하려고 의도한 액션에 대응할 수 있다고 결정한 것에 기초하여 선택될 수 있다.
사용자 디바이스(304)에서의 출력을 위한 검색 가능 예제들을 제공하기로 결정한 것에 기초하여, 사용자 디바이스(304)의 상태, 사용자 디바이스(304)상에 설치된 하나 이상의 애플리케이션 또는 사용자 디바이스(304)의 운영 체제를 나타내는 컨텍스트 정보가 음성 액션 시스템(300)으로 제공될 수 있다. 예를 들어, 음성 액션 시스템(300)은 사용자 디바이스(104)에서의 출력을 위한 검색 가능 예제들을 제공하도록 결정할 수 있으며, 이에 응답하여 컨텍스트 정보를 획득할 수 있다. 다른 구현예에서, 음성 액션 시스템(300)은 사용자 디바이스(304)의 하나 이상의 하드웨어 구성 요소, 사용자 디바이스(304)에 설치된 하나 이상의 애플리케이션 또는 자신의 상태를 나타내는 정보를 음성 액션 시스템(300)으로 제공하는 사용자 디바이스(340)의 운영 체체에 응답하여 사용자 디바이스(304)에서의 출력을 위한 검색 가능 예제들을 제공하도록 결정할 수 있다. 일부 구현예에서, 음성 액션 시스템(300)은 규칙적인 간격으로 또는 연속적으로 컨텍스트 정보를 획득하거나 제공될 수 있다.
컨텍스트 정보는 컨텍스트 분석 엔진(340)에 의해 수신될 수 있고, 컨텍스트분석 엔진(340)은 컨텍스트 정보를 처리하여 관련 컨텍스트를 결정할 수 있다. 예를 들어, 전술한 바와 같이, 컨텍스트 분석 엔진(340)은 사용자 디바이스(304)의 다수의 구성 요소들의 상태, 사용자 디바이스(304)상에 설치된 다수의 애플리케이션, 또는 사용자 디바이스(304)상에서 동작하거나 사용자 디바이스(304)와 연관된 하나 이상의 운영 체체를 나타내는 컨텍스트 정보를 수신할 수 있다. 컨컨텍스트 분석 엔진(340)은 수신된 정보로부터 사용자 디바이스(304)의 관련 컨텍스트를 결정할 수 있다. 컨텍스트 분석 엔진(340)은 관련 컨텍스트를 얻기 위해 불필요한 컨텍스트 정보를 필터링할 수 있고, 관련 컨텍스트를 결정하기 위해 상기 수신된 컨텍스트 정보를 해석할 수 있거나 그렇지 않으면 관련 컨텍스트를 결정하기 위해 상기 수신된 컨텍스트 정보를 이용할 수 있다.
도 3에 도시된 예에서, 예를 들어, 컨텍스트 분석 엔진(340)은 미디어 플레이어 애플리케이션이 사용자 디바이스(304)의 포어그라운드에서 동작하고, 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에서 동작하고, 사용자 디바이스(304)의 배터리 수명이 50%임을 나타내는 컨텍스트 정보를 수신할 수 있다. 컨텍스트 분석 엔진(340)은 미디어 플레이어 애플리케이션이 포어그라운드에서 동작하고 오디오 플레이어 모드에 있다는 것을 나타내는 관련 컨텍스트를 생성하기 위해 배터리 수명 컨텍스트 정보를 걸러낼 수 있다. 다른 예에서, 컨텍스트 분석 엔진(340)은 미디어 플레이어 애플리케이션이 사용자 디바이스(304)의 포어그라운드에서 동작하고, 사용자 디바이스(304)의 헤드폰 잭이 출력을 제공하고 있고, 사용자 디바이스(304)의 디스플레이가 현재 디밍(dimmed)되어 있음을 나타내는 컨텍스트 정보를 수신한다. 컨텍스트 분석 엔진(340)은 수신된 컨텍스트 정보를 해석하여 관련 컨텍스트를 결정할 수 있다. 예를 들어, 컨텍스트 분석 엔진(340)은 포어그라운드에서 동작하는 미디어 플레이어 애플리케이션이 오디오 플레이어 모드에 있다고 판단할 수 있는데, 그 이유는 디스플레이가 디밍되는 동안 헤드폰 잭이 사운드 출력을 제공하기 때문이다.
컨텍스트 분석 엔진(340)에 의해 결정된 관련 컨텍스트는 매처(350)에 제공되고, 여기서 매처(350)는 사용자 디바이스(305)의 현재 상태, 사용자 디바이스(305)에 설치된 애플리케이션들 또는 사용자 디바이스(305)의 운영 체제가 주어진 사용자 디바이스(304)에서의 출력을 위해 제공될 수 있는 검색 가능 예제들을 삭별한다. 매처(350)는 매처(350)에 의해 결정된 관련 컨텍스트와 매칭하는 컨텍스트들과 연관된 검색 가능 예제들을 선택할 수 있다. 컨텍스트 분석 엔진(340)으로부터 수신된 관련 컨텍스트와 매칭하는 검색 가능 예제들을 결정하기 위해, 매처(350)는 관련 컨텍스트를 상기 애플리케이션 메타 데이터 백엔드(310)에 저장된 하나 이상의 검색 가능 예제에 의해 지정된 컨텍스트들과 비교한다. 예를 들어, 도 2와 관련하여 논의된 바와 같이, 애플리케이션 메타 데이터 백엔드(310)는 다수의 상이한 애플리케이션, 디바이스 또는 운영 체제에 관한 다수의 음성 액션과 관련될 수 있는 다수의 검색 가능 예제들을 저장할 수 있다. 애플리케이션 메타 데이터 백엔드(310) 내의 각각의 검색 가능 예제는 대응하는 음성 액션이 트리거될 수 있는 때를 나타내는 컨텍스트를 특정할 수 있으며, 또한 검색 가능 예제가 사용자 디바이스에서 출력을 위해 제공될 수 있는 시기를 정의한다. 수신된 컨텍스트를 애플리케이션 메타 데이터 백엔드(310) 내의 검색 가능 예제들에 의해 지정된 컨텍스트들과 비교함으로써, 매처(350)는 사용자 디바이스(304)에서의 출력을 위해 제공될 수 있는 후보 검색 가능 예제들의 세트를 식별한다.
도 3에 도시된 예에서, 예를 들어, 매처(350)는 미디어 플레이어 애플리케이션이 포어그라운드에서 동작하고 오디오 플레이어 모드에 있음을 나타내는 컨텍스트를 애플리케이션 메타 데이터 백엔드(310)에 저장된 다수의 검색 가능 예제와 비교할 수 있다. 상기 비교에 기초하여, 매처는 현재의 컨텍스트가 주어진 사용자에 의해 트리거될 수 있는 음성 액션들에 대응하는 4개의 검색 가능 예제 세트를 식별할 수 있다. 이러한 검색 가능 예제들은 예를 들어, "앞으로 건너 뛰기(skip ahead)" 음성 액션에 대한 검색 가능 예제, 오디오 플레이어 애플리케이션에서 재생중인 노래를 일시 정지하도록 미디어 플레이어 애플리케이션을 제어하기 위한 "일시 정지(pause)" 음성 액션에 대한 검색 가능 예제, 미디어 플레이어 애플리케이션에서 현재 재생중인 노래와 유사하다고 판단된 노래들에 대해 데이터베이스 또는 인터넷을 검색하도록 미디어 플레이어 애플리케이션을 제어하는 "유사 노래 검색(search for similar songs)" 음성 액션에 대한 검색 가능 예제, 및 사용자 디바이스(304)의 홈 스크린(예를 들어, 운영 체제가 사용자 디바이스(304)의 디스플레이에서 사용자들에게 제시하는 데스크탑 또는 메뉴 스크린)으로 복귀하도록 사용자 디바이스(304)를 제어하는 "홈(home)" 음성 액션에 대한 검색 가능 예제를 포함할 수 있다.
상기 매처(350)는 후보 검색 가능 예제들을 식별하여, 상기 후보 탐색 가능성 예제들을 명확화 엔진(360)으로 제공할 수 있다. 일부 구현예에서, 명확화 엔진(360)으로 후보 검색 가능 예제들을 제공하는 것은 후보 검색 가능 예제들에 대응하는 데이터 아이템들을 매처(350)로 전송할 것을 요구할 수 있다. 다른 구현예에서, 명확화 엔진(360)은 애플리케이션 메타 데이터 백엔드(310)에서 후보 검색 가능 예제들에 액세스할 수 있어, 매처(350)는 후보 검색 가능 예제들에 대응하는 데이터 아이템들을 명확화 엔진(360)으로 전송할 필요없이, 단지 후보 검색 가능 예제들을 식별하는 정보를 명확화 엔진(360)으로 제공하면 된다. 일부 예에서, 후보 검색 가능 예제를 식별하는 것은 후보 검색 가능 예제의 하나 이상의 버전을 후보 검색 가능 예제들로서 식별하는 것을 포함한다. 예를 들어, "skip ahead" 음성 액션은 텍스트 통지 검색 가능 예제 및 음성 단어(spoken word) 오디오 통지 검색 가능 예제와 같은, 컨텍스트 분석 엔진(340)으로부터 수신된 컨텍스트에 대응하는 컨텍스트를 각각 지정하는 다수의 검색 가능 예제와 관련될 수 있으며, 텍스트 및 음성 단어 오디오 통지 모두는 명확화 엔진(360)으로 제공되거나 식별될 수 있다.
명확화 엔진(360)은 매처(350)로부터 후보 검색 가능 예제들 또는 후보 검색 가능 예제들을 식별하는 정보를 수신하여, 사용자 디바이스(304)에 출력을 제공하기 위해 후보 검색 가능 예제들 중에서 하나 이상의 검색 가능 예제를 선택할 수 있다. 일부 구현예에서, 명확화 엔진(360)은 검색 가능 예제들을 제시하기 위한 사용자 디바이스(304)의 성능(capabilities)에 기초하여 또는 사용자 디바이스(304)의 상태에 기초하여, 사용자 활동 이력(370)의 세부 사항에 근거하여 후보 검색 가능 예제들 중에서 검색 가능 예제들을 선택할 수 있다. 명확화 엔진(360)에 의해 선택된 검색 가능 예제들의 수는 예를 들어, 사용자에게 제시될 검색 가능 예제들의 유형, 예컨대, 사용자(305)에게 출력되는 검색 가능 예제들이 텍스트, 이미지, 오디오, 비디오등일 수 있는지 여부에 의존할 수 있다. 선택된 검색 가능한 예제들의 수는 예를 들어, 사용자 디바이스(304)에 제시될 수 있는 텍스트 또는 이미지 통지들의 양을 제한하는 요인(factor)이 될 수 있는 사용자 디바이스(304)의 디스플레이 크기에 기초하여 사용자 디바이스(304)의 성능에 의존할 수도 있다. 다른 요인들이 명확화 엔진(360)에 의한 검색 가능 예제들의 선택에 영향을 미칠 수 있다. 예를 들어, 일부 구현예에서, 명확화 엔진은 디스플레이될 검색 가능 예제들의 수, 사용자 디바이스(304)의 디스플레이의 크기 또는 다른 정보에 대한 사용자 선호를 나타내는 정보를 수신할 수 있고, 수신된 정보는 선택된 특정 검색 가능 예제들 또는 명확화 엔진(360)에 의해 선택된 검색 가능 예제들의 수에 영향을 미칠 수있다.
예를 들어, 명확화 엔진(360)은 사용자 디바이스(304)에서 이전에 수행된 동작들을 나타내는 사용자 이력(370)에 액세스할 수 있고, 명확화 엔진(360)은 사용자 이력(370)에 기초하여 출력을 제공하기 위해 검색 가능 예제들을 선택할 수 있다. 일부 구현예에서, 사용자 이력(370)은 미디어 플레이어 애플리케이션의 사용자 디바이스(304)에서 이전에 수행된 동작들, 사용자 디바이스(304)의 상태가 현재 컨텍스트와 매칭할 때, 미디어 플레이어 애플리케이션의 상태가 현재 컨텍스트와 매칭할 때, 사용자가 이용 가능한 음성 액션들을 나타내는 검색 가능 예제들을 요청할 때 사용자 디바이스(304)에서 이전에 수행된 동작들을 나타낼 수 있거나, 그렇지 않으면 사용자 디바이스(304)에서 수행된 사용자 동작들의 이력을 나타낼 수 있다. 명확화 엔진(360)은 사용자 디바이스(304)에서 출력을 위해 제공할 검색 가능 예제들을 식별하기 위해 사용자 이력(370)에 의존할 수 있다. 예를 들어, 명확화 엔진(360)은 포어그라운드 및 오디오 플레이어 모드에서 미디어 플레이어 애플리케이션을 동작시키는 동안 이전에 노래에서 미리 앞으로 건너 뛴(예컨대, 빨리 감기) 것을 사용자가 결정할 수 있으므로, 따라서 사용자 디바이스(304)에서 출력될 검색 가능 예제로서 "skip ahead" 음성 액션에 대한 검색 가능 예제를 선택할 수 있다.
명확화 엔진(360)은 그렇지 않으면 매처(350)에 의해 식별된 후보 검색 가능 예제들 중에서 검색 가능 예제들을 선택하는데 사용자 활동 이력(370)을 이용할 수 있다. 예를 들어, 명확화 엔진(360)은 사용자 활동 이력(370)에 액세스할 수 있고, 사용자가 특정 후보 검색 가능 예제에 대응하는 음성 액션을 이전에 수행 하였음을 나타내는 사용자 활동 이력(370)에 기초하여 특정 후보 검색 가능 예제를 선택하도록 결정할 수 있으며, 사용자가 특정 후보 검색 가능 예제에 대응하는 음성 액션을 이전에 수행하였음을 나타내는 사용자 활동 이력(370)에 기초하여 특정 후보 검색 가능 예제를 선택하지 않기로 결정할 수 있고, 사용자가 특정 후보 검색 가능 예제와 관련된 트리거 구문과 유사한 이전에 또는 최근에 입력된 음성 입력을 갖는다고 결정하는 것에 기초하여 특정 후보 검색 가능 예제를 선택하도록 결정할 수 있으며, 사용자가 특정 후보 검색 가능 예제가 관련되는 액션과 매칭하는 동작들을 사용자가 사용자 디바이스(304)에서 이전에 수행했다고 결정하는 것에 기초하여 특정 후보 검색 가능 예제를 선택하도록 결정할 수 있거나, 또는 명확화 엔진(360)은 그렇지 않으면 특정 후보 검색 가능 예제들의 선택에서 사용자 활동 이력(370)을 활용할 수 있다.
일부 구현예에서, 명확화 엔진(360)은 검색 가능 예제들을 선택하기 위해 다른 이용 가능한 정보를 활용할 수 있다. 예를 들어, 명확화 엔진(360)은 사용자 디바이스 정보(390) 또는 사용자 디바이스(304)로부터 수신된 컨텍스트 정보와 같은 사용자 디바이스(304)의 상태와 같은 사용자 디바이스(304)에 관한 정보에 액세스 할 수 있고, 상기 이용 가능한 정보에 기초하여 검색 가능 예제들을 선택할 수 있다. 예를 들어, 명확화 엔진(360)은 텍스트, 이미지 또는 비디오 검색 가능 예제들이 사용자 디바이스(304)에서 출력을 위해 효과적으로 제공될 수 없으므로, 사용자 디바이스(304)가 디스플레이를 갖지 않음을 나타내는 정보에 액세스할 수 있고, 따라서, 명확화 엔진(360)은 오디오 검색 가능 예제만을 선택할 수 있다. 대안적으로, 만약 명확화 엔진(360)이 사용자 디바이스(304)가 디스플레이를 갖고 현재 "무음(slient)" 모드에 있음을 나타내는 정보를 액세스하면, 명확화 엔진(360)은 사용자 디바이스(304)가 "무음" 모드에 있는 동안 이들 검색 가능 예제에 대한 오디오가 출력되지 않을 수 있으므로, 텍스트 또는 이미지 검색 가능 예제들인 후보 검색 가능 예제들은 선택할 수 있고 오디오 또는 비디오 검색 가능 예제들은 선택할 수 없다. 명확화 엔진(360)은 후보 검색 가능 예제들 중에서 선택시에, 특정 유형의 검색 가능 예제들을 수신하기 위해 사용자(305)의 선호도를 나타내는 사용자 선호도들과 같은 다른 정보에 의존할 수 있다.
일부 구현예에서, 명확화 엔진(360)은 랭킹 또는 관련성 스코어를 후보 검색 가능 예제들에 할당하는 것에 기초하여, 사용자 활동 이력(370)과 같은 상기 액세스된 정보에 근거하여 후보 검색 가능 예제들 중에서 선택할 수 있다. 예를 들어, 명확화 엔진(360)은 액세스된 정보를 이용하여 사용자 디바이스(304)의 상태, 사용자(305)의 예상된 의도 또는 다른 기준에 대한 그들의 인지된 관련성에 따라 상기 검색 가능 예제들을 랭킹(순위 매김)할 수 있으며, 상기 랭킹에 기초하여 후보 검색 가능 예제들 중에서 선택할 수 있다. 또한, 일부 구현예에서, 하나 이상의 검색 가능 예제는 사용자 디바이스(304)에서 사용자들에게 항상 제시되는 검색 가능 예제들일 수 있다. 예를 들어, 이전 스크린으로 복귀하기 위해 사용자 디바이스(304)를 제어하는 "뒤로(back)" 음성 액션에 대한 검색 가능 예제는 출력을 위해 항상 선택될 수 있거나, "back" 음성 액션과 관련된 특정 컨텍스트가 만족될 때 항상 출력을 위해 선택될 수 있다.
일부 구현예에서, 명확화 엔진(360)은 상이한 방식으로 사용자 디바이스 (304)에서 출력을 위해 제공될 수 있는 후보 검색 가능 예제의 상이한 그룹들을 선택할 수 있다. 예를 들어, 명확화 엔진(360)은 오디오 통지로서 출력될 일부 후보 검색 가능 예제들을 식별하고, 텍스트 통지로서 출력될 다른 후보 검색 가능 예제들을 식별할 수 있다. 일부 예에서, 명확화 엔진(360)은 일부 검색 가능 예제들이 사용자 디바이스(304)에 디스플레이된 사용자 인터페이스의 주요 검색 가능 예제 윈도우 또는 창(pane)으로 출력되어야 한다고 결정할 수 있으며, 드롭 다운 메뉴에, 사용자 인터페이스의 "더 보기(view more)" 영역에 또는 사용자 인터페이스의 다른 개별 영역들에 포함시킬 다른 후보 검색 가능 예제들을 선택할 수 있다.
선택된 후보 검색 가능 예제들 또는 선택된 검색 가능 예제들을 식별하는 정보는 포맷 엔진(380)으로 전송될 수 있으며, 포맷 엔진(380)은 사용자 디바이스(304)에서의 출력을 위해 상기 선택된 검색 가능 예제들을 포맷할 수 있다. 예를 들어, 포맷 엔진(380)은 사용자 디바이스(304)에서 검색 가능 예제들을 제시하는 것과 관련되는 사용자 디바이스(304)의 특성을 나타내는 사용자 디바이스 정보(390)에 액세스할 수 있고, 사용자 디바이스 정보(390)에 기초하여 사용자 디바이스(304)에서 출력하기 위한 검색 가능 예제들을 준비할 수 있다. 사용자 디바이스 정보(390)는 예를 들어, 디스플레이 크기, 해상도, 컬러 스펙트럼, 리프레쉬 레이트, 또는 다른 파라미터, 오디오 출력 주파수 범위 또는 다른 스피커 또는 헤드폰 잭 출력 파라미터, 애플리케이션 프로그래밍 인터페이스 프로토콜 또는 입출력 포맷, 또는 사용자 디바이스(304)에서 출력하기 위한 검색 가능 예제들을 제공하는 것과 관련된 다른 정보를 포함할 수 있다.
포맷 엔진(380)은 명확화 엔진(370)에 의해 선택된 후보 검색 가능 예제들을 수신하거나 액세스할 수 있고, 사용자 디바이스(304)에서 출력하기 위한 상기 선택된 후보 검색 가능 예제들을 포맷할 수 있다. 예를 들어, 포맷 엔진(380)은 선택된 후보 검색 가능 예제 데이터 아이템들을 수신하거나, 애플리케이션 메타 데이터 백엔드(310)에서 상기 선택된 후보 검색 가능 예제들에 액세스할 수 있고, 상기 선택된 후보 검색 가능 예제들을 포맷하는 것에 기초하여, 사용자 디바이스(304)에서 출력하기 위한 포맷된 검색 가능 예제들을 제공할 수 있다. 예를 들어, "skip ahead" 음성 액션, "pause" 음성 액션 및 "home" 음성 액션에 대한 후보 검색 가능 예제들을 선택하는 명확화 엔진(360)에 기초하여, 포맷 엔진(380)은 상기 선택된 후보 검색 가능 예제들을 포맷할 수 있고, 출력을 위해 상기 포맷된 검색 가능 예제들을 제공하도록 사용자 디바이스(304)를 제어할 수 있다. 예를 들어, 선택된 후보 검색 가능 예제들 각각이 선택된 검색 가능 예제들에 대응하는 음성 액션들을 트리거하는데 사용된 트리거 용어들을 나타내는 텍스트 통지이면, 포맷 엔진(380)은 텍스트 통지를 포맷할 수 있고, 포맷된 텍스트 통지들이 사용자 디바이스(304)의 디스플레이에서 출력되기 위해 제공될 수 있다. 따라서, 포맷된 검색 가능 예제들은 "Try Saying:"이라는 구문을 제시하고 뒤이어 "skip ahead", "pause" 및 "home" 음성 액션들 각각을 트리거하는데 사용된 트리거 구문들을 제시함으로써 도 3에 도시된 바와 같이 사용자 디바이스(304)에서 출력될 수 있다.
사용자(305)는 트리거 구문들 "skip ahead", "pause" 및 "home"을 식별하는 텍스트 통지들을 제공받을 수 있으며, 사용자 디바이스(304)에서 제공되는 검색 가능 예제들에 기초하여, 사용자(305)는 음성 입력을 제공하여 상기 제안된 트리거 구문들에 대응하는 음성 액션들 중 하나를 트리거할 수 있다. 예를 들어, 사용자(305)는 검색 가능 예제들이 제시되는 것에 응답하여 음성 입력 "skip ahead"를 제공하여, 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너 뛰도록 사용자 디바이스(304)의 포어그라운드에서 동작하는 미디어 플레이어 애플리케이션을 제어할 수 있다.
도 4는 사용자 디바이스에서 출력하기 위한 검색 가능 예제들을 설정하고 제공하기 위한 예시적인 프로세스(400)의 흐름도이다. 일부 구현예들에서, 프로세스(400)는 도 1a 내지 도 1c의 음성 액션 시스템(100)과 같은 음성 액션 시스템에 의해 수행될 수 있다.
음성 액션 시스템은 새로운 음성 액션을 수행하기 위해 소프트웨어 애플리케이션을 트리거하는 트리거 용어들을 지정하는 데이터 및 새로운 음성 액션이 트리거될 수 있을 때 소프트웨어 애플리케이션의 상태를 지정하는 컨텍스트를 수신한다 (402). 예를 들어, 단말기(102a~102n)를 사용하는 애플리케이션 개발자(101a~101n)는 하나 이상의 사용자 디바이스(104)에 설치된 애플리케이션에 대한 새로운 음성 액션을 정의하기 위한 정보를 음성 액션 시스템(100)으로 제출할 수 있다. 애플리케이션 개발자(101a~101n)에 의해 제출된 정보는 새로운 음성 액션이 사용자 디바이스(104)에서 트리거될 수 있을 때 소프트웨어 애플리케이션의 상태를 나타내는 컨텍스트를 지정할 수 있다. 상기 정보는 사용자(105)가 사용자 디바이스(104)로 말하여 음성 액션을 트리거할 수 있는 트리거 용어들을 추가로 지정할 수 있다.
예를 들어, 애플리케이션 개발자(101a~101n)는, 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너 뛰도록 하기 위해 미디어 플레이어 애플리케이션을 제어하는 미디어 플레이어 애플리케이션에 대한 새로운 "skip ahead" 음성 액션을 정의하는 정보를 음성 액션 시스템(100)으로 제출할 수 있다. 상기 제출된 정보는, 트리거 구문 "skip ahead"는 새로운 음성 액션을 트리거하는데 사용될 것이고, 음성 액션은 미디어 플레이어 애플리케이션이 사용자 디바이스(104)의 포어그라운드에서 동작하고 오디오 플레이어 모드에서 동작될 때만 트리거될 수 있다는 것을 나타내는 정보를 포함할 수 있다. 상기 제출된 정보는 트리거되는 음성 액션에 응답하여 수행될 액션을 나타내는 정보 또는 다른 정보와 같은 다른 정보를 포함할 수 있다.
음성 액션 시스템은 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 수신하고, 상기 검색 가능 예제를 정의하는 데이터는 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함한다(404). 예를 들어, 애플리케이션 개발자(101a~101n)는 새로운 음성 액션에 대한 검색 가능 예제를 지정하는 정보를 음성 액션 시스템(100)으로 제출할 수 있다. 애플리케이션 개발자(101a~101n)에 의해 제출되고 음성 액션 시스템(100)에 의해 수신된 정보는, 사용자 디바이스(104)에서 새로운 음성 액션을 트리거하도록 사용자(105)에 의해 사용될 수 있는 하나 이상의 트리거 용어를 지정할 수 있다. 이런 방식으로, 애플리케이션 개발자(101a~101n)는 사용자 디바이스(104) 상에 설치된 소프트웨어 애플리케이션의 상태가 새로운 음성 액션에 대한 상기 지정된 컨텍스트를 만족할 때 통지가 사용자 디바이스(104)에서이 출력을 위해 제공될 수 있게 할 수 있는 검색 가능 예제를 지정할 수 있고, 상기 통지는 사용자에게 하나 이상의 트리거 용어를 제시하여 새로운 음성 액션을 트리거하기 위해 사용할 수 있는 트리거 용어들을 사용자(105)에게 알릴 수 있다.
일부 구현예에서, 새로운 음성 액션을 정의하는 정보는 사용자 디바이스들이 검색 가능 예제를 사용하여 하나 이상의 트리거 용어의 통지를 제공할 수 있게 하는 특정 요구(required) 포맷일 수 있다. 다른 구현예에서, 음성 액션 시스템(100)은 새로운 음성 액션 또는 다른 정보에 대한 하나 이상의 트리거 용어를 식별하지만 특정 요구 포맷이 아닌 정보를 애플리케이션 개발자(101a~101n)로부터 수신할 수 있다. 이들 인스턴스에서 검색 가능 예제를 생성하기 위해, 음성 액션 시스템(100)은 수신된 데이터를 유도하여 검색 가능 예제를 정의하는 데이터를 생성할 수 있고, 유도 프로세스를 통해 생성된 검색 가능 예제들을 정의하는 데이터는 특정 요구 포멧이다. 다른 구현예에서, 음성 액션 시스템(100)은 새로운 음성 액션을 수행하기 위해 소프트웨어 애플리케이션을 트리거하는 트리거 용어들을 지정하는 정보와 같은, 새로운 음성 액션을 지정하는 상기 수신된 정보에만 기초하여 검색 가능 예제를 생성할 수 있다. 다른 예에서, 음성 액션 시스템(100)은 새로운 음성 액션을 지정하는 상기 수신된 정보에 기초하여 그리고 음성 액션 시스템(100)에 의해 결정되거나 애플리케이션 개발자(101a~101n)로부터 액션 시스템(100)에서 수신된 검색 가능 예제에 관한 정보를 지정하는 다른 정보에 기초하여 검색 가능 예제를 생성할 수 있다. 이러한 정보는 예를 들어 검색 가능 예제와 관련시킬 통지의 컨텐츠를 포함할 수 있다. 다른 예에서, 음성 액션 시스템(100)은 하나 이상의 후보 검색 가능 예제를 결정할 수 있고, 상기 검색 가능 예제를 정의하는 데이터를 수신하는 것은 상기 후보 검색 가능 예제들 중의 특정한 하나의 애플리케이션 개발자(101a~101n)에 의한 선택을 수신하는 것을 포함할 수 있다.
예를 들어, 음성 액션 시스템(100)은 "skip ahead" 음성 액션에 대한 검색 가능 예제를 정의하는 정보를 애플리케이션 개발자(101a~101n)로부터 수신할 수 있으며, 여기서 검색 가능 예제를 정의하는 데이터는 미디어 플레이어 애플리케이션이 현재 재생중인 노래에서 사전 결정된 시간만큼 앞으로 건너뛰도록 미디어 플레이어 애플리케이션을 트리거하는 트리거 용어 "skip ahead"를 지정한다. 상기 애플리케이션 개발자(101a~101n)로부터 수신된 정보는 특정 요구 포멧일 수 있거나 또는 음성 액션 시스템(100)은 특정 요구 포맷을 갖는 검색 가능 예제를 생성하도록 "skip ahead" 음성 액션에 대한 검색 가능 예제를 정의하는 정보를 유도할 수 있다. 다른 예에서, 음성 액션 시스템(100)은 "skip ahead" 음성 액션 자체를 지정하는 정보를 유도하여, 즉 "skip ahead" 음성 액션에 대한 검색 가능 예제를 별도로 정의하는 다른 정보를 수신하지 않고, "skip ahead" 음성 액션을 정의하는 데이터를 생성할 수 있다. 다른 구현예에서, 음성 액션 시스템(100)은 수신된 정보에 기초하여 "skip ahead" 음성 액션에 대한 후보 통지들을 결정할 수 있고, 애플리케이션 개발자(101a~101n)는 특정 후보를 선택할 수 있다. 음성 액션 시스템(100)은 선택된 후보 검색 가능 예제를 정의하는 정보를 수신하거나 또는 특정 후보의 선택을 나타내는 정보를 수신할 수 있고, 상기 선택에 응답하여, 선택에 따라 "skip ahead" 음성 액션에 대한 검색 가능 예제를 생성할 수 있다. 상기 생성된 검색 가능 예제는 음성 액션을 트리거하는데 사용된 트리거 용어 "skip ahead"를 나타내는 텍스트, 이미지, 오디오 또는 비디오 통지와 같은 통지에 대한 정보를 포함할 수 있습니다. 일부 예에서, 애플리케이션 개발자(101a~101n)는 통지 컨텐츠를 포함하는 추가 정보를 제출할 수 있고, 음성 액션 시스템(100)은 통지 컨텐츠를 포함하는 "skip ahead" 음성 액션에 대한 검색 가능 예제를 생성할 수 있다.
일부 구현예에서, 검색 가능 예제를 정의하는 데이터는 음성 액션 시스템(100)에서 소프트웨어 애플리케이션과 연관되어, 설치된 소프트웨어 애플리케이션을 갖는 사용자 디바이스(104)가 사용자 디바이스(104) 상에 설치된 소프트웨어 애플리케이션의 컨텍스트가 상기 정의된 컨텍스트를 만족할 때 출력용 통지를 제공할 수 있게 한다. 예를 들어, 음성 액션 시스템(100)은 검색 가능 예제를 소프트웨어 애플리케이션과 관련하여 음성 액션 검색 가능 데이터베이스(170)에 저장할 수 있다. 일단 소프트웨어 애플리케이션과 관련하여 저장되면, 검색 가능 예제는 소프트웨어 애플리케이션의 컨텍스트가 새로운 음성 액션에 대해 지정된 컨텍스트를 만족할 때 사용자 디바이스(104)의 사용자(105)에게 출력하기 위해 제공될 수 있다.
음성 액션 시스템은 소프트웨어 애플리케이션이 설치된 사용자 디바이스로부터 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 위한 요청을 수신한다(406). 예를 들어, 검색 가능 예제가 도 1c에 도시된 바와 같이, 음성 액션 검색 가능 예제 데이터베이스(170)에 저장되면, 음성 액션 시스템(100)은 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 위한 요청을 사용자 디바이스(104)로부터 수신할 수 있다. 사용자 디바이스(104)는 임의의 수(number)의 이유에 기초하여 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 요청할 수 있다. 예를 들어, 사용자 디바이스(104)는 소프트웨어 애플리케이션의 상태가 변경되었다고 결정하는 것에 기초하여 사용자 디바이스(104)에 설치된 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 요청할 수 있고, 사용자 디바이스(104)의 사용자(105)가 소프트웨어 애플리케이션을 개시(launching)하거나 소프트웨어 애플리케이션을 사용자 디바이스(104)의 포어그라운드로 가져오는 것에 기초하여 상기 애플리케이션에 대한 검색 가능 예제들을 요청할 수 있고, 주기적인 스케쥴 또는 사용자(105)에 의해 설정된 스케쥴에 기초하여 애플리케이션에 대한 검색 가능 예제들을 요청할 수 있거나 그렇지 않으면 음성 액션 시스템(100)으로부터 소프트웨어 애플리케이션에 대한 검색 가능 예제들을 요청할 수 있다. 일부 예에서, 사용자 디바이스(104)로부터 수신된 검색 가능 예제들에 대한 요청들은 사용자 디바이스(104)에 설치된 소프트웨어 애플리케이션의 상태를 나타내는 컨텍스트 정보를 포함하여, 음성 액션 시스템(100)이 사용자 디바이스(104)로 제공하기 위한 검색 가능 예제들을 선택할 때 컨텍스트 정보를 이용할 수 있도록 할 수 있다.
음성 액션 시스템은 요청에 응답하여 검색 가능 예제를 정의하는 데이터를 사용자 디바이스에 제공하고, 사용자 디바이스는 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 소프트웨어 애플리케이션의 상태가 상기 정의된 컨텍스트를 만족할 때 하나 이상의 트리거 용어들의 통지를 제공하도록 구성될 수 있다(408). 예를 들어, 사용자 디바이스(104)로부터 수신된 요청에 응답하여, 음성 액션 시스템(100)은 사용자 디바이스(104)의 애플리케이션 메타 데이터 백엔드(180)에서와 같이 사용자 디바이스(104)에서의 저장을 위해 사용자 디바이스(104)로 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 제공할 수 있다. 일부 구현예에서, 도 1b에 도시된 바와 같이, 음성 액션 시스템(100)은 예를 들어 검색 가능 예제들에 대한 요청으로 또는 검색 가능 예제들에 대한 요청과 함께, 사용자 디바이스(104)로부터 수신된 컨텍스트 정보가 새로운 음성 액션에 대해 지정된 컨텍스트를 만족시킨다고 결정할 수 있으며, 이에 따라 사용자 디바이스(104)에서 검색 가능 예제와 관련된 통지의 출력을 제어하거나 트리거하기 위해 상기 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 사용자 디바이스(104)로 제공하록 결정할 수 있다. 다른 예에서, 도 1c에 도시된 바와 같이, 일단 음성 액션 시스템(100)은 수신된 요청에 응답하여 검색 가능 예제를 정의하는 데이터를 사용자 디바이스(104)로 제공할 수 있고, 새로운 음성 액션과 관련하여 검색 가능 예제를 정의하는 데이터를 애플리케이션 메타 데이터 백엔드(180)에 저장할 수 있다. 애플리케이션 메타 데이터 백엔드(180)에 검색 가능 예제를 정의하는 데이터를 저장하는 것은 검색 가능 예제와 관련된 통지를 출력하도록 사용자 디바이스(104)를 구성할 수 있다. 예를 들어, 사용자 디바이스(104)가 사용자 디바이스(104)상에 설치된 소프트웨어 애플리케이션의 상태가 새로운 음성 액션에 대해 지정된 컨텍스트를 만족한다고 결정할 때, 사용자 디바이스(104)는 사용자 디바이스(104)에서 출력하기 위해 새로운 음성 액션을 트리거하는데 사용된 하나 이상의 트리거 용어에 대한 통지를 제공할 수 있다.
예를 들어, "skip ahead" 음성 액션에 대한 검색 가능 예제는 미디어 플레이어 애플리케이션과 관련하여 음성 액션 검색 가능 예제 데이터베이스(170)에 저장될 수 있다. 검색 가능 예제들에 대한 요청과 함께 또는 검색 가능 예제들에 대한 요청으로서 사용자 디바이스(104)로부터 음성 액션 시스템(100)에 의해 수신된 컨텍스트 정보가 "skip ahead" 음성 액션에 대해 지정된 컨텍스트를 만족하도록 결정될 때, "skip ahead" 음성 액션에 대한 검색 가능 예제가 사용자 디바이스(104)로 제공된다. 사용자 디바이스(104)에 의해 수신된 검색 가능 예제는 텍스트 통지 "Try Saying 'Skip Ahead'"가 사용자 디바이스(104)에서 출력을 위해 제공되게 한다. 다른 예에서, 음성 액션 시스템(100)은 검색 가능 예제들에 대한 요청에 응답하여 사용자 디바이스(104)로 "skip ahead" 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 제공할 수 있다. 사용자 디바이스(104)는 예를 들어 애플리케이션 메타 데이터 백엔드(180)에서 "skip ahead" 음성 액션에 대한 검색 가능 예제를 저장하거나 사용자 디바이스(104)의 캐시 메모리에 "skip ahead" 음성 액션에 대한 검색 가능 예제를 캐싱함으로써 저장할 수 있다. 이어서 사용자 디바이스(104)는 미디어 플레이어 애플리케이션의 상태가 "skip ahead" 음성 액션에 대해 지정된 컨텍스트를 만족시키는 것으로 결정될 때 출력을 위해 상기 텍스트 통지 "Try Saying 'Skip Ahead'"를 제공할 수 있다. 예를 들어, 텍스트 통지는 음성 액션들에 대한 검색 가능 예제들을 제시하도록 구성된 사용자 디바이스(104)에 디스플레이된 사용자 인터페이스의 음성 플레이트 영역(voice plate region)에 제시될 수 있다. 대안 적으로, 상기 통지는 사용자 디바이스(104)에 디스플레이된 검색 결과 페이지에 제시될 수 있고, 사용자 디바이스(104)에 디스플레이된 사용자 인터페이스의 별도의 윈도우에 출력을 위해 제공될 수 있으며, 사용자 디바이스(104)에 오디오, 이미지 또는 비디오로서 제공될 수 있거나, 그렇지 않으면 사용자 디바이스(104)에서 출력을 위해 제공될 수 있다.
다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음을 이해할 것이다. 예를 들어, 위에 도시된 흐름도의 다양한 형태가 재배열, 추가 또는 제거된 단계들과 함께 사용될 수 있다. 따라서, 다른 구현예들은 다음의 청구항들의 범위 내에 있다.
본 명세서에 설명된 시스템 및/또는 방법은 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자들은 프로그램 또는 기능들이 예를 들어, 사용자의 소셜 네트워크, 사회적 행동들 또는 활동, 직업, 선호도 또는 현재 위치에 관한 정보와 같은 개인 정보를 수집하는지 여부 또는 시스템 및 방법들이 사용자에게 보다 관련이 있는 동작들을 수행할 수 있는지 여부 및/또는 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 신원은 익명 처리되어 사용자에 대해 개인 식별 정보가 결정될 수 없거나 또는 사용자의 특정 위치가 결정될 수 없도록 사용자의 지리적 위치는 도시, 우편 번호 또는 주 수준과 같이 위치 정보가 획득되는 곳으로 일반화될 수 있다. 따라서, 사용자는 자신에 관한 정보 수집 방법 및 사용 방법을 제어할 수 있다.
본 명세서에서 설명된 실시예들 및 기능 동작들은 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 그들 중 하나 이상의 조합으로 구현될 수 있다. 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 상기 컴퓨터 판독 가능 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판, 메모리 디바이스, 기계-판독 가능 전파 신호를 발생시키는 물질의 구성 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치"라는 용어는 예를 들어, 프로그램 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 하드웨어 이외에, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들의 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인위적으로 생성된 신호, 예를 들어 적합한 수신기 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 기계 생성의 전기, 광학적 또는 전자기적 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭될 수 있는)은 컴파일된 또는 해석된 언어 또는 선언적 또는 절차적 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 구성 요소, 서브 루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템의 파일에 해당하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부분, 문제의 프로그램 전용의 단일 파일 또는 다수의 조정 파일(예컨대, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 다수의 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 한 대의 컴퓨터 또는 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에서 기술되는 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 상기 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로 프로세서들 및 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다.
컴퓨터의 필수 요소는 명령들에 따라 동작들을 수행하는 프로세서와 명령 및 명령과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 위해 동작 가능하게 결합될 것이다. 그러나 컴퓨터에는 그러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 태블릿 컴퓨터, 모바일 전화기, 개인 휴대 정보 단말기(PDA), 모바일 오디오 플레이어, GPS 수신기에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 메체는, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크, 광 자기 디스크, 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 실시예들은 예를 들어 사용자에게 디스플레이 하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 키보드 및 포인팅 디바이스를 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
실시예들은 데이터 서버와 같은 백 엔드 구성 요소 또는 애플리케이션 서버와 같은 미들웨어 구성 요소, 또는 사용자가 본 명세서에 기술된 요지의 구현예와 상호 작용할 수 있는 그래픽 사용자인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 구성 요소, 또는 하나 이상의 백 엔드, 미들웨어 또는 프론트 엔드 구성 요소의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
본 명세서는 다수의 구체적인 구현 세부 사항을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 컨텍스트에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 심지어 초기에는 그러한 것으로서 주장되는 경우 조차도 상기에서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작들을 달성하기 위해, 그러한 동작들이 도시된 순서 또는 순차적인 순서로 수행되거나, 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시예에서 다양한 시스템 모듈 및 구성 요소의 분리는 모든 실시예에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 기술된 프로그램 구성 요소 및 시스템들은 일반적으로 단일 소프트웨어 제품에 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있음을 이해해야 한다.
HTML 파일이 언급되는 각 인스턴스에서, 다른 파일 유형 또는 포멧이 대체될 수 있다. 예를 들어 HTML 파일은 XML, JSON, 일반 텍스트 또는 다른 유형의 파일로 대체될 수 있다. 게다가, 테이블 또는 해시 테이블이 언급되는 경우, 다른 데이터 구조(예컨대, 스프레드 시트(spreadsheets), 관계형 데이터베이스 또는 구조화된 파일)가 사용될 수 있다.
추가 구현예들은 다음 예제들에 요약되어 있다.
예제 1 : 컴퓨터 구현 방법으로서,
음성 액션 시스템에 의해, 새로운 음성 액션을 수행하도록 소프트웨어 애플리케이션을 트리거하는 트리거 용어들을 지정하는 데이터 및 상기 새로운 음성 액션이 트리거될 수 있을 때 상기 소프트웨어 애플리케이션의 상태를 지정하는 컨텍스트를 수신하는 단계와; 상기 음성 액션 시스템에 의해, 상기 새로운 음성 액션에 대한 검색 가능 예제를 정의하는 데이터를 수신하는 단계와, 상기 검색 가능 예제를 정의하는 데이터는 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 새로운 음성 액션을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함하고; 상기 소프트웨어 애플리케이션이 설치된 사용자 디바이스로부터 상기 음성 액션 시스템에 의해, 상기 소프트웨어 애플리케이션을 위한 검색 가능 예제들에 대한 요청을 수신하는 단계와; 그리고 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 검색 가능 예제를 정의하는 데이터를 상기 사용자 디바이스로 제공하는 단계를 포함하고, 상기 사용자 디바이스는 상기 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다.
예제 2 : 예제 1의 컴퓨터 구현 방법은, 상기 음성 액션 시스템에 의해, 상기 하나 이상의 트리거 용어의 통지로서 사용자 디바이스에서 표시 가능한 컨텐츠에 대응하는 데이터를 수신하는 단계; 및 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 컨텐츠에 대응하는 데이터를 상기 사용자 디바이스로 제공하는 단계를 포함하고, 상기 사용자 디바이스는 대응하는 상기 데이터에 적어도 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 하나 이상의 트리거 용어의 통지로서 상기 컨텐츠를 제시하도록 구성된다.
예제 3 : 예제 1 또는 2의 컴퓨터 구현 방법은, 상기 음성 액션 시스템에 의해, 상기 새로운 음성 액션에 대한 하나 이상의 고유한 후보 검색 가능 예제를 정의하는 데이터를 생성하는 단계와, 상기 하나 이상의 고유한 후보 검색 가능 예제들 각각을 정의하는 데이터는 하나 이상의 트리거 용어를 포함하고; 상기 음성 액션 시스템에 의해, 상기 하나 이상의 고유한 후보 검색 가능 예제들 중에서 특정 후보 검색 가능 예제의 선택을 나타내는 데이터를 수신하는 단계와; 그리고 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 특정 후보 검색 가능 예제를 정의하는 데이터를 사용자 디바이스로 제공하는 단계를 포함하고, 상기 사용자 디바이스는 상기 특정 후보 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 특정 후보 검색 가능 예제에 대응하는 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다.
예제 4 : 예제 1 내지 3중 하나의 컴퓨터 구현 방법은, 상기 소프트웨어 애플리케이션이 설치된 상기 사용자 디바이스로부터 상기 음성 액션 시스템에 의해, 상기 소프트웨어 애플리케이션의 상태를 나타내는 데이터를 수신하는 단계와; 상기 음성 액션 시스템에 의해 그리고 상기 소프트웨어 애플리케이션의 상태를 나타내는 데이터에 기초하여, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족시키는지를 결정하는 단계와; 그리고 상기 음성 액션 시스템에 의해, 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족한다는 결정에 응답하여 상기 사용자 디바이스로 상기 검색 가능 예제를 정의하는 데이터를 제공하는 단계를 포함하고, 상기 사용자 디바이스는 상기 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 검색 가능 예제를 수신하고 상기 검색 가능 예제를 수신하는 것에 응답하여 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다.
예제 5 : 예제 1 내지 4중 하나의 컴퓨터 구현 방법에서, 상기 지정된 컨텍스트는 상기 소프트웨어 애플리케이션이 특정 활동을 수행하고 있음을 나타낸다.
예제 6 : 예제 1 내지 4중 하나의 컴퓨터 구현 방법에서, 상기 지정된 컨텍스트는 상기 소프트웨어 애플리케이션이 수행하고 있는 특정 활동이 특정 활동 상태에 있음을 나타낸다.
예제 7 : 예제 1 내지 4중 하나의 컴퓨터 구현 방법에서, 상기 지정된 컨텍스트는 상기 소프트웨어 애플리케이션이 소프트웨어 애플리케이션이 설치된 사용자 디바이스의 포어그라운드에서 동작하고 있음을 나타낸다.
예제 8 : 예제 1 내지 4 중 하나의 컴퓨터 구현 방법에서, 상기 지정된 컨텍스트는 상기 소프트웨어 애플리케이션이 소프트웨어 애플리케이션이 설치된 사용자 디바이스의 백그라운드에서 동작함을 나타낸다.
예제 8 : 예제 1 내지 8 중 하나의 컴퓨터 구현 방법은, 상기 음성 액션 시스템에 의해,(i) 제2 새로운 음성 액션을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 트리거 용어들 및(2) 상기 지정된 컨텍스트를 지정하는 데이터를 수신하는 단계와; 상기 음성 액션 시스템에 의해, 상기 제2 새로운 음성 액션에 대한 제2 검색 가능 예제를 정의하는 데이터를 단계와, 상기 제2 검색 가능 예제를 정의하는 데이터는 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 제2 새로운 음성 액션을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어를 포함하고; 상기 음성 액션 시스템에 의해, 상기 요청에 응답하여 상기 제2 검색 가능 예제를 정의하는 데이터를 사용자 디바이스로 제공하는 단계를 포함하고, 상기 사용자 디바이스는 상기 제2 검색 가능 예제를 정의하는 데이터에 적어도 기초하여, 상기 새로운 음성 액션을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어의 통지 및 상기 소프트웨어 애플리케이션의 상태가 상기 지정된 컨텍스트를 만족할 때 상기 제2 새로운 음성 액션을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 상기 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다.
예제 10 : 예제 1 내지 9중 하나의 컴퓨터 구현 방법에서, 상기 소프트웨어 애플리케이션의 상태는 음성 액션들을 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 트리거 용어들의 통지를 요청하는 상기 사용자 디바이스에서의 사용자 입력을 검출하는 것에 응답하여 결정된다.
예제 11 : 예제 1 내지 10중 하나의 컴퓨터 구현 방법에서, 상기 소프트웨어 애플리케이션의 상태는 상기 소프트웨어 애플리케이션의 상태가 변경되었다는 결정에 응답하여 결정된다.
예제 12 : 예제 1 내지 10중 하나의 컴퓨터 구현 방법에서, 상기 소프트웨어 애플리케이션의 상태는 상기 소프트웨어 애플리케이션이 사용자 디바이스에서 론칭되었다는 결정에 응답하여 결정된다.
예제 13 : 예제 1 내지 12중 하나의 컴퓨터 구현 방법에서, 상기 하나 이상의 트리거 용어의 통지는 텍스트 통지, 이미지 통지, 비디오 통지 또는 오디오 통지 중 하나이다.
예제 14 : 예제 1 내지 13중 하나의 컴퓨터 구현 방법은, 상기 음성 액션 시스템에서, 하나 이상의 다른 검색 가능 예제를 정의하는 데이터를 포함하는 데이터베이스에 상기 검색 가능 예제를 정의하는 데이터를 저장하는 단계를 포함하고, 상기 하나 이상의 다른 검색 가능 예제들 중 적어도 하나는 상이한 음성 액션에 대한 검색 가능 예제이다.
예제 15 : 예제 1 내지 14중 하나의 컴퓨터 구현 방법에서, 상기 사용자 디바이스는 상기 소프트웨어 애플리케이션의 상태가 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족시키는 것으로 결정하고; 상기 2개 이상의 상이한 음성 액션에 대해 정의된 검색 가능 예제들을 식별하고, 상기 검색 가능 예제들 각각은 상기 2개 이상의 상이한 음성 액션들 중 하나를 수행하도록 상기 소프트웨어 애플리케이션을 트리거하는 하나 이상의 트리거 용어를 포함하고; 상기 검색 가능 예제들의 서브 세트를 선택하고; 그리고 상기 서브 세트에 포함된 상기 검색 가능 예제들 각각의 하나 이상의 트리거 용어의 통지를 제공하도록 구성된다.
예제 16 : 예제 15의 컴퓨터 구현 방법에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는 상기 2개 이상의 상이한 음성 액션에 대해 정의된 상기 검색 가능 예제들을 랭킹하는 단계와; 그리고 상기 랭킹에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다.
예제 17 : 예제 15의 컴퓨터 구현 방법에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는, 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 상기 컨텍스트에 대한 상기 2개 이상의 상이한 음성 액션들의 각각의 관련성을 결정하는 단계와; 그리고 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 상기 컨텍스트에 대한 상기 2개 이상의 상이한 음성 액션들의 각각의 상기 결정된 관련성에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다.
예제 18 : 예제 15의 컴퓨터 구현 방법에서, 상기 검색 가능 예제들의 서브 세트를 선택하는 단계는, 상기 소프트웨어 애플리케이션의 상태가 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족할 때 상기 사용자 디바이스에서 과거의 사용자 활동을 나타내는 정보에 액세스하는 단계와; 그리고 상기 소프트웨어 애플리케이션의 상태가 상기 2개 이상의 상이한 음성 액션들 각각에 대해 지정된 컨텍스트를 만족할 때 상기 사용자 디바이스에서 과거의 사용자 활동을 나타내는 상기 액세스된 정보에 적어도 기초하여 상기 검색 가능 예제들의 서브 세트를 선택하는 단계를 포함한다.
예제 19 : 하나 이상의 컴퓨터에 의해 실행 가능하고 실행시에 상기 하나 이상의 컴퓨터로 하여금 예제 1 내지 예제 18의 단계들을 포함하는 동작들을 수행하게 하는 명령들을 포함하는 소프트웨어를 저장하는 비-일시적 컴퓨터 판독 가능 저장 디바이스.
따라서, 특정 실시예들이 기술되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 인용된 액션들은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성할 수 있다.

Claims (17)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터를 수신하는 단계, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 트리거하도록 지정하고,
    상기 하나 이상의 제1 조건은 제1 시간 조건 세트를 포함하고;
    제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 수신하는 단계, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 트리거하도록 지정하고,
    상기 제2 소프트웨어 애플리케이션은 제1 소프트웨어 애플리케이션에 추가되고,
    상기 제2 음성 액션은 제1 음성 액션에 추가되고,
    상기 하나 이상의 제2 조건은 제2 시간 조건 세트를 포함하고,
    상기 제1 시간 조건 세트는 제1 시간 조건 세트가 제2 시간 조건 세트에 비해 별개의 시간 또는 별개의 날짜를 포함한다는 점에서 제2 시간 조건 세트와 상이하며;
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하는 단계; 및
    제1 소프트웨어 애플리케이션과 제2 소프트웨어 애플리케이션이 모두 사용자 디바이스에서 동작할 때:
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자로부터 음성 입력에 대응하는 오디오 데이터를 수신하는 단계와;
    음성 액션 시스템에 의해, 음성 입력이 트리거 문구를 포함한다고 결정하는 단계와, 상기 음성 입력이 트리거 문구를 포함한다고 결정하는 단계는 음성 입력이 트리거 문구를 포함함을 결정하기 위해 상기 음성 입력에 대응하는 오디오 데이터를 파싱하는 단계를 포함하고;
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자 디바이스 상태를 결정하는 단계와;
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 유발하는 단계와; 그리고
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 유발하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 제1 조건은 제1 소프트웨어 애플리케이션이 포어그라운드에서 동작하고 있음을 더 포함하고, 상기 하나 이상의 제2 조건은 제2 소프트웨어 애플리케이션이 포어그라운드에서 동작하고 있음을 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제1항에 있어서,
    상기 제1 소프트웨어 애플리케이션은 미디어 플레이어 애플리케이션이고, 상기 미디어 플레이어 애플리케이션에 의한 제1 음성 액션의 수행은 미디어 플레이어 애플리케이션으로 하여금:
    사전 결정된 시간량 만큼, 미디어 플레이어 애플리케이션을 통해 현재 재생중인 노래에서 앞으로 스킵하게 하거나, 또는
    미디어 플레이어 애플리케이션을 통해 현재 재생중인 노래로부터, 다음 노래로 앞으로 스킵하게 하게 하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 제3항에 있어서,
    상기 제2 소프트웨어 애플리케이션은 사진 앨범 뷰어 애플리케이션이고, 상기 사진 앨범 뷰어 애플리케이션에 의한 제2 음성 액션의 수행은 사진 앨범 뷰어 애플리케이션으로 하여금:
    사전 결정된 사진 수 만큼, 사진 앨범 뷰어 애플리케이션을 통해 현재 디스플레이되는 사진으로부터 다음 사진으로 앞으로 스킵하게 하게 하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 제1 조건은 제1 소프트웨어 애플리케이션이 제1 특정 활동을 수행하고 있음을 더 포함하고, 상기 하나 이상의 제2 조건은 제2 소프트웨어 애플리케이션이 제2 특정 활동을 수행하고 있음을 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 제1항에 있어서,
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하는 것에 후속하여:
    제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 추가 데이터를 수신하는 단계, 상기 추가 데이터는 추가 트리거 문구를 지정하고 그 추가 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 트리거하도록 지정하고;
    제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 추가 데이터를 수신하는 단계, 상기 추가 데이터는 추가 트리거 문구를 지정하고 그 추가 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 트리거하도록 지정하고; 및
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 추가 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 추가 데이터를 저장하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 제1항에 있어서,
    상기 애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하는 단계는,
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터와 관련하고, 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터와 관련하여:
    하나 이상의 사전 지원되는 음성 액션을 정의하는 데이터를 저장하는 단계를 더 포함하고, 상기 데이터는 하나 이상의 사전 지원되는 음성 액션 각각에 대해 사전 지원되는 트리거 문구를 지정하고 그 사전 지원되는 트리거 문구가 하나의 사전 지원되는 음성 액션 중 대응하는 하나의 수행을 트리거하도록 지정하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 제1항에 있어서,
    상기 음성 입력에 대응하는 파싱된 오디오 데이터는 트리거 문구의 적어도 일부를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 제8항에 있어서,
    제1 소프트웨어 애플리케이션과 제2 소프트웨어 애플리케이션이 모두 사용자 디바이스에서 동작할 때:
    파싱된 오디오 데이터에 기초하여, 음성 입력의 전사를 생성하는 단계;
    음성 입력의 전사 및 사용자 디바이스의 사용자 디바이스 상태에 기초하여, 음성 입력과 관련된 의도를 결정하는 단계;
    음성 입력과 관련된 의도에 기초하여, 복수의 후보 음성 트리거 문구를 식별하는 단계; 및
    음성 입력이 적어도 트리거 문구의 적어도 일부를 포함함을 결정하기 위해 음성 입력의 전사를 후보 트리거 문구들과 비교하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 제1항에 있어서,
    상기 하나 이상의 제1 조건은 사용자 디바이스 중 하나가 잠금 또는 잠금 해제임을 더 포함하고, 상기 하나 이상의 제2 조건은 사용자 디바이스 중 다른 하나가 잠금 또는 잠금 해제임을 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 시스템으로서,
    하나 이상의 프로세서; 및
    명령들을 저장하는 메모리를 포함하고, 상기 명령들은 실행될 때 하나 이상의 프로세서로 하여금:
    제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터를 수신하고, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 트리거하도록 지정하고,
    상기 하나 이상의 제1 조건은 사용자 디바이스 중 하나가 잠금 또는 잠금 해제임을 포함하고;
    제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 수신하고, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 트리거하도록 지정하고,
    상기 제2 소프트웨어 애플리케이션은 제1 소프트웨어 애플리케이션에 추가되고;
    상기 제2 음성 액션은 제1 음성 액션에 추가되고,
    상기 하나 이상의 제2 조건은 사용자 디바이스 중 다른 하나가 잠금 또는 잠금 해제임을 포함하고;
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하고; 그리고
    제1 소프트웨어 애플리케이션과 제2 소프트웨어 애플리케이션이 모두 사용자 디바이스에서 동작할 때:
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자로부터 음성 입력에 대응하는 오디오 데이터를 수신하고;
    음성 액션 시스템에 의해, 음성 입력이 트리거 문구를 포함한다고 결정하고, 상기 음성 입력이 트리거 문구를 포함한다고 결정하는 것은 음성 입력이 트리거 문구를 포함함을 결정하기 위해 상기 음성 입력에 대응하는 오디오 데이터를 파싱하는 것을 포함하고;
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자 디바이스 상태를 결정하고;
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 유발하고; 그리고
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 유발하도록 하는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 하나 이상의 제1 조건은 제1 소프트웨어 애플리케이션이 포어그라운드에서 동작하고 있음을 더 포함하고, 상기 하나 이상의 제2 조건은 제2 소프트웨어 애플리케이션이 포어그라운드에서 동작하고 있음을 더 포함하는 것을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 제1 소프트웨어 애플리케이션은 미디어 플레이어 애플리케이션이고, 상기 제2 소프트웨어 애플리케이션은 사진 앨범 뷰어 애플리케이션인 것을 특징으로 하는 시스템.
  14. 제13항에 있어서,
    상기 미디어 플레이어 애플리케이션에 의한 제1 음성 액션의 수행은 미디어 플레이어 애플리케이션으로 하여금:
    사전 결정된 시간량 만큼, 미디어 플레이어 애플리케이션을 통해 현재 재생중인 노래에서 앞으로 스킵하게 하거나, 또는
    미디어 플레이어 애플리케이션을 통해 현재 재생중인 노래로부터, 다음 노래로 앞으로 스킵하게 하게 하는 것을 특징으로 하는 시스템.
  15. 제13항에 있어서,
    상기 사진 앨범 뷰어 애플리케이션에 의한 제2 음성 액션의 수행은 사진 앨범 뷰어 애플리케이션으로 하여금:
    사전 결정된 사진 수 만큼, 사진 앨범 뷰어 애플리케이션을 통해 현재 디스플레이되는 사진으로부터 다음 사진으로 앞으로 스킵하게 하게 하는 것을 특징으로 하는 시스템.
  16. 제11항에 있어서,
    상기 명령들은 하나 이상의 프로세서로 하여금:
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하는 것에 후속하여:
    제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 추가 데이터를 수신하고, 상기 추가 데이터는 추가 트리거 문구를 지정하고 그 추가 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 트리거하도록 지정하고;
    제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 추가 데이터를 수신하고, 상기 추가 데이터는 추가 트리거 문구를 지정하고 그 추가 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 트리거하도록 지정하고; 그리고
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 추가 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 추가 데이터를 저장하도록 하는 것을 특징으로 하는 시스템.
  17. 하나 이상의 프로세서에 의해 실행 가능한 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령들은:
    제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터를 수신하고, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 트리거하도록 지정하고,
    상기 하나 이상의 제1 조건은 제1 시간 조건 세트를 포함하고;
    제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 수신하고, 상기 데이터는 트리거 문구를 지정하고 그 트리거 문구가 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 트리거하도록 지정하고,
    상기 제2 소프트웨어 애플리케이션은 제1 소프트웨어 애플리케이션에 추가되고,
    상기 제2 음성 액션은 제1 음성 액션에 추가되고,
    상기 하나 이상의 제2 조건은 제2 시간 조건 세트를 포함하고,
    상기 제1 시간 조건 세트는 제1 시간 조건 세트가 제2 시간 조건 세트에 비해 별개의 시간 또는 별개의 날짜를 포함한다는 점에서 제2 시간 조건 세트와 상이하며;
    애플리케이션 음성 액션 데이터베이스에, 제1 소프트웨어 애플리케이션에 대한 제1 음성 액션을 정의하는 데이터 및 제2 소프트웨어 애플리케이션에 대한 제2 음성 액션을 정의하는 데이터를 저장하고; 그리고
    제1 소프트웨어 애플리케이션과 제2 소프트웨어 애플리케이션이 모두 사용자 디바이스에서 동작할 때:
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자로부터 음성 입력에 대응하는 오디오 데이터를 수신하고;
    음성 액션 시스템에 의해, 음성 입력이 트리거 문구를 포함한다고 결정하고, 상기 음성 입력이 트리거 문구를 포함한다고 결정하는 것은 음성 입력이 트리거 문구를 포함함을 결정하기 위해 상기 음성 입력에 대응하는 오디오 데이터를 파싱하는 것을 포함하고;
    음성 액션 시스템에 의해, 사용자 디바이스의 사용자 디바이스 상태를 결정하고;
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제1 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제1 소프트웨어 애플리케이션에 의한 제1 음성 액션의 수행을 유발하고; 그리고
    사용자 디바이스의 사용자 디바이스 상태가 하나 이상의 제2 조건을 만족할 때 상기 음성 입력이 트리거 문구를 포함한다는 결정에 응답하여:
    음성 액션 시스템에 의해, 제2 소프트웨어 애플리케이션에 의한 제2 음성 액션의 수행을 유발하는 명령들을 포함하는 것을 특징으로 비-일시적 컴퓨터 판독 가능 저장 매체.
KR1020217005450A 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템 KR102273095B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/173,823 US10049670B2 (en) 2016-06-06 2016-06-06 Providing voice action discoverability example for trigger term
US15/173,823 2016-06-06
KR1020187037683A KR102223016B1 (ko) 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템
PCT/US2016/069268 WO2017213707A1 (en) 2016-06-06 2016-12-29 Voice action discoverability system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187037683A Division KR102223016B1 (ko) 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템

Publications (2)

Publication Number Publication Date
KR20210024224A true KR20210024224A (ko) 2021-03-04
KR102273095B1 KR102273095B1 (ko) 2021-07-05

Family

ID=57838540

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187037683A KR102223016B1 (ko) 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템
KR1020217005450A KR102273095B1 (ko) 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187037683A KR102223016B1 (ko) 2016-06-06 2016-12-29 음성 액션 검색 가능 시스템

Country Status (8)

Country Link
US (3) US10049670B2 (ko)
EP (1) EP3465413A1 (ko)
JP (1) JP6799082B2 (ko)
KR (2) KR102223016B1 (ko)
CN (2) CN107464561B (ko)
DE (2) DE102016125508B4 (ko)
GB (1) GB2551232B (ko)
WO (1) WO2017213707A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023017975A1 (ko) * 2021-08-10 2023-02-16 삼성전자주식회사 상태 변경에 따라 음성 명령 처리 결과를 출력하는 전자 장치 및 그의 동작 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049670B2 (en) 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US20180188896A1 (en) * 2016-12-31 2018-07-05 Entefy Inc. Real-time context generation and blended input framework for morphing user interface manipulation and navigation
CN108231076A (zh) * 2018-01-04 2018-06-29 广州视源电子科技股份有限公司 一种语音控制方法、装置、设备及存储介质
US11145291B2 (en) * 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Training natural language system with generated dialogues
US10861440B2 (en) * 2018-02-05 2020-12-08 Microsoft Technology Licensing, Llc Utterance annotation user interface
KR102508863B1 (ko) * 2018-03-19 2023-03-10 삼성전자 주식회사 전자 장치 및 상기 전자 장치로부터 수신된 데이터를 처리하는 서버
US11133001B2 (en) * 2018-03-20 2021-09-28 Microsoft Technology Licensing, Llc Generating dialogue events for natural language system
KR20190130376A (ko) * 2018-05-14 2019-11-22 삼성전자주식회사 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
KR20200048701A (ko) * 2018-10-30 2020-05-08 삼성전자주식회사 사용자 특화 음성 명령어를 공유하기 위한 전자 장치 및 그 제어 방법
WO2020106314A1 (en) * 2018-11-21 2020-05-28 Google Llc Consolidation of responses from queries to disparate data sources
AU2019444436B2 (en) * 2019-05-06 2023-01-05 Google Llc Automated assistant for generating, in response to a request from a user, application input content using application data from other sources
EP3776175B1 (en) * 2019-06-05 2023-10-18 Google LLC Action validation for digital assistant-based applications
US20200388280A1 (en) 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
CN110390935B (zh) * 2019-07-15 2021-12-31 百度在线网络技术(北京)有限公司 语音交互方法和装置
CN110674338B (zh) * 2019-09-27 2022-11-01 百度在线网络技术(北京)有限公司 语音技能推荐方法、装置、设备及存储介质
CN112581946A (zh) * 2019-09-29 2021-03-30 百度在线网络技术(北京)有限公司 语音控制方法、装置、电子设备和可读存储介质
CN111124347B (zh) * 2019-12-03 2023-05-26 杭州蓦然认知科技有限公司 一种聚合形成交互引擎簇的方法、装置
JP2021093051A (ja) * 2019-12-12 2021-06-17 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及び制御方法
US11462220B2 (en) * 2020-03-04 2022-10-04 Accenture Global Solutions Limited Infrastructure automation platform to assist in performing actions in response to tasks
CN114080817A (zh) * 2020-06-09 2022-02-22 谷歌有限责任公司 从可视内容生成交互式音轨
CN111968631B (zh) * 2020-06-29 2023-10-10 百度在线网络技术(北京)有限公司 智能设备的交互方法、装置、设备及存储介质
US11558546B2 (en) 2020-11-24 2023-01-17 Google Llc Conditional camera control via automated assistant commands
CN112579036A (zh) * 2020-12-17 2021-03-30 南方电网深圳数字电网研究院有限公司 语音输入的报告设计器实现方法、系统、设备及存储介质
US11978449B2 (en) 2021-03-02 2024-05-07 Samsung Electronics Co., Ltd. Electronic device for processing user utterance and operation method therefor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249200A (ja) * 2006-03-13 2007-09-27 Internatl Business Mach Corp <Ibm> ヘルプを音声使用可能アプリケーションに供給する方法及びシステム、並びに音声文法
KR20140003610A (ko) * 2011-03-25 2014-01-09 미쓰비시덴키 가부시키가이샤 엘리베이터의 호출 등록 장치
KR20140039961A (ko) * 2012-09-20 2014-04-02 삼성전자주식회사 사용자 디바이스에서 상황 인식 서비스 제공 방법 및 장치
KR20140089861A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US20150039319A1 (en) * 2012-08-09 2015-02-05 Huawei Device Co., Ltd. Command Handling Method, Apparatus, and System
KR20160022326A (ko) * 2016-02-04 2016-02-29 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388198A (en) * 1992-04-16 1995-02-07 Symantec Corporation Proactive presentation of automating features to a computer user
US6505160B1 (en) * 1995-07-27 2003-01-07 Digimarc Corporation Connected audio and other media objects
US6298324B1 (en) * 1998-01-05 2001-10-02 Microsoft Corporation Speech recognition system with changing grammars and grammar help command
US6085159A (en) * 1998-03-26 2000-07-04 International Business Machines Corporation Displaying voice commands with multiple variables
US6233559B1 (en) * 1998-04-01 2001-05-15 Motorola, Inc. Speech control of multiple applications using applets
US6012030A (en) * 1998-04-21 2000-01-04 Nortel Networks Corporation Management of speech and audio prompts in multimodal interfaces
US6308157B1 (en) * 1999-06-08 2001-10-23 International Business Machines Corp. Method and apparatus for providing an event-based “What-Can-I-Say?” window
US7085723B2 (en) * 2001-01-12 2006-08-01 International Business Machines Corporation System and method for determining utterance context in a multi-context speech application
US7324947B2 (en) * 2001-10-03 2008-01-29 Promptu Systems Corporation Global speech user interface
JP4107093B2 (ja) 2003-01-30 2008-06-25 株式会社日立製作所 対話型端末装置及び対話アプリケーション提供方法
US20050114140A1 (en) * 2003-11-26 2005-05-26 Brackett Charles C. Method and apparatus for contextual voice cues
US20080229198A1 (en) * 2004-09-30 2008-09-18 Searete Llc, A Limited Liability Corporaiton Of The State Of Delaware Electronically providing user assistance
US20130238991A1 (en) * 2004-10-27 2013-09-12 Searete Llc Enhanced Contextual User Assistance
JP4670331B2 (ja) * 2004-11-30 2011-04-13 富士ゼロックス株式会社 音声ガイドシステムおよびその音声ガイド方法
US7606953B2 (en) * 2005-02-25 2009-10-20 Microsoft Corporation Method and system for generating context-aware content from source content associated with a computing device
JP2006301967A (ja) * 2005-04-20 2006-11-02 Sony Computer Entertainment Inc 会話支援装置
US7991607B2 (en) * 2005-06-27 2011-08-02 Microsoft Corporation Translation and capture architecture for output of conversational utterances
US8694322B2 (en) * 2005-08-05 2014-04-08 Microsoft Corporation Selective confirmation for execution of a voice activated user interface
US20070135096A1 (en) * 2005-12-14 2007-06-14 Symbol Technologies, Inc. Interactive voice browsing server for mobile devices on wireless networks
US8977255B2 (en) * 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8019606B2 (en) * 2007-06-29 2011-09-13 Microsoft Corporation Identification and selection of a software application via speech
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
US8151192B2 (en) * 2008-02-01 2012-04-03 Microsoft Corporation Context sensitive help
US9626968B2 (en) * 2008-06-25 2017-04-18 Verint Systems Ltd. System and method for context sensitive inference in a speech processing system
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10540976B2 (en) * 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9197736B2 (en) * 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
KR101622111B1 (ko) * 2009-12-11 2016-05-18 삼성전자 주식회사 대화 시스템 및 그의 대화 방법
US8688453B1 (en) * 2011-02-28 2014-04-01 Nuance Communications, Inc. Intent mining via analysis of utterances
GB2495222B (en) * 2011-09-30 2016-10-26 Apple Inc Using context information to facilitate processing of commands in a virtual assistant
US8452597B2 (en) * 2011-09-30 2013-05-28 Google Inc. Systems and methods for continual speech recognition and detection in mobile computing devices
US8799635B2 (en) * 2012-01-26 2014-08-05 International Business Machines Corporation Intelligent application recommendation feature
EP2639792A1 (en) 2012-03-16 2013-09-18 France Télécom Voice control of applications by associating user input with action-context idendifier pairs
US8744771B2 (en) * 2012-03-26 2014-06-03 Navteq B.V. Reverse natural guidance
US9275411B2 (en) 2012-05-23 2016-03-01 Google Inc. Customized voice action system
KR20130133629A (ko) * 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
KR20130140423A (ko) * 2012-06-14 2013-12-24 삼성전자주식회사 디스플레이 장치, 대화형 서버 및 응답 정보 제공 방법
CN103591947B (zh) * 2012-08-13 2016-12-28 百度在线网络技术(北京)有限公司 移动终端的语音后台导航方法及移动终端
US8977961B2 (en) * 2012-10-16 2015-03-10 Cellco Partnership Gesture based context-sensitive functionality
US9275642B2 (en) * 2012-11-13 2016-03-01 Unified Computer Intelligence Corporation Voice-operated internet-ready ubiquitous computing device and method thereof
US9085303B2 (en) * 2012-11-15 2015-07-21 Sri International Vehicle personal assistant
US9659298B2 (en) * 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
CN103902629B (zh) * 2012-12-28 2017-09-29 联想(北京)有限公司 利用语音提供操作帮助的电子设备和方法
JP6122642B2 (ja) * 2013-01-10 2017-04-26 株式会社Nttドコモ 機能実行システム及び発話例出力方法
US9384732B2 (en) * 2013-03-14 2016-07-05 Microsoft Technology Licensing, Llc Voice command definitions used in launching application with a command
US9123330B1 (en) * 2013-05-01 2015-09-01 Google Inc. Large-scale speaker identification
US10127224B2 (en) * 2013-08-30 2018-11-13 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
WO2015040491A2 (en) * 2013-09-19 2015-03-26 Aegis Mobility, Inc. Restricting functionality of protected devices
US9697522B2 (en) 2013-11-01 2017-07-04 Plantronics, Inc. Interactive device registration, setup and use
US9094453B2 (en) * 2013-11-06 2015-07-28 Google Technology Holdings LLC Method and apparatus for associating mobile devices using audio signature detection
US9257133B1 (en) * 2013-11-26 2016-02-09 Amazon Technologies, Inc. Secure input to a computing device
US8862467B1 (en) * 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition
US8849675B1 (en) * 2013-12-18 2014-09-30 Google Inc. Suggested query constructor for voice actions
US9741343B1 (en) * 2013-12-19 2017-08-22 Amazon Technologies, Inc. Voice interaction application selection
US9361005B2 (en) * 2013-12-27 2016-06-07 Rovi Guides, Inc. Methods and systems for selecting modes based on the level of engagement of a user
US8938394B1 (en) * 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
US9582246B2 (en) * 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
US11209897B2 (en) * 2014-04-25 2021-12-28 Lenovo (Singapore) Pte. Ltd. Strengthening prediction confidence and command priority using natural user interface (NUI) inputs
US9639854B2 (en) 2014-06-26 2017-05-02 Nuance Communications, Inc. Voice-controlled information exchange platform, such as for providing information to supplement advertising
CN104217719A (zh) * 2014-09-03 2014-12-17 深圳如果技术有限公司 一种触发处理方法
WO2016053276A1 (en) * 2014-09-30 2016-04-07 Nuance Communications, Inc. Methods and apparatus for module arbitration
US9666185B2 (en) * 2014-10-06 2017-05-30 Nuance Communications, Inc. Automatic data-driven dialog discovery system
US10235130B2 (en) * 2014-11-06 2019-03-19 Microsoft Technology Licensing, Llc Intent driven command processing
US9646611B2 (en) * 2014-11-06 2017-05-09 Microsoft Technology Licensing, Llc Context-based actions
US9916431B2 (en) * 2015-01-15 2018-03-13 Qualcomm Incorporated Context-based access verification
US10250641B2 (en) * 2015-01-27 2019-04-02 Sri International Natural language dialog-based security help agent for network administrator
CN106157955A (zh) * 2015-03-30 2016-11-23 阿里巴巴集团控股有限公司 一种语音控制方法及装置
US9472196B1 (en) * 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US10388280B2 (en) * 2016-01-27 2019-08-20 Motorola Mobility Llc Method and apparatus for managing multiple voice operation trigger phrases
US9922648B2 (en) * 2016-03-01 2018-03-20 Google Llc Developer voice actions system
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US9691384B1 (en) * 2016-08-19 2017-06-27 Google Inc. Voice action biasing system
US10600418B2 (en) * 2016-12-07 2020-03-24 Google Llc Voice to text conversion based on third-party agent content

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249200A (ja) * 2006-03-13 2007-09-27 Internatl Business Mach Corp <Ibm> ヘルプを音声使用可能アプリケーションに供給する方法及びシステム、並びに音声文法
KR20140003610A (ko) * 2011-03-25 2014-01-09 미쓰비시덴키 가부시키가이샤 엘리베이터의 호출 등록 장치
US20150039319A1 (en) * 2012-08-09 2015-02-05 Huawei Device Co., Ltd. Command Handling Method, Apparatus, and System
KR20140039961A (ko) * 2012-09-20 2014-04-02 삼성전자주식회사 사용자 디바이스에서 상황 인식 서비스 제공 방법 및 장치
KR20140089861A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
KR20160022326A (ko) * 2016-02-04 2016-02-29 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023017975A1 (ko) * 2021-08-10 2023-02-16 삼성전자주식회사 상태 변경에 따라 음성 명령 처리 결과를 출력하는 전자 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
DE102016125508A1 (de) 2017-12-07
WO2017213707A1 (en) 2017-12-14
EP3465413A1 (en) 2019-04-10
GB2551232A (en) 2017-12-13
US10741183B2 (en) 2020-08-11
US20200357411A1 (en) 2020-11-12
CN107464561A (zh) 2017-12-12
GB2551232B (en) 2019-03-13
DE202016107300U1 (de) 2017-09-08
CN113571058A (zh) 2021-10-29
US11929075B2 (en) 2024-03-12
KR102223016B1 (ko) 2021-03-04
US10049670B2 (en) 2018-08-14
KR102273095B1 (ko) 2021-07-05
CN107464561B (zh) 2021-06-29
US20170352352A1 (en) 2017-12-07
GB201621600D0 (en) 2017-02-01
JP6799082B2 (ja) 2020-12-09
CN113571058B (zh) 2022-11-11
DE102016125508B4 (de) 2022-03-10
KR20190011286A (ko) 2019-02-01
JP2019523930A (ja) 2019-08-29
US20190103114A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
KR102223016B1 (ko) 음성 액션 검색 가능 시스템
US9922648B2 (en) Developer voice actions system
US10089982B2 (en) Voice action biasing system
US11043206B2 (en) Systems and methods for crowdsourced actions and commands
KR102038074B1 (ko) 개발자 보이스 액티비티 시스템
US9026431B1 (en) Semantic parsing with multiple parsers
US10698654B2 (en) Ranking and boosting relevant distributable digital assistant operations
WO2019152511A1 (en) Personalized digital assistant device and related methods
EP3746914B1 (en) Personalized digital assistant device and related methods
WO2020018826A1 (en) Systems and methods for crowdsourced actions and commands
WO2019083601A1 (en) CLASSIFICATION AND AMPLIFICATION OF RELEVANT DISTRIBUTABLE DIGITAL ASSISTANT OPERATIONS

Legal Events

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