Можно ли изменить высоту голоса в голосе AVSpeechSynthesizer?
Могу ли я изменить высоту голоса в AVSpeechSynthesizer или наложить на него какие-либо эффекты, чтобы он мог звучать по-другому?
2 ответа
Решение
Да, вы можете изменить высоту и скорость произнесенного предложения.
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];