SlideShare a Scribd company logo
1 of 27
Download to read offline
やるおが
               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日火曜日

More Related Content

What's hot

差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定
差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定
差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定Shinnosuke Takamichi
 
音声生成の基礎と音声学
音声生成の基礎と音声学音声生成の基礎と音声学
音声生成の基礎と音声学Akinori Ito
 
PCFG構文解析法
PCFG構文解析法PCFG構文解析法
PCFG構文解析法Yusuke Oda
 
機械翻訳の今昔物語
機械翻訳の今昔物語機械翻訳の今昔物語
機械翻訳の今昔物語Hiroshi Nakagawa
 
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介  wav2vec: Unsupervised Pre-training for Speech Recognition論文紹介  wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介 wav2vec: Unsupervised Pre-training for Speech RecognitionYosukeKashiwagi1
 
【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces UnderfittingDeep Learning JP
 
End-to-End音声認識ためのMulti-Head Decoderネットワーク
End-to-End音声認識ためのMulti-Head DecoderネットワークEnd-to-End音声認識ためのMulti-Head Decoderネットワーク
End-to-End音声認識ためのMulti-Head DecoderネットワークNU_I_TODALAB
 
音声認識技術の変遷
音声認識技術の変遷音声認識技術の変遷
音声認識技術の変遷emonosuke
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative ModelingDeep Learning JP
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトNU_I_TODALAB
 
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパス
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパスJ-KAC:日本語オーディオブック・紙芝居朗読音声コーパス
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパスShinnosuke Takamichi
 
CTCに基づく音響イベントからの擬音語表現への変換
CTCに基づく音響イベントからの擬音語表現への変換CTCに基づく音響イベントからの擬音語表現への変換
CTCに基づく音響イベントからの擬音語表現への変換NU_I_TODALAB
 
音声感情認識の分野動向と実用化に向けたNTTの取り組み
音声感情認識の分野動向と実用化に向けたNTTの取り組み音声感情認識の分野動向と実用化に向けたNTTの取り組み
音声感情認識の分野動向と実用化に向けたNTTの取り組みAtsushi_Ando
 
The VoiceMOS Challenge 2022
The VoiceMOS Challenge 2022The VoiceMOS Challenge 2022
The VoiceMOS Challenge 2022NU_I_TODALAB
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing FlowAkihiro Nitta
 
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善Yuta Matsunaga
 
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...Taku Tsuzuki
 
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga JiroJiro Iwanaga
 
深層生成モデルに基づく音声合成技術
深層生成モデルに基づく音声合成技術深層生成モデルに基づく音声合成技術
深層生成モデルに基づく音声合成技術NU_I_TODALAB
 

What's hot (20)

差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定
差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定
差分スペクトル法に基づく DNN 声質変換の計算量削減に向けたフィルタ推定
 
音声生成の基礎と音声学
音声生成の基礎と音声学音声生成の基礎と音声学
音声生成の基礎と音声学
 
PCFG構文解析法
PCFG構文解析法PCFG構文解析法
PCFG構文解析法
 
機械翻訳の今昔物語
機械翻訳の今昔物語機械翻訳の今昔物語
機械翻訳の今昔物語
 
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介  wav2vec: Unsupervised Pre-training for Speech Recognition論文紹介  wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
 
【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting
 
End-to-End音声認識ためのMulti-Head Decoderネットワーク
End-to-End音声認識ためのMulti-Head DecoderネットワークEnd-to-End音声認識ためのMulti-Head Decoderネットワーク
End-to-End音声認識ためのMulti-Head Decoderネットワーク
 
音声認識技術の変遷
音声認識技術の変遷音声認識技術の変遷
音声認識技術の変遷
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
 
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパス
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパスJ-KAC:日本語オーディオブック・紙芝居朗読音声コーパス
J-KAC:日本語オーディオブック・紙芝居朗読音声コーパス
 
CTCに基づく音響イベントからの擬音語表現への変換
CTCに基づく音響イベントからの擬音語表現への変換CTCに基づく音響イベントからの擬音語表現への変換
CTCに基づく音響イベントからの擬音語表現への変換
 
音声感情認識の分野動向と実用化に向けたNTTの取り組み
音声感情認識の分野動向と実用化に向けたNTTの取り組み音声感情認識の分野動向と実用化に向けたNTTの取り組み
音声感情認識の分野動向と実用化に向けたNTTの取り組み
 
The VoiceMOS Challenge 2022
The VoiceMOS Challenge 2022The VoiceMOS Challenge 2022
The VoiceMOS Challenge 2022
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
 
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善
フィラーを含む自発音声合成モデルの品質低下原因の調査と一貫性保証による改善
 
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...
Discovering_govering_equations_from_data_by_sparse_identification_of_nonlinea...
 
音声認識と深層学習
音声認識と深層学習音声認識と深層学習
音声認識と深層学習
 
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
 
深層生成モデルに基づく音声合成技術
深層生成モデルに基づく音声合成技術深層生成モデルに基づく音声合成技術
深層生成モデルに基づく音声合成技術
 

Similar to やるおが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 to やるおが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日火曜日