---
# System prepended metadata

title: Google Translate API
tags: [note, ' google']

---

---
tags: note, google
---

# Google Translate API

[官方簡介](https://cloud.google.com/translate?hl=zh-tw)



## 功能與計價方式

這應該是評估要不要使用的兩大考量點。
[官方比較表](https://cloud.google.com/translate?hl=zh-tw#section-6)

### TL;DR
看影片最快
[What is the Translation API?](https://www.youtube.com/watch?v=A3knNbGfXh4)
[What is AutoML Translation?](https://www.youtube.com/watch?v=yzZiRrKcwD8)
[How to automatically transcribe your video or audio into text](https://www.youtube.com/watch?v=RyVWUMAMIDk)

### 文字說明
1. Translation API Basic
使用google自己的model翻譯，每月`前50萬個`字元免費。
所以如果只是要[Google translate](https://translate.google.com.tw/)一樣的翻譯品質，而且量不大的話，那用這個方案會是很足夠的。
2. Translation API Advanced
主要有幾個需求是basic版本做不到的:
    - 有特殊的名詞需要特別進行翻譯 -> Glossary
    - 使用自己訓練的model翻譯 -> AutoML Translation
    - 文件翻譯
    - 批次翻譯

    以翻譯字元量及批次翻譯量計價。
    其中glossary和文件翻譯會用到google cloud storage，有可能會需要額外收費(看用量)。

3. AutoML Translation
訓練自己的model，必須配合上面第二項使用。
以訓練時間和翻譯字元量計價，提供的訓練資料越龐大，訓練時間就越久、費用越高囉。
5. Media Translation API
串流翻譯，比以前的翻譯方式更簡單、快速、高品質。
已用量(分鐘)計價



## Translation API Basic

### API Key

> Project > API和服務 > 憑證 > API金鑰

金鑰可以另外設定使用限制：
- 呼叫的來源
- 可呼叫的API(不限制的話可以呼叫所有google cloud 服務)

```javascript=
// 翻譯文字範例
$.post({
    url: 'https://translation.googleapis.com/language/translate/v2',
    data: {
        "q": val,
        "target": target, // 目標語言
        "key": key
    },
    success: function (res) {
        let translations = res.data.translations;
        // 回傳是一個list
        for (t of translations) {
            let translated = t.translatedText;
            console.log(translated)
        }
    }
});

```

### Client Libraries  

#### 1. 權限設定 service account & private key
#### 2. private key放在執行環境理
```console
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"
```
KEY_PATH會是JSON檔案路徑。
#### 3. 安裝client libraries
```console
# Basic
pip install google-cloud-translate==2.0.1
```

```console
# Advanced
pip install --upgrade google-cloud-translate
```

#### 4. 範例
```python=
# Django function 翻譯文字範例

import six
from google.cloud import translate_v2 as translate

def get_translate(request):
    post_param = request.POST
    text = post_param.get('text', None) # 欲翻譯文字
    target = post_param.get('target', None) # 目標語言
    if text:
        translate_client = translate.Client()

        if isinstance(text, six.binary_type):
            text - text.decode('utf-8')

        result = translate_client.translate(text, target_language=target)

        print("Text: {}".format(result['input']))
        print("Translation: {}".format(result["translatedText"]))
        print("Detected source language: {}".format(result["detectedSourceLanguage"]))

    return HttpResponse(result['translatedText'])
```

## Translation API Advanced

### Glossary

#### 1. Google Cloud Bucket


### File Translation

#### 1. Google Cloud Bucket


### Batch Translation

#### 1. Google Cloud Bucket


## AutoML Translation