Link: http://www.cs.cmu.edu/afs/cs/user/bhiksha/WWW/courses/11-756.asr/spring2013/
Class 5 - DTW
Sequence matching on recorded speech
- Template: example recording
- Isolated word recognition
DTW
Every input frame must be matched to one of the templates
- Different from the Levenshtein distance where there are insertions and deletions
- No vertical transition (this is less often used because it makes their costs not easily comparable (How?))
- All symbols must be compared with the template for getting cost
No edge(transition) cost
- node costs only
Dissimilarity measure between an input frame and template frame
- (simply) Euclidean distance
- Or Manhattan metric, L1 norm, Weighted Minkowski norms(generalized version of LX norm)
Handling Surrounding Silence
- The transition structure does not allow a region shrinking more than 1/2
- Warping transition needed
Time synchronous search
- Parallel computing on trellises
- Enables real-time
Confidence scoring, confidence estimation
- Is the lowest cost path always answer?
- confidence threshold needed
- There is no applicable cost measure. So we need to determine a threshold
- Recognizing many samples -> Training confidence classifier(how?)
번거로우니까 그냥 한글로 쓴다. 영어로 쓰니까 시간이 너무 많이 걸리네
Confidence scoring for string match
- string matching에서는 적당히 fixed threshold 정하면 됐다.
- Application 따라 적당히 정하면 된다.
Confidence scoring for DTW
- 하지만 DTW의 경우 threshold를 정해도 그게 무슨 의미가 있는 값은 아니다.
- 즉 confidence classifier 같은 것을 학습하는 것이 필요
- 높은 confidence로 제대로 맞춘 sample 들과 낮은 confidence로 못 맞춘 sample들 간의 적절한 confidence threshold를 알아보면 된다.
- confidence threshold를 정하는 방법
- 많은 training sample에 대해 confidence 내보고
- threshold 다시 정하고 (retraining)
- test
- threshold 정하기 전 DTW cost는 normalization 되어야 한다.
- 솔직히 confidence threshold로 쳐내는 방법은 잘 안된다. (correct, incorrect 분포 간에 많이 겹친다)
N-best list
- 스마트폰으로 글을 쓸 때 여러 후보를 자동으로 추천해주듯이, best path 하나 말고 여러개를 보여줘서 사용자가 선택하게끔 하는 것
Improving accuracy: multiple templates
- 한 단어 당 template을 하나만 사용하니까 문제가 발생한다.
- 다른 화자에 대해 취약
- template을 여러개 사용하면 된다
- template을 여러개 사용하면 계산량이 많아진다
Pruning
계산량을 줄이기 위해 pruning을 하자
diagonal의 width를 고정해서 하자
width를 뛰어 넘을 수도 있는 warp를 가진 path가 죽을수도 있다.
그리고 speech에 대해서 diagonal에 해당하는 개념이 무엇인가? 모호하다
fixed cost threshold
유연하지 못하다
relative fixed beam
특정 시점의 best cost node의 값에 대해 상대적으로 가까운 K개만 남기고 다 쳐내자
K개만 살아남는다
Beam search
특정 시점의 best cost node의 값에 대해 상대적으로 T 이내에 들어오는 cost를 가진 path는 전부 살리자
살아남는 path가 아주 많아질수도 있다(인식률이 낮을 때 beam search 방식에서 디코딩 시간이 많이 느려지는 이유)
계산 시간 예측이 안된다
T는 휴리스틱으로 정한다 (주로 WER이 consistently 낮아지기 시작하는 부분에서 정한다)
그래도 지금까지 가장 많이 쓰인다
하여튼 pruning을 쓰면 word 당 template의 갯수가 늘어나도 상관없이 연산 시간이 일정하다(완전 그런건 아닌 것 같은데…)
pruning을 쓰면 trellis를 많이 저장할 필요가 없어지기 때문에, 추가로 요구되는 메모리도 별로 없다
그래도 book-keeping overhead는 필요하다(특별히 book-keeping 이란 단어를 쓴 이유라도?)
pruning을 쓰면 globally best path가 완전히 나온다고 할 수는 없다 (locally sub-optimal path)
댓글 없음:
댓글 쓰기