Шаблоны Flutter

Как создать приложение для перевода голоса с AI, используя Flutter и Back4App

36min

Введение

В этом учебном пособии вы научитесь создавать приложение AI Voice Translator, используя Flutter в качестве фронтенд-фреймворка и Back4App в качестве бэкенд-сервиса. Приложение позволит пользователям переводить речь, текст и изображения на несколько языков. Оно будет включать функции перевода на основе ИИ, оптического распознавания символов (OCR) и распознавания речи. К концу этого учебного пособия вы создадите приложение, которое сможет обрабатывать переводы в реальном времени и хранить историю на Back4App для будущего использования.

Предварительные требования

Чтобы завершить это учебное пособие, вам потребуется:

  • Аккаунт Back4App. Зарегистрируйтесь для получения бесплатного аккаунта на Back4App.
  • Flutter SDK установленный на вашем локальном компьютере. Следуйте официальному руководству по установке Flutter.
  • Базовые знания о Dart и Flutter. Если вы новичок в Flutter, ознакомьтесь с документацией Flutter перед тем, как продолжить.
  • Аккаунт у поставщика API перевода, такого как Google Cloud Translation или DeepL.
  • Знание REST API и асинхронного программирования в Dart.

Шаг 1 — Настройка вашего бэкенда Back4App

На этом этапе вы настроите приложение Back4App, определите модели данных и сконфигурируете серверную часть для хранения истории переводов, языков и данных пользователей.

1.1. Создайте новое приложение на Back4App

  1. Нажмите на "Создать новое приложение".
  2. Введите имя приложения (например, "AI Voice Translator") и выберите ваш значок приложения.
  3. Выберите местоположение вашего сервера, если будет предложено.
  4. Нажмите "Создать".

1.2. Получите ключи приложения

  1. Перейдите в Настройки приложения > Безопасность и ключи в панели управления вашего приложения.
  2. Запишите идентификатор приложения и ключ клиента. Они понадобятся для настройки приложения Flutter.

1.3. Определите ваши модели данных

Мы создадим следующие классы в Back4App:

  • Пользователь (по умолчанию)
  • Перевод
  • Язык
  • Фраза
  • СловарнаяЗапись

1.3.1. Создать класс перевода

  1. Перейдите к База данных > Браузер.
  2. Нажмите "Создать класс".
  3. Выберите "Пользовательский" и назовите его Перевод.
  4. Нажмите "Создать класс".

Добавьте следующие столбцы к Перевод:

  • пользователь (Указатель<_Пользователь>): Указывает на объект Пользователь.
  • sourceLanguage (Строка): Код исходного языка.
  • targetLanguage (Строка): Код целевого языка.
  • sourceText (Строка): Исходный текст для перевода.
  • translatedText (Строка): Переведенный текст.
  • translationType (Строка): Тип перевода (голос, текст, изображение).
  • timestamp (ДатаВремя).

1.3.2. Создайте класс Язык

  1. Повторите шаги, чтобы создать новый класс с именем Язык.

Добавьте следующие столбцы к Язык:

  • имя (Строка): Имя языка (например, "Английский").
  • код (Строка): ISO код языка (например, "en").
  • flagIconUrl (Строка): URL изображения флага, представляющего язык.

1.3.3. Создайте класс Фраза

  1. Создайте класс с именем Фраза.

Добавьте следующие столбцы к Фраза:

  • категория (Строка): Категория фразы (например, "Приветствия").
  • языкИсходник (Строка): Код исходного языка.
  • языкЦель (Строка): Код целевого языка.
  • исходныйТекст (Строка): Исходная фраза.
  • переведенныйТекст (Строка): Переведенная фраза.

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. Инициализируйте Parse в вашем приложении Flutter

Создайте новый файл 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

Dart

Dart

Dart


3.3. Создание экрана перевода текста

Создайте lib/screens/text_translation_screen.dart для обработки ввода текста и перевода:

Dart


Шаг 4 — Реализация голосового перевода

На этом этапе вы добавите голосовой перевод, интегрируя speech-to-text и text-to-speech функции.

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 App с использованием Flutter и Back4App. Вы реализовали:

  • Базовый и продвинутый перевод текста.
  • Перевод голосом с использованием распознавания речи и синтеза речи.
  • Перевод изображений в текст с использованием OCR.
  • Управление историей переводов и разговорник для общих выражений.

Следующие шаги

  • Улучшить UI/UX: Улучшите интерфейс приложения для более плавного пользовательского опыта.
  • Улучшить обработку ошибок: Добавьте обработку ошибок и механизмы резервного копирования для сбоев API.
  • Реализовать оффлайн-режим: Кэшируйте общие переводы, фразы и историю для доступа в оффлайн.
  • Развернуть приложение: Подготовьте приложение к развертыванию на платформах iOS и Android.