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
- Input voice
- convert voice to input sentence
- process the sentence to make the response
- convert the response to out voice
- synthesis the voice
- output the avatar with the voice using lipsync
- express emotions with voice, face and body language
みたいな流れ。
うーん。なんかしょぼい気がする。