Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用文本语音转换时拦截系统范围的Mac OS X SpeechSynthesizer事件_Objective C_Macos_Text To Speech - Fatal编程技术网

Objective c 使用文本语音转换时拦截系统范围的Mac OS X SpeechSynthesizer事件

Objective c 使用文本语音转换时拦截系统范围的Mac OS X SpeechSynthesizer事件,objective-c,macos,text-to-speech,Objective C,Macos,Text To Speech,我想为Mac编写一个应用程序,拦截操作系统处理文本到语音的内置方式。它需要通过接收事件“有人启动了标准的“开始讲话”功能”来触发 从阅读文章来看,语音合成框架似乎是可插拔的,是拦截传入TTS请求的合适场所。不幸的是,这些文件尤其没有提供如何在全球范围内进行拦截的见解。我在哪里可以了解如何实施这样一个拦截方案?根据我使用API的经验,我非常确信,全局访问此信息的唯一方法是轮询NSSpeechSynthesizer的+isAnyApplicationSpeaking或SpeechBusySystem

我想为Mac编写一个应用程序,拦截操作系统处理文本到语音的内置方式。它需要通过接收事件“有人启动了标准的“开始讲话”功能”来触发


从阅读文章来看,语音合成框架似乎是可插拔的,是拦截传入TTS请求的合适场所。不幸的是,这些文件尤其没有提供如何在全球范围内进行拦截的见解。我在哪里可以了解如何实施这样一个拦截方案?

根据我使用API的经验,我非常确信,全局访问此信息的唯一方法是轮询NSSpeechSynthesizer的
+isAnyApplicationSpeaking
SpeechBusySystemWide()
。您可以尝试绑定到前者,但我认为我已经尝试过了,这不是KVO complient。

我明白了,但即使这些方法会向我发送事件,我也无法真正拦截tts请求调用。另一种方法可能是创建一种“伪语音”,将TTS功能委托给其他可用语音。你知道关于如何以编程方式创建自己的“自定义语音”的任何信息吗?这应该是一个公共api,考虑到这些声音似乎有第三方提供商,但我也找不到任何关于这些声音的信息。有趣的方法@keyboardsamurai!这是莫尔斯“语音”示例代码。目前,要让它真正构建AFAIK,您将遇到一些困难。检查。太棒了-看起来这正是我需要的。谢谢。我在@keyboardsamurai上找到了摩尔斯电码的例子。你有没有用过这个。我经常用课文来演讲。我想修改它读取某些内容的方式。。就像闲谈一样。。