How2TerminalSiri
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[SiioLaboratory]]
*Terminal.appからのコマンドでSiriを動かす方法 [#y3cf656c]
こちらもご覧ください。
http://is.ocha.ac.jp/~siio/?How2AppleScript
** AppleScript (もしくはOSA, もしくはAppleEvent) [#s12e66...
ターミナルからのコマンドでSiriが操作できれば、シェルスク...
そうすれば、プログラムからスマート家電を制御する、ネット...
macOSのプログラムの一部は、
[[Open Script Architecture (OSA):https://ja.wikipedia.org...
[[AppleEvent:https://ja.wikipedia.org/wiki/Apple_event]]...
OSAは、アプリケーション間のコントロールを行うために機構で...
また、アプリケーション間でAppleEventを送受信するスクリプ...
** AppleScriptの例 [#zec3b26a]
AppleScriptを使えば、対応したアプリケーションに、それを操...
例えばiMessageの椎尾のアカウントにメッセージを送るには、
tell application "Messages"
send "Hello!" to participant "siio@mac.com"
end tell
というAppleScriptを用意します。macOSに標準値ついているス...
シェルスクリプトファイルで、
#!/usr/bin/osascript
tell application "Messages"
send "Hello!" to participant "siio@mac.com"
end tell
という内容を用意して、実行可能にしておけば、ターミナルか...
osascript -e 'tell application "Messages" to send "Hello...
とすると同じことができます。
何かの状態をモニターするプログラムの中で、その状況をメッ...
(例えば人気チケット販売サイトをモニターして、キャンセル...
これが可能なのは、Message.appアプリケーションがOSAに対応...
**「Siriに頼む」アプリケーション [#te3a75df]
なので、「Siriを起動してメッセージを送るアプリケーション...
macOSには「Siriに頼む」機能があります。これを担当している...
&ref(SiriApp.jpg);
ターミナルからアプリケーションを起動するためには、open -a...
open -a Siri.app
とタイプします。
しかしながら残念なことに、Siri.appはOSA (AppleEvent) に全...
** System Events.appを使う [#i283fc87]
OSAに対応していないアプリを操作するチート技がSystem Event...
キーボードやマウスのイベントをプログラムで作り出して、人...
GUIを自動化しようとするときの伝統的な技法と言えます。
コマンドラインから起動して、最初の引数の文字列をSiri.app...
#!/usr/bin/osascript
on run argv
tell application "Terminal"
activate
do script with command "open -a Siri"
delay 0.4
tell application "System Events"
keystroke (item 1 of argv)
key code 76
end tell
delay 0.1
tell application "Siri" to quit
delay 5
close window 1
end tell
end run
これで動くと思ったのですが、日本語が通りませんでした。「...
% ./siri.sh 'What time is it?'
% ./siri.sh 'Turn on the light.'
日本語だとkeystrokeがうまく動作しないようです。かな漢字変...
それで、コピペでコマンドを渡すバージョンを作りました。以...
pbcopyやpbpasteは、ペーストバッファに読み書きするコマンド...
#!/bin/sh
#Shell and OSA script to send a message to Siri.
#Works in any language, though English is recommended.
if [ $# = 0 ]; then echo 'Usage:' $0 '"Message to Siri."...
#copy the input text to the paste buffer
echo $1 | pbcopy
#open the Siri input window
open -a Siri #start Siri menu
#send command-v key combination (paste) to Siri and quit
osascript -e '
tell application "Siri"
delay 0.5 #required for Siri response
tell application "System Events"
keystroke "v" using {command down}
key code 76 #return key
end tell
delay 0.5 #required for Siri response
quit
end tell
'
これを例えばsiri.shという名前で保存して実行可能にしておけ...
% ./siri.sh 今日の天気は?
% ./siri.sh あかりを消して
% ./siri.sh あかりをつけて
% ./siri.sh "今の時間は?"
% ./siri.sh "pink floydをかけて"
などの操作がターミナルから可能になります。
Siriの応答速度に合わせてdelayを設定している微妙なプログラ...
終了行:
[[SiioLaboratory]]
*Terminal.appからのコマンドでSiriを動かす方法 [#y3cf656c]
こちらもご覧ください。
http://is.ocha.ac.jp/~siio/?How2AppleScript
** AppleScript (もしくはOSA, もしくはAppleEvent) [#s12e66...
ターミナルからのコマンドでSiriが操作できれば、シェルスク...
そうすれば、プログラムからスマート家電を制御する、ネット...
macOSのプログラムの一部は、
[[Open Script Architecture (OSA):https://ja.wikipedia.org...
[[AppleEvent:https://ja.wikipedia.org/wiki/Apple_event]]...
OSAは、アプリケーション間のコントロールを行うために機構で...
また、アプリケーション間でAppleEventを送受信するスクリプ...
** AppleScriptの例 [#zec3b26a]
AppleScriptを使えば、対応したアプリケーションに、それを操...
例えばiMessageの椎尾のアカウントにメッセージを送るには、
tell application "Messages"
send "Hello!" to participant "siio@mac.com"
end tell
というAppleScriptを用意します。macOSに標準値ついているス...
シェルスクリプトファイルで、
#!/usr/bin/osascript
tell application "Messages"
send "Hello!" to participant "siio@mac.com"
end tell
という内容を用意して、実行可能にしておけば、ターミナルか...
osascript -e 'tell application "Messages" to send "Hello...
とすると同じことができます。
何かの状態をモニターするプログラムの中で、その状況をメッ...
(例えば人気チケット販売サイトをモニターして、キャンセル...
これが可能なのは、Message.appアプリケーションがOSAに対応...
**「Siriに頼む」アプリケーション [#te3a75df]
なので、「Siriを起動してメッセージを送るアプリケーション...
macOSには「Siriに頼む」機能があります。これを担当している...
&ref(SiriApp.jpg);
ターミナルからアプリケーションを起動するためには、open -a...
open -a Siri.app
とタイプします。
しかしながら残念なことに、Siri.appはOSA (AppleEvent) に全...
** System Events.appを使う [#i283fc87]
OSAに対応していないアプリを操作するチート技がSystem Event...
キーボードやマウスのイベントをプログラムで作り出して、人...
GUIを自動化しようとするときの伝統的な技法と言えます。
コマンドラインから起動して、最初の引数の文字列をSiri.app...
#!/usr/bin/osascript
on run argv
tell application "Terminal"
activate
do script with command "open -a Siri"
delay 0.4
tell application "System Events"
keystroke (item 1 of argv)
key code 76
end tell
delay 0.1
tell application "Siri" to quit
delay 5
close window 1
end tell
end run
これで動くと思ったのですが、日本語が通りませんでした。「...
% ./siri.sh 'What time is it?'
% ./siri.sh 'Turn on the light.'
日本語だとkeystrokeがうまく動作しないようです。かな漢字変...
それで、コピペでコマンドを渡すバージョンを作りました。以...
pbcopyやpbpasteは、ペーストバッファに読み書きするコマンド...
#!/bin/sh
#Shell and OSA script to send a message to Siri.
#Works in any language, though English is recommended.
if [ $# = 0 ]; then echo 'Usage:' $0 '"Message to Siri."...
#copy the input text to the paste buffer
echo $1 | pbcopy
#open the Siri input window
open -a Siri #start Siri menu
#send command-v key combination (paste) to Siri and quit
osascript -e '
tell application "Siri"
delay 0.5 #required for Siri response
tell application "System Events"
keystroke "v" using {command down}
key code 76 #return key
end tell
delay 0.5 #required for Siri response
quit
end tell
'
これを例えばsiri.shという名前で保存して実行可能にしておけ...
% ./siri.sh 今日の天気は?
% ./siri.sh あかりを消して
% ./siri.sh あかりをつけて
% ./siri.sh "今の時間は?"
% ./siri.sh "pink floydをかけて"
などの操作がターミナルから可能になります。
Siriの応答速度に合わせてdelayを設定している微妙なプログラ...
ページ名: