问题
Can I change the pitch of the voice in AVSpeechSynthesizer or putting any effects on the output voice from it so it could sound differently?
回答1:
Yes, you can change the pitch and the rate of the spoken sentence.
The AVSpeechUtterance
class has two relevant properties:
pitchMultiplier: Float
(value between 0.5 (lowest pitch) to 2.0 (highest pitch)). The default pitch is 1.0.rate: Float
(value between two constants:AVSpeechUtteranceMinimumSpeechRate
(the slowest rate of speech) andAVSpeechUtteranceMaximumSpeechRate
(the highest rate of speech).
When you create your AVSpeechUtterance
, simply set these properties appropriately before getting your AVSpeechSynthesizer
to speak the utterance.
Note: You can also change the voice (accent) of AVSpeechUtterance
.
I hope this helps. Let me know if anything I said was unclear.
回答2:
The default pitch is 0.5.
AVSpeechUtteranceMinimumSpeechRate is 0.0
AVSpeechUtteranceMaximumSpeechRate is 1.0 (the highest rate of speech).
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];
来源:https://stackoverflow.com/questions/35102011/is-it-possible-to-change-the-pitch-of-the-voice-in-avspeechsynthesizers-voice