8本目!Design of Chatbot with 3D Avatar, Voice Interface, and Facial Expression

とりあえず、この論文は実際の実装ではなく、文献的を参考にした設計です。

まあ、作りたいやつの参考になりそうなので読んでみました。

構成としては Chatbot, Speech Recognition, Speech Sythesis, Avatar の設計と、その組み合わせの構成となっている。

まあ、ゆるりゆるりと見ていきましょう。

Chatbot

まあ、テキストを入力としてテキストを出力する部分。

既存のChatbotでは語彙が貧弱となって、しかも何か発言内容が攻撃的や性的になるらしい。参考はここ。まあ、なんか自覚があるからなんとも言えない(´・ω・`)

Speech Recognition

いわゆる音声認識。こいつのプロセスは以下のようになる。


STT ┳ front end process ┳ convert audio stream to numaric values
        ┃                             ┣  separate numaric values to voice segments
        ┃                             ┗  charactarize the vocal segments
        ┃
        ┗ back end process ┳ recognize the speech pattern with the acoustic model
                                          ┣ extract pronunciation of each word from lexicon lists
                                          ┗ recognize how the words are combined with the languagemodel

基本的には音声をデジタル変換して、データを分割後にそれぞれの単語をマルコフ決定過程をもちいて、単語を認識するっぽい。

他には 動的時間収縮法とか、深層学習とかを使ったものがあるらしい。 GoogleのSTTは深層学習のWavenetの改良を使ってたりするんかな?

Speech Synthesis

いわゆる音声合成

まず、Front end の処理について。はじめにテキストを単語分割をするらしい。んで、単語にそれぞれ発音記号を当てはめたあとに、単語間の関係をフレーズ、句、文の関係のかかり受け分析をするみたい。

次に、Back end の処理について。Front endで作られた構造データを利用して、単語の音声変換、音調の調節、音素の持続時間の計算とかして、音声を合成するらしい。

TD-PSOLAとかCELPとかHMMとかいろんなモデルがあるみたい。GoogleがWavenetを使っていることしかわからん(笑)。

Avatar

2D or 3Dで表現。表情をつけると、Avatarがより人間に近く知覚されるらしいね。

Body Languageとかはどうなんだろう?

Methodology

  1. Input voice
  2. convert voice to input sentence
  3. process the sentence to make the response
  4. convert the response to out voice
  5. synthesis the voice
  6. output the avatar with the voice using lipsync
  7. express emotions with voice, face and body language

みたいな流れ。

うーん。なんかしょぼい気がする。