如何使用AppleScript获取已安装语音的列表?我看到之前使用的是:"告诉应用程序的声音"或查看目录中的文件" / System / Library / Speech / Voices /"但似乎这些方法不再起作用了。
答案 0 :(得分:5)
您可以使用shell脚本say和-v选项来获取列表。
do shell script "say -v?"
-v voice, - voice = voice 指定要使用的语音。默认是选择的语音 系统偏好。获取安装在中的语音列表 系统,指定'?'作为语音名称。
在我的系统上,我会得到一个很长的列表,如:
Deranged en_US # I need to go on a really long vacation.
Fred en_US # I sure like being inside this fancy computer
Good News en_US # Congratulations you just won the sweepstakes and you don't have to pay income tax again.
Hysterical en_US # Please stop tickling me!
Jorge es_ES # Hola, me llamo Jorge y soy una voz española.
要仅提取名称,我将使用名称后面的空格作为分隔符来分割名称和垃圾
set the_name to do shell script "say -v? | awk -F\"\\ \\ \" '{print $1}'"
所以在这里我将say命令的结果传递给awk。
-F fs选项 将输入字段分隔符定义为正则表达式fs。 所以这就是我使用空格将名称与垃圾分开的地方。
我只需要给出一个双倍空间而不是名称和垃圾之间的全部空间。我也必须用反斜杠逃避空间。
因为我们在Applescript中,所以我们需要实际逃避转义以将它们传递给shell。当然可以逃避额外的报价。
\"\\ \\ \"
awk {print $ 1}将打印出字段1($ 1)
中的所有字段给了我:
Deranged
Fred
Good News
Hysterical
Jorge