This is what I'm kind of looking for, but it only works in the terminal. Is there a defaults write command that allows you to change the speech rate?


So what I understand is that you need your Mac to speak faster when using the normal "start speaking" command (or Alt+Esc)? If so, I made a video explaining how to do this with a workflow and also how to troubleshoot that.

Essentially, I use an automator workflow that gives terminal the commands from this stack exchange post. The post uses this script:

plutil -convert json ~/Library/Preferences/com.apple.speech.voice.prefs.plist -o - |
python -c 'import json, sys;d=json.load(sys.stdin);[x.__setitem__(-1, 500) for x in d["VoiceRateDataArray"]];json.dump(d, sys.stdout)' |
plutil -convert binary1 -o ~/Library/Preferences/com.apple.speech.voice.prefs.plist - 

which I modified to work in automator (it looks like this):

on run {input, parameters}

    tell application "Terminal"
        do script "defaults read com.apple.speech.voice.prefs VoiceRateDataArray 
plutil -convert json ~/Library/Preferences/com.apple.speech.voice.prefs.plist -o - | python -c 'import json, sys;d=json.load(sys.stdin);[x.__setitem__(-1, " & (the clipboard) & ") for x in d[\"VoiceRateDataArray\"]];json.dump(d, sys.stdout)' | plutil -convert binary1 -o ~/Library/Preferences/com.apple.speech.voice.prefs.plist - 

sleep 1
killall com.apple.speech.speechsynthesisd
killall SpeechSynthesisServer && exit
" in front window
    end tell

    return input
end run

The end goal being a workflow (posted above) to give the user a simpler experience with the same capabilities as the terminal command.

In summary, I built an automator workflow that does what you want it to do. If you don't understand any of this post, just watch the video (first link).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.