Translate Text in Firestore

アプリ

こんにちは、eQOL(イーキュオル)の山下です。本日は行政等の窓口で使える通訳アプリの開発の際にとても便利だったFirebaseの機能拡張について紹介します。

通訳アプリはスマホOSに標準装備されている時代ですが、それでも行政や病院などの窓口で使いやすい専用アプリの需要があります。今回は多国語対応の通訳システムをGoogleのクラウドサービスであるFirebaseを利用してGoogle Translation APIを簡便に利用する方法を紹介します。

FirebaseとFirestore

FirebaseはGoogleが提供する開発者向けのプラットフォームで、アプリの開発、改善、運営をサポートする統合ツール群です。Firebaseには多岐にわたる機能がありますが、その中でFirestoreはNoSQLクラウドデータベースのサービスです。スマホネイティブアプリやwebアプリを作成する際のバックエンド機能を実装する際には極めて便利なツールと言えます。

Firestore

Google Translation API

翻訳系のAPIといえば、まず思い浮かぶのはこれではないでしょうか。Googleの翻訳サービスは以下のような特徴を持っています。

  1. 多言語翻訳: 100以上の言語間でのテキスト、音声、画像の翻訳をサポートしています。日常的な言語から専門的な分野まで広範囲な翻訳が可能です。
  2. 翻訳品質の向上: 機械学習を活用して、継続的に翻訳品質を改善しています。文脈や文法、専門用語などの特定の文化的背景や分野に特化した翻訳も行われています。
  3. 様々な入力形式の対応: テキスト、音声、画像、ウェブサイトなどさまざまな形式のデータを入力として受け付け、翻訳を行います。
  4. Translation API: Google CloudのTranslation APIは、開発者が自身のアプリケーションやサービスに翻訳機能を組み込むためのAPIです。このAPIを使用すると、自動化された翻訳を実装し、カスタムアプリケーション内での翻訳処理を行うことができます。

つまりTranslation APIを活用すれば、Googleの翻訳能力をアプリに取り込めるわけですが、このAPIをFirestoreに統合して活用する方法を以下に紹介します。

Translate Text in Firestore

FirebaseはExtensionで機能を拡張することができます。その一つがTranslate Textです。このExtensionはFirestoreのイベント(CREATE,DELETE,UPDATE)をトリガーに指定した(複数の)言語にテキストを翻訳して指定されたフィールドに書き込んでくれます。フィールドの更新結果はリアルタイムにアプリで取得され、翻訳結果が活用できるという仕組みです。

実装手順(Firebase周り)

FirebaseプロジェクトへのTranslate Textの導入

Translate Text Extensionを導入するプロジェクトは有料プラン(Blaze以上)でなければなりません。とはいえお試し程度で使っている分には料金はほとんどかかりません。Firebaseコンソールの左メニューExtensionにて、「機能拡張を探す」から「Translate Text in Firestore」を検索し、インストールします。以下の構成を聞かれます。
– リージョン (firestoreのリージョン)
– 翻訳言語(対応言語、複数指定可)https://cloud.google.com/translate/docs/languages
– コレクションパス (例:translations)
– 翻訳元テキストのあるfield名 (例:input)
– 翻訳されたテキストを保存するfield名 (例:translated)

たったのこれだけです。これでinputフィールドに翻訳したい文字列(翻訳言語で指定した言語ならなんでも。言語名を指定する必要もなし。)を入力すれば、自動的にtranslatedフィールドにTranslate APIで翻訳された(複数言語に対応する)テキストが更新されることになります。

Firestoreフィールドへの入力および更新情報の取得

アプリからのFirestoreの利用に関しては多くの情報がありますので、実装方法についての詳細は割愛します。1. 翻訳したいTextを上述のinputフィールドに保存(更新)する機能、と2. translatedフィールドの更新をウオッチする機能、を実装するだけGoogleの翻訳機能を使えるとはありがたいことだと思います。