Activate Commandを使って「現在時刻」を読み上げさせてみる!! [JBApp]

(11)

これまで『Ask Assistant』を使ってSiriに「いま何時?」と質問をさせていました。これすごく便利で、音楽を聴きながらポケットからiPhoneを取り出す事なく時間を読み上げさせて確認出来ちゃうのです!
ですが問題点もいくつかあります。Siriを使っているので、Siri非対応のデバイスでは使えませんし、ネット環境がある場所でなければダメです。
更に、読み上げ時には音楽が一時停止状態となり、再度ボタンを押す必要もあります。ちょっと不便ですよね。

ちょうど先日リリースされた『Activate Command』という、Activatorを使ってターミナルコマンドが実行出来ちゃう脱獄アプリの記事に「時間を読み上げさせる事は可能?」というすごく良いご質問を頂きました。
そう!実は私もこれがやりたかった!コマンドなのでカスタマイズした文言で読み上げさせる事が出来るため、やってみたかったです。と言う事で、Activatorを使って現在時刻を読み上げさてみました!
ただ、不満点もいくつか見つかりましたので、その部分についても後述します。

スポンサーリンク

時間の読み上げ

今回やりたいことは時間の読み上げなのですが、『ネット未接続でも使用出来る』、『Activatorから呼び出せる』、『Siriを使わない』という事が条件です。
ということで、この条件を満たしつつ時間の読み上げが出来る方法をやってみましょう!

Activate Commandを使う

色々と脱獄アプリはありますが、読み上げる文章などをカスタマイズしたいので、今回はターミナルコマンドをActivatorジェスチャーを使ってサクッと実行することができる『Activate Command』を使ってやっていきます。

時間を取得するコマンド

時間を取得することが出来る【date】コマンドという物があります。これはデバイスから時間を取得するため、ネットに繋がっていなくても使用可能。
今回はこの【date】コマンドを使って時間を取得します。ちなみに、このコマンドは出力できる時間表記を好きな様に変更出来るので、便利!

音声で読み上げるコマンド

時間を取得する方法は見つかりました。次はこの取得した時間を読み上げるためのコマンドです。
読み上げには【say】というコマンドを使用します。これはCydiaから『Erica Utilities』と言う物をインストールすることで使用可能(Activate Commandをインストールすると一緒に入ります)。

これらを組み合わせて、【date】コマンドで取得した時間を【say】コマンドを使って読み上げさせる!という方法で行ってみます。

時間を読み上げさせるためのコマンド

読み上げる時間の文言が違うサンプルをいくつかご紹介!これらを『Activate Command』に設定し、好きなActivatorジェスチャーに割り当ててください。
ちなみに、私は「現在の時刻は○○時○○分」という形式の物を、「ヘッドホンのボタン 長押し」に割り当てています。こうすることで音楽を聴きながらサクッと時間を確認可能! 更に読み上げ時は音楽の音量が小さくなるだけで一時停止も起りません。
ただ、実際に使ってみると不満点もいくつか見えてきました。これについては次項に。

howto-activatecommand-say-date-02howto-activatecommand-say-date-03

サンプル

【例:2013年8月28日 18時39分48秒
date +"%Y年%m月%d日 %k時%M分%S秒"|xargs say
【例:8月28日 18時39分
date +"%m月%d日 %k時%M分"|xargs say
【例:18時39分
date +"%k時%M分"|xargs say
【例:現在の時刻は18時39分
date +"現在の時刻は%k時%M分"|xargs say

カスタマイズ

読み上げ文章のカスタマイズを行うには下記の赤文字部分を好きな様に書き換えることで可能です。

date +"%Y年%m月%d日 %k時%M分%S秒"|xargs say

サンプルを見ていただくとどれが何を表しているかが何となく分かっていただけると思いますが、使用出来るフォーマットの一部は以下の様な物になります。(参考

形式 意味
%Y 年(例:2013)
%y 年 下2けた(例:13)
%m 月(01~12)
%d 日(01~31)
%p AM か PM
%k 時(0~23)
%l 時(1~12)
%M
%S

不満点

これで一応「時間の読み上げ」は可能なのですが、音量が小さい!
屋内であれば「まぁ聞こえるかな」という感じではあるのですが、屋外での使用では環境によっては音楽を聴く音量のままではちょっと厳しいかもしれません。
この部分を解決するにはどうすればいいんだろう・・・TerminalActivatorやシェルスクリプトなどを使って一時的に音量を上げる等の処理を行う方法もありそうですね。次回にでも試してみましょう!

素晴らしいタイミングでご質問をいただいて、良かった!

今回の手法を使った『Activate Command』でもなかなか良い感じには出来ました。ただ、やはり音量の問題はどうにかしなければ駄目そうです。ここを解決出来ればすごく便利な物になりそうなのですが・・・

コメント

  1. 初めまして。
    記事とは関係ないのですが。。
    SafariでURLをクイックした時とTab+を使用すると落ちて困ってます。
    何か対策はないでしょうか?

    • 私の環境では特に問題はないようですので、一度インストールしている他の脱獄アプリと相性が悪くないか?等を確認してみてください。
      また、SBSettings > More > MobileSubstrate Addons等から気になる物をオフにしてみるのも良いかもしれません

  2. Erica Utilities をインストールしたことがない人に質問。

    > iOSには【say】というコマンドが用意されて

    いるでしょうか?

    私の環境では、Erica Utilities をインストールしてその後アンイストールしたら、say コマンドはなくなっていました。
    可能性1. iOS に say コマンドが用意されており、それを Erica Utilities で上書きしてしまった。
    可能性2. iOS には say コマンドは用意されていない。

    • あぁ!その通りでした!お恥ずかしい・・・お教えいただきありがとうございます。
      Erica Utilitiesに含まれるコマンドです。また、Activate Commandをインストールする際に共にインストールされます。

  3. SANTAさん、いつもながら有益な情報をありがとうございます。
    毎朝音楽を聴きながら散歩しており、時刻を確認するのにいちいちiphoneを取り出すのが面倒で困っていましたが、これですっきり解決です!!

  4. plist書き換えなどで音声コントロールを無効にしていると
    ヘッドセットのボタン長押しに割り当てても反応しないようです。
    一方、音声コントロールを有効にしているとヘッドセットのボタン長押しで
    きちんと時刻読み上げが行われますが、音声コントロールも立ち上がってしまいます。
    SANTAさんはどのように上記を回避していますか?

    • iPhone 4、4S、5で同じ「ヘッドホンのボタン 長押し」へ割り当てて使っていますが、どれも特別な設定などはなく、Activatorから通常通り割り当てるだけで音声コントロールが起動すること無く使用出来ています。

  5. Erica Utilitiesのコマンド一覧みたいのものはないでしょうか?もしよければ教えていただきたいです。

    • 以下の様な物があります。ただし、iOSバージョンによっては正常に動作しない物もいくつか有りますので、ご注意ください
      appsearch
      deviceinfo
      doNotify
      faker
      ip-print
      notificationWatcher
      openURL
      pbcopy
      pbpaste
      play
      plutil
      restart
      say
      urlclip

  6. いつもお世話になってます。

    自分はTimeSpeakというTweakを使用してます。

  7. 古い記事への質問、失礼致します。

    tarminalよりバイブレーションのコントロールができるコマンドを探しています。
    それが含まれるようなライブラリをご存知でしたらお教えいただけると非常に助かります。