(57)【要約】【課題】音声認識システムのためのパーソナライズされたボキャブラリを構築する。【解決手段】音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含む。【選択図】図１
2015079237.tif 000002
【特許請求の範囲】
【請求項１】
音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するために、コンピュータが実行する方法であって、
トリガイベントを検出する検出ステップと、
前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、
前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、
一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、
前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
を含む方法。
【請求項２】
前記場所ボキャブラリに含まれる単語は、特定の対象を指し示す単語である非カスタム単語と、指し示す対象がユーザごとに異なる単語であるカスタム単語のいずれかであり、
前記場所フィルタリングパラメータは、ユーザに関連付いた第一の場所を含み、
前記フィルタリングステップは、
前記第一の場所に基づいて、カバー半径を決定するステップと、
前記カバー半径および第一の位置に基づいて、カバー範囲を決定するステップと、
前記カバー範囲に含まれる一つ以上の第二の場所に対応する、一つ以上のカスタム場所単語を含むように、フィルタリング後の場所ボキャブラリを生成するステップと、を含む、
請求項１に記載の方法。
【請求項３】
ユーザから音声コマンドを取得する取得ステップと、
前記登録後の場所ボキャブラリに基づいて、前記音声コマンドに含まれるカスタム単語を認識するステップと、
前記カスタム単語を含む前記音声コマンドを送信するステップと、
前記音声コマンドに合致する結果を受信するステップと、をさらに含む、
請求項２に記載の方法。
【請求項４】
前記ユーザに関連付いたナビゲーションデータを取得するステップと、
前記ナビゲーションデータに基づいて、経路情報を取得するステップと、
前記経路情報に関連付いた、一つ以上の道路名称またはランドマークを取得するステップと、
をさらに含み、
前記構築ステップでは、前記一つ以上の道路名称またはランドマークをさらに用いて、前記ユーザに対応する場所ボキャブラリを構築する、
請求項１から３のいずれかに記載の方法。
【請求項５】
前記経路情報に基づいて、一つ以上の立ち寄り地点を取得するステップをさらに含み、
前記構築ステップでは、前記立ち寄り地点をさらに用いて、前記ユーザに対応する場所ボキャブラリを構築する、
請求項４に記載の方法。
【請求項６】
前記ユーザに関連付いたソーシャルネットワークデータを取得するステップをさらに含
み、
前記関心場所取得ステップでは、前記ソーシャルネットワークデータに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
請求項１から５のいずれかに記載の方法。
【請求項７】
前記ユーザに関連付いた検索データを取得するステップをさらに含み、
前記関心場所取得ステップでは、前記検索データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
をさらに含む、
請求項１から６のいずれかに記載の方法。
【請求項８】
前記ユーザに関連付いた連絡先データを取得するステップをさらに含み、
前記関心場所取得ステップでは、前記連絡先データに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
請求項１から７のいずれかに記載の方法。
【請求項９】
前記移動情報は、未来の移動における移動開始時刻を含み、
前記構築ステップは、前記移動開始時刻の到来までに実行される、
請求項１から８のいずれかに記載の方法。
【請求項１０】
音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するために、コンピュータが実行する方法であって、
トリガイベントを検出する検出ステップと、
前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得ステップと、
前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築ステップと、
一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフィルタリングするフィルタリングステップと、
前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
を含む方法。
【請求項１１】
前記ユーザに関連付いたソーシャルグラフデータを取得するステップをさらに含み、
前記構築ステップでは、前記ソーシャルグラフデータにさらに基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する、
請求項１０に記載の方法。
【請求項１２】
前記ユーザに関連付いた位置データを取得する位置情報取得ステップをさらに含み、
前記構築ステップでは、前記位置データにさらに基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する、
請求項１０または１１に記載の方法。
【請求項１３】
前記連絡先フィルタリングパラメータは、前記ユーザに関連付いた連絡先に、前記ユーザがアクセスした頻度または履歴である、
請求項１０から１２のいずれかに記載の方法。
【請求項１４】
音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリ
を生成するために、コンピュータが実行する方法であって、
トリガイベントを検出する検出ステップと、
前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得ステップと、
前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築ステップと、
一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリングステップと、
前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
を含む方法。
【請求項１５】
前記コンテンツデータは、コンテンツを識別する情報、または、コンテンツを入手するためのソースであるコンテンツソースを識別する情報である、
請求項１４に記載の方法。
【請求項１６】
前記コンテンツフィルタリングパラメータは、前記コンテンツまたはコンテンツソースに、前記ユーザがアクセスした頻度または履歴である、
請求項１４または１５に記載の方法。
【請求項１７】
請求項１から１６のいずれかに記載の方法を、コンピュータに実行させるためのプログラム。
【請求項１８】
音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するシステムであって、
トリガイベントを検出する検出手段と、
前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得手段と、
前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築手段と、
一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリング手段と、
前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
を有するシステム。
【請求項１９】
音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するシステムであって、
トリガイベントを検出する検出手段と、
前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得手段と、
前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築手段と、
一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフ
ィルタリングするフィルタリング手段と、
前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
を有するシステム。
【請求項２０】
音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリを生成するシステムであって、
トリガイベントを検出する検出手段と、
前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得手段と、
前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築手段と、
一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリング手段と、
前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音声認識技術に関し、特に、音声認識で用いられる辞書を構築する技術に関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、"CONFIGURING DYNAMIC CUSTOM VOCABULARY FOR PERSONALIZED SPEECH RECOGNITION"と題され、２０１３年１０月１５日に出願された、米国特許出願第１４／０５４
，７６３号の優先権を主張する。該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
（背景技術）
自動音声認識システムに対して音声クエリを入力し、当該音声認識システムから結果を受信する技術が普及している。しかしながら、時として、音声クエリに含まれる用語をシステムが正しく認識できないケースがある。
例えば、音声認識システムは、固有な場所を表す語を解釈できない場合がある。また、ユーザに関連する個人的な意味を持つ用語を認識できない場合もある。
このような場合、システムは、入力した音声クエリと関係のない結果を返す場合があり、あるいは、音声クエリを全く解釈することができない場合がある。
【０００４】
音声認識を行う既存のシステムでは、ユーザが移動を開始しようとしており、その行き先についての情報をクエリしようとしていることを考慮しておらず、また、ユーザの発音を認識する際に、ユーザの連絡先、現在位置、関心地点などの情報を利用していない。
加えて、既存の音声ベースのナビゲーションシステムにおいては、ローカルに保存されたデータを使用することはあっても、ユーザに関連する適切なデータまたは最新のデータを用いることをしていない。
例えば、いくつかのシステムでは、ローカルの連絡先データベースを参照することはできても、ソーシャルネットワーク上の、または、インスタントメッセージングプログラムを経由して、ユーザが交わした会話を取得することはない。
また、これらのシステムは、多くの場合、ユーザの現在位置を考慮しておらず、ユーザの知り合いや、ユーザが関心を持っている地点が、当該現在位置の近傍にある（いる）ことなども考慮していない。
【０００５】
また、一部の音声認識システムでは、動作速度の低下を避けるため、ボキャブラリの最大サイズを設定することができる。しかし、ボキャブラリの大規模なセットが音声認識システムに登録されている場合、音声認識の速度が低下し、また、認識データがノイズによって影響されるおそれがある。したがって、音声認識システムの精度を妥協しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記の問題点を考慮してなされたものであり、音声認識システムのためのパーソナライズされたボキャブラリを構築する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための、本発明の一形態に係る方法は、
音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するた
めに、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
【０００８】
また、本発明の一形態に係る方法は、
音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得ステップと、前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築ステップと、一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
【０００９】
また、本発明の一形態に係る方法は、
音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得ステップと、前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築ステップと、一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
【００１０】
また、本発明は、以上の特徴のうち一つ以上を任意に含む方法であってもよい。
また、これらの形態の一つ以上の他の実装として、方法、システム、装置、コンピュータプログラム、コンピュータ記憶装置上に符号化された方法の実行などが含まれる。
また、これらの実装例は、以下の特徴のうち一つ以上を任意に含んでいてもよい。
例えば、前記場所ボキャブラリに含まれる単語は、特定の対象を指し示す単語である非カスタム単語と、指し示す対象がユーザごとに異なる単語であるカスタム単語のいずれかであり、前記場所フィルタリングパラメータは、ユーザに関連付いた第一の場所を含み、前記フィルタリングステップは、前記第一の場所に基づいて、カバー半径を決定するステップと、前記カバー半径および第一の位置に基づいて、カバー範囲を決定するステップと、前記カバー範囲に含まれる一つ以上の第二の場所に対応する、一つ以上のカスタム場所単語を含むように、フィルタリング後の場所ボキャブラリを生成するステップと、を含むことを特徴としてもよい。
また、ユーザから音声コマンドを取得する取得ステップと、前記登録後の場所ボキャブラリに基づいて、前記音声コマンドに含まれるカスタム単語を認識するステップと、前記カスタム単語を含む前記音声コマンドを送信するステップと、前記音声コマンドに合致する結果を受信するステップと、をさらに含んでいてもよい。
また、前記ユーザに関連付いたナビゲーションデータを取得するステップと、前記ナビ
ゲーションデータに基づいて、経路情報を取得するステップと、前記経路情報に関連付いた、一つ以上の道路名称またはランドマークを取得するステップと、をさらに含み、前記構築ステップでは、前記一つ以上の道路名称またはランドマークをさらに用いて、前記ユーザに対応する場所ボキャブラリを構築することを特徴としてもよい。
また、前記経路情報に基づいて、一つ以上の立ち寄り地点を取得するステップをさらに含み、前記構築ステップでは、前記立ち寄り地点をさらに用いて、前記ユーザに対応する場所ボキャブラリを構築することを特徴としてもよい。
また、前記ユーザに関連付いたソーシャルネットワークデータを取得するステップをさらに含み、前記関心場所取得ステップでは、前記ソーシャルネットワークデータに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記ユーザに関連付いた検索データを取得するステップをさらに含み、前記関心場所取得ステップでは、前記検索データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記ユーザに関連付いた連絡先データを取得するステップをさらに含み、前記関心場所取得ステップでは、前記連絡先データに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記移動状態は、未来の移動における移動開始時刻を含み、前記構築ステップは、前記移動開始時刻の到来までに実行されることを特徴としてもよい。
【００１１】
本明細書によって開示される発明は、特にいくつかの面において有利である。
本技術では、ボキャブラリのサイズを小さくするために、多くの独自な要素を利用して、必要なカスタムボキャブラリのセットのみを適切に決定することができる。また、本技術は、ユーザに対応するカスタムボキャブラリを生成し、音声エンジンに登録することができる。
カスタムボキャブラリを実装することで、音声認識の精度を向上させ、また、パーソナライズされた価値ある経験をユーザに提供することができる。
例えば、本技術によると、現在位置、関心地点、交差点など、一つ以上の既知の場所の近くにある位置についてのデータを含む音声クエリを識別し、解釈することができる。
別の例では、クライアント装置に個人情報を手動で入力せずとも、ユーザは、パーソナライズされた音声コマンドを発話することができ、当該コマンドに適合した結果を取得することができる。
本技術はまた、カスタムボキャブラリのサイズを制限するため、一つ以上のフィルタリングパラメータに基づいてカスタムボキャブラリをフィルタリングすることができる。これにより、システムの音声認識速度の低下を抑制し、高速な音声認識、音声認識精度の向上、ユーザ設定のよりよい学習、パーソナライズされた経験のユーザに対する提供、などを達成することができる。
なお、上記の利点はあくまで例であり、システムは、他の多数の利点および利益を有し得ることを理解されるべきである。
【発明の効果】
【００１２】
本発明によると、音声認識システムのためのパーソナライズされたボキャブラリを構築することができる。
【図面の簡単な説明】
【００１３】
【図１】音声認識におけるカスタムボキャブラリを構築するシステムを例示するブロック図である。
【図２】認識アプリケーションのモジュール構成例である。
【図３Ａ】カスタムボキャブラリを構築する方法のフローチャート例である。
【図３Ｂ】カスタムボキャブラリを構築する方法のフローチャート例である。
【図４Ａ】場所ボキャブラリを構築する方法のフローチャート例である。
【図４Ｂ】場所ボキャブラリを構築する方法のフローチャート例である。
【図４Ｃ】場所ボキャブラリを構築する方法のフローチャート例である。
【図５Ａ】連絡先ボキャブラリを構築する方法のフローチャート例である。
【図５Ｂ】連絡先ボキャブラリを構築する方法のフローチャート例である。
【図５Ｃ】連絡先ボキャブラリを構築する方法のフローチャート例である。
【図６Ａ】コンテンツボキャブラリを構築する方法のフローチャート例である。
【図６Ｂ】コンテンツボキャブラリを構成する方法のフローチャート例である。
【図６Ｃ】コンテンツボキャブラリを構築する方法のフローチャート例である。
【図７】パーソナライズされた音声認識によって検索を行う方法のフローチャート例である。
【図８Ａ】関心場所を決定するためのクラスタリング処理を例示する図である。
【図８Ｂ】関心場所を決定するためのクラスタリング処理を例示する図である。
【図９Ａ】ユーザに対応するカスタムボキャブラリを例示する図である。
【図９Ｂ】場所ボキャブラリをフィルタリングするための処理を例示する図である。
【図９Ｃ】場所ボキャブラリをフィルタリングするための処理を例示する図である。
【図１０Ａ】ユーザに対応するナビゲーションデータを例示する図である。
【図１０Ｂ】パーソナライズされた音声認識の結果を例示する図である。
【図１０Ｃ】パーソナライズされた音声認識の結果を例示する図である。
【図１０Ｄ】パーソナライズされた音声認識の結果を例示する図である。
【図１０Ｅ】パーソナライズされた音声認識の結果を例示する図である。
【図１０Ｆ】パーソナライズされた音声認識の結果を例示する図である。
【発明を実施するための形態】
【００１４】
実施形態は、添付の図面を用いて例示されるが、これに限定されるものではない。図面については、同様の手段については同様の符号を用いて説明する。
本明細書中における、ボキャブラリとは、音声認識システムが利用する辞書であり、カスタムボキャブラリとは、ユーザ個人に対応するボキャブラリである。
本明細書では、ボキャブラリとして、場所に関連したもの、連絡先に関連したもの、ユーザが接触するコンテンツに関連したものの三つを例示する。それぞれを、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリと称する。
また、カスタム単語とは、「自宅」「お父さん」「ニュースアプリ」など、指し示す対象がユーザごとに異なる単語である。本明細書では、カスタム単語として、場所に関連したもの、連絡先に関連したもの、ユーザが接触するコンテンツに関連したものの三つを例示する。それぞれを、カスタム場所単語、カスタム連絡先単語、カスタムコンテンツ単語と称する。
【００１５】
（システム概要）
図１は、ある実施形態における、パーソナライズされた音声認識のためのカスタムボキャブラリを構築するシステム１００のブロック図を例示したものである。
システム１００は、サーバ１０１、クライアント装置１１５、モバイルコンピュータ１３５、検索サーバ１２４、ソーシャルネットワークサーバ１２０、地図サーバ１７０、音声サーバ１６０を含む。システム１００の構成要素は、ネットワーク１０５によって互いに接続されている。
ネットワーク１０５は、既知の有線ネットワークであっても無線ネットワークであってよい。また、その構成は、スター型、トークンリング型やその他の構成を取ることができる。さらにまた、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、公衆ネットワーク、プライベートネットワーク、仮想ネットワーク、または、複数の装置が通信に用いる相互接続されたその他の任意のデータパスであってもよい。さらに別の形態では、ネットワーク１０
５はピアツーピアネットワークであってもよい。ネットワーク１０５は、複数の異なる通信プロトコルでデータ送信するための通信ネットワークと接続されたり、このような通信ネットワークを含んだりしても良い。
ある実施形態では、ネットワーク１０５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークや携帯電話通信ネットワークを含み、ＳＭＳ（ショートメッセージサービス）、ＭＭＳ（マルチメディアメッセージサービス）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、直接データ接続、ＷＡＰ、電子メールなどのデータを送受信する。
なお、図１では１つのネットワーク１０５のみが、サーバ１０１、クライアント装置１１５、モバイルコンピュータ１３５、検索サーバ１２４、ソーシャルネットワークサーバ１２０、地図サーバ１７０、音声サーバ１６０に接続されているが、複数のネットワーク１０５がこれらの構成要素に接続されていてもよい。
【００１６】
一実施形態において、認識アプリケーション１０９ａがサーバ１０１において利用できる。認識アプリケーション１０９ａは、信号線１０４を介してネットワーク１０５に接続される。
サーバ１０１は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、サーバ１０１は、検索サーバ１２４、ソーシャルネットワークサーバ１２０、音声サーバ１６０、クライアント装置１１５、地図サーバ１７０、または、モバイルコンピュータ１３５のうちの一つ以上に対してデータを送受信することができる。
なお、図１では、１台のサーバ１０１を例示するが、システム１００は、複数のサーバ１０１を含んでいてもよい。
【００１７】
一実施形態において、認識アプリケーション１０９ｂは、クライアント装置１１５で実行されてもよい。クライアント装置１１５は、信号線１０８を介してネットワーク１０５に接続される。
一実施形態において、クライアント装置１１５は、サーバ１０１、検索サーバ１２４、ソーシャルネットワークサーバ１２０、音声サーバ１６０、地図サーバ１７０、または、モバイルコンピュータ１３５に対してデータを送受信することができる。
クライアント装置１１５は、メモリとプロセッサを含む、情報処理とネットワーク１０５へのアクセスが可能なコンピュータであり、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、個人情報端末（ＰＤＡ）、モバイル電子メール装置、および、その他の電子機器などである。
ユーザ１２５は、クライアント装置１１５を利用する利用者である。
なお、図１では、１台のクライアント装置１１５を例示するが、システム１００は、複数のクライアント装置１１５を含んでいてもよい。
【００１８】
一実施形態において、認識アプリケーション１０９ｂは、クライアント装置１１５に記録されたシンクライアントアプリケーションの一部として実行されてもよいし、サーバ１０１、ソーシャルネットワークサーバ１２０、音声サーバ１６０、モバイルコンピュータ１３５のうちの一つ以上に記録されたコンポーネントの一部として実行されてもよい。
例えば、サーバ１０１は、ユーザに対応するカスタムボキャブラリを記憶し、ユーザに当該カスタムボキャブラリを提示するユーザインタフェースを提供するためのグラフィックデータを生成することができる。
認識アプリケーション１０９ｂは、クライアント装置１１５に接続された表示装置（不図示）上でユーザインタフェースを提供するために、クライアント装置１１５にインストールされたブラウザ（不図示）に命令を送信することができる。一実施形態において、クライアント装置１１５は、第一のナビゲーションアプリケーション１１７を有していてもよい。第一のナビゲーションアプリケーション１１７は、ユーザにナビゲーション命令を提供するためのコードまたはルーチンを含む。例えば、第一のナビゲーションアプリケー
ション１１７は、ＧＰＳアプリケーションであってもよい。
【００１９】
一実施形態において、認識アプリケーション１０９ｃは、モバイルコンピュータ１３５上で実行されてもよい。モバイルコンピュータ１３５は、信号線１３４を介してネットワーク１０５に接続される。
一実施形態において、モバイルコンピュータ１３５は、サーバ１０１、検索サーバ１２４、ソーシャルネットワークサーバ１２０、音声サーバ１６０、地図サーバ１７０、または、クライアント装置１１５のうちの一つ以上に対してデータを送受信することができる。
モバイルコンピュータ１３５は、メモリとプロセッサを有するコンピュータを含んでもよい。一実施形態において、車両、自動車、バス、生体に埋め込まれた装置、非一時的（non-transitory）なコンピュータ機器（例えば、プロセッサ、メモリ、あるいは非一時的なコンピュータ機器の組み合わせ）を有する他のモバイルシステムなどであってもよい。
一実施形態において、モバイルコンピュータ１３５は、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、または、ネットワーク１０５に接続されたその他のモバイルデバイス等である。
ユーザ１２５は、信号線１５４を介してモバイルコンピュータ１３５と対話する。
例えば、ユーザ１２５は、車両を運転するドライバーや、助手席に乗車している同乗者であってもよい。
なお、図１では、１台のモバイルコンピュータ１３５を例示するが、システム１００は、複数のモバイルコンピュータ１３５を含んでいてもよい。
一実施形態において、モバイルコンピュータ１３５は、第二のナビゲーションアプリケーション１０７を有している。第二のナビゲーションアプリケーション１０７は、ユーザにナビゲーション命令を提供するためのコードまたはルーチンを含む。例えば、第二のナビゲーションアプリケーション１０７は、ＧＰＳアプリケーションであってもよい。
【００２０】
一実施形態において、認識アプリケーション１０９ｄは、ソーシャルネットワークサーバ１２０上で実行されてもよい。ソーシャルネットワークサーバ１２０は、信号線１２１を介してネットワーク１０５に接続される。
ソーシャルネットワークサーバ１２０は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、ソーシャルネットワークサーバ１２０は、ネットワーク１０５を介して、クライアント装置１１５、サーバ１０１、モバイルコンピュータ１３５、検索サーバ１２４、地図サーバ１７０、または、音声サーバ１６０のうちの一つ以上に対してデータを送受信することができる。
ソーシャルネットワークサーバ１２０は、ソーシャルネットワークアプリケーション１２２を含む。
ソーシャルネットワークとは、ユーザが共通の特徴によって結ばれた任意のタイプの社交組織である。共通の特徴とは、友達、家族、同僚、同好などの関係やつながりを含む。一例において、共通の特徴は、明確に定義された関係と、他のオンラインユーザーとの社会的なつながりによって暗黙的に定義された関係を含む。一例において、ソーシャルネットワークにおけるユーザのつながりは、ソーシャルグラフによって表される。ソーシャルグラフとは、ソーシャルネットワークにおけるユーザをマッピングしたものであり、ソーシャルネットワークにおいて、各ユーザがどのように関連しているかを示すものである。
【００２１】
別の例として、ソーシャルネットワークは、システム１００のユーザによるソーシャルグループを記憶し、保持してもよい。ソーシャルグループとは、例えばユーザの同僚、知人、親密な家族や友人、アクティブな家族や友人、古くなったり未使用の連絡先等である。これらのグルーピングは、ソーシャルネットワークによって提供されるＡＰＩ（Application Programming Interface）を通して、当該ソーシャルネットワークから取得するこ
とができる。
例えば、認識アプリケーション１０９は、ユーザにとって最も関連がある、または重要な連絡先を決定し、あまり重要ではない連絡先（例えば、古い連絡先、未使用の連絡先、制限された連絡先、めったに連絡や交流しない知人）をフィルタリングするために、これらのＡＰＩを使用してグルーピングを取得してもよい。
また、ソーシャルネットワークは、当該ＡＰＩを通して、ユーザのコンテンツストリームへのアクセスを提供してもよい。認識アプリケーション１０９は、ユーザに関連するコンテンツストリームに表示される頻度やタイミングに基づいて、連絡先、コンテンツ、場所などが、当該ユーザに関連するかを単独で決定することができる。
また、特定のユーザに対応するコンテンツストリームに含まれる連絡先、コンテンツ、場所などの関連性を判断するため、他の要素を用いてもよい。例えば、当該ユーザがこれらの対象をどの程度好んでいるか、当該対象に関連するコンテキスト情報はあるか、当該対象についての情報を得るために明示的な購読やフォローをしたか、当該対象に関する場所に訪問したか、などといったものが挙げられる。
【００２２】
なお、図１では、ソーシャルネットワークサーバ１２０およびソーシャルネットワークアプリケーション１２２によって提供される一つのソーシャルネットワークを例示したが、システム１００は、他のソーシャルネットワークサーバやソーシャルネットワークアプリケーションによって提供される、複数のソーシャルネットワークを含んでいてもよい。
【００２３】
一実施形態において、認識アプリケーション１０９ｅは、音声サーバ１６０上で実行されてもよい。音声サーバ１６０は、信号線１６３を介してネットワーク１０５に接続される。
音声サーバ１６０は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、音声サーバ１６０は、検索サーバ１２４、ソーシャルネットワークサーバ１２０、サーバ１０１、クライアント装置１１５、地図サーバ１７０、または、モバイルコンピュータ１３５のうちの一つ以上に対してデータを送受信することができる。
なお、図１では、１台の音声サーバ１６０を例示するが、システム１００は、複数の音声サーバ１６０を含んでいてもよい。
【００２４】
認識アプリケーション１０９は、パーソナライズされた音声認識をユーザに提供するためのコードまたはルーチンである。
いくつかの実施形態において、認識アプリケーション１０９は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェア、または、ハードウェアとソフトウェアの組み合わせを用いて実装される。
ある実施形態では、認識アプリケーション１０９は、装置とサーバの両方に分散して格納されてもよいし、装置とサーバのいずれかのみに格納されてもよい。
認識アプリケーション１０９については、図２〜図６Ｂを参照しながら後ほど詳しく説明する。
【００２５】
一実施形態において、音声サーバ１６０は、音声エンジン１６２および音声ライブラリ１６６を含む。音声エンジン１６２は、パーソナライズされた音声認識を用いて検索を制御するためのコードまたはルーチンである。一実施形態において、音声エンジン１６２は、ユーザから音声によるコマンドを取得し、当該音声コマンドに含まれる一つ以上のカスタム単語を認識する。そして、音声エンジン１６２は、検索処理を制御し、取得した音声コマンド（一つ以上のカスタム単語を含む音声コマンド）にマッチする結果を取得し、ユーザに提供する。さらなる実施形態において、音声エンジン１６２は、認識アプリケーション１０９から、一つ以上のカスタム単語を含む音声コマンドを受信する。
音声エンジン１６２は、検索処理を制御し、一つ以上のカスタム単語を含む音声コマン
ドにマッチする結果を取得することができる。なお、音声エンジン１６２は、認識アプリケーション１０９に結果を送信してもよい。音声エンジン１６２については、図７を参照しながらのちほど説明する。
【００２６】
カスタム単語とは、個々のユーザに特化した単語である。例えば、「自宅」というカスタム単語は、当該ユーザに関連付いた自宅の住所を意味し、「ニュースアプリ」というカスタム単語は、当該ユーザにニュースを提供するためのアプリケーションを意味する。また、「お父さん」というカスタム単語は、当該ユーザの父親の連絡先（例えば電話番号、住所、メールアドレス等）を意味する。もちろん、他の例も採用可能である。
【００２７】
カスタムボキャブラリは、ユーザに関連付いた一つ以上のカスタム単語を含むボキャブラリである。例えば、カスタムボキャブラリは、ユーザに関連付いた、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのうちの一つである。
場所ボキャブラリは、一つ以上の、場所を表すカスタム単語（関心地点、ランドマーク、道路名称など）を含むボキャブラリである。
連絡先ボキャブラリは、一つ以上の、連絡先を表すカスタム単語（一つ以上の連絡先など）を含むボキャブラリである。
コンテンツボキャブラリは、一つ以上の、コンテンツを表すカスタム単語（コンテンツソース、コンテンツカテゴリなど）を含むボキャブラリである。
場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリについては、図２および図９Ａを参照しながら後ほど詳しく説明する。
【００２８】
一実施形態において、音声エンジン１６２は、登録アプリケーション１６４を含む。登録アプリケーション１６４は、ユーザに関連付いたカスタムボキャブラリを音声エンジン１６２に登録するためのコードまたはルーチンである。一実施形態において、登録アプリケーション１６４は、ユーザに関連付いた一つ以上のカスタムボキャブラリを表すデータを認識アプリケーション１０９から受信し、当該カスタムボキャブラリを音声エンジン１６２に登録したうえで、音声ライブラリ１６６に格納する。
例えば、登録アプリケーション１６４は、場所ボキャブラリに含まれる関心場所を音声エンジン１６２に登録し、当該関心場所（例えば、関心場所の名称や住所など）を音声ライブラリ１６６に格納する。他の例では、登録アプリケーション１６４は、連絡先ボキャブラリに含まれる連絡先を音声エンジン１６２に登録し、当該連絡先（例えば、連絡先の名称、電話番号、メールアドレス、住所など）を音声ライブラリ１６６に格納する。
【００２９】
一実施形態において、登録アプリケーション１６４は、一つ以上のカスタムボキャブラリを音声エンジン１６２に登録するためのＡＰＩを含む。また、一実施形態において、登録アプリケーション１６４は、新しく登録された、ユーザに関連付いたカスタム単語を用いて、音声ライブラリ１６６に登録されたカスタムボキャブラリを更新する。
【００３０】
音声ライブラリ１６６は、様々なユーザに関連付いた、登録済みの様々なカスタムボキャブラリを格納する手段である。例えば、音声ライブラリ１６６は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを、対応するユーザごとに格納する。一実施形態において、音声ライブラリ１６６は、他のボキャブラリをユーザごとに格納してもよい。また、一実施形態において、音声ライブラリ１６６は、データを記憶し、データへのアクセスを提供するために、ＤＢＭＳ（Database Management System）を用いてもよい。
【００３１】
検索サーバ１２４は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、検索サーバ１２４は、検索クエリを、サーバ１０１、ソーシャルネットワークサーバ１２０、音
声サーバ１６０、クライアント装置１１５、または、モバイルコンピュータ１３５のうちの一つ以上から受信する。
検索サーバ１２４は、検索クエリを用いて検索を実行し、当該検索クエリにマッチする結果を生成する。また、検索サーバ１２４は、生成した結果を、サーバ１０１、ソーシャルネットワークサーバ１２０、音声サーバ１６０、クライアント装置１１５、または、モバイルコンピュータ１３５のうちの一つ以上に対して送信する。
一実施形態において、検索サーバ１２４は、信号線１２３を介してネットワーク１０５に接続される。なお、図１では、１台の検索サーバ１２４を例示するが、システム１００は、複数の検索サーバ１２４を含んでいてもよい。
【００３２】
地図サーバ１７０は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、地図サーバ１７０は、サーバ１０１、ソーシャルネットワークサーバ１２０、音声サーバ１６０、クライアント装置１１５、検索サーバ１２４、または、モバイルコンピュータ１３５のうちの一つ以上に対してデータを送受信することができる。
例えば、地図サーバ１７０は、地図データを、認識アプリケーション１０９、第一のナビゲーションアプリケーション１１７、第二のナビゲーションアプリケーション１０７のうちの一つ以上に送信することができる。
地図サーバ１７０は、信号線１７１を介してネットワーク１０５に接続される。
なお、一実施形態において、地図サーバ１７０は、関心地点（Point of Interest、以
下ＰＯＩ）データベース１７２や、地図データベース１７４を含んでいてもよい。
【００３３】
ＰＯＩデータベース１７２は、地域ごとにおける関心地点を記憶する手段である。例えば、ＰＯＩデータベース１７２は、一つ以上の地域における、観光スポット、ホテル、レストラン、ガソリンスタンド、ランドマーク等についてのデータを記憶する手段である。一実施形態において、ＰＯＩデータベース１７２は、データを記憶し、データへのアクセスを提供するために、ＤＢＭＳを用いてもよい。
また、地図データベース１７４は、一つ以上の地域における地図データを記憶する手段である。一実施形態において、地図データベース１７４は、データを記憶し、データへのアクセスを提供するために、ＤＢＭＳを用いてもよい。
【００３４】
（認識アプリケーション）
図２を参照して、認識アプリケーション１０９の詳細について説明する。図２は、一実施形態における、認識アプリケーション１０９、プロセッサ２３５、メモリ２３７、通信部２４１、入出力部２４３、記憶装置２４５を含むコンピュータ２００のブロック図である。コンピュータ２００が有する構成要素は、バス２２０によって互いに接続されている。
入出力部２４３は、信号線２３０によってバス２２０に接続される。様々な実施形態において、コンピュータ２００は、サーバ１０１、クライアント装置１１５、モバイルコンピュータ１３５、ソーシャルネットワークサーバ１２０、音声サーバ１６０のうちのいずれかである。
【００３５】
プロセッサ２３５は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行して表示装置に表示信号を提供する他のプロセッサアレイのような、一つ以上の処理ユニットを含む。プロセッサ２３５は、他のコンポーネントと通信を行えるよう、信号線２２２によってバス２２０に接続される。
プロセッサ２３５は、データ信号を処理し、そのアーキテクチャは、ＣＩＳＣ（Complex Instruction Set Computer）、ＲＩＳＣ（Reduced Instruction Set Computer）、これら両方の命令セットの組合せとして実装されたアーキテクチャなど様々なアーキテクチャでありうる。なお、図２には一つのプロセッサ２３５だけが示されているが、複数のプロ
セッサ２３５が含まれていてもよい。上記以外のプロセッサ、オペレーティングシステム、センサ、表示装置、あるいは物理的構成も採用可能である。
【００３６】
メモリ２３７は、プロセッサ２３５が実行可能な命令やデータを格納する手段であり、一つ以上のコンピュータによって読み取り可能な非一時的記憶媒体を含む。メモリ２３７は、他のコンポーネントと通信を行えるよう、信号線２２２によってバス２２０に接続される。メモリ２３７に格納される命令やデータは、本明細書に示す技術を実行するためのコードを含む。
メモリ２３７は、ＤＲＡＭ、ＳＲＡＭ、組み込み型メモリ、フラッシュメモリやその他の既存のメモリ装置である。ある実施形態においては、メモリ２３７は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的（non-volatile）メモリや永久記憶装置を含んでも良い。
【００３７】
一実施形態において、通信部２４１は、信号線２２６によってバス２２０に接続される。通信部２４１は、サーバ１０１、移動プラットフォーム１３５、クライアント装置１１５、音声サーバ１６０、検索サーバ１２４、地図サーバ１７０、ソーシャルネットワークサーバ１２０のうちの一つ以上に対してデータの送受信を行う。その通信先は、認識アプリケーション１０９が格納されている場所によって異なる。
いくつかの実施形態において、通信部２４１は、ネットワーク１０５や他の通信チャネルへの直接的な物理的接続のためのポートやネットワークインタフェースを含む。例えば、通信部２４１は、ＵＳＢ、ＳＤ、ＣＡＴ−５など、クライアント装置１１５と有線通信するためのポートを含む。
ある実施形態では、通信部２４１は、ＩＥＥＥ  ８０２．１１、ＩＥＥＥ  ８０２．１６、ＢｌｕｅＴｏｏｔｈ（登録商標）、ＤＳＲＣ（Dedicated Short-Range Communication）または他の適当な無線通信方式を含む一つまたは複数の無線通信方式を用いて、クラ
イアント装置１１５や他の通信チャネルとデータを交換するための無線送受信部を含む。
【００３８】
一実施形態において、通信部２４１は、ＳＭＳ（ショートメッセージサービス）、ＭＭＳ（マルチメディアメッセージサービス）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、直接データ接続、ＷＡＰ、電子メールやその他の適切な電子通信方式により、携帯電話通信網上でデータを送受信するためのセルラ通信トランシーバを含む。ある実施形態では、通信部２４１は、有線ポートと無線送受信機を含む。通信部２４１は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＭＴＰなどの標準的なネットワークプロトコルを用いてファイルやメディアオブジェクトを配布するために、ネットワーク１０５への従来型の接続を提供する。
【００３９】
記憶装置２４５は、本明細書に記載される構造、処理、または機能を提供するためのデータを格納する非一時的（non-transitory）な記憶媒体である。一実施形態において、記憶装置２４５は、データを格納し、データへのアクセスを提供するデータベース管理システム（ＤＢＭＳ）を含んでいてもよい。
記憶装置２４５は、ＤＲＡＭ、ＳＲＡＭ、組み込み型メモリ、フラッシュメモリやその他の既存のメモリ装置である。ある実施形態においては、記憶装置２４５は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的（non-volatile）メモリや永久記憶装置を含んでも良い。
【００４０】
一実施形態において、記憶装置２４５は、信号線２２８によってバス２２０に接続され
る。また、一実施形態において、記憶装置２４５には、ユーザに関連付いた、ソーシャルネットワークデータ、検索データ、ナビゲーションデータ、関心場所、ランドマーク、道路名称、一つ以上のフィルタリングパラメータ（場所、コンテンツ、連絡先をフィルタリングするためのパラメータ）、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのうちの一つ以上が格納される。
記憶装置２４５に格納されるデータについては、のちほど詳しく説明する。一実施形態において、記憶装置２４５は、本明細書に記載される構造、処理、または機能を提供するためのデータを格納する。
【００４１】
一実施形態において、認識アプリケーション１０９は、制御モジュール２０２、移動状態モジュール２０３、場所モジュール２０４、連絡先モジュール２０６、コンテンツモジュール２０７、登録モジュール２０８、音声モジュール２１０、提供モジュール２１２、ＵＩモジュール２１４、フィルタモジュール２１６を含む。認識アプリケーション１０９に含まれるこれらの各コンポーネントは、バス２２０によって接続される。
【００４２】
制御モジュール２０２は、認識アプリケーション１０９と、コンピュータ２００の他のコンポーネントとの通信を制御するルーチンを含むソフトウェアである。
一実施形態において、制御モジュール２０２は、認識アプリケーション１０９と、コンピュータ２００の他のコンポーネントとの通信を制御するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、制御モジュール２０２は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、制御モジュール２０２は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００４３】
制御モジュール２０２は、通信部２４１を介して、クライアント装置１１５、ソーシャルネットワークサーバ１２０、サーバ１０１、音声サーバ１６０、地図サーバ１７０、モバイルコンピュータ１３５のうちの一つ以上に対してデータを送受信することができる。その通信先は、認識アプリケーション１０９が格納されている場所によって異なる。
例えば、制御モジュール２０２は、通信部２４１を介して、ソーシャルネットワークサーバ１２０からソーシャルネットワークデータを受信し、当該ソーシャルネットワークデータを場所モジュール２０４やコンテンツモジュール２０７に送信することができる。他の例では、制御モジュール２０２は、ＵＩモジュール２１４から、ユーザにユーザインタフェースを提供するためのグラフィックデータを受信し、当該グラフィックデータをクライアント装置１１５やモバイルコンピュータ１３５に送信し、ユーザインタフェースをユーザに提供させることができる。
【００４４】
一実施形態において、制御モジュール２０２は、認識アプリケーション１０９の他のコンポーネントからデータを受信し、当該データを記憶装置２４５に格納することができる。例えば、制御モジュール２０２は、ＵＩモジュール２１４からグラフィックデータを受信し、当該グラフィックデータを記憶装置２４５に格納することができる。一実施形態において、制御モジュール２０２は、記憶装置２４５からデータを取得し、当該データを、認識アプリケーション１０９の他のコンポーネントに送信することができる。例えば、制御モジュール２０２は、ユーザに関連付いた場所ボキャブラリを記憶装置２４５から取得し、当該ボキャブラリを登録モジュール２０８に送信することができる。
【００４５】
移動状態モジュール２０３は、ユーザに関連付いた移動状態を取得するルーチンを含むソフトウェアである。一実施形態において、移動状態モジュール２０３は、ユーザに関連付いた移動状態を取得するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、移動状態モジュール２０３は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、移動状態モジュール２０３は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００４６】
移動状態とは、移動の状態や具体的な内容である。例えば、もし、「移動」が、未来のものである場合、移動状態は、当該未来の移動に関連付いた、出発時刻、出発地、目的地、所要時間、移動経路、一人以上の同乗者（例えば、自動車に乗せている子供）などである。他の例では、もし、「移動」が、現在ユーザが行っている最中の移動である場合、移動状態は、当該現在の移動に関連付いた、出発時刻、出発地、目的地、所要時間、移動経路、当該経路中における現在位置、出発からの経過時間、到着までの残り時間、一人以上の同乗者などである。
【００４７】
一実施形態において、移動状態モジュール２０３は、準備トリガイベントを登録モジュール２０８から取得し、当該準備トリガイベントに基づいて、移動状態を取得する。準備トリガイベントとは、例えば、「ユーザが車両にキーを挿入した」「無線キーがＯＮになった」「キーフォブ認証のハンドシェイクが開始された」「クライアント装置１１５上のアプリケーションを通して、ユーザが車両をリモートコントロールした」「ユーザが車両に向かって歩いてくる」といったイベントである。移動状態モジュール２０３は、このような準備トリガイベントに基づいて、移動が開始されることを検出し、移動状態を生成する。準備トリガイベントについては、後ほど詳しく説明する。
【００４８】
一実施形態において、移動状態モジュール２０３は、準備トリガイベントに応じて、ソーシャルネットワークサーバ１２０やユーザプロファイルサーバ（不図示）から、ユーザに関連付いたユーザプロファイルデータを取得することができる。ユーザプロファイルデータは、ユーザに関連付いたプロファイルを含むデータである。例えば、ユーザプロファイルデータは、ユーザの個人的な予定を記したカレンダデータ、ＴＯＤＯリストデータ、ユーザが好むイベント（例えばスポーツゲームやコンサート等のリスト）を集めたイベントデータ、ユーザの興味・身体的属性・投稿・好み・苦手・口コミ・友人等を表すソーシャルネットワークプロファイルデータ、あるいは、ユーザに関連付いた統計データなどである。移動状態モジュール２０３は、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルネットワークデータを取得することができる。
【００４９】
移動状態モジュール２０３は、準備トリガイベントに応じて、ユーザが所有するモバイルコンピュータ１３５から、モバイルコンピュータデータを取得することができる。モバイルコンピュータデータは、準備データ、モバイルコンピュータ１３５の位置を表す位置データ、同期された現在時刻、現在の季節を表す季節データ、天候を表す天候データ、モバイルコンピュータ１３５に関連付いた利用状況データなどである。一実施形態において、モバイルコンピュータ１３５は、車両や、車両データを含むモバイルコンピュータデータを含む。車両データとは、車両の充電設定データ、車両の空調設定データ、車両の現在位置を表す位置データ、同期された現在時刻、車両の走行状態（例えば、移動や機械的状態の変化）を表すデータを含んだ、車両に関連付いたセンサデータ、車両の利用状態（例えば、出発時刻、到着時刻、所要時間、移動経路、出発地、目的地などを含む、現在または過去の移動状態）を表す車両利用状態データなどであるが、これらに限られない。
【００５０】
一実施形態において、移動状態モジュール２０３は、ユーザプロファイルデータ、モバイルコンピュータデータ、ソーシャルネットワークデータに基づいて、ユーザに関連付いた移動状態を取得する。また、一実施形態において、移動状態モジュール２０３は、ソーシャルネットワークデータ、ユーザプロファイルデータ、車両データに少なくとも部分的に基づいて、出発時刻、出発地、目的地などからなる未来の移動状態を取得する。
例えば、もし車両データが、平日の午前８時にユーザが自宅から勤務先に向けて移動していることを示す履歴を含んでいる場合、移動状態モジュール２０３は、当該履歴に基づいて、未来の移動における出発時刻を、平日の午前８時と予測する。また、他の例では、もしユーザプロファイルデータが、「翌日の朝８時半に会議がある」というカレンダデータを含んでおり、車両データが、自宅から勤務先までの所要時間は３０分以下という経路データを含んでいた場合、移動状態モジュール２０３は、未来の移動における出発時刻を、午前８時前（例えば午前７時半）と予測する。
【００５１】
一実施形態において、移動状態モジュール２０３は、ユーザの車両に搭載されたＧＰＳアプリケーションから受信したナビゲーションデータに少なくとも部分的に基づいて、ユーザが現在行っている移動の状態を取得する。一例において、ナビゲーションデータは、クライアント装置１１５（例えば携帯電話やＧＰＳ装置など）から取得することができる。例えば、移動状態モジュール２０３は、ナビゲーションデータに基づいて、移動経路におけるユーザの現在位置、目的地までの時間、出発からの経過時間等を取得する。
【００５２】
一実施形態において、移動状態モジュール２０３は、移動状態（現在の移動状態や未来の移動状態など）を場所モジュール２０４、連絡先モジュール２０６、コンテンツモジュール２０７、登録モジュール２０８、フィルタモジュール２１６のうちの一つ以上に送信する。さらなる実施形態において、移動状態モジュール２０３は、移動状態を記憶装置２４５に格納する。
【００５３】
場所モジュール２０４は、ユーザに関連付いた場所ボキャブラリを生成するためのルーチンを含むソフトウェアである。一実施形態において、場所モジュール２０４は、ユーザに関連付いた場所ボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、場所モジュール２０４は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、場所モジュール２０４は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００５４】
場所ボキャブラリは、ユーザに関連付いた場所データを含むカスタムボキャブラリである。例えば、場所ボキャブラリは、ユーザの移動経路に関連する一つ以上の関心場所、一つ以上のランドマーク、一つ以上の道路名称を含む。
場所ボキャブラリの例を図９Ａに示す。一例において、関心場所またはランドマークは、関心地点とも呼ばれる。場所ボキャブラリは、関心地点の他の例を含んでいてもよい。
【００５５】
関心場所とは、ユーザが関心を寄せる場所である。関心場所とは、例えば、移動の目的地、移動経路上の立ち寄り地点、自宅の住所、勤務先の場所、ジムの住所、かかりつけ病院の住所、チェックイン場所（ソーシャルネットワークにおいてチェックインされたレストランや店など）、投稿された画像にタグ付けされた場所、ユーザによって推薦または共有された場所、ユーザによって検索された場所などであるが、これらに限られない。他の例も採用可能である。立ち寄り地点とは、ユーザが移動中に止まる地点である。立ち寄り地点とは、例えば、コーヒーショップ、銀行、ガソリンスタンド、クリーニング店、同乗者を乗降させる場所などである。他の例も採用可能である。
【００５６】
一実施形態において、場所モジュール２０４は、ユーザに関連付いたソーシャルネットワークデータを、ソーシャルネットワークサーバ１２０から（例えばユーザの同意を得て）取得する。ソーシャルネットワークデータは、ソーシャルネットワークにおいてユーザが行った一つ以上のソーシャル活動を表すデータである。例えば、ソーシャルネットワークデータは、ユーザが、クライアント装置１１５やモバイルコンピュータ１３５を用いて
チェックインした一つ以上の場所を表す。他の例では、ソーシャルネットワークデータは、ユーザによって行われた投稿、シェア、コメント、推薦などを表す。別の例では、ソーシャルネットワークデータは、ユーザに関連付いた“繋がり”（例えば、友達、家族、知人などのリスト）を表すソーシャルグラフデータを含む。なお、ソーシャルネットワークデータは、ユーザに関連付いた他のデータを含んでいてもよい。
場所モジュール２０４は、ユーザのソーシャルネットワークデータに基づいて、ユーザに関連付いた一つ以上の関心場所を決定する。例えば、場所モジュール２０４は、ユーザのソーシャルネットワークデータを解析して、次のような一つ以上の関心場所を決定する。
（１）ユーザによってチェックインされた場所
（２）ユーザやユーザの知人によって投稿された一つ以上の内容や画像にタグ付けされた場所
（３）ユーザやユーザの知人によって推薦またはシェアされた場所
（４）ユーザの投稿やコメント中で言及された場所
一実施形態において、場所モジュール２０４は、タグ付け、推薦、シェアなどによってユーザが関心場所を明示していなくても、一つ以上の関心場所を、ユーザのソーシャルネットワークデータから黙示的に推定する。例えば、ユーザのソーシャルネットワークデータが、当該ユーザが油絵に関心を持っていることを示している場合、場所モジュール２０４は、街にある一つ以上の美術館やギャラリーを当該ユーザの一つ以上の関心場所として推定する。
【００５７】
一実施形態において、場所モジュール２０４は、ソーシャルネットワークデータに含まれる位置データにさらに基づいて、一つ以上の関心場所を決定する。位置データとは、例えば、ユーザに関連付いた場所や住所を表すデータ（ユーザによって推薦された場所や住所など）である。一実施形態において、場所モジュール２０４は、ソーシャル検索履歴（ソーシャルネットワークにおいて行われた検索クエリ）を取得し、当該ユーザの検索データに基づいて、一つ以上の関心場所を決定する。
例えば、検索データが、ユーザがソーシャルネットワークにおいて最も有名なレストランを検索したことを示している場合、場所モジュール２０４は、当該ユーザが検索したレストランを、一つ以上の関心場所として決定する。
【００５８】
一実施形態において、場所モジュール２０４は、ユーザに関連付いた連絡先データを取得し、当該連絡先データに含まれる位置データに基づいて、一つ以上の関心場所を決定する。例えば、連絡先データは、ユーザの連絡先の一つ以上の住所を表すデータであり、場所モジュール２０４は、当該一つ以上の連絡先の住所を、一つ以上の関心場所として決定する。
一実施形態において、場所モジュール２０４は、ユーザの連絡先の検索履歴を表すデータを取得し、当該検索データに基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール２０４は、ユーザが１時間以内に検索した一つ以上の連絡先の住所に基づいて、一つ以上の関心場所を決定する。
【００５９】
一実施形態において、場所モジュール２０４は、ユーザに関連付いた検索データを、検索サーバ１２４から（例えばユーザの同意を得て）取得する。検索データとは、ユーザに関連付いた一つ以上の検索クエリを含む検索履歴である。例えば、検索データは、ユーザがオンラインで検索した一つ以上のレストラン、一つ以上の目的地、一つ以上の観光スポットなどを表す。さらなる実施形態において、場所モジュール２０４は、クライアント装置１１５やモバイルコンピュータ１３５にインストールされた不図示のブラウザから検索データを取得する。他の実施形態において、場所モジュール２０４は、検索データから、ユーザに関連付いた一つ以上の関心場所を決定する。例えば、場所モジュール２０４は、ユーザが検索した一つ以上の場所を、一つ以上の関心場所として決定する。
【００６０】
一実施形態において、場所モジュール２０４は、ユーザに関連付いたナビゲーションデータを、モバイルコンピュータ１３５やクライアント装置１１５から取得する。例えば、場所モジュール２０４は、ナビゲーションデータを、第二のナビゲーションアプリケーション１０７（例えば車載ナビゲーションシステム）から取得する。他の例において、場所モジュール２０４は、ナビゲーションデータ（例えば走行中に更新されるＧＰＳデータ）を、第一のナビゲーションアプリケーション１１７（例えばクライアント装置１１５にインストールされたＧＰＳアプリケーション）から取得する。ナビゲーションデータとは、ユーザによって行われる一つ以上の移動（例えば、過去にユーザが行った移動、現在ユーザによって行われている移動、計画された未来の移動等）を表すデータである。例えば、ナビゲーションデータは、一つ以上の移動に関連付いた出発地、目的地、所要時間、移動経路、出発時刻、到着時刻等のうちの一つ以上を含む。他の例において、ナビゲーションデータは、ユーザに関連付いたＧＰＳログやＧＰＳトレースを含む。
一実施形態において、場所モジュール２０４は、ナビゲーションデータに基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール２０４は、ナビゲーションデータから得た目的地のリストを、一つ以上の関心場所として決定する。他の例において、ナビゲーションデータは、ユーザがたびたび訪れている様々な場所（例えばレストラン等）を示す、ユーザのモバイル端末に関連付いたジオロケーションデータを含んでもよい。ユーザが、ソーシャルネットワークで明示的にチェックインしていない場合であっても、位置情報のこのような利用についてのユーザの同意があれば、場所モジュール２０４は、これらの場所を関心場所として決定することができる。
【００６１】
一実施形態において、場所モジュール２０４は、ナビゲーションデータを処理し、移動経路を取得、または、当該移動経路に関連付いた立ち寄り地点を取得する。例えば、場所モジュール２０４は、ナビゲーションデータに含まれるＧＰＳログを処理し、ユーザの移動経路を取得する。さらなる例では、場所モジュール２０４は、モバイルコンピュータ１３５やクライアント装置１１５に接続された一つ以上のセンサ（不図示）からセンサデータを取得する。
場所モジュール２０４は、センサデータやナビゲーションデータに基づいて、移動経路における立ち寄り地点を取得する。例えば、場所モジュール２０４は、速度が０であることを示す一つ以上の速度データ、現在位置と現在日時を示すＧＰＳデータ、車両のエンジンの稼働状態を示すエンジンデータ、一つ以上のセンサから取得したサイドブレーキ状態を示すデータ等を取得し、現在位置を立ち寄り地点であると判定する。
一実施形態において、場所モジュール２０４は、移動経路または一つ以上の立ち寄り地点に基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール２０４は、図８Ａや図８Ｂに示したようなクラスタリング処理によって、一つ以上の関心場所を決定する。
【００６２】
一実施形態において、場所モジュール２０４は、移動経路または立ち寄り地点に関連付いた一つ以上のランドマークを決定する。例えば、場所モジュール２０４は、移動経路または一つ以上の立ち寄り地点から所定の距離以内にあるランドマークのリストを、ＰＯＩデータベース１７２に対してクエリする。一実施形態において、場所モジュール２０４は、地図データベース１７４から、移動経路や一つ以上の立ち寄り地点に関連付いた地図データを取得する。また、場所モジュール２０４は、地図データに基づいて、移動経路や一つ以上の立ち寄り地点に関連付いた一つ以上の道路名称を取得する。例えば、場所モジュール２０４は、移動経路の一部を構成する一つ以上の第一の道路の名称と、移動経路と交差する一つ以上の第二の道路の名称を取得する。他の例では、場所モジュール２０４は、一つ以上の立ち寄り地点に向かう一つ以上の道路の名称を取得する。
【００６３】
一実施形態において、場所モジュール２０４は、ソーシャルネットワークデータ、検索
データ、ナビゲーションデータのうち一つ以上から生成された関心場所を集約する。また、場所モジュール２０４は、集約した関心場所、一つ以上のランドマーク、一つ以上の道路名称を記憶装置２４５に格納する。一実施形態において、場所モジュール２０４は、集約された関心場所、ランドマーク、道路名称を用いて、ユーザに関連付いた場所ボキャブラリを生成する。例えば、場所モジュール２０４は、関心場所、ランドマーク、道路名称を用いて、ユーザに関連付いた場所ボキャブラリを構築する。場所ボキャブラリは、例えば、道路、交差点、他の場所など、ユーザが知っている所定の場所や、近傍にあるアイテムなどを含む。
一実施形態において、場所モジュール２０４は、関連付いたナビゲーションデータに基づいて、場所ボキャブラリに含まれる各カスタム場所を訪問する頻度や、訪問履歴などを取得する。例えば、場所モジュール２０４は、各関心場所、ランドマーク、道路を訪問した回数や、ユーザが最後に訪問した際の日時を取得する。
【００６４】
一実施形態において、場所モジュール２０４は、ユーザに関連付いた移動状態に基づいて、一つ以上の関心場所を決定する。例えば、移動が未来の移動であり、当該移動の状態が、目的地と、当該目的地に至る経路を含んでいた場合、場所モジュール２０４は、当該経路上の一つ以上の関心地点、当該経路に含まれる道路の名称、目的地周辺のランドマーク等を、一つ以上の関心場所として決定する。他の例では、移動が現在の移動であり、その状態が、移動経路上のユーザの現在位置を含んでいた場合、場所モジュール２０４は、ユーザの現在位置周辺にある一つ以上のランドマーク、道路等を、一つ以上の関心場所として決定する。これは、場所モジュール２０４が、ユーザが興味を持って見たり選択したりするであろう関心場所を予測的に提供できるという点において有益である。
【００６５】
場所モジュール２０４は、一つ以上の関心場所を用いて場所ボキャブラリを構成し、また、移動状態のアップデートに基づいて、一つ以上の関心場所や場所ボキャブラリをアップデートする。例えば、ユーザが移動経路に沿って移動中に、場所モジュール２０４は、更新された移動状態に基づいて、近傍にある一つ以上の関心場所や場所ボキャブラリを、リアルタイムで最新のものに更新する。このようにすることで、ユーザにとって最も関連する関心場所を最新にし、連続して提供することができる。
【００６６】
一実施形態において、場所モジュール２０４は、登録モジュール２０８から、準備トリガイベントを受信し、当該準備トリガイベントに応答して、一つ以上の関心場所や場所ボキャブラリを生成ないし更新する。例えば、場所モジュール２０４は、準備トリガイベントに応答して、出発時刻前または出発時刻に、一つ以上の関心場所や場所ボキャブラリを生成ないし更新する。このようにすることで、システム１００は、移動時において、最新の関心場所についての情報をユーザに提供することができる。
【００６７】
一実施形態において、場所モジュール２０４は、ユーザに関連付いた場所ボキャブラリをフィルタモジュール２１６に送信する。さらなる実施形態において、場所モジュール２０４は、場所ボキャブラリを記憶装置２４５に格納する。
【００６８】
連絡先モジュール２０６は、ユーザに関連付いた連絡先ボキャブラリを生成するルーチンを含むソフトウェアである。一実施形態において、連絡先モジュール２０６は、ユーザに関連付いた連絡先ボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、連絡先モジュール２０６は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、連絡先モジュール２０６は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００６９】
一実施形態において、連絡先モジュール２０６は、モバイルコンピュータ１３５やクライアント装置１１５に格納されたユーザの連絡帳から、連絡先データを取得する。連絡先データは、ユーザに関連付いた一つ以上の連絡先を表すデータである。例えば、連絡先データは、連絡先として登録された人物の名前、電話番号、メールアドレス等を含む。さらなる実施形態において、連絡先モジュール２０６は、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルグラフデータを受信する。ソーシャルグラフデータは、例えば、ユーザに関する「つながり」である、一人以上の家族、友人、同僚、知人などを表す。
【００７０】
連絡先モジュール２０６は、連絡先データおよびソーシャルグラフデータを用いて、ユーザに関連付いた連絡先ボキャブラリを生成する。例えば、連絡先モジュール２０６は、連絡先データに含まれる連絡先のリストや、ソーシャルグラフに含まれる知り合い（すなわちユーザにつながっている人）のリストを用いて、ユーザに関連付いた連絡先ボキャブラリを構築する。連絡先ボキャブラリは、ユーザに関連付いた一つ以上の連絡先と、当該連絡先についての情報（住所、電話番号、現在位置、Ｅメールアドレス等）を含むカスタムボキャブラリである。例えば、連絡先ボキャブラリは、住所録から取得した一つ以上の連絡先や、ソーシャルネットワークから取得した一人以上の友人や、つながりのある他のユーザなどを含む。連絡先ボキャブラリの例を、図９Ａに示す。
一実施形態において、連絡先モジュール２０６は、連絡先ボキャブラリに含まれるカスタム連絡先によって表される各連絡先にインタラクションを行った頻度や履歴を取得する。例えば、連絡先モジュール２０６は、連絡先ボキャブラリに含まれる各連絡先にインタラクションを行った回数や、ユーザが最後にインタラクションを行った際の日時を取得する。
【００７１】
一実施形態において、連絡先モジュール２０６は、ユーザに関連した移動状態に基づいて、一つ以上の連絡先を決定する。例えば、移動状態が、「夕方に友人とミーティングをするためにレストランに移動する」ことを示していた場合、連絡先モジュール２０６は、当該移動の出発時刻前または出発時刻に、当該友人に関連付いた連絡先を用いて連絡先ボキャブラリを構築する。
【００７２】
一実施形態において、連絡先モジュール２０６は、登録モジュール２０８から準備トリガイベントを受信し、当該準備トリガイベントに応答して、場所ボキャブラリを生成ないし更新する。例えば、連絡先モジュール２０６は、準備トリガイベントに応答して、出発時刻前または出発時刻に、連絡先ボキャブラリを生成ないし更新する。
【００７３】
一実施形態において、連絡先モジュール２０６は、ユーザに関連した位置データを受信し、当該位置データに関連付いた連絡先情報に基づいて、連絡先ボキャブラリを構築する。例えば、位置データは、レストラン、コーヒーショップ、店舗など、ユーザが以前訪れたことがある場所を表す。連絡先モジュール２０６は、これらの場所に関連付いた連絡先情報を用いて連絡先ボキャブラリを構築する。
【００７４】
一実施形態において、連絡先モジュール２０６は、ユーザに関連付いた連絡先ボキャブラリをフィルタモジュール２１６に送信する。さらなる実施形態において、連絡先モジュール２０６は連絡先ボキャブラリを記憶装置２４５に格納する。
【００７５】
コンテンツモジュール２０７は、ユーザに関連付いたコンテンツボキャブラリを生成するルーチンを含むソフトウェアである。一実施形態において、コンテンツモジュール２０７は、ユーザに関連付いたコンテンツボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、コンテンツモジュール２０７は、コンピュータ２００のメモリ２
３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、コンテンツモジュール２０７は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００７６】
一実施形態において、コンテンツモジュール２０７は、モバイルコンピュータ１３５やクライアント装置１１５から、一つ以上のコンテンツアイテムを表すコンテンツデータを取得する。例えば、コンテンツモジュール２０７は、モバイルコンピュータ１３５やクライアント装置１１５で再生された音楽やビデオを表すコンテンツデータを取得する。コンテンツアイテムとは、例えば、曲、ニュース項目、ビデオクリップ、オーディオクリップ、映画、ラジオトークショー、写真、画像、交通情報、天気予報などであるが、これらに限られない。
【００７７】
一実施形態において、コンテンツモジュール２０７は、一つ以上のコンテンツアイテムをユーザに提供するためのコンテンツソースを表すデータを取得する。コンテンツソースとは、例えば、ラジオ局、オーディオストリームをユーザに提供する音楽アプリケーション、ニュースストリームをユーザに提供するニュースアプリケーション、ソーシャルストリームをユーザに提供するソーシャルアプリケーション、他のコンテンツをユーザに提供する他のアプリケーションなどであるが、これらに限られない。
【００７８】
一実施形態において、コンテンツモジュール２０７は、一つ以上のコンテンツアイテムまたはコンテンツソースに関連付いた、一つ以上のコンテンツカテゴリを示すデータを取得する。コンテンツカテゴリとは、例えば、音楽のジャンル（ロック、ジャズ、ポップス等）、ニュースのカテゴリ（国際、地域、国内等）、移動情報に関連したコンテンツカテゴリ（交通情報、道路工事情報、天気予報等）、ソーシャルアップデートに関連するソーシャルカテゴリ（友人、家族による更新等）、エンタテイメントコンテンツカテゴリ（音楽、テレビショー、映画、アニメ、コメディ等）などであるが、これらに限られない。
【００７９】
コンテンツモジュール２０７は、コンテンツデータ、一つ以上のコンテンツソース、一つ以上のコンテンツカテゴリを用いて、ユーザに関連付いたコンテンツボキャブラリを生成する。例えば、コンテンツモジュール２０７は、コンテンツアイテム、コンテンツソース、コンテンツカテゴリのリストを用いて、ユーザに関連付いたコンテンツボキャブラリを構築する。コンテンツボキャブラリは、コンテンツアイテムに関連する一つ以上のカスタム単語を含むカスタムボキャブラリである。例えば、コンテンツボキャブラリは、一つ以上のコンテンツソース（コンテンツアイテムをユーザに提供したアプリケーションや、ラジオ局等）、ユーザによって再生された一つ以上のコンテンツアイテム、一つ以上のコンテンツカテゴリ等を含む。コンテンツボキャブラリの例を、図９Ａに示す。
【００８０】
一実施形態において、コンテンツモジュール２０７は、以下を取得する。
（１）コンテンツボキャブラリに含まれるカスタムコンテンツアイテムに対してインタラクションを行った頻度
（２）アイテムに対して最後にインタラクションを行った日時
例えば、コンテンツモジュール２０７は、コンテンツアイテム（曲やビデオ等）が再生されたトータル回数、最後にコンテンツアイテムが再生された日時、所定の期間内にコンテンツアイテムが再生された回数、Ｐａｎｄｏｒａ（登録商標）やＳｐｏｔｉｆｙ（登録商標）のようなインターネットメディアサービスを用いて、コンテンツアイテムの再生中に当該アイテムに対して付けられた評価、アプリケーション（例えばラジオ）が開かれた回数、最後にアプリケーションが開かれた日時などを取得する。
【００８１】
一実施形態において、コンテンツモジュール２０７は、ユーザに関連付いた移動状態に基づいて、コンテンツボキャブラリを構築する。例えば、移動状態が、コンベンションセ
ンターで開かれる会議に参加するための移動であることを示している場合、コンテンツモジュール２０７は、当該会議に関連するニュースアイテムや出版データ等をコンテンツボキャブラリに追加する。
【００８２】
一実施形態において、コンテンツモジュール２０７は、登録モジュール２０８から準備トリガイベントを受信し、当該準備トリガイベントに応答して、コンテンツボキャブラリを生成または更新する。例えば、コンテンツモジュール２０７は、準備トリガイベントに応答して、出発時刻前または出発時刻に、コンテンツボキャブラリを生成ないし更新する。
【００８３】
一実施形態において、コンテンツモジュール２０７は、ユーザに関連付いたコンテンツボキャブラリをフィルタモジュール２１６に送信する。さらなる実施形態において、コンテンツモジュール２０７は、コンテンツボキャブラリを記憶装置２４５に格納する。
【００８４】
登録モジュール２０８は、登録アプリケーション１６４と協働し、ユーザに関連付いた一つ以上のカスタムボキャブラリを音声エンジン１６２に登録するルーチンを含むソフトウェアである。一実施形態において、登録モジュール２０８は、登録アプリケーション１６４と協働し、ユーザに関連付いた一つ以上のカスタムボキャブラリを音声エンジン１６２に登録するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、登録モジュール２０８は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、登録モジュール２０８は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００８５】
準備トリガイベントは、準備サービスをトリガするデータである。例えば、準備トリガイベントは、未来の移動開始時刻よりも前に、電気自動車を自動的に充電するためのアプリケーションの実行をトリガする。一実施形態において、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのアップデートは、トリガされるサービスの例である。例えば、準備トリガイベントは、場所モジュール２０４に対して場所ボキャブラリの更新を、連絡先モジュール２０６に対して連絡先ボキャブラリの更新を、コンテンツモジュール２０７に対してコンテンツボキャブラリの更新を、それぞれ、出発時刻前または出発時刻に実行させる。
この場合、更新された場所ボキャブラリ、更新された連絡先ボキャブラリ、更新されたコンテンツボキャブラリが、ユーザの移動開始前に準備される。さらなる例において、このような準備は、連続して行われてもよいし、様々な間隔で（例えば、自動的に、または、他のイベントに応答して）トリガされてもよい。例えば、準備トリガイベントが、移動中において連続して、または、様々な間隔で発生し、これに対応してボキャブラリが更新されてもよい。
【００８６】
準備トリガイベントは、例えば、エンジンの始動、キーが車両の鍵穴に挿入された際のキーオンイベント、ワイヤレスキーオンイベント、キーフォブのハンドシェイク、クライアント装置によるリモートコントロールイベント（例えば、ユーザが携帯アプリケーションを通じてエンジンを始動させた等）、ユーザが車両に対して動いている（例えば近づいてくる、遠ざかっていく等）ことを示すイベント、所定の場所（例えば新規の場所、既知の場所）への到着、移動中の経路変更、移動開始（例えば駐車場からの出発）、予測されたイベント（例えば、所定の時間以内（例えば１５分以内）に移動が始まるという予測）等であるが、これらに限られない。他の準備トリガイベントも採用可能である。
【００８７】
一実施形態において、登録モジュール２０８は、モバイルコンピュータ１３５に関連付
いた一つ以上のセンサからセンサデータを受信し、当該センサデータに基づいて、準備トリガイベントを検出する。例えば、登録モジュール２０８は、車両と無線キーとの間のハンドシェイクプロセスを示すセンサデータを受信し、キーフォブハンドシェイクイベントという準備トリガイベントを検出する。他の例では、登録モジュール２０８は、ＧＰＳアプリケーションから、ユーザが経路を変更したことを示すナビゲーションデータを受信し、移動経路の変更という準備トリガイベントを検出する。
【００８８】
一実施形態において、登録モジュール２０８は、移動状態モジュール２０３から、ユーザに関連付いた未来の移動を表すデータを受信し、当該未来の移動に基づいて準備トリガイベントを検出する。例えば、未来の移動が、午前８時３０分に開始されると予測されていた場合、登録モジュール２０８は、当該出発時刻前または出発時刻に、場所モジュール２０４に場所ボキャブラリを更新させ、連絡先モジュール２０６に連絡先ボキャブラリを更新させ、コンテンツモジュール２０７にコンテンツボキャブラリを更新させるための準備トリガイベントを検出する。登録モジュール２０８は、当該準備トリガイベントを、場所モジュール２０４、連絡先モジュール２０６、コンテンツモジュール２０７に送信する。
【００８９】
一実施形態において、フィルタモジュール２１６は、ユーザに関連付いた場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングし、フィルタ後の場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを登録モジュール２０８に送信する。フィルタモジュール２１６については、以下に詳述する。
登録モジュール２０８は、フィルタ後の場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン１６２に登録するために、登録アプリケーション１６４と協働する。例えば、登録モジュール２０８は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを登録アプリケーション１６４に送信し、登録アプリケーション１６４を通して当該場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン１６２に登録させる。
一実施形態において、登録モジュール２０８は、準備トリガイベントに応答して、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン１６２に登録させる。
【００９０】
音声モジュール２１０は、音声コマンドにマッチする結果を取得するルーチンを含むソフトウェアである。一実施形態において、登録モジュール２０８は、音声コマンドにマッチする結果を取得するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、音声モジュール２１０は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、音声モジュール２１０は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【００９１】
一実施形態において、音声モジュール２１０は、ユーザから音声コマンドを取得する。例えば、音声モジュール２１０は、モバイルコンピュータ１３５やクライアント装置１１５に接続されたマイク（不図示）から、音声コマンドを取得する。音声モジュール２１０は、音声コマンドに含まれる一つ以上のカスタム単語を、ユーザに関連した、一つ以上の登録されたカスタムボキャブラリに基づいて認識する。
例えば、音声モジュール２１０は、（１）音声コマンドに含まれる一つ以上の関心場所、ランドマーク、道路名称を場所ボキャブラリに基づいて認識し、（２）音声コマンドに含まれる一つ以上の連絡先を連絡先ボキャブラリに基づいて認識し、（３）音声コマンドに含まれる一つ以上のコンテンツソース、コンテンツカテゴリ、コンテンツアイテムをコンテンツボキャブラリに基づいて認識する。
【００９２】
一例において、音声モジュール２１０は、記憶装置２４５から、一つ以上のカスタム単語が含まれる音声コマンドにマッチする結果を取得する。例えば、音声モジュール２１０が、ユーザから「お父さんに電話」という音声コマンドを受信したとする。音声モジュール２１０は、登録された連絡先ボキャブラリに基づいて、音声コマンドに含まれるカスタム単語である「お父さん」を認識し、当該カスタム単語「お父さん」に対応する電話番号を、記憶装置２４５から取得する。そして、音声モジュール２１０は、提供モジュール２１２に対して、取得した電話番号に電話をかけるように指示する。
【００９３】
他の例において、音声モジュール２１０は、一つ以上のカスタム単語が含まれる音声コマンドを音声エンジン１６２に送信し、当該一つ以上のカスタム単語と音声コマンドを用いて検索を実行させる。音声エンジン１６２は、検索サーバ１２４から、一つ以上のカスタム単語を含む音声コマンドにマッチする検索結果を取得する。そして、音声エンジン１６２は、検索結果を音声モジュール２１０に送信する。例えば、音声コマンドが「家の近くにあるコーヒーショップを検索」というものであったとする。音声モジュール２１０は、場所ボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム単語を認識する。そして、音声モジュール２１０は、記憶装置２４５から、カスタム単語「家」に対応する住所を取得し、音声エンジン１６２に、「家」というカスタム単語を、対応する住所に置き換えた音声コマンドを送信する。そして、音声エンジン１６２は、検索サーバ１２４から、当該置き換え後の音声コマンドに対する検索結果を取得し、結果を音声モジュール２１０に送信する。検索結果は、家の住所の近くにあるコーヒーショップの住所と、当該住所までのナビゲーション指示を含んだものとなる。
【００９４】
一例において、音声コマンドの内容が「お父さんの居場所の近くにあるハンバーガー屋を検索」というものであった場合を考える。音声モジュール２１０はまず、連絡先ボキャブラリに基づいて、音声コマンドに含まれるカスタム単語である「お父さん」を認識する。そして、音声モジュール２１０は、当該父親の現在位置を、本人の許可を得て取得する。例えば、父親の現在位置は、連絡先ボキャブラリに記録された、父親の自宅または勤務先の住所である。他の例では、父親の現在位置は、父親の携帯電話が現在位置する場所である。さらに他の例では、父親の現在位置は、父親の車が現在位置する場所である。音声モジュール２１０は、カスタム単語「お父さん」に関連する場所を含む音声コマンドを、音声エンジン１６２に送信する。音声エンジン１６２は、カスタム単語「お父さん」に関連する場所を含む音声コマンドにマッチする検索結果を、検索サーバ１２４から取得し、当該検索結果を音声モジュール２１０に送信する。検索結果は、父親の居場所の近くにあるハンバーガー屋の住所と、当該住所までのナビゲーション指示を含んだものとなる。
【００９５】
一実施形態において、音声モジュール２１０は、ユーザから音声コマンドを取得し、当該音声コマンドを、カスタム単語を識別することなしに音声エンジン１６２に送信する。また、音声エンジン１６２は、当該音声コマンドに含まれる一つ以上のカスタム単語を、前述したものと同様の処理を行うことで認識する。音声エンジン１６２は、一つ以上のカスタム単語を含む音声コマンドにマッチした検索結果を、検索サーバ１２４から取得する。そして、音声エンジン１６２は、当該検索結果を音声モジュール２１０に送信する。
【００９６】
例えば、音声モジュール２１０は、ユーザから「家の近くにあるコーヒーショップを検索」という内容の音声コマンドを取得し、当該音声コマンドを音声エンジン１６２に送信する。音声エンジン１６２は、登録された、ユーザに関連付いた場所ボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム単語を認識し、音声ライブラリ１６６から、「家」というカスタム単語に対応する、自宅の住所を取得する。
音声エンジン１６２は、検索サーバ１２４から、「家」というカスタム単語を含んだ音声コマンドにマッチした検索結果を取得し、当該検索結果を音声モジュール２１０に送信
する。検索結果は、自宅の近くにあるコーヒーショップの住所と、当該住所までのナビゲーション指示を含んだものとなる。
【００９７】
他の例において、音声モジュール２１０は、ユーザから「音楽アプリを実行」という内容の音声コマンドを取得し、当該音声コマンドを音声エンジン１６２に送信する。「音楽アプリ」とは、それぞれ異なる正式名称を持つ特定のアプリケーションに対してユーザが呼ぶ名称である。音声エンジン１６２は、登録された、ユーザに関連付いたコンテンツボキャブラリに基づいて、音声コマンドに含まれる「音楽アプリ」というカスタム単語を認識する。音声エンジン１６２は、音声ライブラリ１６６から、「音楽アプリ」というカスタム単語に対応する、アプリケーションの名称を取得し、結果を音声モジュール２１０に送信する。そして、音声モジュール２１０は、提供モジュール２１２に対して、当該アプリケーションを実行する指示を行う。
【００９８】
一実施形態において、音声モジュール２１０は、ある場所（例えば既知の場所、既知の関心地点、既知の交差点など）の近くにある、隣接する、または、当該場所を中心とする所定の半径内にある一つ以上のターゲット場所の検索を示す音声コマンドを取得する。なお、「近くにある」「隣接する」とは、一つ以上のターゲット場所が、既知の場所から所定の距離以内にあることを意味する。
音声モジュール２１０は、音声コマンドと、当該音声コマンドによって示された「既知の場所からの所定の距離以内」にマッチした場所を、一つ以上のターゲット場所として決定する。
例えば、音声コマンドが、第一の道路「ＸＹＺ」と、第二の道路「ＡＢＣ」が交差する交差点の近くのレストランを検索する要求であったとする。音声モジュール２１０は、音声コマンドに含まれる、カスタム単語「近く」と、第一の道路「ＸＹＺ」と第二の道路「ＡＢＣ」が交差する交差点を認識する。そして、音声モジュール２１０は、当該交差点から所定の距離以内にあるレストランを検索する指示を、音声エンジン１６２に対して行う。
【００９９】
一実施形態において、所定の距離は、ユーザによって設定される。さらなる実施形態において、所定の距離は、ヒューリスティック手法によって自動的に設定される。例えば、もし、ユーザが、既知の場所から０．５マイル以内にあるターゲット場所を日常的に選択している場合、音声モジュール２１０は、当該ユーザに対する「所定の距離」を、０．５マイルに設定する。さらなる実施形態において、所定の距離は、音声コマンドに含まれる既知の場所の地理的な特徴に基づいて決定される。例えば、繁華街にある第一の既知の場所に対応する第一の所定の距離は、郊外にある第二の既知の場所に対応する第二の所定の距離よりも短くてもよい。
【０１００】
一実施形態において、音声モジュール２１０は、ユーザから音声コマンドを取得し、当該音声コマンドから、一つ以上の、場所を表すカスタム単語（以下、カスタム場所単語）を認識する。音声モジュール２１０は、モバイルコンピュータ１３５（例えば車両）、クライアント装置１１５（例えば携帯電話）などの、ユーザに関連付いた装置から取得したナビゲーション信号（例えば、位置信号やＧＰＳ信号）に基づいて、一つ以上のカスタム場所単語に関する一つ以上の住所を取得する。そして、音声モジュール２１０は、一つ以上のカスタム場所単語に関連付いた一つ以上の住所にマッチする検索結果を得るように、音声エンジン１６２に対して指示を行う。例えば、音声コマンドが「現在位置の近くにあるコーヒーショップを検索」や「現在位置から１マイル以内にあるコーヒーショップを検索」といったものであったとする。音声モジュール２１０は、音声コマンドに含まれる「現在位置」というカスタム場所単語を判定する。「現在位置」というカスタム場所単語に対応する住所は固定ではなく、ユーザの位置する場所によって変化する。音声モジュール２１０は、ユーザの携帯電話や車両から取得した位置信号に基づいて、「現在位置」とい
うカスタム場所単語に対応する住所を取得する。音声モジュール２１０は、ユーザの現在位置の住所を含む音声コマンドを、音声エンジン１６２に送信し、音声エンジン１６２は、当該ユーザの現在位置の近く（例えば、所定の距離以内）、または１マイル以内にあるコーヒーショップを検索する。
【０１０１】
一実施形態において、音声コマンドは、一つ以上のカスタム場所単語、一つ以上のカスタム連絡先単語、一つ以上のカスタムコンテンツ単語を同時に含む。例えば、「ＸＹＺレストランレビューアプリで推薦された、家の近くのレストランを検索」という音声コマンドは、「家」というカスタム場所単語と、「ＸＹＺレストランレビューアプリ」というカスタムコンテンツ単語を含む。音声モジュール２１０は、場所ボキャブラリとコンテンツボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム場所単語と、「ＸＹＺレストランレビューアプリ」というカスタムコンテンツ単語を認識する。そして、音声モジュール２１０は、ＸＹＺレストランレビューアプリによって推薦されたターゲット場所（例えばレストラン）のリストを取得し、「家」というカスタム場所単語に関連付いた住所に基づいて、当該ターゲット場所のリストをフィルタリングする。例えば、音声モジュール２１０は、ターゲット場所のリストから、「家」というカスタム場所単語に関連付いた住所から所定の距離以内にある一つ以上のターゲット場所（レストラン）を取得し、一つ以上のターゲット場所と、当該一つ以上のターゲット場所に関連したナビゲーション情報を含む結果を生成する。当該一つ以上のターゲット場所は、音声コマンドを満たすものとなる。例えば、当該一つ以上のターゲット場所は、自宅の近くにあり、ＸＹＺレストランレビューアプリで推薦されたレストランとなる。
【０１０２】
他の例において、「ＸＹＺレストランレビューアプリで推薦された、お父さんの近くのレストランを検索」という音声コマンドは、「お父さん」というカスタム連絡先単語と、「ＸＹＺレストランレビューアプリ」というカスタムコンテンツ単語を含む。音声モジュール２１０は、連絡先ボキャブラリとコンテンツボキャブラリに基づいて、音声コマンドに含まれる、「お父さん」というカスタム場所単語と、「ＸＹＺレストランレビューアプリ」というカスタムコンテンツ単語を認識する。そして、音声モジュール２１０は、ＸＹＺレストランレビューアプリによって推薦されたターゲット場所（例えばレストラン）のリストを取得する。また、「お父さん」に関連付いた場所（例えば、連絡先ボキャブラリに含まれる父親の住所や、父親の携帯電話や車の現在位置）を決定する。
音声モジュール２１０は、「お父さん」というカスタム連絡先単語に関連付いた場所に基づいて、ターゲット場所のリストをフィルタリングする。例えば、音声モジュール２１０は、ターゲット場所のリストから、「お父さん」というカスタム連絡先単語に関連付いた場所から所定の距離以内にある、一つ以上のターゲット場所（レストラン）を取得し、一つ以上のターゲット場所と、当該一つ以上のターゲット場所に関連したナビゲーション情報を含む結果を生成する。
【０１０３】
一実施形態において、音声モジュール２１０は、これらの結果を提供モジュール２１２に送信する。他の実施形態において、音声モジュール２１０は、これらの結果を記憶装置２４５に記憶させる。
【０１０４】
提供モジュール２１２は、結果をユーザに提供するためのルーチンを含むソフトウェアである。一実施形態において、提供モジュール２１２は、結果をユーザに提供するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、提供モジュール２１２は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、提供モジュール２１２は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【０１０５】
一実施形態において、提供モジュール２１２は、音声モジュール２１０から、音声コマンドにマッチする結果を取得し、当該結果をユーザに提供する。一例において、結果は、音声アイテムを含み、提供モジュール２１２は、当該結果をクライアント装置１１５やモバイルコンピュータ１３５に配信し、スピーカシステム（不図示）を通して当該音声アイテムを再生させる。一例において、提供モジュール２１２は、ユーザに結果を示すためのユーザインタフェースを提供するグラフィックデータを生成するよう、ＵＩモジュール２１４に指示する。一例において、結果は、音声コマンドにマッチする連絡先を含み、提供モジュール２１２は、当該連絡先に関連付いた電話番号に自動的に電話をかける。一例において、結果は、音声コマンドにマッチするアプリケーション情報を含み、提供モジュール２１２は、当該アプリケーションを自動的に実行する。
【０１０６】
ＵＩモジュール２１４は、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成するルーチンを含むソフトウェアである。一実施形態において、ＵＩモジュール２１４は、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、ＵＩモジュール２１４は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、ＵＩモジュール２１４は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【０１０７】
一実施形態において、ＵＩモジュール２１４は、結果をユーザに提示するユーザインタフェースを提供するためのグラフィックデータを生成する。そして、ＵＩモジュール２１４は、当該グラフィックデータを、クライアント装置１１５やモバイルコンピュータ１３５に送信し、当該ユーザインタフェースをユーザに提供させる。ユーザインタフェースの一例を、図１０Ｂ〜図１０Ｆに示す。
一実施形態において、ＵＩモジュール２１４は、ユーザに関連付いた一つ以上のカスタムボキャブラリを設定させるために、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成する。当該ユーザインタフェースは、例えば、ユーザに、一つ以上のカスタムボキャブラリに含まれるカスタム単語を追加、削除、編集するためものである。また、ＵＩモジュール２１４は、他のユーザインタフェースをユーザに提供するためのグラフィックデータを生成する。
【０１０８】
フィルタモジュール２１６は、一つ以上のフィルタリングパラメータに基づいて、ユーザに関連付いた一つ以上のカスタムボキャブラリをフィルタリングするためのルーチンを含むソフトウェアである。一実施形態において、フィルタモジュール２１６は、一つ以上のフィルタリングパラメータに基づいて、ユーザに関連付いた一つ以上のカスタムボキャブラリをフィルタリングするために、以下に示す構造、処理、または機能を提供するための、プロセッサ２３５で実行可能な命令の集合を含む。
一実施形態において、フィルタモジュール２１６は、コンピュータ２００のメモリ２３７に格納され、プロセッサ２３５によってアクセスされ、実行されてもよい。
また、フィルタモジュール２１６は、プロセッサ２３５およびコンピュータ２００の他の構成要素と協働して通信するように最適化されてもよい。
【０１０９】
フィルタリングパラメータは、カスタムボキャブラリをフィルタリングするために用いるデータである。フィルタリングパラメータは、例えば、場所フィルタリングパラメータ、連絡先フィルタリングパラメータ、コンテンツフィルタリングパラメータ、または、これらの組み合わせである。各フィルタリングパラメータについては、後ほど詳述する。
一実施形態において、場所フィルタリングパラメータ、連絡先フィルタリングパラメー
タ、コンテンツフィルタリングパラメータは、ハードコーディングされ、記憶装置２４５に事前に記憶される。
【０１１０】
一実施形態において、フィルタモジュール２１６は、ユーザに関連付いた場所ボキャブラリを場所モジュール２０４から取得する。また、フィルタモジュール２１６は、以下に説明するように、一つ以上の場所フィルタリングパラメータを表すデータを受信し、当該一つ以上の場所フィルタリングパラメータに基づいて、場所ボキャブラリをフィルタリングする。
場所フィルタリングパラメータは、場所ボキャブラリをフィルタリングするためのデータである。場所フィルタリングパラメータは、例えば、ユーザの現在位置、現在日時、カスタム場所単語に対応する場所の訪問頻度（例えば、最もよく訪問しているガソリンスタンド、一週間に一度訪問しているスーパーマーケット等）、カスタム場所単語に対応する場所の最近の訪問（例えば、最近訪れたレストラン）、カスタム場所単語が分類された場所カテゴリ（例えば、和食レストラン、イタリアンレストラン、メキシカンレストラン等）などであるが、これらに限られない。
【０１１１】
一実施形態において、フィルタモジュール２１６は、ユーザの現在位置や時刻を表すデータを取得する。当該データは、第一のナビゲーションアプリケーション１１７（例えば地図アプリ、ＧＰＳアプリ等）、第二のナビゲーションアプリケーション１０７（例えば位置情報アプリ、おすすめ収集アプリ、地図アプリ等）、あるいは、ソーシャルネットワークサーバ１２０、モバイルネットワークにおける位置サーバ（不図示）など、システム１００の他の構成要素のうちの一つ以上から送信される。
フィルタモジュール２１６は、ユーザの現在位置や時刻に基づいて、場所ボキャブラリをフィルタリングする。例えば、もし現在時刻が午前８時２０分である場合、フィルタモジュール２１６は、場所ボキャブラリから、朝食営業を行っていないレストランに対応するカスタム場所単語を削除する。他の例では、フィルタモジュール２１６は、ユーザの現在位置に基づいてカバー範囲を設定し、（１）場所ボキャブラリに含まれるカスタム場所単語のうち、カバー範囲内に位置するもの（例えば、カバー範囲内にある関心場所、ランドマーク、道路）のみを保持し、（２）カバー範囲外に位置するものを場所ボキャブラリから削除する。
【０１１２】
カバー範囲とは、場所ボキャブラリに含まれるカスタム場所単語に対応する場所をカバーする領域である。例えば、フィルタモジュール２１６は、ユーザの現在位置を中心点とし、当該中心点とカバー半径によって定義される円形の領域をカバー範囲として設定する。カバー範囲の例を図９Ｂ等に示す。一例において、カバー範囲は、長方形、正方形、三角形、円形であってもよいし、他の形状であってもよい。
また、一例において、形状で定義されたカバー範囲は、繋がっていなくてもよく、不連続なものであってもよい。例えば、カバー範囲は、人口密集地域のみを含み、それ以外の地域を除外したものであってもよい。
【０１１３】
一実施形態において、フィルタモジュール２１６は、ユーザの現在位置に基づいて、カバーエリアのサイズを調整する。例えば、繁華街におけるサイズ（例えば、半径１マイル、１平方マイルなど）は、郊外におけるカバーエリア（例えば、半径１０マイル、１０平方マイルなど）よりも小さくなる。
一実施形態において、フィルタモジュール２１６は、ヒューリスティック手法によって計算されたカバー半径を用いてカバーエリアを決定してもよい。
一実施形態において、フィルタモジュール２１６は、カバーエリアや半径を、場所ボキャブラリのサイズに基づいて決定する。例えば、フィルタモジュール２１６は、場所ボキャブラリのサイズが大きくなるにつれ、より大きいカバー半径やカバーエリアを設定する。場所ボキャブラリのサイズは、例えば、当該場所ボキャブラリに格納できるカスタム場
所単語の数を表すためである。さらなる実施形態において、カバー半径やカバーエリアは、コンピュータ２００の管理者によって設定されてもよい。
【０１１４】
一実施形態において、フィルタモジュール２１６は、場所ボキャブラリに含まれるカスタム場所単語が表す場所にユーザが訪問した頻度や、当該場所への最近の訪問に基づいて、場所ボキャブラリのフィルタリングを行う。例えば、フィルタモジュール２１６は、カスタム場所単語によって表された場所へのユーザの訪問頻度や、最近の訪問に基づいて、当該カスタム場所単語のランク付けを行い、（１）場所ボキャブラリにおいて最も高いランクを持つカスタム場所単語を保持し、（２）場所ボキャブラリに含まれる他のカスタム場所単語を削除する。他の例では、フィルタモジュール２１６は、場所ボキャブラリをフィルタリングし、フィルタ後の場所ボキャブラリを生成する。当該フィルタ後の場所ボキャブラリは、例えば、最もよく訪問する場所、あるいは直前に訪問した場所に対応するカスタム場所単語を含む場所ボキャブラリとなる。
【０１１５】
一実施形態において、フィルタモジュール２１６は、記憶装置２４５から、一つ以上のユーザ設定を取得し、当該ユーザ設定に基づいて場所ボキャブラリのフィルタリングを行う。例えば、当該一つ以上のユーザ設定が、ユーザが好む一つ以上の場所カテゴリを表すものであるとする。フィルタモジュール２１６は、（１）場所ボキャブラリに含まれるカスタム場所単語のうち、設定された一つ以上の場所カテゴリに関連付いたもののみを保持し、（２）場所ボキャブラリに含まれる他のカスタム場所単語を削除する。例えば、もしユーザの好みのカテゴリに、和食レストランとイタリアンレストランが含まれる場合、フィルタモジュール２１６は、和食レストランおよびイタリアンレストランが含まれる、フィルタ後の場所ボキャブラリを生成する。
【０１１６】
さらなる実施形態において、フィルタモジュール２１６は、ユーザの現在位置または過去にいた場所、ユーザが当該場所にいた時刻、場所ボキャブラリに含まれるカスタム場所単語に対応する場所にユーザが訪問した頻度、最近の訪問、ユーザ設定、ユーザが頻繁にインタラクションしているユーザ（例えば親しい友人、家族、同僚等）、場所ボキャブラリのサイズ、他の連絡先、コンテンツ、他で説明したような場所に関連した要素、のうちの一つ以上に基づいて、場所ボキャブラリをフィルタリングする。
【０１１７】
一実施形態において、フィルタモジュール２１６は、ユーザに関連付いた連絡先ボキャブラリを連絡先モジュール２０６から取得する。また、フィルタモジュール２１６は、以下に説明するように、一つ以上の連絡先フィルタリングパラメータを表すデータを受信し、当該一つ以上の連絡先フィルタリングパラメータに基づいて、連絡先ボキャブラリをフィルタリングする。
連絡先フィルタリングパラメータは、連絡先ボキャブラリをフィルタリングするためのデータである。連絡先フィルタリングパラメータは、例えば、ソーシャルネットワークの連絡先カテゴリ（例えば、友人、同僚、知人、ブロックリスト等）、連絡帳カテゴリ（例えば、よく使う連絡先、家族、友人等）、連絡先に対するインタラクション頻度（例えば、最もよく電話をかける連絡先、週に一度しか電話をかけない連絡先等）、または、連絡先に対する最近のインタラクション（例えば、最近電話をかけた相手、一か月前に電話をかけた相手等）、コンテンツ、ソーシャルネットワークにおいて登録された場所、適用可能なソーシャルネットワークコンテンツストリームに含まれるもの、類似するコンテンツ、イベント、ソーシャル等を有する連絡先、ソーシャルネットワークデータから決定された設定、設定データ等であるが、これらに限られない。
【０１１８】
一実施形態において、フィルタモジュール２１６は、ユーザのソーシャルグラフから取得した連絡先に関連付いた、一つ以上のソーシャルネットワーク連絡先カテゴリを受信する。例えば、フィルタモジュール２１６は、友人グループ、家族グループ、知人グループ
を表すデータをソーシャルネットワークサーバ１２０から取得する。
また、フィルタモジュール２１６は、ユーザの連絡帳から取得した連絡先に関連付いた、一つ以上の連絡帳カテゴリを受信する。例えば、フィルタモジュール２１６は、ユーザのお気に入りの連絡先グループや、ユーザの連絡帳から最もよく電話がかけられるグループを表すデータを取得する。
フィルタモジュール２１６は、ソーシャルネットワーク連絡先カテゴリや、連絡帳カテゴリに基づいて、連絡先ボキャブラリをフィルタリングする。
また、フィルタモジュール２１６は、位置情報に基づいて、ユーザが最もよく訪問する、または、インタラクションを行っている連絡先を表すデータを取得する。例えば、フィルタモジュール２１６は、（１）連絡先ボキャブラリから、一つ以上のお気に入りの連絡先、友人、家族、同僚等を残し、（２）他の知人、古くなった連絡先、ブロック済みの連絡先などを削除する。
様々な連絡先、場所、コンテンツに関するユーザの設定は変化し続けるため、場所ボキャブラリやコンテンツボキャブラリと同様に、フィルタリングは、設定の変更やユーザの現在のふるまいを反映させるように、フィルタモジュール２１６によって動的に（例えば単発的に、あるいは周期的に（毎秒、毎分、毎時、毎日等））実行される。
【０１１９】
一実施形態において、フィルタモジュール２１６は、連絡先ボキャブラリに含まれる連絡先に対してインタラクションを行った頻度や、最近のインタラクションに基づいて、連絡先ボキャブラリのフィルタリングを行う。例えば、フィルタモジュール２１６は、対応する連絡先に対してインタラクションを行った頻度や、最近のインタラクションに基づいて、当該カスタム連絡先単語のランク付けを行い、（１）連絡先ボキャブラリにおいて、一つ以上の所定の基準を満たすランクを持つカスタム連絡先単語を保持し、（２）連絡先ボキャブラリに含まれる他のカスタム連絡先単語を削除する。所定の基準とは、連絡先の個数の閾値（例えば２５，５０，１００）や、品質閾値等である。例えば、各連絡先は、ターゲットユーザとの関係（例えば、他で例示した一つ以上のフィルタリングパラメータ）に基づいて演算（もしくは事前に定義）された品質スコアを用いてランク付けされる。品質スコアは、所定の基準（例えば品質閾値）と比較され、閾値を満たす場合に、当該連絡先がボキャブラリに含まれるようになる。
他の例では、フィルタモジュール２１６は、連絡先ボキャブラリをフィルタリングし、フィルタ後の連絡先ボキャブラリを生成する。当該フィルタ後の連絡先ボキャブラリは、最もよく利用する（例えば、頻繁にインタラクションする、あるいは直前にインタラクションした等）連絡先に対応するカスタム連絡先単語を含む連絡先ボキャブラリである。例えば、フィルタ後の連絡先ボキャブラリは、最もよく（あるいは直前に）電話をかけ、メッセージ（ＳＭＳ、電子メール、ソーシャル等）を送り、または訪問された連絡先を含む。
【０１２０】
他の実施形態において、フィルタモジュール２１６は、一つ以上のソーシャルネットワーク連絡先カテゴリ、一つ以上の連絡帳カテゴリ、連絡先ボキャブラリのサイズ、頻度、品質、最近のインタラクション履歴、インタラクションに用いた手段（例えば電話、テキスト、電子メール、ソーシャルネットワーク、ＳＭＳ、マイクロブログ等）のうちの一つ以上に基づいて、連絡先ボキャブラリをフィルタリングする。連絡先ボキャブラリのサイズは、例えば、当該連絡先ボキャブラリに格納できるカスタム連絡先単語の数である。
【０１２１】
一実施形態において、フィルタモジュール２１６は、ユーザに関連付いたコンテンツボキャブラリをコンテンツモジュール２０７から取得する。また、フィルタモジュール２１６は、以下に説明するように、一つ以上のコンテンツフィルタリングパラメータを表すデータを受信し、当該一つ以上のコンテンツフィルタリングパラメータに基づいて、コンテンツボキャブラリをフィルタリングする。
コンテンツフィルタリングパラメータは、コンテンツボキャブラリをフィルタリングす
るためのデータである。コンテンツフィルタリングパラメータは、例えば、ユーザが交わしたアクション（例えば、おすすめ、コメント、シェア、お気に入り、フォロー、購読など）を含む当該ユーザのソーシャルネットワークデータ、ユーザのメッセージデータ（例えば、電子メール、テキスト、チャットなど）、ユーザの好み（ユーザがつけた評価など）、ユーザがインタラクションしたコンテンツのタイプ（音楽のタイプ、ニュース、歌手、構成要素など）、カスタムコンテンツ単語に対応するアイテムに対してインタラクションをした頻度（例えば、コンテンツアイテムの再生頻度、ラジオ局の聴取頻度、トピックを検索した頻度、フィードのアクセス頻度等）、カスタムコンテンツ単語に対応するアイテムに対して最後にインタラクションをした日時（例えば、コンテンツアイテムの最近の再生、アプリケーションの最近の利用）、所定の期間内に所定のコンテンツに対してどの程度インタラクションを行ったか等であるが、これらに限られない。
【０１２２】
一実施形態において、フィルタモジュール２１６は、コンテンツボキャブラリに含まれるカスタムコンテンツ単語に対応するアイテムに対するユーザのインタラクション頻度や、最近のインタラクション履歴に基づいて、コンテンツボキャブラリをフィルタリングする。例えば、フィルタモジュール２１６は、カスタムコンテンツ単語に対応するアイテムに対するユーザのインタラクション頻度やインタラクション履歴に基づいて、当該カスタムコンテンツ単語をランク付けし、連絡先ボキャブラリについて前述したものと同様に、（１）コンテンツボキャブラリに含まれるカスタムコンテンツ単語のうち、一つ以上の所定の基準（例えばランキングレベル）を満たすもののみを保持し、（２）他のカスタムコンテンツ単語を削除する。
他の例では、フィルタモジュール２１６は、コンテンツボキャブラリをフィルタリングし、フィルタ後のコンテンツボキャブラリを生成する。当該フィルタ後のコンテンツボキャブラリは、最もよく利用する、または、最近利用した（ユーザや、ユーザに関連した連絡先によって）コンテンツに対応するカスタムコンテンツ単語を含むコンテンツボキャブラリとなる。例えば、フィルタ後のコンテンツボキャブラリは、最もよく再生される音楽、最もよく利用されるアプリケーション、最も良くアクセスされるソーシャルストリーム、最もよく視聴されるビデオを含む。
【０１２３】
一実施形態において、フィルタモジュール２１６は、ユーザが行ったアクションを含むソーシャルネットワークデータを、ソーシャルネットワークサーバ１２０から取得する。また、フィルタモジュール２１６は、ユーザのソーシャルネットワークデータに基づいて、コンテンツボキャブラリをフィルタリングする。例えば、フィルタモジュール２１６は、ソーシャルネットワークにて行われたユーザのおすすめ、シェア、フォロー、購読、コメントにマッチするアイテムに対応するカスタムコンテンツ単語を含む、フィルタ後のコンテンツボキャブラリを生成する。さらなる例において、フィルタモジュール２１６は、コンテンツボキャブラリに対して、（１）ユーザによっておすすめされた第一のラジオ局（あるいはそこで放送された音楽）を残し、（２）ユーザが好まないとした第二のラジオ局（あるいはそこで放送された音楽）を削除する。
【０１２４】
一実施形態において、フィルタモジュール２１６は、記憶装置２４５から、一つ以上のユーザ嗜好（例えば、一つ以上のアイテムに対する評価）を取得し、当該ユーザ嗜好に基づいてコンテンツボキャブラリのフィルタリングを行う。例えば、フィルタモジュール２１６は、カスタムコンテンツ単語に対してユーザが行った評価に基づいて、コンテンツボキャブラリに含まれるカスタムコンテンツ単語をランク付けし、前述したものと同様に、（１）コンテンツボキャブラリに含まれる、基準（例えばランキング閾値）を満たすカスタムコンテンツ単語を残し、（２）他のカスタムコンテンツ単語を削除する。他の例では、フィルタモジュール２１６は、コンテンツソースやコンテンツカテゴリに対してユーザが行った評価に基づいて、フィルタ後のコンテンツボキャブラリを生成する。このようにして生成したフィルタ後のコンテンツボキャブラリは、最も高い評価（例えば、好みのコ
ンテンツを反映した閾値に一致する評価、または、超える評価）を持ったコンテンツソースやコンテンツカテゴリに対応するコンテンツアイテムを含む。
例えば、フィルタモジュール２１６は、ユーザの好みの音楽ジャンル、ユーザの好みのポッドキャストソース、ユーザの好みの音楽ジャンルに合うコンテンツアイテム、ユーザの好みのポッドキャストソースから取得したコンテンツアイテム等を含んだ、フィルタ後のコンテンツボキャブラリを生成する。
【０１２５】
さらなる実施形態において、フィルタモジュール２１６は、ユーザが行ったアクション、ユーザ嗜好、カスタムコンテンツ単語に対応するアイテムに対してインタラクションを行った頻度、カスタムコンテンツ単語に対応するアイテムに対して最後にインタラクションを行った日時を含む一つ以上のユーザのソーシャルネットワークデータ、コンテンツボキャブラリのサイズ等に基づいて、コンテンツボキャブラリをフィルタリングする。
コンテンツボキャブラリのサイズは、例えば、当該コンテンツボキャブラリに格納できるカスタムコンテンツ単語の数を表す。
【０１２６】
一実施形態において、フィルタモジュール２１６は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのサイズを制限（または上限を定義）するための一つ以上のフィルタリングパラメータに基づいて、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングする。
カスタムボキャブラリのフィルタリングは、様々な点において有益である。例えば、カスタムボキャブラリのサイズが有限の固定値である場合、カスタムボキャブラリをフィルタリングすることで、ユーザにとって最も重要なカスタム単語を保持し、ユーザにとって重要でないカスタム単語を削除することができる。
他の例では、カスタムボキャブラリのサイズが可変である場合、カスタムボキャブラリから、ユーザにとって重要でないカスタム単語を削除することで、当該カスタムボキャブラリのサイズを縮小することができる。
別の例では、カスタムボキャブラリをフィルタリングすることで、音声認識におけるシステム１００の速度低下を避け、かつ、システム１００に対して、（１）より高速な音声認識を可能にし、（２）音声認識の精度を向上させ、（３）ユーザ嗜好のよりよい学習を実現し、（４）ユーザに提供する経験をよりパーソナライズさせることができる。
なお、これらの利点は、限定的なものではなく、他の利益または利点も実現されうることを理解されたい。
【０１２７】
（方法）
図３Ａおよび図３Ｂは、パーソナライズされた音声認識のためのカスタムボキャブラリを生成する方法３００を表すフローチャート例である。図３Ａを参照して説明する。
まず、制御モジュール２０２が、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルネットワークデータを取得する（ステップ３０２）。
次に、制御モジュール２０２が、検索サーバ１２４から、ユーザに関連付いた検索データを取得する（ステップ３０４）。
次に、制御モジュール２０２が、モバイルコンピュータ１３５またはクライアント装置１１５から、ユーザに関連付いたナビゲーションデータを取得する（ステップ３０６）。
次に、場所モジュール３０４が、ソーシャルネットワークデータ、検索データ、ナビゲーションデータに基づいて、ユーザに対応する場所ボキャブラリを構築する（ステップ３０８）。
次に、制御モジュール２０２が、クライアント装置１１５やモバイルコンピュータ１３５といった装置に格納されたユーザの連絡帳から、連絡先データを取得する（ステップ３１０）。
次に、連絡先モジュール２０６が、連絡先データ、ソーシャルネットワークデータに基づいて連絡先ボキャブラリを構築する（ステップ３１２）。
次に、制御モジュール２０２が、クライアント装置１１５やモバイルコンピュータ１３５といった装置から、ユーザに関連付いたコンテンツデータを取得する（ステップ３１４）。
次に、コンテンツモジュール２０７が、コンテンツデータ、ソーシャルネットワークデータ、検索データに基づいて、ユーザに対応するコンテンツボキャブラリを構築する（ステップ３１６）。
【０１２８】
図３Ｂを参照して説明を続ける。
次に、制御モジュール２０２が、一つ以上のフィルタリングパラメータを受信する（ステップ３１８）。例えば、制御モジュール２０２は、一つ以上のコンテンツフィルタリングパラメータ、一つ以上の場所フィルタリングパラメータ、一つ以上の連絡先フィルタリングパラメータを表すデータを受信する。
次に、フィルタモジュール２１６が、一つ以上のフィルタリングパラメータに基づいて、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングする（ステップ３２０）。
次に、登録モジュール２０８が、フィルタ後の場所ボキャブラリ、フィルタ後の連絡先ボキャブラリ、フィルタ後のコンテンツボキャブラリを音声エンジン１６２に登録する（ステップ３２２）。
【０１２９】
図４Ａ〜図４Ｃは、パーソナライズされた音声認識のための場所ボキャブラリを生成する方法４００を表すフローチャート例である。図４Ａを参照して説明する。
まず、登録モジュール２０８が、準備トリガイベントを検出する（ステップ４０１）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する（ステップ４０２）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ１３５に関連付いたモバイルコンピュータデータを受信する（ステップ４０３）。
次に、制御モジュール２０２が、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルネットワークデータを取得する（ステップ４０４）。
次に、移動状態モジュール２０３が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する（ステップ４０５）。
【０１３０】
図４Ｂを参照して説明を続ける。
次に、制御モジュール２０２が、ユーザに関連付いた検索データを、検索サーバ１２４から取得する（ステップ４０６）。
次に、制御モジュール２０２が、システム１００の他の構成要素、たとえばモバイルコンピュータ１３５に記録された第二のナビゲーションアプリケーション１０７、または、クライアント装置１１５に記録された第一のナビゲーションアプリケーション１１７等から、ユーザに関連付いたナビゲーションデータを取得する（ステップ４０７）。
次に、場所モジュール２０４が、当該ナビゲーションデータを処理し、移動経路または一つ以上の立ち寄り地点を抽出する（ステップ４０８）。
次に、場所モジュール２０４が、ソーシャルネットワークデータ、検索データ、移動経路、一つ以上の立ち寄り地点、移動状態のうちの少なくとも一つ以上に基づいて、一つ以上の関心場所を決定する（ステップ４１０）。
次に、場所モジュール２０４が、移動経路、一つ以上の立ち寄り地点、移動状態に関連付いた一つ以上のランドマークを決定する（ステップ４１２）。
次に、場所モジュール２０４が、移動経路、一つ以上の立ち寄り地点、移動状態に関連付いた一つ以上の道路名称を決定する（ステップ４１４）。
次に、場所モジュール２０４が、一つ以上の関心場所、一つ以上のランドマーク、一つ
以上の道路名称を用いて、ユーザに関連付いた場所ボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される（ステップ４１６）。
【０１３１】
図４Ｃを参照して説明を続ける。
次に、制御モジュール２０２が、一つ以上の場所フィルタリングパラメータを受信する（ステップ４１８）。
次に、フィルタモジュール２１６が、一つ以上の場所フィルタリングパラメータに基づいて、場所ボキャブラリをフィルタリングする（ステップ４２０）。
次に、登録モジュール２０８が、フィルタ後の場所ボキャブラリを音声エンジン１６２に登録する（ステップ４２２）。
次に、制御モジュール２０２が、ユーザから音声コマンドを取得する（ステップ４２４）。
次に、音声モジュール２１０が、場所ボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する（ステップ４２６）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン１６２に送信する（ステップ４２８）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する（ステップ４３０）。
次に、提供モジュール２１２が、結果をユーザに提供する（ステップ４３２）。
【０１３２】
図５Ａ〜図５Ｃは、パーソナライズされた音声認識のための連絡先ボキャブラリを生成する方法５００を表すフローチャート例である。図５Ａを参照して説明する。
まず、登録モジュール２０８が、準備トリガイベントを検出する（ステップ５０１）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する（ステップ５０２）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ１３５に関連付いたモバイルコンピュータデータを受信する（ステップ５０３）。
次に、制御モジュール２０２が、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルネットワークデータを取得する（ステップ５０４）。
次に、移動状態モジュール２０３が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する（ステップ５０５）。
【０１３３】
図５Ｂを参照して説明を続ける。
次に、制御モジュール２０２が、モバイルコンピュータ１３５、クライアント装置１１５などのユーザに関連付いた一つ以上の装置に記憶されたユーザの連絡帳から、連絡先データを取得する（ステップ５０６）。
次に、制御モジュール２０２が、ユーザに関連付いたソーシャルグラフを、ソーシャルネットワークサーバ１２０から取得する（ステップ５０７）。
次に、連絡先モジュール２０６が、連絡先データ、ソーシャルグラフデータ、移動状態を用いて、ユーザに関連付いた連絡先ボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される（ステップ５０８）。
次に、制御モジュール２０２が、一つ以上の連絡先フィルタリングパラメータを受信する（ステップ５０９）。
次に、フィルタモジュール２１６が、一つ以上の連絡先フィルタリングパラメータに基づいて、連絡先ボキャブラリをフィルタリングする（ステップ５１０）。
次に、登録モジュール２０８が、フィルタ後の連絡先ボキャブラリを音声エンジン１６２に登録する（ステップ５１２）。
次に、制御モジュール２０２が、ユーザから音声コマンドを取得する（ステップ５１４）。
【０１３４】
図５Ｃを参照して説明を続ける。
次に、音声モジュール２１０が、連絡先ボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する（ステップ５１６）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン１６２に送信する（ステップ５１８）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する（ステップ５２０）。
次に、提供モジュール２１２が、結果をユーザに提供する（ステップ５２２）。
【０１３５】
図６Ａ〜図６Ｃは、パーソナライズされた音声認識のためのコンテンツボキャブラリを生成する方法６００を表すフローチャート例である。図６Ａを参照して説明する。
まず、登録モジュール２０８が、準備トリガイベントを検出する（ステップ６０１）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する（ステップ６０２）。
次に、制御モジュール２０２が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ１３５に関連付いたモバイルコンピュータデータを受信する（ステップ６０３）。
次に、制御モジュール２０２が、ソーシャルネットワークサーバ１２０から、ユーザに関連付いたソーシャルネットワークデータを取得する（ステップ６０４）。
次に、移動状態モジュール２０３が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する（ステップ６０６）。
【０１３６】
図６Ｂを参照して説明を続ける。
次に、制御モジュール２０２が、クライアント装置１１５、モバイルコンピュータ１３５などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツアイテムを表すコンテンツデータを取得する（ステップ６０７）。
次に、制御モジュール２０２が、クライアント装置１１５、モバイルコンピュータ１３５などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツソースを表すデータを取得する（ステップ６０８）。
次に、制御モジュール２０２が、クライアント装置１１５、モバイルコンピュータ１３５などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツカテゴリを表すデータを取得する（ステップ６０９）。
次に、コンテンツモジュール２０７が、コンテンツデータ、一つ以上のコンテンツソース、一つ以上のコンテンツカテゴリ、移動状態を用いて、ユーザに関連付いたコンテンツボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される（ステップ６１０）。
次に、制御モジュール２０２が、一つ以上のコンテンツフィルタリングパラメータを受信する（ステップ６１１）。
次に、フィルタモジュール２１６が、一つ以上のコンテンツフィルタリングパラメータに基づいて、コンテンツボキャブラリをフィルタリングする（ステップ６１２）。
次に、登録モジュール２０８が、フィルタ後のコンテンツボキャブラリを音声エンジン１６２に登録する（ステップ６１４）。
次に、制御モジュール２０２が、ユーザから音声コマンドを取得する（ステップ６１６）。
【０１３７】
図６Ｃを参照して説明を続ける。
次に、音声モジュール２１０が、コンテンツボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する（ステップ６１８）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン１６２に送信する（ステップ６２０）。
次に、制御モジュール２０２が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する（ステップ６２２）。
次に、提供モジュール２１２が、結果をユーザに提供する（ステップ６２４）。
【０１３８】
図７は、パーソナライズされた音声認識を用いて、音声検索を実行する方法７００を表すフローチャート例である。一実施形態において、音声エンジン１６２は、ユーザに関連付いた一つ以上のカスタムボキャブラリを表すデータを、認識アプリケーション１０９から取得する（ステップ７０２）。
次に、登録アプリケーション１６４が、一つ以上のカスタムボキャブラリを音声エンジン１６２に登録する（ステップ７０４）。
次に、音声エンジン１６２が、ユーザから音声コマンドを取得する（ステップ７０６）。一実施形態において、音声エンジン１６２は、認識アプリケーション１０９から音声コマンドを受信する。
次に、音声エンジン１６２が、音声コマンドに含まれる一つ以上のカスタム単語を認識する（ステップ７０８）。
次に、音声エンジン１６２が、検索を実行させ、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する（ステップ７１０）。
次に、音声エンジン１６２が、結果をユーザに提供するために、当該結果を認識アプリケーション１０９に送信する（ステップ７１２）。
【０１３９】
（グラフィック表現）
図８Ａおよび図８Ｂは、関心場所を決定するためのクラスタリング処理の例を示した図である。一実施形態において、場所モジュール２０４は、ユーザが訪問した一つ以上の場所を、ユーザに関連付いたナビゲーションデータに基づいて決定する。例えば、場所モジュール２０４は、ユーザに関連付いたＧＰＳログを用いて、一つ以上の立ち寄り地点や目的地を決定する。
また、場所モジュール２０４は、一つ以上の訪問済み場所に関連付いた地理的な特徴に基づいて、クラスタに対応するクラスタ半径を設定する。例えば、繁華街におけるクラスタ半径は、郊外におけるクラスタ半径よりも小さい。また、一実施形態において、場所モジュール２０４は、ヒューリスティック技術を用いてクラスタ半径を決定する。他の実施形態において、クラスタ半径は、コンピュータ２００の管理者によって設定される。
【０１４０】
クラスタは、ユーザが訪問した一つ以上の場所や地点を含む地理的な領域である。例えば、ユーザが訪問した一つ以上の場所や地点は、クラスタによってグルーピングされる。これにより、ユーザが訪問した一つ以上の場所や地点は、街区ブロックのような、特定の地理的領域に含まれるようになる。
一例において、クラスタは、クラスタ内においてユーザが訪問した一つ以上の場所や地点である関心場所に関連付けられる。一実施形態において、クラスタの中心点は、クラスタに関連付いた関心場所として設定され、当該クラスタは、当該中心点および半径で定義された円形エリアとなる。他の例では、クラスタは矩形、正方形、三角形、または、他の形状をとる。
【０１４１】
場所モジュール２０４は、ユーザが訪問したことがある一つ以上の場所が、設定されたクラスタ半径を満たすクラスタ内にあるか否かを決定する。もし、一つ以上の訪問済み場所が、クラスタ半径を満たすクラスタ内にある場合、場所モジュール２０４は、当該一つ以上の訪問済み場所を、一つのクラスタにグルーピングし、当該クラスタの中心を、当該
クラスタに関連付いた関心場所として設定する。例えば、当該クラスタに関連付いた関心場所は、当該クラスタの中心と同じ緯度、経度、高度となる。
【０１４２】
一実施形態において、場所モジュール２０４は、ユーザに関連付いたナビゲーションデータに基づいて、ユーザが訪問したことがある複数の場所を決定する。また、場所モジュール２０４は、当該複数の場所を、各クラスタが一つ以上の訪問済み場所を含むように、一つ以上のクラスタにグルーピングする。例えば、場所モジュール２０４は、複数の場所を一つ以上のクラスタにグルーピングするために、凝集型クラスタリング手法（例えば、ボトムアップによる階層クラスタ分析）を用いる。凝集型クラスタリング手法については、図８Ａおよび図８Ｂに示す。
場所モジュール２０４は、一つ以上のクラスタにおける一つ以上の中心点を、一つ以上の関心場所として生成する。当該一つ以上のクラスタは、それぞれ同一の半径を持ってもよいし、異なる半径を持ってもよい。
【０１４３】
図８Ａを参照して説明する。ボックス８１０は、ユーザが訪問した４つの場所Ａ，Ｂ，Ｃ，Ｄを表す。場所モジュール２０４は、場所Ａ，Ｂ，Ｃを、クラスタ半径８０４を持つクラスタ８０６にグルーピングする。また、場所モジュール２０４は、クラスタ８０６の中心点である関心場所８０２を生成する。場所Ｄは、クラスタ８０６には含まれず、場所モジュール２０４は、場所Ｄをクラスタ８０８にグルーピングする。クラスタ８０８は、ユーザが訪問した一つの場所（場所Ｄ）のみを有しており、当該クラスタ８０８の中心点は、場所Ｄとして設定される。また、場所モジュール２０４は、クラスタ８０８の中心点である、ユーザに関連付いた関心場所８３０を生成する。
【０１４４】
ボックス８１０の例におけるクラスタリング処理に対応する樹形図を、ボックス８１２に示す。樹形図は、階層的クラスタ分析で生成されるクラスタの配置を木構造で示すための図である。ボックス８１２に示した樹形図は、凝集型クラスタリング手法（例えば、ボトムアップによる階層クラスタ分析）を示したものである。
樹形図の上位に位置するノードは、ユーザが訪問した場所Ａ，Ｂ，Ｃ，Ｄを表す。樹形図における他のノードは、異なるレベルによってマージされたクラスタを表す。
【０１４５】
例示目的で、いくつかの実施形態においては、樹形図に含まれる二つのノードを連結する線の長さは、当該二つのノード間の非類似の尺度を表す。より長い線は、より非類似であることを示している。例えば、ライン８１８は、ライン８２０より長く、これは、場所Ｄとノード８２４間における非類似の尺度が、場所Ａとノード８２２間における非類似の尺度よりも大きいことを表している。一実施形態において、非類似の度合いは、ユークリッド距離、平方ユークリッド距離、マンハッタン距離、最大距離、マハラノビス距離、二つのノード間のコサイン類似度などによって表される。非類似の尺度の表し方については、他の手法も採用可能である。
【０１４６】
ボックス８１２に示したように、樹形図は、ライン８１４、クラスタ８０６（場所Ａ，Ｂ，Ｃを含む）、クラスタ８０８（場所Ｄを含む）で表されたようにレベルごとに分割される。分割のレベルは、少なくともクラスタの半径に部分的に基づいて決定される。
【０１４７】
図８Ｂを参照して説明を続ける。ここでは、ユーザがさらに場所Ｅに訪問していたものとする。
ボックス８６０は、クラスタ半径８０４を持つクラスタ８０６と、クラスタ半径８５４を持つ更新後のクラスタ８０８を表す。一実施形態において、クラスタ半径８０４は、クラスタ半径８５４と同一の値である。他の実施形態において、クラスタ半径８０４は、クラスタ半径８５４と異なる値である。クラスタ８０６は、場所Ａ，Ｂ，Ｃを含む。
場所モジュール２０４は、場所ＤおよびＥを含むようにクラスタ８０８を更新し、更新
後のクラスタ８０８の中心となるように関心場所８３０を更新する。
ボックス８６０に対応する樹形図を、ボックス８６２に示す。本例においては、樹形図は、ライン８１４、クラスタ８０６（場所Ａ，Ｂ，Ｃを含む）、クラスタ８０８（場所Ｄ，Ｅを含む）で表されたようにレベルごとに分割される。分割のレベルは、少なくともクラスタの半径に部分的に基づいて決定される。
【０１４８】
図９Ａは、ユーザに関連付いたカスタムボキャブラリの例を表したグラフィック９００である。グラフィック９００は、例としての連絡先ボキャブラリ９０２、場所ボキャブラリ９０４、コンテンツボキャブラリ９０６を含む。また、認識アプリケーション１０９は、連絡先ボキャブラリ９０２、場所ボキャブラリ９０４、コンテンツボキャブラリ９０６を音声エンジン１６２に登録する。
【０１４９】
図９Ｂおよび図９Ｃは、場所ボキャブラリをフィルタリングするための様々なフィルタリング処理例を表したグラフィック９５０および９７０である。
図９Ｂを参照して説明する。
フィルタモジュール２１６は、特定の場所で表されたユーザの現在位置（例えばサンフランシスコ）、場所ボキャブラリ９５２に含まれるカスタム場所単語に対応する場所への訪問頻度（例えば、ランドマーク、道路、プリセットされた関心場所への総訪問回数）、カスタム場所単語に対応する場所への最終訪問日時に基づいて、場所ボキャブラリ９５２をフィルタリングする。また、フィルタリングモジュール２１６は、フィルタ後の場所ボキャブラリ９５４を生成する。例えば、ユーザの現在位置がサンフランシスコである場合、フィルタモジュール２１６は、「自由の女神」「ヨセミテ」「Ｉ−１５」といった関心場所を場所ボキャブラリ９５２から削除し、ユーザの現在位置にマッチした、フィルタ後の場所ボキャブラリ９５４を生成する。また、ユーザが最近病院に訪問していない場合、フィルタモジュール２１６は、プリセットされた関心場所「病院」を場所ボキャブラリ９５２から削除する。登録モジュール２０８は、フィルタ後の場所ボキャブラリ９５４を音声エンジン１６２に登録する。
【０１５０】
次に、図９Ｃを参照して説明する。
フィルタモジュール２１６は、カバー範囲９７６に対応するカバー半径９７４を決定する。また、フィルタモジュール２１６は、ユーザの現在位置９７２を、カバー範囲９７６の中心点として設定する。
ここで、場所ボキャブラリ９８０は、グラフィック９７０に示したように、関心場所（「病院」「勤務先」）、ランドマーク（ランドマーク１〜３）、道路（道路１〜４）を含んでいるものとする。フィルタモジュール２１６は、現在位置９７２およびカバー範囲９７６を用いて、場所ボキャブラリ９８０をフィルタリングする。カバー範囲９７６は「勤務先」という関心場所、ランドマーク１および３というランドマーク、道路１および３という道路を含んでいるため、フィルタモジュール２１６は、「勤務先」という関心場所、ランドマーク１および３というランドマーク、道路１および３という道路を含む、フィルタ後の場所ボキャブラリ９８２を生成する。
【０１５１】
図１０Ａは、ユーザに関連付いたナビゲーションデータの例を示したグラフィック１０００である。
本例におけるナビゲーションデータは、クライアント装置１１５に記憶された第一のナビゲーションアプリケーション１１７、モバイルコンピュータ１３５に記憶された第二のナビゲーションアプリケーション１０７のようなナビゲーションアプリケーションから受信したＧＰＳトレースを含む。ＧＰＳトレースは、特定の日に行ったユーザの移動を表す。
認識アプリケーション１０９は、ナビゲーションデータに基づいて、関心場所（例えば、ジム１００２、スーパーマーケット１００６、勤務先１００４、自宅１００８）を決定
する。認識アプリケーション１０９はまた、ＧＰＳトレースの一部を構成する道路や、ＧＰＳトレース同士が交差する道路に対応する道路名称を決定する。また、認識アプリケーション１０９は、当該関心場所や道路名称を、ユーザに関連付いた場所ボキャブラリに追加する。
【０１５２】
図１０Ｂ〜図１０Ｆは、パーソナライズされた音声認識を用いたさまざまな結果の例を表したグラフィック１０１０，１０２０，１０３０，１０４０，１０５０である。
図１０Ｂは、「家の近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「家」という特定の関心場所を含んでいる。
図１０Ｃは、「スーパーマーケットの近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「スーパーマーケット」という特定の関心場所を含んでいる。
図１０Ｄは、「ジムの近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ジム」という特定の関心場所を含んでいる。
図１０Ｅは、「ジャクソン通り５丁目の近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ジャクソン通り」「５丁目」という道路名称を含んでいる。
図１０Ｆは、「ローレンス通り交差点の近くのコンビニを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ローレンス通り」という道路名称を含んでいる。
システム１００は、カスタムボキャブラリと、上述したようなフィルタリングによって、個人に最適化された結果を迅速に提供することができる。
【０１５３】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。例えば、実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【０１５４】
本明細書における「１つの実施形態」または「別の実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「１つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１５５】
本明細書の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１５６】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要が
ある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１５７】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【０１５８】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１５９】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１６０】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１６１】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１６２】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【０１６３】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定の
プログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１６４】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１６５】
１０１  サーバ
１０９  認識アプリケーション
１１５  クライアント装置
１２０  ソーシャルネットワークサーバ
１２４  検索サーバ
１３５  モバイルコンピュータ
１６０  音声サーバ
１７０  地図サーバ
【図１】
2015079237.tif 000003
【図２】
2015079237.tif 000004
【図３Ａ】
2015079237.tif 000005
【図３Ｂ】
2015079237.tif 000006
【図４Ａ】
2015079237.tif 000007
【図４Ｂ】
2015079237.tif 000008
【図４Ｃ】
2015079237.tif 000009
【図５Ａ】
2015079237.tif 000010
【図５Ｂ】
2015079237.tif 000011
【図５Ｃ】
2015079237.tif 000012
【図６Ａ】
2015079237.tif 000013
【図６Ｂ】
2015079237.tif 000014
【図６Ｃ】
2015079237.tif 000015
【図７】
2015079237.tif 000016
【図８Ａ】
2015079237.tif 000017
【図８Ｂ】
2015079237.tif 000018
【図９Ａ】
2015079237.tif 000019
【図９Ｂ】
2015079237.tif 000020
【図９Ｃ】
2015079237.tif 000021
【図１０Ａ】
2015079237.tif 000022
【図１０Ｂ】
2015079237.tif 000023
【図１０Ｃ】
2015079237.tif 000024
【図１０Ｄ】
2015079237.tif 000025
【図１０Ｅ】
2015079237.tif 000026
【図１０Ｆ】
2015079237.tif 000027