【问题标题】:How to change speech rate during speaking using AVSpeechSynthesizer in iOS 7如何在 iOS 7 中使用 AVSpeechSynthesizer 更改说话时的语速
【发布时间】:2014-09-27 09:42:24
【问题描述】:

我想在朗读文本时更改语速以了解速度。

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

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

}

【问题讨论】:

  • fSpeechSpeed的值是多少?
  • fSpeechSpeed 变量是从其他视图设置的。
  • 是的,但它的价值是什么?我的意思是,它是0.5吗? 1? 42? AVSpeechUtterancerate 的有效值范围有限。
  • 是的,范围是0.0f ~ 1.0f

标签: ios text-to-speech avspeechsynthesizer


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多