可以設定用Quicksliver快速切換系統語音嗎?

研究很久了...實在找不到辦法
只好上來請教版上大大們...

因為常常使用語音Alex(英語)跟Julie(法語-infovox iVox)的切換使用
每次要切換,就要到系統偏好設定裡面去改一次,一天要改好多次...
實在切換的很煩...

如果有快一點的方法就好了....


不一定要使用Quicksliver....只要可以快速切換就可以了


希望版上大大提供點意見....



ps.

剛剛最新試出來最接近要求的是可以用快捷鍵打開語音偏好設定

可以設定用Quicksliver快速切換系統語音嗎?

可是拉下語音選項,預設都是名單比較少的,都還要按一下『顯示較多聲音』....感覺又整個慢掉了...

還有更快的方法嗎?






搞錯了 刪--------------------------
看到2F分享的方法,我想到另一個方式是選取一段文字,然後快速鍵 Cmd+C 複製到剪貼簿中,接著呼叫script讓Mac發聲。另一個語言就使用預設的系統發聲快速鍵即可。

首先要寫英語(或法語,看習慣)發聲的script檔,打開Script編輯器,讓它出現在上方工具列中,接著輸入這兩行:
set myWord to the clipboard
say myWord using "Alex"
存成Script檔(Speak En.scpt)。如法炮製,把Alex改為Julie Infovox iVox HQ然後存成另外一個Speak Fr.scpt檔。

儲存路徑有兩種,都行:
(1) User Scripts Folder: 只有這個帳號才能用。
(2) Computer Scripts Folder: 其他帳號的使用者都能用。


另外,你也可以用Automator來寫workflow/application, 只是執行起來不見得比較快就是了。


心若守正,何福不隨
糊塗兄 wrote:
我想到另一個方式是選取一段文字,然後快速鍵 Cmd+C 複製到剪貼簿中,接著呼叫script讓Mac發聲。另一個語言就使用預設的系統發聲快速鍵即可。...(恕刪)


謝謝糊塗兄大大,真的可以耶!!!
這樣要使用不同的發音,就用不同的快捷鍵...

目前測試都可以使用!
又學到一招了...quicksliver真好用!

非常感謝您!
剛剛發現上述程式有個缺陷是如果選取的內容含有表格、圖片…等其他格式,Mac就變成啞吧了。我搜尋了一下,有人提供了一段擷取文字的Script:原文出處,經由這個Script可以無需使用複製鍵Cmd+C,同時適用大部分程式。做了一些更改,讓它可以發聲。

使用方法:
「複製下列方框內全部的程式碼,儲存為Speak Selection-Global.scpt,然後隨便開一個程式、選一段文字、呼叫這個Script」

其中:
(1) say "No text selected" using "Alex" 是當沒有選取內容時,使用Alex警告,可改為其他你喜好的聲音。
(2) say the_selection using "Vicki" 這一段是讓Vicki念出選取的文字內容,Vicki可改為其他聲音。
set clip_saver to the clipboard as record
set the clipboard to ""
set front_app to (path to frontmost application as Unicode text)
try
set app_name to name of application front_app
on error
set app_name to my extract_name(front_app)
end try
set menu_check to do_menu(app_name, "Edit", "Copy")
delay 0.5
set the_selection to the clipboard
if menu_check then
if the_selection is not "" then
try
set the_selection to the_selection as string
on error
set the_selection to ""
end try
end if
end if

set the clipboard to clip_saver

tell application (path to frontmost application as Unicode text)
if the_selection = "" then
--display dialog "No text selected"
say "No text selected" using "Alex"
else
--display dialog the_selection
say the_selection using "Vicki"
end if
end tell

on do_menu(app_name, menu_name, menu_item)
try
tell application app_name
activate
end tell
tell application "System Events"
tell process app_name
tell menu bar 1
tell menu bar item menu_name
tell menu menu_name
click menu item menu_item
end tell
end tell
end tell
end tell
end tell
return true
on error error_message
return false
end try
end do_menu

on extract_name(app_path)
if app_path ends with ":" then set app_path to (text 1 through -2 of app_path)
set {old_delims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, ":"}
set app_name to text item -1 of app_path
if app_name ends with ".app" then set app_name to (text 1 through -5 of app_name)
set AppleScript's text item delimiters to old_delims
return app_name
end extract_name


[後註]
整段程式可以改為純擷取文字(無發音)的Script,只需把(1)say...(2)say...兩行砍掉,接著去除(3)(4)兩行程式前的「--」記號,然後存檔即可。
(3)--display dialog "No text selected"
(4)--display dialog the_selection
心若守正,何福不隨

糊塗兄 wrote:
整段程式可以改為純擷取文字的Script,只需把(1)(2)砍掉,去除(3)(4)兩段程式前的「--」記號、存檔即可。...(恕刪)


抱歉,糊塗兄大大,這段文字我看不太懂耶

請問script的內容應該怎麼寫呢?


我試了{display dialog the_selection say the_selection using "Alex"}
可是選取的文字並不會發音....

還是要下面框起來的文字全部複製?

我試了複製下面全部的文字,然後刪除{--}記號,然後刪除[say "No text selected" using "Alex"]
呼叫之後,他只會跳出框框說 no text selected
(如果沒有刪除[say "No text selected" using "Alex"] 就會有聲音說:No text selected)

可是我明明選取了一段文字啊!

糊塗兄 wrote:
剛剛發現這段程式有個...(恕刪)


唔~這個變聲的方式好酷哩!!
不過script不知道有沒有辦法直接改寫成支援quicksilver current selection的script(或是弄成plugin?)
http://blog.roodo.com/appleseed
miumiuko wrote:
抱歉,糊塗兄大大,這...(恕刪)

對不起,我交代不清,你要發聲的script,所以只需要把方框裡的程式碼全部複製、貼成新的script來使用就好了。 ^^
appleseed wrote:
唔~這個變聲的方...(恕刪)

這個任務交給QS達人-> appleseed 吧
我不熟QS耶......也許會找個時間來研究看看
心若守正,何福不隨
糊塗兄 wrote:
對不起,我交代不清,你要發聲的script,所以只需要把方框裡的程式碼全部複製、貼成新的script來使用就好了。 ^^...(恕刪)


報告大大,剛剛試過,還是不行耶,一直跳出No text selected警告。

不過沒關係,您提供的 「set myWord to the clipboard say myWord using "Alex" 」 指令,已經很好用了。不知道是那裡出問題,暫時先用這個。

對於appleseed大大提出的用current selection pluging....很有興趣
應該是可行的吧...晚點來研究看看(我不會寫指令程式這些的啦....最多就是google看看有沒有現成的,哈哈)



對了,呼叫出來的script可以讓他停止嗎?

如果是用預設系統內建的語音,要他停止時,在按一次快捷鍵就好了

可是,如果是用qs呼叫,再按一次快捷鍵,他就會在說一次
就會聽到二部Alex朗讀....

如果不小心複製到一整篇文章,又不小心按到快捷鍵一次..然後要讓他停止又案了一次....整個狀況就很吵 ...而且電腦溫度會瞬間標高,QS又關不掉.... (這我剛剛發生的蠢事...)


不過我也不確定關掉QS是不是就會停止了...

如果沒有可以解決的方法,至少提出來,讓要使用的人小心一點,別跟我一樣蠢....哈哈





文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!