iOS SDK AVSpeechSynthesizer 練習 — #55 開不了口的告白 & 我們一起學貓叫
Published in
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)
}