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

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

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

こんにちは。

AI coordinatorの清水秀樹です。

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を活用したアプリの作成にチャレンジしてみてください。

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

それではまた。

About The Author

Hideki
東京大学発AIスタートアップ企業でロボット開発室室長、画像解析室室長、動画解析室室長を務め、AIエンジニアとしても画像認識関連の特許を在籍中に3つ取得。その後、KDDIグループ内でプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRISTのテックリードとして農業の人手不足の解決に向けた収穫ロボットの開発にチャレンジしている。ロボットは技術の総合格闘技との考え方から、AIだけでなく、ハードやエレキ、通信からクラウド、IOTまで幅広く手掛けることができる。最近では人とロボットの共存を目指すべく、性能だけを追い求める開発から「感動やワクワク体験」をデザインできるロボットの研究を進めており、人とロボットがうまく共存できる世界を作り出したいと日々行動している。

LEAVE A REPLY

*
*
* (公開されません)