【Python入門】DeepLを導入して翻訳をしてみる【VSCode】

この記事では、DeepLのAPIを使用して翻訳をする方法を解説します。
DeepL APIの導入方法から翻訳するためのPythonのコードまで解説しますので、参考にしてみてください。

DeepL
無料で使えるニューラル機械翻訳サービス。Google翻訳より精度が高いらしい。
無料版は500,000文字/月まで翻訳可能。テキスト数に制限がなく速度も速いPro版は630円~/月。
API
ツールの提供者が「僕のツールをあなたのソフトに組み込んで使って~!」という意図で提供している部品のようなものです。ツールをプログラムで制御するためのコマンドがたくさん入っています。

目次

DeepLの登録、APIキーの入手

DeepLを利用するにはアカウントの作成が必要になります。
順番にやっていきましょう。

公式サイトから会員登録をします。

今回はひとまず無料版を使ってみます。
画面を少し下にスクロールして「無料で登録する」ボタンを押します。

メールアドレスとパスワードを設定して次に進みましょう。

住所などを入力します。

住所を入力したらクレジットカードを登録しましょう。
複数アカウント登録などの不正防止のため必須となります。

利用規約に同意したらチェックをつけて登録を完了させましょう。

登録完了です!

登録が完了したら、アカウントに紐づけられたAPIキーを取得しましょう。
登録完了画面の「アカウントを管理する」のリンクにアクセスし、アカウントページに移動します。
“アカウント”タブの下の方にAPIキーが記載されています。

実装の際に使用するのでコピーしておきましょう。

Requestモジュールの導入(方法①)

Pythonでネット経由の情報を取得する際には「Requestモジュール」というものが必要になります。
必要な情報をまとめて「このデータを取得してくださ~い」とWebに依頼する(リクエスト)モジュールと理解しましょう。

Requestモジュールを使うことでサイトから情報を取得したり、画像を取得することが出来ます。

今回はAPIを経由して翻訳する文章をDeepLのサイトに渡して翻訳結果を受け取ります。

ターミナル部分に以下のコードを入力してEnterを押してインストールしましょう。

py -m pip install requests

インストールが完了すると以下のように「インストールが完了したよ」という文が出てきます。

DeepLライブラリの導入(方法②)

上記のRequestモジュールを使用した方法はWebのデータを抽出する際の標準的な方法として記載しました。
しかし、DeepLの公式からPythonのライブラリが公開されています。
DeepLを使用するうえではこちらの方が簡単なので、こちらも入れておきます。

ターミナル部分に以下のコードを入力してEnterを押してインストールしましょう。

py -m pip install deepl

インストールが完了すると以下のように「インストールが完了したよ」という文が出てきます。

Pythonコードの実装

以上で準備が整ったので翻訳をしていきましょう!

方法①:Requestモジュール経由で翻訳する

import requests

API_KEY = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xx' 
target_lang='JA' 

params = { 
    'auth_key' : API_KEY,
    'text' : original_text,     #←翻訳したい文字を直接入力 or 変数で指定
    'target_lang' : target_lang
}

request = requests.post("https://api-free.deepl.com/v2/translate",data=params)
trans_result=request.json()

↓説明文込み↓

“import requests”はソースの最初に宣言しています。

API_KEYは「Requestモジュールの導入(方法①)」のちょっと上に書いているAPIキーの入手をご参照ください。
(DeepLサイトののアカウント情報下部にあります)

やっていることは単純ですね。

  1. 必要な情報を宣言して
  2. パラメータとしてまとめて
  3. Requestsモジュールで②の情報を指定のサイトに渡して、帰ってきたデータを受け取る

DeepLライブラリを使うことでパラメータとしてまとめる必要がなくなり、もっと簡素になります。
以下で解説します。

方法②:DeepLライブラリ経由で翻訳する

import deepl

API_KEY = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xx' 
target_lang='JA' 

translator = deepl.Translator(API_KEY) 
result = translator.translate_text(original_text,target_lang=target_lang)
trans_result = result.text 

↓説明文込み↓

“import deepl”はソースの最初に宣言しています。

だいぶシンプルになりましたね。
翻訳機としてDeepLを指定して、翻訳したいテキストと何語に翻訳するかを指定するだけです。

では実行結果を見てみましょう。

実行結果

結果はほぼ同じなのでDeepLライブラリを使用した出力結果を出してみます。
今までの記事の流れで…

画像ファイル → OCR → DeepL翻訳

の流れで処理しています。

元ファイルは以下の”English.png”の画像ファイルです。

結果がわかるように
original_text:OCRで読み取った文字
trans_result:DeepL翻訳結果
を出力します。

結果は以下の通り

ピュトノン

( ^ω^)・・・

OCRの精度が悪いようですね…

ちなみに実行後にDeepLの”ご利用状況”ページを見てみると、「Pythnon」の7文字分カウントされています。

終わりに

お疲れさまでした!
一応DeepLが正しく動作することは確認できました!
OCRの精度を改善しないと使い物にならなさそうですが課題をひとまず終わらせるのを先にするか…?
今後の更新にこうご期待!