IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 三星電子株式会社の特許一覧

特許7143091音響モデルをトレーニングする方法及び装置
<>
  • 特許-音響モデルをトレーニングする方法及び装置 図1
  • 特許-音響モデルをトレーニングする方法及び装置 図2
  • 特許-音響モデルをトレーニングする方法及び装置 図3
  • 特許-音響モデルをトレーニングする方法及び装置 図4
  • 特許-音響モデルをトレーニングする方法及び装置 図5
  • 特許-音響モデルをトレーニングする方法及び装置 図6
  • 特許-音響モデルをトレーニングする方法及び装置 図7
  • 特許-音響モデルをトレーニングする方法及び装置 図8
  • 特許-音響モデルをトレーニングする方法及び装置 図9
  • 特許-音響モデルをトレーニングする方法及び装置 図10
  • 特許-音響モデルをトレーニングする方法及び装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-16
(45)【発行日】2022-09-28
(54)【発明の名称】音響モデルをトレーニングする方法及び装置
(51)【国際特許分類】
   G10L 15/06 20130101AFI20220920BHJP
   G10L 15/16 20060101ALI20220920BHJP
【FI】
G10L15/06 300Z
G10L15/16
【請求項の数】 20
(21)【出願番号】P 2018042974
(22)【出願日】2018-03-09
(65)【公開番号】P2018159917
(43)【公開日】2018-10-11
【審査請求日】2021-01-04
(31)【優先権主張番号】10-2017-0036644
(32)【優先日】2017-03-23
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2017-0108060
(32)【優先日】2017-08-25
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】宋 仁 哲
(72)【発明者】
【氏名】柳 尚 賢
【審査官】山下 剛史
(56)【参考文献】
【文献】特開2016-212273(JP,A)
【文献】特開2017-27044(JP,A)
【文献】Kai CHEN, et al.,Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach,ACM TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING,IEEE,2016年07月,Vol.24, No.7,pp.1185-1193
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34,25/30
(57)【特許請求の範囲】
【請求項1】
音響モデルトレーニング方法であって、
音声シーケンスに基づいてウィンドウレベルの入力データを構成するステップと、
前記ウィンドウレベルの入力データを音響モデルに入力するステップと、
前記音響モデルの出力に基づいてシーケンスレベルのエラーを算出するステップと、
前記シーケンスレベルのエラーに基づいて前記ウィンドウレベルのエラーを取得するステップと、
前記ウィンドウレベルのエラーを用いて前記音響モデルを更新するステップと、
を含み、前記シーケンスレベルのエラーを算出するステップは、
前記音響モデルの出力に基づいて前記シーケンスレベルの音響スコアを取得するステップと、
前記シーケンスレベルの音響スコアと前記音声シーケンスに関する参照文章に基づいて前記シーケンスレベルのエラーを算出するステップと、
を含み、前記シーケンスレベルの音響スコアを取得するステップは、
前記音響モデルの出力に基づいて前記ウィンドウレベルの音響スコアを取得するステップと、
前記音響スコアでパディングデータに対応する部分を除去して対象データに対応する音響スコアを取得するステップと、
前記対象データに対応する音響スコアを連結して前記シーケンスレベルの音響スコアを取得するステップと、
を含む、音響モデルトレーニング方法。
【請求項2】
前記ウィンドウレベルの入力データを構成するステップは、
前記音声シーケンスで予め決定されたサイズのウィンドウに対応する対象データ及び前記対象データ周辺のパディングデータを抽出するステップと、
前記対象データ及び前記パディングデータに基づいて前記ウィンドウレベルの入力データを構成するステップと、
を含む、請求項1に記載の音響モデルトレーニング方法。
【請求項3】
前記パディングデータは、前記音声シーケンスで前記対象データの以前時間に位置する第1パディングデータ、及び前記音声シーケンスで前記対象データの以後時間に位置する第2パディングデータのうち少なくとも1つを含む、請求項2に記載の音響モデルトレーニング方法。
【請求項4】
前記参照文章は、前記音声シーケンスに関する正解文章及び前記音声シーケンスに関する誤答文章のうち少なくとも1つを含む、請求項に記載の音響モデルトレーニング方法。
【請求項5】
前記音響モデルは、前記ウィンドウレベルのエラーが減少する方向に更新される、請求項1ないしのうち何れか一項に記載の音響モデルトレーニング方法。
【請求項6】
前記音響モデルを更新するステップは、
前記ウィンドウレベルのエラー及びパディングデータに基づいて更新データを構成するステップと、
前記更新データを用いて前記音響モデルを更新するステップと、
を含む、請求項1に記載の音響モデルトレーニング方法。
【請求項7】
前記パディングデータは、0又は前記ウィンドウレベルのエラーに対応するウィンドウに隣接するウィンドウのエラーを含む、請求項に記載の音響モデルトレーニング方法。
【請求項8】
前記パディングデータのサイズは、前記入力データに含まれたパディングデータのサイズに対応する、請求項に記載の音響モデルトレーニング方法。
【請求項9】
前記音響モデルは循環ディープニューラルネットワークを含み、
前記循環ディープニューラルネットワークが広げられた(unfolded)長さは前記入力データの長さに対応する、請求項1ないしのうち何れか一項に記載の音響モデルトレーニング方法。
【請求項10】
前記ウィンドウレベルのエラーを取得するステップは、前記シーケンスレベルのエラーを分割して前記ウィンドウレベルのエラーを取得するステップを含む、請求項1に記載の音響モデルトレーニング方法。
【請求項11】
請求項1ないし請求項10のいずれか一項に記載の音響モデルトレーニング方法を、音響モデルトレーニング装置のコンピュータに実行させるコンピュータプログラム。
【請求項12】
少なくとも1つのプロセッサと、
前記プロセッサで読み出し可能な命令語を含むメモリと、
を含む音響モデルトレーニング装置であって、
前記命令語が前記プロセッサで実行されると、前記プロセッサは、音声シーケンスに基づいてウィンドウレベルの入力データを構成し、前記ウィンドウレベルの入力データを音響モデルに入力し、前記音響モデルの出力に基づいてシーケンスレベルのエラーを算出し、前記シーケンスレベルのエラーに基づいて前記ウィンドウレベルのエラーを取得し、前記ウィンドウレベルのエラーを用いて前記音響モデルを更新し、
前記プロセッサは、前記シーケンスレベルのエラーを算出する場合に、前記音響モデルの出力に基づいて前記シーケンスレベルの音響スコアを取得し、前記シーケンスレベルの音響スコアと前記音声シーケンスに関する参照文章に基づいて前記シーケンスレベルのエラーを算出し、
前記プロセッサは、前記シーケンスレベルの音響スコアを取得する場合に、前記音響モデルの出力に基づいて前記ウィンドウレベルの音響スコアを取得し、前記音響スコアでパディングデータに対応する部分を除去して対象データに対応する音響スコアを取得し、前記対象データに対応する音響スコアを連結して前記シーケンスレベルの音響スコアを取得する、音響モデルトレーニング装置。
【請求項13】
前記プロセッサは、前記音声シーケンスで予め決定されたサイズのウィンドウに対応する対象データ及び前記対象データ周辺のパディングデータを抽出し、前記対象データ及び前記パディングデータに基づいて前記ウィンドウレベルの入力データを構成する、請求項12に記載の音響モデルトレーニング装置。
【請求項14】
前記パディングデータは、前記音声シーケンスで前記対象データの以前時間に位置する第1パディングデータ及び前記音声シーケンスで前記対象データの以後時間に位置する第2パディングデータのうち少なくとも1つを含む、請求項13に記載の音響モデルトレーニング装置。
【請求項15】
前記参照文章は、前記音声シーケンスに関する正解文章及び前記音声シーケンスに関する誤答文章のうち少なくとも1つを含む、請求項12に記載の音響モデルトレーニング装置。
【請求項16】
前記音響モデルは、前記ウィンドウレベルのエラーが減少する方向に更新される、請求項12ないし15のうち何れか一項に記載の音響モデルトレーニング装置。
【請求項17】
前記プロセッサは、前記ウィンドウレベルのエラー及びパディングデータに基づいて更新データを構成し、前記更新データを用いて前記音響モデルを更新する、請求項12に記載の音響モデルトレーニング装置。
【請求項18】
前記パディングデータは、0又は前記ウィンドウレベルのエラーに対応するウィンドウに隣接するウィンドウのエラーを含む、請求項17に記載の音響モデルトレーニング装置。
【請求項19】
前記パディングデータのサイズは、前記入力データに含まれたパディングデータのサイズに対応する、請求項17に記載の音響モデルトレーニング装置。
【請求項20】
前記音響モデルは循環ディープニューラルネットワークを含み、
前記循環ディープニューラルネットワークが広げられた長さは、前記入力データの長さに対応する、請求項12ないし19のうち何れか一項に記載の音響モデルトレーニング装置。
【発明の詳細な説明】
【技術分野】
【0001】
下記の実施形態は、音響モデルをトレーニングする方法及び装置等に関する。
【背景技術】
【0002】
近年、入力パターンを特定グループに分類する問題を解決するために、人が有している効率的なパターン認識方法を実際のコンピュータに適用しようとする研究が盛んに行われている。このような研究の1つとして、人の生物学的な神経細胞の特性を数学的な表現によってモデリングした人工ニューラルネットワークに対する研究が行われている。入力パターンを特定グループに分類する問題を解決するために、人工ニューラルネットワークは、人が有している学習能力を模倣したアルゴリズムを用いる。このアルゴリズムを用いて人工ニューラルネットワークは、入力パターンと出力パターンとの間のマッピングを生成することができるので、人工ニューラルネットワークは学習能力があると言える。また、人工ニューラルネットワークは、学習された結果に基づいて学習に利用されていない入力パターンに対して比較的に正しい出力を生成できる一般化能力を有している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、音響モデルをトレーニングする方法及びその装置を提供することにある。
【課題を解決するための手段】
【0004】
一実施形態によると、音響モデルトレーニング方法は、音声シーケンスに基づいてウィンドウレベルの入力データを構成するステップと、前記ウィンドウレベルの入力データを音響モデルに入力するステップと、前記音響モデルの出力に基づいてシーケンスレベルのエラーを算出するステップと、前記シーケンスレベルのエラーに基づいて前記ウィンドウレベルのエラーを取得するステップと、前記ウィンドウレベルのエラーを用いて前記音響モデルを更新するステップとを含む。
【0005】
前記ウィンドウレベルの入力データを構成するステップは、前記音声シーケンスで予め決定されたサイズのウィンドウに対応する対象データ及び前記対象データ周辺のパディングデータを抽出するステップと、前記対象データ及び前記パディングデータに基づいて前記ウィンドウレベルの入力データを構成するステップとを含み得る。前記パディングデータは、前記音声シーケンスで前記対象データの以前時間に位置する第1パディングデータ、及び前記音声シーケンスで前記対象データの以後時間に位置する第2パディングデータのうち少なくとも1つを含み得る。
【0006】
前記シーケンスレベルのエラーを算出するステップは、前記音響モデルの出力に基づいて前記シーケンスレベルの音響スコアを取得するステップと、前記シーケンスレベルの音響スコアと前記音声シーケンスに関する参照文章に基づいて前記シーケンスレベルのエラーを算出するステップとを含み得る。
【0007】
前記シーケンスレベルの音響スコアを取得するステップは、前記音響モデルの出力に基づいて前記ウィンドウレベルの音響スコアを取得するステップと、前記音響スコアでパディングデータに対応する部分を除去して対象データに対応する音響スコアを取得するステップと、前記対象データに対応する音響スコアを連結して前記シーケンスレベルの音響スコアを取得するステップとを含み得る。前記参照文章は、前記音声シーケンスに関する正解文章及び前記音声シーケンスに関する誤答文章のうち少なくとも1つを含み得る。
【0008】
前記音響モデルは、前記ウィンドウレベルのエラーが減少する方向に更新され得る。前記音響モデルを更新するステップは、前記ウィンドウレベルのエラー及びパディングデータに基づいて更新データを構成するステップと、前記更新データを用いて前記音響モデルを更新するステップとを含み得る。前記パディングデータは、0又は前記ウィンドウレベルのエラーに対応するウィンドウに隣接するウィンドウのエラーを含み得る。
【0009】
前記パディングデータのサイズは、前記入力データに含まれたパディングデータのサイズに対応し得る。前記音響モデルは循環ディープニューラルネットワークを含み、前記循環ディープニューラルネットワークが広げられた(unfolded)長さは前記入力データの長さに対応し得る。
【0010】
前記ウィンドウレベルのエラーを取得するステップは、前記シーケンスレベルのエラーを分割して前記ウィンドウレベルのエラーを取得するステップを含み得る。
【0011】
一実施形態によると、音響モデルトレーニング装置は、少なくとも1つのプロセッサと、前記プロセッサで読み出し可能な命令語を含むメモリとを含み、前記命令語が前記プロセッサで実行されると、前記プロセッサは、音声シーケンスに基づいてウィンドウレベルの入力データを構成し、前記ウィンドウレベルの入力データを音響モデルに入力し、前記音響モデルの出力に基づいてシーケンスレベルのエラーを算出し、前記シーケンスレベルのエラーに基づいて前記ウィンドウレベルのエラーを取得し、前記ウィンドウレベルのエラーを用いて前記音響モデルを更新する。
【発明の効果】
【0012】
本発明によると、音響モデルをトレーニングする方法及びその装置を提供することができる。
【図面の簡単な説明】
【0013】
図1】一実施形態に係るトレーニング装置を示す図である。
図2】一実施形態に係る循環モデルの概念を説明する図である。
図3】一実施形態に係るBRDNNの一部ノードを示す図である。
図4】一実施形態に係るBRDNNを示す図である。
図5】一実施形態に係る入力データの構成過程及び音響スコアの出力過程を示す図である。
図6】一実施形態に係るシーケンスレベルの音響スコアを示す図である。
図7】一実施形態に係るシーケンスレベルのエラーを算出する過程を示す図である。
図8】一実施形態に係る音響モデルの更新過程を示す図である。
図9】一実施形態に係る認識装置を示すブロック図である。
図10】一実施形態に係るトレーニング装置を示すブロック図である。
図11】一実施形態に係るトレーニング方法を示した動作フローチャートである。
【発明を実施するための形態】
【0014】
本明細書に開示されている本発明の概念による実施形態に対して特定の構造的又は機能的な説明は、単に本発明の概念による実施形態を説明するための目的として例示されたものであり、本発明の概念による実施形態は様々な形態で実施され、本明細書に説明された実施形態に限定されることはない。
【0015】
第1又は第2などの用語を複数の構成要素を説明するために用いることができるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
【0016】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0017】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0018】
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同一の参照符号は同一の部材を示す。
【0019】
図1は、一実施形態に係るトレーニング装置を示す図である。図1を参照すると、トレーニング装置100は、音響モデル110をトレーニングさせ得る。音響モデル110は音声認識エンジンのためのものであり、音声認識エンジンは、音響モデル及びデコーダを含む。音響モデルは、入力された音声信号の各フレームがどのような発音に近いかに関する情報を提供する。デコーダは、音響モデルが提供する情報に基づいて、入力された音声がどのような単語に近いか、又はどのような文章に近いかを算出する。
【0020】
音響モデル110は、ディープニューラルネットワーク(deep neural network:DNN)によって実現され得る。この場合、トレーニング装置100は、トレーニングデータに基づいて音響モデル110をトレーニングさせる。トレーニングデータは、トレーニング入力及びトレーニング出力を含む。トレーニング入力は、音響モデル110に入力される入力データであって、例えば、音声信号を含む。トレーニング出力は、トレーニング入力にマッピングされたデータであって、例えば、トレーニング入力が音響モデル110に入力されることにより音響モデル110から出力されなければならないラベル(label)であり得る。例えば、トレーニング入力が音声信号である場合、トレーニング出力は音声信号に対応する文章の発音確率であり得る。
【0021】
トレーニング装置100は、トレーニング入力からトレーニング出力が算出されるよう音響モデル110をトレーニングさせる。以下で音響モデル110をトレーニングさせることは、音響モデル110のパラメータをトレーニングさせること、音響モデル110を更新すること、又は音響モデル110のパラメータを更新することを含む。
【0022】
実施形態によって、音響モデル110は、循環ディープニューラルネットワーク(recurrent deep neural network:RDNN)、又は双方向循環ディープニューラルネットワーク(bidirectional recurrent deep neural network:BRDNN)によって実現される。RDNN及びBRDNNは、音声のように時間の流れに依存する連続的なデータを認識するために適切な構造を有する。例えば、RDNNは、現在フレームを認識することにおいて以前フレームを考慮し、BRDNNは、現在フレームを認識することにおいて以前フレームと次のフレームを考慮する。RDNN及びBRDNNに関する具体的な内容は後述することにする。
【0023】
音響モデル110は、フレームレベル、又はシーケンスレベルでトレーニングされる。フレームレベルのトレーニングは各フレームに正解発音を与え、音響モデル110が正解発音に高いスコアを付与するよう音響モデル110はトレーニングされる。シーケンスレベルのトレーニングは、復号化の後の正解文章に高いスコアが付与され、誤答文章には低いスコアが付与されるよう音響モデルはトレーニングされる。
【0024】
フレームレベルのトレーニング及びシーケンスレベルのトレーニングにおいて、音響モデル110がフレームごとに音響スコアを付与する点は同一であるが、音響モデル110が、フレームレベルのトレーニングではフレームごとの発音を重点的にトレーニングし、シーケンスレベルのトレーニングでは文章の正確度を重点的にトレーニングする点が異なる。音響モデル110は、シーケンスレベルにトレーニングされた後、続いてシーケンスレベルにトレーニングされる。
【0025】
トレーニング装置100は、音声シーケンス130を加工して入力データ120を構成し、入力データ120に基づいてシーケンスレベルのエラーを算出して音響モデル110をトレーニングさせ得る。音声シーケンス130は複数のフレームを含む。音声シーケンス130に含まれた複数のフレームは、音声信号から抽出された特徴ベクトルに対応する。例えば、トレーニング装置100は、音声信号から特徴を抽出して音声シーケンス130を生成する。音声信号から抽出された特徴ベクトルは、音声シーケンス130のフレームに対応する。音声信号は、ユーザからマイクを用いて受信されたり、遠隔位置から受信されたり、又は格納サーバから収集される。音声信号は、格納量、送信媒体の速度などに基づいて全体信号が一回に受信されても良いし、又はフレームごとに受信されてもよい。
【0026】
音声として提供される文章全体を考慮するBRDNNの音響モデル110の場合、現在フレーム、以前フレーム、及び次のフレームを含んでいる全体フレームと共に考慮して音響スコアを算出する。しかし、文章全体を考慮して音響モデル110を学習させることは、ユーザの音声が入力される間に認識結果が出力されなければならないリアルタイム音声認識に適しないこともある。トレーニング過程及び認識過程がマッチングされないことによって認識性能が低下するからである。具体的に、トレーニング過程で文章全体として音響モデル110がトレーニングされ、認識過程で文章の一部のみけが音響モデル110に提供される場合、音響モデル110は文章の一部を正確に認識できない場合がある。以下で説明する実施形態は、入力データ120によって音響モデル110をトレーニングさせることで、音響モデル120のリアルタイム音声認識の性能を向上させ得る。
【0027】
トレーニング装置100は、音声シーケンス130で予め決定されたサイズのウィンドウに対応する対象データを抽出する。ウィンドウのサイズは、リアルタイム認識過程から入力される音声の長さに対応する。トレーニング装置100は、対象データに基づいて入力データ120を構成する。以下で詳細に説明するが、トレーニング装置100は、ウィンドウ単位で音響モデル110を学習させることで認識過程と実質的に同じ環境で音響モデル110が学習され得る。
【0028】
ここで、ウィンドウ単位で音響モデル110を学習させる場合は、シーケンス単位で音響モデル110を学習させる場合に比べて学習に用いられる情報の量が減少する。トレーニング装置100は、音声シーケンス130から対象データのみならず対象データ周辺のパディングデータを抽出し、対象データ及びパディングデータに基づいて入力データ120を構成する。この場合、音響モデル110は、パディングデータによって対象データ周辺の情報を把握できるため、音響モデル110に提供される情報量の減少が補完される。
【0029】
入力データ120のサイズはウィンドウサイズに基づいて調整されるため、入力データ120はウィンドウレベルの入力データ120と称される。同様に、ウィンドウレベルの入力データ120に対応する音響モデル110の出力は、ウィンドウレベルの音響スコアと称される。以下で説明するが、ウィンドウレベルの音響スコアが併合されて音声シーケンス130に対応する長さを有する場合、シーケンスレベルの音響スコアと称される。また、シーケンスレベルの音響スコアに基づいて算出されたエラーはシーケンスレベルのエラーと称され、シーケンスレベルのエラーがウィンドウサイズに適するよう分割されたものはウィンドウレベルのエラーと称される。また、ウィンドウレベルは、フレームレベルと称される。
【0030】
トレーニング装置100は、入力データ120に対応して出力された音響スコアを併合してシーケンスレベルのトレーニングを行う。例えば、トレーニング装置100は、ウィンドウレベルの入力データ120を音響モデル110に入力する。音響モデル110は、ウィンドウレベルの音響スコアを出力する。トレーニング装置100は、音響モデル110から出力されたウィンドウレベルの音響スコアを併合してシーケンスレベルの音響スコアを取得する。トレーニング装置100は、シーケンスレベルの音響スコアと音声シーケンス130のレベルとを比較してシーケンスレベルのエラーを算出する。トレーニング装置100は、シーケンスレベルのエラーをウィンドウレベルのエラーに分割した後、ウィンドウレベルのエラーを用いて音響モデル110を更新する。
【0031】
音響モデル110を更新するために用いられるウィンドウレベルのエラーは、シーケンスレベルで算出されたものであるため、トレーニング装置100は、シーケンスレベルのトレーニングが有する長所を保持しながらも、リアルタイム音声認識に適するように音響モデル110をトレーニングさせることができる。
【0032】
以下では、RDNN及びBRDNNに関する実施形態を説明した後、トレーニング装置100に関する実施形態を説明する。
【0033】
図2は、一実施形態に係る循環モデルの概念を説明する図である。DNNはシナプスに連結される数多くの人工ニューロンを用いて生物学的なシステムの算出能力を模倣するソフトウェアやハードウェアで具現された認識モデルである。上述したように、実施形態に係る音響モデルは、循環モデル200を含むRDNN又はBRDNNに実現され得る。
【0034】
循環モデル200は、回帰ループを有する。循環モデル200の出力が循環モデル200に再び入力されることで入力Xから新しい出力Oが出力される。例えば、循環モデル200はノード210を含み、ノード210の出力がノード210に再び入力される。
【0035】
以下でノード210に関する値を指示するパラメータは、状態パラメータであるとする。例えば、状態パラメータは、ノード210の出力値などを含む。状態パラメータは、ノードパラメータと言及されても良い。
【0036】
例えば、循環モデル200は、LSTM(Long Short Term Memory)ニューラルネットワークで構成する。LSTMニューラルネットワークで、ノード210は複数のゲートを含む。LSTMニューラルネットワークで、ノード210の状態パラメータはノード210の出力値及びノード210のセル状態値などを含む。ノード210の出力値及びノード210のセル状態値などは、ノード210のゲートに基づいて制御される。ただし、LSTMニューラルネットワークは1つの例示であり、循環モデル200の構造を限定するためのものではない。
【0037】
入力Xはt時点に循環モデル200から入力されるフレームデータを示し、出力Oはt時点に循環モデル200から出力されるフレームデータを示す。t時点はタイムスタンプtを示す。フレームデータは、シーケンスデータが一定の長さ(例えば、フレーム単位)でサンプリングされたデータを示す。フレーム単位は、設計に応じて相違に設定されてもよい。例えば、シーケンスデータは音声シーケンスに対応してもよく、フレームデータは音声シーケンスに含まれた各フレームに対応してもよい。
【0038】
図3は、一実施形態に係るBRDNNの一部ノードを示す図である。図3を参照すると、BRDNN300は、循環連結(recurrent connection)がウィンドウの長さだけ広げられた(unfolded)形態に表現される。例えば、BRDNN300が広げられた長さは入力データの長さに対応する。RDNNとBRDNNの差はバックワードノード及びバックワードパスにあるため、以下でバックワードノード及びバックワードパスを除いた残りの内容はRDNNにも適用される。
【0039】
BRDNNのノードは、フォワードノード311、321、331及びバックワードノード312、322、332に分類される。それぞれのフォワードノード311、321、331はいずれか1つのフレームに対応し、各バックワードノード312、322、332もいずれか1つのフレームに対応する。各フレームは、1つのフォワードノード及び1つのバックワードノードに対応する。例えば、t番目のフレームは、第1フォワードノード311及び第1バックワードノード312に対応し、t+1番目のフレームは第2フォワードノード321及び第2バックワードノード322に対応する。ただし、これに限定されることなく、1つのフレームに複数のフォワードノード及び複数のバックワードノードが対応してもよい。
【0040】
フォワードノード311、321、331は、フォワードパス391を形成している循環接続によって他のフォワードノードに接続される。バックワードノード312、322、332は、バックワードパス392を形成している循環接続によって他のバックワードノードに接続される。例えば、フォワードパス391は、次のフレームのフォワードノードに状態パラメータを数式に基づいてアップデートして伝達する接続を示し、バックワードパス392は、以前フレームのバックワードノードに状態パラメータを数式に基づいてアップデートして伝達する接続を示す。フォワードノードのアップデート経路及びバックワードノードのアップデート経路は互いに独立的に分離され得る。
【0041】
図3に示す実施形態は、ウィンドウの長さが3つのフレームである場合を示す。トレーニング装置は、t時点のフレームデータXをt時点のフレームに対応する第1フォワードノード311及び第1バックワードノード312に入力する。トレーニング装置は、t時点に対応するフレームの第1フォワードノード311からt+1時点に対応するフレームの第2フォワードノード321にt時点における状態パラメータをフォワードパス391を介して伝播(propagate)する。また、トレーニング装置は、t+1時点に対応するフレームの第2バックワードノード322からt時点に対応するフレームの第1バックワードノード312にt+1時点における状態パラメータをバックワードパス392を介して伝播する。トレーニング装置は、フォワードパス391及びバックワードパス392を介してアップデートされたノード(例えば、第1フォワードノード311、第1バックワードノード312)の状態パラメータを用いてt番目のフレームに対応する出力Oを入力Xから算出する。
【0042】
図3では、ウィンドウ長を3つのフレームにして説明し、明確な説明のためにBRDNNの要素のうち一部のノードのみを示しているが、これに限定されることはない。
【0043】
図4は、一実施形態に係るBRDNNを示す図である。BRDNN400は、入力レイヤ、隠しレイヤ、及び出力レイヤを含む。隠しレイヤは、複数のノードを隠しノードとして含む。BRDNN400がLSTMニューラルネットワークである場合、BRDNN400のノードそれぞれはメモリセルユニットを含み、メモリセルユニットは少なくとも1つの時間ゲートを含む。
【0044】
入力レイヤは、トレーニング又は認識を行うための入力データを受信して隠しレイヤに伝達し、出力レイヤは、隠しレイヤのノードから受信した信号に基づいて音響スコアを出力する。隠しレイヤは、入力レイヤと出力レイヤとの間に位置し、入力レイヤを介して伝達されたトレーニングデータ又は認識の対象となるデータを予測しやすい値に変化させ得る。
【0045】
入力レイヤと隠しレイヤに含まれたノードは、接続加重値を有するシナプスによって接続され、隠しレイヤと出力レイヤに含まれたノードでも接続加重値を有するシナプスによって接続され得る。入力レイヤ、隠しレイヤ、及び出力レイヤは複数のノードを含む。
【0046】
図4における各入力レイヤ及び出力レイヤは1つのノードを含み、各隠しレイヤは2つのノードを含むものと示しているが、これは説明の便宜のために簡略化したものであり、設計に応じて各レイヤに含まれるノード及びノードの個数は変更され得る。
【0047】
ニューラルネットワークは複数の隠しレイヤを含む。複数の隠しレイヤを含むニューラルネットワークはDNNと称され、DNNを学習させることをディープランニングと称する。隠しレイヤに含まれたノードは隠しノードと称される。以前時間区間における隠しノードの状態パラメータ(例えば、出力値)は、現在時間区間(例えば、現在フレーム)における隠しノードに接続される。そして、現在時間区間における隠しノードの状態パラメータは、次の時間区間における隠しノードに接続される。
【0048】
このように、互いに異なる時間区間で隠しノード間に循環的な接続のあるニューラルネットワークは、循環ニューラルネットワークと称される。また、複数の隠しレイヤを含んでいる循環ニューラルネットワークはRDNNと称され、RDNNに双方向の循環的な接続があれば、BRDNNと称される。BRDNN400でフォワードノードはフォワードノードに対して、そして、バックワードノードはバックワードノードに対して循環的な接続を生成する。
【0049】
図4は、ウィンドウ長が3つのフレームである場合のBRDNN400を広げた状態を表現したものである。入力データの最初フレーム410、中間フレーム420、及び最後フレーム430に対してBRDNN400が入力レイヤ411、421、431、隠しレイヤ412、422、432、及び出力レイヤ413、423、433を含むものと簡略に示したが、これに限定されることはない。例えば、BRDNN400は、入力データそれぞれのフレームに対して複数の隠しレイヤを含んでもよい。
【0050】
BRDNN400の各レイヤは(例えば、レイヤ間の遅延がない)現在時間に対応するタイムスタンプtを受信する。タイムスタンプtは位相信号に当該する。位相信号は、同じ時点に対してアップデートされる全てのレイヤに印加される。
【0051】
例えば、t時点に対してアップデートされるレイヤは、最初フレーム410では入力レイヤ411、隠しレイヤ412、及び出力レイヤ413である。t+1時点に対してアップデートされるレイヤは、中間フレーム420では入力レイヤ421、隠しレイヤ422、及び出力レイヤ423である。t+2時点に対してアップデートされるレイヤは、最後フレーム430では入力レイヤ431、隠しレイヤ432、及び出力レイヤ433である。
【0052】
BRDNN400に対する入力データは、連続的な音声信号からサンプリングされる。BRDNN400に対する入力データは、均一かつ同期的にサンプリングされてもよく、不均一かつ非同期的にサンプリングされてもよい。
【0053】
BRDNN400の各フレームに対応する隠しレイヤは、次のフレームの同じレベルの隠しレイヤに対してフォワードパス491を形成する。例えば、循環ニューラルネットワークでウィンドウ200内の最初フレームに対応する隠しレイヤ412のi番目のフォワードノードは、次のフレームに対応する隠しレイヤ422のi番目のフォワードノードに対してフォワードパス491を形成する。ここで、iは1以上の整数である。
【0054】
また、BRDNN400の各フレームの隠しレイヤは、以前フレームの同じレベルの隠しレイヤに対してバックワードパス492を形成する。例えば、BRDNN400で、中間フレームに対応する隠しレイヤ422のj番目のバックワードノードは、以前フレームに対応する隠しレイヤ412のj番目のバックワードノードに対してバックワードパス492を形成する。ここで、jは1以上の整数である。ここで、ノードは、フォワードパス491を介してのみ接続されるフォワードノード及びバックワードパス492を介してのみ接続されるバックワードノードに分類される。
【0055】
図5は、一実施形態に係る入力データの構成過程及び音響スコアの出力過程を示す図である。図5を参照すると、トレーニング装置は、音声信号510を音声シーケンス520に変換し、音声シーケンス520に基づいてウィンドウレベルの入力データ530を構成する。
【0056】
音声シーケンス520は、N個のフレームを含む。音声シーケンス520は、W個のフレームを含む重ならない連続したウィンドウに分割される。例えば、最初のウィンドウは最初のフレームからW番目のフレームまでを含んでもよい。2番目のウィンドウはW+1番目のフレームから2W番目のフレームまでを含んでもよい。したがって、i番目のウィンドウは((i-1)*W+1)番目のフレームから((i-1)*W+W)番目のフレームまでを含む。例えば、図5に示す実施形態でWは4である。
【0057】
音響モデル540は、特定フレームの音響スコアを算出するとき特定のフレーム周辺のフレームを考慮する。ウィンドウの終了に近接するフレームの場合、左側又は右側にフレームが足りないため、当該のウィンドウに関する音響スコアが不正確に算出されることがある。ウィンドウの終了に近接するフレームに関する音響スコアの正確度は、パッディングフレームによって向上できる。
【0058】
トレーニング装置は、対象データ及びパディングデータでウィンドウレベルの入力データ530を構成する。対象データはウィンドウに含まれたフレームを意味し、パディングデータは対象データの周辺に追加されたフレームを意味する。パディングデータは、音声シーケンス520で対象データの以前時間に位置する第1パディングデータ、音声シーケンス520で対象データの以後時間に位置する第2パディングデータ、又は、これらの組合せを含む。例えば、ウィンドウレベルの入力データ535は、第1パディングデータ536、対象データ537及び第2パディングデータ538を含む。便宜上、第1パディングデータ536は左側パディングデータと称され、第2パディングデータ537は右側パディングデータと称される。
【0059】
左側パディングデータに含まれたフレームの数をLP、右側パディングデータに含まれたフレームの数をRPであると定義する。この場合、ウィンドウレベルの入力データ530は、LP+W+RPのサイズを有する。最初の入力データでLPは0であってもよく、最後の入力データでRPは0からWの間の値を有する。必要に応じて、LPとRPは入力データごとに調整される。例えば、ユーザに認識結果を迅速に提供するため、最初の入力データのLPは、その他の入力データのLPに比べて小さく調整される。
【0060】
トレーニング装置は、ウィンドウレベルの入力データ530を音響モデル540に入力する。音響モデル540は、ウィンドウレベルの入力データ530の入力に反応して音響スコアを出力する。例えば、音響モデル540は、ウィンドウレベルの入力データ535の入力によって音響スコア550を出力する。音響モデル540には、ウィンドウレベルの入力データ530に含まれたフレームが時間順に応じて順次入力され、音響モデル540は、入力されたフレームに対応する音響スコア550を出力する。例えば、音響スコア550の列iはウィンドウレベルの入力データ535に含まれたフレームの数に対応する。音響スコア550の行jは発音ごとのスコアを示す。例えば、音響スコア550の行jは「a」に該当するスコア、「e」に該当するスコア、「i」に該当するスコア、「o」に該当するスコア、及び「u」に該当するスコアを示す。
【0061】
音響スコア550に含まれる発音は、様々な基準により決定され得る。例えば、発音は音素に基づいて決定されても良いし、トライフォン(triphone)に基づいて決定される。トライフォンは、基準音素の前で基準音素の発音に影響を与える要素、及び基準音素の後で基準音素の発音に影響を与える要素に基づいて決定される。例えば、発音の種類が48個である場合、トライフォンは(48x3)個あってもよい。
【0062】
音響モデル540で入力ノードの数は、フレームを示すベクトルの要素の数に対応し、出力ノードの数は、音響スコア550に含まれる発音の数に対応する。発音の数が極めて多い場合、音響モデル540の処理が遅延され得る。したがって、発音の数は適切に調整され得る。例えば、発音がトライフォンに基づいて決定される場合、トライフォンに属する発音のうち代表発音を抽出する。一例として、代表発音は約6000個に決定されてもよい。この場合、音響スコア550の行jは6000個であり得る。
【0063】
図6は、一実施形態に係るシーケンスレベルの音響スコアを示す図である。図6を参照すると、トレーニング装置は、ウィンドウレベルの入力データ610を音響モデル620に入力し、音響モデル620の出力に基づいてウィンドウレベルの音響スコア630を取得する。音響モデル620は、ウィンドウレベルの入力データ610に基づいてウィンドウレベルの音響スコア630を順次出力する。例えば、音響シーケンスがN個のフレームを含み、ウィンドウがW個のフレームを含む場合、N/W個の入力データに関する音響スコアが出力される。また、上述したように、各ウィンドウには、パディングデータに対応するフレームがさらに含まれてもよい。この場合、音響モデル620は、パディングデータに対応するフレームに関する音響スコアも共に出力する。
【0064】
トレーニング装置は、ウィンドウレベルの音響スコア630からパディングデータに対応する部分を除去して対象データに対応する音響スコアを取得し、対象データに対応する音響スコアを連結してシーケンスレベルの音響スコア640を取得する。パディングデータは、音響スコアを算出する過程でウィンドウの開始又は終了に近接するフレームに関する音響スコアの正確度を高めるために追加されたものであるため、音響スコア640を構成する過程から除去される。トレーニング装置は、シーケンスレベルの音響スコア640に基づいてシーケンスレベルのエラーを算出する。
【0065】
図7は、一実施形態に係るシーケンスレベルのエラーを算出する過程を示す図である。図7を参照すると、トレーニング装置は、シーケンスレベルの音響スコアと音声シーケンスに関する参照文章に基づいてシーケンスレベルのエラー740を算出する。トレーニング装置は、言語モデル及びデコーダを用いてシーケンスレベルの音響スコアに対応するスコア710及び参照文章の発音確率に対応するスコア720、730を取得する。トレーニング装置は、スコア710及びスコア720を比較し、スコア710とスコア730とを比較して、シーケンスレベルのエラー740を算出する。言語モデルは、特定の単語や特定の文章がどれ程頻繁に使用されるかに関する情報を提供する。デコーダは、音響モデルが提供する情報と言語モデルが提供する情報に基づいて、入力された音声がどのような単語に近いか、又はどのような文章に近いかを算出する。スコア710、720、730は、このようなデコーダ及び言語モデルに基づいた特定の音声シーケンスの認識確率を示す。
【0066】
参照文章は、音声シーケンスに関する正解文章及び音声シーケンスに関する誤答文章のうち少なくとも1つを含む。例えば、図7には、正解文章に関する発音確率に対応するスコア720、誤答文章に関する発音確率に対応するスコア730が図示されている。誤答文章に関する発音確率に対応するスコア730は、第1誤答文章に関する発音確率に対応するスコア731、第2誤答文章に関する発音確率に対応するスコア732、及び第3誤答文章に関する発音確率に対応するスコア733を含む。トレーニング装置は、デコーダ及び言語モデルを用いてスコア720、730を取得する。
【0067】
誤答文章は、予め決定された数だけ存在する。誤答文章は、予め決定された基準により選択されてもよい。例えば、誤答文章は、正解文章に近接する文章に選択され得る。トレーニング装置は、正解文章を除いた文章のうちデコーダによって高いスコアが付与された文章を抽出し、抽出された文章から誤答文章を選定する。トレーニング装置は、抽出された文章からスコアの高い順に予め決定された数だけ誤答文章を決定する。
【0068】
スコア710とスコア720、又はスコア710とスコア730は、成分ごとに比較される。例えば、スコア710の[mn]に含まれた成分はスコア720の[mn]に含まれた成分と比較される。ここで、[mn]は、m行n列を意味する。トレーニング装置は、スコア710とスコア720を成分ごとに比較してシーケンスレベルのエラー740を算出する。また、トレーニング装置は、スコア710とスコア720の差が大きいほど、シーケンスレベルのエラー740を大きく決定する。また、トレーニング装置は、スコア710とスコア730の差が小さいほど、シーケンスレベルのエラー740を大きく決定する。
【0069】
図8は、一実施形態に係る音響モデルの更新過程を示す図である。図8を参照すると、トレーニング装置は、シーケンスレベルのエラー810を分割してウィンドウレベルのエラー820を取得し、ウィンドウレベルのエラー820を用いて音響モデル840を更新する。トレーニング装置は、ウィンドウレベルのエラー820が減少する方向に音響モデル840を更新する。
【0070】
シーケンスレベルのエラー810がN個のフレームから構成された音声シーケンスに対応するとき、これをW個のフレームを含んでいる重ならない連続したウィンドウに分割してウィンドウレベルのエラー820を取得する。この場合、最初のウィンドウは最初のフレームに対するエラーからW番目のフレームに対するエラーまで含み、2番目のウィンドウはW+1番目のフレームに対するエラーから2W番目のフレームに対するエラーまで含む。したがって、i番目のウィンドウは((i-1)*W+1)番目のフレームに対するエラーから((i-1)*W+W)番目のフレームに対するエラーまで含む。
【0071】
音響モデル840は、音響スコアの算出過程で入力された入力データに応じて広げられるため、当該の入力データのサイズに適するデータに更新される必要がある。したがって、トレーニング装置は、ウィンドウレベルのエラー820及びパディングデータに基づいて更新データ830を構成し、更新データ830を用いて音響モデル840を更新する。ここで、パディングデータは、0又はウィンドウレベルのエラー820に対応するウィンドウに隣接するウィンドウのエラーを含む。例えば、パディングデータ835は、0に満たされ、又は、隣接ウィンドウのエラー825に満たされる。更新データ830に含まれたパディングデータのサイズは、上述した入力データに含まれたパディングデータのサイズに対応する。
【0072】
音響モデル840は、更新データ830によって順次更新される。前述の例示において、音響モデル840は合わせてN/W番目に更新される。
【0073】
一実施形態によると、トレーニング装置は、エラー逆伝播学習によって音響モデル840をトレーニングさせることができる。例えば、トレーニング装置は、音響モデル840の接続加重値、ノードの状態パラメータなどを更新する。トレーニング装置は、監督学習(supervised learning)によって音響モデル840を学習させ得る。監督学習とは、トレーニング入力とそれに対応するトレーニング出力を音響モデル840に入力し、トレーニング入力に対応するトレーニング出力が出力されるよう音響モデル840のパラメータを調整する方法である。
【0074】
エラー逆伝播学習は、与えられたトレーニングデータに対して前方算出によりエラーを推定した後、出力レイヤから開始して隠しレイヤ及び入力レイヤでの逆方向に推定したエラーを伝播し、エラーを減少させる方向に接続加重値を調整する方法である。音響モデル840の認識のための処理は、入力レイヤ、隠しレイヤ、出力レイヤの順に行われるが、エラー逆伝播学習でパラメータのアップデート方向は、出力レイヤ、隠しレイヤ、入力レイヤの順に行われる。
【0075】
音響モデル840は、リアルタイム認識過程にマッチングされるよう、ウィンドウレベルの入力データに基づいてトレーニングされ、リアルタイム音声認識において高い性能を示す。また、音響モデル840は、シーケンスレベルのエラー810に基づいてトレーニングされるため、単語や文章に対して強靭な性能を発揮する。
【0076】
図9は、一実施形態に係る認識装置を示すブロック図である。図9を参照すると、認識装置900は、プロセッサ910及びメモリ920を含む。メモリ920は、音響モデル925を含む。プロセッサ910は、メモリ920から音響モデル925を取得する。音響モデル925は、前記したトレーニング過程により予めトレーニングされてもよい。プロセッサ910は、音声信号の入力を受け、音声信号をサンプリングして音声シーケンスを生成する。プロセッサ910は、音声シーケンスをウィンドウレベルに分割して音響モデル925に提供する。メモリ920は、デコーダ935をさらに含む。デコーダ935は、音響モデル925の出力に基づいて認識結果を出力する。
【0077】
図10は、一実施形態に係るトレーニング装置を示すブロック図である。図10を参照すると、トレーニング装置1000は、プロセッサ1010及びメモリ1020を含む。メモリ1020は、音響モデル1021を含む。プロセッサ1010は、メモリ1020から音響モデル1021を取得する。メモリ1020は、コンピュータで読み出し可能な命令語を含む。メモリ1020に格納された命令語がプロセッサ1010で実行されると、プロセッサ1010は、音声シーケンスに基づいてウィンドウレベルの入力データを構成し、ウィンドウレベルの入力データを音響モデル1021に入力し、音響モデル1021の出力に基づいてシーケンスレベルのエラーを算出し、シーケンスレベルのエラーを分割してウィンドウレベルのエラーを取得し、ウィンドウレベルのエラーを用いて音響モデル1021を更新する。メモリ1020は、トレーニング過程の間に順次アップデートされる音響モデル1021及びトレーニングデータ1001を格納する。その他に、トレーニング装置には、前記した事項が適用されてもよく、より詳細な説明は省略する。
【0078】
図11は、一実施形態に係るトレーニング方法を示した動作フローチャートである。図11を参照すると、ステップS1110において、トレーニング装置は、音声シーケンスに基づいてウィンドウレベルの入力データを構成する。ステップS1120において、トレーニング装置は、ウィンドウレベルの入力データを音響モデルに入力する。ステップS1130において、トレーニング装置は、音響モデルの出力に基づいてシーケンスレベルのエラーを算出する。ステップS1140において、トレーニング装置は、シーケンスレベルのエラーを分割してウィンドウレベルのエラーを取得する。ステップS1150において、トレーニング装置は、ウィンドウレベルのエラーを用いて音響モデルを更新する。その他に、トレーニング方法には、前記した事項が適用することができ、より詳細な説明は省略する。
【0079】
以上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが分かる。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0080】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【0081】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0082】
上述したように実施形態をたとえ限定された図面によって説明したが、当該技術分野で通常の知識を有する者であれば、前記に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられ、或いは、他の構成要素又は均等物によって置き換えたり置換されても適切な結果を達成することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11