Flutter Templates

FlutterとBack4Appを使用してAI音声翻訳アプリを構築する方法

34min

はじめに

このチュートリアルでは、フロントエンドフレームワークとして Flutter を使用し、バックエンドサービスとして Back4App を使用してAI音声翻訳アプリを構築する方法を学びます。このアプリは、ユーザーが複数の言語間で音声、テキスト、画像を翻訳できるようにします。AIによる翻訳、光学文字認識(OCR)、音声認識機能を備えています。このチュートリアルの終わりまでに、リアルタイム翻訳を処理し、将来の使用のためにBack4Appに履歴を保存できるアプリを構築することができます。

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • Back4Appアカウントが必要です。 Back4Appで無料アカウントにサインアップしてください。
  • Flutter SDKがローカルマシンにインストールされている必要があります。公式の Flutterインストールガイドに従ってください。
  • DartFlutterの基本的な知識が必要です。Flutterが初めての場合は、次の Flutterドキュメントを確認してから進んでください。
  • 翻訳APIプロバイダーのアカウントが必要です。例えば、 Google Cloud TranslationDeepLなどです。
  • REST API非同期プログラミングに関する知識が必要です。

ステップ1 — Back4Appバックエンドの設定

このステップでは、Back4Appアプリケーションを設定し、データモデルを定義し、翻訳履歴、言語、ユーザーデータを保存するためにバックエンドを構成します。

1.1. Back4Appで新しいアプリケーションを作成する

  1. あなたの Back4Appダッシュボード にログインします。
  2. "新しいアプリを作成"をクリックします。
  3. アプリ名(例:"AI音声翻訳者")を入力し、アプリアイコンを選択します。
  4. プロンプトが表示された場合は、サーバーの場所を選択します。
  5. "作成"をクリックします。

1.2. アプリケーションキーを取得する

  1. アプリのダッシュボードで、アプリ設定 > セキュリティとキーに移動します。
  2. アプリケーションIDとクライアントキーをメモします。これらはFlutterアプリの構成に必要です。

1.3. データモデルを定義する

Back4Appで以下のクラスを作成します:

  • ユーザー (デフォルト)
  • 翻訳
  • 言語
  • フレーズ
  • 辞書エントリ

1.3.1. 翻訳クラスを作成する

  1. 「クラスを作成」をクリックします。
  2. 「カスタム」を選択し、Translationと名付けます。
  3. 「クラスを作成」」をクリックします。

次の列を追加します。Translation:

  • ユーザー (Pointer<_User>): Userオブジェクトを指します。
  • sourceLanguage (String): ソース言語コード。
  • targetLanguage (String): ターゲット言語コード。
  • sourceText (String): 翻訳する元のテキスト。
  • translatedText (String): 翻訳されたテキスト。
  • translationType (String): 翻訳の種類(音声, テキスト, 画像)。
  • timestamp (DateTime)。

1.3.2. 言語クラスを作成する

  1. 新しいクラスを作成する手順を繰り返して、Languageという名前のクラスを作成します。

次の列を追加します:Language:

  • name (文字列):言語の名前(例:"英語")。
  • code (文字列):言語のISOコード(例:"en")。
  • flagIconUrl (文字列):言語を表す旗の画像のURL。

1.3.3. フレーズクラスを作成する

  1. クラスを作成します。Phrase.

次の列を追加します フレーズ:

  • カテゴリ (文字列): フレーズのカテゴリ(例: "挨拶")。
  • ソース言語 (文字列): ソース言語コード。
  • ターゲット言語 (文字列): ターゲット言語コード。
  • ソーステキスト (文字列): 元のフレーズ。
  • 翻訳テキスト (文字列): 翻訳されたフレーズ。

1.3.4. DictionaryEntryクラスを作成する

  1. という名前のクラスを作成します DictionaryEntry.

次の列を追加します DictionaryEntry:

  • 単語 (文字列): 定義されている単語。
  • 言語 (文字列): 単語の言語。
  • 定義 (文字列): 単語の定義。
  • (配列): 単語を使用した例文。

1.4. クラスレベルの権限を設定する

認証されたユーザーのみが自分のデータにアクセスできるようにします:

  1. 各クラスについて、 セキュリティ > クラスレベルの権限 (CLP) に移動します。
  2. CLPを設定して、認証されたユーザーのみが読み書きアクセスできるようにします。

ステップ 2 — Flutter プロジェクトの初期化

このステップでは、Flutter プロジェクトをセットアップし、Back4App に接続するように構成します。

2.1. 新しい Flutter プロジェクトを作成する

ターミナルを開いて、次のコマンドを実行します:

Bash


プロジェクトディレクトリに移動します:

Bash


2.2. 必要な依存関係を追加する

pubspec.yaml を開いて、次の依存関係を追加します:

YAML


flutter pub get を実行して、パッケージをインストールします。

2.3. FlutterアプリでParseを初期化する

新しいファイルを作成します lib/config/back4app_config.dart:

Dart


'YOUR_APPLICATION_ID''YOUR_CLIENT_KEY' をBack4Appからのキーに置き換えます。

lib/main.dart, Parseを初期化します:

Dart


を作成します lib/app.dart:

Dart


ステップ 3 — テキスト翻訳の実装

最初に実装する機能は基本的なテキスト翻訳です。

3.1. 翻訳サービスの設定

を作成します lib/services/translation_service.dart 翻訳API(Google Cloud Translation APIまたはDeepL)とのインタラクションを管理します。

Dart


3.2. 言語モデルの実装

を作成します lib/models/language.dart サポートされている言語を表します。

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart


3.3. テキスト翻訳画面を作成する

作成する lib/screens/text_translation_screen.dart テキスト入力と翻訳を処理するために:

Dart


ステップ 4 — 音声翻訳の実装

このステップでは、 音声認識音声合成 機能を統合することで音声翻訳を追加します。

4.1. 音声認識の設定

作成する lib/services/speech_recognition_service.dart を使用して speech_to_text パッケージ:

Dart


4.2. テキスト読み上げ (TTS) を追加する

作成する lib/services/tts_service.dart を使用して flutter_tts パッケージ:

Dart


4.3. 音声翻訳画面を作成する

作成する lib/screens/voice_translation_screen.dart 音声翻訳を処理するために:

Dart


ステップ 5 — 画像翻訳 (OCR) の実装

5.1. OCR サービスの設定

作成する lib/services/ocr_service.dart 使用する google_ml_kit パッケージ:

Dart


5.2. 画像翻訳画面を作成する

作成する lib/screens/image_translation_screen.dart 画像入力とOCRを処理するために:

Dart


ステップ6 — 翻訳履歴とフレーズブック

このステップでは、翻訳履歴の保存とフレーズブックの管理を実装します。

6.1. 翻訳履歴を保存する

更新 lib/services/translation_service.dart で翻訳履歴をBack4Appに保存する:

Dart


6.2. フレーズブックの実装

作成 lib/screens/phrase_book_screen.dart で一般的なフレーズを管理する:

Dart


結論

このチュートリアルに従うことで、機能豊富な AI Voice Translator AppFlutterBack4App で構築しました。以下を実装しました:

  • 基本的および高度なテキスト翻訳。
  • 音声から音声への翻訳を 音声認識テキスト読み上げ を使用して。
  • 画像からテキストへの翻訳を OCR を使用して。
  • 翻訳履歴の管理と一般的な表現のフレーズ集。

次のステップ

  • UI/UXの向上: アプリのインターフェースを改善し、よりスムーズなユーザー体験を提供します。
  • エラーハンドリングの改善: APIの失敗に対するエラーハンドリングとフォールバックメカニズムを追加します。
  • オフラインモードの実装: オフラインアクセスのために一般的な翻訳、フレーズ、および履歴をキャッシュします。
  • アプリのデプロイ: iOSおよびAndroidプラットフォームへのデプロイの準備をします。