Watson APIを使った翻訳できるPepperサンプル

Watson API(Language Translator)を使ったPepper

こんにちは。

AI coordinatorの清水秀樹です。

PepperとBluemix Watsonを使った簡単なアプリを作ってみたので紹介します。

プロジェクトファイルはこちらからダウンロードできます → Language Translator

 

上記アプリを作成にあたり、参考にさせて頂いたサイトも合わせて紹介します。

ChoregrapheからWatsonを使用してみる

 

アプリの作成方法

作成方法を紹介します。

当アプリはWatson APIを使ったことがない方でも簡単に実装できます。

 

Watson APIを使用したアプリの作成方法が理解できれば、他のWatson APIも簡単に使用できるようになります。

ぜひチャレンジしてみてください。

 

それでは順を追って作成していきましょう。

 

BluemixからLanguage Translatorを作成する

翻訳するソフトの作成は非常に簡単にできます。

まずBluemixにログインし、カタログからLanguage Translatorを選択しましょう。

 

選択すると次画面の右下に「作成」ボタンが表示されますので、クリックしてアプリを作成してください。

 

作成できたら、次画面に表示されている「サービス資格情報」をクリックしましよう。

 

資格情報を取得できる画面が表示されますので、下記画面の赤枠部分をクリックして資格情報を取得しましょう。

 

サービスを使用するにあたっての”url”と”username”、”password”が表示されているはずです。

この資格情報はPepper側で使用することになりますのでメモしておきましょう。

以上でBluemix側の準備は完了です。

 

続いてPepper側のアプリ開発を説明します。

 

Pepperアプリ開発

アプリ開発といっても難しいことはありません。

Pepperが聞き取った言葉を、先ほど作成したLanguage Translatorに受け渡すプログラムソースを作るだけです。

 

準備するボッックスライブラリーはたった2つです。

  1. Speech Reco.
  2. Python Script

以上です。

上記画像のように、線を結んでください。

 

Python Scriptボックスの使用は以下の通りです。

onstartは文字列に変更してください。

 

ソースコードは以下を参照してください。

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)
        self.tts = ALProxy('ALTextToSpeech')

    def onLoad(self):
        self.pathModified = False
        self.appFolder = self.behaviorAbsolutePath().replace(self.behaviorRelativePath(), "")
        self.folderName = os.path.join(self.appFolder, "lib")
        if self.folderName not in sys.path:
            sys.path.append(self.folderName)
            self.pathModified = True

    def onUnload(self):
        if self.pathModified and self.folderName and self.folderName in sys.path:
            sys.path.remove(self.folderName)
        self.folderName = None

    def onInput_onStart(self, p):
        import requests
        user="取得したユーザー名"
        pswd="取得したパスワード"
        target = "en"
        string = p

        ###Set the url###
        url="https://gateway.watsonplatform.net/language-translator/api/v2/translate?source=ja&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))

    def onInput_onStop(self):
        self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
        self.onStopped() #activate the output of the box

このソースコードに、先ほど取得したユーザー名とパスワード指定してください。

今回は日本語から英語に変換するPepperを作成しています。

他言語を翻訳したい場合は、必要に応じてパラメータを変更してください。

 

Pepperに翻訳させてみよう

それでは早速バーチャルペッパーで実行してみましょう。

上記画像のように、日本語を英語にPepperが英訳してくれるはずです。

 

注意点

Windows版コレグラフのバーチャルペッパーでは動作しません。

SSLモジュールが無いと怒られます。

とはいえ、実機では動くと思います。(まだ試していないので悪しからず。)

 

また、一から作成する場合は「requests」モジュールが必要になります。

適当なサイトからダウンロードして、プロジェクトファイルに組み込んでください。

 

簡単に実装できますでの、是非チャレンジしてみてください。

 

それではまた!

 


その他のPepperアプリ記事はこちらから

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP