ドキュメント翻訳を使ってみる

ドキュメント翻訳は、サポートされている言語とさまざまなファイル形式でドキュメント全体を非同期的に翻訳する Azure AI Translator サービスのクラウドベースの機能です。 このクイックスタートでは、ドキュメント翻訳と任意のプログラミング言語を使用して、構造とテキストの書式設定を維持しながら、ソース ドキュメントをターゲット言語に翻訳する方法について説明します。

前提条件

重要

  • 現在、Java および JavaScript ドキュメント翻訳 SDK はパブリック プレビューで利用できます。 機能、アプローチ、およびプロセスは、一般提供 (GA) リリースの前に、ユーザーからのフィードバックに基づいて変更される可能性があります。

  • C# と Python SDK は、運用アプリケーションで使用できる一般提供 (GA) リリースです

  • ドキュメント翻訳は現在、Translator (単一サービス) リソースでのみサポートされており、Azure AI サービス (マルチサービス) リソースには含まれていません

  • ドキュメント翻訳は、S1 Standard サービス プラン (従量課金制) または D3 ボリューム割引プランのみでサポートされています。 「Azure AI サービスの価格 - Translator」をご覧ください。

開始するには、以下が必要です。

  • アクティブな Azure アカウント。 アカウントがない場合は、無料アカウントを作成できます。

  • Azure Blob Storage アカウント。 Azure Blob Storage アカウント内に、ソースとターゲットの各ファイル用のコンテナーを作成する必要があります。

    • ソースのコンテナー。 このコンテナーは、翻訳対象のファイルをアップロードする場所です (必須)。
    • ターゲットのコンテナー。 このコンテナーは、翻訳されたファイルを格納する場所です (必須)。
  • 単一サービス Translator リソース (マルチサービス Azure AI サービス リソースとは異なる):

    次のように、Translator プロジェクトとインスタンスの詳細フィールドを入力します。

    1. [サブスクリプション]。 使用できる Azure サブスクリプションのいずれかを選択します。

    2. [リソース グループ]。 新しいリソース グループを作成するか、同じライフサイクル、アクセス許可、ポリシーを共有する既存のリソース グループにリソースを追加することができます。

    3. [リソース リージョン] . ご自身のビジネスまたはアプリケーションが特定のリージョンを必要としない限り、 [グローバル] を選択します。 認証にシステム割り当てマネージド ID を使用する場合は、米国西部などの地理的リージョンを選択します。

    4. 名前。 リソースに選んだ名前を入力します。 選択した名前は Azure 内で一意である必要があります。

      Note

      ドキュメント翻訳には、カスタム ドメイン エンドポイントが必要です。 名前フィールドに入力する値は、エンドポイントのカスタム ドメイン名となります。

    5. 価格レベル。 ドキュメント翻訳は、Free レベルではサポートされません。 このサービスを試すには、Standard S1 を選択してください

    6. [確認および作成] を選択します。

    7. サービス条件を確認し、 [作成] を選択してリソースをデプロイします。

    8. リソースが正常にデプロイされたら、[リソースに移動] を選びます。

キーとドキュメント翻訳エンドポイントを取得する

* Translator サービスへの要求では、アクセスを認証するために読み取り専用キーとカスタム エンドポイントが必要です。 カスタム ドメイン エンドポイントは、リソース名、ホスト名、Translator サブディレクトリを指定した形式の URL であり、Azure portal で使用できます。

  1. 新しいリソースを作成した場合は、そのデプロイ後に [リソースに移動] を選びます。 既存のドキュメント翻訳リソースがある場合は、リソース ページに直接移動します。

  2. 左側のレールの [リソース管理] で、 [キーとエンドポイント] を選択します。

  3. ドキュメント翻訳サービスで要求を認証するため、keydocument translation endpoint をコピーし、コード サンプルに貼り付けることができます。 API 呼び出しを行うために必要なキーは 1 つだけです。

    Screenshot showing the get your key field in Azure portal.

Azure Blob Storage コンテナーを作成する

Azure Blob Storage アカウント内に、ソースおよびターゲットの各ファイル用のコンテナーを作成する必要があります。

  • ソースのコンテナー。 このコンテナーは、翻訳対象のファイルをアップロードする場所です (必須)。
  • ターゲットのコンテナー。 このコンテナーは、翻訳されたファイルを格納する場所です (必須)。

必要な認証

sourceUrltargetUrl、省略可能な glossaryUrl には Shared Access Signature (SAS) トークンを含める必要があり、クエリ文字列として追加します。 トークンは、コンテナーまたは特定の BLOB に割り当てることができます。 「ドキュメント翻訳プロセスの SAS トークンを作成する」を "参照してください"。

  • ソースのコンテナーまたは BLOB には、読み取り一覧表示のアクセス権が指定されている必要があります。
  • ターゲットのコンテナーまたは BLOB には、書き込み一覧表示のアクセス権が指定されている必要があります。
  • 用語集の BLOB には、読み取り一覧表示のアクセス権が指定されている必要があります。

ヒント

  • 操作で複数のファイル (BLOB) を翻訳する場合は、コンテナー レベルで SAS アクセス権を委任します。
  • 操作で 1 つ のファイル (BLOB) を翻訳する場合は、BLOB レベルで SAS アクセス権を委任します。
  • SAS トークンの代わりに、システム割り当てマネージド ID を認証に使用することができます。

サンプル ドキュメント

このプロジェクトでは、ソース コンテナーにアップロードされたソース ドキュメントが必要です。 このクイックスタートでは、ドキュメント翻訳のサンプル ドキュメントをダウンロードできます。 ソース言語は英語です。

C#/.NET 環境を設定する

このクイックスタートでは、最新バージョンの Visual Studio IDE を使用して、アプリケーションをビルドして実行します。

  1. Visual Studio を起動します。

  2. [概要] ページで、[新しいプロジェクトの作成] を選択します。

    Screenshot of Visual Studio 2022 get started window.

  3. [新しいプロジェクトの作成] ページで、検索ボックスに「コンソール」と入力します。 [コンソール アプリケーション] テンプレートを選択し、 [次へ] を選択します。

    Screenshot of Visual Studio 2022 create new project page.

  4. [新しいプロジェクトの構成] ダイアログ ウィンドウの [プロジェクト名] ボックスに「document-translation-qs」と入力します。 [次へ] を選びます。

    Screenshot of Visual Studio 2022 configure new project set-up window.

  5. [追加情報] ダイアログ ウィンドウで、[.NET 6.0 (長期的なサポート)] を選択し、[作成] を選択します。

    Screenshot of Visual Studio 2022 additional information set-up window.

Newtonsoft.Json のインストール

  1. document-translation-qs プロジェクトを右クリックし、[NuGet パッケージの管理...] を選択します。

    Screenshot of select NuGet package window in Visual Studio.

  2. [参照] タブを選択し、「NewtonsoftJson」と入力します。

    Screenshot of select prerelease NuGet package in Visual Studio.

  3. ドロップダウン メニューから最新の安定バージョンを選択し、プロジェクトにパッケージをインストールします。

    Screenshot of install selected NuGet package window.

ストレージ コンテナー内のすべてのドキュメントを翻訳する

注意

  • .NET 6 以降では、console テンプレートを使用する新しいプロジェクトによって、以前のバージョンとは異なる新しいプログラム スタイルが生成されます。
  • この新しい出力では、記述する必要があるコードを簡素化できる最新の C# 機能が使用されています。
  • 新しいバージョンで使用する場合、記述する必要があるのは、`Main` メソッドの本体のみです。 最上位レベルのステートメント、グローバル using ディレクティブ、または暗黙的な using ディレクティブを含める必要はありません。
  • 詳細については、「新しい C# テンプレートで、最上位レベルのステートメントが生成される」を参照してください。
  1. Program.cs ファイルを開きます。

  2. Console.WriteLine("Hello World!") を含む既存のコードを削除します。

  3. ドキュメント翻訳のコード サンプルをコピーして、Program.cs ファイルに貼り付けます。

    • {your-document-translation-endpoint}{your-key} を、Azure portal Translator インスタンスの値で更新します。

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で更新します。

コード サンプル

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」を ご覧ください。

using System.Text;

class Program
{
    private static readonly string endpoint = "{your-document-translator-endpoint}/translator/text/batch/v1.1";

    private static readonly string key = "{your-key}";

    static readonly string route = "/batches";
    static readonly string sourceURL = "\" {your-source-container-SAS-URL}\"";
    static readonly string targetURL = " \"{your-target-container-SAS-URL}\"";


    static readonly string json = ("{\"inputs\": [{\"source\": {\"sourceUrl\":"+sourceURL+" ,\"storageSource\": \"AzureBlob\",\"language\": \"en\"}, \"targets\": [{\"targetUrl\":"+targetURL+",\"storageSource\": \"AzureBlob\",\"category\": \"general\",\"language\": \"es\"}]}]}");

    static async Task Main(string[] args)
    {
        using HttpClient client = new HttpClient();
        using HttpRequestMessage request = new HttpRequestMessage();
        {

            StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            request.Content = content;

            HttpResponseMessage response = await client.SendAsync(request);
            string result = response.Content.ReadAsStringAsync().Result;
            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine($"Status code: {response.StatusCode}");
                Console.WriteLine();
                Console.WriteLine($"Response Headers:");
                Console.WriteLine(response.Headers);
            }
            else
                Console.Write("Error");

        }

    }

}

アプリケーションを実行する

アプリケーションにコード サンプルを追加したら、document-translation-qs の横にある緑色の開始ボタンを選択してプログラムをビルドして実行するか、または F5 キーを押します。

Screenshot: run your Visual Studio program.

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

Go 環境を設定する

Go アプリケーションは、テキスト エディターを使用して記述することができます。 最新バージョンの Visual Studio Code と Go 拡張機能を使用することをお勧めします。

ヒント

Go を初めて使う場合は、「Go の使用を開始する」Learn モジュールを試してください。

まだの場合は、Go をダウンロードしてインストールしてください。

  1. お使いのオペレーティング システムに対応した Go バージョンをダウンロードしてください。

  2. ダウンロードが完了したら、インストーラーを実行します。

  3. コマンド プロンプトを開き、次のように入力して Go がインストールされたことを確認します。

    go version
    

ストレージ コンテナー内のすべてのドキュメントを翻訳する

  1. コンソール ウィンドウ (cmd、PowerShell、Bash など) で、アプリ用の新しいディレクトリを document-translation-qs という名前で作成し、そこに移動します。

  2. document-translation-qs ディレクトリに document-translation.go という名前の新しい Go ファイルを作成します。

  3. ドキュメント翻訳のコード サンプルをコピーして、document-translation.go ファイルに貼り付けます。

    • {your-document-translation-endpoint}{your-key} を、Azure portal Translator インスタンスの値で更新します。

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で更新します。

コード サンプル

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」をご覧ください。

package main

import (
  "bytes"
  "encoding/json"
  "fmt"
  "net/http"
)

func main() {

    httpposturl := "{your-document-translation-endpoint}/translator/text/batch/v1.1/batches"
    fmt.Println("Response", httpposturl)

    var jsonData = []byte(`{
        "inputs": [
            {
                "source": {
                    "sourceUrl": "{your-source-container-SAS-URL}"
                },
                "targets": [
                    {
                        "{your-target-container-SAS-URL}",
                        "language": "fr"
                    }
                ]
            }
        ]
    }`)

    request, error := http.NewRequest("POST", httpposturl, bytes.NewBuffer(jsonData))
    request.Header.Set("Content-Type", "application/json")
    request.Header.Set("Ocp-Apim-Subscription-Key", "{your-key}")

    client := &http.Client{}
    response, error := client.Do(request)
    if error != nil {
        panic(error)
    }
    defer response.Body.Close()

    fmt.Println("response Status:", response.Status)
    var printHeader = (response.Header)
    prettyJSON, _ := json.MarshalIndent(printHeader, "", "  ")
    fmt.Printf("%s\n", prettyJSON)
}

Go アプリケーションを実行する

アプリケーションにコード サンプルを追加したら、Go プログラムをコマンドまたはターミナル プロンプトで実行できます。 プロンプトのパスが document-translation-qs フォルダーに設定されていることを確認し、次のコマンドを使用します。

go run document-translation.go

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

Java 環境を設定する

このクイックスタートでは、Gradle ビルド自動化ツールを使用して、アプリケーションを作成して実行します。

  • Visual Studio Code または任意の IDE の最新バージョンが必要です。 Java in Visual Studio Code をご覧ください。

    ヒント

    • Visual Studio Code には、Windows および macOS 用の Java 用コーディング パック が用意されています。コーディング パックは、VS Code、Java Development Kit (JDK)、および Microsoft が推奨する拡張機能のコレクションのバンドルです。 コーディング パックを使用して、既存の開発環境を修正できます。
    • VS Code と Java 用のコーディング パックを使用している場合は、Java 用 Gradle 拡張機能をインストールします。
  • Visual Studio Code を使用していない場合、開発環境に次のものがインストールされていることを確認してください。

新しい Gradle プロジェクトを作成する

  1. コンソール ウィンドウ (cmd、PowerShell、Bash など) で、アプリ用の新しいディレクトリを document-translation という名前で作成し、そこに移動します。

    mkdir document-translation && document-translation
    
    mkdir document-translation; cd document-translation
    
  2. document-translation ディレクトリから gradle init コマンドを実行します。 このコマンドによって、Gradle 用の重要なビルド ファイルが作成されます。たとえば、実行時にアプリケーションを作成して構成するために使用される build.gradle.kts などです。

    gradle init --type basic
    
  3. DSL を選択するよう求められたら、Kotlin を選択します。

  4. Return または Enter キーを選択して、既定のプロジェクト名 (document-translation) を受け入れます。

    注意

    アプリケーション全体が作成されるまで数分かかる場合がありますが、build-gradle.kts を含むいくつかのフォルダーとファイルがすぐに表示されます。

  5. 次のコードを使用して build.gradle.kts を更新します。

plugins {
  java
  application
}
application {
  mainClass.set("DocumentTranslation")
}
repositories {
  mavenCentral()
}
dependencies {
  implementation("com.squareup.okhttp3:okhttp:4.10.0")
  implementation("com.google.code.gson:gson:2.9.0")
}

ストレージ コンテナー内のすべてのドキュメントを翻訳する

  1. document-translation ディレクトリから、次のコマンドを実行します。

    mkdir -p src/main/java
    

    このコマンドにより、次のディレクトリ構造が作成されます。

    Screenshot: Java directory structure.

  2. java ディレクトリに移動して、DocumentTranslation.java という名前のファイルを作成します。

    ヒント

    • PowerShell を使用して新しいファイルを作成できます。

    • Shift キーを押しながらフォルダーを右クリックして、プロジェクト ディレクトリで PowerShell ウィンドウを開きます。

    • New-Item DocumentTranslation.java コマンドを入力します。

    • IDE で、DocumentTranslation.java という名前の新しいファイルを作成し、それを java ディレクトリに保存することもできます。

  3. ドキュメント翻訳のコード サンプルをコピーして、DocumentTranslation.java ファイルに貼り付けます。

    • {your-document-translation-endpoint}{your-key} を、Azure portal Translator インスタンスの値で更新します。

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で更新します。

コード サンプル

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」を ご覧ください。

import java.io.*;
import java.net.*;
import java.util.*;
import okhttp3.*;

public class DocumentTranslation {
    String key = "{your-key}";

    String endpoint = "{your-document-translation-endpoint}/translator/text/batch/v1.1";

    String path = endpoint + "/batches";

    String sourceSASUrl = "{your-source-container-SAS-URL}";

    String targetSASUrl = "{your-target-container-SAS-URL}";

    String jsonInputString = (String.format("{\"inputs\":[{\"source\":{\"sourceUrl\":\"%s\"},\"targets\":[{\"targetUrl\":\"%s\",\"language\":\"fr\"}]}]}", sourceSASUrl, targetSASUrl));

    OkHttpClient client = new OkHttpClient();

    public void post() throws IOException {
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType,  jsonInputString);
        Request request = new Request.Builder()
                .url(path).post(body)
                .addHeader("Ocp-Apim-Subscription-Key", key)
                .addHeader("Content-type", "application/json")
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.code());
        System.out.println(response.headers());
    }

  public static void main(String[] args) {
        try {
            DocumentTranslation sampleRequest = new DocumentTranslation();
            sampleRequest.post();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

Java アプリケーションをビルドして実行する

  • アプリケーションにコード サンプルを追加したら、メイン プロジェクト ディレクトリ (document-translation) に戻り、コンソール ウィンドウを開き、次のコマンドを入力します。

    1. build コマンドを使用してアプリケーションをビルドします。

      gradle build
      
    2. run コマンドを使用してアプリケーションを実行します。

      gradle run
      

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

Node.js 環境を設定する

このクイックスタートでは、Node.js JavaScript ランタイム環境を使用して、アプリケーションを作成して実行します。

  1. 最新バージョンの Node.js をまだインストールしていない場合はインストールします。 Node.js のインストールには、ノード パッケージ マネージャー (npm) が含まれます。

    ヒント

    Node.js を初めて使う場合は、「Node.js の概要」Learn モジュールを試してください。

  2. コンソール ウィンドウ (cmd、PowerShell、Bash など) で、アプリ用の新しいディレクトリを document-translation という名前で作成し、そこに移動します。

    mkdir document-translation && cd document-translation
    
    mkdir document-translation; cd document-translation
    
  3. npm init コマンドを実行して、アプリケーションを初期化し、プロジェクトをスキャフォールディングします。

    npm init
    
  4. ターミナルに表示されるプロンプトを受け入れて、プロジェクトの属性を指定します。

    • 最も重要な属性は、名前、バージョン番号、およびエントリ ポイントです。
    • エントリ ポイント名は index.js を保持することをお勧めします。 説明、テスト コマンド、GitHub リポジトリ、キーワード、作成者、ライセンス情報はオプションの属性であり、このプロジェクトでは省略可能です。
    • [戻る] または Enter キーを押して、かっこで囲んだ候補を受け入れます。
    • 画面の指示に従って入力すると、document-translation ディレクトリに package.json ファイルが作成されます。
  5. npm を使用して、ドキュメント翻訳アプリ ディレクトリに axios HTTP ライブラリと uuid パッケージをインストールします。

    npm install axios uuid
    

ストレージ コンテナー内のすべてのドキュメントを翻訳する

  1. アプリ ディレクトリの index.js ファイルを作成します。

    ヒント

    • PowerShell を使用して新しいファイルを作成できます。

    • Shift キーを押しながらフォルダーを右クリックして、プロジェクト ディレクトリで PowerShell ウィンドウを開きます。

    • 次のコマンド New-Item index.js を入力します。

    • IDE で、index.js という名前の新しいファイルを作成し、それを document-translation ディレクトリに保存することもできます。

  2. ドキュメント翻訳のコード サンプルをコピーして、index.js ファイルに貼り付けます。

    • {your-document-translation-endpoint}{your-key} を、Azure portal Translator インスタンスの値で更新します。

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で更新します。

コード サンプル

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」をご覧ください。

const axios = require('axios').default;

let endpoint = '{your-document-translation-endpoint}/translator/text/batch/v1.1';
let route = '/batches';
let key = '{your-key}';
let sourceSASUrl = "{your-source-container-SAS-URL}";
let targetSASUrl = "{your-target-container-SAS-URL}"

let data = JSON.stringify({"inputs": [
  {
      "source": {
          "sourceUrl": sourceSASUrl,
          "storageSource": "AzureBlob",
          "language": "en"
      },
      "targets": [
          {
              "targetUrl": targetSASUrl,
              "storageSource": "AzureBlob",
              "category": "general",
              "language": "es"}]}]});

let config = {
  method: 'post',
  baseURL: endpoint,
  url: route,
  headers: {
    'Ocp-Apim-Subscription-Key': key,
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  let result = { statusText: response.statusText, statusCode: response.status, headers: response.headers };
  console.log()
  console.log(JSON.stringify(result, null, 2));
})
.catch(function (error) {
  console.log(error);
});

JavaScript アプリケーションを実行する

アプリケーションにコード サンプルを追加したら、プログラムを実行します。

  1. アプリケーション ディレクトリ (document-translation) に移動します。

  2. ご利用のターミナルで、次のコマンドを入力して実行します。

    node index.js
    

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

Python プロジェクトを設定する

  1. 最新バージョンの Python 3.x をまだインストールしていない場合はインストールします。 Python のインストールには、Python インストーラー パッケージ (pip) が含まれます。

    ヒント

    Python を初めて使う場合は、「Python の概要」Learn モジュールを試してください。

  2. ターミナル ウィンドウを開き、pip を使用して Requests ライブラリと uuid0 パッケージをインストールします。

    pip install requests uuid
    

ストレージ コンテナー内のすべてのドキュメントを翻訳する

  1. 任意のエディターまたは IDE を使用して、document-translation という名前のアプリ用の新しいディレクトリを作成します。

  2. document-translation ディレクトリに document-translation.py という名前の新しい Python ファイルを作成します。

  3. ドキュメント翻訳のコード サンプルをコピーして、document-translation.py ファイルに貼り付けます。

    • {your-document-translation-endpoint}{your-key} を、Azure portal Translator インスタンスの値で更新します。

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で更新します。

コード サンプル

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」を ご覧ください。

import requests

endpoint = '{your-document-translation-endpoint}'
key =  '{your-key}'
path = 'translator/text/batch/v1.1/batches'
constructed_url = endpoint + path

sourceSASUrl = '{your-source-container-SAS-URL}'

targetSASUrl = '{your-target-container-SAS-URL}'

body= {
    "inputs": [
        {
            "source": {
                "sourceUrl": sourceSASUrl,
                "storageSource": "AzureBlob",
                "language": "en"
            },
            "targets": [
                {
                    "targetUrl": targetSASUrl,
                    "storageSource": "AzureBlob",
                    "category": "general",
                    "language": "es"
                }
            ]
        }
    ]
}
headers = {
  'Ocp-Apim-Subscription-Key': key,
  'Content-Type': 'application/json',
}

response = requests.post(constructed_url, headers=headers, json=body)
response_headers = response.headers

print(f'response status code: {response.status_code}\nresponse status: {response.reason}\n\nresponse headers:\n')

for key, value in response_headers.items():
    print(key, ":", value)

Python アプリケーションを実行する

アプリケーションにコード サンプルを追加したら、プログラムをビルドして実行します。

  1. document-translation ディレクトリに移動します。

  2. ご利用のコンソールで、次のコマンドを入力して実行します。

    python document-translation.py
    

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

プログラミング環境のセットアップ

このクイックスタートでは、cURL コマンド ライン ツールを使用してドキュメント翻訳 REST API 呼び出しを行います。

注意

cURL パッケージは、ほとんどの Windows 10 と Windows 11、およびほとんどの macOS および Linux ディストリビューションにプレインストールされています。 パッケージのバージョンは、それぞれのコマンドを使用して確認できます。Windows: curl.exe -V。 macOS curl -V Linux: curl --version

cURL がインストールされていない場合は、お使いのプラットフォームに応じた次のリンクをお使いください。

ドキュメントの翻訳 (POST 要求)

  1. 任意のエディターまたは IDE を使用して、document-translation という名前のアプリ用の新しいディレクトリを作成します。

  2. document-translation ディレクトリに document-translation.json という名前の新しい json ファイルを作成します。

  3. ドキュメント翻訳の要求サンプルをコピーして、document-translation.json ファイルに貼り付けます。 {your-source-container-SAS-URL}{your-target-container-SAS-URL} を、Azure portal のストレージ アカウント コンテナー インスタンスの値で置き換えます。

    **Request sample**

    {
      "inputs":[
        {
          "source":{
            "sourceUrl":"{your-source-container-SAS-URL}"
          },
          "targets":[
            {
              "targetUrl":"{your-target-container-SAS-URL}",
              "language":"fr"
            }
          ]
        }
      ]
    }
    

POST 要求をビルドして実行する

POST 要求を実行する前に、{your-document-translator-endpoint}{your-key} を、Azure portal Translator インスタンスからの値に置き換えます。

重要

終わったらコードからキーを削除し、公開しないよう注意してください。 運用環境では、Azure Key Vault などの資格情報を格納してアクセスする安全な方法を使用します。 詳しくは、「Azure AI サービスのセキュリティ」を ご覧ください。

PowerShell

cmd /c curl "{your-document-translator-endpoint}/translator/text/batch/v1.1/batches" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-translation.json"

コマンド プロンプトまたはターミナル

curl "{your-document-translator-endpoint}/translator/text/batch/v1.1/batches" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-translation.json"

正常に完了したら、次のようになります。

  • 翻訳されたドキュメントはターゲット コンテナーにあります。
  • 成功した POST メソッドから 202 Accepted 応答コードが返され、バッチ要求によってサービスが作成されたことが示されます。
  • POST 要求では、後続の GET 要求で使用される値を提供する Operation-Location を含む応答ヘッダーも返します。

以上です。お疲れさまでした。 このクイックスタートでは、ドキュメント翻訳を使用して、元の構造とデータ形式を保持しながらドキュメントを翻訳しました。

次のステップ