Я хотел бы изменить скорость речи NSSpeechSynthesiser во время разговора.
В настоящее время я могу этого добиться, но эффект применяется, когда метод startSpeaking вызывается снова.
func speak(content: String) {
if isCurrentlySpeaking {
addToSpeakQueue(content: content)
return
}
isCurrentlySpeaking = true
loadVoicePreferences()
speechSynthesiser.startSpeaking(content)
}
private func loadVoicePreferences() {
guard let selectedVoice = TPPreferenceManager.shared.getSelectedVoiceIdentifier() else {return}
let speechRate = TPPreferenceManager.shared.getSpeechRate()
let speechVolume = TPPreferenceManager.shared.getSpeechVolume()
speechSynthesiser.volume = speechVolume
speechSynthesiser.setVoice(NSSpeechSynthesizer.VoiceName(rawValue: selectedVoice))
speechSynthesiser.rate = speechRate
}
Мне бы хотелось, чтобы изменения были применены в тот же момент, когда они сделаны без остановки или приостановки NSSpeechSynthesiser, как в VoiceOver.