イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです


このエントリーをはてなブックマークに追加

Pepperの中の人をりんなちゃんにして悲しみをしのぐ〜Pepperがやってきた!ヤァ!ヤァ!ヤァ!その2〜

こんばんは。矢ヶ崎です。

前回のブログでご連絡しましたが、Pepper for Bizは、なんと!自律的に成長しません!
そこで、その悲しみをすこしでもやわらげるために、Microsoft製の女子高生AIでおなじみ りんなちゃんに中の人(なかのひと)になってもらって、とりあえずしのいでみよう!おれの心!っていう試みをしてみました。
ぼくと同じく、Pepper for Bizで心に傷を負った方は、こっち系のアプローチでとりあえず精神を安定させてみてはいかがでしょうか?

まずは前回のつづき

身体に青いピンがささりっぱなし!という初歩的なあれで、Pepperくんは調子悪かったようですので、それを抜いてあれこれしたら、調子よく、ふつーのPepper for Bizくんになってくれました!

準備

いまのところ、りんなちゃんはLINEかTwitter経由でのみお話できるようです。LINEに連携させるのは敷居が高いので、まずはTwitterにてチャレンジしてみました。
簡単に言うと、

  • TwitterのAPIを使えるように準備する

  • Twitterでりんなちゃんとお友達になる

    • DMでお話しない場合は、たぶんお友達にならなくても大丈夫

  • Pepperに、我々のお話を理解してもらって、文字にしてもらう

  • Pepperで、TwitterのAPIを叩いて、りんなちゃんに対してつぶやく

  • Twitterでりんなちゃんの返信を、Pepperにしゃべらせる

というふつーな感じでやってみました。

TwitterのAPIを使えるように準備する

これは、いくらでもある情報なので割愛します。 「Twitter api 利用」 みたいな感じで調べれば、こんもり出てきますので、やってみてください。 そして、とりあえず、

  • Consumer Key

  • Consumer Secret

  • Access Token

  • Access Token Secret

の4つを用意してみましょう。

Twitterでりんなちゃんとお友達になる

これも、いくらでもある情報ですが、 LINEで友だちになって、りんなちゃんに聞けば教えてくれます。検索して出てくる情報では、 こんな感じです
フォローしてもらうと、DMで会話ができるようになりますが、非公開でメンションをつけても大差ないので、どっちでもいいですね。

Pepperに、我々のお話を理解してもらって、文字にしてもらう

こちらは、Pepperに我々の声を文字にしてもらうわけですが、ふつーにやると、とっても精度が悪い!そして、認識が遅い!
そこで、 こんな感じでWatsonに声を認識させれば非常に精度があがるという素晴らしいやり方があるっぽいので、さっそくBluemixにサインアップして、WatsonのSpeech To Text APIの設定をしていたところ、ふと我に返りました。
あれ?そうすると、いよいよPepperがただのマイクとスピーカーになってしまうのでは?
このまま行くと悲しみをやわらげるという本来の目的から遠ざかってしまうかもしれないので、今回はPepper本体の認識にたよることとします。

Pepperの開発を行う基本的な方法は、「Choregraphe(コレグラフ)」というソフトを使うということなのですが、この中の部品でDialogというPepperと会話する用の部品があり、そこで一応我々のお話を文字に変換することができます。ので、今回はこれを使ってみます!

Pepperで、TwitterのAPIを叩いて、りんなちゃんに対してつぶやく

なんと! Pepper用のTweetボックスを作ってくれている方がいらっしゃったので、それをほぼそのまま使わせていただいております。
前フェーズのTwitterAPIで必要なものさえ揃っていれば、もう入れるだけって感じです。
とりあえず、今回はりんなちゃんに対してメンション付きTweetを送ってみます。
最初はDMで実装してみたのですが、なんとなく遅い気がしたのと、りんなちゃんの反応が悪いきがしたのと、API制限がきつい気がしたので、ふつーのメンション付きTweet実装にしてあります。

Twitterでりんなちゃんの返信を、Pepperにしゃべらせる

りんなちゃんの返信を、Pepperにしゃべらせようと思ったのですが、今回はりんなちゃんとしかしゃべらないという前提で、最新のメンション付きツイートを取ってきてしゃべらせるという、めっちゃ手抜き実装にしてみました。
しかし!りんなちゃんはさすが女子高生だけあって、記号や絵文字をいっぱい使ってきます。それをそのままPepperにしゃべらせようとすると、結構めちゃくちゃになったり、記号によっては落ちたりしますので、Pepperがしゃべりやすいであろう文字だけにフィルダリングしてしゃべらせております。
ついでに、返信内容を画面に表示してみます。それだと、もはやTwitterでいいじゃん、って感じだとしても!

いったん動くようになったもの

ppcg.png

こんな感じになればOKです!

一応、一式をGithubのほうにあれしてありますので、Pepper for Bizをお使いの方は、試してみて、いろいろ注文をつけていただいたり、陸を引っ張ったり(プルリク)していただけますと幸いです。

ただ、Pythonのlibは入れておりませんので、 Pepper用のTweetボックスのライブラリの準備 を参考にしていただき、libに各種ライブラリを入れてみていただき、Twitterの各種Keyなどを設定していただければ、動くと思います〜

動いている雰囲気の動画

弊社見習いエンジニアのAMIちゃんがお話相手になってくれました。
こんな感じです〜

う〜ん。微妙な感じ。。。
とりあえず、なんとかお話できるって感じですね。。。

既存の問題点

見ていただいたとおり、

  • 反応が悪い!

  • TwitterのAPI制限に引っかかる!

  • りんなちゃんが無視する時がある!

ということで、Pull Requestや @Yaggytterまでいろいろご教示いただけたりしますととっても嬉しいです!のでお待ちしております〜
ひとつよろしくお願いいたします!

つづく?

参考にさせていただいたページーズ

上記リンクを貼らせていただいたページをめっちゃ参考にさせていただきました。
ぶっちゃけ、ありがとうございます!!!