2014-09-19 36 views
0

我想爲Mac編寫一個應用程序,截取操作系統處理文本到語音的內置方式。這需要通過接收事件「有人​​已經開始標準」開始說話「功能」來觸發。截取系統寬Mac OS X SpeechSynthesizer使用文本到語音時的事件

從閱讀Speech synthesis programming guide看來,語音合成框架似乎是可插入的,並且將是一個合適的地方來攔截傳入的TTS請求。不幸的是,這些文件尤其沒有提供有關如何在全球範圍內完成截取的見解。我在哪裏可以學習如何實施這種攔截計劃?

回答

1

根據我對API的使用經驗,我確信全球訪問此信息的唯一方法是輪詢NSSpeechSynthesizer的+isAnyApplicationSpeakingSpeechBusySystemWide()。你可以嘗試綁定前者,但我認爲我已經嘗試過,並且它不是KVO兼容的。

+0

我明白了,但即使這些方法會將事件發送給我,我也無法真正攔截tts請求調用。另一種方法可能是創建一種'僞聲音',將TTS功能​​委託給其他可用的聲音。你知道有關如何以編程方式創建自己的「自定義語音」的任何信息嗎?這應該是公共API,考慮到這些聲音似乎有第三方提供商 - 但我無法找到任何有關這些信息的信息。 – keyboardsamurai 2014-09-21 10:06:18

+1

有趣的方法@keyboardsamurai!有莫爾斯「語音」示例代碼。您目前會遇到麻煩讓它實際構建AFAIK。檢查https://lists.apple.com/mailman/options/speech-dev/。 – JanX2 2014-09-22 10:48:15

+0

真棒 - 它看起來就是我所需要的。非常感謝。我在https://developer.apple.com/library/mac/samplecode/MorseSynthesizer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011314-Intro-DontLinkElementID_2 – keyboardsamurai 2014-09-22 12:35:25