Create Self Rails

「自分の道を行く」と決意した 28 歳の男が、自分が発信したいと思ったことを発信するブログである。

【2018/7/29更新】かわいい女の子と会話できるアプリを作ってみた!

どうも、カナタです。

 

突然ですが、あなたはかわいい女の子と会話したくないですか!?

 

男なら一度は憧れる、かわいい女の子との会話。

 

というわけで、人工知能(docomo提供のAPI)を使ってかわいい女の子と会話できるアプリを作ってみました。

といっても、2次元の女の子なんですけどね! 

 

f:id:projectkanata:20180803210529p:plain

画面にいるこの女の子は、UnityちゃんというUnity Technologies Japanが作成したオリジナルキャラクターです。

 

f:id:projectkanata:20170427160737p:plain

かわいい。

 

というわけで、早速こちらからダウンロードして女の子と会話してみてください!

 

使い方はダウンロードしたフォルダの中に入っているのでここから下は読まなくてもすぐ使えます。

また、このアプリは9月末までしかおそらく使えないです!

なぜなら会話に利用しているdocomo提供のAPIが10月から有料化し、法人向けになる可能性があるからです。個人でも有料で使えれば良いんですけど・・・。

 

 

更新履歴

2018/7/29

  • Windows・Macアプリに変更
  • Unityちゃんが会話に反応してアニメーションするようになった

7/5 Ver1.5

  • Unityちゃんが動くようになった
  • 「会話するボタン」を押さなくても会話できるようになった
  • 会話したときUnityちゃんに表情がつくようになった

6/17 Ver1.4

  • Unityちゃんが音声合成機能を使うことで喋るようになった
  • 時間帯により、最初の言葉が変わるようになった

6/1 Ver1.3

  • Unityちゃんをリアル等身のものに変更
  • 家具などを削除(軽量化のため)
  • 音声認識に対応(ただし、GoogleChromeのみ)

音声認識を行うには、「音声認識」をクリックしてチェックをつけます。

f:id:projectkanata:20170601212542p:plain

 

「許可」をクリックします。

 

f:id:projectkanata:20170601212535p:plain

 

あとはマイクに向かって喋れば、

音声認識を行った結果が表示され、

Unityちゃんからの返答がきます。

 

現段階では何回か喋ると認識しなくなるっぽいです。

もし認識しなくなったらお手数ですが、

「テキスト」にチェックを入れてからもう一回「音声認識」にチェックを入れてください。

これで再度音声認識ができるようになるはずです。

 

5/24 Ver1.2

この変更により、会話文に「ニュース」と入れるとニュースを話してくれます。

また、「しりとり」と入れるとしりとりができるようになります。

5/19 Ver1.1

f:id:projectkanata:20170519210733p:plain

  • 外観をお部屋っぽくした(家具の配置は適当。笑)
  • 話してる感が出るようにUnityちゃんを近づけた
  • 返答時にリップシンク(口パク)するようにした(簡易)
  • その他細かい修正

どうやって使うの?

動作環境

はじめに、このアプリの動作環境について。

  • Mac:MacOS 10.13
  • WindowsWindows7

以上で動作確認済みです。

 

使い方

このアプリの遊び方を説明します。

 

アプリを起動するとまずこのような画面が出てくると思います。

f:id:projectkanata:20180803211207p:plain

 

この画面になったら、薄い水色の枠をクリックして、会話したい言葉を入力します。

入力したら、「会話する」ボタンを押してください。

そうすると、Unityちゃんから返答がきます。

f:id:projectkanata:20180803211328p:plain

 

また、しりとりで遊べたり、

f:id:projectkanata:20180803211349p:plain

 

ちょっとした調べ物をしたりできます。

f:id:projectkanata:20180803211423p:plain

これで説明は以上です。

Unityちゃんといろいろ会話して楽しんでみてくださいね!

 

なんで作ったの?

僕は先日こんなニュースを見かけました。

 

リクルートがAIをまさかの無料公開。さっそくすべてのAPIを試しまくってみた - BITA デジマラボ

 

リクルートがAI(人口知能)を無料で公開したそうです。公式サイトはこちら

  

このサイトをいろいろと見てると、ふと1つの機能が目に止まりました。

Talk API」という機能です。

 

これは人工知能を使って対話を実現する機能です。

そこで、僕はこう思ったのです。

 

「あれ?これ使えば女の子と会話できるんじゃね?」

 

そう思ったのでさらに調べました。

すると、僕の持っているプログラミングの知識でどうにか作れそうでした。

 

「よし!早速作ろう!」

 

もともと別のゲームアプリを作るためにいろいろと知識をつけたり実践をしてきたりしてたんですが、

面白そう!楽しそう!という欲望を抑えきれず、作り初めてしまいました。

 

そうしたらなんと1日でできました。

好きの想いは、ときにものすごい力を生み出すんですね。

 

このアプリの解説

このアプリで使っている技術や仕組みについて解説します。

まずは、使われている技術から説明しますね。

 

Unityってなに?

Unity(別名:Unity3D)とは、統合開発環境を内蔵し、複数のプラットホームに対応するゲームエンジンである。(wikipediaより引用)

つまり、Unity

  • ゲームが作れるよ!
  • スマホで遊べるゲームやPCで遊べるゲームも作れるよ!

こういうアプリです。

 

もちろんこのアプリもUnityで作られていますよ。

Unityを使えば、いろいろなゲーム・アプリが作れちゃいます!

 

Talk APIってなに?

Talk APIChatbotを作成するためのAPIです。 Recurrent Neural Network(LSTM)を用いた入力文からの応答文生成による日常会話応答機能を提供します。 Talk APIを活用したChatbotによって様々なアプリケーション上でユーザとの対話を自動化し、 どのようなタイミングにおいても即座にユーザからの問いかけに対して応答することができます。(公式サイトより引用)

 

この文章を見てもなんのこっちゃと思うかもしれません。

要するに、ユーザーから送られた言葉に対して自動的に会話文を生成して返答できる、ということです。

 

Talk APIを使って、アプリの会話機能を実現しています。 

 

どういう仕組みなの?

アプリの仕組みを簡単にですが紹介します。

f:id:projectkanata:20170427163834j:plain

  1. ユーザーがUnityに言葉を入力する
  2. UnityTalkAPIに言葉の内容を送信する
  3. TalkAPIが受け取った言葉の内容を解析して返答内容を返す
  4. Unityに返答内容が表示される

 

ざっくり説明するとこんな感じですね。

 

さいごに

このアプリは、僕のプログラミングによって生まれました。

プログラミングって、ほんとうに楽しい。

自分の考えているアプリが実現できた瞬間の達成感といったら、たまらないですよ。

これを味わってしまったら、もう戻れないぐらい。笑

 

僕はプログラミングが最初から上手かったわけではありません。

このアプリも試行錯誤の連続でしたからね。

 

知識や実践を積み重ねることによって、やれることがどんどん増えていく。

これがプログラミングの世界なんです。

この記事を見て少しでもプログラミングに興味を持ってくれたら、僕は嬉しいです。

 

このアプリで何か不具合を見つけたらご連絡ください。

あと、「こんな機能ほしい!」と思ったらぜひご連絡ください!

100%できるかはわかりませんが、一考しますよ。

 

それでは!| |