Cue*_*Cue 1 applescript text-to-speech
如何使用AppleScript获取已安装语音的列表?我看到前段时间使用了:"告诉应用程序声音"或查看目录"/ System/Library/Speech/Voices /"中的文件,但似乎这些方法不再起作用了.
您可以使用shell脚本say和-v选项来获取列表.
do shell script "say -v?"
Run Code Online (Sandbox Code Playgroud)
-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.
Run Code Online (Sandbox Code Playgroud)
要仅提取名称,我将使用名称后面的空格作为分隔符来拆分名称和垃圾
set the_name to do shell script "say -v? | awk -F\"\\ \\ \" '{print $1}'"
Run Code Online (Sandbox Code Playgroud)
所以在这里我将say命令的结果传递给awk.
-F fs选项将输入字段分隔符定义为正则表达式fs.所以这就是我使用空格将名称与垃圾分开的地方.
我只需要给出一个双重空间而不是名称和垃圾之间的全部空间.我也必须用每个反斜杠来逃避空间.
因为我们在Applescript中,我们需要实际逃避转义以将它们传递到shell.当然,逃避额外的报价.
\"\\ \\ \"
Run Code Online (Sandbox Code Playgroud)
awk {print $ 1}将打印出字段1中的所有字段($ 1)
这给了我:
Deranged
Fred
Good News
Hysterical
Jorge
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |