(57)【要約】  音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法とシステムが記載されている。検索クエリに対応する自然言語テキスト文字列が提供される。検索クエリはクエリタームを含む。テキスト文字列は、ユーザによって電子機器に入力される音声入力に対応してもよい。少なくとも一つの情報源が、クエリタームの少なくとも１つに関連付けられた少なくとも１つのパラメータを識別するために検索される。パラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうちの少なくとも１つを含む。パラメータは、一致を識別するために、メディアアイテムのタグと比較される。いくつかの実施態様では、パラメータに一致するタグを有するメディアアイテムがユーザに提示される。
2015527683.tif 000002
【特許請求の範囲】
【請求項１】
音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法であって、
プロセッサ及び該プロセッサによって実行される命令を記憶するメモリを有する電子機器において、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するステップであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
を含む、方法。
【請求項２】
前記複数のメディアアイテムは写真である、請求項１に記載の方法。
【請求項３】
前記複数のメディアアイテムはビデオである、請求項１に記載の方法。
【請求項４】
前記タグは、前記メディアアイテムとともに記憶されるメタデータである、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数のメディアアイテムの少なくともサブセットは、電子機器上に記憶される、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記複数のメディアアイテムの少なくともサブセットは、前記電子機器からリモートに記憶される、請求項１から４のいずれか１項に記載の方法。
【請求項７】
前記リモートに記憶されたメディアアイテムは、前記電子機器のユーザのソーシャルネットワーキングアカウントに関連付けられている、請求項６に記載の方法。
【請求項８】
ユーザから音声入力を受取るステップを更に含み、前記自然言語テキスト文字列は前記音声入力に対応する、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記自然言語テキスト文字列を生成するために、前記音声入力に対して音声テキスト化処理を実行するステップを更に含む、請求項８に記載の方法。
【請求項１０】
前記少なくとも１つの情報源は、
カレンダーと、
電子メールメッセージと、
テキストメッセージと、
ソーシャルネットワークの投稿と、
連絡帳と、
旅行日程と、
イベントスケジュールと、
からなる群から選択される、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記１つ以上のクエリタームは、日付、時間、又はジオコードのいずれも含まない、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記１つ以上のクエリタームはイベント名を含み、前記少なくとも１つの情報源はイベント名を日付に関連付ける情報を含む、請求項１から１１のいずれか１項に記載の方法
【請求項１３】
前記イベント名は宗教上の休日である、請求項１２に記載の方法。
【請求項１４】
前記イベント名は国民の休日である、請求項１２に記載の方法。
【請求項１５】
前記イベント名は、誕生日と、季節と、スポーツイベントと、からなる群から選択される、請求項１２に記載の方法。
【請求項１６】
前記１つ以上のクエリタームは休日名を含み、前記方法は、
前記休日を含むか、及び／又は前記休日の近くの日付の範囲に及ぶイベントを識別するためにユーザに関連付けられたカレンダーを検索するステップと、
関連付けられた日付タグが前記日付の範囲内にある少なくとも１つのメディアアイテムを識別するために、前記複数のメディアアイテムに関連付けられた前記日付タグを検索するステップと、
を更に含む、請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
前記時間パラメータは、前記１つ以上のクエリタームで指定された時間を包含する時間範囲を含む、請求項１から１６のいずれか１項に記載の方法。
【請求項１８】
前記日付パラメータは、前記１つ以上のクエリタームで指定された日付を包含する日付範囲を含む、請求項１から１７のいずれか１項に記載の方法。
【請求項１９】
前記ジオコードパラメータは、前記１つ以上のクエリタームで指定された場所に関連付けられたジオコードの範囲を含む、請求項１から１８のいずれか１項に記載の方法。
【請求項２０】
前記ジオコードの範囲は前記場所の地理的境界に対応する、請求項１９に記載の方法。
【請求項２１】
前記ジオコードの範囲は、主要なジオコード及び前記主要なジオコードから１つ以上の方向への１つ以上の距離に対応する、請求項１９に記載の方法。
【請求項２２】
前記少なくとも１つのパラメータは場所に対応し、前記それぞれのタグと前記少なくとも１つのパラメータの１つとを比較するステップは、前記ジオコードタグが前記場所に対応するかどうかを判定するステップを更に含む、請求項１から２１のいずれか１項に記載の方法。
【請求項２３】
それぞれ識別されたメディアアイテムに信頼値を割り当てるステップを更に含み、前記信頼値は、前記メディアアイテムの前記時間タグ、前記日付タグ、又は前記ジオコードタグと、前記１つ以上のクエリタームの前記少なくとも１つに関連付けられた前記時間、前記日付、又は前記ジオコードとの間の一致の強さに対応する、請求項１から２２のいずれか１項に記載の方法。
【請求項２４】
前記少なくとも１つのメディアアイテムは、複数のメディアアイテムを含み、前記方法は、
前記複数のメディアアイテムの少なくともサブセットを前記電子機器に関連付けられたディスプレイ上に表示するステップを更に含む、請求項２３に記載の方法。
【請求項２５】
前記表示するステップの前に、前記信頼値に基づいて前記複数のメディアアイテムをランク付けするステップを更に含み、前記複数のメディアアイテムが前記ランク付けするステップに基づいた順序で表示される、請求項２４に記載の方法。
【請求項２６】
前記メディアアイテムはオーディオである、請求項１に記載の方法。
【請求項２７】
前記電子機器はハンドヘルド電子機器である、請求項１から２６のいずれか１項に記載の方法。
【請求項２８】
前記電子機器はサーバであり、前記テキスト文字列は前記電子機器とは別の第２の電子機器で受信される、請求項１から２６のいずれか１項に記載の方法。
【請求項２９】
１つ以上のプロセッサと、メモリと、前記メモリに記憶され、前記１つ以上のプロセッサによって実行するように構成された１つ以上のプログラムを含む電子機器であって、前記１つ以上のプログラムは、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するステップであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
のための命令を含む、電子機器。
【請求項３０】
前記１つ以上のプログラムは、請求項２から２８に記載された前記方法のいずれか１つを実行するための命令を含む、請求項２９に記載の電子機器。
【請求項３１】
電子機器によって実行するように構成された１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供することであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
のための命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項３２】
前記１つ以上のプログラム内の前記命令は、前記電子機器によって実行される場合、前記電子機器に請求項２から２８に記載された前記方法のいずれか１つを実行させる、請求項３１に記載の、非一時的コンピュータ可読記憶媒体。
【請求項３３】
複数のメディアアイテムを提供するための手段であって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するための手段と、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するための手段であって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するための手段と、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するための手段であって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するための手段と、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するための手段と、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するための手段と、
を備える、電子機器。
【請求項３４】
請求項２から２８に記載された前記方法のいずれか１つを実行するための手段を含む、請求項３３に記載の電子機器。
【請求項３５】
電子機器に使用するための情報処理装置であって、
複数のメディアアイテムを提供するための手段であって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するための手段と、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するための手段であって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するための手段と、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するための手段であって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するための手段と、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するための手段と、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するための手段と、
を備える、情報処理装置。
【請求項３６】
請求項２から２８に記載された前記方法のいずれか１つを実行するための手段を含む、請求項３５に記載の情報処理装置。
【請求項３７】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムは前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成され、前記１つ以上のプログラムは、請求項１から２８に記載された前記方法のいずれか１つを実行するための命令を含む、電子機器。
【請求項３８】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、電子機器によって実行される場合、前記機器に、請求項１から２８に記載された前記方法のいずれか１つを実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項３９】
電子機器と、メモリと、前記メモリに記憶されている１つ以上のプログラムを実行する１つ以上のプロセッサ上のグラフィカルユーザインターフェースであって、前記グラフィカルユーザインターフェースは、請求項１から２８に記載された前記方法のいずれか１つに従って表示されるユーザインターフェースを備える、グラフィカルユーザインターフェース。
【請求項４０】
請求項１から２８に記載された前記方法のいずれか１つを実行するための手段を備える、電子機器。
【請求項４１】
電子機器に使用するための情報処理装置であって、
請求項１から２８に記載された前記方法のいずれか１つを実行するための手段を備える、情報処理装置。
【請求項４２】
複数のメディアアイテムを提供するように構成されたメディアアイテム提供ユニットであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグの少なくとも１つを含むそれぞれのタグにそれぞれ関連付けされている、メディアアイテム提供ユニットと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するように構成されている自然言語テキスト文字列提供ユニットであって、前記検索クエリは１つ以上のクエリタームを含む、自然言語テキスト文字列提供ユニットと、
前記メディアアイテム提供ユニット及び前記自然言語テキスト文字列提供ユニットに結合された処理ユニットと、
を備え、前記処理ユニットは、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
を実行するように構成された、電子機器。
【請求項４３】
前記複数のメディアアイテムは写真である、請求項４２に記載の電子機器。
【請求項４４】
前記複数のメディアアイテムはビデオである、請求項４２に記載の電子機器。
【請求項４５】
前記タグは、前記メディアアイテムとともに記憶されるメタデータである、請求項４２から４４のいずれか１項に記載の電子機器。
【請求項４６】
前記複数のメディアアイテムの少なくともサブセットは、前記電子機器上に記憶される、請求項４２から４５のいずれか１項に記載の電子機器。
【請求項４７】
前記複数のメディアアイテムの少なくともサブセットは、前記電子機器からリモートに記憶される、請求項４２から４５のいずれか１項に記載の電子機器。
【請求項４８】
前記リモートに記憶されたメディアアイテムは、前記電子機器のユーザのソーシャルネットワーキングアカウントに関連付けられている、請求項４７に記載の電子機器。
【請求項４９】
ユーザから音声入力を受取るように構成された音声入力受取りユニットを更に備える、前記自然言語テキスト文字列は前記音声入力に対応する、請求項４２から４８のいずれか１項に記載の電子機器。
【請求項５０】
前記処理ユニットは、前記自然言語テキスト文字列を生成するために、前記音声入力に対して、音声入力テキスト化処理を実行するように更に構成されている、請求項４９に記載の電子機器。
【請求項５１】
前記少なくとも１つの情報源は、
カレンダーと、
電子メールメッセージと、
テキストメッセージと、
ソーシャルネットワークの投稿と、
連絡帳と、
旅行日程と、
イベントスケジュールと、
からなる群から選択される、請求項４２から５０のいずれか１項に記載の電子機器。
【請求項５２】
前記１つ以上のクエリタームは、日付、時間、又はジオコードのいずれも含まない、請求項４２から５１のいずれか１項に記載の電子機器。
【請求項５３】
前記１つ以上のクエリタームはイベント名を含み、前記少なくとも１つの情報源はイベント名を日付に関連付ける情報を含む、請求項４２から５２のいずれか１項に記載の電子機器。
【請求項５４】
前記イベント名は宗教上の休日である、請求項５３に記載の電子機器。
【請求項５５】
前記イベント名は国民の休日である、請求項５３に記載の電子機器。
【請求項５６】
前記イベント名は、誕生日と、季節と、スポーツイベントと、からなる群から選択される、請求項５３に記載の電子機器。
【請求項５７】
前記１つ以上のクエリタームは休日名を含み、前記処理ユニットは、
前記休日を含むか、及び／又は前記休日の近くの日付の範囲に及ぶイベントを識別するためにユーザに関連付けられたカレンダーを検索することと、
関連付けられた日付タグが前記日付の範囲内にある少なくとも１つのメディアアイテムを識別するために、前記複数のメディアアイテムに関連付けられた前記日付タグを検索することと、
を行うように更に構成された、請求項４２から５６のいずれか１項に記載の電子機器。
【請求項５８】
前記時間パラメータは、前記１つ以上のクエリタームで指定された時間を包含する時間範囲を含む、請求項４２から５７のいずれか１項に記載の電子機器。
【請求項５９】
前記日付パラメータは、前記１つ以上のクエリタームで指定された日付を包含する日付範囲を含む、請求項４２から５８のいずれか１項に記載の電子機器。
【請求項６０】
前記ジオコードパラメータは、前記１つ以上のクエリタームで指定された場所に関連付けられたジオコードの範囲を含む、請求項４２から５９のいずれか１項に記載の電子機器。
【請求項６１】
前記ジオコードの範囲は、前記場所の地理的境界に対応する、請求項６０に記載の電子機器。
【請求項６２】
前記ジオコードの範囲は、主要なジオコード及び前記主要なジオコードから１つ以上の方向への１つ以上の距離に対応する、請求項６０に記載の電子機器。
【請求項６３】
前記少なくとも１つのパラメータは場所に対応し、前記それぞれのタグと前記少なくとも１つのパラメータの１つとを比較するステップは、前記ジオコードタグが前記場所に対応するかどうかを判定するステップを更に含む、請求項４２から６１のいずれか１項に記載の電子機器。
【請求項６４】
前記処理ユニットは、各識別されたメディアアイテムに信頼値を割り当てるように更に構成されており、前記信頼値は、前記メディアアイテムの前記時間タグ、前記日付タグ、又は前記ジオコードタグと、前記１つ以上のクエリタームの前記少なくとも１つに関連付けられた前記時間、前記日付、又は前記ジオコードとの間の一致の強さに対応する、請求項４２から６３のいずれか１項に記載の電子機器。
【請求項６５】
前記少なくとも１つのメディアアイテムは、複数のメディアアイテムを含み、前記処理ユニットは、
前記複数のメディアアイテムの少なくともサブセットを前記電子機器に関連付けられたディスプレイ上に表示することを促進するように更に構成された、請求項６４に記載の電子機器。
【請求項６６】
前記処理ユニットは、更に、前記複数のメディアアイテムの前記サブセットの表示を促進する前に、前記信頼値に基づいて前記複数のメディアアイテムをランク付けするように更に構成され、前記複数のメディアアイテムは前記ランク付けに基づく順序で表示される、請求項６５に記載の電子機器。
【請求項６７】
前記メディアアイテムはオーディオである、請求項４２に記載の電子機器。
【請求項６８】
前記電子機器はハンドヘルド電子機器である、請求項４２から６７のいずれか１項に記載の電子機器。
【請求項６９】
前記電子機器はサーバであり、前記テキスト文字列は前記電子機器とは別個の第２の電子機器で受信される、請求項４２から６７のいずれか１項に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
開示された実施態様は、全般的にはデジタルアシスタントシステムに関連し、より具体的には、音声ベースのメディア検索のための方法及びシステムに関連する。
【背景技術】
【０００２】
カメラ技術、画像処理及び画像記憶技術の進歩により、人類は、デジタル写真撮影を通じて環境と途切れなく対話し、かつ環境を「キャプチャする」ことができるようになった。また、ハンドヘルド機器（例えば、携帯電話、デジタルアシスタントシステム）の周辺技術の最近の進歩は、ハンドヘルド機器上の画像のキャプチャ及び画像記憶能力を改善した。これは、写真の取り込みとデジタル写真記憶のためのハンドヘルド機器の使用の大幅な増加につながっている。
【０００３】
電子機器に取り込まれて記憶されるデジタル写真の量が増大することにより、閲覧及び検索の容易さを可能にするために、体系的な目録作成と写真の効率的な体系化の必要性が生じた。写真のタグ付け、例えば、写真を人又は場所の名前と関連付けることにより、写真の整理及び検索のしやすさが促進される。時刻、日付、及びＧＰＳ座標データなどの他の情報もますます写真に関連付けられるようになっており、効率的な分類及び整理が可能となっている。
【０００４】
写真のキャプチャ及びデジタル画像記憶技術は過去１０年間に大幅に改善されたが、写真検索への従来のアプローチは、非直感的で、骨がおれ、かつ時間を要するものとなる可能性がある。
【発明の概要】
【０００５】
したがって、写真を検索するための簡単な、直感的でユーザフレンドリな方法が必要とされている。本発明は、電子機器で実行される音声ベースの写真検索のシステム及び方法を提供する。
【０００６】
以下に説明する実施態様は、自然言語処理技術を用いる音声ベースの写真検索の方法及びシステムを提供する。自然言語処理技術は、ユーザがハンドヘルド機器、デジタルアシスタントシステムと口頭又はテキスト形式で対話することを可能にするためにデプロイされ、それによって、デジタルアシスタントシステムは、ユーザの入力を解釈してユーザの意図を推定することができ、推定した意図をアクション可能なタスクとパラメータに翻訳し、タスクを実行するために動作を実行するか、又は、サービスをデプロイし、ユーザに分かりやすい出力を生成する。
【０００７】
音声ベースの写真検索によって、写真検索のスピードと利便性は劇的に向上する。例えば、音声認識技術を知的な自然言語処理と組み合わせることにより、開示された実施態様によって、ユーザは、「私の休暇の写真を見せてほしい」などの、検索したい写真の説明を単に話すだけで、写真が自動的に識別されて、閲覧、編集などのためにユーザに返される。開示された技術は、写真が、ユーザの生成した、「休暇」又は「浜辺」などのテキストタグに以前関連付けられていない場合であっても、関連する写真を発見し検索するために、この音声ベースの入力を処理することができる。むしろ、デジタル写真がキャプチャされ又は記憶された時に写真とともに記憶されたメタデータが、検索を容易にするために、ユーザの他の情報と相互参照される。例えば、ユーザの休暇が特定の１組の日々にわたることを示すカレンダーの項目は、これらの日に撮影したり、保存した写真を見つける検索クエリを作成したりするために、使用することができる。別の例として、ジオコードを場所と対応付けたテーブルは、検索クエリで特定される場所に対応するジオコードの範囲を決定するために参考にすることができる。次に、特定された場所に対応するジオコードを有する写真を見つけるために、ユーザの写真を検索することができる。
【０００８】
したがって、本明細書に開示された実施態様は、音声ベースの自然言語写真検索を可能にする方法、システム、及びコンピュータ可読記憶媒体を提供する。
【０００９】
いくつかの実施態様では、音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法を提供する。この方法は、プロセッサ及びプロセッサが実行するための命令を記憶するメモリを備えた電子機器で実行される。この方法は、複数のメディアアイテムを提供するステップを含む。メディアアイテムは、写真、ビデオ、及び／又はオーディオを含んでもよい。メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグの少なくとも１つを含むそれぞれのタグにそれぞれ関連付けられている。いくつかの実施態様では、タグは、メディアアイテムとともに、メタデータとして記憶されている。
【００１０】
この方法は検索クエリが１つ以上のクエリタームを含む場合に、１つ以上のメディアアイテムのための検索クエリに対応する自然言語テキスト文字列を提供するステップを更に含む。いくつかの実施態様では、テキスト文字列は、ユーザからの音声入力に対応している。いくつかの実施態様では、音声入力は、音声テキスト化処理を使用してテキストに変換される。
【００１１】
この方法は、１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップを更に含む。いくつかの実施態様では、その情報源は、カレンダー、電子メール／テキストメッセージ、ソーシャルネットワークへの投稿、連絡帳、及び／又は同様のものである。その少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータの少なくとも１つを含む。その少なくとも一つのパラメータは、例えば、メディアアイテムのメタデータの一部ではないように、複数のメディアアイテムに関連付けられたタグとは別個のものである。
【００１２】
この方法は、それぞれのタグを、識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するための少なくとも一つのパラメータと比較し、かつユーザへの少なくとも１つのメディアアイテムの提示を促進するステップを更に含む。いくつかの実施態様では、提示を促進するステップは、ユーザに少なくとも１つのメディアアイテムを表示するステップを含む。
【００１３】
いくつかの実施形態では、電子機器は、１つ以上のプロセッサ、メモリを含み、及びメモリに記憶され、１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムは上述の方法のいずれかの動作を実行するための命令を含む。いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は内部に命令を記憶しており、この命令は、電子機器によって実行される場合、上述のいずれかの方法の動作を機器に実行させる。
【００１４】
いくつかの実施形態によれば、電子機器は、複数のメディアアイテムを提供するメディアアイテム提供ユニットを含み、メディアアイテムの少なくともいくつかは時間タグ、日付タグ、又はジオコードタグの少なくとも１つを含むそれぞれのタグにそれぞれ関連付けされている。電子機器はまた、１つ以上のクエリタームを含む、１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するように構成された自然言語テキスト文字列提供ユニットを含む。電子機器は、また、メディアアイテム提供ユニット及び自然言語テキスト文字列提供ユニットに結合された処理ユニットを含み、この処理ユニットは、以下を実行するように構成されている。それは、１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために、少なくとも１つの情報源を検索するステップであって、その少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、複数のメディアアイテムに関連付けられたタグとは別個のものである、検索するステップ、識別したパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、それぞれのタグを少なくとも１つのパラメータと比較するステップ、及び少なくとも１つのメディアアイテムのユーザへの提示を促進するステップである。
【図面の簡単な説明】
【００１５】
【図１】いくつかの実施態様に係るデジタルアシスタントが動作する環境を示すブロック図である。
【図２】いくつかの実施態様に係るデジタルアシスタントクライアントシステムを示すブロック図である。
【図３Ａ】いくつかの実施態様に係るスタンドアロンのデジタルアシスタントシステム又はデジタルアシスタントサーバシステムを示すブロック図である。
【図３Ｂ】いくつかの実施態様に係る、図３Ａに示すデジタルアシスタントの機能を示すブロック図である。
【図３Ｃ】いくつかの実施態様に係るオントロジーの一部を示すネットワーク図である。
【図４Ａ】いくつかの実施態様に係る、音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法を示すフローチャートである。
【図４Ｂ】いくつかの実施態様に係る、音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法を示すフローチャートである。
【図４Ｃ】いくつかの実施態様に係る、音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法を示すフローチャートである。
【図５】いくつかの実施形態に係る電子機器の機能ブロック図を示す。  類似の参照番号は、図面全体を通して対応する部分を指す。
【発明を実施するための形態】
【００１６】
図１は、いくつかの実施態様に係るデジタルアシスタントの動作環境１００のブロック図である。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推定し（例えば、自然言語入力に対応するタスクの種類を特定し）、推定されたユーザ意図に基づきアクションを実行する（例えば、特定されたタスクの種類に対応するタスクを実行する）任意の情報処理システムを指す。例えば、推定されたユーザ意図に基づいてアクションするために、システムは、以下のうちの１つ以上を実行することができる。それは、推定されたユーザ意図を果たすように設計されたステップ及びパラメータを有するタスクフローを特定すること（例えば、タスクの種類を特定すること）、推定されたユーザ意図からの具体的な要求をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩ、又は同様のものを呼び出すことによってタスクフローを実行すること（例えば、サービスプロバイダに要求を送信すること）、並びに可聴（例えば、会話）及び／又は視覚形式のユーザへの出力応答を生成することである。
【００１７】
具体的には、デジタルアシスタントシステムは、自然言語命令、要求、陳述、叙述、及び／又は照会の形で少なくとも部分的にユーザ要求を受け入れることができる。全般的に、ユーザの要求は、デジタルアシスタントシステムによる、情報を提供する答え又はタスクの実行のどちらかを求めている。ユーザの要求を満足する応答は、全般的に、要求された情報の回答を提供すること、要求されたタスクを実行すること、又はその２つの組み合わせのいずれかである。例えば、ユーザは、「只今私はどこにいるの？」などの質問をデジタルアシスタントシステムにし得る。ユーザの現在の場所に基づいて、デジタルアシスタントは、「あなたはセントラルパークの西口近くにいます。」と答えることができる。ユーザはまた、例えば、「来週私のガールフレンドの誕生パーティーに私の友人を招待してほしい。」と述べることにより、タスクの実行を要求することができる。これに応答して、デジタルアシスタントは、「はい、すぐに。」との音声出力を生成することにより、要求を確認し、その後、ユーザの電子アドレス帳又は連絡先リストに記載されたユーザの友人のそれぞれに、ユーザのｅメールアドレスから、適切なカレンダー招待状を送信してもよい。情報又は種々のタスクの実行を要求するために、デジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントは、他の視覚又はオーディオ形式の応答を（例えば、テキスト、警報、音楽、ビデオ、アニメーション等として）提供することもできる。
【００１８】
図１に示されているように、いくつかの実施態様では、デジタルアシスタントシステムはクライアント−サーバモデルに従って実装される。デジタルアシスタントシステムは、ユーザ機器（例えば、１０４ａ及び１０４ｂ）上で実行されるクライアント側部分（例えば、１０２ａ及び１０２ｂ）（以後、「デジタルアシスタント（ＤＡ）クライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後「デジタルアシスタント（ＤＡ）サーバ１０６」）を含む。ＤＡクライアント１０２は１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理及びＤＡサーバ１０６との通信などのクライアント側の機能を提供する。ＤＡサーバ１０６は、それぞれのユーザ機器１０４（クライアント機器とも呼ばれる）上に各々常駐する任意の数のＤＡクライアント１０２のためにサーバ側機能を提供する。
【００１９】
いくつかの実施態様では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインターフェース１１２、一つ以上の処理モジュール１１４、データ及びモデル１１６、外部サービスＩ／Ｏインターフェース１１８、写真及びタグデータベース１３０、並びに写真タグモジュール１３２を含む。クライアント対応Ｉ／Ｏインターフェースはデジタルアシスタントサーバ１０６のためのクライアント対応入力及び出力処理を促進する。１つ以上の処理モジュール１１４は、データ及びモデル１１６を利用し、自然言語入力に基づきユーザの意図を判断し、推定されたユーザ意図に基づきタスクを実行する。写真及びタグデータベース１３０は、デジタル写真のフィンガープリント、及び、任意にデジタル写真自体、並びに、メタデータ及びデジタル写真に関連付けられたユーザにより及び／又は自動的に生成されたタグを記憶する。写真タグモジュール１３２は、写真及び／又はフィンガープリントに関連してタグを作成し、記憶し、自動的に写真にタグ付けし、写真内の場所にタグをリンクする。
【００２０】
いくつかの実施態様では、ＤＡサーバ１０６は、タスク完了又は情報取得のために、ネットワーク（単数又は複数）１１０を通じて外部サービス１２０（例えば、ナビゲーションサービス（単数又は複数）１２２−１、メッセージングサービス（単数又は複数）１２２−２、情報サービス（単数又は複数）１２２−３、カレンダーサービス１２２−４、電話サービス１２２−５、写真サービス（単数又は複数）１２２−６、ソーシャルネットワーキングサービス（単数又は複数）１２２−７等）と通信する。外部サービスＩ／Ｏインターフェース１１８はこのような通信を促進する。
【００２１】
ユーザ機器１０４の例としては、限定するものではないが、ハンドヘルドコンピュータ、無線携帯情報端末（Personal Digital Assistant、ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セルラー電話、スマートホン、拡張型汎用パケット無線サービス（Enhanced General Packet Radio Service、ＥＧＰＲＳ）携帯電話、メディアプレーヤ、ナビゲーション機器、ゲームコンソール、テレビ、遠隔制御装置、又はこれらのデータ処理機器のうちの任意の２つ以上の組み合わせ、あるいは任意の他の好適なデータ処理機器が挙げられる。ユーザ機器１０４に関する更なる詳細が、図２に示される例示的なユーザ機器１０４に関して提供される。
【００２２】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（Local Area Network、「ＬＡＮ」）及び、例えば、インターネットのようなワイドエリアネットワーク（Wide Area Network、「ＷＡＮ」）が挙げられる。通信ネットワーク（単数又は複数）１１０は、イーサネット（登録商標）、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）、ファイヤワイヤ（登録商標）、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、符号分割多元接続（Code Division Multiple Access、ＣＤＭＡ）、時分割多元接続（Time Division Multiple Access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ボイスオーバーインターネットプロトコル（Voice Over Internet Protocol、ＶｏＩＰ）、Ｗｉ−ＭＡＸ（登録商標）、又は任意の他の好適な通信プロトコル等の、種々の有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実施することができる。
【００２３】
サーバシステム１０８は、少なくとも１つのデータ処理装置、及び／又はコンピュータの分散型ネットワーク上に実装することができる。いくつかの実施態様では、サーバシステム１０８は、また、様々な仮想機器及び／又はサードパーティーサービスプロバイダ（例えば、サードパーティークラウドサービスプロバイダ）のサービスを利用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供する。
【００２４】
図１に示されるデジタルアシスタントシステムは、クライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むが、いくつかの実施態様では、デジタルアシスタントシステムはサーバ側部分（例えば、ＤＡサーバ１０６）のみを指す。いくつかの実施態様では、デジタルアシスタントの機能は、ユーザ機器上にインストールされるスタンドアロンのアプリケーションとして実装することができる。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は実施態様によって異なり得る。例えば、いくつかの実施態様では、ＤＡクライアント１０２は、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントのすべての他の機能をＤＡサーバ１０６に委ねるシンクライアントである。例えば、いくつかの実施態様では、ＤＡクライアント１０２は、ＤＡサーバ１０６の１つ以上の機能を実行するか又は支援するように構成されている。
【００２５】
図２は、いくつかの実施態様に係るユーザ機器１０４のブロック図である。ユーザ機器１０４は、メモリインターフェース２０２、１つ以上のプロセッサ２０４、及び周辺機器インターフェース２０６を含む。ユーザ機器１０４内の種々の構成要素は１つ以上の通信バス又は信号線によって結合されている。ユーザ機器１０４は、周辺機器インターフェース２０６に結合される種々のセンサ、サブシステム、及び周辺機器を含む。センサ、サブシステム、及び周辺機器は情報を収集し、及び／又はユーザ機器１０４の種々の機能を助長する。
【００２６】
例えば、いくつかの実施態様では、動きセンサ２１０（例えば、加速度計）、光センサ２１２、ＧＰＳ受信機２１３、温度センサ２１５、及びコンパス２１７、近接センサ２１４が、方向、光、及び近接センシングの機能を助長するために、周辺機器インターフェース２０６に結合されている。いくつかの実施態様では、生体センサ、気圧計等のような他のセンサ２１６が、関連する機能を助長するために、周辺機器インターフェース２０６に接続されている。
【００２７】
いくつかの実施態様では、ユーザ機器１０４は、周辺機器インターフェース２０６に結合されたカメラサブシステム２２０を含む。いくつかの実施態様では、カメラサブシステム２２０の光学センサ２２２が、写真の撮影及びビデオクリップの録画等のカメラ機能を助長する。いくつかの実施態様では、写真及びビデオクリップは、カメラサブシステム２２０によって撮影された時に、メタデータと関連付けられる。メタデータは、例えば、日付タグ、時間タグ、及び場所タグ（例えば、ジオコードタグ）を含む。これらのタグは、それぞれ、写真又はビデオの日付、時間、及び場所を識別する。以下に説明するように、これらのタグは、ユーザ機器１０４（及び／又は全体としてのデジタルアシスタントシステム）による検索及び分類の機能のために使用することができる。
【００２８】
いくつかの実施態様では、ユーザ機器１０４は、通信機能を提供する１つ以上の有線及び／又は無線通信サブシステム２２４を含む。通信サブシステム２２４は通常、種々の通信ポート、無線周波数受信機及び送信機、並びに／又は光（例えば、赤外線）受信機及び送信機を含む。いくつかの実施態様では、ユーザ機器１０４は、音声認識、音声応答、デジタル録音、及び電話機能等の、音声使用可能機能を助長するために、１つ以上のスピーカ２２８及び１つ以上のマイクロフォン２３０に接続されたオーディオサブシステム２２６を含む。
【００２９】
いくつかの実施態様では、Ｉ／Ｏサブシステム２４０も周辺機器インターフェース２０６に結合される。いくつかの実施態様では、ユーザ機器１０４はタッチスクリーン２４６を含み、Ｉ／Ｏサブシステム２４０は、タッチスクリーン２４６に結合されたタッチスクリーンコントローラ２４２を含む。ユーザ機器１０４がタッチスクリーン２４６及びタッチスクリーンコントローラ２４２を含む場合には、タッチスクリーン２４６及びタッチスクリーンコントローラ２４２は、通常、例えば、容量性、抵抗性、赤外線、表面超音波技術、近接センサアレイ、及び同様のもの等の複数のタッチ感知技術の任意のものを用いて、接触及び移動又はその中断を検出するように構成される。いくつかの実施態様では、ユーザ機器１０４は、タッチ感知面を含まないディスプレイを含む。いくつかの実施態様では、ユーザ機器１０４は、分離したタッチ感知面を含む。いくつかの実施態様では、ユーザ機器１０４はその他の入力コントローラ（単数又は複数）２４４を含む。ユーザ機器１０４がその他の入力コントローラ（単数又は複数）２４４を含む場合には、その他の入力コントローラ（単数又は複数）２４４は通常、１つ以上のボタン、ロッカスイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラス等のポインタ機器等の、その他の入力／制御機器２４８に結合される。
【００３０】
メモリインターフェース２０２はメモリ２５０に結合される。いくつかの実施態様では、メモリ２５０は、高速ランダムアクセスメモリ及び／又は不揮発性メモリ（例えば、１つ以上の磁気ディスク記憶装置、１つ以上のフラッシュメモリ装置、１つ以上の光記憶装置、及び／又はその他の不揮発性固体メモリ装置）等の、非一時的コンピュータ可読媒体を含む。
【００３１】
いくつかの実施態様では、メモリ２５０は、オペレーティングシステム２５２、通信モジュール２５４、グラフィカルユーザインターフェースモジュール２５６、センサ処理モジュール２５８、電話モジュール２６０、及びアプリケーション２６２、並びにそれらのサブセット若しくはスーパーセットを記憶する。オペレーティングシステム２５２は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。通信モジュール２５４は、１つ以上の追加機器、１つ以上のコンピュータ及び／又は１つ以上のサーバとの通信を助長する。グラフィカルユーザインターフェースモジュール２５６はグラフィックユーザインターフェース処理を促進する。センサ処理モジュール２５８はセンサ関連の処理及び機能（例えば、１つ以上のマイクロフォン２２８を用いて受領した音声入力の処理）を助長する。電話モジュール２６０は電話関連のプロセス及び機能を助長する。アプリケーションモジュール２６２は、電子メッセージング、ウェブブラウジング、メディア処理、ナビゲーション、イメージング及び／又はその他のプロセス及び機能等のユーザアプリケーションの種々の機能を助長する。いくつかの実施態様では、ユーザ機器１０４は、それぞれ外部サービスプロバイダの少なくとも１つに関連した１つ以上のソフトウェアアプリケーション２７０−１及び２７０−２をメモリ２５０内に記憶する。
【００３２】
上述したように、いくつかの実施態様では、メモリ２５０はまた、デジタルアシスタントのクライアント側機能を提供するために、クライアント側のデジタルアシスタント命令（例えば、デジタルアシスタントクライアントモジュール２６４内の）、及び種々のユーザデータ２６６（例えば、ユーザ固有の語彙データ、嗜好データ、及び／又はユーザの電子アドレス帳若しくは連絡先リスト、ｔｏ−ｄｏリスト、買い物リストなどのその他のデータ）も記憶する。
【００３３】
いくつかの実施態様では、デジタルアシスタントクライアントモジュール２６４は、ユーザ機器１０４の種々のユーザインターフェース（例えば、Ｉ／Ｏサブシステム２４０）を通じて音声入力、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受け入れることができる。デジタルアシスタントクライアントモジュール２６４はまた、オーディオ、視覚、及び／又は触覚形態の出力を提供することもできる。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記のもののうちの２つ以上の組み合わせとして提供することができる。動作時、デジタルアシスタントクライアントモジュール２６４は、通信サブシステム２２４を用いて、デジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）と通信する。
【００３４】
いくつかの実施態様では、デジタルアシスタントクライアントモジュール２６４は、ユーザ入力に関連付けられるコンテクストを確立するために、種々のセンサ、サブシステム及び周辺機器を利用してユーザ機器１０４の周囲環境から追加情報を収集する。いくつかの実施態様では、デジタルアシスタントクライアントモジュール２６４は、ユーザの意図の推定を助けるために、ユーザ入力とともにコンテクスト情報又はそのサブセットをデジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）に提供する。
【００３５】
いくつかの実施態様では、ユーザ入力に伴い得るコンテクスト情報は、センサ情報、例えば、周囲環境の照明、周囲雑音、周囲温度、画像又は映像などを含む。いくつかの実施態様では、コンテクスト情報は、また、機器の物理状態、例えば、機器の方向、機器の場所、機器温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度などを含む。いくつかの実施態様では、ユーザ機器１０４のソフトウェア状態に関係する情報、例えば、ユーザ機器１０４の稼動中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量なども、ユーザ入力に関連したコンテクスト情報として、デジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）に提供される。
【００３６】
いくつかの実施態様では、ＤＡクライアントモジュール２６４は、デジタルアシスタントサーバからの要求に応じて、ユーザ機器１０４上に記憶されている情報（例えば、ユーザデータ２６６の少なくとも一部）を選択的に提供する。いくつかの実施態様では、デジタルアシスタントクライアントモジュール２６４はまた、デジタルアシスタントサーバ１０６（図１）による要求に応じて、自然言語ダイアログ又はその他のユーザインターフェースを介して、ユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール２６４は、ユーザ要求に表されるユーザ意図の推定及び／又はユーザ意図の達成に向けて、デジタルアシスタントサーバ１０６を支援するために、追加入力をデジタルアシスタントサーバ１０６に渡す。
【００３７】
いくつかの実施態様では、メモリ２５０は追加の命令又はより少数の命令を含んでもよい。更に、ユーザ機器１０４の種々の機能は、１つ以上の信号処理及び／又は特定用途向け集積回路の形態を含む、ハードウェアの形態及び／又はファームウェアの形態で実装されてもよく、それゆえ、ユーザ機器１０４は、図２に示されているすべてのモジュール及びアプリケーションを含む必要はない。
【００３８】
図３Ａは、いくつかの実施態様に係る例示的なデジタルアシスタントシステム３００（デジタルアシスタントとも呼ばれる）のブロック図である。いくつかの実施態様では、デジタルアシスタントシステム３００はスタンドアロンのコンピュータシステム上に実装される。いくつかの実施態様では、デジタルアシスタントシステム３００は複数のコンピュータにわたって分散される。いくつかの実施態様では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割される。クライアント部分はユーザ機器（例えば、ユーザ機器１０４）上に常駐し、例えば、図１に示されているように、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施態様では、デジタルアシスタントシステム３００は、図１に示されるサーバシステム１０８（及び／又はデジタルアシスタントサーバ１０６）の一実施形態である。いくつかの実施態様では、デジタルアシスタントシステム３００はユーザ機器（例えば、ユーザ機器１０４、図１）内に実装され、それにより、クライアント−サーバシステムの必要性を取り除いている。デジタルアシスタントシステム３００はデジタルアシスタントシステムの単なる一例にすぎず、デジタルアシスタントシステム３００は、図示されているよりも多数又は少数の構成要素を有してもよく、２つ以上の構成要素を組み合わせてもよく、又は構成要素の異なる構成又は配置を有してもよいことに留意されたい。図３Ａに示される種々の構成要素は、１つ以上の信号処理及び／若しくは特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせの形態で実装されてもよい。
【００３９】
デジタルアシスタントシステム３００は、メモリ３０２、１つ以上のプロセッサ３０４、入力／出力（Ｉ／Ｏ）インターフェース３０６、及びネットワーク通信インターフェース３０８を含む。これらの構成要素は１本以上の通信バス又は信号線３１０を通じて互いに通信する。
【００４０】
いくつかの実施態様では、メモリ３０２は、高速ランダムアクセスメモリ及び／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶装置、１つ以上のフラッシュメモリ装置、１つ以上の光記憶装置、及び／又はその他の不揮発性固体メモリ装置）等の、非一時的コンピュータ可読媒体を含む。
【００４１】
Ｉ／Ｏインターフェース３０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等の、デジタルアシスタントシステム３００の入出力機器３１６をユーザインターフェースモジュール３２２に結合する。Ｉ／Ｏインターフェース３０６は、ユーザインターフェースモジュール３２２と協働して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力等）を受取り、それらを適宜処理する。いくつかの実施態様では、デジタルアシスタントがスタンドアロンのユーザ機器上に実装される場合には、デジタルアシスタントシステム３００は、図２におけるユーザ機器１０４に関して説明された構成要素並びにＩ／Ｏ及び通信インターフェースの任意のもの（例えば、１つ以上のマイクロフォン２３０）を含む。いくつかの実施態様では、デジタルアシスタントシステム３００はデジタルアシスタント実装のサーバ部分を表し、ユーザ機器（例えば、図２に示されるユーザ機器１０４）上に常駐するクライアント側部分を通じてユーザと対話する。
【００４２】
いくつかの実施態様では、ネットワーク通信インターフェース３０８は、有線通信ポート（単数又は複数）３１２及び／又は無線送受信回路３１４を含む。有線通信ポート（単数又は複数）は、１つ以上の有線インターフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）などを介して通信信号を受信及び送信する。無線回路３１４は、通常、通信ネットワーク及び他の通信機器を起点／終点として、ＲＦ信号及び／又は光信号を受信及び送信する。無線通信は、ＧＳＭ（登録商標）、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＶｏＩＰ、Ｗｉ−ＭＡＸ（登録商標）、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術の任意のものを用いることができる。ネットワーク通信インターフェース３０８は、デジタルアシスタントシステム３００と、インターネット、イントラネット、等のネットワーク、及び／又はセルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）、等の無線ネットワーク、及び／又はメトロポリタンエリアネットワーク（Metropolitan Area Network、ＭＡＮ）、及び他の機器、との間の通信を可能にする。
【００４３】
いくつかの実施態様では、メモリ３０２の非一時的コンピュータ可読記憶媒体は、オペレーティングシステム３１８、通信モジュール３２０、ユーザインターフェースモジュール３２２、１つ以上のアプリケーション３２４、及びデジタルアシスタントモジュール３２６のすべて又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶する。１つ以上のプロセッサ３０４はこれらのプログラム、モジュール、命令を実行し、データ構造から／へと読み出し／書き込みを実行する。
【００４４】
オペレーティングシステム３１８（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ｉＯＳ（登録商標）、ウィンドウズ（登録商標）、又はＶｘＷｏｒｋｓ等の組み込みオペレーティングシステム）は、一般システムタスク（例えば、メモリ管理、記憶装置制御、電力管理等）を制御及び管理するための種々のソフトウェア構成要素及び／又はドライバを含み、種々のハードウェア、ファームウェア、及びソフトウェア構成要素の間の通信を促進する。
【００４５】
通信モジュール３２０は、ネットワーク通信インターフェース３０８を通じたデジタルアシスタントシステム３００とその他の機器との間の通信を促進する。例えば、通信モジュール３２０は、図２に示される機器１０４の通信モジュール２５４と通信することができる。通信モジュール３２０はまた、無線回路３１４及び／又は有線通信ポート３１２によって受信されたデータを処理するための種々のソフトウェア構成要素も含む。
【００４６】
いくつかの実施態様では、ユーザインターフェースモジュール３２２はＩ／Ｏインターフェース３０６を介して（例えば、キーボード、タッチスクリーン、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受取り、ディスプレイ上にユーザインターフェースオブジェクトを提供する。
【００４７】
アプリケーション３２４は、１つ以上のプロセッサ３０４によって実行されるように構成されたプログラム及び／又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロンのユーザ機器上に実装される場合には、アプリケーション３２４は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含んでもよい。デジタルアシスタントシステム３００がサーバファーム上に実装される場合には、アプリケーション３２４は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含んでもよい。
【００４８】
メモリ３０２はまた、デジタルアシスタントモジュール（即ちデジタルアシスタントのサーバ部分）３２６も記憶する。いくつかの実施態様では、デジタルアシスタントモジュール３２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む。即ち、入出力処理モジュール３２８、音声テキスト化（ＳＴＴ）処理モジュール３３０、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、タスクフロー処理モジュール３３６、サービス処理モジュール３３８、及び写真モジュール１３２、である。これらの処理モジュールの各々は、デジタルアシスタント３２６の１つ以上の以下のデータとモデル、又はそのサブセット又はスーパーセットにアクセスすることができる。即ち、オントロジー３６０、語彙索引３４４、ユーザデータ３４８、分類モジュール３４９、曖昧性除去モジュール３５０、タスクフローモデル３５４、サービスモデル３５６、検索モジュール３６０、及びローカルタグ／写真ストレージ３６２である。
【００４９】
いくつかの実施態様では、デジタルアシスタントモジュール３２６内に実装された処理モジュール（例えば、入出力処理モジュール３２８、ＳＴＴ処理モジュール３３０、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、タスクフロー処理モジュール３３６、及び／若しくはサービス処理モジュール３３８）、データ及びモデルを用いて、デジタルアシスタントシステム３００は以下の少なくともいくつかを実行する。即ち、ユーザから受取った自然言語入力内に表現されているユーザの意図を識別すること、ユーザの意図を完全に推定する（例えば、単語、名前、意図等の曖昧さを除去することによって）ために必要な情報を能動的に引き出して獲得すること、推定された意図を実現するためのタスクフローを決定すること、及び推定した意図を実現するためにタスクフローを実行すること、である。いくつかの実施態様では、デジタルアシスタントはまた、種々の理由で満足のいく応答がユーザに提供されなかったか、又は提供できなかった場合に、適切なアクションを取る。
【００５０】
いくつかの実施態様では、後述するように、デジタルアシスタントシステム３００は、自然言語入力から、写真を検索するユーザの意図を識別する。デジタルアシスタントシステム３００は、何の写真がユーザの検索クエリに関連する可能性があるかを決定するために、自然言語入力を処理する。いくつかの実施態様では、デジタルアシスタントシステム３００は、２０１３年３月１３日に出願され「Ｖｏｉｃｅ−Ｂａｓｅｄ  Ｉｍａｇｅ  Ｔａｇｇｉｎｇ  ａｎｄ  Ｓｅａｒｃｈｉｎｇ」と題された米国特許出願第１３／８０１５３４号に記載されたデジタル写真のタグ付けなどの、写真に関連する他のタスクも同様に実行する。上記出願は、その全体が参照により本明細書に組み込まれる。
【００５１】
図３Ｂに示すように、いくつかの実施態様では、Ｉ／Ｏ処理モジュール３２８は、ユーザ入力（例えば、音声入力）を獲得するため、及びユーザ入力への応答を提供するために、図３ＡのＩ／Ｏ機器３１６を通じてユーザと対話するか、又は、図３Ａのネットワーク通信インターフェース３０８を通じてユーザ機器（例えば、図１におけるユーザ機器１０４）と対話する。Ｉ／Ｏ処理モジュール３２８は、ユーザ入力とともに、又はその受領直後に、ユーザ入力に関連付けられたコンテクスト情報をユーザ機器から任意に獲得する。コンテクスト情報は、ユーザ入力に関連するユーザ固有のデータ、語彙、及び／又は嗜好を含む。いくつかの実施態様では、コンテクスト情報はまた、ユーザ要求を受領する時点における機器（例えば、図１におけるユーザ機器１０４）のソフトウェア及びハードウェア状態、及び／又はユーザ要求を受領した時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施態様では、Ｉ／Ｏ処理モジュール３２８はまた、ユーザ要求について、ユーザに追加質問を送り、ユーザから回答を受取る。いくつかの実施態様では、ユーザ要求がＩ／Ｏ処理モジュール３２８によって受取られ、ユーザ要求が音声入力を包含する場合には、Ｉ／Ｏ処理モジュール３２８は、音声テキスト化変換のために、音声入力を音声テキスト化（ＳＴＴ）処理モジュール３３０へ転送する。
【００５２】
いくつかの実施態様では、音声テキスト化処理モジュール３３０は、Ｉ／Ｏ処理モジュール３２８を通じて音声入力（例えば、音声記録にキャプチャされたユーザの発言）を受取る。いくつかの実施態様では、音声テキスト化処理モジュール３３０は、音声入力を、音素の列、最終的には、１つ以上の言語で書かれた単語又はトークンの列として認識するために、種々の音響及び言語モデルを用いる。音声テキスト化処理モジュール３３０は、隠れマルコフモデル、動的タイムワーピング（ＤＴＷ）ベースの音声認識、並びにその他の統計的及び／又は解析的技法等の、任意の好適な音声認識技法、音響モデル、及び言語モデルを用いて実装される。いくつかの実施態様では、音声テキスト化処理は、サードパーティーサービスによって、又はユーザの機器上で少なくとも部分的に実行され得る。音声テキスト化処理モジュール３３０が音声テキスト化処理の結果（例えば、単語又はトークンの列）を獲得すると、意図推定のために、その結果を自然言語処理モジュール３３２へ渡す。
【００５３】
デジタルアシスタント３２６の自然言語処理モジュール３３２（「自然言語プロセッサ」）は、音声テキスト化処理モジュール３３０によって生成された単語又はトークンの列（「トークン列」）を獲得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「アクション可能な意図」に関連付けようと試みる。本明細書で使用する場合、「アクション可能な意図」は、デジタルアシスタント３２６及び／又はデジタルアシスタントシステム３００（図３Ａ）によって実行することができ、タスクフローモデル３５４内に実装される、関連付けられたタスクフローを有するタスクを表す。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントシステム３００が取る一連のプログラムされたアクション及びステップである。デジタルアシスタントシステムの能力の範囲は、タスクフローモデル３５４内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントシステム３００が認識する「アクション可能な意図」の数及び種類に依存する。しかし、デジタルアシスタントシステム３００の有効性はまた、自然言語で表現されたユーザ要求から正確な「アクション可能な意図（単数又は複数）」を推定するデジタルアシスタントシステムの能力にも依存する。
【００５４】
いくつかの実施態様では、音声テキスト化処理モジュール３３０から獲得される単語又はトークンの列に加えて、自然言語プロセッサ３３２はまた、ユーザ要求に関連付けられたコンテクスト情報も受取る（例えば、Ｉ／Ｏ処理モジュール３２８から）。自然言語プロセッサ３３２は、音声テキスト化処理モジュール３３０から受取ったトークン列内に包含されている情報を明らかにし、補完し、及び／又は更に明確にするために、コンテクスト情報を任意に用いる。コンテクスト情報は、例えば、ユーザの嗜好、ユーザ機器のハードウェア及び／又はソフトウェアの状態、ユーザ要求の前、最中、又は直後に集められたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）、及び同様のものを含む。
【００５５】
いくつかの実施態様では、自然言語処理はオントロジー３６０に基づく。オントロジー３６０は、複数のノードを含む階層構造であり、各ノードは、「アクション可能な意図」又は１つ以上の「アクション可能な意図」に関連する「属性」又は他の「属性」のいずれかを表している。上述したように、「アクション可能な意図」は、デジタルアシスタントシステム３００が実行可能なタスク（例えば、「アクション可能」であるか、又はアクションを及ぼされ得るタスク）を表す。「属性」は、アクション可能な意図又は別の属性の下位態様に関連付けられるパラメータを表す。オントロジー３６０内の実施可能な意図ノードと属性ノードとの間のつながりは、属性ノードによって表されるパラメータが、アクション可能な意図ノードによって表されるタスクとどのように関係するのかを定義する。
【００５６】
いくつかの実施態様では、オントロジー３６０は、アクション可能な意図ノード及び属性ノードで構成される。オントロジー３６０内において、それぞれのアクション可能な意図ノードは１つ以上の属性ノードに直接又は１つ以上の中間属性ノードを介して接続される。同様に、それぞれの属性ノードは、１つ以上のアクション可能な意図ノードに直接又は１つ以上の中間属性ノードを介して接続される。例えば、図３Ｃに示すオントロジー３６０は、実施可能な意図ノードである「レストラン予約」ノードを含む。属性ノードである「レストラン」、「日付／時間」（予約用）及び「関係者人数」が、「レストラン予約」ノード（即ち、アクション可能な意図ノード）にそれぞれ直接に接続される。更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「場所」は、属性ノード「レストラン」のサブノードであり、中間属性ノード「レストラン」を介して「レストラン予約」ノードにそれぞれ接続される。別の例について、図３Ｃに示すオントロジー３６０は、別のアクション可能な意図ノードである「リマインダー設定」ノードも含む。属性ノード「日付／時間」（リマインダー設定用）及び「テーマ」（リマインダー用）は、「リマインダー設定」ノードにそれぞれ接続される。属性ノード「日付／時間」はレストラン予約をするタスク及びリマインダーを設定するタスクの両方に関連していることから、属性ノード「日付／時間」はオントロジー３６０において「レストラン予約」ノード及び「リマインダー設定」ノードの両方に接続される。
【００５７】
アクション可能な意図ノードは、その接続された概念ノードとともに、「ドメイン」として説明することができる。本説明では、各ドメインは、それぞれのアクション可能な意図に関連付けられ、特定のアクション可能な意図に関連付けられたノード群（及びそれらの間の関係）を指す。例えば、図３Ｃに示すオントロジー３６０には、レストラン予約ドメイン３６２の例及びオントロジー３６０内のリマインダードメイン３６４の例が含まれている。レストラン予約ドメインは、アクション可能な意図ノードである「レストラン予約」、属性ノードである「レストラン」、「日付／時間」、及び「関係者人数」、並びにサブ属性ノードである「料理」「価格帯」、「電話番号」及び「場所」を含む。リマインダードメイン３６４には、アクション可能な意図ノードである「リマインダー設定」、及び属性ノードである「テーマ」及び「日付／時間」が含まれている。いくつかの実施態様では、オントロジー３６０は、多数のドメインから構成されている。各ドメインは、１つ以上の他のドメインと、１つ以上の属性ノードを共有することができる。例えば、「日付／時間」の属性ノードは、レストラン予約ドメイン３６２及びリマインダードメイン３６４に加えて、多くの他のドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連付けることができる。
【００５８】
図３Ｃは、オントロジー３６０内に２つの例示的なドメインを示すが、オントロジー３６０は、「通話を開始する」、「道順を探す」、「会議を予定する」、「メッセージを送る」、及び「質問の答えを提供する」、「写真にタグを付ける」などの他のドメイン（即ち、アクション可能な意図）を含んでもよい。例えば、「メッセージを送信する」のドメインは、「メッセージを送信する」のアクション可能な意図ノードに関連付けられており、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含むことができる。属性ノードの「受信者」は更に、例えば、「受信者名」と「メッセージアドレス」などのサブ属性ノードによって、定義してもよい。
【００５９】
いくつかの実施態様では、オントロジー３６０は、デジタルアシスタントが理解し、作用を及ぼすことができるすべてのドメイン（したがってアクション可能な意図）を含む。いくつかの実施態様では、オントロジー３６０は、ドメイン若しくはノードを追加又は除去すること、又はオントロジー３６０内のノード間の関係を変更することなどによって、修正してもよい。
【００６０】
いくつかの実施態様では、複数の関連するアクション可能な意図に関連付けられるノードは、オントロジー３６０内の「上位ドメイン」の下にクラスタ化されてもよい。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及びアクション可能な意図ノードのクラスタを含んでもよい。旅行に関連するアクション可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」などを含んでもよい。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、多くの属性ノードを共有し得る。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」についてのアクション可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日／時間」、「到着日／時間」、及び「関係者人数」のうちの１つ以上を共有する可能性がある。
【００６１】
いくつかの実施態様では、オントロジー３６０内の各ノードは、そのノードによって表される属性又はアクション可能な意図に関連する単語及び／又はフレーズのセットに関連付けられる。各ノードに関連付けられる単語及び／又はフレーズのそれぞれのセットは、そのノードに関連付けられるいわゆる「語彙」である。各ノードに関連付けられる単語及び／又はフレーズのそれぞれのセットは、そのノードによって表される属性又はアクション可能な意図に関連して、語彙索引３４４（図３Ｂ）内に記憶することができる。例えば、図３Ｂに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」、「食事」などの単語を含んでもよい。別の例として、「通話を開始する（initiate a phone call）」というアクション可能な意図のノードに関連付けられる語彙は、「電話する（call）」、「電話（phone）」、「ダイアルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」などの単語及びフレーズを含んでもよい。語彙索引３４４は異なる言語の単語及びフレーズを任意に含む。
【００６２】
いくつかの実施態様では、図３Ｂに示す自然言語プロセッサ３３２は、音声テキスト化処理モジュール３３０からトークン列（例えば、テキスト文字列）を受取り、どのノードがトークン列内の単語によって暗示されているのかを判断する。いくつかの実施態様では、トークン列内の単語又はフレーズが（語彙索引３４４を介して）オントロジー３６０内の１つ以上のノードに関連付けられることが分かれば、その単語又はフレーズは、それらのノードを「トリガ」又は「アクティブにする」ことになる。複数のノードが「トリガされる」場合には、アクティブにされたノードの量及び／又は相対的重要度に基づき、自然言語プロセッサ３３２は、アクション可能な意図のうちの１つをユーザがデジタルアシスタントに実行させようと意図したタスク（又はタスクの種類）として選択することになる。いくつかの実施態様では、最も多く「トリガされた」ノードを有するドメインが選択される。いくつかの実施態様では、最も高い信頼値を有するドメイン（例えば、その種々のトリガされたノードの相対的重要度に基づく）が選択される。いくつかの実施態様では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択される。いくつかの実施態様では、ノードを選択する際には、デジタルアシスタントシステム３００がユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【００６３】
いくつかの実施態様では、デジタルアシスタントシステム３００はまた、特定のエンティティの名前も語彙索引３４４内に記憶する。そのため、これらの名前の１つがユーザ要求内に検出されると、自然言語プロセッサ３３２は、その名前はオントロジー内の属性又は下位属性の特定のインスタンスを指していると認識できることになる。いくつかの実施態様では、特定のエンティティの名前は、企業、レストラン、人、映画、及び同様のものの名前である。いくつかの実施態様では、デジタルアシスタントシステム３００は、ユーザのアドレス帳、連絡先リスト、映画データベース、ミュージシャンデータベース、及び／又はレストランデータベース等の、他のデータ源から特定のエンティティ名を検索し、これらを識別することができる。いくつかの実施態様では、自然言語プロセッサ３３２が、トークン列内のある単語が特定のエンティティの名前（ユーザのアドレス帳内又は連絡先リスト内の名前等）であると識別すると、その単語は、ユーザ要求に対するオントロジー内のアクション可能な意図を選択する際に追加的な重要性を与えられる。
【００６４】
例えば、ユーザ要求から単語「Ｍｒ．Ｓａｎｔｏ」が認識され、語彙索引３４４内にユーザの連絡先リスト内の連絡先の１つとして姓「Ｓａｎｔｏ」が見つかった場合、その時は、ユーザ要求は、「メッセージを送信する」又は「通話を開始する」ドメインに対応する可能性が高い。別の例としては、単語「ＡＢＣ  Ｃａｆｅ」がユーザ要求内に見つかり、語彙索引３４４内にユーザの市内の特定のレストランの名前としてターム「ＡＢＣ  Ｃａｆｅ」が見つかった場合、その時は、ユーザ要求は「レストラン予約」ドメインに対応する可能性が高い。
【００６５】
ユーザデータ３４８は、ユーザ固有の語彙、ユーザの嗜好、ユーザアドレス、ユーザの既定言語及び第２言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的又は長期的情報等の、ユーザ固有の情報を含む。自然言語プロセッサ３３２は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を用いることができる。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待してほしい」に対して、自然言語プロセッサ３３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されるのかを判断するために、ユーザの要求内のこうした情報を明示的に提供するようにユーザに要求する代わりに、ユーザデータ３４８にアクセスすることができる。
【００６６】
いくつかの実施態様では、自然言語プロセッサ３３２は、分類モジュール３４９を含む。いくつかの実施態様では、分類モジュール３４９は、テキスト文字列（例えば、デジタル写真に関連付けられた音声入力に対応する）内の１つ以上のタームのそれぞれが、以下でより詳細に説明するような、エンティティ、動作、又は場所のいずれかであるか否かを判定する。いくつかの実施態様では、分類モジュール３４９は、１つ以上のタームの各タームを、エンティティ、動作、又は場所のいずれかであるとして分類する。
【００６７】
自然言語プロセッサ３３２がユーザ要求に基づき、アクション可能な意図（又はドメイン）を識別すると、自然言語プロセッサ３３２は、識別されたアクション可能な意図を表すように、構造化されたクエリを生成する。いくつかの実施態様では、構造化されたクエリは、アクション可能な意図に関するドメイン内の１つ以上のノードのためのパラメータを含み、パラメータの少なくともいくつかにはユーザ要求内で指定された特定の情報及び要求事項が追加される。例えば、ユーザは、「私のために７時に寿司屋での夕食の予約をしてほしい」と言うとする。この場合、自然言語プロセッサ３３２は、ユーザ入力に基づいて、アクション可能な意図が「レストラン予約」であることを正しく識別することができる。オントロジーによれば、「レストラン予約」ドメインのための構造化されたクエリは、料理、時間、日付、関係者人数、及び同様のもの等のパラメータを含み得る。ユーザの発言に含まれる情報に基づいて、自然言語プロセッサ３３２は、レストラン予約ドメインについて部分的な構造化されたクエリを生成することができ、部分的な構造化されたクエリは、料理＝「寿司」と、時間＝「午後７時」とを含む。しかしながら、この実施例において、ユーザ発言に含まれる情報は、ドメインに関連した構造化されたクエリを完成するには不十分である。したがって、関係者人数及び日付等のその他の必要なパラメータは、現在利用可能な情報に基づく構造化されたクエリ内に指定されていない。いくつかの実施態様では、自然言語プロセッサ３３２は、構造化されたクエリのいくつかのパラメータに、受取ったコンテクスト情報を入力する。例えば、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語プロセッサ３３２は、構造化されたクエリ内の位置パラメータにユーザ機器１０４からのＧＰＳ座標を入力してもよい。
【００６８】
いくつかの実施態様では、自然言語プロセッサ３３２は、構造化されたクエリ（任意の完成したパラメータを含む）をタスクフロー処理モジュール３３６（「タスクフロープロセッサ」）に渡す。タスクフロープロセッサ３３６は、自然言語プロセッサ３３２から、構造化されたクエリを受取ること、構造化されたクエリを完成させること、及びユーザの最終的な要求を「完了する」ために必要とされるアクションを実行すること、のうちの１つ以上を実行するように構成される。いくつかの実施態様では、これらのタスクを完了させるために必要な種々の手順がタスクフローモデル３５４内で提供される。いくつかの実施態様では、タスクフローモデル３５４は、ユーザから追加情報を入手するための手順、及びアクション可能な意図に関連付けられるアクションを実行するためのタスクフローを含んでいる。
【００６９】
上述したように、構造化されたクエリを完成させるために、タスクフロープロセッサ３３６は、追加情報を入手し、及び／又は潜在的に曖昧な発言の曖昧さを除去するために、ユーザとの追加のダイアログを開始することが必要になる場合がある。このような対話が必要となる場合には、タスクフロープロセッサ３３６は、ユーザとの対話に携わるためにダイアログ処理モジュール３３４（ダイアログプロセッサ）を呼び出す。いくつかの実施態様では、ダイアログ処理モジュール３３４は、どのように（及び／又はいつ）ユーザに追加情報を求めるべきかを決定し、ユーザ応答を受取り、これらを処理する。いくつかの実施態様では、Ｉ／Ｏ処理モジュール３２８を通じてユーザに質問を提供し、ユーザから回答を受取る。例えば、ダイアログ処理モジュール３３４はオーディオ及び／又は視覚出力を介してユーザにダイアログ出力を提示し、口頭の又は物理的な（例えば、タッチジェスチャ）応答を介してユーザから入力を受取る。上述の例を続けると、タスクフロープロセッサ３３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「関係者人数」及び「日付」情報を決定するためにダイアログプロセッサ３３４を呼び出すと、ダイアログプロセッサ３３４は、「何人分ですか？」及び「どの日にしますか？」等の質問を、ユーザに渡すために生成する。ユーザから回答を受取ると、ダイアログ処理モジュール３３４は、構造化されたクエリに欠けている情報を追加するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロープロセッサ３３６に渡す。
【００７０】
場合によっては、タスクフロープロセッサ３３６は、１つ以上の曖昧な属性を有する構造化されたクエリを受取ることがある。例えば、「メッセージを送る」ドメインのための構造化されたクエリは、意図された受信者が「Ｂｏｂ」であることを示すことがあり、ユーザは、「Ｂｏｂ」という名の複数の連絡先を有する場合がある。タスクフロープロセッサ３３６は、ダイアログプロセッサ３３４が構造化されたクエリのこの属性を明確にするように、要求することになる。今度は、ダイアログプロセッサ３３４が、「どのＢｏｂですか？」とユーザに尋ね、ユーザが選び得る「Ｂｏｂ」という名前の連絡先のリストを表示しても（又は読み上げても）よい。
【００７１】
いくつかの実施態様では、対話プロセッサ３３４は、曖昧性除去モジュール３５０を含む。いくつかの実施態様では、曖昧性除去モジュール３５０は、１つ以上の曖昧なターム（例えば、デジタル写真に関連付けられた音声入力に対応するテキスト文字列の１つ以上の曖昧なターム）の曖昧性を除去する。いくつかの実施態様では、曖昧性除去モジュール３５０は、１つ以上のタームの第１のタームは、複数の候補となる意味を有しており、第１のタームについてユーザにプロンプトで追加情報を求め、ユーザからプロンプトに対応する追加情報を受領して、その追加情報に応じて、第１のタームに関連付けられるエンティティ、動作、場所を識別する。
【００７２】
いくつかの実施態様では、曖昧性除去モジュール３５０は、代名詞の曖昧性を除去する。このような実施態様では、曖昧性除去モジュール３５０は、１つ以上のタームの１つを代名詞として識別し、その代名詞が指す名詞を決定する。いくつかの実施態様では、曖昧性除去モジュール３５０は、電子機器のユーザに関連付けられた連絡先リストを使用して、代名詞が指す名詞を決定する。あるいは、又は更に、曖昧性除去モジュール３５０は、以前にタグ付けされたデジタル写真に関連付けられた従前の音声入力で識別されたエンティティ、動作、又は場所の名前として、その代名詞が指す名詞を決定する。あるいは、又は更に、曖昧性除去モジュール３５０は、以前にタグ付けされたデジタル写真に関連付けられた従前の音声入力に基づいて識別された人の名前として、その代名詞が指す名詞を決定する。
【００７３】
いくつかの実施態様では、曖昧性除去モジュール３５０は、１つ以上のタームの意味を決定するために、ハンドヘルド電子機器（例えば、ユーザ機器１０４）の１つ以上のセンサ（例えば、近接センサ２１４、光センサ２１２、ＧＰＳ受信機２１３、温度センサ２１５、動きセンサ２１０）から得られた情報にアクセスする。いくつかの実施態様では、曖昧性除去モジュール３５０は、エンティティ、動作、又は場所のいずれかにそれぞれ関連付けられた２つのタームを識別する。例えば、２つのタームのうち第１のタームは人を指し、２つのタームのうちの第２のタームは場所を指す。いくつかの実施態様では、曖昧性除去モジュール３５０は、エンティティ、動作、又は場所のいずれかにそれぞれ関連付けられた３つのタームを識別する。
【００７４】
タスクフロープロセッサ３３６が、アクション可能な意図のための構造化されたクエリを完成すると、タスクフロープロセッサ３３６は、アクション可能な意図に関連付けられる最終的なタスクの実行に進む。それに応じて、タスクフロープロセッサ３３６は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」のアクション可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の関係者人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、レストラン予約について、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、関係者人数＝５、等の構造化されたクエリを用いて、タスクフロープロセッサ３３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＡＢＣ  Ｃａｆｅ等の複数のレストランのための予約を受け入れるように構成されたレストラン予約システムにログオンするステップと、（２）ウェブサイト上のフォーム内に日付、時間、及び関係者人数情報を入力するステップと、（３）フォームを送信するステップと、及び（４）ユーザのカレンダー内に予約のためのカレンダー項目を記入するステップと、を実行することができる。別の例では、以下でより詳細に説明するが、タスクフロープロセッサ３３６は、例えば、写真モジュール１３２と連携して、音声入力に応答して、デジタル写真のタグ付け又は検索に関連するステップ及び命令を実行する。
【００７５】
いくつかの実施態様では、タスクフロープロセッサ３３６は、ユーザ入力で要求されたタスクを完了するため、又はユーザ入力で要求された情報の回答を提供するために、サービス処理モジュール３３８（「サービスプロセッサ」）の支援を用いる。例えば、サービスプロセッサ３３８は、タスクフロープロセッサ３３６の代わりに、電話をかけたり、カレンダー項目を設定したり、地図検索を呼び出したり、ユーザ機器上にインストールされているその他のユーザアプリケーションを呼び出すか又はそれと対話したり、及びサードパーティーサービス（例えば、レストラン予約ポータル、ソーシャルネットワークのウェブサイト又はサービス、バンキングポータル等）を呼び出すか又はそれと対話したりするアクションを行うことができる。いくつかの実施態様では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインターフェース（Application Programming Interface、ＡＰＩ）は、サービスモデル３５６の中のそれぞれのサービスモデルによって指定され得る。サービスプロセッサ３３８は、サービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成する。
【００７６】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ連絡するためのＡＰＩを指定するサービスモデルを提示することができる。タスクフロープロセッサ３３６によって要求されると、サービスプロセッサ３３８は、サービスモデル３５６に記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ（例えば、時間、日付、関係者人数）を、オンライン予約サービスのＡＰＩに従う書式でオンライン予約インターフェースへ送信することができる。
【００７７】
いくつかの実施態様では、ユーザの意図を推定して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を入手し、ユーザの意図を達成する応答を最終的に生成する（例えば、ユーザに出力を提供するか、又はタスクを完了する）ために、自然言語プロセッサ３３２、ダイアログプロセッサ３３４、及びタスクフロープロセッサ３３６は共同でかつ反復的に用いられる。
【００７８】
いくつかの実施態様では、ユーザの要求を実現するために必要なタスクがすべて実行された後に、デジタルアシスタント３２６は確認応答を策定し、Ｉ／Ｏ処理モジュール３２８を通じてユーザへ応答を送り返す。ユーザ要求が情報の回答を求めている場合には、確認応答は、要求されている情報をユーザに提示する。いくつかの実施態様では、デジタルアシスタントはまた、デジタルアシスタント３２６によって作成された応答にユーザは満足であるかどうかを指示するようにユーザに要求する。
【００７９】
いくつかの実施態様では、デジタルアシスタント３２６は、写真モジュール１３２（図３Ａ）を含む。いくつかの実施態様では、写真モジュール１３２は、ユーザ入力に応答してデジタル写真を検索するために、タスクフロー処理モジュール３３６（図３Ａ）と連携してアクションする。
【００８０】
写真モジュール１３２は、写真に対する操作及び写真の検索を実行する。例えば、いくつかの実施態様では、写真モジュール１３２は、タグを作成したり、デジタル写真のフィンガープリントに関連付けられたタグを検索したり、タグを写真に関連付けたり（例えば、写真のタグ付けなど）、ユーザ入力に基づいて写真を識別するために写真データベース（例えば、写真及びタグデータベース１３０、図１）を検索したり、写真をそれぞれ１つ以上のタグに関連付けてローカルに記憶したりする。
【００８１】
いくつかの実施態様では、写真モジュール１３２は、検索モジュール３６１を含む。いくつかの実施態様では、検索モジュール３６１は、音声入力に基づいてデジタル写真を検索するための検索クエリを生成するが、これについては、方法４００（図４Ａ〜図４Ｃ）を参照して更に詳細に説明する。例えば、いくつかの実施態様では、写真モジュール１３２は、写真のメタデータの検索を実行するのに用いる情報を識別するために、写真検索要求に対応する自然言語テキスト文字列を受取って、カレンダー、ソーシャルネットワークなどの情報源（例えば、情報サービス１２２−３、カレンダーサービス１２２−４）を参照する。後述するように、その情報は、日付パラメータ、時間パラメータ、又はジオコードパラメータを含むことができる。検索モジュール３６１は、写真集から（例えば、写真及びタグデータベース１３０、図１）、パラメータの１つと一致するタグに関連付けられた１つ以上の写真を識別する。例えば、「私のこの前の休暇の写真を見つけてほしい」という検索文字列に対応する受取った音声入力について、検索モジュール３６１は、ユーザのこの前の休暇の日付範囲を決定するために、カレンダーを調べ、ユーザの写真の中でその日付範囲内に撮影した写真を検索する。
【００８２】
いくつかの実施態様では、写真モジュール１３２は、ローカルタグ／写真ストレージ３６２を含む。いくつかの実施態様では、カメラサブシステムが写真又はビデオを撮影した後、ローカルタグ／写真ストレージ３６２は、写真及びタグ（例えば、日付、時間、及びジオコードタグを含むメタデータタグ）をデジタル写真又はビデオに対応付けて記憶する。いくつかの実施態様では、ローカルタグ／写真ストレージ３６２は、対応するデジタル写真（単数又は複数）とともにタグを記憶する。あるいは、又は加えて、ローカルタグ／写真ストレージ３６２は、タグを対応する写真（単数又は複数）からリモートの場所（例えば、個別のメモリ記憶装置上に）に保存するが、記憶するタグと関連付けて、対応する写真へのリンク又は索引を記憶する。
【００８３】
図４Ａ〜図４Ｃは、特定の実施態様に係る、音声ベースのデジタルアシスタントを使用して写真を検索するための方法を示すフロー図である。本説明は、主に写真の検索に適用されるが、同じ説明がビデオ、オーディオなどの他のメディアアイテムにも同様に適用される。更に、次の説明は、ステップ、手順、及び動作がデジタルアシスタントシステム３００により実行されるものとして説明される。しかし、そのステップ、手順、及び動作は、いくつかの実施態様では、ユーザ機器１０４ａか、サーバシステム１０８か、又は任意の他の適切な機器、又は上述の機器の組み合わせによって実行される。
【００８４】
写真は、カメラ、スキャナ等によりキャプチャされ、及び／又は記憶される場合、通常、メタデータタグに関連付けられる。例えば、デジタル写真は、多くの場合、写真が撮影された時点を識別する日付スタンプ及び／又はタイムスタンプ、及び写真が撮影された場所を識別するジオコードを含むメタデータタグを含む。メタデータタグは、デジタルファイルに書き込まれるか、あるいは関連付けられており、例えば、そのファイルの「属性」の中に記憶されるか、又は「属性」として表示される。ＥＸＩＦ（Ｅｘｃｈａｎｇｅａｂｌｅ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）及び／又はＸＭＰ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｔａｄａｔａ  Ｐｌａｔｆｏｒｍ）などのメタデータフォーマットを用いてもよい。単独では、この情報は使用が制限される。具体的には、ユーザの誕生日の間に撮影された写真はその日（例えば、２０１０年８月１６日）の日付スタンプでタグ付けされるが、この写真を検索するためには、実際にはユーザが実際の日付を入力しなければならない。もちろん、ユーザが自分の写真を見直して、検索をより容易にする（例えば、写真に単語の「誕生日」というタグを付ける）ために、写真にキーワードタグを割り当てる時間を取ることはできる。しかし、これは面倒で時間がかかり、多くのユースは、将来の検索及び／又は分類するためのタグを割り当てる時間を取りはしない。
【００８５】
しかし、カレンダーの日付（並びに時間及びジオコード）と、イベント、場所、人、の名前などと、を相関させるために使用することができるデジタルアシスタントシステムに利用可能な多くの情報源が存在する。例えば、ユーザに関連付けられたカレンダー（例えば、カレンダーサービス１２２−４、又はユーザ機器に記憶され、及び／又はそれによって提供されるカレンダーアプリケーション）は、例えば、「誕生日」などの語句の意味を８月１６日などの日付にリンクする情報を含んでもよい。そのような情報源を使用することにより、デジタルアシスタントシステムは、自然言語検索クエリ（例えば、「私の誕生日の写真を表示してほしい」）を日付、時間、又はジオコードに基づくクエリに分解することができ、既に写真に関連付けられたメタデータタグに基づいて写真を検索することができる。
【００８６】
自然言語検索クエリを、写真を検索するために使用することができる日付、時間、及び／又はジオコードに分解するために、多数の種類の情報源を使用することができる。電子カレンダーは、例えば、写真の検索に使用される特定の日付及び／又は時間を識別するために使用することができるイベント、人、時間、又は場所に関する情報のかなりの量を含み得る。例えば、カレンダーは、友人の誕生日パーティーが特定の日の特定の時間にある（例えば、「ティナの誕生日パーティー」）ことを示す項目を含んでいる可能性がある。ユーザが「ティナのパーティーの写真」を要求する場合には、デジタルアシスタントは、「ティナのパーティー」が発生した日付を決定し、対応する日付タグと時間タグを有する写真を検索する。（以下に説明するように、デジタルアシスタントは、関連するすべての写真が識別されるように、情報源によって示される明白な時間、日付、又は場所の範囲外であっても、適切なマージンによって検索範囲を拡張してもよい。）別の例として、カレンダーは休日の名前（例えば、国民の休日、宗教上の休日、仕事の休日など）を特定の日に関連付けることができる。したがって、ユーザは「労働の日のピクニックの写真」を検索することができ、デジタルアシスタントは、カレンダーにアクセスした後、労働の日（例えば、２０１１年１０月５日）に撮影された写真を検索することになる。いくつかの実施態様では、カレンダーが単純に労働の日の休日の日付を示す場合、デジタルアシスタントは、当日（又はその週末まで）に撮影された任意の写真を検索する。いくつかの実施態様では、デジタルアシスタントは、写真検索の日付、時間、又は、場所を絞り込んだり、修正したりするために、ユーザの自然言語クエリ内の他の言葉を使用する。この場合、ターム「ピクニック」は主に１２：００ＡＭの後に発生し、及び／又はその公園又はレクリエーションエリアで発生するイベントに関連付けることができる。したがって、デジタルアシスタントは、労働の日の午後又はおそらくピクニックの場所で撮影された写真を検索することができる。いくつかの実施態様では、ユーザが特定の時間範囲にわたる「労働の日ピクニック」のカレンダー項目を有する場合、検索は、その特定の時間範囲内（必要又は希望する場合、適切なマージンを加えた）で撮影した写真に焦点を当てる。
【００８７】
いくつかの実施態様では、カレンダー又は他のデータサービス（例えば、情報サービス１２２−３）は、ユーザのクエリの相対的又は曖昧な日付／時間の参照を実際の日付及び／又は時間に変換する。例えば、いくつかの実施態様では、カレンダー又はサービスは、「昨日」、「先週」、「今朝、「他の日」、「他の週」、及び「この一週間」などのターム（例えば、相対的及び／又は曖昧な時間／日付の参照）を絶対的な日付及び／若しくは時間の値又は範囲に変換する。クエリタームが相対的であるが曖昧でない場合、それは、対応する（例えば、「昨日」と「先週」は特定の絶対的な日付／時間の範囲を指しており、相対的なタームで表現されている）絶対的な日付／時間に変換されることになる。クエリタームが曖昧（例えば、「他の日」、又は「今日の現在時刻までに」）である場合には、カレンダー又はサービスは、クエリタームを考慮して、そのコメントを適切な日付／時間範囲へ変換することになる。例えば、ターム「先日」は、その前１、３、５、又は１０日（又は任意の他の日数）の日付範囲に変換してもよい。ターム「他の週」は、その前１、３、５、又は１０週（又は他の任意の週の数）の日付範囲に変換してもよい。ターム「今朝」は、同じ日の１２：００ＡＭから１２：００ＰＭの時間範囲に変換することができる。
【００８８】
また、カレンダーエントリには、多くの場合、デジタルアシスタントにより写真検索を容易にするために使用できる位置情報が含まれている。例えば、「マウイ島の休暇」又は「Ｆｏｏｔｈｉｌｌｓ  Ｐａｒｋのピクニック」と述べているカレンダー項目は、場所情報を日付及びイベント情報（例えば、「休暇」及び「ピクニック」）にリンクする情報を提供する。したがって、デジタルアシスタントは、「マウイ島の写真」などの場所だけを指定するクエリに関連する日付は何日か、又は「休暇の写真の表示」のように、イベントだけを指定するクエリに関連するジオコードは何か、を決定することができる。これらの日付又はジオコードは、次に、対応する日付タグ又は地理コードタグを有する写真を識別する検索パラメータとして、使用することができる。
【００８９】
上記の例は、写真検索用の日付、時間、及び／又はジオコードを識別するためにカレンダーを使用して説明しているが、他の情報源も、同一又は類似の情報を有する可能性がある。例えば、このような情報は、ユーザのソーシャルネットワークアカウント、連絡先リスト、電子財布、旅行日程、領収書等から入手することができる。ソーシャルネットワークの場合、ユーザは「ちょうどマウイ島の休暇から戻ってきたよ！」など、ソーシャルネットワークに情報を投稿することがあり得る。したがって、ユーザが、時間又は場所の情報が欠けているクエリ−である「休暇の写真」を要求する場合には、ユーザの「休暇の写真」に関連付けられそうなジオコード（例えば、マウイ島に関連するジオコード）は何かを決定するために、ソーシャルネットワークの投稿を使用することができる。また、連絡先リストは、誕生日、記念日、及び／又は宛先などの情報を含み得る。したがって、ユーザがデジタルアシスタントに「ジムの誕生日から写真を持ってきてほしい」と言えば、対応する日付タグを有する写真を検索するために、連絡先リストからジムの誕生日を識別することができる。別の例では、ユーザが「先週の旅行の写真」を要求する場合には、デジタルアシスタントは、旅程又は領収書（例えば、飛行機、列車、レンタカーなどについての）を使用して、その休暇の日付、時間、及び／又は場所を決定することができる。情報源は、任意の数の情報源及び／又は場所から利用可能である。例えば、いくつかの実施態様では、カレンダー、連絡先リスト、電子財布、旅行日程などは、スマートホンのようなポータブル電子機器（例えば、図１のユーザ機器１０４ａ）に記憶されてもよい。いくつかの実施態様では、この情報は、追加的に又は代替的に、デジタルアシスタントサーバ１０６、情報サービス１２２−３、カレンダーサービス１２２−４、ソーシャルネットワーキングサービス１２２−７など（図１）の１つ以上のリモートコンピュータ又はサービスによって記憶されている。
【００９０】
写真が場所情報を用いて検索される場合、場所の名前をジオコードに変換する必要があるかもしれない。具体的には、写真が自動的に生成された場所情報を含む場合、緯度−経度座標対などのジオコードの形態であることが多い。写真検索のための場所情報が、カレンダー、飛行旅程、ソーシャルネットワークの投稿、などの情報源を使用して識別された場合には、その場所の名前又はアドレスの形態であることが多い。この情報は、したがって、地理的な座標対でタグ付けされた写真を検索するために使用することができる前に、いくばくかの翻訳を必要とする。したがって、いくつかの実施態様では、場所情報を検索用のジオコードに変換するために、ジオコードの検索テーブル又はデータベースが使用される。いくつかの実施態様では、場所（例えば、「マウイ、ハワイ」）が識別される場合、マウイ、ハワイに対応するジオコードの範囲が特定され、デジタルアシスタントは、それらのジオコードで指定された地理的領域内に入る写真を検索する。いくつかの実施態様では、ユーザの自然言語検索クエリで識別された場所は、あり得べきジオコードの範囲に変換され、デジタル・アシスタントは、そのジオコードのタグがそのあり得べきジオコードの範囲に一致する写真を識別する。いくつかの実施態様では、デジタルアシスタントは、検索すべき写真のジオコードタグに関連付けられた場所を決定（例えば、検索クエリで識別された場所のジオコードを決定することの代わりに、又は、そのことに加えて）し、これらの任意のジオコードタグが、検索クエリ内の識別された場所に対応するか否かを判定する。いくつかの実施態様では、これらの技術の両方が用いられる。
【００９１】
いくつかの実施態様では、デジタルアシスタントは、他の写真の検索に使用する時間、日付、又はジオコードのパラメータを識別するために、ユーザが生成した情報に関連付けられた１枚の写真のメタデータタグを使用する。例えば、ユーザが写真をソーシャルネットワークのウェブサイトへ投稿して、ユーザ（又はソーシャルネットワーク内の別の人は）が、その写真にコメントするか、説明を付加するか、又は、そうでなければ、タグを付ける場合、その説明又はコメントはその写真のある特徴を説明していると考えられる。このように、「私たちの休暇から！」というコメントは、それが関連付けられている写真がユーザの休暇中に撮影されたことを示唆している。したがって、その写真の時間、日付、及び／又はジオコードのタグは、ユーザの休暇の時間、日付及び／又は場所に一致することになる。これらのタグは、同じ又は類似のメタデータタグを有する他の写真を見つけるために、検索パラメータとして使用される。したがって、一枚の写真のコメント、説明、又はタグ自体が、時間、日付、場所情報を含んでいない場合でも、そのような情報は、その一枚の写真の時間、日付、又はジオコードタグから、なお決定することができる。
【００９２】
一般に、写真の検索は、利用可能なすべての関連する写真を返し、無関係の写真を返さないことが好ましい。しかし、検索アルゴリズムは、多くの場合、包括的であることを下回る（つまり、いくつかの関連性の高い結果を欠いている）か、又は包括的過ぎる（つまり、関連する結果と一緒にいくつかの無関係なものを含む）。したがって、いくつかの実施態様では、デジタルアシスタントは、あまりにも多くの無関係な写真又は少なすぎる写真を含まない、候補写真の有用なセットを識別するために、情報源と検索パラメータの組み合わせを使用する。例えば、ユーザは、休暇中に多くの異なる場所に移動することがあり、その場合には、特定の国又は都市で撮影した写真を検索すると、非常に少ない結果が返されてしまう。したがって、デジタルアシスタントは有用かつ包括的な検索結果を提供するために、時間、日付、及びジオコード情報の任意の組み合わせに基づいて検索を実行することができる。
【００９３】
一例として、ある人が数日間マウイで休暇を取り、そのうち１日を他のハワイ諸島へ日帰りで旅行し、その後マウイ島に戻って休暇の残りを過ごすとする。いくつかの実施態様では、「私のマウイの旅の写真」の検索クエリに対応するために、デジタルアシスタントは、ユーザが最近（例えば、最近の旅行日程を使用して）マウイに飛行機で旅行したと判断し、写真検索のためにマウイのジオコードパラメータを識別するであろう。いくつかの実施態様では、デジタルアシスタントは、また、ユーザが自分のカレンダーに「休暇」として７日間の予定を入れたと判断するであろう。したがって、デジタルアシスタントは、別の場所で撮影したけれども、ユーザのカレンダーで指定した日付の範囲内である写真を検索することもできる。いくつかの実施態様では、デジタルアシスタントは、特定の場所で撮影された写真を検索するが、時間又は日付の範囲外の写真を除外する。例えば、ユーザが特定の場所に数回旅行した場合は、先に特定された「休暇」の時間範囲の間に撮影された写真のみが返される。特定の日付又は時間の範囲が特定されていない場合であっても、それらの日付と時間に基づいて写真のグループを識別すること、及び／又は範囲外の日付の写真を無視することによって、写真が特定のイベント又は特定の種類のイベントに関連すると推定することができる。例えば、ユーザが１週間の間に１００枚の写真をすべてハワイ島で撮影し、次に、第１の撮影のグループから５週間離れて、マウイ島で２枚の追加の写真を撮影した場合、２枚の追加写真は、ユーザの休暇に関連していないと推定することができる。
【００９４】
いくつかの実施態様では、日付範囲の間（例えば、カレンダーの休暇項目に対応する）に撮影した写真を検索するが、ユーザに関連付けられていない場所で撮影された写真を除外する。例えば、ユーザが、他の誰かによって撮影された写真を保存することがあり、その写真はそのユーザの休暇とは何の関係もなく、たまたま同じ日か又は同じ場所で撮影された場合がある。いくつかの場合、これらの写真は、ユーザの「休暇写真」として識別するべきではない。いくつかの実施態様では、例えば、ユーザが「私の休暇写真」又は「私の休暇の写真」を要求する場合には、デジタルアシスタントは、タームの「私」を認識して、ユーザが自分自身の写真だけを見たいと欲していると判断するであろう。｛デジタルアシスタントは、次に、その結果をユーザの写真だけに限定する（例えば、ユーザに関連付けられていない場所で撮影した写真を除外することによって）。いくつかの実施態様では、デジタルアシスタントは、写真を、ユーザによるか、又はユーザに関連付けられているものに限定しようとはしない。例えば、ユーザは全般的な写真検索として、「パリの写真」を要求することがあり得る。このような場合には、デジタルアシスタントは、ユーザにより撮影されなかった場合でも、パリで撮影された写真を取得するための一般的な検索を実行することができる。
【００９５】
いくつかの実施態様では、日付／時間と場所情報を組み合わせる検索は、上述のように、情報源の任意の組み合わせから情報を取得する。例えば、ユーザが「先週の私のハワイの写真を見せてほしい。」と言う場合のように、クエリは複数の種類の情報を含むことがあり得る。このクエリは場所と時間の情報の両方を提供する。いくつかの実施態様では、クエリは一種類の情報を含むだけであっても、別の種類の情報はクエリから推測される。例えば、「私のハワイの写真を見せてほしい」というクエリによって、ユーザがいつハワイに旅行する予定であったかを示す旅程を相互参照することができる。上述の例が示すように、理想的な１組の検索結果を提供するために、続いて、複数の種類の情報を使用することができる。
【００９６】
いくつかの実施態様では、デジタルアシスタントは、検索クエリを絞り込む、及び／又は曖昧さを除去するために、ユーザとの対話に従事して、検索結果を、より関連性の高いセットに限定するのに役立ち得る追加情報を取得することができるか、又はデジタルアシスタントが正しくクエリを理解したという信頼性を高めることができる。例えば、ユーザが「去年の夏の休暇の写真」を検索する場合、デジタルアシスタントは、「すべての写真ですか、又は特定の地域で撮影された写真ですか？」と尋ねることによって、ユーザに応答する（例えば、音声及び／又は視覚的な出力を介して）ことができる。すると、ユーザは、追加の情報で応答する（例えば、「ハワイだけ」、又は「すべての写真」と話すことによって）ことができる。この例では、デジタルアシスタントは、最初に、「休暇」及び「夏」の検索クエリに関連するけれども、異なる場所で撮影された写真の複数のグループを識別した可能性がある。したがって、デジタルアシスタントは、どの写真をユーザが見たいかを判断するために、ユーザに追加情報を要求する。デジタルアシスタントは更に、又は追加的に、検索クエリが、関連する結果セットを生成するために十分な情報を含んでいないことを識別することができる。例えば、デジタルアシスタントは、「去年の夏の休暇の写真」の検索クエリが、あまりにも多くの結果を返す可能性があるか、又は返されるそれらの写真は、「休暇」の写真のモデル又は特徴と一致しない（例えば、それらはあまりにも多くの異なる場所で撮影された、あまりにも長い時間に及ぶ、返される写真の間に著しい隔たりがある、といった）ことを認識する場合がある。したがって、いくつかの実施態様では、デジタルアシスタントは、より適切な結果のセットを返す検索クエリを生成するために、ユーザからの追加情報を要求することになる。
【００９７】
検索クエリに応答して検索された写真は、ユーザに関連付けられ（又は公的にアクセス可能である）、かつデジタルアシスタントがアクセスできるあらゆる写真である。いくつかの実施態様では、写真は、ユーザがデジタルアシスタントにアクセス、又はインターフェースする機器に保存されている。例えば、ユーザが、スマートホン、タブレットコンピュータ、又はカメラ（他の可能性の中で）によりデジタルアシスタントにアクセスした時、デジタルアシスタントは、その機器に保存された写真を検索することができる。（ただし、自然言語入力の処理、情報源との相談などは、その機器、又は、デジタルアシスタントサーバ１０８、１つ以上の外部サービス１２２−ｎなどの機器を個別に又は組み合わせることにより、実行することができる。）いくつかの実施態様では、写真は、ユーザがデジタルアシスタントにアクセス、又はインターフェースする機器からリモートに記憶される。例えばいくつかの実施態様では、写真は「クラウド」に、即ちインターネットに接続されたリモートサーバに記憶される。リモートサーバは、ストレージプロバイダ、ソーシャルネットワーク、ネットワークアクセス可能なホームメディアサーバ又はストレージユニット、フォトホスティングウェブサイト、等により運用することができる。いくつかの実施態様では、デジタルアシスタントは、認証技術を使用してリモートに記憶された画像へのアクセス（例えば、検索、閲覧、編集、ダウンロード、など）が認可されている。例えば、いくつかの実施態様では、デジタルアシスタントは、プログラムで画像ソースにアクセスできることを許可する資格証明に関連付けられている。具体的には、デジタルアシスタントは、ソーシャルネットワーキングサイトにユーザの資格を備えているので、情報源として（例えば、自然言語検索クエリによって示される日付、時間、又は場所を決定するため）、又は写真のソースとして（例えば、自然言語検索クエリに関連する可能性がある画像を検索するため）、ソーシャルネットワークを使用することができる。
【００９８】
いくつかの実施態様によれば、以下の方法によって、ユーザは、スマートホン、携帯音楽プレーヤー、ラップトップコンピュータ、タブレットコンピュータ、等のような電子機器上の写真を検索することができる。ユーザは、鑑賞のために写真を検索したい場合、単に、自然言語入力を提示すればよく、デジタルアシスタントシステム３００は、自然言語入力を処理して、関連する写真を検索するためにどんなパラメータを使用するかを決定する。これを行うために、上述したように、デジタルアシスタントシステム３００は、自然言語入力に対応した特定の日付、時間、及び／又はジオコードの検索パラメータを決定するために、１つ以上の情報源を使用する。次に、検索の日付、時間、及び／又はジオコードのパラメータに一致するメタデータタグを有するものを識別するために、写真を検索する。したがって、写真は、最初、自然言語検索機能が機能するようにタグ付けする必要がないか、又は、そうでなければ、自然言語のキーワードに関連付けられている必要もない。
【００９９】
図４Ａ〜図４Ｃに戻ると、方法４００は、音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法を表す。方法４００は、任意に、非一時的コンピュータ可読記憶媒体に記憶され、デジタルアシスタントシステムの１つ以上のコンピュータシステムの１つ以上のプロセッサによって実行される命令によって規定されるが、このデジタルアシスタントシステムは、サーバシステム１０８、ユーザ機器１０４ａ、及び／又は写真サービス１２２−６を含むが、これらに限定されるものではない。図４Ａ〜図４Ｃに示す各動作は、通常は、コンピュータメモリ又は非一時的コンピュータ可読記憶媒体（例えば、クライアント機器１０４のメモリ２５０、デジタルアシスタントシステム３００に関連するメモリ３０２）に記憶された命令に対応する。コンピュータ可読記憶媒体は、磁気又は光ディスク記憶装置、フラッシュメモリなどの固体記憶装置、又は他の不揮発性メモリデバイス又はその複数を含み得る。コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は１つ以上のプロセッサによって解釈される他の命令フォーマット、の一つ以上を含んでもよい。種々の実施態様では、方法４００のいくつかの動作を組み合わせてもよいし、及び／又はいくつかの動作の順序を、図４Ａ〜図４Ｃに示されている順序から変更してもよい。更に、いくつかの実施態様では、方法４００の１つ以上の動作は、例えば、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、写真モジュール１３２、及び／又はその任意のサブモジュール、を含むデジタルアシスタントシステム３００のモジュールによって実行される。
【０１００】
メディアアイテムのうちの少なくともいくつかは、それぞれの時間タグ、日付タグ、又はジオコードタグの少なくとも１つを含む、それぞれのタグに関連付けされる複数のメディアアイテムが提供される（４０２）。いくつかの実施態様では、ジオコードタグは、ＧＰＳ座標を含む。いくつかの実装形態では、ＧＰＳ座標は緯度／経度対を含む。いくつかの実施態様では、タグは、メディアアイテムとともに記憶されているメタデータである。
【０１０１】
複数のメディアアイテムのそれぞれは、様々な場所に記憶することができる。例えば、いくつかの実施態様では、複数のメディアアイテムの少なくともサブセットは、電子機器上に記憶されている。いくつかの実施態様では、複数のメディアアイテムの少なくともサブセットは、電子機器からリモートに記憶されている。いくつかの実施態様では、リモートに記憶されたメディアアイテムは、電子機器のユーザのソーシャルネットワーキングアカウントに関連付けられている。例えば、ユーザは、デジタルアシスタントが、ユーザのアカウントに関連付けられたメディアアイテム（及び／又は他の情報）を検索して取得することができるように、音声ベースのデジタルアシスタントに対してユーザのソーシャルネットワーキングアカウントにアクセスすることを許可してもよい。いくつかの実施態様では、デジタルアシスタントは、デバイス全体の権限によりソーシャルネットワーキングアカウントにアクセスする許可を有する。
【０１０２】
いくつかの実施態様では、複数のメディアアイテムは写真である（４０４）。いくつかの実施態様では、複数のメディアアイテムはビデオである（４０６）。
【０１０３】
自然言語テキスト文字列が提示され、このテキスト文字列は１つ以上のメディアアイテムの検索クエリに対応し、この検索クエリは、１つ以上のクエリタームを含む（４１２）。いくつかの実施態様では、１つ以上のクエリタームは、日付、時間、又はジオコードのいずれも含んでいない。
【０１０４】
いくつかの実施態様では、ステップ（４１２）の前に、音声入力をユーザから受取り、ここで自然言語のテキスト文字列が音声入力に対応し（４０８）、自然言語テキスト文字列を生成するために、音声テキスト化処理が音声入力に対して実行される（４１０）。例えば、ユーザは、「私に休暇の写真を見せてほしい」などのクエリを表す音声入力をデジタル・アシスタントに提示することができる。音声入力（例えば、記録された、及び／又はキャッシュに記憶されたオーディオ）は、音声テキスト化処理を使用して、テキストに変換される。結果として生じたテキスト文字列は、デジタルアシスタントに提供される。いくつかの実施態様では、音声テキスト化処理（即ち、ステップ４１０）は、音声入力が記録された同一の機器によって実行される。いくつかの実施態様では、音声テキスト化処理（即ち、ステップ４１０）は、リモート音声テキスト化処理サーバなどの別の機器によって実行される。
【０１０５】
方法４００は図４Ｂに続く。少なくとも一つの情報源が、１つ以上のクエリタームの少なくとも１つに関連付けられた少なくとも１つのパラメータを識別するために検索される（即ち、ステップ４１４）。その少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータの少なくとも１つを含み、その少なくとも１つのパラメータは、複数のメディアアイテムに関連付けられたタグとは別個のものである。いくつかの実施態様では、その少なくとも１つの情報源は、カレンダー、電子メールメッセージ、テキストメッセージ、ソーシャルネットワークの投稿、連絡帳、旅行日程、及びイベントスケジュールからなる群から選択される（４１６）。いくつかの実施態様では、カレンダーは、祝日、宗教上の休日、公共のイベントなどを相互に関連付ける公的にアクセス可能なカレンダーである。いくつかの実施態様では、カレンダーは、デジタルアシスタントのユーザに関連付けられた私的なカレンダーである。ユーザの私的なカレンダーは、例えば、ユーザ機器（例えば、ユーザ機器１０４ａ、図１）上に、又は外部サービス（例えば、カレンダーサービス１２２−４又はデジタルアシスタントサーバ１０６、図１）上に記憶することができる。いくつかの実施態様では、ユーザのカレンダーは、これらの組み合わせ又は他の機器の上に記憶されている。
【０１０６】
いくつかの実装形態では、テキストメッセージ（例えば、ステップ４１６）は、ＳＭＳ（シンプルメッセージサービス）メッセージ、インスタントメッセージなどのテキストコンポーネントが含まれるメッセージを含む。いくつかの実施態様では、テキストメッセージの内容は、メディアアイテムを識別することが可能なコンテクストの手掛かりを識別するためにアクセスすることができる。具体的には、ユーザによって、写真のタイムスタンプに非常に近い時間に送信又は受信されたテキストメッセージは、画像のコンテンツを識別する情報を含む可能性がある。又は、メディアアイテム（例えば写真）を添付ファイルとして含むテキストメッセージのテキスト内容は、メディアアイテムの内容についての手掛かりを提供することができる。例えば、ユーザが浜辺の写真を撮った２分後に送ったテキストメッセージに、「私たちはポロビーチにいます。都合の良い時に来て下さい。」と書いてある可能性がある。このテキストは、写真がビーチで撮影された可能性があることを識別するために、かつ、自然言語入力を使用して、その写真の検索及び取得を促進するために使用することができる。
【０１０７】
上述したように、一つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータが特定される（４１４）。いくつかの実施態様では、時間パラメータは、１つ以上のクエリタームで指定された時間を包含する時間範囲を含む（４１８）。クエリが「昨日の２時近辺」というタームを含む場合は、時間パラメータは、前日の１２：００から４：００ＰＭまでの時間範囲を含むことができる。
【０１０８】
いくつかの実施態様では、日付パラメータは、１つ以上のクエリタームで指定された日付を包含する日付範囲を含む（４２０）。クエリタームが「クリスマス」である場合は、日付パラメータは、１２月２３日から１２月２７日までの日付の範囲を含むことができる。
【０１０９】
いくつかの実施態様では、ユーザに関連付けられたカレンダーは、休日を含むか、及び／又は休日の近くの日付の範囲に及ぶイベントを識別するために、検索される。例えば、カレンダーは、７月４日などの休日にまたがる休暇イベントを有することがある。このように、休暇イベントの日付範囲は、７月４日のメディアアイテムの検索に対応する日付パラメータとして機能することができる。カレンダーを検索した後、複数のメディアアイテムに関連付けられた日付タグは、そのタグに関連する日付タグがその日付の範囲内である少なくとも１つのメディアアイテムを識別するために検索される（例えば、上述のステップ（４１４））。
【０１１０】
他の例では、クエリに１日の範囲を示すタームが含まれている場合、時間パラメータは、指定された日のどちらの側にも１、２、又は３（又はそれより多い）の日数が含まれる範囲を包含することができる。クエリに、１つ以上の週の範囲を示すタームが含まれている場合、時間パラメータは、指定された週のどちらの側にも追加の１、２、若しくは３日を含む範囲、又は指定された週（単数又は複数）のどちらの側にも追加の１、２、若しくは３週若しくはそれより多い週を含む範囲を含んでもよい。クエリに、１時間以上の時間の範囲を示すタームが含まれている場合、時間パラメータは、どちらの側にも１／２、１、２、又は３（又はそれより多い）時間の時間を含む範囲を含むことができる。クエリに、１分又は数分（即ち、１時間未満）の範囲を示すタームが含まれている場合、時間パラメータは、どちらの側にも５、１０、１５、又は３０（又はそれより多い）分を含む範囲を含むことができる。クエリに、１年又は数年の範囲を示すタームが含まれている場合、時間パラメータは、どちらの側にも２、３、又は６（又はそれより多い）ヶ月を含む範囲を含むことができる。数値ではないクエリタームによって、デジタルアシスタントに、より大きな範囲を含むように時間パラメータを拡張させることがある。例えば、いくつかの実施態様では、クエリが休日（例えば、労働の日）を含む場合、時間パラメータは、休日の属する週全体又はその週末を含んでもよい。デジタルアシスタントは、ユーザのクエリに基づいて、ジオコードパラメータなどの他のパラメータを拡張したり、調整したりすることができる。例えば、ユーザが検索クエリで都市を指定する場合、ジオコードパラメータは、その周辺都市、その都市を囲む郡／州／地域等を含むように拡張することができる。もし、ユーザが国を指定している場合、ジオコードパラメータは周辺国を含むように拡張することができる。
【０１１１】
いくつかの実施態様では、ジオコードパラメータは、１つ以上のクエリタームで指定された場所に関連付けられたジオコードの範囲を含む（４２２）。いくつかの実施態様では、ジオコードの範囲は、その場所の地理的境界に対応する（４２４）。例えば、ジオコードの範囲は、市、州、公園、町、島などの地理的境界に対応することができる。いくつかの実施態様では、ジオコードの範囲は、主要なジオコード及び主要なジオコードから１つ以上の方向への１つ以上の距離に対応する（４２６）。例えば、主要なジオコードは、特定の場所の代表的な地理的場所（例えば、市の中心部、公園の入り口など）に対応してもよく、主要なジオコードから１つ以上の距離は、主要なジオコードを中心とした半径（例えば、１、５、１０、又は１００マイルの半径、又は他の距離）に対応してもよい。
【０１１２】
いくつかの実施態様では、１つ以上のクエリターム（例えば、検索クエリから、（即ち、ステップ４１２））は、イベント名を含み、少なくとも１つの情報源は、イベント名を日付に関連付ける情報を含む（４２８）。例えば、いくつかの実施態様では、カレンダーは、イベント名を日付と関連付ける。いくつかの実施態様では、イベント名は、宗教上の休日、祭日、誕生日、季節、スポーツイベント、など（４３０）である。
【０１１３】
方法４００は図４Ｃに続く。それぞれのタグは、少なくとも１つのパラメータと比較される（４３２）。具体的には、いくつかの実施態様では、ジオコードタグ、時間タグ、及び／又は日付タグは、少なくとも一つの情報源を検索することによって特定された時間ジオコードパラメータ、時間パラメータ、及び／又は日付パラメータとそれぞれ比較される。例えば、自然言語テキスト文字列には、「私の休暇の写真を取得してほしい」というクエリが含まれている可能性があり、その結果、ユーザのカレンダーから（又は上述のように、ユーザとの曖昧さ除去のための対話を通じて）、ユーザが最近ハワイで休暇を取ったことを識別することになる。ユーザに関連付けられた写真及びビデオのジオコードタグは、ユーザの「休暇の写真」の範疇に入る可能性がある写真を決定するために、次に、ハワイの状態に関連したジオコードパラメータの範囲と比較することができる。いくつかの実施態様では、写真の場所は、画像認識技術を用いて決定される。例えば、ジオコードタグを欠く画像の場所は、既知の場所を有する他の写真とその写真との比較によって、識別することができる。決定された場所は、その写真の検索を促進するために、ジオコードタグの代わりに使用することができる。画像認識技術（例えば、画像フィンガープリントを使用して、自動的に画像に場所情報のタグを付ける）が２０１３年３月１３日に出願された「Ｖｏｉｃｅ−Ｂａｓｅｄ  Ｉｍａｇｅ  Ｔａｇｇｉｎｇ  ａｎｄ  Ｓｅａｒｃｈｉｎｇ」と題する米国特許出願第１３／８０１５３４号に記載されており、その全体が参照により本明細書に組み込まれる。
【０１１４】
ユーザに対する少なくとも１つのメディアアイテムの提示が促進される（４３４）。方法４００がハンドヘルド電子機器又はクライアントコンピュータシステムで実行されるようないくつかの実施態様では、少なくとも１つのメディアアイテムの提示を促進することは、表示機器上に少なくとも１つのメディアアイテムを表示することを含む（４３６）。方法４００がサーバシステムで実行されるようないくつかの実施態様では、少なくとも１つのメディアアイテムの提示を促進することは、表示のためにクライアント機器に、少なくとも１つのメディアアイテム及び／又は少なくとも１つのメディアアイテムのアドレス又は識別子を送信することを含む（４３８）。
【０１１５】
いくつかの実施態様では、信頼値が各メディアアイテムに割り当てられる。この信頼値は、メディアアイテムの時間タグ、日付タグ、又はジオコードタグと、１つ以上のクエリタームの少なくとも１つに関連付けられた時間、日付、又はジオコードとの間の一致の強さに対応する（４４０）。いくつかの実施態様では、一致の強さは、メディアアイテムのタグと検索パラメータとの近さによって決定される。例えば、ユーザが「クリスマスの写真」を検索する場合、「１２／２５／１１」の日付タグを有するメディアアイテムは、その年の１２月２０日に撮影したものよりも高い信頼値を有する可能性がある。複数のメディアアイテムが提示される場合には、それらの信頼値に基づいてランク付けされ、そのランク付けに基づいた順序で表示される（４４２）。したがって、ユーザのクエリに一致する可能性がより高いか、又はより密接に一致するメディアアイテムは、最初にユーザに表示される。
【０１１６】
図４Ａ〜図４Ｃの動作を説明した特定の順序は単なる代表例であり、記載した順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。
【０１１７】
いくつかの実施形態によれば、図５は、説明される様々な実施形態の理念に従って構成された電子機器５００の機能ブロック図を示す。その機器の機能ブロックは、任意に、説明される様々な実施形態の理念を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実行される。図５で説明する機能ブロックが、説明される様々な実施形態の理念を実施するために、任意に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分離、又は本明細書で説明する機能ブロックの更なる定義を任意に支持する。
【０１１８】
図５に示すように、電子機器５００は、メディアアイテム提供ユニット５０２、自然言語テキスト文字列提供ユニット５０４、及びメディアアイテム提供ユニット５０２及び自然言語テキスト文字列提供ユニット５０４に結合された処理ユニット５０６を含む。いくつかの実施形態では、処理ユニット５０６は、情報源検索ユニット５０８、タグ比較ユニット５１０、提示促進ユニット５１２、音声テキスト化処理ユニット５１４、及び信頼値割当ユニット５１６を含む。
【０１１９】
メディアアイテム提供ユニット５０２は、複数のメディアアイテムを提供するように構成されており、メディアアイテムのうちの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグの少なくとも１つを含むそれぞれのタグにそれぞれ関連付けされている。自然言語テキスト文字列提供ユニット５０４は、１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するように構成されており、検索クエリは１つ以上のクエリタームを含む。
【０１２０】
処理ユニット５０６は、１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために、少なくとも１つの情報源を検索する（例えば、情報源検索ユニット５０８により）ように構成されている。そして、その少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、複数のメディアアイテムに関連付けられたタグとは別個のものである。また、処理ユニット５０６は、識別したパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、それぞれのタグを少なくとも１つのパラメータと比較する（例えば、タグ比較ユニット５１０により）ように構成され、処理ユニット５０６は、少なくとも１つのメディアアイテムのユーザへの提示を促進する（例えば、提示促進ユニット５１２により）ように構成されている。
【０１２１】
いくつかの実施形態では、複数のメディアアイテムは写真である。いくつかの実施形態では、複数のメディアアイテムはビデオである。いくつかの実施形態では、タグは、メディアアイテムとともに記憶されるメタデータである。
【０１２２】
いくつかの実施形態では、複数のメディアアイテムの少なくともサブセットは、電子機器上に記憶される。
【０１２３】
いくつかの実施形態では、複数のメディアアイテムの少なくともサブセットは、電子機器からリモートに記憶される。
【０１２４】
いくつかの実施形態では、リモートに記憶されたメディアアイテムは、電子機器のユーザのソーシャルネットワーキングアカウントに関連付けられている。
【０１２５】
いくつかの実施形態では、電子機器は、処理ユニット５０６と結合された音声入力受取りユニット５０５を更に含み、音声入力受取りユニット５０５は、ユーザからの音声入力を受取るように構成され、自然言語テキスト文字列は音声入力に対応する。
【０１２６】
いくつかの実施形態では、処理ユニット５０６は、自然言語テキスト文字列を生成するために、音声入力に対して音声テキスト化処理を実行する（例えば、音声入力テキスト化処理ユニット５１４により）ように更に構成されている。
【０１２７】
いくつかの実施形態では、少なくとも１つの情報源は、カレンダー、電子メールメッセージ、テキストメッセージ、ソーシャルネットワークの投稿、連絡帳、旅行日程、及びイベントスケジュールからなる群から選択される。
【０１２８】
いくつかの実施形態では、１つ以上のクエリタームは、日付、時間、又はジオコードのいずれも含まない。
【０１２９】
いくつかの実施形態では、１つ以上のクエリタームは、イベント名を含み、少なくとも１つの情報源は、イベント名を日付に関連付ける情報を含む。いくつかの実施形態では、イベント名は、宗教上の休日である。いくつかの実施形態では、イベント名は、国民の休日である。いくつかの実施形態では、イベント名は、誕生日、季節、及びスポーツイベントからなる群から選択される。
【０１３０】
いくつかの実施形態では、１つ以上のクエリタームは、休日の名前を含み、処理ユニット５０６は、休日を含むか又はその近くの日付の範囲に及ぶイベントを識別するために、ユーザに関連付けられたカレンダーを検索し（例えば、情報源検索ユニット５０８により）、その日付の範囲内に関連付けられた日付タグを有する少なくとも１つのメディアアイテムを識別するために、複数のメディアアイテムに関連する日付タグを検索する（例えば、タグ比較ユニット５１０により）ように、更に構成されている。
【０１３１】
いくつかの実施形態では、時間パラメータは、１つ以上のクエリタームで指定された時間を包含する時間範囲を含む。いくつかの実施形態では、日付パラメータは、１つ以上のクエリタームで指定された日付を包含する日付範囲を含む。
【０１３２】
いくつかの実施形態では、ジオコードパラメータは、１つ以上のクエリタームで指定された場所に関連付けられたジオコードの範囲を含む。いくつかの実施形態では、ジオコードの範囲は、場所の地理的境界に対応する。いくつかの実施形態では、ジオコードの範囲は、主要なジオコード及び主要なジオコードから１つ以上の方向への１つ以上の距離に対応する。
【０１３３】
いくつかの実施形態では、少なくとも１つのパラメータの１つは場所に対応し、それぞれのタグを少なくとも１つのパラメータと比較する（例えば、タグ比較ユニット５１０により）ことは、ジオコードタグがその場所に対応するかどうかを判定することを更に含む。
【０１３４】
いくつかの実施形態では、処理ユニット５０６は、それぞれ識別されたメディアアイテムに信頼値を割り当てる（例えば、信頼値割当ユニット５１６により）ように更に構成されている。この信頼値は、メディアアイテムの時間タグ、日付タグ、又はジオコードタグと、１つ以上のクエリタームの少なくとも１つに関連付けられた時間、日付、又はジオコードとの間の一致の強さに対応する。
【０１３５】
いくつかの実施形態では、少なくとも１つのメディアアイテムは、複数のメディアアイテムを含み、処理ユニット５０６は、電子機器に関連付けられたディスプレイ上に複数のメディアアイテムの少なくともサブセットの提示を促進するように更に構成されている（例えば、提示促進ユニット５１２により）。
【０１３６】
いくつかの実施形態では、処理ユニット５０６は、複数のメディアアイテムのそのサブセットの表示を促進する前に、信頼値（例えば、信頼値割当ユニット５１６により）に基づいて複数のメディアアイテムをランク付けするように更に構成され、複数のメディアアイテムはそのランク付けに基づく順序で表示される。
【０１３７】
いくつかの実施形態において、電子機器はハンドヘルド電子機器である。
【０１３８】
いくつかの実施形態において、電子機器はサーバであり、テキスト文字列は、その電子機器とは別の第２の電子機器で受信される。
【０１３９】
上述の説明は、説明目的のために、特定の実施態様を参照して説明した。しかし、上述の例示的な説明は、網羅的であること、又は、開示される実施態様を正確な形態に限定することを意図していない。上述の教示を考慮すれば、多くの修正及び変形が可能である。実施態様は、開示された思想の理念と実際の応用を最も良く説明するために、選択して説明し、それによって、当業者が、考えられる特定の用途に適した様々な変更を加えて、それを最も良く利用することができるようにしたものである。
【０１４０】
当然のことながら、「第１」、「第２」などの用語は、様々な要素を説明するために本明細書で使用することができるが、これらの要素はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、「第１の写真」のすべての出現について一貫して名前が変更され、第２の写真のすべての出現について一貫して名前が変更される限り、説明の意味を変えることなく、第１の写真は第２の写真と呼ぶことができ、同様に、第２の写真は第１の写真と呼ぶことができる。第１の写真と第２の写真はともに写真であるが、同じ写真ではない。
【０１４１】
本明細書で使用される用語は、特定の実施態様を説明する目的のためであり、特許請求の範囲を限定することを意図するものではない。説明される実施態様の説明及び添付の特許請求の範囲で使用されるように、単数形の「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことを意図している。本明細書で使用される時に、用語「及び／又は」が、関連する列挙された項目のうちの１つ以上の任意のすべての可能な組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「ｃｏｍｐｒｉｓｅｓ（含む）」及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む）」が、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらのグループの存在又は追加を除外しないことを更に理解されたい。
【０１４２】
本明細書で使用される時には、用語「ｉｆ」は、文脈に応じて、「時」又は「際に」又は、先に述べた条件が正しいとの「決定に応答して」又は「決定に従って」、「検出に応答して」を意味するものと解釈できる。同様に、「［先に述べた条件が正しい］と決定される場合」又は「［先に述べた条件が正しい］場合」、又は「［先に述べた条件が正しい］時」というフレーズは、先に述べた条件が正しいとの「決定に際して」又は「決定に応答して」又は「決定に従って」又は「検出した際に」又は「検出に応答して」ということを意味するものと解釈できる。
【図１】
2015527683.tif 000003
【図２】
2015527683.tif 000004
【図３Ａ】
2015527683.tif 000005
【図３Ｂ】
2015527683.tif 000006
【図３Ｃ】
2015527683.tif 000007
【図４Ａ】
2015527683.tif 000008
【図４Ｂ】
2015527683.tif 000009
【図４Ｃ】
2015527683.tif 000010
【図５】
2015527683.tif 000011
【手続補正書】
【提出日】平成27年3月9日(2015.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
音声ベースのデジタルアシスタントを使用してメディアアイテムを検索する方法であって、
プロセッサ及び該プロセッサによって実行される命令を記憶するメモリを有する電子機器において、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するステップであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
を含む、方法。
【請求項２】
前記複数のメディアアイテムは写真又はビデオである、請求項１に記載の方法。
【請求項３】
前記タグは、前記メディアアイテムとともに記憶されるメタデータである、請求項１又は２に記載の方法。
【請求項４】
前記複数のメディアアイテムの少なくともサブセットは、電子機器上に記憶される、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数のメディアアイテムの少なくともサブセットは、前記電子機器からリモートに記憶される、請求項１から３のいずれか１項に記載の方法。
【請求項６】
前記リモートに記憶されたメディアアイテムは、前記電子機器のユーザのソーシャルネットワーキングアカウントに関連付けられている、請求項５に記載の方法。
【請求項７】
ユーザから音声入力を受取るステップを更に含み、前記自然言語テキスト文字列は前記音声入力に対応する、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記自然言語テキスト文字列を生成するために、前記音声入力に対して音声テキスト化処理を実行するステップを更に含む、請求項７に記載の方法。
【請求項９】
前記少なくとも１つの情報源は、
カレンダーと、
電子メールメッセージと、
テキストメッセージと、
ソーシャルネットワークの投稿と、
連絡帳と、
旅行日程と、
イベントスケジュールと、
からなる群から選択される、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記１つ以上のクエリタームは、日付、時間、又はジオコードのいずれも含まない、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記１つ以上のクエリタームはイベント名を含み、前記少なくとも１つの情報源はイベント名を日付に関連付ける情報を含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記１つ以上のクエリタームは休日名を含み、前記方法は、
前記休日を含むか、及び／又は前記休日の近くの日付の範囲に及ぶイベントを識別するためにユーザに関連付けられたカレンダーを検索するステップと、
関連付けられた日付タグが前記日付の範囲内にある少なくとも１つのメディアアイテムを識別するために、前記複数のメディアアイテムに関連付けられた前記日付タグを検索するステップと、
を更に含む、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記時間パラメータは、前記１つ以上のクエリタームで指定された時間を包含する時間範囲を含む、請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記日付パラメータは、前記１つ以上のクエリタームで指定された日付を包含する日付範囲を含む、請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
前記ジオコードパラメータは、前記１つ以上のクエリタームで指定された場所に関連付けられたジオコードの範囲を含む、請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
前記少なくとも１つのパラメータは場所に対応し、前記それぞれのタグと前記少なくとも１つのパラメータの１つとを比較するステップは、前記ジオコードタグが前記場所に対応するかどうかを判定するステップを更に含む、請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
それぞれ識別されたメディアアイテムに信頼値を割り当てるステップを更に含み、前記信頼値は、前記メディアアイテムの前記時間タグ、前記日付タグ、又は前記ジオコードタグと、前記１つ以上のクエリタームの前記少なくとも１つに関連付けられた前記時間、前記日付、又は前記ジオコードとの間の一致の強さに対応する、請求項１から１６のいずれか１項に記載の方法。
【請求項１８】
前記少なくとも１つのメディアアイテムは、複数のメディアアイテムを含み、前記方法は、
前記複数のメディアアイテムの少なくともサブセットを前記電子機器に関連付けられたディスプレイ上に表示するステップを更に含む、請求項１７に記載の方法。
【請求項１９】
１つ以上のプロセッサと、メモリと、前記メモリに記憶され、前記１つ以上のプロセッサによって実行するように構成された１つ以上のプログラムを含む電子機器であって、前記１つ以上のプログラムは、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するステップであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
のための命令を含む、電子機器。
【請求項２０】
電子機器によって実行するように構成された１つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、
複数のメディアアイテムを提供するステップであって、前記メディアアイテムの少なくともいくつかは、時間タグ、日付タグ、又はジオコードタグのうち少なくとも１つを含むそれぞれのタグとそれぞれ関連付けられる、前記複数のメディアアイテムを提供するステップと、
１つ以上のメディアアイテムの検索クエリに対応する自然言語テキスト文字列を提供するステップであって、前記検索クエリは１つ以上のクエリタームを含む、前記自然言語テキスト文字列を提供するステップと、
前記１つ以上のクエリタームの少なくとも１つに関連する少なくとも１つのパラメータを識別するために少なくとも１つの情報源を検索するステップであって、前記少なくとも１つのパラメータは、時間パラメータ、日付パラメータ、又はジオコードパラメータのうち少なくとも１つを含み、前記少なくとも一つのパラメータは、前記複数のメディアアイテムに関連付けられた前記タグとは別個である、前記少なくとも１つの情報源を検索するステップと、
前記識別されたパラメータに一致するタグを有する少なくとも１つのメディアアイテムを識別するために、前記それぞれのタグと前記少なくとも１つのパラメータとを比較するステップと、
前記少なくとも１つのメディアアイテムのユーザへの提示を促進するステップと、
のための命令を含む、コンピュータ可読記憶媒体。
【国際調査報告】
2015527683.tif 000012
2015527683.tif 000013
2015527683.tif 000014