KR20190122888A - 개발자 보이스 액티비티 시스템 - Google Patents

개발자 보이스 액티비티 시스템 Download PDF

Info

Publication number
KR20190122888A
KR20190122888A KR1020197031169A KR20197031169A KR20190122888A KR 20190122888 A KR20190122888 A KR 20190122888A KR 1020197031169 A KR1020197031169 A KR 1020197031169A KR 20197031169 A KR20197031169 A KR 20197031169A KR 20190122888 A KR20190122888 A KR 20190122888A
Authority
KR
South Korea
Prior art keywords
application
intent
user
grammar
trigger phrase
Prior art date
Application number
KR1020197031169A
Other languages
English (en)
Other versions
KR102173100B1 (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 KR20190122888A publication Critical patent/KR20190122888A/ko
Application granted granted Critical
Publication of KR102173100B1 publication Critical patent/KR102173100B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0638Interactive procedures
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

애플리케이션 및 보이스 커맨드 트리거 용어를 식별하는 데이터를 수신하고, 수신된 데이터를 검증하고, 애플리케이션, 보이스 커맨드 트리거 용어, 및 적어도 보이스 커맨드 트리거에 기초하여 결정된 하나 이상의 다른 보이스 커맨드 트리거 용어를 특정하는 패시브 데이터 구조를 생성하도록 수신된 데이터를 유도하고, 상기 패시브 데이터 구조를 컨텍스트 인텐트 데이터베이스 - 상기 컨텍스트 인텐트 데이터베이스는 하나 이상의 다른 패시브 데이터 구조를 포함한다 - 에 저장하는 방법, 시스템 및 장치를 개시한다.

Description

개발자 보이스 액티비티 시스템{DEVELOPER VOICE ACTIONS SYSTEM}
본 발명은 비록 배타적인 것은 아니지만 일반적으로 보이스 커맨드(voice commands) 에 관한 것이며, 일 실시예는 보이스 커맨드를 구성(configuration)하는 것에 관한 것이다.
소프트웨어에서 정의되는 액티비티(activity는 태스크(task)를 특정(specify)할 수 있으며, 여기서 액티비티는 태스크 실행의 라이프 사이클을 제어하는 클래스(class)이다. 인텐트(intent)는 특정 액티비티 및 이 특정 액티비티와 연관된 애플리케이션을 특정할 수 있는 패시브(passive) 데이터 구조이다. 인텐트는 애플리케이션에 의해 트리거될 수 있으며, 이 인텐트가 특정한 액티비티가 이 인텐트에 의해 특정된 타겟 애플리케이션(target application) 상에서 수행되거나 또는 이 타겟 애플리케이션에 의해 수행되도록 할 수 있다.
인텐트로서 일컬어지는 패시브(passive) 데이터 구조는 애플리케이션을 특정하고 그리고 이 애플리케이션 상에서 또는 이 애플리케이션에 의해 수행되는 태스크를 특정할 수 있으며, 여기서 액티비티는 애플리케이션 상에서 또는 애플리케이션에 의해 실행되는 태스크이다. 인텐트는 인텐트를 트리거하는 데 사용할 수 있는 하나 이상의 트리거 어구(trigger phrases)를 특정하여, 인텐트를 트리거하면 특정된 애플리케이션에서 액티비티를 수행할 수 있게 된다. 예를 들어, 인텐트는 택시 서비스(taxi service)를 위한 애플리케이션과 관련될 수 있고, 사용자에 의해 발언될 때 트리거 어구 중 하나의 검출이 택시 서비스 애플리케이션의 시작(launching)을 트리거하도록 보이스 액션으로서 동작하는 하나 이상의 트리거 어구를 특정할 수 있다. 인텐트는 인텐트에 의해 특정된 애플리케이션이 아닌 애플리케이션이나 운영 체제에 의해 트리거될 수 있으므로 애플리케이션을 트리거하면 특정 애플리케이션 상에서 또는 특정 애플리케이션에 의해 특정된 태스크가 수행된다.
호스트가 제공하는 서비스 또는 툴은 애플리케이션 개발자로 하여금 개발중인 특정 애플리케이션을 특정하는 새로운 인텐트를 요청할 수 있게 한다. 새로운 인텐트에 대한 제출은 문법의 형태일 수 있으며, 여기서 개발자는 서비스 또는 툴에 문법을 제출할 수 있으며, 서비스 또는 툴은 이 문법에 기초하여 특정 애플리케이션에 대한 인텐트를 생성할 수 있다.
새로운 인텐트들의 생성은 특정 결과가 달성되도록 하기 위해 애플리케이션에 제공될 수 있는 입력들의 수와 범위를 증가시킴으로써 개발중인 특정 애플리케이션의 유연성을 향상시킬 수 있다. 결과적으로, 특정 애플리케이션이 사용자의 입력에 대해 올바른 방식으로 응답하고, 사용자 입력의 처리가 개선될 수 있게 되므로, 개발중인 애플리케이션의 신뢰성이 향상될 수 있다.
일부 구현들에서, 개발자가 제출한 문법은 애플리케이션, 트리거 어구, 액티비티 또는 복합 액티비티, 컨텍스트 또는 다른 정보 중 하나 이상을 특정할 수 있다. 문법은 개발자가 제출하고 개발자 보이스 액션 서비스 또는 툴(tool)에 의해 네트워크를 통해 수신된다. 개발자 보이스 액션 서비스 또는 툴은 문법을 검증할 수 있다. 예를 들어 문법의 유효성 검사는 트리거 어구가 운영 체제 또는 다른 애플리케이션의 인텐트와 이미 연관되어 있는지 여부를 결정할 수 있거나, 문법에 의해 특정된 액티비티가 특정된 애플리케이션에서 수행될 수 있는지 여부를 결정할 수 있거나, 트리거 어구가 임의의 기준을 만족하는지 여부를 결정할 수 있거나, 제출된 문법의 포맷이 구문론적으로 유효한지 여부를 결정할 수 있거나, 혹은 개발자가 제출한 문법이 새로운 인텐트를 만드는 데 사용할 수 있는 실행 가능한 문법인지 여부를 결정할 수 있다.
유효 문법이 문법을 인텐트로 변환하고 문법에 특정된 트리거 어구를 확장하기 위해 개발자의 보이스 액션 서비스 또는 툴은 유효한 문법을 사용할 수 있다. 예를 들어, 문법의 유도(induction)는 제 1 포맷으로 제출된 문법을 제 2 포맷인 인텐트로 변환하는 것을 포함할 수 있다. 문법을 인텐트로 변환하는 것 외에도 개발자가 제출한 트리거 어구는 다른 관련 트리거 어구를 포함하도록 확장될 수 있다. 예를 들어, 하나 이상의 트리거 어구 확장 규칙, 동의어 규칙, 용어 선택사항 규칙 또는 다른 규칙을 트리거 어구에 적용하여 인텐트와 관련된 하나 이상의 관련 트리거 어구를 생성할 수 있다. 생성된 인텐트는 애플리케이션, 하나 이상의 트리거 어구 및 선택적으로(optionally) 액티비티, 복합 액티비티, 컨텍스트 또는 인텐트와 및 이 인텐트의 트리거링과 관련된 다른 정보와 함께 컨텍스트 인텐트 데이터베이스에 저장될 수 있다.
문법의 검증에 기초한 새로운 인텐트의 생성은 개발자가 인텐트의 직접 입력을 통해 새로운 인텐트를 생성할 필요가 없다는 것을 의미한다. 전술한 바와 같이, 문법은 유도 프로세스에서 변환될 수 있는 특정 포맷을 가질 수 있고,이 변환 프로세스는 입력 문법 포맷에 대한 요건들이 완화되기 때문에 새로운 인텐트에 적합한 후보가될 수 있는 문법의 수를 넓힐 수 있게 해준다. 결과적으로 애플리케이션은 적은 수의 사용자 입력으로 새로운 인텐트를 포함하도록 개발할 수 있다.
개발자가 제출한 문법이 인텐트로서 확립(establish)되면, 사용자는 클라이언트 장치에 보이스 입력을 제공할 수 있다. 사용자의 보이스 입력은 보이스 입력의 전사(trancription)를 생성하도록 전사될 수 있으며, 이 전사는 컨텍스트 인텐트 데이터베이스에 저장되거나 또는 인텐트를 특정하는 하나 이상의 다른 (클라이언트 장치의 운영 체제와 관련된 인텐트를 포함하는 데이터베이스와 같은) 데이터베이스에 저장된 인텐트와 연관된 하나 이상의 트리거 어구와 매칭될 수 있다. 전사의 일부가 특정 인텐트와 연관된 트리거 어구와 매칭함을 결정함에 기초하여, 인텐트는 인텐트와 연관된 액티비티가 특정 인텐트에 의해 특정된 애플리케이션 상에서 또는 애플리케이션에 의해 수행되도록 트리거될 수 있다.
예를 들어, 택시 서비스 애플리케이션을 시작하는 것과 관련된 인텐트는 트리거 어구 "Call a cab"와 연관될 수 있다. 클라이언트 장치가 어구 "Call a cab가 포함된 사용자의 보이스 입력을 수신함에 기초하여, 클라이언트 장치 또는 다른 시스템이 택시 서비스 애플리케이션 실행을 시작할 수 있다.
본 명세서에 기술된 발명의 혁신적인 양태들은 방법들에 의해 구현되며, 이 방법들은 애플리케이션 및 보이스 커맨드 트리거 용어를 식별하는 데이터를 수신하는 동작과; 상기 수신된 데이터를 검증하는 동작과; 상기 애플리케이션과, 상기 보이스 커맨드 트리거 용어와, 그리고 적어도 상기 보이스 커맨드 트리거 용어에 기초하여 결정된 하나 이상의 다른 보이스 커맨드 트리거 용어를 특정하는 인텐트를 생성하도록 상기 수신된 데이터를 유도하는 동작과; 상기 인텐트를 컨텍스트 인텐트 데이터베이스에 저장하는 동작을 포함하며, 상기 컨텍스트 인텐트 데이터베이스는 하나 이상의 다른 인텐트를 포함한다. 이들 양태들의 다른 실시예들은 대응 시스템들, 장치 및, 컴퓨터 저장 장치들에 인코딩된 방법들의 동작들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다.
이들 및 다른 실시 예는 각각 선택적으로 하나 이상의 다음 특징을 포함할 수 있다. 다양한 예들에서, 수신된 데이터를 검증하는 단계는 보이스 커맨드 트리거 용어가 식별된 애플리케이션과 다른 애플리케이션과 연관되지 않는다는 것을 결정하는 것을 포함한다. 상기 동작들은 동작을 식별하는 데이터를 수신하는 단계를 포함하며, 상기 수신된 데이터를 검증하는 것은 상기 식별된 동작이 상기 식별된 애플리케이션과 호환 가능하다는 것을 결정하는 것을 포함한다. 애플리케이션, 보이스 커맨드 트리거 용어 및 적어도 보이스 커맨드 트리거 용어에 기초하여 결정되는 하나 이상의 다른 보이스 커맨드 트리거 용어를 특정하는 인텐트를 생성하기 위해 수신된 데이터를 유도하는 단계는 애플리케이션을 식별하는 상기 수신된 데이터 및 보이스 커맨드 트리거 용어를 다른 데이터 포맷으로 변환하는 것을 포함한다. 애플리케이션, 보이스 커맨드 트리거 용어 및 적어도 보이스 커맨드 트리거 용어에 기초하여 결정되는 하나 이상의 다른 보이스 커맨드 트리거 용어를 특정하는 인텐트를 생성하도록 수신된 데이터를 유도하는 단계는 하나 이상의 동의어 규칙, 선택 사항 규칙 또는 확장 규칙을 보이스 커맨드 트리거 용어에 적용함으로써 적어도 보이스 커맨드 트리거 용어에 기초하여 결정되는 하나 이상의 다른 보이스 커맨드 트리거 용어를 생성하는 것을 포함한다.
상기 동작들은 사용자가 말한 발화를 포함하는 오디오 데이터를 획득하는 단계, 적어도 상기 오디오 데이터에 기초하여 상기 사용자가 말한 발화의 전사를 생성하는 단계, 상기 전사의 적어도 일부가 컨텍스트 인텐트 데이터페이스에 저장된 인텐트에 의해 특정된 특정 보이스 커맨드 트리거 용어와 매칭하는지를 결정하는 단계를 포함하며, 상기 인텐트는 특정 애플리케이션 및 상기 특정 보이스 커맨드 트리거 용어를 특정하고, 상기 전사의 적어도 일부분이 상기 인텐트에 의해 특정된 상기 특정 보이스 커맨드 트리거 용어와 부합한다고 결정에 기초하여 태스크가 수행되게 하는 것을 포함한다. 상기 태스크가 수행되도록 하는 것은 상기 특정 애플리케이션으로 하여금 상기 태스크를 수행하게 하는 것을 포함한다. 상기 동작들은, (i) 애플리케이션과 (ii) 보이스 커맨드 트리거 용어를 특정하는 하나 이상의 인텐트 각각에 대해, 상기 전사의 적어도 일부분이 상기 인텐트에 의해 특정된 보이스 커맨드 트리거와 매칭함을 결정하는 것과; 상기 하나 이상의 인텐트 각각에 의해 특정된 상기 애플리케이션들을 포함하는 애플리케이션들의 세트 중에서 특정 애플리케이션의 선택을 요청하는 것과; 상기 하나 이상의 인텐트 각각에 의해 특정된 상기 애플리케이션들을 포함하는 애플리케이션들의 세트 중에서 특정 애플리케이션의 선택을 표시하는 데이터를 수신하는 것과; 그리고 상기 특정 애플리케이션의 선택을 표시하는 데이터를 수신함에 응답하여, 상기 특정 보이스 커맨트 트리거 용어와 상기 특정 애플리케이션을 특정하는 인텐트와의 사이의 관계의 세기(strength)를 조정하는 것을 더 포함한다.
상기 동작들은 (i) 애플리케이션과 (ii) 보이스 커맨드 트리거 용어를 특정하는 하나 이상의 인텐트 각각에 대해, 상기 전사의 적어도 일부분이 상기 인텐트에 의해 특정된 보이스 커맨드 트리거와 매칭함을 결정하는 것과; 상기 하나 이상의 인텐트 각각에 대해, 상기 인텐트에 의해 특정된 상기 보이스 커맨드 트리거 용어와 상기 인텐트에 의해 특정된 상기 애플리케이션과의 유사성을 표시하는 유사성 측청치를 결정하는 것과; 적어도 상기 하나 이상의 인텐트 각각에 대한 유사성 특정치에 기초하여 특정 인텐트를 선택하는 것과; 그리고 상기 특정 인텐트에 의해 특정된 태스크를 수행하게 하는 것을 포함한다. 상기 동작들은 (i) 애플리케이션과 (ii) 보이스 커맨드 트리거 용어를 특정하는 하나 이상의 인텐트 각각에 대해, 상기 전사의 적어도 일부분이 상기 인텐트에 의해 특정된 보이스 커맨드 트리거와 매칭함을 결정하는 것과; 상기 하나 이상의 인텐트의 순위를 정하는 것과; 적어도 상기 하나 이상의 인텐트의 순위에 기초하여 특정 인텐트를 선택하는 것과; 그리고 상기 특정 인텐트에 의해 특정된 태스크를 수행하게 하는 것을 포함한다.
본 명세서에서 설명된 발명의 하나 이상의 실시 예의 세부 사항이 첨부 도면 및 이하의 상세한 설명에 제시된다. 발명의 다른 잠재적인 특징, 양태 및 장점들이 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 개발자 보이스 액션 시스템 및 서비스에 대한 예시적인 시스템을 나타낸다.
도 2는 보이스 액션 시스템 및 서비스를 사용하기 위한 예시적인 시스템을 나타낸다.
도 3은 개발자 보이스 액션 시스템 및 서비스와 관련된 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 부호는 동일한 요소를 나타낸다.
도 1은 개발자 보이스 액션 서비스 시스템(100)의 예를 도시한다. 일반적으로, 개발자 보이스 액션 서비스는 애플리케이션 개발자(101)로 하여금 개발자 보이스 액션 서비스 시스템(100)에 의해 새로운 인텐트에 대한 후보로 취급되는 문법을 제출(submission)하게 한다.
개발자 보이스 액션 서비스 시스템(100)은 애플리케이션 개발자(101)에 의해 제출된 문법의 유효성을 검증하고, 만일 유효한 경우, 상기 문법을 제출되었던 포맷으로부터 인텐트 포맷으로 변환함과 아울러 상기 특정된 트리거 어구와 관련된 추가적인 트리거 어구들을 포함하도록 상기 문법에 의해 특정된 트리거 어구를 확장함으로써 상기 문법을 유도한다. 개발자 보이스 액션 서비스 시스템(100)은 이 새로운 인텐트를, 다양한 애플리케이션을 특정하는 다른 인텐트들을 포함하는 콘텍스트 인텐트 데이터베이스(140)에 저장한다.
간단히 말해서, 개발자 보이스 액션 서비스 시스템(100)은 인제스쳔 엔진(ingestion engine)(110), 검증 엔진(120), 문법 유도 엔진(130) 및 컨텍스트 인텐트 데이터베이스(140)를 포함한다. 인제스쳔 엔진(110), 검증 엔진(120), 문법 유도 엔진(130) 또는 컨텍스트 인텐트 데이터베이스(140) 중 임의의 것은 개발자 보이스 액션 서비스 시스템(100)의 컴포넌트들 - 이들 컴포넌트들은 개발자 보이스 액션 서비스 시스템(100)과 통신할 수 있는 다른 시스템들 (예컨대, 또 하나의 보이스 액션 서비스 시스템)과는 독립적이다 - 로 구현되거나 혹은 이들 다른 시스템들의 컴포넌트들로 구현될 수 있다. 검증 엔진(120)은 검증 기준 데이터베이스(125)에서 이용 가능한 검증 기준에 대한 액세스를 가지며, 문법 유도 엔진(130)은 유도 규칙 데이터베이스(135)에서 이용 가능한 유도 규칙들에 대한 액세스를 갖는다. 애플리케이션 개발자(101)는 하나 이상의 네트워크(105)를 통해 개발자 보이스 액션 서비스 시스템(100)과 통신하는 컴퓨팅 장치(102)를 사용하여 개발자 보이스 액션 서비스 시스템(100)에 문법을 제출할 수 있다.
애플리케이션 개발자(101)는 특정 애플리케이션에 대한 새로운 인텐트를 요청하기 위해 개발자 보이스 액션 서비스 시스템(100)에 문법을 제출할 수 있다. 구체적으로, 애플리케이션 개발자(101)는 하나 이상의 네트워크(105)를 통해 개발자 보이스 액션 서비스 시스템(100)과 통신할 수 있는 컴퓨팅 장치(102)를 사용하여 문법을 제출할 수 있다.
애플리케이션 개발자(101)에 의해 제출된 문법은 새로운 인텐트의 생성에 관한 다양한 정보를 특정할 수 있다. 구체적으로, 문법은 애플리케이션 개발자(101)가 새로운 인텐트를 생성하고자 개발하는 특정 애플리케이션과 같은 그러한 특정 애플리케이션을 특정할 수 있다. 대안적으로, 애플리케이션 개발자가 개발하고 있는 애플리케이션과 관련되거나 통신하고 있는 특정 애플리케이션을 특정하는 문법과 같은 그러한 문법이 애플리케이션 개발자(101)가 개발하고 있는 애플리케이션과 다른 특정 애플리케이션을 특정할 수 있다. 또 다른 예에서, 문법은 애플리케이션 개발자(101)가 개발중인 애플리케이션 또는 다른 애플리케이션과 연관된 특정 서브 프로세스, 스레드 또는 다른 디비젼(division)과 같은 애플리케이션의 특정 양태를 특정할 수도 있다. 애플리케이션 개발자(101)는 문법의 트리거 어구를 추가로 특정할 수 있다. 트리거 어구는 사용자가 제공한 보이스 입력에서 검출될 때 상기 인텐트를 트리거하는 하나 이상의 용어를 포함한다. 일부 경우에서, 트리거 어구는 하나 이상의 인수(argument)를 포함할 수 있으며, 상기 인수는 사용자의 보이스 입력의 하나 이상의 용어로 대체될 수 있는 트리거 어구에서 자리 표시자(placeholder) 역할을 한다. 예를 들어, "Take me to $location"이라는 트리거 어구는 "Take me to 1425 K Street Northwest, Washington DC"와 같은 그러한 사용자 보이스 입력이 트리거 어구와 매칭하는 것으로 식별될 수 있게 한다. 장소, 날짜, 날짜 또는 시간, 사람, 클라이언트 장치에 저장된 연락처, 노래, 영화 또는 기타 콘텐츠 항목과 같은 콘텐츠 항목을 특정하는 인수들 또는 기타 인수들과 같은 다른 인수들이 검출될 수 있다.
문법은 이 문법에 의해 특정된 특정 애플리케이션 상에서/에 의해 수행되는 태스크로서 정의된 특정 액티비티를 선택에 따라 특정할 수도 있다. 또한,일부 경우들에서, 애플리케이션 개발자(101)는 문법과 관련된 컨텍스트을 특정할 수 있는데, 여기서 컨텍스트는 문법에 의해 특정된 인텐트의 트리거링을 위해 제시되어야하거나 트리거된 인텐트의 선택을 변경하기 위해 제시되어야 하는 추가적인 조건들을 정의한다. 일부 구현들에서, 애플리케이션 개발자(101)에 의해 제출된 문법은 개발자-정의 타입을 특정할 수 있으며, 여기서 타입은 트리거 어구가 포함된 경우 검출되어야 하는 하나 이상의 용어로서 정의된다. 예를 들어, 하나 이상의 용어로 식별되는 개발자-정의 타입은 특정 타입의 애플리케이션-특정 모드(예 : "절전"또는 "잠금")와 연관되거나, 특정 애플리케이션에 제공되는 입력(예를 들어 중고차 검색 애플리케이션에서 자동차 모델 이름 등)과 연계하여 빈번히 사용되는 특정 용어들에 의해 식별되거나, 혹은 특정 애플리케이션이나 트리거 어구와 관련된 개발자-정의 타입일 수 있다. 보이스 입력이 사용자로부터 수신되면, 보이스 액션 서비스 시스템은 다른 용어들보다는 타입의 용어들을 검출할 가능성이 더 높을 수 있다. 예를 들어, 보이스 액션 서비스 시스템은 애플리케이션 개발자가 제출한 하나 이상의 문법으로 정의된 타입인 "sleep"에 기초하여 용어 "slip"보다는 보이스 입력으로부터 용어 "sleep"을 검출할 가능성이 더 높을 수 있다.
일부 예들에서, 타입은 특정 엔티티와 연관되거나 참조될 수 있다. 예를 들어, "my house"라는 용어로 정의된 타입은 사용자와 관련된 속성과 연관될 수 있는데, 이는 예컨대 사용자가 애플리케이션, 보이스 액션 시스템에 상기 속성과 연관된 주소를 등록함에 기초하거나 혹은 상기 애플리케이션 개발자(101)가 상기 문법에서 상기 용어들에 의해 정의된 타입 "my house"는 상기 사용자의 속성 또는 상기 속성의 주소와 연관되어야 함을 특정함에 기초한다. 사용자 보이스 입력에서 타입을 정의하는 용어들을 검출하면, 트리거된 인텐트에 의해 특정된 액티비티가 상기 타입과 연관된 엔티티에 관하여 수행될 수 있게 된다.
예를 들어, 사용자가 보이스 액션 서비스 시스템에 보이스 입력 "Get me a cab to my house"를 제공함에 기초하여, 보이스 액션 서비스 시스템은 이 보이스 입력이 택시 서비스 애플리케이션을 위한 인텐트에 의해 특정된 트리거 어구와 매칭하는 것으로 판단할 수 있고, 그리고 또한, 보이스 입력에 포함된 용어 "my house"가 사용자의 집 주소와 관련된 타입에 해당한다고 결정할 수 있다. 따라서 이 인텐트를 트리커하면 택시 서비스 애플리케이션이 택시에 사용자를 현재 위치에서 그의 집 주소로 태워다 줄 것을 요청하게 된다.
이러한 예에서, 사용자의 집 주소를 특정하는 정보가 사용자의 클라이언트 장치에서 실행중인 택시 서비스 애플리케이션의 인스턴스와 연관되어 저장될 수 있거나, 개발자 보이스 액션 서비스 시스템(100)에 저장될 수 있거나, 컨텍스트 인텐트 데이터베이스(140)에 저장된 인텐트에 의해 특정되거나, 저장될 수 있다. 일부 예에서, 타입과 관련된 엔티티는 특정 사용자에 대해 특정적이므로 용어 "my house"는 다른 사용자와 연관된 속성들의 다른 주소들을 참조할 수 있고, 이 타입과 연관된 정확한 엔티티가 이 타입을 포함하는 보이스 입력을 제공하도록 사용자에 대해 선택될 수 있다.
일 예로서, 애플리케이션 개발자(101)는 도 1에 도시된 문법을 제출할 수 있다. 이 문법은 택시 서비스 애플리케이션인 "Cab Caller"라는 애플리케이션을 특정할 수 있다. 부가적으로, 이 문법은 애플리케이션 개발자(101)가 문법으로부터 생성된 인텐트의 트리거링을 일으키는 트리거 어구로서 표시한 트리거 어구 "Hail a cab"을 특정할 수 있다. 이 문법은 또한, 특정 액티비티, 즉 특정된 애플리케이션 시작을 특정한다. 따라서 문법으로부터 생성된 인텐트를 트리거링하면 "Cab Caller" 애플리케이션이 시작된다. 다시 말해서, 문법으로부터 생성된 인텐트의 트리거링은 제 3 자 애플리케이션을 시작하는 것에만 국한되지 않고, 개발자가 특정한 다른 애플리케이션들 또는 기능들을 트리거할 수 있다. 애플리케이션 개발자(101)는 문법에 대한 컨텍스트를 추가로 특정했다. 특히 컨텍스트는 문법으로부터 생성된 인텐트는, 인텐트를 트리거하는 보이스 입력을 제공하는 클라이언트 장치가 "Cab Caller" 애플리케이션의 "버전 1.2"를 호스트하는 경우에만 트리거 되어야 함을 나타낸다. 하루의 시간, 위치, 장치 배향, 날씨, 사용자 인증, 아이템을 운반하는 아이템 또는 사람의 근접성, 사용자의 클라이언트 장치상의 특정 소프트웨어 또는 컴포넌트의 존재(또는 부재), 등과 같은 많은 다른 콘텍스트들이 본 발명에 의해 고려된다.
애플리케이션 개발자(101)에 의해 제출된 문법은 개발자의 보이스 액션 서비스 시스템(100)에 의해 인제스쳔 엔진(110)의 하나 이상의 네트워크(105)를 통해 수신된다. 인제스쳔 엔진(110)은 개발자 장치 액션 서비스 시스템(100)이 애플리케이션 개발자에 의해 제출된 문법들을 수신할 수 있게 하기 위해 컴퓨팅 장치(102)와 같은 컴퓨팅 장치용 인터페이스를 제공한다.
인제스쳔 엔진(110)은 애플리케이션 개발자(101)에 의해 제출된 문법을 수신하고 그 문법을 검증 엔진(120)에 제공한다. 검증 엔진(120)은 문법을 수신하고, 제출된 문법에 기초하여 새로운 인텐트가 생성될 수 있는지 여부를 결정하기 위해 이 문법을 검증한다. 문법을 검증하기 위해, 검증 엔진(120)은 검증 기준 데이터베이스(125)에서 액세스 가능한 검증 기준에 액세스할 수 있다. 검증 기준 데이터베이스(125)는 미리 결정되었거나 혹은 수신된 문법에 응답하여 생성된 검증 기준을 포함할 수 있다.
예를 들어, 검증 엔진(120)은 문법에 의해 특정된 트리거 어구가 이미 인텐트와 관련되어 있는지를 결정함으로써 문법을 검증할 수 있다. 부가적으로 또는 대안적으로, 문법을 검증하는 것은 문법에 의해 특정된 애플리케이션이 이 문법 또는 다른 디폴트 액티비티에 의해 특정된 특정 액티비티를 수행할 수 있는지 여부를 결정하는 것을 포함할 수 있다. 예를 들어, 검증 엔진(120)은 애플리케이션에 관한 정보 (예를 들어, 어떤 액티비티가 애플리케이션 상에서 또는 이 애플리케이션에 의해 수행될 수 있는지, 어떤 데이터가 이 애플리케이션에 또는 이 애플리케이션내에서 이용가능한지를 나타내는 정보) 또는 다른 정보를 나타내는 상기 문법에서 특정된 애플리케이션과 관련된 분명한 또는 다른 정보에 대한 액세스를 가질 수 있다. 검증 엔진(120)은 문법을 확인하기 위해 상기 식별된 애플리케이션과 관련된 상기 분명한 또는 다른 정보를 참조(consult)할 수 있다.
문법을 검증하는 것은 또한 예를 들어, 컨텍스트가 만족될 수 있음을 (예를 들어, "Cab Caller"애플리케이션의 "버전 1.2"가 존재함) 보장함으로써 문법에서 특정된 컨텍스트가 적절한 컨텍스트인지 여부를 결정하는 것을 포함할 수 있다. 문법을 검증하는 것은 또한, 문법이 인텐트 포맷으로 변환될 수 있도록 적절한 포맷으로 문법이 제공되었음을 결정하는 것을 포함할 수 있다. 부가적으로 또는 대안적으로, 문법을 검증하는 것은 예컨대 트리거 어구에 포함된 인수들이 올바르게 포맷되었는지 또는 지원되는 인수 타입인지를 결정함으로써, 문법에 대해 제출된 트리거 어구가 적절한 포맷임을 결정하는 것을 포함할 수 있다. 문법을 검증하는 것은 또한, 애플리케이션 개발자(101)로부터 수신된 문법에 특정된 액티비티와 관련되거나 이 액티비티를 수행하기 위해 요구되는 하나 이상의 액티비티를 식별하는 것을 포함할 수 있다. 예를 들어, 만일 애플리케이션 개발자(101)가 택시 서비스 애플리케이션을 사용하여 택시를 요청하는 액티비티를 문법에서 특정하면, 검증 엔진(120)은 택시 서비스 애플리케이션을 사용하여 택시를 요청하는 것은 또한 사용자의 클라이언트 장치의 택시 서비스 애플리케이션을 시작하고 상기 사용자의 클라이언트 장치를 실행되는 위치 확인 시스템 애플리케이션을 사용하여 사용자의 위치를 결정하는 액티비티들을 포함함을 결정한다.
부가적으로, 검증 엔진(120)은 문법의 포맷팅 또는 문법의 부분이 구문론적으로 유효한지를 결정함으로써 수신된 문법을 검증할 수 있다. 일부 경우에서, 문법 유도 엔진(130)은 수신된 문법이 구문적으로 유효한 경우, 즉 수신된 문법의 데이터 구조가 예상 문법 포맷에 따라 적절히 포맷되고, 문법 유도 엔진(130)에 의해 처리되거나 변환될 수 있는 용어만을 포함하는 경우에만 수신된 문법을 유도할 수 있다.
일부 구현들에서, 피드백이 개발자 보이스 액션 서비스 시스템(100)에 의해 애플리케이션 개발자(101)에게 제공될 수 있다. 예를 들어, 검증 엔진(120)은 애플리케이션 개발자(101)에 의해 제출된 문법이 유효했는지 여부를 나타내는 정보를 애플리케이션 개발자(101)의 컴퓨팅 장치(102)에 제공할 수 있다. 인텐트가 문법을 사용하여 성공적으로 생성되었는지 여부를 나타내는 정보, 문법에서 특정된 트리거 어구에 기초하여 생성되었던 하나 이상의 다른 관련 트리거 어구를 특정하는 정보, 또는 다른 정보 등의 추가적인 또는 다른 피드백이 애플리케이션 개발자(101)에 제공될 수도 있다.
애플리케이션 개발자(101)에 의해 제출된 문법을 검증하는 검증 엔진(120)에 기초하여, 검증 엔진(120)은 문법을 문법 유도 엔진(130)에 제출할 수 있다. 문법 유도 엔진(130)은 문법을 수신하고 이 문법에 기초하여 인텐트를 생성하도록 상기 문법을 유도할 수 있다. 문법을 유도하는 것은 이 문법을 개발자 보이스 액션 서비스 시스템(100)에 의해 수신된 포맷으로부터 인텐트 포맷으로 변환하는 것을 포함할 수 있다. 문법을 유도하는 것은 또한, 문법에서 특정된 트리거 어구에 기초하여 이 특정된 트리거 어구와 관련이 있는 하나 이상의 다른 트리거 어구를 생성함으로써 이 문법에 특정된 트리거 어구를 확장시키는 것을 포함할 수 있다.
예를 들어, 개발자 보이스 액션 서비스 시스템(100)은 예컨대 애플리케이션 개발자들로 하여금 텍스트 인수들을 포함하는 포맷으로 문법들을 제출할 수 있게 함으로써 애플리케이션 개발자들이 애플리케이션 개발자 또는 다른 사용자가 보다 쉽게 이해할 수 있는 포맷으로 문법들을 제출할 수 있게 한다. 문법 유도 엔진(130)은 이 포맷으로 문법을 수신할 수 있고, 문법을 인텐트에 대한 포맷으로 변환할 수 있으며, 여기서 인텐트 포맷은 애플리케이션 개발자 또는 다른 사용자가 파싱(parsing)하거나 이해하기가 더 어려운 포맷일 수 있거나, 보이스 액션 서비스에 특정적인 포맷일 수 있다.
개발자 보이스 액션 서비스 시스템(100)에 제출된 문법에서 특정된 트리거 어구를 확장하면, 개발자 보이스 액션 서비스 시스템(100)은 특정된 트리거 어구에 기초하여 하나 이상의 관련 트리거 어구를 생성할 수 있게 된다. 다양한 확장 규칙이 트리거 어구에 적용되어 관련 트리거 어구를 생성할 수 있다. 예를 들어, 용어 선택 규칙, 동의어 규칙, 확장 규칙 또는 다른 쿼리 용어 개정 규칙과 같은 다른 개정 규칙 중 하나 이상이, 문법에서 특정된 트리거 어구와 관련이 있으며 문법에 특정된 트리거 어구에 적어도 부분적으로 기초하는 하나 이상의 다른 트리거 어구를 생성하도록, 상기 문법에 특정된 트리거 어구에 적용된다.
트리거 어구의 하나 이상의 특정 용어가 문법에 특정된 트리거 어구에 기초하여 생성된 관련 트리거 어구에서 선택 사항인지 여부를 특정하는 트리거 어구에 선택사항 규칙을 적용할 수 있다. 동의어 규칙은 문법에 특정된 트리거 어구에 기초하여 생성된 관련 트리거 어구에 포함될 수 있는 문법의 하나 이상의 용어에 대한 하나 이상의 동의어를 식별할 수 있다. 확장 규칙은 문법에 특정된 트리거 어구가, 이 문법에 특정된 트리거 어구의 용어(들)과 유사하거나 관련이 있는 것으로 식별되는 하나 이상의 용어와 같은 그러한 하나 이상의 추가 용어를 포함하도록 확장될 수 있게 한다. 문법에 특정된 트리거 어구에 기초하여 관련 트리거 어구를 생성하는 다른 규칙이 적용될 수 있다.
또한, 일부 예에서, 문법 유도 엔진(130)은 수신된 트리거 어구 또는 특정된 트리거 어구에 대해 생성된 하나 이상의 관련 트리거 어구를 하나 이상의 다른 언어로 변환함으로써, 수신된 문법에 특정된 트리거 어구와 관련된 하나 이상의 트리거 어구를 생성할 수 있다. 예를 들어, 트리거 어구 "Hail a cab"는 영어로부터 만다린 중국어, 스페인어, 아랍어, 프랑스어, 힌디어, 독일어, 러시아어 또는 다른 언어 중 하나 이상으로 변환될 수 있으며 하나 이상의 변환은 문법에 특정된 트리거 어구 "Hail a cab"와 관련된 어구들로서 식별될 수 있다.
또한, 일부 예에서, 문법 유도 엔진(130)은 수신된 문법에 특정된 트리거 어구에 포함된 용어들 또는 인수들의 변형(variants) 및 순열(permutations)을 결정할 수 있다. 예를 들어, 쇼핑 애플리케이션과 관련된 문법에 특정된 트리거 어구가 제 1 단위로, 예를 들어 미국 사이징에서의 양복 사이즈로 의복 사이즈 파라미터에 대한 인수를 특정하는 경우, 문법 유도 엔진(130)은 예컨대 제 2 단위로, 예컨대 유럽 사이징에서의 양복 사이즈로 의복 사이즈 파라미터에 대한 인수를 또 하나의 트리거 어구에 포함시킴으로써 상기 인수의 변형 또는 순열을 결정할 수 있있다.
일부 예에서, 문법 유도 엔진(130)은 관계 스코어의 세기를 결정하고, 이를 문법에 특정된 트리거 어구 및 이 문법에 트리거 어구에 기초하여 결정되는 트리거 어구들 하나 이상과 연관시킬 수 있다. 관계 스코어의 세기는 문법에 특정된 애플리케이션에 대한 트리거 어구의 적용 가능성 또는 고유성에 대한 추정치를 나타낼 수 있다. 예를 들어, 애플리케이션 개발자(101)로부터 트리거 어구 "Hail a cab"을 특정하는 문법을 수신함에 기초하여, 문법 유도 엔진(130)은 트리거 어구 "Hail a cab"와 (수신된 문법에 특정된 트리거 어구에 적어도 기초하여 관련 트리거 어구로 식별되는) 트리거 어구 "Call a taxi"와의 사이의 관계의 세기를 결정할 수 있다.
일부 경우에서, 검증 엔진(120) 및/또는 문법 유도 엔진(130)은 요청된 문법이 스팸인지 여부를 결정하기 위해 트리거 어구와 애플리케이션 사이의 관계의 세기를 결정할 수 있다. 예를 들어, 문법 유도 엔진(130)은 트리거 어구 "Hail a cab"와 택시 호출 애플리케이션을 특정하는 "Cab Caller"택시 서비스 애플리케이션 또는 인텐트와의 사이의 관계 세기를 결정할 수 있고, 이 결정에 기초하여 트리거 어구 "Hail a cab"에 관계 스코어의 세기를 할당할 수 있다. 또한, 일부 예에서, 광고주들 또는 애플리케이션 개발자들은 이들이 홍보하려는 애플리케이션을 특정하는 개발자 보이스 액션 태스크 서비스에 문법들을 제출하라는 유혹을 받을 수 있다. 검증 엔진(120) 및/또는 문법 유도 엔진(130)은 트리거 어구가 식별된 애플리케이션에 대해 충분히 강한 관계를 가지지 않음을 결정할 수 있고, 따라서 수신된 문법에 기초하여 새로운 인텐트를 생성하는 것을 거부할 수 있고 그리고/또는 문법을 제출한 사용자에게, 사용자는 애플리케이션과 더 밀접하게 관련된 트리거 어구를 제공해야 함을 나타내는 피드백을 제공할 수 있다.
예를 들어, 스포츠 뉴스 애플리케이션의 광고주는 스포츠 뉴스 애플리케이션과 트리거 어구 "Call a taxi"를 특정하는 문법을 제출할 수 있다. 검증 엔진(120) 및/또는 문법 유도 엔진(130)은 트리거 어구 "Call a taxi"가 스포츠 뉴스 애플리케이션과 충분히 강한 관계를 가지지 않다고 결정하고 이 문법에 기초하여 새로운 인텐트가 생성되는 것을 거부할 수 있다.
일부 구현들에서, 문법 유도 엔진(130)은 또한, 컴퓨팅 장치(102)에서 애플리케이션 개발자(101)에게 피드백을 제공할 수도 있다. 예를 들어, 적어도 애플리케이션 개발자(101)에 의해 제출된 문법에 의해 식별된 트리거 어구에 기초하여 결정되는 하나 이상의 다른 트리거 어구를 생성하기 위해 수신된 문법을 유도하는 것에 기초하여, 하나 이상의 다른 트리거 어구를 식별하는 피드백이 애플리케이션 개발자(101)에게 제시될 수 있어, 애플리케이션 개발자(101)로 하여금 하나 이상의 다른 트리거 어구를 평가하여 다른 트리거 어구가 식별된 어구에 대한 허용 가능한 대체 트리거 어구인지 여부를 결정할 수 있게 한다. 일부 구현에서, 애플리케이션 개발자(101)는 예를 들어, 문법 유도 엔진(130)에 의해 생성된 하나 이상의 다른 트리거 어구들 중 어느 것이 새로운 인텐트에서 특정되어야 하는지를 나타내도록 피드백에 대한 응답을 제공할 수 있다.
또한,일부 예에서, 문법 유도 엔진(130)과 그리고 개발자 보이스 액션 서비스 시스템(100)의 다른 컴포넌트는 수신된 인텐트, 하나 이상의 다른 트리거 어구는 수신 문법에 의해 특정된 트리거 어구, 또는 수신된 인텐트로부터 생성된 인텐트에 기초하여 하나 이상의 예시적인 쿼리 또는 보이스 입력을 생성할 수 있다. 예시적인 쿼리 또는 보이스 입력은 컨텍스트 인텐트 데이터베이스(140)에 저장된 인텐트에 액세스를 갖는 보이스 액션 서비스를 사용하는 방법을 사용자에게 가르치기 위한 예로서 사용될 수 있다. 예를 들어, 사용자가 애플리케이션 개발자(101)에 의해 제출된 문법으로부터 생성된 인텐트를 트리거하는 보이스 입력을 처음 제공할 때, 예시적인 쿼리 또는 트리거 어구는 사용자에게 출력하기 위해 제공될 수 있다.
문법 유도 엔진(130)이 하나 이상의 관련 트리거 어구를 생성함으로써 문법에 특정된 트리거 어구를 확장하고, 그리고 하나 이상의 관련 트리거 어구를 포함하는 문법을 인텐트 포맷으로 변환함에 기초하여, 개발자 보이스 액션 서비스 시스템(100)은 컨텍스트 인텐트 데이터베이스(140)에 새로운 인텐트를 저장할 수 있다. 예를 들어, 애플리케이션 개발자(101)에 의해 제출된 문법에 기초하여 생성된 새로운 인텐트는 적어도 "인텐트 X"및 "인텐트 Z 를 또한 포함하는 컨텍스트 인텐트 데이터베이스(140)에 저장된 인텐트 세트에 "인텐트 Y"로서 추가될 수 있다. 예를 들어, "인텐트 Y"및 "인텐트 Z"는 애플리케이션 개발자(101)에 의해 제출된 문법에 특정된 애플리케이션과 다르거나 동일할 수도 있는 하나 이상의 애플리케이션과 연관될 수 있는 하나 이상의 다른 애플리케이션 개발자가 제출한 문법을 기반으로 생성된 인텐트일 수 있다.
컨텍스트 인텐트 데이터베이스에 저장된 인텐트는 인텐트 포맷으로 애플리케이션 개발자(101)에 의해 제출된 문법에 의해 특정된 파라미터를 특정할 수 있다. 예를 들어, 애플리케이션 개발자(101)에 의해 제출된 문법에 기초하여 생성된 "인텐트 Y"는 "Cab Caller"애플리케이션을 특정할 수 있고, 이 인텐트가 트리거 되면 "Cab Caller"애플리케이션에서 또는 "Cab Caller"애플리케이션에 의해 수행될 시작 애플리케이션 액티비티(launch application activity)를 특정할 수 있고, 인텐트의 트리거링에 추가적인 조건을 부여하는, 다시 말해서 인텐트의 트리거가 행해지는 클라이언트 장치가 "Cab Caller"애플리케이션의 "버전 1.2"를 피처링(featuring) 해야하는 콘텍스트를 특정할 수 있다. 또한, "인텐트 Y"는 적어도 애플리케이션 개발자(101)에 의해 제출된 트리거 어구뿐만 아니라, 애플리케이션 개발자(101)에 의해 제출된 트리거 어구에 기초하여 개발자 보이스 액션 서비스 시스템(100)이 결정한 하나 이상의 추가 트리거 어구를 특정할 수 있다. 예를 들어, 트리거 어구 "Hail a cab"는 "Call a cab", "Get a car"및 "Call taxi"와 같은 트리거 어구들을 포함하도록 확장될 수 있으며, 이들 중 어느 것이 검출되면, 추가적인 콘텍스트가 만족되는 한, "인텐트 Y"가 트리거되게 된다.
애플리케이션 개발자(101)에 의해 제출되고 컨텍스트 인텐트 데이터베이스(140)에 저장된 문법에 기초하여 인텐트가 생성되면, 사용자는 인텐트와 연관된 트리거 어구를 포함하는 보이스 입력을 제공함으로써 인텐트를 트리거링할 수 있다. 예를 들어, 클라이언트 장치의 사용자가 클라이언트 장치에 보이스 입력 "Call a cab"를 제공하는 "Cab Caller" 애플리케이션의 "버전 1.2"를 호스팅함에 기초하여, 클라이언트 장치는 보이스 입력이 트리거 어구를 포함한다고 결정하고, 모바일 장치가 "Cab Caller" 애플리케이션의 "버전 1.2"를 호스팅한다고 결정하고, 이에 응답하여 "인텐트 Y"를 트리거하여 "Cab Caller"애플리케이션이 사용자의 클라이언트 장치에서 시작되도록 할 수 있다.
일부 구현들에서, 새로 생성된 인텐트를 컨텍스트 인텐트 데이터베이스(140)에 저장하는 프로세스는 빠른 업데이트 푸싱 또는 전개 지원으로 또한 지원되는 프로세스일 수 있다. 예를 들어, 보이스 개발자 보이스 액션 서비스 시스템(100)은, 일단 수신된 문법을 유도했으면, 새로 생성된 인텐트를 컨텍스트 인텐트 데이터베이스(140)에 신속하게 저장하고, 새로 생성된 인텐트가 컨텍스트 인텐트 데이터베이스(140)에 저장된 인텐트에 대한 액세스를 갖는 보이스 액션 서비스의 사용자들에게 이용가능하게 할 수 있다.
도 2는 컨텍스트 인텐트 데이터베이스(240)에 의해 저장된 인텐트에 매칭되는 보이스 입력을 사용자가 제출할 수 있게 하는 보이스 액션 서비스 시스템(200)의 사용 예를 도시한다. 보이스 입력을 인텐트에 매칭시키면, 인텐트에 의해 특정된 액티비티가 사용자의 클라이언트 장치(202)의 애플라케이션에서 또는 이 애플리케이션에 의해 수행되게 하며, 이 애플리케이션은 상기 인텐트에 의해 또한 특정된다.
간단히 말해서, 도 2에 도시된 바와 같이, 보이스 액션 서비스 시스템(200)은 스피치 인식 엔진(210), 매칭기(matcher)(220), 모호성 제거 엔진(230) 및 실행 엔진(250)을 포함한다. 스피치 인식 엔진(210)은 클라이언트 장치(202)의 사용자(201)로부터의 보이스 입력을 포함하는 오디오 데이터를 하나 이상의 유선 또는 무선 네트워크(205)를 통해 수신한다. 예를 들어, 사용자(201)는 클라이언트 장치(202) 상에서 호스팅되는 보이스 인터페이스 애플리케이션에 보이스 입력을 제공할 수 있고, 클라이언트 장치(202) 상에서 호스팅되는 보이스 인터페이스 애플리케이션은 보이스 입력을 포함하는 오디오 데이터를 하나 이상의 네트워크(205)를 통해 보이스 액션 서비스 시스템에 전송한다. 일부 실시예에서, 도 2의 클라이언트 장치(202)와는 별개로 도시되어 있지만, 스피치 인식 엔진(210), 매처(220), 모호성 제거 엔진(230) 및 실행 엔진(250) 중 하나 이상은 물론, 본 명세서에서 논의된 다른 시스템 및 서브 시스템이 사용자(201)와 관련된 클라이언트 장치의 일부를 형성할 수 있다.
일부 예에서, 스피치 인식 엔진(210)은 보이스 액션 서비스 시스템(200)에 의해 정의되는 하나 이상의 타입에 대한 액세스를 가질 수 있다. 예를 들어, 보이스 액션 서비스 시스템(200)은 인물, 장소, 영화 또는 노래와 같은 컨텐츠 아이템 또는 다른 정의된 타입과 같은 그러한 엔티티들을 식별하는 하나 이상의 지식 기반에 대한 액세스를 가질 수 있다. 스피치 인식 엔진(210) 또는 보이스 액션 서비스 시스템(200)의 다른 컴포넌트들이, 오디오 데이터(240)에 대한 보이스 인식을 수행할 때 또는 사용자의 보이스 입력에 기초하여 인텐트의 선택 및 실행과 관련된 다른 동작들을 수행할 때 하나 이상의 지식 기반에 액세스할 수 있다.
매칭기(220)는 도 1의 애플리케이션 개발자(101)와 같은 그러한 애플리케이션 개발자에 의해 제출된 문법에 기초하여 생성된 하나 이상의 인텐트를 포함하는 컨텍스트 인텐트 데이터베이스(240)에 대한 액세스를 갖는다. 매칭기(220)는 추가적으로, 하나 이상의 특정 운영 체제에 특정적이거나 특정 애플리케이션에 관련되는 것으로 운영 체제에 의해 특정된 하나 이상의 인텐트를 포함하는 운영 체제(OS) 인텐트 데이터베이스(245)에 대한 액세스를 갖는다. 예를 들어, OS 인텐트 데이터베이스(245)에 저장된 인텐트는 오퍼레이팅 시스템에 의해 수행되는 액티비티들 (예컨대, 장치를 재시동 또는 잠그거나, 무선 네트워크에 참여하는 등의 그러한 액티비티들) 또는 오퍼레이팅 시스템에 의해 수행되는, 하나 이상의 애플리케이션에 관련된 액티비티들(예컨대, 메시징, 전화, 이메일 애플리케이션을 시작하는 액티비티들)들에 대한 하나 이상의 인텐트들을 포함할 수 있다. 또한, 모호성 제거 엔진(230)은 특정 사용자들 또는 클라이언트 장치들에 특정한 정보를 포함하는 사용자 개인화 데이터베이스(235)에 대한 액세스를 가질 수 있다. 사용자 개인화 데이터는 클라이언트 장치(202)로부터 수신된 보이스 입력과 매칭되도록 결정된 인텐트의 모호성을 제거하는데 사용될 수 있다.
도 2에 도시된 바와 같이, 사용자(201)는 하나 이상의 동작을 수행하기 위해 사용자(201)에 의해 제공되는 보이스 커맨드과 같은 그러한 보이스 입력을 수신할 수 있는 클라이언트 장치(202)를 가질 수 있다. 일부 예에서, 클라이언트 장치(202)는 사용자로부터 보이스 입력을 얻기 위한 마이크로폰 또는 다른 장치를 포함하고, 클라이언트 장치(202)상에서 실행되는 운영 체제 또는 애플리케이션은 보이스 입력을 수신하기 위한 소프트웨어를 포함할 수 있다. 클라이언트 장치(202)는 사용자(201)로부터 보이스 입력 "Call taxi"와 같은 보이스 입력을 수신할 수 있다. 클라이언트 장치(202)가 보이스 입력을 수신함에 기초하여, 클라이언트 장치는 보이스 입력을 포함하는 오디오 데이터(204)를 하나 이상의 네트워크(205)를 통해 보이스 액션 서비스 시스템(200)에 송신할 수 있다.
보이스 액션 서비스 시스템(200)의 스피치 인식 엔진(210)은 오디오 데이터(204)를 수신하고, 오디오 데이터(204)에 포함된 보이스 입력의 전사를 얻기 위해 오디오 데이터(204)에 대해 스피치 인식 처리를 수행한다. 예를 들어, 스피치 인식 엔진(210)은 오디오 데이터(204)를 수신할 수 있고, 오디오 데이터(204)로부터 잡음 또는 백그라운드 오디오를 제거하고 오디오 데이터(204)의 깨끗한 버전을 생성하기 위해 선택에 따라 오디오 데이터(204)를 필터링할 수 있다. 그 다음, 스피치 인식 엔진(210)은 보이스 입력의 전사를 획득하기 위해 오디오 데이터(204)의 깨끗한 버전에 대해 스피치 인식 처리를 수행할 수 있다. 예를 들어, 스피치 인식 엔진(210)은 클라이언트 장치(202)로부터 수신된 오디오 데이터(204)로부터 전사 "Call taxi"를 생성할 수 있다.
스피치 인식 엔진(210)은 오디오 데이터(204)의 전사를 매칭기(220)에 제공한다. 매칭기(220)는 상황에 따른 인텐트 데이터베이스(240) 또는 OS 인텐트 데이터베이스(245)에 저장된 인텐트에 의해 특정된 하나 이상의 트리거 어구에 대해 전사를 매칭시킨다. 일부 예에서, 전사가 특정 인텐트와 관련된 특정 트리거 어구와 매칭하는지를 결정하는 것은 전사의 하나 이상의 용어가 특정 트리거 어구의 하나 이상의 용어와 매칭하는지 결정하는 것과 같은 그러한 전사의 적어도 일부가 특정 트리거 어구와 매칭하는지 결정하는 것을 수반할 수 있다. 그러므로, 특정 전사는 잠재적으로 복수의 인텐트를 호출하는 것으로서 결정될 수 있어, 보이스 액션 서비스 시스템(200)은 후보 인텐트 중에서 트리거할 특정 인텐트를 결정해야만한다. 전사가 하나 이상의 후보 인텐트에 의해 특정된 하나 이상의 트리거 어구와 매칭함을 결정함에 기초하여, 매칭기(220)는 하나 이상의 후보 트리거 어구를 특정하는 정보를 모호성 제거 엔진(230)에 제공할 수 있다.
일부 예에서, 사용자(201)는 텍스트 입력을 클라이언트 장치(201)에 제공하여, 텍스트 입력이 스피치 인식 엔진(210)에 제공되지 않고 매칭기(220)에 직접 제공될 수 있게 된다. 매칭기(220)는 텍스트 입력을 수신할 수 있으며, 텍스트 입력에 기초하여 하나 이상의 후보 인텐트를 식별하기 위해 전술한 메칭 동작을 수행할 수 있다. 일부 예에서, 매칭기(220)는 텍스트 입력에 포함되는 인수들과 같은 그러한 타입 또는 다른 피쳐들을 식별할 수 있다.
일부 예에서, 매칭기(220)는 오디오 데이터(204)의 하나 이상의 관련 전사들을 생성하기 위해 오디오 데이터(204)의 전사를 확장시킬 수 있다. 예를 들어, 전사 "Call taxi"는 하나 이상의 쿼리 용어 확장 규칙, 동의어 규칙, 용어 선택 규칙 또는 기타 관련 규칙을 사용하여 확장되어, 관련 전사들인 "Call a taxi", "Request a cab", "Hail a car" 등을 생성할 수 있다. 매칭기(220)는 컨텍스트 인텐트 데이터베이스(240) 또는 운영체재 인텐트 데이터베이스(245)에 저장된 인텐트에 의해 특정된 트리거 어구들에 하나 이상의 관련 전사들을 매칭시켜 전사 또는 관련 전사가 매칭하는 트리거 어구를 결정할 수 있다.
일부 예에서, 오디오 데이터(204)의 전사를 확장시키는 것은 매칭기(220)에게 관련 전사가 이미 존재하거나 다른 애플리케이션과 관련된 트리거 어구와 충돌할 것인지 여부를 판단할 것을 요구한다. 예를 들어, 트리거 어구 "Call taxi"는 택시 서비스 애플리케이션 "Cab Caller"와 연관된 인텐트에 의해 특정될 수 있고, 관련 트리거 어구 "Request a cab"은 택시 서비스 애플리케이션 "TaxiNow"와 관련된 인텐트에 의해 특정될 수 있다. 매칭기(220)는 전사 및 관련 전사가 상이한 애플리케이션과 관련된 인텐트에 의해 특정된 트리거 어구와 매칭함을 결정할 수 있으며, 따라서 일부 예들에서 관련 전사 "Request a cab"를 매칭 프로세스로부터 무시하거나 제거할 수 있다. 따라서, 매칭기(220) 또는 보이스 액션 서비스 시스템(200)의 다른 컴포넌트는 사용자 입력의 전사를 조정하여 매칭이 검출될 기회를 높이고 또한 오디오 데이터(204)의 확장된 전사에 의해 발생되는 모든 충돌을 처리할 수 있다.
모호성 제거 엔진(230)은 하나 이상의 후보 인텐트를 특정하는 정보를 수신할 수 있고, 후보 인텐트 중에서 호출을 트리거하는 특정 인텐트를 식별하는 동작들을 수행할 수 있다. 모호성 제거 엔진(230)은 사용자 개인화 데이터베이스(235)에서 액세스된 정보에 기초하거나 후보 인텐트 각각과 연관된 신뢰도 스코어에 기초하거나, 트리거할 특정 후보 인텐트를 선택하는 사용자 피드백을 요청 및 수신하는 것에 기초하거나, 혹은 다른 정보에 기초하여 후보 인텐트들 중에서 트리거할 특정 인텐트를 식별할 수 있다.
예를 들어, 보이스 액션 서비스 시스템(200)은, 예를 들어, 사용자(201)가 클라이언트 장치(202)에 의해 호스팅되는 특정 애플리케이션에 로깅하는 것에 기초하거나 클라이언트 장치(202)가 사용자(201) 또는 클라이언트 장치(202)를 식별하는 정보를 보이스 액션 서비스 시스템(200)에 제출함에 기초하여, 사용자(201) 또는 사용자(201)에 의해 사용되는 클라이언트 장치(202)를 식별하는 정보를 수신하거나 수신할 수 있다. 모호성 제거 엔진(230)은 이 식별 정보에 기초하여 사용자(201) 또는 클라이언트 장치(202)를 식별할 수 있고, 특정 사용자(201) 또는 클라이언트 장치(202)에 대한 인텐트에 관한 정보를 특정하는 정보를 사용자 개인화 데이터베이스(235)에서 액세스할 수 있다. 예를 들어, 사용자 개인화 데이터베이스(235)에서 모호성 제거 엔진(230)에 의해 액세스되는 정보는 특정 애플리케이션을 여는 것과 같은 특정 인텐트를 트리거하기 위해 오디오 데이터(204) 또는 특정 텍스트 입력에 포함된 보이스 입력을 사용자 전형적으로 제공함을 특정할 수 있다. 마찬가지로, 사용자 개인화 데이터베이스(235)에서 액세스된 정보는 사용자(201)에 의해 제공되었거나 사용자(201)에 의한 과거 액티비티에 기초하여 결정된 선호도를 특정할 수 있다. 예를 들어, 보이스 액션 서비스 시스템(200)은 과거의 사용자 액티비티에 기초하여 사용자(201)가 특정 택시 서비스 애플리케이션을 다른 것보다 선호할 가능성이 있음을 결정할 수 있거나 또는 사용자(201)가 전형적으로 특정 애플리케이션을 지칭할 때 특정 용어를 사용함을 결정할 수 있다.
모호성 제거 엔진(230)은, 사용자 개인화 데이터베이스(235)에서 액세스되는 정보에 기초하여, 후보 인텐트 중에서 특정 인텐트를 선택하고 특정 인텐트를 식별하는 실행 엔진(250)에 정보를 제공할 수 있다. 예를 들어, 모호성 제거 엔진(230)은 전사 "Call Taxi"에 기초하여 식별된 2 개의 후보 인텐트를 식별하는 정보를 수신할 수 있다. 제1 후보 인텐트는 "Cab Called" 애플리케이션을 특정할 수 있으며 제 2 후보 인텐트는"TaxiNow" 택시 서비스 애플리케이션을 특정할 수 있다. 모호성 제거 엔진(230)은 사용자 개인화 데이터베이스(235)에서 정보에 액세스하고, 사용자(201) 또는 클라이언트 장치(202)의 사용자가 전형적으로 "TaxiNow" 택시 서비스 애플리케이션을 통해 "Cab Caller" 택시 서비스 애플리케이션을 사용한다고 결정할 수 있으며, 따라서 상기 2개의 후보 인텐트 중에서 "Cab Caller" 애플리케이션을 특정하는 후보 인텐트를 선택할 수 있다. 모호성 제거 엔진(230)은 "Cab Caller" 애플리케이션을 특정하는 인텐트를 식별하는 정보를 실행 엔진(250)에 전송할 수 있다. 이러한 방식으로, 모호성 제거 엔진(230)은 사용자(201)로부터의 추가 입력을 요구함이 없이 특정 후보 인텐트를 선택하기 위해 사용자(201)에 대한 개인화 데이터에 의존할 수 있다.
대안적으로, 모호성 제거 엔진(230)은 각각의 후보 인텐트와 관련된 신뢰도 스코어에 기초하여 후보 인텐트의 세트 중에서 특정 인텐트를 식별할 수 있다. 예를 들어, 각각의 후보 인텐트는 후보 인텐트가 사용자(201)가 보이스 액션을 사용하여 트리거하려한 인텐트인 신뢰도에 가까운 신뢰 스코어와 연관될 수 있다. 일부 경우들에서, 모호성 제거 엔진(230) 또는 매칭기(220)는 각각의 후보 인텐트에 대한 신뢰 스코어를 결정할 수 있다.
후보 인텐트에 할당된 신뢰 스코어는 하나 이상의 팩터에 기초할 수 있다. 예를 들어, 신뢰도 스토어는 전사와 인텐트에 의해 특정된 트리거 어구와의 사이의 매칭의 정확성에 적어도 부분적으로 기초하여 결정될 수 있다. 이러한 예에서, 전사와 정확히 매칭하는 트리거 어구를 특정하는 후보 인텐트에 후보 인텐트가 사용자(201)의 의도였다는 높은 신뢰도로 나타내는 신뢰 스코어가 할당될 수 있다.
다른 구현에서, 인텐트에 의해 특정된 상이한 트리거 어구들이 트리거 어구와 인텐트 사이의 관계의 세기를 나타내는 스코어와 관련될 수 있고, 신뢰 스코어는 적어도 부분적으로는 매칭된 트리거 어구에 대한 관계 스코어에 기초하여 결정될 수 있다. 예를 들어, 트리거 어구 "Hail a cab"에 대한 관계 스코어의 세기는 동일한 인텐트에 의해 특정된 트리거 어구 "Get a car"에 대한 관계 스코어의 세기보다, 트리거 어구와 "Cab Caller" 애플리케이션을 특정하는 인텐트 사이의 더 강한 관계를 나타낼 수 있다.
사용자의 위치 또는 사용자가 관련된 것으로 식별된 액티비티에 기초하거나 다른 정보에 기초하여, 후보 인텐트가 어떤 빈도로 트리거되었는지, 후보 인텐트가 얼마나 최근에 트리거되었는지, 어떤 다른 애플리케이션들이 후보 인텐트에 의해 특정된 애플리케이션과 동시에 관련되거나 빈번히 사용될 수 있는 보이스 액션이 수신되는 시간에 클라이언트 장치(202)에서 실행될 수 있는지 등과 같은 그러한 다른 팩터들이 후보 인텐트에 대한 신뢰도 스코어를 결정하는데 고려될 수 있다. 일부 구현들에서, 이러한 팩터들의 조합은 특정 후보 인텐트에 대한 신뢰 스코어를 결정할 때 고려될 수 있다. 하나 이상의 후보 인텐트의 신뢰도 스코어에 기초하여, 특정 후보 인텐트가 모호성 제거 엔진(230)에 의해 선택될 수 있고, 이 모호성 제거 엔진은 선택된 후보 인텐트를 식별하는 정보를 실행 엔진(250)에 전송할 수 있다.
또한, 후보 인텐트에 대한 신뢰도 스코어를 결정할 때, 얼마나 많은 다른 사용자들이 후보 인텐트에 의해 특정된 애플리케이션을 활발하게 사용하고 있는지 또는 얼마나 많은 사용자의 연락처들 또는 친구들이 후보 인텐트에 의해 특정된 애플리케이션을 사용하고 있는지 등과 같은 그러한 다른 사용자들의 액션들이 고려될 수 있다. 예를 들어, 사용자가 보이스 입력 "Call taxi"를 제공함에 기초하여, 보이스 액션 서비스 시스템(200)은 2 개의 후보 택시 서비스 애플리케이션이 보이스 입력에 의해 트리거될 수 있다고 결정할 수 있고, 많은 택시 운전자들이 현재, 애플리케이션들 중 하나를 다른 애플리케이션들보다 더 사용하고 있음을 또한 결정할 수 있다. 결과적으로, 많은 운전자들이 애플리케이션을 활발하게 사용하는 택시 서비스 애플리케이션의 인텐트에 할당된 신뢰도 스코어는 소수의 운전자들이 적극적으로 사용하는 택시 서비스 애플리케이션의 인텐트에 할당된 신뢰도 스코어 보다 높을 수 있다.
또 다른 예에서, 모호성 제거 엔진(230)은 사용자(201)가 하나 이상의 후보 인텐트 중에서 특정 후보 인텐트를 선택하기 위한 요청을 클라이언트 장치(202)에 제공할 수 있다. 예를 들어, 모호성 제거 엔진은 하나 이상의 후보 인텐트를 특정하는 정보를 매칭기(220)로부터 수신함에 기초하여, 사용자(201)가 특정 후보 인텐트 또는 특정 후보 인텐트에 의해 특정되는 특정 애플리케이션을 선택하기 위한 요청이 클라이언트 장치(202)에 제공되도록 한다. 모호성 제거 엔진(230)은 사용자(201)에 의한 선택을 나타내는 정보를 수신할 수 있고, 사용자(201)가 선택한 특정 후보 인텐트를 식별하는 정보를 실행 엔진(250)에 제공할 수 있다.
예를 들어 전사 "Call taxi" 가 "Cab Caller" 애플리케이션을 특정하는 인텐트와 연관된 트리거 어구와 매칭되고 또한 "TaxiNow" 애플리케이션을 특정하는 인텐트와 연관된 트리거 어구와 매칭된다는 결정에 기초하여, 모호성 제거 엔진(230)은 클라이언트 장치(202)의 사용자(201)에게 사용자(201)는 "Cab Caller" 애플리케이션 또는 "TaxiNow" 애플리케이션 중 하나를 선택해야 함을 요청하는 사용자 인터페이스를 제공할 수 있다. 모호성 제거 엔진(230)은 사용자가 "Cab Caller"애플리케이션을 선택했다는 것을 나타내는 정보를 수신할 수 있고, 이에 응답하여 "Cab Caller"애플리케이션을 특정하는 후보 인텐트를 식별하는 정보를 실행 엔진(250)에 제공할 수 있다.
일부 구현들에서, 모호성 제거 엔진(230)은 신뢰도 스코어 또는 다른 정보에 기초하여 후보 인텐트를 순위화할 수 있고, 순위에 기초하여 특정 후보 인텐트를 선택하거나, 사용자(201)에게 제공된 사용자 인터페이스에 후보 인텐트를 디스플레이할 수 있다. 예를 들어, 모호성 제거 엔진(230)은, 예를 들어, 신뢰도 스코어가 높은 후보 인텐트가 신뢰도 스코어가 낮은 후보 인텐트보다 높은 순위가 매겨 지도록, 후보 인텐트 각각에 대해 결정된 신뢰도 스코어에 기초하여 후보 인텐트를 순위화할 수 있다. 예를 들어, 얼마나 자주 또는 얼마나 최근에 후보의 인텐트가 트리거되었는지, 후보의 인텐트에 의해 특정된 애플리케이션이 비슷한 보이스 입력에 대한 응답으로 사용자에 의해 얼마나 자주 또는 최근에 선택되었는지 등의 다른 팩터들이 후보의 인텐트의 순위에 영향을 미칠 수 있다. 예를 들어, 얼마나 자주 또는 얼마나 최근에 후보의 인텐트가 트리거되었는지, 후보의 인텐트에 의해 특정된 애플리케이션이 비슷한 보이스 입력에 대한 응답하여 사용자에 의해 얼마나 자주 또는 최근에 선택되었는지 등이 있다.
일부 예들에서, 다수의 후보 인텐트 중에서 특정 후보 인텐트의 사용자 선택을 요청하거나 적어도 하나의 후보에 의해 각각 특정된 애플리케이션 세트 중에서 후보 인텐트에 의해 특정된 특정 애플리케이션의 선택을 요구하는 사용자 인터페이스 인텐트가 순위, 신뢰도 스코어, 또는 후보 인텐트 또는 순위와 관련된 기타 정보 또는 팩터에 기초하여 사용자에게 후보 인텐트 또는 애플리케이션을 다르게 제시할 수 있다. 예를 들어, 후보 인텐트에 의해 특정된 "Cab Caller" 애플리케이션이 "TaxiNow" 애플리케이션보다 사용자(201)에 의해 더 자주 선택된다고 결정한 것에 기초하여, 사용자(201)에게 제시되는 "Cab Caller "또는 "TaxiNow "애플리케이션 중 하나의 선택을 요청하는 사용자 인터페이스는 "Cab Caller"에 대한 옵션을 "TaxiNow "애플리케이션의 옵션보다 더 큰 선택 가능한 아이콘으로 표시할 수 있거나, 도 2에서 보인 바와 같이 "TaxiNow" 옵션에 대한 옵션 위에 "Cab Caller" 애플리케이션에 대한 옵션을 디스플레이할 수 있거나, 상기 옵션들을 다르게 또는 사용자 인터페이스의 다른 위치에 표시할 수 있다.
일부 경우들에서, 모호성 제거 엔진(230)은 또한 하나 이상의 후보 인텐트 중에서 특정 후보 인텐트를 선택하는 모호성 제거 결정 또는 수신 정보에 기초하여 사용자 개인화 데이터베이스(235)에서 정보를 업데이트할 수 있다. 예를 들어, 보이스 입력 "Call taxi"를 제공하는 것에 응답하여 "Cab Caller"애플리케이션의 사용자(201)에 의한 선택을 수신하는 모호성 제거 엔진(230)에 기초하여, 모호성 제거 엔진(230)은 사용자 개인화 데이터베이스 및/또는 컨텍스트 인텐트 데이터베이스(240)에서 사용자 개인화 정보를 갱신할 수 있다. 그러한 개인화 정보를 업데이트하는 것은 "Call Taxi"라는 트리거 어구와 "Cab Caller"애플리케이션을 특정하는 후보 인텐트와의 사이의 관계 스코어의 세기를 높이는 것을 포함할 수 있거나, "Cab Caller"를 특정하는 후보 인텐트에 대한 신뢰도 스코어를 보다 강한 신뢰도를 나타내도록 조정하거나, "TaxiNow" 애플리케이션을 특정하는 후보 인텐트에 대한 신뢰 스코어를 감소된 신뢰도를 나타내도록 조정하거나, 개인화 정보 또는 사용자 개인화 데이터베이스(235) 또는 컨텍스트 인텐트 데이터베이스(240)에 저장된 인텐트와 관련된 정보를 업데이트할 수 있다.
다른 예에서, 모호성 제거 엔진은 컨텍스트 인텐트 데이터베이스(140) 또는 OS 인텐트 데이터베이스에 저장된 인텐트에 액세스할 수 있으며, 인텐트 또는 인텐트와 관련된 정보와 관련된 파라미터를 수정하거나 조정할 수 있다. 예를 들어, 사용자(201)가 사용자의 보이스 입력 "Call taxi"에 응답하여 사용자(201)에게 제공된 사용자 인터페이스에서 "TaxiNow" 애플리케이션"이 아니라 "Cab Caller" 애플리케이션을 선택했다는 경정에 기초하여, 모호성 제거 엔진 엔진(230)은 컨텍스트 인텐트 데이터베이스(140)에 저장된 "TaxiNow" 애플리케이션을 특정하는 후보 인텐트를 갱신하여 인텐트에 대해 특정된 트리거 어구의 세트로부터 트리거 어구 "Call a cab"를 제거하거나, 인텐트에 의해 특정된 트리거 어구 "Call taxi"에 대한 관계 스토어의 세기를 조정할 수 있으며, 유사한 프로세스들이 보이스 액션 서비스 시스템(200)으로 하여금 적절한 인텐트를 트리거링하는데 있어 서비스의 리콜 능력을 평가하고, 인텐트들 또는 인텐트들과 관련된 정보를 조정하여 보이스 액션 서비스의 정확성 또는 효율성을 증가시킬 수 있게 한다.
일부 예들에서, 다수의 사용자들로부터의 피드백이 인텐트 또는 그 인텐트와 관련된 정보와 관련된 파라미터들을 어떻게 조정할지를 결정하는데 있어 수집 및 분석될 수 있다. 예를 들어, 트리거 어구 "Call taxi"가 전형적으로 사용자가 "TaxiNow" 애플리케이션을 통해 "Cab Caller"애플리케이션을 선택하게 하는 결과를 가져왔음을 나타내는 사용자들의 집단으로부터 수집된 피드백에 기초하여, 보이스 액션 서비스 시스템(200)은 트리거 어구 "Call taxi", 및 "Cab Caller" 애플리케이션 또는 "Cab Caller"애플리케이션 자체를 특정하는 인텐트에 대한 관계 또는 신뢰도 스코어의 세기를 증가시키기로 결정할 수 있다.
위에서 개별적으로 논의되었지만, 모호성 제거 엔진(230)에 이용 가능한 하나 이상의 방법들이 후보 인텐트들 중에서 특정 인텐트를 선택하는 데 사용될 수 있다. 예를 들어, 모호성 제거 엔진(230)은 매칭기(matcher)(220)로부터 5 개의 후보 인텐트의 세트를 식별하는 데이터를 수신할 수 있고, 5 개의 후보 인텐트와 관련되거나 이들에 대해 결정된 신뢰 스코어에 기초하여 이들 중 3 개의 후보 인텐트를 제거할 수 있다. 그 다음, 모호성 제거 엔진(230)은 사용자(201)에게 나머지 2 개의 후보 인텐트에 의해 특정된 애플리케이션 중에서 선택을 요청하여 특정 후보 인텐트를 결정하는 요청을 클라이언트 장치(202)에 출력할 수 있다. 그 다음, 모호성 제거 엔진(230)은 사용자가 선택한 인텐트를 특정하는 후보 인텐트를 식별하는 정보를 실행 엔진(250)에 전송할 수 있다.
또한, 일부 경우에서, 보이스 액션 서비스 시스템(200)은 모호성 제거 엔진(230)에 의해 사용되는 하나 이상의 방법에 의한 후보 인텐트의 분석에 기초하여 사용자에게 여러 가지 사용자 인터페이스를 제공할 수 있다. 예를 들어, 모호성 제거 엔진(230)이 후보 인텐트에 대한 신뢰도 스코어에만 기초하여 특정 후보 인텐트를 선택하는 경우, 모호성 제거 엔진(230)은 특정 인텐트 또는 특정 인텐트에 의해 특정된 애플리케이션을 식별하는 사용자 인터페이스를 클라이언트 장치(202)의 사용자(201)에게 제공할 수 있다. 대안적으로서, 후보 인텐트의 신뢰도 스코어에 기초하여, 모호성 제거 엔진(230)이 후보 인텐트 또는 후보 인텐트에 의해 특정된 애플리케이션의 사용자 선택을 요청해야 함을 결정하면, 모호성 제거 엔진(230)은 사용자 선택을 요청하는 클라이언트 장치(202)에서 출력을 위한 다른 사용자 인터페이스를 제공할 수 있다.
실행 엔진(250)은 모호성 제거 엔진(230)으로부터 특정 인텐트를 식별하는 정보를 수신할 수 있고, 인텐트에 의해 특정된 액티비티가 인텐트에 의해 특정된 애플리케이션 상에서 또는 이 애플리케이션에 의해 수행되게 인텐트를 트리거할 수 있다. 예를 들어, 실행 엔진(250)은 상기 액티비티가 측정된 애플리케이션에서 수행되게 하거나, 컨텍스트 인텐트 데이터베이스(240)에서 상기 식별된 인텐트에 액세스할 수 있거나, 식별된 인텐트를 액세스하거나 수신할 수 있다. 실행 엔진(250)은 인텐트에 의해 특정된 액티비티가 인텐트에 의해 특정된 애플리케이션상에서 또는 이 애플리케이션에 의해 수행되게 인텐트를 트리거할 수 있다. 예를 들어, 실행 엔진(250)은 특정된 애플리케이션에서 액티비티가 수행되도록 하거나, 애플리케이션에서 액티비티를 수행하기 위해 운영 체제 또는 다른 애플리케이션에 제어를 제공하거나, 애플리케이션이 특정된 액티비티를 수행하도록 할 수 있다. 다른 예에서, 실행 엔진(250)은 트리거할 인텐트 또는 트리거할 인텐트에 의해 특정된 액티비티를 식별하는 정보를 클라이언트 장치(202)에 제공할 수 있으며, 클라이언트 장치(202)는 정보를 수신하고 수신된 정보에 기초하여 인텐트 또는 액티비티를 트리거할 수 있다. 일부 예에서, 실행 엔진(250)은 클라이언트 장치(202)에서 구현될 수 있다.
일 예로서, "Cab Caller" 애플리케이션을 특정하는 후보 인텐트를 식별하는 모호성 제거 엔진(230)으로부터의 정보를 수신함에 기초하여, 실행 엔진(250)은 컨텍스트 인텐트 데이터베이스(240)에서 "Cab Caller"애플리케이션을 특정하는 인텐트에 액세스할 수 있고, "Cab Caller" 애플리케이션을 특정하는 인텐트를 트리거할 수 있다. "Cab Caller"애플리케이션을 특정하는 인텐트를 트리거하는 것은 "Cab Caller"애플리케이션을 시작하는 액티비티와 같이 그러한 인텐트에 의해 특정된 액티비티를 결정하는 것을 포함할 수 있다. 인텐트에 의해 특정된 액티비티가 "Cab Caller"애플리케이션을 시작시키는 액티비티인 것으로 결정함에 기초하여, 실행 엔진(250)은 클라이언트 장치(202), 또는 애플리케이션, 운영 체제, 또는 클라이언트 상에 호스트된 다른 소프트웨어 장치(202)로 하여금 클라이언트 장치(202)상에서 "Cab Caller"애플리케이션을 시작하도록 하는 정보를 전송할 수 있다.
이루 경우에서, 인텐트를 트리거하는 것은 인텐트에 의해 특정된 액티비티를 결정함이 없이 인텐트 또는 인텐트와 관련된 정보를 전송하는 것을 포함할 수 있다. 예를 들어, 실행 엔진(250)은 인텐트에 의해 특정된 액티비티를 결정함이없이 식별된 인텐트와 관련된 데이터를 클라이언트 장치(202)에 전송할 수 있다. 이러한 경우, 클라이언트 장치(202), 또는 클라이언트 장치에 의해 호스팅되는 애플리케이션, 운영 체제 또는 다른 소프트웨어는 그 인텐트에 기초하여 수행할 액티비티를 결정할 수 있고, 인텐트에서 특정된 애플리케이션 상에서 또는 그 애플리케이션에 의해 수행될 수 있다.
클라이언트 장치(202)는 실행 엔진(250)으로부터 정보를 수신할 수 있고, 이 정보에 기초하여 식별된 인텐트에 의해 특정된 액티비티를 수행하기위한 동작을 수행할 수 있다. 예를 들어, 클라이언트 장치(202)는 모호성 제거 엔진(230)에 의해 식별된 인텐트를 수신하거나 클라이언트 장치(202)에 의해 호스팅되는 소프트웨어 또는 클라이언트 장치(202)에 지시된 정보를 수신하여 식별된 인텐트에 의해 특정된 "Cab Caller"애플리케이션을 시작하는 액티비티와 같은 그러한 액티비티를 수행할 것을 지시하는 정보를 수신할 수 있다. 수신된 정보에 기초하여, 클라이언트 장치(202) 또는 클라이언트 장치(202)에 의해 호스팅되는 소프트웨어는 그 액티비티를 수행할 수 있다. 예를 들어, 클라이언트 장치(202)의 운영 체제, "Cab Caller" 애플리케이션 자체 또는 클라이언트 장치(202) 상에 호스트된 다른 애플리케이션은 수신된 정보에 응답하여 "Cab Caller" 애플리케이션을 시작할 수 있다. 이러한 방식으로, 사용자(201)에 의해 제공된 "Call a cab" 보이스 입력은 "Cab Caller" 택시 서비스 애플리케이션의 시작을 야기할 수 있어서, 사용자(201)는 ""Cab Caller" 애플리케이션을 사용하여 택시를 요청할 수 있다.
도 3은 개발자 보이스 액션 서비스에 대한 예시적인 프로세스(300)의 흐름도이다. 일부 구현들에서, 도 3의 프로세스(300)는 도 1의 개발자 보이스 액션 서비스 시스템(100)에 의해 수행될 수 있거나, 하나 이상의 네트워크를 통해 클라이언트 장치로부터 정보를 수신하도록 구성된 액세스 가능한 시스템과 같은 그러한 클라이언트 장치에 국부적으로 또는 원격에 위치에 있는 다른 시스템에 의해 수행될 수 있다.
프로세스(300)는 적어도 애플리케이션 및 트리거 어구(302)을 식별하는 데이터를 수신함으로써 시작된다. 예를 들어,도 1의 인제스쳔 엔진(110)은 하나 이상의 네트워크(105)를 통해 애플리케이션 개발자(101)와 연관된 컴퓨팅 장치(102)로부터 문법을 수신할 수 있고, 수신된 문법은 적어도 애플리케이션 및 트리거 어구를 특정할 수 있다. 수신된 데이터는 개발자 보이스 액션 서비스 시스템(100)에 등록될 새로운 인텐트에 대한 후보로서 취급될 수 있다. 일부 실시 예에서, 기술된 바와 같이, 다른 정보가 애플리케이션 개발자(101)로부터 수신된 문법에 특정될 수 있는데, 이 다른 정보의 예로는 특정 애플리케이션 상에서 또는 이 정보에 의해 수행될 액티비티 또는 복합 액티비티를 특정하는 정보, 새로운 인텐트와 관련될 컨텍스트, 트리거 어구와 관련된 하나 이상의 인수, 또는 기타 정보가 있다.
애플리케이션 및 트리거 어구를 식별하는 정보는 이 정보가 새로운 인텐트를 생성하는데 사용될 수 있는지 여부를 결정하기 위해 검증될 수 있다(304). 예를 들어, 개발자 보이스 액션 서비스 시스템(100)의 검증 엔진(120)은 데이터에 의해 식별된 트리거 어구가 허용 가능한 트리거 어구임을 결정함으로써, 예컨대 트리거 어구가 이미 다른 인텐트와 연관되어 있지 않다고 결정하거나, 트리거 어구가 식별된 애플리케이션과 충분히 관련이 없다는 것을 결정함으로써 수신된 정보를 검증할 수 있다.
수신된 정보를 검증하는 것은 수신된 정보의 포맷이 새로운 인텐트를 생성하도록 변환될 수 있는지 여부를 결정하는 것을 포함할 수 있거나, 수신된 데이터에서 식별된 애플리케이션 또는 액티비티가 유효한 애플리케이션인지 또는 식별된 애플리케이션에 의해 수행될 수 있는 액티비티인지 여부를 결정하는 것을 포함할 수 있거나, 또는 다른 검증 절차를 포함할 수 있다.
일부 예들에서, 피드백이 수신된 정보에 대해 수행된 검증 절차에 관련되거나 그에 기초하여 결정된 정보를 포함하는 애플리케이션 개발자(101)와 관련된 컴퓨팅 장치(102)에 제공될 수 있다. 예를 들어, 피드백은 애플리케이션 개발자(101)에 의해 제출된 문법이, 이 문법이 새로운 인텐트를 생성하도록 변환될 수 있도록 검증 프로세스를 통과했는지 여부를 나타낼 수 있거나, 또는 애플리케이션 개발자(101)에 의해 제출된 문법이 검증 과정을 통과하지 못한 이유를 나타낼 수 있다.
수신된 정보는 적어도, 애플리케이션, 수신된 데이터에 의해 식별되는 트리거 어구, 및 적어도 수신된 데이터에 의해 식별된 트리거 어구에 기초하여 결정되는 하나 이상의 다른 트리거 어구를 특정하는 인텐트를 생성하도록 유도될 수 있다(306). 수신된 정보를 유도하는 것은 식별된 트리거 어구를 확장하여 하나 이상의 관련 트리거 어구를 생성함으로써 적어도 상기 식별된 트리거 어구에 기초하여 결정되는 하나 이상의 추가 트리거 어구를 결정하는 것을 포함한다. 예를 들어, 설명된 바와 같이, 수신된 데이터에서 식별된 트리거 어구는 하나 이상의 확장 규칙, 동의어 규칙, 용어 선택 규칙 또는 다른 규칙을 사용하여 확장될 수 있으며, 식별된 트리거 어구 및 관련 트리거 어구의 다른 언어로의 변환을 포함하도록 확장될 수 있다.
수신된 정보를 유도하는 것은 또한, 컴퓨팅 장치(102)로부터 수신된 문법 포맷으로부터 수신된 정보를 인텐트를 위한 포맷으로 변환하여, 적어도 애플리케이션, 식별된 트리거 어구, 및 적어도 상기 식별된 트리거 어구에 기초하여 결정되는 하나 이상의 트리거 어구를 특정하는 새로운 인텐트를 생성하는 것을 포함한다. 일부 예에서, 수신된 정보를 변환하는 것은 수신된 정보의 문법 포맷과 같은 그러한 제 1 포맷으로부터 상기 식별된 트리거 어구에 적어도 기초하여 결정되는 하나 이상의 트리거 어구를 인텐트 포맷으로 변환하여 새로운 인텐트를 생성하는 것을 포함한다.
적어도 상기 애플리케이션, 상기 수신된 정보에서 식별된 트리거 어구 및 상기 하나 이상의 추가 트리거 어구를 특정하는 새로운 인텐트는 컨텍스트 인텐트 데이터베이스(308)에 저장된다. 예를 들어, 도 1의 유도 엔진(130)이 새로운 인텐트를 생성하기 위해 상기 애플리케이션 개발자(101)로부터 수신된 상기 문법을 유도함에 기초하여, 개발자 보이스 액션 서비스 시스템(100)은 컨텍스트 인텐트 데이터베이스(140)에 상기 새로운 인텐트를 저장할 수 있다. 저장된 인텐트는 적어도, 식별된 애플리케이션, 식별된 트리거 어구, 및 적어도 식별된 트리거 어구에 기초하여 결정된 하나 이상의 트리거 어구를 특정할 수 있다. 컨텍스트 인텐트 데이터베이스(140)에 저장된 새로운 인텐트는 또한 다른 정보를 특정할 수 잇는데, 이 다른 정보의 예는 인텐트가 트리거될 때 애플리케이션 상에서 수행되거나 또는 이 애플리케이션에 의해 수행될 액티비티, 상기 인텐트와 관련된 하나 이상의 컨텍스트, 트리거 어구와 애플리케이션 또는 액티비티 간의 관계의 세기를 추정하는 관계 스코어들의 하나 이상의 세기, 또는 다른 정보를 특정할 수 있다. 새로운 인텐트는 하나 이상의 다른 인텐트와 함께 컨텍스트 인텐트 데이터베이스(140)에 저장되어, 사용자에 의해 제공되는 미래의 보이스 입력이 상기 저장된 인텐트 중 하나에 의해 특정된 트리거 어구와 매칭되도록 할 수 있다. 이 매칭을 검출함에 응답하여, 매칭된 인텐트는 트리거되어, 이 매칭된 인텐트에 의해 특정된 액티비티가 매칭된 인텐트에 의해 특정된 애플리케이션 상에서 또는 이 애플리케이션에 의해 수행되도록 할 수 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음을 이해할 것이다. 예를 들어, 위에 표시된 흐름의 다양한 형태가 단계들을 재정렬, 추가 또는 제거하여 사용될 수 있다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.
여기에 설명된 시스템 및/또는 방법은 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자는 프로그램 또는 피쳐들이 개인 정보를 수집하는지 여부를 제어할 수 있는 기회를 제공받을 수 있다 (예 : 직업, 선호도 또는 현재 위치를 제어하거나, 시스템 및/또는 방법이 사용자에게 보다 관련이 있는 동작을 수행할 수 있는지의 여부 및/또는 제어 방법을 결정할 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명 처리되므로 개인 식별 정보가 제거된다. 예를 들어, 사용자의 신원은 익명으로 처리되어 사용자에 대해 개인 식별 정보를 결정할 수 없으며 도시, 우편 번호 또는 주 수준과 같이 위치 정보가 있는 곳에서 사용자의 지리적 위치를 일반화될 수 있어 사용자의 특정 위치가 결정될 수 없다. 따라서 사용자는 자신에 관한 정보 수집 방법 및 사용 방법을 제어할 수 있다.
본 명세서에서 설명되는 실시 예들 및 모든 피쳐의 동작들은 이 명세서에 개시된 구조 및 그 구조적 균등물, 또는 이들 중 하나 이상의 조합을 비롯하여 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 실시 예는 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체 상에 인코딩된 컴퓨터 프로그램 커맨드의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 장치, 머신 판독 가능 저장 기판, 메모리 장치, 머신 판독 가능 전파 신호를 발생시키는 매체의 구성, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 장치, 장치 및 머신를 포괄한다. 상기 장치는 하드웨어 이외에, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들중 하나 이상의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 전파 신호는 인위적으로 생성된 신호, 예를 들어 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 머신-생성 전기, 광학 또는 전자기 신호이다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트, 또는 코드로서 알려짐)은 컴파일된 또는 해석된 언어들을 포함하여 임의 형태의 프로그래밍 언어로 기록될 수 있으며, 단독형 프로그램, 또는 모듈 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에 사용하기에 적합한 다른 단위를 포함하는 임의의 형태로서 전개될 수 있다. 컴퓨터 프로그램은 필수적으로 파일 시스템 내의 파일에 대응하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 유지하는 파일의 일부(예를 들어, 마크업 랭귀지 도큐먼트에 저장된 하나 이상의 스트립트), 당해 프로그램 전용의 단일 파일 또는 다수의 협력 파일들(예를 들어, 하나 이상의 모듈을 저장하는 파일들, 서브 프로그램, 또는 코드의 일부)로 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 배치되거나 다수의 사이트에 분산되고 통신 네트워크에 의해 상호연결된 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 실행되도록 전개될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 플로우들은 입력 데이터로 동작하고 출력을 생성함으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 플로우들은 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(어플리케이션 특정 집적 회로)에 의해 수행될 수 있으며, 또한 장치가 그들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어, 범용 및 전용 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤액세스 메모리 또는 양자 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 주요 소자들은 명령들을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 소자이다. 일반적으로, 컴퓨터는 데이터 저장을 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크를 포함하거나 그로부터 데이터를 수신하거나 그곳으로 데이터를 전송하거나 양자 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터는 이러한 장치를 구비할 필요가 없다. 더욱이, 컴퓨터는 다른 장치, 예를 들어, 두서너 가지 예만 들면, 휴대 전화, 개인용 디지털 기기(PDA), 휴대용 오디오 플레이어, 전역 측위 시스템(GPS) 수신기에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 컴퓨터 판독가능 매체는 예로서 반도체 메모리 소자, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 소자를 포함하는 모든 형태의 불휘발성 메모리, 미디어 및 메모리 소자와, 자기 디스크, 예를 들어, 내장형 하드 디스크 또는 이동식 디스크와, 광자기 디스크와, CD ROM 및 DVD―ROM 디스크를 포함한다. 프로세서 및 메모리는 전용 논리 회로에 의해 보충되거나 포함될수 있다.
사용자와의 상호작용을 제공하기 위해, 본 발명의 구현은 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터와, 사용자가 컴퓨터에 대한 입력을 제공할 수 있는 키보드 및 포인팅 장치, 예를 들어, 마우스 또는 트랙볼을 구비한 컴퓨터 상에 구현될 수 있다. 다른 종류의 장치가 마찬가지로 사용자와의 상호작용을 위해 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 감각적인 피드백의 임의 형태, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 발명의 구현들은 백 엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 어플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예를 들어, 본 발명의 구현과 사용자가 상호작용할 수 있는 그래픽 유저 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나, 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템으로 실현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신(예를 들어, 통신 네트워크)의 임의의 형태 또는 매체에 의해 상호연결될 수 있다. 통신 네트워크의 예들은 근거리 통신망("LAN"), 원거리 통신망("WAN")(예를 들어, 인터넷)을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격지에 위치하며 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행하며 서로 클라이언트―서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
본 명세서는 많은 세부사항을 포함하고 있지만, 이는 개시의 범위 또는 청구될 수 있는 범위를 제한하려는 것으로 해석되는 것이 아니라, 개시의 특정 구현에 특정적인 특징의 기술로서 해석되어야 한다. 개별적인 구현의 문맥으로 본 명세서에 기술된 임의의 특징들은 또한 단일 구현에서 결합되어 제공될 수 있다. 반대로, 단일 구현의 문맥으로 기술된 다양한 특징들은 또한 다수의 구현으로 개별적으로 또는 임의의 적합한 부결합으로 제공될 수 있다. 더욱이, 위에서 특징들이 임의의 조합들로 동작하는 것으로 기술되고 이러한 것으로 청구되었지만, 청구된 조합으로부터 하나 이상의 특징이 몇가지 경우에 그 조합으로부터 학습될 수 있으며, 청구된 조합은 부조합 또는 부조합의 변형에 관한 것일 수 있다.
유사하게, 특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 구현에서 다양한 시스템 컴포넌트들의 구분은 모든 구현에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수 의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.
HTML 파일이 언급된 각각의 예에서, 다른 파일 형태 또는 포맷이 대체될 수 있다. 예를 들어, HTML 파일은 XML, JSON, 플레인 텍스트, 또는 다른 형태의 파일로 대체될 수 있다. 더욱이, 테이블 또는 해시 테이블 언급된 곳에서, (스프레드시트, 관계형 데이터베이스, 또는 구조화된 파일과 같은) 다른 데이터 구조가 사용될 수 있다.
이와 같이, 본 개시의 특정한 구현들이 기술되었다. 다른 구현들은 첨부된 특허청구의 범위 내에 있다. 몇몇 경우에, 특허청구의 범위에 열거된 동작들은 상이한 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 또한, 첨부 도면에 도시된 프로세스는 반드시 바람직한 결과를 달성하기 위해, 도시된 특정 순서 또는 순서를 필요로 하지 않는다. 특정 구현 예에서, 멀티 태스킹의 병렬 처리가 유리할 수 있다.
또한, 상술한 실시 예에서 다양한 시스템 컴포넌트의 분리는 모든 실시 예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품.
HTML 파일이 언급되는 각 인스턴스에서 다른 파일 타입 또는 포맷이 대체될 수 있다. 예를 들어 HTML 파일은 XML, JSON,일반 텍스트 또는 다른 타입의 파일로 대체될 수 있다. 또한 테이블 또는 해시 테이블이 언급되는 경우 다른 데이터 구조(예 : 스프레드 시트, 관계형 데이터베이스 또는 구조화된 파일)가 사용될 수 있다.
따라서, 특정 실시 예들이 설명되었다. 다른 실시 예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 열거된 동작은 상이한 순서로 수행될 수 있고 여전히 바람직한 결과를 달성할 수 있다.

Claims (14)

  1. 컴퓨터에 의해 구현되는 방법으로서, 상기 방법은,
    보이스 액션 서비스 시스템(voice action service system)에 의해, 사용자의 컴퓨팅 장치에서 제공되는 발화(spoken utterance)를 수신하는 단계와,
    여기서 상기 발화는 보이스 커맨드 트리거 어구(voice command trigger phrase)를 포함하고;
    상기 보이스 액션 서비스 시스템에 의해, 상기 보이스 커맨드 트리거 어구와 관련된 인텐트(intent)를 결정하기 위해 상기 발화를 처리하는 단계와;
    상기 보이스 액션 서비스 시스템에 의해, 상기 인텐트를 각각 만족시킬 수 있는 적어도 제 1 애플리케이션 및 제 2 애플리케이션을 식별하는 단계와,
    여기서 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션을 식별하는 단계는, 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션이 하나 이상의 데이터베이스들에서 상기 인텐트와 관련되어 있음을 결정하는 것에 기초하고;
    상기 보이스 액션 서비스 시스템에 의해, 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 단계와,
    여기서 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 단계는, 상기 사용자에 의한 상기 제 1 애플리케이션의 최근 사용에 적어도 부분적으로 기초하고; 그리고
    상기 발화에 응답하여 상기 보이스 액션 서비스 시스템에 의해 상기 사용자의 상기 컴퓨팅 장치에 상기 선택된 제 1 애플리케이션의 표시를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 사용자에 의한 상기 제 1 애플리케이션의 최근 사용에 적어도 부분적으로 기초하여 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 단계는, 상기 보이스 커맨드 트리거 어구에 응답하여, 상기 제 1 애플리케이션이 상기 사용자에 의해 가장 최근에 선택되었음을 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 단계는 또한, 상기 보이스 커맨드 트리거 어구 또는 상기 인텐트 중 적어도 하나와 상기 제 1 애플리케이션 간의 관계 스코어(relationship score)의 세기에 적어도 부분적으로 기초하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 단계는 또한, 상기 발화가 수신될 때 상기 사용자의 상기 컴퓨팅 장치 상에서 상기 제 1 애플리케이션이 실행되는 것에 적어도 부분적으로 기초하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 선택된 제 1 애플리케이션의 표시를 제공하는 단계는, 상기 선택된 제 1 애플리케이션의 청취가능한 표시를 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 방법은 또한,
    상기 보이스 액션 서비스 시스템에 의해, 상기 사용자의 상기 컴퓨팅 장치에서 추가적인 발화를 수신하는 단계와,
    여기서 상기 추가적인 발화는 상기 선택된 제 1 애플리케이션의 확인(confirmation)을 포함하고; 그리고
    상기 추가적인 발화를 수신함에 응답하여, 상기 인텐트를 만족시키도록 상기 제 1 애플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 의도를 결정하기 위해 상기 발화를 처리하는 단계는,
    상기 보이스 액션 서비스 시스템에 의해, 상기 발화의 전사(transcription)를 획득하기 위해 상기 발화에 대해 스피치 인식(speech recognition)을 수행하는 것과, 그리고
    상기 보이스 액션 서비스 시스템에 의해, 상기 전사의 적어도 일부분이 상기 보이스 커맨드 트리거 어구를 포함하고 상기 보이스 커맨드 트리거 어구는 상기 인텐트와 매칭한다고 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 시스템으로서, 상기 시스템은,
    적어도 하나의 프로세서와; 그리고
    명령들을 포함하는 적어도 하나의 메모리를 포함하고,
    상기 명령들은 실행될 때 상기 적어도 하나의 프로세서로 하여금,
    사용자의 컴퓨팅 장치에서 제공되는 발화를 수신하는 것과,
    여기서 상기 발화는 보이스 커맨드 트리거 어구를 포함하고;
    상기 발화가 상기 보이스 커맨드 트리거 어구를 포함함을 결정하기 위해 상기 발화를 처리하는 것과;
    적어도 제 1 애플리케이션 및 제 2 애플리케이션을 식별하는 것과,
    여기서 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션을 식별하는 것은, 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션이 하나 이상의 데이터베이스들에서 상기 보이스 커맨드 트리거 어구에 맵핑되어 있음을 결정하는 것에 기초하고;
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 것과,
    여기서 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 것은, 상기 사용자에 의한 상기 제 1 애플리케이션의 최근 사용에 적어도 부분적으로 기초하고; 그리고
    상기 발화에 응답하여 상기 사용자의 상기 컴퓨팅 장치에 상기 선택된 제 1 애플리케이션의 표시를 제공하는 것을
    수행하도록 하는 것을 특징으로 하는 시스템.
  9. 제8항에 있어서,
    상기 사용자에 의한 상기 제 1 애플리케이션의 최근 사용에 적어도 부분적으로 기초하여 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하기 위한 명령들은, 상기 보이스 커맨드 트리거 어구에 응답하여, 상기 제 1 애플리케이션이 상기 사용자에 의해 가장 최근에 선택되었음을 결정하기 위한 명령들을 포함하는 것을 특징으로 하는 시스템.
  10. 제8항에 있어서,
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하기 위한 명령들은 또한, 상기 보이스 커맨드 트리거 어구와 상기 제 1 애플리케이션 간의 관계 스코어의 세기에 적어도 부분적으로 기초하여 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하기 위한 명령들을 포함하는 것을 특징으로 하는 시스템.
  11. 제8항에 있어서,
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하기 위한 명령들은 또한, 상기 발화가 수신될 때 상기 사용자의 상기 컴퓨팅 장치 상에서 상기 제 1 애플리케이션이 실행되는 것에 적어도 부분적으로 기초하여 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하기 위한 명령들을 포함하는 것을 특징으로 하는 시스템.
  12. 제8항에 있어서,
    상기 선택된 제 1 애플리케이션의 표시를 제공하기 위한 명령들은 또한, 상기 선택된 제 1 애플리케이션의 청취가능한 표시를 제공하기 위한 명령들을 포함하는 것을 특징으로 하는 시스템.
  13. 제8항에 있어서,
    상기 시스템은 또한,
    상기 사용자의 상기 컴퓨팅 장치에서 추가적인 발화를 수신하는 것과,
    여기서 상기 추가적인 발화는 상기 선택된 제 1 애플리케이션의 확인을 포함하고; 그리고
    상기 추가적인 발화를 수신함에 응답하여, 상기 제 1 애플리케이션을 실행하는 것을
    수행하기 위한 명령들을 포함하는 것을 특징으로 하는 시스템.
  14. 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은 실행될 때 하나 이상의 프로세서로 하여금,
    사용자의 컴퓨팅 장치에서 제공되는 발화를 수신하는 것과,
    여기서 상기 발화는 보이스 커맨드 트리거 어구를 포함하고;
    상기 보이스 커맨드 트리거 어구와 관련된 인텐트를 결정하기 위해 상기 발화를 처리하는 것과;
    상기 인텐트를 각각 만족시킬 수 있는 적어도 제 1 애플리케이션 및 제 2 애플리케이션을 식별하는 것과,
    여기서 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션을 식별하는 것은, 적어도 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션이 하나 이상의 데이터베이스들에서 상기 인텐트와 관련되어 있음을 결정하는 것에 기초하고;
    상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 것과,
    여기서 상기 제 2 애플리케이션보다 상기 제 1 애플리케이션을 우선해서 선택하는 것은, 상기 사용자에 의한 상기 제 1 애플리케이션의 최근 사용에 적어도 부분적으로 기초하고; 그리고
    상기 발화에 응답하여 상기 사용자의 상기 컴퓨팅 장치에 상기 선택된 제 1 애플리케이션의 표시를 제공하는 것을
    수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
KR1020197031169A 2015-04-22 2016-04-12 개발자 보이스 액티비티 시스템 KR102173100B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/693,330 2015-04-22
US14/693,330 US9472196B1 (en) 2015-04-22 2015-04-22 Developer voice actions system
PCT/US2016/027113 WO2016171956A1 (en) 2015-04-22 2016-04-12 Developer voice actions system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177028031A Division KR102038074B1 (ko) 2015-04-22 2016-04-12 개발자 보이스 액티비티 시스템

Publications (2)

Publication Number Publication Date
KR20190122888A true KR20190122888A (ko) 2019-10-30
KR102173100B1 KR102173100B1 (ko) 2020-11-02

Family

ID=55953380

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177028031A KR102038074B1 (ko) 2015-04-22 2016-04-12 개발자 보이스 액티비티 시스템
KR1020197031169A KR102173100B1 (ko) 2015-04-22 2016-04-12 개발자 보이스 액티비티 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177028031A KR102038074B1 (ko) 2015-04-22 2016-04-12 개발자 보이스 액티비티 시스템

Country Status (8)

Country Link
US (4) US9472196B1 (ko)
EP (1) EP3286633B1 (ko)
JP (2) JP6538188B2 (ko)
KR (2) KR102038074B1 (ko)
CN (2) CN113851120A (ko)
DE (1) DE112016001852T5 (ko)
GB (1) GB2553234B (ko)
WO (1) WO2016171956A1 (ko)

Families Citing this family (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
KR102516577B1 (ko) 2013-02-07 2023-04-03 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
WO2016151699A1 (ja) * 2015-03-20 2016-09-29 株式会社 東芝 学習装置、方法およびプログラム
US9472196B1 (en) 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
GB2544543B (en) * 2015-11-20 2020-10-07 Zuma Array Ltd Lighting and sound system
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
JP6620934B2 (ja) * 2016-01-29 2019-12-18 パナソニックIpマネジメント株式会社 翻訳支援方法、翻訳支援装置、翻訳装置及び翻訳支援プログラム
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US9820039B2 (en) 2016-02-22 2017-11-14 Sonos, Inc. Default playback devices
US10509626B2 (en) 2016-02-22 2019-12-17 Sonos, Inc Handling of loss of pairing between networked devices
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
US9978390B2 (en) 2016-06-09 2018-05-22 Sonos, Inc. Dynamic player selection for audio signal processing
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
AU2017100670C4 (en) 2016-06-12 2019-11-21 Apple Inc. User interfaces for retrieving contextually relevant media content
US10152969B2 (en) 2016-07-15 2018-12-11 Sonos, Inc. Voice detection by multiple devices
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
US10403275B1 (en) * 2016-07-28 2019-09-03 Josh.ai LLC Speech control for complex commands
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
US9743204B1 (en) 2016-09-30 2017-08-22 Sonos, Inc. Multi-orientation playback device microphones
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
US10824798B2 (en) 2016-11-04 2020-11-03 Semantic Machines, Inc. Data collection for a new conversational dialogue system
US10713288B2 (en) 2017-02-08 2020-07-14 Semantic Machines, Inc. Natural language content generator
CN110301004B (zh) * 2017-02-23 2023-08-08 微软技术许可有限责任公司 可扩展对话系统
US10586530B2 (en) 2017-02-23 2020-03-10 Semantic Machines, Inc. Expandable dialogue system
US11069340B2 (en) 2017-02-23 2021-07-20 Microsoft Technology Licensing, Llc Flexible and expandable dialogue system
US10762892B2 (en) 2017-02-23 2020-09-01 Semantic Machines, Inc. Rapid deployment of dialogue system
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
CN109102802B (zh) * 2017-06-21 2023-10-17 三星电子株式会社 用于处理用户话语的系统
KR102007478B1 (ko) * 2017-06-28 2019-08-05 크리스토퍼 재현 윤 특정 조건에서 음성인식을 이용한 어플리케이션 제어 장치 및 방법
CN107316643B (zh) * 2017-07-04 2021-08-17 科大讯飞股份有限公司 语音交互方法及装置
US20190027149A1 (en) * 2017-07-20 2019-01-24 Nuance Communications, Inc. Documentation tag processing system
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
KR102411766B1 (ko) * 2017-08-25 2022-06-22 삼성전자주식회사 음성 인식 서비스를 활성화하는 방법 및 이를 구현한 전자 장치
US11132499B2 (en) 2017-08-28 2021-09-28 Microsoft Technology Licensing, Llc Robust expandable dialogue system
US10311874B2 (en) * 2017-09-01 2019-06-04 4Q Catalyst, LLC Methods and systems for voice-based programming of a voice-controlled device
US10048930B1 (en) 2017-09-08 2018-08-14 Sonos, Inc. Dynamic computation of system response volume
US10446165B2 (en) 2017-09-27 2019-10-15 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US10621981B2 (en) 2017-09-28 2020-04-14 Sonos, Inc. Tone interference cancellation
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10466962B2 (en) * 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
CN107886948A (zh) * 2017-11-16 2018-04-06 百度在线网络技术(北京)有限公司 语音交互方法及装置,终端,服务器及可读存储介质
US10880650B2 (en) 2017-12-10 2020-12-29 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US10818290B2 (en) 2017-12-11 2020-10-27 Sonos, Inc. Home graph
US10878808B1 (en) * 2018-01-09 2020-12-29 Amazon Technologies, Inc. Speech processing dialog management
WO2019152722A1 (en) 2018-01-31 2019-08-08 Sonos, Inc. Device designation of playback and network microphone device arrangements
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10936822B2 (en) * 2018-05-04 2021-03-02 Dell Products L.P. Linguistic semantic analysis alert correlation system
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
KR20190133100A (ko) * 2018-05-22 2019-12-02 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10811009B2 (en) * 2018-06-27 2020-10-20 International Business Machines Corporation Automatic skill routing in conversational computing frameworks
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US10461710B1 (en) 2018-08-28 2019-10-29 Sonos, Inc. Media playback system with maximum volume setting
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US10878811B2 (en) 2018-09-14 2020-12-29 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US10692518B2 (en) 2018-09-29 2020-06-23 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
KR102620705B1 (ko) 2018-10-11 2024-01-04 삼성전자주식회사 전자 장치 및 그의 동작 방법
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
US11527265B2 (en) 2018-11-02 2022-12-13 BriefCam Ltd. Method and system for automatic object-aware video or audio redaction
KR20200055202A (ko) * 2018-11-12 2020-05-21 삼성전자주식회사 제스처에 의해 트리거 되는 음성 인식 서비스를 제공하는 전자 장치 및 그 동작 방법
EP3654249A1 (en) 2018-11-15 2020-05-20 Snips Dilated convolutions and gating for efficient keyword spotting
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US10602268B1 (en) 2018-12-20 2020-03-24 Sonos, Inc. Optimization of network microphone devices using noise classification
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US20220013119A1 (en) * 2019-02-13 2022-01-13 Sony Group Corporation Information processing device and information processing method
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US11138975B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection
US11138969B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US11184298B2 (en) * 2019-08-28 2021-11-23 International Business Machines Corporation Methods and systems for improving chatbot intent training by correlating user feedback provided subsequent to a failed response to an initial user intent
CN110718221A (zh) * 2019-10-08 2020-01-21 百度在线网络技术(北京)有限公司 语音技能控制方法、语音设备、客户端以及服务器
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
CN110808051B (zh) * 2019-10-30 2024-06-04 腾讯科技(深圳)有限公司 一种技能选取的方法以及相关装置
US20210158803A1 (en) * 2019-11-21 2021-05-27 Lenovo (Singapore) Pte. Ltd. Determining wake word strength
US11450325B1 (en) 2019-12-12 2022-09-20 Amazon Technologies, Inc. Natural language processing
US11482214B1 (en) * 2019-12-12 2022-10-25 Amazon Technologies, Inc. Hypothesis generation and selection for inverse text normalization for search
US11380308B1 (en) 2019-12-13 2022-07-05 Amazon Technologies, Inc. Natural language processing
US11551681B1 (en) * 2019-12-13 2023-01-10 Amazon Technologies, Inc. Natural language processing routing
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
CN111240478B (zh) * 2020-01-07 2023-10-13 百度在线网络技术(北京)有限公司 设备响应的评测方法、装置、设备及存储介质
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11556307B2 (en) 2020-01-31 2023-01-17 Sonos, Inc. Local voice data processing
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11089440B1 (en) 2020-03-02 2021-08-10 International Business Machines Corporation Management of geographically and temporarily distributed services
US20230153061A1 (en) * 2020-04-21 2023-05-18 Google Llc Hierarchical Context Specific Actions from Ambient Speech
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11501762B2 (en) * 2020-07-29 2022-11-15 Microsoft Technology Licensing, Llc Compounding corrective actions and learning in mixed mode dictation
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
CN112786040A (zh) * 2020-10-22 2021-05-11 青岛经济技术开发区海尔热水器有限公司 应用于智能家电设备的语音控制方法、装置及设备
US11984123B2 (en) 2020-11-12 2024-05-14 Sonos, Inc. Network device interaction by range
US11551700B2 (en) 2021-01-25 2023-01-10 Sonos, Inc. Systems and methods for power-efficient keyword detection
US11862175B2 (en) * 2021-01-28 2024-01-02 Verizon Patent And Licensing Inc. User identification and authentication
US11908452B1 (en) * 2021-05-20 2024-02-20 Amazon Technologies, Inc. Alternative input representations for speech inputs
US20220406301A1 (en) * 2021-06-16 2022-12-22 Google Llc Passive disambiguation of assistant commands

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100047719A (ko) * 2008-10-29 2010-05-10 엘지전자 주식회사 단말기 및 그 제어 방법
JP2011503638A (ja) * 2007-10-26 2011-01-27 本田技研工業株式会社 カーナビゲーションシステムのための自由会話命令分類の改良
US20110223893A1 (en) * 2009-09-30 2011-09-15 T-Mobile Usa, Inc. Genius Button Secondary Commands
KR20130136167A (ko) * 2012-06-04 2013-12-12 삼성전자주식회사 음성 인식 서비스를 제공하기 위한 방법 및 그 전자 장치
US20140244259A1 (en) * 2011-12-29 2014-08-28 Barbara Rosario Speech recognition utilizing a dynamic set of grammar elements

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2119397C (en) 1993-03-19 2007-10-02 Kim E.A. Silverman Improved automated voice synthesis employing enhanced prosodic treatment of text, spelling of text and rate of annunciation
EP0894307B1 (en) * 1997-01-28 2009-05-27 Intellectual Ventures Holding 56 LLC Data processing apparatus used for communication network
DE69822296T2 (de) 1997-10-20 2005-02-24 Koninklijke Philips Electronics N.V. Mustererkennungsregistrierung in einem verteilten system
US6604075B1 (en) * 1999-05-20 2003-08-05 Lucent Technologies Inc. Web-based voice dialog interface
US7069220B2 (en) * 1999-08-13 2006-06-27 International Business Machines Corporation Method for determining and maintaining dialog focus in a conversational speech system
US6748361B1 (en) 1999-12-14 2004-06-08 International Business Machines Corporation Personal speech assistant supporting a dialog manager
US20020072914A1 (en) * 2000-12-08 2002-06-13 Hiyan Alshawi Method and apparatus for creation and user-customization of speech-enabled services
JP4155383B2 (ja) 2001-03-05 2008-09-24 アルパイン株式会社 音声認識機器操作装置
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7502737B2 (en) 2002-06-24 2009-03-10 Intel Corporation Multi-pass recognition of spoken dialogue
JP4107093B2 (ja) 2003-01-30 2008-06-25 株式会社日立製作所 対話型端末装置及び対話アプリケーション提供方法
US7013282B2 (en) 2003-04-18 2006-03-14 At&T Corp. System and method for text-to-speech processing in a portable device
JP2005017974A (ja) * 2003-06-30 2005-01-20 Noritz Corp 温水システム
US7363228B2 (en) 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
JP4377718B2 (ja) * 2004-02-27 2009-12-02 富士通株式会社 対話制御システム及び方法
US7624018B2 (en) * 2004-03-12 2009-11-24 Microsoft Corporation Speech recognition using categories and speech prefixing
CN100424630C (zh) * 2004-03-26 2008-10-08 宏碁股份有限公司 网页语音接口的操作方法
US20060116880A1 (en) * 2004-09-03 2006-06-01 Thomas Gober Voice-driven user interface
JP4405370B2 (ja) 2004-11-15 2010-01-27 本田技研工業株式会社 車両用機器制御装置
US7653546B2 (en) * 2004-11-18 2010-01-26 Nuance Communications, Inc. Method and system for efficient voice-based programming
JP3984988B2 (ja) 2004-11-26 2007-10-03 キヤノン株式会社 ユーザインタフェース設計装置およびその制御方法
WO2006077942A1 (ja) * 2005-01-19 2006-07-27 Brother Kogyo Kabushiki Kaisha 無線タグ情報管理システム及び読取装置、タグラベル作成装置、無線タグ回路素子カートリッジ、無線タグ
JP4628803B2 (ja) 2005-01-25 2011-02-09 本田技研工業株式会社 音声認識型機器制御装置
US7640160B2 (en) 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US9703892B2 (en) * 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
JP4260788B2 (ja) 2005-10-20 2009-04-30 本田技研工業株式会社 音声認識機器制御装置
JP4878471B2 (ja) 2005-11-02 2012-02-15 キヤノン株式会社 情報処理装置およびその制御方法
JP2008076811A (ja) 2006-09-22 2008-04-03 Honda Motor Co Ltd 音声認識装置、音声認識方法及び音声認識プログラム
US7840409B2 (en) 2007-02-27 2010-11-23 Nuance Communications, Inc. Ordering recognition results produced by an automatic speech recognition engine for a multimodal application
US7877258B1 (en) 2007-03-29 2011-01-25 Google Inc. Representing n-gram language models for compact storage and fast retrieval
US8285329B1 (en) * 2007-04-02 2012-10-09 Sprint Communications Company L.P. Mobile device-based control of smart card operation
US8396713B2 (en) 2007-04-30 2013-03-12 Nuance Communications, Inc. Method and system for using a statistical language model and an action classifier in parallel with grammar for better handling of out-of-grammar utterances
US8028042B2 (en) * 2007-06-15 2011-09-27 Amazon Technologies, Inc. System and method of managing media content
US8239239B1 (en) * 2007-07-23 2012-08-07 Adobe Systems Incorporated Methods and systems for dynamic workflow access based on user action
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
US9241063B2 (en) * 2007-11-01 2016-01-19 Google Inc. Methods for responding to an email message by call from a mobile device
US8219407B1 (en) * 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
US8370160B2 (en) 2007-12-31 2013-02-05 Motorola Mobility Llc Methods and apparatus for implementing distributed multi-modal applications
US20090171663A1 (en) 2008-01-02 2009-07-02 International Business Machines Corporation Reducing a size of a compiled speech recognition grammar
US7917368B2 (en) 2008-02-25 2011-03-29 Mitsubishi Electric Research Laboratories, Inc. Method for interacting with users of speech recognition systems
US8418076B2 (en) * 2008-05-15 2013-04-09 Microsoft Corporation Managing inputs from a plurality of user input device actuators
US8479051B2 (en) * 2009-01-23 2013-07-02 Microsoft Corporation System and method for customized error reporting
US9755842B2 (en) * 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
TWI420433B (zh) * 2009-02-27 2013-12-21 Ind Tech Res Inst 語音互動系統與方法
US10540976B2 (en) * 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9684741B2 (en) 2009-06-05 2017-06-20 Microsoft Technology Licensing, Llc Presenting search results according to query domains
US20130219333A1 (en) * 2009-06-12 2013-08-22 Adobe Systems Incorporated Extensible Framework for Facilitating Interaction with Devices
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8868427B2 (en) * 2009-12-11 2014-10-21 General Motors Llc System and method for updating information in electronic calendars
US20110288859A1 (en) * 2010-02-05 2011-11-24 Taylor Andrew E Language context sensitive command system and method
US8515734B2 (en) 2010-02-08 2013-08-20 Adacel Systems, Inc. Integrated language model, related systems and methods
US8694313B2 (en) * 2010-05-19 2014-04-08 Google Inc. Disambiguation of contact information using historical data
KR101699720B1 (ko) * 2010-08-03 2017-01-26 삼성전자주식회사 음성명령 인식 장치 및 음성명령 인식 방법
US8731939B1 (en) 2010-08-06 2014-05-20 Google Inc. Routing queries based on carrier phrase registration
US8682661B1 (en) 2010-08-31 2014-03-25 Google Inc. Robust speech recognition
US8719727B2 (en) * 2010-12-15 2014-05-06 Microsoft Corporation Managing an immersive environment
KR101828273B1 (ko) * 2011-01-04 2018-02-14 삼성전자주식회사 결합기반의 음성명령 인식 장치 및 그 방법
US8929591B2 (en) * 2011-03-08 2015-01-06 Bank Of America Corporation Providing information associated with an identified representation of an object
US9104440B2 (en) * 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8818994B2 (en) * 2011-06-27 2014-08-26 Bmc Software, Inc. Mobile service context
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US8997171B2 (en) * 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US8806369B2 (en) * 2011-08-26 2014-08-12 Apple Inc. Device, method, and graphical user interface for managing and interacting with concurrently open software applications
US8762156B2 (en) * 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
CN102520788B (zh) * 2011-11-16 2015-01-21 歌尔声学股份有限公司 一种语音识别控制方法
US9418658B1 (en) * 2012-02-08 2016-08-16 Amazon Technologies, Inc. Configuration of voice controlled assistant
US8902182B2 (en) * 2012-02-24 2014-12-02 Blackberry Limited Electronic device and method of controlling a display
US20130238326A1 (en) * 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
US9503683B2 (en) * 2012-03-27 2016-11-22 Google Inc. Providing users access to applications during video communications
US20140365884A1 (en) * 2012-03-30 2014-12-11 Google Inc. Voice command recording and playback
US8881269B2 (en) * 2012-03-31 2014-11-04 Apple Inc. Device, method, and graphical user interface for integrating recognition of handwriting gestures with a screen reader
JP6012237B2 (ja) * 2012-04-18 2016-10-25 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US9317709B2 (en) * 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
US8532675B1 (en) * 2012-06-27 2013-09-10 Blackberry Limited Mobile communication device user interface for manipulation of data items in a physical space
US8965759B2 (en) * 2012-09-01 2015-02-24 Sarah Hershenhorn Digital voice memo transfer and processing
US20150088523A1 (en) * 2012-09-10 2015-03-26 Google Inc. Systems and Methods for Designing Voice Applications
CN103674012B (zh) * 2012-09-21 2017-09-29 高德软件有限公司 语音定制方法及其装置、语音识别方法及其装置
KR101407192B1 (ko) * 2012-09-28 2014-06-16 주식회사 팬택 사운드 출력을 제어하는 휴대 단말 및 사운드 출력 제어 방법
KR20140089861A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US9172747B2 (en) * 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US10102845B1 (en) * 2013-02-25 2018-10-16 Amazon Technologies, Inc. Interpreting nonstandard terms in language processing using text-based communications
US9454957B1 (en) * 2013-03-05 2016-09-27 Amazon Technologies, Inc. Named entity resolution in spoken language processing
JP6236805B2 (ja) * 2013-03-05 2017-11-29 日本電気株式会社 発話コマンド認識システム
US9530160B2 (en) * 2013-03-14 2016-12-27 Nanigans, Inc. System and method for an affinity capture, user feedback and affinity analysis
WO2014157903A1 (en) * 2013-03-27 2014-10-02 Samsung Electronics Co., Ltd. Method and device for displaying service page for executing application
US9875494B2 (en) * 2013-04-16 2018-01-23 Sri International Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant
US20140324856A1 (en) * 2013-04-27 2014-10-30 Microsoft Corporation Application discoverability
US9292254B2 (en) * 2013-05-15 2016-03-22 Maluuba Inc. Interactive user interface for an intelligent assistant
JP2015011170A (ja) 2013-06-28 2015-01-19 株式会社ATR−Trek ローカルな音声認識を行なう音声認識クライアント装置
US9443507B2 (en) * 2013-07-15 2016-09-13 GM Global Technology Operations LLC System and method for controlling a speech recognition system
US20150024721A1 (en) * 2013-07-22 2015-01-22 Nvidia Corporation Automatically connecting/disconnecting an incoming phone call to a data processing device based on determining intent of a user thereof to respond to the incoming phone call
US9343068B2 (en) 2013-09-16 2016-05-17 Qualcomm Incorporated Method and apparatus for controlling access to applications having different security levels
CN103794214A (zh) * 2014-03-07 2014-05-14 联想(北京)有限公司 一种信息处理方法、装置和电子设备
US9697545B1 (en) * 2014-03-11 2017-07-04 Vmware, Inc. Service monitor for monitoring and tracking the performance of an application running on different mobile devices
US10249296B1 (en) * 2014-05-27 2019-04-02 Amazon Technologies, Inc. Application discovery and selection in language-based systems
US10592080B2 (en) * 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US9548066B2 (en) * 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US20160103793A1 (en) * 2014-10-14 2016-04-14 Microsoft Technology Licensing, Llc Heterogeneous Application Tabs
US9116768B1 (en) * 2014-11-20 2015-08-25 Symantec Corporation Systems and methods for deploying applications included in application containers
US9812126B2 (en) * 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
US10248192B2 (en) * 2014-12-03 2019-04-02 Microsoft Technology Licensing, Llc Gaze target application launcher
US10460720B2 (en) * 2015-01-03 2019-10-29 Microsoft Technology Licensing, Llc. Generation of language understanding systems and methods
US9472196B1 (en) 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US20170075985A1 (en) * 2015-09-16 2017-03-16 Microsoft Technology Licensing, Llc Query transformation for natural language queries
KR102667413B1 (ko) * 2016-10-27 2024-05-21 삼성전자주식회사 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
US11468881B2 (en) * 2019-03-29 2022-10-11 Samsung Electronics Co., Ltd. Method and system for semantic intelligent task learning and adaptive execution
KR20210045241A (ko) * 2019-10-16 2021-04-26 삼성전자주식회사 전자 장치 및 전자 장치의 음성 명령어 공유 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011503638A (ja) * 2007-10-26 2011-01-27 本田技研工業株式会社 カーナビゲーションシステムのための自由会話命令分類の改良
KR20100047719A (ko) * 2008-10-29 2010-05-10 엘지전자 주식회사 단말기 및 그 제어 방법
US20110223893A1 (en) * 2009-09-30 2011-09-15 T-Mobile Usa, Inc. Genius Button Secondary Commands
US20140244259A1 (en) * 2011-12-29 2014-08-28 Barbara Rosario Speech recognition utilizing a dynamic set of grammar elements
KR20130136167A (ko) * 2012-06-04 2013-12-12 삼성전자주식회사 음성 인식 서비스를 제공하기 위한 방법 및 그 전자 장치

Also Published As

Publication number Publication date
JP6538188B2 (ja) 2019-07-03
EP3286633B1 (en) 2022-07-06
EP3286633A1 (en) 2018-02-28
CN113851120A (zh) 2021-12-28
CN107408385B (zh) 2021-09-21
US11657816B2 (en) 2023-05-23
JP2018511831A (ja) 2018-04-26
US20160314791A1 (en) 2016-10-27
JP6873188B2 (ja) 2021-05-19
KR102173100B1 (ko) 2020-11-02
GB201715580D0 (en) 2017-11-08
US10839799B2 (en) 2020-11-17
GB2553234B (en) 2022-08-10
KR102038074B1 (ko) 2019-10-29
US20170186427A1 (en) 2017-06-29
WO2016171956A1 (en) 2016-10-27
US10008203B2 (en) 2018-06-26
CN107408385A (zh) 2017-11-28
KR20170124583A (ko) 2017-11-10
GB2553234A (en) 2018-02-28
DE112016001852T5 (de) 2018-06-14
JP2019144598A (ja) 2019-08-29
US20180374480A1 (en) 2018-12-27
US20210082430A1 (en) 2021-03-18
US9472196B1 (en) 2016-10-18

Similar Documents

Publication Publication Date Title
KR102038074B1 (ko) 개발자 보이스 액티비티 시스템
JP6942841B2 (ja) ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成
KR102273095B1 (ko) 음성 액션 검색 가능 시스템
CN107146606B (zh) 开发人员语音动作系统
US10698654B2 (en) Ranking and boosting relevant distributable digital assistant operations
CN110291582B (zh) 语言模型偏置系统
KR102438671B1 (ko) 텍스트 독립 화자 인식
WO2019083601A1 (en) CLASSIFICATION AND AMPLIFICATION OF RELEVANT DISTRIBUTABLE DIGITAL ASSISTANT OPERATIONS

Legal Events

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