2018년 9월 2일 일요일

180902 CMU 음성인식 ppt 노트 - 5. Dynamic Time Warping

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)

댓글 없음:

댓글 쓰기