Я пытаюсь создать простую программу, которая зацикливает ввод речи пользователя с помощью com.apple.speech.recognitionserver. Мой код до сих пор выглядит следующим образом:
set user_response to "start"
repeat while user_response is not equal to "Exit"
tell application id "com.apple.speech.recognitionserver"
set user_response to listen for {"Time", "Weather", "Exit"} with prompt
"Good Morning"
end tell
if user_response = "Time" then
set curr_time to time string of (the current date)
set curr_day to weekday of (the current date)
say "It is"
say curr_time
say "on"
say curr_day
say "day"
else if user_response = "Weather" then
say "It is hot outside. What do you expect?"
end if
end repeat
say "Have a good day"
Если вышеуказанное выполняется в моей системе, оно говорит «Доброе утро», а затем всплывает с системой речевого ввода и ждет «Время», «Погода» или «Выход». Все они делают то, что говорят, что собираются делать, но вместо того, чтобы зацикливаться, если я говорю «Время и погода» и спрашиваю снова, пока я не скажу, что время выхода из речевого сервера истекает и больше никогда не появляется. Есть ли способ оставить это приложение открытым до завершения программы или AppleScript не может зацикливаться на вводе речи пользователя?