1. HOME
  2. ブログ
  3. IT技術
  4. 【Amazon Translate編】AWSのサービスを活用した有名人認識アプリの開発してみた!
【Amazon Translate編】AWSのサービスを活用した有名人認識アプリの開発してみた!

【Amazon Translate編】AWSのサービスを活用した有名人認識アプリの開発してみた!

【Amazon Translate編】有名人認識アプリの開発に挑戦!

前回に引きつづき、「有名人画像認識アプリを開発する」といったテーマを体験しながら、一緒に勉強していきましょう!

このテーマでは、

  1. 画像認識
  2. 音声合成
  3. 機械翻訳

この三つの技術を学ぶことができます。

今回は、機械翻訳に触れていきたいと思います!

前回の記事

こちらの記事もオススメ!


機械翻訳って何?

ポケトーク

先ほど、Amazon Translate は機械翻訳を可能にすると述べましたが、「機械翻訳って何なの?」と疑問があるかもしれません。

機械翻訳を簡単に述べると、「コンピュータによる自動翻訳」です。

では、「自動翻訳とは何か?」といった疑問では、音声をその場で翻訳し、音声を出力するといったように、音声翻訳をさす場合に、使われます。

そして、「機械翻訳」は、その音声翻訳の流れの中で、音声認識した文字を翻訳する際のエンジンのことをさします。

音声翻訳は、機械翻訳を活用しプロセスを自動化させることで、ユーザー側に翻訳された音声を提供することができます。

近年では、ポケトークなどのように、リアルタイムな翻訳を可能にする製品も出てきています。

Amazon Translate は、大量のテキストを効率的に簡単に翻訳できる画期的なサービスです。

Amazon Translate とは?

では、その画期的なサービスを詳しく触れていきましょう。

まず、Amazon Translate の公式サイトによると、「自然で正確な言語翻訳」と説明されており、特徴としては、

  1. 言語対応である
  2. ディープラーニング手法を用いた、正確で流暢な翻訳を生成
  3. カスタム用語を使用可能
  4. 自動的に高い精度で言語を特定
  5. バッチ翻訳とリアルタイム翻訳に対応

以上を挙げることができます。

Amazon Translate を使ってみよう!

では、実際に Amazon Translate に触れていきましょう。

まず、Amazon Translate のページに移動してみましょう。

Amazon Translate の公式ページ

Amazon Translate の使用を開始するボタンを押下してください。

そうすると、テキストの読み上げ機能のページが開くと思います。

リアルタイムでの翻訳画面

このコンソール画面では、ほとんど Google翻訳 などのほかの翻訳ツールと同じような使い方ができます。

ここでの注意点としては、Amazon Translate の管理コンソールで、基本的には、アジアパシフィック(東京)を選択、よろしくお願いいたします。

また、言語選択画面を見ていただければわかるように、54の多言語に対応していることが見れます。

しかし、Google翻訳のほうが無料で使えるし、言語ももっと多くの言語に対応しているではないかと優れている部分があります。

どちらも一長一短の部分があります。

ただ、APIで他のサービスとの連携が取れる部分や、カスタム用語により、自分自身で設定した特定の翻訳をするといった面で、様々なケースで利用している機会が多いです。

Python で Translate に触れる

Python で 「AWS」のサービスを扱うには、先ほどインストールした Boto3 を使う必要があります。

ライブラリのインポート

では、まずライブラリをインポートするコードを書いていきましょう!

boto3 を扱うためには、Session を立ち上げて、Rekognition のクライアントを作成するといった処理が必要です。

ただ、先ほど aws config で設定した情報を認証してくれるので、省略可能になります。

そのおかげで、コード上では、個人情報が書かれていないといったセキュリティ的にも安全なものになります。

機械翻訳を行おう!

では、翻訳を行う上で、必要なコードを書いていきましょう!

今回は、三笠山と呼ばれる童話をテキストファイルとして用意します。

次に、機械翻訳するために必要なコードを書いていきましょう!

Amazon Translate のコンソール上で利用したように、テキストを翻訳するためには、Amazon Translate の API である TranslateText というものを利用します。

TranslateText 公式ドキュメント

TerminologyNamesは、カスタム辞書で扱うための辞書名のようなものです。

これにより、特定の単語を意図的に翻訳させることも可能になります。

また、リクエストで送れるテキストの最大文字列の長さは、基本的には 5000byte です。

簡単に機械翻訳に触れることができたと思います。

有名人認識アプリの開発!

前回の「Amazon Polly編」までで GUI で音声合成を行うことができました。

実装例 検出結果を機械翻訳してみよう!

では検出結果を音声合成し、出力するまでできているため、このアプリに「言語選択機能」「性別選択機能」を追加していきましょう。

流れとしては、Tkinter の機能である Menubar を用いて、設定機能を追加し、その選択された設定を用いて、機械翻訳を行えるようにしましょう。

まず、Menubar を作成していきます。

有名人画像認識アプリ画面

以下が参考例のコードです。

では、次に、設定から取得した情報から翻訳を行う機能を追加していきます。

検索結果から整形した result_text を用いて、AWS のサービスである TranslateAPI の機械翻訳を行います。

その際に、設定した言語が日本語かどうかチェックを行い、日本語であれば、機械翻訳を行う必要がないと判断します。

設定した言語が日本語以外の場合、言語と性別の設定に応じて、AWSのサービスである Polly の VoiceID を取得します。

これで、GUI で Polly 機能、Translate 機能を追加することができました。

参考コード

以下、参考例のコードです。

さいごに

有名人画像認識アプリを開発する」シリーズを読んでいただき、大変ありがとうございました!

「 AWS 」はこんなこともできるんだよ、といったことを伝えたいために、このテーマを選択しました!

Python や GUI 開発、AWS に興味がある人は、本記事を見ていただいたことも何かの縁!

ぜひ他の記事も参考して、いろんな知識を蓄えていただければ幸いです。

では、お疲れさまでした!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア