dtw アルゴリズムは、動的計画 DP のアイデアに基づいた動的タイム ワーピング アルゴリズムを指します。これは、2 つの時系列、特に長さの異なるシーケンスの類似性を計算する動的計画アルゴリズムです。発音の長さの問題を解決します。 異なるテンプレートのマッチング問題は、音声認識における初期の、より古典的なアルゴリズムです。 dtw アルゴリズムは主に、孤立単語音声認識、ジェスチャ認識、データ マイニング、情報検索などの時系列データで使用されます。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
時系列データには多くの類似性または距離関数があり、その中で最も有名なものは DTW です。孤立単語音声認識において、最も簡単で効果的な方法は、DTW (Dynamic Time Warping) アルゴリズムを使用することです。 このアルゴリズムは、ダイナミック プログラミング (DP) の考え方に基づいており、単語のテンプレート マッチングの問題を解決します。問題は、孤立した単語の認識に使用される、音声認識における初期の、より古典的なアルゴリズムです。
DTW (Dynamic Time Warping) 動的タイム ワーピング アルゴリズムは、2 つの時系列、特に長さの異なるシーケンスの類似性を計算する動的プログラミング アルゴリズムです。主に、孤立単語音声認識、ジェスチャ認識、データマイニング、情報検索などの時系列データで使用されます。
HMM アルゴリズムはトレーニング段階で大量の音声データを提供する必要があり、モデル パラメーターは計算を繰り返すことで取得できますが、DTW アルゴリズムのトレーニングでは追加の計算はほとんど必要ありません。したがって、DTW アルゴリズムは依然として孤立単語音声認識に広く使用されています。
トレーニングおよびテンプレートの構築段階であっても、認識段階であっても、最初にエンドポイント アルゴリズムを使用して音声の開始点と終了点が決定されます。テンプレート ライブラリに格納されている各エントリは参照テンプレートと呼ばれ、参照テンプレートは R={R(1), R(2),..., R(m),..., R(M) と表現できます。 }、mはトレーニング音声フレームのタイミング番号、m=1は開始音声フレーム、m=Mは終了音声フレームであるため、Mはテンプレートに含まれる音声フレームの総数、R( m) は m 番目のフレームの音声特徴ベクトルです。認識対象となる入力入力音声はテストテンプレートと呼ばれ、T = {T (1), T (2), ..., T (n), ..., T (N)} で表すことができます。 n はテスト音声です。フレームのタイミング ラベルです。n=1 は開始音声フレーム、n=N は終了音声フレームです。したがって、N はテンプレートに含まれる音声フレームの総数であり、T(n) は次のようになります。 n番目のフレームの音声特徴ベクトル。基準テンプレートとテスト テンプレートは通常、同じ種類の特徴ベクトル (MFCC、LPC 係数など)、同じフレーム長、同じ窓関数、および同じフレーム シフトを使用します。
テスト テンプレートと参照テンプレートをそれぞれ T と R で表すとします。それらの間の類似性を比較するために、それらの間の距離 D[T, R] を計算できます。距離が小さいほど、類似性が高くなります。この歪み距離を計算するには、T と R の対応するフレーム間の距離から開始します。 n と m をそれぞれ T と R で任意に選択したフレーム番号とし、d[T(n),R(m)] はこれら 2 つのフレームの特徴ベクトル間の距離を表します。距離関数は使用される実際の距離メトリックに依存し、DTW アルゴリズムでは通常ユークリッド距離が使用されます。
N=M の場合は直接計算できますが、それ以外の場合は T(n) と R(m) を揃えることを検討してください。アライメントには線形拡張法を使用できます。N 2次元直交座標系の横軸にテストテンプレートのフレーム番号n=1~Nを、横軸に基準テンプレートのフレーム番号m=1~Mをとると、縦軸 フレーム番号を表すこれらの整数座標に縦線と横線を引き、ネットワークを形成します。ネットワーク上の各交点 (n, m) は、テスト モードでの特定のフレームの交点を表します。 DP アルゴリズムは、このネットワーク内のいくつかのグリッド ポイントを通過するパスを見つけることとして要約できます。パスが通過するグリッド ポイントは、テスト テンプレートとリファレンス テンプレートで計算されたフレーム番号です。パスは任意に選択されるわけではありません。まず、音声の発音速度は変更できますが、その部分の順序は変更できません。したがって、選択されたパスは左下隅から開始し、右上隅で終了する必要があります。 このパスを説明するために、パスが通過するすべての格子点が (n1, m1),..., (ni, mj),..., (nN, mm) であると仮定します。ここで、(n1, m1) = (1,1)、(nN,mM)=(N,M)。パスは関数 m = Oslash;(n) で記述できます。ここで、n =i、i=1、2、...、N、Ø(1)=1、Ø(N)=M です。パスが傾きすぎないように、傾きを 0.5 ~ 2 の範囲に制限することができます。パスが既に格子点 (n, m) を通過した場合は、次の格子点 (n, m) ) 渡されるのは、次の 3 つだけです。 ケース 1: r を使用して、上記の 3 つの制約を表します。最適なパスを見つける問題は、制約条件 r が満たされたときに、パスに沿った累積距離が最小値に達する、最適なパス関数 m =Ø(n) を見つけることに帰着できます。つまり、 搜索该路径的方法如下:搜索从(n, m)点出发,可以展开若干条满足ŋ的路径,假设可计算每条路径达到(n, m)点时的总的积累距离,具有最小累积距离者即为最佳路径。易于证明,限定范围的任一格点(n, m)只可能有一条搜索路径通过。对于(n, m),其可达到该格点的前一个格点只可能是(n-1, m)、(n-1, m -1)和(n, m-1),那么(n, m)一定选择这3个距离之路径延伸而通过(n, m),这时此路径的积累距离为: 这样可以从(n ,m )=(1,1)出发搜索(n ,m ),对每一个(n ,m )都存储相应的距离,这个距离是当前格点的匹配距离与前一个累计距离最小的格点(按照设定的斜率在三个格点中进行比较)。搜索到(n ,m )时,只保留一条最佳路径。如果有必要的话,通过逐点向前寻找就可以求得整条路径。这套DP算法便是DTW算法。 DTW算法可以直接按上面描述来实现,即分配两个N×M的矩阵,分别为积累距离矩阵D和帧匹配距离矩阵d,其中帧匹配距离矩阵d(i,j)的值为测试模板的第i帧与参考模板的第j帧间的距离。D(N,M)即为最佳匹配路径所对应的匹配距离 更多相关知识,请访问常见问题栏目!(n ,m )=(n +1,m)
(n ,m )=(n +1,m +1)
(n ,m )=(n ,m+1 )
D[(n, m)]=d[T(n),R(m)]+min{D(n-1,m),D(n-1,m-1),D(n,m-1)}
以上がDTWアルゴリズムとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。