今天是這子系列的最後一篇,因為Text-to-Speech沒有AutoML UI介面可以操作,無奈只好讓這邊結束這回合。
按照進度,這篇必須更深入介紹Text-to-Speech API,來看看今天的兩個主題吧。
列出Voice清單
下面這段code可以列出支援的語言,並提供不同種的發聲方式。
今天是這子系列的最後一篇,因為Text-to-Speech沒有AutoML UI介面可以操作,無奈只好讓這邊結束這回合。
按照進度,這篇必須更深入介紹Text-to-Speech API,來看看今天的兩個主題吧。
下面這段code可以列出支援的語言,並提供不同種的發聲方式。
昨天玩完Cloud Text-to-Speech demo以後,大概知道他可以把文字轉成語音念給你聽。今天就來入門Cloud Text-to-Speech API吧。
前情提要:記得先Enable API,放置環境變數的教學可以看這系列第三天的文章
語言一樣使用Golang,然後跑在docker裡,之後也會放上github
今天來介紹Google另一個AI服務:文字轉語音(Text-To-Search)。把一段文字丟入以後,他可以唸出來給你。這套服務目前還沒有AutoML的UI介面可以操作,我們就只能看看API跟demo的操作。
在Text-To-Search裡,Google有使用到WaveNet模型,這套模型用了大量的語音去訓練AI,讓AI能知道哪些字接著哪些字應該怎麼發音,讓聲音更像人說出來的一樣。
更詳細的WaveNet可以看Google這邊的介紹:https://cloud.google.com/text-to-speech/docs/wavenet
還可以聽一下不是WaveNet說的話,跟WaveNet說的話之間的差別
今天要講AutoML translation的部分,這部分在官網上一直沒找到對應的範例,很有可能範例要自己生。我只好自己在網路上找些翻譯的dataset,幸好在這邊有找到很多很多的資料集,只需要做一些資料處理的動作,現在就來先處理一下。
我下載的資料集:News Commentary,並取出中文跟英文的部分。
還記得昨天在串API的時候,有特別提到Google Translate API在Go client library沒有v3beta1
的版本。秉持著練習golang的精神,看到v3beta1
有RESTful API,就花了點時間來串一下。
我這邊參考的是Using the command line
的內容,使用CURL的方式呼叫,並把他改寫成Go req (http client)這類型的RESTful API call。仔細想想,要解決的問題有兩個:1. Get Access token、2. 呼叫restful api。
昨天玩完了Demo,按照步調今天就用Code來實踐吧。在下筆的時候Client Library有v2
、v3beta1
兩個版本,但Golang只有v2
的Example,需要的話就只能用Golang執行CURL POST
去呼叫v3beta1
版API,所以我這邊就先使用v2來試試看。
架構一樣是在modules底下建立一個
translation.go
的module
還有要記得抓credential json下來,可以參考這系列第三天的文章
OK,今天要講一個大家常用,卻不一定知道他是Google AI & ML products之一的服務,Google Translation API。
他有什麼東西?他跟前面介紹的服務一樣,也分成兩個服務AutoML Translation
與Translation API
:
我們今天玩的是AutoML Natural Language,可以透過GCP左邊的sidebar,找到Natural Language打開,或直接點這個連結
AutoML Natural Language的收費方式記得先看這裡:https://cloud.google.com/natural-language/automl/pricing?_ga=2.125750730.-1764044900.1562297905
今天來Google Natural Language第三篇,我本來想按照Natural Language裡分析情緒這個部分實作,可是看完以後發現它code有點短,只有下面這樣:
1 | func analyzeSentimentFromGCS(ctx context.Context, gcsURI string) (*languagepb.AnalyzeSentimentResponse, error) { |
今天開始使用Natural3Language API,一樣要先Enable API跟下載credential json。
忘記的人可以看這系列第三天的文章回想一下。
在這之前我先重構一下原先的main.go,讓我加上參數去呼叫不同天的Demo api:
1 | // Usage: `docker run -it golang ./app [DayXX]` |