如何找到NSSpeechSynthesizer的'rate'属性的范围?

时间:2011-12-05 10:33:00

标签: objective-c macos cocoa speech-synthesis

我有一个OS X应用程序,它使用NSSpeechSynthesizer类来阅读一些文本。我需要能够设置读数的速度,这是使用rate的{​​{1}}属性完成的。然而,不同的声音具有不同的基线阅读率和不同的范围。问题是我找不到从声音中获取此范围的方法,以便我知道语音可接受的值。这很重要,因为我希望能够从范围的差异中抽象出来,让用户选择慢/正常/快速的东西。但对于一分钟基线为180字的声音,100的值将被认为是慢的,对于基线为每分钟100字的声音来说显然不是这样。

有没有办法获得这些范围?我在NSSpeechSynthesizer的类引用中找不到任何有用的东西。

2 个答案:

答案 0 :(得分:1)

您可以在更改之前获得语音的速率,并且您可以估计可接受的范围是默认速率±50 WPM或其他。

也就是说,如果您使用它来设置滑块,我会提醒您不要将用户限制为只有“自然”的声音范围。有些人,包括许多盲人,为了节省聆听时间,故意尽可能快地加速。

答案 1 :(得分:0)

嗯,我知道这不是你可能一直在寻找的答案,但据我所知,Apple还没有向公众提供一种方法来改变NSSpeechSynthesizer对象实例的基线速度(正如你所说,它具有'速率'实例,但它不能为每个不同的声音制定恒定的费率。对于这一点,我知道你不会喜欢它,你必须让速度较慢的速度更快,速度越慢,直到它们匹配为止。对不起,但据我所知,Apple没有提供改变基准率的方法。快乐的编码!

〜Monkeyanator