Une application vocale interactive utilisant React Native et l'API Mistral pour une expérience conversationnelle entièrement basée sur la voix.
- Interface entièrement vocale
- Reconnaissance vocale en français
- Synthèse vocale pour les réponses
- Intégration avec l'API Mistral
- Design minimaliste et intuitif
- React Native
- Expo
- TypeScript
- API Mistral
- React Native Voice
- Expo Speech
- Clonez le repository :
git clone https://github.com/votre-username/voicetral.git
cd voicetral- Installez les dépendances :
npm install- Configurez les variables d'environnement :
- Créez un fichier
.envà la racine du projet - Ajoutez votre clé API Mistral :
MISTRAL_MODEL=nom_de_modele
MISTRAL_API_KEY=votre_clé_api
- Lancez l'application :
npm start- Appuyez sur le bouton microphone pour commencer à parler
- Posez votre question en français
- Attendez la réponse vocale de l'assistant
- Utilisez le bouton de réinitialisation pour une nouvelle conversation
src/
├── components/
│ ├── MicrophoneInput/
│ ├── ResetButton/
│ └── VoiceResponse/
├── services/
├── styles/
└── types/
- L'application nécessite l'autorisation d'accès au microphone
- Une connexion Internet est requise pour le fonctionnement de l'API
- L'application est optimisée pour une utilisation en français
- Installer EAS CLI globalement :
npm install -g eas-cli- Se connecter à votre compte Expo :
eas loginCrée une build iOS locale, incrémente automatiquement la version et crée un tag Git :
npm run build:ios:localOptions d'incrémentation :
- Patch (par défaut) :
1.0.3→1.0.4
npm run build:ios:local- Minor :
1.0.3→1.1.0
npm run build:ios:local -- --minor- Major :
1.0.3→2.0.0
npm run build:ios:local -- --majorCe que fait cette commande :
- Lit la version actuelle dans
app.json - Incrémente automatiquement la version (patch/minor/major)
- Met à jour
app.jsonavec la nouvelle version - Synchronise
package.jsonavec la nouvelle version - Lance la build EAS locale
- Crée un tag Git annoté avec la nouvelle version (ex:
v1.0.4)
Crée une build locale, incrémente la version, crée un tag, puis builder et soumet automatiquement sur EAS :
npm run build:ios:local:submitCette commande fait tout le processus en une seule fois :
- Build locale avec incrémentation
- Création du tag Git
- Build sur EAS (cloud)
- Soumission à l'App Store / TestFlight
Si un tag Git a déjà été créé, vous pouvez builder et soumettre directement :
# Utilise automatiquement le dernier tag Git
npm run build:submit:tag
# Ou spécifier un tag précis
npm run build:submit:tag -- 1.0.4
# Avec un profil spécifique
npm run build:submit:tag -- 1.0.4 --profile previewSynchronise la version de package.json avec celle de app.json :
npm run sync:versionUtile si vous modifiez manuellement la version dans app.json et souhaitez synchroniser package.json.
Soumet une build existante sur EAS à l'App Store ou TestFlight :
npm run submit:iosCette commande vous permet de sélectionner une build depuis votre compte EAS.
Soumet une build locale (fichier IPA) à l'App Store ou TestFlight :
npm run submit:ios:local -- chemin/vers/votre/app.ipaAprès chaque build, un tag Git est automatiquement créé. Pour pousser les tags vers le dépôt distant :
# Pousser un tag spécifique
git push origin v1.0.4
# Pousser tous les tags
git push --tags| Commande | Description |
|---|---|
npm start |
Lance le serveur de développement Expo |
npm run ios |
Lance l'application sur iOS (simulateur) |
npm run android |
Lance l'application sur Android (émulateur) |
npm run web |
Lance l'application dans le navigateur |
npm run build:ios:local |
Build iOS locale avec incrémentation automatique |
npm run build:ios:local:submit |
Build locale + tag + build EAS + soumission automatique |
npm run build:submit:tag |
Build et soumet depuis un tag Git existant |
npm run sync:version |
Synchronise la version entre app.json et package.json |
npm run submit:ios |
Soumet une build EAS à l'App Store/TestFlight |
npm run submit:ios:local |
Soumet une build locale à l'App Store/TestFlight |
Le projet utilise un système de gestion de version automatique :
- Source de vérité :
app.json(utilisé par EAS) - Synchronisation :
package.jsonest automatiquement synchronisé avecapp.json - Incrémentation : Automatique lors des builds (patch par défaut)
- Tags Git : Création automatique d'un tag annoté à chaque nouvelle version
Le projet suit le format SemVer : MAJOR.MINOR.PATCH
- MAJOR : Changements incompatibles avec l'API précédente
- MINOR : Nouvelles fonctionnalités rétrocompatibles
- PATCH : Corrections de bugs rétrocompatibles
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
MIT