是否可以改变 AVSpeechSynthesizer 声音的音调?

is it possible to change the pitch of the voice in AVSpeechSynthesizer's voice?

我可以在 AVSpeechSynthesizer 中更改声音的音高,或者对它的输出声音施加任何影响,使其听起来不同吗?

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

AVSpeechUtterance class 有两个相关属性:

  • 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];