Условия состязания и мертвые блокировки. Я делаю много многопоточных процессов, и это - самая твердая вещь иметь дело с.
Версия оболочки , никакого дешевого взлома!
(На самом деле не используйте это, используйте вместо него версию на Python.)
ls /System/Library/Speech/Voices | sed 's/.SpeechVoice$//'
Agnes
Albert
Alex
BadNews
Bahh
Bells
Boing
...
Python Version, courtesy of Barry Wark:
from AppKit import NSSpeechSynthesizer
print NSSpeechSynthesizer.availableVoices()