JP6704450B2 - 開発者ボイスアクションシステム - Google Patents

開発者ボイスアクションシステム Download PDF

Info

Publication number
JP6704450B2
JP6704450B2 JP2018522970A JP2018522970A JP6704450B2 JP 6704450 B2 JP6704450 B2 JP 6704450B2 JP 2018522970 A JP2018522970 A JP 2018522970A JP 2018522970 A JP2018522970 A JP 2018522970A JP 6704450 B2 JP6704450 B2 JP 6704450B2
Authority
JP
Japan
Prior art keywords
voice action
software application
action
new
voice
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2018522970A
Other languages
English (en)
Other versions
JP2019512102A (ja
JP2019512102A5 (ja
Inventor
ボ・ワン
スニル・ヴェムリ
バーナビー・ジョン・ジェームズ
スコット・ビー・ハフマン
プラヴィール・クマール・グプタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2019512102A publication Critical patent/JP2019512102A/ja
Publication of JP2019512102A5 publication Critical patent/JP2019512102A5/ja
Application granted granted Critical
Publication of JP6704450B2 publication Critical patent/JP6704450B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • 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
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • 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
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Description

関連出願の相互参照
本出願は、2016年3月1日に出願された米国出願第15/057,453号の継続出願であり、その優先権を主張するものであり、その開示は、その全体が参照により本明細書に組み込まれる。
本明細書はボイスアクションに関し、特定の一実装形態は、ボイスアクションを構成することに関する。
アプリケーションにおけるタスクは、あるジョブを実行するためにユーザが相互作用するソフトウェアにおいて定義された1つまたは複数のアクティビティを含むことができる。アクティビティとは、タスクの実行のライフサイクルを制御するクラスであり、したがって、タスク内で行われる複数のアクティビティは、ユーザがジョブを実行することを可能にすることができる。いくつかの実装形態では、コマンドは、アクティビティまたはアクティビティに関連するアクションに関連付け可能であり、したがって、コマンドのユーザ提示は、アクティビティまたはアクションをトリガすることができる。特定の意向(intent)は、アクティビティの開始またはアクションの実行をトリガするために始動(fire)可能である。
本明細書は、アプリケーション開発者が以前にインストールされたソフトウェアアプリケーションのための新しいボイスアクションを配布(deploy)することを可能にするプラットフォームについて説明する。一般に、プラットフォームを使用して、アプリケーション開発者は、新しいボイスアクションを定義する情報を提示することができ、この情報はアプリケーション、新しいボイスアクションがトリガすることに向けられるアクション、アクションをトリガするためのトリガ用語、およびアプリケーション内でアクションをトリガするためにトリガ用語が効果的であるべきコンテキストを指定する。
アプリケーション開発者によって提示されるコンテキストは、ボイスアクションがアプリケーション内でアクションをトリガするのに効果的であるべきとき、ユーザデバイスステータスを指定することができる。デバイスステータスは、たとえば、どのアプリケーションがフォアグラウンド(すなわち、デバイスのユーザインタフェース内で現在アクティブである)またはバックグラウンド(すなわち、デバイスのユーザインタフェース内のビューから現在隠されている)で動作しているかを含むことができ、またはアプリケーションが現在どのアクティビティを実行しているか、実行中のアクティビティのステータスなどのアプリケーションについての特定の情報を含むことができる。
アプリケーション開発者が、新しいボイスアクションを定義する情報を提示すると、サービスまたはツールは、新しいボイスアクションを定義する情報を検証して、新しいボイスアクションがアプリケーションに適合するかどうかを判定する、または新しいボイスアクションが実施可能であるかどうかを別の方法で判定することができる。新しいボイスアクションが妥当である場合、意向と呼ばれ、特定のフォーマットを有する受動的データ構造の新しいインスタンスが、新しいボイスアクションを定義する情報を帰納する(induct)ことによって、ボイスアクションのために作成可能である。意向は、アプリケーション、トリガ用語、トリガ用語を検出したことに応答してトリガされるべきアクティビティまたはアクション、およびトリガ用語がアクティビティまたはアクションをトリガするために必要なコンテキストなどの新しいボイスアクションを定義する情報のうちのいくつかまたはすべてを指定することができる。次いで、ボイスアクションは、ボイスアクションが、ボイスアクションをサポートするためにさらなる改変がアプリケーションコードに対して行われることなく、アプリケーションに対してイネーブルにされたボイスアクションになるようにアプリケーションのために配布可能である。
ボイスアクションがいったん配布されると、ユーザデバイスを動作させるユーザは、音声入力を提供することができる。ユーザデバイスは、ユーザデバイスのためのコンテキスト情報を提示することができ、コンテキスト情報および音声入力のトランスクリプションは、意向を識別し、かつ識別された意向をトリガするために使用可能である。意向がトリガされると、アクティビティまたはアクションを実行するためのデータが判定され、かつボイス入力に応答してアクティビティまたはアクションを実行するためにユーザデバイスに送信される。
たとえば、メディアプレイヤーアプリケーションのアプリケーション開発者は、トリガ用語「次を再生(Play Next)」を使用する次の歌にスキップするための新しいボイスアクションを定義することができる。アプリケーション開発者は、「次を再生」ボイスアクションがイネーブルにされるべきであるとき、コンテキストを指定することができる。たとえば、アプリケーション開発者は、メディアプレイヤーアプリケーションがフォアグラウンドで実行されており、メディアプレイヤーアプリケーションをオーディオプレイヤーとして動作させるモードであるとき、「次を再生」ボイスアクションが、メディアプレイヤーアプリケーションに次の歌へのスキップのみを行わせるべきことを指定してもよい。ボイスアクションがアプリケーション開発者によって配布された後、メディアプレイヤーアプリケーションを以前にユーザデバイス上にインストールさせたユーザは、ボイス入力「次を再生」を提示してもよい。ユーザデバイスは、メディアプレイヤーアプリケーションがフォアグラウンドで実行されており、オーディオプレイヤーモードであることを示すコンテキスト情報などのユーザデバイスのステータスまたはユーザデバイス上にインストールされたアプリケーションのステータスを示すコンテキスト情報を提示することができる。ボイス入力「次を再生」およびコンテキストを指定する情報を受信したことに応答して、データは、メディアプレイヤーアプリケーションを次の歌にスキップさせるユーザデバイスに送信可能である。対照的に、ボイス入力は「次を再生」と言うことを判定されたが、コンテキスト情報は、メディアプレイヤーアプリケーションではなく、ソーシャルネットワークアプリケーションがユーザデバイスのフォアグラウンドで実行されていることを示す場合、「次を再生」ボイス入力は、どのような効果ももたない場合がある、またはユーザデバイスにおいて異なる動作を実行させることがある。
本明細書において説明される主題の革新的な態様は、ボイスアクションシステムによって、前記ボイスアクションシステムとは異なるソフトウェアアプリケーションのための新しいボイスアクションを指定するデータを受信することであって、このデータは、新しいボイスアクションを実行するための1つまたは複数の動作と、新しいボイスアクションをトリガするための1つまたは複数のトリガ用語とを含む、受信することと、ボイスアクションシステムによって、少なくとも受信されたデータに基づいて、ソフトウェアアプリケーションのためのコンテキスト的ボイスアクション意向を生成することであって、このコンテキスト的ボイスアクション意向は、ソフトウェアアプリケーションによって受信されたときに、ソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求するデータを含む、生成することと、ボイスアクションシステムによって、コンテキスト的ボイスアクション意向を新しいボイスアクションのための1つまたは複数のトリガ用語と関連付けることというアクションを含み、ボイスアクションシステムは、ソフトウェアアプリケーションをインストールされたデバイスによって取得されたユーザ発話の指示を受信し、ユーザ発話のトランスクリプションは、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定し、この判定に応答して、コンテキスト的ボイスアクション意向をデバイスに提供し、それによりデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求するように構成される、方法において実施されてよい。
これらおよび他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を含んでもよい。さまざまな例では、受信されたデータはコンテキストを指定し、このコンテキストは、新しいボイスアクションがイネーブルにされたときデバイスのステータスまたはソフトウェアアプリケーションのステータスを指定し、コンテキストは、ソフトウェアアプリケーションが、ソフトウェアアプリケーションがインストールされたデバイスのフォアグラウンドで動作していることを指定し、コンテキストは、ソフトウェアアプリケーションが、ソフトウェアアプリケーションがインストールされたデバイスのバックグラウンドで動作していることを指定し、コンテキストは、ソフトウェアアプリケーションが特定のアクティビティを実行していることを指定し、コンテキストは、ソフトウェアアプリケーションが実行している特定のアクティビティが特定のアクティビティ状態であることを指定する。
他の例では、これらおよび他の実施形態は各々、オプションで、コンテキスト的ボイスアクション意向を新しいボイスアクションのためのコンテキストと関連付けることと、ボイスアクションシステムによって、ソフトウェアアプリケーションをインストールされた特定のデバイスのステータスまたは特定のデバイス上にインストールされたソフトウェアアプリケーションのステータスを示すコンテキスト情報を受信することと、このコンテキスト情報が新しいボイスアクションのためのコンテキストを満たすことを判定することと、特定のデバイスによって取得されたユーザ発話のトランスクリプションは、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応すること、およびコンテキスト情報はコンテキスト的ボイスアクション意向に関連付けられたコンテキストを満たすことを判定したことに応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することとを含む特徴を含んでもよく、特定のデバイスのステータスまたは特定のデバイス上にインストールされたソフトウェアアプリケーションのステータスを示すコンテキスト情報を受信することは、ボイスアクションシステムによって特定のデバイスに、特定のコンテキスト情報の要求を提供することと、この要求に応答して特定のコンテキスト情報を受信することとを含む。
さらに他の例では、これらおよび他の実施形態は各々、コンテキスト情報が第2のボイスアクションのためのコンテキストを満たすこと、およびユーザ発話のトランスクリプションが、第2のボイスアクションのための意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定することであって、この第2のボイスアクションに対する意向は、第2のボイスアクションを実行するための1つまたは複数の動作を指定する、判定することと、この判定に応答して、新しいボイスアクションおよび第2のボイスアクションの中からボイスアクションを選択することと、ボイスアクションシステムによって特定のデバイスに、選択されたボイスアクションに関連付けられた意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが、選択されたボイスアクションの1つまたは複数の動作を実行することを要求することとを含む1つまたは複数の特徴を含んでもよく、新しいボイスアクションおよび第2のボイスアクションの中から選択されたボイスアクションを選択することは、新しいボイスアクションまたは第2のボイスアクションのうちの1つのユーザ選択を示すデータを受信したことに応答して、選択されたボイスアクションを選択することを含み、新しいボイスアクションおよび第2のボイスアクションの中から、選択されたボイスアクションを選択することは、新しいボイスアクションおよび第2のボイスアクションの各々にスコアを割り当てることと、少なくとも新しいボイスアクションおよび第2のボイスアクションの各々に割り当てられたスコアに基づいて、選択されたボイスアクションを選択することとを含み、新しいボイスアクションおよび第2のボイスアクションの中から選択されたボイスアクションを選択することは、選択されたボイスアクションに関連付けられたソフトウェアアプリケーションがフォアグラウンドで動作していることを判定したことに応答して、選択されたボイスアクションを選択することを含む。
他の例では、これらおよび他の実施形態は各々、ソフトウェアアプリケーションのためのコンテキスト的ボイスアクション意向を生成することが、新しいボイスアクションの1つまたは複数の動作がソフトウェアアプリケーションによって実行可能であることを判定することを含むことと、ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話のトランスクリプションは、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に類似していることを判定することと、この判定に応答して、ボイスアクションシステムによって特定のデバイスに、ユーザ発話が1つまたは複数のトリガ用語を指定したかどうか、またはソフトウェアアプリケーションに新しいボイスアクションを実行させることが意図されたかどうかを確認するユーザ入力の要求を示すデータを提供することと、この要求に応答して、ボイスアクションシステムによって特定のデバイスから、確認を示すデータを受信することと、確認を示すデータを受信したことに応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することとを含む1つまたは複数の特徴を含んでもよい。
他の例では、これらおよび他の実施形態は各々、ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者から、ソフトウェアアプリケーションのための新しいボイスアクションを配布する要求を受信することと、この要求に応答して、要求に応答したソフトウェアアプリケーションのための新しいボイスアクションを配布することであって、ソフトウェアアプリケーションのための新しいボイスアクションをイネーブルにする、配布することと、ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者から、ソフトウェアアプリケーションのための新しいボイスアクションの配布無効にする要求を受信することと、この要求に応答して、要求に応答したソフトウェアアプリケーションのための新しいボイスアクションの配布を無効にすることであって、ソフトウェアアプリケーションのための新しいボイスアクションをディスエーブルにする、無効にすることとを含む1つまたは複数の特徴を含んでもよい。
他の例では、これらおよび他の実施形態は各々、ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者から、新しいボイスアクションのテストをイネーブルにする要求を受信することであって、この要求は、新しいボイスアクションがイネーブルにされるべき1つまたは複数のデバイスを指定する、受信することと、要求に応答して、1つまたは複数の指定されたデバイスのための新しいボイスアクションをイネーブルにすることであって、この新しいボイスアクションは、指定されたデバイス内に含まれないデバイスに対してディスエーブルにされる、イネーブルにすることと、ボイスアクションシステムによって、ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話の指示を受信することと、ボイスアクションシステムによって、ユーザ発話のトランスクリプションは、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定することと、この判定に応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することとを含む1つまたは複数の特徴を含んでもよい。
本明細書において説明される主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題の他の潜在的な特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
ボイスアクション開発システムおよびサービスのための例示的なシステムを示す図である。 ボイスアクション開発システムおよびサービスを使用して新しいボイスアクションを生成するための例示的なシステムを示す図である。 ボイスアクションを使用するための例示的なシステムを示す図である。 ボイスアクション開発システムおよびサービスに関連付けられた例示的なプロセスのフローチャートである。
さまざまな図面における同じ参照符号は、同じ要素を示す。
図1は、ボイスアクションシステム100の一例を示す。ボイスアクションシステム100は、それによって以前に他のユーザのデバイス上にインストールされたアプリケーションのための新しいボイスアクションをアプリケーション開発者が確立することができるプラットフォームおよびサービスを提供する。その後、アプリケーションをデバイス上にインストールさせたアプリケーションのユーザは、新しいボイスアクションによって指定された特定の動作をアプリケーションに実行させるために、ボイスコマンドを使用することができる。
ボイスアクションシステム100は、アプリケーション開発者101a〜101nによって提示された新しいボイスアクションを定義するデータを端末102a〜102nから受信し、この新しいボイスアクションは、1つまたは複数の異なるアプリケーションのためのものである。ボイスアクションシステム100は、各新しいボイスアクションが妥当なボイスアクションであるかどうかを判定することができる。妥当であると判定された各新しいボイスアクションは、新しいボイスアクションに対応する意向を生成するために帰納可能であり、新しいボイスアクションに対応する意向は、ボイスアクションシステム100のアプリケーションボイスアクションデータベース110に記憶可能である。
たとえば、ボイスアクションシステム100は、新しいボイスアクションを定義するデータを受信して検証する検証エンジンを有してよい。データを検証することは、ボイスアクションを定義するデータのフォーマッティングは要件に適合することを判定することと、新しいボイスアクションは指定されたアプリケーションに適合することを判定することと、またはアプリケーション開発者101a〜101nから受信されたデータに基づいてボイスアクションが確立可能であることを判定することとを含む。ボイスアクションシステム100の指示エンジンは、新しいボイスアクションを定義する検証されたデータを受信することができ、新しいボイスアクションに対応する意向を生成するようにデータに帰納することができる。次いで、意向は、アプリケーションボイスアクションデータベース110に記憶可能である。
アプリケーションボイスアクションデータベース110は、多数の異なるソフトウェアアプリケーション内で実行可能であるアクティビティまたはアクションに関係するボイスアクションを記憶することができる。アプリケーションボイスアクションデータベース110内に含まれるボイスアクションは、アプリケーションが構築されたときにアプリケーション開発者101a〜101nによって提示された内蔵ボイスアクション、ならびにアプリケーションによってサポートされる動作のためのアプリケーションが構築された後にアプリケーション開発者101a〜101nによって提示されたボイスアクションを含んでもよい。
ボイスアクションはまた、オペレーティングシステムによってデフォルトでサポートされるアプリケーション固有ボイスアクションを含むことができる。これらのあらかじめサポートされているボイスアクションは、アプリケーション開発者101a〜101nによってボイスアクションシステム100に提示される必要なくアプリケーション内で実施されることが可能であるボイスアクションであってもよい。たとえば、フォアグラウンドで実行されているタスクまたはアクティビティを終了するためのボイスアクション「アプリケーションの終了(Exit application)」は、任意のアプリケーションに自動的に利用可能であってもよく、アプリケーション開発者101a〜101nが「アプリケーションの終了」ボイスアクションを定義するために情報をボイスアクションシステム100に提示する必要なしに、各アプリケーションに対するアプリケーションボイスアクションデータベース110内に含まれてもよい。
アプリケーションボイスアクションデータベース110に加えて、ボイスアクションシステム100は、特定のアプリケーションまたはコンテキストに関連付けられていないボイスアクションを記憶するオペレーティングシステム(OS)ボイスアクションデータベース120を含むことができる。たとえば、デバイスをロック状態に入らせるボイスアクション「電話機をロック(Lock phone)」は、OSボイスアクションデータベース120内で特定のアプリケーションに関連付けられていないボイスアクションと指定される、または一般にアクセス可能な、すなわち、「デバイスをロック(Lock device)」ボイスアクションが検出されたときのデバイスのステータスに関係のないボイスアクションであってよい。一般に、OSボイスアクションデータベース120において記憶されるボイスアクションは、ユーザデバイス動作環境に対して汎用的であり、サードパーティアプリケーション開発者101a〜101nによって生成される特定のアプリケーションに対しては汎用的でないので、OSボイスアクションデータベース120に記憶されるボイスアクションは、ボイスアクションを定義するアプリケーション開発者101a〜101nに基づいて生成されないボイスアクションである。
ボイスアクションシステム100は、ユーザデバイス104を有するユーザ105が、ユーザデバイス104またはユーザデバイス104上で動作しているアプリケーションによってアクションを実行させるために、口頭ボイス入力をユーザデバイス104に提供することを可能にする。たとえば、ユーザデバイス104を有するユーザ105は、メディアプレイヤーアプリケーションをユーザデバイス104上で実行させ、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで実行されている間、口頭入力「次を再生」を提供する。
口頭入力およびユーザデバイス104上で実行されているアプリケーションのステータスを含むユーザデバイス104のステータスを指定するコンテキスト情報に対応するオーディオデータが、ボイスアクションシステム100に送信される。具体的には、図1に示される例の場合、ボイス入力「次を再生」に対応するオーディオデータは、ボイスアクションシステム100の音声認識エンジン130によって受信され、ユーザデバイス104のステータスを示すコンテキスト情報は、ボイスアクションシステム100のコンテキスト解析エンジン140によって受信される。コンテキスト情報は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで実行されていること、メディアプレイヤーアプリケーションが現在オーディオプレイヤーモードであることを示してもよく、ユーザデバイス104およびユーザデバイス104上にインストールされたアプリケーションのステータスについての他の情報を示してもよい。
音声認識エンジン130は、ボイス入力に対応するオーディオデータを受信し、ボイス入力のトランスクリプションを生成して、そのボイス入力のトランスクリプションをボイスアクション選択器150に提供する。コンテキスト解析エンジン140は、コンテキスト情報をユーザデバイス104から受信し、コンテキスト情報を処理して、関連するコンテキスト情報を判定する。たとえば、コンテキスト解析エンジン140は、コンテキスト情報を解析して、ユーザデバイス104上にインストールされたアプリケーションを識別し、それらのアプリケーションの各々に関連付けられたメタデータは、アプリケーションに利用可能なボイスアクションおよびボイスアクションのうちのどれが所与のデバイスステータスに対してイネーブルにされてもよいかを判定することに関連のあるコンテキスト情報を指定してもよい。いくつかの例では、解析に基づいて、コンテキスト解析エンジン140は、どのボイスアクションがユーザデバイス104の特定のステータスに対してイネーブルにされるべきかを識別するためにさらなるコンテキスト情報が必要であることを判定してもよく、そのため、コンテキスト解析エンジン140は、さらなるコンテキスト情報をユーザデバイス104に要求してもよい。コンテキスト解析エンジン140は、処理されたコンテキスト情報をボイスアクション選択器150にフォワーディングする。
たとえば、図1に示されるように、音声認識エンジン130は、ボイス入力「次を再生」に対応するオーディオデータを受信してよく、ボイス入力のトランスクリプションを取得してもよい。コンテキスト解析エンジン140は、メディアプレイヤーアプリケーションがフォアグラウンドで実行されていること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していることを指定し、ユーザデバイス104についての他の情報を指定するコンテキスト情報をユーザデバイス104から受信する。たとえば、コンテキスト情報は、ソーシャルネットワークアプリケーションがユーザデバイス104のバックグラウンドで動作していること、およびユーザデバイス104のバッテリ寿命が現在50%であることも示してもよい。コンテキスト解析エンジン140は、ユーザデバイス104がメディアプレイヤーとソーシャルネットワークアプリケーションの両方をインストールさせたことを示す情報を受信してもよく、メディアプレイヤーアプリケーションもソーシャルネットワークアプリケーションも、デバイスバッテリ寿命を示すコンテキスト情報に基づいて、ボイスアクションをイネーブルにしないことを判定してもよい。したがって、コンテキスト解析エンジン140は、メディアプレイヤーアプリケーションがユーザデバイス104のフォアグラウンドで動作していること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードであること、およびソーシャルネットワークアプリケーションがユーザデバイス104のバックグラウンドで動作していることのみを示すように、コンテキスト情報をフィルタリングしてもよい。次いで、フィルタリングされたコンテキスト情報およびボイス入力「次を再生」のトランスクリプションが、ボイスアクション選択器150に提供されてもよい。
ボイスアクション選択器150は、口頭入力のトランスクリプションを音声認識エンジン130から、処理されたコンテキスト情報を含むコンテキストをコンテキスト解析エンジン140から受信する。ボイスアクション選択器150は、トランスクリプションおよびコンテキストを使用して、ユーザデバイス104においてトリガする特定のボイスアクションに関連付けられた特定の意向を識別する。たとえば、ボイスアクション選択器150は、アプリケーションボイスアクションデータベース110およびOSボイスアクションデータベース120にアクセスして、ユーザデバイス104の現在のコンテキストに対してイネーブルにされたボイスアクション候補のセットを識別することができる。ボイスアクション候補のセットを識別することは、ボイスアクション選択器150によって受信されたコンテキストに合致するコンテキストを指定するアプリケーションボイスアクションデータベース110またはOSボイスアクションデータベース120において記憶された意向のセットを識別することを含むことができる。
この示されたコンテキストに対してイネーブルにされたボイスアクション候補のセットを識別して、ボイスアクション選択器150は、ボイス入力のトランスクリプションをイネーブルにされたボイスアクションの各々に関連付けられた1つまたは複数のトリガフレーズと比較することができる。一般に、トリガフレーズは、1つまたは複数のトリガ用語を含むことができ、ボイスアクションの識別子として動作し、したがって、特定のトリガフレーズの1つまたは複数の用語の検出は、特定のトリガフレーズに対応するボイスアクションの識別およびトリガリングをもたらす。たとえば、ボイスアクション選択器150は、トランスクリプションをイネーブルにされたボイスアクションの意向に関連付けられたそれぞれのトリガフレーズと比較することができる。ボイスアクション選択器150は、トランスクリプションが、特定のボイスアクションに関連付けられた意向によって指定されたトリガ用語に合致することを判定したことに基づいて、特定のボイスアクションのための特定の意向を識別する。
たとえば、ボイスアクション選択器150は、ボイス入力「次を再生」のトランスクリプションおよびユーザデバイス104のためのコンテキストを受信することができ、受信したコンテキストを使用して、ユーザデバイス104において開始することになるボイスアクション候補、すなわち、ユーザデバイス104の現在のステータスに基づいてユーザデバイス104において開始可能なボイスアクションを識別することができる。ユーザデバイス104のコンテキストのためのボイスアクション候補のセットを判定した後、ボイスアクション選択器150は、ボイス入力「次を再生」のトランスクリプションをボイスアクション候補の意向によって指定されたトリガフレーズと比較する。ボイスアクション選択器150は、トランスクリプション「次を再生」が、メディアプレイヤーアプリケーションのための「次を再生」ボイスアクションの意向によって指定されたトリガフレーズに合致することを判定することができる。
トランスクリプションは、少なくともトランスクリプションの一部分がトリガフレーズの1つまたは複数の用語に合致することを判定したことに基づいて、トリガフレーズに合致すると識別される。たとえば、トランスクリプションとトリガフレーズの合致は、トランスクリプションの用語の各々がトリガフレーズの用語の各々に合致することに基づいて識別されてもよい。いくつかの実装形態では、合致は、トランスクリプションの用語の一部がトリガフレーズの用語に合致することを判定したことに基づいて、識別されてもよい。たとえば、トランスクリプションは、トリガフレーズの用語のうちのいくつかがトランスクリプションにない場合、トランスクリプションがトリガフレーズの用語に加えて用語を含む場合、またはトランスクリプションの1つもしくは複数の用語がトリガフレーズの用語とは異なる場合でさえ、トリガフレーズに合致してもよい。したがって、「新しい電子メール(New email)」、「新しい電子メールの送信(Send new email)」、または「新しい電子メールの開封(Open up new email)」トランスクリプションの各々は、トランスクリプションの各々はトリガフレーズに正確に合致するのに失敗しなかったにもかかわらず、「新しい電子メールを開く(Open new email)」トリガフレーズに合致すると識別されてもよい。いくつかの例では、トランスクリプションが、トリガフレーズによって指定された順序と異なる順序でトリガフレーズの用語のうちのいくつかまたはすべてを含む場合、トランスクリプションは、トリガフレーズに合致すると識別されてもよい。たとえば、トランスクリプション「電話機をロック」は、「電話機のロック(Phone lock)」トリガフレーズに合致すると識別されてもよい。いくつかの例では、トランスクリプションは、トランスクリプションがトリガフレーズの用語に関する1つまたは複数の類義語または代替用語を含むことを判定したことに基づいて、トリガフレーズに合致すると識別されてもよい。したがって、「下書き(draft)」は「書く(write)」の類義語であり、「開く(open)」は「書く」に関する代替用語と識別されることに基づいて、トランスクリプション「新しい電子メールを下書き(Draft new email)」または「新しい電子メールを開く」は、「新しい電子メールを書く(Write new email)」トリガフレーズに合致すると識別されてもよい。
特定のボイスアクションを識別したので、ボイスアクション選択器150は、特定のボイスアクションに関連付けられたアクティビティまたはアクションを開始させるアクショントリガデータをユーザデバイス104に提供する。そうするために、ボイスアクション選択器150は、選択されたボイスアクションに関連付けられたアクションまたはアクティビティを実行するようにユーザデバイス104を制御するための情報を取得することができる。いくつかの例では、選択されたボイスアクションに関連付けられたアクションまたはアクティビティを実行するようにユーザデバイス104を制御することは、選択されたボイスアクションの意向を始動することを含むことができる。選択されたボイスアクションの意向を始動することによって、選択されたボイスアクションに関連付けられたアクティビティまたはアクションを開始するための情報が、ユーザデバイス104に提供させられてもよい。
たとえば、選択されたボイスアクションのための意向は、ボイスアクションに関連付けられたアクションまたはアクティビティをボイスアクションに関連付けられたアプリケーションによって実行させるデータを含むことができる。選択された意向は、ユーザデバイス104に送信可能であり、したがって、ユーザデバイス104による意向の受信は、要求として機能することができる、またはボイスアクションに関連付けられたアクションまたはアクティビティの実行をトリガすることができる。あるいは、ボイスアクション選択器150は、選択されたボイスアクションをユーザデバイス104において実行させるアクショントリガデータとして動作するための他のデータを決定することができ、情報をユーザデバイス104に送信することができる。たとえば、意向は、ボイスアクションを実行するためにユーザデバイス104によって実行されることになるアクションまたはアクティビティを識別するのみであってもよく、ボイスアクション選択器150は、ボイスアクションに関連付けられたアクションまたはアクティビティを実行するようにユーザデバイス104上のアプリケーションを制御できるアクショントリガデータを決定することができる。決定されたアクショントリガデータは、アクショントリガデータが、ボイスアクションに関連付けられたアクションまたはアクティビティを実行させるように、ユーザデバイス104に送信可能である。
たとえば、「次を再生」ボイスアクションをボイスアクション候補のセットの中から選択した後、ボイスアクション選択器150は、「次を再生」ボイスアクションのための意向をユーザデバイス104に送信する、または次の歌にスキップするようにユーザデバイス104上で実行されているメディアプレイヤーアプリケーションを制御するための他の情報を取得する。ボイスアクション選択器150は、次の歌にスキップするようにメディアプレイヤーアプリケーションを制御するためのデータをユーザデバイス104に送信し、ユーザデバイス104は、ユーザデバイス104上で実行されているメディアプレイヤーアプリケーションが次の歌にスキップする、たとえば、David Bowieの歌"Fame"にスキップするプロセスを開始する。
簡単に言えば、説明したように、図1のシステムは、1つまたは複数のアプリケーション開発者101a〜101nに対応する1つまたは複数の端末102a〜102nを含む。端末102a〜102nは各々、たとえば、1つまたは複数のワイヤードネットワークまたはワイヤレスネットワークを通じて、ボイスアクションシステム100と通信することができる。端末102a〜102nの各々は、セルラー電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ネットブックコンピュータ、または他のモバイルコンピューティングデバイスなどのモバイルデバイスであってもよく、またはデスクトップコンピュータもしくは他の固定コンピュータなどの任意の固定コンピューティングデバイスであってもよい。ユーザ105に関連付けられたユーザデバイス104はまた、1つまたは複数のワイヤードネットワークまたはワイヤレスネットワークを通じてボイスアクションシステム100と通信することができ、ユーザデバイス104は、セルラー電話、スマートフォン、タブレットコンピュータ、ネットブック、携帯情報端末、ラップトップコンピュータ、デスクトップコンピュータ、または他のコンピューティングデバイスなどのモバイルコンピューティングデバイスまたは固定コンピューティングデバイスであってもよい。
図1に示される例示的なボイスアクションシステム100は、アプリケーションボイスアクションデータベース110と、オペレーティングシステム(OS)ボイスアクションデータベース120と、音声認識エンジン130と、コンテキスト解析エンジン140と、ボイスアクション選択器150とを含む。アプリケーションボイスアクションデータベース110とOSボイスアクションデータベース120と音声認識エンジン130とコンテキスト解析エンジン140とボイスアクション選択器150とを含むボイスアクションシステム100の構成要素の各々は、電子通信の交換を可能にする1つまたは複数のワイヤードデータ経路またはワイヤレスデータ経路を通じてボイスアクションシステム100の1つまたは複数の他の構成要素と通信してもよい。いくつかの実装形態では、ボイスアクションシステム100の構成要素のうちの1つまたは複数は、機能が単一の構成要素によって実行されるように組み合わされてもよく、機能が2つ以上の構成要素にわたって分散されるように2つ以上の構成要素によって表されてもよい。ボイスアクションシステム100の構成要素は、単一サーバシステムなどの単一のコンピューティングデバイス上で実施されてもよく、構成要素間の電子通信の交換を可能にする1つまたは複数のワイヤードデータ経路またはワイヤレスデータ経路を通じて通信する複数のコンピューティングデバイス上で実施されてもよい。
図2は、1つまたは複数のユーザデバイス上にインストールされたアプリケーションのための新しいボイスアクションをアプリケーション開発者が生成することを可能にする例示的なシステムを示す。たとえば、アプリケーションがリリースされ、1つまたは複数のユーザデバイスにダウンロードされた後、アプリケーション開発者は、ボイスアクション開発サービスを使用して新しいボイスアクションを定義することができる。ボイスアクション開発サービスは、アプリケーション自体に対する修正を必要とすることなくアプリケーションのための新しいボイスアクションを可能にするために、新しいボイスアクションを配布することができる。
簡単に言えば、図2は、端末202に関連付けられたアプリケーション開発者201にボイスアクション開発サービスを提供する開発者ボイスアクションシステム200を示す。端末202は、端末202が電子通信を開発者ボイスアクションシステム200と交換することを可能にする、ワイヤードインターネット接続またはワイヤレスインターネット接続などの1つまたは複数のワイヤードネットワーク接続またはワイヤレスネットワーク接続を通じて開発者ボイスアクションシステム200と通信してもよい。開発者ボイスアクションシステム200は、検証基準データベース215と通信する検証エンジン210を含む。開発者ボイスアクションシステム200は、アプリケーションメタデータバックエンド225およびアプリケーションボイスアクションデータベース230と通信する文法帰納エンジン220をさらに含む。アプリケーションボイスアクションデータベース230は、図1のアプリケーションボイスアクションデータベース110に類似してもよく、アプリケーションのための新しいボイスアクションを定義するためにアプリケーション開発者によって提示されたまたは新しいボイスアクションを定義するアプリケーション開発者によって提示された情報に基づいた文法から生成された意向を記憶することができる。いくつかの実装形態では、新しいボイスアクションを確立するためにサービスをアプリケーション開発者に提供する開発者ボイスアクションシステム200は、図1のボイスアクションシステム100の一部であってもよい。いくつかの実装形態では、開発者ボイスアクションシステム200の構成要素によって実行される動作は、開発者ボイスアクションシステム200の異なる構成要素によって実行可能である。開発者ボイスアクションシステム200は、開発者ボイスアクションシステム200によって実行されたときに説明される動作を実行するために、より多い構成要素を備えてもよく、より少ない構成要素を備えてもよく、異なる構成要素を備えてもよい。
図2に示されるように、アプリケーション開発者201は、新しいボイスアクションを定義する情報を端末202を使用して開発者ボイスアクションシステム200に提示することができる。たとえば、端末202は、開発者ボイスアクションサービスのためのアプリケーションを含んでもよく、端末202は、たとえば、インターネットを通じてウェブサイトにおける開発者ボイスアクションサービスにアクセスすることによって、ネットワーク接続を通じて開発者ボイスアクションサービスに遠隔でアクセスすることが可能であってもよい。他の実装形態では、開発者ボイスアクションサービスは、端末202が端末202と開発者ボイスアクションシステム200との間のネットワーク接続を通じて開発者ボイスアクションシステム200における開発者ボイスアクションサービスにアクセスすることができるように、開発者ボイスアクションシステム200によってホストされてもよい。
特定のアプリケーションのための新しいボイスアクションを実施するために、アプリケーション開発者201は、新しいボイスアクションを定義する新しい文法を開発者ボイスアクションシステム200に提示することができ、または新しいボイスアクションを定義する他の情報を開発者ボイスアクションシステム200に提示することができる。図2に示される例では、新しいボイスアクションを実施するために、アプリケーション開発者201は最初に、1つまたは複数のユーザデバイス上に既にインストールされているメディアプレイヤーアプリケーションのための新しいボイスアクションを定義する。そうするために、アプリケーション開発者201は、メディアプレイヤーアプリケーションのための新しいボイスアクションを定義する文法を提示する。アプリケーション開発者201によって提示された文法は、アプリケーション、すなわちメディアプレイヤーアプリケーション、新しいボイスアクションに関連付けられたことになるトリガフレーズ「次を再生」、「次を再生」トリガフレーズを検出したことに応答して実行されることになる、すなわち次の歌にスキップすることになるアクション、ならびに新しいボイスアクションがイネーブルにされたときのためのコンテキスト、すなわち、メディアプレイヤーアプリケーションはユーザデバイスのフォアグラウンドで動作していなければならないこと、およびメディアプレイヤーアプリケーションはオーディオプレイヤーモードでなければならないことを指定する。
アプリケーション開発者201によって提示された文法は、アプリケーション開発者201が、ボイスアクション意向のために開発者ボイスアクションシステム200によって使用される具体的なデータフォーマットに精通していなくても、新しいボイスアクションを容易に定義することを可能にする特定のフォーマットであってよい。他の実装形態では、アプリケーション開発者201は、検証エンジン210または開発者ボイスアクションシステム200の別の構成要素によって受信され、新しいボイスアクションを定義する文法を生成するために翻訳可能な他の情報を提示することができる。たとえば、アプリケーション開発者201には、アプリケーション開発者201が新しいボイスアクションを定義するために記入することができるフィールドを含む形式が示されてもよい。この形式は、アプリケーション開発者201が新しいボイスアクションについての情報、たとえば、アプリケーション、新しいボイスアクションのためのトリガフレーズ、およびこのトリガフレーズに応答してアプリケーションによってまたはこれに関して実行されることになるアクションまたはアクティビティを指定することを可能にしてもよい。この形式は、アプリケーション開発者201が、イネーブルにされることになる新しいボイスアクション、すなわち、ユーザがトリガフレーズを使用してトリガすることができるボイスアクション候補になることになるボイスアクションのためのユーザデバイスの特定のステータスまたはユーザデバイス上で動作する1つもしくは複数のアプリケーションの特定のステータスを必要とするコンテキストを提供することができる。新しいボイスアクションを定義するために必要なまたはオプションでそのために使用される他の情報も、形式において入力されてもよい。アプリケーション開発者201によって提供される形式フィールド内のエントリは、開発者ボイスアクションシステム200への提示のために文法に変換されてもよく、エントリは、開発者ボイスアクションシステム200によって受信され、開発者ボイスアクションシステム200において文法に変換されてもよい。あるいは、アプリケーション開発者201は、ボイスアクション開発者システム200に提示される文法フォーマットを使用して、またはデリミタ区切り値(DSV:delimiter-separated value)フォーマットなどの別のフォーマットを使用して、必要な情報を入力することによって新しいボイスアクションを定義してもよい。
いくつかの実装形態では、新しいボイスアクションは、ユーザデバイス上で動作するソフトウェアアプリケーション内で1つまたは複数の動作を実行するために開発されてもよく、全体的にユーザデバイスに関して1つまたは複数の動作を実行するために(すなわち、ユーザデバイスのハードウェアを制御するために)開発されてもよく、ユーザデバイスの外部にあるアプリケーション(すなわち、異なるデバイス上で動作するアプリケーション)を制御するために開発されてもよく、ユーザデバイスの外部にある別のデバイスを制御するために開発されてもよい。たとえば、アプリケーション開発者201は、ユーザデバイス上の特定のアプリケーション(たとえば、ソーシャルネットワークアプリケーションまたはメディアプレイヤーアプリケーション)を制御するために新しいボイスアクションを定義する文法を提供してもよく、ユーザデバイスを制御するために(たとえば、デバイスのスクリーンの方向を変更するために、またはデバイスの電源を切断するために)新しいボイスアクションを定義する文法を提供してもよく、異なるデバイス上で動作するアプリケーションを制御するために(たとえば、ユーザデバイスの外部にあるケーブルテレビジョンボックス上で動作するケーブルテレビジョンソフトウェアを制御するために)新しいボイスアクションを定義する文法を提供してもよく、ユーザデバイスとは別個の別のデバイスを制御するために(たとえば、ユーザデバイスに提供されたボイス入力を使用してガレージドアを制御するために)新しいボイスアクションを定義する文法を提供してもよい。いくつかの実装形態では、ボイスアクションは、ボイスアクションをトリガすることによって2つ以上の異なるアクションまたはアクティビティが2つ以上の異なるアプリケーションまたはデバイスにおいて実行させられるように定義可能である。
アプリケーション開発者201によって指定されたコンテキストは、ボイスアクションがイネーブルにされることになるために満たされなければならない、すなわち、コンテキストも満たされない限り、ボイスアクションに関連付けられたトリガフレーズによってボイスアクションがトリガされないように、1つまたは複数の状況を識別する。アプリケーション開発者201は、コンテキストを1つまたは複数の異なる要件または状況を有すると定義することができる。
いくつかの例では、アプリケーション開発者201によって提示されたコンテキストは、ユーザデバイスの電源が投入されているまたはユーザデバイスがロックされているかどうか、ユーザデバイスがカメラ、ジャイロスコープ、気圧計、または他の構成要素もしくは特徴を有するかどうかなどのユーザデバイスのステータスまたは属性を指定してもよい。したがって、たとえば、ユーザデバイス上にインストールされたアプリケーションを使用して写真を撮影するためのボイスアクションは、ユーザデバイスから受信されたコンテキスト情報がユーザデバイスにカメラがないことを示す場合、イネーブルにされなくてもよい。
他の例では、コンテキストは、特定のアプリケーションがユーザデバイスのフォアグラウンドまたはバックグラウンドで動作していることを必要としてもよい。たとえば、図2に示されるように、「次を再生」ボイスアクションは、メディアプレイヤーアプリケーションがユーザデバイス204のフォアグラウンドで動作しているときのみイネーブルにされてもよいが、メディアプレイヤーアプリケーションが閉じられているまたはユーザデバイス204のバックグラウンドで動作している場合はイネーブルにされなくてもよい。他の例では、ボイスアクションは、アプリケーションがバックグラウンドで動作しているときボイスアクションをイネーブルにするコンテキストとともに定義されてもよい。たとえば、ソーシャルネットワークアプリケーションは、別のユーザと接続したいという要求を受理するために関連付けられたボイスアクションを有してもよく、ユーザは、ソーシャルネットワークアプリケーションがユーザデバイスのバックグラウンドでのみ動作している場合でも別のユーザと接続したいという要求を受理するためにボイスアクションをトリガすることができてもよい。
コンテキストは、加えてまたはあるいは、特定のアプリケーションがイネーブルにされることになるボイスアクションのための特定のモードで動作されていることを必要としてもよい。モードは、アプリケーションが実行している特定のアクティビティまたはタスクであってもよい。たとえば、電子メールアプリケーションは、電子メール書き込みモードであると判定されてもよく、メディアプレイヤーアプリケーションは、オーディオプレイヤーモードであると判定されてもよく、またはカメラアプリケーションは、カメラモードもしくはフォトアルバムビューアモードであると判定されてもよい。ユーザデバイスは、特定のアプリケーションがモードのうちのどれで動作しているか判定することができてもよく、特定のボイスアクションがイネーブルにされたかどうかを判定するために使用されるコンテキスト情報内にその情報を含んでもよい。
加えて、いくつかの例では、コンテキストは、アプリケーションモードがあるステータスを有することを必要としてもよい。たとえば、コンテキストは、映画を「一時停止する」ためのボイスアクションは、メディアプレイヤーアプリケーションが映画プレイヤーモードであるとき、および映画プレイヤーモードでのアプリケーションのステータスが、アプリケーションが現在映画を上映していることであるときのみイネーブルであってもよいことを示してよい。いくつかの例では、ユーザデバイスは、特定のモードで動作するアプリケーションのステータスを決定することができなくてもよい。それらの例では、特定のモードにあるアプリケーションのステータスを示す情報を提供するようにアプリケーションを構成することが必要とされてもよい。したがって、特定のアプリケーションのためのコンテキストにおけるそのような条件を指定することは、ユーザデバイスによって提供されるコンテキスト情報が必要とされるステータス情報を含むために、アプリケーション自体に対する修正を必要としてもよい。
いくつかの例では、ボイスアクションのために指定されるコンテキストは、ボイスアクションを可能にするために特定の物体または物体のタイプがユーザデバイスのスクリーン上に表示されることを必要としてもよい。たとえば、コンテキストは、画像がユーザデバイスのディスプレイに出力されている場合のみ「画像を保存(Save image)」ボイスアクションがイネーブルにされることを指定してもよく、テキストがディスプレイ上に示される場合のみ「強調(highlight)」ボイスアクションが使用可能であることを指定してもよい。別の例では、「第1のものを選ぶ」ためのボイスアクションなどのリスト内の特定の項目を選択するためのボイスアクションは、コンテキスト情報が、数字"1"もしくは中点がユーザデバイスのディスプレイ上に示されていることを示す場合、またはディスプレイ上に示されている項目のリストがある場合のみ使用可能であってもよい。いくつかの例では、ユーザデバイスは、所与の瞬間に、たとえば、アプリケーションがディスプレイを制御するとき、何の情報がディスプレイに示されているかを判定することが可能でなくてもよい。したがって、コンテキストが、ボイスアクションがイネーブルにされるために、ある情報または情報のタイプがディスプレイに出力されなければならないことを指定する場合、その情報を提供するようにアプリケーションを修正することが必要であってもよい。次いで、ユーザデバイスは、ユーザデバイスのディスプレイに何が出力されているかを示す情報を特定のボイスアクションがイネーブルにされるべきかどうかを判定するために使用されるコンテキスト情報内に含むことができる。
他の例では、コンテキストは、通知または特定のタイプの通知がユーザデバイスに出力されたことを必要としてもよい。たとえば、新しい電子メールが受信されたときにユーザにポップアップ通知を提供する電子メールアプリケーションは、新しい電子メール通知がアプリケーションによってユーザデバイスのディスプレイに出力されているときにイネーブルにされる「電子メールを読む(Read email)」に関連付けられたボイスアクションをもってもよい。したがって、コンテキスト情報は、通知がユーザデバイスのディスプレイに出力されているかどうかを示してもよく、その情報は、「電子メールを読む」ボイスアクションがイネーブルにされるべきかどうかを判定する際に使用されてもよい。
いくつかの例では、コンテキストは、ボイスアクションがイネーブルにされるためにユーザデバイスが特定の地理的ロケーション内にあることを必要としてもよい。ユーザデバイスは、セルラータワー三角測量を使用して、その地理的ロケーションを決定することが可能であってもよく、特定の地理的ロケーションに関連付けられたインターネット接続にアクセスすることに基づいて、その地理的ロケーションを決定することが可能であってもよく、全地球測位システム(GPS)技術を使用して、その地理的ロケーションを決定することが可能であってもよく、他の手段を使用して、その地理的ロケーションを決定することが可能であってもよい。ユーザデバイスは、その地理的ロケーションを示す情報をコンテキスト情報内に含んでもよく、ボイスアクションは、コンテキストのジオロケーション要件を満たす地理的ロケーションに基づいてイネーブルにされてもよい。一例として、小売業者のアプリケーションのためのボイスアクションに関連付けられたコンテキストは、小売業者アプリケーションを有するユーザデバイスが小売業者の店舗のうちの1つの範囲内にある場合のみあるボイスアクションが処理されるべきであることを指定してもよい。小売業者アプリケーションのためのボイスアクションは、ユーザデバイスの地理的ロケーションが小売業者の店舗のうちの1つの範囲内の地理的ロケーションに対応することを示す、ユーザデバイスからのコンテキスト情報に基づいてイネーブルにされてもよい。
アプリケーション開発者によって定義されたコンテキストは、コンテキストに関連付けられたボイスアクションが、ある一定の時間、日、月、季節の間、または他の時間的条件が満たされたときのみイネーブルにされることも示すことができる。たとえば、コンテキストは、あるボイスアクションが、ユーザデバイスからまたは別の情報ソースから受信されたコンテキスト情報が時間条件を満たす場合のみイネーブルにされることを指定してもよい。たとえば、バンキングアプリケーションのためのボイスアクションは、時間条件を含むコンテキストに関連付けられてもよく、したがって、ボイスアクションは、コンテキスト情報が、ボイスアクションが提示された時間が午前6:00から午後10:00の間であることを示す場合のみイネーブルにされる。
コンテキストは、ボイスアクションがイネーブルにされるための他の要件を指定してもよい。たとえば、開発者ボイスアクションシステム200は、ユーザデバイス以外のソースからの情報へのアクセスを有してもよく、1つまたは複数の情報ソースから取得された情報をユーザデバイスから受信することが可能であってもよい。他のソースから受信された情報は、ボイスアクションをイネーブルにするために必要とされるコンテキスト情報であってもよい。そのような情報は、たとえば、天気情報、ユーザにとって感動的な情報、ニュース情報、株式市場情報、または他の情報を含むことができる。たとえば、開発者ボイスアクションシステム200は、1つまたは複数のワイヤードネットワーク接続またはワイヤレスネットワーク接続、たとえば、インターネット接続またはサーバシステムへの他のネットワーク接続を通して、他の情報ソースにアクセスすることが可能であってもよい。ボイスアクションのためのコンテキストは、ボイスアクションが、関連ユーザデバイスのロケーションに対応する地理的エリアのための天気情報がそのロケーションで雨が降っていることを示す場合のみイネーブルにされることを指定してもよい。コンテキスト条件が満たされているかどうかチェックするために、開発者ボイスアクションシステム200は、1つまたは複数のネットワーク接続を通じてユーザデバイスの既知のロケーションのための天気情報にアクセスすることが可能であってもよい。
アプリケーション開発者201によって提示された新しいボイスアクションを定義する文法または他の情報は、端末202からネットワークを通じて開発者ボイスアクションシステム200に提示可能である。提示された文法は、開発者ボイスアクションシステム200において検証エンジン210によって受信される。アプリケーション開発者201が、ボイスアクションを定義するが文法フォーマットでない情報を開発者ボイスアクションシステム200に提示する場合、開発者ボイスアクションシステム200は、新しいボイスアクションを定義する情報を文法に変換してもよい。検証エンジン210は、文法を解析して、提示された文法が新しいボイスアクションのための意向へと帰納可能であるかどうかを判定する。たとえば、検証エンジン210は、文法によって指定されたトリガフレーズが妥当なトリガフレーズかどうか判定することが可能であってもよく、文法によって指定されたアクティビティが指定されたアプリケーションによって実行可能であるかどうか判定することができ、提示された文法のフォーマットが構文的に妥当であるかどうか判定することができ、文法によって指定されたコンテキストが妥当であるかどうか判定することができ、または提示された文法が、新しいボイスアクションのための意向を生成するために帰納可能である妥当な文法であるかどうか別の方法で判定することができる。検証を実行するために、検証エンジン210は、文法を検証するために使用されるルールを含む検証基準データベース215にアクセスしてもよい。
たとえば、検証エンジン210は、メディアプレイヤーアプリケーションのための新しいボイスアクションを指定する文法を受信する。文法は、トリガフレーズ「次を再生」と、トリガフレーズ「次を再生」はメディアプレイヤーアプリケーションを次の歌にスキップさせるべきであることと、メディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであるとき、新しいボイスアクションがイネーブルにされるべきであることを指定するコンテキストを指定する。検証エンジン210は、検証基準データベース215における検証ルールにアクセスし、そのルールに基づいて、受信された文法を検証することができる。たとえば、検証エンジン210は、指定されたアプリケーションに対して新しいボイスアクションが作成可能であるように、メディアプレイヤーアプリケーションが既存のアプリケーションであるかどうか判定してもよい。検証エンジン210は、トリガフレーズは長さが複数の口頭音節でなければならないことを指定するルールにアクセスしてもよく、トリガフレーズ「次を再生」が1つの口頭音節よりも長いことを判定したことに基づいてトリガフレーズ「次を再生」を検証してもよい。検証ルールは、メディアプレイヤーアプリケーションが実行することができる可能なアクションのリストを指定してもよく、次の歌にスキップすることは、検証エンジン210が実行可能である動作であることを判定したことに基づいて、次の歌にスキップするように指定されたアクションを検証してもよい。検証エンジン210は、コンテキストが矛盾を含まないことを保証するために、文法によって指定されたコンテキストを検証してもよい。たとえば、検証エンジンは、指定されたコンテキストが、フォアグラウンドで動作すること、および新しいボイスアクションがイネーブルにされるためにバックグラウンドで動作することもアプリケーションに要求しないことを保証してもよいが、それは、それら2つの条件のうちの1つのみが満たすことが可能であるからである。他の検証基準は、アプリケーション開発者201によって提示された文法が妥当であるかどうかを判定するために、受信された文法に適用されてもよい。
他の形式の検証が、検証エンジン210によって実行されてもよい。たとえば、検証エンジン210は、アプリケーション開発者201が、指定されたアプリケーションのための新しいボイスアクションを生成するように許可されているかどうかを判定してもよく、新しいボイスアクションを生成するために必要とされる料金が支払われたかどうかを判定してもよく、アプリケーション開発者201によって提示された文法が新しいボイスアクションのための意向の作成をもたらしてもよいかどうかを別の方法で判定してもよい。
検証エンジン210によって実行された検証の結果に基づいて、文法が妥当であるかどうかを示すフィードバックがアプリケーション開発者201に提供可能である。検証エンジン210が、文法が妥当でないことを判定した場合、検証エンジン210は、文法が妥当でないことを示し、アプリケーション開発者201が文法を訂正することを要求する情報を端末202に出力させてもよく、アプリケーション開発者201が文法を訂正することができるやり方を提案してもよい。たとえば、文法が、指定されたアプリケーションによって実行できないアクションを指定するので、文法が妥当でないと判定された場合(たとえば、文法が、新しいボイスアクションはメディアプレイヤーアプリケーションに新しい電子メールを開かせるべきであることを指定した場合)、検証エンジン210は、文法が、指定されたアプリケーションに適合しないアクションを指定することを示す情報を端末202に出力させてもよく、アプリケーション開発者201が、指定されたアクションまたは指定されたアプリケーションのどちらかを変更することによって文法を訂正してもよいことを指定してもよい。提示された文法が妥当である場合、検証エンジン210は、提示された文法が妥当であるという指示を提供してもよい。
加えて、検証エンジン210は、さらなる入力をアプリケーション開発者201に要求してもよい。たとえば、文法が妥当であると判定された場合、検証エンジン210は、アプリケーション開発者201が新しいボイスコマンドの生成を続けることを希望することを確認しない限り、新しいボイスコマンドのための意向が文法から生成されないように、新しいボイスコマンドの生成を続ける選択肢をアプリケーション開発者201に示してもよい。これによって、アプリケーション開発者201が、文法帰納または新しいボイスアクションの配布を続ける必要なく、文法を開発者ボイスアクションシステム200に適切に提示しているかどうか判定することが可能にされてもよい。
アプリケーション開発者201によって提示された文法が検証されたこと、およびオプションで、アプリケーション開発者201が、ボイスアクション生成プロセスが続行されるべきであることを示す入力を提供することに基づいて、文法は、検証エンジン210によって文法帰納エンジン220に提供可能である。文法帰納エンジン220は、新しいボイスアクションのための意向を生成するように受信された文法を帰納することができる。生成された意向は、新しいボイスアクションを定義する文法内に含まれる情報を指定することができる。たとえば、文法帰納エンジン220は、アプリケーション、トリガフレーズ、トリガフレーズを検出したことに応答して実行するためのアクションまたはアクティビティ、および新しいボイスアクションのために指定されたコンテキストのうちの1つまたは複数を指定する意向データ構造のインスタンスを生成するように、受信された文法を帰納することができる。文法帰納エンジン220は、新しいボイスアクションのための意向をアプリケーションボイスアクションデータベース230において記憶することができる。
たとえば、図2に示されるように、文法帰納エンジン220は、検証エンジン210によって検証された、アプリケーション開発者201によって提示された文法を受信することができる。文法帰納エンジン220は、受信された文法に基づいて、新しいボイスアクションのための新しい意向である「意向Y」を生成することができる。意向を生成するために、文法帰納エンジン220は、意向データ構造の新しいインスタンスを生成してもよく、メディアプレイヤーアプリケーションを指定する情報、トリガフレーズ「次を再生」を指定する情報、メディアプレイヤーアプリケーションにおいて「次を再生」ボイスアクションが次の歌へのスキップに関連付けられるべきであることを指定する情報、およびメディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードで動作しているとき、「次を再生」ボイスアクションがイネーブルにされるべきであることを示すコンテキストを指定する情報を含む、受信された文法内に含まれる情報を用いて、意向データ構造にデータを格納し(populate)てもよい。
新しい「意向Y」は、「意向X」および「意向Z」などの他のボイスアクションのための他の意向を含むアプリケーションボイスアクションデータベース230において、文法帰納エンジン220によって記憶可能である。「意向X」および「意向Z」の各々は、他のアプリケーションのための他のボイスアクションに関連付けられてもよく、メディアプレイヤーアプリケーションのための他のボイスアクションに関連付けられてもよい。新しい「意向Y」がアプリケーションボイスアクションデータベース230において記憶されたとき、新しいボイスアクションは、メディアプレイヤーアプリケーションが自分のデバイス上に記憶されたユーザによって新しいボイスアクションが使用されてもよいように配布されてもよい。すなわち、配布されたとき、メディアプレイヤーアプリケーションのユーザは、アプリケーションを更新する必要なく、新しい「次を再生」ボイスアクションを使用してもよい。
いくつかの実装形態では、意向を生成するように文法を帰納することは、アプリケーション開発者201によって提示されたトリガ用語に少なくとも基づいた1つまたは複数の代替トリガ用語を生成することと、その代替トリガ用語を新しいボイスアクションのために生成された意向内に含めることも伴ってもよい。たとえば、1つまたは複数の拡張ルール、類義語ルール、オプション化ルール、置換ルール、書き直しルール、または他のルールが、代替トリガ用語を判定するために、アプリケーション開発者201によって提示されたトリガ用語に適用されてもよい。文法帰納エンジン220は、新しいボイスアクションのための意向内に代替トリガ用語を含んでもよく、したがって、アプリケーション開発者201によって提示されたトリガ用語の検出または代替トリガ用語の検出は、ボイスアクションのトリガリングをもたらすことができる。
加えて、いくつかの実装形態では、文法帰納エンジン220は、意向データ構造とは別個の新しい意向に関連する情報を記憶してもよい。たとえば、新しいボイスアクションがイネーブルにされるために必要とされるコンテキストを指定する情報、または新しいボイスアクションに関連付けられたトリガ用語は、新しいボイスアクションのための意向とは別個に記憶されてもよい。そのような例では、ユーザデバイスから受信されたコンテキスト情報またはユーザデバイスから受信されたトリガ用語は、意向内のデータにアクセスする必要なく、意向に関連付けられたコンテキストおよびトリガ用語と比較されてもよい。意向は、受信されたコンテキスト情報および/またはトリガ用語が、意向に関連付けられたそれぞれのコンテキストおよび/またはトリガ用語に合致することを判定したことに基づいて、トリガされてもよい。このようにして、新しいボイスアクションに関連付けられたアクティビティまたはアクションをトリガするために必要な情報のみが意向内に含まれる必要があり、トリガするための意向を選択するため、意向を識別するために使用される他の情報、または他の情報が、意向の外部に記憶されてもよい。たとえば、コンテキストおよびトリガ用語の特定のペアリングの識別によって、そのペアリングに関連付けられた意向がトリガさせられてもよいように、開発者ボイスアクションシステム200は、ルックアップテーブル、リンクされたリスト、またはコンテキストもしくはトリガ用語情報を特定の意向にマップする他のデータを記憶してもよい。
いくつかの実装形態では、開発者ボイスアクションシステム200は、公共使用のために新しいボイスアクションが配布される前にアプリケーション開発者201が新しいボイスアクションをテストするための機能も提供してもよい。たとえば、開発者ボイスアクションシステム200は、他のユーザにとって利用可能なボイスアクションなしに端末202を使用してアプリケーション開発者201が新しいボイスアクションをテストする機能を提供してもよい。開発者ボイスアクションシステム200は、新しいボイスアクションがテストのためにイネーブルにされるべき1つまたは複数のユーザデバイスをアプリケーション開発者201が指定するための機能も提供してもよい。たとえば、アプリケーション開発者201は、汎用的な公共使用のために新しいボイスアクションを配布する前に新しいボイスアクションの適切な動作を保証するために、新しいボイスアクションが既知のユーザデバイスのベータテストグループに配布されるべきであることを指定してもよい。
いくつかの実装形態では、開発者ボイスアクションシステム200は、意向が、テストのために指定されたユーザデバイスのうちの1つからボイスコマンドを受信することに基づいて識別およびトリガ可能であるように、意向に関連付けられた設定を変更することによって新しいボイスアクションのテストをイネーブルにしてもよい。たとえば、開発者ボイスアクションシステム200は、アプリケーションボイスアクションデータベース230内に記憶された意向の各々のための設定であって、特定のボイスアクションのための意向が公共使用のために一般的に配布されているかどうかを示す設定を記憶してもよく、テストの目的で意向が配布されている特定のユーザデバイスを識別してもよい。意向をアプリケーションボイスアクションデータベース230において記憶した後、開発者ボイスアクションシステム200は、意向がテスト目的で1つまたは複数のユーザデバイスの特定のセットのためにイネーブルにされるべきことを示す情報を端末202から受信してもよい。応答して、意向のための設定は、意向に関連付けられたボイスアクションがトリガされてもよいように、ユーザデバイスの指定されたセットに意向を配布するために更新されてもよい。テストのためにイネーブルにされると、セット内のユーザデバイスから受信されたボイス入力は、意向をトリガさせ、それによりボイスアクションのテストを可能にしてもよい。
他の実施形態では、開発者ボイスアクションシステム200は、新しいボイスアクションのための意向がアプリケーションボイスアクションデータベース230内に記憶される前に、新しいボイスアクションのテストをイネーブルにしてもよい。たとえば、アプリケーション開発者201は、新しいボイスアクションを配布する前にテストすることを希望することを示してもよく、新しいボイスアクションがテストのために一時的にイネーブルにされるべきいくつかのユーザデバイスまたはユーザアカウントを示してもよい。ユーザが、新しいボイスアクションに関連付けられたトリガフレーズをユーザデバイスのうちの1つへの入力として提供する場合、指定されたユーザデバイスまたは指定されたユーザアカウントに関連付けられたユーザデバイスが新しいボイスアクションをトリガすることができるように、新しいボイスアクションのための意向を生成した後、開発者ボイスアクションシステム200は、指定されたユーザデバイスまたはユーザアカウントのためのボイスアクションをイネーブルにしてもよい。
さらに他の実装形態では、開発者ボイスアクションシステム200は、新しいボイスアクションのための文法が文法帰納エンジン220によって帰納される前に、新しいボイスアクションのためのテスト機能を提供することができる。たとえば、受信された文法を検証した後、検証エンジン210または開発者ボイスアクションシステム200の別の構成要素は、アプリケーション開発者201または他のデバイスのユーザが新しいボイスアクションをテストするために文法によって定義された新しいボイスアクションの動作をシミュレートすることが可能であってもよい。いくつかの例では、新しいボイスアクションをシミュレートすることは、開発者ボイスアクションシステム200によって提供されるシミュレータまたはテストモードを利用して新しいボイスアクションの動作をシミュレートするために、テストに使用される端末202または他のユーザデバイスを必要としてもよい。新しい文法が帰納される前にテスト機能を提供することによって、アプリケーション開発者201による新しいボイスアクションのより高速な反復テストが可能になり、それによりボイスアクション開発プロセス全体をスピードアップすることができる。
ボイスアクションを配布する機能およびボイスアクションの配布を無効にする機能も、開発者ボイスアクションシステム200によって提供可能である。たとえば、新しいボイスアクションを定義する文法がアプリケーション開発者201によって開発者ボイスアクションシステム200に提示され、検証され、新しい意向を生成するように帰納され、新しい意向がアプリケーションボイスアクションデータベース230において記憶された後、開発者ボイスアクションシステム200は、アプリケーション開発者201が新しいボイスアクションを配布することを希望するかどうかを要求してもよい。アプリケーション開発者201は、新しいボイスアクションを配布することを選定してもよく、新しいボイスアクションを配布することによって、新しいボイスアクションに関連付けられたアプリケーションをインストールされた一般大衆のユーザデバイスにおける新しいボイスアクションのトリガリングが可能になる。アプリケーション開発者201は、新しいボイスアクションを配布するために、端末202における入力を提供することができる。次いで、新しいボイスアクションは、新しいボイスアクションが、新しいボイスアクションに関連付けられたアプリケーションをインストールされた他のユーザデバイス上でトリガ可能であるように配布可能である。すなわち、新しいボイスアクションが配布された後、アプリケーションをインストールされたユーザデバイスにおける新しいボイスアクションのためのトリガフレーズの入力によって、新しいボイスアクションに関連付けられた意向がトリガされる。新しいボイスアクションに関連付けられた意向のトリガリングによって、意向または他のアクショントリガデータがユーザデバイスに送信され、したがって、意向またはアクショントリガデータ内のデータは、ボイスアクションのアクションまたはアクティビティをユーザデバイスによって実行させる。説明されたように、意向を配布することは、開発者ボイスアクションシステム200に、新しいボイスアクションの意向に関連付けられた設定を更新して、意向をボイス入力に応答してトリガされることになる候補の意向にすることのみを要求してもよい。
ボイスアクションが配布された後、アプリケーション開発者201は、新しいボイスアクションが、新しいボイスアクションに関連付けられたアプリケーションをインストールされたユーザデバイスにおいてトリガされることがもはや不可能になるように、新しいボイスアクションの配布を無効にしてもよい。たとえば、アプリケーション開発者201は、ボイスアクションを識別し、ボイスアクションの配布を無効にしたいという意図を示す入力を開発者ボイスアクションシステム200に提供してもよい。応答して、開発者ボイスアクションシステム200は、たとえば、ボイスアクションのための意向がトリガできないようにボイスアクションのための意向に関連付けられた設定を更新することによって、ボイスアクションの配布を無効にしてもよい。ボイスアクションの配布または回収は、開発者ボイスアクションシステム200が、ユーザのデバイス上にインストールされたアプリケーションを変更することなく、開発者ボイスアクションシステム200において記憶された情報を更新するのみを必要とするので、アプリケーション開発者201は、ボイスアクションを容易に配布してもよく、ボイスアクションの配布を無効にしてもよい。
いくつかの実装形態では、開発者ボイスアクションシステム200はまた、新しいボイスアクションにとっての発見可能性例(discoverability example)を生成することができる。発見可能性例としては、アプリケーションがインストールされた後に開発者によって提示された新しいボイスアクションをおそらく含む、ユーザデバイスのユーザに示すことが可能な、特定のボイスアクションが利用可能であることをユーザに知らせる情報を含むことができる。いくつかの例では、発見可能性例は、ユーザデバイスが、ボイスアクションに関連付けられたコンテキストに合致するステータスを有することに応答して、またはユーザが、どのボイスアクションが利用可能であり得るかを尋ねたことに応答して、出力可能である。
たとえば、新しいボイスアクションを定義する文法を受信したことに基づいて、文法帰納エンジン220または開発者ボイスアクションシステム200の別の構成要素は、文法によって定義されたボイスアクションにとっての発見可能性例を生成することができ、その発見可能性例をアプリケーションメタデータバックエンド225内に記憶することができる。発見可能性例は、新しいボイスアクションに関連付けられたアプリケーションをインストールされたユーザデバイスに提供可能である。たとえば、アプリケーションのメタデータは、アプリケーションメタデータバックエンド225内に記憶されたアプリケーションにとっての発見可能性例の現在のリストを含めるために定期的に更新されてもよい。あるいは、ユーザデバイスが、その現在のステータスを示すコンテキスト情報を提示したことに基づいて、情報が、ユーザデバイスのステータスに対してイネーブルにされたボイスアクションとっての発見可能性例をユーザデバイスに出力させるユーザデバイスに送信されてもよい。
たとえば、「次を再生」ボイスアクションのための新しい「意向Y」を生成することに加えて、開発者ボイスアクションシステム200は、「次を再生」ボイスアクションにとっての1つまたは複数の発見可能性例を生成してもよい。発見可能性例としては、メディアプレイヤーアプリケーションを有するユーザデバイスにおいて出力された情報があってもよい。発見可能性例は、「次を再生」ボイスアクションに関連付けられたコンテキストが満たされたことに基づいて、または他の条件に基づいて、ユーザデバイスにおいて出力可能である。たとえば、「次を再生」ボイスアクションにとっての発見可能性例は、メディアプレイヤーアプリケーションがユーザデバイスのフォアグラウンドで動作しておりオーディオプレイヤーモードであるときはいつでも出力されるメッセージ「'次を再生'と言おうとすること」であることができる。いくつかの実装形態では、発見可能性例は、他のイベントまたは条件に応答して出力されてもよい。たとえば、発見可能性例メッセージ「'次を再生'と言おうとすること」は、ボタンもしくは制御部を押すことによって、または「私はどのボイスアクションを言うことができますか?」と言うことによって、ユーザデバイスのユーザがユーザデバイスに入力を提供したことに応答して、出力されてもよい。
一般に、アプリケーションボイスアクションにとっての発見可能性例は、アプリケーション自体によるアクションを必要とすることなくユーザに提供されてもよい。たとえば、開発者ボイスアクションシステム200は、発見可能性例を含むデータをユーザデバイスに提供してもよく、ユーザデバイスは、発見可能性例に関連するアプリケーションが、動作を実行することが必要とされることなく、発見可能性例を出力させてもよい。いくつかの実装形態では、ユーザデバイス上で動作するOSは、発見可能性例を受信すること、または発見可能性例を指定するアプリケーションメタデータにアクセスすること、および発見可能性例をユーザデバイスにおいて出力させることが可能であってもよい。したがって、特定のアプリケーションに関連するボイスアクションにとっての発見可能性例は、特定のアプリケーションに対する修正のない出力のために提供されてもよい。
いくつかの実装形態では、アプリケーションボイスアクションにとっての発見可能性例は、発見可能性例がアプリケーション自体によって提供されていないことをユーザが理解するようなやり方で出力されてもよい。たとえば、ユーザデバイスは、発見可能性例が開発者ボイスアクションシステム200またはOSによって提供されており、ボイスアクションに関連する特定のアプリケーションによって提供されていないことが明らかなようなやり方で、発見可能性例を提供することができる。たとえば、ユーザデバイスは、発見可能性例を提供するとき、ユーザデバイスのOSに関連付けられていると認識可能な特定のコンピュータ化されたボイストーンを使用してもよい。あるいは、発見可能性例は、アプリケーションが発見可能性例を提供していないことが明らかであるようなやり方で出力されてもよい。たとえば、「‘次を再生'または‘一時停止(pause)'と言おうとして、メディアプレイヤーアプリケーションに要求を処理させる」と言って、OSの役割をメディアプレイヤーアプリケーション自体によって実行されるアクションと区別する発見可能性例が出力されてもよい。発見可能性例が別個のシステムまたはアプリケーションによって提供されていることを示す他のやり方も実施されてもよい。
図3は、ユーザデバイスのユーザから受信されたボイスアクションを処理するための例示的なボイスアクションシステム300を示す。いくつかの実装形態では、ボイスアクションシステム300によって処理されるボイスアクションは、アプリケーションがユーザデバイスにダウンロードされた後でアプリケーション開発者がアプリケーションのために作成したボイスアクションであってもよい。アプリケーション開発者によって作成されたボイスアクションは、図2の開発者ボイスアクションシステム200を使用してアプリケーションのために作成されてもよい。
簡単に言えば、ボイスアクションシステム300は、ユーザデバイス304が電子通信をボイスアクションシステム300と交換することを可能にする、1つまたは複数のワイヤードインターネットデータ接続またはワイヤードセルラーデータ接続またはワイヤレスインターネットデータ接続またはワイヤレスセルラーデータ接続などの1つまたは複数のワイヤードネットワークまたはワイヤレスネットワークを通じて、ユーザ305に属するユーザデバイス304と通信する。ボイスアクションシステム300は、1つまたは複数のネットワーク接続を通じてユーザデバイス304から受信された情報を処理する音声認識エンジン330とコンテキスト解析エンジン340とを含む。ボイスアクションシステムは、音声認識エンジン330およびコンテキスト解析エンジン340と通信し、アプリケーションボイスアクションデータベース310およびOSボイスアクションデータベース320へのアクセスも有するマッチャ(matcher)350を含む。マッチャ350は、アプリケーションデータデータベース370へのアクセスを有するアクショントリガビルダ360と通信する。ユーザアクティビティ履歴390へのアクセスを有する曖昧性除去(disambiguation)エンジン380はまた、1つまたは複数のネットワーク接続を通じてユーザデバイス304から電子通信を送信または受信することができる。
ユーザ305によって提示されたボイス入力を処理するために、ボイス入力に対応するオーディオデータならびにユーザデバイス304および/またはユーザデバイス304上で動作するアプリケーションのステータスを示すコンテキスト情報がボイスアクションシステム300に提供される。いくつかの例では、ユーザデバイス304は、ユーザデバイス304にユーザ音声を記録し始めさせる制御部をユーザ305が選択したことに応答してボイス入力を取得してもよく、その検出によってユーザデバイス304がユーザ305からのその後のボイス入力を取得させられる句をユーザ305が話したことに応答してボイス入力を取得してもよく、ユーザ305のボイス入力を記録することを別の方法で判定してもよい。ユーザ音声の記録をトリガするように特定の入力を提供するための要件は、すなわち、処理されなければならないオーディオデータの量を減少させることによって、ユーザデバイス304がユーザ音声を不必要に処理することを防止することができ、またはすなわち、ユーザ305がユーザデバイス304に向かって話す特定の音声のみを記録することによってユーザデバイス304が、ユーザ305のプライバシーを侵害するほど大量のユーザ音声を記録することを防止することができる。
図3に示される例では、たとえば、ユーザ305は、ユーザデバイス304にユーザ305のボイス入力の記録を開始させるためにユーザデバイス304上の制御部を選択してもよく、ユーザ305が制御部を選択した後、ユーザ305は、「次を再生」と言うことによってボイス入力を提供してもよい。ユーザデバイス304は、ボイス入力に対応するオーディオデータを1つまたは複数のネットワークを通じてボイスアクションシステム300に送信してもよい。加えて、ユーザデバイス304は、ユーザデバイス304またはユーザデバイス304上で動作するアプリケーションのためのコンテキスト情報を判定してもよく、ユーザデバイス304のためのコンテキスト情報は、1つまたは複数のネットワークを通じてボイスアクションシステム300に送信されてもよい。
いくつかの例では、ユーザデバイス304からボイスアクションシステム300に送信されるコンテキスト情報としては、ユーザデバイス304において記憶された情報によって識別される特定の情報がある。たとえば、ユーザデバイス304は、ボイスアクションシステム300に送信するための特定のステータス情報を示す情報をコンテキスト情報として記憶することができる。ユーザデバイス304によってボイスアクションシステム300に提供されるコンテキスト情報は、すべてのユーザデバイスが同じコンテキスト情報をボイスアクションシステム300に提示するように、コンテキスト情報の標準化された本体を含んでもよく、またはユーザデバイス304によって提供されるコンテキスト情報は、ユーザデバイス304に指定されたコンテキスト情報の特定のセットであってもよい。いくつかの実装形態では、ボイスアクションシステム300は、あるコンテキスト情報をユーザデバイス304に要求してもよく、ユーザデバイスによって送信されるコンテキスト情報は、この要求に応答してボイスアクションシステム300に提供される情報であってもよい。さらに他の例では、アプリケーションメタデータなどのユーザデバイス304上にインストールされたアプリケーションに関連付けられた情報は、ボイスアクションシステム300に提供するようにコンテキスト情報を指定してもよく、ユーザデバイス304は、アプリケーション情報によって指定された情報を含むコンテキスト情報をボイスアクションシステム300に送信してもよい。
たとえば、図3に示される例では、ユーザデバイス304からボイスアクションシステム300に送信されるコンテキスト情報は、メディアプレイヤーアプリケーションが現在ユーザデバイス304のフォアグラウンドで動作していること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していること、およびユーザデバイス304の現在のバッテリ寿命が50%であることを示す情報を含んでもよい。
ユーザデバイス304によって送信されるオーディオデータは、ボイスアクションシステム300の音声認識エンジン330によって受信されてもよく、音声認識エンジン330は、ボイスオーディオデータのトランスクリプションを生成してもよい。たとえば、図1の音声認識エンジン130に関して説明されたように、音声認識エンジン330は、オーディオデータを受信し、ユーザ305のボイス入力に対応するオーディオデータのトランスクリプションを生成することが可能であってもよい。オーディオデータのトランスクリプションを生成した後、音声認識エンジン330は、そのトランスクリプションをマッチャ350に提供することができる。
いくつかの実装形態では、オーディオデータを受信することに加えて、音声認識エンジン330はまた、ユーザデバイス304によってボイスアクションシステム300に提供されたコンテキスト情報を受信してもよい。音声認識システム330は、受信されたコンテキスト情報に基づいて音声認識にバイアスをかけてもよい。いくつかの実装形態では、コンテキスト情報に基づいて音声認識にバイアスをかけることは、ある単語がオーディオデータ内で検出される確率を調整することを含んでもよい。たとえば、音声認識システム330は、コンテキスト的情報によって示されるコンテキストへの単語の関連性に基づいて、ある単語が検出される確率を調整してもよい。
一例として、音声認識エンジン330は、「次を再生」発話に対応するオーディオデータならびにメディアプレイヤーアプリケーションが現在ユーザデバイス304のフォアグラウンドで実行されていることを示すコンテキスト情報を受信してもよい。音声認識エンジン330は、音声認識エンジン330がトランスクリプション「惑星(planets)」の代わりに「次を再生」トランスクリプションを生成するようにコンテキスト情報に基づいて音声認識にバイアスをかけてもよく、音声認識エンジン330が、単語「再生する」もしくは句「次を再生」がオーディオデータ内で検出される確率を増加させること、または単語「惑星」が検出される確率を減少させることに基づいて、音声認識にバイアスをかけてもよく、それらの単語が、ユーザデバイス304のフォアグラウンドで実行されているメディアプレイヤーアプリケーションへの関連性またはそれへの関連性の欠如を有することを判定することに基づいて音声認識にバイアスをかけてもよい。
ボイスアクションシステムのコンテキスト解析エンジン340は、ユーザデバイス304によって送信されるコンテキスト情報を受信し、ユーザデバイス304のコンテキストまたはユーザデバイス304上で動作するアプリケーションを判定するようにコンテキスト情報を処理する。図1のコンテキスト解析エンジン140と同様に、ボイスアクションシステム300のコンテキスト解析エンジン340は、トリガするボイスアクションを識別することに関連する受信されたコンテキスト情報の一部分を判定するように、受信されたコンテキスト情報を処理することができ、またはトリガするボイスアクションを識別するために、ユーザデバイス304から必要とされる他のコンテキスト情報が存在するかどうか判定するように受信されたコンテキスト情報を処理することができる。さらなるコンテキスト情報が、実行することになるボイスアクションを判定するために必要とされる場合、コンテキスト解析エンジン340は、ユーザデバイス304が、さらなるコンテキスト情報を用いて要求に応答することができるようにさらなるコンテキスト情報をユーザデバイス304に要求することができる。いくつかの実装形態では、コンテキスト解析エンジン340は、トリガすることになるボイスアクションを識別する際にボイスアクションシステム300によって使用可能なコンテキストを生成するために、受信されるコンテキスト情報のフォーマットを修正することができる。コンテキスト解析エンジン340は、処理されたテキスト情報をマッチャ350に提供する。
図3に示される例では、たとえば、コンテキスト解析エンジン340は、コンテキスト情報をユーザデバイス304から受信する。受信されたコンテキスト情報は、メディアプレイヤーアプリケーションがユーザデバイス304のフォアグラウンドで実行されていること、メディアプレイヤーアプリケーションがオーディオプレイヤーモードで動作していること、およびユーザデバイス304のバッテリ寿命が50%であることを示してもよい。コンテキスト解析エンジン340は、バッテリ寿命情報が、ユーザ305のボイス入力に応答して、どのボイスアクションをトリガするべきかを決定することに関連しないことを判定してもよく、そのため、コンテキスト解析エンジン340は、メディアプレイヤーアプリケーションがユーザデバイス304のフォアグラウンドで動作しており、オーディオプレイヤーモードであることのみを示すコンテキストをマッチャ350に提供してもよい。
マッチャ350は、コンテキストをコンテキスト解析エンジン340からトランスクリプションを音声認識エンジン330から受信し、受信されたコンテキストおよびトランスクリプションを使用して、トリガすることになる1つまたは複数のボイスアクション候補を識別する。たとえば、マッチャ350は、コンテキスト解析エンジン340から受信されたコンテキストをアプリケーションボイスアクションデータベース310および/またはOSボイスアクションデータベース320内に含まれる1つまたは複数の意向に関連付けられたコンテキストと照合してもよい。受信されたコンテキストが、意向のうちの1つまたは複数に関連付けられたコンテキストに合致することを判定することに基づいて、マッチャ350は、それらの意向をトリガするための意向候補として識別してもよい。受信されたコンテキストを意向候補に関連付けられたコンテキストと照合することに基づいて、意向候補を識別した後、マッチャ350は、受信されたトランスクリプションを意向候補に関連付けられたトリガフレーズと比較することによって意向候補のセットを狭めてもよい。マッチャ350は、意向候補の狭められたセットを識別する情報をアクショントリガビルダ360に提供してもよい。
いくつかの例では、マッチャ350は、ボイス入力の複数のトランスクリプション候補を受信してもよく、意向候補の各々が、コンテキスト解析エンジン340から受信されたコンテキストに合致するコンテキストおよび音声認識エンジン330から受信されたボイス入力のトランスクリプション候補のうちの1つまたは複数に関連付けられることを判定したことに基づいて、意向候補の狭められたセットを識別してもよい。たとえば、音声認識エンジン330は、ボイス入力のための複数のトランスクリプション候補を判定してもよく、トランスクリプション候補の各々を示す情報をマッチャ350に提供してもよい。次いで、マッチャ350は、各々が、マッチャ350によって受信されたコンテキストに適合するコンテキストを指定し、ボイス入力のトランスクリプション候補に合致するトリガフレーズも指定する、意向候補の狭められたセットを識別してもよい。
図3に示される例では、マッチャ350は、フォアグラウンドで動作しオーディオプレイヤーモードであるメディアプレイヤーをユーザデバイス304が有することを示すコンテキストを受信する。マッチャ350は、オーディオデータの2つのトランスクリプション、すなわちトランスクリプション「次を再生」および「惑星」も受信する。マッチャ350は、受信されたコンテキストおよびトランスクリプションをアプリケーションボイスアクションデータベース310およびOSボイスアクションデータベース320において記憶された意向に関連付けられたコンテキストおよびトリガフレーズと比較することによって、この情報に基づいて始動するための意向候補を識別する。この比較に基づいて、マッチャ350は、メディアプレイヤーアプリケーションを次の歌にスキップさせる「次を再生」ボイスアクションのための意向と、「惑星」と呼ばれるアプリケーションをオープンさせる「惑星」ボイスアクションのための意向とを含む、2つの意向候補を識別する。マッチャ350は、2つの意向候補を識別する情報をアクショントリガビルダ360に提供することができる、またはマッチャ350は、意向候補のコピーをアクショントリガビルダ360に提供することができる。
アクショントリガビルダ360は、ユーザデバイス304から受信されたボイス入力およびコンテキスト情報に応答して始動するための1つまたは複数の意向候補を示す情報を受信する。アクショントリガビルダ360は、1つまたは複数の特定の意向のためのアクショントリガを生成し、各アクショントリガは、対応する意向に関連付けられたボイスアクションを実行するようにユーザデバイス304を制御することが可能であるデータを備える。いくつかの実装形態では、アクショントリガビルダ360は、マッチャ350によって識別される各意向候補のためのアクショントリガを生成する。他の実装形態では、アクショントリガビルダ360は、意向候補の中からトリガすることになる特定の意向の指示を取得してもよく、特定の意向のみのためのアクショントリガを生成してもよい。いずれかの実装形態では、アクショントリガビルダ360は、マッチャ350から受信された情報およびアプリケーションデータデータベース370においてアクセスされる情報に基づいて、アクショントリガを生成してもよい。
たとえば、アクショントリガビルダ360は、ボイスアクション候補のための意向を受信してもよく、アクショントリガビルダ360は、ボイスアクション候補をユーザデバイス304において実行させることができる、アプリケーションデータデータベース370における情報にアクセスすることができる。たとえば、アプリケーションデータデータベース370においてアクセスされる情報は、ユーザデバイス304についての情報、ボイスアクションに関連付けられたアプリケーションについての情報、またはユーザデバイス304上で実行されているオペレーティングシステムについての情報などのボイスアクションに関連付けられたアクティビティまたはアクションを実行またはトリガするための情報を含むことができる。アクショントリガビルダ360は、アクセスされた情報をボイスアクション候補のためのアクショントリガとして使用することができる、またはアクセスされた情報を使用して、ユーザデバイス304においてボイスアクション候補に関連付けられたアクションもしくはアクティビティをトリガすることが可能であるアクショントリガデータを生成することができる。いくつかの実装形態では、ボイスアクションシステム300は、アクショントリガビルダ360またはアプリケーションデータデータベース370を含まなくてもよく、したがって、意向自体がユーザデバイス304に送信されてもよく、意向内の情報は、意向に関連付けられたアクションまたはアクティビティをユーザデバイス304に実行させることができる。
図3に示される例では、アクショントリガビルダ360は、メディアプレイヤーアプリケーションのための「次を再生」ボイスアクションのための意向と、「惑星」アプリケーションをオープンするための「惑星」ボイスアクションのための意向を受信してもよい。アクショントリガビルダ360は、「次を再生」ボイスアクションおよび「惑星」ボイスアクションの各々のためのアクショントリガを生成してもよい。「次を再生」ボイスアクションのためのアクショントリガを生成するために、アクショントリガビルダ360は、ユーザデバイス304上にインストールされたメディアプレイヤーアプリケーションに関する、アプリケーションデータデータベース370における情報にアクセスし、ユーザデバイス304もしくはユーザデバイス304の特定のモデルに関係する情報にアクセスしてもよく、またはユーザデバイス304上で実行されているオペレーティングシステムに関係する情報にアクセスしてもよい。アクショントリガビルダ360は、受信された意向およびアプリケーションデータデータベース370におけるアクセスされた情報を使用して、「次を再生」ボイスアクションのためのアクショントリガを生成する。同様に、アクショントリガビルダ360は、「惑星」アプリケーション、ユーザデバイス304、またはユーザデバイス304上で実行されているオペレーティングシステムに関連する情報にアクセスすることによって、「惑星」ボイスアクションのためのアクショントリガを生成してもよく、受信された情報およびアクセスされた情報に基づいて、「惑星」ボイスアクションのためのアクショントリガを生成してもよい。
上記で説明されたように、いくつかの例では、マッチャ350は、トリガすることになる複数の意向候補を識別してもよく、それらの例では、候補のセットの中から、トリガされることになる特定の意向を選択することが必要であってもよい。曖昧性除去エンジン380は、意向候補の中から選択するユーザ入力を選択するまたは受信するための動作を実行することができる。たとえば、曖昧性除去エンジンは、意向候補に関連付けられたボイスアクション候補の中から特定のボイスアクションを選択するようにユーザ305に求める要求をユーザデバイス304に出力することができる。この要求に応答して、ユーザ305は、実行することになる特定のボイスアクション候補を選択するために、入力をユーザデバイス304に提供することができる。ユーザ選択を示す情報は、曖昧性除去エンジン380によって受信されてもよい。
あるいは、曖昧性除去エンジン380は、ユーザデバイス304に提示された以前のボイスアクションまたはユーザデバイス304において実行された他のアクションについての情報を含むユーザアクティビティ履歴390へのアクセスを有することができる。たとえば、ユーザアクティビティ履歴390は、ユーザ305が特定のボイスアクション候補をトリガした回数、ユーザ305がボイスアクションを使用してもしくは使用せずにユーザデバイス304において特定のアクションを実行した回数を示すことができる、またはユーザ305によるユーザデバイス304の使用についての他の情報を含むことができる。いくつかの例では、ユーザアクティビティ履歴390は、ユーザ305以外のユーザの使用履歴を示す情報を含むことができる。たとえば、ユーザアクティビティ履歴390は、メディアプレイヤーアプリケーションおよび/または「惑星」アプリケーションをユーザデバイス上にインストールさせたすべてのユーザの使用パターンを示す情報を含むことができる。
いくつかの実装形態では、ユーザアクティビティ履歴390内の情報は、ユーザ305からの入力を要求することなく意向候補の中から選択するために、ボイスアクションシステム300によって使用可能である。たとえば、曖昧性除去エンジン380は、類似のボイス入力を提供するとき、ユーザ305が以前に特定のボイスアクション候補を選択したことを示す、ユーザアクティビティ履歴390における情報にアクセスしてもよく、その情報に基づいて、曖昧性除去エンジン380は、ユーザ305からの入力を要求することなくトリガすることになる特定の意向候補を選択してもよい。同様に、曖昧性除去エンジン380は、ユーザ305から受信されたボイス入力に類似したボイス入力を提供したユーザのある一定の比または数が特定のボイスアクションをトリガすることを選定したことを判定してもよく、曖昧性除去エンジン380は、その情報に基づいて、ユーザ305からの入力を要求することなく、トリガすることになる特定のボイス意向候補を選択してもよい。いくつかの実装形態では、意向候補の各々は、特定のトリガフレーズと特定の意向候補との間の関係の強度を示す、関連付けられたスコアを有してもよい。特定の意向候補は、意向候補と受信されたトリガフレーズの間の関係の強度を示す、意向候補に割り当てられたスコアに基づいて選択されてもよい。
他の要因が考えられてもよく、意向候補を選択する際に使用されるユーザアクティビティ履歴390内に含まれてもよい。たとえば、ボイスアクションシステム300は、ボイスアクションシステムがある意向候補をトリガした後、ユーザデバイス304における挙動を追跡して、トリガされた意向がユーザ305の予想に合致するように見えるかどうかを判定してもよい。たとえば、ボイスアクションシステム300があるボイスアクションをトリガした後、ユーザ305が、ユーザデバイス304において別のアクションを実行するための動作を行う場合、それは、ボイスアクションシステム300が間違った意向候補をトリガしたことを示してもよく、そのため、ボイスアクションシステム300は、受信されたボイス入力はトリガするべきでないまたはトリガされる意向をトリガする可能性が低いことを示す情報をユーザアクティビティ履歴390に追加してもよい。他の例では、ユーザアクティビティ履歴390は、どのくらい頻繁にユーザ305または他のユーザがユーザデバイスの所与のステータスのためのたとえば、ボイスアクションシステム300に提供されたコンテキスト情報内で示される特定のステータスのための特定の意向候補を選択するかを示す情報を含んでもよい。ユーザアクティビティ履歴390内に含まれる他の情報は、曖昧性除去エンジン380によってアクセスされ、特定の意向候補を意向候補のセットから選択するために使用されてもよい。
図3に示される例の場合、ユーザ305によって提供されたボイス入力のための意向候補がメディアプレイヤーアプリケーションのための「次を再生」ボイスアクションのための意向または「惑星アプリケーション」をオープンするための「惑星」ボイスアクションのための意向を含むことを判定したことに基づいて、曖昧性除去エンジン380は、特定のボイスアクション候補のユーザ選択を要求する情報をユーザデバイス304に提供することができる。図示のように、ユーザ305が「次の歌(Next Song)」ボイスアクションまたは「‘惑星'をオープンする」ためのボイスアクションのどちらかを選択することを要求する要求が、ユーザデバイス304のディスプレイにおいて出力可能である。ユーザ305は、「次の歌」選択肢を選択するために、ユーザデバイス304において入力を提供する。ユーザ選択を示すデータが曖昧性除去エンジン380に送信され、ユーザ選択を示すデータを受信する際、曖昧性除去エンジン380は、「次を再生」ボイスアクションのための意向をトリガすることを判定する。いくつかの例では、曖昧性除去エンジン380はまた、ユーザ305が「惑星」ボイスアクションのための意向に優先して「次を再生」ボイスアクションのための意向をトリガすることを選定したことを示す情報をユーザアクティビティ履歴390において記憶してもよい。曖昧性除去エンジン380は、ユーザアクティビティ履歴390において記憶された情報に依拠して、類似のボイス入力が後でユーザデバイス304からボイスアクションシステム300によって受信される場合にトリガすることになるボイスアクション候補を自動的に決定してもよい。
図3に示される例の代替実装形態では、曖昧性除去エンジン380は、ユーザアクティビティ履歴390にアクセスすることに基づいて、トリガすることになる特定の意向候補を選択してもよい。たとえば、ユーザアクティビティ履歴390は、ユーザデバイス304のユーザ305が以前に類似のボイス入力を提供し、「次の歌」ボイスアクションのための意向をトリガすることを選定したことを示してもよい。類似のボイス入力を受信した後、ユーザアクティビティ履歴390が、「次を再生」ボイスアクションのための意向が以前にトリガされたことを示したことに基づいて、曖昧性除去エンジン380は、ユーザ305からのさらなる入力を要求することなく「次を再生」ボイスアクションのための意向をトリガすることを判定してもよい。
特定の意向候補が選択された後、および必要な場合、選択されたボイスアクション候補のためのアクショントリガが生成された後、ボイスアクションシステム300は、選択されたボイスアクションを実行させる情報をユーザデバイス304に送信する。たとえば、曖昧性除去エンジン380またはボイスアクションシステム300の別の構成要素は、選択されたボイスアクションのための意向またはアクショントリガデータをユーザデバイス304に送信し、選択されたボイスアクションをユーザデバイス304に実行させることができる。
図3に示される例では、たとえば、ユーザ305が、メディアプレイヤーアプリケーションを次の歌にスキップさせる「次を再生」ボイスアクションを選択するために「次の歌」選択肢を選択した後、および次の歌にスキップするようにメディアプレイヤーアプリケーションを制御するためのデータを含むアクショントリガが生成された後、曖昧性除去エンジン380は、アクショントリガをユーザデバイス304に送信することができる。ユーザデバイス304は、アクショントリガを受信することができ、アクショントリガは、メディアプレイヤーアプリケーションを次の歌にスキップさせることによって、ユーザデバイス304に「次を再生」ボイスアクションを実行させることができる。
いくつかの実装形態では、トリガされたボイスアクションを示す通知は、ユーザデバイス304における出力に提供されてもよい。たとえば、ボイスアクションシステム300またはユーザデバイス304のOSは、トリガされたボイスアクションを識別する通知をユーザデバイス304において出力させてもよい。いくつかの例では、トリガされたボイスアクションを識別する通知は、トリガされたボイスアクションに関連付けられたアプリケーションが、ボイスアクションを検出するまたはボイスアクションをトリガする役目を果たさないことがユーザ305に明らかであるようなやり方で、提供されてもよい。たとえば、ユーザデバイス304において提供される通知は、ボイスアクションシステム300、ユーザデバイス304、またはユーザデバイス304のOSに関連付けられていると認識可能なボイストーンを使用してもよく、ユーザデバイス304上で動作するメディアプレイヤーアプリケーションに関連付けられていると認識可能なボイストーンを使用しなくてもよい。別の例では、通知は、ユーザ305からのボイス入力を扱うシステムまたはアプリケーションをトリガされたボイスアクションを実行しているアプリケーションと区別するやり方で示されてもよい。たとえば、通知は、「あなたは‘次を再生'ボイスアクションをトリガしました。今、メディアプレイヤーアプリケーションを次の歌にスキップさせます」を述べ、それによりメディアプレイヤーアプリケーションはボイス入力を処理する役目を果たしていなかったことをユーザ305に示してもよい。
図4は、ボイスアクションシステムによって実行される例示的なプロセス400のための流れ図を示す。いくつかの例では、図4のプロセス400は、図1のボイスアクションシステム100によって、または図1のボイスアクションシステム100の構成要素によって実行可能である。プロセス400は、1つまたは複数のユーザデバイス上にインストールされているアプリケーションのための新しいボイスアクションをアプリケーション開発者が確立することができ、アプリケーションをインストールされたユーザデバイスのユーザが、新しいボイスアクションに関連付けられた動作をユーザデバイス上のアプリケーションによって実行させるために、新しいボイスアクションをトリガすることができる、プロセスについて説明する。
最初に、ボイスアクションシステムとは異なるソフトウェアアプリケーションのための新しいボイスアクションを指定するデータがボイスアクションシステムによって受信され、このデータは、新しいボイスアクションを実行するための1つまたは複数の動作と、新しいボイスアクションをトリガするための1つまたは複数のトリガ用語とを含む(402)。たとえば、ソフトウェアアプリケーションに関連付けられたアプリケーション開発者101a〜101nは、新しいボイスアクションを定義するデータを、端末102a〜102nを使用してボイスアクションシステム100に提示することができる。
新しいボイスアクションを定義するデータは、新しいボイスアクションを実行するための1つまたは複数の動作と新しいボイスアクションをトリガするための1つまたは複数のトリガ用語を指定するデータを含むことができる。たとえば、新しいボイスアクションを定義するデータは、トリガ用語「次を再生」を指定してもよく、新しいボイスアクションがメディアプレイヤーアプリケーションを次の歌にスキップさせるために動作を実行するべきであることを指定してもよい。データは、新しいボイスアクションが関係するアプリケーション、新しいボイスアクションがユーザによる使用のためにいつイネーブルにされるべきかのコンテキスト、または他の情報などの新しいボイスアクションに関連するさらなる情報も指定してもよい。たとえば、「次を再生」ボイスアクションを定義するデータはまた、ボイスアクションがメディアプレイヤーアプリケーションに関係することを指定してもよく、メディアプレイヤーアプリケーションがフォアグラウンドで動作しており、オーディオプレイヤーモードであるとき、ボイスアクションがイネーブルにされるべきであることを指定してもよい。
ソフトウェアアプリケーションのためのコンテキスト的ボイスアクション意向が、少なくとも受信されたデータに基づいて、ボイスアクションシステムによって生成され、このコンテキスト的ボイスアクション意向は、ソフトウェアアプリケーションによって受信されたときに、ソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求するデータを含む(404)。たとえば、図1のボイスアクションシステム100は、新しいボイスアクションを指定するデータを受信してもよく、受信されたデータに基づいて、新しいボイスアクションのためのコンテキスト的ボイスアクション意向を生成してもよい。ボイスアクションシステム100は、コンテキスト的ボイスアクション意向をアプリケーションボイスアクションデータベース110内に記憶してもよい。いくつかの実装形態では、ボイスアクションシステム100は、受信されたデータを検証して、受信された文法をコンテキスト的ボイスアクション意向を生成するように帰納することによって、図2に関して説明されたプロセスに類似したプロセスを使用して意向を生成してもよい。いくつかの実装形態では、生成されたコンテキスト的ボイスアクション意向は、新しいボイスアクションを実行するための1つまたは複数の動作を実行するようにソフトウェアアプリケーションを制御することができる情報を記憶することができる。
コンテキスト的ボイスアクション意向は、ボイスアクションシステムによって、新しいボイスアクションのための1つまたは複数のトリガ用語に関連付けられる(406)。たとえば、新しいボイスアクションのためのコンテキスト的ボイスアクション意向がボイスアクションシステム100によって作成された後、ボイスアクションシステム100は、新しいボイスアクションのためのコンテキスト的ボイスアクション意向を受信されたデータ内で指定された1つまたは複数のトリガ用語と関連付けることができる。関連付けられた1つまたは複数のトリガ用語を有するコンテキスト的ボイスアクション意向は、アプリケーションボイスアクションデータベース110において記憶されてもよい。いくつかの実装形態では、1つまたは複数のトリガ用語をコンテキスト的ボイスアクション意向と関連付けることは、コンテキスト的ボイスアクション意向内の1つまたは複数のトリガ用語を指定することを伴うことができる。他の実装形態では、1つまたは複数のトリガ用語のうちの1つの受信がコンテキスト的ボイスアクション意向の識別をもたらすように、関連付けは、別の方法で1つまたは複数のトリガ用語をコンテキスト的ボイスアクション意向とリンクすることによって遂行されてもよい。
ボイスアクションシステムは、ソフトウェアアプリケーションをインストールされたデバイスによって取得されたユーザ発話の指示を受信するように構成される(408)。たとえば、ボイスアクションシステム100は、発話がユーザデバイス104から受信されたという指示を受信するように構成されてもよく、この発話は、ユーザ105からのボイス入力としてユーザデバイス104によって取得される。ユーザデバイス104は、既にインストールされた、新しいボイスに関連付けられたソフトウェアアプリケーション、たとえば、図1に関して説明されたメディアプレイヤーアプリケーションを有することができる。
ボイスアクションシステムは、ユーザ発話のトランスクリプションが、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定するように構成される(410)。たとえば、ボイスアクションシステム100は、ユーザ発話に対応するオーディオデータを受信するように構成されてもよく、ボイスアクションシステム100の音声認識エンジン130を使用してユーザ発話のトランスクリプションを生成することができる。音声認識エンジン130によって生成されたユーザ発話のトランスクリプションは、新しいボイスアクションのためのコンテキスト的ボイスアクション意向と他のボイスアクションのためのコンテキスト的ボイスアクション意向とを含む、複数のコンテキスト的ボイスアクション意向に関連付けられたトリガ用語と比較可能である。
いくつかの例では、比較は、図1のボイスアクション選択器150によって実行されてもよく、ボイスアクション選択器150は、ユーザ発話のトランスクリプションをアプリケーションボイスアクションデータベース110またはOSボイスアクションデータベース120において記憶されたコンテキスト的ボイスアクション意向のためのトリガ用語と比較することができる。この比較に基づいて、ボイスアクション選択器150は、ユーザ発話のトランスクリプションが、新しいボイスアクションのコンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語のうちの1つまたは複数に合致することを判定してもよい。たとえば、音声認識エンジン130は、「次を再生」を読む、ユーザデバイス104から受信されたユーザ発話のためのトランスクリプションを生成してもよい。ボイスアクション選択器150は、「次を再生」ボイスアクションをコンテキスト的ボイスアクション意向候補に関連付けられたトリガ用語と比較して、トランスクリプションが、新しい「次を再生」ボイスアクションのためのコンテキスト的ボイスアクション意向に関連付けられた「次を再生」トリガフレーズに合致することを判定してもよい。
ボイスアクションシステムは、コンテキスト的ボイスアクション意向を特定のデバイスに提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求するように構成される(412)。たとえば、ボイスアクションシステム100の音声認識エンジン130によって生成されたユーザ発話のトランスクリプションが、新しいボイスアクションのためのコンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に合致することを判定したことに応答して、ボイスアクション選択器150は、新しいボイスアクションのためのコンテキスト的ボイスアクション意向をユーザデバイス104に提供することができる。新しいボイスアクションのためのコンテキスト的ボイスアクション意向は、ユーザデバイス104上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを効果的に要求することができる。たとえば、コンテキスト的ボイスアクション意向は、ユーザデバイス104がコンテキスト的ボイスアクション意向を受信すると新しいボイスアクションに関連付けられた1つまたは複数の動作をトリガするデータを含んでもよい。
いくつかの実装形態について説明してきた。それにもかかわらず、本開示の趣旨および範囲から逸脱することなく、さまざまな修正が加えられてもよいことが理解されよう。たとえば、上記に示されたさまざまな形式のフローが、ステップが並び替えられた、追加された、または除去された状態で使用されてもよい。したがって、他の実装形態は、以下の特許請求の範囲内に含まれる。
本明細書において説明されたシステムおよび/または方法が、ユーザについての個人情報を収集してもよい、または個人情報を利用してもよい事例の場合、ユーザは、プログラムまたは特徴が個人情報、たとえば、ユーザのソーシャルネットワーク、社会的行動もしくは活動、職業、好み、もしくは現在のロケーションについての情報を収集するかどうかを制御するためのまたはシステムおよび/もしくは方法が、ユーザに対する関連のより高い動作を実行することができるかどうか、ならびに/もしくはどのようにして実行するかを制御するための機会を提供されてもよい。さらに、個人を識別可能な情報が除去されるように、あるデータが、記憶または使用される前に、1つまたは複数のやり方で匿名扱いにされてもよい。たとえば、ユーザの識別情報が、個人を識別可能な情報がユーザのために判定不可能であるように匿名扱いにされてもよく、ユーザの特定のロケーションが判定不可能であるように、ユーザの地理的ロケーションは、ロケーション情報が取得された場合、都市、ZIPコード、または州レベルなどに一般化されてもよい。したがって、ユーザは、自分についての情報がどのように収集および使用されるかに対する制御を有してもよい。
前述の実施形態は、主にユーザデバイス上にインストールされたアプリケーションとともに使用するためのボイスアクションの開発に関して説明されてきたが、説明された特徴は、機械、他のデバイス、ロボット、または他のシステムに関しても使用されてもよい。たとえば、図1のボイスアクションシステム100は、関連付けられたコンピューティングシステムを有する機械と対話するためのボイスアクションを開発および実施するために利用されてもよく、ロボットまたはロボット的な構成要素を有するシステムと対話するためのボイスアクションを開発および実施するために使用されてもよく、機器、エンターテイメントシステム、または他のデバイスと対話するためのボイスアクションを開発および実施するために使用されてもよく、車両または他の輸送システムと対話するためのボイスアクションを開発および実施するために使用されてもよい。
本明細書において説明された実施形態および機能的動作のすべては、デジタル電子回路内で実施されてもよく、本明細書に開示されている構造およびそれらの構造的等価物を含めて、コンピュータソフトウェア、ファームウェア、またはハードウェア内で実施されてもよく、それらのうちの1つまたは複数の組合せで実施されてもよい。実施形態は、1つまたは複数のコンピュータプログラム製品、すなわち、データ処理装置による実行のためのまたはデータ処理装置の動作を制御するためのコンピュータ可読媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施されてもよい。コンピュータ可読媒体は、機械可読記憶デバイスであってもよく、機械可読記憶基板であってもよく、メモリデバイスであってもよく、機械可読伝搬信号を遂行する物体の構成であってもよく、それらのうちの1つまたは複数の組合せであってもよい。「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含んでもよい。伝搬信号は、人工的に生成された信号、たとえば、適切な受信機装置への送信のために情報を符号化するために生成される、機械により生成された電気信号、光信号、または電磁信号である。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語を含む、任意の形式のプログラミング言語で記述されてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適した他のユニットとして含む任意の形式で、配布されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイル(たとえば、マークアップ言語ドキュメント内に記憶された1つまたは複数のスクリプト)の一部分の中に記憶されてもよく、問題のプログラム専用の単一ファイル内に記憶されてもよく、複数の協調されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)内に記憶されてもよい。コンピュータプログラムは、1台のコンピュータ上で実行されるように配布されてもよく、1つの場所に設置された複数のコンピュータ上で実行されるように配布されてもよく、複数の場所にわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配布されてもよい。
本明細書において説明されたプロセスおよび論理フローは、入力データに対して動作させ、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行されてもよい。プロセスおよび論理フローは、特殊目的論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行されてもよく、装置は、特殊目的論理回路としても実装されてもよい。
コンピュータプログラムの実行に適したプロセッサとしては、例として汎用マイクロプロセッサと特殊目的マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサがある。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令およびデータを受信する。
コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含む、またはこれらからデータを受信する、もしくはこれにデータを転送する、もしくは両方を行うために、動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、タブレットコンピュータ、携帯電話、携帯情報端末(PDA)、携帯型オーディオプレイヤー、全地球測位システム(GPS)受信機内に埋め込まれてもよい。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補われてもよく、この中に組み込まれてもよい。
ユーザとの対話を提供するために、実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに提供してもよい、キーボードと、ポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実施されてもよい。他の種類のデバイスも、ユーザとの対話を提供するために使用されてもよい。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよい。ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式において、受信されてもよい。
実施形態は、バックエンドコンポーネントを含む、たとえば、データサーバとして、コンピューティングシステム内で実施されてもよく、ミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むコンピューティングシステム内で実施されてもよく、フロントエンドコンポーネント、たとえば、それを通してユーザが一実装形態、または1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せと対話してもよいグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム内で実施されてもよい。システムの構成要素は、デジタルデータ通信の任意の形式または媒体、たとえば、通信ネットワークによって相互接続されてもよい。通信ネットワークの例としては、ローカルエリアネットワーク("LAN")、およびワイドエリアネットワーク("WAN")たとえばインターネットがある。
コンピューティングシステムは、クライアントと、サーバとを含んでもよい。クライアントおよびサーバは、一般に、互いから遠く離れており、一般的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行されており、互いに対するクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
本明細書は多くの詳細を含むが、これらは、本開示または特許請求されてよいものの範囲に対する制限と解釈されるべきではなく、むしろ、特定の実施形態に固有の特徴の説明と解釈されるべきである。本明細書内で別個の実施形態の文脈において説明されるある特徴はまた、単一の実施形態において組み合わせて実施されてもよい。反対に、単一の実施形態の文脈において説明されるさまざまな特徴もまた、複数の実施形態において別々に実施されてもよく、任意の適切なサブコンビネーションで実施されてもよい。さらに、特徴は、上記である組合せで働くと説明され、最初はそのようなものとして特許請求される場合もあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されてもよく、特許請求される組合せは、サブコンビネーションまたはサブコンビネーションの変形形態を対象としてもよい。
同様に、動作は、図面において特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作が、示された特定の順序または逐次的な順序で実行されるべきであること、またはすべての示された動作が実行されるべきであることを必要とすると理解されるべきではない。ある環境では、マルチタスクおよび並列処理が有利な場合がある。さらに、上記で説明された実施形態におけるさまざまなシステム構成要素の分離は、そのような分離をすべての実施形態において必要とすると理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品内で一緒に統合されてもよく、複数のソフトウェア製品へとパッケージ化されてもよいことを理解されたい。
HTMLファイルが言及された各事例では、他のファイルタイプまたはフォーマットに代えられてもよい。たとえば、HTMLファイルは、XML、JSON、プレーンテキスト、または他のタイプのファイルによって置き換えられてもよい。さらに、テーブルまたはハッシュテーブルが言及された場合、他のデータ構造(スプレッドシート、リレーショナルデータベース、または構造化されたファイルなど)が使用されてもよい。
さらなる実装形態が、以下の例にまとめられている。
例1:
ボイスアクションシステムによって、前記ボイスアクションシステムとは異なるソフトウェアアプリケーションのための新しいボイスアクションを指定するデータを受信することであって、このデータは、新しいボイスアクションを実行するための1つまたは複数の動作と、新しいボイスアクションをトリガするための1つまたは複数のトリガ用語とを含む、受信することと、
ボイスアクションシステムによって、少なくとも受信されたデータに基づいて、ソフトウェアアプリケーションのためのコンテキスト的ボイスアクション意向を生成することであって、コンテキスト的ボイスアクション意向は、ソフトウェアアプリケーションによって受信されたときに、ソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求するデータを含む、生成することと、
ボイスアクションシステムによって、コンテキスト的ボイスアクション意向を新しいボイスアクションのための1つまたは複数のトリガ用語と関連付けることと
を含み、
ボイスアクションシステムが、
ソフトウェアアプリケーションをインストールされたデバイスによって取得されたユーザ発話の指示を受信し、
ユーザ発話のトランスクリプションは、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応すると判定し、
この判定に応答して、コンテキスト的ボイスアクション意向をデバイスに提供し、それによりデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求する
ように構成される、コンピュータに実装される方法。
例2:
受信されたデータがコンテキストを指定し、このコンテキストは、新しいボイスアクションがイネーブルにされたとき、デバイスのステータスまたはソフトウェアアプリケーションのステータスを指定する、例1に記載のコンピュータに実装される方法。
例3:
コンテキストは、ソフトウェアアプリケーションが、ソフトウェアアプリケーションがインストールされたデバイスのフォアグラウンドで動作していることを指定する、例2に記載のコンピュータに実装される方法。
例4:
コンテキストは、ソフトウェアアプリケーションが、ソフトウェアアプリケーションがインストールされたデバイスのバックグラウンドで動作していることを指定する、例2に記載のコンピュータに実装される方法。
例5:
コンテキストは、ソフトウェアアプリケーションが特定のアクティビティを実行していることを指定する、例2に記載のコンピュータに実装される方法。
例6:
コンテキストは、ソフトウェアアプリケーションが実行している特定のアクティビティが特定のアクティビティ状態であることを指定する、例2に記載のコンピュータに実装される方法。
例7:
コンテキスト的ボイスアクション意向を新しいボイスアクションのためのコンテキストと関連付けることと、
ボイスアクションシステムによって、ソフトウェアアプリケーションをインストールされた特定のデバイスのステータスまたは特定のデバイス上にインストールされたソフトウェアアプリケーションのステータスを示すコンテキスト情報を受信することと、
コンテキスト情報が新しいボイスアクションのためのコンテキストを満たすと判定することと、
特定のデバイスによって取得されたユーザ発話のトランスクリプションが、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応すること、およびコンテキスト情報が、コンテキスト的ボイスアクション意向に関連付けられたコンテキストを満たすことを判定したことに応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することと
を含む、例2から例6のうちの1つに記載のコンピュータに実装される方法。
例8:
特定のデバイスのステータスまたは特定のデバイス上にインストールされたソフトウェアアプリケーションのステータスを示すコンテキスト情報を受信することが、
ボイスアクションシステムによって特定のデバイスに、特定のコンテキスト情報の要求を提供することと、
この要求に応答して特定のコンテキスト情報を受信することと
を含む、例7に記載のコンピュータに実装される方法。
例9:
コンテキスト情報が第2のボイスアクションのためのコンテキストを満たすこと、およびユーザ発話のトランスクリプションが、第2のボイスアクションのための意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定することであって、第2のボイスアクションに対する意向は、第2のボイスアクションを実行するための1つまたは複数の動作を指定する、判定することと、
この判定に応答して、新しいボイスアクションおよび第2のボイスアクションからボイスアクションを選択することと、
ボイスアクションシステムによって特定のデバイスに、選択されたボイスアクションに関連付けられた意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが、選択されたボイスアクションの1つまたは複数の動作を実行することを要求することと
を含む、例7または8のうちの1つに記載のコンピュータに実装される方法。
例10:
新しいボイスアクションおよび第2のボイスアクションから選択されたボイスアクションを選択することが、新しいボイスアクションまたは第2のボイスアクションのうちの1つのユーザ選択を示すデータを受信したことに応答して、選択されたボイスアクションを選択することを含む、例9に記載のコンピュータに実装される方法。
例11:
新しいボイスアクションおよび第2のボイスアクションから選択されたボイスアクションを選択することが、
新しいボイスアクションおよび第2のボイスアクションの各々にスコアを割り当てることと、
少なくとも新しいボイスアクションおよび第2のボイスアクションの各々に割り当てられたスコアに基づいて、選択されたボイスアクションを選択することと
を含む、例9または10に記載のコンピュータに実装される方法。
例12:
新しいボイスアクションおよび第2のボイスアクションから選択されたボイスアクションを選択することが、選択されたボイスアクションに関連付けられたソフトウェアアプリケーションがフォアグラウンドで動作していると判定したことに応答して、選択されたボイスアクションを選択することを含む、例9から11のうちの1つに記載のコンピュータに実装される方法。
例13:
ソフトウェアアプリケーションのためのコンテキスト的ボイスアクション意向を生成することが、新しいボイスアクションの1つまたは複数の動作がソフトウェアアプリケーションによって実行可能であると判定することを含む、例1から12のうちの1つに記載のコンピュータに実装される方法。
例14:
ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話のトランスクリプションが、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に類似していることを判定することと、
この判定に応答して、ボイスアクションシステムによって特定のデバイスに、ユーザ発話が1つまたは複数のトリガ用語を指定したかどうか、またはソフトウェアアプリケーションに新しいボイスアクションを実行させることが意図されたかどうかを確認するユーザ入力の要求を示すデータを提供することと、
この要求に応答して、ボイスアクションシステムによって特定のデバイスから、確認を示すデータを受信することと、
確認を示すデータを受信したことに応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することと
を含む、例1から13のうちの1つに記載のコンピュータに実装される方法。
例15:
ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者から、ソフトウェアアプリケーションのための新しいボイスアクションを配布する要求を受信することと、
この要求に応答して、この要求に応答したソフトウェアアプリケーションのための新しいボイスアクションを配布することであって、ソフトウェアアプリケーションのための新しいボイスアクションをイネーブルにする、配布することと
を含む、例1から14のうちの1つに記載のコンピュータに実装される方法。
例16:
ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者からソフトウェアアプリケーションのための新しいボイスアクションの配布を無効にする要求を受信することと、
この要求に応答して、要求に応答したソフトウェアアプリケーションのための新しいボイスアクションの配布を無効にすることであって、ソフトウェアアプリケーションのための新しいボイスアクションをディスエーブルにする、無効にすることと
を含む、例1から15のうちの1つに記載のコンピュータに実装される方法。
例17:
ボイスアクションシステムによって、ソフトウェアアプリケーションに関連付けられた開発者から、新しいボイスアクションのテストをイネーブルにする要求を受信することであって、この要求は、新しいボイスアクションがイネーブルにされるべき1つまたは複数のデバイスを指定する、受信することと、
この要求に応答して、1つまたは複数の指定されたデバイスのための新しいボイスアクションをイネーブルにすることであって、新しいボイスアクションは、指定されたデバイス内に含まれないデバイスに対してディスエーブルにされる、イネーブルにすることと
を含む、例1から16のうちの1つに記載のコンピュータに実装される方法。
例18:
ボイスアクションシステムによって、ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話の指示を受信することと、
ボイスアクションシステムによって、ユーザ発話のトランスクリプションが、コンテキスト的ボイスアクション意向に関連付けられた1つまたは複数のトリガ用語に対応することを判定することと、
この判定に応答して、ボイスアクションシステムによって特定のデバイスに、コンテキスト的ボイスアクション意向を提供し、それにより特定のデバイス上にインストールされたソフトウェアアプリケーションが新しいボイスアクションの1つまたは複数の動作を実行することを要求することと
を含む、例1から17のうちの1つに記載のコンピュータに実装される方法。
例19:
非一時的コンピュータ可読記憶デバイスであって、1つまたは複数のコンピュータによって実行可能な、そのような実行時に、例1から18のステップを含む動作を実行することを1つまたは複数のコンピュータに行わせる命令を含むソフトウェアを記憶する、非一時的コンピュータ可読記憶デバイス。
ボイスアクションシステムによって、そのボイスアクションシステムとは異なるアプリケーションのための新しいボイスアクションを指定するデータを受信するための方法、システム、および装置について説明してきた。アプリケーションのためのボイスアクション意向は、少なくともデータに基づいて生成され、このボイスアクション意向は、アプリケーションによって受信されたときに、新しいボイスアクションのために指定された1つまたは複数の動作をアプリケーションが実行することを要求するデータを含む。ボイスアクション意向は、新しいボイスアクションのために指定されたトリガ用語と関連付けられる。ボイスアクションシステムは、アプリケーションをインストールされたデバイスによって取得されたユーザ発話の指示を受信するように構成され、ユーザ発話のトランスクリプションが、ボイスアクション意向に関連付けられたトリガ用語に対応することを判定する。この判定に応答して、ボイスアクションシステムは、ボイスアクション意向をデバイスに提供する。
したがって、特定の実施形態について説明してきた。他の実施形態は、以下の特許請求の範囲内に含まれる。たとえば、特許請求の範囲において記載されるアクションは、異なる順序で実行されてもよく、依然として所望の結果を達成する。
30 ユーザ
100 ボイスアクションシステム
101a アプリケーション開発者、サードパーティアプリケーション開発者
101b アプリケーション開発者、サードパーティアプリケーション開発者
101c アプリケーション開発者、サードパーティアプリケーション開発者
101d アプリケーション開発者、サードパーティアプリケーション開発者
101e アプリケーション開発者、サードパーティアプリケーション開発者
101f アプリケーション開発者、サードパーティアプリケーション開発者
101g アプリケーション開発者、サードパーティアプリケーション開発者
101h アプリケーション開発者、サードパーティアプリケーション開発者
101i アプリケーション開発者、サードパーティアプリケーション開発者
101j アプリケーション開発者、サードパーティアプリケーション開発者
101k アプリケーション開発者、サードパーティアプリケーション開発者
101l アプリケーション開発者、サードパーティアプリケーション開発者
101m アプリケーション開発者、サードパーティアプリケーション開発者
101n アプリケーション開発者、サードパーティアプリケーション開発者
102a 端末
102b 端末
102c 端末
102d 端末
102e 端末
102f 端末
102g 端末
102h 端末
102i 端末
102j 端末
102k 端末
102l 端末
102m 端末
102n 端末
104 ユーザデバイス
105 ユーザ
110 アプリケーションボイスアクションデータベース
120 オペレーティングシステムボイスアクションデータベース、OSボイスアクションデータベース
130 音声認識エンジン
140 コンテキスト解析エンジン
150 ボイスアクション選択器
200 開発者ボイスアクションシステム、ボイスアクション開発者システム
201 アプリケーション開発者
202 端末
204 ユーザデバイス
210 検証エンジン
215 検証基準データベース
220 文法帰納エンジン
225 アプリケーションメタデータバックエンド
230 アプリケーションボイスアクションデータベース
300 ボイスアクションシステム
304 ユーザデバイス
305 ユーザ
310 アプリケーションボイスアクションデータベース
320 OSボイスアクションデータベース
330 音声認識エンジン、音声認識システム
340 コンテキスト解析エンジン
350 マッチャ
360 アクショントリガビルダ
370 アプリケーションデータデータベース
380 曖昧性除去エンジン
390 ユーザアクティビティ履歴
400 プロセス
X 意向
Y 意向
Z 意向

Claims (19)

  1. 以前にユーザデバイス上にインストールされたソフトウェアアプリケーションのための新しいボイスアクションを確立するためのコンピュータに実装される方法であって、ボイスアクションが、前記ソフトウェアアプリケーション内で実行される1つまたは複数の動作を定義し、前記方法が、前記ユーザデバイスとは異なるボイスアクションシステム内で実行され、
    前記ボイスアクションシステムによって、前記ボイスアクションシステムとは異なる前記ソフトウェアアプリケーションのための新しいボイスアクションを指定するデータを受信するステップであって、前記データが、(1)前記新しいボイスアクションを実行するための1つまたは複数の動作と、(2)前記新しいボイスアクションをトリガするための1つまたは複数のトリガ用語と、(3)前記新しいボイスアクションがイネーブルにされたときの前記ユーザデバイスのステータスまたは前記ソフトウェアアプリケーションのステータスを指定するコンテキストとを含む、ステップと、
    前記ボイスアクションシステムによって、少なくとも前記受信されたデータに基づいて、前記ソフトウェアアプリケーションのためのボイスアクション受動的データ構造を生成するステップであって、前記ボイスアクション受動的データ構造が、前記ソフトウェアアプリケーションによって受信されたときに、前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するデータを含む、ステップと、
    前記ボイスアクションシステムによって、前記ボイスアクション受動的データ構造を前記コンテキストおよび前記新しいボイスアクションのための前記1つまたは複数のトリガ用語と関連付けるステップと
    を含み、
    前記ボイスアクションシステムが、
    ユーザデバイスから、(1)前記ソフトウェアアプリケーションをインストールされた前記ユーザデバイスによって取得されたユーザ発話と、(2)前記ソフトウェアアプリケーションをインストールされた前記ユーザデバイスのステータスまたは前記ユーザデバイス上にインストールされた前記ソフトウェアアプリケーションのステータスを示すコンテキスト情報との指示を受信し、
    (1)前記ユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応すること、および(2)前記コンテキスト情報が前記新しいボイスアクションのための前記コンテキストを満たすことを判定し、
    前記判定に応答して、前記ボイスアクション受動的データ構造を前記ユーザデバイスに提供し、それにより前記ユーザデバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求する
    ように構成される、コンピュータに実装される方法。
  2. 前記コンテキストが、前記ソフトウェアアプリケーションが前記ソフトウェアアプリケーションがインストールされたデバイスのフォアグラウンドで動作していることを指定する、請求項1に記載のコンピュータに実装される方法。
  3. 前記コンテキストが、前記ソフトウェアアプリケーションが前記ソフトウェアアプリケーションがインストールされたデバイスのバックグラウンドで動作していることを指定する、請求項1に記載のコンピュータに実装される方法。
  4. 前記コンテキストが、前記ソフトウェアアプリケーションが特定のアクティビティを実行していることを指定する、請求項1に記載のコンピュータに実装される方法。
  5. 前記コンテキストが、前記ソフトウェアアプリケーションが実行している特定のアクティビティが特定のアクティビティ状態であることを指定する、請求項1に記載のコンピュータに実装される方法。
  6. 特定のデバイスによって取得されたユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応すること、および前記コンテキスト情報が、前記ボイスアクション受動的データ構造に関連付けられた前記コンテキストを満たすことを判定したことに応答して、前記ボイスアクションシステムによって前記特定のデバイスに、前記ボイスアクション受動的データ構造を提供し、それにより前記特定のデバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するステップ
    を含む、請求項1に記載のコンピュータに実装される方法。
  7. 前記特定のデバイスの前記ステータスまたは前記特定のデバイス上にインストールされた前記ソフトウェアアプリケーションの前記ステータスを示す前記コンテキスト情報を受信するステップが、
    前記ボイスアクションシステムによって前記特定のデバイスに、特定のコンテキスト情報の要求を提供するステップと、
    前記要求に応答して前記特定のコンテキスト情報を受信するステップと
    を含む、請求項6に記載のコンピュータに実装される方法。
  8. 前記コンテキスト情報が第2のボイスアクションのためのコンテキストを満たすこと、および前記ユーザ発話の前記トランスクリプションが、前記第2のボイスアクションのためのボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応することを判定するステップであって、前記第2のボイスアクションのための前記ボイスアクション受動的データ構造が、前記第2のボイスアクションを実行するための1つまたは複数の動作を指定する、ステップと、
    前記判定に応答して、前記新しいボイスアクションおよび前記第2のボイスアクションの中からボイスアクションを選択するステップと、
    前記ボイスアクションシステムによって前記特定のデバイスに、前記選択されたボイスアクションに関連付けられた前記ボイスアクション受動的データ構造を提供し、それにより前記特定のデバイス上にインストールされた前記ソフトウェアアプリケーションが、前記選択されたボイスアクションの前記1つまたは複数の動作を実行することを要求するステップと
    を含む、請求項6に記載のコンピュータに実装される方法。
  9. 前記新しいボイスアクションおよび前記第2のボイスアクションの中から前記選択されたボイスアクションを選択するステップが、前記新しいボイスアクションまたは前記第2のボイスアクションのうちの1つのユーザ選択を示すデータを受信したことに応答して、前記選択されたボイスアクションを選択するステップを含む、請求項8に記載のコンピュータに実装される方法。
  10. 前記新しいボイスアクションおよび前記第2のボイスアクションの中から前記選択されたボイスアクションを選択するステップが、
    前記新しいボイスアクションおよび前記第2のボイスアクションの各々にスコアを割り当てるステップと、
    少なくとも前記新しいボイスアクションおよび前記第2のボイスアクションの各々に割り当てられた前記スコアに基づいて、前記選択されたボイスアクションを選択するステップと
    を含む、請求項8に記載のコンピュータに実装される方法。
  11. 前記新しいボイスアクションおよび前記第2のボイスアクションの中から前記選択されたボイスアクションを選択するステップが、前記選択されたボイスアクションに関連付けられた前記ソフトウェアアプリケーションがフォアグラウンドで動作していることを判定したことに応答して、前記選択されたボイスアクションを選択するステップを含む、請求項8に記載のコンピュータに実装される方法。
  12. 前記ソフトウェアアプリケーションのための前記ボイスアクション受動的データ構造を生成するステップが、前記新しいボイスアクションの前記1つまたは複数の動作が前記ソフトウェアアプリケーションによって実行可能であることを判定するステップを含む、請求項1に記載のコンピュータに実装される方法。
  13. 前記ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に類似していることを判定するステップと、
    前記判定に応答して、前記ボイスアクションシステムによって前記特定のデバイスに、前記ユーザ発話が前記1つまたは複数のトリガ用語を指定したかどうか、または前記ソフトウェアアプリケーションに前記新しいボイスアクションを実行させることが意図されたかどうかを確認するユーザ入力の要求を示すデータを提供するステップと、
    前記要求に応答して、前記ボイスアクションシステムによって前記特定のデバイスから、確認を示すデータを受信するステップと、
    前記確認を示す前記データを受信したことに応答して、前記ボイスアクションシステムによって前記特定のデバイスに、ボイスアクション受動的データ構造を提供し、それにより前記特定のデバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するステップと
    を含む、請求項1に記載のコンピュータに実装される方法。
  14. 前記ボイスアクションシステムによって前記ソフトウェアアプリケーションに関連付けられた開発者から、前記ソフトウェアアプリケーションのための前記新しいボイスアクションを配布する要求を受信するステップと、
    前記要求に応答して、前記要求に応答した前記ソフトウェアアプリケーションのための前記新しいボイスアクションを配布するステップであって、前記ソフトウェアアプリケーションのための前記新しいボイスアクションをイネーブルにする、ステップと
    を含む、請求項1に記載のコンピュータに実装される方法。
  15. 前記ボイスアクションシステムによって前記ソフトウェアアプリケーションに関連付けられた開発者から、前記ソフトウェアアプリケーションのための前記新しいボイスアクションの配布を取り消す要求を受信するステップと、
    前記要求に応答して、前記要求に応答した前記ソフトウェアアプリケーションのための前記新しいボイスアクションの配布を無効にするステップであって、前記ソフトウェアアプリケーションのための前記新しいボイスアクションをディスエーブルにする、ステップと
    を含む、請求項1に記載のコンピュータに実装される方法。
  16. 前記ボイスアクションシステムによって前記ソフトウェアアプリケーションに関連付けられた開発者から、前記新しいボイスアクションのテストをイネーブルにする要求を受信するステップであって、前記要求が、前記新しいボイスアクションがイネーブルにされるべき1つまたは複数のデバイスを指定する、受信するステップと、
    前記要求に応答して、前記1つまたは複数の指定されたデバイスのための前記新しいボイスアクションをイネーブルにするステップであって、前記新しいボイスアクションが、前記指定されたデバイス内に含まれないデバイスに対してディスエーブルにされる、イネーブルにするステップと
    を含む、請求項1に記載のコンピュータに実装される方法。
  17. 前記ボイスアクションシステムによって、前記ソフトウェアアプリケーションをインストールされた特定のデバイスによって取得されたユーザ発話の指示を受信するステップと、
    前記ボイスアクションシステムによって、前記ユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応することを判定するステップと、
    前記判定に応答して、前記ボイスアクションシステムによって前記特定のデバイスに、前記ボイスアクション受動的データ構造を提供し、それにより前記特定のデバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するステップと
    を含む、請求項1に記載のコンピュータに実装される方法。
  18. 1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されたとき、
    ボイスアクションシステムによって、前記ボイスアクションシステムとは異なるソフトウェアアプリケーションのための新しいボイスアクションを指定するデータを受信することであって、前記データが、(1)前記新しいボイスアクションを実行するための1つまたは複数の動作と、(2)前記新しいボイスアクションをトリガするための1つまたは複数のトリガ用語と、(3)前記新しいボイスアクションがイネーブルにされたときのユーザデバイスのステータスまたは前記ソフトウェアアプリケーションのステータスを指定するコンテキストとを含む、受信することと、
    前記ボイスアクションシステムによって、少なくとも前記受信されたデータに基づいて、前記ソフトウェアアプリケーションのためのボイスアクション受動的データ構造を生成することであって、前記ボイスアクション受動的データ構造が、前記ソフトウェアアプリケーションによって受信されたときに、前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するデータを含む、生成することと、
    前記ボイスアクションシステムによって、前記ボイスアクション受動的データ構造を前記コンテキストおよび前記新しいボイスアクションのための前記1つまたは複数のトリガ用語と関連付けることと
    を含む動作を実行することを前記1つまたは複数のコンピュータに行わせるように動作可能な命令を記憶する1つまたは複数の記憶デバイスと
    を備え、
    前記ボイスアクションシステムが、
    ユーザデバイスから、(1)前記ソフトウェアアプリケーションをインストールされたデバイスによって取得されたユーザ発話と、(2)前記ソフトウェアアプリケーションをインストールされた前記ユーザデバイスのステータスまたは前記ユーザデバイス上にインストールされた前記ソフトウェアアプリケーションのステータスを示すコンテキスト情報との指示を受信し、
    (1)前記ユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応すること、および(2)前記コンテキスト情報が前記新しいボイスアクションのための前記コンテキストを満たすことを判定し、
    前記判定に応答して、前記ボイスアクション受動的データ構造を前記ユーザデバイスに提供し、それにより前記デバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求する
    ように構成される、システム。
  19. 非一時的コンピュータ可読記憶デバイスであって、1つまたは複数のコンピュータによって実行可能であり、実行時に、
    ボイスアクションシステムによって、前記ボイスアクションシステムとは異なるソフトウェアアプリケーションのための新しいボイスアクションを指定するデータを受信することであって、前記データが、(1)前記新しいボイスアクションを実行するための1つまたは複数の動作と、(2)前記新しいボイスアクションをトリガするための1つまたは複数のトリガ用語と、(3)前記新しいボイスアクションがイネーブルにされたときのユーザデバイスのステータスまたは前記ソフトウェアアプリケーションのステータスを指定するコンテキストとを含む、受信することと、
    前記ボイスアクションシステムによって、少なくとも前記受信されたデータに基づいて、前記ソフトウェアアプリケーションのためのボイスアクション受動的データ構造を生成することであって、前記ボイスアクション受動的データ構造が、前記ソフトウェアアプリケーションによって受信されたときに、前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求するデータを含む、生成することと、
    前記ボイスアクションシステムによって、前記ボイスアクション受動的データ構造を前記コンテキストおよび前記新しいボイスアクションのための前記1つまたは複数のトリガ用語と関連付けることと
    を含む動作を実行することを前記1つまたは複数のコンピュータに行わせる命令を含むソフトウェアを記憶し、
    前記ボイスアクションシステムが、
    前記ユーザデバイスから、(1)前記ソフトウェアアプリケーションをインストールされたデバイスによって取得されたユーザ発話、および(2)前記ソフトウェアアプリケーションをインストールされた前記ユーザデバイスのステータスまたは前記ユーザデバイス上にインストールされた前記ソフトウェアアプリケーションのステータスを示すコンテキスト情報の指示を受信し、
    (1)前記ユーザ発話のトランスクリプションが、前記ボイスアクション受動的データ構造に関連付けられた前記1つまたは複数のトリガ用語に対応すること、および(2)前記コンテキスト情報が前記新しいボイスアクションのための前記コンテキストを満たすことを判定し、
    前記判定に応答して、前記ボイスアクション受動的データ構造を前記ユーザデバイスに提供し、それにより前記デバイス上にインストールされた前記ソフトウェアアプリケーションが前記新しいボイスアクションの前記1つまたは複数の動作を実行することを要求する
    ように構成される、非一時的コンピュータ可読記憶デバイス。
JP2018522970A 2016-03-01 2016-12-23 開発者ボイスアクションシステム Active JP6704450B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/057,453 US9922648B2 (en) 2016-03-01 2016-03-01 Developer voice actions system
US15/057,453 2016-03-01
PCT/US2016/068507 WO2017151215A1 (en) 2016-03-01 2016-12-23 Developer voice actions system

Publications (3)

Publication Number Publication Date
JP2019512102A JP2019512102A (ja) 2019-05-09
JP2019512102A5 JP2019512102A5 (ja) 2019-06-13
JP6704450B2 true JP6704450B2 (ja) 2020-06-03

Family

ID=57799868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018522970A Active JP6704450B2 (ja) 2016-03-01 2016-12-23 開発者ボイスアクションシステム

Country Status (8)

Country Link
US (1) US9922648B2 (ja)
EP (1) EP3424045B1 (ja)
JP (1) JP6704450B2 (ja)
CN (2) CN107146606B (ja)
DE (2) DE102016226302B4 (ja)
GB (1) GB2547968A (ja)
RU (1) RU2704876C1 (ja)
WO (1) WO2017151215A1 (ja)

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
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
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
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
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
WO2014200728A1 (en) 2013-06-09 2014-12-18 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a 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
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
EP3480811A1 (en) 2014-05-30 2019-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
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
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
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
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US9922648B2 (en) 2016-03-01 2018-03-20 Google Llc Developer voice actions system
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10127926B2 (en) 2016-06-10 2018-11-13 Google Llc Securely executing voice actions with speaker identification and authentication input types
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) * 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
KR102348758B1 (ko) * 2017-04-27 2022-01-07 삼성전자주식회사 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED 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
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US11295735B1 (en) * 2017-12-13 2022-04-05 Amazon Technologies, Inc. Customizing voice-control for developer devices
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US11145291B2 (en) * 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Training natural language system with generated dialogues
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10861440B2 (en) * 2018-02-05 2020-12-08 Microsoft Technology Licensing, Llc Utterance annotation user interface
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11133001B2 (en) * 2018-03-20 2021-09-28 Microsoft Technology Licensing, Llc Generating dialogue events for natural language system
US20190295540A1 (en) * 2018-03-23 2019-09-26 Cirrus Logic International Semiconductor Ltd. Voice trigger validator
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN108376544B (zh) * 2018-03-27 2021-10-15 京东方科技集团股份有限公司 一种信息处理方法、装置、设备及计算机可读存储介质
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
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
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10944859B2 (en) * 2018-06-03 2021-03-09 Apple Inc. Accelerated task performance
CN108881466B (zh) * 2018-07-04 2020-06-26 百度在线网络技术(北京)有限公司 交互方法和装置
JP7159355B2 (ja) * 2018-08-23 2022-10-24 グーグル エルエルシー マルチアシスタント環境の特性によるアシスタント応答性の規制
US10410639B1 (en) * 2018-09-06 2019-09-10 International Business Machines Corporation Determining contextual relevance in multi-auditory scenarios
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10943185B1 (en) * 2018-10-23 2021-03-09 Bank Of America Corporation Supervised machine-learning training platform with isolated update testing and bi-directional update propogation
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11062697B2 (en) * 2018-10-29 2021-07-13 International Business Machines Corporation Speech-to-text training data based on interactive response data
US11087749B2 (en) * 2018-12-20 2021-08-10 Spotify Ab Systems and methods for improving fulfillment of media content related requests via utterance-based human-machine interfaces
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
CN109817210B (zh) * 2019-02-12 2021-08-17 百度在线网络技术(北京)有限公司 语音写作方法、装置、终端和存储介质
US11741951B2 (en) * 2019-02-22 2023-08-29 Lenovo (Singapore) Pte. Ltd. Context enabled voice commands
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11238868B2 (en) * 2019-05-06 2022-02-01 Google Llc Initializing non-assistant background actions, via an automated assistant, while accessing a non-assistant application
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11461221B2 (en) * 2019-06-05 2022-10-04 Google Llc Action validation for digital assistant-based applications
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
CN111354360A (zh) * 2020-03-17 2020-06-30 北京百度网讯科技有限公司 语音交互处理方法、装置和电子设备
US11810578B2 (en) 2020-05-11 2023-11-07 Apple Inc. Device arbitration for digital assistant-based intercom systems
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
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
US11558546B2 (en) 2020-11-24 2023-01-17 Google Llc Conditional camera control via automated assistant commands
CN113593544A (zh) * 2021-06-11 2021-11-02 青岛海尔科技有限公司 设备的控制方法和装置、存储介质及电子装置
US11727068B2 (en) * 2021-11-29 2023-08-15 Salesforce, Inc. Customizable intent driven application triggering system
US20230274734A1 (en) * 2022-01-04 2023-08-31 Sap Se Support for syntax analysis during processing instructions for execution
US20230273943A1 (en) * 2022-02-28 2023-08-31 International Business Machines Corporation Synchronizing a sensor network and an ontology

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69326431T2 (de) * 1992-12-28 2000-02-03 Toshiba Kawasaki Kk Spracherkennungs-Schnittstellensystem, das als Fenstersystem und Sprach-Postsystem verwendbar ist
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
US6125347A (en) * 1993-09-29 2000-09-26 L&H Applications Usa, Inc. System for controlling multiple user application programs by spoken input
US5748191A (en) 1995-07-31 1998-05-05 Microsoft Corporation Method and system for creating voice commands using an automatically maintained log interactions performed by a user
EP0980574B1 (en) 1997-10-20 2004-03-10 Koninklijke Philips Electronics N.V. Pattern recognition enrolment in a distributed system
US6263375B1 (en) 1998-08-31 2001-07-17 International Business Machines Corp. Method for creating dictation macros
US6192343B1 (en) * 1998-12-17 2001-02-20 International Business Machines Corporation Speech command input recognition system for interactive computer display with term weighting means used in interpreting potential commands from relevant speech terms
US6424357B1 (en) 1999-03-05 2002-07-23 Touch Controls, Inc. Voice input system and method of using same
DE69942663D1 (de) * 1999-04-13 2010-09-23 Sony Deutschland Gmbh Zusammenfügen von Sprachschnittstellen zur gleichzeitigen Benützung von Vorrichtungen und Anwendungen
US6374226B1 (en) * 1999-08-06 2002-04-16 Sun Microsystems, Inc. System and method for interfacing speech recognition grammars to individual components of a computer program
US6442522B1 (en) * 1999-10-12 2002-08-27 International Business Machines Corporation Bi-directional natural language system for interfacing with multiple back-end applications
US6748361B1 (en) 1999-12-14 2004-06-08 International Business Machines Corporation Personal speech assistant supporting a dialog manager
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
US20050234727A1 (en) * 2001-07-03 2005-10-20 Leo Chiu Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response
US7167831B2 (en) * 2002-02-04 2007-01-23 Microsoft Corporation Systems and methods for managing multiple grammars in a speech recognition system
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
US20080249779A1 (en) * 2003-06-30 2008-10-09 Marcus Hennecke Speech dialog system
US7363228B2 (en) 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
US7158779B2 (en) * 2003-11-11 2007-01-02 Microsoft Corporation Sequential multimodal input
US8942985B2 (en) * 2004-11-16 2015-01-27 Microsoft Corporation Centralized method and system for clarifying voice commands
JP3984988B2 (ja) 2004-11-26 2007-10-03 キヤノン株式会社 ユーザインタフェース設計装置およびその制御方法
US8788271B2 (en) 2004-12-22 2014-07-22 Sap Aktiengesellschaft Controlling user interfaces with contextual voice commands
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
JP4260788B2 (ja) 2005-10-20 2009-04-30 本田技研工業株式会社 音声認識機器制御装置
JP4878471B2 (ja) 2005-11-02 2012-02-15 キヤノン株式会社 情報処理装置およびその制御方法
US8301448B2 (en) * 2006-03-29 2012-10-30 Nuance Communications, Inc. System and method for applying dynamic contextual grammars and language models to improve automatic speech recognition accuracy
US7899673B2 (en) * 2006-08-09 2011-03-01 Microsoft Corporation Automatic pruning of grammars in a multi-application speech recognition interface
KR100873956B1 (ko) * 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템
US7881932B2 (en) * 2006-10-02 2011-02-01 Nuance Communications, Inc. VoiceXML language extension for natively supporting voice enrolled grammars
US20080114604A1 (en) 2006-11-15 2008-05-15 Motorola, Inc. Method and system for a user interface using higher order commands
US8099287B2 (en) * 2006-12-05 2012-01-17 Nuance Communications, Inc. Automatically providing a user with substitutes for potentially ambiguous user-defined speech commands
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
US20090030691A1 (en) * 2007-03-07 2009-01-29 Cerra Joseph P Using an unstructured language model associated with an application of a mobile communication facility
US7877258B1 (en) 2007-03-29 2011-01-25 Google Inc. Representing n-gram language models for compact storage and fast retrieval
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
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
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
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
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
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
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US8515734B2 (en) 2010-02-08 2013-08-20 Adacel Systems, Inc. Integrated language model, related systems and methods
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
DE102010040553A1 (de) * 2010-09-10 2012-03-15 Siemens Aktiengesellschaft Spracherkennungsverfahren
US20120078635A1 (en) 2010-09-24 2012-03-29 Apple Inc. Voice control system
KR101828273B1 (ko) 2011-01-04 2018-02-14 삼성전자주식회사 결합기반의 음성명령 인식 장치 및 그 방법
US9082408B2 (en) 2011-06-13 2015-07-14 Mmodal Ip Llc Speech recognition using loosely coupled components
US9489375B2 (en) 2011-06-19 2016-11-08 Mmodal Ip Llc Speech recognition using an operating system hooking component for context-aware recognition models
US8762156B2 (en) * 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
JP2012128440A (ja) * 2012-02-06 2012-07-05 Denso Corp 音声対話装置
US20130219277A1 (en) * 2012-02-21 2013-08-22 Mobotap Inc. Gesture and Voice Controlled Browser
US20130238326A1 (en) 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
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
US9275411B2 (en) 2012-05-23 2016-03-01 Google Inc. Customized voice action system
US9489940B2 (en) 2012-06-11 2016-11-08 Nvoq Incorporated Apparatus and methods to update a language model in a speech recognition system
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
US10042603B2 (en) 2012-09-20 2018-08-07 Samsung Electronics Co., Ltd. Context aware service provision method and apparatus of user device
KR20140039946A (ko) * 2012-09-28 2014-04-02 삼성전자주식회사 영상처리장치 및 그 제어방법, 영상처리 시스템
KR20140089861A (ko) 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US9112984B2 (en) * 2013-03-12 2015-08-18 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US20140279232A1 (en) 2013-03-14 2014-09-18 Andrew Man-Hon Lau System and method for an affinity capture, user feedback and affinity analysis
US9292254B2 (en) 2013-05-15 2016-03-22 Maluuba Inc. Interactive user interface for an intelligent assistant
US9443507B2 (en) 2013-07-15 2016-09-13 GM Global Technology Operations LLC System and method for controlling a speech recognition system
US10095471B2 (en) * 2013-09-20 2018-10-09 Oracle International Corporation Context aware voice interface for computing devices
KR102155482B1 (ko) * 2013-10-15 2020-09-14 삼성전자 주식회사 디스플레이장치 및 그 제어방법
US9697522B2 (en) 2013-11-01 2017-07-04 Plantronics, Inc. Interactive device registration, setup and use
US8849675B1 (en) * 2013-12-18 2014-09-30 Google Inc. Suggested query constructor for voice actions
US9582246B2 (en) 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
US9639854B2 (en) 2014-06-26 2017-05-02 Nuance Communications, Inc. Voice-controlled information exchange platform, such as for providing information to supplement advertising
US9548066B2 (en) 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US9472196B1 (en) * 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US9922648B2 (en) * 2016-03-01 2018-03-20 Google Llc Developer voice actions system

Also Published As

Publication number Publication date
DE202016107480U1 (de) 2017-06-02
CN107146606B (zh) 2020-11-10
EP3424045A1 (en) 2019-01-09
CN107146606A (zh) 2017-09-08
RU2704876C1 (ru) 2019-10-31
CN113113014A (zh) 2021-07-13
DE102016226302A1 (de) 2017-09-07
GB2547968A (en) 2017-09-06
JP2019512102A (ja) 2019-05-09
EP3424045B1 (en) 2020-09-23
DE102016226302B4 (de) 2024-02-22
WO2017151215A1 (en) 2017-09-08
US20170256256A1 (en) 2017-09-07
US9922648B2 (en) 2018-03-20
GB201621570D0 (en) 2017-02-01

Similar Documents

Publication Publication Date Title
JP6704450B2 (ja) 開発者ボイスアクションシステム
US11929075B2 (en) Voice action discoverability system
JP6873188B2 (ja) 開発者音声アクションシステム
US10089982B2 (en) Voice action biasing system
US20220414341A1 (en) Intent addition for a chatbot

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20180831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200512

R150 Certificate of patent or registration of utility model

Ref document number: 6704450

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250