【TTS】AndroidでLINEやハングアウトのメッセージ、Gmailの通知を音声で読み上げさせる(Tasker+Notification Listener)
Android のテキスト読み上げ機能(TTS)を使って、LINE やハングアウトなどの新着メッセージを、音声で読み上げさせる設定を紹介します。
対象アプリを追加指定すれば、Gmail や Inbox の新着通知の音声読み上げにも対応可能です。他のアプリにも応用できるケースは多いと思うので、色々なアプリで活用してみてください。
※この記事は自分用のメモとして随時更新させていただきます。
使うアプリは2つ
文章を聞き取りやすくカスタマイズするため、今回は Voice Notify ではなく、Tasker + Notification Listener を使います。
各アプリのダウンロードは以下から。
「Tasker」と聞くと、設定が複雑ということでアレルギー反応を示す人も少なくさなそうですが、今回の設定は、Tasker の割には比較的難易度は低めの設定と思います。
前提条件
ここでは、Tasker と Tasker 向けプラグイン「Notification Lister」の基本的な仕組みをある程度分かっている前提で、Tasker のレシピだけを書いておきます。
また、今回の方法は通知領域を読み上げるだけで、アプリからのメッセージ取得は行いません。そのため、通知領域上で「~件のメッセージがあります」とまとめられた場合は、個別メッセージは読み上げられない場合があります。
事前作業
最初に以下の事前設定が必要になります。
- Android のTTS(テキスト読み上げ)の有効化
- Tasker の通知領域へのアクセス許可
AndroidのTTSを有効化する
Android のTTS(テキスト読み上げ)の有効化については、次の記事を参考にしてください。(※すでに TTS を活用している場合は設定不要と思います)
なお、今回の Tasker プロファイルでは、デフォルトのTTS・言語へ音声出力します。
Taskerの通知領域へのアクセスを許可する
Tasker に通知領域へのアクセスを許可する方法は、次の通りです。
Android の「設定」→「ユーザー補助」→「Tasker」を ON に設定
事前設定は以上です。
LINE、ハングアウト、Inboxの通知を音声で読み上げるTaskerのレシピ
LINE・ハングアウト・Gmail・Inbox の通知を音声で読み上げる Tasker のレシピ(Profile)は、以下のとおりです。
■以下の Event → Task を紐付けた Profile を作成する。
<Event>
Event → Plugin → Notification Listener → Notification Listener を追加。
Notification event = Posted
Apps = ハングアウト, Inbox, Gmail, LINE にチェック
<Task>
1:[Task]→[Wait]
(※1秒待機)
Second = 1
2:[Alert]→[Say]
(※通知アプリ名読み上げ)
Text = %nlapp
Engine:Voice = default:default
Stream = Media
Pitch = 5
Speed = 5
Respect Audio Focus = On
Network = Off
Continue Task Immediately = Off
3:[Alert]→[Say]
(※通知のタイトル読み上げ)
Text = %nltitle
Engine:Voice = default:default
Stream = Media
Pitch = 5
Speed = 5
Respect Audio Focus = On
Network = Off
Continue Task Immediately = Off
4:[Variables]→[Variable Search Replace]
(※通知本文中の最初のスペースを読点「、」に置換)
Variable = %nltext
Search = \s
Ignore Case = Off
Multi-Line = Off
One Match Only = On
Store Matches In = %nltext
Replace Matches = On
Replace With = 、
(※Search のバックスラッシュ「\」がブラウザ上で円マーク「¥」に見える場合は、必ずバックスラッシュを入力すること。)
5:[Alert]→[Say]
(※通知本文の読み上げ)
Text = %nltext
Engine:Voice = default:default
Stream = Media
Pitch = 5
Speed = 5
Respect Audio Focus = On
Network = Off
Continue Task Immediately = Off
以上です。
Tasker の Profile 変更後に反映されない場合は、当該 Profile をオフにして Tasker のアプリを再起動してみると良いです。
今回のTaskerプロファイルの解説
今回のプロファイルについて軽く解説しておきます。
一部の Bluetooth 機器への音声出力時、読み上げの最初が欠けてしまう場合は、Action 1 の Wait の代わりに「Alert」→「Say」で適当な文字を喋らせて温めておくと良いでしょう。
Action 4 の置換処理は、音声合成エンジンがスペースを無視して発音して大変聞き取りづらかったので、少し間を空けるために追加しました。「If」パラメータ付きで特定アプリ向けの置換処理を追加すれば、アプリ単位での細かい読み上げカスタマイズにも対応できます。これは実用上、大変重要なタスクで、これが使いたくて Tasker に喋らせている。というくらいのものです。
「Say」は Tasker から Android の TSS(テキスト読み上げ) へ出力するアクションですが、その中の設定項目「Stream」は、Media 以外に設定する方法もありです。ただし、機種によって色々と使用感が異なる部分なので、今回は Media にしています。
なお、出力先が Media のままの場合、着信音をオフにしても通知音声が出てしまうので、就寝前にはプロファィルをオフにする、などの工夫が必要になります。
他に試してみた方法
今回は取り上げませんでしたが、Tasker 以外にも、以下のアプリでの通知の読み上げも可能です。
が、日本語の翻訳が微妙で分かりにくかったり、アプリ単位での細かい読み上げのカスタマイズに難があったため、今回は見送りました。