AppleScript и речь - PullRequest
       45

AppleScript и речь

2 голосов
/ 14 февраля 2011

Можно ли остановить любую речь, которую Mac в настоящее время производит (или поставил в очередь), используя AppleScript?

Я в основном ищу противоположную команду AppleScript "сказать".

Ответы [ 2 ]

3 голосов
/ 17 января 2013

Попробуйте это полное решение AppleScript (без оболочки):

-- say some text asynchronously
say "Hello, world!" waiting until completion no
-- delay 1 second before stopping
delay 1
-- stop text by saying nothing, which stops current speech
say "" with stopping current speech
1 голос
/ 16 февраля 2011

Чтобы остановить речь, вам нужно остановить процесс запуска речи.Это трудно сделать, когда вы говорите «любую речь, которую сейчас производит Mac», потому что могут быть разные процессы, производящие речь.Вам нужно найти способ определить, что вызывает речь.

Вот пример, где я генерирую речь, поэтому я знаю, какой процесс нужно убить, чтобы остановить речь.

set theText to "Is it possible to stop any speech that the Mac is currently producing (or has queued) using an AppleScript? I'm basically looking for the opposite of the AppleScript \"say\" command."
set thePID to do shell script "say " & quoted form of theText & " > /dev/null 2>&1 & echo $!"

delay 1
do shell script "kill " & thePID
...