FlutterとBack4Appを使用してAI音声翻訳アプリを構築する方法
このチュートリアルでは、フロントエンドフレームワークとして Flutter を使用し、バックエンドサービスとして Back4App を使用してAI音声翻訳アプリを構築する方法を学びます。このアプリは、ユーザーが複数の言語間で音声、テキスト、画像を翻訳できるようにします。AIによる翻訳、光学文字認識(OCR)、音声認識機能を備えています。このチュートリアルの終わりまでに、リアルタイム翻訳を処理し、将来の使用のためにBack4Appに履歴を保存できるアプリを構築することができます。
このチュートリアルを完了するには、次のものが必要です:
- 翻訳APIプロバイダーのアカウントが必要です。例えば、 Google Cloud Translationや DeepLなどです。
- REST APIと 非同期プログラミングに関する知識が必要です。
このステップでは、Back4Appアプリケーションを設定し、データモデルを定義し、翻訳履歴、言語、ユーザーデータを保存するためにバックエンドを構成します。
- "新しいアプリを作成"をクリックします。
- アプリ名(例:"AI音声翻訳者")を入力し、アプリアイコンを選択します。
- プロンプトが表示された場合は、サーバーの場所を選択します。
- "作成"をクリックします。
- アプリのダッシュボードで、アプリ設定 > セキュリティとキーに移動します。
- アプリケーションIDとクライアントキーをメモします。これらはFlutterアプリの構成に必要です。
Back4Appで以下のクラスを作成します:
- ユーザー (デフォルト)
- 翻訳
- 言語
- フレーズ
- 辞書エントリ
1.3.1. 翻訳クラスを作成する
- 「
- 「クラスを作成」」をクリックします。
- 「カスタム」を選択し、Translationと名付けます。
- 「クラスを作成」」をクリックします。
次の列を追加します。Translation:
- ユーザー (Pointer<_User>): Userオブジェクトを指します。
- sourceLanguage (String): ソース言語コード。
- targetLanguage (String): ターゲット言語コード。
- sourceText (String): 翻訳する元のテキスト。
- translatedText (String): 翻訳されたテキスト。
- translationType (String): 翻訳の種類(音声, テキスト, 画像)。
- timestamp (DateTime)。
1.3.2. 言語クラスを作成する
- 新しいクラスを作成する手順を繰り返して、Languageという名前のクラスを作成します。
次の列を追加します:Language:
- name (文字列):言語の名前(例:"英語")。
- code (文字列):言語のISOコード(例:"en")。
- flagIconUrl (文字列):言語を表す旗の画像のURL。
1.3.3. フレーズクラスを作成する
- クラスを作成します。Phrase.
次の列を追加します フレーズ:
- カテゴリ (文字列): フレーズのカテゴリ(例: "挨拶")。
- ソース言語 (文字列): ソース言語コード。
- ターゲット言語 (文字列): ターゲット言語コード。
- ソーステキスト (文字列): 元のフレーズ。
- 翻訳テキスト (文字列): 翻訳されたフレーズ。
1.3.4. DictionaryEntryクラスを作成する
- という名前のクラスを作成します DictionaryEntry.
次の列を追加します DictionaryEntry:
- 単語 (文字列): 定義されている単語。
- 言語 (文字列): 単語の言語。
- 定義 (文字列): 単語の定義。
- 例 (配列): 単語を使用した例文。
認証されたユーザーのみが自分のデータにアクセスできるようにします:
- 各クラスについて、 セキュリティ > クラスレベルの権限 (CLP) に移動します。
- CLPを設定して、認証されたユーザーのみが読み書きアクセスできるようにします。
このステップでは、Flutter プロジェクトをセットアップし、Back4App に接続するように構成します。
ターミナルを開いて、次のコマンドを実行します:
プロジェクトディレクトリに移動します:
pubspec.yaml を開いて、次の依存関係を追加します:
flutter pub get を実行して、パッケージをインストールします。
新しいファイルを作成します lib/config/back4app_config.dart:
'YOUR_APPLICATION_ID' と 'YOUR_CLIENT_KEY' をBack4Appからのキーに置き換えます。
に lib/main.dart, Parseを初期化します:
を作成します lib/app.dart:
最初に実装する機能は基本的なテキスト翻訳です。
を作成します lib/services/translation_service.dart 翻訳API(Google Cloud Translation APIまたはDeepL)とのインタラクションを管理します。
を作成します lib/models/language.dart サポートされている言語を表します。
作成する lib/screens/text_translation_screen.dart テキスト入力と翻訳を処理するために:
このステップでは、 音声認識 と 音声合成 機能を統合することで音声翻訳を追加します。
作成する lib/services/speech_recognition_service.dart を使用して speech_to_text パッケージ:
作成する lib/services/tts_service.dart を使用して flutter_tts パッケージ:
作成する lib/screens/voice_translation_screen.dart 音声翻訳を処理するために:
作成する lib/services/ocr_service.dart 使用する google_ml_kit パッケージ:
作成する lib/screens/image_translation_screen.dart 画像入力とOCRを処理するために:
このステップでは、翻訳履歴の保存とフレーズブックの管理を実装します。
更新 lib/services/translation_service.dart で翻訳履歴をBack4Appに保存する:
作成 lib/screens/phrase_book_screen.dart で一般的なフレーズを管理する:
このチュートリアルに従うことで、機能豊富な AI Voice Translator App を Flutter と Back4App で構築しました。以下を実装しました:
- 基本的および高度なテキスト翻訳。
- 音声から音声への翻訳を 音声認識 と テキスト読み上げ を使用して。
- 画像からテキストへの翻訳を OCR を使用して。
- 翻訳履歴の管理と一般的な表現のフレーズ集。
- UI/UXの向上: アプリのインターフェースを改善し、よりスムーズなユーザー体験を提供します。
- エラーハンドリングの改善: APIの失敗に対するエラーハンドリングとフォールバックメカニズムを追加します。
- オフラインモードの実装: オフラインアクセスのために一般的な翻訳、フレーズ、および履歴をキャッシュします。
- アプリのデプロイ: iOSおよびAndroidプラットフォームへのデプロイの準備をします。