LoginSignup
3
1

More than 3 years have passed since last update.

AWS Translateを使ってGo言語で翻訳するサンプル

Last updated at Posted at 2021-01-23

タイトルの通りですが、公式ドキュメントにサンプルが含まれていなかったので記事にしました。

サンプルソースはGithubにも置いてあります。
https://github.com/yuukimiyo/go-aws-translate-sample

簡単なコードですが、73言語(2021年1月現在)の双方向翻訳が可能な簡易ツールとして使えます。
Public Domainですので、コピペなどご自由に。

package main

import (
    "flag"
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/translate"
)

func main() {
    sourceText := flag.String("text", "これは翻訳のテストです", "source text")
    sourceLC := flag.String("slc", "ja", "source language code [en|ja|fr]...")
    targetLC := flag.String("tlc", "en", "target language code [en|ja|fr]...")
    flag.Parse()

    sess := session.Must(session.NewSession())
    trs := translate.New(sess)

    result, err := trs.Text(&translate.TextInput{
        SourceLanguageCode: aws.String(*sourceLC),
        TargetLanguageCode: aws.String(*targetLC),
        Text:               aws.String(*sourceText),
    })
    if err != nil {
        panic(err)
    }

    fmt.Printf(*result.TranslatedText)
}

上記ドキュメントを読み、Text()関数で翻訳を実施するんだ、という事さえわかれば難しいことは何もないです。

手元で試したい人向け

前提

AWSアカウントと、次のポリシーをアタッチしたユーザが必要です。

  • TranslateFullAccess

無料期間もありますがAWS Translateは有料サービスです、公式サイトの料金表は必ず確認してください。
AWS Translate

Go言語の実行環境が必要です。
厳密にどのバージョンからかは把握していませんが、開発/確認には次の環境を利用しています。

Ubuntu20.04(WSL2)
go1.15.7.linux-amd64

環境変数の設定

他言語のAWS SDKでも同じですが、次の環境変数をセットしておきます。

  • AWS_REGION
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

bashの場合

export AWS_REGION=ap-northeast-1
export AWS_ACCESS_KEY_ID=<access key id>
export AWS_SECRET_ACCESS_KEY=<Secret access key>

fish shellの場合

set -x AWS_REGION ap-northeast-1
set -x AWS_ACCESS_KEY_ID <access key id>
set -x AWS_SECRET_ACCESS_KEY <Secret access key>

Download

git clone git@github.com:yuukimiyo/go-aws-translate-example.git

動かしてみる

デフォルトでは、日本語ー>英語の翻訳を行います。

go run main.go --text="翻訳のテストです"

> Testing the translation

言語を指定したい場合は次のように言語コードを指定します。
(例えば英語ー>日本語の場合)

go run main.go --text="This is test of AWS Translate" --slc="en" --tlc="ja"

> これは AWS 翻訳のテストです

利用可能な言語コードの一覧は次のURLにあります。
Supported Languages and Language Codes

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1