0

私は実際にこのスクリプトを動作させています (完全な初心者である私にとっては驚きです) が、このスクリプトに必要のない余分なコードが含まれていないことを確認したかっただけです。または、これを行うより良い方法があればコメントしてください!私は最終的に一連の音声コマンドを作成しようとしています。

tell application "SpeechRecognitionServer"
set l1 to {"yes", "sure", "yes please", "open mail"}
set l2 to {"no", "no thanks", "not now"}
set no_answer to {"no", "no thanks", "not now"}

set answer to listen for l1 & l2 with prompt "Would you like me to open your email"
l1 contains answer
l2 contains no_answer


end tell

if l1 contains answer then
say "yes answer"

else if l2 contains no_answer then
say "no answer"
end if

end

前もって感謝します!

4

1 に答える 1

0

Tell ブロッ​​ク内には、「伝える」アプリケーションに属するコマンドのみを含める必要があります。ブロックの外側にリストを作成します。

set l1 to {"yes", "sure", "yes please", "open mail"}
set l2 to {"no", "no thanks", "not now"}

これは何もしません。

l1 contains answer
l2 contains no_answer

l2 には、2 つの静的リストであるため、常に no_answer が含まれます。

else if l2 contains no_answer

代わりに次のようにしてみてください。

set l1 to {"yes", "sure", "yes please", "open mail"}
set l2 to {"no", "no thanks", "not now"}

activate application "SpeechRecognitionServer"

try
    tell application "SpeechRecognitionServer" to set answer to listen for l1 & l2 with prompt "Would you like me to open your email" giving up after 20
on error number -128
    say "User did not respond"
    error number -128
end try

if l1 contains answer then
    say "yes answer"

else if l2 contains answer then
    say "no answer"
end if
于 2013-07-10T15:08:54.440 に答える