공부 정리 블로그

[Chapter8] 음향모델(1) - HMM 본문

대학원 수업/음성인식

[Chapter8] 음향모델(1) - HMM

따옹 2023. 6. 17. 13:14

Table of contents

 

8.2 Hidden Markov Model 관련알고리즘

2010년 modeling 기법들

8.2.1. 인식 forward -> CTC

8.2.2. segmentation Viterbi

8.2.3. HMM 에서 파생된 Decoding 공부 

 

길이가 다른 Seq 제어를 하지 못했음

seq -> seq -> seq

corpus를 분석할 때, 군집화 된 영역 cluster의 index로 바꿀 때,

길이가 똑같은 cluster 번호의 열로 바꾼 classifier

 

 

음향모델용 classifier가 가져야 할 특성

- 모델의 구분단위를 정할 수 있어야 함(: 음소,음을 낼 때 최소 단위)

phoneme(발음 기호 하나하나가 음소가 됨)

- 모델이 주어졌을 때 인식결과 생성이 가능해야 함

- 학습자료가 주어졌을 때 모델 학습이 가능해야 함

- 대용량 음성 코퍼스로 부터 모델 구분 단위 별 학습자료를 자동생성 할 수 있어야 함

모델을 어떻게 만들 것인가

- 모델 결합을 통한 문장인식 확장성

 

8.1.1 HMM 개요

바구니 예제

  1. 흰색, 노란색, 빨간색, 하얀색공이 3개의 바구니에 담겨있다. 
  2. 각 바구니 별로 공들의 구성 비율은 서로 다르다.
  3. 임의의 바구니를 선택한다. 
  4. 바구니에서 공을 확인한다.
  5. 공을 다시 넣는다.
  6. 위와 같은 과정을 반복한다.
  7. Ball sequence를 보고 바구니를 선택한 순서를 판단한다. 

공의 색 seq를 알고 있는데,

바구니의 순서를 알고 싶음 -> HMM 문제

 

8.1.1 HMM 개요(구성 요소)

13차 vector로 뽑음

바구니 순서를 알게 되면, seq를 보고 silence, 여, 우, 를 알고 발성이 '여우'인 것을 알 수 있음

 

4개의 요소로 구성됨

1. N개의 상태 (State)

𝑸={𝒒𝟏,𝒒𝟐,…,𝒒𝑵} 

 

2. 상태 간 천이 확률

(Transition probability)

𝑨=𝒂_𝒊𝒋,𝒂_𝒊𝒋  =𝑷𝒓(𝒒_𝒋𝒂𝒕𝒕+|𝒒_𝒊𝒂𝒕𝒕)

 

3. 출력확률분포

(Output probability distribution)

𝑩={𝒃𝒋(𝑶𝒕)}𝒃𝒋(𝑶𝒕) =𝑷𝒓(𝑶_𝒕 𝒂𝒕 𝒕|𝒒_𝒋 𝒂𝒕 𝒕)

 

4. 초기상태

(Initial state distribution)

𝝅={𝝅_𝒊},𝝅𝒊=𝑷𝒓(𝒒_𝒊 𝒂𝒕 𝒕=𝟏)

 

 

HMM으로부터 관측열을 발생시키는 과정

특정 time t 에서 어떤 state인지가 hidden(상태의 이동경로, 특정 time t에서 어떤 바구니를 선택했는가가 hidden)

아는 것은 Observation 뿐,

1st order markov assumption : 현재 바구니는 직전 어떤 state, 바구니에 속해있는지에 대해서만 종속됨

- 𝝅에 따라 첫 상태 i가 결정됨

- T=1

- 상태 i에서 bi(o1)에 따라 o1이 출력됨

- 상태 i에 대한 상태 천이 확률 aij(transition probability)에 따라 다음 상태 j로의 천이가 일어남

- 시간을 하나증가시키고(t=t+1), 최종 시간에 도달하지 못했으면(t  < T) 3번 과정으로 돌아가고, 도달했으면 관측열 생성을 종료한다. 

 

우리가 하고자 하는 것

arg_wMaxP(W|O) = arg_wMaxP(O|w)p(w)

arg_wMaxP(W|O) 우리가 하고자하는 Classification -> 그림(observation) label (사후확률)

arg_wMaxP(O|w)p(w) 고양이 그림, 강아지 그림좀 그려주세요 (사전 확률)

모델이 주어졌을 때, 모델로부터 나올수 있는 생성확률(입력으로부터 seq가 들어올 확률은?)

 

8.1.1 HMM개요

observation으로 들어온 것이 없을 때 initial station : q1

 q1에서 20msec를 받아서 o1이 만들어 졌지만, non-deterministic이므로 q1, 2, 3로 갈 수 있음

HMM방식의 non-deterministic 특성으로 모든 경로를 찾아야하므로, 경우의 수가 많아짐

left2right model(1990년대 초 model)

q3 -> q2는 없으므로 a_32 = 0, q_13 = 0

left2right model 은 ergodic model의 특수한 경우임

음성은 시계열 패턴이므로, 시간축 상에서 선후 관계가 있기 때문에

먼저 나온 것 모델링 -> 나중 나온 것 모델링(시계열 패턴 모델링 시 유리)

 

파악해야할 것들

state 개수, aij, bj(ot), initaial state 확률 pi

 

HMM이 주류를 이뤘던 이유

각각의 node가 state 로 decoding network를 만들기 쉬움

데이터가 적은 (단어 음성인식기일 때는 적절)시절에는 적절한 모델이었음

속도가 느림, non-deterministic, prameter 수가 적어 정교한 modeling 구조는 구현 불가

단어 node를 만든다음 dummy state(start, end)를 만듦

 

음성 파형의 길이는 20msec이므로, 17x 20msec = 0.34sec, 17frame

하나의 state 이동 경로 가정함. 

 

8.2 HMM의 세 가지 기본문제

기본문제1: (인식) 관측열이 발생될 확률의 계산 인식 결과를 어떻게 결정 할 것인가? 

모델 파라미터는 주어진 상황에서 관측열의 생성 확률을 최대로 하는 모델선정

알고리즘: Total likelihood method, forward algorithm

 

기본문제2: (Segmentation) 관측열이 어떤 상태 천이를 거쳐 발생되었는지를 추정

전체 음성신호 중 특정 단어를 찾아주는 segmentation 시 필요

전체 학습 자료에서 모델별학습에 필요한 자료 자동추출

알고리즘: Viterbi algorithm

 

wave - text file(대응되는 text)

어디서부터 어디까지가 'ㅏ', 'ㅎ' 인지 파악

사람이 하면 고된 작업

 

 

기본문제3: (학습) HMM파라미터 추정모델 학습 시 필요

- 알고리즘: Viterbi training algorithm, Baum-Welch algorithm

- 본자료는 expectation-maximization algorithm에 기초하여 작성되어있음

 

 

8.2.1.2 HMM의 세 가지 기본문제 (인식: 관측열 생성 확률 계산 예제)

time t에서 state의 이동 경로 hidden

내가 알고자 하는 것 : '서강대학교' 단어모델이 주어졌을 때, 생성확률을 구하고 싶은데, state 이동경로를 가정하고, 

 

12233345로 이동했다고 가정,

8.2.1.3 HMM의 세가지 기본문제(인식: Total Likelihood Method)

따라서, Pr(𝑂|𝑀)은 가능한 모든 상태열에 대해, 각각의 Pr(𝑂,𝑆|𝑀)을 누적함으로써 구할 수 있음

Pr(𝑂,𝑆|𝑀) : 우리가 계산할 수 있는 것

시간 복잡도가 많이 증가함

 

가능한 모든 상태열의 개수가 𝑁𝑇가 되어, 시간 복잡도가 𝑂(2T𝑁T)가 됨

 

8.2.1.4 HMM의 세가지 기본 문제(인식: Forward algorithm)

Dynamic programming기법을 이용해서 total likelihood method의 시간 복잡도를 𝑂(𝑁2𝑇)로 줄이는 방법