我在iOS 7中有一个使用语音合成的代码,一切顺利。 为了定义我的AVSpeechUtterance速度,我使用了以下公式
float speakSpeedRate = (AVSpeechUtteranceMinimumSpeechRate + AVSpeechUtteranceDefaultSpeechRate)*0.5;
但似乎,至少在我的iPhone 5S上,在iOS 8下,AVSpeechUtteranceDefaultSpeechRate比在iOS 7上快得多。
有没有人经历过这个?
编辑:我经历过Apple dev论坛,似乎其他人遇到了这个bug,但它可能依赖于其他参数,比如语言......
答案 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;