Amazon Web Services ブログ

Amazon Translate に新言語を追加: ギリシャ語、ハンガリー語、ルーマニア語、タイ語、ウクライナ語、ウルドゥー語、ベトナム語

私たちテクニカルエバンジェリストは世界中を頻繁に旅します。その中で Amazon Translate を紹介する際にお客様から一番よく受ける質問が「自分の母国語はサポートされていますか?」というものです。母国語がギリシャ語、ハンガリー語、ルーマニア語、タイ語、ウクライナ語、ウルドゥー語、そしてベトナム語のいずれかである方に、今日から「はい」と答えられることをとてもうれしく思います。実際、Amazon Translate を使えば、”ναί”、”igen”、”da”、”ใช่”、”так”、“جی ہاں” and “có”といった言葉でさえも話すことができます。それもおそらく正しいアクセントで。

上記の言語を含め、Amazon Translate は現在、次の 32 の言語をサポートしています。アラビア語、中国語 (簡体字)、中国語 (繁体字)、チェコ語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ヘブライ語、ヒンディー語、ハンガリー語、インドネシア語、イタリア語、日本語、韓国語、マレー語、ノルウェー語、ペルシャ語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、スペイン語、スウェーデン語、タイ語、トルコ語、ウクライナ語、ウルドゥー語、ベトナム語です。

これらの言語間で 987 の翻訳の組み合わせに対応しています。サポートされている言語ペアの一覧は、こちらのドキュメントページでご確認いただけます。

Amazon Translate を使う
Amazon Translate の使い方はとても簡単です。さっそく、AWS コンソールで私のお気に入りの詩の一篇を翻訳してみましょう。

開発者の方であれば、TranslateText API を呼び出すのではないでしょうか。以下は AWS CLI を使用した例です。

$ aws translate translate-text --source-language-code auto --target-language-code hu --text "Les sanglots longs des violons de l’automne blessent mon coeur d’une langueur monotone"
{
"TranslatedText": "Az őszi hegedű hosszú zokogása monoton bágyadtsággal fáj a szívem",
"SourceLanguageCode": "fr",
"TargetLanguageCode": "hu"
}

この API は、もちろん、どの AWS SDK でも利用できます。言語の多様性の精神で、C++ を使ってみるのはいかがでしょう。 以下は、ディスクに保存されているテキストファイルを翻訳する短いプログラムです。

#include <aws/core/Aws.h>
#include <aws/core/utils/Outcome.h>
#include <aws/translate/TranslateClient.h>
#include <aws/translate/model/TranslateTextRequest.h>
#include <aws/translate/model/TranslateTextResult.h>

#include <fstream>
#include <iostream>
#include <string>

# define MAX_LINE_LENGTH 5000

int main(int argc, char **argv) {
  if (argc != 4) {
    std::cout << "Usage: translate_text_file 'target language code' 'input file' 'output file'"
         << std::endl;
    return -1;
  }

  const Aws::String target_language = argv[1];
  const std::string input_file = argv[2];
  const std::string output_file = argv[3];

  std::ifstream fin(input_file.c_str(), std::ios::in);
  if (!fin.good()) {
    std::cerr << "Input file is invalid." << std::endl;
    return -1;
  }

  std::ofstream fout(output_file.c_str(), std::ios::out);
  if (!fout.good()) {
    std::cerr << "Output file is invalid." << std::endl;
    return -1;
  }

  Aws::SDKOptions options;
  Aws::InitAPI(options);
  {
    Aws::Translate::TranslateClient translate_client;
    Aws::Translate::Model::TranslateTextRequest request;
    request = request.WithSourceLanguageCode("auto").WithTargetLanguageCode(target_language);

    Aws::String line;
    while (getline(fin, line)) {
      if (line.empty()) {
        continue;
      }

      if (line.length() > MAX_LINE_LENGTH) {
        std::cerr << "Line is too long." << std::endl;
        break;
      }

      request.SetText(line);
      auto outcome = translate_client.TranslateText(request);

      if (outcome.IsSuccess()) {
        auto translation = outcome.GetResult().GetTranslatedText();
        fout << translation << std::endl;
      } else {
        std::cout << "TranslateText error: " << outcome.GetError().GetExceptionName()
             << " - " << outcome.GetError().GetMessage() << std::endl;
        break;
      }
    }
  }
  Aws::ShutdownAPI(options);
}

コードを構築できたら、詩の全文をタイ語に翻訳してみましょう。

$ translate_text_file th verlaine.txt verlaine-th.txt

$ cat verlaine-th.txt

“เสียงสะอื้นยาวของไวโอลินฤดูใบไม้ร่วงทำร้ายหัวใจของฉันด้วยความอ่อนเพลียที่น่าเบื่อ ทั้งหมดหายใจไม่ออกและซีดเมื่อชั่วโมงดังผมจำได้ว่าวันเก่าและร้องไห้ และฉันไปที่ลมเลวร้ายที่พาฉันออกไปจากที่นี่ไกลกว่าเช่นใบไม้ที่ตายแล้ว” - Paul Verlaine บทกวีของดาวเสาร์

ご覧いただいた通り、Amazon Translate をお使いのアプリケーションに統合するのはとても簡単。必要なのは 1 回の API コールのみです。

今すぐ利用可能
新しい言語は、Amazon Translate が提供されているすべてのリージョンで本日より利用可能です。無料利用枠では、初回の翻訳リクエストからの 12 か月間、1 か月あたり 200 万文字まで利用できます。

ご意見をお待ちしています。 Amazon Translate に関するご意見は、AWS Forum に投稿するか、通常の AWS サポート連絡先まで送付してください。

Julien