音声言語処理特論
第2回
音声認識の基礎、
DPマッチングの基礎
山本一公
先週の残りから
音声信号のディジタル化
• 空気中を伝搬している音声信号はアナログ信号
– 即ち、連続信号
• マイクロホンで受音した後に得られる信号電圧も
アナログ信号
• 離散信号にしないと、コンピュータ上で上手く
扱うことができない
• ディジタル化が必要
音声言語処理特論 第1回 34
ディジタル信号
• ディジタル信号とは?
– 時刻パラメータが離散値
→ 標本化(サンプリング)
– 振幅パラメータが離散値
→ 量子化
– 離散値でなければ、計算機では扱えない
• 離散時間信号
– 時刻パラメータだけが離散値
• 離散振幅信号
– 振幅パラメータだけが離散値
– おそらく扱うことはない
音声言語処理特論 第1回ディジタル化
この連続信号をディジタル化しよう
サンプリング(1)
時間軸方向の離散化
サンプリング(2)
• どのぐらいの時間間隔で離散化すれば良いのか?
– 間隔が広すぎると、元の波形が再現できない – 間隔が狭すぎると、無駄にデータ量が多くなってしまう• 元の波形に含まれる周波数成分がナイキスト周波数(サンプ
リング周波数の半分)以下に帯域制限されていれば、元の
波形が完全に再現可能(標本化定理)
– サンプリング周波数=標本化間隔の逆数
∑
∞ −∞ =−
−
⋅
=
it
iT
T
iT
t
T
iT
x
t
x
)
(
)
(
sin
)
(
)
(
π
π
音声言語処理特論 第1回 7サンプリング(3)
• 簡単に言えば、「1,000Hzの信号は2,000Hzより大きいサンプリング周波数でサン プリングしろ!」ってこと • 通常、サンプリング周波数が高いと高音質 • 実際、音声信号にはどれくらい高い周波数が含まれているのか? – 理論的には無限大まで入っているけど、高い周波数成分は人間には聴こえない(よく聴こえ る人で20,000Hzぐらいまでだ)し、大きさも小さいから観測できない – マイクロホンにも録音できる限界(周波数特性)がある • 実際に使われるサンプリング周波数 8kHz: 普通の携帯電話(固定電話帯域(0.3~3.4kHz)) 16kHz: VoLTEの携帯電話, PHS 44.1kHz: 音楽CD 48kHz: DVD-Video 96kHz, 192kHz: DVD-Audio • 通常、ナイキスト周波数(サンプリング周波数の1/2の周波数)をカットオフ周波数 とするローパスフィルタを掛けることで、サンプリング時に起きる誤差(折り返し 歪)を小さくするので、音として聞こえるのはナイキスト周波数まで。 2014/9/3-4 TUT Jr.技術科学教育プロジェクト 8量子化(1)
振幅軸方向の離散化
10
量子化(2)
量子化特性
誤差特性
11
量子化ビット数の決め方
•
SQR (Signal-to-Quantization noise Ratio)
– 「信号対量子化雑音比」
– 量子化誤差を雑音と看做して求めた
SNR
• 変換範囲のフルスケールを最大振幅とする正弦波の場
合
[dB]
8
.
1
6
12
2
2
1
log
10
2 2=
+
=
− +b
SQR
b 実用的には16bitか24bit (CD-DAは16bit、DVD-Audioは24bit) 音声言語処理特論 第1回ディジタル化された音声波形の例
時間
音声処理で使われる一般的なサンプリング:
16bit, 16kHz
スペクトル分析
音声波形(上)とスペクトログラム(下)
フーリエ級数展開(1)
• あらゆる周期信号は、周波数と位相が変更できる無限個の
正弦波発振器により合成可能
• 周期的な連続信号は、その信号の基本周波数の整数倍の
正弦波に分解できる
音声言語処理特論 第1回 1415
フーリエ級数展開(2)
[
]
)
,
3
,
2
,
1
(
sin
)
(
2
)
,
3
,
2
,
1
(
cos
)
(
2
)
(
1
sin
cos
)
(
)
,
2
,
1
,
0
,
1
,
2
,
(
)
(
)
(
2 / 2 / 0 2 / 2 / 0 2 / 2 / 0 1 0 0 0
=
=
=
=
=
+
+
=
⇓
−
−
=
+
=
∫
∫
∫
∑
− − − ∞ =n
Tdt
n
t
x
T
B
n
Tdt
n
t
x
T
A
dt
t
x
T
A
T
n
B
T
n
A
A
t
x
m
mT
t
x
t
x
T T n T T n T T n n nω
ω
ω
ω
音声言語処理特論 第1回16
複素フーリエ級数(1)
∫
∑
−
−
∞
−∞
=
−
=
=
⇓
+
=
=
−
=
2
/
2
/
*
0 0)
(
1
)
(
2
,
2
T
T
t
jn
n
n
t
jn
n
n
n
n
n
n
n
n
dt
e
t
x
T
C
e
C
t
x
jB
A
C
C
jB
A
C
ω
ω
音声言語処理特論 第1回複素フーリエ級数(2)
• 正の周波数と負の周波数
– 正の周波数と負の周波数を合成したものが正弦波
• 虚部は打ち消し合い、実部だけが残る • 実部は実軸上で正弦振動を行う 音声言語処理特論 第1回 17正の周波数・負の周波数と
オイラーの公式と時間波形
19
振幅スペクトル・位相スペクトル(1)
• 複素フーリエ係数の極座標表現
• 振幅スペクトル
• 位相スペクトル
n n n n n n j n nA
B
B
A
C
e
C
C
n 1 2 2tan
2
1
|
|
|
|
−=
+
=
=
φ
φ 音声言語処理特論 第1回20
振幅スペクトル・位相スペクトル(2)
(
)
t t t t t t t t t x 4 cos 3 cos 2 . 0 3 sin 5 . 0 cos sin 2 4 sin 3805 . 0 3 sin 5385 . 0 4 sin 2 ) ( + + + + = + + + + + = π π 音声言語処理特論 第1回21
振幅スペクトル・位相スペクトル(3)
(
)
t t t t t t t t t x 4 cos 3 cos 2 . 0 3 sin 5 . 0 cos sin 2 4 sin 3805 . 0 3 sin 5385 . 0 4 sin 2 ) ( + + + + = + + + + + = π π 振幅スペクトル 位相スペクトル 線スペクトル(離散スペクトル) 音声言語処理特論 第1回22
フーリエ変換
• 周期
T を無限大にした孤立波形に対して、フーリエ級数
の周期を無限として極限を取る
• フーリエ変換対
∫
∫
∞
∞
−
∞
∞
−
−
=
=
ω
ω
ω
ω
ω
d
e
X
t
x
dt
e
t
x
X
t
j
t
j
)
(
)
(
)
(
)
(
音声言語処理特論 第1回 ※式としては、両側ラプラス変換で s=σ+jω を σ=0 とした場合と同じ23
フーリエ変換のスペクトル
連続スペクトル
時間領域波形 周波数スペクトル
24
離散フーリエ変換
• 離散フーリエ変換は、「(連続)フーリエ変換を離散化し
たもの」というよりは、フーリエ級数を離散化したもの(離
散フーリエ級数)だと考える
(
)
(
)
N j N N k nk N N n nk Ne
W
N
n
W
k
X
N
n
x
N
k
W
n
x
k
X
π 2 1 0 1 01
0
)
(
1
)
(
1
0
)
(
)
(
− − = − − ==
−
≤
≤
=
−
≤
≤
=
∑
∑
ただし、
音声言語処理特論 第1回• 離散フーリエ変換は結構計算量が多い
– 計算量
O(n
2)
• フレームの長さ(ポイント数)をべき数に限定すること
で、計算を簡略化
高速フーリエ変換(
Fast Fourier Transform; FFT)
• 広く用いられているものは、基数を2とする場合
– ポイント数は2のべき乗
• サンプリング周波数8kHzならば256ポイント、サンプリング周波数 16kHzならば512ポイントで32ms– 計算量
O(nlog
2(n))
高速フーリエ変換
音声言語処理特論 第1回 25窓掛け(フレーム化処理)(1)
• サンプリング点毎に特徴量を抽出すると、データ量
が多くなりすぎる
• 音声は
20~30ms程度の区間であれば、定常信号と
見なすことができる(準定常)
• 音声波形を短い区間(
20~30ms)毎に切り出して、
分析する
• 各区間をフレームと呼び、短時間スペクトル分析な
どの単位となる
音声言語処理特論 第 回2 26窓掛け(フレーム化処理)(2)
分析
標準的なフレーム長:
20~30ms程度
サンプリング周波数
16kHzの場合、25msで400点
フレームは1/2~1/3程度 重ねて処理していく 音声言語処理特論 第 回2 27窓掛け(フレーム化処理)(3)
• 窓掛けの目的は、波形の切り出し
– 連続波形の有限長化
• 切り出してから、離散フーリエ変換(DFT、FFT)
• DFTでは、“切り出した区間がちょうど1周期”であると
見なして、分析してしまう
– “ちょうど1周期”⇒窓長が基本周期
– 切り出した区間の始端と終端が繋がっていると仮定
• 実際には
……
– 切り出した区間が、実際の波形の周期と一致しない
– 切り出した区間の始端と終端は繋がっていない
音声言語処理特論 第 回2 28窓掛け(フレーム化処理)(4)
l
l+N-1
音声波形
s
窓関数
(ハミング窓)
w
音声言語処理特論 第 回2 29 時間領域での掛け算( ) ( ) (
m
l
w
m
s
l
m
)
s
w;
=
+
m
窓関数を掛けることで、 波形の両端の振幅を 小さくする窓掛け(フレーム化処理)(5)
ハミング窓を掛けた例
音声言語処理特論 第 回2 30
それぞれをDFTして 分析していく
時間窓関数の種類(1)
− − = 1 2 cos 46 . 0 54 . 0 ) ( N n n WH π ハミング窓 ハニング窓 (ハン窓) 矩形窓 − − = 1 2 cos 5 . 0 5 . 0 ) ( N n n WN π スペクトルのメインローブが狭く、 サイドローブが小さい窓が 使われる 窓の両端が減衰しており、 実効窓長が短くなっている ⇒ 窓を重ねて処理する理由 音声言語処理特論 第 回2 31時間窓関数の種類(2)
• 様々な時間窓関数の時間波形
音声言語処理特論 第 回2 32
時間窓関数の種類(3)
• 様々な時間窓関数の周波数スペクトル
音声言語処理特論 第 回2 33
窓関数の種類(4)
• 時間領域での掛け算 ⇒ 周波数領域での畳み込み演算 • メインローブの幅が広いと、分析したい周波数 k の周辺の周波数を分離 して分析できない(周波数分解能が低い) ⇒ 狭い方が良い – 窓幅を長くすればメインローブの幅は狭くなるが、時間分解能が下がる • サイドローブの振幅が大きいと、離れた周波数の成分の影響を受けてし まう⇒小さい方が良い • 不確定性原理 – これらを同時に満たす窓は、周波数領域ではインパルスとなるため、長さ無 限大の矩形窓(=窓掛けしない)となる – 周波数分解能と時間分解能を同時に高くできる窓は、存在しない – 用途によって複数の窓を使い分けるしかない 音声言語処理特論 第 回2 34( ) ( ) (
)
( )
( ) ( )
∑
∞( ) (
)
−∞ = − = ⊗ = + = j W w l j k S j W l k S k W l k S m l s m w l m s ; ; ; ;音響特徴量
スペクトルの例(1)
• 1フレームだけの分析
スペクトルの例(2)
• 連続するフレームを
3D表示
スペクトルの例(3)
音声言語処理特論 第 回2 38
スペクトル表現のための音響特徴量
• スペクトルそのものは特徴 量としては冗長 • ベクトルの次元数が多いの はモデルパラメータの推定 や計算量の面で問題が出 やすい • より次元数の少ないスペク トル表現が求められる • 現在の音声認識では、 「MFCC」が代表的な特徴量 • 線形予測分析に基づく特徴 量も 音声波形 振幅 スペクトルケプストラム
フィルタバンク 出力MFCC
音声言語処理特論 第 回2 39音声生成の信号モデル
• 音源(ソース)・フィルターモデル
h(n)
調音フィルタg(n)
s(n)
調音器官
(舌,顎,口蓋,唇など)
パルス系列 (声帯振動) 時間 時間 音声 周波数 周波数 周波数 周波数×
=
音声言語処理特論 第 回2 40スペクトル包絡と微細構造
• スペクトル包絡
– 周波数とともに緩やかに変化する成分
– 音源のスペクトル概形、
声道の共振・反共振特性
、
放射特性などを表現
• 微細構造
– 音源の周期性
• スペクトル包絡が欲しい!
音声言語処理特論 第 回2 41 音素の種類を決定づけるのは、 基本的に声道形状である!スペクトル分析の方法
• 窓掛けして区切られた音声波形の区間(フレーム)ごとに
「スペクトル包絡」を求める
• ケプストラム(
cepstrum)法
– 微細構造を数値処理で削り落とす
– モデルを仮定しない
“ノンパラメトリック分析”
–
“cepstrum”は“spectrum”をもじって作られた造語
•
LPC法
– 線形予測符号化(
Linear Predictive Coding)に基づく方法
– モデルを仮定する
“パラメトリック分析”
– 滑らかな関数でスペクトルを近似する
ノンパラメトリックな分析
- ケプストラム分析 -
x(n)
DFT Log|・| IDFT DFT 時間窓 ケプストラム窓 対数スペ クトル包絡 ピッチ(微細構造成分) ケプストラム窓ケフレンシー
quefrency
スペクトルのギザギザを波形とみなしてフーリエ変換し、高周波成分を 取り除いてから逆変換している、と考えると分かり易い 音声言語処理特論 第 回2 43ケプストラム分析
(
)
(
log
|
(
)
|
)
FFT
(
log
|
(
)
|
)
FFT
|
)
(
|
log
FFT
)
(
|
)
(
|
log
|
)
(
|
log
|
)
(
|
log
)
(
)
(
)
(
)
(
)
(
)
(
1 -1 -1-w
H
G
S
c
w
H
G
S
H
G
S
t
h
t
g
t
s
+
=
=
+
=
=
⊗
=
ω
ω
τ
ω
ω
ω
ω
ω
フーリエ変換 対数変換 逆フーリエ 変換(
~
(
)
)
FFT
)
(
~
ω
τ
c
S
=
低次のみ取り出し(=リフタをかける)、フーリエ変換
音声言語処理特論 第 回2 44パラメトリックな分析
-
LPC分析(線形予測分析) -
h(n)
パルス系列 (声帯振動) インパルス系列 (破裂音) ノイズ (乱流) 調音フィルタg(n)
s(n)
調音器官
(舌,顎,口蓋,唇など)
音源信号 音声信号( )
z F z a z a z a z H p p − = − − − − = − − − 1 1 1 1 ) ( 2 2 1 1 -F(z) + X(z) X(z) E(z)^
音声言語処理特論 第 回2 45LPC合成フィルタ
• 予測残差を入力して、波形を合成する
音声言語処理特論 第 回2 46)
(
1
1
)
(
)
(
1
1
)
(
1z
E
z
a
z
E
z
F
z
X
p i i i∑
= −−
=
−
=
スペクトル包絡の分析例
•
Mel Frequency Cepstrum Coefficients
メル周波数ケプストラム係数
•
MFCCは、メルフィルタバンクの出力を対数化したも
のに対して
DCT(離散コサイン変換)を掛けたものと
して定義される
– 理論的な定義ではなく、実用的なもの
MFCCの分析手順
窓掛け 音声波形 スペクトル 対数 フィルタバンク 出力 MFCC フーリエ変換 (FFT) フィルタバンク 分析 対数化 離散コサイン 変換(DCT) 音声言語処理特論 第 回2 48 メル周波数化、 スペクトル包絡 スムージング、 直交化・次元圧縮フィルタバンク法
• 周波数方向に平均化して滑らかにする
周波数
フィルタバンク番号
聴覚を考慮した分析
-
メルスケールとメルフィルタバンク -
メルスケールへの変換関数
人の耳の聴覚特性:
• 低い周波数では
分解能が細かい
• 高い周波数では
分解能が粗い
メルスケールに変換するとよい
周波数 周波数 + = 1 700 ln 1127 f mel 音声言語処理特論 第 回2 50聴覚を考慮した分析
-
メルスケールとメルフィルタバンク -
メルスケールへの変換関数
メルフィルタバンク
横軸は(線形)周波数 メル周波数で考えると、 フィルタは等間隔に配置されている。 スケールは他にBarkやERBも。 フィルタ形状も三角形だけではない。 音声言語処理特論 第 回2 51MFCCの分析手順
1フレーム分の 波形 窓掛け波形 スペクトル フィルタバンク 出力 対数化フィルタ バンク出力 ケプストラム(MFCC) 音声言語処理特論 第 回2 52MFCCの分析例
音声波形
スペクトル
フィルタバンク
出力
MFCC
フーリエ変換 (FFT) フィルタバンク 分析 離散コサイン 変換(DCT)(
)
T N nk
c
k
c
k
c
k
c
k
)
(
),
(
),
(
),
,
(
)
(
=
1 2
c
k: フレーム番号、N: ケプストラムの次元数(12程度) 音声言語処理特論 第 回2 53その他よく使われる特徴量
• 音声パワー
– 音量を表すパラメータ.対数で表現する
– ケプストラムの0次項(対数スペクトルの直流成分)を
用いることもある
• 回帰係数
– 時間軸方向に回帰分析を行うことで求められる係数
(次頁)
=
+∑
− = 1 ) 1 ( 2)
(
log
)
(
T k kT tt
x
k
p
音声言語処理特論 第 回2 54動的特徴量(回帰係数)
• フレーム間での動きを表現
•
Δケプストラムの回帰係数(=2次回帰係数、ΔΔケプス
トラム)までがよく使われる
…c(t-2) c(t-1) c(t) c(t+1) c(t+2) …
∑
∑
− = − = + = ∆ K K k k K K k n k n w k k t c kw t c 2 ) ( ) (線形(1次)回帰係数(
Δケプストラム)
傾きが計算される ケプストラムの時間的変化の速さ 音声言語処理特論 第 回2 55その他の特徴量
• 母音によって声道の共振周波数が異なる • この声道の共振周波数を「フォルマント (formant)」という – 周波数の低い方から、第1フォルマント、第 2フォルマント……と呼ぶ – 個人差はあるが、同じような周波数になっ ている • 日本語の母音は、第1フォルマンと第2フォ ルマントでほぼ決定される • 母音の多い言語は第3フォルマントも重要 – 東北弁は第3フォルマントも重要?
フォルマント(1)
「あいうえお」と発声したスペクトル http://www.wakayama-u.ac.jp/~kawahara/signalproc/Matlabsource/spectrograms.html http://www.oki.com/jp/rd/ss/speech.html 音声言語処理特論 第 回2 57フォルマント(2)
• フォルマントは、音声の現象を説明するため
に便利な特徴
• フォルマント(の中心周波数)は変動が比較
的大きいため、パターン認識の特徴量として
は、あまり有用でない
– フィルタバンク分析で似たようなものが得られると
考えられる
音声言語処理特論 第 回2 58• 基本周波数
– 音声波形の「物理的」な高さを表す
– 声帯の振動周期に対応
– 無声音の場合、基本周波数はない(声帯が振動しないため)
• ピッチ
– 音声波形の「心理的」な高さを表す
– 有声音の場合は、基本周波数に同じ
– 無声音の場合は、前後の有声音区間のピッチから補間的に決
まる
• 普通の会話の場合、成人男性で
100~150Hz、成人女性で
200~300Hz程度
基本周波数とピッチ(1)
音声言語処理特論 第 回2 59基本周波数とピッチ(2)
この間隔が 基本周期 この間隔が 基本周波数 第1フォルマント 第2フォルマント 調波構造(基本周波数とその整数倍の周波数成分からなる構造)/a/
音声言語処理特論 第 回2 60基本周期とピッチ(3)
/a sh i t a/
/a/ /sh/ /t/ /a/ ・青線が基本周波数 ・/sh/と/t/は無声音のため 基本周波数は検出されない ・聴覚的には/a/の基本周波数と 同じピッチとして知覚される 音声言語処理特論 第 回2 61基本周波数とピッチ(4)
• ピッチそのものよりも、対数ピッチが使われる
– 変動が指数関数的なため
• ピッチは基本周波数と関連しており、個人に
よる変動が大きいので、音声認識の特徴量と
しては(今のところ)あまり有用ではない
– 同音異義語判別等には役立つ(はず)
音声言語処理特論 第 回2 62• 音の「物理的」な強さ
– 音圧レベル(
Sound Pressure Level; SPL)
– 基準値(
)の何倍か(単位:
dB SPL)
• 音の「聴覚的」な強さ
– ラウドネス
– 単位:ホン(
phon) フォン、ホーンとも
– 同じ音圧レベルでも、周波数によって感じる強さが異
なる
• 等ラウドネス曲線(次ページ)
• 周波数重みづけ音圧レベル
– 人間の感じる「うるささ」に近い。A特性の場合、単位はdBA音の強さ・大きさ(1)
[Pa]
10
20
×
−6 音声言語処理特論 第 回2 63音の強さ・大きさ(2)
http://ja.wikipedia.org/wiki/等ラウドネス曲線
音の強さ・大きさ(3)
•
PLP
–
Perceptual Linear Prediction
– 窓かけ
→ FFT
→ 等ラウドネス曲線による重み付け
→ パワースペクトル
→ 自己相関係数
→ 線形予測分析
→ 線形予測係数
というやり方で求める特徴量
•
PLP以外でも、等ラウドネス曲線による重み付けは用いら
れる
–
MFCCに用いても良いが、あまり使われていない
音声言語処理特論 第 回2 65テンプレートマッチングによる
音声認識
音声認識
• 問題の枠組み
– 部分的な音声特徴量時系列パターンからモデルを学習
– その部分パターンを何らかの規則に基づいて組み合わせ
る(並べる)
– スコアが最も高くなる組合せ(並べ方)を認識結果とする
• 問題の難しさ
– 時系列パターンを表すのにどのようなモデルを用いれば
良いか?
– パターンの組み合わせをどのように決定するか?規則を
どのように学習するか?
– 時系列パターンの変動にどのように対処するか?
音声言語処理特論 第 回2 671.発声者による変動 (個人差) 2.調音結合による変動 3.発声時期差による変動 4.音声速度の変動 5.アクセント・ イントネーション 6.有声無声・母音・ 鼻音・破裂・摩擦の混在 7.その他の要因 声帯振動数、声道形等の発声器官の構造差 方言、発声習慣などの調音法の相違 発声器官の連続運動・変化による 音声生成(ディジタル音韻列→アナログ音声) 発声器官の生理変化、調音法の変化 (かぜ、脱歯、疲労など) 音韻、音節などの離散記号の非線形時間軸変換 韻律情報の音声への付与 種々の調音機構への依存 ノイズ(背景雑音、電子ノイズ) 伝送歪
音声パターンの多様化の原因
音声言語処理特論 第 回2 68テンプレートマッチングによる
音声認識
• 認識する
単語
の
標準パターン
を用意しておく
• 入力音声をすべての標準パターンと比較して
最も「似ている」
パターン
を認識結果とする
– 今回は「孤立単語発声」を考える• 長さの異なる発声
も伸縮して比較できなければならない
⇒ 動的計画法(
Dynamic Programming)による
マッチング(
DPマッチング
)
Dynamic Time Warping(
DTW
)とも呼ばれる
テンプレートマッチングの概念
比較して近いものを認識結果とする
入力音声パターン標準パターン
標準パターン
1
2
標準パターン
3
標準パターン
N
音声言語処理特論 第 回2 70長さの違うパターンの比較
・
b
1 1b
12b
13… b
1J1b
N 1b
N2b
N3…
… b
NJNa
1a
2a
3… a
I長さが違う
↓
どうやって
比較するか?
入力
パターン
標準
パターン1
標準
パターン
N
音声言語処理特論 第 回2 71パターンの比較
step1
-b
1 1b
12b
13… b
1J1a
1a
2a
3… a
I特徴ベクトル時系列
(音声認識なら、ケプストラムベクトル時系列)間の比較
a
3= (a
31,a
32, … , a
3D)
b
1 2= (b
121,b
122, … , b
12D)
入力
パターン
標準
パターン1
例えば、ユークリッド距離
(
)
∑
(
)
=−
=
D i i ib
a
d
1 2 2 1 3 2 1 3, b
a
音声言語処理特論 第 回2 72パターンの比較 –
step2
-b
1 1b
12b
13… b
1J1a
1a
2a
3… a
I入力
パターン
標準
パターン1
特徴ベクトル時系列間の対応付け
フレームを重複させたり飛ばしたりしながら、
全体の対応をとる
音声言語処理特論 第 回2 73DPマッチングの概念図(1)
-うまくいく例-
標準パターン 入力パターン 標準パターン 入力パターン 線形伸縮マッチング 非線形伸縮(DP)マッチング1
2
3
4
5
6
7
8
1
4
6
8
1
2
3
4
5
6
7
8
1
4
6 8
音声言語処理特論 第 回2 74DPマッチングの概念図(2)
-うまくいかない例-
許されない対応 標準パターン 入力パターン 標準パターン 入力パターン 対応の前後関係の入換え禁止 大きく隔たった対応は禁止 1 3 2 4 5 1 5 5 5 5 6 1 2 3 4 5 1 2 3 4 5 6 1 3 2 4 5 1 2 3 4 5 1 2 3 4 5 6 1 5 5 5 5 6 実際の対応 音声言語処理特論 第 回2 75DPマッチングの原理
∑
∑
⋅ = ) ( )) ( ), ( ( ) ( min ) , ( k w k j k i d k w B A D F ) 1 ( ) ( ) 1 ( ) ( ) (k = i k −i k − + j k − j k − w ) 1 ( ) ( ) (k = i k −i k − w ・対称形 ・非対称形 入力パターン:A 標 準 パ タ ー ン :B + − − + − + − = ) , ( 2 ) 1 , 1 ( ) , ( ) 1 , ( ) , ( ) , 1 ( min ) , ( j i d j i D j i d j i D j i d j i D j i D ) , ( ji C = r i j = + ) 1 , 1 ( 1 = C r i j = − 1 a a2 ai aI 1 b 2 b j b warping function 整合窓 J b 2 C 3 C 4 C 5 C ) , (I J Cx = 1 1 2 1 1 1 Fは(1,1)から(I,J)へ 至る経路 音声言語処理特論 第 回2 76DPマッチングのポイント
• ある格子点において、
① その格子点にたどり着いた時の最小累積距離 ② 最小距離になるとき、どっちの方向からその格子点にたどり着いた のかこの
2点だけを記憶する
– 結果として得られる、出発点から到着点までの最短経路がその格子 点を通るかどうかは分からないが、「仮に通るとすれば」、出発点から その格子点までの最短距離と、その格子点から到着点までの最短距 離の合計になるはずである – その格子点にたどり着くための経路は何種類もあるが、直前に通る 格子点だけを考えればよい。• 全ての格子点について、「最短経路がそこを通るかもしれない」と
思って、そこに至る最短経路を計算しておく
– 開始点から順番に計算していくと、最短経路が計算される! 音声言語処理特論 第 回2 77DPマッチングのやり方(1)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(1,1)=d(a1,b1) g(0,0)=0 g(0,x)=g(x,0)=∞ 1 1 2 音声言語処理特論 第 回2 78DPマッチングのやり方(2)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(1,1)=d(a1,b1) g(1,2)=d(a1,b2)+g(1,1) 1 1 2 音声言語処理特論 第 回2 79DPマッチングのやり方(3)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(2,1)=d(a2,b1)+g(1,1) g(1,2)=d(a1,b2)+g(1,1) 1 1 2 音声言語処理特論 第 回2 80DPマッチングのやり方(4)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(2,2)=min{ d(a2,b2)+g(1,2), d(a2,b2)+g(2,1), 2 ×d(a2,b2)+g(1,1) } b(2,2)=argmin{ d(a2,b2)+g(1,2), d(a2,b2)+g(2,1), 2 ×d(a2,b2)+g(1,1) }←DP距離
(累積距離)
←バック
ポインタ
(どっちから
来たか)
1 1 2 音声言語処理特論 第 回2 81DPマッチングのやり方(5)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(1,3)=d(a1,b3)+g(1,2) 1 1 2 音声言語処理特論 第 回2 82DPマッチングのやり方(6)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(2,3)=min{ d(a2,b3)+g(1,3), d(a2,b3)+g(2,2), 2 ×d(a2,b3)+g(1,2) } b(2,3)=argmin{ d(a2,b3)+g(1,3), d(a2,b3)+g(2,2), 2 ×d(a2,b3)+g(1,2) }←DP距離
←バック
ポインタ
1 1 2 音声言語処理特論 第 回2 83DPマッチングのやり方(7)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(3,3)=min{ d(a3,b3)+g(2,3), d(a3,b3)+g(3,2), 2 ×d(a3,b3)+g(2,2) } b(3,3)=argmin{ d(a3,b3)+g(2,3), d(a3,b3)+g(3,2), 2 ×d(a3,b3)+g(2,2) } 1 1 2 音声言語処理特論 第 回2 84DPマッチングのやり方(8)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(7,5) ←DP距離 b(7,5) ←バック ポインタ 1 1 2 音声言語処理特論 第 回2 85DPマッチングのやり方(9)
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
g(7,5) ←DP距離 b(7,5) ←バック ポインタバックトレース
1 1 2 音声言語処理特論 第 回2 86DPマッチングのやり方(10)
• バックトレースの結果から
このようなフレームの対応のときに最小距離
となることが分かる
音声言語処理特論 第 回2 87a
1a
2a
3a
4a
5a
6a
7入力
パターン
標準
パターン
b
1b
2b
3b
4b
5DPパス
• ある格子点に至る経路を制限するためのもの
• 上に行き続けたり、横に行き続けたりできる
– そんな極端なフレーム対応になることは少ない – 不都合な場合が多い• そうできないようにしたい!
音声言語処理特論 第 回2 88 ・対称形 ・非対称形 1 1 2 1 1 1• 整合窓の範囲を変える(傾斜制限)
傾斜制限付き
DPパスの例
g( i-2, j-1) + 2・d(i-1, j) + d(i, j) g(i, j) = min g( i-1, j-1) + 2・d(i, j)
g( i-1, j-2) + 2・d(i, j-1) + d(i, j)
g( i-2, j-1) + d(i, j) g(i, j) = min g( i-1, j-1) + d(i, j)
g( i-1, j-2) + d(i, j-1) + d(i, j) g( i-2, j-1) + d(i-1, j) + d(i, j) g(i, j) = min g( i-1, j-1) + d(i, j)
g( i-1, j-2) + d(i, j) 1 1 2 2 2 1 1 1 1 1 1 1 1 (i,j) i j (i,j) (i,j) フレームスキップを 含む場合 音声言語処理特論 第 回2 89