LINEのメッセージをしゃべらせてみよう - おっさんの人生は毎日が修行

LINEのメッセージをしゃべらせてみよう

taskerLINE.jpg

Tasker活用の第二弾です。

LINEを使われている方は多いと思いますが、車を運転中などにメッセージが届くと気になりませんか?
もし、届いたメッセージを読み上げてくれたら、大事な用件かすぐに分かりますよね。
大丈夫、ちゃんと出来ますよ。

ちなみに、これはAndroidの通知を利用するので、読み上げても既読にはなりません。
スタンプの場合は「誰々さんがスタンプを送信しました。」と読み上げます。

[重要]
くれぐれも、スマートホンの操作は安全な場所に車を止めてからお願いしますよ。

1.
まずプロファイルの作成ですが、[EVENT]の[UI]-[Notification]をタップします。
Screenshot_2015-07-25-12-48-39-1.png

2.
Owner Applicationのところのロケットみたいなアイコンをタップするとアプリケーションの一覧が出るのでLINEを選択。
他は特に変更せずに戻るボタンをタップして戻る。
Screenshot_2015-07-25-12-34-13.png

3.
タスクの名前をつけたらタスクの作成に入ります。

4.
まずは読み上げの音量制御のために、現在の音量設定を変数に退避します。
音量がそのままでいい人はこの処理は不要ですが、車の中は結構うるさいので音量を調整した方が聞き取りやすいです。

アクションの追加のために+をタップしたら、[Variables]-[Variable Set]を選択。
Screenshot_2015-07-25-12-49-55-1.png

5.
変数の名前をここではNameを%keepvolとしました。Toに%VOLMと入力。
%VOLMはTaskerの組み込み変数で現在のメディア音量が入っています。
タスクの終わりに音量を元に戻すため、この値を%keepvolに退避しておきます。
Screenshot_2015-07-25-12-35-57.png

6.
次にLINEの通知メッセージを変数に格納します。
先程と同様に、[Variables]-[Variable Set]を選択し、今度はNameを%saymessageとして、Toに%NTITLEと入力。
%NTITLEも組み込み変数で直前の通知メッセージのタイトルが格納されています。
ちなみに通知を利用するため、読み上げられるメッセージも通知に表示される範囲となります。
Screenshot_2015-07-25-12-36-06.png

7.
読み上げを聞こえやすくする為にメディア音量の変更をします。
[Audio]-[MediaVolume]を選択して、Levelに音量をセットします。この値は機種差や好みがあるのでご自由に。
Screenshot_2015-07-25-12-36-20.png

8.
そのまま、読み上げさせてもいいのですが、誰からのメッセージかをわかりやすくするために読み上げ内容を加工します。
[Variables]-[Variable Split]を選択して、Nameに%saymessage Splitterに:(半角文字で)を入力。
これは通知が「誰々:メッセージ内容」の形式の為、名前とメッセージ本文を分割して格納する処理です。
Screenshot_2015-07-25-12-36-32.png

9.
さていよいよ読み上げですが、メッセージとスタンプの時で読み上げを少し替えてみます。
条件分岐の為、IFを使います。
[Task]-[If]を選択し、Conditionに%saymessage2 条件に[!Set]を選択します。
送られてきたメッセージがスタンプの場合、通知は「誰々さんがスタンプを送信しました。」となり,:が含まれていないので、この前のSplit処理では%saymessage1に全文が格納され、%saymessage2は格納されていないので、この条件が成立します。
Screenshot_2015-07-25-12-37-02.png

10.
IFの条件が成立した場合は%saymessage1をそのまま読み上げます。
[Alert]-[Say]を選択して、Textに%saymessage1を入力します。
Screenshot_2015-07-25-12-37-17.png

11.
IFの条件が成立しなかった場合の処理のため、ELSEを入れます。
[Task]-[Else]を選択します。パラメータは特に変更しません。

12.
IFの条件が成立しなかった場合は「誰々からのメッセージ メッセージ本文」の形式で読み上げます。
[Alert]-[Say]を選択して、Textに%saymessage1 からのメッセージ %saymessage2 を入力します。
Screenshot_2015-07-25-12-37-44.png

13.
IF分岐の処理の終わりを示すためにEnd IFを入れます。
[Task]-[End If]を選択します。パラメータは特に変更しません。

14.
最後に変更したメディア音量を元に戻します。
[Audio]-[MediaVolume]を選択して、Levelに%keepvolを入力します。
最初に退避した音量に再セットする動作です。
Screenshot_2015-07-25-12-38-03.png

15.
taskの作成は完了しましたが、このままではいつでもどこでもLINEのメッセージを読み上げてしまいます。
プロファイルで読み上げの発動の為の条件を追加してみましょう。
私の場合は、車に乗った時にBluetoothでナビのハンズフリーと接続するので、これを条件に加えて、車の中でだけ、読み上げさせるようにしています。
条件の追加は、プロファイル画面で最初に設定したNotificationの条件が表示されているところを長押ししてください。
表示されたメニューからAddを選択することで複数の条件の組み合わせで発動させることが出来ます。
Screenshot_2015-07-25-12-35-01-1.png

16.
[Net]-[BT Connected]を選択して追加します。
Screenshot_2015-07-25-12-49-18-1.png

17.
Nameの横の虫眼鏡アイコンをタップすると、ペアリングしている機器の一覧が表示されるので、その中から選択。
Addressも同様にセットしておけば間違いないでしょう。
Point Blur_20150725_130005

以上で設定は完了です。
車内での読み上げを前提に設定を紹介しましたが、条件を変えればいろいろなタイミングで読み上げ出来ます。
また、タスクのIF条件を追加すれば特定の人からのメッセージの場合だけ、読み上げさせることも可能です。

いかがでしたか?
今後もまた私が設定しているプロファイルをご紹介できればと思っています。





以下は、タスクをexportしたものです。
この形式が理解できれば、某掲示板等に記載されているいろいろな事例も参考に出来るので活用の幅が広がりますよ。

say line message (42)
A1: Variable Set [ Name:%keepvol To:%VOLM Do Maths:Off Append:Off ]
A2: Variable Set [ Name:%saymessage To:%NTITLE Do Maths:Off Append:Off ]
A3: Media Volume [ Level:13 Display:Off Sound:Off ]
A4: Variable Split [ Name:%saymessage Splitter:: Delete Base:Off ]
A5: If [ %saymessage2 !Set ]
A6: Say [ Text:%saymessage1 Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A7: Else
A8: Say [ Text:%saymessage1 からのメッセージ %saymessage2 Engine:Voice:default:default Stream:3 Pitch:5 Speed:4 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A9: End If
A10: Media Volume [ Level:%keepvol Display:Off Sound:Off ]

コメント

非公開コメント

ライン読みたい!

こんばんはー、はじめまして。LINEを読ませたくてtasker四苦八苦中です。
何が、違うんすかね…




Profile: ライン読む (213)
Event: Notification [ Owner Application:LINE Title:* ]
Enter: ライン読む (212)
A1: Media Volume [ Level:15 Display:Off Sound:Off ]
A2: Variable Set [ Name:%saymessage To:%NTITLE Do Maths:Off Append:Off ]
A3: Variable Split [ Name:%saymessage Splitter:: Delete Base:Off ]
A4: If [ %saymessage2 !Set ]
A5: Say [ Text:%saymessage1 Engine:Voice:default:default Stream:1 Pitch:4 Speed:7 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A6: Else
A7: Say [ Text:%saymessage1からのメッセージ%saymessage2 Engine:Voice:default:default Stream:3 Pitch:4 Speed:7 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A8: End If

No title

塩分さん、こんにちは。
私がこれを書いた頃はtaskerのNotificationイベントと%NTITLEでメッセージが取得できていましたが、LINEの通知仕様変更でメッセージ取得が出来なくなっています。
有料ですがAutoNotificationというプラグインを使えば出来ますよ。
EventのトリガにプラグインからAutoNotificationを選択して、task側で%NTITLEの代わりに%antextと%antitleを使えばOKです。
%antextからはメッセージ自体、%antitleからは送信者名が取得できますよ。

今、私が使っているのはこんな感じです。
Profile: say line message2 (26)
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true Has Reply Action: true
Notification Apps: LINE ]
Enter: say line message2 (31)
A1: Variable Set [ Name:%keepvol To:%VOLM Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Media Volume [ Level:13 Display:Off Sound:Off ]
A3: Variable Set [ Name:%linetitle To:%antitle Recurse Variables:Off Do Maths:Off Append:Off ]
A4: Variable Set [ Name:%linetext To:%antext Recurse Variables:Off Do Maths:Off Append:Off ]
A5: If [ %linetext ~R がスタンプを送信しました ]
A6: Variable Set [ Name:%saytext To:%linetext Recurse Variables:Off Do Maths:Off Append:Off ]
A7: Else If [ %linetitle ~ LINE ]
A8: Variable Set [ Name:%saytext To:%linetext Recurse Variables:Off Do Maths:Off Append:Off ]
A9: Else
A10: Variable Set [ Name:%saytext To:%linetitle からのメッセージ Recurse Variables:Off Do Maths:Off Append:Off ]
A11: Variable Search Replace [ Variable:%saytext Search: Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: ]
A12: Variable Set [ Name:%saytext To:%saytext %linetext Recurse Variables:Off Do Maths:Off Append:Off ]
A13: End If
A14: Say [ Text:%saytext Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A15: Media Volume [ Level:%keepvol Display:Off Sound:Off ]

ありがとーございます。
なんとかモノにしたいところなのですが…。あと一歩のところまで来ているはずと思ってます。度々すいません、
taskの「Recurse」てところがわかりません。
A3: Variable Set [ Name:%linetitle To:%antitle Recurse Variables:Off Do Maths:Off Append:Off ]

例えば、A3:のところですが、To:%antitle Recurseの、%antitleのあとにくる「Recurse」は打ち込むのでしょうか?

よーく見ると、他のtaskにもtoの関数のあとに「Recurse」が…
うー、すいません。

No title

塩分さん、こんにちは。
「Recurse」は「Recurse Variables」までで、1つの設定項目です。
もしかすると使われているtaskerのバージョンによっては項目がないかもしれません。
最近のバージョンのtaskerなら、To:の下にRecurse Variablesのチェックボックスがあります。
今回は使用しないので設定項目が表示されていなければそのまま、表示されていればチェックを付けなければOffということになります。
A3の箇所の場合はVariable Setの画面で、
Name:に「%linetitle」
To:に「%antitle」
だけ入れれば大丈夫ですよ。

ご丁寧にありがとーございます。

Recurseの意味理解しましたっ。もう少し勉強してみたいと思います。

ところで、書き込んでいただいている、「今、私が使っているのはこんな…」>>
以下のtaskとかってインポート作戦もありなのでしょうか…、勉強にはなりませんが…(((^^;)

No title

塩分さん
残念ながらインポートできるのはXML形式だけだったと思います。
さらにtasker自体のバージョンが違うと上手く取り込めない可能性が高いです。
まずは、最小限の機能のみで動作を試してみてはいかがでしょうか?
1.Profileで+をタップ後、[Event]-[Plugin]-[AutoNotification]-[Intercept]を選択。
2.設定画面が開いたら、Configurationの右のペンのアイコンをタップ。
3.AutoNotificationの設定画面が開くので[Apps]をタップして、一覧が出たら「LINE」をタップしてチェックがついたらOKで閉じる。
4.AutoNotificationの設定画面の右上のチェックアイコンをタップするとtaskerの画面に戻る。
5.Variable Set を追加してName:に%linetextと入力、To:の右側のアイコンをタップして一覧が出たら「%antext」を選択。
6.sayを追加してText:の右側のアイコンをタップして一覧が出たら「%linetext」を選択。
これでとりあえずは読み上げ出来るはずです。
sayの代わりにflashを使って画面に表示して確認してみてもいいかもしれません。

もし%linetextと言うように変数名を読み上げるようなら、メッセージが取得できていないと思われます。
確認点としては、
・AutoNotificationのアプリに通知へのアクセスが許可されていない。
・AutoNotificationが無料版。(たしか有料版でないと出来ないはず)
この辺りでしょうか。

出来ましたっ!( T∀T)

おっさんさんのtaskを見ながら、自分の書き出したtaskをgmailに貼り付け、ウインドウを小さくしてから、互いに見比べ…
なんせネットに繋がってる端末が、このスマホだけなので見比べるのが、まぁー大変で。

どうやら、ご相談差し上げた際に「LINEのバージョンが…」と言うのが気になって見てみたら、最近更新してなかったのです!
で、もう一度見比べたら、スペースが半角や全角の違い等見つけまして…、
結果、旨いこといきましたっ!

ちなみに、長崎チャンポンとイオンに返信してもらい、成功を確認。あとは、人間からのLINE待ちでーすw


この度は、本当にありがとうございましたm(_ _)m
今後ともためになるtasker、お願いしまーすwww

No title

塩分さん
上手くいって良かったです。
私のこんなブログが少しでもお役に立てたのなら、うれしいかぎりです。
最近は全く更新出来ていなかったのですが、また時間があるときにすこしずつでも頑張ってみようと思います。

楽しみにしてますwww

先ほど、人間からのLINE来ましたっ!しゃべりまくりのスマホです!
taskerサイコー♪、おっさんさんサイコー♪
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。