iOS 8中的AVSpeechUtterance速度

时间:2014-09-29 10:27:29

标签: ios avspeechsynthesizer

我在iOS 7中有一个使用语音合成的代码,一切顺利。 为了定义我的AVSpeechUtterance速度,我使用了以下公式

float speakSpeedRate = (AVSpeechUtteranceMinimumSpeechRate + AVSpeechUtteranceDefaultSpeechRate)*0.5;

但似乎,至少在我的iPhone 5S上,在iOS 8下,AVSpeechUtteranceDefaultSpeechRate比在iOS 7上快得多。

有没有人经历过这个?

编辑:我经历过Apple dev论坛,似乎其他人遇到了这个bug,但它可能依赖于其他参数,比如语言......

3 个答案:

答案 0 :(得分:9)

这里有同样的问题。所以我通过给出不同的价值来处理它。 似乎iOS8的速度提高了一倍。

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1)
{
    speechUtterance.rate = 0.15;
}else{
    speechUtterance.rate = 0.3;
}

答案 1 :(得分:5)

是。 iOS8上的TTS有多个问题(并且,imho,严重破坏):它在模拟器中不起作用,它有静音的问题,需要设置可访问性,速率与iOS7不同等等。只需搜索SO标签“ios8 “和”AVSpeechSynthesizer“并发现一堆错误!

解决方案?只需等待更新 - 并继续发布雷达。

解决方法?测量在iOS7和iOS8上说出已知短语的时间,并更正iOS8的实际速率。

upd dec-2014 :XCode 6.2 beta2确实解决了TTS在模拟器和TTS速率方面的问题。

答案 2 :(得分:2)

是的,我已经注意到这一点,我调整了我的演讲话语速度 float speechSpeed = 0.1000;