2009-09-28 37 views
24

Lệnh mac say có thể chỉ định giọng nói được sử dụng với cờ -v.Lấy danh sách các giọng nói chuyển văn bản thành giọng nói của Mac theo chương trình?

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

Có thể nhìn thấy giọng nói có sẵn trong Tùy chọn hệ thống/Lời nói/Văn bản để nói. Làm thế nào tôi có thể nhận được danh sách này theo chương trình?

+5

Yêu thích tham chiếu XKCD –

Trả lời

6
+0

đẹp! Điều này sẽ không thể gọi được thông qua python bởi bất kỳ cơ hội? –

+0

Tôi chắc chắn bạn có thể gọi nó thông qua PyObjC, được bao gồm trong Mac OS X 10.5 trở lên (và có thể tải xuống cho các phiên bản cũ hơn). – Chuck

+0

bạn nói đúng, tôi đã sao chép phần dưới đây ... cảm ơn một đám !! –

7

Shell Version, không thuê quá rẻ!

(Không thực sự sử dụng này, sử dụng phiên bản python để thay thế.)

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

Agnes 
Albert 
Alex 
BadNews 
Bahh 
Bells 
Boing 
... 
7

Python Version, biếu không của Barry Wark:

from AppKit import NSSpeechSynthesizer 
print NSSpeechSynthesizer.availableVoices() 
79

Đây là danh sách của giọng nói có sẵn:

say -v '?' 
+0

Không phải trên 10.6. (Soạn thảo văn bản của bộ nạp char 15) – mankoff

+0

hoạt động trên 10.9 – kritzikratzi

2

Đó là giá trị đi throug h một số tiếng nói trước khi quyết định một. Có một sự thay đổi lớn về chất lượng.

Ví dụ, Tom có ​​vẻ thiếu kiên nhẫn, nhưng thực tế hơn Alex. Và một số tiếng nói của Anh rất tuyệt.

Sử dụng câu nói -v '?' cung cấp cho bạn một danh sách các giọng nói được cài đặt cộng với một số câu mẫu cho bạn một ý tưởng những gì mong đợi của giọng nói. Bạn phải trải qua các sở thích để cài đặt hầu hết các giọng nói thực sự tốt, nhưng chúng đi kèm với một tập tin giọng nói nhỏ gọn cho phép bạn nghe những gì mỗi giọng nói nghe như trước khi bạn thực sự tải chúng xuống.

18
for voice in `say -v '?' | awk '{print $1}'`; do say -v "$voice" "Hello, my name is $voice."; done 
Các vấn đề liên quan