AVSpeechSynthesizer: 我們一起去東京買「寶可夢」

概念發想

「男友一直想去東京的寶可夢中心買他最喜歡的Pokemon,但每次我們談到寶可夢時,總是不知道對方在講哪一隻。他說『Snorlax』,我說『卡比獸』,日文是『カビゴン』。為了讓日本店員、他和我都清楚知道,我們在說哪隻寶可夢,決定利用這週所學的AVSpeechSynthesizer,來製作一個三國語言翻譯機,準確發音寶可夢的名稱。」希望我們都可以在東京寶可夢中心,(使用自製的APP)順利購買到自己最喜歡的寶可夢!

圖左:東京寶可夢中心,圖右:卡比獸(中文)、Snorlax(英文)、カビゴン(日文)

UI 規劃二個區塊

  1. 任意輸入文字,和東京店員講:「我要買寶可夢(日文)」こんにちは、ポケモンを買いたいです!

2. 點擊Pokemon 圖案講名稱:日文名、英文名、中文名

APP 介面設計

  1. 利用 text field 輸入文字。
  2. 利用 slider 控制講話的速度(rate)。
  3. 利用 slider 控制講話的音調(pitch)。
  4. 利用 label 顯示 slider 的數值。
  5. 利用 slider 控制講話的音量。
  6. 加入喇叭 button。
  1. 利用 segment control 點選語言。
  2. 利用 view 製作背景。
  3. 利用 image view 放入圖片。
  4. 利用 button 放在圖片前。
  5. 利用 label 製作紅色說明。

Import: AVFoundation

加入AVFoundation

IBOutlet : 拉線(實心:成功)

上部分
下部分

IBAction :第一回合

Slider 設定:%.2f (音調、速度顯示至小數點:第二位)
最後一行,務必要寫進去,才可以說話

Synthesizer 播放聲音(注意必須要放在開頭!)

兩次說話(第一次按鈕聲音,第二次寶可夢聲音),為了避免「重複宣告」,因次第二次多加了A,變成sythesizerA(重要!!!)

IBAction :第二回合(if…else if…..else 語法)

日文版:

語言設定:放在最後面

其他語言寫法,仿造上面模式,可以往下查看完整程式碼。

末端,加入用戶點選空白處,即可將鍵盤收起來的功能。

如何檢查拉線?

這部分拉線的時候,九隻寶可夢都要拉到同一個function(IBAction),如果拉線到頭昏眼花,可以到右邊檢查一下。

點選按鈕,往右邊找到圓形符號,往下查看!是否都連到同一個IBAction: pokemonTalk(上方),下方是IBOutlet。如果多拉、改名都可以刪掉,或是重新來過。(重要!)

實測影片:Youtube

GitHub Gist 嵌入程式碼

  1. 進入:https://gist.github.com/(登入GitHub 帳號)或註冊。
  2. 貼入:檔名+程式碼。
  3. 按下:Create secret gist。
  4. 點選:Embed ,點選Share ,網址複製。
  5. 貼入:Medium。

完整程式碼

參考文章

Github

--

--