GCP 機器學習(1) – Cloud Speech API 應用實例
而這次要介紹的是第二項, Cloud Speech API(連結)。準備好了嗎,開始囉!
快速測試
由於沒一村待的實驗室,時常需要 train 各種 model 來解決各種研究上會遇到的問題,因此我深知,要 train 一個可以用的語音辨識模型,對於沒有大量和有品質的資料的小公司或小團隊而言,是一件相當麻煩的事。更何況如果軟體服務是要面對多國語言,並處理各種糟雜的情況,那就更麻煩了。
Google 提供的 Cloud Speech API,旨在解決這個問題。 在 Cloud Speech API 的介紹頁面上,也提供了按鈕可以快速讓大家體驗這個 API的強大,圖片如下,選好語言,然後按下藍色按鈕就可以了!
雖然 Cloud Speech API 目前的強度能轉換 80 種語言,但可惜的是,沒一村只會說中文和英文,不能幫各位測試更多的可能性 XD,就請會說各種語言的各位自行測試囉!
測試真正的語音檔
測試完我的實際語音後,我們來測試真正的語音檔,看看他到底會回傳我們什麼東西 XD。Google API 的一大好處就是 document 寫得很清楚,關於 Cloud Speech API,則可以參考這一篇。在開始之前,首先我們需要先在 Google console 上建立一個專案,按下 SET UP A PROJECT 的藍色按鈕,然後輸入 project 的名稱。所有在 Google Cloud Platform 上運行的 project,都會放在這個網址。
輸入 project 名稱後,會自動下載一個 private key。我們之後會使用到這個 private key 來存取 Cloud Speech API,如下:
接著,要把 google cloud sdk 裝在本機上, Linux / OSX 的用戶,可以在 terminal 使用以下指令來做安裝。Windows 10 的用戶,也可以在 Ubuntu bash shell 輸入以下指令。(教學連結)
curl https://sdk.cloud.google.com | bash
以上事情都搞定後,我們要來產生 REST API Header 的 access token。有這個 access token 就可以存取 API。輸入以下指令,而 XXX則是剛拿下來的 private key。
gcloud auth activate-service-account --key-file=XXX.json
接著,我們還需要讓我們的 google 帳戶能夠擁有 Google Cloud Platform 的完整存取權。輸入以下指令:
gcloud auth application-default login
最後輸入以下這行指令拿到 access token
gcloud auth application-default print-access-token
接著,要來產生 REST API 的 request body。產生一個 json 檔如下。裡頭的 brooklyn.flac 是 Google 提供的範例。
{
"config": {
"encoding":"FLAC",
"sampleRateHertz": 16000,
"languageCode": "en-US",
"enableWordTimeOffsets": false
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
最後在 command line 上輸入以下指令就可以了,ACCESS_TOKEN 要換成剛剛拿到的 access token。
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
https://speech.googleapis.com/v1/speech:recognize \
-d @sync-request.json
那麼拿回來的 result 應該會是長這個樣子:
現在聯繫 iKala Cloud,瞭解更多 GCP 加值服務!
換個自己的語音檔
接著我們嘗試使用自己的一個語音檔。進入 Google console,並在上方選擇我們剛剛建立的專案。然後點選選單,下拉點選 Storage 的「瀏覽器」選項。
接著,建立一個 bucket ,這個 bucket 要放我們的音樂檔。如果是 MP3 的音樂,那請用 ffmpeg 轉成 FLAC 檔,輸入以下指令,然後上傳這個檔案,並選擇公開連結。
ffmpeg -i test.mp3 -ac 1 -ar 16000 test2.flac
點進去公開連結後,拿到網址,更改 sync-request.json 的 languageCode 到 zh-TW,然後 audio 也要更改。例如網址為 https://storage.googleapis.com/A/B.flac ,就要改成 gs://A/B.flac 。如下:
接著輸入以下指令。如果 FLAC 檔長度超過1分鐘,記得要更改紅色字的部分。
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
https://speech.googleapis.com/v1/speech:longrunningrecognize \
-d @sync-request.json
回傳應該會如下
{
"name": "1294243978595186795"
}
然後再 curl 一次
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
https://speech.googleapis.com/v1/operations/1294243978595186795
就可以拿回資料,如下:
大功告成!不過可能是因為歌手一直唱的關係,斷詞沒有斷的很好 XD
計價方式
前 60 分鐘是免費的,而 61 分鐘以上每15秒鐘 0.006 美元,換算起來,300 美元大概可以玩個 200 個小時左右。
結語
以上就是這次的教學啦。首先,我先提到如何快速體驗 Cloud Speech API 的威力。接著我們使用 command line 了解如何使用 Clooud Speech API。最後,我們結合 Google 自己提供的 Cloud Storage API,辨識一首歌的歌詞。Google Cloud API 是個非常好用的服務,可以在 APP,網站做任何形式的搭配來增進服務品質。
這一系列的文章將帶您跨過 GCP 機器學習領域的實作門檻,下一篇會為您介紹:Cloud Natural Language API。
ML相關文章:
Machine Learning(二):Natural Language API 介紹與實作
Machine Learning(三):Translate API 介紹與實作
Machine Learning(四):Cloud Vision API 介紹與實作
Machine Learning(五):Cloud Video Intelligence API 介紹與實作
Machine Learning 是什麼? 該怎麼應用? 一份來自資深 Googler 的 ML 介紹課程
(本文來自合作部落客 沒一村:沒一村生活點滴,GCP 專門家授權轉載。)