iOS SDK AVSpeechSynthesizer 練習 — #55 開不了口的告白 & 我們一起學貓叫

邱士宸
彼得潘的 100 道 Swift iOS App 謎題
3 min readAug 27, 2019

這次做的是 AVSpeechSynthesizer 搭配 Slider 的練習, 用Slider 調整語速跟音高

程式碼 : https://github.com/Chosen3137/AVSpeech-Practice/blob/master/AVSpeech%20Practice/ViewController.swift

心得:經過上一次Slider 練習 這次就做得比較順了, 另外合音跟重唱的部分, 同一個action 不能放兩個AVSpeechSynthesizer 會報錯, 所以這邊總共分了三個 Speek Function

@IBAction func buttonPressed(_ sender: Any) { let speechUtterance = AVSpeechUtterance(string: speechInput.text!) speechUtterance.voice = AVSpeechSynthesisVoice(language: “zh-TW”) speechUtterance.pitchMultiplier = speechPitch.value 
speechUtterance.rate = speechRate.value
let synthesizer = AVSpeechSynthesizer() synthesizer.speak(speechUtterance)
}
@IBAction func buttonPressed2(_ sender: Any) { let speechUtteranceLow = AVSpeechUtterance(string: speechInput.text!) speechUtteranceLow.voice = AVSpeechSynthesisVoice(language: “zh-TW”) if speechPitch.value != 0 {
speechUtteranceLow.pitchMultiplier = speechPitch.value*0.8 }
else {
speechUtteranceLow.pitchMultiplier = 0.8 }
speechUtteranceLow.rate = speechRate.value
let synthesizer = AVSpeechSynthesizer() synthesizer.speak(speechUtteranceLow)
}
@IBAction func buttonPressed3(_ sender: Any) {
let speechUtteranceSlow = AVSpeechUtterance(string: speechInput.text!) speechUtteranceSlow.voice = AVSpeechSynthesisVoice(language: “zh-TW”)
speechUtteranceSlow.pitchMultiplier = speechPitch.value
if speechRate.value != 0 {
speechUtteranceSlow.rate = speechRate.value*0.7 }
else {
speechUtteranceSlow.rate = 0.4 }
speechUtteranceSlow.pitchMultiplier = speechPitch.value
let synthesizer = AVSpeechSynthesizer() synthesizer.speak(speechUtteranceSlow)
}

--

--