我想更改说话时的语速,以了解其速度。

我通过以下两种方法进行了测试,但语速没有变化。

- (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;

}

最佳答案

如果语音合成器已经在讲话,则意味着您已经调用了talkUtterance方法。届时更改任何AVSpeechUtterance实例属性(例如rate)将不会有任何影响。如果要更改当前说话的速率,则需要使用上面列出的方法(willSpeakRangeOfSpeechString)来精确定位分配给该说话的字符串中的位置,请调用语音合成器方法stopSpeakingAtBoundary来停止当前的说话,创建一个根据剩余字符串创建新的语音,然后再次调用talkUtterance。

关于ios - 如何在iOS 7中使用AVSpeechSynthesizer更改说话时的语速,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25499803/

10-13 03:47