背景
仕様書や論文を読んでいくとき、わからない英文をコピペしては、翻訳、コピペしては、翻訳、、、大変面倒です。さらにイメージファイルではコピペができない!そんなわけで、翻訳の自動化を試みました。
使用技術
- MATLAB
- 基本的な実装のために使用しました
- Computer Vision toolbox
- MATLABでOCRを使用するために使用しました
- Google Apps Script
- Google翻訳のAPIを実装するために使用しました
実装方法
下記を実装することで実現しました。
1. OCRによるイメージファイルからのテキスト抽出実装
2. GASによるGoogle翻訳APIを実装
3. MATLABからGASの実行
1.OCRによるイメージファイルからのテキスト抽出実装
Computer Vision toolboxの関数である「ocr」を使用してイメージファイルを読み込みテキストを取得します。
下記MATLABコードでイメージファイルを読み込みます
% イメージファイルの読み込み(pngFileName:イメージファイルのパスを入力)
pngFileInfo = imread(pngFileName);
% 読み込んだイメージファイルを使用しOCRでテキストを抽出
pngObj = ocr(pngFileInfo);
% テキスト取得
targetText = pngObj.Text;
2.GASによるGoogle翻訳APIを実装
取得したテキスト情報(targetText)をGoogle翻訳にかけるためのAPIをGASで実装します。
こちらの素晴らしい記事を パクらせて 参考にさせていただきました。
https://qiita.com/tanabee/items/c79c5c28ba0537112922
function doGet(e) {
var p = e.parameter;
var translatedText = LanguageApp.translate(p.text, p.source, p.target);
return ContentService.createTextOutput(translatedText);
}
このコードをデプロイし、Google翻訳APIのURLを作成しました。
3.MATLABからGASの実行
MATLABによって今回抽出したテキストデータをURLに設定し、
GETメソッドによるHTTPリクエストを実施します。
% google翻訳のGAS APIにアクセスする
% HTTPリクエストを送るurlを作成する
base = ['https://script.google.com/macros/s' ...
'/AKfycbw57UQkAv2Yhqzr-0n2USD2STnS_yGn8SYkABTLxCZemKxbE' ...
'z8YIbMjdFhTyjkPEaw73A/exec'];
% English → Japanese
sourceLang = 'en';
targetLang = 'ja';
url = strcat(base, '?text=', targetText ,'&source=', sourceLang, '&target=', targetLang);
%GASにてリクエスト→結果表示
web(url);
結果表示
上記のmスクリプトを関数化しました。引数にはpngファイルのパスを指定します。
あとがき
仕様書や論文のファイル形式はPDF形式が多く、PDFに対応したかったですが、、、、
もうちょっと掘り下げてPDFにも対応して再度投稿しようと思います。
㎰.GASを初めて触りましたが、便利ですね、、、Googleアカウントがあればほぼ100%使えますし、興味が出てきました。業務効率化のためキャッチアップしようと思います!
以上です!