如何在iOS 7中使用AVSpeechSynthesizer进行演讲时更改语速

时间:2014-08-26 06:56:58

标签: ios text-to-speech avspeechsynthesizer

我想在发言时改变语速,知道速度有多快。

我测试了以下两种方式,但语速不会改变。

- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer willSpeakRangeOfSpeechString:NSRange)characterRange utterance:(AVSpeechUtterance *)utterance{

    // 1. AVSpeechUtterance *SpeechUtterence; 
    SpeechUtterence.rate = fSpeechSpeed;

   // 2. set fSpeechSpeed from other view 
    utterance.rate = fSpeechSpeed;

}

1 个答案:

答案 0 :(得分:2)

如果语音合成器已经说话,那意味着你已经调用了speakUtterance方法。此时,更改任何AVSpeechUtterance实例属性(如rate)将不会产生任何影响。如果你想改变当前说话话语的速度,你需要使用上面列出的方法(willSpeakRangeOfSpeechString)来确定你在分配给话语的字符串中的位置,调用语音合成器方法stopSpeakingAtBoundary来停止当前的话语,创建一个基于剩余字符串的新话语,然后再次调用speakUtterance。