JP6666920B2 - デジタルパーソナルアシスタント内のヘッドレスタスクの完了 - Google Patents

デジタルパーソナルアシスタント内のヘッドレスタスクの完了 Download PDF

Info

Publication number
JP6666920B2
JP6666920B2 JP2017536242A JP2017536242A JP6666920B2 JP 6666920 B2 JP6666920 B2 JP 6666920B2 JP 2017536242 A JP2017536242 A JP 2017536242A JP 2017536242 A JP2017536242 A JP 2017536242A JP 6666920 B2 JP6666920 B2 JP 6666920B2
Authority
JP
Japan
Prior art keywords
voice
user
application
task
personal assistant
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
JP2017536242A
Other languages
English (en)
Other versions
JP2018511095A (ja
JP2018511095A5 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2018511095A publication Critical patent/JP2018511095A/ja
Publication of JP2018511095A5 publication Critical patent/JP2018511095A5/ja
Application granted granted Critical
Publication of JP6666920B2 publication Critical patent/JP6666920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Collating Specific Patterns (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

[0001] コンピューティング技術が進歩するにつれて、ますます強力なコンピューティングデバイスが利用可能になっている。たとえば、コンピューティングデバイスは、発話認識などの機能をますます追加している。発話は、ユーザがコンピューティングデバイスと通信するための有効な方法である場合があり、発話制御デジタルパーソナルアシスタントなどの発話制御アプリケーションが開発されている。
[0002] デジタルパーソナルアシスタントは、個人のためのタスクまたはサービスを実行するために使用され得る。たとえば、デジタルパーソナルアシスタントは、モバイルデバイスまたはデスクトップコンピュータ上で動作するソフトウェアモジュールであり得る。デジタルパーソナルアシスタントによって実行される得るタスクまたはサービスの例は、天気の状態および天気予報、スポーツの得点、通行方向および交通状況、地方のニュースおよび/または全国ニュース、ならびに株価を検索することと、新しいスケジュールエントリを作成することによってユーザのスケジュールを管理すること、および今後のイベントをユーザに思い出させることと、リマインダを記憶および検索することとを含むことができる。
[0003] しかしながら、デジタルパーソナルアシスタントは、ユーザが実行させることを望み得るすべてのタスクを実行できるとは限らない可能性が高い。したがって、発話制御デジタルパーソナルアシスタントに関連する技術の改善の十分な機会が存在する。
[0004] この概要は、以下の詳細な説明でさらに説明する概念の選択を簡略化した形態で紹介するために提供される。この概要は、特許請求された主題の重要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求された主題の範囲を限定するために使用されることを意図するものでもない。
[0005] デジタルパーソナルアシスタントのバックグラウンドにおいてアプリケーションのタスクをヘッドレスに完了するための技法およびツールについて説明する。たとえば、マイクロホンを備えるコンピューティングデバイスによって方法が実施される。方法は、ユーザによって生成されたデジタル音声入力を音声制御デジタルパーソナルアシスタントによって受信するステップを備えることができる。デジタル音声入力は、マイクロホンを介して受信され得る。ユーザ音声コマンドを決定するために、デジタル音声入力を使用して自然言語処理が実行され得る。ユーザ音声コマンドは、サードパーティの音声対応アプリケーションの事前定義された機能を実行することを求める要求を備えることができる。事前定義された機能は、音声入力を使用する利用可能なサードパーティの音声対応アプリケーションによってサポートされる機能を定義するデータ構造を使用して識別され得る。サードパーティの音声対応アプリケーションは、サードパーティの音声対応アプリケーションのユーザインターフェースがコンピューティングデバイスのディスプレイ上に現われることなしに、事前定義された機能をバックグラウンドプロセスとして実行させられ得る。サードパーティの音声対応アプリケーションから、事前定義された機能に関連付けられた状態を示す応答が受信され得る。音声制御デジタルパーソナルアシスタントのユーザインターフェースは、サードパーティの音声対応アプリケーションのユーザインターフェースを表に出すことなく音声制御デジタルパーソナルアシスタントのユーザインターフェースのコンテキスト内から応答が来るように、事前定義された機能に関連付けられた受信された状態に基づいてユーザに応答を提供することができる。
[0006] 別の例として、本明細書で説明する動作を実行するための、処理ユニットと、メモリと、1つまたは複数のマイクロホンとを備えるコンピューティングデバイスが提供され得る。たとえば、コンピューティングデバイスによって実行される方法は、1つまたは複数のマイクロホンを介して、ユーザによって生成された発話入力を受信するステップを含むことができる。発声されたコマンドを決定するために、発話入力を使用して発話認識が実行され得る。発声されたコマンドは、サードパーティのアプリケーションのタスクを実行することを求める要求を備えることができる。タスクは、発声されたコマンドによって呼び出し可能なサードパーティのアプリケーションのタスクを定義するデータ構造を使用して識別され得る。サードパーティのアプリケーションのタスクがヘッドレスに実行可能であるかどうかが决定され得る。サードパーティのアプリケーションは、サードパーティのアプリケーションのタスクがヘッドレスに実行可能であると决定されたとき、タスクをヘッドレスに実行するバックグラウンドプロセスとして実行させられ得る。サードパーティのアプリケーションから、タスクに関連付けられた状態を示す応答が受信され得る。発話制御デジタルパーソナルアシスタントのユーザインターフェースは、サードパーティのアプリケーションのユーザインターフェースを表に出すことなく発話制御デジタルパーソナルアシスタントのユーザインターフェースのコンテキスト内から応答が来るように、タスクに関連付けられた受信された状態に基づいてユーザに応答を提供することができる。
[0007] 別の例として、本明細書で説明する動作を実行するための、処理ユニットとメモリとを備えるコンピューティングデバイスが提供され得る。たとえば、コンピューティングデバイスは、音声制御デジタルパーソナルアシスタントのコンテキスト内で音声対応アプリケーションのタスクを完了するための動作を実行することができる。動作は、ユーザによって生成されたデジタル音声入力を音声制御デジタルパーソナルアシスタントにおいて受信するステップを備えることができる。デジタル音声入力は、マイクロホンを介して受信され得る。ユーザ音声コマンドを決定するために、デジタル音声入力を使用して自然言語処理が実行され得る。ユーザ音声コマンドは、音声対応アプリケーションのタスクを実行することを求める要求を備えることができる。タスクは、音声対応アプリケーションのタスクにユーザ音声コマンドをマッピングする拡張可能なデータ構造を使用して識別され得る。音声対応アプリケーションのタスクがフォアグラウンドタスクであるか、それともバックグラウンドタスクであるかが决定され得る。タスクがバックグラウンドタスクであると决定されたとき、音声対応アプリケーションは、タスクをバックグラウンドタスクとして、音声対応アプリケーションのユーザインターフェースが表に出ることなく音声制御デジタルパーソナルアシスタントのコンテキスト内で実行させられ得る。音声対応アプリケーションからの応答が受信され得る。応答は、タスクに関連付けられた状態を示すことができる。応答は、タスクに関連付けられた受信された状態に基づいてユーザに提供され得る。応答は、タスクがバックグラウンドタスクであると决定されたとき、音声対応アプリケーションのユーザインターフェースが表に出ることなく音声制御デジタルパーソナルアシスタントのコンテキスト内で提供され得る。
[0008] 本明細書で説明されるように、様々な他の特徴および利点が、望みどおりに技法に組み込まれ得る。
[0009]デジタルパーソナルアシスタントのバックグラウンドにおいてアプリケーションのタスクをヘッドレスに完了するためのシステムの一例を示す図である。 [0010]デジタルパーソナルアシスタントのバックグラウンドにおいてアプリケーションのタスクをヘッドレスに完了するための例示的なソフトウェアアーキテクチャを示す図である。 [0011]デジタルパーソナルアシスタントとインターフェースするアプリケーションのための例示的な状態機械の図である。 [0012]アプリケーションとデジタルパーソナルアシスタントとの間のインターフェースを可能にするためのデータ構造を作成するために使用され得るコマンド定義の一例の図である。 [0013]デジタルパーソナルアシスタント内からアプリケーションのタスクをヘッドレスに実行するための複数のスレッドの通信を示す例示的なシーケンス図である。 [0014]デジタルパーソナルアシスタントのバックグラウンド内でアプリケーションのタスクをヘッドレスに完了するための例示的な方法のフローチャートである。 [0015]ユーザがデジタルパーソナルアシスタントに発話している間にアプリケーションをウォームアップするかどうかを決定するための例示的な方法のフローチャートである。 [0016]いくつかの説明した実施形態が実施され得る例示的なコンピューティングシステムの図である。 [0017]本明細書で説明する技法と共に使用され得る例示的なモバイルデバイスの図である。 [0018]本明細書で説明する技法と共に使用され得る例示的なクラウドサポート環境の図である。
[0019] 概略
ユーザがデジタルパーソナルアシスタントを使用することでより快適になるにつれて、ユーザは、デジタルパーソナルアシスタントのコンテキスト内でより多くのアクションを実行することを好む可能性がある。しかしながら、デジタルパーソナルアシスタントのプロバイダは、ユーザが使用することを望む可能性があるすべてのアプリケーションを予想したり、または開発するために時間を費やしたりすることはできない。したがって、デジタルパーソナルアシスタントは、デジタルパーソナルアシスタントのプロバイダ以外のエンティティによって作成されたサードパーティのアプリケーションを呼び出すまたは起動することができることが望ましい場合がある。
[0020] 典型的な解決策では、アプリケーションのユーザインターフェースは、デジタルパーソナルアシスタントがアプリケーションを起動し、プログラム制御がデジタルパーソナルアシスタントからアプリケーションにわたったとき表に出される。アプリケーションのユーザインターフェースが表に出されると、ユーザは、要求の状態を確認することができ、ユーザは、アプリケーション内から追加のタスクを実行することができる。デジタルパーソナルアシスタントのユーザインターフェースに戻るために、ユーザは、制御がデジタルパーソナルアシスタントに返され得る前に、アプリケーションを終了しなければならない。
[0021] 携帯電話のデジタルパーソナルアシスタントを使用する1つの特定の例として、ユーザは、携帯電話にインストールされた動画アプリケーションを使用してユーザの待ち行列に動画を追加することを要求することができる。たとえば、ユーザは、デジタルパーソナルアシスタントのユーザインターフェースに「動画アプリケーション、Movie−Xを私の待ち行列に追加」と言うことができる。コマンドが発話され、アシスタントによって認識された後、アシスタントは、動画アプリケーションのユーザインターフェースを提示することになる動画アプリケーションを開始することができる。動画は、ユーザの待ち行列に追加され得、待ち行列は、動画が追加されたことの確認としてユーザに提示され得る。ユーザは、動画アプリケーションを使用し続けることができ、または、ユーザは、デジタルパーソナルアシスタントのユーザインターフェースに戻るために動画アプリケーションを閉じることができる。
[0022] デジタルパーソナルアシスタントがアプリケーションに制御を移行したとき、アプリケーションとそのユーザインターフェースとをメモリにロードすることは、かなりの時間がかかる可能性がある。遅延は、たとえば、ユーザが後続のタスクを達成することを遅延させることによって、および/またはユーザの一連の考えを中断させることによって、ユーザの生産性に潜在的に影響を与える可能性がある。たとえば、ユーザの注意は、デジタルパーソナルアシスタントのユーザインターフェースに戻る前に、アプリケーションを閉じることに向けられる可能性がある。さらに、アプリケーションに制御を移行することによって、デジタルパーソナルアシスタントに利用可能なコンテキスト情報は、アプリケーションに利用可能ではない可能性がある。たとえば、デジタルパーソナルアシスタントは、ユーザの配偶者の身元および連絡先情報、ユーザの家もしくはオフィスの場所、またはユーザのデイケアプロバイダの場所を理解する可能性があるが、アプリケーションは、コンテキスト情報へのアクセスを持たない可能性がある。
[0023] 本明細書で説明する技法および解決策では、デジタルパーソナルアシスタントは、サードパーティのアプリケーションのタスクがバックグラウンドにおいて実行され得るかどうかを決定することができ、それにより、タスクを実行するための動作が、デジタルパーソナルアシスタントのコンテキスト内で、音声対応アプリケーションのユーザインターフェースを表に出すことなく実行されるようなる。したがって、ユーザは、タスクの所与のセットが、ユーザタスクを行っているアプリケーションのコンテキストとは対照的に、デジタルパーソナルアシスタントのコンテキスト内で実行されることを経験することができる。さらに、アプリケーションのタスクがバックグラウンドにおいて実行されるとき、アプリケーションのユーザインターフェースは、メモリにロードされないので、デバイスの電力は、潜在的に低減され得る(かつ電池寿命が延長される)。
[0024] アプリケーションは、アシスタントが提供するネイティブ能力のリストを拡張するために、デジタルパーソナルアシスタントに登録することができる。アプリケーションは、デバイスにインストールされ得、または(インターネットなどの)ネットワークを介してサービスとして呼び出され得る。スキーマ定義は、アプリケーションが、ユーザがコマンド/タスクを要求するときヘッドレスに起動される要求を用いて音声コマンドを登録することを可能にすることができる。たとえば、アプリケーションは、デジタルパーソナルアシスタントによってアクセス可能な音声コマンド定義(VCD)ファイルを含むことができ、VCDファイルは、ヘッドレスに起動され得るタスクを識別する。定義は、アプリケーションのタスクが常にヘッドレスに起動されることを指定することができ、または、定義は、アプリケーションのタスクが特定の状況下でヘッドレスに起動されることを指定することができる。たとえば、アプリケーションは、ユーザが(ワイヤレスフィットネスバンドなどの)表示面を持たないデバイス上でタスクが実行されるように要求している場合、または、ユーザが(Bluetooth(登録商標)ヘッドセットに接続されているときなど)ハンズフリーモードで操作しているとき、ヘッドレスになにかをすることを選択することができる。
[0025] アプリケーションは、要求されたタスクの進行、失敗、および正常な完了に対する応答を提供することができ、状態に関連する出力は、デジタルパーソナルアシスタントのユーザインターフェースによって提供され得る。アプリケーションは、たとえば、表示テキスト、読み上げられ得るテキスト、アプリケーションに戻るディープリンク、ウェブページまたはウェブサイトへのリンク、および、ハイパーテキストマークアップ言語(HTML)ベースのウェブコンテンツを含む、デジタルパーソナルアシスタントに戻る多くの異なるタイプのデータを提供することができる。アプリケーションからアシスタントへのデータは、アシスタントのユーザインターフェースを介してアシスタントのネイティブ機能から来るかのように提示され得る。
[0026] ユーザが複数の意味または結果を有する可能性があるアプリケーションに要求を提供する場合、アプリケーションは、デジタルパーソナルアシスタントに選択肢のリストを提供することができ、アシスタントのユーザインターフェースは、選択肢間の曖昧さをなくすために使用され得る。ユーザが、破壊的である可能性があるか、または重要である要求をアプリケーションに提供する場合(たとえば、バンキングアプリケーションが残高転送を実行することをユーザが要求するとき)、破壊的または重要なタスクを完了する前に要求を確認するために、アシスタントの確認インターフェースが使用され得る。
[0027] アプリケーションは、コマンドが発声されているときに推測的にロードまたはウォームアップされ得る。たとえば、ユーザがコマンド「動画アプリケーション、Movie−Xを私の待ち行列に追加」からの「動画アプリケーション」という語句を完了したとき、メモリが割り当てられ得、コマンドが完了したときのサブルーチンの使用に備えて、インストールされた動画アプリケーションの様々なサブルーチンが、ストレージから取り出され、割り当てられたメモリにロードされ得る。アプリケーションがウェブサービスであるとき、ウォームアップは、たとえば、通信セッションを確立することと、リモートサーバにおけるデータベースからユーザ固有情報を取得することとを含む場合がある。アプリケーションをウォームアップすることによって、対話がより自然になるように、そして、ユーザが次のタスクにすばやく移動し、ユーザより生産的にすることができるように、ユーザに応答する時間は、潜在的に短縮され得る。
[0028] 本明細書の技法を使用すれば、動画アプリケーションを用いてユーザの待ち行列に動画を追加することを望むユーザは、動画アプリケーションを起動し、制御をアプリケーションに渡すという典型的な解決策を使用する場合とは異なる体験を有することができる。この例では、動画アプリケーションの動画を待ち行列に追加するコマンドは、VCDファイルなどのコマンドデータ構造内にヘッドレスとして定義され得る。ユーザがコマンド「動画アプリケーション、Movie−Xを私の待ち行列に追加」からの「動画アプリケーション」を言ったとき、ユーザへの応答時間が短縮され得るように、動画アプリケーションは、ウォームアップされ得る。コマンドが完了したとき、動画は、動画アプリケーションを使用して、しかし、動画アプリケーションのユーザインターフェースを表に出すことなく、ユーザの待ち行列に追加され得る。動画は、ユーザの待ち行列に追加され得、デジタルパーソナルアシスタントは、動画が追加されたことを(アシスタントのユーザインターフェースを使用して)確認することができる。ユーザは、迅速な応答時間を体験することができ、タスクを完了するためにより少ないステップを実行することができる(たとえば、動画アプリケーションは、閉じられる必要がない)。
[0029] デジタルパーソナルアシスタントを含む例示的なシステム
図1は、デジタルパーソナルアシスタント120のバックグラウンドにおいて音声対応アプリケーション110のタスク112をヘッドレスに完了するためのシステム100の一例を示すシステム図である。音声対応アプリケーション110およびデジタルパーソナルアシスタント120は、コンピューティングデバイス130にインストールされたソフトウェアモジュールであり得る。コンピューティングデバイス130は、たとえば、デスクトップコンピュータ、ラップトップ、携帯電話、スマートフォン、ウェアラブルデバイス(腕時計やワイヤレス電子バンドなど)、またはタブレットコンピュータであり得る。コンピューティングデバイス130は、デジタルパーソナルアシスタント120によって起動され得るアプリケーションおよびアプリケーションのタスクを識別するためのコマンドデータ構造140を含むことができる。アプリケーションは、(アプリケーションが起動されたときにアプリケーションのユーザインターフェースが現れるような)フォアグラウンドおよび/または(アプリケーションが起動されたときにアプリケーションのユーザインターフェースが現れないような)バックグラウンドにおいてデジタルパーソナルアシスタント120によって起動され得る。たとえば、アプリケーションのいくつかのタスクは、フォアグラウンドにおいて起動され得、同じアブレーションの異なるタスクは、バックグラウンドにおいて起動され得る。コマンドデータ構造140は、アプリケーションおよび/またはアプリケーションのタスクがどのようにデジタルパーソナルアシスタント120から起動されるべきかを定義することができる。
[0030] コンピューティングデバイス130は、音を電気信号に変換するためのマイクロホン150を含むことができる。マイクロホン150は、空気圧振動から電気信号を生成するための、それぞれ、電磁誘導、静電容量の変化、または圧電気を使用するダイナミックマイクロホン、コンデンサーマイクロホン、圧電マイクロホンであり得る。マイクロホン150は、増幅器、1つもしくは複数のアナログフィルタもしくはデジタルフィルタ、および/または、デジタル音声入力を生成するためのアナログ−デジタル変換器を含むことができる。デジタル音声入力は、たとえばユーザがタスクを達成するようデジタルパーソナルアシスタント120に命じているときに、ユーザの音声を再生することを含むことができる。コンピューティングデバイス130は、ユーザがテキスト入力を入力することを可能にするためのタッチスクリーンまたはキーボード(図示せず)を含むことができる。
[0031] デジタル音声入力および/またはテキスト入力は、デジタルパーソナルアシスタント120の自然言語処理モジュール122によって処理され得る。たとえば、自然言語処理モジュール122は、デジタル音声入力を受信することができ、ユーザによって発声された単語をテキストに翻訳することができる。抽出されたテキストは、ユーザ音声コマンドを決定するために意味的に解析され得る。デジタル音声入力を解析し、発声されたコマンドに応答してアクションをとることによって、デジタルパーソナルアシスタント120は、音声制御され得る。たとえば、デジタルパーソナルアシスタント120は、大部分、ユーザの意図に一致する可能性が高いコマンドを決定するために、抽出されたテキストを潜在的なユーザコマンドのリストと比較することができる。一致は、統計的方法もしくは確率的方法、決定木もしくは他の規則、他の適切な一致基準、またはそれらの組合せに基づき得る。潜在的なユーザコマンドは、デジタルパーソナルアシスタント120のネイティブコマンドおよび/またはコマンドデータ構造140内に定義されたコマンドであり得る。したがって、コマンドデータ構造140内にコマンドを定義することによって、デジタルパーソナルアシスタント120によってユーザの代わりに実行され得るタスクの範囲は、拡張され得る。潜在的なコマンドは、コマンドデータ構造140内のヘッドレスタスクまたはバックグラウンドタスクであると定義され得る音声対応アプリケーション110のタスク112を実行することを含むことができる。
[0032] 自然言語処理モジュール122は、ユーザ発語が完了する前にテキストの中間文字列が解析され得るように、発話が処理されつつテキストのストリームを生成することができる。したがって、ユーザがアプリケーションの名前でコマンドを開始する場合、アプリケーションは、発語の初期に特定され得、アプリケーションは、ユーザがコマンドを完了する前にウォームアップされ得る。アプリケーションをウォームアップすることは、比較的低速の不揮発性メモリ(ハードディスクドライブまたはフラッシュメモリなど)からアプリケーションの命令を取り出すことと、比較的高速の揮発性メモリ(メインメモリまたはキャッシュメモリなど)に命令を記憶することとを含むことができる。
[0033] デジタルパーソナルアシスタント120が、コマンドがアプリケーションのタスクに関連付けられたと決定したとき、アプリケーションのタスクは、実行され得る。デジタルパーソナルアシスタント120が、(たとえば、コマンドデータ構造140内の定義を解析することによって)アプリケーションのタスクがバックグラウンドプロセスとして実行されることを決定した場合、アプリケーションは、バックグラウンドにおいて実行され得る。音声対応アプリケーション110などのアプリケーションは、デジタルパーソナルアシスタント120と通信することができる。たとえば、アプリケーションは、タスクの完了に関連する一組の状態を順序付けすることができ、アプリケーションの状態は、デジタルパーソナルアシスタント120に伝達され得る。たとえば、アプリケーションは、「初期」状態で開始し、タスクが実行されている間は「進行」状態に移行し、次いで、タスクが完了したときは「最終」状態に移行することができる。
[0034] デジタルパーソナルアシスタント120は、ユーザインターフェース124を介してタスクの進行状況を報告することができる。ユーザインターフェース124は、コンピューティングデバイス130のディスプレイ上にテキスト、グラフィックス、もしくはハイパーリンクを提示すること、コンピューティングデバイス130のスピーカからオーディオ出力を生成すること、または、コンピューティングデバイス130のオフセンター重量に接続された電気モータからの振動などの他の感覚出力を生成することなどの様々な方法でユーザに情報を伝達することができる。たとえば、ユーザインターフェース124は、タスクが進行状態にあるとき、コンピューティングデバイス130の表示画面上にスピニングホイールを提示させることができる。別の例として、ユーザインターフェース124は、タスクが最終状態にあり、タスクが正常に完了したとき、タスクの正常な完了を示すシミュレートされた発話を生成することができる。タスクの状態を報告するためにデジタルパーソナルアシスタント120のユーザインターフェース124を使用することによって、応答は、アプリケーションのユーザインターフェースを表に出すことなく、ユーザインターフェース124のコンテキスト内から来ることができる。
[0035] 音声対応アプリケーション110がデジタルパーソナルアシスタント120の製造元によってまたは製造元とは異なるサードパーティによって作成され得ることに留意すべきである。デジタルパーソナルアシスタント120および音声対応アプリケーション110の相互運用は、アプリケーション間のソフトウェア契約を遵守し、コマンドデータ構造140内の機能を定義することによって達成され得る。音声対応アプリケーション110は、スタンドアロンアプリケーションとして、またはデジタルパーソナルアシスタント120の構成要素としてのみ動作することが可能であり得る。スタンドアロンアプリケーションとして、音声対応アプリケーション110は、たとえば、音声対応アプリケーション110に関連するアイコンをタップまたはダブルクリックすることによって、フォアグラウンドプロセスとしてデジタルパーソナルアシスタント120の外部で起動され得、コンピューティングデバイス130の表示画面上に表示され得る。音声対応アプリケーション110は、起動されたときにユーザインターフェースを提示することができ、ユーザは、タスクを実行するためにユーザインターフェースと対話することができる。対話は、音声入力のみであってもよく、または、テキスト入力やジェスチャなどの他の入力モードが使用されてもよい。デジタルパーソナルアシスタント120によって呼び出されるアプリケーションは、コンピューティングデバイス130にインストールされてもよく、またはウェブサービスであってもよい。
[0036] デジタルパーソナルアシスタント120は、リモートサーバコンピュータ160上で実行されるウェブサービス162などのウェブサービスを呼び出すことができる。ウェブサービスは、ネットワーク170などのネットワーク上のネットワークアドレスにおいて提供されるソフトウェア機能である。ネットワーク170は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、イントラネット、ワイヤードネットワーク、ワイヤレスネットワーク、セルラネットワーク、それらの組合せ、または、コンピューティングデバイス130とリモートサーバコンピュータ160との間の通信のためのチャネルを提供するのに適した任意のネットワークを含むことができる。図1に示すネットワークトポロジが単純化されていることと、複数のネットワークおよびネットワーキングデバイスが本明細書」で開示する様々なコンピューティングシステムを相互接続するために利用され得ることとを理解すべきである。ウェブサービス162は、デジタルパーソナルアシスタント120のカーネルまたは主要部分の一部として呼び出され得る。たとえば、ウェブサービス162は、自然言語処理モジュール122のサブルーチンとして呼び出され得る。加えて、または代替的に、ウェブサービス162は、コマンドデータ構造140内で定義されたアプリケーションであり得、デジタルパーソナルアシスタント120からヘッドレスに起動されることが可能であり得る。
[0037] デジタルパーソナルアシスタントを含む例示的なソフトウェアアーキテクチャ
図2は、デジタルパーソナルアシスタント120のバックグラウンドにおいてアプリケーションのタスクをヘッドレスに完了するための例示的なソフトウェアアーキテクチャ200を示す図である。アプリケーションのタスクをヘッドレスに実行するとき、タスクは、バックグラウンドにおいて実行され得、アプリケーションのユーザインターフェースは、実行されているタスクの結果として表に出されない。むしろ、デジタルパーソナルアシスタント120のユーザインターフェースは、ユーザがアプリケーションのコンテキストではなくデジタルパーソナルアシスタント120のコンテキスト内で対話するように、ユーザへの出力および/またはユーザからの入力を提供するために使用され得る。したがって、アプリケーションのヘッドレスに実行されるタスクは、タスクの実行の継続時間中にバックグラウンドにおいて実行することができ、アプリケーションのユーザインターフェースは、決して表に出されない。コンピューティングデバイス130などのコンピューティングデバイスは、アーキテクチャ200に従って編成された、デジタルパーソナルアシスタント120のためのソフトウェアと、オペレーティングシステム(OS)カーネル210と、アプリケーション230とを実行することができる。
[0038] OSカーネル210は、一般に、コンピューティングデバイス130のソフトウェア構成要素とハードウェア構成要素との間のインターフェースを提供する。OSカーネル210は、レンダリング(たとえば、ディスプレイへの視覚的出力のレンダリング、スピーカのための音声出力および他の音の生成、ならびに電気モータのための振動出力の生成)のための構成要素と、ネットワーキングのための構成要素と、プロセス管理のための構成要素と、メモリ管理のための構成要素と、位置追跡のための構成要素と、発話認識および他の入力処理のための構成要素とを含むことができる。OSカーネル210は、ユーザ入力管理と、出力管理と、ストレージアクセス機能と、ネットワーク通信機能と、メモリ管理機能と、プロセス管理機能と、コンピューティングデバイス130のための他の機能とを管理することができる。OSカーネル210は、たとえば、様々なシステムコールを介して、こうした機能へのアクセスをデジタルパーソナルアシスタント120およびアプリケーション230に提供することができる。
[0039] ユーザは、デジタルパーソナルアシスタント120と対話するためのユーザ入力(音声、触覚、および動きなど)を生成することができる。デジタルパーソナルアシスタント120は、ユーザ入力に応答してメッセージを作成するための機能を含むことができるOSカーネル210を介してユーザ入力に気づくことができる。メッセージは、デジタルパーソナルアシスタント120または他のソフトウェアによって使用され得る。ユーザ入力は、タッチスクリーン入力、ボタンの押下、またはキーの押下などの触覚入力を含むことができる。OSカーネル210は、触覚入力、ボタン入力、またはキー押下入力からタッチスクリーンへのタップ、指ジェスチャなどを認識するための機能を含むことができる。OSカーネル210は、マイクロホン150からの入力を受信することができ、音声入力から発声されたコマンドおよび/または単語を認識するための機能を含むことができる。OSカーネル210は、加速度計からの入力を受信することができ、シェイクなどの向きまたは動きを認識するための機能を含むことができる。
[0040] デジタルパーソナルアシスタント120のユーザインターフェース(UI)入力処理エンジン222は、OSカーネル210からのユーザ入力イベントメッセージを待つことができる。UIイベントメッセージは、音声入力、パンニングジェスチャ、フリックジェスチャ、ドラッグジェスチャ、もしくはデバイスのタッチスクリーン上の他のジェスチャ、タッチスクリーン上のタップ、キーストローク入力、シェイクジェスチャ、または他のUIイベント(たとえば、方向ボタンもしくはトラックボール入力)を含むことができる。UI入力処理エンジン222は、OSカーネル210からのUIイベントメッセージをデジタルパーソナルアシスタント120の制御ロジック224に送られる情報に翻訳することができる。たとえば、UI入力処理エンジン222は、自然言語処理能力を含むことができ、特定のアプリケーション名が発声されたかタイプされたこと、または音声コマンドがユーザによって与えられたことを示すことができる。代替的には、自然言語処理能力は、制御ロジック224に含まれ得る。
[0041] 制御ロジック224は、UI入力処理エンジン222、個人的情報ストア226、およびコマンドデータ構造140などの、デジタルパーソナルアシスタント120の様々なモジュールからの情報を受信することができ、制御ロジック224は、受信した情報に基づいて決定を行い、動作を実行することができる。たとえば、制御ロジック224は、音声コマンドが与えられたかどうかを決定するために発声されたテキストのストリームを構文解析することなどによって、デジタルパーソナルアシスタント120がユーザの代理でタスクを実行すべきであるかどうかを決定することができる。
[0042] 制御ロジック224は、コマンドに作用する前にユーザコマンド全体が発声されるのを待つことができ、または、制御ロジック224は、コマンドがまだ発声されているとき、コマンドが完了する前にコマンドに作用し始めることができる。たとえば、制御ロジック240は、発声されたコマンドの中間文字列を解析し、文字列をコマンドデータ構造140内に定義された1つまたは複数のアプリケーションに一致させるように試みることができる。アプリケーションが呼び出される確率がしきい値を超えたとき、アプリケーションは、アプリケーションがより即座にユーザに応答することができるように、ウォームアップされ得る。複数のアプリケーションおよび/または機能が、呼び出されることを見越して推測的にウォームアップされ得、アプリケーションは、アプリケーションが呼び出されないと决定された場合、停止され得る。たとえば、ユーザが特定のアプリケーションの名前で発声されたコマンドを開始したとき、特定のアプリケーションが読み出される高い確率が存在するので、そのアプリケーションは、ウォームアップされ得る。別の例として、いくつかの部分的なコマンド文字列は、コマンドデータ構造140内に定義されたアプリケーションの小さいセットに限定され得、アプリケーションのセットは、部分的なコマンド文字列との一致が存在するとき、並行してウォームアップされ得る。具体的には、コマンドデータ構造140は、「写真をとる」というコマンドを有するカメラアプリケーションおよび「メモをとる」というコマンドを有するメモアプリケーションなどの、「とる」という単語を有するコマンドを伴う2つのアプリケーションのみを有する場合がある。制御ロジック224は、「とる」という単語が認識されたとき、カメラアプリケーションとメモアプリケーションの両方のウォームアップを開始することができ、次いで、「写真をとる」という完全なコマンドが認識されたとき、メモアプリケーションは、停止され得る。アプリケーションをウォームアップすることは、メモリを割り当てること、命令をプリフェッチすること、通信セッションを確立すること、データベースから情報を取り出すこと、新しい実行スレッドを開始すること、割込みを発生させること、または他の適切なアプリケーション固有の動作を含むことができる。OSカーネル210のサービスは、たとえば、プロセス管理サービス、メモリ管理サービス、およびネットワークサービスなどを、ウォームアップ中に呼び出すことができる。
[0043] 発声されたテキストは、コンテキスト情報を含むことができ、制御ロジック224は、ユーザ音声コマンドがコンテキストフリーであるように、コンテキスト情報を解析することができる。コンテキスト情報は、現在位置と、現在時刻と、コンピューティングデバイス130の向きと、個人的情報ストア226に記憶された個人情報とを含むことができる。個人情報は、ユーザの配偶者または子供の名前などのユーザ関係と、家、職場、学校、デイケア、または医者の住所などのユーザ固有の場所と、ユーザの連絡先リストまたはカレンダーからの情報と、ユーザの好みの色、レストラン、または交通手段と、重要な誕生日、記念日、または他の日付と、他のユーザ固有の情報とを含むことができる。ユーザは、コンテキスト情報を有するコマンドを与えることができ、制御ロジック224は、コマンドをコンテキストフリーコマンドに翻訳することができる。たとえば、ユーザは、「バスアプリ、次の1時間以内に帰宅するバスを教えて」というコマンドを与えることができる。この例では、コマンド内のコンテキスト情報は、現在の日時、現在位置、およびユーザの家の場所である。
[0044] 制御ロジック224は、リアルタイムクロックへのアクセスを維持または有することができるOSカーネル210から現在時刻を得ることができる。制御ロジック224は、コンピューティングデバイス130のローカル構成要素から現在の位置データを得ることができるOSカーネル210からコンピューティングデバイス130の現在の位置データを得ることができる。たとえば、位置データは、セルラネットワークのタワー間の三角測量によって、近傍のWi−Fiルータの物理的位置の参照によって、または別のメカニズムによって、全地球測位システム(GPS)からのデータに基づいて决定され得る。制御ロジック224は、個人的情報ストア226からユーザの家の位置を得ることができる。個人的情報ストア226は、コンピューティングデバイス130の補助または他の不揮発性ストレージに記憶され得る。したがって、制御ロジック224は、ストレージリソース(たとえば、個人的情報ストア226)にアクセスすることができるOSカーネル210を介して個人的情報を受信することができる。コンテキスト情報が解決され得るとき、コマンドは、コンテキストフリーコマンドに翻訳され得る。たとえば、金曜日の午後6時であり、ユーザが444Main Streetにおり、ユーザの家が128Pleasant Driveである場合、コンテキストフリーコマンドは、「バスアプリ、444Main Street付近に到着し、金曜日の午後6時と午後7時との間に128Pleasant Drive付近を通過するバスを教えて」であり得る。
[0045] ユーザコマンドは、制御ロジック224(コマンドがデジタルパーソナルアシスタント120のネイティブコマンドであるときなど)、コンピューティングデバイス130にインストールされたアプリケーション230(コマンドがアプリケーション230に関連するときなど)、またはウェブサービス162(コマンドがウェブサービス162に関連するときなど)によって実行され得る。コマンドデータ構造140は、どのコマンドがそのアプリケーションに関連しているのか、および、コマンドがフォアグラウンドまたはバックグラウンドのどちらにおいて実行され得るのかを指定することができる。たとえば、コマンドデータ構造140は、ユーザ音声コマンドを、利用可能なサードパーティの音声対応アプリケーションによってサポートされる機能にマッピングすることができる。
[0046] 制御ロジック224は、制御ロジック224が、ユーザコマンドがアプリケーション230の事前定義された機能232に関連すると決定したとき、アプリケーション230の事前定義された機能232を実行させることができる。制御ロジック224が、アプリケーション230の事前定義された機能232がバックグラウンドプロセスとして実行されるべきであると決定した場合、事前定義された機能232は、バックグラウンドにおいて実行することができる。たとえば、制御ロジック224は、(たとえば、OSカーネル210のプロセス管理構成要素を介して)割込みを発生させる、共有メモリに書き込む、メッセージ待ち行列に書き込む、メッセージを渡す、または新しい実行スレッドを開始することによって、事前定義された機能232に要求240を送ることができる。アプリケーション230は、事前定義された機能232を実行することができ、割込みを発生させる、共有メモリに書き込む、メッセージ待ち行列に書き込む、またはメッセージを渡すことによって、制御ロジック224に応答242を返すことができる。応答は、アプリケーション230の状態および/またはユーザコマンドに応答する他の情報を含むことができる。
[0047] 制御ロジック224は、制御ロジック224が、コマンドがウェブサービス262に関連すると決定したとき、ウェブサービス162を呼び出させることができる。たとえば、要求260は、OSカーネル210のネットワーキング構成要素を介してウェブサービス162に送られ得る。ネットワーキング構成要素は、ユーザコマンドを実行するために、(たとえば、ネットワーク170のプロトコルに従って要求をネットワークパケットにカプセル化することによって)要求をフォーマットし、ネットワーク170を介してウェブサービス162に転送することができる。要求260は、制御ロジック224とウェブサービス162との間の通信チャネル(たとえば、ソケット)を開くステップ、およびユーザコマンドに関連する情報を送るステップなどの複数のステップを含むことができる。ウェブサービス162は、ネットワーク170を介して送信され、ネットワーキング構成要素によって制御ロジック224に返信262として転送され得る応答によって要求260に応答することができる。ウェブサービス162からの応答は、ウェブサービス162の状態と、ユーザコマンドに応答する他の情報とを含むことができる。
[0048] 制御ロジック224は、アプリケーションからの応答に基づいてユーザに提示されるべき出力を(UI出力レンダリングエンジン228、およびOSカーネル210のレンダリング構成要素の助けを借りて)生成することができる。たとえば、コマンドデータ構造140は、機能から受信した状態を、音声制御デジタルパーソナルアシスタント120からユーザに提供される応答にマッピングすることができる。一般に、制御ロジック224は、高レベル出力コマンドをUI出力レンダリングエンジン228に提供することができ、UI出力レンダリングエンジン228は、ディスプレイ上の視覚的出力、スピーカまたはヘッドホンを介するオーディオおよび/または音声出力、ならびに電気モータからの振動出力のためのOSカーネル210のレンダリング構成要素に低レベル出力プリミティブを生成することができる。たとえば、制御ロジック224は、テキストの文字列を有するテキスト−発話コマンドをUI出力レンダリングエンジン228に送ることができ、UI出力レンダリングエンジン228は、発話音声をシミュレートするデジタルオーディオデータを生成することができる。
[0049] 制御ロジック224は、アプリケーションの状態に基づいてどのような情報をユーザに提供するのかを決定することができる。状態は、ユーザコマンドの開始、処理、確認、曖昧さ除去、または終了に対応することができる。コマンドデータ構造140は、アプリケーションの状態を、ユーザに提供される異なる応答にマッピングすることができる。提供され得る情報のタイプは、たとえば、表示テキスト、シミュレートされた発話、アプリケーションに戻るディープリンク、ウェブページまたはウェブサイトへのリンク、およびハイパーテキストマークアップ言語(HTML)ベースのウェブコンテンツを含む。
[0050] 例示的なアプリケーション状態
図3は、ヘッドレス方式でデジタルパーソナルアシスタント120とインターフェースするアプリケーションのための例示的な状態機械300の図である。アプリケーションは、ウォームアップ状態310または初期状態320のいずれかにおいて開始することができる。ウォームアップ状態310には、アプリケーション名が知られているが、発声されたコマンドが完了していないときなど、デジタルパーソナルアシスタント120がアプリケーションをウォームアップさせるときに入ることができる。アプリケーションは、ウォームアップ動作が完了するまで、ウォームアップ状態310のままである。ウォームアップ動作が完了したとき、アプリケーションは、初期状態320に移行することができる。
[0051] 初期状態320には、ウォームアップ状態310が完了した後か、または、ユーザコマンドがデジタルパーソナルアシスタント120によってアプリケーションに提供された後に入ることができる。初期状態320の間、ユーザコマンドは、アプリケーションによって処理される。コマンドが明白であるが、完了するのに所定の時間(5秒など)よりもかかる場合、状態は、コマンドが実行されている進行状態330に移行され得る。コマンドが明白であり、重要または破壊的な動作が実行される結果となる可能性がある場合、状態は、確認状態340に移行され得る。コマンドがやや曖昧であるが、いくつかのオプション間で選択することによって曖昧さが解明され得る場合、状態は、曖昧さ除去状態350に移行され得る。コマンドが曖昧であり、いくつかのオプションを用いて明確にされ得ない場合、状態は、失敗状態またはリダイレクション状態などの最終状態350に移行され得る。コマンドが実行され得ない場合、状態は、失敗状態などの最終状態360に移行され得る。コマンドが完了するのに所定の時間未満で完了することができ、ユーザからの確認を要求することが望まれない場合、状態は、成功状態などの最終状態360に移行され得る。最終状態360が複数の状況を有する単一の状態(状況が成功、失敗、リダイレクション、およびタイムアウトである場合など)、または最終状態のグループ(状況が、成功、失敗、リダイレクション、およびタイムアウトである場合など)であり得ることに留意すべきである。
[0052] 進行状態330は、ユーザコマンドの動作が実行されているか、または試みられていることを示すことができる。アプリケーションは、デジタルパーソナルアシスタント120のユーザインターフェースを使用してユーザに情報が提示され得るように、テキスト−発話(TTS)文字列またはグラフィカルユーザインターフェース(GUI)文字列をデジタルパーソナルアシスタント120に送ることによって、進行状態330中にユーザに情報を提供することができる。加えて、または代替的には、デフォルト情報(スピニングホイール、砂時計、および/またはキャンセルボタンなど)が、デジタルパーソナルアシスタント120のインターフェースを使用して進行状態330中にユーザに提示され得る。
[0053] 進行状態330の間、アプリケーションは、動作の進行を監視し、アプリケーションが進行状態330に留まることができるのか、または最終状態360に移行することができるのかを決定することができる。一実施形態では、アプリケーションは、(たとえば、5秒間)タイマを開始することができ、アプリケーションが、タイマが終了する前に十分な進行をしない場合、状態は、タイムアウト状態などの最終状態360に移行され得る。アプリケーションが十分に進行している場合、タイマは、再開され得、進行は、次のタイマの満了時に再び検査され得る。アプリケーションは、進行状態330に留まるための最大時間制限を有することができ、最大時間制限を超えた場合、状態は、タイムアウト状態などの最終状態360に移行され得る。ユーザコマンドに関連する動作は、(正常にまたは失敗して)完了することができ、状態は、適切な最終状態360に移行され得る。ユーザは、デジタルパーソナルアシスタント120のユーザインターフェースにコマンドを与えることによって、進行状態330にあるときにアプリケーションを終了することができる。たとえば、ユーザは、ディスプレイ上の「キャンセル」もしくは「戻る」ボタンを押下もしくはクリックするか、または「キャンセル」と言うことができる。コマンドをキャンセルすることは、デジタルパーソナルアシスタント120にアプリケーションを停止させ、デジタルパーソナルアシスタント120のホーム画面を表示させるか、または終了させることができる。
[0054] 確認状態340は、アプリケーションがタスクを完了する前にユーザからの確認を待っていることを示すことができる。デジタルパーソナルアシスタント120が、アプリケーションが確認状態340にあることを検出したとき、イエス/ノーの応答のためのプロンプトが、デジタルパーソナルアシスタント120のユーザインターフェースを使用してユーザに提示され得る。アプリケーションは、イエスかノーの回答を有する質問であるTTS文字列をデジタルパーソナルアシスタント120に提供することができる。デジタルパーソナルアシスタント120は、アプリケーションの提供されたTTS文字列を発声することができ、「はい/いいえ」の回答を聞くことができる。ユーザ応答がイエスかノーの回答に対して解決しない場合、デジタルパーソナルアシスタント120は、事前定義された回数(3回など)までユーザに質問を尋ね続けることができる。すべての試みが行われ尽くされた場合、デジタルパーソナルアシスタント120は、「すみません、わかりません。回答を選択するために下をタップしてください。」などのデフォルトのフレーズを言うことができ、デジタルパーソナルアシスタント120は、聞くのを停止することができる。ユーザがイエスかノーをタップした場合、デジタルパーソナルアシスタント120は、ユーザの選択をアプリケーションに送ることができる。ユーザがマイクロホンアイコンをタップした場合、デジタルパーソナルアシスタント120は、(たとえば、口頭で回答する試みの回数をカウントするカウンタをリセットすることによって)発声された回答を認識することを再び試みることができる。デジタルパーソナルアシスタント120は、一致があるか、または、ユーザのキャンセルもしくは表示画面上の戻るボタンのヒットがあるまでループすることができる。アプリケーションがデジタルパーソナルアシスタント120からの肯定応答を受信した場合、アプリケーションは、タスクを完了することを試みることができる。タスクが正常に完了した場合、状態は、成功の状況で最終状態360に移行することができる。タスクが正常に完了するのに失敗したか、またはアプリケーションがキャンセルされた場合、状態は、失敗の状況で最終状態360に移行することができる。タスクが完了するのに所定の時間より多くかかる場合、状態は、タスクが実行されている間に進行状態330に移行され得る。
[0055] 曖昧さ除去状態350は、アプリケーションが、ユーザがタスクの完了前に制限された数(10以下など)のオプション間を明確にするのを待っていることを示すことができる。アプリケーションは、デジタルパーソナルアシスタント120に、TTS文字列、GUI文字列、および/または、ユーザが選択する項目のリストを提供することができる。項目のリストは、タイトル、説明、および/またはアイコンなどの、各項目についてユーザに提供する1つまたは複数の情報を有するテンプレートとして提供され得る。デジタルパーソナルアシスタント120は、アプリケーションによって提供される情報を使用して、項目のリストをユーザに提示することができる。デジタルパーソナルアシスタント120は、ユーザからの選択を促し、聞くことができる。ユーザは、柔軟なまたは柔軟でない選択を使用してリストから選択することができる。柔軟でない選択は、ユーザが1つの方法でリストから選択することのみができることを意味し、柔軟な選択は、ユーザが複数の異なる方法でリストから選択することができることを意味する。たとえば、ユーザは、第1の項目または第2の項目をそれぞれ選択するために「第1」または「第2」と言うことなどによって、項目が列挙された番号順に基づいてリストから選択することができる。別の例として、ユーザは、「一番上の項目」、「一番下の項目」、「右の項目」、または「下から2番目の項目」など、項目間の空間的関係に基づいてリストから選択することができる。別の例として、ユーザは、項目のタイトルを言うことによってリストから選択することができる。
[0056] 曖昧さ除去の具体的な例として、ユーザは、デジタルパーソナルアシスタント120に「動画アプリケーション、Movie−Xを私の待ち行列に追加」と言うことができる。しかしながら、オリジナルおよび2つの続編などのMovie−Xの3つのバージョン、Movie−X I、Movie−X II、およびMovie−X IIIが存在する場合がある。発声されたコマンドに応答して、デジタルパーソナルアシスタント120は、Movie−Xを待ち行列に追加するコマンドを用いて、バックグラウンドにおいて動画アプリケーションを起動することができる。動画アプリケーションは、Movie−Xを検索し、3つのバージョンが存在することを決定することができる。したがって、動画アプリケーションは、曖昧さ除去状態350に移行することができ、3つの択一的な選択肢をデジタルパーソナルアシスタント120に送ることができる。デジタルパーソナルアシスタント120は、そのユーザインターフェースを介して、ユーザに3つの選択肢を提示することができ、ユーザは、リストから1つを選択することができる。ユーザによって適切な選択が行われたとき、デジタルパーソナルアシスタント120は、動画アプリケーションに応答を送ることができ、正しい動画が待ち行列に追加され得る。
[0057] ユーザ応答がリスト上の項目に対して解決され得ない場合、デジタルパーソナルアシスタント120は、事前定義された回数までユーザに質問を尋ね続けることができる。すべての試みが行い尽くされた場合、デジタルパーソナルアシスタント120は、「すみません、わかりません。回答を選択するために下をタップしてください。」などのデフォルトのフレーズを言うことができ、デジタルパーソナルアシスタント120は、聞くのを停止することができる。ユーザが表示されたリスト上の項目の1つをタップした場合、デジタルパーソナルアシスタント120は、ユーザの選択をアプリケーションに送ることができる。ユーザがマイクロホンアイコンをタップした場合、デジタルパーソナルアシスタント120は、(たとえば、口頭で回答する試みの回数をカウントするカウンタをリセットすることによって)発声された回答を認識することを再び試みることができる。デジタルパーソナルアシスタント120は、一致があるか、または、ユーザのキャンセルもしくは表示画面上の戻るボタンのヒットがあるまでループすることができる。アプリケーションがデジタルパーソナルアシスタント120からの有効な応答を受信した場合、アプリケーションは、タスクを完了することを試みることができる。タスクがアクションを起こす前にユーザ確認を必要とする場合、状態は、確認状態340に移行することができる。タスクが正常に完了した場合、状態は、成功の状況で最終状態360に移行することができる。タスクが正常に完了するのに失敗したか、またはアプリケーションがキャンセルされた場合、状態は、失敗の状況で最終状態360に移行することができる。タスクが完了するのに所定の時間より多くかかる場合、状態は、タスクが実行されている間に進行状態330に移行され得る。
[0058] 例示的な状態機械300は、ユーザとアプリケーションとの間の様々なマルチターン会話を可能にするために、追加のまたは代替の状態を用いて拡張され得る。(曖昧さ除去状態350による)曖昧さ除去および(確認状態340による)確認は、マルチターン会話の具体的な例である。一般に、マルチターン会話では、ヘッドレスアプリケーションは、そのユーザインターフェースを表に出すことなく、ユーザからの追加情報を要求することができる。むしろ、情報は、アプリケーションの代わりにデジタルパーソナルアシスタント120によってユーザから取得され得る。したがって、デジタルパーソナルアシスタント120は、ユーザとアプリケーションとの間のパイプ役として機能することができる。
[0059] 最終状態360は、アプリケーションがタスクを正常に完了したか、タスクを完了するのに失敗したか、タイムアウトしたか、または、アプリケーションがフォアグラウンドにおいて起動されるべきこと(リダイレクション)を示唆していることを示すことができる。上記で説明したように、最終状態360は、複数の状況(たとえば、成功、失敗、リダイレクション、およびタイムアウト)を有する単一の状態、または最終状態(たとえば、成功、失敗、リダイレクション、およびタイムアウト)のグループであり得る。アプリケーションは、TTS文字列、GUI文字列、(テンプレートを介して提供される)項目のリスト、および/または起動パラメータをデジタルパーソナルアシスタント120に提供することができる。デジタルパーソナルアシスタント120は、デジタルパーソナルアシスタント120のユーザインターフェースを使用して、アプリケーションによって提供される情報をユーザに提示することができる。加えて、または代替的に、デジタルパーソナルアシスタント120は、異なる状況に関連する事前定義されたまたは定型文の応答を提示することができる。たとえば、タイムアウトが発生するか、タスクが失敗した場合、デジタルパーソナルアシスタント120は、「すみません。私はそれをあなたのために行うことができませんでした。あとでもう一度試してもらえませんか。」と言うことができる。別の例として、アプリケーションがリダイレクションを要求している場合、デジタルパーソナルアシスタント120は、「すみません<appName>が応答していません。<appName>を起動しています」と言うことができ、デジタルパーソナルアシスタント120は、オリジナルの音声コマンドおよび起動パラメータ(起動パラメータがアプリケーションによって提供されている場合)を用いてフォアグラウンドにおいてアプリケーションを起動することを試みることができる。別の例として、アプリケーションがタスクを正常に完了した場合、デジタルパーソナルアシスタント120は、「私は、あなたのためにそれを行いました」と言うことができる。
[0060] 例示的なコマンド定義
図4は、サードパーティのアプリケーションとデジタルパーソナルアシスタント120との間のインターフェースを可能にするための、コマンドデータ構造140などのデータ構造を作成するために使用され得るスキーマに準拠したコマンド定義400の一例である。コマンド定義400は、拡張マークアップ言語(XML)またはスキーマによって定義されたXMLのサブセットなどの様々な言語で記述され得る。たとえば、スキーマは、法的要素、要素の階層、各要素の法的および任意選択属性、ならびに他の適切な基準などの、コマンド定義の構造を定義することができる。コマンド定義400は、ユーザの発語を、アプリケーション、コマンドまたはタスク、およびデータ項目またはスロットなどの異なる構成要素に構文解析するのを支援するために、デジタルパーソナルアシスタント120によって使用され得、データ項目は、任意選択である。たとえば、「MovieAppService、MovieXを私の待ち行列に追加」というコマンドは、アプリケーション(「MovieAppService」)、コマンド(「Add」)、およびデータ項目(「MovieX」)に構文解釈され得る。コマンド定義400は、アプリケーション名、アプリケーションのタスクまたはコマンド、自然言語処理のための代替的な言い回し、および異なるアプリケーション状態に関連する応答を定義するための要素を含むことができる。
[0061] 1つまたは複数のアプリケーションは、コマンド定義400において定義され得る。アプリケーションは、コンピューティングデバイスまたはウェブサーバにインストールされたサードパーティのアプリケーションまたは他のアプリケーションであり得る。アプリケーションに関連する情報は、アプリケーションを定義する要素によって画定され得る。たとえば、アプリケーション名は、<AppName>要素によって定義され得、<AppName>間の要素は、先頭の<AppName>要素に関連付けられ得る。コマンド定義400において、アプリケーション名は、「MovieAppService」であり、<AppName>に続く要素は、「MovieAppService」アプリケーションに関連付けられる。
[0062] アプリケーション名に続くコマンドは、アプリケーションのコマンドである。コマンドは、<Command>要素で識別され得る。コマンド要素の属性は、コマンドの名前(たとえば、「Name」)と、コマンドの起動タイプ(たとえば、「ActivationType」)とを含むことができる。たとえば、起動タイプは、フォアグラウンドにおいて起動されるべきコマンドのための「foreground」、およびバックグラウンドにおいて起動されるべきコマンドのための「background」であり得る。「ActivationType」属性は、任意選択であり得、デフォルトの起動タイプは、フォアグラウンドである。
[0063] <ListenFor>要素は、<Command>要素内にネストされ得、コマンドが発声され得る1つまたは複数の方法を定義するために使用され得る。自然言語処理を実行するときにデジタルパーソナルアシスタント120へのヒントとして、任意選択単語またはキャリア単語が提供され得る。キャリア単語は、角括弧[]内で識別され得る。データ項目は、波括弧または中括弧{}内で識別され得る。コマンド定義400において、一般に、2つの<ListenFor>要素によって定義される「Add」コマンドを呼び出すための2つの代替方法が存在する。たとえば、「MovieXを私の待ち行列に追加」または「MovieXを私のMovieAppService待ち行列に追加」のいずれかを言うことは、デジタルパーソナルアシスタント120がバックグラウンドにおいてMovieAppServiceの「Add」コマンドを起動させるために使用され得る。事前定義されたフレーズが、中括弧のセット{builtln:<phrase identifier}内の「builtln」というキーワードで識別され得る。
[0064] <Feedback>要素は、<Command>要素内にネストされ得、デジタルパーソナルアシスタント120がユーザから発声されたコマンドを正常に認識したこときにユーザに話されるべきフレーズを定義するために使用され得る。加えて、または代替的に、<Feedback>要素は、発声されたコマンドがデジタルパーソナルアシスタント120によって構文解析されているときにユーザに表示されるべきテキスト文字列を定義することができる。
[0065] <Response>要素は、<Command>要素内にネストされ得、デジタルパーソナルアシスタント120によってユーザに提供される1つまたは複数の応答を定義するために使用され得る。各応答は、「State」属性によって定義されるようにアプリケーションの状態に関連付けられる。状態は、正常もしくは失敗などの最終状態、または進行などの中間状態についてであり得る。たとえば、画面上にテキストを表示するための<DisplayString>、ユーザに話されるテキストのための<TTSString>、ウェブサイトへのディープリンクのための<AppDeepLink>、およびウェブサイトへのそれほどディープではないリンクのための<WebLink>などの、定義された複数のタイプの応答が存在し得る。<Response>要素によって定義された応答は、アプリケーションによって提供される追加の応答情報で増強され得る。
[0066] 例示的なシーケンス図
図5は、デジタルパーソナルアシスタント120内からサードパーティのアプリケーションの機能をヘッドレスに実行するための複数の実行スレッド(510、520、および530)の通信を示す例示的なシーケンス図500である。UIスレッド510および制御スレッド520は、デジタルパーソナルアシスタント120のマルチスレッド化実施形態の並列スレッドであり得る。UIスレッド510は、デジタルパーソナルアシスタント120のユーザインターフェースからの入力を取り込み、デジタルパーソナルアシスタント120のユーザインターフェースへの出力を表示する役割を主に果たすことができる。たとえば、発話入力、触覚入力、および/またはテキスト入力は、UIスレッド510によって取り込まれ得る。一実施形態では、UIスレッド510は、入力に対して自然言語処理を実行することができ、ユーザの発声されたコマンドをコマンドデータ構造140内のコマンドに一致させることができる。発声されたコマンドがコマンドデータ構造140内のコマンドと一致すると决定されたとき、コマンドは、さらなる処理のために制御スレッド520に伝達され得る。代替的な実施形態では、UIスレッド510は、発話をテキスト入力に取り込むことができ、個々の単語は、制御スレッド520に伝達され得、制御スレッド520は、入力に対する自然言語処理を実行することができ、ユーザの発声されたコマンドをコマンドデータ構造140内のコマンドと一致させることができる。
[0067] 制御スレッド520は、アプリケーションと通信し、アプリケーションの進行を追跡し、UIスレッド510とインターフェースする役割を主に果たすことができる。たとえば、制御スレッド520は、ユーザがデジタルパーソナルアシスタント120のユーザインターフェースに発声したことをUIスレッド510によって通知され得る。制御スレッド520によって単語またはコマンドが受信され得、制御スレッド520は、ユーザコマンドが制御スレッド520によって認識されているとき、UIスレッド510に通知することができる。UIスレッド510は、デジタルパーソナルアシスタント120のユーザインターフェースを介して、進行がコマンドに対してなされていることをユーザに示すことができる。UIスレッド510または制御スレッド520は、コマンドデータ構造140からコマンドの属性を取り出すことによって、コマンドがヘッドレスに起動されるべきであると決定することができる。制御スレッド520は、コマンドがヘッドレスに起動されるべきときに新しいスレッドを開始するか、またはAppServiceスレッド530などの既存のスレッドと通信することができる。ユーザへの応答時間を短縮するために、制御スレッド520に新しいスレッドを開始させるのではなく、AppServiceスレッド530が既存のスレッドであることが望ましい場合がある。たとえば、AppServiceスレッド530は、アプリケーションをウォームアップしているときか、またはコンピューティングデバイス130のブートアップ中に開始され得る。
[0068] AppServiceスレッド530は、コンピューティングデバイス130上で実行され得るか、または、リモートサーバコンピュータ160などのリモートサーバ上で実行され得る。AppServiceスレッド530は、ユーザコマンドによって指定された機能を完了する役割を主に果たすことができる。AppServiceスレッド530は、機能の実行進行を追跡するように状態機械(状態機械300など)を維持することができ、状態に対する更新を制御スレッド520に提供することができる。状態の更新を制御スレッド520に提供することによって、AppServiceスレッド530は、ヘッドレスであり得、ユーザへの出力は、デジタルパーソナルアシスタント120によって提供され、AppServiceスレッド530のユーザインターフェースによって提供されない。
[0069] 制御スレッド520は、アプリケーションから状態更新を受信し、アプリケーションが進捗しているかどうかをチェックすることによって、アプリケーション(たとえば、AppServiceスレッド530)の進行を追跡することができる。たとえば、制御スレッド520は、AppServiceスレッド530と通信する(AppServiceスレッド530に情報を送るか、またはAppServiceスレッド530から情報を受信する)たびに事前定義された継続時間(たとえば、5秒)のタイマを開始することができる。AppServiceスレッド530が応答する前にタイマが満了した場合、制御スレッド520は、アプリケーションが応答に失敗したことをUIスレッド510に示すことができ、UIスレッド510は、デジタルパーソナルアシスタント120のユーザインターフェースを介してユーザに失敗メッセージを提示することができる。AppServiceスレッド530は、タイマが満了した後、制御スレッド520によって終了または無視され得る。代替的には、タイマが満了する前にAppServiceスレッド530が応答した場合、別の応答がアプリケーションから期待されている場合(アプリケーションが進行状態に応答するときなど)、タイマは、リセットされ得、または、(アプリケーションが機能を完了したとき(最終状態)か、もしくはユーザ応答が要求されているとき(確認もしくは曖昧さ除去状態)など)タイマは、キャンセルされ得る。
[0070] 制御スレッド520がAppServiceスレッド530から確認または曖昧さ除去状態を受信したとき、制御スレッド520は、確認または曖昧さ除去がユーザから要求されたことをUIスレッド510に示すことができる。UIスレッド510は、デジタルパーソナルアシスタント120のユーザインターフェースを介してユーザに確認または曖昧さ除去の選択肢を提示することができる。ユーザが応答するか、または応答に失敗したとき、UIスレッド510は、ユーザ応答か、またはその決定的な欠如を制御スレッド520に提供することができる。制御スレッド520は、AppServiceスレッド530が機能を実行できるように、ユーザ応答をAppServiceスレッド530に渡すことができる。ユーザが応答に失敗した場合、制御スレッド520は、AppServiceスレッド530を終了させることができる。
[0071] UIスレッド510は、デジタルパーソナルアシスタント120のユーザインターフェースを介して様々なタイプの出力を表示することができる。たとえば、UIスレッド510は、テキストからデジタルのシミュレートされた発話出力などのオーディオ出力を生成することができる。デジタルのシミュレートされた発話は、デジタルのシミュレートされた発話を、スピーカまたはヘッドホンを介して音として出力され得るアナログ信号に(たとえば、デジタル−アナログ変換器を用いて)変換することができるオーディオ処理チップに送られ得る。別の例として、UIスレッド510は、コンピューティングデバイス130の表示画面上でユーザによって見られるための、画像、アニメーション、テキスト出力、およびハイパーリンクなどの視覚的出力を提供することができる。ハイパーリンクがタップまたはクリックされた場合、UIスレッド510は、選択されたハイパーリンクに対応するウェブサイトを表示するためにブラウザアプリケーションを開始することができる。別の例として、UIスレッド510は、たとえば、コンピューティングデバイス130を振動させることができる電気モータに振動信号を送ることによって、触覚出力を生成することができる。
[0072] ヘッドレスタスク完了のための例示的な方法
図6は、デジタルパーソナルアシスタント120のバックグラウンドにおいてアプリケーションのタスクをヘッドレスに完了するための例示的な方法600のフローチャートである。610において、ユーザによって生成された音声入力が、デジタルパーソナルアシスタント120によって受信され得る。音声入力は、コンピューティングデバイス130においてローカルに、またはコンピューティングデバイス130から遠隔で取り込まれ得る。一例として、ユーザによって生成された音声入力は、コンピューティングデバイス130のマイクロホン150によってローカルに取り込まれ、アナログ−デジタル変換器によってデジタル化され得る。別の例として、ユーザによって生成された音声入力は、コンピューティングデバイス130にワイヤレスで(たとえば、Bluetooth(登録商標)コンパニオンデバイスによって)接続されたマイクロホンによって遠隔で取り込まれ得る。デジタルパーソナルアシスタント120は、デジタルパーソナルアシスタント120のユーザインターフェースにおいて入力された音声および/またはテキストによって制御され得る。
[0073] 620において、ユーザの音声コマンドを決定するために、音声入力の自然言語処理が実行され得る。ユーザ音声コマンドは、サードパーティの音声対応アプリケーションなどのアプリケーションの事前定義された機能を実行するための要求を含むことができる。事前定義された機能は、デジタルパーソナルアシスタント120によってサポートされるアプリケーションおよびアプリケーションの機能を定義するデータ構造を使用して識別され得る。たとえば、互換性のあるアプリケーションは、コマンド定義400などのコマンド定義ファイルにおいて識別され得る。デジタルパーソナルアシスタント120によってヘッドレスに実行され得るサードパーティのアプリケーションの機能を定義するために拡張可能なコマンド定義を使用することによって、デジタルパーソナルアシスタント120は、ユーザがデジタルパーソナルアシスタント120のユーザインターフェースを用いてより多くのタスクを実行することを可能にすることができる。
[0074] 630において、デジタルパーソナルアシスタント120は、アプリケーションのユーザインターフェースがコンピューティングデバイス130のディスプレイ上に現われることなしに、事前定義された機能をアプリケーションにヘッドレスに実行させることができる。アプリケーションは、コマンドデータ構造140内にヘッドレスとして定義されているので、または、ユーザは、ハンズフリーモードでコンピューティングデバイスを使用しており、フォアグラウンドにおいてアプリケーションを実行することは、潜在的にユーザの気を散らせる場合があるので、デジタルパーソナルアシスタント120は、アプリケーションをヘッドレスに実行することを決定することができる。たとえば、デジタルパーソナルアシスタント120は、アプリケーションの事前定義された機能を実行するためにウェブサービスを呼び出すことができる。別の例として、デジタルパーソナルアシスタント120は、ユーザコマンドが决定された後に、アプリケーションの事前定義された機能を実行するために、コンピューティングデバイス130上で新しいスレッドを開始することができる。別の例として、デジタルパーソナルアシスタント120は、アプリケーションの事前定義された機能を実行するために、アプリケーションのウォームアップ中に開始されたスレッドなどの既存のスレッドと通信することができる。事前定義された機能は、バックグラウンドプロセスとして実行され得る。アプリケーションは、たとえば、事前定義された機能の状態を追跡することによって、事前定義された機能の進行を監視することができる。
[0075] 640において、事前定義された機能に関連付けられた状態を示す応答がアプリケーションから受信され得る。たとえば、状態は、ウォームアップ状態、初期状態、進行状態、確認状態、曖昧さ除去状態、および最終状態を含むことができる。応答は、テンプレート化されたリスト、テキスト文字列、テキスト−発話文字列、画像、ハイパーリンク、または、デジタルパーソナルアシスタント120のユーザインターフェースを介してユーザに表示され得る他の適切な情報などの追加情報を含むことができる。
[0076] 650において、デジタルパーソナルアシスタント120のユーザインターフェースは、事前定義された機能に関連付けられた受信された状態に基づいて、ユーザに応答を提供することができる。このようにして、応答は、アプリケーションのユーザインターフェースを表に出すことなく、デジタルパーソナルアシスタント120のユーザインターフェースのコンテキスト内から来ることができる。さらに、デジタルパーソナルアシスタント120の確認能力および曖昧さ除去能力は、アプリケーションのユーザコマンドを確認および/または明確化するために使用され得る。
[0077] アプリケーションをウォームアップするかどうかを決定するための例示的な方法
図7は、ユーザがデジタルパーソナルアシスタント120に発声している間にアプリケーションをウォームアップするかどうかを決定するための例示的な方法700のフローチャートである。710において、ユーザは、デジタルパーソナルアシスタント120にタイプするか、声を発するか、または話すことができる。ユーザのテキストまたは発話は、自然言語処理技法を使用して解析され得、個々の単語が、発話から認識され得る。個々の単語は、別々に、それらが発声された中間フレーズ内で解析され得る。たとえば、ユーザは、「やあ、アシスタント、MyApp、...を行う」と言うことができる。「やあ」という単語は、キャリアワードであり、抜かれる場合がある。「アシスタント」という単語は、ユーザがアクションを実行することを要求していることをデジタルパーソナルアシスタント120に知らせるために使用され得る。「MyApp」という単語は、アプリケーションとして解釈され得る。
[0078] 720において、タイプまたは発声された単語は、デジタルパーソナルアシスタント120のネイティブ機能、および拡張可能なコマンド定義において提供される機能と比較され得る。集合的に、ネイティブ機能、およびコマンド定義において定義された機能は、「既知のAppService」と呼ばれる場合がある。発声された単語は、単語が発せられているとき、解析され、既知のAppServiceと比較され得る。言い換えれば、発話の解析は、フレーズ全体がユーザによって話されるか、またはタイプされる前に生じることができる。既知のAppServiceのいずれもが一致しない場合、730において、デジタルパーソナルアシスタント120は、認識されていない発声されたフレーズに対応する検索文字列を有する検索エンジンウェブページを取得するために、ウェブブラウザを開くことができる。プログラム制御は、ユーザがウェブ検索を洗練させ、および/または結果を見ることができるように、ウェブブラウザに転送され得る。しかしながら、既知のAppServiceが一致した場合、方法700は、740において続くことができる。
[0079] 740において、AppServiceアプリケーションがフォアグラウンドタスクか、それともバックグラウンドタスクであるかが决定され得る。たとえば、コマンド定義は、AppServiceアプリケーションをフォアグラウンドアプリケーションまたはバックグラウンドアプリケーションとして定義する属性を含むことができる。AppServiceアプリケーションがフォアグラウンドタスクである場合、750において、AppServiceアプリケーションは、フォアグラウンドにおいて起動され得、コマンドを完了するために、AppServiceアプリケーションに制御が転送され得る。AppServiceアプリケーションがバックグラウンドタスクである場合、方法700は、並行ステップ760および770で続くことができる。
[0080] 760において、デジタルパーソナルアシスタント120は、発話解析に関する情報をユーザに提供することができる。具体的には、デジタルパーソナルアシスタント120は、デジタルパーソナルアシスタント120のユーザインターフェースの進行中画面のための出力を生成することができる。出力は、たとえば、コマンド定義の<Command>要素内にネストされた<Feedback>要素において定義され得る。出力は、テキスト文字列であり得、ユーザが発声し続けるにつれて継続的に更新され得る。
[0081] 770において、デジタルパーソナルアシスタント120は、ユーザ発語が終わるのを待つことなく、AppServiceアプリケーションをウォームアップすることができる。AppServiceアプリケーションをウォームアップすることは、メモリを割り当てること、命令をプリフェッチすること、通信セッションを確立すること、データベースから情報を取得すること、新しい実行スレッドを開始すること、割込みを発生させること、または他の適切なアプリケーション固有の動作を含むことができる。アプリケーションは、推測的な機能(speculative function)に基づいてウォームアップされ得る。たとえば、推測的機能に対応する命令は、機能が確実にはわからない場合でも、フェッチされ得る。ユーザが発声しているコマンドを完了する前にアプリケーションをウォームアップすることによって、ユーザに応答する時間は、潜在的に短縮され得る。
[0082] 780において、デジタルパーソナルアシスタント120は、発語が完了するまで、部分的な発話認識結果を構文解析し続けることができる。発語の終わりは、構文解析されているコマンドに基づいて、および/または所定の時間よりも長い間のユーザからの休止に基づいて検出され得る。たとえば、「MovieAppService、MovieXを私の待ち行列に追加」というコマンドの終わりは、「待ち行列」という単語が認識されたときに検出され得る。別の例として、「TextApp、私が夕食に遅れて帰宅する旨を妻に通知」というコマンドの終わりは、コマンドが未知の長さのデータ項目で終わるので、検出するのがより困難である場合がある。したがって、コマンドが完了したことをデジタルパーソナルアシスタント120に示すために、休止が使用され得る。
[0083] 790において、発声されたコマンドの終わりが検出され得、最終的な発話認識結果がアプリケーションに渡され得る。アプリケーションおよびデジタルパーソナルアシスタント120は、上記の図を参照して説明したように、発声されたコマンドを完了するために互いに通信することができる。
[0084] コンピューティングシステム
図8は、説明した技術革新が実装され得る適切なコンピューティングシステム800の一般化された例を示す。コンピューティングシステム800は、技術革新が多様な汎用または専用コンピューティングシステムにおいて実装されるように、機能の使用の範囲に関して何ら限定を示唆することも意図しない。
[0085] 図8を参照すると、コンピューティングシステム800は、1つまたは複数の処理ユニット810、815と、メモリ820、825とを含む。図8において、この基本構成830は、破線内に含まれる。処理ユニット810、815は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央処理ユニット(CPU)、特定用途向け集積回路(ASIC)、または任意の他のタイプのプロセッサであり得る。マルチ処理システムでは、処理パワーを高めるために、マルチ処理ユニットがコンピュータ実行可能命令を実行する。たとえば、図8は、中央処理ユニット810ならびにグラフィックス処理ユニットまたはコプロセッシングユニット815を示す。有形メモリ820、825は、処理ユニットによってアクセス可能な、揮発性メモリ(たとえば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(たとえば、ROM、EEPROM、フラッシュメモリなど)、またはこれら2つのなんらかの組合せであり得る。メモリ820、825は、処理ユニットによって実行するのに適したコンピュータ実行可能命令の形態で、本明細書に記載の1つまたは複数の技術革新を実装するソフトウェア880を記憶する。
[0086] コンピューティングシステムは、追加の特徴を有することができる。たとえば、コンピューティングシステム800は、ストレージ840と、1つまたは複数の入力デバイス850と、1つまたは複数の出力デバイス860と、1つまたは複数の通信接続部870とを含む。バス、コントローラ、またはネットワークなどの相互接続機構(図示せず)が、コンピューティングシステム800の構成要素を相互接続する。典型的には、オペレーティングシステムソフトウェア(図示せず)が、コンピューティングシステム800内で実行される他のソフトウェアのための動作環境を提供し、コンピューティングシステム800の構成要素の活動を調整する。
[0087] 有形ストレージ840は、リムーバブルまたは非リムーバブルであり得、磁気ディスク、磁気テープもしくはカセット、CD−ROM、DVD、または、情報を記憶するために使用され得、コンピューティングシステム800内でアクセスされ得る任意の他の媒体を含む。ストレージ840は、本明細書で説明する1つまたは複数の技術革新を実装するソフトウェア880のための命令を記憶する。
[0088] 入力デバイス850は、キーボード、マウス、ペン、もしくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、走査デバイス、または、コンピューティングシステム800に入力を提供する別のデバイスであり得る。ビデオ符号化に対しては、入力デバイス850は、カメラ、ビデオカード、TVチューナーカード、またはアナログ形式もしくはデジタル形式で入力されたビデオを受け入れる同様のデバイス、またはコンピューティングシステム800にビデオサンプルを読み出すCD−ROMもしくはCD−RWであり得る。出力デバイス860は、ディスプレイ、プリンタ、スピーカ、CDライタ、または、コンピューティングシステム800からの出力を提供する別のデバイスであり得る。
[0089] 通信接続部870は、通信媒体を介して別のコンピューティングエンティティとの通信を可能にする。通信媒体は、変調データ信号において、コンピュータ実行可能命令、オーディオもしくはビデオ入力もしくは出力、または他のデータを伝達する。変調データ信号は、その特性のうちの1つまたは複数が信号内の情報を符号化するように設定または変更された信号である。例として、限定はしないが、通信媒体は、電気的キャリア、光学的キャリア、RFキャリア、または他のキャリアを使用することができる。
[0090] 技術革新は、ターゲットの実プロセッサまたは仮想プロセッサ上のコンピューティングシステムで実行されるプログラムモジュールに含まれるようなコンピュータ実行可能命令の一般的な文脈で説明される場合がある。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、構成要素、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態において望まれるように、組み合わされるか、またはプログラムモジュール間で分割され得る。プログラムモジュールのためのコンピュータ実行可能命令は、ローカルコンピューティングシステムまたは分散コンピューティングシステム内で実行され得る。
[0091] 「システム」および「デバイス」という用語は、本明細書では互換的に使用される。文脈が明確に別途指示しない限り、どちらの用語も、コンピューティングシステムまたはコンピューティングデバイスのタイプに対するいかなる制限も意味しない。一般に、コンピューティングシステムまたはコンピューティングデバイスは、ローカルであってもよく、または分散されてもよく、本明細書で説明する機能を実装するソフトウェアと専用ハードウェアおよび/または汎用ハードウェアとの任意の組合せを含むことができる。
[0092]
提示のため、詳細な説明は、コンピューティングシステムにおけるコンピュータ動作を説明するために「決定する」および「使用する」のような用語を使用する。これらの用語は、コンピュータによって実行される動作の高レベルの抽象化であり、人間によって実行される行為と混同されるべきではない。これらの用語に対応する実際のコンピュータ動作は、実施態様に応じて異なる。
[0093] モバイルデバイス
図9は、全体として902に示す、様々な任意選択のハードウェア構成要素およびソフトウェア構成要素を含む例示的なモバイルデバイス900を示すシステム図である。モバイルデバイス内の任意の構成要素902は、任意の他の構成要素と通信することができるが、説明の容易さのため、すべての接続が示されているというわけではない。モバイルデバイスは、様々なコンピューティングデバイス(たとえば、携帯電話、スマートフォン、ハンドヘルドコンピュータ、携帯情報端末(PDA)など)のいずれかであり得、セルラネットワーク、衛星ネットワーク、または他のネットワークなどの、1つまたは複数のモバイル通信ネットワークとのワイヤレス双方向通信を可能にすることができる。
[0094] 図示のモバイルデバイス900は、信号コーディング、データ処理、入力/出力処理、電力制御、および/または他の機能などのタスクを実行するためのコントローラまたはプロセッサ910(たとえば、信号プロセッサ、マイクロプロセッサ、ASIC、または他の制御および処理論理回路)を含むことができる。オペレーティングシステム912は、構成要素902の割り当ておよび使用を制御することができ、デジタルパーソナルアシスタント120および1つまたは複数のアプリケーションプログラム914をサポートすることができる。アプリケーションプログラムは、一般的なモバイルコンピューティングアプリケーション(たとえば、電子メールアプリケーション、カレンダー、コンタクトマネージャ、ウェブブラウザ、メッセージングアプリケーション、動画アプリケーション、バンキングアプリケーション)、または任意の他のコンピューティングアプリケーションを含むことができる。アプリケーションプログラム914は、デジタルパーソナルアシスタント120によってヘッドレスに実行され得るタスクを有するアプリケーションを含むことができる。たとえば、タスクは、コマンドデータ構造140内に定義され得る。アプリケーションストアにアクセスするための機能913も、アプリケーションプログラム914を取得および更新するために使用され得る。
[0095] 図示のモバイルデバイス900は、メモリ920を含むことができる。メモリ920は、非リムーバブルメモリ922および/またはリムーバブルメモリ924を含むことができる。非リムーバブルメモリ922は、RAM、ROM、フラッシュメモリ、ハードディスク、または他の周知のメモリストレージ技術を含むことができる。リムーバブルメモリ924は、フラッシュメモリ、もしくは、GSM通信システムにおいて周知の加入者識別モジュール(SIM)カード、または、「スマートカード」などの他の周知のメモリストレージ技術を含むことができる。メモリ920は、オペレーティングシステム912およびアプリケーション914を実行するためのデータおよび/またはコードを記憶するために使用され得る。例示的なデータは、ウェブページ、テキスト、画像、サウンドファイル、ビデオデータ、または、1つもしくは複数のワイヤードネットワークもしくはワイヤレスネットワークを介して1つもしくは複数のネットワークサーバもしくは他のデバイスに送られるおよび/もしくはそこから受信される他のデータセットを含むことができる。メモリ920は、国際移動体加入者識別番号(IMSI)などの加入者識別子と、国際移動体機器識別番号(IMEI)などの機器識別子とを記憶するために使用され得る。そのような識別子は、ユーザおよび機器を識別するためにネットワークサーバに送信され得る。
[0096] モバイルデバイス900は、タッチスクリーン932、マイクロホン934、カメラ936、物理キーボード938、および/またはトラックボール940などの1つまたは複数の入力デバイス930と、スピーカ952およびディスプレイ954などの1つまたは複数の出力デバイス950とをサポートすることができる。他の可能な出力デバイス(図示せず)は、圧電式または他の触覚出力デバイスを含むことができる。いくつかのデバイスは、2つ以上の入力/出力機能を提供することができる。たとえば、タッチスクリーン932およびディスプレイ954は、単一の入力/出力デバイス内に結合され得る。
[0097] 入力デバイス930は、ナチュラルユーザインターフェース(NUI)を含むことができる。NUIは、ユーザが、マウス、キーボード、リモートコントロールなどの入力デバイスによって課せられる人工的な制約がない「自然な」方法でデバイスと対話することを可能にする任意のインターフェース技術である。NUI方法の例は、発話認識、タッチおよびスタイラス認識、画面上と画面に隣接するものの両方のジェスチャ認識、エアジェスチャ、頭および目の追跡、音声および発話、ビジョン、タッチ、ジェスチャ、ならびに機械インテリジェンスに依存するものを含む。NUIの他の例は、そのすべてがより自然なインターフェースを提供する、加速度計/ジャイロスコープを使用するモーションジェスチャ検出、顔認識、3Dディスプレイ、頭と目と視線の追跡、没入型拡張現実および仮想現実システム、ならびに、電場検出電極を使用して脳活動を感知するための技術(EEGおよび関連する方法)を含む。したがって、1つの具体的な例では、オペレーティングシステム912またはアプリケーション914は、ユーザが音声コマンドを介してデバイス900を操作することを可能にする音声ユーザインターフェースの一部として発話認識ソフトウェアを備えることができる。さらに、デバイス900は、たとえば、ゲームアプリケーションに入力を提供するためにジェスチャを検出および解釈して、ユーザの空間ジェスチャを介するユーザ対話を可能にする入力デバイスおよびソフトウェアを備えることができる。
[0098] ワイヤレスモデム960は、アンテナ(図示せず)に結合され得、当該技術分野ではよく理解されるように、プロセッサ910と外部デバイスとの間の双方向通信をサポートすることができる。モデム960は、全体として示され、モバイル通信ネットワーク904と通信するためのセルラネットワークおよび/または他の無線ベースのモデム(たとえば、Bluetooth(登録商標)964またはWi−Fi962)を含むことができる。ワイヤレスモデム960は、典型的には、単一のセルラネットワーク内、セルラネットワーク間、またはモバイルデバイスと公衆交換電話網(PSTN)との間の、データ通信および音声通信のためのGSMネットワークなどの、1つまたは複数のセルラネットワークと通信するように構成される。
[0099] モバイルデバイスは、少なくとも1つの入力/出力ポート980、電源982、全地球測位システム(GPS)受信機などの衛星ナビゲーションシステム受信機984、加速度計986、ならびに/または、USBポート、IEEE1394(FireWire)ポート、および/もしくはRS-232ポートであり得る物理コネクタ990をさらに含むことができる。任意の構成要素が除去され得、他の構成要素が追加され得るので、図示の構成要素902は、必須ではなく、または包括的ではない。
[0100] クラウドサポート環境
図10は、説明した実施形態、技法、および技術が実装され得る適切なクラウドサポート環境1000の一般化された例を示す。例示的な環境1000では、様々なタイプのサービス(たとえば、コンピューティングサービス)が、クラウド1010によって提供される。たとえば、クラウド1010は、インターネットなどのネットワークを介して接続された様々なタイプのユーザおよびデバイスにクラウドベースのサービスを提供する、中心に配置されるか、または分散され得るコンピューティングデバイスの集合を備えることができる。実施態様環境1000は、コンピューティングタスクを達成するために異なる方法で使用され得る。たとえば、いくつかのタスク(たとえば、ユーザ入力を処理すること、およびユーザインターフェースを提示すること)は、ローカルコンピューティングデバイス(たとえば、接続されたデバイス1030、1040、1050)上で実行され得、他のタスク(たとえば、後続の処理において使用されるべきデータの記憶)は、クラウド1010において実行され得る。
[0101] 例示的な環境1000では、クラウド1010は、様々な画面機能を有する接続されたデバイス1030、1040、1050のためのサービスを提供する。接続されたデバイス1030は、コンピュータ画面1035(たとえば、中間サイズの画面)を有するデバイスを表す。たとえば、接続されたデバイス1030は、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックなどのパーソナルコンピュータであり得る。接続されたデバイス1040は、モバイルデバイス画面1045(たとえば、小さいサイズの画面)を有するデバイスを表す。たとえば、接続されたデバイス1040は、携帯電話、スマートフォン、携帯情報端末、タブレットコンピュータなどであり得る。接続されたデバイス1050は、大きい画面1055を有するデバイスを表す。たとえば、接続されたデバイス1050は、テレビ画面(たとえば、スマートテレビ)またはテレビに接続された別のデバイス(たとえば、セットトップボックスまたはゲームコンソール)などであり得る。接続されたデバイス1030、1040、1050のうちの1つまたは複数は、タッチスクリーン機能を含むことができる。タッチスクリーンは、異なる方法において入力を受け入れることができる。たとえば、容量性タッチスクリーンは、物体(たとえば、指先またはスタイラス)が表面を横切って流れる電流を歪ませるか、または中断するとき、タッチ入力を検出する。別の例として、タッチスクリーンは、光センサからのビームが中断されたときにタッチ入力を検出するために光センサを使用することができる。一部のタッチスクリーンによって入力が検出されるために、画面の表面との物理的接触は必要ない。画面機能を持たないデバイスも、例示的な環境1000において使用され得る。たとえば、クラウド1010は、ディスプレイを持たない1つまたは複数のコンピュータ(たとえば、サーバコンピュータ)のためのサービスを提供することができる。
[0102] サービスは、サービスプロバイダ1020を介して、またはオンラインサービスの他のプロバイダ(図示せず)を介してクラウド1010によって提供され得る。たとえば、クラウドサービスは、特定の接続されたデバイス(たとえば、接続されたデバイス1030、1040、1050)の画面サイズ、表示機能、および/またはタッチスクリーン機能にカスタマイズされ得る。
[0103] 例示的な環境1000では、クラウド1010は、サービスプロバイダ1020を少なくとも部分的に使用して、本明細書で説明する技術および解決策を様々な接続されたデバイス1030、1040、1050に提供する。たとえば、サービスプロバイダ1020は、様々なクラウドベースのサービスのための集中化した解決策を提供することができる。サービスプロバイダ1020は、ユーザおよび/またはデバイスのための(たとえば、接続されたデバイス1030、1040、1050および/またはそれらのそれぞれのユーザのための)サービス加入を管理することができる。
[0104] 例示的な実施態様
開示された方法のうちのいくつかの動作は、便利な提示のために特定の連続した順序で説明されているが、特定の順序付けが以下の特定の言語によって要求されない限り、この説明の方法は、再配列を包含することを理解すべきである。たとえば、順次記載された動作は、場合によっては、再配列されるか、または同時に実行され得る。さらに、簡略化のために、添付図面は、開示された方法が他の方法と共に使用され得る様々な方法を示していない場合がある。
[0105] 開示された方法のいずれもが、1つまたは複数のコンピュータ可読記憶媒体に記憶され、コンピューティングデバイス(たとえば、スマートフォン、またはコンピューティングハードウェアを含む他のモバイルデバイスを含む任意の利用可能なコンピューティングデバイス)上で実行されるコンピュータ実行可能命令またはコンピュータプログラム製品として実装され得る。コンピュータ可読記憶媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有形媒体(たとえば、1つまたは複数のDVDもしくはCDなどの光媒体ディスク、揮発性メモリ構成要素(DRAMもしくはSRAMなど)、または不揮発性メモリ構成要素(フラッシュメモリもしくはハードドライブなど))である。例として、図8を参照すると、コンピュータ可読記憶媒体は、メモリ820および825と、ストレージ840とを含む。例として、図9を参照すると、コンピュータ可読記憶媒体は、メモリおよびストレージ920、922、および924を含む。コンピュータ可読記憶媒体という用語は、信号および搬送波を含まない。加えて、コンピュータ可読記憶媒体という用語は、通信接続(たとえば、870、960、962、および964)を含まない。
[0106] 開示した技法を実施するためのコンピュータ可読命令のいずれも、ならびに、開示された実施形態の実施中に作成および使用される任意のデータは、1つまたは複数のコンピュータ可読記憶媒体に記憶され得る。コンピュータ実行可能命令は、たとえば、専用ソフトウェアアプリケーション、または、ウェブブラウザもしくは他のソフトウェアアプリケーション(リモートコンピューティングアプリケーションなど)を介してアクセスまたはダウンロードされるソフトウェアアプリケーションの一部であり得る。そのようなソフトウェアは、たとえば、単一のローカルコンピュータ(たとえば、任意の適切な市販のコンピュータ)上で、または(たとえば、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、クライアント−サーバ・ネットワーク(クラウドコンピューティングネットワークなど)、もしくは他のそのようなネットワークを介して)1つもしくは複数のネットワークコンピュータを使用するネットワーク環境内で実行され得る。
[0107] 明確にするために、ソフトウェアベースの実施態様の特定の選択された態様のみについて説明する。当該技術分野で周知の他の詳細は、省略する。たとえば、開示された技術は、どの特定のコンピュータ言語またはプログラムにも限定されない。たとえば、開示された技術は、C++、Java、Perl、JavaScript、Adobe Flash、または任意の他の適切なプログラミング言語で記述されたソフトウェアによって実装され得る。同様に、開示された技術は、どのような特定のコンピュータまたはハードウェアのタイプにも限定されない。適切なコンピュータおよびハードウェアの特定の詳細は、周知であり、本開示において詳細に説明する必要はない。
[0108] さらに、(たとえば、開示された方法のいずれかをコンピュータに実行させるためのコンピュータ実行可能命令を備える)ソフトウェアベースの実施形態のいずれも、適切な通信手段を介してアップロード、ダウンロード、または遠隔アクセスされ得る。そのような適切な通信手段は、たとえば、インターネット、ワールドワイドウェブ、イントラネット、ソフトウェアアプリケーション、ケーブル(光ファイバケーブルを含む)、磁気通信、電磁通信(RF通信、マイクロ波通信、および赤外線通信を含む)、電子通信、または他のそのような通信手段を含む。
[0109] 開示された方法、装置、およびシステムは、どのようにも制限するものとして解釈されるべきではない。代わりに、本開示は、単独で、ならびに互いとの様々な組合せおよび下位組合せで、様々な開示された実施形態のすべての新規かつ自明でない特徴および態様に向けられている。開示された方法、装置、およびシステムは、どのような特定の態様またはその組合せにも限定されず、開示された実施形態は、どのような1つまたは複数の特定の利点が存在することも、または問題が解決されることも要求しない。
[0110] いずれの例からの技術も、任意の1つまたは複数の他の例において説明された技術と組み合わされ得る。開示された技術の原理が適用され得る多くの可能な実施形態を考慮して、例示された実施形態は、開示された技術の例であり、開示された技術の範囲に対する限定としてとられるべきではないことを認識すべきである。

Claims (19)

  1. 処理ユニットと、
    メモリと、
    1つまたは複数のマイクロホンと、
    発話制御デジタルパーソナルアシスタントと、
    を備えるコンピューティングデバイスであって、
    前記発話制御デジタルパーソナルアシスタントは、
    前記1つまたは複数のマイクロホンを介して、ユーザによって生成された発話入力を受け取るステップと、
    発声されたコマンドを決定するために、前記発話入力を使用して発話認識を実行するステップであって、前記発声されたコマンドは、サードパーティのアプリケーションのタスクを実行することを求める要求を備え、前記タスクが、発声されたコマンドによって呼び出し可能なサードパーティのアプリケーションのタスクを定義するデータ構造を使用して識別され、前記サードパーティのアプリケーションは、前記サードパーティのアプリケーションのユーザインターフェースを使用して実行可能なタスクと、前記サードパーティのアプリケーションの前記ユーザインターフェースを使用することなくヘッドレスに実行可能なタスクとを含み、前記データ構造は、前記タスクが前記発話制御デジタルパーソナルアシスタントによってどのように実行可能であるかを定義する、ステップと、
    前記サードパーティのアプリケーションの前記タスクをヘッドレスに実行するか、前記サードパーティのアプリケーションの前記ユーザインターフェースを使用して前記タスクを実行するかを、前記データ構造を使用して選択するステップと、
    前記サードパーティのアプリケーションの前記タスクをヘッドレスに実行することが選択されたとき、前記サードパーティのアプリケーションに、前記タスクをヘッドレスに実行するバックグラウンドプロセスとして実行させるステップと、
    前記サードパーティのアプリケーションから、前記タスクに関連付けられた状態を示す応答を受信するステップと、
    前記サードパーティのアプリケーションの前記ユーザインターフェースを表に出すことなく前記発話制御デジタルパーソナルアシスタントのユーザインターフェースのコンテキスト内から応答が来るように、前記発話制御デジタルパーソナルアシスタントの前記ユーザインターフェースによって、前記タスクに関連付けられた前記受信された状態に基づいて前記ユーザに前記応答を提供するステップと、を含む動作を行うように構成される、コンピューティングデバイス。
  2. 前記サードパーティのアプリケーションの前記タスクをヘッドレスに実行するか、前記サードパーティのアプリケーションの前記ユーザインターフェースを使用して前記タスクを実行するかを、前記データ構造を使用して選択するステップが、前記データ構造が前記タスクをバックグラウンドタスクとして定義すると決定するステップを備える、請求項1に記載のコンピューティングデバイス。
  3. 前記サードパーティのアプリケーションの前記タスクをヘッドレスに実行するか、前記サードパーティのアプリケーションの前記ユーザインターフェースを使用して前記タスクを実行するかを、前記データ構造を使用して選択するステップが、前記ユーザがハンズフリーモードにおいて前記コンピューティングデバイスを使用していると決定するステップを備える、請求項1に記載のコンピューティングデバイス。
  4. 前記動作が、発話認識を実行している間、および前記発声されたコマンドの決定を完了する前に、前記サードパーティのアプリケーションのウォームアップシーケンスを開始するステップをさらに備える、請求項1に記載のコンピューティングデバイス。
  5. 前記ウォームアップシーケンスが、前記メモリの一部を割り当てるステップ、命令をプリフェッチするステップ、通信セッションを確立するステップ、データベースから情報を取り出すステップ、新しい実行スレッドを開始するステップ、または割込みを発生させるステップを含む、請求項4に記載のコンピューティングデバイス。
  6. 発声されたコマンドによって呼び出し可能なサードパーティのアプリケーションのタスクを定義する前記データ構造が、前記タスクに関連付けられた状態の前記ユーザへの応答へのマッピングを含む、請求項1に記載のコンピューティングデバイス。
  7. 前記動作が、
    前記サードパーティのアプリケーションがバックグラウンドプロセスとして実行するようにされたときにタイマを始動するステップと、
    前記タイマが満了した場合、前記バックグラウンドプロセスを終了するステップと
    をさらに備える、請求項1に記載のコンピューティングデバイス。
  8. 前記サードパーティのアプリケーションからの前記応答が、確認状態を示し、前記確認状態に基づく前記ユーザへの前記応答が、イエスかノーの回答で応答するように前記ユーザに促す、請求項1に記載のコンピューティングデバイス。
  9. マイクロホンを備えるコンピューティングデバイスによって実施される方法であって、
    ユーザによって生成されたデジタル音声入力を音声制御デジタルパーソナルアシスタントによって受け取るステップであって、前記デジタル音声入力が前記マイクロホンを介して受け取られる、ステップと、
    ユーザ音声コマンドを決定するために、前記デジタル音声入力を使用して自然言語処理を実行するステップであって、前記ユーザ音声コマンドは、サードパーティの音声対応アプリケーションの事前定義された機能を実行することを求める要求を備え、前記事前定義された機能が、音声入力を使用する利用可能なサードパーティの音声対応アプリケーションによってサポートされる機能を定義するデータ構造を使用して識別され、前記サードパーティの音声対応アプリケーションは、前記サードパーティの音声対応アプリケーションのユーザインターフェースを使用して実行可能な事前定義された機能と、前記サードパーティの音声対応アプリケーションの前記ユーザインターフェースを使用することなくヘッドレスに実行可能な事前定義された機能とを含み、前記データ構造は、前記事前定義された機能が前記音声制御デジタルパーソナルアシスタントによってどのように実行可能であるかを定義する、ステップと、
    前記サードパーティのアプリケーションの前記事前定義された機能を実行することを求める前記要求を備えた前記ユーザ音声コマンドを決定することに応答して、前記サードパーティの音声対応アプリケーションの前記事前定義された機能をヘッドレスに実行するか、前記サードパーティの音声対応アプリケーションの前記ユーザインターフェースを使用して前記事前定義された機能を実行するかを、前記データ構造を使用して選択するステップと、
    前記サードパーティの音声対応アプリケーションに、前記事前定義された機能を、前記サードパーティの音声対応アプリケーションのユーザインターフェースが前記コンピューティングデバイスのディスプレイ上に現われることなしにバックグラウンドプロセスとして実行させるステップと、
    前記サードパーティの音声対応アプリケーションから、前記事前定義された機能に関連付けられた状態を示す応答を受信するステップと、
    前記サードパーティの音声対応アプリケーションの前記ユーザインターフェースを表に出すことなく前記音声制御デジタルパーソナルアシスタントのユーザインターフェースのコンテキスト内から応答が来るように、前記音声制御デジタルパーソナルアシスタントの前記ユーザインターフェースによって、前記事前定義された機能に関連付けられた前記受信された状態に基づいて前記ユーザに応答を提供するステップと、
    を備える、方法。
  10. 自然言語処理を実行している間、および前記ユーザ音声コマンドの決定を完了する前に、前記サードパーティの音声対応アプリケーションのウォームアップシーケンスを開始するステップをさらに備える、請求項9に記載の方法。
  11. 前記ウォームアップシーケンスを開始するステップが、推測的機能を前記サードパーティの音声対応アプリケーションに送るステップを備える、請求項10に記載の方法。
  12. 前記事前定義された機能に関連付けられた前記状態は、ウォームアップ状態、初期状態、進行状態、確認状態、曖昧性解消状態、または最終状態のうちから選択される、請求項9に記載の方法。
  13. 前記データ構造が、前記ユーザからの要求を1つまたは複数のサードパーティの音声対応アプリケーションの事前定義された機能に関連付けるために使用可能なコマンドスキーマを介して拡張可能である、請求項9に記載の方法。
  14. 前記データ構造が、
    利用可能なサードパーティの音声対応アプリケーションによってサポートされる機能への音声コマンドの第1のマッピングと、
    前記音声制御デジタルパーソナルアシスタントから前記ユーザに提供される応答への、前記機能から受信される状態の第2のマッピングと
    を備える、請求項9に記載の方法。
  15. 前記音声制御デジタルパーソナルアシスタントから前記ユーザに提供される前記応答は、表示テキスト、テキスト−発話、ディープリンクユーザリソースインジケータ(URI)、ウェブリンクURI、ハイパーテキストマークアップ言語(HTML)、リストテンプレート、物理アドレス、または電話番号の形式から選択される、請求項9に記載の方法。
  16. 前記サードパーティの音声対応アプリケーションは、リモートウェブサービスである、請求項9に記載の方法。
  17. ユーザ音声コマンドを決定するために、前記デジタル音声入力を使用して自然言語処理を実行するステップは、前記ユーザ音声コマンドがコンテキストフリーとなるように、コンテキスト情報を解析するステップを備える、請求項9に記載の方法。
  18. 音声制御デジタルパーソナルアシスタントのコンテキスト内で音声対応アプリケーションのタスクを完了するための動作をコンピューティングデバイスに実行させるためのコンピュータ実行可能命令を記憶するコンピュータ可読記憶装置であって、前記動作が、
    前記音声制御デジタルパーソナルアシスタントによって、ユーザによって生成されたデジタル音声入力を受け取るステップであって、前記デジタル音声入力がマイクロホンを介して受け取られる、ステップと、
    ユーザ音声コマンドを決定するために、前記デジタル音声入力を使用して自然言語処理を実行するステップであって、前記ユーザ音声コマンドが、前記音声対応アプリケーションの前記タスクを実行することを求める要求を備え、前記タスクが、ユーザ音声コマンドを音声対応アプリケーションのタスクにマッピングする拡張可能なデータ構造を使用して識別され、前記音声対応アプリケーションは、前記音声対応アプリケーションのユーザインターフェースを使用して実行可能なタスクと、前記音声対応アプリケーションの前記ユーザインターフェースを使用することなくヘッドレスに実行可能なタスクとを含み、前記データ構造は、前記タスクが前記音声制御デジタルパーソナルアシスタントによってどのように実行可能であるかを定義する、ステップと、
    前記ユーザ音声コマンドを決定することに応答して、前記音声対応アプリケーションの前記タスクをフォアグラウンドタスクとして実行するか、それともバックグラウンドタスクとして実行するかを、前記データ構造を使用して選択するステップと、
    前記タスクをバックグラウンドタスクとして実行することが選択された場合、前記音声対応アプリケーションに、前記タスクをバックグラウンドタスクとして、前記音声対応アプリケーションのユーザインターフェースが表に出ることなく前記音声制御デジタルパーソナルアシスタントのコンテキスト内で実行させるステップと、
    前記音声対応アプリケーションから前記タスクに関連付けられた状態を示す応答を受信するステップと、
    前記タスクに関連付けられた前記受信された状態に基づいて前記ユーザに応答を提供するステップであって、前記応答は、前記タスクがバックグラウンドタスクであると决定されたとき、前記音声対応アプリケーションのユーザインターフェースが表に出ることなく前記音声制御デジタルパーソナルアシスタントのコンテキスト内で提供される、ステップと
    を備える、コンピュータ可読記憶装置。
  19. 前記動作が、自然言語処理を実行している間、および前記ユーザ音声コマンドの決定を完了する前に、前記音声対応アプリケーションのウォームアップシーケンスを開始するステップをさらに備える、請求項18に記載のコンピュータ可読記憶装置。
JP2017536242A 2015-01-09 2015-12-29 デジタルパーソナルアシスタント内のヘッドレスタスクの完了 Active JP6666920B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/593,584 US9959129B2 (en) 2015-01-09 2015-01-09 Headless task completion within digital personal assistants
US14/593,584 2015-01-09
PCT/US2015/067759 WO2016111881A1 (en) 2015-01-09 2015-12-29 Headless task completion within digital personal assistants

Publications (3)

Publication Number Publication Date
JP2018511095A JP2018511095A (ja) 2018-04-19
JP2018511095A5 JP2018511095A5 (ja) 2018-12-27
JP6666920B2 true JP6666920B2 (ja) 2020-03-18

Family

ID=55305053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017536242A Active JP6666920B2 (ja) 2015-01-09 2015-12-29 デジタルパーソナルアシスタント内のヘッドレスタスクの完了

Country Status (18)

Country Link
US (1) US9959129B2 (ja)
EP (2) EP3243199B1 (ja)
JP (1) JP6666920B2 (ja)
KR (1) KR102490776B1 (ja)
CN (1) CN107111516B (ja)
AU (1) AU2015375326B2 (ja)
BR (1) BR112017013524B1 (ja)
CA (2) CA3158979A1 (ja)
CL (1) CL2017001755A1 (ja)
CO (1) CO2017007028A2 (ja)
IL (1) IL252458B (ja)
MX (1) MX2017008926A (ja)
MY (1) MY186956A (ja)
NZ (2) NZ732357A (ja)
PH (1) PH12017550012A1 (ja)
RU (1) RU2710984C2 (ja)
SG (1) SG11201705282XA (ja)
WO (1) WO2016111881A1 (ja)

Families Citing this family (186)

* 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
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task 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
US8688514B1 (en) 2011-06-24 2014-04-01 Google Inc. Ad selection using image data
US11087424B1 (en) 2011-06-24 2021-08-10 Google Llc Image recognition-based content item selection
US10972530B2 (en) * 2016-12-30 2021-04-06 Google Llc Audio-based data structure generation
US10630751B2 (en) 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US10956485B2 (en) 2011-08-31 2021-03-23 Google Llc Retargeting in a search environment
US11093692B2 (en) 2011-11-14 2021-08-17 Google Llc Extracting audiovisual features from digital components
US10586127B1 (en) 2011-11-14 2020-03-10 Google Llc Extracting audiovisual features from content elements on online documents
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
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
US11030239B2 (en) 2013-05-31 2021-06-08 Google Llc Audio based entity-action pair based selection
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10614153B2 (en) 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US9703757B2 (en) 2013-09-30 2017-07-11 Google Inc. Automatically determining a size for a content item for a web page
US10431209B2 (en) 2016-12-30 2019-10-01 Google Llc Feedback controller for data transmissions
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
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
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
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
US9898170B2 (en) * 2014-12-10 2018-02-20 International Business Machines Corporation Establishing user specified interaction modes in a question answering dialogue
US11127055B1 (en) * 2015-02-27 2021-09-21 State Farm Mutual Automobile Insurance Company System and method for navigating an automated process using audio and tactile feedback
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
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
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20170046438A1 (en) 2015-08-13 2017-02-16 Quixey, Inc. Cloud-Enabled Caching Architecture for On-Demand Native Application Crawling
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
KR20170072652A (ko) * 2015-12-17 2017-06-27 삼성전자주식회사 디스플레이 장치 및 디스플레이 방법
US10079021B1 (en) * 2015-12-18 2018-09-18 Amazon Technologies, Inc. Low latency audio interface
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10120954B2 (en) 2015-12-31 2018-11-06 Samsung Electronics Co., Ltd. Transformation and presentation of on-demand native application crawling results
US10229677B2 (en) * 2016-04-19 2019-03-12 International Business Machines Corporation Smart launching mobile applications with preferred user interface (UI) languages
US10783178B2 (en) 2016-05-17 2020-09-22 Google Llc Generating a personal database entry for a user based on natural language user interface input of the user and generating output based on the entry in response to further natural language user interface input of the user
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US11093834B2 (en) * 2016-07-06 2021-08-17 Palo Alto Research Center Incorporated Computer-implemented system and method for predicting activity outcome based on user attention
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10395652B2 (en) 2016-09-20 2019-08-27 Allstate Insurance Company Personal information assistant computing system
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
US11010601B2 (en) 2017-02-14 2021-05-18 Microsoft Technology Licensing, Llc Intelligent assistant device communicating non-verbal cues
US10467509B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Computationally-efficient human-identifying smart assistant computer
US10574825B2 (en) * 2017-02-15 2020-02-25 Microsoft Technology Licensing, Llc Assisted-communication with intelligent personal assistant
US11323665B2 (en) * 2017-03-31 2022-05-03 Ecolink Intelligent Technology, Inc. Method and apparatus for interaction with an intelligent personal assistant
KR102339819B1 (ko) * 2017-04-05 2021-12-15 삼성전자주식회사 프레임워크를 이용한 자연어 표현 생성 방법 및 장치
US10726056B2 (en) * 2017-04-10 2020-07-28 Sap Se Speech-based database access
US11170768B2 (en) * 2017-04-17 2021-11-09 Samsung Electronics Co., Ltd Device for performing task corresponding to user utterance
KR102414122B1 (ko) * 2017-04-19 2022-06-29 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 그 동작 방법
US20180316634A1 (en) * 2017-04-26 2018-11-01 Microsoft Technology Licensing, Llc Extending application functionality via conversational interfaces
KR102298947B1 (ko) 2017-04-28 2021-09-08 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
KR102380717B1 (ko) * 2017-04-30 2022-03-31 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
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
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
US10127227B1 (en) * 2017-05-15 2018-11-13 Google Llc Providing access to user-controlled resources by automated assistants
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US11048995B2 (en) * 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10679192B2 (en) 2017-05-25 2020-06-09 Microsoft Technology Licensing, Llc Assigning tasks and monitoring task performance based on context extracted from a shared contextual graph
US10769138B2 (en) 2017-06-13 2020-09-08 International Business Machines Corporation Processing context-based inquiries for knowledge retrieval
KR102365649B1 (ko) * 2017-06-28 2022-02-22 삼성전자주식회사 화면 제어 방법 및 이를 지원하는 전자 장치
US10449440B2 (en) * 2017-06-30 2019-10-22 Electronic Arts Inc. Interactive voice-controlled companion application for a video game
US10366691B2 (en) * 2017-07-11 2019-07-30 Samsung Electronics Co., Ltd. System and method for voice command context
US11004444B2 (en) * 2017-09-08 2021-05-11 Amazon Technologies, Inc. Systems and methods for enhancing user experience by communicating transient errors
US10621317B1 (en) 2017-09-14 2020-04-14 Electronic Arts Inc. Audio-based device authentication system
US10423873B2 (en) * 2017-12-01 2019-09-24 International Business Machines Corporation Information flow analysis for conversational agents
US11113026B2 (en) * 2017-12-08 2021-09-07 Toonimo, Inc. System and method for voice-directed website walk-through
US10629192B1 (en) 2018-01-09 2020-04-21 Electronic Arts Inc. Intelligent personalized speech recognition
US20190213528A1 (en) * 2018-01-10 2019-07-11 Microsoft Technology Licensing, Llc Digital assistant task management
US10643632B2 (en) * 2018-01-12 2020-05-05 Wells Fargo Bank, N.A. Automated voice assistant personality selector
CN111699473B (zh) * 2018-01-12 2023-09-29 谷歌有限责任公司 用于暂停和恢复虚拟助理的系统、方法以及装置
US20210064640A1 (en) * 2018-01-17 2021-03-04 Sony Corporation Information processing apparatus and information processing method
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
CN108521500A (zh) * 2018-03-13 2018-09-11 努比亚技术有限公司 一种语音场景控制方法、设备及计算机可读存储介质
KR102617265B1 (ko) * 2018-03-13 2023-12-26 삼성전자주식회사 사용자 음성 입력을 처리하는 장치
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN110321201A (zh) * 2018-03-29 2019-10-11 努比亚技术有限公司 一种后台程序处理方法、终端及计算机可读存储介质
BR102019007123A2 (pt) * 2018-04-16 2019-10-29 Panasonic Avionics Corp assistentes digitais e métodos associados para um veículo de transporte
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US10963273B2 (en) 2018-04-20 2021-03-30 Facebook, Inc. Generating personalized content summaries for users
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US10824432B2 (en) * 2018-04-30 2020-11-03 Servicenow, Inc. Systems and methods for providing multiple console sessions that enable line-by-line execution of scripts on a server application
US11087761B2 (en) 2018-05-07 2021-08-10 Google Llc Platform selection for performing requested actions in audio-based computing environments
EP4361810A2 (en) 2018-05-07 2024-05-01 Google Llc Platform selection for performing requested actions in audio-based computing environments
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11237796B2 (en) * 2018-05-07 2022-02-01 Google Llc Methods, systems, and apparatus for providing composite graphical assistant interfaces for controlling connected devices
US11487501B2 (en) * 2018-05-16 2022-11-01 Snap Inc. Device control using audio data
KR20190136832A (ko) * 2018-05-31 2019-12-10 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 음성 명령을 프린팅 서비스를 지원하는 텍스트 코드 블록들로 변환
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
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
AU2019100576C4 (en) * 2018-06-03 2020-01-30 Apple Inc. Accelerated task performance
DK201870357A1 (en) * 2018-06-03 2019-12-20 Apple Inc. ACCELERATED TASK PERFORMANCE
WO2020032563A1 (en) * 2018-08-07 2020-02-13 Samsung Electronics Co., Ltd. System for processing user voice utterance and method for operating same
EP3937030A1 (en) 2018-08-07 2022-01-12 Google LLC Assembling and evaluating automated assistant responses for privacy concerns
KR102607666B1 (ko) 2018-08-08 2023-11-29 삼성전자 주식회사 전자 장치에서 사용자 의도 확인을 위한 피드백 제공 방법 및 장치
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
US11205422B2 (en) 2018-10-02 2021-12-21 International Business Machines Corporation Methods and systems for managing chatbots with data access
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
JP7135099B2 (ja) 2018-11-21 2022-09-12 グーグル エルエルシー 異種のデータソースへのクエリからの応答の統合
KR20200066933A (ko) * 2018-12-03 2020-06-11 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10878805B2 (en) * 2018-12-06 2020-12-29 Microsoft Technology Licensing, Llc Expediting interaction with a digital assistant by predicting user responses
CN113330512A (zh) * 2018-12-28 2021-08-31 谷歌有限责任公司 根据选择的建议向自动化助理补充语音输入
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11380214B2 (en) * 2019-02-19 2022-07-05 International Business Machines Corporation Memory retention enhancement for electronic text
JP7280066B2 (ja) * 2019-03-07 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
WO2020226619A1 (en) * 2019-05-06 2020-11-12 Google Llc Rendering visual components on applications in response to voice commands
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
WO2020242354A1 (en) * 2019-05-28 2020-12-03 Telefonaktiebolaget Lm Ericsson (Publ) Network nodes and methods performed therein for handling messages
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
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
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US20200388280A1 (en) 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
WO2020246975A1 (en) * 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
US10926173B2 (en) 2019-06-10 2021-02-23 Electronic Arts Inc. Custom voice control of video game character
US10901689B1 (en) * 2019-07-11 2021-01-26 International Business Machines Corporation Dynamic augmented reality interface creation
WO2021015801A1 (en) 2019-07-19 2021-01-28 Google Llc Condensed spoken utterances for automated assistant control of an intricate application gui
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11636438B1 (en) * 2019-10-18 2023-04-25 Meta Platforms Technologies, Llc Generating smart reminders by assistant systems
KR20220062360A (ko) * 2019-11-27 2022-05-16 구글 엘엘씨 동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스
US11574634B2 (en) * 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
CN111261156A (zh) * 2019-12-30 2020-06-09 北京梧桐车联科技有限责任公司 语音采集方法、装置及计算机可读存储介质
US11907298B2 (en) * 2020-02-04 2024-02-20 Intuition Robotics, Ltd. System and method thereof for automatically updating a decision-making model of an electronic social agent by actively collecting at least a user response
US11782986B2 (en) 2020-03-27 2023-10-10 Trushant Mehta Interactive query based network communication through a media device
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11556707B2 (en) 2020-06-18 2023-01-17 Google Llc Fulfillment of actionable requests ahead of a user selecting a particular autocomplete suggestion for completing a current user input
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
US11587568B2 (en) * 2020-12-08 2023-02-21 Google Llc Streaming action fulfillment based on partial hypotheses
CN112698872A (zh) * 2020-12-21 2021-04-23 北京百度网讯科技有限公司 语音数据处理的方法、装置、设备及存储介质
US11947783B2 (en) * 2021-01-25 2024-04-02 Google Llc Undoing application operation(s) via user interaction(s) with an automated assistant
US11978449B2 (en) 2021-03-02 2024-05-07 Samsung Electronics Co., Ltd. Electronic device for processing user utterance and operation method therefor
US20220293128A1 (en) * 2021-03-10 2022-09-15 Comcast Cable Communications, Llc Systems and methods for improved speech and command detection
US20220366338A1 (en) * 2021-05-13 2022-11-17 At&T Intellectual Property I, L.P. Contextual presentation of multiple steps in performing a task

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3725566B2 (ja) * 1992-12-28 2005-12-14 株式会社東芝 音声認識インターフェース
US6791529B2 (en) * 2001-12-13 2004-09-14 Koninklijke Philips Electronics N.V. UI with graphics-assisted voice control system
US7003464B2 (en) * 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
DE102005016853A1 (de) * 2005-04-12 2006-10-19 Siemens Ag Verfahren zur Kontrolle von sprachgesteuerten Applikationen und zugehöriges Kontrollsystem
EP2177010B1 (en) * 2006-12-13 2015-10-28 Quickplay Media Inc. Mobile media platform
US8595642B1 (en) 2007-10-04 2013-11-26 Great Northern Research, LLC Multiple shell multi faceted graphical user interface
US20130176328A1 (en) * 2009-12-25 2013-07-11 Nokia Corporation Method and apparatus for persistent display of navigation content
US10631246B2 (en) 2011-02-14 2020-04-21 Microsoft Technology Licensing, Llc Task switching on mobile devices
US9063629B2 (en) * 2011-10-31 2015-06-23 Nokia Technologies Oy Responding to a received message in a locked user interaction mode
CN102510426A (zh) 2011-11-29 2012-06-20 安徽科大讯飞信息科技股份有限公司 个人助理应用访问方法及系统
US9052197B2 (en) 2012-06-05 2015-06-09 Apple Inc. Providing navigation instructions while device is in locked mode
CN103593230B (zh) 2012-08-13 2017-05-10 百度在线网络技术(北京)有限公司 移动终端的后台任务控制方法及移动终端
US10276157B2 (en) * 2012-10-01 2019-04-30 Nuance Communications, Inc. Systems and methods for providing a voice agent user interface
US9384732B2 (en) 2013-03-14 2016-07-05 Microsoft Technology Licensing, Llc Voice command definitions used in launching application with a command
US9658740B2 (en) * 2013-03-15 2017-05-23 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
KR101505127B1 (ko) * 2013-03-15 2015-03-26 주식회사 팬택 음성 명령에 의한 오브젝트 실행 장치 및 방법
US9008283B2 (en) * 2013-03-15 2015-04-14 Genesys Telecommunications Laboratories, Inc. Customer portal of an intelligent automated agent for a contact center
CN103257787B (zh) 2013-05-16 2016-07-13 小米科技有限责任公司 一种语音助手应用的开启方法和装置
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9749209B2 (en) * 2013-11-01 2017-08-29 The Nielsen Company (Us), Llc Methods and apparatus to credit background applications
US9741343B1 (en) * 2013-12-19 2017-08-22 Amazon Technologies, Inc. Voice interaction application selection

Also Published As

Publication number Publication date
AU2015375326A1 (en) 2017-06-15
MX2017008926A (es) 2017-10-11
US9959129B2 (en) 2018-05-01
EP3243199B1 (en) 2019-06-19
EP3584787B1 (en) 2022-02-23
SG11201705282XA (en) 2017-07-28
RU2017124103A3 (ja) 2019-07-17
CO2017007028A2 (es) 2017-09-29
PH12017550012A1 (en) 2017-10-18
NZ732357A (en) 2022-10-28
CA2970725C (en) 2023-05-23
KR102490776B1 (ko) 2023-01-19
BR112017013524A2 (pt) 2018-01-02
EP3243199A1 (en) 2017-11-15
CN107111516A (zh) 2017-08-29
IL252458B (en) 2019-11-28
CN107111516B (zh) 2021-07-30
NZ770836A (en) 2022-10-28
CA2970725A1 (en) 2016-07-14
MY186956A (en) 2021-08-26
EP3584787A1 (en) 2019-12-25
CA3158979A1 (en) 2016-07-14
WO2016111881A1 (en) 2016-07-14
AU2015375326B2 (en) 2020-08-27
BR112017013524B1 (pt) 2023-03-07
IL252458A0 (en) 2017-07-31
JP2018511095A (ja) 2018-04-19
RU2710984C2 (ru) 2020-01-14
US20160203002A1 (en) 2016-07-14
KR20170103801A (ko) 2017-09-13
RU2017124103A (ru) 2019-01-09
CL2017001755A1 (es) 2018-02-16

Similar Documents

Publication Publication Date Title
JP6666920B2 (ja) デジタルパーソナルアシスタント内のヘッドレスタスクの完了
US11500672B2 (en) Distributed personal assistant
US20230368784A1 (en) Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
JP6744314B2 (ja) クラウドソーシングに基づいてデジタルパーソナルアシスタントのための言語理解分類子モデルを更新すること
CN107112015B (zh) 发现第三方启用语音的资源的能力
JP5911669B2 (ja) 音声コマンドの多次元曖昧性解消
US10811005B2 (en) Adapting voice input processing based on voice input characteristics
US11749276B2 (en) Voice assistant-enabled web application or web page
DK201670562A1 (en) Application integration with a digital assistant
KR102351587B1 (ko) 선택가능한 그래픽 엘리먼트를 통해 자동화된 에이전트로 대화를 초기화하기
KR102096590B1 (ko) Gui 음성제어 장치 및 방법
JP2019175453A (ja) ユーザ音声入力の処理を含むシステム及びその動作方法並びに電子装置
CA3158979C (en) Headless task completion within digital personal assistants
WO2022199596A1 (zh) 意图决策方法及设备、计算机可读存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200120

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: 20200129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200221

R150 Certificate of patent or registration of utility model

Ref document number: 6666920

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