2019년 7월 13일 토요일

음성인식 메모(kaldi) 6 - gmm training 3

「原作者へ」

連絡先を存じ上げませんでしたので、不本意ながら無断で翻訳しました。 
正式に翻訳を許可されたいです。 
gogyzzz@gmail.comでご連絡ください。

다음 포스트의 번역입니다.

http://work-in-progress.hatenablog.com/entry/2018/03/26/205433


Monophone 모델을 가지고 Triphone 모델을 만들어보자.

일단은 통계량 생성부터

bin/acc-tree-stats --ci-phones=1:2:3:4:5:6:7:8:9:10 2.mdl ark:mosimosi.ark ark:1.ali treeacc

phone index 1〜5은 「sil」、6〜10은 「spn(spoken noise)」

이어서, Decision Tree 생성시 필요한 Question list를 생성

bin/cluster-phones treeacc sets.int questions.int

(참고)input data 「sets.int」

1 2 3 4 5
6 7 8 9 10
11 12 13 14
15 16 17 18
19 20 21 22
23 24 25 26

phone index

  • 11〜14는 「I」、
  • 15〜18은 「M」、
  • 19〜22는 「O」、
  • 23〜26은 「S」,

컴파일 한다.

bin/compile-questions topo questions.int questions.qst

(참고)input data 「topo」

<Topology>
<TopologyEntry>
<ForPhones>
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
</ForPhones>
<State> 0 <PdfClass> 0 <Transition> 0 0.75 <Transition> 1 0.25 </State>
<State> 1 <PdfClass> 1 <Transition> 1 0.75 <Transition> 2 0.25 </State>
<State> 2 <PdfClass> 2 <Transition> 2 0.75 <Transition> 3 0.25 </State>
<State> 3 </State>
</TopologyEntry>
<TopologyEntry>
<ForPhones>
1 2 3 4 5 6 7 8 9 10
</ForPhones>
<State> 0 <PdfClass> 0 <Transition> 0 0.25 <Transition> 1 0.25 <Transition> 2 0.25 <Transition> 3 0.25 </State>
<State> 1 <PdfClass> 1 <Transition> 1 0.25 <Transition> 2 0.25 <Transition> 3 0.25 <Transition> 4 0.25 </State>
<State> 2 <PdfClass> 2 <Transition> 1 0.25 <Transition> 2 0.25 <Transition> 3 0.25 <Transition> 4 0.25 </State>
<State> 3 <PdfClass> 3 <Transition> 1 0.25 <Transition> 2 0.25 <Transition> 3 0.25 <Transition> 4 0.25 </State>
<State> 4 <PdfClass> 4 <Transition> 4 0.75 <Transition> 5 0.25 </State>
<State> 5 </State>
</TopologyEntry>
</Topology>

이어서, decision tree(결정트리)를 생성한다.

bin/build-tree treeacc roots.int questions.qst topo tree

(참고)input data 「roots.int」

shared split 1 2 3 4 5
shared split 6 7 8 9 10
shared split 11 12 13 14
shared split 15 16 17 18
shared split 19 20 21 22
shared split 23 24 25 26

tree(설명용으로 수정한 것)

ContextDependency
3   :context-width
1   :central-position

ToPdf
SE 1 [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ]{

   SE 1 [ 1 2 3 4 5 ]{
      CE 0
      SE 1 [ 6 7 8 9 10 ]{
         CE 1
         CE 2
      }
   } 

   SE 1 [ 15 16 17 18 ]{
      CE 3
      SE 1 [ 19 20 21 22 ]{
         CE 4
         CE 5
      } 
   }
} 
EndContextDependency 

tree를 그림으로 나타내면

녹색의 대괄호 안은 phone index를 나타낸다.

SE(SplitEventMap)의 key의 의미는 아래와 같다.

0(left phone)
1(center phone)
2(right phone)

갈색이 CE(ConstantEventMap)이고, leaf가 되는 pdf-id를 나타내고 있다.

생성된 결정트리를 가지고 Triphone의 초기 모델을 생성한다.

gmm-init-model tree treeacc topo tri_0.mdl

댓글 없음:

댓글 쓰기