テキスト翻訳

Vertex AI Translation サービスを使用すると、ある言語で記述されたテキストを、他のサポートされている言語のいずれかに翻訳できます。

このページでは、Google Distributed Cloud(GDC)エアギャップで Vertex AI Translation API を使用してサンプル テキストを翻訳する方法について説明します。

始める前に

Vertex AI Translation API を使用するには、Vertex AI Translation API が有効になっているプロジェクトと適切な認証情報が必要です。また、API の呼び出しを支援するクライアント ライブラリをインストールすることもできます。詳細については、翻訳プロジェクトを設定するをご覧ください。

テキスト翻訳

translateText メソッドは、特定の言語の入力テキストを受け取り、別の言語に翻訳されたテキストを返します。入力としてプレーン テキストまたは HTML テキストを入力できます。

HTML テキストを入力すると、translateText メソッドはタグを翻訳せずに、HTML タグ間のテキストのみを翻訳します。ただし、alt 属性など、HTML5 タグの属性は翻訳されます。HTML5 タグと属性の使用例は、テキストを翻訳から除外する構文で使用されています。出力では、未翻訳の HTML タグが保持され、その間に翻訳されたテキストが挿入されます。

Vertex AI Translation の事前トレーニング済み API に curl リクエストを行います。それ以外の場合は、Python スクリプトから Vertex AI Translation 事前トレーニング済み API を操作して、テキストをある言語から別の言語に翻訳します。

次の例は、入力テキストをある言語から別の言語に翻訳する方法を示しています。

curl

curl リクエストを行う手順は次のとおりです。

  1. 認証トークンを取得します

  2. 次のリクエストを行います。

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

次のように置き換えます。

mime_type フィールドを使用して、ファイルの種類を指定します。mime_type フィールドを次のいずれかの値に設定します。

  • text/plain: 入力がプレーン テキストの場合。
  • text/html: 入力が HTML テキストである。

mime_type フィールドが空の場合、デフォルト値は text/html です。

次の例では、mime_type フィールドを使用しています。

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"mime_type": "text/html", "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

出力では、翻訳されたテキストが返されます。

Python

Python スクリプトから Vertex AI Translation サービスを使用する手順は次のとおりです。

  1. 最新バージョンの Vertex AI Translation クライアント ライブラリをインストールします

  2. Python スクリプトに必要な環境変数を設定します

  3. API リクエストを認証します

  4. 作成した Python スクリプトに次のコードを追加します。

    from google.cloud import translate
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience = "https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def translate_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return translate.TranslationServiceClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def translate_func(creds):
      tc = translate_client(creds)
      req = {
        "parent": "projects/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "mime_type": "text/plain",
        "contents": ["INPUT_TEXT"]
      }
    
      resp = tc.translate_text(req)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      translate_func(creds)
    

    次のように置き換えます。

    mime_type フィールドを使用して、ファイルの種類を指定します。mime_type フィールドを次のいずれかの値に設定します。

    • text/plain: 入力がプレーン テキストの場合。
    • text/html: 入力が HTML テキストである。

    mime_type フィールドが空の場合、デフォルト値は text/html です。

  5. Python スクリプトを保存します。

  6. Python スクリプトを実行してテキストを翻訳します。

    python SCRIPT_NAME
    

    SCRIPT_NAME は、Python スクリプトに付けた名前(translation.py など)に置き換えます。

translateText メソッドの詳細については、Python クライアント ライブラリをご覧ください。

翻訳からテキストを除外する

リクエストの contents フィールドで次のいずれかの HTML タグを使用して、テキストの一部を翻訳から除外します。

  • <span translate="no">"TEXT"</span>
  • <span class="notranslate">"TEXT"</span>

TEXT は、翻訳から除外するテキストの部分に置き換えます。

たとえば、次のようなスペイン語の入力テキストがあるとします。

Hola, esto es una prueba.

このテキストは英語に翻訳され、次の文になります。

Hello, this is a test.

入力テキストから Hola, を除外して、テキストの次の部分のみを変換するとします。

esto es una prueba.

この部分のテキストは、英語では次のように翻訳されます。

this is a test.

HTML タグを使用して、翻訳からテキストを除外します。たとえば、次の curl リクエストでは、テキストを英語に翻訳するときに、<span class="notranslate">"TEXT"</span> タグを使用して、スペイン語の前の入力テキストから Hola, を除外します。

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "es", "target_language_code": "en", "contents": [<span class="notranslate">"Hola,"</span>"esto es una prueba."]}'

言語を検出する

detectLanguage メソッドは、HTTP リクエストを送信してテキスト文字列の言語を返します。

たとえば、次のリクエストは、入力テキスト Hello, this is a test から言語として英語を検出します。

curl

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:detectLanguage -d '{"parent": "projects/PROJECT_ID", "contents": ["Hello, this is a test"]}'

オペレーションを取得する

getOperation メソッドは、長時間実行オペレーションの最新の状態を返します。このメソッドを使用して、Vertex AI Translation API サービスによって生成されたオペレーション結果を取得します。このメソッドを使用するには、プロジェクト ID と Vertex AI Translation エンドポイントを指定します。

たとえば、次のリクエストは、プロジェクトで実行されている長時間実行オペレーション(用語集の作成など)の状態を返します。

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_ID

処理の一覧を表示します

listOperations メソッドは、リクエストで指定されたフィルタに一致する長時間実行オペレーションのリストを返します。このメソッドを使用するには、プロジェクト ID と Vertex AI Translation エンドポイントを指定します。

たとえば、次のリクエストは、プロジェクトで実行されているオペレーションのリストを返し、ページサイズを 1 ページあたり 10 件の結果に制限します。

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10

サポートされている言語を取得する

getSupportedLanguages メソッドは、Vertex AI Translation API でサポートされている言語のリストを返します。

たとえば、次のリクエストは、Vertex AI Translation エンドポイントを指定して、サポートされている言語を返します。

curl

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:getSupportedLanguages -d "{}"

サポートされている言語の完全なリストについては、Vertex AI Translation でサポートされている言語をご覧ください。