Pythonプログラミング Python自動化

画像から文字を認識し翻訳するLINE bot

写真から文字を認識して、それを翻訳するLINE botです。海外で看板の英文が読めなかったり、手渡された英文のドキュメントが読めない時に、役に立つと思います。くれぐれも英語のテストとかに悪用しないようにしてください。

LINE BOTの完成形の動作(動画)

動画では、英文を写真で撮って、LINE BOTに投稿すると翻訳して返信が来る様子を見ることができます。

今回はこのような動作をするLINE BOTを作成します。

文字認識の実力とは。。

どれくらいの精度があるのかと?と気になると思います。試しに、TOEICの問題集を写真に撮って、LINE botに送ってみました。

英文がわかりやすいものであれば、概ね内容が掴めるほどの精度を得ることができました

 

 

 

 

 

 

 

 

サーバーやAPIを使用するための事前登録

PythonでLINEのBOTを作成するには、以下のように事前登録が必要になります

①LINE Developerの登録

チャンネルアクセストークンとシークレットキーを入手し、Pythonプログラムからメッセージを送るためのAPIを使用できるようにします。

②Herokuの登録

サーバーはHerokuを使用します。Herokuサーバー上でFlaskのWebアプリケーション(Pythonプログラム)を動作させ、LINEからのメッセージが来た時に翻訳して返答します。

これらの登録方法の詳細については、以下の記事を参照して行ってください。

Pythonで作る竈門炭治郎のLINE BOT

こんな方におすすめ PythonでLINE BOTを作りたい LINEでメッセージに応じた自動応答をやってみたい LINE BOTの作り方についてです。まずはコピーして作成してみて、動いたら自分なりに ...

③Google Cloud Platformの登録

言語の翻訳には、Google Cloud Platformの Translate APIを使用します。以下のページで、Google text to speechのAPIの使い方を説明していますので、同様に、Translateも登録してみてください。従量課金制ですが、500,000文字までは、無料となってますので、しばらくは充分だと思います。

Google text to speech をPythonで実行!

こんな方におすすめ Google text to speechについて知りたい Google text to speechを使いたい Google text to speech をPythonで動かし ...

プログラムの内容(main.py)

Pythonのプログラムのソースコードの内容です。

設定ファイルの作り方

以下、4つの設定ファイルの作成が必要になります。これらは、main.pyと同じフォルダに置く必要があります。

  • runtime.txt →Pythonのバージョンを記載を記載する

  • requirements.txt →インストールするライブラリの記載する

  • Procfile →プログラムの実行方法を定義する。(.txtなし)

  • xxxxxxxx.json →Google Cloud PlatformのTranslate APIを使用するためのjsonファイルを同一フォルダにおきます。 
  • Aptfileを作成し、以下を記載します。

  • xxxxxxxx.json →Google Cloud PlatformのTranslate APIを使用するためのjsonファイルを同一フォルダにおきます。 

 

デプロイする

Herokuのビルドパックにheroku-buildpack-aptを追加します。

 

以下のコマンドをターミナルから順に実行します。

環境変数を設定します。LINEのMessaging APIのチャンネルアクセストークンとチャンネルシークレットキーを入れます。また、Google Cloud PlartformのTranlate APIを使用するための秘密ーも入力します。TESSDATA_PREFIXという名前のheroku構成変数を設定します。

以上でデプロイが完了します。

動作しないときの対処法

設定が完了したのに正しく動作しないようなときは、ターミナルから以下のコマンドを実行しエラーが出ていないか確認してください。エラーが出た場合は、そのエラーの指示に従って、プログラムを修正してください。

まとめ

画像から文字を認識し、翻訳してLINEに返信するBOTを作成しました。このBOTはOCRの文字認識、Google Plat formの翻訳機能、herokuのサーバーなどを利用しているため、多くのことを学ぶことができます。また英語から日本語だけではなく、多くの言語に応用してみるのも良いと思います。ぜひチャレンジしてくみてください。

スポンサーリンク

-Pythonプログラミング, Python自動化

Copyright© MAYRのPython活用法! , 2021 All Rights Reserved Powered by AFFINGER5.