「Tasker」でAndroidをカスタマイズ。音声機能を使いこなす。 | 「藍染 迅(超時空伝説研究所改め)」の部屋

「藍染 迅(超時空伝説研究所改め)」の部屋

小説家ワナビーの「藍染 迅(あいぞめ じん)」です。

書籍化・商業化を目指し、各種コンテストに挑戦しながら、カクヨム、小説家になろう、エブリスタ、アルファポリスなどに作品を投稿しています。

代表作は異世界ファンタジー「「飯屋のせがれ、魔術師になる。」。

「おしゃべり秘書」は、カレンダーを呼び出して画面表示してくれる。
しかし、内容を音声で読み上げてはくれない。

この辺がちょっと不満である。

そこで、「Tasker」を使ってカレンダーデータを読みとり、音声出力で読み上げさせることができないかと考えた。
ネットを検索すると、下記ふたつの参考情報をみつけることができた。(どちらも英語サイト)

 
 

ひとつめのスレッドは、Google Calendarを読みとって必要な情報を切り出し、「Tasker」に読み上げさせるというもの。

ふたつめのスレッドは、スマホ端末内のカレンダーDBをSQLITE3で読みとるというもの。

本来、端末内に存在する情報は端末内で処理したいのだが、どうやらカレンダーDBを開くにはroot権限が必要らしい。仕方なく、ひとつめの方法をまねてみることにした。

指示されたxmlファイルをダウンロードし、ESファイラーで /sdcard/Tasker/Tasks/ ディレクトリにコピー。
「Tasker」起動後、taskとしてインポートした。(CalendarMMDD.tsk.xmlを使用)

記事の通り、ユーザーID、Private Addressを挿入し、Taskを改造した。
また、月と日のデータが「09」など頭に「0」がつく場合があるため、「1で割る」操作で1桁の数値に変換する処理を追加。(%Eventdate2に「%Eventdate2/1」をセット。%Eventdate31に「%Evenetdate31/1」をセット)

また、英語圏での事例なので音声出力エンジン(TTS)が英語用の設定になっている。
これを日本語用のエンジン(N2 TTS)に変更し、読み上げ文も日本語に直した。

途中ちょっと編集ミスをしたり手間取ったが、上記の改変で期待通りの動作をするタスクができ上がった。

■その日予定されている次のスケジュールを音声で読み上げ、次のスケジュールがなければ予定がないことを伝える。

上記機能を実現することができた。

但し、上記のタスクそのままでは「マナーモードON」の場合も音声出力しようとする。しかし、当然音声は出ない。
それではしょうがないので、「マナーモードONの場合は、PopUPに同じ内容を表示する」というルーチンを追加した。

これを、「会社でその日一回目の画面ONをしたら、当日のスケジュール表を表示する」というタスクに合体させ、マナーモードOFFならひとつめの予定を読み上げ、マナーONならPopUPで表示し、最後に当日のスケジュール表を表示する」というタスクに仕上げた。

なかなか秘書っぽくなってきた。

これはすべて個人の暴走である。