はじまりは1つの記事から。
リクルートがAIをまさかの無料公開。さっそくすべてのAPIを試しまくってみた
リクルートがAIを無料で公開したそうです。
色々できそうだな〜とサイトを眺めていると、
「Talk API」という字面が目に飛び込んできました。
Talk APIはChatbotを作成するためのAPIです。 Recurrent Neural Network(LSTM)を用いた入力文からの応答文生成による日常会話応答機能を提供します。 Talk APIを活用したChatbotによって様々なアプリケーション上でユーザとの対話を自動化し、 どのようなタイミングにおいても即座にユーザからの問いかけに対して応答することができます。(Talk APIのページより引用)
ここで、
「あれ?これ使えば女の子と会話できるんじゃね?」
と思いつく。
公式サイトのリクエストパラメータやレスポンスフィールドを見ていると、
「この前Unityでデータ送受信できたし、UnityでこのAPI使えるんじゃね?」
と思う。
そして、「せっかくUnity使うんだから、Unityちゃんと会話するアプリを作ってみよう!」
と思い立って、1日ぐらいで作ってみました。
あれから月日は経ち、このアプリも改良を重ね、ついにWindows・Macアプリになりました。
ダウンロードはこちらから
ぜひ、使ってみてください。
寂しいときや暇なときにはオススメだと思います。
現在公開停止しております。申し訳ありません。
ざっくり処理説明
- 言葉を入力して「会話する」ボタンを押すと、Unityがdocomo自然対話APIにリクエストを投げます。
- docomo自然対話APIからUnityにレスポンスが返ってきます。
- 返答内容を表示します。
- レスポンスデータのうち返答内容をdocomo音声合成APIに投げます。
- Unityちゃんが喋ります。
こんな感じです。
使ったもの
- Unity
- docomo自然対話API
- docomo音声合成API
動作確認済環境
- Windows7
- MacOS10.13
更新履歴
2018/7/29
- 諸処の事情でWebGLからWindows・Macアプリに変更
- docomoの自然対話APIに対応
- Unityちゃんが会話に反応してアニメーションするようになった
2017/7/5 Ver1.5
- Unityちゃんが動くようになった
- 「会話するボタン」を押さなくても会話できるようになった
- 会話したときUnityちゃんに表情がつくようになった
2017/6/16 Ver1.4
- Unityちゃんが音声合成で喋るようになった
- Unityちゃんの最初の言葉が、時間帯で変わるようになった
音声合成には、docomoの音声合成APIを使用しています。
2017/6/1 Ver1.3
- UnityちゃんをSDから3Dにした
- 家具アセットを削除(必要性を感じなかったのと、軽量化のため)
- 音声認識対応(GoogleChromeのみ)
音声認識のやり方
「音声認識」をクリックしてチェックをつけると、音声認識モードになります。
あとは、マイクに喋れば音声が認識されてUnityちゃんからの返答がきます。
※何回か喋って反応がない場合は、お手数ですが「テキスト」にチェックをつけてからもう一度「音声認識」にチェックをつけてください。
音声認識には、Web Speech APIを使用しています。
2017/5/24 Ver1.2
- APIをTalkAPIからdocomo雑談APIに変更
これにより、会話文の中に「ニュース」が入っているとニュースを話してくれるようになり、「しりとり」が入っているとUnityちゃんとしりとりで遊べるようになった。
2017/5/19 Ver1.1
- 外観をお部屋っぽくした(家具の配置は適当)
- 話してる感が出るようにUnityちゃんを近づけた
- 返答時に簡易なリップシンク(口パク)をするようにした
- その他細かい修正
使い方
この画面が出たら、水色の枠に会話内容を入力します。
次に「会話する」ボタンを押すとUnityちゃんから返答がきます。
説明は以上です。
また、「しりとり」と入力して会話するとしりとりゲームで遊べます。
「○○調べて」や「○○について調べて」と入力して会話するとUnityちゃんがWikipediaから単語の意味を説明してくれます。
Unityちゃんといろいろ会話して楽しんでいってくださいね!