当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、予めご了承ください。
【Python】DeepL APIを利用した翻訳アプリケーション
近年、AI技術の進化により翻訳サービスがより高度で便利になっています。その中でもDeepLは高精度な翻訳を提供するサービスとして注目されています。DeepL API Freeを使用することで月あたり50万文字まで無料で翻訳することができます。また、1日あたりの制限はありまえん。
本記事では、Pythonを使用してDeepL APIを利用したGUI翻訳アプリケーションを作成する方法を詳しく解説します。Python初心者でも分かりやすいように、GUIの作成からAPIの利用方法、そして実行ファイル化までの手順をステップバイステップで説明します。
この記事で使用するPythonライブラリ
この記事では以下のPythonライブラリを使用します。
ライブラリ | 用途 | ライセンス |
---|---|---|
requests | HTTPリクエスト | Apache License 2.0 |
pyinstaller | 実行ファイル(.exe)変換 | GPL |
tkinter | GUI要素の作成 | Python標準モジュール |
json | JSONデータのエンコード及びデコード | Python標準モジュール |
os | ファイルやフォルダの操作、環境変数の取得 | Python標準モジュール |
requestsとは
requests(公式サイト)とはHTTPリクエストを簡単に行うためのライブラリで、Web APIと通信する際などに使います。Apache License 2.0で提供されています。
pyinstallerとは
pyinstaller(公式サイト)とはPythonスクリプトを実行ファイル(.exe)に変換するライブラリで、Pythonアプリケーションを実行ファイルで配布する際に利用します。GPLライセンス(一部はApache License 2.0)で提供されていますが、pyinstallerによって生成した実行ファイルにはpyinstallerのGPLライセンスは適応されません。
完成イメージ
今回作成するアプリケーションは、ユーザーがテキストを入力し、翻訳ボタンをクリックすると、日本語に翻訳される機能を持っています。また、翻訳結果をクリップボードにコピーする機能も実装します。
DeepL APIキーの取得と設定
APIキーの取得
まずはDeepL APIを利用するためにAPIキーを取得する必要があります。DeepLのウェブサイトにアクセスしアカウントを作成後、APIキーを発行してください。このAPIキーはアプリケーションがDeepLの翻訳サービスにアクセスするために必要になります。
DeepL APIキーの取得方法
「DeepL API」タブをクリックし、「無料で登録する」をクリックします。
メールアドレスを入力し、「続行」をクリックします。
パスワードを設定し、「アカウントを作成」をクリックします。
氏名及び住所を入力します。全て日本語で問題ありません。
複数アカウント作成防止の為、クレジットカード情報を登録します。Pro版にアップグレードしない限りDeepLから請求が来ることはありません。また、自動的にPro版にアップグレードすることもありません。
カード番号、有効期限、セキュリティコードを入力したら、「続行」をクリックします。
利用規定へ同意し、「無料で登録する」をクリックします。
「アカウントを管理する」をクリックします。
APIキータブをクリックするとAPIキーが表示されます。APIキーの右のコピーマークをクリックするとAPIキーをコピーすることができます。
APIキーの設定
APIキーはセキュリティのためプログラミングコードにハードコード(直接コーディングすること)せず、環境変数にパスを通し設定することをお勧めします。
環境変数へのパスの通し方(Windows11)
タスクバーの検索で「環境変数」と入力し、「システム環境変数の編集」をクリックします。
「環境変数」をクリックします。
システムの環境変数の「新規」をクリックします。
変数名に「DEEPL_API_KEY」、変数値にAPIキーの取得で取得したAPIキーを入力します。
環境変数を設定した直後は、まだ環境変数にパスが通りません。PCを再起動することでパスが通るようになります。
DeepL APIを利用した翻訳機能の実装
次に、Pythonを使ってGUI翻訳アプリケーションを作成します。ここでは、Tkinterを使用してシンプルなGUIを構築し、DeepL APIを利用して翻訳機能を実装します。
必要なライブラリのインストール
まず、必要なライブラリをインストールします。PowerShellで以下のコマンドを実行して、requestsライブラリをインストールしてください。
pip install requests
Pythonコードの実装
以下に、GUIアプリケーションの基本的なコードを示します。このコードでは、テキストボックス、翻訳ボタン、クリップボードにコピーするボタンを実装しています。
import tkinter as tk
from tkinter import messagebox
import requests
import json
import os
# DeepL APIのエンドポイントとターゲット言語
DEEPL_API_URL = "https://api-free.deepl.com/v2/translate"
TARGET_LANG = "JA"
# 環境変数からAPIキーを取得
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")
def translate_text():
if not DEEPL_API_KEY:
messagebox.showerror("エラー", "APIキーが設定されていません。")
return
input_text = text_box_input.get("1.0", "end-1c")
if not input_text:
messagebox.showerror("エラー", "翻訳するテキストが入力されていません。")
return
params = {
"auth_key": DEEPL_API_KEY,
"text": input_text,
"target_lang": TARGET_LANG
}
try:
response = requests.post(DEEPL_API_URL, data=params)
response.raise_for_status()
data = response.json()
if "translations" in data and len(data["translations"]) > 0:
translated_text = data["translations"][0]["text"]
text_box_output.delete("1.0", "end")
text_box_output.insert("1.0", translated_text)
else:
messagebox.showerror("エラー", "翻訳データが見つかりません。")
except requests.exceptions.RequestException as e:
messagebox.showerror("エラー", f"APIリクエストエラー: {e}")
except json.JSONDecodeError as e:
messagebox.showerror("エラー", f"JSON解析エラー: {e}")
def copy_text():
output_text = text_box_output.get("1.0", "end-1c")
if output_text:
root.clipboard_clear()
root.clipboard_append(output_text)
messagebox.showinfo("情報", "テキストがクリップボードにコピーされました。")
else:
messagebox.showerror("エラー", "コピーするテキストがありません。")
# GUIの設定
root = tk.Tk()
root.title("DeepL翻訳アプリ")
# 入力用テキストボックス
text_box_input = tk.Text(root, height=25, width=50)
text_box_input.grid(row=0, column=0, padx=10, pady=10)
# 翻訳ボタン
translate_button = tk.Button(root, text="翻訳", command=translate_text)
translate_button.grid(row=1, column=0, padx=10, pady=10)
# 出力用テキストボックス
text_box_output = tk.Text(root, height=25, width=50)
text_box_output.grid(row=0, column=1, padx=10, pady=10)
# コピーボタン
copy_button = tk.Button(root, text="コピー", command=copy_text)
copy_button.grid(row=1, column=1, padx=10, pady=10)
root.mainloop()
アプリケーションの実行ファイル化
Pythonスクリプトを実行ファイル(.exe)に変換するために、PyInstallerを使用します。PyInstallerはPythonコードを単一の実行可能な.exeファイルにパッケージ化するライブラリです。以下の手順で実行ファイルを作成します。
PyInstallerのインストール
まず、PyInstallerをインストールします。PowerShellで以下のコマンドを実行してください。
pip install pyinstaller
実行ファイルの作成
PyInstallerのインストールが完了したら、Pythonファイルのあるフォルダに移動し、以下のコマンドをPowerShellで実行してPythonスクリプトを.exeファイルに変換します。ここでは、Pythonファイル名は「translator.py」としています。
このコマンドを実行すると、Pythonファイルのあるフォルダに「dist」フォルダが生成され、「dist」フォルダ内に「translator.exe」が生成されます。
pyinstaller --onefile --windowed translator.py
`--onefile`オプションはすべてのファイルを1つの実行可能ファイルにまとめ、`--windowed`オプションはコンソールウィンドウを表示しません。
まとめ
Pythonの強力なライブラリを活用することで、簡単に翻訳機能を備えたアプリケーションを作成することができます。また、PyInstallerを使うことで作成したアプリケーションを実行ファイルとして配布することが可能です。
このアプリケーションを利用することで簡単にテキストの翻訳が可能になります。ぜひ、自分のプロジェクトに応用してみてください。