Python GUIを使ってWatson APIを使用したペッパー用コントローラーの作成方法
こんにちは。
AI coordinatorの清水秀樹です。
Watson APIの「LanguageTranslator」を使用したペッパー用コントローラーの紹介です。
英訳ボタンを押下すると、入力した日本語を英訳してくれます。
開発にはPythonを使用しています。
Watson APIをPythonで開発したみたい方は是非参考にしてみて下さい。
ソースコードのダウンロードはこちら → LanguageTranslator.zip
コレグラフからWatson APIを使用したい場合や、まだBluemixでWatson APIアプリ(LanguageTranslator)を作成していない方は以下の記事を参考にしてください。
開発環境の準備方法
Python SDKをインストールしていない方は、以下の記事を参考にインストールしてください。
Pepper用Python 2.7 SDK(WIN)セットアップ方法
Pepper用Python 2.7 SDK(MAC)セットアップ方法
Python SDK環境のセットアップができたら、次はBluemixからWatosn APIを使用できるようにするためのモジュールをインストールします。
ターミナルを起動し、以下のコマンドを入力してモジュールをインストールしましょう。
pip install requests pip install --upgrade watson-developer-cloud
これでPythonからBluemixのWatson APIに接続できるようになりました。
ソースコードの説明
特に難しいことはしていません。
def __init__(self):でGUIを作成し、各関数でボタンを押下した時の振舞を定義しているだけです。
# -*- coding: utf-8 -*- from Tkinter import* from naoqi import ALProxy import requests from watson_developer_cloud import LanguageTranslatorV2 as LanguageTranslator class language(): def __init__(self): #ウインドウ定義 root = Tk() root.option_add('*font', 'FixedSys 18') root.option_add('*Button.background', 'green') root.geometry("700x150") root.title(u"Pepper Controller") #IPアドレス取得テキストボックス & ボタン------------ Label(text=u'Pepper IP ⇒').place(x=25,y=10) self.ip = Entry(width=15) self.ip.place(x=130,y=10) self.ip.insert(0,"localhost") Label(text=u'ポート').place(x=260,y=10) self.port = Entry(width=5) self.port.place(x=315,y=10) self.port.insert(0,49836) Button(root,text = "接続",command=self.ip_btn).place(x=370,y=6) #台詞用テキストボックス & ボタン-------------------- Label(text=u'台詞を入力').place(x=25,y=60) self.say = Entry(width=50) self.say.place(x=130,y=60) self.say.insert(0,"私の名前はペッパーです") Button(root,text = "話す",command=self.say_btn).place(x=550,y=55) Button(root,text = "英訳",command=self.en_say_btn).place(x=610,y=55) root.mainloop() def ip_btn(self): #ipアドレスを取得する ip = self.ip.get() port = int(self.port.get()) self.tts = ALProxy('ALTextToSpeech',ip,port) self.motion = ALProxy("ALMotion", ip, port) def say_btn(self): #台詞の取得と実行 say = self.say.get() self.tts.say(say.encode('utf8')) def en_say_btn(self): #英訳 say = self.say.get() language_translator = LanguageTranslator( username='資格情報のusername',password='資格情報のpassword') translation = language_translator.translate(text=say,source='ja',target='en') self.tts.say(str(translation)) language()
実行して、バーチャルPepperが英訳したら成功です。
実機では確認していませんので悪しからず。
それではまた。
その他のPepperアプリ記事はこちらから
この記事へのコメントはありません。