(57)【要約】【課題】  高速音声検索の方法および装置を提供する。【解決手段】  本願で開示されている主題の実施形態によると、ロバスト且つ並列な検索方法に基づいて、マルチプロセッサシステム内の大きい音声データベースを検索してターゲット音声クリップを特定し得る。大きい音声データベースは複数のより小さいグループに分割されて、これら複数の小グループがシステム内の複数の利用可能なプロセッサに対して動的にスケジューリングされ得る。プロセッサは、各グループを複数のより小さいセグメントに分割して、セグメントから音声特徴を抽出して、共通成分ガウス混合モデル（ＣＣＧＭＭ）を用いてセグメントをモデル化することによって、スケジューリングされた複数のグループを並列に処理し得る。１つのプロセッサはさらに、ターゲット音声クリップから音声特徴を抽出してＣＣＧＭＭを用いて抽出した音声特徴をモデル化し得る。ターゲット音声クリップと各セグメントとの間のカルバック・ライブラー（ＫＬ）距離をさらに算出し得る。ＫＬ距離に基づいて、セグメントがターゲット音声クリップに一致するか否か判断するとしてもよく、および／または、複数の後続のセグメントの処理を省略するとしてもよい。【選択図】  図５
2009541869.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムにおいて音声データベースを検索してターゲット音声クリップを特定する方法であって、
前記音声データベースを複数のグループに分割する段階と、
前記ターゲット音声クリップについてモデルを構築する段階と、
前記マルチプロセッサシステムの複数のプロセッサに対して前記複数のグループを動的にスケジューリングする段階と、
前記ターゲット音声クリップを検索するために、前記複数のプロセッサを用いて前記スケジューリングされた複数のグループを並列に処理する段階と
を備える方法。
【請求項２】
前記音声データベースを分割する段階は、前記複数のグループの並列処理における、負荷の不均衡および前記複数のグループ間で重複する演算の量を低減するように、前記複数のグループのそれぞれについてサイズを決定する段階を含む
請求項１に記載の方法。
【請求項３】
前記ターゲット音声クリップについてモデルを構築する段階は、前記ターゲット音声クリップから特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル（ＧＭＭ）に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを含む
請求項１に記載の方法。
【請求項４】
前記特徴ベクトルシーケンスをモデル化する段階は、前記複数のガウス成分のそれぞれについて混合重みを推定する段階を含む
請求項３に記載の方法。
【請求項５】
前記スケジューリングされた複数のグループを並列に処理する段階は、
前記スケジューリングされた複数のグループのそれぞれを少なくとも１つのセグメントに分割する段階と、
各セグメントについて、前記セグメントの特徴ベクトルシーケンスを抽出する段階と、
各セグメントについて、複数のガウス成分を含むガウス混合モデル（ＧＭＭ）に基づいて前記特徴ベクトルシーケンスをモデル化する段階と
を含む
請求項１に記載の方法。
【請求項６】
前記少なくとも１つのセグメントのそれぞれの時間の長さは、前記ターゲット音声クリップの時間の長さと同じである
請求項５に記載の方法。
【請求項７】
音声ストリームに複数のセグメントがある場合、各セグメントは直前のセグメントと部分的に重複する
請求項５に記載の方法。
【請求項８】
前記複数のガウス成分は、複数の異なるセグメントおよび前記ターゲット音声クリップに共通している
請求項５に記載の方法。
【請求項９】
前記特徴ベクトルシーケンスをモデル化する段階は、前記複数のガウス成分のそれぞれについて混合重みを推定する段階を含む
請求項８に記載の方法。
【請求項１０】
セグメント毎に、
前記セグメントのＧＭＭと前記ターゲット音声クリップのＧＭＭとの間でカルバック・ライブラー（ＫＬ）距離を算出する段階と、
前記ＫＬ距離が予め定められるしきい値よりも小さい場合には、前記セグメントが前記ターゲット音声クリップに一致すると決定する段階と
をさらに備える、請求項９に記載の方法。
【請求項１１】
前記ＫＬ距離が予め定められる値よりも大きい場合には、前記ＫＬ距離の値に応じて決まる数のセグメントの処理を省略する段階
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記マルチプロセッサシステムは、前記複数のプロセッサが共有するメモリを有する
請求項１に記載の方法。
【請求項１３】
マルチプロセッサシステムにおいて音声データベースを検索してターゲット音声クリップを特定する装置であって、
前記音声データベースを複数のグループに分割する分割モジュールと、
前記マルチプロセッサシステムの複数のプロセッサに対して前記複数のグループを動的にスケジューリングするスケジューラと、
前記複数のプロセッサを用いて前記スケジューリングされた複数のグループを並列に処理して前記ターゲット音声クリップを検索する、前記複数のプロセッサのそれぞれに対応する音声検索モジュールと
を備える装置。
【請求項１４】
前記分割モジュールはさらに、前記複数のグループの並列処理における、負荷の不均衡および前記複数のグループ間で重複する演算の量を低減するように、前記複数のグループのそれぞれについてサイズを決定する
請求項１３に記載の装置。
【請求項１５】
音声検索モジュールは、
入力音声ストリームを少なくとも１つのセグメントに分割して、前記少なくとも１つのセグメントのそれぞれから特徴ベクトルシーケンスを抽出する特徴抽出部と、
複数のガウス成分を含むガウス混合モデル（ＧＭＭ）に基づいて各セグメントに対する前記特徴ベクトルシーケンスをモデル化するモデル化モジュールと
を有し、
前記少なくとも１つのセグメントの時間の長さは、前記ターゲット音声クリップと同じであり、
前記複数のガウス成分は、前記セグメントの全てについて共通である
請求項１３に記載の装置。
【請求項１６】
音声検索モジュールのうちの１つはさらに、前記ターゲット音声クリップから特徴ベクトルシーケンスを抽出して、複数のガウス成分を含む前記ＧＭＭを用いて前記特徴ベクトルシーケンスをモデル化することによって、前記ターゲット音声クリップを処理し、前記複数のガウス成分は、前記ターゲット音声クリップおよび前記入力音声ストリームの複数のセグメントについて共通である
請求項１５に記載の装置。
【請求項１７】
音声検索モジュールはさらに、前記入力音声ストリームのセグメントのＧＭＭと前記ターゲット音声クリップのＧＭＭとの間でカルバック・ライブラー（ＫＬ）距離を算出し、前記ＫＬ距離に基づいて、前記セグメントが前記ターゲット音声クリップに一致するか否か決定する決定部を有する
請求項１６に記載の装置。
【請求項１８】
前記決定モジュールはさらに、前記ＫＬ距離に基づいて、処理を省略するセグメントの数を決定する
請求項１７に記載の装置。
【請求項１９】
複数の命令を格納する機械可読媒体を備える物品であって、前記複数の命令は、処理プラットフォームによって実行されると、前記処理プラットフォームに、
音声データベースを複数のグループに分割する段階と、
ターゲット音声クリップについてモデルを構築する段階と、
マルチプロセッサシステムの複数のプロセッサについて前記複数のグループを動的にスケジューリングする段階と、
前記ターゲット音声クリップを検索するために、前記複数のプロセッサを用いて前記スケジューリングされた複数のグループを並列に処理する段階と
を備える処理を実行させる
物品。
【請求項２０】
前記音声データベースを分割する段階は、前記複数のグループの並列処理における、負荷の不均衡および前記複数のグループ間で重複する演算の量を低減するように、前記複数のグループのそれぞれについてサイズを決定する段階を含む
請求項１９に記載の物品。
【請求項２１】
前記ターゲット音声クリップについてモデルを構築する段階は、前記ターゲット音声クリップから特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル（ＧＭＭ）に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを含む
請求項１９に記載の物品。
【請求項２２】
前記特徴ベクトルシーケンスをモデル化する段階は、前記複数のガウス成分のそれぞれについて混合重みを推定する段階を含む
請求項２１に記載の物品。
【請求項２３】
前記スケジューリングされた複数のグループを並列に処理する段階は、
前記スケジューリングされた複数のグループのそれぞれを少なくとも１つのセグメントに分割する段階と、
各セグメントについて、前記セグメントの特徴ベクトルシーケンスを抽出する段階と、
各セグメントについて、複数のガウス成分を含むガウス混合モデル（ＧＭＭ）に基づいて前記特徴ベクトルシーケンスをモデル化する段階と
を含む
請求項１９に記載の物品。
【請求項２４】
前記少なくとも１つのセグメントのそれぞれの時間の長さは、前記ターゲット音声クリップの時間の長さと同じである
請求項２２に記載の物品。
【請求項２５】
音声ストリームに複数のセグメントがある場合、各セグメントは直前のセグメントと部分的に重複する
請求項２２に記載の物品。
【請求項２６】
前記複数のガウス成分は、複数の異なるセグメントおよび前記ターゲット音声クリップに共通している
請求項２２に記載の物品。
【請求項２７】
前記特徴ベクトルシーケンスをモデル化する段階は、前記複数のガウス成分のそれぞれについて混合重みを推定する段階を含む
請求項２６に記載の物品。
【請求項２８】
前記処理は、
セグメント毎に、
前記セグメントのＧＭＭと前記ターゲット音声クリップのＧＭＭとの間でカルバック・ライブラー（ＫＬ）距離を算出する段階と、
前記ＫＬ距離が予め定められるしきい値よりも小さい場合には、前記セグメントが前記ターゲット音声クリップに一致すると決定する段階と
をさらに備える、請求項２７に記載の物品。
【請求項２９】
前記処理は、
前記ＫＬ距離が予め定められる値よりも大きい場合には、前記ＫＬ距離の値に応じて決まる数のセグメントの処理を省略する段階
をさらに備える、請求項２８に記載の物品。
【請求項３０】
前記マルチプロセッサシステムは、前記複数のプロセッサが共有するメモリを有する
請求項１９に記載の物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示内容は概して、信号処理およびマルチメディアアプリケーションに関する。より具体的には、これに限定されるわけではないが、高速音声検索および音声指紋の方法および装置に関する。
【背景技術】
【０００２】
音声検索（例えば、音声クリップ用に大きな音声ストリームを検索することであって、当該音声ストリームが破損／歪曲していたとしても実行される）には数多くの用途があり、例えば、放送用音楽／コマーシャルの分析、インターネットでの著作権管理、または未分類の音声クリップ用のメタデータの特定等がある。典型的な音声検索システムは、シリアルで単一プロセッサシステム用に設計されている。このような検索システムでは通常、大きな音声ストリームにおいてターゲット音声クリップを検索するのに長時間かかってしまう。しかし、音声検索システムは大抵、大きい音声データベースに対して効率的に動作するよう求められており、例えば、非常に短時間で（例えば、略リアルタイムで）大きいデータベースを検索しなければならない。また、音声データベースは、その一部分またはすべてにおいて、歪曲、破損、および／または圧縮が発生している場合がある。このため、音声検索システムは、ターゲット音声クリップと同一の音声セグメントが歪曲、破損および／または圧縮されている場合であっても、その音声セグメントを特定するのに十分なロバスト性を有している必要がある。したがって、ターゲット音声クリップを大きい音声データベースから迅速且つロバストに検索できる音声検索システムが望まれている。
【図面の簡単な説明】
【０００３】
開示する主題の特徴および利点は以下に記述する主題の詳細な説明から明らかとなる。
【０００４】
【図１】音声検索モジュールに基づいてロバスト且つ並列な音声検索が実行され得るコンピューティングシステムの一例を示す図である。
【０００５】
【図２】音声検索モジュールに基づいてロバスト且つ並列な音声検索が実行され得るコンピューティングシステムの別の例を示す図である。
【０００６】
【図３】音声検索モジュールに基づいてロバスト且つ並列な音声検索が実行され得るコンピューティングシステムのさらに別の例を示す図である。
【０００７】
【図４】ロバストな音声検索を実行する音声検索モジュールの一例を示すブロック図である。
【０００８】
【図５】図４に示すロバストな音声検索モジュールの動作例を示す図である。
【０００９】
【図６】マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行する音声検索モジュールの一例を示すブロック図である。
【００１０】
【図７Ａ】マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するべく、大規模音声データベースを小グループに分割する方法を示す図である。
【図７Ｂ】マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するべく、大規模音声データベースを小グループに分割する方法を示す図である。
【図７Ｃ】マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するべく、大規模音声データベースを小グループに分割する方法を示す図である。
【００１１】
【図８】マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するプロセスの一例を示す擬似コードを示す図である。
【発明を実施するための最良の形態】
【００１２】
本願において開示される主題の実施形態によると、ロバスト且つ並列な検索方法を用いて、ターゲット音声クリップを求めて、マルチプロセッサシステム内の大きな音声ストリームまたは大きい音声データベースを検索し得る。大きい音声データベースを複数の小グループに分割するとしてもよい。これらの小グループを、マルチプロセッサシステム内で利用可能なプロセッサまたは処理コアによって修理されるべく、動的にスケジューリングするとしてもよい。プロセッサまたは処理コアは、スケジューリングされたグループを並列に処理するとしてもよい。このような並列処理は、各グループをより小さいセグメントに分割して、セグメントから音声特徴を抽出して、共通成分ガウス混合モデル（Ｃｏｍｍｏｎ  Ｃｏｍｐｏｎｅｎｔ  Ｇａｕｓｓｉａｎ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌ：ＣＣＧＭＭ）を用いてセグメントをモデル化することによってなされる。これらのセグメントの長さは、ターゲット音声クリップの長さと同一であるとしてもよい。どのグループを処理するよりも前に、１つのプロセッサまたは処理コアはターゲット音声クリップから音声特徴を抽出してＣＣＧＭＭを用いてモデル化するとしてもよい。ターゲット音声クリップのモデルとグループの各セグメントとの間のカルバック・ライブラー（ＫＬ）距離またはＫＬ最大距離をさらに算出するとしてもよい。当該距離が所定値以下であれば、対応するセグメントはターゲット音声クリップであると特定される。
【００１３】
当該距離が所定値を超えている場合、プロセッサまたは処理コアは任意の数のセグメントを省略して、ターゲット音声クリップの検索を継続するとしてもよい。プロセッサまたは処理コアが１つのグループを検索し終わると、処理対象の新しいグループが与えられてターゲット音声クリップを検索し、すべてのグループについて検索を実行する。グループのサイズは、負荷インピーダンスおよび演算の重複を低減するように決定され得る。さらに、複数のプロセッサまたは処理コアが実行する音声グループの並列処理の効率を向上させるべく入出力（Ｉ／Ｏ）を最適化し得る。
【００１４】
本明細書において「一実施形態」または「開示されている主題の実施形態」という表現は、当該実施形態に関連して説明される特定の特徴、構造または特性が、開示されている主題の少なくとも１つの実施形態に含まれていることを意味する。このように、「一実施形態」というフレーズが本明細書において何度も使用されるが、必ずしもすべてが同一の実施形態に言及しているわけではない。
【００１５】
図１は、音声検索モジュール１２０に基づいてロバスト且つ並列な音声検索が実行され得るコンピューティングシステム１００の一例を示す図である。コンピューティングシステム１００は、システムインターコネクト１１５に結合される1以上のプロセッサ１１０を備える。プロセッサ１１０は、複数または多くの処理コアを有するとしてもよい（説明の便宜上、「複数のコア」という表現はこれ以降では複数の処理コアおよび多くの処理コアの両方を意味するものとする）。プロセッサ１１０は、複数のコアを用いてロバスト且つ並列な音声検索を実行する、音声検索モジュール１２０を有するとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい（より詳細な説明は図４から図６を参照しつつ後述する）。音声検索モジュールに含まれる1以上の構成要素が１つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。
【００１６】
音声検索モジュールはまず、大きい音声データベースを複数の小グループに分割するとしてもよいし、または大きな音声ストリームを一部重複しているより小さいサブストリームに分割するとしてもよい。続いて、１つのコアが検索対象の音声クリップ（「ターゲット音声クリップ」）を処理して、ターゲット音声クリップのモデルを構築する。一方、音声検索モジュールは、複数のコアに対して音声小グループ／サブストリームを動的にスケジューリングする。複数のコアは、各グループ／サブストリームを複数のセグメントに分割して、各音声セグメントのモデルを構築する。これは並列に行われる。各セグメントのサイズは、ターゲット音声クリップのサイズと等しいとしてもよい。ターゲット音声クリップと音声データベース／ストリームの両方を含むすべての音声セグメントに共通な、複数のガウス成分を含むガウス混合モデル（Ｇａｕｓｓｉａｎ  ｍｉｘｔｕｒｅ  ｍｏｄｅｌ：ＧＭＭ）を用いて、各音声セグメントとターゲット音声クリップとをモデル化するとしてもよい。音声セグメントのモデルが構築されると、当該セグメントのモデルとターゲット音声クリップのモデルとの間のカルバック−ライブラー（ＫＬ）距離またはＫＬ最大距離を算出するとしてもよい。当該距離が所定値以下であれば、当該音声セグメントはターゲット音声クリップであると特定され得る。検索プロセスは、すべての音声グループ／サブストリームが処理されるまで継続されるとしてもよい。
【００１７】
コンピューティングシステム１００はさらに、システムインターコネクト１１５に結合されているチップセット１３０を備えるとしてもよい。チップセット１３０は、1以上の集積回路パッケージまたはチップを有するとしてもよい。チップセット１３０は、コンピューティングシステム１００のその他の構成要素１６０との間のデータ転送をサポートするデバイスインターフェース１３５を１以上有するとしてもよい。その他の構成要素１６０は、例えば、ＢＩＯＳファームウェア、キーボード、マウス、ストレージデバイス、ネットワークインターフェース等である。チップセット１３０は、周辺機器インターコネクト（ＰＣＩ）バス１７０に結合されるとしてもよい。チップセット１３０はＰＣＩバス１７０に対するインターフェースを提供するＰＣＩブリッジ１４５を有するとしてもよい。ＰＣＩブリッジ１４５は、プロセッサ１１０およびその他の構成要素１６０と周辺機器との間にデータ経路を提供するとしてもよい。周辺機器は、例えば、音声デバイス１８０およびディスクドライブ１９０である。図１には図示されていないが、これら以外のデバイスもまたＰＣＩバス１７０に結合され得る。
【００１８】
また、チップセット１３０は、メインメモリ１５０に結合されているメモリコントローラ１２５を有するとしてもよい。メインメモリ１５０は、プロセッサ１１０の複数のコアまたは当該システム内のその他の任意のデバイスによって実行される命令列およびデータを格納するとしてもよい。メモリコントローラ１２５は、プロセッサ１１０の複数のコアおよびコンピューティングシステム１００内のほかのデバイスに対応付けられるメモリトランザクションに応じてメインメモリ１５０にアクセスするとしてもよい。一実施形態によると、メモリコントローラ１２５はプロセッサ１１０またはその他の回路に配置されるとしてもよい。メインメモリ１５０は、メモリコントローラ１２５がデータの読み書きを行う、アドレス指定可能な格納位置を提供するさまざまなメモリデバイスを有するとしてもよい。メインメモリ１５０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）デバイス、ダブル・データ・レート（ＤＤＲ）ＳＤＲＡＭデバイスまたはその他のメモリデバイス等、1以上の異なる種類のメモリデバイスを有するとしてもよい。
【００１９】
図２は、音声検索モジュール２４０を用いてロバスト且つ並列な音声検索が実行され得る別の例であるコンピューティングシステム２００を示す図である。システム２００は、プロセッサ０  ２２０Ａのような、複数のプロセッサを備えるとしてもよい。システム２００内の1以上のプロセッサは、多くのコアを有するとしてもよい。システム２００は、複数のコアによってロバスト且つ並列な音声検索を実行する音声検索モジュール２４０を備えるとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい（より詳細な説明は図４から図６を参照しつつ後述する）。音声検索モジュールに含まれる1以上の構成要素が１つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。システム２００内のプロセッサは、システムインターコネクト２１０によって互いに接続されているとしてもよい。システムインターコネクト２１０は、フロントサイドバス（ＦＳＢ）であってもよい。各プロセッサは、当該システムインターコネクトを介して、入出力（Ｉ／Ｏ）デバイスおよびメモリ２３０に接続されるとしてもよい。コアはすべて、メモリ２３０から音声データを受け取るとしてもよい。
【００２０】
図３は、音声検索モジュール３４０を用いてロバスト且つ並列な音声検索を実行し得るさらに別の例であるコンピューティングシステム３００を示す図である。システム３００において、複数のプロセッサ（例えば、３２０Ａ、３２０Ｂ、３２０Ｃおよび３２０Ｄ）を接続するシステムインターコネクト３１０は、リンクベースのポイント・ツー・ポイント接続である。各プロセッサは、リンクハブ（例えば、３３０Ａ、３３０Ｂ、３３０Ｃおよび３３０Ｄ）を介してシステムインターコネクトに接続されているとしてもよい。一部の実施形態によると、リンクハブはメモリコントローラと同じ場所に配置されて、当該メモリコントローラがシステムメモリに対するトラフィックを調整するとしてもよい。１以上のプロセッサが多くのコアを含むとしてもよい。システム３００は、複数のコアによってロバスト且つ並列な音声検索を実行する音声検索モジュール３４０を備えるとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい（より詳細な説明は図４から図６を参照しつつ後述する）。音声検索モジュールに含まれる1以上の構成要素が１つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。システム３００内の各プロセッサ／コアは、システムインターコネクトを介して共有メモリ（図３には不図示）に接続されるとしてもよい。コアはすべて、共有メモリから音声データを受け取るとしてもよい。
【００２１】
図２および図３において、音声検索モジュール（つまり、２４０および３４０）はまず、大きい音声データベースを複数の小グループに分割するとしてもよいし、または大きい音声ストリームを一部重複しているより小さいサブストリームに分割するとしてもよい。続いて、１つのコアが検索対象の音声クリップ（「ターゲット音声クリップ」）を処理して、ターゲット音声クリップのモデルを構築する。一方、音声検索モジュールは、複数のコアに対して音声小グループ／サブストリームを動的にスケジューリングする。複数のコアは、各グループ／サブストリームを複数のセグメントに分割して、各音声セグメントのモデルを構築する。これは並列に行われる。各セグメントのサイズは、ターゲット音声クリップのサイズと等しいとしてもよい。ターゲット音声クリップと音声データベース／ストリームの両方を含むすべての音声セグメントに共通な、複数のガウス成分のガウス混合モデル（Ｇａｕｓｓｉａｎ  ｍｉｘｔｕｒｅ  ｍｏｄｅｌ：ＧＭＭ）を用いて、各音声セグメントとターゲット音声クリップとをモデル化するとしてもよい。音声セグメントのモデルが構築されると、当該セグメントのモデルとターゲット音声クリップのモデルとの間のカルバック−ライブラー（ＫＬ）距離またはＫＬ最大距離を算出するとしてもよい。当該距離が所定値以下であれば、当該音声セグメントはターゲット音声クリップであると特定され得る。検索プロセスは、すべての音声グループ／サブストリームが処理されるまで継続されるとしてもよい。
【００２２】
図４は、ロバストな音声検索を実行する音声検索モジュール４００の一例を示すブロック図である。音声検索モジュール４００は、特徴抽出部４１０と、モデル化機構４２０と、決定部４３０とを備える。特徴抽出部４１０は、入力音声ストリーム（例えば、ターゲット音声クリップ、大きい音声ストリームのサブストリーム等）を受け取って、入力音声ストリームから音声特徴を抽出するとしてもよい。入力音声ストリームが、ターゲット音声クリップを特定するべく検索されるべき音声ストリームである場合、特徴抽出部は当該音声ストリームに対してスライディングウィンドウ（ｓｌｉｄｉｎｇ  ｗｉｎｄｏｗ）を適用して当該音声ストリームを複数の互いに重複するセグメントに分割するとしてもよい。ウィンドウはターゲット音声クリップと長さが同じである。入力音声ストリームの各セグメント（ターゲット音声ストリームが有するセグメントは１セグメントのみである）はさらに、複数のフレームに分割される。各フレームは、長さが同じで、隣接フレームと重複するとしてもよい。例えば、一実施形態によると、フレームの長さは２０ミリ秒で、フレーム間の重複箇所は１０ミリ秒であるとしてもよい。各フレームについて特徴ベクトルを抽出するとしてもよい。各フレームは、フーリエ係数、メル周波数ケプストラム係数、スペクトルフラットネス（ｓｐｅｃｔｒａｌ  ｆｌａｔｔｎｅｓｓ）、およびこういったパラメータの平均、分散、その他の微分係数といった特徴を含み得る。音声セグメントの全フレームの特徴ベクトルにより、特徴ベクトルシーケンスが形成される。
【００２３】
２つの隣接するセグメントが重複しているのは、２つの隣接するセグメント間でターゲット音声クリップを見逃す可能性を小さくするためである。重複箇所が長くなるほど、見逃す可能性が低くなる。一実施形態によると、どのような一致であろうと見逃さないように、重複箇所の長さは、フレームの長さをセグメントの長さから引いたものに等しくなるように設定してもよい。しかし、重複箇所が長くなると演算が増えてしまう。このため、演算負荷と見逃す可能性との間でバランスを取る必要がある（例えば、重複箇所の長さは、セグメントの長さの２分の１以下である）。いずれにしろ、２つのセグメント間で重複しているフレームの特徴ベクトルの場合、抽出は１回のみでよい。
【００２４】
モデル化機構４２０は、特徴抽出部４１０が抽出した特徴ベクトルシーケンスに基づいて、音声セグメントのモデルを構築するとしてもよい。使用されるモデルに応じて、モデル化機構は該モデルのパラメータを推定する。一実施形態によると、共通成分ガウス混合モデル（「ＣＣＧＭＭ」）に基づいて音声セグメントをモデル化するとしてもよい。ＣＣＧＭＭはすべてのセグメントにわたって共通している複数のガウス成分を含む。各セグメントについて、モデル化機構は、共通のガウス成分に対して一連の混合重み付け値を推定する。別の実施形態によると、他のモデル（例えば、隠れマルコフモデル）に基づいて音声セグメントをモデル化するとしてもよい。一実施形態によると、ターゲット音声クリップのみがモデル化されて、音声セグメントの特徴ベクトルシーケンスはそのまま、音声セグメントがターゲット音声クリップと略同一か否か決定するべく利用されるとしてもよい。
【００２５】
決定部４３０は、入力音声ストリームに含まれる音声セグメントが十分に類似しており音声セグメントがターゲット音声クリップの複写と特定できるか否か判断するとしてもよい。このため、決定部は、音声セグメントのモデルとターゲット音声クリップのモデルとを比較することによって類似性測度を導き出すとしてもよい。一実施形態によると、類似性測度はこれら２つのモデル間で算出される距離であってもよい。別の実施形態によると、類似性測度は、音声セグメントのモデルとターゲット音声クリップのモデルとが同一である確率であってもよい。さらに別の実施形態によると、類似性測度は、音声セグメントの特徴ベクトルシーケンスとターゲット音声クリップのモデルとを比較することによって得られるとしてもよい。例えば、隠れマルコフモデル（ＨＭＭ）に基づいてターゲット音声クリップをモデル化する場合、音声セグメントの特徴ベクトルシーケンスとターゲット音声クリップのＨＭＭとに基づき、音声セグメントとターゲット音声クリップとの間の可能性スコアを算出するべくビタビベースのアルゴリズムを用いるとしてもよい。
【００２６】
類似性測度の値に基づいて、決定部は、音声セグメントをターゲット音声クリップと特定できるか否か判断するとしてもよい。例えば、類似性測度の値が所定のしきい値以下であれば（例えば、類似性測度は音声セグメントモデルとターゲット音声クリップとの間の距離である）、音声セグメントはターゲット音声クリップと略同一であると特定され得る。同様に、類似性測度の値が所定しきい値以上であれば（例えば、類似性測度は音声セグメントがターゲット音声クリップと略同一である可能性スコアである）、音声セグメントはターゲット音声クリップと略同一であると特定され得る。一方、類似性測度によって音声セグメントがターゲット音声クリップとは大きく異なることが分かった場合には、当該音声セグメントの直後の任意の数のセグメントを省略するとしてもよい。実際に省略するセグメントの数は、類似性測度の値および／または実験に基づくデータに応じて決まる。類似性測度によって現在のセグメントがターゲット音声クリップと非常に異なることが分かる場合には、任意の数の後続セグメントを省略することによって、ターゲット音声クリップを見逃すことはあり得ない。これは、入力音声ストリームをセグメントに分割するべく利用されるウィンドウが徐々に前方向にスライドする結果、あるセグメントから次のセグメントへと移る際に類似性測度に連続性が認められるためである。
【００２７】
図５は、図４に図示されるロバストな音声検索モジュールの動作例を示す図である。ターゲット音声クリップ５１０は、特徴抽出部に与えられて、複数のフレームに分割される。特徴抽出部はそして、ブロック５３０Ａにおいて、フレーム毎の特徴ベクトルによって、特徴ベクトルシーケンス（５４０）を生成する。特徴ベクトルは、１以上のパラメータを含み得るので、ｘ次元のベクトルであってもよい（ここで、ｘ≧１）。ブロック５７０Ａにおいて、特徴ベクトルシーケンス５４０は、以下のようなＧＭＭを用いてモデル化されるとしてもよい。
【数１】
2009541869.tif 000003
ＧＭＭ
【数２】
2009541869.tif 000004
は、Ｍ個のガウス成分を含み、
【数３】
2009541869.tif 000005
は成分重みで、
【数４】
2009541869.tif 000006
は平均で、
【数５】
2009541869.tif 000007
は共分散であり、ｉ＝１、２・・・、Ｍであって、ｋはセグメントｋを表し、Ｎ（）はガウス分布を表す。ターゲット音声クリップについては、セグメントは１つのみであるので、セグメントを特定するためのｋは利用する必要はない。しかし、入力音声ストリーム５２０については、セグメントは通常複数あるので、異なるセグメントについてＧＭＭを特定するのが望ましい。
【００２８】
図５に示す例では、カルバック−ライブラー（ＫＬ）距離またはＫＬ最大距離を類似性測度として使用する。ＫＬ最大距離の算出を簡略化するべく、音声セグメントすべてに用いられるＧＭＭではガウス成分共通群が共通している、つまり、ｉ番目のガウス成分について、平均
【数６】
2009541869.tif 000008
および分散
【数７】
2009541869.tif 000009
は音声セグメントが変わっても同じである、と仮定される。このため、式（１）は以下のように変形される。
【数８】
2009541869.tif 000010
各音声セグメントについて、１セットの重み付け
【数９】
2009541869.tif 000011
のみを、共通ガウス成分について推定する必要がある。Ｔ個の特徴ベクトル、
【数１０】
2009541869.tif 000012
を持つセグメントｋの特徴ベクトルシーケンスの場合、重みは以下のように推定され得る。
【数１１】
2009541869.tif 000013
ここで、
【数１２】
2009541869.tif 000014
はｉ番目またはｊ番目のセグメントについての普遍的な重みであって、いくつかのサンプル音声ファイルに基づいて実験により得られるとしてもよいし、乱数値によって初期化されるとしてもよい。
【００２９】
ターゲット音声クリップ５１０を特定するべく検索される入力音声ストリーム５２０は、特徴抽出部に与えられるとしてもよい。ブロック５３０Ｂにおいて、特徴抽出部は入力音声ストリームを、互いに部分的に重複する複数のセグメントに分割する。特徴抽出部はさらに、各セグメントを、互いに部分的に重複する複数のフレームに分割して、フレーム毎に特徴ベクトルを抽出する。ブロック５６０は、入力音声ストリーム５２０の特徴ベクトルシーケンスを示すと共に、当該音声ストリームが互いに部分的に重複する複数のセグメントに分割されている様子を示す。例えば、ターゲット音声クリップの長さと同じサイズのウィンドウを入力音声ストリーム５２０に適用するとしてもよい。説明のために、セグメント５６０Ａを得るべくターゲット音声クリップの特徴ベクトルシーケンスに対してウィンドウが図示されているが、この場合セグメントは１つしかないので、ターゲット音声クリップにウィンドウを適用する必要は通常ない。シフトするウィンドウを入力音声ストリームに適用すると、５６０Bおよび５６０Cのような部分的に重複する複数のセグメントが得られる。ウィンドウのシフト量は、セグメント５６０Ｂからセグメント５６０Ｃまでの間で時間τであり、ここでτはウィンドウサイズよりも小さい。
【００３０】
各音声セグメントはＣＣＧＭＭを用いてモデル化される。例えば、セグメント５６０Ｂはブロック５７０Ｂでモデル化され、セグメント５６０Ｃはブロック５７０Ｃでモデル化される。入力音声ストリーム５２０の各セグメントのモデルとターゲット音声クリップ５１０のモデルは、重みの組み合わせは異なるが共通のガウス成分を有する。一実施形態によると、特徴ベクトルは入力音声ストリーム全体からフレーム毎に抽出されて、入力音声ストリーム全体に対応する長い特徴ベクトルシーケンスが生成されるとしてもよい。続いて、Ｎ×ＦＬ（ここで、Ｎは正の整数でありＦＬはフレームの長さ）の長さを持つウィンドウが、当該長い特徴ベクトルシーケンスに適用される。ウィンドウ内の複数の特徴ベクトルは、一の音声セグメントの一の特徴ベクトルを構成し、この特徴ベクトルはＣＣＧＭＭを構築するために利用される。ウィンドウは、時間τだけ前方向にシフトされる。
【００３１】
セグメントがターゲット音声クリップと略同一か否か決定するべく、当該セグメントのモデルとターゲット音声クリップのモデルとの間のＫＬ最大距離を以下のようにして算出するとしてもよい。
【数１３】
2009541869.tif 000015
このようにして算出されたＫＬ最大距離が所定のしきい値未満の場合、音声クリップが検出されたとみなされるとしてもよい。入力音声ストリーム５２０に対して適用されるウィンドウが時間方向で前方向にシフトされていくと、距離は通常、１つのタイムステップから次のタイムステップまでの間で一定の継続性を示す。つまり、距離が大きすぎると、現在のセグメントの直後に続く１以上のセグメントがターゲット音声クリップに一致する可能性は低い。このため、距離の値によっては、同一音声ストリーム／サブストリーム内の直後の所定数のセグメントについては検索を省略するとしてもよい。
【００３２】
図６は、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行する音声検索モジュール６００の一例を示すブロック図である。音声検索モジュール６００は、分割機構６１０と、スケジューラ６２０と、Ｉ／Ｏ最適化部６３０と、複数の音声検索部（例えば６４０Ａ、・・・、６４０Ｎ）とを備える。分割機構６１０は、大きい音声ストリームを複数のより小さいサブストリームに分割、および／または、大きい音声データベースを複数の小グループに分割するとしてもよい。図７Ａ、図７Ｂおよび図７Ｃは、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するべく大きい音声データベースを小グループに分割する方法を示す図である。図７Ａは、単一の大きな音声ストリーム７１０を含むデータベースの一例を示す図である。分割機構は、音声ストリーム７１０を複数のより小さいサブストリーム７１２、７１４および７１６に分割するとしてもよい。ここで、各サブストリームは１グループを構成している。各サブストリームの長さは互いに異なるとしてもよいが、処理を単純化するべく通常は均一な長さとする。ターゲット音声クリップの正確な検出を見落とすことのないように、各サブストリームは直後のサブストリームと重複しており、２つの隣接するサブストリーム（例えば、７１２および７１４、７１４および７１６）間での重複部分は、
【数１４】
2009541869.tif 000016
以上でなければならない。ここで、
【数１５】
2009541869.tif 000017
はターゲット音声クリップ内のフレーム総数である。
【００３３】
図７Ｂは、複数の比較的小さい音声ストリーム（例えば、７２０、７２５、７３０、７３５、および７４０）を含む別の例のデータベースを示す図である。一実施形態によると、分割機構６１０は当該データベースを、各グループが１つの音声ストリームのみを含むように、複数の小グループに分割するとしてもよい。別の実施形態によると、図７Ｂに示すように、分割機構はデータベースを、一部のグループはそれぞれが音声ストリームを１つのみ含み、他のグループはそれぞれが複数の小さい音声ストリームを含むように、複数の小グループに分割してもよい。図７Ｃは、複数の比較的小さい音声ストリーム（例えば、７５０、７５５および７６０）と大きな音声ストリーム（例えば７７０）とを含むさらに別の例のデータベースを示す図である。分割機構は、比較的小さい音声ストリームを、各グループが音声ストリーム１つのみを含むように複数のグループに分割するとしてもよいし、または、一部のグループは音声ストリームを１つのみ含み（例えば、７５０）他のグループは複数の小さい音声ストリームを含む（例えば、７５５および７６０を同じグループに入れるとしてもよい）ように複数のグループに分割するとしてもよい。７７０のような大きい音声ストリームについては、分割機構は、互いに部分的に重複する複数のより小さいサブストリーム（例えば、７７２および７７４）に分割するとしてもよい。ここで、図７Ａに示した方法に従って、各サブストリームは１グループを構成するとしてもよい。
【００３４】
また、分割機構は、演算の重複（大きな音声ストリームが互いに部分的に重複する複数のより小さいサブストリームに分割される場合）および複数のプロセッサによる並列処理における負荷の不均衡を低減するように、大きな音声データベースを複数の適切なサイズの複数のグループに分割する。グループのサイズが小さくなると、演算の重複部分が大きくなり得る一方、グループのサイズが大きくなると、負荷の不均衡が著しくなってしまうことがある。一実施形態によると、グループのサイズはターゲット音声クリップのサイズの約２５倍であるとしてもよい。
【００３５】
図６に戻って、スケジューラ６２０は、マルチプロセッサシステム内の複数のプロセッサに対して大きなデータベースの複数のグループを動的にスケジューリングして、各プロセッサが一度に１つの処理対象のグループを持つようにするとしてもよい。スケジューラは、当該システムの複数のプロセッサが利用可能か否かを定期的に確認して、利用可能なプロセッサそれぞれに対して音声グループを割り当てて、処理およびターゲット音声クリップの検索を実行させる。その後別のプロセッサが利用可能な状態になると、スケジューラはこのプロセッサに１つのグループを割り当てるとしてもよい。スケジューラはまた、プロセッサがその前に割り当てられたグループについて検索を終了した直後に、ほかのプロセッサが検索処理を終了したかどうかに関わらず、当該プロセッサに対してまだ検索がすんでいない音声グループを割り当てる。実際のところ、グループのサイズが同一であったとしても、検索処理を省略するセグメントの数はセグメント毎に異なる可能性があるので、同じターゲット音声クリップを検索するのに必要な時間はプロセッサごとに異なる場合がある。上述したような動的スケジューリングを利用することで、負荷の不均衡を効果的に低減し得る。
【００３６】
Ｉ／Ｏ最適化部６３０は、システムインターコネクト（例えば、システムのプロセッサと共有システムメモリとを接続するシステムバス）上でのＩ／Ｏトラフィックを最適化するとしてもよい。Ｉ／Ｏ最適化部は、各プロセッサのデータ範囲が定義されている間、最初は、検索対象の音声データベース全体をディスクからメモリへロードしないと判断するとしてもよい。また、Ｉ／Ｏ最適化部は、メモリから受け取る割り当てられたセグメントを各プロセッサが読む際には、一度に一部分のみを読ませるとしてもよい。Ｉ／Ｏトラフィックを最適化することによって、Ｉ／Ｏ最適化部は、Ｉ／Ｏコンテンションを低減し、Ｉ／Ｏ処理および演算を重複させ、演算効率の向上に貢献するとしてもよい。この結果、音声検索のスケーラビリティを大きく改善することができる。
【００３７】
音声検索モジュール６００はさらに、複数の音声検索部６４０Ａから６４０Ｎを備える。各音声検索部（例えば６４０Ａ）は、一のプロセッサに配置されて、当該プロセッサに割り当てられるグループを処理してターゲット音声クリップを検索する。図４に図示されている音声検索モジュール４００と同様に、音声検索部は、特徴抽出部（例えば４１０）と、モデル化機構（例えば４２０）と、決定部（例えば４３０）とを有する。各音声検索部は、自身に割り当てられた、ターゲット音声クリップを特定するための音声グループの連続能動型検索を実行する。これは、音声グループの音声ストリームを、互いに部分的に重複する複数のセグメントに分割し、各セグメントについて特徴ベクトルシーケンスを抽出して、式（１）から（４）で示したようにＣＣＧＭＭに基づいて各セグメントをモデル化することによって行われる。ここで、セグメントの長さはターゲット音声クリップの長さと同じである。また、すべての音声検索部が利用する、ターゲット音声クリップ用のＣＣＧＭＭは、音声検索部のうちの１つが一度推定すればそれでよい。各音声検索部は、各セグメントのモデルとターゲット音声クリップのモデルとの間のＫＬ最大距離を算出する。このＫＬ最大距離に基づいて、音声検索部はターゲット音声クリップが検出されるか否か判断するとしてもよい。さらに、各音声検索部は、現在のセグメントのＫＬ最大距離がしきい値よりも大きい場合には、現在のセグメントに続く複数のセグメントを省略するとしてもよい。
【００３８】
図８は、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するためのプロセス８００の一例を示す擬似コードを示す図である。ライン８０２において、音声検索モジュールは初期化されるとしてもよい。例えば、ターゲット音声クリップファイルおよび音声データベースファイルを開けて、グローバルパラメータを初期化するとしてもよい。ライン８０４において、大きな音声データベースを、図７Ａ、図７Ｂおよび図７Ｃに図示しているように、ＮＧ個の小グループに分割するとしてもよい。ライン８０６において、モデル（例えば、ＣＣＧＭＭ）をターゲット音声クリップについて構築するとしてもよい。ライン８０８において、ＮＧ個の音声グループを利用可能なプロセッサに対して動的にスケジューリングして、スケジューリングされたグループの並列処理を開始するとしてもよい。ライン８０８は、並列実装をセットアップする１つの命令を利用し、その他の並列実装命令もまた用いられ得る。
【００３９】
ライン８１０からライン８４６は、マルチプロセッサシステムのプロセッサが並列に、ＮＧ個のグループのそれぞれをどのように処理し、且つどのように検索してターゲットを特定するかを示している。説明の便宜上、ライン８１２からライン８４６の処理は、第１番目のグループから最後のグループまでの、繰り返しとして図示されていることに留意されたい。実際には、複数のプロセッサが利用可能な場合、これらの利用可能なプロセッサによって複数のグループが並列に処理される。ライン８１４において、各グループの複数の音声ストリームのうち一部またはすべてを、これらのストリームがターゲット音声クリップよりも時間的に長い場合には、互いに部分的に重複するＮＳ個のセグメントにさらに分割するとしてもよい。ライン８１６は、グループの各セグメントについて、ライン８１８から８３２に示すような、繰り返しプロセスを開始させる。ライン８２０において、特徴ベクトルシーケンス（フレーム毎に）をセグメントから抽出するとしてもよい。ライン８２２において、モデル（例えば、式（１）から式（３）に示すようなＣＣＧＭＭ）をセグメントについて構築するとしてもよい。ライン８２４において、セグメントのモデルとターゲット音声クリップのモデルとの間の距離（例えば、式（４）に示すようなＫＬ最大距離）を算出するとしてもよい。ライン８２６において、セグメントがターゲット音声クリップと一致するか否かを、ライン８２４において算出された距離と所定のしきい値＃１とに基づいて、判断するとしてもよい。距離がしきい値＃１未満であれば、セグメントはターゲット音声クリップに一致する。ライン８２８において、同じ音声ストリーム／サブストリーム内の所定数の後続セグメント（例えば、Ｍ個のセグメント）の検索を省略するか否かを、ライン８２４において算出された距離と所定のしきい値＃２とに基づいて、判断するとしてもよい。距離がしきい値＃２よりも大きい場合には、Ｍ個のセグメントの検索を省略するとしてもよい。一実施形態によると、省略するセグメントの数は距離の値に応じて変わるとしてもよい。ライン８３０において、検索結果（例えば、各グループにおける一致セグメントのインデックスまたは開始時間）を、当該グループを処理するプロセッサに対してローカルなアレイに格納するとしてもよい。ライン８４２において、すべてのプロセッサから得られる、ローカルアレイに格納した検索結果を要約してユーザに出力するとしてもよい。
【００４０】
図８に概略を示したロバスト且つ並列な検索ストラテジを、Ｉ／Ｏ最適化等のほかの技術と共に用いることによって、マルチプロセッサシステムにおいて大きな音声データベース内でターゲット音声クリップを検索するスピードを大きく改善し得る。１つの実験によると、２７時間の音声ストリームにおいて１５秒のターゲット音声クリップを検索するスピードは、１６ウェイ（１６−ｗａｙ）のユニシスシステムにおいて、同じターゲット音声クリップにおいて同じ音声ストリームを連続して検索する場合に比べると、１１倍に早くなることが分かっている。
【００４１】
一実施形態によると、変形された検索ストラテジが用いられ得る。このストラテジを用いると、ターゲット音声クリップの最初のＫ個（Ｋ≧１）のフレームに対して仮モデル（例えば、ＣＣＧＭＭ）を構築して、ターゲット音声クリップ全体に対して完全モデルを構築するとしてもよい。このためまず、音声セグメントの最初のＫ個（Ｋ≧１）のフレームに対して仮モデル（例えば、ＣＣＧＭＭ）が構築され得る。能動型検索において、各音声セグメントの最初のＫ個のフレームの仮モデルとターゲット音声クリップの最初のＫ個のフレームの仮モデルとがまず比較されて、仮類似性測度を生成する。仮類似性測度によってこれらの２つの仮モデルが非常に類似していることが分かれば、音声セグメント全体に対して完全モデルが構築されて、ターゲット音声クリップ全体の完全モデルに対して比較される。そうでない場合は、音声セグメントに対して完全モデルは構築されず、最初のＫ個のフレームに対して仮モデルをまず構築してこの仮モデルとターゲット音声クリップの仮モデルを比較することによって、次のセグメントを検索するとしてもよい。このような変形検索ストラテジは、さらに演算負荷を低減し得る。
【００４２】
開示されている主題の実施形態例を図１から図８に示すブロック図およびフローチャートを参照しつつ説明したが、当業者であれば、開示されている主題はほかの多くの方法によっても実施され得ることが容易に理解できる。例えば、フローチャートにおけるブロックの実行順序は変更するとしてもよいし、および／または、説明したブロック図／フローチャートのブロックはその一部を変更、削除または合成するとしてもよい。
【００４３】
前述の説明では、開示されている主題をさまざまな側面から説明した。説明に当たっては、主題を十分に説明することを目的として、具体的な数値、システムおよび構成を記載した。しかし、本開示内容を参考にすることによって、このような具体的且つ詳細な内容がなくても主題を実施し得ることは、当業者には明らかである。また、公知の特徴、構成要素またはモジュールは、開示されている主題をあいまいにすることを避けるべく、省略、簡略化、合成または分割した。
【００４４】
開示されている主題のさまざまな実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせにおいて実装され得る。また、開示されている主題のさまざまな実施形態は、プログラムコードを参照することによって、またはプログラムコードと関連付けることによって記述され得る。プログラムコードは、例えば、設計のシミュレーション、エミュレーションおよび製造用の命令、機能、手順、データ構造、ロジック、アプリケーションプログラム、設計表現またはフォーマットであり、機械によってアクセスされると、機械はタスクを実行し、抽象データ型または低水準ハードウェアコンテキストを定義して、結果を生成する。
【００４５】
シミュレーション用の場合、プログラムコードは、設計されたハードウェアがどのように動作するかを示すモデルを本質的に提供する、ハードウェア記述言語または別の機能記述言語を用いてハードウェアを表現するとしてもよい。プログラムコードは、アセンブリまたは機械言語、もしくはコンパイルおよび／または解釈され得るデータであってもよい。また、ソフトウェアとは、ある形態または別の形態によって、動作を実行するかまたは、結果を生じさせるものと認識することは当該技術分野では普通である。このような表現は、プロセッサに動作を実行させるか、または結果を生成させる処理システムによるプログラムコードの実行を簡単に説明するためのものに過ぎない。
【００４６】
プログラムコードは、例えば、揮発性および／または不揮発性メモリに格納されるとしてもよい。揮発性および／または不揮発性メモリは、ストレージデバイスおよび／または関連付けられる機械可読または機械アクセス可能媒体であってよい。機械可読または機械アクセス可能媒体は、固体メモリ、ハードドライブ、フロッピーディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタル多用途ディスク（ＤＶＤ）等であってよいし、機械アクセス可能な生物学的状態保存ストレージ等のより珍しい媒体であってもよい。機械可読媒体は、機械が読み出し可能な形式で情報を格納、送信または受信するどのような機構を有するとしてもよく、当該媒体は、プログラムコードを符号化している伝播信号または搬送波の電気的形態、光学的形態、音響的形態またはその他の形態を通過させる有形の媒体、例えば、アンテナ、光ファイバ、通信インターフェース等を有するとしてもよい。プログラムコードは、パケット、シリアルデータ、パラレルデータ、伝播信号等の形態で送信されるとしてもよく、圧縮または暗号化された形式で利用されるとしてもよい。
【００４７】
プログラムコードは、プロセッサと、当該プロセッサによって読み出し可能な揮発性および／または不揮発性メモリと、少なくとも１つの入力デバイスおよび／または１以上の出力デバイスとを備える、移動可能または固定コンピュータ、携帯情報端末（ＰＤＡ）、セットトップボックス、携帯電話およびポケットベル（登録商標）、ならびにその他の電子デバイスといった、プログラム可能な機械で実行されるプログラムにおいて実装されるとしてもよい。プログラムコードは、入力デバイスを用いて入力されたデータに対して適用されて、上述した実施形態を実行して出力情報を生成するとしてもよい。出力情報は、１以上の出力デバイスに適用されるとしてもよい。当業者であれば、開示されている主題の実施形態はさまざまなコンピュータシステム構成によって実施され得ることに想到し得る。そのようなコンピュータシステム構成は、マルチプロセッサまたはマルチコアプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、実質的にいかなるデバイスにも埋め込み得るパーベイシブ（ｐｅｒｖａｓｉｖｅ）またはミニチュア型のコンピュータまたはプロセッサを含む。開示されている主題の実施形態はまた、タスクを実行するのは通信ネットワークを介してリンクされているリモート処理デバイスである分散コンピューティング環境において実施され得る。
【００４８】
処理は順次実行されるものとして説明されているが、一部の処理については、実際には、並列に、同時に、および／または分散環境下において実行されるとしてもよく、プログラムコードは、シングルプロセッサ型またはマルチプロセッサ型の機械によってアクセスされるべく、ローカルおよび／またはリモートに格納されている。また、一部の実施形態によると、処理の順序は、開示されている主題の精神から逸脱することなく並び替え得る。プログラムコードは、埋め込まれているコントローラによって用いられるとしてもよいし、埋め込まれたコントローラと関連して利用されるとしてもよい。
【００４９】
開示されている主題を実施形態例を参照しつつ説明してきたが、この説明は本発明を限定するものと解釈されるべきではない。実施形態例のさまざまな変形例および主題のその他の実施形態は、当業者には明らかであり、開示されている主題の範囲内に含まれるものとする。
【図１】
2009541869.tif 000018
【図２】
2009541869.tif 000019
【図３】
2009541869.tif 000020
【図４】
2009541869.tif 000021
【図５】
2009541869.tif 000022
【図６】
2009541869.tif 000023
【図７Ａ】
2009541869.tif 000024
【図７Ｂ】
2009541869.tif 000025
【図７Ｃ】
2009541869.tif 000026
【図８】
2009541869.tif 000027
【国際調査報告】
2009541869.tif 000028
2009541869.tif 000029