見出し画像

Androidのリスナーサービスで通知を音声化する

スマホの通知メッセージは非常に便利ですが、スマホを放置していると重要な通知を見落としがちです。

私は、通知を見落とさないよう、自分用アプリ「音声通知」を作りました。
権利まわりの問題から一般公開はしていませんが、コンセプトはおもしろいと思いますのでご紹介します。

非Apple環境でスマホを放置する話……。noteの傾向から考えて、今回の記事はこの時点で共感を得られないことが確定!

リスナーサービス

スマホのステータスバーには、SNSやメールの着信をはじめとして、各種お知らせの通知など様々な情報が表示されます。

AndroidのAPIには、NotificationListenerServiceというものがあり、これを使うと、アプリがステータスバーに表示しようとしている通知を横取りして、プログラムで処理できます。

画像2

これはカレンダーアプリからのメッセージを横取りする例です。
どのアプリから、どのようなメッセージを画面表示しようとしているか、第三者のプログラムが受け取って処理できます。

iOSでも、仕組みは異なりますが、同様のことができるようです。
ちなみに、プッシュ通知周りは、iOSとAndroidで設計思想が大きく違っていて、おもしろいところです。

横取りした結果を音声に応用すると、便利な機能が実現できます。

Yahoo!の天気関連アプリの音声化

Yahoo!天気・災害アプリには、雨が降りそうな場合にプッシュ通知で知らせてくれる機能があります。
また、Yahoo!防災速報アプリでは、数分後の豪雨を知らせてくれます。

画像2

この通知を認識して、天気の変わり目でスマホをしゃべらせます。

雨雲が接近している場合:(チャイム)「雨雲が接近中」
間もなく豪雨が降る場合:(チャイム)「大雨の予報、○○ミリ」
※予想雨量の○○部分は10ミリ単位で読み上げ

読み上げの音声は、事前に録音します。
自分の声では気分が萎えるので、テレビ番組でおなじみの音声合成エンジンの声にしました。

部屋の中で突然スマホがしゃべり出すと怖いですが、チャイム音を先行させると、違和感がなくなります。カーナビがいい例です。

Yahoo!の天気関連のアプリはそのままでも便利ですが、日本語の音声が加わると、便利さが格段に上がりました。

Yahoo!乗換案内アプリの音声化

通勤していた頃に便利だったのは、Yahoo!乗換案内アプリの運行情報です。
電車が遅れるとプッシュ通知で知らせてくれるものです。

別の記事でも書きましたが、私はこの1年で3回しか出社していない不良社員なので、この通知は一時休止中です。

こちらも音声化しました。
音声データは路線名ごとに用意しました。
例えば、東海道線の運行情報では、次のような音が再生されます。

運転見合わせ:(遅延チャイム)東海道線が運転見合わせ
人身事故による運転見合わせ:(遅延チャイム)東海道線で人身事故
運転回復:(回復チャイム)東海道線が回復

人身事故は、回復までに時間がかかるため、別の音声にしています。

ちなみに、私はごく弱い鉄オタなので、チャイムの音を新幹線運転台のATC信号の音にしました。チャイムだけで鉄道関連と認識できます。
何のことか分からない方、YouTubeに分かりやすい(?)動画がありました。

カレンダーの通知

カレンダーをリマインダー代わりに酷使している私は、通知を音声で読み上げて、作業を忘れないようにしています。

例えば、20時に「銀行口座確認」とスケジュールを登録している場合は、直前に次のような音声が再生されます。

(チャイム)銀行口座確認、二十時ゼロゼロ分から二十一時ゼロゼロ分

スマートスピーカーとは!?

世の中にAlexaやGoogle Homeが出始めた頃、私は「スマートスピーカー」という言葉にあこがれました。

スマホ依存症になれなかった私は、通知の取りこぼしが日常茶飯事。
これを使えば、あらゆる情報が音で自動的に入手できると期待しました。
しかし、実際のところ、スマートスピーカーは「スマートマイク」だと知って、がっかりしました。

今回の読み上げ機能は、私が思い描いたスマートスピーカー像の1つの側面かもしれません。

自宅にいることが多い、このご時世、読み上げ機能は本当に便利です。
アプリでも、もう少し通知音が重視されれば……と思う次第です。