(57)【要約】  音声認識処理のための方法およびシステムが記載される。例において、ワードのシーケンスから構成される検索クエリについて、コンピューティングデバイスは、検索エンジンへの検索クエリの送信の頻度を示す情報を受け取るように構成され得る。コンピューティングデバイスは、検索クエリの送信の頻度がしきい値を越えることに基づいて、１つ以上のワードが検索クエリのワードのシーケンスに発生する順番に基づく検索クエリの１つ以上のワードのグルーピングを決定するように構成され得る。さらに、コンピューティングデバイスは、グルーピングを示す情報を音声認識システムに提供するように構成され得る。
2016500843.tif 000002
【特許請求の範囲】
【請求項１】
検索エンジンへの、ワードのシーケンスを含む検索クエリの送信の頻度を示す情報をコンピューティングデバイスにて受け取ることと、
前記検索クエリの送信の頻度がしきい値を越えることに基づいて、前記検索クエリのワードの前記シーケンスについて、１つ以上のワードが前記検索クエリのワードの前記シーケンスに発生する順番に基づく前記検索クエリの１つ以上のワードのグルーピングを決定することと、
ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムに前記グルーピングを示す情報を提供することとを含み、前記音声認識システムは、ワードの所与のシーケンスの前記コーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成される、方法。
【請求項２】
前記検索クエリは、テキストストリングおよび音声検索クエリの１つ以上を含む、請求項１に記載の方法。
【請求項３】
前記音声認識システムはさらに、前記コーパスのワードの前記所与のシーケンスについての発生確率を含み、前記音声認識システムに前記グルーピングを提供することは、前記グルーピングと、前記検索エンジンへの前記検索クエリの送信の頻度を示す前記情報とに基づき前記発生確率を更新することを含む、請求項１に記載の方法。
【請求項４】
前記音声認識システムに前記グルーピングを提供することは、
前記グルーピングを含むようワードの所与のシーケンスの前記コーパスを更新することと、
前記コーパスにおけるワードの他のシーケンスの所与の発生確率より高いそれぞれの発生確率を前記グルーピングに割り当てることとを含む、請求項３に記載の方法。
【請求項５】
前記グルーピングを含むようワードの所与のシーケンスの前記コーパスを更新することと、
前記音声認識システムが前記所与の話された発声を転写するために、前記コーパスにおける検索スペースを少なくとも前記グルーピングに制限することとをさらに含む、請求項１に記載の方法。
【請求項６】
前記コーパスにおける他のワードシーケンスに前記所与の話された発声をマッチングすることを試みる前に、前記グループピングのうちの１つに前記所与の話された発声をマッチングすることを、前記音声認識システムに試みさせることをさらに含む、請求項１に記載の方法。
【請求項７】
前記検索クエリの送信の頻度を示す前記情報に基づいて前記グルーピングについてそれぞれの発生確率を割り当てることをさらに含み、前記それぞれの発生確率は時間変化する、請求項１に記載の方法。
【請求項８】
前記検索クエリの送信の頻度を示す前記情報に基づいてそれぞれの発生確率を前記グルーピングに割り当てることと、
前記検索クエリの送信の頻度について更新された情報を連続的に受け取ることと、
前記更新された情報に基づいて前記それぞれの発生確率を更新することとをさらに含む、請求項１に記載の方法。
【請求項９】
前記それぞれの発生確率は、前記更新された情報に基づいて、時間にわたって減衰する、請求項８に記載の方法。
【請求項１０】
前記コンピューティングデバイスは前記音声認識システムを含む、請求項１に記載の方法。
【請求項１１】
命令を格納したコンピュータ読取可能媒体であって、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
検索エンジンへの、ワードのシーケンスを含む検索クエリの送信の頻度を示す情報を受け取ることと、
前記検索クエリの送信の頻度がしきい値を越えることに基づいて、前記検索クエリのワードの前記シーケンスについて、１つ以上のワードが前記検索クエリのワードの前記シーケンスに発生する順番に基づく前記検索クエリの１つ以上のワードのグルーピングを決定することと、
ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムに前記グルーピングを示す情報を提供することとを含む機能を行なわせ、前記音声認識システムは、ワードの所与のシーケンスの前記コーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成される、コンピュータ読取可能媒体。
【請求項１２】
前記グルーピングを決定する機能は、オートマトン状態およびオートマトン弧を含むファクタグラフを生成することを含み、前記オートマトン弧の各々は前記検索クエリのワードの前記シーケンスのワードに対応する、請求項１１に記載のコンピュータ読取可能媒体。
【請求項１３】
前記グルーピングを決定する機能は、
第１のオートマトン状態に接続される第１のオートマトン弧によって表わされる第１のワードを選択することと、
前記第１のオートマトン状態に隣接する第２のオートマトン状態へと継続することと、
前記第２のオートマトン状態に接続される第２の弧によって表わされる第２のワードを選択することとを含み、前記第２のワードは、前記検索クエリのワードの前記シーケンスにおいて前記第１のワードに隣接する、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１４】
前記グルーピングの所与のグルーピングは、前記ファクタグラフにおいて任意の所与のオートマトン状態で始まるよう示される、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１５】
デバイスであって、
少なくとも１つのプロセッサと、
データストレージと、
前記データストレージにおけるプログラム命令とを含み、前記プログラム命令は、前記少なくとも１つのプロセッサによる実行の際、前記デバイスに、
所与の期間における検索エンジンへの、ワードのシーケンスを含む検索クエリの送信の頻度を示す情報を受け取ることと、
前記所与の期間における前記検索エンジンへの前記検索クエリの送信の頻度を示す前記情報に基づいて、前記検索クエリのワードの前記シーケンスについて、１つ以上のワードが前記検索クエリのワードの前記シーケンスに発生する順番に基づく前記検索クエリの１つ以上のワードのグルーピングを決定することと、
ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムに前記グルーピングを示す情報を提供することとを行わせ、前記音声認識システムは、ワードの所与のシーケンスの前記コーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成される、デバイス。
【請求項１６】
前記少なくとも１つのプロセッサによる実行の際の前記プログラム命令はさらに、前記デバイスに、前記所与の期間における前記検索エンジンへの前記検索クエリの送信の頻度を示す前記情報に基づいてメトリックを決定することを行わせ、
前記少なくとも１つのプロセッサによる実行の際の前記プログラム命令は、前記デバイスに、しきい値に対する前記メトリックの比較に基づいて前記グルーピングを決定することを行わせる、請求項１５に記載のデバイス。
【請求項１７】
前記音声認識システムは、前記コーパスのワードの前記所与のシーケンスについての発生確率を含み、前記音声認識システムに前記グルーピングを提供するために、前記少なくとも１つのプロセッサによる実行の際の前記データストレージにおける前記プログラム命令は、前記デバイスに、前記グルーピングと、前記検索クエリの送信の頻度を示す前記情報とに基づいて前記発生確率を更新することを行わせる、請求項１５に記載のデバイス。
【請求項１８】
前記音声認識システムは、前記コーパスのワードの前記所与のシーケンスについての発生確率を含み、前記音声認識システムに前記グルーピングを提供するために、前記少なくとも１つのプロセッサによる実行の際の前記データストレージにおける前記プログラム命令は、前記デバイスに、
前記グルーピングにより、ワードの所与のシーケンスの前記コーパスを増強することと、
前記コーパスにおけるワードの他のシーケンスの所与の発生確率より高いそれぞれの発生確率を前記グルーピングに割り当てることとを行わせる、請求項１５に記載のデバイス。
【請求項１９】
前記グルーピングを決定するために、前記少なくとも１つのプロセッサによる実行の際の前記データストレージにおける前記プログラム命令は、前記デバイスに、オートマトン状態およびオートマトン弧を含むファクタグラフを生成することを行わせ、前記オートマトン弧の各々は前記検索クエリのワードの前記シーケンスのワードに対応する、請求項１５に記載のデバイス。
【請求項２０】
前記グルーピングの所与のグルーピングを決定するために、前記少なくとも１つのプロセッサによる実行の際の前記データストレージにおける前記プログラム命令は、前記デバイスに、
第１のオートマトン状態に接続される第１のオートマトン弧によって表わされる第１のワードを選択することと、
前記第１のオートマトン状態に隣接する第２のオートマトン状態へと継続することと、
前記第２のオートマトン状態に接続される第２の弧によって表わされる第２のワードを選択することとを行わせ、前記第２のワードは、前記検索クエリのワードの前記シーケンスにおいて前記第１のワードに隣接し、前記所与のグルーピングは、前記ファクタグラフにおいて任意の所与のオートマトン状態で始まることを許容される、請求項１９に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は、「検索クエリ情報を使用する音声認識処理のための方法およびシステム（Methods and Systems for Speech Recognition Processing Using Search Query Information）」という名称を有する２０１２年１０月１８日に出願された米国特許出願連続番号第６１／７１５，３６５号の仮出願である、「検索クエリ情報を使用する音声認識処理のための方法およびシステム（Methods And Systems For Speech Recognition Processing Using Search Query Information）」という名称を有する２０１３年３月１５日に出願された米国特許出願連続番号第１３／８３２，１３６号への優先権を主張し、これらはすべてこの明細書において完全に記載されるように本願明細書において参照により援用される。
【背景技術】
【０００２】
背景
自動音声認識（automatic speech recognition（ＡＳＲ））技術は、音声発声をそれらの発声のテキスト表現にマッピングするように使用され得る。いくつかのＡＳＲシステムは、個々の話者が音声認識システムにテキストのセクションを読み込む「トレーニング」を使用している。これらのシステムは、人の特定の声を分析し、当該音声を利用して、その人についてそのスピーチの認識を微調整し、より正確な転写（transcription）を得る。トレーニングを使用しないシステムは、「不特定話者（Speaker Independent）」システムと称され得る。トレーニングを使用するシステムは「特定話者（Speaker Dependent）」システムと称され得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
本願は、音声認識処理のためのシステムおよび方法を開示する。１つの局面において方法が記載される。上記方法は、検索エンジンへの検索クエリの送信の頻度を示す情報をコンピューティングデバイスにて受け取ることを含み得る。検索クエリはワードのシーケンスを含み得る。上記方法はさらに、検索クエリの送信の頻度がしきい値を越えることに基づいて、検索クエリのワードのシーケンスについて、１つ以上のワードが検索クエリのワードのシーケンスに発生する順番に基づく検索クエリの１つ以上のワードのグルーピングを決定することを含み得る。上記方法はさらに、ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムにグルーピングを示す情報を提供することを含み得る。音声認識システムは、ワードの所与のシーケンスのコーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成され得る。
【０００４】
別の局面では、コンピューティングデバイスによって実行されるとコンピューティングデバイスに機能を行わせる命令を格納したコンピュータ読取可能媒体が記載される。上記機能は、検索エンジンへの検索クエリの送信の頻度を示す情報を受け取ることを含み得る。検索クエリはワードのシーケンスを含み得る。上記機能はさらに、検索クエリの送信の頻度がしきい値を越えることに基づいて、検索クエリのワードのシーケンスについて、１つ以上のワードが検索クエリのワードのシーケンスに発生する順番に基づく検索クエリの１つ以上のワードのグルーピングを決定することを含み得る。上記機能はさらに、ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムにグルーピングを示す情報を提供することを含み得る。音声認識システムは、ワードの所与のシーケンスのコーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成され得る。
【０００５】
さらに別の局面では、デバイスが記載される。上記デバイスは、少なくとも１つのプロセッサを含み得る。上記デバイスはさらに、データストレージと、データストレージにおけるプログラム命令とを含み得、プログラム命令は、少なくとも１つのプロセッサによる実行の際、デバイスに、検索エンジンへの検索クエリの送信の頻度を示す情報を受け取ることを行わせる。検索クエリはワードのシーケンスを含み得る。少なくとも１つのプロセッサによる実行の際のデータストレージにおけるプログラム命令はさらに、デバイスに、検索クエリの送信の頻度がしきい値を越えることに基づいて、検索クエリのワードのシーケンスについて、１つ以上のワードが検索クエリのワードのシーケンスに発生する順番に基づく検索クエリの１つ以上のワードのグルーピングを決定することを行わせる。少なくとも１つのプロセッサによる実行の際のデータストレージにおけるプログラム命令はさらに、デバイスに、ワードの所与のシーケンスのコーパスを更新するよう、音声認識システムにグルーピングを示す情報を提供することを行わせる。音声認識システムは、ワードの所与のシーケンスのコーパスに基づいて、所与の話された発声をワードの所与のシーケンスに変換するように構成され得る。音声認識システムはさらに、コーパスのワードの所与のシーケンスについての発生確率を含み得る。
【０００６】
上記の概要は単に例示であって、如何なる態様でも限定的であるように意図されない。図面および以下の詳細な説明への参照によって、上に記載された例示的な局面、実施形態、および特徴に加えて、さらに別の局面、実施形態および特徴が明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】例示的な実施形態に従った例示的な自動音声認識（ＡＳＲ）システムを示す図である。
【図２】実施形態に従った例示的な音響モデルの局面を示す図である。
【図３】実施形態に従ったＡＳＲシステムの例示的な検索グラフを示す図である。
【図４】実施形態に従った音声認識処理のための例示的な方法のフローチャートである。
【図５Ａ】実施形態に従った例示的な検索クエリについての例示的なオートマトン表現を示す図である。
【図５Ｂ】実施形態に従った例示的な検索クエリについての例示的なバイグラム言語モデルを示す図である。
【図５Ｃ】実施形態に従った例示的な検索クエリについての例示的なファクタグラフを示す図である。
【図６】例示的な実施形態に従った例示的な分散コンピューティングアーキテクチャを示す図である。
【図７Ａ】例示的な実施形態に従った例示的なコンピューティングデバイスのブロック図である。
【図７Ｂ】例示的な実施形態に従ったクラウドベースのサーバシステムを示す図である。
【図８】本願明細書において示される少なくともいくつかの実施形態に従って構成される、コンピューティングデバイス上でコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラムプロダクトの部分概念図を示す概略図である。
【発明を実施するための形態】
【０００８】
詳細な説明
以下の詳細な説明は、添付の図面を参照して、開示されるシステムおよび方法のさまざまな特徴および機能を記載する。これらの図において、文脈が他の態様を示していなければ、同様の符号は同様の構成要素を特定する。本願明細書に記載される例示的なシステムおよび方法の実施形態は限定的であるよう意図されない。開示されるシステムおよび方法のある局面は、すべて本願明細書において考えられるさまざまな異なる構成において構成および組み合わせられ得るということが容易に理解され得る。
【０００９】
コンピューティングパワーが増加し続けているので、スピーチベースのユーザインターフェイスを提供するよう、さまざまな環境において自動音声認識（ＡＳＲ）システムおよびデバイスが展開され得る。これらの環境のうちのいくつかは、住宅、企業、車両などを含む。
【００１０】
たとえば住宅および企業においては、ＡＳＲは、大型電化製品（たとえばオーブン、冷蔵庫、皿洗い機、洗濯機およびドライヤ）、小型電化製品（たとえばトースタ、サーモスタット、コーヒーメーカ、マイクロ波オーブン）、メディアデバイス（ステレオ、テレビ、デジタルビデオレコーダ、デジタルビデオプレーヤ）といったデバイスに対する音声制御、ならびに、ドア、ライト、およびカーテンなどに対する音声制御を提供し得る。車両においては、ＡＳＲは、通信技術（たとえば携帯電話）、メディアデバイス（たとえばラジオおよびビデオプレーヤ）、マッピング技術（たとえばナビゲーションシステム）、および環境制御（たとえば暖房および空調）などのハンズフリーの使用を提供し得る。ある例において、ＡＳＲは、音声検索クエリを、検索結果を得るために検索エンジンに送られ得るテキストストリングに変換するよう使用され得る。音声制御についての潜在的な使用は多く存在し、これらの例は限定としてみなされるべきでない。
【００１１】
ある例において、ＡＳＲは、話者から発声を受け取るデバイスにて行なわれ得る。このデバイスベースのＡＳＲの場合、各ユーザデバイスはＡＳＲモジュールを有するよう構成され得る。別の例では、音声認識はリモートネットワークサーバ（たとえばインターネット上のサーバまたはサーバのクラスタ）にて行なわれ得る。この例において、音声認識はユーザデバイスにＡＳＲを組み入れないかもしれないが、ユーザデバイスはそれでも、（たとえばインターネットアクセスを通じて）リモートＡＳＲシステムとの通信パスを有するように構成され得る。
【００１２】
さらに別の例では、音声認識は、リモートのデバイスにＡＳＲの少なくともいくつかの局面の実行をオフロードするローカルのＡＳＲシステムの使用によって行なわれ得る。ローカルのＡＳＲシステムは、ＡＳＲを行なう専用の１つ以上のデバイスか、または、たとえば汎用コンピューティングプラットフォーム上で動作するように構成されるソフトウェアであり得る。このローカルのＡＳＲシステムは、住宅、企業、車両などに物理的に設置され得、ユーザデバイスがインターネットアクセスを有していなくても動作し得る。
【００１３】
いくつかの例において、ユーザデバイスは話者から発声を受け取り、ローカルのＡＳＲシステムに発声の表現を送信し得る。ローカルのＡＳＲシステムは、当該発声の表現を発声のテキスト表現へと転写し、このテキスト表現をユーザデバイスに送信し得る。代替的には、ローカルのＡＳＲシステムはその代りに、当該発声の転写に基づいたコマンドをユーザデバイスに送信し得る。このコマンドは、発声の転写されたテキスト表現に基づき得るか、または、当該発声の表現からより直接的に導出され得る。また、当該コマンドは、ユーザデバイスがサポートするコマンドセットまたはコマンド言語であり得る。一例において、発声は音声検索クエリを表わし得、ローカルのＡＳＲシステムは、検索エンジンに音声検索クエリの転写を送信して、ユーザデバイスに通信され得るそれぞれの検索結果を得るように構成され得る。
【００１４】
図１は、実施形態に従った例示的なＡＳＲシステムを示す。ランタイムにおいて、ＡＳＲシステムへの入力は発声１００を含み得、出力は１つ以上のテキストストリングと、おそらく関連付けられる信頼水準１０１とを含み得る。ＡＳＲシステムのコンポーネントは、特徴ベクトル１０４を生成するように構成され得る特徴解析モジュール１０２と、パターン分類モジュール１０６と、音響モデル１０８と、辞書１１０と、言語モデル１１２とを含み得る。パターン分類モジュール１０６は、音響モデル１０８、辞書１１０および言語モデル１１２のさまざまな局面を組み込み得る。
【００１５】
図１に示される例示的なＡＳＲシステムは単に例示目的のためのものである。異なるコンポーネント、コンポーネント同士の間の異なる関係、および／または、異なる処理を含む他のＡＳＲシステムの構成が可能であり得る。
【００１６】
特徴解析モジュール１０２は、発声１００を受け取るように構成され得る。発声１００は、人間のスピーチのアナログまたはデジタル表現を含み得、同様にバックグラウンドノイズも含み得る場合がある。特徴解析モジュール１０２は、発声１００を１つ以上の特徴ベクトル１０４のシーケンスに変換するように構成され得る。特徴ベクトル１０４の各特徴ベクトルは、発声１００の少なくとも一部の音響特徴の時間および／またはスペクトル表現を含み得る。たとえば、特徴ベクトルはこのような部分のメル周波数ケプストラム係数（mel-frequency cepstrum coefficient）を含み得る。
【００１７】
メル周波数ケプストラム係数は、発声１００の部分の短期のパワースペクトルを表わし得る。それらはたとえば、周波数の非線形メル尺度上の対数パワースペクトルの線形コサイン変換に基づき得る。（メル尺度は、ピッチの実際の周波数が互いから等しく遠く離れていなくても互いからほぼ等しく離れていると聴き手が主観的に知覚するピッチの尺度であり得る）。
【００１８】
これらの係数を導出するために、特徴解析モジュール１０２は、発声１００をサンプリングおよびクオンタイズし、発声１００を分割して１５ミリ秒のオーバーラップするフレームまたはオーバーラップしないフレームにし、当該フレームに対してスペクトル分析を行なって各フレームのスペクトル成分を導出するように構成され得る。特徴解析モジュール１０２はさらに、ノイズ除去を行ない、標準スペクトル係数をメル周波数ケプストラム係数に変換し、メル周波数ケプストラム係数の一次および二次ケプストラム導関数を計算するように構成され得る。
【００１９】
一次ケプストラム係数導関数は、２つ以上の連続するフレームのウィンドウにわたって行なわれる線形回帰の傾きに基づいて計算され得る。二次ケプストラム係数導関数は、一次ケプストラム係数導関数の２つ以上の連続する組のウィンドウにわたって行なわれる線形回帰の斜きに基づいて計算され得る。しかしながら、一次および二次ケプストラム係数導関数を計算する他の方法が存在し得る。
【００２０】
いくつかの例では、発声１００の１つ以上のフレームは、メル周波数ケプストラム係数、一次ケプストラム係数導関数および二次ケプストラム係数導関数の特徴ベクトルによって表わされ得る。たとえば、特徴ベクトルは、１３の係数、１３の一次導関数および１３の二次導関数を含み得、したがって長さが３９である。しかしながら、特徴ベクトルは、他の可能な例において、特徴の異なる組合せを使用し得る。
【００２１】
パターン分類モジュール１０６は、特徴解析モジュール１０２から特徴ベクトル１０４のシーケンスを受け取り、発声１００の１つ以上のテキストストリングの転写１０１を出力として生成するよう構成され得る。各転写１０１には、当該転写が正しい可能性の推定（たとえば８０％の信頼性、９０％の信頼性など）を示すそれぞれの信頼水準が伴い得る。
【００２２】
テキストストリングの転写１０１を生成するために、パターン分類モジュール１０６は、音響モデル１０８、辞書１１０および／もしくは言語モデル１１２の局面を含むかまたは組み込むように構成され得る。いくつかの例において、パターン分類モジュール１０６はさらに、ワードのシーケンスを表わす検索グラフまたは話された発声に現われるサブワード音響特性を使用するように構成され得る。
【００２３】
音響モデル１０８は、話されたワードおよび／またはサブワードの音の特定のシーケンスから特徴ベクトル１０４が導出され得た確率を決定するように構成され得る。これは、特徴ベクトル１０４のシーケンスを１つ以上の音素にマッピングし、その後、音素のシーケンスを１つ以上のワードにマッピングすることを伴い得る。
【００２４】
音素は、発声の他のセグメントに対する意味のある対比を含む発声の最も小さなセグメントであると考えられ得る。したがって、ワードは典型的に１つ以上の音素を含む。たとえば、音素は文字の発声と考えられ得るが、いくつかの音素は複数の文字を示し得る。「cat」というワードのアメリカ英語の発音についての例示的な音素のスペリングは、／ｋ／、／ａｅ／、および／ｔ／という音素を含む／ｋ／  ／ａｅ／  ／ｔ／であり得る。「dog」というワードについての別の例示的な音素のスペリングは、／ｄ／、／ａｗ／、および／ｇ／という音素を含む／ｄ／  ／ａｗ／  ／ｇ／であり得る。
【００２５】
異なる音素のアルファベットが存在し、これらのアルファベットは、その中のさまざまな音素について異なるテキスト表現を有し得る。たとえば「a」という文字は、「cat」における音については／ａｅ／という音素によって表わされ得、「ate」における音については／ｅｙ／という音素によって表わされ得、「beta」における音については／ａｈ／という音素によって表わされ得る。他の音素表現が可能である。
【００２６】
アメリカ英語についての一般的な音素のアルファベットは、約４０個の異なる音素を含む。これらの音素の各々は、特徴ベクトル値の異なる分布に関連付けられ得る。音響モデル１０８は、特徴ベクトルを上記４０個の音素の各々についての分布と比較し、特徴ベクトルによって最も可能性が高く表わされる１つ以上の音素を発見することによって、特徴ベクトルにおいて音素を推定するように構成され得る。
【００２７】
一例では、音響モデル１０８は、隠れマルコフモデル（hidden Markov model（ＨＭＭ））を含み得る。ＨＭＭは、観察されない（すなわち隠された）状態を有するマルコフ過程としてシステムをモデル化し得る。各ＨＭＭ状態は、状態の統計的な挙動を特徴付ける多変数のガウス分布として表わされ得る。さらに、各状態はまた、現在の状態から別の状態に遷移する確率を特定する１つ以上の状態遷移に関連付けられ得る。
【００２８】
ＡＳＲシステムに適用されると、多変数のガウス分布と、各状態についての状態遷移との組合せは、１つ以上の音素の期間にわたる特徴ベクトルの時間シーケンスを規定し得る。代替的または付加的には、ＨＭＭは、ワードを規定する音素のシーケンスをモデル化し得る。したがって、いくつかのＨＭＭベースの音響モデルはまた、１つ以上のワードに特徴ベクトルのシーケンスをマッピングする場合、音素コンテキストを考慮に入れ得る。
【００２９】
図２は、実施形態に従った例示的な音響モデル２００の局面を示す。音響モデル２００は、「cat」というワードを構成する音素のシーケンスを規定する。各音素は、それぞれ音素の始め、音素の中間および音素の終了時での統計的な特性を表わす初期状態、中間状態および終了状態を有する３状態のＨＭＭによって表わされる。各状態（たとえば、状態／ｋ／１，状態／ｋ／２など）は、音素を表わし得るとともに、１つ以上の遷移を含み得る。
【００３０】
音響モデル２００は、適切な遷移に、ワードにおける各音素についてのそれぞれの３状態のＨＭＭを一緒に連結することによって、ワードを表わし得る。これらの連結は、辞書１１０における情報に基づいて行なわれ得る。いくつかの実現例では、音響モデル２００において、１つの音素につきより多くの状態またはより少ない状態が使用され得る。
【００３１】
音響モデル２００は、音素の状態の各々についての表現が得られ得るように、多数のコンテキスト（たとえばさまざまなワードおよび文）における各音素の録音を使用してトレーニングされ得る。これらの表現は、上に論じられた多変数のガウス分布を含み得る。
【００３２】
音響モデル２００をトレーニングするために、話された音素を含むおそらく多くの発声が各々、転写に関連付けられ得る。これらの発声は、ワードおよび文などであり得、日常の発話または何らかの他の源の録音から得られ得る。転写は、発声の自動または手動（人間が作成した）テキストストリングであり得る。
【００３３】
当該発声は、それぞれの転写に従ってセグメント化され得る。たとえば、音響モデル２００のトレーニングは、（たとえばバウム−ウェルチ（Baum-Welch）および／またはビタビ（Viterbi）アライメント法を用いて）話されたストリングをユニットへとセグメント化し、その後、当該セグメント化された発声を使用して各音素状態について統計的分布を構築することを伴う。
【００３４】
この結果、より多くのデータ（発声およびそれらの関連付けられる転写）がトレーニングに使用されると、より正確な音響モデルが生成され得る。しかしながら、よくトレーニングされた音響モデルでさえ、トレーニングされなかったドメインにおいてＡＳＲのために使用されると正確さが制限され得る。たとえば、所与の音響モデルが多くのアメリカ英語の話者の発声によってトレーニングされる場合、この音響モデルは、アメリカ英語のＡＳＲのために使用されると良好に機能し得るが、たとえばイギリス英語のＡＳＲのために使用されるとあまり正確でなくなり得る。
【００３５】
また、音響モデル２００は、多くの話者の発声を使用してトレーニングされる場合、話者のすべてにわたったこの音素の発音の統計的な平均として各音素を表わすことになりやすい。したがって、この態様でトレーニングされた場合の音響モデル２００は、任意の特定の話者ではなく、仮定の平均的な話者の発音および使用を表わし得る。
【００３６】
再び図１を参照して、辞書１１０は、音素とワードとの間のあらかじめ確立されるマッピングを規定し得る。このマッピングは、たとえば何万または何十万の音素パターン対ワードマッピングのリストを含み得る。したがって、いくつかの例において、辞書１１０は、下に示されるテーブル１のようなルックアップテーブルを含み得る。テーブル１は、ＡＳＲシステムが認識を試みている対応するワードについてパターン分類モジュール１０６が識別するように構成され得る音素のシーケンスを辞書１１０がどのようにリスト化し得るかを示す。したがって、辞書１１０は、音響モデル２００によって示されるワードの音素状態表現を展開する際に使用され得る。
【００３７】
【表１】
2016500843.tif 000003
【００３８】
言語モデル１１２は、ＡＳＲシステムへの入力発声において発生する音素またはワードの当該シーケンスの可能性に基づいて、音素またはワードのシーケンスに確率を割り当てるように構成され得る。したがってたとえば、言語モデル１１２は、フレーズにおけるｎ−１前のワードのパターンの値が与えられると、（発声から転写されたフレーズにおけるｎ番目のワードについて）ｗｎの条件付き確率を規定し得る。例示的な条件付き確率は次のように表現され得る。
【００３９】
【数１】
2016500843.tif 000004
【００４０】
一般に、言語モデルは、たとえばパターン分類モジュール１０６において表わされるｎ個の音素またはワードのシーケンスであり得るｎグラム（n-gram）上で動作し得る。５より大きいｎの値を有する言語モデルは、大きなメモリまたはストレージスペースを必要し得、したがってより小さなｎグラム（たとえば３グラム（トライグラム（tri-gram）とも称される）が、許容できる結果を効率的に産出するために使用され得る。トライグラムは、例示目的で本願明細書において使用される。しかしながら、如何なる値のｎも本願明細書における例と共に使用され得る。
【００４１】
言語モデルは、ワードのテキストストリングまたはシーケンスのコーパスの分析を通じてトレーニングされ得る。このコーパスは、たとえば何百、何千、何百万またはそれ以上といった多くのワードを含み得る。これらのワードは、ＡＳＲシステムのユーザが話した発声および／または書面から得られ得る。たとえば、言語モデル１１２は、人間のスピーチ、書かれたテキスト（たとえば電子メール、ウェブページ、レポート、学術論文、ワードプロセシング文書など）、および検索クエリなどにおいて発生するワードパターンに基づいて、決定または発展され得る。
【００４２】
このようなコーパスから、コーパスにおける出現のそれぞれの数に基づいて、トライグラムの確率が推定され得る。言いかえれば、Ｃ（ｗ１，ｗ２，ｗ３）がコーパスにおけるワードｗ１，ｗ２，ｗ３のシーケンスの発生の回数である場合、当該ワードのシーケンスについて発生確率は次のように表現され得る。
【００４３】
【数２】
2016500843.tif 000005
【００４４】
したがって、言語モデル１１２は条件付き確率のテーブルとして表わされ得る。テーブル２は、言語モデル１１２の基礎を形成し得るテーブルの例を示す。特に、テーブル２はトライグラムの条件付き確率を含む。
【００４５】
【表２】
2016500843.tif 000006
【００４６】
「cat and」という２グラムの接頭辞（prefix）について、テーブル２は、コーパスにおける観察された発生に基づき、次の１グラムが「dog」である時が５０％であることを示す。同様に、３５％の時、次の１グラムは「mouse」であり、１４％の時、次の１グラムは「bird」であり、１％の時、次の１グラムは「fiddle」である。完全にトレーニングされたＡＳＲシステムでは、言語モデル１１２はさらに多くのエントリを含み、これらのエントリは単に１つより多い２グラムの接頭辞を含み得る。
【００４７】
音響モデル１０８および言語モデル１１２がひとたび適切にトレーニングされると、特徴分析モデル１０２およびパターン分類モジュール１０６はＡＳＲを行なうように構成され得る。入力発声１００が提供されると、ＡＳＲシステムは、言語モデル１１２から有効なワードシーケンスのスペースを検索し、発声１００において話された最大の可能性を有するワードシーケンスを発見し得る。しかしながら、検索スペースのサイズはかなり大きくなり得、検索スペースを低減する方法は、このような検索を計算上より効率的にさせ得る。例として、潜在的に桁のオーダで検索の複雑さを低減するためにヒューリスティック技術が使用され得る。検索スペースを限定する他の方法が可能である。たとえば、検索スペースは所与の期間においてポピュラーなフレーズに制限され得る。
【００４８】
有限状態トランスデューサ（finite state transducer（ＦＳＴ））が、単一のワードにマッピングする複数の音素パターンを簡潔に表わすために使用され得る。「data」、「either」、「tomato」および「potato」のようないくつかのワードは、複数の発音を有する。これらの発音についての音素シーケンスは、１ワードにつき、単一のＦＳＴにおいて表わされ得る。
【００４９】
効率的な音素レベルのＦＳＴを作り出すこのプロセスは、辞書１１０における各ワードについて行なわれ得、結果得られるワードＦＳＴは、言語モデル１１２を使用して、センテンスＦＳＴへと組み合わせられ得る。最終的に、音素、ワードおよびワードのシーケンスについての状態のネットワークが発達され得、コンパクトな検索グラフにおいて表わされ得る。
【００５０】
図３は、実施形態に従ったＡＳＲシステムの例示的な検索グラフ３００を示す。この例示的な検索グラフ３００は、ＡＳＲシステムにおいて使用され得る検索グラフよりも小さくて複雑ではなく、例示のために使用される。特に、検索グラフ３００は、「catapult」、「cat and mouse」、「cat and dog」、「cat」および「cap」といった５つの入力発声によりトレーニングされた。
【００５１】
検索グラフ３００における各円は、音素にマッピングされた入力発声の処理に関連付けられる状態を表わし得る。単純さのために、検索グラフ３００における各音素は、複数の状態ではなく単一の状態で表わされる。さらに、図３を簡素化するために、自己遷移（self-transition）が検索グラフ３００から省略される。
【００５２】
検索グラフ３００における状態は、「ｘ［ｙ］ｚ」というフォーマットを使用して、入力発声の現在の音素コンテキストに基づいて命名されており、これにより、考えられている現在の音素であるｙが音素ｘの左のコンテキストを有し、音素ｚの右のコンテキストを有することを示す。言いかえれば、状態「ｘ［ｙ］ｚ」は、考えられている現在の音素がｙであり、当該発声において以前に考えられた音素がｘであり、発声において考えられる次の音素がｚである発声を処理することにおけるポイントを示す。発声の開始部および発声の終了部は、「＃」文字によって表わされ、ゼロの音素（null phoneme）とも称され得る。
【００５３】
終端状態は、引用において認識されたワードまたはフレーズによって表わされ得る。検索グラフ３００は、ワードまたはワードのシーケンス（すなわちフレーズ）の認識を表わす、「catapult」、「cat and mouse」、「cat and dog」、「cat」および「cap」のような５つの終端状態を含む。
【００５４】
１つの状態から別の状態までの遷移は、コーパスにおける音素の観察された順番を表わし得る。たとえば、「＃［ｋ］ａｅ」という状態は、左のコンテキストがゼロの音素であり右のコンテキストが「ａｅ」の音素である「ｋ」音素の認識を表わす。「＃［ｋ］ａｅ」という状態からは２つの遷移が存在し、その１つは次の音素（「ａｅ」の後の音素）が「ｔ」である遷移であり、もう１つは次の音素が「ｐ」である遷移である。
【００５５】
音響モデル１０８、辞書１１０および言語モデル１１２に基づき、状態および／または遷移の１つ以上にコストが割り当てられ得る。たとえば、特定の音素パターンがまれな場合、その音素パターンを表わす状態への遷移は、より一般的な音素パターンを表わす状態への遷移よりも高いコストを有し得る。同様に、言語モデル（たとえばテーブル２参照）からの条件付き確率も、状態および／または遷移にコストを割り当てるために使用され得る。たとえば、テーブル２において、「cat and」というワードを有するフレーズ与えられると、当該フレーズにおける次のワードが「dog」である条件付き確率は０．５である一方、当該フレーズにおける次のワードが「mouse」である条件付き確率は０．３５である。したがって、状態「ａｅ［ｎ］ｄ」から状態「ｎ［ｄ］ｍ」への遷移は、状態「ａｅ［ｎ］ｄ」から状態「ｎ［ｄ］ｄ」への遷移よりも高いコストを有し得る。
【００５６】
任意の状態、状態間の遷移、およびそれに関連付けられるコストを含む検索グラフ３００は、新しい入力発声についてテキストストリングの転写を推定するように使用され得る。たとえば、パターン分類モジュール１０６は、検索グラフ３００に基づいて、入力発声とマッチングする１つ以上のワードのシーケンスを決定し得る。パターン分類モジュール１０６は、以下を求めることを試みるように構成され得る。
【００５７】
【数３】
2016500843.tif 000007
【００５８】
式中ａは、入力発声から導出された特徴ベクトルのストリームであり、Ｐ（ａ｜ｗ）は、それらの特徴ベクトルがワードシーケンスｗによって生成される確率を表わし、Ｐ（ｗ）は、言語モデル１１２によってｗに割り当てられた確率である。たとえば、Ｐ（ｗ）は、上で論じたようなｎグラムの条件付き確率と他のファクタとに基づき得る。関数ａｒｇｍａｘｗは、Ｐ（ａ｜ｗ）Ｐ（ｗ）を最大化するｗの値を返し得る。
【００５９】
再び図１を参照して、発声１００とマッチングし得るテキストストリングを発見するために、パターン分類モジュール１０６は、特徴ベクトル１０４に基づいて、検索グラフ３００における初期状態から検索グラフ３００における終端状態へのパスの発見を試みるように構成され得る。このプロセスは、パターン分類モジュール１０６が、検索グラフ３００に対して幅優先探索（breadth-first search）、Ａスター（Ａ＊）探索（A-star(A*) search）、ビーム探索（beam search）、または何らかの他のタイプの探索を行なうことを伴い得る。パターン分類モジュール１０６は、状態に関連付けられるコストおよび／または各パスに関連付けられる遷移に基づいて、検索グラフ３００を通じて、１つ以上のパスにトータルコストを割り当てるように構成され得る。これらのコストのうちのいくつかはたとえば、発声の特定のセグメントがパスにおける音素の特定のシーケンスにマッピングする信頼水準に基づき得る。
【００６０】
例として、発声１００はフレーズ「cat and dog」を含み得、パターン分類モジュール１０６は、初期状態「＃［ｋ］ａｅ」で始まり終端状態「cat and dog」で終わるパスを発見するために、検索グラフ３００を通じて音素ごとに実行するように構成され得る。パターン分類モジュール１０６はさらに、検索グラフ３００を通じて、１つ以上の付加的なパスを発見するように構成され得る。たとえば、パターン分類モジュール１０６はさらに、初期状態「＃［ｋ］ａｅ」を有し終端状態「cat and mouse」で終わるパスと、初期状態「＃［ｋ］ａｅ」を有し終端状態「catapult」で終わるパスとに発声１００を関連付けるように構成され得る。しかしながら、パターン分類モジュール１０６は、他のパスによりも終端状態「cat and dog」を有するパスに低いコスト（または高い発生確率）を割り当てるように構成され得る。結果として、終端状態「cat and dog」を有するパスは、入力発声１００について最も可能性のある転写として選択され得る。
【００６１】
ＡＳＲシステムは多くの異なる態様で動作され得る。上記の例は、例示目的で示されており、ＡＳＲシステムが動作する唯一の態様ではなくてもよい。
【００６２】
上述したように、ＡＳＲシステムの音声認識データベースにおける検索スペースはかなり大きくなり得る。いくつかの例では、音声認識データベースを作成するＡＳＲシステムは、統計的な言語モデルを生成するために、タイプされたクエリ、ニュース記事および他の材料といったドキュメントソースをマイニングするように構成され得る。たとえば、言語モデルは、ある確率をすべての可能性のあるワードシーケンスに割り当て得る。例では、言語モデルは、ドキュメントソースにおいて発生しないワードシーケンスを許容し得る、すなわち、言語モデルは、ドキュメントソースにおいて発生するまたは発生しないフレーズのワードの順列および組合せを許容し得る。ドキュメントソースにおいて発生しないシーケンスへの一般化は、スムージング（smoothing）と称され得る。
【００６３】
スムージングは、ユーザがドキュメントソースに存在し得ないユニークまたは新しいフレーズを発し得るので、有用であり得る。しかしながら、ワードの順列および組合せを許容することは、無意味なワードシーケンスを作り出し得る。たとえば、元々のフレーズが「show me football results」である場合、無意味なワードシーケンスは「show results football me」であり得る。
【００６４】
検索スペースの低減は、ＡＳＲシステムを計算上より効率的にさせ得る。一般に、ＡＳＲシステムのユーザは、高い程度の反復性で発声を生成し得る。いくつかの例では、発声の反復は、不定期間のトレンド（たとえば季節のスポーツについての結果）に基づき得る。他の例では、発声の反復は、発声が関連付けられ得るトピックのポピュラリティ（たとえばオリンピックのような所与の期間の現在のイベントに関連付けられる発声）に基づいて予測可能であり得る。例において、ＡＳＲシステムは、計算上効率的な言語モデルを生成するために、このような予測可能な反復を利用するように構成され得る。
【００６５】
ある例では、ＡＳＲシステムが計算上効率的になるために、ＡＳＲシステムは、ポピュラーなフレーズに基づいてワードのシーケンスを生成するように構成され得る。さらに、ポピュラーなフレーズのワードのすべてのあらゆるシーケンスが、ポピュラーなフレーズにおけるワードの順序にかかわらず仮定されることを言語モデルが許容する代わりに、ＡＳＲシステムは、ポピュラーなフレーズのワードのグループピングまたはサブシーケンスの組を、ポピュラーなフレーズにおいてワードが発生するのと同じ順で当該グルーピングまたはサブシーケンスがワードを含むように、決定するように構成され得る。
【００６６】
例示のための例として、ポピュラーなフレーズは、所与のシーケンス「word1 word2 word3 word4 word5」における５ワードを含み得る。所与の言語モデルは、サブシーケンスまたはグルーピング「word2 word3 word5」を許容し得るが、このサブシーケンスは元々のポピュラーなフレーズに存在しないので、より効率的な言語モデルではないかもしれない。これにより、ＡＳＲシステムのための検索スペースは、より高い精度および計算上の効率を可能にしつつ、限定または低減され得る。
【００６７】
図４は、ある実施形態に従った、効率的な音声認識のための例示的な方法のフローチャートである。
【００６８】
方法４００は、ブロック４０２−４０６の１つ以上によって示されるように、１つ以上の動作、機能またはアクションを含み得る。ブロックは連続する順番で示されるが、いくつかの場合にはこれらのブロックは並列に行なわれ得、および／または、本願明細書において記載されるのとは異なる順番で行われ得る。さらに、さまざまなブロックが、より少ないブロックへと組み合わされ、付加的なブロックに分割され、および／または所望の実現例に基づいて除去され得る。
【００６９】
さらに、方法４００、他のプロセス、および本願明細書において開示された方法について、フローチャートは本例の１つの可能な実現例の機能および動作を示す。この点において、各ブロックは、プロセスにおいて特定の論理機能またはステップを実現するためのプロセッサによって実行可能な１つ以上の命令を含むモジュール、セグメントまたはプログラムコードの一部を表わし得る。プログラムコードは、たとえばディスクまたはハードドライブを含むストレージデバイスのような任意のタイプのコンピュータ読取可能媒体またはメモリ上に格納され得る。たとえば、コンピュータ読取可能媒体は、レジスタメモリ、プロセッサキャッシュおよびランダムアクセスメモリ（ＲＡＭ）といった短期間の間にデータを格納するコンピュータ読取可能媒体のような一時的でないコンピュータ読取可能媒体またはメモリを含み得る。コンピュータ読取可能媒体はさらに、たとえばリードオンリーメモリ（ＲＯＭ）、光学または磁気ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）といった二次的または持続性の長期間のストレージのような一時的でない媒体またはメモリを含み得る。コンピュータ読取可能媒体はさらに、任意の他の揮発性または不揮発性ストレージシステムであり得る。コンピュータ読取可能媒体は、たとえばコンピュータ読取可能記憶媒体、有形的ストレージデバイスまたは他の製造物品であると考えられ得る。
【００７０】
さらに、方法４００、他のプロセス、および本願明細書において開示される方法について、図４における各ブロックは、当該プロセスにおいて特定の論理機能を行なうように配線される回路網を表わし得る。
【００７１】
ブロック４０２では、方法４００は、検索エンジンへの検索クエリの送信の頻度を示す情報をコンピューティングデバイスにて受け取ることを含み、当該検索クエリは、ワードのシーケンスを含み得る。コンピューティングデバイスはたとえば、携帯電話、携帯情報端末（ＰＤＡ）、ラップトップ、ノートブック、またはネットブックコンピュータ、タブレットコンピューティングデバイス、ウェアラブルコンピューティングデバイス、クラウドベースのコンピューティングシステムにおけるサーバなどであり得る。
【００７２】
ある例では、一般にスパイキング（spiking）と称される検索クエリアクティビティの急激な増加は、多くのソースに起因し得る。スパイキングは、休日またはスポーツイベントのような規則的もしくはポピュラーな発生に起因し得るか、または、注目のニュース項目のような不規則なイベントに起因し得る。一例において、コンピューティングデバイス（たとえばサーバ）は、ポピュラーなクエリまたはスパイキングクエリを識別するよう所与の期間における検索エンジンへのある検索クエリ（または複数の検索クエリ）の送信の頻度を追跡することに関連付けられる情報を受け取るように構成され得る。たとえば、所与の検索クエリは、所与のデバイス（たとえば携帯電話）のユーザによって発せられたテキストストリング（フレーズ）または音声検索クエリであり得る。例において、ポピュラーなクエリまたはスパイキングクエリは、毎日、毎週、または任意の他の単位時間内に識別または抽出され得る。
【００７３】
再び図４を参照して、ブロック４０４では、方法４００は、検索クエリの送信の頻度がしきい値を越えることに基づいて、検索クエリのワードのシーケンスについて、１つ以上のワードが検索クエリのワードのシーケンスに発生する順番に基づく検索クエリの１つ以上のワードのグルーピングを決定することを含む。ある例において、検索エンジンへの検索クエリの送信の頻度を示す情報に基づいて、コンピューティングデバイスは、検索クエリのポピュラリティを示すメトリックを決定し、検索クエリが所与の期間においてポピュラーであるかどうかを識別するように構成され得る。たとえば、コンピューティングデバイスは、検索エンジンの使用履歴に基づいて、検索クエリの送信の頻度がしきい値を越える場合に検索クエリがポピュラーまたはスパイキング検索クエリとして指定され得るようにしきい値を決定するように構成され得る。
【００７４】
ある例では、コンピューティングデバイスは、時間にわたるクエリの送信の時系列分析に基づいてメトリックを決定し、クエリのポピュラリティを決定するために当該メトリックをしきい値と比較するように構成され得る。当該メトリックはたとえば、クエリアクセレレーション（query acceleration）またはベロシティに関係付けられ得る。クエリベロシティはたとえば、インスタントクエリ要求ともっとも最近のクエリ要求との間の時間の差の逆数として計算され得る。当該時間の差は、ｄｔ＝（このクエリインスタンスの時間−クエリが見られた最後の時間）として計算され得、クエリベロシティは１／ｄｔとして決定され得る。所与のクエリについてのクエリアクセレレーションは、瞬間のクエリベロシティで乗算された、現在のクエリベロシティ（または平均のクエリベロシティ）と以前に決定されて、以前に計算されたクエリベロシティ（または以前に計算された平均クエリベロシティ）との間の差として決定され得る。メトリックは、クエリベロシティ、クエリアクセレレーション、または、時間にわたるクエリの送信の時系列分析に基づいて決定される他のパラメータの関数であり得る。他のパラメータまたはこれらのパラメータを計算する他の方法が可能である。
【００７５】
方法４００を説明するための例として、コンピューティングデバイスは、「hello world I am here」と「world war two」という２つのポピュラーなフレーズを、検索エンジンへの２つのクエリの送信のそれぞれの頻度に基づいて決定するように構成され得る。これらの２つの検索クエリの各々は、所与の順番でワードのシーケンスを含む。たとえば、検索クエリ「world war two」は、そのシーケンスにおいて「world」、「war」および「two」という３つのワードを含む。
【００７６】
コンピューティングデバイスは、ワードが対応する検索クエリにおいて発生する順番に基づいて、ワードのグルーピングを決定するように構成され得る。たとえば、検索クエリ「world war two」に関して、コンピューティングデバイスは、以下のワードのグループピングを決定するように構成され得る。
【００７７】
【表３】
2016500843.tif 000008
【００７８】
これらのグルーピングはファクタとも称され得る。シーケンスの大きな組について、当該グルーピングは、所与の検索クエリのサイズにおいて二次であり得、したがって、ワードのすべてのグルーピングを列挙することは禁止的であり得る。ファクタまたはグルーピングをより効率的に決定するために、コンピューティングデバイスは、検索クエリについて、オートマトン表現およびファクタグラフを決定または生成するように構成され得る。ファクタグラフはグルーピングをより簡潔に表わし得、より効率的な検索を可能にし得る。
【００７９】
図５Ａは、実施形態に従った、例示的な検索クエリについての例示的なオートマトン表現５００を示す。オートマトン表現５００は、両方の検索クエリ「hello world I am here」および「world war two」を表わす。オートマトン表現５００は、初期状態５０２Ａ、中間状態５０２Ｂおよび終端状態５０２Ｃのようなオートマトン状態を含む。オートマトン表現５００はさらに、オートマトン弧５０４Ａおよび５０４Ｂのようなオートマトン弧を含み、各オートマトン弧は、所与の検索クエリのワードのシーケンスからのワードに対応し得る。
【００８０】
図５Ｂは、実施形態に従った、例示的な検索クエリのための例示的なバイグラム言語モデル５０６を示す。言語モデル５０６は、対応する検索クエリにおけるワードの順番にかかわらず、検索クエリのワードのすべての可能なグルーピングを許容する。図５Ｂに示されるように、言語モデル５０６は複雑であり、「hello world here I」のようなワードの無意味なグルーピングを許容し得る。
【００８１】
対照的に、検索クエリにおけるワードの順番に基づく、所与の検索クエリのワードの可能なグルーピングを簡潔に表わすファクタグラフは、オートマトン表現５００に基づいて生成され得る。図５Ｃは、実施形態に従った、例示的な検索クエリについての例示的なファクタグラフ５０８を示す。ファクタグラフ５０８は、図５Ｂに示される言語モデル５０６ほど複雑ではなく、対応する検索クエリにおけるワードの順番に基づいてワードのグルーピングを可能にする。
【００８２】
例として、ワードの所与のグルーピングを決定するために、コンピューティングデバイスは、第１のオートマトン状態（たとえば初期状態５１２Ａ）に接続されるオートマトン弧（たとえば弧５１０Ａ）によって表わされるワードを選択し、第１のオートマトン状態に隣接する第２のオートマトン状態（たとえば状態５１２Ｂ）へと継続し、第２の弧（たとえば弧５１０Ｂ）によって表わされるワードを選択してたとえばグルーピング「I am」を決定するように構成され得る。上記のグルーピングのうちの所与のグルーピングは、ファクタグラフ５０８において任意の所与の状態で開始されることが可能にされ得る。ファクタグラフ５０８は、「hello world I」のようなグルーピングを許容し得るが、「hello I」は許容しない。言いかえれば、ファクタグラフ５０８は、ワードをスキップすること、または、元々の検索クエリにおけるワードの順番から逸脱することを許容しない。これにより、ファクタグラフ５０８は、ワードが所与の検索クエリにおいて発生する順番に基づいて所与の検索クエリ上でワードのグルーピングを表わす簡潔で効率的な態様であると考えられ得る。
【００８３】
コンピューティングデバイスは頻繁に（たとえば毎日）、（上述したようにブロック４０２にて）ポピュラーなクエリまたはスパイキングクエリを識別し、当該クエリについてファクタグラフ５０８のようなファクタグラフを構築または生成するように構成され得る。ファクタグラフ５０８のようなファクタグラフを生成することは、言語モデル５０６のような完全な言語モデルを構築するよりも効率的であり得る。更に、ファクタグラフ５０８は、ファクタグラフ５０８が効率的にサブシーケンスを許容するという事実により、言葉どおりのスパイキングクエリのみを許容することに関して、より多くの柔軟性を提供し得る。たとえば、「Albert Einstein Relativity」がポピュラーなクエリまたはスパイキングクエリであると識別されると、対応するファクタグラフは、検索エンジンに送信されると当該ポピュラーなクエリである「Albert Einstein Relativity」と同様の検索結果が得られ得るグルーピング「Einstein Relativity」および「Albert Einstein」を許容し得る。
【００８４】
再び図４を参照して、ブロック４０６では、方法４００は、ワードの所与のシーケンスのコーパスを更新するよう、グルーピングを示す情報を音声認識システムに提供することを含み、音声認識システムは、ワードの所与のシーケンスのコーパスに基づいて、所与の話された発声を所与のワードのシーケンスに変換するように構成される。コンピューティングデバイス（たとえばサーバ）は、図１に示されるＡＳＲシステムのような音声認識システムに結合または通信され得る。一例では、コンピューティングデバイスは音声認識システムを含み得る。
【００８５】
例において、音声認識システムは、図１における言語モード１１２のような言語モデルによって生成され得たワードの所与のシーケンスのコーパスを含む音声認識データベースを含み得る。音声認識システムは、所与の話された発声を受け取り、たとえば図１−図３に記載されるようにワードの所与のシーケンスのコーパスからのワードのシーケンスに所与の話された発声をマッチングするように構成され得る。コンピューティングデバイスは、スパイキング検索クエリのワードのグルーピングを示すファクタグラフを生成し、当該ファクタグラフおよび／またはグルーピングを音声認識システムに提供して当該グルーピングをコーパスに含む（たとえばコーパスを増強する）ように構成され得る。
【００８６】
いくつかの例では、ポピュラーな検索クエリに対応するグルーピングでコーパスを更新した後に、コンピューティングデバイスは、コーパスにおける検索スペースが制限されるように構成され得る。たとえば、検索スペースは、少なくとも検索グラフによって表わされるグルーピングに制限され得る。別の例において、音声認識システムは、所与の話された発声をコーパスにおける他のワードシーケンスにマッチングすることを試みる前に、グルーピングのうちの１つに所与の話された発声をマッチングすることを試みるように構成され得る。
【００８７】
さらに別の例では、音声認識システムは、コンピューティングデバイスによってポピュラーなクエリについて生成されたファクタグラフに対応する検索グラフ３００のような検索グラフを生成するように構成され得る。たとえば、ファクタグラフに対応する検索グラフは、ワードの他のシーケンスについてのより大きな検索グラフに統合され得る。所与の発声とマッチングし得るテキストストリングを発見するために、音声認識システムは、検索グラフにおける初期状態から検索グラフにおける終端状態までのパスを発見することを試みるように構成され得、状態に関連付けられるコストおよび／または各パスに関連付けられる遷移に基づいて、検索グラフを通じて１つ以上のパスにトータルコストを割り当てるように構成され得る。ファクタグラフのワードのグルーピングに対応するパスには、たとえば他のパスよりも少ないコストが割り当てられ得る（すなわち高い確率が割り当てられ得る）。
【００８８】
例において、音声認識システムは、ポピュラーまたはスパイキング検索クエリのワードのグルーピングのいずれかに関係付けられず当該グルーピングのいずれにもマッチングしない話された発声を受け取り得る。一例において、この可能性に対応するために、音声認識システムは、ファクタグラフに検索スペースを制限するように、すなわち、高い信頼性のマッチを識別するようファクタグラフのパスを追跡することを試みるように構成され得、このような試みが失敗すると、音声認識システムは、完全な言語モデルまたはコーパスの残りを利用してマッチを識別するように構成され得る。別の例において、音声認識システムは、並列でファクタグラフおよび完全な言語モデルを追跡し、マッチがファクタグラフまたは完全な言語モデルのいずれかにおいて識別されると検索を終えるように構成され得る。検索グラフおよび完全な言語モデルを組み合わせる他の検索ストラテジーが可能である。
【００８９】
さらに、言語モデル１１２に関して上に記載されたように、コーパスにおけるワードの所与のシーケンスには、コーパスにおけるそれぞれの出現回数に基づいて推定され得る発生確率が割り当てられ得る。したがって、音声認識システムへのグルーピングの提供に加えて、コンピューティングデバイスは、グルーピングに基づいて発生確率を更新するように構成され得る。たとえば、コンピューティングデバイスは、コーパスにおけるワードの他のシーケンスの所与の発生確率より高いそれぞれの発生確率をグルーピングに割り当てるように構成され得る。割り当てられたそれぞれの確率は、検索クエリがどれくらいポピュラーかに基づき得、たとえば、検索エンジンへの検索クエリの送信の頻度を示す情報に基づき得る。
【００９０】
いくつかの例において、グルーピングについての発生確率は時間変化し得る。いくつかの場合において、所与の検索クエリのポピュラリティは時間にわたって減少し得る。例示のための例として、オリンピックの結果に関する検索クエリは、オリンピックの期間の間と、おそらくオリンピックの後の所与の期間の間とにおいて、ポピュラーであり得る。しかしながら、このような検索クエリのポピュラリティは時間にわたって減少し得る。したがって、この例において、コンピューティングデバイスは、グループピングの発生確率が減衰するように構成され得る。他の例において、コンピューティングデバイスは、検索クエリがどれくらいポピュラーか連続的に評価し、これにより、検索クエリのポピュラリティへの更新された変化に基づいて確率を更新または修正するように構成され得る。
【００９１】
図６は、例示的な実施形態に従った例示的な分散コンピューティングアーキテクチャを示す。図６は、ネットワーク６０６を介してプログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃと通信するように構成されるサーバデバイス６０２および６０４を示す。ネットワーク６０６は、ＬＡＮ、ワイドエリアネットワーク（ＷＡＮ）、企業イントラネット、パブリックインターネット、またはネットワークにつながれたコンピューティングデバイス同士の間の通信パスを提供するように構成される任意の他のタイプのネットワークに対応し得る。また、ネットワーク６０６は、ＬＡＮ、ＷＡＮ、企業イントラネットおよび／またはパブリックインターネットの１つ以上の組合せに対応し得る。
【００９２】
図６は３つのプログラマブルデバイスを示すが、分散アプリケーションアーキテクチャは、何十、何百または何千ものプログラマブルデバイスを取り扱い得る。さらに、プログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃ（または任意の付加的なプログラマブルデバイス）は、通常のラップトップコンピュータ、デスクトップコンピュータ、ネットワークターミナル、および無線通信デバイスなど（たとえばタブレット、携帯電話またはスマートフォン、ウェアラブルコンピューティングデバイスなど）のような如何なる種類のコンピューティングデバイスであってもよい。いくつかの例において、プログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃはソフトウェアアプリケーションの設計および使用に専用であり得る。他の例において、プログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃは、多くのタスクを行なうように構成され、ソフトウェア開発ツールに専用ではなくてもよい汎用コンピュータであり得る。
【００９３】
サーバデバイス６０２および６０４は、プログラマブルデバイス６０８ａ、６０８ｂおよび／または６０８ｃが要求するように１つ以上のサービスを行うように構成され得る。たとえば、サーバデバイス６０２および／または６０４は、プログラマブルデバイス６０８ａ−６０８ｃにコンテンツを供給し得る。コンテンツは、ウェブページ、ハイパーテキスト、スクリプト、コンパイルされたソフトウェアのようなバイナリデータ、画像、オーディオおよび／またはビデオを含み得るがこれらに限定されない。コンテンツは、圧縮されたおよび／または圧縮されていないコンテンツを含み得る。コンテンツは暗号化され得、および／または、暗号解読され得る。他のタイプのコンテンツが同様に可能である。
【００９４】
別の例として、サーバデバイス６０２および／または６０４は、データベース、検索、計算、グラフィカル、オーディオ（たとえば音声認識）、ビデオ、ワールドワイドウェブ／インターネットの利用、および/または他の機能のために、ソフトウェアへのアクセスをプログラマブルデバイス６０８ａ−６０８ｃに提供し得る。サーバデバイスの他の多くの例が同様に可能である。
【００９５】
サーバデバイス６０２および／または６０４は、クラウドベースのアプリケーションおよび／またはサービスのプログラムロジックおよび／またはデータを格納するクラウドベースのデバイスであり得る。いくつかの例において、サーバデバイス６０２および／または６０４は、単一のコンピューティングセンターに存在する単一のコンピューティングデバイスであり得る。他の例では、サーバデバイス６０２および／または６０４は、単一のコンピューティングセンターに複数のコンピューティングデバイスを含み得るか、または、多様な地理的位置における複数のコンピューティングセンターに配置される複数のコンピューティングデバイスを含み得る。たとえば、図６は、異なる物理的な位置に存在するサーバデバイス６０２および６０４の各々を示す。
【００９６】
いくつかの例において、サーバデバイス６０２および／または６０４でのデータおよびサービスは、一時的でない有形的なコンピュータ読取可能媒体（またはコンピュータ読取可能記憶媒体）に格納されプログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃならびに／または他のコンピューティングデバイスによってアクセス可能であるコンピュータ読取可能情報としてエンコードされ得る。いくつかの例において、サーバデバイス６０２および／または６０４でのデータは、単一のディスクドライブもしくは他の有形的な記憶媒体上に格納され得るか、または、１つ以上の多様な地理的位置に配置される複数のディスクドライブもしくは他の有形的な記憶媒体上に実現され得る。
【００９７】
図７Ａは、例示的な実施形態に従ったコンピューティングデバイス（たとえばシステム）のブロック図である。特に、図７Ａに示されるコンピューティングデバイス７００は、サーバデバイス６０２，６０４、ネットワーク６０６、ならびに／またはプログラマブルデバイス６０８ａ、６０８ｂおよび６０８ｃのうちの１つ以上の１つ以上の機能を行なうように構成され得る。コンピューティングデバイス７００は、ユーザインターフェイスモジュール７０２、ネットワーク通信インターフェイスモジュール７０４、１つ以上のプロセッサ７０６およびデータストレージ７０８を含み得、これらのすべてがシステムバス、ネットワークまたは他の接続メカニズム７１０を介してともにリンクされ得る。
【００９８】
ユーザインターフェイスモジュール７０２は、データを外部ユーザの入出力デバイスに送信および／または外部ユーザの入出力デバイスから受信するように動作可能であり得る。たとえば、ユーザインターフェイスモジュール７０２は、キーボード、キーパッド、タッチスクリーン、コンピュータマウス、トラックボール、ジョイスティック、カメラ、音声認識／合成モジュールおよび／または他の同様のデバイスのように、データをユーザの入力デバイスに送信および／またはユーザの入力デバイスから受信するように構成され得る。ユーザインターフェイスモジュール７０２はさらに、１つ以上の陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、デジタル光処理（ＤＬＰ）技術を使用するディスプレイ、プリンタ、電球および／または他の同様のデバイスといった、現在公知であるかまたはこれから開発されるユーザ表示デバイスに出力を提供するように構成され得る。ユーザインターフェイスモジュール７０２はさらに、認識されたスピーチまたは可聴出力を生成するように構成され得、スピーカー、スピーカージャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホンおよび／または他の同様のデバイスを含み得る。
【００９９】
ネットワーク通信インターフェイスモジュール７０４は、図６に示されるネットワーク６０６のようなネットワークを介して通信するように構成可能である１つ以上の無線インターフェイス７１２および／または１つ以上の有線インターフェイス７１４を含み得る。無線インターフェイス７１２は、１つ以上の無線トランスミッタ、レシーバ、ならびに／または、ブルートゥース（登録商標）トランシーバ、Ｚｉｇｂｅｅ（登録商標）トランシーバ、Ｗｉ−Ｆｉトランシーバ、ＬＴＥトランシーバおよび／もしくは無線ネットワークを介して通信するよう構成可能である他の同様のタイプの無線トランシーバといったトランシーバを含み得る。有線インターフェイス７１４は、１つ以上の有線トランスミッタ、レシーバ、および／または、イーサーネット（登録商標）トランシーバ、ユニバーサルシリアルバス（ＵＳＢ）トランシーバ、あるいは、ツイストペアワイヤー、同軸ケーブル、光ファイバーリンクもしくは有線ネットワークへの同様の物理接続を介して通信するように構成可能である同様のトランシーバといったトランシーバを含み得る。
【０１００】
いくつかの例において、ネットワーク通信インターフェイスモジュール７０４は、信頼性があり、セキュアで、および／または認証された通信を提供するように構成され得る。本願明細書において記載された各通信について、信頼性のある通信（すなわち保証されたメッセージの送達）を保証するための情報が、おそらくメッセージヘッダおよび／またはフッタの部分（たとえばパケット／メッセージシーケンシング情報、カプセル化ヘッダおよび／またはフッタ、サイズ／時間情報、ならびにＣＲＣおよび／またはパリティーチェック値のような送信照合情報）として提供され得る。通信は、１つ以上の暗号プロトコルおよび／またはアルゴリズムを使用して、セキュアにされ得（たとえばエンコードもしくは暗号化され得）、および／または、暗号解読／デコードされ得、当該暗号プロトコルおよび／またはアルゴリズムの例は、ＤＥＳ、ＡＥＳ、ＲＳＡ、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ、および／またはＤＳＡであるがこれらに限定されない。通信をセキュアにする（次いで暗号解読／デコードする）ために、他の暗号プロトコルおよび／またはアルゴリズムが、同様に使用され得るか、または、本願明細書にリストされたものに加えて使用され得る。
【０１０１】
プロセッサ７０６は、１つ以上の汎用プロセッサおよび／または１つ以上の特殊目的プロセッサ（たとえばデジタルシグナルプロセッサ、特定用途向け集積回路など）を含み得る。プロセッサ７０６は、データストレージ７０８に含められるコンピュータ読取可能プログラム命令７１５および／または本願明細書に記載されるような他の命令（たとえば方法４００）を実行するように構成され得る。
【０１０２】
データストレージ７０８は、プロセッサ７０６の少なくとも１つによって読出および／またはアクセスすることができる１つ以上のコンピュータ読取可能記憶媒体を含み得る。１つ以上のコンピュータ読取可能記憶媒体は、全体的または部分的にプロセッサ７０６の少なくとも１つと統合され得る、光学、磁気、有機または他のメモリもしくはディスクストレージのような揮発性および／または不揮発性ストレージコンポーネントを含み得る。いくつかの例において、データストレージ７０８は、単一の物理デバイス（たとえば１つの光学、磁気、有機または他のメモリもしくはディスクストレージユニット）を使用して実現され得る一方、他の例では、データストレージ７０８は２つ以上の物理デバイスを使用して実現され得る。
【０１０３】
データストレージ７０８は、コンピュータ読取可能プログラム命令７１５と、おそらく付加的なデータとを含み得、当該付加的なデータはたとえばソフトウェアアプリケーションの１つ以上のプロセスおよび／またはスレッドによって使用されるデータであるがこれらに限定されない。いくつかの例において、データストレージ７０８は、本願明細書において記載された方法（たとえば方法４００）および技術の少なくとも一部、ならびに／または、本願明細書において記載されたデバイスおよびネットワークの機能の少なくとも一部を行なうのに必要なストレージをさらに含み得る。
【０１０４】
図７Ｂは、例示的な実施形態に従ったクラウドベースのサーバシステムを示す。図７Ｂにおいて、サーバデバイス６０２および／または６０４の機能は、３つのコンピューティングクラスタ７１６ａ、７１６ｂおよび７１６ｃの間で分散され得る。コンピューティングクラスタ７１６ａは、１つ以上のコンピューティングデバイス７１８ａと、クラスタストレージアレイ７２０ａと、ローカルクラスタネットワーク７２４ａによって接続されるクラスタルータ７２２ａとを含み得る。同様に、コンピューティングクラスタ７１６ｂは、１つ以上のコンピューティングデバイス７１８ｂと、クラスタストレージアレイ７２０ｂと、ローカルクラスタネットワーク７２４ｂによって接続されるクラスタルータ７２２ｂとを含み得る。同様に、コンピューティングクラスタ７１６ｃは、１つ以上のコンピューティングデバイス７１８ｃと、クラスタストレージアレイ７２０ｃと、ローカルクラスタネットワーク７２４ｃによって接続されるクラスタルータ７２２ｃとを含み得る。
【０１０５】
いくつかの例において、コンピューティングクラスタ７１６ａ、７１６ｂおよび７１６ｃの各々は、等しい数のコンピューティングデバイスと、等しい数のクラスタストレージアレイと、等しい数のクラスタルータとを有し得る。しかしながら、他の例において、各コンピューティングクラスタは、異なる数のコンピューティングデバイスと、異なる数のクラスタストレージアレイと、異なる数のクラスタルータとを有し得る。各コンピューティングクラスタにおけるコンピューティングデバイス、クラスタストレージアレイおよびクラスタルータの数は、各コンピューティングクラスタに割り当てられるコンピューティングタスクに依存し得る。
【０１０６】
たとえば、コンピューティングクラスタ７１６ａにおいて、コンピューティングデバイス７１８ａは、サーバデバイス６０２のさまざまなコンピューティングタスクを行なうように構成され得る。一例において、サーバデバイス６０２のさまざまな機能は、コンピューティングデバイス７１８ａ、７１８ｂおよび７１８ｃの１つ以上の間で分散され得る。コンピューティングクラスタ７１６ｂおよび７１６ｃにおけるコンピューティングデバイス７１８ｂおよび７１８ｃは、コンピューティングクラスタ７１６ａにおけるコンピューティングデバイス７１８ａと同様に構成され得る。他方では、いくつかの例において、コンピューティングデバイス７１８ａ、７１８ｂおよび７１８ｃは、異なる機能を行なうように構成され得る。
【０１０７】
いくつかの例では、サーバデバイス６０２および／または６０４に関連付けられるコンピューティングタスクおよび格納データは、サーバデバイス６０２および／または６０４の処理要件、コンピューティングデバイス７１８ａ、７１８ｂおよび７１８ｃの処理能力、各コンピューティングクラスタにおけるコンピューティングデバイス同士間のネットワークリンクおよびコンピューティングクラスタ自身同士間のネットワークリンクのレイテンシ、ならびに／または、全体のシステムアーキテクチャのコスト、スピード、フォールトトレランス、弾性、効率および／もしくは他の設計ゴールに寄与し得る他のファクタに少なくとも部分的に基づいて、コンピューティングデバイス７１８ａ、７１８ｂおよび７１８ｃにわたって分散され得る。
【０１０８】
コンピューティングクラスタ７１６ａ、７１６ｂおよび７１６ｃのクラスタストレージアレイ７２０ａ，７２０ｂ，７２０ｃは、ハードディスクドライブのグループへの読出および書込アクセスを管理するように構成されるディスクアレイコントローラを含むデータストレージアレイであり得る。単独またはそれぞれのコンピューティングデバイスに関連するディスクアレイコントローラはさらに、クラスタストレージアレイに格納されるデータのバックアップまたは冗長性のあるコピーを管理して、１つ以上のコンピューティングデバイスが１つ以上のクラスタストレージアレイにアクセスするのを防止するディスクドライブまたは他のクラスタストレージアレイの障害および／もしくはネットワーク障害に対して保護するように構成され得る。
【０１０９】
サーバデバイス６０２および／または６０４の機能がコンピューティングクラスタ７１６ａ、７１６ｂおよび７１６ｃのコンピューティングデバイス７１８ａ、７１８ｂおよび７１８ｃにわたって分散され得るのと同様の態様で、これらのコンポーネントのさまざまなアクティブ部分および／またはバックアップ部分がクラスタストレージアレイ７２０ａ、７２０ｂおよび７２０ｃにわたって分散され得る。たとえば、いくつかのクラスタストレージアレイは、サーバデバイス６０２のデータを格納するように構成され得る一方、他のクラスタストレージアレイは、サーバデバイス６０４のデータを格納し得る。さらに、いくつかのクラスタストレージアレイは、他のクラスタストレージアレイに格納されたデータのバックアップバージョンを格納するように構成され得る。
【０１１０】
コンピューティングクラスタ７１６ａ、７１６ｂおよび７１６ｃにおけるクラスタルータ７２２ａ、７２２ｂおよび７２２ｃは、コンピューティングクラスタのために内部通信および外部通信を提供するように構成されるネットワーク機器を含み得る。たとえば、コンピューティングクラスタ７１６ａにおけるクラスタルータ７２２ａは、１つ以上のインターネットスイッチングおよびルーティングデバイスを含み得、当該インターネットスイッチングおよびルーティングデバイスは、（ｉ）ローカルクラスタネットワーク７２４ａを介するコンピューティングデバイス７１８ａとクラスタストレージアレイ７２０ａとの間のローカルエリアネットワーク通信と、（ｉｉ）ネットワーク６０６へのワイドエリアネットワーク接続７２６ａを介するコンピューティングクラスタ７１６ａとコンピューティングクラスタ７１６ｂおよび７１６ｃとの間のワイドエリアネットワーク通信とを提供するように構成される。クラスタルータ７２２ｂおよび７２２ｃは、クラスタルータ７２２ａと同様のネットワーク機器を含み得、クラスタルータ７２２ｂおよび７２２ｃは、クラスタルータ７２２ａがコンピューティングクラスタ７１６ａについて行なうのと同様のネットワーキング機能をコンピューティングクラスタ７１６ｂおよび７１６ｃについて行ない得る。
【０１１１】
いくつかの例では、クラスタルータ７２２ａ、７２２ｂおよび７２２ｃの構成は、コンピューティングデバイスおよびクラスタストレージアレイのデータ通信要件、クラスタルータ７２２ａ、７２２ｂおよび７２２ｃにおけるネットワーク機器のデータ通信能力、ローカルネットワーク７２４ａ，７２４ｂ，７２４ｃのレイテンシおよびスループット、ワイドエリアネットワークリンク７２６ａ、７２６ｂおよび７２６ｃのレイテンシ、スループットおよびコスト、ならびに／または、モデレーションシステムアーキテクチャのコスト、スピード、フォールトトレランス、弾性、効率および／もしくは他の設計ゴールに寄与し得る他のファクタに少なくとも部分的に基づき得る。
【０１１２】
例において、図６および図７Ａ−図７Ｂに示される構成は、方法４００に関して記載された実現例に使用され得る。たとえば、方法４００を実現するコンピューティングデバイスは、クラウドベースのデバイス（たとえばサーバデバイス６０２および／または６０４）であり得る。この例において、コンピューティングデバイスは、図６におけるプログラマブルデバイス６０８ａ−ｃまたは図７Ｂのコンピューティングデバイス７１８ａ−ｃが送信した検索クエリに関連付けられる情報を受け取り、スパイキングクエリを決定し、対応するファクタグラフを生成するように構成され得る。ファクタグラフは、サーバデバイス６０２および／または６０４といったクラウドベースのデバイスにおいても実現され得る音声認識システムに提供され得る。
【０１１３】
いくつかの例において、開示された方法（たとえば方法４００）は、機械読取可能なフォーマットの一時的でないコンピュータ読取可能記憶媒体または他の一時的でない媒体もしくは製造物品上でエンコードされたコンピュータプログラム命令として実現され得る。図８は、本願明細書において示された少なくともいくつかの実施形態に従って構成される、コンピューティングデバイス上でコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラムプロダクトの部分概念図を示す模式図である。
【０１１４】
一実施形態において、例示的なコンピュータプログラムプロダクト８００は、信号担持媒体８０１を使用して提供される。信号担持媒体８０１は、１つ以上のプロセッサによって実行されると、図１−図７に関して上で記載された機能または機能の部分を提供し得る１つ以上のプログラム命令８０２を含み得る。いくつかの例では、信号担持媒体８０１はコンピュータ読取可能媒体８０３を含み得、コンピュータ読取可能媒体８０３はたとえば、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、メモリなどであるがこれらに限定されない。いくつかの実現例において、信号担持媒体８０１は、コンピュータ記録可能媒体８０４を含み得、コンピュータ記録可能媒体８０４はたとえば、メモリ、読出／書込（Ｒ／Ｗ）ＣＤ、Ｒ／Ｗ  ＤＶＤなどであるがこれらに限定されない。いくつかの実現例では、信号担持媒体８０１は、通信媒体８０５を含み得、通信媒体８０５はたとえば、デジタルおよび／またはアナログ通信媒体（たとえば光ファイバーケーブル、導波路、有線通信リンク、無線通信リンクなど）であるがこれらに限定されない。したがって、たとえば信号担持媒体８０１は、無線形態の通信媒体８０５（たとえばＩＥＥＥ８０２．１１規格または他の伝送プロトコルに準拠する無線通信媒体）によって搬送され得る。
【０１１５】
１つ以上のプログラム命令８０２はたとえば、コンピュータ実行可能な命令および／またはロジックによって実現される命令であり得る。いくつかの例では、図６におけるプログラマブルデバイス６０８ａ−ｃのようなコンピューティングデバイスまたは図７Ｂのコンピューティングデバイス７１８ａ−ｃは、コンピュータ読取可能媒体８０３、コンピュータ記録可能媒体８０４および／または通信媒体８０５の１つ以上によってプログラマブルデバイス６０８ａ−ｃまたはコンピューティングデバイス７１８ａ−ｃに搬送されるプログラム命令８０２に応答して、さまざまな動作、機能またはアクションを提供するように構成され得る。
【０１１６】
本願明細書において記載される構成は例示目的のみであることが理解されるべきである。したがって、当業者は、その他の構成および他の要素（たとえばマシン、インターフェイス、機能、順番、および機能のグルーピングなど）が代わりに使用され得、また、いくつかの要素は所望の結果に従って全部省略され得ることを認識するだろう。さらに、記載される要素の多くは、任意の好適な組合せおよび位置において、離散的なまたは分散されたコンポーネントとして実現され得るか、または、他のコンポーネントに関連して実現され得る機能的なエンティティである。
【０１１７】
さまざまな局面および実施形態が本願明細書において開示されているが、他の局面および実施形態は当業者に明らかであろう。本願明細書において開示されたさまざまな局面および実施形態は例示目的のためであり、限定するようには意図されず、真の範囲は、添付の請求の範囲と、そのような請求の範囲が権利を与える均等物の完全な範囲とによって示される。さらに、本願明細書において使用される用語は、特定の実施形態を説明するためだけのものであり、限定するようには意図されないということが理解されるべきである。
【図１】
2016500843.tif 000009
【図２】
2016500843.tif 000010
【図３】
2016500843.tif 000011
【図４】
2016500843.tif 000012
【図５Ａ】
2016500843.tif 000013
【図５Ｂ】
2016500843.tif 000014
【図５Ｃ】
2016500843.tif 000015
【図６】
2016500843.tif 000016
【図７Ａ】
2016500843.tif 000017
【図７Ｂ】
2016500843.tif 000018
【図８】
2016500843.tif 000019
【国際調査報告】
2016500843.tif 000020
2016500843.tif 000021
2016500843.tif 000022