Как создать приложение для перевода голоса с AI, используя Flutter и Back4App
В этом учебном пособии вы научитесь создавать приложение AI Voice Translator, используя Flutter в качестве фронтенд-фреймворка и Back4App в качестве бэкенд-сервиса. Приложение позволит пользователям переводить речь, текст и изображения на несколько языков. Оно будет включать функции перевода на основе ИИ, оптического распознавания символов (OCR) и распознавания речи. К концу этого учебного пособия вы создадите приложение, которое сможет обрабатывать переводы в реальном времени и хранить историю на Back4App для будущего использования.
Чтобы завершить это учебное пособие, вам потребуется:
- Flutter SDK установленный на вашем локальном компьютере. Следуйте официальному руководству по установке Flutter.
- Базовые знания о Dart и Flutter. Если вы новичок в Flutter, ознакомьтесь с документацией Flutter перед тем, как продолжить.
- Аккаунт у поставщика API перевода, такого как Google Cloud Translation или DeepL.
- Знание REST API и асинхронного программирования в Dart.
На этом этапе вы настроите приложение Back4App, определите модели данных и сконфигурируете серверную часть для хранения истории переводов, языков и данных пользователей.
- Нажмите на "Создать новое приложение".
- Введите имя приложения (например, "AI Voice Translator") и выберите ваш значок приложения.
- Выберите местоположение вашего сервера, если будет предложено.
- Нажмите "Создать".
- Перейдите в Настройки приложения > Безопасность и ключи в панели управления вашего приложения.
- Запишите идентификатор приложения и ключ клиента. Они понадобятся для настройки приложения Flutter.
Мы создадим следующие классы в Back4App:
- Пользователь (по умолчанию)
- Перевод
- Язык
- Фраза
- СловарнаяЗапись
1.3.1. Создать класс перевода
- Перейдите к База данных > Браузер.
- Нажмите "Создать класс".
- Выберите "Пользовательский" и назовите его Перевод.
- Нажмите "Создать класс".
Добавьте следующие столбцы к Перевод:
- пользователь (Указатель<_Пользователь>): Указывает на объект Пользователь.
- sourceLanguage (Строка): Код исходного языка.
- targetLanguage (Строка): Код целевого языка.
- sourceText (Строка): Исходный текст для перевода.
- translatedText (Строка): Переведенный текст.
- translationType (Строка): Тип перевода (голос, текст, изображение).
- timestamp (ДатаВремя).
1.3.2. Создайте класс Язык
- Повторите шаги, чтобы создать новый класс с именем Язык.
Добавьте следующие столбцы к Язык:
- имя (Строка): Имя языка (например, "Английский").
- код (Строка): ISO код языка (например, "en").
- flagIconUrl (Строка): URL изображения флага, представляющего язык.
1.3.3. Создайте класс Фраза
- Создайте класс с именем Фраза.
Добавьте следующие столбцы к Фраза:
- категория (Строка): Категория фразы (например, "Приветствия").
- языкИсходник (Строка): Код исходного языка.
- языкЦель (Строка): Код целевого языка.
- исходныйТекст (Строка): Исходная фраза.
- переведенныйТекст (Строка): Переведенная фраза.
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 для обработки ввода текста и перевода:
На этом этапе вы добавите голосовой перевод, интегрируя speech-to-text и text-to-speech функции.
Создайте 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.