[Day 21] Google Cloud Speech-to-Text - 1

今天來講第六個服務,寫到第21天終於第六個了。這個服務跟前幾天的Text-to-Speech剛好相反,是把聲音轉成文字。這服務號稱可以辨識120種語言跟其變化,更開心的是它可以辨識中文,還有廣東話、日文之類的語言也都可以。

當然每個系列的第一天都是玩一下他提供的demo,不過這很像是最後一個有提供demo的服務,接下來還得要調整步調。
大家可以先透過錄音程式錄一段話,然後再將檔案上傳:
voice recorder

Read More  

[Day 18] Google Cloud Text-to-Speech - 1

今天來介紹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說的話之間的差別

Read More  

[Day 17] Google Translation - 子系列最終章

今天要講AutoML translation的部分,這部分在官網上一直沒找到對應的範例,很有可能範例要自己生。我只好自己在網路上找些翻譯的dataset,幸好在這邊有找到很多很多的資料集,只需要做一些資料處理的動作,現在就來先處理一下。

我下載的資料集:News Commentary,並取出中文跟英文的部分。

Read More  

[Day 16] Google Translation - 3

還記得昨天在串API的時候,有特別提到Google Translate API在Go client library沒有v3beta1的版本。秉持著練習golang的精神,看到v3beta1有RESTful API,就花了點時間來串一下。

Google translate API v3

我這邊參考的是Using the command line的內容,使用CURL的方式呼叫,並把他改寫成Go req (http client)這類型的RESTful API call。仔細想想,要解決的問題有兩個:1. Get Access token、2. 呼叫restful api。

Read More  

[Day 15] Google Translation - 2

昨天玩完了Demo,按照步調今天就用Code來實踐吧。在下筆的時候Client Library有v2v3beta1兩個版本,但Golang只有v2的Example,需要的話就只能用Golang執行CURL POST去呼叫v3beta1版API,所以我這邊就先使用v2來試試看。

Translate Text

架構一樣是在modules底下建立一個translation.go的module
還有要記得抓credential json下來,可以參考這系列第三天的文章

Read More  

[Day 14] Google Translation - 1

OK,今天要講一個大家常用,卻不一定知道他是Google AI & ML products之一的服務,Google Translation API

他有什麼東西?他跟前面介紹的服務一樣,也分成兩個服務AutoML TranslationTranslation API

  • AutoML Translation:透過UI介面讓一些比較沒這麼深入了解AI & ML的人可以快速操作,僅僅只要上傳固定格式的檔案,就可以訓練出你自己的model。
  • Translation API:透過API呼叫,可以讓你的服務馬上翻譯成多國語言,就有點像是在網頁上面串上Google翻譯那樣,點個兩下就做完多國語系(姑且不論正確性的問題,哈哈哈。)

Read More  

[Day 12] Google Natural Language - 3

今天來Google Natural Language第三篇,我本來想按照Natural Language裡分析情緒這個部分實作,可是看完以後發現它code有點短,只有下面這樣:

1
2
3
4
5
6
7
8
9
10
func analyzeSentimentFromGCS(ctx context.Context, gcsURI string) (*languagepb.AnalyzeSentimentResponse, error) {
return client.AnalyzeSentiment(ctx, &languagepb.AnalyzeSentimentRequest{
Document: &languagepb.Document{
Source: &languagepb.Document_GcsContentUri{
GcsContentUri: gcsURI,
},
Type: languagepb.Document_PLAIN_TEXT,
},
})
}

Read More