JP2015079237A - 音声認識方法および音声認識システム - Google Patents

音声認識方法および音声認識システム Download PDF

Info

Publication number
JP2015079237A
JP2015079237A JP2014164642A JP2014164642A JP2015079237A JP 2015079237 A JP2015079237 A JP 2015079237A JP 2014164642 A JP2014164642 A JP 2014164642A JP 2014164642 A JP2014164642 A JP 2014164642A JP 2015079237 A JP2015079237 A JP 2015079237A
Authority
JP
Japan
Prior art keywords
user
vocabulary
location
content
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014164642A
Other languages
English (en)
Other versions
JP6488588B2 (ja
Inventor
トゥープラン ディヴィア
Toopran Divya
トゥープラン ディヴィア
ライ ビニュトゥ
Rai Vinuth
ライ ビニュトゥ
パルンデカ ラウル
Parundekar Rahul
パルンデカ ラウル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Publication of JP2015079237A publication Critical patent/JP2015079237A/ja
Application granted granted Critical
Publication of JP6488588B2 publication Critical patent/JP6488588B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Abstract

【課題】音声認識システムのためのパーソナライズされたボキャブラリを構築する。【解決手段】音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含む。【選択図】図1

Description

本発明は音声認識技術に関し、特に、音声認識で用いられる辞書を構築する技術に関する。
(関連出願への相互参照)
本出願は、"CONFIGURING DYNAMIC CUSTOM VOCABULARY FOR PERSONALIZED SPEECH RECOGNITION"と題され、2013年10月15日に出願された、米国特許出願第14/054
,763号の優先権を主張する。該出願は、その全体が本明細書中に参照として組み込まれる。
(背景技術)
自動音声認識システムに対して音声クエリを入力し、当該音声認識システムから結果を受信する技術が普及している。しかしながら、時として、音声クエリに含まれる用語をシステムが正しく認識できないケースがある。
例えば、音声認識システムは、固有な場所を表す語を解釈できない場合がある。また、ユーザに関連する個人的な意味を持つ用語を認識できない場合もある。
このような場合、システムは、入力した音声クエリと関係のない結果を返す場合があり、あるいは、音声クエリを全く解釈することができない場合がある。
音声認識を行う既存のシステムでは、ユーザが移動を開始しようとしており、その行き先についての情報をクエリしようとしていることを考慮しておらず、また、ユーザの発音を認識する際に、ユーザの連絡先、現在位置、関心地点などの情報を利用していない。
加えて、既存の音声ベースのナビゲーションシステムにおいては、ローカルに保存されたデータを使用することはあっても、ユーザに関連する適切なデータまたは最新のデータを用いることをしていない。
例えば、いくつかのシステムでは、ローカルの連絡先データベースを参照することはできても、ソーシャルネットワーク上の、または、インスタントメッセージングプログラムを経由して、ユーザが交わした会話を取得することはない。
また、これらのシステムは、多くの場合、ユーザの現在位置を考慮しておらず、ユーザの知り合いや、ユーザが関心を持っている地点が、当該現在位置の近傍にある(いる)ことなども考慮していない。
また、一部の音声認識システムでは、動作速度の低下を避けるため、ボキャブラリの最大サイズを設定することができる。しかし、ボキャブラリの大規模なセットが音声認識システムに登録されている場合、音声認識の速度が低下し、また、認識データがノイズによって影響されるおそれがある。したがって、音声認識システムの精度を妥協しなければならない。
本発明は、上記の問題点を考慮してなされたものであり、音声認識システムのためのパーソナライズされたボキャブラリを構築する技術を提供することを目的とする。
上記課題を解決するための、本発明の一形態に係る方法は、
音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するた
めに、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
また、本発明の一形態に係る方法は、
音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得ステップと、前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築ステップと、一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
また、本発明の一形態に係る方法は、
音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリを生成するために、コンピュータが実行する方法であって、トリガイベントを検出する検出ステップと、前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得ステップと、前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築ステップと、一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリングステップと、前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、を含むことを特徴とする。
また、本発明は、以上の特徴のうち一つ以上を任意に含む方法であってもよい。
また、これらの形態の一つ以上の他の実装として、方法、システム、装置、コンピュータプログラム、コンピュータ記憶装置上に符号化された方法の実行などが含まれる。
また、これらの実装例は、以下の特徴のうち一つ以上を任意に含んでいてもよい。
例えば、前記場所ボキャブラリに含まれる単語は、特定の対象を指し示す単語である非カスタム単語と、指し示す対象がユーザごとに異なる単語であるカスタム単語のいずれかであり、前記場所フィルタリングパラメータは、ユーザに関連付いた第一の場所を含み、前記フィルタリングステップは、前記第一の場所に基づいて、カバー半径を決定するステップと、前記カバー半径および第一の位置に基づいて、カバー範囲を決定するステップと、前記カバー範囲に含まれる一つ以上の第二の場所に対応する、一つ以上のカスタム場所単語を含むように、フィルタリング後の場所ボキャブラリを生成するステップと、を含むことを特徴としてもよい。
また、ユーザから音声コマンドを取得する取得ステップと、前記登録後の場所ボキャブラリに基づいて、前記音声コマンドに含まれるカスタム単語を認識するステップと、前記カスタム単語を含む前記音声コマンドを送信するステップと、前記音声コマンドに合致する結果を受信するステップと、をさらに含んでいてもよい。
また、前記ユーザに関連付いたナビゲーションデータを取得するステップと、前記ナビ
ゲーションデータに基づいて、経路情報を取得するステップと、前記経路情報に関連付いた、一つ以上の道路名称またはランドマークを取得するステップと、をさらに含み、前記構築ステップでは、前記一つ以上の道路名称またはランドマークをさらに用いて、前記ユーザに対応する場所ボキャブラリを構築することを特徴としてもよい。
また、前記経路情報に基づいて、一つ以上の立ち寄り地点を取得するステップをさらに含み、前記構築ステップでは、前記立ち寄り地点をさらに用いて、前記ユーザに対応する場所ボキャブラリを構築することを特徴としてもよい。
また、前記ユーザに関連付いたソーシャルネットワークデータを取得するステップをさらに含み、前記関心場所取得ステップでは、前記ソーシャルネットワークデータに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記ユーザに関連付いた検索データを取得するステップをさらに含み、前記関心場所取得ステップでは、前記検索データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記ユーザに関連付いた連絡先データを取得するステップをさらに含み、前記関心場所取得ステップでは、前記連絡先データに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得することを特徴としてもよい。
また、前記移動状態は、未来の移動における移動開始時刻を含み、前記構築ステップは、前記移動開始時刻の到来までに実行されることを特徴としてもよい。
本明細書によって開示される発明は、特にいくつかの面において有利である。
本技術では、ボキャブラリのサイズを小さくするために、多くの独自な要素を利用して、必要なカスタムボキャブラリのセットのみを適切に決定することができる。また、本技術は、ユーザに対応するカスタムボキャブラリを生成し、音声エンジンに登録することができる。
カスタムボキャブラリを実装することで、音声認識の精度を向上させ、また、パーソナライズされた価値ある経験をユーザに提供することができる。
例えば、本技術によると、現在位置、関心地点、交差点など、一つ以上の既知の場所の近くにある位置についてのデータを含む音声クエリを識別し、解釈することができる。
別の例では、クライアント装置に個人情報を手動で入力せずとも、ユーザは、パーソナライズされた音声コマンドを発話することができ、当該コマンドに適合した結果を取得することができる。
本技術はまた、カスタムボキャブラリのサイズを制限するため、一つ以上のフィルタリングパラメータに基づいてカスタムボキャブラリをフィルタリングすることができる。これにより、システムの音声認識速度の低下を抑制し、高速な音声認識、音声認識精度の向上、ユーザ設定のよりよい学習、パーソナライズされた経験のユーザに対する提供、などを達成することができる。
なお、上記の利点はあくまで例であり、システムは、他の多数の利点および利益を有し得ることを理解されるべきである。
本発明によると、音声認識システムのためのパーソナライズされたボキャブラリを構築することができる。
音声認識におけるカスタムボキャブラリを構築するシステムを例示するブロック図である。 認識アプリケーションのモジュール構成例である。 カスタムボキャブラリを構築する方法のフローチャート例である。 カスタムボキャブラリを構築する方法のフローチャート例である。 場所ボキャブラリを構築する方法のフローチャート例である。 場所ボキャブラリを構築する方法のフローチャート例である。 場所ボキャブラリを構築する方法のフローチャート例である。 連絡先ボキャブラリを構築する方法のフローチャート例である。 連絡先ボキャブラリを構築する方法のフローチャート例である。 連絡先ボキャブラリを構築する方法のフローチャート例である。 コンテンツボキャブラリを構築する方法のフローチャート例である。 コンテンツボキャブラリを構成する方法のフローチャート例である。 コンテンツボキャブラリを構築する方法のフローチャート例である。 パーソナライズされた音声認識によって検索を行う方法のフローチャート例である。 関心場所を決定するためのクラスタリング処理を例示する図である。 関心場所を決定するためのクラスタリング処理を例示する図である。 ユーザに対応するカスタムボキャブラリを例示する図である。 場所ボキャブラリをフィルタリングするための処理を例示する図である。 場所ボキャブラリをフィルタリングするための処理を例示する図である。 ユーザに対応するナビゲーションデータを例示する図である。 パーソナライズされた音声認識の結果を例示する図である。 パーソナライズされた音声認識の結果を例示する図である。 パーソナライズされた音声認識の結果を例示する図である。 パーソナライズされた音声認識の結果を例示する図である。 パーソナライズされた音声認識の結果を例示する図である。
実施形態は、添付の図面を用いて例示されるが、これに限定されるものではない。図面については、同様の手段については同様の符号を用いて説明する。
本明細書中における、ボキャブラリとは、音声認識システムが利用する辞書であり、カスタムボキャブラリとは、ユーザ個人に対応するボキャブラリである。
本明細書では、ボキャブラリとして、場所に関連したもの、連絡先に関連したもの、ユーザが接触するコンテンツに関連したものの三つを例示する。それぞれを、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリと称する。
また、カスタム単語とは、「自宅」「お父さん」「ニュースアプリ」など、指し示す対象がユーザごとに異なる単語である。本明細書では、カスタム単語として、場所に関連したもの、連絡先に関連したもの、ユーザが接触するコンテンツに関連したものの三つを例示する。それぞれを、カスタム場所単語、カスタム連絡先単語、カスタムコンテンツ単語と称する。
(システム概要)
図1は、ある実施形態における、パーソナライズされた音声認識のためのカスタムボキャブラリを構築するシステム100のブロック図を例示したものである。
システム100は、サーバ101、クライアント装置115、モバイルコンピュータ135、検索サーバ124、ソーシャルネットワークサーバ120、地図サーバ170、音声サーバ160を含む。システム100の構成要素は、ネットワーク105によって互いに接続されている。
ネットワーク105は、既知の有線ネットワークであっても無線ネットワークであってよい。また、その構成は、スター型、トークンリング型やその他の構成を取ることができる。さらにまた、ネットワーク105は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えばインターネット)、公衆ネットワーク、プライベートネットワーク、仮想ネットワーク、または、複数の装置が通信に用いる相互接続されたその他の任意のデータパスであってもよい。さらに別の形態では、ネットワーク10
5はピアツーピアネットワークであってもよい。ネットワーク105は、複数の異なる通信プロトコルでデータ送信するための通信ネットワークと接続されたり、このような通信ネットワークを含んだりしても良い。
ある実施形態では、ネットワーク105は、Bluetooth(登録商標)通信ネットワークや携帯電話通信ネットワークを含み、SMS(ショートメッセージサービス)、MMS(マルチメディアメッセージサービス)、HTTP(ハイパーテキスト転送プロトコル)、直接データ接続、WAP、電子メールなどのデータを送受信する。
なお、図1では1つのネットワーク105のみが、サーバ101、クライアント装置115、モバイルコンピュータ135、検索サーバ124、ソーシャルネットワークサーバ120、地図サーバ170、音声サーバ160に接続されているが、複数のネットワーク105がこれらの構成要素に接続されていてもよい。
一実施形態において、認識アプリケーション109aがサーバ101において利用できる。認識アプリケーション109aは、信号線104を介してネットワーク105に接続される。
サーバ101は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、サーバ101は、検索サーバ124、ソーシャルネットワークサーバ120、音声サーバ160、クライアント装置115、地図サーバ170、または、モバイルコンピュータ135のうちの一つ以上に対してデータを送受信することができる。
なお、図1では、1台のサーバ101を例示するが、システム100は、複数のサーバ101を含んでいてもよい。
一実施形態において、認識アプリケーション109bは、クライアント装置115で実行されてもよい。クライアント装置115は、信号線108を介してネットワーク105に接続される。
一実施形態において、クライアント装置115は、サーバ101、検索サーバ124、ソーシャルネットワークサーバ120、音声サーバ160、地図サーバ170、または、モバイルコンピュータ135に対してデータを送受信することができる。
クライアント装置115は、メモリとプロセッサを含む、情報処理とネットワーク105へのアクセスが可能なコンピュータであり、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、個人情報端末(PDA)、モバイル電子メール装置、および、その他の電子機器などである。
ユーザ125は、クライアント装置115を利用する利用者である。
なお、図1では、1台のクライアント装置115を例示するが、システム100は、複数のクライアント装置115を含んでいてもよい。
一実施形態において、認識アプリケーション109bは、クライアント装置115に記録されたシンクライアントアプリケーションの一部として実行されてもよいし、サーバ101、ソーシャルネットワークサーバ120、音声サーバ160、モバイルコンピュータ135のうちの一つ以上に記録されたコンポーネントの一部として実行されてもよい。
例えば、サーバ101は、ユーザに対応するカスタムボキャブラリを記憶し、ユーザに当該カスタムボキャブラリを提示するユーザインタフェースを提供するためのグラフィックデータを生成することができる。
認識アプリケーション109bは、クライアント装置115に接続された表示装置(不図示)上でユーザインタフェースを提供するために、クライアント装置115にインストールされたブラウザ(不図示)に命令を送信することができる。一実施形態において、クライアント装置115は、第一のナビゲーションアプリケーション117を有していてもよい。第一のナビゲーションアプリケーション117は、ユーザにナビゲーション命令を提供するためのコードまたはルーチンを含む。例えば、第一のナビゲーションアプリケー
ション117は、GPSアプリケーションであってもよい。
一実施形態において、認識アプリケーション109cは、モバイルコンピュータ135上で実行されてもよい。モバイルコンピュータ135は、信号線134を介してネットワーク105に接続される。
一実施形態において、モバイルコンピュータ135は、サーバ101、検索サーバ124、ソーシャルネットワークサーバ120、音声サーバ160、地図サーバ170、または、クライアント装置115のうちの一つ以上に対してデータを送受信することができる。
モバイルコンピュータ135は、メモリとプロセッサを有するコンピュータを含んでもよい。一実施形態において、車両、自動車、バス、生体に埋め込まれた装置、非一時的(non-transitory)なコンピュータ機器(例えば、プロセッサ、メモリ、あるいは非一時的なコンピュータ機器の組み合わせ)を有する他のモバイルシステムなどであってもよい。
一実施形態において、モバイルコンピュータ135は、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、または、ネットワーク105に接続されたその他のモバイルデバイス等である。
ユーザ125は、信号線154を介してモバイルコンピュータ135と対話する。
例えば、ユーザ125は、車両を運転するドライバーや、助手席に乗車している同乗者であってもよい。
なお、図1では、1台のモバイルコンピュータ135を例示するが、システム100は、複数のモバイルコンピュータ135を含んでいてもよい。
一実施形態において、モバイルコンピュータ135は、第二のナビゲーションアプリケーション107を有している。第二のナビゲーションアプリケーション107は、ユーザにナビゲーション命令を提供するためのコードまたはルーチンを含む。例えば、第二のナビゲーションアプリケーション107は、GPSアプリケーションであってもよい。
一実施形態において、認識アプリケーション109dは、ソーシャルネットワークサーバ120上で実行されてもよい。ソーシャルネットワークサーバ120は、信号線121を介してネットワーク105に接続される。
ソーシャルネットワークサーバ120は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、ソーシャルネットワークサーバ120は、ネットワーク105を介して、クライアント装置115、サーバ101、モバイルコンピュータ135、検索サーバ124、地図サーバ170、または、音声サーバ160のうちの一つ以上に対してデータを送受信することができる。
ソーシャルネットワークサーバ120は、ソーシャルネットワークアプリケーション122を含む。
ソーシャルネットワークとは、ユーザが共通の特徴によって結ばれた任意のタイプの社交組織である。共通の特徴とは、友達、家族、同僚、同好などの関係やつながりを含む。一例において、共通の特徴は、明確に定義された関係と、他のオンラインユーザーとの社会的なつながりによって暗黙的に定義された関係を含む。一例において、ソーシャルネットワークにおけるユーザのつながりは、ソーシャルグラフによって表される。ソーシャルグラフとは、ソーシャルネットワークにおけるユーザをマッピングしたものであり、ソーシャルネットワークにおいて、各ユーザがどのように関連しているかを示すものである。
別の例として、ソーシャルネットワークは、システム100のユーザによるソーシャルグループを記憶し、保持してもよい。ソーシャルグループとは、例えばユーザの同僚、知人、親密な家族や友人、アクティブな家族や友人、古くなったり未使用の連絡先等である。これらのグルーピングは、ソーシャルネットワークによって提供されるAPI(Application Programming Interface)を通して、当該ソーシャルネットワークから取得するこ
とができる。
例えば、認識アプリケーション109は、ユーザにとって最も関連がある、または重要な連絡先を決定し、あまり重要ではない連絡先(例えば、古い連絡先、未使用の連絡先、制限された連絡先、めったに連絡や交流しない知人)をフィルタリングするために、これらのAPIを使用してグルーピングを取得してもよい。
また、ソーシャルネットワークは、当該APIを通して、ユーザのコンテンツストリームへのアクセスを提供してもよい。認識アプリケーション109は、ユーザに関連するコンテンツストリームに表示される頻度やタイミングに基づいて、連絡先、コンテンツ、場所などが、当該ユーザに関連するかを単独で決定することができる。
また、特定のユーザに対応するコンテンツストリームに含まれる連絡先、コンテンツ、場所などの関連性を判断するため、他の要素を用いてもよい。例えば、当該ユーザがこれらの対象をどの程度好んでいるか、当該対象に関連するコンテキスト情報はあるか、当該対象についての情報を得るために明示的な購読やフォローをしたか、当該対象に関する場所に訪問したか、などといったものが挙げられる。
なお、図1では、ソーシャルネットワークサーバ120およびソーシャルネットワークアプリケーション122によって提供される一つのソーシャルネットワークを例示したが、システム100は、他のソーシャルネットワークサーバやソーシャルネットワークアプリケーションによって提供される、複数のソーシャルネットワークを含んでいてもよい。
一実施形態において、認識アプリケーション109eは、音声サーバ160上で実行されてもよい。音声サーバ160は、信号線163を介してネットワーク105に接続される。
音声サーバ160は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、音声サーバ160は、検索サーバ124、ソーシャルネットワークサーバ120、サーバ101、クライアント装置115、地図サーバ170、または、モバイルコンピュータ135のうちの一つ以上に対してデータを送受信することができる。
なお、図1では、1台の音声サーバ160を例示するが、システム100は、複数の音声サーバ160を含んでいてもよい。
認識アプリケーション109は、パーソナライズされた音声認識をユーザに提供するためのコードまたはルーチンである。
いくつかの実施形態において、認識アプリケーション109は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などのハードウェア、または、ハードウェアとソフトウェアの組み合わせを用いて実装される。
ある実施形態では、認識アプリケーション109は、装置とサーバの両方に分散して格納されてもよいし、装置とサーバのいずれかのみに格納されてもよい。
認識アプリケーション109については、図2〜図6Bを参照しながら後ほど詳しく説明する。
一実施形態において、音声サーバ160は、音声エンジン162および音声ライブラリ166を含む。音声エンジン162は、パーソナライズされた音声認識を用いて検索を制御するためのコードまたはルーチンである。一実施形態において、音声エンジン162は、ユーザから音声によるコマンドを取得し、当該音声コマンドに含まれる一つ以上のカスタム単語を認識する。そして、音声エンジン162は、検索処理を制御し、取得した音声コマンド(一つ以上のカスタム単語を含む音声コマンド)にマッチする結果を取得し、ユーザに提供する。さらなる実施形態において、音声エンジン162は、認識アプリケーション109から、一つ以上のカスタム単語を含む音声コマンドを受信する。
音声エンジン162は、検索処理を制御し、一つ以上のカスタム単語を含む音声コマン
ドにマッチする結果を取得することができる。なお、音声エンジン162は、認識アプリケーション109に結果を送信してもよい。音声エンジン162については、図7を参照しながらのちほど説明する。
カスタム単語とは、個々のユーザに特化した単語である。例えば、「自宅」というカスタム単語は、当該ユーザに関連付いた自宅の住所を意味し、「ニュースアプリ」というカスタム単語は、当該ユーザにニュースを提供するためのアプリケーションを意味する。また、「お父さん」というカスタム単語は、当該ユーザの父親の連絡先(例えば電話番号、住所、メールアドレス等)を意味する。もちろん、他の例も採用可能である。
カスタムボキャブラリは、ユーザに関連付いた一つ以上のカスタム単語を含むボキャブラリである。例えば、カスタムボキャブラリは、ユーザに関連付いた、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのうちの一つである。
場所ボキャブラリは、一つ以上の、場所を表すカスタム単語(関心地点、ランドマーク、道路名称など)を含むボキャブラリである。
連絡先ボキャブラリは、一つ以上の、連絡先を表すカスタム単語(一つ以上の連絡先など)を含むボキャブラリである。
コンテンツボキャブラリは、一つ以上の、コンテンツを表すカスタム単語(コンテンツソース、コンテンツカテゴリなど)を含むボキャブラリである。
場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリについては、図2および図9Aを参照しながら後ほど詳しく説明する。
一実施形態において、音声エンジン162は、登録アプリケーション164を含む。登録アプリケーション164は、ユーザに関連付いたカスタムボキャブラリを音声エンジン162に登録するためのコードまたはルーチンである。一実施形態において、登録アプリケーション164は、ユーザに関連付いた一つ以上のカスタムボキャブラリを表すデータを認識アプリケーション109から受信し、当該カスタムボキャブラリを音声エンジン162に登録したうえで、音声ライブラリ166に格納する。
例えば、登録アプリケーション164は、場所ボキャブラリに含まれる関心場所を音声エンジン162に登録し、当該関心場所(例えば、関心場所の名称や住所など)を音声ライブラリ166に格納する。他の例では、登録アプリケーション164は、連絡先ボキャブラリに含まれる連絡先を音声エンジン162に登録し、当該連絡先(例えば、連絡先の名称、電話番号、メールアドレス、住所など)を音声ライブラリ166に格納する。
一実施形態において、登録アプリケーション164は、一つ以上のカスタムボキャブラリを音声エンジン162に登録するためのAPIを含む。また、一実施形態において、登録アプリケーション164は、新しく登録された、ユーザに関連付いたカスタム単語を用いて、音声ライブラリ166に登録されたカスタムボキャブラリを更新する。
音声ライブラリ166は、様々なユーザに関連付いた、登録済みの様々なカスタムボキャブラリを格納する手段である。例えば、音声ライブラリ166は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを、対応するユーザごとに格納する。一実施形態において、音声ライブラリ166は、他のボキャブラリをユーザごとに格納してもよい。また、一実施形態において、音声ライブラリ166は、データを記憶し、データへのアクセスを提供するために、DBMS(Database Management System)を用いてもよい。
検索サーバ124は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、検索サーバ124は、検索クエリを、サーバ101、ソーシャルネットワークサーバ120、音
声サーバ160、クライアント装置115、または、モバイルコンピュータ135のうちの一つ以上から受信する。
検索サーバ124は、検索クエリを用いて検索を実行し、当該検索クエリにマッチする結果を生成する。また、検索サーバ124は、生成した結果を、サーバ101、ソーシャルネットワークサーバ120、音声サーバ160、クライアント装置115、または、モバイルコンピュータ135のうちの一つ以上に対して送信する。
一実施形態において、検索サーバ124は、信号線123を介してネットワーク105に接続される。なお、図1では、1台の検索サーバ124を例示するが、システム100は、複数の検索サーバ124を含んでいてもよい。
地図サーバ170は、プロセッサおよびメモリを備え、ネットワークによる通信を行うことができる、ハードウェアサーバや仮想サーバ等である。一実施形態において、地図サーバ170は、サーバ101、ソーシャルネットワークサーバ120、音声サーバ160、クライアント装置115、検索サーバ124、または、モバイルコンピュータ135のうちの一つ以上に対してデータを送受信することができる。
例えば、地図サーバ170は、地図データを、認識アプリケーション109、第一のナビゲーションアプリケーション117、第二のナビゲーションアプリケーション107のうちの一つ以上に送信することができる。
地図サーバ170は、信号線171を介してネットワーク105に接続される。
なお、一実施形態において、地図サーバ170は、関心地点(Point of Interest、以
下POI)データベース172や、地図データベース174を含んでいてもよい。
POIデータベース172は、地域ごとにおける関心地点を記憶する手段である。例えば、POIデータベース172は、一つ以上の地域における、観光スポット、ホテル、レストラン、ガソリンスタンド、ランドマーク等についてのデータを記憶する手段である。一実施形態において、POIデータベース172は、データを記憶し、データへのアクセスを提供するために、DBMSを用いてもよい。
また、地図データベース174は、一つ以上の地域における地図データを記憶する手段である。一実施形態において、地図データベース174は、データを記憶し、データへのアクセスを提供するために、DBMSを用いてもよい。
(認識アプリケーション)
図2を参照して、認識アプリケーション109の詳細について説明する。図2は、一実施形態における、認識アプリケーション109、プロセッサ235、メモリ237、通信部241、入出力部243、記憶装置245を含むコンピュータ200のブロック図である。コンピュータ200が有する構成要素は、バス220によって互いに接続されている。
入出力部243は、信号線230によってバス220に接続される。様々な実施形態において、コンピュータ200は、サーバ101、クライアント装置115、モバイルコンピュータ135、ソーシャルネットワークサーバ120、音声サーバ160のうちのいずれかである。
プロセッサ235は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行して表示装置に表示信号を提供する他のプロセッサアレイのような、一つ以上の処理ユニットを含む。プロセッサ235は、他のコンポーネントと通信を行えるよう、信号線222によってバス220に接続される。
プロセッサ235は、データ信号を処理し、そのアーキテクチャは、CISC(Complex Instruction Set Computer)、RISC(Reduced Instruction Set Computer)、これら両方の命令セットの組合せとして実装されたアーキテクチャなど様々なアーキテクチャでありうる。なお、図2には一つのプロセッサ235だけが示されているが、複数のプロ
セッサ235が含まれていてもよい。上記以外のプロセッサ、オペレーティングシステム、センサ、表示装置、あるいは物理的構成も採用可能である。
メモリ237は、プロセッサ235が実行可能な命令やデータを格納する手段であり、一つ以上のコンピュータによって読み取り可能な非一時的記憶媒体を含む。メモリ237は、他のコンポーネントと通信を行えるよう、信号線222によってバス220に接続される。メモリ237に格納される命令やデータは、本明細書に示す技術を実行するためのコードを含む。
メモリ237は、DRAM、SRAM、組み込み型メモリ、フラッシュメモリやその他の既存のメモリ装置である。ある実施形態においては、メモリ237は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的(non-volatile)メモリや永久記憶装置を含んでも良い。
一実施形態において、通信部241は、信号線226によってバス220に接続される。通信部241は、サーバ101、移動プラットフォーム135、クライアント装置115、音声サーバ160、検索サーバ124、地図サーバ170、ソーシャルネットワークサーバ120のうちの一つ以上に対してデータの送受信を行う。その通信先は、認識アプリケーション109が格納されている場所によって異なる。
いくつかの実施形態において、通信部241は、ネットワーク105や他の通信チャネルへの直接的な物理的接続のためのポートやネットワークインタフェースを含む。例えば、通信部241は、USB、SD、CAT−5など、クライアント装置115と有線通信するためのポートを含む。
ある実施形態では、通信部241は、IEEE 802.11、IEEE 802.16、BlueTooth(登録商標)、DSRC(Dedicated Short-Range Communication)または他の適当な無線通信方式を含む一つまたは複数の無線通信方式を用いて、クラ
イアント装置115や他の通信チャネルとデータを交換するための無線送受信部を含む。
一実施形態において、通信部241は、SMS(ショートメッセージサービス)、MMS(マルチメディアメッセージサービス)、HTTP(ハイパーテキスト転送プロトコル)、直接データ接続、WAP、電子メールやその他の適切な電子通信方式により、携帯電話通信網上でデータを送受信するためのセルラ通信トランシーバを含む。ある実施形態では、通信部241は、有線ポートと無線送受信機を含む。通信部241は、TCP/IP、HTTP、HTTPS、SMTPなどの標準的なネットワークプロトコルを用いてファイルやメディアオブジェクトを配布するために、ネットワーク105への従来型の接続を提供する。
記憶装置245は、本明細書に記載される構造、処理、または機能を提供するためのデータを格納する非一時的(non-transitory)な記憶媒体である。一実施形態において、記憶装置245は、データを格納し、データへのアクセスを提供するデータベース管理システム(DBMS)を含んでいてもよい。
記憶装置245は、DRAM、SRAM、組み込み型メモリ、フラッシュメモリやその他の既存のメモリ装置である。ある実施形態においては、記憶装置245は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置や情報記憶の分野において既知のその他の大容量記憶装置などの、非一時的(non-volatile)メモリや永久記憶装置を含んでも良い。
一実施形態において、記憶装置245は、信号線228によってバス220に接続され
る。また、一実施形態において、記憶装置245には、ユーザに関連付いた、ソーシャルネットワークデータ、検索データ、ナビゲーションデータ、関心場所、ランドマーク、道路名称、一つ以上のフィルタリングパラメータ(場所、コンテンツ、連絡先をフィルタリングするためのパラメータ)、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのうちの一つ以上が格納される。
記憶装置245に格納されるデータについては、のちほど詳しく説明する。一実施形態において、記憶装置245は、本明細書に記載される構造、処理、または機能を提供するためのデータを格納する。
一実施形態において、認識アプリケーション109は、制御モジュール202、移動状態モジュール203、場所モジュール204、連絡先モジュール206、コンテンツモジュール207、登録モジュール208、音声モジュール210、提供モジュール212、UIモジュール214、フィルタモジュール216を含む。認識アプリケーション109に含まれるこれらの各コンポーネントは、バス220によって接続される。
制御モジュール202は、認識アプリケーション109と、コンピュータ200の他のコンポーネントとの通信を制御するルーチンを含むソフトウェアである。
一実施形態において、制御モジュール202は、認識アプリケーション109と、コンピュータ200の他のコンポーネントとの通信を制御するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、制御モジュール202は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、制御モジュール202は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
制御モジュール202は、通信部241を介して、クライアント装置115、ソーシャルネットワークサーバ120、サーバ101、音声サーバ160、地図サーバ170、モバイルコンピュータ135のうちの一つ以上に対してデータを送受信することができる。その通信先は、認識アプリケーション109が格納されている場所によって異なる。
例えば、制御モジュール202は、通信部241を介して、ソーシャルネットワークサーバ120からソーシャルネットワークデータを受信し、当該ソーシャルネットワークデータを場所モジュール204やコンテンツモジュール207に送信することができる。他の例では、制御モジュール202は、UIモジュール214から、ユーザにユーザインタフェースを提供するためのグラフィックデータを受信し、当該グラフィックデータをクライアント装置115やモバイルコンピュータ135に送信し、ユーザインタフェースをユーザに提供させることができる。
一実施形態において、制御モジュール202は、認識アプリケーション109の他のコンポーネントからデータを受信し、当該データを記憶装置245に格納することができる。例えば、制御モジュール202は、UIモジュール214からグラフィックデータを受信し、当該グラフィックデータを記憶装置245に格納することができる。一実施形態において、制御モジュール202は、記憶装置245からデータを取得し、当該データを、認識アプリケーション109の他のコンポーネントに送信することができる。例えば、制御モジュール202は、ユーザに関連付いた場所ボキャブラリを記憶装置245から取得し、当該ボキャブラリを登録モジュール208に送信することができる。
移動状態モジュール203は、ユーザに関連付いた移動状態を取得するルーチンを含むソフトウェアである。一実施形態において、移動状態モジュール203は、ユーザに関連付いた移動状態を取得するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、移動状態モジュール203は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、移動状態モジュール203は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
移動状態とは、移動の状態や具体的な内容である。例えば、もし、「移動」が、未来のものである場合、移動状態は、当該未来の移動に関連付いた、出発時刻、出発地、目的地、所要時間、移動経路、一人以上の同乗者(例えば、自動車に乗せている子供)などである。他の例では、もし、「移動」が、現在ユーザが行っている最中の移動である場合、移動状態は、当該現在の移動に関連付いた、出発時刻、出発地、目的地、所要時間、移動経路、当該経路中における現在位置、出発からの経過時間、到着までの残り時間、一人以上の同乗者などである。
一実施形態において、移動状態モジュール203は、準備トリガイベントを登録モジュール208から取得し、当該準備トリガイベントに基づいて、移動状態を取得する。準備トリガイベントとは、例えば、「ユーザが車両にキーを挿入した」「無線キーがONになった」「キーフォブ認証のハンドシェイクが開始された」「クライアント装置115上のアプリケーションを通して、ユーザが車両をリモートコントロールした」「ユーザが車両に向かって歩いてくる」といったイベントである。移動状態モジュール203は、このような準備トリガイベントに基づいて、移動が開始されることを検出し、移動状態を生成する。準備トリガイベントについては、後ほど詳しく説明する。
一実施形態において、移動状態モジュール203は、準備トリガイベントに応じて、ソーシャルネットワークサーバ120やユーザプロファイルサーバ(不図示)から、ユーザに関連付いたユーザプロファイルデータを取得することができる。ユーザプロファイルデータは、ユーザに関連付いたプロファイルを含むデータである。例えば、ユーザプロファイルデータは、ユーザの個人的な予定を記したカレンダデータ、TODOリストデータ、ユーザが好むイベント(例えばスポーツゲームやコンサート等のリスト)を集めたイベントデータ、ユーザの興味・身体的属性・投稿・好み・苦手・口コミ・友人等を表すソーシャルネットワークプロファイルデータ、あるいは、ユーザに関連付いた統計データなどである。移動状態モジュール203は、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルネットワークデータを取得することができる。
移動状態モジュール203は、準備トリガイベントに応じて、ユーザが所有するモバイルコンピュータ135から、モバイルコンピュータデータを取得することができる。モバイルコンピュータデータは、準備データ、モバイルコンピュータ135の位置を表す位置データ、同期された現在時刻、現在の季節を表す季節データ、天候を表す天候データ、モバイルコンピュータ135に関連付いた利用状況データなどである。一実施形態において、モバイルコンピュータ135は、車両や、車両データを含むモバイルコンピュータデータを含む。車両データとは、車両の充電設定データ、車両の空調設定データ、車両の現在位置を表す位置データ、同期された現在時刻、車両の走行状態(例えば、移動や機械的状態の変化)を表すデータを含んだ、車両に関連付いたセンサデータ、車両の利用状態(例えば、出発時刻、到着時刻、所要時間、移動経路、出発地、目的地などを含む、現在または過去の移動状態)を表す車両利用状態データなどであるが、これらに限られない。
一実施形態において、移動状態モジュール203は、ユーザプロファイルデータ、モバイルコンピュータデータ、ソーシャルネットワークデータに基づいて、ユーザに関連付いた移動状態を取得する。また、一実施形態において、移動状態モジュール203は、ソーシャルネットワークデータ、ユーザプロファイルデータ、車両データに少なくとも部分的に基づいて、出発時刻、出発地、目的地などからなる未来の移動状態を取得する。
例えば、もし車両データが、平日の午前8時にユーザが自宅から勤務先に向けて移動していることを示す履歴を含んでいる場合、移動状態モジュール203は、当該履歴に基づいて、未来の移動における出発時刻を、平日の午前8時と予測する。また、他の例では、もしユーザプロファイルデータが、「翌日の朝8時半に会議がある」というカレンダデータを含んでおり、車両データが、自宅から勤務先までの所要時間は30分以下という経路データを含んでいた場合、移動状態モジュール203は、未来の移動における出発時刻を、午前8時前(例えば午前7時半)と予測する。
一実施形態において、移動状態モジュール203は、ユーザの車両に搭載されたGPSアプリケーションから受信したナビゲーションデータに少なくとも部分的に基づいて、ユーザが現在行っている移動の状態を取得する。一例において、ナビゲーションデータは、クライアント装置115(例えば携帯電話やGPS装置など)から取得することができる。例えば、移動状態モジュール203は、ナビゲーションデータに基づいて、移動経路におけるユーザの現在位置、目的地までの時間、出発からの経過時間等を取得する。
一実施形態において、移動状態モジュール203は、移動状態(現在の移動状態や未来の移動状態など)を場所モジュール204、連絡先モジュール206、コンテンツモジュール207、登録モジュール208、フィルタモジュール216のうちの一つ以上に送信する。さらなる実施形態において、移動状態モジュール203は、移動状態を記憶装置245に格納する。
場所モジュール204は、ユーザに関連付いた場所ボキャブラリを生成するためのルーチンを含むソフトウェアである。一実施形態において、場所モジュール204は、ユーザに関連付いた場所ボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、場所モジュール204は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、場所モジュール204は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
場所ボキャブラリは、ユーザに関連付いた場所データを含むカスタムボキャブラリである。例えば、場所ボキャブラリは、ユーザの移動経路に関連する一つ以上の関心場所、一つ以上のランドマーク、一つ以上の道路名称を含む。
場所ボキャブラリの例を図9Aに示す。一例において、関心場所またはランドマークは、関心地点とも呼ばれる。場所ボキャブラリは、関心地点の他の例を含んでいてもよい。
関心場所とは、ユーザが関心を寄せる場所である。関心場所とは、例えば、移動の目的地、移動経路上の立ち寄り地点、自宅の住所、勤務先の場所、ジムの住所、かかりつけ病院の住所、チェックイン場所(ソーシャルネットワークにおいてチェックインされたレストランや店など)、投稿された画像にタグ付けされた場所、ユーザによって推薦または共有された場所、ユーザによって検索された場所などであるが、これらに限られない。他の例も採用可能である。立ち寄り地点とは、ユーザが移動中に止まる地点である。立ち寄り地点とは、例えば、コーヒーショップ、銀行、ガソリンスタンド、クリーニング店、同乗者を乗降させる場所などである。他の例も採用可能である。
一実施形態において、場所モジュール204は、ユーザに関連付いたソーシャルネットワークデータを、ソーシャルネットワークサーバ120から(例えばユーザの同意を得て)取得する。ソーシャルネットワークデータは、ソーシャルネットワークにおいてユーザが行った一つ以上のソーシャル活動を表すデータである。例えば、ソーシャルネットワークデータは、ユーザが、クライアント装置115やモバイルコンピュータ135を用いて
チェックインした一つ以上の場所を表す。他の例では、ソーシャルネットワークデータは、ユーザによって行われた投稿、シェア、コメント、推薦などを表す。別の例では、ソーシャルネットワークデータは、ユーザに関連付いた“繋がり”(例えば、友達、家族、知人などのリスト)を表すソーシャルグラフデータを含む。なお、ソーシャルネットワークデータは、ユーザに関連付いた他のデータを含んでいてもよい。
場所モジュール204は、ユーザのソーシャルネットワークデータに基づいて、ユーザに関連付いた一つ以上の関心場所を決定する。例えば、場所モジュール204は、ユーザのソーシャルネットワークデータを解析して、次のような一つ以上の関心場所を決定する。
(1)ユーザによってチェックインされた場所
(2)ユーザやユーザの知人によって投稿された一つ以上の内容や画像にタグ付けされた場所
(3)ユーザやユーザの知人によって推薦またはシェアされた場所
(4)ユーザの投稿やコメント中で言及された場所
一実施形態において、場所モジュール204は、タグ付け、推薦、シェアなどによってユーザが関心場所を明示していなくても、一つ以上の関心場所を、ユーザのソーシャルネットワークデータから黙示的に推定する。例えば、ユーザのソーシャルネットワークデータが、当該ユーザが油絵に関心を持っていることを示している場合、場所モジュール204は、街にある一つ以上の美術館やギャラリーを当該ユーザの一つ以上の関心場所として推定する。
一実施形態において、場所モジュール204は、ソーシャルネットワークデータに含まれる位置データにさらに基づいて、一つ以上の関心場所を決定する。位置データとは、例えば、ユーザに関連付いた場所や住所を表すデータ(ユーザによって推薦された場所や住所など)である。一実施形態において、場所モジュール204は、ソーシャル検索履歴(ソーシャルネットワークにおいて行われた検索クエリ)を取得し、当該ユーザの検索データに基づいて、一つ以上の関心場所を決定する。
例えば、検索データが、ユーザがソーシャルネットワークにおいて最も有名なレストランを検索したことを示している場合、場所モジュール204は、当該ユーザが検索したレストランを、一つ以上の関心場所として決定する。
一実施形態において、場所モジュール204は、ユーザに関連付いた連絡先データを取得し、当該連絡先データに含まれる位置データに基づいて、一つ以上の関心場所を決定する。例えば、連絡先データは、ユーザの連絡先の一つ以上の住所を表すデータであり、場所モジュール204は、当該一つ以上の連絡先の住所を、一つ以上の関心場所として決定する。
一実施形態において、場所モジュール204は、ユーザの連絡先の検索履歴を表すデータを取得し、当該検索データに基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール204は、ユーザが1時間以内に検索した一つ以上の連絡先の住所に基づいて、一つ以上の関心場所を決定する。
一実施形態において、場所モジュール204は、ユーザに関連付いた検索データを、検索サーバ124から(例えばユーザの同意を得て)取得する。検索データとは、ユーザに関連付いた一つ以上の検索クエリを含む検索履歴である。例えば、検索データは、ユーザがオンラインで検索した一つ以上のレストラン、一つ以上の目的地、一つ以上の観光スポットなどを表す。さらなる実施形態において、場所モジュール204は、クライアント装置115やモバイルコンピュータ135にインストールされた不図示のブラウザから検索データを取得する。他の実施形態において、場所モジュール204は、検索データから、ユーザに関連付いた一つ以上の関心場所を決定する。例えば、場所モジュール204は、ユーザが検索した一つ以上の場所を、一つ以上の関心場所として決定する。
一実施形態において、場所モジュール204は、ユーザに関連付いたナビゲーションデータを、モバイルコンピュータ135やクライアント装置115から取得する。例えば、場所モジュール204は、ナビゲーションデータを、第二のナビゲーションアプリケーション107(例えば車載ナビゲーションシステム)から取得する。他の例において、場所モジュール204は、ナビゲーションデータ(例えば走行中に更新されるGPSデータ)を、第一のナビゲーションアプリケーション117(例えばクライアント装置115にインストールされたGPSアプリケーション)から取得する。ナビゲーションデータとは、ユーザによって行われる一つ以上の移動(例えば、過去にユーザが行った移動、現在ユーザによって行われている移動、計画された未来の移動等)を表すデータである。例えば、ナビゲーションデータは、一つ以上の移動に関連付いた出発地、目的地、所要時間、移動経路、出発時刻、到着時刻等のうちの一つ以上を含む。他の例において、ナビゲーションデータは、ユーザに関連付いたGPSログやGPSトレースを含む。
一実施形態において、場所モジュール204は、ナビゲーションデータに基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール204は、ナビゲーションデータから得た目的地のリストを、一つ以上の関心場所として決定する。他の例において、ナビゲーションデータは、ユーザがたびたび訪れている様々な場所(例えばレストラン等)を示す、ユーザのモバイル端末に関連付いたジオロケーションデータを含んでもよい。ユーザが、ソーシャルネットワークで明示的にチェックインしていない場合であっても、位置情報のこのような利用についてのユーザの同意があれば、場所モジュール204は、これらの場所を関心場所として決定することができる。
一実施形態において、場所モジュール204は、ナビゲーションデータを処理し、移動経路を取得、または、当該移動経路に関連付いた立ち寄り地点を取得する。例えば、場所モジュール204は、ナビゲーションデータに含まれるGPSログを処理し、ユーザの移動経路を取得する。さらなる例では、場所モジュール204は、モバイルコンピュータ135やクライアント装置115に接続された一つ以上のセンサ(不図示)からセンサデータを取得する。
場所モジュール204は、センサデータやナビゲーションデータに基づいて、移動経路における立ち寄り地点を取得する。例えば、場所モジュール204は、速度が0であることを示す一つ以上の速度データ、現在位置と現在日時を示すGPSデータ、車両のエンジンの稼働状態を示すエンジンデータ、一つ以上のセンサから取得したサイドブレーキ状態を示すデータ等を取得し、現在位置を立ち寄り地点であると判定する。
一実施形態において、場所モジュール204は、移動経路または一つ以上の立ち寄り地点に基づいて、一つ以上の関心場所を決定する。例えば、場所モジュール204は、図8Aや図8Bに示したようなクラスタリング処理によって、一つ以上の関心場所を決定する。
一実施形態において、場所モジュール204は、移動経路または立ち寄り地点に関連付いた一つ以上のランドマークを決定する。例えば、場所モジュール204は、移動経路または一つ以上の立ち寄り地点から所定の距離以内にあるランドマークのリストを、POIデータベース172に対してクエリする。一実施形態において、場所モジュール204は、地図データベース174から、移動経路や一つ以上の立ち寄り地点に関連付いた地図データを取得する。また、場所モジュール204は、地図データに基づいて、移動経路や一つ以上の立ち寄り地点に関連付いた一つ以上の道路名称を取得する。例えば、場所モジュール204は、移動経路の一部を構成する一つ以上の第一の道路の名称と、移動経路と交差する一つ以上の第二の道路の名称を取得する。他の例では、場所モジュール204は、一つ以上の立ち寄り地点に向かう一つ以上の道路の名称を取得する。
一実施形態において、場所モジュール204は、ソーシャルネットワークデータ、検索
データ、ナビゲーションデータのうち一つ以上から生成された関心場所を集約する。また、場所モジュール204は、集約した関心場所、一つ以上のランドマーク、一つ以上の道路名称を記憶装置245に格納する。一実施形態において、場所モジュール204は、集約された関心場所、ランドマーク、道路名称を用いて、ユーザに関連付いた場所ボキャブラリを生成する。例えば、場所モジュール204は、関心場所、ランドマーク、道路名称を用いて、ユーザに関連付いた場所ボキャブラリを構築する。場所ボキャブラリは、例えば、道路、交差点、他の場所など、ユーザが知っている所定の場所や、近傍にあるアイテムなどを含む。
一実施形態において、場所モジュール204は、関連付いたナビゲーションデータに基づいて、場所ボキャブラリに含まれる各カスタム場所を訪問する頻度や、訪問履歴などを取得する。例えば、場所モジュール204は、各関心場所、ランドマーク、道路を訪問した回数や、ユーザが最後に訪問した際の日時を取得する。
一実施形態において、場所モジュール204は、ユーザに関連付いた移動状態に基づいて、一つ以上の関心場所を決定する。例えば、移動が未来の移動であり、当該移動の状態が、目的地と、当該目的地に至る経路を含んでいた場合、場所モジュール204は、当該経路上の一つ以上の関心地点、当該経路に含まれる道路の名称、目的地周辺のランドマーク等を、一つ以上の関心場所として決定する。他の例では、移動が現在の移動であり、その状態が、移動経路上のユーザの現在位置を含んでいた場合、場所モジュール204は、ユーザの現在位置周辺にある一つ以上のランドマーク、道路等を、一つ以上の関心場所として決定する。これは、場所モジュール204が、ユーザが興味を持って見たり選択したりするであろう関心場所を予測的に提供できるという点において有益である。
場所モジュール204は、一つ以上の関心場所を用いて場所ボキャブラリを構成し、また、移動状態のアップデートに基づいて、一つ以上の関心場所や場所ボキャブラリをアップデートする。例えば、ユーザが移動経路に沿って移動中に、場所モジュール204は、更新された移動状態に基づいて、近傍にある一つ以上の関心場所や場所ボキャブラリを、リアルタイムで最新のものに更新する。このようにすることで、ユーザにとって最も関連する関心場所を最新にし、連続して提供することができる。
一実施形態において、場所モジュール204は、登録モジュール208から、準備トリガイベントを受信し、当該準備トリガイベントに応答して、一つ以上の関心場所や場所ボキャブラリを生成ないし更新する。例えば、場所モジュール204は、準備トリガイベントに応答して、出発時刻前または出発時刻に、一つ以上の関心場所や場所ボキャブラリを生成ないし更新する。このようにすることで、システム100は、移動時において、最新の関心場所についての情報をユーザに提供することができる。
一実施形態において、場所モジュール204は、ユーザに関連付いた場所ボキャブラリをフィルタモジュール216に送信する。さらなる実施形態において、場所モジュール204は、場所ボキャブラリを記憶装置245に格納する。
連絡先モジュール206は、ユーザに関連付いた連絡先ボキャブラリを生成するルーチンを含むソフトウェアである。一実施形態において、連絡先モジュール206は、ユーザに関連付いた連絡先ボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、連絡先モジュール206は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、連絡先モジュール206は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
一実施形態において、連絡先モジュール206は、モバイルコンピュータ135やクライアント装置115に格納されたユーザの連絡帳から、連絡先データを取得する。連絡先データは、ユーザに関連付いた一つ以上の連絡先を表すデータである。例えば、連絡先データは、連絡先として登録された人物の名前、電話番号、メールアドレス等を含む。さらなる実施形態において、連絡先モジュール206は、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルグラフデータを受信する。ソーシャルグラフデータは、例えば、ユーザに関する「つながり」である、一人以上の家族、友人、同僚、知人などを表す。
連絡先モジュール206は、連絡先データおよびソーシャルグラフデータを用いて、ユーザに関連付いた連絡先ボキャブラリを生成する。例えば、連絡先モジュール206は、連絡先データに含まれる連絡先のリストや、ソーシャルグラフに含まれる知り合い(すなわちユーザにつながっている人)のリストを用いて、ユーザに関連付いた連絡先ボキャブラリを構築する。連絡先ボキャブラリは、ユーザに関連付いた一つ以上の連絡先と、当該連絡先についての情報(住所、電話番号、現在位置、Eメールアドレス等)を含むカスタムボキャブラリである。例えば、連絡先ボキャブラリは、住所録から取得した一つ以上の連絡先や、ソーシャルネットワークから取得した一人以上の友人や、つながりのある他のユーザなどを含む。連絡先ボキャブラリの例を、図9Aに示す。
一実施形態において、連絡先モジュール206は、連絡先ボキャブラリに含まれるカスタム連絡先によって表される各連絡先にインタラクションを行った頻度や履歴を取得する。例えば、連絡先モジュール206は、連絡先ボキャブラリに含まれる各連絡先にインタラクションを行った回数や、ユーザが最後にインタラクションを行った際の日時を取得する。
一実施形態において、連絡先モジュール206は、ユーザに関連した移動状態に基づいて、一つ以上の連絡先を決定する。例えば、移動状態が、「夕方に友人とミーティングをするためにレストランに移動する」ことを示していた場合、連絡先モジュール206は、当該移動の出発時刻前または出発時刻に、当該友人に関連付いた連絡先を用いて連絡先ボキャブラリを構築する。
一実施形態において、連絡先モジュール206は、登録モジュール208から準備トリガイベントを受信し、当該準備トリガイベントに応答して、場所ボキャブラリを生成ないし更新する。例えば、連絡先モジュール206は、準備トリガイベントに応答して、出発時刻前または出発時刻に、連絡先ボキャブラリを生成ないし更新する。
一実施形態において、連絡先モジュール206は、ユーザに関連した位置データを受信し、当該位置データに関連付いた連絡先情報に基づいて、連絡先ボキャブラリを構築する。例えば、位置データは、レストラン、コーヒーショップ、店舗など、ユーザが以前訪れたことがある場所を表す。連絡先モジュール206は、これらの場所に関連付いた連絡先情報を用いて連絡先ボキャブラリを構築する。
一実施形態において、連絡先モジュール206は、ユーザに関連付いた連絡先ボキャブラリをフィルタモジュール216に送信する。さらなる実施形態において、連絡先モジュール206は連絡先ボキャブラリを記憶装置245に格納する。
コンテンツモジュール207は、ユーザに関連付いたコンテンツボキャブラリを生成するルーチンを含むソフトウェアである。一実施形態において、コンテンツモジュール207は、ユーザに関連付いたコンテンツボキャブラリを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、コンテンツモジュール207は、コンピュータ200のメモリ2
37に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、コンテンツモジュール207は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
一実施形態において、コンテンツモジュール207は、モバイルコンピュータ135やクライアント装置115から、一つ以上のコンテンツアイテムを表すコンテンツデータを取得する。例えば、コンテンツモジュール207は、モバイルコンピュータ135やクライアント装置115で再生された音楽やビデオを表すコンテンツデータを取得する。コンテンツアイテムとは、例えば、曲、ニュース項目、ビデオクリップ、オーディオクリップ、映画、ラジオトークショー、写真、画像、交通情報、天気予報などであるが、これらに限られない。
一実施形態において、コンテンツモジュール207は、一つ以上のコンテンツアイテムをユーザに提供するためのコンテンツソースを表すデータを取得する。コンテンツソースとは、例えば、ラジオ局、オーディオストリームをユーザに提供する音楽アプリケーション、ニュースストリームをユーザに提供するニュースアプリケーション、ソーシャルストリームをユーザに提供するソーシャルアプリケーション、他のコンテンツをユーザに提供する他のアプリケーションなどであるが、これらに限られない。
一実施形態において、コンテンツモジュール207は、一つ以上のコンテンツアイテムまたはコンテンツソースに関連付いた、一つ以上のコンテンツカテゴリを示すデータを取得する。コンテンツカテゴリとは、例えば、音楽のジャンル(ロック、ジャズ、ポップス等)、ニュースのカテゴリ(国際、地域、国内等)、移動情報に関連したコンテンツカテゴリ(交通情報、道路工事情報、天気予報等)、ソーシャルアップデートに関連するソーシャルカテゴリ(友人、家族による更新等)、エンタテイメントコンテンツカテゴリ(音楽、テレビショー、映画、アニメ、コメディ等)などであるが、これらに限られない。
コンテンツモジュール207は、コンテンツデータ、一つ以上のコンテンツソース、一つ以上のコンテンツカテゴリを用いて、ユーザに関連付いたコンテンツボキャブラリを生成する。例えば、コンテンツモジュール207は、コンテンツアイテム、コンテンツソース、コンテンツカテゴリのリストを用いて、ユーザに関連付いたコンテンツボキャブラリを構築する。コンテンツボキャブラリは、コンテンツアイテムに関連する一つ以上のカスタム単語を含むカスタムボキャブラリである。例えば、コンテンツボキャブラリは、一つ以上のコンテンツソース(コンテンツアイテムをユーザに提供したアプリケーションや、ラジオ局等)、ユーザによって再生された一つ以上のコンテンツアイテム、一つ以上のコンテンツカテゴリ等を含む。コンテンツボキャブラリの例を、図9Aに示す。
一実施形態において、コンテンツモジュール207は、以下を取得する。
(1)コンテンツボキャブラリに含まれるカスタムコンテンツアイテムに対してインタラクションを行った頻度
(2)アイテムに対して最後にインタラクションを行った日時
例えば、コンテンツモジュール207は、コンテンツアイテム(曲やビデオ等)が再生されたトータル回数、最後にコンテンツアイテムが再生された日時、所定の期間内にコンテンツアイテムが再生された回数、Pandora(登録商標)やSpotify(登録商標)のようなインターネットメディアサービスを用いて、コンテンツアイテムの再生中に当該アイテムに対して付けられた評価、アプリケーション(例えばラジオ)が開かれた回数、最後にアプリケーションが開かれた日時などを取得する。
一実施形態において、コンテンツモジュール207は、ユーザに関連付いた移動状態に基づいて、コンテンツボキャブラリを構築する。例えば、移動状態が、コンベンションセ
ンターで開かれる会議に参加するための移動であることを示している場合、コンテンツモジュール207は、当該会議に関連するニュースアイテムや出版データ等をコンテンツボキャブラリに追加する。
一実施形態において、コンテンツモジュール207は、登録モジュール208から準備トリガイベントを受信し、当該準備トリガイベントに応答して、コンテンツボキャブラリを生成または更新する。例えば、コンテンツモジュール207は、準備トリガイベントに応答して、出発時刻前または出発時刻に、コンテンツボキャブラリを生成ないし更新する。
一実施形態において、コンテンツモジュール207は、ユーザに関連付いたコンテンツボキャブラリをフィルタモジュール216に送信する。さらなる実施形態において、コンテンツモジュール207は、コンテンツボキャブラリを記憶装置245に格納する。
登録モジュール208は、登録アプリケーション164と協働し、ユーザに関連付いた一つ以上のカスタムボキャブラリを音声エンジン162に登録するルーチンを含むソフトウェアである。一実施形態において、登録モジュール208は、登録アプリケーション164と協働し、ユーザに関連付いた一つ以上のカスタムボキャブラリを音声エンジン162に登録するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、登録モジュール208は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、登録モジュール208は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
準備トリガイベントは、準備サービスをトリガするデータである。例えば、準備トリガイベントは、未来の移動開始時刻よりも前に、電気自動車を自動的に充電するためのアプリケーションの実行をトリガする。一実施形態において、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのアップデートは、トリガされるサービスの例である。例えば、準備トリガイベントは、場所モジュール204に対して場所ボキャブラリの更新を、連絡先モジュール206に対して連絡先ボキャブラリの更新を、コンテンツモジュール207に対してコンテンツボキャブラリの更新を、それぞれ、出発時刻前または出発時刻に実行させる。
この場合、更新された場所ボキャブラリ、更新された連絡先ボキャブラリ、更新されたコンテンツボキャブラリが、ユーザの移動開始前に準備される。さらなる例において、このような準備は、連続して行われてもよいし、様々な間隔で(例えば、自動的に、または、他のイベントに応答して)トリガされてもよい。例えば、準備トリガイベントが、移動中において連続して、または、様々な間隔で発生し、これに対応してボキャブラリが更新されてもよい。
準備トリガイベントは、例えば、エンジンの始動、キーが車両の鍵穴に挿入された際のキーオンイベント、ワイヤレスキーオンイベント、キーフォブのハンドシェイク、クライアント装置によるリモートコントロールイベント(例えば、ユーザが携帯アプリケーションを通じてエンジンを始動させた等)、ユーザが車両に対して動いている(例えば近づいてくる、遠ざかっていく等)ことを示すイベント、所定の場所(例えば新規の場所、既知の場所)への到着、移動中の経路変更、移動開始(例えば駐車場からの出発)、予測されたイベント(例えば、所定の時間以内(例えば15分以内)に移動が始まるという予測)等であるが、これらに限られない。他の準備トリガイベントも採用可能である。
一実施形態において、登録モジュール208は、モバイルコンピュータ135に関連付
いた一つ以上のセンサからセンサデータを受信し、当該センサデータに基づいて、準備トリガイベントを検出する。例えば、登録モジュール208は、車両と無線キーとの間のハンドシェイクプロセスを示すセンサデータを受信し、キーフォブハンドシェイクイベントという準備トリガイベントを検出する。他の例では、登録モジュール208は、GPSアプリケーションから、ユーザが経路を変更したことを示すナビゲーションデータを受信し、移動経路の変更という準備トリガイベントを検出する。
一実施形態において、登録モジュール208は、移動状態モジュール203から、ユーザに関連付いた未来の移動を表すデータを受信し、当該未来の移動に基づいて準備トリガイベントを検出する。例えば、未来の移動が、午前8時30分に開始されると予測されていた場合、登録モジュール208は、当該出発時刻前または出発時刻に、場所モジュール204に場所ボキャブラリを更新させ、連絡先モジュール206に連絡先ボキャブラリを更新させ、コンテンツモジュール207にコンテンツボキャブラリを更新させるための準備トリガイベントを検出する。登録モジュール208は、当該準備トリガイベントを、場所モジュール204、連絡先モジュール206、コンテンツモジュール207に送信する。
一実施形態において、フィルタモジュール216は、ユーザに関連付いた場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングし、フィルタ後の場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを登録モジュール208に送信する。フィルタモジュール216については、以下に詳述する。
登録モジュール208は、フィルタ後の場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン162に登録するために、登録アプリケーション164と協働する。例えば、登録モジュール208は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを登録アプリケーション164に送信し、登録アプリケーション164を通して当該場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン162に登録させる。
一実施形態において、登録モジュール208は、準備トリガイベントに応答して、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリを音声エンジン162に登録させる。
音声モジュール210は、音声コマンドにマッチする結果を取得するルーチンを含むソフトウェアである。一実施形態において、登録モジュール208は、音声コマンドにマッチする結果を取得するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、音声モジュール210は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、音声モジュール210は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
一実施形態において、音声モジュール210は、ユーザから音声コマンドを取得する。例えば、音声モジュール210は、モバイルコンピュータ135やクライアント装置115に接続されたマイク(不図示)から、音声コマンドを取得する。音声モジュール210は、音声コマンドに含まれる一つ以上のカスタム単語を、ユーザに関連した、一つ以上の登録されたカスタムボキャブラリに基づいて認識する。
例えば、音声モジュール210は、(1)音声コマンドに含まれる一つ以上の関心場所、ランドマーク、道路名称を場所ボキャブラリに基づいて認識し、(2)音声コマンドに含まれる一つ以上の連絡先を連絡先ボキャブラリに基づいて認識し、(3)音声コマンドに含まれる一つ以上のコンテンツソース、コンテンツカテゴリ、コンテンツアイテムをコンテンツボキャブラリに基づいて認識する。
一例において、音声モジュール210は、記憶装置245から、一つ以上のカスタム単語が含まれる音声コマンドにマッチする結果を取得する。例えば、音声モジュール210が、ユーザから「お父さんに電話」という音声コマンドを受信したとする。音声モジュール210は、登録された連絡先ボキャブラリに基づいて、音声コマンドに含まれるカスタム単語である「お父さん」を認識し、当該カスタム単語「お父さん」に対応する電話番号を、記憶装置245から取得する。そして、音声モジュール210は、提供モジュール212に対して、取得した電話番号に電話をかけるように指示する。
他の例において、音声モジュール210は、一つ以上のカスタム単語が含まれる音声コマンドを音声エンジン162に送信し、当該一つ以上のカスタム単語と音声コマンドを用いて検索を実行させる。音声エンジン162は、検索サーバ124から、一つ以上のカスタム単語を含む音声コマンドにマッチする検索結果を取得する。そして、音声エンジン162は、検索結果を音声モジュール210に送信する。例えば、音声コマンドが「家の近くにあるコーヒーショップを検索」というものであったとする。音声モジュール210は、場所ボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム単語を認識する。そして、音声モジュール210は、記憶装置245から、カスタム単語「家」に対応する住所を取得し、音声エンジン162に、「家」というカスタム単語を、対応する住所に置き換えた音声コマンドを送信する。そして、音声エンジン162は、検索サーバ124から、当該置き換え後の音声コマンドに対する検索結果を取得し、結果を音声モジュール210に送信する。検索結果は、家の住所の近くにあるコーヒーショップの住所と、当該住所までのナビゲーション指示を含んだものとなる。
一例において、音声コマンドの内容が「お父さんの居場所の近くにあるハンバーガー屋を検索」というものであった場合を考える。音声モジュール210はまず、連絡先ボキャブラリに基づいて、音声コマンドに含まれるカスタム単語である「お父さん」を認識する。そして、音声モジュール210は、当該父親の現在位置を、本人の許可を得て取得する。例えば、父親の現在位置は、連絡先ボキャブラリに記録された、父親の自宅または勤務先の住所である。他の例では、父親の現在位置は、父親の携帯電話が現在位置する場所である。さらに他の例では、父親の現在位置は、父親の車が現在位置する場所である。音声モジュール210は、カスタム単語「お父さん」に関連する場所を含む音声コマンドを、音声エンジン162に送信する。音声エンジン162は、カスタム単語「お父さん」に関連する場所を含む音声コマンドにマッチする検索結果を、検索サーバ124から取得し、当該検索結果を音声モジュール210に送信する。検索結果は、父親の居場所の近くにあるハンバーガー屋の住所と、当該住所までのナビゲーション指示を含んだものとなる。
一実施形態において、音声モジュール210は、ユーザから音声コマンドを取得し、当該音声コマンドを、カスタム単語を識別することなしに音声エンジン162に送信する。また、音声エンジン162は、当該音声コマンドに含まれる一つ以上のカスタム単語を、前述したものと同様の処理を行うことで認識する。音声エンジン162は、一つ以上のカスタム単語を含む音声コマンドにマッチした検索結果を、検索サーバ124から取得する。そして、音声エンジン162は、当該検索結果を音声モジュール210に送信する。
例えば、音声モジュール210は、ユーザから「家の近くにあるコーヒーショップを検索」という内容の音声コマンドを取得し、当該音声コマンドを音声エンジン162に送信する。音声エンジン162は、登録された、ユーザに関連付いた場所ボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム単語を認識し、音声ライブラリ166から、「家」というカスタム単語に対応する、自宅の住所を取得する。
音声エンジン162は、検索サーバ124から、「家」というカスタム単語を含んだ音声コマンドにマッチした検索結果を取得し、当該検索結果を音声モジュール210に送信
する。検索結果は、自宅の近くにあるコーヒーショップの住所と、当該住所までのナビゲーション指示を含んだものとなる。
他の例において、音声モジュール210は、ユーザから「音楽アプリを実行」という内容の音声コマンドを取得し、当該音声コマンドを音声エンジン162に送信する。「音楽アプリ」とは、それぞれ異なる正式名称を持つ特定のアプリケーションに対してユーザが呼ぶ名称である。音声エンジン162は、登録された、ユーザに関連付いたコンテンツボキャブラリに基づいて、音声コマンドに含まれる「音楽アプリ」というカスタム単語を認識する。音声エンジン162は、音声ライブラリ166から、「音楽アプリ」というカスタム単語に対応する、アプリケーションの名称を取得し、結果を音声モジュール210に送信する。そして、音声モジュール210は、提供モジュール212に対して、当該アプリケーションを実行する指示を行う。
一実施形態において、音声モジュール210は、ある場所(例えば既知の場所、既知の関心地点、既知の交差点など)の近くにある、隣接する、または、当該場所を中心とする所定の半径内にある一つ以上のターゲット場所の検索を示す音声コマンドを取得する。なお、「近くにある」「隣接する」とは、一つ以上のターゲット場所が、既知の場所から所定の距離以内にあることを意味する。
音声モジュール210は、音声コマンドと、当該音声コマンドによって示された「既知の場所からの所定の距離以内」にマッチした場所を、一つ以上のターゲット場所として決定する。
例えば、音声コマンドが、第一の道路「XYZ」と、第二の道路「ABC」が交差する交差点の近くのレストランを検索する要求であったとする。音声モジュール210は、音声コマンドに含まれる、カスタム単語「近く」と、第一の道路「XYZ」と第二の道路「ABC」が交差する交差点を認識する。そして、音声モジュール210は、当該交差点から所定の距離以内にあるレストランを検索する指示を、音声エンジン162に対して行う。
一実施形態において、所定の距離は、ユーザによって設定される。さらなる実施形態において、所定の距離は、ヒューリスティック手法によって自動的に設定される。例えば、もし、ユーザが、既知の場所から0.5マイル以内にあるターゲット場所を日常的に選択している場合、音声モジュール210は、当該ユーザに対する「所定の距離」を、0.5マイルに設定する。さらなる実施形態において、所定の距離は、音声コマンドに含まれる既知の場所の地理的な特徴に基づいて決定される。例えば、繁華街にある第一の既知の場所に対応する第一の所定の距離は、郊外にある第二の既知の場所に対応する第二の所定の距離よりも短くてもよい。
一実施形態において、音声モジュール210は、ユーザから音声コマンドを取得し、当該音声コマンドから、一つ以上の、場所を表すカスタム単語(以下、カスタム場所単語)を認識する。音声モジュール210は、モバイルコンピュータ135(例えば車両)、クライアント装置115(例えば携帯電話)などの、ユーザに関連付いた装置から取得したナビゲーション信号(例えば、位置信号やGPS信号)に基づいて、一つ以上のカスタム場所単語に関する一つ以上の住所を取得する。そして、音声モジュール210は、一つ以上のカスタム場所単語に関連付いた一つ以上の住所にマッチする検索結果を得るように、音声エンジン162に対して指示を行う。例えば、音声コマンドが「現在位置の近くにあるコーヒーショップを検索」や「現在位置から1マイル以内にあるコーヒーショップを検索」といったものであったとする。音声モジュール210は、音声コマンドに含まれる「現在位置」というカスタム場所単語を判定する。「現在位置」というカスタム場所単語に対応する住所は固定ではなく、ユーザの位置する場所によって変化する。音声モジュール210は、ユーザの携帯電話や車両から取得した位置信号に基づいて、「現在位置」とい
うカスタム場所単語に対応する住所を取得する。音声モジュール210は、ユーザの現在位置の住所を含む音声コマンドを、音声エンジン162に送信し、音声エンジン162は、当該ユーザの現在位置の近く(例えば、所定の距離以内)、または1マイル以内にあるコーヒーショップを検索する。
一実施形態において、音声コマンドは、一つ以上のカスタム場所単語、一つ以上のカスタム連絡先単語、一つ以上のカスタムコンテンツ単語を同時に含む。例えば、「XYZレストランレビューアプリで推薦された、家の近くのレストランを検索」という音声コマンドは、「家」というカスタム場所単語と、「XYZレストランレビューアプリ」というカスタムコンテンツ単語を含む。音声モジュール210は、場所ボキャブラリとコンテンツボキャブラリに基づいて、音声コマンドに含まれる「家」というカスタム場所単語と、「XYZレストランレビューアプリ」というカスタムコンテンツ単語を認識する。そして、音声モジュール210は、XYZレストランレビューアプリによって推薦されたターゲット場所(例えばレストラン)のリストを取得し、「家」というカスタム場所単語に関連付いた住所に基づいて、当該ターゲット場所のリストをフィルタリングする。例えば、音声モジュール210は、ターゲット場所のリストから、「家」というカスタム場所単語に関連付いた住所から所定の距離以内にある一つ以上のターゲット場所(レストラン)を取得し、一つ以上のターゲット場所と、当該一つ以上のターゲット場所に関連したナビゲーション情報を含む結果を生成する。当該一つ以上のターゲット場所は、音声コマンドを満たすものとなる。例えば、当該一つ以上のターゲット場所は、自宅の近くにあり、XYZレストランレビューアプリで推薦されたレストランとなる。
他の例において、「XYZレストランレビューアプリで推薦された、お父さんの近くのレストランを検索」という音声コマンドは、「お父さん」というカスタム連絡先単語と、「XYZレストランレビューアプリ」というカスタムコンテンツ単語を含む。音声モジュール210は、連絡先ボキャブラリとコンテンツボキャブラリに基づいて、音声コマンドに含まれる、「お父さん」というカスタム場所単語と、「XYZレストランレビューアプリ」というカスタムコンテンツ単語を認識する。そして、音声モジュール210は、XYZレストランレビューアプリによって推薦されたターゲット場所(例えばレストラン)のリストを取得する。また、「お父さん」に関連付いた場所(例えば、連絡先ボキャブラリに含まれる父親の住所や、父親の携帯電話や車の現在位置)を決定する。
音声モジュール210は、「お父さん」というカスタム連絡先単語に関連付いた場所に基づいて、ターゲット場所のリストをフィルタリングする。例えば、音声モジュール210は、ターゲット場所のリストから、「お父さん」というカスタム連絡先単語に関連付いた場所から所定の距離以内にある、一つ以上のターゲット場所(レストラン)を取得し、一つ以上のターゲット場所と、当該一つ以上のターゲット場所に関連したナビゲーション情報を含む結果を生成する。
一実施形態において、音声モジュール210は、これらの結果を提供モジュール212に送信する。他の実施形態において、音声モジュール210は、これらの結果を記憶装置245に記憶させる。
提供モジュール212は、結果をユーザに提供するためのルーチンを含むソフトウェアである。一実施形態において、提供モジュール212は、結果をユーザに提供するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、提供モジュール212は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、提供モジュール212は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
一実施形態において、提供モジュール212は、音声モジュール210から、音声コマンドにマッチする結果を取得し、当該結果をユーザに提供する。一例において、結果は、音声アイテムを含み、提供モジュール212は、当該結果をクライアント装置115やモバイルコンピュータ135に配信し、スピーカシステム(不図示)を通して当該音声アイテムを再生させる。一例において、提供モジュール212は、ユーザに結果を示すためのユーザインタフェースを提供するグラフィックデータを生成するよう、UIモジュール214に指示する。一例において、結果は、音声コマンドにマッチする連絡先を含み、提供モジュール212は、当該連絡先に関連付いた電話番号に自動的に電話をかける。一例において、結果は、音声コマンドにマッチするアプリケーション情報を含み、提供モジュール212は、当該アプリケーションを自動的に実行する。
UIモジュール214は、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成するルーチンを含むソフトウェアである。一実施形態において、UIモジュール214は、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成するために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、UIモジュール214は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、UIモジュール214は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
一実施形態において、UIモジュール214は、結果をユーザに提示するユーザインタフェースを提供するためのグラフィックデータを生成する。そして、UIモジュール214は、当該グラフィックデータを、クライアント装置115やモバイルコンピュータ135に送信し、当該ユーザインタフェースをユーザに提供させる。ユーザインタフェースの一例を、図10B〜図10Fに示す。
一実施形態において、UIモジュール214は、ユーザに関連付いた一つ以上のカスタムボキャブラリを設定させるために、ユーザインタフェースをユーザに提供するためのグラフィックデータを生成する。当該ユーザインタフェースは、例えば、ユーザに、一つ以上のカスタムボキャブラリに含まれるカスタム単語を追加、削除、編集するためものである。また、UIモジュール214は、他のユーザインタフェースをユーザに提供するためのグラフィックデータを生成する。
フィルタモジュール216は、一つ以上のフィルタリングパラメータに基づいて、ユーザに関連付いた一つ以上のカスタムボキャブラリをフィルタリングするためのルーチンを含むソフトウェアである。一実施形態において、フィルタモジュール216は、一つ以上のフィルタリングパラメータに基づいて、ユーザに関連付いた一つ以上のカスタムボキャブラリをフィルタリングするために、以下に示す構造、処理、または機能を提供するための、プロセッサ235で実行可能な命令の集合を含む。
一実施形態において、フィルタモジュール216は、コンピュータ200のメモリ237に格納され、プロセッサ235によってアクセスされ、実行されてもよい。
また、フィルタモジュール216は、プロセッサ235およびコンピュータ200の他の構成要素と協働して通信するように最適化されてもよい。
フィルタリングパラメータは、カスタムボキャブラリをフィルタリングするために用いるデータである。フィルタリングパラメータは、例えば、場所フィルタリングパラメータ、連絡先フィルタリングパラメータ、コンテンツフィルタリングパラメータ、または、これらの組み合わせである。各フィルタリングパラメータについては、後ほど詳述する。
一実施形態において、場所フィルタリングパラメータ、連絡先フィルタリングパラメー
タ、コンテンツフィルタリングパラメータは、ハードコーディングされ、記憶装置245に事前に記憶される。
一実施形態において、フィルタモジュール216は、ユーザに関連付いた場所ボキャブラリを場所モジュール204から取得する。また、フィルタモジュール216は、以下に説明するように、一つ以上の場所フィルタリングパラメータを表すデータを受信し、当該一つ以上の場所フィルタリングパラメータに基づいて、場所ボキャブラリをフィルタリングする。
場所フィルタリングパラメータは、場所ボキャブラリをフィルタリングするためのデータである。場所フィルタリングパラメータは、例えば、ユーザの現在位置、現在日時、カスタム場所単語に対応する場所の訪問頻度(例えば、最もよく訪問しているガソリンスタンド、一週間に一度訪問しているスーパーマーケット等)、カスタム場所単語に対応する場所の最近の訪問(例えば、最近訪れたレストラン)、カスタム場所単語が分類された場所カテゴリ(例えば、和食レストラン、イタリアンレストラン、メキシカンレストラン等)などであるが、これらに限られない。
一実施形態において、フィルタモジュール216は、ユーザの現在位置や時刻を表すデータを取得する。当該データは、第一のナビゲーションアプリケーション117(例えば地図アプリ、GPSアプリ等)、第二のナビゲーションアプリケーション107(例えば位置情報アプリ、おすすめ収集アプリ、地図アプリ等)、あるいは、ソーシャルネットワークサーバ120、モバイルネットワークにおける位置サーバ(不図示)など、システム100の他の構成要素のうちの一つ以上から送信される。
フィルタモジュール216は、ユーザの現在位置や時刻に基づいて、場所ボキャブラリをフィルタリングする。例えば、もし現在時刻が午前8時20分である場合、フィルタモジュール216は、場所ボキャブラリから、朝食営業を行っていないレストランに対応するカスタム場所単語を削除する。他の例では、フィルタモジュール216は、ユーザの現在位置に基づいてカバー範囲を設定し、(1)場所ボキャブラリに含まれるカスタム場所単語のうち、カバー範囲内に位置するもの(例えば、カバー範囲内にある関心場所、ランドマーク、道路)のみを保持し、(2)カバー範囲外に位置するものを場所ボキャブラリから削除する。
カバー範囲とは、場所ボキャブラリに含まれるカスタム場所単語に対応する場所をカバーする領域である。例えば、フィルタモジュール216は、ユーザの現在位置を中心点とし、当該中心点とカバー半径によって定義される円形の領域をカバー範囲として設定する。カバー範囲の例を図9B等に示す。一例において、カバー範囲は、長方形、正方形、三角形、円形であってもよいし、他の形状であってもよい。
また、一例において、形状で定義されたカバー範囲は、繋がっていなくてもよく、不連続なものであってもよい。例えば、カバー範囲は、人口密集地域のみを含み、それ以外の地域を除外したものであってもよい。
一実施形態において、フィルタモジュール216は、ユーザの現在位置に基づいて、カバーエリアのサイズを調整する。例えば、繁華街におけるサイズ(例えば、半径1マイル、1平方マイルなど)は、郊外におけるカバーエリア(例えば、半径10マイル、10平方マイルなど)よりも小さくなる。
一実施形態において、フィルタモジュール216は、ヒューリスティック手法によって計算されたカバー半径を用いてカバーエリアを決定してもよい。
一実施形態において、フィルタモジュール216は、カバーエリアや半径を、場所ボキャブラリのサイズに基づいて決定する。例えば、フィルタモジュール216は、場所ボキャブラリのサイズが大きくなるにつれ、より大きいカバー半径やカバーエリアを設定する。場所ボキャブラリのサイズは、例えば、当該場所ボキャブラリに格納できるカスタム場
所単語の数を表すためである。さらなる実施形態において、カバー半径やカバーエリアは、コンピュータ200の管理者によって設定されてもよい。
一実施形態において、フィルタモジュール216は、場所ボキャブラリに含まれるカスタム場所単語が表す場所にユーザが訪問した頻度や、当該場所への最近の訪問に基づいて、場所ボキャブラリのフィルタリングを行う。例えば、フィルタモジュール216は、カスタム場所単語によって表された場所へのユーザの訪問頻度や、最近の訪問に基づいて、当該カスタム場所単語のランク付けを行い、(1)場所ボキャブラリにおいて最も高いランクを持つカスタム場所単語を保持し、(2)場所ボキャブラリに含まれる他のカスタム場所単語を削除する。他の例では、フィルタモジュール216は、場所ボキャブラリをフィルタリングし、フィルタ後の場所ボキャブラリを生成する。当該フィルタ後の場所ボキャブラリは、例えば、最もよく訪問する場所、あるいは直前に訪問した場所に対応するカスタム場所単語を含む場所ボキャブラリとなる。
一実施形態において、フィルタモジュール216は、記憶装置245から、一つ以上のユーザ設定を取得し、当該ユーザ設定に基づいて場所ボキャブラリのフィルタリングを行う。例えば、当該一つ以上のユーザ設定が、ユーザが好む一つ以上の場所カテゴリを表すものであるとする。フィルタモジュール216は、(1)場所ボキャブラリに含まれるカスタム場所単語のうち、設定された一つ以上の場所カテゴリに関連付いたもののみを保持し、(2)場所ボキャブラリに含まれる他のカスタム場所単語を削除する。例えば、もしユーザの好みのカテゴリに、和食レストランとイタリアンレストランが含まれる場合、フィルタモジュール216は、和食レストランおよびイタリアンレストランが含まれる、フィルタ後の場所ボキャブラリを生成する。
さらなる実施形態において、フィルタモジュール216は、ユーザの現在位置または過去にいた場所、ユーザが当該場所にいた時刻、場所ボキャブラリに含まれるカスタム場所単語に対応する場所にユーザが訪問した頻度、最近の訪問、ユーザ設定、ユーザが頻繁にインタラクションしているユーザ(例えば親しい友人、家族、同僚等)、場所ボキャブラリのサイズ、他の連絡先、コンテンツ、他で説明したような場所に関連した要素、のうちの一つ以上に基づいて、場所ボキャブラリをフィルタリングする。
一実施形態において、フィルタモジュール216は、ユーザに関連付いた連絡先ボキャブラリを連絡先モジュール206から取得する。また、フィルタモジュール216は、以下に説明するように、一つ以上の連絡先フィルタリングパラメータを表すデータを受信し、当該一つ以上の連絡先フィルタリングパラメータに基づいて、連絡先ボキャブラリをフィルタリングする。
連絡先フィルタリングパラメータは、連絡先ボキャブラリをフィルタリングするためのデータである。連絡先フィルタリングパラメータは、例えば、ソーシャルネットワークの連絡先カテゴリ(例えば、友人、同僚、知人、ブロックリスト等)、連絡帳カテゴリ(例えば、よく使う連絡先、家族、友人等)、連絡先に対するインタラクション頻度(例えば、最もよく電話をかける連絡先、週に一度しか電話をかけない連絡先等)、または、連絡先に対する最近のインタラクション(例えば、最近電話をかけた相手、一か月前に電話をかけた相手等)、コンテンツ、ソーシャルネットワークにおいて登録された場所、適用可能なソーシャルネットワークコンテンツストリームに含まれるもの、類似するコンテンツ、イベント、ソーシャル等を有する連絡先、ソーシャルネットワークデータから決定された設定、設定データ等であるが、これらに限られない。
一実施形態において、フィルタモジュール216は、ユーザのソーシャルグラフから取得した連絡先に関連付いた、一つ以上のソーシャルネットワーク連絡先カテゴリを受信する。例えば、フィルタモジュール216は、友人グループ、家族グループ、知人グループ
を表すデータをソーシャルネットワークサーバ120から取得する。
また、フィルタモジュール216は、ユーザの連絡帳から取得した連絡先に関連付いた、一つ以上の連絡帳カテゴリを受信する。例えば、フィルタモジュール216は、ユーザのお気に入りの連絡先グループや、ユーザの連絡帳から最もよく電話がかけられるグループを表すデータを取得する。
フィルタモジュール216は、ソーシャルネットワーク連絡先カテゴリや、連絡帳カテゴリに基づいて、連絡先ボキャブラリをフィルタリングする。
また、フィルタモジュール216は、位置情報に基づいて、ユーザが最もよく訪問する、または、インタラクションを行っている連絡先を表すデータを取得する。例えば、フィルタモジュール216は、(1)連絡先ボキャブラリから、一つ以上のお気に入りの連絡先、友人、家族、同僚等を残し、(2)他の知人、古くなった連絡先、ブロック済みの連絡先などを削除する。
様々な連絡先、場所、コンテンツに関するユーザの設定は変化し続けるため、場所ボキャブラリやコンテンツボキャブラリと同様に、フィルタリングは、設定の変更やユーザの現在のふるまいを反映させるように、フィルタモジュール216によって動的に(例えば単発的に、あるいは周期的に(毎秒、毎分、毎時、毎日等))実行される。
一実施形態において、フィルタモジュール216は、連絡先ボキャブラリに含まれる連絡先に対してインタラクションを行った頻度や、最近のインタラクションに基づいて、連絡先ボキャブラリのフィルタリングを行う。例えば、フィルタモジュール216は、対応する連絡先に対してインタラクションを行った頻度や、最近のインタラクションに基づいて、当該カスタム連絡先単語のランク付けを行い、(1)連絡先ボキャブラリにおいて、一つ以上の所定の基準を満たすランクを持つカスタム連絡先単語を保持し、(2)連絡先ボキャブラリに含まれる他のカスタム連絡先単語を削除する。所定の基準とは、連絡先の個数の閾値(例えば25,50,100)や、品質閾値等である。例えば、各連絡先は、ターゲットユーザとの関係(例えば、他で例示した一つ以上のフィルタリングパラメータ)に基づいて演算(もしくは事前に定義)された品質スコアを用いてランク付けされる。品質スコアは、所定の基準(例えば品質閾値)と比較され、閾値を満たす場合に、当該連絡先がボキャブラリに含まれるようになる。
他の例では、フィルタモジュール216は、連絡先ボキャブラリをフィルタリングし、フィルタ後の連絡先ボキャブラリを生成する。当該フィルタ後の連絡先ボキャブラリは、最もよく利用する(例えば、頻繁にインタラクションする、あるいは直前にインタラクションした等)連絡先に対応するカスタム連絡先単語を含む連絡先ボキャブラリである。例えば、フィルタ後の連絡先ボキャブラリは、最もよく(あるいは直前に)電話をかけ、メッセージ(SMS、電子メール、ソーシャル等)を送り、または訪問された連絡先を含む。
他の実施形態において、フィルタモジュール216は、一つ以上のソーシャルネットワーク連絡先カテゴリ、一つ以上の連絡帳カテゴリ、連絡先ボキャブラリのサイズ、頻度、品質、最近のインタラクション履歴、インタラクションに用いた手段(例えば電話、テキスト、電子メール、ソーシャルネットワーク、SMS、マイクロブログ等)のうちの一つ以上に基づいて、連絡先ボキャブラリをフィルタリングする。連絡先ボキャブラリのサイズは、例えば、当該連絡先ボキャブラリに格納できるカスタム連絡先単語の数である。
一実施形態において、フィルタモジュール216は、ユーザに関連付いたコンテンツボキャブラリをコンテンツモジュール207から取得する。また、フィルタモジュール216は、以下に説明するように、一つ以上のコンテンツフィルタリングパラメータを表すデータを受信し、当該一つ以上のコンテンツフィルタリングパラメータに基づいて、コンテンツボキャブラリをフィルタリングする。
コンテンツフィルタリングパラメータは、コンテンツボキャブラリをフィルタリングす
るためのデータである。コンテンツフィルタリングパラメータは、例えば、ユーザが交わしたアクション(例えば、おすすめ、コメント、シェア、お気に入り、フォロー、購読など)を含む当該ユーザのソーシャルネットワークデータ、ユーザのメッセージデータ(例えば、電子メール、テキスト、チャットなど)、ユーザの好み(ユーザがつけた評価など)、ユーザがインタラクションしたコンテンツのタイプ(音楽のタイプ、ニュース、歌手、構成要素など)、カスタムコンテンツ単語に対応するアイテムに対してインタラクションをした頻度(例えば、コンテンツアイテムの再生頻度、ラジオ局の聴取頻度、トピックを検索した頻度、フィードのアクセス頻度等)、カスタムコンテンツ単語に対応するアイテムに対して最後にインタラクションをした日時(例えば、コンテンツアイテムの最近の再生、アプリケーションの最近の利用)、所定の期間内に所定のコンテンツに対してどの程度インタラクションを行ったか等であるが、これらに限られない。
一実施形態において、フィルタモジュール216は、コンテンツボキャブラリに含まれるカスタムコンテンツ単語に対応するアイテムに対するユーザのインタラクション頻度や、最近のインタラクション履歴に基づいて、コンテンツボキャブラリをフィルタリングする。例えば、フィルタモジュール216は、カスタムコンテンツ単語に対応するアイテムに対するユーザのインタラクション頻度やインタラクション履歴に基づいて、当該カスタムコンテンツ単語をランク付けし、連絡先ボキャブラリについて前述したものと同様に、(1)コンテンツボキャブラリに含まれるカスタムコンテンツ単語のうち、一つ以上の所定の基準(例えばランキングレベル)を満たすもののみを保持し、(2)他のカスタムコンテンツ単語を削除する。
他の例では、フィルタモジュール216は、コンテンツボキャブラリをフィルタリングし、フィルタ後のコンテンツボキャブラリを生成する。当該フィルタ後のコンテンツボキャブラリは、最もよく利用する、または、最近利用した(ユーザや、ユーザに関連した連絡先によって)コンテンツに対応するカスタムコンテンツ単語を含むコンテンツボキャブラリとなる。例えば、フィルタ後のコンテンツボキャブラリは、最もよく再生される音楽、最もよく利用されるアプリケーション、最も良くアクセスされるソーシャルストリーム、最もよく視聴されるビデオを含む。
一実施形態において、フィルタモジュール216は、ユーザが行ったアクションを含むソーシャルネットワークデータを、ソーシャルネットワークサーバ120から取得する。また、フィルタモジュール216は、ユーザのソーシャルネットワークデータに基づいて、コンテンツボキャブラリをフィルタリングする。例えば、フィルタモジュール216は、ソーシャルネットワークにて行われたユーザのおすすめ、シェア、フォロー、購読、コメントにマッチするアイテムに対応するカスタムコンテンツ単語を含む、フィルタ後のコンテンツボキャブラリを生成する。さらなる例において、フィルタモジュール216は、コンテンツボキャブラリに対して、(1)ユーザによっておすすめされた第一のラジオ局(あるいはそこで放送された音楽)を残し、(2)ユーザが好まないとした第二のラジオ局(あるいはそこで放送された音楽)を削除する。
一実施形態において、フィルタモジュール216は、記憶装置245から、一つ以上のユーザ嗜好(例えば、一つ以上のアイテムに対する評価)を取得し、当該ユーザ嗜好に基づいてコンテンツボキャブラリのフィルタリングを行う。例えば、フィルタモジュール216は、カスタムコンテンツ単語に対してユーザが行った評価に基づいて、コンテンツボキャブラリに含まれるカスタムコンテンツ単語をランク付けし、前述したものと同様に、(1)コンテンツボキャブラリに含まれる、基準(例えばランキング閾値)を満たすカスタムコンテンツ単語を残し、(2)他のカスタムコンテンツ単語を削除する。他の例では、フィルタモジュール216は、コンテンツソースやコンテンツカテゴリに対してユーザが行った評価に基づいて、フィルタ後のコンテンツボキャブラリを生成する。このようにして生成したフィルタ後のコンテンツボキャブラリは、最も高い評価(例えば、好みのコ
ンテンツを反映した閾値に一致する評価、または、超える評価)を持ったコンテンツソースやコンテンツカテゴリに対応するコンテンツアイテムを含む。
例えば、フィルタモジュール216は、ユーザの好みの音楽ジャンル、ユーザの好みのポッドキャストソース、ユーザの好みの音楽ジャンルに合うコンテンツアイテム、ユーザの好みのポッドキャストソースから取得したコンテンツアイテム等を含んだ、フィルタ後のコンテンツボキャブラリを生成する。
さらなる実施形態において、フィルタモジュール216は、ユーザが行ったアクション、ユーザ嗜好、カスタムコンテンツ単語に対応するアイテムに対してインタラクションを行った頻度、カスタムコンテンツ単語に対応するアイテムに対して最後にインタラクションを行った日時を含む一つ以上のユーザのソーシャルネットワークデータ、コンテンツボキャブラリのサイズ等に基づいて、コンテンツボキャブラリをフィルタリングする。
コンテンツボキャブラリのサイズは、例えば、当該コンテンツボキャブラリに格納できるカスタムコンテンツ単語の数を表す。
一実施形態において、フィルタモジュール216は、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリのサイズを制限(または上限を定義)するための一つ以上のフィルタリングパラメータに基づいて、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングする。
カスタムボキャブラリのフィルタリングは、様々な点において有益である。例えば、カスタムボキャブラリのサイズが有限の固定値である場合、カスタムボキャブラリをフィルタリングすることで、ユーザにとって最も重要なカスタム単語を保持し、ユーザにとって重要でないカスタム単語を削除することができる。
他の例では、カスタムボキャブラリのサイズが可変である場合、カスタムボキャブラリから、ユーザにとって重要でないカスタム単語を削除することで、当該カスタムボキャブラリのサイズを縮小することができる。
別の例では、カスタムボキャブラリをフィルタリングすることで、音声認識におけるシステム100の速度低下を避け、かつ、システム100に対して、(1)より高速な音声認識を可能にし、(2)音声認識の精度を向上させ、(3)ユーザ嗜好のよりよい学習を実現し、(4)ユーザに提供する経験をよりパーソナライズさせることができる。
なお、これらの利点は、限定的なものではなく、他の利益または利点も実現されうることを理解されたい。
(方法)
図3Aおよび図3Bは、パーソナライズされた音声認識のためのカスタムボキャブラリを生成する方法300を表すフローチャート例である。図3Aを参照して説明する。
まず、制御モジュール202が、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルネットワークデータを取得する(ステップ302)。
次に、制御モジュール202が、検索サーバ124から、ユーザに関連付いた検索データを取得する(ステップ304)。
次に、制御モジュール202が、モバイルコンピュータ135またはクライアント装置115から、ユーザに関連付いたナビゲーションデータを取得する(ステップ306)。
次に、場所モジュール304が、ソーシャルネットワークデータ、検索データ、ナビゲーションデータに基づいて、ユーザに対応する場所ボキャブラリを構築する(ステップ308)。
次に、制御モジュール202が、クライアント装置115やモバイルコンピュータ135といった装置に格納されたユーザの連絡帳から、連絡先データを取得する(ステップ310)。
次に、連絡先モジュール206が、連絡先データ、ソーシャルネットワークデータに基づいて連絡先ボキャブラリを構築する(ステップ312)。
次に、制御モジュール202が、クライアント装置115やモバイルコンピュータ135といった装置から、ユーザに関連付いたコンテンツデータを取得する(ステップ314)。
次に、コンテンツモジュール207が、コンテンツデータ、ソーシャルネットワークデータ、検索データに基づいて、ユーザに対応するコンテンツボキャブラリを構築する(ステップ316)。
図3Bを参照して説明を続ける。
次に、制御モジュール202が、一つ以上のフィルタリングパラメータを受信する(ステップ318)。例えば、制御モジュール202は、一つ以上のコンテンツフィルタリングパラメータ、一つ以上の場所フィルタリングパラメータ、一つ以上の連絡先フィルタリングパラメータを表すデータを受信する。
次に、フィルタモジュール216が、一つ以上のフィルタリングパラメータに基づいて、場所ボキャブラリ、連絡先ボキャブラリ、コンテンツボキャブラリをフィルタリングする(ステップ320)。
次に、登録モジュール208が、フィルタ後の場所ボキャブラリ、フィルタ後の連絡先ボキャブラリ、フィルタ後のコンテンツボキャブラリを音声エンジン162に登録する(ステップ322)。
図4A〜図4Cは、パーソナライズされた音声認識のための場所ボキャブラリを生成する方法400を表すフローチャート例である。図4Aを参照して説明する。
まず、登録モジュール208が、準備トリガイベントを検出する(ステップ401)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する(ステップ402)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ135に関連付いたモバイルコンピュータデータを受信する(ステップ403)。
次に、制御モジュール202が、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルネットワークデータを取得する(ステップ404)。
次に、移動状態モジュール203が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する(ステップ405)。
図4Bを参照して説明を続ける。
次に、制御モジュール202が、ユーザに関連付いた検索データを、検索サーバ124から取得する(ステップ406)。
次に、制御モジュール202が、システム100の他の構成要素、たとえばモバイルコンピュータ135に記録された第二のナビゲーションアプリケーション107、または、クライアント装置115に記録された第一のナビゲーションアプリケーション117等から、ユーザに関連付いたナビゲーションデータを取得する(ステップ407)。
次に、場所モジュール204が、当該ナビゲーションデータを処理し、移動経路または一つ以上の立ち寄り地点を抽出する(ステップ408)。
次に、場所モジュール204が、ソーシャルネットワークデータ、検索データ、移動経路、一つ以上の立ち寄り地点、移動状態のうちの少なくとも一つ以上に基づいて、一つ以上の関心場所を決定する(ステップ410)。
次に、場所モジュール204が、移動経路、一つ以上の立ち寄り地点、移動状態に関連付いた一つ以上のランドマークを決定する(ステップ412)。
次に、場所モジュール204が、移動経路、一つ以上の立ち寄り地点、移動状態に関連付いた一つ以上の道路名称を決定する(ステップ414)。
次に、場所モジュール204が、一つ以上の関心場所、一つ以上のランドマーク、一つ
以上の道路名称を用いて、ユーザに関連付いた場所ボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される(ステップ416)。
図4Cを参照して説明を続ける。
次に、制御モジュール202が、一つ以上の場所フィルタリングパラメータを受信する(ステップ418)。
次に、フィルタモジュール216が、一つ以上の場所フィルタリングパラメータに基づいて、場所ボキャブラリをフィルタリングする(ステップ420)。
次に、登録モジュール208が、フィルタ後の場所ボキャブラリを音声エンジン162に登録する(ステップ422)。
次に、制御モジュール202が、ユーザから音声コマンドを取得する(ステップ424)。
次に、音声モジュール210が、場所ボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する(ステップ426)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン162に送信する(ステップ428)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する(ステップ430)。
次に、提供モジュール212が、結果をユーザに提供する(ステップ432)。
図5A〜図5Cは、パーソナライズされた音声認識のための連絡先ボキャブラリを生成する方法500を表すフローチャート例である。図5Aを参照して説明する。
まず、登録モジュール208が、準備トリガイベントを検出する(ステップ501)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する(ステップ502)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ135に関連付いたモバイルコンピュータデータを受信する(ステップ503)。
次に、制御モジュール202が、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルネットワークデータを取得する(ステップ504)。
次に、移動状態モジュール203が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する(ステップ505)。
図5Bを参照して説明を続ける。
次に、制御モジュール202が、モバイルコンピュータ135、クライアント装置115などのユーザに関連付いた一つ以上の装置に記憶されたユーザの連絡帳から、連絡先データを取得する(ステップ506)。
次に、制御モジュール202が、ユーザに関連付いたソーシャルグラフを、ソーシャルネットワークサーバ120から取得する(ステップ507)。
次に、連絡先モジュール206が、連絡先データ、ソーシャルグラフデータ、移動状態を用いて、ユーザに関連付いた連絡先ボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される(ステップ508)。
次に、制御モジュール202が、一つ以上の連絡先フィルタリングパラメータを受信する(ステップ509)。
次に、フィルタモジュール216が、一つ以上の連絡先フィルタリングパラメータに基づいて、連絡先ボキャブラリをフィルタリングする(ステップ510)。
次に、登録モジュール208が、フィルタ後の連絡先ボキャブラリを音声エンジン162に登録する(ステップ512)。
次に、制御モジュール202が、ユーザから音声コマンドを取得する(ステップ514)。
図5Cを参照して説明を続ける。
次に、音声モジュール210が、連絡先ボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する(ステップ516)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン162に送信する(ステップ518)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する(ステップ520)。
次に、提供モジュール212が、結果をユーザに提供する(ステップ522)。
図6A〜図6Cは、パーソナライズされた音声認識のためのコンテンツボキャブラリを生成する方法600を表すフローチャート例である。図6Aを参照して説明する。
まず、登録モジュール208が、準備トリガイベントを検出する(ステップ601)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザに関連付いたユーザプロファイルデータを受信する(ステップ602)。
次に、制御モジュール202が、準備トリガイベントに応答して、ユーザのモバイルコンピュータ135に関連付いたモバイルコンピュータデータを受信する(ステップ603)。
次に、制御モジュール202が、ソーシャルネットワークサーバ120から、ユーザに関連付いたソーシャルネットワークデータを取得する(ステップ604)。
次に、移動状態モジュール203が、ソーシャルネットワークデータ、ユーザプロフィルデータ、モバイルコンピュータデータ、準備トリガイベントに基づいて、移動状態を決定する(ステップ606)。
図6Bを参照して説明を続ける。
次に、制御モジュール202が、クライアント装置115、モバイルコンピュータ135などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツアイテムを表すコンテンツデータを取得する(ステップ607)。
次に、制御モジュール202が、クライアント装置115、モバイルコンピュータ135などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツソースを表すデータを取得する(ステップ608)。
次に、制御モジュール202が、クライアント装置115、モバイルコンピュータ135などのユーザに関連付いた一つ以上の装置から、一つ以上のコンテンツカテゴリを表すデータを取得する(ステップ609)。
次に、コンテンツモジュール207が、コンテンツデータ、一つ以上のコンテンツソース、一つ以上のコンテンツカテゴリ、移動状態を用いて、ユーザに関連付いたコンテンツボキャブラリを構築する。当該処理は、準備トリガイベントに応答して、直接的、または非直接的に実行される(ステップ610)。
次に、制御モジュール202が、一つ以上のコンテンツフィルタリングパラメータを受信する(ステップ611)。
次に、フィルタモジュール216が、一つ以上のコンテンツフィルタリングパラメータに基づいて、コンテンツボキャブラリをフィルタリングする(ステップ612)。
次に、登録モジュール208が、フィルタ後のコンテンツボキャブラリを音声エンジン162に登録する(ステップ614)。
次に、制御モジュール202が、ユーザから音声コマンドを取得する(ステップ616)。
図6Cを参照して説明を続ける。
次に、音声モジュール210が、コンテンツボキャブラリに基づいて、音声コマンドに含まれる一つ以上のカスタム単語を認識する(ステップ618)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドを表すデータを、音声エンジン162に送信する(ステップ620)。
次に、制御モジュール202が、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する(ステップ622)。
次に、提供モジュール212が、結果をユーザに提供する(ステップ624)。
図7は、パーソナライズされた音声認識を用いて、音声検索を実行する方法700を表すフローチャート例である。一実施形態において、音声エンジン162は、ユーザに関連付いた一つ以上のカスタムボキャブラリを表すデータを、認識アプリケーション109から取得する(ステップ702)。
次に、登録アプリケーション164が、一つ以上のカスタムボキャブラリを音声エンジン162に登録する(ステップ704)。
次に、音声エンジン162が、ユーザから音声コマンドを取得する(ステップ706)。一実施形態において、音声エンジン162は、認識アプリケーション109から音声コマンドを受信する。
次に、音声エンジン162が、音声コマンドに含まれる一つ以上のカスタム単語を認識する(ステップ708)。
次に、音声エンジン162が、検索を実行させ、一つ以上のカスタム単語を含む音声コマンドにマッチする結果を取得する(ステップ710)。
次に、音声エンジン162が、結果をユーザに提供するために、当該結果を認識アプリケーション109に送信する(ステップ712)。
(グラフィック表現)
図8Aおよび図8Bは、関心場所を決定するためのクラスタリング処理の例を示した図である。一実施形態において、場所モジュール204は、ユーザが訪問した一つ以上の場所を、ユーザに関連付いたナビゲーションデータに基づいて決定する。例えば、場所モジュール204は、ユーザに関連付いたGPSログを用いて、一つ以上の立ち寄り地点や目的地を決定する。
また、場所モジュール204は、一つ以上の訪問済み場所に関連付いた地理的な特徴に基づいて、クラスタに対応するクラスタ半径を設定する。例えば、繁華街におけるクラスタ半径は、郊外におけるクラスタ半径よりも小さい。また、一実施形態において、場所モジュール204は、ヒューリスティック技術を用いてクラスタ半径を決定する。他の実施形態において、クラスタ半径は、コンピュータ200の管理者によって設定される。
クラスタは、ユーザが訪問した一つ以上の場所や地点を含む地理的な領域である。例えば、ユーザが訪問した一つ以上の場所や地点は、クラスタによってグルーピングされる。これにより、ユーザが訪問した一つ以上の場所や地点は、街区ブロックのような、特定の地理的領域に含まれるようになる。
一例において、クラスタは、クラスタ内においてユーザが訪問した一つ以上の場所や地点である関心場所に関連付けられる。一実施形態において、クラスタの中心点は、クラスタに関連付いた関心場所として設定され、当該クラスタは、当該中心点および半径で定義された円形エリアとなる。他の例では、クラスタは矩形、正方形、三角形、または、他の形状をとる。
場所モジュール204は、ユーザが訪問したことがある一つ以上の場所が、設定されたクラスタ半径を満たすクラスタ内にあるか否かを決定する。もし、一つ以上の訪問済み場所が、クラスタ半径を満たすクラスタ内にある場合、場所モジュール204は、当該一つ以上の訪問済み場所を、一つのクラスタにグルーピングし、当該クラスタの中心を、当該
クラスタに関連付いた関心場所として設定する。例えば、当該クラスタに関連付いた関心場所は、当該クラスタの中心と同じ緯度、経度、高度となる。
一実施形態において、場所モジュール204は、ユーザに関連付いたナビゲーションデータに基づいて、ユーザが訪問したことがある複数の場所を決定する。また、場所モジュール204は、当該複数の場所を、各クラスタが一つ以上の訪問済み場所を含むように、一つ以上のクラスタにグルーピングする。例えば、場所モジュール204は、複数の場所を一つ以上のクラスタにグルーピングするために、凝集型クラスタリング手法(例えば、ボトムアップによる階層クラスタ分析)を用いる。凝集型クラスタリング手法については、図8Aおよび図8Bに示す。
場所モジュール204は、一つ以上のクラスタにおける一つ以上の中心点を、一つ以上の関心場所として生成する。当該一つ以上のクラスタは、それぞれ同一の半径を持ってもよいし、異なる半径を持ってもよい。
図8Aを参照して説明する。ボックス810は、ユーザが訪問した4つの場所A,B,C,Dを表す。場所モジュール204は、場所A,B,Cを、クラスタ半径804を持つクラスタ806にグルーピングする。また、場所モジュール204は、クラスタ806の中心点である関心場所802を生成する。場所Dは、クラスタ806には含まれず、場所モジュール204は、場所Dをクラスタ808にグルーピングする。クラスタ808は、ユーザが訪問した一つの場所(場所D)のみを有しており、当該クラスタ808の中心点は、場所Dとして設定される。また、場所モジュール204は、クラスタ808の中心点である、ユーザに関連付いた関心場所830を生成する。
ボックス810の例におけるクラスタリング処理に対応する樹形図を、ボックス812に示す。樹形図は、階層的クラスタ分析で生成されるクラスタの配置を木構造で示すための図である。ボックス812に示した樹形図は、凝集型クラスタリング手法(例えば、ボトムアップによる階層クラスタ分析)を示したものである。
樹形図の上位に位置するノードは、ユーザが訪問した場所A,B,C,Dを表す。樹形図における他のノードは、異なるレベルによってマージされたクラスタを表す。
例示目的で、いくつかの実施形態においては、樹形図に含まれる二つのノードを連結する線の長さは、当該二つのノード間の非類似の尺度を表す。より長い線は、より非類似であることを示している。例えば、ライン818は、ライン820より長く、これは、場所Dとノード824間における非類似の尺度が、場所Aとノード822間における非類似の尺度よりも大きいことを表している。一実施形態において、非類似の度合いは、ユークリッド距離、平方ユークリッド距離、マンハッタン距離、最大距離、マハラノビス距離、二つのノード間のコサイン類似度などによって表される。非類似の尺度の表し方については、他の手法も採用可能である。
ボックス812に示したように、樹形図は、ライン814、クラスタ806(場所A,B,Cを含む)、クラスタ808(場所Dを含む)で表されたようにレベルごとに分割される。分割のレベルは、少なくともクラスタの半径に部分的に基づいて決定される。
図8Bを参照して説明を続ける。ここでは、ユーザがさらに場所Eに訪問していたものとする。
ボックス860は、クラスタ半径804を持つクラスタ806と、クラスタ半径854を持つ更新後のクラスタ808を表す。一実施形態において、クラスタ半径804は、クラスタ半径854と同一の値である。他の実施形態において、クラスタ半径804は、クラスタ半径854と異なる値である。クラスタ806は、場所A,B,Cを含む。
場所モジュール204は、場所DおよびEを含むようにクラスタ808を更新し、更新
後のクラスタ808の中心となるように関心場所830を更新する。
ボックス860に対応する樹形図を、ボックス862に示す。本例においては、樹形図は、ライン814、クラスタ806(場所A,B,Cを含む)、クラスタ808(場所D,Eを含む)で表されたようにレベルごとに分割される。分割のレベルは、少なくともクラスタの半径に部分的に基づいて決定される。
図9Aは、ユーザに関連付いたカスタムボキャブラリの例を表したグラフィック900である。グラフィック900は、例としての連絡先ボキャブラリ902、場所ボキャブラリ904、コンテンツボキャブラリ906を含む。また、認識アプリケーション109は、連絡先ボキャブラリ902、場所ボキャブラリ904、コンテンツボキャブラリ906を音声エンジン162に登録する。
図9Bおよび図9Cは、場所ボキャブラリをフィルタリングするための様々なフィルタリング処理例を表したグラフィック950および970である。
図9Bを参照して説明する。
フィルタモジュール216は、特定の場所で表されたユーザの現在位置(例えばサンフランシスコ)、場所ボキャブラリ952に含まれるカスタム場所単語に対応する場所への訪問頻度(例えば、ランドマーク、道路、プリセットされた関心場所への総訪問回数)、カスタム場所単語に対応する場所への最終訪問日時に基づいて、場所ボキャブラリ952をフィルタリングする。また、フィルタリングモジュール216は、フィルタ後の場所ボキャブラリ954を生成する。例えば、ユーザの現在位置がサンフランシスコである場合、フィルタモジュール216は、「自由の女神」「ヨセミテ」「I−15」といった関心場所を場所ボキャブラリ952から削除し、ユーザの現在位置にマッチした、フィルタ後の場所ボキャブラリ954を生成する。また、ユーザが最近病院に訪問していない場合、フィルタモジュール216は、プリセットされた関心場所「病院」を場所ボキャブラリ952から削除する。登録モジュール208は、フィルタ後の場所ボキャブラリ954を音声エンジン162に登録する。
次に、図9Cを参照して説明する。
フィルタモジュール216は、カバー範囲976に対応するカバー半径974を決定する。また、フィルタモジュール216は、ユーザの現在位置972を、カバー範囲976の中心点として設定する。
ここで、場所ボキャブラリ980は、グラフィック970に示したように、関心場所(「病院」「勤務先」)、ランドマーク(ランドマーク1〜3)、道路(道路1〜4)を含んでいるものとする。フィルタモジュール216は、現在位置972およびカバー範囲976を用いて、場所ボキャブラリ980をフィルタリングする。カバー範囲976は「勤務先」という関心場所、ランドマーク1および3というランドマーク、道路1および3という道路を含んでいるため、フィルタモジュール216は、「勤務先」という関心場所、ランドマーク1および3というランドマーク、道路1および3という道路を含む、フィルタ後の場所ボキャブラリ982を生成する。
図10Aは、ユーザに関連付いたナビゲーションデータの例を示したグラフィック1000である。
本例におけるナビゲーションデータは、クライアント装置115に記憶された第一のナビゲーションアプリケーション117、モバイルコンピュータ135に記憶された第二のナビゲーションアプリケーション107のようなナビゲーションアプリケーションから受信したGPSトレースを含む。GPSトレースは、特定の日に行ったユーザの移動を表す。
認識アプリケーション109は、ナビゲーションデータに基づいて、関心場所(例えば、ジム1002、スーパーマーケット1006、勤務先1004、自宅1008)を決定
する。認識アプリケーション109はまた、GPSトレースの一部を構成する道路や、GPSトレース同士が交差する道路に対応する道路名称を決定する。また、認識アプリケーション109は、当該関心場所や道路名称を、ユーザに関連付いた場所ボキャブラリに追加する。
図10B〜図10Fは、パーソナライズされた音声認識を用いたさまざまな結果の例を表したグラフィック1010,1020,1030,1040,1050である。
図10Bは、「家の近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「家」という特定の関心場所を含んでいる。
図10Cは、「スーパーマーケットの近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「スーパーマーケット」という特定の関心場所を含んでいる。
図10Dは、「ジムの近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ジム」という特定の関心場所を含んでいる。
図10Eは、「ジャクソン通り5丁目の近くのコーヒーショップを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ジャクソン通り」「5丁目」という道路名称を含んでいる。
図10Fは、「ローレンス通り交差点の近くのコンビニを検索」という音声コマンドにマッチする結果である。当該音声コマンドは、ユーザにカスタマイズされた「ローレンス通り」という道路名称を含んでいる。
システム100は、カスタムボキャブラリと、上述したようなフィルタリングによって、個人に最適化された結果を迅速に提供することができる。
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。例えば、実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
本明細書における「1つの実施形態」または「別の実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「1つの実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
本明細書の詳細な説明の一部は、非一時的(non-transitory)なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において(また一般に)アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要が
ある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算(処理)」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的(電子的)量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー(登録商標)ディスク・光ディスク・CD−ROM・MOディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも1つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
入力/出力(I/O)装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはI/Oコントローラを介して直接あるいは間接的にシステムに接続される。
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット(登録商標)は、現在利用可能なネットワークアダプタのほんの一例である。
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定の
プログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
101 サーバ
109 認識アプリケーション
115 クライアント装置
120 ソーシャルネットワークサーバ
124 検索サーバ
135 モバイルコンピュータ
160 音声サーバ
170 地図サーバ

Claims (20)

  1. 音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するために、コンピュータが実行する方法であって、
    トリガイベントを検出する検出ステップと、
    前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
    前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得ステップと、
    前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築ステップと、
    一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリングステップと、
    前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
    を含む方法。
  2. 前記場所ボキャブラリに含まれる単語は、特定の対象を指し示す単語である非カスタム単語と、指し示す対象がユーザごとに異なる単語であるカスタム単語のいずれかであり、
    前記場所フィルタリングパラメータは、ユーザに関連付いた第一の場所を含み、
    前記フィルタリングステップは、
    前記第一の場所に基づいて、カバー半径を決定するステップと、
    前記カバー半径および第一の位置に基づいて、カバー範囲を決定するステップと、
    前記カバー範囲に含まれる一つ以上の第二の場所に対応する、一つ以上のカスタム場所単語を含むように、フィルタリング後の場所ボキャブラリを生成するステップと、を含む、
    請求項1に記載の方法。
  3. ユーザから音声コマンドを取得する取得ステップと、
    前記登録後の場所ボキャブラリに基づいて、前記音声コマンドに含まれるカスタム単語を認識するステップと、
    前記カスタム単語を含む前記音声コマンドを送信するステップと、
    前記音声コマンドに合致する結果を受信するステップと、をさらに含む、
    請求項2に記載の方法。
  4. 前記ユーザに関連付いたナビゲーションデータを取得するステップと、
    前記ナビゲーションデータに基づいて、経路情報を取得するステップと、
    前記経路情報に関連付いた、一つ以上の道路名称またはランドマークを取得するステップと、
    をさらに含み、
    前記構築ステップでは、前記一つ以上の道路名称またはランドマークをさらに用いて、前記ユーザに対応する場所ボキャブラリを構築する、
    請求項1から3のいずれかに記載の方法。
  5. 前記経路情報に基づいて、一つ以上の立ち寄り地点を取得するステップをさらに含み、
    前記構築ステップでは、前記立ち寄り地点をさらに用いて、前記ユーザに対応する場所ボキャブラリを構築する、
    請求項4に記載の方法。
  6. 前記ユーザに関連付いたソーシャルネットワークデータを取得するステップをさらに含
    み、
    前記関心場所取得ステップでは、前記ソーシャルネットワークデータに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
    請求項1から5のいずれかに記載の方法。
  7. 前記ユーザに関連付いた検索データを取得するステップをさらに含み、
    前記関心場所取得ステップでは、前記検索データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
    をさらに含む、
    請求項1から6のいずれかに記載の方法。
  8. 前記ユーザに関連付いた連絡先データを取得するステップをさらに含み、
    前記関心場所取得ステップでは、前記連絡先データに含まれる位置データにさらに基づいて、前記ユーザに対応する関心場所を取得する、
    請求項1から7のいずれかに記載の方法。
  9. 前記移動情報は、未来の移動における移動開始時刻を含み、
    前記構築ステップは、前記移動開始時刻の到来までに実行される、
    請求項1から8のいずれかに記載の方法。
  10. 音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するために、コンピュータが実行する方法であって、
    トリガイベントを検出する検出ステップと、
    前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
    前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得ステップと、
    前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築ステップと、
    一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフィルタリングするフィルタリングステップと、
    前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
    を含む方法。
  11. 前記ユーザに関連付いたソーシャルグラフデータを取得するステップをさらに含み、
    前記構築ステップでは、前記ソーシャルグラフデータにさらに基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する、
    請求項10に記載の方法。
  12. 前記ユーザに関連付いた位置データを取得する位置情報取得ステップをさらに含み、
    前記構築ステップでは、前記位置データにさらに基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する、
    請求項10または11に記載の方法。
  13. 前記連絡先フィルタリングパラメータは、前記ユーザに関連付いた連絡先に、前記ユーザがアクセスした頻度または履歴である、
    請求項10から12のいずれかに記載の方法。
  14. 音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリ
    を生成するために、コンピュータが実行する方法であって、
    トリガイベントを検出する検出ステップと、
    前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得ステップと、
    ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得ステップと、
    前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築ステップと、
    一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリングステップと、
    前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録ステップと、
    を含む方法。
  15. 前記コンテンツデータは、コンテンツを識別する情報、または、コンテンツを入手するためのソースであるコンテンツソースを識別する情報である、
    請求項14に記載の方法。
  16. 前記コンテンツフィルタリングパラメータは、前記コンテンツまたはコンテンツソースに、前記ユーザがアクセスした頻度または履歴である、
    請求項14または15に記載の方法。
  17. 請求項1から16のいずれかに記載の方法を、コンピュータに実行させるためのプログラム。
  18. 音声認識システムが利用する、場所に関する辞書である場所ボキャブラリを生成するシステムであって、
    トリガイベントを検出する検出手段と、
    前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
    前記移動情報に基づいて、前記ユーザに対応する関心場所を取得する関心場所取得手段と、
    前記取得した一つ以上の関心場所を用いて、前記ユーザに対応する場所ボキャブラリを構築する構築手段と、
    一つ以上の場所フィルタリングパラメータに基づいて、前記場所ボキャブラリをフィルタリングするフィルタリング手段と、
    前記フィルタリング後の場所ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
    を有するシステム。
  19. 音声認識システムが利用する、連絡先に関する辞書である連絡先ボキャブラリを生成するシステムであって、
    トリガイベントを検出する検出手段と、
    前記トリガイベントに対応して、ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
    前記ユーザに関連付いた一つ以上の連絡先を表す連絡先データを取得する連絡先データ取得手段と、
    前記連絡先データおよび前記移動情報に基づいて、前記ユーザに対応する連絡先ボキャブラリを構築する構築手段と、
    一つ以上の連絡先フィルタリングパラメータに基づいて、前記連絡先ボキャブラリをフ
    ィルタリングするフィルタリング手段と、
    前記フィルタリング後の連絡先ボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
    を有するシステム。
  20. 音声認識システムが利用する、コンテンツに関する辞書であるコンテンツボキャブラリを生成するシステムであって、
    トリガイベントを検出する検出手段と、
    前記トリガイベントに対応して、前記ユーザの移動に関する情報である移動情報を取得する移動情報取得手段と、
    ユーザがアクセス可能な情報源であるコンテンツに関連する情報であるコンテンツデータを取得するコンテンツデータ取得手段と、
    前記コンテンツデータおよび前記移動情報に基づいて、前記ユーザに対応するコンテンツボキャブラリを構築する構築手段と、
    一つ以上のコンテンツフィルタリングパラメータに基づいて、前記コンテンツボキャブラリをフィルタリングするフィルタリング手段と、
    前記フィルタリング後のコンテンツボキャブラリを、前記ユーザに対応するボキャブラリとして登録する登録手段と、
    を有するシステム。
JP2014164642A 2013-10-15 2014-08-13 音声認識方法および音声認識システム Active JP6488588B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/054,763 2013-10-15
US14/054,763 US9484025B2 (en) 2013-10-15 2013-10-15 Configuring dynamic custom vocabulary for personalized speech recognition

Publications (2)

Publication Number Publication Date
JP2015079237A true JP2015079237A (ja) 2015-04-23
JP6488588B2 JP6488588B2 (ja) 2019-03-27

Family

ID=52810398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014164642A Active JP6488588B2 (ja) 2013-10-15 2014-08-13 音声認識方法および音声認識システム

Country Status (2)

Country Link
US (1) US9484025B2 (ja)
JP (1) JP6488588B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6186057B1 (ja) * 2016-08-19 2017-08-23 ヤフー株式会社 抽出装置、抽出方法、及び抽出プログラム
JP2018040904A (ja) * 2016-09-06 2018-03-15 トヨタ自動車株式会社 音声認識装置および音声認識方法
JP2018190413A (ja) * 2017-05-02 2018-11-29 ネイバー コーポレーションNAVER Corporation ユーザ発話の表現法を把握して機器の動作やコンテンツ提供範囲を調整し提供するユーザ命令処理方法およびシステム
WO2019155526A1 (ja) * 2018-02-06 2019-08-15 日産自動車株式会社 情報処理方法及び情報処理装置
JP2019527379A (ja) * 2016-07-08 2019-09-26 グーグル エルエルシー フォローアップ音声クエリ予測
US10576993B2 (en) 2017-12-13 2020-03-03 Hyundai Motor Company Apparatus, method and system for providing voice output service in vehicle
JP2020086521A (ja) * 2018-11-15 2020-06-04 トヨタ自動車株式会社 情報提供装置、情報提供方法及びプログラム
JP2021052403A (ja) * 2016-05-13 2021-04-01 グーグル エルエルシーGoogle LLC スマートメディア環境においてスマート制御される媒体再生
US11341964B2 (en) 2016-05-10 2022-05-24 Google Llc Voice-controlled media play in smart media environment

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11978436B2 (en) * 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant
US10885918B2 (en) * 2013-09-19 2021-01-05 Microsoft Technology Licensing, Llc Speech recognition using phoneme matching
US9601108B2 (en) 2014-01-17 2017-03-21 Microsoft Technology Licensing, Llc Incorporating an exogenous large-vocabulary model into rule-based speech recognition
US10749989B2 (en) 2014-04-01 2020-08-18 Microsoft Technology Licensing Llc Hybrid client/server architecture for parallel processing
US10770075B2 (en) * 2014-04-21 2020-09-08 Qualcomm Incorporated Method and apparatus for activating application by speech input
US10989838B2 (en) 2015-04-14 2021-04-27 Utopus Insights, Inc. Weather-driven multi-category infrastructure impact forecasting
US10083685B2 (en) * 2015-10-13 2018-09-25 GM Global Technology Operations LLC Dynamically adding or removing functionality to speech recognition systems
US9976863B2 (en) * 2016-03-29 2018-05-22 Lyft, Inc. Casual driver ride sharing
JP6477648B2 (ja) * 2016-09-29 2019-03-06 トヨタ自動車株式会社 キーワード生成装置およびキーワード生成方法
US10535342B2 (en) * 2017-04-10 2020-01-14 Microsoft Technology Licensing, Llc Automatic learning of language models
DE102017211692A1 (de) * 2017-07-07 2019-01-10 Bayerische Motoren Werke Aktiengesellschaft System und Verfahren zum dynamischen, fahrzeugspezifischen Betrieb eines Navigationssystems
US10847148B2 (en) * 2017-07-14 2020-11-24 International Business Machines Corporation Dynamic personalized multi-turn interaction of cognitive models
US10573298B2 (en) 2018-04-16 2020-02-25 Google Llc Automated assistants that accommodate multiple age groups and/or vocabulary levels
US10380997B1 (en) * 2018-07-27 2019-08-13 Deepgram, Inc. Deep learning internal state index-based search and classification
US11265300B1 (en) * 2018-12-29 2022-03-01 Whatsapp Llc Methods and systems for transmitting anonymized information
US11289095B2 (en) 2019-12-30 2022-03-29 Yandex Europe Ag Method of and system for translating speech to text
US11842731B2 (en) * 2020-01-06 2023-12-12 Salesforce, Inc. Method and system for executing an action for a user based on audio input
US11947573B2 (en) * 2022-04-29 2024-04-02 Content Square SAS Determining zone identification reliability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030125869A1 (en) * 2002-01-02 2003-07-03 International Business Machines Corporation Method and apparatus for creating a geographically limited vocabulary for a speech recognition system
JP2006251298A (ja) * 2005-03-10 2006-09-21 Nissan Motor Co Ltd 音声入力装置および音声入力方法
US8326627B2 (en) * 2007-12-11 2012-12-04 Voicebox Technologies, Inc. System and method for dynamically generating a recognition grammar in an integrated voice navigation services environment
US20130103300A1 (en) * 2011-10-25 2013-04-25 Nokia Corporation Method and apparatus for predicting a travel time and destination before traveling

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19709518C5 (de) 1997-03-10 2006-05-04 Harman Becker Automotive Systems Gmbh Verfahren und Vorrichtung zur Spracheingabe einer Zieladresse in ein Zielführungssystem im Echtzeitbetrieb
EP1397797B1 (en) 2001-04-19 2007-09-12 BRITISH TELECOMMUNICATIONS public limited company Speech recognition
US7424363B2 (en) 2004-08-20 2008-09-09 Robert Bosch Corporation Method and system for adaptive navigation using a driver's route knowledge
US20060173618A1 (en) 2005-02-01 2006-08-03 Mark Eyer Intelligent travel assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
JP2011210041A (ja) 2010-03-30 2011-10-20 Aisin Aw Co Ltd 検索装置、及び、プログラム
US8498991B2 (en) 2010-10-06 2013-07-30 GM Global Technology Operations LLC Neighborhood guide for semantic search system and method to support local POI discovery
US20140041055A1 (en) * 2012-08-06 2014-02-06 Avaya Inc. System and method for online access control based on users social network context
US8983836B2 (en) * 2012-09-26 2015-03-17 International Business Machines Corporation Captioning using socially derived acoustic profiles
US9672818B2 (en) * 2013-04-18 2017-06-06 Nuance Communications, Inc. Updating population language models based on changes made by user clusters
US20150100240A1 (en) * 2013-10-08 2015-04-09 Toyota Jidosha Kabushiki Kaisha Generating Dynamic Vocabulary for Personalized Speech Recognition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030125869A1 (en) * 2002-01-02 2003-07-03 International Business Machines Corporation Method and apparatus for creating a geographically limited vocabulary for a speech recognition system
JP2006251298A (ja) * 2005-03-10 2006-09-21 Nissan Motor Co Ltd 音声入力装置および音声入力方法
US8326627B2 (en) * 2007-12-11 2012-12-04 Voicebox Technologies, Inc. System and method for dynamically generating a recognition grammar in an integrated voice navigation services environment
US20130103300A1 (en) * 2011-10-25 2013-04-25 Nokia Corporation Method and apparatus for predicting a travel time and destination before traveling

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341964B2 (en) 2016-05-10 2022-05-24 Google Llc Voice-controlled media play in smart media environment
US11355116B2 (en) 2016-05-10 2022-06-07 Google Llc Implementations for voice assistant on devices
US11935535B2 (en) 2016-05-10 2024-03-19 Google Llc Implementations for voice assistant on devices
US11922941B2 (en) 2016-05-10 2024-03-05 Google Llc Implementations for voice assistant on devices
JP7293180B2 (ja) 2016-05-13 2023-06-19 グーグル エルエルシー スマートメディア環境においてスマート制御される媒体再生
JP2021052403A (ja) * 2016-05-13 2021-04-01 グーグル エルエルシーGoogle LLC スマートメディア環境においてスマート制御される媒体再生
US11860933B2 (en) 2016-05-13 2024-01-02 Google Llc Personalized and contextualized audio briefing
JP2019527379A (ja) * 2016-07-08 2019-09-26 グーグル エルエルシー フォローアップ音声クエリ予測
JP2018028870A (ja) * 2016-08-19 2018-02-22 ヤフー株式会社 抽出装置、抽出方法、及び抽出プログラム
JP6186057B1 (ja) * 2016-08-19 2017-08-23 ヤフー株式会社 抽出装置、抽出方法、及び抽出プログラム
JP2018040904A (ja) * 2016-09-06 2018-03-15 トヨタ自動車株式会社 音声認識装置および音声認識方法
JP2018190413A (ja) * 2017-05-02 2018-11-29 ネイバー コーポレーションNAVER Corporation ユーザ発話の表現法を把握して機器の動作やコンテンツ提供範囲を調整し提供するユーザ命令処理方法およびシステム
US10576993B2 (en) 2017-12-13 2020-03-03 Hyundai Motor Company Apparatus, method and system for providing voice output service in vehicle
JPWO2019155526A1 (ja) * 2018-02-06 2021-01-28 日産自動車株式会社 情報処理方法及び情報処理装置
JP7079419B2 (ja) 2018-02-06 2022-06-02 日産自動車株式会社 情報処理方法及び情報処理装置
US11200905B2 (en) 2018-02-06 2021-12-14 Nissan Motor Co., Ltd. Information processing method and information processing device
WO2019155526A1 (ja) * 2018-02-06 2019-08-15 日産自動車株式会社 情報処理方法及び情報処理装置
JP7074031B2 (ja) 2018-11-15 2022-05-24 トヨタ自動車株式会社 情報提供装置、情報提供方法及びプログラム
JP2020086521A (ja) * 2018-11-15 2020-06-04 トヨタ自動車株式会社 情報提供装置、情報提供方法及びプログラム

Also Published As

Publication number Publication date
JP6488588B2 (ja) 2019-03-27
US9484025B2 (en) 2016-11-01
US20150106096A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
JP6488588B2 (ja) 音声認識方法および音声認識システム
US10044818B2 (en) Notification related to predicted future geographic location of mobile device
US20190158609A1 (en) System and method for improved mapping and routing
US9574899B2 (en) Systems and method for determination and display of personalized distance
US9488485B2 (en) Method and apparatus for route selection based on recorded and calculated routes
US10209079B2 (en) Optimization of map views based on real-time data
US9769107B2 (en) Lifestyle-based social groups
WO2016177022A1 (zh) 一种信息处理方法、终端及服务器、计算机存储介质
EP2541484A1 (en) Geo-spatial recommendation and discovery system
US20130345958A1 (en) Computing Recommendations for Stopping During a Trip
EP2541485A1 (en) Method for constructing geo-fences for a spatial recommendation and discovery system
US9916362B2 (en) Content recommendation based on efficacy models
WO2012172160A1 (en) Method and apparatus for resolving geo-identity
EP3014906B1 (en) Human-like global positioning system (gps) directions
WO2021169741A1 (zh) 信息推荐方法、装置、终端及存储介质
US20140280053A1 (en) Contextual socially aware local search
WO2015052857A1 (en) Generating dynamic vocabulary for personalized speech recognition
US20150370903A1 (en) Delivering Personalized Information
US8521190B2 (en) Methods and apparatus for leaving and/or discovering locally relevant pieces of information
US20190090197A1 (en) Saving battery life with inferred location
WO2012164333A1 (en) System and method to search, collect and present various geolocated information
EP3868135A1 (en) Saving battery life using an inferred location

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180831

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190211

R151 Written notification of patent or utility model registration

Ref document number: 6488588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151