iOS 13.2で追加された「Siriで着信メッセージを読み上げ」機能をプッシュ型音声ニュース機能として活用する
価値ある情報をユーザー視点で発信するブログ
iOS 13.2でAirPods使用時に利用できる「Siriで着信メッセージを読み上げ」という機能が追加されました。
この機能は「設定>Siriと検索>着信メッセージの読み上げ」から有効化が可能(デフォルトではオフ)。
どういう機能かというと、
というものです。読み上げ対象のメッセージだったとしても、ロック中でなければ読み上げられません。
読み上げの様子は以下のような感じです。AirPodsにしか届かず、画面収録でも音が録音されないので、AirPodsにマイクを近づけて録音しました。
無理やり録音した。
— moyashi (@hitoriblog) October 29, 2019
・AirPodsじゃないとしゃべらない。
・ロック中でないとしゃべらない。
・自分to自分は通知もされない。
プッシュでiPhoneをしゃべらせたいとずっと思ってたから、これは熱いなぁ。 pic.twitter.com/LuUs04wSnb
まだメッセージ.app(iMessage)でしか使えない機能のようですが、サードパーティーがこの機能に対応することもできるようですので、将来の動向に期待しておきましょう。
この機能を有効にしたiPhone等にメッセージを送ると、AirPodsでほぼリアルタイムの音声による通知ができることになります。
「勝手にSiriがしゃべる」ということを以前からやりたかったので、これは筆者にとって快挙。
何らかの手段で自動的にメッセージを生成し、自動的にメッセージが送れれば任意の用途に使えるなと考え、それができるようにしてみました。
LinuxサーバなどからSMS送信サービスを使ってSMSを送る手もありますが、SMSは1通いくらという従量課金なのでそれは回避。
macOSならメッセージ.app(iMessage)がAppleScript(AppleEvent)対応なので、機械的にメッセージを送信させることが可能です。
IFTTTなどがメッセージ送信に対応していないか探すでしょうが、APIは公開されていないのでどこも対応していません。macOSを使うしかありません。
ということで、Rubyを使ってメッセージを送るようにしてみました。
標準入力、ないしはダブルクォーテーションで括った一つ目の引数としてテキストが渡された場合に、それをスクリプト内で指定した宛先にメッセージを送信します。
macOS用のメッセージ.app(iMessage)でメッセージが送れるように設定を済ませておく必要があることは言うまでもありません。
また、自分から自分に送っても通知されないため、メッセージ.app(iMessage)は別のアカウントでログインしておく必要があります。
iCloudやApp StoreなどApple IDでログインするアプリはmacOS上にたくさんありますが、メッセージ.app(iMessage)だけ別のアカウントでログインすることができます。
まだ調べてないですが、ログイン、ログアウトもAppleScript(AppleEvent)からできるようなので、自分宛にメッセージを送るときだけ一時的に別のアカウントでログインし、送信し終わったら元のアカウトに戻すといったこともできそうです。
これでcronなどから定期的に自動生成したメッセージを送ってプッシュ型の音声ニュースとして活用したりが可能になります。
なお、こういう使い方をする場合は自宅でmacを常時起動しておく必要があるということになります。