如何向NSSpeechSynthesizer添加新的语音词典?

时间:2013-04-12 09:33:43

标签: objective-c macos cocoa text-to-speech

我一直在尝试为我的应用使用的NSSpeechSynthesizer派生语音引擎设置自定义发音。但是,我一直遇到问题。

我正在创建一个新字典,使用NSSpeechSynthesizer类引用中指定的键添加到我的语音引擎,但文档非常混乱,并且缺少一些重要信息。相关部分的标题为“语音字典属性键”,链接如下:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSSpeechSynthesizer_Class/Reference/Reference.html

我对此感到有点困惑,因为看起来NSSpeechDictionaryPronunciation键包含与NSSpeechDictionaryEntryPhonemes和NSSpeechDictionaryEntrySpelling相同的信息。还没有关于是否需要所有密钥的信息,或者它们是否是可选的,是什么构成每个密钥的有效数据,或者如何从已经初始化的语音引擎获得现有值。我也找不到任何关于何时可以添加新语音字典的细节。

根据我从本文档中收集的内容,我假设一个语音字典是每个键都是可选的,并附加到引擎已经使用的任何数据,新添加的字典优先于现有的存在冲突的数据。我已经定义了一个只包含NSSpeechDictionaryPronunciation键的diuctionary,其值是包含NSSpeechDictionaryEntrySpelling和NSSpeechDictionaryEntryPhonemes键的NSDictionary对象数组,详见文档。当我调用-addSpeechDictionary时,语音引擎已经初始化了。

然而,这会引发错误。抛出的实际错误代码取决于我选择的语音,但它总是会抛出错误,并且定义的发音不起作用。

我只能假设我做错了,但由于我无法在任何地方找到有关如何使用此功能的信息(除了非常模糊的文档),我有点卡住了。有没有人对这个功能有任何经验,并且coudl指出我正确的方向?或者甚至指向一本书的方向或更详细地介绍这一点的东西?谷歌一直没有帮助......

0 个答案:

没有答案