福野泰介の一日一創 - 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デモ

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