1

テキストを話しているときにスピーチ速度を変更して、速度を知りたいです。

以下の2通りの方法でテストしましたが、話速は変わりません。

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

}
4

1 に答える 1

4

音声シンセサイザーが既に話している場合は、speakUtterance メソッドが既に呼び出されていることを意味します。その時点で、rate などの AVSpeechUtterance インスタンス プロパティを変更しても効果はありません。現在話している発話の速度を変更したい場合は、上記のメソッド (willSpeakRangeOfSpeechString) を使用して発話に割り当てられた文字列内の位置を特定し、音声合成メソッド stopSpeakingAtBoundary を呼び出して現在の発話を停止し、残りの文字列に基づいて新しい発話を作成し、speakUtterance を再度呼び出します。

于 2014-09-27T01:23:56.477 に答える