福野泰介の一日一創 - create every day

PM2.5が気になる季節、以前作った福井PM2.5 APIを使って、しゃべるPM2.5計スマートスピーカー Google Home Mini版を作ってみました。 人感センサーをつけて、朝一のリビングに入った時などに、しゃべってもらうといい感じかも。

Google Home を、ただのネットワークスピーカーとして使いたいときには、google-home-notifier。 再生してほしいmp3の音声ファイルのURLを渡すと通知して鳴らしてくれるというシンプルなもの。

PM2.5の値を取得し、しゃべらせたい文章を作成、Mac標準の音声合成コマンド say を使って、音声ファイルを作って、ffmpegでmp3化して、ローカルで立てたwebサーバーに設置して、Google Home Mini へ通知を送ればできあがり!

saypm25.py - PM2.5 APIから鯖江市神明の値を取得し、次へ

import os import urllib.request url = 'http://sabae.club/pm25/1/fukui/sabae.txt' req = urllib.request.Request(url) with urllib.request.urlopen(req) as res: body = res.read() n = int(body) print('response: ' + str(n)) s = 'おはようございます!鯖江市神明地区で計測したPMにぃてんごの値は、' + str(n) + 'です。' if n <= 70: s += '不要不急の外出は避けましょう。' os.system('./say-google.sh "' + s + '"')

say-google.sh - 日本語をmp3音声ファイルに変換して、次へ(ローカルwebサーバーの所定pathを設定)

say -v Kyoko $1 -o say.aiff ffmpeg -y -i say.aiff say.mp3 cp say.mp3 [** path ** ]/ node say.js

say.js - google-home-notifier を使って、通知する(ローカルwebサーバーの所定URLを設定)

const googlehome = require('google-home-notifier') googlehome.device('Google Home', 'ja') googlehome.play('http://[** ip, port, path ** ]/say.mp3', function(res) { console.log(res) })

毎朝、決まった時間にしゃべらせるなども、カスタマイズしましょう。

小さくても、結構大きな音がでる Google Home Mini、イベントや、ハッカソンなどでも活用できそうです。

G空間ハッカソンで活躍した、webアプリハンズオン研修、来週、福井市で再び開催!
G空間オープンデータで地図アプリ作成ハンズオン - connpass

links
- PM2.5時計(鯖江編)
- 玄関先でPM2.5の値を教えてくれる音声合成を使ったIoTデモ

スマートスピーカー、Google Home Mini を使って初開発。 百人一首オープンデータを使って、Google Home をカスタマイズできる、Actions on Google に、「百人一首読み上げ」と登録。Intent として、Dialogflow の Fulfillment を使って、コールバックURLを設定することで、サーバーに接続。 百人一首をランダムに詠み上げることに成功!空気を読んで、2首目に紫式部!

「OK Google」または「ねぇグーグル」
「百人一首読み上げにつないで」と言うと、Google Homeに設定しているものと同一アカウントで作ったアプリがすぐ試せます。

サーバーから返すレスポンスは、JSONで比較的シンプル。ネット上のサンプルに多い、項目名がspeechとかだった V1 API から Cloud API である V2 API へと変わっているので、注意。

{ "fulfillmentText": "めぐりあいて。みしやそれとも。わかぬまに。くもがくれにし。よはのつきかな。むらさきしきぶ" }

* Content-Type: application/json; charset=utf-8 で返せばOK!

モバイルバッテリーでも動いている Google Home Mini、嫁スマホを一時的に借りて、自分のテザリングSSID/PASSを設定し、Google Home Miniを設定すれば、テザリングでどこでもHomeができあがり! 車のお供にいいかもしれない。

仕組みさえ作ってしまえば、音声認識語テキストになったものを受け取って、しゃべってほしいものをテキストで返すだけととってもシンプル。 その証拠に、PCNこどもプロコン、小学生の応募作品にも Google Home Mini が登場!母と子を見事につないでます。

PCNこどもプロコンノミネート作品 小学生ソフトウェア部門」最優秀賞は誰の手に!?


2019.3.3 PCNこどもプロコン2018最終審査会&表彰式&音楽とプログラミングのワークショップ! in 福岡

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像