【发布时间】:2011-12-05 10:32:59
【问题描述】:
我有一个 OS X 应用程序,它使用 NSSpeechSynthesizer 类来阅读一些文本。我需要能够设置阅读速度,这是使用NSSpeechSynthesizer 的rate 属性完成的。然而,不同的声音有不同的基线阅读率和不同的范围。问题是我找不到从语音中获取此范围的方法,以便我知道语音可以接受哪些值。这很重要,因为我希望能够从范围的差异中抽象出来,让用户选择慢/正常/快之类的东西。但是对于基线为每分钟 180 个单词的语音,100 的值将被视为慢,对于基线为每分钟 100 个单词的语音显然不是这种情况。
有没有办法获得这些范围?我没有在 NSSpeechSynthesizer 的类参考中找到任何有用的东西。
【问题讨论】:
-
您是否说您的问题是因为声音不同,您无法让声音保持恒定速率?所以我认为你必须有不同的声音?您始终可以使用您自己的自定义 NSVoice 对象并为其赋予与其他对象相同的属性,只需使速率保持不变。在您的对象中使用这些属性,代码应该可以正常工作。虽然你是对的,但应该有一种方法可以设置基线文本阅读速度:(
-
好吧,我可以为所有声音设置相同的速率(以每分钟字数为单位),但那是不对的。问题是,人们以不同的速度说话,所以对于一个人来说自然的速度是不同的(因此对于合成声音也是如此)。所以我的慢/正常/快值需要相对于基线。我可能会将慢设置为正常速度的一半,将快速设置为两倍,看看是否有意义。
标签: objective-c macos cocoa speech-synthesis