Un assistant vocal moderne avec support multi-assistant (Gemini + Raise) et système TTS avancé, développé en Flutter.
- 🎙️ Clic simple - Démarrage/arrêt d'enregistrement en un clic
- 🤖 Multi-assistant - Support Gemini AI et assistants Raise spécialisés
- 🔊 TTS avancé - Android TTS standard + Gemini AI TTS expérimental
- 🌊 Animations fluides - Vagues bleues réactives au son
- 📱 Design moderne - Interface sombre style Gemini avec sélection d'assistant
- 🔐 Configuration sécurisée - Variables d'environnement pour API
- 💾 Persistance - Sauvegarde automatique des préférences utilisateur
L'application reproduit fidèlement le design des assistants vocaux modernes :
- Barre d'application : Icônes navigation + indicateur "Live"
- Animation vagues : Dégradé bleu qui réagit à l'amplitude vocale
- Bouton central : Enregistrement clic simple avec feedback visuel
- Zone principale : Fond noir avec transitions fluides
- Barre contrôle : Icône assistant, paramètres, caméra, partage, fermeture
- Écran sélection : Interface dédiée pour choisir l'assistant (Gemini/Raise)
- Écran paramètres : Configuration TTS (Android standard vs Gemini AI)
- Flutter SDK >= 2.17.0
- Android SDK 21+ / iOS 11+
- Clé API Gemini
- Cloner le projet
git clone https://github.com/dgirard/voice_assistant.git
cd voice_assistant- Installer les dépendances
flutter pub get- Configurer les APIs
# Créer le fichier .env à la racine du projet
echo "GEMINI_API_KEY=VOTRE_CLE_API_GEMINI" > .env
echo "RAISE_API_KEY=VOTRE_CLE_API_RAISE" >> .env- Lancer l'application
flutter runspeech_to_text- Reconnaissance vocaleflutter_tts- Synthèse vocale Androidpermission_handler- Gestion permissionsprovider- Gestion d'étathttp- Requêtes APIflutter_dotenv- Variables d'environnement sécuriséesshared_preferences- Persistance des préférencespath_provider- Accès système de fichiers pour TTS Geminicupertino_icons- Icônes iOS style
lib/
├── main.dart # Point d'entrée
├── providers/ # Gestion d'état
│ └── voice_assistant_provider.dart
├── services/ # Services métier
│ ├── speech_service.dart # Reconnaissance vocale
│ ├── ai_service.dart # Intégration IA multi-assistant
│ ├── raise_api_service.dart # API Raise pour assistants spécialisés
│ ├── tts_service.dart # Services TTS (Android + Gemini)
│ └── gemini_tts_test.dart # Implémentation TTS Gemini avancée
├── screens/ # Écrans
│ ├── voice_screen.dart # Écran principal
│ ├── assistant_selection_screen.dart # Sélection d'assistant
│ ├── settings_screen.dart # Paramètres TTS
│ └── gemini_tts_test_screen.dart # Test laboratoire Gemini TTS
└── widgets/ # Composants UI
├── wave_animation.dart # Animation vagues
├── voice_record_button.dart # Bouton clic simple
├── speech_text_display.dart # Affichage texte
├── custom_app_bar.dart # Barre d'application
├── control_bar.dart # Barre de contrôle
└── tts_engine_selector.dart # Sélecteur moteur TTS
- Cliquer : Un clic sur le bouton central démarre l'enregistrement
- Parler : Enregistrez votre message vocal
- Cliquer : Un second clic envoie le message à l'assistant sélectionné
- Écouter : L'assistant répond vocalement avec animation
- Icône assistant : Cliquez sur l'icône dans la barre du bas
- Choisir : Sélectionnez Gemini (général) ou un assistant Raise (spécialisé)
- Retour automatique : L'écran principal se restaure avec le nouvel assistant
- Paramètres : Accédez via l'icône paramètres
- Moteur TTS : Choisissez Android TTS (standard) ou Gemini AI TTS (expérimental)
- Test : Testez la voix sélectionnée avant utilisation
- Obtenez une clé sur Google AI Studio
- Ajoutez
GEMINI_API_KEY=votre_clédans le fichier.env
- Obtenez une clé API Raise auprès de SFEIR
- Ajoutez
RAISE_API_KEY=votre_clédans le fichier.env - Les assistants Raise spécialisés seront automatiquement disponibles
RECORD_AUDIO- Enregistrement microphoneINTERNET- Accès réseauWRITE_EXTERNAL_STORAGE- Stockage fichiers audio temporaires (TTS Gemini)
NSMicrophoneUsageDescription- Utilisation microphoneNSSpeechRecognitionUsageDescription- Reconnaissance vocale
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche feature
- Commit vos changements
- Ouvrir une Pull Request
MIT License - voir le fichier LICENSE pour plus de détails.
- Design inspiré de Google Gemini
- Communauté Flutter pour les packages
- Contributors et testeurs
🔗 Repository : github.com/dgirard/voice_assistant