を使用した Amazon Translate の例 AWS SDK for .NET - AWS SDKコードの例

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した Amazon Translate の例 AWS SDK for .NET

次のコード例は、Amazon Translate AWS SDK for .NET で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

「シナリオ」は、1 つのサービス内から、または他の AWS のサービスと組み合わせて複数の関数を呼び出し、特定のタスクを実行する方法を示すコード例です。

各例には、完全なソースコードへのリンクが含まれています。このリンクでは、コンテキストでコードを設定および実行する手順を確認できます。

アクション

次のコード例は、DescribeTextTranslationJob を使用する方法を示しています。

AWS SDK for .NET
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

using System; using System.Threading.Tasks; using Amazon.Translate; using Amazon.Translate.Model; /// <summary> /// The following example shows how to retrieve the details of /// a text translation job using Amazon Translate. /// </summary> public class DescribeTextTranslation { public static async Task Main() { var client = new AmazonTranslateClient(); // The Job Id is generated when the text translation job is started // with a call to the StartTextTranslationJob method. var jobId = "1234567890abcdef01234567890abcde"; var request = new DescribeTextTranslationJobRequest { JobId = jobId, }; var jobProperties = await DescribeTranslationJobAsync(client, request); DisplayTranslationJobDetails(jobProperties); } /// <summary> /// Retrieve information about an Amazon Translate text translation job. /// </summary> /// <param name="client">The initialized Amazon Translate client object.</param> /// <param name="request">The DescribeTextTranslationJobRequest object.</param> /// <returns>The TextTranslationJobProperties object containing /// information about the text translation job..</returns> public static async Task<TextTranslationJobProperties> DescribeTranslationJobAsync( AmazonTranslateClient client, DescribeTextTranslationJobRequest request) { var response = await client.DescribeTextTranslationJobAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { return response.TextTranslationJobProperties; } else { return null; } } /// <summary> /// Displays the properties of the text translation job. /// </summary> /// <param name="jobProperties">The properties of the text translation /// job returned by the call to DescribeTextTranslationJobAsync.</param> public static void DisplayTranslationJobDetails(TextTranslationJobProperties jobProperties) { if (jobProperties is null) { Console.WriteLine("No text translation job properties found."); return; } // Display the details of the text translation job. Console.WriteLine($"{jobProperties.JobId}: {jobProperties.JobName}"); } }

次のコード例は、ListTextTranslationJobs を使用する方法を示しています。

AWS SDK for .NET
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

using System; using System.Collections.Generic; using System.Threading.Tasks; using Amazon.Translate; using Amazon.Translate.Model; /// <summary> /// List Amazon Translate translation jobs, along with details about each job. /// </summary> public class ListTranslationJobs { public static async Task Main() { var client = new AmazonTranslateClient(); var filter = new TextTranslationJobFilter { JobStatus = "COMPLETED", }; var request = new ListTextTranslationJobsRequest { MaxResults = 10, Filter = filter, }; await ListJobsAsync(client, request); } /// <summary> /// List Amazon Translate text translation jobs. /// </summary> /// <param name="client">The initialized Amazon Translate client object.</param> /// <param name="request">An Amazon Translate /// ListTextTranslationJobsRequest object detailing which text /// translation jobs are of interest.</param> public static async Task ListJobsAsync( AmazonTranslateClient client, ListTextTranslationJobsRequest request) { ListTextTranslationJobsResponse response; do { response = await client.ListTextTranslationJobsAsync(request); ShowTranslationJobDetails(response.TextTranslationJobPropertiesList); request.NextToken = response.NextToken; } while (response.NextToken is not null); } /// <summary> /// List existing translation job details. /// </summary> /// <param name="properties">A list of Amazon Translate text /// translation jobs.</param> public static void ShowTranslationJobDetails(List<TextTranslationJobProperties> properties) { properties.ForEach(prop => { Console.WriteLine($"{prop.JobId}: {prop.JobName}"); Console.WriteLine($"Status: {prop.JobStatus}"); Console.WriteLine($"Submitted time: {prop.SubmittedTime}"); }); } }
  • API の詳細については、ListTextTranslationJobs AWS SDK for .NET リファレンスの API を参照してください。

次の例は、StartTextTranslationJob を使用する方法を説明しています。

AWS SDK for .NET
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

using System; using System.Collections.Generic; using System.Threading.Tasks; using Amazon.Translate; using Amazon.Translate.Model; /// <summary> /// This example shows how to use Amazon Translate to process the files in /// an Amazon Simple Storage Service (Amazon S3) bucket. The translated results /// will also be stored in an Amazon S3 bucket. /// </summary> public class BatchTranslate { public static async Task Main() { var contentType = "text/plain"; // Set this variable to an S3 bucket location with a folder." // Input files must be in a folder and not at the bucket root." var s3InputUri = "s3://amzn-s3-demo-bucket1/FOLDER/"; var s3OutputUri = "s3://amzn-s3-demo-bucket2/"; // This role must have permissions to read the source bucket and to read and // write to the destination bucket where the translated text will be stored. var dataAccessRoleArn = "arn:aws:iam::0123456789ab:role/S3TranslateRole"; var client = new AmazonTranslateClient(); var inputConfig = new InputDataConfig { ContentType = contentType, S3Uri = s3InputUri, }; var outputConfig = new OutputDataConfig { S3Uri = s3OutputUri, }; var request = new StartTextTranslationJobRequest { JobName = "ExampleTranslationJob", DataAccessRoleArn = dataAccessRoleArn, InputDataConfig = inputConfig, OutputDataConfig = outputConfig, SourceLanguageCode = "en", TargetLanguageCodes = new List<string> { "fr" }, }; var response = await StartTextTranslationAsync(client, request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"{response.JobId}: {response.JobStatus}"); } } /// <summary> /// Start the Amazon Translate text translation job. /// </summary> /// <param name="client">The initialized AmazonTranslateClient object.</param> /// <param name="request">The request object that includes details such /// as source and destination bucket names and the IAM Role that will /// be used to access the buckets.</param> /// <returns>The StartTextTranslationResponse object that includes the /// details of the request response.</returns> public static async Task<StartTextTranslationJobResponse> StartTextTranslationAsync(AmazonTranslateClient client, StartTextTranslationJobRequest request) { var response = await client.StartTextTranslationJobAsync(request); return response; } }
  • API の詳細については、StartTextTranslationJob AWS SDK for .NET リファレンスの API を参照してください。

次の例は、StopTextTranslationJob を使用する方法を説明しています。

AWS SDK for .NET
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

using System; using System.Threading.Tasks; using Amazon.Translate; using Amazon.Translate.Model; /// <summary> /// Shows how to stop a running Amazon Translation Service text translation /// job. /// </summary> public class StopTextTranslationJob { public static async Task Main() { var client = new AmazonTranslateClient(); var jobId = "1234567890abcdef01234567890abcde"; var request = new StopTextTranslationJobRequest { JobId = jobId, }; await StopTranslationJobAsync(client, request); } /// <summary> /// Sends a request to stop a text translation job. /// </summary> /// <param name="client">Initialized AmazonTrnslateClient object.</param> /// <param name="request">The request object to be passed to the /// StopTextJobAsync method.</param> public static async Task StopTranslationJobAsync( AmazonTranslateClient client, StopTextTranslationJobRequest request) { var response = await client.StopTextTranslationJobAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"{response.JobId} as status: {response.JobStatus}"); } } }
  • API の詳細については、StopTextTranslationJob AWS SDK for .NET リファレンスの API を参照してください。

次の例は、TranslateText を使用する方法を説明しています。

AWS SDK for .NET
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

using System; using System.IO; using System.Threading.Tasks; using Amazon.S3; using Amazon.S3.Transfer; using Amazon.Translate; using Amazon.Translate.Model; /// <summary> /// Take text from a file stored a Amazon Simple Storage Service (Amazon S3) /// object and translate it using the Amazon Transfer Service. /// </summary> public class TranslateText { public static async Task Main() { // If the region you want to use is different from the region // defined for the default user, supply it as a parameter to the // Amazon Translate client object constructor. var client = new AmazonTranslateClient(); // Set the source language to "auto" to request Amazon Translate to // automatically detect te language of the source text. // You can get a list of the languages supposed by Amazon Translate // in the Amazon Translate Developer's Guide here: // https://docs.aws.amazon.com/translate/latest/dg/what-is.html string srcLang = "en"; // English. string destLang = "fr"; // French. // The Amazon Simple Storage Service (Amazon S3) bucket where the // source text file is stored. string srcBucket = "amzn-s3-demo-bucket"; string srcTextFile = "source.txt"; var srcText = await GetSourceTextAsync(srcBucket, srcTextFile); var destText = await TranslatingTextAsync(client, srcLang, destLang, srcText); ShowText(srcText, destText); } /// <summary> /// Use the Amazon S3 TransferUtility to retrieve the text to translate /// from an object in an S3 bucket. /// </summary> /// <param name="srcBucket">The name of the S3 bucket where the /// text is stored. /// </param> /// <param name="srcTextFile">The key of the S3 object that /// contains the text to translate.</param> /// <returns>A string representing the source text.</returns> public static async Task<string> GetSourceTextAsync(string srcBucket, string srcTextFile) { string srcText = string.Empty; var s3Client = new AmazonS3Client(); TransferUtility utility = new TransferUtility(s3Client); using var stream = await utility.OpenStreamAsync(srcBucket, srcTextFile); StreamReader file = new System.IO.StreamReader(stream); srcText = file.ReadToEnd(); return srcText; } /// <summary> /// Use the Amazon Translate Service to translate the document from the /// source language to the specified destination language. /// </summary> /// <param name="client">The Amazon Translate Service client used to /// perform the translation.</param> /// <param name="srcLang">The language of the source text.</param> /// <param name="destLang">The destination language for the translated /// text.</param> /// <param name="text">A string representing the text to ranslate.</param> /// <returns>The text that has been translated to the destination /// language.</returns> public static async Task<string> TranslatingTextAsync(AmazonTranslateClient client, string srcLang, string destLang, string text) { var request = new TranslateTextRequest { SourceLanguageCode = srcLang, TargetLanguageCode = destLang, Text = text, }; var response = await client.TranslateTextAsync(request); return response.TranslatedText; } /// <summary> /// Show the original text followed by the translated text. /// </summary> /// <param name="srcText">The original text to be translated.</param> /// <param name="destText">The translated text.</param> public static void ShowText(string srcText, string destText) { Console.WriteLine("Source text:"); Console.WriteLine(srcText); Console.WriteLine(); Console.WriteLine("Translated text:"); Console.WriteLine(destText); } }
  • API の詳細については、TranslateText AWS SDK for .NET リファレンスの API を参照してください。

シナリオ

次のコード例は、サブスクリプションとパブリッシュ機能を持ち、メッセージを翻訳するアプリケーションを作成する方法を示しています。

AWS SDK for .NET

Amazon Simple Notification Service .NET API を使用して、サブスクリプションとパブリッシュ機能を持つウェブアプリケーションを作成する方法を示します。さらに、このサンプルアプリケーションではメッセージを翻訳します。

完全なソースコードとセットアップと実行の手順については、GitHub の詳細な例を参照してください。

この例で使用されているサービス
  • Amazon SNS

  • Amazon Translate

次のコード例は、顧客のコメントカードを分析し、元の言語から翻訳し、顧客の感情を判断し、翻訳されたテキストから音声ファイルを生成するアプリケーションの作成方法を示しています。

AWS SDK for .NET

このサンプルアプリケーションは、顧客フィードバックカードを分析し、保存します。具体的には、ニューヨーク市の架空のホテルのニーズを満たします。このホテルでは、お客様からのフィードバックをさまざまな言語で書かれた実際のコメントカードの形で受け取ります。そのフィードバックは、ウェブクライアントを通じてアプリにアップロードされます。コメントカードの画像をアップロードされると、次の手順が発生します。

  • テキストは Amazon Textract を使用して、画像から抽出されます。

  • Amazon Comprehend は、抽出されたテキストの感情とその言語を決定します。

  • 抽出されたテキストは、Amazon Translate を使用して英語に翻訳されます。

  • Amazon Polly は抽出されたテキストからオーディオファイルを合成します。

完全なアプリは  AWS CDK を使用してデプロイすることができます。ソースコードとデプロイの手順については、 GitHub のプロジェクトを参照してください。

この例で使用されているサービス
  • Amazon Comprehend

  • Lambda

  • Amazon Polly

  • Amazon Textract

  • Amazon Translate