是否可以在AVSpeechSynthesizer的声音中改变声音的音高?

我可以在AVSpeechSynthesizer中更改声音的音高,还是对输出声音产生任何影响,使声音听起来不同?

是的,您可以更改口语句子的音高比率

AVSpeechUtterance类有两个相关属性:

  • pitchMultiplier: Float (值介于0.5 (最低音高)到2.0 (最高音高)之间)。 默认音高为1.0
  • rate: Float (两个常数之间的值: AVSpeechUtteranceMinimumSpeechRate (最慢的语速)和AVSpeechUtteranceMaximumSpeechRate (语音的最高速率)。

在创建AVSpeechUtterance ,只需在让AVSpeechSynthesizer说出话语之前适当地设置这些属性。

注意:您还可以更改AVSpeechUtterance语音 (重音)。

我希望这有帮助。 如果我说的话不清楚,请告诉我。

默认音高为0.5。

AVSpeechUtteranceMinimumSpeechRate为0.0

AVSpeechUtteranceMaximumSpeechRate是1.0(语音的最高速率)。

 AVSpeechSynthesizer *synthesizer= [[AVSpeechSynthesizer alloc]init]; synthesizer.delegate=self; AVSpeechUtterance *utterances = [AVSpeechUtterance speechUtteranceWithString:text];utterances.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"de-DE"];//change voice utterances.rate=0.5;//default rate [synthesizer speakUtterance:utterances];