記事公開日
最終更新日
Azure Document Translatorを使ってみた

はじめに
今回は、Azure Translator サービスの1つであるDocument Translator(ドキュメント翻訳)についてご紹介します。
ドキュメント翻訳とは、サポートされている言語と様々なファイル形式で、ドキュメント全体を翻訳する機能です。
今回は、コンテナにある文書ファイルを翻訳し、結果を別コンテナに出力するまでの流れを試してみます。
事前準備
ドキュメント翻訳は、価格レベルFreeではサポートされていないため、Standard S1を選択します。
「リソースの管理」>「キーとエンドポイント」から、
「キー」と、「ドキュメントの翻訳」のエンドポイントをコピーしておきます。
Azure BLOB Storage内に、ソースコンテナ(翻訳元のファイルを格納する場所)と、
ターゲットコンテナ(翻訳後のファイルを格納する場所)を作成します。
ソースコンテナの「共有アクセストークン」を選択し、以下設定にします。
・署名方法:「ユーザーの委任キー」
・アクセス許可:「読み取り」「リスト」を選択
・有効期限:1週間以内の期間を設定
「SASトークン及びURLを生成」を押下すると、BLOB SAS URLが表示されるので、コピーしておきます。
ターゲットコンテナも同様の手順で、以下のように設定し、BLOB SAS URLを生成し、コピーしておきます。
・署名方法:「ユーザーの委任キー」
・アクセス許可:「書き込み」「リスト」を選択
・有効期限:1週間以内の期間を設定
VisualStudioから、コンソールアプリを作成し、ソースを以下に置き換えます。
「キー」・「エンドポイント」・「コンテナのBLOB SAS URL」を先ほどコピーしたものに置き換えます。
using System.Text;
class Program
{
//ドキュメント翻訳のエンドポイント
private static readonly string endpoint = "エンドポイント";
//キー
private static readonly string key = "キー";
static readonly string route = "/batches";
//ソースコンテナのBLOB SAS URL
static readonly string sourceURL = "\"ソースコンテナのBLOB SAS URL\"";
//ターゲットコンテナのBLOB SAS URL
static readonly string targetURL = "\"ターゲットコンテナのBLOB SAS URL\"";
static readonly string json = ("{\"inputs\": [{\"source\": {\"sourceUrl\":" + sourceURL + " ,\"storageSource\": \"AzureBlob\",\"language\": \"ja\"}, \"targets\": [{\"targetUrl\":" + targetURL + ",\"storageSource\": \"AzureBlob\",\"category\": \"general\",\"language\": \"en\"}]}]}");
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");
}
}
}
}
アプリの実行
ソースコンテナに、翻訳したいファイルを配置します。
今回は34ページあるPDFと、テキストファイルを置きました。
↓以下、テキストファイルの内容
アプリを実行します。
AzurePortalからターゲットコンテナを見てみると、ターゲットコンテナに、
PDFファイルとテキストファイルが出力されています。
ファイルを確認すると、元の文章が翻訳されていることが確認できました。
今回はAzure Document Translatorを使用した、簡単な動作確認をしてみました。
PDFの内容については、全て完璧に翻訳できているわけではありませんでしたが、
ページ数の多いものがある程度まとめて翻訳できていました。
おわりに
QESでは、「AIチャットボット構築サービス」をはじめとして、各AIサービスを利用したシステム導入のお手伝いをしております。それ以外でも QESでは様々なアプリケーションの開発・導入を行っております。提供するサービス・ソリューションにつきましては こちら に掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。
また、QESでは採用活動を強化しております。ブログを読んで弊社の業務内容に興味を持っていただけましたら、採用情報にもお目通しいただければ幸いです。
※このブログで参照されている、Microsoft、Azure その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。


