2009-09-28 6 views
24

La commande mac say peut spécifier la voix utilisée avec l'indicateur -v.Obtenir la liste des voix de synthèse vocale Mac par programme?

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

Les voix disponibles peuvent être consultées dans Préférences Système/Parole/Synthèse vocale. Comment puis-je obtenir cette liste par programme?

+5

Aimez la référence XKCD –

Répondre

6
+0

nice! Cela ne serait pas appelable via python par hasard? –

+0

Je suis sûr que vous pourriez l'appeler via PyObjC, qui est inclus avec Mac OS X 10.5 et au-dessus (et téléchargeable pour les versions antérieures). – Chuck

+0

vous avez raison, j'ai copié l'incanation ci-dessous ... merci beaucoup! –

7

Version Shell, pas trop bidouille pas cher!

(Ne pas utiliser en fait, utilisez la version python à la place.)

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

Agnes 
Albert 
Alex 
BadNews 
Bahh 
Bells 
Boing 
... 
7

Python version, avec la permission de Barry Wark:

from AppKit import NSSpeechSynthesizer 
print NSSpeechSynthesizer.availableVoices() 
79

Voici la liste des voix disponibles:

say -v '?' 
+0

Pas sur 10.6. (Texte de remplissage char SO 15) – mankoff

+0

fonctionne sur 10.9 – kritzikratzi

2

Cela vaut la peine d'y aller h plusieurs des voix avant de décider d'un. Il y a une énorme variation de qualité. Par exemple, Tom semble un peu impatient, mais beaucoup plus réaliste qu'Alex. Et certaines des voix britanniques sont géniales.

En utilisant say -v '?' vous donne une liste des voix installées plus quelques exemples de phrases qui vous donnent une idée de ce à quoi s'attendre de la voix. Vous devez passer par les préférences pour installer la plupart des très bonnes voix, mais elles viennent avec un fichier vocal compact qui vous permet d'entendre ce que chaque voix sonne avant de les télécharger.

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