#55 開不了口的告白 App
這個作業其實已經做過了合成器(講話:AVSpeechSynthesizer)、變音器( AVSpeechUtterance.rate; speechUtterance.pitchMultiplier ) 與將音樂或聲音檔加入(AV Player):
所以跟據以下的屬性
這篇要新增補上:
- Label shows Slider Value
- TextField 可以輸入中文的文字發音
- Add Volume Slider 可以調大小聲
- Add postUtteranceDelay and preUtteranceDelay
上菜開始吧!
- Label shows Slider Value
The default pitch is 1.0
. Allowed values are in the range from 0.5
(for lower pitch) to 2.0
(for higher pitch).
以下的Max&Min我試過,超過這個範圍就會超出正常聲音可理解的範圍。
2. TextField key in traditional Chinese
因為一直都是做英文的,完全不知道怎麼打開繁體中文的鍵盤。剛好這篇可以來做。
第一次要先選在 Simulator 的Hardware->Keyboard->Toggle Software Keyboard ,換左下角的地球把鍵盤叫出來。
為了怕鍵盤一直放著影響畫面,Toggle Software Keyboard第一次打開過之後,再選一次就可以關起來了,之後會一直顯示繁中。
或是拉TextField 連action, 連outlet時的觸發事件(Event)選Did End On Exit,擊點TextField時鍵盤就會自動跑出來,key完enter也會自動收起來。
@IBAction func dismissKeyboard(_ sender: Any) {}
3. add Volume Slider tuning volume
值可依據slider value調整
speechUtterance.pitchMultiplier = voiceType.valuespeechUtterance.rate = speedRate.valuespeechUtterance.volume = volume.value
4. Add postUtteranceDelay and preUtteranceDelay
這裡我設了二個speechUtterance1&speechUtterance2,
speechUtterance1依照我key in的中文:「你是我的菜」發音
speechUtterance2則是內建的人名稱(所以畫面上不會顯示,而是寫在swift裡)
(平常不要惹太太,很容易被拿來公開告白)
let speechUtterance1 = AVSpeechUtterance(string:quoteTextField.text!)let speechUtterance2 = AVSpeechUtterance(string:"豬隊友")speechUtterance2.preUtteranceDelay = 3speechUtterance1.voice = AVSpeechSynthesisVoice(language:"zh-TW")speechUtterance2.voice = AVSpeechSynthesisVoice(language:"zh-TW")speechUtterance1.pitchMultiplier = voiceType.valuespeechUtterance1.rate = speedRate.valuespeechUtterance1.volume = volume.valuespeechUtterance2.pitchMultiplier = voiceType.valuespeechUtterance2.rate = speedRate.valuespeechUtterance2.volume = volume.valuesynthesizer.speak(speechUtterance1)synthesizer.speak(speechUtterance2)
5. 改了segment的Icon&Tint, Image &Title原來只能二選一。
哈哈,第二個是阿基里斯腱中箭,並不是吃光的蘋果核哦!
最後,試試我的菜
Stay Yummy Github!