Search code examples
applescriptspeech-recognitionspeech-to-text

AppleScript - Speech to Text


I am trying to write a small AppleScript that can output a string of text which can be manipulated by another script. This works:

tell application "SpeechRecognitionServer"
    set display to no
    set theResponse to listen for {"yes", "no"}
    if theResponse is "yes" then
        display
    else
        say "Goodbye."

    end if
end tell

The only problem is that it repeats the command that you issue it! (in our case, yes or no). So my question is: Is there a way to prevent it from repeating the command? I just do not see why it repeats the command, nor can I figure out which process runs the voice or I would just kill it.

Thanks


Solution

  • Manual fix:
    System Preferences -> Speech -> Speech Recognition Tab
    Disable the "Upon Recognition" checkbox.

    Programatic fix:
    This involves disabling these prefs before your code and then setting them back to their original values afterwards. That is, if you intend for this code to be portable to other users. If its only a personal script for yourself, then the manual fix is fine to set it permanently.

    Refer to this forum for people asking the same question, and the various approaches they have tried:
    http://macscripter.net/viewtopic.php?id=33259