この記事は多言語単語学習音声を作成したい!#1の続きです。
前回の復習
言語の単語帳(音声)を作りたい!
スマートウォッチへ入れるために音声で作りたい!
以上!
DeepL APIを利用して単語群を翻訳する
翻訳と言えばDeepLでしょう。
DeepLのAPIでは個人利用でも50万文字(月)が無料で可能です。
ちなみに文字数のカウント方法は原文の文字数だそうです。
しかもバイト数ではなく文字数カウントらしいので、
猫→1文字
cat→3文字
としてカウントされます。
漢字が多く、文字数を減らせる日本語を原文にすれば多くの翻訳が無料の範囲内で実行可能です。
次回に行う単語群のグラフ構造化のために今回は複数言語で翻訳します。
今回利用する言語一覧はこんな感じです。
lang_array = [
"JA", # 日本語
"EN-US", # 英語(アメリカ)
"ES", # スペイン語
"FR", # フランス語
"UK", # ウクライナ語
"ZH-HANS", # 中国語(簡体字)
]
今回は日本語から各言語に翻訳します。
(日本語は漢字の利用も多く、単語の平均使用文字数が少ないので)
プログラム作成
今回はPythonで作成します。
auth_keyの取得などはググってください。
単語群は二次元配列で下記のように記載されています。(イメージ)
一つ目の数字は単語群の参照元に記載されていた単語の難易度です。
一気に8000個も覚えるのは無理なのでこのランクも利用させて抱きます。
words_grade_lists=[
[1,"愛"],
[3,"青"],
・
・
・
[0,"乱"]
]
auth_keyを直書きしていますが、.envファイルなどに記載すべきです。
またAPI利用でも時間内の実行可能回数に制限がある場合はtime.sleep()などを利用しましょう
import deepl
lang_array = [
"GRADE", # 配列の関係で記載するのみで文字列は何でも良い
"JA", # 日本語
"EN-US", # 英語(アメリカ)
"ES", # スペイン語
"FR", # フランス語
"UK", # ウクライナ語
"ZH-HANS", # 中国語(簡体字)
]
deepl_auth_key = ""
deepl_client = deepl.DeepLClient(deepl_auth_key)
words_array=[]
for i in range(len(word_list)):
add_array = []
add_array.append(word_list[i][0])
target_word = word_list[i][1]
add_array.append(target_word)
for k in range(2, len(lang_array)):
params = {
"auth_key": deepl_auth_key,
"text": target_word,
"source_lang": "JA",
"target_lang": lang_array[k],
}
request = requests.post(
"https://api-free.deepl.com/v2/translate", data=params
)
result = request.json()
add_word = result["translations"][0]["text"]
add_array.append(add_word)
words_array.append(add_array)
これで下記のような配列が作成されるはずです。
words_grade_lists=[
[1,"愛","love",・・・,"愛"],
・
・
・
]
あとは実行時間と相談して一旦スプレッドシートなりメモ帳なりに記載します。
次回は作成した単語群をグループ化します