last update

【TTS】AndroidでLINEやハングアウトのメッセージ、Gmailの通知を音声で読み上げさせる(Tasker+Notification Listener)

Flat Smartphone

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 に設定
Notification_text_to_speech_how_to_with_tasker_1_sh

事前設定は以上です。

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 以外にも、以下のアプリでの通知の読み上げも可能です。

が、日本語の翻訳が微妙で分かりにくかったり、アプリ単位での細かい読み上げのカスタマイズに難があったため、今回は見送りました。

コメントを記入