作業9--上帝之語&動物之聲
Published in
4 min readAug 17, 2020
這次使用之前在playground玩過的AVSpeechSynthesizer,但是這次變成是APP版。
主題1--上帝之聲
程式碼簡易說明
//連結物件
@IBOutlet weak var talkTextField: UITextField!@IBOutlet weak var voiceSlider: UISlider!@IBOutlet weak var speedSlider: UISlider!@IBOutlet weak var pitchSlider: UISlider!@IBOutlet weak var speedLabel: UILabel!@IBOutlet weak var pitchLabel: UILabel!@IBOutlet weak var volumeLabel: UILabel!@IBOutlet weak var languageSegmentedControl: UISegmentedControl!
1 唸出 text field 輸入的文字。
let Utterance = AVSpeechUtterance(string: talkTextField.text!)
2 利用 slider 控制講話的速度。
Utterance.rate = speedSlider.value
3 利用 slider 控制講話的音調。
Utterance.pitchMultiplier = pitchSlider.value
4 利用 label 顯示 slider 的數值。
volumeLabel.text = String(format: "%.2f", voiceSlider.value)pitchLabel.text = String(format: "%.2f", pitchSlider.value)speedLabel.text = String(format: "%.2f", speedSlider.value)
5 利用 slider 控制講話的音量。
Utterance.volume = voiceSlider.value
6 加入暫停 & 繼續講話的 button。
//暫停
synthesizer.pauseSpeaking(at: .immediate)//繼續
synthesizer.continueSpeaking()
7 加入2種語言講話的 Segmented。
if languageSegmentedControl.selectedSegmentIndex == 0{Utterance.voice = AVSpeechSynthesisVoice(language: "zh-TW")} else if languageSegmentedControl.selectedSegmentIndex == 1{Utterance.voice = AVSpeechSynthesisVoice(language: "zh-hk")}
撥放成果 — 唸出-達拉崩吧...部份歌詞(中文版與語粵語版都有錄哦~~)
完整程式碼github
主題2--動物之聲
撥放成果
完整程式碼github
參考文章:
最後來聽聽--達拉崩吧完整版