以编程方式获取Mac文本到语音的列表?

时间:2009-09-28 23:06:12

标签: macos text-to-speech

mac命令 say 可以指定与 -v 标志一起使用的语音。

say -v Alex "compile completed, put your swords down."

可在系统偏好设置/语音/文本到语音中看到可用的声音。如何以编程方式获取此列表?

8 个答案:

答案 0 :(得分:89)

这是可用语音列表:

say -v '?'

答案 1 :(得分:23)

for voice in `say -v '?' | awk '{print $1}'`; do say -v "$voice" "Hello, my name is $voice."; done

答案 2 :(得分:9)

Python版,由Barry Wark提供:

from AppKit import NSSpeechSynthesizer
print NSSpeechSynthesizer.availableVoices()

答案 3 :(得分:8)

Shell版本,没有太便宜的黑客!

(实际上不要使用它,请改用python版本。)

ls /System/Library/Speech/Voices | sed 's/.SpeechVoice$//'

Agnes
Albert
Alex
BadNews
Bahh
Bells
Boing
...

答案 4 :(得分:6)

答案 5 :(得分:2)

在决定一个之前,值得经历几个声音。质量差异很大。

例如,汤姆听起来有点不耐烦,但比亚历克斯更现实。一些英国人的声音很棒。

用say -v'?'为您提供已安装语音的列表以及一些示例句子,让您了解对语音的期望。您必须通过首选项来安装大多数非常好的声音,但它们带有一个紧凑的语音文件,可让您在实际下载之前听到每种声音的声音。

答案 6 :(得分:2)

您可以使用以下方法采样所有可用的声音:

say -v '?' | awk '{$2=$3=""; printf "-v %s", $1; $1=""; print " \"" $0 "\""}'| xargs -L1 say

答案 7 :(得分:0)

for i in `say --voice=? | cut -f 1 -d' ' ` ; do  
  echo $i;  say --voice=$i $i
done