Hiho's Blog

ディープラーニングの力で人工知能になって結月ゆかりと会話してみた

2019-03-03

目次

  • (背景)結月ゆかりと会話したいが、結月ゆかりの人格は世界に存在しない。
  • (手法)自分が人工知能になり、余った自分の魂を結月ゆかりに宿らせて、自分と結月ゆかりが会話する手法を提案する。
  • (結果)結月ゆかりと会話することができた。
  • (展望)次は結月ゆかりの人工知能を作りたい。

背景

多くの人が結月ゆかりと会話したいと思っている。 結月ゆかりと会話するには、結月ゆかりの人工知能を作ることで解決できる。 しかし、結月ゆかりの真の人格は世界に存在しない。 そのため、結月ゆかりのデータを集めることができず、人工知能を作ることは難しいという問題があった。

手法

発想を転換し、結月ゆかりの人工知能を作るのではなく、自分の人工知能を作ることを考えた。 そして自分が結月ゆかりになり、その人工知能と会話する。 これで、自分と結月ゆかりが会話できる。

最初に自分の人工知能の作り方を説明し、続いて結月ゆかりになる手法を説明する。

自分の人工知能を作る

人工知能と会話するためには、人工知能用のテキスト音声合成・会話応答・音声認識が必要になる。 それぞれの手法を説明する。 (手法の詳細は過去の解説記事にある。)

テキスト音声合成にはディープラーニングを使った既存手法を用いた。 文章500文を読み上げた自分の音声データを学習データセットとした。

会話応答は、「問いかけの文章を自分なりの言葉にして返すもの」とし、ディープラーニングを使ったオートエンコーダを用いた。 doc2vecを使ってテキストから特徴量を抽出し、その特徴量から元のテキストを生成する学習を行った。 SNS(マストドン)で発言したテキスト約11万文を学習データセットとした。

音声認識はchromeに備わっているWeb Speech APIを用いた。 デモを行う際、自分の発言の字幕をリアルタイムで表示するためにこれを採用した。

学習のためのコードや、これらをWebAPI化するコード、 人工知能と会話できるWebフロントアプリ、全てをオープンソースで公開した。

結月ゆかりになる

結月ゆかりになるには、自分の声をリアルタイムで結月ゆかりの声に変換する必要がある。 これには過去に開発した声質変換手法を用いた。

結果

自分の人工知能と会話した結果を紹介する。 実際に会話した動画

自分   :おはよう
人工知能 :おはようございます
自分   :今日もいい天気ですね 気分はいかがですか
人工知能 :今日は休日ですか
自分   :土曜日なんで休日ですね
人工知能 :2月12日なんですかね
自分   :それは僕の誕生日ですね
人工知能 :今日は僕の誕生日ですね
自分   :今日は僕の誕生日ではないですね
人工知能 :僕は今日ですね
自分   :あそうか確かにあなたの誕生日は今日かもしれない

この結果から、人工知能が、質問に対し自分なりの言葉にして返事できていることがわかる。

また、自分が結月ゆかりになり、自分の人工知能と会話することで、 自分と結月ゆかりが会話することができた。 デモ動画

実際に行った素直な感想としては、特に自分と会話している気持ちにはならず、 ただただポンコツな何かに対して壁打ちのように会話している気分になった。 会話後に、録画した映像を見直すと、ところどころゆかりさんが可愛くて、 自分の人工知能を煽っているシーンなどが羨ましく感じることもあった。

考察・展望

会話応答の品質が良くない点

今回は、質問文に対し、自分なりの言葉でその文章を返す学習を行った。 その結果、質問文をオウム返しする傾向にあり、会話が成り立たないケースが多くあった。 データt番目を入力、データt+1番目を出力するように学習すれば、 ある程度文脈を理解した会話ができるかもしれない。

展望

次は自分が思う理想の結月ゆかり人工知能を作りたい。 結月ゆかり人工知能を作るには次の2つの課題がある。

  1. 結月ゆかり用のテキストデータが大量に存在しない点
  2. そもそも結月ゆかりの人格が世界に存在しない点

これらの課題を解決するために、様々な人の発言データを用いて人格空間を作成し、 その中から自分が思う理想の結月ゆかりの人格を探せるような手法を考えている。 時間があれば取り掛かりたい。