HMM 기반 연속음성인식 베이스라인 시스템

Download Report

Transcript HMM 기반 연속음성인식 베이스라인 시스템

HMM 기반 연속음성인식
베이스라인 시스템
서강대학교
음성언어처리연구실
차례
개요
언어 모델 네트워크
인식 네트워크
토큰 전파 방식의 디코딩
실험 결과
결론
SGU-SLP
2
개요
HMM 기반의 연속 음성 인식 시스템
언어 모델
음성 패턴
음향 모델
디코더
“국내 환경
안 에 는 …”
Other KS
SGU-SLP
3
개요
HMM 기반의 연속 음성 인식 시스템

각종 지식원 (knowledge source)
 음향, 어휘, 언어 모델 및 영역 의존 지식
 학습 정도에 따라 탐색 공간의 해상도 결정


시스템의 인식률에 결정적인 영향
디코더 (decoder)
 탐색 공간(인식 네트워크)의 효율적인 구성 및
운영
 탐색 오류의 최소화 및 최적의 단어열 결정
SGU-SLP
4
개요
탐색 공간의 효율적인 구성 및 운영

언어 모델 네트워크 (LM network)
 FSN 형태의 언어 모델 인터페이스


대부분의 언어 모델에 대해 공통된 인터페이스를 제공
언어 모델에 대한 디코더의 의존성 최소화
a/p(a|0)
1
p(a|0)
0
b/p(b|a)
a/p(a|b)
p(b|a)
b/p(b|0)
SGU-SLP
2
p(a|b)
p(b|0)
5
개요

언어 모델 네트워크
 점진적인 인식 네트워크의 생성
 FSN 레벨의 이론적인 접근



네트워크 결합을 통해 상황에 따른 언어 모델의 선택
사용
네트워크 최적화(최소화) 알고리듬의 적용
토큰 전파 방식의 Viterbi 디코더 구현
 토큰 단위의 동적인 탐색 공간으로 재구성
SGU-SLP
6
언어 모델 네트워크
언어 모델 네트워크의 정의

단어열 W=w1w2wn 에 대한 확률 값
p(W)  p( w1w2  wn )
 p( w1 )  p( w2 | w1 )   p( wn | w1  wn 1 )

 p( w | w  w
i
1
i 1 )

i
 p( w | h )
i
i
i
 hi : 언어 모델 히스토리(history)
 p(wi|hi) : 언어 모델에서 제공
SGU-SLP
7
언어 모델 네트워크

언어 모델 p(wi|hi)
 히스토리는 동치 관계(equivalence relation)에 따
라 동치 부류(class)로 분할(partition)


단어 trigram
 최근 두개의 단어가 동일하면 동치 관계 성립
학습 상의 데이터 부족 문제를 보완
 동치 관계에 따라 다양한 언어 모델 설계 가능

SGU-SLP
디코더가 언어 모델을 효율적으로 사용할 수 있는 방
법(인터페이스) 필요
8
언어 모델 네트워크

언어 모델 컨텍스트 (LM context)
 히스토리 h와 입력 단어 w의 쌍 (h, w)
 연속된 단어 입력에 따라 다음 컨텍스트로 전이


유한 개의 컨텍스트
입력 단어에 따른 결정적 전이
유한상태네트워크
 모든 언어 모델에 내재
SGU-SLP
언어모델 컨텍스트
9
언어 모델 네트워크
언어 모델 네트워크의 구성

노드(node)
 언어 모델 컨텍스트
 네트워크 시작 및 종료 노드

아크(arc)
 컨텍스트의 히스토리와 입력 단어에 따른 확률
 모든 노드는 네트워크 종료 노드로의 전이 포함

단어열 W의 확률값
 각 단어에 해당하는 아크의 가중치를 누적
SGU-SLP
10
언어 모델 네트워크
Backoff 언어 모델의 사용

학습에 나타나지 않은 단어열의 처리
if N(h,w)  0
  ( w | h)
p ( w | h)  
 (h)   ( w | h) if N(h,w)  0
h’ : h를 backoff한 히스토리
,  : 히스토리에 따른 조건부 확률
(h) : 히스토리 h에 대한 backoff 가중치
SGU-SLP
11
언어 모델 네트워크

Backoff 확률의 적용
 Backoff 아크 (전이)

히스토리 h로부터 backoff된 히스토리 h’으로의 전이
 입력 단어 w에 대해 두 번의 전이


Backoff 전이 + 단어에 따른 컨텍스트 전이
Backoff 전이는 입력단어를 사용하지 않는 null arc
상태 최소화 알고리듬

SGU-SLP
언어 모델 네트워크 완성 후 적용
12
두 단어 {a, b}에 대한 full bigram network
(a)
SGU-SLP
(b)
13
Backoff된 trigram network
 p(•) : LM 확률, b(•) : backoff 가중치
SGU-SLP
 점선 : backoff (null) arc
14
인식 네트워크
인식 네트워크의 생성

Network instantiation
 아크에 포함된 단어를 사전의 HMM 단위 발음열
로 대치(substitution)

트리 구조의 인식 네트워크
 LM 네트워크의 노드로부터 전이 가능한 단어들
을 하나의 트리로 구성
 LM 네트워크의 아크를 이용하여 트리와 트리 연
결
SGU-SLP
15
(a)
인식 네트워크
0.1
1.0
1.0
1.0
1.0
0.3
1.0
0.6
1.0
1.0
1.0
LM factorization 기법

언어 모델 값을 아크에
분산 저장
(a) 원본 네트워크
max p( x)
(b) p(arc)  xchild(
arc)
(c)
p(arc ) 
p(arc )
p( parent (arc ))
(b)
0.1
0.1
0.3
0.3
0.3
0.3
0.6
0.6
0.6
0.6
0.6
(c)
1.0
0.33
0.5
1.0
1.0
1.0
1.0
1.0
0.6
1.0
1.0
SGU-SLP
16
토큰 전파 방식의 디코딩
토큰 전파 알고리듬

토큰(Token)
 활성화된 HMM state
 현재까지의 누적 확률
값 및 백트래킹 정보
유지
 각 state 마다 최대 확률
의 토큰 유지
SGU-SLP
si
+aik
+akk
sk
+bk(ot)
+ajk
sj
17
토큰 전파 방식의 디코딩
탐색 공간의 동적 구성

Beam pruning
 계산량 감소를 위해 정답과 거리가 먼 토큰 탈락
 Viterbi 알고리듬은 pruning에서 살아남은 토큰을
대상으로 진행


2차원의 그리드(grid)대신, 토큰 리스트를 사용한 Viterbi
decoder 구현
Token ordering property
 리스트 내 토큰의 위치는 전파방향과 일치해야 함

SGU-SLP
Pruning으로 탈락한 토큰도 전파 과정에서 리스트에 다
시 추가 될 수 있다.
18
Implementation Heuristic
Path reclamation

정기적으로 도달 불가능한 path들을 회수한 후 나중
에 재사용
Token recycling

토큰 리스트로부터 탈락되었을때 재사용 리스트에
저장한 후 나중에 재사용
Central memory management

Porting HTK’s memory manger for efficiency
Cached computation of likelihood

SGU-SLP
동일 HMM/state가 한 프레임에서 여러 번 사용될 수
있으므로 처음에만 계산한 후, 캐쉬에 저장
19
Advanced Features
Semi-dynamic network decoder



SGU-SLP
네트워크 및 언어모델을 필요한 부분만 메모
리에 유지할 수 있는 방법
전체 인식 네트워크를 subnetwork단위로 분
할 후, subnetwork들을 caching기법으로 관리
각 subnetwork는 다른 subnetwork과 독립적
인 구조를 가진다.
20
Advanced Features

Subnetwork 단위의 분할
p(a|0)
p(b|a)
p(a|b)
p(b|0)
p(a|0)
p(b|a)
p(a|b)
Partition into subnetwork
p(b|0)
Original network
SGU-SLP
Write on disk contiguously
21
0.0
0.0
3
0.0
4
0.0
arc2
-1.3
arc0
2
-0.6
1
-3.8
0.0
8
0.0
7
6
0.0
arc3
0
-1.4
-7.1
arc1
0.0
5
•Node, arc, weight들을 각각 node
set, arc set, weight set으로 packing
•Node등은 pointer (physical addr.)
대신 index로 access
•노드는 weight여부에 따라 가변
적인 길이를 가짐
0.0
0.0
0.0
10
0.0
9
0.0
11
12
0.0
arc21
0.0
13
0.0
0.0
0.0
0.0
14
arc23
arc set
(a)
0
offset to node set
offset to arc set
offset to weight set
SGU-SLP
1
... 23
arc0's target
node index
weight set
0
1
...
node set
4
0
0
2
2
0
2
2
2
1
1
21
4
3
0
... 14
node0's weight index pair
arc0's weight
arc23's target tree
(subnetwork) index
node0's arc index pair
node0
(b)
22
실험 결과
실험 환경

학습 데이터베이스
 낭독체 15,000 문장 (25 시간 분량, 평균 20형태소/문장당)

음향 모델
 11421개의 트라이폰, 4855개의 tied state
 12 Gaussian mixture

발음 사전
 22622 단어, 28243 엔트리(다중 발음열)

언어 모델
 Absolute discounting method

테스트 : 154 문장 (no OOV)
 Perplexity : 151(bigram), 131(trigram)
SGU-SLP
23
실험 결과
bigram
300000
30
trigram
250000
25
200000
20
150000
15
82
HMM개수
인식률(accuracy)
84
80
100000
10
78
50000
5
76
0
0
b300 b250 b200 b175b150 b125 b100
74
b300 b250
b200 b175 b150
beam size
(a) 인식률
SGU-SLP
RTF
인식 결과 및 디코딩 비용
b125 b100
bigram/최대HMM수
beam size trigram/최대HMM수
bigram/RTF
trigram/RTF
(b) 디코딩 비용
24
실험 결과

인식 결과
 최대인식률


81.01%/3.22RTF (bigram, beam size 150)
82.57%/5.02RTF (trigram, beam size 175)
 인식 시간은 최대 HMM 개수와 비례
 빔크기 125까지는 별다른 인식률의 손실없이 인
식 시간이 효과적으로 감소


80.45%/1.90RTF (bigram, 125)
81.61%/1.88RTF (trigram, 125)
 실시간 인식 조건이 주어진 경우


SGU-SLP
75.06%/1.02RTF (bigram, 100)
76.78%/0.96RTF (trigram, 100)
25
실험 결과
Subnetwork-based Representation

네트워크 크기 비교
Count
node
arc
trigram 1,455,979 5,071,048
SGU-SLP
Size (MB)
base
sub
77.5
47.7
26
실험 결과

SGU-SLP
Dynamic Management Cost
27
실험 결과
Overall Behavior
SGU-SLP
28
결론
효율적인 탐색 공간의 구성 및 운영

언어 모델 네트워크
 다양한 언어 모델을 FSN으로 표현

언어 모델과 다른 모델의 통합 용이
 통일된 언어 모델 인터페이스

토큰 전파 방식의 디코딩
 Pruning에 따른 동적인 탐색 공간 재구성
 최대 HMM 개수에 따른 인식 시간
SGU-SLP
29
결론

탐색 공간 통합에 따른 메모리 요구량 증가
문제 해결
 언어 모델 크기에 기인한 본질적인 문제점
 Semi-dynamic network 디코딩 기법

LM 및 네트워크 caching
 혹은, 다단계 탐색 방법(multi-pass search) 도입

SGU-SLP
응답시간(response time)의 최소화가 관건
30