AI coordinator

人工知能 & ロボティクス

© AI coordinator All rights reserved.

20172/23

天気APIを使用したPepperサンプルプロジェクトの紹介

Pepperで天気APIを使用してみた

Pepper入門用として、天気APIを使用したPepperアプリを作成しました。

興味がある方は、以下からプロジェクトファイルをダウンロードして使ってみてください。

ダウンロードはこちら

 

仕様の説明

バーチャルペッパーでも、Pepper実機でも動作確認しています。

実装にあたっては特に難しいことはしていません。

 

有した機能は以下の3つです。

  1. ペッパーが人の声を聴きとれるように、JSONファイルで都道府県と市区町村を読み込ませます。
  2. livedoorお天気情報APIから、お天気情報を取得できるようにしています。
  3. 音声入力がないと終了します。

以上です。

 

都道府県と市区町村のJSONファイルは、東京・神奈川県・茨城県のみ作成しました。

他の都道府県の追加はご自由にどうぞ。

 

livedoorのAPI仕様は以下を参考にしてください。

お天気Webサービス仕様

 

プロジェクトファイルの説明

簡単にどんなフローなのか説明します。

weatherボックスの仕様

上記のフローは以下の順で処理します。

  1. 「ファイル読込」ボックスからJSONファイルを読み込み、各都道府県と市区町村とAPIに投入する地区コードを取得します。
  2. 「天気地域取得」ボックスでJSONファイルの都道府県と市区町村データを分離し、それぞれを次の「県取得」ボックスと「市取得」ボックスに受け渡します。

都道府県と市区町村データを分離する理由は、Pepperが音声で都道府県を聞き取った後に、その都道府県に該当する市区町村を聞き取れるようにするためです。

 

県取得ボックスの仕様

上記フローの仕組みを紹介します。

  1. Speech Recoボックスに先ほど分離した都道府県を入力し、Pepperが音声を聞き取れるようにします。
  2. SayボックスではPepperが「どの県の天気ですか?」と質問するように設計しています。
  3. Waitボックスでは、音声が一定時間取得できないような場合を想定して作成しており、音声入力が取得できない場合には、Say(1)ボックスで「返事がない。ただのしかばねのようだ。」とPepperにしゃべらせて、処理を終了するようにしています。

 

市取得ボックスの仕様

上記フローは少し複雑そうに見えますが、大したことしていません。

  1. 1次細分区名ボックスでは、前項の県取得ボックスで聞き取った都道府県に該当する市区町村をJoinボックスに受け渡し、次のSpeech Reco.(1)で受け渡してもらった市区町村を聞き取れるようにします。
  2. セリフ作成ボックスと次のAnimeated Say Textボックスで、市区町村を含めた質問を投げかけるように実装しています。(下の図の赤線部分)
  3. 市区町村を聞き取ったら、いよいよWeatherボックスに制御が渡り、天気APIから天気情報を取得します。(以下サンプルソース)

 

最後はダイアログで締めくくる

一通りの処理を終えPepperが天気情報を答えたら、その後はダイアログにて処理を継続するのか終了するのか質問するように設計しています。

 

ダイアログは以下のように作成しています。

会話の分岐を作成する上で、ダイアログは大変便利ですね。

 

以上で処理の大まかな説明は終わりです。

 

Pepper単体でのフローになれたら、APIを使ってみましょう

デフォルトで準備してあるボックスライブラリだけでは、かなり限定的なアプリしか作成できません。

しかしながら、外部サービスのAPIと連携することでPepperは飛躍的にできること増えます。

 

Pepperの動かしかたになれたら、是非APIを活用したアプリの作成にチャレンジしてみてください。

設計の幅を大きく広げることができるようになりますよ。

 

それではまた。

 


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

関連記事

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

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

Watsonと連携したPepper:NLCを使用して質問に答えるPepperを作ってみよう

Watson NLCと連携して質問に回答できるpepper作成 前回記事で紹介した「Watsonと連携したPepper:Speech to…

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

Watson API(Language Translator)を使ったPepper PepperとBluemix Watsonを使った簡単…

IBM BluemixとPepperを繋ぐ方法

IBM BluemixとPepperを繋いでみよう アトリエ秋葉原で紹介のあったBluemixとPepperの接続方法について資料が公開さ…

Watsonと連携したPepper:Speech to Textで音声認識精度を上げてみよう

Watson Speech to Text & pepper Pepper単体でも音声認識機能は持っていますが、如何せん認識精度が悪いのは…

Watsonと連携したPepper:Visual Recognitionで画像が分析できるPepper開発

PepperでWatson API「Visual Recognition」を使ってみよう Pepperに搭載してあるカメラから、今映し出し…

DeepLearningを活用した物体検出(SSD_Keras)を可能とするPepper

SSD_KerasをPepperにも 以前紹介したSSD_Kerasによる物体検出を、いつかPepperにも搭載できたら良いなぁなんて思っ…

20173/11

Pepperコントローラー for Python

PythonでPepperコントローラーを作成 Pepperを簡単に動かせるPepper用コントローラーをPythonで作成してみましょう…

Watson APIを活用した英訳するPepperコントローラー

Python GUIを使ってWatson APIを使用したペッパー用コントローラーの作成方法 Watson APIの「LanguageTr…

20177/15

SlackからPepperを発話させる超簡単な方法

SlackからPepperを喋らせてみる 久しぶりのPepperネタです。 最近、Slackbotを学習したので、今度はPepper…

20174/12

コレグラフでPepper2台を同時に喋らせる簡単な方法

Pepperを2台使って、同時に会話をさせる方法 コレグラフを使えば、Pepper複数台を同時にしかも簡単に会話をさせることができます。 …

ページ上部へ戻る