【文献】
Shilei Zhang, et al.,Wake-up-Word Spotting Using End-to-End Deep Neural Network System,Proceedings of the 23rd International Conference on Pattern Recognition (ICPR 2016),IEEE,2016年12月,p.2879-2884
(58)【調査した分野】(Int.Cl.,DB名)
一般的な音声データを用いて音声ウェイクアップモデルを訓練することであって、前記訓練することが、前記訓練が収束するまで非同期確率的勾配下降方法によって前記一般的な音声データを用いて前記音声ウェイクアップモデルのパラメータを反復最適化することを含む、訓練することと、
キーワード特有の音声データを取得することと、
前記キーワード特有の音声データを用いて前記音声ウェイクアップモデルを訓練することであって、前記キーワード特有の音声データを用いた前記訓練で使用される学習レートが、前記一般的な音声データでの前記音声ウェイクアップモデルの前記訓練で使用されるものより少ない、訓練することと
前記一般的な音声データ及び前記キーワード特有の音声データを用いて訓練された前記音声ウェイクアップモデルに音声データを入力することと、
前記音声ウェイクアップモデルによって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することであって、前記音声ウェイクアップモデルが、ディープニューラルネットワーク(DNN)及びコネクショニスト時系列分類法(CTC)を含む、出力することとを含む、音声ウェイクアップ方法。
命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令が電子デバイスのプロセッサによって実行される場合に、前記電子デバイスに音声ウェイクアップ方法を実行させ、前記音声ウェイクアップ方法が、
一般的な音声データを用いて音声ウェイクアップモデルを訓練することであって、前記訓練することが、前記訓練が収束するまで非同期確率的勾配下降方法によって前記一般的な音声データを用いて前記音声ウェイクアップモデルのパラメータを反復最適化することを含む、訓練することと、
キーワード特有の音声データを取得することと、
前記キーワード特有の音声データを用いて前記音声ウェイクアップモデルを訓練することであって、前記キーワード特有の音声データを用いた前記訓練で使用される学習レートが、前記一般的な音声データでの前記音声ウェイクアップモデルの前記訓練で使用されるものより少ない、訓練することと
前記一般的な音声データ及び前記キーワード特有の音声データを用いて訓練された前記音声ウェイクアップモデルに音声データを入力することと、
前記音声ウェイクアップモデルによって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することであって、前記音声ウェイクアップモデルが、ディープニューラルネットワーク(DNN)及びコネクショニスト時系列分類法(CTC)を含む、出力することとを含む、非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0012】
詳細な説明
この明細書の実施形態では、音声ウェイクアップ方法、装置及び電子デバイスが提供される。
【0013】
当業者がこの明細書の技術的解決法をより良く理解できるようにするため、この明細書の実施形態の技術的解決法は、この明細書の実施形態の添付の図面を参照して、以下で明確且つ完全に説明する。説明される実施形態は、この出願の実施形態のすべてというよりむしろ、単にそのうちのいくつかであることは明らかである。この明細書の実施形態に基づいて、創造的な取り組みを行うことなく当業者によって得られた他のすべての実施形態はすべて、この出願の保護範囲内に収まるべきである。
【0014】
理解し易くするため、この明細書の解決法のアイデアは、以下の通り説明される。この明細書では、ディープニューラルネットワーク(DNN)及びコネクショニスト時系列分類法(CTC)を含む音声ウェイクアップモデルは、一般的な音声データを用いて訓練される。訓練済みの音声ウェイクアップモデルは、音声ウェイクアップのために使用することができ、音声ウェイクアップによってトリガされるユーザが定義したキーワードをサポートすることができる。さらに、音声ウェイクアップモデルに含まれるDNNは、相対的にそれほど複雑ではなく、例えば、3つ又は4つの層(各層に200若しくは300のノードを有する)しか有さないため、音声ウェイクアップモデルは、携帯電話及び家庭用電化製品などの低電力デバイスにおいて使用することができる。音声ウェイクアップモデルは、CTC−KWSと呼ぶことができ、KWSは、ここでは、背景技術において言及されているキーワードスポッティングである。
【0015】
DNNは、多層パーセプトロンであり、入力層と出力層との間に隠れ層を有し、複雑な非線形関係をシミュレーションすることができる。CTCは、ラベルタグ付けタスクを実行するように構成された分類法であり、入力と出力との間の強制アラインメントを必要としない。
【0016】
図1は、実際の適用のシナリオにおけるこの明細書の解決法に関与する全アーキテクチャの概略図である。全アーキテクチャでは、主に、2つの部分、すなわち、音声データ及び音声ウェイクアップモデルが関与する。音声ウェイクアップモデルは、DNN及びCTCを含む。音声ウェイクアップは、処理のために音声ウェイクアップモデルに音声データを入力することによって実装することができる。
【0017】
この明細書の解決法は、前述のアイデア及び全アーキテクチャに基づいて、以下で詳細に説明する。
【0018】
図2は、この明細書の実施形態による、音声ウェイクアップ方法の概略フローチャートである。プログラムの観点からすれば、フローの実行ボディは、サーバ又は端末上のプログラム(例えば、モデル訓練プログラム、音声認識プログラム、音声ウェイクアップアプリケーションなど)であり得る。デバイスの観点からすれば、可能なフローの実行ボディは、これらに限定されないが、サーバ又は端末として機能することができる次のデバイスの少なくとも1つ、すなわち、携帯電話、タブレットコンピュータ、着用可能スマートデバイス、自動車マシン、パーソナルコンピュータ、中型コンピュータ、コンピュータクラスタなどである。
【0019】
図2のフローは、以下のステップを含み得る。
【0020】
S202では、一般的な音声データを用いて訓練された音声ウェイクアップモデルに音声データが入力される。
【0021】
この明細書の実施形態では、音声は、音声データを得るために、実行ボディ又は別のボディによってモニタすることができる。音声がモニタされる際、ユーザは、音声ウェイクアップを実行するための音声ウェイクアップモデルをトリガするために、既定のキーワードをはっきり言うことができる。
【0022】
S204では、音声ウェイクアップモデルは、音声ウェイクアップを実行するかどうかを判断するための結果を出力し、音声ウェイクアップモデルは、DNN及びCTCを含む。
【0023】
この明細書の実施形態では、背景において言及されているキーワード特有の音声データと比べると、ステップS202において説明される一般的な音声データは、それほど制限されず、従って、容易にアクセス可能である。例えば、その一般的な音声データは、大語彙連続音声認識(LVCSR)コーパス又は同様のものであり得る。
【0024】
この明細書の実施形態では、音声認識モデルに含まれるDNNは、入力音声特徴に対応する発音音素シーケンスの事後確率分布を予測することができる。予測された発音音素シーケンスに対応する信頼スコアを与えるため、DNNの後にはCTCを続けることができる。音声ウェイクアップを実行するかどうかを判断するための結果は、信頼スコアに基づいて出力することができる。
【0025】
図2の方法を用いると、キーワード特有の音声データに依存する代わりに、音声ウェイクアップモデルは、アクセス可能な一般的な音声データを用いて訓練することができ、さらに、訓練済みの音声ウェイクアップモデルは、音声ウェイクアップのために使用することができ、それは、音声ウェイクアップの正確度の改善につながる。
【0026】
また、音声ウェイクアップモデルは、キーワード特有の音声データの制限を打破し、ユーザが定義したトリガされたキーワードをサポートする。従って、実際の適用では、音声ウェイクアップモデルは、より便利で且つ柔軟であり、ユーザ経験の改善につながる。
【0027】
図2の方法に基づいて、方法のいくつかの具体的な実装形態の解決法及び拡張された解決法は、本明細書の実施形態においてさらに提供されており、以下で説明する。
【0028】
理解し易くするため、この明細書の実施形態では、
図2の音声ウェイクアップモデルのフレームワークの概略図は、
図3に示されるように提供される。
【0029】
図3のフレームワークは、特徴抽出モジュール、DNN及びCTCを順番に含む。ステップS204では、音声ウェイクアップモデルによって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することは、具体的には、
入力音声データから音響特徴を抽出することと、
各発音音素にそれぞれ対応する音響特徴のクラス確率を得るように処理するために、音響特徴をDNNに入力することと、
発音音素シーケンスに対応する音声ウェイクアップ用語の信頼スコアを得るように処理するために、クラス確率をCTCに入力することと、
信頼スコアに従ってウェイクアップを実行するかどうかを判断し、判断結果を出力することと
を含み得る。
【0030】
図3のフレームワークの様々な部分は、前述の音声ウェイクアップのフローに従って、
図4、
図5及び
図6と組み合わせてさらに詳細に説明する。
【0031】
図4は、この明細書の実施形態による、実際の適用のシナリオにおける
図3の特徴抽出モジュールの特徴抽出の概略図である。
【0032】
図4では、現時点において「Zhi Ma Kai Men」の音声部分がモニタされる際、それに対応するターゲットラベルシーケンスは、発音音素シーケンスであり、「zhi1ma2kai1men2」として表現することができ、数値は、トーンを表す。最初と最後などの音素に加えて、トーン音素は、モデリング単位としても考慮される。実際の適用では、文脈非依存又は文脈依存の音素をすべて考慮することができ、その中でも後者の方が多い。しかし、DNNの後続の演算負荷の低減を考慮すると、文脈非依存の音素(具体的には、ブランク単位を含む72の文脈非依存の中国語の音素単位)のみを考慮することが好ましい。
【0033】
音響特徴は、特徴抽出モジュールによって、入力音声データから抽出することができ、具体的には、指定時間間隔に基づくウインドウで入力音声データの音響特徴フレームを抽出することであって、音響特徴フレームの各々が、多次元ログフィルタバンクエネルギーである、抽出することと、複数の隣接する音響特徴フレームをそれぞれ積み重ねることと、一般的な音声データから抽出された音響特徴として、積み重ねた音響特徴フレームをそれぞれ取り入れることとを含み得、さらに、積み重ねた音響特徴フレームは、DNNの入力としてそれぞれ使用することができる。
【0034】
ログフィルタバンクエネルギーは、ログフィルタバンクによって抽出されたエネルギー信号を指し、モデル処理を容易にするためにこの明細書の解決法におけるベクトルとして表現することができる。前述の多次元は、ベクトルの複数の次元を表す。
【0035】
例えば、指定された時間ウインドウの長さは、25ミリ秒であり得、各時間ウインドウは、10ミリ秒移動することができ、多次元は、例えば、40次元であり得る。音声データの時間軸上では、0〜25のミリ秒は、1つのウインドウとして使用することができ、40次元ログフィルタバンクエネルギーは、第1の音響特徴フレームとして機能するように音声データから相応に抽出され、10〜35のミリ秒は、1つのウインドウとして使用することができ、40次元ログフィルタバンクエネルギーは、第2の音響特徴フレームとして機能するように音声データから相応に抽出され、複数の音響特徴フレームは、同じ方法で抽出することができる。
【0036】
さらに、複数の隣接する音響特徴フレームを積み重ねる目的は、現在のフレームの文脈からより多くの情報を可能にすることであり、それは、後続の予測結果の正確度の改善につながる。上記の例に続いて、現在のフレーム、現在のフレームの前の隣接する連続的な10個のフレーム及び現在のフレームの後の隣接する連続的な5個のフレームは、例えば、後続のDNNに入力するために640次元の積み重ね特徴を得るように積み重ねることができる。それに加えて、積み重ね特徴の次元に対してケプストラム平均及び分散正規化を実行することができ、次いで、逆方向入力を実行することができる。
【0037】
前述の例において取り入れられた特徴抽出方法及びパラメータは、単なる例示的なものであり、実際の適用では、必要に応じて調整できることに留意すべきである。
【0038】
図5は、この明細書の実施形態による、実際の適用のシナリオにおける
図3のDNNの概略構造図である。
【0039】
図5では、DNNの様々なニューロンは、完全に接続されている。
図3の特徴抽出モジュールによって抽出された音響特徴は、DNNに入力される。DNNは、以下の関数マッピングに従って、入力音響特徴
【数1】
と出力層のモデリング単位jとの間の関係を説明することができる。
【数2】
式中、
【数3】
は、隠れ層の出力であり、
【数4】
及び
【数5】
はそれぞれ、重み及びオフセットパラメータであり、n
iは、i番目の層上のノードの数であり、θ={W
i,B
i}であり、「T」は、行列の転置を示し、Nは、隠れ層の数であり、σは、非線形活性化関数であり、例えば、正規化線形ユニット(ReLU)関数σ(z)=max(z,0)である。式IIIは、ソフトマックス関数であり、ラベル単位jの推定事後を表す。
【0040】
実際の適用では、CTCと併せて、再帰型ニューラルネットワーク(RNN)を使用することもできる。しかし、背景におけるものなどの訓練データが制限される事例では、モバイルデバイスの最小演算及び電力消費量要件は、CTCと併せてDNNを使用することによって、より容易に満たすことができる。演算の複雑性を低減するため、隠れ層に約数百のノードを有するDNNがより適している。
【0041】
図6は、この明細書の実施形態による、実際の適用のシナリオにおける
図3のCTCの概略構造図である。
【0042】
CTCは、順次ラベルタスク用に特に設計される。入力特徴とターゲットラベルとの間のフレームレベルアラインメントのための交差エントロピー基準とは異なり、CTCは、音声データとラベルシーケンス(例えば、音素、文字など)との間のアラインメントを自動的に学習することを目標とし、それにより、データの強制アラインメントの必要性が排除され、入力は、必ずしもラベル長さと同じではない。
【0043】
図6では、指定されたモデリング単位は、Lから抽出され、CTCは、DNNのソフトマックス層に位置する。DNNは、|L|単位及びブランク単位から構成される。不確実性の間はシンボルは相応に出力されないため、ブランク単位の導入は、ラベル予測の負担を軽減する。
【0044】
【数6】
は、DNNが時間ステップtにおいてjを出力する確率として定義される。フレーム長さTの入力シーケンスx
T及びターゲットラベルl
≦Tは与えられており、l
i∈Lである。CTCパスπ=(π
0,...,π
T−1)は、フレームレベルラベルシーケンスであり、繰り返された非ブランクラベル及びブランク単位の出現をCTCパスが可能にするという点で、lとは異なる。
【0045】
CTCパスπは、繰り返されたラベル及びブランク単位を削除することによって、その対応するラベルシーケンスlにマッピングすることができる。例えば、τ(”aa−b−c”)=τ(”abb−cc−”)=”abc”である。多対1のマッピング関数は、τとして定義され、「−」はブランクを表す。x
Tが与えられており、各時間ステップの出力確率条件が独立していると想定される場合は、パスπの確率は、
【数7】
である。
【0046】
次いで、lの確率は、lにマッピングされたすべてのパスの確率の総和を求めることによって、τに基づいて計算することができる。実際の適用では、計算の観点から、CTC上ですべてのパスの総和を求めることは面倒である。この問題に関し、順方向及び逆方向ダイナミックプログラミングアルゴリズムを取り入れることができる。可能なすべてのCTCパスは、まさに
図6に示されるように、アルゴリズムに基づいて、グリッドとしてコンパクトに表される。
【0047】
訓練時、CTCは、θ
*=argmin
θΣ
(x,l)∈S−log(p(l│x;θ))を可能にすることを目標とし、Sは、使用される訓練データを表す。復号時、CTCによって出力された信頼スコアが設定閾値より大きい際は、検出エンジンは、肯定的な決定を相応に行うことができ、肯定的な決定は、対応するキーワードが検出されていると考えることができる。設定閾値は、検証データセットに基づいて微調整することができる。
【0048】
この明細書の実施形態では、モデルは、訓練が収束するまで音声ウェイクアップモデルのパラメータを反復最適化するために、勾配下降方法によって、好ましくは、非同期ランダム勾配下降方法によって訓練することができる。
【0049】
例えば、DNN及びCTCは、グラフィクス処理ユニット(GPU)を有するサーバ上で訓練することができる。ネットワークパラメータは、(−0.02,0.02)の範囲内で均一に分布するように無作為に初期化され、初期の学習レートは0.008であり、運動量は0.9である。
【0050】
理解し易くするため、学習レート及びその関数は、以下の通り説明する。
【0051】
学習レートは、勾配下降方法で使用されるパラメータである。勾配下降方法では、最初に解を初期化することができ、この解に基づいて、移動方向及び移動ステップサイズが決定され、その結果、初期の解が方向及びステップサイズに従って移動した後、目的関数の出力を低減することができる。次いで、その解は新しい解に更新され、次の移動方向及び次のステップサイズが連続的に検索され、このプロセスが反復実行された後、目的関数が比較的小さくなるように、目的関数は絶えず減少し続け、最終的に解が見出される。解を見出すプロセスでは、ステップサイズが大き過ぎて、検索が注意深く行われない場合は、良い解が回避される恐れがあり、ステップサイズが小さ過ぎる場合は、解を見出すプロセスは、遅過ぎる速度で進むことになる。従って、ステップサイズを適切に設定することが重要である。学習レートは、オリジナルのステップサイズの調整のために使用される。勾配下降方法では、各調整におけるステップサイズは、学習レートに勾配を乗じたものに等しい。
【0052】
前述の訓練では、検証データセットを使用して、音声ウェイクアップモデルをクロス検証し、訓練が収束するかどうかを判断することもできる。
【0053】
音声ウェイクアップモデルの性能及びロバスト性を向上させるため、この明細書の解決法では、より多くの対策がさらに提供される。
【0054】
対策の1つは、適応訓練である。具体的には、一般モデルは、いくつかの特定のキーワードの音声データを用いて、比較的低い学習レートで微調整することができる。この考慮に基づいて、音声ウェイクアップモデルが訓練される際は、キーワード特有の音声データを取得することもでき、音声ウェイクアップモデルは、キーワード特有の音声データを用いて訓練することができる。訓練で使用される学習レートは、一般的な音声データでの音声ウェイクアップモデルの訓練で使用されるものより少ない。
【0055】
別の対策は、転移学習である。具体的には、ネットワークパラメータは、無作為に初期化することはできないが、出力層の細粒単位を除いてターゲットネットワークと同じトポロジ構造を有する既存の対応するネットワークを参照することができ、交差エントロピー基準を使用することができる。転移学習は、訓練データが大きいスケールを有する際に特に考慮することができる。
【0056】
他の対策は、例えば、乗算を加速させるためにアーキテクチャ関連のベクトル命令(例えば、ARMのNEON)を使用することなどを含む。
【0057】
以前に言及されるように、この明細書の解決法は、ユーザが定義した音声ウェイクアップキーワードを容易にサポートすることができる。そのようなユーザが定義したキーワードに対応するターゲットラベルシーケンスは、辞書を通じて決定することができる。
【0058】
この明細書の実施形態において提供される音声ウェイクアップ方法は、前述で説明した通りである。本明細書の同じアイデアに基づいて、
図7に示されるように、この明細書の実施形態では、対応する装置がさらに提供される。
【0059】
図7は、この明細書の実施形態による、
図2に対応する音声ウェイクアップ装置の概略構造図である。破線ボックスは、オプションのモジュールを表す。装置は、
図2のフローの実行ボディ上に位置し得、入力モジュール701及び音声ウェイクアップモデル702を含む。
【0060】
音声データは、入力モジュール701によって、一般的な音声データを用いて訓練された音声ウェイクアップモデル702に入力され、音声ウェイクアップモデル702は、音声ウェイクアップを実行するかどうかを判断するための結果を出力し、音声ウェイクアップモデルは、DNN及びCTCを含む。
【0061】
任意選択により、一般的な音声データは、LVCSRコーパスを含む。
【0062】
任意選択により、装置は、訓練モジュール703をさらに含み、
訓練モジュール703によって、一般的な音声データを用いて音声ウェイクアップモデルを訓練することは、
訓練モジュール703によって、訓練が収束するまで非同期確率的勾配下降方法によって一般的な音声データを用いて音声ウェイクアップモデルのパラメータを反復最適化すること
を含む。
【0063】
任意選択により、訓練モジュール703は、キーワード特有の音声データをさらに取得し、
キーワード特有の音声データを用いて音声ウェイクアップモデルを訓練し、訓練で使用される学習レートは、一般的な音声データでの音声ウェイクアップモデルの訓練で使用されるものより少ない。
【0064】
任意選択により、訓練モジュール703は、訓練の検証データセットを用いて、音声ウェイクアップモデルをクロス検証し、訓練が収束するかどうかを判断する。
【0065】
任意選択により、音声ウェイクアップモデル702によって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することは、具体的には、
音声ウェイクアップモデル702によって、入力音声データから音響特徴を抽出することと、
各発音音素にそれぞれ対応する音響特徴のクラス確率を得るように処理するために、音声ウェイクアップモデル702に含まれるDNNに音響特徴を入力することと、
発音音素シーケンスに対応する音声ウェイクアップ用語の信頼スコアを得るように処理するために、音声ウェイクアップモデル702に含まれるCTCにクラス確率を入力することと、
信頼スコアに従ってウェイクアップを実行するかどうかを判断し、判断結果を出力することと
を含む。
【0066】
任意選択により、音声ウェイクアップモデル702によって、入力音声データから音響特徴を抽出することは、具体的には、
音声ウェイクアップモデル702によって、指定時間間隔に基づくウインドウで入力音声データの音響特徴フレームを抽出することであって、音響特徴フレームの各々が、多次元ログフィルタバンクエネルギーである、抽出することと、
複数の隣接する音響特徴フレームをそれぞれ積み重ねることと、
モニタされた音声から抽出された音響特徴として、積み重ねた音響特徴フレームをそれぞれ取り入れることと
を含む。
【0067】
本明細書の同じアイデアに基づいて、この明細書の実施形態では、対応する電子デバイスがさらに提供され、電子デバイスは、
少なくとも1つのプロセッサと、
少なくとも1つのプロセッサに通信可能に接続されたメモリと
を含み、
メモリは、少なくとも1つのプロセッサによって実行可能な命令を格納し、命令は、
一般的な音声データを用いて訓練された音声ウェイクアップモデルに音声データを入力することと、音声ウェイクアップモデルによって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することであって、音声ウェイクアップモデルが、DNN及びCTCを含む、出力することと
を少なくとも1つのプロセッサが行えるようにするために少なくとも1つのプロセッサによって実行される。
【0068】
本明細書の同じアイデアに基づいて、この明細書の実施形態では、コンピュータ実行可能命令が格納された対応する不揮発性のコンピュータ記憶媒体がさらに提供され、コンピュータ実行可能命令は、
一般的な音声データを用いて訓練された音声ウェイクアップモデルに音声データを入力することと、音声ウェイクアップモデルによって、音声ウェイクアップを実行するかどうかを判断するための結果を出力することであって、音声ウェイクアップモデルが、DNN及びCTCを含む、出力することと
を行うように構成される。
【0069】
前述では、この明細書の具体的な実施形態について説明してきた。他の実施形態は、添付の請求項の範囲内に収まる。いくつかの状況下では、請求項で説明される動作又はステップは、実施形態のものとは異なる順番で実行することができ、それでもなお、所望の結果を達成することができる。それに加えて、添付の図面で描写されるプロセスは、必ずしも示される特定の順番又は連続した順番に従って所望の結果を達成する必要があるわけではない。いくつかの実装方法では、マルチタスク処理や並列処理も可能であるか又は有利であり得る。
【0070】
本明細書の実施形態は、段階的に説明されており、実施形態の同一の又は同様の部分は、互いに参照し合って得ることができ、各実施形態は、他の実施形態とは異なる部分を重視する。特に、装置、電子デバイス及び不揮発性のコンピュータ記憶媒体の実施形態は、基本的には、方法の実施形態と同様であり、従って、簡単に説明している。関連部分に関しては、方法の実施形態の部分の説明を参照されたい。
【0071】
この明細書の実施形態において提供される装置、電子デバイス及び不揮発性のコンピュータ記憶媒体は、方法に対応する。従って、装置、電子デバイス及び不揮発性のコンピュータ記憶媒体もまた、対応する方法のものと同様の有益な技術効果を有する。方法の有益な技術効果については前述で詳細に説明してきたため、装置、電子デバイス及び不揮発性のコンピュータ記憶媒体の有益な技術効果は、ここで詳細に述べることはしない。
【0072】
1990年代には、技術の改善は、ハードウェア上の改善(例えば、ダイオード、トランジスタ、スイッチなどの回路構造上の改善)又はソフトウェア上の改善(方法手順上の改善)として明らかに区別することができた。しかし、技術の開発と共に、現在の多くの方法手順の改善は、ハードウェア回路構造上の直接的な改善と考えることができる。ほぼすべての設計者は、対応するハードウェア回路構造を得るために、改善された方法手順をハードウェア回路にプログラムする。従って、ハードウェアエンティティモジュールを使用することによって方法手順の改善を実装することはできないと想定することは不適切である。例えば、プログラマブルロジックデバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))は、そのような集積回路であり、その論理機能は、ユーザプログラミングデバイスによって決定される。設計者は、彼ら自身によって、チップ製造業者に専用集積回路チップを設計及び製造するように依頼することなく、デジタルシステムをPLDに「組み込む」ようにプログラムする。その上、現在は、プログラミングは、大抵は、集積回路チップを手作業で製造する代わりに、論理コンパイラソフトウェアを使用することによって実装される。論理コンパイラソフトウェアは、プログラムの開発及び記入を行うために使用されるソフトウェアコンパイラと同様であり、コンパイルの前のオリジナルのコードもまた、特定のプログラミング言語(ハードウェア記述言語(HDL)と呼ばれる)を使用することによって記入する必要があり、アドバンストブール演算式言語(ABEL)、Alteraハードウェア記述言語(AHDL)、Confluence、Cornell Universityプログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASM、Rubyハードウェア記述言語(RHDL)など、多くのタイプのHDLがあり、その中でも、今は、超高速集積回路ハードウェア記述言語(VHDL)及びVerilogが最も一般的に使用される。また、当業者は、論理方法手順を実装するためのハードウェア回路が、上記のいくつかのハードウェア記述言語を使用して方法手順をやや論理的にプログラムし、それを集積回路にプログラムすることによって、容易に得られることも知るべきである。
【0073】
コントローラは、任意の適切な方法で実装することができる。例えば、コントローラは、マイクロプロセッサ又はプロセッサや、マイクロプロセッサ又はプロセッサによって実行可能なコンピュータ可読プログラムコード(ソフトウェア若しくはファームウェアなど)を格納するコンピュータ可読媒体や、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ及び埋め込みマイクロコントローラの形態を採用することができる。コントローラの例は、これらに限定されないが、次のマイクロコントローラ、すなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20及びSilicone Labs C8051F320を含む。メモリのコントローラは、メモリの制御論理の一部としてさらに実装することができる。また、当業者は、純粋なコンピュータ可読プログラムコードを使用することによってコントローラを実装することに加えて、論理ゲート、スイッチ、ASIC、プログラマブルロジックコントローラ及び埋め込みマイクロコントローラの形態での同じ機能の実装をコントローラが行えるように、方法ステップを論理的にプログラムすることが完全に実現可能であることも知っている。従って、そのようなコントローラは、ハードウェアコンポーネントと考えることができ、コントローラに含まれて様々な機能を実装するように構成された装置もまた、ハードウェアコンポーネントの内部の構造と考えることができる。或いは、様々な機能を実装するように構成された装置は、方法を実装するように構成されたソフトウェアモジュールとハードウェアコンポーネントの内部の構造の両方と考えることさえもできる。
【0074】
前述の実施形態において示されるシステム、装置、モジュール又はユニットは、具体的には、コンピュータチップ又はエンティティによって実装することも、特定の機能を有する製品によって実装することもできる。典型的な実装デバイスはコンピュータである。具体的には、例えば、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、Eメールデバイス、ゲームコンソール、タブレットコンピュータ、着用可能デバイス又はこれらのデバイスの任意の組合せであり得る。
【0075】
説明し易くするため、装置は、機能に基づいて様々なユニットに分割され、ユニットは、別々に説明される。この明細書の実装形態では、様々なユニットの機能は、ソフトウェア及び/又はハードウェアの1つ又は複数の断片において実装することもできる。
【0076】
当業者は、この明細書の実施形態を方法、システム又はコンピュータプログラム製品として提供できることを理解すべきである。従って、この明細書の実施形態は、完全なハードウェア実施形態、完全なソフトウェア実施形態、又は、ソフトウェアとハードウェアを組み合わせた実施形態の形態で実装することができる。その上、この明細書の実施形態は、コンピュータ使用可能プログラムコードを含む1つ又は複数のコンピュータ使用可能記憶媒体(これらに限定されないが、磁気ディスクメモリ、CD−ROM、光メモリ及び同様のもの)上で実装されたコンピュータプログラム製品の形態であり得る。
【0077】
この明細書は、この明細書の実施形態による、方法、デバイス(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。コンピュータプログラム命令は、フローチャート及び/又はブロック図の各プロセス及び/又はブロック並びにフローチャート及び/又はブロック図のプロセス及び/又はブロックの組合せを実装するために使用できることを理解すべきである。コンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ又は別のプログラマブルデータ処理デバイスのプロセッサに提供することができ、その結果、コンピュータ又は別のプログラマブルデータ処理デバイスのプロセッサは、フローチャートの1つ若しくは複数のプロセス及び/又はブロック図の1つ若しくは複数のブロックにおいて指定された機能を実装するように構成された装置を生成するように命令を実行することができる。
【0078】
また、コンピュータプログラム命令は、特定の方法で動作するようにコンピュータ又は別のプログラマブルデータ処理デバイスを導くことができるコンピュータ可読メモリに格納することもでき、特定の方法は、コンピュータ可読メモリに格納された命令が命令装置を含む製造品を生成し、命令装置がフローチャートの1つ若しくは複数のプロセス及び/又はブロック図の1つ若しくは複数のブロックによって指定された機能を実装するようなものである。
【0079】
また、コンピュータプログラム命令は、コンピュータ又は別のプログラマブルデータ処理デバイスにロードすることもでき、その結果、一連の動作ステップは、コンピュータ実装処理を生成するためにコンピュータ又は別のプログラマブルデバイス上で実行され、従って、コンピュータ又は別のプログラマブルデバイスで実行された命令は、フローチャートの1つ若しくは複数のプロセス及び/又はブロック図の1つ若しくは複数のブロックにおいて指定された機能を実装するためのステップを提供する。
【0080】
典型的な構成では、コンピューティングデバイスは、1つ又は複数の中央処理装置(CPU)、入力/出力インタフェース、ネットワークインタフェース及びメモリを含む。
【0081】
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)及び/又は不揮発性メモリ(例えば、読み取り専用メモリ(ROM)若しくはフラッシュRAM)などのコンピュータ可読媒体を含み得る。メモリは、コンピュータ可読媒体の例である。
【0082】
コンピュータ可読媒体は、不揮発性又は揮発性媒体、及び、可動又は非可動媒体を含み、いかなる方法又は技術によっても情報格納を達成することができる。情報は、コンピュータ可読命令、データ構造及びプログラムのモジュール又は他のデータであり得る。コンピュータの記憶媒体の例は、これらに限定されないが、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAM、ROM、電気的消去型プログラム可能読み取り専用メモリ(EEPROM)、フラッシュメモリ若しくは他のメモリ技術、コンパクトディスク読み取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)若しくは他の光学記憶装置、カセットテープ、磁気テープ/磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、他の任意の非伝送媒体を含み、コンピューティングデバイスにアクセス可能な情報を格納するために使用することができる。このテキストの定義によれば、コンピュータ可読媒体は、変調データ信号及び搬送波などの一時的な媒体を含まない。
【0083】
さらに、「含む(include、comprise)」という用語又は他の任意のその変形例は、非排他的包含をカバーすることが意図され、その結果、一連の要素を含むプロセス、方法、商品又はデバイスは、その要素を含むだけではなく、明示的にリストされていない他の要素も含むか、或いは、プロセス、方法、商品又はデバイス固有の要素をさらに含むことに留意すべきである。さらなる制限なしでは、「(a/an)…を含む」によって定義される要素は、さらなる要素を含むプロセス、方法、商品又はデバイスが他の同一の要素を有することを除外しない。
【0084】
この明細書は、コンピュータによって実行されるコンピュータ実行可能命令(例えば、プログラムモジュール)の一般的な文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装するために使用されるルーチン、プログラム、オブジェクト、アセンブリ、データ構造及び同様のものを含む。また、この明細書は、分散型コンピューティング環境において実装することもできる。これらの分散型コンピューティング環境では、タスクは、通信ネットワークを介して接続されたリモート処理デバイスを使用することによって実行される。分散型コンピューティング環境では、プログラムモジュールは、記憶装置を含むローカル及びリモートコンピュータ記憶媒体に位置し得る。
【0085】
本明細書の実施形態は、段階的に説明されており、実施形態の同一の又は同様の部分は、互いに参照し合って得ることができ、各実施形態は、他の実施形態とは異なる部分を重視する。特に、システムの実施形態は、基本的には、方法の実施形態と同様であり、従って、簡単に説明している。関連部分に関しては、方法の実施形態の部分の説明を参照されたい。
【0086】
前述の説明は、この明細書の単なる実施形態であり、この出願を制限するために使用されない。当業者にとって、この出願は、様々な変形及び変化を有し得る。この出願の精神及び原理から逸脱することなく行われたいかなる変更、同様の置換、改善及び同様のものは、この出願の請求項の範囲に含まれるべきである。