❄️

Cloud Translation API を使ってみる

2024/10/17に公開

はじめに

Google Cloud Translation API は 機械学習を利用してテキストの翻訳を提供するAPIです。
100以上の言語に対応し、リアルタイムで高速な翻訳を提供します。
今回は Cloud Translation API を使った翻訳方法について調べてみました。

料金

Cloud Translation API は、翻訳するテキストの文字数に基づく従量課金制で、下記の2つのエディションあります。

Cloud Translation - Basic
Cloud Translation - Advanced

Basic は標準的な翻訳機能を提供する基本プランです。
Advanced は高度な翻訳APIを提供する上位プランで、カスタマイズされた翻訳モデルの使用が可能です。

Cloud Translation - Basic の料金
 ・ 最初の 500,000 文字  : 無料
 ・ 500,001 文字~10 億文字: $20 / 100 万文字
 ・ 10 億文字超 : 割引料金についてのご相談は、営業担当者にお問い合わせください

Advanced の料金は使用するモデル等により異なります。
最新の料金情報や詳細はGoogle Cloudの公式ドキュメント(Cloud Translation の料金)を確認してください。

事前準備

Cloud Translation API の有効化

  1. Google Cloud Consoleから「API とサービス」セクションを開きます
  2. APIライブラリから「Cloud Translation API」を検索し、APIを有効にします。

認証情報の設定

Google Cloud Consoleからサービスアカウントを作成します。

  1. 「API とサービス」の「認証情報」からサービスアカウントの認証情報を作成します。
  2. APIを利用する為に「Cloud Translation API ユーザー」のロールを割り当てます。
  3. JSON形式の鍵ファイルを作成してダウンロードします。

プログラムでの使用方法

環境変数にサービスアカウントキーを設定

今回は環境変数 GOOGLE_APPLICATION_CREDENTIALS を使用して、サービスアカウントの鍵ファイルを設定することにしましたが、環境変数を使用せずにプログラムで指定することも可能です。

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

Pythonの実行例

API用のクライアントライブラリ google-cloud-translate をインストールします。

pip install google-cloud-translate

Pythonのプログラム例

from google.cloud import translate_v2 as translate

def translate_text(text, language):
    # クライアントの初期化
    translate_client = translate.Client()

    # 翻訳のリクエスト(翻訳元のテキストの言語「source_language」は省略可)
    result = translate_client.translate(text, target_language=language)

    # 翻訳結果を表示
    print(f"Original   Text: {text}")
    print(f"Translated Text: {result['translatedText']}")

    return result['translatedText']

# 翻訳するテキスト
original_text = "新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。"
target_language  = "en"  # 英語に翻訳

# 翻訳の実行
translate_text(original_text, target_language)

実行結果

Original   Text: 新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。
Translated Text: Due to a collision accident that occurred at Shin-Kawasaki Station, service on the down line (bound for Kurihama) has been suspended.

Javaの実行例

Gradleの依存関係

build.gradle
dependencies {
    implementation 'com.google.cloud:google-cloud-translate:1.95.5'
}

Javaのプログラム例

TranslateMain.java
import com.google.cloud.translate.Translate;
import com.google.cloud.translate.TranslateOptions;
import com.google.cloud.translate.Translation;

public class TranslateMain {
    public static void main(String[] args) {
        try {
            // Cloud Translation APIのクライアントを作成
            Translate translate = TranslateOptions.getDefaultInstance().getService();

            // 翻訳するテキスト
            String originalText = "新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。";
            String targetLanguage = "en";   // 英語に翻訳

            // 翻訳の実行(翻訳元のテキストの言語「sourceLanguage」は省略可)
            Translation translation = translate.translate(
                    originalText,
                    Translate.TranslateOption.targetLanguage(targetLanguage)
            );

            // 翻訳結果を表示
            System.out.println("Original   Text: " + originalText);
            System.out.println("Translated Text: " + translation.getTranslatedText());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

実行結果

Original   Text: 新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。
Translated Text: Due to a collision accident that occurred at Shin-Kawasaki Station, service on the down line (bound for Kurihama) has been suspended.

まとめ

Cloud Translation APIを利用することで簡単にテキストを翻訳することができました。
APIの導入手順はシンプルで、リアルタイムの翻訳機能を色々なアプリケーションに統合することができそうです。

レスキューナウテックブログ

Discussion