†こちらもご覧ください。†ターミナルからのコマンドでSiriが操作できれば、シェルスクリプトやプログラムの中からSiriを使えるようになります。すれば、プログラムからスマート家電を制御する、ネットからの情報を音声で取得する、などが可能になります。AppleEventに対応しています。OSAは、アプリケーション間のコントロールを行うために機構で、AppleEventはその際に交換されるメッセージです。アプリケーション間でAppleEventを送受信するスクリプト言語に、AppleScriptが使われてます。†AppleScriptを使えば、対応したアプリケーションに、それを操作するメッセージが送れます。tellというAppleScriptを用意します。Editor.app)を使うと、AppleScriptのテストが楽です。tellという内容を用意して、実行可能にしておけば、ターミナルからも実行できます。"siio@mac.com"'とすると同じことができます。何かの状態をモニターするプログラムの中で、その状況をメッセージで知ろうとする場合に、役立つテクニックかと思います。(例えば人気チケット販売サイトをモニターして、キャンセルが出たらメッセージで伝えるというような時)これが可能なのは、Message.appアプリケーションがOSAに対応していて、sendというコマンドを提供してくれているからです。†なので、「Siriを起動してメッセージを送るアプリケーション」がOSAに対応していれば、ターミナルからAppleScriptを起動させることで、Siriを制御できるはずです。macOSには「Siriに頼む」機能があります。これを担当しているアプリケーションが、/Applicationsの中にあるSiri.appです。-aコマンドが使えます。Siri.appとタイプします。Eventを使う方法です。キーボードやマウスのイベントをプログラムで作り出して、人が操作しているような状況を自動化します。GUIを自動化しようとするときの伝統的な技法と言えます。コマンドラインから起動して、最初の引数の文字列をSiri.appに送るスクリプトを以下に紹介しておきます。runこれで動くと思ったのですが、日本語が通りませんでした。「システム環境設定」「Siri」「言語」を英語に設定すると(英語で)以下のように動きます。light.'日本語だとkeystrokeがうまく動作しないようです。かな漢字変換が入るところなので当然かなと思います。それで、コピペでコマンドを渡すバージョンを作りました。pbcopyやpbpasteは、ペーストバッファに読み書きするコマンドで、コピーペーストに相当します。このコマンドを実行した後にペーストすると、コマンドの引数が残っています。floydをかけて"などの操作がターミナルから可能になります。Siriの応答速度に合わせてdelayを設定している微妙なプログラムですので、コンピュータ環境によって修正の必要があるとは思います。