PepperからWatsonサービスを利用し、翻訳や質問に対する回答などができたら素敵だろうな、という期待を持ってChoregrapheからWatsonを使用してみました。
現状ではPepper実機での確認は行っておらず、Choregrapheのバーチャルロボット上での確認のみです。
#1. 目的
Choregraphe上でWatsonサービスを使用する。
Watsonの使用感(反応速度や精度)を確認する。
#2. 準備
Watsonサービスを利用するためにはIBM Bluemixに登録してアカウントを取得する必要がありますので、こちらを取得している前提とします。
#3. IBM Bluemix
Bluemixにログイン後、ダッシュボードからスペースの作成を行います。その後、サービス&APIメニューより使用するサービスを登録します。
非常に興味深いサービスばかりですが、今回はLanguage TranslationとQuestion and Answerの2つを試してみたいと思います。どちらも現時点のPepperの機能としては備わっていないものですので、もし使うことができれば、アプリのアイデアの幅がとても広くなることが期待されます。
サービスを選択後、右側フォームからサービスの追加を行います。フォームはデフォルトの内容から特に変更しておりません。
ダッシュボードから先ほど追加した使用するサービスを選択し、ページ左側のサービス資格情報を確認すると、サービス使用に必要なurl、username、passwordの情報を取得することができます。
また、このページではサービスのデモや、開発者向けの資料も見ることができます。開発者向け資料は残念ながら現時点で英語のみとなっておりますが、開発にあたりAPI explorer、API referenceは見ておく必要があるかと思います。
以上で、必要最低限の情報が揃いました。
#4. Choregrapheにて
まずはLanguage Translationをテストします。
Choregrapheのroot
上にPython script
ボックスを配置し、onInput_onStart
内に以下を記述します。
なお、こちらは英語をアラビア語に翻訳する内容となっています(残念ながら日本語は現時点では使えません・・・)。
user="取得したusername"
pswd="取得したpassword"
target = "ar"
string = "Good morning, Pepper."
###Set the url###
url="https://gateway.watsonplatform.net/language-translation/api/v2/translate?source=en&target="+str(target)+str("&text=")+str(string)
###Send the request###
r = requests.get(url ,auth =(user,pswd))
### print the result###
NewText= r.text
final= NewText.encode('utf-8')
self.tts.say(str(final))
また、json、requests、unidecodeあたりの必要なモジュールを事前にインストール、インポートしておく必要もあります。
正しく翻訳されているのかは全くわかりませんが、アラビア語のわかるスタッフに聞いたところ正しいとのこと。
(もう少し複雑な文章になると、間違ってはいないのだけれどちょっと違和感があるらしいです)
ちなみにChoregraphe上では1秒前後で翻訳文が取得できました。
ただ、この後試したQuestion and Answerは結果を正しく取得することはできたのですが、なぜか同じ操作を行う(もう一度結果を取得しようとする)とChoregrapheがフリーズしてしまうという現象が起こってしまいました。原因がChoregraphe、Watsonのどちらにあるのかは不明です。また1回目の取得にも質問によっては30秒近く時間がかかったりします。
Question and Answerは現時点ではhealthとtravelのカテゴリについてしか質問ができないので、これからの進化に期待したいところです。
#5. まとめ
とりあえず動くところまでは確認が出来ましたので、今後のバージョンアップに注視しつつ他のサービスを試していきたいと思います!