LoginSignup
12
12

More than 5 years have passed since last update.

WebAPI からのバイナリーデータをローカルに保存して利用する(AITalk WebAPI 編)

Posted at

Pepper から WebAPI にアクセス、バイナリーデータを受け取り、その結果を利用したいことありますよね。一つ試してみました。 AITalk WebAPI(http://www.ai-j.jp/webapi) がクラウドで合成した音声ファイルをローカルに保存、再生します。

Python ボックスを新規に作り、onStart 入力にこんな感じのコードを入れました。


    def onInput_onStart(self, p):
        import requests

        url = self.getParameter("WebAPI URL")
        data = {
            'username':self.getParameter("username"),
            'password':self.getParameter("password"),
            'text':str(p),
            'speaker_id':'','speaker_name':'','volume':'1.0','speed':'1.0','pitch':'1.0','range':'1.0','ext':'ogg'}

        req = requests.post(url, params = data)

        appId = self.packageUid()
        dataPath = qi.path.userWritableDataPath(appId, "aitalk.ogg")
        f = open(dataPath, 'w')
        f.write(req.content)
        f.close()

        self.onStopped(dataPath)

Python ボックスは、入力と出力をそれぞれ文字列型に変更しています。入力には喋らせるテキストを与えます。出力には保存されたファイルのパスが出力されます。
AITalk WebAPI を利用するためには専用の URL、ユーザー IDとパスワードが必要です。これらは Python ボックスのパラメータで与えるようにしています。

ID、パスワードならびに URL については AITalk より入手します。
http://www.ai-j.jp/webapi

サンプルを次に展開しました。
https://github.com/tkawata1025/pepper_aitalk_cloud

サンプルは、わたし個人が試したテストコードとご理解ください。あらゆる環境の動作保障をしているわけではありません、、

AITalk に限らず Web API から返されるバイナリーデータの利用方法の一例として活用いただければ幸いです。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12