RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [教學][Mac OS X]好用又有趣的指令"say"   字型大小:||| 
  本主題被作者加入到他/她的 Blog 中  
NeoBetas
金驢友〔初級〕
等級: 16等級: 16等級: 16等級: 16


 . 積分: 1871
 . 精華: 1
 . 文章: 3077
 . 收花: 16062 支
 . 送花: 14188 支
 . 比例: 0.88
 . 在線: 1461 小時
 . 瀏覽: 31849 頁
 . 註冊: 7041
 . 失蹤: 3584
#1 : 2008-9-24 10:54 PM     只看本作者 引言回覆

OS X 中有個指令叫 "say",他可以讓使用者在終端機下命令電腦唸出指定的英文內容,例如你輸入
"say Hello",他就會唸"Hello"。可是,如果你要他唸一段文章,裡面含有各種標點符號,他就會出現錯誤給你看:

say Porphyrias are a group of inherited or acquired disorders of certain enzymes in the heme biosynthetic pathway (also called porphyrin pathway). They are broadly classified as hepatic porphyrias or erythropoietic porphyrias, based on the site of the overproduction and mainly accumulation of the porphyrins (or their chemical precursors). They manifest with either skin problems or with neurological complications (or occasionally both).


Mac OS X 從 10.3(如果我沒記錯的話)開始,便強化了這個功能,加入了更多參數讓使用者"玩"這個指令。他多了下面這些指令參數:

say [-v voice] [-o out] [-f in | message]
所以,我們有兩個辦法可以解決上面的問題。

第一種,改用這個指令:

say "Porphyrias are a group of inherited or acquired disorders of certain enzymes in the heme biosynthetic pathway (also called porphyrin pathway). They are broadly classified as hepatic porphyrias or erythropoietic porphyrias, based on the site of the overproduction and mainly accumulation of the porphyrins (or their chemical precursors). They manifest with either skin problems or with neurological complications (or occasionally both)."
加上引號後他就可以正常的唸。當然,如果只能這樣玩就太遜了,他還可以唸 .txt 文字檔,然後直接輸出成聲音檔!

我們把剛剛那段文字存成 read.txt,放在桌面上(注意,只能是純文字檔,使用 rtf 之類的他還是會照唸,但是他會連你的格式語法代碼一起唸...),使用以下指令:

say -o ~/Desktop/say.aiff -f ~/Desktop/read.txt
你會發現他停住了!這可不是當機喔,使用 top 指令察看的話會發現他正在耗用大量的 CPU 資源,等一下下桌面上就會出現"say.aiff"這個聲音檔,打開來,會發現是剛剛那段文字的朗讀錄音。而且文章就算要唸十幾分鐘,他還是可以在兩三分中內產生出整個朗讀檔。

我沒有試過產生 MP3 或 AAC ,有興趣的人自己試試吧!我是用 iTunes 再轉成別的格式的。


相關關鍵字: say  Mac  OS  X  






[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
froce
青銅驢友
等級: 11等級: 11等級: 11等級: 11
偶不當紳士很久了...

 . 積分: 242
 . 文章: 943
 . 收花: 1696 支
 . 送花: 52 支
 . 比例: 0.03
 . 在線: 3050 小時
 . 瀏覽: 32300 頁
 . 註冊: 6238
 . 失蹤: 2635
#2 : 2008-10-20 11:24 PM     只看本作者 引言回覆

linux下是用espeak這個指令...不過不能直接轉其他格式...只能用wav...


引用:
NeoBetas寫到:
OS X 中有個指令叫 "say",他可以讓使用者在終端機下命令電腦唸出指定的英文內容,例如你輸入
"say Hello",他就會唸"Hello"。可是,如果你要他唸一段文章,裡面含有各種標點符號,他就會出現錯誤給你看:

這個是一定的...常用終端機的人就知道為什麼了...
(其實有空格就會有問題了...你會發現他只念第一個字...)

say Porphyrias\ are\ a\ group\ of\ inherited\ or\ acquired\ disorders\ of\ certain\ enzymes\ in\ the\ heme\ biosynthetic\ pathway\ \(also\ called\ porphyrin\ pathway\)\.
可以試試看這個...
不過應該沒有人會想這樣玩...XD

[froce 在  2008-10-21 12:00 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-20 01:53 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.023697 second(s), 6 queries , Qzip disabled