SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
やるおが
               Triphone HMMを
                作るようです

                     June 7, 2011, Shinya Shimizu
                            (@kakenman)
2011年6月7日火曜日
       ____
        /͡  ͡\
      /( ●)  (●)\
     /::::::͡(__人__)͡::::: \    今日はなんとなくtriphone音響モデルを作りたい気分だお!
     |     |r┬-|     |    
     \      `ー'´     /




        /      \
      /  _ノ  ヽ、_  \
     / o゚((●)) ((●))゚o \  でもぶっちゃけmonophone音響モデルもよく分かってないお
     |     (__人__)    |   HTKに詳しいやらない夫に聞いてみるお!
     \     ` ͡´     /




2011年6月7日火曜日
    |┃三 ガラッ
                   |┃  ____
                   |┃/͡  ͡\
                   |┃(●)  (●) \
               ̶̶‐.|┃:͡(__人__)͡:::::\   えへへっ
                   |┃  |r┬-|     |͡) HTKの使い方教えてくれだお!
                   |┃   `ー'ォ     //
                   (͡ヽ・    ・ ̄ /
                   |┃ノ       /
                   |┃   つ   <
                   |┃  (::)(::)   ヽ
                   |┃/    >  )
                   |┃     (__)


                   |┃
                   |┃  ____
                   |┃/͡  ͡\
                   |┃ (̶)  (̶)\
               ̶̶‐.|┃:͡(__人__)͡:::::\
                   |┃           |
                   |┃          /
                   |┃ヽ・    ・ ̄ /
                   |┃ \    ,.:∴~・:,゜・~・:,゜・ ,
                   |┃ヽ_)つ ∴・゜゜・・∴~・:,゜・・∴
                   |┃  (::)(::)  ヽ    ・゜゜・∴~゜
                   |┃/    >  )    ゜゜・∴:,゜・~
                   |┃     (__)    :,゜・~:,゜・゜゜・~


2011年6月7日火曜日
      / ̄ ̄\
            /ノ( _ノ  \
            | ͡(( ●)(●) < HTKBook読んで勝手にやってろ!
            .|     (__人__) /͡l
             |     ` ͡´ノ |`'''| 
            / ͡ヽ     }  |  |            ____    ぐぇあ
           /  へ  \   }__/ /           /─  ̶\   
         / / |      ノ   ノ           /●))  ((●\ . , ・
        ( _ ノ    |      \´       _   /    (__人__) ,∴\ ,   
               |       \_,, -‐ ''"   ̄ ゙̄''̶---└'´ ̄`ヽ/  > て 
               .|                        __ ノ /  (
               ヽ           _,, -‐ ''" ̄ヽ、 ̄ `ー'´  /  r'" ̄
                 \       , '´          /       .| 
                  \     (           /       |
                    \    \        /         |




2011年6月7日火曜日
      ____
         /      \
       /  _ノ  ヽ、_  \
      / o゚((●)) ((●))゚o \  でもHTKBookは英語だお・・・
      |     (__人__)    |  そもそもBaum-WelchどころかHMMもよくわかってないお   
      \     ` ͡´     /  でもHTKが使えるようにしてくれだお



      / ̄ ̄\
     /   _ノ  \    HMMわかってなくてHTKが理解できるわけないだろ・・・
     |    ( ●)(●)   
    . |     (__人__)   まぁ,だが一応だいたいの説明をしながら演習をすることはできる
      |     ` ͡´ノ   就職も決まったし教えてやるよ・・・
    .  |         }
    .  ヽ        }
       ヽ     ノ        \
       /    く  \        \    
       |     \   \         \
        |    |ヽ、二͡)、          \




2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    まず,HMMだが,HMMについてちゃんと説明し出すと結構な手間だ.
  |    ( ●)(●)   全く分かってないんなら,「(時間的に)変化する特徴量の系列を記述したもの」
 . |     (__人__)   と思っておけばいい.音素の数だけHMMを作って,入力音声に対して,
   |     ` ͡´ノ   /a/のHMMはどうか?/i/のHMMはどうか・・・と順番にあてはめていって,
 .  |         }    一番それっぽいものを認識結果とするわけだな.
 .  ヽ        }    
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \


      ※ HMMは「(時間的に)変化する特徴量のモデル化」というのがポイント。時間的に定常なもの、例えば画像がリン
      ゴかナシかの分類をしたいのであれば、単に画素について、「りんごの画素の分布」と「ナシの画素の分布」を学
      習すればよい。ところが、音声の場合は時間的に変化するので、時間的に分布が変化していくようなモデルを用い
      る必要がある。




2011年6月7日火曜日
  / ̄ ̄\
   /   _ノ  \    で,/a/のHMM,/i/のHMM...を作成してやる必要がある.
   |    ( ●)(●)   そこで用いられるHMMの学習アルゴリズムがBaum-Welchアルゴリズムだ.
  . |     (__人__)   これも詳細は説明しないが,このアルゴリズムはHMMを0から作ることは
    |     ` ͡´ノ   できない.既にあるHMMのパラメータをアップデートし改良することだけだ.
  .  |         }    
  .  ヽ        }    
     ヽ     ノ        \
     /    く  \        \    
     |     \   \         \
      |    |ヽ、二͡)、          \

            ____
         / ノ  \\
        / (●)  (●)\     HMMの作成にHMMが必要とか,意味不明だお・・・
      / ∪  (__人__)  \    頭がおかしくなったのかお・・・
      |      ` ͡´    |
       \ /͡)͡)͡)   //͡)͡)͡)
      ノ  | / / /   (͡) / / / /
    /´    | :::::::::::(͡)  ゝ  :::::::::::/
   |    l  |     ノ  /  )  /
   ヽ    ヽ_ヽ    /'   /    /
    ヽ __     /   /   /

2011年6月7日火曜日
        / ̄ ̄\ 
            /       \       
            |::::::        |      まだ説明は途中だろ,常識的に考えて・・・
           . |:::::::::::     |     
             |::::::::::::::    |          ....,:::´, .  
           .  |::::::::::::::    }          ....:::,,  ..
           .  ヽ::::::::::::::    }         ,):::::::ノ .
              ヽ::::::::::  ノ        (:::::ソ: .
              /:::::::::::: く         ,ふ´..
      -̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶  
               |:::::::::::::::|ヽ、二͡)━~~'´




2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    Baum-Welchは0からHMMを作ることはできないから,初期HMMがいる.
  |    ( ●)(●)   そして初期HMMの作り方には二種類ある.
 . |     (__人__)   ひとつは,自分で必死で音声を切り出して,ここからここまでが/a/ですよ,
   |     ` ͡´ノ   と教えてやって初期モデルを作る方法だ.HInitコマンドを使ってやる.
 .  |         }    だが,音声を切り出すのが面倒だし,今回はやらん.
 .  ヽ        }    
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \



      ※ Baum-WelchとEM: 一般的に,隠れ変数を持つモデルのパラメータ推定を,隠れ変数の期待値(Expectation)を求める
      のと,パラメータの最尤推定解を求める(Maximization)のを繰り返すアルゴリズムをEMアルゴリズム(Expectation
      Maximization algorithm)と呼ぶ.HMMに対しEMの考え方を用いてパラメータ推定を行うアルゴリズムをBaum-Welch
      アルゴリズムという.つまり,EMは一般名,Baum-WelchはHMMに固有な名前と考えればよい.
       ちなみに,Baum-Welchの考え方は,(E)「どこがどの音素っぽいか求める」(M)「じゃあ音素の特徴がわかる」(E)
      「それを用いてどこがどの音素っぽいか再推定する」(M)「音素の特徴を再推定する」(E)「どこがどの音素っぽい
      か(ry となる.

2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    もう一つの方法は,「どこからどこまでが/a/とかわかんないから,全部同じ
  |    ( ●)(●)   初期値でいいや」という方法だ.flat startと呼ばれる.今回はこれを使う.
 . |     (__人__)  
   |     ` ͡´ノ   コマンドとしては,HCompVを使う.これを使って,全部ひっくるめた平均の
 .  |         }    初期モデルを作成しているのがtutorialの2だ.
 .  ヽ        }    3では,それを全音素にコピーして初期値としている.
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \




     ※ 前ページのEMでも触れたが,「音素の特徴を推定するには,どこがどの音素か見極める必要がある.」「どこが
     どの音素か見極めるには,音素の特徴が分かっていなければならない」という「服を買いに行く服がない」問題を
     どう解くかがポイントになる。



2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    
  |    ( ●)(●)   
 . |     (__人__)  
   |     ` ͡´ノ  これで初期HMMができた.あとはラベル(どの音声ファイルがどの音素列で
 .  |         }   構成されているか)と音声ファイルを使ってHMMをアップデートしていくだろ,
 .  ヽ        }   常識的に考えて.
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \




2011年6月7日火曜日
      / ̄ ̄ ̄\
      / ─    ─ \
     /  (●)  (●)  \.   ラベルはあるけど,spが書き起こされていないお
     |    (__人__)    |   このままだと,spは一回も登場していないから学習されないお
     \    ` ͡´    /  それでいいのかお
     /              \

   / ̄ ̄\
  /   _ノ  \    
  |    ( ●)(●)  そこに気付くとはなかなか鋭いな. 
 . |     (__人__)   spはどこで発声されるか分かりづらく,書き起こされていないことが多いんだ.
   |     ` ͡´ノ  普通,音声を聞いて書き起こすのではなく,セリフを予め用意して読んでもらう
 .  |         }   わけだしな.
 .  ヽ        }   
    ヽ     ノ    だがとりあえずあんまり気にしなくていい.無視して学習しろ.コマンドは
    /    く  \  HERest (Embedded Re-estimation) だ.tutorialの4がこれに当たるな.  
    |     \   \         \
     |    |ヽ、二͡)、          \



   ※ sp: short pause. 文の間ではなく,文中に任意に現れる休止区間.息継ぎとか.文の読み方によってどこで現れる
   かが異なるので,どこにあるか分からない.


2011年6月7日火曜日
       ____
       /      \
     /  _ノ  ヽ、_  \
    / o゚((●)) ((●))゚o \  ほんとはちゃんとしたラベルで学習したいんだお・・・
    |     (__人__)'    |
    \     `͡´     /

         ____
       /      \
     /  _ノ  ヽ、_  \
    /  o゚͡   ゚͡o  \  でもどこにspが入っているかまでラベルに書いていないお・・・
    |     (__人__)    |
    \     ` ͡´     /

         ____
       /͡  ͡\
     /( ●)  (●)\
    /::::::͡(__人__)͡::::: \   だからspはなかったことにして学習するお!
    |     |r┬-|     |
    \      `ー'´     /




2011年6月7日火曜日
     ____
     /      \ ( ;;;;(
    /  _ノ  ヽ__\) ;;;;)
  /    (─)  (─ /;;/
  |       (__人__) l;;,´ spを無視してとりあえずsp以外を学習したものの,
  /      ∩ ノ)━・'/ spの学習はどうするんだお・・・
  (   \ / _ノ´.|  |
  .\  "  /__|  |
    \ /___ /


     / ̄ ̄\
   /   _ノ  \
   |    ( ●)(●)
  . |     (__人__)   大丈夫だ.spは要はポーズだ.
    |     ` ͡´ノ   長さなど多少は違うものの,silE, silBとかなり似ているんだ.
  .  |         }    とりあえず,silEをコピーしてspにしておけばいいだろう.
  .  ヽ        }    これがtutorialの5だな。
     ヽ     ノ        \
     /    く  \        \
     |     \   \         \
      |    |ヽ、二͡)、          \



2011年6月7日火曜日
  |王|  ┴ ソ  十/  | |   | | _丿
 ニ|ニ|ニ  二 王  /レ、  レ |  | | \   
 ノ ヽ   口 我  Vン   ノ  ・・   )  いくらなんでもsilEをコピーしてspってのはひどいお
                      ヽ  それだったらそもそもspを作る必要がないお!
        /  \  丿\     `v'͡ヽ/͡ヽ/      ,. ‐- .. _
       /  ( ●)  (●)                  /  __  `` ー- 、
     /  ::::::͡(_人__)͡ヽ               , ィ/   ゝヽ ̄ヽ ー- '
     |       |r┬-|   |            _ / { {ヽ、_   ヽ' ノ_,.〉  
     \        `ー'´  /ァー- 、_ ... -‐ '    ヽヽ、 `>、..ノ=┘
       /j >-‐ ' ´/ /   /    /   _ノ      \ `ー '!
   , -‐ 7´/{͡|  / _/   j                  >‐'
  / / //| 〉‐f/ \'    !                ,  ' ´
 / ,' > .|/ レ   ゚ノ    |           ,.. -‐ '"
/  {  ヽ |  〉  /__  t     ,. -‐ ' ´
  |   ヽ| / /  '   `  ヽ、  /
  |   `!//           /



        / ̄ ̄\ 
      /       \       spを含めてそれらしい音響モデルができたんだ,
      |::::::        |      それを使ってspの場所をdetectして
     . |:::::::::::     |     ラベルを書き直して学習し直すだろ,常識的に考えて・・・
       |::::::::::::::    |          ....,:::´, .  
     .  |::::::::::::::    }          ....:::,,  ..
     .  ヽ::::::::::::::    }         ,):::::::ノ .
        ヽ::::::::::  ノ        (:::::ソ: .
        /:::::::::::: く         ,ふ´..
-̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶  
         |:::::::::::::::|ヽ、二͡)━~~'´
2011年6月7日火曜日
      / ̄ ̄ ̄\
      / ─    ─ \
     /  (●)  (●)  \.   よくわからないお.
     |    (__人__)    |   spを無視して学習するのは必要だったのかお?
     \    ` ͡´    /  
     /              \




     / ̄ ̄\
   /   _ノ  \    本当はsp入りのラベルが欲しいが,どこにspが入っているか分からない.
   |    ( ●)(●)  そこでどこにspが入っているか自動推定したいんだが,そのためには
  . |     (__人__)  どこがどの音っぽい,という情報,HMMが必要になる.
    |     ` ͡´ノ  HMMを作るのにHMMが必要になるわけだ.そこで,まずspを無視して
  .  |         }   粗いHMMを作成しておいて,それを使ってspの位置を推定して,改めて
  .  ヽ        }   学習し直すんだ.
     ヽ     ノ    spの位置を推定しているのがtutorialの6,それを用いて学習し直して
     /    く  \ いるのがtutorialの7だ.
     |     \   \         \
      |    |ヽ、二͡)、          \



2011年6月7日火曜日
     ____
           /      \ ( ;;;;(
          /  _ノ  ヽ__\) ;;;;)
        /    (─)  (─ /;;/
        |       (__人__) l;;,´  なんか面倒だお・・・
        /      ∩ ノ)━・'/  
        (   \ / _ノ´.|  |
        .\  "  /__|  |
          \ /___ /

     / ̄ ̄\
   /   _ノ  \   
   |    ( ●)(●)   面倒なようだが,これはBaum-Welchを使う上での宿命だな.
  . |     (__人__)   Baum-Welchは,HMMのパラメータを更新するんだが,更新前のパラメータ
    |     ` ͡´ノ  から近い局所最適解に近づくだけ,という特徴がある.
  .  |         }   つまり,初期値を適切に設定してやる必要があるわけだ.
  .  ヽ        }    そのため,初期値を更新してBaum-Welch・・・初期値を更新して
     ヽ     ノ    Baum-Welch・・・という手順を踏むことになる.
     /    く  \       
     |     \   \         \
      |    |ヽ、二͡)、          \


   ※実際にはBaum-Welchの問題というよりはもっと大きな「服を買いに行く服がない」問題


2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    
  |    ( ●)(●)   
 . |     (__人__)  
   |     ` ͡´ノ   これでようやく,monophone音響モデルの完成だ.
 .  |         }    
 .  ヽ        }    
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \




2011年6月7日火曜日
      / ̄ ̄ ̄\
                / ─    ─ \
               /  (●)  (●)  \.   
               |    (__人__)    |   monophone音響モデル?
               \    ` ͡´    /  
               /              \



            / ̄ ̄\
           /   _ノ  \    
           |    ( ●)(●)  
          . |     (__人__)  
            |     ` ͡´ノ  
          .  |         }   ああ,monophoneだ.
          .  ヽ        }   
             ヽ     ノ   
             /    く  \ 
             |     \   \         \
              |    |ヽ、二͡)、          \




2011年6月7日火曜日
                   γ ͡͡ヽ    やるおはtriphoneの作り方を聞いたんだお!!
     / ̄ ̄\           ( ( ヽ ) ノ   monophoneなんて要らないんだお!
   /_ノ     \     (͡) 三  ノ 从 ゝ
   ( ●)( ●)  ヽ   三/ | ニ  ____     (͡)   
  . | (__人__) u  }   |  |   /\   / ) し / |  ミ  
    | ` ͡´    ノ   !   、 /(○ )::(○ )͡\/ | ミ   
  .  |         }    \./:::::::(_人_)::::::::  i'   |
  .  ヽ        }      |     )ww)     |  |
     ヽ     ノ   ヘ   \    `ー"      ノ
     /    く 、_/っ/      \ .    .   \
     |     \--一''           \
      |    |ヽ、二͡)、          \

      まぁまて,落ち着け・・・




2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    さっきもいった通り,Baum-WelchによるHMMの更新には初期値が重要になる
  |    ( ●)(●)   突然triphoneを作ると,初期値が適当でないから変な値になってしまうんだ.
 . |     (__人__)   triphoneは,monophoneの種類の三乗の種類があるんだからな.※
   |     ` ͡´ノ   ここまでで作ったmonophoneのHMMを初期値として,triphoneのHMMを
 .  |         }    学習するんだ.
 .  ヽ        }    
    ヽ     ノ    ここらがtutorialの10,11,12に当たるな.
    /    く  \  言い忘れていたが,monophone->triphoneなど,HMMの変更には
    |     \   \    HHEd(HMM Edit)を用いる
     |    |ヽ、二͡)、          \




      ※一般論として,求めるべきパラメータに対して学習サンプルが少なすぎると,たまたま出てきたサンプルに適合
      するように学習されてしまって汎用性がなくなる.これを過学習(Overfitting)という.
      これを防ぐため,今回のように,だいたいこういう値だよ,という事前知識を与えてやる方法がよく用いられる
       ちなみに,triphoneはmonophoneの三乗あるってのは実は嘘.t t t とかいうtriphoneが存在しないように,言語的
      に存在し得ない音素列は多い.



2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    
  |    ( ●)(●)   
 . |     (__人__)  
   |     ` ͡´ノ   これで,基本的にtriphoneHMMは完成だ.
 .  |         }    
 .  ヽ        }    
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \




       / ̄ ̄ ̄\
     / ─    ─ \
    /  (●)  (●)  \.   まだtutorialには13,14,15,16,17があるお
    |    (__人__)    |   こいつらは不要なのかお
    \    ` ͡´    /  
    /              \




2011年6月7日火曜日
                  
           / ̄ ̄\     それは,triphoneの過学習を緩和するために状態共有を行ったり,
         /       \    HMMの出力分布をSingle GaussianからGaussian Mixtureに
         |::::::        |  変更したりしている部分だな.GMM(Gaussian Mixture Model)は
        . |:::::::::::     |  はSingle Gaussianより記述力が高く,より自由なモデル化ができる
          |::::::::::::::    | 
        .  |::::::::::::::    }          ....:::,,  ..
        .  ヽ::::::::::::::    }         ,):::::::ノ .
           ヽ::::::::::  ノ        (:::::ソ: .
           /:::::::::::: く         ,ふ´..
   -̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶  
            |:::::::::::::::|ヽ、二͡)━~~'´




             / ̄ ̄ ̄\
           / ─    ─ \
          /  (●)  (●)  \.   日本語でおkだお
          |    (__人__)    |  
          \    ` ͡´    /  
          /              \



2011年6月7日火曜日
  / ̄ ̄\
  /   _ノ  \    
  |    ( ●)(●)   
 . |     (__人__)  
   |     ` ͡´ノ   まぁ,この辺は別に本質じゃない.説明しようと思えばできるが・・・
 .  |         }    今日はとりあえずここまででいいだろう.ちゃんとtriphoneHMMはできたしな.
 .  ヽ        }    
    ヽ     ノ        \
    /    く  \        \    
    |     \   \         \
     |    |ヽ、二͡)、          \




2011年6月7日火曜日
               / ̄ ̄\
                   /  ヽ_  .\    というわけで,これで終了だ.
                  ( ●)( ●)  |   あとはHTKBookを読んで頑張ってくれ.
                  (__人__)      |    
                  l` ͡´    |    
                  {         |     やるおがTriphone HMMを作るようです
                  {       /       完
                  ヽ     ノ
              ▼/ ̄      ̄ ̄)____
            〃(⊥) ´/    / ̄ ̄/ /   〃 ͡i
        ___i /͡\./   /∧ ∧し' __|;;;;;;;;;;i




2011年6月7日火曜日
使ったコマンドまとめ1
    •    HCopy
        •      特徴量抽出コマンド.今回はwavからMFCCを作った.

    •    HCompV
        •      データ全ての平均と分散をとる.flat startのHMMの初期化に使う

    •    HInit & HRest
        •      bootstrapped startの時に使う.手動で音声を切り分けてHMMを初期
               化

    •    HERest ( Embedded Re-estimation)
        •      音声データとその音素ラベルを用いて,Baum-WelchによりHMMのパ
               ラメータ更新を行う.

    •    HERestとHRestの違い

        •      HERestはEmbedded.手動で音声を切り分けずに,「こことここが同
               じ音」という条件だけをもとに自動切り分けをしつつ学習する.
               HRestは手動切り分けが必要.

2011年6月7日火曜日
使ったコマンドまとめ2

        •      HParse
            •     手動で作成した認識用文法をコンパイルして認識に使える形式に
                  する.

        •      HVite (Viterbi)
            •     文法による音声認識を行う.(大語彙連続音声認識は無理)

            •     認識結果を与えて音素のアラインメントに用いることもできる.

            •     結果を与えた音素アラインメントを強制アラインメントという

        •      HLEd (Label Edit)
            •     ラベルファイルを編集する.今回はmonophoneラベルからtriphone
                  ラベルへの変更に用いた.

        •      HHEd (HMM Edit)
            •     HMMを編集する.今回はMixture数の変更などに用いた.


2011年6月7日火曜日

Más contenido relacionado

La actualidad más candente

異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知Ken'ichi Matsui
 
PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装Shohei Taniguchi
 
新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るにはAsai Masataro
 
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...Deep Learning JP
 
Autoencoderの実装と愉快な仲間との比較
Autoencoderの実装と愉快な仲間との比較Autoencoderの実装と愉快な仲間との比較
Autoencoderの実装と愉快な仲間との比較YumaMatsuoka
 
メルペイの与信モデリングにおける特徴量の品質向上の施策
メルペイの与信モデリングにおける特徴量の品質向上の施策メルペイの与信モデリングにおける特徴量の品質向上の施策
メルペイの与信モデリングにおける特徴量の品質向上の施策Mai Nakagawa
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language SupervisionDeep Learning JP
 
[DL輪読会]医用画像解析におけるセグメンテーション
[DL輪読会]医用画像解析におけるセグメンテーション[DL輪読会]医用画像解析におけるセグメンテーション
[DL輪読会]医用画像解析におけるセグメンテーションDeep Learning JP
 
WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響NU_I_TODALAB
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIShota Imai
 
データ解析13 線形判別分析
データ解析13 線形判別分析データ解析13 線形判別分析
データ解析13 線形判別分析Hirotaka Hachiya
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピTakahiro Kubo
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向Koichiro Mori
 
AbemaTVにおける推薦システム
AbemaTVにおける推薦システムAbemaTVにおける推薦システム
AbemaTVにおける推薦システムcyberagent
 
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation 「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation Takumi Ohkuma
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 Preferred Networks
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向Yusuke Uchida
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII
 

La actualidad más candente (20)

異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知
 
PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装
 
新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには新分野に飛び入って半年で業績を作るには
新分野に飛び入って半年で業績を作るには
 
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...
[DLHacks 実装]Network Dissection: Quantifying Interpretability of Deep Visual R...
 
Autoencoderの実装と愉快な仲間との比較
Autoencoderの実装と愉快な仲間との比較Autoencoderの実装と愉快な仲間との比較
Autoencoderの実装と愉快な仲間との比較
 
メルペイの与信モデリングにおける特徴量の品質向上の施策
メルペイの与信モデリングにおける特徴量の品質向上の施策メルペイの与信モデリングにおける特徴量の品質向上の施策
メルペイの与信モデリングにおける特徴量の品質向上の施策
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
 
[DL輪読会]医用画像解析におけるセグメンテーション
[DL輪読会]医用画像解析におけるセグメンテーション[DL輪読会]医用画像解析におけるセグメンテーション
[DL輪読会]医用画像解析におけるセグメンテーション
 
WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
データ解析13 線形判別分析
データ解析13 線形判別分析データ解析13 線形判別分析
データ解析13 線形判別分析
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
 
AbemaTVにおける推薦システム
AbemaTVにおける推薦システムAbemaTVにおける推薦システム
AbemaTVにおける推薦システム
 
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation 「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 

Similar a やるおがtriphone HMMを作るようです

やる夫で学ぶマーケティング
やる夫で学ぶマーケティングやる夫で学ぶマーケティング
やる夫で学ぶマーケティングlogch admin
 
ゆとりがErlangを始めるようです
ゆとりがErlangを始めるようですゆとりがErlangを始めるようです
ゆとりがErlangを始めるようですsleepy_yoshi
 
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDDKohki Miki
 
Eucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpvEucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpvOsamu Habuka
 
モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作hecomi
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門Ryo Miyake
 
PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)mochiko AsTech
 
20141115グンマーのヤボー
20141115グンマーのヤボー20141115グンマーのヤボー
20141115グンマーのヤボーgurezo
 
Source treeで始めるgit
Source treeで始めるgitSource treeで始めるgit
Source treeで始めるgitSatoshi Kamigaki
 
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話Tomoo Amano
 

Similar a やるおがtriphone HMMを作るようです (13)

やる夫で学ぶマーケティング
やる夫で学ぶマーケティングやる夫で学ぶマーケティング
やる夫で学ぶマーケティング
 
ゆとりがErlangを始めるようです
ゆとりがErlangを始めるようですゆとりがErlangを始めるようです
ゆとりがErlangを始めるようです
 
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD
 
Eucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpvEucalyptus 3.1 and next in #occpv
Eucalyptus 3.1 and next in #occpv
 
モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作モテる! Node.js でつくる twitter ボット制作
モテる! Node.js でつくる twitter ボット制作
 
Dev camp25 lt
Dev camp25 ltDev camp25 lt
Dev camp25 lt
 
Title
TitleTitle
Title
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
 
Gitのすすめ
GitのすすめGitのすすめ
Gitのすすめ
 
PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)PHP使いから見たRuby(Talking about PHP & Ruby)
PHP使いから見たRuby(Talking about PHP & Ruby)
 
20141115グンマーのヤボー
20141115グンマーのヤボー20141115グンマーのヤボー
20141115グンマーのヤボー
 
Source treeで始めるgit
Source treeで始めるgitSource treeで始めるgit
Source treeで始めるgit
 
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
 

やるおがtriphone HMMを作るようです

  • 1. やるおが Triphone HMMを 作るようです June 7, 2011, Shinya Shimizu (@kakenman) 2011年6月7日火曜日
  • 2.        ____      /͡  ͡\    /( ●)  (●)\   /::::::͡(__人__)͡::::: \    今日はなんとなくtriphone音響モデルを作りたい気分だお!   |     |r┬-|     |       \      `ー'´     /      /      \    /  _ノ  ヽ、_  \   / o゚((●)) ((●))゚o \  でもぶっちゃけmonophone音響モデルもよく分かってないお   |     (__人__)    |   HTKに詳しいやらない夫に聞いてみるお!   \     ` ͡´     / 2011年6月7日火曜日
  • 3.     |┃三 ガラッ     |┃  ____     |┃/͡  ͡\     |┃(●)  (●) \ ̶̶‐.|┃:͡(__人__)͡:::::\   えへへっ     |┃  |r┬-|     |͡) HTKの使い方教えてくれだお!     |┃   `ー'ォ     //     (͡ヽ・    ・ ̄ /     |┃ノ       /     |┃   つ   <     |┃  (::)(::)   ヽ     |┃/    >  )     |┃     (__)     |┃     |┃  ____     |┃/͡  ͡\     |┃ (̶)  (̶)\ ̶̶‐.|┃:͡(__人__)͡:::::\     |┃           |     |┃          /     |┃ヽ・    ・ ̄ /     |┃ \    ,.:∴~・:,゜・~・:,゜・ ,     |┃ヽ_)つ ∴・゜゜・・∴~・:,゜・・∴     |┃  (::)(::)  ヽ    ・゜゜・∴~゜     |┃/    >  )    ゜゜・∴:,゜・~     |┃     (__)    :,゜・~:,゜・゜゜・~ 2011年6月7日火曜日
  • 4.       / ̄ ̄\     /ノ( _ノ  \     | ͡(( ●)(●) < HTKBook読んで勝手にやってろ!     .|     (__人__) /͡l      |     ` ͡´ノ |`'''|      / ͡ヽ     }  |  |            ____    ぐぇあ    /  へ  \   }__/ /           /─  ̶\     / / |      ノ   ノ           /●))  ((●\ . , ・ ( _ ノ    |      \´       _   /    (__人__) ,∴\ ,           |       \_,, -‐ ''"   ̄ ゙̄''̶---└'´ ̄`ヽ/  > て         .|                        __ ノ /  (        ヽ           _,, -‐ ''" ̄ヽ、 ̄ `ー'´  /  r'" ̄          \       , '´          /       .|            \     (           /       |             \    \        /         | 2011年6月7日火曜日
  • 5.       ____      /      \    /  _ノ  ヽ、_  \   / o゚((●)) ((●))゚o \  でもHTKBookは英語だお・・・   |     (__人__)    |  そもそもBaum-WelchどころかHMMもよくわかってないお      \     ` ͡´     /  でもHTKが使えるようにしてくれだお   / ̄ ̄\  /   _ノ  \    HMMわかってなくてHTKが理解できるわけないだろ・・・  |    ( ●)(●)    . |     (__人__)   まぁ,だが一応だいたいの説明をしながら演習をすることはできる   |     ` ͡´ノ   就職も決まったし教えてやるよ・・・ .  |         } .  ヽ        }    ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 6.   / ̄ ̄\  /   _ノ  \    まず,HMMだが,HMMについてちゃんと説明し出すと結構な手間だ.  |    ( ●)(●)   全く分かってないんなら,「(時間的に)変化する特徴量の系列を記述したもの」 . |     (__人__)   と思っておけばいい.音素の数だけHMMを作って,入力音声に対して,   |     ` ͡´ノ   /a/のHMMはどうか?/i/のHMMはどうか・・・と順番にあてはめていって, .  |         }    一番それっぽいものを認識結果とするわけだな. .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ ※ HMMは「(時間的に)変化する特徴量のモデル化」というのがポイント。時間的に定常なもの、例えば画像がリン ゴかナシかの分類をしたいのであれば、単に画素について、「りんごの画素の分布」と「ナシの画素の分布」を学 習すればよい。ところが、音声の場合は時間的に変化するので、時間的に分布が変化していくようなモデルを用い る必要がある。 2011年6月7日火曜日
  • 7.   / ̄ ̄\  /   _ノ  \    で,/a/のHMM,/i/のHMM...を作成してやる必要がある.  |    ( ●)(●)   そこで用いられるHMMの学習アルゴリズムがBaum-Welchアルゴリズムだ. . |     (__人__)   これも詳細は説明しないが,このアルゴリズムはHMMを0から作ることは   |     ` ͡´ノ   できない.既にあるHMMのパラメータをアップデートし改良することだけだ. .  |         }     .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \           ____        / ノ  \\       / (●)  (●)\     HMMの作成にHMMが必要とか,意味不明だお・・・     / ∪  (__人__)  \    頭がおかしくなったのかお・・・     |      ` ͡´    |      \ /͡)͡)͡)   //͡)͡)͡)     ノ  | / / /   (͡) / / / /   /´    | :::::::::::(͡)  ゝ  :::::::::::/  |    l  |     ノ  /  )  /  ヽ    ヽ_ヽ    /'   /    /   ヽ __     /   /   / 2011年6月7日火曜日
  • 8.         / ̄ ̄\        /       \              |::::::        |      まだ説明は途中だろ,常識的に考えて・・・      . |:::::::::::     |             |::::::::::::::    |          ....,:::´, .        .  |::::::::::::::    }          ....:::,,  ..      .  ヽ::::::::::::::    }         ,):::::::ノ .         ヽ::::::::::  ノ        (:::::ソ: .         /:::::::::::: く         ,ふ´.. -̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶            |:::::::::::::::|ヽ、二͡)━~~'´ 2011年6月7日火曜日
  • 9.   / ̄ ̄\  /   _ノ  \    Baum-Welchは0からHMMを作ることはできないから,初期HMMがいる.  |    ( ●)(●)   そして初期HMMの作り方には二種類ある. . |     (__人__)   ひとつは,自分で必死で音声を切り出して,ここからここまでが/a/ですよ,   |     ` ͡´ノ   と教えてやって初期モデルを作る方法だ.HInitコマンドを使ってやる. .  |         }    だが,音声を切り出すのが面倒だし,今回はやらん. .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ ※ Baum-WelchとEM: 一般的に,隠れ変数を持つモデルのパラメータ推定を,隠れ変数の期待値(Expectation)を求める のと,パラメータの最尤推定解を求める(Maximization)のを繰り返すアルゴリズムをEMアルゴリズム(Expectation Maximization algorithm)と呼ぶ.HMMに対しEMの考え方を用いてパラメータ推定を行うアルゴリズムをBaum-Welch アルゴリズムという.つまり,EMは一般名,Baum-WelchはHMMに固有な名前と考えればよい.  ちなみに,Baum-Welchの考え方は,(E)「どこがどの音素っぽいか求める」(M)「じゃあ音素の特徴がわかる」(E) 「それを用いてどこがどの音素っぽいか再推定する」(M)「音素の特徴を再推定する」(E)「どこがどの音素っぽい か(ry となる. 2011年6月7日火曜日
  • 10.   / ̄ ̄\  /   _ノ  \    もう一つの方法は,「どこからどこまでが/a/とかわかんないから,全部同じ  |    ( ●)(●)   初期値でいいや」という方法だ.flat startと呼ばれる.今回はこれを使う. . |     (__人__)     |     ` ͡´ノ   コマンドとしては,HCompVを使う.これを使って,全部ひっくるめた平均の .  |         }    初期モデルを作成しているのがtutorialの2だ. .  ヽ        }    3では,それを全音素にコピーして初期値としている.    ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ ※ 前ページのEMでも触れたが,「音素の特徴を推定するには,どこがどの音素か見極める必要がある.」「どこが どの音素か見極めるには,音素の特徴が分かっていなければならない」という「服を買いに行く服がない」問題を どう解くかがポイントになる。 2011年6月7日火曜日
  • 11.   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)    . |     (__人__)     |     ` ͡´ノ  これで初期HMMができた.あとはラベル(どの音声ファイルがどの音素列で .  |         }   構成されているか)と音声ファイルを使ってHMMをアップデートしていくだろ, .  ヽ        }   常識的に考えて.    ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 12.       / ̄ ̄ ̄\     / ─    ─ \    /  (●)  (●)  \.   ラベルはあるけど,spが書き起こされていないお    |    (__人__)    |   このままだと,spは一回も登場していないから学習されないお    \    ` ͡´    /  それでいいのかお    /              \   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)  そこに気付くとはなかなか鋭いな.  . |     (__人__)   spはどこで発声されるか分かりづらく,書き起こされていないことが多いんだ.   |     ` ͡´ノ  普通,音声を聞いて書き起こすのではなく,セリフを予め用意して読んでもらう .  |         }   わけだしな. .  ヽ        }       ヽ     ノ    だがとりあえずあんまり気にしなくていい.無視して学習しろ.コマンドは    /    く  \  HERest (Embedded Re-estimation) だ.tutorialの4がこれに当たるな.      |     \   \         \     |    |ヽ、二͡)、          \ ※ sp: short pause. 文の間ではなく,文中に任意に現れる休止区間.息継ぎとか.文の読み方によってどこで現れる かが異なるので,どこにあるか分からない. 2011年6月7日火曜日
  • 13.        ____      /      \    /  _ノ  ヽ、_  \   / o゚((●)) ((●))゚o \  ほんとはちゃんとしたラベルで学習したいんだお・・・   |     (__人__)'    |   \     `͡´     /        ____      /      \    /  _ノ  ヽ、_  \   /  o゚͡   ゚͡o  \  でもどこにspが入っているかまでラベルに書いていないお・・・   |     (__人__)    |   \     ` ͡´     /        ____      /͡  ͡\    /( ●)  (●)\   /::::::͡(__人__)͡::::: \   だからspはなかったことにして学習するお!   |     |r┬-|     |   \      `ー'´     / 2011年6月7日火曜日
  • 14.      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ spを無視してとりあえずsp以外を学習したものの, /      ∩ ノ)━・'/ spの学習はどうするんだお・・・ (   \ / _ノ´.|  | .\  "  /__|  |   \ /___ /    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__)   大丈夫だ.spは要はポーズだ.   |     ` ͡´ノ   長さなど多少は違うものの,silE, silBとかなり似ているんだ. .  |         }    とりあえず,silEをコピーしてspにしておけばいいだろう. .  ヽ        }    これがtutorialの5だな。    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 15.   |王|  ┴ ソ  十/  | |   | | _丿  ニ|ニ|ニ  二 王  /レ、  レ |  | | \     ノ ヽ   口 我  Vン   ノ  ・・   )  いくらなんでもsilEをコピーしてspってのはひどいお                       ヽ  それだったらそもそもspを作る必要がないお!         /  \  丿\     `v'͡ヽ/͡ヽ/      ,. ‐- .. _        /  ( ●)  (●)                  /  __  `` ー- 、      /  ::::::͡(_人__)͡ヽ               , ィ/   ゝヽ ̄ヽ ー- '      |       |r┬-|   |            _ / { {ヽ、_   ヽ' ノ_,.〉        \        `ー'´  /ァー- 、_ ... -‐ '    ヽヽ、 `>、..ノ=┘        /j >-‐ ' ´/ /   /    /   _ノ      \ `ー '!    , -‐ 7´/{͡|  / _/   j                  >‐'   / / //| 〉‐f/ \'    !                ,  ' ´  / ,' > .|/ レ   ゚ノ    |           ,.. -‐ '" /  {  ヽ |  〉  /__  t     ,. -‐ ' ´   |   ヽ| / /  '   `  ヽ、  /   |   `!//           /         / ̄ ̄\      /       \       spを含めてそれらしい音響モデルができたんだ,       |::::::        |      それを使ってspの場所をdetectして      . |:::::::::::     |     ラベルを書き直して学習し直すだろ,常識的に考えて・・・        |::::::::::::::    |          ....,:::´, .        .  |::::::::::::::    }          ....:::,,  ..      .  ヽ::::::::::::::    }         ,):::::::ノ .         ヽ::::::::::  ノ        (:::::ソ: .         /:::::::::::: く         ,ふ´.. -̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶            |:::::::::::::::|ヽ、二͡)━~~'´ 2011年6月7日火曜日
  • 16.       / ̄ ̄ ̄\     / ─    ─ \    /  (●)  (●)  \.   よくわからないお.    |    (__人__)    |   spを無視して学習するのは必要だったのかお?    \    ` ͡´    /      /              \    / ̄ ̄\  /   _ノ  \    本当はsp入りのラベルが欲しいが,どこにspが入っているか分からない.  |    ( ●)(●)  そこでどこにspが入っているか自動推定したいんだが,そのためには . |     (__人__)  どこがどの音っぽい,という情報,HMMが必要になる.   |     ` ͡´ノ  HMMを作るのにHMMが必要になるわけだ.そこで,まずspを無視して .  |         }   粗いHMMを作成しておいて,それを使ってspの位置を推定して,改めて .  ヽ        }   学習し直すんだ.    ヽ     ノ    spの位置を推定しているのがtutorialの6,それを用いて学習し直して    /    く  \ いるのがtutorialの7だ.    |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 17.      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´  なんか面倒だお・・・ /      ∩ ノ)━・'/   (   \ / _ノ´.|  | .\  "  /__|  |   \ /___ /    / ̄ ̄\  /   _ノ  \     |    ( ●)(●)   面倒なようだが,これはBaum-Welchを使う上での宿命だな. . |     (__人__)   Baum-Welchは,HMMのパラメータを更新するんだが,更新前のパラメータ   |     ` ͡´ノ  から近い局所最適解に近づくだけ,という特徴がある. .  |         }   つまり,初期値を適切に設定してやる必要があるわけだ. .  ヽ        }    そのため,初期値を更新してBaum-Welch・・・初期値を更新して    ヽ     ノ    Baum-Welch・・・という手順を踏むことになる.    /    く  \           |     \   \         \     |    |ヽ、二͡)、          \ ※実際にはBaum-Welchの問題というよりはもっと大きな「服を買いに行く服がない」問題 2011年6月7日火曜日
  • 18.   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)    . |     (__人__)     |     ` ͡´ノ   これでようやく,monophone音響モデルの完成だ. .  |         }     .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 19.       / ̄ ̄ ̄\     / ─    ─ \    /  (●)  (●)  \.       |    (__人__)    |   monophone音響モデル?    \    ` ͡´    /      /              \   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)   . |     (__人__)     |     ` ͡´ノ   .  |         }   ああ,monophoneだ. .  ヽ        }       ヽ     ノ       /    く  \     |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 20.                    γ ͡͡ヽ    やるおはtriphoneの作り方を聞いたんだお!!    / ̄ ̄\           ( ( ヽ ) ノ   monophoneなんて要らないんだお!  /_ノ     \     (͡) 三  ノ 从 ゝ  ( ●)( ●)  ヽ   三/ | ニ  ____     (͡)    . | (__人__) u  }   |  |   /\   / ) し / |  ミ     | ` ͡´    ノ   !   、 /(○ )::(○ )͡\/ | ミ    .  |         }    \./:::::::(_人_)::::::::  i'   | .  ヽ        }      |     )ww)     |  |    ヽ     ノ   ヘ   \    `ー"      ノ    /    く 、_/っ/      \ .    .   \    |     \--一''           \     |    |ヽ、二͡)、          \     まぁまて,落ち着け・・・ 2011年6月7日火曜日
  • 21.   / ̄ ̄\  /   _ノ  \    さっきもいった通り,Baum-WelchによるHMMの更新には初期値が重要になる  |    ( ●)(●)   突然triphoneを作ると,初期値が適当でないから変な値になってしまうんだ. . |     (__人__)   triphoneは,monophoneの種類の三乗の種類があるんだからな.※   |     ` ͡´ノ   ここまでで作ったmonophoneのHMMを初期値として,triphoneのHMMを .  |         }    学習するんだ. .  ヽ        }        ヽ     ノ    ここらがtutorialの10,11,12に当たるな.    /    く  \  言い忘れていたが,monophone->triphoneなど,HMMの変更には    |     \   \    HHEd(HMM Edit)を用いる     |    |ヽ、二͡)、          \ ※一般論として,求めるべきパラメータに対して学習サンプルが少なすぎると,たまたま出てきたサンプルに適合 するように学習されてしまって汎用性がなくなる.これを過学習(Overfitting)という. これを防ぐため,今回のように,だいたいこういう値だよ,という事前知識を与えてやる方法がよく用いられる  ちなみに,triphoneはmonophoneの三乗あるってのは実は嘘.t t t とかいうtriphoneが存在しないように,言語的 に存在し得ない音素列は多い. 2011年6月7日火曜日
  • 22.   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)    . |     (__人__)     |     ` ͡´ノ   これで,基本的にtriphoneHMMは完成だ. .  |         }     .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \       / ̄ ̄ ̄\     / ─    ─ \    /  (●)  (●)  \.   まだtutorialには13,14,15,16,17があるお    |    (__人__)    |   こいつらは不要なのかお    \    ` ͡´    /      /              \ 2011年6月7日火曜日
  • 23.                            / ̄ ̄\     それは,triphoneの過学習を緩和するために状態共有を行ったり,       /       \    HMMの出力分布をSingle GaussianからGaussian Mixtureに       |::::::        |  変更したりしている部分だな.GMM(Gaussian Mixture Model)は      . |:::::::::::     |  はSingle Gaussianより記述力が高く,より自由なモデル化ができる        |::::::::::::::    |       .  |::::::::::::::    }          ....:::,,  ..      .  ヽ::::::::::::::    }         ,):::::::ノ .         ヽ::::::::::  ノ        (:::::ソ: .         /:::::::::::: く         ,ふ´.. -̶̶̶̶̶|:::::::::::::::: \ -̶,̶̶ノ::ノ̶̶            |:::::::::::::::|ヽ、二͡)━~~'´       / ̄ ̄ ̄\     / ─    ─ \    /  (●)  (●)  \.   日本語でおkだお    |    (__人__)    |      \    ` ͡´    /      /              \ 2011年6月7日火曜日
  • 24.   / ̄ ̄\  /   _ノ  \      |    ( ●)(●)    . |     (__人__)     |     ` ͡´ノ   まぁ,この辺は別に本質じゃない.説明しようと思えばできるが・・・ .  |         }    今日はとりあえずここまででいいだろう.ちゃんとtriphoneHMMはできたしな. .  ヽ        }        ヽ     ノ        \    /    く  \        \        |     \   \         \     |    |ヽ、二͡)、          \ 2011年6月7日火曜日
  • 25.                / ̄ ̄\              /  ヽ_  .\    というわけで,これで終了だ.             ( ●)( ●)  |   あとはHTKBookを読んで頑張ってくれ.             (__人__)      |                 l` ͡´    |                 {         |     やるおがTriphone HMMを作るようです             {       /       完             ヽ     ノ         ▼/ ̄      ̄ ̄)____       〃(⊥) ´/    / ̄ ̄/ /   〃 ͡i   ___i /͡\./   /∧ ∧し' __|;;;;;;;;;;i 2011年6月7日火曜日
  • 26. 使ったコマンドまとめ1 • HCopy • 特徴量抽出コマンド.今回はwavからMFCCを作った. • HCompV • データ全ての平均と分散をとる.flat startのHMMの初期化に使う • HInit & HRest • bootstrapped startの時に使う.手動で音声を切り分けてHMMを初期 化 • HERest ( Embedded Re-estimation) • 音声データとその音素ラベルを用いて,Baum-WelchによりHMMのパ ラメータ更新を行う. • HERestとHRestの違い • HERestはEmbedded.手動で音声を切り分けずに,「こことここが同 じ音」という条件だけをもとに自動切り分けをしつつ学習する. HRestは手動切り分けが必要. 2011年6月7日火曜日
  • 27. 使ったコマンドまとめ2 • HParse • 手動で作成した認識用文法をコンパイルして認識に使える形式に する. • HVite (Viterbi) • 文法による音声認識を行う.(大語彙連続音声認識は無理) • 認識結果を与えて音素のアラインメントに用いることもできる. • 結果を与えた音素アラインメントを強制アラインメントという • HLEd (Label Edit) • ラベルファイルを編集する.今回はmonophoneラベルからtriphone ラベルへの変更に用いた. • HHEd (HMM Edit) • HMMを編集する.今回はMixture数の変更などに用いた. 2011年6月7日火曜日