Comment créer une application de traduction vocale IA en utilisant Flutter et Back4App
Dans ce tutoriel, vous apprendrez à créer une application de traduction vocale AI en utilisant Flutter comme framework frontend et Back4App comme service backend. L'application permettra aux utilisateurs de traduire la parole, le texte et les images dans plusieurs langues. Elle comportera des fonctionnalités de traduction alimentées par l'IA, de reconnaissance optique de caractères (OCR) et de reconnaissance vocale. À la fin de ce tutoriel, vous aurez construit une application capable de gérer des traductions en temps réel et de stocker l'historique sur Back4App pour une utilisation future.
Pour compléter ce tutoriel, vous aurez besoin de :
- Connaissances de base en Dart et Flutter. Si vous êtes nouveau sur Flutter, consultez la documentation de Flutter avant de continuer.
- Un compte avec un fournisseur d'API de traduction comme Google Cloud Translation ou DeepL.
- Familiarité avec les API REST et la programmation asynchrone en Dart.
Dans cette étape, vous allez configurer une application Back4App, définir les modèles de données et configurer le backend pour stocker l'historique des traductions, les langues et les données des utilisateurs.
- Cliquez sur "Créer une nouvelle application".
- Entrez un nom d'application (par exemple, "Traducteur Vocal IA") et sélectionnez votre icône d'application.
- Choisissez votre emplacement de serveur si cela vous est demandé.
- Cliquez sur "Créer".
- Accédez à Paramètres de l'application > Sécurité et clés dans le tableau de bord de votre application.
- Notez l'ID de l'application et la clé client. Ceux-ci seront nécessaires pour la configuration de l'application Flutter.
Nous allons créer les classes suivantes dans Back4App :
- Utilisateur (par défaut)
- Traduction
- Langue
- Phrase
- EntréeDuDictionnaire
1.3.1. Créer la classe de traduction
- Allez à Base de données > Navigateur.
- Cliquez sur "Créer une classe".
- Choisissez "Personnalisé" et nommez-le Traduction.
- Cliquez sur "Créer une classe".
Ajoutez les colonnes suivantes à Traduction:
- utilisateur (Pointer<_User>): Pointe vers l'objet Utilisateur.
- langueSource (String): Code de la langue source.
- langueCible (String): Code de la langue cible.
- texteSource (String): Le texte original à traduire.
- texteTraduit (String): Le texte traduit.
- typeDeTraduction (String): Type de traduction (voix, texte, image).
- horodatage (DateTime).
1.3.2. Créer la classe Langue
- Répétez les étapes pour créer une nouvelle classe nommée Langue.
Ajoutez les colonnes suivantes à Langue:
- nom (String): Le nom de la langue (par exemple, "Anglais").
- code (String): Code ISO de la langue (par exemple, "en").
- flagIconUrl (String): URL de l'image du drapeau représentant la langue.
1.3.3. Créer la classe Phrase
- Créez une classe nommée Phrase.
Ajoutez les colonnes suivantes à Phrase:
- catégorie (Chaîne) : La catégorie de la phrase (par exemple, "Salutations").
- langueSource (Chaîne) : Code de la langue source.
- langueCible (Chaîne) : Code de la langue cible.
- texteSource (Chaîne) : La phrase originale.
- texteTraduit (Chaîne) : La phrase traduite.
1.3.4. Créer la classe DictionaryEntry
- Créer une classe nommée DictionaryEntry.
Ajoutez les colonnes suivantes à DictionaryEntry:
- mot (Chaîne) : Le mot étant défini.
- langue (Chaîne) : La langue du mot.
- définition (Chaîne) : La définition du mot.
- exemples (Tableau) : Phrases d'exemple utilisant le mot.
Assurez-vous que seuls les utilisateurs authentifiés peuvent accéder à leurs propres données :
- Pour chaque classe, allez à Sécurité > Autorisations au niveau de la classe (CLP).
- Définissez le CLP pour permettre l'accès en lecture/écriture uniquement aux utilisateurs authentifiés.
Dans cette étape, vous allez configurer un projet Flutter et le configurer pour se connecter à Back4App.
Ouvrez votre terminal et exécutez :
Naviguez vers le répertoire du projet :
Ouvrez pubspec.yaml et ajoutez les dépendances suivantes :
Exécutez flutter pub get pour installer les paquets.
Créez un nouveau fichier lib/config/back4app_config.dart:
Remplacez 'VOTRE_ID_APPLICATION' et 'VOTRE_CLE_CLIENT' par les clés de Back4App.
In lib/main.dart, initialize Parse:
Create lib/app.dart:
The first feature to implement is basic text translation.
Create lib/services/translation_service.dart to manage interactions with a translation API (Google Cloud Translation API or DeepL).
Create lib/models/language.dart to represent supported languages.
Créer lib/screens/text_translation_screen.dart pour gérer l'entrée de texte et la traduction :
Dans cette étape, vous ajouterez la traduction vocale en intégrant la reconnaissance vocale et la synthèse vocale fonctionnalités.
Créer lib/services/speech_recognition_service.dart en utilisant le speech_to_text paquet :
Créer lib/services/tts_service.dart en utilisant le flutter_tts paquet :
Créer lib/screens/voice_translation_screen.dart pour gérer la traduction vocale :
Créer lib/services/ocr_service.dart en utilisant le google_ml_kit paquet :
Créer lib/screens/image_translation_screen.dart pour gérer l'entrée d'image et l'OCR :
Dans cette étape, vous allez implémenter la sauvegarde de l'historique des traductions et la gestion d'un livre de phrases.
Mettre à jour lib/services/translation_service.dart pour enregistrer l'historique des traductions dans Back4App:
Créer lib/screens/phrase_book_screen.dart pour gérer les phrases courantes:
En suivant ce tutoriel, vous avez construit une application AI Voice Translator App riche en fonctionnalités avec Flutter et Back4App. Vous avez implémenté :
- Traduction de texte de base et avancée.
- Traduction voix à voix utilisant speech recognition et text-to-speech.
- Traduction image à texte utilisant OCR.
- Gestion de l'historique des traductions et un livre de phrases pour les expressions courantes.
- Améliorer l'UI/UX: Améliorer l'interface de l'application pour une expérience utilisateur plus fluide.
- Améliorer la gestion des erreurs: Ajouter une gestion des erreurs et des mécanismes de secours pour les échecs d'API.
- Implémenter le mode hors ligne: Mettre en cache les traductions, phrases et historiques courants pour un accès hors ligne.
- Déployer l'application: Préparer l'application pour le déploiement sur les plateformes iOS et Android.