特許第5984941号(P5984941)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニュアンス コミュニケーションズ, インコーポレイテッドの特許一覧

特許5984941音声アプリケーションにおいて使用するための最適化された有限状態トランスデューサ(FST)の効率的な漸次的修正
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5984941
(24)【登録日】2016年8月12日
(45)【発行日】2016年9月6日
(54)【発明の名称】音声アプリケーションにおいて使用するための最適化された有限状態トランスデューサ(FST)の効率的な漸次的修正
(51)【国際特許分類】
   G10L 15/193 20130101AFI20160823BHJP
   G10L 15/06 20130101ALI20160823BHJP
【FI】
   G10L15/193
   G10L15/06 300J
【請求項の数】15
【全頁数】11
(21)【出願番号】特願2014-531767(P2014-531767)
(86)(22)【出願日】2011年9月21日
(65)【公表番号】特表2014-526718(P2014-526718A)
(43)【公表日】2014年10月6日
(86)【国際出願番号】US2011052544
(87)【国際公開番号】WO2013043165
(87)【国際公開日】20130328
【審査請求日】2014年7月3日
(73)【特許権者】
【識別番号】511204038
【氏名又は名称】ニュアンス コミュニケーションズ, インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】カンタク, シュテファン
(72)【発明者】
【氏名】ベンダー, オリバー
【審査官】 間宮 嘉誉
(56)【参考文献】
【文献】 特開2003−141111(JP,A)
【文献】 特表2010−522923(JP,A)
【文献】 青江順一 ,外2名,トライ構造における共通接尾辞の圧縮アルゴリズム,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,1992年 4月25日,Vol.J75-D-II, No.4,pp.770-779
【文献】 堀貴明,外1名,音声情報処理技術の最先端:3.重み付き有限状態トランスデューサによる音声認識,情報処理,日本,社団法人情報処理学会,2004年10月15日,Vol.45, No.10,pp.1020-1026
【文献】 望月久稔,外3名,拡張ハッシュ法における部分文字列検索の設計と実現,情報処理学会論文誌,日本,社団法人情報処理学会,1997年 2月15日,Vol.38, No.2,pp.310-320
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/27−17/28
G10L 15/00−15/34
Science Direct
IEEE Xplore
CiNii
Scopus
JSTPlus(JDreamIII)
JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
複数の状態および接続アークを有する、単語レベル有限状態トランスデューサ(FST)に新しい文を追加する方法であって、
前記新しい文のプレフィックス部分に一致する、前記FST内の既存の状態およびアークのプレフィックスサブセットを判定するステップと、
前記FSTに、前記プレフィックス部分の後の前記新しい文の残りに対応する状態およびアークの新しいシーケンスを加えるステップと、
前記新しい文のサフィックス部分に対応する、前記FST内の既存の状態およびアークのサフィックスサブセットを判定するステップであって、前記サフィックスサブセット内の全状態が、1を超えないアークのファンアウト経路を有する、ステップと、
前記サフィックス部分の前の前記新しいシーケンスの部分を前記サフィックスサブセットに接続し、前記新しい文を含み、全体的最適化基準を満たさない、修正されたFSTを生成するステップと
を含む、方法。
【請求項2】
前記FSTは、音声アプリケーションFSTである、請求項1に記載の方法。
【請求項3】
前記新しい文は、音声アプリケーションのオンライン動作の間、前記FSTに動的に追加される、請求項2に記載の方法。
【請求項4】
前記新しい文は、オフラインコンパイルプロセスの間、前記FSTに追加される、請求項2に記載の方法。
【請求項5】
音声アプリケーションで使用するための前記修正されたFSTを動的に拡張するステップをさらに含む、請求項2に記載の方法。
【請求項6】
ハッシュテーブルは、前記プレフィックスサブセットを判定するために使用される、請求項1に記載の方法。
【請求項7】
ハッシュテーブルは、前記サフィックスサブセットを判定するために使用される、請求項1に記載の方法。
【請求項8】
複数の状態および接続アークを有する、単語レベル有限状態トランスデューサ(FST)から既存の文を除去する方法であって、
前記既存の文のプレフィックス部分に一致し、前記FSTの少なくとも1つの他の文に対応する、前記FST内の状態およびアークのプレフィックスサブセットを判定するステップと、
前記既存の文のサフィックス部分に一致し、前記FSTの少なくとも1つの他の文に対応する、前記FST内の状態およびアークのサフィックスサブセットを判定するステップであって、前記サフィックスサブセット内の全状態が、1を超えないアークのファンアウト経路を有する、ステップと、
前記FSTから、前記プレフィックスサブセットと前記サフィックスサブセットとの間の任意のアークおよび状態を除去し、前記既存の文を伴わず、全体的最適化基準を満たしていない、修正されたFSTを生成するステップと
を含む、方法。
【請求項9】
前記FSTは、音声アプリケーションFSTである、請求項8に記載の方法。
【請求項10】
前記既存の文は、音声アプリケーションのオンライン動作の間、前記FSTから動的に除去される、請求項9に記載の方法。
【請求項11】
前記既存の文は、オフラインコンパイルプロセスの間、前記FSTから除去される、請求項9に記載の方法。
【請求項12】
音声アプリケーションで使用するための前記修正されたFSTを動的に拡張するステップをさらに含む、請求項9に記載の方法。
【請求項13】
前記ステップは、部分的一致プロセスを1回以上繰り返し、前記既存の文の複数のインスタンスを前記FSTから除去する、請求項8に記載の方法。
【請求項14】
ハッシュテーブルは、前記プレフィックスサブセットを判定するために使用される、請求項8に記載の方法。
【請求項15】
ハッシュテーブルは、前記サフィックスサブセットを判定するために使用される、請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声処理アプリケーションに関し、より具体的には、自動音声認識システムおよびテキスト/音声システム等の音声処理アプリケーションにおいて使用される、事前にコンパイルされた検索ネットワークに関する。
【背景技術】
【0002】
音声認識システムは、音声入力の意味論的意味を判定しようとする。典型的には、確率的有限状態音声モデルが、使用され、音声入力に最も対応する単語のシーケンスを判定する。一般的実施例の1つは、ナビゲーションシステム、オーディオシステム、空調等の車室内のアプリケーションの制御を可能にする、自動車アプリケーションである。そのようなアプリケーションにおける認識タスクは、ユーザコマンドおよび都市の通りのリスト等の所定の要素と、mp3の曲のリスト、パーソナルデジタル化アドレス帳からの氏名(例えば、スマートフォンから)、および関心ナビゲーション地点等の動的に判定された要素の組み合わせを表す。そのようなアプリケーションの場合、高速低待ち時間性能を伴う、コンパクトなメモリ効率的検索ネットワークを有することが望ましい。
【0003】
認識タスクは、音素として知られる基本音声音の音響形態から、認識語彙内の単語を形成する、音素シーケンス、認識文法内の語句を形成する、単語シーケンスまで、複数の異なる知識レベルを含む。認識タスクを編成するための有力かつ便利な方法の1つは、有限状態アクセプタ(FSA)および有限状態トランスデューサ(FST)等の有限状態機械の使用に基づくものである。便宜上、以下の議論は、任意の特に厳密な意味ではなく、むしろ、多くの観点において、FSAおよび他の具体的形態の有限状態機械にも適用される、一般的包括的点において、FSTという用語を使用する。図1は、一式の単語レベルの記号:{AAA、BA、AAB}を解析する、ある単純FSTの具体的実施例を示す。例えば、非特許文献1(参照することによって本明細書に組み込まれる)を参照されたい。
【0004】
スマートフォン等のモバイルプラットフォーム上に音声処理アプリケーションを実装することは、特に、利用可能であるリソース制限の観点において、困難である。いくつかの最適化が、速度、正確度、および/または制限されたメモリの使用を改善するために使用され得る。とりわけ、FSTは、音響情報(HMMセット)、単語発音、言語モデル、および認識文法の単一統合表現を可能にする。本統合表現のため、計算的に安価な計算が、検索ネットワークのトラバーサルの間に行なわれ得る一方、他の計算的に高価な最適化は、事前コンパイル段階にオフロードされ得る。FSTの静的コンパイルのための4つの最も広く使用されている最適化として、決定化、極小化、重み付け、およびラベルプッシュ処理が挙げられる。例えば、非特許文献2(参照することによって本明細書に組み込まれる)を参照されたい。
【0005】
決定化にもかかわらず、既存のFST最適化は、全体的であって、すなわち、全体として、FSTにアクセスする必要があり、したがって、検索ネットワークを漸次的に修正する、音声アプリケーションに適用されることができない。文を単語レベルFSTに漸次的に追加するいくつかの理論的側面は、非特許文献3(参照することによって本明細書に組み込まれる)により完全に説明される。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Jurafsky & Martin, Speech and Language Processing, Prentice Hall 2001. pp. 33-83. ISBN 0−13−095069−6
【非特許文献2】Mohri, Minimization of Sequential Transducers, (5th Annual Symposium on Combinatorial Pattern Matching 1994)
【非特許文献3】Crochemore and Giambruno, On−Line Construction Of A Small Automaton For A Finite Set Of Words, The Prague Stringology Conference 2009
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の実施形態は、文を追加および除去するための単語レベル有限状態トランスデューサ(FST)を漸次的に修正する方法を対象とする。FST内の状態およびアークのプレフィックスサブセットは、文のプレフィックス部分に一致すると判定される。FST内の状態およびアークのサフィックスサブセットは、文のサフィックス部分に一致すると判定される。新しい文が、次いで、プレフィックスとサフィックスとの間の文の残りに対応するFST状態およびアークの新しいシーケンスをFSTに付与することによって、追加されることができる。既存の文は、プレフィックスサブセットとサフィックスサブセットとの間の任意のアークおよび状態を除去することによって、FSTから除去されることができる。結果として生じる修正されたFSTは、局所的に効率的であるが、極小化等の全体的最適化基準を満たさない。
【0008】
FSTは、音声アプリケーションFSTであってもよく、文は、音声アプリケーションのオンライン動作の間、動的に追加される、またはFSTから除去されてもよい。既存の文を除去するために、ステップは、部分的一致プロセス(「ファジー除去」)において、1回以上、繰り返され、既存の文の複数のインスタンスをFSTから除去してもよい。ハッシュテーブル、例えば、特殊両用ハッシュテーブルが、プレフィックスサブセットおよび/またはサフィックスサブセットを判定するために使用されてもよい。全体的最適化基準は、FST極小化基準を含んでもよい。
本明細書は、例えば、以下の項目も提供する。
(項目1)
複数の状態および接続アークを有する、単語レベル有限状態トランスデューサ(FST)に新しい文を追加する方法であって、
前記新しい文のプレフィックス部分に一致する、既存の前記FST内の状態およびアークのプレフィックスサブセットを判定するステップと、
前記FSTに、前記プレフィックス部分の後の前記新しい文の残りに対応する状態およびアークの新しいシーケンスを加えるステップと、
前記新しい文のサフィックス部分に対応する、前記FST内の既存の状態およびアークのサフィックスサブセットを判定するステップと、
前記サフィックス部分の前の前記新しいシーケンスの部分を前記サフィックスサブセットに接続し、前記新しい文を含み、全体的最適化基準を満たさない、修正されたFSTを生成するステップと
を含む、方法。
(項目2)
前記FSTは、音声アプリケーションFSTである、項目1に記載の方法。
(項目3)
前記新しい文は、音声アプリケーションのオンライン動作の間、FSTに動的に追加される、項目2に記載の方法。
(項目4)
前記新しい文は、オフラインコンパイルプロセスの間、FSTに追加される、項目2に記載の方法。
(項目5)
音声アプリケーションで使用するための修正されたFSTを動的に拡張するステップをさらに含む、項目2に記載の方法。
(項目6)
ハッシュテーブルは、プレフィックスサブセットを判定するために使用される、項目1に記載の方法。
(項目7)
ハッシュテーブルは、サフィックスサブセットを判定するために使用される、項目1に記載の方法。
(項目8)
複数の状態および接続アークを有する、単語レベル有限状態トランスデューサ(FST)から既存の文を除去する方法であって、
前記既存の文のプレフィックス部分に一致し、前記FSTの少なくとも1つの他の文に対応する、前記FST内の状態およびアークのプレフィックスサブセットを判定するステップと、
前記既存の文のサフィックス部分に一致し、前記FSTの少なくとも1つの他の文に対応する、前記FST内の状態およびアークのサフィックスサブセットを判定するステップと、
前記FSTから、前記プレフィックスサブセットと前記サフィックスサブセットとの間の任意のアークおよび状態を除去し、前記既存の文を伴わず、全体的最適化基準を満たしていない、修正されたFSTを生成するステップと
を含む、方法。
(項目9)
前記FSTは、音声アプリケーションFSTである、項目8に記載の方法。
(項目10)
既存の文は、音声アプリケーションのオンライン動作の間、前記FSTから動的に除去される、項目9に記載の方法。
(項目11)
前記新しい文は、オフラインコンパイル動作の間、前記FSTに追加される、項目9に記載の方法。
(項目12)
音声アプリケーションで使用するための前記修正されたFSTを動的に拡張するステップをさらに含む、項目9に記載の方法。
(項目13)
前記ステップは、部分的一致プロセスを1回以上繰り返し、既存の文の複数のインスタンスをFSTから除去する、項目8に記載の方法。
(項目14)
ハッシュテーブルは、プレフィックスサブセットを判定するために使用される、項目8に記載の方法。
(項目15)
ハッシュテーブルは、サフィックスサブセットを判定するために使用される、項目8に記載の方法。
【図面の簡単な説明】
【0009】
図1図1は、ある具体的FSTの単純実施例を示す。
図2図2A−Cは、本発明の一実施形態による、文をFSTに追加する実施例を示す。
図3図3A−Cは、共有サフィックスのために、新しい状態を既存のFSTに追加する実施例を示す。
図4図4A−Bは、FSTの全体的非極小性の実施例を示す。
図5図5A−Bは、完全一致プロセスを使用して、文を既存のFSTから除去する実施例を示す。
図6図6A−Bは、文を既存のFSTから除去するための部分一致プロセスの実施例を示す。
図7図7は、本発明の一実施形態による、修正されたFST配列を使用するシステムの実施形態のための基本アーキテクチャを示す。
【発明を実施するための形態】
【0010】
本発明の種々の実施形態は、全体的最適化より若干低度の局所最適化、例えば、漸次的局所極小化に基づく、文の単語レベルFSTへの追加および除去を使用して、FSTの動的修正を効率的に可能にするための技法を対象とする。局所極小化の特性は、全状態が、1を超えないアークのファンアウトを有するサフィックス経路にのみ適用する、極小化のより低度のバージョンである。長さNの文を前提とすると、本発明の実施形態は、O(N)のならし計算量に基づいて、FSTに追加/そこから除去を行なう、すなわち、これは、c*Nステップを超えないが(cは、実装に対して一定である)が、Nステップではない。これは、FSTを漸次的に構成し、全体的に最適化されたFSTとほぼ同じくらい効率的に音声をテキストにデコードするために使用され、また、FSTの(オフライン)静的コンパイルのためのメモリ消費を削減するのに役立ち得る。以下の議論は、音声認識アプリケーションの観点から提示されるが、本概念は、テキスト/音声、テキスト処理等の時間または空間効率的FSTを漸次的に構築する必要がある、任意のアプリケーションに拡張されることができる。
【0011】
図2A−Cは、本発明の一実施形態による、新しい文のプレフィックスおよびサフィックスの既存のFST内に既に存在するものとの共有に基づいて、線形時間計算量を伴う、文をFSTに追加する実施例を示す。(注:再び、前述のように、FSAとFSTとの間の形式的区別は、実際には、本文脈では、むしろ些細なものであって、FSTからの入力/出力アークラベル対は、図を簡単にするために、単一ラベルが与えられる)。図2Aは、文ABCのための単純な既存の単語レベルFSTを示す。新しい文ADCを本FSTに追加するために、最初に、FST内の状態およびアークのプレフィックスサブセットが、新しい文のプレフィックス部分に一致すると判定される。本具体的場合には、新しい文ADCを追加するための既存のプレフィックスサブセットは、既存の状態0および1およびその接続アークAであると判定されるであろう(図2B)。次に、FST内の状態およびアークのサフィックスサブセットは、新しい文のサフィックス部分に一致すると判定される。新しい文ADCの場合、サフィックスサブセットは、既存の状態2および3およびその接続アークCとなるであろう。新しい文は、次いで、プレフィックスとサフィックスとの間の文の残りに対応するFST状態およびアークの新しいシーケンスをFSTに加えることによって、追加されることができる。ADCを追加する場合、これは、アークDを状態1と2との間に追加することによって行なわれることができる(図2C)。
【0012】
結果として生じる修正されたFSTは、非既存の状態/アークのみ、追加されるが、極小化等の全体的最適化基準を満たさないという点において、局所的に効率的である。代わりに、少なくとも、より低度の漸次的極小化を満たす。ハッシュテーブルが、プレフィックスサブセットおよび/またはサフィックスサブセットを判定するために使用されてもよい。例えば、O(1)線形時間計算量のプレフィックスハッシュテーブルが、f(状態、アークラベル)→標的状態となるように使用され、それによって、全体的計算量が、O(N)ほど悪化しないように保証することができる。また、種々のステップが行なわれる具体的順序は、重要ではない。
【0013】
図3A−Cは、共有サフィックスのために、新しい状態を既存のFSTに追加する別の実施例を示す。図3Aは、文AAAのための既存のFSTを示す。新しい文BAを追加するために、サフィックスAは、状態2を使用して、新しいアークBを状態0から状態2に追加することによって共有されることができる(図3B)。次いで、別の新しい文AABを追加するために、新しい状態4が、追加され、プレフィックスサブセットAAを受信し、状態2から状態3の既存のアークAが、状態4から状態3に複製され(既存の文AAAを解析する)、新しいアーク4B3が、新しい経路AABを完了するように追加される(図3C)。
【0014】
そのようなアプローチは、局所的に効率的となるであろうが、いくつかの点において、拡大するFSTは、全体的には非極小となる。例えば、図3Cにおいて修正されたFSTが、次いで、追加される別の新しい文BBを有する場合、既存のBプレフィックスが、識別され、新しいアークBが、状態2から状態3に追加されるであろう(図4A)。しかし、本新しいFSTは、状態4が、もはや要求されず、図4Bに示されるように、除去され得るため、全体的に極小化されず、依然として、AAA、BA、AAB、およびBBの全てかつそれらのみを正しく解析する。しかし、プロセスの容易性は、全体的非極小性の僅かな漸次的損失に勝る。
【0015】
既存のFSTへの文の追加に加え、既存の文はまた、例えば、後の使用のための「フリー」リストによって、プレフィックスサブセットとサフィックスサブセットとの間の任意のアークおよび状態を除去することによって、FSTから除去されることができる。ハッシュテーブルが、そのような除去プロセスに関連して有用であり得る。例えば、プレフィックスハッシュテーブルは、潜在的一致の開始状態に素早くアクセスすることができる。したがって、p→O(p)は、入力ラベルpに一致するハッシュテーブルにアクセスする。もう使われていないアークのみ、除去される必要がある。
【0016】
既存のFSTから文を除去するための具体的プロセスの1つは、図5A−Bに示されるように、完全一致アプローチに基づいてもよい。図5Aは、文AAAおよびBAを解析する、既存のFSTを示す。文を除去するために、任意の残りのプレフィックスおよび/またはサフィックスが、最初に、判定され、留保されなければならない。例えば、文AAAを除去(および、BAを留保)するために、留保すべきプレフィックスは存在しないが、BAのAサフィックスが、識別され、留保され、したがって、サフィックスサブセット(2、A、3)は、留保される(すなわち、状態2および3ならびにそれらの間のアーク(エッジ)Aは:
【0017】
【数1】
【0018】
である)一方、AAのための経路の残りは、除去される:状態1ならびに
【0019】
【数2】
【0020】
図5Bに示されるように、(−1))。
【0021】
アーク/状態除去ステップは、部分的一致プロセスにおいて、1回以上、繰り返され(例えば、繰り返しのための試験は、ハッシュテーブル内の衝突の検査に基づいてもよい)、既存の文または文の断片の複数のインスタンスをFSTから除去してもよい。例えば、図6Aは、文AAAおよびBAを解析する、図5Aにおけるような既存のFSTを示す。既存の部分的文*A*を除去するために、第1のインスタンスが、アーク
【0022】
【数3】
【0023】
内に見出され、除去され(−1)、次いで、部分的文*A*の全インスタンスが識別され、除去されるまで、本方法を繰り返し、次に、
【0024】
【数4】
【0025】
を除去する(図6B)。再び、ハッシュテーブルが、本実装のために有用であり得る。例えば、修正されたプレフィックスハッシュ関数「f(アークラベル)→標的状態」を使用する。そのような部分的一致アプローチは、文追加が、もはや十分に効率的ではなくなり得るように、衝突の数を大幅に増加させ得る。結果として生じるデータ構造が、唯一、ハッシュ関数だけ異なるように、慎重に選定されたハッシュ関数およびグループアクセス(追加、除去)を使用することが有用となり得る。
【0026】
図7は、本発明の一実施形態による、修正されたFST配列を使用するシステムの実施形態、この場合、音声アプリケーションFSTのための基本アーキテクチャを示し、これは、音声アプリケーションのオンライン動作の間、文を動的に追加および除去する、すなわち、システムは、ランタイム時に修正されることができる。コンパイラ703は、HMMユニットシーケンス702(すなわち、音響モデル)を伴う、漸次的に極小化される単語レベルFST701(すなわち、言語モデル)のランタイム拡張を行い、音声アプリケーションにおける未知の音声入力の音声認識のために、HMM−ユニット/単語FST704(その上で、コンパイラ703はまた、決定化および局所極小化も行なう)を生成する。また、HMM−ユニット/単語FST704が、厳密に全体的に極小化されるのではなく、前述のように、漸次的に構築される間(すなわち、認識の間)、依然として、商業用途に有益であるために十分にコンパクトかつ効率的であって、付加的計算は、回避される。いくつかの実施形態では、ランタイム拡張は、行なわれてもよい、または行なわれなくてもよい、随意のステップであってもよい。HMM−ユニット/単語FSTはまた、直接、漸次的極小化を使用して構築されることもできる。しかしながら、冗長な発音等の種々の要因のため(かつ、1回以上、使用され得る)、本アプローチは、追加/除去ステップのために、より多くのオーバーヘッドを要求し得る。したがって、具体的実施形態は、本理由から、認識の間、音訳を動的に拡張するように選定してもよい。
【0027】
本発明の実施形態は、任意の従来のコンピュータプログラミング言語内に全体的または部分的に実装されてもよい。例えば、好ましい実施形態は、手続き型プログラミング言語(例えば、「C」)またはオブジェクト指向プログラミング言語(例えば、「C++」、Python)内に実装されてもよい。本発明の代替実施形態は、事前にプログラムされたハードウェア要素、他の関連構成要素、またはハードウェアおよびソフトウェア構成要素の組み合わせとして実装されてもよい。
【0028】
実施形態は、コンピュータシステムと併用するためのコンピュータプログラム製品として、全体的または部分的に実装されることができる。そのような実装は、コンピュータ可読媒体(例えば、ディスケット、CD−ROM、ROM、「フラッシュROM」のような電気的に消去可能なROM、または固定ディスク)等の有形媒体上に固定されるか、あるいはモデムまたは他のインターフェースデバイス、例えば、媒体を経由してネットワークに接続される通信アダプタ等を介して、コンピュータシステムに伝送可能であるかのいずれかである、一連のコンピュータ命令を含んでもよい。媒体は、有形媒体(例えば、光学またはアナログ通信回線)あるいは無線技法(例えば、マイクロ波、赤外線、または他の伝送技法)を用いて実装される媒体のいずれかであってもよい。一連のコンピュータ命令は、システムに関して、本明細書に前述された機能性の全部または一部を具現化する。当業者は、そのようなコンピュータ命令が、多くのコンピュータアーキテクチャまたはオペレーティングシステムと併用するために、いくつかのプログラミング言語で書かれることができることを理解するはずである。さらに、そのような命令は、任意のメモリデバイス、例えば、半導体、磁気、光学、または他のメモリデバイス内に記憶されてもよく、任意の通信技術、例えば、光学、赤外線、マイクロ波、または他の伝送技術を使用して伝送されてもよい。そのようなコンピュータプログラム製品は、付随の印刷または電子文書を伴う可撤性媒体(例えば、市販のソフトウェア)として流通される、コンピュータシステムにプリインストールされる(例えば、システムROMまたは固定ディスク上)、あるいはサーバまたは電子掲示板から、ネットワーク(例えば、インターネットまたはWorld Wide Web)を経由して流通され得ることが予期される。当然ながら、本発明のいくつかの実施形態は、ソフトウェア(例えば、コンピュータプログラム製品)およびハードウェアの両方の組み合わせとして実装されてもよい。さらに、本発明の他の実施形態は、全体的にハードウェアとして、または全体的にソフトウェア(例えば、コンピュータプログラム製品)として、実装される。
【0029】
本発明の種々の例示的実施形態が開示されたが、本発明の真の範囲から逸脱することなく、本発明の利点のいくつかを達成するであろう、種々の変更および修正が行なわれ得ることは、当業者に明白となるはずである。
図1
図2(A)】
図2(B)】
図2(C)】
図3(A)】
図3(B)】
図3(C)】
図4(A)】
図4(B)】
図5(A)】
図5(B)】
図6(A)】
図6(B)】
図7