Modelli Flutter

Come costruire un'app di traduzione vocale AI utilizzando Flutter e Back4App

35min

Introduzione

In questo tutorial, imparerai come costruire un'app di traduzione vocale AI utilizzando Flutter come framework frontend e Back4App come servizio backend. L'app permetterà agli utenti di tradurre discorsi, testi e immagini in più lingue. Presenterà funzionalità di traduzione potenziate dall'AI, riconoscimento ottico dei caratteri (OCR) e riconoscimento vocale. Alla fine di questo tutorial, avrai costruito un'app in grado di gestire traduzioni in tempo reale e memorizzare la cronologia su Back4App per un uso futuro.

Prerequisiti

Per completare questo tutorial, avrai bisogno di:

  • Un account Back4App. Registrati per un account gratuito su Back4App.
  • Flutter SDK installato sul tuo computer locale. Segui la guida all'installazione di Flutter.
  • Conoscenze di base di Dart e Flutter. Se sei nuovo a Flutter, rivedi la documentazione di Flutter prima di procedere.
  • Un account con un fornitore di API di traduzione come Google Cloud Translation o DeepL.
  • Familiarità con le API REST e la programmazione asincrona in Dart.

Passo 1 — Configurare il tuo backend Back4App

In questo passaggio, configurerai un'applicazione Back4App, definirai i modelli di dati e configurerai il backend per memorizzare la cronologia delle traduzioni, le lingue e i dati degli utenti.

1.1. Crea una Nuova Applicazione su Back4App

  1. Accedi al tuo dashboard di Back4App.
  2. Clicca su "Crea nuova App".
  3. Inserisci un Nome App (ad es., "Traduttore Vocale AI") e seleziona la tua Icona App.
  4. Scegli la tua posizione del server se richiesto.
  5. Clicca "Crea".

1.2. Recupera le Chiavi dell'Applicazione

  1. Naviga su Impostazioni App > Sicurezza e Chiavi nel dashboard della tua app.
  2. Annota il ID Applicazione e il Client Key. Questi saranno necessari per la configurazione dell'app Flutter.

1.3. Definisci i Tuoi Modelli di Dati

Creeremo le seguenti classi in Back4App:

  • Utente (predefinito)
  • Traduzione
  • Lingua
  • Frase
  • VoceDelDizionario

1.3.1. Crea la Classe Traduzione

  1. Vai a Database > Browser.
  2. Clicca su "Crea una classe".
  3. Scegli "Personalizzato" e chiamalo Traduzione.
  4. Clicca su "Crea classe".

Aggiungi le seguenti colonne a Traduzione:

  • utente (Pointer<_User>): Punta all'oggetto Utente.
  • linguaDiOrigine (String): Codice della lingua di origine.
  • linguaDiDestinazione (String): Codice della lingua di destinazione.
  • testoDiOrigine (String): Il testo originale da tradurre.
  • testoTradotto (String): Il testo tradotto.
  • tipoDiTraduzione (String): Tipo di traduzione (voce, testo, immagine).
  • timestamp (DateTime).

1.3.2. Crea la classe Language

  1. Ripeti i passaggi per creare una nuova classe chiamata Language.

Aggiungi le seguenti colonne a Language:

  • nome (String): Il nome della lingua (ad es., "Inglese").
  • codice (String): Codice ISO della lingua (ad es., "en").
  • flagIconUrl (String): URL dell'immagine della bandiera che rappresenta la lingua.

1.3.3. Crea la classe Phrase

  1. Crea una classe chiamata Phrase.

Aggiungi le seguenti colonne a Frase:

  • categoria (String): La categoria della frase (ad es., "Saluti").
  • linguaDiOrigine (String): Codice della lingua di origine.
  • linguaTarget (String): Codice della lingua target.
  • testoDiOrigine (String): La frase originale.
  • testoTradotto (String): La frase tradotta.

1.3.4. Crea la classe DictionaryEntry

  1. Crea una classe chiamata DictionaryEntry.

Aggiungi le seguenti colonne a DictionaryEntry:

  • parola (String): La parola da definire.
  • lingua (String): La lingua della parola.
  • definizione (String): La definizione della parola.
  • esempi (Array): Frasi di esempio che utilizzano la parola.

1.4. Impostare i permessi a livello di classe

Assicurati che solo gli utenti autenticati possano accedere ai propri dati:

  1. Per ogni classe, vai a Sicurezza > Permessi a livello di classe (CLP).
  2. Imposta il CLP per consentire l'accesso in lettura/scrittura solo agli utenti autenticati.

Passo 2 — Inizializzare il tuo progetto Flutter

In questo passo, configurerai un progetto Flutter e lo configurerai per connettersi a Back4App.

2.1. Crea un nuovo progetto Flutter

Apri il tuo terminale e esegui:

Bash


Naviga nella directory del progetto:

Bash


2.2. Aggiungi le dipendenze richieste

Apri pubspec.yaml e aggiungi le seguenti dipendenze:

YAML


Esegui flutter pub get per installare i pacchetti.

2.3. Inizializza Parse nella tua app Flutter

Crea un nuovo file lib/config/back4app_config.dart:

Dart


Sostituisci 'YOUR_APPLICATION_ID' e 'YOUR_CLIENT_KEY' con le chiavi di Back4App.

In lib/main.dart, inizializza Parse:

Dart


Crea lib/app.dart:

Dart


Passo 3 — Implementazione della Traduzione del Testo

La prima funzionalità da implementare è la traduzione di base del testo.

3.1. Configura il Servizio di Traduzione

Crea lib/services/translation_service.dart per gestire le interazioni con un'API di traduzione (Google Cloud Translation API o DeepL).

Dart


3.2. Implementa il Modello di Lingua

Crea lib/models/language.dart per rappresentare le lingue supportate.

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart

Dart


3.3. Crea Schermata di Traduzione del Testo

Crea lib/screens/text_translation_screen.dart per gestire l'input di testo e la traduzione:

Dart


Passo 4 — Implementazione della Traduzione Vocale

In questo passo, aggiungerai la traduzione vocale integrando speech-to-text e text-to-speech funzionalità.

4.1. Configura il Riconoscimento Vocale

Crea lib/services/speech_recognition_service.dart utilizzando il speech_to_text pacchetto:

Dart


4.2. Aggiungi Text-to-Speech (TTS)

Crea lib/services/tts_service.dart utilizzando il flutter_tts pacchetto:

Dart


4.3. Crea Schermata di Traduzione Vocale

Crea lib/screens/voice_translation_screen.dart per gestire la traduzione vocale:

Dart


Passo 5 — Implementazione della Traduzione delle Immagini (OCR)

5.1. Configurare il Servizio OCR

Crea lib/services/ocr_service.dart utilizzando il google_ml_kit pacchetto:

Dart


5.2. Crea Schermata di Traduzione Immagine

Crea lib/screens/image_translation_screen.dart per gestire l'input dell'immagine e l'OCR:

Dart


Passo 6 — Cronologia Traduzioni e Libro delle Frasi

In questo passo, implementerai il salvataggio della cronologia delle traduzioni e la gestione di un libro delle frasi.

6.1. Salva Cronologia Traduzioni

Aggiorna lib/services/translation_service.dart per salvare la cronologia delle traduzioni in Back4App:

Dart


6.2. Implementare il Libro delle Frasi

Crea lib/screens/phrase_book_screen.dart per gestire frasi comuni:

Dart


Conclusione

Seguendo questo tutorial, hai costruito un AI Voice Translator App ricco di funzionalità con Flutter e Back4App. Hai implementato:

  • Traduzione di testo di base e avanzata.
  • Traduzione voce-a-voce utilizzando speech recognition e text-to-speech.
  • Traduzione immagine-a-testo utilizzando OCR.
  • Gestione della cronologia delle traduzioni e un libro di frasi per espressioni comuni.

Prossimi Passi

  • Migliora UI/UX: Migliora l'interfaccia dell'app per un'esperienza utente più fluida.
  • Migliora la Gestione degli Errori: Aggiungi gestione degli errori e meccanismi di fallback per i fallimenti dell'API.
  • Implementa la Modalità Offline: Memorizza le traduzioni comuni, le frasi e la cronologia per l'accesso offline.
  • Distribuisci l'App: Prepara l'app per la distribuzione su piattaforme iOS e Android.