Amazon TranslateとAWS Lambdaで簡単自動翻訳:AWS公式ハンズオン紹介
はじめに
こんにちは、フクナガです。
前回執筆した記事の中で、初めてAmazon Translateを使いました。
上記の記事では、AWSマネジメントコンソールで提供されているAmazon Translateの「リアルタイムでの翻訳」を使用して翻訳を実行しました。
翻訳した結果がこちらです。
翻訳前(英語)
Learn how to enable log output from Amazon Bedrock to CloudWatch Logs and aggregate the number of tokens with CloudWatch Logs Insights. #AmazonBedrock #CloudWatch #TokenCount
翻訳後(日本語)
Amazon Bedrock から CloudWatch Logs へのログ出力を有効にし、CloudWatch ログインサイトを使用してトークンの数を集計する方法を学びましょう。#AmazonBedrock #CloudWatch #TokenCount
非常に素晴らしい精度でしたので、Amazon TranslateをAWS Lambdaから利用することでファイルを翻訳する機能を開発し、何かしらのアプリケーションに組み込みたいなと考えました。
しかし、Amazon S3にアップロードされたファイルの内容を翻訳する方法がわからず、調査していたところ、素晴らしい記事を見つけました!
Amazon Translate、AWS Lambda、および、新しいバッチ翻訳 API を使ってのドキュメント翻訳
とても手軽に翻訳機能の構築ができたので、中身の簡単な解説をしてみたいと思います。
「自分たち用に翻訳機能をカスタマイズしたい!」という方向けになります。
アーキテクチャ図
今回構築するアーキテクチャは下記となります。
上記アーキテクチャのAWS LambdaからAmazon Translateを利用することで、日本語から英語の翻訳を実施します。
翻訳用Lambda関数の解説
本アーキテクチャ構築用のCloudFormationは下記から取得可能です。
https://s3.amazonaws.com/aws-ml-blog/artifacts/serverless-document-translation/translate-lambda-cfn-stack.yml
Lambda関数の中で、Amazon Translate実行に関する部分を抽出してご紹介します。
1. 文章の翻訳
result = translate.translate_text(Text=content_array[i],SourceLanguageCode = os.environ['SourceLanguageCode'],TargetLanguageCode = os.environ['TargetLanguageCode'])
translate_text関数を使って、入力された文字列の翻訳を実行しています。
[入力されたパラメータ解説]
・Text:翻訳する文章を入力します。
・SourceLanguageCode:入力している言語コードを指定します。今回はja(日本語)を指定しました。
・TargetLanguageCode:出力(翻訳後)の言語コードを指定します。今回はen(英語)を指定しています。
translate_text関数については、下記に詳細な情報が載っているので参考にしていただければと思います。
https://docs.aws.amazon.com/ja_jp/translate/latest/APIReference/API_TranslateText.html
2. 翻訳後の文章の取得
new_file.write(result["TranslatedText"])
translate_text関数を用いると、下記の情報が返ってきます。
{ "AppliedSettings": { "Brevity": "string", "Formality": "string", "Profanity": "string" }, "AppliedTerminologies": [ { "Name": "string", "Terms": [ { "SourceText": "string", "TargetText": "string" } ] } ], "SourceLanguageCode": "string", "TargetLanguageCode": "string", "TranslatedText": "string" }
上記の「TranslatedText」(翻訳後の文章)を取得し、ファイルに書き込む関数となっています。
AWSが提供するCloudFormationスタックをデプロイしてみた
(1) 構築手順に沿って構築したS3バケットにテキストファイルを投入
構築手順はこちらの「AWS Lambda と リアルタイム翻訳を使用する進んだアプローチ」を参照
ファイルの中身はこちらです。
(2) 出力結果を確認
Amazon Translateによって翻訳されたファイルが格納されているか確認します。
中身を見てみると、日本語から英語に翻訳された文章が入力されていました!
まとめ
今回は、AWSが提供する「Amazon Translate、AWS Lambda、および、新しいバッチ翻訳 API を使ってのドキュメント翻訳」の後半部分「AWS Lambda と リアルタイム翻訳を使用する進んだアプローチ」のアーキテクチャ概要とAmazon Translate部分を抜粋して解説しました。
記事で提供されているCloudFormationを実行するだけで、簡単な翻訳アプリケーションが構築できるので、非常に素晴らしいなと感じました。
また、中身についても理解しやすいので、一度利用してみてはいかがでしょうか?
参考記事
Amazon Translate
Amazon Translate、AWS Lambda、および、新しいバッチ翻訳 API を使ってのドキュメント翻訳
TranslateText
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitterインフラエンジニア歴5年のフクナガです。2024 Japan AWS Top Engineers / Google Cloud Partner Top Engineer 2025 に選出されました! 生成 AI 多めで発信していますが、CI/CDやIaCへの関心も高いです。休日はベースを弾いてます。
Recommends
こちらもおすすめ
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16