是否可以在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];